湖南西控自动化设备有限公司
主营产品: 西门子一级代理商 PLC 变频器 工控机 伺服电机 触摸屏 软件 电线电缆 电源 S7-200CN S7-200SMART S7-300 S7-400 S7-1200 S7-1500 ET-200 全新原装正品 全国服务
西门子6DD1683-0BC5代理商

【案例分享】西门子S7-1200的位移与循环指令~



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

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


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