xor运算


在之前的文章中,我们已经讨论了移动和转换等操作指令。接下来,让我们来探讨一下S7-1200 PLC中的逻辑运算指令。

在S7-1200 PLC系统中,逻辑运算指令涵盖了逻辑与、逻辑或、逻辑异或、逻辑非运算,以及编码、译码、选择、多路复用和多路分用等指令

接下来,我们将逐一解释这些指令的具体内容和用法。

逻辑与、逻辑或、逻辑异或和逻辑非运算,这些是基础的逻辑运算指令。对于使用过S7-200/200 ART PLC的用户来说,这些指令的功能和操作方式应该是非常熟悉的。在大多数PLC系统中,这些指令都起着相似的作用,并支持BYTE/WORD/DWORD数据类型的运算。

对于逻辑与指令AND,当所有参与运算的数在相应位上均为1时,结果才为1。

逻辑或指令OR则是在所有参与运算的数中,只要有任何一个数的相应位为1,结果就为1。

逻辑异或指令XOR的特点是,当参与运算的两个数的相应位相结果为0;不同时则为1。

而逻辑非指令INV则是对输入的数进行二进制位的反转,即0变为1,1变为0。

在程序监控中,这些运算通常以十六进制显示,用户可以切换至二进制格式查看,以更好地理解运算过程。

编码指令会选择输入中的最低有效位,并将其位号写入输出中。需要注意的是,输入变量的数据类型为字符串,而输出变量的数据类型是INT类型。

译码指令则首先读取输入的值,并在输出值中,将与读取值对应位号的位置设为有效值,其他位则用零填充。这里需要注意的是,输入变量的数据类型是UINT,而输出变量的数据类型可以是BYTE/WORD/DWORD的数据类型。

为了更好地理解这些指令的使用方法和效果,我们可以参考下面的程序及其解释。

在上述程序中,ENCO的输入值为十六进制数160B70,其二进制表示为0000_1011_0111_0000。当执行ENCO指令时,最低有效位(bit4位)的值被复制到MW14中,因此MW14存储的值为4。</而对于DECO指令,当输入值为6时,输出的bit6位将被设置为1,其他位则被设置为0,所以输出MW18的二进制数为0000_0000_0100_0000。

选择指令SEL根据输入G的状态,选择输入IN0或IN1的内容,并将其复制到输出OUT中。如果G为0,IN0的值将被复制到OUT;如果G为1,IN1的值将被复制到OUT。

多路复用指令MUX以输入K的值作为输入值IN端的编号。例如,当K的值为1时,IN1的值将被复制到输出OUT中。我们还可以增加该指令的输入管脚数量,最多可达32个。

多路分用指令DEMUX与MUX相似但方向相反。它以输入K的值作为输出OUT的编号。该指令也可以增加输出管脚的数量。

以上就是S7-1200 PLC的逻辑运算指令的详细介绍。其中SEL、MUX和DEMUX这三个指令在S7-200/200 ART PLC中并没有。对于熟悉S7-200/200 ART PLC的用户来说,这几个新的指令可能需要额外学习和适应。