• 正文
  • 相关推荐
申请入驻 产业图谱

VFBOX网关采集EtherCAT转Modbus协议项目案例

07/15 14:43
202
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、项目概述

1.1 项目背景

某智能制造工厂的生产线采用EtherCAT协议的控制器(如伺服驱动器、I/O模块等),而工厂的上位机监控系统(SCADA)和MES工控平台仅支持Modbus TCP/RTU协议。为实现生产线数据与上层系统的无缝对接,需要部署协议转换网关,将EtherCAT设备数据转换为Modbus协议数据。

1.2 项目目标

实时采集EtherCAT从站设备的关键工艺数据(位置、压力、温度、状态等)

将采集的数据转换为Modbus协议,供SCADA系统和MES平台读取

支持双向通信:既读取EtherCAT设备数据,也向EtherCAT设备写入控制指令

确保数据传输的实时性和稳定性

1.3 网络架构

整个系统的网络架构如下:

┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ SCADA系统 │ │ VFBOX网关 │ │ EtherCAT从站 │
│ (Modbus主站) │◄───────►│ (协议转换) │◄───────►│ (伺服/IO模块) │
│ MES平台 │ Modbus │ │ EtherCAT│ │
└─────────────────┘ TCP └──────────────┘ 主站 └─────────────────┘

二、硬件与软件准备

2.1 硬件设备清单

序号 设备名称 型号/规格 数量 说明
1 VFBOX协议转换网关 VB303-2400#256-K-1 1台 2网口4串口,支持EtherCAT主站和Modbus从站
2 EtherCAT从站设备 伺服驱动器/IO模块 若干 生产线控制器
3 工控电脑 安装VFBOX Studio软件 1台 用于配置网关参数
4 网线 CAT5e/CAT6 若干 连接网关与设备
5 电源 DC 24V/2A 1个 网关供电

2.2 软件工具

VFBOX Studio(编号1001):网关配置软件,用于设置采集和转发参数

Modbus Poll:Modbus协议测试工具,用于验证数据转发

EtherCATSlaveInfo.exe:网关自带工具,用于扫描EtherCAT从站信息

2.3 网关型号说明

本项目选用 VB303-2400#256-K-1 型号网关,各字段含义如下:

字段 含义 本项目配置
VB303 硬件批次 VB303系列
2400 硬件接口:2网口4串口 Ethernet1接EtherCAT,Ethernet2接SCADA
#256 最大采集256个数据点位 满足产线数据量需求
K 采集协议:EtherCAT主站 采集EtherCAT从站数据
1 转发协议:Modbus Modbus TCP从站转发

三、项目实施步骤

3.1 准备工作

3.1.1 电脑与网关连通测试

1. 使用网线将电脑网口连接到网关的 Ethernet1 网口

2. 给网关接入DC 24V电源(V+接正极,V-接负极)

3. 将电脑IP地址设置为 192.168.1.198,与网关默认IP同网段

4. 打开CMD,执行 ping 192.168.1.199,确认网络连通

5. 安装并启动 VFBOX Studio 软件(以管理员权限运行)

3.1.2 获取EtherCAT从站点位信息

在配置网关采集EtherCAT数据前,必须先获取从站设备的PDO(过程数据对象)映射信息,包括数据地址、数据类型和点位名称。

1. 将EtherCAT从站设备的IN口通过网线连接到电脑网口

2. 在VFBOX Studio中点击菜单 "工具" → "命令行"

3. 输入命令扫描网卡信息:EtherCATSlaveInfo.exe

4. 根据输出的网卡列表,选择对应网口执行详细扫描:

EtherCATSlaveInfo.exe \\Device\\NPF_{网卡GUID} -map

5. 记录输出结果中的关键信息:Slave ID、SM2 outputs、SM3 inputs、addr、data_type、name

示例扫描结果(伺服驱动器)

Slave:1

Name: VAT vacuum valve

Output size: 184bits

Input size: 200bits

SM2 outputs (向设备写入的数据)

addr b index: sub bitl data_type name

[0x0000.0] 0x2300:0x02 0x20 REAL32 Target Pressure ← 目标压力

