欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)采集監(jiān)控器的程序調(diào)度方法與流程

文檔序號:11677359閱讀:711來源:國知局
數(shù)據(jù)采集監(jiān)控器的程序調(diào)度方法與流程

本發(fā)明具體涉及一種數(shù)據(jù)采集監(jiān)控器的程序調(diào)度方法。



背景技術(shù):

隨著經(jīng)濟技術(shù)的發(fā)展和人們生活水平的提高,對于電氣設(shè)備的運行可靠性和及時性的要求也越來越高。

數(shù)據(jù)采集監(jiān)控器廣泛應(yīng)用于電網(wǎng)中,發(fā)揮著重要的作用。現(xiàn)有的數(shù)據(jù)采集監(jiān)控器的程序均設(shè)計成傳統(tǒng)的、常用的前后臺系統(tǒng),初始化完成后,在主循環(huán)中依次調(diào)用相應(yīng)的模塊的函數(shù)完成相應(yīng)的功能,各個功能模塊按照先后次序無限地循環(huán)運行,如圖1所示,這部分為后臺行為(background)。中斷服務(wù)程序處理異常事件,例如定時器的定時時間到的中斷、通信端口接收到數(shù)據(jù)后的中斷,等,這部分為前臺行為(foreground)。這種前后臺系統(tǒng)設(shè)計比較簡單和常用,但在處理數(shù)據(jù)的及時性上,存在明顯的不足。因為當(dāng)某個模塊需要運行時,不能馬上運行,必須等到其他模塊運行完成并且循環(huán)到自身時才可以運行,各個模塊的響應(yīng)時間取決于整個循環(huán)的執(zhí)行時間,但主循環(huán)的整個運行時間不是一個固定值,每個模塊的準確運行時間也不是固定不變的,另外如果程序修改了,循環(huán)的時間也會受到影響。

數(shù)據(jù)采集監(jiān)控器內(nèi)的各個模塊對于實時性有不同程度的要求,數(shù)據(jù)采集處理監(jiān)控模塊和當(dāng)前時間同步模塊、通信模塊對于實時性要求較高,而在這種前后臺系統(tǒng)的設(shè)計中,無法保證它們的實時性,例如數(shù)據(jù)卡處理模塊的處理時間很長,可達數(shù)十秒種,期間的數(shù)據(jù)采集監(jiān)控模塊就不能按時地、準確地運行,這樣就會遺失數(shù)據(jù),也會失去監(jiān)控功能而帶有隱患,并且期間如果隨時有電腦管理系統(tǒng)發(fā)出抄讀命令,也不能及時應(yīng)答。映像校驗?zāi)K的處理時間也很長,也會面臨同樣的問題,其他模塊得不到運行,期間也會失去重要的功能。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的在于提供一種能夠?qū)崟r響應(yīng)各個程序的運行要求,而且能夠有效提高運行安全性和可靠性的數(shù)據(jù)采集監(jiān)控器的程序調(diào)度方法。

本發(fā)明提供的這種數(shù)據(jù)采集監(jiān)控器的程序調(diào)度方法,采用實時內(nèi)核進行數(shù)據(jù)采集監(jiān)控器的程序調(diào)度。

所述的采用實時內(nèi)核進行數(shù)據(jù)采集監(jiān)控器的程序調(diào)度,具體包括如下步驟:

s1.對數(shù)據(jù)采集監(jiān)控器的程序模塊進行分析,從而獲取各個程序模塊的重要程度;

s2.根據(jù)步驟s1獲取的各個程序模塊的重要程度將各個程序模塊進行分級,所述程序模塊的重要性越高,則該程序模塊的等級越高;

s3.實時內(nèi)核根據(jù)步驟s2確定的程序模塊等級,以優(yōu)先執(zhí)行等級高的程序模塊為原則,對所述數(shù)據(jù)采集監(jiān)控器的程序模塊進行調(diào)度和執(zhí)行。

步驟s3所述的對數(shù)據(jù)采集監(jiān)控器的程序模塊進行調(diào)度和執(zhí)行,具體為采用如下步驟進行調(diào)度和執(zhí)行:

a.基于實時內(nèi)核的內(nèi)部時基,每隔x毫秒即判斷各個程序模塊是否準備就緒;

b.若有程序模塊準備就緒且當(dāng)前無程序模塊正在執(zhí)行或被掛起,則判斷準備就緒的各個程序模塊的優(yōu)先級,并優(yōu)先執(zhí)行優(yōu)先級高的程序模塊;

c.若有程序模塊準備就緒且當(dāng)前無程序模塊正在執(zhí)行且有程序模塊被掛起,則判斷準備就緒的程序模塊和被掛起的程序模塊之間的優(yōu)先級大小,并優(yōu)先執(zhí)行優(yōu)先級高的程序模塊,優(yōu)先級低的程序模塊則被掛起,直至優(yōu)先級高的程序模塊執(zhí)行完畢;

