modbus是美國的modicon公司開發的一種報文傳輸協議,2023年該公司成為施耐德公司的一部分。modbus協議在工業控制中得到了廣泛的應用,它已經成為一種通用的工業標準,該協議支援rs-232、rs-422、rs-485和乙太網裝置。不同廠商生產的控制裝置通過modbus協議可以連成通訊網路,進行集中監控。許多任務控產品,例如plc、變頻器、人機介面、dcs和自動化儀表等,都在廣泛地使用modbus協議。
根據傳輸網路型別的不同分為序列鏈路上的modbus和基於tcp/ip協議的modbus。
modbus序列鏈路協議是乙個主-從協議,採用請求-響應方式,主站發出帶有從站位址的請求報文,具有該位址的從站接收到後發出響應報文進行應答。
modbus協議位於osi模型的第二層。序列匯流排中只有乙個主站,可以有1~247個從站。modbus通訊只能由主站發起,從站在沒有收到來自主站的請求時,不會傳送資料,從站之間也不會互相通訊。
2.modbus的報文傳輸模式
序列鏈路上的modbus協議有ascii和rtu(遠端終端單元)這兩種報文傳輸模式,同一modbus網路上所有的站都必須選擇相同的傳輸模式和串列埠引數。
(1)ascii模式
當控制器設為在modbus網路上以ascii(美國標準資訊交換**)模式通訊時,報文幀中的每個8位位元組都轉換為兩個ascii字元傳送。下面是ascii模式的報文格式:
: 位址 功能碼 資料位元組數 資料1……資料n lrc高位元組 lrc低位元組 回車 換行
報文中的每個ascii字元都由十六進製制字元組成,傳輸的每個字元包含乙個起始位、7個資料位、乙個奇偶校驗位和乙個停止位;如果沒有校驗位,則有兩個停止位。modbus協議需要對資料進行校驗,序列協議中除了奇偶校驗外,ascii模式採用縱向冗餘校驗(lrc),計算lrc時不包括開始的冒號符、lrc本身和回車換行符。
(2)rtu模式
modbus網路上的rtu模式的報文以位元組為單位進行傳輸,乙個位元組由兩個十六進製制數組成。在同樣的波特率下,傳輸效率比ascii模式的高。
傳輸的每個位元組包含乙個起始位,8個資料位(先傳送最低的有效位),奇偶校驗位、停止位與ascii模式的相同,報文最長為256位元組。
modbus的rtu模式報文的最後兩個位元組是迴圈冗餘校驗碼(crc)。其校驗方式是將整個報文的所有位元組(不包括最後兩個位元組)按規定的方式進行位移並進行xor(異或)計算。接收方在收到該字串時按同樣的方式進行計算,並將結果與收到的迴圈冗餘校驗碼進行比較,如果一致則認為通訊正確,如果不一致,則認為通訊有誤,從站將傳送crc錯誤應答。modbus中rtu採用crc-16的冗餘校驗方式。
下圖是modbus rtu通訊幀的基本結構,從站位址為0~247,它和功能碼均佔乙個位元組,命令幀中plc位址區的起始位址和crc各佔乙個字,資料以字或位元組為單位(與功能碼有關),以字為單位時高位元組在前,低位元組在後。但是crc的低位元組在前,高位元組在後。
位址 功能碼 資料1……資料n crc高位元組 crc低位元組
modbus包括多種功能,每一功能都有相應的功能**。最基本的功能主要包括ai/ao、di/do資料的傳送。
modbus除了定義通訊功能碼外,同時還定義了出錯碼,這有助於通訊主站發現通訊的錯誤內容和原因,並採取相應措施,從而保證了通訊的可靠進行。
modbus定義的出錯資訊為:指定的位址錯誤、指定的資料量出錯、從站自身的錯誤、無法應答請求或執行要求指令、從站無暇處理主站傳送的通訊請求指令等。錯誤資訊對應錯誤**。主站在接收到錯誤碼後,根據錯誤的原因採取相應措施。例如改變資料位址、加大傳送間隔和重發等。
作者編寫的《plc程式設計及應用》和《s7-1200程式設計及應用》詳細介紹了實現plc與其他裝置的modbus rtu通訊的方法。
現場匯流排對比 CAN LIN RS485
各種控制系統傳輸的場合 匯流排 rs485 一主多從的通訊方式,適用於匯流排通訊,只是物理上用了rs485的電平標準 選擇匯流排時,需要考慮 傳輸速率 傳輸距離 傳輸速率與傳輸距離往往成反比 rs485 10mbps max can 1mbps max,幾十公尺 當資料在幾kbps時,rs485無中...
從匯流排隔離產品看工業現場變化
從去年開始各個ic的大鱷們都在不停的完善自己的匯流排隔離產品線,adi nxp ti linear exar等均推出了磁或者光隔離的rs232 485 can等隔離晶元。這些廠商對市場的敏感總是在大規模應用前的3年內已經做好了充足的準備,從產品定位 研發 測試 市場宣傳到後期的售後服務等。從目前各家...
現場匯流排技術,主要有哪些優點
現場匯流排技術有以下幾個優點 1 有助於工業企業降低生產成本 提高生產效率 2 由於分散在前端的智慧型裝置能執行較為複雜的任務,不再需要單獨的控制器 計算單元等,節省了硬體投資和使用面積 3 高度的系統整合自主權,可以通過比較靈活選擇合適的廠家產品 整體系統的可靠性和準確性也大為提高。這一切都幫助使...