這里接前一章節(jié)迪文串口屏基礎(chǔ)GUI開發(fā)流程案例,繼續(xù)迪文屏的開發(fā),前章主要講串口屏基礎(chǔ)GUI開發(fā)流程,此章節(jié)開始講迪文MODBUS協(xié)議棧的使用方法。
1、MODBUS協(xié)議棧獲取,首先在迪文官方論壇上獲取MODBUS協(xié)議棧的OS程序,官方提供了眾多不同的歷程,是通過組合不同的串口接口及串口波特率等組合方式配合協(xié)議棧完成的,此處選擇的是基于UART5-485/115200波特率的示例程序。
將其下載下來后,解壓目錄包含如下文件
文件作用解析如下:
我們需要用到的僅有兩個(gè)bin文件,將DWINOS-xx.bin和22_xx.bin放入SD卡中的DWIN_SET目錄下,屏幕斷電,插入SD卡后再上電,即可看到屏幕開始更新SD卡中的內(nèi)容。
2、22文件內(nèi)有兩天默認(rèn)的指令用于測試,使用能夠查看BIN文件的工具,官方有推薦其他工具,各位也可以選擇自己熟悉的工具,只要能夠編輯bin文件即可,在這里我選擇已經(jīng)安裝好的J-Flash軟件打開,將22_Master_Poll.bin 拖入J-Flash軟件,在頂部將其定位到0X1C000位置處可以看到如下數(shù)據(jù):
剛開始可能看不懂代表的具體意思,迪文論壇上有人自制了22文件的圖形化編輯工具,有需要.net環(huán)境版本的,也有不需要環(huán)境直接運(yùn)行的,區(qū)別就是用.net環(huán)境的會(huì)比不需要環(huán)境的壓縮包更小,為了省掉不必要的麻煩,在這里選了不依賴.net環(huán)境的下載,下載后內(nèi)容如下
3、雙擊DwinModbus.exe即可正常打開,打開后選擇從22文件導(dǎo)入數(shù)據(jù)即可看到每條指令分別代表什么意思。
在這里按屏幕提示正常按需求添加MODBUS指令即可,但需要注意的是,部分功能碼對GUI界面的變量地址做出了要求,例如使用05碼控制單個(gè)線圈,官方在手冊中對位定義做出了要求,變量地址必須在0X0110到0X011F之間,每個(gè)變量分為16bit,最多256個(gè)bit位。對其他的部分功能碼也有相關(guān)的限制,需要查手冊或論壇以及詢問技術(shù)支持。
按要求,需要讀取modbus從機(jī)數(shù)據(jù)并將其顯示到頁面上,假設(shè)從機(jī)modbus地址為1,數(shù)據(jù)位于輸入寄存器2000號(hào)地址,浮點(diǎn)型,兩個(gè)寄存器數(shù)據(jù)表示一個(gè)浮點(diǎn)數(shù),將其讀取出來后顯示到GUI的1000變量地址上,則在圖形化22配置工具上應(yīng)輸入如下指令 :
(1) 啟用標(biāo)記:在命令的開頭必須是0X5A代表本條MODBUS指令被啟用,其余數(shù)據(jù)代表不起用;
(2) 從機(jī)ID:從機(jī)MODBUS地址;
(3) 命令:MODBUS功能碼;
(4) 本條指令長度:要從目標(biāo)寄存器開始讀取多少個(gè)寄存器數(shù)量;
(5) 接收超時(shí)時(shí)間:主機(jī)發(fā)出消息后等待從機(jī)的響應(yīng)時(shí)間,從解釋來看,是16進(jìn)制,單位是ms;
(6) 執(zhí)行方式:可以選擇附加條件的執(zhí)行,具體可以查看軟件上的注釋,這里選擇00即是無條件執(zhí)行;
(7) 附加限制:指的在開啟附加條件時(shí)根據(jù)此條件進(jìn)行發(fā)送;
(8) DGUS變量地址:指的是GUI上用戶設(shè)置的用于顯示數(shù)據(jù)的變量地址,也就是前文中設(shè)置的數(shù)據(jù)顯示地址;
(9) 寄存器地址:讀取從機(jī)的起始寄存器地址;
4、當(dāng)配置完成后,點(diǎn)擊生成ModBus指令按鈕即可導(dǎo)出設(shè)置的modbus命令集,但注意,這個(gè)軟件有bug,生成的指令對齊格式不對,無法直接使用,可以看到在默認(rèn)的22文件中,兩條指令之間即5A開頭之間是相差了16個(gè)字節(jié)的,但使用這個(gè)軟件進(jìn)行多指令生成的時(shí)候可以看到是不一致的。
問了官方的圖形配置工具已經(jīng)在做了,預(yù)計(jì)還要一段時(shí)間,建議各位使用這個(gè)工具的時(shí)候還是用來熟悉指令格式,自己手動(dòng)修改bin文件。雖然軟件生成有問題,但加載是正常的,可以用來驗(yàn)證手改bin的效果是否達(dá)到。
5、指令添加完成后,使用串口工具進(jìn)行下載,即可在串口5上使用485轉(zhuǎn)換器接收到主機(jī)發(fā)出的MODBUS指令:
此時(shí)使用< Modbus Slave>模擬從機(jī)設(shè)備,建立如下寄存器:
點(diǎn)擊上方的connect選擇好對應(yīng)的串口參數(shù),即可查看到主機(jī)與模擬器的交互過程。
此時(shí),屏幕上的指定變量應(yīng)當(dāng)會(huì)顯示模擬器中的數(shù)據(jù)。
參考資料:
【分享】免配置22文件生成MODBUS主機(jī)參數(shù)工具 - Modbus通信開發(fā) - 迪文科技論壇 - Powered by Discuz! (dwin.com.cn)
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
相關(guān)閱讀:
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 南京辦事處葛經(jīng)理:17626012283
成都總部銷售經(jīng)理:
秦 科(無線模塊):18884314654 馮子恒(無線模塊):18884314734
蔡友銀(無線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷售經(jīng)理):18584911141、 [email protected]
業(yè)務(wù)郵箱:[email protected] 全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)