我入行第二年接的第一个独立项目,就是一套药品包装机的控制系统改造。当时甲方给的技术协议只有三页纸,核心要求一句话:把老的继电器控制盘换掉,生产节拍不能低于原来的每分钟80板,还要能接入车间MES系统。说实话,那会儿我对药品包装机整个工艺流程的理解还停留在纸盒封装的层面,铝塑包装、装盒计数、批号打印这些环节的时序配合完全是现场蹲了一个星期才摸透。后来这套系统稳定运行三年多没出过大毛病,我也因为这次项目把PLC从入门到精通真正滚了一遍。这篇就把这个项目从需求梳理、硬件选型、程序框架到调试踩坑的过程完整拆出来,给准备做同类项目的朋友一份能直接参考的实战手册。
药品包装机跟通用包装机最大的区别在两个字:合规。设备的控制逻辑不仅要满足生产节拍,还得符合GMP对药品包装过程中可追溯性、异物混入防护、批次记录的要求。所以PLC方案在这个场景里几乎是唯一合理的选择——单片机抗干扰能力和长期稳定性存疑,工控机成本太高且操作系统的非确定性在连续生产中是个隐患,而PLC的梯形图逻辑、看门狗机制、工业级I/O模块天然适合7x24小时连续运行。预算充足选西门子S7-1200或S7-1500,追求性价比就三菱FX5U,但无论选哪家,一定要留足20%以上的I/O余量,药品包装机后续加检重秤、加视觉检测的概率极高,别让自己在交付半年后为了几个输入点重新配柜子。
1. 项目整体设计与思路拆解
1.1 药品包装机的工艺环节与核心需求
先把一个典型的药品包装机搞清楚。市面上常见的设备是铝塑包装机(也就是泡罩包装机),工艺流程是:PVC硬片加热软化 → 在成型模腔里吹泡 → 泡罩内填装药板或胶囊 → 铝箔覆盖 → 热封 → 打批号 → 冲裁 → 废料回收 →(可选)装盒机联动。我的项目里还串联了一台透明膜三维包装机,所以整套系统实际上是两台设备的联控。
剔除继电器控制后,控制系统要解决的几个核心需求分别是:温度的精确控制、PVC膜走带的位置追踪、冲裁与热封的节拍同步、以及跟装盒机之间的联锁信号。任何一个环节出问题,轻则泡罩成型不良导致漏气,重则批号压印位置跑偏整批返工。药品包装对包装完整性要求极高,泡罩里药片受潮变色是严重的质量事故,所以热封温度必须稳定在工艺允许的±3℃以内,这对PID调节的响应速度和控制精度提出了明确要求。
1.2 PLC方案为何优于继电器、单片机与工控机
现场老设备用的是继电器逻辑盘,中间继电器上百个,靠时间继电器实现动作时序。这种方案最大的问题有两个:一是时间精度差,时间继电器误差动辄±10%,冲裁和热封的配合只能靠机械凸轮硬调,换一副模具就得重新调一遍;二是故障排查噩梦,一个继电器触点老化导致偶尔断一次,眼神不好的老师傅在控制柜前能蹲半天。
PLC方案带来的提升是本质性的。第一,时序逻辑用内部时钟实现,精度毫秒级,凸轮轴位置传感器反馈到PLC后可以做到动态补偿,换模具只需要在触摸屏上改参数,不用动机械;第二,梯形图程序把复杂的机械联锁关系全部固化到逻辑里,出现故障直接在HMI上弹报警,不用拿着万用表去量每个触点;第三,通讯能力让设备有了接入数字化工厂的基础。关于单片机方案,说实话在一些简易版包装机上也有人用,但药品行业要过验证,审计员会查看控制器的使用寿命、抗干扰测试报告、备品备件的长期供应能力,这些是PLC的强项。工控机方案更适合需要复杂视觉算法和数据库支持的场景,但成本高,而且Windows系统在工业现场的死机风险是制药企业很难接受的。
2. 硬件选型与电气系统设计
2.1 PLC品牌与型号的权衡
选PLC的时候我做了个对比表,核心对比项是:扫描周期、模拟量处理能力、通讯协议支持度、程序容量和项目预算。
| 对比项 | 西门子 S7-1200 | 西门子 S7-1500 | 三菱 FX5U | 欧姆龙 CP1H |
|---|---|---|---|---|
| 适合场景 | 中小型单机 | 中大型联控 | 中小型单机 | 中小型单机 |
| 高速计数通道 | 6路(1MHz) | 8路(1MHz) | 8路(200kHz) | 4路(100kHz) |
| 模拟量扩展 | 信号板/模块 | 模块丰富 | 模块丰富 | 模块较少 |
| 内置以太网 | 有(PROFINET) | 有(PROFINET) | 有(Modbus TCP) | 有(EtherNet/IP) |
| 典型成本(CPU+电源) | 约4000元 | 约12000元 | 约2800元 | 约3500元 |
我最终选了S7-1200 1214C DC/DC/DC,一个重要原因是它的高速计数器支持对编码器信号的直接计数,而药品包装机的膜长追踪恰恰需要高速计数通道实时采集色标传感器的脉冲。三菱FX5U性价比更高,但当时项目要求通讯协议为PROFINET与车间MES对接,西门子的原生支持让集成省了很多中间转换的麻烦。如果你的现场上位机用的国产组态软件(组态王、力控这类),那三菱和欧姆龙可能更顺手,因为它们的驱动库更普及。说到底,没有绝对的好坏,只有适不适合你现场的通讯生态。
2.2 I/O点表的统计与预留策略
做I/O点表是电气设计里最重要也最容易被新手轻视的环节。我统计这个项目的信号时,数字量输入含启动停止按钮、急停、门开关、各工位光电传感器、色标传感器、温度超限报警等一共34点;数字量输出含主轴电机接触器、风机接触器、加热棒可控硅触发、各气缸电磁阀、报警灯、批号打印电磁离合等一共28点;模拟量输入是热封温度、成型温度两路PT100(还有一路备用);模拟量输出两路,分别给加热棒的功率调节和(备用)变频器频率给定。
实际采购模块时,我做的预留方案是:DI模块36点、DO模块32点、AI模块4路、AO模块2路,另加一个8路DI的扩展模块备用。经验是数字量输入点最容易超预估,因为设计时容易漏掉各个安全门锁开关、传感器诊断信号、手动调试模式用的旁路开关。电气柜交付时多几个没接线的输入点不是浪费,是给后期调试和工艺优化留的后门。
2.3 伺服系统与编码器的选型配套
热封冲裁的动力来自一台主电机(异步电机+变频器),但PVC膜走带和冲裁定位的同步问题是靠机械凸轮解决的。改造之后我保留主电机的机械凸轮结构,但增加了一套追标系统:编码器装在PVC走带轴的端部,通过高速计数通道实时采集膜长;色标传感器检测铝箔上的印刷色块,两者配合实现动态追标。这套结构的好处是保留原有机械的同时又获得了精确的位置反馈。
编码器选了增量式1000线的,配合PLC的4倍频模式,分辨率等效4000脉冲/转,对于常规的膜长追踪完全够用。伺服驱动器在这一版方案里用在一个辅助工位上——装盒机的推料机构,要求位置精度±0.5mm,我选了一台750W的松下伺服,脉冲方向模式控制。调试伺服时特别注意了电子齿轮比的设置:减速机速比是5:1,丝杆导程10mm,PLC输出脉冲当量设为0.01mm/脉冲,电子齿轮比计算公式为(编码器分辨率×4×速比)/(导程/脉冲当量)=(10000×5)/(10/0.01)=5000/1000=5:1,这个值设错了伺服要么动作奇快震得咚咚响,要么半天走不到位。
3. 程序框架与核心控制逻辑
3.1 主流程状态机的设计思路
PLC程序最怕一锅粥式的梯形图,所有逻辑堆在一起,手写几百行后面根本维护不了。我的做法是把整个控制流程用状态机来设计,每个工序是一个独立状态,程序里只保留一个S始终表示当前状态,状态切换用一个步进阶梯逻辑实现。这种方式有几个好处:诊断时能直接看到设备停在哪个工步;修改顺序只需调整转移条件;新增工位不用重写主逻辑,加一个状态分支就行。
药品包装机的主流程状态大致是:待机 → 手动/自动选择 → 自动运行下分 = 送料 → PVC加热成型 → 泡罩填充 → 铝箔覆盖 → 热封 → 冷却 → 打批号 → 冲裁 → 成品计数 → 出料。状态的跳转里面最关键的是各工位的到位传感器信号和主轴编码器角度。之前继电器方案是用凸轮上的微动开关触发各工位动作,我改造后把所有触发点改为编码器角度值在PLC里做比较,这样即使凸轮磨损导致机械相位偏移,也可以通过触摸屏的相位参数微调,不用停机换凸轮,这个改动老师傅们觉得是颠覆性的。
3.2 温度PID控制的关键参数与指令实现
热封温度控制是药品包装质量的生命线。加热棒是220V供电,由可控硅调功器驱动,PLC输出模拟量4-20mA信号作为调节给定。PLC里PID控制我用的是S7-1200自带的PID_Compact指令,但控制块不是一接上就能用,需要整定参数。温度控制对象本质是一阶惯性加纯滞后环节,加热棒到热电偶之间有几十秒的滞后,如果PID参数给得太激进,温度会产生持续震荡,温差可能拉到±10℃以上。我在这个项目里的整定思路是:先设纯比例控制,P值从5%逐步加大,观察温度稳定时间和超调量;然后加入积分作用消除稳态误差,I值初始设为200秒,逐渐缩短;微分作用在温度控制里其实用得很保守,因为滞后系统的微分容易引入噪声,一般I值为主,D值很小或不用。
整定记录我留着:成型温度设定145℃,实测稳定在144.2~146.8℃之间;热封温度设定180℃,实测波动范围178~182℃,满足工艺要求。有个干扰源容易被忽略——热风循环风机的风速波动会导致加热效率变化,我是把风机启停信号也接入PLC作为前馈补偿,风机启动瞬间把PID输出做小幅预调整,温度冲击明显减小。
// 以SCL为例,PID手动/自动切换时的无扰切换处理 IF "HMI_PID_AUTO" AND NOT "PID_PreAuto" THEN // 手动切自动前,将PID输出初值设为当前手动输出值 "PID_Heat_Seal".ManualValue := "AO_Heat_Seal_Current"; END_IF; "PID_PreAuto" := "HMI_PID_AUTO";3.3 追标与同步控制的位置修正算法
追标控制是这个项目的技术难点,也最容易让调试人员头疼。简单理解追标过程是:色标传感器检测到膜上印刷的色块后,PLC记下当前编码器计数值,跟设定的标准膜长做比较,如果走带距离偏大(说明膜在拉伸),就把追标修正脉冲叠加到走带电机控制信号里,让膜短暂减速;如果偏小,就让膜短暂加速。这里的关键在于修正量的计算不是简单的偏差相加,而是要做比例增益处理,否则修正过猛会造成膜带抖动,下一版泡罩位置又偏到另一侧。
我的实现方法是:编码器累加值在OB1的中断里读取,当色标信号到来时,把当前计数值减去上一周期计数值得到实测膜长,偏差值乘以追标增益系数K后,输出一个修正时间给走带牵引轴的变频器模拟量。K值的现场调试过程是先设0.5,然后在下一次巡检观察泡罩冲切边距,不断上下调整,最终稳定在1.2左右。另外还要注意一点:不同批次铝箔的印刷色标间距可能有微小差异,所以我在HMI上提供了自动学习功能——连续采集10个色标间距求平均值,作为本次运行的目标膜长,这个功能实际生产时极其好用。
3.4 联锁保护与安全逻辑
药品包装机涉及加热、运动机构、压缩空气等,联锁保护逻辑必须从设计阶段就完整考虑。我的安全联锁清单包括:急停回路(硬接线串入所有动力回路接触器);门开关联锁(防护门打开→主轴停转+加热切断);温度超限(加热超温→切断可控硅触发信号并报警);气压低(压力低于0.4MPa→气缸不能动作,设备自动暂停);PLC看门狗(PLC异常或程序跑飞→主接触器断开)。这些联锁必须用硬件+软件双重实现,不能只靠程序逻辑。特别是急停和超温,必须走硬线回路,因为PLC程序逻辑可能在极端故障下也失效。
有一个细节:热封加热棒如果在设备停止时还在持续加热,药板停留时间长会烤焦。所以程序里做了静止延时逻辑——自动运行状态下主轴停止超过3秒,加热输出自动降至保温值;超过30秒,彻底切断加热。保养时工人清理模具也会触碰加热棒,这个逻辑能极大降低烫伤风险。
4. 实操过程与现场调试日记
4.1 程序离线仿真与安全测试
整个程序我在博途里做完组态和离线仿真才敢去现场。S7-1200可以用PLCSIM(配合S7-PLCSIM Advanced的话还能模拟完整以太网通讯)做逻辑预演,先把状态机流程用虚拟信号跳一遍,确认没有死锁和不可达状态。温度PID则用内部仿真参数块模拟,先验证无扰切换逻辑和控制量输出范围没有越限风险。这一步帮我省了大量现场时间,尤其是一些极端的联锁条件,比如急停重新复位后的状态恢复逻辑,在现场反复测试要花一个小时,仿真环境里五分钟就能覆盖。
4.2 电气柜装配与现场接线
电气柜的装配过程有几个容易被忽略的细节:PLC的DC24V电源要用带屏蔽的开关电源,而且24V回路的0V要跟接地PE严格分开,避免干扰模拟量信号;模拟量信号线用双绞屏蔽线,屏蔽层单端接地;编码器线不能跟动力线走同一个线槽,否则编码器脉冲信号会被变频器输出电缆的谐波干扰,出现计数丢步。这个干扰问题我第一批布线图里就踩过坑,当时编码器反馈的膜长值在主轴转速超过120转/分时偶发跳变,排查了整整一天,最后把编码器线单独穿管走线并加磁环才彻底解决。
接线后有个必做的检查步骤:断电状态下用万用表测量DI点的对地绝缘电阻和相邻线间短路,这项检查看着不起眼,但在现场帮我排除过一根被线鼻子破皮短接的DO线,如果不查直接上电,那个输出点对应的气缸电磁阀会常带电,设备一上电就出现误动作。
4.3 程序下载与初步上电调试
PLC程序下载前,必须确认PLC的IP地址跟其余设备不在冲突网段,我一般用192.168.0.1-10给PLC、HMI、伺服驱动器、变频器各分配一个固定IP,MES交换机地址另设网段避免广播风暴干扰。上电调试的第一步是检查所有模块状态灯:SF灯(系统故障)如果亮,多半是模块组态与实际不符,或者外部接线短路,这个故障必须清零才能继续。第二个步骤是逐个手动短接DI点,确认触摸屏上的状态点位跟实际一致——这个过程千万别图快,我就因为赶进度少验证了三个点,后来调自动流程时发现一个常闭输入点逻辑反了,导致安全门联锁失效,幸好当时设备在低速试跑阶段没出安全事故。
初步带载调试我习惯从手动模式开始,把每个气缸的动作、每个电机的启停都在HMI手动页面逐一测试一遍,确认方向、速度、限位全部正常后,才切换到单步自动模式跑第一板药。第一板跑出来的泡罩质量基本能暴露出工艺参数的偏差——成型泡太浅可能是加热温度不够或真空负压不足;热封边缘不齐可能是热封压力不平或温度偏高导致铝箔收缩;冲裁位置偏左或偏右就是追标参数没调好。我当时的习惯是在第一板上贴一张白纸记录现象,然后一口气调三轮横向对比,把问题收敛了再继续跑连续生产。
4.4 节拍优化与效率提升
完成基本运行只是第一步,节拍优化才是让甲方认可的关键。这台设备的设计节拍是每分钟80板,我刚调通时只能跑到每分钟68板,瓶颈在热封工位——热封时间受加热功率限制,温度降到设定值以下需要等待回升。优化方案是分两个角度来解决:一是把加热功率提升到原设计的三倍,缩短热封后的恢复时间;二是在主轴高速区把热封加压时间的起始角度提前,利用剩余热量弥补功率缺口。调整后节拍成功稳定在每分钟82板,超过了甲方技术协议的每分钟80板要求。优化过程的参数调整不是拍脑袋,每一步都在HMI趋势图里对比了温度曲线和主轴电流曲线,确认没有过载和超温风险。
5. 常见故障与排查技巧实录
5.1 温度波动大的三类典型原因与整定方法
PID温度控制波动大,在我项目的调试期和客户使用期都出现过,原因各不相同。第一种是PID参数过激,现象是温度在设定值上下以2-3分钟周期反复震荡,解决办法是把比例增益调小、积分时间调大,让系统回归稳定;第二种是传感器的安装位置或接触不良,热电偶插入深度不够导致测量值偏冷,控制器始终满出力,实际温度可能已经超温,排查方法是把热电偶拔出测量端的实际温度做对比;第三种是电源干扰导致模拟量跳变,温度显示在正常值上附加了随机干扰毛刺,这种必须从屏蔽接地和供电隔离入手。
我建议任何温度波动问题都按以下表格顺序排查,不要一上来就调PID参数。
| 排查顺序 | 检查对象 | 判断方法 |
|---|---|---|
| 1 | 热电偶类型与量程组态 | 室温下读取是否为环境温度 |
| 2 | 热电偶安装深度与固定 | 实测端与显示端温差是否在5℃内 |
| 3 | 模拟量模块滤波时间 | 观察趋势图毛刺是否随滤波时间增加而消失 |
| 4 | PID参数与输出限幅 | 输出是否频繁进出上下限 |
| 5 | 加热棒功率与可控硅触发 | 万用表实测加热电流是否稳定 |
5.2 追标失准与泡罩位置偏移的排查
追标不准的故障现象是泡罩在铝箔上的位置忽前忽后,或者整版冲切偏位导致药片外露。排查思路按递进层次走一遍。先确认编码器是否丢步——把设备停在固定相位,查看HMI上的累计计数值是否跟机械上的参考标记对齐,如果每次复位后数值都不一样,优先检查编码器联轴器是否松动、编码器线缆是否贴近动力线。再确认色标传感器灵敏度——找一张当前用的铝箔膜,用示波器或传感器自带指示灯观察色标输出信号,如果波形抖动或幅值不够,调整传感器的增益和阈值。最后才是追标增益参数是不是调得过头了,这个参数调太大产生的过冲现象是泡罩位置在设定值两侧来回偏,调太小则是单方向长期偏移,现场用趋势图观察偏差曲线就能区分。
5.3 PLC与HMI通讯中断的处理经验
S7-1200跟精智面板通过PROFINET通讯,运行中偶发通讯中断又自动恢复,这个故障最难定位。我排查的结论是交换机端口质量导致的——设备端用的是一台普通商用交换机,当现场变频器启停频繁时,电磁干扰导致交换机端口短暂down掉,PLC侧主动断开连接。解决方法是把PLC和HMI直接直连(不经过交换机),或者换成工业级交换机并按规范做好接地。直连方案最稳妥,因为一台PLC员只带一到两台HMI,完全没有必要过交换机,还能省一个故障点。另外建议把HMI里的连接参数中“建立连接超时”和“尝试重新连接次数”调大,至少能减少网络抖动带来的报警误报。
5.4 安全联锁误触发的排障与参数优化
安全联锁逻辑设计得再严密,也存在实际生产中的误触发问题。最常见的误触发是门开关——车间工人操作时靠在防护门上导致触点瞬间断开,设备急停后重新启动需要较长复位流程,影响效率。解决方式是把门开关的信号滤波时间从默认的20ms调整到200ms,避免人体短暂接触造成的瞬断误判,同时保持对真正开门动作的快速响应。但要注意,这个调整在医药企业做FMECA分析时需要记录在案,不能随意改,涉及安全功能的参数改动必须走变更流程。另一个高频误触发是气压低报警,空压机启动瞬间气压下降导致PLC检测到低于阈值,可在程序里加入3秒的延时确认,确认期间不做急停只做预警,既保证安全又不影响正常生产节奏。
6. 项目验收、合规性与后续扩展
6.1 出厂测试与现场验收的关键检查项
设备验收环节,我按医药项目的惯例做了FAT(工厂验收测试)和SAT(现场验收测试)两轮。FAT阶段在装配车间完成,主要验证:空载连续运行24小时无故障;带载运行4小时,产品合格率不低于99.5%;所有报警功能逐项触发并记录响应时间;I/O点对点测试完成率100%。SAT阶段在客户车间复测,重点验证与车间上下游设备的联锁信号、MES通讯数据点的准确性和响应时间。验收文档要准备齐全:I/O清单、报警清单、程序备份注释版、操作手册、维护手册,一份都不能少,GMP审计时这些就是设备的“户口本”。
6.2 程序备份、注释规范与GMP审计相关
药品包装设备的PLC程序在GMP受控环境中是重要的合规记录,审计员会检查程序的版本、修改历史、审批记录。所以程序注释规范不是写给自己看的,是写给审计员和后续维护工程师看的。我的注释规则是:每个网络(Network)必须有功能注释,标志字(M区变量)必须在注释表里说明含义和用途;每次程序修改,必须在程序文件的修改记录页注明修改日期、修改人、修改原因、涉及功能块。PLC程序备份至少保留两份,一份存项目工程师手里,一份放客户资料柜,备份文件用带日期的文件名区分,避免出现“最终版”“最终版2”这类命名混乱。
项目收尾时还要做一项容易被忽略的工作——把触摸屏的配方功能利用起来。药品包装机经常换品种批次,每一批药的药板尺寸、成型温度、热封温度、追标膜长都不同。我把全部工艺参数做成配方表,运行前直接调用配方,一分钟内完成换型参数设置。这个功能不仅减少了操作工手动输入参数的出错率,也提升了设备的柔性化水平。后来客户扩产改造,又提出要增加条形码扫描追溯功能,我基于原系统的以太网口预留能力完成升级,没用更换PLC就实现了数据溯源,这也验证了当初预留通讯接口的决策是正确的。
写在最后的一点经验
做完这个项目,我最大的体会是PLC控制系统的设计难点从来不在指令集或编程语法本身,而在对工艺的理解深度和对现场工况的敬畏。温度PID整定、追标算法这些,书上都有原理,但真正让设备稳定运行靠的是反复调试和过程数据的积累。如果你也要做药品包装机或类似的连续生产自动化项目,我的建议是:第一,上电前花一天时间把I/O点和安全联锁完整性核对清楚,这比少睡几个小时值太多;第二,每个工艺参数的调整都要在趋势曲线里留下证据,方便复现和排障;第三,程序里多留手动模式,现场调试时你会发现手动模式好用程度远超想象。最后再分享一个小技巧:触摸屏上手自动切换画面加上一个当前状态实时显示条,操作工能看到设备到底卡在哪一步,很多让人头疼的“反馈设备乱停”问题,其实都是操作工看不懂状态信息导致的。