广东湘恒智能科技有限公司
主营产品: 西门子变频器,西门子PLC\西门子模块、西门子触摸屏、西门子伺服电机、西门子工控机、西门子集成系统、西门子低压、西门子控制单元、西门子CPU,广东省西门子授权代理商,等
山东省滨州市西门子中国总代理-西门子选型-西门子技术支持-西门子维修服务

可以在基本指令目录下的移位和循环移位子文件夹中调用以下指令:

- 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”置位。


展开全文
相关产品
拨打电话 微信咨询 发送询价