研选课堂
HOME
研选课堂
正文内容
plc的c语言混合编程 C语言和PLC的结合
发布时间 : 2024-10-07
作者 : 小编
访问数量 : 23
扫码分享至微信

C语言和PLC的结合

如果要进行一个“复杂运算”(包括加减运算,但是运算步骤很多),尤其是需要重复使

用这个算法处理数据时候,使用 C 函数功能块将非常方便。

举个栗子:用公式: a= b/c+b*c+(c-3)*d 完成运算。

方法一:如果使用梯形图编写上述公式,处理步骤与程序如下:

首先求出 c-3 然后算出三个乘式的积 最后求和

虽然只有以上三个步骤,但是梯形图只支持两个源操作数,所以必须分成多步求结果。

在上面梯形图运算中有几点要注意:

(1)MUL 运算结果为双字,就是说 MUL D1 D2 D14[D15],结果是存放在D14[D15]两个

寄存器内。

(2)DIV 运算结果分商和余数,即:DIV D1 D2 D16,商在D16 中,余数在D17 中,所以

如果运算有余数则精度就降低了,要得到精确的结果得用浮点数运算。

(3)在求和时,由于D16 为商,是单字数据,所以加运算的时候得先统一数据类型,最终

得到的结果存放在D22[D23]中。

方法二:使用C 函数写,梯形图程序如下:

首先,我们对上面的 C 语言梯形图指令结构进行解析:

RESULT 为函数功能块的名称

D0 表示函数中 W[0]为 D0,W[1]为D1 以此类推,如果 S2 为D32,则函数块中

W[0]为D32,W[1]为D33 以此类推

M0 表示函数中 B[0]为 M0,B[1]为 M1 以此类推,如果 S2 为M32,则函数块中

B[0]为M32,B[1]为M33 以此类推

C 语言部分内容如下:

通过两种方法的对比可以看出,通过 C 函数功能,能够大大简化梯形图编程,提高编

程效率。

上面的C 函数运算和梯形图相似,精度也不高,如果要得到精确结果则使用浮点运算。

又来一个栗子:

利用函数功能块计算出CRC 校验值。

CRC 校验运算规则如下:

(1)令16-bit 寄存器(CRC 寄存器)=FFFFH。

(2)将第一个8-bit byte 的讯息与低位元 16-bit CRC 寄存器异或(Exclusive OR)。

(3)右移一位CRC 寄存器,将0 填入高位元处。

(4)检查右移的值,如果是 0,就将第三步的新值存入 CRC 寄存器内,如果为非 0,那

么将CRC 寄存器的值与A001H 异或,将结果存入CRC 寄存器内。

(5)重复(3)到(4),将8-bit 全部运算完成。

(6)重复(2)到(5),取下一个8-bit 的讯息指令,直到所有讯息指令运算完成。最后,

得到的 CRC 寄存器的值,即是CRC 的校验码。值得注意的是CRC 的校验码必须交换放置与讯息指令的检查码中。

编辑C 语言功能块程序,如下:

编写PLC 梯形图程序,D0:校验数据的字节个数,D1~D5:校验数据的内容。如下:

下载到 PLC 里,然后运行,使 M0 置 ON,通过自由监控就会发现寄存器 D6,D7 内

分别存入了 CRC 校验值的高位与低位。

PLC编程案例:液体混合装置模拟

对于许多初学者来说,液体混合装置模拟,是比较容易锻炼到思维。下面为大家关于这个的案例程序。

设计一个三种液体混合自动控制系统,工艺流程见工艺图,设计如下:

工艺图

一:输入输出分配

二、控制要求

装置分为自动模式和手动模式。

1.手动控制:电磁阀、电动机都能单独控制启停,可用于检修或者单步运行。

2.自动模式,要求如下:按下启动按钮后,装置投入运行,液体A、B、C阀门关闭,混合液体阀门打开10秒把容器放空后关闭。

容器放空后按照以下运行,液体A阀门打开,液体A流入容器,当液体达到SQ4时,B阀门打开,液体B流入容器,液面达到SQ3时,搅拌电机启动,开2秒停5秒,进行混合液体操作,液面达到SQ2时,关闭A、B阀门,打开C阀门,搅拌电机变为开3秒停2秒,液面达到SQ1时,关闭阀门C与搅拌电机。混合液体阀门打开,开始放出混合液体。当液面下降到SQ4时,再过10秒后,混合液体阀门关闭,开始下一个周期。

停止操作:按下停止后,执行完当前的操作后才停止,即完成当前周期后停止,停止在初始状态。

三、程序梯形图

本次的分享案例到此结束,最后感谢大家的支持,小编能力有限,有错的地方还望指出,共同学习进步。

相关问答

plc能用C语言编程吗?

PLC有大型小型分别,一般小型机是不行,例如三菱FX系列,但是三菱大型PLCQ系列是可以的,Q有专用的C语言模块,西门子S7-300,400也是可以。而且C语言其实很难使...

plc与C语言有什么关系啊!-ZOL问答

c是一门高级语言。可以开发底层的软件,比如导弹自动控置系统。火见系统。windows操作系统。都可以用c来开发。html是网页开发语言,以标记为主的客户端程序...

plc与c语言的数据类型?

PLC是可编程逻辑控制器的缩写,它通常用于工业自动化控制领域。PLC与C语言的数据类型之间存在一定的差异。PLC通常使用的数据类型包括布尔型(bool)、整数...

plc与c语言有什么关系?

通俗的说plc是硬件,c语言就是软件。plc是控制输出,检测输入,有梯形图编译后转到plc上的,再由plc控制其他电器,如,中继,接触器,接近开关等,在于他们驱动...通...

PLC用学C语言吗?

不需要。PLC有自己的编程语言的。PLC的用户程序是设计人员根据控制系统的工艺控制要求,通过PLC编程语言的编制设计的。根据国际电工委员会制定的工业控制编程...

plc未来能用c编程吗?

PLC有大型小型分别,一般小型机是不行,例如三菱FX系列,但是三菱大型PLCQ系列是可以的,Q有专用的C语言模块,西门子S7-300,400也是可以。而且C语言其实很难使...

c语言如何与plc串口通信?

要在C语言中与PLC进行串口通信,你需要使用串口通信库或API来实现。通常,你需要打开串口设备、设置串口参数(如波特率、数据位、停止位等)、发送数据到PLC,然...

电脑与PLC通讯用什么语言编程比较好啊?-ZOL问答

C,C++,VC,VB,C#都可以作为上位机(电脑)的编程语言,如果需要做数据监控、数据更改、数据存储等,需要做界面,这个时候应该是VC/VB/C#比较好。并且VC/VB/C#可以编...

plc和c语言哪个更有含金量?

PLC和C不是对立的,都是编程工具,学PLC最好是有C语言的基础,当然没有C语言的基础也可以学PLC编程,但不会达到一个高的层次,写写简单的PLC梯形图是可以的。现...

PLC编程和C语言一样难吗?

PLC编程和C语言并不完全一样,它们的难度也取决于许多因素。PLC编程是一种用于控制工业过程和机器的编程语言,通常用于自动化控制系统。它通常使用梯形...

 北京月亮河度假村  刘铁鹰 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部