天天看點

物聯網協定-MODBUS

作者:AIoT歐陽子

物聯網平台支援的Modbus協定是基于TCP連接配接,即Modbus over TCP, 物聯網平台作為主機,将資料封裝在TCP的資料中進行收發資料,利用DTU實作的簡單的透傳能力,可以實作總線裝置與平台的Modbus協定通信,可以廣泛應用到使用Modbus協定的多種行業中。Modbus通訊協定是一種工業現場總線通訊協定,在工業自動化控制中應用較多,可以實作工業資料采集與控制等功能。

Modbus介紹

Modbus是一種串行通信協定,是Modicon公司(現在的施耐德電氣Schneider Electric)于1979年為使用可程式設計邏輯控制器(PLC)通信而發表。Modbus已經成為工業領域通信協定的業界标準(De facto),并且現在是工業電子裝置之間常用的連接配接方式。

ASCII&RTU規約

常用的MODBUS通訊規約有兩種,一種是MODBUS ASCII,一種是MODBUS RTU。每個裝置必須都有相同的傳輸模式。所有裝置都支援RTU模式,ASCII傳輸模式是選項。

  • ASCII模式:當控制器設為在Modbus網絡上以ASCII(美國标準資訊交換代碼)模式通信,在消息中的每個8Bit位元組都作為兩個ASCII字元發送。這種方式的主要優點是字元發送的時間間隔可達到1秒而不産生錯誤。代碼系統:十六進制,ASCII字元0...9,A...F,消息中的每個ASCII字元都是一個十六進制字元組成。每個位元組的位:1個起始位;7個資料位,最小的有效位先發送;1個奇偶校驗位,無校驗則無;1個停止位(有校驗時),2個Bit(無校驗時)。錯誤檢測域:LRC(縱向冗長檢測)。
  • RTU模式:當控制器設為在Modbus網絡上以RTU(遠端終端單元)模式通信,在消息中的每個8Bit位元組包含兩個4Bit的十六進制字元。這種方式的主要優點是:在同樣的波特率下,可比ASCII方式傳送更多的資料。代碼系統:8位二進制,十六進制數0...9,A...F;消息中的每個8位域都是一個兩個十六進制字元組成。每個位元組的位:1個起始位;8個資料位,最小的有效位先發送;1個奇偶校驗位,無校驗則無;1個停止位(有校驗時),2個Bit(無校驗時)。錯誤檢測域:CRC(循環冗長檢測)。

MODBUS的ASCII協定和RTU協定相比,MODBUS ASCII協定擁有開始和結束标記,而MODBUS RTU卻沒有,是以ASCII協定的程式中對資料包的處理能更加友善。

MODBUS ASCII協定的DATA域傳輸的都是可見的ASCII字元,是以在調試階段就顯得更加直覺,另外它的LRC校驗程式也比較容易編寫,這些都是MODBUS ASCII的優點。

MODBUS ASCII的主要缺點是傳輸效率低,因為它傳輸的都是可見的ASCII字元,原來用RTU傳輸的資料每一個位元組,用ASCII的話都要把這個位元組拆分兩個位元組,比如RTU傳輸一個十六進制數0xF9,ASCII就需要傳輸字元''F''和字元''9'',對應的ASCII碼0x46和0x39兩個位元組,這樣它的傳輸的效率肯定就比RTU低。

是以一般來說,如果所需要傳輸的資料量較小可以考慮使用ASCII協定,如果所需傳輸的資料量比較大,最好能使用RTU協定。

另外,由于ASCII協定有開始标志和結束标志,是以一個資料包之間的各位元組間的傳輸間隔時間可以大于1秒,而MODBUS RTU方式下,由于沒有規定開始和結束标記,是以協定規定每兩個位元組之間發送或者接收的時間間隔不能超過3.5倍字元傳輸時間。如果兩個字元時間間隔超過了3.5倍的字元傳輸時間,就認為一幀資料已經接收,新的一幀資料傳輸開始,是以RTU方式下兩個位元組間傳輸間隔有時間要求。

Modbus TCP/IP

Modbus和Modbus Plus走的是現場總線,Modbus TCP/IP走的是基于Modbus的以太網,Modbus可以通過以太網實作,但必須是Modbus TCP/IP,使用TCP/IP Modbus的原因: 

  • TCP/IP已成為資訊行業的事實标準:世界上93%的網絡都使用TCP/IP,隻要在應用層使用Modbus TCP,就可實作工業以太網資料交換;
  • 易于與各種系統互連:可用于管理網、實時監控網及現場裝置通信;
  • 網絡實施價格低廉:可全部使用通用網絡部件;
  • 使用者強烈要求:目前中國已把Modbus TCP作為工業網絡标準之一,使用者可免費獲得協定及樣闆程式,可在Unix、Linux、Windows下運作,不需要專門驅動程式。在國外,Modbus TCP被國際半導體業SEMI定為網絡标準,國際水處理、電力系統也把它作為應用的事實标準,還有越來越多行業作為标準來用;
  • 高速的資料:使用者最關心的是所使用網絡的傳輸能力,100M以太網的傳輸結果為:每秒4000個Modbus TCP封包,而每個封包可傳輸125個字(16bit),故相當于4000×125=500000個模拟量資料(8000000開關量!);
  • 廠家能提供完整解決方案:工業以太網的接線元件,包括工業內建器、工業交換機、工業收發器、工業連接配接電纜。工業以太網伺服器,包括遠端、分布式I/O掃描功能,裝置位址IP的設定功能,故障裝置線上更換。功能,分組的資訊釋出與訂閱功能,網絡動态監視功能,還有支援瘦客戶機的Web服務。其他工控裝置的支援:如工業用人機界面、變頻器、軟起動器、電動機控制中心、以太網I/O、各種現場總線的網橋、甚至帶TCP/IPModbus的傳感器,都為使用者使用提供了友善。

繼續閱讀