边缘网关用户手册
目录
简介
边缘网关是一个集成了数据采集、边缘计算、数据转发等功能的边缘设备管理平台。本用户手册旨在帮助用户快速了解和使用边缘网关的各项功能。
图 1: 边缘计算数据流程图
主要功能
- 多协议数据采集:支持 Modbus、BACnet、OPC UA、S7、EtherNet/IP、FINS、SNMP、IEC 104、DL/T645、Mitsubishi MC、Profinet IO、KNXnet/IP 等工业协议
- 边缘计算:支持阈值告警、状态管理、窗口计算等边缘智能分析
- 数据转发:支持 MQTT、OPC UA 等多种北向数据转发方式
- 设备管理:支持设备的添加、编辑、删除和监控
- 系统监控:提供系统运行状态、资源使用情况的监控
- 高可用:连接状态机、指数退避、冷却期、采集健康检测
系统架构
边缘网关采用分层架构设计,主要包括以下层次:
- 数据采集层:负责从各种设备和系统中采集数据
- 数据处理层:负责数据的清洗、转换和边缘计算
- 数据转发层:负责将处理后的数据转发到云端或其他系统
- 应用服务层:提供用户界面和 API 接口
- 系统管理层:负责系统的配置、监控和维护
系统数据流:
设备 → 数据采集 → 数据处理 → 边缘计算 → 数据转发 → 云端/本地系统
连接管理架构
所有驱动统一使用公共连接管理器 (ConnectionManager),具备以下能力:
- 状态机管理:Disconnected → Connecting → Connected → Retrying → Dead
- 指数退避:失败重连采用指数退避算法,避免设备过载
- 冷却期策略:连续失败后进入冷却期,防止持续打设备
- 采集健康检测:通过采集成功/失败判断连接健康状态
- 每日清零:每日零点自动重置重试计数
安装指南
系统要求
硬件要求
| 配置项 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 1GHz 单核 | 双核 1.5GHz+ |
| 内存 | 128MB | 512MB+ |
| 存储 | 1GB | 4GB+ |
| 网络 | 10/100Mbps 以太网 | 100/1000Mbps 以太网 |
| 串口 | 可选(RTU 协议需要) | 可选 |
软件要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Linux (Ubuntu 20.04+、Debian 10+、CentOS 7+)、Windows 10+ |
| 架构 | x86_64、ARMv7、ARM64 |
| 浏览器 | Chrome 80+、Firefox 75+、Safari 13+、Edge 80+ |
安装方式
方式一:二进制包安装(推荐)
- 下载安装包
- 从官方发布页下载对应平台的二进制包
- 文件名格式:
edgex_<version>_<os>_<arch>.tar.gz
- 解压安装
# 解压到 /opt 目录 sudo tar -xzf edgex_<version>_linux_amd64.tar.gz -C /opt/ # 创建软链接 sudo ln -s /opt/edgex_<version> /opt/edgex - 验证安装
/opt/edgex/edgex --version
方式二:Docker 安装
- 拉取镜像
docker pull anviod/edgex:latest - 启动容器
docker run -d \ --name edgex \ -p 8082:8082 \ -p 47808:47808/udp \ -v /path/to/conf:/opt/edgex/conf \ -v /path/to/data:/opt/edgex/data \ --restart unless-stopped \ anviod/edgex:latest
方式三:源码编译安装
- 前置条件
- Go 1.21+
- Node.js 16+(编译前端)
- Git
- 获取源码
git clone https://github.com/anviod/edgex.git cd edgex - 编译后端
go mod tidy go build -o edgex cmd/main.go - 编译前端
cd ui npm install npm run build cd .. - 运行
./edgex
部署流程
标准部署流程
第一步:环境准备
- 检查系统环境
# 检查操作系统版本 cat /etc/os-release # 检查内存 free -h # 检查磁盘空间 df -h - 开放防火墙端口
# HTTP 管理端口 sudo ufw allow 8082/tcp # BACnet UDP 端口(如使用 BACnet) sudo ufw allow 47808/udp # Modbus TCP 端口(如使用 Modbus) sudo ufw allow 502/tcp
第二步:配置文件准备
- 创建配置目录
sudo mkdir -p /etc/edgex/conf sudo mkdir -p /var/lib/edgex/data - 初始化配置
# 从示例配置复制 cp -r conf/* /etc/edgex/conf/ - 修改核心配置
server.yaml:HTTP 服务器端口、静态资源路径system.yaml:系统级网络配置users.yaml:用户账号管理
第三步:服务部署
- 创建 systemd 服务
sudo tee /etc/systemd/system/edgex.service > /dev/null <<EOF [Unit] Description=EdgeX Industrial Gateway After=network.target [Service] Type=simple User=edgex WorkingDirectory=/opt/edgex ExecStart=/opt/edgex/edgex -conf /etc/edgex/conf Restart=always RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF - 创建运行用户
sudo useradd -r -s /bin/false edgex sudo chown -R edgex:edgex /var/lib/edgex - 启动服务
sudo systemctl daemon-reload sudo systemctl enable edgex sudo systemctl start edgex - 验证服务状态
sudo systemctl status edgex sudo journalctl -u edgex -f
第四步:初始配置
- 访问管理界面
- 打开浏览器访问:
http://<设备IP>:8082 - 默认账号:
admin/passwd@123
- 打开浏览器访问:
- 修改默认密码
- 进入「系统设置」→「用户管理」
- 选择 admin 用户,修改密码
- 配置网络
- 进入「系统设置」→「网络配置」
- 根据现场环境配置 IP 地址、网关、DNS
第五步:设备接入
- 添加通道
- 进入「南向采集」→「通道管理」
- 点击「添加通道」
- 选择协议类型(Modbus、BACnet、OPC UA、S7、EtherNet/IP、FINS、SNMP、IEC 104、DL/T645、Mitsubishi MC、Profinet IO、KNXnet/IP 等)
- 配置通道参数
- 添加设备
- 在通道下添加设备
- 配置设备地址、端口、采集周期等参数
- 扫描点位
- 进入设备详情页
- 点击「扫描点位」自动发现设备数据点
- 勾选需要采集的点位并添加
第六步:数据转发
- 配置北向通道
- 进入「北向数据」→「通道管理」
- 添加 MQTT/OPC UA 北向通道
- 配置连接参数
- 配置数据映射
- 选择需要转发的点位
- 配置数据格式和转换规则
- 设置转发频率
- 测试验证
- 点击「测试连接」
- 检查数据是否正常上报
高可用部署(可选)
多节点部署方案,实现故障自动接管:
- 部署多个边缘网关节点
- 配置节点间同步通信
- 设置设备访问模式(Exclusive/Shared/Lease)
- 配置租约超时时间
详细方案请参考 开发计划 - 多节点同步
使用方式
快速上手指南
第一次使用
- 登录系统
- 打开浏览器,输入网关 IP 地址和端口
- 输入用户名和密码登录
- 添加第一个设备
南向采集 → 通道管理 → 添加通道 → 选择协议 → 填写参数 → 保存 → 设备列表 → 添加设备 → 填写设备信息 → 保存 → 点位列表 → 扫描点位 → 勾选点位 → 添加选定点位 - 查看实时数据
- 进入「设备详情」→「实时数据」
- 查看点位当前值、质量状态、更新时间
- 配置边缘计算规则
- 进入「边缘计算」→「规则管理」
- 添加规则,配置触发条件和动作
日常操作
设备管理
- 添加设备:通道 → 设备列表 → 添加设备
- 编辑设备:设备列表 → 编辑 → 修改参数 → 保存
- 删除设备:设备列表 → 删除 → 确认删除
- 设备启停:设备列表 → 启用/禁用
点位管理
- 批量添加:扫描点位 → 批量选择 → 添加
- 手动添加:点位列表 → 添加点位 → 填写地址和类型
- 点位分组:支持按功能、区域等分组管理
- 数据监控:实时值、历史趋势、质量状态
数据查询
- 实时数据:设备详情 → 实时数据
- 历史数据:数据分析 → 历史趋势
- 数据导出:支持 CSV 格式导出
Web 界面说明
主要菜单结构
首页
├── 南向采集
│ ├── 通道管理
│ ├── 设备监控
│ └── 数据查询
├── 边缘计算
│ ├── 规则管理
│ ├── 运行日志
│ └── 统计分析
├── 北向数据
│ ├── 通道管理
│ ├── 数据映射
│ └── 传输监控
├── 系统管理
│ ├── 用户管理
│ ├── 系统设置
│ └── 日志查询
南向采集
支持的协议
完整驱动矩阵与测试覆盖见 设备驱动
| 协议 | 注册名 | 状态 | 说明 |
|---|---|---|---|
| Modbus TCP / RTU / RTU Over TCP | modbus-tcp, modbus-rtu, modbus-rtu-over-tcp |
✅ 生产就绪 | 智能 MTU 探测、指数退避、24h 冷却期 |
| BACnet IP | bacnet-ip |
✅ 生产就绪 | 设备发现、对象扫描、批量读失败自动回退 |
| OPC UA 客户端 | opc-ua |
✅ 生产就绪 | 订阅与监控、Scan/ScanObjects、断线自动重连 |
| Siemens S7 | s7 |
✅ 生产就绪 | S7-200Smart/1200/1500/300/400 全系列 |
| EtherNet/IP (ODVA) | ethernet-ip |
✅ 生产就绪 | Rockwell PLC;Tag 地址格式批量读取 |
| Omron FINS (TCP/UDP) | omron-fins |
✅ 生产就绪 | CIO/D/W/H/EM 等区域;TCP/UDP 双模式 |
| SNMP v2c/v3 | snmp |
✅ 生产就绪 | Community / USM;OID 批量采集;ScanObjects |
| IEC 60870-5-104 | iec60870-5-104 |
✅ M1 已交付 | 总召唤、自发上报、单点遥控 |
| DL/T645-2007 | dlt645 |
✅ 已实现 | 电表协议;串口/TCP 双模式 |
| Mitsubishi SLMP | mitsubishi-slmp |
✅ 生产就绪 | MC Protocol |
| Profinet IO | profinet-io |
✅ 已实现 | DCP/RPC I/O 模块读写;本地网口绑定 |
| KNXnet/IP | knxnet-ip |
✅ 生产就绪 | 网关发现;组地址读写;TCP/UDP 双模式 |
连接健康检测
所有驱动均集成采集健康检测机制,无需独立心跳:
- 检测原理:采集成功 = 连接健康,采集失败 = 连接异常
- 触发条件:连续采集失败达到阈值时触发重连
- 保护机制:指数退避 + 冷却期,防止设备过载
各驱动失败阈值:
| 驱动/型号 | 最大失败次数 | 默认采集周期 |
|---|---|---|
| S7-200Smart | 3 次 | 60 秒 |
| S7-1200/1500 | 5 次 | 10 秒 |
| Modbus | 5 次 | 可配置 |
| EtherNet/IP | 5 次 | 可配置 |
| OPC UA | 5 次 | 订阅回调触发 |
| FINS | 5 次 | 可配置 |
| SNMP | 5 次 | 可配置 |
| DL/T645 | 5 次 | 可配置 |
| Profinet IO | 5 次 | 可配置 |
| KNXnet/IP | 5 次 | 可配置 |
设备管理
- 添加设备:
- 进入「设备管理」页面
- 点击「添加设备」按钮
- 选择协议类型并填写设备信息
- 点击「保存」完成添加
- 编辑设备:
- 在设备列表中找到需要编辑的设备
- 点击「编辑」按钮
- 修改设备信息
- 点击「保存」完成编辑
- 删除设备:
- 在设备列表中找到需要删除的设备
- 点击「删除」按钮
- 确认删除操作
数据点管理
- 自动发现:支持自动发现设备的数据点
- 手动添加:支持手动添加数据点
- 数据点映射:支持数据点的重命名和类型映射
- 采集频率:支持设置数据点的采集频率
北向数据共享
支持的转发方式
- MQTT:支持将数据发布到 MQTT broker
- OPC UA 服务端:支持作为 OPC UA 服务器暴露数据
- Sparkplug B:支持 NBIRTH, NDEATH, DDATA 消息规范
- 本地存储:支持将数据存储到本地数据库
配置步骤
- 添加转发通道:
- 进入「北向数据」页面
- 点击「添加通道」按钮
- 选择转发类型并填写配置信息
- 点击「保存」完成添加
- 配置数据模板:
- 选择需要转发的数据点
- 配置数据格式和转换规则
- 设置转发条件和频率
- 测试连接:
- 点击「测试连接」按钮
- 检查连接状态和数据传输情况
边缘计算
概念
边缘计算是指在靠近数据源的边缘设备上进行数据处理和分析的技术。通过边缘计算,可以:
- 降低延迟:数据处理在本地进行,减少网络传输时间
- 节省带宽:只将有价值的数据传输到云端
- 提高可靠性:即使在网络中断的情况下也能正常工作
- 增强安全性:敏感数据可以在本地处理,减少数据泄露风险
规则类型
1. 阈值规则(Threshold)
基于设定的阈值条件触发动作,支持:
- 数值比较(>、<、≥、≤、==、!=)
-
逻辑组合(&&、 、!) - 位操作(bitget、bitset、bitand、bitor)
2. 计算规则(Calculation)
对输入数据进行计算处理,支持:
- 数学运算(+、-、*、/、%、^)
- 函数调用
- 复杂表达式
3. 窗口规则(Window)
基于时间窗口或计数窗口进行统计分析,支持:
- 滑动窗口
- 跳跃窗口
- 统计函数(平均值、最大值、最小值、总和等)
4. 状态规则(State)
基于持续状态进行判断,支持:
- 持续时间条件
- 连续次数条件
- 状态变化触发
动作类型
1. 设备控制(device_control)
控制设备的开关、调节等操作,支持:
- 单点控制
- 批量控制
- 表达式计算值
2. 日志记录(log)
记录规则触发情况和相关数据
3. 工作流动作
- 序列执行(sequence):按顺序执行多个动作
- 延迟(delay):延迟指定时间执行动作
- 条件检查(check):根据条件决定是否继续执行
配置步骤
- 添加规则:
- 进入「边缘计算」页面
- 点击「添加规则」按钮
- 选择规则类型并填写规则信息
- 配置触发条件和动作
- 点击「保存」完成添加
- 编辑规则:
- 在规则列表中找到需要编辑的规则
- 点击「编辑」按钮
- 修改规则信息
- 点击「保存」完成编辑
- 启用/禁用规则:
- 在规则列表中找到需要操作的规则
- 点击「启用」或「禁用」按钮
- 测试规则:
- 点击「测试」按钮
- 输入测试数据
- 查看规则执行结果
系统管理
用户管理
- 添加用户:创建新的系统用户
- 编辑用户:修改用户信息和权限
- 删除用户:删除不需要的用户
- 权限管理:设置用户的操作权限
系统配置
- 网络配置:配置网络参数和连接
- 系统参数:配置系统运行参数
- 存储配置:配置数据存储参数
- 安全配置:配置系统安全参数
系统监控
- 资源监控:监控 CPU、内存、磁盘使用情况
- 服务状态:监控系统服务的运行状态
- 网络状态:监控网络连接和数据传输情况
- 日志管理:查看系统日志和操作记录
备份与恢复
- 数据备份:备份系统配置和数据
- 配置导出:导出系统配置
- 恢复系统:从备份恢复系统
最佳实践
设备接入最佳实践
1. 通道规划
原则:按网络分区和协议类型规划通道
- 同一协议、同一网段的设备尽量放在同一通道
- 不同协议分通道管理,便于维护
- 设备数量较多时,按功能或区域分组
示例:
通道1: Modbus-TCP-车间A (192.168.1.0/24)
- 设备1: PLC-01 (192.168.1.10)
- 设备2: PLC-02 (192.168.1.11)
通道2: BACnet-楼宇B (192.168.2.0/24)
- 设备1: BAC-01 (192.168.2.100)
- 设备2: BAC-02 (192.168.2.101)
2. 采集周期设置
原则:根据设备能力和业务需求合理设置
| 场景 | 推荐采集周期 | 说明 |
|---|---|---|
| 快速变化信号(转速、压力) | 1~5 秒 | 需要高实时性 |
| 慢速变化信号(温度、湿度) | 10~30 秒 | 变化缓慢,无需高频 |
| 状态监控(运行/停止) | 5~10 秒 | 状态变化不频繁 |
| 累计量(电能、流量) | 30~60 秒 | 避免太频繁影响累计精度 |
S7-200Smart 特别注意:
- 采集周期建议 ≥ 10 秒(默认 60 秒)
- 最大失败次数 3 次(保护弱 PLC)
3. 点位命名规范
原则:统一命名,便于管理和识别
命名格式:区域_设备_类型_序号
示例:
workshopA_plc01_temp_01buildingB_bac01_humidity_02energy_meter01_power_total
4. 批量读取优化
原则:尽量使用批量读取,减少通信次数
- 连续地址的点位尽量放在同一个批量读取中
- 合理利用 MTU 探测功能,自动优化批量大小
- 间隔较远的点位分批次读取
边缘计算最佳实践
1. 规则设计原则
- 简单优先:能用简单规则实现的不要用复杂规则
- 避免死循环:注意规则之间的依赖关系,避免循环触发
- 性能考虑:复杂计算规则注意执行频率,避免影响系统性能
2. 阈值设置建议
- 留有余量:阈值设置考虑一定的余量,避免频繁震荡
- 滞回设置:使用滞回阈值,避免临界值附近频繁触发
- 分级告警:设置多级阈值(预警、告警、严重)
3. 规则测试
- 逐步启用:先测试再启用,避免影响正常运行
- 日志观察:启用后观察一段时间运行日志
- 性能监控:注意规则执行时间和资源占用
系统运维最佳实践
1. 定期维护
- 每周:检查系统日志,排查异常
- 每月:备份配置和数据,检查磁盘空间
- 每季度:检查设备连接状态,清理无用配置
2. 故障处理流程
发现故障 → 查看日志 → 定位问题 → 处理修复 → 验证恢复 → 记录总结
3. 安全建议
- 立即修改默认密码
- 使用强密码策略
- 定期更换密码
- 限制管理界面访问 IP
- 启用 HTTPS(生产环境)
性能优化最佳实践
1. 采集性能优化
- 合理设置采集周期,避免过高频率
- 启用批量读取,减少通信次数
- 利用智能采集优化功能(RTT/MTU/Gap)
2. 存储优化
- 配置合理的数据保留策略
- 定期清理历史数据
- 使用高效的存储格式
3. 网络优化
- 设备与网关尽量在同一网段
- 保证网络质量,减少丢包
- 合理规划网络拓扑
故障排查
常见问题
1. 设备连接失败
可能原因:
- 设备电源和网络连接问题
- 设备地址和端口配置错误
- 设备未正常运行
- 防火墙阻止了连接
排查步骤:
# 1. 测试网络连通性
ping <设备IP>
# 2. 测试端口连通性
telnet <设备IP> <端口>
# 或
nc -zv <设备IP> <端口>
# 3. 检查网关日志
journalctl -u edgex -f
解决方案:
- 检查设备电源和网线
- 确认设备地址和端口配置正确
- 检查防火墙设置
- 确认设备协议版本兼容性
2. 数据采集异常
可能原因:
- 设备通信状态不稳定
- 数据点配置错误(地址、类型)
- 采集频率设置过高
- 设备负载过重
排查步骤:
- 检查设备连接状态
- 查看采集质量状态
- 检查点位配置是否正确
- 查看系统日志中的错误信息
解决方案:
- 调整采集周期
- 核对点位地址和数据类型
- 降低采集频率
- 检查设备负载情况
3. 规则执行失败
可能原因:
- 规则条件配置错误
- 数据源状态异常
- 动作配置错误
- 表达式语法错误
排查步骤:
- 查看规则运行日志
- 检查数据源状态
- 验证规则表达式
- 测试动作执行
解决方案:
- 修正规则条件配置
- 检查数据源连接
- 修正动作配置
- 使用测试功能验证规则
4. 数据转发失败
可能原因:
- 网络连接问题
- 转发目标配置错误
- 数据格式配置错误
- 权限不足
排查步骤:
- 检查网络连通性
- 验证转发目标配置
- 检查数据格式配置
- 查看传输日志
解决方案:
- 检查网络连接
- 修正目标配置
- 验证数据格式
- 检查认证信息
诊断工具
- Ping 测试:测试网络连接
- 设备扫描:扫描可用设备
- 日志查看:查看系统和应用日志
- 性能分析:分析系统性能问题
技术支持
- 在线文档:访问官方文档获取帮助
- 问题反馈:通过 GitHub Issues 提交问题
- 社区支持:参与技术论坛讨论
附录
术语表
| 术语 | 解释 |
|---|---|
| 边缘计算 | 在靠近数据源的边缘设备上进行数据处理和分析的技术 |
| 南向采集 | 从设备采集数据的过程 |
| 北向转发 | 将数据发送到云端或其他系统的过程 |
| 规则引擎 | 执行边缘计算规则的核心组件 |
| 数据管道 | 处理和传输数据的通道 |
| 阈值规则 | 基于设定阈值触发动作的规则 |
| 状态规则 | 基于持续状态判断的规则 |
| 窗口规则 | 基于时间或计数窗口的规则 |
| 指数退避 | 失败重试时逐渐增加等待时间的算法 |
| 冷却期 | 连续失败后暂停重试的时间段 |
| 半开探测 | 冷却期后发送轻量请求探测设备是否恢复 |
版本历史
| 版本 | 日期 | 变更内容 |
|---|---|---|
| v1.1 | 2026-06 | 新增安装指南、部署流程、最佳实践章节;更新驱动支持矩阵 |
| v1.0 | 2026-03-27 | 初始版本 |