三菱PLC编程太复杂,结构化文本能解决?年轻工程师实测对比告诉你实情。
我学PLC的时候最先接触的是梯形图,后来又学了顺控图。但做项目越做越大,发现这些图形符号写多了特别容易乱。尤其是遇到需要反复循环的逻辑,几十个触点连在一起看着就头大。后来偶然发现三菱的ST语言能用类似C的语法编程,就开始研究怎么用这个新方法。
下载了三菱的编程软件GX Works2,建工程的时候特意选了结构化工程类型。这个软件界面跟普通编程软件挺像,左边是变量标签,右边是写代码的地方。一开始没搞明白要先把变量名都定义好,老是报错说找不到变量。后来才知道得先到标签设置里把输入输出点全部列出来才能用。
ST语言的操作符跟C语言有区别,比如赋值要用冒号等号":=",条件判断用单个等于号"=".刚开始总写成双等于,调试半天找不到问题。还有定时器和计数器这些功能块,在ST里调用的时候参数要按顺序填,比如通电延时定时器必须先写启动信号,再填设定时间。
举个例子,我要让一个灯闪烁半秒钟,用梯形图得画一堆时间继电器和互锁触点。换成ST语言直接写个定时器的结构,设定时间到了就切换状态,代码不到五行。这对我来说比画图形快多了,而且改起来也方便,不用到处找连线。
最让我头疼的是循环语句。第一次写FOR循环的时候把步长写错了,结果整个程序死机了。后来发现三菱的PLC对无限循环特别敏感,扫描周期太长就会报错。改成WHILE循环的时候要加个退出条件,比如变量超过某个值就跳出。
用了ST语言一个多月后,发现处理复杂逻辑确实好用。比如控制电机正反转,同时还要监测温度保护。以前用梯形图得分好几个网络写,现在全放进一个函数里,变量之间互相调用也不用老想着地址对应的问题。
不过也有缺点。同事说我写的代码别人看起来有点费劲,毕竟不是所有人都会C语言。而且有些三菱特有的功能块在ST里调用不太直观,还是得参考手册。不过我觉得这些都能慢慢适应,至少写大型项目效率提升了不少。
现在公司新项目基本都用ST和梯形图结合的方式,简单部分用图形语言,复杂算法用ST。我建议刚学PLC的新人还是先把梯形图基础打牢,再慢慢接触ST。反正对我来说,这算是找到了更适合自己的编程方式了。