Modbus tcp通訊協(xié)議是什么?
什么是Modbus協(xié)議?
Modbus 是一種廣泛應(yīng)用于工業(yè)控制領(lǐng)域的通用通訊協(xié)議,包括RTU、ASCII和TCP。標(biāo)準(zhǔn)Modbus協(xié)議物理層接口包括RS232、RS485和以太網(wǎng)。
TCP 則是一種廣泛應(yīng)用的傳輸協(xié)議。將這兩種協(xié)議結(jié)合在一起,可以使得工業(yè)控制系統(tǒng)之間的通信更加高效和穩(wěn)定。
Modbus 是一種主從式的串行通信協(xié)議,它由主設(shè)備 (Master) 和從設(shè)備 (Slave) 組成。主設(shè)備可以向從設(shè)備發(fā)送指令,并從設(shè)備返回響應(yīng)。Modbus 協(xié)議采用數(shù)據(jù)塊的方式進(jìn)行數(shù)據(jù)傳輸,每個(gè)數(shù)據(jù)塊都包含一定的元數(shù)據(jù),如數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)類型、錯(cuò)誤代碼等。
Modbus TCP 通訊協(xié)議是將 Modbus 協(xié)議和 TCP 傳輸協(xié)議結(jié)合在一起的通訊協(xié)議。它允許主設(shè)備 (Master) 和從設(shè)備 (Slave) 之間進(jìn)行通信,并且可以在 TCP 傳輸協(xié)議的基礎(chǔ)上進(jìn)行數(shù)據(jù)包的傳輸和交換。Modbus TCP 通訊協(xié)議的基本原理是將 Modbus 數(shù)據(jù)塊封裝在 TCP 數(shù)據(jù)包中,并通過 TCP 傳輸協(xié)議進(jìn)行傳輸。
在實(shí)際應(yīng)用中,Modbus TCP 通訊協(xié)議的應(yīng)用場(chǎng)景非常廣泛。它可用于工業(yè)自動(dòng)化控制、數(shù)據(jù)采集、能源管理、樓宇自控等領(lǐng)域。Modbus TCP 通訊協(xié)議可以提高工業(yè)控制系統(tǒng)之間的通信效率,并增強(qiáng)系統(tǒng)的可擴(kuò)展性和可靠性。
ModbusRTU和ModbusASCII均處于串行傳輸模式。其中ModbusRTU采用二進(jìn)制表示,ModbusASCII采用ASCII碼傳輸,并使用特殊字符作為其字節(jié)的開始和結(jié)束標(biāo)識(shí)。其傳輸效率遠(yuǎn)低于ModbusRTU協(xié)議。ModbusTCP是通過工業(yè)以太網(wǎng)TCP/IP網(wǎng)絡(luò)傳輸?shù)腗odbus通信。Modbus數(shù)據(jù)傳輸提供連接到以太網(wǎng)TCP/IP網(wǎng)絡(luò)的客戶端和服務(wù)器之間的實(shí)時(shí)通信。
Modbus協(xié)議層
Modbus協(xié)議定義了獨(dú)立于基本通信層的簡(jiǎn)單協(xié)議數(shù)據(jù)單元(PDU)。特定總線或網(wǎng)絡(luò)上的Modbus協(xié)議映射可在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域。
協(xié)議數(shù)據(jù)單元(PDU)
PDU和它的處理程序組成了 ModBus應(yīng)用程序協(xié)議的核心。在此基礎(chǔ)上,給出了協(xié)議數(shù)據(jù)單元的格式,協(xié)議中所使用的數(shù)據(jù)概念,函數(shù)碼的存取方式,函數(shù)碼的具體執(zhí)行方式和約束條件。modbusPDU格式是一個(gè)函數(shù)編碼,后面是一套相應(yīng)的數(shù)據(jù)。資料的尺寸及內(nèi)容是以函數(shù)碼來規(guī)定的,并且所有的 PDU (函數(shù)碼及資料)的尺寸不得大于253個(gè)字節(jié)。每一種函數(shù)編碼都具有一種特殊的行為,這種行為可以通過從機(jī)來執(zhí)行。
一般情況下, MODBUS可以存取的資料儲(chǔ)存在四種資料庫(kù)或位址中:線圈狀態(tài),分立輸入,保持寄存器,以及輸入寄存器。這些資料庫(kù)會(huì)定義所包含之資料的型別與存取。由于該裝置在本機(jī)存放,因此可以從該裝置直接存取該資料。取而代之的是, ModBus的宿主需要使用不同的函數(shù)代碼來存取這個(gè)數(shù)據(jù)。
應(yīng)用數(shù)據(jù)單元(ADU)
Adu有三個(gè)標(biāo)準(zhǔn)格式,即 TCP,遠(yuǎn)程終端單元(RTU)和 ASCII。傳統(tǒng)的串行線一般采用 RTU、 ASCIIAdu等,傳統(tǒng)的 TCP/IP、 UDP/IP等都采用了 TCP。
與其它通訊協(xié)議相比, MODBUS的應(yīng)用更為廣泛,其主要理由有:
1) ModBus能夠支持RS-23285 (串行)等許多電子接口,并且能夠通過雙絞線,光纖,無(wú)線等不同的媒體進(jìn)行通信。
2)模總線框架結(jié)構(gòu)簡(jiǎn)潔,容易理解,便于研制。
3)具有良好的可靠性。ModBus協(xié)議要求對(duì)數(shù)據(jù)進(jìn)行檢查。在 ASCII方式和 RTU方式分別采用了 LRC和16比特的 CRC兩種方式。另外, MODBUS系統(tǒng)還采用了主從式的定時(shí)收發(fā)方式。在實(shí)際應(yīng)用中,若從站發(fā)生故障、停電等情況,則由主端來判斷是否發(fā)生故障,并在故障排除后,再由主端自動(dòng)恢復(fù)。