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

一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法

文檔序號:6283375閱讀:216來源:國知局
專利名稱:一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種工業(yè)控制系統(tǒng)的運算方法,尤其是一種滿足時標(biāo)傳遞的開關(guān)量邏
輯運算方法。
背景技術(shù)
現(xiàn)有工業(yè)分布式控制系統(tǒng)中,需要對700個左右的開關(guān)量進(jìn)行帶時標(biāo)能的邏輯運 算。這些開關(guān)量數(shù)據(jù)來自不同的分布式部署的I/0控制站,I/O控制站對這些開關(guān)量數(shù)據(jù) 的采集周期為40ms,各1/0站采集到數(shù)據(jù)后,集中傳送至系統(tǒng)服務(wù)器實時數(shù)據(jù)庫,因此計算 周期必須小于40ms。 由于需要運算的開關(guān)量數(shù)據(jù)可能分布在不同的I/O站,因此如果將此運算任務(wù)部 署在1/0站則涉及到數(shù)據(jù)的站間引用,而1/0站數(shù)據(jù)的站間引用為秒級,難以實現(xiàn)。因此需 要將此計算任務(wù)部署在系統(tǒng)服務(wù)器。 此類開關(guān)量邏輯運算目前常見的解決方案有兩種 某運算任務(wù)A,分離線和在線兩部分即離線部分進(jìn)行邏輯表達(dá)式的解析和編譯, 在線部分加載編譯后的目標(biāo)算法文件并執(zhí)行運算。離線部分處理過程如圖1所示1、先按 照約定的格式編輯文本方式的邏輯方程源文件;2、離線軟件加載此文件并解析,翻譯為等 價的中間代碼的邏輯方程源文件;3、調(diào)用相關(guān)平臺接口編譯此中間代碼邏輯方程源代碼, 生成目標(biāo)文件。比如VBA代碼就是一種成熟的中間格式。在線部分處理過程如圖2所示 1、在線軟件加載離線軟件編譯生成的目標(biāo)文件;2、向?qū)崟r數(shù)據(jù)庫讀取邏輯方程所包含的所 有開關(guān)量值、時標(biāo)、以及無效位;3、調(diào)用相關(guān)平臺接口函數(shù),執(zhí)行邏輯算法進(jìn)行運算;4、將 計算的結(jié)果寫回數(shù)據(jù)庫,其中,2、3、4為周期處理,同時因為調(diào)用中間平臺接口執(zhí)行運算,所 以運算周期比較長。 采用此種方式,雖然可以省去運算任務(wù)自己處理編譯和執(zhí)行運算邏輯,但是由于 每次計算都需要向?qū)崟r數(shù)據(jù)庫讀寫所有的開關(guān)量值,所以當(dāng)需要計算的開關(guān)量點很多的時 候,讀寫數(shù)據(jù)庫就會耗費大量的時間。根據(jù)當(dāng)前實時數(shù)據(jù)庫的性能只能將此任務(wù)的最小運 算周期為500ms,而在實際測試中,讀寫1000個左右開關(guān)量大約各需要耗費200ms,計算需 要耗費100ms。 同樣由于是周期500ms向?qū)崟r數(shù)據(jù)庫讀取全部開關(guān)量值,而開關(guān)量的采集周期為
40ms,所以很容易產(chǎn)生遺漏數(shù)據(jù)的情況發(fā)生,最終導(dǎo)致計算結(jié)果不正確。 某運算任務(wù)B處理流程圖如圖3所示1、讀數(shù)據(jù)庫獲得邏輯運算所需要的開關(guān)量
值;2、解析算法邏輯;3、執(zhí)行計算;4、計算結(jié)果寫數(shù)據(jù)庫。此四個部分為周期循環(huán)執(zhí)行,每
次做的工作完全一樣。此類解決方法為典型的解釋執(zhí)行方式。即對所有邏輯方程解釋一
條執(zhí)行一條,周期反復(fù)。此種方法由于每個周期都需要進(jìn)行讀數(shù)據(jù)庫、解析邏輯表達(dá)式、執(zhí)
行運算、寫數(shù)據(jù)庫,存在的問題與運算任務(wù)A相似,并且由于需要周期解釋同一個邏輯表達(dá)
式所以更耗時,運算效率比較低。
有鑒于此特提供本發(fā)明。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)的不足,提供一種滿足時標(biāo)傳遞的開
關(guān)量邏輯運算方法,該滿足時標(biāo)傳遞要求的開關(guān)量運算數(shù)據(jù)安全、準(zhǔn)確、執(zhí)行計算效率高。 為解決上述技術(shù)問題,本發(fā)明采用技術(shù)方案的基本構(gòu)思是一種滿足時標(biāo)傳遞的 開關(guān)量邏輯運算方法,其特征在于所述的實現(xiàn)方法為a、由實時數(shù)據(jù)庫向計算任務(wù)發(fā)送 變化的開關(guān)量數(shù)據(jù);b、將輸送進(jìn)數(shù)據(jù)區(qū)中變化的開關(guān)量數(shù)據(jù)采用哈希表結(jié)構(gòu)存儲;C、在計 算任務(wù)啟動的同時讀取解析源表達(dá)式,通過解析將文本格式邏輯方程轉(zhuǎn)換為自定義格式存 儲的邏輯表達(dá)式;d、于計算任務(wù)中直接調(diào)用步驟b中存儲的開關(guān)量數(shù)據(jù)和步驟c中按自定 義格式存儲的邏輯表達(dá)式,執(zhí)行計算;e、將計算任務(wù)的結(jié)果寫入實時數(shù)據(jù)庫。
所述的步驟a為通過通信接口將實時數(shù)據(jù)庫中變化的開關(guān)量數(shù)據(jù)向計算任務(wù)發(fā) 送,步驟e將計算任務(wù)的計算結(jié)果通過通信接口寫進(jìn)實時數(shù)據(jù)庫。 所述的步驟c中的文本格式邏輯方程為已有編輯好的源文件,該邏輯方程有兩種類 型i純二元運算的表達(dá)式和ii含有函數(shù)的二元運算表達(dá)式,其解析轉(zhuǎn)換包括先將所描述 的邏輯方程ii中包含的函數(shù),用一個臨時變量代替,同時ii生成一個新的邏輯方程,i和ii 表達(dá)式為字符串形式;然后對其進(jìn)行詞法分析、語法分析,識別出等號、計算結(jié)果、操作數(shù)、操 作符以及函數(shù)名和函數(shù)參數(shù)信息,得到中間格式邏輯方程二元邏輯表達(dá)式和函數(shù)等式;最 后再將中綴的形式轉(zhuǎn)換為等價的后綴形式,生成新的邏輯算法,以表格的方式存儲起來。
所述的步驟C中二元邏輯表達(dá)式調(diào)入步驟d中具體的運算方法為第一,開始;第 二、判斷是否掃描完?若是,則計算結(jié)束,從棧頂取得計算結(jié)果,若否,則進(jìn)行下一步;第三、 讀一個單詞;第四、判斷是否為操作數(shù)?若是,則此單詞進(jìn)棧,然后轉(zhuǎn)到步驟二,若否,則進(jìn) 行下一步;第五、判斷是否為操作符?若否,則語法錯誤,程序退出,若是,則進(jìn)行下一步; 第六、取棧頂兩個操作數(shù);第七、運算此兩個操作數(shù)和此操作符組成的二元運算;第八、計 算結(jié)果壓棧,轉(zhuǎn)到步驟二。
所述的步驟C中函數(shù)等式調(diào)入步驟d中具體的運算方法為開始;取出函數(shù)名;取
出參數(shù);根據(jù)函數(shù)名調(diào)用函數(shù),并傳入?yún)?shù),執(zhí)行計算;得到計算結(jié)果。 采用上述技術(shù)方案后,本發(fā)明與現(xiàn)有技術(shù)相比具有以下有益效果 1 、實時數(shù)據(jù)庫向本運算任務(wù)發(fā)送變化的開關(guān)量數(shù)據(jù),此方法解決了計算任務(wù)向?qū)?br> 時數(shù)據(jù)庫讀全數(shù)據(jù)導(dǎo)致的大量時間耗費的問題。這是由于實時數(shù)據(jù)庫總是最先感知到數(shù)據(jù)
的變化(服務(wù)器層),所以也不會有數(shù)據(jù)丟失的問題,并發(fā)生變化的數(shù)據(jù)總是一部分?jǐn)?shù)據(jù),
所以減少了通信量,提高了通信效率; 2、數(shù)據(jù)區(qū)變量的存儲采用哈希表,提高運算過程中操作數(shù)值的查詢效率; 3、邏輯表達(dá)式在任務(wù)啟動時就執(zhí)行解析,并采用自定義的表格進(jìn)行存儲,在運算
過程中直接從此表格讀取邏輯表達(dá)式執(zhí)行運算,提高了運算效率; 4、計算任務(wù)將計算結(jié)果通過通信接口寫進(jìn)實時數(shù)據(jù)庫,提高了通信效率。 下面結(jié)合附圖對本發(fā)明的具體實施方式
作進(jìn)一步詳細(xì)的描述。


