2D视觉-modbus通讯功能简述及海康软件对应通讯使用详述

2026-06-16

Modbus 协议核心概念

Modbus 协议主要有三种传输模式,它们共享相同的核心功能,但物理层和数据封装方式不同。

表格

 

特性

Modbus RTU

Modbus ASCII

Modbus TCP/IP

物理层

RS-232 / RS-485 等串口

RS-232 / RS-485 等串口

以太网 (Ethernet)

数据格式

二进制,紧凑高效

ASCII 字符,可读性高

以太网帧,封装在 TCP/IP

校验方式

CRC (循环冗余校验)

LRC (纵向冗余校验)

TCP/IP 协议栈负责

主要特点

工业最常用,效率高

调试方便,效率较低

速度快,支持远程通信

数据模型

Modbus 定义了四种基本的数据类型来访问设备信息:

线圈 (Coils):可读写的开关量,如继电器的通断。

离散输入 (Discrete Inputs):只读的开关量,如按钮或传感器的状态。

保持寄存器 (Holding Registers):可读写的 16 位数据,常用于存储和设置参数。

输入寄存器 (Input Registers):只读的 16 位数据,常用于采集模拟量,如电压、温度。

常用功能码

功能码定义了主站希望从站执行的操作。

● 01: 读线圈

● 02: 读离散输入

● 03: 读保持寄存器(最常用)

● 04: 读输入寄存器

● 05: 写单个线圈

● 06: 写单个保持寄存器

● 15 (0x0F): 写多个线圈

● 16 (0x10): 写多个保持寄存器

⚙️ 海康软件 (VisionMaster) Modbus 通讯使用详解

海康的视觉算法平台软件 VisionMaster (VM) 内置了强大的通信管理模块,可以方便地与支持 Modbus 协议的设备(如 PLC、机器人、传感器)进行数据交互,实现视觉系统与自动化产线的联动。

1. 配置 Modbus 通信

VisionMaster 系统菜单中,进入通讯管理

添加设备:在设备管理中添加一个 Modbus 设备。

设置参数:

通信方式:选择 TcpClient (VM 作为客户端) TcpServer (VM 作为服务器)。对于 Modbus RTU,则选择串口通信。

目标 IP/端口:填写从站设备的 IP 地址和端口号(Modbus TCP 默认为 502)。

从站地址:填写目标从站设备的地址(1-247)。

寄存器设置:定义需要读写的寄存器首地址和数量,例如设置首地址为 100,个数为 300,则 VM 会持续轮询该地址区域的数据。

2. 数据读取与发送

VM 通过特定的模块来实现数据的收发。

发送数据:使用发送数据模块,将 VM 内部的全局变量值写入到指定的 Modbus 寄存器地址中,从而控制外部设备。

接收数据:使用接收数据模块,持续监听并获取 Modbus 从站返回的数据。

3. 数据解析与事件触发

接收到的原始数据需要经过解析才能被 VM 的流程使用。

协议解析/组装:在接收事件中,创建字节匹配-协议组装事件。在此事件中,可以绑定之前配置的 Modbus 设备,并详细定义如何解析数据,例如:

字节起止位置:指定从接收到的数据流中提取哪几个字节。

数据类型:指定数据的格式,如 int (整型)

字节顺序:指定数据的字节序,如 ABCDCDAB 等,这在与不同厂商的设备通信时尤为重要。

全局触发:解析后的事件可以与全局触发功能关联。当接收到特定数据(例如,某个寄存器的值变为 1)时,可以触发 VM 执行指定的流程,如执行流程1”执行流程2”等,从而实现由外部信号驱动视觉检测。

4. 典型应用场景

流程触发:PLC VM 的指定寄存器写入一个触发信号(如将地址 100 的值设为 1),VM 接收到并解析后,触发相应的视觉检测流程。流程执行完毕后,VM 可以通过脚本模块将触发信号归零,等待下一次触发。

数据交互:VM 将视觉定位或测量的结果(如 X, Y 坐标)通过发送数据模块写入到 PLC 的寄存器中,供机器人或运动控制系统使用。

 