[0x0004.0] 0x2200:0x02 0x20 REAL32 Target Position ← 目标位置

[0x0008.0] 0x2401:0x14 0x20 REAL32 Pressure Input Digital Sensor 1

[0x0010.0] 0x2002:0x00 0x08 INTEGER8 Control Mode ← 控制模式

SM3 inputs (从设备读取的数据)

addr b index: sub bitl data_type name

[0x0017.0] 0x2300:0x01 0x20 REAL32 Actual Pressure ← 实际压力

[0x001B.0] 0x2401:0x18 0x20 REAL32 Pressure Sensor 1 ← 压力传感器1

[0x0023.0] 0x2200:0x01 0x20 REAL32 Actual Position ← 实际位置

[0x0027.0] 0x2002:0x00 0x08 INTEGER8 Control Mode ← 控制模式

[0x0028.0] 0x2030:0x03 0x10 UNSIGNED16 Error Number ← 错误代码

关键信息解读:

SM2 outputs:输出数据区,对应上位机下发给设备的控制指令(如目标位置、目标压力)

SM3 inputs:输入数据区,对应设备上报给网关的实时数据(如实际位置、实际压力)

addr [0x0004.0]:数据在PDO中的偏移地址,0x04表示偏移4字节

data_type REAL32:数据类型为32位浮点数(Float),占4个字节

3.2 配置网关采集EtherCAT数据

3.2.1 新建工程

1. 打开VFBOX Studio软件,点击 "新建工程"

2. 输入工程名称(如:EtherCAT_To_Modbus)

3. 设备类型选择 "VB30X-2400"(与实际网关型号一致)

4. 点击菜单 "网关IP地址",输入 192.168.1.199

3.2.2 添加EtherCAT采集设备

1. 在左侧导航栏点击 "采集设备",右键选择 "新建设备"

2. 驱动类型选择 "EtherCAT Master"

3. 输入设备名称(如:Servo_Driver_1)

4. 配置网口参数:选择连接EtherCAT从站的网口(Ethernet1或Ethernet2)

5. 输入从站地址(Slave ID,如:1)

3.2.3 添加数据标签

根据扫描获取的点位信息,在网关设备下添加需要采集的数据标签。标签配置如下:

读取数据标签(SM3 inputs → 网关读取设备数据):

标签名称 数据类型 地址(十进制) 读写控制 说明
Actual_Pressure Float 23 实际压力值(0x17)
Pressure_Sensor1 Float 27 压力传感器1(0x1B)
Actual_Position Float 35 实际位置(0x23)
Control_Mode Byte 39 控制模式(0x27)
Error_Number Word 40 错误代码(0x28)

写入数据标签(SM2 outputs → 网关写入设备数据):

标签名称 数据类型 地址(十进制) 读写控制 说明
Target_Pressure Float 0 目标压力设定(0x00)
Target_Position Float 4 目标位置设定(0x04)
Control_Mode_Set Byte 16 控制模式设定(0x10)

地址计算说明:网关中填写的地址为十进制。例如扫描结果中 [0x0023.0] 对应十进制地址 35(0x23 = 35)。对于inputs区的地址,网关中直接填写十进制值即可。

3.2.4 下载工程并验证

1. 点击工具栏 "下载" 按钮,将工程下载到网关

2. 下载完成后,点击 "查看数据"

3. 在弹出窗口中检查各标签的"更新时间"是否为当前时间,状态是否为"Good"

4. 确认数据读取正常后,进行下一步转发配置

3.3 配置Modbus协议转发数据

3.3.1 启用Modbus Slave服务

网关采集到EtherCAT设备数据后,需要配置Modbus Slave服务,将数据以Modbus协议格式提供给上位机系统。

在左侧导航栏点击 "服务" → "Modbus Slave"

配置Modbus Unit参数:

- 站号(Unit ID):1(可根据SCADA系统要求修改)

- 启用:Yes

- 字节顺序:根据上位机系统要求选择(默认1234,Float数据需注意)

配置Modbus TCP参数:

- 启用:Yes

- 侦听端口:502(Modbus标准端口)

