ModBus通信規約

ModBus通信規約指的是對MODBUS規約的模式和通信速率的一種定義。

基本介紹

  • 中文名:ModBus通信規約
  • 傳輸方式:異步串列通信方式
  • 最大傳輸距離:1200米
  • 連線主站數目:1個
  • 連線從站數目:最多31個
  • 通訊介質:推薦採用0.5mm的雙絞線
通訊參數和傳輸特性,通訊連線方式,支持的MODBUS功能碼,異常回響報文格式,時間格式,讀全遙信,讀全遙測,讀電度值,廣播對時,廣播信號復歸,遙控跳閘的選擇命令,遙控跳閘的執行命令,遙控合閘的選擇命令,遙控合閘的執行命令,單報文直接遙控跳閘,單報文直接遙控合閘,讀單個事件記錄,

通訊參數和傳輸特性

MODBUS規約模式:RTU模式。
傳輸速率:2400 bps,4800bps,9600bps,19200bps。
串列口通訊數據格式:1 個起始位,8 個數據位, 無校驗位,1個停止位。
通訊介質:推薦採用0.5mm的雙絞線,不帶禁止層。(原因是如果使用禁止雙絞線,但現場接地處理不好反而影響通訊質量)。
應答時間:小於4.5個byte傳輸時間(幀間隔最小時間) + 10ms。

通訊連線方式

RS-485網路的匹配電阻選取:雙絞線網路兩端的匹配電阻選取,以現場通信正常為準,一般地1.2km時取120Ω,600m時取220Ω,300m時取330Ω,如通信誤碼率較大,觀察通信時的波形,匹配電阻做適當改變
通訊連線方式通訊連線方式

支持的MODBUS功能碼

功能碼02H: 讀取開關量輸入(讀實遙信和虛遙信)。
功能碼03H: 讀取保持暫存器(讀事件記錄等)
功能碼04H: 讀取輸入暫存器(讀遠動遙測)
功能碼05H: 強制單點繼電器輸出(遠方復歸、單步的遙控跳閘、遙控合閘)。
功能碼06H: 向保持暫存器寫單個字(遙控跳閘、遙控合閘的選擇和執行操作)
功能碼10H: 向保持暫存器(記憶體區)寫多個16位的字(通訊對時)。

異常回響報文格式

由於軟體編程錯誤,對協定理解錯誤或通訊干擾等原因,MODBUS通信子站接收到主站的報文後,可以採用異常回響報文給予回答,異常回響報文格式舉例如下:
FC 05H 主站=>子站:遠方復歸
報文
內容含義
備註
1位元組
MODBUS地址
01H 舉例
1位元組
功能碼
05H
1位元組
線圈地址高位元組
01H
1位元組
線圈地址低位元組
07H
1位元組
強制線圈數值高位元組
FFH
1位元組
強制線圈數值低位元組
00H
1位元組
CRC高位元組
3CH
1位元組
CRC低位元組
07H
異常回響報文 子站=>主站
報文
內容含義
備註
1位元組
MODBUS地址
01H 舉例
1位元組
85H
1位元組
異常代碼
02H
1位元組
CRC高位元組
C3H
1位元組
CRC低位元組
51H
子站通過校驗,發現主站報文有問題,將回響報文將主站的功能碼最高位(D7)置
1,如例子中的02H,異常回響報文中有固定的一個位元組作為“異常代碼”,表示異常原因。
異常代碼
含義
01
非法功能碼。子站無法處理主站報文中的功能碼。
02
非法數據地址。子站無法處理主站報文中的數據地址。
03
非法數據內容。主站報文中的數據不能滿足子站的要求格式。
04
子站設備錯誤。
05
確認幀。
06
子站忙。

時間格式

本規約中使用到的對時報文的時間格式,事件記錄中的時間格式,參見下面說明。七個八位位組的二進制時間
2 毫秒 2
2 毫秒 2
IV
(RES1)0
2 分 2
0(SU)
(RES2) 0 0
2 時 2
2 星期 2
2 日 2
(RES3) 0 0 0 0
2 月 2
(RES4) 0
2 年 2

讀全遙信

