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