Modbus protocol.doc_第1頁
Modbus protocol.doc_第2頁
Modbus protocol.doc_第3頁
Modbus protocol.doc_第4頁
Modbus protocol.doc_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Modbus 協(xié)議1.Modbus簡介 Modbus協(xié)議即為可編程控制器和控制網(wǎng)絡(luò)之間相互通訊的語言,是一項應(yīng)用層傳輸協(xié)議。它提供的是一種客戶機(jī)/服務(wù)器的通信工具,是一種請求/應(yīng)答類的通信協(xié)議。該協(xié)議位于OSI 模型的第二層。一個主從類型的系統(tǒng)有一個向某個“子”節(jié)點(diǎn)發(fā)出顯式命令并處理響應(yīng)的節(jié)點(diǎn)(主節(jié)點(diǎn))。典型的子節(jié)點(diǎn)在沒有收到主節(jié)點(diǎn)的請求時并不主動發(fā)送數(shù)據(jù),也不與其它子節(jié)點(diǎn)通信。在物理層,Modbus串行鏈路系統(tǒng)可以使用不同的物理接口(RS485、RS232)。最常用的是TIA/EIA-485 (RS485) 兩線制接口。作為附加的選項,也可以實(shí)現(xiàn)RS485 四線制接口。當(dāng)只需要短距離的點(diǎn)到點(diǎn)通信時,TIA/EIA-232-E (RS232) 串行接口也可以使用。其參考模型如下圖a:圖a Modbus協(xié)議參考模型主要特點(diǎn):MODBUS產(chǎn)品開發(fā)成本低,簡單易用,并且現(xiàn)在已有很多工控器、PLC、變頻器、顯示屏等都具有MODBUS通信接口,所以它已經(jīng)成為一種公認(rèn)的通信標(biāo)準(zhǔn)。通過MODBUS總線,可以很方便地將不同廠商生產(chǎn)的控制設(shè)備連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控,并且MODBUS總線產(chǎn)品具有通信協(xié)議簡潔,系統(tǒng)結(jié)構(gòu)簡單,性能穩(wěn)定,應(yīng)用方便,適宜應(yīng)用在信息量不大工業(yè)控制系統(tǒng)中。2.Modbus的協(xié)議描述 (1)Modbus查詢響應(yīng)模式從機(jī)響應(yīng)信息主機(jī)查詢信息 8位格式 數(shù)據(jù)字節(jié)功能代碼設(shè)備地址錯誤校驗(yàn)8 位格式 數(shù)據(jù)字節(jié)錯誤校驗(yàn)功能代碼設(shè)備地址 圖b 查詢響應(yīng)模式如圖b,是一個完整的主從查詢相應(yīng)周期,這里主機(jī)是客戶機(jī),從機(jī)是服務(wù)器,其通信遵循以下的過程:(1)客戶端準(zhǔn)備請求并向服務(wù)器發(fā)送請求;(2)服務(wù)器分析并處理客戶端的請求,然后向客戶端發(fā)送結(jié)果;(3)如果出現(xiàn)任何差錯,服務(wù)器首先進(jìn)行差錯檢驗(yàn),將返回一個異常功能碼給客戶端。當(dāng)Modbus從機(jī)對主機(jī)響應(yīng)時,它使用功能碼域來指示正常(無差錯)響應(yīng)或者出現(xiàn)某種差錯(稱為異常響應(yīng))對于一個正常響應(yīng)來說,服務(wù)器僅復(fù)制原始功能碼,如圖c所示。圖c Modbus協(xié)議正常響應(yīng)對于異常響應(yīng)服務(wù)器將原始功能碼的最高有效位設(shè)置邏輯1后返回,異常碼指示差錯類型,如圖d。圖d Modbus協(xié)議異常響應(yīng) (2)Modbus定義的兩種數(shù)據(jù)單元 MODBUS協(xié)議定義了與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(PDU)和應(yīng)用數(shù)據(jù)單元(ADU),后者能夠使得特定總線或網(wǎng)絡(luò)上的MODBUS協(xié)議映射上引入一些附加域,比如地址碼和校驗(yàn)碼。具體格式如圖e:ADU功能碼地址碼效驗(yàn)碼數(shù)據(jù)信息PDU 圖e PDU和ADU數(shù)據(jù)單元關(guān)系 PDU內(nèi)容即為查詢和響應(yīng)信息中的功能代碼和8位格式的數(shù)據(jù)信息,而ADU是在PDU的基礎(chǔ)上加上控制設(shè)備的地址信息和效驗(yàn)碼。 (3)Modbus的兩種傳輸方式MODBUS設(shè)置兩種傳輸模式(ASCII或l刪)在標(biāo)準(zhǔn)的MODBUS網(wǎng)絡(luò)通信。用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗(yàn)方式等),在配置每個采集器的時候,在一個MODBUS網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。所選的ASCII或RTU方式僅適用于標(biāo)準(zhǔn)MODBUS網(wǎng)絡(luò),它們定義了在這些網(wǎng)絡(luò)上連續(xù)傳輸?shù)南⒍蔚拿恳晃唬约皼Q定怎樣將信息打包成消息域和如何校驗(yàn)。在其它網(wǎng)絡(luò)上(MAP和MODBUSPLtts),MODBUS消息被轉(zhuǎn)成與串行傳輸無關(guān)的幀。此外所有設(shè)備必須必須實(shí)現(xiàn)RTU模式,ASCII 傳輸模式是選項。設(shè)備應(yīng)該由用戶設(shè)成期望的模式,RTU或ASCII,而默認(rèn)設(shè)置必須為RTU模式。(a)ASCII模式Modbus協(xié)議以ASCII模式通信時,在消息中的每個8Bit字節(jié)都作為兩個ASCII字符發(fā)送。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時間問隔可達(dá)到1秒而不產(chǎn)生錯誤,而且這種模式下發(fā)送的格式中有開始標(biāo)記(“:”為開始標(biāo)志)和結(jié)束標(biāo)志(“CR或LF”)。ASCII模式中字節(jié)的格式如下:編碼系統(tǒng):16進(jìn)制,ASCII字符O9,AF。消息:消息中每個ASCII字符都是一個十六進(jìn)制字符組成。數(shù)據(jù)位:1個起始位,7個數(shù)據(jù)位,最小的有效位先發(fā)送;有奇偶校驗(yàn)時有 1個停止位,無校驗(yàn)時則有2個停止位。錯誤檢測域:LRC(縱向冗長檢測)。(b)RTU模式Modbus協(xié)議以RTU模式通信時,在消息中的每個8Bjt字節(jié)包含兩個4Bit的十六進(jìn)制字符。這種方式的主要優(yōu)點(diǎn)是:在同樣的波特率下,可比ASCII方式傳送更多的數(shù)據(jù)。RTU模式中字節(jié)的格式如下:代碼系統(tǒng):8位二進(jìn)制,十六進(jìn)制數(shù)09,AF消息:消息中的每個8位域都是一個兩個十六進(jìn)制字符組成數(shù)據(jù)位:1個起始位,8個數(shù)據(jù)位,最小的有效位先發(fā)送,有奇偶校驗(yàn)時有 1個停止位,無校驗(yàn)時則有2個停止位。錯誤檢測域:CRC(循環(huán)冗長檢測)。通過上述描述來看,得出以下結(jié)論:ASCII協(xié)議和R1U協(xié)議相比前者擁有開始和結(jié)束標(biāo)記,因此在進(jìn)行程序處理時能更加方便,而且由于傳輸?shù)亩际强梢姷腁SCII字符,所以進(jìn)行調(diào)試時就更加的直觀,另外它的LRC校驗(yàn)也比較容易。但是因?yàn)樗鼈鬏數(shù)亩际强梢姷腁SCII字符,傳輸?shù)臄?shù)據(jù)每一個字節(jié)ASCII都要用兩個字節(jié)來傳輸,比如傳輸一個十六進(jìn)制數(shù)0xF9,ASCII就需要傳輸F9的ASCII碼0X39和0X46兩個字節(jié),這樣它的傳輸?shù)男示捅容^低。所以一般來說,如果所需要傳輸?shù)臄?shù)據(jù)量較小可以考慮使用ASCII協(xié)議,如果所需傳輸?shù)臄?shù)據(jù)量比較大,最好用RTU模式。綜合如下表(1).表(1) ASCII模式和RTU模式比較3.Modbus的消息幀格式 (1)ASCII消息幀格式 由發(fā)送設(shè)備將Modbus 報文構(gòu)造為帶有已知起始和結(jié)束標(biāo)記的幀。這使設(shè)備可以在報文的開始接收新幀,并且知道何時報文結(jié)束。不完整的報文必須能夠被檢測到而錯誤標(biāo)志必須作為結(jié)果被設(shè)置。ASCII模式中,消息以(:)號字符(ASCII碼3AH)開始,以回車-換行(CL,LF)符(ASCII碼ODH和OAH)結(jié)束??梢詡鬏?shù)淖址麨槭M(jìn)制字符0-9,AF。網(wǎng)絡(luò)上的設(shè)備連續(xù)檢測并接收一個冒號(:)時,每臺設(shè)備對地址解碼,查看是否與自己的地址匹配,如果匹配則接受消息。消息中字符之間發(fā)送的時間最大間隔為1秒,若大于1秒,則接收設(shè)備認(rèn)為出現(xiàn)了一個錯誤。其幀格式如圖f。圖f ASCII幀格式Modbus ASCII 幀的最大尺寸為513 個字符,因?yàn)闉榱舜_保ASCII模式和RTU模式在Modbus應(yīng)用級兼容,ASCII數(shù)據(jù)域最大數(shù)據(jù)長度為(2x252) 是RTU 數(shù)據(jù)域(252)的兩倍。(因?yàn)锳SCII模式中需要兩個ASCII碼,所以是兩倍)ASCII報文幀的傳輸如下圖g:圖g ASCII 傳輸模式狀態(tài)圖(2) RTU幀 在RTU模式,報文幀由時長至少為3.5個字符時間的空閑間隔區(qū)分。在后續(xù)的部分這個個時間區(qū)成為3.5t。整個報文幀必須以連續(xù)的字符流發(fā)送,在結(jié)束部分也需要至少3.5個字符的停頓時間標(biāo)志傳輸?shù)慕Y(jié)束。如果兩個字符之間的空閑間隔大于1.5 個字符時間,則報文幀被認(rèn)為不完整應(yīng)該被接收節(jié)點(diǎn)丟棄。如下圖h,RTU幀格式如圖i: 圖h RTU報文幀的格式規(guī)范圖i RTU幀格式RTU傳輸模式狀態(tài)圖的描述如下圖j:圖j RTU傳輸模式狀態(tài)圖(3) 差錯檢驗(yàn)方法 標(biāo)準(zhǔn)Modbus串行鏈路的可靠性基于兩種錯誤檢驗(yàn): (a)奇偶校驗(yàn)(偶或奇),應(yīng)該被每個字符采用,這是個可選項。 (b)幀檢驗(yàn)(LRC或CRC),必須運(yùn)用于整個報文,每個幀必須要進(jìn)行幀檢驗(yàn),這是必選項。 在RTU模式,包含一個對全部報文內(nèi)容執(zhí)行的,基于循環(huán)冗余校驗(yàn) (CRC-Cyclical Redundancy Checking) 算法的錯誤檢驗(yàn)域。CRC 域檢驗(yàn)整個報文的內(nèi)容。不管報文有無奇偶校驗(yàn),均執(zhí)行此檢驗(yàn)。在ASCII模式,包含一個對全部報文內(nèi)容執(zhí)行的,基于縱向冗余校驗(yàn)(LRC-Longitudinal Redundancy Checking) 算法的錯誤檢驗(yàn)域。LRC域檢驗(yàn)不包括起始“冒號”和結(jié)尾CR,LF對的整個報文的內(nèi)容。不管報文有無奇偶校驗(yàn),也均執(zhí)行此檢驗(yàn)。 (4) 地址碼 Modbus尋址空間有256個不同地址,其尋址空間規(guī)范如下圖k。地址0保留為廣播地址。所有的子節(jié)點(diǎn)必須識別廣播地址。對于串行鏈路來說Modbus主節(jié)點(diǎn)沒有地址,只有子節(jié)點(diǎn)必須有一個地址。該地址必須在Modbus串行總線上唯一。圖k Modbus尋址規(guī)范 (5)功能碼Modbus功能碼有三類,分別為公共功能碼、用戶定義功能嗎和預(yù)留功能碼。其分類如下圖l。圖l 功能碼分類4.Modbus協(xié)議的實(shí)現(xiàn)(以RS-485為例) 標(biāo)準(zhǔn)的MODBUS協(xié)議的物理層采用的是RS-232標(biāo)準(zhǔn),但RS-232的傳送速率不夠快,RS-232一C規(guī)定波特率為20000bps以下;傳送距離受限,距離近,根據(jù)RS-232-C標(biāo)準(zhǔn)各裝置之間電纜長度不超過15m,即使在比較好的信號通信中電纜長度也不超過35m;抗干擾能力有限,MODBUS協(xié)議實(shí)現(xiàn)裝置采用主從通訊方式,適宜采用分布式結(jié)構(gòu),而RS-232只應(yīng)用與點(diǎn)對點(diǎn)的通信。而RS-485標(biāo)準(zhǔn)相比RS-232標(biāo)準(zhǔn),具有抗干擾能力強(qiáng)、傳輸速率高、傳送距離遠(yuǎn),并支持多點(diǎn)連接等特點(diǎn),所以采用RS-485作為物理層是比較理想,MODBUS總線系統(tǒng)如圖m所示。 圖m Modbus協(xié)議的總線實(shí)現(xiàn)(1)RS-485簡介 RS-485是一個電氣接口規(guī)范,屬于7層開放系統(tǒng)互連模型物理層的協(xié)議標(biāo)準(zhǔn)。它只規(guī)定了平衡驅(qū)動器和接受器的電特性,沒有規(guī)定接插件、傳輸電纜和通信協(xié)議。他支持半雙工或全雙工模式,網(wǎng)絡(luò)拓?fù)渫ǔ2捎媒K端匹配的總線型結(jié)構(gòu),不支持環(huán)型或星型網(wǎng)絡(luò)結(jié)構(gòu)。RS-485是從RS-422基礎(chǔ)上發(fā)展而來的,RS485采用平衡傳輸方式、需要在傳輸線上接終接電阻。RS485可以采用二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信。而采用四線連接時,只能實(shí)現(xiàn)點(diǎn)對多點(diǎn)的通信,即只能有一個主(Master)設(shè)備,其余為從設(shè)備。無論四線還是二線連接方式總線上可多接到32個設(shè)備。RS-485的最大傳輸距離約為3000m,最大傳輸速率為10Mbs。(2) Modbus協(xié)議的通信實(shí)現(xiàn)及系統(tǒng)實(shí)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論