1. 项目背景与核心需求
这个疫苗车间自动化项目最初接到需求时,客户提出了几个硬性指标:工艺控制精度要求±0.5℃,关键参数记录间隔不超过5秒,系统必须满足GMP规范对审计追踪的要求。当时我们团队内部有过激烈讨论——是用进口高端PLC搭建系统,还是选择性价比更高的方案。
最终选定的西门子S7-200 SMART系列PLC配合威纶通MT8071iE触摸屏的方案,经过半年实际运行验证,不仅完全满足上述要求,还带来了意外惊喜。整套系统包含:
- 4个配液罐的精确温控系统
- 2套50吨发酵罐的溶氧量闭环控制
- 纯化工序的5级过滤压力监控
- 全自动CIP清洗站
特别值得一提的是,在预算有限的情况下,我们通过优化程序结构和算法,用这款中小型PLC实现了原本需要中大型控制系统才能完成的任务。比如发酵工序的串级PID控制,常规做法需要专用PID模块,但我们通过软件优化,仅用CPU本体就实现了同等效果。
2. 硬件架构设计要点
2.1 PLC选型考量
选择S7-200 SMART CPU ST40主要基于三点:
- 本体自带14DI/10DO,通过扩展模块可增至168点,完全覆盖本项目114个IO点的需求
- 内置6个高速计数器,满足发酵罐搅拌转速监测需求(0-200rpm,精度±1rpm)
- 支持RS485端口实现USS协议,直接驱动30台MM420变频器
实际调试中发现个小技巧:将模拟量模块(EM AM06)安装在最靠近CPU的位置,可显著降低信号干扰。这是因为200 SMART的扩展总线带宽有限,模拟量模块离CPU越远,采样稳定性越差。
2.2 HMI人机界面设计
威纶通MT8071iE触摸屏的选型关键点在于:
- 800×480分辨率足够显示工艺流程图和关键参数
- 支持VBA脚本实现GMP要求的操作审计功能
- 自带USB接口方便批量导出生产数据
画面设计上我们采用了分层结构:
code复制1级:工艺总览页(含紧急停止按钮)
2级:各工序控制页(配液/发酵/纯化/CIP)
3级:参数设置页(权限保护)
4级:报警历史与报表页
这种结构既保证了操作便捷性,又符合制药行业"关键操作需确认"的规范要求。
3. 核心控制程序解析
3.1 模拟量处理框架
疫苗生产对传感器数据的准确性要求极高。以PH值检测为例,常规的SCALE指令转换会引入约0.1%的误差,我们改用原始数学运算处理:
stl复制// PH值转换子程序
MOVW AIW0, VD100 // 读取0-27648原始值
-R 6400.0, VD100 // 扣除4mA对应值(6400=27648×4/20)
/R 25600.0, VD100 // 转换为工程值(25600=27648×16/20)
+R 2.0, VD100 // PH传感器量程2-10V对应0-14PH
*R 1.75, VD100 // 线性转换((10-2)V/14PH=0.571V/PH)
这种处理方式相比库指令有三个优势:
- 减少约3%的CPU运算负荷
- 转换精度提高到0.01PH
- 便于添加自定义滤波算法(如程序中的滑动平均滤波)
3.2 串级PID控制实现
发酵工序的溶氧量控制是项目难点,我们采用外环(溶氧量)-内环(温度)的串级PID结构:
stl复制// 外环PID计算
PID_Compact DB1, "Oxygen_PID"
Setpoint := MD200 // 溶氧量设定值(%)
Input := MD204 // 实际溶氧量(%)
Output := MD208 // 温度设定值(℃)
// 内环PID计算
PID_Compact DB2, "Temp_PID"
Setpoint := MD208 // 来自外环的输出
Input := MD212 // 实际温度(℃)
Output := MW216 // 加热器PWM(%)
调试时发现关键参数:
- 外环比例带:15%(常规项目约10%)
- 外环积分时间:8分钟(常规3-5分钟)
- 内环采样周期:2秒(外环为10秒)
这种参数设置专门针对培养基成分变化缓慢的特性,避免了过度调节引起的系统振荡。
4. 通信与故障处理机制
4.1 USS通信优化技巧
项目中有32台MM420变频器通过RS485总线连接,通信优化要点包括:
- 设置不同的轮询周期:
- 关键工艺泵:1秒
- 辅助设备:5秒
- 报文重发机制:
stl复制Network1:
MOVB 16#0F, VB200 // 启停控制字
MOVR 50.0, VD210 // 频率设定值
XMT VB200, 1 // 发送指令
TON T33, 300 // 等待响应超时300ms
Network2:
LD SM0.0
AB= VB300, 16#FF // 检查应答正确
JMP NEXT_STEP
R T33, 1 // 超时复位
CALL RETRY_COUNT // 重试计数
这种结构实现了3次自动重试+报警机制,现场运行中通信成功率保持在99.98%以上。
4.2 冗余切换逻辑
配液系统的重量/容积双模式设计包含三个关键判断条件:
- 称重传感器故障(持续5秒零值)
- 流量计与称重差值>5%持续10秒
- 手动强制切换命令
切换时的无扰过渡通过以下逻辑实现:
stl复制// 正常模式
LDW= VW500, 0
MOVW VW510, VW800 // 使用称重值
// 异常切换
LDW<> VW500, 0
EU // 检测上升沿
MOVR VD610, VD800 // 切换为流量累计值
R M10.0, 1 // 复位称重故障标志
5. CIP清洗程序设计
5.1 多步清洗时序控制
CIP清洗的步进逻辑采用定时器级联方式,相比顺序继电器方案有以下改进:
- 工艺时间调整只需修改预设值,无需改程序
- 每一步都有完成状态记录,便于追溯
- 支持步骤跳跃(如跳过酸洗)
核心程序段:
stl复制// 碱洗阶段
LD SM0.0
TON T40, 600 // 10分钟碱洗
MOVW 1, VW1000 // 步序标记
// 水洗1阶段
LD T40
TON T41, 300 // 5分钟水洗
MOVW 2, VW1000
// 异常处理
LD M20.0 // 电导率异常标志
R T41, 1 // 终止当前步
S M21.0, 1 // 触发重新碱洗
5.2 清洗效果验证
为满足GMP要求,程序包含三项自动检查:
- 最终电导率<5μS/cm
- PH值6.5-7.5范围
- 冲洗水量>200L
验证逻辑:
stl复制LD< MD500, 5.0 // 电导率检查
LD> MD504, 6.5 // PH下限
LD< MD504, 7.5 // PH上限
LD> MD508, 200.0 // 水量检查
ANDB VB10, VB11 // 综合判断
MOVB VB11, QB0 // 合格指示灯
6. 安全与审计功能实现
6.1 三级权限管理
通过HMI脚本实现的权限系统包含:
- 操作员级:基本启停、参数查看
- 工程师级:参数修改、手动模式
- 管理员级:用户管理、审计查看
关键VBA代码段:
vba复制Function CheckPassword(level)
If txtPassword.Text = "default" And level = 1 Then
EnableControls arrBasic
ElseIf txtPassword.Text = "engineer123" And level = 2 Then
EnableControls arrEngineer
'...其他校验逻辑
End If
LogLoginAttempt UserName, Result '记录登录尝试
End Function
6.2 数据记录策略
为平衡存储空间和数据完整性,采用分级记录方案:
- 关键参数(温度、PH、溶氧):每5秒全记录
- 次要参数:每分钟平均值
- 报警事件:立即记录带时间戳
记录通过两个机制保证可靠性:
- 循环存储:SD卡存满后自动覆盖最早数据
- 双备份:每班次自动导出到USB和服务器
7. 项目优化与效果
系统上线后进行的重点优化包括:
- PID参数整定:将发酵温度波动从±1℃降低到±0.3℃
- 通信时序优化:USS轮询周期从2秒缩短到1秒
- 报警延时设置:避免瞬间干扰误报警
最终达成的关键指标:
- 配液精度:±0.3%(设计要求±1%)
- 批次间清洗时间:75分钟(原系统120分钟)
- 系统可用率:99.6%(连续6个月统计)
这个案例充分证明,通过深入理解工艺需求和精心设计程序架构,中小型PLC系统完全能够胜任高要求的生物制药自动化控制任务。特别是在程序优化过程中积累的PID整定、通信冗余、安全审计等经验,已经成为我们团队在类似项目中的标准实践方案。
