(57)【要約】【課題】ＩＥＥＥ１３９４に接続された1台のマスタと1台以上のスレーブが、アイソクロナス転送により基底サイクルの整数倍の通信周期で定周期の同期通信を行うシステムにおいて、メッセージ通信の目的でアシンクロナス転送を行っても、通信周期が揺らがない同期通信システムを提供する。【解決手段】  マスタおよび全てのスレーブに、ＩＥＥＥ１３９４の基底サイクルで更新される基底サイクルカウンタと送信タイミング管理情報テーブルを備え、マスタおよびスレーブが、送信タイミング管理情報テーブルに基づいて通信周期内の所定の基底サイクルで、アイソクロナス転送またはアシンクロナス転送のいずれかの送信処理を実行する。【選択図】図１
2009077111.tif 000002
【特許請求の範囲】
【請求項１】
１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で定周期の通信を行うマスタ・スレーブ同期通信システムにおいて、
前記マスタは、前記ＩＥＥＥ１３９４固有周期を基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタと、アイソクロナス転送またはアシンクロナス転送を実行するタイミングを前記基底サイクル単位で規定する送信タイミング管理情報テーブルと、アイソクロナス転送の送受信タイミングおよび使用するアイソクロナス・チャネルをスレーブ毎に割り付けた情報を格納した接続スレーブ情報テーブルとを具備する送信タイミング管理部を備え、
前記スレーブは、前記ＩＥＥＥ１３９４固有周期をカウントし前記通信周期毎にリセットされる基底サイクルカウンタと、アイソクロナス転送またはアシンクロナス転送を実行するタイミングを前記基底サイクル単位で規定する送信タイミング管理情報テーブルとを具備する送信タイミング管理部を備えることを特徴としたマスタ・スレーブ同期通信システム。
【請求項２】
前記送信タイミング管理情報テーブルは、前記基底サイクルを単位として、前記基底サイクルの個数で示された前記通信周期、アイソクロナス転送に割り付けられる最後の前記基底サイクルの前記基底サイクルカウンタの値を示すアイソクロナス転送サイクル、アシンクロナス転送に割り付けられる最初の前記基底サイクルの前記基底サイクルカウンタの値を示すアシンクロナス転送開始サイクル、アシンクロナス転送に割り付けられる最後の前記基底サイクルの前記基底サイクルカウンタの値を示すアシンクロナス転送制限サイクルを有するものであることを特徴とする請求項1に記載のマスタ・スレーブ同期通信システム。
【請求項３】
前記送信タイミング管理情報テーブルは、前記基底サイクルの個数で示された前記通信周期、アイソクロナス転送に割り付けられる最後の前記基底サイクルの前記基底サイクルカウンタの値を示すアイソクロナス転送サイクル、アシンクロナス転送を開始できる時間をＩＥＥＥ１３９４のＣＹＣＬＥ＿ＴＩＭＥレジスタのフォーマットで示したアシンクロナス転送開始時間、アシンクロナス転送ができる最終時間をＩＥＥＥ１３９４のＣＹＣＬＥ＿ＴＩＭＥレジスタのフォーマットで示したアシンクロナス転送制限時間を有するものであることを特徴とする請求項1に記載のマスタ・スレーブ同期通信システム。
【請求項４】
前記送信タイミング管理情報テーブルは、稼動前に、前記マスタおよび全ての前記スレーブの不揮発性メモリに個別に設定されることを特徴とする請求項２または請求項３に記載のマスタ・スレーブ同期通信システム。
【請求項５】
前記マスタの送信タイミング管理情報テーブルは、稼動前に予め不揮発メモリに設定され、前記スレーブの送信タイミング管理情報テーブルは、前記マスタが稼動前にスレーブ毎に設定することを特徴とする請求項２または請求項３に記載のマスタ・スレーブ同期通信システム。
【請求項６】
１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で通信を行うマスタ・スレーブ同期通信方法において、
前記マスタは、前記ＩＥＥＥ１３９４固有周期を基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、接続スレーブ情報テーブルに格納されたスレーブに対してアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときは、アシンクロナス転送制限時間内であればアシンクロナス転送によるメッセージを前記スレーブへ送信し、
前記スレーブは、前記ＩＥＥＥ１３９４固有周期を前記基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、前記マスタからアイソクロナス転送による受信があったときは前記マスタへアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときは、アシンクロナス転送開始サイクルを経過しアシンクロナス転送制限サイクル内であって前期マスタから受信した前記メッセージの応答があるときに、該応答をアシンクロナス転送によるメッセージとして前記マスタへ送信することを特徴としたマスタ・スレーブ同期通信方法。
【請求項７】
１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で通信を行うマスタ・スレーブ同期通信方法において、
前記マスタは、前記ＩＥＥＥ１３９４固有周期を基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、接続スレーブ情報テーブルに格納されたスレーブに対してアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときであって、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であるときは、アシンクロナス転送によるメッセージを前記スレーブへ送信し、
前記スレーブは、前記ＩＥＥＥ１３９４固有周期を前記基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、前記マスタからアイソクロナス転送による受信があったときは前記マスタへアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときは、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であるときに、前期マスタから受信した前記メッセージの応答があるときは該応答をアシンクロナス転送によるメッセージとして前記マスタへ送信することを特徴としたマスタ・スレーブ同期通信方法。
【請求項８】
１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で通信を行うマスタ・スレーブ同期通信方法において、
前記マスタは、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であってメッセージ送信の要求があるときは、アシンクロナス転送によって前記メッセージを前記スレーブへ送信し、
前記スレーブは、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であるときに、前期マスタから受信した前記メッセージの応答があるときは該応答をアシンクロナス転送によるメッセージとして前記マスタへ送信することを特徴としたマスタ・スレーブ同期通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＥＥＥ１３９４に接続されたマスタとスレーブが、所定の周期でデータ交換する通信方式に関する。
【背景技術】
【０００２】
一般に製造装置では、ＰＬＣやパソコンなどの制御機器をマスタとして、複数台のセンサ、リレー、モータなどのスレーブ機器が周期的にマスタと制御データの交換を行う。制御データの交換は定周期で行われるため、帯域が保証された通信手段が採用される。中でも、工作機械やマウンタなどのモーション制御システムでは、マスタであるモーションコントローラが、通信を介してスレーブ機器と制御ループを組むため、揺らぎのない通信周期での制御データの交換が実現可能な同期通信手段が要求される。
【０００３】
帯域保証のある、高速な汎用ネットワークの一つに、パソコンやＡＶ機器などで一般的なＩＥＥＥ１３９４がある。ＩＥＥＥ１３９４には、アイソクロナス・リソースマネージャ(ＩＲＭ)により、帯域およびチャネル(以下、両方を合わせて、アイソクロナス・リソースと呼ぶ)が管理されるアイソクロナス転送があり、１２５μsの基底サイクル毎にアイソクロナスパケットの送信を行うことができる。
【０００４】
このＩＥＥＥ１３９４を応用した同期通信方式の例として、特開２００５−４５６７２号公報がある。特開２００５−４５６７２号公報は、ＩＥＥＥ１３９４の基底サイクルの整数倍を通信周期として、アイソクロナス転送を使用したマスタ-スレーブ間の同期通信方式を提案している。図１０は、特開２００５−４５６７２号公報に記載されている、基底サイクルの（ｍ＋１）倍を通信周期として、マスタとｎ台のスレーブが同期通信を行う実施例となる通信タイミングチャートである。特開２００５−４５６７２号公報では、各機器の送信処理が固有周期１２５μsで発信される同期信号Ｃｙｃｌｅ＿Ｓｙｎｃにより起動され、この処理の中で更新される基底サイクルカウンタの現在値が所定の値の場合にアイソクロナスパケットを送信することで、周期的な同期通信を実現している。
【０００５】
特開２００５−４５６７２号公報では定周期のデータ交換にしか触れていないが、制御機器の通信には、前述の制御データ交換以外に、エンジニアリングやモニタを目的とした、非同期で周期性も持たないメッセージ通信がある。ＩＥＥＥ１３９４でも、これに対応するものとしてアシンクロナス転送があるが、前記ＩＲＭがリソースを管理するアイソクロナス転送とは異なり、アシンクロナス転送は各機器が任意のタイミングで転送権を調停して実行するため、アシンクロナス転送のタイミングによってはサイクルタイムに揺らぎを発生させることがあった。
【０００６】
図１１は従来の通信システムの伝送タイミングを示す図であり、アイソクロナス転送による制御データの交換と、アシンクロナス転送によるメッセージの交換を行なう場合のサイクルタイムが変動する例である。図１１で、サイクルタイムは、サイクルスタートパケットから次のサイクルスタートパケットまでの時間のことである。
サイクル(k-1)に示される様に、割り当てられているアシンクロナス転送帯域に収まるサイズのメッセージlをアシンクロナス転送した場合、アシンクロナス転送を実行したサイクル(k-1)および継続するサイクルkのサイクルタイムは変動しない。
【０００７】
しかしながら、サイクル(k+1)に示される様に、前記アシンクロナス転送帯域を超過するサイズのメッセージ(l+1)をアシンクロナス転送した場合、アシンクロナス転送を実行したサイクル(k+1)の超過にともないサイクル(k+1)のサイクルタイムが長くなり、継続するサイクル(k+2)のサイクルタイムが、前記サイクル(k+1)のサイクルタイムが長くなった分だけ短くなるという現象が発生する。
【０００８】
上述の通り、アシンクロナス転送によりサイクルタイムは揺らぐのに対し、ＩＥＥＥ１３９４の同期信号Ｃｙｃｌｅ＿Ｓｙｎｃの発信周期は揺らぎがないため、各スレーブが自分自身の同期信号Ｃｙｃｌｅ＿Ｓｙｎｃにより受信処理を実行する場合、所定のタイミングで受信できない問題が発生する。一般に制御機器の通信処理は、通信周期毎に実行されるため、この揺らぎが通信周期の境界となる場合は、特定のサイクルの揺らぎとしてでなく、通信周期1周期分の揺らぎとして扱われてしまう。
【０００９】
このようなサイクルタイムの変動を回避するための技術が特開２００４−１７９９７４号公報において開示されている。特開２００４−１７９９７４号公報では、アシンクロナス転送管理部を特定の機器に持たせ(図１２)、サイクルタイムを超えない範囲にアシンクロナス転送が収まる様に帯域の計算と割り当てを行い、その他の機器は前記アシンクロナス転送管理部を持つ機器から予めアシンクロナス転送のための帯域を確保した後にアシンクロナス転送を行なうことで、サイクルタイムを変動させることなくアイソクロナス転送とアシンクロナス転送を実現している。
【特許文献１】特開２００５−４５６７２号公報（１０頁、図１）
【特許文献２】特開２００４−１７９９７４号公報（１２頁、図３）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特開２００４−１７９９７４号公報において開示されているアシンクロナス転送を管理する技術をメッセージの交換に適用した場合、アシンクロナス転送管理部を持つ機器がアシンクロナス転送のための帯域計算部、帯域割り当て部と帯域記録部を備える必要があり、かつ、アイソクロナス転送に利用可能な帯域から利用可能なアシンクロナス転送帯域を計算する必要があった。また、この利用可能なアシンクロナス転送帯域を計算するには、アシンクロナスパケットの転送以外に費やされるサブアクション・ギャップ、アックノリッジ・ギャップおよびアックノリッジ・パケットの転送も考慮した複雑な計算を行なう必要があるという問題もあった。また、複雑な計算の後確保できるアシンクロナス転送の帯域は、ＩＥＥＥ１３９４の基底サイクルである１２５μsからアイソクロナス転送に必要な帯域を除いた時間しか、連続して確保できない制限もあった。
【００１１】
本発明はこのような問題点に鑑みてなされたものであり、簡易な仕組みで、アイソクロナス転送のタイミングに影響を与えないアシンクロナス転送によるメッセージ通信が実現できる通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で定周期の通信を行うマスタ・スレーブ同期通信システムにおいて、
前記マスタは、前記ＩＥＥＥ１３９４固有周期を基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタと、アイソクロナス転送またはアシンクロナス転送を実行するタイミングを前記基底サイクル単位で規定する送信タイミング管理情報テーブルと、アイソクロナス転送の送受信タイミングおよび使用するアイソクロナス・チャネルをスレーブ毎に割り付けた情報を格納した接続スレーブ情報テーブルとを具備する送信タイミング管理部を備え、
前記スレーブは、前記ＩＥＥＥ１３９４固有周期をカウントし前記通信周期毎にリセットされる基底サイクルカウンタと、アイソクロナス転送またはアシンクロナス転送を実行するタイミングを前記基底サイクル単位で規定する送信タイミング管理情報テーブルとを具備する送信タイミング管理部を備えることを特徴としたものである。
【００１３】
請求項２に記載の発明は、請求項1に記載の発明において、前記送信タイミング管理情報テーブルは、前記基底サイクルを単位として、前記基底サイクルの個数で示された前記通信周期、アイソクロナス転送に割り付けられる最後の前記基底サイクルの前記基底サイクルカウンタの値を示すアイソクロナス転送サイクル、アシンクロナス転送に割り付けられる最初の前記基底サイクルの前記基底サイクルカウンタの値を示すアシンクロナス転送開始サイクル、アシンクロナス転送に割り付けられる最後の前記基底サイクルの前記基底サイクルカウンタの値を示すアシンクロナス転送制限サイクルを有するものであることを特徴としたものである。
【００１４】
請求項３に記載の発明は、請求項1に記載の発明において、前記送信タイミング管理情報テーブルは、前記基底サイクルの個数で示された前記通信周期、アイソクロナス転送に割り付けられる最後の前記基底サイクルの前記基底サイクルカウンタの値を示すアイソクロナス転送サイクル、アシンクロナス転送を開始できる時間をＩＥＥＥ１３９４のＣＹＣＬＥ＿ＴＩＭＥレジスタのフォーマットで示したアシンクロナス転送開始時間、アシンクロナス転送ができる最終時間をＩＥＥＥ１３９４のＣＹＣＬＥ＿ＴＩＭＥレジスタのフォーマットで示したアシンクロナス転送制限時間を有するものであることを特徴としたものである。
【００１５】
請求項４に記載の発明は、請求項２または請求項３に記載の発明において、前記送信タイミング管理情報テーブルは、稼動前に、前記マスタおよび全ての前記スレーブの不揮発性メモリに個別に設定されることを特徴としたものである。
【００１６】
請求項５に記載の発明は、請求項２または請求項３に記載の発明において、前記マスタの送信タイミング管理情報テーブルは、稼動前に予め不揮発メモリに設定され、前記スレーブの送信タイミング管理情報テーブルは、前記マスタが稼動前にスレーブ毎に設定することを特徴としたものである。
【００１７】
請求項６に記載の発明は、１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で通信を行うマスタ・スレーブ同期通信方法において、
前記マスタは、前記ＩＥＥＥ１３９４固有周期を基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、接続スレーブ情報テーブルに格納されたスレーブに対してアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときは、アシンクロナス転送制限時間内であればアシンクロナス転送によるメッセージを前記スレーブへ送信し、
前記スレーブは、前記ＩＥＥＥ１３９４固有周期を前記基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、前記マスタからアイソクロナス転送による受信があったときは前記マスタへアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときは、アシンクロナス転送開始サイクルを経過しアシンクロナス転送制限サイクル内であって前期マスタから受信した前記メッセージの応答があるときに、該応答をアシンクロナス転送によるメッセージとして前記マスタへ送信することを特徴としたものである。
【００１８】
請求項７に記載の発明は、１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で通信を行うマスタ・スレーブ同期通信方法において、
前記マスタは、前記ＩＥＥＥ１３９４固有周期を基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、接続スレーブ情報テーブルに格納されたスレーブに対してアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときであって、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であるときは、アシンクロナス転送によるメッセージを前記スレーブへ送信し、
前記スレーブは、前記ＩＥＥＥ１３９４固有周期を前記基底サイクルとしてカウントし前記通信周期毎にリセットされる基底サイクルカウンタの値と、送信タイミング管理情報テーブルのアイソクロナス転送サイクルを比較し、アイソクロナス転送送信タイミングと判断したときは、前記マスタからアイソクロナス転送による受信があったときは前記マスタへアイソクロナス転送の送信処理を実行し、アイソクロナス転送送信タイミングでないと判断したときは、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であるときに、前期マスタから受信した前記メッセージの応答があるときは該応答をアシンクロナス転送によるメッセージとして前記マスタへ送信することを特徴としたものである。
【００１９】
請求項８に記載の発明は、１つのマスタと、１つまたは複数のスレーブがＩＥＥＥ１３９４ネットワークに接続され、ＩＥＥＥ１３９４固有周期の整数倍の通信周期で通信を行うマスタ・スレーブ同期通信方法において、
前記マスタは、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であってメッセージ送信の要求があるときは、アシンクロナス転送によって前記メッセージを前記スレーブへ送信し、
前記スレーブは、アシンクロナス転送開始時間を経過しかつアシンクロナス転送制限時間内であるときに、前期マスタから受信した前記メッセージの応答があるときは該応答をアシンクロナス転送によるメッセージとして前記マスタへ送信することを特徴としたものである。
【発明の効果】
【００２０】
請求項１、請求項２、請求項４、請求項５または請求項６に記載の発明によると、基底サイクルの整数倍の通信周期内にアイソクロナス転送のみに使う基底サイクルとアシンクロナス転送にのみ使う基底サイクルを分離して設け、最後にアイソクロナス転送もにアシンクロナス転送にも使わない基底サイクルを１個設ける。従って、あらかじめ決められた通信周期を揺るがすことなく、アイソクロナス転送およびアシンクロナス転送を実行することができる。
【００２１】
請求項３、請求項７または請求項８に記載の発明によると、基底サイクルの整数倍の通信周期内にアイソクロナス転送のみに使う基底サイクルを設け、該通信周期内の残りの基底サイクルにおいてアシンクロナス転送に使用する時間をＩＥＥＥ１３９４に規程されたＣＹＣＬＥ＿ＴＩＭＥレジスタのフォーマットで規定する。従って、基底サイクル２個からなる通信周期のシステムにおいても、該通信周期を揺るがすことなく、アイソクロナス転送とアシンクロナス転送を実行することができある。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図を参照して説明する。以下、異なる図においても同一の構成要素を示す場合、同じ番号を割り当てている。
【実施例１】
【００２３】
図９は、本発明を適用する通信システムの例である。図９に示す通り、1台のマスタと、1台以上のスレーブが、ＩＥＥＥ１３９４ネットワークを介して接続されている。
図１は、本発明を適用したマスタ１０の構成を示すブロック図である。図１において、ＩＥＥＥ１３９４ネットワークに近いレベルから順にＩＥＥＥ１３９４ＰＨＹ１４０、ＩＥＥＥ１３９４ＬＩＮＫ１３０、通信制御部１２０があり、その上位に機器固有制御部１１０が存在する。
【００２４】
通信制御部は、アイソクロナス転送を使用して制御データの交換を行う制御データ送受信処理部１２１、アシンクロナス転送を使用してメッセージの交換を行うメッセージ送受信処理部１２２、および、アイソクロナス転送およびアシンクロナス転送のパケット送信タイミングを制御する、送信タイミング管理部１２３から構成される。
送信タイミング管理部１２３は、ＩＥＥＥ１３９４ＬＩＮＫ１３０からＩＥＥＥ１３９４の固有周期１２５μsで発信される同期信号Ｃｙｃｌｅ＿Ｓｙｎｃ（不図示）により起動される処理の中で更新される基底サイクルカウンタ１２３１、アイソクロナス転送およびアシンクロナス転送の送信処理の基底サイクルカウンタ１２３１の値を格納した送信タイミング管理情報テーブル１２３２、および、制御対象となるスレーブの情報を格納した接続スレーブ情報テーブル１２３３を具備する。
【００２５】
なお、基底サイクルカウンタ１２３１は、初期に０にリセットされ、以降、通信周期毎にリセットされるものとする。
また、接続スレーブ情報テーブル１２３３は、アイソクロナス転送の送受信を実行する各基底サイクル毎に、アイソクロナス転送の対象となるスレーブおよびアイソクロナス転送のために使用するアイソクロナス・チャネルを格納したものである。この接続スレーブ情報テーブルは、あらかじめエンジニアリングツール（不図示）によって設定されるか、マスタによって生成されるものであるが、その詳細については省略する。
【００２６】
マスタ１０が制御データをスレーブ２１〜２ｎに送信する場合、機器固有制御部１１０で作成したデータは通信制御部１２０に渡され、通信制御部の制御データ送受信処理部１２１によりアイソクロナス・パケットが作成される。作成されたアイソクロナス・パケットは、送信タイミング管理部１２３により、所定のタイミングでＩＥＥＥ１３９４ＬＩＮＫ１３０、および、ＩＥＥＥ１３９４ＰＨＹ１４０を経由して、ＩＥＥＥ１３９４ネットワーク３０へ送出される。
マスタ１０がメッセージをスレーブ２１〜２ｎに送信する場合、前記制御データと同様に処理される。ただし、メッセージの場合、機器固有制御部で作成されたメッセージは、通信制御部１２０のメッセージ送受信処理部１２２によりアシンクロナス・パケットとして作成される。また、ＩＥＥＥ１３９４ネットワークからアイソクロナス・パケットおよびアシンクロナス・パケットを受信する場合は、それぞれ、上記制御データおよびメッセージと逆の流れを介して機器固有制御部１１０で処理される。
【００２７】
図３は、前記送信タイミング管理情報テーブル１２３２の第１の実施例である。本例では、従来例の通信タイミングの図１０に合わせて、(ｍ＋１)の基底サイクルで通信周期を構成している。図３の単位は、いずれも基底サイクルで、通信周期先頭の基底サイクルを０としている。アイソクロナス転送サイクル１２３２２は、通信周期先頭から基底サイクルiまでを、アイソクロナス転送専用に割り付けることを意味する。
また、アシンクロナス転送開始時間１２３２３およびアシンクロナス転送制限時間１２３２４により、基底サイクルが(i＋１)から (ｍ−１)までをアシンクロナス転送専用に割り付けることを意味する。ここで、通信周期最後の基底サイクルｍを、いずれの転送にも割付ていないのは、アシンクロナス転送の揺らぎにより、次の通信周期開始が揺らぐことを防ぐためである。
【００２８】
前記送信タイミング管理情報テーブル１２３２は、通信システムの構成決定時にエンジニアリングツール（不図示）を使って予め作成し、マスタ１０の不揮発メモリ(不図示)に格納しておいても良いし、マスタの通信制御部１２０が接続されたスレーブを検出後、スレーブから収集した情報を元に稼動前に作成し、マスタ１０の不揮発メモリ(不図示)に格納しても良い。
【００２９】
図２は、本発明のスレーブのブロック図である。図２ではスレーブ２１と表記しているが、図９の他のスレーブも同様の構造をもつ。図２において、マスタ１０の図１と名称が同じものは、マスタ１０と同等に機能するものなので、ここでの説明は省略する。
マスタ１０と異なるのは、スレーブ２１の送信タイミング管理部２２３は接続スレーブ情報テーブル１２３３を具備していない点である。
制御機器で一般に使用されているマスタ・スレーブ通信方式の場合、スレーブはマスタとのみ通信するため、他スレーブの情報は必要ない。このため、スレーブ２１は接続スレーブ情報テーブル１２３３を具備しない。
また、基底サイクルカウンタ２２３１は、初期にマスタ１０からの指令によって０にリセットされ、以降、通信周期毎にリセットされるものとする。
【００３０】
スレーブ２１の送信タイミング管理情報テーブル２２３２は、マスタ１０と同様に通信システムの構成決定時にエンジニアリングツール（不図示）を使って予め作成し、スレーブ２１の不揮発メモリ(不図示)に格納しておいても良いし、マスタ１０が稼動前にスレーブに通知しても良い。スレーブ２１に通知する手段としては、前記送信タイミング管理情報テーブル２２３２をスレーブ２１がＩＥＥＥ１３９４規格に従いＣＳＲ(Ｃｏｎｔｒｏｌ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ)として実装し、マスタ１０が稼動前に、自身の送信タイミング管理情報テーブル１２３２の内容をアシンクロナス転送にて書き込むことがあげられる。
【００３１】
図６は、本発明を適用した通信システムにおける通信タイミングを示す図である。図６の通信タイミング図は、図３の送信タイミング管理情報テーブル１２３２に基づいて、基底サイクルカウンタが０からiでアイソクロナス転送のみを実行し、基底サイクル(i＋１)から(ｍ−１)でアシンクロナス転送のみを実行していることを示している。
【００３２】
図７は、マスタ１０の送信タイミング管理部１２３の動作を示すフローチャートである。図７の処理は、ＩＥＥＥ１３９４ＬＩＮＫ１３０からＩＥＥＥ１３９４の固有周期１２５μsで発信される同期信号Ｃｙｃｌｅ＿Ｓｙｎｃにより起動される。処理が起動されると、基底サイクルカウンタ１２３１の現在値と前記送信タイミング管理情報テーブル１２３２とからアイソクロナス転送送信タイミングかを判断する(Ｓ１０１)。
アイソクロナス転送送信タイミングの場合、制御データ送受信処理部１２１が接続スレーブ情報テーブル１２３３に格納されているスレーブに対し順にアイソクロナス・パケットを送信する(Ｓ１０２)。
Ｓ１０１で、アイソクロナス転送送信タイミングでなかった場合、メッセージ送受信処理部１２２からアシンクロナス転送の送信要求があるか確認し(Ｓ１０３)、要求があれば、前記送信タイミング管理情報テーブル１２３２に格納されているアシンクロナス転送開始サイクル１２３２３およびアシンクロナス転送制限サイクル１２３２４からアシンクロナス転送サイクル内であるかを判断し(Ｓ１０４およびＳ１０５)、アシンクロナス転送サイクル内であればアシンクロナス転送の送信処理を実行する(Ｓ１０６)。
【００３３】
図８は、スレーブ２１の送信タイミング管理部２２３の動作を示すフローチャートである。スレーブ２１の動作は、基本的にはマスタ１０と同じである。ただし、前述の通りスレーブ２１は、マスタ１０からアイソクロナス転送による受信があった基底サイクルで、マスタ１０とのみの通信を行うため、アイソクロナス転送の送信処理の繰り返しはない。
また、アシンクロナス転送は、マスタ１０からのアシンクロナス転送によって受信したメッセージへの応答という形態をとるものとする。つまり、アシンクロナス転送が可能な時間において、マスタ１０は、各スレーブ２１〜２ｎとの間でメッセージを送信し、その応答を受信するという動作を実行する。
【００３４】
第１の実施例では、通信周期１２３１が基底サイクル２個からなる場合、最初の基底サイクルでアイソクロナス転送を行い、次の基底サイクルは揺らぎ防止のためにアイソクロナス転送もアシンクロナス転送も割り付けない。つまり、第１の実施例では、アイソクロナス転送のみが実行され、アシンクロナス転送によるメッセージ通信を行うことができない。
第２の実施例は、このような場合でも、アシンクロナス転送によるメッセージ通信を可能にするものである。この場合、送信タイミング管理情報テーブル１２３２の要素は図４に示すようになる。
通信周期１２３２１は、第１の実施例と同様に、基底サイクルｍ＋１個で通信周期が構成されることを示す。アイソクロナス転送サイクル１２３２２も、第１の実施例と同様に、通信周期先頭から基底サイクルiまでをアイソクロナス転送専用に割り付けることを意味する。
【００３５】
第１の実施例と異なるのは、第１の実施例のアシンクロナス転送開始サイクル１２３２３の代わりにアシンクロナス転送開始時間１２３２５を、アシンクロナス転送制限サイクル１２３２４の代わりにアシンクロナス転送制限時間１２３２６を設けたことである。
アシンクロナス転送開始時間１２３２５には、アシンクロナス転送を開始できる時間、すなわち、アイソクロナス転送サイクル１２３２２の次の基底サイクルの開始時間を、図５に示すＣＹＣＬＥ＿ＴＩＭＥレジスタと同じフォーマットで格納する。
アシンクロナス転送制限時間１２３２６には、アシンクロナス転送を終了する時間を、図５に示すＣＹＣＬＥ＿ＴＩＭＥレジスタと同じフォーマットで格納する。
【００３６】
ここで、ＩＥＥＥ１３９４ＬＩＮＫ １３０または２３０に具備するＣＹＣＬＥ＿ＴＩＭＥレジスタについて説明する。
ＣＹＣＬＥ＿ＴＩＭＥレジスタは、ＩＥＥＥ１３９４スタンダードにて規定されていて、ＩＥＥＥ１３９４機器は実装必須のレジスタである。ＣＹＣＬＥ＿ＴＩＭＥレジスタは、図５に示すように、１２ｂｉｔのｃｙｃｌｅ＿ｏｆｆｓｅｔ部、１３ｂｉｔのｃｙ c l e _ c o u n t 部、および７ｂｉｔのｓ e c o n d _ c o u n t部から構成される。ｃ y c l e _ o f f s e t部は、２４．５７６ＭＨｚのクロックをカウントし、値が３０７２になると、つまり固有周期の１２５μs毎にキャリーを出す。c y c l e _ c o u n t はc y c l e _ o f f s e tからのキャリーをカウントし、８０００ になると、つまり１ｓ 毎にキャリーを出す。
【００３７】
従って、アシンクロナス転送制限時間１２３２６の下位の１２ｂｉｔには、ＣＹＣＬＥ＿ＴＩＭＥレジスタのｃｌｃｌｅ＿ｏｆｆｓｅｔ部に対応して約４０．６ｎｓの分解能でアシンクロナス転送を終了する時間を設定することができる。
図４の場合のように、アシンクロナス転送制限時間１２３２６の下位の１２ｂｉｔに１５３６（約６２μｓ）を格納しておくと、アシンクロナス転送に起因する揺らぎが次の基底サイクルまで及ぶことはない。ＩＥＥＥ１３９４スタンダード(ＩＥＥＥ  Ｓｔｄ １３９４−１９９５)により、アシンクロナス転送の１パケットで転送できるデータ長は、伝送速度に別に規定されているが、上限値の根拠はデータの最大バイト数が２のべき乗、かつ、パケットの送信全体が６２μs未満で済む範囲であるので、揺らぎは最大で固有周期１２５μｓの半分程度に押さえられているからである。
つまり、図４において、ｍ＝１、ｉ＝０に設定すれば、通信周期１２３１が基底サイクル２個の場合でも、アイソクロナス転送とアシンクロナス転送を実行することが可能である。
【００３８】
なお、アシンクロナス転送開始時間１２３２５またはアシンクロナス転送制限時間１２３２６に設定された値とＣＹＣＬＥ＿ＴＩＭＥレジスタ１３０１の現在値とを比較する際は、ＣＹＣＬＥ＿ＴＩＭＥレジスタ１３０１のs e c o n d _ c o u n t部をマスクして０にし、c y c l e _ c o u n t 部を通信周期１２３２１の基底サイクル数で除した剰余にし、c y c l e _ o f f s e t部はそのままにした値を使用する。
【００３９】
第２の実施例のフローチャートについて説明する。図１３（ａ）はマスタ１０のアイソクロナス転送処理であるが、第１の実施例と同様に、Ｃｙｃｌｅ＿Ｓｙｎｃで起動される。まず、c y c l e _ c o u n t 部を通信周期を構成する基底サイクル数で除した剰余とアイソクロナス転送サイクル１２３２２に格納されたｉを比較し、アイソクロナス転送送信タイミングであるか否かを判断する。
アイソクロナス転送送信タイミングの場合、第１の実施例と同様に、制御スレーブ情報テーブル１２３３に格納されているスレーブに対してアイソクロナス転送を実行する。
アイソクロナス転送送信タイミングでない場合、アイソクロナス転送処理を実行しない。
【００４０】
図１３（ｂ）はマスタ１０のアシンクロナス転送処理である。第１の実施例とは、優先度の低いバックグラウンド処理の１つとして実行されることが異なる。
たとえば、優先度の高いアイソクロナス転送が終了した時や、他のバックグラウンド処理が終了した時に起動される。
起動されると、アシンクロナス転送開始時間１２３２５、アシンクロナス転送制限時間１２３２６に格納された値とＣＹＣＬＥ＿ＴＩＭＥレジスタの現在値を比較して、アシンクロナス転送送信処理を実行するか否かを判断する。
そして、アシンクロナス転送送信が可能な時間であって、アシンクロナス転送の要求がある場合、メッセージとして送信する。
【００４１】
図１４（ａ）はスレーブ２１〜２ｎのアイソクロナス転送処理である。第１の実施例と同様に、Ｃｙｃｌｅ＿Ｓｙｎｃで起動される。まず、c y c l e _ c o u n t 部を通信周期を構成する基底サイクル数で除した剰余とアイソクロナス転送サイクル１２３２２に格納されたｉを比較し、アイソクロナス転送送信タイミングであるか否かを判断する。
アイソクロナス転送送信タイミングの場合、第１の実施例と同様にアイソクロナス転送を実行する。
アイソクロナス転送送信タイミングでない場合、アイソクロナス転送処理を実行しない。
【００４２】
図１４（ｂ）はスレーブ２１〜２ｎのアシンクロナス転送処理である。第１の実施例とは、優先度の低いバックグラウンド処理の１つとして実行されることが異なる。
たとえば、優先度の高いアイソクロナス転送が終了した時や、他のバックグラウンド処理が終了した時に実行される。そして、アシンクロナス転送が可能な時間であるか否かを判断し、アシンクロナス転送が可能な時間であって、マスタ１０から受信したメッセージの応答がある場合、その応答をマスタ１０へメッセージとして送信する。
【００４３】
このように、ＩＥＥＥ１３９４に接続されたマスタとスレーブが定周期で制御データを交換する通信システムにおいて、通信周期内の各サイクルで、アイソクロナス転送またはアシンクロナス転送のいずれかしか実行しないため、サイクルタイムおよび通信周期を揺らがせることがない。
【産業上の利用可能性】
【００４４】
1台のコントローラと複数のサーボアンプを備えた多軸の同期制御システム、たとえば、双腕マニピュレータや多指ハンド等を同期制御するようなシステムを構築するのに利用可能である。
【図面の簡単な説明】
【００４５】
【図１】本発明のマスタのブロック図
【図２】本発明のスレーブのブロック図
【図３】本発明の送信タイミング管理情報テーブルの第１の例
【図４】本発明の送信タイミング管理情報テーブルの第２の例
【図５】ＩＥＥＥ１３９４で規定されたＣＹＣＬＥ_ＴＩＭＥレジスタ
【図６】本発明を適用した通信システムにおける通信タイミングを示す図
【図７】本発明のマスタの送信タイミング管理部の送信処理を示すフローチャートの第１の例
【図８】本発明のスレーブの通信制御部の送信処理を示すフローチャートの第１の例
【図９】本発明を適用する通信システムを示す図
【図１０】従来の通信システムにおける通信タイミングの例１
【図１１】従来の通信システムにおける通信タイミングの例２
【図１２】従来の機器のブロック図
【図１３】本発明のマスタの送信タイミング管理部の送信処理を示すフローチャートの第２の例
【図１４】本発明のスレーブの通信制御部の送信処理を示すフローチャートの第２の例
【符号の説明】
【００４６】
１０ マスタ
２１, ２２, ２３ スレーブ
３０ ＩＥＥＥ１３９４ネットワーク
１２０、２２０ 通信制御部
１２１、２２１ 制御データ送受信処理部
１２２、２２２ 制御データ送受信処理部
１２３、２２３ 送信タイミング管理部
１３０、２３０ ＩＥＥＥ１３９４ＬＩＮＫ
１４０、２４０ ＩＥＥＥ１３９４ＰＨＹ
１２３１、２２３１ 基底サイクルカウンタ
１２３２、２２３２ 送信タイミング管理情報テーブル
１２３３ 接続スレーブ情報テーブル
１３０１、２３０１ ＣＹＣＬＥ＿ＴＩＭＥレジスタ
９２２１ アシンクロナス転送管理機能部
９２２２ 帯域計算部
９２２３ 帯域割り当て部
９２２４ 帯域割り当て記憶部
１２３２１ 送信タイミング管理部の通信周期
１２３２２ 送信タイミング管理部のアイソクロナス転送サイクル
１２３２３ 送信タイミング管理部のアシンクロナス転送開始時間
１２３２４ 送信タイミング管理部のアシンクロナス転送制限時間
【図１】
2009077111.tif 000003
【図２】
2009077111.tif 000004
【図３】
2009077111.tif 000005
【図４】
2009077111.tif 000006
【図５】
2009077111.tif 000007
【図６】
2009077111.tif 000008
【図７】
2009077111.tif 000009
【図８】
2009077111.tif 000010
【図９】
2009077111.tif 000011
【図１０】
2009077111.tif 000012
【図１１】
2009077111.tif 000013
【図１２】
2009077111.tif 000014
【図１３】
2009077111.tif 000015
【図１４】
2009077111.tif 000016