直播课堂
HOME
直播课堂
正文内容
plc编程和c语言编程 C语言和PLC的结合
发布时间 : 2024-10-18
作者 : 小编
访问数量 : 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编程到底是啥?看电气大神讲PLC,膜拜!真是一针见血

PLC常见的用途是替代电气控制中的继电器逻辑控制电路。例如电机控制、变电站市电进线互投和自备发电机起停控制、过程控制DCS操控系统和楼宇消防系统控制等等。一般的城市居民小区高层建筑的水压控制,就是采取PLC配套变频器执行水泵操控的。

PLC更重要的用途是构建数据交换系统,它把现场总线变换为工业以太网,实现现场设备与后台的数据交换,以及接收和执行遥控命令等等。

在工业、民居、国防、交通(地铁、港口、民航)、银行和移动的数据中心中都大量使用PLC,由此可见PLC的用途之广。

PLC的硬件系统简介

图1:ABB的AC500系列PLC

图1的左侧是通信接口模块,它能实现PLC的通信数据和网络数据交换。向右显示了"AC 500"的是PLC的主体,即CPU模块。再往右是开关量输入/输出模块以及模拟量输入输出模块。

由此我们看到,PLC类似于一个单片机系统。事实上,PLC就是单片机智能化系统,但它的可靠性和稳定性非常高,远远超过了一般的单片机。

在工业环境下的电磁骚扰强烈,所以PLC必须要满足国家标准对电磁骚扰的要求。有关电磁骚扰的国家标准如下:

图2:国家标准中对工业条件下电磁骚扰的测量方法和要求

PLC抵御电磁骚扰的硬件措施包括电源隔离、开关量输入接口采取光电隔离、模拟量也采取光电隔离等措施。输出接口的电磁骚扰会弱一些,但也需要采取一定的措施,包括OC门和继电器接口等等。

为了提高PLC的可靠性,在重要场合还采取主PLC与从PLC冗余配套工作的措施,见下图:

图3:PLC的冗余措施

我们原来在变电站电力监控系统中用工业控制计算机作为中间层面的数据处理中心,但工业控制计算机存在电源故障、硬盘故障,抗电磁骚扰能力弱,后来就淘汰了,转而使用PLC作为数据处理中心。下图是《低压成套开关设备的原理及其控制技术》中的插图:

图4:图中的CCU就是PLC构建的通信管理中心

在图4中,既有利用PLC执行低压进线、母联和自备发电机间的备自投系统,也有执行数据交换的PLC系统。

PLC的软件系统

学过初级编程知识的人都知道循环语句。一旦程序进入死循环,程序事实上就是死机了。对于PLC来说也是如此。一旦PLC进入死循环,它的接口会复位,被控制量会发生严重问题。因此,PLC的程序语句是一条条顺序执行的,一直运行到最后一条再返回,不会出现死循环。即便是转移指令,只要转移条件满足就转移,否则跳过转移程序段继续执行。

这就是PLC软件系统的可靠性很高的原因之一。

我们看下图:

图5:PLC的模块化编程语言

图5摘自北京地铁工程的PLC程序局部。

PLC程序格式有两种,其一是梯形图格式,其二是模块化编程语言格式。对于较复杂的PLC程序,一般都采用模块化编程语言来编写。不管是梯形图也好,是模块化编程语言也好,它们都必须符合国际电工委员会IEC61131-3标准的要求。

下图是用于控制电机实现星三角转换的程序:

图6:电动机星三角转换的PLC程序局部

图6中的STEP2和STEP3就是转移程序端。如果不符合条件,程序会跳过转移程序段执行。

最有意思的是PLC的PID程序模块,很有使用价值。

给大家的建议

学习PLC技术,刚开始大都以梯形图为主。实际上,PLC刚开始学习时无非就是控制十字路口红绿灯等等,真正的PLC技术绝不仅仅在于此,只要做过一个工程,对PLC的认知就会大幅提升。

相关问答

C语言跟PLC在本质上有什么区别?是不是说PLC是C语言里面的一种?

估计你知道C语言是什么。PLC全称ProgrammableLogicController,可编程逻辑控制器,是硬件!多用来做嵌入式工业用控制计算机是工业生产自动化的关键因为嵌入式...

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

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

请问PLC的程序可以用C语言写还是c++来写?

不可以有汇编语言但是一般人都不会的PLC目前都是用梯形图编程SFCFD没有听说过C语言编写PLC程序不可以有汇编语言但是一般人都不会的PLC...

PLC的C语言怎么弄?

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

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

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

plc编程与传统编程有什么不同?

1.plc主要是用于非标自动化设备,而数控是针对标准机台(如车床、铣床,磨床等)。2.plc编程是开放的平台,可以根据自己的想法随意编写程序。加装功能模块后基...

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

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

plc五种编程语言?

plc编程语言如下1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟...

plc岗位为何要c语言?

PLC(可编程逻辑控制器)是一种专门用于工业自动化控制的电子设备。在PLC岗位中,使用C语言有以下几个原因:1.跨平台性:C语言是一种高级编程语言,它具有很强...

PLC编程和单片机编程有什么不同?

都是计算机,有cpu存储器等计算机具有的必要元件。1.PLC是建立在单片机之上的产品,单片机是一种可编程的集成芯片,换句话来说,plc就是由单片机加上外围...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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