VFBOX网关项目案例_EtherCAT转Modbus协议转换
一、项目概述
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口连接正确 |
|
Modbus Poll读取数据不正确 |
1. 检查字节顺序设置(Float数据需确认1234/4321/3412/2143) |
|
如何修改网关IP地址 |
点击菜单"工具"→"配置网络",输入新的IP地址、子网掩码,点击设置后网关自动重启 |
|
下载工程提示Password错误 |
检查工程设备类型是否与网关实际型号一致,需保持完全匹配 |
|
采集数据状态显示Bad |
1. 检查EtherCAT从站连接状态 |
|
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.3 相关文档与资源
- 《VFBOX网关采集和转发数据使用说明 v2.6.1》—— 网关完整使用手册
- 《采集EtherCAT设备-转成Modbus协议数据 V2.3》—— EtherCAT专项配置指南
- 《VFBOX Studio软件安装指南》—— 软件安装与初始配置
- 官网技术文档中心:提供各协议驱动的详细配置说明和FAQ
6.4 网关型号速查表
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转发

浙公网安备 33010602011771号