在PLC的编程语言中,梯形图最常用,同时也会结合STL、SCL等语言使用。
梯形图LAD语言,由于其简单、直观、方便逻辑表达,使用最为广泛,但也有一定的限制。
比如在AVI和防错系统中,需要在PLC中存储车辆的实时队列,通常以数组的形式保存在数据块中。当车辆移动时,我们可以使用SCL语言,通过FOR循环对数组进行移动操作,非常方便。此时用LAD会让人抓狂。
此外,由于SCL语言是纯文本格式,因此我们可以非常方便地利用SVN工具进行版本控制。
因此,在AVI、ANDON、EPS等IT高度参与的系统中,会在PLC中交叉使用LAD、SCL语言。
我们可以针对不同的语言分别编写FC,然后在程序段中进行调用。
但有时我们希望用同一个FC完成所有相关的逻辑,这时我们可以适当地将LAD转换成SCL格式,以方便理解和调试。
本文举几个常见例子予以说明。
1.
直接赋值
LAD格式:
SCL格式:
需要说明的是,SCL只能通过变量的符号名进行运算。
2.
上升沿处理
LAD格式:
SCL格式:
我们可以看出,上升沿的处理原理是:通过两个地址,分别存储信号在上一个扫描周期值、当前扫描周期值;当上一次值为0且当前值为1时,则定义为上升沿触发。
用SCL表达略显繁琐,但是也很好理解。
3.
串并联逻辑判断
LAD格式:
SCL格式:
我们可以看出,当有多个条件需要进行组合逻辑判断时,用LAD表达非常简洁直观,SCL需要将串、并联转换成AND/OR条件,而电路的闭/合也要转换成1/0值,因此不够直观。但是对于写惯了VB等高级语言的工程师,SCL格式上手还是相当简单的。
没有评论:
发表评论