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