在智慧煎药中心场景中,文武火分段煎煮是中药工艺的核心。文火慢煎、武火沸腾,不同处方需要切换不同加热功率、保沸时长,还要支持先煎、后下特殊工序。本文从工程落地角度,讲解基于S7‑1200 PLC + C# WPF上位机整套方案,包含PLC控制逻辑、上位机交互、现场调试遇到的实际问题。
一、整体系统架构
- PLC(S7‑1200):负责硬实时控制,状态机流转、PID温控、文武火切换、安全联锁、断点续煎。即使上位机关闭,PLC可独立完成当前批次煎煮。
- WPF上位机:处方工单管理、工艺参数下发、实时曲线展示、批次数据存储、操作权限与审计追踪。
- 现场外设:加热管、固态继电器实现功率档位切换;温度、液位传感器采集锅内工况;投料、挤压、排渣机构完成完整工序。
二、文武火分段煎煮工艺逻辑
一套完整煎煮工序:浸泡 → 武火升温至沸腾 → 武火保沸 → 文火慢煎 → (可选先煎/后下等待投料)→ 挤压出液 → 排渣清洗。
| 阶段 | 工艺说明 | 控制要点 |
|---|---|---|
| 浸泡阶段 | 常温浸泡药材 | 不加热,计时,可低温补偿加热 |
| 武火升温 | 大功率快速加热至沸腾 | PID大功率输出,快速抵达沸点,防干烧保护 |
| 武火保沸 | 剧烈沸腾,短时间萃取有效成分 | 维持沸腾状态,高功率区间,监控溢锅风险 |
| 文火煎煮 | 微沸慢煎,减少挥发性成分损耗 | 降低输出功率,维持微沸,温度小幅波动属于正常 |
| 后下等待 | 等待人工投入后下药材 | 暂停加热,上位机弹窗提醒,等待确认信号 |
工艺关键点:不是简单固定温度设定值,沸腾以后依靠维持沸腾状态而不是死死锁死某一个摄氏度;海拔不同沸点会变化,不能写死温度阈值。
三、S7‑1200 PLC端核心实现
3.1 采用分层状态机设计
主状态枚举:待机、浸泡、武火升温、武火保沸、文火煎煮、后下等待、挤压出液、排渣清洗、故障暂停。
每个主状态内部包含子步,遵循:入口动作、周期扫描逻辑、出口跳转条件三段式。
DB块开启非优化块访问,方便上位机读写;关键状态、子步、定时器剩余时间开启掉电保持,实现断电断点续煎。
3.2 文武火PID分段控温逻辑
S7‑1200使用FB41 CONT_C功能块做PID调节,不同煎煮阶段使用不同PID参数集。
- 武火阶段:比例P放大,加快升温速度,允许较大输出占空比;
- 文火阶段:降低P,增加积分I限制,避免剧烈沸腾溢锅;
- 沸腾判定:温度到达接近沸点,结合温度上升速率综合判断,而不是单纯判断等于100℃。
功率输出做档位限制:武火允许0‑100%输出;文火强制限制最大输出上限,防止出现剧烈沸腾。
伪逻辑示意:
CASE 主状态 OF 浸泡: 加热输出:=0; IF浸泡计时到 THEN 切换至武火升温; 武火升温: PID参数集:=武火参数; PID运算输出到加热占空比; IF检测到沸腾 THEN 切换武火保沸; 武火保沸: PID参数集:=武火保沸参数; 限制最大输出100%; IF保沸计时完成 THEN 切换文火煎煮; 文火煎煮: PID参数集:=文火参数; 强制限制最大输出功率上限; IF文火计时完成 THEN 判断是否需要后下; END_CASE3.3 安全联锁(PLC内部硬保护,不受上位机控制)
- 液位过低,直接切断加热输出,触发干烧告警;
- 温度超过上限阈值,强制停止加热;
- 舱门打开禁止进入加热工序;
- 故障发生,保存当前状态与计时,进入暂停状态,可恢复继续执行,不直接复位。
四、WPF上位机实现要点
4.1 通信层
C#通过S7协议和S7‑1200交互:
- 读取DB块:当前锅位状态、子步、实时温度、压力、告警码、剩余时间;
- 下发工单:处方编号、浸泡时长、武火时间、文火时间、是否开启先煎/后下标志;
- 下发操作指令:启动批次、暂停、恢复、复位。
注意:上位机只下发参数与指令,不能接管PLC流程驱动。网络抖动、上位机崩溃,PLC依旧独立运行当前煎煮流程。
4.2 业务功能模块
处方工艺配置
可以预设常用处方模板,也支持单处方自定义文武火时长;标记是否先煎、后下。参数下发前做参数范围校验,防止非法数值写入PLC。实时监控与曲线
WPF图表展示温度、加热输出占空比实时曲线,直观观察武火升温、文武火切换过程;每个锅位状态可视化展示。后下工序人机交互
PLC运行到“后下等待”状态,上传状态标记,上位机弹出弹窗提醒操作人员投入后下药材;操作人员确认之后,上位机下发确认信号,PLC继续往下执行煎煮流程。批次归档与审计日志
每一次批次完整保存:处方信息、文武火各阶段时间、完整温度时序曲线、操作人员、告警记录;人工暂停、修改参数全部写入审计日志,满足煎药室管理规范。
五、现场调试高频踩坑
- PID震荡,武火阶段冲温严重
现象:温度超调,出现大量溢锅风险。
解决:武火升温阶段到达沸点前提前降低PID输出;区分升温阶段和保沸阶段两套PID参数,不要全局同一套参数。
- 不同海拔,沸点不等于100℃
现象:平原设备现场正常,高原现场永远判定不到沸腾。
解决:沸腾逻辑增加温度上升速率判断,支持现场校准沸腾阈值,不要硬编码100℃。
- 断电重启,煎煮从头开始
现象:中途断电,上电后全部计时清零。
解决:PLC DB块开启掉电保持;主状态、子步、定时器剩余时间全部保持,上电恢复后从断点继续执行文武火流程。
上位机断连,煎煮流程失控
解决:所有时序逻辑放在PLC;上位机仅仅做监控与指令下发;禁止把计时、状态判断写在上位机软件中。文武火切换时刻沸腾剧烈波动
解决:切换阶段增加输出平滑过渡,不要瞬间满功率或者直接归零。
六、整体流程闭环总结
处方在上位机录入 → 文武火等工艺参数下发S7‑1200 → PLC状态机驱动浸泡‑武火‑文火完整流程 → 遇到后下等工序向上位机推送交互提醒 → 煎煮完成执行挤压排渣清洗 → 上位机采集完整曲线、告警、操作人员信息归档保存。
S7‑1200负责可靠的工业级时序与安全,WPF上位机承担业务、人机交互与追溯,二者职责严格分离,是中药煎煮工控稳定落地的核心。