银川西门子模块代理商
INV(Inverse)指令在梯形图中用一条45�的短斜线来表示,它将执行该指令之前的运算结果取反,运算结果如为0将它变为1,运算结果为1则变为0。在下图中,如果X0和X1同时为ON,则Y0为OFF;反之则Y0为ON。INV指令也可以用于LDP,LDF,ANDP等脉冲触点指令。
用手持式编程器输入INV指令时,先按NOP键,再按P/I键。
NOP(Non processing)为空操作指令,使该步序作空操作。执行完用户存储器的操作后,用户存储器的内容全部变为空操作指令。
END(End)为结束指令,将强制结束当前的扫描执行过程。若不写END指令,将从用户程序存储器的第一步执行到最后一步;将END指令放在程序结束处,只执行第一步至END这一步之间的程序,使用END指令可以缩短扫描周期。
在调试程序时可以将END指令插在各段程序之后,从**段开始分段调试,调试好以后必须删去程序中间的END指令,这种方法对程序的查错也很有用处。
(1)逻辑与指令WAND (D)WAND(P)指令的编号为FNC26。是将两个源操作数按位进行与操作,结果送*元件。
(2)逻辑或指令WOR (D) WOR (P)指令的编号为FNC27。它是对二个源操作数按位进行或运算,结果送*元件。如图4-48所示,当X1有效时,(D10)∨(D12)→(D14)
(3)逻辑异或指令WXOR (D) WXOR (P)指令的编号为FNC28。它是对源操作数位进行逻辑异或运算。
(4)求补指令NEG (D) NEG (P)指令的编号为FNC29。其功能是将[D.]*的元件内容的各位先取反再加1,将其结果再存入原来的元件中。
WAND、WOR、WXOR和NEG指令
逻辑运算指令的使用
使用逻辑运算指令时应该注意:
1)WAND、WOR和WXOR指令的[S1.]和[S2.]均可取所有的数据类型,而目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。
2)NEG指令只有目标操作数,其可取KnY、KnM、KnS、T、C、D、V和Z。
3)WAND、WOR、WXOR指令16位运算占7个程序步,32位为13个程序步,而NEG分别占3步和5步。
装入时间值或计数值 ——西门子S7系列PLC
定时器字中的剩余时间值以二进制格式保存,用L指令从定时器字中读出二进制时间值装入累加器1中,称为直接装载。也可用LC指令以DCD码格式读出时间值,装入累加器1低字中,称为BCD码格式读出时间值。以BCD码格式装入时间值可以同时获得时间值和时基,时基与时间值相乘就得到定时剩余时间。
L T1 //将定时器T1中二进制格式的时间值直接装入累加器1的低字中
LC T1 //将定时器T1中的时间值和时基以BCD码格式装入累加器1 低字中
对当前计数值也可以直接装载和以BCD码格式读出当前计数值。
L C1 //将计数器C1中计数值以二进制格式装入累加器1的低字中
LC C1 //将计数器C1中的计数值以BCD码格式装入累加器1低字中
装入和传输指令 ——西门子S7系列PLC
装入(L)和传送(T)指令可以在存储区之间或存储区与过程输入、输出之间交换数据。L指令将源操作数装入累加器l中,而累加器原有的数据移入累加器2中,累加器2中原有的内容被覆盖。T指令将累加器1中的内容写入目的存储区中,累加器的内容保持不变。L和T指令可对字节(8位)、字(16位)、双字(32位)数据进行操作,当数据长度小于32位时,数据在累加器右对齐(低位对齐),其余各位填0。基本的装入和传送指令如下:
l L 通用装入指令
l L STW 将状态字寄存器的内容装入到累加器1
l LAR1 AR2将地址寄存器2的内容装入到地址寄存器1
l LAR1 <D>将32位的长整数装入到地址寄存器1
l LAR1 将累加器1的内容装入到地址寄存器1
l LAR2 <D>将32位的长整数装入到地址寄存器2
l LAR2 将累加器1的内容装入到地址寄存器2
l T 通用传输指令
l T STW 将累加器1的内容传输到状态字寄存器
l TAR1 AR2将地址寄存器1的内容传输到地址寄存器2
l TAR1 <D>将地址寄存器1的内容传输到目的单元(32位)
l TAR2 <D>将地址寄存器1的内容传输到目的单元(32位)
l TAR1 将地址寄存器1的内容传输到累加器1
l TAR2 将地址寄存器1的内容传输到累加器2
l CAR 交换地址寄存器的1的内容和地址寄存器2的内容交换
FX系列共有10条方便指令:初始化指令IST(FNC60)、数据搜索指令SER(FNC61)、**值式凸轮顺控指令ABSD(FNC62)、增量式凸轮顺控指令INCD(FNC63)、示教定时指令TIMR(FNC64)、特殊定时器指令STMR(FNC65)、交替输出指令ALT(FNC66)、斜坡信号指令RAMP(FNC67)、旋转工作台控制指令ROTC(FNC68)和数据排序指令SORT(FNC69)。以下仅对其中部分指令加以介绍。
(1)凸轮顺控指令 凸轮顺控指令有**值式凸轮顺控指令ABSD(FNC62)和增量式凸轮顺控指令INCD(FNC63)两条。
**值式凸轮顺控指令ABSD是用来产生一组对应于计数值在3600范围内变化的输出波形,输出点的个数由n决定,如图3-67a所示。图中n为4,表明[D.]由M0~M3共4点输出。预先通过MOV指令将对应的数据写入D300~D307中,开通点数据写入偶数元件,关断点数据放入奇数元件,如表3-15所示。当执行条件X0由OFF变ON时,M0~M3将得到如图3-67b所示的波形,通过改变D300~D307的数据可改变波形。若X0为OFF,则各输出点状态不变。这一指令只能使用一次。
绝**值式凸轮顺控指令的使用
a) 绝**值式凸轮顺控指令 b) 输出波形
表3-15 旋转台旋转周期M0~M3状态
开通点
关断点
输出
D300=40
D301=140
M0
D302=100
D303=200
M1
D304=160
D305=60
M2
D306=240
D307=280
M3
增量式凸轮顺控指令INCD也是用来产生一组对应于计数值变化的输出波形。如图3-68所示,n=4,说明有4个输出,分别为M0~M3,它们的ON/OFF状态受凸轮提供的脉冲个数控制。使M0~M3为ON状态的脉冲个数分别存放在D300~D303中(用MOV指令写入)。图中波形是D300~D303分别为20、30、10和40时的输出。当计数器C0的当前值依次达到D300~D303的设定值时将自动复位。C1用来计复位的次数,M0~M3根据C1的值依次动作。由n*的最后一段完成后,标志M8029置1,以后周期性重复。若X0为OFF,则C0、C1均复位,同时M0~M3变为OFF,当X0再接通后重新开始工作