主站傳送:
從機地址
功能碼
開始地址H
開始地址L
遙信點數H
遙信點數L
CRC碼H
CRC碼L
01
02
00
00
00
20
79
D2
子站回響
地址
功能碼
位元組數
遙信數值(LSB-MSB)
CRC碼H
CRC碼L
01
02
04
01
本位元組的LSB對應遙信點號1
02
00
00
本位元組的MSB對應遙信點號32
5B
DE
注意:
1)MMP-5000D供有32個遙信(實遙信和虛遙信),因此主站從開始地址0讀0x20個遙信點。
2)本例應答報文中:數值01的D0位為1代表MMP-5000D的“遠方控制”為1;數值02中的D1位為1代表MMP-5000D的跳位信號為1。
3)子站回響中的LSBMSB指D0位和D7位,通訊點號依次採用升序的方式,比如第一個位元組的D0位為遙信點號1…它的D7位為遙信點號8;第二個節字的D0位就為遙信點號9,它的D7位為遙信點號16,依次類推。

讀全遙測

主站傳送:
從機地址
開始地址H
開始地址L
遙測點數H
遙測點數L
CRC碼H
CRC碼L
01
04
00
00
00
0F
B0
0E
子站回響
地址
位元組數
設備狀態字
H L
第一個遙測值
H L
第N個遙測值
CRC碼H
CRC碼L
01
04
1E
00
01
6A
A0
B6
1B
“設備狀態字”的D0為1,表示請求讀全遙信
MMP-5000D的“頻率”遙測值
注意:
1)遙測報文第一個測點為“設備狀態字”,不用入庫,第二個開始才是“頻率”,以後依次後推。
2)遠動遙測值的數據格式採用帶品質描述的被測值(MEA)定義
BIT0 = 溢出位(OV)
BIT1 = 差錯位(ER)
BIT2 = 測試位(TEST),該位置1表示本遙測量為綜自功能
BIT15~BIT3 = 被測值(MVAL),範圍-4096 ~4095
3)“設備狀態字”占用兩個位元組,它的低位元組的D0位為1表示有實遙信和虛遙信變位,要求主站使用“讀全遙信”報文來讀取,一旦執行了“讀全遙信”,則“設備狀態字的D0位變為0;“設備狀態字”的D1位為1:表示保護裝置有事件記錄,要求主站使用連續執行“讀單個事件記錄”來讀取事件記錄,子站沒有新的事件記錄時,D1位自動變為0。通訊管理機可以根據需要選擇是否使用“設備狀態字”。
4)如果不需要使用“設備狀態字”,可以將報文中的開始地址設為0x0001,則第一個讀到的遙測值就是“頻率”。
5)遙測值計算方法:
電壓4095對應1.2倍的額定值1.2*100 = 120V電流4095對應1.2倍的額定值1.2*5 = 6A功率4095對應1.2倍的額定值(1.2*57.77*1.2*5)*3 = 1248W頻率4095對應1.2倍的額定值1.2*50 = 60Hz功率因素4095對應1倍的額定值1.000本例中:6AA0為第一個遙測值(頻率),它被放大8倍,滿量程值為4095,對應60Hz(50Hz的1.2倍)。
因此頻率如下計算:0x6AA0/8/4095*60.0Hz = 49.993Hz
例:========MMP-5000D讀全遙測========
TX:01 04 00 00 00 0F B0 0E
RX:01 04 1E 00 01 6A A0 00 00 00 00 00 00 36 C0 40 58 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 C0 B6 1B

讀電度值

主站傳送:
從機地址
功能碼
電度對象起始地址H
電度對象起始地址L
電度對象數目H
電度對象數目L
CRC碼H
CRC碼L
01
03
00
00
00
01
85
B2
子站回響:
地址
功能碼
位元組數
正向有功電度
LSB MSB
反向有功電度
LSB MSB
正向無功電度
LSB MSB
反向無功電度
LSB MSB
CRC碼H
CRC碼L
01
03
10
E8
03
00
00
B6
07
00
00
B8
0B
00
00
A0
0F
00
00
B6
1B
正向有功電度值為:
0x000003E8(1000W/1kW)
反向有功電度
0x000007D0(2000W/2kW)
正向無功電度
0x00000BB8(3000Var/3kVar)
反向無功電度
0x00000FA0(4000Var/4kvar)
注意:
每個電度值由4個位元組組成一個32位字,它的單位是W(瓦特)或Var(乏)報文中先收到的是電度的低位位元組,後收到的是高位位元組。例:========MMP-5000D讀電度值========
TX:01 03 02 00 00 01 85 B2
RX:01 03 10 E8 03 00 00 D0 07 00 00 B8 0B 00 00 A0 0F 00 00 93 CD

