基于有限状态机FSM的智能锅炉控制器的设计

2018-09-26 09:34陈改霞杨亚洲吴保宁李国鹏
电气传动自动化 2018年6期
关键词:状态机按键报警

陈改霞 ,杨亚洲 ,吴保宁 ,李国鹏

(1.天水电气传动研究所有限责任公司,甘肃天水741020;2.大型电气传动系统与装备技术国家重点实验室,甘肃天水741020;3.西部钻探青海钻井公司,青海芒崖816400)

1 引言

目前,在锅炉控制器的市场上,利用单片机作为主控芯片的锅炉控制器因其高可靠性、成本低廉、维修费用低、人性化的操作界面等优点,已逐渐取代传统的继电器型和 PLC 型的锅炉控制器[1][2]。采用微型控制芯片单片机作为主控制芯片的锅炉控制器,改造传统PLC和低配置工控机的锅炉控制系统已成必然趋势。

锅炉控制系统是一个典型的大惯性、大滞后、多变量的非线性过程控制器系统,系统中既有连续量的反馈控制,又有开关量的顺序控制,各个模块之间独立编程,却互相关联,传统的编程方式是在主程序中顺序执行各个功能模块,但是由于系统各个模块以及控制过程的耦合性,程序顺序执行可能产生逻辑错误,导致程序跑飞,控制器发生故障,并且给软件开发初期的测试带来了较大的难度[3]。

利用单片机灵活的编程方式[10],将有限状态机的概念引入锅炉控制软件的设计,并分别将传统顺序控制和基于有限状态机的程序控制的锅炉控制器的长期稳定性做实验测试,证明基于有限状态机的智能锅炉控制器其可靠性、稳定性以及可维护性都更为突出。该智能锅炉控制器已完成科研开发及调试,正在投入市场使用。

2 控制器硬件设计

锅炉控制器要完成相关参数的采集、设置、控制及显示功能,其硬件电路通常包括以下几个模块:单片机最小系统、模拟量采集模块、AD转换模块、按键输入模块、时钟控制模块、掉电存储模块、继电器控制模块、液晶显示模块、报警模块、电源模块[9]。如图1所示为智能锅炉控制系统框图,硬件电路的设计即各个功能模块的电路实现,下面逐一简单介绍。

图1 锅炉控制系统原理框图

2.1 单片机最小系统

单片机最小系统是控制器的核心模块,使用常见的51系列单片机,为便于扩展串口通信,使用11.0592MHz的晶振。其硬件电路的设计参考传统单片机最小系统的设计即可[4]。

2.2 温度采集模块

温度采集模块包括出水温度和回水温度的采集,使用两路DALLAS公司的DS18B20温度传感器。DS18B20是常用的数字温度传感器,其输出的是数字信号,不需要额外的AD转换,可直接与单片机进行通信。具有体积小,硬件接线简单,抗干扰能力强,精度高的特点。?封装好后可直接放置在锅炉水中,与控制器的连接只需要一根线即可[5]。

2.3 AD转换模块

AD转换模块使用12位串行多通道AD芯片TLC2543,将锅炉中压力和液位传感器采集到的0~5V电压信号或者4~20mA电流信号转换成数字信号送给单片机。由于AD芯片只能接受0~5V的电压信号,因此,文中采用了可将电流信号转换成电压信号的数字芯片RCV420,它可以将4~20mA电流信号转换成AD转换芯片可接受的0~5V的电压信号。

2.4 按键输入模块

按键输入模块包括六个独立按钮:电源键、自动启停键、参数设置键、时间设置键、增加键(循环泵手动开启键)、减少键(补水泵手动开启键),使用CMOS8级静态移位寄存器CD402B将六路按键状态转换成串口数据输出给单片机进行相应动作。

2.5 时钟控制模块

时钟控制模块使用时钟芯片PCF8563,用于实现控制器时钟显示。

图2 时钟控制电路

2.6 掉电存储模块

掉电存储模块使用E2PROM芯片AT24C04,用于保护相关参数的历史信息,或者报警信息等。还可以实现控制器掉电参数的保存。

2.7 继电器控制模块

继电器控制模块包括鼓风机继电器、给煤机继电器、循环泵继电器、补水泵继电器、报警继电器,使用MC1413达林顿管驱动继电器,用于控制所述设备的启停。

2.8 液晶显示模块

