- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于LabVIEW的电机转速监测系统的设计
LabVIEW是美国国家仪器司(National Instrument)开发的一种虚拟仪器平台,是一种用图标代码来代替文本式编程语言的开发工具。其通过在表示不同功能节点的图标之间连线来完成上位机的程序,在这一点上,其完全不同于以往基于文本的传统开发语言。LabVIEW功能强大、操作灵活,使用图形化的编程语言,大幅节省了程序的开发周期,且其运行速度不受影响,体现出较高的效率,被广泛应用于自动测量系统、工业过程自动化、实验室仿真等领域。
以往利用LabVIEW设计数据采集监测系统时,通常采用数据采集卡进行前端信号的采集,但是其价格昂贵。文中设计了一种基于LabVIEW和STC12系列单片机的电机转速监测系统,不仅节约了设计成本,且系统操作简便,稳定可靠,满足电机的测速要求。
1 系统的总体方案设计
系统由上位机和下位机组成。下位机采用STC12C5410AD单片机作为主控芯片,绝对式光电编码器的脉冲输出信号通过信号调理电路后送至单片机,单片机通过自带的脉冲捕获模块,接受连续的编码器脉冲信号并计算电机转速,上下位机采用RS-232串行接口进行通信,将转速计算值传送到上位机LabVIEW,通过LabVIEW对转速值进行实时处理、显示和保存,于LabVIEW的电机转速监测系统总体方案如图1所示。
2 电机的测速原理
2.1 绝对式光电编码器简介
系统采用A-JXW-12A-11-G8-30C绝对式光电编码器,该编码器为11位绝对式轴角编码器,具有零点固定、单值函数、抗干扰能力强等特点。结构上采用防尘、防潮措施、耐冲击、耐振动、体积小、重量轻。能够测量角位移,旋转速度等,并能将所测结果以自然二进制码形式输出。供电电压12 V,集电极开路输出,图2为A-JXW-12A-11-G8-30C绝对式光电编码器实物图。
2.2 转速计算方法
设计采用T法测速,即利用计数器对已知频率为的高频时钟脉冲进行计数,测出电机相邻两个转子位置脉冲信号的时间间隔来计算电机的转速。在T法测速中,测速时间T是通过记录高频时钟脉冲个数m得出,即
T=m/f (1)
电机转动一周转子位置信号含有的脉冲个数为PN,设计采用编码器的最低位进行计算,因此PN为1 024,则转速计算公式为
高频时钟脉冲为单片机的晶振频率2分频所得,即22.1184/2 MHz,当电机转速为500r/min时,理论上高频时钟脉冲计数值m为1296,若记录值m为1 295或1 297,T法计算的电机转速分别为500.4 r/min或499.6 r/min,计算误差为-0.08%≤△e≤0.08%,当电机转速为1 500 r/min,理论上高频时钟脉冲计数值m为432,若记录值m为431或433,T法计算的电机转速分别为1503.5r/min或1496.5r/min,计算误差为-0.23%≤△e≤0.23%。本方法完全满足所试验的开关磁阻电机调速系统的误差范围,且测量方法简单可靠,实用性强。
3 系统硬件电路的设计
3.1 STC12C5410AD单片机简介
STC12C5410AD单片机是一款单时钟/机器周期的微控制器,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统的8051,但速度快8~12倍。其片上集成了10 kB的程序存储器Flash、512 Byte的SBAM,有1个可编程的异步串行UART接口,1个可工作于主从模式的SPI串行接口,共2路16位的定时器/计数器,2路外部中断,8路10位的高速A/D转换器,速度可达100 kHz,集成了4路可编程计数器阵列(Programmable Counter Array,PAC),简称PCA,可用于软件定时器、外部脉冲的捕获、高速输出及脉宽调制输出。
3.2 编码器脉冲信号调理电路
信号调理电路主要包括:光电隔离电路、施密特整形电路和RC滤波电路。光电隔离采用快速光耦A2630芯片,完成电平的转换,同时对编码器信号和单片机电路进行隔离,起到一定的,ぷ饔谩W畲笫淙肫德饰1 MHz,而编码器的最低位输出脉冲频率为26 kHz,因此完全满足实验要求,施密特整形电路采用六反相施密特触发器74HC14,可将边沿变化缓慢的周期性信号变换为边沿较陡的矩形脉冲信号,RC滤波电路主要用于消除矩形脉冲上的高频干扰信号。
3.3 串行接口通信电路
系统采用STC12C5410AD单片机作为下位机,PC机作为上位机,二者通过RS-232串口进行通信。单片机输出的TTL电平与PC机串口的RS-232电平不一致,因此需采用MAX232芯片进行电平转换,Tin和Rout输入的是TTL电平,经过转化后Tout和Rin输出为RS-232电平。
系统硬件总体电路如图3所示。
系统软件设计包括下位机单片机的软件设计和上位机LabVIEW的软件设计。
4 系统软件设计
4.1 单片机的软件设计
下位机程序采用C语言编写,主要完成脉冲信号捕获、转速计算和上下位机串口通信。程序中首先进行系统的初始化,包括串口初始化和PCA初始化。在串口初始化中,给寄存器TMOD赋值0x20,将设定T1定时器工作在方式2,用定时器T1产生波特率,将波特率设置为115 200,给寄存器SCON赋值0x50使串口工作在方式1下,为10位数据的异步通讯,1起始位,8数据位,1停止位,无奇偶校验位。STC12C5410AD单片机有4路PCA模块,这里用到PCA模块0,在PCA初始化中,PCA模式寄存器CMOD赋值0x02,选择PCA时钟源为系统时钟的2分频,PCA控制寄存器CCON赋值0x00,关闭PCA计数器并清除中断标志位,PCA模块0模式寄存器CCAPM0赋值0x21,设置PCA0脉冲上升沿捕获,并使得寄存器CCON的捕获标志CCF0,用来产生中断,PCA0的16位计数器CH0和CLO分别赋值0x00,用于存储时钟脉冲计数值。当单片机检测到脉冲信号上升沿时,进入PCA0捕获中断,得到PCA0时钟脉冲的计数值,并判断计数值m是否溢出,再利用式(2)进行电机转速的计算,最后调用串口发送程序将数据传送到上位机。单片机软件流程图如图4所示。
4.2 上位机LabVIEW程序设计
上位机的操作界面采用LabVIEW进行可视化编程,主要完成上位机和下位机的通信、电机转速波形的显示和数据保存。设计使用LabVIEW 8.6版本,其丰富的函数库中提供了串口通信函数,使程序的编写方便快捷。首先通过VISA配置串口(VISA Configure Serial Port)函数配置串口参数,包括VISA资源名称、串口波特率、数据位、奇偶校验位和停止位,上位机的串口配置应与单片机的串口初始化相同,这才能保证数据的正确传输,VISA读取(VISA Read)函数将读取指定字节的数据到计算机内存中,这里读取的Byte个数为4,最后用VISA关闭(VISA Clo se)函数关闭串口资源。
电机转速波形的显示是通过波形图表控件来绘制的,波形图表控件能够实时显示若干个数据点,而且新输入的数据点添加到已有曲线的尾部进行连续显示,因此可直观地反映被测量的变化趋势。LabVIEW从串口接收到的数据形式为字符串,所以在波形数据显示之前需利用十进制字符串至数值转换(Decimal Strings to Number)函数将字符串中的数字字符转换成十进制整数。数据的保存用写入文本文件(Write to Text File)函数,将采集数据以txt形式进行保存,同时可方便地设置保存路径和文件名称。LabVIEW程序框图如图5所示。
5 实验结果
设计方案在开关磁阻电机调速系统中进行了测试,实验中电机的调速范围为0~1 500 r/min,对电机的快速启动、运行稳定性以及快速制动进行了实时监测。图6为电机带载20N·m,稳定运行转速为1 250 r/min时的转速波形图,测试结果证明,系统简洁直观、动态实时响应快、稳定可靠。
6 结束语
文中设计了一种基于LabVIEW的电机转速监测系统,对系统的硬件和软件分别进行了论述,并在0~1 500 r/min转速范围内的开关磁阻电机调速系统中进行了实验,实验结果验证了设计方案的可行性。同时,还具备了用LabVIEW编写上位机界面,使得系统具有界面友好、操作简单、调试方便、可扩展性和可移植性强等优点。