
在中药煎药车间数字化改造过程中,很多开发者会把上位机简单理解为“PLC数据可视化+下发指令”,但真正落地到GMP合规、生产安全、药效保障层面,会遇到很多隐形深坑。我参与过国内6家大中型煎药中心的上位机系统开发与改造,其中配方版本失控、断点续煎失效、交叉污染防护缺失是最高发的三类问题,轻则导致整批药材报废,重则触发合规风险。本文结合实际项目经验,拆解这三个核心问题的技术本质与落地方案。
一、配方版本管控:生产安全的第一条红线
中药处方的配伍严谨,剂量、煎制时序的偏差都会直接影响药效,甚至引发医疗风险。同时药监部门要求煎药全过程可追溯,配方的任何变更都必须留痕可查。很多初级方案里,配方只是一个可编辑的本地文件,改完直接覆盖下发,这在生产环境中是绝对的红线。
1. 常见的版本失控场景
- 无版本号机制:工艺员修改配方后直接保存,历史版本被覆盖,出现问题无法回溯变更点;
- 版本不同步:多台煎药设备组网时,部分设备没收到最新配方,新旧版本同时运行;
- 无审核流程:操作人员可随意修改配方参数,没有审批环节,风险不可控。
印象最深的是2023年华东某项目上线初期,工艺员调整了一个处方的先煎时长,直接覆盖了原配方,且没通知生产端,导致当天3个批次的药品不符合工艺标准,全部报废,最后靠还原数据库日志才定位到问题。
2. 全生命周期版本管理体系
真正可用的配方管理必须遵循“创建-审核-发布-下发-归档”的闭环流程,引入语义化版本号和状态机管控。
(1)语义化版本与状态流转
采用「主版本号.次版本号.修订号」的语义化规则:主版本变更代表配伍或核心工艺调整,次版本代表煎制参数优化,修订号代表纠错或备注更新。
每个配方版本对应四种状态:草稿、审核通过、已发布、已废弃。只有「已发布」状态的配方才能下发到设备端,废弃版本禁止调用。
对应的配方版本管理流程如下:
(2)下发与双向校验
配方下发不能是“发出去就结束”,必须建立双向确认机制:
- 上位机下发配方时携带唯一版本号,设备端接收后存储并回执版本号;
- 每次生产任务启动前,上位机再次校验设备端当前配方版本与任务绑定版本是否一致,不一致则禁止启动并报警;
- 网络中断恢复后,自动进行版本对账,确保全车间设备版本统一。
(3)审计追溯不可少
所有配方的创建、修改、审核、发布、下发操作都要记录操作人、时间、变更内容,且记录不可删除、不可修改。配合生产批次号,可以追溯到每一锅药使用的具体配方版本。
核心实体类参考实现(C#):
/// <summary>
/// 配方版本实体
/// </summary>
public class RecipeVersionInfo
{
public string RecipeCode { get; set; } // 配方唯一编码
public string VersionNumber { get; set; } // 语义化版本号 例:1.3.0
public RecipeStatus Status { get; set; } // 草稿/审核通过/已发布/已废弃
public List<HerbDosage> HerbList { get; set; }// 药材明细
public List<FryStep> FrySteps { get; set; } // 煎制步骤集合
public string Creator { get; set; }
public DateTime CreateTime { get; set; }
public string Auditor { get; set; }
public DateTime? AuditTime { get; set; }
public string ChangeDescription { get; set; } // 版本变更说明
}
二、断点续煎:掉电重启后的药效与安全双重考验
煎药过程中突然停电、设备故障跳闸、人工紧急暂停是生产现场的常态。如果恢复后从头开始煎,会导致药材过度煎煮,有效成分破坏;如果直接跳步骤,又可能出现生药、加热不均等安全隐患。断点续煎不是简单“记住当前步骤”,而是要完整还原煎制状态。
1. 常见的实现缺陷
- 状态只存内存:断点数据保存在PLC寄存器或上位机内存,掉电后数据丢失,只能从头煎;
- 粒度过粗:只记录当前执行到第几步,不记录步骤内已执行时间、当前温度、累计加热量,续煎精度差;
- 无安全校验:恢复后直接继续执行,不检查传感器是否正常、配方是否被篡改,存在安全风险。
2. 状态快照+安全校验的可靠方案
断点续煎的核心是「细粒度快照+持久化存储+续煎校验」,确保恢复后煎制曲线与正常流程偏差在允许范围内。
(1)细粒度状态快照
对每个煎制步骤建立完整的状态快照,不仅包含步骤索引,还要包含步骤内的所有过程参数:
- 时间维度:当前步骤已执行时长、累计总煎制时长;
- 热工维度:当前锅内温度、累计加热量、加热功率占比;
- 物料维度:先煎、后下、包煎等特殊投料节点是否已执行;
- 设备维度:阀门状态、搅拌状态、压力值。
状态流转逻辑如下:
stateDiagram-v2
[*] –> 正常执行
正常执行 –> 断点触发: 停电/故障/暂停
断点触发 –> 写入快照: 持久化断点数据
写入快照 –> 等待恢复
等待恢复 –> 安全校验: 上电/故障解除
安全校验 –> 校验失败: 异常/版本不匹配
校验失败 –> 人工处理
安全校验 –> 校验通过: 全部参数正常
校验通过 –> 续煎执行: 从快照点恢复
续煎执行 –> 正常执行
正常执行 –> 结束
(2)持久化与写入策略
采用「关键节点强制写入+周期定时写入」双策略:
- 投料、转火、泄压等关键节点触发时,立即写入断点快照到Flash/本地数据库;
- 正常煎煮过程中每30秒自动写入一次快照,覆盖上一版数据;
- 快照数据采用冗余存储,同时保存在上位机和PLC端,避免单一存储损坏。
(3)续煎前三重校验
恢复供电后,不能直接续煎,必须依次通过三重校验:
只有全部校验通过,才允许从断点处继续执行,同时记录续煎操作人和续煎时间,纳入生产追溯。
三、交叉污染软件防护:GMP合规的隐形防线
中药煎药中,不同处方之间的交叉污染是GMP检查的重点。很多系统完全依赖操作人员人工清洗锅具,软件层面没有任何强制约束,很容易出现漏洗、清洗不彻底就开始下一批的情况,留下合规隐患。
1. 交叉污染的核心风险
- 不同药性的处方混煎,比如含毒性药材的处方清洗不彻底,污染普通处方;
- 过敏类药材残留,引发用药者过敏反应;
- 清场记录不全或可篡改,药监检查时无法提供有效证明。
2. 软件强制清场与验证机制
交叉污染防护不能只靠管理制度,必须用软件逻辑形成强制闭环,做到“不清洗、不生产;不合格、不通过”。
整体防护流程如下:
(1)批次与锅具的绑定隔离
每个生产任务分配唯一批次号,与指定锅具编号绑定。任务开始前校验锅具状态:如果上一任务批次与当前处方不同,且未完成清洗流程,则锁定该锅具,禁止启动新任务。
对于含毒性药材、特殊致敏药材的处方,设置“专锅专用”标记,使用后必须执行深度清洗流程,且清洗记录单独归档。
(2)清洗流程的软件强校验
不能仅凭人工点击“已清洗”按钮,必须通过硬件参数验证清洗效果:
- 水温校验:清洗水温≥85℃,持续时间≥5分钟;
- 流量校验:清洗水流量达到设定阈值,确保冲洗覆盖;
- 排水校验:清洗废水排空,液位传感器检测到空锅状态。
以上参数全部满足,软件才判定清洗合格,解锁锅具。参数不达标则自动延长清洗时间,或触发报警提示人工检查。
(3)清场记录的不可篡改设计
所有清场记录(清洗开始时间、结束时间、水温、流量、操作人、判定结果)自动写入数据库,采用追加写入模式,不提供修改和删除接口。记录支持导出打印,满足药监检查的追溯要求。
四、整体系统架构参考
结合以上三个核心模块,完整的煎药上位机系统采用分层架构设计,从下到上分别是设备层、控制层、业务逻辑层、数据层和展示层,其中配方管理、断点续煎、交叉污染防护都属于业务逻辑层的核心能力。

五、落地补充:几个容易忽略的细节
1. 与PLC侧的双向校验
很多上位机只做“下发指令”,不做结果校验。实际上PLC也可能出现指令丢失、执行偏差,关键操作(配方下发、投料指令、续煎启动)都需要PLC回执确认,确保指令真正执行。
2. 电子记录的合规性
煎药记录属于药品生产记录,需要符合电子记录和电子签名的相关规范。重要操作需要双人复核,操作日志不可删除,确保追溯链完整。
3. 异常场景的人工介入边界
软件防护不是越严越好,要预留合理的人工介入通道。比如特殊情况下需要跳过清洗,必须由主管授权,且全程记录原因,做到“有例外、必有审批、必有记录”。
中药煎药上位机的核心价值,从来不是把数据搬到屏幕上,而是用软件逻辑守住制药生产的安全底线、合规底线和药效底线。配方版本、断点续煎、交叉污染这三个问题,看似是功能点,实则是生产系统可靠性的试金石。希望这些踩坑总结和落地方案,能帮同行在项目中少走弯路。
网硕互联帮助中心





评论前必须登录!
注册