无纸记录仪通讯协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无纸记录仪与上位机通讯协议
本协议适用于存在16个主机节点和64个记录仪节点的通信情况。
一、 通讯格式:
在以下的通信协议中,通信格式将参照如下的格式进行。
发送端(PC 机→记录仪)
Command Source Dest L1L3L2L4Data1CRC1EndCmd
Length Data2……
Datan Data CRC2CRC
应答端(记录仪→ PC 机)
Status
Source Dest L1L3L2L4Data1CRC1EndCmd
Length Data2……
Datan Data CRC2CRC
参数解释:
1、Command为一个字节,以0b1010,xxxx或0b1101,xxxx表示。高四位1010或0b1101
为命令标志;低四位xxxx(0000~1111)表示具体的命令。
2、EndCom以一个字节0b1010,1111表示。
3、Status为一个字节,以0b1011,xxxx表示。高四位1011为状态标志;低四位xxxx 为
具体的状态信息,其中0000表示操作成功,0001~1111为常见的通信出错信息。具体的出错代码请参见错误代码表,并将在日后的程序开发中继续完善。
4、Source为源地址,即通信数据发送者的地址,为一个字节。具体信息见地址划分表。
5、Dest为目的地址,即通信数据接收者的地址,为一个字节。具体信息见地址划块表。
6、Length(L1、L2、L3、L4):数据包正文的长度,拆分成四个字节,低字节在前,
高字节在后,以0b1011,xxxx表示。高四位1011为长度标志;低四位xxxx(0000~1111)表示后面紧跟的数据长度。例如当数据包正文长度为512字节时,Length=0x100,则L1=0xB0,L2=0xB0,L3=0xB1,L4=0xB0。如果Status不为0xC0,即状态出错,则Length = 0。
7、Data(Data1、Data2 、…Datan):以字节0b1000,xxxx表示。高四位1000为数据信
息标志;低四位xxxx(0000~1110)表示具体的数据。在此情况下,本协议要求将一个八位的数据拆分成两个八位的数据进行传输。例如当有发送数据为0x34f8时,则实际发送的数据流为Data(m)=0xC8,Data(m+1)=0xCF,Data(m+2)=0xC4,Data(m+3)=0xC3。因此数据的长度肯定为偶数。
8、CRC以字节0b1001,xxxx表示,共两个字节。本协议采用八位的异或和作为CRC
校验,发送时,需要拆分成两个部分进行传输,具体见Data的拆分方法。
二、通讯的具体命令
以下都是在通讯正常的情况,即Status=0xC0,如果Status=0xC1~0xCF,则Length=0。
2.0 PC机从向记录仪读取系统组态参数CGIVE1(0xA0)
PC机→记录仪:
Command = 0xA0
Length = 0
记录仪→PC机:
Status = 0xC0
Length = 15
Data = 系统组态参数
记录仪系统组态参数:
时钟3字节时0~23,分0~59,秒0~59
日期3字节年0~99,月1~12,日1~31
密码3字节00~99,00~99,00~99
记录点数1字节0 ~ 15
断偶处理1字节0 ~ 2(0:保持1:回到起点2:回到终点)
时标选择1字节0 ~ 3
背光1字节0x00 ~ 0xFF(增加的幅值,补码)
对比度1字节0x00 ~ 0xFF(增加的幅值,补码)
峰值保持1字节0~50秒
共计:15字节
样例:
发送指令: a0 16 46 b0 b0 b0 b0 98 94 af
接收数据: c0 46 16 bf b0 b0 b0 89 80 80 83 81 81 86 80 83 80 82 80 80 80 80 80 80 80 82 80 80 80 83 80 80 80 80 80 80 80 97 92 af
2.1 PC机向记录仪写入系统组态参数CBRING1(0xA1)
PC机→记录仪:
Command = 0xA1
Length = 15
Data = 系统组态参数(参看A0)
记录仪→PC机:
Status = 0xC0
Length = 0
样例:
发送指令: a1 16 46 bf b0 b0 b0 89 80 80 83 81 81 86 80 83 80 82 80 80 80 80 80 80 80 82 80 80 80 83 80 80 80 80 80 80 80 99 92 af
接收数据: c0 46 16 b0 b0 b0 b0 96 99 af
2.2 PC机从记录仪读取通道组态参数CGIVE2(0xA2)
PC机→记录仪:
Command = 0xA2
Length = 1
Data = 通道号
记录仪→PC机:
Status = 0xC0
Length = 24
Data = 通道号+通道组态参数
通道组态参数:
信号类型1字节B(0),E(1),J(2),K(3),S(4), T(5),Pt100(6),Cu50(7),
0~10mA(8),4~20mA(9),0~5V(10),1~5V(11),
0~20mV(12),0~100mV,(13), PID(14)
工程单位1字节以0~25表示,如下工程单位表
mmm/h,mmm/min,mmm/s,Kg/h,Kg/min,
Kg/s,L/h,L/min,L/s,t/h,t/min,t/s,MPa,
KPa,Pa,Kgf/cmm,mmHHO,mmHg,Bar,
℃,%,ppm,pH,r/min,mm,Nmmm/h 量程上限2字节 -999~9999
量程下限2字节 -999~9999
报警上上限2字节 -999~9999
报警上限2字节 -999~9999
报警下限2字节 -999~9999
报警下下限2字节 -999~9999
报警继电器4字节依次为上上限,上限,下限,下下限。0~12
记录间隔1字节 1,2,4,6,12,24,30(S)
滤波时间1字节 0~99(0.0S~9.9S)
小信号切除1字节0~255(0.0~25.5%)
开方标志1字节 1:开方,0:不开方
小数点位1字节 4:无小数,3:1位小数
2:2位小数,1:3位小数
共计:23字节
样例:
发送指令: a2 16 46 b1 b0 b0 b0 80 80 90 96 af
接收数据: c0 46 16 b8 b1 b0 b0 80 80 89 80 89 80 87 82 8f 80 80 80 80 80 87 82 8f 80 87 82 8f 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 81 80 92 96 af