在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是Modbus協議

汽車電子技術 ? 來源:嵌入式之入坑筆記 ? 作者:嵌入式之入坑筆記 ? 2023-02-10 10:58 ? 次閱讀

1、 Modbus簡介

Modbus 是由 Modicon(現為施耐德電氣公司的一個品牌)在 1979 年發明的,是全球第一個真正 用于工業現場的總線協議。

ModBus 網絡是一個工業通信系統,由帶智能終端的可編程控制器和計算機通過公用線路或局部專 用線路連接而成。其系統結構既包括硬件、亦包括軟件。它可應用于各種數據采集和過程監控。

為更好地普及和推動 Modbus 在基于以太網上的分布式應用,目前施耐德公司已將 Modbus 協議的 所有權移交給 IDA(Interface for Distributed Automation,分布式自動化接口)組織,并成立了 Modbus-IDA 組織,為 Modbus 今后的發展奠定了基礎。

在中國,Modbus 已經成為國家標準,并有專業的規范文檔,感興趣的可以去查閱相關的文件,詳情如下:

標準編號為:GB/T19582-2008

文件名稱:《基于 Modbus 協議的工業自動化網絡規范》

主要有三部分的內容,分別如下:

《GB/T 19582.1-2008 第 1 部分:Modbus 應用協議》

《GB/T 19582.2-2008 第 2 部分:Modbus 協議在串行鏈路上的實現指南》

《GB/T 19582.3-2008 第 3 部分: Modbus 協議在 TCP/IP 上的實現指南》

2、Modbus協議概述

Modbus是一個主-從模式的通信協議,屬于數據鏈路層上的協議,協議本身不涉及具體的硬件要求。

常見的應用Modbus協議的物理接口有RS-485RS232、USART等的通信鏈路中。

Modbus協議中,一個時刻內只允許有一個主機連接于總線,多個從機連接于總線上,通信都是只能由主機發起,從機進行響應。不能從從機主動發起通信。

3、Modbus 主從機通信模式

主機和從機之間的通信,可以用兩種模式進行:廣播通知模式、單播點對點模式。

3.1、單播點對點模式

主機按照從機的明確地址訪問相應的從機,從機接到來自主機的請求并處理完請求后,從機會向主機返回一個應答,完成一個通信。

在這種模式,一個 Modbus 事務處理包含 2 個報文:一個來自主機的請求,一個來自從機的應答。

在總線上,每個從機都必須有唯一的從機地址 (1 到 247),這樣才能區別于其它節點被獨立的尋址。

3.2、廣播通知模式

主機向所總線通過廣播指令發送請求,所有的從機都要接收來自主機的廣播信息

對于主機廣播的請求,從機是沒有應答返回的。所有的從機必須要接受主機的廣播寫功能。

地址 0 是專門用于主機向各個從機廣播數據的。

4、Modbus 地址規則

Modbus 尋址空間可以有 256 個不同地址。如下圖所示:

圖片

地址 0 為廣播地址。所有的從機必須識別廣播地址。

Modbus 主機本身是沒有地址的,只有從機必須要有一個地址。該地址必須在 Modbus 串行總線上唯一。

248~255作為預留使用的地址。

5、Modbus 的幀格式

Modbus的幀格式按照選擇的模式不同幀格式也是有所區別的。

5.1、RTU模式

RTU 模式下的幀格式如下圖:

圖片

Modbus RTU 幀總長度最大為 256 字節。

RTU 模式每個字節 ( 11 位 ) 的格式為** :**

8–位二進制,報文中每個 8 位字節含有兩個 4 位十六進制字符(0–9, A–F)

每字節的 bit 流:

1 起始位

8 數據位, 首先發送最低有效位

1 位作為奇偶校驗

1 停止位

偶校驗是要求的, 其它模式 ( 奇校驗, 無校驗 ) 也可以使用。為了保證與其它產品的最大兼容性, 同時支持無校驗模式是建議的。默認校驗模式模式 必須為偶校驗。

注 : 使用無校驗要求 2 個停止位。

RTU模式時,每個字符或字節均由此順序發送(從左到右):

最低有效位 (LSB) . . . 最高有效位 (MSB)

圖片

圖片

5.1.1、RTU模式下的幀通信

由發送設備將 Modbus 報文構造為帶有已知起始和結束標記的幀。這使設備可以在報文的開始接收 新幀,并且知道何時報文結束。

不完整的報文必須能夠被檢測到而錯誤標志必須作為結果被設置。

在 RTU 模式,報文幀由時長至少為 3.5 個字符時間的空閑間隔區分。

圖片

整個報文幀必須以連續的字符流發送。

如果兩個字符之間的空閑間隔大于 1.5 個字符時間,則報文幀被認為不完整應該被接收節點丟棄。

圖片

注意 :

