王哈哈哈■PLC编程语言有哪些?区别是什么?

图片来源:宏德自动化
作者:FrankLamb

梯形图逻辑通常是PLC使用最多的图形编程语言 , 但在某些特定的编程应用中其他语言可能更适合 。

在美国 , 大多数参与可编程逻辑控制器(PLC)编程和维护的人员都倾向于认为:梯形图逻辑是PLC唯一的编程语言 。 这种理念在很大程度上是由PLC的历史、以及美国的工业控制市场是被以梯形图逻辑为主要语言的品牌统治所造成的 。
在计算机和便携式计算机广泛应用于PLC编程之前 , 经常使用手持式编程器将程序输入到PLC中 。 在此之前 , 通常需要绘制用于不同指令的电气图 。 这就像在PLC出现之前 , 如何连接原始继电器逻辑一样 。 在手持设备上 , 有时会用符号表示不同指令 , 但是在图形设计的背后 , 是基于文本的语言 。
1994年 , 国际电工委员会(IEC)制定了一个可用于定义和规范PLC编程系统的标准IEC61131-3 。 除了形式化定义诸如计时器和计数器之类的指令外 , 该标准还定义了5种编程语言 。
指令表(IL)是基于文本的语言 , 梯形图逻辑经常被转换成相同的语言 。 有些厂商仅将其用作机器代码的过渡 , 最终会编译成在处理器中执行的语言 。 另外有一些厂商则使用指令列表作为主要语言 , 并添加了无法用梯形图逻辑表示的其它指令(例如语句列表) 。
王哈哈哈■PLC编程语言有哪些?区别是什么?
文章图片
图1:指令列表通常用于复杂的数学任务和搜索
梯形图逻辑(LAD) , 是PLC使用得最多的图形编程语言 。 它是从继电器逻辑电路图演变而来 。 梯形图逻辑是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的 , 具有形象、直观、实用等特点 。
王哈哈哈■PLC编程语言有哪些?区别是什么?
文章图片
图2:梯形图逻辑是最常用的PLC编程 , 与继电器电路图最为相似 。
功能块图(FBD)是另一种图形编程语言 , 可用于包括PLC和分布式控制系统(DCS)在内的一些控制器 。 它使用不同类型的块(例如与、或、比较、数学计算、计时器和计数器) , 来描述输入和输出变量之间的功能 。 输入从设备或其它模块的输出馈入一个模块;输出将数据传送到下一个块或变量 。
王哈哈哈■PLC编程语言有哪些?区别是什么?
文章图片
图3:功能框图非常适合安全电路/安全PLC
结构化文本(ST)是一种类似于计算机语言(例如Pascal)的高级语言 。 ST语言中的表达式由运算符和操作数组成 。 操作数可以是常量、变量、函数调用或另一个表达式 。 表达式的计算通过执行具有不同优先级的运算符完成 。 有最高优先级的运算符先被执行 , 然后依次执行下一个优先级的运算符 , 直到所有的运算符被处理完 。 有相同优先级的运算符按从左到右的顺序执行 。
王哈哈哈■PLC编程语言有哪些?区别是什么?
文章图片
图4:结构化文本可以帮助完成复杂的数学任务和搜索 。
顺序功能图(SFC)语言是基于一种被称为Grafcet的古老逻辑语言 , 该语言基于二进制Petri网络 。 它可用于编制复杂的顺控程序 , 又称为状态转移图或功能表图 , 是描述控制系统的控制过程、功能和特性的一种图形 , 也是设计顺序控制程序的工具 。 它是一种被称为步的块语言 , 带有相关逻辑条件切换 。 语言中的步可以是活动或不活动的 , 并且逻辑可以并行运行 。 利用这种先进的编程方法 , 初学者也很容易编出复杂的顺控程序 , 大大提高了工作效率 , 也为调试、试运行带来许多言传的方便 。
王哈哈哈■PLC编程语言有哪些?区别是什么?
文章图片
图5:顺序功能图对于分段逻辑很有用 。
几年前 , 我突发奇想:如果用所有5种语言 , 来编写一小段代码进行比较 , 将会非常有趣 。 逻辑建立自动和手动模式 , 然后在3秒钟后激活“循环”位 。 它是通用的 , 但是基于我使用的PLC平台(图1至图5) 。 语法和代码显示方式会因软件品牌和平台而异 。