在工业自动化项目中,热压设备的控制看起来并不复杂。
从动作上看,无非是加热、合模、加压、保压、冷却和开模。
但实际进行 PLC 程序设计时,会发现一个问题:
这些动作并不是简单地按照时间顺序执行,而是存在大量条件依赖。
例如,温度没有达到工艺要求时,是否允许加压?保压过程中温度出现异常,程序应该继续运行还是进入故障状态?冷却尚未完成,设备能否开模?
这些问题都需要在控制逻辑中明确处理。
本文以液流电池复合双极板热压设备为例,介绍如何使用 PLC 状态机组织温度、压力与位移控制。
一、为什么热压设备适合使用状态机?
对于简单的液压压装设备,可以通过顺序控制实现:
启动 → 快进 → 工进 → 保压 → 卸压 → 返回
但热压设备除了运动控制,还涉及温度调节、压力保持、冷却以及多个工艺条件之间的协调。
例如:
- 加热温度未达到允许范围时,不能直接进入指定加压阶段。
- 合模位置未确认时,不能启动相应的压制动作。
- 压力超过允许上限时,需要触发异常处理。
- 卸压条件未满足时,不能进入正常开模动作。
如果把这些条件分散写在多个程序网络中,后期维护和调试可能比较困难。
使用状态机,可以将设备划分为明确的运行阶段,每个阶段独立管理动作输出、切换条件和异常判断。
二、热压设备的状态如何划分?
以一台液压热压成型机为例,可以设计以下工艺状态:
| 状态 | 功能 | 进入下一状态的条件 |
|---|---|---|
| IDLE | 待机 | 启动请求及启动条件满足 |
| HEATING | 加热 | 温度进入允许范围并稳定 |
| CLOSE_MOLD | 合模 | 合模位置确认 |
| PRE_PRESS | 预压 | 预压目标及相关条件满足 |
| PRESSING | 加压 | 达到工艺规定目标 |
| HOLDING | 保压 | 保压过程完成 |
| COOLING | 冷却 | 达到规定冷却条件 |
| RELEASE | 卸压 | 压力下降至允许范围 |
| OPEN_MOLD | 开模 | 开模位置确认 |
| COMPLETE | 完成 | 完成信号确认 |
| FAULT | 故障 | 故障复位条件满足 |
这是一种简化的顺序状态机。
实际设备可能在合模前完成模具预热,也可能在保压过程中同步冷却。因此,状态划分需要根据材料工艺调整。
此外,温控 PID 通常可以作为独立控制功能持续运行,由工艺状态机管理其目标温度和运行许可,而不是在每个状态重新实现温控算法。
三、PLC 状态机如何实现?
对于支持 IEC 61131-3 Structured Text(ST)的 PLC,可以使用枚举状态与 CASE 结构组织顺序控制。
下面给出一个简化示例,重点展示状态切换逻辑。
1. 定义状态
TYPE E_PressState :
(
IDLE,
HEATING,
CLOSE_MOLD,
PRESSING,
HOLDING,
COOLING,
RELEASE,
OPEN_MOLD,
COMPLETE,
FAULT
);
END_TYPE
这里使用枚举类型表示各个工艺阶段,比直接使用数字状态码更容易阅读和维护。
2. 定义主要变量
VAR
State : E_PressState := IDLE;
StartCmd : BOOL;
ResetCmd : BOOL;
SafetyOK : BOOL;
TempReady : BOOL;
MoldClosed : BOOL;
MoldOpened : BOOL;
CoolingDone : BOOL;
PressureActual : REAL;
PressureTarget : REAL;
PressureLimit : REAL;
PressureReady : BOOL;
PressureSafe : BOOL;
HeatEnable : BOOL;
CloseCmd : BOOL;
PressCmd : BOOL;
CoolEnable : BOOL;
ReleaseCmd : BOOL;
OpenCmd : BOOL;
FaultActive : BOOL;
HoldTimer : TON;
END_VAR
其中,TempReady 不应只由单次温度采样决定。
实际工程中通常需要结合允许温差、稳定时间以及传感器状态,判断温度是否真正满足工艺条件。
PressureReady 也需要结合压力反馈、允许偏差及必要的稳定条件进行判断。
3. 使用 CASE 管理状态
以下为教学用示意代码,假定安全控制系统、运动控制模块及各执行机构已经完成独立设计。
(* Default commands *)
HeatEnable := FALSE;
CloseCmd := FALSE;
PressCmd := FALSE;
CoolEnable := FALSE;
ReleaseCmd := FALSE;
OpenCmd := FALSE;
(* Process fault check *)
IF FaultActive THEN
State := FAULT;
END_IF;
(* Holding timer *)
HoldTimer(
IN := (State = HOLDING) AND PressureReady,
PT := T#10s
);
CASE State OF
IDLE:
IF StartCmd AND SafetyOK THEN
State := HEATING;
END_IF;
HEATING:
HeatEnable := TRUE;
IF TempReady THEN
State := CLOSE_MOLD;
END_IF;
CLOSE_MOLD:
CloseCmd := TRUE;
IF MoldClosed THEN
State := PRESSING;
END_IF;
PRESSING:
PressCmd := TRUE;
IF PressureReady THEN
State := HOLDING;
END_IF;
HOLDING:
PressCmd := TRUE;
IF HoldTimer.Q THEN
State := COOLING;
END_IF;
COOLING:
CoolEnable := TRUE;
IF CoolingDone THEN
State := RELEASE;
END_IF;
RELEASE:
ReleaseCmd := TRUE;
IF PressureSafe THEN
State := OPEN_MOLD;
END_IF;
OPEN_MOLD:
OpenCmd := TRUE;
IF MoldOpened THEN
State := COMPLETE;
END_IF;
COMPLETE:
IF NOT StartCmd THEN
State := IDLE;
END_IF;
FAULT:
(* Recovery controlled separately *)
IF ResetCmd AND SafetyOK
AND NOT FaultActive THEN
State := IDLE;
END_IF;
END_CASE;
注意:这段代码仅用于说明状态机结构,不能直接作为实际液压机的完整控制程序。
例如,正常卸压控制、异常卸压、阀组互锁、温控 PID、运动超时、压力传感器故障以及故障恢复步骤,都需要在实际项目中单独实现。
尤其不能把 FaultActive 直接等同于所有执行机构立即断电。液压系统的安全响应应根据风险评估、阀组结构、蓄能状态及相关安全功能设计。
四、温度、压力与位移如何协调?
热压设备控制中容易出现的一个问题,是将温度、压力和位移理解为三个完全独立的控制量。
实际上,它们通常存在工艺关联。
1. 温度控制
温度控制一般通过 PID 调节实现。
PLC 根据工艺状态设置目标温度,温控模块负责将实际温度稳定在允许范围内。
对于多区加热设备,还需要分别监测各加热区温度。
状态机主要负责判断:温度是否已经满足进入下一工艺阶段的条件?
2. 压力控制
液压系统通常通过压力传感器或其他力测量装置获取反馈。
在加压阶段,可以根据工艺要求逐步提高目标压力。
保压阶段则需要监测实际压力是否处于允许范围。
还需要区分液压系统压力与工件实际受到的压制力,两者并不能在所有设备中直接等同。
3. 位移控制
位移传感器用于监测活动压板位置、工作行程或材料压缩量。
对于部分复合材料热压工艺,位移控制可以与压力限制配合使用。
例如,压板接近工件前采用位置或速度控制,接触后根据工艺要求切换至压力控制,并设置位移上限。
这里有一个重要原则:
压力目标和位移目标不能在同一个自由度上被简单地当作两个必须同时精确满足的独立控制目标。
实际需要根据机械结构和工艺要求确定主控制量,并将其他变量作为限制、监测或状态切换依据。
五、异常处理为什么不能只设置一个报警位?
对于热压设备,异常处理应当根据故障类型进行区分。
例如:
| 异常情况 | 建议处理思路 |
|---|---|
| 温度长时间未达标 | 报警并阻止进入指定工艺阶段 |
| 加热区温度超限 | 执行规定的温控异常处理 |
| 加压过程压力超限 | 触发相应保护及受控处理逻辑 |
| 合模动作超时 | 停止相关运动并记录故障 |
| 位移反馈异常 | 禁止依赖该反馈的相关动作 |
| 通信异常 | 按设备设计进入预定状态 |
在程序设计中,可以将故障划分为工艺异常、设备故障和安全相关事件。
工艺异常可能允许暂停后恢复;某些设备故障需要人工确认;安全相关事件则必须由适当的安全控制系统处理。
此外,故障复位并不意味着可以从任意状态直接重新启动。
例如,设备在加压过程中发生故障,恢复运行前需要确认压力、位置、温度及执行机构状态,再决定是否允许继续当前工艺或执行安全退出程序。
六、如何利用状态机提高程序可维护性?
在实际项目中,可以进一步将控制程序划分为三个模块。
工艺管理模块
负责设备运行状态、工艺配方、步骤切换及循环管理。
设备控制模块
负责液压阀组、加热模块、位移控制及传感器数据处理。
故障与诊断模块
负责异常检测、报警记录、故障恢复条件和相关状态管理。
这样做的好处是,当设备更换材料工艺或者增加新的热压阶段时,主要调整工艺状态与参数,不必大量修改底层执行机构的控制程序。
对于自动化生产线,还可以在此基础上增加设备握手、物料到位、工位就绪和生产数据记录等功能。
总结
热压设备的 PLC 控制并不只是按照固定顺序执行动作。
真正需要解决的是温度、压力、位移及不同工艺阶段之间的条件依赖问题。
通过状态机组织工艺流程,可以使程序结构更加清晰,也更容易进行故障定位、工艺调整和后期维护。
在具体工程中,还需要结合实际液压系统、温控系统、安全要求以及产品制造工艺,对状态切换条件和异常处理逻辑进行完整设计。
状态机解决的是程序组织问题,而稳定可靠的设备控制,还取决于底层闭环控制、工艺验证及安全设计。