iotsharp 和 iotgateway
IoTSharp 是云端 IoT 平台,IoTGateway 是边缘网关,二者是云-边-端架构里的黄金搭档:IoTGateway 负责现场设备采集与协议转换,IoTSharp 负责云端管理、数据存储、规则与可视化。下面从定位、架构、协作、部署、接入全流程讲清楚。
一、核心定位与区别(一句话看懂)
1. IoTSharp(云端平台)
- 定位:云侧 IoT 操作系统,做设备管理、数据存储、规则引擎、告警、可视化、API 开放。
- 核心能力:MQTT/HTTP/CoAP 接入、多租户、数字孪生、资产树、时序存储、规则链。
- 部署:服务器/云主机,Docker 一键部署。
- 用户:平台管理员、应用开发者、运维人员。
2. IoTGateway(边缘网关)
- 定位:边缘侧协议转换与数据采集网关,负责把 PLC/Modbus/OPC UA/串口设备转成 MQTT 上云。
- 核心能力:南向多协议采集、北向 MQTT 上云、边缘计算、本地缓存、断点续传。
- 部署:工业网关/工控机/树莓派/服务器,跨平台(Windows/Linux)。
- 用户:现场工程师、集成商、设备厂商。
3. 核心差异对比表
| 维度 | IoTSharp(云端) | IoTGateway(边缘) |
|---|---|---|
| 架构层级 | 云平台层 | 边缘网关层 |
| 核心职责 | 设备管理、数据处理、规则、可视化 | 协议转换、数据采集、边缘计算、上云 |
| 南向协议 | MQTT/HTTP/CoAP | Modbus/OPC UA/PLC/串口/CNC/扫码枪 |
| 北向协议 | 对外提供 API/MQTT | MQTT(对接 IoTSharp/ThingsBoard) |
| 存储 | PostgreSQL+InfluxDB/TDengine | SQLite/本地缓存(临时) |
| 计算 | 云端规则引擎、批量分析 | 边缘实时计算、本地告警、数据过滤 |
| 部署 | 云服务器、集群 | 工业网关、工控机、边缘节点 |
二、云-边-端协作架构(光伏/风电/火电通用)
1. 整体数据流
- 感知层:光伏逆变器、汇流箱、PLC、传感器(Modbus/RS485/OPC UA)
- 边缘层(IoTGateway):
- 采集:通过 Modbus TCP/RTU、OPC UA 读取设备数据
- 转换:把寄存器/点位转成 JSON 遥测/属性
- 边缘:本地计算、异常过滤、断点续传
- 上云:通过 MQTT 上报到 IoTSharp
- 云端层(IoTSharp):
- 接入:接收 MQTT 数据,设备认证
- 存储:时序库存遥测,关系库存设备/属性
- 处理:规则引擎、告警、数据清洗
- 应用:Dashboard、报表、API、数字孪生
2. 为什么必须一起用?
- IoTSharp 不直接接 Modbus/PLC:云端平台不适合直接处理大量工业协议,延迟高、不稳定。
- IoTGateway 不做云端管理:网关只负责采集转发,没有多租户、可视化、长期存储能力。
- 最佳实践:IoTGateway + IoTSharp = 完整工业 IoT 方案,解决“设备上云最后一公里”。
三、快速部署与对接(可直接复制)
1. 部署 IoTSharp(云端)
# 克隆
git clone https://gitee.com/IoTSharp/IoTSharp.git
cd IoTSharp
# 启动(PostgreSQL+InfluxDB)
docker-compose up -d
# 访问:http://localhost:2927,账号 admin/iotsharp
2. 部署 IoTGateway(边缘)
# 克隆
git clone https://gitee.com/IoTSharp/IoTGateway.git
cd IoTGateway
# 构建运行
dotnet run --project src/IoTGateway.Web
# 访问:http://localhost:5000
3. 对接流程(3步完成)
1)IoTSharp 侧:创建设备
- 路径:设备管理 → 产品 → 新增(如“光伏逆变器”,协议 MQTT)
- 路径:设备管理 → 设备 → 新增,生成 DeviceId、AccessToken
2)IoTGateway 侧:配置南向设备(Modbus 示例)
- 路径:设备管理 → 新增
- 选择驱动:Modbus TCP
- 配置:IP、端口、从站地址、寄存器地址(如 40001 对应 PV 电压)
- 点位映射:寄存器 → 遥测名(如 40001 → pvVoltage)
3)IoTGateway 侧:配置北向(对接 IoTSharp)
- 路径:云平台 → 新增 → 选择 IoTSharp
- 配置:
- MQTT Broker:
tcp://IoTSharp服务器IP:1883 - ClientId:
DeviceId - 用户名/密码:
AccessToken - 主题:
v1/devices/me/telemetry
- MQTT Broker:
- 启动:启用上传,数据自动上报到 IoTSharp
四、核心功能协作(光伏/风电/火电场景)
1. 数据采集与上云(光伏示例)
- IoTGateway:采集逆变器 Modbus 数据(电压、电流、温度、辐照度)
- 转换:寄存器值 → JSON 遥测
- 上云:MQTT 上报到 IoTSharp
- IoTSharp:存储到时序库,实时展示在 Dashboard
2. 边缘计算 + 云端规则(风机示例)
- IoTGateway:本地判断振动 > 阈值 → 立即上报告警
- IoTSharp:规则引擎触发 → 推送短信/邮件 → 派单运维
3. 远程控制(火电示例)
- IoTSharp:下发 RPC 命令(如“重启设备”)
- IoTGateway:接收命令 → 转成 Modbus 写指令 → 控制 PLC/设备
4. 资产树管理(公司→建筑→设备→回路→传感器)
- IoTSharp:按层级管理资产,支持多租户、权限控制
- IoTGateway:按回路/传感器分组采集,数据自动归属到对应设备
五、二次开发与扩展(二开重点)
1. IoTGateway 二开
- 自定义驱动:开发非标协议驱动(如专用传感器、PLC)
- 边缘脚本:C#/JS 脚本做本地计算、数据过滤、公式转换
- 北向扩展:对接其他云平台(华为云/阿里云)或自有系统
2. IoTSharp 二开
- 自定义 API:给 EMS/MES 提供专用接口
- 规则节点:开发行业规则(如光伏超温、风机超速)
- 前端页面:定制光伏/风电/火电监控 Dashboard
3. 联合二开(最佳实践)
- IoTGateway:做边缘采集与预处理,减少云端压力
- IoTSharp:做云端管理与应用,提供统一入口
六、常见问题与避坑
- MQTT 连接失败:检查 IoTSharp 1883 端口开放、AccessToken 正确、防火墙放行
- 数据不上报:确认 IoTGateway 点位映射正确、上传启用、网络通畅
- 边缘延迟:IoTGateway 本地缓存,断点续传,网络恢复自动补传
- 协议不支持:IoTGateway 支持 Modbus/OPC UA/PLC,非标设备需开发驱动
- 性能优化:IoTGateway 做数据过滤/聚合,IoTSharp 用时序库分表
本文来自博客园,作者:张朋举,转载请注明原文链接:https://www.cnblogs.com/Running_Zhang/p/19805469
浙公网安备 33010602011771号