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