安川机器人与PLC的IO信号交互配置
工业现场中,安川机器人与PLC的协同作业是自动化产线的核心环节。IO信号作为两者之间的"数字语言",直接决定了设备能否精准配合。本文从硬件接线到程序调试,完整梳理配置全流程。
第一阶段:硬件准备与接线规范
1.1 确认硬件接口类型
安川机器人控制柜(以DX200为例)配备多组IO接口,需先明确物理规格:
| 接口位置 | 端子类型 | 信号规格 | 典型用途 |
|---|---|---|---|
| CN308 | 40pin端子台 | 通用IO | 外部启动、模式切换 |
| CN309 | 40pin端子台 | 专用IO | 安全信号、伺服准备 |
| 选配板卡 | 端子排 | 模拟量/高速IO | 焊接电流、编码器反馈 |
PLC侧需匹配电压等级,常见为DC24V。若PLC使用AC220V继电器输出,加装 中间继电器或光电隔离模块,避免烧毁机器人IO板。
1.2 电源与接地处理
断开 控制柜主电源,等待5分钟使电容放电。准备 独立DC24V电源(功率建议≥50W),严禁与机器人内部24V混用,防止接地环路干扰。
接线执行顺序:
- 连接 电源正极至机器人IO端子
+24V - 连接 电源负极至机器人IO端子
0V - 将 电源负极与PLC的
0V短接,建立共地参考 - 单独敷设 屏蔽电缆连接信号线,屏蔽层单端接地(推荐PLC侧)
1.3 信号线对应关系
以标准数字量交互为例,最小系统需配置8入8出:
| 信号方向 | 机器人端子 | 定义 | PLC端子 | 功能说明 |
|---|---|---|---|---|
| 输入→机器人 | CN308-1 | EXSTART |
Q0.0 | 外部启动运行 |
| 输入→机器人 | CN308-2 | EXHOLD |
Q0.1 | 外部暂停 |
| 输入→机器人 | CN308-3 | EXRESET |
Q0.2 | 报警复位 |
| 输入→机器人 | CN308-4 | EXMODE |
Q0.3 | 模式切换(自动/手动) |
| 输出←机器人 | CN308-21 | RUNNING |
I0.0 | 程序运行中 |
| 输出←机器人 | CN308-22 | PAUSED |
I0.1 | 暂停状态 |
| 输出←机器人 | CN308-23 | ERROR |
I0.2 | 报警输出 |
| 输出←机器人 | CN308-24 | CYCLEEND |
I0.3 | 单循环完成 |
注意:安川输入为漏型(NPN),PLC输出需对应为源型(PNP)或加装下拉电阻。具体以实际模块型号为准。
第二阶段:机器人侧参数配置
2.1 进入维护模式
打开 控制柜电源,示教器显示主界面后,旋转 钥匙开关至 TEACH 模式。按下 示教器背面 SERVO ON READY 按钮,输入 安全密码(默认 0000 或咨询集成商)。
点击 屏幕右上角菜单 → 选择 设置 → 进入 设置模式 → 选择 功能组 → 进入 IO。
2.2 通用IO功能分配
安川机器人将物理端子映射为逻辑地址,需逐条绑定:
- 定位 至
外部启动配置项 - 输入 信号编号
20010(对应CN308-1的物理地址) - 确认 极性为
N.O.(常开,高电平有效)
关键信号功能码速查:
| 功能名称 | 逻辑地址 | 有效电平 | 必配性 |
|---|---|---|---|
| 外部启动 | 20010 |
H | 必选 |
| 外部暂停 | 20011 |
H/L可设 | 建议 |
| 外部复位 | 20012 |
H | 建议 |
| 运行模式 | 20014 |
H=自动 | 必选 |
| 伺服准备 | 20020 |
H | 必选 |
重复 上述步骤完成全部输入配置。切换 至输出信号页面,绑定 如下功能:
| 功能名称 | 逻辑地址 | 物理端子 |
|---|---|---|
| 运行中 | 30010 |
CN308-21 |
| 暂停中 | 30011 |
CN308-22 |
| 报警中 | 30012 |
CN308-23 |
| 循环完成 | 30014 |
CN308-24 |
| 伺服准备就绪 | 30020 |
CN308-25 |
2.3 专用IO(安全链)配置
安全信号需通过CN309端子,且部分功能强制固定:
EXEMG(外部急停):固定 地址20026,双回路常闭EXPP(防护栏):固定 地址20027,双回路常闭EXDS1(伺服ON):固定 地址20022
验证 方法:短接对应端子与0V,观察示教器状态栏是否显示 SERVO ON 就绪。
2.4 通信参数保存
返回 至设置模式主界面,选择 文件 → 点击 保存。文件名建议格式:IO_CONFIG_YYYYMMDD,便于版本追溯。重启 控制柜使配置生效。
第三阶段:PLC侧程序编写
3.1 西门子S7-1200/1500示例
创建 新数据块 DB_RobotIO,定义接口变量:
// DB_RobotIO 变量定义
STRUCT
// 输出至机器人 (PLC → 机器人)
CmdStart : Bool; // Q0.0 启动命令
CmdHold : Bool; // Q0.1 暂停命令
CmdReset : Bool; // Q0.2 复位命令
CmdAutoMode : Bool; // Q0.3 自动模式请求
// 输入自机器人 (机器人 → PLC)
StaRunning : Bool; // I0.0 运行反馈
StaPaused : Bool; // I0.1 暂停状态
StaError : Bool; // I0.2 报警状态
StaCycleEnd : Bool; // I0.3 循环完成
StaServoReady : Bool; // I0.4 伺服就绪
END_STRUCT;
主程序 OB1 中编写状态机逻辑:
// 网络1:启动条件组合
#RobotIO.CmdStart := #StartReq AND #RobotIO.StaServoReady
AND NOT #RobotIO.StaRunning
AND NOT #RobotIO.StaError;
// 网络2:报警处理
IF #RobotIO.StaError THEN
#AlarmLamp := TRUE;
#RobotIO.CmdStart := FALSE;
END_IF;
// 网络3:循环完成检测(上升沿触发计数)
#CycleDoneTrig(CLK := #RobotIO.StaCycleEnd);
IF #CycleDoneTrig.Q THEN
#PartCounter := #PartCounter + 1;
END_IF;
3.2 三菱FX5U示例
使用 结构化文本(ST)编写:
// 全局标签定义
VAR_GLOBAL
Robot_Out AT %QX0.0 : ARRAY[0..3] OF BOOL; // 输出数组
Robot_In AT %IX0.0 : ARRAY[0..4] OF BOOL; // 输入数组
StartSeq : BOOL := FALSE;
StepNo : INT := 0;
END_VAR
// 主程序
IF Robot_In[4] AND NOT Robot_In[2] THEN // 伺服就绪且无报警
CASE StepNo OF
0: // 等待启动请求
IF StartReq THEN
Robot_Out[3] := TRUE; // 置自动模式
StepNo := 10;
END_IF;
10: // 延时确认
TON_1(IN := TRUE, PT := T#100ms);
IF TON_1.Q THEN
Robot_Out[0] := TRUE; // 发启动信号
StepNo := 20;
END_IF;
20: // 等待运行反馈
IF Robot_In[0] THEN
Robot_Out[0] := FALSE; // 复位启动
StepNo := 30;
END_IF;
30: // 运行监控
IF Robot_In[3] THEN // 循环完成
StepNo := 0; // 返回初始
END_IF;
END_CASE;
END_IF;
3.3 关键时序控制
机器人响应存在固定延迟,PLC程序需预留余量:
| 操作阶段 | 最小保持时间 | 说明 |
|---|---|---|
| 启动信号 | $\geq 100\,\text{ms}$ | 确保机器人IO扫描捕获 |
| 模式切换 | $\geq 500\,\text{ms}$ | 等待安全控制器确认 |
| 复位信号 | $\geq 200\,\text{ms}$ | 覆盖报警清除周期 |
| 急停触发 | 立即响应 | 硬接线,不依赖程序 |
避免 使用脉冲触发(如PLC扫描周期的窄脉冲),采用 置位-复位或定时宽脉冲。
第四阶段:联合调试与故障排查
4.1 单点测试流程
准备 手持万用表,切换至机器人 TEACH 模式:
- 强制 PLC输出Q0.0为ON,测量 机器人CN308-1端子电压,确认24V存在
- 观察 示教器
输入监控画面,地址20010应显示●(ON状态) - 手动触发 机器人输出(示教器
输出画面强制30010ON),测量 PLC输入I0.0电压 - 记录 实际响应延迟,填入调试表格
4.2 典型故障处理
| 现象 | 排查步骤 | 根因 |
|---|---|---|
| 信号无反应 | 检查 共地连接;测量 端子电压;确认 地址绑定正确 | 接地不良或地址错位 |
| 间歇性误触发 | 检查 屏蔽层接地;加大 滤波时间常数 | 电磁干扰 |
| 模式切换无效 | 确认 安全门关闭;检查 EXDS1 反馈 |
安全链未就绪 |
| 循环完成不检测 | 监控 信号波形;检查 PLC程序沿触发逻辑 | 脉冲过窄未捕获 |
4.3 信号交互验证程序
机器人侧编写测试程序 TEST_IO:
NOP
*LOOP
DOUT OT#(10) OFF // 等待启动
WAIT IN#(10)=ON // 检测到启动
DOUT OT#(10) ON // 反馈运行中
TIMER T=1.00 // 模拟作业1秒
DOUT OT#(10) OFF
DOUT OT#(12) ON // 发送完成脉冲
TIMER T=0.50
DOUT OT#(12) OFF
JUMP *LOOP
PLC侧配合监控上述信号的时序关系,确认上升沿/下降沿对齐。
第五阶段:高级配置与优化
5.1 模拟量信号扩展
焊接应用需配置模拟量交互:
| 信号类型 | 机器人端子 | PLC模块 | 量程设置 |
|---|---|---|---|
| 焊接电流给定 | 模拟输出1 | 输入模块 | $0\text{–}10\text{V} \leftrightarrow 0\text{–}500\text{A}$ |
| 实际电流反馈 | 模拟输入1 | 输出模块 | $4\text{–}20\text{mA} \leftrightarrow 0\text{–}500\text{A}$ |
注意:安川模拟量默认 $0\text{–}10\text{V}$,若PLC使用 $4\text{–}20\text{mA}$,加装 250Ω精密电阻转换,或选配电流型IO板。
5.2 网络通信替代方案
当IO点超过64点或需传输位置数据时,启用 以太网通信:
| 协议 | 适用场景 | 波特率 | 配置要点 |
|---|---|---|---|
| Ethernet/IP | AB/欧姆龙PLC | 100Mbps | 扫描器/适配器角色设置 |
| PROFINET | 西门子PLC | 100Mbps | GSD文件导入,设备名匹配 |
| Modbus TCP | 通用场景 | 100Mbps | 功能码03/16,寄存器映射 |
网络通信不替代安全IO,急停、模式等关键信号保留 硬接线。
5.3 文档归档规范
调试完成后整理 以下资料:
- 端子接线图(含线号、颜色、截面积)
- IO地址对照表(机器人逻辑地址↔PLC地址)
- 信号时序图(关键交互波形截图)
- 备份文件(机器人
CMOS.BIN、PLC程序)
文件命名:项目代号_设备位号_日期_版本号,存储于服务器与本地双备份。
附录:快速配置检查清单
接线前
- [ ] 电源电压测量(24V±10%)
- [ ] 万用表验证端子通断
- [ ] 屏蔽层接地方式确认
参数配置
- [ ] 逻辑地址与物理端子核对
- [ ] 极性设置(常开/常闭)
- [ ] 功能码与手册对照
调试验证
- [ ] 单点强制ON/OFF测试
- [ ] 完整流程空运转
- [ ] 急停回路功能测试
- [ ] 掉电重启后状态保持

暂无评论,快来抢沙发吧!