《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > IPC配電測(cè)控實(shí)驗(yàn)臺(tái)多任務(wù)實(shí)時(shí)調(diào)度系統(tǒng)的設(shè)計(jì)
IPC配電測(cè)控實(shí)驗(yàn)臺(tái)多任務(wù)實(shí)時(shí)調(diào)度系統(tǒng)的設(shè)計(jì)
謝 輝, 陳立萬
(重慶三峽學(xué)院 應(yīng)用技術(shù)學(xué)院, 重慶 萬州 404000)
摘要: 針對(duì)目前高校測(cè)控實(shí)驗(yàn)儀功能單一,對(duì)測(cè)控系統(tǒng)的可靠性、實(shí)時(shí)性等不能很好地模擬等問題,研究和設(shè)計(jì)了一套配電測(cè)控模擬實(shí)驗(yàn)臺(tái),由上下位機(jī)系統(tǒng)構(gòu)成。下位機(jī)以工控機(jī)為核心,配裝簡化的多任務(wù)實(shí)時(shí)操作系統(tǒng),能夠?qū)?6路開關(guān)量、64路模擬量及多個(gè)鍵盤任務(wù)進(jìn)行實(shí)時(shí)檢測(cè)和控制,并能夠和上位機(jī)進(jìn)行定時(shí)通信,將收集數(shù)據(jù)及時(shí)傳送給上位機(jī),進(jìn)行匯總、分析和報(bào)表打印等。重點(diǎn)分析了下位機(jī)的實(shí)時(shí)多任務(wù)之間的關(guān)系,調(diào)度過程原理及簡化的多任務(wù)實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)。
Abstract:
Key words :

摘  要: 針對(duì)目前高校測(cè)控實(shí)驗(yàn)儀功能單一,對(duì)測(cè)控系統(tǒng)的可靠性、實(shí)時(shí)性等不能很好地模擬等問題,研究和設(shè)計(jì)了一套配電測(cè)控模擬實(shí)驗(yàn)臺(tái),由上下位機(jī)系統(tǒng)構(gòu)成。下位機(jī)以工控機(jī)為核心,配裝簡化的多任務(wù)實(shí)時(shí)操作系統(tǒng),能夠?qū)?6路開關(guān)量、64路模擬量及多個(gè)鍵盤任務(wù)進(jìn)行實(shí)時(shí)檢測(cè)和控制,并能夠和上位機(jī)進(jìn)行定時(shí)通信,將收集數(shù)據(jù)及時(shí)傳送給上位機(jī),進(jìn)行匯總、分析和報(bào)表打印等。重點(diǎn)分析了下位機(jī)的實(shí)時(shí)多任務(wù)之間的關(guān)系,調(diào)度過程原理及簡化的多任務(wù)實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)。
關(guān)鍵詞: 配電測(cè)控實(shí)驗(yàn)臺(tái); 下位機(jī)系統(tǒng); 多任務(wù)實(shí)時(shí)操作系統(tǒng)

      目前,配電網(wǎng)絡(luò)自動(dòng)化和工業(yè)測(cè)控技術(shù)發(fā)展迅速,對(duì)系統(tǒng)的實(shí)時(shí)性、可靠性和多功能性要求也越來越高。而高校測(cè)控專業(yè)實(shí)驗(yàn)設(shè)備模塊單一、功能簡單,遠(yuǎn)遠(yuǎn)落后于現(xiàn)代控制技術(shù)的發(fā)展。針對(duì)高校測(cè)控專業(yè)實(shí)際需求,研究和設(shè)計(jì)了一套分布式IPC(Industrial Personal Computer)工業(yè)配電測(cè)控系統(tǒng),由1臺(tái)上位機(jī)和8臺(tái)下位機(jī)構(gòu)成。各下位機(jī)能夠根據(jù)需要對(duì)多路模擬量(如電壓、電流、功率因素、有功功率、無功功率等)、開關(guān)量(如各出線開關(guān)分合閘狀態(tài)、補(bǔ)償電容器的狀態(tài)等)進(jìn)行檢測(cè)和控制。上位機(jī)可以發(fā)出指令和任何一臺(tái)與之相連的下位機(jī)進(jìn)行通信,收集各下位機(jī)傳送來的模擬量和開關(guān)量信息,進(jìn)行相關(guān)的分析、匯總、報(bào)表生成等處理,并對(duì)各下位機(jī)子系統(tǒng)進(jìn)行監(jiān)控和宏觀調(diào)度[1]。多任務(wù)調(diào)度管理是系統(tǒng)設(shè)計(jì)的重點(diǎn)和難點(diǎn),本文將重點(diǎn)敘述其調(diào)度管理過程[2]。
