edgex

module
v0.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2026 License: MIT

README

Industrial Edge Gateway

中文文档站点 | English

Edge X(工业边缘网关)是一款轻量级工业边缘计算网关软件,面向制造、能源、楼宇等现场部署。后端采用 Go,管理界面采用 Vue 3 + Vuetify。

产品概览

EdgeX 部署在工业现场,使命是打通 OT 设备 ↔ IT 系统 的数据通道——南向统一接入、边缘就地处理、北向灵活对接,一机完成采集到上报的闭环。功能覆盖南向 12 协议、边缘规则与北向多通道集成,并以工业级 SLA 与 Soak 长稳验证保障现场长期可靠运行。

  • 统一接入:异构 PLC、表计、楼宇与网络设备,一套网关采集
  • 边缘智能:本地规则与派生点位,联动控制、减轻上行
  • 开放集成:对接云平台、SCADA 与企业应用,支持反向写控
  • 工业级稳定:内置指标门控、Soak 长稳回归与 CI 五 gate,SLA 可观测、可验证

能力与指标详见 产品优势;完整说明见 产品说明源码)。

为何叫 EdgeX?

每个工业现场都有一批「还没被接进来」的设备与数据——不同协议、不同年代、不同厂商,各自沉默在 OT 一侧。它们像是一群尚未被发现的潜能:有价值,却还没进入 IT 的视线。

我们把这个未知数叫作 X

Edge 是它们所在的地方:产线旁的控制柜、楼宇的弱电间、站场的边缘机柜——离数据源最近、也最该做决策的位置。X 则是现场的交叉点:多协议在此汇聚,边缘规则在此运行,OT 与 IT 在此第一次真正对话。

如果你熟悉 X 战警,会认出这个隐喻:每个成员能力各异,组合起来才能守护一个复杂世界。EdgeX 的 12 种南向协议也是如此——Modbus、S7、OPC UA……各自施展所长,在边缘组成一支协同团队,把采集、派生计算与北向上报串成闭环。

EdgeX 因此不是两个字母的简单拼接,而是 Edge(边缘)+ X(未知潜能的交叉点):部署在现场侧的那支「X 因子」——让沉默的设备开口说话,让边缘智能成为工业现场的可靠超能力,并以 SLA 与 Soak 长稳验证,把这种能力交付为可观测、可验证的工程承诺。

产品优势

工业级稳定性是 EdgeX 的核心卖点:在功能丰富(12种标准工业协议(覆盖80%工业场景)、规则引擎、北向多通道)的同时,通过内置指标门控、Soak 长稳回归与 CI 五 gate 持续验证 SLA,保障现场长期可靠运行。

能力维度 核心价值 关键指标 / 交付物
质量保障 内置指标门控 + Soak 长稳回归 + CI 五 gate lag P95 <100ms · miss deadline =0 · 万 Tag 压测 · 可观测诊断
南向接入 12 种工业协议,异构 OT 统一采集 设备发现 · 对象扫描 · 批量点位注册
采集调度 10ms 级调度内核,内存影子真源 P99 调度 lag <150ms(≤10k tag,统计 SLA)
边缘智能 规则引擎 + 虚拟影子派生计算 跨设备映射 · 公式聚合 · 本地联动控制
北向集成 多协议对接云平台、SCADA 与企业应用 MQTT · Sparkplug B · OPC UA · EdgeOS

EdgeX 产品能力分层总览:接入 → 采集 → 边缘 → 北向 → 质量层

完整说明见 产品说明 — 产品优势源码)。

工业级 SLA 与稳定性验证

EdgeX SLA 验证闭环:运行时监测 → 可观测 → CI/Soak 验证

统计 SLA(非硬实时 PLC),内置门控与 GET /api/diagnostics/scan-engine 可观测。验证链路覆盖:运行时指标监测诊断 API 可观测CI 五 gate 回归Soak 长稳验证。阈值定义、万 Tag 压测、Soak 长稳与部署建议见 产品说明 — 工业级 SLA源码);运维操作见 用户手册 — 运维诊断与 SLA 监控

