4. 视觉与PLC的通信协议解析
在机器视觉与PLC协同的系统中,通信协议决定了图像数据、坐标结果、触发信号和控制指令以什么形式、什么时序、什么可靠性在视觉控制器与PLC之间流动。选错协议,轻则增加编程工作量,重则导致节拍不达标或数据错位。本节围绕四种典型协议,从适用场景、数据组织方式和配置要点三个层面展开,帮助你在项目初期做出合理选择。
一、四种协议的定位差异
PROFINET是西门子生态内的实时工业以太网协议,基于标准以太网物理层,通过RT(实时)通道实现周期性IO数据交换,典型周期可设为1ms、2ms、4ms、8ms。在视觉协同中,PLC通常作为PROFINET IO控制器,视觉控制器作为IO设备,双方通过GSDML文件描述设备特性,建立输入/输出数据区。视觉侧把结果写入输出区,PLC从输入区读取,整个过程由硬件组态自动完成,无需编写Socket代码。
Modbus TCP是一种应用层协议,运行在TCP/IP之上,采用请求/响应模式。它把数据组织为线圈、离散输入、保持寄存器和输入寄存器四类地址空间。视觉控制器通常作为Modbus服务器,PLC作为客户端,通过功能码03读取保持寄存器获取坐标和结果。其优势是跨品牌兼容性好,几乎所有视觉软件和PLC都支持;劣势是通信由PLC主动轮询,实时性取决于轮询周期,且寄存器地址需要人工映射。
TCP/IP套接字是最灵活的方案,双方通过IP地址和端口建立连接,数据格式完全自定义。视觉侧发送字符串或二进制结构,PLC侧用TCON、TSEND、TRCV等指令收发。它适合传输图像文件、长字符串、JSON报文等非周期性数据,但需要自行处理粘包、断线重连和字节序问题。
OPC UA是面向工业4.0的信息模型协议,强调语义化、安全性和跨平台。它把数据组织为地址空间中的节点,每个节点有NodeId、数据类型和访问权限。视觉系统可作为OPC UA服务器,把结果、状态、配方发布为节点,PLC或上位机作为客户端订阅。它适合与MES、SCADA集成的场景,但协议栈较重,不适合硬实时触发。
二、PROFINET配置要点
在TIA Portal中配置PROFINET视觉协同,第一步是安装视觉设备厂商提供的GSDML文件,然后在硬件目录中找到对应设备并拖入网络视图。接着设置设备名称和IP地址,设备名称必须与视觉侧实际配置一致,否则IO设备无法被控制器识别。之后在设备概览中确认输入/输出数据长度,例如视觉侧发送16字节结果,PLC侧就应有16字节输入区。
数据映射时要注意字节序。PROFINET采用大端序,而视觉软件在x86平台上通常按小端序组织数据。若视觉侧发送的X坐标是32位浮点数,PLC侧需要用SWAP指令交换高低字节后再用MOVE指令送入REAL变量。一个典型示例:视觉输出区第0~3字节为X坐标浮点数,PLC程序先用BLKMOV把4字节读入DWORD,再SWAP,最后用MOVE转为REAL,得到实际毫米值。
触发信号通常由PLC输出区的一个位控制,视觉侧检测到上升沿后拍照。为避免丢触发,建议PLC输出脉冲宽度不小于视觉扫描周期的2倍,并在视觉侧做边沿检测而非电平判断。
三、Modbus TCP配置要点
Modbus TCP的关键是地址映射。视觉软件通常提供寄存器配置界面,把结果写入40001起始的保持寄存器。PLC侧使用MB_CLIENT指令,设置连接参数、功能码03、起始地址和读取长度。例如视觉把X坐标写入40001~40002(32位浮点占两个寄存器),PLC读取后需要把两个16位寄存器拼成32位再转浮点。
轮询周期直接影响响应速度。若PLC每50ms轮询一次,视觉结果从产生到PLC可用最长延迟约50ms。对于节拍要求200ms以内的场景,这个延迟可以接受;若要求20ms以内,则应改用PROFINET。另外,Modbus TCP没有心跳机制,断线后MB_CLIENT会返回错误代码,需要在程序中做重连处理,通常用ERROR输出触发重新建立连接。
四、TCP/IP套接字配置要点
套接字方案适合传输图像路径、JSON结果或大段文本。PLC侧使用TCON建立连接,TSEND发送数据,TRCV接收数据。配置时需要指定连接类型为TCP、主动/被动角色、远端IP和端口。视觉侧作为服务器监听端口,PLC作为客户端主动连接。
粘包是常见问题。若视觉连续发送多条报文,PLC的TRCV可能一次收到多条拼接的数据。解决办法是在报文头加长度字段,PLC先读长度再按长度截取。例如报文格式为“LEN:0008,DATA:OK,NG;”,PLC先解析LEN后的数字,再取对应长度内容。字节序同样需要约定,建议双方统一使用大端序或明确在协议文档中标注。
五、OPC UA配置要点
OPC UA适合把视觉结果发布给多个客户端。视觉软件作为服务器,在地址空间中创建变量节点,例如“Vision/Result/X”“Vision/Result/Y”“Vision/Result/Status”。PLC侧若支持OPC UA客户端功能,可直接订阅这些节点;若不支持,则通过上位机或边缘网关中转。
配置时注意安全策略。OPC UA支持None、Sign、SignAndEncrypt三种安全模式,生产环境建议至少使用Sign。证书交换是首次连接的必要步骤,双方需要互相信任证书。采样间隔和发布间隔决定数据更新频率,对于视觉结果,采样间隔可设为100ms,发布间隔设为200ms,避免网络拥塞。
六、选型决策参考
| 对比维度 | PROFINET | Modbus TCP | TCP/IP套接字 | OPC UA |
|---|---|---|---|---|
| 实时性 | 高(1~8ms) | 中(轮询周期) | 中(取决于程序) | 低(100ms级) |
| 跨品牌 | 弱(西门子生态) | 强 | 强 | 强 |
| 数据语义 | 无(需约定) | 无(需映射) | 自定义 | 强(节点模型) |
| 典型用途 | 触发+坐标周期交换 | 结果寄存器读取 | 图像/报文传输 | MES/SCADA集成 |
| 配置复杂度 | 低(组态) | 中(地址映射) | 高(自定义协议) | 中(证书+节点) |