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