(57)【要約】【課題】  １回のタイムスロットに収まらないような大きなデータを効率的に送信する通信方法を提供する。【解決手段】  １つのマスタノード１０と複数のスレーブノード２０がネットワーク３０で接続されたネットワークシステムにおいて、スレーブノード２０の数と通信周期から空き帯域を算出し、マスタノード１０と特定のスレーブノード２０との間の通信がタイムスロットに収まるかどうかを判断し、収まらなければ空き帯域を使ってタイムスロットに収まらなかったデータを送信する。【選択図】図１
2006005646.tif 000002
【特許請求の範囲】
【請求項１】
１つのマスタノードと１つ以上のスレーブノードがネットワークで接続され、１通信周期内で前記マスタノードが１つ以上の前記スレーブノードに指令を送信すると１つ以上の前記スレーブノードが前記マスタノードに応答を送信して前記マスタノードと１つ以上の前記スレーブノードとの間でデータの送受信をするネットワークシステムにおいて、
接続された１つ以上の前記スレーブノードの数と通信周期から前記マスタノードが空き帯域を算出し、
前記マスタノードと特定の前記スレーブノードとの間の通信が前記通信周期内に設定されたタイムスロット内に収まるかどうかを前記マスタノードが判断し、
収まらないと判断されれば空き帯域を使って前記タイムスロットに収まらなかった前記データを送信する、
という通信をすることを特徴とするネットワーク通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタノードと複数のスレーブノードが接続されたネットワークシステムの通信方法に関するものである。
【背景技術】
【０００２】
１つのマスタノードと複数のスレーブノードがネットワークを介して接続されて相互に通信するネットワークシステムの従来の通信方法は、概ね、１通信周期の中でマスタノードと各スレーブノードとの間で１度だけデータを送受信する、という方法がとられている（たとえば特許文献１）。
その状況について図３を用いて説明する。図３は、１つのマスタノードとｎ個のスレーブノードがネットワークを介して接続されたマスタ−スレーブ方式ネットワークシステムにおけるマスタノードとスレーブノード間の通信のタイムチャートである。
図に示されているように、通信周期内は複数のタイムスロットに分割されており、各通信周期の最初のタイムスロットでマスタノードが全スレーブノードに同期開始パケットを送信して通信周期が開始されたことを知らせる。マスタノードは、その次のタイムスロットで１つ目のスレーブノードに指令パケットを送信し、次のタイムスロットで２番目のスレーブノードに指令パケットを送信し、ｎ＋１番目のタイムスロットでｎ番目のスレーブノードに指令パケットを送信する。
スレーブノードがマスタノードから指令パケットを受信すると、それぞれ自ノード宛の指令パケットを受信したときにのみ、その指令パケットを受信したタイムスロット内でマスタノードに応答パケットを送信する。マスタノードがスレーブノードに指令パケットを送信するときは、１通信周期の間に各スレーブノードに１度だけ送信し、スレーブノードから送られてくる応答パケットを受信する。
ここで、マスタノードとスレーブノードの間で送受信されるパケットのサイズを予め決めておけば、マスタノードと１つのスレーブノードとの間でデータを送受信するに必要な時間が決まる。この時間と接続されたスレーブノードの数から１回の通信に要する時間が求まり、この時間より通信周期が長ければ、通信周期内に空き帯域が発生する。図３はこの状況を示しており、３スレーブノード分の空き帯域があるという例である。
【特許文献１】特開２００２−１４０１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記のような従来の通信方法では、あるスレーブノードとマスタノードとの間で送受信されるデータが大きくてタイムスロット内に収まらないときは、そのデータを分割して複数の通信周期に亘って送信しなければならない。そのような状況にあるときに、接続されたスレーブノードの数よりも通信周期内にあるタイムスロットの数が大きいような場合は通信帯域が空くことになり、すなわち、通信に使われないタイムスロットが生じることになり、通信効率が低下してしまうことになる。
また、あるスレーブノードとマスタノードの間で正常なデータ通信が成立しなかった場合に限り、リトライのために空き帯域を使うようなネットワークシステムも存在しているが、１つのスレーブノードとマスタノードとの間は、基本的に１通信周期内に１度だけ通信するということに変わりは無く、非効率的であるという課題は残ったままである。
本発明はこのような問題点に鑑みてなされたものであり、１回のタイムスロットに収まらないような大きなデータを効率的に通信することができる手段を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、１つのマスタノードと１つ以上のスレーブノードがネットワークで接続され、１通信周期内で前記マスタノードが１つ以上の前記スレーブノードに指令を送信すると１つ以上の前記スレーブノードが前記マスタノードに応答を送信して前記マスタノードと１つ以上の前記スレーブノードとの間でデータの送受信をするネットワークシステムにおいて、接続された１つ以上の前記スレーブノードの数と通信周期から前記マスタノードが空き帯域を算出し、前記マスタノードと特定の前記スレーブノードとの間の通信が前記通信周期内に設定されたタイムスロット内に収まるかどうかを前記マスタノードが判断し、収まらないと判断されれば空き帯域を使って前記タイムスロットに収まらなかった前記データを送信する、という通信をすることを特徴とするものである。
【発明の効果】
【０００５】
請求項１に記載の本発明によれば、通信周期内に生じる空き帯域を有効に活用することができるので、特に、制御指令などの周期的に必要なデータではなく、例えばサーボパラメータの書き込みなどの通信周期に依存しないデータを大量に転送する際には、効率よく通信することができるという効果がある。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００７】
図１は、本発明の方法を実施するためのネットワークシステムの構成を示すブロック図である。この図を用いて本発明の方法について説明する。
マスタノード１０とｎ個のスレーブノード２０がネットワーク３０で相互に接続され、ネットワークシステムをなしている。マスタノード１０は、指令データを生成して出力する指令データ生成部１１と、応答データを入力して解析する応答データ解析部１２、ネットワーク３０を介してスレーブノード２０と通信する通信データ送受信部１３、非同期通信管理部１４、通信設定部１５から構成されている。
通信設定部１５は、電源投入やリセットなどの通信確立時に初期化処理を実行する。初期化処理とは、通信周期の設定や、通信データの最大サイズの設定、１つのスレーブノードと送受信するときに必要な時間（タイムスロット）、ネットワーク３０に接続されたスレーブノードの数の確認、通信周期や接続スレーブ数に伴う空き帯域の把握などである。通信周期は、図示しない入力手段を使って外部から設定してもよい。接続されたスレーブノードの数は、割り当てられているノードＩＤの全てについて順にコマンドを送信したときに、返ってきた応答の数によって確認することができる。設定された通信周期内で、全スレーブノードとマスタノードとの間の送受信ができない場合は、エラーとなって通信は確立されない。
通信設定部１５によって通信が確立されると、設定された通信周期毎にデータの送受信が行われる。
【０００８】
つぎに、指令データ生成部１１が設定された通信周期毎に送信用の指令データを生成すると、その指令データは通信データ送受信部１３に渡される。
通信データ送受信部１３は、その指令データをネットワーク３０を介してスレーブノード２０に送信し、その後スレーブノード２０から送られてきた応答データを受信する。その応答データは応答データ解析部１２に渡され、応答データ解析部１２がその応答データを解析する。応答データは、次の指令データ生成に使用されることもある。
指令データを送信するときは、通信データ送受信部１３がタイムスロット毎に各スレーブノードに対応して順に送信し、送信先のスレーブノードの応答データを受信する。以上は、指令データが制御指令などのような周期的な通信をするときの処理である。
【０００９】
これに対して通信周期に依存しないデータを送受信するときは、指令データを送信したタイムスロット以降の空き帯域が使用される。その場合、タイムスロットを使って複数回にわけて送受することもできるが、送受信するデータの量が大きい場合は、転送効率を考えると、タイムスロットで分割せずに次の通信周期開始までの帯域を一まとめにして利用するほうが良い。
図２はそのような事例のタイムチャートであり、マスタノードがスレーブノードｋへ大きなデータ送信をするときのものである。この図では通信周期の後部にある空き帯域が使われており、空き領域でマスタノードからスレーブノードｋへ大きなデータが送信されるとその後の通信周期の最後のところでスレーブノードkからマスタノードへ応答データが送信されている。
【００１０】
空き帯域を利用した非周期のデータ通信は、非周期通信管理部１４が管理する。マスタノードからスレーブノードに非周期なデータの送信をするときは、送信コマンドとスレーブノード番号、データが非周期通信管理部１４に登録される。非周期通信管理部１４は、登録された順番に、指定されたスレーブノードにデータを送信するよう通信データ送受信部１３に指示する。このとき、空き帯域よりも送信データの量が大きいければ、送信データを送信できる大きさに分割し、未完了フラグを付けて送信する。そして次の通信周期の空き帯域では、未完了データが優先して送信される。
マスタノードがスレーブノードから非周期のデータを受信するときは、受信コマンドとスレーブノード番号、受信データサイズが非周期通信管理部１４に登録される。空き帯域に比べて受信するデータのサイズが大きいときは、データサイズが調整され、コマンドが発行される。全データが受信されていなければ、未完了フラグが付けられて次の通信周期の空き帯域で、その続きから受信するようにコマンドが発行される。
なお、非周期データが送信される順番は、登録された順番になるのではなく、データに優先度がつけられて、優先度の高い順に送信するという方法もある。
【図面の簡単な説明】
【００１１】
【図１】本発明の方法を実施するためのネットワークシステムのブロック図
【図２】本発明の方法によるマスタ-スレーブ間の通信タイムチャート
【図３】従来方法のマスタ-スレーブ間の通信タイムチャート
【符号の説明】
【００１２】
１０  マスタノード、             １１  指令データ生成部、
１２  応答データ解析部、  １３  通信データ送受信部、
１４  非同期通信管理部、  １５  通信設定部、
２０  スレーブノード、    ３０  ネットワーク
【図１】
2006005646.tif 000003
【図２】
2006005646.tif 000004
【図３】
2006005646.tif 000005