資源描述:
《modbus通訊協(xié)議詳情-rtu》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、Modbus通訊協(xié)議(RTU傳輸模式)Modbus通訊協(xié)議(RTU傳輸模式)15Modbus通訊協(xié)議(RTU傳輸模式)本說明僅做內(nèi)部參考,詳細(xì)請參閱英文版本。第一章Modbus協(xié)議簡介Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控。此協(xié)議定義了一個控制器能認(rèn)識使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進行通信的。它描述了一控制器請求訪問其它設(shè)備的過程,如果回應(yīng)來自
2、其它設(shè)備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。當(dāng)在一Modbus網(wǎng)絡(luò)上通信時,此協(xié)議決定了每個控制器須要知道它們的設(shè)備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯誤檢測的方法。協(xié)議在一根通訊線上使用應(yīng)答式連接(半雙工),這意味著在一根單獨的通訊線上信號沿著相反的兩個方向傳輸。首先,主計算機的信號尋址到一臺唯一的
3、終端設(shè)備(從機),然后,在相反的方向上終端設(shè)備發(fā)出的應(yīng)答信號傳輸給主機。協(xié)議只允許在主計算機和終端設(shè)備之間,而不允許獨立的設(shè)備之間的數(shù)據(jù)交換,這就不會在使它們初始化時占據(jù)通訊線路,而僅限于響應(yīng)到達(dá)本機的查詢信號。1.1傳輸方式傳輸方式是一個信息幀內(nèi)一系列獨立的數(shù)據(jù)結(jié)構(gòu)以及用于傳輸數(shù)據(jù)的有限規(guī)則,以RTU模式在Modbus總線上進行通訊時,信息中的每8位字節(jié)分成2個4位16進制的字符,每個信息必須連續(xù)傳輸下面定義了與Modebus協(xié)議–RTU方式相兼容的傳輸方式。代碼系統(tǒng)·8位二進制,十六進制數(shù)0...9,A...F·消息中的每個8
4、位域都是一個兩個十六進制字符組成每個字節(jié)的位·1個起始位·8個數(shù)據(jù)位,最小的有效位先發(fā)送15Modbus通訊協(xié)議(RTU傳輸模式)·1個奇偶校驗位,無校驗則無·1個停止位(有校驗時),2個Bit(無校驗時)錯誤檢測域·CRC(循環(huán)冗長檢測)1.2協(xié)議當(dāng)信息幀到達(dá)終端設(shè)備時,它通過一個簡單的“口”進入尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信封”(數(shù)據(jù)頭),讀取數(shù)據(jù),如果沒有錯誤,就執(zhí)行數(shù)據(jù)所請求的任務(wù),然后,它將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機地址(Address)、被
5、執(zhí)行了的命令(Function)、執(zhí)行命令生成的被請求數(shù)據(jù)(Data)和一個校驗碼(Check)。發(fā)生任何錯誤都不會有成功的響應(yīng)。1.2.1信息幀AddressFunctionDataCheck8-Bits8-BitsNx8-Bits16-Bits圖1–1.信息幀格式特注:Modbus信息幀所允許的最大長度為256個字節(jié),即N的范圍是大于等于零且小于等于252(N{0,252})。即,所有的數(shù)據(jù)一共256個,數(shù)據(jù)剩下253個。1.2.2地址(Address)域信息幀地址域(信息地址)在幀的開始部分,由8位組成,有效的從機設(shè)備地址范
6、圍0-247(十進制),各從機設(shè)備的尋址范圍為1-247。主機把從機地址放入信息幀的地址區(qū),并向從機尋址。從機響應(yīng)時,把自己的地址放入響應(yīng)信息的地址區(qū),讓主機識別已作出響應(yīng)的從機地址。地址0為廣播地址,所有從機均能識別。當(dāng)Modbus協(xié)議用于高級網(wǎng)絡(luò)時,則不允許廣播或其它方式替代。1.2.3功能(Function)域信息幀功能域代碼告訴了被尋址到的終端執(zhí)行何種功能。有效碼范圍1-225(十進制),有些代碼是適用于所有控制器,有些適應(yīng)于某種控制器,還有些保留以備后用。有關(guān)功能代替碼的全部內(nèi)容見附錄A。當(dāng)主機向從句發(fā)送信息時,功能代碼
7、向從機說明應(yīng)執(zhí)行的動作。如讀一組離散式線圈或輸入信號的ON/OFF狀態(tài),讀一組寄存器的數(shù)據(jù),讀從機的診斷狀態(tài),寫線圈(或寄存器),允許下截、記錄、確認(rèn)從機內(nèi)的程序等。當(dāng)從機響應(yīng)主機時,功能代碼可說明從機正常響應(yīng)或出現(xiàn)錯誤(即不正常響應(yīng)),正常響應(yīng)時,從句簡單返回原始功能代碼;不正常響應(yīng)時,從機返回與原始代碼相等效的一個碼,并把最高有效位設(shè)定為“1”。如,主機要求從機讀一組保持寄存器時,則發(fā)送信息的功能碼為:00000011(十六進制03)
若從機正確接收請求的動作信息后,則返回相同的代碼值作為正常響應(yīng)。發(fā)現(xiàn)錯時,則返回一個不正常響
8、信息:10000011(十六進制83)15Modbus通訊協(xié)議(RTU傳輸模式)從機對功能代碼作為了修改,此外,還把一個特殊碼放入響應(yīng)信息的數(shù)據(jù)區(qū)中,告訴主機出現(xiàn)的錯誤類型和不正常響應(yīng)的原因,不正常響應(yīng)見附錄B。主機設(shè)備的應(yīng)用程序負(fù)責(zé)處理不正常響應(yīng)