一種多功能聯(lián)網(wǎng)型熱泵控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.2.1 輪詢法多任務(wù)調(diào)度
輪詢法多任務(wù)調(diào)度模仿了實(shí)時(shí)系統(tǒng)(Real-timeOperating System,RTOS)的原理。實(shí)時(shí)系統(tǒng)的特點(diǎn)是,如果邏輯和時(shí)序出現(xiàn)偏差,將會(huì)出現(xiàn)嚴(yán)重的后果,這一點(diǎn)與熱泵系統(tǒng)具有繁多任務(wù)的特點(diǎn)相符。輪詢法多任務(wù)調(diào)度的宗旨是使各個(gè)任務(wù)盡快地執(zhí)行,不要求限定某一任務(wù)在多長(zhǎng)時(shí)間內(nèi)完成。輪詢法多任務(wù)調(diào)度中,各個(gè)任務(wù)具有同樣的優(yōu)先級(jí)。允許一個(gè)任務(wù)優(yōu)先確認(rèn)一段時(shí)間,然后切換給另一個(gè)任務(wù)。其中,時(shí)間段的計(jì)時(shí)由軟定時(shí)器來實(shí)現(xiàn),具體實(shí)施方法如下。
在水箱控制器以及熱泵控制器中,包含多項(xiàng)子設(shè)備的控制。該系統(tǒng)針對(duì)每個(gè)獨(dú)立子設(shè)備的控制設(shè)計(jì)了專門的軟件控制模塊,工程應(yīng)用中可根據(jù)實(shí)際需要裁剪所需的模塊組合,如圖12所示。每個(gè)軟件功能模塊,都采用狀態(tài)機(jī)的方式,每次運(yùn)行至某一個(gè)模塊,如果該模塊的當(dāng)
前狀態(tài)未完成,則切換至另一個(gè)模塊,直到下次切換回該模塊,且當(dāng)前狀態(tài)完成,才進(jìn)入下一狀態(tài)繼續(xù)運(yùn)行。每個(gè)掛載在主程序中的功能模塊,等于是程序中的任務(wù),對(duì)于不同任務(wù)之間的管理與調(diào)度,關(guān)乎程序的執(zhí)行效率。程序中,考慮到任務(wù)切換的問題,所以給每個(gè)任務(wù)每一狀態(tài)分配的代碼執(zhí)行時(shí)間不長(zhǎng),任務(wù)內(nèi)部也并不需要進(jìn)行占用資源較大的運(yùn)算等操作。大多數(shù)時(shí)間任務(wù)處于延時(shí)等待狀態(tài),因此,當(dāng)某一任務(wù)進(jìn)入延時(shí)進(jìn)程中,控制程序就可以去查詢執(zhí)行其他的任務(wù),等延時(shí)完成再執(zhí)行該任務(wù)的處理程序即可。由此可以實(shí)現(xiàn)在短時(shí)間內(nèi)的任務(wù)循環(huán)切換。功能模塊內(nèi)部狀態(tài)機(jī)結(jié)構(gòu)如圖13所示。本文引用地址:http://butianyuan.cn/article/162187.htm
3.2.2 軟定時(shí)器算法的實(shí)現(xiàn)
在該系統(tǒng)中,延時(shí)也是系統(tǒng)輸出的一個(gè)重要部分。但是在傳統(tǒng)的延時(shí)算法里面,大多是讓CPU執(zhí)行空語(yǔ)句,這樣非常浪費(fèi)系統(tǒng)資源。這里采用單循環(huán)隊(duì)列定時(shí)器算法。理論上可以把一個(gè)定時(shí)器擴(kuò)展成任意多個(gè)定時(shí)器,以滿足系統(tǒng)需求。
單循環(huán)隊(duì)列計(jì)時(shí)原理如下:
可以通過聲明一個(gè)具有n個(gè)元素的數(shù)組來拓展得到n個(gè)軟件定時(shí)器。同時(shí),定義一個(gè)指向數(shù)組元素的循環(huán)計(jì)時(shí)隊(duì)列指針。每當(dāng)定時(shí)中斷發(fā)生時(shí),循環(huán)計(jì)時(shí)隊(duì)列指針?biāo)赶虻亩〞r(shí)器元素減1,并且移向下一個(gè)元素。當(dāng)某個(gè)元素(軟件定時(shí)器)的值減到0時(shí),置位與該元素相應(yīng)的定時(shí)器標(biāo)志位,以便在程序中查詢定時(shí)時(shí)間是否已到。當(dāng)然,也可以在程序中通過查詢?cè)摂?shù)組元素是否為0來確定。由上可見定時(shí)器的定時(shí)時(shí)間計(jì)算如下:
定時(shí)時(shí)間=中斷時(shí)間間隔×定時(shí)器元素?cái)?shù)量
一個(gè)軟件定時(shí)器的簡(jiǎn)單例子如圖14所示。
該系統(tǒng)所采用的這種單循環(huán)隊(duì)列定時(shí)器算法,實(shí)現(xiàn)簡(jiǎn)單,而且每個(gè)計(jì)時(shí)周期只需進(jìn)行一次減法操作,突破了硬件定時(shí)器中的數(shù)量限制。從系統(tǒng)資源占用的角度來看,是最有效的定時(shí)器算法。
4 系統(tǒng)抗干擾措施
在該系統(tǒng)中,壓縮機(jī)、水泵、外風(fēng)機(jī)等都是大功率強(qiáng)電設(shè)備,而且距離控制器比較近,這就使得控制板工作在一個(gè)比較惡劣的電磁環(huán)境中;另外,各控制器一般都是安裝在戶外環(huán)境,容易受到環(huán)境因素的影響,一個(gè)突出的影響來自雷電。因此,增強(qiáng)控制板的抗干擾能力是提高系統(tǒng)穩(wěn)定性的重要途徑。
為此,該系統(tǒng)采用了隔離技術(shù),即CPU通過繼電器隔離控制交流接觸器;而水箱控制板,熱泵控制板分別具有3個(gè)電平區(qū)域,包括單片機(jī)電平區(qū)(5 V)、通信電平區(qū)(5 V)、繼電器控制電平區(qū)(24 V),它們之間均設(shè)置了光耦進(jìn)行隔離。
另外,該系統(tǒng)中采用了多種保護(hù)器件,包括自恢復(fù)保險(xiǎn)絲PPTC、瞬變電壓抑制器TVS和壓敏電阻MOV。
在RS 485通信模塊中,采用TI公司的75LBC184。該芯片與普通的RS 485收發(fā)器相比的顯著特點(diǎn)是片內(nèi)A、B引腳接有高能量順變干擾保護(hù)裝置,可以承受峰值為400 W的過壓順變,因此能顯著提高器件的可靠性。其驅(qū)動(dòng)器設(shè)計(jì)成限斜率方式輸出,使輸出信號(hào)邊沿不會(huì)過陡,有效的抑制傳輸線上的噪聲高頻分量。而且該芯片能承受高達(dá)8 kV的靜電放電沖擊,具有一定的防雷能力。對(duì)一些環(huán)境比較惡劣的現(xiàn)場(chǎng),可直接與傳輸線相接而不需要任何外加保護(hù)元件。而CAN總線自身抗電磁干擾性高,傳輸距離遠(yuǎn)和可靠的錯(cuò)誤處理和檢測(cè)機(jī)制,也加強(qiáng)了系統(tǒng)通訊的可靠性。該系統(tǒng)采用自帶CAN總線控制模塊的dspic30F5011,以及PCA82C250作為CAN收發(fā)器。
5 結(jié)語(yǔ)
基本完成了整個(gè)熱泵空調(diào)控制系統(tǒng)的硬件和軟件的實(shí)現(xiàn)。通過RS 485或CAN通信實(shí)現(xiàn)了遠(yuǎn)距離的通信控制,做到真正的大規(guī)模聯(lián)網(wǎng)。對(duì)機(jī)組外部環(huán)境的多種因素進(jìn)行探測(cè),設(shè)計(jì)出一套根據(jù)實(shí)際情況進(jìn)行模式轉(zhuǎn)換,關(guān)機(jī)報(bào)警等動(dòng)作的可靠系統(tǒng)。輪詢法多任務(wù)調(diào)度以及軟件定時(shí)器的引入提高了系統(tǒng)效率,突破了中央處理器的硬件局限。多種抗干擾措施更增強(qiáng)了系統(tǒng)對(duì)惡劣外部環(huán)境的適應(yīng)能力。
評(píng)論