《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于ARM Cortex-M3的电机微机保护系统
基于ARM Cortex-M3的电机微机保护系统
来源:微型机与应用2012年第18期
侯青祥,温宗周
(西安工程大学 电子信息学院,陕西 西安710048)
摘要: 通过分析三相电机在应用过程中各种故障产生的原因,提出了基于ARM Cortex-M3内核的LM3S811控制器对电机进行保护的方案。利用LM3S811可编程的32位ADC模数采集模块采集电动机的三相电压、三相电流以及温度,及时查询和显示电机的运行状态,如果发生故障,及时给电机断电;采用EEPROM技术记录电机的故障数据,方便技术人员进行故障检查;建立RS-485网络,方便上位机对电机的查询与控制,实现电机及时断电、故障显示与查询、数据上报、参数设置等功能。
Abstract:
Key words :

摘  要: 通过分析三相电机在应用过程中各种故障产生的原因,提出了基于ARM Cortex-M3内核的LM3S811控制器对电机进行保护的方案。利用LM3S811可编程的32位ADC模数采集模块采集电动机的三相电压、三相电流以及温度,及时查询和显示电机的运行状态,如果发生故障,及时给电机断电;采用EEPROM技术记录电机的故障数据,方便技术人员进行故障检查;建立RS-485网络,方便上位机对电机的查询与控制,实现电机及时断电、故障显示与查询、数据上报、参数设置等功能。
关键词: ARM Cortex-M3;LM3S811;电机保护;EEPROM;RS-485通讯

    大型三相电机在工业生产过程中起到举足轻重的作用,但是由于电网、负载及电机本身的问题,电动机运行时会出现短路、断相、过压、欠压、过载等故障[1]。为保证电动机正常工作,需要对其运行系统进行电气保护。目前,传统的8 /16单片机已广泛应用于电气保护中。但是它们仅仅具有基本的测量控制功能,在人机对话、数据查询、故障显示等方面能力有限,缺少必要的网络通讯功能[2]。如果将网络通讯以及故障记录技术加入到电机保护中,可以给电机的保护带来意想不到的效果,节省大量的成本。
    TI公司生产的基于ARM Cortex-M3的微控制器采用ARM可兼容Thumb的Thumb-2指令集来降低内存的需求。其中LM3S811控制器有64 KB的Flash程序存储空间、4个10通道、采样速率为500 000次/s的ADC接口、32个可配置的GPIO(其数目取决于配置),极大地方便了后期软件的编写[3]。本文采用LM3S811为运算核心,研制了一种可以对电机过载、短路、漏电、缺相及过热故障进行检测保护的智能电机保护器。另外采用EEPROM技术记录电机故障,用485组网的方式进行数据通讯。
1 硬件部分设计
    除电机故障数据的采集模块、电机保护动作、按键、LCD显示和故障指示模块之外,还扩展了485通讯电路和EEPROM存储芯片,实现了对电机的保护、故障记录以及与上位机的通讯。
    (1)系统总体设计
    系统总体硬件模块结构图如图1所示。

    (2)数据采集模块
    数据采集模块主要对三相电机的线电压、线电流等参数进行采集,经过滤波、采样保持、模数转换等电路处理后,送入ARM控制器进行数据的分析。北京世特美测控技术有限公司生产的电流传感器SN1T、电压传感器SK1T、漏电流传感器选用TE5D_C5V6可以将电机的三相电压与电流信号进行隔离转换,信号变换后能够直接被LM3S811的A/D采集模块直接采集。数据采样电路整体模块图如图2所示。

    (3)动作电路模块
    因为单片机的电压低于5 V时,驱动电流只有十几mA,而电机的工作电压在380 V时,电流可达到5 A~20 A,二者在电压和驱动电流上存在很大的差别[4]。所以控制电路与电机之间需要加缓冲电路,这里采用光电耦合器件控制继电器的通合来达到对电机电源的控制。当出现电流过大、电压缺相等故障时,控制器可以及时地输出控制信号,使电机跳闸,同时发出报警信号,避免电机产生更大的损坏。
    (4)温度传感器
    LM3S811内部集成有一个10 bit的ADC模块温度传感器,可以用来获取当前芯片的内部温度。通过不断地实验测得芯片温度与环境温度之间的差值,就可以准确地测量电动机线圈的温度。不用再扩展别的温度测量芯片,节约成本。
    (5)通讯与故障数据存储模块
    大型车间有很多台电机同时工作,电机能否正常工作可能影响到整个生产的进度,所以需要对其进行监控。因此电机保护器与监控中心的通讯方式选择RS-485,可以实现上位机与电机之间的数据通讯。
    同时采用I2C通讯的EEPROM技术来存储电机发生故障的时间、电流、电压等参数,另外还可以实现参数设定,断电后设定的参数可以保存下来,不用重新设定。EEPROM芯片AT24C08的模块电路如图3所示。

