<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 現場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊的設計:MODBUS 現場(chǎng)總線(xiàn)技術(shù)

現場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊的設計:MODBUS 現場(chǎng)總線(xiàn)技術(shù)

作者: 時(shí)間:2013-05-27 來(lái)源:網(wǎng)絡(luò ) 收藏

2 綜述

本文引用地址:http://dyxdggzs.com/article/159344.htm

2.1 簡(jiǎn)介和特點(diǎn)

是Modicon公司1979年最先倡導的一種通信協(xié)議,經(jīng)過(guò)許多公司的實(shí)際應用,逐漸被認可,成為一種應用于工業(yè)控制器上的標準通信協(xié)議,由于其功能比較完善而且協(xié)議開(kāi)放,因此,被廣泛應用于工業(yè),在微機化測量設備之間實(shí)現雙向串行多節點(diǎn)數字通信。連接單個(gè)分散的測量控制設備,使之可以相互溝通信息、共同完成自控任務(wù)的網(wǎng)絡(luò )系統與控制系統,具有分散控制、使用簡(jiǎn)單、簡(jiǎn)化系統結構、數據易于處理、節約硬件設備、易于安裝和維護等優(yōu)點(diǎn)。

MODBUS串行鏈路協(xié)議是一個(gè)主/從協(xié)議。適用于半雙工的RS-485。協(xié)議規定總線(xiàn)上有一個(gè)主機,多個(gè)從機,每個(gè)從機分配唯一的地址。工作時(shí)可以采用命令/應答的通訊方式。MODBUS通訊總是由主站發(fā)起請求,所有的從設備都接收并解析其中的地址信息,與地址不匹配的從站拋棄該請求幀,繼續偵聽(tīng)總線(xiàn);只有與地址相匹配的從設備對該請求幀進(jìn)行進(jìn)一步解析,并回應應答幀。若解析后校驗的結果出錯,從站向主機發(fā)送出錯信號。一般情況下,當主機收到出錯應答或在用戶(hù)設定的時(shí)間內仍未收到響應報文時(shí),主站就會(huì )立即重發(fā)信息給從設備。這種一問(wèn)一答的通信模式,大大提高了通信的正確率。從站沒(méi)有收到來(lái)自總站的請求時(shí),將不會(huì )自動(dòng)發(fā)送數據。從站之間也不能互相通信。在某一時(shí)刻主站只能啟動(dòng)一個(gè)MODBUS事務(wù)處理。

數據傳輸以幀為單位,將報文作為一幀數據,報文是由發(fā)送地址、控制信息、發(fā)送數據、校驗信息按一定格式組成的一個(gè)數據單元。主設備發(fā)出的請求幀和從設備發(fā)出的應答幀都是以地址開(kāi)頭的。

2.2 MODBUS協(xié)議在串行鏈路層上的實(shí)現

串行鏈路上的MODBUS系統可以使用不同的物理接口作為其物理層標準。最常用的接口是RS485兩線(xiàn)制接口,RS485四線(xiàn)制接口可作為附加選項用。當只需要短距離的點(diǎn)到點(diǎn)通信時(shí),也可以使用RS232串行接口作為MODBUS系統的物理接口。圖2.1給出了MODBUS協(xié)議與ISO/OSI網(wǎng)絡(luò )模型的對應關(guān)系。

MODBUS協(xié)議與ISO/OSI網(wǎng)絡(luò )模型的對應關(guān)系

2.2.1 MODBUS主/從協(xié)議原理

MODBUS串行鏈路協(xié)議位于OSI模型的第2層,是一個(gè)主/從協(xié)議?;诖墟溌穼?shí)現的MODBUS系統中,有且僅有一個(gè)主節點(diǎn)(客戶(hù)機、主站)能夠向其他從節點(diǎn)發(fā)出請求報文并處理響應,從節點(diǎn)在沒(méi)有收到主站的請求時(shí)并不主動(dòng)向總線(xiàn)上發(fā)送數據,也不與其他從節點(diǎn)通信。

主站可通過(guò)單播和廣播兩種方式向從站發(fā)出MODBUS請求。在單播模式下,主站尋址單個(gè)從站。從站接收并處理完請求后,向主站返回一個(gè)應答。而對于廣播模式的請求,主站可以向所用從站發(fā)送請求,但該請求必須是寫(xiě)命令,且從站沒(méi)有應答返回。

2.2.2 MODBUS總線(xiàn)兩種串行傳輸模式

傳輸模式定義了鏈路上串行傳送報文域的位內容,并確定了信息是怎樣打包為報文及如何解碼。MODBUS有兩種串行傳輸模式,即RTU模式和ASCII模式。

●ASCII傳輸模式

在A(yíng)SCII模式中,用兩個(gè)ASCII字符發(fā)送報文中的一個(gè)8位字節。報文中用特定的字符表示起始和結束。這種模式的主要優(yōu)點(diǎn)是允許兩個(gè)字符之間的時(shí)間間隔可達到1秒而不發(fā)送錯誤。如果出現更大的間隔,則正在接收的設備認為出現錯誤。表2.1所示為ASCII模式字符中的位序列。每個(gè)字節包括1個(gè)起始位(邏輯0)、7個(gè)數據位(首先發(fā)送最低有效位)、1個(gè)奇偶校驗位和一個(gè)停止位(邏輯1 )。其中,奇偶校驗位默認為偶檢驗,為保證最大兼容性,也可選擇奇校驗或無(wú)校驗(用一個(gè)停止位填充)。