1 下位機(jī)系統(tǒng)功能概述
   下位機(jī)主要模擬配電測(cè)控系統(tǒng)運(yùn)行,可實(shí)現(xiàn)多路模擬量、開關(guān)量的采集、存儲(chǔ)、顯示以及與上位機(jī)的通信。同時(shí),為了豐富以后實(shí)驗(yàn)系統(tǒng)的教學(xué)和實(shí)驗(yàn)內(nèi)容,還特意增加了2個(gè)具有典型代表性的工業(yè)控制環(huán)節(jié):直流電動(dòng)機(jī)子系統(tǒng)的控制和模擬的溫度測(cè)控子系統(tǒng)(即步進(jìn)電機(jī)控制系統(tǒng))。因此,下位機(jī)是一個(gè)較為復(fù)雜的測(cè)控子系統(tǒng),普通的單片機(jī)功能簡單,很難勝任,為此選用了控制功能強(qiáng)大的研華IPC-610工業(yè)控制計(jì)算機(jī),配裝了2塊PC-6313多功能模入/模出板卡[3]。每塊PC-6313板卡有24路開入/開出、32路單端模擬量輸入/16路雙端輸入、3個(gè)定時(shí)器/計(jì)數(shù)器、2路模擬量輸出,結(jié)構(gòu)緊湊、功能齊全,性價(jià)比高,配接相應(yīng)的傳感器和執(zhí)行機(jī)構(gòu)即可完成所有的功能,下位機(jī)系統(tǒng)框圖如圖1所示。IPC-610底板可擴(kuò)展性強(qiáng),有近20個(gè)ISA插槽和PCI插槽,可隨時(shí)方便系統(tǒng)的升級(jí)。


     工業(yè)測(cè)控系統(tǒng)最重要的是穩(wěn)定性,DOS系統(tǒng)比Windows系統(tǒng)穩(wěn)定性強(qiáng)且占用內(nèi)存小,非常適應(yīng)工業(yè)系統(tǒng)需要。為此,本系統(tǒng)采用DOS操作系統(tǒng),編程語言采用C語言。下位機(jī)模擬的是配電測(cè)控系統(tǒng)運(yùn)行,有多道任務(wù)程序,同時(shí)要求運(yùn)行速度快、穩(wěn)定性強(qiáng),是一個(gè)復(fù)雜的多任務(wù)實(shí)時(shí)系統(tǒng)。多任務(wù)實(shí)時(shí)調(diào)度過程的分析和設(shè)計(jì)是下位機(jī)系統(tǒng)運(yùn)行的關(guān)鍵。
