首页 理论教育 数据传送和比较指令的技巧优化

数据传送和比较指令的技巧优化

时间:2023-06-27 理论教育 版权反馈
【摘要】:如图5-14所示的程序,源数据被传送到指定目标中。图5-17 移位传送指令表现形式图5-18 移位传送指令执行过程2)SMOV指令中操作数的使用说明见表5-7。如果元件号超出允许元件号的范围,数据仅传送到允许范围内。传送顺序是自动决定的,以防止源数据被这条指令传送的其他数据冲掉。指令执行有连续执行和脉冲执行两种形式。

数据传送和比较指令的技巧优化

1.传送指令MOV(FNC12)

1)MOV指令的作用是将源元件的内容传送(复制)到目标软元件中,源元件中的数据不发生变化。如图5-14所示的程序,源数据被传送到指定目标中。

2)MOV指令执行形式有连续和脉冲两种。

3)MOV指令可执行16位的数据,也可执行32位数据,MOV指令执行32位数据时需在指令助记符前加D,如图5-15所示。

978-7-111-59091-0-Chapter05-22.jpg

图5-14 指令执行16位的数据示例

978-7-111-59091-0-Chapter05-23.jpg

图5-15 指令执行32位的数据示例

以下举例说明使用传送指令,以向输出端口送数的方式实现电动机978-7-111-59091-0-Chapter05-24.jpg-978-7-111-59091-0-Chapter05-25.jpg起动控制。

编写程序时关键是对输出端口的位信息进行控制,采用MOV指令时只要向对应的位送入控制位信息就可以。据电机978-7-111-59091-0-Chapter05-26.jpg-978-7-111-59091-0-Chapter05-27.jpg起动控制要求,编制参考程序如图5-16所示,图中X000、X001、X002分别为起动按钮、停止按钮、主电路FR触点,Y000、Y001、Y002分别为主电路接触器、电动机978-7-111-59091-0-Chapter05-28.jpg接法接触器、电动机978-7-111-59091-0-Chapter05-29.jpg接法接触器触点。

978-7-111-59091-0-Chapter05-30.jpg

图5-16 电动机978-7-111-59091-0-Chapter05-31.jpg978-7-111-59091-0-Chapter05-32.jpg起动控制梯形图

2.移位传送指令SMOV(FNC13)

1)指令的功能:以位数为单位(4位)进行数据的分配、合成。

指令表现形式如图5-17所示。传送源[S]和传送目标[D]的内容(0000~9999)转换成4位数的BCD码,从m1位数起的低m2位数部分被传送(合成)到传送目标[D]的以n位数起始的部分,然后转换成BIN,保存在传送目标[D]中。指令执行过程如图5-18所示。

978-7-111-59091-0-Chapter05-33.jpg

图5-17 移位传送指令表现形式

978-7-111-59091-0-Chapter05-34.jpg

图5-18 移位传送指令执行过程

2)SMOV指令中操作数的使用说明见表5-7。

5-7 SMOV指令中操作数使用说明

978-7-111-59091-0-Chapter05-35.jpg

(3)指令执行形式可以采用连续执行和脉冲执行两种。指令只能执行16位数据。

3.成批传送指令BMOV(FNC15)

(1)指令功能

对指定点数的多个数据进行成批传送(复制),或称多点对多点复制。

如图5-19所示,当X0为ON时,将源操作数(D5)开始的n个(n=3)数据组成的数据块传送到指定的目标(D8~D10)中。如果元件号超出允许元件号的范围,数据仅传送到允许范围内。

978-7-111-59091-0-Chapter05-36.jpg

图5-19 BMOV指令示例程序

(2)指令执行形式

指令执行形式可以采用连续执行和脉冲执行两种,指令只能执行16位数据。

(3)指令使用注意事项

1)如果源元件与目标元件的类型相同,当传送编号范围有重叠时同样能进行传送。如图5-20所示。传送顺序是自动决定的,以防止源数据被这条指令传送的其他数据冲掉。

978-7-111-59091-0-Chapter05-37.jpg

图5-20 编号范围重叠传送示例

2)在带有位数指定软元件的情况下,要求源和目标的指定位数必须相同。如图5-21所示,图中K1X0和K1Y0称作1点,如果是K2X0和K2Y0同样称作1点,只不过此时按n=2来传送,则是将X0~X17的信息传送到Y0~Y17。

