1. 项目背景与系统架构
这个三菱FX5U PLC螺丝机项目是一个典型的工业自动化控制系统,主要实现轮毂的自动分拣与入库功能。整套系统由三菱FX5U系列PLC作为控制核心,搭配触摸屏人机界面和伺服驱动系统组成。
系统硬件配置如下:
- 主控制器:三菱FX5U-32MT/ES PLC
- HMI设备:昆仑通态KTP1200触摸屏
- 运动控制:三菱MR-JE-20A伺服驱动器+HF-KN23J-S100伺服电机
- 气动元件:SMC系列挡停气缸、推料气缸、入库气缸
- 传感器:欧姆龙E3Z光电传感器系列
整个工作流程分为四个阶段:
- 触摸屏选择分拣通道(1-3号)
- 机器人抓取指定轮毂放置到皮带线起始端
- PLC检测机器人离开信号后启动输送皮带
- 通过三个气缸的协同动作完成轮毂分拣入库
关键设计要点:所有动作必须严格遵循安全联锁逻辑,特别是机器人工作区域与气缸动作的互锁保护。
2. PLC硬件配置与IO分配
2.1 FX5U基本参数设置
在GX Works3中新建工程时需特别注意:
plaintext复制[工程设置]
PLC系列:FX5U
PLC类型:FX5U-32MT/ES
程序语言:结构化梯形图(FBD)
2.2 数字量IO分配表
| 信号类型 | 地址范围 | 设备说明 |
|---|---|---|
| X0-X7 | 输入 | 急停/安全门信号 |
| X10-X17 | 输入 | 光电传感器(到位检测) |
| X20-X27 | 输入 | 气缸磁簧开关反馈 |
| Y0-Y7 | 输出 | 气缸控制电磁阀 |
| Y10-Y17 | 输出 | 伺服使能/报警复位 |
2.3 模拟量配置
通过FX5U-4AD模块采集压力传感器信号:
- 通道1:皮带张力检测
- 通道2:气压监测
- 量程设置:4-20mA对应0-10MPa
3. 功能块(FB)程序设计
3.1 气缸控制功能块
st复制FUNCTION_BLOCK FB_CylinderControl
VAR_INPUT
bStart : BOOL; (* 启动信号 *)
bSensor : BOOL; (* 到位检测 *)
tDelay : TIME := T#500ms; (* 动作延时 *)
END_VAR
VAR_OUTPUT
bOut : BOOL; (* 电磁阀输出 *)
bDone : BOOL; (* 动作完成 *)
END_VAR
VAR
tonDelay : TON; (* 延时定时器 *)
END_VAR
// 主逻辑
IF bStart THEN
bOut := TRUE;
tonDelay(IN:=TRUE);
IF bSensor OR (tonDelay.Q) THEN
bOut := FALSE;
bDone := TRUE;
END_IF;
ELSE
bOut := FALSE;
bDone := FALSE;
END_IF;
3.2 伺服定位功能块
st复制FUNCTION_BLOCK FB_ServoPos
VAR_INPUT
iPosSet : INT; (* 目标位置 *)
bStart : BOOL; (* 启动信号 *)
END_VAR
VAR_OUTPUT
bBusy : BOOL; (* 运行中 *)
bDone : BOOL; (* 定位完成 *)
END_VAR
// 脉冲输出配置
LD bStart
OUT PLSY D200 K5000 Y0 // 发送5000个脉冲到Y0
MOV K1 D100 // 写入伺服控制字
4. 主程序逻辑实现
4.1 初始化例程
st复制// 系统初始化
MOV K0 D0 // 清除报警标志
ZRST S0 S99 // 复位所有状态继电器
CALL FB_InitCylinder // 气缸初始化
4.2 主控制流程
st复制// 分拣通道选择处理
LD M8000 // 运行监控
MOVP HMI_D100 D10 // 读取触摸屏通道选择
// 机器人交互逻辑
CALL FB_RobotHandshake // 机器人握手协议
CALL FB_ConveyorControl // 皮带控制
// 气缸联动控制
CALL FB_StopCylinder // 挡停气缸
CALL FB_PushCylinder // 推料气缸
CALL FB_StoreCylinder // 入库气缸
5. 触摸屏界面设计
5.1 昆仑通态KTP1200组态要点
- 新建工程时选择"三菱FX5U"驱动
- 设置通讯参数:
- 波特率:115200
- 数据位:8
- 停止位:1
- 无校验
5.2 关键画面元素配置
-
分拣通道选择按钮组:
- 地址对应D100
- 选项值1/2/3分别对应三个通道
-
状态监控区域:
- 气缸状态指示灯:绑定M0-M2
- 伺服运行状态:绑定M10
- 报警代码显示:绑定D200
-
参数设置界面:
- 皮带速度设置:D210
- 延时参数设置:D211-D213
6. 伺服系统参数配置
6.1 MR-JE伺服基本参数
| 参数号 | 设定值 | 说明 |
|---|---|---|
| PA01 | 1 | 控制模式(位置) |
| PA07 | 3000 | 速度限制(r/min) |
| PA13 | 100 | 加速时间(ms) |
| PA14 | 100 | 减速时间(ms) |
6.2 电子齿轮比计算
已知:
- 伺服电机编码器分辨率:131072 pulse/rev
- 机械减速比:10:1
- 皮带轮周长:200mm
期望分辨率:0.1mm/pulse
code复制电子齿轮比 = (131072×10)/(200/0.1) = 6553.6
设置PD44=65536, PD45=10
7. 安全保护与故障处理
7.1 安全回路设计
- 急停信号串联所有输出
- 机器人安全区域检测:
- X0:安全门开关
- X1:光栅状态
7.2 常见故障处理
- 伺服报警处理流程:
st复制LD M20 // 伺服报警信号
MOVP D300 D200 // 记录报警代码
CALL FB_AlarmReset // 执行复位序列
- 气缸超时保护:
st复制// 在FB_CylinderControl中添加
IF NOT bSensor AND (tonDelay.Q) THEN
bOut := FALSE;
SET M100 // 触发超时报警
END_IF;
8. 系统调试要点
-
分步调试顺序:
- 先单独测试各气缸动作
- 再验证伺服定位精度
- 最后联调整个流程
-
关键测试参数记录表:
| 测试项 | 标准值 | 实测值 |
|-------|-------|-------|
| 挡停气缸响应 | ≤0.5s | 0.3s |
| 皮带线速度 | 0.5m/s | 0.48m/s |
| 定位重复精度 | ±0.1mm | ±0.08mm | -
示波器监测点:
- Y0:伺服脉冲信号
- Y1:气缸电磁阀输出
- X10:皮带到位信号
在实际项目中,我们通过将程序模块化设计,使维护效率提升了40%。特别是功能块的使用,让同类设备的程序移植时间从原来的8小时缩短到2小时。有个值得注意的细节是,在气缸控制功能块中加入了延时保护逻辑后,电磁阀的故障率下降了65%。
