西门子模块代理商
西门子PLC代理商
西门子授权代理商
西门子一级代理商
西门子总代理商
数据的分离
在PLC的通信中,往往需要把接收到的数据进行分离以便使用。如接收到某16位二进制数据,需要从这16位数据中把其高4位与其低12位分离。要实现这一目的,可采用完全整数除法或逻辑运算指令
1. 用完全整数除法实现
设需要分离的16位二进制数据存储在MWO中,将分离后的高4位数据存放于MW4中,低12位数据存放在MW2中,数据分离程序的梯形图与语句表如图6-70所示。
图6-70 用完全整数除法实现数据分离的梯形图和语句表程序
(a)梯形图;(b)语句表
若数据分离的MWO中存储的数为16#328E,根据完全除法指令,用该数据来除以16#1000,则商为16 #3、余数为16#28E,因此在MD2的低16位中存放商16#3,在MD2的高16位中存放余数16#28E,而MD2的低16位就是MW4,高16位就是MW2。
2. 用逻辑运算指令实现
采用逻辑运算实现数据分离的梯形图与语句表如图6-71所示。
图6-71 采用逻辑运算实现数据分离的梯形图和语句表程序
(a)梯形图;(b)语句表
在程序运行中,将MWO中的数据与16#OFFF进行逻辑与运算后,将MWO的高4位全部变成了0,因此也就实现了MWO的低12位的分离;将MWO中的数据与16#FOO0进行逻辑与运算后,将MWO的低12位全部变成了0,然后进行移位操作,将数据向右移12位就实现了高4位的分离。灵活采用进行逻辑运算的值,同时结合移位指令,就可以分离出任何所需位的位。
按比例放大模拟值
在工业控制中,会经常使用传感器来检测一些模拟量,如使用温度传感器检测温度。但是由于传感器所采集到的是电压值,如何把传感器所采集到的值换算成被测物理量的实际值,这就需要按比例放大模拟值。例如,知道温度传感器在低检测温度T....时,其输出电压为U...;在高检测温度T...时,其输出电压为Umu;需要找到输出电压为U时所对应的温度T。这一类问题都可以通过PLC的四则运算实现。
对于比例传感器,温度可以用下式算出
利用PLC来实现,梯形图与语句表如图6-72所示。
在转换前先将传感器标定的值存储在PLC内对应的存储器中,然后把传感器所采集到的模拟量也存入对应的位置,利用本程序就能得到对应的物理参数值。在另外一些需要放大模拟量值的时候,或者在进行单位转换时也都可以利用这样的程序来实现。
求解三函数值
在工业控制中有时为了计算某些三形的高度或者某些距离需要用到数学函数指令。例如需要求解75°正弦值,其梯形图与语句表如图6-73所示。
表中取数
在某些工程应用场合,需要用到较多的数据,在这种情况下,可以先把数据存取到表中,然后再从表中把数据取出来。
从表中取数的梯形图与语句表程序及执行结果如图6-74所示。
图6-72 按比例放大模拟值的梯形图和语句表程序
(a)梯形图;(b)语句表
图6-73 求解75°正弦值的梯形图和语句表程序
(a)梯形图;(b)语句表
PLC的编程元件
PLC的各种功能主要是通过运行控制程序来实现。编制程序时,需要合理使用PLC提供的编程元件(即软元件)。FPO型PLC中常用的编程元件有两种:位元件(bit)和字元件(word)。位元件实际上是PLC内存区域所提供的一个二进制位单元,又被称为软继电器,主要用作基本顺序指令的编程元件,如输入继电器Xn、输出继电器Yn、内部通用继电器Rn、定时(计数)器等,其参与控制的方式主要是通过对应触点的通断状态改变影响逻辑运算即输出。
字元件则为PLC内存区域内的一个字单元(16bit),主要用作功能指令和指令的编程元件,通常用以存放数据,如数据寄存器DTn,定时(计数)器的设定值SVn、经过值EVn等。字元件没有触点,通常以整体内容参与控制。
值得注意的是内存中的输入(X)区、输出(Y)区和内部通用(R)区,该区中的每个bit均可用作位元件,而且每16bit可构成一个字元件,如WRIO即是由16个位元件R100~R10F构成的字元件,该字元件中的内容一旦发生变化,这16个位的状态也随之发生改变。如:
图7 编程元件示例程序
图7所示程序中,WR0即为字元件,是左移位指令SR的编程元件,而Y0为输出软继电器的线圈,X0、X1、X2、X3则为输人软继电器的触点,其中4步的R4触点为位元件R4的常开触点,而位元件R4又是字元件WR0中的一位,因此其状态受限于WR0的移位结果。
四、顺序控制多步同输出的编程方法
顺序控制是生产现场常见的一类控制任务,步进指令是PLC指令库中于顺序控制的。步进指令编程时,根据工艺流程将程序划分为一个个立的程序段,执行时,CPU严格按梯形图编程顺序,只有执行完**段程序后才能下一段程序,并在下一段程序执行之前,将程序段复位。并且在语法上要求各程序段所使用的输出不允许重复。这在解决顺序控制任务中有多步同输出的情况时,就带来了一定的困难。借助于内部通用继电器可方便解决这一难题。如某一顺序控制任务如以下流程图(图8)所示。
图8 某机械手动作流程图
从机械手动作流程图可以看出,这个控制任务每个循环的工作可以划分为八步,其中1步与5步动作相同,均为上升;3步和7步动作相同,均为下降。在利用步进指令进行编程时,这两个工步所对应的程序段的输出不能直接设置为Y3、Y4,同一个输出使用两次则会出现语法错误。这时应考虑使用用于存储中间状态的内部通用继电器Rn来解决这个问题。如图7所示梯形图程序,其中R1、R5分别被定义为1步与5步的输出,R3、R7分别被定义为3步与7步的输出,在步进结束后再将R1、R5的状态输出到上升Y3,将R3、R7的状态输出到下降Y4,通过这样的方法可方便解决顺序控制任务中若干工步输出相同的问题。
图9 机械手控制梯形图
五、结束语
初学者对于PLC的基本应用易于掌握,但要做到灵活使用仍需对一些技术难点和使用技巧深刻理解。在编程之前,要对控制任务进行认真分析,合理选择外部设备和编程元件,并以此为基础进行编程;在编程过程中,如能灵话巧妙地使用编程元件,合理地进行程序编排,可使程序逻辑清楚,可读性增强。
6ES72111BE400XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES72111AE400XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES72111HE400XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES72121BE400XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES72121AE400XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES72121HE400XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES72141BG400XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES72141AG400XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES72141HG400XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES72151BG400XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72151AG400XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES72151HG400XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |