通过CAN-bus总线对室内空调的温/湿度模拟系统进行控制

DLC: 每帧字节数(1~8)

Index :索引字节。对于单帧数据,该字节表示传输数据的第一个字节;对于多帧数据,此字节表示索引字节,即此帧数据在数据包中的位置。

Data :数据

在本系统中,数据中心要对各个房间的温/湿度进行监控并修各个房间的温/湿度SV 值,因此给各个控制室分配唯一的标志符;在下位机向上位机发送的数据报文中携带的数据是房间的温/湿度值;上位机向下位机发送的命令报文携带命令号及控制室的温/湿度SV 值。本系统的传输数据量较小,且MCGS 的采样周期本系统取5ms 相对下位机来说较长,因此,本系统选择使用单帧(点对点)类型帧。利用HiLon报文的特点,将7 位Address 分配给房间ID,每一个房间ID 对应一个Address ,地址0 保留。当数据方向是从节点到主节点时,8 字节数据的前4 字节用于传递房间温度,后4 字节用于传递房间湿度,当数据方向是主节点到从节点时,8字节数据的前4 字节作为命令ID,后4 字节用于传递命令参数(房间温/湿度SV值)。报文帧的格式如图1 所示。

通过CAN-bus总线对室内空调的温/湿度模拟系统进行控制

对主节点到从节点的命令ID 的定义如下:

通过CAN-bus总线对室内空调的温/湿度模拟系统进行控制

通过CAN-bus总线对室内空调的温/湿度模拟系统进行控制

本系统要监控的数据是各房间的温度和湿度及它们的SV 值。要将这些数据在总线上传输,必须将它们装入报文帧。为了使传输的数据只占用较小的空间而达到较高的精确度,在报文中每一种数值都分配了4 字节的空间,数据按IEEE-754 标准的float 数据类型的格式存储。这样,在下位机进行编程就比较方便。但是,上位机的处理程序是用类似VB 脚本的语言写的,数据对象的类型只有数值型、开关型和字符型三种,不能直接使用接收到的数据。因此,要对接收到的数据进行转换。