(57)【要約】      （修正有）【課題】複数のドライブ装置が存在する場合であっても、情報を容易に共有できる制御システムを提供する。【解決手段】サポート装置５００は、ユーザ操作に従って、ネットワーク２に接続されている各ドライブ装置３００に対して、ネットワークを介して共有するべきデータの設定３２０６を各ドライブ装置に応じて生成する設定生成手段１０と、ネットワークに接続されている各ドライブ装置に対して対応する設定を反映する設定反映手段２０とを含む。【選択図】図２
2020057065.tif 000002
【特許請求の範囲】
【請求項１】
制御システムであって、
第１のコントローラと、
セーフティ機能を有するとともに、前記第１のコントローラからの第１の指令に従ってモータを駆動する１または複数のドライブ装置と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワークと、
サポート装置とを備え、前記サポート装置は、ユーザ操作に従って、前記ネットワークに接続されている各ドライブ装置に対して、前記ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成する設定生成手段を含み、
前記ネットワークに接続されている各ドライブ装置に対して対応する設定を反映する設定反映手段を備える、制御システム。
【請求項２】
前記設定生成手段は、ドライブ装置の機種毎に予め定められた設定内容に従って、各ドライブ装置に対する前記ネットワークを介して共有するべきデータの設定を生成する、請求項１に記載の制御システム。
【請求項３】
前記設定生成手段は、別のユーザ操作に従って、各ドライブ装置に対する前記ネットワークを介して共有するべきデータの設定を削除する、請求項１または２に記載の制御システム。
【請求項４】
前記設定生成手段は、前記ドライブ装置から前記第１のコントローラへ、前記ドライブ装置が保持するデータを公開するように設定する、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記ドライブ装置は、前記第２の指令に従って前記セーフティ機能の状態を管理する状態管理部を含み、
前記ドライブ装置から公開されるデータは、前記第２のコントローラからの前記第２の指令を反映する、請求項４に記載の制御システム。
【請求項６】
前記サポート装置は、前記ドライブ装置に対する前記ネットワークを介して共有するべきデータの設定を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、当該公開対象の情報を参照するための参照情報に当該特定した情報の意味を関連付ける、請求項５に記載の制御システム。
【請求項７】
前記設定生成手段は、さらに別のユーザ操作に従って、特定の１つのドライブ装置に対する前記ネットワークを介して共有するべきデータの設定を生成する、請求項１〜６のいずれか１項に記載の制御システム。
【請求項８】
前記サポート装置は、前記ネットワークに接続されているドライブ装置を取得する取得手段をさらに含む、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
前記設定生成手段は、各ドライブ装置に対して生成された前記ネットワークを介して共有するべきデータの設定の内容をユーザに提示する、請求項１〜８のいずれか１項に記載の制御システム。
【請求項１０】
制御システムに接続されるサポート装置であって、
前記制御システムは、
第１のコントローラと、
セーフティ機能を有するとともに、前記第１のコントローラからの第１の指令に従ってモータを駆動する１または複数のドライブ装置と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワークとを備え、
前記サポート装置は、ユーザ操作に従って、前記ネットワークに接続されている各ドライブ装置に対して、前記ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成する設定生成手段を含み、
前記第１のコントローラは、前記ネットワークに接続されている各ドライブ装置に対して対応する設定を反映する設定反映手段を含む、サポート装置。
【請求項１１】
制御システムに接続されるコンピュータで実行されるサポートプログラムであって、
前記制御システムは、
第１のコントローラと、
セーフティ機能を有するとともに、前記第１のコントローラからの第１の指令に従ってモータを駆動する１または複数のドライブ装置と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワークとを備え、
前記サポートプログラムは、前記コンピュータに
ユーザ操作に従って、前記ネットワークに接続されている各ドライブ装置に対して、前記ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成するステップと、
前記ネットワークに接続されている各ドライブ装置に対して対応する設定を反映するステップとを実行させる、サポートプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、ならびに、制御システムに用いられるサポート装置およびサポートプログラムに関する。
【背景技術】
【０００２】
多くの製造現場において、設備や機械を安全に使用するために、セーフティシステムの導入が進みつつある。セーフティシステムは、国際規格に従うセーフティ機能を提供するためのものであり、セーフティコントローラ、セーフティセンサ、セーフティスイッチ、およびセーフティリレーといったセーフティコンポーネントで構成される。
【０００３】
セーフティシステムは、設備や機械を駆動するサーボモータなどのドライブ装置に対してもセーフティ機能を提供することが要求される。例えば、非特許文献１は、可変速電動ドライブシステムに対して提供すべきセーフティ機能を規定する。
【０００４】
より具体的には、非特許文献１は、ＳＴＯ（Safe Torque Off）、ＳＳ１（Safe Stop 1）、ＳＳ２（Safe Stop 2）、ＳＯＳ（Safe Operating Stop）、ＳＢＣ（Safe Brake Control）などの、ドライブ装置に関連するいくつかのセーフティ機能を規定する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】"IEC 61800-5-2:2016 Adjustable speed electrical power drive systems - Part 5-2: Safety requirements - Functional", International Electrotechnical Commission, 2016-04-18
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したようなドライブ装置に関連するセーフティ機能を実装する場合には、ドライブ装置を制御する機能とは独立して、セーフティ機能を実現する機能が設けられる。それぞれの機能は互いに独立して設けられており、通信経路なども互いに独立して形成されていることも多い。一方で、ドライブ装置を制御する場合には、セーフティ機能の状態なども考慮する必要がある。
【０００７】
そのため、セーフティ機能を実現する機能が設けられたドライブ装置から必要な情報を共有する必要がある。
【０００８】
制御システムの装置設計段階などにおいて、デバッグなどの目的で、このようなセーフティ機能に関するデータの共有設定を一時的に無効化したい場合がある。また、ドライブ装置の機種などによって、共有設定が無効化された状態がデフォルトの場合もある。最終的には、すべてのドライブ装置についてセーフティ制御を実現したいが、ドライブ装置毎に一つずつ有効／無効状態を確認して、無効化されたものを有効化するといった手間が生じるという課題がある。
【０００９】
また、一時的なデバッグのために、セーフティ機能に関するデータの共有設定を一斉に無効化したいという場合もある。
【００１０】
本発明は、上述したような課題を解決することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態に従う制御システムは、第１のコントローラと、セーフティ機能を有するとともに、第１のコントローラからの第１の指令に従ってモータを駆動する１または複数のドライブ装置と、ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、第１のコントローラ、ドライブ装置および第２のコントローラの間で、データを互いに共有するためのネットワークと、サポート装置とを含む。サポート装置は、ユーザ操作に従って、ネットワークに接続されている各ドライブ装置に対して、ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成する設定生成手段を含む。制御システムは、ネットワークに接続されている各ドライブ装置に対して対応する設定を反映する設定反映手段を含む。
【００１２】
この実施形態によれば、ドライブ装置がコントローラなどとの間でデータを互いに共有するための設定を一括で行うことができるので、複数のドライブ装置を含む場合であっても、制御システムの立ち上げなどを効率化できる。
【００１３】
好ましくは、設定生成手段は、ドライブ装置の機種毎に予め定められた設定内容に従って、各ドライブ装置に対するネットワークを介して共有するべきデータの設定を生成する。
【００１４】
この実施形態によれば、ドライブ装置毎に保持する情報などが異なる場合であっても、適切な情報の遣り取りを設定できる。
【００１５】
好ましくは、設定生成手段は、別のユーザ操作に従って、各ドライブ装置に対するネットワークを介して共有するべきデータの設定を削除する。
【００１６】
この実施形態によれば、デバッグ時などに、ドライブ装置に対するデータの共有設定を一時的に無効化したいようなニーズがあり、このようなニーズを満たすことができる。
【００１７】
好ましくは、設定生成手段は、ドライブ装置から第１のコントローラへ、ドライブ装置が保持するデータを公開するように設定する。
【００１８】
この実施形態によれば、ドライブ装置が保持しているデータを第１のコントローラと共有できる。
【００１９】
好ましくは、ドライブ装置は、第２の指令に従ってセーフティ機能の状態を管理する状態管理部を含む。ドライブ装置から公開されるデータは、第２のコントローラからの第２の指令を反映する。
【００２０】
この実施形態によれば、第２のコントローラからの指令などに応じたドライブ装置が有しているセーフティ機能の状態を外部から参照でき、これによって、ドライブ装置におけるセーフティ機能の状態に応じた制御を実現できる。
【００２１】
好ましくは、サポート装置は、ドライブ装置に対するネットワークを介して共有するべきデータの設定を参照して、状態管理部により管理される情報のうち公開対象の情報を特定するとともに、当該公開対象の情報を参照するための参照情報に当該特定した情報の意味を関連付ける。
【００２２】
この実施形態によれば、サポート装置において、参照情報を利用して任意のプログラムを作成する場合などに、プログラムの開発効率を高めることができる。
【００２３】
好ましくは、設定生成手段は、さらに別のユーザ操作に従って、特定の１つのドライブ装置に対するネットワークを介して共有するべきデータの設定を生成する。
【００２４】
この実施形態によれば、ドライブ装置に対して個別に設定を行いたいというニーズを満たすことができる。
【００２５】
好ましくは、サポート装置は、ネットワークに接続されているドライブ装置を取得する取得手段をさらに含む。
【００２６】
この実施形態によれば、ネットワークに接続されているすべてのドライブ装置を設定対象とすることができる。
【００２７】
好ましくは、設定生成手段は、各ドライブ装置に対して生成されたネットワークを介して共有するべきデータの設定の内容をユーザに提示する。
【００２８】
この実施形態によれば、ユーザは、各ドライブ装置に対してどのような設定がなされるのかを確認した上で、各設定を反映できる。
【００２９】
本発明の別の一実施形態に従えば、制御システムに接続されるサポート装置が提供される。制御システムは、第１のコントローラと、セーフティ機能を有するとともに、第１のコントローラからの第１の指令に従ってモータを駆動する１または複数のドライブ装置と、ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、第１のコントローラ、ドライブ装置および第２のコントローラの間で、データを互いに共有するためのネットワークとを含む。サポート装置は、ユーザ操作に従って、ネットワークに接続されている各ドライブ装置に対して、ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成する設定生成手段を含む。第１のコントローラは、ネットワークに接続されている各ドライブ装置に対して対応する設定を反映する設定反映手段を含む。
【００３０】
この実施形態によれば、ドライブ装置がコントローラなどとの間でデータを互いに共有するための設定を一括で行うことができるので、複数のドライブ装置を含む場合であっても、制御システムの立ち上げなどを効率化できる。
【００３１】
本発明のさらに別の一実施形態に従えば、制御システムに接続されるコンピュータで実行されるサポートプログラムが提供され。制御システムは、第１のコントローラと、セーフティ機能を有するとともに、第１のコントローラからの第１の指令に従ってモータを駆動する１または複数のドライブ装置と、ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、第１のコントローラ、ドライブ装置および第２のコントローラの間で、データを互いに共有するためのネットワークとを含む。サポートプログラムは、コンピュータに、ユーザ操作に従って、ネットワークに接続されている各ドライブ装置に対して、ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成するステップと、ネットワークに接続されている各ドライブ装置に対して対応する設定を反映するステップとを実行させる。
【００３２】
この実施形態によれば、ドライブ装置がコントローラなどとの間でデータを互いに共有するための設定を一括で行うことができるので、複数のドライブ装置を含む場合であっても、制御システムの立ち上げなどを効率化できる。
【発明の効果】
【００３３】
本発明によれば、複数のドライブ装置が存在する場合であっても、情報を容易に共有できる制御システムを提供できる。
【図面の簡単な説明】
【００３４】
【図１】本実施の形態に係る制御システムの構成例を示す模式図である。
【図２】本実施の形態に係る制御システムが有する機能を示す模式図である。
【図３】本実施の形態に係る制御システムを構成する標準コントローラのハードウェア構成例を示す模式図である。
【図４】本実施の形態に係る制御システムを構成するセーフティコントローラのハードウェア構成例を示す模式図である。
【図５】本実施の形態に係る制御システムを構成するセーフティドライバおよびサーボモータのハードウェア構成例を示す模式図である。
【図６】本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。
【図７】本実施の形態に係る制御システムの機能分担の一例を示す模式図である。
【図８】本実施の形態に係る制御システムのセーフティドライバによるセーフティ機能に係る処理手順の一例を示すシーケンス図である。
【図９】本実施の形態に係る制御システムが提供するモーションセーフティ機能の一例を示す図である。
【図１０】本実施の形態に係る制御システムのセーフティドライバに格納されるモーションセーフティ機能を実現するためのパラメータセットの一例を示す図である。
【図１１】本実施の形態に係る制御システムにおける通信フレームの伝送形態を説明するための図である。
【図１２】本実施の形態に係る制御システムにおけるデータ伝送を説明するための図である。
【図１３】本実施の形態に係る制御システムにおける標準制御およびセーフティ制御の実装例を示す模式図である。
【図１４】本実施の形態に係る制御システムの標準コントローラがモーションセーフティ機能の情報を参照する方法を説明するための図である。
【図１５】本実施の形態に係る制御システムのセーフティドライバが公開するモーションセーフティ制御用オブジェクトの設定例を説明するための図である。
【図１６】本実施の形態に係る制御システムのサポート装置での設定処理を説明するための図である。
【図１７】本実施の形態に係る制御システムのサポート装置が提供するユーザインターフェイス画面の一例を示す模式図である。
【図１８】本実施の形態に係る制御システムにおけるモーションセーフティ制御用オブジェクト３８２を参照した標準制御プログラムの一例を示す図である。
【図１９】本実施の形態に係る制御システムを構成するサポート装置における一括設定の処理を説明するための図である。
【図２０】本実施の形態に係るサポート装置におけるプロセスデータ通信の設定操作の一例を説明するための図である。
【図２１】本実施の形態に係るサポート装置におけるプロセスデータ通信の設定操作の別の一例を説明するための図である。
【図２２】本実施の形態に係るサポート装置が保持する共通設定テンプレートのデータ構造の一例を示す模式図である。
【図２３】本実施の形態に係る制御システムを構成するサポート装置における一括設定を実現するための処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００３５】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００３６】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。
【００３７】
図１は、本実施の形態に係る制御システム１の構成例を示す模式図である。本実施の形態に係る制御システム１は、例えば、ＩＥＣ  ６１５０８などに規定されたセーフティ機能に加えて、上述の非特許文献１に規定されたドライブ装置に対するセーフティ機能を提供する。
【００３８】
図１を参照して、制御システム１は、主として、標準コントローラ１００、ならびに、標準コントローラ１００とフィールドネットワーク２を介して接続されるセーフティコントローラ２００および１または複数のセーフティドライバ３００を含む。セーフティドライバ３００の各々は、セーフティ機能を有するドライブ装置の一例であり、電気的に接続されたサーボモータ４００を駆動する。なお、サーボモータ４００に限らず、任意の種類のアクチュエータ（例えば、三相交流モータ、直流モータ、単相交流モータ、多相交流モータ、リニアサーボなど）を採用できる。また、セーフティドライバ３００の実体は、サーボドライバであってもよいし、汎用的なインバータ装置であってもよい。以下の説明においては、セーフティドライバ３００をドライブ装置の一例として説明する。
【００３９】
標準コントローラ１００は、第１のコントローラに相当し、予め作成された標準制御プログラムに従って、サーボモータ４００を含む制御対象に対する標準制御を実行する。典型的には、標準コントローラ１００は、１または複数のセンサ（図示していない）などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ４００などのアクチュエータに対する指令を周期的に算出する。
【００４０】
セーフティコントローラ２００は、セーフティドライバ３００に対してセーフティ機能の動作に係るセーフティ指令（第２の指令）を送信する。より具体的には、セーフティコントローラ２００は、標準コントローラ１００とは独立して、制御対象に対するセーフティ機能を実現するための監視および制御演算をサイクリック実行する。セーフティコントローラ２００は、任意のセーフティデバイス２４０からの入力信号の受付、および／または、任意のセーフティデバイス２４０への指令の出力が可能になっている。
【００４１】
セーフティドライバ３００は、標準コントローラ１００からの指令（第１の指令）に従って、サーボモータ４００に電力を供給することで、サーボモータ４００を駆動する。セーフティドライバ３００は、サーボモータ４００からのフィードバック信号などに基づいて、サーボモータ４００の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
【００４２】
さらに、セーフティドライバ３００は、サーボモータ４００の駆動に関するセーフティ機能を有している。より具体的には、セーフティドライバ３００は、セーフティ機能に必要な状態情報をセーフティコントローラ２００へ提供するとともに、要求されるセーフティ機能に応じて、サーボモータ４００に供給する電力を調整または遮断する。
【００４３】
サーボモータ４００は、セーフティドライバ３００からの電力を受けて回転するモータを有するとともに、モータの回転軸に結合されたエンコーダからの検出信号をフィードバック信号としてセーフティドライバ３００へ出力する。
【００４４】
本明細書において、「デバイス」は、フィールドネットワーク２などの任意のネットワークを介して、他の装置とデータ通信可能な装置の総称である。本実施の形態に係る制御システム１において、「デバイス」は、標準コントローラ１００、セーフティコントローラ２００およびセーフティドライバ３００を包含する。
【００４５】
本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、ＩＥＣ  ６１５０８などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
【００４６】
本明細書においては、ドライブ装置に特有のセーフティ機能を「モーションセーフティ機能」と総称する。典型的には、「機能」は、上述の非特許文献１に規定されるドライブ装置に関連するセーフティ機能を包含する。例えば、制御軸の位置や速度を監視して安全を確保するための制御を含む。
【００４７】
本明細書において、「プロセスデータ」は、標準制御またはセーフティ制御の少なくともいずれかで用いられるデータの総称である。具体的には、「プロセスデータ」は、制御対象から取得される入力情報、制御対象へ出力される出力情報、各デバイスでの制御演算に使用される内部情報などを包含する。
【００４８】
入力情報は、光電センサなどにより検出されるＯＮ／ＯＦＦ信号（デジタル入力）、温度センサなどにより検出される物理信号（アナログ入力）、ならびに、パルスエンコーダなどが発生するパルス信号（パルス入力）などを包含する。出力情報は、リレーなどを駆動するためのＯＮ／ＯＦＦ（デジタル出力）、サーボモータの回転速度などを指示する速度指令（アナログ出力）、ならびに、ステッピングモータの移動量などを指示する変位指令（パルス出力）などを包含する。内部情報は、任意のプロセスデータを入力とする制御演算などによって決定される状態情報などを含む。
【００４９】
基本的には、「プロセスデータ」の値は、制御周期または通信周期毎に更新される。ここで、更新とは、最新の値を反映することを意味し、更新の前後において値が変化しない場合も含み得る。
【００５０】
図２は、本実施の形態に係る制御システム１が有する機能を示す模式図である。図２を参照して、セーフティドライバ３００の各々は、セーフティ機能を有するとともに、標準コントローラ１００からの指令（第１の指令）に従って、サーボモータ４００を駆動する。また、セーフティドライバ３００の各々には、セーフティコントローラ２００からセーフティ機能の動作に係るセーフティ指令（第２の指令）が与えられる。このセーフティ指令は、セーフティコントローラ２００とセーフティドライバ３００との間にフィールドネットワーク２を利用して形成される論理コネクション４を介して送信される。
【００５１】
フィールドネットワーク２は、標準コントローラ１００、１または複数のセーフティドライバ３００、および、セーフティコントローラ２００の間で、データを互いに共有するために用いられる。典型的には、フィールドネットワーク２を通信フレームがサイクリックに伝送されることで、プロセスデータ通信が実現される。このプロセスデータ通信を用いることで、データが共有される。
【００５２】
セーフティドライバ３００の各々は、予め格納される設定情報３２０６に従って、他のデバイスに公開する情報の更新、および、他のデバイスから送信された情報の受信などのデータ共有処理を実行する。
【００５３】
サポート装置５００は、典型的には、標準コントローラ１００を介して、制御システム１に接続される。サポート装置５００は、制御システム１に含まれる各デバイスに対する設定およびプログラムの開発などが可能である。
【００５４】
本実施の形態においては、サポート装置５００は、設定生成モジュール１０を有している。設定生成モジュール１０は、典型的には、サポート装置５００のプロセッサがサポートプログラムを実行することで実現されてもよい（詳細については、後述する）。
【００５５】
設定生成モジュール１０は、ユーザ操作に従って、フィールドネットワーク２に接続されている各セーフティドライバ３００に対して、フィールドネットワーク２を介して共有するべきデータの設定を各セーフティドライバ３００に応じて生成する。このデータの設定は、設定情報３２０６に含まれることになる。設定生成モジュール１０は、セーフティドライバ３００を含むフィールドネットワーク２のネットワーク構成および各デバイスの設定を含む。
【００５６】
フィールドネットワーク２によるプロセスデータ通信は、標準コントローラ１００が通信マスタとして機能することで実現される。通信マスタとして機能する標準コントローラ１００は、設定反映モジュール２０を有している。サポート装置５００の設定生成モジュール１０により生成された設定は、標準コントローラ１００へ転送される。標準コントローラ１００の設定反映モジュール２０は、フィールドネットワーク２がネットワークの状態遷移中に、各デバイスに対して設定を反映する。すなわち、設定反映モジュール２０は、フィールドネットワーク２に接続されている各セーフティドライバ３００に対して対応する設定を反映する。
【００５７】
なお、設定反映モジュール２０をサポート装置５００に配置してもよい。この場合には、サポート装置５００の設定反映モジュール２０がセーフティドライバ３００に対して設定を書き込むことになる。
【００５８】
このような構成を採用することで、フィールドネットワーク２に複数のセーフティドライバ３００が接続されている場合であっても、フィールドネットワーク２を介したデータ共有の設定を一括して行うことができる。そのため、設定の作業効率を向上させることができる。
【００５９】
＜Ｂ．制御システム１に含まれるデバイスの構成例＞
次に制御システム１に含まれるデバイスの構成例について説明する。
【００６０】
（ｂ１：標準コントローラ１００）
図３は、本実施の形態に係る制御システム１を構成する標準コントローラ１００のハードウェア構成例を示す模式図である。図３を参照して、標準コントローラ１００は、プロセッサ１０２と、メインメモリ１０４と、ストレージ１１０と、上位ネットワークコントローラ１０６と、フィールドネットワークコントローラ１０８と、ＵＳＢ（Universal Serial Bus）コントローラ１２０と、メモリカードインターフェイス１１２と、ローカルバスコントローラ１１６とを含む。これらのコンポーネントは、プロセッサバス１１８を介して接続されている。
【００６１】
プロセッサ１０２は、主として、標準制御に係る制御演算を実行する演算処理部に相当し、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。具体的には、プロセッサ１０２は、ストレージ１１０に格納されたプログラム（一例として、システムプログラム１１０２および標準制御プログラム１１０４）を読出して、メインメモリ１０４に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
【００６２】
メインメモリ１０４は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性記憶装置などで構成される。ストレージ１１０は、例えば、ＳＳＤ（Solid State Drive）やＨＤＤ（Hard Disk Drive）などの不揮発性記憶装置などで構成される。
【００６３】
ストレージ１１０には、基本的な機能を実現するためのシステムプログラム１１０２に加えて、制御対象に応じて作成された標準制御プログラム１１０４が格納される。さらに、ストレージ１１０には、後述するような変数などを設定するための設定情報１１０６が格納される。
【００６４】
上位ネットワークコントローラ１０６は、上位ネットワークを介して、任意の報処理装置との間でデータを遣り取りする。
【００６５】
フィールドネットワークコントローラ１０８は、フィールドネットワーク２を介して、セーフティコントローラ２００およびセーフティドライバ３００を含む任意のデバイスとの間でデータを遣り取りする。図３に示す制御システム１においては、標準コントローラ１００のフィールドネットワークコントローラ１０８は、フィールドネットワーク２の通信マスタとして機能する。
【００６６】
ＵＳＢコントローラ１２０は、ＵＳＢ接続を介して、サポート装置５００などとの間でデータを遣り取りする。
【００６７】
メモリカードインターフェイス１１２は、着脱可能な記録媒体の一例であるメモリカード１１４を受け付ける。メモリカードインターフェイス１１２は、メモリカード１１４に対してデータを書き込み、メモリカード１１４から各種データ（ログやトレースデータなど）を読み出すことが可能になっている。
【００６８】
ローカルバスコントローラ１１６は、ローカルバスを介して、標準コントローラ１００に接続される任意のユニットとの間でデータを遣り取りする。
【００６９】
図３には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、標準コントローラ１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準コントローラ１００に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【００７０】
（ｂ２：セーフティコントローラ２００）
図４は、本実施の形態に係る制御システム１を構成するセーフティコントローラ２００のハードウェア構成例を示す模式図である。図４を参照して、セーフティコントローラ２００は、プロセッサ２０２と、メインメモリ２０４と、ストレージ２１０と、フィールドネットワークコントローラ２０８と、ＵＳＢコントローラ２２０と、セーフティローカルバスコントローラ２１６とを含む。これらのコンポーネントは、プロセッサバス２１８を介して接続されている。
【００７１】
プロセッサ２０２は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ２０２は、ストレージ２１０に格納されたプログラム（一例として、システムプログラム２１０２およびセーフティプログラム２１０４）を読出して、メインメモリ２０４に展開して実行することで、必要なセーフティ機能を提供するための制御演算、および、後述するような各種処理を実現する。
【００７２】
メインメモリ２０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ２１０は、例えば、ＳＳＤやＨＤＤなどの不揮発性記憶装置などで構成される。
【００７３】
ストレージ２１０には、基本的な機能を実現するためのシステムプログラム２１０２に加えて、要求されるセーフティ機能に応じた作成されたセーフティプログラム２１０４が格納される。さらに、ストレージ２１０には、後述するような変数などを設定するための設定情報２１０６が格納される。
【００７４】
フィールドネットワークコントローラ２０８は、フィールドネットワーク２を介して、標準コントローラ１００およびセーフティドライバ３００を含む任意のデバイスとの間でデータを遣り取りする。図３に示す制御システム１においては、セーフティコントローラ２００のフィールドネットワークコントローラ２０８は、フィールドネットワーク２の通信スレーブとして機能する。
【００７５】
ＵＳＢコントローラ２２０は、ＵＳＢ接続を介して、サポート装置５００などの情報処理装置との間でデータを遣り取りする。
【００７６】
セーフティローカルバスコントローラ２１６は、セーフティローカルバスを介して、セーフティコントローラ２００に接続される任意のセーフティユニットとの間でデータを遣り取りする。図４には、セーフティユニットの一例として、セーフティＩＯユニット２３０を示す。
【００７７】
セーフティＩＯユニット２３０は、任意のセーフティデバイス２４０との間で入出力信号を遣り取りする。より具体的には、セーフティＩＯユニット２３０は、セーフティセンサやセーフティスイッチなどのセーフティデバイス２４０からの入力信号を受け付ける。あるいは、セーフティＩＯユニット２３０は、セーフティリレーなどのセーフティデバイス２４０へ指令を出力する。
【００７８】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、セーフティコントローラ２００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。
【００７９】
（ｂ３：セーフティドライバ３００およびサーボモータ４００）
図５は、本実施の形態に係る制御システム１を構成するセーフティドライバ３００およびサーボモータ４００のハードウェア構成例を示す模式図である。図５を参照して、セーフティドライバ３００は、フィールドネットワークコントローラ３０２と、制御部３１０と、ドライブ回路３３０と、フィードバック受信回路３３２とを含む。
【００８０】
フィールドネットワークコントローラ３０２は、フィールドネットワーク２を介して、標準コントローラ１００およびセーフティコントローラ２００を含む任意のデバイスとの間でデータを遣り取りする。図５に示す制御システム１においては、セーフティドライバ３００のフィールドネットワークコントローラ３０２は、フィールドネットワーク２の通信スレーブとして機能する。
【００８１】
制御部３１０は、セーフティドライバ３００を動作させるために必要な演算処理を実行する。一例として、制御部３１０は、プロセッサ３１２，３１４と、メインメモリ３１６と、ストレージ３２０とを含む。
【００８２】
プロセッサ３１２は、サーボモータ４００を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ３１４は、サーボモータ４００に係るセーフティ機能を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ３１２，３１４は、いずれもＣＰＵなどで構成される。
【００８３】
メインメモリ３１６は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ３２０は、例えば、ＳＳＤやＨＤＤなどの不揮発性記憶装置などで構成される。
【００８４】
ストレージ３２０には、サーボ制御３５０を実現するためのサーボ制御プログラム３２０２と、モーションセーフティ機能３６０を実現するためのモーションセーフティプログラム３２０４と、他のデバイスに公開される変数などを設定するための設定情報３２０６とが格納される。
【００８５】
図５には、２つのプロセッサ３１２，３１４がそれぞれ異なる目的の制御演算を実行することで信頼性を高める構成を例示するが、これに限らず、要求されるセーフティ機能を実現できればどのような構成を採用してもよい。例えば、単一のプロセッサに複数のコアが含まれるような場合には、プロセッサ３１２，３１４にそれぞれ対応する制御演算を実行するようにしてもよい。また、図５には、プロセッサ３１２，３１４がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００８６】
ドライブ回路３３０は、コンバータ回路およびインバータ回路などを含み、制御部３１０からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ４００へ供給する。
【００８７】
フィードバック受信回路３３２は、サーボモータ４００からのフィードバック信号を受信して、その受信結果を制御部３１０へ出力する。
【００８８】
サーボモータ４００は、典型的には、三相交流モータ４０２および三相交流モータ４０２の回転軸に取り付けられたエンコーダ４０４を含む。
【００８９】
三相交流モータ４０２は、セーフティドライバ３００から供給される電力を受けて回転力を発生するアクチュエータである。図５には、一例として、三相交流モータを例示するが、これに限らず、直流モータであってもよいし、単相交流モータあるいは多相交流モータであってもよい。さらに、リニアサーボのような直線に沿って駆動力を発生するアクチュエータを採用してもよい。
【００９０】
エンコーダ４０４は、三相交流モータ４０２の回転数に応じたフィードバック信号（典型的には、回転数に応じた数のパルス信号）を出力する。
【００９１】
（ｂ４：サポート装置５００）
図６は、本実施の形態に係る制御システム１を構成するサポート装置５００のハードウェア構成例を示す模式図である。サポート装置５００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いて実現される。
【００９２】
図６を参照して、サポート装置５００は、プロセッサ５０２と、メインメモリ５０４と、入力部５０６と、出力部５０８と、ストレージ５１０と、光学ドライブ５１２と、ＵＳＢコントローラ５２０とを含む。これらのコンポーネントは、プロセッサバス５１８を介して接続されている。
【００９３】
プロセッサ５０２は、ＣＰＵやＧＰＵなどで構成され、ストレージ５１０に格納されたプログラム（一例として、ＯＳ５１０２およびサポートプログラム５１０４）を読出して、メインメモリ５０４に展開して実行することで、後述するような各種処理を実現する。
【００９４】
メインメモリ５０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ５１０は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００９５】
ストレージ５１０には、基本的な機能を実現するためのＯＳ５１０２に加えて、サポート装置５００としての機能を提供するためのサポートプログラム５１０４が格納される。すなわち、サポートプログラム５１０４は、制御システム１に接続されるコンピュータにより実行されることで、本実施の形態に係るサポート装置５００を実現する。
【００９６】
さらに、ストレージ５１０には、サポートプログラム５１０４が実行されることで提供される開発環境においてユーザにより作成されるプロジェクトデータ５１０６が格納される。
【００９７】
本実施の形態において、サポート装置５００は、制御システム１に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な開発環境を提供する。プロジェクトデータ５１０６は、このような統合的な開発環境によって生成されるデータを含む。典型的には、プロジェクトデータ５１０６は、標準制御ソースプログラム５１０８と、標準コントローラ設定情報５１１０と、セーフティソースプログラム５１１２と、セーフティコントローラ設定情報５１１４と、セーフティドライバ設定情報５１１６とを含む。
【００９８】
標準制御ソースプログラム５１０８は、オブジェクトコードに変換された上で、標準コントローラ１００へ送信され、標準制御プログラム１１０４（図３参照）として格納される。同様に、標準コントローラ設定情報５１１０についても標準コントローラ１００へ送信され、設定情報１１０６（図３参照）として格納される。
【００９９】
セーフティソースプログラム５１１２は、オブジェクトコードに変換された上で、セーフティコントローラ２００へ送信され、セーフティプログラム２１０４（図３参照）として格納される。同様に、セーフティコントローラ設定情報５１１４についてもセーフティコントローラ２００へ送信され、設定情報２１０６（図４参照）として格納される。
【０１００】
セーフティドライバ設定情報５１１６は、セーフティドライバ３００へ送信され、設定情報３２０６（図５参照）として格納される。
【０１０１】
入力部５０６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部５０８は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ５０２からの処理結果などを出力する。
【０１０２】
ＵＳＢコントローラ５２０は、ＵＳＢ接続を介して、標準コントローラ１００などとの間のデータを遣り取りする。
【０１０３】
サポート装置５００は、光学ドライブ５１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体５１４（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記録媒体）から、その中に格納されたプログラムが読み取られてストレージ５１０などにインストールされる。
【０１０４】
サポート装置５００で実行されるサポートプログラム５１０４などは、コンピュータ読取可能な記録媒体５１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置５００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【０１０５】
図６には、プロセッサ５０２がプログラムを実行することで、サポート装置５００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【０１０６】
なお、制御システム１が稼動中において、サポート装置５００は、標準コントローラ１００から取り外されていてもよい。
【０１０７】
＜Ｃ．制御システム１の機能分担＞
次に、制御システム１における機能分担の一例について説明する。図７は、本実施の形態に係る制御システム１の機能分担の一例を示す模式図である。
【０１０８】
図７を参照して、標準コントローラ１００が実行する標準制御１５０に関して、セーフティドライバ３００はサーボ制御３５０を実行する。標準制御１５０は、制御対象に予め設定されたユーザプログラムに従って、サーボモータ４００を駆動するための指令を周期的に算出する処理を含む。また、サーボ制御３５０は、標準制御１５０により周期的に算出される指令に従ってサーボモータ４００を駆動するための制御、および、サーボモータ４００の動作状態を示す状態値を取得して出力する処理を含む。サーボ制御３５０は、セーフティドライバ３００のプロセッサ３１２（図５参照）が担当する。
【０１０９】
一方、セーフティコントローラ２００が提供するセーフティ機能２５０に対応して、セーフティドライバ３００はモーションセーフティ機能３６０を提供する。モーションセーフティ機能３６０は、セーフティドライバ３００のプロセッサ３１４（図５参照）が担当する。
【０１１０】
セーフティ機能２５０は、標準コントローラ１００が実行する標準制御１５０が保持する状態値、セーフティデバイス２４０からの信号によって示される状態値、および、セーフティドライバ３００が保持する状態値などに基づいて、予め定められた条件が成立すると、予め指定されているセーフティ機能を有効化する。
【０１１１】
予め指定されているセーフティ機能を有効化する処理は、例えば、セーフティドライバ３００に対するセーフティ指令の出力、あるいは、セーフティデバイス２４０に対してセーフティ指令の出力（例えば、特定の装置への電力供給に係るセーフティリレーを遮断する）などを含む。
【０１１２】
セーフティドライバ３００は、セーフティコントローラ２００からのセーフティ指令に応答して、指定されたモーションセーフティ機能３６０を提供する。指定されたモーションセーフティ機能３６０の種類に応じて、サーボ制御３５０によるサーボモータ４００の制御に介入して、サーボモータ４００への電力供給を遮断する処理、あるいは、サーボ制御３５０によるサーボモータ４００の制御の状態値が予め定められた制限範囲内に収まっているか否かを監視する処理などが実行される。
【０１１３】
図８は、本実施の形態に係る制御システム１のセーフティドライバ３００によるセーフティ機能に係る処理手順の一例を示すシーケンス図である。図８を参照して、標準コントローラ１００の標準制御１５０により周期的に指令が算出されて、セーフティドライバ３００（サーボ制御３５０）に出力される（シーケンスＳＱ２）。セーフティドライバ３００のサーボ制御３５０は、標準制御１５０からの指令に従って、サーボモータ４００を駆動する（シーケンスＳＱ４）。
【０１１４】
あるタイミングにおいて、セーフティデバイス２４０（例えば、セーフティセンサ）からのセーフティイベントが発生すると（シーケンスＳＱ６）、セーフティコントローラ２００は、セーフティドライバ３００（モーションセーフティ機能３６０）にセーフティ指令を出力する（シーケンスＳＱ８）。このセーフティ指令に応答して、セーフティドライバ３００のモーションセーフティ機能３６０は、指定されたセーフティ機能を有効化する（シーケンスＳＱ１０）。
【０１１５】
セーフティ機能の有効化に応答して、標準コントローラ１００の標準制御１５０からは、当該有効化されたセーフティ機能に応じた指令が算出および出力されるようになる（シーケンスＳＱ１２）。一方、セーフティドライバ３００（モーションセーフティ機能３６０）は、サーボモータ４００の動作状態が予め定められた制限範囲内に収まっているか否かを監視する。サーボモータ４００の動作状態が予め定められた制限範囲内に収まっていないと判断されると、あるいは、予め定められた停止時間が到来すると、セーフティドライバ３００（モーションセーフティ機能３６０）は、サーボモータ４００への電力供給を遮断する（シーケンスＳＱ１４）。
【０１１６】
このように、セーフティドライバ３００は、標準コントローラ１００（標準制御１５０）からの指令に従ってサーボモータ４００を駆動できるとともに、セーフティ機能を有効化するための指令に応じて、セーフティコントローラ２００（セーフティ機能２５０）に対するモーションセーフティ機能を実現することができる。
【０１１７】
＜Ｄ．制御システム１のモーションセーフティ機能＞
次に、制御システム１が提供するモーションセーフティ機能の一例について説明する。
【０１１８】
図９は、本実施の形態に係る制御システム１が提供するモーションセーフティ機能の一例を示す図である。図９（Ａ）には、ＳＴＯ（Safe Torque Off）に対応するサーボモータ４００の挙動の一例を示し、図９（Ｂ）には、ＳＳ１（Safe Stop 1）に対応するサーボモータ４００の挙動の一例を示す。
【０１１９】
図９（Ａ）を参照して、サーボモータ４００がある回転速度で運転している状態において、時刻ｔ１でセーフティ指令（ＳＴＯ）が与えられると、セーフティドライバ３００は、サーボモータ４００への電力供給を遮断して、サーボモータ４００で発生するトルクをゼロにする。この結果、サーボモータ４００は惰性で回転した後に停止する。なお、サーボモータ４００にブレーキが装着されている場合には、サーボモータ４００は即座に停止することもできる。
【０１２０】
図９（Ｂ）を参照して、サーボモータ４００がある回転速度で運転している状態において、時刻ｔ１でセーフティ指令（ＳＳ１）が与えられると、セーフティドライバ３００は、予め定められた加速度で回転速度を低減する。このとき、セーフティドライバ３００は、サーボモータ４００からの電力回収（すなわち、回生）などを実行してもよい。そして、時刻ｔ２においてサーボモータ４００の回転速度がゼロになると、セーフティドライバ３００は、サーボモータ４００への電力供給を遮断して、サーボモータ４００で発生するトルクをゼロにする。時刻ｔ２以降においては、図９（Ａ）に示すＳＴＯと同様の状態になる。
【０１２１】
図９（Ａ）に示されるＳＴＯおよび図９（Ｂ）に示されるＳＳ１のうち、サーボモータ４００と機械的に連結されている設備の特性などに応じて、より安全に停止できるセーフティ機能が適宜選択される。
【０１２２】
上述し非特許文献１は、図９（Ａ）および図９（Ｂ）に示すモーションセーフティ機能だけではなく、複数のモーションセーフティ機能を規定する。各モーションセーフティ機能を実現するためには、サーボモータ４００の挙動を規定するための設定が必要となる。
【０１２３】
図１０は、本実施の形態に係る制御システム１のセーフティドライバ３００に格納されるモーションセーフティ機能を実現するためのパラメータセット３９０の一例を示す図である。図１０を参照して、パラメータセット３９０は、セーフティドライバ３００が提供するモーションセーフティ機能の各々に対応する１または複数の設定値（パラメータ）を含む。
【０１２４】
例えば、モーションセーフティ機能に対応する設定値としては、速度範囲、加速度範囲、停止時間などが含まれ得る。
【０１２５】
典型的には、ユーザがサポート装置５００を操作してセーフティドライバ３００におけるモーショセーフティ機能における挙動を決定し、その決定された挙動に対応するパラメータセット３９０がセーフティドライバ３００へ転送される。セーフティドライバ３００は、サポート装置５００からのパラメータセット３９０を予め格納している。
【０１２６】
＜Ｅ．制御システム１のデータ通信＞
次に、制御システム１におけるデータ通信の一例について説明する。
【０１２７】
図１１は、本実施の形態に係る制御システム１における通信フレームの伝送形態を説明するための図である。図１１を参照して、制御システム１のフィールドネットワーク２においては、プロセスデータ通信が行われており、標準コントローラ１００を通信マスタとして、通信フレーム６００がサイクリック（例えば、数〜１０数ｍｓｅｃ）にデバイス間を一巡する。通信フレーム６００が伝送する周期をプロセスデータ通信周期とも称する。
【０１２８】
本実施の形態においては、このような通信フレーム６００をサイクリックに伝送するフィールドネットワーク２のプロトコルの一例として、ＥｔｈｅｒＣＡＴ（登録商標）を採用する。
【０１２９】
通信フレーム６００には、デバイス毎にデータ領域が割り当てられている。各デバイスは、周期的に伝送される通信フレーム６００を受信すると、当該受信した通信フレーム６００内の自デバイスに割り当てられたデータ領域に予め設定されたデータの現在値を書き込む。そして、現在値の書き込み後の通信フレーム６００を次段のデバイスに送出する。各デバイスにより書き込まれたデータの現在値は他のデバイスから参照可能になっている。
【０１３０】
各デバイスが通信フレーム６００に予め設定されたデータの現在値を書き込むことで、フィールドネットワーク２を一巡して通信マスタ（標準コントローラ１００）に戻る通信フレーム６００には、各デバイスにより収集された最新の値が含まれることになる。
【０１３１】
本実施の形態においては、このようなプロセスデータ通信を利用して、セーフティコントローラ２００とセーフティドライバ３００の各々との間で論理コネクション４が形成される（図１１参照）。この論理コネクション４は、セーフティ機能を実現するためのデータの遣り取りに用いられる。
【０１３２】
上述したように、フィールドネットワーク２のプロトコルとしてＥｔｈｅｒＣＡＴを採用する場合には、ＦＳｏＥ（FailSafe over EtherCAT）と称されるプロトコルを用いて論理コネクション４を形成できる。
【０１３３】
より具体的には、論理コネクション４を形成するために遣り取りされるコマンドを格納するための専用のデータ領域が通信フレーム６００に割り当てられる。当該専用のデータ領域を用いて、デバイス間でコマンドを遣り取りすることで、論理コネクション４を形成する。
【０１３４】
図１２は、本実施の形態に係る制御システム１におけるデータ伝送を説明するための図である。図１２を参照して、通信フレーム６００には、プロセスデータ通信に用いられるデータ領域６１０に加えて、論理コネクション４に用いられるデータ領域６２０が規定されている。
【０１３５】
データ領域６１０は、標準コントローラ１００に割り当てられたデータ領域６１１と、セーフティドライバ３００に割り当てられたデータ領域６１２，６１３，６１４と、セーフティコントローラ２００に割り当てられたデータ領域６１５とを含む。
【０１３６】
データ領域６１２，６１３，６１４，６１５は、各デバイスから他のデバイスへデータを公開するためのＩＮデータ領域６１２１，６１３１，６１４１，６１５１と、各デバイスでの指令を受け付けるためのＯＵＴデータ領域６１２２，６１３２，６１４２，６１５２とを含む。
【０１３７】
ＩＮデータ領域６１２１，６１３１，６１４１，６１５１は、各デバイスが管理するプロセスデータのうち、他のデバイスへ公開するデータが書き込まれるデータ領域である。各デバイスが通信フレーム６００内の自デバイスに割り当てられたＩＮデータ領域に必要なデータを書き込むことで、他のデバイスは当該書き込まれたデータを参照できるようになる。通常、標準コントローラ１００は、通信周期毎に、各デバイスにより書き込まれたデータを参照して標準制御に係る制御演算を実行することで、各デバイスに対する指令を算出する。
【０１３８】
ＯＵＴデータ領域６１２２，６１３２，６１４２，６１５２には、各デバイスに与えられる指令が書き込まれる。各デバイスは、通信フレーム６００内の自デバイスに割り当てられたＯＵＴデータ領域に格納されているデータを参照することで、制御対象への出力信号を生成し、あるいは、内部の制御状態を更新する。基本的には、各デバイスのＯＵＴデータ領域には、標準コントローラ１００によってデータが書き込まれる。
【０１３９】
プロセスデータ通信に用いられるデータ領域６１０に対する、各デバイスのデータの書き込みおよび読出し動作は、各デバイスに割り当てられるデータ領域に応じて、予め設定されている。このようなデータの書き込みおよび読出しの設定操作は、サポート装置５００上でユーザによって行われる。そして、サポート装置５００から各デバイスに設定情報が送信される。
【０１４０】
一方、論理コネクション４に用いられるデータ領域６２０は、セーフティドライバ３００に割り当てられたデータ領域６２１，６２２，６２３と、セーフティコントローラ２００に割り当てられたデータ領域６２４とを含む。各デバイスは、データ領域６２１，６２２，６２３，６２４に対して、論理コネクション４に係る通信フレーム（以下、「セーフティ通信フレーム６３０」とも称す。）の書き込みおよび読出しを行う。通信マスタである標準コントローラ１００は、データ領域６２１，６２２，６２３，６２４の間で、格納されているセーフティ通信フレーム６３０を入れ替える。このような通信マスタによる折り返し処理によって、セーフティ通信フレーム６３０は、一種のピアツーピアの通信が可能となる。
【０１４１】
図１２には、一例として、セーフティコントローラ２００から１番目のセーフティドライバ３００へセーフティ通信フレーム６３０を送信する場合の処理を示す。図１２に示すようなセーフティ通信フレーム６３０は、セーフティコントローラ２００が特定のセーフティドライバ３００に対して特定のモーションセーフティ機能を有効化する場合などに送信される。
【０１４２】
まず、セーフティコントローラ２００は、送信先のセーフティドライバ３００へ送信すべきセーフティ通信フレーム６３０を生成して、通信フレーム６００のデータ領域６２４に書き込む。その後、セーフティ通信フレーム６３０が書き込まれた通信フレーム６００が通信マスタである標準コントローラ１００へ到着すると、標準コントローラ１００は、データ領域６２４に格納されているセーフティ通信フレーム６３０をデータ領域６２１に複製する。データ領域６２１にセーフティ通信フレーム６３０が複製された通信フレーム６００が送信先のセーフティドライバ３００に到着すると、送信先のセーフティドライバ３００は、データ領域６２１を参照して、セーフティ通信フレーム６３０を受信する。
【０１４３】
また、セーフティドライバ３００からセーフティコントローラ２００へのセーフティ通信フレーム６３０は、上述とは反対の通信経路で送信される。
【０１４４】
このように、本実施の形態に係る制御システム１においては、通信フレーム６００内のデータ領域６２０を用いて、論理コネクション４が形成される。
【０１４５】
＜Ｆ．標準制御およびセーフティ制御の実装例＞
上述したように、本実施の形態に係る制御システム１においては、プロセスデータ通信および論理コネクション４によるセーフティ通信が可能になっている。次に、それぞれの通信を利用した標準制御およびセーフティ制御の実装例について説明する。
【０１４６】
図１３は、本実施の形態に係る制御システム１における標準制御およびセーフティ制御の実装例を示す模式図である。説明の便宜上、図１３には、標準コントローラ１００およびセーフティコントローラ２００に加えて、１つのセーフティドライバ３００からなる制御システム１の例を示す。
【０１４７】
図１３を参照して、標準コントローラ１００は、主たる機能構成として、プロセスデータ通信レイヤ１７０およびＩＯ管理モジュール１７２を有している。セーフティコントローラ２００は、主たる機能構成として、プロセスデータ通信レイヤ２７０と、ＩＯ管理モジュール２７２と、論理コネクションレイヤ２７６と、セーフティ機能状態管理エンジン２７８とを含む。セーフティドライバ３００は、主たる機能構成として、プロセスデータ通信レイヤ３７０と、論理コネクションレイヤ３７６と、モーションセーフティ機能状態管理エンジン３７８と、サーボ制御実行エンジン３５２と、モーションセーフティ機能実行エンジン３６２とを含む。
【０１４８】
プロセスデータ通信レイヤ１７０、プロセスデータ通信レイヤ２７０およびプロセスデータ通信レイヤ３７０は、フィールドネットワーク２上の通信フレーム６００の転送を担当する。プロセスデータ通信レイヤ１７０、プロセスデータ通信レイヤ２７０およびプロセスデータ通信レイヤ３７０の各々は、到着した通信フレーム６００に含まれるデータに基づいて、各デバイスのプロセスデータ１７４，２７４，３７４を更新する。また、プロセスデータ通信レイヤ１７０、プロセスデータ通信レイヤ２７０およびプロセスデータ通信レイヤ３７０の各々は、予め指定されたプロセスデータを予め割り当てられているデータ領域に書き込んだ上で、通信フレーム６００を再生成して次段のデバイスに送出する。プロセスデータ通信によりプロセスデータの少なくとも一部は共有されることになる。
【０１４９】
セーフティコントローラ２００の論理コネクションレイヤ２７６およびセーフティドライバ３００の論理コネクションレイヤ３７６は、セーフティ通信フレーム６３０の遣り取りを担当する。すなわち、論理コネクションレイヤ２７６および論理コネクションレイヤ３７６は、論理コネクションを形成するためのプロトコル（本実施の形態においては、ＦＳｏＥ）に従って、通信フレーム６００に含まれるセーフティ通信フレーム６３０を用いて、コマンドおよびデータを遣り取りする。
【０１５０】
標準コントローラ１００において、ＩＯ管理モジュール１７２は、制御対象との間で信号を遣り取りすることで、プロセスデータ１７４を更新する。標準コントローラ１００において実行される標準制御プログラム１１０４は、プロセスデータ１７４を参照して制御演算を実行するとともに、制御演算の実行結果でプロセスデータ１７４を更新する。
【０１５１】
セーフティコントローラ２００において、ＩＯ管理モジュール２７２は、セーフティデバイス２４０との間で信号を遣り取りすることで、プロセスデータ２７４を更新する。図１３においては、プロセスデータ２７４とまとめて表現しているが、プロセスデータ通信により更新されるプロセスデータ（標準制御用）と、セーフティデバイス２４０との遣り取りにより更新されるプロセスデータ（セーフティ制御用）とを異なるレベルで管理するようにしてもよい。
【０１５２】
セーフティコントローラ２００において実行されるセーフティプログラム２１０４は、プロセスデータ２７４およびセーフティ機能状態管理エンジン２７８を参照して制御演算を実行するとともに、制御演算の実行結果に基づいて、プロセスデータ２７４を更新し、あるいは、セーフティ機能状態管理エンジン２７８に対して内部的な指令を出力する。
【０１５３】
セーフティ機能状態管理エンジン２７８は、セーフティプログラム２１０４による制御演算の実行結果に応じて、特定のセーフティドライバ３００に対して特定のモーションセーフティ機能を有効化するための指令を生成する。論理コネクションレイヤ２７６は、セーフティ機能状態管理エンジン２７８からの指令に応答して、対象のセーフティドライバ３００の論理コネクションレイヤ３７６との間で、セーフティ通信フレーム６３０を用いて必要なコマンドおよび情報を遣り取りする。
【０１５４】
セーフティドライバ３００において、サーボ制御実行エンジン３５２は、プロセスデータ３７４およびフィードバック受信回路３３２を介して取得されるフィードバック信号の情報を参照してサーボ制御に係る制御演算を実行する。サーボ制御実行エンジン３５２は、制御演算の実行結果に基づいて、プロセスデータ３７４を更新するとともに、ドライブ回路３３０に内部的な指令を出力する。ドライブ回路３３０は、サーボ制御実行エンジン３５２からの指令に従って、サーボモータ４００を駆動する。
【０１５５】
モーションセーフティ機能状態管理エンジン３７８は、セーフティコントローラ２００からのセーフティ指令に従ってモーションセーフティ機能の状態を管理する状態管理部に相当する。モーションセーフティ機能状態管理エンジン３７８は、セーフティコントローラ２００からの指令に応答して、モーションセーフティ機能実行エンジン３６２に対して内部的な指令を出力する。
【０１５６】
モーションセーフティ機能実行エンジン３６２は、指定されたモーションセーフティ機能を実行する。
【０１５７】
論理コネクションレイヤ３７６は、モーションセーフティ機能状態管理エンジン３７８からの指令に応答して、セーフティコントローラ２００の論理コネクションレイヤ２７６との間で、セーフティ通信フレーム６３０を用いて必要なコマンドおよび情報を遣り取りする。
【０１５８】
＜Ｇ．セーフティ状態情報の公開＞
上述したように、本実施の形態に係る制御システム１においては、セーフティコントローラ２００とセーフティドライバ３００との間の論理コネクション４を介して、モーションセーフティ機能の有効化が指示される。標準コントローラ１００は、セーフティコントローラ２００とセーフティドライバ３００との間の遣り取りを直接参照できない。そのため、通信フレーム６００のプロセスデータ通信に用いられるデータ領域６１０を用いて関係するデータが公開されない限り、標準コントローラ１００は、モーションセーフティ機能の有効化の有無、および、モーションセーフティ機能が有効化されたタイミングなどを検出できない。以下では、標準コントローラ１００がモーションセーフティ機能の情報を参照する方法について説明する。
【０１５９】
具体的には、セーフティドライバ３００からのプロセスデータ通信によるデータ公開を用いる方法について説明する。
【０１６０】
図１４は、本実施の形態に係る制御システム１の標準コントローラ１００がモーションセーフティ機能の情報を参照する方法を説明するための図である。図１４に示す構成においては、セーフティドライバ３００がデータミラーエンジン３８０をさらに含む。
【０１６１】
データミラーエンジン３８０は、モーションセーフティ機能状態管理エンジン３７８が保持する情報のうち予め設定された情報を、フィールドネットワーク２を介して公開するデータ公開部に相当する。具体的には、データミラーエンジン３８０は、モーションセーフティ機能状態管理エンジン３７８が管理しているモーションセーフティ機能の情報のうち予め選択された情報を、データ公開するためにプロセスデータ３７４に複製する（（１）複製）。
【０１６２】
一方、標準コントローラ１００においては、セーフティドライバ３００により公開されるモーションセーフティ機能の情報を取得するための命令および／または設定が標準制御プログラム１１０４などに追加される（（２）情報取得）。そして、取得されたモーションセーフティ機能の情報を用いたセーフティドライバ３００を制御するためのプログラムが標準制御プログラム１１０４に追加される（（３）指令出力プログラム追加）。このような命令および／または設定の追加により、標準コントローラ１００において、モーションセーフティ機能の情報を参照して、セーフティドライバ３００を制御するための指令を出力できる。
【０１６３】
より具体的な設定手順例としては、セーフティドライバ３００のモーションセーフティ機能状態管理エンジン３７８は、モーションセーフティ機能毎に情報を管理しており、これらの情報のうち標準コントローラ１００で参照すべき情報を、他のデバイスに公開するための変数に割り付けるための設定がなされる。本実施の形態においては、セーフティドライバ３００により公開される情報はオブジェクト形式の変数に割り付けられ、以下では、このようなオブジェクト形式の変数を「モーションセーフティ制御用オブジェクト」とも称す。公開される情報の各々（情報の種類および値からなる組）は、モーションセーフティ制御用オブジェクトのプロパティとして割り付けられることになる。モーションセーフティ制御用オブジェクトは、フィールドネットワーク２を介してアクセス可能な通信オブジェクトに相当する。
【０１６４】
また、標準コントローラ１００においては、セーフティドライバ３００により公開される、モーションセーフティ制御用オブジェクトに含まれる情報（プロパティ）のうち、必要な情報を用いて、セーフティドライバ３００を制御するためのプログラムが作成される。
【０１６５】
以上のように、セーフティドライバ３００によるデータ公開により実装する場合には、セーフティドライバ３００に対して、公開すべき情報を選択さえすれば、比較的容易に、標準コントローラ１００で実行される標準制御プログラム１１０４を作成できる。
【０１６６】
次に、セーフティドライバ３００により公開されるモーションセーフティ制御用オブジェクトの一例について説明する。
【０１６７】
図１５は、本実施の形態に係る制御システム１のセーフティドライバ３００が公開するモーションセーフティ制御用オブジェクトの設定例を説明するための図である。
【０１６８】
図１５に示す例において、モーションセーフティ制御用オブジェクト３８２は、モーションセーフティ毎の指令（有効化／無効化）の発行状態を示すコントロールオブジェクト３８２１と、モーションセーフティ毎の状態値を示すステータスオブジェクト３８２２とを含む。なお、図１５に示すような２つのオブジェクトに限らず、単一のオブジェクトのみを用意してもよいし、より多くのオブジェクトを用意してもよい。
【０１６９】
セーフティドライバ３００のモーションセーフティ機能状態管理エンジン３７８は、モーションセーフティ機能毎に制御用オブジェクト３７８１，３７８２，３７８３，３７８４，３７８５，・・・を有している。制御用オブジェクト３７８１，３７８２，３７８３，３７８４，３７８５，・・・は、モーションセーフティ機能状態管理エンジン３７８が論理的に保持するデータ構造体である。
【０１７０】
より具体的には、制御用オブジェクト３７８１，３７８２，３７８３，３７８４，３７８５，・・・は、各モーションセーフティの指令（有効化／無効化）の発行状態を示す情報３７８１Ａ，３７８２Ａ，３７８３Ａ，３７８４Ａ，３７８５Ａ，・・・と、各モーションセーフティの制御状態を示す情報３７８１Ｂ，３７８２Ｂ，３７８３Ｂ，３７８４Ｂ，３７８５Ｂ，・・・とを含む。
【０１７１】
モーションセーフティ制御用オブジェクト３８２には、制御用オブジェクト３７８１，３７８２，３７８３，３７８４，３７８５，・・・に含まれる情報のうち、予め選択された情報が複製される。このように、モーションセーフティ制御用オブジェクト３８２には、モーションセーフティ機能状態管理エンジン３７８が管理する情報が複製されるので、モーションセーフティ制御用オブジェクト３８２を「ミラーオブジェクト」と称することもできる。
【０１７２】
ミラーオブジェクトは、モーションセーフティ制御用オブジェクト３８２に含まれる情報をそのまま反映したものであるとともに、標準コントローラ１００を含むフィールドネットワーク２に接続された各デバイスに対して公開される変数群でもある。
【０１７３】
モーションセーフティ制御用オブジェクト３８２に割り付けられる情報は、ミラーオブジェクト設定３８４（設定情報３２０６（図５参照）の一部に含まれる。）により規定される。ミラーオブジェクト設定３８４は、モーションセーフティ機能状態管理エンジン３７８が管理する情報のうち、モーションセーフティ制御用オブジェクト３８２に含まれる情報（プロパティ）として複製すべき情報を規定するものである。
【０１７４】
このように、サポート装置５００は、モーションセーフティ機能状態管理エンジン３７８が保持する情報のうち予め設定された情報を、フィールドネットワーク２を介して標準コントローラ１００へ公開するように、ミラーオブジェクト設定３８４（設定情報３２０６（図５参照）の一部に含まれる。）を生成する。すなわち、セーフティドライバ３００から標準コントローラ１００へ公開されるデータは、セーフティコントローラ２００からのセーフティ指令が反映されることになる。
【０１７５】
図１４に示す構成例において、データミラーエンジン３８０は、サーボ制御３５０を実行する演算処理部であるプロセッサ３１２によって実現され、モーションセーフティ機能状態管理エンジン３７８は、モーションセーフティ機能３６０を提供する演算処理部であるプロセッサ３１４によって実現される。
【０１７６】
このような構成を採用した場合には、プロセッサ３１２とプロセッサ３１４との間でメッセージ通信などによってイベントを通知するようにしてもよい。具体的には、モーションセーフティ機能状態管理エンジン３７８（プロセッサ３１４）は、論理コネクション４を介して何らかの指令を受けると、対応する制御用オブジェクトの情報を更新するとともに、データミラーエンジン３８０（プロセッサ３１２）に情報の更新を通知する。この更新の通知を受けて、データミラーエンジン３８０（プロセッサ３１２）は、モーションセーフティ制御用オブジェクト３８２の内容を更新する。
【０１７７】
＜Ｈ．サポート装置５００における公開データの参照設定＞
サポート装置５００において、セーフティドライバ設定情報５１１６（図６参照）の一部に含まれるコントロールオブジェクト・ステータスオブジェクト設定テーブル５６０が規定される。コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０に規定されるオブジェクトに必要なセーフティ機能のオブジェクトが割り付けられた上で、セーフティコントローラ２００のユーザプログラムでセーフティ機能のＯＮ／ＯＦＦが制御される。
【０１７８】
本実施の形態においては、サポート装置５００が保持するコントロールオブジェクト・ステータスオブジェクト設定テーブル５６０、および、セーフティドライバ３００が保持するミラーオブジェクト設定３８４は、いずれも、データ公開される情報を特定するための公開設定に相当する。以下、ミラーオブジェクト設定３８４に関するサポート装置５００における設定処理について説明する。
【０１７９】
図１６は、本実施の形態に係る制御システム１のサポート装置５００での設定処理を説明するための図である。図１６を参照して、サポート装置５００は、制御システム１に含まれる標準コントローラ１００およびセーフティドライバ３００に係る設定を受け付ける。図１６には、設定の一例として、標準コントローラ変数設定テーブル５５０（図６の標準コントローラ設定情報５１１０に含まれる）およびコントロールオブジェクト・ステータスオブジェクト設定テーブル５６０（図６のセーフティドライバ設定情報５１１６に含まれる）を示す。
【０１８０】
コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０は、対象のセーフティドライバ３００が公開するモーションセーフティ制御用オブジェクト３８２に含まれる情報を規定するテーブルである。ユーザは、サポート装置５００上で、コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０を編集して、対象となるセーフティドライバ３００が公開するモーションセーフティ制御用オブジェクト３８２に含めるべき情報を設定する（（１）設定）。
【０１８１】
より具体的には、コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０は、モーションセーフティ制御用オブジェクト３８２に含まれるコントロールオブジェクト３８２１およびステータスオブジェクト３８２２にそれぞれ対応する設定欄５６２および５６４を含む。ユーザは、設定欄５６２および５６４の各エントリに、対象とする情報の制御オブジェクト５６６を設定する。
【０１８２】
各エントリに設定される情報は、モーションセーフティ機能状態管理エンジン３７８が保持するモーションセーフティ機能毎の制御用オブジェクト３７８１，３７８２，３７８３，３７８４，３７８５，・・・（図１６参照）から任意に選択される。
【０１８３】
このように、サポート装置５００は、データミラーエンジン３８０により公開される情報の指定を受け付けるとともに、当該指定された情報を特定する公開設定（コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０）をセーフティドライバ３００へ転送する。
【０１８４】
標準コントローラ変数設定テーブル５５０は、標準コントローラ１００で参照可能な変数を規定するテーブルである。標準コントローラ変数設定テーブル５５０は、セーフティドライバ３００により公開されるモーションセーフティ制御用オブジェクト３８２を参照するための設定を含む。
【０１８５】
より具体的には、標準コントローラ変数設定テーブル５５０は、モーションセーフティ制御用オブジェクト３８２に含まれるコントロールオブジェクト３８２１およびステータスオブジェクト３８２２にそれぞれ対応する設定欄５５２および５５４を含む。
【０１８６】
本実施の形態に係る制御システム１の標準コントローラ１００においては、モーションセーフティ制御用オブジェクト３８２をそのまま参照することもできるが、標準制御プログラム１１０４の作成を容易化するために、モーションセーフティ制御用オブジェクト３８２に含まれる各属性に対して変数を設定することも可能である。
【０１８７】
図１６には、コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０における設定に基づいて、標準コントローラ変数設定テーブル５５０において、モーションセーフティ制御用オブジェクト３８２に含まれる各属性に対して変数が自動的に設定される例を示す。
【０１８８】
図１６に示すように、ユーザがコントロールオブジェクト・ステータスオブジェクト設定テーブル５６０を設定した後、標準コントローラ変数設定テーブル５５０への反映操作を行うと、各属性に対応する変数５５６は、設定欄５６２および５６４の内容に応じて自動的に設定されてもよい。あるいは、ユーザが手動で設定してもよい。このように、サポート装置５００は、セーフティドライバ３００に対する設定である、コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０（公開設定）を参照して、セーフティドライバ３００のモーションセーフティ機能状態管理エンジン３７８により管理される情報のうち公開対象の情報を特定するとともに、データミラーエンジン３８０により公開される情報を参照するための変数５５６（参照情報に相当する。）に当該特定した情報の意味を関連付ける。
【０１８９】
標準制御プログラム１１０４においては、標準コントローラ変数設定テーブル５５０において設定された変数５５６を参照することができる。
【０１９０】
図１７は、本実施の形態に係る制御システム１のサポート装置５００が提供するユーザインターフェイス画面の一例を示す模式図である。図１７（Ａ）を参照して、モーションセーフティ制御用オブジェクト３８２に係る設定画面５７０は、対象情報表示欄５７２と、ミラーオブジェクト表示欄５７４と、属性設定欄５７６と、データ型設定欄５７８とを含む。
【０１９１】
ミラーオブジェクト表示欄５７４は、モーションセーフティ制御用オブジェクト３８２に含まれる各要素（ビット）を表示する。対象情報表示欄５７２には、モーションセーフティ制御用オブジェクト３８２に割り当てる情報が設定される。属性設定欄５７６には、割り当てられる情報の属性（読取専用／編集可能の別）が設定される。データ型設定欄５７８には、割り当てられる情報のデータ型（ＢＯＯＬ型や実数型など）が設定される。
【０１９２】
ユーザは、図１７（Ａ）に示す設定画面５７０に対する操作により、モーションセーフティ制御用オブジェクト３８２に含めるべき情報を設定する。その後、ユーザが反映操作を行うことで、図１７（Ｂ）に示すように、標準コントローラ１００で参照可能な変数名が自動的に設定される。
【０１９３】
図１７（Ｂ）に示すように、設定画面５７０は、変数名設定欄５８０をさらに有している。変数名設定欄５８０には、標準コントローラ１００で各情報を参照するための変数名が設定される。なお、変数名設定欄５８０に設定される変数名は、対象情報表示欄５７２に設定される変数名と同一であってもよい。
【０１９４】
上述したように、図１６および図１７には、変数名を参照情報として用いて任意のプロセス値を参照する構成例を示す。すなわち、サポート装置５００において、セーフティドライバ３００のデータミラーエンジン３８０により公開される情報を変数として参照可能になっている。このような変数に対して各情報の意味を反映する場合には、変数の名前（変数名）として反映してもよいし、変数を参照する際に表示される、変数名とは別に付与されるコメントやラベルなどの付加情報として反映してもよい。
【０１９５】
すなわち、サポート装置５００は、変数名として特定した情報の意味を反映するようにしてもよいし、変数に付与される付加情報として特定した情報の意味を反映するようにしてもよい。
【０１９６】
但し、参照情報としては、変数名でなくてもよい。例えば、各プロセス値が格納される記憶領域の物理アドレスあるいは論理アドレスを指定するようにしてもよい。さらにあるいは、物理アドレスあるいは論理アドレスを示す識別情報を参照情報として用いてもよい。このような場合においても、参照情報を特定する識別情報として特定した情報の意味を反映するようにしてもよいし、参照情報に付与される付加情報として特定した情報の意味を反映するようにしてもよい。
【０１９７】
また、図１７（Ｂ）に示すように、他のセーフティドライバ３００が公開するモーションセーフティ制御用オブジェクト３８２に含まれる情報と競合しないように、さらなる情報を付加してもよい。図１７（Ｂ）に示す設定画面５７０においては、公開元のセーフティドライバ３００を特定する情報（図１７に示す例では、「Ｅ００３」）を付加した変数名が採用されている。
【０１９８】
以上のように、サポート装置５００は、セーフティドライバ３００のデータミラーエンジン３８０により公開される情報を参照するための参照情報（典型的には、変数）に、当該データミラーエンジン３８０を含んでいるセーフティドライバ３００を特定する情報を反映するようにしてもよい。
【０１９９】
また、ユーザは、サポート装置５００上で、標準コントローラ１００に関する設定において、公開されたモーションセーフティ制御用オブジェクトの各ビットに対して、対応する名称を含む変数名を割り当てる。このような変数名を採用することで、標準制御プログラム１１０４を作成する際に、モーションセーフティ制御用オブジェクト３８２に含まれる情報の参照を容易化でき、プログラム作成を効率化できる。すなわち、モーションセーフティ制御用オブジェクトの各ビットの意味を明示または暗示する変数名を用いて、標準制御プログラムを作成できる。
【０２００】
図１８は、本実施の形態に係る制御システム１におけるモーションセーフティ制御用オブジェクト３８２を参照した標準制御プログラム１１０４の一例を示す図である。図１８（Ａ）および図１８（Ｂ）には、いずれも、モーションセーフティ機能としてＳＯＳ（Safe Operating Stop）が有効化された場合の、セーフティドライバ３００およびサーボモータ４００を制御するための命令（コード１１０５）を記述した部分を示す。
【０２０１】
図１８（Ａ）には、モーションセーフティ制御用オブジェクト３８２をそのまま参照する場合の標準制御プログラム１１０４の一例を示し、図１８（Ｂ）には、モーションセーフティ制御用オブジェクト３８２に対応付けられた変数を参照する場合の標準制御プログラム１１０４の一例を示す。
【０２０２】
図１８（Ａ）に示す標準制御プログラム１１０４においては、モーションセーフティ制御用オブジェクト３８２の５ビット目を参照するための「Ｅ００３＿Ｍｉｒｒｏｒ＿Ｓａｆｅｔｙ＿ｓｔａｔｕｓｗｏｒｄ［３］」との参照命令５８２を用いたＩＦ文が記述されている。
【０２０３】
これに対して、図１８（Ｂ）に示す標準制御プログラム１１０４においては、モーションセーフティ制御用オブジェクト３８２の５ビット目の情報に割り当てられた「Ｅ００３＿ＳＯＳ＿ｃｏｍｍａｎｄ１＿ａｃｔｉｖｅ」との変数５８４を用いたＩＦ文が記述されている。このように、図１８（Ｂ）に示すような変数５８４を用いることで、当該変数目がいずれの情報を参照しているのかを一見して把握することができる。
【０２０４】
このように、サポート装置５００は、標準コントローラ１００で実行される標準制御プログラム１１０４を開発する環境を提供する。この標準制御プログラム１１０４を開発する環境において、上述したような特定した情報の意味が関連付けられた参照情報（典型的には、各変数）を用いて、標準制御プログラム１１０４を作成可能になっている。
【０２０５】
＜I．サポート装置５００におけるプロセスデータ通信の設定＞
次に、セーフティドライバ３００に対するプロセスデータ通信をサポート装置５００で設定する場合の処理について説明する。本実施の形態においては、サポート装置５００でセーフティドライバ３００毎に公開すべきモーションセーフティ制御用オブジェクトの情報を選択および設定することになる。また、セーフティドライバ３００毎にプロセスデータ通信により伝送されるデータのうち使用するものを設定することになる。
【０２０６】
現実の運用を想定すると、制御システム１は複数のセーフティドライバ３００を含むことが多く、このような場合、セーフティドライバ３００毎に設定を行うことは操作が煩雑になる。
【０２０７】
また、例えば、セーフティドライバ３００に係るプログラムをデバッグする場合、セーフティドライバ３００のモーションセーフティ機能を無効化した状態で、標準制御に係る部分だけをデバッグしたい場合がある。このとき、セーフティドライバ３００からのモーションセーフティ制御用オブジェクトの情報（ミラーオブジェクト）の公開を無効化しておくことが好ましい。このような場合において、セーフティドライバ３００毎に公開設定を削除もしくは無効化することは操作が煩雑になる。
【０２０８】
図１９は、本実施の形態に係る制御システム１を構成するサポート装置５００における一括設定の処理を説明するための図である。図１９を参照して、複数のセーフティドライバ３００の各々に対して、コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０が用意されているとする。
【０２０９】
本実施の形態では、サポート装置５００において、ユーザが所定の操作を行うことで、コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０の各々に対して、予め設定された内容が反映されている状態と、何らの設定もなされていない状態とを一括して切り替えることができる。すなわち、制御システム１が複数のセーフティドライバ３００を有している場合において、サポート装置５００は、ユーザ操作に応答して、すべてのセーフティドライバ３００のデータミラーエンジン３８０（データ公開部）に対して、フィールドネットワーク２を介した公開を一括して有効化または無効化することができる。
【０２１０】
また、サポート装置５００においては、複数のコントロールオブジェクト・ステータスオブジェクト設定テーブル５６０に対して、同一の設定を反映することができるようにしてもよい。
【０２１１】
具体的には、サポート装置５００は、共通設定テンプレート５９０を有している。共通設定テンプレート５９０は、セーフティ機能を利用する場合に、プロセスデータ通信を行うオブジェクト（より具体的には、ミラーオブジェクト、コントロールオブジェクト、およびステータスオブジェクト）の設定を含む。サポート装置５００において、ユーザが所定の操作を行うことで、コントロールオブジェクト・ステータスオブジェクト設定テーブル５６０の各々に対して、共通設定テンプレート５９０の内容が反映される。
【０２１２】
このような一括無効化の機能、一括有効化の機能、および、一括設定の機能の一部または全部をサポート装置５００に実装することで、上述したようなデバッグ時の操作を効率化できる。以下、より具体的な処理例について説明する。
【０２１３】
なお、説明の便宜上、主としてデータの公開設定に着目して説明しているが、本実施の形態において提供される一括無効化の機能、一括有効化の機能、および、一括設定の機能は、セーフティドライバ３００のプロセスデータ通信の設定全般に関する。すなわち、設定対象は、セーフティドライバ３００から他のデバイスに向けたデータの公開設定、および、他のデバイスから公開されたデータのうちセーフティドライバ３００が利用するデータの参照設定の両方を含み得る。さらに、設定対象のデータは、モーションセーフティ機能に関するものに限らず、セーフティドライバ３００が提供する機能に関するアプリケーションに関するものを含み得る。
【０２１４】
図２０は、本実施の形態に係るサポート装置５００におけるプロセスデータ通信の設定操作の一例を説明するための図である。図２０には、複数のセーフティドライバ３００に対して、セーフティ機能に必要なプロセスデータ通信の設定を行う場合の操作例を示す。
【０２１５】
図２０（Ａ）に示すような、セーフティドライバ３００のリストを示すリスト画面５３０において、対象となるセーフティドライバ３００を選択５３２する。そして、図２０（Ｂ）に示すような設定画面５４０において、ユーザは、セーフティドライバ３００が有している状態情報のうち公開するものを選択する。
【０２１６】
図２０（Ｂ）に示す設定画面５４０は、標準コントローラ１００またはセーフティコントローラ２００からの指令（出力）として受け付けるデータを選択するためのラジオボタン５４２，５４４と、標準コントローラ１００またはセーフティコントローラ２００へ公開するデータを選択するためのラジオボタン５４６，５４８とを含む。
【０２１７】
ラジオボタン５４２，５４４，５４６，５４８の各々は、予め設定されたパラメータセットに対応付けられている。いずれかのラジオボタンが選択されると、当該選択中のラジオボタンに対応付けられているパラメータセットの内容を示す設定表示５４１が設定画面５４０内に提供される。
【０２１８】
なお、いずれのパラメータセットも対応付けられていないラジオボタンも用意されており、このラジオボタンが選択されることで、プロセスデータ通信が無効化される。
【０２１９】
ユーザは、リスト画面５３０において、セーフティドライバ３００の各々を選択した上で、対象のパラメータセットを順次設定することになる。
【０２２０】
より具体的には、ユーザは、フィールドネットワーク２の構成情報を示すリスト画面５３０において、対象のセーフティドライバ３００を選択し、設定画面５４０において、モーションセーフティ機能のプロセスデータ通信を有効化／無効化を選択する。有効化の場合には、ユーザは、いずれのパラメータセットであるかを選択する。ユーザは、以上のような選択および設定操作をセーフティドライバ３００の台数分だけ繰り返す。
【０２２１】
このように、図２０に示す設定画面において、ユーザは、セーフティドライバ３００のプロセスデータ通信の設定画面上で、セーフティドライバ３００毎に論理コネクション４を介して遣り取りされる情報をプロセスデータ通信の対象として追加または削除する。
【０２２２】
なお、セーフティドライバ３００のデバイスプロファイル（ＥＳＩ）がモジュールデバイスプロファイル（ＭＤＰ：Module Device Profile）に対応している場合には、設定画面５４０において、セーフティ機能モジュールの有効化／無効化を選択するようにしてもよい。
【０２２３】
この場合には、ユーザは、フィールドネットワーク２の構成情報を示すリスト画面５３０において、対象のセーフティドライバ３００を選択し、設定画面５４０において、セーフティドライバ３００のモジュール構成を編集する。ユーザは、以上のような選択および設定操作をセーフティドライバ３００の台数分だけ繰り返す。
【０２２４】
図２０に示すような設定手順において、セーフティドライバ３００の機種毎に設定すべき項目あるいはパラメータセットが異なっており、ユーザは、機種に応じた設定を行わなければならない。また、フィールドネットワーク２に接続されているセーフティドライバ３００の台数が多い場合には、設定に手間がかかる。このような場合には、以下のような設定機能を提供するようにしてもよい。
【０２２５】
図２１は、本実施の形態に係るサポート装置５００におけるプロセスデータ通信の設定操作の別の一例を説明するための図である。図２１には、複数のセーフティドライバ３００に対して、セーフティ機能に必要なプロセスデータ通信の設定を行う場合の操作例を示す。
【０２２６】
図２１（Ａ）に示すような、セーフティドライバ３００のリストを示すリスト画面５３０において、ユーザがメニュー画面の一項目として含まれる一括設定機能５３４を選択すると、フィールドネットワーク２に接続されているセーフティドライバ３００の各々に対して、必要なプロセスデータ通信の一括削除（一括無効化）または一括設定（一括有効化）が行われる。
【０２２７】
より具体的には、一括設定機能５３４の選択に応答して表示される設定ウィンドウ５３６は、一括設定（一括有効化）を示す「Ａｄｄ」および一括削除（一括無効化）を示す「Ｒｅｍｏｖｅ」を含む。ユーザが「Ａｄｄ」を選択することで一括設定が実行され、「Ｒｅｍｏｖｅ」を選択することで一括削除が実行される。
【０２２８】
一括設定においては、図２１（Ｂ）の設定画面５３８に示されるように、セーフティドライバ３００の機種が特定されるとともに、各機種に応じた設定がなされる。そして、各セーフティドライバ３００に対して生成された設定の内容をユーザが提示される。この各機種に応じた設定は、共通設定テンプレート５９０（図１９）を参照することで実現される。
【０２２９】
このように、ユーザは、フィールドネットワーク２の構成情報を示すリスト画面５３０において、一括設定機能５３４を選択する。そして、設定ウィンドウ５３６上で、必要なプロセスデータ通信の一括設定（一括有効化）または一括削除（一括無効化）を選択する。最終的に、ユーザは、設定画面５３８で実行結果を確認する。
【０２３０】
以上のような処理により、ユーザから見れば、セーフティドライバ３００のプロセスデータ通信の設定を一括で設定または削除できる。
【０２３１】
続いて、図２１に示すような一括設定を実現するための共通設定テンプレート５９０の詳細について説明する。
【０２３２】
図２２は、本実施の形態に係るサポート装置５００が保持する共通設定テンプレート５９０のデータ構造の一例を示す模式図である。図２２を参照して、共通設定テンプレート５９０は、機種情報５９２に関連付けられた設定内容５９４を含む。機種情報５９２は、予め知られているセーフティドライバ３００の機種のリストを含む。設定内容５９４には、各機種に応じた設定が割り当てられる。
【０２３３】
このような共通設定テンプレート５９０を参照することで、セーフティドライバ３００の機種毎に適切な設定が行われることになる。
【０２３４】
なお、共通設定テンプレート５９０は、サポート装置５００が保持していてもよいし、サポート装置５００以外の任意のサーバ装置が保持していてもよい。さらに、フィールドネットワーク２に接続されるセーフティドライバ３００に格納されている情報などを収集して、サポート装置５００または他の情報処理装置が動的に生成するようにしてもよい。
【０２３５】
次に、プロセスデータ通信に関する一括設定を実現するための処理手順について説明する。
【０２３６】
図２３は、本実施の形態に係る制御システム１を構成するサポート装置５００における一括設定を実現するための処理手順の一例を示すフローチャートである。図２３に示す各ステップは、典型的には、サポート装置５００のプロセッサ５０２がサポートプログラム５１０４を実行することで実現される。
【０２３７】
図２３を参照して、サポート装置５００は、ユーザ操作に応答して、フィールドネットワーク２に接続されているセーフティドライバ３００を探索して、対象となるセーフティドライバ３００の一覧を取得する（ステップＳ１００）。すなわち、サポート装置５００は、フィールドネットワーク２に接続されているセーフティドライバ３００を取得する取得機能を有している。
【０２３８】
この取得されたセーフティドライバ３００の一覧は、リスト画面５３０（図２０（Ａ）参照）に反映される。
【０２３９】
続いて、サポート装置５００は、特定のセーフティドライバ３００が選択されたか否かを判断する（ステップＳ１０２）。特定のセーフティドライバ３００が選択されると（ステップＳ１０２においてＹＥＳ）、サポート装置５００は、選択されているセーフティドライバ３００に対する設定可能なパラメータセットのリストを表示するとともに（ステップＳ１０４）、パラメータセットの選択を受け付ける（ステップＳ１０６）（図２０（Ｂ）参照）。さらに、サポート装置５００は、選択されたパラメータセットを選択中のセーフティドライバ３００に反映する（ステップＳ１０８）。そして、処理はステップＳ１３０へ進む。
【０２４０】
このように、サポート装置５００は、個別設定のユーザ操作に従って、特定の１つのセーフティドライバ３００に対する設定を生成することもできる。
【０２４１】
一方、サポート装置５００は、特定のセーフティドライバ３００が選択されなければ（ステップＳ１０２においてＮＯ）、サポート装置５００は、一括設定機能が選択されたか否かを判断する（ステップＳ１１２）（図２１（Ａ）参照）。一括設定機能が選択されると（ステップＳ１１２においてＹＥＳ）、サポート装置５００は、一括設定および一括削除のいずれが選択されたかを判断する（ステップＳ１１４）。
【０２４２】
一括設定が選択されると（ステップＳ１１４において「一括設定」）、サポート装置５００は、一覧に含まれるセーフティドライバ３００のうち１つを選択し（ステップＳ１１６）、共通設定テンプレート５９０を参照して、当該選択されているセーフティドライバ３００に対応する設定内容を取得する（ステップＳ１１８）。そして、選択されているセーフティドライバ３００に取得した設定内容を反映する（ステップＳ１２０）。このように、サポート装置５００は、ユーザ操作に従って、フィールドネットワーク２に接続されている各セーフティドライバ３００に対して、フィールドネットワーク２を介して共有するべきデータの設定を各セーフティドライバ３００に応じて生成する。このとき、サポート装置５００は、共通設定テンプレート５９０を参照することで、セーフティドライバ３００の機種毎に予め定められた設定内容に従って、各セーフティドライバ３００に対する設定を生成する。
【０２４３】
一覧に含まれるセーフティドライバ３００のすべてに対して設定内容が反映されていなければ（ステップＳ１２２においてＮＯ）、ステップＳ１１６以下の処理が繰り返される。一覧に含まれるセーフティドライバ３００のすべてに対して設定内容が反映されていれば（ステップＳ１２２においてＹＥＳ）、処理はステップＳ１３０へ進む。
【０２４４】
一括削除が選択されると（ステップＳ１１４において「一括削除」）、サポート装置５００は、一覧に含まれるセーフティドライバ３００のうち１つを選択し（ステップＳ１２４）、選択されているセーフティドライバ３００の設定内容をクリアする（ステップＳ１２６）。一覧に含まれるセーフティドライバ３００のすべてに対して設定内容が反映されていなければ（ステップＳ１２８においてＮＯ）、ステップＳ１２４以下の処理が繰り返される。一覧に含まれるセーフティドライバ３００のすべてに対して設定内容がクリアされていれば（ステップＳ１２８においてＹＥＳ）、処理はステップＳ１３０へ進む。
【０２４５】
このように、サポート装置５００は、一括削除のユーザ操作に従って、各セーフティドライバ３００に対する設定を削除する。
【０２４６】
これに対して、一括設定機能が選択されなければ（ステップＳ１１２においてＮＯ）、ステップＳ１０２以下の処理が繰り返される。
【０２４７】
ステップＳ１３０において、サポート装置５００は、セーフティドライバ３００への設定反映が指示されたか否かを判断する（ステップＳ１３０）。セーフティドライバ３００への設定反映が指示されると（ステップＳ１３０においてＹＥＳ）、サポート装置５００は、設定された内容を対象のセーフティドライバ３００へ転送する（ステップＳ１３２）。すなわち、サポート装置５００は、フィールドネットワーク２に接続されている各セーフティドライバ３００に対して対応する設定を反映する。そして、処理は終了する。
【０２４８】
一方、セーフティドライバ３００への設定反映が指示されなければ（ステップＳ１３０においてＮＯ）、ステップＳ１０２以下の処理が繰り返される。
【０２４９】
＜Ｊ．変形例＞
上述の実施の形態においては、セーフティドライバ３００のモーションセーフティ機能に関する情報を、プロセスデータ通信を利用して送受信する例について説明したが、これに限らず、任意の情報をプロセスデータ通信を利用して送受信する場合にも適用可能である。
【０２５０】
すなわち、モーションセーフティ機能に限らず、セーフティドライバ３００と任意のデバイスとの間で実行される任意のアプリケーションで利用されるデータを、セーフティドライバ３００から公開、あるいは、任意のデバイスから受信するための設定を一括で設定あるいは削除できるようにしてもよい。例えば、セーフティドライバ３００で実行されるサーボモータ４００に対する位置制御、速度制御、トルク制御などに必要な情報の遣り取りを実現するための設定に利用してもよい。
【０２５１】
さらに、セーフティドライバ３００に限らず、他の任意のデバイスがプロセスデータ通信を利用する場合に、必要な情報を一括で設定し、あるいは、一括で削除するような処理に適用することもできる。
【０２５２】
＜Ｋ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
［構成１］
制御システム（１）であって、
第１のコントローラ（１００）と、
セーフティ機能を有するとともに、前記第１のコントローラからの第１の指令に従ってモータ（４００）を駆動する１または複数のドライブ装置（３００）と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラ（２００）と、
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワーク（２）と、
サポート装置（５００）とを備え、前記サポート装置は、ユーザ操作に従って、前記ネットワークに接続されている各ドライブ装置に対して、前記ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成する設定生成手段（１０）を含み、
前記ネットワークに接続されている各ドライブ装置に対して対応する設定を反映する設定反映手段（２０）を備える、制御システム。
［構成２］
前記設定生成手段（１０）は、ドライブ装置の機種毎に予め定められた設定内容に従って、各ドライブ装置に対する前記ネットワークを介して共有するべきデータの設定を生成する（Ｓ１１８）、構成１に記載の制御システム。
［構成３］
前記設定生成手段は、別のユーザ操作に従って、各ドライブ装置に対する前記ネットワークを介して共有するべきデータの設定を削除する（Ｓ１２４，Ｓ１２６，Ｓ１２８）、構成１または２に記載の制御システム。
［構成４］
前記設定生成手段は、前記ドライブ装置から前記第１のコントローラへ、前記ドライブ装置が保持するデータを公開するように設定する、構成１〜３のいずれか１項に記載の制御システム。
［構成５］
前記ドライブ装置は、前記第２の指令に従って前記セーフティ機能の状態を管理する状態管理部（３７８）を含み、
前記ドライブ装置から公開されるデータは、前記第２のコントローラからの前記第２の指令を反映する、構成４に記載の制御システム。
［構成６］
前記サポート装置は、前記ドライブ装置に対する前記ネットワークを介して共有するべきデータの設定（５６０）を参照して、前記状態管理部により管理される情報のうち公開対象の情報を特定するとともに、当該公開対象の情報を参照するための参照情報（５５６）に当該特定した情報の意味を関連付ける、構成５に記載の制御システム。
［構成７］
前記設定生成手段は、さらに別のユーザ操作に従って、特定の１つのドライブ装置に対する前記ネットワークを介して共有するべきデータの設定を生成する（Ｓ１０４，Ｓ１０６，Ｓ１０８）、構成１〜６のいずれか１項に記載の制御システム。
［構成８］
前記サポート装置は、前記ネットワークに接続されているドライブ装置を取得する取得手段（Ｓ１００）をさらに含む、構成１〜７のいずれか１項に記載の制御システム。
［構成９］
前記設定生成手段は、各ドライブ装置に対して生成された前記ネットワークを介して共有するべきデータの設定の内容をユーザに提示する（５３８）、構成１〜８のいずれか１項に記載の制御システム。
［構成１０］
制御システム（１）に接続されるサポート装置（５００）であって、
前記制御システムは、
第１のコントローラ（１００）と、
セーフティ機能を有するとともに、前記第１のコントローラからの第１の指令に従ってモータ（４００）を駆動する１または複数のドライブ装置（３００）と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラ（２００）と、
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワーク（２）とを備え、
前記サポート装置は、ユーザ操作に従って、前記ネットワークに接続されている各ドライブ装置に対して、前記ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成する設定生成手段（１０）を含み、
前記第１のコントローラは、前記ネットワークに接続されている各ドライブ装置に対して対応する設定を反映する設定反映手段（２０）を含む、サポート装置。
［構成１１］
制御システム（１）に接続されるコンピュータ（５００）で実行されるサポートプログラム（５１０４）であって、
前記制御システムは、
第１のコントローラ（１００）と、
セーフティ機能を有するとともに、前記第１のコントローラからの第１の指令に従ってモータ（４００）を駆動する１または複数のドライブ装置（３００）と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラ（２００）と、
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワーク（２）とを備え、
前記サポートプログラムは、前記コンピュータに
ユーザ操作に従って、前記ネットワークに接続されている各ドライブ装置に対して、前記ネットワークを介して共有するべきデータの設定を各ドライブ装置に応じて生成するステップ（Ｓ１１６，Ｓ１１８，Ｓ１２０，Ｓ１２２）と、
前記ネットワークに接続されている各ドライブ装置に対して対応する設定を反映するステップ（Ｓ１３０，Ｓ１３２）とを実行させる、サポートプログラム。
【０２５３】
＜Ｌ．利点＞
本実施の形態に係る制御システム１によれば、セーフティドライバ３００が他のユニットとの間でデータを共有するための設定を一括で行うことができるので、複数のセーフティドライバ３００を含む場合であっても、制御システム１の立ち上げを効率化できる。
【０２５４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２５５】
１  制御システム、２  フィールドネットワーク、４  論理コネクション、１０  設定生成モジュール、２０  設定反映モジュール、１００  標準コントローラ、１０２，２０２，３１２，３１４，５０２  プロセッサ、１０４，２０４，３１６，５０４  メインメモリ、１０６  上位ネットワークコントローラ、１０８，２０８，３０２  フィールドネットワークコントローラ、１１０，２１０，３２０，５１０  ストレージ、１１２  メモリカードインターフェイス、１１４  メモリカード、１１６  ローカルバスコントローラ、１１８，２１８，５１８  プロセッサバス、１２０，２２０，５２０  ＵＳＢコントローラ、１５０  標準制御、１７０，２７０，３７０  プロセスデータ通信レイヤ、１７２，２７２  管理モジュール、１７４，２７４，３７４  プロセスデータ、２００  セーフティコントローラ、２１６  セーフティローカルバスコントローラ、２３０  セーフティＩＯユニット、２４０  セーフティデバイス、２５０  セーフティ機能、２７６，３７６  論理コネクションレイヤ、２７８  セーフティ機能状態管理エンジン、３００  セーフティドライバ、３１０  制御部、３３０  ドライブ回路、３３２  フィードバック受信回路、３５０  サーボ制御、３５２  サーボ制御実行エンジン、３６０  モーションセーフティ機能、３６２  モーションセーフティ機能実行エンジン、３７８  モーションセーフティ機能状態管理エンジン、３８０  データミラーエンジン、３８２  モーションセーフティ制御用オブジェクト、３８４  ミラーオブジェクト設定、３９０  パラメータセット、４００  サーボモータ、４０２  三相交流モータ、４０４  エンコーダ、５００  サポート装置、５０６  入力部、５０８  出力部、５１２  光学ドライブ、５１４  記録媒体、５３０  リスト画面、５３２  選択、５３４  一括設定機能、５３６  設定ウィンドウ、５３８，５４０，５７０  設定画面、５４１  設定表示、５４２，５４４，５４６，５４８  ラジオボタン、５５０  標準コントローラ変数設定テーブル、５５２，５６２  設定欄、５５６，５８４  変数、５６０  コントロールオブジェクト・ステータスオブジェクト設定テーブル、５６６  制御オブジェクト、５７２  対象情報表示欄、５７４  ミラーオブジェクト表示欄、５７６  属性設定欄、５７８  データ型設定欄、５８０  変数名設定欄、５８２  参照命令、５９０  共通設定テンプレート、５９２  機種情報、５９４  設定内容、６００  通信フレーム、６１０，６１１，６１２，６１３，６１４，６１５，６２０，６２１，６２２，６２３，６２４，６１２１，６１２２，６１３１，６１３２，６１４１，６１４２，６１５１，６１５２  データ領域、６３０  セーフティ通信フレーム、１１０２，２１０２  システムプログラム、１１０４  標準制御プログラム、１１０５  コード、１１０６，２１０６，３２０６  設定情報、２１０４  セーフティプログラム、３２０２  サーボ制御プログラム、３２０４  モーションセーフティプログラム、３７８１，３７８２，３７８３，３７８４，３７８５  制御用オブジェクト、３７８１Ａ，３７８１Ｂ，３７８２Ａ，３７８２Ｂ，３７８３Ａ，３７８３Ｂ，３７８４Ａ，３７８４Ｂ，３７８５Ａ，３７８５Ｂ  情報、３８２１  コントロールオブジェ���ト、３８２２  ステータスオブジェクト、５１０２  ＯＳ、５１０４  サポートプログラム、５１０６  プロジェクトデータ、５１０８  標準制御ソースプログラム、５１１０  標準コントローラ設定情報、５１１２  セーフティソースプログラム、５１１４  セーフティコントローラ設定情報、５１１６  セーフティドライバ設定情報。
【図１】
2020057065.tif 000003
【図２】
2020057065.tif 000004
【図３】
2020057065.tif 000005
【図４】
2020057065.tif 000006
【図５】
2020057065.tif 000007
【図６】
2020057065.tif 000008
【図７】
2020057065.tif 000009
【図８】
2020057065.tif 000010
【図９】
2020057065.tif 000011
【図１０】
2020057065.tif 000012
【図１１】
2020057065.tif 000013
【図１２】
2020057065.tif 000014
【図１３】
2020057065.tif 000015
【図１４】
2020057065.tif 000016
【図１５】
2020057065.tif 000017
【図１６】
2020057065.tif 000018
【図１７】
2020057065.tif 000019
【図１８】
2020057065.tif 000020
【図１９】
2020057065.tif 000021
【図２０】
2020057065.tif 000022
【図２１】
2020057065.tif 000023
【図２２】
2020057065.tif 000024
【図２３】
2020057065.tif 000025