SHR(右移)和 SHL(左移)指令
表格 8- 180 SHR 和 SHL 指令
1 对于 LAD 和 FBD: 单击“???”并从下拉菜单中选择数据类型。
表格 8- 181 参数的数据类型
参数 | 数据类型 | 说明 |
IN | 整数 | 要移位的位序列 |
N | USInt, UDint | 要移位的位数 |
OUT | 整数 | 移位操作后的位序列 |
- 若N=0,则不移位。将 IN 值分配给 OUT。
- 用0填充移位操作清空的位位置。
- 如果要移位的位数(N)超过目标值中的位数(Byte 为 8 位、Word 为 16 位、DWord 为 32 位),则所有原始位值将被移出并用 0 代替(将 0 分配给 OUT)。
- 对于移位操作,ENO 总是为TRUE。
表格 8- 182 示例: Word 数据的 SHL
自右插入零,使 Word 的位左移 (N = 1) | |||
IN | 1110 0010 1010 1101 | 首次移位前的 OUT 值: | 1110 0010 1010 1101 |
首次左移后: | 1100 0101 0101 1010 | ||
第二次左移后: | 1000 1010 1011 0100 | ||
第三次左移后: | 0001 0101 0110 1000 |
ROR(循环右移)和 ROL(循环左移)指令
表格 8- 183 ROR 和 ROL 指令
对于 LAD 和 FBD: 单击“???”并从下拉菜单中选择数据类型。
表格 8- 184 参数的数据类型
参数 | 数据类型 | 说明 |
IN | 整数 | 要循环移位的位序列 |
N | USInt, UDint | 要循环移位的位数 |
OUT | 整数 | 循环移位操作后的位序列 |
- 若N=0,则不循环移位。将 IN 值分配给 OUT。
- 从目标值一侧循环移出的位数据将循环移位到目标值的另一侧,因此原始位值不会丢 失。
- 如果要循环移位的位数(N)超过目标值中的位数(Byte 为 8 位、Word 为 16
位、DWord 为 32 位),仍将执行循环移位。
- 执行循环指令之后,ENO 始终为TRUE。
表格 8- 185 示例: Word 数据的 ROR
将各个位从右侧循环移出到左侧 (N = 1) | |||
IN | 0100 0000 0000 0001 | 首次循环移位前的 OUT 值: | 0100 0000 0000 0001 |
首次循环右移后: | 1010 0000 0000 0000 | ||
第二次循环右移后: | 0101 0000 0000 0000 |
继续阅读

plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
评论