RTU 模式下接收數據時,由于 t1.5 和 t3.5 的時間隔要求的存在,一般在高通信速率下,會導致 CPU 負擔加重。因此,在通信速率等于或低于 19200 bps 時,這兩個定時必須嚴格遵守;

對于波特率大于 19200 bps 的情形,應該使用 2 個定時的固定值:

建議的字符間超時時間(t1.5)為 750μs,

幀間的超時時間 (t1.5) 為 1.750ms。

下圖表示了對 RTU 傳輸模式狀態圖的描述。"主節點" 和 "子節點" 的不同角度均在相同的圖中表示:

圖片

上面狀態圖的一些解釋:

1)從 "初始" 態到 “空閑” 態轉換需要 t3.5 定時超時: 這保證幀間延遲

2)“空閑” 態是沒有發送和接收報文要處理的正常狀態。

3)在 RTU 模式, 當沒有活動的傳輸的時間間隔達 3.5 個字符長時,通信鏈路被認為在 “空閑” 態。

4)當鏈路空閑時, 在鏈路上檢測到的任何傳輸的字符被識別為幀起始。鏈路變為 "活動" 狀態。然后當鏈路上沒有字符傳輸的時間間個達到 t3.5 后,被識別為幀結束。

5)檢測到幀結束后,完成 CRC 計算和檢驗。然后,分析地址域以確定幀是否發往此設備,如果不是, 則丟棄此幀。為了減少接收處理時間,地址域可以在一接到就分析,而不需要等到整個幀結束。這 樣,CRC 計算只需要在幀尋址到該節點 (包括廣播幀) 時進行。

5.1.2、RTU模式的CRC校驗

在 RTU 模式包含一個對全部報文內容執行的,基于循環冗余校驗 (CRC - Cyclical Redundancy Checking) 算法的錯誤檢驗域。CRC 域檢驗整個報文的內容。不管報文有無奇偶校驗,均執行此檢驗。

CRC 包含由兩個 8 位字節組成的一個 16 位值。

CRC 域作為報文的最后的域附加在報文之后。計算后,首先附加低字節,然后是高字節。CRC 高字 節為報文發送的最后一個子節。

附加在報文后面的 CRC 的值由發送設備計算。接收設備在接收報文時重新計算 CRC 的值,并將計 算結果于實際接收到的 CRC 值相比較。如果兩個值不相等,則為錯誤。

CRC 的計算, 開始對一個 16 位寄存器預裝全 1。然后將報文中的連續的 8 位子節對其進行后續的計 算。只有字符中的 8 個數據位參與生成 CRC 的運算,起始位,停止位和校驗位不參與 CRC 計算。

CRC 的生成過程中, 每個 8–位字符與寄存器中的值異或。然后結果向最低有效位(LSB)方向移動 (Shift) 1 位,而最高有效位(MSB)位置充零。然后提取并檢查 LSB:如果 LSB 為 1, 則寄存器中的值與 一個固定的預置值異或;如果 LSB 為 0, 則不進行異或操作。

這個過程將重復直到執行完 8 次移位。完成最后一次(第 8 次)移位及相關操作后,下一個 8 位字節 與寄存器的當前值異或,然后又同上面描述過的一樣重復 8 次。當所有報文中子節都運算之后得到的寄存 器的最終值,就是 CRC。

5.2、ASCII傳輸模式

當 Modbus 串行鏈路的設備被配置為使用 ASCII模式通信時,報文中的每個 8 位字節以兩個 ASCII 字符發送。

一般在通信鏈路或者設備無法 符合 RTU 模式的定時管理時使用該模式。

ASCII的幀格式如下:

圖片

比如 : 字節 0X5B 會被編碼為兩個字符 : 0x35 和 0x42 ( ASCII 編碼 0x35 ="5", 0x42 ="B" )。

注 : 由于一個子節需要兩個字符,此模式比 RTU 效率低。

ASCII 模式每個字節 ( 10 位 ) 的格式為 :

十六進制,ASCII 字符 0-9, A-F。

1 起始位

7 數據位, 首先發送最低有效位

1 位作為奇偶校驗

1 停止位

偶校驗是要求的, 其它模式 ( 奇校驗, 無校驗 ) 也可以使用。為了保證與其它產品的最大兼容性, 同時支持無校驗模式是建議的。默認校驗模式模式 必須為偶校驗。

注 : 使用無校驗要求 2 個停止位。

字符是如何串行傳送的:

每個字符或字節均由此順序發送(從左到右):

最低有效位 (LSB) . . . 最高有效位 (MSB)

圖片

圖片

5.2.1、ASCII的報文幀

在 ASCII 模式, 報文用特殊的字符區分幀起始和幀結束。一個報文必須以一個‘冒號’ ( : ) (ASCII 十六進制 3A )起始,以 ‘回車-換行’ (CR LF) 對 (ASCII 十六進制 0D 和 0A) 結束。