3.3.2 添加转发数据映射

将采集的EtherCAT数据标签映射到Modbus寄存器地址,供上位机读取:

4X Holding Registers(保持寄存器,可读写):

Modbus地址 标签名称 数据类型 说明
40001 Target_Pressure Float 目标压力设定值(可写)
40003 Target_Position Float 目标位置设定值(可写)
40005 Control_Mode_Set Word 控制模式设定(可写)
40010 Actual_Pressure Float 实际压力反馈
40012 Actual_Position Float 实际位置反馈

3X Analog Inputs(输入寄存器,只读):

Modbus地址 标签名称 数据类型 说明
30001 Pressure_Sensor1 Float 压力传感器1
30003 Error_Number Word 设备错误代码

0X Digital Coils(数字量线圈,可读写):

Modbus地址 标签名称 数据类型 说明
00001 Device_Status Boolean 设备在线状态

添加方法:点击对应数据区(0X/3X/4X),点击 "添加" 按钮,在弹出的标签选择对话框中勾选需要转发的标签,点击OK保存。

3.3.3 保存并下载工程

1. 点击工具栏 "保存" 按钮保存工程

2. 点击 "下载" 按钮将配置下载到网关

3. 下载完成后,网关自动运行,开始采集EtherCAT数据并通过Modbus协议转发

3.4 数据测试与验证

3.4.1 使用Modbus Poll测试读取

在正式接入SCADA系统前,建议使用Modbus Poll软件进行数据验证:

在工控电脑上安装并打开 Modbus Poll 软件

创建新连接:

- 连接类型:Modbus TCP/IP

- IP地址:网关IP(如192.168.1.199)

- 端口:502

- 站号:1

读取4X区数据(功能码03 - Read Holding Registers):

- 起始地址:40001

- 数量:20

- 验证是否能读取到Target_Pressure、Actual_Position等数据

读取3X区数据(功能码04 - Read Input Registers):

- 起始地址:30001

- 数量:10

- 验证Pressure_Sensor1、Error_Number等数据

写入4X区数据(测试下发控制,功能码06或16):

- 向40001写入新的Target_Pressure值

- 在VFBOX Studio中查看数据是否成功写入EtherCAT设备

3.4.2 使用SCADA系统验证

1. 在SCADA系统中配置Modbus TCP驱动

2. 添加数据点,对应网关中的Modbus地址(如40001、30001等)

3. 观察数据刷新情况,确认数据采集周期满足工艺要求(通常1秒以内)

4. 测试写入功能:通过SCADA画面修改设定值,观察EtherCAT设备是否响应

四、高级配置(可选)

4.1 用户标签数据运算

如需对采集的数据进行二次处理(如单位换算、报警判断、数据平滑等),可使用网关的"用户标签"功能。

示例:压力值单位换算(bar → MPa)

1. 点击左侧导航栏 "用户标签" → "新建标签"

2. 标签名称:Pressure_MPa

3. 数据类型:Float

4. 表达式:Actual_Pressure / 10

5. 点击校验,确认表达式正确

6. 将Pressure_MPa添加到Modbus转发区(如40020)

支持的运算操作:

运算类型 操作符/函数
算术运算 + - * / % ^(加、减、乘、除、求余、乘方)
逻辑运算 && || Not(x)(与、或、非)
比较运算 > >= < <= == !=(大于、小于、等于等)
条件运算 IF(x,y,z)(条件判断)
数学函数 abs、sin、cos、log、sqrt、pow等
位操作 bit(x,y)(取指定bit位)

4.2 数据触发写入模式

对于需要控制写入的EtherCAT设备,为避免频繁写入造成设备负担,可设置触发模式:

写入模式 说明 适用场景
Cycle 周期写入,持续不断地向设备写入数据 需要实时同步的场合
Trigger-datachange 数据变化时写入,数值未变化则不写(推荐) 一般控制场合,减少通信负载
Trigger 触发时写入,无论数值是否变化都写一次 按键触发、事件控制场合

设置方法:点击采集设备,打开"设备属性",找到写入模式选项,选择适合的模式后下载工程。

