(57)【要約】【課題】セーフティプログラムが参照するパラメータを転送するための環境を提供する。【解決手段】第１のコントローラと、第１のコントローラからの第１の指令に従ってモータを駆動するドライブ装置と、ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、サポート装置と、を備え、ドライブ装置は、パラメータ群を参照しながらセーフティプログラムを実行し、第１のコントローラは、パラメータ群を格納する領域を含み、サポート装置からの要求に応じて当該領域のパラメータ群をサポート装置へ転送し、第２のコントローラは、サポート装置からの要求に応じて、サポート装置へ転送されるパラメータ群を格納する領域を含む。【選択図】図１
2020057210.tif 000002
【特許請求の範囲】
【請求項１】
第１のコントローラと、
前記第１のコントローラからの第１の指令に従ってモータを駆動するドライブ装置と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、
前記第１のコントローラに接続可能なサポート装置と、を備え、
前記ドライブ装置は、パラメータ群を参照しながら、前記第２の指令に従いセーフティプログラムを実行し、
前記第１のコントローラは、
前記パラメータ群を格納するための第１の格納領域を含み、前記サポート装置から受信する要求に従い、前記第１の格納領域の前記パラメータ群を前記サポート装置へ転送し、
前記第２のコントローラは、
前記サポート装置から受信する前記要求を従い、前記サポート装置へ転送される前記パラメータ群を格納するための第２の格納領域を含む、制御システム。
【請求項２】
前記第２のコントローラは、
前記第２の格納領域に前記サポート装置で復元可能に低サイズ化された前記パラメータ群を格納する、請求項１に記載の制御システム。
【請求項３】
前記サポート装置は、
前記第１のコントローラからの前記第１の格納領域のパラメータ群と、前記第２のコントローラからの前記第２の格納領域のパラメータ群を照合する照合部を含み、
前記照合の結果に従い、前記第１の格納領域のパラメータ群および前記第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元する、請求項１または２に記載の制御システム。
【請求項４】
前記第２のコントローラは、さらに、
前記第２の格納領域のパラメータ群から、所定式に従い算出される当該パラメータ群の正当性を示す第２のデータを格納する領域を、含み、
前記照合部は、
前記第１の格納領域のパラメータ群から、前記所定式に従い算出される当該パラメータ群の正当性を示す第１のデータを、前記第２のコントローラから受信する前記第２のデータと照合する、請求項３に記載の制御システム。
【請求項５】
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワークを、さらに備え、
前記第２の指令は、前記第２のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクションを介して送信され、
前記ドライブ装置は、
前記第１のデータが、前記第２のコントローラから受信する前記第２のデータと一致するとき、当該ドライブ装置と前記第２のコントローラとの間の前記コネクションを確立する、請求項４に記載の制御システム。
【請求項６】
制御システムに接続されるサポート装置であって、
前記制御システムは、
第１のコントローラと、
前記第１のコントローラからの第１の指令に従ってモータを駆動するドライブ装置と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、を備え、
前記ドライブ装置は、パラメータ群を参照しながら、前記第２の指令に従いセーフティプログラムを実行し、
前記第１のコントローラは、
前記パラメータ群を格納するための第１の格納領域を含み、前記サポート装置から受信する要求に従い、前記第１の格納領域の前記パラメータ群を前記サポート装置へ転送し、
前記第２のコントローラは、
前記サポート装置から受信する前記要求を従い、前記サポート装置へ転送される前記パラメータ群を格納するための第２の格納領域を含み、
前記サポート装置は、
前記第１のコントローラからの前記第１の格納領域のパラメータ群と、前記第２のコントローラからの前記第２の格納領域のパラメータ群を照合する照合部を含み、
前記照合の結果に従い、前記第１の格納領域のパラメータ群および前記第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元する、サポート装置。
【請求項７】
制御システムに接続される情報処理装置で実行されるプログラムであって、
前記制御システムは、
第１のコントローラと、
前記第１のコントローラからの第１の指令に従ってモータを駆動するドライブ装置と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、を備え、
前記ドライブ装置は、パラメータ群を参照しながら、前記第２の指令に従いセーフティプログラムを実行し、
前記第１のコントローラは、
前記パラメータ群を格納するための第１の格納領域を含み、前記情報処理装置から受信する要求に従い、前記第１の格納領域の前記パラメータ群を前記情報処理装置へ転送し、
前記第２のコントローラは、
前記情報処理装置から受信する前記要求を従い、前記情報処理装置へ転送される前記パラメータ群を格納するための第２の格納領域を含み、
前記プログラムは、前記情報処理装置のプロセッサに、
前記第１のコントローラからの前記第１の格納領域のパラメータ群と、前記第２のコントローラからの前記第２の格納領域のパラメータ群を照合するステップと、
前記照合の結果に従い、前記第１の格納領域のパラメータ群および前記第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元するステップと、を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、製造現場等に設けられるＦＡ（Factory  Automation）システムに適用される制御システム、サポート装置およびプログラムに関する。
【背景技術】
【０００２】
多くの製造現場のＦＡシステムにおいて、設備や機械を安全に使用するために、セーフティシステムの導入が進みつつある。セーフティシステムは、国際規格に従うセーフティ機能を提供するためのものであり、セーフティコントローラ、セーフティセンサ、セーフティスイッチ、およびセーフティリレーといったセーフティコンポーネントで構成される。
【０００３】
セーフティシステムは、設備や機械を駆動するサーボモータなどのドライブ装置に対してもセーフティ機能を提供することが要求される。このセーフティ機能を実現するために、ドライブ装置を制御するサーボドライバはセーフティプログラムを実行する。実行時に、セーフティプログラムはパラメータ群を参照する。このようなパラメータ群は、ドライバ装置に対してダウンロードされることにより提供される。
【０００４】
例えば、非特許文献１は、ＥｔｈｅｒＣＡＴ（登録商標：Ｅｔｈｅｒｎｅｔ  ｆｏｒ  Cｏｎｔｒｏｌ  Ａｕｔｏｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ、イーサキャット）通信経路上のデータにセーフティシステムに関する安全制御データを混在させる仕組みであるＦＳｏＥ（Ｓａｆｅｔｙ  ｏｖｅｒ  ＥｔｈｅｒＣＡＴ）を提案する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“ＥｔｈｅｒＣＡＴ  Ｐｒｏｔｏｃｏｌ  Ｅｎｈａｎｃｅｍｅｎｔｓ，Ａｍｅｎｄｍｅｎｔｓ  ｔｏ  ＥＴＧ．５１００  ＦＳｏＥ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，Ｄｏｃｕｍｅｎｔ：ＥＴＧ．５１２０  Ｓ（Ｒ）Ｖ１．１．０”,ＥｔｈｅｒＣＡＴ  Ｔｅｃｈｎｏｌｏｇｙ  Ｇｒｏｕｐ，２０１７−０７−１４
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１では、Configuration  Toolが、サーボドライバであるＦＳｏＥスレーブに対して、セーフティプログラムが実行時に参照するＳＲＡ（Ｓａｆｔｙ−Ｒｅｌａｔｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）のパラメータを転送（ダウンロード）する仕組みを開示する。セーフティシステムの開発者またはユーザは、ＦＳｏＥスレーブからパラメータをConfiguration  Toolへ転送（アップロード）させて、転送されているパラメータを取得したいとの要望がある。しかし、非特許文献１は、このようなＳＲＡのパラメータのアップロードの仕組みを提供しない。
【０００７】
本開示の１つの目的は、セーフティプログラムが参照するパラメータを転送するための環境を提供する制御システム、サポート装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００８】
本開示の一例に係る制御システムは、第１のコントローラと、第１のコントローラからの第１の指令に従ってモータを駆動するドライブ装置と、ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、第１のコントローラに接続可能なサポート装置と、を備え、ドライブ装置は、パラメータ群を参照しながら、第２の指令に従いセーフティプログラムを実行し、第１のコントローラは、パラメータ群を格納するための第１の格納領域を含み、サポート装置から受信する要求に従い、第１の格納領域のパラメータ群をサポート装置へ転送し、第２のコントローラは、サポート装置から受信する要求を従い、サポート装置へ転送されるパラメータ群を格納するための第２の格納領域を含む。
【０００９】
この開示によれば、サポート装置は、第１のコントローラと第２のコントローラに要求を送信することにより、第１のコントローラ側の経路と第２のコントローラ側の経路との複数の経路からパラメータ群を受信することができる。
【００１０】
上述の開示において、第２のコントローラは、第２の格納領域にサポート装置で復元可能に低サイズ化されたパラメータ群を格納する。
【００１１】
この開示によれば、第２の格納領域の容量は、低サイズ化されたパラメータ群を格納可能なサイズでよく、第２のコントローラにおけるメモリの消費量を抑制できる。
【００１２】
上述の開示において、サポート装置は、第１のコントローラからの第１の格納領域のパラメータ群と、第２のコントローラからの第２の格納領域のパラメータ群を照合する照合部を含み、照合の結果に従い、第１の格納領域のパラメータ群および第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元する。
【００１３】
この開示によれば、サポート装置は受信パラメータ群同士を照合し、一方を選択的に復元することができる。
【００１４】
上述の開示において、第２のコントローラは、さらに、第２の格納領域のパラメータ群から、所定式に従い算出される当該パラメータ群の正当性を示す第２のデータを格納する領域を、含み、照合部は、第１の格納領域のパラメータ群から、所定式に従い算出される当該パラメータ群の正当性を示す第１のデータを、第２のコントローラから受信する第２のデータと照合する。
【００１５】
この開示によれば、照合部は両パラメータ群それぞれが有する正当性を示すデータ同士を照合することで、一方のパラメータ群を選択することができる。
【００１６】
上述の開示において、制御システムは、第１のコントローラ、ドライブ装置および第２のコントローラの間で、データを互いに共有するためのネットワークを、さらに備え、第２の指令は、第２のコントローラとドライブ装置との間にネットワークを利用して形成されるコネクションを介して送信され、ドライブ装置は、第１のデータが、第２のコントローラから受信する第２のデータと一致するとき、当該ドライブ装置と第２のコントローラとの間のコネクションを確立する。
【００１７】
この開示によれば、パラメータ群が有する正当性を示すデータを、コネクションの確立とパラメータ群の照合との両方に用いることができる。
【００１８】
本開示に係るサポート装置は、制御システムに接続されるサポート装置であって、制御システムは、第１のコントローラと、第１のコントローラからの第１の指令に従ってモータを駆動するドライブ装置と、ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、を備え、ドライブ装置は、パラメータ群を参照しながら、第２の指令に従いセーフティプログラムを実行し、第１のコントローラは、パラメータ群を格納するための第１の格納領域を含み、サポート装置から受信する要求に従い、第１の格納領域のパラメータ群をサポート装置へ転送し、第２のコントローラは、サポート装置から受信する要求を従い、サポート装置へ転送されるパラメータ群を格納するための第２の格納領域を含み、サポート装置は、第１のコントローラからの第１の格納領域のパラメータ群と、第２のコントローラからの第２の格納領域のパラメータ群を照合する照合部を含み、照合の結果に従い、第１の格納領域のパラメータ群および第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元する。
【００１９】
この開示によれば、サポート装置は、第１のコントローラと第２のコントローラに要求を送信することにより、第１のコントローラ側の経路と第２のコントローラ側の経路との複数の経路からパラメータ群を受信することができる。また、サポート装置は複数経路から受信するパラメータ群同士を照合することにより、一のパラメータ群を選択して復元することができる。
【００２０】
本開示に係るプログラムは、制御システムに接続される情報処理装置で実行されるプログラムであって、制御システムは、第１のコントローラと、第１のコントローラからの第１の指令に従ってモータを駆動するドライブ装置と、ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラと、を備え、ドライブ装置は、パラメータ群を参照しながら、第２の指令に従いセーフティプログラムを実行し、第１のコントローラは、パラメータ群を格納するための第１の格納領域を含み、情報処理装置から受信する要求に従い、第１の格納領域のパラメータ群を情報処理装置へ転送し、第２のコントローラは、サポート装置から受信する要求を従い、情報処理装置へ転送されるパラメータ群を格納するための第２の格納領域を含み、プログラムは、情報処理装置のプロセッサに、第１のコントローラからの第１の格納領域のパラメータ群と、第２のコントローラからの第２の格納領域のパラメータ群を照合するステップと、照合の結果に従い、第１の格納領域のパラメータ群および第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元するステップと、を実行させる。
【００２１】
この開示によれば、情報処理装置のプロセッサによりプログラムが実行されると、情報処理装置は、第１のコントローラと第２のコントローラに要求を送信することにより、第１のコントローラ側の経路と第２のコントローラ側の経路との複数の経路からパラメータ群を受信することができる。また、情報処理装置は、複数経路から受信するパラメータ群同士を照合することにより、一のパラメータ群を選択して復元することができる。
【発明の効果】
【００２２】
本開示によれば、セーフティプログラムが参照するパラメータを転送するための改善された環境を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態に係る制御システム１の適用場面の一例を示す模式図である。
【図２】本実施の形態に係る制御システム１の構成例を示す模式図である。
【図３】本実施の形態に係る制御システム１を構成する標準コントローラ１００のハードウェア構成例を示す模式図である。
【図４】本実施の形態に係る制御システム１を構成するセーフティコントローラ２００のハードウェア構成例を示す模式図である。
【図５】本実施の形態に係る制御システム１を構成するセーフティドライバ３００およびサーボモータ４００のハードウェア構成例を示す模式図である。
【図６】本実施の形態に係る制御システム１を構成するサポート装置５００のハードウェア構成例を示す模式図である。
【図７】本実施の形態に係る制御システム１における通信フレームの伝送形態を説明するための図である。
【図８】本実施の形態に係る制御システム１の稼働時の機能分担の一例を示す模式図である。
【図９】本実施の形態に係るサポート装置５００によるアップロードとダウンロードを実行する環境を示す模式図である。
【図１０】本実施の形態に係るサポート装置５００にアップロードされるデータを例示する模式図である。
【図１１】本発明の実施の形態に係るサポート装置５００のアップロード処理の概要を示すフローチャートである。
【図１２】本発明の実施の形態に係るプロジェクトのデータの一覧の表示例の模式図である。
【図１３】本発明の実施の形態に係るアップロード処理におけるデータの流れを示す模式図である。
【図１４】本実施の形態に係る制御システム１におけるパラメータ群のダウンロードのフローの一例を示す模式図である。
【図１５】本実施の形態に係る制御システム１におけるパラメータ群のダウンロードのシーケンスの一例を示す模式図である。
【発明を実施するための形態】
【００２４】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２５】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。
【００２６】
図１は、本実施の形態に係る制御システム１の適用場面の一例を示す模式図である。本実施の形態に係る制御システム１は、例えば、ドライブ装置に対するセーフティ機能および上述の非特許文献１に規定されたＥＴＧ規格で定義されたＳＲＡのパラメータであって、制御システム１のコントローラが備えるパラメータを、制御システム１に接続されるサポート装置５００で処理可能な形式のデータに変更（以下、復元ともいう）する機能を提供する。
【００２７】
以下では「ＳＲＡのパラメータ」を単に「パラメータ」とも称し、また、「パラメータ群」は１つ以上のパラメータを含む。
【００２８】
図１を参照して、制御システム１は、主として、「第１のコントローラ」に相当する標準コントローラ１００、ならびに、標準コントローラ１００とフィールドネットワークを介して接続される「第２のコントローラ」に相当するセーフティコントローラ２００および１または複数の「ドライバ装置」に相当するセーフティドライバ３００を含む。セーフティドライバ３００の各々は、電気的に接続されたサーボモータ４００を駆動する。なお、サーボモータ４００に限らず、任意の種類のモータを採用できる。例えば任意の種類のアクチュエータ（例えば、三相交流モータ、直流モータ、単相交流モータ、多相交流モータ、リニアサーボなど）を採用できる。また、セーフティドライバ３００の実体は、サーボドライバであってもよいし、汎用的なインバータ装置であってもよい。以下の説明においては、セーフティドライバ３００をドライブ装置の一例として説明する。
【００２９】
標準コントローラ１００は、予め作成された標準制御プログラムに従って、サーボモータ４００を含む制御対象に対する標準制御を実行する。典型的には、標準コントローラ１００は、１または複数のセンサ（図示していない）などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ４００などのアクチュエータに対する指令（第１の指令）を周期的に算出する。
【００３０】
セーフティコントローラ２００は、セーフティドライバ３００に対してセーフティ機能の動作に係るセーフティ指令（第２の指令）を送信する。より具体的には、セーフティコントローラ２００は、標準コントローラ１００とは独立して、制御対象に対するセーフティ機能を実現するための監視および制御演算をサイクリック実行する。セーフティコントローラ２００は、任意のセーフティデバイス２４０からの入力信号の受付、および／または、任意のセーフティデバイス２４０への指令の出力が可能になっている。
【００３１】
本明細書において、主に標準コントローラ１００が担う「標準制御」およびセーフティコントローラ２００またはセーフティドライバ３００が担う「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、ＩＥＣ  ６１５０８などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
【００３２】
セーフティドライバ３００は、標準コントローラ１００からの指令（第１の指令）に従って、サーボモータ４００に電力を供給することで、サーボモータ４００を駆動する。セーフティドライバ３００は、サーボモータ４００からのフィードバック信号などに基づいて、サーボモータ４００の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
【００３３】
さらに、セーフティドライバ３００は、セーフティ機能に必要な状態情報をセーフティコントローラ２００へ提供するとともに、要求されるセーフティ機能に応じたモーションセーフティプログラム３２０２を実行することによりサーボモータ４００に供給する電力を調整または遮断し、また、サーボモータ４００の制御軸の位置，速度を監視または調整する。実行時にモーションセーフティプログラム３２０２は、標準コントローラ１００から提供されるパラメータ群を参照して、当該電力の調整または遮断を実施し、また当該監視，調整を実施する。パラメータ群は、モーションセーフティのための値（位置、速度、範囲など）を示す１つ以上のＳＲＡのパラメータを含む。
【００３４】
サーボモータ４００は、セーフティドライバ３００からの電力を受けて回転するモータを有するとともに、モータの回転軸に結合されたエンコーダからの検出信号をフィードバック信号としてセーフティドライバ３００へ出力する。
【００３５】
セーフティドライバ３００は、モーションセーフティプログラム３２０２を実行することにより、パラメータ群の値とサーボモータ４００のエンコーダからのフィードバックとを比較することにより、サーボモータ４００が正常に制御されていることを監視する。セーフティドライバ３００が正常に制御を行なっている限りは、通常の動作を継続することができる。セーフティドライバ３００が、サーボモータ４００の制御が正しくないと判断した場合には、セーフティドライバ３００からサーボモータ４００への停止信号を出力する。
【００３６】
サポート装置５００は、限定されないが、例えば標準コントローラ１００またはセーフティコントローラ２００に格納されているプロジェクトを生成するツールを備える。プロジェクトの生成は、実機である標準コントローラ１００またはセーフティコントローラ２００に既存の（インストールされている）プロジェクトを編集すること、および新規にプロジェクトを生成することの両方の概念を含み得る。プロジェクトの生成には、パラメータ群の生成（編集を含む）が含まれる。
【００３７】
制御システム１は、サポート装置５００に対して、パラメータ群を転送するための複数の経路（図１のフローＳ１,Ｓ４）を提供する。具体的には、標準コントローラ１００は、パラメータ群を格納するための「第１の格納領域」に相当する領域Ｅ１を備える。標準コントローラ１００は、サポート装置５００から受信するアップロードの要求に従い、領域Ｅ１のパラメータ群をサポート装置５００へ転送する（フローＳ１）。また、セーフティコントローラ２００はパラメータ群を格納するための「第２の格納領域」に相当する領域Ｅ２を備える。セーフティコントローラ２００は、サポート装置５００から受信するアップロードの要求を従い、領域Ｅ２のパラメータ群をサポート装置５００へ転送する（フローＳ２,Ｓ４）。
【００３８】
したがって、制御システム１では、サポート装置５００に対し、複数の経路からパラメータ群をアップロードすることができるから、サポート装置５００は、１の経路が使用できないとしても、他の経路からパラメータ群を受信することができる。
【００３９】
また、セーフティコントローラ２００の領域Ｅ２には、領域Ｅ１のパラメータ群と同サイズのパラメータ群が格納されてもよく、または、サポート装置５００で復元可能に低サイズ化されたパラメータ群が格納されてもよい。領域Ｅ２は、モーションセーフティプログラム３２０２により参照されないパラメータ群であって、上記の複数経路のうちの１つを提供するためのパラメータ群を格納するための領域であるが、領域Ｅ２に、サポート装置５００で復元可能な程度に低サイズ化されたパラメータ群が格納されることで、セーフティコントローラ２００において領域Ｅ２係るメモリ消費量を抑制でき、また、フローＳ２，Ｓ４によるパラメータ群転送のための通信負荷を低くすることができる。
【００４０】
また、サポート装置５００は、複数経路から受信したパラメータ群の正当性を検出する。具体的には、サポート装置５００は、セーフティコントローラ２００からパラメータ群とともに、当該パラメータ群の正当性を示すＣＲＣ（Cyclic  Redundancy  Check）データを受信する（フローＳ３）。サポート装置５００は、フローＳ１で受信したパラメータ群からＣＲＣデータを算出し、算出したＣＲＣデータをフローＳ３で受信したＣＲＣデータと照合する。サポート装置５００は、照合の結果、算出したＣＲＣデータが、フローＳ３でセーフティコントローラ２００から受信したＣＲＣデータに一致しないと判断したとき、標準コントローラ１００からのパラメータ群ではなく、セーフティコントローラ２００からのパラメータ群の方が正当であると決定する。つまり、制御システム１では、セーフティ機能を実現するために、セーフティコントローラ２００の操作が許可される者は制限されているので、領域Ｅ２のパラメータ群が改ざんされる可能性は低く、したがって、正当である可能性が高い。
【００４１】
このように図１の制御システム１では、標準コントローラ１００およびセーフティコントローラ２００において、パラメータ群を格納するための領域Ｅ１およびＥ２をそれぞれ備えることにより、サポート装置５００に対しパラメータ群を提供するための複数の経路を提供することができる。
【００４２】
以下、本発明のより具体的な応用例として、本実施の形態に係る制御システム１のより詳細な構成および処理について説明する。
【００４３】
＜Ｂ．制御システム１の構成例＞
まず、制御システム１の構成例について説明する。図２は、本実施の形態に係る制御システム１の構成例を示す模式図である。
【００４４】
（ｂ１：全体構成）
図２を参照して、制御システム１は、主として、標準コントローラ１００、ならびに、標準コントローラ１００とフィールドネットワーク２を介して接続されるセーフティコントローラ２００および１または複数のセーフティドライバ３００を含む。セーフティドライバ３００の各々は、電気的に接続されたサーボモータ４００を駆動する。なお、サーボモータ４００に限らず、任意の種類のモータを採用できる。
【００４５】
標準コントローラ１００は、予め作成された標準制御プログラムに従って、サーボモータ４００を含む制御対象に対する標準制御を実行する。典型的には、標準コントローラ１００は、１または複数のセンサ（図示していない）などからの入力信号に応じた制御演算をサイクリック実行することで、サーボモータ４００などのアクチュエータに対する指令を周期的に算出する。
【００４６】
セーフティコントローラ２００は、標準コントローラ１００とは独立して、制御対象に対するセーフティ機能を実現するための監視および制御演算をサイクリック実行する。セーフティコントローラ２００は、任意のセーフティデバイス２４０からの入力信号の受付、および／または、任意のセーフティデバイス２４０への指令の出力が可能になっている。
【００４７】
セーフティドライバ３００は、標準コントローラ１００からの指令に従って、サーボモータ４００に電力を供給することで、サーボモータ４００を駆動する。セーフティドライバ３００は、サーボモータ４００からのフィードバック信号などに基づいて、サーボモータ４００の回転位置、回転速度、回転加速度および発生するトルクなどを周期的に算出する。
【００４８】
セーフティドライバ３００は、セーフティ機能に必要な状態情報をセーフティコントローラ２００へ提供するとともに、要求されるセーフティ機能に応じて、サーボモータ４００に供給する電力を調整または遮断する。
【００４９】
サーボモータ４００は、セーフティドライバ３００からの電力を受けて回転するモータを有するとともに、モータの回転軸に結合されたエンコーダからの検出信号をフィードバック信号としてセーフティドライバ３００へ出力する。
【００５０】
（ｂ２：標準コントローラ１００）
図３は、本実施の形態に係る制御システム１を構成する標準コントローラ１００のハードウェア構成例を示す模式図である。図３を参照して、標準コントローラ１００は、プロセッサ１０２と、メインメモリ１０４と、ストレージ１１０と、上位ネットワークコントローラ１０６と、フィールドネットワークコントローラ１０８と、ＵＳＢ（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）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。さらに、標準コントローラ１００に表示装置やサポート装置などの機能を統合した構成を採用してもよい。
【００６１】
（ｂ３：セーフティコントローラ２００）
図４は、本実施の形態に係る制御システム１を構成するセーフティコントローラ２００のハードウェア構成例を示す模式図である。図４を参照して、セーフティコントローラ２００は、プロセッサ２０２と、メインメモリ２０４と、ストレージ２１０と、フィールドネットワークコントローラ２０８と、ＵＳＢコントローラ２２０と、セーフティローカルバスコントローラ２１６とを含む。これらのコンポーネントは、プロセッサバス２１８を介して接続されている。
【００６２】
プロセッサ２０２は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、ＣＰＵやＧＰＵなどで構成される。具体的には、プロセッサ２０２は、ストレージ２１０に格納されたプログラム（一例として、システムプログラム２１０２およびセーフティプログラム２１０４）を読出して、メインメモリ２０４に展開して実行することで、必要なセーフティ機能を提供するための制御演算、および、後述するような各種処理を実現する。
【００６３】
メインメモリ２０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ２１０は、例えば、ＳＳＤやＨＤＤなどの不揮発性記憶装置などで構成される。
【００６４】
ストレージ２１０には、基本的な機能を実現するためのシステムプログラム２１０２に加えて、要求されるセーフティ機能に応じて作成されたセーフティプログラム２１０４が格納される。さらに、ストレージ２１０には、変数などを設定するための設定情報２１０６が格納される。
【００６５】
設定情報２１０６は、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８を有する。低サイズ化パラメータ群２１０９は、ストレージ２１０の領域Ｅ２に格納される。具体的には、領域Ｅ２は、サポート装置５００からのアップロード時の要求を従い、サポート装置５００へ転送されるべきパラメータ群（すなわち低サイズ化パラメータ群２１０９）を格納するための領域である。また、ＣＲＣデータ２１０８は、ストレージ２１０の領域Ｅ３に格納される。ＣＲＣデータ２１０８は、サポート装置５００から受信されるデータであって、低サイズ化パラメータ群２１０９の低サイズ化される前のパラメータ群から、所定式に従い算出される当該パラメータ群の正当性を示す。
【００６６】
本実施の形態では、低サイズ化パラメータ群２１０９は、セーフティドライバ３００に対するセーフティ機能の動作に係るデータとしては用いられず、主に、サポート装置５００に対してアップロードされるべきパラメータ群として用いられる。
【００６７】
設定プログラム２１０１は、実行されると、ローディング機能を実現する。ローディング機能は、サポート装置５００から転送（ダウンロード）されるセーフティプログラム２１０４、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８を含む設定情報２１０６の内容を、ストレージ２１０の対応する領域に格納する機能を含む。これにより、ストレージ２１０の元のセーフティプログラム２１０４、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８を含む設定情報２１０６の内容は変更（書換え，更新）される。また、ローディング機能は、サポート装置５００からの要求に従い、ストレージ２１０のセーフティプログラム２１０４、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８を含む設定情報２１０６の内容を読出し、サポート装置５００に転送（アップロード）する機能を含む。
【００６８】
フィールドネットワークコントローラ２０８は、フィールドネットワーク２を介して、標準コントローラ１００およびセーフティドライバ３００を含む任意のデバイスとの間でデータを遣り取りする。制御システム１においては、セーフティコントローラ２００のフィールドネットワークコントローラ２０８は、フィールドネットワーク２の通信スレーブとして機能する。
【００６９】
ＵＳＢコントローラ２２０は、ＵＳＢ接続を介して、サポート装置５００などの情報処理装置との間でデータを遣り取りする。
【００７０】
セーフティローカルバスコントローラ２１６は、セーフティローカルバスを介して、セーフティコントローラ２００に接続される任意のセーフティユニットとの間でデータを遣り取りする。図４には、セーフティユニットの一例として、セーフティユニットＩＯユニット２３０を示す。
【００７１】
セーフティユニットＩＯユニット２３０は、任意のセーフティデバイス２４０との間で入出力信号を遣り取りする。より具体的には、セーフティユニットＩＯユニット２３０は、セーフティセンサやセーフティスイッチなどのセーフティデバイス２４０からの入力信号を受付ける。あるいは、セーフティユニットＩＯユニット２３０は、セーフティリレーなどのセーフティデバイス２４０へ指令を出力する。
【００７２】
図４には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。あるいは、セーフティコントローラ２００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。
【００７３】
（ｂ４：セーフティドライバ３００およびサーボモータ４００）
図５は、本実施の形態に係る制御システム１を構成するセーフティドライバ３００およびサーボモータ４００のハードウェア構成例を示す模式図である。図５を参照して、セーフティドライバ３００は、フィールドネットワークコントローラ３０２と、制御部３１０と、ドライブ回路３３０と、フィードバック受信回路３３２とを含む。
【００７４】
フィールドネットワークコントローラ３０２は、フィールドネットワーク２を介して、標準コントローラ１００およびセーフティコントローラ２００を含む任意のデバイスとの間でデータを遣り取りする。図５に示す制御システム１においては、セーフティドライバ３００のフィールドネットワークコントローラ３０２は、フィールドネットワーク２の通信スレーブとして機能する。
【００７５】
制御部３１０は、セーフティドライバ３００を動作させるために必要な演算処理を実行する。一例として、制御部３１０は、プロセッサ３１２，３１４と、メインメモリ３１６と、ストレージ３２０とを含む。
【００７６】
プロセッサ３１２は、サーボモータ４００を駆動するための制御演算を主として実行する演算処理部に相当する。プロセッサ３１４は、サーボモータ４００に係るセーフティ機能を提供するための制御演算を主として実行する演算処理部に相当する。プロセッサ３１２，３１４は、いずれもＣＰＵなどで構成される。
【００７７】
メインメモリ３１６は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ３２０は、例えば、ＳＳＤやＨＤＤなどの不揮発性記憶装置などで構成される。
【００７８】
ストレージ３２０には、サーボモータ４００に係るサーボ制御を実現するためのサーボ制御プログラム３２０１と、サーボモータ４００に係るモーションセーフティ機能を実現するためのモーションセーフティプログラム３２０２と、変数などを設定するための設定情報３２０３と、パラメータ群１３０が格納される。パラメータ群１３０は、標準コントローラ１００から転送されてストレージ３２０の領域Ｅ４に格納される。
【００７９】
設定情報３２０３は、プロセッサ３１４により実行されるＣＲＣ（Cyclic  Redundancy  Check）データを算出するＣＲＣ算出プログラム３２０４および照合プログラム３２０５を含む。ＣＲＣ算出プログラム３２０４は、領域Ｅ４のパラメータ群１３０から、所定の演算式に従い、誤り検出のためのＣＲＣデータ（値）を算出する。このＣＲＣデータは「第１のデータ」に相当し、パラメータ群１３０に誤り（または改ざん）がない等のパラメータ群１３０の正当性を検出するための値であって、例えばパラメータ群１３０のバイナリデータから算出されるチェックサム等を含み得る。なお、ＣＲＣデータはチェックサムに限定されない。
【００８０】
照合プログラム３２０５は、ＣＲＣ算出プログラム３２０４により算出されたＣＲＣデータと、セーフティコントローラ２００から受信する「第２のデータ」に相当するＣＲＣデータ２１０８とを照合する。照合結果が、算出されたＣＲＣデータはＣＲＣデータ２１０８に一致することを示すとき、セーフティドライバ３００は、セーフティコントローラ２００との間で論理コネクション４を確立させる。つまり、セーフティドライバ３００は、セーフティコントローラ２００に対してコネクション確立の通知を送信する。
【００８１】
図５には、２つのプロセッサ３１２，３１４がそれぞれ異なる目的の制御演算を実行することで信頼性を高める構成を例示するが、これに限らず、要求されるセーフティ機能を実現できればどのような構成を採用してもよい。例えば、単一のプロセッサに複数のコアが含まれるような場合には、プロセッサ３１２，３１４にそれぞれ対応する制御演算を実行するようにしてもよい。また、図５には、プロセッサ３１２，３１４がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【００８２】
ドライブ回路３３０は、コンバータ回路およびインバータ回路などを含み、制御部３１０からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ４００へ供給する。
【００８３】
フィードバック受信回路３３２は、サーボモータ４００からのフィードバック信号を受信して、その受信結果を制御部３１０へ出力する。
【００８４】
サーボモータ４００は、典型的には、三相交流モータ４０２および三相交流モータ４０２の回転軸に取付けられたエンコーダ４０４を含む。
【００８５】
三相交流モータ４０２は、セーフティドライバ３００から供給される電力を受けて回転力を発生するアクチュエータである。図５には、一例として、三相交流モータを例示するが、これに限らず、直流モータであってもよいし、単相交流モータあるいは多相交流モータであってもよい。さらに、リニアサーボのような直線に沿って駆動力を発生するアクチュエータを採用してもよい。
【００８６】
エンコーダ４０４は、三相交流モータ４０２の回転数に応じたフィードバック信号（典型的には、回転数に応じた数のパルス信号）を出力する。
【００８７】
（ｂ５：サポート装置５００）
図６は、本実施の形態に係る制御システム１を構成するサポート装置５００のハードウェア構成例を示す模式図である。サポート装置５００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いて実現される。
【００８８】
図６を参照して、サポート装置５００は、プロセッサ５０２と、メインメモリ５０４と、入力部５０６と、出力部５０８と、ストレージ５１０と、光学ドライブ５１２と、通信インターフェィスの一実施例であるＵＳＢコントローラ５２０とを含む。これらのコンポーネントは、プロセッサバス５１８を介して接続されている。
【００８９】
プロセッサ５０２は、ＣＰＵやＧＰＵなどで構成され、ストレージ５１０に格納されたプログラムを読出して、メインメモリ５０４に展開して実行することで、後述するような各種処理を実現する。
【００９０】
メインメモリ５０４は、ＤＲＡＭやＳＲＡＭなどの揮発性記憶装置などで構成される。ストレージ５１０は、例えば、ＨＤＤやＳＳＤなどの不揮発性記憶装置などで構成される。
【００９１】
ストレージ５１０には、基本的な機能を実現するためのＯＳ５１０２に加えて、サポート装置５００としての機能を提供するためのサポートプログラム５１０４が格納される。すなわち、サポートプログラム５１０４は、制御システム１に接続される情報処理装置のプロセッサにより実行されることで、本実施の形態に係るサポート装置５００を実現する。
【００９２】
ストレージ５１０は、後述するプロジェクト５３０を格納する領域Ｅ５、初期パラメータ群６０を保持（格納）するための領域Ｅ６、および変更パラメータ群６５を格納するための領域Ｅ７を含む。
【００９３】
サポートプログラム５１０４は、実行されることにより、各種の開発環境（ツール等）を提供する。サポートプログラム５１０４は、パラメータ群を生成するツールを提供するパラメータ生成プログラム５１０５、低サイズ化プログラム５１０６、ＣＲＣ算出プログラム５１０７、照合プログラム５１０８、プログラムおよびデータのダウンロードまたはアップロードを実施するためのロードプログラム５１０９、およびプロジェクト管理プログラム５１１０を含む。プロジェクト管理プログラム５１１０は、プロジェクト５３０を生成するためのプログラムも含む。
【００９４】
ここで「プロジェクト」は、１つのアプリケーションプログラムを構成するための情報である。本実施の形態では、プロジェクト５３０は、標準制御プログラム１１０４、セーフティプログラム２１０４および関連する設定情報を含む。この設定情報は、パラメータ群１３０、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８などを含む。
【００９５】
ロードプログラム５１０９は、ダウンロードのプログラムとアップロードのプログラムとを含む。ダウンロードのプログラムは、実行されると、プロジェクト５３０を、標準コントローラ１００およびセーフティコントローラ２００に転送する（これを、ダウンロード処理という）。これにより、標準制御プログラム１１０４およびパラメータ群１３０は、標準コントローラ１００に転送されてストレージ１１０に格納され、セーフティプログラム２１０４、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８は、セーフティコントローラ２００に転送されてストレージ２１０に格納される。また、アップロードのプログラムは、実行されると、標準コントローラ１００およびセーフティコントローラ２００にアップロードの要求を送信し、要求に応じて標準コントローラ１００およびセーフティコントローラ２００から受信したデータを、ストレージ１１０および２１０のそれぞれに格納する（これを、アップロード処理という）。標準コントローラ１００は、サポート装置５００からの要求に従い、ストレージ１１０の標準制御プログラム１１０４およびパラメータ群１３０を含む設定情報１１０６の内容を、サポート装置５００に転送する。また、セーフティコントローラ２００は、サポート装置５００からの要求に従い、ストレージ２１０のセーフティプログラム２１０４、および低サイズ化パラメータ群２１０９とＣＲＣデータ２１０８を含む設定情報の内容を、サポート装置５００に転送する。
【００９６】
パラメータ生成プログラム５１０５は、実行されると、入力部５０６を介して受付けるユーザ操作に従い、領域Ｅ６から読出した初期パラメータ群６０の内容を変更することにより、変更パラメータ群６５を生成する。生成された変更パラメータ群６５は、領域Ｅ７に格納される。
【００９７】
低サイズ化プログラム５１０６は、実行されると、領域Ｅ７の変更パラメータ群６５から、当該変更パラメータ群６５のデータサイズよりも小さいサイズを有したパラメータ群を生成するツールを提供する。具体的には、このツールは、変更パラメータ群６５と初期パラメータ群６０を比較し、その相違である差分を検出し、検出した差分をZIP等の方式で圧縮することにより、低サイズ化を実現する。なお、低サイズ化の方法は、このような差分と圧縮の組合せに限定されず、例えば、差分のみによる低サイズ化、または、変更パラメータ群６５の圧縮による低サイズ化であってもよい。
【００９８】
サポートプログラム５１０４は、実行されると、セーフティコントローラ２００からアップロードされた低サイズ化パラメータ群２１０９を伸張（解凍または展開）する。伸張されたパラメータ群は、すなわち上記に述べた差分に相当する。サポートプログラム５１０４は、差分を用いて領域Ｅ６から読出した初期パラメータ群６０を変更する。これにより、低サイズ化される前のパラメータ群が復元（以下、復元パラメータ群ともいう）される。
【００９９】
ＣＲＣ算出プログラム５１０７は、領域Ｅ７の変更パラメータ群６５から、所定の演算式に従い、誤り検出のためのＣＲＣデータ（値）を算出するとともに、標準コントローラ１００からアップロードされたパラメータ群１３０から、所定の演算式に従い、誤り検出のためのＣＲＣデータ（値）を算出する。このように算出されるＣＲＣデータは、変更パラメータ群６５（またはパラメータ群１３０）に誤りまたは改ざんがない等の当該パラメータ群の正当性を検出するための値である。なお、ＣＲＣ算出プログラム５１０７に適用される所定の演算式は、セーフティドライバ３００のＣＲＣ算出プログラム３２０４に適用される演算式と一致している。
【０１００】
照合プログラム５１０８は、上記のＣＲＣ算出プログラム５１０７により算出されたパラメータ群１３０のＣＲＣデータを、セーフティコントローラ２００からアップロードされたＣＲＣデータ２１０８と照合する。サポート装置５００は、照合の結果に従い、標準コントローラ１００からアップロードされたパラメータ群１３０およびセーフティコントローラ２００からアップロードされたパラメータ群、すなわち上記の復元パラメータ群のうちの一方を選択し、所定処理に用いる。この所定処理は、パラメータ群の復元またはプロジェクト５３０の生成を含む。
【０１０１】
入力部５０６は、キーボードやマウスなどで構成され、サポート装置５００に対するユーザ操作を受付ける。出力部５０８は、ディスプレイ５０９、各種インジケータ、プリンタなどで構成され、プロセッサ５０２からの処理結果などを出力する。
【０１０２】
ＵＳＢコントローラ５２０は、ＵＳＢ接続を介して、標準コントローラ１００などとの間のデータを遣り取りする。
【０１０３】
サポート装置５００は、光学ドライブ５１２を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体５１４（例えば、ＤＶＤ（Digital  Versatile  Disc）などの光学記録媒体）から、その中に格納されたプログラムが読取られてストレージ５１０などにインストールされる。
【０１０４】
サポート装置５００で実行されるサポートプログラム５１０４などは、コンピュータ読取可能な記録媒体５１４を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置５００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【０１０５】
図６には、プロセッサ５０２がプログラムを実行することで、サポート装置５００として必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【０１０６】
なお、制御システム１が稼動中において、サポート装置５００は、標準コントローラ１００から取り外されていてもよい。
【０１０７】
＜Ｃ．制御システム１のデータ通信＞
次に、制御システム１におけるデータ通信の一例について説明する。
【０１０８】
図７は、本実施の形態に係る制御システム１における通信フレームの伝送形態を説明するための図である。図７を参照して、制御システム１のフィールドネットワーク２においては、データ通信が行われており、標準コントローラ１００を通信マスタとして、通信フレーム６００がサイクリック（例えば、数〜１０数ｍｓｅｃ）にデバイス間を一巡する。通信フレーム６００が伝送する周期をプロセスデータ通信周期とも称する。
【０１０９】
本実施の形態においては、このような通信フレーム６００をサイクリックに伝送するフィールドネットワーク２のプロトコルの一例として、ＥｔｈｅｒＣＡＴ（登録商標）を採用する。
【０１１０】
通信フレーム６００には、デバイス毎にデータ領域が割り当てられている。各デバイスは、通信フレーム６００を受信すると、当該受信した通信フレーム６００内の自デバイスに割り当てられたデータ領域に予め設定されたデータの現在値を書込む。そして、現在値の書込み後の通信フレーム６００を次段のデバイスに送出する。各デバイスにより書込まれたデータの現在値は他のデバイスから参照可能になっている。
【０１１１】
各デバイスが通信フレーム６００に予め設定されたデータの現在値を書込むことで、フィールドネットワーク２を一巡して通信マスタ（標準コントローラ１００）に戻る通信フレーム６００には、各デバイスにより収集された最新の値が含まれることになる。
【０１１２】
本実施の形態においては、さらに、このようなデータ通信を利用して、セーフティコントローラ２００とセーフティドライバ３００の各々との間で論理コネクション４が形成される（図７参照）。この論理コネクション４は、セーフティ機能を実現するためのデータの遣り取りに用いられる。
【０１１３】
上述したように、フィールドネットワーク２のプロトコルとしてＥｔｈｅｒＣＡＴを採用する場合には、ＦＳｏＥのプロトコルを用いて論理コネクション４を形成できる。
【０１１４】
＜Ｄ．制御システム１の機能分担＞
次に、制御システム１における稼働時の機能分担の一例について説明する。図８は、本実施の形態に係る制御システム１の稼働時の機能分担の一例を示す模式図である。
【０１１５】
図８を参照して、標準コントローラ１００が実行する標準制御１５０に関して、セーフティドライバ３００はサーボ制御３５０を実行する。標準制御１５０は、制御対象に予め設定されたユーザプログラムに従って、サーボモータ４００を駆動するための指令を周期的に算出する処理を含む。また、サーボ制御３５０は、標準制御１５０により周期的に算出される指令に従ってサーボモータ４００を駆動するための制御、および、サーボモータ４００の動作状態を示す状態値を取得して出力する処理を含む。サーボ制御３５０は、セーフティドライバ３００のプロセッサ３１２（図５参照）が担当する。
【０１１６】
一方、セーフティコントローラ２００が提供するセーフティ機能２５０に対応して、セーフティドライバ３００はモーションセーフティ機能３６０を提供する。モーションセーフティ機能３６０は、セーフティドライバ３００のプロセッサ３１４（図５参照）が担当する。
【０１１７】
セーフティ機能２５０は、標準コントローラ１００が実行する標準制御１５０が保持する状態値、セーフティデバイス２４０からの信号によって示される状態値、および、セーフティドライバ３００が保持する状態値などに基づいて、予め定められた条件が成立すると、予め指定されているセーフティ機能を有効化する。
【０１１８】
予め指定されているセーフティ機能を有効化する処理は、例えば、セーフティドライバ３００に対するセーフティ指令の出力、あるいは、セーフティデバイス２４０に対してセーフティ指令の出力（例えば、特定の装置への電力供給に係るセーフティリレーを遮断する）などを含む。
【０１１９】
セーフティドライバ３００では、モーションセーフティプログラム３２０２が実行されると、セーフティコントローラ２００からのセーフティ指令に応答して、指定されたモーションセーフティ機能３６０を提供する。指定されたモーションセーフティ機能３６０の種類に応じて、サーボ制御プログラム３２０１が実施するサーボ制御３５０によるサーボモータ４００の制御に介入して、サーボモータ４００への電力供給を遮断する処理、あるいは、サーボ制御３５０によるサーボモータ４００の制御の状態値が予め定められた制限範囲内に収まっているか否かを監視する処理などが実行される。モーションセーフティプログラム３２０２は、領域Ｅ４のパラメータ群１３０が示すＳＲＡのパラメータを参照して、上記の電力の供給を遮断または上記の監視の処理を実施する。
【０１２０】
＜Ｅ．サポート装置５００のアップロードとダウンロード＞
サポート装置５００のアップロードとダウンロードの以下の説明では、説明を簡単にするために、制御システム１に備えられる１台のセーフティドライバ３００をターゲットにしているが、当該１台のセーフティドライバ３００に対する処理は、他の各セーフティドライバ３００についても同様に適用することができる。
【０１２１】
図９は、本実施の形態に係るサポート装置５００によるアップロードとダウンロードを実行する環境を示す模式図である。図９では、領域Ｅ５のプロジェクト５３０が当該環境に関連付けて示されている。図１０は、本実施の形態に係るサポート装置５００にアップロードされるデータを例示する模式図である。
【０１２２】
図９を参照して、この環境では、プロセッサ５０２がサポートプログラム５１０４のロードプログラム５１０９を実行することにより、ロードツール５１１１が提供される。また、プロセッサ５０２が、プロジェクト管理プログラム５１１０を実行することにより、プロジェクトマネージャ５１１４のツールが提供される。ロードツール５１１１は、さらに、ダウンロードツール５１１２とアップロードツール５１１３を提供する。プロジェクトマネージャ５１１４は、照合プログラム５１０８を実行することによる照合部５１１５のツールを提供する。プロジェクト５３０は、標準コントローラ１００に適用するプロジェクト５３１およびセーフティコントローラ２００に適用するプロジェクト５３２を含む。
【０１２３】
ダウンロードツール５１１２は、プロジェクト５３０の標準コントローラのプロジェクト５３１を標準コントローラ１００へ転送することにより、上記のダウンロード処理を実施する。また、アップロードツール５１１３は、上記のアップロード処理を実施することにより、領域Ｅ５に標準コントローラ１００からアップロードされたデータに基づく標準コントローラのプロジェクト５３１を格納し、セーフティコントローラ２００からアップロードされたデータに基づくセーフティコントローラのプロジェクト５３２を格納する。これにより、領域Ｅ５においてプロジェクト５３０が格納される。
【０１２４】
図１０を参照して、サポート装置５００へアップロードされるデータは、標準コントローラ１００からのデータ１６０と、セーフティコントローラ２００からのデータ２６０を含む。データ１６０は、標準制御プログラム１１０４および設定情報１１０６の内容を含む。設定情報１１０６の内容は、限定されないが、標準制御プログラム１１０４が実行時に参照する軸設定、Ｉ／Ｏマップ設定、変数テーブルおよびＥｔｈｅｒＣＡＴ設定を含む。設定情報１１０６の内容は、さらに、標準コントローラ１００からセーフティドライバ３００に転送されるパラメータ群１３０を含む。
【０１２５】
また、データ２６０は、セーフティプログラム２１０４および設定情報２１０６の内容を含む。設定情報２１０６の内容は、限定されないが、セーフティプログラム２１０４が実行時に参照するＦＳｏＥコネクション設定、Ｉ／Ｏマップ設定および変数テーブルを含む。設定情報２１０６の内容は、さらに、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８を含む。
【０１２６】
（ｅ１：アップロード処理とプロジェクトの生成）
図１１は、本発明の実施の形態に係るサポート装置５００のアップロード処理の概要を示すフローチャートである。図１１を参照して、プロジェクト５３０の生成処理を実施するケースを例示して、アップロード時の処理を説明する。図１１を参照して、プロジェクトマネージャ５１１４は、生成を予定するプロジェクト５３０の機種が、サポート装置５００に接続される標準コントローラ１００およびセーフティコントローラ２００の機種と一致するかを判定する（ステップＵ１）。例えば、プロジェクトマネージャ５１１４は、入力部５０６を介して受付けるユーザ操作が示す機種と、サポート装置５００が標準コントローラ１００，セーフティコントローラ２００から受信する機種を照合することにより判定する。プロジェクトマネージャ５１１４は、照合の結果に基き、一致しないと判定すると（ステップＵ１でＮＯ）、アップロードに失敗の通知を出力するなどの処理を実施し（ステップＵ１１）、処理を終了する。
【０１２７】
一方、プロジェクトマネージャ５１１４は、照合の結果に基き、一致すると判定すると（ステップＵ１でＹＥＳ）、プロジェクトマネージャ５１１４は、アップロードツール５１１３を起動する。
【０１２８】
アップロードツール５１１３は、標準コントローラ１００およびセーフティコントローラ２００にアップロード要求を送信することにより、アップロード処理を開始する（ステップＵ３）。ステップＵ３のアップロード処理では、アップロードツール５１１３は、標準コントローラ１００から標準コントローラのデータ１６０を受信するとともに、セーフティコントローラ２００からセーフティコントローラのデータ２６０を受信する。プロジェクトマネージャ５１１４は、データ２６０の低サイズ化パラメータ群２１０９から復元パラメータ群を取得する。
【０１２９】
さらにステップＵ３では、プロジェクトマネージャ５１１４は、データ１６０から要素毎にデータを読出し、読出されたデータの型に基づき領域Ｅ５のプロジェクト５３１を検索し、検索の結果に基き、当該要素のデータの型と同じデータの型が、プロジェクト５３１内に存在するかを判定する（ステップＵ５）。
【０１３０】
上記に述べたデータの型とは、そのデータがどんな要素を持つのかを一意に決めることができる情報であって、例えば、ラダープログラム、変数テーブル等の型を含む。この型は、ユニークな識別子（ID：AAAA-BBBB-CCCC-DDDD)や、文字列(Type:LadderProgram)などを用いて表現され得る。プロジェクトマネージャ５１１４は、TypeとSubTypeという文字列情報でデータ管理している。例えば、ラダープログラムの場合、Type:Program, SubType:Ladderで管理される。
【０１３１】
ステップＵ３では、プロジェクトマネージャ５１１４は、データ２６０についても同様に、要素毎にデータを読出し、読出されたデータの型に基づき領域Ｅ５のプロジェクト５３２を検索し、検索の結果に基き、当該要素のデータの型と同じデータの型が、プロジェクト５３２内に存在するかを判定する（ステップＵ５）。
【０１３２】
プロジェクトマネージャ５１１４は、同じデータの型がプロジェクト５３１またはプロジェクト５３２に存在すると判定すると（ステップＵ５でＹＥＳ）、プロジェクトマネージャ５１１４は、領域Ｅ５のプロジェクト５３１またはプロジェクト５３２の対応するデータを、読出されたデータで上書きする（ステップＵ７）。一方、プロジェクトマネージャ５１１４は、同じデータの型がプロジェクト５３１またはプロジェクト５３２に存在しないと判定すると（ステップＵ５でＮＯ）、プロジェクトマネージャ５１１４は、データ１６０またはデータ２６０から読出されたデータを、プロジェクト５３１またはプロジェクト５３２に作成する（ステップＵ９）。ステップＵ７およびステップＵ９の処理により、プロジェクトの生成処理がなされる。
【０１３３】
プロジェクトマネージャ５１１４は、受信したデータ１６０およびデータ２６０の各データを用いたプロジェクト５３１およびプロジェクト５３２を含むプロジェクト５３０の生成処理が終了したか否かを判定する（ステップＵ１１）。処理が終了したと判定すると（ステップＵ１１でＹＥＳ）、プロジェクトの生成処理は終了する。終了していないと判定されると（ステップＵ１１でＮＯ）、ステップＵ３に戻り、データ１６０およびデータ２６０に含まれる次のデータについて、ステップＵ５以降のプロジェクトの生成処理が上述と同様に実施される。
【０１３４】
図１２は、本発明の実施の形態に係るプロジェクトのデータの一覧の表示例の模式図である。図１２を参照して、プロジェクトマネージャ５１１４は、領域Ｅ５に格納された標準コントローラのプロジェクト５３１およびセーフティコントローラのプロジェクト５３２を構成するデータを視認可能なように、ディスプレイ５０９に一覧で表示させる。
【０１３５】
（ｅ２：パラメータ群のアップロードの手順）
図１３は、本発明の実施の形態に係るアップロード処理におけるデータの流れを示す模式図である。図１１にステップＵ３において、パラメータ群１３０、低サイズ化パラメータ群２１０９、ＣＲＣデータ２１０８およびセーフティプログラム２１０４のアップロードの流れの具体例を、図１３を参照して説明する。
【０１３６】
図１３を参照して、アップロードツール５１１３は、標準コントローラ１００からパラメータ群１３０をアップロードする（フローＳ１）。また、アップロードツール５１１３は、セーフティコントローラ２００から低サイズ化パラメータ群２１０９をアップロードする（フローＳ２）。また、アップロードツール５１１３は、セーフティコントローラ２００からセーフティプログラム２１０４とＣＲＣデータ２１０８をアップロードする（フローＳ３）。
【０１３７】
プロジェクトマネージャ５１１４は、フローＳ２で受信した低サイズ化パラメータ群２１０９から復元パラメータ群を生成し（ステップＵ１３）、所定条件が満たされたとき、生成された復元パラメータ群で、フローＳ１で転送されたパラメータ群１３０を上書きする（ステップＵ１２）。
【０１３８】
照合部５１１５が、フローＳ１で標準コントローラ１００から受信したパラメータ群１３０から算出されたＣＲＣデータと、フローＳ３でセーフティコントローラ２００から受信したＣＲＣデータ２１０８を照合する（ステップＵ１３）。上記の所定条件は、照合の結果が、算出されたＣＲＣデータがＣＲＣデータ２１０８に一致しないことを示す。
【０１３９】
ここで、制御システム１に適用されるセーフティシステムでは、セーフティコントローラ２００の操作は、限られた操作者に対してのみ許可されている。したがって、セーフティコントローラ２００に格納された低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８が意図せずに変更（改ざん等）される可能性は低い。このような状況から、上記の所定条件が満たされたときは、標準コントローラ１００からのパラメータ群１３０よりも、低サイズ化パラメータ群２１０９から復元された復元パラメータ群の方が高い正当性を有する。
【０１４０】
これにより、上記の所定条件が満たされたときは、上記のプロジェクト生成処理により生成される標準コントローラのプロジェクト５３１のパラメータ群１３０を、セーフティコントローラ２００からアップロードされた低サイズ化パラメータ群２１０９の復元パラメータ群と同じ内容を示すように変更（上書き）することで、サポート装置５００において、より確かなパラメータ群の復元とプロジェクト５３０の復元が可能となる。
【０１４１】
（ｅ３：ダウンロード処理とコネクション確立）
図１４は、本実施の形態に係る制御システム１におけるパラメータ群のダウンロードのフローの一例を示す模式図である。図１５は、本実施の形態に係る制御システム１におけるパラメータ群のダウンロードのシーケンスの一例を示す模式図である。図１４中のフローＳ１１〜Ｓ１５は、図１０中のフローＳ１１〜Ｓ１５に対応する。本実施の形態では、例えば制御システム１の起動時などにダウンロード処理が実施される。ダウンロード処理におけるパラメータ群の転送では、サポート装置５００は各セーフティドライバ３００に対し、標準コントローラ１００を経てＳＲＡのパラメータ群の転送を実施し、また、サポート装置５００は、セーフティコントローラ２００に対し、低サイズ化パラメータ群２１０９とＣＲＣデータ２１０８を転送する。
【０１４２】
図１４および図１５を参照して、パラメータ群１３０を各セーフティドライバ３００に転送するシーケンスを説明する。まず、サポート装置５００では、ダウンロードツール５１１２は、パラメータ群１３０を標準コントローラ１００に転送する（ステップＤ１、フローＳ１１）。パラメータ群１３０は、領域Ｅ７から読出された変更パラメータ群６５に相当する。具体的には、パラメータ生成プログラム５１０５は、入力部５０６から受付けたユーザ操作に従い、初期パラメータ群６０を変更する。これにより、変更パラメータ群６５（パラメータ群１３０）が生成される。
【０１４３】
また、プロジェクトマネージャ５１１４は、領域Ｅ７の変更パラメータ群６５に対し低サイズ化プログラム５１０６を実行することにより、低サイズ化パラメータ群２１０９を生成する（ステップＤ２）。また、プロジェクトマネージャ５１１４は、領域Ｅ７の変更パラメータ群６５に対しＣＲＣ算出プログラム５１０７を起動することにより、ＣＲＣデータ２１０８を算出する（ステップＤ２）。
【０１４４】
ダウンロードツール５１１２は、低サイズ化パラメータ群２１０９とＣＲＣデータ２１０８を、セーフティコントローラ２００に転送する（ステップＤ３、フローＳ１２）。
【０１４５】
標準コントローラ１００は、サポート装置５００からパラメータ群１３０を受信し（ステップＤ５）、ＥｔｈｅｒＣＡＴの初期化コマンドとともにパラメータ群１３０をセーフティドライバ３００に転送する（ステップＤ７、フローＳ１３）。また、セーフティドライバ３００は、標準コントローラ１００からパラメータ群１３０を受信し、受信したパラメータ群１３０を領域Ｅ４に格納する（ステップＤ１５）。
【０１４６】
これにより、セーフティコントローラ２００に、サポート装置５００がプロジェクト５３０を復元するために用いるパラメータ群を転送して記憶させておくことができる。したがって、アップロードツール５１１３が制御システム１からパラメータ群を取得するための経路として、図１３のフローＳ１およびＳ４などの複数の経路を提供することができる。また、ダウンロード時には、低サイズ化パラメータ群２１０９が転送されることで、フィールドネットワーク２に係る通信負荷を抑制することが可能になる。
【０１４７】
セーフティドライバ３００は、領域Ｅ４のパラメータ群１３０から、ＣＲＣ算出プログラム３２０４により、ＣＲＣデータを生成（算出）する（ステップＤ１７）。また、セーフティコントローラ２００は、低サイズ化パラメータ群２１０９およびＣＲＣデータ２１０８を、サポート装置５００から受信し、領域Ｅ２および領域Ｅ３にそれぞれ格納する（ステップＤ９）。
【０１４８】
セーフティコントローラ２００は、セーフティドライバ３００と論理コネクション４を確立する場合に、ＦＳｏＥのコネクション確立要求をセーフティドライバ３００に送信する（ステップＤ１１、フローＳ１４）。セーフティコントローラ２００は、コネクション確立要求が備えるパラメータに、領域Ｅ３から読出したＣＲＣデータ２１０８を設定する。
【０１４９】
セーフティドライバ３００は、セーフティコントローラ２００からコネクション確立要求とともにＣＲＣデータ２１０８を受信する（ステップＤ１９）。セーフティドライバ３００は、照合プログラム３２０５により、ステップＤ１７で生成されたＣＲＣデータ（すなわちパラメータ群１３０から生成されたＣＲＣデータ）を、ステップＤ１９で受信されたＣＲＣデータ２１０８と照合する（ステップＤ２１）。
【０１５０】
セーフティドライバ３００は、照合の結果に基き、ステップＤ１７で生成されたＣＲＣデータはＣＲＣデータ２１０８に一致するか否かを判断する（ステップＤ２３）。セーフティドライバ３００は、一致を示すと判断すると（ステップＤ２３でＹＥＳ）、確立要求を受入れて「ＯＫ」の応答を生成しセーフティコントローラ２００に送信する（ステップＤ２５）。その後、セーフティコントローラ２００との間で論理コネクション４を確立させる。また、セーフティドライバ３００は、照合の結果が、ステップＤ１７で生成されたＣＲＣデータはＣＲＣデータ２１０８に一致しないことを示すと判断すると（ステップＤ２３でＮＯ）、確立要求を拒否する「ＮＧ」の応答を生成しセーフティコントローラ２００に送信する（ステップＤ２７、フローＳ１５）。セーフティコントローラ２００は、確立要求の応答として、セーフティドライバ３００からＯＫまたはＮＧの応答を受信する（ステップＤ１３、フローＳ１５）。
【０１５１】
このように、セーフティコントローラ２００が保持するＣＲＣデータ２１０８は、セーフティドライバ３００とセーフティコントローラ２００との間のコネクション確立の可否の判定と、サポート装置５００がアップロード処理において複数経路から受信したパラメータ群の正当性の判定との両方に用いることができる。
【０１５２】
（ｅ４：変形例）
セーフティコントローラ２００の領域Ｅ２には、低サイズ化されたパラメータ群が格納されたが、低サイズ化されず元のサイズのまま、すなわちパラメータ群１３０と同様のパラメータ群が格納されてもよい。また、サポート装置５００は、アップロードされたパラメータ群１３０（または低サイズ化パラメータ群２１０９）をプロジェクト５３０の生成処理に用いたが、適用する処理はプロジェクト５３０の生成に限定されない。
【０１５３】
本実施の形態では、パラメータ群１３０（または低サイズ化パラメータ群２１０９）は標準コントローラ１００を経てセーフティドライバ３００に転送され（図１１）、またＣＲＣデータ２１０８は標準コントローラ１００を経てセーフティドライバ３００に転送されるが（図１１）、転送ルートはこれに限定されない。例えば、パラメータ群１３０（または低サイズ化パラメータ群２１０９）またはＣＲＣデータ２１０８は、標準コントローラ１００を経ないで、サポート装置５００からセーフティドライバ３００に転送されてもよい。
【０１５４】
また、本実施の形態では、標準コントローラ１００はセーフティドライバ３００へ転送される（フローＳ１３）パラメータ群１３０の格納領域と、サポート装置５００へ転送される（フローＳ１）パラメータ群１３０の格納領域とを同一の領域Ｅ１にしたが、格納領域は独立していてもよい。例えば、標準コントローラ１００は、セーフティドライバ３００へ転送されるパラメータ群１３０を格納する領域と、この領域とは独立して、サポート装置５００へ転送されるパラメータ群１３０を格納する領域を備えてもよい。
【０１５５】
＜Ｆ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
【０１５６】
［構成１］
第１のコントローラ（１００）と、
前記第１のコントローラからの第１の指令に従ってモータ（４００）を駆動するドライブ装置（３００）と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラ（２００）と、
前記第１のコントローラに接続可能なサポート装置（５００）と、を備え、
前記ドライブ装置は、パラメータ群（１３０）を参照しながら、前記第２の指令に従いセーフティプログラム（３２０２）を実行し、
前記第１のコントローラは、
前記パラメータ群を格納するための第１の格納領域（Ｅ１）を含み、前記サポート装置から受信する要求に従い、前記第１の格納領域の前記パラメータ群を前記サポート装置へ転送し、
前記第２のコントローラは、
前記サポート装置から受信する前記要求を従い、前記サポート装置へ転送される前記パラメータ群を格納するための第２の格納領域（Ｅ２）を含む、制御システム（１）。
【０１５７】
［構成２］
前記第２のコントローラは、
前記第２の格納領域に前記サポート装置で復元可能に低サイズ化された前記パラメータ群（２１０９）を格納する、構成１に記載の制御システム。
【０１５８】
［構成３］
前記サポート装置は、
前記第１のコントローラからの前記第１の格納領域のパラメータ群と、前記第２のコントローラからの前記第２の格納領域のパラメータ群を照合する照合部（５１１５）を含み、
前記照合の結果に従い、前記第１の格納領域のパラメータ群および前記第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元する、構成１または２に記載の制御システム。
【０１５９】
［構成４］
前記第２のコントローラは、さらに、
前記第２の格納領域のパラメータ群から、所定式に従い算出される当該パラメータ群の正当性を示す第２のデータ（２１０８）を格納する領域（Ｅ３）を、含み、
前記照合部は、
前記第１の格納領域のパラメータ群から、前記所定式に従い算出される当該パラメータ群の正当性を示す第１のデータを、前記第２のコントローラから受信する前記第２のデータと照合する、構成３に記載の制御システム。
【０１６０】
［構成５］
前記第１のコントローラ、前記ドライブ装置および前記第２のコントローラの間で、データを互いに共有するためのネットワーク（２）を、さらに備え、
前記第２の指令は、前記第２のコントローラと前記ドライブ装置との間に前記ネットワークを利用して形成されるコネクション（４）を介して送信され、
前記ドライブ装置は、
前記第１のデータが、前記第２のコントローラから受信する前記第２のデータと一致するとき、当該ドライブ装置と前記第２のコントローラとの間の前記コネクションを確立する、構成４に記載の制御システム。
【０１６１】
［構成６］
制御システム（１）に接続されるサポート装置（５００）であって、
前記制御システムは、
第１のコントローラ（１００）と、
前記第１のコントローラからの第１の指令に従ってモータ（４００）を駆動するドライブ装置（３００）と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラ（２００）と、を備え、
前記ドライブ装置は、パラメータ群（１３０）を参照しながら、前記第２の指令に従いセーフティプログラム（３２０２）を実行し、
前記第１のコントローラは、
前記パラメータ群を格納するための第１の格納領域（Ｅ１）を含み、前記サポート装置から受信する要求に従い、前記第１の格納領域の前記パラメータ群を前記サポート装置へ転送し、
前記第２のコントローラは、
前記サポート装置から受信する前記要求を従い、前記サポート装置へ転送される前記パラメータ群を格納するための第２の格納領域（Ｅ２）を含み、
前記サポート装置は、
前記第１のコントローラからの前記第１の格納領域のパラメータ群と、前記第２のコントローラからの前記第２の格納領域のパラメータ群を照合する照合部を含み、
前記照合の結果に従い、前記第１の格納領域のパラメータ群および前記第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元する、サポート装置。
【０１６２】
［構成７］
制御システム（１）に接続される情報処理装置（５００）で実行されるプログラムであって、
前記制御システムは、
第１のコントローラ（１００）と、
前記第１のコントローラからの第１の指令に従ってモータ（４００）を駆動するドライブ装置（３００）と、
前記ドライブ装置に対してセーフティ機能の動作に係る第２の指令を送信する第２のコントローラ（２００）と、を備え、
前記ドライブ装置は、パラメータ群を参照しながら、前記第２の指令に従いセーフティプログラム（３２０２）を実行し、
前記第１のコントローラは、
前記パラメータ群を格納するための第１の格納領域（Ｅ１）を含み、前記情報処理装置から受信する要求に従い、前記第１の格納領域の前記パラメータ群を前記情報処理装置へ転送し、
前記第２のコントローラは、
前記情報処理装置から受信する前記要求を従い、前記情報処理装置へ転送される前記パラメータ群を格納するための第２の格納領域（Ｅ２）を含み、
前記プログラムは、前記情報処理装置のプロセッサ（５０２）に、
前記第１のコントローラからの前記第１の格納領域のパラメータ群と、前記第２のコントローラからの前記第２の格納領域のパラメータ群を照合するステップ（Ｕ１２）と、
前記照合の結果に従い、前記第１の格納領域のパラメータ群および前記第２の格納領域のパラメータ群のうちの一方を選択し、選択されたパラメータ群を復元するステップ（Ｕ１３）と、を実行させる、プログラム。
【０１６３】
＜Ｇ．利点＞
サポート装置５００が、プロジェクト５３０を復元するには従来、以下の３つのケースがある。
【０１６４】
（ｉ）標準コントローラ１００とセーフティコントローラ２００から、同時に、プログラムおよびデータをアップロードすることにより、プロジェクト５３０全体を復元する、または、サポート装置５００に既存のプロジェクト５３０のパラメータ群１３０のみを更新するケース。
【０１６５】
（ｉｉ）標準コントローラ１００のみからプログラムおよびデータをアップロードすることにより、プロジェクト５３１を復元する、または、既存のプロジェクト５３１のパラメータ群１３０を更新するケース。
【０１６６】
（ｉｉｉ）セーフティコントローラ２００のみからプログラムおよびデータをアップロードすることにより、プロジェクト５３２を復元する、もしくは、既存のプロジェクト５３２のパラネータ群を更新するケース。
【０１６７】
ケース（ｉ）と（ｉｉ）は、本実施の形態に係るプロジェクトマネージャ５１１４を適用しなくてもプロジェクトを復元可能である。これに対して、従来は、セーフティコントローラ２００はＳＲＡのパラメータ群を備えないために、ケース（ｉｉｉ）では、サポート装置５００にパラメータ群１３０をアップロードすることができず、サポート装置５００は、制御システム１からパラメータ群１３０を取得することができない。この点、本実施の形態では、セーフティコントローラ２００は、パラメータ群１３０を復元可能な低サイズ化パラメータ群２１０９を格納するための領域Ｅ２を備えることにより、上記のケース（ｉｉｉ）であっても、サポート装置５００は、制御システム１のパラメータ群１３０および当該パラメータ群１３０を含むプロジェクト５３０を復元することが可能となる。
【０１６８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６９】
１  制御システム、２  フィールドネットワーク、４  論理コネクション、６０  初期パラメータ群、６５  変更パラメータ群、１００  標準コントローラ、１３０  パラメータ群、２００  セーフティコントローラ、３００  セーフティドライバ、５００  サポート装置、５３０，５３１，５３２  プロジェクト、２１０９  低サイズ化パラメータ群、３２０２  モーションセーフティプログラム、３２０４，５１０７  ＣＲＣ算出プログラム、３２０５，５１０８  照合プログラム、５１０４  サポートプログラム、５１０５  パラメータ生成プログラム、５１０６  低サイズ化プログラム、５１０９  ロードプログラム、５１１０  プロジェクト管理プログラム、５１１１  ロードツール、５１１２  ダウンロードツール、５１１３  アップロードツール、５１１４  プロジェクトマネージャ、５１１５  照合部、Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５，Ｅ６，Ｅ７  領域、Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ１１，Ｓ１２，Ｓ１３，Ｓ１４，Ｓ１５  フロー。
【図１】
2020057210.tif 000003
【図２】
2020057210.tif 000004
【図３】
2020057210.tif 000005
【図４】
2020057210.tif 000006
【図５】
2020057210.tif 000007
【図６】
2020057210.tif 000008
【図７】
2020057210.tif 000009
【図８】
2020057210.tif 000010
【図９】
2020057210.tif 000011
【図１０】
2020057210.tif 000012
【図１１】
2020057210.tif 000013
【図１２】
2020057210.tif 000014
【図１３】
2020057210.tif 000015
【図１４】
2020057210.tif 000016
【図１５】
2020057210.tif 000017