廣播對時

主站傳送:
從機地址
功能碼
開始地址H
開始地址L
暫存器數H
暫存器數L
位元組總數
毫秒L
毫秒H
00
10
04
80
00
04
08
98
B7
分鐘
小時
月份
年份
保留
CRC碼H
CRC碼L
16
12
17
01
07
00
87
78
說明:
1.對時時間為07年1月23日18時22分47秒000毫秒
2.廣播對時的從機地址設為00

廣播信號復歸

方式一:採用功能碼05H向單個線圈264寫ON信號(0xFF00),產生遠方信號復歸功能。
主站傳送:
從機地址
線圈地址H
線圈地址L
強制線圈數值H
強制線圈數值L
CRC碼H
CRC碼L
00
05
01
07
FF
00
3D
D6
方式二:採用功能碼06H向單個保持暫存器0x0000寫數值0x0000,產生遠方復歸功能。
主站傳送:
從機地址
功能碼
暫存器地址H
暫存器地址L
設定數值H
設定數值L
CRC碼H
CRC碼L
00
06
00
00
00
00
89
CA
說明:
1)如果需要點對點復歸,只要將從機地址從廣播地址00改為相應設備地址即可。
2)兩種方式通訊管理機可以任意選擇。

遙控跳閘的選擇命令

採用功能碼06H向單個保持暫存器0x0101寫數值0xFFFF,產生遙控跳閘的選擇功能。
主站傳送:
從機地址
功能碼
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數據L
CRC碼H
CRC碼L
01
06
01
01
FF
FF
D8
46
子站回響:
子站地址
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數據L
CRC碼H
CRC碼L
01
06
01
01
FF
FF
D8
46

遙控跳閘的執行命令

採用功能碼06H向單個保持暫存器0x0011寫數值0xFFFF,產生遙控跳閘的執行。
主站傳送:
從機地址
功能碼
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數據L
CRC碼H
CRC碼L
01
06
00
11
FF
FF
D8
7F
子站回響:
子站地址
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數據L
CRC碼H
CRC碼L
01
06
00
11
FF
FF
D8
7F

遙控合閘的選擇命令

採用功能碼06H向單個保持暫存器0x0100寫數值0xFFFF,產生遙控合閘的選擇功能。
主站傳送:
從機地址
功能碼
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數據L
CRC碼H
CRC碼L
01
06
01
00
FF
FF
89
86
子站回響:
子站地址
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數據L
CRC碼H
CRC碼L
01
06
01
00
FF
FF
89
86

遙控合閘的執行命令

採用功能碼06H向單個保持暫存器0x0010寫數值0xFFFF,產生遙控合閘的執行。
主站傳送:
從機地址
功能碼
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數值L
CRC碼H
CRC碼L
01
06
00
10
FF
FF
89
BF
子站回響:
子站地址
暫存器地址H
暫存器地址L
暫存器數值H
暫存器數據L
CRC碼H
CRC碼L
01
06
00
10
FF
FF
89
BF

單報文直接遙控跳閘

採用功能碼05H向線圈0x0001寫數值0xFF00,產生單報文直接遙控跳閘。慎用本命令!
主站傳送:
從機地址
功能碼
線圈地址H
線圈地址L
強制線圈數值H
強制線圈數值L
CRC碼H
CRC碼L
01
05
00
01
FF
00
DD
FA
子站回響:
從機地址
線圈地址H
線圈地址L
強制線圈數值H
強制線圈數值L
CRC碼H
CRC碼L
01
05
00
01
FF
00
DD
FA

單報文直接遙控合閘

採用功能碼05H向線圈0x0000寫數值0xFF00,產生單報文直接遙控合閘。慎用本命令!
主站傳送:
從機地址
功能碼
線圈地址H
線圈地址L
強制線圈數值H
強制線圈數值L
CRC碼H
CRC碼L
01
05
00
00
FF
00
8C
3A
子站回響:
從機地址
功能碼
線圈地址H
線圈地址L
強制線圈數值H
強制線圈數值L
CRC碼H
CRC碼L
01
05
00
00
FF
00
8C
3A

讀單個事件記錄

採用功能碼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

相關詞條

熱門詞條

聯絡我們