4.3 工程加密保护

项目交付前,建议对工程进行加密,防止配置参数被非法修改或盗用:

1. 点击菜单 "工程" → "设置工程密码"

2. 输入密码并确认(建议8位以上,包含字母和数字)

3. 加密后,无正确密码无法对网关进行上传/下载操作

4. 请妥善保管密码,密码丢失将无法恢复工程

⚠ 重要提示:调试过程中建议暂不加密,待项目验收后再启用加密功能。

五、项目总结

5.1 实现功能

✅ 成功采集EtherCAT从站设备的实时数据(位置、压力、状态、错误代码等)

✅ 将EtherCAT数据转换为Modbus TCP协议,SCADA/MES系统可正常读取

✅ 支持双向通信:上位机通过Modbus写入控制指令,网关转发至EtherCAT设备

✅ 数据传输稳定,刷新周期可达毫秒级,满足实时控制需求

✅ 支持用户标签二次运算,实现数据换算和逻辑处理

5.2 技术要点汇总

项目 说明
采集协议 EtherCAT Master(主站模式)
转发协议 Modbus Slave TCP/RTU(从站模式)
数据映射路径 EtherCAT PDO地址 → 网关标签 → Modbus寄存器
通信接口 网口(Ethernet1/2)
默认扫描周期 1000ms(可在设备属性中调整)
支持数据类型 Boolean、Byte、Word、Float、Double
最大采集点位 256点(根据网关型号)
网关型号 VB303-2400#256-K-1

5.3 常见问题处理

问题 解决方案
网关无法扫描到EtherCAT从站 1. 检查网线连接,确保从站IN口连接正确
2. 确认已安装npcap驱动(位于VFBOX Studio安装目录Others文件夹)
3. 检查从站是否已上电并进入OP状态
Modbus Poll读取数据不正确 1. 检查字节顺序设置(Float数据需确认1234/4321/3412/2143)
2. 确认Modbus地址与网关配置一致
3. 检查数据类型是否匹配(Float占2个寄存器地址)
如何修改网关IP地址 点击菜单"工具"→"配置网络",输入新的IP地址、子网掩码,点击设置后网关自动重启
下载工程提示Password错误 检查工程设备类型是否与网关实际型号一致,需保持完全匹配
采集数据状态显示Bad 1. 检查EtherCAT从站连接状态
2. 确认从站地址配置正确
3. 使用vbtrace命令查看详细通信日志
No Space错误 删除工程目录下无关文件,确保工程文件夹内只包含必要配置文件

六、附录

6.1 网关默认参数

参数项 默认值
Ethernet1 IP地址 192.168.1.199
Ethernet2 IP地址 192.168.2.199
串口波特率 9600, 8位数据位, 无校验, 1位停止位
工作电源 DC 9-36V(推荐24V)
Modbus TCP端口 502
默认扫描间隔 1000ms
通信超时 2000ms
重试次数 3次

6.2 相关文档与资源

《VFBOX网关采集和转发数据使用说明 v2.6.1》—— 网关完整使用手册

《采集EtherCAT设备-转成Modbus协议数据 V2.3》—— EtherCAT专项配置指南

《VFBOX Studio软件安装指南》—— 软件安装与初始配置

官网技术文档中心:提供各协议驱动的详细配置说明和FAQ

6.3 网关型号速查表

VFBOX网关型号格式:ABC-EFGH#I-K-L

字段 含义 可选值
ABC 硬件批次 VB301 / VB302 / VB303
EFGH 硬件接口 1100(1网1串) / 1200(1网2串) / 2400(2网4串) / 1110(1网1串+4G)
I 采集点位数 32 / 64 / 128 / 256 / 512 / 1024 / 000(无限点)
K 采集协议 K=EtherCAT主站 / 0=所有协议 / 1=Modbus等 / 6=西门子PLC
L 转发协议 1=Modbus / 2=Profinet / 6=MQTT / I=OPC UA等

本项目选型示例:VB303-2400#256-K-1 = VB303批次 + 2网4串硬件 + 256点位 + EtherCAT采集 + Modbus转发

相关推荐