s7-1200plc硬件结构及性能认识(PLC的逻辑运算指令)
在前面的几篇文章中介绍了移动操作指令、转换操作指令等,这篇文章就开始介绍一下逻辑运算指令吧。
在S7-1200 PLC中的逻辑运算指令包括了逻辑与运算、逻辑或运算、逻辑异或运算、逻辑取反运算、编码与译码指令、选择指令、多路复用与多路分用指令。
下面我们分别对这些指令进行解释说明。
1、逻辑运算指令逻辑与运算、逻辑或运算、逻辑异或运算、逻辑取反运算都是我们常见的逻辑运算指令,如果又用过S7-200/200 SMART PLC的同学会有了解,对于逻辑运算指令,其实基本PLC都是支持的,功能是也是一样的。
逻辑运算指令支持的数据类型是BYTE/WORD/DWORD这三种,这几个指令使用的还是比较多的,大家还是需要掌握一下。
逻辑与指令AND:当参与运算的所有数中对应的位是1时,那么结果就为1。
逻辑或指令OR:当参与运算的所有数中对应的位有1时,那么结果为1。
逻辑异或指令XOR:当参与运算的所有数中对应的位相同时,那么结果为0;不同时则为1。
逻辑取反指令INV:对输入的数按二进制位进行取反,也就是0变成1,1变成0。
上图中是在程序监控中以十六进制显示的,大家可以打开监控表将显示格式切换成二进制去看。
2、编码指令ENCO和译码指令DECO
编码指令选择输入的最低有效位,并将该位号写入到输出中去。
(注意:输入变量的数据类型为字符串,输出变量的数据类型是INT类型。)
译码指令首先读取输入的值,并将输出值中的位号与读取值对应的那个位置,输出值的其它位以零进行填充
(注意:输入变量的数据类型是UINT,输出变量的数据类型可以是BYTE/WORD/DWORD的数据类型。)
可能以这样的文字描述比较难理解,看一下下面的程序及对应的解释你就清楚了。
上图的程序中ENCO的输入 16#0B70,二进制数是0000_1011_0111_0000,最低有效位也就是为1的最低位是bit4位,所以输出MW14存储的就是4。DECO的输入是6,就将输出的bit6位设置为1,其他位设置为0,所以输出MW18的二进制数是0000_0000_0100_0000。
3、选择SEL、多路复用MUX、和多路分用DEMUX选择指令SEL是根据输入G的情况,从而选择输入IN0和输入IN1中的一个,把它的内容复制到输出OUT中。也就是说如果G的状态是0,那么就把IN0的值移动到OUT中去,如果G的状态是1,那么就把IN1的值移动到OUT中去。
其实这个指令可以代替一些场合的移动操作指令,也就是传送指令的使用。
多路复用指令MUX是以输入K中的值作为输入值IN端的编号,比如K的值等于1,就表示把IN1的值复制到输出OUT中去。对于这个指令,我们是可以增加它的输入管脚的,最多可以增加到多少呢?
最多是可以增加到32个管脚。如果K中的值不能表示输入管脚的编号的情况下,那么就把ELSE的值输出到OUT中去。
多路分用指令DEMUX的含义和多路复用指令MUX是有一定的相似的,DEMUX指令是以输入K的值作为输出OUT的编号,跟MUX一样,这个指令也是可以增加管脚的,但是增加的是输出的管脚。
如果K的值等于1,那么就把输入IN的值复制到OUT1中去,K的值等于2,就把输入IN的值复制到OUT2中去。
以上就是S7-1200 PLC的逻辑运算指令,指令中的选择SEL、多路复用MUX、和多路分用DEMUX这三个指令也是S7-200/200 SMART PLC没有的,如果是熟悉S7-200/200 SMART PLC的同学,可以重点学习这几个指令的使用即可啦~
到此为止,逻辑运算指令就介绍完了,下一篇文字继续给大家介绍其他指令——移位和循环移位指令,欢迎大家继续关注哦~
(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com