1. 程式人生 > >《ServerSuperIO Designer IDE使用教程》-3.Modbus協議,讀取多個暫存器,實現多種資料型別解析。釋出:v4.2.2版本

《ServerSuperIO Designer IDE使用教程》-3.Modbus協議,讀取多個暫存器,實現多種資料型別解析。釋出: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年的工作經驗,算是真正的自主安全可控。哈哈……。

 物聯網&整合技術 QQ群:54256083