No.891 基于S7-200 PLC和MCGS组态的灌装生产线灌装生产线这玩意儿在饮料厂、调味品车间里随处可见今天咱们来唠唠用西门子S7-200 PLC和MCGS组态搞自动化灌装的骚操作。别看现在都流行1200/1500这些新PLC老款S7-200在中小型产线里还是能打的特别是配上国产MCGS触摸屏性价比直接拉满。先说PLC这边的核心逻辑——灌装量控制。这可不是简单的定时灌装得考虑不同瓶型切换。来看这段梯形图NETWORK 1 LD M0.0 //启动信号 TON T37, 200 //200ms定时器 CTU C0, VW100 //使用计数器记录脉冲 NETWORK 2 LD T37 Q0.0 //触发电磁阀 R T37, 1 //复位定时器这段代码暗藏玄机。T37定时器每200ms触发一次Q0.0电磁阀同时用C0计数器累加次数。重点在VW100这个寄存器——它存放的是触摸屏下发的设定值。当C0当前值等于VW100时说明灌装量达标立马切断阀门。这种设计妙在不用改程序就能换规格车间大妈在触摸屏输个数字就能切产品。No.891 基于S7-200 PLC和MCGS组态的灌装生产线转到MCGS这边画面组态才是灵魂所在。搞个动态液位显示代码如下Sub UpdateLevel() Dim level As Integer level ReadPLC(VW200) //读取液位传感器数据 If level 90 Then Shape1.FillColor vbRed Else Shape1.FillColor vbGreen End If Label1.Caption 当前液位 level % End Sub这脚本每500ms执行一次关键在颜色预警机制。当液位超过90%变红色这比单纯数字报警直观多了。实战中遇到过电磁阀卡死导致液位暴涨就是靠这个颜色变化及时发现的。再说个通信坑点。S7-200的PPI协议有时候会抽风得在MCGS的设备窗口里加个心跳检测void CheckComm() { static int errCount 0; if(!PLC.IsConnected()){ errCount; if(errCount 3){ Alarm(101);//触发通讯中断报警 AutoReconnect();//自动重连 } }else{ errCount0; } }这招专治各种突然断线。特别是车间有电焊机作业时干扰导致通信闪断自动重连功能救了老命。注意errCount要设成静态变量不然每次进函数都被清零就白给了。最后来个实战技巧灌装精度校准。在MCGS里做标定界面用滑动条关联PLC的脉冲当量参数