1、动。输入N用于指定移位的位数。若N大于32,此命令会在输出OUT位置上 写入“0”并将状态字中的CC 0位和OV位设置为“0”。将自右移入N个零,用以补上空出的位位置。 可在输出OUT位置扫描双字移位指令的结果。如果N不等于0,则SHL_DW会将CC 0位和OV位设 为“0”。 ENO与EN具有相同的信号状态。 状态字状态字 BR CC 1 CC 0 OV OS OR STA RLO /FC 写: x x x x - x x x 1 实例实例 SHL_DW N IN EN MD0MD10 Q 4.0I 0.0 MW4 ENO OUT S 由I0.0处的逻辑 “1” 激活SHL_DW框。 装载M
2、D0并将其左移由MW4指定的位数。 结果将被写入MD10。 置位Q4.0。 移位和循环指令 11.1 移位指令 用于S7-300和S7-400编程的梯形图 (LAD) 参考手册, 10/2010, A5E03290618-01 141 11.1.7 SHR_DW 双字右移双字右移 符号符号 SHR_DW EN OUT N ENO IN 参数参数 数据类型数据类型 存储区存储区 描述描述 EN BOOL I、Q、M、L、D 启用输入 ENO BOOL I、Q、M、L、D 启用输出 IN DWORD I、Q、M、L、D 要移位的值 N WORD I、Q、M、L、D 要移动的位数 OUT DWORD
3、 I、Q、M、L、D 双字移位指令的结果 描述描述 SHR_DW (双字右移) 指令通过使能(EN)输入位置上的逻辑“1”来激活。SHR_DW指令用于将输入IN 的0至31位逐位向右移动。输入N用于指定移位的位数。若N大于32,此命令会在输出OUT位置上 写入“0”并将状态字中的CC 0位和OV位设置为“0”。将自左移入N个零,用以补上空出的位位置。 可在输出OUT位置扫描双字移位指令的结果。如果N不等于0,则SHR_DW会将CC 0位和OV位设 为“0”。 ENO与EN具有相同的信号状态。 1 1 1 1 1 1 1 1 0 1 0 11 1 1 11 1 1 11 0 1 01 0 1 0
4、0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 01 1 11 1 1 10 1 0 10 1 0 11 0 1 1 IN 31.16 15.0 3 placesN OUT0 0 0 1 The vacated places are filled with zeros. These three bits are lost. 状态字状态字 BR CC 1 CC 0 OV OS OR STA RLO /FC 写: x x x x - x x x 1 移位和循环指令 11.1 移位指令 用于S7-300和S7-400编程的梯形图 (LAD) 142 参考手册, 10/2010, A5E0
5、3290618-01 实例实例 SHR_DW N IN EN MD0MD10 Q 4.0I 0.0 MW4 ENO OUT S 由I0.0处的逻辑 “1” 激活SHR_DW框。 装载MD0并将其右移由MW4指定的位数。 结果将被写入MD10。 置位Q4.0。 移位和循环指令 11.2 循环移位指令 用于S7-300和S7-400编程的梯形图 (LAD) 参考手册, 10/2010, A5E03290618-01 143 11.2 循环移位指令循环移位指令 11.2.1 循环移位指令概述循环移位指令概述 描述描述 可使用循环移位指令将输入IN的所有内容向左或向右逐位循环移位。移空的位将用被移出输
6、入IN的位 的信号状态补上。 您为输入参数N提供的数值指定要循环移位的位数。 取决于指令的具体情况,循环移位也可以通过状态字的CC 1位进行。复位状态字的CC 0位为0。 下列循环移位指令可用: ROL_DW 双字循环左移 ROR_DW 双字循环右移 11.2.2 ROL_DW 双字循环左移双字循环左移 符号符号 ROL_DW EN OUT N ENO IN 参数参数 数据类型数据类型 存储区存储区 描述描述 EN BOOL I、Q、M、L、D 启用输入 ENO BOOL I、Q、M、L、D 启用输出 IN DWORD I、Q、M、L、D 要循环移位的值 N WORD I、Q、M、L、D 要循
7、环移位的位数 OUT DWORD I、Q、M、L、D 双字循环指令的结果 移位和循环指令 11.2 循环移位指令 用于S7-300和S7-400编程的梯形图 (LAD) 144 参考手册, 10/2010, A5E03290618-01 描述描述 ROL_DW (双字循环左移) 指令通过使能(EN)输入位置上的逻辑“1”来激活。ROL_DW指令用于将输 入IN的全部内容逐位向左循环移位。输入N用于指定循环移位的位数。如果N大于32,则双字IN将被 循环移位(N-1)对32求模,所得的余数) +1位。自右移入的位位置将被赋予向左循环移出的各个位的逻 辑状态。可在输出OUT位置扫描双字循环指令的结
8、果。如果N不等于0,则ROL_DW会将CC 0位和 OV位设为“0”。 ENO与EN具有相同的信号状态。 IN1 1 1 1 0 0 0 0 1 0 1 01 1 1 10 0 0 01 1 1 10 0 0 01 0 1 0 31.16 15.0 3 placesN OUT1 1 10 1 0 1 0 1 0 1 0 0 0 01 1 1 10 1 1 11 0 0 00 1 1 11 0 0 0 The signal states of the three bits that are shifted out are inserted in the vacated places. These
9、 three bits are lost. 状态字状态字 BR CC 1 CC 0 OV OS OR STA RLO /FC 写: x x x x - x x x 1 实例实例 ROL_DW N IN EN MD0MD10 Q 4.0I 0.0 MW4 ENO OUT S 由I0.0处的逻辑“1”激活ROL_DW框。装载MD0并将其向左循环移位由MW4指定的位数。结果将 被写入MD10。置位Q4.0。 移位和循环指令 11.2 循环移位指令 用于S7-300和S7-400编程的梯形图 (LAD) 参考手册, 10/2010, A5E03290618-01 145 11.2.3 ROR_DW 双
10、字循环右移双字循环右移 符号符号 ROR_DW EN OUT N ENO IN 参数参数 数据类型数据类型 存储区存储区 描述描述 EN BOOL I、Q、M、L、D 启用输入 ENO BOOL I、Q、M、L、D 启用输出 IN DWORD I、Q、M、L、D 要循环移位的值 N WORD I、Q、M、L、D 要循环移位的位数 OUT DWORD I、Q、M、L、D 双字循环指令的结果 描述描述 ROR_DW (双字循环右移) 指令通过使能(EN)输入位置上的逻辑“1”来激活。ROR_DW指令用于将输 入IN的全部内容逐位向右循环移位。输入N用于指定循环移位的位数。如果N大于32,则双字IN
11、将被 循环移位(N-1)对32求模,所得的余数) +1位。自左移入的位位置将被赋予向右循环移出的各个位的逻 辑状态。可在输出OUT位置扫描双字循环指令的结果。如果N不等于0,则ROR_DW会将CC 0位和 OV位置为“0”。 ENO与EN具有相同的信号状态。 1 0 1 0 1 0 1 0 0 0 0 00 1 0 10 1 0 11 1 1 10 0 0 01 1 1 1 0 1 0 1 0 1 0 0 0 0 0 11 0 11 0 1 01 1 1 00 0 0 11 1 1 0 IN 31.16 15.0 3 placesN OUT1 0 1 1 The signal states o
12、f the three bits that are shifted out are inserted in the vacated places. 移位和循环指令 11.2 循环移位指令 用于S7-300和S7-400编程的梯形图 (LAD) 146 参考手册, 10/2010, A5E03290618-01 状态字状态字 BR CC 1 CC 0 OV OS OR STA RLO /FC 写: x x x x - x x x 1 实例实例 ROR_DW N IN EN MD0MD10 Q 4.0I 0.0 MW4 ENO OUT S 由I0.0处的逻辑“1”激活ROR_DW框。装载MD0并将
13、其向左循环移位由MW4指定的位数。结果将 被写入MD10。置位Q4.0。 用于S7-300和S7-400编程的梯形图 (LAD) 参考手册, 10/2010, A5E03290618-01 147 12 状态位指令状态位指令 12.1 状态位指令概述状态位指令概述 描述描述 状态位指令属于位逻辑指令,用于对状态字的位进行处理。各状态位指令分别对下列条件之一做出反应, 其中每个条件以状态字的一个或多个位来表示: 二进制结果位(BR -I I-)被置位(即信号状态为1)。 数学运算函数发生溢出(OV -I I-)或存储溢出(OS -I I-)。 数学运算函数的结果是无序的(UO -I I-)。 数
14、学运算函数的结果与0的关系有: = 0、 0、 0、= 0、= 0。 当状态位指令以串联方式连接时,该指令将根据“与”真值表将其信号状态校验的结果与前一逻辑运算 结果合并。当状态位指令以并联方式连接时,该指令将根据或真值表将其结果与前一RLO合并。 状态字状态字 状态字是CPU存储器中的一个寄存器,它包含可以在位逻辑指令和字逻辑指令的地址中引用的位。状态 字的结构: BRCC1CC0OVOSORSTARLO/FC 282726252423222120.29215. 可以通过下列函数求状态字位的值 整数数学运算函数、 浮点数运算函数。 状态位指令 12.2 OV -| |- 异常位溢出 用于S7
15、-300和S7-400编程的梯形图 (LAD) 148 参考手册, 10/2010, A5E03290618-01 12.2 OV -| |- 异常位溢出异常位溢出 符号符号 or negation / OVOV 描述描述 OV -| |- (异常位溢出) 或 OV -| / |- (异常位溢出取反) 触点符号用于识别上次执行数学运算函数 时的溢出。也就是说,函数执行后指令的结果超出了允许的正、负范围。串联使用时,扫描的结果将通 过AND与RLO链接;并联使用时,扫描结果通过OR与RLO链接。 状态字状态字 BR CC 1 CC 0 OV OS OR STA RLO /FC 写: - - -
16、- - x x x 1 实例实例 SUB_I EN OUTIN2 ENO IN1 IW2 IW0 MW10 I 0.0 OV S Q 4.0 Network 1 Network 2 I 0.1I 0.2 I 0.2 I0.0的信号状态为“1”时将激活该框。如果数学运算函数“IW0 - IW2”的结果超出了允许的整数范围, 则置位OV位。 OV的信号状态扫描为“1”。如果OV扫描的信号状态为“1”且程序段2的RLO为“1”,则置位Q4.0。 注意注意 只有在有两个独立的程序段时,才需要OV扫描。否则,如果结果超出了允许的范围,则可以提取为“0” 的数学运算函数的ENO输出。 状态位指令 12.3
17、 OS -| |- 存储的异常位溢出 用于S7-300和S7-400编程的梯形图 (LAD) 参考手册, 10/2010, A5E03290618-01 149 12.3 OS -| |- 存储的异常位溢出存储的异常位溢出 符号符号 or negation / OSOS 描述描述 OS -| |- (存储的异常位溢出) 或 OS -| / |- (存储的异常位溢出取反) 触点符号用于识别和存储数 学运算函数中的锁存溢出。如果指令的结果超出了允许的负或正范围,则置位状态字中的OS位。与需 要在执行后续数学运算函数前重写的OV位不同,OS位在溢出发生时存储。OS位将保持置位状态,直 至离开该块。
18、串联使用时,扫描的结果将通过AND与RLO链接;并联使用时,扫描结果通过OR与RLO链接。 状态字状态字 BR CC 1 CC 0 OV OS OR STA RLO /FC 写: - - - - - x x x 1 实例实例 OS S Q 4.0 Network 1 Network 2 Network 3 ADD_I EN OUTIN2 ENO IN1 IW2 IW0 MW12 I 0.01 MUL_I EN OUTIN2 ENO IN1 IW2 IW0 MW10 I 0.0 状态位指令 12.3 OS -| |- 存储的异常位溢出 用于S7-300和S7-400编程的梯形图 (LAD) 15
19、0 参考手册, 10/2010, A5E03290618-01 I0.0的信号状态为“1”时将激活MUL_I框。I0.1的逻辑为“1”时将激活ADD_I框。如果其中一个数学 运算函数的结果超出了允许的整数范围,将把状态字中的OS位置位为“1”。如果OS扫描为逻辑“1”, 则置位Q4.0。 注意注意 只有在有两个独立的程序段时,才需要OS扫描。否则,将可以提取第一个数学运算函数的ENO输出, 并将其与第二个 (层叠排列) 数学运算函数的EN输入连接。 状态位指令 12.4 UO -| |- 无序异常位 用于S7-300和S7-400编程的梯形图 (LAD) 参考手册, 10/2010, A5E0
20、3290618-01 151 12.4 UO -| |- 无序异常位无序异常位 符号符号 or negation / UOUO 描述描述 UO -| |- (无序异常位) 或 UO -| / |- (无序异常位取反) 触点符号用于识别含浮点数的数学运算函 数是否无序 (也就是说,数学运算函数中的值是否有无效浮点数)。 如果含浮点数(UO)的数学运算函数的结果无效,则信号状态扫描为“1”。如果CC 1和CC 0中的逻辑 运算显示“无效”,信号状态扫描的结果将是“0”。 串联使用时,扫描的结果将通过AND与RLO链接;并联使用时,扫描结果通过OR与RLO链接。 状态字状态字 BR CC 1 CC
21、0 OV OS OR STA RLO /FC 写: - - - - - x x x 1 实例实例 UO S Q 4.1 DIV_R EN OUTIN2 ENO IN1 ID4 ID0 MD10 I 0.0 S Q 4.0 I0.0的信号状态为“1”时将激活该框。如果ID0或ID4的值为无效浮点数,则数学运算函数无效。如果 EN的信号状态 = 1 (激活) 且在处理函数DIV_R时出错,则ENO的信号状态 = 0。 执行函数DIV_R时如果其中一个值不是有效的浮点数浮点数,将置位输出Q4.1。 状态位指令 12.5 BR -| |- 异常位二进制结果 用于S7-300和S7-400编程的梯形图
22、(LAD) 152 参考手册, 10/2010, A5E03290618-01 12.5 BR -| |- 异常位二进制结果异常位二进制结果 符号符号 or negation / BRBR 描述描述 BR -| |- (异常位BR存储器) 或 BR -| / |- (异常位BR存储器取反) 触点符号用于测试状态字中 BR位的逻辑状态。串联使用时,扫描的结果将通过AND与RLO链接;并联使用时,扫描结果通过OR 与RLO链接。BR位用于字处理向位处理的转变。 状态字状态字 BR CC 1 CC 0 OV OS OR S嬷愀笀漀漀欀刀攀愀搀愀猀瀀砀椀搀鈀葒/a前台访问/BookRead.aspx?id=287036242.156.139.150匀洀眀愀瀀瀀栀琀洀氀鐀茣/Ia前台访问/d-15106.html207.46.13.600匀焀眀愀瀀搀栀琀洀氀阀葒灖瀒5gwap前台访问/BookRead.aspx?id=166350242.156.138.160%寏攀