本文介紹佰馬工業級無線網關BMG200驅動構件用于通過ModbusRTU協議讀寫支持Modbus設備的各種寄存器的數據; 同時也可用于對支持ModbusRTU標準協議的各類PLC、儀表、控制器數據的讀寫。
設備簡介
本驅動構件用于通過ModbusRTU協議讀寫支持Modbus設備的各種寄存器的數據;
同時也可用于對支持ModbusRTU標準協議的各類PLC、儀表、控制器數據的讀寫。
本驅動可以設置讀寫寄存器的長度、單個寫的功能碼。
本驅動支持01、02、03、04、05、16常用功能碼,對功能碼支持請參見附錄1。
驅動類型 | 串口設備 |
通訊協議 | 采用莫迪康ModbusRTU協議 |
通訊方式 | 一主一從、一主多從方式。驅動構件為主,設備為從。 |
硬件連接
與設備通訊之前,必須保證工業物聯網網關BMG200通訊連接正確。
通訊連接方式:與設備之間采用標準的RS485或RS232通訊。
設備的通訊連接,具體請參考對應設備手冊。
設備通訊參數
“ModbusRTUCustomV2”端口參數設置如下:
串口通訊參數設置如下:
設置項 | 參數項 |
通訊波特率 | 9600 (默認值)、19200、38400 |
數據位位數 | 7、8(默認值) |
停止位位數 | 1(默認值)、2 |
奇偶校驗位 | 奇校驗、偶校驗(默認值)、無校驗 |
其中通訊參數設置應與設備的通訊參數相同,否則無法正常通訊。
設備參數:
通道變量屬性
本驅動構件可支持ModbusRTU寄存器類型及對應功能碼如下:
寄存器 | 數據類型 | 讀取功能碼 | 寫入功能碼 | 操作方式 |
[0]輸出繼電器 | BIT | 01 | 05 | 讀寫 |
[1]輸入繼電器 | BIT | 02 | — | 只讀 |
[3]輸入寄存器 | SHORT,LONG,FLOAT | 04 | — | 只讀 |
[4]輸出寄存器 | SHORT,LONG,FLOAT | 03 | 16 | 讀寫 |
說明:
功能碼:[1]、[3]區不支持寫操作;[4] 區在雙字(32位)時,使用16功能碼進行數據寫操作。
數據類型:
16位整數解碼順序:調整字元件的解碼順序,對于Modicon PLC及標準PLC設備,使用默認值即可。
0—12:表示字元件高低字節不顛倒(默認值)。
例如:解碼0x0001 表示1
1—21:表示字元件高低字節顛倒。
例如:表示0x0100 (即256)
32位整數解碼順序:調整雙字元件的解碼順序,對于Modicon PLC,請設置為“0-3412”順序解碼。
0—3412:表示雙字元件高低字顛倒,但字內高低字節不顛倒。
例如:解碼0x0000 0001 表示 0x0001 0000 (即65536)
1—1234:表示雙字元件不做處理直接解碼(默認值)。
例如:解碼0x0000 0001 表示 1
2—2143:表示雙字元件高低字不顛倒,但字內高低字節顛倒。
例如:解碼0x0000 0001 表示 0x0000 0100 (即256)
3—4321:表示雙字元件內4個字節全部顛倒。
例如:解碼0x0000 0001 表示 0x0100 0000 (即1677 7216)
32位浮點數解碼順序:調整雙字元件的解碼順序,對于Modicon PLC,請設置為“0-3412”順序解碼。
0—3412:表示雙字元件高低字顛倒,但字內高低字節不顛倒。
例如:解碼 0x3F80 0000 表示 2.27795e-041
1—1234:表示雙字元件不做處理直接解碼(默認值)。
例如:解碼 0x3F80 0000 表示 1.0
2—2143:表示雙字元件高低字不顛倒,但字內高低字節顛倒。
例如:解碼 0x3F80 0000 表示 -5.78564e-039
3—4321:表示雙字元件內4個字節全部顛倒。
例如:解碼 0x3F80 0000 表示 4.60060e-041
注釋:
1. 對于PLC及控制器等可編程設備,在需要讀取大量數據的時候,請在設計下位程序時,盡量將要采集的數據放在相同寄存器的連續地址中,這樣即可以提高每次采集的效率,又可以避免因地址不連續而導致的采集分塊過多,通訊速度慢的問題,從而有效的提高采集速度。
2. 對于32未解碼順序,需要設置內存變量MODBUSTYPECOM1(代表COM1),在系統啟動時設置腳本置內存變量為0,1,2,3即可,默認為0,可以不設置。
特殊應用的開發
本設備構件目前只實現部分通訊功能,如需要用作其它用途或本構件不能滿足要求時,可自行進行開發,也可以提出具體的技術要求,由佰馬科技Baiamtech為您定制。
附表:
附錄1
本驅動構件支持的寄存器及功能碼說明如下:
寄存器 | 讀取功能碼 | 寫入功能碼 | 功能碼說明 |
[1區]輸入繼電器 | 02 | — | 02: 讀取輸入狀態 |
[0區]輸出繼電器 | 01 | 05 | 01: 讀取線圈狀態 05: 強制單個線圈 |
[3區]輸入寄存器 | 04 | — | 04: 讀輸入寄存器 |
[4區]輸出寄存器 | 03 | 16 | 03: 讀保持寄存器 16: 預置多個寄存器 |
說明:
1.本驅動構件支持01、02、03、04、05、16等常用功能碼,對于其它非數據通訊用功能碼暫不支持。
2.以上功能碼均以10進制標注。功能碼15和16分別對應16進制的0x0F和0x10。
注意:添加寄存器通道時,起始地址均為1,這是遵從Modbus協議的,即所謂的“協議地址”,對于部分寄存器起始地址為0的設備,通道添加時,地址應加1處理。
佰馬Baimatech,集M2M產品研發、IoT平臺服務、國際化運營于一體,讓我們聯接,共創未來