一
適用型號
該筆記適用于標準Modbus協議產品(MA01系列、ME31系列、M31系列、ME15-AXAX8080)。
二
功能簡介
功能說明:Modbus指令快速生成教程旨在幫助用戶快速生成Modbus通信指令,實現設備之間的數據傳輸。通過確定通信方式、選擇功能碼、確定起始地址和數據長度等步驟,用戶可以輕松生成符合Modbus協議規范的指令。常用的功能碼包括讀取保持寄存器、寫單個保持寄存器等,用于讀取或寫入設備的數據。通過本教程,用戶可以快速了解如何生成Modbus指令,并在工業控制等領域中應用,實現設備間的高效通信與數據交換。
相關知識:
Modbus是一種主/從通訊模式,主站在Modbus網絡上沒有地址,從站的地址范圍為0-247,其中0為廣播地址,從站的實際地址范圍為1-247。
Modbus寄存器種類說明:
線圈狀態:輸出端口,可設定端口的輸出狀態,也可以讀取該位的輸出狀態;
離散輸入狀態:輸入端口,通過外部設定改變輸入狀態,可讀但不可寫;
保持寄存器:控制器運行時被設定的某些參數,可讀可寫;
輸入寄存器:控制器運行時從外部設備獲得的某些參數,可讀不可寫。
Modbus功能碼:
三
功能應用
(1)軟件清單
軟件:UartAssist
(2)Modbus指令調試界面介紹
首先雙擊打開此軟件,如圖所示:
點擊左上角圖標,然后會出現新的菜單欄,選擇點擊工具,然后會繼續出現新的菜單欄,選擇點擊Modbus調試器,在右側就會出現一個Modbus指令生成框,如圖所示:
(3)從頁面中我們可以發現:
第一欄為協議類型選擇,其中協議包含Modbus-RTU、Modbus-ASCII、Modbus-TCP,我們常用的協議為Modbus-RTU、Modbus-TCP,Modbus-RTU通常對應串口通訊使用,Modbus-TCP通常對應網口通訊使用;
第二欄為從設備ID,對應設備的Modbus地址;
第三欄為功能號選擇,其中包含01功能碼讀線圈,02功能碼讀離散量輸入,03功能碼讀保持寄存器,04功能碼讀輸入寄存器,05功能碼寫單個線圈,06功能碼寫單個寄存器,15功能碼寫多個線圈,16功能碼寫多個寄存器;
第四欄是寄存器地址,相應寄存器地址可在手冊寄存器章節查詢;
第五欄根據不同的功能號,會出現不同的描述,具體可見指令生成章節。
注:輸入地址和數值可以為十進制數或0x打頭的十六進制形式。
四
指令生成
示例將以M31系列分布式IO為例,Modbus地址設置為1,協議類型選擇Modbus RTU進行講解。
(1)DI(1區)相關指令生成示例
讀取DI狀態指令:查詢手冊可知,DI的寄存器起始地址為0x0000(10001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:02讀離散量輸入
寄存器地址:0x0000(為寄存器起始地址,0就代表從第一路開始讀取)
讀數據長度:1(如果需要同時讀取4路,將此值改為4即可)
填寫相關數據后,點擊更新。
(2)DO(0區)相關指令生成示例
讀取DO狀態指令:查詢手冊可知,DO的寄存器起始地址為0x0000(00001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:01讀線圈
寄存器地址:0x0000(為寄存器起始地址)
讀數據長度:1(如果需要同時讀取4路,將此值改為4即可)
填寫相關數據后,點擊更新。
控制單個DO狀態指令:查詢手冊可知,DO的寄存器起始地址為0x0000(00001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:05寫單個線圈
寄存器地址:0x0000(為寄存器起始地址)
線圈狀態值:On為打開,off為關閉
填寫相關數據后,點擊更新。
控制多個DO狀態指令:查詢手冊可知,DO的寄存器起始地址為0x0000(00001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:15寫多個線圈
寄存器地址:0x0000(為寄存器起始地址)
線圈狀態值:1 0 1 0(1為打開,0為關閉,1 0 1 0表示控制1,3路打開,2,4路關閉;多個線圈的狀態值用空格符分隔)
填寫相關數據后,點擊更新。
(3)AI(3區)相關指令生成示例
讀取AI數據指令:查詢手冊可知,AI的工程量的寄存器起始地址為0x0000(30001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:04讀輸入寄存器
寄存器地址:0x0000(為寄存器起始地址)
讀數據長度:1(如果需要同時讀取4路,將此值改為4;如果需要同時讀取4路浮點類型,將此值改為8)
填寫相關數據后,點擊更新。
(4)AO(4區)相關指令生成示例
讀取AO數據指令:查詢手冊可知,AO的寄存器起始地址為0x0000(40001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:03讀保持寄存器
寄存器地址:0x0000(為寄存器起始地址)
讀數據長度:1(如果需要同時讀取4路,將此值改為4;如果需要同時讀取4路浮點類型,將此值改為8)
填寫相關數據后,點擊更新。
控制單個AO數據指令:查詢手冊可知,AO的寄存器起始地址為0x0000(40001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:06寫單個寄存器
寄存器地址:0x0000(為寄存器起始地址)
寄存器數據:1(此值為修改AO的數據)
填寫相關數據后,點擊更新。
控制多個AO數據指令:查詢手冊可知,DO的寄存器起始地址為0x0000(00001),由此如圖所示:
從設備ID號(Modbus地址):1(具體以現場使用而定)
功能號選擇:16寫多個寄存器
寄存器地址:0x0000(為寄存器起始地址)
寄存器數據:100 200 300 400(100 200 300 400表示修改AO的數據第一路為100,第二路200,第三路300,第四路400;多個寄存器數據用空格符分隔)
填寫相關數據后,點擊更新。
產品推薦
億佰特無線通信設備產品涵蓋無線數傳電臺、工業路由器、串口服務器、遙控開關、CAN總線、無線網關、遠程IO模塊、工業信號傳輸等。設備廣泛應用于數據遠程采集控制、水電氣抄表、PLC無線通信、智慧農業等場景。
-
寄存器
+關注
關注
31文章
5421瀏覽量
123307 -
通信
+關注
關注
18文章
6172瀏覽量
137365 -
MODBUS
+關注
關注
28文章
1998瀏覽量
78945
發布評論請先 登錄
自定義Modbus通信塊指令的搭建教程

Modbus庫開發筆記之二:Modbus消息幀的生成
Modbus協議特點
如何快速實現Modbus RTU和Modbus TCP協議轉換?
S7-200 SMART Modbus TCP服務器指令
快速實現Modbus和Profinet互轉的方案

評論