做網(wǎng)站需要注冊商標第幾類seo優(yōu)化設計
目錄
1 傳輸方式不同
2 硬件接口不同
3 校驗碼不同
4 指令內(nèi)容不同
4.1 Modbus RTU
4.1.1 功能碼為03,表示讀寄存器
4.1.2 功能碼為10,表示寫多個寄存器
4.2 Modbus TCP
4.2.1 功能碼為03,表示讀寄存器
4.2.2 回復異常報文
?5 傳輸速度不同
6 補充說明
7 術(shù)語解讀
?
1 傳輸方式不同
RTU協(xié)議需要將控制器設置成RTU模式,用二進制數(shù)據(jù)的傳輸方式就可以直接傳送數(shù)據(jù)。
遵循3.5T時間間隔。集體可以查看modbus rtu通訊-T1.5以及T3.5時間間隔。
TCP協(xié)議在以太網(wǎng)的物理層上工作,是傳輸層第四層的協(xié)議,它先將每字節(jié)進行二進制傳輸再轉(zhuǎn)換為十六進制的兩個字節(jié),依次這樣操作將轉(zhuǎn)換好的字節(jié)串聯(lián)在一起。
2 硬件接口不同
RTU協(xié)議使用的是233、422、485的串行接口(serial port)。
串行接口整個操作過程比較方便,通過兩個引腳就可以通迅,這兩個引腳分別為Rx和Tx,它們的用途是用來傳送和接收數(shù)據(jù)。
串行接口默認的波特率為9600、奇偶校驗為否、數(shù)據(jù)位為8、 停止位為1。
從表現(xiàn)形式和結(jié)構(gòu)來看,RTU協(xié)議的使用度比TCP協(xié)議更廣泛。
TCP協(xié)議使用的是以太網(wǎng)接口,能直接連接網(wǎng)絡,連接后它可以自行與其他的網(wǎng)絡設備聯(lián)系并確定一種目前最簡便的工作方式。
以太網(wǎng)接口的工作模式分為全雙工模式和半雙工模式。
以太網(wǎng)接口根據(jù)類型可以分為傳統(tǒng)接口和快速接口,具體有SC光纖的接口、RJ45的接口、AUI的接口、FDDI的接口、BNC的接口和Console的接口。
3 校驗碼不同
RTU協(xié)議中為了檢驗整個數(shù)據(jù)的內(nèi)容要用到16位的CRC校驗,這個校驗分別計算傳輸端的和接收端的幀內(nèi)容,兩個CRC值比較出來是相符合的就接收數(shù)據(jù),若不相符就拒收這個數(shù)據(jù)并報告到上級設備。
TCP協(xié)議在連接時有著“確認對方信息”、“排序數(shù)據(jù)”、“控制數(shù)據(jù)流量”、“避免阻塞”的四個步驟,這樣的連接協(xié)議相對來說會比較可靠,所以不需要再用額外的校驗碼去檢驗數(shù)據(jù)的幀內(nèi)容。
4 指令內(nèi)容不同
RTU協(xié)議的指令內(nèi)容有五個字節(jié),分別為從站地址、功能碼、數(shù)據(jù)起始地址、數(shù)據(jù)數(shù)量量和CRC檢驗。
例如01、03、00 00、00 02、C4 0B。
TCP協(xié)議的指令內(nèi)容在RTU指令內(nèi)容的基礎(chǔ)上增加了一個MBAP報文頭,刪除了CRC校驗。
例如00 00 00 00 00 06 ff 03 00 00 00 02,其中00 00 00 00 00 06 ff七個字節(jié)為MBAP報文頭。
詳細介紹如下
4.1 Modbus RTU
簡介:RTU協(xié)議中的指令由地址碼(1字節(jié)),功能碼(1字節(jié)),起始地址(2字節(jié)),數(shù)據(jù)(N個字節(jié)),校驗碼(2字節(jié))五個部分組成
4.1.1 功能碼為03,表示讀寄存器
1、發(fā)送指令:01 03 76 83 00 0C AE 6F
解析:
01為從機地址(地址碼),
03 為功能碼(03表示:讀),
76 83 為寄存器地址[起始地址][真實的寄存器地址-1],
00 0C 為讀取寄存器的個數(shù),
AE 6F 為CRC校驗。
2、接收指令:01 03 18 00 55 00 AA FF FF FF FF 01 2D FF FF FF FF FF FF 00 55 FF FF FF FF FF FF BA 58
解析:
01 為從機地址(地址碼),
03 為功能碼,
18 為數(shù)據(jù)長度[表示24(轉(zhuǎn)換為十進制)],24個字節(jié)的數(shù)據(jù)正文(即12個寄存器,每個寄存器占兩個字節(jié)),
00 55 00 AA FF FF FF FF 01 2D FF FF FF FF FF FF 00 55 FF FF FF FF FF FF 為每個寄存器數(shù)據(jù),
BA 58 為校驗碼。
4.1.2 功能碼為10,表示寫多個寄存器
1、發(fā)送指令:01 10 8C BD 00 08 10 53 47 39 4B 54 4C 2D 4D 00 00 00 00 00 00 00 00 39 2F
解析:
01 為從機地址(地址碼),
10 為功能碼(10表示:寫),
8C BD 為寄存器地址[起始地址],
00 08 為寫入寄存器的個數(shù),
10 為數(shù)據(jù)長度,表示數(shù)據(jù)長度為16個字節(jié),數(shù)據(jù)長度是寄存器個數(shù)的2倍,
53 47 39 4B 54 4C 2D 4D 00 00 00 00 00 00 00 00 為寫入寄存器的數(shù)據(jù)[16個字節(jié)],
39 2F 為校驗碼
2、接收指令:01 10 8C BD 00 08 7B 7B FF FF FF FF FF FF FF FF
解析:
01 為從機地址,
10 為功能碼,
8C BD 為寄存器地址,
00 08 為數(shù)據(jù)長度,
7B 7B FF FF FF FF FF FF 為寄存器數(shù)據(jù),
FF FF 為校驗
4.2 Modbus TCP
簡介:Modbus TCP協(xié)議是在RTU協(xié)議前面添加MBAP報文頭,由于TCP是基于可靠連接的服務,RTU協(xié)議中的CRC校驗碼就不再需要,所以在Modbus TCP協(xié)議中是沒有CRC校驗碼
4.2.1 功能碼為03,表示讀寄存器
1、發(fā)送指令:68 68 00 00 00 06 01 03 33 65 00 04
解析:
68 68 為報文序列號,
00 00 為協(xié)議標識(00 00表示ModbusTCP協(xié)議),
00 06 為后續(xù)字節(jié)數(shù)(數(shù)據(jù)長度,單位為字節(jié)),
01 為從機地址,
03 為功能碼,
33 65 為寄存器地址[起始地址],
00 04 為寄存器個數(shù)。
2、接收指令:68 68 00 00 00 0B 01 03 08 00 01 00 AA 00 00 00 AA
解析:
68 68 為報文序列號,
00 00 為協(xié)議標識,
00 0B 為后續(xù)字節(jié)數(shù),
01 為從機地址,
03 為功能碼,
08 為數(shù)據(jù)長度,
00 01 00 AA 00 00 00 AA 為寄存器數(shù)據(jù)
4.2.2 回復異常報文
68 68 00 00 00 03 F7 90 02
解析:
68 68 為報文序列號,
00 00 為協(xié)議標識,
00 03 為后續(xù)字節(jié)數(shù),
F7 為從機地址,
90 為功能碼,
02 為異常碼
?5 傳輸速度不同
使用RTU協(xié)議因使用的是232、422、485這樣的串行接口,因此在傳輸速度上會比較慢,
使用TCP協(xié)議時的傳輸速度較快,如果想要更快的速度可以連接PLC總線的方式去擴展以太網(wǎng)模塊的范圍,但對于許多設備來說并不需要這么快的速度,速度過快,設備向上級設備報告數(shù)據(jù)的次數(shù)就會變多間接增加了設備的工作量。
6 補充說明
Modbus 協(xié)議是一種應用層報文傳輸協(xié)議,包括ASCII、RTU、TCP三種報文類型,協(xié)議本身并沒有定義物理層,只是定義了控制器能夠認識和使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡進行通信的。
Modbus 協(xié)議使用串口傳輸時可以選擇RTU或ASCII模式,并規(guī)定了消息、數(shù)據(jù)結(jié)構(gòu)、命令和應答方式并需要對數(shù)據(jù)進行校驗。ASCII 模式采用LRC校驗,RTU模式采用16 位CRC校驗。通過以太網(wǎng)傳輸時使用TCP,這種模式不使用校驗,因為TCP協(xié)議是一個面向連接的可靠協(xié)議。
7 術(shù)語解讀
校驗碼:校驗碼通常是一組數(shù)字的最后一位,由前面的數(shù)字通過某種運算得出,用以檢驗該組數(shù)據(jù)的正確性。代碼作為數(shù)據(jù)在向計算機或其它設備進行輸入時,容易產(chǎn)生輸入錯誤,為了減少這種輸入錯誤,編碼專家發(fā)明了各種校驗檢錯方法,并依據(jù)這些方法設置了校驗碼。常用的校驗有:累加和校驗SUM、字節(jié)異或校驗XOR、縱向冗余校驗LRC、循環(huán)冗余校驗CRC。