PLC功能指令和应用Word文档格式.docx
《PLC功能指令和应用Word文档格式.docx》由会员分享,可在线阅读,更多相关《PLC功能指令和应用Word文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
(1)16bit和32bit
功能指令可处置16位(bit)的数据和32(bit)位数据.功能指令中附有符号(D)表示处置32位(bit)数据.如(D)MOV,FNC(D)12,FNC12(D).
处置32bit数据时,用元件号相邻的两个元件组成元件对.元件对的元件号用奇数,偶数都可.但为幸免错误,元件对的首元件建议统一用偶数编号.
32bit计数器(C200~C255)不能用作16bit指令的操作数.
(2)持续执行/脉冲执行
助记符后附有(P)符号表示脉冲执行,没有(P)符号的表示持续执行.
(P)和(D)可同时利用,如(D)MOV(P)表示32bit数据传送,脉冲执行.
例如以下图:
图中仅在X0由OFF变成ON时执行D10到D12间的数据传(只传送一次),不需要每一个扫描周期都执行.
当X1为ON时在每一个扫描周期都被重复执行D20数据到D22的传送.
当X0,X1为OFF时上述两个传送都不执行.在利用PLC编程时,若是在程序中的数据不随时转变,而且转变是可控的,如此的数据传送就可用脉冲方式.
例如,INC指令含义是加1.若是每一个运行周期都执行一次加1,其运行结果将无法确信.用持续方式时要专门注意.这些指令用"
!
"
号表示.
有些指令,例如XCH,INC,DEC等
位元件和字元件
只处置ON/OFF状态的元件,例如X,Y,M,和S,称为位元件.
其它处置数字数据的元件,例如T,C和D,称为字元件.而位元件组合起来也可处置数字数据.
位元件的字能够由Kn加首元件号来表示.位元件每4bit为一组合成单元,KnM0中的n是组数.16bit数据操作时为K1~数据操作时为K1~K8.
例如,K2M0即表示由M0~M7组成2个4bit组.
当一个16bit的数据传送到K1M0,K2M0或K3M0(利用MOV指令)时,只传送相应的低位(bit)数据.较高位的数据不传送.32bit数据传送时也一样.
例如
1
M15M14M13M12M11M10M9M8M7M6M5M4M3M2M1M0
传送后D0寄放器的数据如下:
假设X1为ON时用持续传送的方式传送M0~M7组成的8位二进制数到D0数据寄放器.传送前的M0~M15组成的16bit数如下:
由于数据高8位没有在指令中概念而不能传送,16位(bit)数据的符号位(最高位)为0,现在只能处置正数.
由上述例子可知,在作16位(bit)数据操作,而参与操作的元件由K1,K2,K3来指按时,高位(不足部份)均作0.这就意味着只能处置正数(符号位为0).在作32bit数据操作,参与操作的元件由K1~K7来指按时也一样.
变址寄放器(V,Z)
变址寄放器在传送,比较指令中来修改操作对象的元件号.
其操作方式与一般数据寄放器一样.操作元件包括,KnX,KnY,KnM,KnS,T,C,D,V,Z.其中KnY,KnM,KnS,T,C,D,V,Z可加入变址寄放器.
对32bit指令,V作高16bit,Z作低指令顶用到变址寄放器时只需指定Z,这是Z就代表了V和Z.
如上图所示:
X0为ON时,K10(十进制数10)送到为ON时,K20(十进制
数20)送到Z.
当X2为ON时所作的加法
(D5V)+(D15Z)→(D40Z)
(D15)+(D35)→(D60).M8000是内部特殊寄放器(常ON),即无条件将十进制常数0(K0)送入V,现在(V),(Z)的数据为0和20.
当X3为ON时执行(D)ADD指令,作32bit数据加法
(D0)+(D2)→(D4Z)
确实是(D1,D0)+(D3,D2)→(D25,D24)
程序流程操纵
指令:
CJFNC00(P)(16)条件转移
操作元件:
指针P0~P127(许诺变址修改)
P63即END,无需再标注
程序步数:
CJ和CJ(P)……3步
标号P×
×
……1步
梯形图
功能:
用于跳过顺序程序中的某一部份,如此能够减少扫描时刻,并使双线圈操作成为可能.若是X0为ON那么跳到标记P8处继续执行.
CALLFNC01(P)(16)
转子程序
指针P0~P127(许诺变址
修改)
CALL和CALL(P)…3步标
号P×
……1步
嵌套:
5级
用于特定条件下执行某个子程序,可减少程序重复.若是X0为ON那么挪用P10为标记的子程序执行.在执行子程序时也可挪用子程序,可嵌套5级.
SRETFNC02子程序返
无
1步
与CALL指令对应的子程序终止返回CALL指令后的程序顺序执行.
中断效劳程序的终止标记.在程序执行到IRET指令后表示该中断效劳终止.该指令后的程序许诺中断,直到DI指令显现.
IRETFNC03中断返回操作元件:
EIFNC04许诺中断
该指令后的程序许诺中断,直到DI指令显现.
该指令后的程序不可中断,直到EI指令显现.
DIFNC05禁止中断断返回
执行到FEND时进行输出处置,输入处置,警戒时钟刷新后回到第0步.
FENDFNC06主程序终止
假设扫描周期超过100ms,PLC将停止运行.现在,应将WDT指令插入到适合的位置刷新警戒时钟,使程序执行到END.
WDTFNC07(P)警戒时钟
FOR-NEXT间的程序重复执行"
n"
次后,NEXT指令后的程序才被执行.利用CJ指令可跳出循环体.FOR-NEXT间还可利用FOR-NEXT指令.循环指令最多许诺5级嵌套.
FORFNC08(16)
循环区起点
3步
NEXTFNC09循环区终点
1步
梯形图:
同上
与FOR配对利用
传送和比较
将[S1·
]与[S2·
]比较,结果由[D·
]决定的M0开始的三个内部寄放器输出,可驱动各类动作.
CMPFNC10(P)(16/32)比较操作元件
CMP和CMP(P)…7步
(D)CMP和(D)CMP(P)…13步
功能
将[S·
]与[S1·
][S2·
]的区间比较,结果有[D·
]指定的M3始的三个寄放器输出.当S小于该区间时M3为ON,S在该区间时M4为ON,S大于该区间时M5为ON
ZCPFNC11(P)(16/32)区间
比较
ZCP和ZCP(P)…9步
(D)ZCP和(D)ZCP(P)…17步
操作元件
传送和比较
梯形图表达
X0=ON时,K100→(D10)
X0=OFF时指令不执行
MOVFN12(P)(16/32)传送
MOV和MOV(P)…5步
(D)MOV和(D)MOV(P)…9步
]指定的源数据传
送到[D·
]指定的目标
寄放器.
X0=ON时,将(D0)取反→(K1Y0)
若是X0=OFF时,指令不执行
CMLFNC14(P)(16/32)取反传送
CML和CML(P)…5步
(D)CML和(D)CML(P)…9步
将源数据取反并传送到
目标.(K1Y0)指以Y0为首
元件的4个元件组成的一个
字节(4bit).
梯形图表达:
源数据BCD码右起第4位(m1=4)
开始的2位(m2=2)移到目标的第3位
转换为二进制,其中第1,4位不受
移位指令的阻碍.
SMOVFNC13(P)(16)位移传送程序步数:
SMOV和SMOV(P)…11步
将源数据(二进制)转换
为BCD码,然后将BCD码移
位传送,然后将目标中的
码值超过9999时犯错.
当X0=ON时,将寄放器(D5,D6,D7)数据传送到3目标(D10,D11,D12)
BMOVFNC15(P)(16)块传送程序步数:
BMOV和BMOV(P)…7步
从源操作数指定的元件开始的n个数据组成的数据块传送到目标.一旦传送,传送一组数据.
将K0传送到D0~D9
FMOVFNC16(P)(16)多点
传送
FMOV和FMOV(P)…7步
相同数据送到多个目标.将源元件中的数据传送到指定目标开始的n个元件中.
互换前:
(D10)=110,(D11)=100
互换后:
(D10)=100,(D11)=110
XCHFNC17(P)(16/32)("
)
互换
XCH和XCH(P)…5步(D)XCH
和(D)XCH(P)…9步
互换目标元件中的数据.
将(D12)中的数据转换成BCD码送到
Y0开始的两个(4bit)字节(Y0~Y7)中
BCDFNC18(P)(16/32)二进制转
换成BCD码
BCD和BCD(P)…5步
(D)BCD和(D)BCD(P)…9步
将源元件中的二进制数转换成BCD码送到目标元件中.
将X0开始的两个(4bit)字节(X0~X7)
中的BCD码数据转换成二进制数送到(D13)
中.
BINFNC19(P)(16/32)BIN变换
BIN和BIN(P)…5步
(D)BIN和(D)BIN(P)…9步
将源元件中的BCD码转换
成二进制数送到目标元件中.
四那么运算及逻辑运算
当X0=ON时,执行
(D10)+(D12)→(D14)
结果为0时,M8020置1;
ADDFNC20(P)(16/32)加法
ADD和ADD(P)…7步
(D)ADD和(D)ADD(P)…13步
标志:
M8020(零标志);
M8021(借位);
M8022(进位)
指定源元件中的二进制
数相加,结果送到指定的目标
符号为(0为正,1为负).运
算为代数运算.
结果大于32767(16bit)或47(32bit)
时进位标志M8021置1;
结果小于-32767(16bit)或-47
(32bit)时借位标志M8022置1.
当X0=ON,
执行(D10)-(D12)→D14)
当X1=ON一次,
执行一次(D1,D0)-1→(D1,D0)
SUBFNC21(P)(16/32)BIN减法程序步数:
SUB和SUB(P)…7步
(D)SUB和(D)SUB(P)…13步
指定源元件中的二进制数相减,结果送到指定的目标元件.其余同ADD指令.
当X0=ON时执行16bit运
算(D0)×
(D2)→(D5,D4)
当X1=ON时执行32bit运算
(D1,D0)×
(D3,D2)→(D7,D6,D5,D4)
MULFN22(P)(16/32)BIN乘法
MUL和MUL(P)…7步
(D)MUL和(D)MUL(P)…13步
两个源数据的乘积以32bit形式送到指定目标.低16bit在指定目标,高16bit在下一个元件中.
当X0=ON时执行16bit运算
(D0)÷
(D2)→(D4)……(D5)
当X1=ON时,执行32bit运算
(D1,D0)÷
(D3,D2)→(D5,D4)
……(D7,D6)
DIVFNC23(P)(16/32)BIN除法
DIV和DIV(P)…7步
(D)DIV和(D)DIV(P)…13步
V和Z不能用于目标地址.
用[S1·
]指定的被除数除以用[S2·
]指定的除数,商
和余数送到[D·
]指定的目标及以后的几个持续元件.
当X0由OFF变ON时,
执行(D10)+1→(D10)
INCFNC24(P)(16/32)"
加1
INC,INC(P),3步
(D)INC,(D)INC(P)13步
输入条件由OFF变ON
时,执行[D·
]指定的目标数
据增加1
当X1由OFF变ON时,
执行(D10)-1→(D10)
DECFNC25(P)(16/32)"
减1
DEC和DEC(P)…3步
(D)DEC和(D)DEC(P)……13步
输入条件由OFF变ON时,执行[D·
]指定的目标数据减少1
(D10)∧(D12)→(D14)
ANDFNC26(P)(16/32)逻辑
与"
16bit操作7步
32bit操作13步
以bit为单位的逻辑与运
算.将[S1·
][S2·
]指定的源数
据进行逻辑"
运算后结果
存入[D·
]的目标单元
(D10)∨(D12)→(D14)
ORFNC27(P)(16/32)逻辑"
或
或"
]的目标单元.
(D10)(D12)→(D14)
XORFNC28(P)(16/32)逻辑"
异
]指定的源数据
进行逻辑"
异或"
(D10)+1→(D10)
NEGFNC29(P)(16/32)求补
NEG和NEG(P)…3步
(D)NEG和(D)NEG(P)…5步
将[D·
]指定数据的每一名
都取反,然后该数加1,结
际是绝对值不变的变号操
作.
循环移位与移位
每次X0由OFF→ON时各bit
数据向右旋转"
bit,最后一
次从最高位移出的状态存于
进位标志M8022中.
RORFNC30(P)(16/32)"
右循环
ROR,ROR(P))…5步
]指定的数据右移n
决定的位数,最低位移出的
状态存于进位标志M8022
每次X0由OFF→ON时各bit数
据向右旋转"
bit,最低位移出
的进位标志M8022同时参与移
位.
RCRFNC32(P)(16/32)"
带进位右循环移位
…5步
本指令使[D·
]指定的
(16/32bit)数据连同进位标志
一路向右循环移位n决定的
位数.
每次X10由OFF→ON时,[D]内各
位数据连同[S]内4位数据向右移动4bit
X0~X3组成的4bit数据从高端移入而
(M0~M3)4位溢出.
SFTRFNC34(P)(16/32)"
位元件状态右移位
…9步
本指令使bit元件中的状态
向右移位,由n1指定bit元件
的长度,n2指定移位数.
操作元件(其中n2≤n1≤1024)
每次X10由OFF→ON时,D10~D2516字数据连同[S]内D0~D34字数据向右移动4bitD0~D3从高端移入而(D10~D13)从低端移出.
WSFRFNC36(P)(16/32)
元件状态(字)右移
WSFR,WSFR(P)…9步
本指令使字元件中的状态向右移位,由n1指定字元件长度,n2指定移位字数.
操作元件(其中n2≤n1≤512)
当X0由OFF→ON时,D0中的数据写入
D2,而D1内的数据变成1(指针).D0数据
改变后X0再由OFF→ON时,DO中的数据
写入D3,D1中的数据变成2.依此类推.
直到D1内数据为n-1上述指令再也不执行
SFWRFNC38(P)(16/32)"
先入先出FIFO写入
SFWR,SFWR(P)…7步
M8022(进位)WSFR,
本指令是FIFO(先入先
[S·
]指定的数据写入[D·
的第二位开始的长度为n指定
的寄放器内,[D·
]指定的第一
不执行本操作.
操作元件(其中2≤n≤512)
每次X1由OFF→ON时,D2内的数
据读入D20,同时指针(D1)减1,从
用该指令,那么每次执行数据向右移1
字.直到D1为0,再也不执行该指令.
SFRDFNC39(P)(16/32)"
先入先出FIFO读出
SFRD,SFRD(P)…7步
M8020进位)
本指令是FIFO(先入先出)控
制数据读出指令.将[S·
]指定的第
二个寄放器开始的长度为n数据
读到[D·
]指定的寄放器内,[S·
]指
时不执行本操作.
数据处置
PLC送电运行时M500~M599,C235~C255成批复位
注:
[D1·
][D2·
]指定同一元件,[D1·
]号≤[D2·
]号
ZRSTFNC40(P)(16)区间复位
ZRST,ZRST(P)…7步
用于一批元件的同时复位.
如操纵程序的初始化处置等.
当X4=ON时,X3,X2,X1组成的二进
制数等于几,就将M10~M17对应的M×
置1.假设[D·
]指定目标是T,C,或D,应使
n≤4.
DECOFNC41(P)(16/32)解码
DECO,DECO(P)…7步
]指定的源元件和n指定的个数,组成二进制数等于几,就将[D·
]指定的目标开始的8个寄放器中的对应位置的寄放器置1.
操作元件(其中n=1~8)
当X5=ON时,M10~M17对应的M×
为
1.就将该位对应的二进制数送到D12,
D11,D10组成的寄放器组内.假设[S·
]指定目
标是T,C,D,V或Z,应使n≤
的源中为1的不止一处时,那么只有最高位的
1有效.假设指定源中所有bit均为0,那么出
错.
ENCOFN42(P)(16)编码
ENCO,ENCO(P)…7步
]指定的源元件开始的8个寄放器中为1的位,以二进制数输出到[D·
]指定的目标和n指定的个数组