一、產品概述
本產品為一款實時測量24路交流電流的數據采集模塊,采用高精密電流互感器實現信號的隔離與傳感,信號測量采用專用的真有效值測量芯片,可準確測量各種波形的電流真有效值,且精度高,穩定性好;采用標準RS-485總線接口和MODBUS-RTU協議。廣泛應用于路燈監控、生產自動化檢測、LED燈老化檢測等。本產品具有特點以下:
?24路同步采樣相互獨立AD,0.1秒完成所有通道的數據采集更新;
?精度高,采用24位AD采樣;
?穩定性好,測量精度不受環境溫度影響;
?電流穿孔輸入,使用方便;
二、產品型號
RS-40242A-14 (穿孔式輸入方式) RS-40242B-14 (端子式輸入方式)(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)
從設備地址 功能碼 起始寄
存器地址 寄存器
個數 數據字
節個數 寫入寄存
器的數據 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