轻量灵活部署
项目 规格
交付形态 单二进制 · CGO_ENABLED=0 静态编译 · 无运行时依赖
最低配置 128MB 内存 · 1GB 存储
支持架构 x86_64 · ARMv7 · ARM64
部署方式 裸机 / systemd · 嵌入式设备
功能索引
模块 说明
南向采集 工业协议 · 调度与影子 · 采集优化
北向上报 北向平台集成
虚拟影子 虚拟影子设备
边缘计算 规则与联动
系统管理 Vue 3 管理 UI · JWT / LDAP · 安装向导 · config.db · 日志 · WebSocket 实时推送
质量保障 工业级 SLA · 轻量部署

文档导航

架构图、组件职责与数据路径等运行时细节见 文档站点(本地源码见 docs/):

文档 说明
架构设计 · 源码 ScanEngine 调度内核、ShadowCore、系统架构图
产品说明 · 源码 能力详解、SLA 指标与功能说明
边缘网关架构设计总览 · 源码 边缘网关组件划分与数据流
南向驱动矩阵 · 源码 12 种协议驱动与开发规范
测试验证 · 源码 · test/ 维护 SLA 压测、Soak 与 go test 维护原则

部署流程

1. 编译方式
一键多平台打包(推荐)

项目使用 GoReleaser.goreleaser.yml)统一构建前端与后端,并生成分平台安装包。GoReleaser 内置 nfpm,用于生成 .deb / .rpm 包,无需单独安装 nfpm。

# 安装 GoReleaser(任选其一)
go install github.com/goreleaser/goreleaser/v2@latest
# 或 brew install goreleaser

# 在仓库根目录执行:清理 dist/ 并构建(snapshot 模式,不发布 GitHub Release)
goreleaser release --snapshot --clean

构建流水线before.hooks):

  1. go mod tidy — 整理 Go 依赖
  2. npm run build --prefix ./ui — 构建 Vue 前端至 ui/dist/

交叉编译目标CGO_ENABLED=0,入口 ./cmd/main.go,二进制名 edgex):

平台 架构
Linux amd64、arm64、arm/v7
Windows amd64(不含 arm/arm64)

产物目录 ./dist/

类型 说明
tar.gz edgex-{version}-{os}-{arch}.tar.gz,含二进制、conf/scripts/edgex.serviceedgex.shui/dist/
deb edgex-v{version}-{arch}.deb,安装至 /usr/local/bin/edgex,含 systemd 单元与前端静态资源
rpm edgex-v{version}-{arch}.rpm,安装路径与 deb 相同,适用于 RHEL / CentOS / Fedora 等
SHA256SUMS 各产物校验和
手动编译(开发 / 单平台)
git clone https://github.com/anviod/edgex.git
cd edgex
go mod tidy

# 后端:静态编译,无 CGO 依赖
CGO_ENABLED=0 go build -o edgex ./cmd/main.go

# 前端(生产环境推荐,产物由后端托管 ui/dist)
cd ui && npm install && npm run build && cd ..
2. 系统包安装与升级(Linux)

GitHub Releases 或本地 dist/ 目录获取对应架构的安装包(amd64 / arm64 / arm),文件名形如 edgex-v{version}-{arch}.deb.rpm

包内会安装二进制至 /usr/local/bin/edgex/,注册 systemd 服务 edgex;升级时 preinstall / postinstall 脚本会自动备份并恢复 config/data/,无需手工迁移配置。

