工控智汇

工控智汇

通过一个示例来看看三菱PLC的ST编程语言的使用

admin 153 21

前面文章中跟大家聊了很多西门子SCL编程语言的使用,今天通过一个示例来看看三菱ST语言的使用,其实无论是ST还是SCL本质是相同的。只是在指令的使用的有所区别。

示例的功能要求:通过一个按钮控制三组灯

用一个按钮控制三组灯,每按一次按钮亮一组灯。当三组灯全亮之后,每按一次按钮,灭一组灯。长按按钮三组灯全灭。

功能实现很简单,就是利用按钮的上升沿来进行加1计数,也就是INC指令。

那么问题来了:INC指令用ST语言怎么写呢?同时怎么使用上升沿指令呢?

这就是不同于SCL的地方,也是个人感觉非常适合初学编程人使用的地方了。在三菱中可以完美使用LAD中的指令。

你可以在编程界面中输入INC后按ctrl+F1,会自动出现指令格式,对应填入标签即可,如下图所示:


在本例中,是使用按钮的上升沿作为INC的使能端,那么就直接在“?BOOL_EN?”输入指令LDP(上升沿指令)同样按ctrl+F1。如下图所示:


自动添加的英文;要手动删除。否则编译会出错。

对于本例中,按钮的上升沿是不需要使能条件,也就是说使能条件常为1即可,也就是说“?BOOL_EN?”输入1。

那么针对本例完成的INC指令如下图所示:


也就是说每按一次按钮,都会对K1M0进行加1。

利用对应M位进行控制即可实现前面的功能要求。

下面是本例的完整程序:


仿真如下所示:

计数值为1:


计数值为2:


计数值为3:


计数值为4:


计数值为5:


计数值为6或长按按钮则复位:


本例的源码如下: