本文由網友投稿,歡迎更多的朋友來分享。
作者:diego
倉庫地址:https://gitee.com/diego2098/ThingsGateway
原文連結:https://www.cnblogs.com/ThingsGateway/articles/17557709.html
gitee原始碼倉庫:https://gitee.com/diego2098/ThingsGateway
github原始碼倉庫:https://github.com/kimdiego2098/ThingsGateway
使用文檔:https://diego2098.gitee.io/thingsgateway-docs/
一.前言
thingsgateway是國內新生開源項目,歸屬工業數據採集網關,經過近四個月的洗禮,已經趨於穩定。
這篇文章將實測thingsgateway採集modbustcp協議設備,通過動圖演示,方便理解。
二.準備測試環境
2、ModbusSalve
运行ThingsGateway的方法请查看源文档。
三.通訊測試
3.1.建立採集設備

建立採集設備,選擇modbustcp插件,查看設備擴展屬性,可以看到modbustcp的可配置項。
目前測試我們使用的是本機的502埠,所以默認不修改。
3.2建立變量

建立變量,填寫變量名稱與變量地址、數據類型。
變量地址為40001,是modbus協議中的保持寄存器0,詳細地址規則請查看源文檔。
3.3.重啟採集線程

通過運行狀態-右上角的浮標,重啟全部線程,重啟完成後可以看到設備信息。
圖中顯示設備離線,並提示最後一次錯誤信息,明顯我還沒有啟動modbusslave進行測試。
3.4.啟動modbus服務端

啟動modbusslave,選擇modbustcp協議、埠502。
啟動後可以看到網關顯示設備在線,並倒序顯示讀寫報文。
3.5.查看實時數據

通過運行狀態-採集設備-相關變量跳轉,或者直接點菜單的實時數據頁面,可以看到相關的變量實時數據。
通過modbusslave的自增模擬功能,可以看到網關採集的數據變化效果(網關顯示頁面為1s刷新頻率)。
至此,簡單的通訊測試已經結束了。
四.進階玩法
4.1.數據轉換
試想一下應用場景,當氣體儀表通訊值規定是 實際值*100 或者其他的複雜轉換,通過網關將完美解決複雜的表達式轉換。

編輯變量的讀取表達式為 raw/100.0 ,重啟線程後可以看到實時值和原始值的區別。
4.2.多個變量分包解析
當一個modbustcp有幾萬個變量時,如果是逐個讀取的效率實在是太低,通過網關的分包限制將非常簡單得解決問題。

比如現測試的modbustcp插件,只需要修改最大打包長度(默認100),或者直接默認。
可以看到實際通訊報文,在讀取時只需要分送一次請求。
4.3.採集冗餘

冗餘的概念大夥應該熟悉,網關的採集冗餘也是如此。
配置冗餘設備後,當採集設備出現離線3次以上的情況,將切換至備用設備。
五.關於.net
下圖截自.net官網:https://dotnet.microsoft.com/zh-cn/,核心思想:.net免費、開源、快速和跨平台、新式和高效:

5.1. .net免費、開源
net 是一個免費的開放原始碼項目,它在 github 上開發和維護,而 github 是數百萬希望一起創建出色內容的開發人員的家園。
5.2. .net快速和跨平台
根據 techempower,.net 的執行速度快於任何其他常用框架。可以在多個平台(包括 windows、linux 和 macos)上編寫、運行和生成。
5.3. .net新式和高效
net 可幫助你構建適用於 web、移動、桌面、雲等的應用。. net 具有強大的支持生態系統和強大的工具,對於開發人員而言是最高效的平台。