亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        測控設(shè)備運(yùn)行流程遠(yuǎn)程定制技術(shù)研究

        2016-01-21 03:39:16董廣然茍茹君
        無線電工程 2016年1期
        關(guān)鍵詞:腳本語言

        黨 琦,董廣然,茍茹君,秦 勃

        (1.西安衛(wèi)星測控中心,陜西 西安 710043;

        2.航天器在軌故障診斷與維修重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710043)

        ?

        測控設(shè)備運(yùn)行流程遠(yuǎn)程定制技術(shù)研究

        黨琦1,2,董廣然1,茍茹君1,秦勃1,2

        (1.西安衛(wèi)星測控中心,陜西 西安 710043;

        2.航天器在軌故障診斷與維修重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710043)

        摘要針對我國航天測控設(shè)備監(jiān)控軟件采用固定的自動化流程,提出了一種遠(yuǎn)程流程定制的方法,設(shè)計(jì)了基于Lua的自動化流程架構(gòu)。通過分析研究設(shè)備的自動化流程,對關(guān)鍵技術(shù)及腳本執(zhí)行效率進(jìn)行了測試驗(yàn)證,結(jié)果表明提出的方法可行。Lua腳本和C++語言的效率比在一個量級之內(nèi),完全勝任航天測控領(lǐng)域?qū)崟r(shí)任務(wù)對測控流程的性能需求。這種方法能減少軟件的重復(fù)開發(fā),實(shí)現(xiàn)對設(shè)備的精細(xì)化操作。

        關(guān)鍵詞腳本語言;測控設(shè)備;流程定制;自動化運(yùn)行;Lua

        0引言

        流程是測控設(shè)備自動化運(yùn)行的核心。我國航天測控設(shè)備的自動化運(yùn)行是固定過程的自動化運(yùn)行,設(shè)備以測控計(jì)劃為依據(jù),按照時(shí)間段劃分為若干個自動化運(yùn)行流程。這種方式在單站跟蹤時(shí)能夠較好地完成任務(wù),但是當(dāng)需要多站接力測控或需要調(diào)整某個自動化運(yùn)行流程時(shí),就凸現(xiàn)出固定過程的缺陷:

        ① 多站接力跟蹤。測控設(shè)備自動按照固定過程運(yùn)行,完成雙捕后自動加上行,這會對前站上行造成影響。此時(shí)需要人工對后跟蹤的設(shè)備進(jìn)行操作,以降低對前站設(shè)備影響的程度。隨著發(fā)射任務(wù)越來越密集,這種方式已經(jīng)不適應(yīng)任務(wù)要求,嚴(yán)重影響了測控網(wǎng)自動化運(yùn)行的工作進(jìn)程。

        ② 設(shè)備自動化運(yùn)行流程調(diào)整。測控資源監(jiān)控軟件由設(shè)備研制部門設(shè)計(jì)開發(fā),自動化流程為固定過程,要對流程進(jìn)行優(yōu)化或更改時(shí),需要對所有的測控設(shè)備監(jiān)控分系統(tǒng)軟件進(jìn)行修改和測試,涉及面廣、人員工作強(qiáng)度大,工作效率低、影響域大,并且無法滿足多種應(yīng)急預(yù)案的實(shí)施。

        針對上述問題提出了一種基于Lua構(gòu)建測控設(shè)備控制流程引擎的方法,實(shí)現(xiàn)測控設(shè)備自動化運(yùn)行流程的動態(tài)調(diào)整,增強(qiáng)測控設(shè)備的適應(yīng)性。

        1Lua

        Lua語言小巧、高效,能很好地與C語言一起工作[1,2],屬嵌入式腳本語言,它與PHP、Tcl、Perl、JavaScript和Python等不同,支持?jǐn)?shù)據(jù)描述機(jī)制擴(kuò)展功能[2],具有以下特點(diǎn):

        ① 輕量級。Lua官方版本只包括一個精簡的核心和最基本的庫,體積小、啟動速度快,適合嵌入到別的程序里[3]。

        ② 可擴(kuò)展。Lua以簡潔的API實(shí)現(xiàn)與宿主語言的接口,可通過宿主語言實(shí)現(xiàn)許多擴(kuò)展功能,且在所有操作系統(tǒng)和平臺上都可以編譯和運(yùn)行[4]。

        ③ 配置功能。Lua可以作為普通的配置文件,代替XML和INI等文件,容易理解和維護(hù),并能以函數(shù)形式來控制變量等之間的邏輯關(guān)系,具有更大的靈活性[5]。

        ④ Lua具備自動內(nèi)存管理,提供多線程支持功能。

        由此可見,Lua很適合嵌入式流程定制技術(shù)中的設(shè)備控制語言的設(shè)計(jì)。

        2航天測控設(shè)備自動流程分析

        測控設(shè)備的監(jiān)控分系統(tǒng)擔(dān)負(fù)著系統(tǒng)內(nèi)各個設(shè)備運(yùn)行狀態(tài)監(jiān)視、工作參數(shù)設(shè)置、系統(tǒng)配置、自檢、測試、標(biāo)校以及跟蹤測控等任務(wù)[6]。

        正常情況下,監(jiān)控分系統(tǒng)接收任務(wù)中心發(fā)送的測控計(jì)劃,根據(jù)計(jì)劃分解生成單圈次或多圈次的工作流程,包括系統(tǒng)自檢、設(shè)備標(biāo)校、轉(zhuǎn)等待點(diǎn)、捕獲跟蹤和事后處理等[7-9]。系統(tǒng)的基本工作流程如圖1所示,其中T0為測控計(jì)劃中的跟蹤開始時(shí)間。自動化運(yùn)行流程一旦中斷,后續(xù)工作只能通過設(shè)備監(jiān)控客戶端手動操作實(shí)現(xiàn)。

        圖1 基于計(jì)劃驅(qū)動的自動化運(yùn)行流程

        3基于Lua的自動化流程架構(gòu)設(shè)計(jì)

        3.1測控設(shè)備自動流程分解

        測控設(shè)備自動化流程實(shí)際上是一種業(yè)務(wù)流程,可以被定義為一個由各種不同功能的活動組成的一系列相互關(guān)聯(lián)的任務(wù),依照一定的業(yè)務(wù)邏輯和順序依次執(zhí)行,業(yè)務(wù)流程管理正在迅速成為軟件開發(fā)獲得敏捷性和適應(yīng)性的重要方法[10]。測控設(shè)備任務(wù)執(zhí)行過程的自動化程度取決于系統(tǒng)是否支持流程可定制、可更改和可運(yùn)行的目標(biāo)。

        現(xiàn)有測控設(shè)備的自動化流程相當(dāng)于一種程序化的流程,一旦流程運(yùn)行中斷,后續(xù)的所有工作,都需要操作員在監(jiān)控客戶端以監(jiān)控命令的方式手動操作。還有,當(dāng)要對給定的流程進(jìn)行調(diào)整,需要更動監(jiān)控分系統(tǒng)的程序,影響域比較大,因此考慮采用流程定制的方式,遠(yuǎn)程對流程進(jìn)行控制和維護(hù),以增強(qiáng)設(shè)備的適應(yīng)性。

        依據(jù)前面對測控設(shè)備自動化流程的分析,將自動化流程分解為以下6個子流程,如圖2所示。

        圖2 測控設(shè)備自動化流程分解

        對于?fi,?sik與之對應(yīng),sik包含OP的一個子集及對應(yīng)的邏輯判斷。

        測控設(shè)備流程執(zhí)行過程如圖3所示。

        圖3 流程執(zhí)行過程

        本文選用Lua作為腳本語言,用其定義測控設(shè)備各個自動化子流程,由此提高系統(tǒng)的靈活性、擴(kuò)展性和高效性。

        3.2流程引擎架構(gòu)設(shè)計(jì)

        流程引擎的主要功能是執(zhí)行業(yè)務(wù)流程,而業(yè)務(wù)流程是指包含那些為用戶創(chuàng)造價(jià)值的行為[11],流程引擎設(shè)計(jì)的好壞、效率高低直接影響到整個業(yè)務(wù)流程管理的性能高低。

        流程引擎架構(gòu)如圖4所示。

        圖4 流程引擎架構(gòu)

        本文將流程引擎分為以下5個部分:

        ① 遠(yuǎn)程通信。負(fù)責(zé)與遠(yuǎn)程中心之間的信息交互,接收遠(yuǎn)程中心的流程配置和查詢命令,接收遠(yuǎn)程中心發(fā)送的流程腳本文件,接收遠(yuǎn)程中心的控制命令。

        ② 流程管理。包括流程裝訂和流程存儲2部分功能,負(fù)責(zé)完成遠(yuǎn)程腳本文件的存儲和驗(yàn)證,為流程執(zhí)行提供流程索引服務(wù)。

        ③ 流程執(zhí)行。包括流程加載、流程解析和流程控制3部分功能,負(fù)責(zé)流程的解析執(zhí)行和執(zhí)行控制。

        ④ 流程存儲。包括設(shè)備原子操作動態(tài)庫、腳本文件以及腳本與流程之間對應(yīng)關(guān)系的配置文件。

        ⑤ 流程監(jiān)視。負(fù)責(zé)展示流程的執(zhí)行過程,為流程執(zhí)行過程中的控制操作提供輔助支持。

        3.3腳本與引擎交互方式

        3.3.1通過堆棧的交互

        Lua通過虛擬機(jī)內(nèi)部的堆棧實(shí)現(xiàn)與宿主語言之間的交互。Lua提供了對堆棧操作的API,包括出入棧操作以及通過索引值隨機(jī)讀寫棧元素[12]。

        3.3.2Lua調(diào)用引擎函數(shù)

        Lua調(diào)用函數(shù)采用了函數(shù)指針的形式,在C++中定義函數(shù)時(shí)要遵守一定的規(guī)則。

        Lua可通過棧傳遞無窮個參數(shù)。當(dāng)Lua調(diào)用引擎函數(shù)的時(shí)候,使用和引擎調(diào)用Lua相同類型的棧來交互。獲取某變量值的代碼段如下:

        static intLuaCallC(1ua_State *LState)

        {

        int d = luaL_checknumber(LState,1);//檢查值

        lua_pushnumber(Lstatue,d);//值入棧

        return1;

        }

        3.3.3引擎調(diào)用Lua函數(shù)

        Lua通過棧傳遞參數(shù)及返回值。引擎調(diào)用Lua函數(shù)時(shí),先把這個函數(shù)壓入棧,然后順序壓入所有參數(shù),函數(shù)返回后,返回值存放在棧中[10]。

        例如在Globa1.1ua文件中有設(shè)置UI窗口內(nèi)容的Lua函數(shù)如下:

        function SetWindowText(win,txtContent)

        Ken_ApiManager.SetWindowText(win,txtContent)

        Return 1

        end

        4測試與分析

        測試環(huán)境:計(jì)算機(jī)采用Intel Core i7 CPU,主頻3.4 GHz,內(nèi)存3G,支持工具為Lua-5.2.2。

        4.1功能驗(yàn)證

        根據(jù)前面的論述,以現(xiàn)有測控設(shè)備監(jiān)控客戶端程序?yàn)榛A(chǔ),對設(shè)備自動化運(yùn)行流程遠(yuǎn)程定制進(jìn)行了技術(shù)上的驗(yàn)證。主體功能包括:

        ① 自動化運(yùn)行流程測試腳本開發(fā):對應(yīng)6個自動化運(yùn)行過程,分別編制了以下6個腳本文件:

        SetParameter.lua設(shè)置任務(wù)參數(shù)

        AngleAdjust.lua角度標(biāo)校

        DistanceAdjust.lua距離校零

        Guide.lua轉(zhuǎn)等待點(diǎn)

        Track.lua跟蹤

        Aftertrack.lua事后處理

        按照圖1實(shí)現(xiàn)了一個順序執(zhí)行的自動化運(yùn)行腳本,在對應(yīng)的時(shí)間節(jié)點(diǎn)調(diào)用設(shè)置任務(wù)參數(shù)、角度標(biāo)校、距離校零、轉(zhuǎn)等待點(diǎn)、跟蹤和事后處理等6個自動化運(yùn)行流程,按照順序及時(shí)間符合執(zhí)行6個腳本的C++代碼片段如下:

        ……

        lua_State *m_plua;

        PlanTime = GetPlanTime();//讀取計(jì)劃時(shí)間

        while(TRUE)

        {

        CurrentTime = GetLocalTime();

        DiffTime = Difftime(CurrentTime,PlanTime);

        if(DiffTime <= 300)

        {//執(zhí)行任務(wù)參數(shù)設(shè)置流程

        dofile(“SetParameter.lua”);

        }

        else if(DiffTime <= 240)

        {//執(zhí)行角度標(biāo)校流程

        luaL_dofile(m_plua,“AngleAdjust.lua”);

        }

        else if(DiffTime <= 180)

        {//執(zhí)行距離校零流程

        luaL_dofile(m_plua,“DistanceAdjust.lua”);

        }

        else if(DiffTime <= 60)

        {

        luaL_dofile(m_plua,“Guide.lua”);//執(zhí)行轉(zhuǎn)等待點(diǎn)流程

        luaL_dofile(m_plua,“Track.lua”);//執(zhí)行跟蹤流程

        luaL_dofile(m_plua,“Aftertrack.lua”);//事后處理流程

        }

        }

        ② 腳本控制過程測試:編制了一個腳本,測試控制開始、暫停、繼續(xù)和終止等過程操作的腳本片段如下:

        lua_line = 0

        debug.sethook(hook,“l(fā)”)—注冊hook

        —hook函數(shù)

        Function hook()

        lua_line = debug.getinfo(1).linedefined

        while 1 do

        local state = myControlState()

        if state==1 then—跳出循環(huán) 繼續(xù)

        break

        end

        if state==0 then—退出

        error(aexit)

        end

        if state==2 then—暫停

        sleep(10)

        end

        end

        end

        ③ 數(shù)據(jù)顯示測試:根據(jù)需要,顯示流程運(yùn)行過程中的數(shù)據(jù)和狀態(tài)信息,讓用戶充分掌握流程各運(yùn)行環(huán)節(jié)執(zhí)行狀態(tài),控制數(shù)據(jù)顯示腳本片段如下:

        —實(shí)現(xiàn)距離和速度的顯示切換,按照時(shí)間,每2 s切換一次

        ……

        Timevalue=2—定義時(shí)間間隔初值

        d=mytime()—利用宿主語言功能計(jì)算時(shí)間間隔

        Speedvalue()—取速度

        if d==0then

        RVvalue()—取距離

        end

        4.2效率測試

        4.2.1邏輯測試過程

        在宿主語言中定義接口函數(shù)l_add,在流程文件test.lua中定義流程模塊Test_Module。腳本測試邏輯序列如圖5所示。該測試用例表征了流程引擎和流程腳本的雙向交互測試。

        圖5 邏輯測試序列

        4.2.2效率測試過程

        配置2個測試流程,分別執(zhí)行1×106次業(yè)務(wù)邏輯判斷和1×106次浮點(diǎn)運(yùn)算。

        4.3測試結(jié)果分析

        分別編寫對應(yīng)于4.1節(jié)的Lua腳本和C++程序,使用預(yù)先準(zhǔn)備的測試數(shù)據(jù)完成了4.2.1的邏輯測試,說明本文采用的方法是可行的。為了說明腳本及流程引擎的執(zhí)行效率,用Lua腳本和C++實(shí)現(xiàn)流程業(yè)務(wù)邏輯判斷效率測試過程和流程浮點(diǎn)運(yùn)算速度測試過程,各進(jìn)行了5組測試,測試結(jié)果如圖6和圖7所示。

        圖6 業(yè)務(wù)邏輯判斷測試結(jié)果比對

        圖7 浮點(diǎn)運(yùn)算測試結(jié)果比對

        測試結(jié)果表明,流程業(yè)務(wù)邏輯判斷效率測試中Lua腳本和C++語言的效率比近似值是7,流程浮點(diǎn)運(yùn)算速度測試中Lua腳本和C++語言的效率比近似值是3.6。Lua腳本和C++語言的效率比在一個量級之內(nèi),完全勝任航天測控領(lǐng)域?qū)崟r(shí)任務(wù)對測控流程的性能需求。

        5結(jié)束語

        根據(jù)航天測控設(shè)備的自動化流程,采用Lua腳本語言,設(shè)計(jì)了流程引擎架構(gòu),通過實(shí)驗(yàn)說明,Lua能夠?qū)⒊绦蚝诵暮瓦壿嬁刂品蛛x開來,在系統(tǒng)開發(fā)過程中,測控設(shè)備流程引擎只需提供的測控設(shè)備原子操作接口,就可以通過配置不同腳本,實(shí)現(xiàn)對設(shè)備的邏輯控制。

        基于Lua的測控設(shè)備自動化流程定制技術(shù)很好地兼顧了靈活性和效率,并且能為軟件的后期維護(hù)提供便捷的服務(wù)支持,能節(jié)省大量的程序維護(hù)和測試時(shí)間,可節(jié)約大量的人力資源,為后續(xù)測控設(shè)備監(jiān)控系統(tǒng)的設(shè)計(jì)有一定的參考意義。

        參考文獻(xiàn)

        [1]Roberto Ierusalimschy,Luiz Henrique de Figueiredo,Waldemar Celes.Lua-an Extensible Extension Language[J].Software-Practice and Experience,1996,26(6):635-652.

        [2]Reberto Ierusalimschy,Luiz Henrique de Figueiredo,Waldemar Celes.The Imp1ementation of Lua 5.0[J].Journal of Universal Computer Science,2005,11(7):1 159-1 176.

        [3]尹佳,王祖林,馮文全,等.航天器數(shù)據(jù)管理系統(tǒng)通用測試平臺的設(shè)計(jì)[J].北京航空航天大學(xué)學(xué)報(bào),2010,36(3):346-349.

        [4]斯庫特碼,瑪尼恩.Lua游戲開發(fā)指南實(shí)踐[M].田 劍,譯,北京:機(jī)械工業(yè)出版社,2013.

        [5]鄧正陽,陳和平,蘇鵬.動態(tài)腳本語言Lua與C++交互方法的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(5):198-201.

        [6]黨琦,吳東星,白大明,等.基于Web的航天測控設(shè)備集中監(jiān)視體系實(shí)現(xiàn)[J].宇航動力學(xué)學(xué)報(bào),2013,3(2):95-98.

        [7]劉軍,王軼,馬明,等.典型測控系統(tǒng)自動化運(yùn)行的設(shè)計(jì)與實(shí)現(xiàn)[J].電訊技術(shù),2005(5):197-199.

        [8]高京龍.航天測控站無人值守技術(shù)分析[J].無線電工程,2011,41(12):38-40.

        [9]侯錦,余軍.測站天線目標(biāo)自動捕獲跟蹤設(shè)計(jì)要點(diǎn)[J].電子設(shè)計(jì)與工程,2011,19(10):77-79.

        [10]王劍冰.一種基于流程的高效引擎開發(fā)[J].井岡山大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,33(4):61-65.

        [11]BAI Liang,LIANG Jiye,DANG Chuangyin,et a1.A Novel Attribute Weighting Algorithm for Clustering High-Dimensional Categorical Data[J].Pattern Recognition,2011,44(12):2 843-2 861.

        [12]Reberto Ierusalimschy.Lua程序設(shè)計(jì)(第2版)[M].周惟迪,譯.北京:電子工業(yè)出版社,2008.

        黨琦男,(1972—),碩士,高級工程師。主要研究方向:計(jì)算機(jī)網(wǎng)絡(luò)、應(yīng)用軟件技術(shù)等。

        茍茹君女,(1971—),碩士,高級工程師。主要研究方向:航天器遙測信息處理、應(yīng)用軟件技術(shù)等。

        引用格式:黨琦,董廣然,茍茹君,等.測控設(shè)備運(yùn)行流程遠(yuǎn)程定制技術(shù)研究[J].無線電工程,2016,46(1):16-19,64.

        Research on Automation Process Remote Customizing

        Technology of TT&C Equipment

        DANG Qi1,2,DONG Guang-ran1,GOU Ru-jun1,QIN Bo1,2

        (1.Xi’anSatelliteControlCenter,Xi’anShaanxi710043,China;

        2.KeyLaboratoryforFaultDiagnosis&MaintenanceofSpacecraftinOrbit,Xi’anShaanxi710043,China)

        AbstractTo address the problems in the fixed automation process of monitoring&control software for TT&C equipment,a new method for remote process customization is proposed,and an automation process architecture based on Lua is designed.Through analyzing the equipment automation process,the key technologies and script execution efficiency are tested and validated,and the result shows the feasibility of the method.The efficiency ratios of Lua script and C++ language are in the same level,so the Lua meets the capability requirement of real-time mission in space TT&C.The method can also reduce software re-development and enable the fine operation of equipment.

        Key wordsscript language;TT&C equipment;process customizing;automated operation;Lua

        作者簡介

        收稿日期:2015-09-30

        中圖分類號TP391

        文獻(xiàn)標(biāo)識碼A

        文章編號1003-3106(2016)01-0016-04

        doi:10.3969/j.issn.1003-3106.2016.01.04

        猜你喜歡
        腳本語言
        基于JavaScript在Web設(shè)計(jì)中應(yīng)用
        一種基于腳本的文書柔性生成技術(shù)
        JavaScript的內(nèi)存溢出與內(nèi)存泄漏
        鋒繪(2019年11期)2019-12-20 03:04:57
        淺談自動編程后處理插件與機(jī)床匹配
        一種面向SSC的電信增值業(yè)務(wù)的生成方法及實(shí)現(xiàn)
        基于Unity3D的坦克大戰(zhàn)游戲設(shè)計(jì)與實(shí)現(xiàn)
        網(wǎng)站服務(wù)器維護(hù)措施探究
        電子測試(2016年5期)2016-03-11 14:38:08
        淺析計(jì)算機(jī)技術(shù)在flash動畫中的應(yīng)用
        基于FLASH AS 3的曲柄搖桿機(jī)構(gòu)動畫制作與分析
        基于ABAQUS二次開發(fā)的旋壓參數(shù)化加工研究
        啪啪视频一区二区三区入囗| 丰满人妻被两个按摩师| 久久久国产打桩机| 国产极品少妇一区二区| 婷婷精品国产亚洲av麻豆不片| 偷拍激情视频一区二区三区| 51久久国产露脸精品国产| 自拍亚洲一区欧美另类| 少妇呻吟一区二区三区| 亚洲免费在线视频播放| 国产免费人成视频网站在线18| 久久精品无码一区二区日韩av| 免费久久人人爽人人爽av| 亚洲白白色无码在线观看| 久久精品国产亚洲AⅤ无码剧情| 日本精品久久中文字幕| 日韩人妖干女同二区三区| av在线免费观看网站免费| 亚洲色偷偷偷综合网| 女性女同性aⅴ免费观女性恋| 国内少妇自拍区免费视频| 美国黄色片一区二区三区| 日本一级二级三级在线| 日韩精品视频免费在线观看网站| 日产一区二区三区免费看| 麻豆免费观看高清完整视频 | 狠干狠爱无码区| 色中文字幕视频在线观看| 亚洲国产一区二区视频| 久久精品国产字幕高潮| 成年女人毛片免费视频| 亚洲 成人 无码 在线观看| 国产乱子伦农村xxxx| 国产99久久久国产精品免费 | 东北熟妇露脸25分钟| 亚洲成av人片在线观看www| 亚洲AV秘 无码一区二p区三区| 亚洲一区二区三区高清视频| 美女用丝袜脚玩我下面| 天美传媒一区二区| 精品一区二区三区四区少妇|