直播课堂
HOME
直播课堂
正文内容
会plc编程后在学c语言 C语言和PLC的结合
发布时间 : 2025-04-12
作者 : 小编
访问数量 : 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到底要不要学IT

当今不断发展的工业自动化世界,在智能、高效和快速的系统和软件应用中,数据扮演着越来越重要的角色。而随着工业4.0的到来,IT、OT的融合是大趋势,IT和OT之间的界限也越来越模糊,越来越多的IT技术被引入到OT应用之中,OT 处理自动化设备和现实的物理世界;而 IT 则更强调软件、数据和信息等,以前我们谈论PLC 通讯会想到自动化领域中的 PROFINET、S7、Modbus TCP 这些传统的工业通讯协议,而现在随着技术发展,SIMATIC PLC 也提供了常用于 IT 领域的通讯协议库和功能块,因此西门子为了助力数字化转型和网络融合,提供了一系列的解决方案,并且以程序库的便利形式为 PLC 增添强劲的通信功能。

为什么小编今天想谈谈PLC与IT之间的关系呢?

PLC是什么相信不需要我多说,百度也可以查到,IT呢多多少少听说过,都是会很多高端的编程语言比如(C语言/C++/JAVA等)都是一群穿着格子衫的秃头老爷们,负责研发公司应用软件的模块设计、开发和交付,负责编码,单元测试,修复程序BUG等等掉头发的工作;

但是大家有没有发现,虽然PLC的基础语言是LAD梯形图,但是越来越多的PLC开始支持类似C语言VBS语言的编程环境,比如:三菱的ST语言、西门子的SCL语言等;甚至西门子的1500PLC都开始支持C、C++语言了;

包括现在的各大类触摸屏也有涉及到一些高级的语言,比如昆仑通态的脚本函数、威纶通的脚本函数、西门子触摸屏的VB语言以及C语言;

还有很多比如现在的机器人、视觉、数据库、MES、上位机等等都开始使用类似C语言的编程逻辑,在这就不一一举例了,如果要谈的话那就太多了,比如西门子的很多封装的指令以及PLC的通讯功能开始逐步接入IT实现不同功能不同协议的功能库开发。

那么很多朋友学员会问,那以后是不是光会梯形图不行了,也不完全是这样,大家要清楚的是,梯形图语言是很难被代替淘汰的,大部分的项目只用梯形图语言是完全可以实现工艺要求的,照样拿着上万的工资;

那还会有朋友会问,我会梯形图编程那我到底还要不要学这些IT的编程语言,小编觉得如果现在正处于发展期、年龄在20几岁我建议要学,未来都是往智能化的方向发展,越来越多的设备开始走向数据化,平台化,掌握PLC和IT的技术未来的职业发展是非常有优势和竞争力的,如果现在在自动化行业做了几十年,工作处于稳定阶段的不建议深度学习,稍微了解就可以,因为如果需要学习这类高级,你需要花很长时间,学了还不一定会马上应用到工作当中,或者公司的项目根本都不会涉及这些东西,如果学了就是浪费时间;

当然最后小编想说,时代在前进,我们很多认为掌握一门技术可以吃一辈子的是不太现实的,我们需要不断学习才不会被时代抛弃,才不会被更新迭代;

相关问答

学习PLC是不是要先学习C语言?

虽然PLC(可编程控制器)和C语言都与程序控制有关,但是学习C语言并不是PLC基础入门所必需的。PLC是利用LadderLogic(梯形图)语言进行程序设计和控制的,它是...

学plc需要学c语言吗?

虽然PLC(可编程控制器)和C语言都与程序控制有关,但是学习C语言并不是PLC基础入门所必需的。PLC是利用LadderLogic(梯形图)语言进行程序设计和控制的,它是...

plc可以用c语言来编程吗?

可以。因为PLC(可编程逻辑控制器)可以使用多种编程语言进行编程,其中包括C语言。C语言具有结构化、丰富的库支持以及较为底层的控制能力等特点,适合处理一些较...

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

一样,熟悉了一个,学另外一个非常快。程序不复杂。另外,你除了学源码的编写外,还需要学习控制界面的编写吧。梯形图LAD,指令表STL,功能模块图FBD等传统编程...

西门子plc支持c语言编程吗?

是的,西门子PLC(可编程逻辑控制器)支持C语言编程。除了传统的梯形图和函数块图编程语言之外,西门子PLC还支持结构化文本编程语言(SCL),它是基于C语言语法...

PLC的C语言怎么弄?

PLC的C语言编程需要借助专门的软件和硬件工具。一般来说,需要使用PLC生产厂家提供的专用编程软件,将C语言代码编写成PLC可识别的指令,然后通过编程电缆或其他...

plc与C语言有什么关系啊?

PLC为可编程逻辑控制器(ProgrammableLogicController)的首字母缩写。是一种面向工业控制的微型计算机系统。PLC的硬件系统必须有控制器(单片机、CPU、FP...

PLC编程和c语言编程有区别是什么?plc编程初学者应该做些什么?

PLC编程和C语言编程的区别主要有以下三点:应用领域:PLC编程主要用于工业自动化控制系统,而C语言编程主要应用于通用计算机领域,包括操作系统、数据库、网络...

学编程要先学会什么?比如c语言或者易语言?

简单说一点个人观点,也不知道你是学什么专业的,我是做电气自动化控制的,所以平时用的高级语言比较少,但是很多软件中编程所共有的那些东西基本上都是通的!...

学好PLC编程,需要做好哪些准备?

学好PLC编程,需要做好哪些准备?你好。作为一名2007年参加工作,十二年编程经验的一名老程序员。我想我还是有一定的资格来为你解答这个问题。1,首先要具有...

 新世相  名流人和天地 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

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

热线

188-0000-0000
专属服务热线

微信

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