CC-link 是循环周期通讯,主站(三菱 PLC)掌管总线时序;机器人从站只被动按周期收发固定映射好的位 (RY/RX)、字 (RWw/RWr),没有主动发起读写的权限,所有交换都是主站轮询、周期刷新。
记住方向(非常容易搞反)
RY:主站 → 从站(PLC 发给机器人,位信号)
RWw:主站 → 从站(PLC 发给机器人,16 位字)
RX:从站 → 主站(机器人发给 PLC,位信号)
RWr:从站 → 主站(机器人发给 PLC,16 位字)三菱電機 ...
你的 IRB6700 IRC5+DSQC378B:DSQC378 本质是 CC-link ↔ DeviceNet 网关;机器人内部看到的是 DeviceNet 的 Group Input / Group Output,网关自动和 CC-link 的 RY/RX、RWw/RWr 一一对应转发。
一、数据交换完整流向
PLC 主站侧(GX Works2)网络参数里添加远程设备站,设置站号、波特率、占用站数(1 站 = 32bit RY+32bit RX + 最多 4 字 RWw+4 字 RWr)。 PLC 软元件自动链接:
RY 映射到 PLC 的 Y 点:Yxxx → RY → 机器人 DI/GI
RX 映射到 PLC 的 X 点:机器人 DO/GO → RX → Xxxx
RWw 映射到 PLC 的 W(或 D):Dxxx → RWw → 机器人 Group Input 字
RWr 映射到 PLC 的 W(或 D):机器人 Group Output 字 → RWr → Dxxx
DSQC378 网关转发(透明)网关收到 CC-link 的 RY/RWw,转成 DeviceNet 输入给机器人;机器人输出的 GO,网关打包成 RX/RWr 上 CC-link 总线。 机器人RAPID 程序不能直接读写 RY/RX/RWw/RWr,只能读写 ABB 这边映射好的 Signal(DI/DO / GI/GO)。
机器人 IRC5 / RobotStudio I/O 映射
DSQC378B 限制:单站最大 32bit GI、32bit GO,最多 4 个输入字、4 个输出字;如果点数不够,就设置占用 2/4 站。
GI(Group Input):对应 PLC 下发 RY+RWw(启动信号、程序号、目标位置、模式指令、复位)
GO(Group Output):对应 上传给 PLC RX+RWr(就绪、运行、故障位、故障码、当前位置、完成标记)
示例信号分配
表格
| CC-link | 方向 | ABB 信号 | 用途 |
|---|---|---|---|
| RY0 | PLC→机器人 | diStart | 启动 |
| RY1 | PLC→机器人 | diReset | 故障复位 |
| RY2~RY7 | PLC→机器人 | giProgNo(6bit) | 程序编号 |
| RWw0 | PLC→机器人 | giPosX | X 坐标(缩放后) |
| RWr0 | 机器人→PLC | goFaultCode | 故障代码 |
| RX0 | 机器人→PLC | doReady | 机器人就绪 |
| RX1 | 机器人→PLC | doComplete | 动作完成 |
| RX2 | 机器人→PLC | doFault | 故障报警 |
RAPID 里怎么读写交换数据RAPID 只操作本地 Signal,底层总线刷新由控制器 + 网关自动周期完成:
MODULE MainModule
! 等待PLC下发启动信号
PROC RunRobot()
IF diStart AND doReady THEN
MoveJ pTarget, v1000, fine, tool0;
Set doComplete; ! 完成位上传PLC
goFaultCode := 0;
ENDIF
IF diReset THEN
Reset doFault;
goFaultCode := 0;
ENDIF
! 检测机器人故障,上传故障码
IF ERR_NUM <> 0 THEN
Set doFault;
goFaultCode := ERR_NUM;
ENDIF
ENDPROC
ENDMODULE
总线是周期刷新,RAPID 读取 GI 不是实时读总线,读的是控制器 I/O 缓存;输出 GO 也是写到缓存,在下一个总线周期发给 PLC。
二、OmniCore 版本 IRB6700(3066-2 CC-link IE Field Basic 从站)
这个方案没有网关,原生 CC-link IE 以太网:
RobotStudio I/O Engineering 导入 ABB 的 CSP + 描述文件;
在 I/O 系统添加 CC-link IE Slave,定义输入块(PLC→机器人)、输出块(机器人→PLC);
同样映射成 ABB Signal(DI/DO/GA);
GX Works3 导入同一份 CSP+,主站组态,分配 RX/RY/RWw/RWr;
数据方向规则和上面完全一致,只是载体变成以太网 UDP 循环报文,带宽更大(最大 288 字节入、288 字节出)。
三、通讯握手逻辑
CC-link 只是传输通道,必须做握手应答,防止信号丢包、重复触发:
PLC 下发 diStart=ON
机器人收到后,判断就绪,执行动作,置 doBusy=ON(回传给 PLC)
动作跑完,机器人置 doComplete=ON,doBusy=OFF
PLC 收到 doComplete 后,复位 diStart=OFF
机器人检测到 diStart OFF,复位 doComplete,一轮交互结束
故障:机器人检测异常 → doFault=ON + RWr 上传故障码;PLC 收到故障后,下发 diReset 复位。
四、常见坑
方向搞反:很多人把 RWr/RWw 写反,PLC 读不到机器人数据;记住:RWr = Robot Write to Master(机器人发给主站);RWw = Master Write to Robot(主站写给机器人)
DSQC378B 拨码站号、波特率,必须和 GX Works 里主站配置完全一致
字数据是 16 位,浮点数要拆成高低两个字,PLC 和机器人约定缩放比例
不要用瞬时通讯(报文)做机器人实时控制;机器人做从站只适合循环周期性 I/O + 寄存器交换,瞬时读写一般不用
五、排错顺序
看 DSQC378B 的 link 灯:常亮 = 总线正常;闪烁 / 熄灭 = 总线、站号、波特率不匹配
RobotStudio 在线看 GI/DI 有没有跟随 PLC 变化 → 判断下行
PLC 监控 X、D 寄存器,看 RX、RWr 是否跟随 GO 变化 → 判断上行
握手时序、互锁在 PLC 和 RAPID 两边都要写,不要只靠总线信号。