注 : LF 字符可以通過特定的 Modbus 應用命令 (參見 Modbus 應用協議規范) 改變。

對于所有的域,允許傳送的字符為十六進制 0–9, A–F (ASCII 編碼)。設備連續的監視總線上的 ‘冒 號’ 字符。當收到這個字符后,每個設備解碼后續的字符一直到幀結束。

報文中字符間的時間間隔可以達一秒。如果有更大的間隔,則接受設備認為發生了錯誤。

特別注意:每個字符子節需要用兩個字符編碼。因此,為了確保 ASCII 模式 和 RTU 模式在 Modbus 應 用級兼容,ASCII 數據域最大數據長度為 (2x252) 是 RTU 數據域 (252) 的兩倍。

必然的, Modbus ASCII 幀的最大尺寸為 513 個字符。

ASCII 報文幀的要求在下面的狀態圖中綜合。"主節點" 和 "子節點" 的不同角度均在相同的圖中表示:

圖片

上面狀態圖的一些解釋:

1)“空閑” 態是沒有發送和接收報文要處理的正常狀態。

2)每次接收到 ":" 字符表示新的報文的開始。如果在一個報文的接收過程中收到該字符,則當前地報文 被認為不完整并被丟棄。而一個新的接收緩沖區被重新分配。

3)檢測到幀結束后,完成 LRC 計算和檢驗。然后,分析地址域以確定幀是否發往此設備,如果不是, 則丟棄此幀。為了減少接收處理時間,地址域可以在一接到就分析,而不需要等到整個幀結束。

5.2.2、ASCII的LRC校驗

在 ASCII 模式,包含一個對全部報文內容執行的,基于縱向冗余校驗 (LRC - Longitudinal Redundancy Checking) 算法的錯誤檢驗域。LRC 域檢驗不包括起始“冒號”和結尾 CRLF 對的整個報 文的內容。不管報文有無奇偶校驗,均執行此檢驗。

LRC 域為一個子節,包含一個 8 位二進制值。LRC 值由發送設備計算,然后將 LRC 附在報文后面。接收設備在接收報文時重新計算 LRC 的值,并將計算結果于實際接收到的 LRC 值相比較。如果兩個值不 相等,則為錯誤。

LRC 的計算, 對報文中的所有的連續 8 位字節相加,忽略任何進位,然后求出其二進制補碼。執行檢 驗針對不包括起始“冒號”和結尾 CRLF 對的整個 ASCII 報文域的內容。在 ASCII 模式,LRC 的結果 被 ASCII 編碼為兩個字節并放置于 ASCII 模式報文幀的結尾,CRLF 之前。

6、Modbus的異常碼

MODBUS 事務處理的一般處理過程:

圖片

一旦服務器處理請求,使用合適的 MODBUS 服務器事務建立 MODBUS 響應。

根據處理結果,可以建立兩種類型響應:

1) 一個正確的 MODBUS 響應:響應功能碼 = 請求功能碼

2) 一個 MODBUS 異常響應

3)用來為客戶機提供處理過程中與被發現的差錯相關的信息;

4)響應功能碼 = 請求功能碼 + 0x80;

5)提供一個異常碼來指示差錯原因。

7、Modbus的功能碼

7.1、功能碼的類別

目前Modbus的功能中可以分為三類:公共功能碼、用戶定義功能碼、保留功能碼。

圖片

公共功能碼 :是已經被定義的功能碼。

用戶定義功能碼 :有兩個可以由用戶定義功能碼。范圍為:65 至 72 和十進制 100 至 110。

保留功能碼 :特殊情況下使用的,并且對公共使用是無效的功能碼。

7.2、公共功能碼

Modbus中公共功能碼的定義如下:

圖片

7.2.1、線圈操作功能碼(bit位的操作)

圖片

比如我要讀取線圈中的內容。從機地址為 11H,線圈寄存器的起始地址為 0013H,結束地址為 0037H。

需要查詢總共 37 個線圈寄存器,主機發送的RTU幀如下:

圖片

從機響應的數據幀如下:

圖片

解析:

線圈 0013H 到線圈 001AH 的狀態為 CDH,二進制值為 11001101,該字節的最高字節為線圈 001AH , 最 低 字 節 為 線 圈 0013H 。各線圈狀態與數據內容每位相對應。1 代表 ON,0 代表 OFF。線 圈 001AH 到 線 圈 0013H 的 狀態分別為:

圖片

7.2.2、保持寄存器操作功能碼

圖片

(1)寫多個保持寄存器

寫多個保持寄存器使用功能碼10H。

比如:從機地址為 11H。保持寄存器的其實地址為 0001H,寄存器的結束地址為 0002H。總共訪問 2

個寄存器。保持寄存器 0001H 的內容為 000AH,保持寄存器 0002H 的內容為 0102H。

