(57)【要約】【課題】本発明の方法は、安全関連の機能を有するユーザープログラムの作成過程の複雑性をさらに低減可能であるとともに、非常に複雑な用途向けの安全制御装置のプログラミングを簡単、迅速、かつ優れた費用対効果で行える。【解決手段】本発明の方法および装置は、発生するプログラミングタスクのマトリクス状構成を備えており、一方では特定のハードウェアコンポーネントにそれぞれ割り当てられたソフトウェアコンポーネント（１４６、１７４）に、他方では部分機能面に応じたグループ化プログラミングを可能とする機能面ブロック（９２、１１２、１３６、１８０、１９８、４０８）に分割される。各機能面ブロック（９２、１１２、１３６、１８０、１９８、４０８）は、互いに異なる複数の制御面の１つを表し、各前記制御面は、安全制御装置の個々の補助機能を表す。【選択図】図２
2012510099.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのセンサーおよび少なくとも１つのアクチュエータをそれぞれ備えた複数のハードウェアコンポーネントを有するシステム（２１０）を制御するように構成された安全制御装置（１８）のユーザープログラム（３８）を作成するための方法において、
前記複数のハードウェアコンポーネントに対して、少なくとも１つの論理入力（４０４）および少なくとも１つの論理出力（４０６）を有し、少なくとも１つの機能面ブロック（９２、１１２、１３６、１８０、１９８、３８０、４０８）をそれぞれ備えた複数のソフトウェアコンポーネント（１４６、１７４）を提供する工程であって、各機能面ブロック（９２、１１２、１３６、１８０、１９８、３８０、４０８）が互いに異なる複数の制御面の１つに割り当てられており、各制御面が前記安全制御装置（１８）の一部の機能面を表し、各機能面ブロック（９２、１１２、１３６、１８０、１９８、３８０、４０８）が複数の信号入力（３８６）および複数の信号出力（３８８）を有し、当該複数の信号入力（３８６）を介して複数の入力信号を各機能面ブロック（９２、１１２、１３６、１８０、１９８、３８０、４０８）に供給可能であるとともに、当該複数の信号出力（３８８）を介して各機能面ブロック（９２、１１２、１３６、１８０、１９８、３８０、４０８）から複数の出力信号を出力可能であり、前記出力信号が前記入力信号の関数として決定される工程と、
前記複数のソフトウェアコンポーネント（１７４）を論理的に組み合わせてコンポーネントサブプログラムを作成する工程であって、前記ソフトウェアコンポーネント（１７４）の少なくとも一部の論理入力（４０４）および少なくとも一部の論理出力（４０６）が互いに接続されている工程と、
少なくとも１つの制御面の機能面サブプログラムを作成する工程であって、前記複数のソフトウェアコンポーネント（１７４）に含まれる少なくとも１つの機能面ブロック（１８０、１９８）に対して、前記信号入力の少なくとも一部が、センサー信号が各機能面ブロック（１８０、１９８）で処理されるセンサーに割り当てられており、前記信号出力の少なくとも一部が、各機能面ブロック（１８０、１９８）で決定された出力信号により駆動されるアクチュエータに割り当てられている工程と、
前記コンポーネントサブプログラムと前記機能面サブプログラムとを組み合わせて前記ユーザープログラム（３８）を形成する工程と、
を含む方法。
【請求項２】
前記複数のソフトウェアコンポーネント（１４６）を提供する工程が、所定のソフトウェアコンポーネント群（５４）から少なくとも１つのソフトウェアコンポーネント（５６）を選択することを含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記所定の各ソフトウェアコンポーネント（５６、５８、６０、６２）が互いに異なる複数のハードウェアコンポーネント類型の１つを表し、各ハードウェアコンポーネント類型が、それぞれのハードウェアコンポーネント類型に特有で関連する各ハードウェアコンポーネントを含む機能性を有しており、前記所定の各ソフトウェアコンポーネント（５６、５８、６０、６２）が、前記所定のソフトウェアコンポーネント（５６、５８、６０、６２）を表すハードウェアコンポーネント類型に有意な制御面に割り当てられた機能面ブロック（１３６）を備えていることを特徴とする、請求項１または２に記載の方法。
【請求項４】
前記複数のソフトウェアコンポーネント（１４６）を提供する工程が、少なくとも１つの新たなソフトウェアコンポーネント（６６、６８、７０）を作成することを含むことを特徴とする、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記所定の各ソフトウェアコンポーネント（５６、５８、６０、６２）および／または前記新たに作成された各ソフトウェアコンポーネント（６６、６８、７０）が、グループコンポーネント（５８、７０、１１０）またはエレメンタリコンポーネント（５６、６０、６２、６６、６８、９０、１３４）として構成されており、グループコンポーネント（１１０）が少なくとも１つの機能面ブロック（１１２）と、エレメンタリコンポーネント（１１８）またはグループコンポーネント（１２４）として構成された少なくとも１つのソフトウェアコンポーネント（１１８、１２４）とを含み、エレメンタリコンポーネント（９０、１３４）が少なくとも１つの機能面ブロック（９２、１３６）のみを含むことを特徴とする、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記所定の各ソフトウェアコンポーネント（５６、５８、６０、６２）および／または前記新たに作成された各ソフトウェアコンポーネント（６６、６８、７０）が、修正不可能なカプセル化ソフトウェアコンポーネントであることを特徴とする、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記機能面サブプログラムが、標準制御面、安全制御面、診断面、視覚化面、駆動制御面、および冷却面という互いに異なる制御面のうちの少なくとも２つを表す機能面ブロック（１３６、１８０、１９８）を備えていることを特徴とする、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
安全制御面を表す機能面ブロック（１３６）のユーザーによる修正が不可能であることを特徴とする、請求項７に記載の方法。
【請求項９】
互いに異なる複数の制御面のそれぞれに対して機能面サブプログラムが作成され、前記個々の機能面サブプログラムの作成が別々に行われることを特徴とする、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記各機能面ブロック（３８０、４０８）が割り当てられた制御面に対するハードウェアコンポーネントの機能面特性を規定する関数プログラムが各機能面ブロック（３８０、４０８）に記憶されており、前記ハードウェアコンポーネントが各機能面ブロック（３８０、４０８）を含むソフトウェアコンポーネント（４００）に対応し、互いに異なる前記複数の制御面の少なくとも１つが前記ハードウェアコンポーネントに関連しており、これにより、前記少なくとも１つの制御面に対して規定された前記機能面特性が前記ハードウェアコンポーネントに関連していることを特徴とする、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
前記複数のソフトウェアコンポーネント（１４６）の少なくとも一部（１３２）が、複数の機能面ブロック（１１２）以外に、複数のエレメンタリコンポーネント（１１８）および／または複数のグループコンポーネント（１２４）を備えており、グループコンポーネント（１１０）が少なくとも１つの機能面ブロック（１１２，３８０）と、エレメンタリコンポーネント（９０、１３４）またはグループコンポーネント（１１０）として構成された少なくとも１つのソフトウェアコンポーネント（１１８、１２４、４００）とを含み、エレメンタリコンポーネント（９０、１３４）が少なくとも１つの機能面ブロック（９２、１３６）のみを含み、前記各機能面ブロック（１１２）が割り当てられた制御面の機能面特性を規定する関数プログラムが前記複数の各機能面ブロック（１１２）に記憶されており、互いに異なる前記複数の制御面の少なくとも１つが、前記複数のエレメンタリコンポーネント（１１８）の少なくとも一部および／または前記複数のグループコンポーネント（１２４）の少なくとも一部の相互作用に関連しており、これにより、前記少なくとも１つの制御面に対して規定された前記機能面特性が前記相互作用に関連していることを特徴とする、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記ユーザープログラム（３８）が階層構造を有し、前記提供された複数のソフトウェアコンポーネント（１４６、２１２、２１４、２１６）が最上位階層である階層（４２４）を規定し、前記提供された複数のソフトウェアコンポーネント（１４６、２１２、２１４、２１６）に属するソフトウェアコンポーネント（１３２、２１４）の１つに含まれる前記少なくとも１つのソフトウェアコンポーネント（１１８、１２４、２７４）が、前記最上位階層の下位の階層（４２６）を規定することを特徴とする、請求項１〜１１のいずれか１項に記載の方法。
【請求項１３】
前記複数のソフトウェアコンポーネント（１４６）以外に複数の機能面ブロック（１５２）が提供され、前記ソフトウェアコンポーネントの少なくとも一部および前記機能面ブロックの少なくとも一部（１５２）が組み合わされて新たなソフトウェアコンポーネント（１５８）を形成していることを特徴とする、請求項１〜１２のいずれか１項に記載の方法。
【請求項１４】
前記ユーザープログラム（３８）が複数の階層（４２４、４２６、４２８）に構造化され、そのうちの１つが選択されており、前記機能面サブプログラムの作成時に、前記選択された階層に含まれる機能面ブロックのみが考慮されることを特徴とする、請求項１〜１３のいずれか１項に記載の方法。
【請求項１５】
少なくとも１つのセンサーおよび少なくとも１つのアクチュエータをそれぞれ備えた複数のハードウェアコンポーネントを有するシステム（２１０）を制御するように構成された安全制御装置（１８）のユーザープログラム（３８）を作成するための装置において、
前記複数のハードウェアコンポーネントに対して、少なくとも１つの論理入力（４０４）および少なくとも１つの論理出力（４０６）を有し、少なくとも１つの機能面ブロック（９２、１１２、１３６、１８０、１９８、４０８）をそれぞれ備えた複数のソフトウェアコンポーネント（１４６、１７４）を提供する第１のユニット（１２、１４、１６、５０）であって、各機能面ブロック（９２、１１２、１３６、１８０、１９８、４０８）が互いに異なる複数の制御面の１つに割り当てられており、各制御面が前記安全制御装置（１８）の一部の機能面を表し、各機能面ブロック（９２、１１２、１３６、１８０、１９８、４０８）が複数の信号入力（３８６）および複数の信号出力（３８８）を有し、当該複数の信号入力（３８６）を介して複数の入力信号を各機能面ブロック（９２、１１２、１３６、１８０、１９８、４０８）に供給可能であるとともに、当該複数の信号出力（３８８）を介して各機能面ブロック（９２、１１２、１３６、１８０、１９８、４０８）から複数の出力信号を出力可能であり、前記複数の出力信号が少なくとも前記複数の入力信号に基づいて生成される第１ユニットと、
前記複数のソフトウェアコンポーネント（１７４）を論理的に組み合わせてコンポーネントサブプログラムを作成する第２のユニット（１７２）であって、前記ソフトウェアコンポーネント（１７４）の少なくとも一部の論理入力（４０４）および少なくとも一部の論理出力（４０６）が当該目的のために互いに接続されている第２ユニットと、
少なくとも１つの制御面の機能面サブプログラムを作成する第３のユニット（１７８、１９６）であって、前記複数のソフトウェアコンポーネント（１７４）に含まれる機能面ブロック（１８０、１９８）の少なくとも一部に対して、前記信号入力の少なくとも一部が、センサー信号が各機能面ブロック（１８０、１９８）で処理されるセンサーに割り当てられており、前記信号出力の少なくとも一部が、各機能面ブロック（１８０、１９８）で決定された出力信号により駆動されるアクチュエータに割り当てられている第３ユニットと、
前記コンポーネントサブプログラムと前記機能面サブプログラムとを組み合わせて前記ユーザープログラムを形成する第４のユニット（４２、４６）と、
を備えたことを特徴とする装置。
【請求項１６】
コンピュータ（１２）上で実行されるコンピュータプログラムであって、請求項１〜１４のいずれか１項に記載の方法を実行するプログラムコード手段を備えたコンピュータプログラム（１６）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のハードウェアコンポーネントを有するシステムを制御するように構成された安全制御装置のユーザープログラムを作成するための方法および装置であって、複数の各ハードウェアコンポーネントが少なくとも１つのセンサーおよび少なくとも１つのアクチュエータを備える方法および装置に関する。
【背景技術】
【０００２】
本発明の意味する安全制御装置は、センサーにより供給された入力信号を受信して、論理的組み合わせおよび場合によっては別の信号処理工程またはデータ処理工程により出力信号を生成する装置である。出力信号はアクチュエータに供給でき、これにより、制御システム中で入力信号の関数としての動作または反応を起こすことができる。
これに関連して、安全制御装置は、たとえば欧州規格ＥＮ９５４−１またはこれに相当するＩＥＣ６１５０８もしくはＥＮ  ＩＳＯ１３８４９−１等の規格に規定された所定の安全規格を遵守する必要がある。また、安全制御装置は、一般的に標準適用と称する場合の制御とは対照的に、欧州規格ＥＮ９５４−１のカテゴリ３または４に関して少なくとも単一の障害安全性を保証するか、または指定規格ＩＥＣ６１５０８にしたがって安全度水準（SIL: Safety Integrity Level)２を少なくとも有するものとする。
【０００３】
このような安全制御装置は、非常停止用ボタン、両手操作装置、防護扉、またはライトカーテンを監視する機械の安全性の分野に適用するのが好ましい。前述のようなセンサーは、作動中に人間または有形財に対して危険を及ぼす機械またはシステムの保護に使用する。防護扉が開かれたり、または非常停止用ボタンが操作されたりすると、個別の信号が生成され、安全制御装置が入力信号として受信する。安全制御装置は、これに応答して、アクチュエータの作動により危険を及ぼしている機械またはシステムの部位を遮断する。
【０００４】
プログラム可能な安全制御装置であれば、ユーザーは、ユーザープログラムと呼ばれるソフトウェアを用いることにより、必要に応じて論理演算および場合によっては別の信号処理工程またはデータ処理工程を個別に定義することができる。その結果、複数の安全切り替え装置間の規定の配線により論理演算が生成された初期のソリューションに比べて、柔軟性は高くなる。安全制御装置のプログラミング方法の一例は、特許文献１に記載がある。
【０００５】
安全制御装置のプログラミングに関わる問題点としては、ユーザープログラムが非常に複雑化し、複数の安全装置を有する大規模な機械システムの監視が不便になる可能性がある。セメント工場等の大規模なシステムは、数千個のセンサーを備えている場合がある。作成するユーザープログラム自体は、安全を最重視する要素である。これは、ユーザープログラムに障害があると、監視対象の機械またはシステムに制御不能な状況ひいては危険な状態が引き起こされる可能性があるためである。
【０００６】
プログラミング中の人為的エラーの結果として深刻な結果を伴う障害がユーザープログラムに発生する危険性を低減するため、特許文献１に係る方法では、ユーザーに複数の制限を設けている。特に、ユーザーは、所定の認定済みプログラムモジュールにのみアクセス可能であるとともに、個別に組み合わせることができる。ただし、特許文献１の方法によれば、ユーザーは、個々のプログラムモジュールの修正を行うことができず、また、独立したプログラムモジュールを一切作成することができない。その結果、特許文献１の方法は、比較的小中規模の用途の安全制御装置に制限されており、非常に大規模なシステムに対しては十分な柔軟性を提供できない。
【０００７】
さらに、従来技術に係るシステムでは、都合の悪いことに、大幅に制限解除されたプログラム可能な標準の制御装置に安全制御装置が使用されていることが多い。すべての標準タスクおよび安全タスクは、共通の制御装置で処理するのが望ましい。ただし、このようにすると、安全関連のプログラムがさらに複雑化すると考えられる。
国際規格ＩＥＣ−ＥＮ６１１３１では、一部に図形エディタを使用して産業用制御装置のプログラミングを行う様々な方法を規定している。ここで、図形要素は、制御対象の機械またはシステムの機能性にしたがって、機能ブロックと称する形態で提供される。これに関連して、機械またはシステムに含まれる如何なるハードウェアコンポーネントも、関連するハードウェアコンポーネントの機能性を表す図形要素に対応付け可能である。また、図形要素は、論理演算によって互いに接続可能である。このような方法および装置における複雑性を低減するため、階層形成過程を利用することができる。すなわち、図形要素は、異なる階層にしたがって、制御対象の機械またはシステムの構造に割り当て可能である。そして、ユーザープログラムの作成に当たっては、１階層ずつ進めることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】独国特許出願公開第１０１０８９６２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前記周知の方法および装置は、安全制御装置のユーザープログラムの作成に際して、明瞭性の向上に寄与可能である。ただし、これにしても、特に安全関連および非安全関連のセンサーおよびアクチュエータを複数有する非常に複雑な用途に関しては、未だ最適とは言えない。
そこで、本発明は、安全関連の機能を有するユーザープログラムの作成過程の複雑性をさらに低減可能であるとともに、非常に複雑な用途向けの安全制御装置のプログラミングを簡単、迅速、かつ優れた費用対効果で行えるように明瞭性が向上された、方法および装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この目的を達成するため、少なくとも１つのセンサーおよび少なくとも１つのアクチュエータをそれぞれ備えた複数のハードウェアコンポーネントを有するシステムを制御するように構成された安全制御装置のユーザープログラムを作成するための方法は、前記複数のハードウェアコンポーネントに対して、少なくとも１つの論理入力および少なくとも１つの論理出力を有し、少なくとも１つの機能面ブロックをそれぞれ備えた複数のソフトウェアコンポーネントを提供する工程であって、各機能面ブロックが互いに異なる複数の制御面の１つに割り当てられており、各前記制御面が安全制御装置の一部の機能面を表し、各前記機能面ブロックが複数の信号入力および複数の信号出力を有し、当該複数の信号入力を介して複数の入力信号を各機能面ブロックに供給可能であるとともに、当該複数の信号出力を介して前記各機能面ブロックから複数の出力信号を出力可能であり、前記出力信号が入力信号の関数として決定される工程と、前記複数のソフトウェアコンポーネントを論理的に組み合わせてコンポーネントサブプログラムを作成する工程であって、前記ソフトウェアコンポーネントの少なくとも一部の論理入力および少なくとも一部の論理出力が互いに接続されている工程と、少なくとも１つの制御面の機能面サブプログラムを作成する工程であって、前記複数のソフトウェアコンポーネントに含まれる少なくとも１つの機能面ブロックに対して、前記信号入力の少なくとも一部が、センサー信号が各機能面ブロックで処理されるセンサーに割り当てられており、前記信号出力の少なくとも一部が、各機能面ブロックで決定された出力信号により駆動されるアクチュエータに割り当てられている工程と、前記コンポーネントサブプログラムと前記機能面サブプログラムとを組み合わせて前記ユーザープログラムを形成する工程と、を含む。
【００１１】
この目的を達成するため、冒頭に記載した種類の装置は、前記複数のハードウェアコンポーネントに対して、少なくとも１つの論理入力および少なくとも１つの論理出力を有し、少なくとも１つの機能面ブロックをそれぞれ備えた複数のソフトウェアコンポーネントを提供する第１のユニットであって、各前記機能面ブロックが互いに異なる複数の制御面の１つに割り当てられており、各前記制御面が前記安全制御装置の一部の機能面を表し、各前記機能面ブロックが複数の信号入力および複数の信号出力を有し、当該複数の信号入力を介して複数の入力信号を各機能面ブロックに供給可能であるとともに、当該複数の信号出力を介して各機能面ブロックから複数の出力信号を出力可能であり、前記複数の出力信号が少なくとも前記複数の入力信号に基づいて生成される第１ユニットと、前記複数のソフトウェアコンポーネントを論理的に組み合わせてコンポーネントサブプログラムを作成する第２のユニットであって、前記ソフトウェアコンポーネントの少なくとも一部の論理入力および少なくとも一部の論理出力が当該目的のために互いに接続されている第２ユニットと、少なくとも１つの制御面の機能面サブプログラムを作成する第３のユニットであって、前記複数のソフトウェアコンポーネントに含まれる機能面ブロックの少なくとも一部に対して、前記各信号入力の少なくとも一部が、センサー信号が各機能面ブロックで処理されるセンサーに割り当てられており、前記信号出力の少なくとも一部が、各機能面ブロックで決定された出力信号により駆動されるアクチュエータに割り当てられている第３ユニットと、前記コンポーネントサブプログラムと前記機能面サブプログラムとを組み合わせて前記ユーザープログラムを形成する第４のユニットと、を備える。
【００１２】
前記本発明の方法および装置は、ユーザープログラムの作成時に、機能面ブロックを導入して考慮に入れるという考えに基づいている。各機能面ブロックは、互いに異なる複数の制御面の１つを表し、各前記制御面は、安全制御装置の個々の補助機能を表す。この手法によれば、ソフトウェアコンポーネントに加えて、安全制御装置のユーザープログラムを作成する際の複雑性を低減可能な別の構造化ツールを利用することができる。以下において、ユーザープログラムという用語の使用またはユーザープログラムの作成に関する記述がある場合は、特定のワークピースの生産ラインに用いる特定の制御プログラム等、特定制御用の制御プログラムを意味する。
【００１３】
以上から、ユーザープログラムの作成は、制御対象のシステムの全体機能性の実装に対応する。この全体機能性は、たとえば実際の生産過程の定義、安全機器によるシステムの保護、診断情報の生成等の様々な部分機能面の組み合わせである。新たに機能面ブロックを導入することにより、複雑なユーザープログラムの作成を個々の部分機能面に分割可能となる。すなわち、前記本発明の方法および装置は、発生するプログラミングタスクのマトリクス状構成を備えており、一方では特定のハードウェアコンポーネントにそれぞれ割り当てられたソフトウェアコンポーネントに、他方では部分機能面に応じたグループ化プログラミングを可能とする機能面ブロックに分割される。前記プログラミングは、複数の実施形態に基づいて以下に説明するように、個々のハードウェアコンポーネントから独立しているのが好ましい。
【００１４】
部分機能面の選択および対応する機能面ブロックへの集中の結果、全体機能性および作成するユーザープログラムに対する異なる複数の視点から１つを採用することができる。ユーザーは、個々の機能面に対するサブプログラムを作成することができる。これらは、後々組み合わせることにより、ユーザープログラムが形成される。これに関連して、機能面サブプログラムは、機能面ブロックが含まれるソフトウェアコンポーネントの組み合わせを表すコンポーネントサブプログラムと併せて使用される。
【００１５】
異なる制御面がそれぞれ安全制御装置の独立した部分機能面を表すという事実から、機能面サブプログラムは、独立して作成することができる。そして、ユーザープログラムの作成は、複数の独立した機能面サブプログラムを作成することにより、独立した部分機能面に応じて別々に行うことができる。
この新たな手法は、制御対象のシステムに対して実装する全体機能性の垂直分割に対応する。独立した部分機能面は、制御対象のシステムを構造化可能な階層のすべてで生じるのが好ましい。個々の部分機能面を考慮することによって、実装する全体機能性を垂直に分割することが可能となる。
【００１６】
コンポーネントおよび機能面の新たな組み合わせにより、全体機能性を再分割するための２つの独立した形態を利用することができる。これらにより、複雑性の大幅な低減ひいては明瞭性の向上が可能となる。
以上により、前記目的は完全に達成される。
本発明の好適な改良形態においては、前記複数のソフトウェアコンポーネントが前記複数のハードウェアコンポーネントに対応している。
【００１７】
この形態によれば、制御対象のシステムに含まれる各ハードウェアコンポーネントに対して、それぞれの機能性を表すソフトウェアコンポーネントが提供される。このため、ユーザープログラム作成中の明瞭性ひいてはフェイルセーフ性の向上に寄与する。
本発明の別の改良形態においては、前記複数のソフトウェアコンポーネントを提供する工程が、所定のソフトウェアコンポーネント群から少なくとも１つのソフトウェアコンポーネントを選択する工程を含む。
【００１８】
本発明の前記改良形態には、ユーザープログラムにおいて一様なソフトウェアコンポーネントが使用されるという利点がある。これにより、対応する選択を行うと、制御対象のシステムに含まれる同一のハードウェアコンポーネントに対して、互いに同一のソフトウェアコンポーネントが提供される。したがって、予め規定すなわち作成されたソフトウェアコンポーネントを使用すると、技術的プログラムの挙動が互いに異なるソフトウェアコンポーネントによって同一のハードウェアコンポーネントが表されることのないようにすることができる。このことは、個々のユーザープログラムだけでなく、前記所定のソフトウェアコンポーネントを含む同一のデータベースを用いてコンピュータプログラムにより作成された場合であれば、複数のユーザープログラムにも当てはまる。概して、この形態によれば、明瞭性およびフェイルセーフ性が向上する。
【００１９】
所定のソフトウェアコンポーネントを使用することには、さらに別の利点がある。上述の通り、安全制御装置の使用前には、関連する所轄官庁の特別承認を得る必要がある。これは、ユーザープログラムにも当てはまる。所定のソフトウェアコンポーネントを使用する場合には、所轄官庁から一度だけ承認を得れば十分である。この承認は一般的に、ユーザープログラムの作成に使用するコンピュータプログラムの承認と併せて行われる。そして、ユーザープログラム作成中の相応する安全形態による所定のソフトウェアコンポーネント群からの選択によってソフトウェアコンポーネントが提供されると、これらのソフトウェアコンポーネントを排他的に含むユーザープログラムの部分については、もはや承認を得る必要がない。その結果、ユーザープログラムの作成効率が高くなる。
【００２０】
上述の形態のさらに別の改良形態においては、前記所定の各ソフトウェアコンポーネントが互いに異なる複数のハードウェアコンポーネント類型の１つを表し、各前記ハードウェアコンポーネント類型が、それぞれのハードウェアコンポーネント類型に特有で関連する各ハードウェアコンポーネントを含む機能性を有しており、前記所定の各ソフトウェアコンポーネントが、前記所定のソフトウェアコンポーネントを表すハードウェアコンポーネント類型に有意な制御面に割り当てられた機能面ブロックを備えている。
【００２１】
この形態には、所定のソフトウェアコンポーネントを表すハードウェアコンポーネント類型に有意な関連機能面すべてが１つに組み合わされて所定のソフトウェアコンポーネントになるという利点がある。安全制御装置の部分機能面に関して、ハードウェアコンポーネント類型は、対応するソフトウェアコンポーネントによって完全に記述される。したがって、ユーザープログラムのプログラマは、制御対象のシステムのハードウェアコンポーネントに対して１つのソフトウェアコンポーネントを提供すれば十分である。具体的には、前記ハードウェアコンポーネントが属するハードウェアコンポーネント類型を表す所定のソフトウェアコンポーネントを選択することによって、前記ソフトウェアコンポーネントを提供すれば十分である。したがって、プログラマは、各ハードウェアコンポーネントに対してソフトウェアコンポーネントを１つだけ選択すればよく、複数のソフトウェアコンポーネントまたは付加的な機能面ブロックが利用可能である必要はない。
【００２２】
ハードウェアコンポーネント類型の機能性は、機械的、電気的、または電気機械的な機能性であってもよい。これらの機能性は、複数の識別特性の基礎を成すものである。これにより、ハードウェアコンポーネント類型としては、たとえば空気圧で具現化されるモーターまたは駆動シリンダ等が考えられる。エレメンタリコンポーネントに加えて、ハードウェアコンポーネント類型は、プロセスステーション、テストステーション、または穴あけモジュール等の複雑なアセンブリを表すことも考えられる。ただし、これらのエレメンタリコンポーネントおよび複雑なアセンブリは、上述のものに限定されない。
【００２３】
プログラミング技術に関して、所定のソフトウェアコンポーネントは、ハードウェアコンポーネント類型を表すプレースホルダーに対応する。特定のハードウェアコンポーネント類型に属するハードウェアコンポーネントをシステムが備えている場合は、ユーザープログラムの作成中、対応する所定のソフトウェアコンポーネントを選択することによってソフトウェアコンポーネントが提供される。この際、提供されるソフトウェアコンポーネントは、システムに存在する実際のハードウェアコンポーネントに対応する。この手順は、オブジェクト指向プログラミングの基礎を成す手順と対比可能である。オブジェクト指向プログラミングの規則をこの新しい方法に適用する場合、所定のソフトウェアコンポーネントは、クラスすなわち同じ種類のすべてのオブジェクト全体に対応する。そして、提供されるソフトウェアコンポーネントは、エンティティすなわち特定クラスのオブジェクトに対応する。
【００２４】
本発明の別の改良形態においては、選択された所定のソフトウェアコンポーネントの複製が作成され、ソフトウェアコンポーネントとして提供される。
この形態には、作成するユーザープログラムの様々な場所で所定のソフトウェアコンポーネントを使用できるという利点がある。したがって、このようなソフトウェアコンポーネントは、多様に使用可能であるとともに、再利用可能である。これに関連して、所定のソフトウェアコンポーネントのすべての複製、すなわち同じ所定のソフトウェアコンポーネントに基づいて提供されたすべてのソフトウェアコンポーネントは、前記所定のソフトウェアコンポーネントによって規定された同じ特性を有する。そして、この提供されたソフトウェアコンポーネントのみがパラメータ化可能である。すなわち、これらソフトウェアコンポーネントの機能性は、前記所定のソフトウェアコンポーネントによって基本的には固定されているが、特定の限度内で容易に修正可能である。これにより、制御対象のシステムに存在する同一のハードウェアコンポーネントは、基本的に同一の機能性を有するソフトウェアコンポーネントによって表される。概して、ユーザープログラムは、効率的に作成することができる。提供された各ソフトウェアコンポーネントが所定のソフトウェアコンポーネントの複製に対応するという事実から、制御対象のシステムに存在する同一のハードウェアコンポーネントは、同一のソフトウェアコンポーネントによって表される。その結果、フェイルセーフ性が向上する。
【００２５】
オブジェクト指向プログラミングの規則をこの新しい方法に適用する場合、複製の作成は、所定のソフトウェアインスタンス化コンポーネントに対応する。
本発明の別の改良形態においては、前記複数のソフトウェアコンポーネントを提供する工程が、少なくとも１つの新たなソフトウェアコンポーネントを作成することを含む。
この形態には、新たに必要なソフトウェアコンポーネントを必要に応じて、すなわち制御対象のシステムの状態に応じて生成することができるという利点がある。その結果、たとえばコンピュータプログラムに存在するユーザープログラム作成用の所定のソフトウェアコンポーネントが制御対象のシステムの全体機能性をモデル化するのに十分でない場合は、高い多様性が保証される。
【００２６】
本発明の別の改良形態においては、前記所定の各ソフトウェアコンポーネントおよび／または前記新たに作成された各ソフトウェアコンポーネントが、グループコンポーネントまたはエレメンタリコンポーネントとして構成されており、グループコンポーネントが少なくとも１つの機能面ブロックと、エレメンタリコンポーネントまたはグループコンポーネントとして構成された少なくとも１つのソフトウェアコンポーネントとを含み、エレメンタリコンポーネントが少なくとも１つの機能面ブロックのみを含む。
【００２７】
この形態は、高い柔軟性を提供する。その結果、この本発明の方法を実行可能なコンピュータプログラムの提供者は、総合データベースにおける標準的なエレメンタリコンポーネントおよび／または標準的なグループコンポーネントに対して、複数の所定ソフトウェアコンポーネントを利用できる。これらのコンポーネントは通常、所轄官庁が承認済みであるため、フェイルセーフ性が向上する。
【００２８】
新たに作成されたソフトウェアコンポーネントにより、制御対象のシステムで発生した状態に対して柔軟に反応することが可能となる。その結果、対応するソフトウェアコンポーネントがデータベースに未記憶のハードウェアコンポーネントに対して、対応するソフトウェアコンポーネントの提供が可能となる。これは、厳密にはハードウェアコンポーネントの複雑性と無関係に行うことができる。また、単純なハードウェアコンポーネントの場合は、エレメンタリコンポーネントとして具現化されたソフトウェアコンポーネントが提供可能であり、複雑なハードウェアコンポーネントの場合は、グループコンポーネントとして具現化されたソフトウェアコンポーネントが提供可能である。
【００２９】
また、ユーザープログラムの作成中、制御対象のシステムに存在する複数のハードウェアコンポーネントに対して複数のソフトウェアコンポーネントが必要なため、ユーザープログラムの作成が不便になっているとプログラマが判断した場合は、複数のハードウェアコンポーネントが組み合わされ、グループコンポーネントとして具現化されるソフトウェアコンポーネントが形成される。このモデル形成は、複雑性の低減ひいては明瞭性の向上をもたらす。また概して、フェイルセーフ性が向上する。
【００３０】
新たに作成されるソフトウェアコンポーネントの構造には、高い柔軟性が付与されるため、再利用可能なソフトウェアコンポーネントの作成が可能となる。ソフトウェアコンポーネントがグループコンポーネントとして具現化可能であるという事実から、階層構成または階層構造のユーザープログラムを提供することができる。
複数の論理入力および複数の論理出力を有する新たなエレメンタリコンポーネントの作成には、前記新たなエレメンタリコンポーネントが対応するハードウェアコンポーネントに有意な制御面に割り当てられた複数の機能面ブロックを提供する工程であって、前記複数の各機能面ブロックが、複数の信号入力に加えて複数の論理入力および／または複数のパラメータ化入力、ならびに複数の信号出力に加えて複数の論理出力および／または複数のパラメータ化出力を有し、異なる機能面ブロックでそれぞれ決定された複数の論理変数または複数の中間変数がいずれの場合にも、前記複数の論理入力を介して前記複数の機能面ブロックに供給可能であるとともに、複数のパラメータが前記複数のパラメータ化入力を介して供給可能であり、前記複数の機能面ブロックが、前記複数の論理出力を介して、別の機能面ブロックから要求された複数の論理変数または複数の中間変数を出力可能であるか、または前記複数のパラメータ化出力を介して、複数のパラメータを出力可能である工程と、前記複数の機能面ブロックにおける処理に必要かつ関連する入力を介してそれぞれ供給される論理変数、および／または中間変数、および／またはパラメータ、および／またはセンサー信号を規定する工程と、前記複数の機能面ブロックにおいて決定されるとともに関連する出力を介してそれぞれ出力される論理変数、および／または中間変数、および／またはパラメータ、および／または出力信号を規定する工程と、前記複数の機能面ブロックの論理入力の少なくとも一部および論理出力の少なくとも一部を相互、ならびに／または新たなエレメンタリコンポーネントの論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部と接続する工程と、前記複数の機能面ブロックの少なくとも一部に対して関数プログラムを作成する工程であって、各関数プログラムが、各機能面ブロックが割り当てられた制御面に対するハードウェアコンポーネントの機能面特性を規定する工程と、を含むと都合が良い。
【００３１】
上述の各工程に係る新たなエレメンタリコンポーネントの作成には、プログラミング技術の観点から、この新たに作成されるエレメンタリコンポーネントが対応するハードウェアコンポーネントの機能性を完全に記述またはモデル化するためのすべての情報が、前記新たなエレメンタリコンポーネントに備わっているという利点がある。
複数の機能面ブロックおよびその論理的組み合わせを提供することにより、ハードウェアコンポーネントに有意な安全制御装置のすべての部分機能面を組み合わせて、新たなエレメンタリコンポーネントとすることができる。また、関連する関数プログラムを作成することにより、前記ハードウェアコンポーネントに特有の機能性を規定することができる。さらに、変数および／または信号の規定によって、ハードウェアコンポーネントの機能性に応じて新たなエレメンタリコンポーネントに必要となるすべての変数および／または信号が得られるとともに、新たなエレメンタリコンポーネントから出力されるすべての変数および／または信号が決定される。したがって、制御対象のシステムに含まれるハードウェアコンポーネントを捕捉するには、作成するユーザープログラムにおいて、新たに作成されたエレメンタリコンポーネントを提供すれば十分である。
【００３２】
上述の形態のさらに別の改良形態においては、新たに作成されたエレメンタリコンポーネントをカプセル化状態に変更する工程をさらに含み、この状態では、新たに作成されたエレメンタリコンポーネントに対して修正を一切加えることができない。
新たに作成されたエレメンタリコンポーネントのカプセル化には、そのコンポーネント特性を隠す効果がある。これには、新たに作成されたエレメンタリコンポーネントの内部データ構造に対する直接アクセスを禁止する意味がある。新たに作成されたエレメンタリコンポーネントへのアクセスは、規定のインターフェース、具体的にはその入力および／または出力を介してのみ可能である。
【００３３】
コンポーネント特性は、提供された機能面ブロック、それらに記憶された関数プログラム、機能面ブロックの論理的組み合わせ、ならびに、新たに作成されたエレメンタリコンポーネントに対して供給および／または出力が行われる規定の変数および／または信号によって規定される。新たに作成されたエレメンタリコンポーネントをカプセル化すると、ユーザープログラムにおける要求ごとに、未修正の形態すなわち特性を維持した状態でのみ新たに作成されたエレメンタリコンポーネントを使用することができるため、フェイルセーフ性が向上する。通常は、新たなカプセル化エレメンタリコンポーネントを誰が作成した場合であっても、後で修正を行うことができる。ただし、ユーザープログラムの作成中のみ新たなカプセル化エレメンタリコンポーネントを使用するユーザーは、このエレメンタリコンポーネントに対して修正を一切加えることができない。
【００３４】
複数の論理入力および複数の論理出力を有する新たなグループコンポーネントの作成には、複数のエレメンタリコンポーネントおよび／または複数のグループコンポーネントを提供する工程であって、前記複数の各エレメンタリコンポーネントおよび／または前記複数の各グループコンポーネントが複数の論理入力および複数の論理出力を有する工程と、前記新たなグループコンポーネントが対応するハードウェアコンポーネントに有意な制御面に割り当てられた複数の機能面ブロックを提供する工程であって、前記複数の各機能面ブロックが、複数の信号入力に加えて複数の論理入力および／または複数のパラメータ化入力、ならびに複数の信号出力に加えて複数の論理出力および／または複数のパラメータ化出力を有し、異なる機能面ブロックでそれぞれ決定された複数の論理変数または複数の中間変数がいずれの場合にも、前記複数の論理入力を介して前記複数の機能面ブロックに供給可能であるとともに、複数のパラメータが前記複数のパラメータ化入力を介して供給可能であり、前記複数の機能面ブロックが、前記複数の論理出力を介して、別の機能面ブロックで使用する複数の論理変数または複数の中間変数を出力可能であるとともに、前記複数のパラメータ化出力を介して、複数のパラメータを出力可能である工程と、前記複数の機能面ブロックにおける処理に必要かつ関連する入力を介してそれぞれ供給される論理変数、および／または中間変数、および／またはパラメータ、および／またはセンサー信号を規定する工程と、前記複数の機能面ブロックにおいて決定されるとともに関連する出力を介してそれぞれ出力される論理変数、および／または中間変数、および／またはパラメータ、および／または出力信号を規定する工程と、前記複数の機能面ブロックの論理入力の少なくとも一部および論理出力の少なくとも一部を相互、前記複数のエレメンタリコンポーネントおよび／もしくは前記複数のグループコンポーネントの論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部、ならびに／または新たなグループコンポーネントの論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部と接続する工程と、前記複数のエレメンタリコンポーネントおよび／もしくは前記複数のグループコンポーネントの論理入力の少なくとも一部および論理出力の少なくとも一部を相互、ならびに／または新たなグループコンポーネントの論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部と接続する工程と、前記複数の機能面ブロックの少なくとも一部に対して関数プログラムを作成する工程であって、各関数プログラムが、各機能面ブロックが割り当てられた制御面に対するハードウェアコンポーネントの機能面特性を規定する工程と、を含むと都合が良い。
【００３５】
上述の各工程に係る新たなグループコンポーネントの作成には、プログラミング技術の観点から、この新たに作成されるグループコンポーネントが対応するハードウェアコンポーネントの機能性を完全に記述またはモデル化するためのすべての情報が、前記新たなグループコンポーネントに備わっているという利点がある。
複数の機能面ブロックおよびその論理的組み合わせを提供することにより、ハードウェアコンポーネントに有意な安全制御装置のすべての部分機能面を組み合わせて、新たなグループコンポーネントとすることができる。複数のエレメンタリコンポーネントおよび／または複数のグループコンポーネントならびにその論理的組み合わせを提供することにより、ハードウェアコンポーネントに組み合わされたすべてのコンポーネントを考慮することができる。また、関連する関数プログラムを作成することにより、前記ハードウェアコンポーネントに特有の機能性を規定することができる。さらに、変数および／または信号の規定によって、ハードウェアコンポーネントの機能性に応じて新たなグループコンポーネントに必要となるすべての変数および／または信号が得られるとともに、新たなグループコンポーネントから出力されるすべての変数および／または信号が決定される。したがって、制御対象のシステムに含まれるハードウェアコンポーネントを捕捉するには、作成するユーザープログラムにおいて、新たに作成されたグループコンポーネントを提供すれば十分である。
【００３６】
グループコンポーネントの場合、記憶された複数の機能性のうちの１つが機能性パラメータによって有効化または選択可能であると都合が良い。これらの機能性は、グループコンポーネントに含まれるソフトウェアコンポーネントに記憶され、前記ソフトウェアコンポーネントの機能性を規定するのが好ましい。前記各機能性は、規定の機能性パラメータ値に割り当てられている。したがって、グループコンポーネントの作成時に、この機能性パラメータ値を規定することによって、記憶された機能性のうちの１つを有効化または選択可能であることが好ましい。この一例として、非常停止用ボタンを表すソフトウェアコンポーネントが挙げられる。非常停止用ボタンは、たとえば肯定応答入力を伴う場合または伴わない場合等、様々な実施形態ひいては機能性において利用可能である。そして、グループコンポーネントの作成時には、対応する機能性パラメータ値を規定することにより、ハードウェアコンポーネントに組み込まれた非常停止用ボタンを表すソフトウェアコンポーネントに対して、肯定応答入力をモデル化する第１の機能性を実際の状態に応じて有効化するか否か、あるいは、肯定応答入力のマッピングがなされていない第２の機能性を有効化するか否かを規定することができる。以上、非常停止用ボタンの具体例で示した通り、この形態には、ハードウェア機器によって実装される各非常停止用ボタンに対し、独立して割り当てられたソフトウェアコンポーネントを予め規定する必要がないという利点がある。その代わり、ハードウェア機器の観点から個別に構成された複数の非常停止用ボタンを表し、機能性パラメータ値の規定によりハードウェア機器の状態に適応可能な１つのソフトウェアコンポーネントを予め規定すれば十分である。以上から、機能性パラメータを備えたソフトウェアコンポーネントは、ハードウェアコンポーネント類型を表す。このことは、ユーザープログラム作成時の明瞭性の大幅な向上に寄与し、フェイルセーフ性が向上する。機能性パラメータ値は、標準制御面または安全制御面に関連する機能面ブロックに記憶するのが好ましい。
【００３７】
記憶された機能性は、ソフトウェアコンポーネントのみと関連する上述の好適な実施形態のほか、グループコンポーネント全体と関連することにより、前記グループコンポーネントに含まれる複数のソフトウェアコンポーネントの各機能性に影響を及ぼすことも考えられる。また、上述の好適な構成に加えて、機能性パラメータ値がグループコンポーネントの作成中に規定され、機能面サブプログラムが作成された場合にのみ規定されることも考えられる。さらには、たとえば独立した非常停止用ボタンを表すソフトウェアコンポーネント等の機能性パラメータがエレメンタリコンポーネントに備わっていることも考えられる。
【００３８】
上述の形態のさらに別の改良形態においては、新たに作成されたグループコンポーネントをカプセル化状態に変更する工程をさらに含み、この状態では、新たに作成されたグループコンポーネントに対して修正を一切加えることができない。
カプセル化状態に変更された新規作成エレメンタリコンポーネントに関して上掲した利点は、カプセル化状態に変更された新規作成グループコンポーネントにも同様に当てはまる。新たに作成されたグループコンポーネントのコンポーネント特性は、提供された機能面ブロック、それらに記憶された関数プログラム、機能面ブロックの論理的組み合わせ、提供されたエレメンタリコンポーネントおよび／またはグループコンポーネントならびにその論理的組み合わせ、ならびに、新たに作成されたグループコンポーネントに対して供給および／または出力が行われる規定の変数および／または信号によって規定される。したがって、新たに作成されたグループコンポーネントのコンポーネント特性は、エレメンタリコンポーネントおよび／またはそれに含まれるグループコンポーネントのコンポーネント特性を含む。
【００３９】
本発明の別の改良形態においては、新たに作成されたソフトウェアコンポーネントの複製が作成され、ソフトウェアコンポーネントとして提供される。
選択された所定のソフトウェアコンポーネントの複製の作成に関して上掲した利点は、複製を作成する新規作成ソフトウェアコンポーネントにも同様に当てはまる。
本発明の別の改良形態においては、前記所定の各ソフトウェアコンポーネントおよび／または前記新たに作成された各ソフトウェアコンポーネントが、修正不可能なカプセル化ソフトウェアコンポーネントである。
【００４０】
新たに作成されたソフトウェアコンポーネントのカプセル化により得られる利点については、新たに作成されたエレメンタリコンポーネントおよび新たに作成されたグループコンポーネントに関連して上掲した記述内容を参照することができる。これらの利点は、所定のソフトウェアコンポーネントにも同様に当てはまる。また、それらのコンポーネント特性も隠れたままである。所定のソフトウェアコンポーネントにおいては通常、カプセル化ソフトウェアコンポーネントに対して、この本発明の方法を実行可能なコンピュータプログラムのユーザーまたはユーザープログラムを作成するプログラマが、修正を一切加えることができない。これに対して、コンピュータプログラムの製造者側では、この所定のソフトウェアコンポーネントに変更を加えることができる。ユーザープログラムには、任意の数のカプセル化ソフトウェアコンポーネントを使用することができる。また、前記コンポーネントの複製は、要望に応じて複数作成および提供可能である。
【００４１】
別の改良形態においては、前記カプセル化ソフトウェアコンポーネントを処理モードに変更可能であり、この処理モードにおいては、前記カプセル化ソフトウェアコンポーネントに修正を加えることができる。
前記処理モードにおいては、カプセル化ソフトウェアコンポーネントを処理可能であるため、基本的な修正も加えることができる。これらの修正は、当該所定のソフトウェアコンポーネントに関して作成され、ユーザープログラムのソフトウェアコンポーネントとして提供されているすべての複製において考慮される。また、これらの修正は、パラメータ値を予め規定することによってソフトウェアコンポーネントに加えることができる修正に勝るものである。これらの修正の意図は、たとえばソフトウェアコンポーネントの機能性を制御タスクに適応可能とすることである。
【００４２】
上述の形態には、以下のような利点がある。たとえば、所定のソフトウェアコンポーネントが対応するハードウェアコンポーネントに対して、製造者側にて製造中に修正が加えられたことにより、ユーザープログラムの作成中、所定のソフトウェアコンポーネントが当該ハードウェアコンポーネントの機能性を完全には含まないと判定された場合は、前記機能性が完全に含まれるように、前記所定のソフトウェアコンポーネントを処理することができる。この形態は、所定のソフトウェアコンポーネントを用いて新たなソフトウェアコンポーネントを作成する際にも使用可能である。この目的のため、前記所定のソフトウェアコンポーネントは、処理状態に変更され、少なくともある程度までは修正される。これにより、ハードウェアコンポーネントの特性を包括的に記述していない所定のソフトウェアコンポーネントを修正して、新たに生成されるソフトウェアコンポーネントがこれらの特性を包括的に記述したものとなるようにすることが可能である。これには、既に存在する所定のソフトウェアコンポーネントを利用するため、新たなソフトウェアコンポーネントの作成に要する時間を短縮することができる。概して、上述の改良形態によれば、ユーザープログラムの作成に際して、最大限の柔軟性が付与される。
【００４３】
上述の形態のさらに別の改良形態においては、割り当てられた機能面ブロックにそれぞれ記憶された関数プログラムが、少なくとも一部の制御面に対して、処理モードに修整可能である。
この形態によれば、変更後の状態に対して、既存のソフトウェアコンポーネントの機能性を容易に適応可能である。このため、ユーザープログラムの作成中は、高い柔軟性が保証される。
【００４４】
上述の形態のさらに別の改良形態においては、安全制御装置の部分機能面を表す制御面に対して、割り当てられた機能面ブロックにそれぞれ記憶された関数プログラムが修正不可能である。
この形態によれば、安全制御装置の機能性は、一度規定され、所轄官庁から承認を得た場合は、その機能性が維持される。このことは、フェイルセーフ性の向上に寄与する。したがって、この安全制御装置に関連する機能性は、基本的には変更できない。たとえば対応する間隔を経た後、パラメータによって特定の限度内でのみ修正可能である。
【００４５】
本発明の別の改良形態においては、前記複数の提供されたソフトウェアコンポーネントに含まれる機能面ブロックの少なくとも一部に関数プログラムが記憶され、この関数プログラムが、各機能面ブロックが割り当てられる制御面に対して、ハードウェアコンポーネントの機能面特性を規定しており、前記関数プログラムにおいてパラメータが処理され、これらパラメータに対してパラメータ値を予め規定可能であり、パラメータ値を変更することによって機能面特性が修正される。
【００４６】
パラメータ値を変更することによって機能面特性が修正される。したがって、これら機能面特性は、パラメータ値によって予め規定された限度内で、制御対象のシステムの特性に容易に適応可能である。ソフトウェアコンポーネントの基本的な修正、主にその機能性の修正が可能な処理モードにカプセル化ソフトウェアコンポーネントを変更する形態に対して、機能面特性を修正する場合は、ソフトウェアコンポーネントの機能性は基本的に維持される。
【００４７】
本発明の別の改良形態においては、機能面サブプログラムの作成中、その過程で考慮される機能面ブロックに対して、前記パラメータ値が予め規定される。
パラメータ値の規定および機能面サブプログラムの作成という２つの作業工程を組み合わせることにより、一方ではユーザープログラムの効率的な作成が可能となり、他方ではフェイルセーフ性が向上する。機能面ブロックの信号入力およびパラメータ値の規定に対してセンサーを同時に割り当てることは、個々の機能面ブロックの包括的な概観を示す。
【００４８】
本発明の別の改良形態においては、前記各機能面ブロックが割り当てられた制御面に対するハードウェアコンポーネントの機能面特性を規定する関数プログラムが前記各機能面ブロックに記憶されており、前記ハードウェアコンポーネントが各機能面ブロックを含むソフトウェアコンポーネントに対応し、互いに異なる前記複数の制御面の少なくとも１つが前記ハードウェアコンポーネントに関連しており、これにより、前記少なくとも１つの制御面に対して規定された前記機能面特性が前記ハードウェアコンポーネントに関連している。
【００４９】
この形態には、各ソフトウェアコンポーネントに対して機能面を基本として、すなわち安全制御装置の個々の部分機能面に関連して、機能性ひいては特性を所望の態様で予め規定することができるという利点がある。その結果、ユーザープログラムを正確に作成することができるとともに、制御対象のシステムの全体機能性を正確に決定することができる。また、ハードウェアコンポーネントの機能性の記述に必要なすべてのデータおよび情報は、単一のソフトウェアコンポーネントに含まれる。概して、この形態によれば、フェイルセーフ性が向上する。
【００５０】
本発明の別の改良形態においては、前記複数のソフトウェアコンポーネントの少なくとも一部が、複数の機能面ブロック以外に、複数のエレメンタリコンポーネントおよび／または複数のグループコンポーネントを備えており、グループコンポーネントが少なくとも１つの機能面ブロックと、エレメンタリコンポーネントまたはグループコンポーネントとして構成された少なくとも１つのソフトウェアコンポーネントとを含み、エレメンタリコンポーネントが少なくとも１つの機能面ブロックのみを含み、前記各機能面ブロックが割り当てられた制御面の機能面特性を規定する関数プログラムが前記複数の各機能面ブロックに記憶されており、互いに異なる前記複数の制御面の少なくとも１つが、前記複数のエレメンタリコンポーネントの少なくとも一部および／または前記複数のグループコンポーネントの少なくとも一部の相互作用に関連しており、これにより、前記少なくとも１つの制御面に対して規定された前記機能面特性が前記相互作用に関連している。
【００５１】
制御面が複数のハードウェアコンポーネントの相互作用に関連しており、これらが１つのハードウェアコンポーネントに構成される前記形態には、以下のような利点がある。複数のハードウェアコンポーネントを含むハードウェアコンポーネントに対応するソフトウェアコンポーネントを提供した結果として、制御対象のシステムがハードウェアコンポーネントを含む場合は、前記複数のハードウェアコンポーネント間の相互作用を規定する機能性も同時に提供される。その結果、ユーザープログラム作成中の複雑性が低減するため、フェイルセーフ性が向上する。複数のハードウェアコンポーネントの相互作用に関連する安全制御装置の部分機能面の一例としては、部分ロック面が挙げられる。
【００５２】
互いに異なる制御面は、部分標準制御面を表す標準制御面すなわち特定用途に必要なシステムの作動シーケンス、事故回避のためのすべての安全対策を表す安全制御面、診断情報の収集および処理を表す診断面、システム状態の視覚化に必要なすべてのプログラムステップを含む視覚化面、システムの１または複数の駆動制御装置の詳細を表す駆動制御面、冷却に必要なすべての対策を表す冷却面、アクセス許可に関連するすべての対策を含むアクセス許可面、定期保守に必要なすべてのプログラムステップを表す保守面、部分ロック面を表すロック面、部分手動操作面を表す手動操作面、および部分データ管理面を表すデータ管理面といった任意の数の制御面であっても都合が良い。
【００５３】
以上から、システム全体に関して、独立した部分制御面をそれぞれ表す異なる制御機能面がプログラム可能である。これら独立した部分機能面は、共通する特性がほとんどないため、制御対象のシステムに対して作成する全体機能性を複数の副機能性に分割するのに適している。その結果、ユーザープログラム作成中の複雑性を低減可能である。また、各専門家によって、個々の機能面サブプログラムを作成することも可能となる。また概して、フェイルセーフ性が向上する。
【００５４】
前記制御面は、技術関連および用途関連の制御面に分割可能である。技術関連の制御面としては、安全制御面、標準制御面、診断面、および視覚化面が挙げられる。用途関連の制御面としては、ロック面および手動操作面が挙げられる。
部分標準制御面は、標準変数が処理されるためフェイルセーフ的に構成する必要がない安全制御装置の部分に関連する。部分安全制御面は、安全関連の変数が処理されるためフェイルセーフ的に構成する必要がある安全制御装置の部分に関連する。部分診断面は、障害または障害の原因を識別するように構成された安全制御装置の部分に関連する。部分視覚化面は、ハードウェアコンポーネントのデータまたは状態を表示するように構成された安全制御装置の部分に関連する。また、システムのオペレータと安全制御装置との相互作用を許可する部分も含まれる。部分駆動制御面は、駆動制御、具体的には回転速度、速度、または力等の設定および維持を行うように構成された安全制御装置の部分に関連する。部分冷却面は、制御対象のシステムに含まれるハードウェアコンポーネントを冷却するように構成された安全制御装置の部分に関連する。部分アクセス許可面は、たとえばユーザープログラムが実行される自動運転動作モードから制御対象のシステムの設定が可能な設定動作モードに制御対象のシステムを切り替えるように構成された安全制御装置の部分に関連する。部分保守面は、制御対象のシステムの機能を維持するための対策に向けられた安全制御装置の部分に関連する。部分ロック面は、たとえば防護扉のロック等、特定の起動条件が満たされるまで制御対象のシステムが起動できないように構成された安全制御装置の部分に関連する。これの追加として、あるいは、部分ロック面は、前記システムに含まれるハードウェアコンポーネントが、そのコンポーネントと相互作用するハードウェアコンポーネントが所定の状態となるまで、特定の状態にならないように構成された部分に関連する。部分手動操作面は、自動運転からユーザープログラムの個々のステップが徐々に実行される手動運転に制御対象のシステムを切り替えるように構成された安全制御装置の部分に関連する。部分データ管理面は、（SCADA: Supervisory Control and Data Acquisitionとして）データを収集および記憶するように構成された安全制御装置の部分に関連する。
【００５５】
上に列挙したものは、網羅的ではない。たとえば、制御面のシミュレーションが提供可能である。この制御面に割り当てられた機能面ブロックを用いると、この機能面ブロックが含まれるソフトウェアコンポーネントの確認を行うことができる。たとえば、ソフトウェアコンポーネントの挙動または機能を確認することができる。また、制御面の文書化が提供可能である。この制御面に割り当てられた機能面ブロックを用いると、ユーザープログラムを作成する制御面の支援に役立つ。したがって、このような機能面ブロックには、各機能面ブロックが含まれるソフトウェアコンポーネントに関する情報が記憶されている。この情報としては、ソフトウェアコンポーネントの説明、ソフトウェアコンポーネントのインターフェースの説明、ソフトウェアコンポーネントで使用されるパラメータの説明、ソフトウェアコンポーネントの機能性および考え得る用途の説明等が挙げられる。ただし、このような機能面ブロックには、安全制御装置で制御するシステムのオペレータ向けの情報を記憶することも考えられる。この情報としては、前記機能面ブロックが含まれるソフトウェアコンポーネントが対応するハードウェアコンポーネントに対するオペレータ指示、およびハードウェアコンポーネントの使用分野等が挙げられる。
【００５６】
機能面ブロックは、選択可能な所定の機能面ブロック群に含まれる特定の機能面ブロックを選択することによって提供するのが好ましい。ただし、ユーザープログラムの作成者が、用途に基づいて機能面ブロックを作成することも可能であると考えられる。あるいは、選択可能な機能面ブロックの既存リストに追加できると都合が良い別の機能面ブロックを作成することも考えられる。このように別の機能面ブロックを作成すると、たとえば工作機械製造者が、プロファイルおよび／または構造の観点から会社固有の個々の機能面ブロックを規定および使用することができる。また、新たな機能面ブロックを規定可能であることから、ユーザープログラムの作成者は、所定の機能面ブロックに基づいて制御対象のシステムを俯瞰可能な視点に別の視点を追加することができる。以上から、機能面ブロックは、ソフトウェアコンポーネントを提供する手順と同様に、作成または選択のいずれかによって提供可能である。
【００５７】
新たな機能面ブロックを作成するには、原則として、ブロックの定義、新たな機能面ブロックの名称の指定、および機能面ブロックの内容ひいては新たな部分機能面の定義といった工程が必要である。部分駆動制御面は、通常は非フェイルセーフ標準制御装置すなわち非フェイルセーフ標準変数を用いて実行可能であることから標準制御面に割り当てるべき制御タスクだけでなく、安全関連であるため安全制御面に割り当て可能であり、そのためフェイルセーフ変数を用いて実行すべき制御タスクも備えていると都合が良い。
【００５８】
このような安全制御面に割り当てるべき制御タスクとしては、「フェイルセーフ制動プロファイル監視」または「フェイルセーフ低減速度」の範囲で処理される制御タスクが挙げられる。「フェイルセーフ制動プロファイル監視」は、モーターの制御制動に関連する。モーターは、パラメータ化制動プロファイルにしたがって停止する。この際、パラメータ化によって、駆動速度の急峻な低下プロファイルを予め規定することができる。パラメータ化制動プロファイルは、所定時間内の様々な時間にわたって、モーターが取り得る最高回転速度を与える。これらの所定値を満足できないことが検出された場合、すなわち、個々の時間におけるモーターの実際の回転速度が所定値を上回る場合は、たとえばモーターを電源に接続するためにブレーカーとして具現化されたアクチュエータの作動により、モーターが電源から切り離される。「フェイルセーフ低減速度」は、保守モードにおけるロボットの動作に関連するのが好ましい。保守運転中は、ロボットが移動を行うのは容易であるが、保守要員の傷害の危険性を可能な限り低く抑えるには、プロセス中の移動速度が所定値を超えないようにする必要がある。この所定値は、パラメータによって規定される。また、保守運転中は、ロボットの現在速度が検出され、所定値と比較される。この所定値を超えた場合は、ロボットを電源に接続しているブレーカーの動作により、ロボットが電源から切り離される。
【００５９】
本発明の別の改良形態においては、前記複数のソフトウェアコンポーネント以外に複数の機能面ブロックが提供され、機能面サブプログラムの作成中は、前記複数の機能面ブロックが使用される。
この形態には、提供された複数のソフトウェアコンポーネントが対応するハードウェアコンポーネントに対して、機能面特性を割り当てることができるという利点がある。これにより、たとえばハードウェアコンポーネントの相互作用は、好ましくはロックとして規定することができる。
【００６０】
本発明の別の改良形態においては、前記ユーザープログラムが階層構造を有し、前記提供された複数のソフトウェアコンポーネントが最上位階層である階層を規定し、前記提供された複数のソフトウェアコンポーネントに属するソフトウェアコンポーネントの１つに含まれる少なくとも１つのソフトウェアコンポーネントが、前記最上位階層の下位の階層を規定する。
【００６１】
本発明の前記改良形態によれば、ユーザープログラム作成中の複雑性を低減可能である。したがって、この新たな手法に基づく形態に加えて、複雑性を低減するための第２の形態も利用可能である。上述の通り、この新たな手法に基づく形態では、制御対象のシステムの全体機能性を垂直に分割することができる。これに対して、様々な水準に基づいて階層を形成する形態では、全体機能性の水平方向の分割がもたらされる。したがって、これら２つの形態では、異なる順序付けまたは分類を行うため、同時に使用しても互いに悪影響を及ぼし合うことはない。その結果、これら２つの形態または構造化手法は、問題なく組み合わせることができるため、その組み合わせは特に論理的である。これにより、複雑性の大幅な低減ひいては明瞭性の大幅な向上が可能であるため、最終的には、フェイルセーフ性が大幅に向上する。
【００６２】
前記形態のさらに別の改良形態においては、前記複数のソフトウェアコンポーネント以外に複数の機能面ブロックが提供され、前記複数のソフトウェアコンポーネントの少なくとも一部および前記複数の機能面ブロックの少なくとも一部を組み合わせて新たなソフトウェアコンポーネントを形成可能であり、その結果として、新たな最上位階層が規定され、その下位に、以前の最上位階層が２番目の階層として存在する。
【００６３】
この形態には、ユーザープログラム作成中の任意の段階で、相応に必要な機能面ブロックを考慮することにより、複数のソフトウェアコンポーネントの一部を最上位階層中で組み合わせて新たなソフトウェアコンポーネントを形成し、その結果として、最上位階層の複雑性を低減できるという利点がある。この形態は、最上位階層の下位にある既存の別階層にも同様に適用可能であれば都合が良い。以上から、任意の階層の複雑性をその階層で低減可能な形態が利用可能である。
【００６４】
本発明の別の改良形態においては、前記ユーザープログラムが複数の階層に構造化され、そのうちの１つが選択されており、機能面サブプログラムの作成時に、選択された階層に含まれる機能面ブロックのみが考慮される。
この形態には、機能面サブプログラムの作成時に考慮する機能面ブロックの数が低減されるという利点がある。これにより、ユーザープログラム作成時の複雑性が低減され、さらにはフェイルセーフ性が向上する。
【００６５】
概して、機能面サブプログラムの作成時には、個別に検討されている制御面に割り当てられたすべての機能面ブロックを考慮に入れる必要がある。ここでは、選択された階層に含まれる機能面ブロックのみを考慮しているため、この選択された階層に対してプログラム片がそれぞれ作成される。選択されていない階層に対しては、共通のプログラム片が同様に作成される。そして、これら個々のプログラム片を組み合わせることにより、作成対象の機能面サブプログラムが形成される。別の手順としては、選択された各階層に対して独立した機能面サブプログラムが作成され、選択されていない階層には共通の機能面サブプログラムが作成される。これは、作成される機能面サブプログラムの数が増加することを意味する。
【００６６】
本発明の別の改良形態においては、前記階層の１つを基準階層として規定可能であり、この基準階層およびその上位の階層の両者に対して独立した機能面サブプログラムがそれぞれ作成され、独立した各機能面サブプログラムの作成中は、各階層に含まれる機能面ブロックのみが考慮され、前記基準階層の下位の階層に対して機能面サブプログラムが作成され、前記機能面サブプログラムの作成中は、これら階層に含まれるすべての機能面ブロックが考慮される。
【００６７】
この形態によれば、ユーザープログラムを特に効率良く作成することができる。基準階層は、個別の検討によって複雑性が大幅に低減する階層のみが個別の検討の対象となるように規定することができる。これに対して、考慮に入れる機能面ブロックの数が管理可能である階層については、同時に検討される。基準階層は、ユーザープログラムのプログラマが規定することにより、その要求に適応可能であると都合が良い。
【００６８】
前記機能面ブロックがそれぞれ、入力信号を各機能面ブロックに供給可能な複数の入力と、出力信号を出力可能な複数の出力とを有し、前記機能面ブロックの少なくとも一部には、機能面ブロックが割り当てられた制御面を規定する識別子が記憶された識別部と、機能面ブロックが含まれるソフトウェアコンポーネントが対応するハードウェアコンポーネントに関して機能面特性を規定する関数プログラムが記憶された関数部と、関数プログラムで処理されるパラメータのパラメータ値が記憶されたパラメータ部と、機能面ブロックの前記複数の入力および前記複数の出力が組み合わされたインターフェース部と、を備えていると都合が良い。
【００６９】
このように構造化された機能面ブロックの構成であれば、一方ではユーザープログラムの効率的な作成が可能であり、他方では関数部、パラメータ部、およびインターフェース部への分割により速度および記憶容量の観点で最適化されたユーザープログラムを保証可能である。機能面ブロックの構造に関する限り、識別部、関数部、およびインターフェース部については、いかなる場合にもそれぞれが有するものと考えられる。パラメータ部については、必要に応じて、すなわち関数プログラムにパラメータが提供された場合にのみ設けてもよい。この構成は、作成されるユーザープログラムの記憶容量の観点で都合が良い。
【００７０】
本発明の別の改良形態においては、前記ソフトウェアコンポーネントがそれぞれ、入力信号を各ソフトウェアコンポーネントに供給可能な複数の入力と、出力信号を出力可能な複数の出力とを有し、前記ソフトウェアコンポーネントの少なくとも一部には、複数の機能面ブロックと、少なくとも１つの機能面ブロックのみを含む複数のエレメンタリコンポーネントならびに／または少なくとも１つの機能面ブロックおよびエレメンタリコンポーネントもしくはグループコンポーネントとして具現化可能な少なくとも１つのソフトウェアコンポーネントを含む複数のグループコンポーネントと、ソフトウェアコンポーネントの前記複数の入力および前記複数の出力が組み合わされたインターフェース部と、を備える。
【００７１】
このソフトウェアコンポーネントの標準構造は、ソフトウェアコンポーネント同士の互換性を保証する。これにより、ユーザープログラムを特に効率良く作成することができる。同時に、ソフトウェアコンポーネントの論理的組み合わせに関する障害源が取り除かれるため、フェイルセーフ性の向上に寄与する。この構造は、すべてのソフトウェアコンポーネントが備えているのが好ましい。
【００７２】
本発明の別の改良形態においては、前記入力が複数の信号入力、および／または複数の論理入力、および／または複数のパラメータ化入力であり、前記出力が複数の信号出力、および／または複数の論理出力、および／または複数のパラメータ化出力であり、前記複数の信号入力を介して複数の入力信号を供給可能であり、前記複数の論理入力を介して複数の論理変数を供給可能であり、前記複数のパラメータ化入力を介して複数のパラメータを供給可能であり、前記複数の信号出力を介して複数の出力信号を出力可能であり、前記複数の論理出力を介して複数の論理変数を出力可能であり、前記複数のパラメータ化出力を介して複数のパラメータを出力可能である。
【００７３】
入力および出力の両者を論理インターフェース、パラメータインターフェース、およびハードウェアインターフェースという信号用の３種類のインターフェースに束ねると、高い互換性が得られる。これにより、ユーザープログラムを効率良く作成することができる。同時に、ソフトウェアコンポーネントおよび／または機能面ブロックの接続中に考え得る障害が低減し、その結果として、フェイルセーフ性が向上する。各インターフェース型に割り当てられる入力および出力の数は、それぞれの状態に応じて可変である。
【００７４】
各機能面ブロックおよびソフトウェアコンポーネントに含まれるインターフェース部は、それぞれのインターフェース部と機能的に同一の構造を有していると都合が良い。
この形態によれば、最適な互換性が得られる。その結果、ソフトウェアコンポーネント同士が互換となる。また、機能面ブロック同士も互換となる。さらに、機能面ブロックとソフトウェアコンポーネント間の互換性も保証される。これにより、ユーザープログラムを効率良く作成可能であるとともに、フェイルセーフ性が向上する。
【００７５】
本発明の別の改良形態においては、前記各機能面ブロックが割り当てられた制御面に対するハードウェアコンポーネントの機能面特性を規定する関数プログラムが各機能面ブロックに記憶されており、前記ハードウェアコンポーネントが各機能面ブロックを含むソフトウェアコンポーネントに対応し、前記個々の関数プログラムが複数の異なるプログラミング言語からそれぞれ選択されたプログラミング言語を用いて作成される。
【００７６】
この形態によれば、個々の関数プログラムの作成には、最も適したプログラミング言語を使用することができる。これに関連して、この本発明の方法を実行可能なコンピュータプログラムは、客観的基準にしたがって定義された最適な言語を選択または規定することができる。このことは、部分視覚化面または部分診断面等の個々の部分機能面にとって都合が良い。また、これの追加として、あるいは、ユーザープログラムを作成するプログラマは、主観的基準にしたがって最適なプログラミング言語を選択することができる。選択可能な異なるプログラミング言語としては、欧州規格ＩＥＣ／ＥＮ６１１３１の第３部に記載のＩＬ（インストラクションリスト）、ＬＤ（ラダーダイアグラム）、ＦＢＤ（ファンクションブロックダイアグラム）、ＳＦＣ（シーケンシャルファンクションチャート）、およびＳＴ（ストラクチャードテキスト）等が挙げられる。これら以外に考えられるプログラミング言語としては、ＣＦＣ（コンティニュアスファンクションチャート）が挙げられる。また、欧州規格ＩＥＣ／ＥＮ６１１３１に記載のプログラミング言語以外にも、原理上は欧州規格ＩＥＣ／ＥＮ６１４９９と互換性のあるＪａｖａ（登録商標）等の任意のプログラミング言語も使用可能である。部分標準制御面および部分安全制御面の場合は、欧州規格ＩＥＣ／ＥＮ６１１３１に記載のすべてのプログラミング言語を使用可能である。部分視覚化面の場合は、たとえばＯＢＳＴ等のプログラミング言語を使用可能である。部分診断面の場合は、分割が考えられるため、欧州規格ＩＥＣ／ＥＮ６１１３１に記載のプログラミング言語の１つを用いて診断条件をプログラム可能である。また、診断メッセージの表示に必要な部分は、異なるプログラミング言語でプログラム可能である。最も適したプログラミング言語を選択することは、最も適したエディタを使用することにもつながる。
【００７７】
ソフトウェアコンポーネントおよび／または機能面ブロックは、ユーザーインターフェース上で図形記号により表されると都合が良い。
この形態によれば、特に明瞭かつ理解が容易な態様で、実際のプログラミング過程を構成することができる。その結果、人為的エラーまたは不注意に起因する障害源を大幅に低減することができ、フェイルセーフ性が大幅に向上する。
【００７８】
本発明の別の改良形態においては、ソフトウェアコンポーネントおよび／または機能面ブロックがドラッグ＆ドロップ機能により提供される。
ドラッグ＆ドロップ機能は、市販のＰＣが備えるグラフィカルユーザーインターフェースにより既に自明となっている。これに関連して、たとえばマウスと称する入力装置により要素を指し示し、入力装置により所望の場所への移動や複製を行う。このような選択方法は非常に単純でプログラマには便利である。その結果、プログラミング中の不正なオペレータ制御操作およびこれに起因する障害源がさらに低減される。
【００７９】
本発明の別の改良形態においては、ソフトウェアコンポーネントの入力および出力ならびに／または機能面ブロックの入力および出力が図形線の描画により接続される。
この形態は、単純で障害が発生しにくい操作方法を構成する。その結果、フェイルセーフ性が向上する。
本発明の別の改良形態においては、互いに異なる複数の制御面のそれぞれに対して機能面サブプログラムが作成され、前記個々の機能面サブプログラムの作成が別々に行われる。
【００８０】
この形態によれば、ユーザープログラム作成中の複雑性が大幅に低減される。個々の機能面サブプログラムの作成は、時間的に分離して行うことができると都合が良い。その結果、個々の機能面サブプログラムは、時間的に連続して作成される。これの代替または追加として、空間的に分離させることも可能である。空間的な分離とは、独立したグラフィカルユーザーインターフェースを用いて個々の機能面サブプログラムを作成することである。その結果、特に個々のグラフィカルユーザーインターフェースがモニター上に表示されている場合に、複数の機能面サブプログラムを時間的に平行して作成することができる。これにより、ユーザープログラムを特に効率良く作成することができる。
【００８１】
本発明の好適な一改良形態においては、制御面に対する機能面サブプログラムの作成中、前記複数のソフトウェアコンポーネントに含まれ、当該制御面に割り当てられたすべての機能面ブロックが考慮される。
この形態は、制御面における一様な操作方法を保証するため、フェイルセーフ性の向上に寄与する。
【００８２】
前記本発明の方法および装置は、以下のような利点をさらに有する。これまでは、ユーザープログラムの作成に様々なコンピュータプログラムまたはツールを使用する必要があり、通常は、各部分機能面に異なるプログラミングツールが必要であったが、現在では、プログラミングツールを１つだけ使用すればよい。その結果、複数のプログラミングツールを用いてユーザープログラムを作成する際に生じる互換性の問題が回避される。複数のコンピュータプログラムまたはツールを取り扱う必要がないということは、そのうちの１つに慣れれば十分ということである。ユーザープログラムの作成中は、すべての部分機能面を包括的に考慮することができる。
【００８３】
当然のことながら、上述の特徴および以下に説明する特徴は、本発明の要旨を逸脱しない範囲で、個別に示した組み合わせだけでなく、それ以外の組み合わせまたは単独で使用可能である。
【図面の簡単な説明】
【００８４】
【図１】ユーザープログラムを作成する安全制御装置と連動した新規装置の実施形態を示す概略図である。
【図２】ソフトウェアコンポーネントを提供するための第１のグラフィカルインターフェースを示す簡略図である。
【図３】コンポーネントサブプログラムおよび機能面サブプログラムを作成するための第２のグラフィカルインターフェースを示す簡略図である。
【図４】作成されたユーザープログラムにより制御されるシステムを示す概略図である。
【図５】図５aは、カスケード式組み合わせ手法および第１の制御範囲に係る、ユーザープログラムの最上位階層において制御対象のシステムに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。図５ｂは、カスケード式組み合わせ手法および第２の制御範囲に係る、ユーザープログラムの最上位階層において制御対象のシステムに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。図５ｃは、非カスケード式組み合わせ手法に係る、ユーザープログラムの最上位階層において制御対象のシステムに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。
【図６】制御対象のシステムの補助コンポーネントを示す概略図である。
【図７】図７ａは、カスケード式組み合わせ手法および第１の制御範囲に係る、補助コンポーネントに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。図７ｂは、カスケード式組み合わせ手法および第２の制御範囲に係る、補助コンポーネントに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。図７ｃは、非カスケード式組み合わせ手法に係る、補助コンポーネントに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。
【図８】補助コンポーネントに含まれる従属コンポーネントおよびその個々のコンポーネントを示す概略図である。
【図９】図９ａは、カスケード式組み合わせ手法および第１の制御範囲に係る、従属コンポーネントに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。図９ｂは、カスケード式組み合わせ手法および第２の制御範囲に係る、従属コンポーネントに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。図９ｃは、非カスケード式組み合わせ手法に係る、従属コンポーネントに提供されたソフトウェアコンポーネントおよび機能面ブロックを示す概略図である。
【図１０】従属コンポーネントに含まれる個々のコンポーネントに提供された機能面ブロックを示す概略図である。
【図１１】非常停止用ボタンに提供された機能面ブロックを示す概略図である。
【図１２】機能面ブロックの基本構造を示す概略図である。
【図１３】ソフトウェアコンポーネントの基本構造を示す概略図である。
【図１４】作成されたユーザープログラムの階層構造全体を示す図である。
【発明を実施するための形態】
【００８５】
本発明の実施形態を図面に示すとともに、以下に詳細に説明する。
図１においては、新規装置全体の実施形態を符号１０で示している。
装置１０は、コンピュータプログラム１６が動作するモニター１４を備えた従来のＰＣ１２を備えている。コンピュータプログラム１６は、安全制御装置のユーザープログラム３８の作成を可能とするものである。したがって、専門用語としては、プログラミングツールと称することが多い。
【００８６】
また、図１においては、プログラミングによりユーザープログラムを作成する安全制御装置を符号１８で示している。ここでは、安全を最重視するプロセスの制御に必要なフェイルセーフ性を実現するため、２つのチャンネルによる冗長な構成としている。
図１には、２チャンネル構成の一例として、相互監視およびデータ交換を可能とする双方向通信インターフェース２４を介して互いに接続された２つの独立したプロセッサ２０、２２を示している。ここで、安全制御装置１８の２つのチャンネルおよび２つのプロセッサ２０、２２は、系統障害の大部分を除外するため、多様な構成すなわち互いに異なる構成とするのが好ましい。
【００８７】
符号２６は、２つの各プロセッサ２０、２２に接続された入出力部を示している。この入出力部は、外部センサー３０から入力信号２８を受信し、あるデータ形式に調整して、２つの各プロセッサ２０、２２に送出する。また、入出力部は、プロセッサ２０、２２に基づいて、アクチュエータ３４の駆動に使用する出力信号３２を生成する。
センサー３０としては、非常停止用ボタン、両手操作ボタン、防護扉スイッチ、回転速度監視装置、ライトバリア、安全スイッチ、終端位置スイッチ、または安全関連の変数を検知するその他のセンサーが挙げられる。安全制御装置が部分駆動制御面も備える好適な場合は、センサー３０として、通常は標準制御装置に使用され、制御対象の変数を駆動制御の範囲で検出可能なセンサーも含まれる。たとえば、力、速度、または回転角を検知するセンサーが挙げられる。ただし、前記列挙したものは、網羅的ではない。
【００８８】
アクチュエータ３４としては、駆動用電源または機械全体の電源を遮断可能なブレーカーが挙げられる。ただし、アクチュエータ３４としては、モーターまたはシリンダ、特に線形動作等に使用する空気圧シリンダ等、動作を実現するためのアクチュエータも考えられる。
符号３６は、ユーザープログラム３８を記憶するチップカードを示している。ユーザープログラム３８は、装置１０を用いて作成されるが、安全制御装置１８で実行する制御タスクを規定するものである。そして、これら制御タスクは、安全制御装置で制御されるシステムの全体機能性を規定する。チップカード３６を記憶媒体として使用すれば、装置１０に直接接続しなくても、ユーザープログラム３８を容易に交換できる。あるいは、ユーザープログラム３８は、データインターフェースを介して安全制御装置１８のメモリにロードすることもできる。
【００８９】
コンピュータプログラム１６は、モニター１４上で、以下に詳述するユーザーインターフェースを提供する。ユーザーインターフェースは、プログラマにソフトウェアコンポーネントおよび機能面ブロックを提供することにより、コンポーネントサブプログラムおよび機能面サブプログラムの作成を可能にする。ユーザープログラム３８は、コンポーネントサブプログラムと機能面サブプログラムとを組み合わせて形成される。
【００９０】
図１には、ソフトウェアコンポーネントおよび機能面ブロックの提供ならびにコンポーネントサブプログラムおよび機能面サブプログラムの作成を機能ブロック４０で表している。プログラマによる所望のフトウェアコンポーネントおよび機能面ブロックの提供、必要に応じたソフトウェアコンポーネントのパラメータ化、ならびにコンポーネントサブプログラムおよび機能面サブプログラムの作成の後、これらはすべて、ＰＣのメモリ４２に記憶される。また、少なくとも１つのチェックサムＣＲＣ（周期的冗長検査）によって保護するのが好ましい。そして、ユーザープログラムは、メモリ４２からチップカード３６へ、または安全制御装置１８へ直接送信することができる。ＣＲＣを用いた保護により、送信されたユーザープログラムは、メモリ４２に記憶された前回生成のユーザープログラムに対応する。
【００９１】
ここで、ユーザープログラム３８は、従来技術では通常、非フェイルセーフ標準制御装置で実行可能であることから標準制御面に割り当てるべき制御タスクだけでなく、安全関連であるため安全制御面に割り当てるべき制御タスクも備えている。安全制御装置１８は、ユーザープログラム３８の処理中に生じる安全制御装置１８の個々のコンポーネント間のデータ交換において、すべてのデータが通過するバスシステムを有する。すなわち、標準制御面に割り当てられた制御タスクを処理する場合および安全制御面に割り当てられた制御タスクを処理する場合の両者において、データの交換はこのバスシステムを介して行われる。
【００９２】
図２においては、コンピュータプログラム１６がモニター４０上でプログラマに提供する第１のグラフィカルインターフェース全体を符号５０で示している。
第１のグラフィカルユーザーインターフェース５０は、図形記号の形態で、所定のソフトウェアコンポーネント群５４を含む所定のソフトウェアコンポーネント領域５２を備えている。これら個々の所定のソフトウェアコンポーネントは、符号５６、５８、６０、６２で示している。また、これら所定のソフトウェアコンポーネント５６〜６２は、ユーザープログラム３８を作成するこの新たな方法を実行可能なコンピュータプログラム１６の提供者が作成したものであって、コンピュータプログラム１６に含まれるデータベースまたはライブラリに記憶されている。
【００９３】
図２において、これら所定のソフトウェアコンポーネント５６〜６２に割り振られた符号ＳＫ１、ＳＫ２、ＳＫ３、ＳＫｎは、所定のソフトウェアコンポーネント群５４が、図２に示した所定のソフトウェアコンポーネント５６〜６２以外にもソフトウェアコンポーネントを備えることが可能であることを示している。
ソフトウェアコンポーネント領域５２は、図形記号の形態で、新たに作成されたソフトウェアコンポーネント群６４を備えている。これら新たに作成された個々のソフトウェアコンポーネントは、符号６６、６８、７０で示している。新たに作成されたソフトウェアコンポーネント６６〜７０は、制御対象のシステムに含まれ、対応する所定のソフトウェアコンポーネントがコンピュータプログラム１６のデータベースやライブラリに一切存在しないハードウェアコンポーネントに対して、ユーザープログラム３８の作成中にプログラマが作成した後、カプセル化したものである。これと同様に、所定のソフトウェアコンポーネント５６〜６２もカプセル化されている。
【００９４】
カプセル化により、所定のソフトウェアコンポーネント５６〜６２および新たに作成されたソフトウェアコンポーネント６６〜７０の特性および／または機能性は、それぞれの作成後に変更されることはない。新たに作成されたソフトウェアコンポーネント６６〜７０に用いている符号ＳＫｎ＋１、ＳＫｎ＋２、ＳＫｎ＋３は、コンピュータプログラム１６に含まれるデータベースまたはライブラリがこれらソフトウェアコンポーネントにより拡張されることを意味する。したがって、これらのソフトウェアコンポーネントは、たとえば別のユーザープログラムを作成する場合に、製造者によって予め規定されたソフトウェアコンポーネント５６〜６２に加えて、使用することができる。
【００９５】
区別をより明確化するため、ソフトウェアコンポーネント領域５２では、所定のソフトウェアコンポーネント５６〜６２が実線で表され、新たに作成されたソフトウェアコンポーネント６６〜７０が点線で表されている。また、ソフトウェアコンポーネント領域５２では、エレメンタリコンポーネントとして具現化されたソフトウェアコンポーネントが小さなブロックで表され、グループコンポーネントとして具現化されたソフトウェアコンポーネントが大きなブロックで表されている。この表示形態は、図２全体で有効である。なお、所定のソフトウェアコンポーネント５６〜６２および新たに作成されたソフトウェアコンポーネント６６〜７０の両者がそれぞれ選択可能である。
【００９６】
第１のグラフィカルユーザーインターフェース５０は、図形記号の形態で、選択可能な機能面ブロック群７４を含む機能面ブロック領域７２を備えている。これら個々の機能面ブロックは、符号７６、７８、８０、８２、８４、８６で示している。
各機能面ブロック７６〜８６は、互いに異なる複数の制御面の１つに割り当てられており、これら各制御面は、安全制御装置の独立した部分機能面を表している。各機能面ブロック７６〜８６に用いている符号Ａｂ１、Ａｂ２、Ａｂ３、Ａｂ４、Ａｂ５、Ａｂｎは、図２に示した機能面ブロック以外にも機能面ブロックをコンピュータプログラム１６で利用可能であることを示している。機能面ブロック７６〜８６は、コンピュータプログラム１６に含まれるデータベースまたはライブラリに記憶されている。
【００９７】
また、第１のグラフィカルユーザーインターフェース５０は、作業領域８８を備えている。ユーザープログラム３８の作成中、プログラマは、この作業領域８８を用いて新たなソフトウェアコンポーネントを作成することができる。
符号９０は、新たに作成される、エレメンタリコンポーネントとして具現化された第１のソフトウェアコンポーネントを示している。この新たに作成される第１のソフトウェアコンポーネント９０に対しては、複数の機能面ブロック９２が提供されている。機能面ブロックの提供は、一例として矢印９４で示す通り、新たに作成されるソフトウェアコンポーネントのドラッグ＆ドロップ機能を用いて、機能面ブロック領域７２に含まれる対応する機能面ブロック７６〜８６を追加することによって行われる。この例では、選択した機能面ブロック８０の複製９６が作成されている。プログラミング技術の観点から、この過程では、選択した機能面ブロック８０によって予め規定された機能性または特性を記憶する記憶領域が提供される。なお、現段階では、機能面ブロックの複製の作成および／またはソフトウェアコンポーネントの複製の作成に関する以下の記述においても、この技術的なプログラミング関係が同様に当てはまる。
【００９８】
前記提供された複数の機能面ブロック９２に対しては、関連する入力を介した各機能面ブロックへの供給・処理または各機能面ブロックによる決定と関連する出力を介した出力の対象となる論理変数、および／または中間変数、および／またはパラメータ、および／または信号がそれぞれ規定される。この過程は、テキスト型プログラミング言語を用いて入力領域９８に入力を行う割り当てによって、実行可能である。この段階では、基本的な方法により、変数、および／またはパラメータ、および／または信号のみが規定される。なお、各機能面ブロックに接続される特定のセンサーおよび／またはアクチュエータの定義については、以下に説明する後の工程にて行う。
【００９９】
各機能面ブロックは、論理入力および論理出力を備えている。これら論理入力の少なくとも一部および論理出力の少なくとも一部は、相互ならびに／または第１の新たなソフトウェアコンポーネント９０が有する論理入力および／もしくは論理出力に接続される。これは、一例として接続部１００で示す。これら接続部の図形は、たとえば線を描画することによって生成可能である。機能面ブロックと第１の新たなソフトウェアコンポーネント９０との間に接続部が存在しないことは、何ら限定的な趣旨を意図するものではない。なお、論理入力については、明瞭化のため図示していない。
【０１００】
また、前記提供された複数の機能面ブロック９２の少なくとも一部に対しては、関数プログラムが作成される。この作成は、欧州規格ＩＥＣ／ＥＮ６１１３１に記載された言語の１つを用いることにより、対応する命令をプログラミング領域９８に入力することによって可能となる。
第１の新たなソフトウェアコンポーネント９０の作成、すなわちこのソフトウェアコンポーネントの作成に必要なすべての工程の実行が完了すると、ソフトウェアコンポーネントはカプセル化され、矢印１０２で示す通り、新たに作成されたソフトウェアコンポーネント６６がソフトウェアコンポーネント領域５２に配置される。そして、このソフトウェアコンポーネント６６は、矢印１０６で示す通り、後述する設定領域１０４に提供可能となる。設定領域１０４には、新たに作成されたソフトウェアコンポーネント６６の複製１０８が配置される。これは、プログラミング技術の観点から、新たに作成されたソフトウェアコンポーネント６６によって予め規定された機能性または特性を記憶する記憶領域が予め用意されていることを意味する。
【０１０１】
矢印１０２、１０６で示したシーケンスの代わりとして、作成された第１の新たなソフトウェアコンポーネント９０を初めにソフトウェアコンポーネント領域５２に移送または配置せず、設定領域１０４に直接提供することも考えられる。この第１の新たなソフトウェアコンポーネント９０を提供した後、ユーザープログラムのプログラマが望む場合は、新たに作成されたソフトウェアコンポーネント６６をソフトウェアコンポーネント領域５２に配置することができる。
【０１０２】
符号１１０は、新たに作成される、グループコンポーネントとして具現化された第２のソフトウェアコンポーネントを示している。この新たに作成される第２のソフトウェアコンポーネント１１０に対しては、複数の機能面ブロック１１２が提供されている。これを一例として矢印１１４で示す。ここでの手順は、第１の新たなソフトウェアコンポーネント９０に関連して上述した手順に対応する。この場合は、機能面ブロック８６の複製１１６が作成されている。
【０１０３】
また、この第２の新たなソフトウェアコンポーネント１１０に対しては、複数のエレメンタリコンポーネント１１８が提供されている。これを矢印１２０で示す。この過程では、所定のソフトウェアコンポーネント６０の複製１２２が作成されている。これは、プログラミング技術の観点から、所定のソフトウェアコンポーネント６０によって指定された機能性および／または特性を記憶する記憶領域が提供されていることを意味する。これの追加として、あるいは、第２の新たなソフトウェアコンポーネント１１０に対しては、複数のグループコンポーネント１２４が提供されている。
【０１０４】
前記提供された複数の機能面ブロック１１２に対しては、いずれの場合も、処理に必要とする各機能面ブロックへの関連する入力を介した供給および／または各機能面ブロックによる決定と関連する出力を介した出力の対象となる論理変数、および／または中間変数、および／またはパラメータ、および／または信号がそれぞれ規定される。この規定は、第１の新たなソフトウェアコンポーネント９０に関連して上述した通りに行われるため、特定の手順およびより広範な情報に関しては、関連する説明を参照することができる。
【０１０５】
第１の新たなソフトウェアコンポーネント９０に関連して上述した通り、前記提供された複数の機能面ブロック１１２は、論理入力および論理出力を備えている。同様に、前記提供された複数のエレメンタリコンポーネント１１８、前記提供された複数のグループコンポーネント１２４、および新たに作成される第２のソフトウェアコンポーネント１１０についても、それぞれ論理入力および論理出力を備えている。ただし、これら論理入力および論理出力は、明瞭化のため図示していない。
【０１０６】
変数、および／またはパラメータ、および／または信号の規定後、第２の新たなソフトウェアコンポーネント１１０に対しては、接続部が作成される。これに関連して、前記複数の機能面ブロック１１２の論理入力の少なくとも一部および論理出力の少なくとも一部は、相互、前記複数のエレメンタリコンポーネント１１８および／もしくは前記複数のグループコンポーネント１２４の論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部、ならびに／または第２の新たなソフトウェアコンポーネント１１０の論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部に接続される。また、前記複数のエレメンタリコンポーネント１１８および／もしくは前記複数のグループコンポーネント１２４の論理入力の少なくとも一部および論理出力の少なくとも一部は、相互ならびに／または第２の新たなソフトウェアコンポーネント１１０の論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部に接続される。符号１２６は、作成された対応する接続部を示している。これら接続部の図形は、たとえば線を描画することによって生成可能である。機能面ブロックまたはソフトウェアコンポーネントと第２の新たなソフトウェアコンポーネント１１０との間に接続部が存在しないこと、およびエレメンタリコンポーネントとグループコンポーネントとの間に接続部が存在しないことは、何ら限定的な趣旨を意図するものではない。
【０１０７】
また、前記提供された複数の機能面ブロック１１２の少なくとも一部に対しては、関数プログラムが作成される。この作成は、第１の新たなソフトウェアコンポーネント９０に関連して上述した場合と同様に行われる。
第２の新たなソフトウェアコンポーネント１１０の作成に必要なすべての工程が完了すると、ソフトウェアコンポーネントはカプセル化され、矢印１２８で示す通り、新たに作成されたソフトウェアコンポーネント７０がソフトウェアコンポーネント領域５２に配置される。そして、この新たに作成されたソフトウェアコンポーネント７０は、ユーザープログラムの作成中、矢印１３０で示す通り、設定領域１０４に提供可能となる。これに関連して、新たに作成されたソフトウェアコンポーネント７０の複製１３２が作成される。同様に、第１の新たなソフトウェアコンポーネント９０に関連して上述した別の手順も使用可能である。
【０１０８】
これら新たに作成される２つのソフトウェアコンポーネント９０、１１０に対しては、個々の機能面ブロックへの供給および／または出力の対象となる変数、および／またはパラメータ、および／または信号を規定することによって、これらの機能面ブロックが含まれるソフトウェアコンポーネントへの供給および／または出力の対象となる変数、および／またはパラメータ、および／または信号が自動的に規定される。あるいは、ソフトウェアコンポーネントへの供給および／または出力の対象となる変数、および／またはパラメータ、および／または信号は、独立した工程において、ユーザープログラム３８のプログラマが規定することも可能である。
【０１０９】
作業領域８８には、第３の新たなソフトウェアコンポーネント１３４が含まれる。このソフトウェアコンポーネント１３４は、複数の機能面ブロック１３６を含むエレメンタリコンポーネントとして具現化されている。この第３の新たなソフトウェアコンポーネント１３４の作成においては、基本的に前記所定のソフトウェアコンポーネント６２を使用する。この所定のソフトウェアコンポーネント６２は、カプセル化ソフトウェアコンポーネントであり、処理モードに変更されて、第３の新たなソフトウェアコンポーネント１３４が作業領域８８に配置される。
【０１１０】
前記複数の機能面ブロック１３６に含まれる個々の機能面ブロック、これら機能面ブロック間の接続部、および／または第３の新たなソフトウェアコンポーネント１３４への接続部は、前記所定のソフトウェアコンポーネント６２に存在するような接続部に対応している。そして、処理モードに基づいて、以下のような修正を行うことができる。すなわち、個々の機能面ブロックは削除および／または追加が可能である。個々の機能面ブロック間の接続部および／または第３の新たなソフトウェアコンポーネント１３４への接続部は、削除および／または追加が可能である。また、既存の機能面ブロックに含まれる関数プログラムの修正が可能である。以上から、既存の所定のソフトウェアコンポーネントに基づいて、既に利用可能なソフトウェアコンポーネントの修正を行うことにより、新たなソフトウェアコンポーネントを容易に作成することができる。
【０１１１】
前記所定のソフトウェアコンポーネント６２の処理モードへの変換および第３の新たなソフトウェアコンポーネント１３４の配置は、矢印１３８で示す。この新たなソフトウェアコンポーネント１３４の作成に必要なすべての工程が完了すると、ソフトウェアコンポーネントはカプセル化され、矢印１４０で示す通り、新たに作成されたソフトウェアコンポーネント６８がソフトウェアコンポーネント領域５２に配置される。そして、この新たに作成されたソフトウェアコンポーネント６８は、ユーザープログラムの作成中、矢印１４４で示す通り、その複製１４２が設定領域１０４に配置されることにより提供可能となる。この特定のシーケンスに関する限りは、第１の新たなソフトウェアコンポーネント９０に関連して上述した別のシーケンスも考えられる。第３の新たなソフトウェアコンポーネント１３４がエレメンタリコンポーネントとして具現化されている図２の構成は、何ら限定的な趣旨を意図するものではない。同様に、新たなソフトウェアコンポーネントは、グループコンポーネントとして具現化された既存の所定のソフトウェアコンポーネントに基づいて作成することもできる。
【０１１２】
ソフトウェアコンポーネント領域５２について考える際は、新たに作成されたソフトウェアコンポーネント６６〜７０が既に配置されて存在するものと見なしたが、作業領域８８について考える際は、これらのコンポーネントを作成対象と見なした。図２においては、ユーザープログラム作成中の様々な手順をまとめて図示しているため、これらの仮定は矛盾するものではなく、一例に過ぎない。
【０１１３】
ユーザープログラム３８の作成中は、複数のソフトウェアコンポーネント１４６が提供される。上述するとともに矢印１０６、１３０、１４４で示した通り、ここでは、新たに作成されたソフトウェアコンポーネント６６〜７０を提供可能である。これの追加として、あるいは、矢印１４８で示す通り、所定のソフトウェアコンポーネント５６〜６２も提供可能である。この場合は、所定のソフトウェアコンポーネント５６の複製１５０が設定領域１０４に配置されている。また、一例として矢印１５４で示す通り、複数の機能面ブロック１５２が提供される。設定領域１０４には、機能面ブロック７６の複製１５６が配置されている。
【０１１４】
ユーザープログラム３８は、階層構造を有する。最上位階層は、前記提供された複数のソフトウェアコンポーネント１４６によって規定される。この提供された複数のソフトウェアコンポーネント１４６がグループコンポーネントとして具現化されたソフトウェアコンポーネントを含む場合は、このソフトウェアコンポーネントに含まれる複数のソフトウェアコンポーネントによって、最上位階層の下位の階層が規定される。この一例として、複製１３２が挙げられる。
【０１１５】
点線は、複数のソフトウェアコンポーネント１４６の一部および複数の機能面ブロック１５２の一部を組み合わせて新たなソフトウェアコンポーネント１５８を作成可能あることを示している。これは、対象の階層で複雑性を低減するための対策である。このように組み合わされたソフトウェアコンポーネント１５８が最上位階層に作成されると、新たな最上位階層が規定され、その下位に、以前の最上位階層が２番目の階層として存在する。
【０１１６】
組み合わせソフトウェアコンポーネントの作成を最上位階層に関連して説明したが、これは、何ら限定的な趣旨を意図するものではない。したがって、組み合わせソフトウェアコンポーネントは、最上位階層の下位の階層にも作成することができる。この場合、設定領域１０４は、最上位階層のソフトウェアコンポーネントおよび機能面ブロックは含まず、対象の階層のソフトウェアコンポーネントおよび機能面ブロックを含む。したがって、この新たな方法を用いることにより、トップダウンおよびボトムアップの両方の考え方でユーザープログラム３８を作成することができる。前記新たな方法および装置の概念に基づけば、ユーザープログラムの作成において、これら２つの考え方を混ぜ合わせることも可能である。
【０１１７】
また、如何なる階層にも機能面ブロックを追加することができる。このことは、たとえば組み合わせソフトウェアコンポーネントの作成中に必要であり、たとえば部分ロック面を表す制御面に割り当てられた機能面ブロックとの関連性が考えられる。また、複雑性を低減するため、機能面ブロックだけでなくソフトウェアコンポーネントをユーザープログラムの任意の階層に挿入することもできる。
【０１１８】
図２の構成は、何ら限定的な趣旨を意図するものではない。したがって、個々の領域５２、７２、８８、９８、１０４を選択的に組み合わせた構成の代わりに、各領域を独立したグラフィカルユーザーインターフェースに配置すること、または任意の従属組み合わせを独立したグラフィカルユーザーインターフェースに配置することも可能である。また、新たに作成されたソフトウェアコンポーネント６６〜７０を独立したソフトウェアコンポーネント領域に含めることも可能である。さらに、３つの新たなソフトウェアコンポーネント９０、１１０、１３４が平行に処理される作業領域８８の構成は、何ら限定的な趣旨を意図するものではない。たとえば、これら３つの新たなソフトウェアコンポーネントは、作業領域８８を利用して、時間的に連続して個別に作成することも可能である。
【０１１９】
図３においては、第２のグラフィカルユーザーインターフェース全体を符号１７０で示している。
第２のグラフィカルユーザーインターフェース１７０は、提供された複数のソフトウェアコンポーネント１７４が配置されたコンポーネント領域１７２を備えている。これらのソフトウェアコンポーネントは、最上位階層のコンポーネントである。そして、これら複数のソフトウェアコンポーネント１７４を論理的に組み合わせることによって、コンポーネントサブプログラムが作成される。この目的のため、複数の接続部１７６で示すように、ソフトウェアコンポーネントの論理入力の少なくとも一部および論理出力の少なくとも一部が互いに接続される。各ソフトウェアコンポーネントに含まれる内部の論理的組み合わせに基づいて、ソフトウェアコンポーネントに配置されたエレメンタリコンポーネントおよび／またはグループコンポーネントも自動的に組み合わされる。その結果、コンポーネントサブプログラムの作成中は、最上位階層に含まれるソフトウェアコンポーネントを論理的に組み合わせれば十分である。最上位階層の下位の階層に含まれるソフトウェアコンポーネントについては、明確に考慮する必要がない。最上位階層に含まれる機能面ブロックの論理的組み合わせは、たとえば設定領域１０４で行うことができる。あるいは、明瞭化のため図示してはいないが、別の独立領域で行うこともできる。概して、機能面ブロックの論理入力の少なくとも一部および論理出力の少なくとも一部は、相互、ならびに／または提供されたソフトウェアコンポーネントの論理入力の少なくとも一部および／もしくは論理出力の少なくとも一部に接続される。その結果、コンポーネントサブプログラムの作成には、上述したソフトウェアコンポーネントの論理的組み合わせ以外に、機能面ブロックの論理的組み合わせが含まれる。機能面ブロックの論理的組み合わせにおいては、機能面ブロックの論理入力および／または論理出力の組み合わせの結果として、一方ではソフトウェアコンポーネントの論理入力および／または論理出力とともに、ソフトウェアコンポーネントの論理入力および論理出力の論理的組み合わせが行われ、他方では、ソフトウェアコンポーネントの論理入力および論理出力が互いに接続される。
【０１２０】
複数のハードウェアコンポーネントに対して複数のソフトウェアコンポーネントを提供することは、少なくとも１つのセンサーおよび少なくとも１つのアクチュエータをそれぞれ含むハードウェアコンポーネントに対応するソフトウェアコンポーネントのみを提供することを意味するものではない。少なくとも１つのセンサーおよび少なくとも１つのアクチュエータを同時に含まないソフトウェアコンポーネントについても提供可能である。たとえば、安全関連のセンサー、特に非常停止用ボタンに対応するソフトウェアコンポーネントも提供される。
【０１２１】
また、第２のグラフィカルユーザーインターフェース１７０は、第１の機能面領域１７８を備えている。そして、この第１の機能面領域１７８には、複数の機能面ブロック１８０が配置されている。これらの各機能面ブロックは、同じ制御面に割り当てられている。本実施形態は、部分標準制御面を表す標準制御面に関する。前記複数の機能面ブロック１８０は、ユーザープログラム３８のすべての階層に含まれ、具体的には１つの階層に独立して含まれるかまたはソフトウェアコンポーネントの一部として含まれるかに関わらず標準制御面に割り当てられた機能面ブロックを含む。
【０１２２】
また、第２のグラフィカルユーザーインターフェース１７０は、センサー領域１８２を備えている。そして、このセンサー領域１８２には、複数のセンサー図形記号１８４が配置されている。センサー領域１８２には、制御対象のシステムに含まれる各センサーに関連するセンサー図形記号が含まれる。前記複数のセンサー図形記号１８４は、安全制御面に関して制御対象のシステムに含まれるセンサーおよび標準制御面に関して制御対象のシステムに含まれるセンサーの両者を表す。
【０１２３】
第２のグラフィカルユーザーインターフェース１７０は、アクチュエータ領域１８６をさらに備えている。そして、このアクチュエータ領域１８６には、複数のアクチュエータ図形記号１８８が配置されている。アクチュエータ領域１８６には、制御対象のシステムに含まれる各アクチュエータに関連するアクチュエータ図形記号が含まれる。前記複数のアクチュエータ図形記号１８８は、安全制御面に関して制御対象のシステムに含まれるアクチュエータおよび標準制御面に関して制御対象のシステムに含まれるアクチュエータの両者を表す。
【０１２４】
第１の機能面領域１７８に含まれる前記複数の機能面ブロック１８０に対しては、機能面サブプログラムが作成される。この目的のため、第１の機能面領域１７８に含まれる一部の機能面ブロックに対しては、その入出力両者にＩ／Ｏマッピングと称するものを行う。これは、信号入力の少なくとも一部が、センサー信号が各機能面ブロックで処理されるセンサーに割り当てられることを意味する。これを一例として矢印１９０で示す。さらに、信号出力の少なくとも一部が、各機能面ブロックで決定された出力信号により駆動されるアクチュエータに割り当てられる。これを一例として矢印１９２で示す。あるいは、入力領域１９４へのテキスト入力によってＩ／Ｏマッピングを行うこともできる。さらには、個々の機能面ブロックと個々のセンサー図形記号またはアクチュエータ図形記号との間に線を描画することによってＩ／Ｏマッピングを行うこともできる。
【０１２５】
機能面サブプログラムの作成中は、機能面ブロックのパラメータ化も同時に行うことができる。これに関連して、各機能面ブロックに含まれる関数プログラムで使用するパラメータのパラメータ値を個々の機能面ブロックに対して予め規定することができる。これらパラメータ値の規定は、入力領域１９４へのテキスト入力によって行うことができる。
また、第２のグラフィカルユーザーインターフェース１７０は、第２の機能面領域１９６を備えている。そして、この第２の機能面領域１９６には、複数の機能面ブロック１９８が配置されている。本実施形態では、これらの機能面ブロックが部分安全制御面を表す安全制御面に割り当てられている。また、これらの機能面ブロックに対しては、機能面サブプログラムも作成される。これは、これらの機能面ブロックに対して、一例として矢印２００、２０２で示すＩ／Ｏマッピングが行われることを意味する。これに関する詳細は、第１の機能面領域１７８に関連する記述内容を参照することができる。必要に応じて実施すべきパラメータ化についても、第１の機能面領域１７８に関連する記述内容を参照することができる。
【０１２６】
また、機能面サブプログラムの作成中に、第１の制御面に割り当てられた機能面ブロックおよび第２の制御面に割り当てられた機能面ブロックを考慮に入れることも考えられる。
ここで留意すべきは、図３に関連する記述内容において、制御対象のシステム全体すなわちすべての階層の対応するユニットが領域１７８、１８２、１８６に配置されているものと見なしたことである。このことは、何ら限定的な趣旨を意図するものではない。たとえば、機能面サブプログラムの作成中に階層を１つだけ考慮する場合は、この階層に含まれるユニットのみを領域１７８、１８２、１８６に配置することができる。
【０１２７】
図４においては、制御対象のシステム全体の一例を符号２１０で示している。制御対象のシステム２１０は、ハンドリングステーション２１２、プロセスステーション２１４、およびテストステーション２１６という３つの副領域から成る。ハンドリングステーション２１２は、プロセスステーション２１４にワークピースを充填する際に使用する。ワークピースは、プロセスステーション２１４にて加工された後、ハンドリングステーション２１２によって、テストステーション２１６に送られる。そして、加工されたワークピースが対応する検査基準を満足するか否かの確認が行われる。検査に合格すると、プロセスステーション２１４には、加工するワークピースを新たに充填することができる。さらに、制御対象のシステム２１０は、制御対象のシステム２１０の電源を切ってフェイルセーフ状態に移行させるための非常停止用ボタン２１８を有する。また、図４には、たとえば制御対象のシステム２１０の状態に関する診断データまたは診断情報を表示可能な表示部２２０を示している。このシステム２１０は、安全制御装置１８によって制御される。
【０１２８】
図５ａは、最上位階層に含まれる制御対象のシステム２１０のソフトウェアコンポーネントおよび機能面ブロックを示している。
概して、制御対象のシステム２１０に対しては、非常停止用ボタン２１８に対応し、個別コンポーネントとして具現化された第１のソフトウェアコンポーネント２３２、ハンドリングステーション２１２に対応する第２のソフトウェアコンポーネント２３４、プロセスステーション２１４に対応する第３のソフトウェアコンポーネント２３６、テストステーション２１６に対応する第４のソフトウェアコンポーネント２３８といった複数のソフトウェアコンポーネント２３０が提供される。これらの各ソフトウェアコンポーネント２３４、２３６、２３８は、グループコンポーネントとして具現化されている。また、表示部２２０に割り当てられ、エレメンタリコンポーネントとして具現化された第５のソフトウェアコンポーネント２４０も含まれる。これら提供された各ソフトウェアコンポーネント２３４、２３６、２３８は、制御対象のシステムに存在する実際のメカトロコンポーネントを表す。
【０１２９】
第１のソフトウェアコンポーネント２３２は、第１の論理接続２４２を介して、第２のソフトウェアコンポーネント２３４、第３のソフトウェアコンポーネント２３６、および第４のソフトウェアコンポーネント２３８に接続されている。非常停止用ボタン２１８が非作動である限り、第１のソフトウェアコンポーネント２３２は、第１の論理接続２４２を介して接続されたソフトウェアコンポーネント２３４、２３６、２３８に供給されるイネーブル信号を出力する。このイネーブル信号は、これらのソフトウェアコンポーネントを解除して制御対象のシステム２１０の動作を可能にする。
【０１３０】
ソフトウェアコンポーネント２３４、２３６、２３８は、第２の論理接続２４４によって互いに接続されている。そして、ソフトウェアコンポーネント２３４、２３６、２３８間では、第２の論理接続２４４を介して、シーケンス制御信号の交換が行われる。第２のソフトウェアコンポーネント２３４は、第３のソフトウェアコンポーネント２３６に供給される信号を生成する。プロセスステーション２１４に対しては、この信号により、ハンドリングステーション２１２の作業工程が完了したためプロセスステーション２１４の作業工程の処理を開始できる旨が示される。第３のソフトウェアコンポーネント２３６は、第４のソフトウェアコンポーネント２３８に供給される信号を生成する。テストステーション２１６に対しては、この信号により、プロセスステーション２１４の作業工程が完了したためテストステーション２１６の作業工程の処理を開始できる旨が示される。第４のソフトウェアコンポーネント２３８は、第３のソフトウェアコンポーネント２３６に供給される信号を生成する。この信号により、加工されたワークピースのテスト中におけるテストステーション２１６での判定結果がプロセスステーション２１４に伝達される。第３のソフトウェアコンポーネント２３６は、第２のソフトウェアコンポーネント２３４に供給される信号を生成する。この信号により、プロセスステーション２１４に障害が存在するか否かがハンドリングステーション２１２に伝達される。
【０１３１】
前記複数のソフトウェアコンポーネント２３０以外に、複数の機能面ブロック２４６も提供されている。特に、標準制御面に割り当てられた第１の機能面ブロック２４８、安全制御面に割り当てられた第２の機能面ブロック２５０、診断面に割り当てられた第３の機能面ブロック２５２、視覚化面に割り当てられた第４の機能面ブロック２５４、駆動制御面に割り当てられた第５の機能面ブロック２５６、およびロック面に割り当てられた第６の機能面ブロック２５８が存在する。第４の機能面ブロック２５４は、第５のソフトウェアコンポーネント２４０に接続されていると都合が良い。同様に、第３の機能面ブロック２５２によって生成された診断メッセージの少なくとも一部は、第５のソフトウェアコンポーネント２４０を用いて表示可能である。
【０１３２】
図４および図５を参照して、前記新たな方法および装置の大きな利点を説明する。たとえば、既存のプロセスステーション２１４と同じ第２のプロセスステーションを挿入することによってシステム２１０を修正する場合は、プロセスステーション２１４に対応する既存のソフトウェアコンポーネント２３６の複製を１つだけ、ユーザープログラム３８の最上位階層に挿入し、これに対応して論理的に接続すればよい。これにより、高階層の１つで、既存のソフトウェアコンポーネントを完全に再利用できる。その結果、既存のユーザープログラムを非常に効率良く適応できる。ここでは、ハンドリングステーション２１２が両プロセスステーションを作動できるように機械的に具現化されているものとする。なお、ハンドリングステーション２１２の可動範囲を拡張するには、ソフトウェアコンポーネント２３４に含まれる関数プログラムを適宜修正する必要がある。
【０１３３】
図６においては、プロセスステーションの補助コンポーネント全体を符号２１４で示している。以下では、プロセスステーションおよびこれに含まれるハードウェアコンポーネントのみを考慮するが、何ら限定的な趣旨を意図するものではない。また、以下の記述内容は、ハンドリングステーション２１２およびテストステーション２１６にも同様に当てはまる。
【０１３４】
プロセスステーション２１４は、円形テーブル２７０、テストモジュール２７２、穴あけモジュール２７４、および排出モジュール２７６を具備する。円形テーブル２７０は、プロセスステーション２１４の個々のモジュール２７２、２７４、２７６間ですべてのワークピースを移送することができる。テストモジュール２７２は、加工対象のワークピースが所定の特性を有するか否かを確認する際に使用する。穴あけモジュール２７４は、プロセスステーション２１４内に配置されたワークピースの加工に使用する。排出モジュール２７６は、加工されたワークピースを取り外してテストステーション２１６に送る際に使用する。あるいは、ハンドリングステーション２１２を用いて加工されたワークピースを移送することもできる。プロセスステーション２１４には、非常停止用ボタン２７８が割り当てられている。
【０１３５】
第３のソフトウェアコンポーネント２３６に含まれるソフトウェアコンポーネントおよび機能面ブロックを図７ａに示す。
符号２８０は、非常停止用ボタン２７８に対応し、エレメンタリコンポーネントとして具現化された第６のソフトウェアコンポーネントを表す。符号２８２は、円形テーブル２７０に対応する第７のソフトウェアコンポーネントを表す。符合２８４は、テストモジュール２７２に対応する第８のソフトウェアコンポーネントを表す。符合２８６は、穴あけモジュール２７４に対応する第９のソフトウェアコンポーネントを表す。符合２８８は、排出モジュール２７６に対応する第１０のソフトウェアコンポーネントを表す。ソフトウェアコンポーネント２８２、２８４、２８６、２８８は、グループコンポーネントとして具現化されている。
【０１３６】
第６のソフトウェアコンポーネント２８０で生成されたイネーブル信号は、論理接続２９０を介してソフトウェアコンポーネント２８２、２８４、２８６、２８８に供給される。イネーブル信号の詳細については、図５ａに関連する記述内容を参照することができる。ソフトウェアコンポーネント２８２、２８４、２８６、２８８は、第４の論理接続２９２を介して互いに接続されている。シーケンス制御は、第４の論理接続２９２を介してソフトウェアコンポーネント２８２、２８４、２８６、２８８間で交換される対応する信号によって実現される。第８のソフトウェアコンポーネント２８４、第９のソフトウェアコンポーネント２８６、および第１０のソフトウェアコンポーネント２８８にそれぞれ供給される３つの信号は、第７のソフトウェアコンポーネント２８２で生成される。これらの信号は、各ソフトウェアコンポーネントが対応するハードウェアコンポーネントを示しているため、円形テーブル２７０はいずれの場合も規定位置を取る。また、各ソフトウェアコンポーネント２８４、２８６、２８８においては、第７のソフトウェアコンポーネント２８２に供給される信号が生成される。これらの各信号は、モジュール２７２、２７４、２７６に対して提供された作業工程が処理されていることを示す。第８のソフトウェアモジュール２８４においては、第７のソフトウェアコンポーネント２８２に供給される別の信号が生成される。この信号は、テストモジュール２７２で行われたテストの結果を表している。この結果の関数として、円形テーブル２７０の操作方法も影響を受ける可能性がある。
【０１３７】
また、第３のソフトウェアコンポーネント２３６は、標準制御面に割り当てられた第７の機能面ブロック２９４、安全制御面に割り当てられた第８の機能面ブロック２９６、診断面に割り当てられた第９の機能面ブロック２９８、視覚化面に割り当てられた第１０の機能面ブロック３００、駆動制御面に割り当てられた第１１の機能面ブロック３０２、およびロック面に割り当てられた第１２の機能面ブロック３０４といった複数の機能面ブロックを有する。
【０１３８】
プロセスステーション２１４を参照して、ロック面の意味を説明する。たとえば、円形テーブル２７０と穴あけモジュール２７４との相互作用は、機能面ブロック３０４と容易に適合させることができる。第９のソフトウェアコンポーネント２８６で生成される信号は、機能面ブロック３０４で生成される。この信号は、穴あけモジュール２７４が基準位置を取ることを示す。この位置において、モーター３１０は、円形テーブル２７０が自由に回転できない高さとなる。この基準位置信号が現れるまで、機能面ブロック３０４は、円形テーブル２７０を対象としたイネーブル信号を生成しない。これにより、円形テーブル２７０の回転運動の際に、穴あけモジュール２７４が損傷を受けることはない。
【０１３９】
図８においては、穴あけモジュール全体を符号２７４で示している。穴あけモジュール２７４は、機械的、電気的、または電気機械的機能を有する個別のコンポーネントとして、モーター３１０、搬送シリンダ３１２、および穴あけシリンダ３１４を有する。モーター３１０は、２つのシリンダ３１２、３１４を用いることにより、加工対象のワークピースに対して、案内部に沿って移動させることができる。具体的には、垂直方向に穴あけシリンダ３１４を使用し、水平方向に搬送シリンダ３１２を使用する。穴あけモジュール２７４には、非常停止用ボタン３１６が割り当てられている。
【０１４０】
第９のソフトウェアコンポーネント２８６に含まれるソフトウェアコンポーネントおよび機能面ブロックを図９ａに示す。ここには、非常停止用ボタン３１６に対応する第１１のソフトウェアコンポーネント３２０、穴あけシリンダ３１４に対応する第１２のソフトウェアコンポーネント３２２、搬送シリンダ３１２に対応する第１３のソフトウェアコンポーネント３２４、およびモーター３１０に対応する第１４のソフトウェアコンポーネント３２６が存在する。これらのソフトウェアコンポーネント３２０、３２２、３２４、３２６は、エレメンタリコンポーネントとして具現化されている。第１１のソフトウェアコンポーネント３２０で生成されたイネーブル信号は、第５の論理接続３２８を介してソフトウェアコンポーネント３２２、３２４、３２６に供給される。イネーブル信号の詳細については、図５ａに関連する記述内容を参照することができる。
【０１４１】
また、第９のソフトウェアコンポーネント２８６は、標準制御面に割り当てられた第１３の機能面ブロック３３０、安全制御面に割り当てられた第１４の機能面ブロック３３２、診断面に割り当てられた第１５の機能面ブロック３３４、視覚化面に割り当てられた第１６の機能面ブロック３３６、駆動制御面に割り当てられた第１７の機能面ブロック３３８、およびロック面に割り当てられた第１８の機能面ブロック３４０を具備する。イネーブル信号は、第５の論理接続３２８を介して第１４の機能面ブロック３３２に供給される。
【０１４２】
機能面ブロック３３０、３３２およびソフトウェアコンポーネント３２２、３２４、３２６は、第６の論理接続３４２を介して互いに接続されている。
第１２のソフトウェアコンポーネント３２２では、穴あけシリンダ３１４の状態に対応する信号が生成される。この信号は、第１３の機能面ブロック３３０および第１４の機能面ブロック３３２の両者に供給される。第１４の機能面ブロック３３２は、供給される信号に応じて、第１４のソフトウェアコンポーネント３２６に供給される信号を生成する。モーター３１０は、この信号によりオン／オフ切り替えが可能である。第１３のソフトウェアコンポーネント３２４は、搬送シリンダ３１２の状態を表す信号を生成する。この信号は、第１３の機能面ブロック３３０に供給される。第１４のソフトウェアコンポーネント３２６は、モーター３１０の状態を表す信号を生成する。この信号は、第１３の機能面ブロック３３０に供給される。第１３の機能面ブロック３３０では、供給される信号、すなわち前記３つの信号および加工対象のワークピースが穴あけモジュール２７４下の円形テーブル２７０のレセプタクルに配置されていることを示す信号に応じて、第１２のソフトウェアコンポーネント３２２、第１３のソフトウェアコンポーネント３２４、および第１４のソフトウェアコンポーネント３２６にそれぞれ供給される最大穴あけ径のパラメータを表す３つの信号を生成する。穴あけシリンダ３１４は、第１２のソフトウェアコンポーネント３２２に供給される信号によって起動される。搬送シリンダ３１２は、第１３のソフトウェアコンポーネント３２４に供給される信号によって起動される。モーター３１０は、第１４のソフトウェアコンポーネント３２６に供給される信号によって起動される。
【０１４３】
図１０は、制御対象のシステム２１０に含まれるシリンダに対応するソフトウェアコンポーネントに含まれる機能面ブロックを示している。本実施形態では、たとえば第１２のソフトウェアコンポーネント３２２が該当する。ただし、このことは何ら限定的な趣旨を意図するものではなく、以下の記述内容は、第１３のソフトウェアコンポーネント３２４にも当てはまる。
【０１４４】
第１２のソフトウェアコンポーネント３２２は、標準制御面に割り当てられた第１９の機能面ブロック３５０、安全制御面に割り当てられた第２０の機能面ブロック３５２、診断面に割り当てられた第２１の機能面ブロック３５４、および視覚化面に割り当てられた第２２の機能面ブロック３５６を具備する。また、第１２のソフトウェアコンポーネントは、穴あけシリンダ３１４の対応する作動が生じる場合には、駆動制御面に割り当てられた第２３の機能面ブロック３５８を任意で備えることもできる。この選択肢は、点線で示している。通常、駆動制御面に割り当てられた機能面ブロックは、この階層に提供する必要がない。また、駆動制御面に関連する制御タスクは通常、２番目に高い階層に含まれる駆動制御面に割り当てられた機能面ブロックから移送される。
【０１４５】
機能面ブロック３５０、３５２、３５４、３５６は、第７の論理接続３６０を介して互いに接続されるとともに、第１２のソフトウェアコンポーネント３２２の入力および出力に接続されている。第１９の機能面ブロック３５０は、第１２のソフトウェアコンポーネント３２２の入力から供給される信号によって起動される。第２０の機能面ブロック３５２には、接続部（不図示）を介してイネーブル信号が供給される。また、第１９の機能面ブロック３５０には、好ましくは終端位置スイッチとして具現化された２つの終端位置センサーが割り当てられている。ピストンロッドがシリンダハウジングから最大限に伸長するするピストンの位置は、第１の終端位置センサーによって検知される。ピストンロッドがシリンダハウジングから最小限に伸長するするピストンの終端位置は、第２の終端位置センサーによって検知される。
【０１４６】
第１９の機能面ブロック３５０において利用可能な変数に応じて、穴あけシリンダ３１４の状態を表す変数が生成される。この変数は、一方では第１２のソフトウェアコンポーネント３２２の出力に供給され、他方では第２２の機能面ブロック３５６に供給される。この変数に応じて、第２２の機能面ブロック３５６では、穴あけシリンダにて設定されるストロークを表す変数が生成される。この変数は、たとえば制御対象のシステム２１０のオペレータに対して対応する情報を表示可能な表示部２２０に供給可能である。
【０１４７】
第１９の機能面ブロック３５０においては、ピストンロッドがシリンダハウジングから最小限に突出する終端位置へとピストンが移動するように穴あけシリンダ３１４を作動させる変数が生成される。さらに、第１９の機能面ブロック３５０においては、ピストンロッドがシリンダハウジングから最大限に突出する終端位置へとピストンが移動するように穴あけシリンダ３１４を作動させる変数が生成される。これら２つの変数はそれぞれ、第１９の機能面ブロック３５０の出力において提供される。
【０１４８】
第２０の機能面ブロック３５２においては、ピストンのシリンダハウジング内方への移動が穴あけシリンダ３１４に対して有効であることを示す第１の変数と、ピストンのシリンダハウジングから外方への移動が穴あけシリンダ３１４に対して有効であることを示す第２の変数との２つの変数が生成される。これら２つの変数はそれぞれ、第２０の機能面ブロック３５２の出力において提供される。第１９の機能面ブロックおよび第２０の機能面ブロックからそれぞれ提供される変数は、論理ＡＮＤ関数にしたがって互いに組み合わされることにより、２つ一組となる。これらの組み合わせ変数は、第１２のソフトウェアコンポーネント３２２の対応する出力において利用可能であるとともに、穴あけシリンダ３１４の作動用に供給される。
【０１４９】
図１０の構成に基づけば、穴あけシリンダ３１４に固有の全体機能性およびその特徴を表す全体機能性が、部分標準制御面、部分安全制御面、部分診断面、および部分視覚化面という４つの部分機能面に分解されていることが分かる。したがって、穴あけシリンダ３１４は、これら４つの各部分機能面の下で別々に考慮することができる。ユーザープログラムに用いられるすべてのソフトウェアコンポーネントはこの原理に基づいて構成されているため、ユーザープログラムは、機能面サブプログラムを用いることにより、個々の制御面にしたがって別々に作成することができる。
【０１５０】
２つの機能面ブロック３５０、３５４間の点線の接続部は、これら２つの機能面ブロック間で生じるデータ交換を表しており、出力データまたは内部データを含む。このようなデータ交換は、前述の図面または後述の図面に含まれる個々の機能面ブロック間でも生じる可能性がある。ただし、これらの図面では、明瞭化のため図示していない。
図１１は、非常停止用ボタンに対応するソフトウェアコンポーネントに含まれる機能面ブロックを示している。たとえば、非常停止用ボタン３１６に対応する第１１のソフトウェアコンポーネント３２０が該当する。このことは、何ら限定的な趣旨を意図するものではなく、本実施形態に含まれ、非常停止用ボタンに対応する別のソフトウェアコンポーネントも該当する。
【０１５１】
第１１のソフトウェアコンポーネント３２０は、安全制御面に割り当てられた第２４の機能面ブロック３７０、および診断面に割り当てられた第２５の機能面ブロック３７２を具備する。第１１のソフトウェアコンポーネント３２０の出力に供給されるイネーブル信号は、供給される変数の関数として第２４の機能面ブロック３７０で決定される。さらに、第２４の機能面ブロック３７０においては、非常停止用ボタン３１６の状態を表す信号が生成される。この信号は、第２５の機能面ブロック３７２に供給されるため、診断目的に利用可能である。これの追加として、あるいは、第２４の機能面ブロック３７０により生成されたイネーブル信号は、第２５の機能面ブロック３７２に供給することも可能である。たとえば、第２５の機能面ブロック３７２においては、「非常停止用ボタン押下」「非常停止用ボタンの接点詰まり」「非常停止用ボタンの２つの出力信号が同期」といった非常停止用ボタン３１６のシステム状態を検出可能である。
【０１５２】
ソフトウェアコンポーネント３２０は、第２４の機能面ブロック３７０に記憶された機能性パラメータを備えているのが好ましい。この機能性パラメータにより、記憶された複数の機能性の１つを起動することができる。たとえば、非常停止用ボタン３１６が肯定応答入力を伴う場合は、対応する機能性パラメータ値を規定することによって、肯定応答入力のマッピングを行う機能性を起動することができる。この場合は、肯定応答入力の評価が行われるため、そこに存在する肯定応答信号が検出されて、さらに評価が行われる。一方、非常停止用ボタン３１６が肯定応答入力を伴わない場合は、対応する機能性パラメータ値を規定することによって、肯定応答入力のマッピングを伴わない機能性を起動することができる。この場合は、肯定応答入力の評価は行われない。
【０１５３】
図１０および図１１から明らかなように、グループコンポーネントとして具現化されたソフトウェアコンポーネントに含まれるソフトウェアコンポーネントおよび／または機能面ブロックの少なくとも一部は、前記ソフトウェアコンポーネントの入力および／または出力に接続されている。対応する接続部は、明瞭化のため図７ａ、図７ｂ、図７ｃ、図９ａ、図９ｂ、図９ｃには示していないが、何ら限定的な趣旨を意図するものではない。
【０１５４】
図１２は、符号３８０で示される機能面ブロック全体の概略構造を示している。
機能面ブロック３８０は、前記機能面ブロックが割り当てられた制御面を規定する識別子が記憶された識別部３８２を有する。また、機能面ブロック３８０は、複数の入力３８６および複数の出力３８８が組み合わされたインターフェース部３８４を有する。図１２に示すように、複数の入力３８６には、機能面ブロック３８０に論理変数および／または中間変数を供給可能な第１の種類の入力、機能面ブロック３８０にパラメータを供給可能な第２の種類の入力、および機能面ブロック３８０にセンサー信号を供給可能な第３の種類の入力という３つの異なる入力が含まれる。同様に、複数の出力３８８には、機能面ブロック３８０から論理変数および／または中間変数を出力可能な第１の種類の出力、機能面ブロック３８０からパラメータを出力可能な第２の種類の出力、および機能面ブロック３８０から出力信号を出力可能な第３の種類の出力という３つの異なる出力が含まれる。
【０１５５】
また、機能面ブロック３８０は、前記機能面ブロックが含まれるソフトウェアコンポーネントが対応するハードウェアコンポーネントに関して機能面特性を規定する関数プログラムが記憶された関数部を具備する。さらに、機能面ブロック３８０は、関数プログラムで処理されるパラメータのパラメータ値が記憶されたパラメータ部を具備する。機能面ブロック３８０に含まれるこれらのブロックは、明瞭化のため組み合わせてはいない。
【０１５６】
診断面に割り当てられる機能面ブロックに記憶された関数プログラムは、評価対象の診断条件を含む。さらに、この関数プログラムは、診断条件の評価により得られる結果に応じて、メッセージおよび改善措置として表示されるテキストを含む。視覚化面に割り当てられる機能面ブロックに記憶された関数プログラムは、グラフィカルインターフェースの制御を規定するユーザープログラムの範囲を含む。たとえば、ユーザープログラムの処理中に得られるデータまたはハードウェアコンポーネントに生じる状態は、モニターまたはディスプレイを用いたグラフィカルインターフェースにより表示される。標準制御面に割り当てられる機能面ブロックに記憶された関数プログラムは、標準制御装置の範囲内で処理される制御タスク、具体的には、機能面ブロックが含まれるソフトウェアコンポーネントが対応するハードウェアコンポーネント用の制御タスクを規定する。これに対応して、安全制御装置の範囲内で処理される制御タスクは、安全制御面に割り当てられる機能面ブロックに記憶された関数プログラムによって規定される。
【０１５７】
以上の記述内容から明らかなように、入力信号の関数として決定される出力信号は、必ずしも技術制御の意味での出力信号ではない。技術制御の意味では、たとえばアクチュエータ、モーター、シリンダ、またはブレーカー等の駆動に用いられるものが出力信号と理解される。たとえば、視覚化面に割り当てられた機能面ブロックの出力信号は、技術制御の意味での出力信号ではない。たとえば、これらの出力信号は、グラフィックディスプレイ上での画像の見え方または情報の表し方を規定する。同様に、診断面に割り当てられた機能面ブロックの出力信号は、技術制御の意味での出力信号ではない。これに対して、標準制御面に割り当てられた機能面ブロックの出力信号または安全制御面に割り当てられた機能面ブロックの出力信号は、技術制御の意味での制御信号である。上述の通り、パラメータ部３９２には、パラメータ値が記憶されている。この目的のためのパラメータ化は通常、プロジェクト計画時すなわちユーザープログラムの作成時に行われる。これに関連して、一方では、機能面ブロックへパラメータを供給可能な入力を規定することができるため、これに基づいてパラメータが規定される。他方では、このパラメータの値も規定される。通常、パラメータ値は、ユーザープログラムの処理中は不変である。この場合、パラメータ値が不変であることから、インターフェース部には、パラメータを出力可能な出力を設ける必要がない。ただし、パラメータを出力可能な出力を有するインターフェース部を使用して、通常はプロジェクト計画時に作成される複数の規定をユーザープログラムに記憶させるという手法も考えられる。これらの各規定は、ユーザープログラムに使用されるパラメータの少なくとも一部に異なる値が割り当てられているという点で、互いに異なっている。その結果、機能面ブロックのパラメータ部にある同一のパラメータに対して、異なるパラメータ値を記憶させることができる。ユーザープログラムには、記憶された規定のうち現在処理すべきものを判定する複数のテスト条件を含む。ユーザープログラムの処理中にこのようなテスト条件が満たされることを検出した場合は、個々の規定間で切り替えが発生する。現在処理中の規定は、今後処理すべき規定と置き換えられる。これにより、パラメータに現在割り当てられているパラメータ値は、今後適用されるパラメータ値に置き換えられる。このように変更されたパラメータ値は、パラメータ出力を介して出力可能であるため、別の機能面ブロックまたはソフトウェアコンポーネントにも利用可能となる。これは、記憶された個々の規定に応じて様々なパラメータ群が提供可能であり、異なるパラメータ化の間で切り替えを行うことができることを意味する。この手法によれば、ユーザープログラムの処理中にパラメータ値を変更することができる。
【０１５８】
図１３においては、ソフトウェアコンポーネント全体を符号４００で示している。
ソフトウェアコンポーネント４００は、複数の入力４０４および複数の出力４０６が組み合わされたインターフェース部４０２を具備する。図１２において説明した機能面ブロック３８０の場合と同様に、複数の入力４０４には３種類の入力、複数の出力４０６には３種類の出力が含まれる。これら３種類の入力および３種類の出力の詳細については、図１２の説明を参照することができる。また、ソフトウェアコンポーネント４００は、複数の機能面ブロック４０８ならびに複数のエレメンタリコンポーネントおよび／またはグループコンポーネント４１０を含む。なお、ソフトウェアコンポーネント４００に含まれるブロックは、明瞭化のため組み合わせてはいない。ソフトウェアコンポーネントは、標準制御面に割り当てられた機能面ブロック、安全制御面に割り当てられた機能面ブロック、および診断面に割り当てられた機能面ブロックを備えていると都合が良い。また、視覚化面に割り当てられた機能面ブロックおよび駆動制御面に割り当てられた機能面ブロックも任意で提供可能である。前記列挙したソフトウェアコンポーネントに含まれる機能面ブロックは、一例であって網羅的ではない。また、ソフトウェアコンポーネント４００が複数のエレメンタリコンポーネントおよび／またはグループコンポーネント４１０を含む図１３の構成は、何ら限定的な趣旨を意図するものではない。図１３の構成に基づけば、ソフトウェアコンポーネント４００は、グループコンポーネントに対応する。ただし、エレメンタリコンポーネントは、少なくとも１つの機能面ブロックのみを含み、エレメンタリコンポーネントおよび／またはグループコンポーネントは含まない。
【０１５９】
プログラミング技術の観点から、ソフトウェアコンポーネントおよび機能面ブロックの両者は、ＸＭＬファイルに対応する。機能面ブロックの場合は、インターフェース部で組み合わされた入力および／または出力に対して元々割り当てられた変数、および／またはパラメータ、および／またはセンサー信号を示す割り当て情報、関数プログラムに含まれ、国際規格ＩＥＣ／ＥＮ６１１３１に対応するデータベース中のソフトウェアモジュールを呼び出し可能な呼び出し情報、ならびに各機能面ブロックに記憶された関数プログラムといった情報がＸＭＬファイルに含まれる。ソフトウェアコンポーネントの場合は、同様に割り当て情報、および前記ソフトウェアコンポーネントに含まれるソフトウェアコンポーネントおよび／または機能面ブロックに関する情報等である。ユーザープログラムの階層構造についてもＸＭＬファイルに記述されており、個々の機能面ブロックのパラメータ化に関する情報、個々の機能面ブロックのＩ／Ｏマッピングに関する情報、および診断面に割り当てられた個々の機能面ブロックに含まれるテキストモジュールといった情報が含まれる。当然のことながら、機能面ブロック、ソフトウェアコンポーネント、および特にユーザープログラムの階層構造の記述には、この目的に適し、階層構造のマッピングが可能なその他如何なる記述言語も使用可能である。
【０１６０】
図１４においては、階層構造全体を符号４２０で示している。
この階層構造は、制御対象のシステム２１０の基礎を成す階層構造および安全制御装置１８のユーザープログラム３８の基礎を成す階層構造の両者を表す。図１４の構成では、各ブロックにそれぞれ２つの意味がある。斜線の前の符号は、制御対象のシステム２１０のうち、各ブロックで表されるハードウェアコンポーネントを示している。一方、斜線の後ろの符号は、各ブロックで表されるユーザープログラム３８のソフトウェアコンポーネントを示している。図１４の構成は、図５ａ、図７ａ、および図９ａの基礎を成す。このことは、何ら限定的な趣旨を意図するものではない。図１４の構造は、図５ｂ、図７ｂ、および図９ｂの構成または図５ｃ、図７ｃ、および図９ｃの構成に適用することもできる。
【０１６１】
符号４２２は、制御対象のシステム２１０全体またはユーザープログラム３８全体を表すブロックである。符号４２４は、最上位階層を示している。制御対象のシステム２１０に関しては、ハンドリングステーション２１２、プロセスステーション２１４、およびテストステーション２１６がこの階層に含まれる。これらのハードウェアコンポーネントは、補助コンポーネントと称する。
【０１６２】
符号４２６は、最上位階層の直下の第１階層を示している。この階層には、円形テーブル２７０、テストモジュール２７２、穴あけモジュール２７４、および排出モジュール２７６が含まれる。これらのハードウェアコンポーネントは、従属コンポーネントと称する。
符号４２８は、第１階層の直下の第２階層を示している。この階層には、モーター３１０、搬送シリンダ３１２、および穴あけシリンダ３１４が含まれる。これらのハードウェアコンポーネントは、個別コンポーネントと称する。
【０１６３】
図１４においては、すべての補助コンポーネントに対して第１階層を図示しているわけではなく、また、すべての従属コンポーネントに対して第２階層を図示しているわけではないが、何ら限定的な趣旨を意図するものではない。図１４に記載の各補助コンポーネントおよび従属コンポーネントに対しては、対応する階層が存在している。また、明瞭化のため、すべての非常停止用ボタンを図示しているわけではない。
【０１６４】
保守面に関しては、以下のことに留意すべきである。すなわち、制御対象のシステム２１０は、保守の際に、ユーザープログラム３８によって規定された動作シーケンスが低速で行われる動作モードに変更される。その結果、制御対象のシステム２１０で保守作業を行いながら、たとえば制御対象のシステム２１０が行う生産プロセスを低速で継続することができる。
【０１６５】
本実施形態は、制御対象のシステム２１０に基づいている。このシステム２１０は、階層構造のユーザープログラム３８が動作する安全制御装置１８によって制御される。ユーザープログラムが作成されると、複数のソフトウェアコンポーネントおよび必要に応じて複数の機能面ブロックが提供される。これら提供されるソフトウェアコンポーネントは、エレメンタリコンポーネントまたはグループコンポーネントとして具現化可能である。ただし、階層構造は、ソフトウェアコンポーネントがグループコンポーネントとして具現化された場合に生じる。そして、ソフトウェアコンポーネントを論理的に組み合わせることによって、コンポーネントサブプログラムが作成される。各グループコンポーネントにおいては、それに含まれるソフトウェアコンポーネントが互いに論理的に組み合わされる。また、既存の機能面ブロックをソフトウェアコンポーネントに接続することも可能である。存在する機能面ブロックに対しては、個々の制御面に関連付けられた機能面サブプログラムが作成される。そして、これらコンポーネントサブプログラムおよび機能面サブプログラムを合わせることにより、ユーザープログラムが生成される。このユーザープログラムにより、シーケンス制御が構成または実現される。
【０１６６】
論理接続、特にソフトウェアコンポーネント間の論理接続、および一方をソフトウェアコンポーネント、他方を機能面ブロックとする論理接続は、異なる組み合わせ手法にしたがって実装可能である。いずれの組み合わせ手法を具体的に適用するかは、異なる外部条件によって決まる。このような条件としては、たとえばハードウェアコンポーネントがプロセッサ等のデータ処理コンポーネントをどの程度装備しているか、等が挙げられる。さらには、制御対象のシステムの複雑性、または制御対象のシステムに対して実行するシーケンシングもしくはシーケンスの複雑性も考慮に入れる必要がある。これに関連して、すべての階層に同じ組み合わせ手法を用いる必要はない。個々の階層または個々のグループコンポーネントに対してであっても、異なる組み合わせ手法を適用することも考えられる。
【０１６７】
適用可能な様々な組み合わせ手法について以下に詳述する。基本的には、カスケード式組み合わせ手法および非カスケード式組み合わせ手法がある。図５ａ、図５ｂ、図５ｃ、図７ａ、図７ｂ、図７ｃ、図９ａ、図９ｂ、および図９ｃを参照して、これら２つの組み合わせ手法を説明する。各図面においては、同一のユニットに同じ符号を付すとともに、異なるユニットは１つまたは２つのアポストロフィを付けて区別している。このことは、同じハードウェアコンポーネントを表すソフトウェアコンポーネントにも当てはまるが、たとえばハードウェアコンポーネントのデータ処理コンポーネントの装備程度が異なる場合は相違する。また、機能面ブロックは同じ制御面に割り当てられているが、たとえば組み合わせ手法が異なる場合は機能性が相違する。
【０１６８】
図５ａ、図７ａ、および図９ａの内容またはこれらの図面に関連する説明は、技術的に妥当である場合に限り、図５ｂ、図７ｂ、および図９ｂの内容ならびに図５ｃ、図７ｃ、および図９ｃの内容に利用可能である。図５ａ、図７ａ、および図９ａの内容ならびに図５ｃ、図７ｃ、および図９ｃの内容に関して、同じことが図５ｂ、図７ｂ、および図９ｂの内容に当てはまる。また、図５ａ、図７ａ、および図９ａの内容ならびに図５ｂ、図７ｂ、および図９ｂの内容に関して、同じことが図５ｃ、図７ｃ、および図９ｃの内容に当てはまる。
【０１６９】
特定の範囲に関して、図５ａ、図５ｂ、図５ｃ、図７ａ、図７ｂ、図７ｃ、図９ａ、図９ｂ、および図９ｃには、明瞭化のため論理接続を完全には図示していない。このことは、これら図面に含まれる個々の機能面ブロックに特に当てはまる。このように論理接続を省略することは、何ら限定的な趣旨を意図するものではない。
上述の図５ａ、図７ａ、および図９ａは、カスケード式組み合わせ手法に基づいている。カスケード式組み合わせ手法は、たとえば制御対象のシステムが単純であり、かつ／または実現すべきシーケンス制御が複雑ではない場合に適用される。カスケード式組み合わせ手法が適用可能であるためには、制御対象のシステムに含まれる各ハードウェアコンポーネントに強力なデータ処理コンポーネントが装備されている必要がある。このことは、これらハードウェアコンポーネントを表すソフトウェアコンポーネントにおいて考慮される。カスケード式組み合わせ手法の場合は、実現すべきシーケンス制御の範囲の少なくとも一部が論理接続によって実現されるように、ソフトウェアコンポーネントの少なくとも一部が互いに論理的に組み合わされる。カスケード式組み合わせ手法に加えて、図５ａ、図７ａ、および図９ａの構成は、広い制御範囲を表す第１の制御範囲に基づいている。このため、図５ａ、図７ａ、および図９ａには、複数の機能面ブロックが図示されている。
【０１７０】
図５ａに示すカスケード式組み合わせ手法の場合は、非常停止用ボタン２１８によって生成されたイネーブル信号が第２の機能面ブロック２５０に供給可能であると都合が良い。また、ロック機能に関して第６の機能面ブロック２５８によって生成された信号は、第２の機能面ブロック２５０に供給可能である。これらの信号としては、たとえば第４のソフトウェアコンポーネント２３８に対するロックイネーブル信号、第３のソフトウェアコンポーネント２３６に対するロックイネーブル信号、または第２のソフトウェアコンポーネント２３４に対するロックイネーブル信号等が挙げられる。第２の機能面ブロック２５０に供給される信号は、論理ＡＮＤ関数によって組み合わされる。したがって、ソフトウェアコンポーネント２３４、２３６、２３８に対するイネーブル信号は概して、第２の機能面ブロック２５０で生成される。特定のソフトウェアコンポーネントと特定の機能面ブロックとの間の対応する論理接続は、明瞭化のため図示していない。
【０１７１】
また、図５ｂ、図７ｂ、および図９ｂの構成もカスケード式組み合わせ手法に基づいているが、第１の制御範囲よりも狭い第２の制御範囲を示している。このため、図５ｂ、図７ｂ、および図９ｂにおいては、この特定の実施形態のユーザープログラムを作成するのに必要な最小限の範囲の機能面ブロックのみを図示している。
図５ａと比較して、図５ｂには、第１の機能面ブロック２４８、第２の機能面ブロック２５０、第５の機能面ブロック２５６、および第６の機能面ブロック２５８にそれぞれ対応する機能面ブロックが含まれない。ソフトウェアコンポーネント２３４’、２３６’、２３８’には、第３の機能面ブロック２５２’から信号が供給される。その結果、診断の範囲で得られた情報は、これらのソフトウェアコンポーネントで利用可能となり、各制御タスクの処理に考慮することができる。第４の機能面ブロック２５４’によって生成される可能性のある始動／停止信号は、ソフトウェアコンポーネント２３４’、２３６’、２３８’に直接供給される。個々のソフトウェアコンポーネントにおいては、この始動／停止信号が、第１のソフトウェアコンポーネント２３２’によって提供されたイネーブル信号および供給された状態信号と組み合わされて、論理ＡＮＤ組み合わせの形態となる。
【０１７２】
図７ａと比較して、図７ｂには、第７の機能面ブロック２９４、第８の機能面ブロック２９６、第１１の機能面ブロック３０２、および第１２の機能面ブロック３０４にそれぞれ対応する機能面ブロックが含まれない。第９の機能面ブロック２９８’とソフトウェアコンポーネント２８２’、２８４’、２８６’、２８８’との間の論理接続は、明瞭化のため図示していない。２つの機能面ブロック２５２’、２５４’に関連する上述の記述内容は、２つの機能面ブロック２９８’、３００’にも同様に当てはまる。ただし、この階層では、第１０の機能面ブロック３００’によって始動／停止信号を生成する必要も規定もない。始動／停止信号は、上位の階層、この場合であれば最上位階層に存在すれば十分である。第７のソフトウェアコンポーネント２８２’には、第８のソフトウェアコンポーネント２８４’から２つの位置信号が供給される。その結果、Ｘ座標およびＹ座標に関してワークピースの確認中に決定される値が利用可能となる。また、特定の状況化で必要な場合は、補正を実施することも可能である。
【０１７３】
図９ａと比較して、図９ｂには、第１４の機能面ブロック３３２および第１８の機能面ブロック３４０にそれぞれ対応する機能面ブロックが含まれない。さらに、安全制御面に割り当てられる機能面ブロック３３２の代わりに、駆動制御面に割り当てられる機能面ブロック３３８’が提供されている。本実施形態では、図９ｂに示す階層において、ソフトウェアコンポーネント３２０’で表される安全関連のセンサー、具体的には非常停止用ボタンが１つだけ提供されているため、安全制御面に割り当てられる機能面ブロックを使用する必要は全くない。非常停止用ボタンによって生成されたイネーブル信号は、対応する丸め演算によって、個々のソフトウェアコンポーネントで処理可能である。
【０１７４】
駆動制御面に割り当てられる機能面ブロック３３８’は、ソフトウェアコンポーネント３２６’で表されるモーター３１０の制御を可能にする。その結果、たとえばモーターの速度、回転速度、または力を規定値に設定することができる。第１５の機能面ブロック３３４’とソフトウェアコンポーネント３２０’、３２２’、３２４’、３２６’との間の論理接続は、明瞭化のため図示していない。２つの機能面ブロック２５２’、２５４’に関連する上述の記述内容は、２つの機能面ブロック３３４’、３３６’にも同様に当てはまる。また、この階層では、第１６の機能面ブロック３３６’によって始動／停止信号を生成する必要も規定もない。
【０１７５】
図５ｃ、図７ｃ、および図９ｃは、非カスケード式組み合わせ手法に基づいている。非カスケード式組み合わせ手法は、たとえば制御対象のシステムが複雑であり、かつ／または実現すべきシーケンス制御が複雑な場合に適用される。カスケード式組み合わせ手法が適用可能であるために、制御対象のシステムに含まれる各ハードウェアコンポーネントに強力なデータ処理コンポーネントが装備されている必要はない。このことは、これらハードウェアコンポーネントを表すソフトウェアコンポーネントにおいて考慮される。非カスケード式組み合わせ手法の場合は、標準制御面に割り当てられる少なくとも１つの機能面ブロックおよびロック面に割り当てられる１つの機能面ブロックが提供されるため、シーケンス制御の実現に利用可能となる。カスケード式組み合わせ手法においてカスケード式の組み合わせにより網羅される機能性は、非カスケード式組み合わせ手法においては、上述の２つの機能面ブロックによって実現される。また、駆動制御面に割り当てられる機能面ブロックも提供可能である。安全関連の制御タスクについては、安全制御面に割り当てられる機能面ブロックが提供される。このことは、たとえば安全関連のセンサーが狭い範囲の場合は、生成される信号が丸め演算によってソフトウェアコンポーネントで直接処理可能である限り、全く必要ない。
【０１７６】
図５ｃの最上位階層には、標準制御面に割り当てられる第１の機能面ブロック２４８’’を図示している。この第１の機能面ブロック２４８’’には、第２のソフトウェアコンポーネント２３４’’、第３のソフトウェアコンポーネント２３６’’、および第４のソフトウェアコンポーネント２３８’’から「レディ信号」と称する状態信号がそれぞれ供給される。これらの状態信号は、各ソフトウェアコンポーネントが対応するハードウェアコンポーネントの状態を表している。これらの状態信号に応じて、いずれの場合にもソフトウェアコンポーネント２３４’’、２３６’’、２３８’’のいずれかにそれぞれ供給される始動信号が第１の機能面ブロック２４８’’において生成される。これらの始動信号により、各ハードウェアコンポーネントに対して記憶された作業工程の処理を開始可能であることが各ソフトウェアコンポーネントに対して示される。なお、第１の機能面ブロック２４８’’には、３つの自律カプセル化制御機能が記憶されていると都合が良い。
【０１７７】
シーケンス制御が搬送信号の処理に基づく図５ｃの構成は、状態信号および始動信号に関してより厳密に言えば、何ら限定的な趣旨を意図するものではない。あるいは、終端位置センサーを設けて評価することも可能である。この場合は、状態信号に代わって、終端位置センサーによって生成されたセンサー信号が第１の機能面ブロック２４８’’に供給される。これらのセンサー信号は、各ハードウェアコンポーネントが終端位置を取るか否か、および、いずれの終端位置を取るかを示すものである。これらのセンサー信号に応じて、前記始動信号を生成することができる。上述の記述内容は、図７ｃおよび図９ｃにも同様に当てはまる。
【０１７８】
最上位階層には、安全関連のセンサーが１つだけ含まれるため、図５ｂおよび図５ｃの構成には、安全制御面に割り当てられる機能面ブロックを含まない。このことは、何ら限定的な趣旨を意図するものではない。当然のことながら、たとえば非常停止用ボタンに加えて、最上位階層にライトカーテンまたは防護扉等を有するシステムも考えられる。このようなシステムでは、安全制御面に割り当てられる機能面ブロックが最上位階層に含まれる。個々のソフトウェアコンポーネントに供給される丸め信号によって安全論理が実現される場合にも同じことが当てはまるが、この場合は、より複雑な安全論理が必要となる。丸め処理では、供給された信号が論理ＡＮＤ関数によって組み合わされ、丸め演算が行われる。
【０１７９】
第３の機能面ブロック２５２’’においては、同じ階層に配置された機能面ブロックによって信号の評価が行われる。この際、同階層に配置されたすべての機能面ブロックの信号を評価すると都合が良い。また、この階層に配置された１つ、好ましくはすべてのソフトウェアコンポーネントによって生成された信号を第３の機能面ブロック２５２’’に供給することもできる。これらの信号としては、たとえば機能面ブロックもしくはソフトウェアコンポーネントによって生成された出力信号および／または機能面ブロックもしくはソフトウェアコンポーネントで生成された内部変数を表す信号が考えられる。前記規定の状態に対応する診断情報は、第４の機能面ブロック２５４’’に供給される。
【０１８０】
最上位階層に含まれるソフトウェアコンポーネント２３２’’、２３４’’、２３６’’、２３８’’および機能面ブロック２４８’’、２５２’’、２５８’’の少なくとも一部からは、複数の信号が第４の機能面ブロック２５４’’に供給される。これらの信号としては、たとえば第３の機能面ブロック２５２’’によって生成された状態信号および／または始動信号もしくは出力信号、ならびにソフトウェアコンポーネントおよび／または機能面ブロックの内部信号が考えられる。内部信号としては、たとえば第２のソフトウェアコンポーネント２３４’’で実行される個数カウンタが考えられる。
【０１８１】
視覚化面に割り当てられる第４の機能面ブロック２５４’’は、制御対象のシステム２１０および安全制御装置１８の状態を示すタスクを有する。第４の機能面ブロック２５４’’には、最上位階層に配置されたすべてのソフトウェアコンポーネントおよび機能面ブロックから信号を供給するのが好ましい。また、第４の機能面ブロック２５４’’は、表示機能の範囲内で、たとえば診断情報を出力する。これの追加として、あるいは、機能面ブロック２５４’’は、制御対象のシステム２１０に含まれないプロセスの視覚化に用いられるデータを生成する。また、このデータを用いることにより、たとえばプロセスの現在の処理状態を読み取ることができる。
【０１８２】
また、第４の機能面ブロック２５４’’は、前記表示機能のほか、オペレータ管理機能を有する。したがって、第４の機能面ブロック２５４’’には、ＨＭＩインターフェースの実現に必要な機能性が記憶されている。オペレータ管理機能に関する限り、たとえば以下のような微調整が考えられる。すなわち、好ましくは対話形式に構成された表示部によって、選択のための複数の選択肢を制御対象のシステム２１０のオペレータに表示することができる。オペレータは、この選択肢から、表示面に触れることによって選択が可能である。たとえば、制御対象のシステム２１０の起動に必要な工程を表示することができ、オペレータは、表示面に触れることによって、その実行を承認する必要がある。これらすべての工程に成功すると、システム２１０を起動するための始動信号が自動的に生成される。また、オペレータが触れることによってシステム２１０を停止することができる停止領域を提供することも考えられる。始動信号および停止信号は、第１の機能面ブロック２４８’’に供給される。あるいは、上述の手動始動または手動停止を２つの押しボタンによって行うことができる非対話式表示部を使用することもできる。
【０１８３】
２つの機能面ブロック２５２’’、２５４’’に関連する上述の記述内容は、２つの機能面ブロック２５２、２５４にも同様に当てはまる。また、これらの記述内容は、下位の階層に含まれる対応する機能面ブロックにも当てはまる。
第１の機能面ブロック２４８’’に供給される状態信号は、第６の機能面ブロック２５８’’にも供給される。この第６の機能面ブロック２５８’’は、これら状態信号の関数として、ソフトウェアコンポーネント２３４’’、２３６’’、２３８’’のそれぞれに対して割り当てられたロックイネーブル信号を生成する。これら各ロックイネーブル信号によって、ソフトウェアコンポーネントはそれぞれ有効となり、対応する始動信号が存在する場合は、記憶された各作業工程の処理を開始することができる。ロックイネーブル信号を使用すれば、たとえば他のハードウェアコンポーネントが規定の基準位置となるまで、ユーザープログラムに記憶された制御命令にしたがってハードウェアコンポーネントが動作し始めることのないようにすることができる。
【０１８４】
各ソフトウェアコンポーネント２３４’’、２３６’’、２３８’’に対して第６の機能面ブロック２５８’’により生成されたロックイネーブル信号は、第１のソフトウェアコンポーネント２３２’’で生成されたイネーブル信号によって丸められ、各ソフトウェアコンポーネントに当てはまる全体イネーブル信号が形成される。丸め演算においては、各ソフトウェアコンポーネント２３４’’、２３６’’、２３８’’に対して、ロックイネーブル信号と第１のソフトウェアコンポーネント２３２’’で生成されたイネーブル信号とが論理ＡＮＤ関数により組み合わされる。
【０１８５】
図５ｃに示す非カスケード式の組み合わせにおいて、個々のソフトウェアコンポーネントは、如何なる状態信号も交換することがない。その代わりに、標準制御面に割り当てられる第１の機能面ブロック２４８’’およびロック面が割り当てられる第６の機能面ブロック２５８’’が提供される。
図５ｃは、２つのソフトウェアコンポーネント、具体的にはソフトウェアコンポーネント２３６’’、２３８’’間の論理接続を一例として示している（点線表示）。個々のソフトウェアコンポーネント間では、このような論理接続を介してデータを直接交換することができる。「設定値からの逸脱」信号は、具体的に図示した論理接続を介して、プロセスステーション２１４に対応する第３のソフトウェアコンポーネント２３６’’に供給することができる。この信号は、テストステーション２１６で得られた確認結果を表す。たとえばテストステーション２１６において、ドリルの摩耗に伴う短縮によって十分な深さの穴があけられていないことが検出された場合は、これに応じて、穴あけシリンダのストロークを長くすることができる。
【０１８６】
図７ｃは、標準制御面に割り当てられる第７の機能面ブロック２９４’’を示している。この第７の機能面ブロック２９４’’には、ソフトウェアコンポーネント２８２’’、２８４’’、２８６’’、２８８’’から状態信号がそれぞれ供給される。また、第７の機能面ブロック２９４’’には、テストモジュール２７２で決定された確認結果を表す結果信号が、テストモジュール２７２を表す第８のソフトウェアコンポーネント２８４’’から供給される。第７の機能面ブロック２９４’’では、いずれの場合にもソフトウェアコンポーネント２８２’’、２８４’’、２８６’’、２８８’’のいずれかにそれぞれ供給される始動信号が、供給された状態信号の関数として生成される。始動信号を決定する際には、結果信号とともに供給された確認信号を考慮に入れることができる。したがって、確認結果が良くなかった場合には、制御対象のシステムで実行されるシーケンス制御ひいてはプロセスを特定の範囲に関して少なくとも中断することができる。ここでは、図５ｃに関連する記述内容によれば、終端位置センサーの使用も可能である。
【０１８７】
第７の機能面ブロック２９４’’のほか、第９の機能面ブロック２９８’’および第１０の機能面ブロック３００’’も提供される。第９の機能面ブロック２９８’’は診断面に割り当てられ、第１０の機能面ブロック３００’’は視覚化面に割り当てられる。これら２つの機能面ブロックに供給されて処理される信号については、２つの機能面ブロック２５２’’、２５４’’に関連する上述の記述内容を参照することができる。また、これらの記述内容は、プロセスステーション２１４に関して必要ならば、２つの機能面ブロック２９８’’、３００’’にも同様に当てはまる。
【０１８８】
第９のソフトウェアコンポーネント２８６’’で生成された状態信号は、ロック面に割り当てられる第１２の機能面ブロック３０４’’に供給される。この状態信号を評価することにより、第７のソフトウェアコンポーネント２８２’’に供給されるロックイネーブル信号が第１２の機能面ブロック３０４’’にて生成される。円形テーブル２７０および穴あけモジュール２７４に関連するロックの詳細については、第１２の機能面ブロック３０４に関連する記述内容を参照することができる。
【０１８９】
ソフトウェアコンポーネント２８２’’、２８４’’、２８６’’、２８８’’には、第６のソフトウェアコンポーネント２８０’’からイネーブル信号が供給される。このイネーブル信号は、ソフトウェアコンポーネント２８４’’、２８６’’、２８８’’にそれぞれ供給された始動信号によって丸められる。ソフトウェアコンポーネント２８２’’の場合は、丸め演算において、始動信号およびイネーブル信号以外にロックイネーブル信号も考慮される。
【０１９０】
図９ｃに示す非カスケード式の組み合わせの場合、個々のソフトウェアコンポーネントは、如何なる状態信号も交換することがない。その代わりに、標準制御面に割り当てられる第１３の機能面ブロック３３０’’およびロック面に割り当てられる第１８の機能面ブロック３４０’’が提供される。
第１３の機能面ブロック３３０’’は、制御ループの一部として、穴あけシリンダを表す第１２のソフトウェアコンポーネント３２２’’および搬送シリンダを表す第１３のソフトウェアコンポーネント３２４’’の両者に接続されている。これに関連して、第１３の機能面ブロック３３０’’には、第１２のソフトウェアコンポーネント３２２’’および第１３のソフトウェアコンポーネント３２４’’の両者から位置信号が供給される。第１２のソフトウェアコンポーネント３２２’’によって生成された位置信号は、穴あけシリンダのピストンの位置を表す。第１３のソフトウェアコンポーネント３２４’’によって生成された位置信号は、搬送シリンダのピストンの位置を表す。これに関連して、たとえばピストンがシリンダ内へ完全に後退している基準位置およびピストンがシリンダから伸長している作動位置という２つのピストン位置を区別できれば十分である。これら２つのピストン位置は、たとえば各シリンダに対応して配置された２つのセンサーを用いて検知することができる。２つのピストン位置だけを検知する代わりに、たとえば数学モデルを用いて正確なピストンのストロークを決定することも可能である。この目的のため、各ピストンを調整する駆動命令、より厳密には調整信号および時間条件を評価するのが好ましい。
【０１９１】
２つのセンサーによりピストン位置を検知する場合は、ソフトウェアに対して技術的に何を考慮するかという観点で、穴あけシリンダ３１４ひいては第１２のソフトウェアコンポーネント３２２’’の例を用いて後述する２つの手法が考えられる。第１の手法では、２つのセンサーが第１２のソフトウェアコンポーネント３２２’’に割り当てられる。したがって、ソフトウェアコンポーネントおよび２つのセンサーが技術的プログラム部を形成する。また、これら２つのセンサーのＩ／Ｏマッピングは、２番目に低い階層で行われる。第２の手法では、第１２のソフトウェアコンポーネント３２２’’の２つのセンサーの割り当てが固定しない。この場合、Ｉ／Ｏマッピングは、図９ｃに示す階層で行われる。
【０１９２】
第１３の機能面ブロック３３０’’においては、第１２のソフトウェアコンポーネント３２２’’によって供給された位置信号の関数として、穴あけシリンダ３１４の調整信号が決定され、第１２のソフトウェアコンポーネント３２２’’に供給される。同様に、第１３のソフトウェアコンポーネント３２４’’に供給される搬送シリンダ３１２の調整信号も、第１３の機能面ブロック３３０’’において決定される。各シリンダは、これら２つの調整信号により伸長および後退をそれぞれ行う。この伸長および後退は、シリンダに配置されたバルブの作動によってもたらされる。さらに、第１３の機能面ブロック３３０’’では、第１７の機能面ブロック３３８’’に供給される始動／停止信号が生成される。この信号により、第１７の機能面ブロック３３８’’に記憶されたモーター３１０の駆動制御が開始または停止する。また、第１３の機能面ブロック３３０’’では、動作状態信号が生成され、第１８の機能面ブロック３４０’’に供給される。この信号により、第１８の機能面ブロック３４０’’には、ロック機能の実現に関して、モーター３１０のオン／オフ切り替えおよび／または動作中であるか否かが示される。この情報は、ロック機能の実現に重要である。ロック機能は、モーター３１０が作動している限り穴あけシリンダ３１４も搬送シリンダ３１２も移動せず、穴あけモジュール２７４で穴あけを行うことを意図したものである。このため、第１８の機能面ブロック３４０’’では、いずれの場合にも第１２のソフトウェアコンポーネント３２２’’および第１３のソフトウェアコンポーネント３２４’’にそれぞれ供給される停止信号が生成される。
【０１９３】
前記２つの信号、具体的には始動／停止信号および動作状態信号の代わりに、第１７の機能面ブロック３３８’’および第１８の機能面ブロック３４０’’の両者に供給される単一の信号を使用することも考えられる。ただし、前記２つの信号を用いることは、時間的な区別ができるため都合が良い。モーター３１０の始動挙動によれば、動作状態信号は、始動／停止信号から時間的に若干遅れて生成可能である。概して、第１３の機能面ブロック３３０’’には、一方では搬送シリンダ３１２および穴あけシリンダ３１４の移動方法を規定し、他方ではモーター３１０の作動タイミングを規定するユーザープログラム３８の範囲が記憶されている。その結果として、２つのシリンダ３１２、３１４およびモーター３１０の作動順序が規定される。
【０１９４】
駆動制御面に割り当てられる第１７の機能面ブロック３３８’’を用いると、第１４のソフトウェアコンポーネント３２６’’によって表されるモーター３１０を制御することができる。このため、モーターの速度が制御可能であり、これに応じて規定値に設定可能であることが好ましい、ただし、モーターの回転速度または力も制御可能である。この目的のため、第１７の機能面ブロック３３８’’には、ソフトウェアコンポーネント３２６’’から対応する実値が供給される。また、第１７の機能面ブロック３３８’’においては、この実値の関数として、第１４のソフトウェアコンポーネント３２６’’に供給される対応する設定値が決定される。第１７の機能面ブロック３３８’’と第１４のソフトウェアコンポーネント３２６’’とは、制御ループの一部として互いに接続されている。また、第１４のソフトウェアコンポーネント３２６’’には、モーター３１０の制御を規定するユーザープログラム３８の範囲が記憶されている。これに関連して、前記設定値は、モーター３１０を作動させる電流の値に変換される。モーター３１０に現れる実値を取得するのに必要なセンサーは、プログラミング技術の観点から、第１４のソフトウェアコンポーネント３２６’’に割り当てられるのが好ましい。そして、これらセンサーのＩ／Ｏマッピングは、２番目に低い階層で行われる。これらのセンサーとしては、たとえば回転速度を検知するセンサーまたはモーター巻線の電圧を検知するセンサーが考えられる。
【０１９５】
図９ｂに関連する記述内容によれば、図９ｃには、安全制御面に割り当てられる機能面ブロックが提供されていない。たとえば、この階層に複数の安全関連のセンサーが存在するなら、安全制御面に割り当てられる機能面ブロックも同じ階層で用いられるであろう。
また、図９ｃには、第１５の機能面ブロック３３４’’および第１６の機能面ブロック３３６’’が図示されている。第１５の機能面ブロック３３４’’は診断面に割り当てられ、第１６の機能面ブロック３３６’’は視覚化面に割り当てられる。これら２つの機能面ブロックに供給されて処理される信号については、２つの機能面ブロック２５２’’、２５４’’に関連する上述の記述内容を参照することができる。また、これらの記述内容は、２つの機能面ブロック３３４’’、３３６’’にも同様に当てはまる。
【０１９６】
ソフトウェアコンポーネント３２２’’、３２４’’、３２６’’に供給されるイネーブル信号は、第１１のソフトウェアコンポーネント３２０’’によって生成され、必要に応じて存在する他の信号により丸められる。
本実施形態の最上位階層には、非常停止用ボタン２１８以外のセンサー類は提供されていないが、何ら限定的な趣旨を意図するものではない。最上位階層に複数のセンサーを有する制御対象のシステムも考えられる。最上位階層の下位の階層にも同じことが当てはまる。
【０１９７】
診断面に割り当てられる独立した機能面ブロックが個々の階層に提供されている図５ａ、図５ｂ、図５ｃ、図７ａ、図７ｂ、図７ｃ、図９ａ、図９ｂ、および図９ｃの構成は、何ら限定的な趣旨を意図するものではない。ソフトウェアコンポーネントおよび／または機能面ブロックのそれぞれに診断機能を配置することも考えられる。
ここで留意すべきは、同じ制御対象のシステム２１０を用いてカスケード式組み合わせ手法および非カスケード式組み合わせ手法の両者を説明したことが矛盾するものではないことである。これは、基本的には両組み合わせ手法を適用可能なためであるが、上述の条件が存在することを考えると、２つの手法の一方を適用するのが好ましい。
【０１９８】
複数の異なるハードウェアコンポーネントを有する複雑なシステムでは、少なくともハードウェアコンポーネントの大部分を考慮するシステムの安全関連ではないプロセスシーケンスを制御する標準制御面、安全関連のすべての補助プロセスを制御する安全制御面、および診断メッセージの作成および視覚化を行う診断面という制御面に対して、いずれの場合にも１つの機能面サブプログラムを作成すると都合が良い。さらに、駆動制御面、冷却面、アクセス許可面、保守面、ロック面、手動操作面、およびデータ管理面に対して、いずれの場合にも１つの機能面サブプログラムを作成することができる。このような機能面サブプログラムを用いると、複数の異なるハードウェアコンポーネントに対する複雑なシステムの制御を一様な機能面の観点でプログラム可能であり、その他の機能面は「無効化」することができる。
【図１】
2012510099.tif 000003
【図２】
2012510099.tif 000004
【図３】
2012510099.tif 000005
【図４】
2012510099.tif 000006
【図５】
2012510099.tif 000007
【図６】
2012510099.tif 000008
【図７】
2012510099.tif 000009
【図８】
2012510099.tif 000010
【図９】
2012510099.tif 000011
【図１０】
2012510099.tif 000012
【図１１】
2012510099.tif 000013
【図１２】
2012510099.tif 000014
【図１３】
2012510099.tif 000015
【図１４】
2012510099.tif 000016
【国際調査報告】
2012510099.tif 000017
2012510099.tif 000018
2012510099.tif 000019
2012510099.tif 000020
2012510099.tif 000021
2012510099.tif 000022