山东省滨州市西门子中国总代理-西门子选型-西门子技术支持-西门子维修服务
| 更新时间 2024-12-12 08:50:00 价格 请来电询价 联系电话 15344432716 联系手机 15386422716 联系人 杨本刚 立即询价 |
可以在基本指令目录下的移位和循环移位子文件夹中调用以下指令:
- SHR(逻辑右移指令)
- SHL(逻辑左移指令)
- ROR(循环右移指令)
- ROL(循环左移指令)
这些指令用于执行位移操作,并在PLC编程中具有重要作用。您可以根据需要在程序中调用这些指令来实现位移操作。
SHR指令
可以使用“右移”指令将输入IN中的数值按照位数向右移动,并在输出OUT中得到结果。参数N用于指定要移动的位数。当N为0时,输入IN的值会直接复制到输出中。如果N的值超过了可用位数,输入IN的值会向右移动直到可用位数。
对于无符号数据类型(如UInt,Word),移动时会在左侧空出的位用0填充;而对于有符号数据类型(如Int),则会用符号位的状态来填充空出的位。可以在指令框的数据类型下拉菜单中选择合适的数据类型。下面图示展示了如何将整数类型的操作数内容向右移动4位。
示例
以下示例说明了该指令的工作原理:
如果操作数“TagIn”的信号状态为“1”,则执行右移指令。操作数“TagIn_Value”的内容将向右移动3位,结果发送到输出“TagOut_Value”中。如果指令执行成功,将使能输出ENO的信号状态为“1”,同时将输出“TagOut”置位。
SHL指令
可以利用“左移”指令对输入操作数IN的数值进行左移操作,并通过输出OUT查看结果。参数N用于指定要左移的位数。当N为0时,将直接将输入操作数IN的值复制到输出OUT的操作数中。
若N的值超过可用的位数,则操作数IN的值将向左移动直到可用的位数。在移位时,会用0填充操作数右侧空出的位。您可以在指令框下拉列表中选择适当的数据类型。下图描述了如何将WORD数据类型的操作数内容向左移动6位。
如果“TagIn”信号状态为“1”,则执行左移指令,将“TagIn_Value”的内容向左移动4位,并将结果发送到“TagOut_Value”。成功执行后,将使“ENO”的信号状态为“1”,并触发输出“TagOut”置位。
ROR指令
能够利用“循环右移”指令对输入IN的操作数内容进行按位循环右移,并且结果存储在输出OUT中。该指令需要一个参数N,用于确定要循环移位的位数。
如果N为0,输入IN的值会直接复制到输出OUT。如果N的值超出操作数的位数,则操作数IN的值依然会按照可用位数进行循环移位。在移位过程中,移出的位会用来填充循环移位而产生的空位。
您可以在指令框的数据类型下拉菜单中选择合适的数据类型。图示说明了如何将DWORD数据类型的操作数内容向右循环移动3位:
如果“TagIn”信号状态为“1”,则执行循环右移指令,将“TagIn_Value”的内容向右循环移动5位,并将结果发送到“TagOut_Value”。如果指令执行成功,将使“ENO”的信号状态为“1”,并触发输出“TagOut”置位。
ROL指令
可以使用“循环左移”指令对输入IN的操作数内容进行按位循环左移,结果存储在输出OUT中。该指令需要一个参数N,用于确定要循环移位的位数。如果N为0,输入IN的值会直接复制到输出OUT。
如果N的值超出操作数的位数,则操作数IN的值依然会按照可用位数进行循环移位。在移位过程中,移出的位会用来填充循环移位而产生的空位。
您可以在指令框的数据类型下拉菜单中选择合适的数据类型。图示说明了如何将DWORD数据类型的操作数内容向左循环移动3位:
如果“TagIn”信号状态为“1”,则执行循环左移指令,将“TagIn_Value”的内容向左循环移动5位,并将结果发送到“TagOut_Value”。如果指令执行成功,将使“ENO”的状态为“1”,并触发输出“TagOut”置位。
联系方式
- 电 话:15344432716
- 销售顾问:杨本刚
- 手 机:15386422716
- 微 信:AK66F7