2 下位機(jī)系統(tǒng)實(shí)時(shí)多任務(wù)調(diào)度過程分析和設(shè)計(jì)
2.1 任務(wù)及其占用資源的關(guān)系

     下位機(jī)配電測(cè)控系統(tǒng),共有19個(gè)任務(wù)程序和1個(gè)簡化的、初級(jí)的多任務(wù)實(shí)時(shí)操作系統(tǒng)MROS,構(gòu)成了一個(gè)多任務(wù)實(shí)時(shí)測(cè)控系統(tǒng)[4]。各個(gè)任務(wù)程序的名稱及其功能如下:
     task_0 ( ):0點(diǎn)制表任務(wù)程序。
   task_4 ( ):4點(diǎn)制表任務(wù)程序。
   task_8 ( ):8點(diǎn)制表任務(wù)程序。
   task_12 ( ):12點(diǎn)制表任務(wù)程序。
   task_16 ( ):16點(diǎn)制表任務(wù)程序。
   task_20 ( ):20點(diǎn)制表任務(wù)程序。
   getad ( ):每2 s采集模擬量任務(wù)程序。
   task_s ( ):每2 ms采集開關(guān)量任務(wù)程序。
   stepping( ):每500 ms采集溫度測(cè)控子系統(tǒng)的溫度值,根據(jù)溫度偏差,控制步進(jìn)電動(dòng)機(jī)正/反轉(zhuǎn)。
   motor( ):每250 ms采集1次直流電動(dòng)機(jī)的轉(zhuǎn)速,控制直流電動(dòng)機(jī)按設(shè)定值運(yùn)行。
   pmotor( ):根據(jù)直流電動(dòng)機(jī)的轉(zhuǎn)速,繪制直流電動(dòng)機(jī)的動(dòng)態(tài)運(yùn)行曲線。
   mnxs( ):在屏幕上排列顯示各個(gè)模擬量的當(dāng)前值。
   kgxs( ):在屏幕上排列顯示各個(gè)開關(guān)量的當(dāng)前值。
   Subdl( ):在屏幕上繪制工廠配電系統(tǒng)的電氣主接線圖。
   Kg( ):把采集的開關(guān)量填入電站的電氣主接線圖中,完成開關(guān)量在圖中的動(dòng)態(tài)顯示。
   tad( ):把采集的模擬量填入電站的電氣主接線圖中,完成模擬量在圖中的動(dòng)態(tài)顯示。
   Stepmotor( ):步進(jìn)電動(dòng)機(jī)升降速全過程控制,動(dòng)態(tài)繪制升降速全過程。
   Slaver( ):從機(jī)和主機(jī)的通信任務(wù)。將本機(jī)的64路模擬量和16路開關(guān)量以及溫度測(cè)控子系統(tǒng)的數(shù)據(jù)上傳給上位機(jī)進(jìn)行顯示。
     Subtime( ):北京時(shí)間動(dòng)態(tài)顯示。屏幕上各個(gè)畫面正上方中均有北京時(shí)間。
   quit( ):退出運(yùn)行處理,返回C集成開發(fā)環(huán)境。
   19個(gè)任務(wù)要求占用硬件資源的關(guān)系十分復(fù)雜,表述如下:所有任務(wù)均要求占用CPU,而CPU只有1個(gè);不同的任務(wù)要求占用不同的外設(shè)資源(例如對(duì)板卡的占用),多個(gè)任務(wù)可能要求占用同一外設(shè)(例如對(duì)CRT、打印機(jī)的占用);各任務(wù)之間存在橫向聯(lián)系;多個(gè)任務(wù)在宏觀上的并發(fā)操作;多任務(wù)實(shí)時(shí)操作系統(tǒng)MROS的主要功能就是協(xié)調(diào)以上各種關(guān)系,有效地管理分配各種資源[4]。
   可以把MROS形象地比喻成一條“軟件總線”,各個(gè)任務(wù)程序“掛”在上面,形成一個(gè)“管控一體化運(yùn)行軟件”。
