张福军,孙艳波,刘坤
(1.黑龙江八一农垦大学信息技术学院,大庆163319;2.大庆油田电力集团油田热电厂)
在实际生活中,三相异步电动机应用非常广泛,没有它的工作,工厂将无法运转,大部分商场将停止营业,居民生活将受到极大的影响。通常电动机在使用中可能出现故障,比如负载超过其额定工作范围、散热条件较差及电动机本身原因引起的温度过高、机械原因或工作失误造成的缺相等问题。因此为保证电动机的正常工作,减少电动机出现故障的频率,设计一套以C8051F310 单片机为核心的三相异步电动机三相电流检测、存储、保护系统,能够避免因各种故障造成电动机和其他设备的损坏,降低故障引起的经济损失。
三相异步电动机的工作电流一般较大,无法直接被单片机采集和处理,须经过电流互感器把大电流变为小电流,再把电流信号转换为单片机能够接收和处理的电压信号。图1 所示为一相电流信号的处理电路,其他两相的处理过程类似。
A 相电流经过互感器变为小电流,互感器只是按照一定的比例降低了电流的幅值,不改变电流的方向,互感器的输出仍为交流电流信号,经过一个电阻转换为交流电压信号,该信号加在LM324(U1A)的同相输入端,集成运算放大器U1A 和U1B 组成了整流电路,把交流电压信号变为直流电压信号,供单片机所用。设加在U1B 同相端的电压信号为ui,输出电压信号为uo,则有如下推理公式:
因此无论互感器输出电流信号为正向还是负向,经过两个集成运算放大器处理后,都变为正向电压信号,这个信号是连续的模拟信号,可以被单片机采集和处理[1]。
图2 为存储电路和保护电路的原理图,电动机的三相电流经过处理后由C8051F310 的P1.7、P1.6、P1.5 三个引脚进入单片机,经过软件运算,判断电动机的运行状态,若出现故障则通过继电器JXQ14FC停止电动机的工作,防止故障范围扩大。无论电动机是否发生故障,单片机都将三相电流的运算结果按照一定的顺序存入AT24C512 存储器中,以备用户进行历史数据的采集。另外,系统采用了两个继电器,完成电动机三相定子绕组的星/角转换,以便克服电动机启动电流很大的弊端[2]。
系统采用的单片机为美国Cygnal 公司生产的C8051F 系列中的一款,该类型单片机有很多优点,虽然为8 位机,但其处理功能完全满足本系统的要求。该系列单片机是一种集成化的混合信号系统芯片SOC 单片机,具有与MCS-51 单片机内核和指令集完全兼容的微控制器。它除了具有标准的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。CPU能够有效地管理模拟和数字外设,可以关闭单个或全部外设,以降低功耗。其内部的FLASH 存储器还具有在线编程的能力,应用程序可以使用MOVC 和MOVX 指令对FLASH 存储器进行读或改写[3]。
C8051F310 单片机内部具有10 位ADC,最大采样速率可提供10 位精度,内部包含一个可编程的模拟多路选择器(AMUX0),用于选择ADC 的正输入和负输入。P1.0-P3.4 中的任何一个可以被选择为正输入或负输入,而片内温度传感器输出和正电源(VDD)被选择为正输入,GND 被选择为负输入。当GND 被选择为负输入时,ADC 工作在单端方式;在所有其他时间,ADC 工作在差分方式。ADC 的输入通道由寄存器AMX0P 和AMX0N 选择。系统采用单端输入工作方式,通过P1 口的P1.7、P1.6、P1.5 输入到单片机的内部,然后由多路选择器选择需要转换的电动机的相电流。
C8051F310 内部包括两个ADC,分别为ADC0 和ADC1,系统只用到了ADC0,在实际应用时需要对ADC0 进行初始化,包括转换时间、数据对齐方式、控制寄存器和电压基准控制寄存器等[4]。初始化的程序设计需要根据各个寄存器位进行设置,初始化程序如下:
AMX0P=0x07;//正输入通道选择寄存器,选择P1.7 口。
AMX0N=0x1f;//负输入通道选择寄存器,选择GND,工作在单端方式。
ADC0CF=0x48;//AD0SC 转换时间为2.45 MHz,系统时钟默认24.5MHz,数据右对齐。
ADC0CN=0x80;//ADC0 允许,正常方式,向AD0BUSY 写1 时启动ADC0。
REF0CN=0x0a;//VDD 为基准电压,内部温度传感器关闭,内部偏压发生器工作。
系统外扩了数据存储器,能够定时存储单片机采集的电流数据,用户可以通过有线或无线两种方式得到历史数据,利用PC 机分析电动机的运行状态,分析其综合性能。数据存储芯片采用Atmel 公司生产的64KB 串行电可擦除的可编程存储器AT24C512,它是8 引脚封装,具有结构紧凑、存储量大等特点,可以在2 线总线上并接4 片芯片,特别适用于大容量数据存储要求的数据采集系统,因此在测控系统中被大量采用[5]。AT24C512 为I2C 总线,对I2C 总线的芯片操作时,需满足统一的操作时序,图3 为数据传送时序图,图4 为起始信号和终止信号时序图。
图3 数据传送时序图Fig.3 Data transfer the timing diagram
图4 起始信号和终止信号时序图Fig.4 Start signal and termination signal timing diagram
软件设计中首先定义C8051F310 的引脚连接,P2.0 连接SCL、P2.1 连接SDA,SCL 是传送数据的时钟基准信号端口,SDA 是数据的传送端口。在软件设计中,通常以子程序的方法进行程序设计,包括初始化程序、起始信号程序、终止信号程序、写地址程序、写数据程序、读数据程序等等,下面为起始信号程序、终止信号程序的部分程序[6]。
电动机在运行过程中可能出现过载、欠载、短路、断相等各种故障,如果不及时停止电动机的工作,可能使故障范围扩大,造成更大的经济损失,因此设计了电动机的保护电路,系统中采用了2 个继电器K1、K2 配合工作,由高耐压、大电流达林顿陈列ULN2003 进行驱动,ULN2003 是由7 个硅NPN 达林顿管组成的能够与TTL 和CMOS 电路直接相连的继电器驱动器件[7]。由于电动机在启动时电流很大,如果电动机频繁启动,积累的热量就比较多,容易损坏电动机,另外,也容易被检测电路误判断,确定为故障电流,造成电动机无法启动,因此设计了电动机定子绕组的星/角换接启动,由继电器K1 和K2 来完成。
图5 为电动机三相电流的故障判断和存储程序的主程序流程图,电流的处理过程是A、B、C 的顺序,处理过程类似。C8051F310 单片机的寄存器ADC0H和ADC0L 中保存ADC 转换结果的高字节和低字节,具体处理哪相电流由模拟多路选择器 (AMUX0)的寄存器AMX0P 和AMX0N 来进行选择选择。单片机应用程序按照模块化程序设计的思想进行,包括了主程序模块、中断服务程序模块及若干个多次被调用的子程序模块[8]。
设计了三相异步电动机电流检测电路、存储电路、继电器保护电路,阐述了电流检测、存储的基本原理,并设计了以单片机为核心的系统主程序。利用系统框架还可以扩展键盘电路、显示电路、数据通讯电路及相应的辅助电路,设计成一套完整的数据采集系统,适用于采用三相异步电动机工作的多数场合,既可以了解拖动对象的工况信息,也可以提高系统运行的可靠性。
[1] 周泽存.检测技术[M].北京:机械工业出版社,1993.
[2] 李广弟.单片机基础[M].北京:北京航空航天大学出版社,2002.
[3] 郝俊明,段宇程,张玉峰.基于C8051F 单片机的激光二极管温控系统[J].激光与红外,2007,37(3):234-236.
[4] 张迎新,雷文.C8051F 系列SOC 单片机原理及应用[M].北京:国防工业出版社,2005.
[5] 宋德杰.AT24C02 在单片机中的应用[J].物单片机开发与应用,2005,4:17-18.
[6] 童长飞.C8051F 系列单片机开发与C 语言编程[M].北京:北京航空航天大学出版社,2005.
[7] 徐爱钧.智能化测量控制仪表原理与设计[M].北京:北京航空航天大学出版社,1995.
[8] 吴迪.MSP430F149 单片机与AT24C512 的接口与应用[J].吉林师范大学学报(自然科学版),2006,4:53-55.