(57)【特許請求の範囲】
【請求項１】
ユーザによって作成されたファンクションブロックダイアグラムに従って安全入力機器からの入力信号に基づいて出力信号を出力することによって安全出力機器を制御する安全制御装置の異常を解析する異常解析装置であって、
前記ファンクションブロックダイアグラムを構成するための複数種類のファンクションブロックは、それぞれ、入力された少なくとも１つの信号に対して当該ファンクションブロックに対して予め定められた機能に応じた所定の処理を施した少なくとも１つの信号を出力し、
前記ファンクションブロックダイアグラムは、少なくとも１つの前記ファンクションブロックが前記入力信号と前記出力信号との間を接続するように作成され、
前記出力信号は、前記入力信号に対して、前記ファンクションブロックダイアグラムの前記ファンクションブロックの接続順に、それぞれの前記ファンクションブロックの機能に応じた前記所定の処理が施された結果、得られる信号であり、
前記安全制御装置から前記ファンクションブロックダイアグラムを読出す設定データ読出手段と、
前記設定データ読出手段によって読出された前記ファンクションブロックダイアグラムに基づいて、前記安全制御装置の前記安全出力機器への前記出力信号を起点に、当該出力信号に関連する前記入力信号を関連入力信号として特定する特定手段と、
前記特定手段によって特定された前記関連入力信号を特定可能な情報の一覧を表示するよう制御する第１の表示制御手段と、
前記特定手段によって特定された前記関連入力信号の値を前記安全制御装置から読出す入力信号値読出手段と、
前記入力信号値読出手段によって読出された前記値を表示するよう制御する第２の表示制御手段とを備える、異常解析装置。
【請求項２】
前記特定手段は、
前記出力信号の側から前記入力信号の側に遡って前記関連入力信号を特定する過程において、第１のファンクションブロックに接続されているのが、前記入力信号のうちの１つであるか他の第２のファンクションブロックであるかを判断する第１の処理と、前記第１の処理によって前記入力信号のうちの１つであると判断された場合、当該入力信号を前記関連入力信号として特定する第２の処理とを含む検索処理を実行する第１の実行手段を含む、請求項１に記載の異常解析装置。
【請求項３】
前記特定手段は、さらに、
前記第１の実行手段によって実行される前記検索処理の前記第１の処理によって、前記第２のファンクションブロックであると判断された場合、前記検索処理を再帰呼び出しで実行する第２の実行手段を含む、請求項２に記載の異常解析装置。
【請求項４】
前記特定手段は、さらに、
前記第１の実行手段によって実行される前記検索処理の前記第１の処理によって、前記第２のファンクションブロックであると判断された場合、当該第２のファンクションブロックが異常であるか否かを判断するファンクションブロック異常判断手段と、
前記ファンクションブロック異常判断手段によって前記第２のファンクションブロックが異常であると判断された場合、当該第２のファンクションブロックが異常である旨を表示するよう制御する第３の表示制御手段とをさらに含む、請求項２に記載の異常解析装置。
【請求項５】
前記特定手段は、さらに、
前記第１の実行手段によって実行される前記検索処理の前記第２の処理によって特定された前記関連入力信号の値が異常であるか否かを判断する入力信号異常判断手段と、
前記入力信号異常判断手段によって前記関連入力信号の値が異常であると判断された場合、当該値が異常である旨を表示するよう制御する第４の表示制御手段とをさらに含む、請求項２に記載の異常解析装置。
【請求項６】
前記安全制御装置は、前記入力信号を入力するための入力端子を有し、
前記特定手段は、さらに、
前記第１の実行手段によって実行される前記検索処理の前記第２の処理によって特定された前記関連入力信号の前記入力端子が異常であるか否かを判断する入力端子異常判断手段と、
前記入力端子異常判断手段によって前記入力端子が異常であると判断された場合、当該入力端子が異常である旨を表示するよう制御する第５の表示制御手段とをさらに含む、請求項２に記載の異常解析装置。
【請求項７】
前記出力信号の値が異常であるか否かを判断する出力信号異常判断手段と、
前記出力信号異常判断手段によって前記出力信号の値が異常であると判断された場合、当該値が異常である旨を表示するよう制御する第６の表示制御手段とをさらに備える、請求項１から請求項６のいずれかに記載の異常解析装置。
【請求項８】
前記安全制御装置は、前記出力信号を出力するための出力端子を有し、
前記出力端子が異常であるか否かを判断する出力端子異常判断手段と、
前記出力端子異常判断手段によって前記出力端子が異常であると判断された場合、当該出力端子が異常である旨を表示するよう制御する第７の表示制御手段とをさらに備える、請求項１から請求項６のいずれかに記載の異常解析装置。
【請求項９】
ユーザによって作成されたファンクションブロックダイアグラムに従って安全入力機器からの入力信号に基づいて出力信号を出力することによって安全出力機器を制御する安全制御装置の異常を解析する異常解析装置の制御方法であって、
前記ファンクションブロックダイアグラムを構成するための複数種類のファンクションブロックは、それぞれ、入力された少なくとも１つの信号に対して当該ファンクションブロックに対して予め定められた機能に応じた所定の処理を施した少なくとも１つの信号を出力し、
前記ファンクションブロックダイアグラムは、少なくとも１つの前記ファンクションブロックが前記入力信号と前記出力信号との間を接続するように作成され、
前記出力信号は、前記入力信号に対して、前記ファンクションブロックダイアグラムの前記ファンクションブロックの接続順に、それぞれの前記ファンクションブロックの機能に応じた前記所定の処理が施された結果、得られる信号であり、
前記制御方法は、
前記安全制御装置から前記ファンクションブロックダイアグラムを読出すステップと、
読出された前記ファンクションブロックダイアグラムに基づいて、前記安全制御装置の前記安全出力機器への前記出力信号を起点に、当該出力信号に関連する前記入力信号を関連入力信号として特定するステップと、
特定された前記関連入力信号を特定可能な情報の一覧を表示するよう制御するステップと、
特定された前記関連入力信号の値を前記安全制御装置から読出すステップと、
読出された前記値を表示するよう制御するステップとを含む、異常解析装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、異常解析装置、および、異常解析装置の制御方法に関し、特に、安全制御装置の異常を解析するのに適した異常解析装置、および、異常解析装置の制御方法に関する。
【背景技術】
【０００２】
安全制御システムにおいて、システムの立ち上げ時およびデバッグ時、または、運転稼働中に、ある安全出力が遮断された場合に、システムが停止してしまう。このため、システムの停止時間を最小限にするためには、その遮断原因をすばやく特定する必要がある。
【０００３】
遮断原因は、複数、考えられるため、通常、原因を特定するためには、遮断された安全出力端子を起点に安全入力端子側へ遡って、安全回路または安全プログラムを検索していく必要がある。
【０００４】
従来、ＰＬＣ（Programmable Logic Controller）のラダープログラムにおいては、出力から入力へ遡って自動的に異常を検索し、遮断原因の特定を簡単にする技術があった（たとえば、特許文献１）。
【０００５】
図１９は、安全コントローラにおける出力の遮断要因を示す図である。図２０は、安全コントローラにおける異常の種類を示す図である。図１９および図２０を参照して、ファンクションブロックダイアグラム（以下、ＦＢＤという）でプログラミングされる安全コントローラの場合には、従来は、グラフィカルユーザインタフェースを備えたＰＣツールを使用して、安全入出力端子および安全プログラムの途中経路をモニタし、遮断の原因となっているファンクションブロック（以下、ＦＢという）または安全入力信号を特定するようにしていた。具体的には、以下のような方法および手順で、遮断の原因を特定していた。
【０００６】
１．遮断された安全出力端子に割り付けられたプログラム上の安全出力信号（Ｉ／Ｏメモリ）をＰＣ（Personal Computer）ツールでモニタしＯＮ／ＯＦＦを確認する（「遮断要因１」とそれ以外とを判別）。
【０００７】
安全出力信号がＯＮ（「遮断要因１」）の場合はさらに以下の手順を行う。
（ア）  安全出力端子のステータスをＰＣツールでモニタする（ステータスの値によって「遮断要因１．１」と「遮断要因１．２」との判別を行なう）。
【０００８】
２．プログラムを遡って途中経路のファンクションブロック（以下、ＦＢという）が異常になっているか、または、安全入力信号がＯＦＦになっているかを確認する。（「遮断要因３」または「遮断要因２」の判別）。
【０００９】
安全入力信号がＯＦＦ（「遮断要因２」）の場合はさらに以下の手順を行う。
(ア)  安全入力端子のステータスをＰＣツールでモニタする（ステータスの値によって「遮断要因２．１」と「遮断要因２．２」と「遮断要因２．３」との判別を行なう）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平３−１０８００５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、プログラムサイズが大きい場合には、ＰＣツール上でプログラムが複数画面または複数ページにまたがって表示されることがある。このため、要因となるＦＢまたは安全入力信号を検索する場合、複数画面のプログラムおよび多数のＦＢを経由するため、多数の経路分岐に遭遇し、遮断の原因を特定するまでに膨大な時間がかかってしまうといった問題があった。
【００１２】
この発明は、上述の問題を解決するためになされたものであり、その目的の１つは、出力信号の遮断の原因となった入力信号を即時にユーザに認識させることが可能な異常解析装置、および、異常解析装置の制御方法を提供することである。
【課題を解決するための手段】
【００１３】
上述の目的を達成するために、この発明のある局面によれば、異常解析装置は、ユーザによって作成されたファンクションブロックダイアグラムに従って安全入力機器からの入力信号に基づいて出力信号を出力することによって安全出力機器を制御する安全制御装置の異常を解析する装置である。
【００１４】
前記ファンクションブロックダイアグラムを構成するための複数種類のファンクションブロックは、それぞれ、入力された少なくとも１つの信号に対して当該ファンクションブロックに対して予め定められた機能に応じた所定の処理を施した少なくとも１つの信号を出力する。前記ファンクションブロックダイアグラムは、少なくとも１つの前記ファンクションブロックが前記入力信号と前記出力信号との間を接続するように作成される。前記出力信号は、前記入力信号に対して、前記ファンクションブロックダイアグラムの前記ファンクションブロックの接続順に、それぞれの前記ファンクションブロックの機能に応じた前記所定の処理が施された結果、得られる信号である。
【００１５】
異常解析装置は、前記安全制御装置から前記ファンクションブロックダイアグラムを読出す設定データ読出手段と、前記設定データ読出手段によって読出された前記ファンクションブロックダイアグラムに基づいて、前記安全制御装置の前記安全出力機器への前記出力信号を起点に、当該出力信号に関連する前記入力信号を関連入力信号として特定する特定手段と、前記特定手段によって特定された前記関連入力信号を特定可能な情報の一覧を表示するよう制御する第１の表示制御手段と、前記特定手段によって特定された前記関連入力信号の値を前記安全制御装置から読出す入力信号値読出手段と、前記入力信号値読出手段によって読出された前記値を表示するよう制御する第２の表示制御手段とを備える。
【００１６】
好ましくは、前記特定手段は、前記出力信号の側から前記入力信号の側に遡って前記関連入力信号を特定する過程において、第１のファンクションブロックに接続されているのが、前記入力信号のうちの１つであるか他の第２のファンクションブロックであるかを判断する第１の処理と、前記第１の処理によって前記入力信号のうちの１つであると判断された場合、当該入力信号を前記関連入力信号として特定する第２の処理とを含む検索処理を実行する第１の実行手段を含む。
【００１７】
さらに好ましくは、前記特定手段は、さらに、前記第１の実行手段によって実行される前記検索処理の前記第１の処理によって、前記第２のファンクションブロックであると判断された場合、前記検索処理を再帰呼び出しで実行する第２の実行手段を含む。
【００１８】
また、さらに好ましくは、前記特定手段は、さらに、前記第１の実行手段によって実行される前記検索処理の前記第１の処理によって、前記第２のファンクションブロックであると判断された場合、当該第２のファンクションブロックが異常であるか否かを判断するファンクションブロック異常判断手段と、前記ファンクションブロック異常判断手段によって前記第２のファンクションブロックが異常であると判断された場合、当該第２のファンクションブロックが異常である旨を表示するよう制御する第３の表示制御手段とをさらに含む。
【００１９】
また、さらに好ましくは、前記特定手段は、さらに、前記第１の実行手段によって実行される前記検索処理の前記第２の処理によって特定された前記関連入力信号の値が異常であるか否かを判断する入力信号異常判断手段と、前記入力信号異常判断手段によって前記関連入力信号の値が異常であると判断された場合、当該値が異常である旨を表示するよう制御する第４の表示制御手段とをさらに含む。
【００２０】
また、さらに好ましくは、前記安全制御装置は、前記入力信号を入力するための入力端子を有し、前記特定手段は、さらに、前記第１の実行手段によって実行される前記検索処理の前記第２の処理によって特定された前記関連入力信号の前記入力端子が異常であるか否かを判断する入力端子異常判断手段と、前記入力端子異常判断手段によって前記入力端子が異常であると判断された場合、当該入力端子が異常である旨を表示するよう制御する第５の表示制御手段とをさらに含む。
【００２１】
好ましくは、異常解析装置は、前記出力信号の値が異常であるか否かを判断する出力信号異常判断手段と、前記出力信号異常判断手段によって前記出力信号の値が異常であると判断された場合、当該値が異常である旨を表示するよう制御する第６の表示制御手段とをさらに備える。
【００２２】
また、好ましくは、前記安全制御装置は、前記出力信号を出力するための出力端子を有し、異常解析装置は、前記出力端子が異常であるか否かを判断する出力端子異常判断手段と、前記出力端子異常判断手段によって前記出力端子が異常であると判断された場合、当該出力端子が異常である旨を表示するよう制御する第７の表示制御手段とをさらに備える。
【００２３】
この発明の他の局面によれば、異常解析装置の制御方法は、ユーザによって作成されたファンクションブロックダイアグラムに従って安全入力機器からの入力信号に基づいて出力信号を出力することによって安全出力機器を制御する安全制御装置の異常を解析する制御方法である。
【００２４】
前記ファンクションブロックダイアグラムを構成するための複数種類のファンクションブロックは、それぞれ、入力された少なくとも１つの信号に対して当該ファンクションブロックに対して予め定められた機能に応じた所定の処理を施した少なくとも１つの信号を出力する。前記ファンクションブロックダイアグラムは、少なくとも１つの前記ファンクションブロックが前記入力信号と前記出力信号との間を接続するように作成される。前記出力信号は、前記入力信号に対して、前記ファンクションブロックダイアグラムの前記ファンクションブロックの接続順に、それぞれの前記ファンクションブロックの機能に応じた前記所定の処理が施された結果、得られる信号である。
【００２５】
前記制御方法は、前記安全制御装置から前記ファンクションブロックダイアグラムを読出すステップと、読出された前記ファンクションブロックダイアグラムに基づいて、前記安全制御装置の前記安全出力機器への前記出力信号を起点に、当該出力信号に関連する前記入力信号を関連入力信号として特定するステップと、特定された前記関連入力信号を特定可能な情報の一覧を表示するよう制御するステップと、特定された前記関連入力信号の値を前記安全制御装置から読出すステップと、読出された前記値を表示するよう制御するステップとを含む。
【発明の効果】
【００２６】
この発明に従えば、異常解析装置によって、安全制御装置からファンクションブロックダイアグラムが読出され、読出されたファンクションブロックダイアグラムに基づいて、安全制御装置の安全出力機器への出力信号を起点に、当該出力信号に関連する入力信号が関連入力信号として特定され、特定された関連入力信号を特定可能な情報の一覧を表示するよう制御され、特定された関連入力信号の値が安全制御装置から読出され、読出された値を表示するよう制御される。
【００２７】
このため、関連入力信号の一覧が表示され、その値が表示されるので、ユーザは、表示された値が異常な値であるか否かを確認することができ、出力信号の遮断の原因となった入力信号を認識することができる。その結果、出力信号の遮断の原因となった入力信号を即時にユーザに認識させることが可能な異常解析装置、および、異常解析装置の制御方法を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施の形態に係る安全コントローラをスタンドアローンで使用する場合のシステム構成の一例を示す図である。
【図２】本発明の実施の形態に係る安全コントローラの構成の概略を示すブロック図である。
【図３】本発明の実施の形態に係るＰＣによって設定ツールが実行されることによって構成される機能の概略を示す機能ブロック図である。
【図４】本発明の実施の形態に係るＦＢの種類を説明するための第１の図である。
【図５】本発明の実施の形態に係るＦＢの種類を説明するための第２の図である。
【図６】本発明の実施の形態に係るＦＢの種類を説明するための第３の図である。
【図７】本発明の実施の形態に係るＰＣによって表示される安全コントローラのＦＢＤを表示するためのプログラムウィンドウの第１の表示例を示す図である。
【図８】本発明の実施の形態に係るＰＣによって表示される安全コントローラのＦＢＤを表示するためのプログラムウィンドウの第２の表示例を示す図である。
【図９】本発明の実施の形態に係るＰＣによって表示される安全コントローラのＦＢＤを表示するためのプログラムウィンドウの第３の表示例を示す図である。
【図１０】本発明の実施の形態に係るＰＣによって表示される安全コントローラのＦＢＤを表示するためのプログラムウィンドウの第４の表示例を示す図である。
【図１１】本発明の実施の形態に係るＰＣによって実行される異常解析処理の流れを示すフローチャートである。
【図１２】本発明の実施の形態に係るＰＣによって異常解析処理のサブルーチンとして実行される検索処理の流れを示すフローチャートである。
【図１３】本発明の実施の形態に係るＰＣによって表示されるウォッチウィンドウの第１の表示例を示す図である。
【図１４】本発明の実施の形態に係るＰＣによって表示されるウォッチウィンドウの第２の表示例を示す図である。
【図１５】本発明の実施の形態に係るＰＣによって表示されるウォッチウィンドウの第３の表示例を示す図である。
【図１６】本発明の実施の形態に係るＰＣによって表示されるウォッチウィンドウの第４の表示例を示す図である。
【図１７】本発明の実施の形態に係るＰＣによって表示されるウォッチウィンドウの第５の表示例を示す図である。
【図１８】本発明の実施の形態の変形例に係る安全コントローラをネットワーク接続で使用する場合のシステム構成の一例を示す図である。
【図１９】安全コントローラにおける出力の遮断要因を示す図である。
【図２０】安全コントローラにおける異常の種類を示す図である。
【発明を実施するための形態】
【００２９】
以下、この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００３０】
図１は、本発明の実施の形態に係る安全コントローラ１００をスタンドアローンで使用する場合のシステム構成の一例を示す図である。図１を参照して、このシステムは、安全コントローラ１００と、安全制御に用いられる安全入力信号を安全コントローラ１００に入力する安全入力機器５００と、安全コントローラ１００から出力された安全出力信号で制御される安全出力機器６００と、安全コントローラ１００を設定するため、および、安全コントローラ１００の異常を解析するために用いられるＰＣ３００とを含む。安全コントローラ１００とＰＣ３００とは、ＵＳＢケーブル９００で接続される。
【００３１】
ＰＣ３００には、安全コントローラ１００を設定するため、および、安全コントローラ１００の異常を解析するために用いられるソフトウェアの設定ツールがインストールされている。
【００３２】
安全入力機器５００には、たとえば、制御対象の装置を非常停止させるための操作を受付ける非常停止押ボタンスイッチ５００Ａ、所定の進入禁止エリアへの人の進入を検知するライトカーテン５００Ｂ、安全扉の開閉を検知するドアスイッチ５００Ｃ、および、２つのボタンが操作されることによって１つの指示を受付ける２ハンドスイッチ５００Ｄなどが含まれる。
【００３３】
安全出力機器６００には、制御対象のモータなどの電路を遮断するためのコンタクタ６００Ａが含まれる。
【００３４】
図２は、本発明の実施の形態に係る安全コントローラ１００の構成の概略を示すブロック図である。図２を参照して、安全コントローラ１００は、プログラム実行部１１１と、モニタ処理部１１２と、安全入出力メモリ１２１と、ステータスメモリ１２２と、安全入力処理部１３０と、安全出力処理部１４０と、通信処理部１５０とを含む。
【００３５】
安全入力処理部１３０は、安全入力機器５００から安全入力信号の入力を受けて、安全入出力メモリ１２１に、入力された安全入力信号の値を記憶させ、所定周期で、記憶させた値を更新する。また、安全入力処理部１３０は、安全入力端子に関して異常が発生しているか否かを判断して、異常が発生していれば、その旨を示す入力端子異常ステータスをステータスメモリ１２２に記憶させる。
【００３６】
プログラム実行部１１１は、ユーザによって作成され安全コントローラ１００に記憶されたＦＢＤに従って、所定周期ごとに、安全入出力メモリ１２１に記憶された安全入力信号の値に対して、ＦＢＤのＦＢの接続順に、それぞれのＦＢの機能に応じた処理の処理を施した結果得られた安全出力信号の値を、安全入出力メモリ１２１に記憶させる。
【００３７】
図４から図６までは、それぞれ、本発明の実施の形態に係るＦＢの種類を説明するための第１から第３の図である。図４（Ａ）を参照して、このＦＢは、入力条件を反転して出力する機能を有する。図４（Ｂ）を参照して、このＦＢは、入力条件の論理積を出力する機能を有する。図４（Ｃ）を参照して、このＦＢは、入力条件の論理和を出力する機能を有する。
【００３８】
図４（Ｄ）を参照して、このＦＢは、入力条件の排他的論理和を出力する機能を有する。図４（Ｅ）を参照して、このＦＢは、入力条件の排他的否定論理和を出力する機能を有する。
【００３９】
図４（Ｆ）を参照して、このリセットセットフリップフロップＦＢは、リセットセットフリップフロップの機能を有する。つまり、ＩｎｐｕｔをＯＮにすると、ＦＢ内でＯＮの状態を保持し、ＯｕｔｐｕｔＥｎａｂｌｅへ継続して出力する。ＦＢ内でＯＮの状態を保持しているので、ＩｎｐｕｔがＯＮからＯＦＦになってもＯｕｔｐｕｔＥｎａｂｌｅはＯＮを出力し続ける。ＲｅｓｅｔをＯＮにすると、ＦＢ内で保持している信号をＯＦＦする。
【００４０】
図４（Ｇ）を参照して、このコンパレータＦＢは、コンパレータの機能を有する。つまり、いくつかの入力信号と、設定された比較値とを比較し、すべての入力信号と比較値とが一致したときに、ＯｕｔｐｕｔＥｎａｂｌｅ信号にＯＮを出力する。ＯｕｔｐｕｔＥｎａｂｌｅ信号がＯＮ中に、入力信号が比較値と異なったとき、ＯｕｔｐｕｔＥｎａｂｌｅ信号をＯＦＦにする。
【００４１】
図５（Ａ）を参照して、このリセットＦＢは、入力条件がＯＮになった状態で、リセット信号が正しく入力されると、ＯｕｔｐｕｔＥｎａｂｌｅ信号にＯＮを出力する機能を有する。このＦＢを使用することにより、電源立上げ時、運転モードの変更（アイドルモード→運転モード）時、または、安全入力機器からの信号がＯＦＦ→ＯＮに変化した際に、機械装置が自動的に再起動することを防ぐことが可能である。
【００４２】
図５（Ｂ）を参照して、このリスタートＦＢは、入力条件がＯＮになった状態で、リスタート信号が正しく入力されると、ＯｕｔｐｕｔＥｎａｂｌｅ信号にＯＮを出力する機能を有する。このＦＢを使用することにより、電源立上げ時、運転モードの変更（アイドルモード→運転モード）時、または、安全入力機器からの信号がＯＦＦ→ＯＮに変化した際に、機械装置が自動的に再起動することを防ぐことが可能である。リスタートＦＢは、機能的には、リセットＦＢと同様の機能を有する。
【００４３】
図５（Ｃ）を参照して、この非常停止押ボタンモニタリングＦＢは、非常停止押ボタンスイッチの状態を監視する機能を有する。監視している非常停止押ボタンスイッチからの入力がアクティブの場合、ＯｕｔｐｕｔＥｎａｂｌｅをＯＮ、入力がアクティブでない場合、および、ＦＢで異常を検出した場合は、ＯｕｔｐｕｔＥｎａｂｌｅをＯＦＦする。
【００４４】
図５（Ｄ）を参照して、このライトカーテンモニタリングＦＢは、セーフティライトカーテンを監視する機能を有する。監視しているセーフティライトカーテンからの入力がアクティブの場合、ＯｕｔｐｕｔＥｎａｂｌｅをＯＮ、入力がアクティブでない場合、および、ＦＢで異常を検出した場合は、ＯｕｔｐｕｔＥｎａｂｌｅをＯＦＦする。
【００４５】
図５（Ｅ）を参照して、この安全扉モニタリングファンクションブロックは、安全扉の状態を監視する機能を有する。安全扉の状態は、扉に備え付けられたセーフティドアスイッチまたはセーフティリミットスイッチなどからの入力信号によって監視する。監視しているスイッチからの入力がアクティブの場合、ＯｕｔｐｕｔＥｎａｂｌｅをＯＮ、入力がアクティブでない場合、および、ＦＢで異常を検出した場合は、ＯｕｔｐｕｔＥｎａｂｌｅをＯＦＦする。
【００４６】
図６（Ａ）を参照して、このオフディレイタイマＦＢは、設定数ｍｓ単位のオフディレイタイマ動作をする。図６（Ｂ）を参照して、このオンディレイタイマＦＢは、設定数ｍｓ単位のオンディレイタイマ動作をする。
【００４７】
図６（Ｃ）を参照して、この外部デバイスモニタリング（ＥＤＭ）ＦＢは、入力信号と、外部デバイスの状態とを評価して、外部デバイスへの安全出力を行なう機能を有する。つまり、入力信号がＯＦＦ→ＯＮに変化した場合、Ｏｕｔｐｕｔ１，２はＯＦＦ→ＯＮに変化する。このとき、フィードバック入力は、設定された時間以内にＯＮ→ＯＦＦに変化しなければならない。また、入力信号がＯＮ→ＯＦＦに変化した場合、Ｏｕｔｐｕｔ１，２はＯＮ→ＯＦＦに変化する。このとき、フィードバック入力は、設定された時間以内にＯＦＦ→ＯＮに変化しなければならない。フィードバック入力が設定時間以内に正常に変化しない場合、ＥＤＭエラーが発生し、Ｏｕｔｐｕｔ１，２はＯＦＦし、ＥＤＭｅｒｒｏｒがＯＮする。
【００４８】
図６（Ｄ）を参照して、このパルスジェネレータＦＢは、ＩｎｐｕｔがＯＮの間、ＯｕｔｐｕｔＥｎａｂｌｅにＯＮ／ＯＦＦを設定された時間で周期的に出力する。たとえば、設定をＯＮ時間１００ｍｓ、ＯＦＦ時間５００ｍｓとした場合、ＩｎｐｕｔがＯＮの間、１００ｍｓの間、ＯＮを出力して、次に、５００ｍｓの間、ＯＦＦを出力することを繰返す。
【００４９】
図７から図１０までは、それぞれ、本発明の実施の形態に係るＰＣ３００によって表示される安全コントローラ１００のＦＢＤを表示するためのプログラムウィンドウの第１から第４までの表示例を示す図である。本実施の形態で示すＦＢＤの一例は、ページ１からページ４までの４ページのプログラムウィンドウに亘って作成されている。
【００５０】
図７を参照して、ページ１のプログラムウィンドウには、図５（Ｃ）で説明した非常停止押ボタンモニタリングＦＢを用いて構成されたＦＢＤの一部が表示されている。非常停止押ボタンモニタリングＦＢには、非常停止押ボタンスイッチ５００Ａからの２つの同じ安全入力信号が入力される。
【００５１】
このように、安全コントローラ１００に入力される安全入力信号、および、安全コントローラ１００から出力される安全出力信号は、冗長性を持たせて、安全性を高めるために、このように２重化されている（デュアルチャネル）。
【００５２】
また、非常停止押ボタンモニタリングＦＢは、非常停止押ボタンスイッチ５００Ａからの２つの安全入力信号がいずれもアクティブとなった場合、ＯＮの信号ａを出力する。一方、非常停止押ボタンモニタリングＦＢは、非常停止押ボタンスイッチ５００Ａからの２つの安全入力信号がいずれもアクティブでない場合、ＯＦＦの信号ａを出力する。この信号ａは、後述するページ４のプログラムウィンドウで示されるＦＢＤの一部に示されているＦＢに入力される。
【００５３】
図８を参照して、ページ２のプログラムウィンドウには、図５（Ｄ）で説明したライトカーテンモニタリングＦＢを用いて構成されたＦＢＤの一部が表示されている。ライトカーテンモニタリングＦＢには、ライトカーテン５００Ｂからの２つの同じ安全入力信号が入力される。
【００５４】
また、ライトカーテンモニタリングＦＢは、ライトカーテン５００Ｂからの２つの安全入力信号がいずれもアクティブとなった場合、ＯＮの信号ｂを出力する。一方、ライトカーテンモニタリングＦＢは、ライトカーテン５００Ｂからの２つの安全入力信号がいずれもアクティブでない場合、ＯＦＦの信号ｂを出力する。この信号ｂは、後述するページ４のプログラムウィンドウで示されるＦＢＤの一部に示されているＦＢに入力される。
【００５５】
図９を参照して、ページ３のプログラムウィンドウには、図５（Ｅ）で説明した安全扉モニタリングＦＢを用いて構成されたＦＢＤの一部が表示されている。安全扉モニタリングＦＢには、ドアスイッチ５００Ｃからの２つの同じ安全入力信号が入力される。
【００５６】
また、安全扉モニタリングＦＢは、ドアスイッチ５００Ｃからの２つの安全入力信号がいずれもアクティブとなった場合、ＯＮの信号ｃを出力する。一方、安全扉モニタリングＦＢは、ドアスイッチ５００Ｃからの２つの安全入力信号がいずれもアクティブでない場合、ＯＦＦの信号ｃを出力する。この信号ｃは、後述するページ４のプログラムウィンドウで示されるＦＢＤの一部に示されているＦＢに入力される。
【００５７】
図１０を参照して、ページ４のプログラムウィンドウには、図５（Ａ）で説明したリセットＦＢおよび図６（Ｃ）で説明した外部デバイスモニタリングＦＢを用いて構成されたＦＢＤの一部が表示されている。リセットＦＢには、安全コントローラ１００のリセット信号、ならびに、図７で説明した信号ａ、図８で説明した信号ｂ、および、図９で説明した信号ｃが入力される。
【００５８】
また、リセットＦＢは、信号ａ〜ｃがＯＮとなった状態で、リセット信号が入力されると、ＯＮの信号を、次のＦＢである外部デバイスモニタリングＦＢに出力する。一方、信号ａ〜ｃがＯＮとなった状態であっても、リセット信号が入力されない限り、ＯＦＦの信号を出力する。また、信号ａ〜ｃの少なくともいずれかがＯＦＦである状態で、リセット信号が入力されたとしても、ＯＮの信号を出力せず、ＯＦＦの信号を出力する。
【００５９】
外部デバイスモニタリングＦＢには、外部デバイスからのフィードバック入力、つまり、安全出力機器６００であるセーフティリレーの接点が溶着したか否かを示す溶着チェック信号、および、リセットＦＢからの信号が入力される。
【００６０】
また、外部デバイスモニタリングＦＢは、リセットＦＢからの信号と、溶着チェック信号とを評価して、外部デバイスであるセーフティリレーへ、２つの同じ出力信号を出力する。つまり、外部デバイスモニタリングＦＢは、リセットＦＢからの信号がＯＦＦ→ＯＮに変化した場合、セーフティリレーへの出力信号をＯＦＦ→ＯＮに変化させる。
【００６１】
また、外部デバイスモニタリングＦＢは、リセットＦＢからの信号がＯＮ→ＯＦＦに変化した場合、セーフティリレーへの安全出力信号をＯＮ→ＯＦＦに変化させる。溶着チェック信号が、設定された時間以内に正常に変化しない場合、ＥＤＭエラーが発生し、セーフティリレーへの安全出力信号がＯＦＦされる。
【００６２】
図２に戻って、また、プログラム実行部１１１は、ＦＢに関して異常が発生しているか否かを判断して、異常が発生していれば、その旨を示すＦＢ異常ステータスをステータスメモリ１２２に記憶させる。
【００６３】
安全出力処理部１４０は、安全入出力メモリ１２１に記憶された安全出力信号の値を、所定周期ごとに更新させながら、安全出力機器６００に出力する。また、安全出力処理部１４０は、安全出力端子に関して異常が発生しているか否かを判断して、異常が発生していれば、その旨を示す出力端子異常ステータスをステータスメモリ１２２に記憶させる。
【００６４】
モニタ処理部１１２は、定期的に、安全入出力メモリ１２１およびステータスメモリ１２２に記憶された内容を、ＰＣ３００に送信するよう、通信処理部１５０を制御する。
【００６５】
図３は、本発明の実施の形態に係るＰＣ３００によって設定ツールが実行されることによって構成される機能の概略を示す機能ブロック図である。
【００６６】
図３を参照して、ＰＣ３００には、ウォッチ登録処理部３１１と、モニタ処理部３１２と、プログラム保存メモリ３２１と、正常値ＤＢ３２２と、端子異常文字列ＤＢ３２３と、現在値保存メモリ３２４と、異常ＦＢ保存メモリ３２５と、端子異常保存メモリ３２６と、検索済みＦＢ保存メモリ３２７と、プログラムウィンドウ表示制御部３４１と、ウォッチウィンドウ表示制御部３４２と、通信処理部３５０とが構成される。
【００６７】
プログラム保存メモリ３２１は、ＰＣ３００の記憶部に構成され、安全コントローラ１００に記憶されているＦＢＤで示されるプログラムを記憶する。
【００６８】
正常値ＤＢ３２２は、ＰＣ３００の記憶部に構成され、プログラム保存メモリ３２１に記憶されているＦＢＤで示されるプログラムの安全入力信号および安全出力信号の予め定められた正常値を記憶する。
【００６９】
端子異常文字列ＤＢ３２３は、図２０の「異常」の欄に示す端子異常の文字列を記憶する。
【００７０】
モニタ処理部３１２は、定期的に、安全コントローラ１００で実行されているＦＢＤで示されるプログラムに従った安全制御における安全入力信号の値および安全出力信号の値を、通信処理部３５０を制御して安全コントローラ１００から読出し、現在値保存メモリ３２４に記憶させる。
【００７１】
また、モニタ処理部３１２は、定期的に、安全コントローラ１００で実行されているＦＢＤで示されるプログラムに従った安全制御におけるＦＢに関して発生した異常、ならびに、安全入力端子および安全出力端子に関して発生した異常を、通信処理部３５０を制御して安全コントローラ１００から読出し、それぞれ、異常ＦＢ保存メモリ３２５、ならびに、端子異常保存メモリ３２６に記憶させる。
【００７２】
ウォッチ登録処理部３１１は、ＰＣ３００によって図１１で説明する異常解析処理が実行されることで構成される。ウォッチ登録処理部３１１は、異常解析処理の結果、ウォッチウィンドウに様々なデータを登録する。
【００７３】
検索済みＦＢ保存メモリ３２７は、ウォッチ登録処理部３１１によって実行される異常解析処理において、すでに検索済みのＦＢを特定可能な情報を保存する。
【００７４】
プログラムウィンドウ表示制御部３４１は、プログラム保存メモリからＦＢＤを読出し、ページごとに、図７から図１０で説明したようなプログラムウィンドウをディスプレイに表示するよう制御する。
【００７５】
図１１は、本発明の実施の形態に係るＰＣ３００によって実行される異常解析処理の流れを示すフローチャートである。図１１を参照して、異常解析処理は、ＰＣ３００にインストールされている設定ツールの一部である。
【００７６】
図１１を参照して、異常解析処理は、ユーザによって安全出力信号の登録操作があったときに実行される。まず、ステップＳ３１１で、ＰＣ３００のＣＰＵは、ユーザによって登録操作が行なわれた安全出力信号を、ウォッチウィンドウに登録する。
【００７７】
次に、ステップＳ３１２で、ＰＣ３００のＣＰＵは、ウォッチウィンドウに登録された安全出力信号の現在値を、現在値保存メモリ３２４から取得する。
【００７８】
そして、ステップＳ３１３で、ＰＣ３００のＣＰＵは、取得した安全出力信号の現在値と、正常値ＤＢ３２２に記憶されている当該安全出力信号の正常値とを比較して、異なる場合は、ウォッチウィンドウの当該安全出力信号の行の背景の色を「赤」に変更する。
【００７９】
また、ステップＳ３１４で、ＰＣ３００のＣＰＵは、当該安全出力信号に関連付けられた出力端子異常ステータスを、端子異常保存メモリ３２６から取得する。そして、ステップＳ３１５で、ＰＣ３００のＣＰＵは、取得した出力端子異常ステータスが、出力端子が異常であることを示すか否かを判断する。
【００８０】
出力端子が異常であると判断した場合（ステップＳ３１５でＹＥＳと判断した場合）、ステップＳ３１６で、ＰＣ３００のＣＰＵは、異常ステータスに対応する文字列を、端子異常文字列ＤＢ３２３から取得する。
【００８１】
そして、ステップＳ３１７で、ＰＣ３００のＣＰＵは、取得した出力端子異常文字列を、ウォッチウィンドウの安全出力信号の行に登録する。
【００８２】
出力端子が異常でないと判断した場合（ステップＳ３１５でＮＯと判断した場合）、および、ステップＳ３１７の後、ステップＳ３１８で、ＰＣ３００のＣＰＵは、図１２で説明する検索処理を実行する。
【００８３】
図１２は、本発明の実施の形態に係るＰＣ３００によって異常解析処理のサブルーチンとして実行される検索処理の流れを示すフローチャートである。
【００８４】
図１２を参照して、ステップＳ３２１では、ＰＣ３００のＣＰＵは、ステップＳ３２１以降の処理を、当該ＦＢに接続されている入力数、ループするように設定する。
【００８５】
ステップＳ３２２で、ＰＣ３００のＣＰＵは、今回のループで対象となっている入力が接続されているのが、ＦＢであるか安全入力信号であるかを判断する。
【００８６】
ＦＢであると判断した場合、ステップＳ３２３で、ＰＣ３００のＣＰＵは、このＦＢを検索済みとして、検索済みＦＢ保存メモリ３２７に記憶させる。
【００８７】
次に、ステップＳ３２５で、このＦＢに関連付けられたＦＢ異常ステータスを、異常ＦＢ保存メモリ３２５から取得する。そして、ステップＳ３２６で、ＰＣ３００のＣＰＵは、取得したＦＢ異常ステータスが、このＦＢが異常であることを示すか否かを判断する。
【００８８】
ＦＢが異常であると判断した場合（ステップＳ３２６でＹＥＳと判断した場合）、ステップＳ３２７で、ＰＣ３００のＣＰＵは、当該異常ＦＢを、ウォッチウィンドの安全出力信号の行に登録する。
【００８９】
ＦＢが異常でないと判断した場合（ステップＳ３２６でＮＯと判断した場合）、および、ステップＳ３２７の後、ステップＳ３２８で、ＰＣ３００のＣＰＵは、当該ＦＢに関して、検索処理を再帰呼出しで実行する。その後、ＰＣ３００のＣＰＵは、未処理の当該ＦＢへの入力があればループを繰返す。
【００９０】
一方、今回のループで対象となっている入力が接続されているのが、安全入力信号であると判断した場合、ステップＳ３３１で、ＰＣ３００のＣＰＵは、入力信号値の現在値を、現在値保存メモリ３２４から取得する。
【００９１】
そして、ステップＳ３３２で、ＰＣ３００のＣＰＵは、取得した安全入力信号の現在値と、正常値ＤＢ３２２に記憶されている当該安全入力信号の正常値とを比較して、異なる場合は、ウォッチウィンドウの当該安全入力信号の行の背景の色を「赤」に変更する。
【００９２】
また、ステップＳ３３３で、ＰＣ３００のＣＰＵは、当該安全入力信号をウォッチウィンドウに子ツリーとして追加する。
【００９３】
次に、ステップＳ３３４で、ＰＣ３００のＣＰＵは、当該安全入力信号に関連付けられた入力端子異常ステータスを、端子異常保存メモリ３２６から取得する。そして、ステップＳ３３５で、ＰＣ３００のＣＰＵは、取得した入力端子異常ステータスが、入力端子が異常であることを示すか否かを判断する。
【００９４】
入力端子が異常であると判断した場合（ステップＳ３３５でＹＥＳと判断した場合）、ステップＳ３３６で、ＰＣ３００のＣＰＵは、異常ステータスに対応する文字列を、端子異常文字列ＤＢ３２３から取得する。
【００９５】
そして、ステップＳ３３７で、ＰＣ３００のＣＰＵは、取得した入力端子異常文字列を、ウォッチウィンドウの安全入力信号の行に登録する。
【００９６】
入力端子が異常でないと判断した場合（ステップＳ３３５でＮＯと判断した場合）、および、ステップＳ３３７の後、ＰＣ３００のＣＰＵは、未処理の当該ＦＢへの入力があればループを繰返す。
【００９７】
すべての当該ＦＢへの入力が処理されると、ＰＣ３００のＣＰＵは、この検索処理を終了して、実行する処理を呼出元の異常解析処理に戻す。
【００９８】
図３に戻って、ウォッチウィンドウ表示制御部３４２は、図１１で説明した異常解析処理および図１２で説明した検索処理で登録されたウォッチウィンドウを所定の態様でディスプレイに表示するよう制御する。
【００９９】
図１３から図１７までは、それぞれ、本発明の実施の形態に係るＰＣ３００によって表示されるウォッチウィンドウの第１から第５までの表示例を示す図である。
【０１００】
図１３を参照して、このウォッチウィンドウの表示態様は、安全出力信号および安全入力信号の名前および現在値を表示させる場合を示す。このように、ユーザによって設定ツールで、名前が「ロボットＸ＿０」である信号が、異常解析をする安全出力信号として登録されることによって、異常解析処理および検索処理の実行の結果、それに関連する安全入力信号、ならびに、安全出力信号および安全入力信号の現在値が、ウォッチウィンドウに登録される。そして、登録されたウォッチウィンドウが、ウォッチウィンドウ表示制御部３４２によってディスプレイに表示される。
【０１０１】
ここでは、ウォッチウィンドウで、次のことが示されている。安全出力信号「ロボットＸ＿０」の現在値が「ＯＦＦ」である。安全入力信号「非常停止Ａ＿０」の現在値が「ＯＮ」である。安全入力信号「非常停止Ａ＿１」の現在値が「ＯＮ」である。安全入力信号「ライトカーテンＢ＿０」の現在値が「ＯＦＦ」である。安全入力信号「ライトカーテンＢ＿１」の現在値が「ＯＦＦ」である。安全入力信号「ドアスイッチＣ＿０」の現在値が「ＯＮ」である。安全入力信号「ドアスイッチＣ＿１」の現在値が「ＯＮ」である。安全入力信号「フィードバック信号」の現在値が「ＯＮ」である。安全入力信号「リセット」の現在値が「ＯＦＦ」である。
【０１０２】
このウォッチウィンドウによって、安全出力信号「ロボットＸ＿０」が遮断しており、この原因が、安全入力信号「ライトカーテンＢ＿０」および安全入力信号「ライトカーテンＢ＿１」が遮断していることであることを、ユーザに知らせることができる。
【０１０３】
なお、安全出力信号が遮断してＯＦＦとなった場合、「フィードバック信号」はＯＮとなるので、「フィードバック信号」はＯＮであれば異常である。また、「リセット」は正常値がＯＦＦであるので、ＯＮであれば異常である。
【０１０４】
図１４を参照して、このウォッチウィンドウの表示態様は、安全出力信号および安全入力信号の名前、現在値および正常値を表示させる場合を示す。また、異常である信号の行の背景を「赤」（図面ではハッチングで示す）で表示するようにする。
【０１０５】
ここでは、ウォッチウィンドウで、次のことが示されている。安全出力信号「ロボットＸ＿０」の現在値および正常値がそれぞれ「ＯＦＦ」および「ＯＮ」である。安全入力信号「非常停止Ａ＿０」の現在値および正常値がいずれも「ＯＮ」である。安全入力信号「非常停止Ａ＿１」の現在値および正常値がいずれも「ＯＮ」である。安全入力信号「ライトカーテンＢ＿０」の現在値および正常値がそれぞれ「ＯＦＦ」および「ＯＮ」である。安全入力信号「ライトカーテンＢ＿１」の現在値および正常値がそれぞれ「ＯＦＦ」および「ＯＮ」である。安全入力信号「ドアスイッチＣ＿０」の現在値および正常値がいずれも「ＯＮ」である。安全入力信号「ドアスイッチＣ＿１」の現在値および正常値がいずれも「ＯＮ」である。安全入力信号「フィードバック信号」の現在値および正常値がそれぞれ「ＯＮ」および「ＯＦＦ」である。安全入力信号「リセット」の現在値および正常値がいずれも「ＯＦＦ」である。
【０１０６】
そして、安全出力信号「ロボットＸ＿０」、安全入力信号「ライトカーテンＢ＿０」、安全入力信号「ライトカーテンＢ＿１」、および、安全入力信号「フィードバック信号」の現在値と正常値とが異なり、異常である可能性があるので、それぞれの行の背景が「赤」で表示される。
【０１０７】
このウォッチウィンドウによって、安全出力信号「ロボットＸ＿０」が遮断しており、この原因が、安全入力信号「ライトカーテンＢ＿０」および安全入力信号「ライトカーテンＢ＿１」が遮断していることであることを、ユーザが一目して判断可能なように知らせることができる。
【０１０８】
図１５を参照して、このウォッチウィンドウの表示態様は、安全出力信号および安全入力信号の名前、現在値、正常値および端子異常を表示させる場合を示す。また、異常である信号の行の背景を「赤」（図面ではハッチングで示す）で表示するようにする。
【０１０９】
ここでは、ウォッチウィンドウで、次のことが示されている。安全出力信号「ロボットＸ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＦＦ」、「ＯＮ」および「異常なし」である。安全入力信号「非常停止Ａ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＦＦ」、「ＯＮ」および「外部接続機器異常（図２０参照）」である。安全入力信号「非常停止Ａ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＦＦ」、「ＯＮ」および「相手側チャネル異常」である。安全入力信号「ライトカーテンＢ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ライトカーテンＢ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ドアスイッチＣ＿０」の現在値、正常値および「端子異常」がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ドアスイッチＣ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「フィードバック信号」の現在値および正常値がそれぞれ「ＯＮ」および「ＯＦＦ」である。安全入力信号「リセット」の現在値および正常値がいずれも「ＯＦＦ」である。
【０１１０】
そして、安全出力信号「ロボットＸ＿０」、安全入力信号「非常停止Ａ＿０」、安全入力信号「非常停止Ａ＿１」、および、安全入力信号「フィードバック信号」の現在値と正常値とが異なり、異常である可能性があるので、それぞれの行の背景が「赤」で表示される。
【０１１１】
このウォッチウィンドウによって、安全出力信号「ロボットＸ＿０」が遮断しており、この原因が、非常停止押ボタンスイッチ５００Ａが操作されたことではなく、非常停止押ボタンスイッチ５００Ａの安全入力信号を接続する２つの安全入力端子のうちの１つで断線または接続機器の故障などの異常が発生したことであることを、ユーザが一目して判断可能なように知らせることができる。
【０１１２】
図１６を参照して、このウォッチウィンドウの表示態様は、図１５と同様である。ここでは、ウォッチウィンドウで、次のことが示されている。安全出力信号「ロボットＸ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＦＦ」、「ＯＮ」および「地絡検出（図２０参照）」である。安全入力信号「非常停止Ａ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「非常停止Ａ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ライトカーテンＢ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ライトカーテンＢ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ドアスイッチＣ＿０」の現在値、正常値および「端子異常」がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ドアスイッチＣ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「フィードバック信号」の現在値および正常値がそれぞれ「ＯＮ」および「ＯＦＦ」である。安全入力信号「リセット」の現在値および正常値がいずれも「ＯＦＦ」である。
【０１１３】
そして、安全出力信号「ロボットＸ＿０」、および、安全入力信号「フィードバック信号」の現在値と正常値とが異なり、異常である可能性があるので、それぞれの行の背景が「赤」で表示される。
【０１１４】
このウォッチウィンドウによって、安全出力信号「ロボットＸ＿０」が遮断しており、この原因が、安全入力信号側の異常ではなく、安全出力端子で地絡を検知したことであることを、ユーザが一目して判断可能なように知らせることができる。
【０１１５】
図１７を参照して、このウォッチウィンドウの表示態様は、安全出力信号および安全入力信号の名前、現在値、正常値、端子異常およびＦＢ異常を表示させる場合を示す。また、異常である信号の行の背景を「赤」（図面ではハッチングで示す）で表示するようにする。
【０１１６】
ここでは、ウォッチウィンドウで、次のことが示されている。安全出力信号「ロボットＸ＿０」の現在値、正常値、端子異常およびＦＢ異常がそれぞれ「ＯＦＦ」、「ＯＮ」、「異常なし」および「Ｐａｇｅ２＿ＦＢ２」である。安全入力信号「非常停止Ａ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「非常停止Ａ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ライトカーテンＢ＿０」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ライトカーテンＢ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ドアスイッチＣ＿０」の現在値、正常値および「端子異常」がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「ドアスイッチＣ＿１」の現在値、正常値および端子異常がそれぞれ「ＯＮ」、「ＯＮ」および「異常なし」である。安全入力信号「フィードバック信号」の現在値および正常値がそれぞれ「ＯＮ」および「ＯＦＦ」である。安全入力信号「リセット」の現在値および正常値がいずれも「ＯＦＦ」である。
【０１１７】
そして、安全出力信号「ロボットＸ＿０」、および、安全入力信号「フィードバック信号」の現在値と正常値とが異なり、異常である可能性があるので、それぞれの行の背景が「赤」で表示される。
【０１１８】
このウォッチウィンドウによって、安全出力信号「ロボットＸ＿０」が遮断しており、この原因が、安全入力信号および安全出力信号の異常ではなく、ＦＢＤのＰａｇｅ２のＦＢ２で異常が発生したことであることを、ユーザが一目して判断可能なように知らせることができる。
【０１１９】
以上説明したように、本実施の形態に係るＰＣ３００によれば、図３で説明したように、安全コントローラ１００からＦＢＤが読出される。図１１および図１２で説明したように、読出されたＦＢＤに基づいて、安全コントローラ１００の安全出力機器６００への安全出力信号を起点に、当該安全出力信号に関連する安全入力信号が関連入力信号として特定され、特定された関連入力信号の現在値、正常値および端子異常などの情報が安全コントローラ１００から読出される。図３および図１３から図１７までで説明したように、特定された関連入力信号の名前の一覧を表示するよう制御され、読出された現在値、正常値および端子異常などの情報を表示するよう制御される。
【０１２０】
このため、関連入力信号の一覧が表示され、その現在値、正常値および端子異常などの情報が表示されるので、ユーザは、表示された情報が異常を示す情報であるか否かを確認することができ、安全出力信号の遮断の原因となった安全入力信号を認識することができる。その結果、安全出力信号の遮断の原因となった安全入力信号を即時にユーザに認識させることができる。
【０１２１】
また、ＰＣ３００によって、図１２で説明したように、安全出力信号の側から安全入力信号の側に遡って関連入力信号を特定する過程において、第１のＦＢに接続されているのが、安全入力信号のうちの１つであるか他の第２のＦＢであるかを判断する第１の処理（ステップＳ３２２の処理）と、第１の処理によって安全入力信号のうちの１つであると判断された場合、当該安全入力信号を関連入力信号として特定する第２の処理（ステップＳ３３１からステップＳ３３７までの処理）とを含む検索処理が実行される。
【０１２２】
このため、安全出力信号の遮断の原因となった安全入力信号を確実に検出することができ、その原因をユーザに確実に認識させることができる。
【０１２３】
さらに、ＰＣ３００によって、図１２のステップＳ３２８で説明したように、検索処理の第１の処理によって、第２のＦＢであると判断された場合、検索処理が再帰呼び出しで実行される。
【０１２４】
ＦＢに対する検索処理は、第１のＦＢであっても第２のＦＢであっても同じである。このため、第２のＦＢについて、再帰呼び出しで検索処理を実行するようにプログラミングすることで、プログラムの容量がより少なく、プログラミングの手間も少ない、効率のよい設定ツールのプログラムを作成することができる。
【０１２５】
また、さらに、ＰＣ３００によって、検索処理の第１の処理によって、第２のＦＢであると判断された場合、図１２のステップＳ３２５およびステップＳ３２６で説明したように、当該第２のＦＢが異常であるか否かが判断され、第２のＦＢが異常であると判断された場合、図１２のステップＳ３２７、図３および図１７のＦＢ異常の欄で説明したように、当該第２のＦＢが異常である旨を表示するよう制御される。
【０１２６】
このため、安全出力信号の遮断の原因となったＦＢを確実に検出することができ、その原因をユーザに確実に認識させることができる。
【０１２７】
また、さらに、ＰＣ３００によって、図１２のステップＳ３３２で説明したように、検索処理の第２の処理によって特定された関連入力信号の値が異常であるか否かが判断され、関連入力信号の値が異常であると判断された場合、図１４から図１７までで説明したように、当該値が異常である旨を表示するよう制御される。
【０１２８】
このため、安全出力信号の遮断の原因となった安全入力信号を確実に検出することができ、その原因をユーザに確実に認識させることができる。
【０１２９】
また、さらに、ＰＣ３００によって、図１２のステップＳ３３４およびステップＳ３３５で説明したように、検索処理の第２の処理によって特定された関連入力信号の安全コントローラ１００の安全入力端子が異常であるか否かが判断され、入力端子が異常であると判断された場合、図１５から図１７までで説明したように、当該安全入力端子が異常である旨を表示するよう制御される。
【０１３０】
このため、安全出力信号の遮断の原因となった安全入力端子を確実に検出することができ、その原因をユーザに確実に認識させることができる。
【０１３１】
また、ＰＣ３００によって、図１１のステップＳ３１３で説明したように、安全出力信号の値が異常であるか否かが判断され、安全出力信号の値が異常であると判断された場合、図１４から図１７までで説明したように、当該値が異常である旨を表示するよう制御される。
【０１３２】
このため、安全出力信号の遮断の原因となったのが安全出力信号であることを確実に検出することができ、その原因をユーザに確実に認識させることができる。
【０１３３】
また、ＰＣ３００によって、図１１のステップＳ３１４およびステップＳ３１５で説明したように、安全コントローラ１００の安全出力端子が異常であるか否かが判断され、図１５から図１７までで説明したように、安全出力端子が異常であると判断された場合、当該安全出力端子が異常である旨を表示するよう制御される。
【０１３４】
このため、安全出力信号の遮断の原因となったのが安全出力端子であることを確実に検出することができ、その原因をユーザに確実に認識させることができる。
【０１３５】
次に、上述した実施の形態の変形例について説明する。
（１）  前述した実施の形態においては、安全コントローラ１００がスタンドアローンで動作し、ＵＳＢケーブル９００で安全コントローラ１００とＰＣ３００とが接続される場合について説明した。
【０１３６】
図１８は、本発明の実施の形態の変形例に係る安全コントローラ１００をネットワーク接続で使用する場合のシステム構成の一例を示す図である。図１８を参照して、この場合、安全コントローラ１００が、他の制御装置、たとえば、安全スレーブコントローラ４００、スタンダードＰＬＣ７００、もしくは、スタンダードスレーブコントローラ７１０と、ネットワーク通信ケーブル８００を介して接続される。
【０１３７】
このように、他の制御装置と協調して動作する場合にも、前述した実施の形態は適用可能である。また、安全コントローラ１００とＰＣ３００とが、ネットワーク通信ケーブル８００を介して接続される場合にも、前述した実施の形態は適用可能である。
【０１３８】
（２）  前述した実施の形態においては、安全コントローラ１００の異常を解析するＰＣ３００の発明として説明した。しかし、これに限定されず、安全コントローラ１００の異常を解析するＰＣ３００の制御方法の発明として捉えることができる。
【０１３９】
（３）  今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４０】
１００  安全コントローラ、１１１  プログラム実行部、１１２  モニタ処理部、１２１  安全入出力メモリ、１２２  ステータスメモリ、１３０  安全入力処理部、１４０  安全出力処理部、１５０  通信処理部、３００  ＰＣ、３１１  ウォッチ登録処理部、３１２  モニタ処理部、３２１  プログラム保存メモリ、３２２  正常値ＤＢ、３２３  端子異常文字列ＤＢ、３２４  現在値保存メモリ、３２５  異常ＦＢ保存メモリ、３２６  端子異常保存メモリ、３２７  検索済みＦＢ保存メモリ、３４１  プログラムウィンドウ表示制御部、３４２  ウォッチウィンドウ表示制御部、３５０  通信処理部、４００  安全スレーブコントローラ、５００  安全入力機器、５００Ａ  非常停止押ボタンスイッチ、５００Ｂ  ライトカーテン、５００Ｃ  ドアスイッチ、５００Ｄ  ２ハンドスイッチ、６００  安全出力機器、６００Ａ  コンタクタ、７００  スタンダードＰＬＣ、７１０  スタンダードスレーブコントローラ、８００  ネットワーク通信ケーブル、９００  ＵＳＢケーブル。
【図１】
0005423468.tif 000002
【図２】
0005423468.tif 000003
【図３】
0005423468.tif 000004
【図４】
0005423468.tif 000005
【図５】
0005423468.tif 000006
【図６】
0005423468.tif 000007
【図７】
0005423468.tif 000008
【図８】
0005423468.tif 000009
【図９】
0005423468.tif 000010
【図１０】
0005423468.tif 000011
【図１１】
0005423468.tif 000012
【図１２】
0005423468.tif 000013
【図１３】
0005423468.tif 000014
【図１４】
0005423468.tif 000015
【図１５】
0005423468.tif 000016
【図１６】
0005423468.tif 000017
【図１７】
0005423468.tif 000018
【図１８】
0005423468.tif 000019
【図１９】
0005423468.tif 000020
【図２０】
0005423468.tif 000021