2.2 多任務(wù)實(shí)時(shí)操作系統(tǒng)的簡化
   標(biāo)準(zhǔn)的MROS一般包括CPU管理、外設(shè)管理、中斷管理、存儲(chǔ)器管理和文件管理等[5],占用內(nèi)存空間較大,CPU的運(yùn)行速度較慢。下位機(jī)測(cè)控系統(tǒng)具有如下特點(diǎn):
   (1)對(duì)各量的監(jiān)測(cè)和控制,實(shí)際上是周期性地重復(fù)執(zhí)行各任務(wù)程序。
   (2)人機(jī)聯(lián)系任務(wù)雖然是隨機(jī)的,但任務(wù)的內(nèi)容是固定的,操作人員只是通過鍵盤調(diào)用一些編制就緒的程序而不修改程序本身。
   (3)監(jiān)測(cè)對(duì)象固定,主機(jī)和外設(shè)規(guī)模也是固定不變的。
   對(duì)于這樣一個(gè)系統(tǒng),若采用標(biāo)準(zhǔn)的MROS,將占用較多內(nèi)存空間和CPU的運(yùn)行時(shí)間,降低系統(tǒng)資源的利用率和系統(tǒng)的實(shí)時(shí)性。因此,本系統(tǒng)采用了一種與硬件資源和測(cè)控對(duì)象相適應(yīng)的簡化的、初級(jí)的MROS,保留了標(biāo)準(zhǔn)MROS的核心功能。即CPU管理、外設(shè)管理和中斷管理,其主要工作如下:
     (1)任務(wù)調(diào)度
   任務(wù)調(diào)度的主要職能,一是根據(jù)任務(wù)調(diào)度算法分配CPU,即實(shí)現(xiàn)某個(gè)時(shí)間或事件驅(qū)動(dòng)的任務(wù)切換;二是從任務(wù)收回CPU。
   按照任務(wù)的優(yōu)先級(jí)是否可以動(dòng)態(tài)地改變,調(diào)度算法可以分為:靜態(tài)調(diào)度和動(dòng)態(tài)調(diào)度。
   按照調(diào)度過程是否允許采用搶先方式,調(diào)度算法可以分為:搶先調(diào)度方式和非搶先調(diào)度方式。非搶先調(diào)度方式在滿足高優(yōu)先級(jí)別任務(wù)的時(shí)限方面比搶先調(diào)度方式要差一些,但是它實(shí)現(xiàn)起來簡單,時(shí)間確定性好,并且避免了因?yàn)橘Y源共享而引起的互斥,實(shí)際應(yīng)用較廣。
   本系統(tǒng)設(shè)計(jì)時(shí),按照多任務(wù)實(shí)時(shí)操作的基本原則來編寫任務(wù)程序,通過硬件配合,可使每個(gè)任務(wù)都在幾十個(gè)微秒內(nèi)完成。因此,可采用靜態(tài)調(diào)度方式設(shè)計(jì)圖1所示的IPC系統(tǒng)。但某些任務(wù)的優(yōu)先級(jí)別可以局部改變;若采用非搶先調(diào)度方式,可把1個(gè)功能分解為若干個(gè)可以在1 μs到幾十微秒內(nèi)完成的程序段,以改善實(shí)時(shí)性。
     (2)進(jìn)程控制
   為了描述和控制進(jìn)程的運(yùn)行,系統(tǒng)為每個(gè)進(jìn)程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)——進(jìn)程控制塊(PCB)。PCB主要包括:進(jìn)程標(biāo)識(shí)符、進(jìn)程當(dāng)前狀態(tài)、進(jìn)程隊(duì)列指針、程序開始地址、進(jìn)程優(yōu)先級(jí)、CPU現(xiàn)場(chǎng)保護(hù)區(qū)、通信信息、家族聯(lián)系、占有資源清單等。系統(tǒng)將根據(jù)PCB感知進(jìn)程的存在,PCB是進(jìn)程存在的唯一標(biāo)志。
   為了簡化問題,本系統(tǒng)按一定的原則編制每一個(gè)任務(wù)程序,使得每一個(gè)任務(wù)程序都在規(guī)定的時(shí)間內(nèi)(1 ?滋s到幾十微秒)執(zhí)行完畢,即每一個(gè)任務(wù)程序在執(zhí)行完后才交還CPU的使用權(quán),因此,在本系統(tǒng)所設(shè)計(jì)的MROS中,就只使用PCB中的“進(jìn)程當(dāng)前狀態(tài)”這一個(gè)概念。
     (3) “tick”信號(hào)
   “tick”信號(hào)是MROS在運(yùn)行過程中需要的基本的、最小的定時(shí)單位。在圖1所示的系統(tǒng)中,“tick”由PC-6313板卡的定時(shí)/計(jì)數(shù)器8253產(chǎn)生。當(dāng)系統(tǒng)初始化時(shí),使PC-6313 1#板卡8253的 T2 OUT2每1 ms輸出1個(gè)脈沖,把這個(gè)脈沖信號(hào)作為中斷請(qǐng)求信號(hào)加在IRQ3上,每1次中斷即產(chǎn)生1個(gè)“tick”,在IRQ3的中斷服務(wù)程序進(jìn)行與時(shí)間相關(guān)的操作。
