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