一、產品概述
本產品為一款實時測量24路交流電流的數據采集模塊,采用高精密電流互感器實現信號的隔離與傳感,信號測量采用專用的真有效值測量芯片,可準確測量各種波形的電流真有效值,且精度高,穩定性好;采用標準RS-485總線接口和MODBUS-RTU協議。廣泛應用于路燈監控、生產自動化檢測、LED燈老化檢測等。本產品具有特點以下:
? 24路同步采樣相互獨立AD,0.1秒完成所有通道的數據采集更新;
? 精度高,采用24位AD采樣;
? 穩定性好,測量精度不受環境溫度影響;
? 電流穿孔輸入,使用方便;
二、產品型號
RS-40242A-14 (穿孔式輸入方式) RS-40242B-14
(端子式輸入方式)(<10A)
三、性能指標
?
精度等級:0.5%FS;
?
電流量程:0-5A/0-10A/0-15A/0-20A
AC;
?
電流輸入孔徑:Φ5mm;
? 工作溫度:-20℃~+60℃;
? 數據更新時間:100mS;
? 隔離耐壓:>2500V DC;
? 輔助電源:24V DC(15V~30V);
? 額定功耗:2W;
?
輸出接口:RS-485;
?
數據輸出:24路交流電流值;
?
通訊波特率:4800、9600、19200、28800 bps;
?
數據格式:無校驗、8個數據位、1個停止位
? 通訊協議:MODBUS-RTU協議;
四、產品外觀與安裝尺寸

安裝方式:螺釘固定或導軌固定;
五、產品接線說明

