(57)【要約】【課題】安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法を提供する。【解決手段】安全コントローラのユーザプログラムの設計を支援する方法であって、安全コントローラの安全入力機器からの入力信号を受ける入力端子あるいは安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行するステップと、安全入力機器あるいは安全出力機器に関する情報を取得するステップと、取得した安全入力機器あるいは安全出力機器に関する情報に基づいて、安全入力機器からの２重化されている２つの入力信号を受ける２つの入力端子あるいは安全出力機器に対する２重化されている２つの出力信号を出力する２つの出力端子については、それぞれ割り付けられた２つの変数名のうちの一方の使用を禁止するステップとを備える。【選択図】図１１
2014137621.tif 000002
【特許請求の範囲】
【請求項１】
安全コントローラに対する安全入力機器からの入力信号あるいは安全出力機器に対する出力信号をユーザプログラムで処理可能とするための安全コントローラのユーザプログラムの設計を支援する方法であって、
前記安全コントローラの前記安全入力機器からの入力信号を受ける入力端子あるいは前記安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行するステップと、
前記安全入力機器あるいは安全出力機器に関する情報を取得するステップと、
取得した安全入力機器あるいは安全出力機器に関する情報に基づいて、前記安全入力機器からの２重化されている２つの入力信号を受ける２つの入力端子あるいは前記安全出力機器に対する２重化されている２つの出力信号を出力する２つの出力端子については、それぞれ割り付けられた２つの変数名のうちの一方の使用を禁止するステップとを備える、安全コントローラのユーザプログラムの設計を支援する方法。
【請求項２】
前記安全入力機器あるいは安全出力機器に関する情報を取得するステップは、前記安全入力機器あるいは安全出力機器に関するユーザの入力に従うデータを受け付けるステップを含む、請求項１記載の安全コントローラのユーザプログラムの設計を支援する方法。
【請求項３】
前記安全入力機器あるいは安全出力機器は、前記安全コントローラと通信可能に接続された入力ユニットあるいは出力ユニットに接続され、
前記安全入力機器あるいは安全出力機器に関する情報を取得するステップは、前記入力ユニットあるいは出力ユニットからの前記安全入力機器あるいは安全出力機器に関するデータを受け付けるステップを含む、請求項１記載の安全コントローラのユーザプログラムの設計を支援する方法。
【請求項４】
前記安全入力機器あるいは安全出力機器は、前記安全コントローラと通信可能に接続された入力ユニットあるいは出力ユニットに接続され、
前記安全入力機器あるいは安全出力機器に接続される前記入力ユニットあるいは出力ユニットに対して、前記安全入力機器あるいは安全出力機器に対応した設定パラメータを設定するステップをさらに備え、
前記安全入力機器あるいは安全出力機器に関する情報を取得するステップは、前記設定パラメータの設定に関する情報を取得する、請求項１記載の安全コントローラのユーザプログラムの設計を支援する方法。
【請求項５】
安全コントローラに対する安全入力機器からの入力信号あるいは安全出力機器に対する出力信号をユーザプログラムで処理可能とするための安全コントローラのユーザプログラムの設計を支援する装置であって、
前記安全コントローラの前記安全入力機器からの入力信号を受ける入力端子あるいは前記安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行する手段と、
前記安全入力機器あるいは安全出力機器に関する情報を取得する手段と、
取得した安全入力機器あるいは安全出力機器に関する情報に基づいて、前記安全入力機器からの２重化されている２つの入力信号を受ける２つの入力端子あるいは前記安全出力機器に対する２重化されている２つの出力信号を出力する２つの出力端子については、それぞれ割り付けられた２つの変数名のうちの一方の使用を禁止する手段とを備える、安全コントローラのユーザプログラムの設計を支援する装置。
【請求項６】
コンピュータにおいて、安全コントローラに対する安全入力機器からの入力信号あるいは安全出力機器に対する出力信号をユーザプログラムで処理可能とするための安全コントローラのユーザプログラムの設計を支援する機能を実行するためのプログラムであって、
前記プログラムは、前記コンピュータに、
前記安全コントローラの前記安全入力機器からの入力信号を受ける入力端子あるいは前記安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行するステップと、
前記安全入力機器あるいは安全出力機器に関する情報を取得するステップと、
取得した安全入力機器あるいは安全出力機器に関する情報に基づいて、前記安全入力機器からの２重化されている２つの入力信号を受ける２つの入力端子あるいは前記安全出力機器に対する２重化されている２つの出力信号を出力する２つの出力端子については、それぞれ割り付けられた２つの変数名のうちの一方の使用を禁止するステップとを備える、処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全コントローラのプログラム開発支援装置等に関し、特に、ユーザプログラムの設計を支援する方法、装置およびプログラムに関する。
【背景技術】
【０００２】
労働安全意識の高まりから、昨今、各種の安全デバイスが提案されている。安全デバイスは、安全コントローラ、安全Ｉ／Ｏターミナル等に相当し、切削機械や切断機械やアーム付き製造器ロボット等とともに使用される。安全規格について、安全コントローラを一例に挙げて説明すると、安全コントローラは、一般的なプログラマブルコントローラ（ＰＬＣ）に類似するロジック演算機能、入出力制御機能に加えて、安全面の自己診断機能を内蔵させることにより、その制御において、高度な信頼性を確保したものである。
【０００３】
安全コントローラの自己診断結果により異常を検出した場合には、自己の制御が危険につながらないように、強制的に安全な制御を行うような機能（フェールセーフ機能）を備えている。それにより、製造器ロボット等の動作が危険につながらないようにしている。
【０００４】
ここに言う安全は、より具体的には、規格化されている安全基準を含む意味である。規格には、例えば、ＩＥＣ６１５０８やＥＮ規格などがある。ＩＥＣ６１５０８（プログラム可能な電子システムの機能安全に関する国際電気標準委員会）では、時間あたりの危険故障確率を（失敗確率：Ｐｒｏｂａｂｉｌｉｔｙ ｏｆ Ｆａｉｌｕｒｅ ｐｅｒ Ｈｏｕｒ）を定義し、この確率によってＳＩＬのレベル（Ｓａｆｅｔｙ Ｉｎｔｅｇｒｉｔｙ Ｌｅｖｅｌ）を４段階に分類している。また、ＥＮ規格では、機械のリスクの大きさを評価し、リスク低減策を講じるように義務付けされていて、ＥＮ９５４−１では５つの安全カテゴリにて規定されている。この発明の安全コントローラ等は、このような安全基準のいずれかに対応したものである。
【０００５】
安全Ｉ／Ｏターミナルにおいても、自己診断機能を有していて、自己診断結果により異常を検出した場合には、自己の制御が危険につながらない制御をするといった、フェールセーフ機能を備えている。それにより、安全コントローラの動作や、製造器ロボット等の動作が危険につながらないようにしている。そして、従来より、安全コントローラと安全Ｉ／Ｏターミナルとをネットワークで結んでなる安全制御システムが知られている。
【０００６】
安全コントローラは、安全Ｉ／Ｏターミナルに対してネットワーク通信する通信マスタ機能を備えていて、安全マスタと称されることもある。
【０００７】
安全Ｉ／Ｏターミナルは、安全コントローラの通信マスタ機能との間でネットワーク通信機能、つまり、マスタに従って制御される通信スレーブ機能を備えている。安全Ｉ／Ｏターミナルは接続端子を備えていて、その接続端子に、オンオフ信号を出すスイッチ等の安全入力機器と、制御信号の出力先となる安全出力機器との少なくとも一方が接続されている。
【０００８】
安全入力機器の例は、非常停止スイッチＳＷ、ライトカーテン、ドアスイッチ、２ハンドスイッチなどである。安全出力機器の例は、セーフティリレーやコンタクタである。これらの安全入力機器または安全出力機器も安全規格に対応している。安全Ｉ／Ｏターミナルは、接続された安全用途機器から入力した信号に基づいて制御データを生成し、生成した制御データを安全コントローラへネットワーク通信する。
【０００９】
安全コントローラは、ＣＰＵユニットや電源ユニットやＩ／Ｏ（入出力）ユニットや通信マスタユニットなどの複数のユニットが連結して構成されるビルディングブロックタイプのものが知られている。各ユニットは共通内部バスに接続されていて、安全コントローラ全体の制御を司るＣＰＵユニットと他のユニットとの間でバス通信をし、データをやりとりすることができる。
【００１０】
そして、安全コントローラは、通信マスタユニットを介して安全Ｉ／Ｏターミナルからネットワーク通信により入力した安全入力機器の入力信号を入力し、予め記憶されたロジックプログラムによってその入力信号のオンオフを論理演算する。その演算結果に基づく出力信号を通信マスタユニットを介してネットワーク通信により安全Ｉ／Ｏターミナルへ出力する。安全Ｉ／Ｏターミナルは、その出力信号を安全出力機器へ出力する。この一連の動作を繰り返し実行することにより、安全コントローラにより製造器ロボットを含むシステム全体が制御される。なお、安全コントローラと安全Ｉ／Ｏターミナルとの間の通信サイクルは、安全コントローラの繰り返し実行のサイクルと同期しても良いし、非同期でも良い。
【００１１】
また、安全Ｉ／Ｏターミナルに接続された安全出力機器であるところのセーフティリレーやコンタクタは、製造器ロボットや加工機械、切断機械等につながれていて、リレーやコンタクタの接点がオン中は製造器ロボット等が動作し、接点がオフ中は製造器ロボット等が停止するようになっている。よって、安全コントローラは、安全出力機器をオンオフ制御することで、最終的な制御対象の操作ロボット等の動作停止に関する制御をする。
【００１２】
具体的な例でいうと、安全コントローラは、非常停止スイッチＳＷが正常に操作されたことを安全Ｉ／Ｏターミナルから通信にて入力すると、制御対象が危険な動作をしないよう安全出力機器（リレーやコンタクタ）をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を探る。また、安全コントローラは、非常停止スイッチＳＷまたは他の安全入力機器が異常有りの診断結果を入力すると、非常停止スイッチＳＷの操作有無または安全入力機器のオンオフ状態に関わらずに、制御対象が危険な動作をしないようにその動作を停止するよう安全出力機器をオフするか、安全側の状態に強制制御し、直ちに必要な安全処置を探る。
【００１３】
一般に、上記安全制御システムを構築するべく安全コントローラ（ＰＬＣ）のプログラム開発支援装置（ツール装置）が用いられている。通常、パソコンに所定のツールソフトを組み込んで構成される（特許文献１参照）。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平９−３３０２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
そして、当該装置を用いて、安全コントローラに対する安全入力機器からの入力信号あるいは安全出力機器に対する出力信号をユーザプログラムで処理可能とするためには、当該入力信号を受ける入力端子あるいは出力信号を出力する出力端子にそれぞれユーザプログラムで用いることが可能な変数を割り付けるいわゆるＩ／Ｏ割付を実行する必要がある。
【００１６】
ここで、例えば、安全用途の安全入力機器は入力信号として２重化構造を採用する場合があり、当該構成の場合には、安全コントローラには２つの入力信号を２つの入力端子にそれぞれ対応して２つの変数がそれぞれ割り当てられることになる。
【００１７】
そのため割り当てられる変数の増加に伴い安全コントローラのユーザプログラムの設計においてプログラミングが複雑化する可能性がある。
【００１８】
本発明は、上記のような問題を解決するためになされたものであって、安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法、装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明のある局面に従う安全コントローラに対する安全入力機器からの入力信号あるいは安全出力機器に対する出力信号をユーザプログラムで処理可能とするための安全コントローラのユーザプログラムの設計を支援する方法であって、安全コントローラの安全入力機器からの入力信号を受ける入力端子あるいは安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行するステップと、安全入力機器あるいは安全出力機器に関する情報を取得するステップと、取得した安全入力機器あるいは安全出力機器に関する情報に基づいて、安全入力機器からの２重化されている２つの入力信号を受ける２つの入力端子あるいは安全出力機器に対する２重化されている２つの出力信号を出力する２つの出力端子については、それぞれ割り付けられた２つの変数名のうちの一方の使用を禁止するステップとを備える。
【００２０】
好ましくは、安全入力機器あるいは安全出力機器に関する情報を取得するステップは、安全入力機器あるいは安全出力機器に関するユーザの入力に従うデータを受け付けるステップを含む。
【００２１】
好ましくは、安全入力機器あるいは安全出力機器は、安全コントローラと通信可能に接続された入力ユニットあるいは出力ユニットに接続され、安全入力機器あるいは安全出力機器に関する情報を取得するステップは、入力ユニットあるいは出力ユニットからの安全入力機器あるいは安全出力機器に関するデータを受け付けるステップを含む。
【００２２】
好ましくは、安全入力機器あるいは安全出力機器は、安全コントローラと通信可能に接続された入力ユニットあるいは出力ユニットに接続され、安全入力機器あるいは安全出力機器に接続される入力ユニットあるいは出力ユニットに対して、安全入力機器あるいは安全出力機器に対応した設定パラメータを設定するステップをさらに備え、安全入力機器あるいは安全出力機器に関する情報を取得するステップは、設定パラメータの設定に関する情報を取得する。
【００２３】
本発明のある局面に従う安全コントローラに対する安全入力機器からの入力信号あるいは安全出力機器に対する出力信号をユーザプログラムで処理可能とするための安全コントローラのユーザプログラムの設計を支援する装置であって、安全コントローラの安全入力機器からの入力信号を受ける入力端子あるいは安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行する手段と、安全入力機器あるいは安全出力機器に関する情報を取得する手段と、取得した安全入力機器あるいは安全出力機器に関する情報に基づいて、安全入力機器からの２重化されている２つの入力信号を受ける２つの入力端子あるいは安全出力機器に対する２重化されている２つの出力信号を出力する２つの出力端子については、それぞれ割り付けられた２つの変数名のうちの一方の使用を禁止する手段とを備える。
【００２４】
本発明のある局面に従うコンピュータにおいて、安全コントローラに対する安全入力機器からの入力信号あるいは安全出力機器に対する出力信号をユーザプログラムで処理可能とするための安全コントローラのユーザプログラムの設計を支援する機能を実行するためのプログラムであって、プログラムは、コンピュータに、安全コントローラの安全入力機器からの入力信号を受ける入力端子あるいは安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行するステップと、安全入力機器あるいは安全出力機器に関する情報を取得するステップと、取得した安全入力機器あるいは安全出力機器に関する情報に基づいて、安全入力機器からの２重化されている２つの入力信号を受ける２つの入力端子あるいは安全出力機器に対する２重化されている２つの出力信号を出力する２つの出力端子については、それぞれ割り付けられた２つの変数名のうちの一方の使用を禁止するステップとを備える。
【発明の効果】
【００２５】
安全コントローラのユーザプログラムの設計を容易にすることが可能である。
【図面の簡単な説明】
【００２６】
【図１】本実施の形態に従う安全制御システムの構成について説明する図である。
【図２】本実施の形態に従うプログラム開発支援装置１０の内部ハードウェア構成を示す概略ブロック図である。
【図３】本実施の形態に従う安全Ｉ／Ｏターミナル３の内部ハードウェア構成を示す概略ブロック図である。
【図４】所定の安全基準に対応する安全入力機器（２重化非常停止スイッチ）について説明する図である。
【図５】所定の安全基準に対応する安全入力機器（２重化セーフティライトカーテン）について説明する図である。
【図６】所定の安全基準に対応する出力機器（コンタクタ）について説明する図である。
【図７】本実施の形態に従う端子のパラメータを設定する処理のフローについて説明する図である。
【図８】本実施の形態に従う端子設定画面を説明する図である。
【図９】本実施の形態に従う安全入力機器に関する端子パラメータのテーブルを説明する図である。
【図１０】本実施の形態に従う安全Ｉ／Ｏターミナル３から安全コントローラ１に出力されるデータを説明する図である。
【図１１】本実施の形態に従うＩ／Ｏ割付のフローを説明する図である。
【図１２】安全コントローラ１のＩ／Ｏマップの一例を説明する図である。
【図１３】本実施の形態に従う安全コントローラ１のＩ／Ｏマップを説明する図である。
【図１４】安全コントローラのプログラムの設計の概念図である。
【図１５】本実施の形態に従う安全コントローラのプログラムの設計の概念図である。
【図１６】本実施の形態の変形例に従う安全Ｉ／Ｏターミナル３＃の内部ハードウェア構成を示す概略ブロック図である。
【図１７】本実施の形態の変形例に従う端子パラメータを設定するフローについて説明する図である。
【発明を実施するための形態】
【００２７】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
【００２８】
図１は、本実施の形態に従う安全制御システムの構成について説明する図である。
図１を参照して、ここでは、安全コントローラ１と安全Ｉ／Ｏターミナル３とがバス２で結ばれたバス型ネットワークを構成した安全制御システムが示されている。
【００２９】
本例においては、安全コントローラ１及び安全Ｉ／Ｏターミナル３には複数の安全入力機器４と安全出力機器５が配線接続されており、バス２には当該システムを構築するべく設けられたＰＬＣのプログラム開発支援装置１０が接続されている。
【００３０】
安全コントローラ１は、ＣＰＵユニットや電源ユニットやＩ／Ｏ（入出力）ユニットや通信マスタユニットなどの複数のユニットが連結して構成されるビルディングブロックタイプとする。各ユニットは共通内部バスに接続されていて、安全コントローラ全体の制御を司るＣＰＵユニットと他のユニットとの間でバス通信をし、データをやりとりすることができる。
【００３１】
そして、安全コントローラ１は、通信マスタユニットを介して安全Ｉ／Ｏターミナル３からネットワーク通信により入力した安全入力機器４の入力信号を入力し、予め記憶されたロジックプログラムによってその入力信号のオンオフを論理演算する。その演算結果に基づく出力信号を通信マスタユニットを介してネットワーク通信により安全Ｉ／Ｏターミナル３へ出力する。安全Ｉ／Ｏターミナル３は、その出力信号を安全出力機器５へ出力する。この一連の動作を繰り返し実行することにより、安全コントローラ１によりシステム全体が制御される。なお、安全コントローラ１と安全Ｉ／Ｏターミナル３との間の通信サイクルは、安全コントローラ１の繰り返し実行のサイクルと同期しても良いし、非同期でも良い。
【００３２】
安全入力機器４には、非常停止スイッチ、ライトカーテン、ドアスイッチ、リミットスイッチ等が含まれ、安全出力機器５には、セーフティリレー、コンタクタ等が含まれる。
【００３３】
また、図中のプログラム開発支援装置１０は、後述するＩ／Ｏウィザードによる対話形式の支援プログラムが実行可能なように設けられており、図例の汎用のノート型パソコンに限らず、ネットワークに接続可能な携帯型情報端末（ＰＤＡ）であってもよいし、デスクトップパソコンであってもよい。
【００３４】
なお、本例においては、安全Ｉ／Ｏターミナル３と安全入力機器４と安全出力機器５とが接続された構成について主に説明するが、特にこれに限られず、安全コントローラ１に対してＩ／Ｏ（入出力）ユニットを介して安全入力機器４および安全出力機器５が接続されたシステム形態においても同様に適用可能である。なお、安全入力機器４および安全出力機器５を総称して安全入出力機器とも称する。
【００３５】
図２は、本実施の形態に従うプログラム開発支援装置１０の内部ハードウェア構成を示す概略ブロック図である。
【００３６】
図２を参照して、図中に示されるブロック図は代表的な構成例を表すものである。
プログラム開発支援装置１０は、少なくとも、プログラム開発支援装置全体を統括し制御するＣＰＵ１１と、マウス操作やキーボード操作等を含む入力操作部１２と、プログラム開発支援装置が備える画像表示器の表示画面に対する表示処理を行う表示部１３と、操作入力処理や、所定の演算処理、表示画面に対する画像処理等に使用されるワークＲＡＭ１４と、外部への通信インターフェースを司る通信部１６と、記憶装置１５とを含む。
【００３７】
これらは、プログラム開発支援装置の内部バス１７に接続された形態で構成されている。さらに、記憶装置１５の所定の記憶領域には、後に詳述する、Ｉ／Ｏウィザードプログラムが格納されている。
【００３８】
図３は、本実施の形態に従う安全Ｉ／Ｏターミナル３の内部ハードウェア構成を示す概略ブロック図である。
【００３９】
図３を参照して、後述するＩ／Ｏウィザードによって作成支援を受けた、安全機器を接続するための入出力端子パラメータファイル（端子設定ファイル）のダウンロードを許可、実行する安全Ｉ／Ｏターミナル３に関する代表的なハードウェア構成が例示されている。
【００４０】
ここでは、バス２に接続されたプログラム開発支援装置１０や安全マスタ（安全コントローラ）等とのデータ送受を行う通信Ｉ／Ｆ部２０と、各種演算機能や故障診断機能等を実行し、安全コントローラ全体を統括・制御する中央演算部２１と、安全機器が接続される入出力端子部（２３ａ、２３ｂ）を構成している各端子（２４ａ、２４ｂ）には、端子毎の異常診断を実行する端子異常診断部（２２ａ、２２ｂ）とが含まれる。
【００４１】
この各入出力端子（２４ａ、２４ｂ）にはそれぞれ複数の安全入力機器４と安全出力機器５が接続される。
【００４２】
なお、本例においては、安全Ｉ／Ｏターミナルとして、安全入力機器と安全出力機器とをともに接続可能な装置の構成について説明するが、当該構成に限らず、安全入力機器を接続可能に設けられた入力ユニット、安全出力機器を接続可能に設けられた出力ユニットについて分離した構成を採用することも可能である。例えば、入力ユニットの構成としては、出力系の機能が設けられていない構成、具体的には、端子異常診断部２２ｂ、出力端子部２３ｂが設けられていない構成とすることが可能である。また、出力ユニットの構成としては、入力系の機能が設けられていない構成、具体的には、端子異常診断部２２ａ、出力端子部２３ｂが設けられていない構成とすることが可能である。
【００４３】
なお、ここでは、安全Ｉ／Ｏターミナルの構成について説明したが、安全コントローラ１のＩ／Ｏ（入出力）ユニットの構成も同様の構成である。
【００４４】
＜端子パラメータの設定＞
安全入力機器あるいは安全出力機器と接続される安全Ｉ／Ｏターミナルの端子については、種々のパラメータの設定をする必要がある。
【００４５】
図４は、所定の安全基準に対応する安全入力機器（２重化非常停止スイッチ）について説明する図である。
【００４６】
図４を参照して、ここでは、非常停止スイッチからの動作信号入力に対し、端子との配線入力を２重化接続処置を施した上で、非常停止スイッチの故障や、非常停止スイッチ／入力端子間の断線、短絡等を検知するための異常診断用のテストパルス設定がなされた、非常停止スイッチ接続例が示されている。
【００４７】
そして、当該安全入力機器と接続される端子に設定される各種パラメータの項目が示されている。
【００４８】
具体的には、「テストパルスの設定」については、「テストパルスを出力する」、「テストパルス出力端子の設定」については「テスト端子１を使用」、「二重化有無の設定」については「二重化する」、「２重化入力機器間のタイミング設定」については「１００ｍｓ間のタイミングずれを許容」等が設定される。
【００４９】
図５は、所定の安全基準に対応する安全入力機器（２重化セーフティライトカーテン）について説明する図である。
【００５０】
図５を参照して、ここでは、２重化セーフティライトカーテンについての動作信号の入力配線では２重化処置を施しているが、異常診断用のテストパルス設定は行われていないセーフティライトカーテンの接続例が示されている。
【００５１】
そして、当該安全入力機器と接続される端子に設定される各種パラメータの項目が示されている。
【００５２】
具体的には、「テストパルスの設定」については、「テストパルスを出力しない」、「テストパルス出力端子の設定」については「使用しない」、「二重化有無の設定」については「二重化する」、「２重化入力機器間のタイミング設定」については「１００ｍｓ間のタイミングずれを許容」等が設定される。
【００５３】
図６は、所定の安全基準に対応する出力機器（コンタクタ）について説明する図である。
【００５４】
図６を参照して、ここでは、安全出力機器として溶着チェックが必要なコンタクタを用いた安全機器の接続例が示されている。図中、制御する対象は２重化処理を施したコンタクタ接点ＫＭ１，ＫＭ２を３相モータを駆動する電源ラインに挿入して動作停止に備える接続形態である。入力端子の設定は、一点鎖線で囲まれたコンタクタ接点に対する溶着チェック用の入力端子１、テスト端子１への端子入力接続を促すものである。
【００５５】
そして、当該安全出力機器と接続される端子に設定される各種パラメータの項目が示されている。
【００５６】
具体的には、「テストパルスの設定」については、「テストパルスを出力しない」、「テストパルス出力端子の設定」については「使用しない」、「二重化有無の設定」については「二重化する」等が設定される。
【００５７】
次に、当該安全入力機器と接続される端子のパラメータを設定する方式について説明する。
【００５８】
本例においては、プログラム開発支援装置１０を用いて当該端子のパラメータを設定する。
【００５９】
図７は、本実施の形態に従う端子のパラメータを設定する処理のフローについて説明する図である。当該フローは、プログラム開発支援装置１０のＣＰＵ１１が記憶装置１５に格納されたＩ／Ｏウィザード（ツール）を実行することにより実現される。なお、Ｉ／Ｏウィザード（ツール）には種々の機能を実行するツールが設けられており、端子のパラメータを設定するツールや、後述するＩ／Ｏ割付を実行するツールや、プログラミングを実行するツール等、各種の機能を選択的に実行することが可能である。
【００６０】
ここでウィザードとは、例えば、利用者に対して対話型のガイダンスを表示し、幾つかの選択肢の中からガイドに従って選択させることにより、複雑な操作や設定を容易に行えるようにする機能及びその表示画面を含むものである。このようなプログラム処理は、上述した実施の形態の機能をコンピュータで実現できればよく、そのプログラム形態は、オブジェクトコード、インタプリタにより実行されるプログラム、プログラム処理を搭載実行するコンピュータのＯＳに供給されるスクリプトデータ等の形態を有するものでも良い。
【００６１】
図７を参照して、先ず、プログラム開発支援装置１０の電源を投入し、所定のイニシャル処理を経た上で、Ｉ／Ｏウィザードを起動すると、内部ＨＤＤ等で構成された記憶装置１５に設けられた記憶領域に格納されたＩ／Ｏウィザードが読み出され実行される。
【００６２】
Ｉ／Ｏウィザードが実行されると、安全デバイスの検索を実行する（ステップＳ２）。具体的には、プログラム開発支援装置１０のＣＰＵ１１は、通信部１６を介してバス２と接続されている安全デバイス（安全コントローラ、安全Ｉ／Ｏターミナル等）を検索する。当該検索により図示しないが安全デバイスのリストが生成されるものとする。
【００６３】
なお、本例においては、プログラム開発支援装置１０とオンラインで安全デバイスが接続されている場合について説明しているが、オフラインである場合においても記憶装置１５に記憶された安全デバイスの検索を実行し、このＩ／Ｏウィザードがサポートしている安全デバイス（安全コントローラ、安全Ｉ／Ｏターミナル等）の情報を読み出して、プログラム開発支援装置１０の表示画面上に安全デバイスのリストが生成される。
【００６４】
ここで、安全デバイスとは、安全コントローラや、安全Ｉ／Ｏターミナルの代表例に示される如く、要求される安全基準を確保するために、このデバイスが備える入出力端子に配線接続された安全入出力機器の動作状態確認や故障診断機能を備え、これら安全デバイスから構築された制御システムが、各種診断結果に基づいて所定の安全基準を満たした運用状態を確保できる機能を備えたものであればよい。
【００６５】
次に、安全デバイスの選択を実行する（ステップＳ４）。具体的には、プログラム開発支援装置１０の備える表示器の表示画面上に表示されている安全デバイスのリストの中から安全デバイスを選択する。
【００６６】
そして、次に端子設定画面を表示する（ステップＳ６）。具体的には、当該安全デバイスに対応する端子の設定画面が表示される。
【００６７】
まず、安全入力機器と接続される安全デバイスの端子設定について説明する。
図８は、本実施の形態に従う端子設定画面を説明する図である。
【００６８】
図８（Ａ）を参照して、プログラム開発支援装置１０に表示される入力端子設定画面（Ｉ／Ｏウィザードウィンドウ３００）が例示されている。図例において、Ｉ／Ｏウィザードウィンドウ３００は、実行中の処理名が表示されるタイトル３０１と、図略する、現在処理実行中の端子設定を行う各種安全デバイスが備える製品外観をグラフィカルに表示するデバイス表示エリア３０２と、選択・指定された安全デバイスの入力端子数に対応するＭｏｄｅ Ｃｏｍｍｅｎｔエリア３０３と配線接続する安全機器タイプを入力するＴｙｐｅエリア３０４とを備え、入力端子に関する各種パラメータ設定画面を表示するダイアログエリア３０５と、クリック操作等により、現在のパラメータ設定内容を決定する「ＯＫ」ボタン３０８と、Ｔｙｐｅエリア３０４へのカーソル操作により、ドラッグ方式で上下方向にスクロール可能なサブウィンドウ３０６中に表示された安全機器との入力端子接続に関して、選択・設定された内容の取り消しを行う、「キャンセル」ボタン３０９とから構成される。
【００６９】
また、同図中において、ダイアログエリア３０５の画面下方には、Ｍｏｄｅ  Ｃｏｍｍｅｎｔエリア３０３に表示された各種記号に対する簡易説明が表示されている。
【００７０】
ここで、各種記号の意味するところは以下の通りである。
［ｅ］：Ｄｕａｌ Ｅｑｕｉｖ， 同値入力（０／０，１／１）による２重化設定。“１／１”のときスイッチＯＮ、“０／０”のときにスイッチＯＦＦ（遮断）。
【００７１】
［ｃ］：Ｄｕａｌ Ｃｏｍｐ， 異値（０／１，１／０）による２重化設定。
［Ｐ］：Ｔｅｓｔ Ｐｕｌｓｅ， 安全入力機器の故障、端子／機器間の断線・短絡 を検知するために、テスト出力端子から定期的にテストパルスを出力する設定。
【００７２】
［ｓ］：Ｓａｆｅｔｙ， テストパルスを使用せずに、安全入力機器を接続する設定。  ［ＳＴ］：Ｓｔａｎｄａｒｄ， 非安全入力機器を接続する設定。
【００７３】
同図に示された、Ｉ／Ｏウィザードウィンドウ３００の支援を受けた安全入力機器に対応する端子パラメータの設定は、Ｉ／Ｏウィザードウィンドウ３００画面の構成であるダイアログエリア３０５内のＴｙｐｅエリア３０４へ、カーソル等を操作して合わせると、先述した安全基準を満たす、実績のある安全入力機器リストがサブウィンドウ３０６にリストアップされる（図例中のサブウィンドウが開いた状態）。
【００７４】
図７のフローチャートに戻り、サブウィンドウ３０６内にリストアップされた安全入力機器の中から合致（配線接続）する安全入力機器（接続機器）を選択（ステップＳ１０）すると、Ｔｙｐｅエリア３０４に選択された安全入力機器が挿入設定され、このＴｙｐｅエリア３０４に対応するＭｏｄｅ Ｃｏｍｍｅｎｔエリア３０３には、自動的に安全基準を満足する端子設定（安全入力機器への接続設定）のパラメータの表示がなされる。
【００７５】
図例においては、例えばＴｙｐｅエリア３０４に「非常停止  ２ｂ接点」である安全入力機器を選択・設定した場合には、対応するＭｏｄｅ  Ｃｏｍｍｅｎｔエリア３０３の“Ｂｉｔ００”及び“Ｂｉｔ０１”の表示欄に“［ｅ］［Ｐ］非常停止ＮＣ”の設定表示がなされている。ここで、“Ｂｉｔｘｘ”とは、指定された安全デバイスの入力端子を表している。
【００７６】
さらに、Ｍｏｄｅ  Ｃｏｍｍｅｎｔエリア３０３に表示される端子設定情報は、ワークＲＡＭ１４の所定の領域に格納されたテーブル情報に基づくものであり、サブウィンドウ３０６に表示する安全入力機器リストに対応付けられた、安全基準認定を受けた運用形態に基づくものである。そして、選択された安全入力機器に対応して一義的に決定される設定情報である。
【００７７】
すなわち、選択された安全入力機器に従いテーブル情報に基づいて端子パラメータが設定される（ステップＳ１２）。
【００７８】
そして、端子の設定が全て終了したかどうかが判断され（ステップＳ１４）、指定された安全デバイスが備える全入力端子について、安全入力機器毎に継続してサブウィンドウ３０６に表示されたリストの中から選択・設定することで、端子パラメータの設定が繰り返し実行（ステップＳ１０〜Ｓ１４）される。
【００７９】
安全デバイスの各端子に割り付ける安全入力機器等の選択・設定を取り消す場合には、所定の情報が表示されたＴｙｐｅエリア３０４にカーソル等を操作して合わせ「キャンセル」ボタン３０９を押下することで、設定入力の取り消しが実行される。
【００８０】
安全デバイスの全入力端子に関する安全入力機器の設定が終了すると、ユーザは、プログラム開発支援装置１０に表示されたＩ／Ｏウィザードウィンドウ３００画面内の「ＯＫ」ボタン３０８を押下（ステップＳ１４においてＹＥＳ）する。
【００８１】
実行中のＩ／Ｏウィザードは、Ｉ／Ｏウィザードウィンドウ３００画面内の「ＯＫ」ボタン３０８が押下されたタイミングで、現在処理実行中の安全デバイスが備える全入力端子に対して、それぞれの入力端子に接続される安全入力機器の端子パラメータをワークＲＡＭ１４の所定の領域に端子設定ファイルとして記憶する。
【００８２】
そして、処理を終了する（エンド）。
図９は、本実施の形態に従う安全入力機器に関する端子パラメータのテーブルを説明する図である。
【００８３】
図９を参照して、安全入力機器にそれぞれ対応して入力端子が満たすべき接続条件（設定パラメータ）が格納されている。例えば、図中、“１”の機器番号が割り当てられた入力端子の設定パラメータでは、同値入力（０／０，１／１）による２重化設定がなされており、２重化された信号入力間でのタイミングずれの許容時間は、“１００ｍｓ”に設定されることを示している。ここで、“１００ｍｓ”の設定時間とは、２重化された一方の入力信号が“ＯＦＦ”してから、“１００ｍｓ”以内に他方の信号入力も“ＯＦＦ”しない場合には、安全入力機器の故障、または機器／端子間配線の断線・短絡等の異常が発生したものと判断するための許容時間である。また、この安全入力機器の故障や機器／端子間の断線・短絡等を検知するために、テストパルスを用いた異常診断を定期的に実行することを示しており、このテストパルスは出力端子“０／１”をテストソースとして使用する、ことを示している。
【００８４】
当該各項目の端子パラメータが端子設定ファイルに含められて安全デバイス（例えば安全Ｉ／Ｏターミナル）に送信されて、安全入力機器と接続される安全デバイスの端子について種々の設定がされる。安全出力機器についても同様である。
【００８５】
次に、安全出力機器と接続される安全デバイスの端子設定について説明する。
図８（Ｂ）を参照して、プログラム開発支援装置１０に表示される出力端子設定画面（Ｉ／Ｏウィザードウィンドウ４００）が例示されている。図例において、Ｉ／Ｏウィザードウィンドウ４００は、実行中の処理名が表示されるタイトル４０１と、図略する、現在処理実行中の端子設定を行う各種安全デバイスが備える製品外観をグラフィカルに表示するデバイス表示エリア４０２と、選択・指定された安全デバイスの出力端子数に対応するＭｏｄｅ  Ｃｏｍｍｅｎｔエリア４０３と配線接続する安全出力機器（セーフティリレー、コンタクタ等）タイプを入力するＴｙｐｅエリア４０４とを備え、出力端子に関する各種パラメータ設定画面を表示するダイアログエリア４０５と、クリック操作等により、現在のパラメータ設定内容を決定する「ＯＫ」ボタン４０８と、Ｔｙｐｅエリア４０４へのカーソル操作により、ドラッグ方式で上下方向にスクロール可能なサブウィンドウ４０６中に表示された安全機器との出力端子接続に関して、選択・設定された内容の取り消しを行う、「キャンセル」ボタン４０９と、から構成される。
【００８６】
また、同図中において、ダイアログエリア４０５の画面下方には、Ｍｏｄｅ  Ｃｏｍｍｅｎｔエリア４０３に表示された各種記号に対する簡易説明が表示されている。
【００８７】
ここで、各種記号の意味するところは以下の通りである。
［ｄ］：Ｄｕａｌ， 同値出力による２重化設定。
【００８８】
［Ｐ］：Ｐｕｌｓｅ Ｔｅｓｔ， 安全出力機器の故障、端子／機器間の断線・短絡 等を検知するために、出力端子から定期的にテストパルスを出力する設定。
【００８９】
［ｓ］：Ｓａｆｅｔｙ， テストパルスを使用せずに、安全出力機器を接続する設定。
同図に示された、Ｉ／Ｏウィザードウィンドウ４００の支援を受けた安全出力機器に対応する端子パラメータの設定は、Ｉ／Ｏウィザードウィンドウ４００画面の構成であるダイアログエリア４０５内のＴｙｐｅエリア４０４へ、カーソル等を操作して合わせることによって、先述した安全基準を満たす、実績のある安全出力機器リストがサブウィンドウ４０６にリストアップされる（図例中のサブウィンドウが開いた状態）。
【００９０】
このように、ユーザは、サブウィンドウ４０６中に表示された安全出力機器リストを上下方向にスクロールさせることによって、Ｉ／Ｏウィザードがサポートする全出力機器（選択・指定された安全デバイスに関する）を確認できる。
【００９１】
このようなスクロール機能を持たせれば、端子設定ファイル作成のための案内表示を行う、限られた画面表示エリアを有効に活用でき、リスト形式による複数の安全出力機器表示が行える。さらに、将来的にサポートする安全出力機器の数が増大しても画面表示エリアを一定のサイズに保ったまま、安全出力機器リストが表示出来るため、案内表示を行う画面構成を変えることなく対応できる利点がある。
【００９２】
図７を参照して、ステップＳ２〜Ｓ６については同様である。そして、サブウィンドウ４０６内にリストアップされた安全出力機器の中から合致（配線接続）する安全出力機器を選択（ステップＳ１０）すると、Ｔｙｐｅエリア４０４に選択された安全出力機器が挿入設定され、このＴｙｐｅエリア４０４に対応するＭｏｄｅ Ｃｏｍｍｅｎｔエリア４０３には、自動的に安全基準を満足する端子設定（安全出力機器への接続設定）パラメータの表示がなされる。
【００９３】
図例においては、例えばＴｙｐｅエリア４０４に「セーフティリレー２個溶着チェック有り」である安全出力機器を選択・設定した場合には、対応するＭｏｄｅ Ｃｏｍｍｅｎｔエリア４０３の“Ｂｉｔ００”及び“Ｂｉｔ０１”の表示欄に“［ｄ］［Ｐ］セーフティリレー”の設定表示がなされている。ここで、“Ｂｉｔｘｘ”とは、指定された安全デバイスの出力端子を表している。
【００９４】
さらに、Ｍｏｄｅ  Ｃｏｍｍｅｎｔエリア４０３に表示される端子設定情報は、ワークＲＡＭ１４の所定の領域に格納されたテーブル情報に基づくものであり、サブウィンドウ４０６に表示する安全出力機器リストに対応付けられた、安全基準認定を受けた運用形態に基づくものである。そして、選択された安全出力機器に対応して一義的に決定される設定情報である。
【００９５】
すなわち、選択された安全出力機器に従いテーブル情報に基づいて端子パラメータが設定される（ステップＳ１２）。
【００９６】
そして、端子の設定が全て終了したかどうかが判断され（ステップＳ１４）、指定された安全デバイスが備える全出力端子について、安全出力機器毎に継続して、サブウィンドウ４０６に表示されたリストの中から選択・設定することで、指定された安全デバイスの全出力端子についての設定が、繰り返し実行（ステップＳ１０〜Ｓ１４）される。
【００９７】
安全デバイスの各端子に割り付ける安全出力機器等の選択・設定を取り消す場合には、所定の情報が表示されたＴｙｐｅエリア４０４にカーソル等を操作して合わせ「キャンセル」ボタン４０９を押下することで、設定入力の取り消しが実行される。
【００９８】
安全デバイスの全出力端子に関する安全出力機器の設定が終了すると、ユーザは、プログラム開発支援装置１０に表示されたＩ／Ｏウィザードウィンドウ４００画面内の「ＯＫ」ボタン４０８を押下（ステップＳ１４においてＹＥＳ）する。
【００９９】
実行中のＩ／Ｏウィザードは、Ｉ／Ｏウィザードウィンドウ４００画面内の「ＯＫ」ボタン４０８が押下されたタイミングで、現在処理実行中の安全デバイスが備える全出力端子に対して、それぞれの出力端子に接続される安全出力機器の端子パラメータをワークＲＡＭ１４の所定の領域に端子設定ファイルとして記憶する。
【０１００】
そして、処理を終了する（エンド）。
ここまでに説明してきたように、Ｉ／Ｏウィザードによるサポートを受けて作成された端子設定ファイルは、プログラム開発支援装置１０の記憶装置１５内に記憶されてしまえば、対応する安全デバイスに対するダウンロード設定は様々な形態（一旦、記憶媒体に書き込み、この記憶媒体をサポートするハンディツールを用いる場合等）で実行できる。
【０１０１】
ここでは、図１に示されるバス型ネットワークを構築した状態でのダウンロード実行例を、プログラム開発支援装置１０と安全入出力機器（４，５）が接続された安全コントローラ１との間のデータ通信形態を使用して以下に説明する。
【０１０２】
プログラム開発支援装置１０から端子設定ファイルのダウンロードを実行するには、この種の制御システムが備えているデータ通信方式では一般的な、宛先アドレス指定によるダウンロード処理を実行する。すなわち、ネットワークを構成するバス２に接続されたプログラム開発支援装置１０はネットワーク上の安全デバイス（安全コントローラ１、安全Ｉ／Ｏターミナル３）との通信を行うために、所定のノードアドレスが割り当てられているので、端子設定ファイル内容に対応する安全デバイス（ここでは、安全Ｉ／Ｏターミナル３）に対し、プログラム開発支援装置１０は、自己に割り当てられたノードアドレスを送信元アドレスに設定し、対応する安全デバイスのノードアドレスを宛先アドレスに設定して該端子設定ファイルをダウンロードするのである。
【０１０３】
具体的には、プログラム開発支援装置１０において該端子設定ファイルのダウンロード実行が行われると、ＣＰＵ１１は端子設定ファイルが記憶格納された記憶装置１５から読み出して、ワークＲＡＭ１４の所定の記憶領域に一旦、保持する。次に、自ノードアドレスと宛先ノードアドレス情報に基づいて、このワークＲＡＭ１４上に記憶された端子設定ファイルを所定（データ送信用）の形式に変換し、この送信データをＣＰＵ１１と内部バス１７で接続された通信部１６を介してネットワーク上に送信する。
【０１０４】
端子設定ファイルに対応したノードアドレスを有する安全Ｉ／Ｏターミナル３の通信Ｉ／Ｆ部２０は、バス２上に送信されたデータの宛先アドレスを検知して受信処理を実行する。受信された送信データに挿入された端子設定ファイルは、中央演算部２１が備えているＲＡＭ上の所定の記憶領域に一旦、保存格納され、受信処理は終了する。
【０１０５】
安全Ｉ／Ｏターミナル３のＲＡＭ上の記憶領域に格納されたダウンロードファイル（端子設定ファイル）は、中央演算部２１によってデータファイル内容の確認処理が実行される。ここで、設定内容の確認処理とは例えば、端子設定ファイルに挿入された特定の識別番号を確認することを含んでもよいし、第３者による可変を防止するための暗号認証を含むものであってもよい。
【０１０６】
安全Ｉ／Ｏターミナル３の中央演算部２１によって、ダウンロードされた端子設定ファイルの内容確認が終了したならば、該端子設定ファイルに含まれる全入出力端子パラメータの設定情報が、各端子毎の設定情報が格納されたメモリ２５上の所定の記憶領域に割り当てられたパラメータエリアに書き込まれることとなる。
【０１０７】
これにより、安全入力機器あるいは安全出力機器と接続される安全デバイス（安全Ｉ／Ｏターミナル３）の端子について種々の設定がされ、安全デバイス（安全Ｉ／Ｏターミナル３）に接続された安全入力機器あるいは安全出力機器を制御することが可能となる。
【０１０８】
なお、安全入力機器あるいは安全出力機器と接続される安全デバイス（安全コントローラ１）についても同様の処理が行われる。
【０１０９】
図１０は、本実施の形態に従う安全Ｉ／Ｏターミナル３から安全コントローラ１に出力されるデータを説明する図である。
【０１１０】
図１０を参照して、ここでは、安全入力機器４と接続される１入力端子の入力信号に従って安全Ｉ／Ｏターミナル３から当該入力信号に従うデータ信号が出力される場合が示されている。
【０１１１】
具体的には、安全Ｉ／Ｏターミナル３の端子異常診断部２２ａでの診断結果に基づくステータスと、端子に入力された信号値とがともに送信される。
【０１１２】
ステータスが「１」の場合には正常状態であり、「０」の場合には異常状態である。また、信号値「１／０」にそれぞれ対応してＯＮ／ＯＦＦである場合が示されている。
【０１１３】
そして、安全入力機器４について２重化されている場合には、２つの入力信号が安全Ｉ／Ｏターミナル３に入力される。
【０１１４】
したがって、安全Ｉ／Ｏターミナル３から安全コントローラ１に出力されるデータ信号もそれぞれの入力に従って出力される。
【０１１５】
＜端子のＩ／Ｏ割付＞
安全入出力機器と接続される安全デバイスの端子について、安全入出力機器に対応した端子パラメータを設定するとともに、当該端子に入力される入力信号あるいは当該端子から出力される出力信号を安全コントローラ１のユーザプログラムで処理可能とするためには、安全コントローラ１に設けられた安全入力機器からの入力信号を受ける入力端子あるいは安全出力機器に対する出力信号を出力する出力端子にそれぞれ対応して、それぞれが異なる変数名を割り付けるＩ／Ｏ割付を実行する必要がある。
【０１１６】
そして、当該Ｉ／Ｏ割付に従って割り付けられた変数名に従って、安全コントローラ１のユーザプログラムの設計の際において、当該変数名を用いたプログラミング処理を実行することが可能である。
【０１１７】
本実施の形態においては、当該安全コントローラ１の端子のＩ／Ｏ割付をプログラム開発支援装置１０において実行するものとする。
【０１１８】
図１１は、本実施の形態に従うＩ／Ｏ割付のフローを説明する図である。当該フローは、プログラム開発支援装置１０のＣＰＵ１１が記憶装置１５に格納されたＩ／ＯウィザードのＩ／Ｏ割付を実行する機能に基づいて実現される。
【０１１９】
図１１を参照して、まず、ＣＰＵ１１は、入力あるいは出力の端子に変数を割り付ける（ステップＳ２０）。具体的には、安全コントローラ１に設けられている入力あるいは出力端子にそれぞれ対応して、それぞれが異なる変数を割り付ける。当該変数の割り付けは、所定の方式に従って自動的に割り付け（割り当て）られるものとする。
【０１２０】
次に、ＣＰＵ１１は、接続される安全入出力機器の情報を取得する（ステップＳ２２）。具体的には、ＣＰＵ１１は、上記で説明したＩ／Ｏウィザードで作成した安全デバイスに対する端子設定ファイルの情報を取得する。当該情報としては、一例として安全Ｉ／Ｏターミナル３の端子に設定された端子パラメータの情報を取得する。当該端子パラメータの情報に基づき、安全Ｉ／Ｏターミナル３の端子に関して２重化された安全入力機器あるいは安全出力機器と接続されている等の情報を取得することが可能である。
【０１２１】
次に、ＣＰＵ１１は、取得した情報に基づいて安全入出力機器は２重化されているかどうかを判断する（ステップＳ２４）。
【０１２２】
ステップＳ２４において、ＣＰＵ１１は、安全入出力機器は２重化されていると判断した場合（ステップＳ２４においてＹＥＳ）には、入力あるいは出力の端子に割り付けた２つの変数の一方を禁止に設定する（ステップＳ２６）。
【０１２３】
そして、全端子について当該処理を繰り返し（ステップＳ２８においてＮＯ）、全端子が終了したかどうかを判断する（ステップＳ２８）。
【０１２４】
ステップＳ２８において、全端子について当該処理が終了したと判断した場合（ステップＳ２８においてＹＥＳ）には、Ｉ／Ｏ割付処理を終了する（エンド）。
【０１２５】
一方、ステップＳ２４において、安全入出力機器は２重化されていないと判断した場合（ステップＳ２４においてＮＯ）には、ステップＳ２６をスキップしてステップＳ２８に進む。その後の処理については上記で説明したのと同様である。
【０１２６】
そして、上記Ｉ／Ｏ割付処理に従い生成された端子と変数との関係を示すＩ／Ｏマップは、プログラム開発支援装置１０からダウンロードされて安全コントローラ１のＩ／Ｏメモリにダウンロードされる。
【０１２７】
図１２は、安全コントローラ１のＩ／Ｏマップの一例を説明する図である。
図１２を参照して、ここでは、Ｉ／ＯウィザードのＩ／Ｏ割付処理後に生成したＩ／Ｏマップを表示する機能を用いて表示した場合が示されている。
【０１２８】
入力側において、安全コントローラ１の入力端子にそれぞれ対応して変数が割り当てられている場合が示されている。
【０１２９】
具体的には、入力端子“Ｂｉｔｘｘ”（ｘｘ＝００〜１３）とは、指定された安全機器（安全コントローラ）の入力端子名を表している。当該入力端子に対して、安全Ｉ／Ｏターミナルを介して接続された安全入力機器から入力された信号が入力される。
【０１３０】
そして、各入力端子に対してそれぞれ変数が割り付けられた（割り当てられた）場合が示されている。
【０１３１】
上述したように２重化された安全入力機器４からは安全規格に従って２つの信号が安全Ｉ／Ｏターミナル３に入力される。
【０１３２】
そして、２重化されている２つの入力信号が安全Ｉ／Ｏターミナル３を介して安全コントローラ１にそれぞれ入力されるため、安全コントローラ１の２つの入力端子にそれぞれ変数が割り当てられることになる。
【０１３３】
しかしながら、２重化された安全入力機器４から安全Ｉ／Ｏターミナル３を介して入力される信号は同値である。
【０１３４】
したがって、それぞれの入力に対して変数が割り当てられるとプログラム設計者は２つの変数のいずれを選択して用いれば良いかの判断に迷う可能性がある。また、プログラミングの誤操作の要因ともなる。
【０１３５】
それゆえ、本実施の形態においては、安全入出力機器が２重化されて接続されている場合には、割り当てられる２つの変数の一方の使用を禁止する。
【０１３６】
図１３は、本実施の形態に従う安全コントローラ１のＩ／Ｏマップを説明する図である。
【０１３７】
図１３を参照して、ここでは、Ｉ／ＯウィザードのＩ／Ｏ割付処理後に生成したＩ／Ｏマップを表示する機能を用いて表示した場合が示されている。
【０１３８】
図１２で説明したのと同様に安全コントローラの入力端子にそれぞれ対応して変数が割り当てられている場合が示されている。
【０１３９】
そして、図１１の比較例と比較して、“Ｂｉｔ０１”および“Ｂｉｔ０３”についてはグレーアウトした状態（ハッチング領域）となっている。すなわち、当該変数については使用が禁止されている状態が示されている。
【０１４０】
これにより、プログラムの設計者は、一方の変数の使用が禁止された状態であるためいずれの変数を選択して使用するかを迷う必要がない。また、使用が許可されている変数を容易に把握することが可能である。
【０１４１】
なお、本例においては、一方の変数の使用を禁止した状態として把握することが可能なようにグレーアウトした状態を表示する一例について説明したが、特にこれに限られず、通知する形式で設計者に知らせるようにしてもよいし、他の手段を採用することも可能であり、使用が許可されている変数と使用が禁止されている変数とを区別可能な状態であればどのような形態としても良い。
【０１４２】
図１４は、安全コントローラのプログラムの設計の概念図である。
図１４を参照して、ここでは、安全コントローラのユーザプログラムの設計の概念図が示されている。
【０１４３】
ここでは、安全入力機器が入力ユニットを介して安全コントローラと接続され、また、出力ユニットを介して安全出力機器と接続される場合の概念図が示されている。
【０１４４】
入力ユニットは、例えば、安全Ｉ／Ｏターミナルの入力側の機能に相当する。出力ユニットは、安全Ｉ／Ｏターミナルの出力側の機能に相当する。
【０１４５】
そして、ここでは、Ｉ／Ｏマップで割り付けられた変数を用いて、入力ユニットを介して入力される信号を用いて安全コントローラのユーザプログラムの設計をする場合の組み合わせが示されている。
【０１４６】
当該図に示されているように、２つの端子に割りつけられた変数を安全コントローラのユーザプログラムで使用する際には、変数の組み合わせのパターンは変数の個数に応じて増加する。例えば、変数Ａ、Ｂと、変数Ｃ、Ｄとを組み合わせた場合４通りが考えられる。
【０１４７】
したがって、ユーザプログラムとしての複数のパターンの作成が可能であり、プログラムの設計者が判断する必要が生じ、判断を難しくするとともに誤操作の要因ともなる。
【０１４８】
図１５は、本実施の形態に従う安全コントローラのプログラムの設計の概念図である。
図１５を参照して、図１４で説明したように、安全入力機器が入力ユニットを介して安全コントローラと接続され、また、出力ユニットを介して安全出力機器と接続される場合の概念図が示されている。
【０１４９】
そして、ここでは、Ｉ／Ｏマップで割り付けられた変数を用いて、入力ユニットを介して入力される信号を用いて安全コントローラのユーザプログラムの設計をする場合の組み合わせが示されている。
【０１５０】
当該図に示されているように、２つの端子に割りつけられた変数のうちの一方を禁止しているため安全コントローラのユーザプログラムで使用する際には、変数の組み合わせのパターンは図１４の場合よりも減少する。ここでは、変数Ｂおよび変数Ｄについて使用が禁止されているため、一例として変数Ａと変数Ｃとの組み合わせが一意に定まることになり、安全コントローラのユーザプログラムの設計が容易になり、プログラムを簡略化することが可能である。また、変数の組み合わせのパターンが減少するため判断に迷う可能性を低くし、誤操作も防止することが可能である。また、変数を少なくするためメモリの消費量も抑制することが可能である。
【０１５１】
（変形例）
上記においては、プログラム開発支援装置１０のＩ／Ｏウィザードに従って安全デバイスの入出力端子のパラメータを設定する方式について説明したが、当該方式に限られず、例えば、安全Ｉ／Ｏターミナル３において、当該安全Ｉ／Ｏターミナル３に設けられた入出力端子の端子パラメータを自動的に設定する機能を設けるようにすることも可能である。
【０１５２】
図１６は、本実施の形態の変形例に従う安全Ｉ／Ｏターミナル３＃の内部ハードウェア構成を示す概略ブロック図である。
【０１５３】
図１６を参照して、図３で説明した構成と比較して、メモリ２５をメモリ２６に置換した点が異なる。
【０１５４】
メモリ２６は、端子設定情報ＤＢ（データベース）２７と、端子設定プログラム２８とを含む。
【０１５５】
本実施の形態の変形例においては、安全Ｉ／Ｏターミナル３＃が端子に接続された安全入出力機器の種別を判断して、当該種別に応じた端子パラメータを入出力端子に自動的に設定する方式について説明する。
【０１５６】
図１７は、本実施の形態の変形例に従う端子パラメータを設定するフローについて説明する図である。当該フローは、中央演算部２１がメモリ２６に格納されている端子設定プログラム２８を読み込むことにより実行される。
【０１５７】
図１７を参照して、中央演算部２１は、まず、安全入出力機器の接続が有るかどうかを判断する（ステップＳ３０）。具体的には、安全入出力機器が入力端子部２３ａあるいは出力端子部２３ｂに接続されたかどうかを判断する。
【０１５８】
ステップＳ３０において、中央演算部２１は、安全入出力機器の接続が有ると判断した場合（ステップＳ３０においてＹＥＳ）には、次に、安全入出力機器の種別を判断する（ステップＳ３２）。具体的には、中央演算部２１は、入力端子部２３ａあるいは出力端子部２３ｂと接続された安全入出力機器からの情報を取得してその種別（例えば、非常停止スイッチＳＷ、ライトカーテン、ドアスイッチ、２ハンドスイッチ、セーフティリレー、コンタクタ）を判断する。安全入出力機器は、端子と接続された場合に当該情報を出力するものとする。あるいは、中央演算部２１からの指示に従って当該情報を出力するように構成されている。
【０１５９】
次に、中央演算部２１は、安全入出力機器種別の判断がＯＫかどうかを判断する（ステップＳ３４）。具体的には、中央演算部２１は、安全入出力機器から取得した情報に基づいて当該機器の種別を判断することができたかどうかを判断する。すなわち、中央演算部２１は、サポート可能な安全入出力機器であるかどうかを判断する。
【０１６０】
ステップＳ３４において、中央演算部２１は、安全入出力機器の種別の判断がＯＫであると判断した場合（ステップＳ３４においてＹＥＳ）には、端子設定情報ＤＢ２７を参照する（ステップＳ３６）。具体的には、中央演算部２１は、端子設定情報ＤＢ２７から安全入出力機器について判断した種別に対応する端子パラメータを読み出す。例えば、端子設定情報ＤＢ２７には、図９で説明した安全入出力機器に関する端子パラメータのテーブルが格納されているものとする。当該テーブルを参照することにより判断された種別に対応する端子パラメータを取得することが可能である。
【０１６１】
次に、中央演算部２１は、対応する安全入出力機器の端子パラメータを設定する（ステップＳ３８）。具体的には、取得した端子パラメータに基づいて安全入出力機器と接続されている端子についてそれぞれ端子パラメータを設定する。
【０１６２】
そして、処理を終了する（エンド）。
一方、ステップＳ３４において、安全入出力機器の種別の判断がＯＫで無いと判断した場合（ステップＳ３４においてＮＯ）には、処理を終了する（エンド）。例えば、サポートされていない安全入出力機器が接続された場合には、端子パラメータを設定することなく終了する。
【０１６３】
当該処理により、全入出力端子パラメータの設定情報が、各端子毎の設定情報が格納されたメモリ２６上の所定の記憶領域に割り当てられたパラメータエリアに書き込まれることとなる。
【０１６４】
すなわち、当該方式により、安全デバイスの入出力端子のパラメータについてプログラム開発支援装置１０のＩ／Ｏウィザードを用いることなく自動的に安全デバイスの入出力端子に接続された安全入出力機器に応じた端子パラメータを設定することが可能である。
【０１６５】
そして、本実施の形態の変形例に従うＩ／Ｏ割付についても図１１で説明したのと同様のフローを適用することが可能である。
【０１６６】
この場合、ステップＳ２２における安全入出力機器の情報の取得については、ＣＰＵ１１は、通信部１６を用いて安全デバイス（例えば安全Ｉ／Ｏターミナル３）と接続される安全入出力機器の情報を取得する。具体的には、ＣＰＵ１１は、通信部１６を用いて安全Ｉ／Ｏターミナル３にアクセスして、安全Ｉ／Ｏターミナル３のメモリ２６に格納されている安全Ｉ／Ｏターミナル３の端子に設定された端子パラメータの情報を取得する。メモリ２６に格納されている当該端子パラメータの情報に基づき、安全Ｉ／Ｏターミナル３の端子に関して２重化された安全入力機器あるいは安全出力機器と接続されている等の情報を取得することが可能である。
【０１６７】
その他の処理については図１１で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０１６８】
また、上記においては、安全デバイスの入出力端子のパラメータについてプログラム開発支援装置１０のＩ／Ｏウィザードを用いて安全デバイスの入出力端子に関して、接続される安全入出力機器に応じた端子パラメータを設定可能な方式について説明したが、Ｉ／Ｏウィザードを用いずに直接、設計者がプログラム開発支援装置１０の入力操作部１２を介して安全デバイス（例えば安全Ｉ／Ｏターミナル３）の入出力端子に接続される安全入出力機器の図９で説明したような端子パラメータを入力して、端子設定ファイルを作成するようにしても良い。そして、当該端子設定ファイルを上記で説明したように安全デバイスにダウンロードして端子パラメータを各入出力端子に設定するようにすることも可能である。
【０１６９】
そして、Ｉ／Ｏ割付についても図１１で説明したのと同様のフローを適用することが可能である。
【０１７０】
この場合、ステップＳ２２における安全入出力機器の情報の取得については、ＣＰＵ１１は、設計者が作成した端子設定ファイルに従って接続される安全入出力機器の情報を取得する。具体的には、ＣＰＵ１１は、作成した端子設定ファイルに含まれている端子パラメータの情報を取得する。当該端子パラメータの情報に基づき、安全Ｉ／Ｏターミナル３の端子に関して２重化された安全入力機器あるいは安全出力機器と接続されている等の情報を取得することが可能である。
【０１７１】
その他の処理については図１１で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０１７２】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７３】
１  安全コントローラ、２  バス、３  安全Ｉ／Ｏターミナル、４  安全入力機器、５  安全出力機器、１０  プログラム開発支援装置、１１  ＣＰＵ、１２  入力操作部、１３  表示部、１４  ワークＲＡＭ、１５  記憶装置、１６  通信部、１７  内部バス、２０  通信Ｉ／Ｆ部、２１  中央演算部、２２ａ，２２ｂ  端子異常診断部、２３ａ  入力端子部、２３ｂ  出力端子部、２５，２６  メモリ。
【図１】
2014137621.tif 000003
【図２】
2014137621.tif 000004
【図３】
2014137621.tif 000005
【図４】
2014137621.tif 000006
【図５】
2014137621.tif 000007
【図６】
2014137621.tif 000008
【図７】
2014137621.tif 000009
【図８】
2014137621.tif 000010
【図９】
2014137621.tif 000011
【図１０】
2014137621.tif 000012
【図１１】
2014137621.tif 000013
【図１２】
2014137621.tif 000014
【図１３】
2014137621.tif 000015
【図１４】
2014137621.tif 000016
【図１５】
2014137621.tif 000017
【図１６】
2014137621.tif 000018
【図１７】
2014137621.tif 000019