紧急求助

abb的tcp/ip通讯到底咋配啊 我看手册越看越懵

hfg1996
hfg1996
2026/04/07 11:47

刚接触abb的项目不久,手上一台irb1200要跟一台倍福plc走socket通讯,plc那边是server模式。我看abb的robotstudio里那个socket message那一堆cfg参数,ip端口都好理解,但那个remote address跟remote port到底写plc的还是写机器人自己的?还有socket communication里那个protocol类型选tcp/ip还是tcp/ip raw,俩有啥区别啊?

我照着手册试了几次,plc那边能收到连接但read不到数据,机器人这边日志报timeout。有没有人能把这玩意儿从零到通讲一遍的,最好带个能跑的例程那种。

33 4

全部回复 (4)

金玉满堂
金玉满堂#1

remote address和remote port写的是你倍福plc的ip和端口,不是机器人自己的。机器人自己是client端连出去那一方,地址填对面。protocol里tcp/ip是走字符串收发带换行符的,raw是裸字节流直接发hex,你这场景用tcp/ip就够了别选raw,不然plc那边解析容易对不上。

你这个timeout先别动cfg,把plc那端的server先确认开起来了,端口用netstat -ano看一眼在不在listen。然后机器人这边先单独发一条短字符串比如"ping\r\n"过去,plc那边收到回个固定字符串,recv那边给个3秒超时试试。这种通讯九成问题都出在两边收发格式没对上,不是cfg的事。

2026/04/07 20:37
阿威
阿威#2

你倍福plc是twincat3还是2?twincat3的tc3_plc_socket库跟abb的socket message对接有个坑,plc那边收字符串得用AdsToNcString或者直接byte数组,abb发过来的\r\n它有时候会把\n当结束符吃掉,你plc程序里recv的时候长度按实际字节算别按字符串算。我这边项目上就是这么踩的,改了之后通的。

2026/04/08 10:54
杰姐
杰姐#3

手册那章你自己打印出来对着看吧,cfg文件里那个socket channel其实就是定义一条tcp连接,跟你说白了就是个socket句柄。你先把robotstudio里socket communication那一页的参数列个表发出来,我看看你配的对不对,光说timeout没人能帮你定位

2026/04/09 19:09
龙哥
龙哥#4

1200走这个有点奢侈啊,倍福plc跟abb机器人现在主流都是走profinet或者ethernet/ip了,通讯稳定还不用自己写协议。你这项目是非得用tcp/ip吗?客户要求的还是你自己选的方案

2026/04/10 16:45