某智能制造工厂的生产线采用EtherCAT协议的控制器(如伺服驱动器、I/O模块等),而工厂的上位机监控系统(SCADA)和MES工控平台仅支持Modbus TCP/RTU协议。为实现生产线数据与上层系统的无缝对接,需要部署协议转换网关,将EtherCAT设备数据转换为Modbus协议数据。
整个系统的网络架构如下:
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ SCADA系统 │ │ VFBOX网关 │ │ EtherCAT从站 │
│ (Modbus主站) │◄───────►│ (协议转换) │◄───────►│ (伺服/IO模块) │
│ MES平台 │ Modbus │ │ EtherCAT│ │
└─────────────────┘ TCP └──────────────┘ 主站 └─────────────────┘
|
序号 |
设备名称 |
型号/规格 |
数量 |
说明 |
|
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个 |
网关供电 |
本项目选用 VB303-2400#256-K-1 型号网关,各字段含义如下:
|
字段 |
含义 |
本项目配置 |
|
VB303 |
硬件批次 |
VB303系列 |
|
2400 |
硬件接口:2网口4串口 |
Ethernet1接EtherCAT,Ethernet2接SCADA |
|
#256 |
最大采集256个数据点位 |
满足产线数据量需求 |
|
K |
采集协议:EtherCAT主站 |
采集EtherCAT从站数据 |
|
1 |
转发协议:Modbus |
Modbus TCP从站转发 |
在配置网关采集EtherCAT数据前,必须先获取从站设备的PDO(过程数据对象)映射信息,包括数据地址、数据类型和点位名称。
示例扫描结果(伺服驱动器)
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 ← 错误代码
关键信息解读:
根据扫描获取的点位信息,在网关设备下添加需要采集的数据标签。标签配置如下:
读取数据标签(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区的地址,网关中直接填写十进制值即可。
网关采集到EtherCAT设备数据后,需要配置Modbus Slave服务,将数据以Modbus协议格式提供给上位机系统。
将采集的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保存。
在正式接入SCADA系统前,建议使用Modbus Poll软件进行数据验证:
如需对采集的数据进行二次处理(如单位换算、报警判断、数据平滑等),可使用网关的"用户标签"功能。
示例:压力值单位换算(bar → MPa)
支持的运算操作:
|
运算类型 |
操作符/函数 |
|
算术运算 |
+ - * / % ^(加、减、乘、除、求余、乘方) |
|
逻辑运算 |
&& || Not(x)(与、或、非) |
|
比较运算 |
> >= < <= == !=(大于、小于、等于等) |
|
条件运算 |
IF(x,y,z)(条件判断) |
|
数学函数 |
abs、sin、cos、log、sqrt、pow等 |
|
位操作 |
bit(x,y)(取指定bit位) |
对于需要控制写入的EtherCAT设备,为避免频繁写入造成设备负担,可设置触发模式:
|
写入模式 |
说明 |
适用场景 |
|
Cycle |
周期写入,持续不断地向设备写入数据 |
需要实时同步的场合 |
|
Trigger-datachange |
数据变化时写入,数值未变化则不写(推荐) |
一般控制场合,减少通信负载 |
|
Trigger |
触发时写入,无论数值是否变化都写一次 |
按键触发、事件控制场合 |
设置方法:点击采集设备,打开"设备属性",找到写入模式选项,选择适合的模式后下载工程。
项目交付前,建议对工程进行加密,防止配置参数被非法修改或盗用:
⚠ 重要提示:调试过程中建议暂不加密,待项目验收后再启用加密功能。
✅ 成功采集EtherCAT从站设备的实时数据(位置、压力、状态、错误代码等)
✅ 将EtherCAT数据转换为Modbus TCP协议,SCADA/MES系统可正常读取
✅ 支持双向通信:上位机通过Modbus写入控制指令,网关转发至EtherCAT设备
✅ 数据传输稳定,刷新周期可达毫秒级,满足实时控制需求
✅ 支持用户标签二次运算,实现数据换算和逻辑处理
|
项目 |
说明 |
|
采集协议 |
EtherCAT Master(主站模式) |
|
转发协议 |
Modbus Slave TCP/RTU(从站模式) |
|
数据映射路径 |
EtherCAT PDO地址 → 网关标签 → Modbus寄存器 |
|
通信接口 |
网口(Ethernet1/2) |
|
默认扫描周期 |
1000ms(可在设备属性中调整) |
|
支持数据类型 |
Boolean、Byte、Word、Float、Double等 |
|
最大采集点位 |
256点(根据网关型号) |
|
网关型号 |
VB303-2400#256-K-1 |
|
问题 |
解决方案 |
|
网关无法扫描到EtherCAT从站 |
1. 检查网线连接,确保从站IN口连接正确 |
|
Modbus Poll读取数据不正确 |
1. 检查字节顺序设置(Float数据需确认1234/4321/3412/2143) |
|
如何修改网关IP地址 |
点击菜单"工具"→"配置网络",输入新的IP地址、子网掩码,点击设置后网关自动重启 |
|
下载工程提示Password错误 |
检查工程设备类型是否与网关实际型号一致,需保持完全匹配 |
|
采集数据状态显示Bad |
1. 检查EtherCAT从站连接状态 |
|
No Space错误 |
删除工程目录下无关文件,确保工程文件夹内只包含必要配置文件 |
|
参数项 |
默认值 |
|
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次 |
|
项目 |
联系方式 |
|
公司名称 |
上海仰科信息科技有限公司 |
|
技术支持电话 |
021-58207907 |
|
技术支持邮箱 |
support@onker.cn |
|
官方网站 |
www.onker.cn |
|
软件下载 |
官网下载中心 → 编号1001(VFBOX Studio) |
|
公司地址 |
上海市浦东新区张江高科园区 |
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转发
—— 文档结束 ——