(57)【特許請求の範囲】
【請求項１】
通信エラーの有無を検出する複数のスレーブ装置とコネクションレス型の通信方式で通信するマスタ装置であって、
前記通信エラーの有無を示す情報であるエラー情報を前記複数のスレーブ装置に送信させるための指示を送信する指示送信部と、
前記指示送信部の送信した指示に応じて前記複数のスレーブ装置からそれぞれ送信される前記エラー情報を受信する情報受信部と、
前記情報受信部が受信した前記エラー情報を前記スレーブ装置毎に記憶部に記憶させるログ記憶部と、を備え、
前記記憶部には、前記エラー情報の送信を繰り返させる繰り返し回数を規定したサイクル値が記憶されており、
前記指示送信部は、前記繰り返し回数分だけ前記指示を送信し、
前記情報受信部は、前記エラー情報を前記サイクル値に応じて規定される回数分受信することを特徴とするマスタ装置。
【請求項２】
前記指示送信部は、前記指示を所定の時間間隔で送信することを特徴とする、請求項１に記載のマスタ装置。
【請求項３】
前記情報受信部は、前記スレーブ装置が検出した前記通信エラーの発生回数を前記エラー情報として受信することを特徴とする、請求項１または２に記載のマスタ装置。
【請求項４】
前記ログ記憶部は、前記通信エラーの発生回数の累積値を記憶させることを特徴とする、請求項３に記載のマスタ装置。
【請求項５】
前記ログ記憶部は、前記情報受信部が受信したエラー情報を、前記情報受信部が前記エラー情報を受信した時刻または前記スレーブ装置においてエラー情報が取得された時刻に対応づけて記憶させることを特徴とする、請求項１〜４のいずれか１項に記載のマスタ装置。
【請求項６】
前記情報受信部は、前記スレーブ装置から前記通信エラーの種類毎のエラー情報を受信し、
前記ログ記憶部は、前記通信エラーの種類毎にエラー情報を記憶させることを特徴とする、請求項１〜５のいずれか１項に記載のマスタ装置。
【請求項７】
前記記憶部は、ユーザにより作成されるプログラムであって、前記指示の送信開始および終了のタイミングと、前記指示を送信する時間間隔とが規定されたプログラムであるユーザプログラムのデータを格納しており、
前記指示送信部は、前記ユーザプログラムに規定された送信開始のタイミングで前記指示の送信を開始し、前記ユーザプログラムに規定された時間間隔で前記指示を周期的に送信し、前記ユーザプログラムに規定された送信終了のタイミングで前記指示の周期的な送信を終了することを特徴とする、請求項１〜６のいずれか１項に記載のマスタ装置。
【請求項８】
通信エラーの有無を検出し、記憶部を有するマスタ装置とコネクションレス型の通信方式で通信するスレーブ装置であって、
前記通信エラーの有無を示す情報であるエラー情報の送信指示を、前記記憶部に記憶されたサイクル値が規定する、前記エラー情報の送信を繰り返させる繰り返し回数分だけ前記マスタ装置から受信する指示受信部と、
前記指示受信部が受信した前記送信指示に応じて、前記マスタ装置に前記エラー情報を前記サイクル値に応じて規定される回数分送信する情報送信部と、を備えることを特徴とするスレーブ装置。
【請求項９】
請求項１〜７のいずれか１項に記載のマスタ装置と、
請求項８に記載のスレーブ装置複数台と、を含むことを特徴とするエラー監視システム。
【請求項１０】
通信エラーの有無を検出する複数のスレーブ装置とコネクションレス型の通信方式で通信するマスタ装置の制御方法であって、
前記通信エラーの有無を示す情報であるエラー情報を前記複数のスレーブ装置に送信させるための指示を、前記マスタ装置に設けられた記憶部に記憶されたサイクル値が規定する、前記エラー情報の送信を繰り返させる繰り返し回数分だけ送信する指示送信ステップと、
前記指示送信ステップにて送信した指示に応じて、前記複数のスレーブ装置からそれぞれ送信される前記エラー情報を前記サイクル値に応じて規定される回数分受信する情報受信ステップと、
前記情報受信ステップにて受信した前記エラー情報を前記スレーブ装置毎に前記記憶部に記憶させるログ記憶ステップと、を含むことを特徴とするマスタ装置の制御方法。
【請求項１１】
請求項１に記載のマスタ装置としてコンピュータを機能させるための制御プログラムであって、前記指示送信部、前記情報受信部、および前記ログ記憶部としてコンピュータを機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コネクションレス型通信を行うマスタ装置およびスレーブ装置等に関する。
【背景技術】
【０００２】
工場内に設置される生産設備のデータ収集および制御を行うスレーブ装置と、複数のスレーブ装置を集中管理するマスタ装置とを含む産業用ネットワークシステムは、従来から多数考案されている。マスタ装置とスレーブ装置のトポロジは、スレーブ装置がデータ収集および制御する生産設備やスレーブ装置間の連携、配線の関係などにより様々である。
【０００３】
マスタ装置とスレーブ装置とは、EtherCAT（Ethernet for Control Automation Technology:登録商標）のようなコネクションレス型の通信を行う。そして、マスタ装置とスレーブ装置のトポロジの直列部分については、送信したいデータを含むフレームが１本の伝送路を往復することで送受信される。具体的には、マスタ装置から伝送路に流れてきたフレームは、マスタ装置の下流に直列に接続されたスレーブ装置を次々と通過して末端のスレーブ装置に到達する。その後フレームは末端のスレーブ装置で折り返され、往路と逆の順でスレーブ装置を通過し、マスタ装置に戻る。
【０００４】
そのため、マスタ装置と複数のスレーブ装置との通信において断線やフレームの破損、およびリンクの消失などの通信エラーが生じると、マスタ装置側では、フレームが返ってこないため、どのスレーブ装置でエラーが起きたのか判別することができなかった。
【０００５】
この問題を解決するために、複数のスレーブ装置のポートの開閉を制御することで、それぞれのスレーブ装置をネットワークの末端のスレーブとした場合にフレームが戻ってくるかを調べることにより、スレーブ装置それぞれの接続異常を検出する技術が開発されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１９５６５３号公報（２０１２年１０月１１日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１に記載の発明は、マスタ装置が産業用ネットワークシステムの生産工程とは異なる「テストモード」に移行してから通信テストを行うことにより、スレーブ装置の接続異常を特定するものであり、マスタ装置が産業用ネットワークの中で稼働中であるときに発生したエラーをモニタリングすることはできなかった。
【０００８】
本発明は前記の問題点に鑑みたものであり、その目的は、産業用ネットワークの中で稼働中であるか否かに関わらず、通信エラーの発生箇所を特定可能なマスタ装置等を実現することにある。
【課題を解決するための手段】
【０００９】
前記の課題を解決するために、本発明に係るマスタ装置は、通信エラーの有無を検出する複数のスレーブ装置とコネクションレス型の通信方式で通信するマスタ装置であって、前記通信エラーの有無を示す情報であるエラー情報を前記複数のスレーブ装置に送信させるための指示を送信する指示送信部と、前記指示送信部の送信した指示に応じて前記複数のスレーブ装置からそれぞれ送信される前記エラー情報を受信する情報受信部と、前記情報受信部が受信した前記エラー情報を前記スレーブ装置毎に記憶部に記憶させるログ記憶部と、を備える構成である。
【００１０】
前記の課題を解決するために、本発明に係るマスタ装置の制御方法は、通信エラーの有無を検出する複数のスレーブ装置とコネクションレス型の通信方式で通信するマスタ装置の制御方法であって、前記通信エラーの有無を示す情報であるエラー情報を前記複数のスレーブ装置に送信させるための指示を送信する指示送信ステップと、前記指示送信ステップにて送信した指示に応じて前記複数のスレーブ装置からそれぞれ送信される前記エラー情報を受信する情報受信ステップと、前記情報受信ステップにて受信した前記エラー情報を前記スレーブ装置毎に記憶部に記憶させるログ記憶ステップと、を含む方法である。
【００１１】
前記構成または方法によると、マスタ装置は複数のスレーブ装置からエラー情報を収集するため、エラーの有無をスレーブ装置毎に記憶することができる。したがって、稼働中のスレーブ装置いずれかにおいて通信エラーが発生した場合、当該通信エラーがどこで発生したか、マスタ装置が知ることができる。つまり、マスタ装置はスレーブ装置がネットワーク上で稼働中であるか否かに関わらず、スレーブ装置における通信エラーの発生箇所を特定することができる。
【００１２】
前記マスタ装置において、前記指示送信部は、前記指示を所定の時間間隔で送信してもよい。
【００１３】
前記構成によると、マスタ装置は情報受信部にて複数のスレーブ装置から、所定の周期でエラー情報を収集するため、エラーの有無をスレーブ装置毎に所定周期で監視することができる。したがって、マスタ装置は時間経過による通信エラーの発生有無および発生箇所の推移を監視することができる。
【００１４】
前記マスタ装置において、前記情報受信部は、前記スレーブ装置が検出した前記通信エラーの発生回数を前記エラー情報として受信してもよい。
【００１５】
前記構成によると、マスタ装置は情報受信部にてエラーの発生回数を収集するため、複数のスレーブ装置それぞれでの通信エラーの発生を定量的に監視することができる。そのため、例えばエラーが頻発するスレーブ装置等を特定することができるので、より正確にエラーの発生箇所を特定することができる。
【００１６】
前記マスタ装置において、前記ログ記憶部は、前記通信エラーの発生回数の累積値を記憶させてもよい。
【００１７】
前記構成によると、マスタ装置は記憶部に通信エラーの発生回数の累積値を記録しておくため、スレーブ装置それぞれにおけるエラーの発生回数をより正確に監視することができる。具体的には、スレーブ装置の電源がＯＦＦになった場合など、何らかの要因でエラーの発生回数のカウントが初期化された場合でも、マスタ装置はエラーの発生回数を累積して記録するため、エラーの監視を継続することができる。逆に言うと、スレーブ装置において、エラーの発生回数のカウントに上限値が設けられている場合、スレーブ装置における当該カウントを初期化することができるため、長期的かつ周期的にエラーを監視することが可能になる。
【００１８】
前記マスタ装置において、前記ログ記憶部は、前記情報受信部が受信したエラー情報を、前記情報受信部が前記エラー情報を受信した時刻または前記スレーブ装置においてエラー情報が取得された時刻に対応づけて記憶させてもよい。
【００１９】
前記構成によると、記憶部に記憶されたエラー情報に対応づけられた時刻を確認することで、当該エラーの発生時刻を推定することができる。
【００２０】
前記マスタ装置において、前記情報受信部は、前記スレーブ装置から前記通信エラーの種類毎のエラー情報を受信し、前記ログ記憶部は、前記通信エラーの種類毎にエラー情報を記憶させてもよい。
【００２１】
前記構成によると、記憶部はエラー情報を通信エラーの種類毎に記憶するため、マスタ装置はエラーの発生箇所とともに、発生したエラーの種類を特定することができる。
【００２２】
前記マスタ装置において、前記記憶部は、ユーザにより作成されるプログラムであって、前記指示の送信開始および終了のタイミングと、前記指示を送信する時間間隔とが規定されたプログラムであるユーザプログラムのデータを格納しており、を記憶し、前記指示送信部は、前記ユーザプログラムに規定された送信開始のタイミングで前記指示の送信を開始し、前記ユーザプログラムに規定された時間間隔で前記指示を周期的に送信し、前記ユーザプログラムに規定された送信終了のタイミングで前記指示の周期的な送信を終了してもよい。
【００２３】
前記構成によると、指示送信部はユーザが作成したユーザプログラムにより任意に定められたタイミングで複数のスレーブ装置からのエラー情報の収集を開始および終了する。また指示送信部は当該収集の開始から終了までの間、ユーザプログラムにより任意に定められた時間間隔でエラー情報を収集する。これにより、マスタ装置は、任意に定められる期間のエラー情報を任意に定められる間隔で取得することができる。したがってエラー情報の収集期間および収集間隔の自由度を向上させることができる。
【００２４】
前記の課題を解決するために、本発明に係るスレーブ装置は、通信エラーの有無を検出し、マスタ装置とコネクションレス型の通信方式で通信するスレーブ装置であって、前記通信エラーの有無を示す情報であるエラー情報の送信指示を、前記マスタ装置から受信する指示受信部と、前記指示受信部が受信した前記送信指示に応じて前記マスタ装置に前記エラー情報を送信する情報送信部と、を備える構成である。
【００２５】
前記構成によると、スレーブ装置はネットワーク上で稼働中であるか否かに関わらず、通信エラーの発生箇所を特定するためのエラー情報をマスタ装置に送信することができる。
【００２６】
前記の課題を解決するために、本発明に係るエラー監視システムは、前記マスタ装置と、前記スレーブ装置複数台とを含む構成である。
【００２７】
前記構成によると、前記マスタ装置および前記スレーブ装置と同様の効果を奏する。
【００２８】
前記マスタ装置および前記スレーブ装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記マスタ装置およびスレーブ装置が備える各部（ソフトウェア要素）として動作させることにより上記マスタ装置およびスレーブ装置をコンピュータにて実現させるマスタ装置およびスレーブ装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００２９】
本発明によれば、産業用ネットワークの中で稼働中であるか否かに関わらず、通信エラーの発生箇所を特定することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態１に係るエラー監視システムに含まれるマスタ装置およびスレーブ装置の要部構成を示すブロック図である。
【図２】上記エラー監視システムの概要を示す図である。
【図３】上記スレーブ装置にて記録されるエラーログのデータ構造の一例を示す図である。
【図４】上記マスタ装置にて作成される累積エラーログのデータ構造の一例を示す図である。
【図５】上記マスタ装置および上記スレーブ装置によるエラーログ収集処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００３１】
≪システム概要≫
始めに、本実施形態に係るエラー監視システムのシステム構成およびその概要について説明する。図２は、エラー監視システム１００の概要を示す図である。エラー監視システム１００は図示の通り、パーソナルコンピュータ（ＰＣ）５と、マスタ装置４と、複数のスレーブ装置（スレーブ装置１〜３）とを含んでいる。なお、各スレーブ装置は、１台以上の入力装置、および１台以上の出力装置のいずれかまたは両方と接続されていてもよい。
【００３２】
ＰＣ５とマスタ装置４とは有線または無線で通信接続されている。一方、マスタ装置４とスレーブ装置１とは、EtherCAT（Ethernet for Control Automation Technology:登録商標）通信に適合するケーブルで接続され、EtherCATの通信規格を用いてコネクションレス型通信を行う。スレーブ装置１とスレーブ装置２、スレーブ装置２とスレーブ装置３も同様のケーブルで接続され、EtherCATの通信規格を用いて通信する。マスタ装置４とスレーブ装置１〜３との通信においては、マスタ装置４は上流側、すなわちEtherCATマスタとしてはたらき、スレーブ装置１〜３はEtherCATスレーブとしてはたらく。以降、EtherCATの通信規格を用いた通信を単に「EtherCAT通信」と称する。スレーブ装置（図２ではスレーブ装置１）と入力装置または出力装置とは、有線または無線で適宜接続される。
【００３３】
なお、本実施形態では、図２に示したようにマスタ装置４に３台のスレーブ装置１〜３が直列に接続されているものとして説明を行うが、マスタ装置４に直接または間接に接続するスレーブ装置のトポロジは、特に限定されない。エラー監視システム１００はスレーブ装置間の連携や配線の都合に応じて、直列状、リング状、ツリー状またはスター状など、どのようなトポロジをとってもよい。また、当該スレーブ装置は複数台であれば何台であってもよい。
【００３４】
ここで、各装置について簡単に説明する。ＰＣ５は、マスタ装置４に実行させるユーザプログラムをユーザの入力操作に応じて作成し、マスタ装置４に送信する装置である。ＰＣ５はまた、マスタ装置４から各種データを収集し、当該データを編集および表示してもよい。
【００３５】
スレーブ装置１〜３は、自装置に接続されたボタンやスイッチ、各種検出機器または測定機器などの入力装置からデータを収集する装置であるとともに、モータやランプなどの出力装置を制御する装置である。スレーブ装置１〜３は、自装置にて発生した通信エラーの、種類毎の発生回数（エラーカウント）を、エラーログ（エラー情報）として記録し、マスタ装置４からの指示に応じてマスタ装置４に伝送する。エラーログについては後で詳述する。
【００３６】
マスタ装置４は、シーケンス制御を行うプログラマブルロジックコントローラ（PLC）である。マスタ装置４は、EtherCAT通信によりスレーブ装置１〜３に制御命令を伝送することでスレーブ装置１〜３を制御するとともに、スレーブ装置１〜３から各種データを受け取ることで、スレーブ装置１〜３の状態監視を行う。これらの制御および状態監視は、ＰＣ５から受信したユーザプログラムに基づいて実行される。具体的には、マスタ装置４はスレーブ装置１〜３からエラーログを収集し、上記発生回数を累積したデータである累積エラーログを記録する。
【００３７】
エラー監視システム１００は、スレーブ装置１〜３が記録しているエラーログを所定回数収集し、収集したエラーログに含まれるエラーの発生回数をスレーブ装置毎に累積した累積エラーログを作成することにより、スレーブ装置１〜３で発生したエラーを定量的および定性的に監視するシステムである。以下、エラー監視システム１００の処理の流れの概要を説明する。
【００３８】
ＰＣ５は、マスタ装置４におけるエラーログ収集に係る規定を含むプログラムであるユーザプログラムを作成し、マスタ装置４に送信する。なお、ユーザプログラムについては後で詳述する。
【００３９】
マスタ装置４は受信したユーザプログラムの規定に沿って、スレーブ装置１〜３に対し、エラーログを伝送するように指示する（エラーログ伝送指示）。具体的には、マスタ装置４はエラーログ伝送指示を含んだ、EtherCATの通信規格に合致するフレーム（EtherCATフレーム、以下単にフレームと称する）を作成し、スレーブ装置１〜３に伝送する。
【００４０】
マスタ装置４からスレーブ装置１に伝送されたフレームは、スレーブ装置１〜３を順に通過する。このとき、各スレーブにてフレームに含まれているエラーログ伝送指示が読み取られる。そしてフレームは、往路と逆順に、すなわちスレーブ装置３、スレーブ装置２、スレーブ装置１、およびマスタ装置４の順に送られる。マスタ装置４は、戻ってきたフレームを受け取る。これにより、フレームの伝送処理が完了する。スレーブ装置１〜３はエラーログ伝送指示を読み取ると、それぞれ自装置で記録しているエラーログをフレームに含めてマスタ装置４に送信する。
【００４１】
マスタ装置４はスレーブ装置１〜３がそれぞれ伝送したエラーログを受け取り、受け取ったエラーログに含まれるエラーカウントを累積したエラーログである、累積エラーログを作成する。以降、マスタ装置４はエラーログ伝送指示を、ユーザプログラムの規定に基づいて所定の周期で所定回数行う。したがって、累積エラーログは、上記規定に基づく期間（に収集したエラーログの回数分）の累積エラーログであるといえる。
【００４２】
このように、エラー監視システム１００は、スレーブ装置１〜３にてそれぞれ記録されているエラーカウントを所定の周期で所定回数収集し、エラーカウントの累積値を累積エラーログとして記録する。これにより、マスタ装置４とスレーブ装置１〜３とはEtherCAT通信、すなわちデータの宛先の状況を確認せず通信するコネクションレス型通信であるにもかかわらず、どの装置でどのような通信エラーがどのぐらいの頻度で生じたか特定することができる。さらに、マスタ装置４は、予めマスタ装置４にダウンロードされたユーザプログラムに規定された周期および回数分、エラーログの伝送を自動的に（ユーザの入力操作無しに）指示する。そのため、マスタ装置４およびスレーブ装置１〜３がネットワークにおいて稼働中であっても、稼働を止めることなく上述したエラーログの収集や累積エラーログの作成を行うことができる。
≪要部構成≫
次に、エラー監視システム１００に含まれるマスタ装置４、およびスレーブ装置１〜３の要部構成について説明する。図１は、本実施形態に係るエラー監視システム１００に含まれる各装置の要部構成を示すブロック図である。なお、スレーブ装置２およびスレーブ装置３については、スレーブ装置１と同様の構成であるため、機能ブロックの図示および説明を省略する。
（スレーブ装置１の要部構成）
スレーブ装置１は、スレーブ通信部１１と、スレーブ制御部１２と、スレーブ記憶部１３とを備えている。スレーブ通信部１１は、マスタ装置４および他のスレーブ装置（図１〜２ではスレーブ装置２）とEtherCAT通信を行うための通信ユニットである。スレーブ記憶部１３は、エラーログ（エラー情報）１３１を格納する記憶装置である。
【００４３】
スレーブ制御部１２は、スレーブ装置１を統括的に制御するものである。スレーブ制御部１２は、スレーブ通信部１１を介しマスタ装置４から制御命令として、スタート指示、およびエラーログ伝送指示を受信する。なお、これらの指示内容については後述する。スレーブ制御部１２はより詳しくは、指示実行部１２１（指示受信部）、エラー検出部１２２、およびエラーログ送信部１２３（情報送信部）を含む。
【００４４】
指示実行部１２１は、スレーブ制御部１２が受信した制御命令を各部に実行させるものである。具体的には、指示実行部１２１は、スレーブ制御部１２がスタート指示を受信した場合、エラー検出部１２２に当該指示を送信する。また、指示実行部１２１は、スレーブ制御部１２がエラーログ伝送指示を受信した場合、エラーログ送信部１２３にエラーログの伝送を指示する。
【００４５】
エラー検出部１２２は、スレーブ通信部１１における通信エラーを検出し、その発生回数をエラーログ１３１として記録するものである。図３は、エラーログ１３１のデータ構造の一例を示す図である。エラーログ１３１は図示の通り、スレーブ装置１〜３においてそれぞれ発生する通信エラーの種類毎の、発生回数（エラーカウント）を示す情報である。なお、エラーカウントの上限（カウント可能な上限値）は適宜定められれば良い。
【００４６】
エラー検出部１２２は、通信エラーを検出しエラーログを作成するものである。なお、ここで言う「通信エラー」は特に種類を限定しないが、例えばフレームの破損によるＣＲＣエラーやリンクのロストによるエラーなどである。エラー検出部１２２はスレーブ通信部１１を常時監視しており、通信エラーが発生すると当該エラーの種類を特定するとともに、スレーブ記憶部１３に格納されたエラーログ１３１の、対応するエラーカウントを１増加させる。またエラー検出部１２２は、指示実行部１２１からスタート指示を受けると、エラーログ１３１のエラーカウントを全て０に戻す（エラーカウントを初期化する）。
【００４７】
なお、エラー検出部１２２はＣＲＣエラーを検出した場合は、スレーブ通信部１１に到着したフレームに、エラー検出済であるフラグを付してもよい。そして、当該フラグが付されたフレームを読み取った場合、スレーブ装置（本実施形態の場合スレーブ装置２〜３）のエラー検出部１２２はＣＲＣエラーを検出しない（エラーカウントを増加させない）こととしてもよい。これにより、スレーブ装置１の下流のスレーブ装置２〜３において、ＣＲＣエラーが重複して検出することを防ぐことができる。
【００４８】
エラーログ送信部１２３は、指示実行部１２１の指示に応じて、スレーブ記憶部１３からエラーログ１３１を読み出し、スレーブ通信部１１を介してマスタ装置４に伝送する。
（マスタ装置４の要部構成）
マスタ装置４は、通信部４１、制御部４２、記憶部４３、およびマスタ通信部４４、ＳＤカード４５、および計時部４６を含んでいる。通信部４１は、ＰＣ５と通信するための通信ユニットである。マスタ通信部４４は、スレーブ装置１とEtherCAT通信を行うための通信ユニットである。計時部４６は、制御部４２に時刻を供給するものであり、マスタ装置４のリアルタイムクロックである。計時部４６は取得した時刻を示す情報（時刻情報）を制御部４２に送信する。
【００４９】
記憶部４３は、ＰＣ５から受信したユーザプログラム４３１を格納するものである。ここで、ユーザプログラム４３１の内容について説明する。ユーザプログラム４３１は、エラーログの収集（すなわち、エラーログ伝送指示の送信）開始のタイミングと、エラーログを収集する時間間隔と、エラーログの収集を終了するタイミングと、を少なくとも規定しているプログラムである。本実施形態では、ユーザプログラム４３１は、マスタ装置４にエラーログ収集ルーチンを開始させるとともに、マスタ装置４からスレーブ装置１〜３にエラー検出を０から開始させる（エラーカウントを初期化させる）ための初期化指示を伝送させる命令である「スタート命令」と、マスタ装置４にエラーログの収集を繰り返させる時間間隔および繰り返し回数を規定する値である「サイクル値」と、マスタ装置４にエラーログを最後に１回収集させて、スタート命令からの一連のエラーログ収集ルーチンを終了させる命令である「ストップ命令」とを含んでいる。
【００５０】
なお、エラーログの収集開始および終了のタイミング、およびエラーログを収集する時間間隔は、上述のようにユーザプログラム４３１内に命令および変数として直接記述されていてもよいし、ユーザプログラム４３１を実行することにより収集開始および終了のタイミング、および収集の時間間隔の設定を示す設定情報が生成され、記憶部４３に記憶される構成であってもよい。
【００５１】
ＳＤカード４５は、累積ログ４５１を格納する着脱可能な記憶装置である。累積ログ４５１は、エラーログが示すエラーカウントを、スレーブ装置毎に、かつエラーの種類毎に累積したログデータである。以下、図４を用いて累積ログ４５１の具体例を説明する。図４は、累積ログ４５１のデータ構造の一例を示す図である。累積ログ４５１は図示の通り、スレーブ装置毎に、エラーログを最後に収集した時刻（ログ最終取得時刻）と、各種エラーの発生回数の累積値を対応付けたログである。なお、ここで言うログ最終取得時刻は、計時部４６が計時した時刻である。また、累積ログ４５１は少なくとも、各種エラーについてスレーブ装置毎の発生回数を特定できる情報であれば、図４の形式に限定されない。例えば、累積ログ４５１にはログ最終取得時刻は含まれていなくてもよい。
【００５２】
なお、記憶部４３とＳＤカードとは１つの記憶装置であってもよい。また、ＳＤカード４５は着脱可能でなくてもよい。例えば、ＳＤカード４５はマスタ装置４の工場出荷時に、装置内部に内蔵されるものであってもよい。
【００５３】
制御部４２は、マスタ装置４を統括的に制御するものである。制御部４２は、通信部４１を介しＰＣ５からユーザプログラム４３１を受信し、当該データを記憶部４３に格納する。ユーザプログラム４３１が記憶部４３に格納された後、スレーブ装置１〜３とEtherCAT通信が可能な状態でマスタ装置４の運転が開始されると、制御部４２はユーザプログラム４３１のデータを順次読み出し、当該プログラムで規定された内容の制御命令を、当該プログラムで規定されたタイミング（および周期）でマスタ通信部４４に送信する。制御部４２はより詳しくは、指示送信部４２１、エラーログ受信部（情報受信部）４２２、および累積ログ作成部（ログ記憶部）４２３を含む。
【００５４】
指示送信部４２１は、ユーザプログラム４３１を読み出し、当該プログラムが規定する種々の制御命令を作成し、当該プログラムが規定する送信タイミングおよび周期でマスタ通信部４４を介しスレーブ装置１〜３に送信するものである。
【００５５】
より具体的には、指示送信部４２１は、ユーザプログラム４３１のスタート命令を読み出し、スレーブ装置１〜３に対し、スタート指示を伝送する。そして、スタート指示の伝送以降は、ユーザプログラム４３１のサイクル値が指定する時間間隔および繰り返し回数で、エラーログ伝送指示を伝送する。サイクル値が指定する回数分のエラーログ伝送指示を伝送した後は、指示送信部４２１はユーザプログラム４３１のストップ命令を読み出し、最後の１回エラーログ伝送指示を伝送し、一連のエラーログ収集ルーチンを終了する。
【００５６】
なお、ユーザプログラム４３１の実行により設定情報を生成する場合は、指示送信部４２１は記憶部４３に格納された設定情報を参照し、当該設定情報が示す収集開始および終了のタイミング、ならびに収集の時間間隔でエラーログ収集のルーチン処理を行えばよい。
【００５７】
エラーログ受信部４２２は、マスタ通信部４４を介し、スレーブ装置１〜３から伝送されるフレームに含まれるエラーログ１３１を受信する。エラーログ受信部４２２はエラーログ１３１を受信すると、累積ログ作成部４２３にエラーログ１３１を送る。
【００５８】
累積ログ作成部４２３は、エラーログ受信部４２２からエラーログ１３１を受けとり、当該エラーログが示す、エラーの種類毎のエラーカウントを、ＳＤカード４５に格納された累積ログ４５１の対応する値に足し合わせる。すなわち、累積ログ４５１を更新する。なお、累積ログ４５１が未作成の場合は、累積ログ作成部４２３は累積ログを生成する。
≪処理の流れ≫
最後に、エラー監視システム１００における処理の流れを説明する。図５は、マスタ装置４およびスレーブ装置１〜３によるエラーログ収集処理の流れを示すフローチャートである。なお、スレーブ装置１の下流のスレーブ装置２およびスレーブ装置３についても処理の流れは同様であるため、図５ではスレーブ装置１のみについて処理の流れを記載している。
【００５９】
マスタ装置４は、生産設備等を稼働させるための産業用ネットワークに接続した状態で電源がＯＮされると、各スレーブ装置のシーケンス制御を開始する。マスタ装置４の制御部４２は記憶部４３に格納されたユーザプログラム４３１を読み出し（Ｓ１０）、命令を実行する。指示送信部４２１はユーザプログラム４３１に規定されたタイミングが来ると、スタート指示をフレームに含んで、スレーブ装置１〜３に伝送する（Ｓ１２）。スレーブ装置１〜３のスレーブ制御部１２はスレーブ通信部１１を通過するフレームからスタート指示を読みとり（Ｓ５０）、指示実行部１２１は当該スタート指示をエラー検出部１２２に送る。エラー検出部１２２はスタート指示を受けると、スレーブ記憶部１３に記憶されたエラーログ１３１のエラーカウントを初期化する（Ｓ５２）。初期化後、エラー検出部１２２によるエラーカウントはただちに再開される（Ｓ５４）。
【００６０】
マスタ装置４の制御部４２は、ユーザプログラム４３１に規定されたサイクル値を参照することにより、サイクル値の規定する、エラーログの収集の周期（時間間隔および収集回数）を特定する。そして、指示送信部４２１は、スタート指示を送信してから最初のエラーログ収取まで、上記サイクル値が指定する期間待機する（Ｓ１４でＮＯ）。サイクル値が指定する期間が経過した場合（Ｓ１４でＹＥＳ）、指示送信部４２１はエラーログ伝送指示をフレームに含んで、スレーブ装置１〜３に伝送する（Ｓ１６、指示送信ステップ）。スレーブ装置１〜３のスレーブ制御部１２はスレーブ通信部１１を通過するフレームからエラーログ伝送指示を読みとり（Ｓ５６）、指示実行部１２１は当該エラーログ伝送指示をエラーログ送信部１２３に送る。エラーログ送信部１２３はエラーログ伝送指示を受けると、スレーブ記憶部１３に記憶されたエラーログ１３１をマスタ装置４に向けて伝送する（Ｓ５８）。
【００６１】
マスタ装置４のエラーログ受信部４２２はスレーブ装置１〜３からエラーログ１３１をそれぞれ受け取ると（Ｓ１８、情報受信ステップ）、当該エラーログ１３１を累積ログ作成部４２３へ送る。累積ログ作成部４２３は各スレーブ装置のエラーログ１３１からエラーの種類毎にエラーカウントを読み出し、当該エラーカウントを、ＳＤカード４５に格納された累積ログ４５１に追加（足し合わせ）する（Ｓ２０、ログ記憶ステップ）。
【００６２】
マスタ装置４側でのＳ１４〜Ｓ２０の処理と、スレーブ装置１〜３側でのＳ５６〜Ｓ５８の処理とは、ユーザプログラム４３１に規定されたサイクル値の指定する時間間隔で、指定する回数繰り返される（Ｓ２２でＮＯ）。サイクル値が指定する回数分のエラーログ伝送指示を伝送した後は（Ｓ２２でＹＥＳ）、指示送信部４２１はユーザプログラム４３１のストップ命令を読み出し、最後の１回エラーログ伝送指示を伝送し（Ｓ２４、指示送信ステップ）、スレーブ装置１〜３はＳ５６およびＳ５８と同様にエラーログ伝送指示を読み取り（Ｓ６０）、エラーログ１３１をマスタ装置４に伝送する（Ｓ６２）。マスタ装置４のエラーログ受信部４２２はスレーブ装置１〜３からエラーログ１３１をそれぞれ受け取り（Ｓ２６、情報受信ステップ）、累積ログ作成部４２３はエラーログ１３１の示すエラーカウントを、累積ログ４５１に追加する（Ｓ２８、ログ記憶ステップ）。指示送信部４２１は、累積ログ作成部４２３により、最後のエラーカウントの追加が終了すると、一連の処理を終了する。
【００６３】
以上の処理によると、エラー監視システム１００は、スレーブ装置１〜３にてそれぞれ記録されているエラーカウントを所定の周期で所定回数収集し、累積エラーログとして記録する。これにより、マスタ装置４は、自装置およびスレーブ装置１〜３が産業ネットワークにおいて稼働中であっても（生産ラインが稼働中であっても）、稼働を止めることなく通信エラーの発生を定性的および定量的に監視することができる。
〔変形例〕
なお、本発明に係るスレーブ装置１〜３はスレーブ計時部を備えていてもよい。この場合、スレーブ制御部１２のエラーログ送信部１２３は、エラーログ１３１をマスタ装置４に伝送する際に、スレーブ計時部から供給される時刻を「ログ送信時刻」としてエラーログ１３１に対応付けて伝送してもよい。さらに、マスタ装置４の累積ログ作成部４２３は、累積ログを作成する際に、累積ログにログ最終取得時刻の代わりに、ログ送信時刻を含んでもよい。
【００６４】
なお、エラー検出部１２２は、スレーブ通信部１１を常時監視するのではなく、指示実行部１２１からスタート指示を受けたら、エラーカウントの初期化とともにスレーブ通信部１１の監視（エラー検出）を開始してもよい。この場合、マスタ装置４はストップ命令に応じたエラーログ伝送指示を伝送する際に、エラーログの伝送が最後であることを示す終了情報を付加してスレーブ装置１〜３に伝送する。そして、スレーブ制御部１２の指示実行部１２１は当該終了情報が付されたエラーログ伝送指示を受けると、エラーログ送信部１２３にエラーログを送信させるとともに、エラー検出部に対し、エラー検出のストップを指示してもよい。そして、エラー検出部１２２はエラー検出のストップの指示を受けると、スレーブ通信部１１の通信エラーの監視を停止させてもよい。
【００６５】
さらにこの場合、エラー検出部１２２はスタート指示を受けた場合ではなく、ストップ指示を受けた場合、かつエラーログ送信部１２３の最後のエラーログ送信後に、エラーログ１３１のエラーカウントを初期化してもよい。
【００６６】
〔ソフトウェアによる実現例〕
マスタ装置４およびスレーブ装置１〜３の制御ブロック（特に制御部４２およびスレーブ制御部１２の各機能ブロック）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００６７】
後者の場合、マスタ装置４およびスレーブ装置１〜３は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００６８】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【００６９】
１、２、３  スレーブ装置
４  マスタ装置
５  ＰＣ
１１  スレーブ通信部
１２  スレーブ制御部（指示受信部）
１３  スレーブ記憶部
４１  通信部
４２  制御部
４３  記憶部
４４  マスタ通信部
４５  ＳＤカード
４６  計時部
１００  エラー監視システム
１２１  指示実行部
１２２  エラー検出部
１２３  エラーログ送信部（情報送信部）
１３１  エラーログ（エラー情報）
４２１  指示送信部
４３１  ユーザプログラム
４２２  エラーログ受信部（情報受信部）
４２３  累積ログ作成部（ログ記憶部）
４５１  累積ログ
【図１】
0006551259.tif 000002
【図２】
0006551259.tif 000003
【図３】
0006551259.tif 000004
【図４】
0006551259.tif 000005
【図５】
0006551259.tif 000006