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