许继电源DK04E模块通信规约.docx
- 文档编号:9058416
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:21
- 大小:26.89KB
许继电源DK04E模块通信规约.docx
《许继电源DK04E模块通信规约.docx》由会员分享,可在线阅读,更多相关《许继电源DK04E模块通信规约.docx(21页珍藏版)》请在冰豆网上搜索。
许继电源DK04E模块通信规约
DK04E型监控模块
通信协议
许继集团
许继电源有限公司
一、简介
本文介绍微机与DK04E型监控模块之间的通信协议,本协议适用于软件版本为1.0的DK04E型监控模块。
在本文中,“PC”代表微机,“MCSU”代表DK04E型监控模块。
本协议的基本功能
建立和中断微机与监控模块的连接。
通过监控模块的通信口执行一些对监控模块的控制功能。
规定监控模块与微机之间的数据交换格式。
通信的基本原则和数据格式
MCSU提供一个RS232C方式的串行通信口,通过这个通信口可以与外部的计算机或MODEM通信。
在这种通信方式里,采用固定的通信速率和数据格式,通信速率为9600bits/s,采用8位数据位,一个停止位,无奇偶校验,以字符形式进行接收和发送。
通信原则为“主从”方式,MCSU为“从”,PC为“主”,当MCSU接收到PC的指令后即向PC传送信息,或者执行一些控制命令。
但有一种情况例外,即当MCSU向PC回报(定时回报或故障回报)时,首先由MCSU向PC回报监控模块的入口码,并告之回报的类型,这些过程完成后,即又回到前面所述的“主从”工作方式。
二、从PC发送到MCSU的数据包的格式
PC--->MCSU
Sync
AccessCode
ByteCount
CommandID
CommandIDDuplicate
Data+Duplicate
ChkSum
1byte
3bytes
1byte
1byte
1byte
Xbytes
1byte
数据包内各部分内容的说明:
SyncByte:
1byteMCSU用来识别来自PC数据的特定字符(也可称同步字符),它总是在数据包的最前面。
其值必须为AA(hex)
AccessCode:
3bytes由七位十进制数组成的MCSU的入口码,入口码在MCSU里以24位的二进制数存储,通信时从低位字节到高位字节依次传送。
ByteCount:
1byte此数据包的字节数,此字节数是从CommandID到Chksum之间的字节个数。
CommandID:
1byte命令种类的识别字符,此字符在每个数据包里连续发送两次,在MCSU里为了提高通信的可靠性,只有当一个数据包内两次发送的ID相等时,才认为此数据包的内容有效。
各种CommandID值所代表的意义说明如下:
ReqSndStatID=100;要求MCSU发送系统状态数据包
ReqSndParamID=101;要求MCSU发送系统参数数据包
ReqSndBatEvID=117;要求MCSU发送电池管理数据包(暂时保留未用)
ReqSndLogID=118;要求MCSU发送告警记录数据包
ReqSndSMRstatID=119;要求MCSU发送整流模块状态数据包
ReqSndSMRprmID=120;要求MCSU发送某一整流模块参数数据包
SetSMRparamsID=122;设置整流模块参数*
ReqRstSMRHVSDID=123;要求MCSU对整流模块高压关机进行复位
ReqEQ=124;要求MCSU转为均衡工作方式
ReqFloat=125;要求MCSU转为浮充工作方式
ReqSMRdisable=126;要求MCSU关掉所有整流模块
ReqSMRenable=127;要求MCSU打开所有整流模块
ReqSndParamEXTID=164 ;要求MCSU发送扩展参数包
ReqSndStatC3ID=167;要求MCSU发送扩展状态包
ACKEmergID=135;证实PC已收到MCSU的故障回报
ACKDailyID=136;证实PC已收到MCSU的定时回报
SetCSUTime=137;设置MCSU的时间*
SetMcsuParamID=160;设置MCSU的参数*
SetMcsuACParamID=161;设置MCSU有关交流部分的参数*
ReqProdTest=162;要求进入产品测试模式(暂时保留未用)*
SetMcsuParamEXTID= 163 ;设置MCSU的扩展参数包
Data:
不同长度的数据流,通常情况下,数据包内不需要发送具有真正意义的data,在需要发送Data的数据包其对应的CommandID项上已做上“*”标记。
注意:
当PC需要修改MCSU的参数时,应对发往MCSU的参数进行参数范围检查,否则不正确的参数可能对电源系统的正常运行造成严重影响,同时建议修改参数时进行密码保护。
当数据包内不需要发送具有真正意义的Data数据时,发送此数据包时,在数据包的Data项里应包括一个虚拟的“word”(2bytes),这两个字节的值并不重要,但这两个字节的值应被Chksum所计算在内。
为了减小通信线路上的噪声及干扰,数据包内的Data项内的每个字节都应连续地发送两次,只有当两次传送的数据相等时MCSU才认为此数据包的内容为有效。
Chksum:
1byte检查和,即将本数据包内的从入口码到Data里最后一个数据的每个字节依次相加,高位进位自然溢出,所得结果即为Chksum。
Chksum可用来检验通信过程中数据传输的可靠性,在MCSU的程序里,相关的通信子程序将接收到的数据按照Chksum的定义进行计算,所得结果与接收到的ChKaum进行比较,若两者不相等,则认为传输过程中出错,这样可以避免错误的数据对MCSU所造成的影响。
各种数据包内Data的数据格式说明如下:
各种数据类型的定义:
Byte:
8位无符号数,范围0~255
Word:
16位无符号数,范围0~65535,低字节在前
ShortInt:
8位有符号数,范围-128~127
SmallInt:
16位有符号数,范围-32768~32767,低字节在前
LongInt:
32位有符号数,低字节在前
LSB:
代表低位字节
MSB:
代表高位字节
Duplicate:
表示重复数据
当MCSU收到的CommandID需要带有Data时,这个Data里应该是具有一定格式的数据,例如:
要调整MCSU的参数时,Data项里的数据格式如下所示:
设置MCSU的参数:
AmbTempHi:
word(单位为degree℃);环境温度过高告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
BatTempHi:
word(单位为degree℃);电池温度过高告警点(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
Vhialarm:
word(单位为100mV);系统输出电压过高告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
Vloalarm:
word(单位为100mV);系统输出电压过低告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
NumSMRs:
word;整流模块个数
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
SMRtype:
word(0=A型,1=B型);整流模块类型
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
FSDcurrent:
word(单位为A);电池电流传感器满量程
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ModemEnable:
word(0=不启用,1=启用);MODEN是否启用
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
EmergCall:
word(0=不启用,1=启用);故障回报是否启用
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
DailyCall:
word(0=不启用,1=启用);定时回报是否启用
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
DailyHour:
word;定时回报时间的小时(24小时制)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
DailyMin:
word;定时回报时间的分
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
Expansion1:
word(0=不启用,1=单相交流检测);单相交流检测是否启用
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
PhNum1:
20bytes(ASCIIdigits/characters);电话号码1(数字或字母均用ASCII
Comesas:
eachbytetwiceinsuccession码表示)
PhNum2:
20bytes(ASCIIdigits/characters);电话号码2(同上)
Comesas:
eachbytetwiceinsuccession
PhNum3:
20bytes(ASCIIdigits/characters);电话号码3(同上)
Comesas:
eachbytetwiceinsuccession
BattRating:
word(单位为AH);电池标称容量
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
BTC:
word(单位为mV/℃/每节电池,0=不启用);电池充电温度补偿系数
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
IbatLimit1:
word(单位为A);电池充电限流1(VbatVdd)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
IbatLimit2:
word(单位为A);电池充电限流2(VddVbatVfloat)(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
IbatLimit3:
word(单位为A);电池充电限流3(VbatVfloat)(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
DeepDisch:
word(单位为100mV);电池深放电电压点(Vdd)(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
FloatVolts:
word(单位为100mV);浮充电压(Vfloat)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
EQVolts:
word(单位为100mV);均衡充电电压
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
DropVolts:
word(单位为100mV);电压降值
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
BatDisAlm:
word(单位为100mV);电池放电告警电压点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
VStartEQ:
word(0=不启用,1=启用);依照放电终止电压启动均衡充电是否启用
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
EQtripV:
word(单位为100mV);均衡充电阈值电压
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
QStartEQ:
word(0=不启用,1=启用);依照电池放电安时数启动均衡充电是否启用
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
EQtripQ:
word(单位为AH);均衡充电阈值安时数
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
EQendA:
word(单位为A,0=不启用);依照充电电流停停止均衡充电是否启用
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
EQduration:
word(单位为小时);均衡充电持续时间
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
EQperiod:
word(单位为星期);均衡充电周期
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
DischIdif:
word(单位为A);两组电池放电不平衡电流值
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
LVSD:
word(单位为100mV);低压断路开关断开电压
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
Expansion2:
byte(0=不启用,1=三相交流检测);扩展口2(三相交流电检测)是否启用
:
duplicate
B.T.S.Alarm:
byte(0=不启用,1=启用);电池温度传感器失效告警是否启用(未用)
:
duplicate
其它各数据包里的Data项里数据格式分别说明如下:
设置整流模块参数:
SMRnumber:
byte(255=所有的整流模块);整流模块号码
:
duplicate
I-Limit:
byte(单位为A);输出限流点
:
duplicate
HVSDtrip:
word(单位为100mV);输出电压过高关机点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
Vhialarm:
word(单位为100mV);输出电压过高告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
Vloalarm:
word(单位为100mV);输出电压过低告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
AdjV:
ShortInt-有注意事项;均流调节值
":
duplicate
SecEnable:
byte(1=不启用,0=启用);密码功能是否启用
":
duplicate
注意:
Adjv的值对于每个模块来说是不同的,当要改变所有整流模块的参数时,此时应将Adjv的值设置为120,这样当SMR收到的Adjv的值为120时,SMR将不修改其本身的Adjv的值。
设置MCSU的时间:
Day:
byte;日
":
duplicate
Month:
byte;月
":
duplicate
Year:
byte;年
":
duplicate
Cent:
byte;世纪
":
duplicate
Hour:
byte;小时
":
duplicate
Minute:
byte;分
":
duplicate
Second:
byte;秒
":
duplicate
设置MCSU的有关交流部分的参数:
ACVhialarm:
word(单位为V);单相交流输入电压过高告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ACVloalarm:
word(单位为V);单相交流输入电压过低告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ACFhialarm:
word(单位为0.1Hz);单相交流输入频率过高告警点(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ACFloalarm:
word(单位为0.1Hz);单相交流输入频率过低告警点(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
FSDACI:
word(单位为A);单相交流输入电流检测的满量程(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ACVhi3ph:
word(单位为V);三相交流输入电压过高告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ACVlo3ph:
word(单位为V);三相交流输入电压过低告警点
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ACFhi3ph:
word(单位为0.1Hz);三相交流输入频率过高告警点(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
ACFlo3ph:
word(单位为0.1Hz);三相交流输入频率过低告警点(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
FSDACI3ph:
word(单位为A);三相交流输入电流检测的满量程(未用)
Comesas:
LSB,LSBDuplicate
:
MSB,MSBDuplicate
三、MCSU发送到PC的数据包
MCSU--->PC
MCSU接收到PC要求发送数据包的命令后,发送给PC的数据包内的数据格式:
SyncByte
PacketID
Data
PacketIDDuplicate
DataDuplicate
ChkSum
AAhex
word
Xbytes
word
Xbytes
1byte
MCSU回报(故障或定时回报)到PC的数据包内的数据格式:
SyncByte
CallupID
AccessCode
CallupIDDuplicate
AccessCodeDuplicate
ChkSum
AAhex
byte
3bytes
byte
3bytes
1byte
数据包内各个部分的内容描述如下:
PacketID:
表示不同数据包类型的特征代码
mcsuStatBlkID=60;MCSU状态数据包
mcsuParamBlkID=61;MCSU参数数据包
mcsuBatEvBlkID=62;电池历史记录数据包(暂时未用)
mcsuLogBlkID=63;告警记录数据包
mcsuSMRstatBlkID=64;整流模块状态数据包
mcsuSMRparamBlkID=65;整流模块参数数据包
mcsuParamEXTBlkID=66 ;MCSU扩展参数包
mcsuStat3BlkID=69 ;MCSU扩展状态包
CallupID:
mcsuEmergencyID=70;MCSU故障回报特征代码
mcsuDailyReportID=71;MCSU定时回报特征代码
Data:
不同长度的数据流,其内容根据不同的PacketID而各不相同,为了减小通信线路上的噪声及干扰,每个数据包内的数据都被发送两次,所以在PC的程序里应作恰当地处理,只有当两次传送的数据完全相等时,才可认为此数据包的内容为有效。
ChkSum:
1byte检查和,即将本数据包内的从同步字符Sync到Data内最后一个数据的每个字节依次相加,高位进位自然溢出,所得结果即为Chksum,重复发送的数据(Dataduplicate)和MCSU的入口码(AccessCode)均应包括在内。
MCSU发送到PC的各种数据包内Data里的数据格式
数据包内数据的内容根据数据包的种类不同而不同,各种数据包的内容分别如下所述:
MCSU状态数据包:
SysV:
word(单位为100mV);系统电压
Itotal:
word(单位为A);负载电流
Bat1current:
SmallInt(单位为A);电池组1充电或放电电流(更改:
原为word)
Bat2current:
SmallInt(单位为A);电池组2充电或放电电流
Alarm1:
byte
(Bit0=EEPROMvalueoutofrange);EEPROM内的参数超出范围
(Bit1=Non-urgentSMRalarm);整流模块非紧急告警
(Bit2=UrgentSMRalarm);整流模块紧急告警
(Bit3=CB/Fuseopen);负载空开跳闸
(Bit4=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电源 DK04E 模块 通信 规约