(57)【特許請求の範囲】
【請求項１】
ネットワーク上の各ネットワーク局が複数の共有メモリを備え、該共有メモリに書き込んだデータが他のネットワーク局の共有メモリに転送されるネットワーク方式による、該共有メモリへのデータアクセス制御方法であって、
前記ネットワーク局の上位層側から前記共有メモリに送信データを格納する時、前記共有メモリへのバスの使用権獲得の為の調停を行い、前記バスの使用権を獲得すると前記複数の共有メモリ全てに前記送信データを格納し、前記複数の共有メモリ全てに前記送信データを格納した後、前記バスを開放することを特徴とするデータアクセス制御方法。
【請求項２】
ネットワーク上の各ネットワーク局が複数の共有メモリを備え、該共有メモリに書き込んだデータが他のネットワーク局の共有メモリに転送されるネットワーク方式による前記ネットワーク局であって、
前記共有メモリへのバスの使用権獲得の為の調停を行うバス調停手段と、
前記バスの使用権を獲得すると前記複数の共有メモリ全てに上位層から与えられた送信データを格納するデータ格納手段と、
前記複数の共有メモリ全てに送信データを格納した後、前記バスを開放するバス開放手段と
を備える事を特徴とするネットワーク局。
【請求項３】
前記データ格納手段は、
前記送信データを保持するデータバッファと、
前記複数の共有メモリの各先頭アドレスを保持し、前記バスの使用権を獲得すると該先頭アドレスをオフセット値としてアドレスを生成して、前記データバッファ内の送信データを前記複数の共有メモリ全てに格納するアドレス制御部と
を有することを特徴とする請求項２に記載のネットワーク局。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工場やプラント等でＦＡ／ＰＡ等に用いられる各機器をネットワークで接続し、ネットワークを用いて相互にデータを送受信するネットワークシステム及びその通信局となるコントローラや数値制御機器、ロボットコントローラ等に関する。
【０００２】
【従来の技術】
工場やプラント等で用いられているコントローラや数値制御機器をネットワーク局とするネットワークシステムの一般的な構成を図３に示す。
【０００３】
図３のシステムでは、バス型のトポロジーを持つネットワーク１００に、ファクトリーオートメーション用コントローラや数値制御機器、ロボットコントローラなどがネットワーク局として接続される構成を持つ。各ネットワーク局は共有メモリ１０２を備え、この共有メモリ１０２を介して他局との送受信データが管理される。
【０００４】
この共有メモリ１０２は、自局を含むネットワーク１００上の全ての局分の領域に分かれており、各領域がネットワーク１００上の各局と１対１に対応する構成となっている。そして共有メモリ１０２上の自局に対応する領域が送信領域となり、また他局に対応する領域がその局からのデータの受信領域となっている。送信データを共有メモリ１０２内の自局に対応する領域に格納すると、このデータを格納したフレームがネットワーク１００上に送出され、ネットワーク１００上の他の全ての局へブロードキャスト送信されて他局の共有メモリ１０２の自局に対応する領域に格納される。よって、自局からの他局へデータを送る時は送信データを共有メモリ１０２の自局に対応する領域に格納し、他局からの送信データを受け取る時はその局に対応する領域に格納されているデータを読み出す。
【０００５】
ネットワーク１００でのデータの送信はトークン１０１と呼ばれる特別なフレームを各局で巡回させて管理するトークンパッシング方式により行われている。トークンパッシング方式では、トークン１０１を保持している局のみがネットワーク１００へのデータの送信権を持ち、送信データが格納されたフレームをネットワーク１００上に流す。このフレームは、ネットワーク１００を巡回し、これを受信した受信局ではフレーム内のデータを受信して次の局へ送信する。そしてフレームが１順次して、送信局に戻ってくると、送信局はトークン１０１を次の局に渡す。
【０００６】
以下に各局によるデータの送受信方法を図３に対応させて説明する。
初期状態として局１がデータ送信を行う権利（トークン）を持つ時、局１は送信データとして共有メモリ１０２の局１に対応する領域に送信データを書き込み、自局一局分のデータを格納したフレームをネットワーク１００上の他の全ての局（局２〜局Ｎ）にブロードキャスト送信してトークン１０１をリリースする。これを受信した局２、３、・・Ｎはこのフレーム内の局１のデータを送受信バッファを介して共有メモリの局１に対応する領域へ格納する。この時、この局１からのフレームに次のフレーム送信局として指定してある局が次の送信局となる（この場合は局２とする）。
【０００７】
局２は、共有メモリ１０２の局２に対応する領域から自局の送信データを取り出し、これを格納したフレームを他の全ての局（局１、３〜Ｎ）宛てにブロードキャスト送信する。以下同様に、局２からのフレームを受信後、フレーム内で次回の送信局に指定された局は、自局の送信データを格納したフレームを送信する。そして全ての局が送信局となり、トークン１０１が１巡すると再び局１が送信局となり、上記処理が繰り返される。
【０００８】
図４は、各局内の伝送部分のハードウェア構成を示すブロック図である。
図４の構成では、各局は、ネットワーク１００による伝送を担う構成として、ネットワーク１００に対するドライバ／レシーバ２１０、送受信バッファ２２０、伝送制御部２３０、３組の共有メモリ２４０（２４０−１、２４０−２、２４０−３）、共有メモリアクセス制御部２５０及び上位層インタフェース２６０を備えている。
【０００９】
このうち送受信バッファ２２０は、共有メモリ２４０とネットワーク１００とのバッファとなるもので、データ受信時にはネットワーク１００から受信したデータが共有メモリ２４０に格納される前に一時保持され、エラー検出や受信フレームの種別解析等が行われる。またデータ送信時は共有メモリ２４０から読み出したデータがネットワーク１００に送出される前に保持される。また上位層インタフェース２６０は、アプリケーションプログラムやサービス等のネットワーク上位層とのインタフェースである。
【００１０】
各局は、上述した様な各ネットワーク局毎の領域を持つ共有メモリ２４０を３組備え、上位層側及び伝送側とこれら３組の共有メモリ２４０の接続を切り替えることにより、局内で稼動するアプリケーション等の上位層による処理と受信データとの間の整合性を確保する構成となっている。この３組の共有メモリ２４０の内の１つが上位層インタフェース２６０と接続されて上位層がアクセスを行うメモリとなり、もう１つが送受信バッファ２２０と接続されネットワーク１００から受信した受信データを格納するメモリとなり、残りの１つが空きメモリとなる。
【００１１】
共有メモリ２４０に１つの空きメモリを設けることにより上位層側の処理速度とネットワーク１００からのデータの受信速度との差を吸収することが出来、また最新の受信データが格納された共有メモリ２４０に上位層がアクセスするように切り替えを制御することにより、上位層は常に最新の受信データに対してアクセスを行える。
【００１２】
上位層側は、共有メモリ２４０と伝送側（送受信バッファ２２０）の接続を切り替える際、伝送制御部２３０に対して伝送側切り替え要求を行い、伝送制御部２３０からの応答として完了通知があると、共有メモリアクセス制御部２５０に対してアクセス領域の指定を行う。また上位層側は、自己と共有メモリ２４０の接続を切り替えるときは、共有メモリアクセス制御部２５０に対してアクセスする領域を指定することによって切り替える。
【００１３】
ネットワーク１００から次回送信局に自局が指定されているフレームを受信すると、これは上位層に通知される。これに対し上位層は、伝送制御部２３０に対して伝送側切り替え要求を行うと共に、伝送制御部２３０からの応答として完了通知があると、共有メモリアクセス制御部２５０に対して共有メモリ２４０の中で最新の送信データが格納されているものへの接続を指示する。また、ネットワーク１００から他局によるフレームを受信すると、上位層は共有メモリアクセス制御部２５０に対して送受信バッファ２２０と共有メモリ２４０の中で空きメモリとなっているものとの接続を指示する。
【００１４】
また、上位層側で生じた送信要求に対して、送信データを共有メモリ２４０に格納するが、その際、上位層側と送信側とで同時性を保つ為、３つの共有メモリ２４０−１〜２４０−３全てに対して、自己に対応する領域に同じ送信データを格納する必要がある。よって、送信データ毎に、３組の共有メモリ２４０−１〜２４０−３それぞれに対して、計３回のライトアクセスを行う。
【００１５】
図５に上位層側から共有メモリ２４０へ送信データを格納する際の、アクセス時間の内訳概要を示す。
上位層で他局へのデータの送信要求が生じると、上位層インタフェース２６０を介して、３組全ての共有メモリ２４０の自局の領域に送信データを格納する。上位層側から共有メモリ２４０に送信データを書き込むには、図５に示すようにまず共有メモリバスアクセス調停を行う。そしてバスの使用権を獲得すると共有メモリにアクセス制御を行って送信データを書き込む。この時、３つの共有メモリ２４０−１〜２４０−３に書き込まなければならないので、この共有メモリバスアクセス調停及び共有メモリアクセス制御の処理を同図に示すように３回繰り返すこととなる。
【００１６】
【発明が解決しようとする課題】
共有メモリ２４０へのアクセスに対しては、上位層側と伝送側の２つのバスマスタが存在することとなることから、共有メモリ２４０へのバスの使用権の調停が必要となる。よって上位層側が共有メモリアクセスにかかる時間はメモリアクセス時間にバス使用権の調停制御時間が加算される。
【００１７】
その為、上位層から共有メモリ２４０へ送信データを格納する際には同データのライトアクセスを共有メモリへ３回個別に行う必要があるが、図５に示したようにその都度バス使用権の調停制御を必要とし、上位層と共有メモリ２４０の間のバス転送性能が低下する要因になっている。
【００１８】
上記問題点を鑑み、本発明は、上位層側から共有メモリ２４０へ送信データを格納する際に共有メモリのバス使用権の調停制御時間を短縮させることで、バス転送性能を向上させると共にファームウェア処理の軽減したデータアクセス制御方法及びネットワーク局を提供することを課題とする。
【００１９】
【課題を解決するための手段】
本発明によるデータアクセス制御方法は、ネットワーク上の各ネットワーク局が複数の共有メモリを備え、該共有メモリに書き込んだデータが他のネットワーク局の共有メモリに転送されるネットワーク方式による、該共有メモリへのデータアクセス制御方法であって、上記ネットワーク局の上位層側から上記共有メモリに送信データを格納する時、前記共有メモリへのバスの使用権獲得の為の調停を行い、バスの使用権を獲得すると上記複数の共有メモリ全てに上記送信データを格納し、上記複数の共有メモリ全てに上記送信データを格納した後、上記バスを開放することを特徴とする。
【００２０】
また、本発明によるネットワーク局は、ネットワーク上の各ネットワーク局が複数の共有メモリを備え、該共有メモリに書き込んだデータが他のネットワーク局の共有メモリに転送されるネットワーク方式による上記ネットワーク局であって、上記共有メモリへのバスの使用権獲得の為の調停を行うバス調停手段と、上記バスの使用権を獲得すると上記複数の共有メモリ全てに上位層から与えられた送信データを格納するデータ格納手段と、上記複数の共有メモリ全てに送信データを格納した後、上記バスを開放するバス開放手段とを備える事を特徴とする。
【００２１】
本発明によれば、上位層から複数の共有メモリへの送信データの格納は、上位層から共有メモリへ格納要求（データの送信要求）が生じると、共有メモリへのバス調停を行い、バスの使用権が得られると、全ての共有メモリへ連続して送信データを格納し、全ての共有メモリへの格納が終了するとバスを開放する。
【００２２】
従って、各共有メモリ毎に要したバス使用権の獲得の為の調停時間分処理を短縮することができる。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
尚以下の説明では、図３のように、各局はバス型のトポロジーのネットワークを例にして説明しているが、本発明はネットワークのトポロジーには依存しないので、リング型やスター型等他のトポロジーを持つネットワークについても同様に適用される。
【００２４】
図１は本実施形態における各局内の伝送部分のハードウェア構成を示すブロック図である。
図１の構成では、ネットワーク１００による伝送を担う構成として、ネットワーク１００に対するドライバ／レシーバ１０、送受信バッファ２０、伝送制御部３０、共有メモリ４０、共有メモリアクセス制御部５０及びアプリケーションプログラムやサービス等のネットワーク上位層とのインタフェースとなる上位層インタフェース６０を備えている。
【００２５】
また受信データと、局内で稼動するアプリケーション等の上位層側の処理とでデータの整合性を確保するため、共有メモリ４０は３組の共有メモリ４０−１〜４０−３を切り替えて用いる構成とし、これらの中の１つが上位層インタフェース７０と接続され上位層がアクセスを行うメモリとなり、もう１つが送受信バッファ２０と接続されネットワーク１００から受信した受信データを格納するメモリとなり、残りの１つが空きメモリとなる。そして上位層からの要求に基づいてこの３組の共有メモリ４０−１〜４０−３と伝送側（送受信バッファ２０）及び上位層側（上位層インタフェース７０）との接続を切り替えることにより上位層の処理速度とネットワーク１００からの受信速度との差を吸収し、上位層が常に最新のデータに対してアクセス出来るようにしている。
【００２６】
尚以下の説明では、３組の共有メモリ４０は、論理的には同一アドレス空間上に設けてオフセット値によって切り替える構成としているが、それぞれ別のアドレス空間上に設けバンク切り替えによって切り替える構成としても良い。また物理的には同じメモリ上に構成しても、それぞれ別に構成しても良い。また各局は３組の共有メモリを備える構成としているが、本発明はこれに限定されるものではなく、複数の共有メモリを備える構成であれば適用することができる。
【００２７】
送受信バッファ２０は、基本的に図４の送受信バッファ３２０と同様の構成を持ち、データ受信時にはネットワーク１００から受信したデータが共有メモリ２４０に格納される前に一時保持され、エラー検出や受信フレームの種別解析等が行われる。またデータ送信時は共有メモリ２４０から読み出したデータがネットワーク１００に送出される前に保持されるものである。送受信バッファ２０は内部が共有メモリ４０と同様自局を含むネットワーク１００上の全ての局と１対１対応させた領域に分かれており、ネットワーク１００から受信した他局からの送信データ２４０は送信元局に対応する領域に上書きされて格納されてゆく。
【００２８】
伝送制御部３０は伝送側の制御を行うもので、共有メモリ４０及び送受信バッファ２０を介してのネットワーク１００とのデータの送受信を行うため、共有メモリ４０と送受信バッファ２０の間のデータ転送の管理制御を行う。
【００２９】
共有メモリアクセス制御部５０は、上位層側からの指示に基いて共有メモリ４０と上位層側及び伝送側との接続切替を行うもので、データバッファ５１及びアドレス制御部５２を備える。
【００３０】
データバッファ５１は、共有メモリ４０と上位層側及び伝送側がやり取りするデータを一次保持するバッファで、伝送側若しくは上位層側がバス使用権を獲得すると、アドレス制御部５２の指示に基づいて伝送側若しくは上位層側によってデータバッファ５１に格納されたデータが共有メモリ４０へデータ転送される。アドレス制御部５２は、共有メモリ４０へのアクセスを管理するもので、上位層インタフェースを介して上位層側から共有メモリ４０にアクセス要求があると、共有メモリ４０に対して対応するアドレスを生成し、データバッファ５１と共有メモリ４０との間のデータのやり取り及びデータバッファ５１と伝送側及び上位層側とのデータのやり取りを制御する。
【００３１】
このアドレス制御部５２には、３組の共有メモリ４０−１〜４０−３それぞれの先頭アドレスがオフセット値として設定されており、上位層側及び伝送側と各共有メモリ４０−１〜４０−３との接続切替は、このオフセット値を切り替えることによって行う。例えば、上位層側が共有メモリ４０−１と接続されているときは、共有メモリ４０−１の先頭アドレスが上位層側がアクセスする位置のオフセット値としてセットされており、上位層が共有メモリアクセス制御部５０に対して領域指定を相対アドレスで行なうと、アドレス制御部５２はこの相対アドレスにオフセット値を加えて実アドレスを生成して、データを読み出す。同様に伝送側と共有メモリ４０−２が接続されている時は、共有メモリ４０−２の先頭アドレスが伝送側に接続されている共有メモリ４０のオフセット値としてセットされており、このオフセット値に相対アドレスを付加してアクセスする領域が指定される。
【００３２】
またデータ送信を行う場合には、上位層側が、共有メモリアクセス制御部５０に対して、一度自己に対応する領域を相対アドレスによって領域を指定して送信データを格納すれば、アドレス制御部５２がバスの使用権を得るとオフセット値を換えながら３組の共有メモリ４０−１〜４０−３全てに同一のデータを書き込む。よってこの時バスのアクセス調停は一度行えばよい。従ってその分共有メモリ４０のアクセスに要するファームウェアの処理が軽減され、またその分アクセスに要する時間も短くなる。また上位層側は、共有メモリアクセス制御部５０に一度送信データを格納すれば共有メモリ４０への書き込み処理から開放されるので、上位層側の負荷は軽減される。
【００３３】
上位層でデータ送信要求が発生すると、上位層は、上位層インタフェース６０を介して、共有メモリ４０の書き換え要求として共有メモリアクセス制御部５０に対して相対アドレスによる領域指定を行い、また送信データをデータバッファ５１に格納する。アドレス制御部５２は、共有メモリ４０のバスのアクセス調停を行い、バス使用権を得ると、ハードウェアによって、共有メモリ４０−１の先頭アドレスをオフセット値としてこれに領域指定として与えられた相対アドレスを加えてアドレスを生成して、対応する共有メモリ４０の位置にデータバッファ５１内の送信データを書き込む。共有メモリ４０−１へのデータの書き込みが終了すると、次にアドレス制御部５２は、オフセット値を共有メモリ４０−２の先頭アドレスに替えて、対応する共有メモリ４０の位置にデータバッファ５１内の送信データを書き込み、更にオフセット値を共有メモリ４０−３の先頭アドレスに切り替えて、対応する共有メモリ４０の位置にデータバッファ５１内の送信データを書き込み、共有メモリ４０−２及び共有メモリ４０−３への送信データの書き込みを行う。
【００３４】
このように、本実施形態では、一度のバス調停によってバス使用権を確保すると、３回連続してライトサイクルを実行し、共有メモリ４０−１〜４０−３全てに対して送信データを書き込むことができる。これにより、１つのデータに対して、これまで各共有メモリ毎に、計３回のバスアクセス調停が必要だったのが、１度バス調停すれば３組の共有メモリ全てにデータを書き込むことができるので、その分バス転送性能を向上させることが出来ると共にファームウェア処理を軽減することができる。
【００３５】
図２に上位層側から共有メモリ４０へ送信データを格納する際の、アクセス時間の内訳概要を示す。
同図に示すように、上位層側から共有メモリ４０へのデータの書き込みは、まず最初にバスアクセスの調停が行われ、以降共有メモリ４０−１〜４０−３全てにデータの転送が完了するまでバスを開放せずにデータを書き込む。
この時共有メモリアクセス制御部５０は、メモリに対してオフセットの変更によりアドレスを順次生成する。従って、図５に示した方式に比して、２度のバスアクセスの調停に要する時間の分だけデータの書き込み処理に要する時間を短くすることができる。従って、その分バスの転送性能を向上させることができる。
【００３６】
【発明の効果】
本発明によれば、上位層側から共有メモリへ送信データを格納する際に共有メモリバス使用権の調停制御時間を短縮させることが出来、バス転送性能を向上させると共にファームウェア処理の軽減ができる。
【図面の簡単な説明】
【図１】本実施形態における各ネットワーク局内の伝送部分のハードウェア構成を示すブロック図である。
【図２】  本実施形態における上位層側から共有メモリへ送信データを格納する際の、アクセス時間の内訳概要を示す図である。
【図３】ネットワークシステムの一般的な構成を示す図である。
【図４】従来の各ネットワーク局内の伝送部分のハードウェア構成を示すブロック図である。
【図５】  従来の上位層側から共有メモリへ送信データを格納する際の、アクセス時間の内訳概要を示す図である。
【符号の説明】
１０、２１０  ドライバ／レシーバ
２０、２２０  送受信バッファ
３０、２３０  伝送制御部
４０、１０２、２４０  共有メモリ
５０、２５０  共有メモリアクセス制御部
５１  データバッファ
５２  アドレス制御部
６０、２６０  上位層インタフェース
１００  ネットワーク
１０１  トークン
【図１】
0003829688.tif 000002
【図２】
0003829688.tif 000003
【図３】
0003829688.tif 000004
【図４】
0003829688.tif 000005
【図５】
0003829688.tif 000006