(57)【要約】【課題】サイクリックマップが重複せず、サイクリック通信のシステムに柔軟性を持たせることができるサイクリック通信のノード装置を得ることを目的とする。【解決手段】参入するノード２のサイクリックマップ制御部４は、ホスト１から送信サイズ値の指定のみを受けた際に、他ノード２のシステムサイクリックメモリ７に書き込まれたサイクリックマップ情報を受信し、これを参照してユーザーサイクリックメモリ５の空き領域を検索し、指定された送信サイズ値のエリアをユーザーサイクリックメモリ５の空き領域の先頭から割り付けるとともに、システムサイクリックメモリ７に自ノードのサイクリックマップ情報を書き込み、他ノード２に通信し、他ノード２のサイクリックマップ制御部４は、通信されたサイクリックマップ情報を参照して自ノード２のユーザーサイクリックメモリのサイクリックマップの設定変更をするようにした。【選択図】図２
2010016581.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されてサイクリック通信を行うノード装置であって、
サイクリック通信に使用されるユーザーサイクリックメモリと、
上記ネットワークに接続する各ノード装置で使用する上記ユーザーサイクリックメモリの領域を特定する情報を記録するために上記ネットワークに接続する各ノード装置に割り付けられるものであり、ネットワークに接続するノード装置の想定する最大数の固定サイズの領域を有するノード装置状態管理メモリと、
上記ノード装置状態管理メモリに記録されたデータをネットワークに接続する各ノード装置で同じにするノード装置状態管理メモリ等化部と、
上記ノード装置状態管理メモリを参照して上記ユーザーサイクリックメモリの空き領域を認識し、各ノード装置で使用するサイズ値の領域を上記ユーザーサイクリックメモリの空き領域に割り付け、割り付けた上記ユーザーサイクリックメモリの領域を特定する情報を上記ノード装置状態管理メモリの自ノード装置の領域に記録するサイクリックマップ制御部と、
上記ノード装置状態管理メモリに記録された各ノード装置で使用する上記ユーザーサイクリックメモリの領域に関する情報を用いて上記ユーザーサイクリックメモリによるサイクリック通信を行うサイクリック送受信部とを備えたノード装置。
【請求項２】
上記サイクリックマップ制御部は、ノード装置の上記ユーザーサイクリックメモリに割付をする際に、そのノード装置が使用するサイズ値の連続領域が確保できない場合に、分割した領域を割り付けることを特徴とする請求項１に記載のノード装置。
【請求項３】
ノード装置が使用することを想定する最大サイズ値以上の領域を、ネットワークに接続するノード装置の想定する最大数有するユーザーサイクリック一次メモリと、
上記ノード装置状態管理メモリを参照して、上記ユーザーサイクリック一次メモリの自ノード装置の領域にデータを書き込み、上記ユーザーサイクリック一次メモリの自ノード装置の領域のデータを上記ユーザーサイクリックメモリの自ノード装置の領域にコピーし、上記ユーザーサイクリックメモリの他ノード装置の領域のデータを上記ユーザーサイクリック一次メモリの他ノード装置の領域にコピーするサイクリックデータ制御部とを備えたことを特徴とする請求項２に記載のノード装置。
【請求項４】
上記ユーザサイクリックメモリにおいて分割されたノード装置の領域を連続領域として確保するためのユーザーサイクリック一次メモリと、
上記ノード装置状態管理メモリを参照して、上記ユーザーサイクリックメモリの自ノード装置の領域が分割されている場合に、上記ユーザーサイクリック一次メモリの自ノード装置の領域にデータを書き込み、上記ユーザーサイクリック一次メモリの自ノード装置の領域のデータを上記ユーザサイクリックメモリの自ノード装置の領域にコピーし、自ノード装置の領域が分割されていない場合に、上記ユーザーサイクリックメモリの自ノード装置の領域にデータを書き込み、上記ユーザーサイクリックメモリの他ノード装置の領域が分割されている場合に、上記ユーザーサイクリックメモリの他ノード装置の領域のデータを上記ユーザーサイクリック一次メモリの他ノード装置の領域にコピーするサイクリックデータ制御部とを備えたことを特徴とする請求項２に記載のノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して接続される複数のノード間で、仮想的に共有メモリ空間を設け、それぞれのノードがサイクリックマップに従って定周期で他ノードに送信することによって、ネットワーク全体で共有メモリを実現するサイクリック通信を採用するシステムにおいて、サイクリック通信の各ノードのアドレス及び送信サイズ値を設定するためのサイクリックマップの自動割り付けができるようにしたノード装置に関するものである。
【背景技術】
【０００２】
サイクリック通信システムは、ネットワークに接続されるノード、各ノードそれぞれを制御するホストにより構成される。各ノードは、ホストからネットワーク共有空間を各ノードに割り付けてサイクリック通信を行うために必要な情報（ユーザサイクリックメモリのアドレスと送信サイズ）を管理するテーブルであるサイクリックマップの設定を行うためのサイクリックマップ制御部、ネットワーク共有メモリ空間であるユーザーサイクリックメモリ、ユーザーサイクリックメモリからデータを送受信するためのサイクリック送受信部を備える。
【０００３】
各ノードでは、それぞれユーザーサイクリックメモリにおける特定のアドレス及び送信サイズ値の領域を自己の送信領域に割付るようにサイクリックマップの設定が行われている。各ノードのサイクリック送受信部では、送信データの通信の際に、ユーザーサイクリックメモリの自ノードに割り付けられた領域に書き込まれた送信データがネットワークを介して通信される。通信された送信データは、全てのノードにおいてユーザーサイクリックメモリの同じエリアに反映されるようになっている。
【０００４】
システム設計時には、各ノードのサイクリックマップ設定のためのサイクリックマップ情報（ユーザーサイクリックメモリのアドレス、送信サイズ値）が予め決定されている。ホストから予め決定されているサイクリックマップ情報をもとに自ノードに対してサイクリックマップの設定要求を行うと、各ノードのサイクリックマップ制御部では、自ノードのユーザーサイクリックメモリにおけるアドレス及び送信サイズ値の割り付け（サイクリックマップの設定）が行われ、サイクリック通信が開始される。ホストでは、サイクリックマップに従い、ユーザーサイクリックメモリに直接アクセスすることで送信データの書き込み／読み込みを行うことができる。（例えば、特許文献１参照）
【０００５】
【特許文献１】特開平５−１５３１１４号公報（第２頁、図７−図９）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のように、従来、サイクリック通信のサイクリックマップ情報は、サイクリック通信システムの設計時に固定的に割り付け、ノード毎にサイクリックマップを個別に設定するようになっている。そのため、誤って他ノードと重なったサイクリックマップを設定する可能性があり、送信データが上書きされてしまうなど、正しく送信データを通信することができなくなるという問題があった。
【０００７】
また、サイクリックマップは固定的に割付られているため、一旦サイクリック通信システムの設計をした後に、ノードの追加あるいは削除をするといったシステム設計の変更をするような場合に、再度各ノードのホストからサイクリックマップを個別に設定することが必要になり、サイクリック通信のシステムが柔軟性に欠けるという問題があった。
【０００８】
本発明は、上記のような問題を解決するためになされたものであり、サイクリックマップが重複しないようにするとともに、ノードの追加あるいは削除があった場合に自動的にサイクリックマップの設定変更が行われるようにして、柔軟性を持たせることができるサイクリック通信のノード装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るノード装置は、ネットワークに接続されてサイクリック通信を行うノード装置であって、
サイクリック通信に使用されるユーザーサイクリックメモリと、
上記ネットワークに接続する各ノード装置で使用する上記ユーザーサイクリックメモリの領域を特定する情報を記録するために上記ネットワークに接続する各ノード装置に割り付けられるものであり、ネットワークに接続するノード装置の想定する最大数の固定サイズの領域を有するノード装置状態管理メモリと、
上記ノード装置状態管理メモリに記録されたデータをネットワークに接続する各ノード装置で同じにするノード装置状態管理メモリ等化部と、
上記ノード装置状態管理メモリを参照して上記ユーザーサイクリックメモリの空き領域を認識し、各ノード装置で使用するサイズ値の領域を上記ユーザーサイクリックメモリの空き領域に割り付け、割り付けた上記ユーザーサイクリックメモリの領域を特定する情報を上記ノード装置状態管理メモリの自ノード装置の領域に記録するサイクリックマップ制御部と、
上記ノード装置状態管理メモリに記録された各ノード装置で使用する上記ユーザーサイクリックメモリの領域に関する情報を用いて上記ユーザーサイクリックメモリによるサイクリック通信を行うサイクリック送受信部とを備えたものである。
【発明の効果】
【００１０】
本発明に係るノード装置によれば、ネットワークに接続されてサイクリック通信を行うノード装置であって、
サイクリック通信に使用されるユーザーサイクリックメモリと、
上記ネットワークに接続する各ノード装置で使用する上記ユーザーサイクリックメモリの領域を特定する情報を記録するために上記ネットワークに接続する各ノード装置に割り付けられるものであり、ネットワークに接続するノード装置の想定する最大数の固定サイズの領域を有するノード装置状態管理メモリと、
上記ノード装置状態管理メモリに記録されたデータをネットワークに接続する各ノード装置で同じにするノード装置状態管理メモリ等化部と、
上記ノード装置状態管理メモリを参照して上記ユーザーサイクリックメモリの空き領域を認識し、各ノード装置で使用するサイズ値の領域を上記ユーザーサイクリックメモリの空き領域に割り付け、割り付けた上記ユーザーサイクリックメモリの領域を特定する情報を上記ノード装置状態管理メモリの自ノード装置の領域に記録するサイクリックマップ制御部と、
上記ノード装置状態管理メモリに記録された各ノード装置で使用する上記ユーザーサイクリックメモリの領域に関する情報を用いて上記ユーザーサイクリックメモリによるサイクリック通信を行うサイクリック送受信部とを備えたものであるので、ユーザサイクリックメモリを各ノードに重複することなく自動で割り付けることができる。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、サイクリック通信を行うノード装置を示すブロック図である。図１に示したように、ネットワーク３に接続されるノード（＃１，＃２，＃３）２、ノード２それぞれを制御するホスト１により構成される。
【００１２】
図２は、本実施の形態１におけるノード装置の内部構成を示すブロック図である。図２に示したように、各ノード２は、ホスト１からの要求を受けてサイクリックマップの設定を行うサイクリックマップ制御部４、ネットワーク共有メモリ空間であるユーザーサイクリックメモリ５、各ノード２で使用するユーザサイクリックメモリ５の領域の先頭アドレスとサイズ値を記録するノード状態管理メモリであるシステムサイクリックメモリ７、ホスト１からユーザーサイクリックメモリ５に書き込まれた送信データを通信するとともに、システムサイクリックメモリ７の固有の情報を通信するためのサイクリック送受信部６を備えている。システムサイクリックメモリ７には、各ノード２で使用するユーザサイクリックメモリ５の領域を特定する情報として、先頭アドレスと最終アドレスを記録してもよいし、最終アドレスとサイズ値を記録してもよい。各ノード２で使用するユーザサイクリックメモリ５の領域を特定する情報であれば、どのような形式で記録してもよい。
システムサイクリックメモリ７は、そこに記録されたデータがサイクリック通信により各ノード２で同じになるので、サイクリック送受信部６がノード装置状態管理メモリ等化部になる。サイクリック通信によらず、個別通信またはブロードキャスト通信により、ノード装置状態管理メモリに記録されたデータをネットワークに接続する各ノード２で同じにする場合には、個別通信またはブロードキャスト通信を行う処理がノード装置状態管理メモリ等化部になる。
【００１３】
次に動作について説明する。
ノード２はネットワーク３に参入するとサイクリック通信によりサイクリックマップの設定がされたユーザーサイクリックメモリ５の自己の送信領域にホスト１のアクセスによって書き込まれた送信データをサイクリック送受信部６を介して他ノード２に通信する。また、サイクリックマップ制御部４は、システムサイクリックメモリ７の自ノード固有の情報を他ノードに対して定周期に送信し、他ノード２の固有情報を定周期に受信して、後述のように、ユーザーサイクリックメモリ５のサイクリックマップの設定を実行する。
【００１４】
図３は、システムサイクリックメモリの構成を説明する図である。システムサイクリックメモリ７は、将来追加されるノード数を考慮してネットワークに接続するノード２の想定する最大数の値をＮとし、１ノードあたり６４Ｂのサイズとして、ノード（＃１，…，＃Ｎ）２それぞれに固定的に割り当てられる。また、ノード（＃１，…，＃Ｎ）２の固有情報には、サイクリックマップ情報（ユーザーサイクリックメモリ先頭からのアドレスと送信サイズ値）が含まれており、サイクリックマップが設定されるまでは、アドレスと送信サイズ値のエリアは０となっている。サイクリックマップが設定されていない状態では、サイクリック送受信部６はユーザーサイクリックメモリ５から送信データの通信を行わないようになっている。なお、図３中、各ノード２の空きは、固有情報入力の予備として設けられたものである。
【００１５】
次に、ホスト１からの要求によるサイクリックマップの設定について説明する。
新たに参入したノード２のサイクリックマップの設定の際、ホスト１はユーザーサイクリックメモリ５のサイクリックマップ設定に必要な送信サイズ値のみを指定する。サイクリックマップ設定の要求を受けたノード２のサイクリックマップ制御部４では、他ノード２のシステムサイクリックメモリ７にあるサイクリックマップ情報を受信し、受信したサイクリックマップ情報が書き込まれた自ノード２のシステムサイクリックメモリ７を参照して、他ノード２のサイクリックマップの設定がされていないユーザーサイクリックメモリ５の空き領域を検索し、ユーザーサイクリックメモリ５の空き領域の先頭から自ノード２の指定された送信サイズ値のエリアを割り付けて自ノード２の送信領域及び他ノード２の送信領域を含むサイクリックマップの設定をする。設定した自ノード２のサイクリックマップ情報は、システムサイクリックメモリ７の自ノード２のエリアに書き込み、他ノード２へ通信する。他ノード２は、受信したサイクリックマップ情報を参照して、ユーザーサイクリックメモリ５のサイクリックマップ設定変更をする。また、サイクリックマップを設定したことにより、サイクリック通信が開始され、ホスト１は直接自ノード２のユーザーサイクリックメモリ５のエリアにアクセスし、送信データを書き込んで他ノード２に通信し、他ノード２の送信データを読み込むことができる。
【００１６】
サイクリックマップ設定の具体例として、全ノード２中で一切サイクリックマップが設定されていない状態で、ノード（＃１）２が送信サイズ値１００ｈ、ノード（＃２）２が送信サイズ値２００ｈのサイクリックマップを設定する場合について説明する。なお、送信サイズ値及びアドレスの表示におけるｈはヘキサ表示（１６進数）を示している。
【００１７】
まず、ノード（＃１）２がネットワーク３へ参入すると、システムサイクリックメモリ７の送受信を開始する。この時、サイクリックマップがまだ割り付けられていないため、ノード（＃１）２のシステムサイクリックメモリ７はアドレスも送信サイズ値も０の状態がネットワーク３へ流れる。次に、ノード＃１のホスト１から送信領域１００ｈサイズ分のサイクリックマップの設定要求を行う。この時、ホスト１から設定要求を受けたノード（＃１）２のサイクリックマップ制御部４は、システムサイクリックメモリ７の受信した他ノード２のエリアを参照し、ユーザーサイクリックメモリ５の空き領域を検索することができる。サイクリックマップの設定では常にユーザーサイクリックメモリ５の先頭から詰めて指定された送信サイズ値のエリアを割り当てるものとする。他ノード２が一切サイクリックマップの割り付けがされていないため、ここでは、ノード（＃１）２のサイクリックマップ制御部４は、ユーザーサイクリックメモリ５の先頭から１００ｈ分を割り付ける。つまり、アドレスは０ｈ、送信サイズ値１００ｈの送信領域となる。このサイクリックマップ情報をシステムサイクリックメモリ７の自ノード（＃１）２のエリアに書き込み、他ノード２へ通信する。
【００１８】
続いて、ノード（＃２）２がネットワーク３へ参入し、システムサイクリックメモリ７の送受信を開始する。次に、ノード（＃２）２のホスト１から送信サイズ値２００ｈのサイクリックマップの設定要求を行う。この時、ホスト１から設定要求を受けたノード（＃２）２のサイクリックマップ制御部４は、システムサイクリックメモリ７の受信した他ノード２のエリアを参照し、空いているユーザーサイクリックメモリ５の空き領域を検索する。すでに、ノード（＃１）２によってアドレス０からサイズ１００ｈ分が割り付けられており、それ以外のエリアは空き領域であることがわかるので、ノード（＃２）２のサイクリックマップ制御部４では、空き領域の先頭から２００ｈ割り付け、ノード（＃１）２の送信領域を含むサイクリックマップの設定をする。この場合であれば、アドレスは１００ｈ、送信サイズ値は２００ｈとなる。このアドレス１００ｈ、送信サイズ値２００ｈのサイクリックマップ情報をシステムサイクリックメモリ７の自ノード（＃２）２のエリアに書き込み、他ノード２へ通信し、ここではノード（＃１）２のサイクリックマップ制御部４が自ノード（＃１）２のユーザーサイクリックメモリ５のサイクリックマップの設定変更をする。この時点でのノード（＃１）２及びノード（＃２）２のシステムサイクリックメモリ７の状態は、図４のようになり、ユーザーサイクリックメモリ５の状態は、図５のようになる。
【００１９】
さらに、新たにノード２が追加され、ネットワーク３へ参入すると、受信した他ノード２のシステムサイクリックメモリ７の受信した他ノード２のエリアを参照し、空いているユーザーサイクリックメモリ５の空き領域を検索し、空いている空き領域の先頭から指定された送信サイズ値の送信領域を割り付けて他ノード２から送信されてくるデータを記録する領域を含むサイクリックマップの設定をし、このサイクリックマップ情報をシステムサイクリックメモリ７の自ノード２のエリアに書き込み、他ノード２へ通信する。他ノード２のサイクリックマップ制御部４は、それぞれ自ノード２のユーザーサイクリックメモリ５のサイクリックマップの設定変更をする。
【００２０】
また、一度設定したサイクリックマップを削除する場合には、ホスト１からサイクリックマップ情報の削除を要求する。サイクリックマップ制御部４では、システムサイクリックメモリ７のサイクリックマップ情報を０にすることでサイクリックマップが削除される。これと同時に、ユーザーサイクリックメモリ５の通信を停止する。これにより、このユーザーサイクリックメモリ５が空きとなり、別のノード２がユーザーサイクリックメモリ５の通信のための送信領域として使用可能となる。サイクリックマップ設定時にユーザーサイクリックメモリ５の空き領域がなかった場合には、設定を中止してホスト１へ通知を行う。
【００２１】
本実施の形態１によれば、ネットワーク３に参入するノード２のサイクリックマップ制御部４は、ホスト１から送信サイズ値の指定とともにサイクリックマップ設定の要求を受け、その際に、他ノード２のシステムサイクリックメモリ７に書き込まれたサイクリックマップ情報を受信し、受信したサイクリックマップ情報を参照してユーザーサイクリックメモリ５の空き領域を検索し、指定された送信サイズ値のエリアをユーザーサイクリックメモリ５の空き領域の先頭から割り付けるとともに、システムサイクリックメモリ７に自ノードのサイクリックマップ情報を書き込み、他ノード２に通信し、他ノード２のサイクリックマップ制御部４は、通信されたサイクリックマップ情報を参照して自ノード２のユーザーサイクリックメモリのサイクリックマップの設定変更をすることによりサイクリックマップ設定における自動割り付けを行うことができ、サイクリックマップがノード２間で重複しないように設定することができ、さらに、新たなノード２の参入あるいはノード２の削除がある場合にも、ホスト１からの送信サイズ値の指定あるいは削除の指定でサイクリックマップの設定変更が自動で実行されるので、サイクリック通信のノード装置に柔軟性を持たせることができる。
【００２２】
実施の形態２．
図６は、本実施の形態２におけるノードの内部構成を示すブロック図であり、図２と同一符号は、同一部分または相当部分を示す。本実施の形態２は、ユーザーサイクリックメモリ５に連続した送信領域として空き領域が使用できない場合に、送信サイズ値を分割して空き領域を使用する例である。
また、本実施の形態２では、上記実施の形態１の構成に加えて、各ノード２は、ノード２毎の送信データを連続した領域に記録するユーザーサイクリック一次メモリ８と、送信データを制御するサイクリックデータ制御部９を備えることによって、サイクリックマップが分割されていることを意識させることなく、サイクリック通信が可能となるようにしたものである。
【００２３】
次に動作について説明する。
各ノード２ではすでにサイクリックマップの設定がなされており、システムサイクリックメモリ７の状態が図７のようになっていたとする。つまり、ノード（＃２）２は削除され、ユーザーサイクリックメモリ５の状態は図８のようになっている。また、本実施の形態２では、ユーザーサイクリック一次メモリ８における１ノードあたりの領域の最大サイズはシステム設計時に決定しておくこととする。本実施の形態２では最大サイズを６４ＫＢに設定して説明する。なお、１ノードあたりの領域は、ノード２が使用することを想定する最大サイズ値になるようにする。
【００２４】
この状態からノード（＃４）２が新たにネットワーク３へ参入し、ホスト１からユーザーサイクリックメモリ５の送信サイズ値５００ｈの設定要求を行ったとする。ノード（＃４）２のサイクリックマップ制御部４では、受信した他ノード２のシステムサイクリックメモリ７のサイクリックマップ情報を参照し、ユーザーサイクリックメモリ５の空き領域を検索することができる。ユーザーサイクリックメモリ５の先頭からのアドレス１００ｈから２００ｈサイズ分の空き領域があることがわかる。ホスト１が要求してきた送信サイズ値は５００ｈであるため、アドレス１００ｈからでは空き領域として不足している。このように空き領域が指定された送信サイズ値に対して不足している場合は、送信サイズ値を分割してアドレス１００ｈから２００ｈの送信サイズ値分と他の空き領域の先頭アドレス７００ｈから３００ｈの送信サイズ値で合計５００ｈとして割り付けて他ノード２の送信領域を含むサイクリックマップ設定をする。このサイクリックマップ情報をシステムサイクリックメモリ７の自ノード（＃４）２のエリアに書き込み、他ノード２へ通信する。他ノード２のサイクリックマップ制御部４は、それぞれ自ノード２のユーザーサイクリックメモリ５のサイクリックマップの設定変更をする。サイクリックマップの分割数は２分割までできるものとする。図９は、ノード（＃４）２のサイクリックマップ設定後の、ノード（＃１，＃３，＃４）のシステムサイクリックメモリ７の状態を示し、図１０は、ノード（＃４）２のサイクリックマップ設定後のノード（＃１，＃３，＃４）のユーザーサイクリックメモリ５の状態を示す。
【００２５】
次に、ユーザーサイクリックメモリ５とユーザーサイクリック一次メモリ８の関係について図１１に基づき説明する。ユーザーサイクリック一次メモリ８は、１ノードあたりの領域×ノード数分の連続領域とする。本実施の形態２では、１ノードあたりの領域は６４ＫＢとしているので、６４ＫＢ×ノード数分となる。ユーザーサイクリック一次メモリ８には各ノード２毎の送信データを記録する領域が設定されている。
【００２６】
サイクリックデータ制御部９は、定周期にてシステムサイクリックメモリ７を監視し、システムサイクリックメモリ７に設定されているサイクリックマップ情報を参照して、ユーザーサイクリック一次メモリ８に、ネットワークに参入したノード２の送信領域を確保する。サイクリックデータ制御部９は、ユーザーサイクリック一次メモリ８とユーザーサイクリックメモリ５との間で送信データのコピーを行う。つまり、図１１に示すように、自ノード（＃４）２の領域の場合は、ユーザーサイクリック一次メモリ８に書き込んだ送信データをユーザーサイクリックメモリ５へコピーする。自ノード（＃４）以外の他ノードの受信については、ユーザーサイクリックメモリ５からユーザーサイクリック一次メモリ８へコピーをする。この時、システムサイクリックメモリ７を参照して、分割されている場合は一つにまとめて書き込みを行う。
【００２７】
ホスト１では、ユーザーサイクリック一次メモリ８に直接アクセスして送信データの書き込みを行うことで、書き込んだ送信データはユーザーサイクリックメモリ５にコピーされて、サイクリック送受信部６を介して他ノード２に通信される。サイクリック送受信部６を介して読み込まれた他ノード２の送信データはユーザーサイクリックメモリ５からユーザーサイクリック一次メモリ８にコピーされ、ホスト１では、ユーザーサイクリック一次メモリ８に直接アクセスして他ノード２の送信データを読み込むことができる。この時、ホスト１は、サイクリックマップが分割されて設定された場合でも、分割されていることを意識することなく、連続領域として扱うことが可能である。
【００２８】
本実施の形態２によれば、割り当てる空き領域のサイズが、指定された送信サイズ値に対して不足している場合は、送信サイズ値を分割して他の空き領域に不足分を割り付けるようにしたので、ユーザーサイクリックメモリ５を効率よく使用できるようになる。
【００２９】
また、各ノード２に、各ノード２毎の送信データを記録する連続領域を有するユーザーサイクリック一次メモリ８を設け、送信データを制御するサイクリックデータ制御部によって、ユーザーサイクリック一次メモリ８に書き込んだ自ノード２の送信データをユーザーサイクリックメモリ５にコピーし、ユーザーサイクリックメモリ５の他ノードの送信データをユーザーサイクリック一次メモリ８にコピーするようにしたので、分割されたサイクリックマップの送信領域は一つの領域にまとめて連続領域として扱うようにすることができ、ホスト１にサイクリックマップが分割されていることを意識させることなく、サイクリック通信が可能となる。
【００３０】
実施の形態３．
上記実施の形態２では、ユーザーサイクリック一次メモリは、予め全ノード２分のエリアを用意しておく必要があり、バッファの使用効率が悪いという問題がある。本実施の形態３では、上記実施の形態２に対して、ユーザーサイクリック一次メモリ８を効率よく使用できるよう、サイクリックデータ制御部９でサイクリックマップが分割されているノードのみに対してユーザーサイクリック一次メモリ８に記録して使用するようにしたものである。ユーザーサイクリック一次メモリ８の大きさは、ユーザーサイクリックメモリ５における分割されたメモリ領域の大きさ以上であればよい。分割されたメモリ領域の大きさはサイクリックマップの削除と設定の頻度によるが、通常はユーザサイクリックメモリ５の数１０％程度以下なので、ユーザサイクリック一次メモリ８の大きさはユーザサイクリックメモリ５の数１０％程度以下であればよい。
【００３１】
図１２は、本実施の形態３におけるノードの内部構成を示すブロック図であり、図２及び図６と同一符号は同一部分または相当部分を示している。図１２に示したように、本実施の形態３では、上記実施の形態２に対して、ホストサイクリックＩ／Ｆ部１０及びアドレス管理テーブル１１が追加されている。
【００３２】
次に動作について説明する。
サイクリックマップが設定されるまでは、上記実施の形態２と同様である。ここでは、上記実施の形態２との差異である、ユーザーサイクリックメモリ５とユーザーサイクリック一次メモリ８との関係、及びホストサイクリックＩ／Ｆ部１０とアドレス管理テーブル１１について説明する。
【００３３】
各ノード２のサイクリックデータ制御部９では、定周期にシステムサイクリックメモリ７を監視している。この時、サイクリックマップが分割されて設定されているノード２がネットワークに参入していることを認識すると、認識したノード２のユーザーサイクリックメモリ５における送信領域をユーザーサイクリック一次メモリ８に連続領域として確保し、確保した連続領域のアドレスをアドレス管理テーブル１１に記録しておく。そして、上記実施の形態２と同様に、ユーザーサイクリック一次メモリ８とユーザーサイクリックメモリ５との間で送信データのコピーを行う。分割されている送信領域が自ノード２の場合は、ホスト１が書き込んだユーザーサイクリック一次メモリ８の送信データをユーザーサイクリックメモリ５へコピーする。分割されている送信領域が他ノードの場合は、ユーザーサイクリックメモリ５の送信データをユーザーサイクリック一次メモリ８へコピーする。分割されていない場合にはコピーは行わない。
【００３４】
また、ホスト１からのユーザーサイクリックメモリ５の書き込み／読み込みに際しては、ノードＩＤを指定してホストサイクリックＩ／Ｆ部１０に書き込み／読み込みの要求を行う。ノードＩＤとは、予めノード２毎に割り付けられている識別子である。要求を受けたホストサイクリックＩ／Ｆ部１０では、システムサイクリックメモリ７を参照し、サイクリックマップが分割されて設定されている場合は、アドレス管理テーブル１１からユーザーサイクリック一次メモリ８の指定したノードＩＤのアドレスがわかるので、それによりユーザーサイクリックメモリ５にデータの書き込み／読み込みを行ない、ホスト１へ応答を行う。サイクリックマップが分割されていないノードＩＤが指定された場合には、ユーザーサイクリックメモリ５に直接書き込み／読み込みを行うようにし、ホスト１へ応答を返す。上記実施の形態１では、ホスト１が直接ユーザーサイクリックメモリ５にアクセスし、上記実施の形態２では、ホスト１が直接ユーザーサイクリック一次メモリ８にアクセスしていたが、本実施の形態３では、ホストサイクリックＩ／Ｆ部１０を介して行う。
【００３５】
さらに、サイクリックデータ制御部９で定周期にシステムサイクリックメモリ７を監視し、サイクリックマップから削除されたノード２がある場合は、ユーザーサイクリック一次メモリ８の該当するノード２のアドレスをアドレス管理テーブル１１から削除する。
【００３６】
本実施の形態３によれば、各ノード２に、サイクリックマップが分割された場合にのみ、ユーザーサイクリックメモリ５において分割された送信領域を連続領域として確保するユーザーサイクリック一次メモリ８を設けたので、ユーザーサイクリック一次メモリ８に不要なバッファを保持しておく必要がなくなる。
【００３７】
また、分割された送信領域を連続領域としてユーザーサイクリック一次メモリ８に確保し、確保した連続領域のアドレスを記録するアドレス管理テーブル１１を設けたので、ホスト１がアドレス管理テーブル１１及びユーザーサイクリック一次メモリ８にアクセスして分割されていることを意識することなくデータの書き込み／読み込みを行うことができる。
【００３８】
また、上記実施の形態２では、ユーザーサイクリック一次メモリ８をノード２毎に固定的に割り当てているため、バッファのサイズを６４ＫＢと固定としていたが、本実施の形態３の場合には、バッファのサイズに対する制限をなくすことができる。
【産業上の利用可能性】
【００３９】
本発明に係るノード装置は、サイクリック通信におけるサイクリックマップの自動割り付けとして有効に利用することができる。
【図面の簡単な説明】
【００４０】
【図１】サイクリック通信を行うノード装置を示すブロック図である。
【図２】実施の形態１におけるノード装置の内部構成を示すブロック図である。
【図３】システムサイクリックメモリの構成を説明する図である。
【図４】実施の形態１の例におけるシステムサイクリックメモリの状態を示す図である。
【図５】実施の形態１の例におけるユーザーサイクリックメモリの状態を示す図である。
【図６】実施の形態２におけるノードの内部構成を示すブロック図である。
【図７】実施の形態２の例におけるシステムサイクリックメモリの状態を示す図である。
【図８】実施の形態２の例におけるユーザーサイクリックメモリの状態を示す図である。
【図９】実施の形態２の例におけるサイクリックマップ設定後のシステムサイクリックメモリの状態を示す図である。
【図１０】実施の形態２の例におけるサイクリックマップ設定後のユーザーサイクリックメモリの状態を示す図である。
【図１１】実施の形態２の例におけるユーザーサイクリック一次メモリとユーザーサイクリックメモリとの関係を示す図である。
【図１２】実施の形態３におけるノードの内部構成を示すブロック図である。
【符号の説明】
【００４１】
１  ホスト、２  ノード、３  ネットワーク、４  サイクリックマップ制御部、
５  ユーザーサイクリックメモリ、６  サイクリック送受信部、
７  システムサイクリックメモリ、８  ユーザーサイクリック一次メモリ、
９  サイクリックデータ制御部、１０  ホストサイクリックＩ／Ｆ部、
１１  アドレス管理テーブル。
【図１】
2010016581.tif 000003
【図２】
2010016581.tif 000004
【図３】
2010016581.tif 000005
【図４】
2010016581.tif 000006
【図５】
2010016581.tif 000007
【図６】
2010016581.tif 000008
【図７】
2010016581.tif 000009
【図８】
2010016581.tif 000010
【図９】
2010016581.tif 000011
【図１０】
2010016581.tif 000012
【図１１】
2010016581.tif 000013
【図１２】
2010016581.tif 000014