康明斯动力设备(深圳)官网: 13600409663

广东分支机构康明斯动力设备(深圳)有限公司

首页 > 康明斯发电机-移动官网 > 新闻动态

康明斯发电机组控制系统怎么写寄存器

2019-04-16 21:53:24

 康明斯发电机组控制系统怎么写寄存器

该命令用于写入一组连续的数据到寄存器数组。终端直接发送一个写寄存器数组的请求命令到康明斯发电机组控制器,康明斯发电机组控制器返回写成功或异常信息。在写入的数据中每个寄存器总是包含 2 个字节的数据,第一个字节为高位字节,第二个字节为低位字节。该命令的数据格式如下:

 

请求命令:

 

字节

内容

说明

0

康明斯发电机组控制器地址

1-32,与康明斯发电机组控制器对应

1

16

Function code

2

3

寄存器首地址

-高位字节

-低位字节

参见寄存器定义

4

5

寄存器数组长度

-高位字节

-低位字节

大于 0,小于 125(45)

6

寄存器字节长度 L

寄存器长度*2

7

8

第一个寄存器 写入数据

-高位字节

-低位字节

 

9

10

第二个寄存器写入数据

-高位字节

-低位字节

 

 

 

L+5 L+6

最后一个寄存器写入数据

-高位字节

-低位字节

 

L+7 L+8

CRC 冗余校验

-低位字节

-高位字节

参见 CRC 冗余校验

 

正常响应:

 

字节

内容

说明

0

康明斯发电机组控制器地址

1-32,与康明斯发电机组控制器对应

1

16

Function code

2

3

寄存器首地址

-高位字节

-低位字节

参见寄存器定义

4

5

寄存器数组长度

-高位字节

-低位字节

大于 0,小于 125

6

7

CRC 冗余校验

-低位字节

-高位字节

参见 CRC 冗余校验

异常响应:


字节

内容

说明

0

康明斯发电机组控制器地址

1-32,与康明斯发电机组控制器对应

1

144

Function code+128

2

2

 

3

4

CRC 冗余校验

-低位字节

-高位字节

 

 

 

CRC 冗余校验

CRC 冗余校验用于检查数据的可靠性。CRC 码的计算基于生成多项式X16+X12+X5+1 对传输数据中 CRC 码前的所有字节进行计算。CRC 码计算的 C 语言程序如下:

 

uint count_CRC(buf_addr,num) uchar buf_addr[];

uint num;

{

uchar *p_ptr; uchar i;

uint CRC=0xffff; p_ptr=buf_addr; while(num--)

{

CRC^=*p_ptr++; for(i=0;i<8;i++)

{

if(CRC&1)

{


 

 

}

else

{

 

}

}

}

CRC>>=1;

CRC^=0xa001;

 

 

CRC>>=1;


return CRC;

}


数据类型

在下表中定义的是在寄存器定义中的数据类型。

 

数据类型

定义

长度(字)

说明

UInteger

无符号整数

1

 

Integer

整数

1

 

Binary 32

32 位二进制

1

高位字节 1=位 24-位 31 低位字节 1=位 16-位 23 高位字节 2=位 8 -位 15

低位字节 2=位 0 -位 7

Binary 16

16 位二进制

1

高位字节 1=位 8-位 15

低位字节 1=位 0 -位 7

Binary 8

8 位二进制

1

高位字节 1=0

低位字节 1=寄存器值

UChar

无符号字符

1

高位字节 1=0

低位字节 1=寄存器值

Char

ASCII 字符

1

高位字节 1=0

低位字节 1=寄存器值

Date

日期

2

高位字节 1=BCD 码(日) 低位字节 1=BCD 码(月) 高位字节 2=BCD 码(年)

低位字节 2=0

Time

时间

2

高位字节 1=BCD 码(小时) 低位字节 1=BCD 码(分钟) 高位字节 2=BCD 码(秒) 低位字节 2=0


 

 

 

 

电话咨询 短信咨询 公司地图 首页