專利名稱:用于自動測試用于面向安全的自動化系統(tǒng)的程序的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于在是否遵守準(zhǔn)則、尤其是用于設(shè)計(jì)用于面向安全的可編程邏輯控制器的程序的準(zhǔn)則方面自動測試用于尤其是至少部分地面向安全的自動化系統(tǒng)、例如面向安全的可編程邏輯控制器的程序的方法和系統(tǒng)。
背景技術(shù):
為了盡可能簡單并低成本地實(shí)施自動化系統(tǒng)、尤其是面向安全的自動化系統(tǒng)的認(rèn)證,在創(chuàng)建這種系統(tǒng)時(shí)使用盡可能多的已預(yù)先認(rèn)證的組件。這些已預(yù)先認(rèn)證的組件例如是-硬件組件,諸如可編程邏輯控制器、輸入/輸出模塊、總線系統(tǒng)、傳感器、執(zhí)行元件;_(例如可編程邏輯控制器的)智能組件上的固件;-軟件組件,諸如用于自動化系統(tǒng)的程序的開發(fā)系統(tǒng);-用于開發(fā)面向安全的自動化系統(tǒng)的過程;以及-實(shí)施這種過程的組織。面向安全的自動化系統(tǒng)的取決于所計(jì)劃的應(yīng)用、因此不能夠預(yù)先完成并且因而也不能夠預(yù)先認(rèn)證的唯一組件是可編程邏輯控制器的程序、尤其是面向安全的可編程邏輯控制器的程序。當(dāng)該面向安全的可編程邏輯控制器的程序在結(jié)構(gòu)和內(nèi)容上構(gòu)成為使得認(rèn)證機(jī)構(gòu)能夠以盡可能少的工作理解所述程序的工作原理時(shí),易于對該程序進(jìn)行認(rèn)證。這首先能夠通過如下方式達(dá)成用于可編程邏輯控制器的編程語言提供的可能性當(dāng)應(yīng)用于面向安全的自動化系統(tǒng)時(shí)受到限制。這些限制能夠以準(zhǔn)則形式表示,則在創(chuàng)建面向安全的可編程邏輯控制器的程序時(shí)須留意所述準(zhǔn)則。當(dāng)然,對于設(shè)計(jì)用于面向安全的可編程邏輯控制器的程序測試是否遵守這些準(zhǔn)則對于開發(fā)人員或認(rèn)證所述面向安全的自動化系統(tǒng)的機(jī)構(gòu)意味著費(fèi)時(shí)的并且容易出錯(cuò)的工作。在軟件開發(fā)領(lǐng)域中,十幾年來,對于不同的程序語言存在實(shí)施自動程序測試的可能性。在此,不同類型的測試區(qū)分成例如-與特定規(guī)則的一致性測試、例如句法或類型兼容性測試,-正確性測試、例如針對字段索引溢出(Feldindex-Oberlauf)、指針溢出、內(nèi)存溢
出、無限循環(huán)、未分配的或未釋放的內(nèi)存、未初始化的變量或不安全類型轉(zhuǎn)換的測試,-運(yùn)行時(shí)間特性測試、例如性能測試或壓力測試。按照現(xiàn)有技術(shù)常見的是,在面向安全的可編程邏輯控制器中執(zhí)行用于在用于面向安全的程序的開發(fā)系統(tǒng)中的程序測試的構(gòu)件。這些行為方式導(dǎo)致費(fèi)時(shí)的軟件開發(fā)并且成本高,因?yàn)樗鲩_發(fā)系統(tǒng)對于尤其是面向安全的自動化系統(tǒng)中的應(yīng)用是預(yù)先認(rèn)證的并且用于在開發(fā)系統(tǒng)中的程序測試的構(gòu)件的集成表明了開發(fā)系統(tǒng)的改變,這使所述開發(fā)系統(tǒng)的重新認(rèn)證成為必需。
發(fā)明內(nèi)容
因此本發(fā)明所基于的任務(wù)是,對于在是否遵守準(zhǔn)則、規(guī)則和規(guī)定(也稱為編程準(zhǔn)則)、尤其是用于設(shè)計(jì)用于可編程邏輯控制器的程序、尤其是用于面向安全的可編程邏輯控制器的程序的編程準(zhǔn)則方面自動測試用于自動化系統(tǒng)、尤其是用于面向安全的自動化系統(tǒng)的程序給出解決方案。該任務(wù)通過用于自動測試用于面向安全的自動化系統(tǒng)的、尤其是面向安全的可編程邏輯控制器的程序的方法得到解決,所述方法具有在權(quán)利要求1中給出的特征。有利的改進(jìn)方案和相應(yīng)的系統(tǒng)在另外的權(quán)利要求中給出。因此,利用本發(fā)明建議在用于安全軟件(也稱為面向安全的程序)的開發(fā)環(huán)境外部實(shí)施控制程序或自動化系統(tǒng)的程序部分在是否遵守編程準(zhǔn)則、例如用于設(shè)計(jì)用于(尤其是面向安全的)可編程邏輯控制器的程序的準(zhǔn)則、規(guī)則和規(guī)定方面的自動測試。該自動測試優(yōu)選涉及面向安全的控制程序或面向安全的自動化系統(tǒng)的程序部分。當(dāng)例如用于設(shè)計(jì)用于面向安全的可編程邏輯控制器的程序的準(zhǔn)則首次集成或事后修改時(shí),能夠有利地避免開發(fā)系統(tǒng)的改變,原因在于應(yīng)該對于(例如按照IEC 61508標(biāo)準(zhǔn)的)較高的安全完整性水平(也稱為Mfety Integrity Level)認(rèn)證面向安全的可編程邏輯控制器,也就是應(yīng)該適應(yīng)安全應(yīng)用的不同等級。
根據(jù)附圖從下面對實(shí)施例的描述中得出對本發(fā)明的進(jìn)一步闡述及其優(yōu)點(diǎn)。其中圖1示出了用于按照本發(fā)明的方法的示例流程圖;圖2示出了用于實(shí)施所述方法的示例布置。
具體實(shí)施例方式圖1以流程圖在啟動用于自動實(shí)施的程序測試的方法之后作為第一步驟示出了從用于示例性的面向安全的自動化系統(tǒng)的開發(fā)系統(tǒng)中輸出程序(也稱為源程序)的副本。 按照第二步驟,該程序副本(也稱為安全程序)被加載到另一裝置(在這里也稱為測試裝置)中。該測試裝置是為程序測試設(shè)置的并且包含有適合于在第三步驟中實(shí)施的程序測試的軟件,所述軟件設(shè)計(jì)用于測試給出的用于設(shè)計(jì)用于面向安全的可編程邏輯控制器的程序的準(zhǔn)則集合(下面也稱為編程準(zhǔn)則)。該編程準(zhǔn)則優(yōu)選以機(jī)器可讀形式存在并且接著在測試程序運(yùn)行期間被解釋。在開發(fā)系統(tǒng)中設(shè)計(jì)出的并且待測試的程序例如能夠以按照IEC61131標(biāo)準(zhǔn)的編程語言存在,例如作為結(jié)構(gòu)化文本程序、作為功能方塊圖或作為梯形圖。當(dāng)該測試結(jié)果表明按照編程準(zhǔn)則、尤其是用于設(shè)計(jì)用于面向安全的可編程邏輯控制器的程序的準(zhǔn)則,待測試的程序副本是無錯(cuò)誤的時(shí),該測試結(jié)果被輸出給開發(fā)系統(tǒng)和/ 或編程員并且所述方法流程因而結(jié)束。
如果故障描述了違背用于設(shè)計(jì)用于面向安全的可編程邏輯控制器的程序的準(zhǔn)則時(shí),因此,所述違背被標(biāo)記或指出和/或顯示出。有錯(cuò)誤的程序的修訂或校正當(dāng)前在本發(fā)明的有利拓展方案中完成。該過程在圖1中作為步驟4示出。在開發(fā)系統(tǒng)中的源程序修訂后, 該源程序重新被輸出并且加載到測試裝置中。所述重復(fù)過程或者在直到確定待測試的程序不再違背編程準(zhǔn)則的時(shí)間內(nèi)實(shí)施或者在直到確定僅有對在該情況下不重要的準(zhǔn)則的違背的時(shí)間內(nèi)實(shí)施,使得通過這樣預(yù)期沒有所尋求的認(rèn)證的延遲并且能夠在面向安全的自動化系統(tǒng)中使用新的程序版本。對不重要的編程準(zhǔn)則的違背的確定優(yōu)選在啟動按照本發(fā)明的方法時(shí)實(shí)施。根據(jù)按照本發(fā)明的未在圖1中示出的另一實(shí)施形式和前述方法,能夠省去第一步驟、也就是從開發(fā)系統(tǒng)中輸出程序的副本,當(dāng)測試裝置實(shí)現(xiàn)用于直接在開發(fā)系統(tǒng)中定位并且自動地加載待測試的安全程序、也就是在無附加的輸出步驟情況下加載。根據(jù)按照本發(fā)明方法的另一實(shí)施形式,省去了第一步驟、也就是程序副本的輸出。 在該情況下,所述測試裝置設(shè)置成用于直接在開發(fā)系統(tǒng)中訪問待測試的安全程序并且因而在開發(fā)系統(tǒng)內(nèi)實(shí)施程序的測試。在此,該測試裝置不改變在開發(fā)系統(tǒng)內(nèi)的程序,除非使用者引起修改。圖2例如示出了一種用于實(shí)施按照本發(fā)明方法的系統(tǒng)或布置。在此,面向安全的自動化系統(tǒng)1與開發(fā)計(jì)算機(jī)2聯(lián)合作用。該面向安全的自動化系統(tǒng)1包括面向安全的可編程邏輯控制器11和與其通信的非面向安全的可編程邏輯控制器12。另外還存在面向安全的輸入/輸出設(shè)備13和非面向安全的輸入/輸出設(shè)備14,它們借助數(shù)據(jù)傳輸系統(tǒng)與控制器 11和12相連。該開發(fā)計(jì)算機(jī)2包括具有用于設(shè)計(jì)出面向安全的程序(也稱為安全軟件)的編程環(huán)境的開發(fā)系統(tǒng)21和用于測試安全軟件的測試裝置22。編程員3不僅具有對開發(fā)系統(tǒng)21 的訪問權(quán)而且具有對測試裝置22的訪問權(quán)。該開發(fā)計(jì)算機(jī)2能夠與面向安全的可編程邏輯控制器11和/或非面向安全的可編程邏輯控制器12相連。在圖2中示出的布置的工作原理與根據(jù)圖1描述的流程相符。該按照本發(fā)明的方法和相應(yīng)的系統(tǒng)不僅使編程員從費(fèi)時(shí)的程序測試中解脫出來, 而且就所述測試裝置在開發(fā)系統(tǒng)中不引起源程序的修改而言也是無反饋的。這是如下的前提開發(fā)系統(tǒng)在開發(fā)用于面向安全的系統(tǒng)的程序時(shí)仍能夠用作無須另外的測試的預(yù)先驗(yàn)證的。另一優(yōu)點(diǎn)在于,用于設(shè)計(jì)用于(尤其是面向安全的)可編程邏輯控制器的程序的編程準(zhǔn)則能夠靈活適應(yīng)分別所需的SIL水平(安全完整性水平Mfety Integrity Level) 0特別有利的是,能夠修改測試裝置、尤其是用于設(shè)計(jì)用于面向安全的可編程邏輯控制器的程序的待測試的準(zhǔn)則,而無須在此改變所述開發(fā)系統(tǒng)和因此重新認(rèn)證所述開發(fā)系統(tǒng)。
權(quán)利要求
1.用于在是否遵守用于設(shè)計(jì)用于所述面向安全的可編程邏輯控制器的程序的編程準(zhǔn)則方面自動測試用于至少部分地面向安全的、帶有至少一個(gè)面向安全的可編程邏輯控制器的自動化系統(tǒng)(1)的程序的方法,其中,-在第一步驟中,至少部分地面向安全的程序的副本或面向安全的程序的部分的副本作為待測試的程序副本從用于自動化系統(tǒng)的開發(fā)系統(tǒng)中輸出,所述副本存放在用于在所述開發(fā)系統(tǒng)中設(shè)計(jì)出面向安全的程序的編程環(huán)境中,-在第二步驟中,待測試的程序副本被加載到用于測試至少部分地面向安全的程序的測試裝置02)中,其中所述測試裝置02)具有對用于設(shè)計(jì)用于至少部分地面向安全的可編程邏輯控制器的程序的準(zhǔn)則的訪問權(quán),以及-在第三步驟中,在那里自動實(shí)施在是否遵守用于設(shè)計(jì)用于至少部分地面向安全的可編程邏輯控制器的程序的編程準(zhǔn)則方面的程序測試并且輸出測試結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在第四步驟中修訂在所述測試中測定為有錯(cuò)誤的程序副本并且重新測試所述程序副本直到實(shí)現(xiàn)無錯(cuò)誤或余下的與編程準(zhǔn)則的偏差被識別為無危險(xiǎn)的并且結(jié)束所述測試。
3.根據(jù)前述權(quán)利要求之一項(xiàng)所述的方法,其特征在于,所述編程準(zhǔn)則以機(jī)器可讀形式存在并且在所述測試程序運(yùn)行期間被解釋。
4.根據(jù)前述權(quán)利要求之一項(xiàng)所述的方法,通過如下方式修改,即代替所述程序副本的按照所述第一步驟的特別輸出,而借助所述測試裝置02)直接在所述開發(fā)系統(tǒng)中定位并且自動加載所述待測試的安全程序。
5.根據(jù)權(quán)利要求1至3之一項(xiàng)所述的方法,通過如下方式修改,即代替所述程序副本的按照所述第一步驟的特別輸出,借助所述測試裝置02)直接在所述開發(fā)系統(tǒng)中訪問所述待測試的安全程序并且在此基礎(chǔ)上在所述開發(fā)系統(tǒng)內(nèi)實(shí)施所述安全程序的所述測試。
6.用于實(shí)施按照權(quán)利要求1所述的方法的系統(tǒng),其中-至少部分地面向安全的自動化系統(tǒng)(1)與開發(fā)計(jì)算機(jī)(2)聯(lián)合作用,-所述開發(fā)計(jì)算機(jī)(2)包括開發(fā)系統(tǒng)和測試裝置(22),所述開發(fā)系統(tǒng)具有用于設(shè)計(jì)出至少部分地面向安全的程序的編程環(huán)境,所述測試裝置02)用于測試所述至少部分地面向安全的程序的之前加載的副本,以及-所述測試裝置(22)在是否遵守用于設(shè)計(jì)用于至少部分地面向安全的可編程邏輯控制器的程序的編程準(zhǔn)則方面自動實(shí)施所述至少部分地面向安全的程序的所述測試并且給出測試結(jié)果。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述測試裝置02)修訂在所述編程準(zhǔn)則基礎(chǔ)上的測試中測定為有錯(cuò)誤的程序副本并且重新測試所述程序副本,直到實(shí)現(xiàn)無錯(cuò)誤或余下的與編程準(zhǔn)則的偏差視為無危險(xiǎn)的并且結(jié)束所述測試。
8.根據(jù)權(quán)利要求6至7的系統(tǒng),其特征在于,所述編程準(zhǔn)則以機(jī)器可讀形式存在并且在所述測試程序運(yùn)行期間是可解釋的。
9.根據(jù)權(quán)利要求7至8所述的系統(tǒng),其特征在于,所述測試裝置02)直接在所述開發(fā)系統(tǒng)中定位所述待測試的面向安全的程序并且自動地加載所述待測試的面向安全的程序。
10.根據(jù)權(quán)利要求7至8所述的系統(tǒng),其特征在于,所述測試裝置直接在所述開發(fā)系統(tǒng)中訪問所述待測試的面向安全的程序并且實(shí)施所述安全程序的所述測試。
11.根據(jù)權(quán)利要求7至10所述的系統(tǒng),其特征在于,所述編程準(zhǔn)則是準(zhǔn)則、規(guī)則和規(guī)定, 尤其是用于設(shè)計(jì)用于可編程邏輯控制器、尤其是面向安全的可編程邏輯控制器的程序的編程準(zhǔn)則。
12.根據(jù)權(quán)利要求7至11所述的系統(tǒng),其特征在于,所述開發(fā)系統(tǒng)是已預(yù)先認(rèn)證的組件。
全文摘要
本發(fā)明涉及一種用于在是否遵守用于設(shè)計(jì)用于自動化系統(tǒng)的程序的編程準(zhǔn)則方面自動測試用于自動化系統(tǒng)(1)、尤其是可編程邏輯控制器的程序的方法,其中,在第一步驟中,程序或程序部分的副本作為待測試的程序副本從用于自動化系統(tǒng)的開發(fā)系統(tǒng)(21)中輸出,在第二步驟中,待測試的程序副本被加載到用于測試程序的測試裝置(22)中,其中所述測試裝置(22)訪問用于程序測試的編程準(zhǔn)則,以及在第三步驟中,在那里自動實(shí)施在是否遵守編程準(zhǔn)則方面的程序測試并且給出測試結(jié)果。
文檔編號G06F9/45GK102395928SQ201080015934
公開日2012年3月28日 申請日期2010年3月11日 優(yōu)先權(quán)日2009年3月27日
發(fā)明者H·諾伊珀特爾, M·赫尼克, O·格拉姆貝爾格, R·德拉特, Y·維里哈 申請人:Abb股份公司