国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

圖形化程序特征碼的算法設(shè)計(jì)與應(yīng)用

2017-04-19 10:17:57賀敏陳宏君
關(guān)鍵詞:連接點(diǎn)圖形化數(shù)據(jù)流

賀敏,陳宏君

(1.國網(wǎng)電力科學(xué)研究院,南京 211106;2.南京南瑞繼保電氣有限公司)

圖形化程序特征碼的算法設(shè)計(jì)與應(yīng)用

賀敏1,陳宏君2

(1.國網(wǎng)電力科學(xué)研究院,南京 211106;2.南京南瑞繼保電氣有限公司)

提出一種圖形化頁面程序特征碼的提取算法。該算法根據(jù)圖形化頁面內(nèi)符號間輸入-輸出數(shù)據(jù)流關(guān)系和數(shù)據(jù)類型信息,形成頁面的中間信息文本。中間信息文本由該頁面對外輸入的輸出變量名、變量類型,相關(guān)符號的輸入、輸出形參類型和參數(shù)設(shè)置值,輸出變量的數(shù)據(jù)流調(diào)用表達(dá)式等關(guān)鍵內(nèi)容拼接組成,基于中間信息文本計(jì)算形成CRC,作為頁面的特征碼。通過計(jì)算比較廠家內(nèi)部修改頁面、現(xiàn)場工程修改頁面之間的特征碼,給出頁面程序修改是否一致的結(jié)果,該算法可準(zhǔn)確甄別由于符號位置偏差、中間變量命名不同等原因?qū)е碌捻撁娲鎯ξ募煌?,但?shí)際功能一致的情況。

圖形化頁面;特征碼;中間信息文本;調(diào)用表達(dá)式

[5]利用載體字符計(jì)算出一系列偽隨機(jī)代碼,形成可及時(shí)糾正錯(cuò)誤的可適應(yīng)的文本數(shù)字水印。參考文獻(xiàn)[6]針對短文本分類任務(wù)中文本表示存在的高維稀疏問題,提出基于自編碼網(wǎng)絡(luò)的短文本流形表示方法,可較好地描述短文本特征信息。尚未有參考文獻(xiàn)闡述圖形化頁面特征碼提取方案,常規(guī)的方法是比較圖形化頁面文件或產(chǎn)物文件。由于圖形化繪制時(shí),只要有一點(diǎn)點(diǎn)位置偏差,頁面存儲的文件必然不同,故沒有可行性。而比較產(chǎn)物的方法,是將圖形化頁面形成代碼,將代碼編譯形成HEX文件,比較HEX文件是否一致。然而,在繪制修改頁面時(shí),不能確保廠家內(nèi)、現(xiàn)場新建、刪除連接線的順序前后一致。當(dāng)中間連接線變量名是根據(jù)一定規(guī)則在繪制階段自動命名時(shí),連接線的命名由于繪制順序不一致產(chǎn)生不同,故形成的連接變量名可能不同,導(dǎo)致形成的C代碼產(chǎn)物或編譯后的目標(biāo)文件可能是不同的。而現(xiàn)場用戶希望在編譯前就能校驗(yàn)兩者頁面的一致性,并能排除中間變量命名、無關(guān)聯(lián)關(guān)系的符號位置變化的無效差異,故通過比較產(chǎn)物的方式是行不通的。

本文設(shè)計(jì)了一種圖形化頁面程序特征碼提取算法,通過比較兩個(gè)頁面的特征碼,可快速得出頁面修改是否一致的結(jié)論。

1 特征碼算法設(shè)計(jì)

根據(jù)圖形化頁面的拓?fù)潢P(guān)系和數(shù)據(jù)類型信息,形成頁面的中間信息文本。中間信息文本包括該頁面對外輸入的輸出變量名、變量類型,相關(guān)符號的輸入、輸出變量類型和參數(shù)設(shè)置值,符號的數(shù)據(jù)流依賴調(diào)用關(guān)系等關(guān)鍵內(nèi)容,基于中間信息文本計(jì)算形成CRC,作為頁面的特征碼,通過比較修改前后CRC1和CRC2是否相等,可判斷頁面是否一致,其中形成頁面的中間信息文本是關(guān)鍵步驟。

