加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

【教程】迪文串口屏ModBus開發(fā)流程

07/19 11:20
2470
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

這里接前一章節(jié),繼續(xù)迪文屏的開發(fā),前章主要講解基礎(chǔ)開發(fā)流程,此章節(jié)開始講解迪文ModBus協(xié)議棧的使用方法。

前文指路:《迪文串口屏基礎(chǔ)GUI開發(fā)流程》

協(xié)議棧獲取,首先在迪文官方論壇上獲取ModBus協(xié)議棧的OS程序,官方提供了眾多不同的例程,是通過組合不同的串口及波特率等組合方式配合協(xié)議棧完成的,此處選擇的是基于UART5-485/115200波特率的示例程序。

將其下載下來后,解壓目錄包含如下文件:

文件作用解析如下:

我們需要用到的僅有兩個(gè)bin文件,將DWINOS-xx.bin和22_xx.bin放入SD卡中的DWIN_SET目錄下,屏幕斷電,插入SD卡后再上電,即可看到屏幕開始更新SD卡中的內(nèi)容。

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)容如下:

雙擊DwinModBus.exe即可正常打開,打開后選擇從22文件導(dǎo)入數(shù)據(jù)即可看到每條指令分別代表什么意思。

這里按屏幕提示正常按需求添加ModBus指令即可,但需要注意的是,部分功能碼對(duì)GUI界面的變量地址做出了要求,例如使用05碼控制單個(gè)線圈,官方在手冊中對(duì)位定義做出了要求,變量地址必須在0X0110到0X011F之間,每個(gè)變量分為16bit,最多256個(gè)bit位。對(duì)其他的部分功能碼也有相關(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)輸入如下指令:

啟用標(biāo)記:在命令的開頭必須是0X5A代表本條ModBus指令被啟用,其余數(shù)據(jù)代表不起用

從機(jī)ID:從機(jī)ModBus地址

命令:ModBus功能碼

本條指令長度:要從目標(biāo)寄存器開始讀取多少個(gè)寄存器數(shù)量

接收超時(shí)時(shí)間:主機(jī)發(fā)出消息后等待從機(jī)的響應(yīng)時(shí)間,從解釋來看,是16進(jìn)制,單位是ms

執(zhí)行方式:可以選擇附加條件的執(zhí)行,具體可以查看軟件上的注釋,這里選擇00即是無條件執(zhí)行

附加限制:指的是在開啟附加條件時(shí)根據(jù)此條件進(jìn)行發(fā)送

DGUS變量地址:指的是GUI上用戶設(shè)置的用于顯示數(shù)據(jù)的變量地址,也就是前文中設(shè)置的數(shù)據(jù)顯示地址

寄存器地址:讀取從機(jī)的起始寄存器地址

當(dāng)配置完成后,點(diǎn)擊生成ModBus指令按鈕即可導(dǎo)出設(shè)置的ModBus命令集,但注意,這個(gè)軟件有bug,生成的指令對(duì)齊格式不對(duì),無法直接使用,可以看到在默認(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á)到。

指令添加完成后,使用串口工具進(jìn)行下載,即可在串口5上使用485轉(zhuǎn)換器接收到主機(jī)發(fā)出的ModBus指令。

此時(shí)使用< ModBus Slave>模擬從機(jī)設(shè)備,建立如下寄存器:

點(diǎn)擊上方的connect選擇好對(duì)應(yīng)的串口參數(shù),即可查看到主機(jī)與模擬器的交互過程。

此時(shí),屏幕上的指定變量應(yīng)當(dāng)會(huì)顯示模擬器中的數(shù)據(jù)。

參考資料:

【分享】免配置22文件生成MODBUS主機(jī)參數(shù)工具 - Modbus通信開發(fā) - 迪文科技論壇 - Powered by Discuz! (dwin.com.cn)

【開發(fā)資料】T5, T5L 系列MODBUS_RTU 協(xié)議通訊 os源碼-升級(jí)版 - Modbus通信開發(fā) - 迪文科技論壇 - Powered by Discuz! (dwin.com.cn)

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ8863RLL 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP48

ECAD模型

下載ECAD模型
$4.82 查看
KSZ8863FLL 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP48
$5.57 查看
TJA1043TKY 1 NXP Semiconductors TJA1043 - High-speed CAN transceiver SON 14-Pin

ECAD模型

下載ECAD模型
$1.8 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