當前位置:
首頁 > 最新 > Siemens保護裝置Modbus通訊協議的配置注意事項及報文解析

Siemens保護裝置Modbus通訊協議的配置注意事項及報文解析

Modbus協議簡介:

Modbus協議定義了一個與基礎通信層無關的簡單協議數據單元(PDU)。特定匯流排或網路上的Modbus協議映射能夠在應用數據單元(ADU)上引入一些附加域。

Modbus使用的是主站詢問,從站回答的數據傳送方式。

Modbus 數據模型:

Modbus以一系列具有不同特徵表格上的數據模型為基礎。四個基本表格為:

下例示出了設備中的數據結構,這個設備含有數字量和模擬量、輸入量和輸出量。由於不同塊中的數據不相關,每個塊是相互獨立。按不同Modbus功能碼訪問每個塊。

Modbus 公共功能碼定義:

Siemens保護的Modbus配置以及報文示例

概述:

信息類型、寄存器類型、功能碼之間的對應關係

1. 雙遙控帶雙遙信的信號(CF_D2)

a)配置:雙遙控及雙遙信信息屬於線圈狀態類型(coil),在DIGSI中配置在寄存器類型0的範圍(可用的地址可以在相應裝置的modbusmapping file描述中找到),且遙信與遙控方向地址相同,如下圖Q0,Q1

b)如何從DIGSI配置中換算出Modbus協議中的寄存器號。

寄存器號Y =Register address + 1 + x, 其中 mask =2x+ 2x+1

以上圖Q0為例:mask 3072 = 1024 + 2048 = 210+ 211, 所以 x = 10

Q0的寄存器號 Y = 0 + 1 + 10 = 11

同理Q1:mask 12288 = 4096 + 8192 = 212+ 213, 所以 x = 12

Q1的寄存器號 Y = 0 + 1 + 12 = 13

c)示例報文

由於Modbus報文查詢是從0開始定址的,所以報文中的地址比計算的寄存器號小1。

雙遙控(寫多個線圈)功能碼:15

遙控Q0報文

雙遙信(讀取多個線圈狀態)功能碼:01

讀取Q0位置報文

同時讀取Q0,Q1位置的報文

2. 單遙控信號(C_S)

a)配置:單遙控信息同樣屬於線圈類型(coil),在DIGSI中配置在寄存器類型0的範圍(可用的地址可以在相應裝置的Modbusmapping file描述中找到)。

b)如何從DIGSI配置中換算出Modbus協議中的寄存器號。

寄存器號Y =Register address + 1 + Log2mask

上圖中寄存器號Y =32 + 1 + Log264= 39

c)示例報文

由於Modbus報文查詢是從0開始定址的,所以報文中的地址比計算的寄存器號小1。

單遙控(寫單個線圈)功能碼:05

單遙控報文

注意:對於脈衝型輸出的單遙控命令,後台發送分閘命令是沒有實際意義的,保護裝置會拒絕分閘命令,拒絕的附加原因是不合常理(Plausibility error)。

3. 單遙信信號(SP)

a)配置:單遙信信息屬於離散量類型,在DIGSI中配置在寄存器類型1的範圍。

b)如何從DIGSI配置中換算出Modbus協議中的寄存器號。

寄存器號Y =Register address + 1 + Log2mask

上圖中寄存器號分別為Y=32+1+Log216= 37,Y=32+1+Log232= 38

c)示例報文

由於Modbus報文查詢是從0開始定址的,所以報文中的地址比計算的寄存器號小1。

單遙信(讀離散量)功能碼:02

以下是同時讀取遙信1與遙信2的報文

4. 遙測值

a)配置:遙測值屬於輸入寄存器類型,DIGSI中配置在寄存器類型3的範圍。裝置中未給遙測值預留多餘地址,如果有用戶自定義的遙測值需要配置到後台,則需要把部分默認的遙測值從系統口移除。

b)如何從DIGSI配置中換算出Modbus協議中的寄存器號。

寄存器號 Y = Register address + 1

上圖中 Ia 寄存器號Y = 0 + 1 = 1,其它模擬量寄存器號可在mapping file描述中查找到。

c)示例報文

由於Modbus報文查詢是從0開始定址的,所以報文中的地址比計算的寄存器號小1。

遙測(讀輸入寄存器)功能碼:04

下例中是7SJ62 mapping file3-1,從寄存器號1開始,讀取18個寄存器的報文,不同類型裝置的寄存器代表的數據內容有所差異,請參考相關裝置的mapping file。

遙測值是有符號16位數,數值範圍是 -32768 到 +32767,數值 -32768 = Hex8000表示無效值或越限值,

輸入寄存器5為Va,Hex0242 = 578,除係數100(a配置部分示例圖)得到一次值5.78kV。

5. 電度量

a)配置:電度量屬於保持寄存器類型,每個電度量佔用兩個寄存器,DIGSI中配置在寄存器類型4的範圍。

b)如何從DIGSI配置中換算出Modbus協議中的寄存器號。

寄存器號 Y = Register address + 1

上圖中 WpForward 寄存器號 Y = 204 + 1 = 205,其它電度量寄存器號可在mappingfile描述中查找到。

c)示例報文

由於Modbus報文查詢是從0開始定址的,所以報文中的地址比計算的寄存器號小1。

遙測(讀輸入寄存器)功能碼:03

下例中從寄存器號205開始,讀取4個電度量的報文。

電度量是無符號32位數,數值範圍是0到+4294967295。保護裝置通過協議上送到主站是電度量的脈衝個數,所以後台收到脈衝數目後還要乘以係數(即每個脈衝代表的電度量值)才能得到與裝置上顯示相同的電度量值。

係數(即每個脈衝代表的電度量值)與保護參數1101和1102(a配置部分示例圖)相關,係數公式為:1.732* 參數1101 * 參數1102/60000

本例中的係數為1.732 * 12000 * 100/60000 = 34.64 WH

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 技術資料交流 的精彩文章:

TAG:技術資料交流 |