No.1160 基于S7-200 PLC和MCGS组态的运料小车控制系统 带解释的梯形图程序接线图原理图图纸io分配组态画面最近厂里老张总跟我抱怨车间运料小车乱跑动不动就卡在半道上。趁周末我带着工具箱和一台老掉牙的S7-200 PLC摸进车间打算给这铁疙瘩整整神经中枢。### 一、给小车装眼睛和手脚先扒开控制柜24V电源线耷拉着几个继电器触点都烧黑了。重新规划I/O口时发现急停按钮居然接在输出端赶紧掏出记号笔在端子排标注python# 输入清单拿记号笔写在柜门上急停按钮 - I0.0常闭急停时断电启动按钮 - I0.1左限位 - I0.2右限位 - I0.3光电传感器 - I0.4# 输出清单继电器输出模块亮着绿灯正转接触器 - Q0.0反转接触器 - Q0.1报警指示灯 - Q0.2接完线做点动测试发现左限位开关被油污糊住了拿酒精棉擦了三遍才亮灯。这时候老张端着保温杯晃过来这红绿灯闪得跟舞厅似的能行吗### 二、梯形图里的交通管制打开STEP7准备写逻辑突然想起去年隔壁车间电机烧毁的事故。在OB1主程序里先给正反转线圈加了个互锁ladderNetwork1: 急停保护| I0.0 |-------[ ]--------(M0.0) //急停触发时M0.0断电| M0.0 |No.1160 基于S7-200 PLC和MCGS组态的运料小车控制系统 带解释的梯形图程序接线图原理图图纸io分配组态画面Network2: 自动往返| I0.1 | I0.2 | M0.0 |-------[ ]--------(Q0.0) //右行启动| Q0.0 | || I0.3 |-------|/|----------|| I0.3 | M0.0 |-------[ ]--------(Q0.1) //左行启动| Q0.1 | || I0.2 |-------|/|----------|这里用Q0.0和Q0.1做互锁就像给电机上了双保险避免同时通电。测试时故意同时触发两个接触器PLC立马切断输出安全继电器啪啪响了两声。### 三、MCGS上的虚拟驾驶员到中控室打开MCGS组态老张指着满是灰尘的工控机说这玩意三年没动过了。新建工程时发现通讯协议选成了Modbus赶紧换成PPI协议。在用户窗口拖了个小车动画绑定VW10寄存器控制位置cpp//小车移动脚本if (GetData(Q0.0,S7-200)){SetPosition(Left, 10); //右移时画面左移}else if (GetData(Q0.1,S7-200)){SetPosition(Right, 10);}突然监控画面上的小车开始鬼畜抖动检查发现寄存器地址填成了VW100。改回VW10后蓝色小车终于丝滑地在两个料仓间跑起来老张的保温杯差点掉地上。调试完发现I0.4光电传感器偶尔漏检拆开发现对射式传感器的发射端镜面结露。裹上防潮胶布后现在每趟运输完成时Q0.2指示灯会闪三次——这是我在报警程序里偷偷加的摩尔斯码彩蛋。