王 勤,李顯彤
(哈爾濱電機(jī)廠有限責(zé)任公司,哈爾濱150040)
在電力系統(tǒng)的運(yùn)行中,同步發(fā)電機(jī)的勵(lì)磁系統(tǒng)起維持發(fā)電機(jī)或系統(tǒng)的電壓水平、合理分配發(fā)電機(jī)間的無(wú)功負(fù)荷、提高電力系統(tǒng)的靜態(tài)穩(wěn)定性和動(dòng)態(tài)穩(wěn)定性的作用[1]。目前,國(guó)內(nèi)運(yùn)行的發(fā)電機(jī)勵(lì)磁調(diào)節(jié)器的軟件平臺(tái)一直采用單任務(wù)操作系統(tǒng)。對(duì)于外設(shè)控制終端少、任務(wù)單一的應(yīng)用程序,可以采取一個(gè)定時(shí)主循環(huán)和其他順序調(diào)用的子程序模塊方案[2]。但是隨著勵(lì)磁系統(tǒng)控制軟件功能日益繁多和要求實(shí)時(shí)響應(yīng)的任務(wù)增多,對(duì)主循環(huán)控制周期要求更精確,單任務(wù)系統(tǒng)的軟件方案可能會(huì)造成控制主循環(huán)的延時(shí)未響應(yīng)和多子程序模塊之間的資源分配及動(dòng)態(tài)調(diào)整不當(dāng),從而引起死機(jī)重啟。本文結(jié)合勵(lì)磁調(diào)節(jié)器的實(shí)際運(yùn)行特點(diǎn)和軟件功能要求,分析實(shí)時(shí)多任務(wù)操作系統(tǒng)在其軟件運(yùn)行中的應(yīng)用,實(shí)現(xiàn)調(diào)節(jié)器可靠的多任務(wù)實(shí)時(shí)響應(yīng)。
實(shí)時(shí)多任務(wù)操作系統(tǒng)是指能夠及時(shí)響應(yīng)外部事件的請(qǐng)求,在規(guī)定的嚴(yán)格時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)設(shè)備和實(shí)時(shí)任務(wù)協(xié)調(diào)一致工作的操作系統(tǒng),其主要特點(diǎn)為對(duì)多任務(wù)的并行處理和對(duì)事件響應(yīng)時(shí)間的確定[3]。
多任務(wù)并行處理體現(xiàn)在系統(tǒng)的多線程并行處理技術(shù)。針對(duì)每一個(gè)任務(wù)或子程序都設(shè)置一定的優(yōu)先級(jí),占有各自的CPU寄存器和??臻g。這樣,每個(gè)子程序變形成一個(gè)單獨(dú)的工作循環(huán),有不同的運(yùn)行狀態(tài)[4]。
事件響應(yīng)確定性的主要性能特征為本身時(shí)間的精確性、循環(huán)周期及理論值和實(shí)際運(yùn)行循環(huán)周期的差別。實(shí)時(shí)系統(tǒng)的時(shí)間確定性保證了重要任務(wù)的實(shí)際執(zhí)行周期控制在每個(gè)抖動(dòng)時(shí)間的誤差之內(nèi)。
傳統(tǒng)的控制程序是線性程序,直觀,易于理解;程序的流向固定,缺乏靈活性,難以運(yùn)用在復(fù)雜系統(tǒng)中。在單任務(wù)系統(tǒng)中,運(yùn)行勵(lì)磁調(diào)節(jié)器軟件中的各功能模塊按順序執(zhí)行,有時(shí)為了保證可靠性,在程序中運(yùn)用大量的延時(shí)循環(huán)等待語(yǔ)句[5]。但是不同功能模塊對(duì)運(yùn)行速率要求不同,對(duì)實(shí)際的反應(yīng)時(shí)間要求也不同,如此浪費(fèi)了很多CPU的資源和時(shí)間。
勵(lì)磁系統(tǒng)調(diào)節(jié)器是雙機(jī)冗余,互為主備。軟件功能包括系統(tǒng)初始化、輸入信號(hào)處理部分、調(diào)節(jié)控制部分和通信部分。輸入信號(hào)處理部分包括模擬量采集處理、數(shù)字量輸入輸出;調(diào)節(jié)控制部分是調(diào)節(jié)器的核心,不但要完成電壓調(diào)節(jié)、電流調(diào)節(jié)、恒無(wú)功調(diào)節(jié)等方式的要求,而且要完成大量的報(bào)警、限制功能和數(shù)據(jù)記錄存儲(chǔ)功能;通信系統(tǒng)包括雙機(jī)之間的通信與跟蹤,雙機(jī)分別與人機(jī)交互系統(tǒng)之間的通信,以及雙機(jī)和勵(lì)磁系統(tǒng)外部設(shè)備之間的通信。整個(gè)調(diào)節(jié)器控制程序是一個(gè)完整的定時(shí)循環(huán),按照常規(guī)的機(jī)組運(yùn)行狀態(tài)逐步運(yùn)行,檢查判斷項(xiàng)跳轉(zhuǎn),但是不可以越步驟執(zhí)行[6]。也就是說(shuō),當(dāng)后面的判斷條件更改時(shí),需要逐步執(zhí)行到此判斷條件的語(yǔ)句才可以生效。在勵(lì)磁系統(tǒng)運(yùn)行中這是應(yīng)該避免的,尤其是對(duì)故障或停機(jī)信號(hào)的響應(yīng)。另外,為保證勵(lì)磁系統(tǒng)的運(yùn)行可靠性,對(duì)外部輸入信號(hào)的檢測(cè)需要延時(shí)準(zhǔn)確判斷,這又是對(duì)CPU資源的一種浪費(fèi)。
在實(shí)時(shí)多任務(wù)系統(tǒng)中,程序的編寫(xiě)比較靈活,分成各自獨(dú)立的任務(wù),每個(gè)任務(wù)可獨(dú)立編寫(xiě),分配總資源,根據(jù)重要程度設(shè)置時(shí)間確定任務(wù)和優(yōu)先級(jí)???cè)蝿?wù)負(fù)責(zé)調(diào)度,執(zhí)行順序比較靈活[7],不必在分任務(wù)中浪費(fèi)CPU循環(huán)等待。程序的流向按照總調(diào)度的數(shù)據(jù)方向,根據(jù)設(shè)備的實(shí)際運(yùn)行狀態(tài)相應(yīng)調(diào)整,子程序不存在固定先后順序的問(wèn)題。如有要求,程序的升級(jí)擴(kuò)充相對(duì)比較簡(jiǎn)單,只需更改相關(guān)的獨(dú)立模塊,不用去全面更改源程序的整體結(jié)構(gòu)。實(shí)際勵(lì)磁設(shè)備運(yùn)行中程序的調(diào)試也相對(duì)比較容易實(shí)現(xiàn)。實(shí)時(shí)多任務(wù)系統(tǒng)下勵(lì)磁調(diào)節(jié)器的軟件結(jié)構(gòu)如圖1所示。
整體上按照設(shè)備的功能分為變量定義與映射、數(shù)據(jù)處理、與勵(lì)磁外設(shè)間通信、調(diào)節(jié)、限制保護(hù)報(bào)警五大部分,每部分有數(shù)個(gè)子任務(wù)。子程序按照獨(dú)立功能單獨(dú)編寫(xiě),總程序負(fù)責(zé)根據(jù)勵(lì)磁調(diào)節(jié)器的實(shí)際工況,按照規(guī)律調(diào)用子程序。在調(diào)節(jié)器控制循環(huán)的同時(shí),各種限制、保護(hù)、報(bào)警等任務(wù)也在運(yùn)行,出現(xiàn)異常可以及時(shí)響應(yīng)。數(shù)據(jù)記錄在勵(lì)磁設(shè)備的運(yùn)行中是十分重要的,可以并行于調(diào)控程序,而不必等待程序輪詢,這樣保證了運(yùn)行和試驗(yàn)的真實(shí)數(shù)據(jù)存檔。
圖1 實(shí)時(shí)多任務(wù)系統(tǒng)下勵(lì)磁調(diào)節(jié)器的軟件結(jié)構(gòu)示意框圖
使用實(shí)時(shí)多任務(wù)系統(tǒng)來(lái)編制調(diào)節(jié)器軟件時(shí),采用多任務(wù)并行處理的技術(shù),需實(shí)現(xiàn)如下幾個(gè)重要功能。
1)時(shí)間確定性的實(shí)現(xiàn)。勵(lì)磁調(diào)節(jié)器功能繁多、相互影響,時(shí)間確定性的任務(wù)應(yīng)該是勵(lì)磁設(shè)備實(shí)時(shí)性要求最關(guān)鍵的任務(wù)。在具體的勵(lì)磁調(diào)節(jié)器軟件設(shè)計(jì)中,三相電壓電流模擬信號(hào)的同步采樣處理、控制角計(jì)算、觸發(fā)脈沖的形成是要求時(shí)間確定性的[8]。模擬信號(hào)的采集處理,數(shù)字信號(hào)的輸入,與外設(shè)之間通信信號(hào)優(yōu)先級(jí)次之;數(shù)字信號(hào)的輸出,數(shù)據(jù)存儲(chǔ)等較低優(yōu)先級(jí)。這只是大致分類,具體每一個(gè)子任務(wù)雖然屬于一類模塊,但是優(yōu)先級(jí)也不同。例如,數(shù)字信號(hào)的輸入輸出,根據(jù)不同的信號(hào)要?jiǎng)澐植煌捻憫?yīng)優(yōu)先級(jí)。
2)存儲(chǔ)映射的實(shí)現(xiàn)。勵(lì)磁調(diào)節(jié)器雙機(jī)主備,這就要求雙機(jī)的實(shí)時(shí)通信以及雙機(jī)與人機(jī)界面的信息交互,采用共享變量映射實(shí)現(xiàn)通訊功能,節(jié)省了硬件資源,提高了速率。再加上為了調(diào)試方便,各種狀態(tài)下要讀取狀態(tài)變量的值,這就要求軟件編制中將所有的物理量、計(jì)算量和中間變量定義出相應(yīng)的機(jī)組數(shù)據(jù)庫(kù)。
實(shí)時(shí)多任務(wù)系統(tǒng)下編程分任務(wù)模塊編程,也可分模塊單獨(dú)測(cè)試。調(diào)節(jié)器程序中關(guān)鍵控制環(huán)節(jié)設(shè)置為時(shí)間確定性任務(wù),可嚴(yán)格保證要求的時(shí)間精準(zhǔn)性,其它多任務(wù)如通信、報(bào)警等并行運(yùn)行,在系統(tǒng)資源分配合理的情況下,無(wú)程序中斷及延時(shí)等待。
本文根據(jù)實(shí)時(shí)多任務(wù)系統(tǒng)的特點(diǎn)和勵(lì)磁調(diào)節(jié)器的功能要求,分析了在勵(lì)磁調(diào)節(jié)器程序編制中的多任務(wù)并行的必要性,并且可保證重要控制程序的時(shí)間確定性。給出實(shí)時(shí)多任務(wù)系統(tǒng)中勵(lì)磁調(diào)節(jié)器軟件的設(shè)計(jì)框架和編制方法。經(jīng)過(guò)實(shí)踐測(cè)試及分析,實(shí)時(shí)多任務(wù)系統(tǒng)中勵(lì)磁調(diào)節(jié)器軟件可以實(shí)現(xiàn)精準(zhǔn)控制調(diào)節(jié)周期等功能,實(shí)現(xiàn)調(diào)節(jié)器可靠的多任務(wù)實(shí)時(shí)響應(yīng),較好地解決任務(wù)響應(yīng)延遲、輸入信號(hào)需等待處理等問(wèn)題。同時(shí),在實(shí)際的框架搭建和編程中,由于任務(wù)劃分和總程序調(diào)度還有很大的難度和較大的優(yōu)化空間,因此需要進(jìn)一步的試驗(yàn)和完善。
[1]楊開(kāi)黎,石雨濤,劉軼男,等.大型靜止勵(lì)磁系統(tǒng)在非常規(guī)機(jī)組上的應(yīng)用[J].黑龍江電力,2012,34(4):316 -318.
[2]李基成.現(xiàn)代同步發(fā)電機(jī)勵(lì)磁系統(tǒng)設(shè)計(jì)及應(yīng)用[M].北京:中國(guó)電力出版社,2009:473.
[3]張旭.基于ARM的勵(lì)磁控制器數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].黑龍江電力,2012,34(2):106 -109.
[4]謝博,王德意,楊漢如,等.基于 TMS320F2812的同步發(fā)電機(jī)勵(lì)磁系統(tǒng)交流采樣技術(shù)[J].大電機(jī)技術(shù),2005(3):19-22.
[5]吳二濤.汽輪發(fā)電機(jī)自并勵(lì)勵(lì)磁系統(tǒng)的設(shè)計(jì)及運(yùn)行[J].湖北電力,2008(6):30-31.
[6]謝丹.靜止自并勵(lì)勵(lì)磁系統(tǒng)的設(shè)計(jì)方案的探討[J].電力建設(shè),2003(12):32-34.
[7]尹耕欽.微機(jī)勵(lì)磁系統(tǒng)在水電站中的應(yīng)用[J].自動(dòng)化技術(shù)與應(yīng)用,2009(12):103 -105.
[8]曾海波,黎雄.實(shí)時(shí)多任務(wù)內(nèi)核在電力系統(tǒng)勵(lì)磁調(diào)節(jié)器中的應(yīng)用[J].電力自動(dòng)化設(shè)備,2002(8):35-38.