3 CAN通信协议
本通信系统中,传输的数据长度不是固定的。工控机向软起动器下达的控制命令只有几个字节,而软起动器向工控机上传的软起动实时数据一般有几十个字节。因此CAN通信协议需要有大数据量传输能力,又要快速高效。由于CAN通信采用短帧结构,每帧有效数据长度最多为8个字节,在传输数据量较大时,就要将数据拆分为多个帧进行传输。如果将所有信息和数据都放在8个字节的数据场中,将会使传输帧中有效数据少,通信信息多,降低CAN总线通信效率。所以,本文采用了利用报文标识符中的仲裁场包含通信控制信息,数据场包含实际数据的方法,以提高通信效率。
本系统中,CAN通信采用CAN2.0B标准中带29位报文标识符的扩展帧。报文标识符中包含紧急标记、目的地址、源地址、帧类型、帧号,其格式如表1所示。
其中紧急标记仅有1位,用来标记当前帧的优先级,对于一般信息,该位置1,对于紧急信息(如三相电压不平衡、过流、软起动器组件故障等报警信号)该位置0,从而使其拥有高优先级,尽快传送到目的地。
目的地址共7位,指示该帧所要到达的目的地,可以是某一具体地址,也可以是广播地址(主要用于工控机以广播方式向各软起动器传送数据,如对时数据等)。
源地址共7位,指示该帧的来源地址。
帧类型有4位,说明了该帧的类型,如工控机控制命令、软起动实时数据等。
帧号共8位,用来在多帧传输中标记该帧的序号。
每个CAN通信节点都有一个唯一的地址号,地址号使用7位二进制数表示。其中,优先级最高的地址分配给工控机,优先级最低的地址作为广播方式的目的地址,其它地址依次分配给各软起动器。
CAN节点采用双滤波方式获取本节点所需信息,两个滤波器均采用7位有效数据,分别对应节点地址和广播方式下的地址。这样,就仅有发往该节点的帧和广播帧能够进入应用层进行处理,其它无关通信内容都被过滤掉,提高了系统运行效率。
工控机对软起动器的控制命令由对应的控制命令代码表示。主要的控制命令有:软起动开始/停止,软停车开始/停止,起动方式(阶跃式、脉冲突跳式、恒流式)设置,起动时间设置等。有些控制命令带有相关参数,如起动时间命令中时间长度。控制命令代码和命令参数存放在数据场中。