太陽(yáng)熱水器水位控制的EDA實(shí)現(xiàn)
[1]目前,我國(guó)太陽(yáng)能熱水器的產(chǎn)量和使用量均居世界首位[1][2]。隨著人們生活水平的提高,對(duì)太陽(yáng)能熱水器的品質(zhì)要求越來(lái)越高。智能控制型太陽(yáng)能熱水器越來(lái)越受到人們的歡迎。水位控制是智能控制型太陽(yáng)能熱水器的基本功能之一,是實(shí)現(xiàn)“全自動(dòng)控制”不可或缺的環(huán)節(jié)。所謂水位控制,是通過(guò)設(shè)定來(lái)實(shí)現(xiàn)太陽(yáng)能熱水器水箱里缺水時(shí)自動(dòng)補(bǔ)水、水滿時(shí)自動(dòng)停水的功能?,F(xiàn)有的控制方案多由水位
本文設(shè)計(jì)了一種新型的水位控制器,并采用了電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù)[4][5],用目前廣泛應(yīng)用的VHDL硬件電路描述語(yǔ)言,在Altera公司的MAX+PLUSⅡ集成開(kāi)發(fā)環(huán)境下進(jìn)行綜合、仿真,并下載到可編程邏輯器件EPF10K10TC144-3中,以實(shí)現(xiàn)控制功能。
2 水位控制的主要功能
智能型水位控制要求補(bǔ)水及時(shí)且不影響正常使用。此處設(shè)計(jì)的智能化水位控制器可以實(shí)現(xiàn)水滿后自動(dòng)停水、條件補(bǔ)水和強(qiáng)制補(bǔ)水及顯示、報(bào)警等功能。如圖1所示。
圖1 水位控制示意圖
其中“水位”由水箱中的水位傳感器提供。分三個(gè)檔位:滿水水位、條件補(bǔ)水水位和強(qiáng)制補(bǔ)水水位。滿水水位用于實(shí)現(xiàn)水滿后自動(dòng)停水功能;條件補(bǔ)水水位可設(shè)置在一定水位如半箱水,當(dāng)水箱水位低于此設(shè)置(高于強(qiáng)制補(bǔ)水水位)時(shí)實(shí)現(xiàn)有條件補(bǔ)水:當(dāng)用水指示位有效(正在用水)時(shí)禁止補(bǔ)水,否則予以補(bǔ)水;強(qiáng)制補(bǔ)水水位可設(shè)置為水箱無(wú)水(或設(shè)置在較低水位),此時(shí)實(shí)現(xiàn)強(qiáng)制補(bǔ)水功能。為使用方便,控制器提供報(bào)警、指示功能:補(bǔ)水時(shí)補(bǔ)水指示燈亮,用戶此時(shí)不能用水;水箱水位低于條件水位時(shí)發(fā)出提示音樂(lè),此時(shí)用戶若想繼續(xù)間斷用水,可通過(guò)鍵盤設(shè)置“補(bǔ)水禁止”,這樣,即便不用水也不會(huì)補(bǔ)水,以便短時(shí)間內(nèi)仍有熱水可用,因此時(shí)有音樂(lè)提示,用戶可在用水完畢及時(shí)撤銷“補(bǔ)水禁止”位,為水箱補(bǔ)水;水箱水位到達(dá)強(qiáng)制補(bǔ)水水位而又被禁止補(bǔ)水時(shí),發(fā)出報(bào)警信號(hào),以便撤銷補(bǔ)水禁止位及時(shí)補(bǔ)水,防止水箱長(zhǎng)時(shí)間缺水。
3 水位控制器的VHDL代碼
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是IEEE工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,是隨著可編程邏輯器件(PLD)的發(fā)展而發(fā)展起來(lái)的。這種用語(yǔ)言描述硬件電路的方式,容易修改和保存,且具有很強(qiáng)的行為描述能力,所以在電路設(shè)計(jì)中得到了廣泛應(yīng)用。以下是描述水位控制的VHDL代碼。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY bushui IS
PORT (ply,forbid : IN STD_LOGIC; --用水標(biāo)示,用水禁止
level : IN INTEGER RANGE 0 TO 7; --水位
valve,alm,music : OUT STD_LOGIC; --補(bǔ)水電磁閥,報(bào)警,提示音樂(lè)
fil_l : BUFFER STD_LOGIC); --補(bǔ)水指示燈
END bushui;
ARCHITECTURE behav OF bushui IS
BEGIN
PROCESS(ply,forbid,level)
BEGIN
CASE forbid IS
WHEN '1' => valve = '0';fil_l = '0'; --禁止補(bǔ)水
IF level = 3 AND level > 1 THEN
music = '1';alm = '0'; --音樂(lè)提示水位低于條件補(bǔ)水水位
ELSIF level = 1 THEN
alm = '1';music = '0'; --水位低于強(qiáng)制補(bǔ)水水位報(bào)警
ELSE music = '0'; alm = '0';
END IF;
WHEN '0' => alm = '0';
IF level = 7 THEN
valve = '0';fil_l = '0';music = '0'; 水滿時(shí)停止補(bǔ)水
ELSIF level= 3 AND level > 1 THEN
alm = '0';music = '1'; --音樂(lè)提示水位低于條件補(bǔ)水水位
valve = not ply; fil_l = not ply; --不用水時(shí)予以補(bǔ)水
ELSIF level = 1 THEN
valve = '1';fil_l = '1';music = '0'; --強(qiáng)制補(bǔ)水
ELSE music = '0'; valve = fil_l;fil_l = fil_l;
END IF;
WHEN OTHERS => null;
END CASE;
END PROCESS;
END behav;
評(píng)論