首页 理论教育 传送与比较指令详解

传送与比较指令详解

时间:2023-07-02 理论教育 版权反馈
【摘要】:传送与比较指令如表4-3所示。示例及使用:如图4-17所示,当X0为ON时,把C30当前值与K100和K120相比较,将结果送M3、M4、M5中。图4-16 比较指令的使用图4-17 区间比较指令的使用使用指令CMP/ZCP时应注意:1)[S1.]、[S2.]可取任意数据格式,目标操作数[D.]可取Y、M和S。它是将源的操作数元件的数据逐位取反,并传送到指定目标。图4-22 多点传送指令的使用2)16位操作运算时占7个程序步,32位操作运算时则占13个程序步。

传送与比较指令详解

传送与比较指令(FNC10~FNC19)如表4-3所示。

表4-3 传送与比较指令

978-7-111-38047-4-Chapter04-18.jpg

1.比较与区间比较指令

比较指令包括CMP(比较)和ZCP(区间比较)两条,如表4-4所示。

表4-4 CMP(比较)、ZCP(区间比较)指令

978-7-111-38047-4-Chapter04-19.jpg

(1)比较指令CMP

(D)CMP(P)指令的功能是将源的操作数[S1.]和[S2.]数据进行比较,比较结果用目标元件[D.]的状态来表示。

示例及使用:如图4-16所示,当X1为接通时,把常数100与C20的当前值进行比较,比较的结果送入M0~M2中。X1为OFF时不执行,M0~M2的状态也保持不变。

(2)区间比较指令ZCP

(D)ZCP(P)指令的功能是将源的操作数[S.]与[S1.]和[S2.]的内容进行比较,并比较结果送到目标操作数[D.]中。

示例及使用:如图4-17所示,当X0为ON时,把C30当前值与K100和K120相比较,将结果送M3、M4、M5中。X0为OFF,则ZCP不执行,M3、M4、M5不变。

978-7-111-38047-4-Chapter04-20.jpg

图4-16 比较指令的使用

978-7-111-38047-4-Chapter04-21.jpg

图4-17 区间比较指令的使用

使用指令CMP/ZCP时应注意:

1)[S1.]、[S2.]可取任意数据格式,目标操作数[D.]可取Y、M和S。

2)使用ZCP时,[S2.]的数值不能小于[S1.]。

3)所有的源的数据都被看成二进制值处理。

2.传送类指令

(1)传送指令MOV

MOV(传送)指令如表4-5所示。

表4-5 MOV(传送)指令

978-7-111-38047-4-Chapter04-22.jpg

(D)MOV(P)指令的功能是将源的数据传送到指定的目标。如图4-18所示,当X0为ON时,则将[S.]中的数据K100传送到目标操作元件[D.]即D10中。在指令执行时,常数K100会自动转换成二进制数。当X0为OFF时,则指令不执行,数据保持不变。

使用MOV指令时应注意:

1)源操作数可取所有数据类型,目标操作数可以是Kn Y、Kn M、Kn S、T、C、D、V、Z。

2)16位运算时占5个程序步,32位运算时则占9个程序步。

978-7-111-38047-4-Chapter04-23.jpg

图4-18 传送指令的使用

(2)移位传送指令SMOV

SMOV(P)指令的编号为FNC13。该指令的功能是将源数据(二进制)自动转换成4位BCD码,再进行移位传送,传送后的目标操作数元件的BCD码自动转换成二进制数。

如图4-19所示,当X1为ON时,将D1中右起第4位(m1=4)开始的2位(m2=2)BCD代码移到目标操作数D2的右起第3位(n=3)和第2位。然后D2中的BCD码会自动转换为二进制数,而D2中的第1位和第4位BCD码不变。

使用移位传送指令时应该注意:

1)源操作数可取所有数据类型,目标操作数可为Kn Y、Kn M、Kn S、T、C、D、V、Z。

2)SMOV指令只有16位运算,占11个程序步。

(3)取反传送指令CML

(D)CML(P)指令的编号为FNC14。它是将源的操作数元件的数据逐位取反,并传送到指定目标。

