首页 理论教育 传送与比较指令的应用及作用

传送与比较指令的应用及作用

时间:2023-06-26 理论教育 版权反馈
【摘要】:传送与比较指令见表6-3。图6-18 ZCP指令2.传送指令1)传送指令MOV、MOV指令的编号为FNC12,该指令的功能是将源数据传送到指定的目标,见表6-5。2)移位传送指令SMOV、SMOV指令的编号为FNC13。使用多点传送指令FMOV时应注意:① 源操作数可取所有的数据类型,目标操作数可取KnX、KnM、KnS、T、C、D,n≤512;② 16位操作占7个程序步,32位操作则占13个程序步;图6-32 多点传送指令应用③ 如果元件号超出允许范围,则数据仅送到允许范围的元件中。

传送与比较指令的应用及作用

传送与比较指令(FNC10~FNC19)见表6-3。

表6-3 传送与比较指令

978-7-111-40557-3-Chapter06-22.jpg

1.比较指令、区间比较指令

比较指令包括CMP(比较)和ZCP(区间比较)两条指令。

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

区间比较指令ZCP、(D)ZCP(P)指令的编号为FNC11,指令执行时源操作数[S.]与源操作数[S1.]和源操作数[S2.]的内容进行比较,并将比较结果送到目标操作数[D.]中,见表6-4。

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

978-7-111-40557-3-Chapter06-23.jpg

【例6-4】 (见图6-16)

978-7-111-40557-3-Chapter06-24.jpg

图6-16 CMP指令

X000=OFF时,即使不执行CMP指令,M0~M2仍保持了X000=OFF之前的状态。应用其他指令的实现如图6-17所示。

978-7-111-40557-3-Chapter06-25.jpg

图6-17 应用其他指令的实现

【例6-5】 (见图6-18)

X000=OFF时即使不执行ZCP指令,M3~M5仍保持X000=OFF之前的状态。源操作数[S1.]的内容不得大于源操作数[S2.]的内容。假如指定M3作为目标,则M3、M4、MS自动地被占有。

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

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

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

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

978-7-111-40557-3-Chapter06-26.jpg

图6-18 ZCP指令

2.传送指令

1)传送指令MOV、(D)MOV(P)指令的编号为FNC12,该指令的功能是将源数据传送到指定的目标,见表6-5。

表6-5 传送指令

978-7-111-40557-3-Chapter06-27.jpg

传送指令格式如图6-19的所示。

能使数据照原样传送的指令,将源的内容向目标传送。X000为OFF时,数据不变化,常数K100被自动转换成BIN码。

使用应用MOV指令时应注意:

① 源操作数可取所有数据类型,标操作数可以是KnY、KnM、KnS、T、C、D、V、Z。

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

978-7-111-40557-3-Chapter06-28.jpg

图6-19 传送指令

【例6-6】(见图6-20)

978-7-111-40557-3-Chapter06-29.jpg

图6-20 传送指令应用

【例6-7】 定时器、计数器的当前值读出示例,如图6-21所示。

(T0)当前值给(D20),关于计数器也一样。

【例6-8】 定时器、计数器设定值的间接指定示例,如图6-22所示。

978-7-111-40557-3-Chapter06-30.jpg

图6-21 定时器、计数器的当前值读出示例图

978-7-111-40557-3-Chapter06-31.jpg

图6-22 定时器、计数器设定值的间接指定示例

(K100)给(D10),D10=K100(10s定时器)。

【例6-9】位软元件的传送如图6-23所示。

图6-23右图中,可用右面的MOV指令来表示左边的顺控程序。

【例6-10】32位数据的传送如图6-24所示。

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

978-7-111-40557-3-Chapter06-32.jpg

图6-23 位软元件的传送

978-7-111-40557-3-Chapter06-33.jpg

图6-24 32位数据的传送

978-7-111-40557-3-Chapter06-34.jpg

图6-25 移位传送指令SMOV

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

① 源操作数可取所有数据类型,目标操作数可为KnY、KnM、KnS、T、C、D、V、Z。

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

【例6-11】(见图6-26)

3)反相传送指令CML、(D)CML(P)指令的编号为FNC14。它将源操作数元件的数据逐位取反并传送到指定目标,如图6-27所示。

978-7-111-40557-3-Chapter06-35.jpg

图6-26 移位传送指令的应用

978-7-111-40557-3-Chapter06-36.jpg

图6-27 取反传送指令CML

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

① 源操作数可取所有数据类型,目标操作数可为KnY、KnM、KnS、T、C、D、V、Z。若源数据为常数K,则该数据会自动转换为二进制数。

② 16位运算占5个程序步,32位运算占9个程序步。

【例6-12】反相输入的读取如图6-28所示。