4.多点传送指令FMOV(FNC16)

该指令可将源中同一数据传送到指定点数的软元件中,如图5-22所示。指令执行可以

978-7-111-59091-0-Chapter05-38.jpg

图5-21 带有位数指定软元件的传送示例(www.xing528.com)

978-7-111-59091-0-Chapter05-39.jpg

图5-22 多点传送示例

978-7-111-59091-0-Chapter05-40.jpg

图5-23 清零功能示例

5.比较指令CMP(FNC10)

(1)指令功用

比较两个值的大小,将比较的结果按大、一致、小分别输出给位软元件(3点)。

(2)表现形式

图5-24所示的程序中第一行为CMP指令的表现形式,其作用是将源[S1•]和[S2•]中的数据进行比较,结果送到目标[D•]中。执行指令时源中的数据按代数式进行比较(如-10<2),且所有源中的数据均按二进制数值处理。

图5-24中M10、M11、M12根据比较的结果进行动作,且M10、M11、M12的动作是唯一的。当M10、M11、M12中任一个接通,指令执行输入条件X0断开时,比较结果会保持。

当不需要比较结果时可用RST或ZRST指令进行复位,如图5-25所示。

指令执行数据的长度可以是16位或32位。指令执行有连续执行和脉冲执行两种形式。

指令中相关操作数使用说明如下:

1)源[S1•]和[S2•]是作为比较值的数据或软元件的编号,可用的操作数为KnM、KnS、KnX、KnY、T、C、D、V、Z、K、H、E(实数)。

978-7-111-59091-0-Chapter05-41.jpg

图5-24 比较指令示例

978-7-111-59091-0-Chapter05-42.jpg

图5-25 比较复位程序

2)目标[D•]是输出比较结果的起始位软元件编号,可用的操作数是Y、M、S。

3)一条CMP指令用到3个操作数,如果只指定了1或2个操作数,指令执行时就会出错,妨碍PLC正常运行。操作数的元件类别超出范围时也会出错,如X、D、T或C被指定作目标操作数时就会出错。

以下阐述密码锁控制示例。用比较器可构成密码锁系统,密码锁有12个按钮,分别接入X000~X013,其中X000~X003代表第一个十六进制数;X004~X007代表第二个十六进制数;X010~X013代表第三个十六进制数。根据设计要求,每次同时按4个键,分别代表3个十六进制数,共按4次。如与密码锁设定值都相符合,3s后,密码锁可以开启,10s后,重新锁定。

密码锁的密码由程序设定。假定为H2A4、H01E、H151、H18A,从K3X000上送入的数据应分别和它们相等,这可以用比较指令实现,梯形图如图5-26所示。

978-7-111-59091-0-Chapter05-43.jpg

图5-26 密码锁参考程序示例

6.区间比较指令ZCP(FNC11)

(1)指令功能

针对两个值的区间,将与比较源的值比较得出的结果按上、中、下三点分别输出到位软元件3点中。

(2)指令表现形式

图5-27和图5-28所示的程序为ZCP区间比较指令的两种表现形式,M20、M21、M22的状态取决于比较结果,且比较结果不受输入指令(X0)ON/OFF的影响,指令执行一次后,其比较结果就保存下来。可采用相关程序进行复位。

978-7-111-59091-0-Chapter05-44.jpg

图5-27 ZCP指令表形式1

978-7-111-59091-0-Chapter05-45.jpg

图5-28 ZCP指令表形式2

指令执行数据的长度为16位或32位。指令执行有连续执行和脉冲执行两种形式。

指令中相关操作数使用说明如下:

1)源[S1•]是下侧比较值的数据或软元件的编号,可用的操作数为KnM、KnS、KnX、KnY、T、C、D、V、Z、K、H。

2)源[S2•]是上侧比较值的数据或软元件的编号,可用的操作数为KnM、KnS、KnX、KnY、T、C、D、V、Z、K、H。

3)目标[D•]是输出比较结果的起始位软元件编号(占用3点),可用的操作数为Y、M、S。注意不要与控制应用中所使用的其他软元件重复。

4)指令中源[S1•]的数据不得大于源[S2•]的数据,执行结果如图5-27所示。但是如果[S1•]的数据大于[S2•],则执行结果如图5-28所示,[S1•]=K120,[S2•]=K100,执行ZCP指令时看作[S1•]=K100。源数据的比较是按代数式进行比较。

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

我要反馈