d.若有程序模塊準備就緒且當(dāng)前有程序模塊正在執(zhí)行,則判斷準備就緒的程序模塊和正在執(zhí)行的程序模塊之間的優(yōu)先級大小,并優(yōu)先執(zhí)行優(yōu)先級高的程序模塊,優(yōu)先級低的程序模塊則被掛起,直至優(yōu)先級高的程序模塊執(zhí)行完畢。

所述的數(shù)據(jù)采集監(jiān)控器的程序模塊包括數(shù)據(jù)采集監(jiān)控模塊,當(dāng)前時間同步模塊,通信模塊,顯示模塊,數(shù)據(jù)卡模塊和映像校驗?zāi)K。

所述的數(shù)據(jù)采集監(jiān)控模塊的等級為最高,1級;當(dāng)前時間同步模塊的等級為次高,2級;通信模塊的等級再次,為3級;顯示模塊的等級為4級;數(shù)據(jù)卡模塊的等級為5級;映像校驗?zāi)K的等級為6級。

本發(fā)明提供的這種數(shù)據(jù)采集監(jiān)控器的程序調(diào)度方法,通過將實時內(nèi)核引入數(shù)據(jù)采集監(jiān)控器,因此能夠采用實時內(nèi)核的功能對數(shù)據(jù)采集監(jiān)控器進行程序調(diào)度;而且本發(fā)明中將數(shù)據(jù)采集監(jiān)控器的程序模塊進行分級,并依據(jù)優(yōu)先級的高低進行程序調(diào)度,因此本發(fā)明方法能夠?qū)崟r響應(yīng)各個程序的運行要求,而且能夠有效提高運行安全性和可靠性。

附圖說明

圖1為現(xiàn)有技術(shù)的程序模塊調(diào)度方法。

圖2為本發(fā)明方法的程序模塊調(diào)度示意圖。

圖3為本發(fā)明的方法流程圖。

具體實施方式

如圖2所示為本發(fā)明方法的程序模塊調(diào)度示意圖:本發(fā)明采用實時內(nèi)核進行數(shù)據(jù)采集監(jiān)控器的程序調(diào)度,并且配合中斷服務(wù)程序,能夠?qū)崿F(xiàn)數(shù)據(jù)采集監(jiān)控器內(nèi)各個程序模塊的統(tǒng)一科學(xué)調(diào)度。在采用實時內(nèi)核進行程序模塊的調(diào)度時,各個程序模塊不再是輪詢的或順序執(zhí)行的方式進行調(diào)度,而是科學(xué)合理的進行調(diào)度,因此能夠?qū)崟r響應(yīng)各個程序的運行要求,而且能夠有效提高數(shù)據(jù)采集監(jiān)控器的運行安全性和可靠性。

如圖3所示為本發(fā)明的方法流程圖:采用實時內(nèi)核進行數(shù)據(jù)采集監(jiān)控器的程序調(diào)度,具體包括如下步驟:

s1.對數(shù)據(jù)采集監(jiān)控器的程序模塊進行分析,從而獲取各個程序模塊的重要程度;

程序模塊包括數(shù)據(jù)采集監(jiān)控模塊,當(dāng)前時間同步模塊,通信模塊,顯示模塊,數(shù)據(jù)卡模塊和映像校驗?zāi)K;

s2.根據(jù)步驟s1獲取的各個程序模塊的重要程度將各個程序模塊進行分級,所述程序模塊的重要性越高,則該程序模塊的等級越高;

數(shù)據(jù)采集監(jiān)控模塊的等級為最高,1級;當(dāng)前時間同步模塊的等級為次高,2級;通信模塊的等級再次,為3級;顯示模塊的等級為4級;數(shù)據(jù)卡模塊的等級為5級;映像校驗?zāi)K的等級為6級;

s3.實時內(nèi)核根據(jù)步驟s2確定的程序模塊等級,以優(yōu)先執(zhí)行等級高的程序模塊為原則,對所述數(shù)據(jù)采集監(jiān)控器的程序模塊進行調(diào)度和執(zhí)行,具體為采用如下步驟進行調(diào)度和執(zhí)行:

a.基于實時內(nèi)核的內(nèi)部時基,每隔x毫秒即判斷各個程序模塊是否準備就緒,x為正整數(shù);

b.若有程序模塊準備就緒且當(dāng)前無程序模塊正在執(zhí)行或被掛起,則判斷準備就緒的各個程序模塊的優(yōu)先級,并優(yōu)先執(zhí)行優(yōu)先級高的程序模塊;

c.若有程序模塊準備就緒且當(dāng)前無程序模塊正在執(zhí)行且有程序模塊被掛起,則判斷準備就緒的程序模塊和被掛起的程序模塊之間的優(yōu)先級大小,并優(yōu)先執(zhí)行優(yōu)先級高的程序模塊,優(yōu)先級低的程序模塊則被掛起,直至優(yōu)先級高的程序模塊執(zhí)行完畢;

d.若有程序模塊準備就緒且當(dāng)前有程序模塊正在執(zhí)行,則判斷準備就緒的程序模塊和正在執(zhí)行的程序模塊之間的優(yōu)先級大小,并優(yōu)先執(zhí)行優(yōu)先級高的程序模塊,優(yōu)先級低的程序模塊則被掛起,直至優(yōu)先級高的程序模塊執(zhí)行完畢。

