PRS4000电源系统支持的COMLI通讯协议
广州珠江电信设备制造有限公司 (2011年09月30日)
1. 简介
PRS系统的COMLI通讯协议响应两类由监控设备发出的指令。它们是:
* 传送请求(从PRS系统获取数据)
* 动作命令(向PRS系统发送数据)
如果PRS系统接收到传送请求,就会按照指定的地址范围送出数据。如果PRS系统接收到动作命令,就会执行指定的命令并返回一条确认消息。
下表列出了连接PRS系统用的COMLI信息的各种类型:
COMLI信息类型 | 信息类型码 | 说明 | 发出者 | 响应者 |
2 | 32h | 传送请求指令 | 监控设备 |
|
0 | 30h | 对传送请求的响应 |
| PRS |
0 | 30h | 动作命令指令 | 监控设备 |
|
1 | 31h | 对动作命令的确认 |
| PRS |
2. COMLI信息类型2格式
字节号 | 名称 | 内容说明 |
0 | Start Of Text | 标志一条新的信息开始,固定为02h |
1 | Id High |
|
2 | Id Low | 这两个字节指出目标设备类型,对于PRS系统定义为19h |
3 | Stamp | 这个字节定义为00h |
4 | Message Type | 对于COMLI信息类型2,这个字节为32h |
5 | Addr1 |
|
6 | Addr2 |
|
7 | Addr3 |
|
8 | Addr4 | 这四个字节给出要读取的数据区域的起始地址 |
9 | No of Bytes High |
|
10 | No of Bytes Low | 这两个字节给出要读取的数据的字节数 |
11 | End Of Text | 这个字节标志一条信息结束,固定为03h |
12 | Block Check Count | 这个字节是这条信息的校验和 |
按照上述格式,从地址4000h开始读取10个字节数据的指令信息如下:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
02h | 31h | 39h | 00h | 32h | 34h | 30h | 30h | 30h | 30h | 41h | 03h | BCC |
3. COMLI信息类型0格式(PRS对COMLI信息2的响应)
字节号 | 名称 | 内容说明 |
0 | Start Of Text | 指示新的一条信息开始,固定为02h |
1 | Id High |
|
2 | Id Low | 这两个字节指出这条信息是发给监控设备的,定义为00h |
3 | Stamp | 这个字节定义为00h |
4 | Message Type | 对于COMLI信息类型0,这个字节为30h |
5 | Addr1 |
|
6 | Addr2 |
|
7 | Addr3 |
|
8 | Addr4 | 这四个字节给出起始地址 |
9 | No Of Bytes High |
|
10 | No Of Bytes Low | 这两个字节给出数据块的字节数 |
11 | Data 1 |
|
12 | Data 2 |
|
¼ |
|
|
n-2 | Data n | 这是要传送的数据值 |
n-1 | End Of Text | 这个字节标志信息结束,固定为03h |
n | Block Check Count | 这是信息的校验和 |
按照以上格式,包含从4000h地址处读得的两个字的应答信息如下:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
02h | 30h | 30h | 00h | 30h | 34h | 30h | 30h | 30h | 30h | 34h |
11 | 12 | 13 | 14 | 15 | 16 |
|
|
|
|
|
xxh | xxh | xxh | xxh | 03h | BCC |
|
|
|
|
|
4. COMLI信息类型0格式(动作命令)
字节号 | 名称 | 内容说明 |
0 | Start Of Text | 一条新的信息的起始标志,定义为02h |
1 | Id High |
|
2 | Id Low | 这两个字节代表目标设备,对于PRS系统定义为19h |
3 | Stamp | 这个字节定义为00h |
4 | Message Type | 对于COMLI信息类型0,这个字节是30h |
5 | Addr1 |
|
6 | Addr2 |
|
7 | Addr3 |
|
8 | Addr4 | 这四个字节指出要写入的地址区域 |
9 | No Of Bytes High |
|
10 | No Of Bytes Low | 这两个字节为写入的字节数,总是8 |
11 | Command Type | 这是要执行的命令的类型 |
12 | Command SubType | 这个命令的子类型 |
13 | Parameter 1 High | 命令的第一个参数的高8位 |
14 | Parameter 1 Low | 命令的第一个参数的低8位 |
15 | Parameter 2 High | 命令的第二个参数的高8位 |
16 | Parameter 2 Low | 命令的第二个参数的低8位 |
17 | Parameter 3 High | 命令的第三个参数的高8位 |
18 | Parameter 3 Low | 命令的第三个参数的低8位 |
19 | End Of Text | 信息结束标志,定义为03h |
20 | Block Check Count | 整条信息的校验和 |
按照以上格式,一条PRS系统的命令如下(地址4500为例):
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
02h | 31h | 39h | 00h | 30h | 34h | 35h | 30h | 30h | 30h | 38h |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
|
xxh | xxh | 00h | 00h | 00h | 00h | 00h | 00h | 03h | BCC |
|
5. COMLI信息类型1格式(PRS对命令的应答)
字节号 | 名称 | 内容说明 |
0 | Start Of Text | 这个字节标志信息开始,定义为02h |
1 | Id High |
|
2 | Id Low | 这两个字节为目标设备标识,对于监控设备,定义为00h |
3 | Stamp | 这个字节与收到的命令中的相同 |
4 | Message Type | 对于COMLI信息类型1,这个字节为31h |
5 | Acknowledge | 应答字符 |
6 | End Of Text | 信息结束标志,定义为03h |
7 | Block Check Count | 信息的校验和 |
按照以上格式,PRS对动作命令的应答如下:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
|
|
02h | 30h | 30h | 00h | 31h | 06h | 03h | BCC |
|
|
|
6. 校验和的计算(Block Check Count)
BCC字节是用于确保信息传输正确的。BCC字节是对信息中除第一个字符(STX)外的所有字符计算校验和。校验和的计算方法是按位作异或(XOR)。
7. PRS寄存器值的编码和解码
COMLI信息中从PRS的寄存器读出或写入PRS的寄存器中的数据值是按高位在前的顺序传送和存放的,这和PC机内字节表示顺序正好相反,故读出后或写入前需要对每一个数据字节作高低位颠倒操作。例如,如果打算读4110h处的寄存器值,命令如下:
02h 31h 34h 00h 32h 34h 31h 31h 30h 30h 32h 03h BCC
如果寄存器中的值为55.00V(十六进制为157C),则PRS的回答如下:
02h 30h 30h 00h 30h 34h 31h 31h 30h 30h 32h A8h 3Eh03h BCC
寄存器值5500(或157Ch)高低位颠倒,15h变成了A8h,7Ch变成了3Eh。