数字控制已成为无刷直流电动机(以下简称BLDcM)的发展趋势,通信系统是BLDcM数字控制及遥控的重要组成部分,由于大功率BLDcM运行时会对通信系统产生强烈的电磁干扰,可靠的通信系统设计是实现数字控制的前提。Rs485串行通讯总线标准及接口技术已广泛应用于工业控制、仪器、仪表、多媒体网络、机电一体化产品等诸多领域,在数据通信、计算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。由于Rs485具有性能优异、组网简单的优点,它在集中控制系统、分布式控制系统中的应用相当广泛,特别是在要求远距离传输的应用中:
设计的Rs485通信系统用MFc(MicrnsonFt0un—dation classes)设计上位机界面,MFc是用于在c++环境下编写应用程序的一个框架和引擎。用TMs320F2812(以下简称DsP2812)为核心设计Bc—DcM通信系统下位机。通过远程控制器对计算机进行远程控制,实现BLDcM起、停和转速的调节。
下位机实时地将BLDcM的转速、电压、电流、过压、欠压、过流等信息上传给计算机,同时计算机对上传的数据进行处理,实时显示转速、电压、电流等信息。
远程控制器和计算机通过电磁波进行数据传输。因此BLDcM的运行情况都可以通过远程控制器进行监视,并对BLDcM进行相应的控制。为了保障计算机和BLDcM通信的可靠性,通信系统采用了双余度设计,并实现两个余度的自行切换。
为了简化硬件系统复杂程度,采用部分冗余的设计策略,对电平转换电路、收发器及传输介质双绞线进行冗余设计,利用DsP2812的两个串口通信模块scIA、scIB,和计算机的两个Rs232串口cOMl、cOM2,构成了双余度的通信系统。系统框图如图1所示.
正常情况下,余度l处于工作状态,余度2则作为余度l故障时的备份。通信期间计算机一直监听余度1的工作状态,一旦余度1被检测到故障,经软件处理通信自动切到余度2,保证通信的正常工作。
计算机接收从DsP上传的数据,通过数据校验、数据处理分析与处理,把接收的数据显示出来,并绘制电机的转速曲线。下位机可随时接收上位机的命令,对BLDcM进行起、停和转速控制。
2基于MFc的上位机设计
上位机软件系统主要由数据采集系统和MFc图形图像界面系统构成,数据采集系统又分为总线监听模块和数据采集模块,软件组成结构如图2所示。图形图像界面系统通过调用数据采集模块町实现图形界面的实时刷新(每10 ms更新一次)。
2.1基于MFc的数据采集系统
数据采集系统由数据采集模块和总线监听模块组成,程序流程图如图3所示。上位机采用Mscomm中断接收数据,即接收缓冲区有数据时,立刻进入中断程序。根据本系统特点,由于每次上传的数据量较大,为了确保在数据接收前数据全部到达接收缓冲区,在接收中断程序中加了1 ms的延时程序.
系统采用软件没计进程总线监听和余度的自行切换。总线监听模块通过监听接收中断实现对总线监听的功能。根据设计特点,上位机每10 ms进行一次接收中断,当在50 ms内如果未进行接收中断,则认为总线故障。通过50 ms的定时中断实现总线监听功能。余度切换过程是:当检查到总线故障时,计算机把通信从cOMl口转换到cOM2口,发送余度切换数据帧给DsP,由于数据是从cOM2口发出的,数据会通过余度2到达DsP,DsP接收到余度切换命令后,会把数据的上传从scIA切换到scIB,从而实现了数据的上传与下传全部切换到余度2。
2.2基于MFc的图形界面
上位机的难点是实时曲线的绘制问题。我们采用面向对象程序设计技术,基于MFC框架开发,将显示数据采集封装 , 显示曲线进一步分为cAxis类和cline类。cAxis类负责坐标轴的构建,包含量程、刻度等,cLine负责曲线的数据保存。
绘制实时曲线的难点首先是起点的确定。绘制时首先要判断起点是否超出了屏幕显示的范围,若超出,将超出部分截掉,从超出的位置绘制;没有超出,绘制曲线。另外,随着采样时间的增长,采集的数据量越来越大,为了防止数据缓冲区溢出,我们要及时删除不用显示的数据。这个功能由cLineRemoveUselessP0ints()函数实现。实时曲线绘制的开始和停止通过setimer()和killtimer()函数实现。
3下位机软件设计
BCDCM通信系统下位机系统采用DsP2812 为核心设计。
DsP2812通过CAP捕获功能获得电机的转速,利用自带ADc模块获得电机的电压和电流,通过比较单元产生六路PWM波。DSP2812有两个串口通信模块SCIA和scIB,因此用一块DsP就可以实现通信的双余度设计。DsP采用定时中断每10 ms向上位机发送一次数据。scI采用FIFO模式收发数据,这样可以降低Ds=P的中断次数,加快数据处理能力和数据传输速度。数据帧格式如图5所示。
(I)帧头(2个字节:)由OxEF和 0x80两个字节组成,作为帧起始标识。
(2)帧类型(1个字节):0x01表示参数设置指令,0x02表示应答帧,0x03表示余度切换。
(3)数据簇(4个字节):数据簇由Datal Data4四个字节组成,其中Datal—Dm3表示所传输数据的整数形式,Data4表示该数据是在10的n次方的作用下形成整数的。
(4)校验和(1个字节):校验和的组成是将校验和之前的8个字节的数据求和OxFF取余后作为校验和。
(5)重传帧(1个字节):数据校验没通过,此帧置0x0I表示需要重传此指令,否则为OxoO。
(6)帧尾(2个字节):帧尾由()x77~0xBB f个字节组成,作为帧结束标识。
下位机软件流程图如图6所示。
4实验结果
该系统在15 kw的BLDcM中进行了实验验证,正常情况下通信系统通过余度1工作,七位机界面如冈7a所示,在余度1断开的情况下,会自行切换到余度2,不影响数据的传输,L位机界面如图7b所示,从而提高了通信系统的可靠性;上位机面向对象程序设计,保障数据采集与显示的实时性,双缓冲技术解决了屏幕闪烁问题,模块化的设计使得程序更具通用性。