Modbus通信在PLC通道檢測中的應用
圖2 Modbus PDU尋址方式
PDU的尋址方式也在Modbus應用層協(xié)議中作出了具體的定義。在Modbus PDU中每一個(gè)數據都賦予從0~65535中的一個(gè)值作為該數據的地址。而在Modbus數據模型中,每一種數據類(lèi)型塊中的數據單元都定義了一個(gè)從1到n(設備容量決定)的值作為其地址。Modbus數據模型要與符合IEC-61131標準的實(shí)際設備內存或者其他模型對應起來(lái),這方面的映射關(guān)系是由設備生產(chǎn)廠(chǎng)家制定的。圖二給出了Modbus尋址模型,設備內存中的四種數據模式的組織方式是由廠(chǎng)家決定的。由圖2可知,一個(gè)Modbus PDU地址所對應的Modbus數據模型地址為該PDU地址加1。
2.2 Modbus通信實(shí)現方式
要實(shí)現設備間的通信,需要將Modbus應用層協(xié)議嵌入到ISO/OSI參考模型中的低層協(xié)議中?,F行的通信方式有三種:
(1) 通過(guò)串行鏈路實(shí)現的異步數據傳輸(Modbus-RTU and Modbus-ASCII),又稱(chēng)標準Modbus通信;
(2) 高速令牌環(huán)網(wǎng)通信(Modbus-Plus);
(3) 基于TCP/IP的客戶(hù)/服務(wù)器結構通信(Modbus-TCP)。
表2給出這三種通信方式與ISO/OSI參考模型的比較。
在不同的通信方式中都要對Modbus PDU進(jìn)行封裝,組成不同的Modbus幀,這種幀在Modbus協(xié)議中有專(zhuān)有的名詞稱(chēng)之為應用數據單元(ADU)。在Modbus-RTU和Modbus-Plus通信中采用的是標準應用數據單元,它只是在PDU前面加上了占用一個(gè)字節的附加地址和在PDU結束增加了占用兩個(gè)字節的校驗碼。在Modbus-TCP/IP網(wǎng)絡(luò )通信中需要對Modbus應用層協(xié)議進(jìn)行重新封裝,該封裝是通過(guò)在Modbus PDU前加上了Modbus應用層協(xié)議幀頭來(lái)實(shí)現。
表2 三種Modbus通信方式與OSI參考模型比較
圖3 兩種ADU比較
基于串行鏈路的Modbus通信網(wǎng)絡(luò )是一種主從式網(wǎng)絡(luò ),在串行網(wǎng)絡(luò )中只允許存在一個(gè)主節點(diǎn)和最多247個(gè)從節點(diǎn),在這種網(wǎng)絡(luò )下,標準Modbus ADU中的附加地址域只包含從節點(diǎn)的地址,可尋址范圍是0~247,地址0作為廣播模式地址使用,從節點(diǎn)地址的有效取值范圍是1~247,并且每個(gè)從節點(diǎn)的地址必須是唯一的,主節點(diǎn)不存在具體的地址值。主節點(diǎn)設備將要訪(fǎng)問(wèn)的從節點(diǎn)設備的地址放入到請求幀的地址域中,當該地址的從節點(diǎn)設備作出響應時(shí),將會(huì )把從節點(diǎn)設備的地址復制到響應幀的地址域中,主節點(diǎn)設備通過(guò)該地址得知是由哪個(gè)從節點(diǎn)設備發(fā)來(lái)的響應。
校驗域存放了根據報文內容經(jīng)由冗余校驗算法計算所得到的結果。在基于串行鏈路的Modbus通信網(wǎng)絡(luò )中有兩種傳輸方式:RTU和ASCII,這兩種傳輸方式的冗余校驗算法是不同的。
采用RTU通信模式要比ASCII模式在同樣波特率下能傳輸更多信息,在RTU模式底下是以二進(jìn)制編碼方式對傳輸數據進(jìn)行編碼,報文中每一個(gè)字節(8位二進(jìn)制位)包含了兩個(gè)十六進(jìn)制字符,同一報文內的字符必須連續傳輸。RTU模式字節傳輸格式由1位起始位,8位數據位,1位奇偶檢驗位和1位停止位依次組成,共占用11位二進(jìn)制位。當不使用奇偶檢驗時(shí),奇偶校驗位也作停止位使用,此時(shí)共有兩位停止位。RTU傳輸模式下幀的差錯校驗域內存放的是報文經(jīng)過(guò)循環(huán)冗余檢驗(CRC)算法計算得出的結果。
采用ASCII通信模式時(shí),每一個(gè)字節(8位二進(jìn)制位)用兩個(gè)ASCII字符表示。由于每個(gè)字節都要用兩個(gè)字符表示,數據域的長(cháng)度是RTU模式的兩倍,顯然在該模式下的傳輸效率要比RTU模式低。該模式的字節傳輸格式與RTU模式相似,只是數據位置占用7個(gè)二進(jìn)制位。ASCII模式下幀的差錯檢驗算法為縱向冗余校驗(LRC)。
評論