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