1.1 中間信息文本形成方案

圖1 圖形化頁面黑盒模型

如圖1所示,將圖形化頁面視為1個(gè)黑盒子,對外可見部分為頁面輸入和頁面輸出,內(nèi)部為符號塊和連接線。

輸入變量通過內(nèi)部功能函數(shù)符號的數(shù)據(jù)流傳遞,最終連接到輸出變量,其近似關(guān)系模型可用下述矩陣表示:

根據(jù)輸出變量的數(shù)據(jù)流依賴關(guān)系,可形成若干輸出變量的調(diào)用表達(dá)式,并且可以回溯到輸入變量,順次拼接表達(dá)式中的符號狀態(tài)信息,就能記錄該頁面的斷面數(shù)據(jù),即經(jīng)過拓?fù)溥B接處理后的中間信息文本。如圖2所示,中間信息文本形成步驟如下:

① 讀取圖形化頁面文件,包括輸入符號、輸出符號、功能函數(shù)符號、連接線等符號數(shù)據(jù)。

② 通過連接線記錄的連接起始端符號ID、連接終止符號ID、連接起始變量名、連接終止變量名,形成輸入輸出的網(wǎng)狀關(guān)系,每條連接線記錄起始符號、終止符號、起始連接點(diǎn)、終止連接點(diǎn)的數(shù)據(jù)指針,每個(gè)符號的連接點(diǎn)記錄與之相連接的連接線指針。

③ 根據(jù)連接線連接關(guān)系和指針雙向記錄結(jié)構(gòu),形成符號的輸入-輸出數(shù)據(jù)流依賴關(guān)系,根據(jù)數(shù)據(jù)流關(guān)系,形成有向無環(huán)的AOV等價(jià)網(wǎng)絡(luò),即頁面可視為M個(gè)輸入、N個(gè)輸出的黑盒子,內(nèi)部的功能函數(shù)網(wǎng)狀連接形成。通過匯總輸出變量的計(jì)算表達(dá)式和輔助信息,可得到等價(jià)中間信息文本。

④ 提取匯總頁面對外的輸入、輸出符號,對輸出變量按照名字進(jìn)行降序排列(依次比較每位ASCII字符的數(shù)值,相同條件下短名字優(yōu)先,例如ABC>ABCD)。

⑤ 設(shè)置循環(huán)變量i=1, 并置N=輸出變量個(gè)數(shù)。

⑥ 依次取出排序后的輸出變量,以輸出變量Outi為終止點(diǎn),前向回溯前驅(qū)符號的各個(gè)分支路徑,按照廣度優(yōu)先算法完成前向回溯,直至回溯到輸入變量或輸入為0的變量。

⑦ 匯總各分支回溯路徑中的符號名、符號的輸入-輸出名,逐級替換,得到輸出變量的調(diào)用計(jì)算表達(dá)式和輔助設(shè)置信息。輔助設(shè)置信息包括分支路徑中各符號的輸入和輸出變量類型、變量初始值、參數(shù)設(shè)置名和設(shè)置值,拼接形成字符文本段Si。

⑧i=i+1,i≤N,則重復(fù)步驟⑥到步驟⑧。

⑨ 將排序后的各個(gè)輸出變量的文本段匯總形成頁面的中間信息文本S=S1+S2+…+SN。

圖2 中間信息文本形成方案

圖3 圖形化頁面數(shù)據(jù)流示意圖

以圖3為例,介紹中間信息文本的具體內(nèi)容。輸出變量Out1前驅(qū)是XOR2, 則遍歷L1時(shí),可得到式(1):

(1)

之后遍歷XOR2的2個(gè)輸入連接線L2,L3,可得到式(2):

(2)

代入式(1)可得到式(3):

