一、产品概述 本产品为一款实时测量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