(57)【要約】【課題】  簡単なシステム構成で、任意のタイミングでスレーブの同期実行を開始できるようにすると共に、異なる種類のスレーブが接続されていても、精度よくこれらの複数のスレーブを同期実行させることができ、さらに非同期通信で送受信を行うネットワークにおいても、同期実行を行うことが可能なネットワークシステムを提供する。【解決手段】  マスタ１に、スレーブ１１への出力を行うごとに、同期開始時間からタイムスロットの時間だけ減算し、その値を新たな実行開始時間とするグループ実行開始時間管理部３と、指令データに実行開始時間を設定する開始時間設定部４を備え、スレーブ１１の実行開始時間監視部１２は、設定時間になった時点でスレーブ１１内の対象機器の動作実行を開始させる。【選択図】  図１
2008187235.tif 000002
【特許請求の範囲】
【請求項１】
マスタと複数のスレーブが、通信周期内の規定のタイムスロットでそれぞれ通信を行うネットワークシステムにおいて、
前記マスタに、同期実行を行う1つ以上の前記スレーブをそれぞれグループとし、これらのグループについての同期開始時間を設定し、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算し、その値を新たな実行開始時間とするグループ実行開始時間管理部と、
前記スレーブに出力する指令データ内に前記実行開始時間を設定する開始時間設定部を備え、
前記スレーブに、通信時に受信する前記タイムスロット数を計測する受信タイムスロット数計測部と、
時間を監視し、前記スレーブ内の対象機器の動作実行を開始させる実行開始時間監視部とを備え、
該実行開始時間監視部は、前記受信タイムスロット数計測部が計測したタイムスロット数にタイムスロット間隔を掛けた時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするネットワークシステム。
【請求項２】
前記マスタに、前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間を格納したスレーブ機器制御遅れ情報データベースをさらに備え、
前記グループ実行開始時間管理部で、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、前記スレーブ機器制御遅れ情報データベースから抽出した該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とする請求項１記載のネットワークシステム。
【請求項３】
前記スレーブに前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間をあらかじめ記憶しておき、
前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして該制御遅れ時間を取得し、
前記グループ実行開始時間管理部で、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とする請求項１記載のネットワークシステム。
【請求項４】
前記スレーブに該スレーブで使用するＩＯ点数やモジュールの設定状況を基に、自分の制御遅れ時間を算出する遅れ時間算出部をさらに備え、
前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして前記遅れ時間算出部が算出した制御遅れ時間を取得し、
前記グループ実行開始時間管理部で、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とする請求項１記載のネットワークシステム。
【請求項５】
前記スレーブに、前記受信タイムスロット数計測部に代えて、タイマにより時間を計測するタイマ計測部を備え、
前記実行開始時間監視部は、前記タイマ計測部が計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間を演算することを特徴とする請求項１記載のネットワークシステム。
【請求項６】
マスタと複数のスレーブが、非同期で通信を行うネットワークシステムにおいて、
前記マスタに、タイマにより時間を計測するマスタタイマ計測部と、
前記マスタと前記スレーブ間の伝送時間を測定する伝送時間測定部と、
同期実行を行う1つ以上の前記スレーブをそれぞれグループとし、これらのグループについての同期開始時間を設定し、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間から前記伝送時間と、前記マスタタイマ計測部で測定した経過時間を減算し、その値を新たな実行開始時間とするグループ実行開始時間管理部と、
前記スレーブに伝送する指令データ内に前記実行開始時間を設定する開始時間設定部を備え、
前記スレーブに、タイマにより時間を計測するタイマ計測部と、
時間を監視し、前記スレーブ内の対象機器の動作実行を制御する実行開始時間監視部とを備え、
該実行開始時間監視部は、前記タイマ計測部が計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするネットワークシステム。
【請求項７】
マスタと複数のスレーブが、通信周期内の規定のタイムスロットでそれぞれ通信を行うネットワークシステムのスレーブ同期方法において、
前記マスタは、同期実行を行う1つ以上の前記スレーブをそれぞれグループとし、
各グループの同期開始時間を設定し、
前記スレーブへの指令データ出力を行うたびに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算し、その値を新たな実行開始時間として前記スレーブに出力し、
前記スレーブは、前記タイムスロット数にタイムスロット間隔を掛けた時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、
設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするネットワークシステムのスレーブ同期方法。
【請求項８】
前記マスタに、前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間を格納し、
前記スレーブへの指令データ出力を行うたびに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とする請求項７記載のネットワークシステムのスレーブ同期方法。
【請求項９】
前記スレーブに前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間をあらかじめ記憶しておき、
前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして該制御遅れ時間を取得し、
前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とする請求項７記載のネットワークシステムのスレーブ同期方法。
【請求項１０】
前記スレーブは、該スレーブで使用するＩＯ点数やモジュールの設定状況を基に、自分の制御遅れ時間を算出し、
前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして前記スレーブが算出した前記制御遅れ時間を取得し、
前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とする請求項７記載のネットワークシステムのスレーブ同期方法。
【請求項１１】
前記スレーブは、自分で計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間を演算することを特徴とする請求項７記載のネットワークシステムのスレーブ同期方法。
【請求項１２】
マスタと複数のスレーブが、非同期で通信を行うネットワークシステムのスレーブ同期方法において、
前記マスタは、同期実行を行う１つ以上の前記スレーブをそれぞれグループとし、
各グループの同期開始時間を設定し、
前記マスタと前記スレーブ間で通信を行うのにかかる伝送時間を測定し、
マスタの経過時間を測定し、
前記スレーブへの指令データ出力を行うたびに、グループごとの前記同期開始時間から前記伝送時間と前記経過時間を減算し、その値を新たな実行開始時間として前記スレーブに出力し、
前記スレーブは、自分で計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、
設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするネットワークシステムのスレーブ同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタと複数のスレーブが通信回線で接続されたネットワークシステムに関し、特に任意のタイミングで複数スレーブの同期運転を実行するネットワークシステムおよびスレーブ同期方法に関する。
【背景技術】
【０００２】
従来のネットワークシステムでは、コントローラなどのマスタと、複数のスレーブがネットワークに接続され、特定の通信周期でデータのやり取りを行っている。
図９は従来のネットワークシステムの通信データのやり取りを示す図である。
図９において、マスタとスレーブ間の通信データのやり取りは特定の通信周期（Ｓ）で行っている。また、通信にリアルタイム性を持たせるため、ネットワーク上の通信周期（Ｓ）をさらに所定のタイムスロット（ＴＳ）に区切って、これらのタイムスロット単位で接続されたスレーブ局とそれぞれ通信を行っている。
さらに各スレーブ間の同期を図るために、マスタから通信周期ごとに同期フレーム（ＳＹＮＣ）が発行され、同期フレームを受信した時点でそれぞれのスレーブの内部クロックが同期するように構成されている。
各スレーブはある通信周期で自局宛のデータを受信した場合、次の同期フレームを受信したタイミングで実際にサーボドライブやＩ／Ｏ等のスレーブ対象機器に受信データを渡して、スレーブの制御が開始される構成となっているのが一般的である。
また、一般にマスタとなる上位コントローラの制御周期（Ｔ）とネットワーク通信周期は図９に示すように非同期で動作していることが多いため、マスタが指令データを出力してから、実際にスレーブ動作が開始されるまで、（通信同期待ちα）＋（通信周期Ｓ）の遅れが発生する。
【０００３】
一方、ネットワークに接続されたコントローラ及び、1つ以上のデバイスにおいて、ネットワークを介して制御されるグローバルタイマを設け、このグローバルタイマが示すグローバル時間を用いてコントローラに接続されたデバイス側の周期制御を同期させるように構成しているものがある（例えば特許文献１参照）。
また、無線により配信される時刻情報を利用して複数の数値制御装置を同期運転するものであり、マスタ・スレーブ局にかかわらずに共通に配信される時刻情報を用いて同期を取るように構成しているものもある（例えば特許文献２参照）。
【特許文献１】特開２００２−１６４８７２号公報
【特許文献２】特開２００５−１８６０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のネットワークシステムでは、複数のスレーブを同期して動作させるため、各スレーブは実際にマスタから指令データを受け取ってから、次の通信周期開始時の同期フレームを受信した際にスレーブ制御を開始する構成となるが、マスタとなる上位コントローラの制御周期とネットワーク通信周期は図９に示すように非同期で動作していることが多いため、マスタが指令データを出力してから、実際にスレーブ動作が開始されるまで、すべてのスレーブで等しく（通信同期待ちα）＋（通信周期Ｓ）の遅れが発生するという問題がある。
また、複数のスレーブを同期実行させるタイミングは、常に同期フレームの発行タイミングである通信周期に依存し、それ以外のタイミングではスレーブを同期実行させることができず、通信周期以下の短い時間での同期実行ができないという問題がある。
【０００５】
また、例えばスレーブの対象機器としてサーボドライブを例として考えた場合、異なる種類のサーボドライブが混在してネットワークに接続されているようなシステムの場合では、開始指令が入力されてから実際に軸動作が開始されるまでの時間がサーボドライブごとにそれぞれ異なる。
このため、このような異なる種類のサーボドライブが混在しているシステムの場合、ネットワークに接続された各サーボドライブが同期フレームを受信したタイミングでそれぞれ同期実行を開始しても、実際の動作開始にバラつきが生じてしまうという問題がある。
また、イーサネット（登録商標）の様な汎用ネットワークを用いてスレーブと非同期で通信を行う必要のある場合には、基準となる同期フレームが存在しないため、リアルタイム処理や接続されたスレーブの同期実行を行うことが非常に困難であるという問題もある。
また、特許文献1に記載の発明では、コントローラ、および各スレーブ局ごとに実際の制御周期を生成する動作周期タイマ以外にもグローバル時間を管理するグローバルタイマが必要であり、システム構成が複雑になるという問題があった。
また、特許文献２に記載の発明では、マスタ・スレーブ局共に配信される時刻情報を外部から記要求する必要があり、やはりシステム構成が複雑になるという問題があった。
【０００６】
本発明はこのような問題を鑑みてなされたものであり、マスタと複数のスレーブが通信回線で接続されたネットワークシステムにおいて、簡単なシステム構成で、任意のタイミングでスレーブの同期実行を開始できるようにすると共に、異なる種類のスレーブが接続されていても、精度よくこれらの複数のスレーブを同期実行させることができ、さらに非同期通信で送受信を行うネットワークにおいても、同期実行を行うことが可能なネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するため、本発明は次のように構成したのである。
請求項１に記載の発明は、マスタと複数のスレーブが、通信周期内の規定のタイムスロットでそれぞれ通信を行うネットワークシステムにおいて、前記マスタに、同期実行を行う1つ以上の前記スレーブをそれぞれグループとし、これらのグループについての同期開始時間を設定し、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算し、その値を新たな実行開始時間とするグループ実行開始時間管理部と、前記スレーブに出力する指令データ内に前記実行開始時間を設定する開始時間設定部を備え、前記スレーブに、通信時に受信する前記タイムスロット数を計測する受信タイムスロット数計測部と、時間を監視し、前記スレーブ内の対象機器の動作実行を開始させる実行開始時間監視部とを備え、該実行開始時間監視部は、前記受信タイムスロット数計測部が計測したタイムスロット数にタイムスロット間隔を掛けた時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするものである。
また、請求項２に記載の発明は、請求項１に記載のネットワークシステムにおいて、前記マスタに、前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間を格納したスレーブ機器制御遅れ情報データベースをさらに備え、前記グループ実行開始時間管理部で、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、前記スレーブ機器制御遅れ情報データベースから抽出した該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とするものである。
また、請求項３に記載の発明は、請求項１に記載のネットワークシステムにおいて、前記スレーブに前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間をあらかじめ記憶しておき、前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして該制御遅れ時間を取得し、前記グループ実行開始時間管理部で、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とするものである。
【０００８】
また、請求項４に記載の発明は、請求項１に記載のネットワークシステムにおいて、前記スレーブに該スレーブで使用するＩＯ点数やモジュールの設定状況を基に、自分の制御遅れ時間を算出する遅れ時間算出部をさらに備え、前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして前記遅れ時間算出部が算出した制御遅れ時間を取得し、前記グループ実行開始時間管理部で、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とするものである。
また、請求項５に記載の発明は、請求項１に記載のネットワークシステムにおいて、前記スレーブに、前記受信タイムスロット数計測部に代えて、タイマにより時間を計測するタイマ計測部を備え、前記実行開始時間監視部は、前記タイマ計測部が計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間を演算することを特徴とするものである。
また、請求項６に記載の発明は、マスタと複数のスレーブが、非同期で通信を行うネットワークシステムにおいて、前記マスタに、タイマにより時間を計測するマスタタイマ計測部と、前記マスタと前記スレーブ間の伝送時間を測定する伝送時間測定部と、同期実行を行う1つ以上の前記スレーブをそれぞれグループとし、これらのグループについての同期開始時間を設定し、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間から前記伝送時間と、前記マスタタイマ計測部で測定した経過時間を減算し、その値を新たな実行開始時間とするグループ実行開始時間管理部と、前記スレーブに伝送する指令データ内に前記実行開始時間を設定する開始時間設定部を備え、前記スレーブに、タイマにより時間を計測するタイマ計測部と、時間を監視し、前記スレーブ内の対象機器の動作実行を制御する実行開始時間監視部とを備え、該実行開始時間監視部は、前記タイマ計測部が計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするものである。
【０００９】
また、請求項７に記載の発明は、マスタと複数のスレーブが、通信周期内の規定のタイムスロットでそれぞれ通信を行うネットワークシステムのスレーブ同期方法において、前記マスタは、同期実行を行う1つ以上の前記スレーブをそれぞれグループとし、各グループの同期開始時間を設定し、前記スレーブへの指令データ出力を行うたびに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算し、その値を新たな実行開始時間として前記スレーブに出力し、前記スレーブは、前記タイムスロット数にタイムスロット間隔を掛けた時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするものである。
また、請求項８に記載の発明は、請求項７に記載のネットワークシステムのスレーブ同期方法において、前記マスタに、前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間を格納し、前記スレーブへの指令データ出力を行うたびに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とするものである。
また、請求項９に記載の発明は、請求項７に記載のネットワークシステムのスレーブ同期方法において、前記スレーブに前記スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間をあらかじめ記憶しておき、前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして該制御遅れ時間を取得し、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とするものである。
【００１０】
また、請求項１０に記載の発明は、請求項７に記載のネットワークシステムのスレーブ同期方法において、前記スレーブは、該スレーブで使用するＩＯ点数やモジュールの設定状況を基に、自分の制御遅れ時間を算出し、前記マスタは、前記スレーブに前記制御遅れ時間を要求し、前記スレーブからのレスポンスとして前記スレーブが算出した前記制御遅れ時間を取得し、前記スレーブへの指令データ出力を行うごとに、グループごとの前記同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの前記制御遅れ時間をさらに減算し、その値を新たな実行開始時間とすることを特徴とするものである。
また、請求項１１に記載の発明は、請求項７に記載のネットワークシステムのスレーブ同期方法において、前記スレーブは、自分で計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間を演算することを特徴とするものである。
また、請求項１２に記載の発明は、マスタと複数のスレーブが、非同期で通信を行うネットワークシステムのスレーブ同期方法において、前記マスタは、同期実行を行う１つ以上の前記スレーブをそれぞれグループとし、各グループの同期開始時間を設定し、前記マスタと前記スレーブ間で通信を行うのにかかる伝送時間を測定し、マスタの経過時間を測定し、前記スレーブへの指令データ出力を行うたびに、グループごとの前記同期開始時間から前記伝送時間と前記経過時間を減算し、その値を新たな実行開始時間として前記スレーブに出力し、前記スレーブは、自分で計測した時間を、前記スレーブが受信したデータ内の前記実行開始時間から減算し、設定時間になった時点で前記スレーブ内の対象機器の動作実行を開始させることを特徴とするものである。
【発明の効果】
【００１１】
請求項１、５、７、１１の発明によれば、マスタに、同期実行を行う1つ以上のスレーブをそれぞれグループとし、これらのグループについての同期開始時間を設定し、スレーブへの指令データ出力を行うごとに、グループごとの同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算し、その値を新たな実行開始時間とするグループ実行開始時間管理部と、スレーブに出力する指令データ内に実行開始時間を設定する開始時間設定部を備え、スレーブに、通信時に受信する前記タイムスロット数を計測する受信タイムスロット数計測部または時間を計測するタイマ計測部と、時間を監視し、スレーブ内の対象機器の動作実行を開始させる実行開始時間監視部とを備え、実行開始時間監視部は、タイムスロット数にタイムスロット間隔を掛けた時間、またはタイマ計測部が計測した時間を、スレーブが受信したデータ内の実行開始時間から減算し、設定時間になった時点でスレーブ内の対象機器の動作実行を開始させるので、簡単なシステム構成で、スレーブがデータを受信してから実際に動作するまでの時間を指定でき、これまで各スレーブ間の同期を取るために、次のネットワーク周期で発行される同期フレームを受信していたタイミングで払い出し動作を行っていたスレーブ動作を任意のタイミングでスレーブの同期実行を開始できる。
【００１２】
請求項２〜４、８〜１０の発明によれば、スレーブが指令データを受信してから動作するまでにかかる制御遅れ時間を考慮し、グループ実行開始時間管理部で、スレーブへの指令データ出力を行うごとに、グループごとの同期開始時間からタイムスロット数にタイムスロット間隔を掛けた時間だけ減算するとともに、該当するスレーブの制御遅れ時間をさらに減算し、その値を新たな実行開始時間とするので、接続されているスレーブが同一の種類でなくともスレーブの実行開始時間を一致させることが可能となる。
これにより、対象スレーブ機器がサーボドライブであれば実際の軸動作が、Ｉ／Ｏ関係であれば実際の出力時のタイミングを非常に精度良く同期させて動作させることが可能となる。
【００１３】
請求項６、１２の発明によれば、マスタと複数のスレーブが、非同期で通信を行うネットワークシステムにおいて、マスタに、タイマにより時間を計測するマスタタイマ計測部と、マスタとスレーブ間の伝送時間を測定する伝送時間測定部と、同期実行を行う1つ以上のスレーブをそれぞれグループとし、これらのグループについての同期開始時間を設定し、スレーブへの指令データ出力を行うごとに、グループごとの同期開始時間から伝送時間と、マスタタイマ計測部で測定した経過時間を減算し、その値を新たな実行開始時間とするグループ実行開始時間管理部と、スレーブに伝送する指令データ内に前記実行開始時間を設定する開始時間設定部を備え、スレーブに、タイマにより時間を計測するタイマ計測部と、時間を監視し、スレーブ内の対象機器の動作実行を制御する実行開始時間監視部とを備え、実行開始時間監視部は、タイマ計測部が計測した時間を、スレーブが受信したデータ内の実行開始時間から減算し、設定時間になった時点でスレーブ内の対象機器の動作実行を開始させるので、非同期通信で送受信を行うネットワークにおいても、同期実行を行うことが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態について、図を参照して説明する。
【実施例１】
【００１５】
図１は本発明のネットワークシステムを示すブロック図である。
図１において、１はマスタ、１１ａ〜１１ｅはスレーブであり、その中に実行時間を監視する実行開始時間監視部１２と、受信するタイムスロットを計測する受信タイムスロット数計測部１６を持つ（なお、スレーブを単に１１と記載することもある）。
マスタ１の中には、ネットワークへのデータの出力を行うネットワーク出力部２と、データの演算を行う演算部６がある。
ネットワーク出力部２の中には、スレーブ１１の実行開始時間を管理する実行開始時間管理部３ａ、３ｂがある。
スレーブ１１は同期を取る複数のスレーブ１１ごとにグループ化して管理する。２グループに分類した例を示しているので、実行開始時間管理部も第１、第２グループ用の２個ある。
また、４は通信ＩＦメモリにデータを出力するごとにスレーブ１１の実行開始時間を設定する開始時間設定部、５は通信のための通信ＩＦメモリである。
演算部６の中には、ＣＰＵ７とアプリケーション８がある。また、各スレーブ機器の種類が異なる場合のために、各スレーブ機器の制御遅れ時間が記憶されたデータベースとして、スレーブ機器制御遅れ情報データベース９がある。なお、スレーブ機器の種類が同一機種である場合はスレーブ機器制御遅れ情報データベース９は使用しない。
スレーブ１１は同期を取る複数がグループ化される。図１の例の場合、１１ａ〜１１ｃで第１グループ、１１ｄ〜１１ｅで第２グループを形成する。なお、図１ではグループが２つの場合を例示しているが、２つに限定されるものではない。
【００１６】
次に、本発明での同期方法についての詳細を説明する。
図２は本発明のスレーブ同期方法のマスタの処理手順を示すフローチャートである。
まず、ステップＳ１で、マスタ１の図示しないキーボード等により、同期実行を行うスレーブ１１をそれぞれまとめてグループ化し、それぞれをグループとして設定する。
次に、ステップＳ２で、各グループの同期開始時間ＴＧｎｏ（ｎｏ:グループ数）を設定する。この同期開始時間はマスタがグループの最初のスレーブの指令値を出力する時点を０とした値である。なお、この開始時間ＴＧｎｏについては、スレーブ１１の出力の優先度に従って決定するものとする。
つまり、指令データを出力してから、できるだけ早くスレーブ１１の同期を開始させたい場合は、同期開始時間ＴＧｎｏを通信周期よりも小さな値に設定する。
【００１７】
図３は本発明のネットワークシステムの通信データのやり取りを示す図である。
この例では第１スレーブ１１ａ〜第３スレーブ１１ｃの第１グループはできるだけ早く同期実行をさせたいため、ＴＧ１として通信周期Ｓより短い値を設定している。また、第４スレーブ１１ｄと第５スレーブ１１ｅで構成される第２グループの同期開始時間ＴＧ２は通信周期Ｓより長い時間が設定されている。
なお、図３では、通信周期Ｓを５タイムスロットに分割し、タイムスロットごとに、マスタ１からの指令を第１スレーブ１１ａから順に送信し、スレーブ１１が応答を返している。
【００１８】
図２の説明に戻ると、ステップＳ３で、同期開始時間ＴＧｎｏ順に出力を行うスレーブ１１の演算順を決定し、ステップＳ４で、マスタ１は各スレーブ１１への指令データを演算する。
次に、ステップＳ５で、第１、第２グループ実行開始時間管理部３ａ、３ｂでは、この同期開始時間ＴＧｎｏをグループごとに保持すると共に、通信ＩＦメモリ５にデータの出力を行うごとに、以下の実行開始時間ＲＴを各グループごとに算出する。
ＲＴ＝同期開始時間ＴＧｎｏ−タイムスロット間隔ＴＳ・ｎ
（ｎ：通信周期内におけるタイムスロット回数。通信周期到達でクリア）
この実行開始時間は同期開始時間で設定された時間までの残り時間を意味し、後述するようにスレーブ１１で実行開始時間を演算し、その値が０になったときに実行を開始する。
例えば、タイムスロット間隔が２ｍｓで、通信周期が１０ｍｓのとき、第１グループのＴＧ１が６ｍｓだったとする。１回目のタイムスロットではＲＴ＝６−２・１＝４、２回目のタイムスロットでは、ＲＴ＝６−２・２＝２となる。
次に、ステップＳ６で、開始時間設定部４で実行開始時間ＲＴをスレーブ１１への指令データに設定した後、通信ＩＦメモリ５に書き込んでスレーブ１１へ出力を行う。
次にステップＳ７で全スレーブ１１の指令データを出力したかチェックし、出力が終了していれば、ステップＳ４に戻り次の指令データの演算を行う。また、出力が終了していなければ、ステップＳ８に進みタイムスロット時間の経過待ちをする。そして時間経過後ステップＳ９に進みタイムスロット番号を１加算し、ステップＳ５に進む。
【００１９】
次に、スレーブ１１が同期を取って実行を開始する手順を説明する。
図４は本発明のネットワークシステムのスレーブ１１の構成を示すブロック図である。１２は実行開始時間監視部、１３はＣＰＵ、１４はデータ受信部、１５は受信バッファ、１７はデータ送信部、１８は送信バッファ、１９はサーボドライブなどの対象スレーブ機器である。
１６は受信タイムスロット数計測部で、受信した同期フレームを基準として、通信時に受信するタイムスロット数を計測する。
スレーブ１１では、マスタ１からの指令データをデータ受信部１４で受信し、受信バッファ１５に格納する。
実行開始時間監視部１２では、受信タイムスロット数計測部１６で取得したタイムスロット数にタイムスロット間隔を掛けた時間を指令データに設定された実行開始時間ＲＴから減算し、設定時間に到達した時点でスレーブ１１のＣＰＵ１３へデータを受け渡し、対象スレーブ機器１９の実行を開始する。
例えば、図３で説明すると、タイムスロットが２ｍｓで、通信周期が１０ｍｓのとき、第１グループのＴＧ１が６ｍｓだったとする。
第１スレーブ１１ａは１回目のタイムスロットでＲＴ＝４を指令として受け取る。２回目のタイムスロットで第１スレーブ１１ａ内の実行開始時間監視部１２でＲＴの減算を行い、ＲＴ＝２となり、３回目で０となり、設定時間に到達したと判断できる。
第２スレーブ１１ｂは、２回目のタイムスロットでＲＴ=２を指令として受け取る。３回目のタイムスロットで第２スレーブ１１ｂ内の実行開始時間監視部１２でＲＴの減算を行いＲＴ＝０となり、設定時間に到達する。
第３スレーブ１１ｃは、３回目のタイムスロットでＲＴ＝０を指令として受け取る。
このように第１スレーブ１１ａから第３スレーブ１１ｃの第１グループのスレーブ１１はすべて３回目のタイムスロットでＲＴ＝０となり、設定時間に到達し、同期フレームから６ｍｓで同期して実行を開始する。
【実施例２】
【００２０】
次に、第２の実施例として、対象スレーブ機器が異なる種類の場合を説明する。
以下に、第１の実施例と異なる部分を中心に動作を説明する。
まず、図１のマスタ１の図示しないキーボード等により、スレーブ機器制御遅れ情報データベース９を使用するように設定する。
図５はスレーブ機器制御遅れ情報データベース９に設定されるデータ例である。ここでは、標準機種に比べＮｏ１の機種は１．５ｍｓ、Ｎｏ２の機種は２．４ｍｓ、Ｎｏ３の機種は３．０ｍｓの制御遅れ時間（ＳＬｎｓ、ｎｓは機種番号）が有ることを示している。
マスタ１が各スレーブ１１に出力を行う際には、それぞれのスレーブ機器における制御遅れ時間ＳＬｎｓを考慮した形で値を設定するように構成する。
すなわち、図２のステップＳ５において、第１、第２グループ実行開始時間管理部３ａ、３ｂでは、同期開始時間ＴＧｎｏをグループごとに管理すると共に、そのグループ内のスレーブ１１の制御遅れ時間ＳＬｎｓをスレーブ機器制御遅れ情報データベース９から取得し、通信ＩＦメモリ５に出力を行う度に、実行開始時間ＲＴを以下の手順で算出するようにしたものである。
ＲＴ＝同期開始時間ＴＧｎｏ−制御遅れ時間ＳＬｎｓ−タイムスロット間隔ＴＳ・ｎ
（ｎ：通信周期内におけるタイムスロット回数。通信周期到達でクリア）
なお、マスタ１にスレーブ機器制御遅れ情報データベース９を持たずに、各スレーブ１１に、制御遅れ時間を記憶し、マスタ１からの要求に対し制御遅れ時間のレスポンスを返す構成をとっても良い。
また、スレーブ１１に、遅れ時間を算出する遅れ時間算出部（図示せず）を備え、スレーブ１１で使用するＩＯ点数の数や、モジュールの設定状況により遅れ時間を自分で算出する構成としても良い。この場合、マスタ１が制御遅れ時間の要求をスレーブ１１に出力すると、スレーブ１１の遅れ時間算出部で自分の制御遅れ時間を算出し、レスポンスを返す。
このように、各スレーブ１１の制御遅れ時間を考慮した上で指令データを出力することにより、異なる種類のスレーブ１１が同期実行を行う場合であっても、実際の動作を精度良く一致させることが可能となる。
【実施例３】
【００２１】
次に第３の実施例として、スレーブ１１の時間の計測をタイマを使用して行う例を説明する。以下に、第１の実施例と異なる部分を中心に動作を説明する。
図６は本発明のネットワークシステムの第３の実施例のスレーブ１１の構成を示すブロック図である。図４の受信タイムスロット数計測部１６に代えてタイマ計測部２０を備える。
実行開始時間監視部１２は自局宛のデータを受信した時点を基準として、タイマ計測部２０で経過時間を計測し、指令データに設定されている実行開始時間ＲＴに到達したらスレーブのＣＰＵ１３に受信データを渡して実行を開始する。
上記の構成とすることで、スレーブ１１は指令データを受信してからの相対時間の測定を行えば良いことになるので、タイマの計測時間は短く、特許文献1に記載されているようなグローバルタイマを持つ場合に比べ、自身のタイマ精度で十分な精度を確保できる。
【実施例４】
【００２２】
次に、第４の実施例として、通信を行うネットワーク環境として、一般的なイーサネット（登録商標）等の非同期通信を使用した場合を説明する。
以下に、第１の実施例と異なる部分を中心に動作を説明する。
図７は本発明のネットワークシステムの第４の実施例を示すブロック図である。
まず、スイッチングハブ２１を用いて、マスタ１−スレーブ１１間の通信以外の不要なトラフィックが発生しないようにネットワークを構成しておく。また、非同期なのでタイムスロットはないので、マスタ１に経過時間Ｔ（ｉ）測定用のマスタタイマ計測部２３を備え、各スレーブ１１にデータを出力する時間を算出する。また、伝送にかかる時間を測定する伝送時間測定部２２を持つ。
【００２３】
図８は本発明のスレーブ同期方法の第４の実施例のマスタの処理手順を示すフローチャートである。
ステップＳ１１で、マスタ１の図示しないキーボード等により、同期実行を行うスレーブ１１をそれぞれまとめてグループ化し、それぞれをグループとして設定する。
次に、ステップＳ１２で、各グループの同期開始時間ＴＧｎｏ（ｎｏ:グループ数）を設定する。
次に、ステップＳ１３で、同期開始時間ＴＧｎｏ順に出力を行うスレーブ１１の演算順を決定する。ステップＳ１４で、伝送時間測定部２２によりマスタ１―スレーブ１１間で通信を行うのにかかる時間Ｌｔ（ｎ）を測定する。たとえばＰＩＮＧ（Ｐａｃｋｅｔ  ＩＮｔｅｒｎｅｔ  Ｇｒｏｐｅｒ）コマンド等がこの伝送時間測定に使用できる。
ステップＳ１５で、経過時間Ｔ(ｉ)計測用のマスタタイマ計測部２３の動作を開始する。ステップＳ１６で、マスタ１は各スレーブ１１への指令データを演算する。
次に、ステップＳ１７で、第１、第２グループ実行開始時間管理部３ａ、３ｂでは、同期開始時間ＴＧｎｏをグループごとに管理すると共に、通信ＩＦメモリ５にデータの出力を行うごとに、以下の実行開始時間ＲＴを各グループごとに算出する。
ＲＴ＝開始時間ＴＧｎｏ−伝送時間Ｌｔ（ｎ）−経過時間Ｔ（ｉ）
次に、ステップＳ１８で、開始時間設定部４で実行開始時間ＲＴをスレーブ１１への指令データに設定した後、通信ＩＦメモリ５に書き込んでスレーブ１１へ出力を行う。
次にステップＳ１９で全スレーブ１１の指令データを出力したかチェックし、出力が終了していなければステップＳ１７に進む。出力が終了していれば、ステップＳ２０で経過時間Ｔ（ｉ）をリセットし、ステップＳ１６に戻る。
スレーブ１１の実行開始時間監視部１２は自局宛のデータを受信した時点を基準として、タイマ計測部２０で経過時間を計測し、指令データに設定されている実行開始時間ＲＴに到達したらスレーブのＣＰＵ１３に受信データを渡して実行を開始する。
このように、指令データの出力時間とスレーブの実行開始時間をマスタのネットワーク出力部において管理することで、汎用的なネットワークを使用しながらリアルタイム性を保ちながら複数のスレーブと同期実行を行うことが可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明のネットワークシステムを示すブロック図
【図２】本発明のスレーブ同期方法のマスタの処理手順を示すフローチャート
【図３】本発明のネットワークシステムの通信データのやり取りを示す図
【図４】本発明のネットワークシステムのスレーブの構成を示すブロック図
【図５】スレーブ機器制御遅れ情報データベースに設定されるデータ例
【図６】本発明のネットワークシステムの第３の実施例のスレーブの構成を示すブロック図
【図７】本発明のネットワークシステムの第４の実施例を示すブロック図
【図８】本発明のスレーブ同期方法の第４の実施例のマスタの処理手順を示すフローチャート
【図９】従来のネットワークシステムの通信データのやり取りを示す図
【符号の説明】
【００２５】
１  マスタ
２  ネットワーク出力部
３ａ、３ｂ  第１、第２グループ実行開始時間管理部
４  開始時間設定部
５  通信ＩＦメモリ
６  演算部
７、１３  ＣＰＵ
８  アプリケーション
９  スレーブ機器制御遅れ情報データベース
１０  ネットワーク
１１ａ〜１１ｅ  第１〜第５スレーブ
１２  実行開始時間監視部
１４  データ受信部
１５  受信バッファ
１６  受信タイムスロット数計測部
１７  データ送信部
１８  送信バッファ
１９  対象スレーブ機器
２０  タイマ計測部
２１  スイッチングハブ
２２  伝送時間測定部
２３  マスタタイマ計測部
３０  イーサネット（登録商標）
【図１】
2008187235.tif 000003
【図２】
2008187235.tif 000004
【図３】
2008187235.tif 000005
【図４】
2008187235.tif 000006
【図５】
2008187235.tif 000007
【図６】
2008187235.tif 000008
【図７】
2008187235.tif 000009
【図８】
2008187235.tif 000010
【図９】
2008187235.tif 000011