專利名稱:用于流體處理系統(tǒng)的傳導(dǎo)性測量和監(jiān)測系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本公開一般涉及水過濾系統(tǒng)領(lǐng)域。更具體地說,本公開涉及用于流體傳輸和/或處理系統(tǒng)的傳導(dǎo)性測量和監(jiān)測系統(tǒng),例如消費者住宅中所使用的反滲透水過濾系統(tǒng)。
背景技術(shù):
諸如設(shè)計作為家庭使用的水過濾系統(tǒng)之類的商用和民用流體傳輸系統(tǒng)是眾所周知的。作為特別示例,由于增加了對于水質(zhì)和相關(guān)健康考慮,無論是由井供給或是市政供給,消費者過濾系統(tǒng)的普及已顯著增加。設(shè)計用于家用的水過濾系統(tǒng)(諸如,例如冰箱系統(tǒng)、地下水槽系統(tǒng)和整房系統(tǒng))可用來去除供水中的雜質(zhì)。例如,曾被認(rèn)為是奢侈特征的冰箱中水過濾系統(tǒng)所含物現(xiàn)在作為標(biāo)準(zhǔn)特征包括在很多樣式中,但不包括入門級冰箱設(shè)計。
有些水過濾系統(tǒng)結(jié)合了反滲透過濾。通常,反滲透系統(tǒng)包括反滲透隔膜組件、控制元件、凈化水流出口、和限定各種流徑的管子/管道組件。有些反滲透系統(tǒng)還包括壓力槽,允許更快的瞬時傳輸速度。通常,入水源供給到隔膜組件,水源在此被分成凈化水流(一般稱為滲透液)和濃縮廢水流(一般稱為濃縮液)。滲透液可以流到壓力槽中,隨后可通過純凈水龍頭接到該壓力槽。濃縮液可直接以管道輸送到排水管。與管子/管道組件和純凈水龍頭中的一系列閥門結(jié)合工作的控制元件通常可監(jiān)測該系統(tǒng)的運行,并且可以包括各種監(jiān)測傳感器(例如電導(dǎo)率/電阻率)和流動傳感器來評估該系統(tǒng)是否正確運行。
發(fā)明內(nèi)容
反滲透過濾系統(tǒng)(例如在此描述的住宅反滲透水過濾系統(tǒng))可以包括集水器、第一和第二傳感器元件、出口組件和控制單元。集水器可以包括箱體、入口通道和排出通道。過濾介質(zhì)被放置在入口通道和排出通道之間的流量中,并且可以是反滲透隔膜。第一和第二傳感器元件可以分別定位在入口和出口通道內(nèi),而第一傳感器元件被置于過濾介質(zhì)的入口側(cè)的流量內(nèi),第二傳感器元件被置于排出側(cè)的流量內(nèi)。出口組件可以包括至少一個狀態(tài)指示器和電源??刂茊卧梢员话惭b在集水器中,并且電連接到出口組件,而在當(dāng)前優(yōu)選代表實施例中包括微控制器,該微控制器包括在微控制器端口與第一和第二傳感器元件進(jìn)行電通信的比率測量比較器。端口處的信號關(guān)系到第一和第二傳感器元件之間的相對電導(dǎo)率。
一方面,根據(jù)在此描述的當(dāng)前優(yōu)選代表實施例的反滲透過濾系統(tǒng)的控制單元具有微控制器,該微控制器包括比率測量比較器和至少一個輸出端口??刂茊卧€可以包括串聯(lián)排列的第一傳感器元件接口和第二傳感器元件接口,第一和第二傳感器元件之間的節(jié)點電連接到比率測量比較器??刂茊卧妮敵鼋涌诳梢噪娺B接到微控制器的至少一個輸出端口??刂茊卧€可以包括用于遠(yuǎn)距離電源的接口。
另一方面,根據(jù)本發(fā)明的一個當(dāng)前優(yōu)選代表實施例的反滲透過濾系統(tǒng)的監(jiān)測方法包括步驟檢測液流;用交變電流激勵布置在入口液流中的第一傳感器元件;用交變電流激勵布置在排出液流中的第二傳感器元件;以及測量第一傳感器元件和第二傳感器元件間的電壓。該方法還可以包括步驟根據(jù)電壓確定入口和排出液流的相對電導(dǎo)率;確定可溶解固體總量(TDS)減小百分比是否滿足可接受的性能標(biāo)準(zhǔn);以及根據(jù)TDS減小百分比輸出系統(tǒng)狀態(tài)指示器。
本發(fā)明各個方面的以上綜述并不意在詳述本公開的每一示例性實施例或每個實施方式的詳情。接下來更具體的詳細(xì)說明中的附圖示例了這些當(dāng)前優(yōu)選代表實施例。通過結(jié)合附圖參考所描述的本發(fā)明的當(dāng)前優(yōu)選代表實施例的以下更詳說明,將更完整地理解和領(lǐng)會這些以及本公開的其他目的和優(yōu)點。
圖1是反滲透過濾系統(tǒng)的當(dāng)前優(yōu)選代表實施例的流動示意圖。
圖2是反滲透水過濾系統(tǒng)電導(dǎo)率測量和監(jiān)測系統(tǒng)的當(dāng)前優(yōu)選代表實施例的電路示意圖。
圖3是反滲透水過濾系統(tǒng)電導(dǎo)率測量和監(jiān)測系統(tǒng)的印刷電路板的當(dāng)前優(yōu)選代表實施例的示意圖。
圖4是反滲透水過濾系統(tǒng)電導(dǎo)率測量和監(jiān)測系統(tǒng)的微控制器的控制程序的流程圖。
圖5是反滲透水過濾系統(tǒng)電導(dǎo)率測量和監(jiān)測系統(tǒng)的控制系統(tǒng)的流程圖。
具體實施例方式
在此描述了適合用來評估流經(jīng)流體處理系統(tǒng)之前和之后的流體品質(zhì)的測量系統(tǒng)。該評估是基于相關(guān)電導(dǎo)率的測量。用于評估的適合流體包括例如水,諸如商用或民用的水。電導(dǎo)率測量可利用電壓測量、比較器和定時器。測量系統(tǒng)特別適合用于反滲透水處理系統(tǒng)。
反滲透水處理系統(tǒng)可以是商用或民用系統(tǒng)。圖1示意性地示出了反滲透處理系統(tǒng)5的一個當(dāng)前優(yōu)選代表實施例。民用系統(tǒng)可設(shè)計用來過濾通過該系統(tǒng)任意部分的住宅的整個水流或者用于特殊電器,諸如冰箱。在一些當(dāng)前優(yōu)選實施例中,反滲透處理系統(tǒng)5可包括水分配器6,諸如例如水龍頭。在一當(dāng)前優(yōu)選代表實施例中,水分配器6可具有包括至少一個狀態(tài)指示器7和電源8的輸出組件。盡管在替換實施例中電源8(諸如例如可更換電池)可包裝在水分配器6內(nèi),但是電源可被放置在集水器內(nèi)或其他位置,或者被到電源的接線所替換(諸如連接到房屋電源的變壓器)。
反滲透處理系統(tǒng)5還可以包括集水器9,在一當(dāng)前優(yōu)選實施例中該集水器限定了各種輸入和輸出通道或流徑。包括反滲透過濾介質(zhì)13的筒式過濾器11可連接到集水器9,使得供水流15能被過濾成過濾后滲透流17和濃縮的廢水流19。作為用于澄清和便利而在此使用的,術(shù)語過濾介質(zhì)是指用于過濾的單一類型介質(zhì)或者結(jié)合使用的多種類型介質(zhì)。諸如例如流量傳感器、電導(dǎo)率傳感器、pH傳感器等之類的各種感測元件可以整體地放置在集水器9內(nèi)部,用于感測和測量通過供水流15、過濾后滲透流17和濃縮后廢水流19的流量,或者相反,感測元件可遠(yuǎn)離集水器9而放置。在一些當(dāng)前優(yōu)選代表實施例中,集水器9距水分配器6遠(yuǎn)距離地放置。例如,集水器9可安裝在水槽、柜臺下,或者遠(yuǎn)程安裝在諸如例如地下室或類似位置,而包括至少一個狀態(tài)指示器7和電源8的水分配器6被安裝在水槽處或電器上。
反滲透處理系統(tǒng)5還可以包括系統(tǒng)監(jiān)測器電路10(例如安裝在集水器9中)。系統(tǒng)監(jiān)測器電路10可包括具有微控制器24的PCB(印刷電路板)組件12、各種傳感器接口和出口組件接口。微控制器24可包括一種算法來控制反滲透處理系統(tǒng)5的運行并管理系統(tǒng)監(jiān)測器電路10與感測元件之間、以及系統(tǒng)監(jiān)測器電路與水分配器6之間的通信。在一當(dāng)前優(yōu)選代表實施例中,該算法根據(jù)反滲透處理系統(tǒng)5的狀態(tài)包括幾種相互運作部分開始狀態(tài)部分、復(fù)位和初始化部分、主狀態(tài)機(jī)程序部分、空閑狀態(tài)部分、流動狀態(tài)部分、定時器過期狀態(tài)部分、排出測試狀態(tài)部分、子程序部分和中斷部分。
反滲透處理系統(tǒng)5可提供一個或多個優(yōu)點,例如簡化的控制單元設(shè)計、相對電導(dǎo)率測量和過濾效果的改良的效率、以及改進(jìn)的電源和控制單元布局和接口。本發(fā)明的代表實施例的反滲透處理系統(tǒng)5提供了至少一個狀態(tài)指示器7,根據(jù)相對電導(dǎo)率測量來指示可接受或不可接受的系統(tǒng)性能,從系統(tǒng)性能還可以導(dǎo)出過濾介質(zhì)有效性輸出作為能量效率和簡化的系統(tǒng)設(shè)計的一部分。簡化的設(shè)計還提供了正確而且快速的讀數(shù)。
水分配器6的代表當(dāng)前優(yōu)選實施例包括控制單元接口和電源8。水分配器6還可以包括至少一個狀態(tài)指示器7。在一代表實施例中,狀態(tài)指示器7包括與公共陽極連接并由控制單元驅(qū)動的發(fā)光二極管(LED)。狀態(tài)指示器7可以包括單獨指示器,諸如例如流量指示器7a、定時器指示器7b和過濾監(jiān)測指示器7c,每一個都具有不同顏色或者在代表實施例中的其他區(qū)別特征。流量指示器7a指示了通常在打開水龍頭后水流動時過濾系統(tǒng)正在正確運行。定時器指示器7b指示了何時需要根據(jù)流逝的時間或總流量來替換電源。過濾監(jiān)測指示器7c指示了過濾器隔膜何時沒有以期望的效果執(zhí)行,例如當(dāng)使用過程中可溶解固體總量(TDS)水平減小低于預(yù)定閾值時。其他類型的可視顯示器可用作狀態(tài)指示器,對于可視顯示器可額外或可選擇地使用音頻信號。
水分配器6可通過布線接口電連接到系統(tǒng)監(jiān)測器電路10。在一當(dāng)前優(yōu)選代表實施例中,電纜的第一端連接到出口組件處的水分配器6接口,而第二端連接到印刷電路板(PCB)連接器。以下將更加詳細(xì)地描述控制單元接口和PCB連接器。
在一些代表實施例中,電源8是電池。電池可以是例如3伏CR2032鋰紐扣電池。在該特殊實施例中,電源8可提供整個系統(tǒng)至少六個月時間電力,之后電源8保留足夠電力使得定時器指示器運行一段時間作為需要維護(hù)的警報。在一代表實施例中,盡管在各種實施例中還可以提供其他時間段,但是用于提供警報功能的時間段至少是37天。電源8可安裝在水分配器6中,當(dāng)電池需要維護(hù)或替換時,盡管其他放置方式能便捷使用,但是這種方式提供了容易并且更便捷的更換位置。
集水器9可包括限定了各種輸入和輸出通道/流徑的集水器箱。筒式過濾器11和各種感測元件可相對于集水器9連接和定位。可把筒式過濾器密封使得替換過濾器介質(zhì)時替換整個筒。濾筒能以筒式連接方式連接到集水器箱,該筒式連接方式使得與濾筒進(jìn)行可操作的連接。
感測元件通常包括傳感器探針來測量輸入和排出滲透水的相對電導(dǎo)率,并且可被放置在輸入和輸出通道中。在本發(fā)明的一個當(dāng)前優(yōu)選代表實施例中,傳感器探針包括分別串聯(lián)安裝在箱子中的兩對電極,具有位于供給流量15的第一傳感器探針21和位于過濾后的滲透流量17的第二傳感器探針23。通常傳感器探針21、23可定位使得不需要溫度補(bǔ)償,并且可包括鍍金黃銅或本領(lǐng)域技術(shù)人員公知的具有兼容電特性的其他材料。如下更詳細(xì)所述,傳感器探針21、23與系統(tǒng)監(jiān)測器電路10電通信連接。感測元件還可包括布置在通道中的流量測量元件。
參考圖2,反滲透水過濾電導(dǎo)率測量和監(jiān)測系統(tǒng)包括具有系統(tǒng)監(jiān)測器電路10的控制單元。電路10可安裝在如圖2所示的PCB組件12上,并且可與出口組件和感測組件進(jìn)行電連接。盡管PCB組件的其他定位會適合,但是PCB組件12可被安裝在集水器中。
電路10通常包括具有內(nèi)部軟件、傳感器、和相關(guān)電路部件和接口的微控制器。特別地,電路10的一個當(dāng)前優(yōu)選實施例包括振蕩器和控制部分20、流量計感測部分30、反滲透感測部分40、狀態(tài)指示器驅(qū)動部分50和電源輸入部分60。
振蕩器和控制部分20包括晶體22和微控制器24。在一個當(dāng)前優(yōu)選實施例中,盡管在不脫離本公開的精神或范圍情況下可以在其他替換實施例中使用其他適合晶體,但是晶體22是32.768千赫茲(kHz)+/-20ppm表面貼裝器件(SMD)表面玻璃。
在一當(dāng)前優(yōu)選代表實施例中微控制器24可包括德州儀器公司的MSP430F1111A微控制器,其包括內(nèi)部比較器模塊和內(nèi)部電路和元件直接連接到晶體22。也可以使用其他適合的微控制器,諸如例如TIMSP430家族中具有內(nèi)部比較器模塊的那些微控制器。TIMSP430F1111A微控制器的比較器模塊提供比較結(jié)果,例如輸入到微控制器的兩個外部輸入的比較,每個外部輸入與0.25×Vcc或0.5×Vcc的比較,或者每個外部輸入與內(nèi)部基準(zhǔn)電壓、容許電壓、電流、電阻和電容測量的比較。因此,內(nèi)部比較器模塊的功能可以指示兩個外部或內(nèi)部基準(zhǔn)電壓中的哪一個更高,并且因此可以驅(qū)動輸出引腳高或低。1999年10月題為“Economic Measurement Techniques withthe Comparator A Module”的德州儀器應(yīng)用報告SLAA071更詳細(xì)地描述了TI MSP430家族比較器模塊。微控制器24還可以包括內(nèi)部高速振蕩器。
流量計感測部分30的一個當(dāng)前優(yōu)選實施例包括開關(guān)32、電阻元件34和36、以及電容元件38。在一代表實施例中,開關(guān)32是磁簧開關(guān),特別地是Meder MK22-B-4。開關(guān)32通常是打開的,并且通過電阻元件34與微控制器24電通信。通過旋轉(zhuǎn)反滲透水過濾系統(tǒng)的葉輪的磁化葉片可操作地關(guān)閉開關(guān)32。葉輪的旋轉(zhuǎn)以及后續(xù)的開關(guān)32的關(guān)閉指示了水流過了該系統(tǒng)。在一個當(dāng)前優(yōu)選代表實施例中,每分鐘大約3328脈沖的脈沖頻率與每分鐘大約1加侖的過濾系統(tǒng)流量速率相關(guān)聯(lián),而每分鐘大約4160個脈沖的脈沖頻率與每分鐘大約1.25加侖的流量速率相關(guān)聯(lián)。所得到的周期大約為14.42毫秒(mS)。在該代表實施例中,開關(guān)32具有大約0.5mS的最大運行時間和大約0.1ms的最大釋放時間,兩個時間與上述脈沖頻率相兼容。
在一個當(dāng)前優(yōu)選實施例中,反滲透感測電路40包括電阻元件41和42、電容元件43和44、輸入水通道傳感器探針接口45和46、以及排出水通道傳感器探針接口47和48。布置電阻元件41和42以確保適當(dāng)?shù)牡碗娏髂芰鬟^探針45-48。在一個當(dāng)前優(yōu)選代表實施例中,電阻元件41和42每一個都包括1兆歐(MΩ)電阻,盡管可以使用其他電阻值使得電阻元件允許一些電流流過探針45-48來測量輸入和排出水通道之間的成比例的電導(dǎo)率。布置電容元件43和44來對噪聲和開關(guān)瞬態(tài)進(jìn)行去耦,并且在一個當(dāng)前優(yōu)選實施例中每一個都包括0.1微法(μF)電容。串聯(lián)布置輸入探針接口45和46以及排出探針接口47和48,并且可操作地分別連接到如前所述過濾系統(tǒng)的集水器流量通道中的電極對,并且在比較器輸入處連接到微控制器24。
在電路10的一個當(dāng)前優(yōu)選代表實施例中,狀態(tài)指示器驅(qū)動部分50包括電阻元件51、52和53、電容元件54、55、56和57、以及連接器58。連接器58電連接到安裝在遠(yuǎn)離電路10的出口組件中的過濾系統(tǒng)狀態(tài)指示器。連接器58可以例如是凹的RJ-11電話插孔型連接器,該連接器有六個引腳并且適合連接到電話電纜組件的第一端,并且該電話電纜組件的第二端可操作連接到出口組件。在示例實施例中,連接器58的引腳線如下引腳1用于復(fù)位;引腳2連接到電池正極和LED陽極公共端(+Vcc);引腳3連接到過濾監(jiān)測指示器;引腳4連接到流量指示器;引腳5連接到定時器指示器;引腳6接地。如本領(lǐng)域技術(shù)人員將理解的是,可以使用其他引腳線,因為上述引腳線僅僅是一個代表實施例的示范。引腳3、4和5以及狀態(tài)指示器7分別通過電阻元件51、52和53連接到微控制器24。根據(jù)所使用的特殊狀態(tài)指示器,在一實施例中電阻元件51、52和53可以改變。例如,可以根據(jù)為驅(qū)動電連接到連接器58的特殊LED狀態(tài)指示器所必需的電流來調(diào)整電阻元件51、52和53的大小。在一當(dāng)前優(yōu)選實施例中,電阻元件51、52和53分別包括220Ω、150Ω和220Ω的電阻,盡管在其他代表實施例中可以使用其他值和配置的電阻元件51、52和53。在該當(dāng)前優(yōu)選實施例中,布置電容元件54、55、56和57來對噪聲去耦,并且每一個都包括0.01μF的電容。
電源輸入部分60可以包括連接器62、或可選擇的連接器58和電容元件64和66。連接器62或者連接器58任一個可以連接到電源8,在本發(fā)明的一個代表示范實施例中該電源如前所述可以是3伏特CR2032鋰紐扣電池。在連接器58連接到電源8的情況下,電話電纜組件把能量從3伏特電池供給到電源輸入部分60。電容元件64是高頻去耦電容。電容元件66是局部大容量電容來在電路10的待機(jī)或睡眠模式和喚醒電源需求之間提供電壓穩(wěn)定性。在一個當(dāng)前優(yōu)選代表實施例中,電容元件66包括10μF的電容,盡管也可以使用其他電容量。
如圖所示,電路10包括電阻元件70和72。電阻元件70和72可以是連接到微控制器24的上拉或下拉電阻。在一個當(dāng)前優(yōu)選代表實施例中,電阻元件70和72分別包括100千歐姆(kΩ)和20kΩ的電阻。
微控制器24可操作來控制和監(jiān)測本發(fā)明的過濾系統(tǒng)的運行,并且通??梢园刂扑惴ā?刂扑惴ㄊ怯糜谖⒖刂破?4的運行平臺,并且分別管理微控制器24、感測元件和出口組件之間的通信。控制算法可以被寫入微控制器閃速存儲器/ROM(只讀存儲器),盡管該控制算法可以根據(jù)所使用的特殊微控制器來加以改變。在題為程序列表的下列部分中,在此提出了與微控制器24、前述控制系統(tǒng)和當(dāng)前優(yōu)選代表實施例的公開相關(guān)的控制算法的當(dāng)前優(yōu)選代表實施例。
控制算法可以包括幾個相互操作部分,這些部分根據(jù)過濾系統(tǒng)的各種操作狀態(tài)來管理系統(tǒng)和部件通信、操作和輸出。特別地,控制算法可以控制微控制器24從初始加電開始狀態(tài)、經(jīng)過各種操作狀態(tài)和空閑狀態(tài)、到斷開電源狀態(tài)的操作和功能。
參考圖4,根據(jù)當(dāng)前優(yōu)選代表實施例的駐留在微控制器24中的控制算法可以包括開始狀態(tài)部分125、復(fù)位和初始化部分100、主狀態(tài)機(jī)程序部分105、空閑狀態(tài)部分110、流動狀態(tài)部分115、定時器過期狀態(tài)部分120、排出測試狀態(tài)部分130、中斷部分135、140、145、150和155、以及子程序部分。
在復(fù)位和初始化部分100,微控制器24引導(dǎo)系統(tǒng)輸入和輸出的初始化來順應(yīng)硬件、建立振蕩器22和微控制器24內(nèi)部的高速振蕩器的定時、并且初始化寄存器和存儲器變量來開始執(zhí)行主狀態(tài)機(jī)主環(huán)路程序部分105。
在開始狀態(tài)部分125,微控制器24在如圖5的流程圖所示的啟動模式170中使得狀態(tài)指示器7閃爍。例如,可以按照下面順序流量指示器、定時器指示器、過濾監(jiān)測指示器,使得LED照亮0.05秒,然后關(guān)掉0.95秒,這樣重復(fù)兩次。這種啟動模式和定時可以在控制算法的其他適當(dāng)實施例中進(jìn)行改變。如果在上述模式的后一秒內(nèi)開關(guān)32(參見圖2)檢測到水流量,則微控制器24轉(zhuǎn)到排出測試狀態(tài)130。如果在啟動模式的后一秒內(nèi)沒有檢測到水流量,則微控制器24轉(zhuǎn)到空閑狀態(tài)110。
在一個當(dāng)前優(yōu)選代表實施例中,全部狀態(tài)程序返回到主環(huán)路程序105。圖4的實施例中的主環(huán)路程序105的主要目的是使得微控制器24置于非常低的電流睡眠模式來保存電力直到在一秒通道傳送中斷由實時時鐘喚醒微控制器24,在該時刻微控制器24執(zhí)行適當(dāng)?shù)臓顟B(tài)程序。
微控制器24在空閑狀態(tài)110和定時器過期狀態(tài)120處于空閑。定時器過期狀態(tài)120在超過定時閾值之后代替空閑狀態(tài)110。為了保存電力,微控制器24只要有可能就轉(zhuǎn)到空閑狀態(tài)110。例如,如果在如上參考開始狀態(tài)部分125所述的啟動模式中沒有檢測到液流,并且在如下參考排出測試狀態(tài)130所述在后面的流量計測試沒有檢測到液流,則微控制器24可以轉(zhuǎn)到空閑狀態(tài)。在期望保存電力并且在不需要微控制器24的活動操作的其他時間,微控制器24也可以轉(zhuǎn)到空閑狀態(tài)110。
在一個當(dāng)前優(yōu)選代表實施例中,流動狀態(tài)115可以包括八個主要部分。當(dāng)根據(jù)葉輪的旋轉(zhuǎn)由開關(guān)32的關(guān)閉或者可選擇的流量計檢測到水流量時,微控制器24轉(zhuǎn)到流動狀態(tài)115。在流動狀態(tài)115的第一部分,微控制器24為新的反滲透測量設(shè)立端口、定時器、比較器和變量。
接下來,微控制器24進(jìn)行新的反滲透測量。根據(jù)本公開的當(dāng)前優(yōu)選代表實施例,微控制器24使用內(nèi)部比較器模塊來進(jìn)行過濾介質(zhì)有效性的比率測量確定。換言之,微控制器24協(xié)同布置在過濾介質(zhì)的相對側(cè)上的流量中并且在探針接口45、46、47和48處與微控制器24通信的輸入和排出水傳感器探針21、23一起根據(jù)輸入水和排出水的相對電導(dǎo)率來確定TDS減小百分比從而確定過濾介質(zhì)的有效性。如果輸入水不純并且有一定數(shù)量的溶解固體,并且把電壓引入輸入和排出水探針,則離子(電流)流量將被引入傳感器探針21、23之間,其中電流將與水中的TDS水平成比例。
為了根據(jù)該系統(tǒng)的當(dāng)前優(yōu)選代表實施例來測量水的電導(dǎo)率,從而確定TDS減小百分比和過濾介質(zhì)有效性,微控制器24開始用于打開微控制器24的端口輸出的端口觸發(fā)環(huán)路,該端口輸出連接到傳感器探針21、23。在圖2所示的電路10的實施例中,這些端口是引腳3(輸入水)和引腳10(排出水)。當(dāng)測量時,微控制器24交替觸發(fā)引腳3(45)和10(48),一側(cè)連接到電池正極,另一側(cè)接到電池負(fù)極,隨后翻轉(zhuǎn)所施加的極性來建立反向離子流。通過微控制器24的端口所驅(qū)動的交變電流如此激勵串聯(lián)的傳感器探針21、23。在第一方向引入的流量還電鍍了電極,隨后切換流量的方向鍍出了探針,有助于保持傳感器探針21、23清潔。微控制器24可以快速觸發(fā)端口,提供快速讀數(shù)并且能夠?qū)y量靈敏度進(jìn)行微調(diào)。端口定時和保養(yǎng)采用中斷驅(qū)動。
流過串聯(lián)的輸入水傳感器探針21和排出水傳感器探針23的電流在電極對之間產(chǎn)生出電壓,該電壓關(guān)系到在兩個通道的輸入水和排出水中不同的電導(dǎo)率。該分壓器由微控制器24通過引腳11、比較器模塊輸入處的接口46和47的電極對的公共接頭所感測到。如前針對一當(dāng)前優(yōu)選代表實施例所述,微控制器24包括內(nèi)部比較器模塊。本實施例中到比較器模塊的第二(內(nèi)部)輸入是內(nèi)部0.25×Vcc基準(zhǔn)電壓,由此基準(zhǔn)電壓和測量激勵都源自Vcc。因此微控制器24的比較器模塊通過測量輸入和排出傳感器探針21、23之間的電壓來確定過濾介質(zhì)的有效性,該電壓關(guān)系到在輸入通道中的流體和排出通道中的流體之間不同的電導(dǎo)率。電壓與相對電導(dǎo)率之間的關(guān)系可以成比例。本發(fā)明的代表實施例的相對電導(dǎo)率的直接測量使得許多非線性因子抵消掉,減小了電路10中需要進(jìn)行過濾有效性確定所必需的模擬電路部件數(shù)量,并且不需要入口或排出水電導(dǎo)率的絕對測量以及相對電導(dǎo)率的后續(xù)計算。
因此,針對其中排出水探針(接口48)被切換到電池正極的環(huán)路,執(zhí)行測量。激活連接到共同的水探針接口46和47的微控制器24的比較器(引腳11),并且當(dāng)內(nèi)部比較器改變狀態(tài)時,由比較器中斷程序捕獲當(dāng)前端口觸發(fā)定時器值。用于測量比較器的基準(zhǔn)為內(nèi)部0.25×Vcc電壓,其中Vcc與電池正極相等。針對具有相對良好TDS抑制比率的反滲透過濾隔膜,引腳11處的電壓是并且保持低于測量脈沖持續(xù)期間的比較器閾值。
隨著TDS抑制比率的降低,比較器輸入電壓升高,接近電池電壓的一半。在TDS抑制很少的感興趣的區(qū)域,比較器輸入電壓低于測量脈沖開始的基準(zhǔn)電壓。隨著電流經(jīng)過水通道,電化學(xué)特性允許很多電流流過,從而降低了排出水通道中的阻力。這反過來使得由微控制器24的內(nèi)部比較器所獲知的電壓傾斜上升,并且當(dāng)電壓到達(dá)基準(zhǔn)電壓時觸發(fā)內(nèi)部比較器。換言之,內(nèi)部比較器切換所需的時間可以看作TDS抑制比率的高分辨率表示。因此,總體降低的TDS抑制比率引起了引腳11處總是高于基準(zhǔn)電壓的內(nèi)部比較器輸入電壓,而高TDS抑制比率引起總是低于基準(zhǔn)電壓的內(nèi)部比較器輸入電壓。因此微控制器24可以具有三級讀數(shù)抑制比率的良好讀數(shù)、差的讀數(shù)和高分辨率中間讀數(shù)。高分辨率中間范圍對應(yīng)于其中抑制比率在可接受和不可接受抑制比率之間變化的抑制比率范圍。在一個當(dāng)前優(yōu)選代表實施例中,高分辨率中間范圍被設(shè)為大約抑制比率的75%,其中大于75%的抑制比率表示可接受的抑制比率,而小于75%的抑制比較表示不可接受的抑制比率。可選擇地,可以根據(jù)諸如例如隔膜類型、進(jìn)給水質(zhì)、進(jìn)給水類型和滲透水質(zhì)的可接受標(biāo)準(zhǔn)之類的過濾系統(tǒng)變量來把高分辨率中間范圍設(shè)為各種可選擇的抑制比率。
微控制器24在流動狀態(tài)115的測量部分的開始執(zhí)行界限測量來驗證初始內(nèi)部比較器狀態(tài)。此外,如果內(nèi)部比較器在測量部分過程中沒有轉(zhuǎn)變,則微控制器24還捕獲結(jié)果。隨著測量被執(zhí)行,在代表實施例中,微控制器24丟掉最初兩個測量用于調(diào)整,并對接下來的四個測量進(jìn)行求平均。接下來,用平均后的讀數(shù)與測試閾值作比較來確定讀數(shù)是否通過或是失敗。
在評估了平均讀數(shù)之后,微控制器24審查所累加的結(jié)果來確定過濾監(jiān)測指示器的狀態(tài)是否被改變。在一個當(dāng)前優(yōu)選代表實施例中,需要25個連續(xù)低于閾值的結(jié)果來改變指示器的狀態(tài)。這些累加結(jié)果臨時存儲在微控制器24 RAM(隨機(jī)存儲器)中的FIF0(先進(jìn)先出)緩沖器中。
在流動狀態(tài)115的一個實施例的最后部分中,打開相應(yīng)(多個)狀態(tài)指示器并且微控制器24內(nèi)部的定時器開始閃爍。定時器中斷程序關(guān)閉定時器。將內(nèi)部比較器和基準(zhǔn)斷電以減小電力消耗。隨后微控制器24返回到前面狀態(tài)。
在定時器過期狀態(tài)120,在超過六個月時間或者超過總流量閾值之后,微控制器24使得定時器指示器7b閃爍。微控制器24可周期性地喚醒以更新內(nèi)部流逝時間計數(shù)器,并且在一個當(dāng)前優(yōu)選實施例中可以記錄擴(kuò)展時間段的流逝時間,例如幾天、幾周或幾個月時間,在此期間通過處于空閑狀態(tài)110或者定時器過期狀態(tài)120中任一個來減小電力消耗。在該擴(kuò)展時間過期之后,微控制器24激活定時器指示器7b。在一個當(dāng)前優(yōu)選代表實施例中,總流量閾值可以設(shè)為大約900加侖,并且一旦超過該閾值就激活定時器指示器7b。定時器中斷程序關(guān)閉定時器指示器7b。如果在微控制器24處于該狀態(tài)時檢查到水流量,則微控制器24轉(zhuǎn)到流動狀態(tài)115,執(zhí)行如前所述的測量,并且微控制器24隨后返回到定時器過期狀態(tài)120。
在一個當(dāng)前優(yōu)選實施例中,復(fù)位定時器指示器7b可通過從系統(tǒng)監(jiān)測器電路10中去掉電源8并替換來實現(xiàn)。在其他當(dāng)前期望實施例中,系統(tǒng)監(jiān)測器10可以包括復(fù)位開關(guān)或按鈕來斷開電路或復(fù)位定時器指示器7b。在適當(dāng)實施例中,可以在替換過濾器時自動發(fā)送這樣的開關(guān)或復(fù)位信號。
在排出測試狀態(tài)130,如圖5所示,第一階段是流量計測量172。如果在狀態(tài)130的第一個1.95秒內(nèi)檢測到水流量,則定時器指示器7b針對由葉輪所檢測的每個脈沖都閃爍。在一實施例中,定時器指示器7b在開關(guān)關(guān)閉持續(xù)時間是照亮的。這使得能夠進(jìn)行磁簧開關(guān)32及其致動葉輪磁體的完整性測試。
通過流量計測試階段172,微控制器24執(zhí)行反滲透測量階段173,其中如果還檢測到流量則每秒鐘進(jìn)行一次測量。該階段174使用如上相對于流動狀態(tài)115所述的相同程序。因此,最初1.95秒流量計測試后,在該程序的當(dāng)前優(yōu)選代表實施例中會出現(xiàn)下面序列和大概定時·50mS轉(zhuǎn)換到反滲透測量狀態(tài)(181)·60mS反滲透測量(182)·50mS流量指示器閃爍(183)·針對下一秒時鐘通道傳送的延遲(大約890mS)(184)·60mS反滲透測量(185)·50mS流量指示器閃爍(186)·針對下一秒時鐘通道傳送的延遲(大約890mS)(187)·60mS反滲透測量(188)·如果針對反滲透測試階段的持續(xù)時間在流量通道中沒有可接受的輸入和排出水,則進(jìn)行50mS過濾監(jiān)測指示器閃爍(189)流量指示器7a或過濾監(jiān)測指示器7c如針對正常操作所定義的進(jìn)行閃爍,除了以下情況之外只有兩個連續(xù)不同的測量結(jié)果會改變(多個)指示器的狀態(tài)。如果在反滲透測量測試階段沒有監(jiān)測到流量,則微控制器將回到正常操作并轉(zhuǎn)到空閑狀態(tài)110。在反滲透測量測試階段大約25秒之后,微控制器24回到正常操作(190),其中在一個當(dāng)前優(yōu)選代表實施例中需要25個連續(xù)不同狀態(tài)讀數(shù)(即,如果過濾介質(zhì)令人滿意則是失敗讀數(shù),或者如果過濾介質(zhì)指示失敗則是滿意讀數(shù))來觸發(fā)狀態(tài)指示器的狀態(tài)。
本領(lǐng)域技術(shù)人員來說可以理解的是,上面以及在此貫穿全文所述,和附圖所示的特殊時間是示例性的并且可以改變,在此它們的使用是為了示出和描述本發(fā)明的代表實施例。
在如上所述的控制算法部分105、110、120、125和130中,在一實施例中存在五個中斷看門狗/實時中斷135、開關(guān)中斷140、測量端口觸發(fā)中斷145、指示器閃爍中斷150以及反滲透測量中斷155。
當(dāng)微控制器24處于超低電流睡眠模式時,在一個當(dāng)前優(yōu)選代表實施例中看門狗/實時中斷135每秒發(fā)生一次。振蕩器22用作時間基礎(chǔ),并且在經(jīng)過1秒鐘后,微控制器24啟動活動模式,并執(zhí)行中斷135。對經(jīng)過的秒數(shù)和小時數(shù)進(jìn)行計數(shù),并且和排出測試超時和定時器時限進(jìn)行比較。在一個當(dāng)前優(yōu)選代表實施例中,定時器時限是預(yù)定義的,并且例如是六個月。如果超過六個月閾值,則接下來調(diào)用定時器過期狀態(tài)120。從中斷135返回時,微控制器24保持在活動模式并且執(zhí)行主狀態(tài)機(jī)主環(huán)路105。在本發(fā)明的一個代表實施例中,中斷135總是能啟用的。
當(dāng)檢測到開關(guān)32關(guān)閉時會發(fā)生開關(guān)中斷140??偭髁坑嫈?shù)增加,并且將加侖計數(shù)與預(yù)定總流量閾值進(jìn)行比較。如果超過了閾值,則調(diào)用定時器過期狀態(tài)120。從中斷140返回時,微控制器24返回前面的睡眠狀態(tài)。在接下來的一秒通道傳送中,執(zhí)行流動狀態(tài)115。中斷140在開始狀態(tài)125之后被啟用,并且如果進(jìn)入排出測試狀態(tài)130,則針對流量計測試階段中斷140被禁用。
在一個當(dāng)前優(yōu)選代表實施例中,當(dāng)流動狀態(tài)115的反滲透測量端口觸發(fā)超時時,發(fā)生測量端口觸發(fā)中斷145。中斷145切換端口驅(qū)動器,并且只要沒達(dá)到計數(shù)器閾值就使得觸發(fā)計數(shù)器增加。中斷145返回到流動狀態(tài)115,而微控制器24處于活動模式繼續(xù)進(jìn)行如上所述的下一步測量程序。當(dāng)在一個實施例中打開測量端口時,中斷145只在流動狀態(tài)115中是能啟用的。
在過了閃爍時間之后,指示器閃爍中斷150可以關(guān)閉狀態(tài)指示器7b。在一個當(dāng)前優(yōu)選代表實施例中,閃爍時間預(yù)定義為大約50mS,盡管也可以定義其他閃爍時間。在一個實施例中,從中斷150返回時,微控制器24返回到前面的睡眠狀態(tài),并且中斷150只有在打開了狀態(tài)指示器時才是能啟用的。
使用反滲透測量中斷155來捕獲當(dāng)反滲透測量比較器出錯時測量端口觸發(fā)定時器的計數(shù)。微控制器24返回到活動狀態(tài)下的流動狀態(tài)115來繼續(xù)進(jìn)行如前所述測量程序中的下一步驟。在一個當(dāng)前優(yōu)選代表實施例中,當(dāng)比較器輸出有效時,中斷155只有在流動狀態(tài)115中才是能啟用的。
由此,本發(fā)明的代表實施例的反滲透過濾系統(tǒng)提供了表示相對電導(dǎo)率的輸出。也可以從相對電導(dǎo)率中導(dǎo)出過濾介質(zhì)有效性。反滲透過濾系統(tǒng)提供了改進(jìn)的能量效率和簡化的系統(tǒng)設(shè)計,同時還提供了更準(zhǔn)確而快速的讀數(shù)。
盡管為了說明在此公開了本發(fā)明的各種代表實施例,但是應(yīng)該理解,在不脫離本發(fā)明的精神或范圍的情況下,可以結(jié)合各種改變、修改和替換。
PROGRAM LISTING; **PentaPure RO System Monitor Electronics Code**;; DESCRIPTION; *******Comparator sensing,MSP430F11x1A processor***********; PIN 19(CA0,P2.3)is comp+input=>measure input; comp-input=>.25*Vcc internal reference; LED_OK-50mS on pulse per second while flowing,filtered RO measurement OK; LED_FLT-50mS on pulse per second while flowing,time or tot.flow exceeded.
; Also on 50mS oncc per minute while no water is flowing.
; LED_KO-ON if avg result<FailCnt.(higher cnt=>more TDS difference); (ON is 50mS once per second while water is flowing only); (25 consecutive different readings required to change indicated state); *******************************************************;;; Using WDT ISR,32kHz ACLK,Reed Switch to start; measurement cycle-toggle drive pins and measure conductivity.
;; **5mS measurement pulse; **CCR0&TA0_ISR for measurement period,TASSEL=SMCLK=~750kHz; **CCRl&TA12_ISR for LED time period,TASSEL=ACLK=32kHz;; This program operates MSP430 normally in LPM3.lsec WDT ISR used to wake-up system.
; Comparator A and reference generator disabled in LPM3; (Measurement results converted to BCD and stored in a ring buffer for viewing with a JTAG interface);;; MSP430F11x1A; -----------------; XIN|-; |||32k; --|RSTXOUT|-;||;|P1.3|-->Reed switch;|P1.2|-->LED_FLT;|P1.1|-->LED_OK;|P1.0|-->LED_RO;|P2.5|-->RO Measurement DriVe Pin-input water,J3;|P2.4|-->Comp1-Ext ref divider(not used);|P2.3|-->Comp0-RO Measurement Sense Pins,J4,J5;|P2.2|-->RO Measurement Drive Pin-output water,J6;|P2.1|-->Drive for Ext ref divider(not used);|P2.0|-->Possible cal R drive(not used);| |;;; ******************************************************************************; -----------------------------------------------------------------------------;; Custom definitions;; -------Register definitions used---------------------------------------------------;#define State R4;State register#define Loop R5;Hex=>BCD register#define Result R6;Hex=>BCD regjster#define AcumTot R7;accumulated test(timer)values
#define TestFal R8;failed tests counter#define ChrCnt R9;test result buffer char count#define ReedCnt R10;Reed switch totalize count(flowmeter)#define BuffIP R11;test result buffer pointer#define CompRes R12;test result working register#define Working R13;BCD conversion working register#define SEC R14;real time clock seconds count#define TstTmp R15;test average working register;;--------RAM Variable definitions used------------------------------------------DiffCnt equ 0200h;disagreeing RO measurements counter(.b)FLAGequ 0201h;RO measurement&led flags(.b)Ptoggle equ 0202h;current#port toggles(.b)ToggleTo equ 0203h;Total#port toggles(.b)ONdelay equ 0204h;Wait to settle after port toggle(.w)HRequ 0206h;RTC hour register(.w)GALequ 0208h;Totalized flowmeter galloms(.w)FLT_cnt equ 0210h;background flash counter,LED_FLT(.b)Diffequ 0211h;disagreeing RO measurements threashold(.b)NxtState equ 0212h;Pending State change(.w)PrvState equ 0214h;Previous State(.w)BufStrt equ 0216h;start address for test results bufferBufEnd equ 0256h;end buffer addr+1;;**(Stack space from 280h to 256h)**;;--------Bit definitions used---------------------------------------------------LED_FLT equ 01h;/Filter LED on P1.0&FLAG maskLED_OK equ 02h;/OK LED on P1.1LED_RO equ 04h;/RO LED on P1.2&FLAG maskSWpinequ 08h;pin swapped FLAG maskReedSW equ 08h;Reed switch on P1.3INpinequ 20h;Inlet probe pin on P2.5OUTpin equ 04h;Outlet probe pin on P2.2ExtRef equ 02h;External reference drive on P2.1Cal_Requ 01h;Calibrate resistor on P2.0;;--------Constants-------------------------------------------------------------Count2 equ 3750d;Toggle pulsewidth(SMCLK clock);(750kHz)*(5mS)=3750dFailCnt equ 1237d;If average comp>,fail testSkipPequ 05d;Start accumulating at x pulse;(05d=skip 2 measurement pulses)LEDcrt equ 1638d;LED pulsewidth(ACLK);(32,768Hz)*(50mS)=1638dMaxTime equ 4392h;6 months=4392 hours(BCD)DiffMax equ 25d;number of different measuremets to;change RO/OK state(default)DiffTst equ 03d;#of meas.in test modeCntGal equ 3328d;flowmeter counts per gallonMaxGal equ 0900d;maximum totalized gallonsFLTmaxequ 60d;max sec,LED_FLT background flash rateFlTestTM equ 08h;BCD test time end+1sec(0-6 sec blink);09h=2sec flowmeter test modeROTestTM equ 34h;BCD RO test time end(set Diff to default)FlTstCnt equ 31130d;950mS@32768kHz;------------------------------------------------------------------------------ORG 0F000h;Program Start
;-----------------------------------------------------------------------------RESETmov.w#280h,SP;Initialize stackpointerSetupWDT mov.w#WDT_ADLY_1000,&WDTCTL;WDT 1s interval timerbis.b#WDTIE,&IE1 ;Enable WDT interruptSetupCA mov.b#CAON+CAREF0+CARSEL,&CACTL1;Comp on,internal.25Vcc refmov.b#P2CA0+CAF,&CACTL2;+Comp=P2.3,-Comp=.25Vcc,filter onSetupTA mov.w#TASSEL0+TACLR,&TACTL;ACLK,clear TARSetupC0 mov.w#Count2,&CCR0;CCR0 counts to...(dec)SetupC1 mov.w#LEDcnt,&CCR1;CCR1 counts to...(dec)SetupP1 mov.b#ReedSW,&P1IE;P1 interrupts enabledbis.b#ReedSW,&P1IES;P1 edges select=high to lowmov.b#0F7h,&P1DIR ;All P1.x outputs,except P1.3 inputmov.b#007h,&P1OUT ;All P1.x reset,P1.0-P1.2 active lowSetupP2 mov.b#0E7h,&P2DIR;All P2.x outputs,except P2.3&P2.4mov.b#CAPD3+CAPD4,&CAPD;Disable CMOS input buffers for abovemov.b#018h,&P2SEL;Module(comp)function,not port for aboveclr.b&P2OUT;All P2.x resetClearRTC clr.w SEC;Clear SECclr.w HR ;Clear HRResetBuff mov #0000h,ChrCntmov #BufStrt.BuffIPclr ReedCnt;Clear flowmeter totalizeclr GALResetState mov #006h,NxtState;′first pass′state=Startclr Statemov.b#05h,F(xiàn)LAG;Clear Flag,set/LED_RO/LED_FLT bitsclr.b DiffCntclr.b Ptoggleclr.w TestFal;Clear R8,failed tests countermov.b #0Bh,&ToggleTo;loop through 11+1 port togglesmov.w#38d,&ONdelay;wait after port toggle(38d=50uS)clr.b FLT_cntmov.b#DiffMax,Diff;set RO difference count to default;bic.b#ReedSW,&P1IE;disable P1.3 interrupt-not measuring flow;′till starup(and possibly test) completeeint ;Enable interrupts;;-----------------------------------------------------------------------------; Mainloop=>State machine loop is evaluated once per second,else in LPM3(sleep);------------------------------------------------------------------------------;Mainloop bis #LPM3,SR;Set SR bits for LPM3;------Sleep-----cmp #002,State;evaluate state machine on wake-upjeq SkipMov ;don′t update PrvState if in flow statemov R4,PrvState;save R4=StateSkipMov mov NxtState,State;update state machinebr StateTbl(R4);branch to correct state;EVEN ;align on even addressStateTbl DW Idle ;Idle state=00DW Flowing;flow detected state=02DW TimerExp;time/flow exceeded state=04DW Start;blink LEDs on startup state=06DW Test ;production test state=08;
; Idle=>do nothing,go back and go to sleep.
;-----------------------------------------------------------------------------;Idle jmp Mainloop;Again;;----0-----------------------------------------------0---------------------------; Flowing=>Loop to toggle measurement drive pins and measure when pushed.
;------------------------------------------------------------------------------;Flowing bis.b#CAREF0,&CACTL1;Turn on int.reference voltagebis.b#CAON,&CACTL1 ;Turn on comparatorbis.b #SWpin,&FLAG;set ports toggled flagclr.b Ptoggle;Start toggle count loopclr.w AcumTot ;Clear R7,new testmov PrvState,NxtState ;Reset Next Statemov.w #TASSEL1+TACLR,&TACTL ;SMCLK,clear TARbic.w #CCIE+CCIFG,&CCTL1 ;CCR1 interrupt disable&clearbis.w #CCIE,&CCTL0;CCR0 interrupt enabledbis.w #MC0,&TACTL ;Start Timer_a in upmodebis.b #INpin,&P2OUT ;turn on IN pinbic.b #OUTpin,&P2OUT ;turn off OUT pin(ignore 1st toggle);mov #BufStrt,BuffIP;reset results buffermov #0000h,ChrCnt;;*************start main toggle loop;;(wait loop when ports haven′t switched yet)ToggleON bit #CCIE,&CCTL0;is timer done?*****LOOP1*****jz SamplEnd ;yup,go clean upbit.b #SWpin,&FLAG ;did the pin ports just toggle?jz ToggleON;nope,loop back*****LOOP1*****bit.b #OUTpin,&P2OUT ;Is the out pin high?jnz OutHIsmpl;yes,measure this sampleInHIsmpl bic.b#SWpin,&FLAG;clear ports toggled flag;no measuring in this case yetjmp ToggleON;loop back;OutHIsmpl bic.b#SWpin,&FLAG;clear ports toggled flagmov.w#4849h,R12;load result reg.with″HI″clr.w R15;load temp accum reg.with min value;bit #CCIE,&CCTL0;is timer done?jz SamplEnd;yup,go clean up;CompDly bit.b #CAOUT,&CACTL2;is comparator high?*****LOOP2******jz CompLo;nope,proceed w/measurementcmp.w#ONdelay,TAR ;wait for ONdelayjge TxResult;timed out,still high,go TX″HI″jmp CompDly ;*****LOOP2******;CompLomov.w#4C4Fh,R12 ;load result reg.with″LO″mov.w#Count2,R15;load temp accum reg.with max valuebic.b#CAIFG,&CACTL1 ;clear any lingering interrupt
bis.b#CAIE,&CACTL1 ;enable comparator interrupt,rising edgebis.w#CPUOFF+GIE,SR ;LPM0,CompA_ISR will foree exit;TxResult cmp.w#3FFFh,R12 ;is result text,or timer value?j1 TimerVal ;it is numeric timer value;swpb R12 ;it is text,outputthe2 char.
mov.b R12,R13and #00FFh,R13call #BufStuf;swpb R12mov.b R12,R13and #00FFh,R13call #BufStuf;jmp Newline ;skip ahead;TimerVal mov.w R12,R15;load temp accum reg.with resultcall #BCDcony ;result was numeric,convert it;Newline call #TxCRLF ;CR/LF after results;cmp.b #SkipP,Ptoggle ;accumulate*this*result?jn NoAddadd.w R15,R7 ;yup,add it to AcumTot(R7);NoAddbit #CCIE,&CCTL0 ;is timer done?jnz ToggleON;nope,go back.
;SamplEnd ;go to here if CCR0 interrupt enable is cleared(toggling loop done)mov.w #TASSEL0+TACLR,&TACTL ;ACLK,clear TARbic.b#INpin+OUTpin,&P2OUT ;turn off measurement pinscall #TxCRLF;one last CR/LF after test;; *******compute average for this sampling********;mov.w R7,R12;move the accumulated valueclrcrrc.w R12;unsigned divide by 2rra.w R12;div.by 2more;; *******25 different consecutive readings to change LED state********;cmp.w #FailCnt,R12;fail test?jn TestFail;yes,F(xiàn)ailCnt>avg result(R12)bit.b#LED_RO,F(xiàn)LAG ;no,Were we′ok′?jnz Continue ;yesjmp DiffRes ;no,new result is not the sameTestFail bit.b #LED_RO,F(xiàn)LAG;Were we′ok′?jz Continue ;same result.
DiffRes inc.b DiffCntcmp.b Diff,DiffCnt ;DiffCount>Diff?jn FinishUp ;nopexor.b #LED_OK+LED_RO,F(xiàn)LAG ;yes,toggle LED state.
Continue clr.b DiffCnt;reset,reading agreed with cur.stateFinishUp call #BCDconv ;convert and store avg result(scrambles R12)call#TxCRLF;add another CR/LFcall#TxCRLF;and add another CR/LF;; *******display correct LED*******;bit.b#LED_ELT,F(xiàn)LAGjnz next1bic.b#LED_FLT,&P1OUT;FLT led on,check RO,not OKbit.b#LED_RO,&FLAGjnz next3bic.b #LED_RO,&P 1OUT ;turn on RO ledjmp next3next1bit.b #LED_RO,F(xiàn)LAG ;FLT not on,so do RO or OKjz next2bic.b#LED_OK,&P1OUT;tum on RO ledjmp next3next2bic.b#LED_RO,&P 1OUT;turn on OK lednext3bic.w#CCIFG,&CCTL1;CCR1 interrupt disable&clearbis.w #CCIE,&CCTL1 ;CCR1 interrupt enabledbis.w #MC0,&TACTL;Start Timer_a in upmodebic.b#CAREF0,&CACTL1;Turn off int.reference voltagebic.b#CAON,&CACTL1;Turn off comparatorjmpMainloop;go back and go to sleep;;------------------------------------------------------------------------------; TimerExp=>Service interval timer has expired.
;------------------------------------------------------------------------------;TimerExp bic.b #LED_FLT,F(xiàn)LAG ;set LED_FLT maskcmp.b#00d,F(xiàn)LT_cntjeq Blink ;blink at 0 sec.
cmp.b#0 l d,F(xiàn)LT_cntjne SkpBlnk ;blink at 1 sec.
Blinkbic.b #LED_FLT,&P1OUT;FLT led on,check RO,not OKbic.w #CCIFG,&CCTL1;CCR1 interrupt disable&clearbis.w#CCIE,&CCTL1;CCR1 interrupt enabledbis.w #MC0,&TACTL;Start Timer_a in upmodeSkpBlnk inc.b FLT_cntcmp.b#FLTmax,F(xiàn)LT_cnt;roll over counter?jloMainloop;no,continue.
clr.b FLT_cnt ;yup,reset itjmp Mainloop ;go back and go to sleep;;-----------------------------------------------------------------------------;Start=>Flash the LEDs at startup.
;------------------------------------------------------------------------------;Startcmp #007h,SEC;real time clock SEC<6?jlo EvalSec;yes,go flash a LEDclr NxtState;no,go to Idle state
jmp Mainloop;go back to state machineEvalSec push.b(StTBL-1)(R14) ;(stTBL-1)+SEC-->stackclr.b 1(SP) ;0-->hi byteadd @SP+,PC ;add offset to PCStTBLDB F1_OK-StTBL ;offset to handler for SEC=1DB F1_FLT-StTBL ;offset for SEC=2DB F1_RO-StTBL ;offset for SEC=3DB F1_OK-StTBL ;offset for SEC=4DB F1_FLT-StTBL ;offset for SEC=5DB endF1_RO-StTBL ;offset for SEC=6;F1_OKbic.b#LED_OK,&P1OUT;Tum on OK LED(P1.1)jmp StartEnd;F1_FLT bic.b#LED_FLT,&P1OUT;Turn on FLT LED(P1.2)jmp StartEndFl_RObic.b#LED_RO,&P1OUT;Tum on RO LED (P1.0);StartEnd bis.w#CCIE,&CCTL1;CCR1 interrupt enabledbis.w#MC0,&TACTL ;Start Timer_a in upmodejmp Mainloop;endF1_RO bic.b#LED_RO,&P1OUT ;Tum on RO LED(P1.0)bis.w#CCIE,&CCTL1 ;CCR1 interrupt enabledbis.w#MC0,&TACTL;Start Timer_a in upmodeTestTst bit.b#ReedSW,&P1IN ;Reed switch closed?jzGoTest ;Yes,Test mode is nextcmp #007h,SEC;real time clock SEC=7?jne TestTst;nope,keep checkingbis.b#ReedSW,&P1IE ;yes,enable P1.3 Interruptbic.b#CAREF0,&CACTL1;Turn off int.reference voltagebic.b#CAON,&CACTL1;Turn off comparatorclr NxtState;go to Idle statejmp MainloopGoTest mov.b#DiffTst,Diff ;set RO difference count for test modemov #008h,NxtState ;go to Test statejmp Mainloop;;------------------------------------------------------------------------------;Test=>blink FLT_OK when reed switch is on for production test.
;-----------------------------------------------------------------------------;*loop whole second(s)Testcmp #(FlTestTM+1),SEC ;real time clock SEC in range?jlo WholSec;yes,go onclr NxtState ;no,go to Idle statejmp Mainloop ;go back to state machineWholSec bit.b#ReedSW,&P1IN;Reed switch closed?jnzLEDoff ;nope,go check loop statusbic.b#LED_FLT,&P1OUT;Turn on FLT LED(P1.2)jmp TstCmpLEDoff bis.b #LED_FLT,&P1OUT ;Turn off FLT LED(P1.2)TstCmp cmp #F1TestTM,SEC ;Test state time out yet?
jlo WholSec ;nope,keep looping.
;*loop fraction of a second,change state to idle just before sec.tic.
mov.w #F1TstCnt,&CCR1 ;set up CCR1 to trip before second ticmov.w #F1TstCnt,&CCR0 ;bis.w #CCIE,&CCTL1;CCR1 intenupt enabledbis.w#MC0,&TACTL;Start Timer_a in upmodeTest1bit.b#ReedSW,&P1IN ;Reed switch closed?jnz LEDoff1;nope,go check loop statusbic.b #LED_FLT,&P1OUT ;Turn on FLT LED(P1.2)jmp TstCmp1LEDoff1 bis.b #LED_FLT,&P1OUT ;Turn off FLT LED(P1.2)TstCmp1 cmp #02h,NxtState;Test state time out yet?jne Test1 ;nope,keep looping.
bis.b#LED_ELT,&P1OUT ;Turn offFLT LED(P1.2)mov.w#Count2,&CCR0 ;CCR0 counts to...(dec)mov.w#LEDcnt,&CCR1 ;CCR1 counts to...(dec)bic.w #CCIE+CCIFG,&CCTL0 ;CCR0 interrupt disable&clearbic.w #CCIE+CCIFG,&CCTL1 ;CCR1 interrupt disable&clearbis.b#ReedSW,&P1IE ;enable P1.3 Interruptbic.b#CAREF0,&CACTL1;Turn off int.reference voltagebic.b#CAON,&CACTL1;Turn off comparatorjmp Mainloop;;;----------------------------------------------------------------------------; BCDconv=>convert word(in R12)to 4 BCD characters; R13 working register; R6 result register;------------------------------------------------------------------------------;BCDconv rla R12 ;Convert the result(R12)rla R12 ;shift out unused high nibblerla R12rla R12mov #0Ch,Loop ;Loop counterclr ResultBCDloop rla R12 ;shift MSB into Carrydadd R6,Result ;add Result to itself,plus Carrydec Loopjnz BCDloopswpb Result ;grab highest char(thou)mov.b R6,R13 ;R6(Result) to R13 working registerand #00F0h,R13clrcrrc.b R13rrc.b R13rrc.b R13rrc.b R13add.b#30h,R13
call#BufStuf;put in buffermov.b R6,R13;grab next highest char(hund)from Resultand #000Fh,R13add.b#30h,R13call#BufStuf;put in bufferswpb Result ;grab next char(tens)mov.b R6,R13;R7(Result) to R13 working registerand #00F0h,R13clrcrrc.b R13rrc.b R13rrc.b R13rrc.b R13add.b#30h,R13call#BufStuf ;put in buffermov.b R6,R13 ;grab last char.(ones)from Resultand #000Fh,R13add.b#30h,R13call#BufStuf ;put in bufferret;;------------------------------------------------------------------------------;TxCRLF=>put CR/LF into test results buffer;-------------------------------------------------------------------------------;TxCRLFmov.b#0Dh,R13 ;TX->a CR charactercall#BufStuf ;put in buffer;mov.b#0Ah,R13;TX->a LF charactercall#BufStuf ;put in bufferret;;------------------------------------------------------------------------------;BufStuf=>put a char(in R13)into test results buffer;-----------------------------------------------------------------------------;BufStuf mov.b R13,0(R11);move char to bufferinc BuffIPcmp#BufEnd,BuffIP ;roll pointer?jn skiprollIPmov #BufStrt,BuffIP ;yup,reset to beginning of bufferskiprollIP inc.b ChrCntret;;--------------------------------------------------------------------------;WIDT_ISR=>Exit all LPMx modes,reti returns system active with GIE enabled;Update RTC value **SEC&HR are BCD,(9999 maximum)**;------------------------------------------------------------------------------;WDT_ISR mov.w#GIE,0(SP) ;System active on TOSsetcdadc SEC ;Increment seconds BCDcmp #ROTestTM,SEC ;RO(production)Test time out yet?jne HrTst
mov.b#DiffMax,Diff;set RO difference count to defaultHrTstcmp #3600h,SEC ;One hour elapsed?3600BCD sec/hrjlo ClockEnd ;No,go on.
clr SEC ;Yes,clear secondsclrcdadd.w#1,HR ;Increment hours BCDcmp.w#MaxTime,HR ;Exceeded service interval?jlo ClockEnd;no,continue on.
mov #004h,NxtState ;yes,go to TimerExp stateClockEnd reti ;;;------------------------------------------------------------------------------;P1_ISR=>Check for reed switch acutation,increment flowmeter,;go to flowing state.Check for maximium tot.flow.
;------------------------------------------------------------------------------;P1_ISR bit.b#ReedSW,&P1 IFG ;test if P1.3 actuatedjz ClrP1 ;no,jump to clear routinemov #002h,NxtState ;Next State=2,water flowing stateinc ReedCnt ;add to the flowmeter countcmp #CntGal,ReedCnt ;One gallon flowed?jnc ClrP1 ;No,go on.
clr ReedCnt ;Yes,clear registerinc.w GAL;Increment gallonscmp.w #MaxGal,GAL ;Exceeded total flow limit?jnc ClrP1 ;no,continue on.
mov #004h,NxtState ;yes,go to TimerExp stateClrP1clr.b &P1IFG;clear Port1 interrupts flags;in case of switch bouncebis.b#ReedSW,&P1 IE;enable P1.3 interruptreti;;----------------------------------------------------------------------------;TA0_ISR=> Toggle measurement pins P2.2,P2.5 and LED_FLT(P1.0);----------------------------------------------------------------------------TA0_ISR bic.b#CAIE+CAIFG,&CACTL1 ;CompA interrupt disable&clearmov.w #GIE,0(SP);Exit any LPMx on reticmp.b Ptoggle,ToggleTo ;are we there yet?jz StopTimer ;yes,stop the presses!inc.b Ptoggle ;and increment couhterxor.b#INpin+OUTpin,&P2OUT ;Toggle IN pin and OUT pinbis.b#SWpin,&FLAG ;just toggled,let the world knowreti;StopTimer bic.w#MC0,&TACTL;Stop Timer_Abic.w #CCIE+CCIFG,&CCTL0 ;CCR0 interrupt disable&clearreti;;----------------------------------------------------------------------------;TA12_ISR=>Turn off LEDs(P1.0,p1.1,P1.2);---------------------------------------------------------------------------TA12_ISR bic.w#CCIE+CCIFG,&CCTL1 ;CCR1 interrupt disable&clearbic.w#MC0,&TACTL ;Stop Timer_Abis.w#TACLR,&TACTL ;Clear TARbis.b#LED_RO+LED_OK+LED_FLT,&P1OUT;Tum off LEDs
cmp #008h,State;are we in test state?ine endTA12mov #002h,NxtState;Go to flowing for next stateclr Stateclr PrvState;and set′previous state′to idleendTA 12 reti;;------------------------------------------------------------------------------;CompA_ISR=>Comparator has tripped;-----------------------------------------------------------------------------;CompA_ISR mov.w TAR,R12 ;get resultmov.w #GIE,0(SP) ;Exit any LPMx on retibic.b#CAIE,&CACTL1 ;Disable compA interruptreti ;;;-----------------------------------------------------------------------------; Interrupt Vectors Used MSP430x11x1x;-----------------------------------------------------------------------------;RSEG INTVECDW RESET;no sourceDW RESET;no sourceDW P1_ISR ;I/O Port1DW RESET;I/O Port2DW RESET;no sourceDW RESET;no sourceDW RESET;no sourceDW RESET;no sourceDW TA12_ISR ;Timer_A,CCIFG1&2DW TA0_ISR ;Timer_A,CCIFG0DW WDT_ISR ;Watchdog Timer,timer modeDW CompA_ISR ;Comparator_ADW RESET;no sourceDW RESET;no sourceDW RESET;NMI,osc.fault,ACCVIFGDW RESET;POR,ext.reset,WatchdogEND
權(quán)利要求
1.一種流體處理系統(tǒng),其包括集水器,其包括入口通道和排出通道;流體處理介質(zhì),其可操作地連接到所述入口通道和所述排出通道之間;第一傳感器元件,其定位在所述入口通道中;第二傳感器元件,其定位在所述排出通道中;至少一個狀態(tài)指示器;以及控制單元,其電連接到至少一個狀態(tài)指示器,所述控制單元包括一微控制器,所述微控制器包括具有第一輸入端口、第二輸入端口和輸出端口的電壓比較器,其中,所述第一輸入端口與所述第一傳感器元件和所述第二傳感器元件電通信,而所述輸入端口與一基準(zhǔn)電壓電通信,并且其中所述出口端口處的信號關(guān)系到使用所述第一和第二傳感器元件所分別評估的流體的相對電導(dǎo)率。
2.如權(quán)利要求1所述的流體處理系統(tǒng),其中所述第一輸入端口與所述第一傳感器元件和所述第二傳感器元件的電連接引起所述電壓比較器來根據(jù)所述基準(zhǔn)電壓評估所述流體的相對電導(dǎo)率,所述基準(zhǔn)電壓用于確定良好抑制比率、差抑制比率和中間抑制比率范圍。
3.如權(quán)利要求2所述的流體處理系統(tǒng),其中所述控制單元還包括由所述比較器的輸出端口所控制的定時器,從而當(dāng)相對電導(dǎo)率在中間抑制比率范圍內(nèi)時提供高分辨率測量。
4.如權(quán)利要求3所述的流體處理系統(tǒng),其中所述中間抑制比率范圍對應(yīng)于針對所述流體處理介質(zhì)所選擇的通過/失敗抑制閾值。
5.如權(quán)利要求4所述的流體處理系統(tǒng),其中所述流體處理介質(zhì)包括反滲透過濾介質(zhì)并且所述通過/失敗抑制閾值對應(yīng)于針對過濾介質(zhì)的大約75%的抑制比率。
6.如權(quán)利要求1所述的流體處理系統(tǒng),其中所述流體處理介質(zhì)包括過濾介質(zhì)。
7.如權(quán)利要求1所述的流體處理系統(tǒng),其中所述流體處理介質(zhì)包括反滲透過濾介質(zhì)。
8.如權(quán)利要求1所述的流體處理系統(tǒng)還包括電源。
9.如權(quán)利要求1所述的流體處理系統(tǒng)還包括出口組件,該出口組件包括可操作地連接到所述排出通道的水龍頭。
10.如權(quán)利要求1所述的流體處理系統(tǒng)包括電源,并且所述至少一個狀態(tài)指示器包括三個狀態(tài)指示器,其中所述電源和所述三個狀態(tài)指示器與所述出口組件一起封裝。
11.如權(quán)利要求10所述的流體處理系統(tǒng),其中一個狀態(tài)指示器被配置來指示流量狀態(tài),另一個狀態(tài)指示器被配置來指示電源狀態(tài),而又一狀態(tài)指示器被配置來指示流體品質(zhì)。
12.一種流體處理系統(tǒng)的監(jiān)測方法,該監(jiān)測方法包括步驟用電流激勵布置在入口液流中的第一傳感器元件;用電流激勵布置在排出液流中的第二傳感器元件;測量所述第一傳感器元件和所述第二傳感器元件間的電壓;以及基于所述電壓輸出系統(tǒng)狀態(tài)指示器。
13.如權(quán)利要求12所述的監(jiān)測方法,其中液流通過所述入口液流和所述出口液流之間的反滲透過濾元件。
14.如權(quán)利要求12所述的監(jiān)測方法,其中用來激勵所述第一傳感器的電流和用來激勵所述第二傳感器的電流為交變電流。
15.如權(quán)利要求12所述的監(jiān)測方法,其中在激勵所述傳感器元件之前檢測液流。
16.如權(quán)利要求12所述的監(jiān)測方法,其中根據(jù)所述電壓確定所述入口液流和所述排出液流的相對電導(dǎo)率。
17.如權(quán)利要求16所述的監(jiān)測方法,其中根據(jù)所述相對電導(dǎo)率確定可溶劑固體總量減小百分比。
18.如權(quán)利要求12所述的監(jiān)測方法,其中使用微控制器相對于基準(zhǔn)電壓來評估所述電壓。
19.如權(quán)利要求18所述的監(jiān)測方法,其中使用非易失性存儲器來對所述微控制器進(jìn)行編程。
20.如權(quán)利要求12所述的監(jiān)測方法,其中指示器識別在所述排出流量中是否沒有獲得所期望的流體品質(zhì)值。
21.一種用于反滲透過濾系統(tǒng)的控制單元,該控制單元包括微控制器,其包括電壓比較器和至少一個輸出端口,所述電壓比較器具有第一比較器輸入端口、第二比較器輸入端口和比較器輸出,所述第一比較器輸入端口連接到基準(zhǔn)電壓;第一傳感器元件接口和第二傳感器元件接口,其串行電連接來生成通過兩個傳感器的電流,一個傳感器位于輸入流量通道,而第二傳感器位于排出流量通道,連接在所述第一傳感器元件接口和所述第二傳感器接口之間的電連接與所述第二比較器輸入端口相連接;遠(yuǎn)距離電壓接口,其電連接到所述微控制器;以及輸出接口,其電連接到所述微控制器的至少一個輸出端口,其中至少一個輸出端口處的電信號與所述比較器輸出處的信號有關(guān)。
全文摘要
本發(fā)明公開了一種用于供水分配器的反滲透水過濾系統(tǒng)。該系統(tǒng)可包括輸出組件、集水器(9)和控制單元。輸出組件可包括至少一個狀態(tài)指示器和電源,并且可適于安裝在供水分配器上。集水器(9)可包括限定了各種輸入和輸出通道以及流徑、過濾介質(zhì)和各種傳感器元件的集水器箱。集水器(9)可以遠(yuǎn)離出口組件安裝。例如,在住宅水過濾系統(tǒng)的一個實施例中,集水器可安裝在水槽或柜臺下,而出口組件安裝在水龍頭上??刂茊卧梢园ň哂袃?nèi)部比率測量比較器的微控制器(24),使得系統(tǒng)能根據(jù)入口和排出水流量之間的相對電導(dǎo)率來確定過濾介質(zhì)的有效性。
文檔編號G01R27/22GK101095048SQ200580045699
公開日2007年12月26日 申請日期2005年12月23日 優(yōu)先權(quán)日2004年12月30日
發(fā)明者蒂莫西·斯克維奧特 申請人:3M創(chuàng)新有限公司