2.3 多任務(wù)實(shí)時(shí)調(diào)度系統(tǒng)的設(shè)計(jì)原則
   在單CPU系統(tǒng)中,不可能有真正意義上的并行操作,所有任務(wù)只能遵循調(diào)度策略,串行地占用CPU,即:宏觀上在同一時(shí)段內(nèi)多個(gè)程序的同時(shí)執(zhí)行,而微觀上則是多個(gè)任務(wù)的交替執(zhí)行。整個(gè)測(cè)控系統(tǒng)必須遵循的設(shè)計(jì)原則如下[6]:
   (1)快速的任務(wù)調(diào)度和切換。調(diào)度程序本身必須是低開銷,本系統(tǒng)編寫的實(shí)時(shí)調(diào)度程序,占用CPU的執(zhí)行時(shí)間小于1μs。調(diào)度所需的“tick”是通過定時(shí)器/計(jì)數(shù)器模板上的8253產(chǎn)生的,可以根據(jù)需求確定調(diào)度精度,從幾百微秒到若干毫秒。
   (2)在設(shè)計(jì)測(cè)控電路和編制各個(gè)實(shí)時(shí)任務(wù)程序時(shí),應(yīng)注意任何任務(wù)都不能加重CPU的負(fù)擔(dān),它只能在接收控制信號(hào)和調(diào)節(jié)命令后,就脫離CPU的“關(guān)注”而獨(dú)立運(yùn)行,直到新的控制信號(hào)和調(diào)節(jié)命令到來后又在新的條件下“獨(dú)立”運(yùn)行。
2.4 多任務(wù)實(shí)時(shí)調(diào)度的過程分析
     圖2是任務(wù)調(diào)度的過程示意圖。


    圖2任務(wù)調(diào)度說明如下:
    (1) 實(shí)時(shí)時(shí)鐘在0點(diǎn)、4點(diǎn)、8點(diǎn)、12點(diǎn)、16點(diǎn)和20點(diǎn)時(shí),分別把task_0( )、task_4( )、task_8( )、task_12( )、task_16( )和task_20( )推入就緒隊(duì)列。
    (2) 實(shí)時(shí)時(shí)鐘每隔5 ms、500 ms、2 s,分別把task_s( )、stepping( )、getad( )推入就緒隊(duì)列。
    (3) a鍵、s鍵、b鍵、q鍵,分別把mnxs( )、kgxs( )、stepmoter( )、quit( )推入就緒隊(duì)列。
    (4) m鍵把允許標(biāo)志pmotorf1置1,在motor( )任務(wù)執(zhí)行過程中,如果發(fā)現(xiàn)pmotorf1=1,就把pmotor( )推入隊(duì)列。
    (5) t鍵和d鍵均把subd1( )推入就緒隊(duì)列。在subd1( )的執(zhí)行過程中,如果發(fā)現(xiàn)是t鍵,則把kg( )推入就緒隊(duì)列;如果發(fā)現(xiàn)是d鍵,則把tad( )推入就緒隊(duì)列。
    (6) kg( )、tad( )、mnxs( )、kgxs( )在各自運(yùn)行過程中,又把自己推入就緒隊(duì)列,CPU不斷對(duì)它們提供運(yùn)行機(jī)會(huì),在沒有其他按鍵操作的情況下,pmotorf1總是等于1,即一直允許繪制直流電動(dòng)機(jī)運(yùn)行曲線,每250 ms運(yùn)行motor( )時(shí),pmotor( )都可以被設(shè)置為就緒狀態(tài)。pmotor( )每運(yùn)行1次,就在屏幕上顯示1次直流電動(dòng)機(jī)的當(dāng)前速度值。
    (7) 下位機(jī)串行口中斷一直處于開放狀態(tài),若主機(jī)要求和該下位機(jī)通信,則把slaver( )推入就緒狀態(tài)。Slaver( )運(yùn)行時(shí),將指定的數(shù)據(jù)傳送給上位機(jī)。由于采用智能通信模塊,下位機(jī)只需把指定的數(shù)據(jù)傳送給智能通信模塊即可,其后,由通信模塊將數(shù)據(jù)傳送給主機(jī)。串行通信的速度很快,可滿足系統(tǒng)實(shí)時(shí)性的要求。
