工業(yè)自動(dòng)化中實(shí)時(shí)嵌入解決方案的優(yōu)化操作的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及用于工業(yè)自動(dòng)化中的實(shí)時(shí)嵌入式解決方案、具體為控制應(yīng)用和系統(tǒng)的優(yōu)化操作的系統(tǒng)和方法,其中對于各設(shè)置和/或控制應(yīng)用,生成定時(shí)數(shù)據(jù)結(jié)構(gòu)以確定工業(yè)自動(dòng)化中的控制應(yīng)用的執(zhí)行時(shí)間,以便確保和提供相應(yīng)工業(yè)控制解決方案的優(yōu)化實(shí)時(shí)操作。
【背景技術(shù)】
[0002]當(dāng)設(shè)計(jì)新的自動(dòng)化系統(tǒng)或工廠時(shí),也必須開發(fā)控制應(yīng)用。許多應(yīng)用組件取自例如用于石油和天然氣或化學(xué)工業(yè)的域特定應(yīng)用資料庫。因此,這些組件從設(shè)計(jì)的開始是可用的,但是其他部分將必須從頭開始開發(fā)??刂茟?yīng)用和軟件將分別運(yùn)行于控制裝置(控制器),其位于工廠中,通常接近由控制應(yīng)用和/或基礎(chǔ)控制算法所監(jiān)控的過程。因此,所需控制器的數(shù)量和位置取決于工廠設(shè)計(jì)和被控制的過程。
[0003]控制器包括CPU、數(shù)據(jù)處理單元、計(jì)算模塊、通信模塊中的至少一個(gè),具體用于讀取傳感器數(shù)據(jù)或者與其他控制器、電源、接口和各種配件交換數(shù)據(jù)。例如在大多數(shù)情況下,計(jì)算模塊和/或處理單元在不同性能等級(其涉及它們能夠執(zhí)行的計(jì)算的數(shù)量和復(fù)雜度)是可用的,但是更強(qiáng)大的計(jì)算模塊在生產(chǎn)中引起或要求更高技術(shù)工作量(設(shè)計(jì)、冷卻、環(huán)境條件或要求)和更高故障率,并且最終在生產(chǎn)中以及也在使用中費(fèi)用更高。此外,看來期望具有可在更廣泛的控制裝置中使用的處理單元。
[0004]相應(yīng)控制應(yīng)用或軟件以及相關(guān)或基礎(chǔ)算法循環(huán)地運(yùn)行,其中I/O裝置讀取值,運(yùn)行控制應(yīng)用和所包含的控制算法,并且將所產(chǎn)生控制參數(shù)傳遞和/或回寫到裝置。這些操作按照預(yù)定間隔、例如在大約500 ms的范圍實(shí)時(shí)地激活,并且必須在這個(gè)時(shí)幀之內(nèi)完成。因此,控制器硬件必須按照如下方式來選擇:控制算法能夠在給定最終期限和/或時(shí)間間隔之內(nèi)運(yùn)行。但是,按照復(fù)雜度以及由于成本和/或工作量原因,非常期望使用最廉價(jià)和/或最簡單的計(jì)算模塊和/或處理單元,其能夠運(yùn)行相應(yīng)任務(wù)。
[0005]在自動(dòng)化工業(yè)中,控制裝置、具體是機(jī)器、發(fā)動(dòng)機(jī)和驅(qū)動(dòng)器或者過程工業(yè)中的過程的行為的控制系統(tǒng)可需要在特定時(shí)間量之內(nèi)、具體來說實(shí)時(shí)地響應(yīng)輸入、具體是信號(hào)輸入,以確保所述裝置和/或過程的正確操作。
[0006]如果構(gòu)成響應(yīng)時(shí)間以及相應(yīng)的執(zhí)行時(shí)間的一個(gè)組件存在,則可能必要和/或可取的是確定軟件或應(yīng)用最壞情況執(zhí)行時(shí)間,使得相應(yīng)控制系統(tǒng)的設(shè)計(jì)人員/操作人員能夠使用這個(gè)信息、具體按照其硬件和/或軟件以及至少其操作來優(yōu)化系統(tǒng),以確保系統(tǒng)足夠快地并且具體來說實(shí)時(shí)地進(jìn)行響應(yīng)。
[0007]在本申請的上下文中的實(shí)時(shí)系統(tǒng)或應(yīng)用可被理解為一種系統(tǒng)或應(yīng)用,其保證在可預(yù)定的嚴(yán)格時(shí)間限制或時(shí)間極限或時(shí)幀(又稱作“最終期限”)之內(nèi)進(jìn)行響應(yīng)。具體來說,實(shí)時(shí)響應(yīng)常常在數(shù)毫秒或數(shù)微秒的范圍中。
[0008]計(jì)算一塊或一段代碼運(yùn)行將花費(fèi)的時(shí)間始終是一個(gè)難題。在大多數(shù)情況下,它是不可能的,因?yàn)樗婕安豢膳卸ǖ耐C(jī)問題。
[0009]在實(shí)時(shí)系統(tǒng)、特別是自動(dòng)化工業(yè)的實(shí)時(shí)控制系統(tǒng)中,計(jì)算一段代碼在特定硬件平臺(tái)、具體是特定執(zhí)行單元、例如CPU、具體是微處理器或另一處理裝置上運(yùn)行可能花費(fèi)的最長時(shí)間(最壞情況執(zhí)行時(shí)間WCET)實(shí)際上是重要的并且是確保和提供所述系統(tǒng)的可靠性和/或正確功能行為或操作的必要性。
[0010]為了獲得WCET的估計(jì)而不管其一般不可判定性,必須使用或應(yīng)用近似技術(shù),其中存在近似計(jì)算特定硬件平臺(tái)上的軟件組件或應(yīng)用組件的WCET的兩種已知的主要方式。
[0011]第一方式涉及一段代碼的測試或原位測描(in-situat1n profiling),并且使用多樣執(zhí)行的執(zhí)行時(shí)間通過試探來計(jì)算WCET,以及第二方式涉及應(yīng)用代碼的靜態(tài)分析,并且使用表示所應(yīng)用硬件的模型或數(shù)據(jù)結(jié)構(gòu)來確定或計(jì)算WCET。
[0012]第一變體要求在測量期間能夠?qū)崿F(xiàn)充分代碼覆蓋,并且已經(jīng)觀測每一個(gè)程序或應(yīng)用語句的最壞情況執(zhí)行時(shí)間。實(shí)際上,無法始終滿足這些要求,并且因此WCET可能欠近似(under-approximated)。對于具有嚴(yán)厲實(shí)時(shí)要求的系統(tǒng)、例如特別是自動(dòng)化工業(yè)或過程工業(yè)中的控制系統(tǒng),這是不健全并且可能不安全的。
[0013]靜態(tài)WCET分析要求人工開發(fā)目標(biāo)處理器的硬件模型,其基于形式方法來估計(jì)執(zhí)行時(shí)間。這是冗長并且費(fèi)用高的過程。模型下面的抽象按照保守方式近似計(jì)算執(zhí)行時(shí)間,由此導(dǎo)致對實(shí)際WCET的過度近似。由于保證所產(chǎn)生WCET估計(jì)是程序或應(yīng)用的每一個(gè)可能執(zhí)行時(shí)間的上限,所以該方式能夠安全地應(yīng)用于具有嚴(yán)厲實(shí)時(shí)要求的系統(tǒng)中。
[0014]在自動(dòng)化技術(shù)或者自動(dòng)化工業(yè)中,存在從充分控制的硬件到具有許多可能執(zhí)行單元(例如CPU(中央處理器)、GPU(全局處理單元)、FPGA(現(xiàn)場可編程門陣列)、DSP(數(shù)字信號(hào)處理器))的商品硬件的緩慢迀移和發(fā)展。
[0015]在這類系統(tǒng)中,硬件組件和/或配置的多樣性使得人工開發(fā)每一個(gè)可能目標(biāo)平臺(tái)或目標(biāo)平臺(tái)配置的新靜態(tài)定時(shí)模型是不切實(shí)際并且?guī)缀跏遣豢赡艿摹?br>[0016]此外,安全關(guān)鍵系統(tǒng)的軟件或應(yīng)用通常變得很大,其中包括龐大數(shù)量的代碼行、具體是數(shù)百萬行代碼,并且相應(yīng)地對于窮舉測試是過大的。因此,僅使用測試或測描是危險(xiǎn)的,因?yàn)椴豢赡苡^測程序的每一個(gè)可能執(zhí)行以確定WCET、從而提供和確保所述系統(tǒng)的可靠操作。
[0017]當(dāng)下沒有以充分質(zhì)量以及最小化技術(shù)和/或計(jì)算復(fù)雜度和工作量來有效地解決這些問題的技術(shù)解決方案是可用的。
【發(fā)明內(nèi)容】
[0018]因此,本發(fā)明的目的是提供一種具體用于實(shí)時(shí)過程的有效和精確執(zhí)行時(shí)間確定、以確保和提供自動(dòng)化工業(yè)中的控制系統(tǒng)的優(yōu)化操作的解決方案。
[0019]此目的通過如技術(shù)方案I所述的用于工業(yè)自動(dòng)化中的實(shí)時(shí)嵌入式解決方案、具體是控制解決方案的優(yōu)化操作的方法來解決,其自動(dòng)創(chuàng)建所使用控制硬件的電子再現(xiàn),并且將測試和靜態(tài)分析的組合應(yīng)用于所述再現(xiàn),以便盡可能準(zhǔn)確地確定作為所述硬件的優(yōu)化配置和操作、具體來說是用于相應(yīng)代碼段和控制系統(tǒng)的執(zhí)行的適當(dāng)處理單元的確定和/或選擇的基礎(chǔ)的WCET。
[0020]在本申請的上下文中的控制解決方案可在軟件或程序上以及在硬件側(cè)或者它們的組合。
[0021]在其他技術(shù)方案和以下描述中提供按照本發(fā)明的方法以及用于工業(yè)自動(dòng)化和/或自動(dòng)化工業(yè)中的實(shí)時(shí)嵌入式解決方案的優(yōu)化操作的系統(tǒng)(其中包括定時(shí)數(shù)據(jù)結(jié)構(gòu)生成單元和至少一個(gè)接口)的其他細(xì)化和開發(fā)。
[0022]按照本發(fā)明的所公開方法生成定時(shí)數(shù)據(jù)結(jié)構(gòu),并且包括下列步驟:使用域特定性質(zhì)并且基于復(fù)現(xiàn)代碼序列(recurring code sequences)來表征和/或確定控制應(yīng)用的執(zhí)行時(shí)間,其中,為了生成定時(shí)數(shù)據(jù)結(jié)構(gòu),復(fù)現(xiàn)代碼序列從訓(xùn)練應(yīng)用集合中自動(dòng)提取和/或在相應(yīng)應(yīng)用中識(shí)別;以及自動(dòng)生成測試數(shù)據(jù)以確定其準(zhǔn)確執(zhí)行時(shí)間供定時(shí)數(shù)據(jù)結(jié)構(gòu)的細(xì)化并且將相應(yīng)控制應(yīng)用的結(jié)構(gòu)分解為代碼序列,所創(chuàng)建數(shù)據(jù)定時(shí)結(jié)構(gòu)和定時(shí)模型分別對其提供執(zhí)行時(shí)間估計(jì),其然后可具體通過由底向上方式的累積來訪問和處理,并且控制應(yīng)用的最好情況執(zhí)行時(shí)間和/或最壞情況執(zhí)行時(shí)間的至少一個(gè)估計(jì)被確定和/或報(bào)告,并且用來優(yōu)化相應(yīng)工業(yè)控制解決方案的實(shí)時(shí)操作。
[0023]這確保高效率以及高質(zhì)量。
[0024]在所提出方法的另一個(gè)實(shí)施例中,在第一過程階段
-通過僅考慮單指令來構(gòu)造和/或確定控制器CPU或數(shù)據(jù)處理單元的初始定時(shí)模型,
以及
-針對指令的流水線執(zhí)行的最好情況和優(yōu)化最壞情況假設(shè)、但是高速緩存的內(nèi)容的最好情況假設(shè)被確定和/或存儲(chǔ)在數(shù)據(jù)庫中。
[0025]這對復(fù)雜處理器看來是錯(cuò)綜復(fù)雜的,因?yàn)楸仨毚_定目標(biāo)控制器的CPU的每一個(gè)指令類型的執(zhí)行時(shí)間。
[0026]在這點(diǎn)上,必須指明,按照本發(fā)明的過程階段可包括若干過程步驟。
[0027]此外,僅與單指令相關(guān)的這個(gè)信息能夠從CPU數(shù)據(jù)表來提取或者通過使用綜合基準(zhǔn)來測量單指令類型的執(zhí)行時(shí)間。
[0028]此外,這個(gè)過程階段必須對控制器的每一個(gè)新CPU重復(fù)進(jìn)行。所產(chǎn)生指令級估計(jì)則可用來自動(dòng)確定等級控制應(yīng)用的作為粗粒度間隔的性能估計(jì),只要能夠計(jì)算單獨(dú)機(jī)器指令的出現(xiàn)。
[0029]CPU的定時(shí)模型使用控制訓(xùn)練應(yīng)用集合來細(xì)化,以訓(xùn)練模型或數(shù)據(jù)結(jié)構(gòu)。
[0030]在另一個(gè)實(shí)施例中,初始定時(shí)模型或初始數(shù)據(jù)結(jié)構(gòu)的細(xì)化通過識(shí)別復(fù)現(xiàn)代碼序列在單獨(dú)簡圖或代碼塊的等級進(jìn)行,其中代碼序列可表示指令序列或者IEC 61131-3構(gòu)造的序列。
[0031]在另一實(shí)施例中,對于這些復(fù)現(xiàn)序列,通過執(zhí)行相應(yīng)程序部分的詳細(xì)分析和/或測量來得到和/或確定更準(zhǔn)確估計(jì),其中具體實(shí)現(xiàn)可基于指令追蹤或機(jī)器學(xué)習(xí)的統(tǒng)計(jì)分析。
[0032]在任何情況下,實(shí)現(xiàn)可以能夠跟蹤代碼序列的執(zhí)行時(shí)間間隔,表示最好情況或