產(chǎn)品列表 / products
Modbus作為一種迄今依然在廣泛、靈活使用的通訊協(xié)議,行業(yè)內(nèi)的專(zhuān)家對(duì)它的解讀已經(jīng)非常細(xì)致、專(zhuān)業(yè)了。協(xié)議格式、數(shù)據(jù)模型、功能碼的含義等不再贅述。本文主要是總結(jié)了一下,基于我司Tnbuild數(shù)據(jù)服務(wù)系統(tǒng),無(wú)論是作為南向采集設(shè)備的協(xié)議,或是作為北向轉(zhuǎn)發(fā)到平臺(tái)的協(xié)議,我司在實(shí)際項(xiàng)目中,做的一些Modbus協(xié)議的格式變化或者協(xié)議延伸。
行業(yè)很大,應(yīng)用變化更是層出不窮,以下的總結(jié),也只是管中窺豹。在此也歡迎與行業(yè)內(nèi)朋友們進(jìn)一步做交流與共享!
序號(hào) | 自定義名 | 數(shù)據(jù)格式及場(chǎng)景描述 |
1 | Modbus RTU | 3號(hào)命令:讀保持寄存器 讀取010300000001840A 接收0103020000B844 常規(guī)儀表、傳感器; 網(wǎng)關(guān)做主站,問(wèn)答方式讀取數(shù)據(jù) |
2 | Modbus TCP | 3號(hào)命令:讀保持寄存器 讀取: 000000000006010300000001 接收:0000000000050103020000 現(xiàn)場(chǎng)控制設(shè)備、plc; 網(wǎng)關(guān)做主站,問(wèn)答方式讀取數(shù)據(jù) |
3 | Modbus ASCII | 3號(hào)命令:讀保持寄存器 讀取:30313033303030303030303138343041 接收:3031303330323030303042383434 同等點(diǎn)位字符傳輸量大、傳輸效率較低,實(shí)際使用少; 網(wǎng)關(guān)做主站,問(wèn)答方式讀取數(shù)據(jù) |
4 | Modbus RTU 代理 | 和標(biāo)準(zhǔn)Modbus RTU報(bào)文格式一樣 網(wǎng)關(guān)在還原原有RTU通訊基礎(chǔ)上,可以根據(jù)需要讀取對(duì)應(yīng)的數(shù)據(jù) 網(wǎng)關(guān)做轉(zhuǎn)接,靈活解析需要的數(shù)據(jù) |
5 | Modbus RTU | 和標(biāo)準(zhǔn)Modbus RTU報(bào)文格式一樣 讀取現(xiàn)場(chǎng)設(shè)備主動(dòng)推送的RTU數(shù)據(jù),網(wǎng)關(guān)做從站 |
6 | Modbus TCP | 和標(biāo)準(zhǔn)Modbus TCP報(bào)文格式一樣 讀取現(xiàn)場(chǎng)設(shè)備主動(dòng)推送的TCP數(shù)據(jù),網(wǎng)關(guān)做從站 |
7 | Modbus SOE | 標(biāo)準(zhǔn)的Modbus報(bào)文格式,在程序中增加了寄存器值的判斷,以及寄存器值寫(xiě)入的條件 Modbus寄存器1作為SOE使能,讀取到該寄存器值為1,將寄存器2的值(報(bào)警id)寫(xiě)到寄存器3中, 以便綜保檢測(cè)到正確的ID號(hào),在寄存器1中的SOE使能清零。 |
8 | Modbus Control | 標(biāo)準(zhǔn)的Modbus報(bào)文格式,在程序中增加了寄存器值的判斷,以及寄存器值寫(xiě)入的條件,結(jié)合轉(zhuǎn)發(fā)MQTT平臺(tái)的下發(fā),程序收到平臺(tái)控制的閥門(mén)開(kāi)關(guān)指令,將現(xiàn)場(chǎng)閥門(mén)使能開(kāi)關(guān)打開(kāi),等待現(xiàn)場(chǎng)工人使用完關(guān)閉閥門(mén)后,再將使能開(kāi)關(guān)關(guān)閉。 |
9 | Modbus 104Control | 在標(biāo)準(zhǔn)Modbus的05和06指令上做改動(dòng),給一些特定的地址下發(fā)不同的值,實(shí)現(xiàn)對(duì)保護(hù)裝置的遙控合閘/分閘選擇及執(zhí)行。例: 05 05 05 00 FF 00 8D 72 遙控合閘選擇 05 05 05 00 FF 00 8D 72遙控合閘選擇返校 05 05 05 80 FF 00 8C 9A 遙控合閘執(zhí)行 05 05 05 80 FF 00 8C 9A遙控合閘執(zhí)行返校 |
10 | Modbus RTU/TCP 字符串采集/轉(zhuǎn)發(fā) | 字符串的采集和轉(zhuǎn)發(fā)相當(dāng)于把字符轉(zhuǎn)換成ASCII碼對(duì)應(yīng)的十六進(jìn)制,作為數(shù)據(jù)加在標(biāo)準(zhǔn)的Modbus報(bào)文里傳輸,采集支持將設(shè)備傳過(guò)來(lái)的ASCII碼解析為原字符,轉(zhuǎn)發(fā)可以將取到的字符串再以Modbus協(xié)議傳給Modbus主站 例如,帶字符數(shù)值的Modbus轉(zhuǎn)發(fā)報(bào)文: 01 03 07 31 32 33 40 61 62 63 79 56 其中標(biāo)注藍(lán)色的16進(jìn)制轉(zhuǎn)換為字符串為123@abc 一般會(huì)有一些工廠把生產(chǎn)數(shù)據(jù)存在數(shù)據(jù)庫(kù),就像生產(chǎn)數(shù)據(jù)里的時(shí)間,值班人等,都屬于需要傳輸?shù)淖址W(wǎng)關(guān)可以從數(shù)據(jù)庫(kù)取到這些數(shù)據(jù),再以別的協(xié)議傳給平臺(tái)或主站;同樣如果有工廠的生產(chǎn)數(shù)據(jù)存在一個(gè)服務(wù)器上,服務(wù)器對(duì)外通訊是Modbus協(xié)議,那就可以用網(wǎng)關(guān)將服務(wù)器中的數(shù)據(jù)采集到 |
11 | Modbus TCP轉(zhuǎn)發(fā)斷線緩存
| Modbus基本的傳輸指令不變,增加和Modbus主站的連接判斷;判斷連接斷開(kāi)之后執(zhí)行數(shù)據(jù)存儲(chǔ)(用實(shí)時(shí)數(shù)據(jù)庫(kù)的方式存儲(chǔ)為一個(gè)DB文件);連接恢復(fù)之后讀取DB文件,將數(shù)據(jù)按照實(shí)際需求的格式上送一些現(xiàn)場(chǎng)環(huán)境的網(wǎng)絡(luò)信號(hào)不穩(wěn)定,或者使用有線網(wǎng)絡(luò)傳輸,為避免數(shù)據(jù)在斷網(wǎng)或者網(wǎng)絡(luò)波動(dòng)的時(shí)候丟失,需要加上斷線緩存的功能;網(wǎng)絡(luò)斷開(kāi)時(shí)存儲(chǔ)數(shù)據(jù),網(wǎng)絡(luò)恢復(fù)后將緩存的數(shù)據(jù)上送。 |