專利名稱:用于產(chǎn)生自動化程序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種借助于一個生成器從HMI程序產(chǎn)生自動化程序的方法。該自動化程序例如是一個由存儲可編程的控制器執(zhí)行的程序。該HMI程序(HMI=人機接口)是一種尤其用于圖形化用戶控制的程序。
背景技術(shù):
所謂的CASE工具(CASE=計算機輔助軟件工程)公開了一種用于自動產(chǎn)生軟件程序的方法的措施(例如,參見Schneider,WernerTaschenbuchder Informatik,F(xiàn)achbuchverlag Leipzig,4.Auflage,352頁)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,提供一種方法,利用該方法可以從在一技術(shù)過程中使用的HMI程序產(chǎn)生一個自動化程序,用于控制和/或監(jiān)視該同一技術(shù)過程。
按照本發(fā)明,上述技術(shù)問題是通過權(quán)利要求1的特征來解決的。為此提供了一種借助于一個生成器從在一技術(shù)過程中使用的HMI程序產(chǎn)生自動化程序的方法,用于控制和/或監(jiān)視該同一技術(shù)過程,其中,所述生成器識別該HMI程序的結(jié)構(gòu)并轉(zhuǎn)換成自動化程序的結(jié)構(gòu)。
在此,本發(fā)明從這樣的認知出發(fā),即,作為基礎(chǔ)的規(guī)劃數(shù)據(jù)對于描述自動化任務(wù)來說更對應于借助HMI程序的用戶控制,而不是自動化程序的結(jié)構(gòu)或算法。因此,從規(guī)劃層到利用HMI程序?qū)崿F(xiàn)的HMI層的距離比從規(guī)劃層到自動化程序的距離要小。如果首先完成了一個HMI程序,則可以從中產(chǎn)生一個自動化程序。由此可以明顯地減少實現(xiàn)自動化解決方案的總造價。
對于自動化解決方案至少需要一個自動化程序。這樣的程序處理自動化技術(shù)過程的傳感器數(shù)據(jù)、進行計算并控制過程中設(shè)置的執(zhí)行器。操作者可以通過HMI程序來操作和觀察該過程。
迄今為止,從(多數(shù)具有圖形部分的)規(guī)劃描述中導出自動化程序的結(jié)構(gòu)并引入適當?shù)目刂扑惴?。在完成自動化程序的設(shè)置之后從該自動化程序的結(jié)構(gòu)中導出具有對應操作和觀察元件的操作結(jié)構(gòu)。由此,迄今為止從圖形層(規(guī)劃)首先導出一個算法層(自動化程序)。然后從該算法層再導出一個圖形層(HMI程序)。在此,來自規(guī)劃層的信息可能丟失。
這種措施是以“歷史”為條件的。在自動化技術(shù)的開始階段自動化解決方案幾乎完全由控制邏輯組成。從高性能的圖形硬件出現(xiàn)以來操作和觀察部件才越來越多地完善自動化解決方案。對應地,補充的操作和觀察部件多數(shù)在建立自動化程序之后才編制。
本發(fā)明的優(yōu)點在于,通過由生成器至少自動產(chǎn)生自動化程序的基本結(jié)構(gòu),程序員(必要時借助自動插入的注釋行)將適當?shù)目刂扑惴ㄒ氲竭@些結(jié)構(gòu)中,從而縮短了直到建立能夠運行的自動化程序的開發(fā)時間。這不單節(jié)省了耗費大量成本的開發(fā)時間,而且使得自動化程序一方面對系統(tǒng)的故障更不敏感,因為程序員不會“遺忘”功能,另一方面更容易維護,因為所有自動產(chǎn)生的自動化程序表現(xiàn)出類似的結(jié)構(gòu)。
從屬權(quán)利要求涉及本發(fā)明優(yōu)選的實施方式。
在一個基于規(guī)劃程序的HMI程序中,生成器優(yōu)選地考慮該規(guī)劃程序的規(guī)劃數(shù)據(jù)。由此可以將規(guī)劃數(shù)據(jù)補充到從該HMI程序獲得的自動化程序的結(jié)構(gòu)中,其中,例如在驗證邊界值時借助HMI程序產(chǎn)生用于考慮超過以及不超過邊界值的結(jié)構(gòu),并從規(guī)劃數(shù)據(jù)中接收該邊界值本身。
通常,HMI程序包括一個具有中心表示和至少一個設(shè)置在后的表示的導引部件,而生成器優(yōu)選地借助該中心表示產(chǎn)生自動化程序的一個主程序,并借助該或者每個設(shè)置在后的表示分別產(chǎn)生該自動化程序的一個子程序。
該中心表示通常包括待自動化過程的總視圖或者概略圖。從該總視圖出發(fā),在HMI程序中可以訪問過程的所有可操作裝置和樹結(jié)構(gòu)的過程部件。每個可以從中心表示出發(fā)調(diào)用的表示被稱為設(shè)置在后的表示。每個設(shè)置在后的表示本身又可以包含自己的設(shè)置在后的表示。利用由生成器進行的轉(zhuǎn)換,按照與中心表示對應的主程序以及分別與該或者每個設(shè)置在后的表示對應的一個子程序的形式構(gòu)成包含在HMI程序中的結(jié)構(gòu)。
如果每個表示(不管是中心表示還是設(shè)置在后的表示)包括多個圖像成分并且各圖像成分與一個設(shè)置在該表示后的表示相聯(lián)系,則生成器優(yōu)選地為每個包含在一個表示中的、與一個設(shè)置在后的表示聯(lián)系的圖像成分產(chǎn)生一個對與該設(shè)置在后的表示對應的子程序的調(diào)用。由此,將包含在HMI程序中的各結(jié)構(gòu)的依賴性傳送到自動化程序中。
如果將各圖像成分設(shè)置為輸入或輸出成分,用于輸入或輸出待自動化或者已經(jīng)自動化的過程的數(shù)據(jù),則生成器優(yōu)選地借助包含在一個表示中的所有輸入或輸出成分產(chǎn)生一個用于調(diào)用與各表示對應的子程序的參數(shù)列表。
此外,生成器優(yōu)選地針對包含在設(shè)置在后的表示中的輸入或輸出成分來擴展各參數(shù)列表。
在對應于各表示的自動化程序的子程序中處理可以在一個表示中輸入和輸出的過程數(shù)據(jù)。為了利用用于形成過程數(shù)據(jù)的變量的本地有效性的可能性和優(yōu)點,將這些變量作為參數(shù)從主程序出發(fā)傳送到各調(diào)用的子程序中。為了保證各傳送的參數(shù)的一致性(特別是類型的一致性),在常用編程語言中設(shè)置一個屬于有關(guān)子程序的參數(shù)列表,該參數(shù)列表由生成器借助在一個表示中出現(xiàn)的輸入和輸出成分自動地產(chǎn)生。在設(shè)置在后的表示中使用的輸入或輸出參數(shù),在子程序的參數(shù)列表中就已經(jīng)得到了考慮,該子程序包含了對與設(shè)置在后的表示對應的子程序的調(diào)用。
生成器優(yōu)選地將HMI程序的考慮至少一個條件或者一種可能性的過程數(shù)據(jù)指示轉(zhuǎn)換為用于驗證該條件的、自動化程序的程序序列。
此外,生成器優(yōu)選地將用于驗證該條件的程序序列作為與包含所述過程數(shù)據(jù)指示的表示對應的子程序的組成部分產(chǎn)生。
為了使得對該程序序列的編程容易,通過生成器將HMI程序的提示文本作為注釋行接收到用于驗證一個條件的各程序序列中。借助該注釋行,在完成自動化程序設(shè)置中面向自動化產(chǎn)生的結(jié)構(gòu)的程序員可以看出,例如在滿足一個條件的情況下應當采用哪些措施),并且該程序員可以借助該注釋行將相應的指示采納到自動化程序中。
優(yōu)選地,生成器借助可以由用戶編輯的規(guī)則確定調(diào)用自動化程序中子程序的順序。
這考慮到,HMI程序的結(jié)構(gòu)不能直接應用為自動化程序的結(jié)構(gòu)。HMI程序盡管包含了自動化程序所需的所有元素,卻是按照不同觀點結(jié)合的。特別是,用于故障分析和原因排除的表示的層次更象一個網(wǎng)絡(luò)而不是更容易傳遞的樹結(jié)構(gòu),因為操作者為了能夠找出故障必須能夠在HMI程序中按簡單的方式查詢整個設(shè)備/機器,也就是整個過程。
反之,自動化程序的結(jié)構(gòu)更面向生產(chǎn)過程。因此,還可以借助預定的或者可以預定的(特別是可以由用戶編輯的)規(guī)則將用于形成HMI程序結(jié)構(gòu)的基本機制分類和結(jié)構(gòu)化為自動化程序的對應結(jié)構(gòu)。
下面給出這種規(guī)則的例子1.結(jié)合對(按鍵以及故障和動作的)表示的所有調(diào)用。
2.去除循環(huán)和遞歸。
3.確定用于擴展調(diào)用結(jié)構(gòu)的重復序列。
4.結(jié)合所有使用來自一個特定表示的變量的提示、動作等。
5.從對一個表示的調(diào)用和輸入?yún)^(qū)域、變量、提示等的依賴性中確定一個對應和順序。
6.......
該規(guī)則可以動態(tài)地擴展,由此也可以與不同應用情況下的狀況匹配。該機制確定一個可以由用戶匹配的優(yōu)選方案。
下列的概括包括了HMI程序的結(jié)構(gòu)和可以由此自動產(chǎn)生的自動化程序的結(jié)構(gòu)或者序列a)從HMI程序中的圖像導、即一個中心表示與設(shè)置在后的表示的結(jié)合中產(chǎn)生自動化程序的基本結(jié)構(gòu),該自動化程序具有一個與該中心表示對應的主程序以及分別與該或者每個設(shè)置在后的表示對應的一個子程序。根據(jù)生成器所產(chǎn)生的不同的編程語言,將一個表示轉(zhuǎn)換成例如程序或子程序、模塊、規(guī)劃、元素或者類似的。
b)從該圖像導引和由此隱含的預定操作序列中導出自動化程序的過程、各程序元素的交互作用,例如,在特定位置上對特定子程序的調(diào)用。
c)從一個提示或者一個用于HMI程序提示的觸發(fā)器中,特別是借助提示規(guī)劃產(chǎn)生例如一個邊界值監(jiān)視。
d)從HMI程序中用于顯示部件的邊界值,例如利用對彩色封皮反應的顯示部件,導出自動化程序中的邊界值監(jiān)視。
e)從HMI程序的診斷圖像中產(chǎn)生自動化程序中的診斷監(jiān)視。HMI程序的該或者各診斷圖像包括多個為了診斷或者監(jiān)視目的而提供給用戶的過程數(shù)據(jù)。也可以在自動化程序中集合這些數(shù)據(jù)用于診斷監(jiān)視。
f)從HMI程序的變量中產(chǎn)生自動化程序的相應變量。這要求HMI程序與自動化程序一致并允許相互間直接的數(shù)據(jù)交互,而不需要轉(zhuǎn)換或者擔心出現(xiàn)轉(zhuǎn)換錯誤。
g)從HMI程序的邊界值和輸入?yún)^(qū)域中為自動化程序產(chǎn)生仿真值。仿真值用于獨立于待控制或待監(jiān)視的過程而對自動化程序進行測試,使得在投入運行時提供一個至少能夠運行的自動化程序,從而在理想情況下將該投入運行限制為精確調(diào)節(jié)。
下面結(jié)合附圖對本發(fā)明的一種實施方式作進一步說明。在所有附圖中相同的附圖標記表示相互對應的物體或者部件。圖中,圖1表示自動產(chǎn)生一個自動化程序的過程,圖2表示自動產(chǎn)生該自動化程序的細節(jié),圖3表示一個用于自動產(chǎn)生自動化程序的生成器的框圖,和圖4表示HMI程序的一個中心表示和一個設(shè)置在后的表示。
具體實施例方式
圖1示意地示出自動產(chǎn)生自動化程序1的過程。該自動化程序1例如是一個由沒有表示出的存儲可編程控制器(SPS;英語為PLC)執(zhí)行的程序。這樣自動化程序1是一個SPS程序(英語為PLC程序)。因此,下面將自動化程序1和SPS程序用作同義詞。
為了產(chǎn)生自動化程序1設(shè)置了一個生成器2。該生成器從一個用于用戶控制的程序中產(chǎn)生自動化程序1或者該自動化程序的結(jié)構(gòu)。當今用于特別圖形化用戶控制的程序按英語名稱“人機接口”的縮寫被稱為HMI程序3。下面對應地也將用于用戶控制的程序和HMI程序3用作同義詞。該HMI程序3本身又基于規(guī)劃程序4,該規(guī)劃程序4具有例如閾值或邊界值的規(guī)劃數(shù)據(jù)。
圖2示出了自動產(chǎn)生該自動化程序1的細節(jié)。據(jù)此,通過生成器2將HMI程序3的結(jié)構(gòu)和特征轉(zhuǎn)換成自動化程序1的相應結(jié)構(gòu)和特征。其中,HMI程序3的結(jié)構(gòu)和特征例如導引、操作序列、邊界值、提示、診斷、變量、輸入?yún)^(qū)域等,在下面統(tǒng)稱為結(jié)構(gòu)5或者結(jié)構(gòu)元素5;自動化程序1的結(jié)構(gòu)和特征例如程序結(jié)構(gòu)、運行程序、邊界值監(jiān)視、診斷、變量、仿真等,在下面同樣統(tǒng)稱為結(jié)構(gòu)6或者結(jié)構(gòu)元素6。為了區(qū)別將HMI程序3的結(jié)構(gòu)5或者結(jié)構(gòu)元素5記為HMI結(jié)構(gòu)5或者HMI結(jié)構(gòu)元素5,而將自動化程序1的結(jié)構(gòu)6或者結(jié)構(gòu)元素6記為PLC結(jié)構(gòu)6或者PLC結(jié)構(gòu)元素6。
圖3示出生成器2的框圖。據(jù)此,生成器2包括輸入接口7、求值器8、變換器9和輸出接口10。
HMI程序3的求值和轉(zhuǎn)換借助于一個分布在求值器8和轉(zhuǎn)換器9上的智能程序完成,該智能程序的核心由這樣的一個機制組成,該機制對稱地從HMI結(jié)構(gòu)5或者HMI結(jié)構(gòu)元素5中產(chǎn)生PLC結(jié)構(gòu)6或者PLC結(jié)構(gòu)元素6。
輸入接口7用來輸入HMI程序3和其結(jié)構(gòu)5。通過求值器8對HMI程序3或其結(jié)構(gòu)5進行分析。在此,根據(jù)在一個沒有表示出的數(shù)據(jù)庫中存放的預定或者可以預定的、特別是可由用戶編輯的規(guī)則,在必要時將所獲得的數(shù)據(jù)結(jié)合起來。在求值器8的輸出端變換器9將其結(jié)果結(jié)合并產(chǎn)生PLC結(jié)構(gòu)6或者PLC結(jié)構(gòu)元素6。借助于輸出接口10將該PLC結(jié)構(gòu)6或者PLC結(jié)構(gòu)元素6接收到自動化程序1中。
圖4示出了HMI程序3(圖1)的一個中心表示11和一個設(shè)置在后的表示12,如在一個沒有示出的熒光屏那樣的顯示設(shè)備上為HMI程序3的用戶呈現(xiàn)的那樣。中心的和設(shè)置在后的表示11、12都包括多個圖像部件。
在中心表示11的情況下涉及第一和第二圖像部件13、14,它們分別象征了第一和第二個在自動化或待自動化的過程中待處理的原始材料。此外,還涉及第三圖像部件15,其象征了在自動化或待自動化的過程中的處理單元。另外,還涉及第四和第五圖像部件16、17,它們分別象征了過程的第一和第二分類裝置。最后涉及第六圖像部件18,它象征了在過程中的診斷和求值單元,以及第七圖像部件19,它象征了過程中的包裝單元。箭頭給出了過程中材料流動的方向。
各圖像部件與一個設(shè)置在后的表示相關(guān)聯(lián)。在圖4的表示中,用于象征第一原始材料的第一圖像部件13與設(shè)置在后的表示12關(guān)聯(lián)。在例如利用如鼠標的指示設(shè)備激活一個與設(shè)置在后的表示相關(guān)聯(lián)的圖像部件時,該設(shè)置在后的表示12被顯示。
該設(shè)置在后的表示12包括作為圖像部件20的輸入/輸出區(qū)域,利用該區(qū)域可以顯示或者對應于用戶的輸入改變HMI程序3的變量值。具體地,在圖4中顯示的例子是一個用于輸入或者輸出原始材料類型的圖像部件20、一個用于輸入或者輸出數(shù)量的圖像部件20、一個用于輸入或者輸出速度的圖像部件20、一個用于輸入或者輸出顏色的圖像部件20、一個用于輸入或者輸出直徑的圖像部件20和一個用于輸入或者輸出長度的圖像部件20。
從由此在中心以及設(shè)置在后的表示11、12中包含的數(shù)據(jù),生成器2產(chǎn)生用于自動化程序1的結(jié)構(gòu),例如按照下面以偽代碼表示的形式,其中,從該中心表示11構(gòu)成一個主程序(program prozess)的結(jié)構(gòu)和其中包含的對與設(shè)置在后的表示相關(guān)聯(lián)的子程序的調(diào)用,而從該設(shè)置在后的表示12構(gòu)成一個子程序(procedure Rohstoffl),其具有適應包含在該表示中的圖像部件的變量定義。
<pre listing-type="program-listing">Program Prozess Call Rohstoffl(Rohstoffart,Stueckzahl,Geschwindigkeit,F(xiàn)arbe,Durchmesser,Laenge) Call Sortierung(x,y,z) Call Verarbeitung(...) Call...Precedure Rohstoffl Var Rohstoffart Var Stueckzahl Var...Procedure...</pre>借助規(guī)劃程序4(圖1)的預先給定,例如“如果在處理中的溫度高于120度,則必須打開用于冷卻液體的閥門。必須通知設(shè)備操作者。為了檢驗和記錄的目的必須將其存檔?!?,以及HMI程序3(圖1)的例如下列的片段Logische Gruppe Bit 3 bis Bit 5Datenwort 5 Bit 3“Achtung,Temperatur zu hoch%Var Temperatur%”Datenwort 5 Bit 4“Ventil Kuehlfluessigkeit offen”Datenwort 5 Bit 4“Ventil Kuehlfluessigkeit geschlossen”生成器2可以對自動化程序1的結(jié)構(gòu)補充例如下面按偽代碼示出的程序序列<pre listing-type="program-listing">IF Temperatur>120THEN Datenwort 5 Bit 3=l Archive(Temperatur,Zeit)/*建議 [Aktion einfuegen fuer“Ventil Kuehlfluessigkeit offen”] Datenwort 5 Bit 4=1 IF[Ergebnis ist erreicht fuer“Ventil Kuehlfluessigkeit gesehlossen”] THEN Datenwort 5 Bit 5=1 Archive(Temperatur,Zeit) /*建議 ENDIFENDIF</pre>信息“Logische Gruppe Bit 3 bis Bit 5”(邏輯組位3至位5)等等必須包含在HMI程序3中,以便生成器2可以識別HMI程序3的結(jié)構(gòu)。由此得知的結(jié)構(gòu)構(gòu)成了待產(chǎn)生的程序序列的框架,其中,在HMI程序3中存放的提示文字如“Ventil Kuehlfluessigkeit offen”(打開冷卻液體的閥門)作為注釋在程序序列中采用。這些注釋為完成自動化程序1的程序員提供了對各待使用的程序語句的提示。
由此,可以將本發(fā)明簡要表示如下本發(fā)明給出了一種借助于生成器2從HMI程序3中產(chǎn)生自動化程序1的方法,其中,該生成器2識別所述HMI程序3的結(jié)構(gòu)并轉(zhuǎn)換成自動化程序1的結(jié)構(gòu)。這考慮了這樣的認知,即,從HMI數(shù)據(jù)和必要時的規(guī)劃數(shù)據(jù)出發(fā)產(chǎn)生自動化程序(SPS程序,PLC程序)要比迄今為止首先建立自動化程序然后建立HMI程序更有效。此外,目前的HMI程序已經(jīng)包含了自動化程序所必需的大部分數(shù)據(jù)和數(shù)據(jù)間的相互依賴性。因此,規(guī)劃順序的“反向”是可能的。除了明顯的節(jié)省潛在性外,修改的順序更接近于各用戶的直覺。此外,越來越多的程序部分存在于涉及標準以及分支的庫中,并只需使用而不必再編程,而且最后圖形化的用戶控制就圖形、動態(tài)性、聯(lián)網(wǎng)等而言變得越來越輕松。
權(quán)利要求
1.一種借助于生成器(2)從HMI程序(3)中產(chǎn)生自動化程序(1)的方法,其特征在于,所述生成器(2)識別所述HMI程序(3)的結(jié)構(gòu)(5)并轉(zhuǎn)換成自動化程序(1)的結(jié)構(gòu)(6)。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述HMI程序(3)基于一個規(guī)劃程序(4),而所述生成器(2)考慮該規(guī)劃程序(4)的規(guī)劃數(shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的方法,其中,所述HMI程序(3)包括一個具有中心表示(11)和至少一個設(shè)置在后的表示(12)的導引部件,而所述生成器(2)借助所述中心表示(11)產(chǎn)生所述自動化程序(1)的一個主程序,以及借助該或者每個設(shè)置在后的表示(12)分別產(chǎn)生所述自動化程序(1)的一個子程序。
4.根據(jù)權(quán)利要求3所述的方法,其中,每個表示包括多個圖像成分;單個的圖像成分與一個設(shè)置在該表示后的表示(12)相聯(lián)系;所述生成器(2)為每個包含在一個表示中的、與一個設(shè)置在后的表示(12)聯(lián)系的圖像成分產(chǎn)生一個對與該設(shè)置在后的表示(12)對應的子程序的調(diào)用。
5.根據(jù)權(quán)利要求4所述的方法,其中,將各圖像成分(20)設(shè)置為輸入或輸出成分,用于過程數(shù)據(jù)的輸入或輸出;所述生成器(2)借助包含在一個表示(11,12)中的所有輸入或輸出成分產(chǎn)生一個用于調(diào)用對應子程序的參數(shù)列表。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述生成器(2)針對包含在設(shè)置在后的表示中的輸入或輸出成分來擴展各參數(shù)列表。
7.根據(jù)上述權(quán)利要求中任一項所述的方法,其中,所述生成器(2)將HMI程序(3)的、考慮至少一個條件的過程數(shù)據(jù)指示轉(zhuǎn)換為用于驗證該條件的程序序列。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述生成器(2)產(chǎn)生所述程序序列作為與包含所述過程數(shù)據(jù)指示的表示對應的子程序的組成部分。
9.根據(jù)權(quán)利要求7或8所述的方法,其中,將所述HMI程序(3)的提示文本作為注釋行接收到所述程序序列中。
10.根據(jù)上述權(quán)利要求中任一項所述的方法,其中,所述生成器(2)借助可以由用戶編輯的規(guī)則確定調(diào)用自動化程序(1)中子程序的順序。
全文摘要
本發(fā)明涉及一種借助于生成器(2)從HMI程序(3)中產(chǎn)生自動化程序(1)的方法,其中,該生成器(2)識別所述HMI程序(3)的結(jié)構(gòu)(5)并轉(zhuǎn)換成自動化程序(1)的結(jié)構(gòu)(6)。
文檔編號G05B19/042GK1701302SQ03809279
公開日2005年11月23日 申請日期2003年3月4日 優(yōu)先權(quán)日2002年3月5日
發(fā)明者沃納·霍夫勒, 邁克爾·蒂格爾坎普 申請人:西門子公司