Debian / Ubuntu(.deb

首次安装

sudo dpkg -i edgex-v{version}-amd64.deb
sudo apt-get install -f -y    # 若提示依赖缺失

升级(覆盖安装,保留配置,服务自动重启)

sudo dpkg -i edgex-v{new-version}-amd64.deb
# 或
sudo apt install ./edgex-v{new-version}-amd64.deb

卸载

sudo apt remove -y edgex
# 或者
dpkg --remove --force-remove-reinstreq edgex
dpkg -r  edgex
RHEL / CentOS / Fedora(.rpm

首次安装

sudo rpm -ivh edgex-v{version}-amd64.rpm
# 或(Fedora / RHEL 8+)
sudo dnf install ./edgex-v{version}-amd64.rpm

升级

sudo rpm -Uvh edgex-v{new-version}-amd64.rpm
# 或
sudo dnf upgrade ./edgex-v{new-version}-amd64.rpm

卸载

sudo rpm -e edgex
# 或
sudo dnf remove edgex
安装后验证
sudo systemctl status edgex
sudo systemctl enable --now edgex   # 若未自动启动

浏览器访问 http://<主机>:<port> 进入管理界面;首次启动若 data/config.db 不存在,将进入 Web 安装向导。

tar.gz 裸机部署:若使用 edgex-{version}-linux-{arch}.tar.gz,解压后参考下方「目录与配置」与「启动服务」,或自行配置 systemd(包内附带 edgex.service 示例)。

3. 目录与配置
路径 说明
data/ 运行时数据目录;config.db 存储配置(首次启动为空则进入安装向导)
logs/ 运行日志(默认 logs/gateway.edgex.log
conf/ 遗留 YAML 配置,用于一次性迁移(-conf 参数指定,默认 ./conf

首次启动若 data/config.db 不存在,网关以安装模式启动,通过 Web UI 完成初始化。

4. 启动服务
# 默认配置目录 ./conf,HTTP 端口见 server 配置(常见 8080/8082)
./edgex

# 指定遗留 YAML 迁移目录
./edgex -conf ./conf/

访问 http://localhost:<port> 进入管理界面。默认账号见安装向导或 conf/users.yaml

5. 生产部署参考

文档索引

类别 链接
文档站点(GitHub Pages) https://anviod.github.io/edgex/
开发原则与验收标准 在线阅读 · 源码
分阶段路线图 在线阅读 · 源码
版本发布门禁 在线阅读 · 源码
驱动文档 在线阅读 · 源码
用户手册(安装部署) 在线阅读 · 源码
架构设计 在线阅读 · 源码
开发计划 / TODO docs/TODO/(未发布至 Pages)
Q3 南向采集优化方案 docs/[TODO]边缘计算南向采集优化方案2026第三季度.md(未发布至 Pages)
测试验证 在线阅读 · 源码 · test/ 维护
运维参考 在线阅读 · 源码

分支与协作

日常开发在 **dev** 分支进行;功能与修复 PR 请以 **dev** 为合并目标。main 保留为稳定发布线,由维护者从 dev 按需合并。

快速开始(开发)

go mod tidy
go run cmd/main.go          # 后端,默认 -conf ./conf
cd ui && npm install && npm run build && cd ..   # 前端(可选)

# 短测门控(详见 test/README.md)
make test-short

默认管理端口取决于 server 配置;BACnet 需开放 UDP 47808。


相关文档


English documentation: README.en.md

Directories

Path Synopsis
cmd
compute_hash command
debug_opcua command
seed_modbus_slaves command
向 Modbus 通道批量添加 7 台从站设备(slave_id 1-7,保持寄存器 0-199,功能码 0x03)。
向 Modbus 通道批量添加 7 台从站设备(slave_id 1-7,保持寄存器 0-199,功能码 0x03)。
test_api_flow command
test_bacnet command
test_bind command
test_discovery command
test_modbus_tcp command
test_opcua_scan command
test_rw_points command
trigger_scan command
verify_scan_lib command
internal
core
ConnectionController is a read-only observability module for connection health.
ConnectionController is a read-only observability module for connection health.
driver/ethercat
Package ethercat implements EtherCAT master driver for EdgeX gateway.
Package ethercat implements EtherCAT master driver for EdgeX gateway.
sync
Package sync implements industrial-grade distributed configuration sync based on go-libp2p with Gossip, WAL, Anti-Entropy, and Device Takeover.
Package sync implements industrial-grade distributed configuration sync based on go-libp2p with Gossip, WAL, Anti-Entropy, and Device Takeover.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL