一種邏輯編程的實(shí)現(xiàn)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及編程的實(shí)現(xiàn)技術(shù),尤其涉及一種邏輯編程的實(shí)現(xiàn)方法和裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,一般基于圖形化、模塊化的功能塊圖(Funct1n Block Drawing,FBD)編程,這種編程方式因?yàn)榫哂兄庇^性強(qiáng)、且易于維護(hù)的特點(diǎn),在工業(yè)控制和電力系統(tǒng)繼電保護(hù)領(lǐng)域得到廣泛應(yīng)用。
[0003]然而,在FBD編程的實(shí)現(xiàn)過(guò)程中,具體是根據(jù)當(dāng)前的圖形化頁(yè)面,采用圖形化編程工具直接編譯生成可執(zhí)行程序,這樣,在每次調(diào)整邏輯時(shí),均需要重新編譯和下載新生成的可執(zhí)行程序,開(kāi)發(fā)效率低,使用范圍受限。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明實(shí)施例期望提供一種邏輯編程的實(shí)現(xiàn)方法和裝置,能夠簡(jiǎn)化和方便邏輯編程的實(shí)現(xiàn),從而提高開(kāi)發(fā)效率。
[0005]為達(dá)到上述目的,本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0006]本發(fā)明實(shí)施例提供一種邏輯編程的實(shí)現(xiàn)方法,該方法包括:
[0007]根據(jù)需要確定所需元件,并確定各元件之間的連接關(guān)系;
[0008]將所確定的元件以及各元件之間的連接關(guān)系保存為配置文件;
[0009]在邏輯編程的初始化階段,解析所述配置文件,獲取所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系;
[0010]根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈;
[0011]在邏輯編程的運(yùn)行階段,依次執(zhí)行所述任務(wù)鏈的各個(gè)任務(wù)。
[0012]上述方案中,所述方法還包括:預(yù)先設(shè)置元件的模型,并根據(jù)所述元件的模型構(gòu)建元件庫(kù)信息索引表;所述元件庫(kù)信息索引表包括元件的類(lèi)型名、實(shí)例名、元件的構(gòu)造函數(shù)、元件的初始化函數(shù)、以及元件的任務(wù)函數(shù)。
[0013]上述方案中,根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈包括:通過(guò)查找元件庫(kù)信息索引表的方式根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈。
[0014]上述方案中,通過(guò)查找元件庫(kù)信息索引表的方式根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈包括:
[0015]根據(jù)各元件的實(shí)例名查找所述元件庫(kù)信息索引表,依次調(diào)用各元件的構(gòu)造函數(shù),分配數(shù)據(jù)空間并注冊(cè)元件對(duì)外接口信息,完成各元件的實(shí)例化,再依次調(diào)用各元件的初始化函數(shù)以完成各元件的數(shù)據(jù)初始化;
[0016]根據(jù)各元件之間的連接關(guān)系,將輸出變量的內(nèi)存地址寫(xiě)入輸入變量的指針中;
[0017]根據(jù)各元件之間的執(zhí)行順序查找所述元件庫(kù)信息索引表,依次將各元件的任務(wù)函數(shù)和數(shù)據(jù)信息添加到任務(wù)鏈中。
[0018]上述方案中,所述依次執(zhí)行所述任務(wù)鏈的各個(gè)任務(wù)包括:遍歷所述任務(wù)鏈,依次執(zhí)行各元件的任務(wù)函數(shù)。
[0019]本發(fā)明實(shí)施例還提供一種實(shí)現(xiàn)邏輯編程的裝置,該裝置包括:確定模塊、存儲(chǔ)模塊、解析模塊、生成模塊、以及執(zhí)行模塊;其中,
[0020]所述確定模塊用于,根據(jù)需要確定所需元件,并確定各元件之間的連接關(guān)系;
[0021]所述存儲(chǔ)模塊用于,將所確定的元件以及各元件之間的連接關(guān)系保存為配置文件;
[0022]所述解析模塊用于,在邏輯編程的初始化階段,解析所述配置文件,獲取所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系;
[0023]所述生成模塊用于,根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈;
[0024]所述執(zhí)行模塊用于,在邏輯編程的運(yùn)行階段,依次執(zhí)行所述任務(wù)鏈的各個(gè)任務(wù)。
[0025]上述方案中,所述裝置還包括:設(shè)置模塊;其中,
[0026]所述設(shè)置模塊用于,預(yù)先設(shè)置元件的模型,并根據(jù)所述元件的模型構(gòu)建元件庫(kù)信息索引表;所述元件庫(kù)信息索引表包括元件的類(lèi)型名、實(shí)例名、元件的構(gòu)造函數(shù)、元件的初始化函數(shù)、以及元件的任務(wù)函數(shù)。
[0027]上述方案中,所述生成模塊具體用于,通過(guò)查找元件庫(kù)信息索引表的方式根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈。
[0028]上述方案中,所述生成模塊通過(guò)查找元件庫(kù)信息索引表的方式根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈包括:
[0029]根據(jù)各元件的實(shí)例名查找所述元件庫(kù)信息索引表,依次調(diào)用各元件的構(gòu)造函數(shù),分配數(shù)據(jù)空間并注冊(cè)元件對(duì)外接口信息,完成各元件的實(shí)例化,再依次調(diào)用各元件的初始化函數(shù)以完成各元件的數(shù)據(jù)初始化;
[0030]根據(jù)各元件之間的連接關(guān)系,將輸出變量的內(nèi)存地址寫(xiě)入輸入變量的指針中;
[0031]根據(jù)各元件之間的執(zhí)行順序查找所述元件庫(kù)信息索引表,依次將各元件的任務(wù)函數(shù)和數(shù)據(jù)信息添加到任務(wù)鏈中。
[0032]上述方案中,所述執(zhí)行模塊具體用于,遍歷所述任務(wù)鏈,依次執(zhí)行各元件的任務(wù)函數(shù)。
[0033]本發(fā)明實(shí)施例所提供的邏輯編程的實(shí)現(xiàn)方法和裝置,根據(jù)需要確定所需元件,并確定各元件之間的連接關(guān)系;將所確定的元件以及各元件之間的連接關(guān)系保存為配置文件;在邏輯編程的初始化階段,解析所述配置文件,獲取所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系;根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈;在邏輯編程的運(yùn)行階段,依次執(zhí)行所述任務(wù)鏈的各個(gè)任務(wù)。如此,能夠通過(guò)解析配置文件的方式來(lái)簡(jiǎn)化和方便邏輯編程的實(shí)現(xiàn),在需要調(diào)整邏輯時(shí),只需更改配置文件中對(duì)應(yīng)的內(nèi)容,而不再需要重新編譯和下載新生成的可執(zhí)行程序,從而能有效提高開(kāi)發(fā)效率;另外,更改配置文件非常簡(jiǎn)單,配置文件的存儲(chǔ)和使用也非常容易,因此,本發(fā)明實(shí)施例可適用于更廣的應(yīng)用環(huán)境中。
【附圖說(shuō)明】
[0034]圖1為本發(fā)明實(shí)施例邏輯編程的實(shí)現(xiàn)方法的流程示意圖;
[0035]圖2為本發(fā)明實(shí)施例邏輯與元件的數(shù)據(jù)信息的結(jié)構(gòu)體示意圖;
[0036]圖3為本發(fā)明實(shí)施例元件庫(kù)信息索引表的組成結(jié)構(gòu)示意圖;
[0037]圖4為本發(fā)明實(shí)施例生成可執(zhí)行任務(wù)鏈的過(guò)程中配置文件和元件庫(kù)信息索引表之間的依賴(lài)關(guān)系示意圖;
[0038]圖5為本發(fā)明實(shí)施例所述元件的實(shí)例、輸入、輸出注冊(cè)表的組成示意圖;
[0039]圖6為本發(fā)明實(shí)施例任務(wù)鏈表的組成結(jié)構(gòu)示意圖;
[0040]圖7為本發(fā)明實(shí)施例執(zhí)行任務(wù)鏈的流程示意圖;
[0041]圖8為本發(fā)明實(shí)施例實(shí)現(xiàn)邏輯編程的裝置的組成結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0042]下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。
[0043]在本發(fā)明實(shí)施例中,根據(jù)需要確定所需元件,并確定各元件之間的連接關(guān)系;將所確定的元件以及各元件之間的連接關(guān)系保存為配置文件;在邏輯編程的初始化階段,解析所述配置文件,獲取所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系;根據(jù)所述各元件的實(shí)例名、各元件之間的執(zhí)行順序、以及各元件之間的連接關(guān)系生成可執(zhí)行任務(wù)鏈;在邏輯編程的運(yùn)行階段,依次執(zhí)行所述任務(wù)鏈的各個(gè)任務(wù)。
[0044]圖1為本發(fā)明實(shí)施例邏輯編程的實(shí)現(xiàn)方法的流程示意圖,如圖1所示,本發(fā)明實(shí)施例邏輯編程的實(shí)現(xiàn)方法包括:
[0045]步驟SlOO:根據(jù)需要確定所需元件,并確定各元件之間的連接關(guān)系;
[0046]這里,用戶(hù)可以通過(guò)文本編輯或者圖形化編程工具來(lái)根據(jù)需要選擇所需元件,并確定各元件之間的連接關(guān)系。
[0047]在步驟SlOO之前,該實(shí)現(xiàn)方法還包括:預(yù)先設(shè)置元件的模型,并根據(jù)所述元件模型構(gòu)建元件庫(kù)信息索引表,所述元件庫(kù)信息索引表中包括若干個(gè)元件的模型信息;具體的,所述元件庫(kù)信息索引表包括元件的類(lèi)型名、實(shí)例名、元件的構(gòu)造函數(shù)、元件的初始化函數(shù)、以及元件的任務(wù)函數(shù)。
[0