Out1=XOR2(AND3.b1, OR3.b1)

(3)

再遍歷 AND3的輸入連接線L4、L5、L6,OR3的輸入連接線L7、L8、L9,可得式(4)、式(5):

(4)

(5)

代入到式(3),可得到Out1的計(jì)算表達(dá)式為:

Out1=XOR2(AND3(In1,In2,In3),OR3(In4, In5,In6))

假設(shè)各個(gè)符號的變量類型為char、初始值為0,則輔助信息為:

In1.type=char,In2.type=char,In3.type=char Out1.type=char

AND3.a1.type=char,…XOR2.b1.type=char;

AND3.b1.init=0; OR3.b1.init=0;XOR2.b1.init=0;

最終輸出變量的中間信息文本不包括中間連接線變量名,可排除內(nèi)部連接線命名不同時(shí)誤報(bào)不一致的情況。中間信息文本記錄該變量名從輸入變量到輸出變量整個(gè)分支路徑的關(guān)鍵信息,能有效檢測出連接關(guān)系變化、調(diào)用順序變化、功能函數(shù)變化、變量初始值變化、變量類型變化等差異。同時(shí)在拼接輸出變量的信息文本時(shí),對變量名進(jìn)行排序處理,對于獨(dú)立子網(wǎng)絡(luò)的符號調(diào)整位置,不影響最終的中間信息文本。

1.2 AOV網(wǎng)廣度優(yōu)先遍歷

在圖2中,基于AOV網(wǎng)廣度優(yōu)先的遍歷是個(gè)關(guān)鍵步驟。基于AOV網(wǎng)的處理方法,是把圖形符號之間拓?fù)溥B接關(guān)系用有向圖表示,在圖中用頂點(diǎn)表示活動,用弧表示活動間的優(yōu)先關(guān)系[7-8]。在AOV網(wǎng)中,不應(yīng)該出現(xiàn)有向環(huán),這意味著某項(xiàng)活動以自己為先決條件,程序的數(shù)據(jù)流存在閉環(huán)依賴,在遍歷時(shí)會導(dǎo)致無限循環(huán)。而實(shí)際應(yīng)用中圖形化程序往往存在反饋閉環(huán),即上個(gè)點(diǎn)的狀態(tài)作為下個(gè)點(diǎn)的輸入,這需要在遍歷時(shí)進(jìn)行檢測,如果某個(gè)輸出點(diǎn)最終遍歷回溯到自身,則終止該輸出點(diǎn)的前向遍歷。

編程符號包括若干輸入輸出連接點(diǎn),可以從輸出點(diǎn)引出連接線到輸入點(diǎn),也可以從連接線中間引出連接線到輸入點(diǎn),從中間引出的連接線,在頁面連接預(yù)處理階段,將從邏輯上等價(jià)從源輸出點(diǎn)連接。定義連接點(diǎn)類為CNode、符號基類為CShape、連接線類為CLine, 則三者關(guān)鍵數(shù)據(jù)結(jié)構(gòu)定義如下:

class CNode { public:

CNode(CShape* parent); ~CNode();

QString name; //連接點(diǎn)名

QList lineList; //關(guān)聯(lián)的連接線

};

class CShape { public:

CShape(CPage* page); virtual ~CShape();

QString id; //uuid唯一標(biāo)識

QString type; //符號類型名

QList inList, outList; //輸入、出點(diǎn)列表

};

