基于ARM的电磁继电器参数检测仪
扫描二维码
随时随地手机看文章
引言
产品检测是生产厂家和用户都关心的问题。在产品生产过程中,检测是必不可少的一部分,有的还是工艺过程的一道工序。电磁继电器是电力系统以及其他电气控制系统中常用的开关元件,它们的可靠性是电力系统和其他电气控制系统可靠运行的重要保证,因此,必须对继电器的特性参数进行准确的测试。电磁继电器的电气参数主要有线圈电阻、触点接触电阻、吸合电压、释放电压、吸合时间、释放时间等叫这些参数对研究继电器可靠性、动态性能具有重要意义,是保证其质量特性的重要参数。
1系统总体架构
1.1系统硬件结构
系统硬件主要包括UART串口通信模块、JTAG接口模块、测试结果显示模块、检测程序存储模块FLASH、检测电路模块以及SRAM模块。系统总体硬件结构框图如图1所示。
1.2系统微处理器
本系统主要由检测部分和显示控制部分组成。在本设计中,采用了高性能的ARMCortex芯片STM32F103ZET6。该芯片内部采用哈佛结构,其中集成有64KB的RAM和512KBFLASH,并且具有运算速度快、体积小和低功耗的特点,完全能满足本设计的要求。Cortex-M3是一个32位的核,它采用的是Tail-Chaining中断技术,最多可减少12个时钟周期数,基于硬件进行中断处理,通常可减少70%的中断。Cortex-M3还采用了新型的单线调试(SingleWire)技术团,可对独立的引脚进行调试。
1.3系统工作流程
系统上电后,首先完成对各个寄存器的初始化工作,然后等待开始检测命令;单击上位机界面上的START命令,然后上位机给单片机发送开始检测命令;单片机接到开始命令后开始向检测电路发送检测命令,然后单片机处理检测电路发回的数据,得出继电器的各个参数,通过串口把这些参数显示在上位机的界面上。
2检测电路设计
2.1驱动电压的设计
为了准确测出继电器的吸合电压,必须得到一个从0开始按照一定量增大的电压源,每次增大的电压量越小,测试的结果越准确,但是所要求的电路也越复杂,所以我们必须根据实际的要求在这中间找到一个平衡点。图2所示为系统驱动电压电路。
图2中,TL431用于给TLC5615提供2.5V的基准电压源,DA_DIN是串行数据输入端,DA_CS是低电平有效的片选信号输入端,DA_SCK是串行时钟输入端,DOUT是用于级联的串行数据输出端,OUT是DAC模拟电压输出端,输出模拟信号叫由于从TLC5615输出的模拟信号很小,不能驱动继电器,所以,本设计在后面又加上了放大电压电路和放大电流电路。
2.2集成切换网络的设计
本系统的集成切换网络是利用继电器的开关工作原理完成的,利用单片机发出的不同指令控制继电器的闭合,从而切换到不同的测试电路模块。在测试吸合/释放电压时,首先ARMCortex发出测试参数为吸合/释放电压的指令。集成切换网络根据指令,切换到Prog_v一侧,XQ1I连接所测继电器触点一端,具体电路如图3所示[5]。
为了解决单片机的I/O驱动能力不足的问题,选用ULN2003作为继电器的驱动芯片。ULN2003是高压大电流达林顿晶体管阵列电路,它具有工作地电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。它采用集电极开路输出,输出电流大,故可直接驱动继电器。ULN2003的每一对达林顿管都串联一个2.7kQ的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。通常单片机驱动ULN2003时,上拉2kQ的电阻,同时,COM引脚应该悬空或接电源。
2.3数据处理及与上位机的通信
接收到的数据通过异步串口管脚与3.3V转换芯片MAX232相连,外接串口线同PC机进行通信,接收和发送数据,STM32作为下位机负责接收上位机的指令以及控制各部分电路并处理数据,然后向上位机发送数据,PC机接收数据,并通过VC编程把接收的数据通过界面显示出来。这里PC机的VC通过串口发送命令给STM32,主控芯片接收命令并判断有效,即可开始控制电路进行工作E由于篇幅所限,本文未对STM32的最小系统硬件部分作详细说明。
3系统软件设计
系统软件部分主要包括STM32微处理器控制程序和上位机程序两部分。由于下位机软件使用C语言来开发,所以选择了一款支持C语言编程的开发环境。由于使用的是J-LINK接口调试方式[7],选择用IARSYSTEM作为下位机的控制平台开发工具。
3.1微处理器控制程序
图4所示是本系统的微处理器控制程序。本程序的核心部分是线圈电阻子程序、触点电阻子程序、吸合/释放电压子程序、吸合/释放时间子程序。
3.2吸合电压算法设计
对于吸合/释放电压的测试,这里将对比三种测试算法:二分算法、步进自适应中值算法和差异比较算法[叫
3.2.1二分算法
函数f(x),对于一个实数a,当x=a时,若fa)=0,则把x=a叫做函数fx)的零点。设fx)在区间(X,Y)上连续,a、b属于区间(x,y),且f(a),,b)异号,则在区间(a,b)内一定存在至少一个零点,然后求f[(a+b)/2]。假定a<b,,a)<0,f(b)>0,那么:
如果f[(a+b)/2]=0,则x=(a+b)/2就是零点。
如果f[(a+b)/2]<0,说明区间((a+b)/2,b)内有零点,再次对新区间((a+b)/2,b)取中值代入函数,进行中点函数值判断。
如果f[(a+b)/2]>0,说明区间(a,(a+b)/2)内有零点,再次对新区间(a,(a+b)/2)取中值代入函数,进行中点函数值判断。通过以上反复的区间取值,可以把fx)的零点所在小区间收缩一半,使区间的两个端点逐步迫近函数的零点,最终以求得零点的近似值。
这就是二分算法的基本原理。
3.2.2步进自适应中值算法
同简单二分算法一样,确定A.B两个电压值,其中A无法使触点吸合,B保证发生触点吸合。然后求得A、B的平均值C,如果C小于触点的阈值电压,贝恠B电压量的基础上步进式地减小一定幅度的电压X,得到电压量D;如果C大于触点的触发电压,那么在A电压量的基础上,步进式地增加一定幅度的电压X191,然后重复以上步骤。如果发生某一步进增加时,触点发生吸合,则继电器的吸合电压介于触点触发的前后两个电压平均数值之间。
3.2.3差异比较算法
差异比较算法是通过比较输入值和输出值的大小,将发生差异型变化的数值进行筛选并记录。选择这个算法主要是针对二次发生的吸合释放过程。
三种算法中,二分算法有可能让程序进入死循环,差异比较算法相对前两者速度较慢,所以本系统最终采用步进自适应中值算法。
3.3上位机程序设计
本系统的上位机界面程序采用C++程序编写,它主要包括参数设置区域、参数显示区域、继电器类型选择和控制按键等几部分。参数设置区域是完成对所测继电器的相关参数上下限参数的设置,比如吸合电压上下限的设置。参数显示区域是显示所测参数大小的,这里还包括了一个参数选择复选框,如果选上则表示需要对此参数进行检测,如果不选则系统不对此部分参数进行检测。图5所示为其上位机界面。
图5上位机界面
3.4实验结果
在调试好的样机上分别可对吸合电压等六个参数进行测试,为了减少一次测试数据的偶然性,每个参数均测试了八组数据进行处理,实验结果如表1所示。从表1中的数据可以发现,其测试数据变化范围小,系统性能较稳定,总体性能能够令人满意。
表1额定电压12V电磁继电器测试数据
测试项目, |
测试次数 |
|||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
吸合电压/V |
8.44 |
8.55 |
8.55 |
8.66 |
8.44 |
8.55 |
8.77 |
8.66 |
释放电压/V |
2.44 |
2.44 |
2.66 |
2.44 |
2.55 |
2.44 |
2.55 |
2.44 |
吸合时间/ms |
34.80 |
34.80 |
34.90 |
34.80 |
34.70 |
34.80 |
34.70 |
34.80 |
释放时间/ms |
8.10 |
8.00 |
8.00 |
7.90 |
13.10 |
9.50 |
9.70 |
9.30 |
线圈电阻/Q |
162 |
165 |
162 |
168 |
166 |
164 |
165 |
163 |
触点电阻/mQ |
155 |
153 |
165 |
164 |
158 |
151 |
163 |
159 |
4 结 语
本文是结合前人的研究成果提出的一种基于STM32的智能参数测试仪,该测试仪由STM32作为主控芯片,并结合先进的电子测量线路来对继电器的主要电气参数进行测量。测量结果表明,本系统测试结果准确性高,工作稳定,总体性能令人满意。