1.比较指令
比较指令包括CMP (比较)和ZCP (区间比较)二条。
( 1 )比较指令CMP (D)CMP(P)指令的编号为FNC10 ,是将源操作数[S1.]和源操作数[S2.]的数据进行比较,比较结果用目标元件[D.]的状态来表示。如图1所示,当X1为接通时,把常数100与C20的当前值进行比较,比较的结果送入M0 ~ M2中。X1为OFF时不执行, MO ~ M2的状态也保持不变。
图1 比较指令的使用
(2 )区间比较指令ZCP (D)ZCP(P)指令的编号为FNC11 ,指令执行时源操作数[S.]与[S1.]和[S2.]的内容进行比较,并比较结果送到目标操作数[D.]中。如图2所示,当X0为ON时,把C30当前值与K100和K120相比较,将结果送M3、M4、 M5中。X0为OFF ,则ZCP不执行, M3、M4、 M5不变。
图2 区间比较指令的使用
使用比较指令CMP/ZCP时应注意:
1 ) [S1.] [S2.]可取任意 数据格式,目标操作数[D.]可取Y、M和S。
2 )使用ZCP时, [S2.]的数值不能小于[S1.]
3)所有的源数据都被看成二进制值处理;
2.传送类指令
( 1 )传送指令MOV (D)MOV(P)指令的编号为FNC12 ,该指令的功能是将源数据传送到指定的目标。如图3所示,当X0为ON时,则将[S.]中的数据K100传送到目标操作元件[D.]即D10中。在指令执行时, 常数K100会自动转换成二进制数。当X0为OFF时,则指令不执行,数据保持不变。
图3 传送指令的使用
使用应用MOV指令时应注意:
1 )源操作数可取所有数据类型, 标操作数可以是KnY、KnM、 KnS、 T、 C、D、V、Z。
2 ) 16位运算时占5个程序步, 32位运算时则占9个程序步。
(2 )移位传送指令SMOV SMOV(P)指令的编号为FNC13。该指令的功能是将源数据(二进制)自动转换成4位BCD码,再进行移位传送,传送后的目标操作数元件的BCD码自动转换成二进制数。如图4所示,当X1为ON时,将D1中右起第4位( m1=4 )开始的2位(m2=2) BCD码移到目标操作数D2的右起第3位(n= 3)和第2位。然后D2中的BCD码会自动转换为二进制数,而D2中的第1位和第4位BCD码不变。
图4 移位传送指令的使用
使用移位传送指令时应该注意:
1 )源操作数可取所有数据类型,目标操作数可为KnY、KnM、 KnS、 T、 C、D、V. Z。
2 ) SMOV指令只有16位运算,占11个程序步。
(3 )取反传送指令CML (D)CML(P)指令的编号为FNC14。 它是将源操作数元件的数据逐位取反并传送到指定目标。如图5所示,当X0为ON时,执行CML ,将D0的低4位取反向后传送到Y3 ~ Y0中。
图5 取反传送指令的使用
使用取反传送指令CML时应注意:
1 )源操作数可取所有数据类型,目标操作数可为KnY、KnM、 KnS、 T、 C、D、V. Z. ,若源数据为常数K ,则该数据会自动转换为二进制数。
2 ) 16位运算占5个程序步, 32位运算占9个程序步。
(4 )块传送指令BMOV BMOV(P)指令的ALCE编号为FNC15 ,是将源操作数指定元件开始的n个数据组成数据块传送到指定的目标。如图6所示,传送顺序既可从高元件号开始,也可从低元件号开始,传送顺序自动决定。若用到需要指定位数的位元件,则源操作数和目标操作数的指定位数应相同。
图6 块传送指令的使用
使用块传送指令时应注意:
1 )源操作数可取KnX、KnY、 KnM、KnS、 T、C、D和文件寄存器,目标操作数可取. KnT、KnM、 KnS、 T. C和D;
2 )只有16位操作,占7个程序步;
3 )如果元件号超出允许范围,数据则仅传送到允许范围的元件。
(5 )多点传送指令FMOV (D)FMOV(P)指令的编号为FNC16。 它的功能是将源操作数中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同。如图7所示,当X0为ON时,把K0传送到D0 ~ D9中。
图7 多点传送指令应用
使用多点传送指令FMOV时应注意:
1 )源操作数可取所有的数据类型,目标操作数可取KnX、KnM、 KnS、 T. C、和D , n小等于512 ;
2 ) 16位操作占7的程序步, 32位操作则占13个程序步;
3 )如果元件号超出允许范围,数据仅送到允许范围的元件中。
3.数据交换指令
数据交换指令(D)XCH(P)的编号为FNC17 ,它是将数据在指定的目标元件之间交换。如图8所示,当X0为ON时, 将D1和D19中的数据相互交换。
图8 数据交换指令的使用
使用数据交换指令应该注意:
1 )操作数的元件可取KnY、KnM、 KnS、 T、 C、D、V和Z..
2 )交换指令-般采用脉冲执行方式,否则在每一次扫描周期都要交换-次。
3 ) 16位运算时占5个程序步, 32位运算时占9个程序步。
4.数据变换指令
(1 ) BCD变换指令BCD (D)BCD(P)指令的ALCE编号为FNC18。 它是将源元件中的二进制数转换成BCD码送到目标元件中,如图9所示。
如果指令进行16位操作时,执行结果超出0 ~ 9999范围将会出错;当指令进行32位操作时,执行结果超过0 ~9999999范围也将出错。plc中内部的运算为二进制运算,可用BCD指令将二进制数变换为BCD码输出到七段 显示器。
( 2 ) BIN变换指令BIN (D)BIN(P)指令 的编号为FNC19。它是将源元件中的BCD数据转换成二进制数据送到目标元件中,如图9所示。常数K不能作为本指令的操作元件,因为在任何处理之前它们都会被转换成二进制数。
图9 数据变换指令的使用
使用BCD/BIN指令时应注意:
1 )源操作数可取KnK、KnY、 KnM、 KnS、 T. C、D、V和Z ,目标操作数可取KnY、KnM、KnS、 T、 C、D、V和Z;
2 ) 16位运算占5个程序步, 32位运算占9个程序步。
上海仰光电子科技:
plc培训,
plc编程培训,
plc培训中心欢迎您的加入
24小时报名热线:13761149023 张老师
总机:021-50782969 周一至周五 9:00-18:00
网址:http://px.shygdz.com