液晶显示模块使用约5寸大小的笔段式液晶屏。笔段式价格低廉,驱动简单,一般使用HT1621驱动,HT1621可以驱动 32×4=128个笔段,相当于16 个"8"字,其接口是串行的,有 CS,WR,RD(RD也可以不用),DATA几个引脚,与单片机的连接较点阵式液晶简洁[6]。用于显示温度、时间、液位、压力、控制器状态、设备运行状态和报警信息。

2.9 报警模块

报警模块用于检测温度、液位、压力,当检测值超过设置的报警值时,控制器驱动蜂鸣器报警,并连锁关闭相应设备。

2.10 电源模块

电源模块是整个控制器的动力来源,用于将交流220V电压转换成5V,12V,±15V直流电压,以满足控制器相关数字芯片的供电。图3所示为电源模块电路设计,采用某公司LH20-10D0512,将220V的交流电直接转换成5V和12V的直流电压,采用A0515S将5V的电压转换成±15V的直流电压。

图3 电源电路

3 控制器软件设计

有限状态机(FSM)是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型[7][8]。本文将有限状态机的概念引入单片机锅炉控制器的软件设计,将锅炉系统状态分为空闲状态、开机停止状态、自动运行状态、手动运行状态、参数设置状态、时间设置状态、报警状态,各状态之间根据相应的条件相互转移并执行相应动作。同时,利用有限状态机设计按键输入子模块的程序,其状态有:弹起状态(released)、正在按下状态(pressing)、确认按下状态(pressed)、释放状态(releasing)。图 4所示为程序主流程图。

图4 程序主流程图

3.1 基于有限状态机的锅炉控制系统软件设计

如图5所示,使用基于有限状态机的智能锅炉控制器进行控制时,包括以下步骤:

A、控制器上电后,初始化温度采集模块、按键输入模块、液晶显示模块、A/D转换模块、继电器控制模块、时钟控制模块、掉电存储模块、复位时钟模块和报警模块,等待电源键按下,此状态定义为空闲状态,若无按键按下,则一直扫描等待。

B、若电源键按下后,锅炉系统进入开机停止状态,液晶显示模块显示出水温度、回水温度、时间、压力、液位、控制器状态和设备运行状态,若出水温度、回水温度、压力、液位中的某项超过设置的报警值,则进入报警状态,驱动蜂鸣器进行报警;若出水温度、回水温度、压力、液位均没有超过设置的报警值,等待有按键按下时执行相关动作。

C、按下自动启停键,进入自动运行状态,根据出水温度以及设置的上下限温度通过继电器控制模块控制鼓风机和给煤机的启停,根据开关泵温度的大小以及出水温度通过继电器控制模块控制循环泵的启停,根据液位状态通过继电器控制模块控制补水泵的启停,自动运行状态中也需实时监测温度,压力,液位的大小,若出水温度、回水温度、压力、液位中的某项超过设置的报警值,则进入报警状态,驱动蜂鸣器进行报警。

D、若再次按下自动启停键则结束自动运行状态并回到开机停止状态,关闭相应设备的运行,在开机停止状态下,可进入手动运行状态,通过增加键(循环泵手动开启键)和减少键(补水泵手动开启键)手动启停循环泵和补水泵。

E、在开机停止状态下,按下参数设置键,进入参数设置状态,第一次按下参数设置键,显示报警温度,此时可通过增加键和减小键设置报警温度,再次按下参数设置键,报警温度设置完成,第三次按下参数设置键,显示上限温度,此时可通过增加键和减小键设置上限温度,再次按下参数设置键,上限温度设置完成,依次类推,可分别设置下限温度、开泵温度、关泵温度,关泵温度设置完成后,再次按下参数设置键,则退出参数设置状态并回到开机停止状态。

F、在开机停止状态下,按下时间设置键,进入时间设置状态,第一次按下时间设置键,显示定时时间段,此时可通过增加键和减小键设置定时时间段,再次按下时间设置键,定时时间段设置完成,第三次按下时间设置键,显示实时时间,可通过增加键和减小键设置实时时间,再次按下时间设置键,实时时间设置完成,设置完成后再次按下时间设置键,退出时间设置状态,回到开机停止状态。

图5 锅炉控制系统状态转换图

3.2 基于有限状态机的按键输入软件设计

图6是按键输入子模块状态图。图中:(301)释放状态(released);(302)正在按下状态(pressing);(303)确认按下状态(pressed);(304)正在释放状态(releasing)。

图6 按键输入子模块状态转换图

按键的工作状态如下:

A、释放状态,按键在空闲时为释放状态,此时等待是否有按键按下;

