4. 位逻辑指令与电机启停控制
在三相异步电动机控制中,最基础也最常用的控制方式就是“启保停”和“正反转”。S7-1200 的位逻辑指令正是实现这些控制的核心工具。本节围绕常开触点、常闭触点、线圈、置位/复位以及边沿检测五类指令,结合一台三相异步电动机的启保停与正反转控制任务,说明如何从电气控制逻辑迁移到 PLC 程序逻辑。
一、位逻辑指令的基本含义
位逻辑指令操作的对象是布尔量(BOOL),即“1”或“0”。在梯形图(LAD)中,常开触点 | | 表示“信号为 1 时导通”,常闭触点 |/| 表示“信号为 0 时导通”。线圈 ( ) 则把前面逻辑运算的结果输出到指定地址。置位指令 (S) 在条件满足时把位写为 1 并保持,复位指令 (R) 在条件满足时把位写为 0 并保持。边沿检测分为上升沿 P 和下降沿 N,用于捕捉信号从 0 到 1 或从 1 到 0 的瞬间变化,常用于按钮触发、计数和状态切换。
需要特别区分“电平”和“边沿”:普通触点判断的是当前电平状态,只要条件成立就持续导通;边沿检测只在信号变化的那一个扫描周期内有效。若把启动按钮直接接普通常开触点去驱动线圈,按住按钮期间线圈一直得电,松开即失电,无法实现自锁;而用上升沿触发置位,则按一次即可保持,这正是启保停程序的关键。
二、I/O 分配与电气—程序对应关系
以一台三相异步电动机正反转控制为例,假设使用 S7-1200 CPU 1214C DC/DC/DC,输入端子接 24V 直流信号。I/O 分配如下:
| 功能 | PLC 地址 | 电气元件 | 说明 |
|---|---|---|---|
| 停止按钮 | I0.0 | SB1 常闭 | 按下断开,用于停止 |
| 正转启动 | I0.1 | SB2 常开 | 按下接通,启动正转 |
| 反转启动 | I0.2 | SB3 常开 | 按下接通,启动反转 |
| 热继电器 | I0.3 | FR 常闭 | 过载时断开 |
| 正转接触器 | Q0.0 | KM1 线圈 | 正转输出 |
| 反转接触器 | Q0.1 | KM2 线圈 | 反转输出 |
注意:停止按钮和热继电器在电气上使用常闭触点,接入 PLC 后,正常状态下输入为 1,动作后变为 0。因此程序中应使用常开触点判断“是否允许运行”,而不是想当然地使用常闭触点。这是初学者最容易出错的地方。
三、启保停程序的实现
启保停的核心是“启动优先、停止优先、自锁保持”。在 LAD 中可用以下逻辑实现:
Network 1: 正转启保停
I0.0 I0.3 I0.1 Q0.0
|----| |---------| |---------| |----+----( )----|
|
Q0.0
| |
自锁
其含义是:停止按钮 I0.0 未动作(为 1)、热继电器 I0.3 未动作(为 1)、正转启动 I0.1 按下(为 1)时,Q0.0 得电;Q0.0 的常开触点与 I0.1 并联,形成自锁。松开 I0.1 后,电流经 Q0.0 自锁触点继续维持。按下停止按钮 I0.0 变为 0,或热继电器动作 I0.3 变为 0,自锁回路断开,Q0.0 失电。
若使用置位/复位指令,程序更简洁:
Network 1: 正转启动置位
I0.0 I0.3 I0.1
|----| |---------| |---------| |--------(S) Q0.0
Network 2: 正转停止复位
I0.0
|----|/|--------------------------------(R) Q0.0
这里 I0.0 在 Network 1 中用常开触点表示“停止按钮未动作”,在 Network 2 中用常闭触点表示“停止按钮动作”。置位/复位的优点是逻辑清晰,但必须保证复位优先于置位,否则同时满足时输出状态不确定。S7-1200 中,若同一扫描周期内 S 和 R 都执行,后执行的指令生效,因此通常把复位网络放在置位网络之后。
四、正反转互锁与边沿检测
正反转控制的关键是互锁:KM1 和 KM2 不能同时吸合,否则会造成电源相间短路。除了在电气上使用接触器常闭触点互锁外,程序中必须加入软件互锁。即在正转回路中串入反转输出 Q0.1 的常闭触点,在反转回路中串入正转输出 Q0.0 的常闭触点。
此外,若正反转切换时直接按另一个启动按钮,可能因按钮抖动或扫描周期问题产生瞬间同时导通。更稳妥的做法是使用边沿检测:只在按钮按下的上升沿触发置位,并在切换时先复位当前方向,再置位目标方向。例如:
Network 3: 正转上升沿置位
I0.0 I0.3 I0.1 Q0.1
|----| |---------| |---------|P|--------|/|----(S) Q0.0
Network 4: 反转上升沿置位
I0.0 I0.3 I0.2 Q0.0
|----| |---------| |---------|P|--------|/|----(S) Q0.1
其中 |P| 表示上升沿检测。这样,即使按钮按住不放,也只在按下的瞬间触发一次,避免重复置位和误动作。若需要更严格的“先停后反”,可在切换逻辑中先复位两个输出,延时后再置位目标方向。
五、调试与验证要点
程序下载后,可通过以下步骤验证:第一,不按任何按钮,观察 Q0.0、Q0.1 是否均为 0;第二,按正转启动,Q0.0 应置 1 并保持,松开后仍为 1;第三,按停止,Q0.0 应复位为 0;第四,在正转运行中按反转启动,Q0.0 应先复位、Q0.1 再置位,且两者不会同时为 1;第五,模拟热继电器动作,两个输出都应立即断开。若发现按停止后仍保持,应检查停止按钮在程序中是否误用了常闭触点;若正反转能同时输出,应检查互锁触点是否遗漏或地址写错。
|/| 判断 I0.0,则正常时逻辑为 0,启动回路永远不导通。正确做法是用 | | 判断“停止按钮未动作”,用 |/| 判断“停止按钮已动作”。
掌握以上位逻辑指令后,启保停和正反转程序就可以稳定运行。后续更复杂的顺序控制、多电机联动,都可以在此基础上通过置位/复位和边沿检测组合实现。