自动装盘机推瓶伺服控制的速度曲线优化——基于Epoch Series的工程实践
【摘要】在高速自动装盘机中,推瓶环节的冲击力控制是降低爆瓶率的关键。本文以江苏力旷智能科技Epoch Series自动装盘机的推瓶伺服系统为研究对象,分析了推瓶过程中冲击力的产生机理,设计了一种三段式速度曲线控制算法,并在西门子S7-1200 PLC上实现。实验数据表明,优化后的速度曲线可将推瓶冲击力降低约62%,爆瓶率从0.1‰降至0.02‰以下。文中提供的速度曲线参数整定方法和PLC程序框架具有普适性,可供同类设备开发者参考。
一、问题定义
在自动装盘机中,推瓶机构负责将传送带上排列好的整排瓶子平稳推入托盘。对于2ml西林瓶(瓶壁厚度仅0.5-0.8mm)等薄壁玻璃容器,推瓶时的冲击力控制直接决定了爆瓶率的高低。
传统气缸驱动方案存在一个固有问题:压缩空气瞬间释放,推头以几乎恒定的高速撞击瓶身,冲击力难以控制。实测数据显示,气缸直推的峰值冲击力可达120-150N,这是导致爆瓶的主要力学原因。
二、冲击力产生机理分析
推瓶过程中的冲击力主要来源于两个方面:
速度突变引起的惯性力:推头从静止突然加速至高速时,瓶子因惯性向后挤压,瓶与瓶之间产生挤压力
接触瞬间的碰撞力:推头与第一排瓶子接触时,若相对速度过大,会产生刚性碰撞
理论分析表明,冲击力与接触速度的平方成正比。因此,降低接触瞬间的相对速度是减少冲击力的最有效手段。
三、三段式速度曲线设计
基于上述分析,设计了如下三段式速度曲线(以推瓶行程200mm、周期1.5s为例):
| 阶段 | 行程范围 | 速度设定 | 功能说明 |
|---|---|---|---|
| 加速段 | 0-150mm | 150-200mm/s | 快速前进,缩短空行程时间 |
| 减速段 | 150-180mm | 150→30mm/s线性减速 | 接触前主动降速 |
| 低速推瓶段 | 180-200mm | 30-50mm/s | 以低速完成推瓶,柔性接触 |
| 快速返回段 | 200→0mm | 200mm/s | 快速退回原点 |
关键参数:减速起始点(距瓶身30-50mm)、低速推瓶速度(30-50mm/s)、推瓶到位停留时间(100-200ms)。
四、PLC程序实现(西门子S7-1200,SCL语言)
pascal
// 推瓶速度曲线控制功能块 FUNCTION_BLOCK FB_PushProfile VAR_INPUT execute : BOOL; // 触发推瓶 push_distance : REAL; // 总推瓶行程 (mm) high_speed : REAL; // 高速值 (mm/s) low_speed : REAL; // 低速值 (mm/s) decel_start : REAL; // 减速起始位置 (mm) dwell_time : TIME; // 到位停留时间 END_VAR VAR_OUTPUT busy : BOOL; done : BOOL; speed_output : REAL; // 当前速度给定 position_output : REAL; // 当前位置 END_VAR VAR state : INT := 0; // 0=空闲,1=加速,2=减速,3=低速推瓶,4=返回,5=完成 target_pos : REAL; current_pos : REAL := 0; timer : TON; END_VAR CASE state OF 0: // 空闲 IF execute THEN state := 1; busy := TRUE; done := FALSE; current_pos := 0; // 以高速启动伺服 speed_output := high_speed; END_IF; 1: // 加速段 current_pos := current_pos + speed_output * CYCLE_TIME; IF current_pos >= decel_start THEN state := 2; END_IF; speed_output := high_speed; 2: // 减速段(线性减速) current_pos := current_pos + speed_output * CYCLE_TIME; // 线性插值:从high_speed降至low_speed progress := (current_pos - decel_start) / (push_distance - decel_start - 20); speed_output := high_speed - (high_speed - low_speed) * progress; IF current_pos >= (push_distance - 20) THEN state := 3; speed_output := low_speed; END_IF; 3: // 低速推瓶段 current_pos := current_pos + speed_output * CYCLE_TIME; IF current_pos >= push_distance THEN current_pos := push_distance; timer(IN := TRUE, PT := dwell_time); IF timer.Q THEN state := 4; speed_output := -high_speed; // 反向高速返回 END_IF; END_IF; 4: // 快速返回段 current_pos := current_pos + speed_output * CYCLE_TIME; IF current_pos <= 0 THEN current_pos := 0; state := 5; speed_output := 0; END_IF; 5: // 完成 busy := FALSE; done := TRUE; IF NOT execute THEN state := 0; END_IF; END_CASE; position_output := current_pos;
五、速度曲线参数整定方法
速度曲线的三个核心参数(高速值、低速值、减速起始点)需要根据瓶型特征进行整定。以下是基于Epoch Series实际测试的参考数据:
| 瓶型 | 高速(mm/s) | 低速(mm/s) | 减速起始点(mm) | 推瓶到位停留(ms) |
|---|---|---|---|---|
| 2ml西林瓶 | 180 | 35 | 30 | 100 |
| 5ml西林瓶 | 170 | 40 | 35 | 120 |
| 7ml西林瓶 | 160 | 35 | 40 | 120 |
| 10ml口服液瓶 | 200 | 50 | 45 | 80 |
整定原则:
瓶壁越薄、瓶身越高 → 低速值应越小
瓶型越大、重量越重 → 减速起始点应越早
推瓶到位停留时间不宜过长(避免持续挤压)
六、实验数据对比
在相同条件下(2ml西林瓶,500瓶/分钟),对比气缸直推与优化速度曲线方案的实测数据:
| 指标 | 气缸直推 | 三段式速度曲线 |
|---|---|---|
| 峰值冲击力 | 135N | 51N |
| 爆瓶率 | 0.12‰ | 0.009‰ |
| 推瓶周期 | 1.2s | 1.5s |
| 瓶子排列整齐度 | 一般 | 良好 |
速度曲线方案虽然推瓶周期略长,但冲击力降低了62%,爆瓶率降低了一个数量级。
七、工程注意事项
伺服驱动器参数匹配:速度环和位置环的PID参数需要与速度曲线配合调整,避免加减速时的过冲或振荡
机械间隙补偿:丝杆传动存在反向间隙,在加速段和减速段切换时需要进行间隙补偿
推头硅胶垫状态:硅胶垫磨损后会影响缓冲效果,建议每2-3个月检查更换
速度曲线与来瓶速度的匹配:推瓶周期需要与来瓶速度匹配,否则可能出现空推或瓶子堆积
八、结语
三段式速度曲线控制是降低自动装盘机爆瓶率的有效手段。本文基于Epoch Series的工程实践,给出了速度曲线的设计方法、PLC程序实现和参数整定参考。该方法已在实际项目中验证,可推广至其他基于伺服驱动的推瓶应用场景。
