本發(fā)明涉及一種用于檢驗功能模塊的兼容性的方法,功能模塊被規(guī)定用于過程自動化設(shè)備。功能模塊設(shè)置用于:經(jīng)由輸入端口和輸出端口與設(shè)備通信。功能模塊經(jīng)由輸入端口接收至少一個輸入信號并且功能模塊經(jīng)由輸出端口示出至少一個輸出信號。應(yīng)當(dāng)檢驗的是:功能模塊是否產(chǎn)生對于設(shè)備適當(dāng)?shù)妮敵鲂盘?,并且設(shè)備是否能夠為功能模塊供應(yīng)正確的輸入信號。本發(fā)明還涉及一種用于執(zhí)行該方法的工程規(guī)劃系統(tǒng)。
背景技術(shù):
在用于過程自動化的設(shè)備中、或簡稱自動化設(shè)備中,能夠基于可編程邏輯控制器(sps)或plc(programmablelogiccontroller)執(zhí)行過程的調(diào)節(jié)或控制。為了可編程邏輯控制器實施分別所需要的正確的控制步驟或調(diào)節(jié)步驟,可編程邏輯控制器借助于控制程序來配置或參數(shù)化或規(guī)劃。該控制程序能夠通過一個或多個功能塊來提供。替選于可編程邏輯控制器,也能夠提供專用的控制電路。
下面,功能塊或功能電路統(tǒng)一地以“功能模塊”指代。
每個功能模塊通過讀入至少一個輸入信號來實施特定的功能,輸入信號分別通過輸入值的時間序列來描述。由至少一個輸入信號計算出至少一個輸出信號,輸出信號又分別代表輸出值的時間序列。例如,用于控制流水線的驅(qū)動的功能模塊能夠一方面接收運(yùn)送速度作為輸入信號,并且另一方面接收在運(yùn)送設(shè)備中在上游連接或在上游安置的流水線的運(yùn)行狀態(tài)作為輸入信號,并且相應(yīng)地調(diào)整自身的流水線的運(yùn)送速度作為輸出信號。
為了給設(shè)備配設(shè)匹配的功能模塊,出于經(jīng)濟(jì)理由關(guān)注的是,繼續(xù)利用已經(jīng)完成開發(fā)的、原本考慮用于其他設(shè)備的功能模塊。特別地也有利的是,能夠采用其他制造商的功能模塊、例如采用分別要控制的設(shè)備部件的制造商的功能模塊,使得完全地取消自身的開發(fā)工作。
功能模塊的再應(yīng)用或其他功能模塊的使用在設(shè)備配置或規(guī)劃時被認(rèn)為是故障源。例如,較早的功能模塊能夠在不同的假設(shè)情況下被開發(fā)。用于控制流水線的所描述的功能模塊例如能夠設(shè)有如下最高速度,最高速度小于在當(dāng)前要控制的流水線中的實際可用的最高速度,當(dāng)前要控制的流水線例如能夠具有功率更強(qiáng)大的馬達(dá)。但是,這種限值在將功能模塊使用于新設(shè)備中時才能夠被確定,并且此時僅在極端條件下才能夠確定。
可能在生產(chǎn)運(yùn)營中才發(fā)現(xiàn)錯誤配置的最高速度,并且該錯誤配置的最高速度能夠?qū)е略O(shè)備或生產(chǎn)物品的損壞。
第二故障源是輸入信號和輸出信號的編碼,編碼能夠由于繼續(xù)開發(fā)硬件被改變。例如,在舊的傳送帶系統(tǒng)中能夠設(shè)置,由于傳送速度的負(fù)輸入值而以信號通知傳送帶靜止。在現(xiàn)代的傳送帶中,能夠?qū)崿F(xiàn)正的和負(fù)的運(yùn)送速度,因為例如傳送帶的驅(qū)動器也能夠沿相反的方向運(yùn)動。如果功能模塊現(xiàn)在接收具有負(fù)輸入值的輸入信號,那么這會導(dǎo)致設(shè)備狀態(tài)的錯誤解釋。
采用其他制造商的功能模塊隱藏了附加的風(fēng)險,即功能模塊僅能夠隨機(jī)地進(jìn)行測試,因為通常真正的程序、即源代碼是不可見的。在此,必須信賴制造商的說明。此時,因此不保證制造商是否也確實針對全部可能的輸入值檢驗了功能模塊。
技術(shù)實現(xiàn)要素:
本發(fā)明所基于的目的是:能夠針對用于過程自動化的設(shè)備如下地檢驗功能模塊:即功能模塊是否能夠與在該設(shè)備中應(yīng)當(dāng)滿足的要求相兼容。
該目的通過獨(dú)立權(quán)利要求的主題來實現(xiàn)。本發(fā)明的有利的改進(jìn)形式通過獨(dú)立權(quán)利要求的特征得出。
根據(jù)本發(fā)明,提供一種用于檢驗用于過程自動化的設(shè)備的功能模塊的兼容性的方法。該方法由此出發(fā),即功能模塊設(shè)置用于經(jīng)由輸入端口從設(shè)備接收至少一個輸入信號,并且根據(jù)至少一個輸入信號產(chǎn)生至少一個輸出信號,并且經(jīng)由輸出端口將所產(chǎn)生的至少一個輸出信號輸出給設(shè)備。功能模塊例如能夠是控制電路,或者功能模塊例如能夠是用于配置可編程邏輯控制器的功能塊。因此,功能塊是程序代碼。
在第一方法步驟中,該方法提出:為輸入端口提供輸入規(guī)范,輸入規(guī)范對于至少一個輸入信號、即例如速度信號和/或溫度信號給出了由功能模塊接受為有效值的所有輸入值。換言之,輸入規(guī)范說明了至少一個輸入信號的全部以下狀態(tài),即功能模塊針對該狀態(tài)被設(shè)計。如果功能模塊例如不提出對負(fù)的速度數(shù)據(jù)進(jìn)行處理,那么輸入規(guī)范能夠針對輸入信號“速度”給出,使得因此僅設(shè)有大于或等于零的輸入值。
在另一方法步驟中,為輸出端口提供輸出規(guī)范。輸出規(guī)范對于至少一個輸出信號給出了在滿足輸入規(guī)范的情況下相應(yīng)由功能模塊按規(guī)定提供的輸出值。換言之,輸出規(guī)范針對至少一個輸出信號說明:如果功能模塊僅利用允許的輸入值運(yùn)行并且功能模塊正確地工作,那么應(yīng)當(dāng)或者能夠得出何種相應(yīng)的輸出值。精確的值關(guān)聯(lián)不是必須存在的,即根據(jù)函數(shù)所提供的輸出值并不與特定的輸入值相對應(yīng)。對于輸入規(guī)范和輸出規(guī)范能夠分別是數(shù)值范圍說明。但是,輸出規(guī)范能夠具有表達(dá)式,表達(dá)式的變量通過輸入值形成。
在另一方法步驟中,在設(shè)備中的功能模塊運(yùn)行之前,即在模塊測試中,通過分析裝置檢驗:通過功能模塊是否對于在輸入端口處根據(jù)輸入規(guī)范產(chǎn)生的每個輸入信號在輸出端口處也實際上事實上也僅僅根據(jù)輸出規(guī)范產(chǎn)生至少一個輸出信號。換言之,功能模塊基于輸入規(guī)范和輸出規(guī)范與設(shè)備無關(guān)地對規(guī)范兼容性進(jìn)行測試或檢驗。如果至少一個輸出信號的至少一個輸出值違反輸出規(guī)范,那么通過分析裝置以信號通知模塊故障。因此,模塊故障顯示出:功能模塊未符合規(guī)范地工作。
通過本發(fā)明得到如下優(yōu)點(diǎn):借助于用于功能模塊的分析裝置在干運(yùn)行中(即沒有真正在設(shè)備中運(yùn)行)能夠確定,輸入規(guī)范和輸出規(guī)范是否正確地描述功能模塊。因此現(xiàn)在足夠的是:輸入規(guī)范和輸出規(guī)范借助設(shè)備的設(shè)備部件的設(shè)備配置來均衡,其中設(shè)備部件與功能模塊交換至少一個輸入信號和至少一個輸出信號。據(jù)此能夠識別出:設(shè)備方面和功能模塊方面是否彼此兼容。功能模塊的所描述的檢驗在下面也稱作為函數(shù)驗證。
在本發(fā)明的一個有利的改進(jìn)形式中,通過分析裝置由功能模塊的函數(shù)程序、即功能模塊的函數(shù)的計算機(jī)可讀的描述形成模塊模型。函數(shù)程序描述如何由至少一個輸入信號形成至少一個輸出信號。函數(shù)程序例如能夠是用于fpga(現(xiàn)場可編程門陣列)或asic(專用集成電路)或sps的程序文本。
因此,模塊模型模擬在輸出端口處的功能模塊的模塊行為。通過分析裝置,基于模塊模型借助于模塊檢驗裝置(英文:modelchecking)為至少一個輸出信號檢驗其在輸出規(guī)范方面的兼容性。用于模型檢驗的方法自身從現(xiàn)有技術(shù)中已知。對此的實例是基于smt求解器(smt-solver,smt-可滿足性模理論)的模塊檢驗。通過形成模塊模型和使用模塊檢驗得到如下優(yōu)點(diǎn):輸出規(guī)范的檢驗?zāi)軌蛟跀?shù)學(xué)上完整地執(zhí)行。這例如基于模擬僅以非常高的耗費(fèi)才可行或甚至完全是不可行的。
在本發(fā)明的一個改進(jìn)形式中,由程序代碼文本、即包含功能模塊的所述函數(shù)程序的至少一個文件和輸入規(guī)范與輸出規(guī)范共同地產(chǎn)生數(shù)字證書。由此,得到如下優(yōu)點(diǎn),能夠為第三方和/或也在稍后的時間點(diǎn)以簡單的方式證明:特定的功能模塊滿足特定的輸入規(guī)范和特定的輸出規(guī)范。這能夠由此簡單地被檢驗,即再一次將輸入規(guī)范、程序代碼文本和輸出規(guī)范組合成第二數(shù)字證書并且將原始證書和另一證書相比較。
在本發(fā)明的一個改進(jìn)方案中,在設(shè)備中不單獨(dú)地提供功能模塊,而是也將輸入規(guī)范和輸出規(guī)范連同功能模塊一起作為擴(kuò)展功能模塊在設(shè)備中提供。由此得到如下優(yōu)點(diǎn),即在規(guī)劃或配置或參數(shù)化設(shè)備時,在將功能模塊嵌入到設(shè)備中之前,根據(jù)輸入規(guī)范和輸出規(guī)范能夠在特定的和/或當(dāng)前的設(shè)備配置方面對功能模塊的兼容性進(jìn)行自動檢驗。
為了實現(xiàn)對功能模塊進(jìn)行自動檢驗,需要適當(dāng)?shù)赜涗涊斎胍?guī)范和輸出規(guī)范。對此,本發(fā)明的另一有利的改進(jìn)方案提出,輸入規(guī)范和/或輸出規(guī)范分別作為謂詞邏輯提供。謂詞邏輯的格式規(guī)范例如是:速度≥0。這就是說:輸入信號“速度”不應(yīng)具有負(fù)的輸入值。應(yīng)用謂詞邏輯具有以下優(yōu)點(diǎn):由開發(fā)者在開發(fā)功能模塊時做出的假設(shè)和論斷直接轉(zhuǎn)換成機(jī)器可讀的規(guī)范。尤其有利的是:應(yīng)用一階謂詞邏輯和/或無量詞的謂詞邏輯。由此徹底地以有利的方式簡化了輸入規(guī)范和/或輸出規(guī)范的檢驗。更高階的謂詞邏輯和/或具有量詞的謂詞邏輯例如包含如下結(jié)論“存在速度輸入值,該速度輸入值在速度輸出值產(chǎn)生大于零值”。這種所謂的存在量詞能夠僅不充分地自動檢驗。
在本發(fā)明的優(yōu)選的改進(jìn)方案中,作為所描述的模塊故障,不是簡單地僅以信號通知功能模塊與規(guī)范相沖突,而是輸出反例,反例針對至少一個輸入信號給出相應(yīng)的輸入值,輸入值得出至少一個輸出值,通過該輸出值違背輸出規(guī)范。由此得到的優(yōu)點(diǎn)是,系統(tǒng)地根據(jù)所基于的誤差能夠在功能模塊中進(jìn)行尋找。
在本發(fā)明的一個改進(jìn)方案中,通過分析裝置附加地檢驗,通過設(shè)備在輸入端口處產(chǎn)生的至少一個輸入信號是否滿足輸入規(guī)范。因此換言之,在此,不將輸入規(guī)范視作為功能模塊的出發(fā)點(diǎn)的假設(shè)或前提,而是視作為設(shè)備必須滿足的論斷或條件,以便在輸入端口處正確地為設(shè)備中的功能模塊的運(yùn)行產(chǎn)生至少一個輸入信號。如果至少一個由設(shè)備產(chǎn)生的輸入信號的至少一個輸入值違背輸入規(guī)范,那么以信號通知功能模塊的錯誤使用。換言之,以信號通知,設(shè)備未正確地產(chǎn)生至少一個輸入信號,從而功能模塊因此不能夠按規(guī)定地在設(shè)備中使用。由此得到如下優(yōu)點(diǎn),即能夠識別出設(shè)備的對于功能模塊運(yùn)行的錯誤配置。
一個改進(jìn)方案提出:以信號通知如下設(shè)備狀態(tài),在該設(shè)備狀態(tài)下,由自動化設(shè)備產(chǎn)生至少一個違背輸入規(guī)范的輸入值。由此得到如下優(yōu)點(diǎn):能夠有針對性地確定設(shè)備中的故障。
為了盡可能完全地確定潛在地能由設(shè)備產(chǎn)生的、全部可能的輸入值,本發(fā)明的一個改進(jìn)方案提出,通過分析裝置基于設(shè)備的設(shè)備部件的設(shè)備配置形成設(shè)備模型。設(shè)備的設(shè)備部件的設(shè)備配置描述了設(shè)備部件的參數(shù)值和/或配置值和/或程序,通過參數(shù)值和/或配置值和/或程序在輸入端口方面描述設(shè)備的設(shè)備行為。相應(yīng)地,所提出的設(shè)備模型模擬在輸入端口處的設(shè)備行為。相應(yīng)地,借助于模型檢驗裝置得出錯誤使用。如已經(jīng)結(jié)合用于功能模塊的模塊檢驗所描述的,由此能夠以數(shù)學(xué)完整的方式在輸入端口處檢驗通過設(shè)備是否遵守輸入規(guī)范。設(shè)備配置也稱為設(shè)備規(guī)劃。
設(shè)備的所描述的檢驗在下面也稱作為功能模塊的環(huán)境驗證。
本發(fā)明也涉及一種用于配置或規(guī)劃用于過程自動化的設(shè)備的工程規(guī)劃系統(tǒng)。工程規(guī)劃系統(tǒng)能夠具有一個或多個處理器裝置,例如計算機(jī)工作站,并且與設(shè)備例如經(jīng)由通信網(wǎng)絡(luò)、例如基于ip的網(wǎng)絡(luò)(ip因特網(wǎng)協(xié)議)和/或現(xiàn)場總線連接。根據(jù)本發(fā)明的工程規(guī)劃系統(tǒng)具有分析裝置,例如程序模塊,分析裝置設(shè)置用于執(zhí)行根據(jù)本發(fā)明的方法的一個實施方式。根據(jù)本發(fā)明的工程規(guī)劃系統(tǒng)具有以下優(yōu)點(diǎn):在嵌入到設(shè)備中之前,例如在將功能模塊存儲在可編程邏輯器之前或在連接功能模塊之前,利用工程規(guī)劃系統(tǒng)首先基于輸入規(guī)范和輸出規(guī)范能夠為功能模塊檢驗其與設(shè)備的兼容性。由此在設(shè)備運(yùn)行中避免故障。
附圖說明
下面描述本發(fā)明的一個實施例。對此示出:
圖1示出根據(jù)本發(fā)明的工程規(guī)劃系統(tǒng)的一個實施方式的示意圖,
圖2示出擴(kuò)展的功能模塊的草圖,所述功能模塊例如能夠通過根據(jù)本發(fā)明的方法的一個實施方式提供,
圖3示出圖2的擴(kuò)展的功能模塊,所述功能模塊例如能夠在用于功能模塊的函數(shù)程序的函數(shù)驗證的工程規(guī)劃系統(tǒng)中應(yīng)用,和
圖4示出例如能夠用于設(shè)備中的環(huán)境驗證形式的擴(kuò)展的功能模塊。
下面闡述的實施例為本發(fā)明的一個優(yōu)選的實施方式。但是,在該實施例中,實施方式的所描述的部分分別為本發(fā)明的單獨(dú)地、可彼此獨(dú)立考慮的特征,所述特征分別彼此獨(dú)立地改進(jìn)本發(fā)明進(jìn)而也單獨(dú)地或者以與所示出組合不同地視作為本發(fā)明的組成部分。此外,所描述的實施方式也能夠通過本發(fā)明的其他的已經(jīng)描述的特征來補(bǔ)充。
在附圖中,功能相同的元件分別設(shè)有相同的附圖標(biāo)記。
具體實施方式
圖1示出設(shè)備1,其例如能夠是生產(chǎn)設(shè)備或過程控制設(shè)備或信號控制設(shè)備。制造設(shè)備例如能夠設(shè)置用于制造產(chǎn)品,例如機(jī)動車。過程控制設(shè)備例如能夠被提供用于調(diào)節(jié)或控制工藝流程,例如用于由核能產(chǎn)生電能。信號控制設(shè)備例如能夠設(shè)置用于在城區(qū)中控制交通燈系統(tǒng)。
為了調(diào)節(jié)和/或控制區(qū)域3中的、例如工業(yè)廠房或所提出的城區(qū)中的過程2,設(shè)備1能夠具有一個或多個設(shè)備部件4、5,在圖1中僅示例性地示出這些設(shè)備部件中的兩個設(shè)備部件4、5。例如,設(shè)備部件4、5能夠分別具有流水線6、7,經(jīng)由流水線應(yīng)當(dāng)沿著運(yùn)送方向9以預(yù)設(shè)的速度運(yùn)送工件8。在所示出的實例中,工件8首先通過傳送帶6來運(yùn)送并且隨后轉(zhuǎn)給傳送帶7,該傳送帶繼續(xù)運(yùn)送工件8。設(shè)備部件4、5能夠在設(shè)備1中經(jīng)由通信裝置10、例如像profinet總線的現(xiàn)場總線來耦聯(lián)。設(shè)備部件4、5還有其他的未示出的設(shè)備部件能夠經(jīng)由通信裝置10交換通信數(shù)據(jù)。
設(shè)備1還能夠具有工程規(guī)劃系統(tǒng)11,通過工程規(guī)劃系統(tǒng)能夠配置或參數(shù)化或規(guī)劃設(shè)備部件4、5。
例如每個設(shè)備部件4、5能夠分別具有一個可編程邏輯控制器12、13。例如,在傳送帶6的情況中,控制裝置12能夠調(diào)節(jié)或控制驅(qū)動馬達(dá)14,使得傳送帶6以預(yù)設(shè)的運(yùn)送速度運(yùn)輸或運(yùn)送工件8。控制裝置13同樣能夠例如控制傳送帶7的驅(qū)動器15,使得工件8在傳送帶7上以預(yù)設(shè)的運(yùn)送速度被運(yùn)送或運(yùn)輸。
為了使控制裝置13以必要的方式控制設(shè)備1中的設(shè)備部件5,以便在設(shè)備1中執(zhí)行過程,能夠提出,設(shè)備部件5與設(shè)備部件4協(xié)調(diào)地運(yùn)行,以便傳送帶6、7的運(yùn)送速度例如是相同的。為此,例如設(shè)備部件4、尤其控制裝置12將狀態(tài)信號16例如經(jīng)由通信裝置10傳輸?shù)娇刂蒲b置13處。狀態(tài)信號16例如能夠是具有傳送帶6的相應(yīng)的當(dāng)前速度值的速度信號(speed-速度)。
控制裝置13能夠具有功能模塊18,功能模塊能夠根據(jù)控制裝置12的狀態(tài)信號16產(chǎn)生用于驅(qū)動器15的控制信號17。功能模塊18例如能夠是控制裝置13的程序模塊。功能模塊18例如能夠是電路或具有可編程處理器的插卡??刂菩盘?7為功能模塊18的輸出信號??刂菩盘?7例如能夠是用于驅(qū)動器15的速度設(shè)定信號speedset。功能模塊18能夠例如經(jīng)由通信裝置10接收控制裝置12的狀態(tài)信號16。因此,狀態(tài)信號16為輸入信號。
輸入信號能夠由功能模塊18在輸入端口19處接收。在輸入端口19處,以預(yù)設(shè)的方式預(yù)設(shè)輸入信號到功能模塊18處的信號傳輸。根據(jù)該一個輸入信號或多個輸入信號,通過功能模塊18能夠產(chǎn)生控制信號17作為輸出信號。功能模塊18能夠在輸出端口20處提供輸出信號和可能其他的輸出信號。在輸出端口20處,輸出信號能夠由控制裝置接受并且例如傳輸?shù)津?qū)動器15處。
在該實例中提出,借助于工程規(guī)劃系統(tǒng)11重新配置可編程邏輯控制器13。在控制裝置13中,應(yīng)當(dāng)通過新的功能模塊21取代功能模塊18。替代于此,也能夠提出,設(shè)備1處于新狀態(tài)并且控制裝置13應(yīng)首次獲得新的功能模塊21,這就是說,應(yīng)在控制裝置13中提供功能模塊21。在此必須確保功能模塊21在輸入端口19處僅加載以下輸入信號,該輸入信號也能夠通過功能模塊21處理。此外,必須確保功能模塊21在輸出端口20處產(chǎn)生以下輸出信號,該輸出信號在設(shè)備中引起設(shè)備部件5的期望行為。
結(jié)合本發(fā)明的下面的闡述內(nèi)容,對于工程規(guī)劃系統(tǒng)11重要的是,其能夠具有分析裝置11',通過分析裝置能夠執(zhí)行根據(jù)本發(fā)明的方法的一個實施方式。分析裝置11'例如能夠是工程規(guī)劃系統(tǒng)11的處理器裝置的程序模塊。
功能模塊21不被單獨(dú)地提供,而是作為擴(kuò)展功能模塊22提供,擴(kuò)展功能模塊除了功能模塊21之外還包括輸入規(guī)范23和輸出規(guī)范24。擴(kuò)展功能模塊22例如能夠通過外部的開發(fā)人員或制造商25提供,開發(fā)人員或制造商向設(shè)備21的設(shè)備運(yùn)營者提供擴(kuò)展功能模塊22。在功能模塊21被應(yīng)用于或被提供于控制裝置13中之前,能夠通過工程規(guī)劃系統(tǒng)11的分析裝置11'基于輸入規(guī)范23和輸出規(guī)范24執(zhí)行對功能模塊21的檢驗,因為擴(kuò)展功能模塊22包含全部所需的信息。
附加地能夠提出:為擴(kuò)展功能模塊22提供證書26,證書能夠基于輸入規(guī)范23、輸出規(guī)范24和功能模塊21的程序文本形成。例如,能夠使用哈希函數(shù)來產(chǎn)生證書26。此外,證書26確認(rèn):對于輸入規(guī)范23而言,功能模塊21滿足輸出規(guī)范24。借助于證書26能夠以自動化的形式、即在沒有用戶協(xié)助的情況下在工程規(guī)劃系統(tǒng)11中通過重新計算數(shù)字證書來得出,功能模塊21的程序文本是否與如下程序文本相同,該程序文本由制造商25在輸入規(guī)范23的條件下使用以檢驗輸出文本24。
工程規(guī)劃系統(tǒng)11能夠包括模塊檢驗裝置27,模塊檢驗裝置能夠在兩方面檢驗擴(kuò)展功能模塊22。在假設(shè)僅存在符合輸入規(guī)范23的輸入信號的情況下,功能模塊21本身也能夠相關(guān)于輸出規(guī)范24進(jìn)行驗證。此外,能夠檢驗,設(shè)備1是否在輸入端口19處僅產(chǎn)生也引起符合輸入規(guī)范23的輸入值的這種輸入信號。
為此,在下文中參考圖2、圖3和圖4。圖3再次示出,功能模塊21如何在其輸入端口19處以輸入規(guī)范23進(jìn)行擴(kuò)展,并且功能模塊21在其輸出端口20處以輸出規(guī)范24進(jìn)行擴(kuò)展。
輸入和輸出規(guī)范能夠視作為假設(shè)和論斷,其中輸入規(guī)范根據(jù)驗證問題(可再用性/函數(shù)驗證或環(huán)境驗證)解釋為假設(shè)或論斷,輸出規(guī)范分級為論斷或者被避開。
圖3示出,如何將輸入規(guī)范23作為假設(shè)(assumption)處理并且如何將輸出規(guī)范24作為論斷(assertion)處理,以便驗證功能模塊21的高效能性。
圖4示出,輸入規(guī)范23如何作為論斷的基礎(chǔ),以便驗證設(shè)備行為,即為功能模塊21執(zhí)行環(huán)境驗證。
借助于形式(formale)檢驗技術(shù)(例如模型檢驗裝置27)能夠基于功能模塊21的函數(shù)代碼證實結(jié)果假設(shè)和結(jié)果論斷的有效性,當(dāng)檢驗失敗時,能夠提供反例,該反例說明與關(guān)聯(lián)的函數(shù)規(guī)范相沖突。
輸入規(guī)范23和輸出規(guī)范24能夠分別包括一階謂詞邏輯的無量詞的表達(dá)式(qf=quantifierfreefirstorderformulas),其能夠附到功能模塊21上。這能夠發(fā)生在功能模塊的每個任意位置處。這種qf表達(dá)式的實例對于速度參數(shù)是speed≥0。假設(shè)和論斷是兩個qf表達(dá)式,然而這兩個qf表達(dá)式的解釋不同:
論斷:當(dāng)在執(zhí)行plc程序期間可以得出參數(shù)、即程序變量的當(dāng)前值與qf表達(dá)式相沖突的論斷時,存在錯誤。例如,當(dāng)通過變量speed中的負(fù)值能夠得出論斷speed<0時,顯示錯誤報告。
假設(shè):在另一方面針對變量speed的非負(fù)值僅分析如下功能模塊,該功能模塊以假設(shè)speed≥0進(jìn)行擴(kuò)展。忽略speed顯示負(fù)值的可能性,因為其與假設(shè)相沖突。因此,輸入值speed的負(fù)值被濾除來代替報告為錯誤。
論斷和假設(shè)是雙重的:論斷形式化描述了必須滿足的條件,其前提是滿足全部假設(shè)。假設(shè)代表了對變量值的限制,即編程器如何解釋輸入值。
因此能夠?qū)U(kuò)展功能模塊通過如下方式限定為“三部分的”(specentry,f,specexit),即f是代碼(例如在每個自動的、符合iec61131-3的程序語言中)并且是函數(shù)(或功能模塊的)簽名,以及specentry是輸入規(guī)范并且specexit是輸出規(guī)范。specentry和specexit是這兩個相應(yīng)的qf表達(dá)式。
擴(kuò)展功能模塊22的實例在圖2中示出。其闡述了函數(shù)scale的主要的輸入和輸出規(guī)范23、24,該函數(shù)作為功能模塊21能夠是plc的標(biāo)準(zhǔn)庫的一部分?;旧?,輸入規(guī)范23闡述了,在如下假設(shè)下形成scale,即輸入值in對于單極輸入處于區(qū)間[0.27648]之內(nèi)和對于雙極輸入處于[-27648,27648]中,并且通過輸入lolim和hilim可靠地限定實值區(qū)間(例如lolim≤hilim)。在該假設(shè)下產(chǎn)生的scale保證輸出值out,該輸出值描述了根據(jù)極性和輸出區(qū)間[lolim,hilim]調(diào)節(jié)輸入in的尺寸的結(jié)果。
根據(jù)上述的限定,能夠為功能模塊21的檢驗提供解。解的基礎(chǔ)是擴(kuò)展功能模塊22的輸入規(guī)范和輸出規(guī)范的解釋。根據(jù)問題(可再用性或函數(shù)驗證或環(huán)境驗證),解必須被視作為假設(shè)和論斷并且被檢驗。
功能模塊隨鑒定和論斷積累,功能模塊21的形式檢驗的技術(shù)和方法不是基礎(chǔ)性的。技術(shù)和方法能夠由本領(lǐng)域技術(shù)人員例如根據(jù)效率觀點(diǎn)來選擇和應(yīng)用。提供所需技術(shù)的方法例如是模型檢驗(英文:modelchecking)。
可再用性針對可再次應(yīng)用的功能模塊21的開發(fā)。在開發(fā)期間,功能模塊21利用輸入規(guī)范23被擴(kuò)展,該輸入規(guī)范列舉假設(shè)和關(guān)于其未來應(yīng)用的前提。這示出如下實例:
-在靜止檢測的開發(fā)期間,能夠添加輸入規(guī)范speed≥0。
-在圖2的實例scale中,輸入規(guī)范根據(jù)極性將用于in參數(shù)的允許范圍形式化。
-在傳送帶7的實例中,使用輸入規(guī)范|之前速度(precedingspeed)-當(dāng)前速度|<δ,以便表達(dá)控制算法的限制,該控制算法在功能模塊21之內(nèi)執(zhí)行,以便表達(dá)速度波動不應(yīng)超過閾值δ。
輸入規(guī)范23成為擴(kuò)展功能模塊22的一部分并且在方法技術(shù)方面的系統(tǒng)中(例如工程規(guī)劃系統(tǒng)11或在制造商25中)應(yīng)用。輸入規(guī)范對于用戶用作為函數(shù)的計劃應(yīng)用的精確的文件記錄。
函數(shù)驗證針對于保證功能模塊21的正確行為,這種保證由制造商提供。由此,這能夠通過如下方式來實現(xiàn),即添加輸出規(guī)范24并且應(yīng)用形式方法(例如所提出的模型檢驗),以便自動地證實輸入規(guī)范24模除輸入規(guī)范23的正確性,即在給定的輸入條件下:
-對于所述功能模塊scale,輸出規(guī)范24闡述,out參數(shù)對應(yīng)于正確調(diào)節(jié)了尺寸的輸入in,其前提是遵守輸入規(guī)范23。
-對于靜止識別,在傳送帶處的功能模塊21的端部處的輸出規(guī)范speedmin≤speedset≤speedmax表達(dá)了,在執(zhí)行功能模塊21之后,所連接的驅(qū)動器15的速度具有在speedmin和speedmax之間的值,其中speedmin和speedmax對應(yīng)于驅(qū)動器的硬件規(guī)范。輸出值speedset表示輸出信號17的輸出值。
輸入和輸出規(guī)范23、24的使用實現(xiàn)了,自動地解決驗證的問題:當(dāng)開發(fā)工程師一次性地為功能模塊21以輸入和輸出規(guī)范23、24進(jìn)行擴(kuò)展時,例如能夠應(yīng)用通過模型檢驗器27進(jìn)行的模型檢驗方法,以便在假設(shè)滿足輸入規(guī)范23的情況下,證實輸出規(guī)范24的正確性。這如下進(jìn)行:
1.將全部輸入規(guī)范視作為假設(shè)。
2.將全部輸出規(guī)范視作為論斷。
3.功能模塊21的函數(shù)代碼連同假設(shè)和論斷一起輸送給模型檢驗器27。
如果模型檢驗器成功,那么借此數(shù)學(xué)地證明,只要功能模塊與輸入規(guī)范23相協(xié)調(diào)地使用,那么功能模塊21就借助于輸出規(guī)范24如所描述的那樣表現(xiàn)。如果因此工程規(guī)劃系統(tǒng)11具有模型檢驗器27,那么能夠自動地重復(fù)地證實輸出規(guī)范24的正確性。以該方式能夠由用戶自動地重復(fù)用于正確性的憑證,以便證明功能模塊21的函數(shù)代碼的正確性,該函數(shù)代碼例如已經(jīng)購得或者獲得。
圖3示出功能模塊scale,其中將輸入規(guī)范23解釋為假設(shè)并且將輸出規(guī)范24解釋為論斷。將如此形成的模塊模型28傳輸給模型檢驗器27,模型檢驗器通過執(zhí)行功能模塊21并且在此滿足全部輸入規(guī)范23(即論斷)的方式證實:滿足輸出規(guī)范24(即論斷)。
因此,能夠如下提供函數(shù)驗證:
-開發(fā)者能夠清晰地命名假設(shè),該開發(fā)者在代碼開發(fā)(輸入規(guī)范23)期間作出該假設(shè)。
-開發(fā)者能夠清晰地命名其所開發(fā)的代碼行為(輸出規(guī)范24)。
-制造商25中的模型檢驗器為開發(fā)者實現(xiàn),在函數(shù)代碼被交付給用戶之前,證實函數(shù)代碼的正確性。
-開發(fā)者能夠為絕對信賴輸出規(guī)范24的用戶交付擴(kuò)展功能模塊22。此外,用戶能應(yīng)用模型檢驗器27本身,以便經(jīng)由函數(shù)代碼證實開發(fā)者的生產(chǎn)規(guī)范(輸入和輸出規(guī)范23、24)。
-能夠自動地提供輸出規(guī)范24的成功檢驗的數(shù)字簽名的證書26,由此為用戶證實正確性。
環(huán)境檢驗或環(huán)境驗證考慮通過用戶在具體計劃之內(nèi)、即在預(yù)設(shè)的設(shè)備1之內(nèi)使用擴(kuò)展功能模塊22。如所描述的那樣,輸入和輸出規(guī)范23、24能夠為用戶證實所獲得或購得的函數(shù)代碼的正確性。在環(huán)境檢驗時還缺少的是,用戶如何能夠證實:用戶在其設(shè)備1中正確地應(yīng)用了所購得或獲得的功能模塊21,即在輸入端口19處根據(jù)輸入規(guī)范23由設(shè)備僅僅或唯一地產(chǎn)生輸入信號。
這能夠如下(例如借助于工程規(guī)劃系統(tǒng)27)自動地執(zhí)行。用戶不需要:
1.將功能模塊21的輸入規(guī)范23解釋為論斷。
2.能夠移除全部輸出規(guī)范。
3.將用戶的規(guī)劃(即設(shè)備配置或設(shè)備規(guī)格)連同擴(kuò)展功能模塊22一起作為設(shè)備模塊29轉(zhuǎn)交給模塊檢驗器27,以便檢驗:周圍代碼從不與輸入規(guī)范23沖突。因為這在模型檢驗器27中能夠完全自動化,所以用戶不需要在形式證明方面的背景知識。
每個被沖突的輸入規(guī)范23都對應(yīng)于所獲得的擴(kuò)展功能模塊22的未規(guī)劃的使用或應(yīng)用,并且報告為有錯的證明流程或者錯誤使用。在該情況下,模型檢驗器27能夠以信號告知有反例,該反例描述了導(dǎo)致與功能模塊的輸入規(guī)范23的沖突的流程。以該方式,環(huán)境驗證在此幫助用戶識別出擴(kuò)展功能模塊22的不正確應(yīng)用。這在如下實例中說明:
1.將用于靜止識別的功能模塊的輸入規(guī)范speed≥0轉(zhuǎn)換成論斷,并且移除輸出規(guī)范speedmin≤speedset≤speedmax。隨后,通過使用靜止識別的函數(shù),檢驗完整的用戶規(guī)劃。這與如下憑證一致,即靜止函數(shù)從設(shè)備僅接收非負(fù)的速度值speed。當(dāng)未正確應(yīng)用函數(shù)時,模型檢驗器27產(chǎn)生反例,該反例描述靜止識別代碼的非正確使用,例如調(diào)用參數(shù)speed中的負(fù)值。
2.在圖4中再次示出擴(kuò)展版本的函數(shù)scale:將輸入規(guī)范23變換成假設(shè),而移除輸出規(guī)范24。現(xiàn)在,對于使用函數(shù)scale的設(shè)備部件13能夠證明,正確地產(chǎn)生輸入?yún)?shù)。
輸入規(guī)范23和輸出規(guī)范24優(yōu)選表達(dá)為謂詞邏輯。對于變量使用無量詞的謂詞邏輯(fo式),從而能夠為功能模塊限定輸入和輸出規(guī)范,以便確定:
1)功能模塊行為,和
2)對于其余的(即周圍環(huán)境的)plc程序的必須被滿足的前提,以便功能模塊正確地工作。
使用fo式以規(guī)范其余的plc程序與功能模塊的接口使得能夠應(yīng)用模型檢驗的方法(例如所連接的模型檢驗或?qū)敕蠢牟蓸?,以自動地證明端口的有效性。
但是,加速所基于的證明過程的方法不是本申請的基礎(chǔ);該方法能夠由本領(lǐng)域技術(shù)人員根據(jù)需要從現(xiàn)有技術(shù)中可用的方法中選擇。代替于此,所描述的方法針對于:使用輸入和輸出規(guī)范的定義和模型檢驗,以便描述功能模塊的行為和端口。
用于形式化功能模塊的端口的輸入和輸出規(guī)范的應(yīng)用可能性尤其是:
1.在開發(fā)可再用的函數(shù)期間,使用輸入規(guī)范以便限制輸入,使得函數(shù)如所預(yù)期那樣工作(例如運(yùn)行的速度、電壓或溫度區(qū)間)。函數(shù)必須遵守的行為通過在函數(shù)末端處的輸出規(guī)范來規(guī)定,由此所應(yīng)用的輸入與預(yù)期的輸出相關(guān)聯(lián)。以該方式,輸出規(guī)范規(guī)定了在執(zhí)行函數(shù)時的效果并且將其行為形式化(formalisieren)。
輸入和輸出規(guī)范的尋找和命名如今相反通過如下方式完成,即寫入函數(shù)的文獻(xiàn)資料(即手冊)。相反,所描述的方法以機(jī)器可讀的方式提供輸入和輸出規(guī)范并進(jìn)而允許自動驗證。
2.開發(fā)者隨后能證實其自身的產(chǎn)品描述的有效性:對此,開發(fā)者運(yùn)行模型檢驗器,其證明或者反駁模型檢驗器關(guān)于功能模塊的行為所作出的論斷。該步驟完全是自動化的。當(dāng)可能質(zhì)疑一個論斷時,那么模型檢驗器報告相應(yīng)的反例。否則,證明是有效的,并且只要執(zhí)行具有環(huán)境代碼的允許的輸入值的假設(shè),函數(shù)就按照規(guī)范(例如表達(dá)為論斷)所保證的那樣表現(xiàn)。
3.為用戶提供擴(kuò)展函數(shù)22,因此在該實例中為設(shè)備1的用戶提供。
4.用戶能夠以兩種方式和方法使用所得到的函數(shù)的輸入和輸出規(guī)范:
a.以證明,用戶獲得的函數(shù)完全正確。這對于受保護(hù)的函數(shù)的專用技術(shù)是重要的,其中用戶不訪問當(dāng)前的源代碼。
b.以檢驗:在專用設(shè)備中正確地應(yīng)用函數(shù),例如傳輸給函數(shù)的全部參數(shù)值對應(yīng)于函數(shù)的輸入規(guī)范。
整體上,該實例示出:通過本發(fā)明如何能夠提供用于通過端口規(guī)范進(jìn)行擴(kuò)展和驗證尤其iec61131函數(shù)的方法和系統(tǒng)。
附圖標(biāo)記列表
1設(shè)備
2過程
3設(shè)備場
4設(shè)備部件
5設(shè)備部件
6傳送帶
7傳送帶
8工件
9運(yùn)輸方向
10通信裝置
11工程規(guī)劃系統(tǒng)
11'分析裝置
12可編程邏輯控制器
13可編程邏輯控制器
14驅(qū)動馬達(dá)
15驅(qū)動馬達(dá)
16狀態(tài)信號
17控制信號
18功能模塊
19輸入端口
20輸出端口
21功能模塊
22擴(kuò)展功能模塊
23輸入規(guī)范
24輸出規(guī)范
25制造商
26數(shù)字證書
27模型檢驗器
28模塊模型
29設(shè)備模型。