2 软件部分设计
    软件是嵌入式系统开发最重要的部分,包括A/D采集程序、保护动作程序、温度采集程序、显示程序、按键程序以及通讯程序。程序采用模块化设计,可读性、可移植性强[5]。系统程序的结构框图如图6所示。

 

 

    (1)电流电压采集的模数转换子程序
    采集传感器上的电压和电流数据,单片机对数据进行分析判断,若出现故障则切断电机的电源,防止发生事故,并在AT24C08中记录电机的工作电压、工作电流和温度值等实时数据;同时点亮相应的故障指示灯,发出报警。
    (2)人机界面子程序的调试
    LCD显示屏用来显示电机的状态以及故障信息。信号指示灯用来指示发生故障的种类,方便检测人员处理故障,建立良好的人机界面。
    通过按键查询电机的温度、三相电压和电流,并通过LCD显示出相应的数据,以实现对不同数字参数值的设定与修改。
    (3)温度子程序的调试
    温度的调试采用芯片内部温度传感器,因为芯片本身会发热,所以需要通过反复的实验找到实际温度与测量温度之间的差值。通过软件的方法准确地测量电机的发热温度。
    温度测试部分子程序如下所示:
void ADC_Get()
{
    unsigned long temp[2];
    ADCProcessorTrigger(ADC_BASE,0);//触发采样
    while(!Adcflag);                //判断转换是否结束
    Adcflag=0;
    ADCSequenceDataGet(ADC_BASE,0,temp);
//一次性全部读出,UART的FIFO不同
    temp[0] &= 0x000003ff;
    temp[0]=(temp[0]*3000*6)/1024;
    Tdata[5]=temp[0]/256;
    Tdata[6]=temp[0]%256;
    temp[1] &= 0x000003ff;
    temp[1]=20250-temp[1]*22;
    Tdata[7]=temp[1]/256;
    Tdata[8]=temp[1]%256;
}
    调试结果如图7所示。此结果与温度计的测试值非常接近。

    以上所有程序调试完毕后,搭建系统程序,进行A/D采样,判断电机是否正常运行,若正常则进入电机保护子程序。在电机正常运行且没有按键按下的情况下,可以通过按键查看电机的当前电流、电压等值;当按键动作时,实现相应的功能并显示;当电机有故障时,执行电机动作代码并显示故障,指示灯报警。
    采用ARM Cortex-M3核的LM3S811控制器、新的温度采集方法,以及记录故障数据的EEPROM技术,减少了对外围电路的投入,把主要精力投入到软件的编写中,对电机的保护更加合理有效。另外电动机种类很多,采样的电流和电压信号也会有很多的差异。因此可以根据不同的电动机来选择相应的传感器,并串接相应的电阻来进行数据的采集,这样可以满足在不同场合对不同电动机的保护。
参考文献
[1] 余剑,吕福胜.单片机89C52 控制的三相电机保护器[J].煤矿电机,2003(6):23-25.
[2] 万琰.基于单片机的电机保护系统的设计[J].漯河职业技术学院学报,2009,8(2):47-48.
[3] YIU J.Cortex-M3技术参考手册+Cortex-M3权威指南[EB/OL].(2011-07-30)[2012-03-20].http://www.cr173.com/soft/30691.html.
[4] 查斌.基于单片机的电机软起动智能控制器研究[D].武汉:武汉理工大学,2009.
[5] 伊兹科威兹.32位ARM微控制器系统设计与实践:基于Luminary Micro LM3S系统工程Cortex-M3内核[M].黄智伟,译.北京:北京航空航天大学出版社,2010.

此内容为AET网站原创,未经授权禁止转载。