圖四、產品接線參考圖
說明:電流輸入通過互感器穿孔輸入,互感器孔徑為5mm,必須保證電流的線頭與線徑小于5mm,否則電流導線無線穿入。
表一、引腳定義
|
引腳
|
1
|
2
|
3
|
4
|
5
|
6
|
|
名稱
|
VCC
|
GND
|
INIT
|
G
|
D+
|
D-
|
|
描述
|
供電電源正
|
供電電源地
|
初始化引腳
|
初始化接地
|
RS485正
|
RS485負
|
說明:初始化端為地址與波特率初始化,短接后給產品上電,地址與波特率將初始化為1與9600。
六、MODBUS通訊協議
1、報文格式
(1)、功能碼0x03---查詢從設備寄存器內容
主設備報文
|
從設備地址 (0x01-0xFF 1字節)
|
|
功能碼 (0x03 1字節)
|
|
起始寄存器地址 (2字節)
|
|
寄存器個數 (2字節)
|
|
CRC校驗碼 (2字節)
|
從設備正確報文
|
從設備地址 (0x01-0xFF 1字節)
|
|
功能碼 (0x03 1字節)
|
|
數據區字節數 (2*寄存器個數1字節)
|
|
數據區 (寄存器內容 2*寄存器個數字節)
|
|
CRC校驗碼 (2字節)
|
(2)、功能碼0x10---對從設備寄存器置數
主設備報文
|
從設備地址 (0x01-0xFF 1字節)
|
|
功能碼 (0x10 1字節)
|
|
起始寄存器地址 (2字節)
|
|
寄存器個數 (2字節)
|
|
數據區字節數 (2*寄存器個數 1字節)
|
|
寫入寄存器的數據 (2*寄存器個數個字節)
|
|
CRC校驗碼 (2字節)
|
從設備正確報文
|
從設備地址 (0x01-0xFF 1字節)
|
|
功能碼 (0x10 1字節)
|
|
起始寄存器地址 (2字節)
|
|
寄存器個數 (2字節)
|
|
CRC校驗碼 (2字節)
|
注:1、CRC檢驗碼低位在前、高位在后,寄存器地址, 寄存器個數,數據均為高位在前、低位在后;
2、寄存器字長為16bit(兩個字節)
2、寄存器說明與命令格式
(1)、電參量數據寄存器定義表
|
寄存器地址(Hex)
|
寄存器內容
|
寄存器個數
|
寄存器狀態
|
數據范圍
|
|
0000
|
放01通道電流值
|
1
|
只讀
|
0~10000
|
|
0001
|
放02通道電流值
|
1
|
只讀
|
0~10000
|
|
0002
|
放03通道電流值
|
1
|
只讀
|
0~10000
|
|
0003
|
放04通道電流值
|
1
|
只讀
|
0~10000
|
|
0004
|
放05通道電流值
|
1
|
只讀
|
0~10000
|
|
0005
|
放06通道電流值
|
1
|
只讀
|
0~10000
|
|
0006
|
放07通道電流值
|
1
|
只讀
|
0~10000
|
|
0007
|
放08通道電流值
|
1
|
只讀
|
0~10000
|
|
0008
|
放09通道電流值
|
1
|
只讀
|
0~10000
|
|
0009
|
放10通道電流值
|
1
|
只讀
|
0~10000
|
|
000A
|
放11通道電流值
|
1
|
只讀
|
0~10000
|
|
000B
|
放12通道電流值
|
1
|
只讀
|
0~10000
|
|
000C
|
放13通道電流值
|
1
|
只讀
|
0~10000
|
|
000D
|
放14通道電流值
|
1
|
只讀
|
0~10000
|
|
000E
|
放15通道電流值
|
1
|
只讀
|
0~10000
|
|
000F
|
放16通道電流值
|
1
|
只讀
|
0~10000
|
|
0010
|
放17通道電流值
|
1
|
只讀
|
0~10000
|
|
0011
|
放18通道電流值
|
1
|
只讀
|
0~10000
|
|
0012
|
放19通道電流值
|
1
|
只讀
|
0~10000
|
|
0013
|
放20通道電流值
|
1
|
只讀
|
0~10000
|
|
0014
|
放21通道電流值
|
1
|
只讀
|
0~10000
|
|
0015
|
放22通道電流值
|
1
|
只讀
|
0~10000
|
|
0016
|
放23通道電流值
|
1
|
只讀
|
0~10000
|
|
0017
|
放24通道電流值
|
1
|
只讀
|
0~10000
|
數據范圍說明:0~10000為額定范圍值,*大輸出數據為12000。
(2)、模塊名、地址與波特率寄存器定義表
|
寄存器地址(Hex)
|
寄存器內容
|
寄存器個數
|
寄存器狀態
|
數據范圍
|
|
0030H
|
地址與
波特率
|
1
|
寫
|
地址(0-256)
波特率(0-3)
|
(3)、命令舉例
命令中所有寄存器地址字節、寄存器個數字節、數據字節高位在前,低位在后;CRC校驗碼低位字節在前,高位字節在后;
A:讀所有24組電流數據發送命令舉例:
|
從設備地址
|
功能碼
|
起始寄存器地址
|
寄存器個數
|
CRC-L
|
CRC-H
|
|
01H
|
03H
|
00H
|
00H
|
00H
|
18H
|
45H
|
C0H
|
|
|
|
|
|
|
|
|
|
說明:從寄存器0開始連續讀24個寄存器數據,每一路電流數據占用一個寄存器;
數據返回格式:
|
從設備地址
|
功能碼
|
數據區字節個數
|
返回數據區
|
CRC-L
|
CRC-H
|
|
01H
|
03H
|
30H
|
……
|
XX
|
XX
|
說明:數據區總共有24組數據,48個字節;CRC校驗碼要根據實際數據得出;
B:修改地址與波特率發送命令舉例:(地址由原來的01號變為02號,波特率改為9600<代碼為01>)
|
從設備地址
|
功能碼
|
起始寄
存器地址
|
寄存器
個數
|
數據字
節個數
|
寫入寄存
器的數據
|
CRC-L
|
CRC-H
|
|
01H
|
10H
|
00H
|
30H
|
00H
|
01H
|
02H
|
02H
|
01H
|
63H
|
00H
|
|
|
|
|
|
|
|
|
|
|
|
|
說明:”寫入寄存器的數據”**字節為修改后的地址碼(此數據為02H);**字節為修改后的波特率代碼;代碼定義:0--4800bps 1--9600bps 2--19200bps
3--28800bps
數據返回格式:
|
從設備地址
|
功能碼
|
起始寄存器地址
|
寄存器個數
|
CRC-L
|
CRC-H
|
|
01H
|
10H
|
00H
|
30H
|
00H
|
01H
|
85H
|
CFH
|
|
|
|
|
|
|
|
|
|
C:新增硬件撥盤地址與軟件地址選擇功能
本板設有一個硬件地址和軟件地址選擇開關,當DZ01短接時,為硬件設置通訊地址和波特率方式;不插短接塊時為軟件設置通訊地址和波特率方式。
硬
件設置地址和波特率:
軟件設置地址和波特率:
本板設有一個8位DIP雙列撥盤開關,當選擇硬件設置通訊地址和波特率方式時,用于地址和波特率設定,開關位于“ON“時為“0”;“OFF”時為“1”。
1~6為地址設置,可選地址為:00H~3FH(十六進制)0~63D(十進制)
7~8為波特率設置,可選波特率為,00H~03H(十六進制)0~3D(十進制)
代碼定義:0--4800bps 1--9600bps 2--19200bps 3--28800bps
開關選擇舉例:
地址:00H
波特率:00H(4800bps)
地址:01H(01D)
波特率:01H(9600bps)
地址:02H(02D)
波特率:01H(9600bps)
地址:3EH(62D)
波特率:01H(9600bps)
地址:3FH(63D)
波特率:01H(9600bps)
3、數據說明與數據還原計算
(1)、讀到的所有數據格式如下表(例:電流輸入量程等于5A時):
|
序號
|
通道
代碼
|
輸入
電流
|
讀到的十六
進制數據(Id)
|
十進制
數據
|
備注
|
|
高字節
|
低字節
|
|
1
|
I1
|
5A
|
27
|
10
|
10000
|
真有效值
|
|
2
|
I2
|
5A
|
27
|
10
|
10000
|
真有效值
|
|
3
|
I3
|
5A
|
27
|
10
|
10000
|
真有效值
|
|
…
|
…
|
|
|
|
|
|
|
23
|
I23
|
5A
|
27
|
10
|
10000
|
真有效值
|
|
24
|
I24
|
5A
|
27
|
10
|
10000
|
真有效值
|
(2):實際電流值計算方法
I=Id/10000*電流量程 (AAC)
其中:Id----從設備讀到的電流數據(將二字節轉為十進制數據)
如:模塊電流量程為5A,從模塊中讀到的數據值Id=26F1H(十六進制)=9969D(十進制),即實際電流值I=9969/10000*5=4.9845A。
附1:地址碼對照表
|
序號
|
地址碼
(HEX)
|
地址碼
(十進制)
|
序
號
|
地址碼
(HEX)
|
地址碼
(十進制)
|
|
1
|
01
|
1
|
|
21
|
33
|
|
2
|
02
|
2
|
|
22
|
34
|
|
3
|
03
|
3
|
|
23
|
35
|
|
4
|
04
|
4
|
|
24
|
36
|
|
5
|
05
|
5
|
|
25
|
37
|
|
6
|
06
|
6
|
|
26
|
38
|
|
7
|
07
|
7
|
|
27
|
39
|
|
8
|
08
|
8
|
|
28
|
40
|
|
9
|
09
|
9
|
|
29
|
41
|
|
10
|
10
|
16
|
|
30
|
48
|
|
11
|
11
|
17
|
|
31
|
49
|
|
12
|
12
|
18
|
|
32
|
50
|
|
13
|
13
|
19
|
|
33
|
51
|
|
14
|
14
|
20
|
|
34
|
52
|
|
15
|
15
|
21
|
|
35
|
53
|
|
16
|
16
|
22
|
|
36
|
54
|
|
17
|
17
|
23
|
|
37
|
55
|
|
18
|
18
|
24
|
|
38
|
56
|
|
19
|
19
|
25
|
|
39
|
57
|
|
20
|
20
|
32
|
|
40
|
64
|
附2:MODBUS_CRC16檢驗碼計算方法
循環冗余校驗CRC區為2字節,含一個16位二進制數據。由發送設備計算CRC值,并把計算值附在信息中,接收設備在接收信息時,重新計算CRC值,并把計算值與接收的在CRC區中實際值進行比較,若兩者不相同,則產生一個錯誤。
CRC開始時先把寄存器的16位全部置成“1”,然后把相鄰2個8位字節的數據放入當前寄存器中,只有每個字符的8位數據用作產生CRC,起始位,停止位和奇偶校驗位不加到CRC中。
產生CRC期間,每8位數據與寄存器中值進行異或運算,其結果向右移一位(向LSB方向),并用“0”填入MSB,檢測LSB,若LSB為“1”則與預置的固定值異或,若LSB為“0”則不作異或運算。
重復上述處過程,直至移位8次,完成第8次移位后,下一個8位數據,與該寄存器的當前值異或,在所有信息處理完后,寄存器中的*終值為CRC值。
產生CRC的過程:
1. 把16位CRC寄存器置成FFFFH.
2. **個8位數據與CRC寄存器低8位進行異或運算,把結果放入CRC寄存器。
3. CRC寄存器向右移一位,MSB填零,檢查LSB.
4. (若LSB為0):重復3,再右移一位。
(若LSB為1):CRC寄存器與A001 H 進行異或運算
5. 重復3和4直至完成8次移位,完成8位字節的處理。
6. 重復2至5步,處理下一個8位數據,直至全部字節處理完畢。
7. CRC寄存器的*終值為CRC值。
8. 把CRC值放入信息時,高8位和低8位應分開放置。
把CRC值放入信息中
發送信息中的16 位CRC值時,先送低8位,后送高8位。
若CRC值為1241(0001 0010 0100 0001):
|
Addr
|
Func
|
Data Count
|
Data
|
Data
|
Data
|
Data
|
CR CLo
|
CR
CHi
|
|
|
|
|
|
|
|
|
41
|
12
|
圖1:CRC字節順序
版本:V1307