谈谈如何将VisionMaster的检测结果与PLC/机器人实现实时交互

精选原创

作者: 发布时间: 所属专栏:

文章分类: 机器视觉阅读数量:99点赞数量:666收藏数量:105

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接: https://52gongkong.com/blog-detail/150

在工业自动化场景中,VisionMaster 的检测结果与 PLC / 机器人的实时交互是实现 “视觉 - 控制 - 执行” 闭环的核心环节。其核心目标是确保检测数据(如 OK/NG 状态、缺陷参数、坐标偏移量等)能低延迟、高可靠地传递给控制层,同时接收来自 PLC / 机器人的控制指令(如启动检测、重置等)。以下从通信协议选型具体配置方式触发逻辑设计三个维度详细说明。

一、常用通信协议及配置方式

VisionMaster 支持多种工业级通信协议,需根据 PLC / 机器人的品牌、实时性要求及数据量选择。以下是最常用的 3 类协议及配置细节:

1. Modbus TCP/IP 协议(通用型,适合中小数据量交互)

Modbus TCP/IP 是工业以太网中应用最广泛的协议之一,兼容性强(支持几乎所有品牌 PLC / 机器人),配置简单,适合传输检测结果(OK/NG)、简单缺陷参数等中小数据量场景。

协议特点:

  • 基于 TCP/IP,使用端口 502,数据帧格式为 “MBAP 头 + Modbus PDU”;
  • 支持 “客户端 - 服务器” 模式,可灵活定义寄存器映射(线圈、离散输入、保持寄存器等);
  • 实时性中等(延迟约 10-100ms,取决于网络环境)。

配置步骤:

VisionMaster 端(服务器端配置):

1.打开 VisionMaster,进入 “系统配置 - 通信配置 - Modbus TCP 服务器”;

2.启用服务器功能,设置本地 IP(需与 PLC / 机器人同网段,如 192.168.1.100)、端口(默认 502);

3.定义 “数据映射表”:将检测结果变量与 Modbus 寄存器绑定。例如:

  • 检测状态(OK=1/NG=0)→ 线圈(Coil)地址 00001;
  • 缺陷数量 → 保持寄存器(Holding Register)地址 40001;
  • 工件中心 X 坐标(mm)→ 保持寄存器 40002(高 16 位)+40003(低 16 位,浮点数拆分);

4.启用 “自动更新”:确保检测结果变化时,寄存器值实时刷新。

PLC / 机器人端(客户端配置):

  • PLC(如西门子 S7-1200)通过 “Modbus TCP 客户端” 指令(MB_CLIENT)配置:
  • 目标 IP(VisionMaster 的 IP)、端口 502;
  • 操作类型:读取(Read Coils/Read Holding Registers)或写入(Write Coils);
  • 对应 VisionMaster 定义的寄存器地址,将读取结果存入 PLC 的 DB 块(如 DB1.DBX0.0 存储 OK/NG 状态)。
  • 机器人(如 ABB IRB 1200)通过 “Modbus Client” 功能块,配置 IP、端口及寄存器地址,读取坐标数据后写入机器人的位置变量(如 robtarget)。

2. 现场总线协议(PROFINET/EtherNet/IP,高实时性场景)

对于实时性要求更高(延迟 < 10ms)的场景(如高速分拣、机器人视觉引导),需采用 PLC 原生现场总线协议:

PROFINET(西门子 PLC / 机器人):

VisionMaster 需安装 PROFINET 驱动,配置为 “IO Device”,并导入 GSDML 文件(设备描述文件)到 PLC 的 TIA Portal 中。

  • 在 VisionMaster 中定义 “过程数据对象(PDO)”:将检测结果(如 X=32.5mm,Y=-15.2mm,OK=1)映射到输出 PDO(从视觉到 PLC);将 PLC 的控制指令(如启动检测 = 1)映射到输入 PDO(从 PLC 到视觉)。
  • PLC(如 S7-1500)中配置 PROFINET IO 控制器,扫描 VisionMaster 设备,将 PDO 映射到 PLC 的输入 / 输出地址(如 IW256 = 启动指令,QW512=X 坐标高 16 位)。

EtherNet/IP(罗克韦尔 / 三菱 PLC):

VisionMaster 作为 “Adapter” 设备,PLC 作为 “Scanner”,通过定义 “输入 / 输出装配体(Assembly)” 实现数据交互。

  • 输入装配体(从视觉到 PLC):存放检测结果,如偏移量、状态;
  • 输出装配体(从 PLC 到视觉):存放控制指令,如触发信号。
  • 罗克韦尔 Logix PLC 通过 “Add-On Profile” 配置装配体 ID,直接访问映射的标签(Tag),实现 “即插即用” 式通信。

3. Socket 通信(自定义协议,高灵活性场景)

当需要传输复杂数据(如多缺陷参数、图像特征)或 PLC / 机器人不支持上述协议时,可采用 Socket(TCP/UDP)自定义通信:

数据格式设计(以 TCP 为例):
采用 “包头 + 数据区 + 校验位” 结构,例如:

包头(2字节):0xAA55(帧起始标识)  
数据长度(2字节):n(后续数据区字节数)  
数据区(n字节):  
  - 检测状态(1字节):0=NG,1=OK  
  - X坐标(4字节,float型,单位mm)  
  - Y坐标(4字节,float型)  
  - 缺陷数量(2字节,uint16)  
校验位(1字节):异或校验(包头+数据长度+数据区所有字节的异或结果)  

配置步骤:

VisionMaster 中启用 “Socket Server”,设置 IP=192.168.1.100,端口 = 5000,编写脚本(VisionMaster 支持 Python/Lua):检测完成后,按上述格式打包数据,通过 Socket 发送给客户端(PLC / 机器人)。

PLC 端(如三菱 FX5 系列)通过 “TCP Client” 功能块(如 MC_TCP_Connect/MC_TCP_Send)建立连接,接收数据后解析包头、校验位,提取有效信息。

二、触发逻辑设计(交互流程)

触发逻辑是确保 “视觉检测 - 数据传输 - 执行动作” 时序匹配的核心,需根据场景设计,常见模式如下:

1. 硬件触发 + 被动响应(最常用)

流程:

  1. PLC 发送启动信号:PLC 通过数字输出(DO)向 VisionMaster 的数字输入(DI)发送高电平信号(如 24V),作为检测触发信号。

  2. 视觉执行检测:VisionMaster 检测到 DI 上升沿后,启动图像采集→算法处理→生成结果(如 OK + 坐标)。

  3. 视觉反馈完成信号:检测完成后,VisionMaster 通过自身 DO 输出高电平,通知 PLC “结果已就绪”。

  4. PLC 读取数据:PLC 检测到视觉的 DO 高电平后,通过通信协议(如 Modbus)读取结果数据。

  5. PLC 执行动作:PLC 根据结果控制机器人(如 OK 则抓取到 A 工位,NG 则分拣到 B 工位),完成后复位启动信号(DI 低电平),等待下一个周期。

优势:抗干扰强,适合异步场景(如间歇性上料)

2. 软件触发 + 主动推送(高节拍场景)

流程:

1.PLC 发送软件指令:PLC 通过通信协议(如 PROFINET PDO)向 VisionMaster 写入 “启动标志位”(如 0→1)。
2.视觉实时响应:VisionMaster 实时监控标志位变化,触发检测(无需等待硬件 IO 延迟)。
3.视觉主动推送结果:检测完成后,VisionMaster 立即通过通信协议将结果写入 PLC 的地址(如 PROFINET 输出 PDO),同时复位 “启动标志位”。
4.机器人直接读取:机器人(如 KUKA KR 6)通过 PLC 的共享数据区(如 EtherCAT 从站)实时获取结果,无需额外请求。

优势:减少 IO 延迟,适合高节拍(>100 件 / 分钟)场景。

3. 视觉主动触发(连续检测场景)

流程:

1.视觉定时 / 连续检测:VisionMaster 设置 “连续采集” 模式(如 10ms / 帧),实时处理图像。
2.结果变化时推送:当检测结果变化(如从 NG 变为 OK),或检测到新工件时,VisionMaster 主动通过 Socket 将结果发送给 PLC / 机器人。
3.PLC / 机器人缓存数据:接收端缓存最新结果,当需要执行动作时直接调用(如机器人到达取料点前读取最新坐标)。

优势:适合流水线连续上料场景(如罐头检测、电池极片检测)

三、关键注意事项

1.实时性保障:

  • 协议选择:高实时场景优先 PROFINET(周期 < 1ms),其次 Modbus TCP(避免超过 50ms);

  • 数据量控制:单次传输数据不超过 1024 字节(减少通信负载),非关键信息(如历史缺陷)可通过上位机读取。

2.可靠性设计:

  • 数据校验:所有协议需加入校验(如 Modbus CRC16、Socket 异或校验),避免错传;

  • 超时处理:设置通信超时(如 500ms),超时后触发报警(如 PLC 报 “视觉通信故障”);

  • 状态反馈:视觉需向 PLC 发送 “设备就绪”“算法异常” 等状态,避免 PLC 误触发。

3.坐标转换:

若传递位置数据(如机器人引导),需在 VisionMaster 中完成 “像素→物理坐标” 转换(通过标定板标定),并确保与机器人坐标系对齐(如通过手眼标定统一基准)。

总结

VisionMaster 与 PLC / 机器人的实时交互需结合协议选型Modbus 适合通用场景,PROFINET 适合高实时,Socket 适合自定义)和触发逻辑(硬件 / 软件触发、主动 / 被动响应),核心是确保数据 “低延迟、高可靠” 传输,最终实现 “视觉引导控制” 的闭环。实际应用中需根据设备品牌、节拍要求及数据量灵活选择方案,并通过仿真测试验证时序匹配性。