978-7-111-40557-3-Chapter06-37.jpg

图6-28 反相传送指令CML的应用(www.xing528.com)

4)块传送指令BMOV、BMOV(P)指令的编号为FNC15。它将源操作数指定元件开始的n个数据组成数据块传送到指定的目标,如图6-29所示。

978-7-111-40557-3-Chapter06-38.jpg

图6-29 块传送指令BMOV

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

① 源操作数可取KnX、KnY、KnM、KnS、T、C、D和文件寄存器,目标操作数可取KnT、KnM、KnS、T、C和D;

② 只有16位操作,占7个程序步;

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

【例6-13】带有位指定的位元件时,源和目标要采用相同的位数,如图6-30所示。

978-7-111-40557-3-Chapter06-39.jpg

图6-30 块传送指令BMOV的应用

5)多点传送指令FMOV、(D)FMOV(P)指令的编号为FNC16。它的功能是将源操作数中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同,如图6-31所示。

978-7-111-40557-3-Chapter06-40.jpg

图6-31 多点传送指令

将K0传送至D0~D9,同一数据的多点传送指令,如图6-32所示。

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

① 源操作数可取所有的数据类型,目标操作数可取KnX、KnM、KnS、T、C、D,n≤512;

② 16位操作占7个程序步,32位操作则占13个程序步;

978-7-111-40557-3-Chapter06-41.jpg

图6-32 多点传送指令应用

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

3.交换指令

(1)BCD码交换指令

源(BIN码)转换为目标(BCD码)的转换传送指令。

(2)BIN码交换指令

源(BCD码)转换为目标(BIN码)的转换传送指令。

【例6-14】 程序举例如图6-33所示。

978-7-111-40557-3-Chapter06-42.jpg

图6-33 BIN码的转换指令

(3)数据交换指令

数据交换指令(D)XCH(P)的编号为FNC17,它将数据在指定的目标元件之间的数据相互交换。如使用连续执行型指令时,每个扫描周期均进行数据交换,如图6-34所示。

978-7-111-40557-3-Chapter06-43.jpg

图6-34 数据交换指令

在M8160处于ON状态下,且D1与D2的软元件编号不同时,出错标志M8067变为ON状态,该指令无法执行。

这个扩展功能与FNC147(SWAP)指令的动作相同,通常情况下请使用FNC147(SWAP)指令。

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

1)操作数的元件可取KnY、KnM、KnS、T、C、D、V、Z;

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

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

4.数据变换指令(见表6-6)

表6-6 数据变换指令

978-7-111-40557-3-Chapter06-44.jpg

1)BCD码变换指令BCD、(D)BCD(P)指令的编号为FNC18,它将源元件中的二进制数转换成BCD码送到目标元件中。

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

2)BIN码变换指令BIN、(D)BIN(P)指令的编号为FNC19,它将源元件中的BCD码数据转换成二进制数据送到目标元件中,如图6-36所示。

978-7-111-40557-3-Chapter06-45.jpg

图6-35 BCD码数据变换指令

978-7-111-40557-3-Chapter06-46.jpg

图6-36 BIN码数据变换指令

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

① 源操作数可取KnK、KnY、KnM、KnS、T、C、D、V、Z,目标操作数可取KnY、KnM、KnS、T、C、D、V、Z;

② 16位运算占5个程序步,32位运算占9个程序步。

【例6-15】(见图6-37)

978-7-111-40557-3-Chapter06-47.jpg

图6-37 BCD码数据变换指令的应用

接线形式如图6-38所示。

四则运算(+-×÷)与增量指令、减量指令等编程控制器内的运算都用BIN码进行,因此PLC获取BCD码的数字开关信息时,要使用FNC19(BCD码→BIN码)转换传送指令。另外,向BCD码的七段显示器输出时应使用FNC18(BIN→BCD)转换传送指令,但一些特殊指令能自动地进行BCD码/BIN码转换。

指令说明:

① 使用BCD、BCD(P)指令时,如BCD码转换结果超出0~9999范围会出错。

② 当使用(D)BCD、(D)BCDP指令时,如BCD码转换结果超出0~99999999范围会出错。

③ 将PLC内的二制数据变为七段显示等的BCD码而向外部输出时使用该指令。

【例6-16】(见图6-39)。

指令说明:

① PLC获取BCD码数字开关的设定值时使用。

② 源数据不是BCD码时,会发生M8067(运算错误)、M8068(运算错误锁存)将不工作。

因为常数K自动地转换成二进制数,所以不成为这个指令操作软元件。

978-7-111-40557-3-Chapter06-48.jpg

图6-38 接线形式图

978-7-111-40557-3-Chapter06-49.jpg

图6-39 BIN码数据变换指令应用

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

我要反馈