一、项目概述
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转发
202