一、Modbus 与海康通讯基础

1)协议类型(选对第一步)

Modbus TCP(最常用):以太网,RJ45,默认端口 502IP 互通即可。

Modbus RTU:串口 RS485A+/B-,波特率 / 数据位 / 校验位必须一致。

2)海康角色(VM/VC3000

VMVisionMaster):既可做 主站(Client) 连 PLC / 从站,也可做 从站(Server) 被 PLC 读写。

VC3000 工控机:运行 VM,网口直连 PLC / 交换机。

SC 智能相机:仅作 Modbus TCP 从站(Server),PLC 做主站读写。

3)寄存器地址映射(核心!)

Modbus 地址分四类,海康常用 4x 保持寄存器(读写):

4000149999:对应 地址 09998VM 里填 0 40001)。

功能码:03 读、06 写单个、10 写多个。

 

二、硬件接线(图文)

1Modbus TCP(推荐)

 

 

要求:同网段 IP,互相 ping 通,关闭防火墙。

例:PLC 192.168.1.100VM 192.168.1.200,网关一致。

2Modbus RTURS485

 

 

 

 

三、VisionMasterVM)配置全流程(图文)

步骤 1:打开通讯管理

顶部工具栏点 通讯管理(图标:天线 / 信号)。

 

 

步骤 2:新建 Modbus 设备(TCP 为例)

1、点 添加设备 Modbus 通讯。

 

 

2、设备类型:Modbus TCP 主站(VM PLC)或 从站(PLC VM)。

 

 

3、基本参数:

设备名:自定义(如 “PLC_H5U”

远程 IPPLC IP(如 192.168.1.100

端口:502(默认)

从站地址:1PLC 站号)。

 

 

步骤 3:配置接收事件(PLC→VM 触发)

实现:PLC 40001=1 → VM 触发流程并复位 40001=0

切到 接收事件 添加事件。

 

 

事件名:“Start_Trigger”

绑定设备:选刚建的 Modbus 设备

寄存器类型:保持寄存器(4x

起始地址:0(对应 40001

数据类型:16 位整型

触发条件:等于 1(上升沿有效)。

 

 

开启 事件触发后复位寄存器 复位值 0

步骤 4:配置发送事件(VM→PLC 回传结果)

实现:VM 流程结束 OK/NGXY、角度 写入 PLC 4000240005

切到 发送事件 添加事件。

 

 

事件名:“Send_Result”

触发时机:流程结束时自动发送

绑定设备:同前 Modbus 设备

寄存器配置(示例):

 

32 位浮点:占 2 个寄存器VM 自动高低字拆分。

 

 

步骤 5:全局触发绑定(让事件真的触发流程)

左侧 全局模块 触发管理 添加触发。

触发源:选 通讯接收事件 绑定 “Start_Trigger”

触发动作:执行指定流程 选你的视觉流程。

 

 

四、常见问题与调试

 

1)通讯连不上

 

排查:IP 同网段、ping 通、防火墙关闭、端口 502 未被占用。

● VM 侧:通讯管理 设备 连接测试,显示 连接成功即可。

 

 

 

 

2)数据不对(高低字 / 字节序)

 

● 32 位浮点:VM 默认 小端序PLC 需对应设置(高低字交换)。

用调试工具(如 Modbus Poll)直接读写寄存器,验证数据。

 

 

Modbus Poll 调试工具界面

 

 

3)触发没反应

 

确认:接收事件 触发条件 = 1复位 = 0、全局触发已绑定流程。

● PLC 侧:用 上升沿脉冲 1,避免持续高电平。

 

 

五、参数速查表

 

Modbus TCPVM 主站 ↔ PLC 从站)

参数

推荐值

说明

远程 IP

192.168.1.100

PLC IP

端口

502

Modbus TCP 默认端口

从站地址

1

PLC 站号

起始地址

040001

触发地址

数据类型

16 位整型

触发信号

32 位浮点回传(结果)

 

寄存器:4000340004X 坐标)

类型:32 位浮点

字节序:小端序(低字在前)

 

创新科技,引领未来
免费获取解决方案