如图4-20所示,当X0为ON时,执行CML,将D0的低4位取反向后传送到Y3~Y0中。

978-7-111-38047-4-Chapter04-24.jpg

图4-19 移位传送指令的使用

使用取反传送指令CML时应注意:

1)源的操作数可取所有数据类型,目标操作数可为Kn Y、Kn M、Kn S、T、C、D、V、Z,若源数据为常数K,则该数据会自动转换为二进制数。(www.xing528.com)

2)16位的操作运算用5个程序步,32位的操作运算用9个程序步。

978-7-111-38047-4-Chapter04-25.jpg

图4-20 取反传送指令的使用

(4)块传送指令BMOV

BMOV(P)指令的编号为FNC15,是将源的操作数指定的元件开始的n位数据组成数据块传送到指定的目标。

如图4-21所示,传送顺序既可从高元件号开始,也可从低元件号开始,传送顺序自动决定。若需要位元件指定位数,源的操作数和目标的操作数的指定位数应相同。

使用块传送指令时应注意:

1)源的操作数可取Kn X、Kn Y、Kn M、Kn S、T、C、D和文件寄存器,目标操作数可取Kn T、Kn M、Kn S、T、C和D。

2)只有16位操作,占7个程序步。

3)如果元件号超出允许范围,数据则仅传送到允许范围的元件。

978-7-111-38047-4-Chapter04-26.jpg

图4-21 块传送指令的使用

(5)多点传送指令FMOV

(D)FMOV(P)指令的编号为FNC16。它的功能是将源地址中的数据传送到指定目标开始的n个元件中,这n个元件中的数据完全相同,指令中给出的是目标元件的首地址。常用于对某一段数据寄存器的清零或置相同的初始值。

如图4-22所示,当X0为ON时,把K0传送到D0~D9中。

使用多点传送指令FMOV时应注意:

1)源操作数可取所有的数据类型,目标操作数可取Kn X、Kn M、Kn S、T、C和D,n小于等于512。

978-7-111-38047-4-Chapter04-27.jpg

图4-22 多点传送指令的使用

2)16位操作运算时占7个程序步,32位操作运算时则占13个程序步。

3)如果元件号超出允许范围,数据仅送到允许范围的元件中。

3.数据交换指令

数据交换指令(D)XCH(P)的编号为FNC17,它是将数据在指定的目标元件之间交换。如图4-23所示,当X0为ON时,将D1和D19中的数据相互交换。

978-7-111-38047-4-Chapter04-28.jpg

图4-23 数据交换指令的使用

使用数据交换指令应该注意:

1)操作数的元件可取Kn Y、Kn M、Kn S、T、C、D、V和Z。

2)交换指令一般采用脉冲执行方式,否则在每一次扫描周期都要交换一次。

3)16位运算时占5个程序步,32位运算时占9个程序步。

4.数据变换指令

BCD(转换指令)、BIN(二进制转换指令)指令如表4-6所示。

表4-6 BCD(转换指令)、BIN(二进制转换指令)

978-7-111-38047-4-Chapter04-29.jpg

(1)BCD变换指令BCD

(D)BCD(P)指令的功能是将源元件中的二进制数转换成BCD码送到目标元件中,如图4-24所示。

如果指令进行16位操作时,执行结果超出0~9999范围将会出错;当指令进行32位操作时,执行结果超过0~99999999范围也将出错。PLC中内部的运算为二进制运算,可用BCD指令将二进制数变换为BCD码输出到七段显示器

(2)BIN变换指令BIN

(D)BIN(P)指令的功能是将源元件中的BCD数据转换成二进制数据送到目标元件中,如图4-24所示。常数K不能作为本指令的操作元件,因为在任何处理之前它们都会被转换成二进制数。

978-7-111-38047-4-Chapter04-30.jpg

图4-24 数据变换指令的使用

使用BCD/BIN指令时应注意:

1)源操作数可取Kn X、Kn Y、Kn M、Kn S、T、C、D、V和Z,目标操作数可取Kn Y、Kn M、Kn S、T、C、D、V和Z。

2)16位操作运算时占5个程序步,32位操作运算时占9个程序步。

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

我要反馈