
4 数据传输要求
4.1 概述
《新能源汽车动力电池系统装配数字化车间数据一致性要求》中的数据传输要求规定了交互数据的编码规则和传输规则,支持基本数据类型和结构化数据类型的定义和传输。
基本类型是原子(atomic)类型,即不能再被划分为更小的类型。结构化类型由若干基本类型和其他结构化类型组成,其嵌套的复杂度和深度不受本部分约束。
4.2 基本数据类型
4.2.1 整数(Integer)类型
整数类型数据的值是有符号的整数,编码如图1所示。表1以Integer16为例给出了八位位组中每位的编码。数据传输时,首先发送该类型数据最高有效八位位组的MSB。

图1 整数类型数据编码
表1 Integer16整数类型数据编码

4.2.2 无符号(Unsigned)类型
无符号类型数据的值是无符号整数,编码如图2所示。表2以Unsigned16为例给出了八位位组中每位的编码。数据传输时,首先发送该类型数据最高有效八位位组的MSB。

图2 无符号类型数据编码
表2 Unsigned16无符号类型数据编码

4.2.3 浮点(Float)类型
浮点值按照图3和图4所示进行编码。首先发送符号和指数的MSB,再发送指数的剩余部分以及分数的MSB~LSB。如果浮点数据类型的对象值未知,则发送值0x7F, 0xA0,后续全部为零(0x00);该值表示“非数(Not-a-number)”。

图3 单精度浮点类型数据编码

图4 双精度浮点类型数据编码
4.2.4 八位字符串(Octetstring)类型
表3所示为八位字符串(Octetstring)的编码方式。对于N个八位位组的字符串,首先发送该类型数据最高有效八位位组的MSB。
表3 Octetstring类型数据编码

4.2.5 比特域(Bit Field)类型
比特域数据类型用于编码固定长度的单比特数据。Bit Fieldn表示n个比特的比特域。表4、表5和表6给出了比特域数据类型的比特编号方式。比特域数据的长度(以比特为单位)值应为8的倍数,并以一个八位位组序列在网络上传输,首先发送最高有效八位位组的MSB。
表4 1个八位位组的Bit Field8类型数据编码

表5 2个八位位组的Bit Field16类型数据编码

表6 3个八位位组的Bit Field24类型数据编码

4.2.6 比特串(Bitstring)类型
比特串数据类型用来编码可变长度的单比特数据。表7给出了比特串数据类型的比特编码方式。该类型的数据被定义为一个比特序列,且应同时规定其比特长度。比特串的数据被打包成若干个八位位组,并以一个八位位组序列在网络上传输。八位位组的个数等于能包含所有比特值的最小八位位组个数。对于多于1个八位位组的数据,首先发送数据的最高有效八位位组。
表7 Bitstring类型数据编码

4.3 结构化数据类型
4.3.1 结构体(Struct)类型
结构体类型是由不同基本数据类型或结构化数据类型构成的一个有序集合。这些基本数据类型或结构化数据类型的数据被称为结构体的成员,由成员标识符(MemberID)进行标识。结构体类型的数据可被完整地访问,或者通过规定成员标识符(MemberID)来单独访问结构体数据的某个成员。
4.3.2 列表(List)类型
列表类型是由相同数据类型构成的一个有序集合。每一条数据被称为列表的一个记录,由存储索引(FirstStoreIndex)进行标识。列表类型数据可被完整地访问,或者通过规定起始索引和记录个数来访问列表的某个或某些记录。