郭家建
(福建船政交通职业学院,福建 福州 350007)
工业自动化系统包含大量设备,长期运行难免出现各种故障,如开关跳闸、电路短路、设备失电等。当系统发生故障时,故障自动报警系统能第一时间发出报警信号,提醒工作人员处理故障。工作人员根据报警信号,在控制台进行响应,并立即前往现场处理故障,使设备正常运行。随着社会经济的发展,科学技术如单片机技术、通信技术与人工智能技术也在不断发展,报警系统越来越智能化[1-3]。文章主要研究自动报警系统的整体设计和功能,通过硬件和软件程序的设计,满足报警系统的功能要求。
自动报警系统由单片机、故障传感器、响应电路、复位电路、电源电路以及输出模块组成。其中复位电路实现报警系统复位功能。当工业自动化系统发生故障时,首先故障传感器将检测到的故障信号送至SCT89C52单片机;其次单片机根据故障信号输出相应的声光报警控制信号;再次输出模块向外界环境发出声音警示,同时报警指示灯闪烁;最后工作人员按下响应按钮,声音警示消失,报警指示灯常亮。若故障修复,则声音警示消失、报警指示灯熄灭。自动报警系统组成模块如图1所示。
图1 自动报警系统组成模块
设计的自动报警系统核心为单片机。单片机芯片上集成了中央处理器(Central Processing Unit,CPU)、存储器、输入/输出(Input/Output,I/O)部件以及时钟电路等,具有优越的性能,已广泛应用于控制、通信、检测等领域。单片机具备显著的应用优势。第一,体积小、重量轻、价格低以及功能强,易于产品化,可以嵌入各种测控设备和仪器仪表。第二,可靠性高、抗干扰能力强,能适应各种环境。第三,使用方便灵活、通用性强。在开发过程中可以使用C语言进行编程,开发周期短,且具有一定的可移植性。第四,实时控制能力强,可以直接通过I/O口进行各种操作,实时响应事件且处理速度快,具有丰富的控制指令,可以控制逻辑功能较为复杂的系统。第五,低电压、低功耗,可在5 V、3 V甚至更低的电压下工作。
设计的基于单片机自动报警系统采用SCT89C52单片机。STC89C52单片机是一种低功耗、高性能的微控制器,拥有8位CPU、8 kb可重复擦写的Flash闪速存储器、3个16位定时器/计数器、32条可编程的I/O线(4个8位并行I/O端口)、1个可编程全双工串行口、512 bits的随机存取存储器(Random Access Memory,RAM)以及看门狗定时器等部件。单片机自动报警系统的硬件部分由故障传感器、响应电路、复位电路、电源电路以及输出模块组成。
故障传感器通过开关信号来模拟,输入信号接到单片机P1.7引脚。开关断开,表示系统无故障,单片机输入信号为“1”(高电平);开关闭合,表示系统有故障,单片机输入信号为“0”(低电平)。
单片机自动报警系统设置有响应按钮。工业自动化系统发生故障时,报警系统会发出报警信号,工作人员按下响应按钮,即可关闭报警声,同时报警指示灯由闪烁变为常亮。响应按钮作为输入信号与单片机的P1.0引脚相连。响应按钮按下,表示工作人员已响应,单片机输入信号为“0”(低电平);若响应按钮未按下,表示工作人员未响应,单片机输入信号为“1”(高电平)。
单片机自动报警系统设置有复位按钮。复位按钮按下,即给单片机复位引脚(RST)输入高电平,当高电平持续2个机器周期以上,单片机就执行复位操作,实现自动报警系统的复位。
电源电路负责为单片机自动报警系统提供电能,包括单片机和其他硬件组成部分。单片机芯片电源线连接VCC(+5 V)和VSS(地)2个引脚。
自动报警系统输出模块由发光二极管(Light-Emitting Diode,LED)电路和声音报警电路组成。
2.5.1 LED灯电路
设计的基于单片机自动报警系统是声光报警系统,采用LED灯进行警示,不仅能保证充足的亮度,而且节能。LED灯的阳极接电源,阴极经过电阻连接到单片机P3.0引脚。其中电阻起到限流的作用,电阻的阻值取220 Ω。当单片机的P3.0引脚输出为0(低电平)时,LED灯点亮;输出为1(高电平)时,LED灯熄灭。
2.5.2 声音报警电路
声音报警电路的发声装置选用Buzzer蜂鸣器。蜂鸣器采用一体化结构,使用直流电压供电,常作发声器件应用于各种电子产品。蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器。其中有源蜂鸣器直接连接额定电源即可连续发声;而无源蜂鸣器和电磁扬声器一样,只有连接音频输出电路才能发声。由于蜂鸣器的工作电流较大,而单片机的I/O口输出电流较小,无法直接驱动蜂鸣器,需要连接放大电路来驱动,一般使用三极管来放大电流。
文章选用的蜂鸣器为有源蜂鸣器,单片机的P0.7引脚输出声音报警控制信号,只需改变该引脚输出的电平即可控制蜂鸣器。当单片机P0.7引脚输出为0(低电平)时,三极管导通,蜂鸣器工作,发出声音;当单片机P0.7引脚输出为1(高电平)时,三极管截止,蜂鸣器不工作,不发出声音。
单片机自动报警系统功能的实现除了硬件,软件设计也非常重要。文章采用Keil C51软件进行软件编程。Keil C51是美国Keil Software软件公司开发的基于8051内核的微控制器软件开发平台。Keil C51是51系列单片机C语言软件开发系统,也是目前开发8051内核单片机的主流工具,提供了包括C编译器、宏汇编、连接器、库管理以及仿真调试器等的完整开发方案[4]。
单片机自动报警系统软件设计重点是程序的编写,文章采用C语言进行编程。根据报警系统所要实现的功能,设计程序流程图。系统整体程序流程如图2所示。
图2 系统整体程序流程
依据程序流程图编写C语言程序,程序主要包含main主函数和报警函数。其中报警函数主要用于实现报警功能,main主函数则实现系统的初始化和报警函数的调用。利用Keil C51软件进行调试、编译,生成.HEX文件。部分程序代码为
单片机自动报警系统的仿真使用Proteus软件,该软件是英国Labcenter Electronics公司开发的EDA工具软件,可以设计和仿真模拟电路、数字电路,是目前较先进的单片机和嵌入式系统的设计与仿真平台,也是目前单片机系统设计广泛使用的仿真软件[5]。
Proteus软件具有生动的仿真显示功能和丰富的元器件库,拥有超过27 000种元器件[6]。该软件适用于单片机及其外围器件的仿真,输入类器件如矩阵式键盘、按键、开关等;输出类器件如LED灯、蜂鸣器、LCD12864/1602液晶显示屏、数码管以及点阵屏等。
采用Proteus软件验证设计的单片机自动报警系统的仿真电路图,打开Proteus软件,将之前生成的.HEX文件导入单片机,然后点击运行按钮,开始运行仿真。仿真结果显示,系统无故障时(即开关处于断开状态),蜂鸣器不工作,同时LED灯处于熄灭状态;当系统出现故障时(即开关处于闭合状态),蜂鸣器工作,发出报警声音,同时LED灯处于闪烁状态;当工作人员按下响应按钮后(即故障未修复,开关处于闭合状态),蜂鸣器不工作,同时LED灯处于常亮状态;当系统故障修复后(即开关处于断开状态),报警系统回复为初始状态,即蜂鸣器不工作,LED灯处于熄灭状态。仿真运行结果达到预期效果,实现了单片机自动报警系统所需的功能。
设计的基于单片机自动报警系统,主要用于接收故障传感器的信号,利用单片机处理故障信息,实现系统故障自动报警,同时可以进行故障响应操作。设计的报警系统具有结构简单、维护成本低、操作简单以及可靠性高等优势,可以应用于各类需要进行故障自动报警和故障处理的场景,如自动化生产线、防盗系统、门禁系统等。同时,该系统具有可拓展性,可以根据用户的需求增加功能,应用前景较为广阔。