<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> PLC基礎及應用 >> 正文

      電力儀表怎么設置modbus ,電力-MODBUS_RTU通訊規約

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022-04-09
      電力-MODBUS_RTU通訊規約1
      目錄:
      一、簡介
      1、簡介
      2、簡單理解MODBUS通信協議
      3、表1與表2名詞解釋
      二、通訊信息傳輸過程
      1.1 地址碼
      1.2 功能碼
      1.3 數據區
      三、MODBUS功能碼
      3.1 功能碼“02”:讀1路或多路開關量輸入狀態
      3.2 功能碼“01”:讀1路或多路開關量輸出狀態
      3.3 功能碼“03”:讀多路寄存器輸入
      3.4 功能碼“05”:寫1路開關量輸出(遙控)
      3.5 功能碼“06”:寫單路寄存器
      3.6 功能碼“10”:寫多路寄存器
      3.7 功能碼“03”:讀事件記錄
      四、錯誤校驗碼(CRC校驗)
      五、通訊錯誤信息及數據的處理
      -------------------------------------------------------
      相關參考搜索我的百度網盤“Modbus-國家標準-完整版、ModBus_RTU通訊自定義范例和Modbus TCP_IP協議規范”。
      --------------------------------------------------------------------------------------------------------------
      一、簡介
      1、簡介
      ModBus通訊規約允許PDM系列儀表/變送器與施耐德、西門子、AB、GE等多個國際著名品牌的可編程順序控制器(PLC)、RTU、SCADA系統、DCS或與第三方具有ModBus兼容的監控系統之間進行信息交換和數據傳送。
      PDM系列儀表/變送器只要簡單地增加一套基于計算機(或工控機)的監控軟件(如:組態王、Intouch、FIX、synall等)就可以構成一套電力監控系統。
      ①ModBus通訊規約有兩種數據傳送方式:HEX碼和ASCII碼,分別稱為ModBus-RTU和ModBus-ASCII,前者為數據傳送,而后者需將數據變換為ASCII碼后傳送,因此ModBus-RTU協議的通訊效率較高,處理簡單,使用得更多。
      ②ModBus TCP/IP是RTU模式的延伸:基于ModBus以太網
      ----------------------------
      廣泛的系統集成:
      PDM系列儀表/變送器提供了標準的RS-485/422通訊接口及ModBus通訊協議,這個通訊協議已廣泛被國內外電力行業及工控行業作為系統集成的標準。
      ----------------------------
      通訊數據的類型及格式:
      信息傳輸為異步方式,并以字節為單位。在主站和從站之間傳遞的通訊信息是11位的字格式:
      字格式(串行數據)
      11位二進制
      起始位
      1位
      數據位
      8位
      奇偶校驗位
      1位:有奇偶校驗位/無:無奇偶校驗位
      停止位
      1位:有奇偶校驗位/2位:無奇偶校驗位
      ● 通訊數據(信息幀)格式
      數據格式:
      地址碼
      功能碼
      數據區
      錯誤校檢
      數據長度:
      1字節
      1字節
      N字節
      16位CRC碼(冗余循環碼)
      ★ 注:1)1個字節由8位二進制數組成(既8 bit)
      2)ModBus是Modicon公司的注冊商標
      3)“從機”在本文件中既為PDM
      ----------------------------
      判斷Modbus一幀數據結束的方法:在RTU方式下,ModBus協議是根據3.5個字符時間內有沒有接收數據來判斷是否接受完成。
      串行數據一般采用11位的字格式,那么3.5個字符就是3.5*11=38.5位。如果沒有校驗位,采用10位的字格式,那么3.5個字符就是
      3.5*10=35位。
      波特率是每秒傳輸的二進制位的個數,比如9600bps,即每1秒傳輸9600位,那么傳輸38.5個二進制位需要的時間:
      38.5/9.6=4.0104167mS,Modbus_RTU要求一幀數據起始到結束至少要不小于3.5個字符時間。
      先給定時器定時大概3.5個字符(更大點也可以),然后在串口的接收中斷服務程序中,先將定時器的計數寄存器清零,然后重新開
      始定時,如果接收的不是最后一個字節,那么在下個字節來的時候定時器就會又從零開始計數,如果后面再沒有數據進來的話,定
      時器就會因為定時時間到而進入定時器中斷,就表示數據接收結束了。
      -------------------------------------------------------
      2、簡單理解MODBUS通信協議
      對于01 16 1000 1234 ABCD這段代碼的含義說明如下:
      向地址 01的控制器1000地址處寫入1234 。
      地址域:就是指 從站的地址,比如一個儀表,這個地址就是它的通訊地址;
      功能碼:就是你要做的事情,通訊的目的 就是讀寫數據,所以 ModBus 功能碼雖然很多,但是只有兩個是我們常用的,就是讀和
      寫。讀的功能碼是03,寫的功能碼是16。注意,這里的讀寫都是一次性寫16個位,也就是一個WORD(包含數據地址與數據)
      功能碼如表2。
      ----------------------------
      表1、ModBus功能碼
      功能碼 名稱 作用
      1 0x01 讀取線圈狀態 取得一組邏輯線圈的當前狀態(ON/OFF)
      2 0x02 讀取輸入狀態 取得一組開關輸入的當前狀態(ON/OFF)
      3 0x03 讀取保持寄存器 在一個或多個保持寄存器中取得當前的二進制值
      4 0x04 讀取輸入寄存器 在一個或多個輸入寄存器中取得當前的二進制值
      5 0x05 強置單線圈 強置一個邏輯線圈的通斷狀態
      6 0x06 預置單寄存器 把具體二進值裝入一個保持寄存器
      7 0x07 讀取異常狀態 取得8個內部線圈的通斷狀態,這8個線圈的地址由控制器決定,用戶邏輯可以將這些線圈定義,以說明從機狀態,短報文適宜于迅速讀取狀態。
      8 0x08 回送診斷校驗 把診斷校驗報文送從機,以對通信處理進行評鑒。
      9 0x09 編程(只用于484) 使主機模擬編程器作用,修改PC從機邏輯。
      10 0x0A 控詢(只用于484) 可使主機與一臺正在執行長程序任務從機通信,探詢該從機是否已完成其操作任務,僅在含有功能碼9的報文發送后,本功能碼才發送。
      11 0x0B 讀取事件計數 可使主機發出單詢問,并隨即判定操作是否成功,尤其是該命令或其他應答產生通信錯誤時。
      12 0x0C 讀取通信事件記錄 可是主機檢索每臺從機的ModBus事務處理通信事件記錄(比如傳送53條報文)。如果某項事務處理完成,記錄會給出有關錯誤。
      13 0x0D 編程(184/384 484 584) 可使主機模擬編程器功能修改PC從機邏輯
      14 0x0E 探詢(184/384 484 584) 可使主機與正在執行任務的從機通信,定期控詢該從機是否已完成其程序操作,僅在含有功能13的報文發送后,本功能碼才得發送。
      15 0x0F 強置多線圈 強置一串連續邏輯線圈的通斷。
      16 0x10 預置多寄存器 把具體的二進制值裝入一串連續的保持寄存器。
      17 0x11 報告從機標識 可使主機判斷編址從機的類型及該從機運行指示燈的狀態。
      18 0x12 (884和MICRO 84) 可使主機模擬編程功能,修改PC狀態邏輯。
      19 0x13 重置通信鏈路 發生非可修改錯誤后,是從機復位于已知狀態,可重置順序字節。
      20 0x14 讀取通用參數(584L) 顯示擴展存儲器文件中的數據信息。
      21 0x15 寫入通用參數(584L) 把通用參數寫入擴展存儲文件,或修改之。
      22~64 保留作擴展功能備用
      65~72 保留以備用戶功能所用 留作用戶功能的擴展編碼
      73~119 非法功能
      120~127 保留 留作內部作用
      128~255 保留 用于異常應答
      ----------------------------
      表2、ModBus功能碼與數據類型對應表
      代碼 功能 數據類型
      1
      2
      3 整型、字符型狀態字浮點型
      4 整型、狀態字、浮點型
      5
      6 整型、字符型、狀態字、浮點型
      8 N/A 重復“回路反饋”信息
      15
      16 整型、字符型、狀態字、浮點型
      ----------------------------
      表3、Modbus寄存器
      寄存器種類 說明 PLC類比 舉例說明
      離散輸入
      狀態DI
      輸入端口。通過外部設定改變輸入狀態,可讀但不可寫 DI數字量輸入 面板上的按鍵、開關狀態,電機的故障狀態
      線圈狀態DO 輸出端口。可設定端口的輸出狀態,也可以讀取該位的輸出狀態,可分為兩種不同的執行狀態,例如保持型或邊沿觸發型 DO數字量
      輸出
      電磁閥輸出、電機的啟停控制信號、
      LED顯示等
      保持
      寄存器AO
      輸出參數或保持參數,控制器運行時被設定的某些參數。
      可讀可寫
      AO模擬量 模擬量輸出設定值,PID運行參數
      輸入
      寄存器AI
      輸入參數。控制器運行時從外部設備獲得的參數。
      可讀但不可寫
      AI模擬量輸入 模擬量輸入
      Modbus協議定義了4種基本數據類型:只讀位數據DI可讀寫位數據DO只讀16位數據AI可讀寫16位數據AO這些數據分別被稱為輸入狀態線圈狀態輸入寄存器保持寄存器
      DI 數字輸入,離散輸入,一個地址一個數據位,用戶只能讀取它的狀態,不能修改。
      比如面板上的按鍵、開關狀態,電機的故障狀態
      DO 數字輸出,線圈輸出,一個地址一個數據位,用戶可以置位、復位,可以回讀狀態。
      比如電磁閥輸出,電機的啟停控制信號、LED顯示等
      AI 模擬輸入,輸入寄存器,一個地址16位數據,用戶只能讀,不能修改,比如一個電壓值的讀數
      AO 模擬輸出,保持寄存器,一個地址16位數據,用戶可以寫,也可以回讀,比如一個控制變頻器的電流值
      無論這些東西被叫做什么名字,其內容不外乎這幾種,輸入的信號用戶只能看不能改,輸出的信號用戶控制,并可以回讀。離散的
      數據只有一位,模擬的數據有16位。
      ----------------------------
      數據 就是我們傳遞的消息,這個對于我們來說才是最終目的。 1000 1234 就是我們傳遞的消息,是我們要告訴從站的內容,它又
      分兩部分:地址和內容。如果把從站比喻成一個大樓地址域就是大樓的門牌號,而數據里的地址就是大樓的房間號,換成變頻器也
      就是變頻器的參數地址。所以這段幀 就是這樣理解:告訴01大樓的1000房間,1234 往01變頻器的1000參數寫1234。差錯校驗:
      是為了防止出錯而做的保護,就是雙方約定的各種計算方法,也就是我們在實際應用中的偶校驗、奇校驗、停止位等等。 這里的
      ABCD 是隨便寫的,沒任何意義。
      -------------------------------------------------------
      3、表1與表2名詞解釋
      1)功能碼含義
      讀:
      01_DI: 讀內部比特量輸出狀態,如告警、變位、故障、異常等。
      02_DO:讀外部開關量輸入狀態,如光耦輸入、繼電器輸入等。
      03_AO:讀內部輸出量的寄存器,如一些配置參數、定值的讀取等。
      04_AI: 讀外部輸入量的寄存器,如外部電壓電流模擬量,溫濕度等。
      功能碼01、02讀到的位滿8個組合成一個字節,可以用功能碼04讀取;線圈可以直接定義成一個位變量或者直接置某變量的某一位
      寫:
      功能碼05:寫內部單個開關量狀態;如光耦輸出、繼電器輸出等。
      功能碼06:寫內部單個寄存器的值;如更改配置參數、定值等。
      功能碼15:寫內部多個開關量狀態;如同05。
      功能碼16:寫內部多個寄存器的值;如同06;對時是寫多個寄存器,用此功能碼。
      11:通信超時或錯誤時詢問用
      12:詢問從機檢測到的各種故障、異常事件
      ----------------------------
      2)關于實現
      先定義一個變量區如: uint modbus_data [50],再定義那些保持寄存器和輸入寄存器,如下:
      保持寄存器:M30001-M300022 // 存放設置的參數,用 03讀,16寫
      輸入寄存器:M40001-M40028 // 存放實時數據,如啟動、運行、停止、待機以及錯誤代碼 ,用04讀

      #define M30001 modbus_data[0]
      #define M30002 modbus_data[1]

      …………

      #define M30021 modbus_data[20]

      #define M30022 modbus_data[21]

      #define M40001 modbus_data[22]

      #define M40002 modbus_data[23]

      …………

      #define M400021 modbus_data[48]
      #define M400028 modbus_data[49]
      參考:www.amobbs.com/thread-3339982-2-1.html
      --------------------------------------------------------------------------------------------------------------
      二、通訊信息傳輸過程
      當通訊命令由發送設備(主機)發送至接收設備(從機)時,符合相應地址碼的從機接收通訊命令,并根據功能碼及相關要求讀取信息,如果CRC校驗無誤,則執行相應的任務,然后把執行結果(數據)返送給主機。返回的信息中包括地址碼、功能碼、執行后的數據以及CRC校驗碼,如果CRC校驗出錯就不返回任何信息。
      1.1 地址碼
      地址碼是每次通訊信息幀的第一字節(8位),從0到255。這個字節表明由用戶設置地址的從機將接收由主機發送來的信息。每個從機都必須有唯一的地址碼,并且只有符合地址碼的從機才能響應回送信息。當從機回送信息時,回送數據均以各自的地址碼開始。主機發送的地址碼表明將發送到的從機地址,而從機返回的地址碼表明回送的從機地址。相應的地址碼表明該信息來自于何處。
      -------------------------------------------------------
      1.2 功能碼
      功能碼是每次通訊信息幀傳送的第二個字節。ModBus通訊規約可定義的功能碼為1到127。PDM系列儀表/變送器僅用到其中的一部分功能碼。作為主機請求發送,通過功能碼告訴從機應執行什么動作。作為從機響應,從機返回的功能碼與從主機發送來的功能碼一樣,并表明從機已響應主機并且已進行相關的操作。
      表1 Modbus部分功能碼
      功能碼
      定 義
      操 作(二進制)
      0x02
      讀開關量輸入
      讀取一路或多路開關量狀態輸入數據
      0x01
      讀開關量輸出
      讀取一路或多路開關量輸出狀態數據
      0x03
      讀寄存器數據
      讀取一個或多個寄存器的數據
      0x05
      寫開關量輸出
      控制一路繼電器“合/分”輸出
      0x06
      寫單路寄存器
      把一組二進制數據寫入單個寄存器
      0x10
      寫多路寄存器
      把多組二進制數據寫入多個寄存器
      -------------------------------------------------------
      1.3 數據區
      數據區包括需要由從機返送何種信息或執行什么動作。這些信息可以是數據(如:開關量輸入/輸出、模擬量輸入/輸出、寄存器等等)、參考地址等。例如,主機通過功能碼03告訴從機返回寄存器的值(包含要讀取寄存器的起始地址及讀取寄存器的長度),則返回的數據包括寄存器的數據長度及數據內容。對于不同的從機,地址和數據信息都不相同(應給出通訊信息表)。
      PDM 系列儀表/變送器采用Modbus通訊規約,主機(PLC、RTU、PC機、DCS等)利用通訊命令(功能碼03),可以任意讀取其數據寄存器(其數據信息表詳見附錄)。PDM系列儀表/變送器的數據寄存器存儲的電量多達幾百個(如:電流、電壓、功率、0~31次諧波分量等),并且都是16位(2字節)的二進制數據,并且高位在前;一次最多可讀取寄存器數(既各種電量的數量)是50個。
      PDM響應的命令格式是從機地址、功能碼、數據區及CRC碼。數據區的數據都是兩個字節,并且高位在前(電能量除外)。
      注:1PDM-820AC/ACM/ACRPDM-800AC/ACM具有“03”、“06”、“10”功能碼;
      2、如果PDM采用MODBUS ASCII通訊協議,其通訊數據格式為;7個數據位,1停止位,偶校驗。
      --------------------------------------------------------------------------------------------------------------
      三、MODBUS功能碼
      3.1 功能碼“02:讀1路或多路開關量輸入狀態
      例如:主機要讀取地址為01,開關量DI1—DI4的輸入狀態。讀取告警、變位、故障、異常等。
      從機(PDM)數據寄存器的地址和數據為:
      起始位地址
      DI寄存器數據(16進制)
      備 注
      0000
      0B
      DI1/DI2/DI4狀態為“1”,DI3狀態為
      “0”
      主機發送的報文格式為:
      主機發送
      字節數
      發送的信息
      備 注
      從機地址
      1
      01
      發送至地址為01的從機
      功能碼
      1
      02
      讀開關量輸入狀態
      起始BIT位
      2
      0000
      起始BIT位地址為0000
      讀數據長度
      2
      0004
      讀取4路開關量輸入狀態位
      CRC碼
      2
      79C9
      由主機計算得到CRC碼
      從機(PDM)響應返回的報文格式:
      從機響應
      字節數
      返回的信息
      備 注
      從機地址
      1
      01
      來自從機01
      功能碼
      1
      02
      讀開關量輸入狀態
      數據長度
      1
      01
      1個字節(8個BIT位)
      DI狀態數據
      1
      0B
      DI寄存器內容
      CRC碼
      2
      E04F
      由從機計算得到CRC碼
      -------------------------------------------------------
      3.2 功能碼“01:讀1路或多路開關量輸出狀態
      例如:主機要讀取地址為01,開關量DO1,DO2的輸出狀態。讀取電磁閥輸出、電機的啟停控制信LED顯示等
      從機(PDM)數據寄存器的地址和數據為:
      起始位地址
      DO寄存器數據(16進制)
      備 注
      0000
      02
      DO2輸出狀態為“1”,DO1輸出狀態為“0”
      主機發送的報文格式:
      主機發送
      字節數
      發送的信息
      備 注
      從機地址
      1
      01
      發送至地址為01的從機
      功能碼
      1
      01
      讀開關量輸出狀態
      起始BIT位
      2
      0000
      起始BIT位地址為0000
      讀數據長度
      2
      0002
      讀取2路繼電器輸出狀態位
      CRC碼
      2
      BDCB
      由主機計算得到CRC碼
      從機(PDM)響應返回的報文格式:
      從機響應
      字節數
      返回的信息
      備 注
      從機地址
      1
      01
      來自從機01
      功能碼
      1
      01
      讀開關量輸出狀態
      數據長度
      1
      01
      1個字節(8個BIT位)
      DO狀態數據
      1
      02
      DO寄存器內容
      CRC碼
      2
      D049
      由從機計算得到CRC碼
      -------------------------------------------------------
      3.3 功能碼“03:讀多路寄存器輸入
      例如:主機要讀取地址為01,起始地址為0116的3個從機寄存器數據。讀取多路定值,比如模擬量輸出設定值,PID運行參數
      從機(PDM)數據寄存器的地址和數據為:
      寄存器地址
      寄存器數據(16進制)
      對應PDM電量
      0116
      1784
      UA
      0117
      1780
      UB
      0118
      178A
      UC
      主機發送的報文格式:
      主機發送
      字節數
      發送的信息
      備 注
      從機地址
      1
      01
      發送至地址為01的從機
      功能碼
      1
      03
      讀取寄存器
      起始地址
      2
      0116
      起始地址為0116
      數據長度
      3
      0003
      讀取3個寄存器(共6個字節)
      CRC碼
      2
      E5F3
      由主機計算得到CRC碼
      從機(PDM)響應返回的報文格式:
      從機響應
      字節數
      返回的信息
      備 注
      從機地址
      1
      01
      來自從機01
      功能碼
      1
      03
      讀取寄存器
      讀取字
      1
      06
      3個寄存器共6個字節
      寄存器數據1
      2
      1784
      地址為0116內存的內容
      寄存器數據2
      2
      1780
      地址為0117內存的內容
      寄存器數據3
      2
      178A
      地址為0118內存的內容
      CRC碼
      2
      5847
      由從機計算得到CRC碼
      -------------------------------------------------------
      3.4 功能碼“05:寫1路開關量輸出(遙控)
      例1:開關量輸出點DO1,其當前狀態為“分”,主機要控制該路繼電器“合”。強置一個邏輯線圈的通斷狀態
      控制命令為:
      “FF00”為控制繼電器“合”;“0000”為控制繼電器“分”;
      主機發送的報文格式:
      主機發送
      字節數
      發送的信息
      備 注
      從機地址
      1
      01
      發送至地址為01的從機
      功能碼
      1
      05
      寫開關量輸出狀態
      輸出BIT位
      2
      0000
      對應輸出繼電器BIT位(DO1)
      控制命令
      2
      FF00
      控制該路繼電器輸出為“合”狀態位
      CRC碼
      2
      8C3A
      由主機計算得到CRC碼
      從機(PDM)響應返回的報文格式:
      與主機發送的報文格式及數據內容完全相同。
      例2:開關量輸出點DO2,其當前狀態為“合”,主機要控制該路繼電器“分”。
      主機發送的報文格式:
      主機發送
      字節數
      發送的信息
      備 注
      從機地址
      1
      01
      發送至地址為01的從機
      功能碼
      1
      05
      寫開關量輸出狀態
      輸出BIT位
      2
      0001
      對應輸出繼電器BIT位(DO2)
      控制命令
      2
      0000
      控制該路繼電器輸出為“合”狀態位
      CRC碼
      2
      9C0A
      由主機計算得到CRC碼
      從機(PDM)響應返回的報文格式:與主機發送的報文格式及數據內容完全相同。
      -------------------------------------------------------
      3.5 功能碼“06:寫單路寄存器
      例如:主機要把數據07D0,保存到地址為002C的從機寄存器中去(從機地址碼為01)。通訊數據保存結束后,地址為002C的PDM表原存儲信息為:
      地址
      原來存儲數據(16進制)
      002C
      04B0
      主機發送的報文格式:
      主機發送
      字節數
      發送的信息
      舉 例
      從機地址
      1
      01
      發送至地址為01的從機
      功能碼
      1
      06
      寫單路寄存器
      起始地址
      2
      002C
      要寫入的寄存器地址
      寫入數據
      2
      07D0
      對應的新數據
      CRC碼
      2
      4BAF
      由主機計算得到的CRC碼
      從機(PDM)響應返回的報文格式: 與主機發送的報文格式及數據內容完全相同。
      -------------------------------------------------------
      3.6 功能碼“10:寫多路寄存器
      主機利用這個功能碼把多個數據保存到PDM表的數據存儲器中去。Modbus通訊規約中的寄存器指的是16位(即2字節),并且高位在前。這樣PDM的存儲器都是二個字節。由于Modbus通訊規約允許每次最多保存60個寄存器,因此PDM一次也最多允許保存60個數據寄存器。比如對時
      例如:主機要把0064,0010保存到地址為002C,002D的從機寄存器中去(從機地址碼為01)。通訊數據保存結束后,地址為002C/002D的PDM表內存儲信息為:
      地址
      原來存儲數據(16進制)
      002C
      04B0
      002D
      1388
      主機發送的報文格式:
      主機發送
      字節數
      發送信息
      舉 例
      從機地址
      1
      01
      發送至從機01
      功能碼
      1
      10
      寫多路寄存器
      起始地址
      2
      002C
      要寫入的寄存器的起始地址
      保存數據字長度
      2
      0002
      保存數據的字長度(共2字)
      保存數據字節長
      1
      04
      保存數據的字節長度(共4字節)
      保存數據1
      2
      04B0
      數據地址002C
      保存數據2
      2
      1388
      數據地址002D
      CRC碼
      2
      FC63
      由主機計算得到的CRC碼
      從機(PDM)響應返回的報文格式:
      從機響應
      字節數
      字節數
      舉 例
      從機地址
      1
      01
      來自從機01
      功能碼
      1
      10
      寫多路寄存器
      起始地址
      2
      002C
      起始地址為002C
      保存數據字長度
      2
      0002
      保存2個字長度的數據
      CRC碼
      2
      8001
      由從機計算得到的CRC碼
      -------------------------------------------------------
      3.7 功能碼“03”:讀事件記錄
      采用功能碼03H向保持寄存器地址0x0001,讀一個字,產生讀一個事件記錄的作用。
      主站發送: 從機地址 功能碼 事件記錄地址H 事件記錄地址L 事件記錄個數H 事件記錄個數L CRC碼H CRC碼L 01 03 00 01 00 01 D5 CA 子站響應: 從機地址 功能碼 字節數 事件條目數H 事件條目數L 事件代碼H
      (事件組號) 事件代碼L
      (事件代碼) 動作值
      02:合; 01:分 01 03 0C 00 01 04 09 02 毫秒L 毫秒H 分鐘 小時 日 月份 年份 CRC碼H CRC碼L A5 4D 19 12 17 01 07 2F EB

      --------------------------------------------------------------------------------------------------------------
      四、錯誤校驗碼(CRC校驗)
      主機或從機可用校驗碼進行判別接收信息是否正確。由于電子噪聲或一些其它干擾,信息在傳輸過程中有時會發生錯誤,錯誤校驗碼(CRC)可以檢驗主機或從機在通訊數據傳送過程中的信息是否有誤,錯誤的數據可以放棄(無論是發送還是接收),這樣增加了系統的安全和效率。
      MODBUS通訊協議的CRC(冗余循環碼)包含2個字節,即16位二進制數。CRC碼由發送設備(主機)計算,放置于發送信息幀的尾部。接收信息的設備(從機)再重新計算接收到信息的CRC,比較計算得到的CRC是否與接收到的相符,如果兩者不相符,則表明出錯。
      在進行CRC計算時只用8個數據位,起始位及停止位,如有奇偶校驗位也包括奇偶校驗位,都不參與CRC計算。
      ● CRC碼的計算方法是:
      1.預置1個16位的寄存器為十六進制FFFF(即全為1);稱此寄存器為CRC寄存器;
      2.把第一個8位二進制數據(既通訊信息幀的第一個字節)與16位的CRC寄存器的低8位相異或,把結果放于CRC寄存器;
      3.把CRC寄存器的內容右移一位(朝低位)用0填補最高位,并檢查右移后的移出位;
      4.如果移出位為0:重復第3步(再次右移一位);
      如果移出位為1:CRC寄存器與多項式A001(1010 0000 0000 0001)進行異或;
      5.重復步驟3和4,直到右移8次,這樣整個8位數據全部進行了處理;
      6.重復步驟2到步驟5,進行通訊信息幀下一個字節的處理;
      7.將該通訊信息幀所有字節按上述步驟計算完成后,得到的16位CRC寄存器的高、低字節進行交換;
      8.最后得到的CRC寄存器內容即為:CRC碼。
      --------------------------------------------------------------------------------------------------------------
      五、通訊錯誤信息及數據的處理
      當PDM表檢測到除了CRC碼出錯以外的錯誤時,必須向主機回送信息,功能碼的最高位置為1,即從機返送給主機的功能碼是在主機發送的功能碼的基礎上加128 。以下的這些代碼表明有意外的錯誤發生。PDM從主機接收到的信息如有CRC錯誤,則將被PDM表忽略。
      PDM返送的錯誤碼的格式如下(CRC碼除外):
      地址碼: 1字節
      功能碼: 1字節(最高位為1)
      錯誤碼: 1字節
      CRC碼: 2字節
      PDM響應回送如下錯誤碼:
      81.非法的功能碼。
      接收到的功能碼PDM表不支持。
      82.非法的數據位置。
      指定的數據位置超出PDM表的范圍。
      83.非法的數據值。
      接收到主機發送的數據值超出PDM相應地址的數據范圍。
      --------------------------------------------------------------------------------------------------------------
      Tags:電力儀表,modbus,設置  
      責任編輯:admin
    4. 上一篇文章:
    5. 下一篇文章:
    6. 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      推薦文章
      最新推薦
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 99久久综合精品五月天| 一本久到久久亚洲综合| 久久精品综合一区二区三区| 色欲香天天综合网无码| 久热综合在线亚洲精品| 色综合久久加勒比高清88| 伊人不卡久久大香线蕉综合影院| 久热综合在线亚洲精品| heyzo专区无码综合| 亚洲狠狠成人综合网| 中文字幕亚洲综合久久菠萝蜜| 亚洲狠狠久久综合一区77777| 精品无码综合一区二区三区| 亚洲成色在线综合网站| 亚洲国产综合久久天堂| 狠狠色丁香久久婷婷综合_中| 国产成人亚综合91精品首页| 亚洲人成综合网站7777香蕉| 九九久久99综合一区二区| 婷婷综合缴情亚洲狠狠尤物| 色欲香天天综合网站| 97se亚洲综合在线| 久久天堂AV综合合色蜜桃网| 色婷婷综合久久久久中文一区二区| 亚洲精品第一国产综合境外资源| 久久婷婷激情综合色综合俺也去| 亚洲国产国产综合一区首页| 日韩亚洲人成在线综合日本| 亚洲Av综合色区无码专区桃色| 亚洲欧洲国产成人综合在线观看| 亚洲精品第一综合99久久| 亚洲综合精品伊人久久| 色综合久久天天综合观看| 国产亚洲综合一区二区三区| 丁香五月综合缴情综合| 色悠久久久久久久综合网| 狠狠色成人综合首页| 国产激情电影综合在线看 | 久久精品国产亚洲综合色| 亚洲综合无码精品一区二区三区 | 亚洲国产综合专区在线电影|