0 引言
目前国内生产的直流电机调速控制器大多都不带通信接口,即使有带通信接口也仅为RS232或RS485串行总线。众所周知RS232和RS485有各自的优缺点,阻碍了多台电动机机组的进一步网络化发展和群控控制。本文分析和研究了多台直流电机CAN总线的通信协议以及软件数据的传输,对工业网络控制的实现具有一定的指导意义。CAN总线控制网络工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,采用对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信适时性强,并且容易构成冗余结构,提高系统的可靠性和灵活性。
1 系统总体设计
多台直流电动机CAN总线控制系统如图1所示,本系统由直流电机、直流电机调速控制器、CAN总线通信控制板、上位机和CAN总线五部分构成。CAN总线能完成网络的建立、网络信号的传递、总线控制以及与上位机之间的数据通信;同时还完成对直流电机电压、电流数据的测试、传输以及直流电机转矩、转速的检测并进行闭环控制等。
图1 多台电机CAN总线控制框图
2 数据通信设计
在直流电机调速系统结构中有一个通信接口模块,用来实现与CAN总线通信控制板之间的数据交换,首先用DSP实现AD采样电路对速度反馈、速度给定、电流反馈等数据处理。采样所得数据经再发送给ARM处理器,最终ARM处理器实现CAN总线通信。
2.1 直流电机的CAN总线通信设计
CAN协议标准中规定了CAN总线支持的两种传输介质:双绞线和光纤。目前,绝大多数CAN总线系统采用的都是双绞线传输。光纤一般应用于大容量、高速率的传输中,对于CAN总线这种传输速率较低、数据量较小的现场总线通信,光纤传输的优势得不到完全发挥。所以,本文使用双绞线作为通信介质。
每个直流电机都是网络中的一个节点,其在运行时的数据经DSP采集后发送到CAN总线通信控制板,然后传输到CAN总线上,再由CAN总线适配器传给上位机,实现对电机的实时监测。这样就可以实现上位机对电机的实时监控。其中CAN总线适配器实现上位机与CAN总线的数据交换。
CAN总线适配器由CAN的微控制器完成与上位机通信的协调工作,根据需要可对CAN适配器微控处理器中的寄存器进行读写操作,实现初始化及数据采集。CAN总线适配器上电复位和初始化后,等待着命令和数据,当命令或数据送给CAN的寄存器并置位标志位,即完成一次通讯,然后取出数据做进一步处理。与CAN适配器间的通讯有查询和中断两种方式。
2.2 CAN总线网络通讯调试
首先要测试CAN总线适配器与上位机能否实现通信,从前面的介绍可以知道它们是通过串口实现通讯的。打开串口调试工具,由适配器向串口发送数据,如果串口调试工具可以接收到数据,则说明它们之间的通讯正常。接着要对两个CAN节点的调试,我们采用双绞线作为通讯介质。总线传输速度与双绞线的长度成反比关系,所以可以根据对通讯速度的要求确定双绞线的长度,由于是简单通讯实验,因而对双绞线的长度没有要求。设置一个节点为发送端,另一节点为接收端,取消报文滤波器,如果能够完成发送接收任务则它们已经能够实现简单的通讯。
本设计设定传输运行状态与故障状态两种运行参数,其中运行状态包括直流电机的:给定速度、反馈速度、反馈电路、电枢电压。运行状态是由DSP自带的AD转换模块经采样所得。DSP的AD采样器精度是12位的,所以经模数转换后的数值是一个12位的二进制数,对其前端补零转换成16位数据经串口直接发送给ARM处理器。因为两者的传输距离很近,所以不需要经过电平转换就可直接发送。而电机的故障状态则由0、1表示,0代表没有故障,1代表电机出现故障。
针对CAN总线技术在数据传输中采用短帧结构和过滤机制,本文设计了直流电机调速控制板与CAN总线控制板的数据通信,以及CAN总线与上位机的通信等。
要实现DSP与ARM以及CAN总线的通信,需要设置一个通信控制协议,协议设定每个要传输的参数一个控制地址。CAN总线每次可以发送8个字节数据,每个字节8位,所以给定速度、反馈速度、反馈电流及电枢电压这四组运行参数需要占据两个字节,而故障状态只需占据一个字节。CAN总线数据帧的第一个字节存放控制地址,第二、三个字节存放数据。其中,第二字节存高地址,第三字节存低地址。如果发送的是故障状态则只有第二个字节是传输数据。CAN总线每次只发送一种运行参数,其中给定速度、反馈速度、反馈电路及电枢电压依次轮流发送。而故障状态在程序中设置为优先级最高,当有故障出现时则优先发送,正常状态下不发送。图2是整个系统的数据传输流程图。
图2 数据传输流程图
3 实验
图3为上位机数据显示界面,图中显示为调试某一时刻的传输数据。可以看出反馈速度与给定速度并不相等,由于PI控制算法的作用使反馈速度始终处于给定速度附近。反馈电流1.2A是在电机空载时的测量值,随着负载的增加,反馈电流会逐渐增大。电枢电压是直流电机母线上的电压,由于电机在实际应用中主要工作在220V,所以调试时首先将电枢电压稳定在这一电压值,然后再对速度进行调节。在正常情况下,故障状态始终显示为“无”,当有故障信号发出时,故障状态显示为“有”并发出报警信号。
图3 上位机数据显示界面
这样上位机就收到某台电机此时的各种运行参数,由此可以实现使用上位机监控整个厂房中所有电机的运行状况。
在系统调试时,使用三米长的双绞线作为通信介质,上位机、直流电机、直流电机调速器等作为调试工具。实验证明,上位机能够顺利接受到直流电机发送的各种运行参数,说明系统已经实现了数据通信的要求。由于直流电机。测速机本身都是比较大的干扰源,在此情况下数据仍能顺利传输,这也一定程度上验证了CAN总线的抗干扰能力。
4 结束语
本文针对CAN总线在直流电机调速器与CAN总线控制器之间的数据交换以及CAN总线与上位机间的数据传输,最终实现CAN总线对直流电机的运行状态的监视。