MODBUS協(xié)議簡介
? ? ? ? 1971年,Modicon公司首次推出了Modbus協(xié)議,ModbusRTU和Modbus ASCII誕生于此。后來施耐德電氣(SchneiderElectric)收購了Modicon公司,并在1997年推出了ModbusTCP協(xié)議。2004年,中國國家標(biāo)準(zhǔn)委員會正式把Modbus作為了國家標(biāo)準(zhǔn),開啟了Modbus為中國工業(yè)通信做貢獻(xiàn)的時代。
? ? ? ??通過此協(xié)議,設(shè)備之間可通過網(wǎng)關(guān)來進(jìn)行通信。Modbus協(xié)議具有標(biāo)準(zhǔn)、開放,可以支持多種電氣接口,數(shù)據(jù)幀格式簡單緊湊,數(shù)據(jù)傳輸量大、實時性好等特點(diǎn),在工業(yè)控制系統(tǒng)中得到了廣泛的應(yīng)用,已經(jīng)成為通用工業(yè)標(biāo)準(zhǔn)。深入分析Modbus協(xié)議實現(xiàn)原理和其安全性對提高工控系統(tǒng)安全性有著重要的現(xiàn)實意義。ModbusRTU和ModbusASCII主要用于串行通信領(lǐng)域,而ModbusTCP則常用于以太網(wǎng)通信?,F(xiàn)在,Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議標(biāo)準(zhǔn),并且現(xiàn)在是工業(yè)電子設(shè)備之間相當(dāng)常用的連接方式。

? ? ? ??Modbus使用一種簡單的MasterandSlave主從協(xié)議(客戶機(jī)/服務(wù)器協(xié)議)進(jìn)行通信??蛻魴C(jī)作為主站,向服務(wù)器發(fā)送請求;服務(wù)器(從站)接到請求后,對請求進(jìn)行分析并作出應(yīng)答。其中使用的通信幀被稱為應(yīng)用數(shù)據(jù)單元(Application Data Unit,ADU),它包括通信地址段、功能代碼段、數(shù)據(jù)段和校驗段,如下圖:

? ? ? ??一般使用上,監(jiān)控系統(tǒng)(HMI)可以為Master,PLC、電表、儀表等都為Slave,HMI系統(tǒng)一直PollingSlave的各種relayandregister最新數(shù)值,然后做顯示及各種邏輯計算及控制調(diào)整等處理。
? ? ? ??其中,功能代碼段和數(shù)據(jù)段組合稱為協(xié)議數(shù)據(jù)單元(Protocol Data Unit or Protocol Description Unit),PDU)。功能代碼段占用一個字節(jié),取值范圍為1~255,其中128~255為保留值,用于異常消息應(yīng)答報文。1~127為功能代碼編號,其中65~72和100~110為用戶自定義編碼。
? ? ? ??Modbus 協(xié)議是一種應(yīng)用層報文傳輸協(xié)議,包括ASCII、RTU、TCP三種報文類型,協(xié)議本身并沒有定義物理層,只是定義了控制器能夠認(rèn)識和使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的。
? ? ? ??Modbus 協(xié)議使用串口傳輸時可以選擇RTU或ASCII模式,并規(guī)定了消息、數(shù)據(jù)結(jié)構(gòu)、命令和應(yīng)答方式并需要對數(shù)據(jù)進(jìn)行校驗。ASCII 模式采用LRC校驗,RTU模式采用16 位CRC校驗。通過以太網(wǎng)傳輸時使用TCP,這種模式不使用校驗,因為TCP協(xié)議是一個面向連接的可靠協(xié)議。
