(57)【要約】  制御装置（１）の動作方法が記載および説明され、制御装置（１）には、内部制御装置関数（ａ（））を含むプログラムコード（４）が格納されており、プログラムコード（４）には、少なくとも１つのサービス関数（ｅｃｕ＿ｓ（））が挿入されている。外部バイパスによって、制御装置（１）において、サービス関数（ｅｃｕ＿ｓ（））に関するサービスコンフィギュレーション（６）が準備されることにより内部制御装置関数（ａ（））を所期のように呼び出すことができ、サービスコンフィギュレーション（６）が制御装置（１）において検出され、サービス関数（ｅｃｕ＿ｓ（））の呼び出し時に、サービスコンフィギュレーション（６）に相当するサービス機能が実行され、サービスコンフィギュレーション（６）は、対応するサービス関数（ｅｃｕ＿ｓ（））のサービス機能として実行される少なくとも１つの内部制御装置関数（ａ（））を示す。サービス関数（ｅｃｕ＿ｓ（））は、サービスコンフィギュレーション（６）を用いて、制御装置（１）における内部制御装置関数（ａ（））の少なくとも１つの引数に関する少なくとも１つの値（ｘ’）を提供する、かつ／または内部制御装置関数（ａ（））の少なくとも１つの戻り値を受け取るように設計されている。
2018537779.tif 000002
【特許請求の範囲】
【請求項１】
制御装置（１）の動作方法であって、
前記制御装置（１）には、内部制御装置関数（ａ（））を含むプログラムコード（４）が格納されており、前記プログラムコード（４）には、少なくとも１つのサービス関数（ｅｃｕ＿ｓ（））が挿入されており、前記制御装置（１）には、前記サービス関数（ｅｃｕ＿ｓ（））に関するサービスコンフィギュレーション（６）が提供され、前記サービスコンフィギュレーション（６）が前記制御装置（１）において検出され、前記サービス関数（ｅｃｕ＿ｓ（））の呼び出し時に、前記サービスコンフィギュレーション（６）に相当するサービス機能が実行される、制御装置（１）の動作方法において、
前記サービスコンフィギュレーション（６）は、対応する前記サービス関数（ｅｃｕ＿ｓ（））のサービス機能として実行される少なくとも１つの内部制御装置関数（ａ（））を示し、前記サービス関数（ｅｃｕ＿ｓ（））は、前記サービスコンフィギュレーション（６）を用いて、前記制御装置（１）において前記内部制御装置関数（ａ（））の少なくとも１つの引数に関する少なくとも１つの値（ｘ’）を提供する、かつ／または前記内部制御装置関数（ａ（））の少なくとも１つの戻り値を受け取る、ことを特徴とする、
制御装置（１）の動作方法。
【請求項２】
前記サービスコンフィギュレーション（６）には、前記制御装置（１）における前記内部制御装置関数（ａ（））の少なくとも１つの引数に関する少なくとも１つの値（ｘ’）を提供する、かつ／または前記内部制御装置関数（ａ（））の少なくとも１つの戻り値を受け取る、実行可能なコードが含まれている、ことを特徴とする、
請求項１記載の方法。
【請求項３】
前記サービス関数（ｅｃｕ＿ｓ（））は、引数および／または戻り値の所定のパターンで関数を呼び出すように設計されており、前記サービスコンフィギュレーション（６）は、前記所定のパターンを示すことによって、かつ前記内部制御装置関数（ａ（））の開始アドレスを示すことによって、前記内部制御装置関数（ａ（））を表す、ことを特徴とする、
請求項１または２記載の方法。
【請求項４】
前記制御装置（１）は、インタフェース（８）を介して、影響付与装置（９）に接続されており、前記影響付与装置（９）から前記インタフェース（８）を介して前記サービスコンフィギュレーション（６）が前記制御装置（１）に伝送されて、前記制御装置（１）に記憶される、ことを特徴とする、
請求項１から３までのいずれか１項記載の方法。
【請求項５】
前記サービスコンフィギュレーション（６）には、前記制御装置（１）において前記内部制御装置関数（ａ（））の少なくとも１つの引数に関する少なくとも１つの値（ｘ’）が格納される、かつ／または前記制御装置（１）において前記内部制御装置関数（ａ（））の少なくとも１つの戻り値（ｒ）が格納される、少なくとも１つのメモリロケーション（１０、１１）が示される、ことを特徴とする、
請求項１から４までのいずれか１項記載の方法。
【請求項６】
前記メモリロケーション（１０）が前記内部制御装置関数（ａ（））の引数（ｘ’）について監視され、前記メモリロケーション（１０）に前記引数（ｘ’）に関する最新の値が書き込まれたときに初めて、前記内部制御装置関数（ａ（））が前記メモリロケーション（１０）に格納された前記引数（ｘ’）に関する値で呼び出される、ことを特徴とする、
請求項５記載の方法。
【請求項７】
前記制御装置（１）は、インタフェース（８）を介して影響付与装置（９）に接続されており、かつ前記制御装置（１）は、前記インタフェース（８）を介して前記内部制御装置関数（ａ（））の前記戻り値（ｒ）を前記影響付与装置（９）に伝送する、かつ／または前記影響付与装置（９）は、前記内部制御装置関数（ａ（））の前記戻り値（ｒ）を前記インタフェース（８）を介して前記制御装置（１）から読み出す、ことを特徴とする、
請求項１から６までのいずれか１項記載の方法。
【請求項８】
前記制御装置（１）は、インタフェース（８）を介して影響付与装置（９）に接続されており、前記影響付与装置（９）には、少なくとも１つの影響付与装置関数（ｆ’（））を含むプログラムコードが格納されており、前記サービスコンフィギュレーション（６）は、前記影響付与装置関数（ｆ’（））の呼び出し（１２）を含んでおり、かつ相応の前記サービス関数（ｅｃｕ＿ｓ（））の呼び出し（１２）時に、前記制御装置（１）は、前記インタフェース（８）を介して前記影響付与装置（９）に前記影響付与装置関数（ｆ’（））の前記呼び出し（１２）をシグナリングし、前記影響付与装置（９）は、前記影響付与装置関数（ｆ’（））を実行する、ことを特徴とする、
請求項１から７までのいずれか１項記載の方法。
【請求項９】
前記サービスコンフィギュレーション（６）には、前記制御装置（１）において前記影響付与装置関数（ｆ’（））の引数（ｒ）に関する値が格納され、かつ／また前記制御装置（１）において前記影響付与装置関数（ｆ’（））の戻り値（ｙ’）が格納されるメモリロケーション（１１）が示される、ことを特徴とする、
請求項８記載の方法。
【請求項１０】
前記メモリロケーション（１１）が前記影響付与装置関数（ｆ’（））の前記引数（ｒ）に関して、前記影響付与装置（９）から前記インタフェース（８）を介して監視され、前記メモリロケーション（１１）に前記引数（ｒ）に関する最新の値が書き込まれたときに初めて、前記影響付与装置関数（ｆ’（））が前記メモリロケーション（１１）に格納された前記引数（ｒ）に関する値で呼び出される、ことを特徴とする、
請求項９記載の方法。
【請求項１１】
外部バイパスのために構成されている制御装置（１）であって、
前記制御装置（１）は、Ｉ／Ｏインタフェース（２）を介して技術プロセス（３）に接続されており、前記制御装置（１）には、内部制御装置関数（ａ（））を含むプログラムコード（４）が格納されており、前記プログラムコード（４）には、少なくとも１つのサービス関数（ｅｃｕ＿ｓ（））が挿入されており、前記プログラムコード（４）の実行時に、前記制御装置（１）は、前記Ｉ／Ｏインタフェース（２）を介して制御信号を前記技術プロセス（３）に出力し、かつ前記Ｉ／Ｏインタフェース（２）を介して前記技術プロセス（３）の状態量を信号として受信し、前記制御装置（１）には、前記サービス関数（ｅｃｕ＿ｓ）に関するサービスコンフィギュレーション（６）が提供されており、前記サービスコンフィギュレーション（６）が、前記制御装置（１）において、前記制御装置（１）の動作時に検出され、前記サービス関数（ｅｃｕ＿ｓ（））の呼び出し時に、前記サービスコンフィギュレーション（６）に相当するサービス機能が実行される、制御装置（１）において、
前記サービスコンフィギュレーション（６）は、対応する前記サービス関数（ｅｃｕ＿ｓ（））のサービス機能として実行される少なくとも１つの内部制御装置関数（ａ（））を示し、前記制御装置（１）において前記サービスコンフィギュレーション（６）が提供されることによって、接続されている前記技術プロセス（３）にフレキシブルに作用が及ぼされ、前記サービス関数（ｅｃｕ＿ｓ（））は、前記サービスコンフィギュレーション（６）を用いて、前記制御装置（１）において前記内部制御装置関数（ａ（））の少なくとも１つの引数に関する少なくとも１つの値（ｘ’）を提供する、かつ／または前記内部制御装置関数（ａ（））の少なくとも１つの戻り値を受け取る、ことを特徴とする、
制御装置（１）。
【請求項１２】
動作状態において、すなわち前記プログラムコード（４）の実行時に、請求項２から１０までのいずれか１項記載の方法を実行するようにプログラミングされている、ことを特徴とする、
請求項１１記載の制御装置（１）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置の動作方法に関し、制御装置には、内部制御装置関数を含むプログラムコードが格納されており、プログラムコードには、少なくとも１つのサービス関数が挿入されている、つまりサービス関数のインストルメンテーションが行われている。さらに本発明は、外部バイパスのために設計されている制御装置にも関する。
【０００２】
前述の方法は、総じて、制御装置の開発における制御装置の処理および影響付与、つまり固定的に実現されている内部制御装置関数を有している（一連の）制御装置が使用される、いわゆるラピッドコントロールプロトタイピング（ＲＣＰ：Ｒａｐｉｄ−Ｃｏｎｔｒｏｌ−Ｐｒｏｔｏｔｙｐｉｎｇ）の枠内での制御装置開発に関する。内部制御装置関数は、制御装置に記憶されているプログラムコードの構成部分であり、通常の場合は、実行可能なコンパイルされたプログラムである。プログラムコードが高水準言語の形態で存在し、翻訳されることも考えられるが、しかしながらこのことは、制御装置のリアルタイム動作に起因して、通常存在する速度要求とは矛盾する。
【０００３】
本明細書において考察する制御装置開発の枠内では、この内部制御装置関数のうちの１つまたは複数が完全に迂回、拡張、または極めて一般的には所定のやり方で操作される。つまりこれは、方法論的にはいわゆる「バイパス」である。ラピッドコントロールプロトタイピングの枠内での制御装置開発のこの手法は、制御装置がＩ／Ｏインタフェースを備えた高性能の開発ハードウェアに完全に置換される「フルパス」の手法とは異なる。この開発ハードウェアは、後の時点においては、影響を及ぼすべき技術プロセスとの関係では使用されずに、開発作業の終了後に、正確に適合された、また通常の場合は遙かに廉価な制御装置に置換される。
【０００４】
ここで考察する適用事例の本質は、制御装置がＩ／Ｏインタフェースを介して技術プロセスに接続されており、制御装置に格納されている、すなわち制御装置に記憶されているプログラムコードの実行時に、制御装置は、Ｉ／Ｏインタフェースを介して制御信号を技術プロセスに出力し、またＩ／Ｏインタフェースを介して技術プロセスの状態量を信号として受信する、ということである。バイパスによるラピッドコントロールプロトタイピングでは、制御装置は、影響を及ぼすべき、また観察すべき技術プロセスにおいて使用されたままであって、バイパスによって機能的に影響が及ぼされる。典型的には、このために制御装置が、別のインタフェースを介して影響付与装置に接続されている。通常の場合、この別のインタフェースは、制御装置を技術プロセスに接続している、制御装置のＩ／Ｏインタフェースとは異なる。この影響付与インタフェースを介して、影響付与装置が制御装置のメモリセルを所期のように読み出すことによって、および影響付与装置において計算された値を制御装置のメモリに書き込むことによって、制御装置関数を迂回（バイパス）すること、新たな関数を影響付与装置において計算すること、またそのようにバイパスオペレーションによって制御装置に所期のように影響を及ぼすことが実現される。
【０００５】
パラメータないしパラメータセット、すなわち内部制御装置関数を使用する特性数、特性曲線または特性マップが変更される、制御装置のメモリへの書き込みアクセスは、制御装置較正と称されることが多い。制御装置の内部関数のパラメータ、すなわち制御装置のメモリに格納されているデータだけでなく、制御装置において実現されている内部関数自体もテストを目的として変更される場合には、関数バイパスが使用され、この関数バイパスにおいては制御装置が、接続されているリアルタイム能力のある影響付与装置に、内部制御装置関数の呼び出しをシグナリングするが、しかしながら制御装置自体は関数を実行せずに、影響付与装置において代わりに計算された関数の結果だけを受け取って再び使用し、このようにして、制御装置関数のバイパスが行われる。
【０００６】
上記において説明した２つのシナリオ、つまり制御装置較正および関数バイパスでは、既に言及したバイパスインタフェースの形態で制御装置との別個のアクセスを形成することが必要であり、そのアクセスによって、制御装置の観察および能動的な影響付与が実現される。従来技術においては、例えば、制御装置のハードウェアに介入するためにパラレルインタフェースを使用し、そのパラレルインタフェースを介して、影響付与装置がメモリエミュレータのように動作することが公知である。影響付与装置は、アダプタを介して収容され、このアダプタは、制御装置のメモリモジュールの代わりになるか、または別個に専用に設けられている差し込み箇所から、制御装置のプリント基板に接続され、またそのようにして制御装置マイクロコントローラのアドレスバスおよびデータバスにアクセスすることができる。影響付与装置自体は、その場合、主要素子として、複式にアクセス可能なメモリ（ＤＰＭＥＭ：Ｄｕａｌ−Ｐｏｒｔ−Ｍｅｍｏｒｙ）を含んでいる。影響付与装置から複式にアクセス可能なメモリを読み出すことができ、かつ複式にアクセス可能なメモリに書き込みすることができ、この場合、影響付与装置の複式にアクセス可能なメモリは、制御装置マイクロコントローラのデータバスおよびアドレスバスに接続されることによって、マイクロコントローラのアドレス空間に存在しているので、複式にアクセス可能なメモリに格納されているデータを自動的に制御装置マイクロコントローラから読み出すことができる。
【０００７】
別の解決手段においては、制御装置と影響付与装置との間のデータ交換が、制御装置のいわゆるデバッグインタフェースを介して実現され、それらのデバッグインタフェースは、現代のマイクロコントローラにおいては、チップに既に集積されている（例えば、Ｎｅｘｕｓ，ＪＴＡＧ）。
【０００８】
制御装置へのハードウェアによるアクセスから独立して、制御装置は、ソフトウェアによって、場合によっては使用されるバイパスの準備をしなければならず、このことは、制御装置のプログラムコードに、バイパスのための専用のものとみなされるサービス関数が設けられることによって行われる。つまり、プログラムコードには、それらのサービス関数が挿入されている。それらのサービス関数は、関心の対象となる制御装置関数の最初と最後に位置していることが多く、それらは固定的にコーディングすることができるか、またはある程度のフレキシビリティを有することができるので、それによってサービス関数を開始および終了させることができる。サービス関数は、例えば、内部制御装置関数の引数をＤＰＭＥＭにコピーし、それによって、接続されている影響付与装置は、ＤＰＭＥＭからそれらの引数を使用できるようになり、また影響付与装置は、それらの値を読み出して、影響付与装置において実現される機能に供給する。影響付与装置における計算の結果は、続いて、再びＤＰＭＥＭに書き込まれ、制御装置における別の内部計算のために、迂回した内部制御装置関数に関する結果として使用される。
【０００９】
独国特許出願公開第１０２２８６１０号明細書（ＤＥ１０２２８６１０Ａ１）には、電子計算ユニットにおいて実行される制御プログラムを検査するための方法が開示されており、この方法においては、少なくとも１つのバイパス関数が、動的なリンクによって、所定のインタフェースに接続される。電子計算ユニットのメモリにロードされたバイパスルーチンは、静的に存在するデータへの読み出しアクセスを含んでいる。
【００１０】
欧州特許出願公開第２８８１８５８号明細書（ＥＰ２８８１８５８Ａ１）からは、制御装置の主記憶装置にバイパスルーチンが記憶され、メモリアドレスがテーブルに格納される、電子制御装置のメモリにおいてソフトウェアを変更するための方法が公知である。サービス関数は、テーブルからアドレスを読み出し、またバイパスルーチンを呼び出す。テーブルエントリを消去することによって、バイパスルーチンを制御装置の実行時に置換することができる。プログラムルーチンによって処理された変数に関する情報は、技術的な記述ファイルに由来し、それらのファイルは特に、変数のメモリアドレスを含んでいる。
【００１１】
バイパスの枠内において、従来技術では、書き込みメカニズムによって、所期のように、制御装置内部の関数にアクセスすることは不可能である。このことは、命令に従い、制御装置のプログラムコードにおいて、それらの内部関数が周期的に呼び出され、関数の引数ないし戻り値がグローバル変数を用いて運ばれることによって解決される。しかしながらこのことは、制御装置のプログラムコードにおいて、各関数に関して、またこの内部制御関数の考えられるすべての所望の呼び出し位置に関して、制御装置プログラムコードの特別な適合を必要とし、このことは、プログラムコードの範囲に関して、また制御装置におけるプログラムコードの実行時特性の影響に関しても、著しい欠点を伴うことになる。
【００１２】
本発明の課題は、フレキシブルなやり方で、内部制御装置関数も外部バイパスにおいてフレキシブルに呼び出すことができる、制御装置の動作方法を提供することである。
【００１３】
上記より導き出されて提示された課題は、本発明によれば、冒頭で述べたような制御装置の動作方法において、制御装置には、サービス関数に関するサービスコンフィギュレーションが提供され、サービスコンフィギュレーションが制御装置において検出され、サービス関数の呼び出し時に、サービスコンフィギュレーションに相当するサービス機能が実行されることによって解決され、このサービスコンフィギュレーションは、対応するサービス関数のサービス機能として実行される少なくとも１つの内部制御装置関数を示す。サービス関数は、サービスコンフィギュレーションを用いて、制御装置において内部制御装置関数の少なくとも１つの引数に関する少なくとも１つの値を提供する、かつ／または内部制御装置関数の少なくとも１つの戻り値を受け取るように設計されている。
【００１４】
それらの方法ステップによって、非常に簡単な洗練されたやり方で、あらゆる任意のサービス関数によって任意の内部制御装置関数を呼び出すことが実現される。どのサービス関数がどの内部制御装置関数を呼び出すか、または複数のどの制御装置関数を呼び出すかという割り当ては、サービスコンフィギュレーションに含まれている。サービス関数および／またはサービスコンフィギュレーションは、好適には、実行時に引数および／または戻り値の引き渡しを実現する実行可能なコードを含んでいる。
【００１５】
ここで、内部制御装置関数とは、呼び出されると１つまたは複数の引数の引き渡しを要求する、かつ／または１つまたは複数の戻り値を出力する、本来のプログラムコードのルーチンであると解される。例えば、１つまたは複数の引数を受け取り、引き渡された値に基づいて、プログラムコードの１つまたは複数のパラメータを修正するセット関数が考えられ、この際、各パラメータのアドレスが既知である必要はない。別の例はゲット関数であり、このゲット関数では、呼び出し時に１つまたは複数の戻り値を供給し、例えば特に瞬時センサ信号を供給する。原理的上は、内部制御装置関数は、少なくとも１つの引数を要求することもできるし、少なくとも１つの戻り値を供給することもできる。この場合、サービス関数は好適には、内部制御装置関数の呼び出しの前に、引数を供給し、呼び出し後に戻り値を受け取るように設計されている。オプションとして、１つまたは複数の戻り値を主記憶装置における所定のアドレスに格納するようにサービス関数を設計することができ、その結果、特に、接続されている影響付与装置は、それ自体は既知のメカニズムによって、この値にアクセスすることができる。
【００１６】
引数および／または戻り値は、好適には、スタックまたはヒープを介して引き渡され、その結果、各変数のメモリアドレスは動的に変化する。この場合、値の引き渡しは、相対的なメモリアドレスを介することでのみ行うことができ、それらのメモリアドレスはグローバルで一義的なものではない。何故ならば、開始アドレスも、スタックの目下の占有状態も予め既知ではなく、したがってアドレスはスタックポインタに対して相対的にしか表すことができないからである。マイクロプロセッサに、値引き渡しのための実行可能なコードを供給するようにサービス関数が設計されていることによって、実行時には、正確なメモリアドレスを求めることができ、また相応のメモリには、必要な値を書き込むことができる。
【００１７】
代替的または補完的に、引数および／または戻り値を、制御装置のマイクロプロセッサのローカルレジスタを用いて置換することもできる。サービス関数がマイクロプロセッサに実行可能なコードを供給することによって、このコード自体が、１つまたは複数の必要な引数を相応のローカルレジスタに書き込むか、または内部制御装置関数の実行後に、１つまたは複数の戻り値を相応のローカルレジスタから主記憶装置に書き込むことができる。
【００１８】
内部制御装置関数に引数を供給する１つの好適なヴァリエーションによれば、サービスコンフィギュレーションには、制御装置において内部制御装置関数の少なくとも１つの引数に関する少なくとも１つの値を提供する実行可能なコードが含まれている。この構成は、内部制御装置関数の呼び出しを準備するために、実行可能なコードだけを呼び出せばよいという利点を有している。この実行可能なコードは、例えば、制御装置ＣＰＵのためのクロスコンパイラを用いて、制御装置のプログラムコードの構造に関する情報に基づいて、形成することができたものである（例えばヘッダファイル）。特に、制御装置のプログラムコード自体の作成の際にも用いられたクロスコンパイラを使用することができる。同一の原理に従って、別の構成においては、代替的または補完的に、内部制御装置関数の少なくとも１つの戻り値を受け取る実行可能なコードがサービスコンフィギュレーションに含まれている。この場合、この戻り値を、例えば接続されている影響付与装置に提供することも考えられる。
【００１９】
制御装置の動作方法の１つの好適な構成においては、引数および／または戻り値の所定のパターンで関数を呼び出すようにサービス関数が設計されていることが前提とされる。そのようなパターンは、実際には、通常は関数宣言に含まれている記述を意味している。「ｄｏｕｂｌｅ  ｆ（ｃｈａｒ，  ｉｎｔ，  ｉｎｔ）」という記述は、例えば３つの引数が供給されるべきｄｏｕｂｌｅ型の戻り値を有している関数ｆを表しており、ここでは、第１の引数が文字列（ｃｈｒａｃｔｅｒ）であり、第２の引数および第３の引数がそれぞれ整数（Ｉｎｔｅｇｅｒ）値である。つまり、サービス関数は引数および／または戻り値の所定のパターンでの関数の呼び出しのために準備されているように、サービス関数が設計されている。サービスコンフィギュレーションは、所定のパターンを示すことによって、また内部制御装置関数の開始アドレスを示すことによって、１つの内部制御装置関数（または必要に応じて、複数の制御装置関数）を表している。それらが示されることによって、１つまたは複数のどの内部制御装置関数がサービス関数の呼び出し時に呼び出されるかが一義的に規定されている。
【００２０】
制御装置のサービス関数を、例えば周期的に固定の時間パターンで実行することができ、その場合、それらのサービス関数は、通常の場合に制御装置において使用されるリアルタイムオペレーションシステムではタイマタスクとして設けられているか、またはそのようなタイマタスクの枠内で、別の関数と共に呼び出される。また、サービス関数が非周期的に実行されることも考えられる。つまり、サービス関数は、外部イベントドリブン型であってよく、例えばイベントとして、Ｉ／Ｏインタフェースを介して制御装置が接続されている技術プロセスにおけるイベントが挙げられる。また、特定のサービス関数が極稀にしか呼び出されないこと、または１回だけしか呼び出されないことも十分に考えられる。
【００２１】
サービスコンフィギュレーションが制御装置において検出される、と記載されている場合、このことは、サービスコンフィギュレーションに含まれている、サービス関数と１つまたは複数の内部制御装置関数との対応が、制御装置において実現される評価関数によって識別され、すなわち有意味に検出され、またサービスコンフィギュレーションに含まれている対応が、サービス関数の代わりに、内部制御装置関数の相応の呼び出しに変換されなければならないことを意味している。制御装置におけるサービスコンフィギュレーションの提供は、制御装置に専用に設けられているメモリ領域にサービスコンフィギュレーションが記憶されることによって簡単に行うことができる。しかしながら、サービスコンフィギュレーションの提供が外部から行われてもよい。
【００２２】
１つの好適な構成においては、制御装置がインタフェースを介して、影響付与装置に接続されており、かつ影響付与装置からインタフェースを介してサービスコンフィギュレーションが制御装置に伝送されて、制御装置に記憶される。１つの代替的な構成においては、制御装置がやはりインタフェースを介して影響付与装置に接続されており、かつ影響付与装置からインタフェースを介してサービスコンフィギュレーションが制御装置に伝送されるが、しかしながら制御装置においてはサービスコンフィギュレーションの永続的な記憶は行われず、むしろサービスコンフィギュレーションは、即座に制御装置において検出されて、サービス関数の代わりに、サービスコンフィギュレーションに相当する、内部制御装置関数の呼び出しが即座に実施される。つまり、サービス関数を呼び出す度に先ず相応の情報をサービスコンフィギュレーションから読み出して検出する必要はなく、その結果、サービス関数のサービス機能によって、割り当てられた内部制御装置関数を呼び出すことを実現できる。例えば、サービスコンフィギュレーションが変更された時点で、サービスコンフィギュレーションの読み出しおよび検出を改めて行うことが実現され、このことは、例えば制御装置に特定のフラグをセットすることによってシグナリングすることができる。
【００２３】
好適には、サービスコンフィギュレーションには、制御装置において内部制御装置関数の１つの引数または複数の引数に関する少なくとも１つの値が格納される、かつ／または制御装置において内部制御装置関数の少なくとも１つの戻り値が格納される、少なくとも１つのメモリロケーションが示される。この措置によって、サービス関数が、呼び出すべき１つの内部制御装置関数に関する、また呼び出すべき複数の内部制御装置関数に関する１つの引数、またもちろん複数の引数をどこに含んでいるかがサービス関数には既知であること、さらにはサービス関数が、必要に応じて、制御装置において内部制御装置関数の１つの戻り値、またもちろん複数の戻り値をさらなる使用のためにどこにファイルするかがサービス関数には既知であることが保証されている。サービスコンフィギュレーションが、接続されている影響付与装置に由来する場合には、もちろん、影響付与装置においても、制御装置において内部制御装置関数の引数がどこにファイルされているのか、また必要に応じて、内部制御装置関数の戻り値が例えばさらなる計算のために必要とされる場合には、それらの戻り値を制御装置においてどこで発見できるのかが既知である。
【００２４】
前述の方法の１つの発展形態においては、メモリロケーションが内部制御装置関数の引数に関して監視され、そのメモリロケーションに引数に関する最新の値が書き込まれたときに初めて、内部制御装置関数がメモリロケーションに格納された引数に関する値で呼び出される。これによって、自動的な同期が外部バイパスプロセスでもって実現され、この場合、メモリロケーションの監視は必ずしも、メモリロケーションの内容の変更だけが検出されることを意味している必要はなく、むしろ、メモリロケーションの内容が書き込みプロセスの際に変更されたか否かにかかわらず、メモリロケーションへの書き込みプロセスにも合わせることができる。
【００２５】
外部バイパスのために同様に重要な、上記において説明した方法の構成は、制御装置がインタフェースを介して影響付与装置に接続されており、かつ制御装置がインタフェースを介して内部制御装置関数の戻り値を影響付与装置に伝送する、かつ／または影響付与装置が内部制御装置関数の戻り値をインタフェースを介して制御装置から読み出すことである。つまり、影響付与装置によって、内部制御装置関数の呼び出しだけを指示できるだけでなく、むしろ影響付与装置においても、内部制御装置関数の呼び出しの結果を用いて処理を行うことができる。そのように使用される影響付与装置は、スワップされた機能ないしバイパス機能の場所でもある。この影響付与装置は、最初に言及した、サービスコンフィギュレーションを制御装置に伝送する際に用いられる影響付与装置とは異なる影響付与装置であってよい。しかしながらそれらの機能を、単一の影響付与装置において実現することもできるが、これを識別することは重要ではない。
【００２６】
方法の有利な発展形態に関する別の措置、特にバイパスに関する別の措置は、制御装置がインタフェースを介して影響付与装置に接続されており、かつ影響付与装置には、少なくとも１つの影響付与装置関数を含むプログラムコードが格納されており、サービスコンフィギュレーションが、影響付与装置関数の呼び出しを含んでおり、かつ相応のサービス関数の呼び出し時に、制御装置がインタフェースを介して影響付与装置に影響付与装置関数の呼び出しをシグナリングし、影響付与装置が影響付与装置関数を実行することを特徴としている。これによって、制御装置は、影響付与装置において所期のように影響付与装置関数を呼び出すことができ（トリガすることができ）、その結果、制御装置および影響付与装置は機能的にかつ時間的に相互に密に関連付けられている。
【００２７】
影響付与装置関数を用いる方法に関して、サービスコンフィギュレーションには、制御装置において影響付与装置関数の引数に関する値が格納される、かつ／または制御装置において影響付与装置関数の戻り値が格納されるメモリロケーションが示されることが有利であると分かった。この機能は、内部制御装置関数の呼び出しに依存せず、かつ正確な引数が影響付与装置関数に確実に供給されることを保証し、またさらには、制御装置における影響付与装置関数の計算の結果が適切な箇所に供給されることを保証する。
【００２８】
前述の関係において、ここでもまた、メモリロケーションが影響付与装置関数の引数に関して、影響付与装置からインタフェースを介して監視され、メモリロケーションに引数に関する最新の値が書き込まれたときに初めて、影響付与装置関数がメモリロケーションに格納された引数に関する値で呼び出されることによって、制御装置と影響付与装置との間に同期が確立される。
【００２９】
上記に挙げた課題は、外部バイパスのために設計されている制御装置によっても解決され、制御装置は、Ｉ／Ｏインタフェースを介して、技術プロセスに接続されており、制御装置には、内部制御装置関数を含むプログラムコードが格納されており、プログラムコードには、少なくとも１つのサービス関数が挿入されており、またプログラムコードの実行時に、制御装置がＩ／Ｏインタフェースを介して、制御信号を技術プロセスに出力し、またＩ／Ｏインタフェースを介して、技術プロセスの状態量を信号として受信する。最後に、外部バイパスのために設計されている制御装置は、制御装置において、サービス関数に関するサービスコンフィギュレーションが提供されており、サービスコンフィギュレーションが制御装置において、制御装置の動作時に検出され、サービス関数の呼び出し時に、サービスコンフィギュレーションに相当するサービス機能が実行されることを特徴としており、この場合、サービスコンフィギュレーションは、対応するサービス関数のサービス機能として実行される内部制御装置関数を示すので、制御装置においてサービスコンフィギュレーションが提供されることによって、接続されている技術プロセスにフレキシブルに作用が及ぼされる。制御装置は、さらに、上記において説明した方法が制御装置の動作状態において、相応に制御装置において実施されることを特徴としている。
【００３０】
詳細には、制御装置の本発明による動作方法および外部バイパスのために設計されている本発明による制御装置を構成および発展させる種々の可能性が存在している。これに関しては、請求項１および請求項９を引用する請求項も、図面に示した実施例の説明も参照されたい。
【図面の簡単な説明】
【００３１】
【図１】外部バイパスのために設計されている制御装置ならびにその種の制御装置を動作させるための方法の第１の実施例を示す。
【図２】影響付与装置が接続されている、外部バイパスのために設計されている制御装置を示す。
【図３】影響付与装置が接続されており、かつバイパスのための完全なシーケンスが接続されている、外部バイパスのために設計されている制御装置を示す。
【図４】制御装置におけるシーケンス制御のためにさらなる同期が行われる、図３による実施例を示す。
【００３２】
先ず図１には、制御装置１の使用に関する典型的な状況が図示されており、制御装置１は、Ｉ／Ｏインタフェース２を介して、技術プロセス３に接続されている。Ｉ／Ｏインタフェース２を介して、制御装置１は、技術プロセス３と恒常的な作用関係にあり、この関係において、制御装置１は、技術プロセス３内のアクチュエータに調整量を出力し、そのようにして技術プロセス３に能動的に影響を及ぼし、また制御装置１は、Ｉ／Ｏインタフェース２を介して、技術プロセス３のセンサから測定データを取得し、それらの測定データは、例えば、新たな調整量の計算に導入される。制御装置は、１つまたは複数のコアを備えた、少なくとも１つのマイクロプロセッサを含んでおり、マイクロプロセッサは、ＩＰコアとしてプログラミング可能なロジックモジュールにおいて実現することもできる。
【００３３】
制御装置１には、内部制御装置関数を含むプログラムコード４が格納されており、図１から図４には、それぞれ内部制御装置関数ｆ（）およびａ（）が示されている。さらに、プログラムコード４には、サービス関数が挿入されており、それらのサービス関数は、図１から図４において、それぞれ「ｅｃｕ＿ｓ（ｎ）」および「ｅｃｕ＿ｓ（ｎ＋１）」で表されている。
【００３４】
制御装置１のプログラムコード４には、本来の機能ｆ（）が定義されており、その計算によって結果ｙが得られる。関数ｆ（）の引数は、内部制御装置関数ａ（）から供給され、この内部制御装置関数ａ（）自体は、引数ｘを使用する。プログラムコードにおいて固定的に実現されているこの制御装置関数ｆ（）は、サービス関数ｅｃｕ＿ｓ（ｎ）およびｅｃｕ＿ｓ（ｎ＋１）に挟まれている。制御装置関数ｆ（）を挟むそれらのサービス関数ｅｃｕ＿ｓ（ｎ）、ｅｃｕ＿ｓ（ｎ＋１）は、基本的に、制御装置関数ｆ（）の迂回を実現する。
【００３５】
制御装置１のプログラムコード４におけるサービス関数ｅｃｕ＿ｓ（）は、特に、バイパスによって、制御装置１の計画に即した影響付与を実現するために使用される。ここで図示した実施例においては、内部制御装置関数ａ（）も、実際には、あらゆる任意のサービス関数ｅｃｕ＿ｓ（）によって呼び出すことができ、この呼び出しは特に、外部バイパスによっても実現される。
【００３６】
このために、制御装置１においては、例えば制御装置１のＲＡＭ５においては、サービスコンフィギュレーション６が準備され、またこのサービスコンフィギュレーション６が制御装置１において、アルゴリズムによって有意味に検出され、それによって、サービス関数ｅｃｕ＿ｓ（）を呼び出した際に、サービスコンフィギュレーション６に相当するサービス機能が実行され、この際、サービスコンフィギュレーション６は、対応するサービス関数ｅｃｕ＿ｓ（）のサービス機能として実行される少なくとも１つの内部制御装置関数ａ（）を示す。図示の実施例においては、サービスコンフィギュレーション６が、サービス関数ｅｃｕ＿ｓ（）は内部制御装置関数ａ（ｘ）を呼び出すという情報を含んでおり、ここでは、呼び出しが引数ｘ’で行われるものとする。すなわち、サービスコンフィギュレーション６は、サービス関数ｅｃｕ＿ｓ（ｉ）に１つの任意の内部制御装置関数ａ＿ｉ（）を割り当てることができるか、または複数の任意の内部制御装置関数ａ＿ｉ（）も割り当てることができる対応リストを含んでいるので、制御装置１のプログラムコード４では、実際には、サービス関数ｅｃｕ＿ｓ（）が設けられているすべての箇所において、１つまたは複数の任意の内部制御装置関数ａ（）を呼び出すことができる。
【００３７】
サービスコンフィギュレーション６の検出は、図示の実施例においては、サービスコンフィギュレーション６からの、サービス関数ｅｃｕ＿ｓ（ｎ）との相応の対応の読み出しを介して行われる。実施例においては、サービスコンフィギュレーションからの対応のこの読み出しが「ｒｅａｄ＿ｃ（ｎ）」として示されている。続いて、サービスコンフィギュレーション６の読み出しによって、内部制御装置関数ａ（ｘ）が引数ｘ’で実行されるべきという結果が得られる。サービスコンフィギュレーション６の読み出しに関連付けられたプロセス（例えば、ｒｅａｄ＿ｎ）、およびサービスコンフィギュレーション６に含まれている情報の命令への変換（例えば、ｒ＝ａ（ｘ’））は、各図面においてそれぞれバイパスサービス７に示されている。図１から図４による実施例においては、プログラムコード４およびバイパスサービス７が制御装置１のフラッシュメモリに常駐しており、またサービスコンフィギュレーション６および後述する置換メモリがＲＡＭ５において実現されている。
【００３８】
図２から図４においては、図１では見て取れるような物理プロセス３がもはや図示されていない。その代わりに、図２から図４においては、制御装置１を影響付与装置９に接続するインタフェース８がそれぞれ図示されている。
【００３９】
図２からは、影響付与装置９からインタフェース８を介して、サービスコンフィギュレーション６が制御装置１に伝送され、制御装置１に記憶されることが見て取れる。このプロセスは、矢印によって示唆されている。理想的には、このことは、制御装置１の初期化中に、影響付与装置９によって行われ、このことは関数「ｉｎｉｔ（）」によって示唆されている。
【００４０】
図２から図４にはさらに、サービスコンフィギュレーション６が、制御装置１において内部制御装置関数ａ（）の引数に関する値ｘ’が格納され、また制御装置１において内部制御装置関数ａ（）の戻り値ｒが格納されるメモリロケーション１０、１１も示していることが図示されている。それらのメモリロケーション１０、１１を、特に置換メモリとして使用することができ、この置換メモリを介して、制御装置１および影響付与装置９は、内部制御装置関数ａ（）の引数ｘ’および結果ｒを置換することができる。
【００４１】
制御装置１において実施される方法においては、バイパスサービス７の枠内で、メモリロケーション１０が内部制御装置関数ａ（）の引数ｘ’に関して監視され、メモリロケーション１０に引数ｘ’に関する最新の値が書き込まれたときに初めて、内部制御装置関数ａ（）がメモリロケーション１０に格納された引数ｘ’に関する値で呼び出される。これによって、内部制御装置関数ａ（）は常に、最新の引数ｘ’で計算されることが保証されている。
【００４２】
図３および図４には、上記において説明した方法の拡張形態が図示されており、そこでは、外部の影響付与装置９による内部制御装置関数ａ（）の呼び出しのもとで、完全なバイパスが実現されている。このために、制御装置１がインタフェース８を介して影響付与装置９に接続されていること、また制御装置１がインタフェース８を介して、内部制御装置関数ａ（）の戻り値ｒを影響付与装置９に伝送することが必要である。代替的に、影響付与装置９は、内部制御装置関数ａ（）の戻り値ｒを、インタフェース８を介して制御装置１から読み出すこともできる。図示の方法においては、内部制御装置関数ａ（）が、メモリロケーション１０に格納されている引数ｘ’を使用して計算される。
【００４３】
図３および図４においては、影響付与装置９が、影響付与装置関数ｆ’（）を含むプログラムコードを有している。影響付与装置関数ｆ’（）は、制御装置１においてプログラムコード４に存在する本来の制御装置関数ｆ（）の計算を修正するためのものであると考えられる。内部制御装置関数ｆ（）の計算によって、結果ｙがもたらされる一方で、影響付与装置関数ｆ’（）の計算によって、修正された結果値ｙ’がもたらされる。
【００４４】
この関係において、図４には、サービスコンフィギュレーション６が影響付与装置関数ｆ’（）の呼び出し１２（「ｔｒｉｇｇｅｒ」）を含んでおり、相当するサービス関数の呼び出し時に、ここではサービス関数ｅｃｕ＿ｓ（ｎ）の呼び出し時に、制御装置１は、インタフェース８を介して、影響付与装置９に影響付与装置関数ｆ’（）の呼び出し１２をシグナリングし、これに基づいて、影響付与装置９は、影響付与装置関数ｆ’（）を実行する。つまり、制御装置１は、影響付与装置９における影響付与装置関数ｆ’（）を能動的に実行できること、つまりトリガできることを保証することができる。
【００４５】
図３および図４に示した方法において、バイパスを実行するためには、制御装置１において影響付与装置関数ｆ’（）の引数ｒに関する値が格納され、また制御装置１において影響付与装置関数ｆ’（）の戻り値ｙ’が格納されるメモリロケーション１１がサービスコンフィギュレーション６において示されることも必要である。図示したいずれの方法においても、最終的には、本来の制御装置関数ｆ（）の結果である値ｙが、影響付与装置関数ｆ’（）の計算から生じる、修正された値ｙ’に置換され、これによって、本来の制御装置関数ｆ（）のバイパスが終了される。
【００４６】
図示した方法においては、さらにメモリロケーション１１が影響付与装置関数ｆ’（）の引数ｒに関して、影響付与装置９からインタフェース８を介して監視され、メモリロケーション１１に引数ｒに関する最新の値が書き込まれたときに初めて、影響付与装置関数ｆ’（）がメモリロケーション１１に格納された引数ｒに関する値で呼び出され、このことは、図面において方法ステップ「ｗａｉｔ  ｆｏｒ  ｒ」によって示唆されている。これによって、影響付与装置関数ｆ’（）の計算を、実際には、イベントドリブン式でトリガすることができる。
【図１】
2018537779.tif 000003
【図２】
2018537779.tif 000004
【図３】
2018537779.tif 000005
【図４】
2018537779.tif 000006
【国際調査報告】
2018537779.tif 000007
2018537779.tif 000008
2018537779.tif 000009
2018537779.tif 000010