今天跟大家分享的是在三菱ST编程中比较常用的移位指令的使用示例。
位移位指令在ST编程中的指令格式:

等同于LAD中的SFTL指令如下图所示:

通过下面的示例来进行讲解:
示例的功能要求:
通过一个按钮控制三组灯。要求每按一次按钮点亮一组灯,在三组灯全部点亮后,在每按一次按钮,一次熄灭一组灯,长按按钮大于5s,灯全部熄灭。
具体程序如下:

具体讲解下上面语句的思路:
1、首先判断判断灯是否全部点亮,即用LIGHT_3来判断。
2、之后进行位移位。每使能一次START,则左移一位。
3、调用一个定时器,当START使能大于5s,则定时器得电,TS1=1。
4、使用定时器线圈TS1,复位所有灯。
重点说的就是位移位指令的使用:
SFTLP(START,M11,K3,K1,LIGHT_1);
这条语句什么意思呢?
就是说每当START使能一次,同时M11为1,则将1依次赋值给LIGHT_1、LIGHT_2、LIGHT_3。当M11位0,则将0依次赋值给LIGHT_1、LIGHT_2、LIGHT_3。
下面看看仿真结果:
第一次按按钮,点亮一组灯:

第二次按按钮,再点亮一组灯:

第三次按按钮,再点亮一组灯:

第四次按按钮,熄灭一组灯

当常按按钮超过5s,灯全部熄灭:
