No.945 三菱PLC和触摸屏基于气压传动的焊条包装线的研发

最近在搞焊条包装自动化项目时发现,传统产线存在效率低、气缸动作不同步的问题。老产线的继电器控制柜里电线盘得像蜘蛛网,维护时师傅得拿着图纸翻半天。咱们团队用三菱FX5U PLC+GS2107触摸屏搞了套气动控制系统,实测包装速度提升了40%,今天就把开发过程中的干货掏出来聊聊。

硬件架构其实特简单——PLC作大脑,电磁阀当手脚,压力传感器做触角。重点是把三菱的CC-Link网络玩明白了:1个主站带8个从站,每个从站控制2组气缸。这里有个坑要注意,气缸动作时序得避开网络通讯周期,我们当时用下面这段指令搞定了冲突检测:

// 气缸动作互锁程序
IF (GX_Config.NetworkStatus = 1) THEN 
    FOR i:=0 TO 7 DO
        IF (Station[i].TxD_Ptr > Station[i].RxD_Ptr + 5) THEN
            AxisLock[i] := TRUE;
            HMI_Alarm_Set(i+10);
        ELSE
            AxisLock[i] := FALSE; 
        END_IF
    END_FOR
END_IF

这段代码实时监控各从站收发指针差值,超过5个数据包就触发轴锁定。调试时发现网络负载超过70%就会误报,后来把通讯周期从2ms改成5ms才稳定。三菱的这个指针监测功能确实好用,比西门子的Profinet诊断直观多了。

触摸屏界面设计有个小心得:把气动原理图动态化显示。用GT Designer3画的界面里,气缸伸缩动画不是靠PLC发状态,而是直接读取电磁阀输出点。比如Y10对应推料缸前进,在HMI元件属性里绑个Bit Lamp,再套个移动动画效果,这样维护时一眼就能看出是程序问题还是机械故障。

No.945 三菱PLC和触摸屏基于气压传动的焊条包装线的研发

说到核心控制算法,包装线最要命的是多气缸协同。我们独创了"气压-时间双闭环"控制,先用PID稳定气路压力,再通过时间窗校正动作时序。看这段压力控制程序:

// 气路压力PID控制
P_Press := Pressure_SP - Pressure_PV;
I_Press := I_Press + (P_Press * T#100MS);
D_Press := (P_Press - Press_Last) / T#100MS;
Output_Val := Kp*P_Press + Ki*I_Press + Kd*D_Press;

IF Output_Val > 100.0 THEN
    Output_Val := 100.0;
ELSIF Output_Val < 0.0 THEN
    Output_Val := 0.0;
END_IF

Analog_Write(通道1, Output_Val);
Press_Last := P_Press;

调试时发现积分项容易饱和,后来加了抗饱和逻辑才搞定。现场实测这套算法能把气压波动控制在±0.02MPa内,比传统开关阀控制精细得多。

设备联调阶段遇到个奇葩问题——电磁阀偶尔抽风。后来发现是PLC输出端子和阀组共地引起的干扰,用隔离继电器+磁环搞定。这里教大家个绝招:用三菱的GX Works2在线修改功能,边运行边改下面这段IO测试代码,快速定位故障点:

// IO快速测试程序
FOR i:=0 TO 15 DO
    Y0[i] := M8000;  // 特殊继电器常ON
    TON(Timer1, T#1S);
    IF Timer1.Q THEN
        Y0[i] := 0;
        i := i+1;
    END_IF
END_FOR

这套系统落地后,操作工老王说现在换规格不用改机械结构了,触摸屏上切个配方就行。最爽的是故障追溯功能,HMI能显示过去24小时所有气缸动作曲线,哪个环节卡壳一目了然。所以说工控项目不一定要堆砌高端技术,把基础功能做到极致反而更实用。

下次准备试试把视觉检测整合进来,到时候再跟大伙分享怎么用三菱的SLMP协议搞PLC-Python通信。有同行想交流气路设计的可以留言,我这还存着当时画的Festo气缸选型对比表呢。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