PLC编程:梯形图 vs. 结构化文本
可编程逻辑控制器(PLC)几十年来一直是机器和工厂自动化平台的首选。尽管梯形图(LD)是最初的编程语言之一,但这种方法通常仍然是默认选择。然而,随着自动化系统变得更加复杂和数据密集,结构化文本(ST)的使用增加了——不是作为替代品,而是作为补充。
以下信息介绍了LD和ST的优势和劣势,为开发新项目的人员提供一些指导。
如果你使用西门子博途,那么可以使用 LAD2SCL这个插件将梯形图一键转换为结构化文本!
1、梯形图 – 历史标准
在1960年代和1970年代,运行在PLC上的LD成为硬接线继电器面板的直接数字替代品。这种组合已经在工业自动化市场占据主导地位,原因如下:
- 为受众设计。LD模仿基于图纸的继电器原理图,如触点、线圈和接线梯级——这是电气技术员和工程师已经使用的相同视觉语言,因此不需要新的思维模型。
- 现场调试。PLC通过编程软件显示实时梯形图,突出显示哪些触点在经典离散逻辑中实时通电,因此技术人员可以可视化执行过程。
- 惯性和信任。汽车、食品加工和公用事业等行业已经围绕梯形图建立了数十年的经过验证的代码、培训计划和认证。
2、结构化文本
IEC 61131-3于1990年代首次发布,定义了几种PLC编程语言,其中之一是ST,它是一种高级文本语言,适用于:
- 更复杂的机器。现代自动化涉及运动控制、数据处理、配方管理和网络系统。用梯形图编写的循环密集型或数学密集型逻辑很快变得复杂且难以处理,而ST可以更自然地处理这些功能。
- 新一代工程师。进入自动化领域的毕业生已经了解C、Python或MATLAB,因此ST的语法(类似于Pascal/C)对他们来说比LD更熟悉。
- 更好的工具支持。现代IDE现在提供ST编辑功能,具有自动完成语法、版本控制集成和单元测试功能。
3、为什么要用梯形图或结构化文本编程?
此表总结了LD和ST的优势和劣势。
| 梯形图 | 结构化文本 | |
|---|---|---|
| 优势 | 为受众设计;电气技术人员熟悉的视觉继电器式逻辑图 内置实时逐级调试 经过数十年验证的遗留代码 | 为程序员设计;干净地处理循环、数学和数组 可重用的函数和功能块 新一代软件工程师熟悉,与Git和版本控制配合良好 |
| 局限性 | 随着复杂逻辑的扩展而扩展性差 弱数据处理和数学支持 最小的代码重用或抽象 | 对于负责支持操作的电气技术人员来说学习曲线更陡峭 不够直观,更难跟踪实时条件 对于简单任务来说过于复杂或不适合 |
| 最适合 | 标准LD编程在离散I/O处理、简单排序和遗留维护方面仍然流行且有效。 | ST编程是许多高级应用的最佳选择,如运动控制、数据处理和复杂排序。 |
4、LD和ST代码示例
4.1 示例1 – 带自锁的电机启动/停止
这是LD创建的经典用例。自锁电路(也称为锁存电路)在瞬时启动按钮释放后保持电机运行,并在停止按钮或过载跳闸时停止电机。LD是更好的选择,而ST虽然可行但很笨拙。
4.2 示例2 – 模拟量缩放和报警带
此示例显示了ST的优势所在。将原始模拟信号缩放为工程单位并应用带滞后的报警带在LD中是可能但痛苦的,需要多个梯级/分支,而在ST中整个块大约15行可读代码,使其成为更好的选择。
5、那么,我应该用LD还是ST来编程我的PLC?
梯形图和结构化文本不是竞争对手——它们是互补工具。今天最有能力的控制工程师精通两者。他们让问题的本质——而不是习惯或偏好——决定使用的语言。
他们用LD编写电机联锁,因为当技术人员需要在凌晨2点排除跳闸电机电路故障时,实时梯形图比任何优雅的基于文本的代码都更有价值。他们用ST编写模拟量缩放、报警管理和运动逻辑,因为这是基于文本的代码发挥其作用的地方。
问题不再是“梯形图还是文本。”而是知道对于任何给定的逻辑块,哪种语言能让打开文件的下一个工程师明显理解意图。为应用程序和维护人员编写,同时使用LD和ST。
原文链接: PLC Programming – Ladder versus Structured Text
汇智网翻译整理,转载请标明出处