ASCII模式的錯誤校驗采用縱向冗余校驗(Longitudinal Redundancy Check-LRC)。報文以一個(gè)冒號(:)字符開(kāi)始,即ASCII碼3AH;并且以一個(gè)回車(chē)換行符(CRLF)結束,即ASCII碼0DH和0AH.網(wǎng)絡(luò )設備不斷檢測網(wǎng)絡(luò )總線(xiàn)上的“:”字符,當一個(gè)冒號被接收到時(shí),每個(gè)設備都解碼下個(gè)域(地址域)來(lái)查明是否是被訪(fǎng)問(wèn)的設備。ASCII報文幀格式如表2 .2所示:

●RTU傳輸模式

在RTU( Remote Termina lUint -遠程終端設備)模式下,一個(gè)報文中的每個(gè)字節包含兩個(gè)4位的十六進(jìn)制字符。這種模式的主要優(yōu)點(diǎn)是:在同樣的波特率下,它的高字符密度運行比ASCII方式傳送更多的數據,具有比ASCII模式更高的吞吐率。在本中采用RTU傳輸方式。表2 .3所示為RT U模式字符中的位序列。每個(gè)字節包括1個(gè)起始位(邏輯0 )、8個(gè)數據位(首先發(fā)送最低有效位)、1個(gè)奇偶校驗位和一個(gè)停止位(邏輯1 )。其中,奇偶校驗位默認為偶檢驗,為保證最大兼容性,也可選擇奇校驗或無(wú)校驗(用一個(gè)停止位填充)。

RTU報文幀格式如表2.4所示。典型的RTU報文幀沒(méi)有起始位,也沒(méi)有停止位,而是以至少3.5個(gè)字符時(shí)間的停頓間隔標志一幀的開(kāi)始或結束。報文幀由地址域、功能域、數據域和CRC校驗域構成。所有字符由16進(jìn)制0-9,A-F組成。RTU報文幀格式如圖2 .5所示:

在RTU模式中,整個(gè)報文幀必須作為一個(gè)連續的數據流傳輸。如果在報文幀完成之前有超過(guò)1.5個(gè)字符時(shí)間停頓間隔發(fā)生,接收設備將刷新未完成的報文并假定下一個(gè)字節將是一個(gè)新報文的地址域。同樣地,如果一個(gè)新報文在小于3.5個(gè)字符時(shí)間內緊跟前一個(gè)報文開(kāi)始,接收設備將認為它是前一個(gè)報文的延續。這些都會(huì )導致傳輸的報文錯誤。

消息幀的地址域包含一個(gè)8Bit.可能的從設備地址是0-247(十進(jìn)制)。單個(gè)設備的地址范圍是1- 247.主設備通過(guò)將要聯(lián)絡(luò )的從設備的地址放入消息中的地址域來(lái)選通從設備。當從設備發(fā)送回應消息時(shí),它把自己的地址放入回應的地址域中,以便主設備知道是哪一個(gè)設備作出回應。地址0是用作廣播地址,以使所有的從設備都能認識。當Modbus協(xié)議用于更高水準的網(wǎng)絡(luò ),廣播可能不允許或以其它方式代替。

2.3錯誤檢測域

當選用RTU模式作字符幀,錯誤檢測域包含一16 Bits值(用兩個(gè)8位的字符來(lái)實(shí)現)。錯誤檢測域的內容是通過(guò)對消息內容進(jìn)行循環(huán)冗長(cháng)檢測方法得出的。CRC域附加在消息的最后,添加時(shí)先是低字節然后是高字節。故CRC的高位字節是發(fā)送消息的最后一個(gè)字節。

CRC-16錯誤校驗程序如下:報文(此處只涉及數據位,不指起始位、停止位和任選的奇偶校驗位)被看作是一個(gè)連續的二進(jìn)制,其最高有效位( MSB )首選發(fā)送。報文先與X↑16相乘(左移16位),然后看X↑16 + X↑15 + X↑2 + 1除,X↑16 + X↑15 + X↑2 + 1可以表示為二進(jìn)制數11000000000000101.整數商位忽略不記,16位余數加入該報文( MSB先發(fā)送),成為2個(gè)CRC校驗字節。余數中的1全部初始化,以免所有的零成為一條報文被接收。經(jīng)上述處理而含有CRC字節的報文,若無(wú)錯誤,到接收設備后再被同一多項式( X↑16+ X↑15 + X↑2 + 1)除,會(huì )得到一個(gè)零余數(接收設備核驗這個(gè)CRC字節,并將其與被傳送的CRC比較)。全部運算以2為模(無(wú)進(jìn)位)。

習慣于成串發(fā)送數據的設備會(huì )首選送出字符的最右位( LSB -最低有效位)。而在生成CRC情況下,發(fā)送首位應是被除數的最高有效位MSB.由于在運算中不用進(jìn)位,為便于操作起見(jiàn),計算CRC時(shí)設MSB在最右位。生成多項式的位序也必須反過(guò)來(lái),以保持一致。多項式的MSB略去不記,因其只對商有影響而不影響余數。

生成CRC-16校驗字節的步驟如下:

(1) 16位CRC寄存器置成FFFFH

(2)第一個(gè)8位數據與CRC寄存器低8位進(jìn)行異或運算,結果放入CRC寄存器;

(3) CRC寄存器向右移一位,HSB填零,檢查L(cháng)SB ;

(4)(若LSB為0 ):重復3,再右移一位。(若LSB為1 ):CRC寄存器與oxA001進(jìn)行異或運算;

(5)重復3和4直至完成8次移位,完成8位字節的處理;

(6)報文的下一個(gè)字節重復2至5步,直至全部字節處理完畢

(7) CRC寄存器的最終值為CRC值;

(8)把CRC值放入信息時(shí),高8位和低8位應分開(kāi)放置。

CRC碼生成流程圖如圖2 .2所示:

CRC碼生成流程圖


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>