使用可编程逻辑控制器( PLC )的一个重要部分 ,IEC 61131-3是可编程逻辑控制器国际标准的第三部分。在本标准的这一部分中,列出了PLC的软件体系架构和有效的编程语言。该标准列出了五种不同的语言,其中三种是 图形 语言,另外两种是基于文本的。 梯形图,通常称为梯形逻辑,是用于PLC编程的最主要语言之一。
梯形逻辑可以帮助工程师和技术人员习惯于将逻辑转换为PLC编程。尽管如此,当梯级数量变得太多时,梯形逻辑程序仍然难以维护和修改。大型系统可以在 CPU 上运行多个子程序,每个子程序具有数百个阶梯逻辑梯级。梯级三上的内部位可以在阶梯上进一步使用。这有明显的问题,并导致创建更现代的语言。
功能区块图(FBD)可能是工业控制中使用最广泛的编程语言。它是一种图形语言,其中系统功能通过接受系统变量作为输入并生成系统变量和控制信号作为输出的块来描述。例如,可以使用AND功能块,而不是将两个XIC指令串联。这可以大大简化编程结构,并在需要时添加额外的抽象级别。下图显示了施耐德电气网站的FDB示例图。
注意AND块的一个输入如何来自系统的最终输出;在这种情况下,FBD图比梯形逻辑梯级的集合更容易读取。除了AND和OR块之外,该图还使用SR 锁 存器、接通延迟 定时器 和类型转换指令。功能区块图通常看起来像一个大型数字逻辑图。重要的是要认识到,尽管它的外观,功能区块图总是被分解为CPU执行的一系列顺序指令。相反,数字逻辑可以是组合逻辑也可以是顺序逻辑,并且两个不相关的逻辑块总是同时运行并且可以具有不同的 时钟 速度。
虽然顺序功能流程图(SFC)、结构化文字(ST)和指令表(IL)不如FBD常见,但它们在某些应用中很有价值,并在许多工业系统中使用。
SFC是一种图形语言,其中图表被分解为一系列步骤和转换。这些步骤对数据和I / O执行操作,而转换则充当控制程序从一个步骤流到另一个步骤的条件语句。SFC最有效的地方是批处理单元。在批处理控制中,逐个添加成分,然后对这些成分进行操作。这这就像遵循烹饪食谱,配料被搅拌、泵送和反应,而不是混合、倒出和烘焙。
ST,对于具有编程背景的人来说,其他两种语言看起来更为熟悉。ST是PLC的高级编程语言,很像C或B ASIC 。代码简洁、 模块化 ,支持高层次的抽象。当需要大量的数学或数据操作时,经常使用ST。嵌套的 if -else块、循环和数组通常过于繁琐而无法以图形方式编程。
IL基本上是PLC的汇编代码。它使用简化的指令集,但具有熟悉的命令,如加载、 存储 和跳转。虽然IL非常高效,但它已被IEC弃用,并且不太可能在未来的PLC中实现。