24. LAD和STL编程形式的区别

24. LAD和STL编程形式的区别

PLC的LAD(梯形图)和STL(语句表)是两种最常用的编程形式,它们在表现形式、特点和适用性上存在显著区别,但可以相互关联。具体区别和联系如下:


一、核心区别

|----------|--------------------------------------------|-----------------------------------------------|
| 特性 | LAD(梯形图) | STL(语句表) |
| 表现形式 | 图形化 ,由触点、线圈、功能框等图形符号构成,类似于电气控制原理图。 | 文本化 ,由助记符指令 (如LD、A、O、=)按顺序编写,类似于汇编语言。 |
| 直观性 | 非常直观易懂 。逻辑关系一目了然,符合电气工程师的思维习惯,易于设计和维护。 | 不直观,抽象 。需要熟悉指令集,逻辑流隐藏在指令顺序中,可读性较差。 |
| 编程特点 | 以独立的网络块 为单位。每个网络块从左母线开始,包含一个完整的逻辑"梯级"。 | 可以严格按网络块为单位编写 ,也可以连续编写 (无视网络块结构)。 |
| 程序长度 | 图形占空间大,程序显得较长 (在软件中占用更多显示空间)。 | 代码简洁、紧凑 ,用更少的文本表达相同的逻辑。 |


二、关键联系与转换规则

  1. 可相互转换的条件
  • 只有当STL程序也严格按照LAD的每个独立网络块为单位进行编写 时,LAD和STL程序才能通过编程软件实现相互无缝转换,并且两者基本上是一一对应的。
  1. 无法转换的情况
  • 如果STL程序是连续编写 的(即没有遵循LAD的网络块结构),那么即使逻辑功能相同,编程软件也无法将其自动转换回清晰正确的LAD形式。这是编程时必须注意的重要事项。

三、应用场景与选择建议

  • LAD(首选推荐) :适用于绝大多数应用场景,特别是:
    • 逻辑控制、顺序控制。
    • 团队协作、程序调试和维护(因其直观性)。
    • 初学者和电气背景的工程师。
  • STL(特定场景) :通常由经验丰富的程序员在特定需求下使用,例如:
    • 需要更精细的控制和优化(如操作累加器、直接寻址)。
    • 实现复杂的算法或LAD难以表达的逻辑。
  • 追求极致的程序执行速度和代码精简。

四、从LAD到STL的手工转换方法(核心技能)

核心方法:对每个独立的LAD网络块,将其分成若干小块,按照'从左到右、从上到下'的原则对每个小块进行STL编程,然后将这些程序块连接起来,就完成了该网络块的STL程序。

(图片摘自《现代电气控制及PLC应用技术》(王永华))
这个过程能极大地帮助编程者深入理解PLC程序执行的底层原理和扫描顺序

总结

简而言之,LAD是面向逻辑和可视化的"工程图" ,而STL是面向处理器和执行的"指令集" 。它们服务于同一目标,但呈现方式不同。遵循"按网络块编程"的约定,是保持两种形式可互转、程序可读可维护的关键。 掌握两者,尤其是理解其间的转换,是深入学习PLC编程技术的重要一环。

相关推荐
深蓝海拓2 天前
S7-1500PLC学习笔记:MOVE_BLK、MOVE_BLK_VARIANT、BLKMOV的区别
笔记·学习·plc
深蓝海拓2 天前
S7-1500学习笔记:用户自定义数据类型(UDT)
笔记·学习·plc
深蓝海拓2 天前
S7-1500学习笔记:Array数据类型
笔记·学习·plc
控电PLC3 天前
33. 顺序控制指令
plc·plc功能图
深蓝海拓6 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(二)系统规划
笔记·python·qt·学习·plc
深蓝海拓7 天前
西门子S7-1500PLC的常用Area地址以及网络读写
笔记·学习·plc
深蓝海拓7 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(一)使用自定义socket协议的基本方法
python·plc
Lilixxs9 天前
施耐德 M580、M340 PLC 中 BOOL 类型数组地址
数据结构·plc·施耐德·m580·m340·unity pro·control expert
9稳12 天前
基于PLC的生产线自动升降机设计
开发语言·网络·数据库·嵌入式硬件·plc
zmj32032414 天前
PLC与单片机、继电器控制系统 的价格比较
单片机·嵌入式硬件·plc