安川主流对接方式:Socket TCP(MotoPlus)、ModbusTCP、Profinet(YRCP-MP4P 板卡),优先按【物理→网络→连通性→协议 / 格式→握手逻辑→版本冲突】顺序排查,和库卡最大差异是:安川 Socket 依赖 MotoPlus,单控制器一般只能跑 1 个 MotoPlus 后台程序,多 MotoPlus 会直接抢 Socket 资源
先区分现象:完全连不上 / 能连上但偶尔丢包断连 / 能收到数据但坐标乱、姿态翻转 / 能触发拍照但是不返回结果
一、物理层
网线:必须工业千兆屏蔽网线,Eye-in-Hand 随动线缆用机器人专用拖链线缆;水晶头压接、屏蔽层接好,不要用普通民用网线
交换机:单独千兆交换机,相机、工控机、机器人控制器独立组网,不和其他设备混网;3D 点云量大,巨帧建议 9014,关闭交换机风暴抑制
接地:控制柜、视觉工控机、相机支架共地,电位差会随机断 Socket、乱码、相机重启;不要一端接地一端浮空
网口:确认安川用的是控制器自带 LAN 口还是通讯板卡网口;DX200/YRC1000 自带网口和总线板卡是分开的,不要插错
晃动测试:运行时轻轻晃动网线、接头,看是否瞬间断连,排查虚接
二、IP 与基础连通性
三者同网段、子网掩码一致,不要跨网段;关闭海康工控机 Windows 防火墙、杀毒软件拦截
示教器→系统信息→网络设置,确认机器人 IP;在工控机 cmd ping 机器人 IP,机器人端 ping 海康工控机
ping 不通:网线 / 交换机 / IP 写错 / 防火墙
ping 通但丢包:干扰、劣质网线、交换机带宽不足
确认网关:同网段可以不填网关;跨网段必须路由正常,现场视觉方案尽量不要跨网段
三、Socket TCP 方式
安川 Socket 是 MotoPlus 后台程序实现,不是像库卡 EthernetKRL 原生支持,这个是核心区别
故障 1:直接连不上、报 Socket_Connect_Error
确认 MotoPlus 选项授权已开通;YRC1000 默认只能加载一个.out 后台程序,如果里面已经跑了别的 MotoPlus 程序,新的视觉 Socket 程序会冲突、Socket 打开失败,需要删掉其他 MotoPlus 程序,重启控制柜再试
确认:海康 VM3D 是服务端,机器人是客户端,IP、端口两边完全一致;VM3D 里面【TCP 服务】启动,监听端口没被别的程序占用
示教器 MotoPlus 程序清单:只保留视觉通讯.out,其余全部删除,重启控制柜
端口被占用:工控机用 netstat 查看端口,换端口测试
故障 2:能连上,但是随机断连、丢包、收不全坐标
安川 MotoPlus 缓冲区很小,不要无握手循环发坐标,必须严格握手: 机器人发送【拍照触发】→海康拍照 + 点云匹配→返回【有效标志 + 6 维位姿 + 错误码】→机器人收到后回复【确认收到】,再下一次触发 没有握手,上一帧脏数据、旧坐标会覆盖,甚至直接断开
加超时:机器人端设置 recv 超时(一般 500~1500ms),超时自动断开重连,避免卡死
数据包格式:海康 VM3D 输出字符串格式(逗号分隔 X,Y,Z,A,B,C,flag),安川 MotoPlus 接收字符串要做分割,缓冲区长度要预留足够,点云量大时包太长会截断
换行符、结束符对齐:海康结尾是否加
\r\n,机器人解析是否匹配,很多解析乱码就是结束符不一致
故障 3:收到数字,但是姿态翻转、坐标明显不对
欧拉角定义是头号大坑:
海康 VM3D 默认欧拉角( extrinsic /intrinsic、旋转顺序 ZYX / XYZ)和安川不一样
安川机器人 POS 的姿态是:Rx,Ry,Rz(XYZ 欧拉),一定要在 VM3D 里面修改输出顺序、旋转方向,或者 MotoPlus 里做矩阵转换
不要直接拿海康原始角度直接赋值给安川 R 变量,大概率抓翻
坐标系确认:海康输出是【相机→机器人基坐标】,不是相机局部坐标;手眼标定输出矩阵选错,坐标直接漂移
四、ModbusTCP / Profinet 总线方案
ModbusTCP
安川打开 ModbusTCP 从站,确认寄存器地址、数据类型(32 位浮点数,2 个连续寄存器);X/Y/Z/A/B/C 一共 6 个浮点数 = 12 个寄存器
高低字节顺序:海康 VM3D 里可以设置浮点数高低字节调换,很多时候数值乱跳就是字节序不匹配
轮询间隔不要太快,视觉处理有耗时,不要高频循环读寄存器,增加 Ready/OK 标志位联锁
Profinet
板卡硬件:确认 YRCP-MP4P PN 板卡插紧、参数里设置为【使用】,GSDML 版本和海康一致
设备名称、IP 在博途 / 组态工具里下载到海康相机;安川侧 IO 映射的输入输出字节长度两边严格一致
总线异常参数:YRC1000 可以设置 PN 异常时是否停机,调试阶段建议设为不停机报警,否则一断网机器人直接锁机无法操作
实时性:Profinet 适合高速,但是一旦点云匹配失败,海康必须把 OK 位置 0,机器人不能直接拿坐标
五、VM3D 视觉侧配置排查
VM3D 通讯界面:TCP 服务 / Modbus 服务是否【已启动】,日志打开,看有没有收到机器人触发指令、有没有向外发送坐标;日志里能看到是没收到触发,还是匹配失败不返回
匹配失败≠通讯故障:日志显示【识别 NG】,说明通讯链路正常,只是工件遮挡、点云差、ICP 匹配失败,不要当成通讯问题
输出变量:确认输出的 6 维位姿是手眼标定后的基坐标系位姿,不是相机原始坐标
版本匹配:MVS、VM3D 固件版本,老版本 VM3D 的 TCP 协议有 bug,升级到稳定版
六、安川程序逻辑避坑
每次抓取前,先判断视觉 OK 标志位,flag=0(识别失败)时,直接跳过抓取,不使用坐标
TCP 断开后,程序里要有自动重连分支,不要卡死在等待接收
安川 R 变量是实数,接收浮点数不要用 I 变量(整数),数值直接错
不要在机器人高速运动时同时收发 Socket,MotoPlus 后台线程容易丢包;触发拍照放在机器人静止等待位
七、快速排错顺序
ping 双向连通 → 不通:网线 / IP / 交换机 / 防火墙
打开 VM3D 通讯日志,看有没有收到触发、有没有输出报文
Socket:核对 IP + 端口、MotoPlus 是否冲突、是否多.out 程序
报文抓包(Wireshark):看有没有报文、报文是否完整、结束符是否对齐
能收到报文但坐标乱:欧拉角顺序、字节序、手眼坐标系
偶发断连:接地、屏蔽、握手、超时重连逻辑。


