前言
在物聯網(IoT)和工業自動化領域,邊緣計算裝置扮演著至關重要的角色。邊緣採集閘道器作為連線物理世界與數字世界的橋樑,負責收集感測器資料並將資料傳輸到雲端或本地資料中心進行處理。
本文將介紹一款基於 .NET 8 的跨平臺高效能邊緣採集閘道器的開源專案。希望透過這個專案能夠幫助大家搭建和部署高效的邊緣採集解決方案。
專案介紹
基於.NET 8 的跨平臺高效能邊緣採集閘道器,單機採集資料點位可達百萬。
ThingsGateway 是C#開發的一款邊緣採集閘道器,核心分為四大部分。
- 通道
通道,實際上相當於一個實際的通訊鏈路,比如一個串列埠,一個TCP連線等,在ThingsGateway中, 通道也會作為執行緒池中的一個任務,對於同一個通道中的不同裝置,採集/業務方法是順序進行的。
- 外掛
ThingsGateway中的採集方法或者上傳方法等都由外掛完成,主程式只負責排程執行。 對於不同的採集協議或者業務需求,可以透過開發外掛完成自定義的業務操作。
- 裝置
建立裝置,必須指定通道以及外掛,也可以說裝置其實是外掛的配置。 同時對於採集裝置、業務裝置,會有些許差別。
採集裝置:採集資料入閘道器/寫入資料到現場
業務裝置:上傳資料到第三方/第三方RPC反寫
- 變數
變數,用於配置採集裝置的具體點位詳情,以及對應業務裝置中的配置項
專案特點
- 視覺化操作
透過web瀏覽器配置,除錯,驗證整個流程
- 指令碼支援
靈活的資料轉換指令碼以及資料上傳自定義實體指令碼,可適配各大雲平臺的物模型
- 自定義外掛支援
透過開發外掛完成自定義的業務操作。
- 效能
測試100w變數點位,500ms-1000ms全部採集完成,穩定連續採集佔用CPU資源、記憶體資源低。
- 斷線快取
支援斷線快取,恢復後自動上傳。
- 完整可商用的邊緣閘道器
完善的配置許可權,操作日誌功能等,還有OPC、WebAPI、Mqtt、Kafka、時序庫、變數報警等更多功能等待你發現。
專案外掛
- 採集外掛
外掛名稱 | 備註 |
---|---|
Modbus | Rtu/Tcp報文格式,支援串列埠/Tcp/Udp鏈路 |
SiemensS7 | 西門子PLC S7系列 |
Dlt6452007 | 支援串列埠/Tcp/Udp鏈路 |
OpcDaMaster | 64位編譯 |
OpcUaMaster | 支援證書登入,擴充套件物件,Json讀寫 |
- 業務外掛
外掛名稱 | 備註 |
---|---|
ModbusSlave | Rtu/Tcp報文格式,支援串列埠/Tcp/Udp鏈路,支援Rpc反寫 |
OpcUaServer | OpcUa服務端,支援Rpc反寫 |
MqttClient | Mqtt客戶端,支援Rpc反寫,指令碼自定義上傳內容 |
MqttServer | Mqtt服務端,支援WebSocket,支援Rpc反寫,指令碼自定義上傳內容 |
KafkaProducer | 指令碼自定義上傳內容 |
RabbitMQProducer | 指令碼自定義上傳內容 |
SqlDB | 關聯式資料庫儲存,支援歷史儲存和實時資料更新 |
SqlHisAlarm | 報警歷史資料關聯式資料庫儲存 |
TDengineDB | 時序資料庫儲存 |
QuestDB | 時序資料庫儲存 |
專案展示
1、ThingsGateway 演示地址
賬戶 : SuperAdmin
密碼 : 111111
2、登入頁面
3、系統首頁
4、閘道器管理
5、閘道器狀態
6、閘道器日誌
專案地址
- 文件:https://kimdiego2098.github.io/
- Gitee:https://kimdiego2098.github.io/
- Github:https://github.com/kimdiego2098/ThingsGateway
- Nuget:https://www.nuget.org/packages?q=Tags:%22ThingsGateway%22
最後
如果你覺得這篇文章對你有幫助,不妨點個贊支援一下!你的支援是我繼續分享知識的動力。如果有任何疑問或需要進一步的幫助,歡迎隨時留言。也可以加入微信公眾號 [DotNet技術匠] 社群,與其他熱愛技術的同行一起交流心得,共同成長!