關于Modbus通訊協議的基本信息介紹
MODBUS基本概念
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。
Modbus具有以下幾個特點:
● 标准开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。
● Modbus支持多种电气接口,如RS232、RS485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
● Modbus协议帧格式简单、紧凑,通俗易懂,用户使用容易,厂商开发简单。
MODBUS網絡的兩種傳輸模式
控制器能設置爲兩種傳輸模式(ASCII或RTU)中的任何一種在標准的Modbus網絡通信。用戶選擇想要的模式,包括串口通信參數(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網絡上的所有設備都必須選擇相同的傳輸模式和串口參數。
●ASCII模式
當控制器設爲在Modbus網絡上以ASCII(美國標准信息交換代碼)模式通信,在消息中的每個8Bit字節都作爲一個ASCII碼(兩個十六進制字符)發送。這種方式的主要優點是字符發送的時間間隔可達到1秒而不産生錯誤。
●RTU模式
當控制器設爲在Modbus網絡上以RTU(遠程終端單元)模式通信,在消息中的每個8Bit字節包含兩個4Bit的
十六進制字符。
這種方式的主要優點是:在同樣的波特率下,可比ASCII模式傳送更多的數據。
Modbus RTU信息帧
Modbus信息以幀的方式傳輸,每幀有確定的起始點和結束點,使接收設備在信息的起點開始讀地址,並確定要尋址的設備,以及信息傳輸的結束時間。
RTU模式中,信息開始至少需要有3.5個字符的靜止時間,依據使用的波特率,很容易計算這個靜止的時間(如下圖中的T1-T2-T3-T4)。
各個區允許發送的字符均爲16進制的0-9,A-F。
網絡上的設備連續監測網絡上的信息,包括靜止時間。當接收地址數據時,每台設備立即對它解碼,以決定是否是自己的地址。發送完後一個字符號後,也有一個3.5個字符的靜止時間,然後才能發送一個新的信息。整個信息必須連續發送。如果在發送幀信息期間,出現大于1.5個字符的靜止時間時,則接收設備刷新不完整的信息,並假設下一個地址數據。
地址設置
有效的從機設備地址範圍0-247(十進制),各從機設備的尋址範圍爲1-247。
主機把從機地址放入信息幀的地址區,並向從機尋址。從機響應時,把自己的地址放入響應信息的地址區,讓主機識別已作出響應的從機地址。
地址0爲于廣播地址,所有從機均能識別。
功能碼設置
Modbus常用的功能代碼:
數據區的內容
數據區有2個16進制的數據位,數據範圍爲00-FF(16進制)。
主機向從機設備發送的信息數據中包含了從機執行主機功能代碼中規定的請求動作,如邏輯線圈地址,處理對象的數目,以及實際的數據字節數等。
7 错误校验
CRC域是兩個字節,包含一16位的值,2個8位字節,它由傳輸設備計算後加入到消息中。接收設備重新計算收
到消息的CRC,並與接收到的CRC域中的值比較,如果兩值不同,則有誤。