(57)【要約】【課題】複数のツールからのコマンド要求が重なるような場合であっても、高速にコマンド要求を処理することができるネットワークユニットを提供する。【解決手段】ｎ個のツール２０１〜２０ｎから発行されたコマンドをノード１０１〜１０ｎに対して実行する。共用メモリ３４０に、ツールからのコマンド要求が格納されるコマンド要求エリア４１〜４ｎと、ノードが応答するコマンド結果が格納されるコマンド結果エリア５１〜５ｎと、予約テーブルエリア３１〜３ｎとが設けられている。ネットワークユニット３０１は、ツールがネットワークユニットに対して行う予約要求に対して、未占有のコマンド要求エリアおよびコマンド結果エリアが有ると、対応する予約テーブルエリアを占有状態にして、その旨を要求元のツールに通知する。【選択図】        図３
2007328436.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク接続された複数のノードに対して信号の入出力を行うと共に、接続されたｎ（ｎは１以上の整数）個のツールから発行されたコマンドを前記ノードに対して実行するネットワークユニットにおいて、
前記ネットワークユニットは、自装置と前記ツールとから共にアクセス可能な共用メモリを有しており、
前記共用メモリには、
前記ツールから前記ノードに対して要求されるコマンド要求が格納されるｍ１（ｍ１はｎ以上の数）個のコマンド要求エリアと、
前記コマンド要求に対して、前記ノードが応答するコマンド結果が格納されるｍ２（ｍ２はｎ以上の数）個のコマンド結果エリアと、
前記コマンド要求エリアおよび前記コマンド結果エリアの占有状況が格納されるｍ３（ｍ３はｎ以上の数）個の予約テーブルエリアとが設けられ、
前記ネットワークユニットは、前記ツールがネットワークユニットに対して行う予約要求に対して、前記共用メモリを検索して、未占有の前記コマンド要求エリアおよび前記コマンド結果エリアが有ると、対応する前記予約テーブルエリアを占有状態にするとともに、前記コマンド要求エリアおよび前記コマンド結果エリアの番号を要求元の前記ツールに通知することにより、該当エリアが予約されたことを知らせる
ことを特徴とするネットワークユニット。
【請求項２】
前記共用メモリに、
前記ツールからの予約要求が格納される予約要求エリアと、
前記予約要求に対する予約結果が格納される予約結果エリアとが設けられ、
前記ツールは、前記予約要求エリアに予約要求を格納することにより、前記ネットワークユニットに対して行う前記コマンド要求エリアおよび前記コマンド結果エリアの予約の要求をすると共に、前記ネットワークユニットは、前記予約結果エリアに予約結果を格納することにより、前記コマンド要求エリアおよび前記コマンド結果エリアが予約されたことを要求元の前記ツールに通知する
ことを特徴とする請求項１に記載のネットワークユニット。
【請求項３】
前記ツールがネットワークユニットに対して行う予約要求に対して、前記共用メモリを検索して、未占有の前記コマンド要求エリアおよび前記コマンド結果エリアが有ると、対応する前記予約テーブルエリアを占有状態にするとともに、前記コマンド要求エリアおよび前記コマンド結果エリアの番号を要求元の前記ツールに通知することにより、該当エリアが予約されたことを知らせる
ことを、請求項１又は２記載のネットワークユニットに実行させるためのプログラム。
【請求項４】
前記共用メモリに設けられた予約要求エリアに予約要求を格納することにより行う前記ツールの予約の要求に対して、前記共用メモリに設けられた予約結果エリアに予約結果を格納することにより、前記コマンド要求エリアおよび前記コマンド結果エリアが予約されたことを要求元の前記ツールに通知する
ことを、ネットワークユニットに実行させるための請求項３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のノードが接続されたネットワークを管理するネットワークユニットに関するものであり、特にネットワークユニットに直接的または間接的に接続されたツールからノードへのコマンドの実行の高速化と排他処理を簡易化する技術に関するものである。
【背景技術】
【０００２】
図４は従来のネットワークユニットの共用メモリとコマンドの動きを示す模式図である。従来のネットワークユニット４０１は、１つのコマンド要求エリア４４１と１つのコマンド結果エリア４５１とを有していた。このような構成の従来のネットワークユニット４０１においては、複数のツールから複数のコマンド要求が発行された場合に、１つのコマンド要求エリア４４１を排他制御をして用いることにより対応していた。このような排他制御に関しては、例えばフラグ或いはセマフォ等の技術を用いた排他制御用のプログラムを付加することにより実現することができる。
【０００３】
一方、従来、通信および情報処理システムに関する分野において、データのオーバーヘッドを小さくして通信スループットの向上および通信遅延の減少を図る目的で、通信処理に先立って記憶手段に受信バッファを予め確保する方法が提案されている（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００２−５１０８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の図４に記載のコマンドの処理方法においては、複数のツールが同時にコマンドを発行した場合に、ツール間の排他制御が複雑になるという未解決の課題を有していた。また、複数のツールが同時にコマンドを発行した場合に、いずれかのノードに応答の遅いものがあると、他のノードは、この応答の遅いノードの処理完了を待たなくてはならず、コマンドの実行に時間がかかるという未解決の課題も有していた。一方、特許文献１に記載の方法は、単に予め記憶手段に受信バッファを確保するだけのものであるので、これらの課題を解決できるものではなかった。
【０００６】
この発明は上述のような課題を解決するためになされたもので、複数のツールから発行された複数のコマンド要求が重なるような場合であっても、これら複数のコマンド要求を高速に処理することができるネットワークユニットおよびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、この発明に係るネットワークユニットは、ネットワーク接続された複数のノードに対して信号の入出力を行うと共に、接続されたｎ（ｎは１以上の整数）個のツールから発行されたコマンドをノードに対して実行するネットワークユニットにおいて、ネットワークユニットは、自装置とツールとから共にアクセス可能な共用メモリを有しており、ネットワークユニットとツールとから共にアクセス可能な共用メモリが設けられ、共用メモリには、ツールからノードに対して要求されるコマンド要求が格納されるｍ１（ｍ１はｎ以上の数）個のコマンド要求エリアと、コマンド要求に対して、ノードが応答するコマンド結果が格納されるｍ２（ｍ２はｎ以上の数）個のコマンド結果エリアと、コマンド要求エリアおよびコマンド結果エリアの占有状況が格納されるｍ３（ｍ３はｎ以上の数）個の予約テーブルエリアとが設けられ、ネットワークユニットは、ツールがネットワークユニットに対して行う予約要求に対して、共用メモリを検索して、未占有のコマンド要求エリアおよびコマンド結果エリアが有ると、対応する予約テーブルエリアを占有状態にするとともに、コマンド要求エリアおよびコマンド結果エリアの番号を要求元のツールに通知することにより、該当エリアが予約されたことを知らせることを特徴とする。
【発明の効果】
【０００８】
この発明によれば、予約テーブルエリアを検索して、未占有のコマンド要求エリアおよびコマンド結果エリアが有ると、対応する予約テーブルエリアを占有状態にするとともに、コマンド要求エリアおよびコマンド結果エリアの番号を要求元のツールに通知することにより、該当エリアが予約されたことを知らせるので、複雑な排他制御をすることなく、複数のツールから複数のコマンド要求が重なるように発行された場合であっても対応可能であり、また、いずれかのノードに応答の遅いものがあっても、このノードの処理を待つことがないので、他のコマンド要求を高速に処理することができる。すなわち、この発明によれば、ネットワークユニットに対する複数ツールからコマンド実行する際の排他処理の簡易化とコマンド実行処理の高速化を実現することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明にかかるネットワークユニットの実施の形態を図面に基づいて詳細に説明する。なお、本実施の形態ネットワークユニットは、ファクトリーオートメーション（ＦＡ）分野を始めとして、幅広いアプリケーションに適用できる所謂シーケンス制御を行うプログラマブルコントローラ（ＰＬＣ）を接続してなるネットワークを形成するネットワークユニットに関するものであるが、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態
図１はこの発明に係る実施の形態のネットワークユニットとその周辺機器の構成を示す模式図である。本実施の形態のネットワークユニット３０１には、第１の接続系統６０により複数のノード１０１〜１０ｎが接続されており、これによりネットワークが構成されている。第１の接続系統６０は、本実施の形態の場合、バス伝送路である。また、ノード１０１〜１０ｎは、例えば入出力信号のオン／オフを制御する機器、アナログ出力信号の制御を行うＤ／Ａ変換器、加工用工作機械、工業用ロボット、および設備機器等、各種の機器や装置である。ネットワークユニット３０１は、第１の接続系統６０にて接続されたノード１０１〜１０ｎに対して信号の入出力を行ってこれらを制御したりモニタリングしたりする。
【００１１】
ネットワークユニット３０１にはさらに、第２の接続系統７０を介して、ツール２０１〜２０ｎが接続されている。ネットワークユニット３０１は、このツール２０１〜２０ｎを用いてネットワーク上のノード１０１〜１０ｎに対してコマンドを実行する機能を有している。このコマンドは、例えば装置の故障状況の吸い上げ等に使用される。このツール２０１〜２０ｎは、ネットワークユニット３０１に直接的に接続される場合もあれば間接的に接続される場合もある。
【００１２】
本実施の形態のネットワークユニット３０１には、ｎ個のツール２０１〜２０ｎが接続可能とされている。ツール２０１〜２０ｎは、本実施の形態の場合、パソコン等の汎用機器上で起動するアプリケーションである。また、第２の接続系統７０は、イーサネット（登録商標）である。ツール２０１〜２０ｎとノード１０１〜１０ｎとの間の交信は、全てネットワークユニット３０１を介して行われる。図１中、白抜き実線矢印は、ツール２０１〜２０ｎからノード１０１〜１０ｎへ向かうコマンド要求の流れを示している。一方、白抜き破線矢印は、ノード１０１〜１０ｎからツール２０１〜２０ｎへ向かうコマンド結果の流れを示している。
【００１３】
図２はこの発明に係る実施の形態１のネットワークユニットとそれに接続されたツールとの内部構成を示すと共にコマンド要求およびコマンド結果の流れを示すブロック図である。ネットワークユニット３０１は、送信処理部３１０、受信処理部３２０、通信処理部３３０および共用メモリ３４０を有している。共用メモリ３４０は、ネットワークユニット３０１（自装置）とツール２０１〜２０ｎとから共にアクセス可能な共用メモリとして割り当てられている。ツール２０１は、送信処理部２１０、受信処理部２２０およびコマンド処理部２３０を有している。なお、他のツール２０２〜２０ｎも同様の構成を有している。
【００１４】
ツール２０１のコマンド処理部２３０にて発行されたコマンド要求は、送信処理部２１０を介してネットワークユニット３０１に送信される。ネットワークユニット３０１に送信されたコマンド要求は、まず共用メモリ３４０に格納される。これを送信処理部３１０が読み出し、通信処理部３３０を介してノード１０１に送信する。一方、コマンド要求に対してノード１０１が応答するコマンド結果は、ネットワークユニット３０１に向けて送信され、ネットワークユニット３０１の通信処理部３３０を介して受信処理部３２０にて受信され、共用メモリ３４０に格納される。これをツール２０１の受信処理部２２０が読み出し、コマンド処理部２３０に渡す。
【００１５】
図３はネットワークユニット共用メモリのメモリマップを示すとともにこれに関連するコマンド要求およびコマンド結果の動きを示すタイミングチャートである。ネットワークユニット３０１は、共用メモリ３４０を内部メモリとして有している。この共用メモリ３４０は、ネットワークユニット３０１の図示しないＭＰＵとツール２０１〜２０ｎの図示しないＭＰＵとから共にアクセス可能とされている。共用メモリ３４０には、１個の予約要求エリア２１と、１個の予約結果エリア２２と、ｎ個の予約テーブルエリア３１〜３ｎと、ｎ個のコマンド要求エリア４１〜４ｎと、ｎ個のコマンド結果エリア５１〜５ｎとが設けられている。
【００１６】
予約テーブルエリア３１〜３ｎには、コマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎのツール２０１〜２０ｎにおける予約（占有）状況が格納される。予約（占有）状況は、各ツールに付けられた固有なコードが、予約テーブルエリアに格納されていることなどで予約（占有）済みと判断する。コマンド要求エリア４１〜４ｎには、ツール２０１〜２０ｎがノード１０１〜１０ｎに対して発行するコマンド要求が格納される。コマンド結果エリア５１〜５ｎには、コマンド要求に対して、ノード１０１〜１０ｎが応答するコマンド結果が格納される。
【００１７】
次に、ネットワークユニット３０１のコマンド処理動作を説明する。この動作はネットワークユニット３０１の所定の領域に記憶されたプログラムが、図示しないＭＰＵにより実行されて実現する。ツール２０１〜２０ｎは、コマンド要求を発行する前に、まずツール２０１〜２０ｎとの交信に使用するコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎの予約（占有）を、ネットワークユニット３０１に対して要求する。この要求は、ツール２０１〜２０ｎが予約要求エリア２１に予約要求（自身の固有コード）を書き込む（格納する）ことにより行う。
【００１８】
ツール２０１〜２０ｎからの要求に基づいて、ネットワークユニット３０１は、予約（占有）テーブルエリアの未予約（非占有）エリアをチェックするなどして、未占有のコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎを探し出し、未占有のエリアがある場合は、予約を要求したツール２０１〜２０ｎの固有コードを、対応する予約テーブルエリア３１〜３ｎに格納して該当エリアを占有する。その後、ネットワークユニット３０１は、予約結果エリア２２を使用して要求元のツール２０１〜２０ｎに予約（占有）処理完了の応答を返す。このとき、ネットワークユニット３０１は、予約結果エリア２２に占有したコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎの場所（番号）を格納することにより、予約（占有）処理の完了と該当エリアの場所（番号）をツール２０１〜２０ｎに通知する。
【００１９】
ネットワークユニット３０１からの応答により、ツール２０１〜２０ｎはネットワークユニット３０１が占有したコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎの場所を記憶する。そして次に、ツール２０１〜２０ｎは、この記憶したコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎを用いて、コマンド要求を発行する。
【００２０】
コマンド要求を発行されたノード１０１〜１０ｎは、その応答としてコマンド結果を送信する。これを受信したネットワークユニット３０１は、このコマンド結果を対応するコマンド結果エリア５１〜５ｎに格納する。そして、要求元のツール２０１〜２０ｎがこれを読み込み一連のコマンド要求の実行が完了する。要求元のツール２０１〜２０ｎからのコマンド要求エリアおよびコマンド結果エリアの解放要求により、実行が完了したコマンド要求およびコマンド結果が、コマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎから消去される。同時に予約テーブルエリア３１〜３ｎに格納されたツール２０１〜２０ｎの固有コードも消去される。これにより、占有されていたコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎが開放され未占有となる。
【００２１】
ネットワークユニット３０１は、ツール２０１〜２０ｎからの新たな要求があると、この要求に基づいて、未占有のコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎを探し出し、未占有のエリアがある場合は、予約を要求したツール２０１〜２０ｎの固有コードを対応する予約テーブルエリア３１〜３ｎに格納することにより該当エリアを占有する。以後、上記と同様な動作を行う。
【００２２】
従来方式においては、複数のツール２０１〜２０ｎからのコマンド要求が重なった場合、コマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎが開放されるまで待ってからコマンドを要求しなければならなかった。しかし、本実施の形態のネットワークユニットにおいては、上記の要領でコマンド要求エリア、コマンド結果エリアを予約（占有）してコマンド要求処理をすることにより、各ツール２０１〜２０ｎが使用するコマンド要求エリアおよびコマンド結果エリアが一意に定められ、かつ、予約（占有）が維持されている間、一意に定められた以外のツールにコマンド要求エリア及びコマンド結果エリアを使用されることがない。そのため、他のツール２０１〜２０ｎがコマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎを開放するまで待つ必要がなくなる。すなわち、複数のツール２０１〜２０ｎからのコマンド要求が重なった場合でも、高速にコマンド要求を処理することができる。
【００２３】
さらに従来方式においては、複数のツールからのコマンド要求が重なった場合、コマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎが開放されたかどうかを確認処理しながら待たなければならなかった。しかし、本実施の形態のネットワークユニットにおいては、各ツール２０１〜２０ｎが使用するコマンド要求エリア及びコマンド結果エリアが一意に定められ、かつ、予約（占有）が維持されている間、一意に定められた以外のツールにコマンド要求エリア及びコマンド結果エリアを使用されることがない。また、もしほかのツールが、誤って予約（占有）していないコマンド要求エリア及びコマンド結果エリアを使用した場合は、コマンド要求及びコマンド結果の一部に、予約（占有）テーブルエリアに格納されている各ツールに付けられた固有なコードを含ませることによって、コマンド要求を実行する際またはコマンド要求結果を確認する際に、ツール自身の固有なコードが含まれていることを確認することで、各ツールは、自身が要求したコマンドに対する結果であることを判断できる。このような処理を行うことにより、各ツールは、コマンド要求エリア及びコマンド結果エリアが開放されたかどうかを確認する必要がなくなる。また、予約（占有）テーブルエリアに格納されている各ツールに付けられた固有なコードを確認することにより、どのツールが使用中であるかを判別できる。さらに、コマンド要求及びコマンド結果の一部に、この固有なコードを含ませることによって、どのツールが誤って使用しているのかも判別できる。
【００２４】
なお、本実施の形態においては、上述のような動作を行うため、コマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎの数は、ツール２０１〜２０ｎの数と同じかそれ以上とする必要がある。さらに各々のツール２０１〜２０ｎが同時に複数のコマンド要求を発行するものであれば、コマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎの数は、この同時に発行できるコマンド要求の数とツール２０１〜２０ｎの数の乗数以上の数を確保すると、全ツールで処理を待たされることなく全コマンドを発行することができる。
【００２５】
また、本実施の形態のネットワークユニット３０１は、ツール２０１〜２０ｎから予約要求の発行が有った場合に、上述［００１６］と同じ方法で、予約テーブルエリア３１〜３ｎの予約（占有）状況を判断するが、コマンド要求エリア４１〜４ｎおよびコマンド結果エリア５１〜５ｎを検索するなどしても同様の判断を行うことができる。
【００２６】
さらに、本実施の形態においては、第１の接続系統６０がバス伝送路であるが、これに限定されるものではなく、イーサネット（登録商標）等を始めとする各種ネットワークであってもよい。また、第２の接続系統７０がイーサネット（登録商標）であるが、これに限定されるものではなく、例えばＲＳ−２３２ＣもしくはＲＳ４２２／４８５等の接続媒体であってもよい。
【００２７】
さらにまた、本実施の形態においては、共用メモリ３４０がネットワークユニット３０１に内部メモリとして形成されているが、これに限られるものではなく、ネットワークユニット３０１のバッファメモリや共有メモリに形成されてもよく、さらには、ネットワークユニット３０１から離れて外部に設けられてもよい。
【産業上の利用可能性】
【００２８】
ネットワーク接続された複数のノードに対して信号の入出力を行い、また、接続された複数のツールから発行されたコマンドをノードに対して実行するネットワークユニットに適用されて好適なものである。
【図面の簡単な説明】
【００２９】
【図１】この発明に係る実施の形態のネットワークユニットとその周辺機器の構成を示す模式図である。
【図２】この発明に係る実施の形態のネットワークユニットとそれに接続されたツールとの内部構成を示すと共にコマンド要求およびコマンド結果の流れを示すブロック図である。
【図３】ネットワークユニット共用メモリのメモリマップを示すとともにこれに関連するコマンド要求およびコマンド結果の動きを示すタイミングチャートである。
【図４】従来のネットワークユニットの共用メモリとコマンドの動きを示す模式図である。
【符号の説明】
【００３０】
２１  予約要求エリア
２２  予約結果エリア
３０  共用メモリ
３１〜３ｎ  予約テーブルエリア
４１〜４ｎ  コマンド要求エリア
５１〜５ｎ  コマンド結果エリア
６０  第１の接続系統
７０  第２の接続系統
１０１〜１０ｎ  ノード
２０１〜２０ｎ  ツール（アプリケーション）
２１０  送信処理部
２２０  受信処理部
２３０  コマンド処理部
３０１  ネットワークユニット
３１０  送信処理部
３２０  受信処理部
３３０  通信処理部
３４０  共用メモリ
【図１】
2007328436.tif 000003
【図２】
2007328436.tif 000004
【図３】
2007328436.tif 000005
【図４】
2007328436.tif 000006