class Cline { public:{

Cline(CPage* page); ~Cline();

QString id; //uuid唯一標(biāo)識

QStringstartID, endID; //連接的起始、終點(diǎn)符號ID

QStringstartName, endName;//連接的輸入輸出點(diǎn)名字

CShape* pstartObj,pendObj; //連接對象指針

CNode* pstartNode, pendNode;//連接點(diǎn)指針

};

在讀取頁面數(shù)據(jù)后,建立符號ID和符號指針的hash表,并根據(jù)連接線記錄的連接符號ID和連接點(diǎn)名字信息,查找相關(guān)符號和輸入輸出點(diǎn),形成AOV網(wǎng)狀的數(shù)據(jù)結(jié)構(gòu)?;谳敵鲞B接點(diǎn)的前向回溯廣度優(yōu)先遍歷的算法思想如下:

輸入:

CNode* nd: 當(dāng)前符號的輸入點(diǎn)

QList& P: 頁面中處理過的符號

QList& V: 此鏈路已經(jīng)訪問過的連接點(diǎn)

str: 中間信息文本

輸出: 無

函數(shù) makeNodeInfo(nd, P, V,str){

If(當(dāng)前輸入點(diǎn)nd已經(jīng)存在于V) then 返回;

定義:

pline 為nd相連接的連接線

pstartnd 為 pline的起始連接點(diǎn)

pstartobj 為 pline的起始連接符號

If(pstartnd不為空) then str拼接pstartnd的信息;

If(psartobj不為空,并且不存在于P) then{

str拼接pstartobj的狀態(tài)信息,包括輸入、輸出,參數(shù)等信息

pstartobj 添加到已經(jīng)處理列表P

}

nd添加到V;

If(pstartobj不為空) then{

foreach(nd1, pstartobj->inList)

遞歸調(diào)用makeNodeInfo(nd1, P, V, str)

}

}

2 應(yīng)用實(shí)例

2.1 驗(yàn)證修改前后特征碼不一致

對表1中的內(nèi)容進(jìn)行修改能通過特征碼判斷出不一致。

表1 特征碼不一致的修改

例如圖4中,將邏輯運(yùn)算輸入AI_CLOSE_IND、CI_CLOSE_IND順序調(diào)換,可驗(yàn)證出修改前后的特征碼不一致。

圖4 調(diào)換連接關(guān)系后判斷修改不一致

2.2 驗(yàn)證修改前后特征碼一致

對表2中的內(nèi)容進(jìn)行修改能通過特征碼判斷出一致。例如圖5中,將獨(dú)立網(wǎng)絡(luò)PERMIT_CLOSE、INGATERING_235整體位置移動,驗(yàn)證出修改前后的特征碼一致。

表2 特征碼一致的修改

圖5 獨(dú)立網(wǎng)絡(luò)調(diào)整位置判斷修改一致

結(jié) 語

參考文獻(xiàn)

[1] 鄧秋娥,杜奇壯,盧娟.圖形化編程在微機(jī)保護(hù)中的實(shí)現(xiàn)[J].繼電器,2008,36(3):1-4.

[2] 韋恒,胡月.圖形化編程技術(shù)在微機(jī)保護(hù)研發(fā)中的應(yīng)用.電力科學(xué)與工程,2010,26(5):26-29.

[3] 陳宏君,劉克金,馮亞東,等.新一代保護(hù)測控裝置配套工具軟件設(shè)計(jì)與應(yīng)用[J].電力系統(tǒng)自動化,2013,37(20):92-96.

[4] 劉克金,陳宏君,馮亞東,等.新一代控制保護(hù)系統(tǒng)圖形化編程軟件設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2014,27(10):82-87.

[5] 陳翔.基于文本特征的水印算法設(shè)計(jì)及關(guān)鍵技術(shù)研究[J].微型電腦應(yīng)用,2013,29(8):1591-1599.

[6] 魏超,羅森林,張競,等.自編碼網(wǎng)絡(luò)短文本流形表示方法[J].浙江大學(xué)學(xué)報(bào),2015,49(9):62-64.

[7] 陳宏君,劉克金.嵌入式裝置圖形化程序代碼生成技術(shù)[J].電腦編程技巧與維護(hù),2015,8(4):95-97.

[8] Thomas H Cormen,Charles E Leiserson.Introduction to Algorithms[M].北京:機(jī)械工業(yè)出版社,2009.

賀敏(高級工程師),研究方向?yàn)殡娏ο到y(tǒng)及其自動化軟件;陳宏君(高級工程師),研究方向?yàn)榍度胧杰浖脚_開發(fā)。