主機請求的RTU幀數據如下:

圖片

圖片

從機返回的響應為:

圖片

(2)讀保持寄存器

讀保持寄存器使用03H功能碼。

比如:從機地址為 11H。保持寄存器的起始地址為 006BH,結束地址為 006DH。

主機發送的RTU請求幀如下:

圖片

圖片

從機的應答如下:

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據采集
    +關注

    關注

    39

    文章

    6255

    瀏覽量

    114053
  • MODBUS
    +關注

    關注

    28

    文章

    1821

    瀏覽量

    77317
  • 通信系統
    +關注

    關注

    6

    文章

    1204

    瀏覽量

    53460
收藏 人收藏

    評論

    相關推薦

    dsp的modbus協議

    哪位大俠,寫tms320f2812的modbus協議通信,分享一下吧,謝謝
    發表于 08-02 10:40

    Modbus協議中文版

    modbus協議中文版
    發表于 09-18 10:58

    基于TCPIP的Modbus協議的小程序

    基于TCPIP的Modbus協議的小程序
    發表于 12-17 09:06

    modbus協議筆記

    1 Modbus協議概要? Modbus通信協議由Modicon公司(現在的施耐德電氣Schneider Electric)于1979年為可編程邏輯控制(即PLC)通信而發表。目前,Modbu
    發表于 07-02 07:17

    Modbus協議是什么?Modbus協議主要有哪些應用?

    請問一下Modbus協議是什么?Modbus協議主要有哪些應用?
    發表于 07-15 12:04

    Modbus協議的特點是什么

    Modbus協議的特點是什么?Modbus協議有哪幾類功能碼?
    發表于 09-26 08:13

    Modbus協議是怎樣進行通信的

    Modbus協議的原理是什么?Modbus協議是怎樣進行通信的?
    發表于 09-28 06:48

    Modbus協議地址與協議層次

    Modbus協議地址是什么意思?Modbus協議層次有何優勢?
    發表于 09-28 06:27

    Modbus協議是什么

    Modbus協議是什么?MODBUS功能碼有哪些?MODBUS協議有哪幾種傳輸模式?
    發表于 09-29 07:06

    Modbus是什么?Modbus協議有哪些優點

    Modbus是什么?Modbus協議有哪些優點?Modbus協議包括哪些?
    發表于 09-30 08:40

    Modbus協議簡介及其特點

    Modbus協議是什么,Modbus協議的特點,本文針對Modbus協議的概況加以闡述。
    發表于 11-02 15:00 ?4696次閱讀

    Modbus協議是什么

    Modbus協議旨在用于串行設備和應用程序。
    的頭像 發表于 07-26 10:33 ?1w次閱讀
    <b class='flag-5'>Modbus協議</b>是什么

    modbus協議應用指南

    modbus協議
    發表于 12-04 09:45 ?5次下載

    Modbus協議網關是什么?Modbus協議網關的功能

    Modbus協議網關是一種專門用于工業自動化環境中的網絡設備,其主要功能是實現不同通信協議之間的轉換,尤其是將基于Modbus協議的設備或系統與使用其他協議的設備、控制系統或信息系統連
    的頭像 發表于 04-11 15:51 ?819次閱讀

    DJN Modbus協議

    DJN Modbus協議
    的頭像 發表于 11-27 13:52 ?1183次閱讀
    DJN <b class='flag-5'>Modbus協議</b>
    主站蜘蛛池模板: 午夜免费观看福利片一区二区三区 | 赛罗奥特曼银河帝国普通话免费版 | 8844aa在线毛片 | 狠狠做深爱婷婷综合一区 | 华人被黑人粗大猛然进 | 丁香花高清在线观看 | 手机在线看片国产日韩生活片 | 男人视频网站 | 欧美亚洲综合另类成人 | 久久夜色tv网站免费影院 | 又色又爽的视频 | 在线免费观看毛片网站 | 亚洲 欧洲 另类 综合 自拍 | xxxxxx性| 甘婷婷一级毛片免费看 | 午夜小视频男女在线观看 | 特黄特色 | 天堂网在线观看 | 日本大片免a费观看在线 | 亚洲一区二区三区免费视频 | 久久久综合视频 | 日本污全彩肉肉无遮挡彩色 | 丁香六月在线观看 | 日日干干夜夜 | 天堂在线观看视频观看www | 欧美人与禽 | 天天色视频 | 欧美区一区| 国模精品| 222www在线观看免费 | 黄色网络在线观看 | 日日夜夜天天人人 | 午夜逼逼| 高h 男男 | 天天久久 | 555成人免费影院 | 一区二区三区无码高清视频 | 黄网站在线观看永久免费 | 国产福利萌白酱喷水视频铁牛 | 日本免费福利视频 | 真实的国产乱xxxx在线 |