(57)【要約】【課題】ネットワークで通信されるデータ量に関係なく、コントローラとスレーブ装置との制御用データの通信を確実に行いながら、異常検知用のデータの取得量の低下を抑制する。【解決手段】制御システム１は、コントローラ１１、１２と、スレーブ装置２１、２２、２３とを有する。コントローラ１１、１２間に通信ケーブル３１−３５を介してスレーブ装置２１、２２、２３が接続されることで制御用ネットワークが形成される。コントローラ１１は、制御用ネットワークで通信する制御用フレームの生成、管理を行う。コントローラ１２は、制御用フレームを受信して複写し、制御用フレームを制御用ネットワークのコントローラ１１側に折り返し通信する。コントローラ１２は、複写した制御用フレームを、保存、または、情報通信用ネットワーク６０で接続されたデータベース装置４０に転送する。【選択図】図１
2019016932.tif 000002
【特許請求の範囲】
【請求項１】
第１のコントローラと第２のコントローラとの間に通信ケーブルを介してスレーブ装置が接続された制御用ネットワークを備え、
前記第１のコントローラは、
前記制御用ネットワークで通信する制御用フレームの生成、管理を行い、
前記第２のコントローラは、
前記制御用フレームを受信して複写するとともに、前記制御用ネットワークの前記第１のコントローラ側に折り返し通信する、
制御システム。
【請求項２】
前記第１のコントローラは、
前記制御用ネットワークの診断用フレームを、前記制御用ネットワークに送信し、
前記第２のコントローラは、
前記診断用フレームを、受信し、保存、または、情報通信用ネットワークで接続されたデータベースに転送する、
請求項１に記載の制御システム。
【請求項３】
前記第２のコントローラは、ＣＰＵと送受信専用ＩＣとを有し、
前記送受信専用ＩＣは、前記制御用フレームの折り返し通信を、前記ＣＰＵを介さずに実行する、
請求項１または請求項２に記載の制御システム。
【請求項４】
前記第１のコントローラは、ＣＰＵと送受信専用ＩＣとを有し、前記第２のコントローラと同じハードウェア構成からなる、
請求項３に記載の制御システム。
【請求項５】
前記第２のコントローラは、
前記複写した制御用フレームにおける前記スレーブ装置への入出力データからなるＰＤＯデータを抽出して、記憶する、
請求項１乃至請求項４のいずれかに記載の制御システム。
【請求項６】
前記第１のコントローラと前記第２のコントローラとは、補助用通信ケーブルを介して接続され、
前記第２のコントローラは、前記補助用通信ケーブルを用いて、前記第１のコントローラへの折り返し通信を実行する、
請求項１乃至請求項５のいずれかに記載の制御システム。
【請求項７】
第１のコントローラと第２のコントローラとの間に通信ケーブルを介してスレーブ装置を接続して制御用ネットワークを形成し、
前記第１のコントローラにおいて、前記制御用ネットワークで通信する制御用フレームの生成、管理を行い、
前記第２のコントローラにおいて、前記制御用フレームを受信して複写するとともに、前記制御用ネットワークの前記第１のコントローラ側に折り返し通信する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コントローラとスレーブ装置とを備える制御システムに関する。
【背景技術】
【０００２】
現在、ＦＡ（ファクトリー  オートメーション）システムが多く実用化されている。ＦＡシステムは、コントローラと複数のスレーブ装置と備える。複数のスレーブ装置は、計測器、スイッチ、または、制御用ドライバ等であり、制御用ドライバには、制御対象機器が接続されている。コントローラは、複数のスレーブ装置に対して、制御データを送信する。また、コントローラは、複数のスレーブ装置から計測データ等を受信して、次の制御サイクルでの制御データを生成する。
【０００３】
コントローラと複数のスレーブ装置とは、通信ケーブル等によって接続されており、イーサネット（登録商標）、または、イーサキャット（登録商標）のネットワーク規格に準じて、上述の各データを通信している。
【０００４】
特許文献１には、このようなＦＡシステムに対する異常検知、異常診断を行う構成が記載されている。特許文献１では、コントローラに対して、ソフトウエアとして異常診断機能を備えさせている。コントローラは、複数のスレーブ装置との間の通信データをモニタリングし、異常を検知すると、データを保持する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−３５６６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、現在、ＩｏＴ化の推進等から、ネットワークで通信されるデータ量は増加している。このため、コントローラは、複数のスレーブ装置に対する通信を行いながら、異常検知、異常診断を行うことが難しくなってきた。
【０００７】
また、制御用のデータ量を維持しながらコントローラの負荷を軽減するには、異常検知、異常診断の頻度、一度に取得するデータ量を少なくしなければならない。
【０００８】
したがって、本発明の目的は、ネットワークで通信されるデータ量に関係なく、コントローラとスレーブ装置との制御用データの通信を確実に行いながら、異常検知用のデータの取得量の低下を抑制する制御システムおよび制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
この制御システムは、第１のコントローラと第２のコントローラとの間に通信ケーブルを介してスレーブ装置が接続された制御用ネットワークを備える。第１のコントローラは、制御用ネットワークで通信する制御用フレームの生成、管理を行う。第２のコントローラは、制御用フレームを受信して複写するとともに、制御用フレームを制御用ネットワークの第１のコントローラ側に折り返し通信する。
【００１０】
この構成では、制御用ネットワークの送受信制御を行う第１のコントローラは、異常検知に利用可能な制御用フレームの保存、情報通信用ネットワークへの転送を行わなくても、異常検知用のデータが蓄積される。
【００１１】
また、この制御システムでは、第１のコントローラは、制御用ネットワークの診断用フレームを、制御用ネットワークに送信する。第２のコントローラは、診断用フレームを受信し、保存、または、情報通信用ネットワークで接続されたデータベースに転送する。
【００１２】
この構成では、制御用ネットワークの送受信制御を行う第１のコントローラは、診断用フレームの保存、情報通信用ネットワークへの転送を行わなくても、異常検知用に利用される診断用フレームが蓄積される。
【００１３】
また、この制御システムでは、第２のコントローラは、ＣＰＵと送受信専用ＩＣとを有し、送受信専用ＩＣは、制御用フレームの折り返し通信を、ＣＰＵを介さずに実行する。
【００１４】
この構成では、制御用フレームの折り返し通信に対する要する時間が短くなる。
【発明の効果】
【００１５】
この発明によれば、ネットワークで通信されるデータ量に関係なく、コントローラとスレーブ装置との制御用データの通信を確実に行いながら、異常検知用のデータの取得量の低下を抑制できる。
【図面の簡単な説明】
【００１６】
【図１】制御システムにおける装置の構成を示す図である。
【図２】コントローラにおけるハードウェアの構成を示すブロック図である。
【図３】コントローラにおけるデータ通信に関する構成を示すブロック図である。
【図４】制御用データの概略的なデータ構成を示す図である。
【図５】制御用フレームを記憶するためのデータ通信の概要を示す図である。
【図６】ランモードのコントローラにおけるデータ伝送の状態を示す図である。
【図７】ランモードのコントローラが実行する概略処理を示すフローチャートである。
【図８】データ取得モードのコントローラにおけるデータ伝送の状態を示す図である。
【図９】データ取得モードのコントローラが実行する概略処理を示すフローチャートである。
【図１０】ランモードのコントローラによる診断用フレームの送信処理を示すフローチャートである。
【図１１】データ取得モードのコントローラによる診断用フレームの受信、転送処理を示すフローチャートである。
【図１２】制御システムにおける装置の構成を示す図である。
【図１３】ランモードのコントローラにおけるデータ伝送の状態を示す図である。
【図１４】データ取得モードのコントローラにおけるデータ伝送の状態を示す図である。
【図１５】コントローラの冗長化の概要の一例を示す図である。
【図１６】データ取得モードからランモードに切り替わるのコントローラにおけるデータ伝送の状態を示す図である。
【図１７】ビーコンの応答のみで切り替えを判断する第１の態様を示す。
【図１８】ビーコンの応答のみで切り替えを判断する第２の態様を示す。
【図１９】制御用フレームの観測結果とビーコンの応答で切り替えを判断する態様を示す。
【図２０】ランモードに切り替わった後のコントローラにおけるデータ伝送の状態を示す図である。
【図２１】制御用ネットワークに接続される２個のコントローラのモード切り替えにおけるデータ伝送の状態を示す図である。
【図２２】２個のコントローラが実行するモード切り替えの概略処理を示すフローチャートである。
【図２３】ケーブルの冗長化によって対処可能な事例の一例を示す図である。
【図２４】ケーブルの冗長化に対応したランモードのコントローラの処理のフローチャートである。
【図２５】ケーブルの冗長化に対応したデータ取得モードのコントローラの処理のフローチャートである。
【図２６】データ取得モードのコントローラによって異常検知を実行する場合の制御システムにおける装置の構成を示す図である。
【図２７】データ取得モードのコントローラにおけるデータ通信に関する構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
本発明の実施形態に係る制御システムおよび制御方法について、図を参照して説明する。本実施形態では、制御システムとして、ＦＡ（ファクトリー  オートメーション）システム、具体的には、ネットワーク規格として、ＥｔｈｅｒＣＡＴ（イーサキャット）（登録商標）に準じた制御用ネットワークを有するＦＡシステムを例に説明する。しかしながら、ＥａｔｈｅｒＣＡＴと同じネットワーク規格で通信を実行する他の制御システムにも、本願発明の構成を適用できる。
【００１８】
（制御システムの構成）
図１は、制御システムにおける装置の構成を示す図である。図１に示すように、制御システム１は、コントローラ１１、コントローラ１２、複数のスレーブ装置２１、２２、２３、複数の通信ケーブル３１、３２、３３、３４、３５、データベース装置４０、および、ユーザインターフェース装置（ＵＩ装置）５０、および、情報通信用ネットワーク６０を備える。コントローラ１１は、本発明の「第１のコントローラ」に対応し、コントローラ１２は、本発明の「第２のコントローラ」に対応する。
【００１９】
データベース装置４０は、以下に示す制御用フレームや診断用フレームを保存する。そして、データベース装置４０は、制御システム１によって取得され保存された制御用フレームまたは診断用フレームを用いて、制御用ネットワークの異常検知に関する処理を実行する。例えば、データベース装置４０で実行される異常検知に関する処理は、異常診断、異常通知、異常予兆推測、データトレース、および、制御用ネットワークの負荷モニタの少なくとも１つを含むものであり、既知の方法によって実現が可能である。
【００２０】
ＵＩ装置５０は、コントローラ１１、および、コントローラ１２へのユーザプログラムの転送を行う。なお、ＵＩ装置５０においてユーザプログラムを作成することも可能である。また、ＵＩ装置５０は、コントローラ１１、および、コントローラ１２に対する制御値や処理の設定を行う。
【００２１】
コントローラ１１は、通信ケーブル３１を介してスレーブ装置２１に接続している。スレーブ装置２１は、通信ケーブル３２を介してスレーブ装置２２に接続している。スレーブ装置２２は、通信ケーブル３３を介してスレーブ装置２３に接続している。スレーブ装置２３は、通信ケーブル３４を介してコントローラ１２に接続している。
【００２２】
すなわち、コントローラ１１、スレーブ装置２１、スレーブ装置２２、スレーブ装置２３、および、コントローラ１２は、この順でライン状に接続されている。言い換えれば、コントローラ１１を第１端とし、コントローラ１２を第２端として、第１端から第２端に向かって、複数のスレーブ装置２１、２２、２３が順に接続されている。また、コントローラ１２は、通信ケーブル３５を介してコントローラ１１に接続されている。これらの通信ケーブルの接続態様によって、制御用ネットワークのフィールドバスが構成される。この制御用ネットワークでは、データは、Ｅｔｈｅｒｎｅｔ（登録商標）を利用したＥｔｈｅｒＣＡＴ（登録商標）のネットワーク規格にしたがって通信される。なお、具体的な通信の内容は後述する。
【００２３】
コントローラ１１、コントローラ１２、データベース装置４０、および、ＵＩ装置５０は、情報通信用ネットワーク６０を介して接続されている。情報通信用ネットワーク６０は、Ｅｔｈｅｒｎｅｔ等の汎用のネットワーク規格にしたがった通信を行うものであり、コントローラ１１、コントローラ１２、データベース装置４０、および、ＵＩ装置５０間でデータリンクを実現する。なお、本発明の制御システム１は、少なくとも、制御用ネットワークの部分を有していればよい。
【００２４】
（コントローラの構成）
コントローラ１１とコントローラ１２とは、同じ構成からなる。図２は、コントローラにおけるハードウェアの構成を示すブロック図である。なお、図２では、コントローラ１１とコントローラ１２とが同じ構成であることからコントローラ１０として説明する。
【００２５】
図２に示すように、コントローラ１０は、ＣＰＵ１０１、送受信部１０２、上位通信部１０３、共有メモリ１０４、プログラムメモリ１０５、および、システムバス１１０を備える。送受信部１０２、上位通信部１０３、共有メモリ１０４、および、プログラムメモリ１０５は、システムバス１１０によって接続されている。
【００２６】
送受信部１０２は、ＡＳＩＣ等によって実現され、ＣＰＵ１０１とは別の専用のＩＣによって実現されている。なお、送受信部１０２は、ＦＰＧＡ等によって実現されていてもよい。送受信部１０２は、制御用ネットワークに接続され、制御フレームの送受信を実行する。
【００２７】
上位通信部１０３は、汎用の通信用ＩＣによって実現されている。上位通信部１０３は、情報通信用ネットワーク６０に接続され、情報通信用ネットワーク６０を介した送受信を実行する。
【００２８】
共有メモリ１０４は、情報通信用ネットワーク６０からの制御用の各種のデータ、制御用フレームを構成するＰＤＯデータ等が記憶されている。ＰＤＯデータとは、複数のスレーブ装置２１、２２、２３に対する出力データ、複数のスレーブ装置２１、２２、２３からの入力データからなるデータ群によって構成されている。
【００２９】
プログラムメモリ１０５には、コントローラ１０の基本制御が記載されたシステムプログラム、ＵＩ装置５０から書き込まれた制御用のユーザプログラムが記憶されている。ユーザプログラムは、後述のランモードのコントローラとデータ取得モードのコントローラとで異なっていてもよく、これらランモードとデータ取得モードとの両方を選択的に実現できるものであってもよい。
【００３０】
図３は、コントローラにおけるデータ通信に関する構成を示すブロック図である。図４は、制御用データの概略的なデータ構成を示す図である。
【００３１】
図３に示すように、ＣＰＵ１０１は、ＰＬＣ制御、ＥｔｈｅｒＣＡＴスタック、Ｅｔｈｅｒドライバ、上位通信用Ｅｔｈｅｒドライバを実現する。
【００３２】
ＥｔｈｅｒＣＡＴスタック、Ｅｔｈｅｒドライバ、上位通信用Ｅｔｈｅｒドライバは、ＣＰＵ１０１がプログラムメモリ１０５からシステムプログラムを読み出して実行することによって、実現される。ＰＬＣ制御は、ＣＰＵ１０１がプログラムメモリ１０５から制御用のユーザプログラムを読み出して実行することによって、実現される。
【００３３】
ＰＬＣ制御は、共有メモリ１０４に記憶されたデータを用いて、ＰＤＯデータを生成する。すなわち、ＰＬＣ制御は、各スレーブ装置２１、２２、２３からの計測値等の入力データ、当該入力データに基づく演算結果、ユーザプログラム、および、ＵＩ装置５０からの制御情報等を用いて、ＰＤＯデータを生成する。図４に示すように、ＰＤＯデータは、スレーブ装置２１用のデータ領域ＤＧ２１、スレーブ装置２２用のデータ領域ＤＧ２２、スレーブ装置２３用のデータ領域ＤＧ２３からなり、スレーブ装置２１用のデータ領域ＤＧ２１は、スレーブ装置２１に対する出力データ、および、スレーブ装置２１からの入力データの書き込み領域であり、スレーブ装置２２用のデータ領域ＤＧ２２は、スレーブ装置２２に対する出力データ、および、スレーブ装置２２からの入力データの書き込み領域であり、スレーブ装置２３用のデータ領域ＤＧ２３は、スレーブ装置２３に対する出力データ、および、スレーブ装置２３からの入力データの書き込み領域である。なお、スレーブ装置２１、２２、２３において、スレーブ装置がセンサ等の入力データを必要とせず出力データが制御に必要な装置であれば、当該スレーブ装置に対するデータ領域は、スレーブ装置からの出力データの書き込み領域のみとなる。一方、スレーブ装置２１、２２、２３において、スレーブ装置がスイッチ等の入力データが制御に必要であり、出力データが制御に必要でない装置であれば、当該スレーブ装置に対するデータ領域は、スレーブ装置に対する入力データの書き込み領域のみとなる。
【００３４】
ＰＬＣ制御は、制御用データの送信のスケジューリングを実行する。ＰＬＣ制御は、ＰＤＯデータを、ＥｔｈｅｒＣＡＴスタックに渡す。また、ＰＬＣ制御は、ＥｔｈｅｒＣＡＴスタックからのＰＤＯデータからスレーブ装置２１、２２、２３に紐付けされた入力データを抽出し、共有メモリ１０４に記憶する。
【００３５】
ＥｔｈｅｒＣＡＴスタックは、ＰＤＯデータに対して、ＥｔｈｅｒＣＡＴヘッダ（図４のＥＣＨ）を付け、Ｅｔｈｅｒドライバに渡す。逆に、ＥｔｈｅｒＣＡＴスタックは、Ｅｔｈｅｒドライバからのフレームデータ（図４のＥＣＨ＋ＰＤＯ）からＰＤＯデータを抽出し、ＰＬＣ制御に渡す。
【００３６】
Ｅｔｈｅｒドライバは、ＥｔｈｅｒＣＡＴスタックからのフレームデータ（図４のＥＣＨ＋ＰＤＯ）に対して、Ｅｈｅｒｎｅｔヘッダ（図４のＥＨ）およびＣＲＣデータ（図４のＣＲＣ）を付け、制御用フレームとして、送受信部１０２の送信部１２１に出力する。逆に、Ｅｔｈｅｒドライバは、送受信部１０２の受信部１２２からの制御用フレーム（図４に示すデータ）から、ＥｔｈｅｒＣＡＴに対応するフレームデータ（図４のＥＣＨ＋ＰＤＯ）を抽出し、ＥｔｈｅｒＣＡＴスタックに渡す。
【００３７】
なお、ＣＰＵ１０１は、上位通信部１０３を介した情報通信用ネットワーク６０に対する送受信を、上位通信用Ｅｔｈｅｒドライバによって実行する。これにより、ＣＰＵ１０１は、情報通信用ネットワーク６０を介して、ＵＩ装置５０からのシステムプログラムやユーザプログラム、各種のデータを受信し、プログラムメモリ１０５や共有メモリ１０４に記憶する。この情報通信用ネットワーク６０に対する通信は、汎用のＥｔｈｅｒｎｅｔ等に準じたものであり、説明は省略する。
【００３８】
（送受信部１０２の構成）
送受信部１０２は、送信部１２１、受信部１２２、および、ＩＦ（インターフェース）１２３を備える。送信部１２１と受信部１２２とは、それぞれ個別のＩＣによって実現されている。ＩＦ１２３は、通信ケーブルに対する物理的な接続を実現しており、少なくとも２個のポートを有する。
【００３９】
送信部１２１は、ＣＰＵ１０１からの制御用フレームをＩＦ１２３を介して制御用ネットワークに送信する。この際、送信部１２１は、制御用フレームにタイムスタンプを付与して送信する。また、送信部１２１は、次に示す受信部１２２からの複写された制御用フレームも、ＩＦ１２３を介して制御用ネットワークに送信できる。さらに、送信部１２１は、後述する診断用フレームを生成し、所定の時刻にて、ＩＦ１２３を介して制御用ネットワークに送信できる。
【００４０】
受信部１２２は、ＩＦ１２３を介して制御用ネットワークから受信した制御用フレームをＣＰＵ１０１に渡す。受信部１２２は、制御用フレームを複写することもできる。受信部１２２は、複写した制御用フレームを、送信部１２１や上位通信部１３に転送こともできる。この場合、受信部１２２は、複写した制御用フレームの転送に、ＣＰＵ１０１を介することなく、直接に、送信部１２１や上位通信部１３に転送する。
【００４１】
（異常検知）
図５は、制御用フレームを記憶するためのデータ通信の概要を示す図である。図５において、太矢印は、制御用フレームの流れを示している。
【００４２】
異常検知のための制御用フレームの収集処理では、コントローラ１１をランモードに設定し、コントローラ１２をデータ取得モードに設定する。コントローラ１１が、本発明の「第１のコントローラ」に対応し、コントローラ１２が、本発明の「第２のコントローラ」に対応する。
【００４３】
ランモードのコントローラ１１は、制御用フレームの送受信のスケジュール管理、各スレーブ装置２１、２２、２３から入力データを用いた演算、当該演算結果による出力データの生成および制御用フレームの生成を実行する。すなわち、ランモードのコントローラ１１は、制御用ネットワークを用いたサイクリック通信による複数のスレーブ装置２１、２２、２３との制御用のデータ通信を、高速に実行する。
【００４４】
データ取得モードのコントローラ１２は、コントローラ１１のような複数のスレーブ装置２１、２２、２３に対する制御用のデータ通信の管理を実行せず、制御用フレームを受信して、情報通信用ネットワーク６０のデータベース装置４０へ転送する。
【００４５】
コントローラ１１は、図４に示すような制御用フレームを生成すると、制御用ネットワークに送信する。すなわち、コントローラ１１は、制御用フレームを通信ケーブル３１を介して送信する。
【００４６】
スレーブ装置２１は、通信ケーブル３１を介して制御用フレームを受信する。スレーブ装置２１は、制御用フレームに記載されたスレーブ装置２１用の出力データを取得し、スレーブ装置２１で取得した入力データを制御用フレームに書き込む。なお、スレーブ装置２１は、出力データに基づいて、スレーブ装置２１に接続された制御対象装置を制御する。また、スレーブ装置２１は、制御対象装置から計測値を取得し、次の制御周期における入力データとする。
【００４７】
スレーブ装置２１は、制御用フレームに対してタイムスタンプを付与する。スレーブ装置２１は、制御用フレームを、通信ケーブル３２を介して送信する。
【００４８】
スレーブ装置２２は、通信ケーブル３２を介して制御用フレームを受信する。スレーブ装置２２は、制御用フレームに記載されたスレーブ装置２２用の出力データを取得し、スレーブ装置２２で取得した入力データを制御用フレームに書き込む。なお、スレーブ装置２２は、出力データに基づいて、スレーブ装置２２に接続された制御対象装置を制御する。また、スレーブ装置２２は、制御対象装置から計測値を取得し、次の制御周期における入力データとする。
【００４９】
スレーブ装置２２は、制御用フレームに対してタイムスタンプを付与する。スレーブ装置２２は、制御用フレームを、通信ケーブル３３を介して送信する。
【００５０】
スレーブ装置２３は、通信ケーブル３３を介して制御用フレームを受信する。スレーブ装置２３は、制御用フレームに記載されたスレーブ装置２３用の出力データを取得し、スレーブ装置２３で取得した入力データを制御用フレームに書き込む。なお、スレーブ装置２３は、出力データに基づいて、スレーブ装置２３に接続された制御対象装置を制御する。また、スレーブ装置２３は、制御対象装置から計測値を取得し、次の制御周期における入力データとする。
【００５１】
スレーブ装置２３は、制御用フレームに対してタイムスタンプを付与する。スレーブ装置２３は、制御用フレームを、通信ケーブル３４を介して送信する。
【００５２】
コントローラ１２は、通信ケーブル３４を介して制御用フレームを受信する。コントローラ１２は、制御用フレームを複写して、通信ケーブル３５を介して送信する。この際、コントローラ１２は、制御用フレームに対してタイムスタンプを付与する。この制御用フレームは、通信ケーブル３５を介して、コントローラ１１によって受信される。また、コントローラ１２は、複写した制御用フレームを、情報通信用ネットワーク６０を介して接続されたデータベース装置４０に送信する。
【００５３】
（ランモードのコントローラ１１の具体的な処理）
ランモードに設定されたコントローラ１１は、具体的に次の処理を実行する。ランモードの設定は、例えば、ＵＩ装置５０からの制御命令等によって実行される。図６は、ランモードのコントローラにおけるデータ伝送の状態を示す図である。
【００５４】
コントローラ１１では、ＣＰＵ１０１は、上述のように、共有メモリ１０４に記憶されたデータ群を用いて、ＰＬＣ制御、ＥｔｈｅｒＣＡＴスタック、およびＥｔｈｅｒドライバによって制御用フレームを生成する。この制御用フレームの生成処理は、ＰＬＣ制御によって決定された制御周期に応じて実行される。ＣＰＵ１０１は、制御用フレームを、送受信部１０２の送信部１２１に出力する。
【００５５】
送信部１２１は、上記制御周期に応じて、ＩＦ１２３を介して、通信ケーブル３１に制御用フレームを送信する。
【００５６】
一方、コントローラ１１では、送受信部１０２の受信部１２２は、通信ケーブル３５、および、ＩＦ１２３を介して、制御用ネットワークから返ってきた制御用フレームを受信する。受信部１２２は、制御用フレームをＣＰＵ１０１に出力する。
【００５７】
ＣＰＵ１０１は、上述のように、Ｅｔｈｅｒドライバ、ＥｔｈｅｒＣＡＴスタック、およびＰＬＣ制御によって制御用フレームからＰＤＯデータを抽出する。ＣＰＵ１０１は、ＰＤＯデータを、共有メモリ１０４に記憶する。なお、ＣＰＵ１０１は、ＰＤＯデータから、複数のスレーブ装置２１、２２、２３からの入力データを抽出して、入力データのみを共有メモリ１０４に記憶してもよい。
【００５８】
コントローラ１１は、この制御用フレームの生成、送受信、および、制御用ネットワークから返ってきたＰＤＯデータの記憶を、上述の制御周期に対応して繰り返し実行する。
【００５９】
すなわち、コントローラ１１は、図７に示す処理を実行する。図７は、ランモードのコントローラが実行する概略処理を示すフローチャートである。なお、図７に示す処理は、ＣＰＵ１０１と送受信部１０２とによって実行されているが、ＣＰＵ１０１のみでも実行可能である。
【００６０】
図７に示すように、コントローラ１１は、共有メモリ１０４から、前回のＰＤＯデータを含む今回の制御用フレームに必要なデータ群を読み出す（Ｓ１０１）。コントローラ１１は、これらのデータ群を用いて、今回のＰＤＯデータを生成する（Ｓ１０２）。コントローラ１１は、ＰＤＯデータを用いて、制御用フレームを生成する（Ｓ１０３）。コントローラ１１は、制御周期から送信時刻を設定する（Ｓ１０４）。コントローラ１１は、送信時刻に同期して、制御用フレームを送信する（Ｓ１０５）。コントローラ１１は、制御用ネットワークから返ってきた制御用フレームを受信する（Ｓ１０６）。コントローラ１１は、返ってきた制御用フレームからＰＤＯデータを抽出する（Ｓ１０７）。コントローラ１１は、ＰＤＯデータを、共有メモリ１０４に書き込む（Ｓ１０８）。コントローラ１１は、これらの処理を終了すると、ステップＳ１０１に戻り、処理を繰り返す。
【００６１】
（データ取得モードのコントローラ１２の具体的な処理）
データ取得モードに設定されたコントローラ１２は、具体的に次の処理を実行する。データ取得モードの設定は、例えば、ＵＩ装置５０からの制御命令等によって実行される。図８は、データ取得モードのコントローラにおけるデータ伝送の状態を示す図である。
【００６２】
コントローラ１２では、送受信部１０２’の受信部１２２’は、通信ケーブル３４、および、ＩＦ１２３’を介して、制御用ネットワークから送信されてきた、すなわち、全てのスレーブ装置２１、２２、２３を通ってきた制御用フレームを受信する。受信部１２２’は、制御用フレームを複写する。受信部１２２’は、制御用フレームをＣＰＵ１０１’に出力するとともに、送信部１２１’に出力する。ＣＰＵ１０１’に入力されたＰＤＯデータは、ＣＰＵ１０１と同様に共有メモリ１０４に記憶される。
【００６３】
送信部１２１’は、ＩＦ１２３’を介して、通信ケーブル３５に、制御用フレームを出力する。すなわち、受信部１２２’と送信部１２１’とによって、制御用ネットワークにおける制御用フレームの折り返しを実行する。
【００６４】
また、受信部１２２’は、制御用フレームを上位通信部１０３’に転送する。この転送は、例えば、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送方式を用いる。上位通信部１０３’は、ＩＦ１３０’を介して、情報通信用ネットワーク６０のデータベース装置４０に、制御用フレームを転送する。なお、この際に、コントローラ１２は、制御用フレームに対してタイムスタンプを付与する。
【００６５】
コントローラ１２は、この制御用フレームの折り返し、および、情報通信用ネットワーク６０への転送を、制御用フレームを受信する毎に実行する。
【００６６】
すなわち、コントローラ１２は、図９に示す処理を実行する。図９は、データ取得モードのコントローラが実行する概略処理を示すフローチャートである。なお、図９に示す処理は、ＣＰＵ１０１’と送受信部１０２’とによって実行されているが、ＣＰＵ１０１’のみでも実行可能である。
【００６７】
図９に示すように、コントローラ１２は、制御用ネットワークから送られてきた制御用フレームを受信する（Ｓ２０１）。コントローラ１２は、制御用フレームを複写する（Ｓ２０２）。コントローラ１２は、制御用フレームを、制御用ネットワークに返信する（Ｓ２０３）。コントローラ１２は、制御用フレームを、情報通信用ネットワーク６０のデータベース装置４０に転送する（Ｓ２１１）。コントローラ１２は、制御用フレームからＰＤＯデータを抽出し（Ｓ２２１）、共有メモリ１０４’に記憶する（Ｓ２２２）。なお、後述のコントローラの冗長化が必要でなければ、コントローラ１２は、ＰＤＯデータの抽出、記憶を行わなくてもよい。
【００６８】
以上のように、制御システム１では、ランモードのコントローラ１１は、異常検知用の制御用フレームの保存、情報通信用ネットワーク６０への転送を行わない。すなわち、ランもオードのコントローラ１１は、複数のスレーブ装置２１、２２、２３に対するサイクリックな制御を専任して実行する。
【００６９】
一方、データ取得モードのコントローラ１２は、制御用フレームの送受信管理を行わない。すなわち、データ取得モードのコントローラ１２は、異常検知用の制御用フレームの保存、情報通信用ネットワーク６０への転送を専任して実行する。
【００７０】
このような構成によって、制御システム１は、制御用ネットワークで通信されるデータ量に関係なく、コントローラと複数のスレーブ装置との制御用フレームの通信を確実に行いながら、異常検知用の制御用フレームの取得量の低下を抑制できる。
【００７１】
また、制御システム１では、データ取得モードのコントローラ１２は、ランモードのコントローラ１１を起点にして複数のスレーブ装置２１、２２、２３の先に接続されている。したがって、コントローラ１２は、今回の制御周期において全てのスレーブ装置２１、２２、２３が更新したＰＤＯデータを含む制御用フレームを受信できる。これにより、コントローラ１２は、最新の状態に更新された制御用フレームを効率的に取得できる。
【００７２】
さらに、制御システム１では、コントローラがＣＰＵと送受信部とによって構成されているので、上述の制御用フレームの折り返しの遅延を抑制でき、データ取得モードのコントローラを接続することによる制御周期の長周期化を抑制できる。また、制御用フレームを情報通信用ネットワーク６０のデータベース装置４０に転送する際にＣＰＵを用いず、ＣＰＵの負荷が軽減される。
【００７３】
（診断用フレームの送信、保存）
なお、上述の構成および処理では、制御周期に応じて周期的に通信される制御用フレームを保存、転送する態様を示したが、診断用フレームを生成して、当該診断用フレームを保存、転送することもできる。
【００７４】
図１０は、ランモードのコントローラによる診断用フレームの送信処理を示すフローチャートである。図１０に示すように、コントローラ１１は、診断用フレームを生成する（Ｓ１２１）。コントローラ１１は、診断用フレームの送信タイミングか否かを検出する。診断用フレームの送信タイミングは、予め所定の時間間隔に設定されているか、または、ＵＩ装置５０から診断用フレームの送信要求によって決定される。コントローラ１１は、診断用フレームの送信タイミングであり（Ｓ１２２：ＹＥＳ）、且つ、制御用フレームの送信中でなければ（Ｓ１２３：ＮＯ）、診断用フレームを、制御用ネットワークに送信する（Ｓ１２４）。
【００７５】
図１１は、データ取得モードのコントローラによる診断用フレームの受信、転送処理を示すフローチャートである。図１１に示すように、コントローラ１２は、診断用フレームを受信する（Ｓ２３１）。コントローラ１２は、診断用フレームを、情報通信用ネットワーク６０のデータベース装置４０に転送する（Ｓ２３２）。この際、コントローラ１２は、診断用フレームであることを検出すると、上述の制御用フレームのような、複写と折り返しとは行わなくてもよい。
【００７６】
このような構成および処理によって、制御システム１は、コントローラと複数のスレーブ装置との制御用フレームの通信を確実に行いながら、異常検知用の診断用フレームを転送、保存できる。したがって、異常検知用のフレームデータをさらに多く取得でき、且つ、詳細な異常検知ができるデータを取得できる。
【００７７】
さらに、上述のコントローラ１１における診断用フレームの送信処理を、送受信部１０２によって実行させることで、診断用フレームを用いることによるコントローラ１１のＣＰＵ１０１の処理負荷の増加を抑制できる。
【００７８】
また、上述の説明では、コントローラ１１は、制御用フレームおよび診断用フレームを、情報通信用ネットワーク６０のデータベース装置４０に転送しない態様を示した。しかしながら、コントローラ１１は、制御用フレームおよび診断用フレームを、情報通信用ネットワーク６０のデータベース装置４０に転送してもよい。ただし、制御用フレームおよび診断用フレームを、情報通信用ネットワーク６０のデータベース装置４０に転送しないことによって、情報通信用ネットワーク６０を介したコントローラ１１のＣＰＵ１０１とＵＩ装置５０との通信帯域を確保できる。したがって、ＵＩ装置５０とコントローラ１１のＣＰＵ１０１との間の制御用のデータの通信を、確実且つ高速に実行できる。
【００７９】
なお、上述の説明では、コントローラ１１とコントローラ１２とは、通信ケーブル３５を介して接続されている。しかしながら、通信ケーブル３５は、省略することも可能である。図１２は、制御システムにおける装置の構成を示す図である。図１２に示すように、制御システム１Ａは、コントローラ１１Ａ、コントローラ１２Ａ、複数のスレーブ装置２１、２２、２３、複数の通信ケーブル３１、３２、３３、３４、データベース装置４０、および、ユーザインターフェース装置（ＵＩ装置）５０、および、情報通信用ネットワーク６０を備える。図１２に示す制御システム１Ａは、図１に示す制御システム１に対して、通信ケーブル３５を省略した構成を有する。したがって、以下では、図１に示す制御システムと異なる新たな説明の必要な箇所のみを説明する。
【００８０】
コントローラ１１Ａ、スレーブ装置２１、スレーブ装置２２、スレーブ装置２３、および、コントローラ１２Ａは、この順でライン状に接続されている。言い換えれば、コントローラ１１Ａを第１端とし、コントローラ１２Ａを第２端として、第１端から第２端に向かって、複数のスレーブ装置２１、２２、２３が順に接続されている。しかしながら、コントローラ１１Ａとコントローラ１２Ａとは、直接接続されていない。この場合、コントローラ１１Ａから送信されコントローラ１２Ａに到達した制御用フレームは、コントローラ１２Ａで折り返されて、スレーブ装置２３、スレーブ装置２２、スレーブ装置２１を順に介して、コントローラ１１Ａに戻る。
【００８１】
（ランモードのコントローラ１１Ａの具体的な処理）
ランモードに設定されたコントローラ１１Ａは、具体的に次の処理を実行する。図１３は、ランモードのコントローラにおけるデータ伝送の状態を示す図である。
【００８２】
コントローラ１１Ａでは、ＣＰＵ１０１は、上述のように、共有メモリ１０４に記憶されたデータ群を用いて、ＰＬＣ制御、ＥｔｈｅｒＣＡＴスタック、およびＥｔｈｅｒドライバによって制御用フレームを生成する。この制御用フレームの生成処理は、ＰＬＣ制御によって決定された制御周期に応じて実行される。ＣＰＵ１０１は、制御用フレームを、送受信部１０２の送信部１２１に出力する。
【００８３】
送信部１２１は、上記制御周期に応じて、ＩＦ１２３を介して、通信ケーブル３１に制御用フレームを送信する。
【００８４】
一方、コントローラ１１では、送受信部１０２の受信部１２２は、通信ケーブル３１、および、ＩＦ１２３を介して、制御用ネットワークから返ってきた制御用フレームを受信する。受信部１２２は、制御用フレームをＣＰＵ１０１に出力する。
【００８５】
（データ取得モードのコントローラ１２Ａの具体的な処理）
データ取得モードに設定されたコントローラ１２Ａは、具体的に次の処理を実行する。図１４は、データ取得モードのコントローラにおけるデータ伝送の状態を示す図である。
【００８６】
コントローラ１２Ａでは、送受信部１０２’の受信部１２２’は、通信ケーブル３４、および、ＩＦ１２３’を介して、制御用ネットワークから送信されてきた制御用フレームを受信する。受信部１２２’は、制御用フレームを複写する。受信部１２２’は、制御用フレームをＣＰＵ１０１’に出力するとともに、送信部１２１’に出力する。
【００８７】
送信部１２１’は、ＩＦ１２３’を介して、通信ケーブル３４に、制御用フレームを出力する。すなわち、受信部１２２’と送信部１２１’とによって、制御用ネットワークにおける制御用フレームの折り返しを実行する。
【００８８】
また、受信部１２２’は、制御用フレームを上位通信部１０３’に転送する。この転送は、例えば、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送方式を用いる。上位通信部１０３’は、ＩＦ１３０’を介して、情報通信用ネットワーク６０のデータベース装置４０に、制御用フレームを転送する。なお、この際に、コントローラ１２は、制御用フレームに対してタイムスタンプを付与する。
【００８９】
コントローラ１２は、この制御用フレームの折り返し、および、情報通信用ネットワーク６０への転送を、制御用フレームを受信する毎に実行する。
【００９０】
このような構成の制御システム１Ａであっても、制御用ネットワークで通信されるデータ量に関係なく、コントローラと複数のスレーブ装置との制御用フレームの通信を確実に行いながら、異常検知用の制御用フレームの取得量の低下を抑制できる。
【００９１】
（コントローラの冗長化）
上述の構成からなる制御システム１は、コントローラの冗長化に対応可能である。コントローラの冗長化とは、概略的には、複数のスレーブ装置２１、２２、２３を有する制御用ネットワークの両端に、それぞれに制御用フレームの生成、送受信をできるコントローラを接続する構成（図１、図１２と同様の構成）である。そして、コントローラの冗長化では、両端のコントローラのいずれか一方を、制御用フレームの生成、スケジュール管理用として利用する。
【００９２】
図１５は、コントローラの冗長化の概要の一例を示す図である。図１５では、コントローラ１１がランモードを実行中に故障し、コントローラ１２がデータ取得モードからランモードに切り換えた態様を示している。図１５において黒色の太矢印は、ビーコンの伝送状態を示し、白色の太矢印は、制御用フレームの伝送状態を示す。
【００９３】
図１５に示すように、コントローラ１２は、情報通信用ネットワーク６０を介して、コントローラ１１に対して、ビーコンを送信する。コントローラ１２は、ビーコンとの応答が無ければ、データ取得モード（図１５ではＰモード）からランモード（図１５ではＲモード）に切り替える。そして、コントローラ１２は、複数のスレーブ装置２１、２２、２３が接続される制御用ネットワークに対する制御用フレームを生成し、当該制御用ネットワークに制御用フレームを送信する。コントローラ１１は、上述の構成であれば、ＣＰＵ１０１が故障していても、送受信部１０２によって、制御用フレームの折り返し通信は可能である。
【００９４】
（データ取得モードからランモードに切り替わるコントローラ１２の具体的な処理）
図１６は、データ取得モードからランモードに切り替わるのコントローラにおけるデータ伝送の状態を示す図である。図１６において黒色の太矢印は、ビーコンの伝送状態を示し、白色の太矢印は、制御用フレームの伝送状態を示す。
【００９５】
コントローラ１２は、データ取得モードに設定されている期間では、上述の制御用フレームの複写、折り返し、情報通信用ネットワーク６０のデータベース装置４０、および、ＰＤＯデータの共有メモリ１０４への記憶を、逐次実行する。
【００９６】
これらの処理とともに、コントローラ１２のＣＰＵ１０１は、ＰＬＣ制御においてビーコンを生成する。この際、ＣＰＵ１０１は、予め設定した動作確認用の周期でビーコンを生成する。動作確認用の周期は、制御用ネットワークの制御周期の定数倍（例えば、２倍から５倍程度）に設定されている。なお、この定数は一例であり、他の値であってもよい。また、ＣＰＵ１０１は、送受信部１０２からの制御用フレームの出力が所定時間に亘って無い時に、制御用フレームの出力の停止したと検知し、ビーコンを生成する。
【００９７】
上位通信用Ｅｔｈｅｒドライバは、このビーコンにコントローラ１１を受信先とするＥｈｅｒｎｅｔヘッダを付け、上位通信部１０３に出力する。上位通信部１０３は、ＩＦ１３０を介してビーコンを情報通信用ネットワーク６０に出力する。
【００９８】
コントローラ１２のＣＰＵ１０１におけるＰＬＣ制御は、ビーコンの応答信号を検出できなければ、データ取得モードからランモードへの切り替えを実行する。
【００９９】
コントローラ１２は、具体的に、次の図１７、図１８、図１９のいずれかに示すような処理を実行する。
【０１００】
図１７は、データ取得モードからランモードに切り替わるコントローラが実行する概略処理を示すフローチャートである。図１７は、ビーコンの応答のみで切り替えを判断する第１の態様を示す。
【０１０１】
図１７に示すように、コントローラ１２は、スレーブ情報、すなわち、制御用ネットワークに接続された複数のスレーブ装置２１、２２、２３の情報を受信する（Ｓ３００）。このような複数のスレーブ装置２１、２２、２３の情報は、コントローラ１１が制御用ネットワークを構築する際に取得され、コントローラ１１から送信され、コントローラ１２で受信される。なお、この処理は、データ取得モードからランモードへの切り替え処理に対する事前処理であり、データ取得モードからランモードへの切り替え処理における必須の処理でなく、他の方法によって実現していてもよい。
【０１０２】
コントローラ１２は、ビーコンを生成して、情報通信用ネットワーク６０を介してコントローラ１１に送信する（Ｓ３０１）。コントローラ１２は、ビーコンに対する応答信号があれば（Ｓ３０２：ＮＯ）、上述の動作確認用の周期でビーコンの送信を繰り返す。
【０１０３】
コントローラ１２は、ビーコンに対する応答信号がなければ（Ｓ３０２：ＹＥＳ）、データ取得モードからランモードに切り替える（Ｓ３０３）。
【０１０４】
図１８は、データ取得モードからランモードに切り替わるコントローラが実行する概略処理を示すフローチャートである。図１８は、ビーコンの応答のみで切り替えを判断する第２の態様を示す。
【０１０５】
図１８に示すように、コントローラ１２は、ビーコンを生成して、情報通信用ネットワーク６０を介してコントローラ１１に送信する（Ｓ３０１）。コントローラ１２は、ビーコンに対する応答信号があれば（Ｓ３０２：ＮＯ）、上述の動作確認用の周期でビーコンの送信を繰り返す。
【０１０６】
コントローラ１２は、ビーコンに対する応答信号がなければ（Ｓ３０２：ＹＥＳ）、ビーコンの送信に対して応答の無い回数をカウントアップする（Ｓ３１１）。コントローラ１２は、カウント値が切替閾値に達していなければ（Ｓ３１２：ＮＯ）、上述の動作確認用の周期でビーコンの送信を繰り返す。
【０１０７】
コントローラ１２は、カウント値が切替閾値に達すれば（Ｓ３１２：ＹＥＳ）、データ取得モードからランモードに切り替える（Ｓ３０３）。
【０１０８】
図１８の処理を用いることによって、情報通信用ネットワーク６０を介するビーコンの通信エラー等による誤ったモードの切り替えは抑制される。
【０１０９】
図１９は、データ取得モードからランモードに切り替わるコントローラが実行する概略処理を示すフローチャートである。図１９は、制御用フレームの観測結果とビーコンの応答で切り替えを判断する態様を示す。
【０１１０】
コントローラ１２は、制御用フレームを観測する（Ｓ４０１）。コントローラ１２は、制御用フレームを受信できていれば（Ｓ４０２：ＮＯ）、制御用フレームの観測を繰り返す。
【０１１１】
コントローラ１２は、所定時間、制御用フレームが受信できなければ（Ｓ４０２：ＹＥＳ）、ビーコンを生成して、情報通信用ネットワーク６０を介してコントローラ１１に送信する（Ｓ３０１）。ここで、所定時間は、例えば、制御周期の定数倍である。コントローラ１２は、ビーコンに対する応答信号があれば（Ｓ３０２：ＮＯ）、上述の動作確認用の周期でビーコンの送信を繰り返す。
【０１１２】
コントローラ１２は、ビーコンに対する応答信号がなければ（Ｓ３０２：ＹＥＳ）、データ取得モードからランモードに切り替える（Ｓ３０３）。
【０１１３】
図１９の処理を用いることによって、制御用ネットワークにおける制御用フレームの通信状態と、情報通信用ネットワーク６０を介したビーコンとによって、コントローラ１１の故障等を検知できる。これにより、コントローラ１１に対する検知精度は向上する。
【０１１４】
このように、データ取得モードからランモードに切り替わると、コントローラ１２は、図２０に示すような処理を実行する。図２０は、ランモードに切り替わった後のコントローラにおけるデータ伝送の状態を示す図である。この図２０に示す処理は、図６に示した処理に対して、処理の主体がコントローラ１１からコントローラ１２に代わったものである。したがって、詳細な処理については説明を省略する。すなわち、コントローラ１２は、ランモードへ切り替わると、制御用ネットワークにおいてコントローラ１１が実行していた処理と同様の処理を実行する。
【０１１５】
以上のように、上述の構成および処理を用いることによって、コントローラ１１が故障等によって制御用フレームの生成、スケジュール管理を行えなくなっても、コントローラ１２によって制御用ネットワークを用いた制御を継続できる。すなわち、制御用ネットワークによる制御の停止期間は殆ど発生しない。
【０１１６】
この際、コントローラ１２は、上述のように、データ取得モード時にＰＤＯデータを共有メモリ１０４に記憶している。したがって、コントローラ１２は、ランモードへの切り替え時に、それまでのＰＤＯデータを既に保持している。これにより、コントローラ１２は、制御用フレームの生成を早急且つ確実に行うことができる。
【０１１７】
さらに、上述のように、コントローラ１２は、ランモードへの切り替えの前に、複数のスレーブ装置２１、２２、２３の情報をコントローラ１１から取得して共有メモリ１０４に記憶している。これにより、コントローラ１２は、複数のスレーブ装置２１、２２、２３の情報を、切り替え後に改めて、複数のスレーブ装置２１、２２、２３から取得する必要はない。したがって、制御用フレームの生成をさらに早急且つ確実に行うことができる。
【０１１８】
また、コントローラ１１において、ＣＰＵ１０１が故障、または暴走し、送受信部１０２が正常であれば、コントローラ１１では送受信部１０２にて制御用フレームが複写される。そして、複写された制御用フレームは、送受信部１０２、および上位通信部１０３を介して、情報通信用ネットワーク６０のデータベース装置４０に転送される。これにより、異常検知用の制御用フレームの転送は継続される。
【０１１９】
（コントローラ１１とコントローラ１２とのモード切り替えの具体的な処理）
図２１は、制御用ネットワークに接続される２個のコントローラのモード切り替えにおけるデータ伝送の状態を示す図である。図２１において黒色の太矢印は、切り替え命令信号の伝送状態を示し、ハッチングの太矢印は、切り替え確認信号の伝送状態を示す。
【０１２０】
ＵＩ装置５０は、ランモードで動作中のコントローラ１１と、データ取得モードで動作中のコントローラ１２とに、情報通信用ネットワーク６０を介して、切り替え命令信号を送信する。コントローラ１１とコントローラ１２とは、切り替え命令信号を受信すると、情報通信用ネットワーク６０を介して、切り替え確認信号を相互に送受信する。
【０１２１】
この後、コントローラ１１は、ランモードを停止し、データ取得モードを開始する。また、これに同期して、コントローラ１２は、ランモードを開始し、データ取得モードを停止する。
【０１２２】
図２２は、２個のコントローラが実行するモード切り替えの概略処理を示すフローチャートである。
【０１２３】
コントローラ１１は、切り替え命令信号を受信すると（Ｓ４１１）、コントローラ１２に対して、切り替え確認信号の一種である制御停止予告信号を、コントローラ１２に送信する（Ｓ４１２）。制御停止予告信号には、例えば、制御を停止する時刻等を含んでいてもよい。
【０１２４】
コントローラ１２は、切り替え命令信号を受信すると（Ｓ４２１）、制御停止予告信号の受信待ちになり、制御停止予告信号を受信する（Ｓ４２２）。コントローラ１２は、制御停止予告信号を解析し、切り替え確認信号の一種である制御開始予告信号を、コントローラ１１に送信する（Ｓ４２３）。
【０１２５】
コントローラ１１は、制御開始予告信号を受信すると（Ｓ４１３）、制御を停止する。これにより、コントローラ１１は、ランモードからデータ取得モードに切り替える。この後、コントローラ１１は、制御用フレームを観測し、制御用フレームの受信が実行できているかを確認する（Ｓ４１５）。
【０１２６】
コントローラ１２は、制御開始予告信号の送信後、制御用フレームを観測し、制御用フレームの受信が無くなったことを確認する（Ｓ４２４）。この後、コントローラ１２は、データ取得モードからランモードに切り替え、制御用フレームの生成、制御用ネットワークへの送受信を開始する（Ｓ４２５）。
【０１２７】
このように、制御システム１では、ランモードのコントローラとデータ取得モードのコントローラとを、ＵＩ装置５０からの制御によって、相互に切り替えることができる。これにより、例えば、ファームウェアの書き替え、アップデートを、複数のスレーブ装置２１、２２、２３の制御を継続しながら、実現できる。例えば、データ取得モードのコントローラ１２に対して、ファームウェアの書き替えを行い、コントローラ１１とコントローラ１２に対するランモードとデータ取得モードとの切り替えを実行する。そして、データ取得モードになったコントローラ１１に対して、ファームウェアの書き換えを行う。
【０１２８】
この場合、データ取得モードのコントローラは、複数のスレーブ装置への制御に対するＣＰＵ１０１の負荷が殆ど無い。したがって、ファームウェアのダウンロードと書き替え処理を、高速且つ確実に行うことができる。
【０１２９】
（ケーブルの冗長化）
上述の構成からなる制御システム１は、ケーブルの冗長化に対応可能である。ケーブルの冗長化とは、概略的には、複数のスレーブ装置２１、２２、２３を有する制御用ネットワークの両端に接続された２個のコントローラを、２個の経路で接続する構成（図１と同様の構成）である。
【０１３０】
図２３は、ケーブルの冗長化によって対処可能な事例の一例を示す図である。図２３では、スレーブ装置２２とスレーブ装置２３とを接続する通信ケーブル３３が断線した場合を示している。図１５において白色の太矢印は、制御用フレームの伝送状態を示す。
【０１３１】
図２３に示すように、制御システム１は、コントローラ１１とコントローラ１２との間に、複数の通信ケーブル３１、３２、３３、３４を用いて、複数のスレーブ装置２１、２２、２３が順に繋がる第１ルートと、コントローラ１１とコントローラ１２とが通信ケーブル３５によって直接接続される第２ルートとを有する。通常、コントローラ１１は、第１ルートを介して、制御用フレームを送信する。
【０１３２】
ここで、通信ケーブル３３が断線した場合、コントローラ１１から送信された制御用フレームは、スレーブ装置２２で折り返される。コントローラ１１は、制御用フレームのＰＤＯまたはタイムスタンプを確認する。コントローラ１１は、制御用フレームがスレーブ装置２３を通過していないことを検出すると、第２ルートに制御用フレームを折り返す。制御用フレームは、第２ルート、コントローラ１２を介して、スレーブ装置２３に到達する。スレーブ装置２３からスレーブ装置２２側を見ると、スレーブ装置２２は繋がっていないので、スレーブ装置２３は、制御用フレームをコントローラ１２側に折り返す。コントローラ１２は、この制御用フレームを、第２ルートを介して、コントローラ１１に折り返す。
【０１３３】
（ランモードのコントローラの具体的な処理）
ランモードのコントローラ１１は、具体的に次の処理を実行する。図２４は、ケーブルの冗長化に対応したランモードのコントローラの処理のフローチャートである。
【０１３４】
ランモードのコントローラ１１は、第１ルート（コントローラ１１とコントローラ１２との間に複数のスレーブ装置２１、２２、２３が繋がるルート）で、制御用フレームを送信する（Ｓ５０１）。コントローラ１１は、制御用フレームを受信する（Ｓ５０２）。
【０１３５】
コントローラ１１は、制御フレームを解析して、通過していないスレーブ装置があるかを検出する。例えば、コントローラ１１は、各スレーブ装置のタイムスタンプの有無、整合性に基づいて、通過していないスレーブ装置があるかを検出する。
【０１３６】
コントローラ１１は、通過していないスレーブ装置がなければ（Ｓ５０３：ＮＯ）、通常の制御、すなわち、第１ルートから制御用フレームを送信する制御を継続する。
【０１３７】
コントローラ１１は、通過していないスレーブ装置があれば（Ｓ５０３：ＹＥＳ）、第２ルートに、制御用フレームを折り返して転送する（Ｓ５０４）。
【０１３８】
（データ取得モードのコントローラの具体的な処理）
データ取得モードのコントローラ１２は、具体的に次の処理を実行する。図２５は、ケーブルの冗長化に対応したデータ取得モードのコントローラの処理のフローチャートである。
【０１３９】
データ取得モードのコントローラ１２は、第１ルートからの制御用フレームを受信できず、第２ルートからの制御用フレームを受信する（Ｓ５１１）。コントローラ１２は、第１ルートに、制御用フレームを折り返して転送する（Ｓ５１２）。コントローラ１２は、第１ルートからの制御用フレームを受信する（Ｓ５１３）。
【０１４０】
コントローラ１２は、第２ルートに、制御用フレームを折り返して転送する（Ｓ５１４）。
【０１４１】
また、コントローラ１２は、制御用フレームを、情報通信用ネットワーク６０のデータベース装置４０に転送する（Ｓ５１１）。コントローラ１２は、制御用フレームからＰＤＯデータを抽出し（Ｓ５３１）、共有メモリ１０４’に記憶する（Ｓ５３２）。
【０１４２】
以上のような構成および処理によって、第１ルートの途中で断線等があっても、コントローラ１１は、複数のスレーブ装置２１、２２、２３の全てに対して制御用フレームを送信でき、複数のスレーブ装置２１、２２、２３の全てにおいて更新された制御用フレームを受信できる。すなわち、第１ルートの途中に断線があっても、コントローラ１１による複数のスレーブ装置２１、２２、２３に対する制御は継続される。これは、断線の箇所によらず、もちろん、第２ルート、すなわち、通信ケーブル３５に断線があっても、コントローラ１１による複数のスレーブ装置２１、２２、２３に対する制御は継続される。
【０１４３】
（データ取得モードのコントローラによる異常検知）
上述の構成では、異常検知の処理を、情報通信用ネットワーク６０に接続されたデータベース装置４０で実行する態様を示した。しかしながら、データ取得モードのコントローラによって、異常検知の処理を行ってもよい。
【０１４４】
図２６は、データ取得モードのコントローラによって異常検知を実行する場合の制御システムにおける装置の構成を示す図である。図２７は、データ取得モードのコントローラにおけるデータ通信に関する構成を示すブロック図である。
【０１４５】
図２６に示す制御システム１Ｂは、図１に示した制御システム１に対して、コントローラ１１に換えてコントローラ１１Ｂを用い、コントローラ１２に換えてコントローラ１２Ｂを用いる点、データベース装置４０を必須としない点において異なる。制御システム１Ｂの他の構成は、制御システム１と同様であり、同様の箇所の説明は省略する。
【０１４６】
コントローラ１１Ｂおよびコントローラ１２Ｂは、同じ構成からなり、コントローラ１１およびコントローラ１２に対して、図２７に示すようなパケットアナライザ１０６を追加した点において異なる。コントローラ１１Ｂとコントローラ１２Ｂとは、異なるモードで動作している。例えば、コントローラ１１Ｂが上述のランモードで動作している時には、コントローラ１２Ｂは、上述のデータ取得モードで動作している。
【０１４７】
さらに、コントローラ１２Ｂは、パケットアナライザ１０６によって、上述のデータベース装置４０で実行した異常検知に関する処理を実行する。コントローラ１２Ｂは、データ取得モードで動作しているので、異常検知を行っても、制御用ネットワークの制御に影響を与えない。したがって、制御システム１Ｂは、複数のスレーブ装置２１、２２、２３への制御を確実に実行しながら、制御用ネットワークに接続される装置だけで、異常検知を実行できる。なお、この際、コントローラ１２Ｂは、情報通信用ネットワーク６０に対して異常検知の結果を出力すればよい。例えば、コントローラ１２Ｂは、情報通信用ネットワーク６０を介して、ＵＩ装置５０に異常検知の結果を出力する。ＵＩ装置５０またはＵＩ装置５０を操作するオペレータは、異常検知の結果に基づいて、コントローラ１１Ｂに対する命令等を決定する。
【０１４８】
また、パケットアナライザ１０６は、ＣＰＵ１０１’と異なる専用のＩＣ、例えばＡＳＩＣによって実現されていることが好ましい。これにより、データ取得モードのコントローラ１２ＢのＣＰＵ１０１’の処理負荷を軽減できる。
【０１４９】
また、この際、送受信部１０２’は、パケットアナライザ１０６に対してＤＭＡ転送で制御用フレームを転送することが好ましい。これにより、ＣＰＵ１０１’の負荷はさらに軽減される。
【０１５０】
なお、図２６、図２７の構成では、コントローラ１１Ｂおよびコントローラ１２Ｂの両方を同じ構成にする態様を示したが、コントローラ１２Ｂのみにパケットアナライザ１０６を備えさせてもよい。
【符号の説明】
【０１５１】
１、１Ａ：制御システム
１０、１１、１１Ａ、１１Ｂ、１２、１２Ａ、１２Ｂ：コントローラ
１３：上位通信部
２１、２２、２３：スレーブ装置
３１、３２、３３、３４、３５：通信ケーブル
４０：データベース装置
５０：ＵＩ装置
６０：情報通信用ネットワーク
１０１、１０１’：ＣＰＵ
１０２、１０２’：送受信部
１０３、１０３’：上位通信部
１０４、１０４’：共有メモリ
１０５、１０５’：プログラムメモリ
１０６：パケットアナライザ
１１０：システムバス
１２１：送信部
１２２：受信部
１２３、１３０：ＩＦ
【図１】
2019016932.tif 000003
【図２】
2019016932.tif 000004
【図３】
2019016932.tif 000005
【図４】
2019016932.tif 000006
【図５】
2019016932.tif 000007
【図６】
2019016932.tif 000008
【図７】
2019016932.tif 000009
【図８】
2019016932.tif 000010
【図９】
2019016932.tif 000011
【図１０】
2019016932.tif 000012
【図１１】
2019016932.tif 000013
【図１２】
2019016932.tif 000014
【図１３】
2019016932.tif 000015
【図１４】
2019016932.tif 000016
【図１５】
2019016932.tif 000017
【図１６】
2019016932.tif 000018
【図１７】
2019016932.tif 000019
【図１８】
2019016932.tif 000020
【図１９】
2019016932.tif 000021
【図２０】
2019016932.tif 000022
【図２１】
2019016932.tif 000023
【図２２】
2019016932.tif 000024
【図２３】
2019016932.tif 000025
【図２４】
2019016932.tif 000026
【図２５】
2019016932.tif 000027
【図２６】
2019016932.tif 000028
【図２７】
2019016932.tif 000029