(57)【要約】【解決手段】フェイルセーフ制御システムの入力信号間の論理的相互結合を定義する  段階と、相互結合の結果M４、M５を、フェイルセーフ制御システム１８の出力信号３２に割り当てる段階とを含む、フェイルセーフ制御システム１８のプログラミング方法。前記相互結合の定義及び前記割り当ては、予め定義された特定関数プログラムモジュール６２〜７６、７６〜８０に基づいて行なわれ、前記特定関数プログラムモジュール６２〜７６、７６〜８０は1組６０の予め定義された特定関数プログラムモジュールから選択される。各選択されたプログラムモジュール７６、７８、８０が定義された第１、第２、第３の関数グループ５４、５６、５８のそれぞれに独特の方法で割り当てられる。【効果】プログラミング中のエラーの可能性が減少し、フェイルセーフ性が向上する。【選択図】図２
2004524620.tif 000002
【特許請求の範囲】
【請求項１】
フェイルセーフ制御システム（１８）のプログラミング方法であって、
前記フェイルセーフ制御システム（１８）の入力信号(２８)間の論理的相互結合を定義する段階と、
相互結合の結果（M４、M５）を、フェイルセーフ制御システム（１８）の出力信号（３２）に割り当てる段階とを含み、
前記相互結合の定義及び前記割り当ては、予め定義された特定関数プログラムモジュール（６２〜７６、７６〜８０）に基づいて行なわれ、前記特定関数プログラムモジュール（６２〜７６、７６〜８０）は1組（６０）の予め定義された特定関数プログラムモジュールから選択される、プログラミング方法であって、
選択された各プログラムモジュール（７６、７８、８０）は、定義された第１、第２、第３の関数グループ（５４、５６、５８）のそれぞれに独特の方法で割り当てられ、前記第１関数グループ（５４）は、フェイルセーフ制御システム（１８）の入力信号（２８）をピックアップし且つそれらに基づいて第１の暫定変数（M１、M２、M３）を提供するプログラムモジュール（７６）を含んでおり、前記第２関数グループ（５６）は、第１暫定変数（M１、M２、M３）を互いに論理的に相互結合し且つそれらに基づいて第２暫定変数（M４、M５）を提供するプログラムモジュール（７８）を含んでおり、前記第３関数グループ（５８）は、第２暫定変数（M４、M５）をフェイルセーフ制御システム（１８）の出力信号（３２）に割り当てるプログラムモジュール（８０）を含んでいることを特徴とするプログラミング方法。
【請求項２】
前記各プログラムモジュール（６２〜７２、７６〜８０）は、合計３つの前記定義された関数グループ（５４、５６、５８）のうちの１つに正確に割り当てられる、請求項１に記載のプログラミング方法。
【請求項３】
前記第１関数グループ（５４）の各プログラムモジュール（７６）は、定義された信号源（３０）をフェイルセーフな方法で評価する、請求項１または２に記載のプログラミング方法。
【請求項４】
前記プログラムモジュール（６２〜７２、７６〜８０）が選択されるときは常に、プログラムモジュール関数コールが発されてシークエンステーブルに保存される、請求項１〜３のいずれかに記載のプログラミング方法。
【請求項５】
前記プログラムモジュール関数コールは、関数グループ（５４、５６、５８）に応じて別個にシークエンステーブルに保存される、請求項４に記載のプログラミング方法。
【請求項６】
前記プログラムモジュール関数コールは、関数グループ（５４、５６、５８）のシークエンスにおいて保存される、請求項４または５に記載のプログラミング方法。
【請求項７】
前記プログラムモジュール（６２〜７２、７６〜８０）は、グラフィック記号により、グラフィックユーザインタフェース（５０）上に表示される、請求項１〜６のいずれかに記載のプログラミング方法。
【請求項８】
前記プログラムモジュール（６２〜７２、７６〜８０）は、ドラッグアンドドロップ機能（７４）により選択される、請求項７に記載のプログラミング方法。
【請求項９】
前記関数グループ（５４、５６、５８）は、グラフィック記号により、グラフィックユーザインタフェース（５０）上に表示される、請求項１〜８のいずれかに記載のプログラミング方法。
【請求項１０】
選択されたプログラムモジュール（７６、７８、８０）のユーザインタフェース（５０）上の表示は、保存された関連プログラムモジュール関数コールから発される、請求項７〜９のいずれかに記載のプログラミング方法。
【請求項１１】
フェイルセーフ制御システム（１８）のプログラミング装置であって、予め定義された特定関数プログラムモジュール（６２〜７２、７６〜８０）を選択し且つパラメータ化する第１手段（１２、１４、１６）を有しており、この第１手段によってフェイルセーフ制御システム（１８）の入力信号（２８）間で論理的相互結合を定義することが可能であり且つ前記相互結合の結果（M４、M５）をフェイルセーフ制御システム（１８）の出力信号（３２）に割り当てることが可能であり、
プログラミング装置は更に他の手段（５２）を有しており、この手段（５２）は、選択された各プログラムモジュール（７６、７８、８０）を、定義された第１、第２、第３の関数グループ（５４、５６、５８）のそれぞれに独特の方法で割り当て、前記第１関数グループ（５４）は、フェイルセーフ制御システム（１８）の入力信号（２８）をピックアップし且つそれらに基づいて第１の暫定変数（M１、M２、M３）を提供するプログラムモジュール（７６）を含んでおり、前記第２関数グループ（５６）は、第１暫定変数（M１、M２、M３）を互いに論理的に相互結合し且つそれらに基づいて第２暫定変数（M４、M５）を提供するプログラムモジュール（７８）を含んでおり、前記第３関数グループ（５８）は、第２暫定変数（M４、M５）をフェイルセーフ制御システム（１８）の出力信号（３２）に割り当てるプログラムモジュール（８０）を含んでいることを特徴とするプログラミング装置。
【請求項１２】
選択されたプログラムモジュール（７６、７８、８０）に基づいてプログラムモジュール関数コールを保存するためのメモリ（４２）と、保存されたプログラムモジュール関数コールに基づいて選択されたプログラムモジュール（７６、７８、８０）の表示を発するディスプレイユニット（１４、４４）とを有する、請求項１１に記載のプログラミング装置。
【請求項１３】
コンピュータプログラム（１６）がコンピュータ（１２）上で実行される時に請求項１〜１０のいずれかの方法を実施するためのプログラムコーディング手段を有している、コンピュータプログラム。
【請求項１４】
フェイルセーフ制御システム（１８）のためのユーザプログラムであって、コマンドシークエンスを有しており、前記コマンドシークエンスをフェイルセーフ制御システム（１８）のプロセッサユニット（２０、２２）で加工することにより、入力信号（２８）の論理的相互結合とフェイルセーフ制御システム（１８）の出力信号（３２）への割り当てとが達成され、
前記コマンドシークエンスは、少なくとも３つの連続的関数グループ（５４、５６、５８）を形成しており、これらの３つの連続的関数グループ（５４、５６、５８）は、フェイルセーフ制御システム（１８）の入力信号（２８）をピックアップし且つそれらに基づいて第１の暫定変数（M１、M２、M３）を提供するコマンドシークエンスを含む第１関数グループ（５４）と、第１暫定変数（M１、M２、M３）を互いに論理的に相互結合し且つそれらに基づいて第２暫定変数（M４、M５）を提供するコマンドシークエンスを含む第２関数グループ（５６）と、第２暫定変数（M４、M５）をフェイルセーフ制御システム（１８）の出力信号（３２）に割り当てるコマンドシークエンスを含む第３関数グループ（５８）とであることを特徴とするユーザプログラム。
【請求項１５】
保存手段（３６）を有するコンピュータプログラムプロダクトであって、請求項１３に記載のコンピュータプログラム（１６）または請求項１４に記載のユーザプログラム（３８）が前記保存手段に保存されることを特徴とするコンピュータプログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フェイルセーフ制御システムのプログラミング方法に関し、この方法は、
フェイルセーフ制御システムの入力信号間の論理的相互結合を定義する段階と、
前記相互結合の結果をフェイルセーフ制御システムの出力信号に割り当てる段階とを含み、
前記相互結合の定義と前記割り当てとは、予め定義された特定関数プログラムモジュールに基づいて行なわれ、前記プログラムモジュールは、１組のそのようなプログラムモジュールから選択される。
【０００２】
本発明は更に、フェイルセーフ制御システムのプログラミング装置に関し、この装置は予め定義された特定関数プログラムモジュールを選択し且つパラメータ化する第１手段を有しており、この第１手段によってフェイルセーフ制御システムの入力信号間の論理的相互結合を定義することが可能であり且つ相互結合の結果をフェイルセーフ制御システムの出力信号に割り当てることができる。
【背景技術】
【０００３】
前記のタイプの方法及び装置は、特許文献１から知ることができる。
本発明の目的に関連して、フェイルセーフ制御システムとは、センサの供給する入力信号をピックアップし、論理的相互結合とある条件下では更に信号加工またはデータ加工段階とにより、そこから出力信号を発するユニット又は装置である。これらの出力信号を次にアクチュエイタに供給することができ、アクチュエイタはその後、前記入力信号に応答する環境において、特定の選択作用又は反作用を行なう。そのようなフェイルセーフ制御システムのための好ましい適用分野は、機械安全の領域、緊急停止ボタンのモニタリング、両手操作式制御部、防護ドア又は光カーテンである。このようなセンサは、例えば、作動されると人々や財産に危険を与える機械を安全にするために使用される。防護ドアが開かれると、又は緊急停止ボタンが起動されると、それぞれの信号が発せられて入力信号としてフェイルセーフ制御システムに供給される。これに応答して、フェイルセーフ制御システムは、次に例えばアクチュエイタにより機械の危険部分をシャットダウンする。
【０００４】
「通常」の制御システムとは対照的に、フェイルセーフ制御システムの特徴は、フェイルセーフ制御システム又はそれに連結した装置に故障が起こっても、フェイルセーフ制御システムは常に危険な設備又は機械を確実に安全な状態にしなければならないことである。従って、フェイルセーフ制御システムは、真のフェイルセーフ性という点での極めて高度の要件に合致しなければならず、開発や製造にかなりの出費を要するという結果となる。
【０００５】
また、フェイルセーフ制御システムは、一般に、使用前に責任ある監督当局による特別の認定が必要である。例えば、ドイツでは、雇用者の信用保証協会またはＴuＶ（技術検査及び試験機関）による認定が必要である。フェイルセーフ制御システムは、この場合、所定の安全基準に一致しなければならず、安全基準は例えば欧州基準  ＥＮ  ９５４−１に明示されている。従って、フェイルセーフ制御システムは、以後、少なくとも前記欧州基準の安全カテゴリー３に一致する装置を意味するものと理解される。
【０００６】
プログラミングできるフェイルセーフ制御システムは、論理的相互結合を個々に定義できる可能性をユーザに与え、もしそれが適切ならば、更に、必要に応じてユーザプログラムとして知られているソフトウエアを用いて信号を加工する段階又はデータを加工する段階を与える。その結果、これまでの解決方法に比べて極めて自在に種々の安全モジュール間の限定された配線により論理的相互結合が行なわれる。しかしながら、フェイルセーフ制御システムのプログラミングにおける１つの問題は、ユーザプログラムにおけるエラーが制御できない状況を引き起こし従ってモニタされる機械及び設備に危険な状態を引き起こすため、作成されるべきユーザプログラムそれ自体が安全性に危機をもたらす要素であることである。これに加えて、多くの安全装置を有する大きい機械設備のモニタリングの間に、ユーザプログラムは極めて複雑になり混乱して、必要なフェイルセーフ性を得ることがかなり難しくなる事実がある。この場合、ユーザプログラムにおける重大なエラーが、プログラミング時の人的エラーのみならず、フェイルセーフでないプログラミング補助装置により引き起こされるかもしれない。例えば、もしフェイルセーフ制御システムのためのユーザプログラムがフェイルセーフでない市販のパーソナルコンピュータ(ＰＣ)で作成されると、ＰＣのメモリエラーが気付かれないままユーザプログラムの重大な歪曲をもたらす場合がある。
【０００７】
前記の特許文献１において、市販のＰＣを安全制御システムすなわちフェイルセーフ制御システムのプログラミングに使用し得る方法が開示されている。この目的のために、ソフトウエアマクロとして知られている形態での特定関数プログラムモジュールが、フェイルセーフ制御システムに保存される。ユーザプログラムを作成するために、ユーザはＰＣを用いてプログラムモジュール関数コールを発生させ、この関数コールは次にフェイルセーフ制御システムに転送される。プログラムモジュール関数コールを用いて、フェイルセーフ制御システム内の必要なプログラムモジュールが呼び出されて実際のユーザプログラムを形成するようにリンクされる。プログラミング装置、すなわちＰＣは、単に必要なプログラムモジュールの選択及びリンクのために役立つだけである。プログラムモジュールそれ自体は変更できず、従ってＰＣもまたプログラムモジュールにいかなる影響も与えることができない。
【特許文献１】
国際公開番号ＷＯ  ９８／４４３９９号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この公知の方法は、フェイルセーフ制御システムのプログラミングを簡単にする。更に、フェイルセーフ制御システムに転送されたプログラムモジュール関数コールがプログラミング装置内に読み返され、そこでユーザに再確認されねばならないという事実によって、ある安全性が更に達成される。しかしながら、この公知の方法は、ユーザプログラムの作成におけるフェイルセーフ性という点では最適ではない。
【０００９】
従って、本発明の目的は、フェイルセーフ制御システムのプログラミングにおいてより大きいフェイルセーフ性を達成するために、本明細書の冒頭に述べたタイプの方法及び装置を改良することである。
【課題を解決するための手段】
【００１０】
冒頭に述べた方法を用いて、選択した各プログラムモジュールを、定義した第１、第２、第３の関数グループのそれぞれに独特の方法で割り当てることにより、この目的は達成される。すなわち、フェイルセーフ制御システムの入力信号をピックアップし、それらに基づいて第１の暫定変数を提供するプログラムモジュールを含む第１の関数グループと、第１の暫定変数を互いに論理的に相互結合し、それらに基づいて第２暫定変数を提供するプログラムモジュールを含む第２関数グループと、第２暫定変数をフェイルセーフ制御システムの出力信号に割り当てるプログラムモジュールを含む第３関数グループである。
【００１１】
冒頭に述べたタイプの装置を用いて、選択されたプログラムモジュールをそれに対応して定義された関数グループに独特の方法で割り当てるための別の装置により、前記目的は達成される。
選択されたプログラムモジュールを定義された関数グループの一つに適宜に強制的に割り当てることにより、フェイルセーフ制御システムの極めてクリアで構造的なプログラミングが可能になる。その結果、プログラミング中のエラーの可能性が減少する。構造的でないプログラミングの場合、例えば、作成されたユーザプログラムの種々の部分間に検知されない反作用を生じる可能性がある。このような反作用は、実行時問題又は「振動」さえ生じる場合があり、それらは結果として不安定で危険な状態をもたらす。これらのエラー源は、ここに提案したプログラミングの間の強制的な構造化によって、完全に除去できないとしても、かなり減少できる。更に、クリアで均一な構造のために、作成されたユーザプログラムの曖昧検査も簡単になる。第１の関数グループからのプログラムモジュールが、独特の暫定変数を用いるだけで第２の関数グループからの論理的モジュールに割り当てられているかどうかの検査はいまや以前と比べて容易になり従って更に信頼できるようにもなっている。
【００１２】
更に、本発明により構成されたプログラムは、更に容易に維持でき、すなわち後に変更又は拡張することができ、その結果、そのような行動の間のエラー源もまた減少する。更に所定の構造もまた、プログラミング自体の間に一層の明快さをもたらし、その結果、例えば必要な個々の相互結合を忘れるなどの人的エラーもまた、同様に減少する。
定義された関数グループへの分割は、プログラミングをよりクリアにする全体的効果を有し、従って、更に便利にもなる。同時に、プログラマは、ユーザプログラムを作成する時予め作成されたプログラムモジュールだけに頼るという前記公知の方法の大きい利点は完全に保持し得る。ユーザプログラムは、ここでは、検査されたフェイルセーフプログラムモジュールだけからリンクされるので、同様にエラー源が減少する。
【００１３】
本発明の好ましい改良において、各プログラムモジュールは、合計３つの関数グループの１つに正確に割り当てられる。
この改良において、プログラミング時の構造は、正確に３つのレヴェルに分割される。これは作成すべきユーザプログラムの本来の基本構造に対応しており、そこにおいて先ず入力信号がピックアップされ（第１レベル）、次にピックアップされた信号が加工され（第２レベル）、最後に、作用を起こすために加工結果もまた出力される（第３レベル）。従って、この改良においてプログラミング構造は、状況に最もよく適合しており、従って特に簡潔でクリアである。プログラミング中のエラーのリスクは、従って更に減少される。
【００１４】
本発明の更に他の改良において、第１関数グループの各プログラムモジュールは、定義された信号源をフェイルセーフな方法で評価する。
この意味における定義された信号源とは、例えば、緊急停止ボタン、防護ドア及び安全に関する信号を発する他のセンサである。第１関数グループのプログラムモジュールは、これらのセンサを独自に評価し、対応するセンサの状態に関するフェイルセーフ情報を第１の暫定変数として供給する。この方法には、第１暫定変数が「物理的な」意味を有しており、ユーザプログラムのプログラマにより極めてよく理解され得るという利点がある。従って、プログラミング時には、この構造は特に見易くなり、その結果、エラー源は更に減少する。
【００１５】
本発明の更に他の改良において、プログラムモジュールが選択された時は常に、プログラムモジュール関数コールが発されてシークエンステーブルに保存される。
本発明のこの改良によって、作成され確認されたプログラムモジュールをフェイルセーフ制御システムに静止状態に保存することができる。プログラマがプログラミング装置を用いて作成したユーザプログラムは、次にプログラムモジュール関数コールにストリングすることに限定できる。このようなユーザプログラムは、比較的小さい保存スペースを必要とし、従ってフェイルセーフ制御システムに簡便且つ迅速に転送できる。ユーザプログラムはまた更に容易に検査できる。更に、安全性に関する重要な要素として、プログラムモジュールはプログラマのアクセスにより引き出される。これは、プログラミング時の簡便さとフェイルセーフ性との両方を改良する全体的な効果を有する。
【００１６】
前記方法の更に他の改良において、プログラムモジュール関数コールは関数グループによって別個にシークエンステーブルに保存される。
この方法は、本発明による構造がプログラミングそれ自体だけでなくそれによって作成されるユーザプログラムにおいても検査されるという利点を有している。その結果、作成されたユーザプログラムにはエラー源が少なく、従ってフェイルセーフ性か更に改良されている。
【００１７】
上記の方法の更に他の改良において、プログラムモジュール関数コールは、関数グループのシークエンスにおいて保存される。
従って、この改良において、先ず第１関数グループの全てのプログラムモジュール関数コールと、次に第２関数グループの全てのプログラムモジュール関数コールと、最後に第３関数グループの全てのプログラムモジュール関数コールとが、保存される。この方法は、プログラムモジュール関数コールのシークエンスによって、ユーザプログラムの作成時に最適のタイムシークエンスを実施できるという利点を有しており、その結果フェイルセーフ性を更に増す。
【００１８】
本発明の更に他の改良において、プログラムモジュールはグラフィックユーザインタフェース上のグラフィック記号により表わされる。
この方法によって、実際のプログラミング作業を特に見やすくクリアにすることができ、その結果、人的ミス又は不注意から生じるエラー源を大きく減らす。フェイルセーフ性は、更に大きく増す。
【００１９】
上記の方法の更に他の改良において、プログラムモジュールは、ドラッグアンドドロップ機能により選択される。
ドラッグアンドドロップ機能は、市販のＰＣのグラフィックユーザインタフェースによりそれ自体公知である。この場合、いわゆるマウスなどの入力装置である要素をマークし、それを入力装置で所望の位置にドラッグ又はコピーする。このようなタイプの選択は、プログラマにとって極めて簡便である。その結果、プログラミング時のオペレータのエラー及びそれによるエラー源は、更に大きく減少する。
【００２０】
本発明の構造は、プログラマに直接視覚的に表示されるので、プログラミング時の見易さとクリアであることもまた、この方法により大きく改善される。それによって視覚的制御が直接的に可能になるため、エラーのリスクが更に減らされる。
本発明方法の更に他の改良において、ユーザインタフェース上への選択されたプログラムモジュールの表示は、保存された関連プログラムモジュール関数コールから発せられている。従って、本発明による対応装置は、選択されたプログラムモジュールとディスプレイユニットとに基づくプログラムモジュール関数コールを保存するためのメモリを有しており、それは、保存されたプログラムモジュール関数コールに基づいて選択されたプログラムモジュールの表示を発する。
【００２１】
本発明のこの改良において、選択されたプログラムモジュールは間接的にのみユーザインタフェース上に視覚的に表示される。先ず、関連プログラムモジュール関数コールが保存され、後にフェイルセーフ制御システムに出力される場合のフォーマットに正確に入れられる。選択されたプログラムモジュールの表示が保存されたプログラムモジュール関数コールから発せられるのは、その後のみである。従って、プログラマは、実際に保存されたプログラムモジュール関数コールの視覚的表示を常に提供されており、それによって保存されたものが彼が明示したものと一致するかどうかを直接認識することができる。従って、ここでは、選択する間、保存されたプログラムモジュール関数コールに対し直接チェックが持続しており、その結果、プログラミング中のエラーがまた大きく減少する。更に、保存されたプログラムモジュール関数コールに対するそれ以上の制御チェックはもはや必要ではなく、その全体的な結果として、高レベルのフェイルセーフ性を有するプログラミングが極めて簡便に達成される。
【００２２】
更に、この方法は、プログラマが作成されたユーザプログラムを極めて簡単にグラフィックな書類にできるという利点を有している。従って、ユーザプログラムの後のケアを極めて簡単に且つ極めてフェイルセーフに行なうことができる。
上記の特徴及び更に下記に説明する特徴は、それぞれ指摘された組み合わせにおいてのみならず、本発明の範囲から離れることなく他の組み合わせにおいて又はそれ自体で使用できることは、いうまでもない。
【発明を実施するための最良の形態】
【００２３】
本発明の例である実施形態を、添付図面を参照して下記に詳述する。
図１において、本発明の装置全体に参照番号１０が付与されている。
装置１０は、モニタ１４を有する通常のパーソナルコンピュータ（PC）１２を含んでおり、このPC１２上でコンピュータプログラム１６が実行される。コンピュータプログラム１６は、フェイルセーフ制御システム用のユーザプログラムの作成を可能にする。従って、技術用語では、しばしばプログラミングツールと呼ばれる。
【００２４】
プログラミングされるべきフェイルセーフ制御システムには、図１において参照番号１８が付与されている。安全性危機のプロセスを制御するのに必要なフェイルセーフ性を得るために、このシステムは、２チャンネルで冗長的に構成されている。図１に２チャンネルの冗長構造の例として、２個のプロセッサ２０、２２が示されている。プロセッサ２０、２２は、互いに分離されており且つ双方向通信インタフェース２４を介して互いに連結されているので、互いにチェックし合い且つデータを交換し合うことができる。フェイルセーフ制御システム１８の２つのチャンネル及び２個のプロセッサ２０、２２は、システムの故障を実質的に排除するために、多様性をもって、すなわち互いに異なるように構成されていることが好ましい。
【００２５】
参照番号２６は、入力／出力ユニットを示しており、これは２個のプロセッサ２０、２２のそれぞれと連結されている。入力／出力ユニット２６は、外部センサ３０からの入力信号２８をピックアップし、採用したデータフォーマットに入れてプロセッサ２０、２２のそれぞれに送る。更に、プロセッサ２０、２２に基づいて、入力／出力ユニット２６は出力信号３２を発し、この出力信号３２によってアクチュエイタ３４が起動される。
【００２６】
センサ３０は、例えば、緊急停止ボタン、両手操作式制御部、防護ドア、回転速度モニタ装置または安全性に関するパラメータをピックアップする他のセンサである。アクチュエイタ３４は、例えばコンタクタとして知られているものであり、それによってドライブ又は装置全体の電源スイッチをオフにすることができる。
参照番号３６は、ユーザプログラムを保存したチップカードを示している。ユーザプログラム３８は装置１０を用いて作成され、フェイルセーフ制御システム１８により実行される制御タスクを確立する。この場合の保存媒体であるチップカード３６を使用することにより、装置１０に直接連結する必要さえなしにユーザプログラム３８を簡単に交換できる。この方法の代わりに、ユーザプログラム３８を、例えばEEPROMのようなフェイルセーフ制御システムに永久的にインストールされたメモリに保存してもよい。
【００２７】
コンピュータプログラム１６は、下記に詳述するユーザインタフェースを、PC１２のモニタ１４上に提供する。ユーザインタフェースは、プログラマが予め定義された特定関数プログラムモジュールを選択しパラメータ化することを可能にする。これらのプログラムモジュールは、フェイルセーフ制御システム１８に永久的に保存されている。しかしながら、プログラマにできることは、個々のプログラムモジュールを選択しそれらを互いに結合することだけであり、彼自身でそれらを変更することはできない。予め定義されたプログラムモジュールの選択及びパラメータ化は、図１において、関数ブロック４０として示されている。プログラマが、いったん所望のプログラムモジュールを選択しそれが適切であればそれをパラメータ化すると、それはPCのメモリ４２に保存され、フェイルセーフ制御システム１８のフォーマットに正確に合う。「フェイルセーフ制御システム１８のフォーマットに合う」とは、この場合、後にこのフォームでチップカード３６に与えられるプログラムモジュール関数コールが発されて保存されることを意味する。保存されたプログラムモジュール関数コールは、ユーザプログラム３８においてプログラムコマンドを表示する。
【００２８】
ここに記載した例としての実施形態によれば、コンピュータプログラム１６は、関数ブロック４４を用いて、保存したプログラムモジュール関数コールから、対応し関連するプログラムモジュールの象徴的表示をPC１２のユーザインタフェース上に形成する。プログラマにとってこのことは、後に更に詳細に説明する方法で彼がプログラムモジュールを選択することを意味し、所望の選択がプログラマに対し視覚的に表示されることからだけで、正しい関連プログラムモジュール関数コールがメモリ４２に保存されていたことがわかる。
【００２９】
プログラマが彼のユーザプログラムに必要な全てのプログラムモジュールを選択してそれが適切であればそれらをパラメータ化した時、完全なユーザプログラムはメモリ４２内に入れられる。それは更にCRC（巡回冗長検査）によって保護されることが好ましい。ユーザプログラムは、その後、メモリ４２から関数ブロック４２を介してそれ自体公知の方法でチップカード３６へ転送され得る。ユーザプログラムをCRCで保護することにより、チップカード３６上のユーザプログラムは、先に発生されメモリ４２に保存されたユーザプログラムと完全に一致する。ユーザプログラムを転送する間、チップカード３６をフェイルセーフ制御システム１８に挿入してもよく、その場合、PC１２とフェイルセーフ制御システム１８との間の対応する通信連結が必要である。それに代わる１つの方法として、それ自体公知のローディングユニット（図示せず）を用いて、ユーザプログラム３８をチップカード３６に書き込んでもよい。その結果、書き込んだチップカード３６を挿入するだけで、ユーザプログラム３８をフェイルセーフ制御システム１８に供給できる。
【００３０】
本発明の更に他の好ましい実施形態によれば、２個のプロセッサ２０、２２は、ユーザプログラム３８を異なる方法で実行する。これは、例えば、機能的には同じであるが、異なるプログラムモジュールを用いて実行することができ、これらのプログラムモジュールは、一つの同じ関数コールにより起動される。そして２つのプロセッサ２０、２２のそれぞれの結果を比較すると、ユーザプログラム３８のフェイルセーフチェックが可能になる。このようにして、利用できるプログラムモジュールの全ての考え得る組み合わせを個々にチェックすることなく、ユーザプログラム３８をよりフェイルセーフにすることができる。
【００３１】
図２において、プログラマに対してモニタ１４上にコンピュータプログラムを提供するグラフィックユーザインタフェースは、全体として参照番号５０で示されている。
ユーザインタフェース５０はプログラミングエリア５２を有しており、ここに示した本発明の好ましい実施形態によれば、このプログラミングエリア５２は、図において３つ別々の関数グループ５４、５６、５８に分割されている。プログラミングエリア５２の外側には、選択できるプログラムモジュール６２、６４、６６、６８、７０、７２の組６０が図形で表わされている。これらのプログラムモジュールの１つを選択するには、ドラッグアンドドロップ機能を用いて、例として矢印７４で示されているように、対応する記号をプログラミングエリア５２の関数グループに移動させる。このようにして選択されたプログラムモジュールは、例えば参照番号７６、７８、８０によって示されている。
【００３２】
選択され得るプログラムモジュール６２〜７２は、大体において３つの異なるタイプに分けることができ、それらは、３つの定義された関数グループ５４、５６、５８に対応する。関数グループ５４はプログラムモジュール６２〜６８を受け取る。これらのプログラムモジュール６２〜６８は、定義された信号源すなわち定義されたセンサ３０をフェイルセーフな方法で独自に評価する。従って、プログラムモジュール６２〜６８は、ここではセンサモジュールと呼ばれる。各プログラムモジュール６２〜６８は、例えば緊急停止ボタン、防護ドアまたは両手操作式制御部など、特定のタイプのセンサとして構成されている。  センサモジュール６２は、例えば、２個の冗長な正常に開いた接点とモニタされるスタートとを有する信号源のフェイルセーフ性を評価するためのプログラムモジュールである。センサモジュール６４は、例えば、正常に開いた接点と正常に閉じた接点と更にモニタされないスタートとを有する信号源を評価する。更にもう１つのセンサモジュール６８は、例えば光バリアのような半導体出力を有する信号源の評価を行なう。全体的に見て、組６０は、考慮される全てのセンサ３０のためのセンサモジュールである。
【００３３】
第１の関数グループ５４に割り当てることのできるセンサモジュール６２〜６８は、センサ３０の入力信号２８を入力パラメータとして受け取る。転送パラメータとして、それらは第１の暫定変数を提供する。これらの暫定変数は、技術用語でマーカーと呼ばれる。図２において例として示されているマーカーM1、M2、M3は、３個の選択されたセンサモジュール全体の出力における第１の暫定変数として表わされている。
【００３４】
関数グループ５６は、第１の暫定変数を互いに論理的に結合しそれらに基づいて第２の暫定変数を提供するプログラムモジュールを受け取るだけのために働く。
図２では、２個のマーカーM1、M2が、例えば論理的ANDにより結合されている。マーカーM2及びM3は論理的ORにより連結されている。その結果、対応するプログラムモジュールの出力において、第２の暫定変数M４、M5は使用できる。
【００３５】
ここに示した論理的モジュールに加えて、第２の関数グループ５６もまた、他のプログラムモジュールを受け取るが、これらの他のプログラムモジュールは、第１の暫定変数を加工して例えば否定や時間遅延などの第２の暫定変数を形成する。
第３の関数グループ５８は、いわゆるアクチュエイタモジュール、すなわち第２暫定変数からアクチュエイタ３４を起動させる出力信号を発するプログラムモジュールを受け取る。図２において、アクチュエイタモジュール８０は、例えば２個の冗長コンタクタを起動するために働き、これらの冗長コンタクタによって、モニタされるドライブの電源は、２チャンネル式に、従ってフェイルセーフな方法でスイッチオフすることができる。
【００３６】
フェイルセーフ制御システム１８のためのユーザプログラム３８の作成は、所望のプログラムモジュール６２〜７２を選択して結合することにより行なわれる。所望のプログラムモジュールを選択することにより、それに対応して関連したプログラムモジュール関数コールを発し、これは、いわゆるシークエンステーブルのメモリ４２に保存される。それによって、図２に例として表示されているプログラミング作業のために、下記のシークエンステーブルが得られる。
【００３７】
【表１】
2004524620.tif 000003
【００３８】
「モジュールタイプ」欄において、それぞれのプログラムモジュール関数コールは、フェイルセーフ制御システム１８によって読み取れるコーディングに現れる。それに続く欄には、転送パラメータが与えられており、対応して呼び出されたプログラムモジュールがこれらを受け取りそして戻す。
本発明の特に好ましい実施形態によれば、コンピュータプログラム１６は、シークエンステーブルの個々のプログラムモジュール関数コールを年代順に、すなわち３つの関数グループ５４、５６、５８の順に配列する。従って、グラフィックユーザーインタフェース５０のためのプログラミングの間に既に得られた構造は、完全に作成され使用されたユーザプログラム３８において持続している。従って、明瞭に分割され、構成されたユーザプログラム３８が作成される。
【００３９】
本発明の好ましい実施形態において、ユーザプログラム３８は、メモリ４２からチップカード３６上へ転送されるとき常にCRCによって保護されている。このようにして、チップカード３６へ転送中に起こるユーザプログラムの歪曲は、確実に検知され、必要ならば防止される。
【図面の簡単な説明】
【００４０】
【図１】プログラムされるべきフェイルセーフ制御システムと結合された本発明装置の概略図である。
【図２】フェイルセーフ制御システムをプログラムするためのグラフィックユーザーインターフェースの簡略図である。
【図１】
2004524620.tif 000004
【図２】
2004524620.tif 000005
【国際公開パンフレット】
2004524620.tif 000006
2004524620.tif 000007
2004524620.tif 000008
2004524620.tif 000009
2004524620.tif 000010
2004524620.tif 000011
2004524620.tif 000012
2004524620.tif 000013
2004524620.tif 000014
2004524620.tif 000015
2004524620.tif 000016
2004524620.tif 000017
2004524620.tif 000018
2004524620.tif 000019
2004524620.tif 000020
2004524620.tif 000021
2004524620.tif 000022
2004524620.tif 000023
2004524620.tif 000024
2004524620.tif 000025
2004524620.tif 000026
2004524620.tif 000027
2004524620.tif 000028
2004524620.tif 000029
2004524620.tif 000030
2004524620.tif 000031
2004524620.tif 000032
2004524620.tif 000033
【国際公開パンフレット（コレクトバージョン）】
2004524620.tif 000034
2004524620.tif 000035
【国際調査報告】
2004524620.tif 000036
2004524620.tif 000037
2004524620.tif 000038
2004524620.tif 000039