西门子S7-1200的移位指令包括左移位指令和右移位指令,循环移位指令包括循环左移位指令和循环右移位指令。
移位指令。移位指令用于将参数IN的位序列移位,结果送给参数OUT,参数N指定移位的位数。单击移位名称下方可以选择数据类型,移位指令IN和OUT端支持的数据类型为字节BYTE、字WORD、双字DWORD。移位时用0填充移位操作清空的位。
循环移位指令。循环指令用于将参数IN的位序列循环移位,结果送给参数OUT,参数N定义循环移位的位数。单击移位名称下方可以选择数据类型,移位指令IN和OUT端支持的数据类型为字节BYTE、字WORD、双字DWORD。移位时从目标值一侧循环移出的位数据,将循环移位到目标值的另一侧,因此原始位值不会丢失。
下面我们通过一个简单的实例来介绍移位指令如何使用。按下I1.2,将MB100中存储的数据左移2位送到MB200中,按下I1.3将MW100中存储的数据右移2位送到MW300中。
一、编写程序。在项目视图中打开OB1,在指令树中拖拽左移位指令到程序段1中,选择数据类型为字节,在移位指令的使能端插入常开触点I1.2,输入IN参数MB100,输入N参数2,输入OUT参数为MB200。在指令树中拖拽右移位指令到程序段2,选择数据类型为字,在移位指令的使能端插入常开触点I1.3,输入IN参数MW100,输入N参数2,输出参数OUT为MW300。这样一个简单的移位指令的实例就完成了,单击保存项目按钮保存项目。
二、编译、下载程序到PLC。在项目树中选中程序块,单击下载按钮将所有块下载到PLC。
三、查看程序运行情况。单击“转到在线”按钮,在项目树中单击打开监视表格文件夹,双击添加新监视表格,可以看到项目树中添加了监视表格,同时在工作区打开了监视表格编辑器,输入地址MB100和MB200、MW100和MW300,显示格式为二进制,单击监视按钮观察程序的运行情况,在监视表格中修改MB100为01011,按下I1.2可以看到MB200的值变为MB100的值左移2位的结果,按下I1.3可以看到MW300的值变为MW100的值右移2位的结果。