B、有键按下后,等待一定的延时,若在此延时时间段内一直有键按下,则确认有键按下,进入确认按下状态,若在此延时时间段内,按键消失,则认为是按键抖动,进入释放状态继续等待;

C、确认有键按下后,等待按键是否被释放,此时同样设定一定的延时,若在此延时时间段内按键确认被释放,则进入释放状态,若在延时时间段内,按键仍在确认按下状态,则认为是按键抖动,仍为确认按下状态。

4 试验调试

控制器的试验调试按模块化测试、系统测试分步进行。在完成控制器PCB设计、器件焊接后,对控制器的各个模块进行逐个调试。

A、电源模块测试

电源模块输入交流电压85~264V,频率47~63Hz,电流 80Ma;

输出直流电压:DC-5V/2500mA,DC-12V/600mA,DC-±15V/2W;

经示波器对电源模块输出电压进行监测,输出电压波形稳定,幅值满足设计要求。

在电源满足要求的基础上,给控制器上电,单片机最小系统正常起振,检查各个芯片供电电压满足需求。

B、液晶显示模块测试

液晶显示模块采用定制段码液晶,供电电源3V,HT1621B驱动。初始上电后,液晶背光源LED亮,液晶无任何显示。段码液晶包含8个七段数码管,58个笔段,编写测试用例,液晶上各个笔段可以正确显示或不显示。液晶的正确显示是测试其它模块的必要基础。

C、温度采集模块测试

温度采集使用两片全数字温度转换芯片DS18B20分别采集锅炉出水温度和回水温度,编写测试用例,让两个温度显示在液晶屏上,将温度采集端子分别放在常温和温度较高的水中,从液晶屏上可以看出两种温度的实时值。

D、AD转换模块测试

AD转换模块使用某公司11路模拟量输入的12位分辨率模数转换芯片TLC2543,该芯片的模拟量输入为0~5V电压,为满足输出为4~20mA电流信号的传感器和0~5V电压信号的传感器,本控制器设计有4~20mA电流信号转换成0~5V电压信号电路。

测试时,在模拟量输入端加一个滑动变阻器,使其电压从0~5V变化,编写测试用例,观察液晶显示器上液位变化或压强变化,显示正确。

E、时钟控制模块测试

时钟控制模块是控制器用来定时的,采用四位数码管显示小时和分钟,可在程序中设置时钟初始值,也可以通过时间设置键设定当前时间,以及定时时间段的设置。

F、按键输入模块测试(系统测试)

系统测试是在上述各个模块测试都通过的基础上联合按键输入和继电器控制器模块一起进行的,按键输入模块的测试主要是按键功能测试和按键消抖测试。

按键功能测试:详细测试步骤按本文2.1节所述进行,控制器在开机运行状态下的液晶显示界面如图7所示。

图7 控制器开机启动状态实物图

按键消抖测试:分别编写采用传统延时法消抖和基于有限状态机消抖的测试用例,测试按键灵敏度和抗干扰情况,通过实验验证,基于有限状态机编写的按键消抖程序其稳定性和抗干扰能力更好,且占用CPU资源较小,程序效率更高。

G、稳定性测试

在上述测试的基础上,对控制器进行长时间的稳定性测试,测试时间连续运行为72小时,在工作时间每隔一个小时对控制器进行操作和监控,查看记录相关数据。实验证明,该控制器连续运行72小时期间,各个功能正常,未发生异常现象。

5 结束语

本文分析了采用微型控制器单片机代替传统PLC控制改造锅炉控制系统所能带来的优势,介绍了一种基于有限状态机的智能锅炉控制器,详细阐述了该控制器的硬件电路设计,以及采用有限状态机概念的软件程序设计,最后对控制器做了实验调试,验证了其各个模块功能的正确性,并对整个控制做了系统的稳定性调试,实验验证本文设计的智能锅炉控制器在小型燃煤锅炉系统中长期运行的安全性和稳定性。该控制器不仅能广泛应用于偏远山区家庭燃煤锅炉供暖设备的控制,而且经过技术升级后可应用于大型锅炉控制系统。

猜你喜欢
状态机按键报警
基于有限状态机的按键检测程序设计
基于有限状态机的交会对接飞行任务规划方法
LKD2-HS型列控中心驱采不一致报警处理
一种多方向导光按键结构设计
2015款奔驰E180车安全气囊报警
死于密室的租住者
奔驰E260车安全气囊报警
基于有限状态机的STM32系统按键识别方法
解析某型号手机按键检测程序的缺陷
FPGA设计中状态机安全性研究