引言
隨著科技的不斷發(fā)展,配電網絡自動化和工業(yè)測控技術也隨之發(fā)展迅猛,對系統(tǒng)的實時性、可靠性和多功能性要求也越來越高。而高校測控專業(yè)實驗設備模塊單一、功能簡單,遠遠落后于現代控制技術的發(fā)展。針對高校測控專業(yè)實際需求,研究和設計了一套分布式IPC工業(yè)配電測控系統(tǒng),由1臺上位機和8臺下位機構成。各下位機能夠根據需要對多路模擬量、開關量進行檢測和控制。上位機可以發(fā)出指令和任何一臺與之相連的下位機進行通信,收集各下位機傳送來的模擬量和開關量信息,進行相關的分析、匯總、報表生成等處理,并對各下位機子系統(tǒng)進行監(jiān)控和宏觀調度。多任務調度管理是系統(tǒng)設計的重點和難點,本文將重點敘述其調度管理過程。
1 下位機系統(tǒng)功能概述
下位機主要模擬配電測控系統(tǒng)運行,可實現多路模擬量、開關量的采集、存儲、顯示以及與上位機的通信。同時,為了豐富以后實驗系統(tǒng)的教學和實驗內容,還特意增加了2個具有典型代表性的工業(yè)控制環(huán)節(jié):直流電動機子系統(tǒng)的控制和模擬的溫度測控子系統(tǒng)。因此,下位機是一個較為復雜的測控子系統(tǒng),普通的單片機功能簡單,很難勝任,為此選用了控制功能強大的研華IPC-610工業(yè)控制計算機,配裝了2塊PC-6313多功能模入/模出板卡。每塊PC-6313板卡有24路開入/開出、32路單端模擬量輸入/16路雙端輸入、3個定時器/計數器、2路模擬量輸出,結構緊湊、功能齊全,性價比高,配接相應的傳感器和執(zhí)行機構即可完成所有的功能,下位機系統(tǒng)框圖如圖1所示。IPC-610底板可擴展性強,有近20個ISA插槽和PCI插槽,可隨時方便系統(tǒng)的升級。
工業(yè)測控系統(tǒng)最重要的是穩(wěn)定性,DOS系統(tǒng)比Windows系統(tǒng)穩(wěn)定性強且占用內存小,非常適應工業(yè)系統(tǒng)需要。為此,本系統(tǒng)采用DOS操作系統(tǒng),編程語言采用C語言。下位機模擬的是配電測控系統(tǒng)運行,有多道任務程序,同時要求運行速度快、穩(wěn)定性強,是一個復雜的多任務實時系統(tǒng)。多任務實時調度過程的分析和設計是下位機系統(tǒng)運行的關鍵。
2 下位機系統(tǒng)實時多任務調度過程分析和設計
2.1 任務及其占用資源的關系
下位機配電測控系統(tǒng),共有19個任務程序和1個簡化的、初級的多任務實時操作系統(tǒng)MROS,構成了一個多任務實時測控系統(tǒng)[4]。各個任務程序的名稱及其功能如下:
task_0 ( ):0點制表任務程序。
task_4 ( ):4點制表任務程序。
task_8 ( ):8點制表任務程序。
task_12 ( ):12點制表任務程序。
task_16 ( ):16點制表任務程序。
task_20 ( ):20點制表任務程序。
getad ( ):每2 s采集模擬量任務程序。
task_s ( ):每2 ms采集開關量任務程序。
stepping( ):每500 ms采集溫度測控子系統(tǒng)的溫度值,根據溫度偏差,控制步進電動機正/反轉。
motor( ):每250 ms采集1次直流電動機的轉速,控制直流電動機按設定值運行。
pmotor( ):根據直流電動機的轉速,繪制直流電動機的動態(tài)運行曲線。
mnxs( ):在屏幕上排列顯示各個模擬量的當前值。
kgxs( ):在屏幕上排列顯示各個開關量的當前值。
Subdl( ):在屏幕上繪制工廠配電系統(tǒng)的電氣主接線圖。
Kg( ):把采集的開關量填入電站的電氣主接線圖中,完成開關量在圖中的動態(tài)顯示。
tad( ):把采集的模擬量填入電站的電氣主接線圖中,完成模擬量在圖中的動態(tài)顯示。
Stepmotor( ):步進電動機升降速全過程控制,動態(tài)繪制升降速全過程。
Slaver( ):從機和主機的通信任務。將本機的64路模擬量和16路開關量以及溫度測控子系統(tǒng)的數據上傳給上位機進行顯示。
Subtime( ):北京時間動態(tài)顯示。屏幕上各個畫面正上方中均有北京時間。
quit( ):退出運行處理,返回C集成開發(fā)環(huán)境。
19個任務要求占用硬件資源的關系十分復雜,表述如下:所有任務均要求占用CPU,而CPU只有1個;不同的任務要求占用不同的外設資源,多個任務可能要求占用同一外設;各任務之間存在橫向聯系;多個任務在宏觀上的并發(fā)操作;多任務實時操作系統(tǒng)MROS的主要功能就是協(xié)調以上各種關系,有效地管理分配各種資源。
2.2 多任務實時操作系統(tǒng)的簡化
標準的MROS一般包括CPU管理、外設管理、中斷管理、存儲器管理和文件管理等,占用內存空間較大,CPU的運行速度較慢。下位機測控系統(tǒng)具有如下特點:
(1)對各量的監(jiān)測和控制,實際上是周期性地重復執(zhí)行各任務程序。
(2)人機聯系任務雖然是隨機的,但任務的內容是固定的,操作人員只是通過鍵盤調用一些編制就緒的程序而不修改程序本身。
(3)監(jiān)測對象固定,主機和外設規(guī)模也是固定不變的。
對于這樣一個系統(tǒng),若采用標準的MROS,將占用較多內存空間和CPU的運行時間,降低系統(tǒng)資源的利用率和系統(tǒng)的實時性。因此,本系統(tǒng)采用了一種與硬件資源和測控對象相適應的簡化的、初級的MROS,保留了標準MROS的核心功能。即CPU管理、外設管理和中斷管理,其主要工作如下:
(1)任務調度
任務調度的主要職能,一是根據任務調度算法分配CPU,即實現某個時間或事件驅動的任務切換;二是從任務收回CPU。
按照任務的優(yōu)先級是否可以動態(tài)地改變,調度算法可以分為:靜態(tài)調度和動態(tài)調度。
按照調度過程是否允許采用搶先方式,調度算法可以分為:搶先調度方式和非搶先調度方式。非搶先調度方式在滿足高優(yōu)先級別任務的時限方面比搶先調度方式要差一些,但是它實現起來簡單,時間確定性好,并且避免了因為資源共享而引起的互斥,實際應用較廣。
本系統(tǒng)設計時,按照多任務實時操作的基本原則來編寫任務程序,通過硬件配合,可使每個任務都在幾十個微秒內完成。因此,可采用靜態(tài)調度方式設計圖1所示的IPC系統(tǒng)。但某些任務的優(yōu)先級別可以局部改變;若采用非搶先調度方式,可把1個功能分解為若干個可以在1 μs到幾十微秒內完成的程序段,以改善實時性。
(2)進程控制
為了描述和控制進程的運行,系統(tǒng)為每個進程定義了一個數據結構——進程控制塊(PCB)。PCB主要包括:進程標識符、進程當前狀態(tài)、進程隊列指針、程序開始地址、進程優(yōu)先級、CPU現場保護區(qū)、通信信息、家族聯系、占有資源清單等。
為了簡化問題,本系統(tǒng)按一定的原則編制每一個任務程序,使得每一個任務程序都在規(guī)定的時間內執(zhí)行完畢,即每一個任務程序在執(zhí)行完后才交還CPU的使用權,因此,在本系統(tǒng)所設計的MROS中,就只使用PCB中的“進程當前狀態(tài)”這一個概念。
(3) “tick”信號
“tick”信號是MROS在運行過程中需要的基本的、最小的定時單位。在圖1所示的系統(tǒng)中,“tick”由PC-6313板卡的定時/計數器8253產生。當系統(tǒng)初始化時,使PC-6313 1#板卡8253的 T2 OUT2每1 ms輸出1個脈沖,把這個脈沖信號作為中斷請求信號加在IRQ3上,每1次中斷即產生1個“tick”,在IRQ3的中斷服務程序進行與時間相關的操作。
2.3 多任務實時調度系統(tǒng)的設計原則
在單CPU系統(tǒng)中,不可能有真正意義上的并行操作,所有任務只能遵循調度策略,串行地占用CPU,即:宏觀上在同一時段內多個程序的同時執(zhí)行,而微觀上則是多個任務的交替執(zhí)行。整個測控系統(tǒng)必須遵循的設計原則如下:
(1)快速的任務調度和切換。調度程序本身必須是低開銷,本系統(tǒng)編寫的實時調度程序,占用CPU的執(zhí)行時間小于1μs。調度所需的“tick”是通過定時器/計數器模板上的8253產生的,可以根據需求確定調度精度,從幾百微秒到若干毫秒。
(2)在設計測控電路和編制各個實時任務程序時,應注意任何任務都不能加重CPU的負擔,它只能在接收控制信號和調節(jié)命令后,就脫離CPU的“關注”而獨立運行,直到新的控制信號和調節(jié)命令到來后又在新的條件下“獨立”運行。
2.4 多任務實時調度的過程分析
圖2是任務調度的過程示意圖。
圖2任務調度說明如下:
(1) 實時時鐘在0點、4點、8點、12點、16點和20點時,分別把task_0( )、task_4( )、task_8( )、task_12( )、task_16( )和task_20( )推入就緒隊列。
(2) 實時時鐘每隔5 ms、500 ms、2 s,分別把task_s( )、stepping( )、getad( )推入就緒隊列。
(3) a鍵、s鍵、b鍵、q鍵,分別把mnxs( )、kgxs( )、stepmoter( )、quit( )推入就緒隊列。
(4) m鍵把允許標志pmotorf1置1,在motor( )任務執(zhí)行過程中,如果發(fā)現pmotorf1=1,就把pmotor( )推入隊列。
(5) t鍵和d鍵均把subd1( )推入就緒隊列。在subd1( )的執(zhí)行過程中,如果發(fā)現是t鍵,則把kg( )推入就緒隊列;如果發(fā)現是d鍵,則把tad( )推入就緒隊列。
(6) kg( )、tad( )、mnxs( )、kgxs( )在各自運行過程中,又把自己推入就緒隊列,CPU不斷對它們提供運行機會,在沒有其他按鍵操作的情況下,pmotorf1總是等于1,即一直允許繪制直流電動機運行曲線,每250 ms運行motor( )時,pmotor( )都可以被設置為就緒狀態(tài)。pmotor( )每運行1次,就在屏幕上顯示1次直流電動機的當前速度值。
(7) 下位機串行口中斷一直處于開放狀態(tài),若主機要求和該下位機通信,則把slaver( )推入就緒狀態(tài)。Slaver( )運行時,將指定的數據傳送給上位機。由于采用智能通信模塊,下位機只需把指定的數據傳送給智能通信模塊即可,其后,由通信模塊將數據傳送給主機。串行通信的速度很快,可滿足系統(tǒng)實時性的要求。
3 下位機軟件系統(tǒng)設計流程
下位機軟件系統(tǒng)結構示意圖如圖3所示。軟件系統(tǒng)由三大塊子系統(tǒng)構成:圖3(a)為初始化及任務調度,是系統(tǒng)的管理層負責任務調度;圖3(b)為任務程序集合,它們在管理層的調度下實現各種功能;圖3(c)為中斷服務程序,是簡化MROS的組成部分。可以據此畫出更詳細的軟件系統(tǒng)流程圖并編寫相應的程序。
結論
本文對目前高校測控實驗儀功能單一,對測控系統(tǒng)的可靠性、實時性等不能很好地模擬等問題,研究和設計了一套配電測控模擬實驗臺,由上下位機系統(tǒng)構成。下位機以工控機為核心,配裝簡化的多任務實時操作系統(tǒng),能夠對16路開關量、64路模擬量及多個鍵盤任務進行實時檢測和控制,并能夠和上位機進行定時通信,將收集數據及時傳送給上位機,進行匯總、分析和報表打印等。重點分析了下位機的實時多任務之間的關系,調度過程原理及簡化的多任務實時操作系統(tǒng)的設計。
-
單片機
+關注
關注
6044文章
44632瀏覽量
639211 -
cpu
+關注
關注
68文章
10921瀏覽量
213209 -
自動化
+關注
關注
29文章
5654瀏覽量
79764
發(fā)布評論請先 登錄
相關推薦
分布式軟件系統(tǒng)
HarmonyOS應用開發(fā)-分布式任務調度
【木棉花】:簡單的分布式任務調度
基于Multi-Agent的分布式測控系統(tǒng)任務調度算法
基于多Agent 技術的分布式測控系統(tǒng)研究
三層分布式計算網格任務調度系統(tǒng)
![三層<b class='flag-5'>分布式</b>計算網格<b class='flag-5'>任務</b><b class='flag-5'>調度</b><b class='flag-5'>系統(tǒng)</b>](https://file.elecfans.com/web2/M00/49/01/pYYBAGKhtDKALSjmAAAWmN0Nfgc440.jpg)
CAN總線實現工業(yè)網絡分布式測控系統(tǒng)
分布式調度子系統(tǒng)--初步研究
![<b class='flag-5'>分布式</b><b class='flag-5'>調度</b>子<b class='flag-5'>系統(tǒng)</b>--初步研究](https://file.elecfans.com//web1/M00/D0/74/o4YBAF-8x5KAbPNXAAAAK9URceg366.gif)
評論