5.3 比较与传送指令
★
4)SMOV(P)指令只有16位运算,占11个程序步。
15
5.3.5 取反传送指令
取反传送指令CML(Complement)的功能编号为FNC14,该 指令的功能是将源操作数[S.]中的各位二进制数取反(0→1, 1→0),按位传送到目标操作数[D.]中。取反传送指令的使用示 例如图5-18所示。
X0 BIN [S.] [D.] K2X0 D10
图5-23 BIN变换指令的使用
26
5.3.10 BIN变换指令
【例5-5】试设计1个简易定时报时器,具体控制要求如下:
1)早晨6:30,电铃(Y0)每秒响1次,6次后自动停止。 ★ 2)9:00~17:00,启动住宅报警系统(Y1)。 ★ 3)晚上6:00开启园内照明(Y2)。 ★ 4)晚上10:00关闭园内照明(Y2)。
图5-20 多点传送指令的使用
20
5.3.7 多点传送指令
注意事项:
★ ★
1)如果元件号超过允许的范围,数据仅传送到允许的范围。 2)源操作数可以取所有数据类型,目标操作数可以取 KnY、
KnM、KnS、T、C、D、V和Z,其中n≤512。
★
3)FMOV(P)占7个程序步,DFMOV(P)占13个程序步。
1)如果元件号超过允许的范围,数据仅传送到允许的范围。 2)源操作数可以取KnX、KnY、KnM、KnS、T、C、D和文件
寄存器,目标操作数可以取KnY、KnM、KnS、T、C、D和文
件寄存器。
★
3)M8024为BMOV指令的方向特殊功能继电器,如果M8024为 ON,传送的方向相反,即将目标数据块中的数据传送到源 数据块中。
★
★
2)如果源数据为常数K,该数据会自动转换为二进制数。
3)CML(P)占5个程序步,DCML(P)占9个程序步。
17
5.3.6 块传送指令
块传送指令BMOV(Block Move)的功能编号为FNC15,该指 令是将源操作数指定的元件开始的n个数据组成的数据块传送到 指定的目标,n可以取K、H和D。块传送指令的使用示例如图5-19 所示。
传送指令MOV(Move)的功能编号为FNC12,该指令的功
能是将源操作数[S.]的内容传送到目标操作数[D.]中。传送指
令的使用示例如图5-15所示。
X0 MOV X1 DMOV [S.] [D.] K100 D10
[S.] [D.] D10 D12
图5-15 传送指令的使用
10
5.3.3 传送指令
★
2)BCD(P)占5个程序步,DBCD(P)占9个程序步。
25
5.3.10 BIN变换指令
BIN(Binary)变换指令的功能编号为FNC19,该指令是将
源元件中的BCD数据转换成二进制数据送到目标元件中。可以用
BIN指令将BCD数字拨码开关提供的设定值输入到PLC,如果源元 件中数据不是BCD码,将会出错。 BIN变换指令的使用示例如图5-23所示。
如图5-12所示。
2
5.3.1 比较指令
X0 CMP M0 K100>C10,M0=1 M1 K100=C10,M1=1 M2 K100<C10,M2=1 [S1.] [S2.] [D.] K100 C10 M0
当X0为OFF时,不进行比
较,M0-M2的状态保持不变;
当X0为ON时(接通),比较指 令将十进制常数100和计数器 C10的当前值进行比较,比较 结果送到M0-M2中。
13
5.3.4 移位传送指令
X0 SMOV [S.] D1 m1 K4 m2 K2 [D.] D2 n K3
第4位 103
第3位 102
第2位 101
第1位 100
D1(16位二进制) (自动转换) D1(4位BCD码)
103
102
101
100
D2(4位BCD码) (自动转换) D2(16位二进制)
若[S1.]>[S2.],M0置1;
若[S1.]<[S2.],M2置1;若
图5-12 比较指令的使用
[S1.]=[S2.],M1置1。
3
5.3.1 比较指令
注意事项:
★ ★
1)按代数形式进行大小比较。例:(-5<2)。 2)指定的元件种类或元件号超出允许范围时将会出错。
★
3)源操作数可以取任意的数据格式,目标操作数可以取
5-14所示。
7
5.3.2 区间比较指令
X0 ZCP M0 C10当前值<K100,M0=1 M1 K100≤C10当前值≤K200,M1=1 M2 C10当前值>K200,M2=1 [S1.] [S2.] [S.] [D.] K100 K200 C10 M0
图5-14 区间比较指令的使用
8
5.3.2 区间比较指令
注意事项:
★
1)源操作数可以取所有数据格式,而目标操作数可取
KnY、KnM、KnS、T、C、D、V、Z。
★
2)MOV(P)占5个程序步,DMOV(P)占9个程序步。
11
5.3.3 传送指令
【例5-4】用传送指令实现8人抢答电路:
要求8个指示灯Y0~Y7对应8个抢答按钮X0~X7,在主持人
按下开始按钮X10后,才可以抢答,先按按钮者的灯亮,同时蜂 鸣器Y10响,后按按钮者灯不亮。则按要求其设计的梯形图如图 5-16所示。
图5-17 移位传送指令的使用
14
5.3.4 移位传送指令
注意事项:
★
1)数据寄存器D只能存放二进制数,所以SMOV指令只是在 传送的过程中以BCD码的方式传送,而到达指定目标D后仍
以二进制数存放。
★ ★
2)BCD码值超过9999时会出错。 3)源操作数可以取所有数据格式,而目标操作数可取KnY、 KnM、KnS、T、C、D、V、Z。
21
5.3.8 数据交换指令
数据交换指令XCH(Exchange)的功能编号为FNC17,该指 令是将数据在指定的目标元件之间进行交换。交换指令一般采用 脉冲执行方式,否则每一个扫描周期都要交换一次。数据交换指 令的使用示例如图5-21所示。
X0 XCHP
[D1.] [D2.] D0 D10
图5-21 数据交换指令的使用
22
5.3.8 数据交换指令
注意事项:
★
1)两个目标操作数可以取KnY、KnM、KnS、T、C、 D 、V 和Z 。
★
2)XCH(P)占5个程序步,DXCH(P)占9个程序步。
23
5.3.9 BCD变换指令
BCD(Binary Code to Decimal)变换指令的功能编号为 FNC18,该指令是将源元件中的二进制数转换为BCD码并送目标元 件中。 如果执行的结果超过0~9999的范围,或者32位操作时超过
注意事项:
★ ★
1)按代数形式进行大小比较。
2)[S1.]中的数据不能大于[S2.]中的数据,如果[S1.]
大于[S2.],则[S2.]被看作与[S1.]一样大。
★
3)源操作数可以取所有数据格式,而目标操作数可取Y、 M、S。
★
4)ZCP(P)占7个程序步,DZCP(P)占13个程序步。
9
5.3.3 传送指令
★
4)BMOV(P)只有16位操作,占7个程序步。
19
5.3.7 多点传送指令
多点传送指令FMOV(Fill MБайду номын сангаасve)的功能编号为FNC17,该 指令是将源操作数中的数据传送到指定目标开始的n个文件中, 传送后n个文件中的数据完全相同。多点传送指令的使用示例如 图5-20所示。
X0 FMOV [S.] [D.] K1 D0 n K8
CMP
C1
K72
M4
CMP
C1
K88
M7
晚10:00设定 M10 9:00~17:00设定
ZCP M2
K36
K68
C1
T0 M8013 T0 Y0 M5 SET M8 RST M11 Y1 Y2 Y2
K60
每隔1s的6次鸣响
园内照明开启
园内照明结束 报警系统开启
图5-24 定时报时器梯形图
28
Y、M和S。
★
4)CMP(P)占7个程序步,DCMP(P)占13个程序步。
4
5.3.1 比较指令
【例5-3】密码锁设计
密码锁的设计如图5-13所示(其中左图为梯形图,右图为
接线图),设置4位密码8251。将数字开关拨到8时按一下确认
键,再分别在拨到2、5、1时按一下确认键,电磁锁Y0得电开锁。
5.3 比较与传送指令
比较指令 取反传送 指令
区间比较 指令 块传送指 令
传送指令 多点传送 指令
移位传送 指令 数据交换 指令
BCD变换 指令
BIN取反 指令
1
5.3.1 比较指令
比较指令CMP(Compare)的功能编号FNC10,是将源操作 数[S1.]和[S2.]的数据进行比较,将比较的结果送到目标操作 数[D.]中,并且占用3个连续单元。比较指令的简单使用示例
0~99999999的范围时,PLC会认定为错误。BCD变换指令常用于
将PLC中的二进制数变换成BCD码输出以驱动LED显示器。BCD变换 指令的使用如图5-22所示。
X0 BCD [S.] [D.] D0 K2Y0
图5-22 BCD变换指令的使用
24
5.3.9 BCD变换指令
注意事项:
★
1)源操作数可取所有数据格式,目标操作数可取 KnY、KnM、 KnS、T、C、D、V和Z。
T0
K20
T0 ZRST M0 M11 复位比较结果
图5-13 密码锁