资讯动态

自动药片装瓶机控制系统:从方案设计到稳定运行的完整经验

发布时间:2026/10/21 12:44:41 来源:尧图企业网站定制
手里这台自动药片装瓶机调试到第三天的时候控制柜里突然跳出一连串报警计数光电闪烁、伺服报超差、剔除气缸没动作。现场操作工看着我来了句“你这神经中枢是不是打结了”我后来把这句话当成一种夸奖——自动药片装瓶机的“神经中枢”从来不是一块PLC那么简单而是由控制器、总线网络、伺服驱动、高速计数、视觉检测和几十个传感器共同长成的系统。这篇文章想聊的就是这样一个“神经中枢”从方案设计到设备稳定跑起来的完整过程。如果你正准备接手类似项目或者在做老设备改造希望这些经验能让你少踩几个坑。1. 先搞清楚这台机器究竟要做哪些事——工艺边界决定控制方案很多人一上来就聊PLC型号、伺服选型我习惯先拉着工艺人员把整条线的动作链画清楚。药片装瓶机看似只有一个“把药片装进瓶子”的动作实际上一台完整的机器至少包含理瓶、输送、数粒、加干燥剂、压盖、贴标、称重复检、剔除等多个工位控制系统每个工位都要照顾到少一个环节后面都会乱。1.1 药片从散粒到整瓶的过程中控制系统要盯住哪几套设备拿一条中等速度的装瓶线举例工艺流程大体是这样的散装药片倒入提升料仓后经过振动盘或转盘数粒通道排列成单列被计数通道一粒一粒数出来数够指定片数后药片落入已经由理瓶机排序送来的空瓶里瓶子继续往前走依次加干燥剂、旋盖、贴标、喷码最后经过称重和视觉复检不合格的瓶子被剔除到副道。这中间控制系统要协调的对象包括理瓶机与送瓶螺杆负责把杂乱无章的塑料瓶整理成统一方向按节拍送入主传送带这里通常有变频器控制螺杆速度需要与主链速度做同步。数粒转盘或直线振动通道核心计数机构可能是多通道并行每个通道有一套光电检测或视觉识别数完后通过翻板或漏斗落入瓶口。干燥剂料斗和加料机构常见做法是用一个小气缸或振动料槽在瓶子到位时自动投入一包干燥剂需要和瓶到位信号互锁。旋盖头、压盖机构连续式设备里旋盖头一般和主轴同步靠凸轮和摩擦轮完成间歇式设备则靠气缸加伺服完成。称重模块与视觉相机每瓶在进入剔除区前都会被称一遍同时视觉拍瓶口、瓶身和药片形态。称重主要负责缺粒和超量视觉主要负责外观缺陷。控制系统的第一件事就是把这些设备按节拍串成一个“链”。哪台机器先动、哪台后动、哪台慢了怎么补偿全部要变成逻辑和参数。哪怕只是传感器安装位置偏了几毫米都可能让整条线的节拍对不上。1.2 控制系统的边界划分设备层、控制层、信息层装瓶机的“神经中枢”不是一台独立控制器而是分了三层设备层光电传感器、接近开关、气缸电磁阀、伺服电机、变频器、称重模块、视觉相机、安全门锁。这一层负责“手脚”和“眼睛”。控制层PLC主站加远程IO、高速计数模块、运动控制单元负责逻辑、时序、运动和报警处理。信息层HMI、数据服务器、MES接口、打印机负责配方、批次管理、追溯和报表。接触过一个改造项目设备本身很老主逻辑还在用继电器加定时器想接追溯系统根本无从下手。后来我们把控制层换成了带以太网接口的PLC信息层单独走网线设备层保留原有继电器输出才算把老设备和新系统捏到一块。这个经验是你打算做多复杂的控制边界在方案阶段就要画清楚别等电柜装好了再动。粗略估算一台20工位装瓶机的基础IO数字量输入大约四十到五十点数字量输出三十点上下模拟量输入十个左右另外还有高速计数通道、称重串口、视觉以太网口。选控制器的时候IO余量建议留百分之二十因为试产阶段大概率会补传感器比如为了监测堵瓶多加一个光电为了统计剔瓶效率再加一个计数输入。余量不够只能外挂IO盒子柜内布线和程序点位都会乱套。2. 硬件怎么选总线、控制器和伺服不是越贵越好硬件选型的核心不是“哪家牌子响”而是“这台机器的负载特性是什么”。有一次同行跟我说他选了某款高配CPU结果整台机器只跑几个气缸伺服都没几台纯属浪费更多的情况是反过来CPU选低了加视觉和追溯功能之后内存不够、扫描周期拉长最后只能推倒重来。2.1 控制器与远程IO选型先算点表再谈型号我习惯第一步先下“点表”。所谓点表就是把所有输入输出信号列成一张大表第一列写设备名称第二列写信号类型第三列写用途第四列写供电等级。这张表既是电气设计的基础也是PLC编程时变量定义的来源。举个例子瓶子到位检测这个点在点表里要写明是“接近开关常开24V直流DC输入模块第18通道”。如果点表都没拉清楚后面画原理图、排端子、编程序必然来回返工。点表完成后再按如下顺序决定硬件数字量输入输出有多少选什么规格的IO模块是集中安装在主柜还是分到远端柜。高速计数需求有多少路。数粒通道每路都要独立的高速计数或者中断输入不能混在普通DI里。运动控制轴数。主轴伺服、数粒盘伺服、贴标主轴同步轴这几路要放在支持同步运动的总线里位置轴和速度轴分开管理。通信接口类型。视觉、称重模块通常走以太网或者串口要先确定PLC支不支持对应协议别等设备到场了才发现协议不匹配。点表列完你会发现真正的硬件瓶颈往往不是CPU算力而是通信端口数量。比如三台视觉相机加两台称重模块都要求网口接入CPU本体网口不够就得加通信模块或交换机这笔预算要在方案阶段留出来。2.2 伺服、变频和普通电机的分工药片装瓶机里不是所有动作都需要伺服。我的分法是主轴和数粒盘用伺服。原因很简单瓶子到达每个工位的时序必须严格同步靠机械凸轮也行但换规格时没有柔性。用伺服做电子凸轮改一个配方就能调整停留角度和时间曲线。传送带和理瓶螺杆用变频器驱动普通电机速度给定来自PLC模拟量或总线主要保证平滑启停不需要精确的位置锁定。旋盖和剔除推杆小负载、短行程用气缸加节流阀就够了成本低、响应快只有对旋盖扭矩有精确要求的位置才考虑伺服压盖。这里有个容易犯的错脉冲控制伺服电机在低速大惯量场合容易丢步装瓶机换规格后惯量变化不小一旦丢步瓶子和数粒盘的相位就对不上。现在主流做法是走EtherCAT这种同步总线或者至少用带编码器反馈的总线伺服把位置误差实时回读给PLC让程序随时知道轴是否跟上。调试第一周我专门在HMI上加了一个“相位偏差”变量所有报警记录里都带着这个值。跑了一段时间发现换规格后相位偏差偶尔会超过两度后来靠适当加大伺服增益才压下来。2.3 独立安全回路的必要性“神经中枢”再聪明也不该把安全逻辑全部压在主控制器上。药片装瓶机虽然不像冲压设备那么危险但里面有旋转的转盘、运动的传送链和自动旋盖头操作工伸手清理堵片时如果安全逻辑还走PLC扫描周期响应就可能慢。我的一贯做法是急停回路用独立安全继电器和硬接线把急停按钮、安全门开关、气压开关全部串在安全回路里任何一个触发直接切断伺服使能和主接触器不经过PLC程序。这样即使PLC死机或者通信中断设备也能停下来。同时PLC程序里再做一层“软联锁”比如安全门复位后必须手动执行复位动作设备才能重新启动数粒通道没准备就绪时主轴不允许加速。硬回路管“能不能通电”软逻辑管“怎么安全地启动”两层分开互不代替。3. 数粒与检测最容易翻车的环节装瓶机控制部分最核心的难题其实是数粒和检测。药片倒进料仓后高速通过数粒通道一粒一粒被光电传感器捕捉。看着简单但现场干扰、药片静电粘连、透明瓶反光、塑料导轨摩擦生电都会让计数失真。计数错了后面称重一查一个准废品率立刻上去。3.1 高速数粒的三种主流实现方式及对比国内装瓶机上最常见的数粒方式是光电通道计数药片从振动料斗落到通道上依次遮挡光电光束每挡一次算一枚。优点是响应快、结构简单缺点是药片连体、叠片或者透明包衣片容易漏检或误检。第二种是称重式数粒把每瓶的重量作为依据配合单粒平均重量换算片数。这种方式对整瓶缺粒比较准但对“多粒缺粒同时出现”就不敏感因为总重量可能碰巧在合格范围内。称重速度也慢一些适合中低速线。第三种是视觉数粒摄像头直接拍药片流或者拍空瓶落下后的堆叠状态通过图像识别药片数量。它对药片形态异常、碎粒、异物识别能力很强但价格高、算力要求高而且对粉尘和水雾很敏感。三种方式各有短板真正稳定的方案往往是把它们组合起来。我做过的一条线用了双通道光电计数再在装瓶后加一道动态称重复核最后用视觉把瓶口和药片形态兜底。这三个数据在PLC里做交叉校验光电计数出的片数和称重反推的片数差异超过设定范围时瓶子直接进剔除道同时触发报警提示操作员检查是哪一路出了问题。3.2 一段调用高速计数模块的ST程序逻辑很多PLC的ST语言里处理计数沿逻辑可以直接写在循环任务里但高速数粒最好用硬件中断或高速计数模块避免扫描周期把脉冲沿漏掉。下面这段结构化文本的功能块表现的是一个典型计数加复核流程实际项目里我会根据PLC型号把高速计数通道映射到对应变量。FUNCTION_BLOCK FB_CountAndCheck VAR_INPUT bEnable : BOOL; // 本批次允许计数 iTargetCount : INT; // 目标片数 bCountSensor : BOOL; // 光电计数信号硬件中断映射 bSensorGood : BOOL; // 通道状态正常 rWeightedQty : REAL; // 称重模块换算出的片数 rTolerance : REAL; // 称重复核允许偏差 END_VAR VAR_OUTPUT bCountComplete : BOOL; // 计数到位 iActualCount : INT; // 已计数量 bReject : BOOL; // 本瓶判定不合格 END_VAR VAR rPrevEdge : BOOL; iRecheckTimer : TON; END_VAR逻辑上分为几个阶段计数阶段。bEnable从TRUE跳变后I段清空iActualCount和bCountComplete开始对bCountSensor做上升沿检测每检测到一次iActualCount加1。到达目标片数后bCountComplete置位同时启动数粒通道和翻板动作把当前通道暂时锁定防止掉片再次计入下一瓶。复核阶段。瓶体到达称重工位后读rWeightedQty和iTargetCount比较差值绝对值超过rTolerance时B_reject置为TRUE。最后在剔除工位读取B_reject触发剔除气缸并把剔除结果写进追溯记录。这段逻辑看起来不复杂难在边沿检测要可靠还要考虑药片微小震颤导致的光电抖动。现场测试时发现传感器接近开关和药片速度匹配不好时一个药片可能被计两次。我的处理方式是在高速计数通道里加“最小值脉宽过滤”低于某个时间宽度的脉冲一律忽略这个参数需要根据药片尺寸和送料速度现场标定不能拍脑袋设一个数。3.3 卡片、漏数、粒型异样如何让系统自己“预判”除了直接计数不准装瓶机还经常遇到卡片。药片形状不规则倒角、异形片容易在通道口卡住一旦卡死后面几十瓶全是缺粒。早期程序只会在“超时未完成计数”时报警但等到超时已经浪费了一堆瓶子。后来我在振动料斗的电机驱动电路里加了一个电流监测正常送料时电流平稳卡片后短时间内振动盘负载变化电流会有一个明显波动。PLC定时扫描电流值一旦连续几次超过阈值就先降低振动频率几秒内没有恢复就停机报警同时把可疑瓶全部标记为待检。这个思路不复杂但需要调试时反复采集电流曲线来确定阈值。类似的预判逻辑还能用在旋盖扭矩上旋盖伺服扭矩超过正常范围大概率是瓶口有毛刺或者盖子压歪了这时候不该硬旋而应停机隔离。预判的意义在于把“已经坏了才报警”变成“快要坏之前就停机”对药厂这种批量连续生产的场景价值很大。因为每多剔一瓶废品后面还要人工复盘原因而卡片导致的批量性缺粒是效率损失最严重的一种。4. 程序架构让一台机既能连续转也能优雅地停控制程序写到后来真正拉开水平的不是“能不能转”而是“各种异常情况下怎么处理”。很多设备出厂时看着正常一到换规格、中途停电、紧急停机再恢复就开始乱套根本原因就是主流程没有结构状态管理混乱。4.1 为什么主流程不能写成一坨梯形图新手的做法是把整个流程从理瓶开始到贴标结束画成一大串输出线圈前面一个动作完成后置位下一段。这种写法在单一规格、无异常场景下没问题可一旦加入暂停、剔除、配方切换、临时手动干预梯形图里的线圈互相牵扯改一个地方崩三个地方。我习惯用状态机来组织主流程。整台机器至少分成待机、准备启动、自动运行、暂停、故障、手动调整、清洗复位这几个主状态每个状态里的动作独立成段状态之间的跳转条件写在专门的逻辑里。这样有个好处不管哪个环节报警程序都能明确知道“现在处于什么状态下一步该干什么”不会出现从运行状态直接跳到复位导致气缸打架的情况。举一个真实例子自动运行中数粒通道报警“卡片超时”主流程从自动运行切到暂停喂料停止但主轴继续转动走完当前一批瓶子操作工处理完卡片后按复位程序先回到准备启动做一次全流程回原点和安全门检查确认无误后才允许再次进入自动运行。如果写成梯形图嵌套很难保证这些中间检查动作都被完整执行。4.2 配方管理切换药片规格的整套动作装瓶机服务的客户通常不只做一种药一天可能切换好几种规格配方管理就是“神经中枢”里很重要的记忆功能。一个完整配方应该包含的内容大致是配方项具体内容切换影响药片规格药片直径、厚度、形状影响数粒通道振动频率、视觉检测模板目标片数每瓶装多少粒影响计数目标、称重上限瓶型参数瓶高、瓶径、瓶口尺寸影响螺杆位置、旋盖高度、传送带速度生产速度目标节拍瓶/分钟影响主轴速度和伺服曲线称重偏差上下限偏移量影响剔除判定剔除补偿剔除气缸延时、副道速度影响剔除效果配方切换不是简单地把参数表填进去就完事。换规格时数粒通道、传送带螺杆、旋盖头、称重机构都要做机械调整很多位置靠伺服和电缸能自动定位但也有一些需要人工换模具。程序在切换前要做“条件检查”确认新规格对应的工装已经装好、传感器和推杆位置在合理范围甚至称重模块的皮重参数都要重新校准。有一次调试中操作员直接选了新配方机器立刻报“旋盖高度超限”就是因为上位配方表和实际机械换型没有联动我们把“换型确认手顺”做进了HMI操作员在屏幕上逐项确认工装到位程序才会释放自动运行这个改动看起来多了一步操作但靠它挡住了好几次换型事故。4.3 中途停机恢复半瓶、断片、卡瓶的收尾逻辑设备运行一半突然报警停机最怕的不是报警本身而是重新启动时瓶子里药片数量不对、位置不对。数粒通道如果正数到一半料门里的药片可能已经落了一半进瓶里剩下的卡在半空中。重新启动时如果直接把计数器清零这瓶就成了缺粒或超量。我的做法是暂停或急停发生时程序记录当前正在装填瓶的“已完成计数”和“瓶位置”HMI上显示“第12号瓶已计数28粒待继续装填”。恢复运行时可以选择“继续装填当前瓶”也可以选择“当前瓶剔除重新装填”。如果是后者PLC先触发气动剔除把半瓶推走再让数粒通道重新启动。这个“半瓶处理”逻辑虽然只占几十行程序但现场救回来的瓶子和少骂的那几句比什么配置都值。断电恢复还要注意配方和计步器数据别丢。变频器、伺服驱动器和PLC本体一般都有断电记忆但工程上要从硬件角度确保存储区的供电或者利用掉电检测立即保存关键数据否则操作工两分钟前调好的参数全部打回原点既影响效率也容易出错。5. 数据追溯机器不只要干活还得把活记录下来现在很多药厂上装瓶机不只是为了“装得快”更要求每一瓶都能追溯。哪一批药、哪个工位、哪台设备、什么时间装完、称重多少克、视觉拍没拍过照片这些数据要完整保存在本地系统里还要能传给车间管理系统。控制系统的“神经中枢”在这里又扮演了数据中枢的角色。5.1 每条产线数据从这里汇总我习惯在PLC里按“批次”和“单瓶”两个粒度组织数据。批次级数据包括生产批号、配方版本、计划产量、生产起止时间、报警数量、剔除数量、批合格率。单瓶级数据包括瓶子序列号、计数通道号、光电计数结果、称重值、视觉判定结果、剔除原因、时间戳。单瓶级数据如果全部存在控制器里内存很容易爆掉所以控制器只保留最近一段时间的实时数据历史数据通过通信转发给上位机或者本地数据库。PLC程序里用一个环形缓冲区存最近200瓶的数据上位机每秒循环读取一次读到新数据就写入数据库。这样做的好处是就算通信断了一会儿最近的200瓶也不会丢网络恢复后上位机可以从断点接着读。5.2 断网补传与电子记录完整性实际车间网络不像办公室那么稳定交换机闪断、上位机重启很常见。如果不做断网补传一次闪断可能丢几百瓶的追溯记录药厂审计时查出来就是大问题。我的方案是PLC本地做一个CSV或者紧凑的二进制缓存文件每次上位机读走之后才清空对应记录。上位机每次读取时带上最后的记录序号PLC比对序号把缺失的补传过去。这样即使断网半天重新连上也能把所有记录按时间顺序补齐。电子记录完整性方面除了补传还要防止操作工或维护人员事后修改。最基础的做法是上位机数据库里不允许删除生产记录PLC报警和操作日志只追加不覆盖对需要修改配方参数的操作记录修改前后的值、修改人账号和修改时间。别觉得这是过度设计真遇到客户审计一条说不清来源的数据比一百条正常数据还麻烦。取巧的另一个思路是给记录文件生成一个校验码数据被改动后校验码对不上系统能发现并提示这套机制我在很多项目里都用上了。5.3 报警与操作记录的“留痕”除了生产数据操作行为也要留痕。HMI上要分账号权限比如操作员只能启动、停止、查看技术员可以修改配方和参数管理员能改系统配置和导出数据。每一类操作尤其是配方修改、参数标定、报警复位都要留下日志。报警记录不能只存“报警代码”和“时间”最好把当时的运行上下文一起存下来。我常让程序在报警触发时额外记录当前主轴速度、当前计数通道状态、当前瓶号、配方版本。这样事后分析原因时不用靠回忆猜。比如一次数粒超时报警如果没有上下文只能看到“21号报警10点03分”有了上下文立刻能看出当时候是伺服加速阶段、振动频率偏高、计数通道刚从上一规格切换过来原因范围一下就缩小了。6. 调试现场从“能跑”到“稳定跑”之间隔着几十个坑程序在实验室跑得再漂亮到了药厂车间也一定会冒出新问题。药粉、静电、车间电磁干扰、操作工的使用习惯这些都是在研发环境里模拟不了的。下面几个坑是我在装瓶机上真真实实踩过的拿出来倒倒苦水希望能帮大家少走点弯路。6.1 伺服干扰让计数器多计了一倍一次完整的排障有一回现场调试白天一切正常到了下午三点左右同一台数粒机的计数突然发疯明明放进去十粒药它数出二十粒来。一开始怀疑光电传感器坏了换了新的还是偶尔多计又怀疑高速计数模块接线松动检查半天也没发现问题。后来用示波器去抓传感器信号线发现下午有一个规律性的高频噪声叠加在信号上频率大概是伺服驱动器的PWM频率。当天下午正好车间空压机启动频繁电压波动大而控制柜里的动力线束和信号线束挤在同一个线槽里伺服驱动器的强电干扰直接耦合到了计数信号线上把一个完整脉冲分成了两个计数自然翻倍。解决办法不复杂把动力线和信号线彻底分槽走光电信号线改用屏蔽双绞线屏蔽层单端接地传感器供电从单独的开关电源隔离取电伺服驱动器动力输出线和编码器线也重新理了一遍避免交叉。改完后再跑连续三天没有再出现多计。后来我把这个教训总结成一句操作口诀电柜布线时永远不要低估强电对高速计数通道的威胁间距和屏蔽一开始就要按标准做别等干扰出来了再返工。6.2 瓶子定位闪烁光电传感器的灵敏度陷阱透明塑料瓶和表面光亮的药片是光电传感器的“天敌”。数粒光电装在导轨上药片落下时光束被遮挡这是正常的但如果瓶子沿传送带运动到检测区瓶身反光也会误触发。有一阵我这边连续出现“空瓶计数”的报警排查到最后发现是瓶口边缘在特定角度下反射光电光束刚好扫进了数粒中断输入每过一个瓶子就多计几次。换传感器是个方向但更快的调整是改灵敏度把传感器增益拉低调到刚好能区分“药片经过”和“瓶身反光”的临界值同时加装遮光罩把环境光对传感器的干扰挡掉。如果现场允许光纤放大器加对射光纤比普通对射光电稳定很多药片直径小到几毫米时想靠一条光路卡住药片边缘还是得用窄光束。透明瓶检测同理优先选带偏振滤光片的光电传感器能大幅减少镜面反射造成的误动作。6.3 静电与粉尘的隐藏杀手塑料瓶在理瓶机和传送带上高速摩擦会产生很强的静电药片尤其是素片被静电一吸就容易粘在导轨壁上计数时一颗当成两颗或者干脆两颗叠在一起通过。车间里的药粉粉尘又会附着在光电传感器镜面上时间一长灵敏度直线下降。我的应对方案是三个动作一起上数粒通道入口加装离子风棒把通道内塑料件的静电中和掉光电传感器探头上加装防尘罩增加压缩空气正压吹扫让粉尘不能停留在镜面定期维护计划里加入“每日下班前清洁数粒通道光电窗口”这一项。这些措施看着都不起眼但效果比单纯改程序参数明显得多。静电问题如果只靠软件滤波永远只能挡一部分治标不治本。7. 交付不是按下启动键就算完设备能跑了不代表项目结束了。作为搞装瓶机控制系统的人我特别清楚“验收”这两个字的分量。很多设备在厂里跑得好好的到了用户车间就不行原因往往是测试没做透、边界情况没覆盖。7.1 FAT测试用例怎么设计才算覆盖充分出厂验收测试不能只测“正常流程”要专门找“不正常”的工况来折腾机器。我一般会准备一份测试用例表把关键项目、测试条件、合格判据都列清楚现场一条条过测试项目测试条件合格判据正常瓶正序空瓶连续过50瓶按配方装片计数准确率100%无缺粒、无超量空瓶检测故意放倒瓶、反向瓶设备识别并剔除或停机不进入后续工位半瓶恢复运行中强制暂停处理半瓶后恢复半瓶被剔除或按设定继续装填计数不混乱断电恢复自动运行中拉闸重新上电关键参数不丢无安全问题可手动恢复紧急停止多处急停按钮分别触发伺服立即停安全回路断开复位后不会自行启动剔除精度人为制造缺粒瓶10瓶全部被剔除不误剔正常瓶通信断连上位机断网5分钟再恢复数据不丢恢复后自动补齐这些用例看着繁琐但每一条都对应一种设备到了现场可能遇到的真实状况。测试时最好让用户方的操作员和技术员一起在场因为他们最清楚现场可能怎么“误操作”提前发现在厂里总比到了客户现场再改划算。7.2 从FAT到SAT现场跑量和稳定度曲线机器到了用户车间还要做现场验收。这个阶段我主要盯的不是“功能有没有”而是“稳定性能不能持续”。通常会安排连续三个班次的试运行统计每班的实际产量、停机次数、剔除次数、合格率。把每一班的节拍和故障次数画成曲线如果三个班次持续下滑说明有问题被摩擦出来比如传感器被粉尘污染、机械位置发生了热漂移、或者配方参数在长时间运行下不稳定。这几个现象在短时间测试里很难看出来必须靠“跑量”验证。等曲线稳定了再跟用户约时间做最终的现场签字。设备验收签字之后我会跟车间设备员一起把常见报警的处置预案写进SOP哪个报警可以自行复位哪个必须通知维护人员哪个要先通风、放静电再处理。这部分是控制系统的“说明书”和“急救手册”对用户而言往往比程序本身更珍贵。调试单上最后一项签完字设备才算真正开始干活而那个所谓的“神经中枢”也才算真正融进了车间的日常。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