本發(fā)明涉及工業(yè)自動(dòng)化控制技術(shù)領(lǐng)域,尤其涉及一種基于組態(tài)元件的分布式控制器之間的數(shù)據(jù)共享方法。
背景技術(shù):
復(fù)雜工業(yè)控制系統(tǒng)通常采用分布式的網(wǎng)絡(luò)架構(gòu)將現(xiàn)場(chǎng)傳感器、控制器及執(zhí)行器有效地集合,使得區(qū)域內(nèi)不同地址的工作站之間可以實(shí)現(xiàn)資源共享和協(xié)同操作。由于復(fù)雜系統(tǒng)的控制問題復(fù)雜、控制器節(jié)點(diǎn)繁多,如何利用分布式通信網(wǎng)絡(luò)實(shí)現(xiàn)地域上分布的各個(gè)物理控制單元之間信息和控制信號(hào)的有效共享是該領(lǐng)域面臨的一項(xiàng)重要問題。針對(duì)這一問題,現(xiàn)有的控制系統(tǒng)往往出于用戶友好界面的考慮,會(huì)將數(shù)據(jù)共享的代碼任務(wù)屏蔽掉,僅為工程師提供控制應(yīng)用程序開發(fā)的功能。然而隨著控制系統(tǒng)功能日趨復(fù)雜化、并行程序開發(fā)等新需求的出現(xiàn),控制工程師們所關(guān)心的問題已發(fā)生了轉(zhuǎn)變,他們不僅僅關(guān)心控制算法的設(shè)計(jì)和組態(tài)等控制應(yīng)用的開發(fā),也極其注重復(fù)雜控制程序的數(shù)據(jù)同步及其通信效率。
對(duì)于分布式控制器之間的數(shù)據(jù)共享,現(xiàn)有技術(shù)中控制系統(tǒng)開發(fā)商所提供的組態(tài)軟件工具通常使用廣播通信的技術(shù)手段對(duì)局域網(wǎng)內(nèi)控制器間的所有全局變量及其實(shí)時(shí)數(shù)據(jù)執(zhí)行數(shù)據(jù)同步更新,這種方式的主要缺點(diǎn)在于:
1、存在許多不必要的網(wǎng)絡(luò)通信,特別是針對(duì)復(fù)雜的控制任務(wù)和并行的控制任務(wù),大規(guī)??刂乒?jié)點(diǎn)間不當(dāng)?shù)臄?shù)據(jù)共享后所帶來的問題是數(shù)據(jù)傳輸量增加導(dǎo)致網(wǎng)絡(luò)時(shí)延增大,進(jìn)而造成系統(tǒng)整體控制性能下降,實(shí)時(shí)性降低,甚至影響控制系統(tǒng)的正常運(yùn)行。
2、數(shù)據(jù)共享的功能模塊已預(yù)先集成在組態(tài)軟件中,工程師只能通過指定特定的網(wǎng)段或控制器節(jié)點(diǎn)的IP地址來介入數(shù)據(jù)共享配置,其操作自主程度和靈活性仍不理想。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題,在于提供一種基于組態(tài)元件的分布式控制器之間的數(shù)據(jù)共享方法,解決現(xiàn)有技術(shù)中工程師難以靈活配置分布式控制器之間的數(shù)據(jù)共享策略,以及控制器間的數(shù)據(jù)共享對(duì)系統(tǒng)網(wǎng)絡(luò)負(fù)荷、控制器性能影響大的技術(shù)問題;有效地提高控制器間數(shù)據(jù)共享的靈活程度,也可減少不必要的數(shù)據(jù)共享對(duì)系統(tǒng)網(wǎng)絡(luò)負(fù)荷、控制器性能的影響。
本發(fā)明是這樣實(shí)現(xiàn)的:一種基于組態(tài)元件的分布式控制器之間的數(shù)據(jù)共享方法,在各個(gè)分布式控制器內(nèi)設(shè)置共享內(nèi)存,通過共享元件,判定哪些數(shù)據(jù)進(jìn)入共享內(nèi)存,并與其他分布式控制器節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步;所述共享元件直接與分布式控制器IO通道關(guān)聯(lián),共享元件的內(nèi)部數(shù)據(jù)存儲(chǔ)于對(duì)應(yīng)分布式控制器指定的共享內(nèi)存區(qū)域;共享元件通過圖形元件有序連接的方式,直接參與控制邏輯的組態(tài)編程過程,共享元件的實(shí)時(shí)值動(dòng)態(tài)地呈現(xiàn)在組態(tài)畫面中,通過共享元件實(shí)現(xiàn)對(duì)指定共享數(shù)據(jù)的獲取和輸出,且共享數(shù)據(jù)透明,能在線監(jiān)測(cè);每個(gè)分布式控制器節(jié)點(diǎn)的共享數(shù)據(jù)通過廣播通信的方式同步到其他節(jié)點(diǎn)中對(duì)應(yīng)的共享內(nèi)存存儲(chǔ)區(qū)。
進(jìn)一步的,所述組態(tài)元件是執(zhí)行模擬量或邏輯量操作的控制功能模塊,多個(gè)元件之間的有序連接形成系統(tǒng)的邏輯組態(tài)程序,不同類型的元件通過元件符號(hào)標(biāo)識(shí)來區(qū)分,多個(gè)同類型的元件通過元件下標(biāo)號(hào)來區(qū)分;所述組態(tài)元件包括輸入元件、輸出元件、策略元件以及共享元件;所述輸入元件、輸出元件、策略元件用于編寫常規(guī)的邏輯組態(tài)程序;所述共享元件包括共享輸入元件和共享輸出元件。
進(jìn)一步的,所述共享輸入元件和共享輸出元件:均包括模擬量輸入/輸出元件、數(shù)字量輸入/輸出元件、中間模擬量輸入/輸出元件和中間數(shù)字量輸入/輸出元件;所述中間模擬量/數(shù)字量輸入元件位于輸入側(cè),可將內(nèi)部數(shù)據(jù)傳遞至策略元件或輸出元件;所述中間模擬量/數(shù)字量輸出元件位于輸出側(cè),用于讀取和存儲(chǔ)中間邏輯的計(jì)算結(jié)果;所述共享輸入元件和共享輸出元件:均能加入到邏輯組態(tài)畫面中參與邏輯組態(tài)程序的編輯;邏輯組態(tài)程序運(yùn)行時(shí),均能在組態(tài)畫面中動(dòng)態(tài)地顯示自身的實(shí)時(shí)數(shù)據(jù);在邏輯組態(tài)的過程中,同類的元件都會(huì)自動(dòng)地生成唯一的下標(biāo)號(hào)。
進(jìn)一步的,所述共享輸入/輸出元件是與工業(yè)控制系統(tǒng)中對(duì)應(yīng)控制器的IO通道關(guān)聯(lián),并與控制器中特定的物理共享內(nèi)存地址相對(duì)應(yīng);通過共享輸入/輸出元件,操作人員能自主地選擇特定的數(shù)據(jù)載入共享內(nèi)存,并與其他分布式控制器進(jìn)行數(shù)據(jù)交互;所述共享輸入/輸出元件與普通的輸入/輸出元件在內(nèi)存分配存儲(chǔ)上按照分區(qū)的方式進(jìn)行管理和區(qū)分,每個(gè)分區(qū)在控制器內(nèi)存中均有開辟對(duì)應(yīng)的存儲(chǔ)區(qū)域與之對(duì)應(yīng)。
進(jìn)一步的,控制器層中多個(gè)分布式控制器間的數(shù)據(jù)共享方式如下:對(duì)每個(gè)控制器節(jié)點(diǎn)配置全局共享內(nèi)存區(qū)域,所述全局共享內(nèi)存區(qū)域包含所有分布式控制器節(jié)點(diǎn)的共享數(shù)據(jù)信息,即每個(gè)控制器節(jié)點(diǎn)的全局共享區(qū)既包含本地節(jié)點(diǎn)提供的共享數(shù)據(jù),也包含源自其他節(jié)點(diǎn)的共享數(shù)據(jù);
采用物理內(nèi)存統(tǒng)一編址的方式,對(duì)所有分布式控制器的全局共享內(nèi)存空間進(jìn)行定義;所述共享內(nèi)存的數(shù)據(jù)同步策略是各個(gè)控制器節(jié)點(diǎn)的共享數(shù)據(jù)采用廣播通信的方式,同步到其他節(jié)點(diǎn)中共享內(nèi)存區(qū)相應(yīng)的物理內(nèi)存地址上,同時(shí)執(zhí)行周期性數(shù)據(jù)刷新操作。
進(jìn)一步的,所述方法中共享數(shù)據(jù)是通過共享輸入元件從對(duì)應(yīng)分布式控制器的共享內(nèi)存中獲取,具體為:S1、編輯邏輯組態(tài)程序,確定需要接收共享數(shù)據(jù)的組態(tài)元件M;
S2、采用圖形元件有序連接的組態(tài)方式,拖動(dòng)共享輸入元件到邏輯組態(tài)畫面,連接到所述組態(tài)元件M中;
S3、配置所述共享輸入元件的關(guān)聯(lián)信息,鏈接到對(duì)應(yīng)的控制器指定的共享內(nèi)存地址上;
S4、運(yùn)行邏輯組態(tài)程序,從所述指定的共享內(nèi)存地址處周期性地讀取實(shí)時(shí)共享數(shù)據(jù),動(dòng)態(tài)地更新到邏輯組態(tài)畫面中,并將其實(shí)時(shí)值顯示在共享輸入元件的一側(cè)。
進(jìn)一步的,所述方法中共享數(shù)據(jù)是通過共享輸出元件寫入到對(duì)應(yīng)分布式控制器的共享內(nèi)存相應(yīng)區(qū)域,具體為:S1、編輯邏輯組態(tài)程序,選擇需要共享數(shù)據(jù)的組態(tài)元件N,將其輸出數(shù)據(jù)作為共享數(shù)據(jù);
S2、采用圖形元件有序連接的組態(tài)方式,拖動(dòng)共享輸入元件到邏輯組態(tài)畫面,連接到所述組態(tài)元件N中;
S3、配置共享輸出元件的關(guān)聯(lián)信息,鏈接到對(duì)應(yīng)控制器指定的共享內(nèi)存地址上;
S4、運(yùn)行邏輯組態(tài)程序,將共享輸出元件的實(shí)時(shí)數(shù)據(jù)傳送并存儲(chǔ)到所述指定的共享內(nèi)存地址;
S5、將所述指定的共享內(nèi)存地址中的共享數(shù)據(jù)周期性地同步到其他控制器節(jié)點(diǎn)相應(yīng)的內(nèi)存區(qū)域。
本發(fā)明具有如下優(yōu)點(diǎn):1、工程師能夠自主地決定哪些控制器、哪些數(shù)據(jù)參與分布式數(shù)據(jù)共享,從而有效地避免因不當(dāng)?shù)臄?shù)據(jù)共享所造成的網(wǎng)絡(luò)負(fù)荷增大、控制性能顯著降低等問題;
2、數(shù)據(jù)共享操作簡(jiǎn)單靈活,符合工程師的組態(tài)編程習(xí)慣,并且通信數(shù)據(jù)高度透明,可視化程度高,支持在線監(jiān)測(cè)。
附圖說明
下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。
圖1為本發(fā)明的分布式控制器間的數(shù)據(jù)共享方法的原理圖。
圖2為本發(fā)明共享數(shù)據(jù)的獲取方法流程示意圖。
圖3為本發(fā)明共享數(shù)據(jù)的輸出方法流程示意圖。
具體實(shí)施方式
請(qǐng)參閱圖1至圖3所示,一種基于組態(tài)元件的分布式控制器之間的數(shù)據(jù)共享方法,在各個(gè)分布式控制器內(nèi)設(shè)置共享內(nèi)存,通過共享元件,判定哪些數(shù)據(jù)進(jìn)入共享內(nèi)存,并與其他分布式控制器節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步;所述共享元件直接與分布式控制器IO通道關(guān)聯(lián),共享元件的內(nèi)部數(shù)據(jù)存儲(chǔ)于對(duì)應(yīng)分布式控制器指定的共享內(nèi)存區(qū)域;共享元件通過圖形元件有序連接的方式,直接參與控制邏輯的組態(tài)編程過程,共享元件的實(shí)時(shí)值動(dòng)態(tài)地呈現(xiàn)在組態(tài)畫面中,通過共享元件實(shí)現(xiàn)對(duì)指定共享數(shù)據(jù)的獲取和輸出,且共享數(shù)據(jù)透明,能在線監(jiān)測(cè);每個(gè)分布式控制器節(jié)點(diǎn)的共享數(shù)據(jù)通過廣播通信的方式同步到其他節(jié)點(diǎn)中對(duì)應(yīng)的共享內(nèi)存存儲(chǔ)區(qū)。
本發(fā)明的一種面向組態(tài)數(shù)據(jù)的共享元件的設(shè)計(jì)方法,用于連接用戶編寫的控制邏輯和所對(duì)應(yīng)的控制器的共享內(nèi)存。
具體功能特征如下:
1、所述組態(tài)元件是執(zhí)行模擬量或邏輯量操作的控制功能模塊,多個(gè)元件之間的有序連接形成系統(tǒng)的邏輯組態(tài)程序,不同類型的元件通過元件符號(hào)標(biāo)識(shí)來區(qū)分,多個(gè)同類型的元件通過元件下標(biāo)號(hào)來區(qū)分。所述組態(tài)元件包括輸入元件、輸出元件、策略元件和共享元件。所述輸入元件、輸出元件、策略元件用于編寫常規(guī)的邏輯組態(tài)程序。所述共享元件是一種特殊的組態(tài)元件,包括共享輸入元件和共享輸出元件。
2、所述共享輸入/輸出元件和普通的輸入/輸出元件的相同點(diǎn):
①均包括模擬量輸入/輸出元件、數(shù)字量輸入/輸出元件、中間模擬量輸入/輸出元件和中間數(shù)字量輸入/輸出元件;所述中間模擬量/數(shù)字量輸入元件位于輸入側(cè),可將內(nèi)部數(shù)據(jù)傳遞至策略元件或輸出元件;所述中間模擬量/數(shù)字量輸出元件位于輸出側(cè),用于讀取和存儲(chǔ)中間邏輯的計(jì)算結(jié)果。
②均可加入到邏輯組態(tài)畫面中參與邏輯組態(tài)程序的編輯;
③邏輯組態(tài)程序運(yùn)行時(shí),均可在組態(tài)畫面中動(dòng)態(tài)地顯示自身的實(shí)時(shí)數(shù)據(jù);
④在邏輯組態(tài)的過程中,同類的元件都會(huì)自動(dòng)地生成唯一的下標(biāo)號(hào);
例如,第101號(hào)加法運(yùn)算器元件可表示為ADD 101,其對(duì)應(yīng)的控制器也將為其分配相應(yīng)的內(nèi)存空間。
3、所述共享輸入/輸出元件和普通的輸入/輸出元件的不同之處在于:
①所述普通的輸入/輸出元件是與系統(tǒng)工藝設(shè)備對(duì)應(yīng)的IO數(shù)據(jù)點(diǎn)關(guān)聯(lián),負(fù)責(zé)從現(xiàn)場(chǎng)工藝設(shè)備或設(shè)備仿真模型中讀取/輸出實(shí)時(shí)控制數(shù)據(jù),該部分?jǐn)?shù)據(jù)并不完全參與分布式控制器的數(shù)據(jù)共享;
②所述共享輸入/輸出元件是與系統(tǒng)中對(duì)應(yīng)控制器的IO通道關(guān)聯(lián),并與控制器中特定的物理共享內(nèi)存地址相對(duì)應(yīng)。通過共享輸入/輸出元件,工程師可以自主地選擇特定的數(shù)據(jù)載入共享內(nèi)存,并與其他分布式控制器進(jìn)行數(shù)據(jù)交互。
③所述共享輸入/輸出元件與普通的輸入/輸出元件在內(nèi)存分配存儲(chǔ)上按照分區(qū)的方式進(jìn)行管理和區(qū)分,每個(gè)分區(qū)在控制器內(nèi)存中均有開辟對(duì)應(yīng)的存儲(chǔ)區(qū)域與之對(duì)應(yīng)。
例如,可以將所有的輸入/輸出元件按照A-Z 26個(gè)字母符號(hào)進(jìn)行分區(qū),并指定S區(qū)為共享輸入/輸出元件的存儲(chǔ)區(qū)域,其余分區(qū)用于存儲(chǔ)普通的輸入/輸出元件相應(yīng)的數(shù)據(jù),可提供S區(qū)數(shù)據(jù)用于數(shù)據(jù)共享。進(jìn)一步的,AO 003可以用于表示第003號(hào)普通的模擬量輸出元件;AOS 005可以用于表示第005號(hào)S區(qū)模擬量輸出元件,即第005號(hào)模擬量共享輸出元件。
(二)、本發(fā)明提供的基于組態(tài)元件的分布式控制器之間的數(shù)據(jù)共享方法,另一主要特征在于:采用圖形元件有序連接的組態(tài)方式,通過共享輸入和輸出元件實(shí)現(xiàn)對(duì)指定共享數(shù)據(jù)的獲取和輸出,且共享數(shù)據(jù)透明可見,能夠在線監(jiān)測(cè)。
具體實(shí)現(xiàn)方法如下:
1、本發(fā)明中控制器層多個(gè)分布式控制器間的數(shù)據(jù)共享方法如下:
①對(duì)每個(gè)控制器節(jié)點(diǎn)配置全局共享內(nèi)存區(qū)域,所述全局共享內(nèi)存區(qū)域包含所有分布式控制器節(jié)點(diǎn)的共享數(shù)據(jù)信息,即每個(gè)控制器節(jié)點(diǎn)的全局共享區(qū)既包含本地節(jié)點(diǎn)提供的共享數(shù)據(jù),也包含源自其他節(jié)點(diǎn)的共享數(shù)據(jù)。
②采用物理內(nèi)存統(tǒng)一編址的方法,對(duì)所有分布式控制器的全局共享內(nèi)存空間進(jìn)行定義。
③所述共享內(nèi)存的數(shù)據(jù)同步策略是各個(gè)控制器節(jié)點(diǎn)的共享數(shù)據(jù)采用廣播通信的方式,同步到其他節(jié)點(diǎn)中共享內(nèi)存區(qū)相應(yīng)的物理內(nèi)存地址上,同時(shí)執(zhí)行周期性數(shù)據(jù)刷新操作。
2、本發(fā)明中指定共享數(shù)據(jù)是通過共享輸入元件從對(duì)應(yīng)控制器的共享內(nèi)存中獲取的。
具體步驟方法如下:
S1、編輯邏輯組態(tài)程序,確定需要接收共享數(shù)據(jù)的組態(tài)元件M;
以圖1為例,策略元件B’001即為待接收共享數(shù)據(jù)的組態(tài)元件。
S2、采用圖形元件有序連接的組態(tài)方式,拖動(dòng)共享輸入元件到邏輯組態(tài)畫面,連接到所述組態(tài)元件M中;
S3、配置所述共享輸入元件的關(guān)聯(lián)信息,鏈接到對(duì)應(yīng)的控制器指定的共享內(nèi)存地址上;
以圖1為例,將工作站K中的共享輸入元件“SI 001”關(guān)聯(lián)到控制器節(jié)點(diǎn)K上節(jié)點(diǎn)1所對(duì)應(yīng)的共享內(nèi)存地址,即可實(shí)現(xiàn)對(duì)控制器節(jié)點(diǎn)1共享數(shù)據(jù)的共享配置;
S4、運(yùn)行邏輯組態(tài)程序,從所述指定的共享內(nèi)存地址處周期性地讀取實(shí)時(shí)共享數(shù)據(jù),動(dòng)態(tài)地更新到邏輯組態(tài)畫面中,并將其實(shí)時(shí)值顯示在共享輸入元件的一側(cè)。
3、本發(fā)明中指定共享數(shù)據(jù)是通過共享輸出元件寫入到對(duì)應(yīng)控制器的共享內(nèi)存相應(yīng)區(qū)域的。
具體步驟方法如下:
S1、編輯邏輯組態(tài)程序,選擇需要共享數(shù)據(jù)的組態(tài)元件N,將其輸出數(shù)據(jù)作為共享數(shù)據(jù);
S2、采用圖形元件有序連接的組態(tài)方式,拖動(dòng)共享輸入元件到邏輯組態(tài)畫面,連接到所述組態(tài)元件N中;
以圖1為例,策略元件B 001和輸入元件D’002即為提供共享數(shù)據(jù)的組態(tài)元件。
S3、配置共享輸出元件的關(guān)聯(lián)信息,鏈接到對(duì)應(yīng)控制器指定的共享內(nèi)存地址上;
以圖1為例,將工作站1中的共享輸出元件“SO 001”關(guān)聯(lián)到控制器節(jié)點(diǎn)1中用于存儲(chǔ)節(jié)點(diǎn)1共享數(shù)據(jù)的內(nèi)存區(qū)域,即可實(shí)現(xiàn)對(duì)策略元件B 001數(shù)據(jù)的共享配置;將工作站K中的共享輸出元件“SO’002”關(guān)聯(lián)到控制器節(jié)點(diǎn)K中用于存儲(chǔ)節(jié)點(diǎn)K共享數(shù)據(jù)的內(nèi)存區(qū)域,即可實(shí)現(xiàn)對(duì)輸入元件D’002數(shù)據(jù)的共享配置。
S4、運(yùn)行邏輯組態(tài)程序,將共享輸出元件的實(shí)時(shí)數(shù)據(jù)傳送并存儲(chǔ)到所述指定的共享內(nèi)存地址;
S5、將所述指定的共享內(nèi)存地址中的共享數(shù)據(jù)周期性地同步到其他控制器節(jié)點(diǎn)相應(yīng)的內(nèi)存區(qū)域。
總之,本發(fā)明不僅繼承了廣播通信數(shù)據(jù)同步方法的優(yōu)點(diǎn),同時(shí)也克服了現(xiàn)有技術(shù)的上述不足。該方法中不同物理控制器間的數(shù)據(jù)共享策略是通過組態(tài)元件的方式在上位機(jī)中操作實(shí)現(xiàn)的,工程師能夠更加自主地決定信息共享策略,選擇指定的數(shù)據(jù)在多控制器節(jié)點(diǎn)間進(jìn)行數(shù)據(jù)交互,這種方式不僅可以有效地提高控制器間數(shù)據(jù)共享的靈活程度,也可減少不必要的數(shù)據(jù)共享對(duì)系統(tǒng)網(wǎng)絡(luò)負(fù)荷、控制器性能的影響。
雖然以上描述了本發(fā)明的具體實(shí)施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。