PLC编程语言入门:梯形图(LAD)基础指令与位逻辑编程实战
引言:工业自动化的逻辑核心
在现代工业自动化领域,可编程逻辑控制器(PLC)作为控制系统的大脑,承担着逻辑判断、时序控制和过程监控的关键任务。而在众多PLC编程语言中,梯形图(Ladder Diagram,简称LAD) 因其直观的图形化界面和类似继电器控制线路的表达方式,成为全球工业领域应用最广泛的编程语言之一。对于初学者而言,掌握梯形图编程不仅是打开工业自动化大门的钥匙,更是理解自动化控制逻辑思维的基石。
本文将深入浅出地讲解梯形图的基础指令系统,重点解析位逻辑指令的编程方法,并通过自锁电路和互锁电路这两个经典控制电路的实战编程,帮助读者从理论走向实践,建立起PLC编程的基础能力框架。
第一章:梯形图编程语言概述
1.1 梯形图的起源与特点
梯形图诞生于20世纪70年代,其设计灵感来源于传统的继电器控制电路图。这种直观的对应关系使得电气工程师能够快速过渡到PLC编程领域,无需完全重新学习编程思维。梯形图的核心特点包括:
- 图形化表达:用图形符号代替文本代码,直观展示逻辑关系
- 左右母线结构:左侧为电源母线(通常不显示),右侧为输出区域
- 能流概念:想象有“能流”从左向右流动,激活符合条件的路径
- 扫描执行:PLC按照从上到下、从左到右的顺序扫描执行程序
1.2 PLC编程语言的国际标准:IEC 61131-3
根据国际电工委员会的标准,PLC编程语言主要包括五种形式:
- 梯形图(LD/LAD) – 最常用,适合逻辑控制
- 功能块图(FBD) – 适合过程控制
- 结构化文本(ST) – 类似高级语言,适合复杂算法
- 指令表(IL) – 类似汇编语言
- 顺序功能图(SFC) – 适合顺序流程控制
其中梯形图因其低学习门槛和高可读性,在离散制造业中占据主导地位。
第二章:梯形图基础指令系统详解
2.1 梯形图的基本结构元素
在深入指令之前,先理解梯形图的基本构造:
text复制下载
左母线 网络1 右母线 |-------[ ]--------[ ]------( )---| | 输入条件 输入条件 输出线圈 | |-------[ ]--------[/]------( )---| | 常开触点 常闭触点 置位指令
每个梯形图由多个“梯级”(Rung)组成,每个梯级包含输入条件和输出结果,形成完整的逻辑判断单元。
2.2 位逻辑指令核心元件
2.2.1 常开触点(Normally Open Contact)
符号:[ ]
功能:当对应位为“1”时导通,为“0”时断开
记忆口诀:“有信号则通”
2.2.2 常闭触点(Normally Closed Contact)
符号:[/]
功能:当对应位为“0”时导通,为“1”时断开
记忆口诀:“无信号则通”
2.2.3 输出线圈(Output Coil)
符号:( )
功能:当左侧逻辑结果为真时,线圈得电,对应位置“1”
特点:每个扫描周期根据条件更新状态
2.2.4 置位/复位指令
- 置位线圈(Set):
(S)– 条件满足时置位并保持 - 复位线圈(Reset):
(R)– 条件满足时复位并保持 - 记忆口诀:“置位锁存,复位清除”
2.2.5 边沿检测指令
- 上升沿检测:
P– 信号从0变1时触发一次 - 下降沿检测:
N– 信号从1变0时触发一次
应用场景:按钮按下检测、状态变化捕捉
2.3 基本逻辑运算的实现
ladder复制下载
|-----[ I0.0 ]-----[ I0.1 ]------( Q0.0 )---| # 与逻辑:I0.0 AND I0.1 | |-----[ I0.0 ]----------------------( Q0.1 )---| # 或逻辑分支1 |-----[ I0.1 ]----------------------| # 或逻辑分支2 | |-----[ I0.0 ]-----[ /I0.1 ]------( Q0.2 )---| # 与非逻辑 | |-----[ /I0.0 ]--------------------( Q0.3 )---| # 非逻辑
第三章:位逻辑编程实战之自锁电路
3.1 自锁电路原理与应用场景
自锁电路,又称“自保持电路”或“记忆电路”,是控制系统中最基础、最重要的电路之一。其核心功能是:当启动信号消失后,电路能够保持当前状态不变。
典型应用场景:
- 电动机的启动/停止控制
- 泵站的运行控制
- 照明系统的开关控制
- 任何需要“一键启动、长期运行”的设备
3.2 标准启动-保持-停止电路编程
3.2.1 电路分析
传统继电器控制中的自锁电路:
text复制下载
电源+ → 停止按钮(常闭) → 启动按钮(常开) → 接触器线圈 → 电源-
↑ |
└───────接触器辅助常开触点
当按下启动按钮时,接触器线圈得电,其辅助常开触点闭合,即使松开启动按钮,电流仍可通过辅助触点保持流通,形成“自锁”。
3.2.2 PLC梯形图实现
ladder复制下载
网络1:启动-保持-停止基本电路 |-----[ I0.0 ]-----[ /I0.1 ]----------------------( Q0.0 )---| # 直接启动路径 | 启动按钮 停止按钮 电机接触器 | | |-----[ Q0.0 ]--------------------------------------| # 自锁保持路径 | 自锁触点
程序解析:
- I0.0:启动按钮(常开触点,按下时闭合)
- I0.1:停止按钮(常闭触点,按下时断开)
- Q0.0:控制电动机的接触器线圈
工作流程:
- 按下I0.0(启动),I0.1正常闭合,Q0.0得电
- Q0.0得电后,其常开触点闭合,形成并联通路
- 松开I0.0后,电流通过Q0.0的常开触点保持流通
- 按下I0.1(停止),常闭触点断开,Q0.0失电,自锁解除
3.2.3 增强型自锁电路:带指示灯和过载保护
在实际工程中,自锁电路通常需要扩展功能:
ladder复制下载
网络1:带过载保护的主电路 |-----[ I0.0 ]-----[ /I0.1 ]-----[ I0.2 ]------( Q0.0 )---| | 启动 停止按钮 热继电器 电机 | | |-----[ Q0.0 ]-----------------------------------| | 自锁 | 网络2:运行状态指示 |-----[ Q0.0 ]-----------------------------------( Q0.1 )---| | 电机接触器 运行指示灯 | 网络3:停止状态指示 |-----[ /Q0.0 ]----------------------------------( Q0.2 )---| | 电机未运行 停止指示灯 | 网络4:故障报警 |-----[ /I0.2 ]----------------------------------( Q0.3 )---| | 热继电器动作 故障报警
新增元素:
- I0.2:热继电器(过载保护),常闭触点,过载时断开
- Q0.1:运行指示灯(绿色)
- Q0.2:停止指示灯(红色)
- Q0.3:故障报警指示灯(黄色)
3.3 置位/复位指令实现自锁
除了使用输出线圈自锁外,还可以使用置位/复位指令实现更简洁的自锁:
ladder复制下载
网络1:启动置位 |-----[ I0.0 ]-----------------------------------( S )Q0.0--| | 启动按钮 置位电机 | 网络2:停止复位 |-----[ I0.1 ]-----------------------------------( R )Q0.0--| | 停止按钮 复位电机
两种方式的对比:
- 线圈自锁:编程直观,接近传统电路,但复杂逻辑时线路交叉多
- 置位复位:编程简洁,逻辑清晰,特别适合多条件控制
3.4 实际工程注意事项
- 按钮类型选择:
- 启动按钮:常开触点(NO)
- 停止按钮:常闭触点(NC)——安全考虑,断线自动停止
- 扫描周期影响:
PLC按扫描周期工作,按钮信号需要持续足够时间(通常>2个扫描周期) - 机械触点抖动:
实际按钮有5-10ms的抖动,必要时增加去抖逻辑:
ladder复制下载
|-----[ I0.0 ]-----[ T37 ]----------------------( M0.0 )---| | 启动按钮 10ms定时器 去抖后信号 | |-----[ M0.0 ]----------------------------------( Q0.0 )---| | 电机 |-----[ Q0.0 ]-----------------------------------|
第四章:位逻辑编程实战之互锁电路
4.1 互锁电路原理与应用场景
互锁电路,又称“互锁保护”或“联锁控制”,用于确保两个或多个动作不会同时发生,防止设备冲突或危险情况。
典型应用场景:
- 电动机正反转控制
- 液压缸伸出/缩回控制
- 机床的多种工作模式切换
- 任何存在动作冲突的设备
4.2 电动机正反转控制互锁实战
4.2.1 控制要求分析
以三相异步电动机正反转控制为例:
- 按下正转按钮 → 电动机正转
- 按下反转按钮 → 电动机反转
- 任何时候按下停止按钮 → 电动机停止
- 关键要求:正转和反转绝对不能同时接通,否则会造成相间短路
4.2.2 传统继电器互锁原理
继电器控制中使用双重互锁:
- 按钮机械互锁:使用复合按钮,一个按钮的常开和常闭触点分别控制正反转
- 接触器电气互锁:正转接触器的常闭触点串入反转回路,反之亦然
4.2.3 PLC梯形图实现:基本电气互锁
ladder复制下载
网络1:正转启动与互锁 |-----[ I0.0 ]-----[ /I0.2 ]-----[ /Q0.1 ]------( Q0.0 )---| | 正转按钮 停止按钮 反转互锁 正转接触器 | | |-----[ Q0.0 ]-----------------------------------| | 自锁 | 网络2:反转启动与互锁 |-----[ I0.1 ]-----[ /I0.2 ]-----[ /Q0.0 ]------( Q0.1 )---| | 反转按钮 停止按钮 正转互锁 反转接触器 | | |-----[ Q0.1 ]-----------------------------------| | 自锁
程序解析:
- I0.0:正转启动按钮
- I0.1:反转启动按钮
- I0.2:停止按钮
- Q0.0:正转接触器
- Q0.1:反转接触器
互锁关键:
- 正转回路中串联
/Q0.1(反转接触器常闭触点) - 反转回路中串联
/Q0.0(正转接触器常闭触点) - 当一方动作时,其常闭触点断开,自动封锁另一方的启动回路
4.2.4 增强型互锁:加入机械互锁和延时
实际工程中,从正转到反转需要电动机完全停止,防止电流冲击:
ladder复制下载
网络1:正转控制 |-----[ I0.0 ]-----[ /I0.2 ]-----[ /Q0.1 ]-----[ T38 ]---( Q0.0 )---| | 正转按钮 停止按钮 反转互锁 反转延时 正转接触器 | | |-----[ Q0.0 ]-----------------------------------------------| | 网络2:反转控制 |-----[ I0.1 ]-----[ /I0.2 ]-----[ /Q0.0 ]-----[ T37 ]---( Q0.1 )---| | 反转按钮 停止按钮 正转互锁 正转延时 反转接触器 | | |-----[ Q0.1 ]-----------------------------------------------| | 网络3:正转停止延时 |-----[ Q0.0 ]-----[ /Q0.0 ](下降沿)-----------( T37 )---| | 正转接触器 正转停止检测 3秒延时 | PT=3000ms | 网络4:反转停止延时 |-----[ Q0.1 ]-----[ /Q0.1 ](下降沿)-----------( T38 )---| | 反转接触器 反转停止检测 3秒延时 | PT=3000ms
新增保护功能:
- 正转停止后,必须延时3秒才能启动反转
- 反转停止后,必须延时3秒才能启动正转
- 使用下降沿检测(
/Q0.0的下降沿)捕捉状态变化
4.3 多重互锁与优先权控制
在复杂系统中,可能需要多重互锁关系:
场景:液压系统控制
- 动作A:液压缸伸出
- 动作B:液压缸缩回
- 动作C:夹具夹紧
- 动作D:夹具松开
互锁要求:
- 伸出和缩回互锁
- 夹紧和松开互锁
- 液压缸运动时不能操作夹具
- 夹具操作时不能运动液压缸
ladder复制下载
网络1:液压缸伸出(带多重互锁) |-----[ I0.0 ]-----[ /I0.4 ]-----[ /Q0.1 ]-----[ /Q0.2 ]-----[ /Q0.3 ]---( Q0.0 )---| | 伸出按钮 急停按钮 缩回互锁 夹紧互锁 松开互锁 伸出电磁阀 | | |-----[ Q0.0 ]---------------------------------------------------------------| | 网络2:液压缸缩回(带多重互锁) |-----[ I0.1 ]-----[ /I0.4 ]-----[ /Q0.0 ]-----[ /Q0.2 ]-----[ /Q0.3 ]---( Q0.1 )---| | 缩回按钮 急停按钮 伸出互锁 夹紧互锁 松开互锁 缩回电磁阀 | | |-----[ Q0.1 ]---------------------------------------------------------------| | 网络3-4:类似逻辑控制夹具夹紧和松开...
4.4 互锁电路的工程优化技巧
- 互锁位置选择:
- 最佳位置:尽可能靠近输出线圈,减少误动作可能性
- 紧急停止:互锁之前,确保急停优先级最高
- 状态反馈互锁:
除了输出互锁,加入输入状态反馈互锁更安全:
ladder复制下载
|-----[ I0.0 ]-----[ /I0.2 ]-----[ /Q0.1 ]-----[ I0.5 ]---( Q0.0 )---| | 正转按钮 停止按钮 反转互锁 正转限位 正转接触器
此处加入I0.5(正转限位开关),到达限位后自动停止。
- 软件互锁与硬件互锁结合:
- 软件互锁:PLC程序内部的逻辑互锁
- 硬件互锁:接触器辅助触点的电气互锁
- 最佳实践:两者同时使用,硬件互锁作为最后防线
第五章:自锁与互锁的组合应用
5.1 星三角降压启动控制
电动机星三角启动是自锁与互锁结合的经典案例:
控制要求:
- 按下启动按钮,电动机星形启动
- 延时6秒后,自动切换到三角形运行
- 任何时候可停止
- 星形和三角形接触器必须互锁,防止同时吸合
ladder复制下载
网络1:主启动与停止 |-----[ I0.0 ]-----[ /I0.1 ]----------------------( M0.0 )---| | 启动按钮 停止按钮 启动中间继电器 | | |-----[ M0.0 ]-----------------------------------| | 网络2:星形启动 |-----[ M0.0 ]-----------------------------------( Q0.0 )---| | 启动继电器 主接触器 | | |-----[ M0.0 ]-----[ /Q0.2 ]--------------------( Q0.1 )---| | 三角形互锁 星形接触器 | | |-----[ Q0.1 ]----------------------------------( T37 )---| | 星形接触器 6秒延时 PT=6000ms | 网络3:三角形运行(自锁与互锁结合) |-----[ T37 ]------[ /Q0.1 ]--------------------( Q0.2 )---| | 延时到 星形互锁 三角形接触器 | | |-----[ Q0.2 ]-----------------------------------| | 自锁保持 | 网络4:星三角互锁(硬件层面也需配置) |-----[ Q0.1 ]-----[ /Q0.2 ]------( )---| # 星形运行时封锁三角形 |-----[ Q0.2 ]-----[ /Q0.1 ]------( )---| # 三角形运行时封锁星形
5.2 自动门控制系统
商业大厦自动门控制:
- 有人接近(传感器检测)→ 开门并保持
- 开门到位后开始计时,10秒后自动关门
- 关门过程中有人接近→立即停止并重新开门
- 紧急停止按钮随时可用
ladder复制下载
网络1:开门触发(自锁保持) |-----[ I0.0 ]-----[ /I0.2 ]----------------------( S )Q0.0---| | 接近传感器 急停按钮 置位开门 | 或开门按钮 | 网络2:关门条件判断 |-----[ Q0.0 ]-----[ I0.3 ]------------------------( T38 )---| | 开门中 开门到位检测 保持计时 | PT=10000ms | 网络3:自动关门启动 |-----[ T38 ]----------------------------------------( S )Q0.1---| | 保持时间到 置位关门 | 网络4:关门过程中的安全检测 |-----[ Q0.1 ]-----[ I0.0 ]------------------------( R )Q0.1---| | 关门中 有人接近 复位关门 | 同时触发开门 | 网络5:关门到位停止 |-----[ Q0.1 ]-----[ I0.4 ]------------------------( R )Q0.1---| | 关门中 关门到位 复位关门 | 同时复位开门 | 网络6:开门关门互锁 |-----[ Q0.0 ]-----[ /Q0.1 ]----------------------( )---| # 开门互锁 |-----[ Q0.1 ]-----[ /Q0.0 ]----------------------( )---| # 关门互锁
第六章:高级技巧与调试方法
6.1 程序结构化与模块化
将自锁、互锁电路封装为功能块或子程序,提高代码复用性:
text复制下载
// 电机控制功能块:Motor_Control 输入:Start, Stop, Interlock, Fault 输出:Motor_Run, Motor_Status 内部:自锁逻辑、互锁检查、故障处理 // 主程序调用 网络1:主电机控制 |-----[ FC1 ]------------------------------------------| | Motor_Control功能块实例化 | Start=I0.0 | Stop=I0.1 | Interlock=Q0.1 | Fault=I0.2 | Motor_Run=Q0.0 | Motor_Status=M0.0
6.2 仿真调试技巧
- 强制表使用:模拟输入信号,观察输出变化
- 状态监控:实时查看触点通断状态
- 时序图分析:使用PLC的时序记录功能
- 单步调试:复杂逻辑逐段测试
6.3 常见错误与解决方案
- 双线圈问题:同一输出线圈在多个位置被控制
- 错误:
Q0.0在网络1和网络3同时出现( ) - 解决:合并逻辑或使用中间标志位
- 错误:
- 扫描周期导致的竞争条件
- 现象:理论上互锁,实际上可能同时接通瞬间
- 解决:增加一个扫描周期的延时互锁
- 急停优先级不足
- 正确做法:急停信号串联在所有输出回路最前端
- 互锁不完整
- 检查点:确保每个可能冲突的动作都有双向互锁
结语:从基础电路到工程思维
自锁与互锁电路虽然是PLC编程中最基础的内容,却蕴含着自动化控制的核心思想:安全、可靠、确定。掌握这些基础电路,不仅是为了编写出能运行的程序,更是为了培养工程化的思维模式:
- 安全第一原则:互锁本质是安全思维的体现
- 状态保持思想:自锁反映了控制系统对状态的记忆需求
- 防冲突设计:多设备协同中的资源管理思想
- 故障预见性:考虑各种异常情况的处理
在工业4.0和智能制造的背景下,PLC编程的基础原理依然坚固如初。无论未来的控制系统如何发展,逻辑控制的本质不会改变。通过扎实掌握梯形图、位逻辑指令以及自锁互锁这些基础内容,工程师不仅能够解决当前的控制问题,更能为学习更复杂的控制策略、网络通信和人机交互打下坚实基础。
记住:最好的程序不是最复杂的程序,而是最简单、最可靠、最易维护的程序。从自锁和互锁这两个经典电路出发,逐步构建自己的控制逻辑体系,是每一位自动化工程师成长的必经之路。
山东设计院
