当前位置:文档之家› 上位机协议

上位机协议

校准电压:

分2个区间校准:

1500---3000:输入这个区间的K,B值 B 就是要求输出1500mv的偏差K

就是斜率

= (3000的测量值—1500的测量值)/1500 *1000,也就是放

大1000倍

这个数值写入EEPROM:

格式为:

06 00 01 05 35 04 01 01

第一个表示:06 表示写电压的EEPROM

第二个表示:00表示1500-3000的低电压区间,01表示

3000-4500的区间

第三个表示:01表示误差是正偏差,也就是比真实值大

第4,5表示:K的值535 是K放大1000倍的16进制数据

第6个表示:B的值

3000—4500:同上

格式为:

06 01 01 1A 0A 06 01 01

RIGHT

校准电流:

分2个区间校准:

15ma以下直接加一个偏差,要是没有误差,或者在1ma以内,这个修正值

可以不加

15ma—500ma 直接算这个区间的K,B值B就是真实电流(安吉能表测试)是

15ma的实际测量偏差,K=(500ma的测量值—15ma的测量值)

/(500-15) *1000 放大1000倍;

RIGHT

设置电压:

原来的协议

01 06 09 C4 01 01 01 01 表示2500

01 06 0e 42 01 01 01 01 表示3650

01表示设置电压

读取电压:

02

读取电流:

读取温度值:

以上我还没加从机的地址,其实是需要加地址的;

框架就是校准-----设置-------读对象就是电压------ 电流------ 温度

数据帧解析:

06 :表示校准也就是往EEPROM里面写数据:

00 :表示电压区间1500---3000的校准命令

01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);

0表示小于

05 :

35 :表示K的高位和地位

04 :表示B的值

01 :

01 :表示地址的高位和地位

06 :表示校准也就是往EEPROM里面写数据:

01 :表示电压区间3000---4500的校准命令

01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);

0表示小于

05 :

35 :表示K的高位和地位

04 :表示B的值

01 :

01 :表示地址的高位和地位

06 :表示校准也就是往EEPROM里面写数据:

02 :表示电流为15ma以下的

01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);

0表示小于

05 :

35 :无意义(也就是在这个区间不算K值,只算个偏差值)

04 :表示B的值

01 :

01 :表示地址的高位和地位

06 :表示校准也就是往EEPROM里面写数据:

03 :表示电流为15ma-----500ma区间的

01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);

0表示小于

05 :

35 :表示K的高位和地位

04 :表示B的值

01 :

01 :表示地址的高位和地位

校准成功:返回:06 16

设置:

RIGHT

设置电压:

01 设置的命令

01 表示设置电压的命令

0F

39 表示想设置的电压目标值,单位mv;

01 任意值

01 任意值

01

01 设置的模拟电池地址的高位和地位

设置成功返回:01 16

目前就是设置电压,还没有其他

读取模式:

读取电压:

02 读取模式

00 读取电压命令

01 读取从机的地址信息

01

返回的信息:

02

00

06

05读取的电压值

01

01读取的地址信息

读取电流:

02 读取模式

01 读取电压命令

01 读取从机的地址信息01

返回的信息:

02

01

06

06读取的电流值

01

01 读取的地址信息

读取温度:

02 读取模式

02 读取电压命令

01 读取从机的地址信息01

返回的信息:

02

01

06

07读取的温度值

01

01 读取的地址信息

功能:码弄复杂点的主要意思就是防止上位机出现误动作

设置电压:

时间速率:大概在1秒以内,AD采样的时间已经达到最短;要再加快时间就要

硬件上让电压更加接近,再看看那个递增的值,加100能增加多少电

压;

精度:1.5---4.5 区间之内能达1MV;

上位机发送的21 12 01 需要的电压XX XX 数据长度5位

附带地址:

起符:21 12

设置电压:01

需要的值:XX XX

返回21 12 01 16

读取电压:

精度可能会受单片机采集精度的影响,其实很简单,就是实际采样的值+或者减

去一个偏差值,这个可以通过精度表测量测量,也许你设置了,但是末端没输出

对吧,所以我觉得还是需要读电压的值的;

上位机发送56 65 01 数据长度为3位

附带地址

返回56 65 01 电压值5个

读取电流:

分2个区间:15ma以下的;

根据经验测量修正一个偏差,有的就不用修,1ma以内的不用修

15—500的,K,B符号

所以要让读取的电流精度尽可能的高,那么读取的数值必须要经过修正,传递给

上位机的是比较精准的电流值

上位机发送56 65 02 数据长度为3位

相关主题