陳宏君,熊 蕙
(南京南瑞繼保電氣有限公司,江蘇 南京 211102)
類C腳本架構(gòu)設(shè)計(jì)及在電力系統(tǒng)中的應(yīng)用
陳宏君,熊 蕙
(南京南瑞繼保電氣有限公司,江蘇 南京 211102)
不同國(guó)家和地區(qū)的用戶在電力系統(tǒng)裝置功能和配置上有一定的差別,要求基于工具軟件實(shí)現(xiàn)裝置的靈活配置需求。研發(fā)人員在采用模塊化、圖形化元件搭建裝置功能過(guò)程中,也需要有手段減輕人機(jī)接口配置工作量。為此,提出類C腳本的解決方案,設(shè)計(jì)了適用于電力系統(tǒng)裝置配置建模的API接口函數(shù),支持設(shè)置變量屬性、信號(hào)連線、定值分組、元件投退、IEC61850建模等功能。開發(fā)了腳本解析器,通過(guò)構(gòu)建基于表驅(qū)動(dòng)的詞法提取、基于命令模式的腳本執(zhí)行、基于遞歸下降法的表達(dá)式計(jì)算、基于多級(jí)Hash查找等關(guān)鍵算法,實(shí)現(xiàn)了腳本快速解析執(zhí)行,6萬(wàn)行腳本解析耗時(shí)小于3 s。基于該腳本架構(gòu),裝置研發(fā)人員可定義模塊化元件腳本,實(shí)現(xiàn)多個(gè)元件實(shí)例配置的自動(dòng)化復(fù)用;可定義全局腳本,根據(jù)用戶選項(xiàng),觸發(fā)條件執(zhí)行語(yǔ)句,實(shí)現(xiàn)靈活的裝置選型配置。實(shí)踐表明,類C腳本顯著提高了電力系統(tǒng)保護(hù)測(cè)控裝置的研發(fā)效率和產(chǎn)品的適用范圍。
類C腳本;元件腳本;全局腳本;裝置配置
電力系統(tǒng)控制保護(hù)產(chǎn)品面向平臺(tái)化、智能化的方向發(fā)展,要求設(shè)計(jì)和開發(fā)通用硬件、軟件平臺(tái),以提高裝置研發(fā)的可靠性和競(jìng)爭(zhēng)力[1-5]。在面向國(guó)內(nèi)外的工程實(shí)施中,不同的用戶往往有不同的需求。國(guó)際市場(chǎng)用戶要求支持裝置選型、系統(tǒng)配置、功能投退等可配置功能,要求可選擇裝置軟件的版本、應(yīng)用場(chǎng)景,例如選擇是分段單CT、分段雙CT或母聯(lián)雙CT等場(chǎng)景;要求可配置間隔數(shù)目、母線電壓輸入使能、9-2組網(wǎng)模式等。如果每個(gè)工程都進(jìn)行定制化開發(fā),開發(fā)周期長(zhǎng),維護(hù)成本高。需要提供一種平臺(tái)化的產(chǎn)品適應(yīng)性開發(fā)方法,滿足用戶二次配置需求。可視化編程配置逐漸成為主流研發(fā)模式,可基于模塊化元件多次實(shí)例實(shí)現(xiàn)保護(hù)測(cè)控功能的復(fù)用[6]。在完成裝置功能的可視化編程配置后,還需要進(jìn)行裝置人機(jī)HMI接口的配置,例如配置告警變位事件、配置模擬量上送分組、配置IEC61850模型等。這些工作通常是裝置研發(fā)集成人員手工操作,也需要提供方法,在制作模塊化符號(hào)元件時(shí)可以進(jìn)行元件相關(guān)的HMI設(shè)置,實(shí)現(xiàn)HMI配置的復(fù)用。
腳本是依據(jù)一定的格式編寫的文本,由程序解釋執(zhí)行,具有易于掌握、靈活擴(kuò)展等優(yōu)點(diǎn)[7-8]。文獻(xiàn)[7]定義了嵌入式Web服務(wù)器腳本解析的主要接口,設(shè)計(jì)了腳本引擎的調(diào)用方法。文獻(xiàn)[8]提出一種自定義腳本的實(shí)現(xiàn)方法,設(shè)計(jì)了用于描述界面布局和參數(shù)格式的腳本語(yǔ)句,實(shí)現(xiàn)系統(tǒng)界面的靈活配置。文獻(xiàn)[9]提出一種基于模型的自動(dòng)判斷方法,利用腳本驅(qū)動(dòng)判斷模型執(zhí)行對(duì)測(cè)試數(shù)據(jù)的判斷過(guò)程,提高判讀效率和準(zhǔn)確度。文獻(xiàn)[10]研究了語(yǔ)義可配置的模型轉(zhuǎn)換技術(shù),利用基于OCL的腳本語(yǔ)言(TSS)來(lái)描述轉(zhuǎn)換語(yǔ)言的語(yǔ)義。
為提高模塊化配置效率和實(shí)現(xiàn)面向用戶的選型配置功能,文中設(shè)計(jì)了類C腳本,支持在模塊化元件研發(fā)中編寫元件腳本、裝置集成研發(fā)過(guò)程中編寫全局腳本。類C腳本支持if-else等控制語(yǔ)句,支持四則運(yùn)算、標(biāo)準(zhǔn)C庫(kù)函數(shù)、自定義API函數(shù)。
1.1 腳本需求分析
采用可擴(kuò)展的腳本系統(tǒng),源自如下關(guān)鍵需求:
(1)實(shí)現(xiàn)配置過(guò)程的自動(dòng)化和多個(gè)元件實(shí)例配置的重用;提高模塊集成效率。例如支持將信號(hào)添加到裝置菜單分組中,將定值添加到定值分組中,把變量填寫到IEC61850[11-12]邏輯節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)屬性中。
(2)根據(jù)全局配置選項(xiàng),條件使能執(zhí)行相關(guān)功能,自動(dòng)修改對(duì)應(yīng)設(shè)置,實(shí)現(xiàn)1個(gè)工程支持多場(chǎng)景模式開發(fā)維護(hù)。
(3)一些特殊需求通過(guò)專屬腳本實(shí)現(xiàn),減少對(duì)工具界面編輯的二次開發(fā)及對(duì)其他應(yīng)用的影響。
1.2 腳本函數(shù)設(shè)計(jì)
腳本設(shè)計(jì)要求簡(jiǎn)單,易于研發(fā)人員掌握,支持靈活組合,適用于電力系統(tǒng)保護(hù)測(cè)控裝置的配置場(chǎng)景和滿足用戶配置需求。腳本由一系列經(jīng)過(guò)精心設(shè)計(jì)的API函數(shù)和控制語(yǔ)句組成。按照使用范圍,可分為全局腳本和元件腳本。全局腳本是裝置集成研發(fā)人員在裝置選型和界面定義的控制文本段,是在腳本解析時(shí)優(yōu)先執(zhí)行的函數(shù)文本。元件腳本是模塊研發(fā)人員在元件圖形庫(kù)制作階段定義的配置文本段。腳本函數(shù)定義的通用形式如下:
(1)返回值類型 函數(shù)名(形參1,形參2,形參…);
(2)返回值類型 函數(shù)名(條件執(zhí)行表達(dá)式,形參1,形參2,形參…)。
腳本中支持if、if-elseif-else、if-else等條件控制段,例如:
if(表達(dá)式){
腳本函數(shù)段1…
}
else if(表達(dá)式){
腳本函數(shù)2…
}
else{
腳本函數(shù)3…
}
對(duì)腳本功能按照大類進(jìn)行歸類精簡(jiǎn),規(guī)范統(tǒng)一函數(shù)命名,通過(guò)傳入不同形參細(xì)分子選項(xiàng)。通過(guò)對(duì)電力系統(tǒng)裝置開發(fā)配置場(chǎng)景進(jìn)行規(guī)劃,共定義了50余個(gè)腳本API接口。按照功能可分為:宏定義、信號(hào)拉線、信號(hào)描述設(shè)置、信號(hào)屬性設(shè)置、引用表操作、定值分組和操作、頁(yè)面和元件使能操作、IEC61850通信中CID(裝置能力描述)建模、設(shè)置插件型號(hào)、修改元件執(zhí)行順序等。表1給出了典型常用的腳本函數(shù)和功能定義。
表1 腳本函數(shù)定義
以信號(hào)描述設(shè)置為例,腳本設(shè)計(jì)如下:
(1)功能設(shè)計(jì):設(shè)置變量和定值中文、英文描述。
(2)接口定義:bool SetDesc(char* pvar, char*desctype, char* pdesc)。
(3)形參說(shuō)明:pvar變量名;desctype:描述類型;pdesc:描述值。
(4)使用示例:SetDesc(IA, cn, "@B01.Bus1@母差電流A相")。
腳本函數(shù)是面向應(yīng)用設(shè)計(jì)的接口服務(wù),解析執(zhí)行應(yīng)用定義的腳本段。腳本的處理可分解釋型執(zhí)行、編譯型執(zhí)行。解釋型執(zhí)行如MediniQVT,通過(guò)編碼的方式實(shí)現(xiàn)轉(zhuǎn)換語(yǔ)言的執(zhí)行語(yǔ)義[13],編譯型執(zhí)行工具如ATL,將腳本編譯成字節(jié)碼,然后在虛擬機(jī)上執(zhí)行[14]。文中采用解釋執(zhí)行的策略,腳本執(zhí)行的流程包括詞法分析、if語(yǔ)句分支執(zhí)行、根據(jù)腳本類型調(diào)用解析函數(shù)。解析單個(gè)函數(shù)時(shí)進(jìn)行表達(dá)式計(jì)算、形參處理、調(diào)用裝置配置處理軟件開放的服務(wù)接口,例如變量查找、屬性設(shè)置等接口。腳本解析可劃分為詞法提取模塊、腳本執(zhí)行模塊、表達(dá)式計(jì)算模塊。
2.1 詞法提取模塊
詞法提取模塊,用于讀取腳本段,并進(jìn)行標(biāo)記分類和管理,其關(guān)鍵實(shí)現(xiàn)點(diǎn)是基于表驅(qū)動(dòng)的字符串查找表和前向探測(cè)單詞匹配技術(shù)。詞法提取模塊建立ASCII字符查找表,可快速返回每個(gè)字符對(duì)應(yīng)的類型。定義單個(gè)字符類型如下:
enum CharacterType{
BLANK=01,//空白
NEWLINE=02, //新行
LETTER=04,//字母
DIGIT=010, //數(shù)字
HEX=020,//HEX
OTHER=040, //其他
};
預(yù)先對(duì)ASCII字符編碼進(jìn)行分類,構(gòu)建字符的ASCII碼對(duì)應(yīng)字符類型查找表:
static unsigned char map[256]={
0, //000 nul
BLANK, //011 ht
NEWLINE, //012 nl
…
BLANK, //040 sp
DIGIT, //060 0
LETTER|HEX, //101 A
.…
LETTER, //132 Z
OTHER, //176 ~
};
則通過(guò)map[unicode]可快速返回該字符對(duì)應(yīng)的類型。通過(guò)對(duì)各個(gè)字符和后續(xù)字符的類型探測(cè)組合判斷,可提取出各個(gè)單詞。單詞CToken、詞法掃描類CLex的主要接口和屬性定義如下:
//單詞標(biāo)記類
class EXPR_DECLSPEC CToken{
public:
CToken();
CToken(const Qstring& s,int mtp=0,intstp=0);
virtual ~CToken();
public:
int m_maintp; //token主類型
int m_subtp; //子類型
QString m_str; //名字、值
};
//詞法掃描類
class EXPR_DECLSPEC CLex {
public:
CLex(const Qstring& text);
virtual ~ULex();
public:
int count(){return m_tklist.count();}
CToken* at(int i){return m_tklist.at(i);}
voidlexParse(Qstring& text,int len);
protected:
QList
int m_pos;
int m_len;
QString m_text;
}
定義每個(gè)單詞Token的主類型定義,如KEYWORD(關(guān)鍵字)、IDENTIFIER(標(biāo)識(shí)符)、CONSTANT(常量)、STRING(字符串)、OPERATROR(運(yùn)算符)、PUNCTUATOR(分隔符)、PREPROCESSOR(預(yù)處理)。每種主類型還細(xì)分子類型。以運(yùn)算符為例,還細(xì)分如加、減、乘、除等各種子類型,例如COMMA(",")、COLON(":")、PLUS("+")、MINUS("-")、MULT("*")、DIV("/")等。詞法掃描的主算法見圖1。
圖1 詞法掃描主算法
在主算法中,根據(jù)當(dāng)前字符的類型,如果是[a-z]、[A-Z]、‘_’,則是變量命名或關(guān)鍵字的首字母,進(jìn)入parseIdentifier單詞標(biāo)記提取函數(shù),如果是數(shù)字、運(yùn)算符、常量、預(yù)編譯字符,則進(jìn)入相應(yīng)的提取子函數(shù)。其中單詞提取是重要的步驟,其算法流程如圖2所示。
圖2 單詞提取主算法
對(duì)于a開頭的字符,需往后探測(cè)4步,判斷是否為auto關(guān)鍵字;對(duì)于b開頭的字符,需往后探測(cè)5步,判斷是否為break關(guān)鍵字,依次類推,探測(cè)case、char、const、default、double等關(guān)鍵字,如果不是關(guān)鍵字或首字符例如h、j、A等,則跳轉(zhuǎn)到變量命名id處理,提取為變量名。提取出的CToken實(shí)例存放到單詞鏈表,供后續(xù)的腳本執(zhí)行模塊使用。
2.2 腳本執(zhí)行模塊
腳本執(zhí)行模塊通過(guò)分析單詞鏈表,提取if控制語(yǔ)句段和各個(gè)函數(shù)段。根據(jù)預(yù)先定義的腳本函數(shù)名提取出該函數(shù)包括的單詞子鏈表。當(dāng)掃描到if關(guān)鍵字時(shí),根據(jù){、}的偶對(duì)匹配,提取if控制語(yǔ)句包含的腳本函數(shù),某分支條件成立時(shí),執(zhí)行該分支內(nèi)的腳本序列。之后進(jìn)行類型劃分,將腳本放到不同的優(yōu)先級(jí)隊(duì)列,在保護(hù)測(cè)控裝置驅(qū)動(dòng)包處理程序的不同階段,插入執(zhí)行對(duì)應(yīng)優(yōu)先級(jí)的腳本函數(shù)。不同優(yōu)先級(jí)腳本執(zhí)行時(shí)序如圖3所示,共分8個(gè)隊(duì)列,優(yōu)先執(zhí)行插件型號(hào)設(shè)置、元件和頁(yè)面投退的腳本函數(shù)。這是由于部分插槽是多選型號(hào),可根據(jù)實(shí)際需求通過(guò)SetBoardType腳本設(shè)置當(dāng)前投入的插件型號(hào),而部分頁(yè)面的有效性和插件型號(hào)關(guān)聯(lián),例如某頁(yè)面的功能是否執(zhí)行的表達(dá)式為“B08_BOARD_TYPE==NR1501”,則需根據(jù)B08的當(dāng)前型號(hào)進(jìn)行替換和使能表達(dá)式的計(jì)算,通過(guò)執(zhí)行如Enable、Disable(B02, AdcSample)的腳本實(shí)現(xiàn)元件、頁(yè)面投退,可刷新變量庫(kù)中變量的狀態(tài),被退出的信號(hào)不輸出到最終的產(chǎn)物文件中。
圖3 腳本執(zhí)行過(guò)程
2.3 表達(dá)式計(jì)算模塊
If語(yǔ)句、部分腳本函數(shù)都有表達(dá)式,表達(dá)式支持算術(shù)四則運(yùn)算、邏輯運(yùn)算、C庫(kù)函數(shù)、系統(tǒng)軟件平臺(tái)定義的接口函數(shù),表達(dá)式中可包括宏、定值。當(dāng)條件為1時(shí)執(zhí)行該分支或函數(shù),否則不執(zhí)行。例如處理IEC61850的數(shù)據(jù)集時(shí),需判斷信號(hào)的顯示屬性是否對(duì)IEC61850進(jìn)程可見,此時(shí)需計(jì)算信號(hào)的顯示屬性表達(dá)式。表達(dá)式計(jì)算流程如圖4所示。
在圖4中,為避免重復(fù)計(jì)算,先從緩存hash表中查找表達(dá)式計(jì)算值,如果找到則返回,首次計(jì)算后,將表達(dá)式和值存入hash表中。對(duì)于擴(kuò)展格式的表達(dá)式,需進(jìn)行預(yù)處理工作。例如對(duì)于包括:的形如“B02.I1n:B02.I2n”的表達(dá)式,根據(jù)當(dāng)前定值是取1次側(cè)的值或取2次側(cè)的值,提取其中1側(cè)進(jìn)行運(yùn)算。對(duì)于層次變量名,例如B02.I1n,用該定值的設(shè)置值進(jìn)行替換。最后根據(jù)C語(yǔ)言的優(yōu)先級(jí)采用遞歸下降的算法計(jì)算得出值。
圖4 表達(dá)式計(jì)算流程
3.1 元件腳本應(yīng)用
以過(guò)流保護(hù)OverCurrent元件為例,過(guò)流元件實(shí)例化成OC1、OC2等多個(gè)實(shí)例后,每個(gè)實(shí)例的變量都有相同的配置需求,例如部分變量配置到報(bào)告菜單、錄波、定值等??蓪⑦@些相同的操作進(jìn)行抽象歸類,以腳本的形式形成可共享的API函數(shù)庫(kù),提供給模塊研發(fā)人員編寫。在模塊化的元件內(nèi)增加腳本段,用于定義單個(gè)元件的配置規(guī)則,包括引用表添加、定值分組、邏輯節(jié)點(diǎn)配置等功能。過(guò)流元件的腳本段定義示例如圖5所示。
圖5 元件腳本應(yīng)用
在圖5中,AddTab是配置引用表功能的腳本函數(shù),把變量oc_en添加到binchg引用表;AddParaGroup是配置定值分組的腳本函數(shù),把變量oc_mode添加到定值組OC_Settings;SetDAI是映射變量和邏輯節(jié)點(diǎn)數(shù)據(jù)屬性短地址的函數(shù),表示把變量oc_en填充到GGIO1.SPCSO1.stVal的sAddr屬性。
3.2 全局腳本應(yīng)用
以裝置選型MOT全局為例,闡述全局腳本的使用過(guò)程:
(1)定義功能選型配置文件格式,裝置研發(fā)人員在研發(fā)版本配置軟件的功能選型編輯界面中,以編輯層次樹的方式,完成選型問題設(shè)計(jì)劃分,輸入問題的若干候選項(xiàng)和默認(rèn)值??稍O(shè)置問題選項(xiàng)的強(qiáng)制、互斥等條件表達(dá)式,根據(jù)其他問題的當(dāng)前選項(xiàng)值設(shè)置某個(gè)問題強(qiáng)制選項(xiàng)值或灰化互斥部分可選項(xiàng)。條件表達(dá)式是問題名、選項(xiàng)值、常量、全局變量的邏輯組合語(yǔ)句。
(2)使用腳本函數(shù)和規(guī)則文本接口,裝置研發(fā)人員在研發(fā)版本配置軟件的功能選型編輯界面中,編寫和問題、選項(xiàng)關(guān)聯(lián)的腳本。支持使用的全局腳本函數(shù)包括:設(shè)置插件型號(hào)SetBoardType、顯示/隱藏插件ShowBoard/HideBoard、修改系統(tǒng)配置選項(xiàng)SetSysCfg等。
(3)用戶在用戶版本配置軟件中,根據(jù)實(shí)際工程配置需求,選擇每個(gè)問題的對(duì)應(yīng)選項(xiàng)。每個(gè)選項(xiàng)的切換會(huì)觸發(fā)實(shí)時(shí)腳本執(zhí)行引擎,執(zhí)行和選項(xiàng)對(duì)應(yīng)的腳本,實(shí)現(xiàn)硬件型號(hào)切換、軟硬件功能模塊投入和退出、可視化頁(yè)面隱藏和顯示、變量屬性修改等功能。
全局腳本應(yīng)用如圖6所示,當(dāng)用戶切換每個(gè)問題的當(dāng)前選項(xiàng)時(shí),用戶版本配置軟件將腳本中的問題名稱用當(dāng)前選項(xiàng)替換,并調(diào)用腳本執(zhí)行引擎,執(zhí)行相關(guān)腳本函數(shù)。
圖6 全局腳本應(yīng)用
介紹了基于元件腳本、全局腳本的電力系統(tǒng)嵌入式裝置的可配置方案,裝置研發(fā)人員可開發(fā)通用的功能配置,并提供可選功能描述和選項(xiàng),用戶根據(jù)實(shí)際工程需求進(jìn)行功能可控選擇,通過(guò)內(nèi)置腳本,自動(dòng)執(zhí)行相關(guān)函數(shù),修改配置數(shù)據(jù)和界面顯示?;诳膳渲?、可復(fù)用的腳本,顯著減少了裝置二次開發(fā)工作量,提高了研發(fā)效率和產(chǎn)品的通用性、適用范圍,已經(jīng)在電力系統(tǒng)保護(hù)測(cè)控裝置中大規(guī)模適用,取得了較好的經(jīng)濟(jì)效益。
[1] 賀 敏,陳宏君.組件開發(fā)架構(gòu)及在繼電保護(hù)配置軟件中的應(yīng)用[J].軟件工程,2016,19(1):35-38.
[2] 李 響,劉國(guó)偉,馮亞東,等.新一代控制保護(hù)系統(tǒng)通用硬件平臺(tái)設(shè)計(jì)與應(yīng)用[J].電力系統(tǒng)自動(dòng)化,2012,36(14):52-55.
[3] 孫振華,高傳發(fā),任華鋒,等.新型基于MPC8309的微機(jī)繼電保護(hù)平臺(tái)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(3):105-109.
[4] 陳翔宇,王冬青,李 剛,等.基于通用平臺(tái)的智能變電站一體化設(shè)計(jì)和整合應(yīng)用[J].電網(wǎng)技術(shù),2014,38(1):58-62.
[5] 郭 瑋,田錄林,張永良,等.基于嵌入式PLC軟核的通用保護(hù)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].電力系統(tǒng)保護(hù)與控制,2014,42(16):122-126.
[6] 陳宏君,劉克金,馮亞東,等.新一代保護(hù)測(cè)控裝置配套工具軟件設(shè)計(jì)與應(yīng)用[J].電力系統(tǒng)自動(dòng)化,2013,37(20):92-96.
[7] 徐 兵,沈玉利,謝仕義.嵌入式Web服務(wù)器端腳本引擎設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(15):3933-3935.
[8] 屈景怡,陳鐘玉,吳仁彪.基于自定義腳本的適配參數(shù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2015,36(11):3134-3139.
[9] 張 強(qiáng),郭麗麗,馬振林.基于模型自動(dòng)判讀的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(7):17-20.
[10] 何 嘯,麻志毅,王瑞超,等.語(yǔ)義可配置的模型轉(zhuǎn)換[J].軟件學(xué)報(bào),2013,24(7):1436-1454.
[11]IEC/TC57.Communicationnetworksandsystemsforpowerutilityautomation-part6:configurationdescriptionlanguageforcommunicationinelectricalsubstationrelatedtoIEDs[S].[s.l.]:[s.n.],2009.
[12]IEC/TC57.Communicationnetworksandsystemsforpowerutilityautomation,part7-4:basiccommunicationstructure-compatiblelogicalnodeclassesanddataobjectclasses[S].[s.l.]:[s.n.],2010.
[13]MediniQVTproject[EB/OL].2012.http://projects.ikv.de/qvt.
[14]ATLflowproject[EB/OL].2013.http://opensource.urszeidler.de/ATLFlow.
Design of C Style Script Structure and Its Application in Power System
CHEN Hong-jun,XIONG Hui
(NR Electric Co.,Ltd.,Nanjing 211102,China)
In different countries and regions,power system users have certain difference on the device function and configuration,so the tool software need to achieve the flexible allocation of equipment requirements.Developers also need to reduce the HMI configuration work when using modular and graphical components to setup the device.The solution of C style script is presented,in which API interface is suitable for power system device configuration,and the scripts support variable properties setting,signals linking,parameters grouping,enable or disable components,IEC61850 modeling and other functions.The main modules and script parser processes are implemented by establishment of the key algorithms including lexical extraction based on table driven,script execution based on command mode,expression calculation based on the recursive descent method,and lookup based on multiple Hash.60 000 lines of resolution takes less than 3 seconds.Device developers can define components script,to realize the automatic configuration of reuse.They also can define global scripts,which provide maximum device features and configuration options.Practice shows that class C script can significantly improve the development efficiency of measurement and control device for power system protection and scope of the product.
C style script;component script;global script;device configuration
2016-05-03
2016-09-07
時(shí)間:2017-02-17
國(guó)家“863”高技術(shù)發(fā)展計(jì)劃項(xiàng)目(2015AA050101)
陳宏君(1981-),男,碩士,高級(jí)工程師,研究方向?yàn)殡娏ο到y(tǒng)平臺(tái)軟件開發(fā)。
http://www.cnki.net/kcms/detail/61.1450.TP.20170217.1632.074.html
TP39
A
1673-629X(2017)03-0171-05
10.3969/j.issn.1673-629X.2017.03.036