ModBus協議在工業控制系統中的應用
一、ModBus協議簡介
當今世界,工業控制已從單機控制走向集中監控、集散控制。在進入網絡時代的今天,工業控制器連網也為網絡管理提供了方便。ModBus協議就是工業控制器的網絡協議中的一種。ModBus協議是Modicon公司于1978年發明的一種用于電子控制器進行控制和通訊的通訊協議。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以進行通信。它的開放性、可擴充性和標準化使它成為一個通用工業標準。有了它,不同廠商生產的控制設備可以簡單可靠地連成工業網絡,進行系統的集中監控,從而使它成為最流行的協議之一。
ModBus協議包括ASCII, RTU, PLUS, TCP等,并沒有規定物理層。此協議定義了控制器能夠認識和使用的消息結構,而不管它們是經過何種網絡進行通信的。標準的ModBus 是使用RS-232C 兼容串行接口, RS-232C規定了連接器針腳、接線、信號電平、波特率、奇偶校驗等信息,ModBus的ASCII, RTU協議則在此基礎上規定了消息、數據的結構、命令和應答的方式。ModBus控制器的數據通信采用Master/Slave方式(主/從),即Master端發出數據請求消息,Slave端接收到正確消息后就可以發送數據到Master端以響應請求;Master端也可以直接發消息修改Slave端的數據,實現雙向讀寫。
ModBus可以應用在支持ModBus協議的PLC和PLC之間、PLC和個人計算機之間、計算機和計算機之間、遠程PLC和計算機之間以及遠程計算機之間(通過Modem連接),可見ModBus的應用是相當廣泛的。由于ModBus是一個事實上的工業標準,許多廠家的PLC, HMI、組態軟件都支持ModBus,而且ModBus是一個開放標準,其協議內容可以免費獲得,一些小型廠商甚至個人都可根據協議標準開發出支持ModBus的產品或軟件,從而使其產品聯入到ModBus的數據網絡中。因此,ModBus有著廣泛的應用基礎。在實際應用中,可以使用RS232, RS 485 /422 , Modem加電話線、甚至TCP/IP來聯網。所以,ModBus的傳輸介質種類較多,可以根據傳輸距離來選擇。
二、ModBus協議的通訊格式
ModBus可分為兩種傳輸模式:ASCII模式和RTU模式。使用何種模式由用戶自行選擇,包括串口通信參數(波特率、校驗方式等)。在配置每個控制器的時候,同一個ModBus網絡上的所有設備都必須選擇相同的傳輸模式和串口參數。
2.1 ASCII模式
當控制器設為在ModBus網絡上以ASCII模式通信,在消息中的每個8Bit字節都作為兩個ASCII字符發送。這種方式的主要優點是字符發送的時間間隔可達到1秒而不產生錯誤。
表1 ASCII模式的消息幀
如表1所示,使用ASCII模式,消息以冒號(:)字符(ASCII碼3AH)作為起始位,以回車換行符(ASCII碼0DH, 0AH)作為結束符。傳輸過程中,網絡上的設備不斷偵測“:”字符,當有一個冒號接收到時,每個設備就解碼下個位的地址域,來判斷是否發給自己的。與地址域一致的設備繼續接受其它域,直至接受到回車換行符。除起始位和結束符外,其他域可以使用的傳輸字符是十六進制的0…9,A…F,當然也要用ASCII碼表示字符。當選用ASCII模式時,消息幀使用LRC(縱向冗長檢測)進行錯誤檢測。
2.2RTU模式
當控制器設為RTU模式時,消息幀中的每個8Bit字節包含兩個4Bit的十六進制字符。
表2 RTU模式的消息幀
該模式下消息發送至少要以3.5個字符時間的停頓間隔開始。傳輸過程中,網絡設備不斷偵測網絡總線,包括停頓間隔時間內。當第一個域(地址域)接收到,相應的設備就對接下來的傳輸字符進行解碼,一旦有至少3. 5個字符時間的停頓就表示該消息的結束。
在RTU模式中整個消息幀必須作為一連續的流轉輸,如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設備將刷新不完整的消息并假定下一字節是一個新消息的地址域。同樣地,如果一個新消息在小于3. 5個字符時間內接著前個消息開始,接收的設備將認為它是前一消息的延續。如果在傳輸過程中有以上兩種情況發生的話,必然會導致CRC校驗產生一個錯誤消息,反饋給發送方設備。
當控制器設為RTU(遠程終端單元)模式通信時,消息中的每個8Bit字節包含兩個4Bit的十六進制字符。這種模式與ASCII模式相比在同樣的波特率下,可比ASCII模式傳送更多的數據。
評論