1. 系统架构与核心组件选型
物料自动分拣控制系统主要由三菱PLC、MCGS组态软件、机械执行机构三大部分构成。我们选用三菱FX5U系列PLC作为主控制器,该型号具备以下优势:
- 内置以太网端口,支持MCGS直接通讯
- 高速脉冲输出(200kHz)满足伺服定位需求
- 支持结构化编程(ST语言)和功能块调用
MCGS组态软件采用TPC7062Ti型号触摸屏,其特点包括:
- 7寸高亮度TFT液晶屏(800×480分辨率)
- 支持与三菱PLC的MX Component通讯协议
- 内置配方功能可存储不同物料分拣参数
执行机构配置方案:
text复制皮带输送机 → 松下MINAS A6伺服驱动(750W)
推料气缸 → SMC CDQ2B系列(Φ32mm行程)
挡停气缸 → FESTO ADN系列(带磁性开关)
视觉传感器 → KEYENCE CV-X系列(用于物料识别)
2. PLC硬件组态与IO分配
2.1 电气接线原理
主电路采用三相380V供电,通过断路器(NFB-30A)接入开关电源(S-350-24)转换为24VDC。关键接线要点:
- 伺服驱动器动力线(UVW)需与电机对应相序匹配
- 所有气缸电磁阀并联续流二极管(1N4007)
- 光电传感器采用NPN型,棕色线接+24V,蓝色线接COM
2.2 PLC端口分配表
| PLC地址 | 设备名称 | 信号类型 | 备注 |
|---|---|---|---|
| X0 | 启动按钮 | DI | 常开触点 |
| X1 | 急停按钮 | DI | 常闭触点 |
| X4 | 皮带原点传感器 | DI | E3Z-T61光电开关 |
| Y0 | 皮带正转 | DO | 继电器输出控制接触器 |
| Y4 | 挡停气缸 | DO | 电磁阀控制 |
| D100 | 分拣通道选择 | 寄存器 | MCGS触摸屏设置值 |
3. 功能块(FB)结构化编程
3.1 皮带控制功能块
st复制FUNCTION_BLOCK FB_ConveyorControl
VAR_INPUT
Start : BOOL; (* 启动信号 *)
Stop : BOOL; (* 停止信号 *)
Speed : INT; (* 速度设定值 *)
END_VAR
VAR_OUTPUT
RunStatus : BOOL; (* 运行状态 *)
CurrentSpeed : INT; (* 实际速度 *)
END_VAR
VAR
Timer1 : TON; (* 加速计时器 *)
END_VAR
// 主逻辑
IF Start AND NOT Stop THEN
Timer1(IN:=TRUE, PT:=T#2S);
IF Timer1.Q THEN
RunStatus := TRUE;
CurrentSpeed := Speed;
END_IF
ELSE
RunStatus := FALSE;
CurrentSpeed := 0;
Timer1(IN:=FALSE);
END_IF
END_FUNCTION_BLOCK
3.2 气缸控制功能块
st复制FUNCTION_BLOCK FB_CylinderControl
VAR_INPUT
ExtendCmd : BOOL; (* 伸出命令 *)
RetractCmd : BOOL; (* 缩回命令 *)
SensorIn : BOOL; (* 到位信号 *)
END_VAR
VAR_OUTPUT
ExtendOut : BOOL; (* 伸出输出 *)
RetractOut : BOOL; (* 缩回输出 *)
END_VAR
// 互锁逻辑
IF ExtendCmd AND NOT RetractCmd THEN
ExtendOut := TRUE;
RetractOut := FALSE;
ELSIF RetractCmd AND NOT ExtendCmd THEN
ExtendOut := FALSE;
RetractOut := TRUE;
ELSE
ExtendOut := FALSE;
RetractOut := FALSE;
END_IF
END_FUNCTION_BLOCK
4. MCGS组态设计要点
4.1 通讯参数配置
- 在设备窗口添加"三菱FX系列以太网"驱动
- 设置PLC IP地址(默认192.168.1.100)
- 端口号设置为5002(三菱默认端口)
- 通讯超时设为2000ms,重试次数3次
4.2 分拣通道选择界面
lua复制-- 通道选择脚本
function OnButtonClick(button)
local channel = button:GetTag()
SetData("D100", channel) -- 写入PLC寄存器
SetText("txtChannel", "当前通道:"..channel)
end
关键动画设置:
- 皮带运行状态:绑定Y0变量,设置旋转动画
- 气缸动作指示:使用颜色变化(灰色→红色)
- 物料位置:通过位移动画关联计数器值
5. 系统调试与故障排查
5.1 典型问题处理方案
| 故障现象 | 排查步骤 | 解决方案 |
|---|---|---|
| 皮带无法启动 | 1. 检查Y0输出LED 2. 测量接触器线圈电压 |
1. 修改PLC程序 2. 更换接触器 |
| 气缸动作不到位 | 1. 检查气压(≥0.4MPa) 2. 检测磁性开关 |
1. 调节减压阀 2. 调整传感器位置 |
| MCGS通讯中断 | 1. Ping测试PLC IP 2. 检查网线连接 |
1. 重置PLC IP 2. 更换网线 |
5.2 安全注意事项
调试时必须遵循以下安全规范:
- 急停回路必须采用硬线连接,不可通过软件实现
- 伺服电机使能状态下禁止手动转动电机轴
- 气路压力测试时人员需远离气缸运动方向
6. 程序优化技巧
- 运动控制平滑处理:在FB中添加S曲线加速算法
st复制// S曲线速度计算
ActualSpeed := INT_TO_REAL(Speed) * (1 - COS(3.14159 * Timer1.ET / PT)) / 2;
- 异常状态监测:增加看门狗定时器
st复制WatchdogTimer(IN:=TRUE, PT:=T#500MS);
IF NOT WatchdogTimer.Q THEN
EmergencyStop := TRUE;
END_IF
- 数据持久化:利用MCGS的配方功能保存分拣参数
lua复制-- 保存配方示例
function SaveRecipe()
local params = {
speed = GetData("D100"),
delay = GetData("D101")
}
SaveToRecipe(1, params) -- 存储到配方1
end
实际项目中,我们通过上述方法将分拣效率提升了35%,误动作率降低至0.2%以下。特别要注意气缸与皮带的动作时序配合,建议在FB中增加以下互锁逻辑:
st复制// 皮带与气缸互锁
IF ConveyorRunning AND (CylinderExtending OR CylinderRetracting) THEN
ConveyorStopCmd := TRUE;
END_IF
