Modbus是美國Modicon公司(即現(xiàn)在的Schneider Electric公司)于1979年開發(fā)的一種通信協(xié)議,其目的是采用一根雙絞線實現(xiàn)多個設(shè)備之間的通信。
Modbus很快就成為自動化工業(yè)領(lǐng)域事實上的標(biāo)準(zhǔn),Modicon公司把它向社會公開發(fā)布,不收任何專利費用。
通過Modbus 協(xié)議,可以輕松地實現(xiàn)不同廠家的控制設(shè)備(例如PLC、變頻器和DCS)之間的通信。
Modbus 協(xié)議采用問答式的通信方式,具有簡單、硬件便宜、通用性強(qiáng)、使用方便的優(yōu)點,容易開發(fā)和實現(xiàn)。Modbus RTU幾乎成了國產(chǎn)PLC和變頻器首選的通信協(xié)議。
Modbus 協(xié)議不需要專門的通信模塊,通信所需的堆棧和協(xié)議機(jī)制是以軟件形式實現(xiàn)的,屬于ISO-OSI 參考模型的第7層。它的另一個優(yōu)點是可以通過任何傳輸媒介進(jìn)行通信,包括雙絞線、無線通信、光導(dǎo)纖維、以太網(wǎng)、電話調(diào)制解調(diào)器、移動電話以及微波等。這樣可以很容易地在一個新的或者是現(xiàn)有的工廠里建立起Modbus連接。
目前使用的Modbus有三個版本:Modbus ASCII、Modbus RTU和Modbus/TCP。Modbus ASCII協(xié)議需要將一個字節(jié)的數(shù)據(jù)轉(zhuǎn)換為兩個字節(jié)的ASCII碼后發(fā)送。Modbus RTU協(xié)議的數(shù)據(jù)以二進(jìn)制進(jìn)行編碼,每個字節(jié)的數(shù)據(jù)只需要一個字節(jié)的通信量。
Modbus RTU通信采用主-從方式,最多傳送255個字節(jié)的數(shù)據(jù)。主設(shè)備與一個或多個從設(shè)備進(jìn)行通信。比較典型的主設(shè)備是PLC、PC、DCS(集散控制系統(tǒng))或者RTU(遠(yuǎn)程終端單元)。Modbus RTU的從設(shè)備一般是現(xiàn)場設(shè)備。當(dāng)Modbus RTU主設(shè)備想要從一臺從設(shè)備得到數(shù)據(jù)的時候,主設(shè)備發(fā)送一條包含該從設(shè)備站地址、所需要的數(shù)據(jù)以及一個用于檢測錯誤的CRC校驗碼。網(wǎng)絡(luò)上所有其它設(shè)備都可以接收到這條信息,但是只有地址被指定的從設(shè)備才會作出反應(yīng)。Modbus網(wǎng)絡(luò)上的從設(shè)備不能發(fā)起通信,它們只能在主設(shè)備對它說話的時候回答。
Modbus /TCP可以被理解為以太網(wǎng)上的Modbus。Modbus /TCP不過是采用TCP/IP標(biāo)準(zhǔn),簡單地把Modbus信息包打包壓縮而已。這樣Modbus /TCP設(shè)備就可以通過以太網(wǎng)和光纖網(wǎng)絡(luò)進(jìn)行連接和通信。與RS-485接口相比,Modbus /TCP還允許使用更多的地址、可以采用多主站架構(gòu)、傳送速率可以達(dá)到GB/s的水平。Modbus /TCP網(wǎng)絡(luò)的從站數(shù)量僅受限于網(wǎng)絡(luò)物理層的能力。通常從站的數(shù)量一般在1024個左右。
Modbus RTU采用16位的循環(huán)冗余校驗碼(CRC)。通過一個對數(shù)據(jù)進(jìn)行“或”運(yùn)算以及移位運(yùn)算的復(fù)雜程序,由主設(shè)備產(chǎn)生CRC,并且由接收設(shè)備進(jìn)行檢查。如果雙方計算出的CRC值不符,從設(shè)備就會要求重新傳送信息。
Modbus RTU協(xié)議分為Modbus RTU主站協(xié)議和Modbus RTU從站協(xié)議。Modbus通信是由功能碼來控制的,主站直接訪問從站的數(shù)據(jù)區(qū)。










