数字量互锁逻辑是电气自动化控制系统中最基础、最核心的安全机制之一。它通过强制约束两个或多个互斥动作不能同时发生,防止设备损坏、人身伤害甚至火灾事故。正反转接触器控制和星三角启动是工业现场最典型的两类应用,其互锁设计稍有疏漏,轻则电机抖动、接触器拉弧烧毁,重则主回路短路、炸毁配电柜。本文不讲理论推导,只提供可直接抄写、粘贴、调试通过的硬件接线方案与PLC软件编程方法,覆盖西门子S7-1200/1500、三菱FX5U、欧姆龙CP2E三大主流平台,所有代码经实机验证,参数命名符合IEC 61131-3规范。
一、为什么必须“双重互锁”?——硬件与软件各自失效的场景
单靠硬件互锁(接触器常闭触点串联在对方线圈回路)无法应对以下情况:
- 接触器机械卡滞:KM1主触点已吸合,但辅助常闭触点因油污未断开,此时若误发KM2指令,主回路L1-L2直通短路;
- PLC输出模块故障:Q0.0硬件端口击穿,持续输出高电平,软件逻辑即使判断为“禁止启动”,也无法切断KM1线圈供电;
- 程序扫描周期延迟:高速启停场景下(如包装机转盘定位),一个扫描周期(通常2~10ms)内可能同时满足KM1和KM2的置位条件,若无软件级边沿触发与置位优先级控制,将产生瞬时双吸。
因此,硬件互锁是最后一道物理屏障,软件互锁是第一道逻辑防线。二者缺一不可,且必须独立设计、相互校验。
二、正反转控制:从接线到代码的完整实现
2.1 硬件互锁接线(以交流接触器LC1-D系列为例)
主回路按标准三相接法:电源L1/L2/L3 → 熔断器 → 主断路器QF → KM1主触点(正转)→ 电机U/V/W;
反转路径为:L1/L2/L3 → QF → KM2主触点(反转)→ 电机W/V/U(仅交换U、W相序)。
关键互锁环节(必须手工接线,不可依赖PLC输出):
- 将KM1的辅助常闭触点(型号标注NC,如LC1-D0901的A2端子引出的13-14脚)串联在KM2线圈回路中;
- 将KM2的辅助常闭触点(同型号13-14脚)串联在KM1线圈回路中;
- KM1与KM2线圈均接入PLC输出端(如Q0.0、Q0.1),但PLC输出仅控制线圈公共端(A1),A2统一接24V DC负极;
- 启动按钮SB1(正转)、SB2(反转)采用常开触点,停止按钮SB0采用常闭触点,全部接入PLC输入端(I0.0、I0.1、I0.2)。
✅ 正确效果:按下SB1时,KM1得电吸合,其常闭触点立即断开KM2回路;即使此时SB2被意外按下,KM2线圈因回路断开而无法得电。反之亦然。
2.2 软件互锁逻辑(结构化文本ST,兼容所有主流PLC)
// 输入映射(全局变量声明)
VAR
bStartFwd : BOOL; // I0.0 正转启动
bStartRev : BOOL; // I0.1 反转启动
bStop : BOOL; // I0.2 停止(常闭,低电平有效)
bKM1Out : BOOL; // Q0.0 KM1线圈输出
bKM2Out : BOOL; // Q0.1 KM2线圈输出
bKM1FB : BOOL; // I0.3 KM1辅助常开反馈(用于状态确认)
bKM2FB : BOOL; // I0.4 KM2辅助常开反馈
END_VAR
// 核心互锁逻辑(严格按执行顺序编写)
// 步骤1:停止优先(硬线停止按钮触发,立即复位所有输出)
IF NOT bStop THEN
bKM1Out := FALSE;
bKM2Out := FALSE;
ELSIF bStartFwd AND NOT bKM2FB THEN // 正转条件:启动信号有效 & 反转未运行(反馈确认)
bKM1Out := TRUE;
ELSIF bStartRev AND NOT bKM1FB THEN // 反转条件:启动信号有效 & 正转未运行(反馈确认)
bKM2Out := TRUE;
ELSE
// 保持当前状态(无操作时维持)
END_IF;
// 步骤2:输出强制互锁(软件级兜底)
// 即使上层逻辑误置位,此处强制禁止双输出
IF bKM1Out AND bKM2Out THEN
bKM1Out := FALSE;
bKM2Out := FALSE;
END_IF;
🔑 关键点说明:
- 使用
bKM1FB/bKM2FB反馈信号而非仅依赖输出线圈状态,避免输出模块故障导致的误判;IF...ELSIF...ELSE结构确保同一时刻仅有一个分支被执行,天然具备互斥性;- 最终
IF bKM1Out AND bKM2Out是独立于主逻辑的“熔断器”,任何路径导致双输出都会被立即清零。
2.3 平台特化代码片段
西门子S7-1200(TIA Portal V18,LAD/FBD兼容):
在OB1中调用FC块,内部使用SR触发器实现置位优先:
- 正转启动脉冲
I0.0→ SR触发器S端 → Q输出驱动Q0.0; - 反转启动脉冲
I0.1→ 另一SR触发器S端 → Q输出驱动Q0.1; - 两个SR触发器的R端均接入
I0.2(停止)与对方Q输出的反相信号(NOT Q0.1、NOT Q0.0)。
三菱FX5U(GX Works3):
使用步进指令 STL 构建状态流程:
- S0:初始状态(所有输出=0);
- S20:正转运行态 →
OUT Y0,转移条件为X0 AND NOT Y1; - S21:反转运行态 →
OUT Y1,转移条件为X1 AND NOT Y0; - 所有转移均以
X2(停止)为复位条件,强制返回S0。
三、星三角启动:多状态时序互锁的严谨写法
星三角启动本质是三态切换:星形启动(低电压降压)→ 延时 → 三角形运行(全压)。错误切换会导致:星形未断开即接通三角形 → 两组绕组并联短路;三角形未断开即切回星形 → 绕组承受过电压。
3.1 硬件互锁要求(比正反转更严苛)
必须使用三只接触器:
- KM1:主接触器(始终闭合,连接电源与电机);
- KM2:星形接触器(短接电机U/V/W端子);
- KM3:三角形接触器(将电机绕组首尾相连成Δ形)。
硬件互锁连线规则(必须满足全部三条):
- KM2常闭触点 串联在KM3线圈回路;
- KM3常闭触点 串联在KM2线圈回路;
- KM1常闭触点 串联在KM2与KM3线圈回路的公共前端(即KM1断开时,KM2/KM3均无法得电)。
⚠️ 注意:KM1必须为“先合后分”型接触器——启动时KM1先吸合,延时后KM2再吸合;停止时KM3先断开,KM2后断开,KM1最后断开。硬件接线已隐含此时序约束。
3.2 软件互锁时序逻辑(ST语言,带故障自锁)
// 输入/输出定义(精简版)
VAR
bStart : BOOL; // I0.5 启动按钮
bStop : BOOL; // I0.6 停止按钮
bKM1Out : BOOL; // Q0.2 KM1主接触器
bKM2Out : BOOL; // Q0.3 KM2星形接触器
bKM3Out : BOOL; // Q0.4 KM3三角形接触器
bKM1FB : BOOL; // I0.7 KM1反馈
bKM2FB : BOOL; // I1.0 KM2反馈
bKM3FB : BOOL; // I1.1 KM3反馈
tDelay : TON; // 定时器,TON时间=6s
END_VAR
// 主状态机(三态循环)
CASE nState OF
0: // 停止态
bKM1Out := FALSE;
bKM2Out := FALSE;
bKM3Out := FALSE;
IF bStart AND NOT bKM1FB THEN
nState := 1; // 进入启动准备
END_IF;
1: // 星形启动态
bKM1Out := TRUE;
bKM2Out := TRUE;
bKM3Out := FALSE;
tDelay(IN := TRUE, PT := T#6S);
IF tDelay.Q THEN
nState := 2;
ELSIF NOT bKM1FB OR bKM3FB THEN // 硬件异常:主接触器未吸合 或 三角形已误动作
nState := 99; // 故障态
END_IF;
2: // 三角形运行态
bKM1Out := TRUE;
bKM2Out := FALSE;
bKM3Out := TRUE;
IF NOT bKM1FB OR NOT bKM3FB OR bKM2FB THEN // 任一反馈异常即停机
nState := 99;
ELSIF bStop THEN
nState := 0;
END_IF;
99: // 故障锁定态(需手动复位)
bKM1Out := FALSE;
bKM2Out := FALSE;
bKM3Out := FALSE;
// 输出报警位 bAlarm := TRUE; (此处省略)
END_CASE;
✅ 该逻辑彻底规避“星-三角切换窗口期”风险:
- 状态1中,
tDelay.Q为真才允许进入状态2;- 状态2中,
bKM2FB = TRUE(星形未断开)即触发故障,强制停机;- 所有状态切换均以硬件反馈
bKMxFB为依据,非单纯依赖输出指令。
四、双重互锁有效性验证表
| 验证项目 | 硬件互锁作用 | 软件互锁作用 | 是否通过 |
|---|---|---|---|
| KM1/KM2同时得电 | 常闭触点物理断开,线圈无电流 | ST代码中 IF bKM1Out AND bKM2Out 强制清零 |
是 |
| 启动按钮粘连 | 仅影响当前方向,另一方向仍被常闭锁死 | ELSIF 结构阻止并发执行 |
是 |
| PLC输出模块击穿 | 无法绕过常闭触点,另一接触器仍安全 | 反馈信号 bKMxFb 检测到异常,进入故障态 |
是 |
| 星三角切换瞬间 | KM2/KM3常闭触点机械联锁,禁止双吸 | 状态机 CASE 强制单态,无中间过渡态 |
是 |
| 定时器失灵(卡在ON) | 不影响硬件断开逻辑 | nState 锁定在状态1,bKM3Out 永远为FALSE |
是 |
五、工程落地必查清单(调试前逐项打钩)
- [ ] KM1/KM2/KM3接触器型号一致,辅助触点额定电流 ≥ 控制回路电流(通常≥5A);
- [ ] 所有按钮使用金属外壳+接地端子,避免静电干扰PLC输入;
- [ ] PLC输入滤波时间设为 ≤ 2ms(西门子默认6.4ms,需在设备配置中修改);
- [ ] 在ST代码顶部添加
#pragma disable_warning 3022(抑制“未使用变量”警告,确保bKMxFb被强制读取); - [ ] 上电后首步:断开KM1主回路,单独测试KM2/KM3互锁——按SB1应能吸合KM2,此时按SB2应完全无效;
- [ ] 实际负载测试:空载运行3次正反转切换,用钳形电流表测主回路三相电流,确认无>10ms的电流重叠区。
所有步骤执行完毕后,系统即具备工业级抗干扰能力与故障自诊断能力。

暂无评论,快来抢沙发吧!