首页 理论教育 逻辑运算指令详解

逻辑运算指令详解

时间:2023-06-18 理论教育 版权反馈
【摘要】:DIFU指令用于上升沿检测,检测信号的宽度为1个PLC循环周期。图8.4-2 DIFD指令的编程格式2.字节、字、双字逻辑运算指令1)MOVE指令。例如,对于图8.4-3中的指令,当R400=11100101时,通过与操作数“10011111”的“与”运算,在结果寄存器R200中得到的结果为10000101。图8.4-5 AND指令的编程格式执行指令可将输入数据地址中的1~4字节数据和指令参数的操作数进行逐位逻辑“与”运算,运算结果输出到结果数据存储器中。

逻辑运算指令详解

1.边沿检测指令

边沿检测指令DIFU和DIFD可用于信号的上升或下降沿检测,指令的编程格式和功能如下。

1)DIFU指令。DIFU指令用于上升沿检测,检测信号的宽度为1个PLC循环周期。指令的编程格式如图8.4-1所示。指令中的ACT为输入信号,WRT为上升沿输出,指令参数中的上升沿号是以常数定义的边沿编号,不同ACT输入触点的边沿应使用不同的编号,参数的输入范围为1~256。

978-7-111-42089-7-Chapter08-69.jpg

图8.4-1 DIFU指令的编程格式

2)DIFD指令。DIFD指令用于下降沿检测,指令作用和参数定义方法同DIFU,指令的编程格式如图8.4-2所示。

978-7-111-42089-7-Chapter08-70.jpg

图8.4-2 DIFD指令的编程格式

2.字节、字、双字逻辑运算指令

1)MOVE指令。MOVE指令用于字节“与”运算,指令同时具有传送的功能,其编程格式如图8.4-3所示。

执行MOVE指令可将输入数据地址中所定义的1字节数据的高4位和低4位,分别和指令参数中的高4位操作数、低4位操作数逐位进行逻辑“与”运算,运算结果输出到结果数据存储器中。

例如,对于图8.4-3中的指令,当R400=11100101时,通过与操作数“10011111”的“与”运算,在结果寄存器R200中得到的结果为10000101。

978-7-111-42089-7-Chapter08-71.jpg

图8.4-3 MOVE指令的编程格式

2)MOVOR指令。MOVOR指令用于字节“或”运算,指令同样具有传送的功能,其编程格式如图8.4-4所示。

978-7-111-42089-7-Chapter08-72.jpg

图8.4-4 MOVOR指令的编程格式

执行指令可将输入数据地址中的1字节数据和操作数地址中所定义的数据进行逐位逻辑“或”运算,运算结果输出到结果数据存储器中。(www.xing528.com)

例如,对于图8.4-4中的指令,当R400=1110 0101、R100=1001 1111时,通过位“或”运算,在结果寄存器R200中得到的结果为1111 1111。

3)AND指令。AND指令可用于字节、字、双字的“与”运算,指令同时具有传送的功能,其编程格式如图8.4-5所示。

978-7-111-42089-7-Chapter08-73.jpg

图8.4-5 AND指令的编程格式

执行指令可将输入数据地址中的1~4字节数据和指令参数的操作数(存储器地址或常数)进行逐位逻辑“与”运算,运算结果输出到结果数据存储器中。

指令参数中的操作数格式以4位十进制数的形式定义,前2位用来指定操作数的形式,00为常数,10为存储器地址;后2位用来定义操作数长度,01、02、04分别代表1、2、4字节。

4)OR指令。OR指令用于字节、字、双字的“或”运算,除了运算方式不同外,指令的其他含义与AND相同,其编程格式如图8.4-6所示。

978-7-111-42089-7-Chapter08-74.jpg

图8.4-6 OR指令的编程格式

5)EOR指令。EOR指令用于字节、字、双字的“异或”运算,除了运算方式不同外,指令的其他含义与AND指令相同,编程格式如图8.4-7所示。

978-7-111-42089-7-Chapter08-75.jpg

图8.4-7 EOR指令的编程格式

6)NOT指令。NOT指令用于字节、字、双字的“非”运算,指令的编程格式如图8.4-8所示。

978-7-111-42089-7-Chapter08-76.jpg

图8.4-8 NOT指令的编程格式

执行指令可将输入数据地址中的1~4字节内容逐位“取反”后,输出到结果数据存储器中。指令参数中的数据格式为4位十进制数,前2位规定为00;后2位用来定义输入数据长度,01、02、04分别代表1、2、4字节。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