三菱GX Works2支持多种编程语言,其中有梯形图,SFC,结构化梯形图,ST语言。每种编程语言有不同的优点与缺点。
梯形图是最常用的PLC编程语言,以继电器符号相类似的编程语言,其中入门简单,逻辑思维强,符合电路控制逻辑等优点,缺点是在编写四则运算,功能复杂的程序比较吃力。
SFC在顺序流程控制方面比较有优势,以流程图的编程方式,其逻辑思维控制强,动作流程清楚等优点,SFC的缺点与梯形图相同,也包含调试不方便等缺点。
结构化梯形图,以功能块的形式出现,控制思维为功率流方式,将所需要的功能做成功能块,在主程序调用,程序结构简单明了,调试检查方便。
ST语言是以文本进行记叙的编程语言,可以以高级语言方式进行编程。
ST语言介绍
在条件判断,四则运算,处理复杂功能等优点,但入门难,逻辑控制弱等缺点,导致ST语言在PLC编程应用较少。
ST语言在条件判断及四则运算有很大的优势,控制语句条件判断非常强大,在梯形图中,某些关系使用触点或比较指令很难进行判断,使用ST语言可简单判断完成,编写完成之后,可作为梯形图编写方式借鉴。
梯形图在编写四则运行往往需要编写多行指令,关联性不强,程序分析困难,使用复杂的运算公式更是困难,这也是很高精密控制系统不使用PLC的原因,因为PLC多数使用梯形图编写。
使用ST语言可以直接使用+-/*等数运算符号,对于复杂公式计算可几行程序编写完成,计算方式直观,使PLC可以应用于复杂计算的项目中。
ST语言可以将一些重复使用的代码,直接封装为函数,并可以定义函数的返回类型。在程序中需要使用时,我们可以直接调用函数,省去重复编写,简化我们编程工作。
函数一般使用在一次运算中,很少需要连续调用函数,如果连续执行调用使用,可以使用FB块功能,定义输入接口与输出接口,使用内部变量,在不同程序调用FB块,功能块互不影响,可方便的执行连续执行FB块的程序
ST语言除了以上功能,还有其它作用需要我们去探索.
ST的运算符,赋值方式,程序注释
注:ST程序文必须是半角符,英文数字输入,如果使用全角或汉字编译将会报错!
一:代入语句
我们首先先了解ST语言的赋值方法,也叫代入语句
代入语句 “ := ” (冒号+等于号),在ST语言的赋值方法
上图左边代码的意思是将X0的状态赋值给Y0,右边代码的意思是将K5传送级D0。可参考下列梯形图,进行对比
ST语言常用的赋值方式,将右边的值赋值给左边,右边可以是数值,寄存器,定时器,或者进行四则运算后再赋值都是可以的。
注意:但要求左右二边最结果的类型必须一致,如上图赋值符号的右边最终运行结果还是为16位,左边D0也是16位,类型符合,下图所示就是一个错误的示范
赋值符号右边为位类型,左边为字类型,赋值二边类型不一致,编译不会通过,所在使用赋值符号时,注意二边最终结果必须一致!
二:分组符号 ; ( )
在ST语言需要对程序文进行分组可以使用分号”;”或使用括号“()”,
1)分号应用
分号是作为某一段或一组程序文的结束,代表这一段程序与下一段程序无关。
在上图编写了一行代码,有三组程序,分别给D0,D2,D4进行赋值,使用分号进行分组。也可以使用下图方法进行分组。看起来是不同的编写方法,实质上是一样的,因为编译器是按分组符号定义,不是按行定义。
有时候因为没有使用分组符号,那么有时看起来是二行程序,也可能是一组程序。如下图所示
在上图中,因为第一行代码没有使用分组号,编译器默认认为与下行程序相连接。
2)括号应用
在编写某些运算时我们希望一些运算优先处理时,可以使用括号进行处理,如:在下图中默认会先执行D102乘以D104然后将相乘的积加上D100,最后将和赋值给D0。
如果希望先执行D100加D102,然后再乘以D104,则可以使用括号,优先处理括号内运算,参考下图所示
三:程序注释
在保证程序可读性良好,注释是少不了,ST语言的注释方法可以参考下图所示
ST语言的注释方式就是使用 (* 注释文 *) 格式,默认会显示绿色,可以在程序尾部增加注释,也可以在程序上行增加,或程序下行增加,在程序文中间也是可以,具体参考下图
可以对程序分类或分段定义,如下图所示
本文为技成培训网原创,未经授权不得转载