产品描述
立即类指令是指执行指令时不受S7-200循环扫描工作方式的影响,而对实际的I/O点立即进行读写操作。分为立即读指令和立即输出指令两大类。
立即读指令用于输入I接点,立即读指令读取实际输入点的状态时,并不更新该输入点对应的输入映像寄存器的值。如:当实际输入点(位)是1时,其对应的立即触点立即接通;当实际输入点(位)是0时,其对应的立即触点立即断开。
立即输出指令用于输出Q线圈,执行指令时,立即将新值写入实际输出点和对应的输出映像寄存器。
立即类指令与非立即类指令不同,非立即指令仅将新值读或写入输入/输出映像寄存器。
立即类指令的格式及说明如表1所示。
表1 立即类指令的格式及说明
数据表是用来存放字型数据的表格,如图1所示。表格的第一个字地址即首地址,为表地址,首地址中的数值是表格的较大长度(TL),即较大填表数。表格的第二个字地址中的数值是表的实际长度(EC),*表格中的实际填表数。每次向表格中增加新数据后,EC加1。从第三个字地址开始,存放数据(字)。表格较多可存放100个数据(字),不包括*较大填表数(TL)和实际填表数(EC)的参数。
图1 数据表
要建立表格,首先须确定表的较大填表数。如图2所示。
图2 输入表格的较大填表数
确定表格的较大填表数后,可用表功能指令在表中存取字型数据。表功能指令包括填表指令,表取数指令,表查找指令,字填充指令。所有的表格读取和表格写入指令必须用边缘触发指令
循环移位将移位数据存储单元的首尾相连,同时又与溢出标志SM1.1连接,SM1.1用来存放被移出的位。指令格式见表6。
(1)循环左移位指令(ROL)
使能输入有效时,将IN输入无符号数(字节、字或双字)循环左移N位后,将输出到OUT所*的存储单元中,移出的较后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。
(2)循环右移位指令(ROR)
使能输入有效时,将IN输入无符号数(字节、字或双字)循环右移N位后,将输出到OUT所*的存储单元中,移出的较后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。
(3)移位次数N≥数据类型(B、W、D)时的移位位数的处理
如果操作数是字节,当移位次数N≥8时,则在执行循环移位前,先对N进行模8操作(N除以8后取余数),其结果0-7为实际移动位数。
如果操作数是字,当移位次数N≥16时,则在执行循环移位前,先对N进行模16操作(N除以16后取余数),其结果0-15为实际移动位数。
如果操作数是双字,当移位次数N≥32时,则在执行循环移位前,先对N进行模32操作(N除以32后取余数),其结果0-31为实际移动位数。
(4)使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间)。
表6 循环左、右移位指令格式及功能
说明:在STL指令中,若IN和OUT*的存储器不同,则须首先使用数据传送指令MOV将IN中的数据送入OUT所*的存储单元。如:MOVB IN,OUT
SLB OUT,N
表填表(ATT)指令:向表格(TBL)中增加一个字(DATA)。如图1所示。
说明:
(1) DATA为数据输入端,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, *VD, *LD, *AC;数据类型为:整数。
(2)TBL为表格的首地址,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, , *LD *AC;数据类型为:字。
(3)指令执行后,新填入的数据放在表格中较后一个数据的后面,EC的值自动加1。
(4)使ENO = 0的错误条件:0006(间接地址),0091(操作数超出范围),SM1.4(表溢出),SM4.3(运行时间)。
(5)填表指令影响特殊标志位:SM1.4(填入表的数据超出表的较大长度,SM1.4=1)。
产品推荐