Design and Application of Visual Graphical Program Feature Code

He Min1,Chen Hongjun2

(1.State Grid Electric Power Research Institute,Nanjing 211106,China;2.NR Electric Co.,Ltd.)

In the paper,a visualization page application signature extraction algorithm is proposed.The algorithm forms the middle information text of the page according to the inter symbol input and output data stream relation and data type information in the graph.The middle information text is composed of the key contents such as the page text among foreign input output variable name,variable type,the symbolic type of input and output parameters and parameter setting,the data flow call expression of output variables.The CRC calculation is formed based on the middle information text,which is used as the signature of the page.By comparing the calculation factory internal change page and the field engineering changes between the characteristics of the code,the result of whether the page program changes are consistent is given.The algorithm can accurately identify the symbol position deviation,the intermediate variable naming different causes such as the storage file,but the same function.

visual programming page;QR code;middle information text;call sentence

TP393

A

引 言

?士然

2016-08-24)

圖形化編程已經(jīng)在電力系統(tǒng)、工業(yè)控制等領(lǐng)域進(jìn)行了大量的應(yīng)用[1-4]。即將投運(yùn)的直流輸入控制保護(hù)、柔性輸電保護(hù)工程,當(dāng)遇到新的需求時(shí),需要修改部分圖形化頁面程序。在這種情況下,首先是研發(fā)人員在廠家內(nèi)修改相關(guān)程序,做完相關(guān)試驗(yàn)并經(jīng)過審核確認(rèn)后,將修改過的頁面、修改步驟文檔發(fā)給現(xiàn)場。技術(shù)支持人員從現(xiàn)場程序服務(wù)器簽出需要修改的頁面,根據(jù)修改說明步驟進(jìn)行修改和編譯,下載到裝置。現(xiàn)場服務(wù)器是網(wǎng)絡(luò)隔離的,不允許USB等端口操作,不允許直接用廠家修改的文件覆蓋相關(guān)內(nèi)容,這就存在研發(fā)修改的頁面和現(xiàn)場修改的頁面是否修改一致的問題,需要有校驗(yàn)的手段。

猜你喜歡
連接點(diǎn)圖形化數(shù)據(jù)流
基于A3航攝儀的小基高比影像連接點(diǎn)精提取技術(shù)研究
汽車維修數(shù)據(jù)流基礎(chǔ)(下)
LKJ自動化測試系統(tǒng)圖形化技術(shù)研究
一種提高TCP與UDP數(shù)據(jù)流公平性的擁塞控制機(jī)制
基于彈性厚粘膠層的結(jié)構(gòu)性連接點(diǎn)響應(yīng)建模和預(yù)測
汽車文摘(2016年6期)2016-12-07 00:23:38
運(yùn)用圖形化聽寫式復(fù)習(xí),構(gòu)建高效地理課堂
基于數(shù)據(jù)流聚類的多目標(biāo)跟蹤算法
基于相關(guān)性篩選原理的公共連接點(diǎn)諧波畸變量的分層量化
電測與儀表(2015年3期)2015-04-09 11:37:22
顏學(xué)海:把握投資創(chuàng)新與模式創(chuàng)新的連接點(diǎn)
圖形化地區(qū)電網(wǎng)無功優(yōu)化軟件開發(fā)與應(yīng)用
祥云县| 柳林县| 淳化县| 霍城县| 焦作市| 托里县| 上虞市| 泸水县| 喀喇| 旅游| 广平县| 凭祥市| 左贡县| 定日县| 彰化县| 丰宁| 综艺| 安国市| 通辽市| 巍山| 合江县| 铜梁县| 翁源县| 姜堰市| 沙田区| 和静县| 合山市| 青岛市| 丹巴县| 昌黎县| 樟树市| 仪陇县| 会宁县| 光山县| 洪江市| 建水县| 祥云县| 云南省| 普兰县| 辰溪县| 苏尼特左旗|