MODBUS 是MODICON公司最先倡導的一種軟的通訊規(guī)約,經(jīng)過大多數(shù)公司的實際應用,逐漸被認可,成為一種標準的通訊規(guī)約,只要按照這種規(guī)約進行數(shù)據(jù)通訊或傳輸,不同的系統(tǒng)就可以通訊。目前,在RS232/RS485通訊過程中,更是廣泛采用這種規(guī)約。
常用的MODBUS 通訊規(guī)約有兩種,一種是MODBUS ASCII,一種是MODBUS RTU。一般來說,通訊數(shù)據(jù)量少而且主要是文本的通訊則采用MODBUS ASCII規(guī)約,通訊數(shù)據(jù)數(shù)據(jù)量大而且是二進制數(shù)值時,多采用MODBUS RTU規(guī)約。
在實際的應用過程中,為了解決某一個特殊問題,人們喜歡自己修改MODBUS規(guī)約來滿足自己的需要(事實上,人們經(jīng)常使用自己定義的規(guī)約來通訊,這樣能解決問題,但不太規(guī)范)。更為普通的用法是,少量修改規(guī)約,但將規(guī)約格式附在軟件說明書一起,或直接放在幫助中,這樣就方便了用戶的通訊。
modbus rtu通訊傳送方式通訊傳送分為獨立的信息頭,和發(fā)送的編碼數(shù)據(jù)。以下的通訊傳送方式定義也與MODBUS RTU通訊規(guī)約相兼容:
初始結(jié)構(gòu) = ≥4字節(jié)的時間 地址碼 = 1 字節(jié) 功能碼 = 1 字節(jié) 數(shù)據(jù)區(qū) = N 字節(jié)
錯誤校檢 = 16位CRC碼 結(jié)束結(jié)構(gòu) = ≥4字節(jié)的時間
地址碼:地址碼為通訊傳送的第一個字節(jié)。這個字節(jié)表明由用戶設定地址碼的從機將接收由主機發(fā)送來的信息。并且每個從機都有具有唯一的地址碼,并且響應回送均以各自的地址碼開始。主機發(fā)送的地址碼表明將發(fā)送到的從機地址,而從機發(fā)送的地址碼表明回送的從機地址。
功能碼:通訊傳送的第二個字節(jié)。ModBus通訊規(guī)約定義功能號為1到127。本儀表只利用其中的一部分功能碼。作為主機請求發(fā)送,通過功能碼告訴從機執(zhí)行什么動作。作為從機響應,從機發(fā)送的功能碼與從主機發(fā)送來的功能碼一樣,并表明從機已響應主機進行操作。如果從機發(fā)送的功能碼的最高位為1(比如功能碼大與此同時127),則表明從機沒有響應操作或發(fā)送出錯。
數(shù)據(jù)區(qū):數(shù)據(jù)區(qū)是根據(jù)不同的功能碼而不同。數(shù)據(jù)區(qū)可以是實際數(shù)值、設置點、主機發(fā)送給從機或從機發(fā)送給主機的地址。 CRC碼:二字節(jié)的錯誤檢測碼。
modbus rtu通訊協(xié)議格式Modbus協(xié)議是應用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(例如以太網(wǎng))和其它設備之間可以通信。它已經(jīng)成為一通用工業(yè)標準。有了它,不同廠商生產(chǎn)的控制設備可以連成工業(yè)網(wǎng)絡,進行集中監(jiān)控。此協(xié)議定義了一個控制器能認識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。Modbus通信協(xié)議有3中模式,Modbus RTU 模塊廠家為那|通信的WCTU,支持Modbus RTU/Modbus ASCII/ModbusTCP 協(xié)議,多路自主定義模擬量采集和開關量/數(shù)字量接口。