更新內容,v4.2.2版本:1.增加Modbus協議讀取多個寄存器,並且按多種數據類型解析數據。2.Modbus Serial和Modbus TCP兩個驅動合併成一個驅動。3.修改資料庫結構,保存配置信息。4.優化ServerSuperIO核心代碼,應用過程中的潛在問題。 v4.2.2 下載地址:官 ...
更新內容,v4.2.2版本:
1.增加Modbus協議讀取多個寄存器,並且按多種數據類型解析數據。
2.Modbus Serial和Modbus TCP兩個驅動合併成一個驅動。
3.修改資料庫結構,保存配置信息。
4.優化ServerSuperIO核心代碼,應用過程中的潛在問題。v4.2.2 下載地址:官方下載
目 錄
3. Modbus協議,讀取多個寄存器,實現多種數據類型解析... 2
3.1 概述... 2
3.2 Modbus基礎知識... 2
3.3 讀取多個寄存器,多種數據類型解析... 4
3.4 實現效果展示... 6
3.5 未來驅動的規劃... 7
2.1 概述
在發佈《標準Modbus和非標準協議的使用、測試以及驅動開發》之後,有些網友反饋在Modbus協議驅動方面是否可以實現讀多個寄存器和按多種數據類型解析數據。一是平時工作比較忙,二是有些犯懶。在感測器及儀器儀錶行業用到Modbus協議的情況比較多,但是大部分使用都比較簡單,可能往往只需要一個命令讀取數據,對返回數據進行解析。我認為針對這種情況開發一個簡單的驅動非常簡單,加之網友的水平參差不齊,也沒有針對網友的反饋進行積極的回應。但是從一個產品的角度考慮,確實應該進行完善,也確實有市場方面的需求,有很多公司是借鑒Modbus協議形式進行自定義協議,情況比較複雜。所以,利用出差的這段時間,針對Modbus驅動實現讀取多個寄存器和按多種數據類型解析數據,以滿足不同應用現場的需求。
2.2 Modbus基礎知識
Modbus採用的通訊機製為呼叫應答方式,或叫主從方式(master/slave)。主機發送請求命令,從機接到命令後進行校驗數據的完整性,以及確定是否發給自己的命令,校驗成功後,返回指定的數據信息,完成一次完整的通訊。呼叫應答通訊機制如下圖:
Modbus協議依靠網路傳輸層定義了一個簡單的數據傳輸協議,串口通訊(Modbus Serial)的RTU和ASCII模式以及網路通訊(Modbus TCP)模式在協議編碼和操作方面有所區別。基本協議格式如下圖:
下位機地址和功能碼,示意圖:
白皮書介紹:下載地址。
2.3 讀取多個寄存器,多種數據類型解析
主要針對【寄存器個數】和【解析數據方式】兩個選擇進行升級,在設備驅動中增加監測點的時候,可以選擇這兩項內容。如下圖:
1個寄存器個數代碼2個位元組,轉換成位元組數的公式為:讀取數據位元組數=寄存器個數*2,根據實際情況設置。
解析數據方式為24種,主要針對short、ushort、int、uint、float和double數據類型進行解析,由於感測器與電腦的高低位排序有所差異,所以針對同一種數據類型分不同的解析方式。解析數據方式,如下圖:
2.4 實現效果展示
使用Modbus TCP進行演示,連接Modbus Slave,127.0.0.1:502,讀取1個數據點,按“short,2位元組,順序:先高後低”解析數據,如下圖:
2.5 未來驅動的規劃
ServerSuperIO相當於系統建設中數據交互的中樞,將來對下連接各種PLC及感測器,也在積極規劃開發基於各種PLC的驅動;對上連接WEB組態以及管理系統。所有都通過配置完成,為中小企業提供一站式的項目解決方案,降低成本、提高效率。
最近國產自主安全可控的redcore browser瀏覽器融資2.5個億,實際上使用是的Google的開源內核,假設有“創新”的成分,估計也只是皮毛。儘管ServerSuperIO算不上高大上,但是也算是積累了10年的工作經驗,算是真正的自主安全可控。哈哈……。
2.[開源]C#跨平臺物聯網通訊框架ServerSuperIO(SSIO)介紹
2.應用SuperIO(SIO)和開源跨平臺物聯網框架ServerSuperIO(SSIO)構建系統的整體方案
3.C#工業物聯網和集成系統解決方案的技術路線(數據源、數據採集、數據上傳與接收、ActiveMQ、Mongodb、WebApi、手機App)
5.github地址:https://github.com/wxzz/ServerSuperIO
6.助力中小企業級連雲端,促進工業互聯網平臺蓬勃發展,全套解決方案。
物聯網&集成技術 QQ群:54256083