




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Modbus基本概念服務教育成就未來北京新大陸時代科技有限公司案例引入隨著工業控制系統性能的提升,網絡化需求也在不斷演進。Modbus作為一種工業標準的通信協議,廣泛應用于工業自動化控制、智能儀表、樓宇自動化、電力系統以及交通控制等眾多領域。Modbus通信協議支持多種通信方式,包括串口通信、網絡通信和以太網通信等,可以實現不同工業設備之間的通信和數據交互。職業能力目標能夠通過Python開發Modbus報文解析工具,在該工具中可實現與觸摸屏的數據交互,并可計算CRC校驗值,手動發送報文實現對觸摸屏的控制;能夠通過Python開發Modbus數據采集工具,該工具可在固定周期內讀取觸摸屏的數據狀態,將觸摸屏當前的數據狀態反饋在工具界面上,無需手動發送報文。學習目標理解Modbus的基本概念,包括主從通信、Modbus傳輸模式、Modbus功能碼、CRC校驗及數據幀格式;理解通信交互的前提條件及實現流程;掌握Modbus功能碼與報文的應用。Modbus傳輸模式數據幀格式CRC校驗Modbus功能碼主從通信Modbus基本概念Modbus基本概念Modbus通信協議目前已經成為工業以太網中一種常用的通信標準,能夠實現不同控制設備之間、控制設備與其他功能設備之間的通信。不同廠家的設備能夠在Modbus通信協議的基礎上連接到同一個通信網絡當中,從而通過上位機對多臺設備進行集中監控。Modbus通信協議對通信網絡中的每個控制設備都規定了特定的地址信息,在進行通信時,設備需要先判斷接收到的地址信息是否與規定的地址信息匹配,若匹配才根據接收到的信息執行相應的操作。如果需要進行應答操作,控制設備會以報文的形式將信息進行發送。Modbus基本概念Modbus是主從式架構協議,當主機設備需要獲取從機設備的信息時,主機設備會向從機設備發送請求指令,從機設備接收到指令后,根據主機設備的請求將相應的數據發送給主機,此外,主機設備若需更改從機設備的數據配置,可以直接向從機設備發送更改數據命令。主從通信Modbus主從通信中,Modbus主設備向從設備發送命令,請求獲取從設備數據或執行相應操作,Modbus從設備根據請求提供數據或執行請求的操作進行響應。典型Modbus主設備包括可編程控制器。典型Modbus從設備包括溫控、智能電表。Modbus主設備和從設備交換的消息稱為幀。不同的Modbus通信方法(如Modbus串口和Modbus以太網)使得Modbus主從通信類型也不相同。主從通信0102串口中的主從通信以太網中的主從通信Modbus串口中的主從通信在Modbus串口通信方法中,Modbus主設備和一個或多個Modbus從設備連接至同一個通信網絡。Modbus主設備將使用單播模式或廣播模式實現與Modbus從設備之間的通信。單播模式:該模式中,Modbus主設備與單個Modbus從設備通信。Modbus主設備向Modbus從設備發送請求,該Modbus從設備接收請求后根據要求返回相應信息給Modbus主設備。Modbus操作包含兩個消息:Modbus主設備的請求消息和Modbus從設備的回復消息。在該模式中,每個Modbus從設備都必須帶有特定的地址信息。如圖所示。Modbus串口中的主從通信廣播模式:該模式中,Modbus主設備可同步向多個Modbus從設備發送一個請求。Modbus主設備發送廣播請求后,Modbus從設備不返回響應。Modbus從設備之間不會進行直接通信。一般地址0表示廣播地址,如圖所示。在Modbus以太網通信方法中,一個或多個Modbus主設備建立TCP連接以便與Modbus從設備進行通信。每個Modbus從設備具有唯一的地址信息和端口,Modbus主設備通過特定的地址和端口連接至相對應的Modbus從設備。Modbus從設備決定可連接至自身的Modbus主設備數量。Modbus以太網中的主從通信Modbus協議是一種串行的半雙工通信協議,我們最常用的Modbus協議傳輸模式共有四種,分別是Modbus-RTU、Modbus-ASCII、Modbus-TCP以及ModbusPlus。Modbus-RTU:是目前工業控制領域最常用的一種Modbus協議,采用CRC-16校驗算法,數據編碼格式依據標準串口協議,數據以二進制的方式表示。因Modbus-RTU結合了二進制編碼和CRC-16校驗算法,使其更加適用于工業應用場合,它比Modbus-ASCII傳輸更有效,如果出于性能方面的考慮,在Modbus-RTU與Modbus-ASCII之間首選Modbus-RTU。Modbus-ASCII:數據采用ASCII格式,一個字節的原始數據需要兩個字符來表示,效率低,采用LRC校驗算法。在設備使用Modbus-ASCII模式進行通信時,消息中的每個8位字節將作為兩個ASCII4位字符發送。Modbus傳輸模式Modbus-TCP:Modbus-TCP是在TCP/IP網絡上運行的Modbus的實現,旨在允許Modbus-RTU與Modbus-ASCII協議在基于TCP/IP的網絡上傳輸,數據幀主要包括兩部分:MBAP(報文頭)+PDU(幀結構),Modbus-TCP通信報文被封裝于以太網TCP/IP數據包中。與傳統的串口方式相比,Modbus-TCP不再帶有數據校驗和地址。Modbus–TCP對網絡特性具有一定的要求,Modbus主機期望在一定時間范圍內對其輪詢做出響應,這時就必須要考慮到TCP/IP網絡的穩定性問題。Modbus傳輸模式ModbusPlus:ModbusPlus是一種高速現場總線網絡,也是一種典型的令牌總線網,完整定義了通訊協議、網絡結構、連接電纜以及安裝工具等方面的性能指標。計算機、可編程序控制器和其他數據源通過ModbusPlus以對等方式進行通信,設備之間的數據交換通過“令牌”的方式實現。ModbusPlus嚴格定義了令牌的傳遞方式、數據校驗以及通信接口等方面的參數。數據傳送速率達1Mbit/s,以雙絞線、同軸電纜或光纖作為傳輸介質。ModbusPlus的典型應用主要包括數據采集、編程、程序上載/下傳、信號監測、遠程測試等。Modbus傳輸模式Modbus協議常用傳輸模式的應用場合如圖所示。有些設備支持多種Modbus模式,有些設備只支持其中一種,Modbus總線上所有的設備傳輸模式必須相同。Modbus傳輸模式Modbus功能碼,是寫在主機請求數據幀中的,它決定主機執行怎樣的操作及請求什么類型的數據。Modbus功能碼主要有三種,分別是公共功能碼、用戶定義功能碼和保留功能碼。用戶定義功能碼:有兩個用戶自定義功能碼區域,分別是65~72和100~110,由于該功能碼由用戶自定義,所以不保證其唯一性。保留功能碼:保留功能碼是因為歷史遺留原因,某些公司的傳統產品上現行使用的功能碼不作為公共使用。公共功能碼:被明確定義的功能碼,唯一性得到保證。由Modbus協會確認,并提供公開的文檔。Modbus功能碼本書主要介紹公共功能碼,常用的公共功能碼如表所示。Modbus功能碼CRC(全稱“Cyclicredundancycheck”)即循環冗余校驗碼,是數據通信領域中最常用的一種查錯校驗碼,是一種根據網絡數據包或計算機文件等數據產生簡短固定位數校驗碼的一種信道編碼技術,主要用來檢測或校驗數據傳輸或者保存后可能出現的錯誤。CRC校驗計算速度快,檢錯能力強,易于用編碼器等硬件電路實現。與奇偶校驗等校驗方式相比,無論是檢錯的正確率還是檢錯的速度都具有優勢,這也使得CRC成為數據通信領域最為普遍的校驗方式。常見應用有以太網/USB通信,壓縮解壓,圖像存儲,磁盤讀寫等。01CRC校驗介紹CRC校驗CRC校驗本質上就是將要進行校驗的數據作為被除數,選取一個合適的除數進行模2除法計算,得到的余數就是CRC校驗值。其核心就是先在要發送的數據幀后附加一個用來校驗的校驗碼,再將生成的新幀發送給接收端。需要注意的是,這個附加的校驗碼不是隨意的,它要使所生成的新幀能夠被發送端和接收端共同選定的某個特定值通過“模2除法”整除。新幀在到達接收端后再通過“模2除法”除以選定的除數。由于要發送的數據幀在發送之前就已經做了“去余”處理,所以得到的結果應該是沒有余數的,若結果存在余數,則說明數據傳輸過程出現錯誤。02CRC校驗原理CRC校驗模2除法每一位除的結果不影響其它位,它既不向上位借位,也不將除數和被除數的相同位數值的大小進行比較,只要以相同位數進行相除即可,所以實際上就是異或運算。當余數位數與除數位數相同時,才進行異或運算,當余數首位是1,則商就是1,當余數首位是0,則商就是0。在除了幾位后,余數位數小于除數,則商0,此時余數往右補一位,若余數位數仍比除數少,則繼續商0。直到余數位數和除數位數相同時,商1,進行異或運算,得到新的余數,以此至被除數最后一位,如圖所示。03模2除法CRC校驗CRC校驗中有兩個關鍵點,一是選定一個發送端和接收端都用來作為除數的二進制比特串(或多項式),可以使用國際標準,也可以隨機選擇,但是最高位和最低位都必須為1;二是將原始幀與發送端和接收端共同選定的除數進行“模2除法”運算,計算出CRC碼。具體步驟如下:(1)選擇一個合適的除數,通過該除數對接收的幀進行除法運算實現接收端的數據校驗。(2)根據選定的除數二進制位數(假設為k位),在要發送的數據幀(假設為m位)后面附加上k-1位“0”,然后通過“模2除法”將選定的除數與附加了k-1位“0”的新幀(一共是m+k-1位)進行除法運算,運算得出的余數(也是二進制的比特串)即為該幀的CRC校驗碼。04CRC校驗步驟CRC校驗這里需要注意,余數的位數一定要是比除數位數只能少一位,哪怕前面位是0,甚至是被整除后余數全0也都不能省略。(3)將計算得出的CRC校驗碼附加在原始數據幀后面,生成一個新幀發送給接收端。最后在接收端通過“模2除法”方式將生成的新幀除以前面選定的除數,若結果沒有余數,則表明該幀在傳輸過程中無錯誤,若結果有余數,則出現錯誤。04CRC校驗步驟CRC校驗現假設選擇G(X)=X^4+X^3+1的CRC生成多項式,要求計算出二進制序列為10110011的CRC校驗碼。具體計算過程如下:(1)將生成多項式轉化為二進制序列,由多項式G(X)=X^4+X^3+1可知,其共有五位二進制數,其中第4位、第3位和第0位二進制均為1,其余位均為0,由此得出該多項式的二進制比特串為11001,將此作為后續模2除法的除數。05CRC校驗碼計算示例CRC校驗(2)多項式的位數為5,根據上述CRC校驗步驟的介紹,在原始數據幀10110011的后面附加上5-1位0,即生成的新幀為101100110000,然后通過模2除法將生成的新幀除以除數11001,得到余數0100。如圖所示。CRC校驗(3)在原始數據幀10110011后附加上計算得出的CRC校驗碼0100,得出新幀101100110100,再將得出的新幀發送給接收端。(4)在接收端接收到新幀后,再將新幀通過模2除法除去選定的除數11001,判斷得出的余數是否為0,若為0,則說明數據幀無錯誤。CRC校驗首先無論是哪種傳輸模式,Modbus幀格式都是一樣的,包含地址域+功能碼+數據+差錯校驗。Modbus協議定義了一個與基礎通信層無關的簡單協議數據單元(PDU)。在應用數據單元(ADU)上,特定總線或網絡上的Modbus協議能夠引入一些附加域。如圖所示。數據幀格式地址域:占1字節,即主站要訪問的從站地址,通常1-247為有效地址,0為廣播地址。功能碼:占1字節,即主站請求從站做何種操作。數據:占N字節。若主站請求讀取從站數據,則該數據內容應該包含所讀取數據的起始地址+需要讀多少數據。若主站請求寫入數據給從站,則該數據內容應該包含所寫入數據的起始地址+寫入數據的長度+寫入數據的具體內容。差錯校驗:對數據進行冗余校驗的結果,保證數據傳輸的正確性。下面將詳細說明每種傳輸模式的數據幀格式。數據幀格式Modbus-RTU數據幀的幀長度最大為256字節,包含1個字節的子節點地址,1個字節的功能碼,0-252個字節的數據,2個字節的CRC校驗值,如表所示。01Modbus-RTU數據幀數據幀格式可以看出Modbus-RTU數據幀不存在起始符和結束符的,所以需要靠時間間隔將相鄰的兩個數據幀區分開。協議規定相鄰兩個數據幀之間至少要有3.5個字符的時間間隔,即在一個數據幀的最后一個字符傳輸完成之后,需要至少3.5個字符的停頓時間,以此來標定這個數據幀的結束,下一個數據幀才能繼續進行傳輸。如果下一個數據幀在小于3.5個字符的時間間隔內傳送數據,設備將會把它認定為是上一個數據幀的延續,導致CRC校驗出現錯誤。同時整個數據幀必須是連續傳輸,即在每個數據幀內字節間隔小于1.5個字符的時間間隔,否則接收端將刷新不完整的數據幀從而認為存在丟包的情況。如圖所示。數據幀格式Modbus-ASCII傳輸模式中,每個字節均以ASCII編碼,并且每個8位字節被拆分成兩個ASCII字符進行發送,因此這種模式比Modbus-RTU模式效率要低,發送量是Modbus-RTU的兩倍。例如報文數據0x5B=“5”+“B”=0x35+0x42。數據幀格式如表所示。02Modbus-ASCII數據幀數據幀格式02Modbus-ASCII數據幀數據幀格式從Modb
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一年級數學計算題專項練習1000題集錦
- 創業企業團隊管理制度
- 化學藥物研發管理制度
- 化工單位工藝管理制度
- 醫療人員午餐管理制度
- 醫療檢測員工管理制度
- 華東政法大學《國畫實踐與教學山水畫》2023-2024學年第二學期期末試卷
- SV40T轉基因小鼠胃粘膜癌變機理深度剖析:從分子機制到臨床啟示
- 工業互聯網平臺射頻識別(RFID)技術創新在供應鏈管理中的應用研究報告
- 消費者健康意識對食品與飲料行業產品研發的影響及應對策略研究報告
- 學前兒童發展評價課件
- 2022年長春中醫藥大學輔導員招聘考試筆試試題及答案解析
- 企業家刑事法律風險及其防范(課件)
- 手工皂制作教程(課堂)課件
- 國民經濟核算課程期末復習(按題型)(含答案)
- 立式圓筒形儲罐罐底真空試驗記錄
- 小學生勞動教育評價細則
- 籃球比賽計分表word版
- 手衛生依從性差魚骨分析
- 課程綜述(數電)
- 塔吊負荷試驗方案
評論
0/150
提交評論