待解决

ABB机器人走232串口跟第三方PLC通讯 有搞过的吗 几个问题想问下

2648675836
2648675836
2026/04/13 16:11

刚入行的应用工程师 手头有个项目让ABB机器人跟一台老PLC走RS232通讯 PLC那边只能发ASCII字符串 没有标准协议。机器人这边我建了个socket的通道 波特率115200 8N1 用的是RAPID里的WriteVar和ReadVar函数 测试发数据PLC能收到 但是机器人收PLC回的数据经常丢 或者收到一截乱的 试过加大超时也没用。

232本身就不是给长距离或者干扰大的环境设计的 我现场线大概8米 跟变频器走同一槽 这算不算作死 另外RAPID里那个TRAP机制到底咋用 我看手册写得很绕 能不能给个最小可用的例子参考下。

231 4

全部回复 (4)

老沈
老沈#1

232走8米配115200本身就在边界上 干扰大的环境很容易出错 实测过同等条件下换成RS422稳得一批 如果现场没法换硬件 至少把波特率降到38400或者19200 重发机制一定要做 收到校验和不对就丢帧让PLC再发一次 变频器那根线能分开就分开 走不同线槽至少隔30公分。

2026/04/13 22:23
平常心
平常心#2

WriteVar和ReadVar本身就不是专门做串口字符流用的 更适合走机器人自带的RTP或者Ethernet协议 你这个场景直接用RawSend和RawReceive会顺手很多 或者干脆挂一个串口转以太网的模块 走socket编程也清晰。

2026/04/14 09:43
人到中年
人到中年#3

TRAP的写法其实就两步 一个是CONNECT指令把中断源跟中断程序绑在一起 一个是中断程序里写好收到数据后怎么处理 你手册里看到那一坨其实就是顺序问题 先连TRAP再开RawReceive 别反过来写。

2026/04/15 05:20
彬姐
彬姐#4

PLC回的数据你确定是纯字符串还是里面夹了 之类的控制字符 用示波器或者串口助手抓一下原始报文先 别在机器人这边死磕。

2026/04/16 15:20