S7-1200 PLC的逻辑运算指令详解!
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S7-1200 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的同学,可以重点学习这几个指令的使用即可啦~