西门子S7-1200系列的PLC涵盖了多种位移指令功能,具体涵盖了向左和向右的位移操作,以及循环向左和循环向右的位移操作。
这些位移指令的主要作用是对输入参数IN中的位序列进行调整,并将调整后的结果传递至输出参数OUT。位移的位数则由参数N来指定。此功能支持的数据类型相当广泛,包括字节(BYTE)、字(WORD)和双字(DWORD)等。在位移过程中,任何被清空的位置都将自动填充为0。
而循环位移指令则采用了循环的方式来移动输入参数IN中的位序列,其结果同样会传递给输出参数OUT。循环位移的位数也是通过参数N来设定的。此指令的显著特点是,那些从目标值一侧移出的位数据会被循环到另一侧,确保了原始位值在整个过程中不会丢失。
下面,我们将通过一个直观的例子来演示这些指令的实际应用。当I1.2被触发时,MB100中的数据会向左移动两位,并将结果存储在MB200中;而当I1.3被触发时,MW100中的数据则会向右移动两位,结果则存储在MW300中。
一、程序编写
首先,在项目视图中打开OB1。
随后,从指令树中拖动左位移指令至程序段1,并设定数据类型为字节。在使能端,我们插入常开触点I1.2。然后,设置IN参数为MB100,N参数为2,OUT参数为MB200。
同样地,我们再将右位移指令拖至程序段2,并设定数据类型为字。在使能端,我们插入常开触点I1.3。接着,设定IN参数为MW100,N参数为2,OUT参数为MW300。
完成上述设置后,保存项目。
二、程序编译与下载
在项目树中选中程序块,点击下载按钮,将编写好的程序下载至PLC。
三、程序运行监控
点击“转到在线”按钮,打开监视表格文件夹。
在此文件夹中,我们新建一个监视表格,并输入地址MB100、MB200、MW100和MW300,设定显示格式为二进制。
最后,点击监视按钮,我们就可以观察程序的运行状况了。例如,我们可以先修改MB100的值为01011,然后按下I1.2,这时我们会发现MB200的值已变为MB100左移两位的结果;同样地,当我们按下I1.3时,MW300的值也会变为MW100右移两位的结果。