圖1是現(xiàn)有技術(shù)運算任務(wù)A離線部分處理過程流程4
圖2是現(xiàn)有技術(shù)運算任務(wù)A在線部分處理過程流程圖; 圖3是現(xiàn)有技術(shù)運算任務(wù)B解釋運算方式流程圖; 圖4是本發(fā)明運算程序體系結(jié)構(gòu)和數(shù)據(jù)流程圖; 圖5是本發(fā)明邏輯方程解析轉(zhuǎn)換步驟示意圖; 圖6是本發(fā)明二元邏輯表達(dá)式運算步驟示意圖; 圖7是本發(fā)明函數(shù)等式運算步驟示意圖。
具體實施例方式
如圖4至圖7所示,公開了本發(fā)明一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法。如 圖4所示,為本發(fā)明運算程序體系結(jié)構(gòu)和數(shù)據(jù)流圖,其中,a、由實時數(shù)據(jù)庫向計算任務(wù)通過 通信接口發(fā)送變化的開關(guān)量數(shù)據(jù);b、將輸送進(jìn)數(shù)據(jù)區(qū)中變化的開關(guān)量數(shù)據(jù)采用哈希表結(jié)構(gòu) 存儲;c、在計算任務(wù)啟動的同時讀取解析源表達(dá)式,通過解析將文本格式邏輯方程轉(zhuǎn)換為 自定義格式存儲的邏輯表達(dá)式;d、于計算任務(wù)中直接調(diào)用步驟b中存儲的開關(guān)量數(shù)據(jù)和步 驟c中按自定義格式存儲的邏輯表達(dá)式,執(zhí)行計算;e、將計算任務(wù)的結(jié)果通過通信接口寫 入實時數(shù)據(jù)庫。 實時數(shù)據(jù)庫向本運算任務(wù)發(fā)送變化的開關(guān)量數(shù)據(jù),此方法解決了計算任務(wù)向?qū)崟r 數(shù)據(jù)庫讀全數(shù)據(jù)導(dǎo)致的大量時間耗費的問題。這是由于實時數(shù)據(jù)庫總是最先感知到數(shù)據(jù)的 變化(服務(wù)器層),所以也不會有數(shù)據(jù)丟失的問題,并發(fā)生變化的數(shù)據(jù)總是一部分?jǐn)?shù)據(jù),所 以減少了通信量,提高了通信效率。 數(shù)據(jù)區(qū)中的開關(guān)量采用哈希表結(jié)構(gòu)存儲,提高了運算過程中變量數(shù)據(jù)值查詢的效 率。 采用任務(wù)啟動時讀取解析源表達(dá)式的方法,這樣就避免了技術(shù)背景B類解釋執(zhí)行 方式,每次計算都需要重新解析表達(dá)式,帶來的時間耗費,解析后的邏輯算法按自定義的格 式存儲。如圖5所示,具體實現(xiàn)步驟為 f、假設(shè)已有編輯好的邏輯方程源文件,邏輯方程有兩種類型i純二元運算的 表達(dá)式和ii含有函數(shù)的二元運算表達(dá)式,如字符串格式方程i、 A = BlC和ii、 A = B&C|Fun(AA,BB); g、將ii所描述的邏輯方程A = B&C|Fun(AA,BB)中包含的函數(shù)Fun (AA,BB),用一 個臨時變量Tempi代替,同時生成一個新的邏輯方程ii、A = B&C | Tempi, Tempi = Fun(AA, 啦; h、以上所得的邏輯方程都是字符串的形式,還沒有任何邏輯意義,此步驟需要進(jìn) 行詞法分析,語法分析,識別出等號、計算結(jié)果、操作數(shù)、操作符以及函數(shù)名和函數(shù)參數(shù)等等 信息,生成新的中間格式邏輯方程,即二元邏輯表達(dá)式i、 〃 A〃 〃 =〃 〃 B〃 〃 r 〃 C" 和函數(shù)等式ii、 〃 A〃 〃 =〃 〃 B〃 〃 &〃 〃 C〃 〃 I" 〃 Tempi" , 〃 Tempi 〃 〃 =〃 〃 Fun" 〃 AA〃 〃 BB"; i、由于計算機(jī)處理的特點更適合后綴的形式,所以此步,需要將中 綴的形式轉(zhuǎn)換為等價的后綴形式,如A+B為中綴形式,即操作數(shù)在兩個操作 符之間,這是人類比較習(xí)慣的格式,AB+為后綴形式,計算機(jī)更易處理此種方 式,更改的后綴形式為i、 " A" " =" " B" " C" " I"和ii、 " A〃 〃<formula>formula see original document page 6</formula>
最后將i步驟生成的邏輯算法,以表格的方式存儲起來,計算時,在讀此表執(zhí)行計算。 計算任務(wù)直接調(diào)用c中生成的邏輯算法,這樣避免了技術(shù)背景A類運算方法中由
于采用第三方接口實現(xiàn)運算帶來的計算效率低下的問題。 具體實現(xiàn)步驟為 對于c解析后生成的邏輯算法<formula>formula see original document page 6</formula>
要進(jìn)行區(qū)分,采用不同的方式運算,如圖6和7所示。 如圖6所示,二元邏輯表達(dá)式i運算方法為第一,開始;第二、判斷是否掃描完? 若是,則計算結(jié)束,從棧頂取得計算結(jié)果,若否,則進(jìn)行下一步;第三、讀一個單詞;第四、判 斷是否為操作數(shù)?若是,則此單詞進(jìn)棧,然后轉(zhuǎn)到步驟二,若否,則進(jìn)行下一步;第五、判斷 是否為操作符?若否,則語法錯誤,程序退出,若是,則進(jìn)行下一步;第六、取棧頂兩個操作 數(shù);第七、運算此兩個操作數(shù)和此操作符組成的二元運算;第八、計算結(jié)果壓棧,轉(zhuǎn)到步驟 如圖7所示,函數(shù)等式ii運算方法為開始;取出函數(shù)名;取出參數(shù);根據(jù)函數(shù)名 調(diào)用函數(shù),并傳入?yún)?shù),執(zhí)行計算;得到計算結(jié)果。 在d步驟的運行中,假如需要計算A = B | C,由于B和C實際代表的是一個數(shù)值,這 個數(shù)值就是通過變量名,從數(shù)據(jù)區(qū)查詢到的,比如最終實際運算的邏輯可能是O = 0|0。
本發(fā)明的運算方法提高了計算效率,將250個邏輯方程包含700個左右的開關(guān)量 在40ms內(nèi)完成計算;解決了開關(guān)量采集周期為40ms的情況下,運算不丟數(shù)據(jù),運算正確。
權(quán)利要求
一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法,其特征在于所述的實現(xiàn)方法為a、由實時數(shù)據(jù)庫向計算任務(wù)發(fā)送變化的開關(guān)量數(shù)據(jù);b、將輸送進(jìn)數(shù)據(jù)區(qū)中變化的開關(guān)量數(shù)據(jù)采用哈希表結(jié)構(gòu)存儲;c、在計算任務(wù)啟動的同時讀取解析源表達(dá)式,通過解析將文本格式邏輯方程轉(zhuǎn)換為自定義格式存儲的邏輯表達(dá)式;d、于計算任務(wù)中直接調(diào)用步驟b中存儲的開關(guān)量數(shù)據(jù)和步驟c中按自定義格式存儲的邏輯表達(dá)式,執(zhí)行計算;e、將計算任務(wù)的結(jié)果寫入實時數(shù)據(jù)庫。
2. 根據(jù)權(quán)利要求1所述的一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法,其特征在于所 述的步驟a為通過通信接口將實時數(shù)據(jù)庫中變化的開關(guān)量數(shù)據(jù)向計算任務(wù)發(fā)送,步驟e將 計算任務(wù)的計算結(jié)果通過通信接口寫進(jìn)實時數(shù)據(jù)庫。
3. 根據(jù)權(quán)利要求1所述的一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法,其特征在于所 述的步驟C中的文本格式邏輯方程為已有編輯好的源文件,該邏輯方程有兩種類型i純二 元運算的表達(dá)式和ii含有函數(shù)的二元運算表達(dá)式,其解析轉(zhuǎn)換包括先將所描述的邏輯方 程ii中包含的函數(shù),用一個臨時變量代替,同時ii生成一個新的邏輯方程,i和ii表達(dá)式 為字符串形式;然后對其進(jìn)行詞法分析、語法分析,識別出等號、計算結(jié)果、操作數(shù)、操作符 以及函數(shù)名和函數(shù)參數(shù)信息,得到中間格式邏輯方程二元邏輯表達(dá)式和函數(shù)等式;最后 再將中綴的形式轉(zhuǎn)換為等價的后綴形式,生成新的邏輯算法,以表格的方式存儲起來。
4. 根據(jù)權(quán)利要求3所述的一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法,其特征在于所 述的步驟C中二元邏輯表達(dá)式調(diào)入步驟d中具體的運算方法為第一,開始;第二、判斷是 否掃描完?若是,則計算結(jié)束,從棧頂取得計算結(jié)果,若否,則進(jìn)行下一步;第三、讀一個單 詞;第四、判斷是否為操作數(shù)?若是,則此單詞進(jìn)棧,然后轉(zhuǎn)到步驟二,若否,則進(jìn)行下一步; 第五、判斷是否為操作符?若否,則語法錯誤,程序退出,若是,則進(jìn)行下一步;第六、取棧頂 兩個操作數(shù);第七、運算此兩個操作數(shù)和此操作符組成的二元運算;第八、計算結(jié)果壓棧, 轉(zhuǎn)到步驟二。
5. 根據(jù)權(quán)利要求3所述的一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法,其特征在于所 述的步驟C中函數(shù)等式調(diào)入步驟d中具體的運算方法為開始;取出函數(shù)名;取出參數(shù);根 據(jù)函數(shù)名調(diào)用函數(shù),并傳入?yún)?shù),執(zhí)行計算;得到計算結(jié)果。
全文摘要
本發(fā)明公開了一種滿足時標(biāo)傳遞的開關(guān)量邏輯運算方法,其特征在于所述的實現(xiàn)方法為a、由實時數(shù)據(jù)庫向計算任務(wù)發(fā)送變化的開關(guān)量數(shù)據(jù);b、將輸送進(jìn)數(shù)據(jù)區(qū)中變化的開關(guān)量數(shù)據(jù)采用哈希表結(jié)構(gòu)存儲;c、在計算任務(wù)啟動的同時讀取解析源表達(dá)式,通過解析將文本格式邏輯方程轉(zhuǎn)換為自定義格式存儲的邏輯表達(dá)式;d、于計算任務(wù)中直接調(diào)用步驟b中存儲的開關(guān)量數(shù)據(jù)和步驟c中按自定義格式存儲的邏輯表達(dá)式,執(zhí)行計算;e、將計算任務(wù)的結(jié)果寫入實時數(shù)據(jù)庫。本發(fā)明提高了計算效率,將250個邏輯方程包含700個左右的開關(guān)量在40ms內(nèi)完成計算;解決了開關(guān)量采集周期為40ms的情況下,運算不丟數(shù)據(jù),運算正確,計算效率高。
文檔編號G05B19/02GK101727073SQ200810172530
公開日2010年6月9日 申請日期2008年10月27日 優(yōu)先權(quán)日2008年10月27日
發(fā)明者丁長富, 左新, 王進(jìn), 白濤, 石桂連 申請人:北京廣利核系統(tǒng)工程有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
铜陵市| 射阳县| 井陉县| 铜山县| 克东县| 海南省| 任丘市| 望江县| 辛集市| 西平县| 龙泉市| 赤壁市| 屏南县| 三江| 望城县| 承德县| 浦江县| 安平县| 彭泽县| 乌苏市| 镇江市| 洛浦县| 丘北县| 定日县| 两当县| 徐闻县| 宝清县| 洪江市| 阿克苏市| 太仆寺旗| 元朗区| 万荣县| 武定县| 永济市| 冷水江市| 买车| 津市市| 政和县| 孟连| 龙南县| 廉江市|