在具體應(yīng)用時,在上電初始化階段,除了前后臺系統(tǒng)也有的硬件初始化、軟件初始化的程序以外,根據(jù)實時內(nèi)核的設(shè)計原則,必須先創(chuàng)建各個任務(wù)模塊,在創(chuàng)建每個任務(wù)模塊的時候,指定任務(wù)模塊的名稱、優(yōu)先級、堆棧大小等。當(dāng)所有的任務(wù)模塊都創(chuàng)建完成后,就可以啟動實時內(nèi)核的調(diào)度了。

每個任務(wù)模塊運行時,可以看成全部占用cpu,每個任務(wù)模塊都可以看成是無限循環(huán),什么時候啟動、什么時候終止都受實時內(nèi)核的調(diào)度。

實時內(nèi)核的內(nèi)部時基,每隔1毫秒,就判斷各個模塊是否就緒,根據(jù)其優(yōu)先級進行調(diào)度,如果優(yōu)先級高的模塊就緒了,例如定時時間到了或接收到了消息,就進行模塊切換、調(diào)度,把當(dāng)前運行的模塊掛起,保存cpu當(dāng)前的程序指針寄存器和狀態(tài)寄存器、其它的寄存器到各自的任務(wù)模塊堆棧中;運行優(yōu)先級高的模塊。優(yōu)先級高的模塊運行完后,調(diào)出之前保存的各寄存器的數(shù)據(jù),繼續(xù)運行原來掛起的模塊任務(wù)。如果各個模塊都沒就緒,實時內(nèi)核就進入空閑狀態(tài)。

數(shù)據(jù)采集監(jiān)控模塊是最主要的功能模塊,需要定時運行,每隔100毫秒運行1次,運行期間不受其他模塊的影響和打斷,以免遺漏重要數(shù)據(jù)。

當(dāng)前時間同步模塊也是定時運行,每隔500毫秒運行1次,運行期間只會被數(shù)據(jù)采集監(jiān)控模塊所打斷,不受其他模塊的影響和打斷。運行完后進入掛起狀態(tài)。

通信模塊不是定時運行,硬件通信端口接收到數(shù)據(jù)后產(chǎn)生中斷,在接收中斷服務(wù)程序中對于數(shù)據(jù)幀進行頭尾字節(jié)內(nèi)容和數(shù)據(jù)長度的檢查,如果通過了檢查,就通過實時內(nèi)核向通信模塊發(fā)送消息,此時通信模塊進入運行狀態(tài),在通信模塊內(nèi)部詳細解析是哪種命令,抄讀哪些數(shù)據(jù)等等,然后進行相應(yīng)應(yīng)答;如果前面描述的數(shù)據(jù)采集監(jiān)控模塊監(jiān)控到了異常情況,也會通過實時內(nèi)核向通信模塊發(fā)送消息,此時通信模塊也會進入運行狀態(tài)。

顯示模塊也是定時運行,每隔1000毫秒就在液晶顯示屏上刷新顯示1次數(shù)據(jù)??梢员磺懊鎺讉€模塊打斷,運行完后進入掛起狀態(tài)。

數(shù)據(jù)卡模塊不是定時運行,當(dāng)有數(shù)據(jù)卡放入的時候,引起硬件io端口電平變化產(chǎn)生中斷,在端口中斷服務(wù)程序中,通過實時內(nèi)核向數(shù)據(jù)卡模塊發(fā)送消息,此時數(shù)據(jù)卡模塊進入運行狀態(tài),在數(shù)據(jù)卡模塊內(nèi)部詳細解析,將需要設(shè)置的參數(shù)保存到數(shù)據(jù)采集監(jiān)控器,將采集監(jiān)控器內(nèi)的數(shù)據(jù)寫到數(shù)據(jù)卡中,處理完后進入掛起狀態(tài)。

映像校驗執(zhí)行時耗時較長,因此將其設(shè)計成單獨的模塊。映像校驗?zāi)K只會在接收到其他模塊發(fā)來的消息后才會進入運行狀態(tài),電腦管理系統(tǒng)發(fā)出映像校驗命令后,通信模塊解析出是映像校驗命令后,就通過實時內(nèi)核向映像校驗?zāi)K發(fā)送消息,此時映像校驗?zāi)K進入運行狀態(tài),校驗內(nèi)部的程序映像的完整性和合法性,處理完后進入掛起狀態(tài)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
敦化市| 保康县| 灌云县| 广东省| 高唐县| 苏尼特右旗| 罗甸县| 扎兰屯市| 台州市| 农安县| 临澧县| 铜梁县| 天长市| 策勒县| 穆棱市| 资源县| 抚州市| 拉萨市| 新民市| 繁昌县| 广州市| 三明市| 三门峡市| 务川| 康马县| 通许县| 太谷县| 松原市| 延长县| 建湖县| 盖州市| 乾安县| 崇仁县| 建德市| 谢通门县| 大连市| 始兴县| 城市| 阳城县| 上林县| 石景山区|