1. 程式人生 > >【阿里雲IoT+YF3300】9.快速開發modbus裝置驅動

【阿里雲IoT+YF3300】9.快速開發modbus裝置驅動

       Modbus是一種序列通訊協議,是莫迪康公司為PLC(程式設計邏輯控制器)通訊而設計的協議。Modbus目前已經成為工業領域通訊協議的業界標準,大部分的儀器儀表都支援該通訊協議。很早以前就開發過基於Modbus協議的各種驅動,在2007年的時候還曾寫了一篇《我的Modbus Slave/Client開發歷程》的部落格文章 。

       YFIOs就是YFSoft I/O Server的簡稱,是一款物聯網時代的輕量級嵌入式組態系統。支援策略和驅動二次開發,不過常規策略和驅動開發有些繁瑣,由於大部分物聯網裝置都支援modbus協議,所以提供給一款快速開發的modbus驅動的工具,還是非常必要的。

    本篇文章將介紹一款基於modbus協議的溫溼度模組的快速驅動開發過程。

    開啟“YFIOsIDE”程式,啟動後,單擊“檔案”主選單下面的“modbus驅動開發嚮導”。

 

    查溫溼度感測器的說明書我們可以知道,溫度和溼度在modbus暫存器的偏移地址是0和1(40000區),我們把識別符號分別設定為“T”和“H”。看說明書我們可知,直接讀取的值還不是溫度和溼度,還需要除以10,所以我們配置一下運算表示式為“$Value/10.0”,其中$Value就是我們直接從指定地址區讀到的原生值。

       驅動名稱和製造商等資訊,可以根據實際進行填寫就行,我們這裡採用預設值。裝置地址和串列埠引數,可以設定為該裝置的預設引數。

     引數配置好後,我們單擊“編譯”按鈕進行驅動檔案編譯,為了讓YFIOs管理程式方便載入我們新編譯的驅動,我們選擇目錄為YFIOsManager程式下的“Driver”目錄。

 

    編譯成功後,我們發現在指定的目錄出現一個dll和pe檔案,檔名就是我們配置的“驅動名稱”。

 

       我們開啟YFIOsManager程式,單擊“驅動列表”項,可以看到我們剛剛編譯的驅動。

         好,我們測試一下剛剛編譯好的驅動,看看是否能正常工作。我們新增一個使用者驅動,選擇我們剛剛建立好的驅動。

       YF3300的RS485為COM2。配置好後,資料配置裡面就會自動出來對應的變數來,如下圖所示:

     我們讓YF3300接一個溫溼度模組,把相關的組態配置部署到YF3300中去。

       YF3300採購連結(最後一個顏色分類是YF3300閘道器):

https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-10400358307.7.82854d48viZm7V&id=42910631014  

    部署執行後,我們在“資料監控”中看到溫溼度已經可以正常讀取了。

    從以上可以看成,只要知道對應的屬性地址,我們可以非常迅速的開發出一款比較實用的裝置驅動。另外驅動的配置可以匯出為xml檔案,後續可以根據需要進行修改和擴充套件。如果要實現的驅動比較複雜,還可以匯出為Visual Studio C#專案,可以更為自由的實現對應的驅動了。

    單擊“匯出為C#工程”,選定好要匯出的目錄,然後就可以到一個完整的C#驅動程式了(一個驅動介面工程,一個驅動pe工程)。

 

想體驗阿里雲IoT平臺的網友,可以單擊如下連結:https://dev.iot.aliyun.com/sale?source=deveco_partner_yefan

&n