
从事中药煎药工控开发三年跑过十几家药企、上百套设备现场最深的感触就是一套能稳定落地的煎药自动化系统永远是PLC工艺控制做底WPF上位机做面。很多团队做项目容易走极端要么重硬件轻软件PLC逻辑写得粗糙上位机只做简单显示现场工艺问题多、合规通不过要么重界面轻底层上位机做得花里胡哨核心工艺逻辑都放在软件里断个网、崩个程序就整批药材报废。真正工业级的煎药系统一定是分层解耦的PLC层牢牢守住工艺时序、安全联锁、实时控制的底线就算上位机宕机、网络中断也能独立把药跑完WPF上位机负责业务管理、可视化展示、批次追溯、合规审计是生产管理和验收的核心载体。中间通过标准化的OPC UA通信层对接替换哪边都不影响另一边。本文就从工程落地角度完整拆解西门子S7-1200 PLC工艺控制 C# WPF上位机的完整实现方案从单锅工艺逻辑、多锅集群调度到上位机MVVM架构、合规追溯设计覆盖现场核心痛点与避坑方案可直接用于项目开发。一、整体系统分层架构边界清晰才是稳定的基础整套系统自上而下严格划分为四层职责单一、边界清晰依赖方向单向是所有成熟煎药产线的通用框架。WPF上位机层业务与合规中心。负责配方管理、工单派发、实时监控、数据追溯、审计日志、报表导出不直接干预工艺时序。OPC UA通信层数据交互枢纽。屏蔽不同PLC品牌、协议的差异实现标准化的数据读写、订阅推送、断线补传。PLC控制层工艺与安全核心。负责单锅状态机流转、分段PID温控、硬件安全联锁、断点续煎、多锅资源调度是整个系统的安全底线。现场硬件层感知与执行终端。温度/液位传感器、阀门、加热管、搅拌电机等直接由PLC驱动。核心原则所有和工艺时序、安全联锁相关的逻辑必须全部沉在PLC里。上位机就算崩了、网断了PLC也要能独立把当前这锅药跑完。这是医药工控的铁律。二、PLC侧工艺控制单锅稳定 产线协同以西门子S7-1200为例所有工艺逻辑采用结构化编程单锅控制封装为独立FB功能块每口锅对应一个背景数据块新增锅位只需要新建实例不用重复写代码。产线调度逻辑独立封装统一管理公共资源与设备状态。2.1 单锅核心工艺实现单锅是产线的基础单机逻辑打磨不到位上了产线问题会成倍放大。2.1.1 分层状态机工序可控可追溯摒弃零散的置位复位标志位采用**「主状态 子步」**的分层状态机设计每个状态严格遵循「入口动作 周期逻辑 出口条件」三段式规则后期改工艺、加工序只需要新增节点不用到处改逻辑。标准主状态完整流转路径待机就绪 → 定量进水浸泡 → 恒温浸润 → 武火升温煎煮 → 文火微沸煎煮 → 药液输出 → 药渣挤压回收 → 自动排渣 → 喷淋清洗 → 沥干复位 → 待机就绪。每个主状态下再拆分子步比如进水工序拆分为开进水阀 → 流量累计计量 → 关进水阀 → 液位校验四步每一步都有独立的超时与异常判断。2.1.2 分段PID温控适配煎煮工艺特性彻底放弃固定参数PID方案按照煎煮工序拆成四段每段独立PID参数、独立输出限幅从根源解决固定参数超调、沸腾不稳的问题。浸泡补偿段小比例增益低温补偿加热维持浸润温度防止温度震荡。武火升温段大比例增益优先快速升温距离沸点预估阈值还差5℃时提前降功率靠余热冲温避免冲温溢锅。武火保沸段中参数控制维持剧烈沸腾状态保证有效成分析出。文火煎煮段小比例增益强制限制最大输出占空比维持微沸状态既减少有效成分挥发也避免糊底。沸腾判定不硬编码100℃采用**「温度接近阈值 温升速率放缓」**双条件复合判断适配不同海拔、不同气压的现场环境。2.1.3 硬安全联锁底层实现上位机无权干预安全逻辑全部写在PLC最底层独立于状态机之外就算状态机跑飞保护机制依然生效低液位联锁液位低于阈值立刻切断加热输出防干烧超温联锁温度超过安全阈值强制停加热触发本地告警舱门互锁开盖状态禁止加热、挤压等高风险动作超时联锁每个工序设置最大超时时间防止设备卡死无提示急停联锁硬件回路直接切断动力不经过软件逻辑。2.1.4 断点续煎掉电保持 分级续跑校验医药设备物料不可逆断电不能直接复位重来。核心变量掉电保持主状态编号、子步序号、工序剩余计时、故障代码、当前配方参数全部设置为掉电保持。分级续跑校验上电恢复后先校验中断时长、温度变化、工序阶段。短时中断且状态正常自动续跑长时中断或状态异常锁定状态等待人工确认。续跑全程留痕所有断点续煎事件全部记录日志包含中断时间、恢复时间、续跑原因满足追溯要求。2.2 产线集群调度实现单锅逻辑稳定后多锅产线的核心是解决公共资源争抢、功率峰值、故障扩散的问题调度逻辑同样在PLC层实现不依赖上位机。2.2.1 公共资源仲裁进水总管、清洗水泵、排渣传送带这类独占公共资源统一执行**「申请 → 排队等待 → 授权使用 → 用完释放」**的闭环流程。锅位执行到需要公共资源的工序先向调度块发申请资源被占用就进入队列按优先级排队资源空闲后按顺序分配工序执行完立刻释放。从根源上杜绝多锅抢资源的冲突。2.2.2 整机功率错峰多锅同时武火升温瞬时功率很容易跳车间总闸。调度层实时统计所有锅位的加热输出总功率当总功率接近供电上限时对新申请的升温任务做延后排队优先保证已经进入沸腾、文火阶段的锅位功率。不用改工艺只是错开升温时间就能把功率峰值压下来完全不影响整体产能。2.2.3 分级故障隔离产线最忌讳“一锅故障全线停工”采用三级故障处理机制单锅级故障只暂停当前锅位锁定工单释放公共资源其他锅位正常生产。资源级故障比如清洗泵坏了所有需要该资源的工序进入等待状态不影响正在煎煮的锅位故障排除后自动恢复。全线级故障急停、总电源异常所有锅位立刻执行安全停机流程。三、WPF上位机MVVM架构的工程化实现上位机决定项目能不能验收尤其是医药行业GMP对数据追溯、操作审计的要求非常细。采用MVVM架构开发分层解耦可维护性强完全匹配工控场景的多设备复用、高频刷新需求。技术栈选用WPF CommunityToolkit.Mvvm OPC UA客户端和PLC侧完全解耦替换任意一边都不影响另一边。3.1 整体分层架构采用标准MVVM分层额外独立服务层封装基础设施职责清晰依赖方向单向。View层纯展示和输入所有数据通过绑定后台代码几乎没有业务逻辑。包含主监控界面、参数面板、报表界面等。ViewModel层业务逻辑核心。接收服务层数据转换成界面显示格式封装用户操作命令全程不引用任何界面控件。Model层纯数据实体。对应PLC节点结构、业务数据表结构不包含任何逻辑。服务层基础设施封装。OPC UA通信服务、数据归档服务、报表服务等向上层提供接口。3.2 核心功能模块实现3.2.1 OPC UA通信服务封装OPC UA客户端屏蔽底层协议细节向上提供统一的数据读写接口。节点按「产线→工位→工艺段→具体点位」四层结构组织命名规范统一业务层调用不用记忆硬编码地址。关键状态、告警、温度采用订阅模式数据变化主动推送降低轮询开销。内置自动重连、指数退避、断线数据补传机制车间网络波动不丢数据。3.2.2 通用锅位复用单锅业务逻辑封装在一个通用ViewModel里多少口锅就实例化多少个完全复用。负责状态转换、温度格式化、命令封装、告警处理通过消息总线和通信服务交互不直接依赖SDK。界面配套通用用户控件通过数据绑定对应ViewModel实例新增锅位只需要新建实例不用加任何界面代码。3.2.3 配方与工单管理配方版本管控完整的草稿→审批→生效→归档流程每个版本独立存储批次启动时强绑定对应版本中途配方升级不影响当前批次所有变更留痕可追溯。工单队列管理支持手动创建、MES系统同步自动分配空闲锅位支持优先级调度实现批量生产无人值守。3.2.4 实时监控与可视化整线设备状态、工序进度、温度压力参数实时展示支持单锅详情弹窗查看。实时温度曲线展示采用滚动窗口机制只保留最近数据避免内存持续上涨。故障分级告警弹窗声光提示自动记录故障时间、位置、原因。3.2.5 合规追溯与审计全链路批次追溯每一批次完整保存工艺参数、全程温度曲线、告警记录、操作记录。操作审计日志所有启停、参数修改、手动干预操作全部留痕不同角色权限隔离数据不可篡改。双写持久化本地文件数据库双备份数据库故障不影响生产数据保存。3.3 工控场景专项优化UI刷新节流温度变化小于阈值不触发界面更新降低渲染压力避免高频数据导致界面卡顿。线程安全后台采集数据调度到UI线程更新优先级设为Background优先响应用户操作。内存治理图像、曲线数据采用滚动窗口定时主动GC回收避免内存泄漏保障7×24小时稳定运行。四、通信层与稳定性保障通信是连接PLC和上位机的桥梁工业现场环境复杂网络波动、电磁干扰都是常态通信层的稳定性直接影响整个系统的可靠性。4.1 OPC UA节点规范统一的节点命名规范是后期维护的基础采用分层结构Line1.Station01.Process.InletTempLine1.Station01.Command.Start按「产线→工位→类型→点位」组织业务层调用不用记忆硬编码地址可读性和可维护性大幅提升。4.2 数据交互策略下行指令上位机下发的控制指令带唯一序号PLC端做幂等校验避免重复执行指令先入队列按顺序下发。上行数据实时数据订阅推送历史数据按需读取断开期间PLC本地缓存带时间戳存储恢复后批量补传。心跳检测应用层独立心跳3秒无响应判定链路断开立刻进入重连流程比协议自带超时响应更快。4.3 稳定性兜底机制通信层独立封装业务层不直接接触SDK通信故障不拖垮UI。网络中断时指令本地缓存恢复后自动补发不静默丢失。状态对齐机制通信恢复后上位机主动读取PLC状态同步永远以PLC侧状态为准绝对不能以上位机记忆的状态往下覆盖。五、现场避坑与合规要点5.1 工程调试避坑工艺逻辑一定要沉在PLC绝对不要把状态跳转、计时写在上位机里网络和软件的稳定性远不如PLC。沸腾判定别硬编码100℃温度温升速率的复合判断才能适配不同的现场环境。PLC掉电保持要合理使用只存核心工艺变量不要所有变量全勾选加快闪存损耗。多锅项目一定要做功率错峰不要等现场跳闸了再打补丁前期就要规划。上位机数据一定要双备份数据库不能作为唯一存储本地文件兜底合规验收的时候能救命。5.2 医药合规防护配方版本管控所有变更留痕、可追溯生效配方不可修改变更必须走审批流程。断点续煎分级不是所有中断都能续按时长、工序、状态分级处理长时中断必须人工确认。交叉污染软件防护批次结束强制清场锁定分级清洗程序双确认机制全程记录可追溯。数据不可篡改生产记录、操作日志采用追加式存储禁止修改删除满足GMP审计要求。六、项目落地与迭代建议6.1 不同规模选型小型单锅设备S7-200 SMART 简易上位机基础工艺数据记录低成本落地。中型煎药车间4-8锅S7-1200 独立WPF上位机 OPC UA通信支持多锅调度与合规追溯。大型药企量产产线16锅以上S7-1500/DCS MES对接 数据平台全自动化合规生产。6.2 稳妥迭代流程单锅硬件调试 → PLC单锅工艺与安全逻辑调通 → 多锅硬件组网 → 集群调度逻辑开发 → 上位机基础功能开发 → 通信联调 → 合规与追溯功能完善 → 压力测试与现场优化循序渐进最大程度规避返工风险。工业煎药机自动化系统本质是工艺为根、PLC为骨、上位机为表的系统性工程。PLC守住工艺和安全的底线上位机做好管理和合规的载体通信层打通两边的数据链路分层解耦各司其职才是能长期稳定运行的工业级方案。很多项目做不好不是技术有多难而是边界没划清职责放错了位置。把工艺的还给PLC把业务的还给上位机把稳定的设计做在前面现场就能少踩很多坑。这套方案经过多个煎药中心项目验证不管是小型设备还是大型产线都能直接复用参考。