(57)【特許請求の範囲】
【請求項１】
安全コントローラで実行される安全プログラムの開発を支援するプログラム開発支援装置であって、
前記安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して、前記選択された入出力ユニットの外観と入出力端子とを表現する第１の画像オブジェクトを表示する第１の表示制御手段と、
前記第１の画像オブジェクトとともに、前記選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する第２の画像オブジェクトを表示する第２の表示制御手段とを備え、
各安全デバイスの割り当て先の入出力端子に対応して、前記第１の画像オブジェクトが表現する入出力端子と、前記第２の画像オブジェクトが表現する回路構成とを対応付けて表示し、
前記第１の表示制御手段は、前記入出力ユニットに割り当てられている安全デバイスの種類に応じて、前記第１の画像オブジェクトの入出力端子の表示態様を異ならせる、プログラム開発支援装置。
【請求項２】
予め用意された複数の安全デバイスのいずれかに対する選択に応答して、当該選択された安全デバイスを前記入出力ユニットの入出力端子に割り当てる手段をさらに備える、請求項１に記載のプログラム開発支援装置。
【請求項３】
前記第１の画像オブジェクトは、対応する入出力ユニットの外観として、入出力端子を表現する１または複数の部分画像オブジェクトを含み、
前記第１の表示制御手段は、前記入出力ユニットに割り当てられている安全デバイスの種類に応じて、対応する部分画像オブジェクトの表示態様を異ならせる、請求項１または２に記載のプログラム開発支援装置。
【請求項４】
前記第１の画像オブジェクトは、対応する入出力ユニットの外観として、入出力端子を表現する１または複数の部分画像オブジェクトを含み、
前記１または複数の部分画像オブジェクトは、前記入出力ユニットに割り当てられている安全デバイスとの間で遣り取りされる信号の向きを表現するように構成される、請求項１または２に記載のプログラム開発支援装置。
【請求項５】
前記第１の画像オブジェクトおよび前記第２の画像オブジェクトを含むドキュメントを出力するための出力手段をさらに備える、請求項１〜４のいずれか１項に記載のプログラム開発支援装置。
【請求項６】
前記選択された入出力ユニットへの安全デバイスの割り当てに関する設定を保存する保存手段をさらに備える、請求項１〜５のいずれか１項に記載のプログラム開発支援装置。
【請求項７】
安全コントローラで実行される安全プログラムの開発を支援するプログラム開発支援プログラムであって、前記プログラム開発支援プログラムはコンピュータに
前記安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して、前記選択された入出力ユニットの外観と入出力端子とを表現する第１の画像オブジェクトを表示するステップと、
前記第１の画像オブジェクトとともに、前記選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する第２の画像オブジェクトを表示するステップとを実行させ、
各安全デバイスの割り当て先の入出力端子に対応して、前記第１の画像オブジェクトが表現する入出力端子と、前記第２の画像オブジェクトが表現する回路構成とを対応付けて表示され、
前記第１の画像オブジェクトを表示するステップは、前記入出力ユニットに割り当てられている安全デバイスの種類に応じて、前記第１の画像オブジェクトの入出力端子の表示態様を異ならせるステップを含む、プログラム開発支援プログラム。
【請求項８】
安全コントローラで実行される安全プログラムの開発を支援するプログラム開発支援方法であって、
前記安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して、前記選択された入出力ユニットの外観と入出力端子とを表現する第１の画像オブジェクトを表示するステップと、
前記第１の画像オブジェクトとともに、前記選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する第２の画像オブジェクトを表示するステップとを含み、
各安全デバイスの割り当て先の入出力端子に対応して、前記第１の画像オブジェクトが表現する入出力端子と、前記第２の画像オブジェクトが表現する回路構成とを対応付けて表示され、
前記第１の画像オブジェクトを表示するステップは、前記入出力ユニットに割り当てられている安全デバイスの種類に応じて、前記第１の画像オブジェクトの入出力端子の表示態様を異ならせるステップを含む、プログラム開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、安全コントローラで実行される安全プログラムの開発を支援するプログラム開発支援装置、プログラム開発支援プログラムおよびプログラム開発支援方法に関する。
【背景技術】
【０００２】
多くの製造現場で使用される機械を安全に使用するためには、国際規格に従う安全機器（安全コンポーネント）を使用しなければならばない。この安全機器は、ロボットなどの自動的に動く装置によって人の安全が脅かされるのを防止することを目的としている。このような安全機器は、安全プログラムを実行する安全コントローラをはじめとして、人の存在や侵入を検知する検知機器、非常時の操作を受付ける入力機器、実際に機器を停止させる出力機器などを含む。
【０００３】
このような製造現場での安全を確保する技術の一つとして、例えば、特開２０１４−１３７６２１号公報（特許文献１）は、安全コントローラのユーザプログラムの設計を容易にすることが可能な安全コントローラのユーザプログラムの設計を支援する方法を開示する。
【０００４】
特開２０１４−１３７６２１号公報（特許文献１）は、安全コントローラと安全Ｉ／Ｏターミナルとがバス型ネットワークを介して接続され、安全コントローラでは、安全Ｉ／Ｏターミナルに接続される安全入力機器からの入力信号に基づいて、安全Ｉ／Ｏターミナルに接続される安全出力機器に対して安全動作を行うための指令を出力する構成を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１３７６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現実に安全コントローラを据え付ける場合には、安全コンポーネントと入出力端子との電気的な接続についても設計および施工する必要がある。上述の特許文献１は、ソフトウェア的な変数の割り付けについて開示するのみであり、安全コンポーネントと安全コントローラとの間の電気的な配線については何ら言及されていない。
【０００７】
そのため、ソフトウェア的な内部変数だけではなく、電気的な回路構成についても設計を支援する構成が要望されている。
【課題を解決するための手段】
【０００８】
本発明のある局面に従えば、安全コントローラで実行される安全プログラムの開発を支援するプログラム開発支援装置が提供される。プログラム開発支援装置は、安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して、選択された入出力ユニットの外観と入出力端子とを表現する第１の画像オブジェクトを表示する第１の表示制御手段と、第１の画像オブジェクトとともに、選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する第２の画像オブジェクトを表示する第２の表示制御手段とを含む。プログラム開発支援装置は、各安全デバイスの割り当て先の入出力端子に対応して、第１の画像オブジェクトが表現する入出力端子と、第２の画像オブジェクトが表現する回路構成とを対応付けて表示する。
【０００９】
好ましくは、プログラム開発支援装置、予め用意された複数の安全デバイスのいずれかに対する選択に応答して、当該選択された安全デバイスを入出力ユニットの入出力端子に割り当てる手段をさらに含む。
【００１０】
好ましくは、第１の表示制御手段は、入出力ユニットに割り当てられている安全デバイスの種類に応じて、第１の画像オブジェクトの入出力端子の表示態様を異ならせる。
【００１１】
好ましくは、第１の画像オブジェクトは、対応する入出力ユニットの外観として、入出力端子を表現する１または複数の部分画像オブジェクトを含み、第１の表示制御手段は、入出力ユニットに割り当てられている安全デバイスの種類に応じて、対応する部分画像オブジェクトの表示態様を異ならせる。
【００１２】
好ましくは、第１の画像オブジェクトは、対応する入出力ユニットの外観として、入出力端子を表現する１または複数の部分画像オブジェクトを含み、１または複数の部分画像オブジェクトは、入出力ユニットに割り当てられている安全デバイスとの間で遣り取りされる信号の向きを表現するように構成される。
【００１３】
好ましくは、プログラム開発支援装置は、第１の画像オブジェクトおよび第２の画像オブジェクトを含むドキュメントを出力するための出力手段をさらに含む。
【００１４】
好ましくは、プログラム開発支援装置は、選択された入出力ユニットへの安全デバイスの割り当てに関する設定を保存する保存手段をさらに含む。
【００１５】
本発明の別の局面に従えば、安全コントローラで実行される安全プログラムの開発を支援するプログラム開発支援プログラムが提供される。プログラム開発支援プログラムはコンピュータに、安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して、選択された入出力ユニットの外観と入出力端子とを表現する第１の画像オブジェクトを表示するステップと、第１の画像オブジェクトとともに、選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する第２の画像オブジェクトを表示するステップとを実行させる。各安全デバイスの割り当て先の入出力端子に対応して、第１の画像オブジェクトが表現する入出力端子と、第２の画像オブジェクトが表現する回路構成とを対応付けて表示される。
【００１６】
本発明のさらに別の局面に従えば、安全コントローラで実行される安全プログラムの開発を支援するプログラム開発支援方法が提供される。プログラム開発支援方法は、安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して、選択された入出力ユニットの外観と入出力端子とを表現する第１の画像オブジェクトを表示するステップと、第１の画像オブジェクトとともに、選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する第２の画像オブジェクトを表示するステップとを含む。各安全デバイスの割り当て先の入出力端子に対応して、第１の画像オブジェクトが表現する入出力端子と、第２の画像オブジェクトが表現する回路構成とを対応付けて表示される。
【発明の効果】
【００１７】
本発明によれば、安全コントローラに入出力される安全コンポーネントとの間の電気的な回路構成に係る設計を容易化できる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態に従う安全システムの概要を示す模式図である。
【図２】本実施の形態に従う支援装置のハードウェア構成の一例を示す模式図である。
【図３】本実施の形態に従う支援装置のソフトウェア構成の一例を示す模式図である。
【図４】本実施の形態に従う支援装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図５】本実施の形態に従う支援装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図６】本実施の形態に従う支援装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図７】本実施の形態に従う支援装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図８】本実施の形態に従う支援装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図９】本実施の形態に従う支援装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図１０】本実施の形態に従う支援装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図１１】本実施の形態に従う支援装置により出力されるドキュメントの一例を示す模式図である。
【図１２】本実施の形態に従う支援装置でのＩ／Ｏ設定に係る処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２０】
＜Ａ．安全システムの概要＞
まず、本実施の形態に従う安全コントローラを含む安全システムの概要について説明する。
【００２１】
図１は、本実施の形態に従う安全システム１の概要を示す模式図である。図１を参照して、安全システム１は、１または複数の安全コントローラ２００を含む。図１には、複数の安全コントローラ２００がネットワーク２１０を介して互いにデータを遣り取り可能に構成されている例を示すが、安全コントローラ２００が単体で使用されてもよい。
【００２２】
安全コントローラ２００は、主演算ユニット２０２と、１または複数の入出力ユニット２０４とを含む。主演算ユニット２０２は、安全コントローラ２００での演算処理の全体を司る機構であり、入出力ユニット２０４を介したフィールドデータの収集、安全プログラムの実行、入出力ユニット２０４を介した指令値の出力などを行う。
【００２３】
安全コントローラ２００には、様々な種類の安全コンポーネントが接続される。以下の説明においては、入出力ユニット２０４への安全コンポーネントの割り当ておよび電気的な接続について着目するので、対象とする安全コンポーネントを「安全デバイス」と総称する。文脈によっては、「安全デバイス」は安全コンポーネント全体を包含する場合もある。
【００２４】
本明細書において、「入出力ユニット」は、実際の安全デバイスとの間で信号を遣り取りする部材を総称するものであり、安全デバイスからの信号を受け取る機能のみを有するユニット（入力ユニット）、安全デバイスへ信号を送出する機能のみを有するユニット（出力ユニット）、および、その両方の機能を組み合わせたユニット（入出力ユニット）のいずれをも含む。また、安全デバイスとの間で遣り取りされる信号の種類（例えば、電気信号および光信号）、信号の波形（例えば、直流波形、交流波形、パルス波形など）、信号の振幅（例えば、振幅電圧など）などについては、特定のものに限定されることなく、採用される安全デバイスに応じた種類および特性の信号が用いられることになる。
【００２５】
安全コンポーネント（安全デバイス２２０）に関して、入力デバイスとしては、非常停止用押ボタンスイッチ、セーフティセンサ、セーフティライトカーテン、セーフティレーザスキャナ、セーフティドアスイッチ、セーフティリミットスイッチ、セーフティマット、イネーブルスイッチなどが挙げられる。また、出力デバイスとしては、セーフティリレーユニット、セーフティリレーなどが挙げられる。
【００２６】
図１には、複数の安全コントローラ２００がネットワーク接続されている構成を示すが、単一の安全コントローラ２００にリモート入出力装置がネットワーク接続され、リモート入出力装置に装着される入出力ユニットと安全デバイス２２０とが接続される場合もある。このような場合、リモート入出力装置では、主演算ユニット２０２に代えて、主として、主演算ユニット２０２との間の通信処理を行うネットワークカプラが設けられる。
【００２７】
本実施の形態に従うプログラム開発支援装置（以下、「支援装置」とも略称する。）１００は、安全コントローラで実行される安全プログラムの開発を支援する機能を有している。支援装置１００では、安全プログラムの開発が行われるとともに、いずれかの安全コントローラ２００に接続され、当該開発された安全プログラムの転送などを行うことができるようになっている。但し、支援装置１００は、必ずしも安全コントローラ２００に接続される必要はなく、いわゆるオフライン状態においても、以下のようなプログラム開発支援機能を提供することができる。
【００２８】
＜Ｂ．プログラム開発支援装置のハードウェア構成＞
次に、支援装置１００のハードウェア構成について概略する。図２は、本実施の形態に従う支援装置１００のハードウェア構成の一例を示す模式図である。
【００２９】
図２に示す本実施の形態に従う支援装置１００は、典型的には、後述するようなソフトウェアを汎用コンピュータにインストールして実行することで実現できる。
【００３０】
具体的には、支援装置１００は、主たるコンポーネントとして、後述するプログラムを実行するプロセッサ１０２と、プロセッサ１０２でのプログラム実行に必要なデータを格納するための作業領域を提供する主メモリ１０４と、キーボードやマウスなどのユーザ操作を受付ける入力部１０６と、ディスプレイ、各種インジケータ、プリンタなどの処理結果を出力する出力部１０８と、外部ネットワークと通信するためのネットワークインターフェイス（Ｉ／Ｆ：interface）１１０と、光学ドライブ１１２と、安全コントローラなどと通信するためのローカル通信インターフェイス（Ｉ／Ｆ）１１６と、補助記憶装置１２０とを含む。これらのコンポーネントは、内部バス１１８などを介して互いにデータ通信可能に接続される。
【００３１】
支援装置１００は、光学ドライブ１１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体（例えば、ＤＶＤ（Digital Versatile Disc）など）のコンピュータ読取可能な記録媒体１１４から、各種プログラムを読取って補助記憶装置１２０などにインストールする。本実施の形態に従うプログラミング開発支援機能は、安全コントローラに対する設定、プログラミング、デバッグなどの機能を提供する開発環境プログラムの一部として提供されてもよい。
【００３２】
支援装置１００で実行される各種プログラムは、コンピュータ読取可能な記録媒体１１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うプログラミング開発支援に係るプログラムは、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。このような場合には、本実施の形態に従うプログラミング開発支援の実現に必要なすべてのソフトウェアモジュールが配布されるのではなく、その一部のみが配布されることになる。このような場合であっても、本発明の技術的範囲に包含されることは自明である。また、本実施の形態に従うプログラミング開発支援に係る処理が、他のプログラムまたはソフトウェアの一部として実装されてもよい。
【００３３】
補助記憶装置１２０は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Flash Solid State Drive）などで構成され、プロセッサ１０２で実行されるプログラムや各種データを不揮発的に格納する。具体的には、補助記憶装置１２０は、オペレーティングシステム（ＯＳ：Operating System）１３０に加えて、後述するような機能を提供するプログラムとして、プログラミングアプリケーション１４０、および、変数・ネットワーク設定アプリケーション１５０を含む。これらのプログラムが提供する機能および処理については、後述する。
【００３４】
図２には、汎用コンピュータがプログラムを実行することで、本実施の形態に従うプログラミング開発支援に係る機能を実現するが、このような構成に代えて、その全部または一部をハードワイヤード回路で実装してもよい。例えば、プロセッサ１０２が上述の各種プログラムを実行することで提供される機能をＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）を用いて実装してもよい。
【００３５】
＜Ｃ．プログラム開発支援装置のソフトウェア構成＞
次に、支援装置１００のソフトウェア構成について概略する。図３は、本実施の形態に従う支援装置１００のソフトウェア構成の一例を示す模式図である。
【００３６】
図３を参照して、支援装置１００は、そのソフトウェア構成として、ＯＳ１３０上で実行される、プログラミングアプリケーション１４０および変数・ネットワーク設定アプリケーション１５０を含む。これらのプログラミングアプリケーション１４０および変数・ネットワーク設定アプリケーション１５０が、主として、安全コントローラで実行される安全プログラムの開発を支援する機能を提供する。すなわち、プログラミングアプリケーション１４０および変数・ネットワーク設定アプリケーション１５０がプログラム開発支援プログラムとして機能する。
【００３７】
プログラミングアプリケーション１４０、および、変数・ネットワーク設定アプリケーション１５０に含まれるそれぞれのモジュールは、典型的には、記録媒体１１４に格納された状態で流通して、支援装置１００にインストールされる。
【００３８】
プログラミングアプリケーション１４０は、安全コントローラで実行される安全プログラムを作成するための機能を提供するアプリケーションである。より具体的には、プログラミングアプリケーション１４０は、エディタ１４１と、コンパイラ１４２と、デバッガ１４３と、ＧＵＩ（Graphical User Interface）モジュール１４４と、シミュレータ１４５とを含む。
【００３９】
エディタ１４１は、安全プログラム（ソースプログラム１４６）を作成するための入力および編集といった機能を提供する。より具体的には、エディタ１４１は、ユーザがキーボードやマウスを操作して、安全プログラムのソースプログラム１４６を作成する機能に加えて、作成したソースプログラム１４６の保存機能および編集機能を提供する。コンパイラ１４２は、安全プログラムをコンパイルして、安全コントローラで実行可能な形式（例えば、オブジェクト形式）のコードを生成する。デバッガ１４３は、安全プログラム（ソースプログラム１４６）に対してデバッグを行うための機能を提供する。ＧＵＩモジュール１４４は、ユーザが各種設定値などを入力するためのユーザインターフェイスを提供する。シミュレータ１４５は、支援装置１００内に安全コントローラでのプログラムの実行をシミュレーションする環境を構築する。
【００４０】
プログラミングアプリケーション１４０によって作成されたソースプログラム１４６、および、ユーザが設定したプログラムの実行に必要な変数設定１４７も併せて格納される。
【００４１】
変数・ネットワーク設定アプリケーション１５０は、安全コントローラに入出力される信号に関する設定および安全コントローラ間で遣り取りされる信号などに係る設定を行う機能を提供する。より具体的には、変数・ネットワーク設定アプリケーション１５０は、エディタ１５１と、コンフィグレータ１５２と、関連付モジュール１５３とを含む。
【００４２】
エディタ１５１は、安全コントローラに入出力される信号の種別設定や割り当てといった変数に係る設定、および、安全コントローラ間のネットワーク接続などに関する設定の入力および編集といった機能を提供する。このエディタ１５１が提供する機能については、後述する。このエディタ１５１によって作成される情報は、変数設定１５４として格納される。コンフィグレータ１５２は、安全コントローラ間でのデータの遣り取りに必要な設定を対象の安全コントローラへ供給する機能を提供する。このコンフィグレータ１５２によって提供される情報は、コネクション設定１５５として格納される。
【００４３】
関連付モジュール１５３は、遣り取りされるデータ毎に、対象の安全コントローラ間の関連付けを行う機能を提供する。より具体的には、関連付モジュール１５３は、変数設定１５４に基づいて各入出力ユニットに割り当てられた信号を、他の安全コントローラからも利用可能になるように、コネクション設定１５５の情報と関連付ける。
【００４４】
＜Ｄ．入出力ユニットの設定操作例＞
次に、本実施の形態に従う支援装置１００上で提供される、入出力ユニットの設定操作例について説明する。
【００４５】
図４〜図１０は、本実施の形態に従う支援装置１００が提供するユーザインターフェイス画面３００の一例を示す模式図である。以下、図４〜図１０を参照して、ユーザが、安全コントローラの入出力ユニットに安全デバイスを割り当てる設定（以下、「Ｉ／Ｏ設定」とも称する。）に係る操作例を説明する。
【００４６】
図４には、Ｉ／Ｏ設定に係るユーザインターフェイス画面３００の初期状態の一例を示す。ユーザインターフェイス画面３００は、各入出力ユニットへの安全デバイスの割り当ての状態を示すユニット状態表示エリア３１０と、選択されている安全コントローラまたはリモート入出力装置を表示するための装置表示エリア３３０と、安全システムに含まれ、選択可能な安全コントローラまたはリモート入出力装置を一覧表示する機器一覧表示エリア３４０と、入出力ユニットに割り当て可能な安全デバイスを一覧表示するデバイス一覧表示エリア３５０とを含む。また、ユーザインターフェイス画面３００は、現在の設定内容を階層的に確認可能なマルチビューエクスプローラ３６０を含んでいてもよい。
【００４７】
まず、ユーザは、機器一覧表示エリア３４０に一覧表示される機器のうち、設定対象の機器を選択する。機器一覧表示エリア３４０には、予め構築されたネットワーク設定に従って、機器の種類に対応する１または複数のアイコン（画像オブジェクト）が表示される。ユーザは、マウスなどを操作して、対象とする機器に対応するアイコンを選択することで、当該選択された機器に対する設定が有効化される。機器一覧表示エリア３４０に表示されるアイコンには、対応する機器の設定情報などを併せて表示するようにしてもよい。
【００４８】
機器一覧表示エリア３４０に一覧表示されるいずれかの機器が選択されると、図５に示すように、当該選択された機器の構成を示すアイコン３３２（画像オブジェクト）が装置表示エリア３３０に表示される。このアイコン３３２は、選択された機器の構成情報などに基づいて、装着されている入出力ユニットの状態を反映したものになっている。
【００４９】
さらに、ユーザは、装置表示エリア３３０に表示されたアイコン３３２の設定対象の入出力ユニットに対応する部分を選択すると、図６に示すように、当該選択された入出力ユニットに関する設定情報を視覚的に示す画像オブジェクト３１２および３１４がユニット状態表示エリア３１０に表示される。
【００５０】
画像オブジェクト３１２および３１４（第１の画像オブジェクト）は、安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して表示されるものであり、選択された入出力ユニットの外観と入出力端子とを表現する。図６においては、画像オブジェクト３１２と画像オブジェクト３１４との組み合わせを用いているが、これに限られることなく、選択された入出力ユニットの外観と入出力端子とを表現できれば、どのような表示形態の画像オブジェクトを採用してもよい。
【００５１】
画像オブジェクト３１２は、選択されている入出力ユニットの端子が配置されている表面を模式的に示すものであり、入出力端子のそれぞれの位置に対応して、端子がそれぞれ丸形状で示されている。各端子を示す丸形状の部分は、その機能（入力または出力）に応じて、それぞれ異なる態様で表示されている。例えば、色・グラデーション・ハッチング・形状・点滅の有無などを異ならせてもよい。
【００５２】
図６に示す例では、４つの入力デバイスを接続可能な入出力ユニットの例を示す。安全デバイス毎に、２つの信号入力および２つのテスト出力を含む。例えば、入出力ユニットの最上部に配置される端子群は、２つの信号が入力される入力端子Ｓｉ００およびＳｉ０１と、２つのテスト用の電圧／電流が供給されるテスト出力端子Ｔ０およびＴ１とからなる。入力端子Ｓｉ００およびＳｉ０１に入力される電圧／電流の有無または大きさに応じて、入力の有無が判断される。テスト出力端子Ｔ０およびＴ１は、接続先の安全デバイスの断線および／または溶着を検出するためのダミー信号を出力する。
【００５３】
画像オブジェクト３１４は、入出力ユニットに接続される安全デバイスに関する情報および回路構成を模式的に示す。より具体的には、画像オブジェクト３１４は、接続される安全デバイス毎にコメントの入力を受付けるコメント枠３１６と、安全デバイスと接続される端子の様子を示す端子表示オブジェクト３１８とを含む。端子表示オブジェクト３１８の表示態様は、画像オブジェクト３１２における対応する端子の表示態様と一致させることが好ましい。
【００５４】
図６に示すような状態で、ユーザは、対象の入出力ユニットへ割り当てる安全デバイスをデバイス一覧表示エリア３５０から選択する。図７に示すように、デバイス一覧表示エリア３５０には、安全デバイスの種類別に複数のボタン３５２が表示されており、ユーザは、割り当てる安全デバイスの種類を示すボタンを選択し、その選択によってプルダウン表示される１または複数の安全デバイスのうちから対象の安全デバイスを選択する。そして、デバイス一覧表示エリア３５０において対象の安全デバイスを、画像オブジェクト３１４の対応する端子の位置までドラッグ操作することで、図７に示すように、選択された安全デバイスがドラッグ先の位置に隣接する端子に割り当てられる。
【００５５】
このドラッグ操作によっていずれかの安全デバイスが割り当てられると、当該割り当てられた安全デバイスを示す画像オブジェクト３２０Ａが、画像オブジェクト３１４に対応付けて表示される。
【００５６】
画像オブジェクト３２０Ａ（第２の画像オブジェクト）は、画像オブジェクト３１２および３１４（第１の画像オブジェクト）とともに、選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する。より具体的には、画像オブジェクト３２０Ａは、いずれかの入出力端子に割り当てられた安全デバイスの外観を示す画像オブジェクト３２２と、当該割り当てられた安全デバイスの回路構成を示す画像オブジェクト３２４とを含む。画像オブジェクト３２０Ａは、さらに、割り当てられた安全デバイスの種類名（図７に示す例では、「非常停止用押ボタン（デュアルチャネル同値入力）」）も併せて表示されてもよい。
【００５７】
図７に示すように、各安全デバイスの割り当て先の入出力端子に対応して、画像オブジェクト３１４が表現する入出力端子（端子表示オブジェクト３１８）と、画像オブジェクト３２０Ａが表現する回路構成（画像オブジェクト３２４）とが対応付けて表示される。すなわち、画像オブジェクト３１４と画像オブジェクト３２０Ａとの間の配置位置が最適化されることで、入出力ユニットの各入出力端子と各割り当てられた安全デバイスとの間の電気的な接続（回路接続）を視覚的に把握できる。
【００５８】
また、この安全デバイスの割り当て操作に応じて、画像オブジェクト３１４のコメント枠３１６には、当該割り当てられた安全デバイスについての予め設定されたコメントが自動入力されるようにしてもよい。
【００５９】
図７に示す安全デバイスの割り当て操作と同様の操作を順次繰返すことで、図８に示すように、選択されている入出力ユニットに対する１または複数の安全デバイスの割り当てが完了する。図８には、選択された入出力ユニットに割り当てられた４つの安全デバイスを示すそれぞれ示す画像オブジェクト３２０Ａ〜３２０Ｄが表示されている状態を示す。
【００６０】
このように、予め用意された複数の安全デバイスのいずれかに対する選択に応答して、当該選択された安全デバイスが入出力ユニットの入出力端子に割り当てられる処理が実行される。実際の入出力ユニットには、様々な安全デバイスが接続され得るので、デバイス一覧表示エリア３５０には、予め取得された情報に基づいて、可能な限り多くの安全デバイスが選択可能にされていることが好ましい。
【００６１】
デバイス一覧表示エリア３５０に表示される安全デバイスについては、支援装置１００がネットワークなどを介してサーバ装置へアクセスし、サーバ装置から最新の安全デバイスの情報を取得することで、その表示内容を動的に変化させるようにしてもよい。
【００６２】
図８に示すように、割り当てられる安全デバイスの種類によって、入出力ユニットに用意されている入出力端子のうち一部のみが用いられる場合がある。そのため、入出力ユニットに割り当てられている安全デバイスの種類に応じて、画像オブジェクト３１４の入出力端子（端子表示オブジェクト３１８）の表示態様を異ならせてもよい。例えば、不要な端子を表示しない方が接続関係の理解を容易化できる。そのため、図８に示すように、例えば、テスト出力端子Ｔ０およびＴ１が不要な安全デバイス（図８に示す例では、セーフティライトカーテン、セーフティレーザスキャナ、リセットスイッチなど）については、画像オブジェクト３１４において、対応する端子についての端子表示オブジェクト３１８を表示しない方が好ましい。
【００６３】
図７には、デバイス一覧表示エリア３５０から目的の端子の位置までドラッグ操作することで、安全デバイスの割り当てが実行される構成例について例示したが、これに限られることなく、いわゆる「コピー＆ペースト」操作により安全デバイスの割り当てを実現してもよい。すなわち、ある端子に割り当てた安全デバイスと同じ安全デバイスを別の端子に割り当てる場合に、先に割り当てた安全デバイスを「コピー」操作し、新たに割り当てたい先の端子の位置で「ペースト」操作することで、先に割り当てた安全デバイスが複製されて、別の端子に割り当てられる。さらに別の操作を許容してもよい。
【００６４】
図６〜図８に示すように、端子表示オブジェクト３１８として三角形状のオブジェクトが採用されており、この三角形状の向きにより、入出力ユニットの対応する入出力端子が入力端子および出力端子のいずれとして用いられるのかを表現する。このように、端子表示オブジェクト３１８（部分画像オブジェクト）は、入出力ユニットに割り当てられている安全デバイスとの間で遣り取りされる信号の向きを表現するようになっている。
【００６５】
何らかの安全デバイスを割り当てた後、その割り当てた安全デバイスの種類などを変更したい場合もある。このようなニーズに対応するために、比較的簡単な操作で、割り当てた安全デバイスの種類を変更できるようにしてもよい。その一例として、図９に示すように、ユーザが画像オブジェクト３２０Ａをクリックすることで、同一種類の安全デバイス間で異なる特性の安全デバイスに順次切り替えることができるようにしてもよい。図７に示す割り当てから図９に示す割り当てへの変更においては、「非常停止用押しボタンスイッチ」という安全デバイスの種類の間で、「デュアルチャネル同値入力」の形式から「シングルチャネル入力」の形式に変更されている。この形式の変更に伴って。画像オブジェクト３２０Ａ内に表示される画像オブジェクト３２２（安全デバイスの外観）および画像オブジェクト３２４（安全デバイスの回路構成）も変化する。
【００６６】
図９に示すようなユーザ操作を可能にすることで、一旦割り当てた安全デバイスの種類を変更したいときに、先に割り当てた安全デバイスを削除し、その上で、新たに安全デバイスを選択して割り当てるといった操作に比較して、より簡単に安全デバイスの種類などの変更操作を実現できる。
【００６７】
上述したようなＩ／Ｏ設定に従って、ユーザは、安全コントローラの各入力ユニットへの安全デバイスの割り当てを含む各種設定を順次行う。そして、Ｉ／Ｏ設定の結果は、変数・ネットワーク設定アプリケーション１５０によって出力される変数設定１５４（図３参照）として保存される。すなわち、支援装置１００は、選択された入出力ユニットへの安全デバイスの割り当てに関する設定を保存する機能を有している。
【００６８】
あるいは、図１０に示すように、一旦割り当てた安全デバイスを示す画像オブジェクト３２０Ａに対する操作によって、安全デバイスの変更候補を示すサブメニュー３２７が表示され、このサブメニュー３２７上で変更先の安全デバイスを選択してもよい。このようなサブメニュー３２７での安全デバイスの変更操作によって、図９に示すような変更操作が行われる。
【００６９】
画像オブジェクト３２０Ａ〜３２０Ｄに含まれる、安全デバイスの外観を示す画像オブジェクト３２２、および、当該割り当てられた安全デバイスの回路構成を示す画像オブジェクト３２４のうち、いずれか一方のみを任意に変更するようにしてもよい。例えば、機能および回路上は同一の安全デバイスであっても、外観上の相違（例えば、色または大きさ）などが異なるものがあり、このような場合には、安全デバイスの外観、すなわち画像オブジェクト３２２のみを変更するようにしてもよい。このようなフレキシブルな画像オブジェクトの変更を許容することで、実際の作業を考慮した設計を行うことができる。
【００７０】
＜Ｅ．ドキュメント出力＞
次に、本実施の形態に従う支援装置１００によるドキュメント出力の一例について説明する。図１１は、本実施の形態に従う支援装置１００により出力されるドキュメント４００の一例を示す模式図である。図１１に示すように、画像オブジェクト３１２および３１４に対応する内容を含むドキュメント４００を出力する。このように、支援装置１００は、図８などに示す画像オブジェクト３１２および３１４（第１の画像オブジェクト）および画像オブジェクト３２０Ａ（第２の画像オブジェクト）を含むドキュメントを出力するための機能を有している。
【００７１】
ドキュメント４００は、安全プログラムの設計書または仕様書として用いることができる。図１１に示す例では、１つの入出力ユニットへの安全デバイスの割り当てについて示しているが、１頁のドキュメントに複数の入出力ユニットに係る安全デバイスの割り当ての情報を含めるようにしてもよい。
【００７２】
ドキュメント４００の出力形態としては、プリンタなどから印刷物として提供することもできるし、例えば、ＰＤＦ（Portable Document Format）の形式の電子データとして提供することもできる。このようなドキュメント４００の出力処理については、変数・ネットワーク設定アプリケーション１５０の関連付モジュール１５３（図３参照）などによって実行されてもよい。
【００７３】
＜Ｆ．Ｉ／Ｏ設定に係る処理手順＞
次に、図４〜図１０に示すＩ／Ｏ設定に係る処理手順について説明する。図１２は、本実施の形態に従う支援装置１００でのＩ／Ｏ設定に係る処理手順を示すフローチャートである。図１２に示す各ステップは、プロセッサ１０２がプログラム開発支援プログラム（プログラミングアプリケーション１４０および変数・ネットワーク設定アプリケーション１５０）を実行することで実現される。
【００７４】
図１２を参照して、支援装置１００は、ユーザ操作に応答して、Ｉ／Ｏ設定に係るユーザインターフェイス画面３００（図４参照）を表示する（ステップＳ１００）。続いて、支援装置１００は、ユーザによる設定対象の機器の選択に応答して、ユーザインターフェイス画面３００に選択された機器を表示する（図５参照）（ステップＳ１０２）。続いて、支援装置１００は、ユーザによる設定対象の入出力ユニットの選択に応答して、ユーザインターフェイス画面３００に選択された入出力ユニットを表示する（図６参照）（ステップＳ１０４）。すなわち、支援装置１００は、安全コントローラに接続されるいずれかの入出力ユニットの選択に応答して、選択された入出力ユニットの外観と入出力端子とを表現する画像オブジェクト３１２および３１４（第１の画像オブジェクト）を表示する。
【００７５】
続いて、支援装置１００は、いずれかの安全デバイスをいずれかの入出力ユニットへ割り当てるユーザ操作が行われたか否かを判断する（ステップＳ１０６）。いずれかの安全デバイスをいずれかの入出力ユニットへ割り当てるユーザ操作が行われた場合（ステップＳ１０６においてＹＥＳの場合）、支援装置１００は、当該割り当て操作に応じて、ユーザインターフェイス画面３００に割り当てられた安全デバイスを割り当てられた先の端子に対応付けて表示する（図７参照）（ステップＳ１０８）。すなわち、画像オブジェクト３１２および３１４（第１の画像オブジェクト）とともに、選択された入出力ユニットのいずれかの入出力端子に割り当てるように設定されている安全デバイスと当該安全デバイスの回路構成とを表現する画像オブジェクト３２０Ａ（第２の画像オブジェクト）を表示する。
【００７６】
ステップＳ１０８の実行後、または、いずれかの安全デバイスをいずれかの入出力ユニットへ割り当てるユーザ操作が行われていない場合（ステップＳ１０６においてＮＯの場合）、ユーザによるＩ／Ｏ設定の終了操作がなされたか否かを判断する（ステップＳ１１０）。ユーザによるＩ／Ｏ設定の終了操作がなされていなければ（ステップＳ１１０においてＮＯの場合）、ステップＳ１０６以下の処理が繰返される。
【００７７】
一方、ユーザによるＩ／Ｏ設定の終了操作がなされると（ステップＳ１１０においてＹＥＳの場合）、選択された入出力ユニットへの安全デバイスの割り当てに関する設定を保存し（ステップＳ１１２）、選択された入出力ユニットに対するＩ／Ｏ設定の処理は終了する。
【００７８】
＜Ｇ．利点＞
本実施の形態によれば、実際の安全デバイスと入出力ユニットとの間の電気的な接続などを確認しつつ、各入出力ユニットに対する安全デバイスの割り当てを効率的に行うことができる。これによって、ソフトウェア的な内部変数だけではなく、電気的な回路構成についても確認しつつ設計を行うことができる。
【００７９】
また、本実施の形態によれば、いずれの入出力ユニットのいずれの端子にいずれの安全デバイスを割り当てるのかといった操作を直感的に行うことができるので、入出力ユニットへの安全デバイスの割り当てをより効率的に行うことができる。
【００８０】
また、本実施の形態によれば、設計時のユーザインターフェイス画面と同様の内容を含むドキュメントが生成されるので、設計者および実際に作業を行う作業者にとっても、施工時のミスの可能性を低減できる。
【００８１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８２】
１  安全システム、１００  支援装置、１０２  プロセッサ、１０４  メモリ、１０６  入力部、１０８  出力部、１１０  ネットワークインターフェイス、１１２  光学ドライブ、１１４  記録媒体、１１６  ローカル通信インターフェイス、１１８  内部バス、１２０  補助記憶装置、１３０  ＯＳ、１４０  プログラミングアプリケーション、１４１，１５１  エディタ、１４２  コンパイラ、１４３  デバッガ、１４４  モジュール、１４５  シミュレータ、１４６  ソースプログラム、１４７，１５４  変数設定、１５０  変数・ネットワーク設定アプリケーション、１５２  コンフィグレータ、１５３  関連付モジュール、１５５  コネクション設定、２００  安全コントローラ、２０２  主演算ユニット、２０４  入出力ユニット、２１０  ネットワーク、２２０  安全デバイス、４００  ドキュメント。
【図１】
0006458754.tif 000002
【図２】
0006458754.tif 000003
【図３】
0006458754.tif 000004
【図４】
0006458754.tif 000005
【図５】
0006458754.tif 000006
【図６】
0006458754.tif 000007
【図７】
0006458754.tif 000008
【図８】
0006458754.tif 000009
【図９】
0006458754.tif 000010
【図１０】
0006458754.tif 000011
【図１１】
0006458754.tif 000012
【図１２】
0006458754.tif 000013