3 下位機(jī)軟件系統(tǒng)設(shè)計(jì)流程
  下位機(jī)軟件系統(tǒng)結(jié)構(gòu)示意圖如圖3所示。軟件系統(tǒng)由三大塊子系統(tǒng)構(gòu)成:圖3(a)為初始化及任務(wù)調(diào)度,是系統(tǒng)的管理層負(fù)責(zé)任務(wù)調(diào)度;圖3(b)為任務(wù)程序集合,它們?cè)诠芾韺拥恼{(diào)度下實(shí)現(xiàn)各種功能;圖3(c)為中斷服務(wù)程序,是簡化MROS的組成部分。可以據(jù)此畫出更詳細(xì)的軟件系統(tǒng)流程圖并編寫相應(yīng)的程序。


     本文介紹了一種分布式IPC配電測(cè)控實(shí)驗(yàn)系統(tǒng)的多任務(wù)實(shí)時(shí)調(diào)度系統(tǒng)的設(shè)計(jì),說明了在單CPU系統(tǒng)中,多任務(wù)實(shí)時(shí)調(diào)度系統(tǒng)的設(shè)計(jì)原則,并據(jù)此設(shè)計(jì)了一個(gè)簡化的MROS,能夠完成標(biāo)準(zhǔn)MROS的核心功能,即CPU管理、外設(shè)管理和中斷管理。下位機(jī)系統(tǒng)在該簡化的MROS調(diào)度管理下,可以很好地完成各項(xiàng)任務(wù),系統(tǒng)運(yùn)行穩(wěn)定,調(diào)度精度可達(dá)毫秒級(jí)。實(shí)驗(yàn)系統(tǒng)較好地模擬了配電測(cè)控系統(tǒng)的調(diào)度、運(yùn)行和管理過程,融合了工控機(jī)、總線、接口技術(shù)、通信技術(shù)、控制技術(shù)等多方面的知識(shí),可以讓學(xué)生更具體地了解工控系統(tǒng)的組成,更真實(shí)地觸摸工控系統(tǒng)的工作原理。該系統(tǒng)配備相應(yīng)的測(cè)量儀表和傳感器即可構(gòu)成一個(gè)實(shí)時(shí)性很強(qiáng)的配電測(cè)控系統(tǒng)。因此具有一定的理論價(jià)值和應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]     陳曾漢,劉明白,趙志強(qiáng),等. 工業(yè)PC及測(cè)控技術(shù)[M].北京:機(jī)械工業(yè)出版社,2004:271-298.
[2]     謝輝,陳曾漢.分布式IPC工業(yè)測(cè)控系統(tǒng)[J].儀表技術(shù)與傳感器, 2008,1(1):35-37.
[3]     北京中泰研創(chuàng)科技有限公司[EB/OL].PC-6313多功能模入模出接口卡技術(shù)說明書.http://www.ztic.com.cn/
upload/shuoming/Pc6313.doc,2006-06-28.
[4]     周航慈,吳光文.基于嵌入式實(shí)時(shí)操作系統(tǒng)的程序設(shè)計(jì)技術(shù)[M].北京:國防工業(yè)出版社,2006:55-61.
[5]     TANENBAUM A S. 操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M].陳渝,等譯. 北京:電子工業(yè)出版社,2007:167-174.
[6]     王立剛.開放式混合實(shí)時(shí)系統(tǒng)中的調(diào)度方法研究[D]. 中國科學(xué)技術(shù)大學(xué),2006:85-87.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。