説明

ネットワークシステム、そのノード

【課題】 排他を行わない共有メモリ使用方法を提供する。
【解決手段】 インタフェースメモリ12において、ネットワークコントロール部11がデータ書込みし、ホストマイコンがデータ読出す記憶領域である共有データバンク領域21を2データバンク構成とし、バンク管理情報22により管理する。バンク管理情報22は、ネットワークに接続された各局毎に1bit割り当てられ、bit0の場合はデータバンクAがホスト向け、bit1の場合はデータバンクBがホスト向けであることを意味し、ネットワークコントロール部11はホスト向けではないデータバンクにデータを書き込み、ホストマイコン13はホスト向けのデータバンクからデータを読み出す。送信データバンク領域についても略同様である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに複数のノードが接続されて成るネットワークシステムに関する。
【背景技術】
【0002】
従来より、何等かのネットワークに複数のノード(局)が接続しており、ノード間でデータの送受信を行うネットワークシステムが知られている。例えば、プログラマブルコントローラ等の産業用制御機器が、ネットワークに複数接続されるネットワークシステムが存在する。この様なネットワークシステムでは、ネットワークと産業用制御機器のマイコンとの間でデータを受け渡す為の共有メモリが存在しており、一般的にはデュアル・ポートメモリが使われている。すなわち、上記ノードは、例えば、ネットワークに直に接続するネットワークコントロール部と、上記マイコンと、これらの間に設けられたデュアル・ポートメモリとから成っている。
【0003】
デュアル・ポートメモリは、2つの入出力ポートを有し、一方の入出力ポートからデータを書き込みながら、他方の入出力ポートからデータを読み出す処理を、同時に並行して実行することが可能であり、また、両入出力ポートから同時にデータを読み出すことも可能である。この為、両入出力ポートから同時に同じ記憶領域にアクセスすることも可能となる為、アクセス排他を行う必要があるが、デュアル・ポートメモリは、一般的に、ワード単位のアクセス排他は取ってくれるが、複数ワードで構成されるデータブロックのアクセス排他は取ってくれない。
【0004】
しかしながら、ネットワークを介してノード間で送受信する情報としては、文字列やバーコード、時刻データ等、複数ワードで1つの意味を持っていることが多い。これより、従来では、例えば図14(a)に示すように調停回路を設けた構成により、例えばマイコンAが、デュアル・ポートメモリにアクセスしている間は、LOCK信号を調停回路に送ることで、調停回路はマイコンBに対してWAIT信号を送り、マイコンBによるデュアル・ポートメモリへのアクセスを禁止することによって、複数回に渡る書き込み動作途中に他のマイコンによってデータ読出しが行われないように、排他をとっていた。この様な従来技術は、例えば特許文献1に開示されている。
【0005】
また、デュアル・ポートメモリではないが、アクセス排他に関して、例えば図14(b)に示すように、シングルポートメモリに関してHOLD/HLDA信号で排他をとることが知られている。
【特許文献1】特開平5−324577号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記従来技術による排他では以下の課題がある。
LOCK信号やHOLD/HLDA信号による排他では、一方のマイコンがデータ更新のための書込み中に、他方のマイコンが共有メモリ(デュアルポートメモリ等)へのアクセスを行うと、WAIT状態になってしまい、他に走らせたい処理があっても実行できない。
【0007】
また、部品コストの制約から、同一のデュアルポートメモリ上に、ネットワークデータとは関係のない(排他の必要のない)データを配置する場合があり、このデータに対してアクセスをした時たまたま、共有メモリ更新途中あるいは読み出し途中のタイミングと重なった場合には、このアクセスも禁止され、待たされてしまう。
【0008】
また、ネットワークに接続している各機器は、共有メモリの占有領域を多くとりたい機器もあれば、その逆に少なくてもよい機器もある。その一方で、ネットワークに持たせる共有メモリ全サイズは、コスト制約、性能制約によって有限である。もし1局あたりの占有データサイズを、最大データサイズの機器に一律であわせてしまうと無駄である。そのため局ごとに占有ワード数を決めることができれば効率的である。但し、データの一義性を保ったままデータを伝達することが必要とされる。
【0009】
本発明の課題は、複数のノードがネットワークに接続され、各ノードは、ネットワークに接続して他ノードとの間でデータ送受信するコントロール部と、制御部と、該コントロール部と制御部との間に設けられ両者と接続する共有メモリとを有する構成において、排他を行うことなく、コントロール部、制御部とも、任意のときに共有メモリにアクセスして、複数ワードで構成されるデータをリード/ライトでき、あるいは更に共有メモリの占有領域を各局毎に自由に設定でき且つデータの一義性を保ったままデータを伝達できるネットワークシステム、そのノード等を提供することである。
【課題を解決するための手段】
【0010】
本発明のネットワークシステムは、複数のノードがネットワークに接続されたネットワークシステムにおいて、前記各ノードは、前記ネットワークに接続して他ノードとの間でデータ送受信するネットワークコントロール手段と、制御手段と、該ネットワークコントロール部と制御手段との間に設けられ両者と接続する記憶手段とを有し、前記各ノードは複数ワードより成るブロック単位で相互にデータ交換し、前記記憶手段は各々ブロック単位でデータ格納する2つのデータバンクを有し、前記ネットワークコントロール手段は、該2つのデータバンクを交互に切替えながら前記他ノードから収集したデータを該2つのデータバンクの何れか一方に格納し、前記制御手段は他方のデータバンクからデータを読み出すように構成する。
【0011】
上記構成のネットワークシステムは、ネットワークコントロール手段によって一方のデータバンクにアクセス中であっても、制御手段は他方のデータバンクにアクセスするので、排他を行う必要なく、両者は何時でも両者が共有する記憶手段にアクセスできる。
【0012】
但し、前記制御手段が前記データバンクからデータを読み出すのに掛かる時間を、少なくとも前記ネットワーク全体のデータ更新周期から前記ネットワークコントロール手段が1ノード分のデータ更新に要する時間を差し引いた時間より短くさせるようにする。これによって、例えば、制御手段が他方のデータバンクにアクセスしてデータ読出し中にネットワークコントロール手段が同一データバンクにアクセスしてデータ更新してしまう様な事態は生じない。
【0013】
上記のようにネットワークコントロール手段と制御手段とが互いに異なるデータバンクにアクセスする様にする手法として、例えば、前記記憶手段は、前記2つのデータバンクのどちらが制御手段向けであるかを示すバンク管理情報を保持し、前記ネットワークコントロール手段は、該バンク管理情報を参照して、制御手段向けではないデータバンクにデータを格納すると共に、データ格納完了したら該バンク管理情報を切替え、前記制御手段は、該バンク管理情報を参照して、制御手段向けであるデータバンクからデータを読み出すようにする。
【0014】
また、例えば更に、前記各ノードは複数ブロック分のデータ交換を行うこともでき、前記データバンクには各ノード毎に1又は複数ブロック分の記憶領域が割り当てられ、前記記憶手段は、該各ノード毎に割り当てられた記憶領域の先頭ブロック位置とブロック数を示す情報である構成情報を保持し、前記ネットワークコントロール手段又は制御手段は、前記データバンクへのデータ格納又は前記データバンクからのデータ読出しの際に、該構成情報を参照するように構成してもよい。
【0015】
また、本発明は、上記ネットワークシステムに限らず、上記ネットワークシステムを構成する各ノード自体として構成してもよいし、各ノードに上記機能を実現させる為のプログラム自体、該プログラムを記録した記録媒体自体として構成してもよい。
【発明の効果】
【0016】
本発明のネットワークシステム、そのノード等によれば、複数のノードがネットワークに接続され、各ノードは、ネットワークに接続して他ノードとの間でデータ送受信するコントロール部と、制御部と、該コントロール部と制御部との間に設けられ両者と接続する共有メモリとを有する構成において、共有メモリのデータバンクを2つにし、両データバンクを交互に切替えて使用すると共に、上記コントロール部と制御部は互いに異なるデータバンクにアクセスすることで(但し所定の条件を満たすものとする)、排他を行うことなく、コントロール部、制御部とも、任意のときに共有メモリにアクセスして、複数ワードで構成されるデータをリード/ライトできる。あるいは更に共有メモリの占有領域を各局毎に自由に設定でき且つデータの一義性を保ったままデータを伝達できる。
【発明を実施するための最良の形態】
【0017】
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本例のネットワークシステムの全体図である。
図示のネットワークシステムは、複数のノード(局;この例では局0〜局63)が、ネットワークに接続されており、ネットワークを介して任意のノード間でデータ送受信を行える。このネットワークシステムは、各局が、自局のデータを仮想的な1枚のメモリ上に送り出し、全ての局がこの1枚のメモリを読むことができる。
【0018】
各局の構成を図2に示す。各局10は、ネットワークコントロール部11、インタフェースメモリ12、ホストマイコン13を有する。ホストマイコン13は、例えば上記制御機器本体(制御部)である。
【0019】
インタフェースメモリ12は、ネットワークコントロール部11とホストマイコン13とが共有する共有メモリであり、例えばデュアルポートメモリである。デュアルポートメモリの一方の入出力ポートにネットワークコントロール部11が接続され、他方の入出力ポートにホストマイコン13が接続される。但し、ここでは、インタフェースメモリ12は、ネットワークコントロール部11とホストマイコン13との間でデータを受け渡しする為に、一時的にデータを格納する為に使用される。
【0020】
ネットワークコントロール部11は、ネットワークに接続している他の各局から、その局に係わる何等かのデータ(例えば、本システムがプログラマブルコントローラ等の産業用制御機器が、ネットワークに複数接続されるネットワークシステムである場合、各機器の状態を示すデータ(温度、圧力、回転数等)や、各機器に指示を与える為のデータ等)を収集して、この収集データをインタフェースメモリ12を介してホストマイコン13に渡す。一方、ホストマイコン13は、自局のデータを他局に渡したい場合には、このデータをインタフェースメモリ12を介してネットワークコントロール部11に渡すことで、ネットワークコントロール部11がネットワークを介して他局にデータを渡すように構成されている。
【0021】
インタフェースメモリ12には、他の各局のデータを格納する記憶領域が各局毎に割り当てられており、ネットワークコントロール部11は、任意の他局のデータ収集する毎に、当該他局に割り当てられている記憶領域に収集データを上書きする。
【0022】
上記構成のネットワークシステムの各局では、ネットワークコントロール部11、ホストマイコン13は、互いに、相手側がインタフェースメモリ12にアクセス中であるか否かは関係なく、任意のときにインタフェースメモリ12にアクセスすることができる。勿論、同時に同じ記憶領域にアクセスしてしまうことは無い。この特徴については、後に詳細に説明する。
【0023】
上記構成のネットワークシステムの仕様の一例を以下に示す。以下、この例に応じて説明するが、勿論これは一例であり、本発明がこの例に限定されることはない。
・接続局数:最大64台
・共有メモリの大きさは最大384byte
・データはブロック単位(1ブロック=6byte)で送受信される(1ワード=2byteである)。
【0024】
・上記他局の各局毎に割り当てられる記憶領域は、実施例1では全ての局が1ブロックずつ占有し、実施例2では1又は複数ブロック占有可能とし、1局で最大16ブロック(すなわち96byte)占有することができる。
【0025】
・ネットワーク上の全ての局のデータが更新されるのに要する時間、すなわちネットワークシステム全体のデータ更新周期(スキャンタイム)は、数十(msec)である。
・ホストマイコンが、共有メモリからバンク管理情報を読み出してから、バンクを特定してデータを読み出すまでに掛かる時間は、最大でも数百(μsec)程度であり、スキャンタイムに比べて非常に短い。
【0026】
以下、まず、実施例1について説明する。
図3に、実施例1におけるインタフェースメモリ12におけるインタフェースメモリ領域の構成を示す。
【0027】
図示のインタフェースメモリ領域20は、共有データバンク領域21、バンク管理情報22、送信データバンク領域23、送信バンク管理情報24より成る。
共有データバンク領域21は、ネットワークコントロール部11がホストマイコン13側に伝達したいデータを一時的に格納するための記憶領域である。つまり、他の各局の送信データバンク領域23から収集したデータを、ホストマイコン13側に伝達する為に一時的に格納する記憶領域である。この共有データバンク領域21は、共有データバンクA、共有データバンクBの2つのデータバンクで構成され、それぞれのデータバンクはネットワークに接続される各局のデータを格納する記憶領域として、本例では各局1ブロックずつの計64ブロック分の記憶領域を有している(64は一例であり、これに限定されない)。よって、共有データバンク領域21は、2×64ブロック=768byteの記憶容量を有する。
【0028】
ここで、図4に、ネットワークの共有メモリイメージの基本を示す。
図示のように、各局は、自局のインタフェースメモリ12の共有データバンク領域21において、他の局に1ブロックずつ記憶領域を割り当てている。これは、逆に言えば、各局は、それぞれ、自局のデータを多局に渡す為の記憶領域を、他の各局に1ブロックずつ有している。各局は、自局のデータを6byteのデータブロック単位でネットワークに送出している。ここでは、6byteの塊で意味のあるデータであり、一義性を保ったまま通信先の局のホストマイコン13にデータ内容を伝える為、1ブロック単位でデータ送受信/記憶を行っている。
【0029】
但し、図4に示すものは一般的な基本例であり、本例の各局では、図4の例に対応させた場合、他の各局に2ブロックずつ記憶領域を割り当てている。すなわち、1つの局当たり、上記データバンクAに1ブロック、データバンクBに1ブロックの計2ブロックを割り当てている。よって、図1に示すネットワークシステムでは、データバンクAとBはそれぞれ64ブロック(384byte)の記憶領域を有する(但し、自局用の記憶領域は使用しない)。そして、この共有データバンクA、Bを交互に切替えて使用する。
【0030】
また、上記バンク管理情報22は、現在ホストマイコン13がアクセス(データ読出し)可能な領域(以下“ホスト向け”と表現する)が、データバンクA、データバンクBのどちらであるかを示す情報である。ここでは、全64局の個々に対応して1bitずつあるものとし(64bit)、各bitが0の時はデータバンクAがホスト向けであり、1の時はデータバンクBがホスト向けであることを示す。バンク管理情報22の更新(切替え;0→1又は1→0)は、ネットワークコントロール部11が行う。ホストマイコン13は、バンク管理情報22を参照して、現在“ホスト向け”となっているデータバンクからデータを読み出す。一方、ネットワークコントロール部11も、バンク管理情報22を参照して、現在“ホスト向け”ではないデータバンクにデータを書き込む。
【0031】
尚、上記説明ではバンク管理情報22は64bitあるものとしたが、1byteに1bit配置する構成としてもよく、この場合はバンク管理情報は64byteあることになる。1byteに1bit配置する構成とした場合、使用するbitが決まっていれば、更新処理の効率が上がる(各局に1bit割り当てた構成の場合、通常、8bit単位でデータ参照して更に該当するbitを探すので)。
【0032】
また、上記送信データバンク領域23は、ホストマイコン13がネットワークコントロール部11に対して自局の送信データを渡すための領域である。ネットワークコントロール部11は、任意の他局から自局のデータを要求されたときに、送信データバンク領域23に格納されたデータを渡すことになる。つまり、送信データバンク領域23は、ホストマイコン13からネットワークに対して送出したいデータを一時的に格納する領域であるともいえる。送信データバンク領域23も、共有データバンク領域21と同様、送信データバンクC、送信データバンクDの2バンク構成である。また、同様に、ネットワークコントロール部11が現在アクセス(データ読出し)可能な領域(以下“コントロール部向け”と表現する)が、データバンクC、データバンクDのどちらであるかを示す情報が、送信バンク管理情報24である。送信バンク管理情報24は、1bitだけ存在し、このbitが0のときにはデータバンクC、1のときにはデータバンクDが、コントローラ部向けであることを示す。送信バンク管理情報24は、ホストマイコン13が更新し、ネットワークコントロール部11がデータ読出しの際に参照して、“コントロール部向け”のデータバンクからデータを読み出す。尚、データバンクC、データバンクDは、各々、1ブロック(6byte)の記憶領域を有する。
【0033】
以上説明したインタフェースメモリ12を用いて、ネットワークコントロール部11は、図5に示す処理を実行する。
ネットワークコントロール部11は、定周期でデータ収集処理を実行している。つまり、ネットワーク上で他の局のデータを収集する処理を実行しており、任意の1局分のデータ(すなわち1ブロック=6byte分のデータ)が揃ったところで、この収集データを共有データバンク領域21へコピーするために、データ更新処理を呼出す(ステップS11)。
【0034】
呼出されたデータ更新処理は、まず、データ収集した局に対応する(更新しようとするブロックに対応する)バンク管理情報22を参照することで、“ホスト向け”バンクがデータバンクA,Bのどちらであるかを認識し(ステップS12)、“ホスト向け”バンクではないデータバンクに、収集したデータを書き込む(ステップS13)。そして、書き込み完了したら、バンク管理情報22を更新する(ステップS14)。例えば仮に、バンク管理情報22においてデータ収集した局に対応するbitが0であった場合、データバンクBに書き込む。そして、データ書き込み完了したら、bitを1に変える。
【0035】
ネットワークコントロール部11は、任意の局についてデータ収集する毎に、上記図5の処理を実行する。
図6は、共有データの更新、読み出しが行われる様子を示したタイムチャートであり、ネットワークコントロール部11側が、1局ずつ(1ブロックずつ)、 “ホスト向け”バンクではないデータバンクへデータをコピーし、続いてバンク管理情報を書き換える処理を繰返し実行していくことで、共有メモリ全領域を更新する様子を示している。一巡した後は、再度先頭ブロックのデータ更新をする。以後同様の処理を繰り返す。
【0036】
この様にして、例えば局0から局63まで(但し自局は除く)順次データを収集して共有データバンク領域の格納データを更新していく。そして、最後の局63までデータ更新をした後、再度先頭の局0から順次データ更新を行うが、今度は、先ほどとは異なるバンク(先ほどがバンクBだったので、今度はバンクA)にデータを書き込んでいく。尚、これは一例であり、局0から順番にデータ更新を行わなくてもよいし、“ホスト向け”バンクが全局で揃って同じで無くても良い(例えばあるときに局0がデータバンクA、局1はデータバンクB、局CはデータバンクA等)。但し、ここでは、上記一例を用いて説明する。
【0037】
図6に示すように、ネットワークコントロール部11側は、所定周期毎(上記“スキャンタイム”)に全局分のデータ更新をする。
一方、ホストマイコン13は、図示していないが、まず、読み出したい任意の他局に対応するバンク管理情報22を参照し、A、Bどちらのデータバンクがホスト向きになっているかを調べて、ホスト向けのデータバンクからデータを読み出す。データを読み出すタイミングは任意でよいが、バンク管理情報を読んでからデータを読み出しきるまでの時間は、所定時間内となるようにする。
【0038】
この所定時間内とは、例えば、上記スキャンタイムからネットワークコントロール部11側が1局分のデータ更新に要する時間分差し引いただけの時間内とする。つまり、1スキャンタイム当たり、最低、1局分のデータを読み出す時間が確保できればよい。勿論、これは最低限の条件を規定しているだけであり、1スキャンタイム当たり、複数の他局のデータをデータバンクから読み出せるように構成できることは言うまでもない。よって、上記任意の他局のデータ読み出し終わったら、同一スキャンタイム内に別の他局について、同様にして、バンク管理情報22を参照して、ホスト向けのバンクからデータを読み出すようにしてもよい。勿論、1スキャンタイム内に先頭の局0から順に最後の局63まで全ての局のデータを読み出すことができるように構成してもよい。
【0039】
上記のように1スキャンタイム内に全ての局のデータを読み出すようにしてなくてもよい(最低、1局分読み出せればよい)のは、本例のネットワークシステムは、例えば制御システムであり、例えば各機器の状態データ(温度、圧力、回転数等)を収集して表示する構成の場合、スキャンタイムの周期(数十msec)でデータ更新して表示させてもあまり意味がないし(そこまで頻繁に状態データが変化することは通常ありえない)、また仮にデータが頻繁に変化する機器がある場合でも数十msec毎に表示データが変化したら作業員等が視認しきれないからである。よって、仮に1スキャンタイム当たり1局分のデータのみ読み出すようにし、64スキャンタイム掛けて全局のデータを読み出すようにしても、全局分のデータ更新周期は「64×数十msec」であり、上記の様な制御システムの使用上、特に問題にはならない。尚、その意味で、ネットワークコントロール部11によるデータ更新も、上記一例のように1スキャンタイム内に全ての局のデータを更新する必要性は、必ずしもない。
【0040】
また、自局のデータを他局に渡したい場合には、ホストマイコン13側は、任意のときに、まず、送信バンク管理情報24を参照して、送信データバンクC,Dのどちらが現在“コントロール部向け”となっているかを認識して、“コントロール部向け”ではないバンクに、データを書き込む。データ書き込み完了したら、送信バンク管理情報24を切替える(0→1又は1→0)。ネットワークコントロール部11は、ネットワーク上の任意の他局から自局のデータ読出し要求がある毎に、送信バンク管理情報24を参照して、“コントロール部向け”のデータバンクからデータを読み出す。
【0041】
次に、以下、実施例2について説明する。
上述した実施例1では、共通データバンク領域において各局に割り当てられる記憶容量は同じ(1ブロックずつ)であったが、各局毎に自局が送信したいデータの容量が各々異なる場合は、当然想定される。これより、実施例2では、共通データバンク領域において各局毎にその局が必要とする分だけ記憶容量が割り当てられるようにする。
【0042】
図7は、実施例2におけるインタフェースメモリ12におけるインタフェースメモリ領域の構成を示す。
図示のインタフェースメモリ領域30は、共有データバンク領域31、構成情報32、バンク管理情報33、送信データバンク領域34、送信バンク管理情報35より成る。
【0043】
共有データバンク領域31は、共有データバンク領域21と同じであり、データバンクA、データバンクBの2バンク構成であり、1データバンク当たり64ブロック(1ブロック=6byte)の記憶容量を有する。つまり、ここでは、共有データ記憶に利用できる記憶容量は一定である(コスト制約、性能制約によって有限である)システムを前提として説明する。よって、上記のように2ブロック以上使用可能とする為、ネットワークに接続可能な局数は、64局より少なくなる。勿論、これは一例であり、共有データバンク領域の記憶領域を増やすことで対応することもできるが、ここではこのシステムを例にして説明する。尚、記憶領域は、ブロック単位で割り当てるものとする。また尚、各局に割り当てる記憶領域は、無制限ではなく、上限があり、ここでは1局当たり16ブロック(16×6=96byte)を上限とするものとする。
【0044】
構成情報32は、各局毎に、その局に何ブロックの記憶領域を割り当てているか(何ブロック占有するか)を示す情報である。構成情報32の一例を図8に示す。図示の通り、構成情報は、共有データバンク領域31の各ブロックに対応付けて設けられており、複数ブロック占有する局に関しては、当該複数ブロックの先頭ブロックに対応する構成情報のみを記述し、残りは仮に‘00’を格納するものとし参照も更新もしないものとする。図示の構成情報の‘04’は0局がそのブロックを先頭に4ブロック占有することを意味する。同様に‘42’は4局が2ブロック占有し、‘61’は6局が1ブロック占有することを意味する。尚、この構成情報32は、ネットワークのイニシャル時に、ネットワークに接続されている全局が相互に自局の送信ブロック数情報を交換することで生成される。
【0045】
尚、本例では上記の通り、複数ブロック占有する局が存在する場合には、その分、ネットワークに接続可能な局数を減らす必要がある為、ここでは分かり易くする為に、複数ブロック占有する局がある毎に、その分の局番を欠番として扱う(局番を飛ばして割り付ける)。これより、図8に示す例では、0局は4ブロック占有しているので、1〜3局は欠番となる為、次の局は4局となっている。同様に4局は2ブロック占有するので、次の局は6局となっている。
【0046】
上記図8に示す構成情報例に応じたネットワークの共有メモリイメージを図9に示す。
この例においては、局0は4ブロック(=24byte)、局4は2ブロック(=12byte)、局6は1ブロック(=6byte)のデータをネットワーク上に送出している。この例のように、1つの局がたくさんのデータを送りだすべく複数ブロックを占有して、ネットワーク上の通信相手に複数ブロック分のデータを送信する場合、このデータは複数ブロック分で1つの意味を成すのであるから、データの一義性が保たれたまま伝達する必要がある。これについては後に説明する。
【0047】
再び図7の説明に戻る。
バンク管理情報33は、実施例1のバンク管理情報22と基本的には同じ構成であるが、複数ブロックを占有する局の場合は、その先頭ブロックに対応する情報bitのみを使用するものとし、それ以外のbitは変化しないし、ホストマイコン13側も参照しない。
【0048】
送信データバンク領域34も、基本的には実施例1の送信データバンク領域23と略同様であるが、実施例2では最大16ブロック(=96byte)まで占有可能であることに対応させて、その記憶領域を16ブロック×2バンクに拡張している点が異なる。また、送信バンク管理情報35は、送信バンク管理情報24と同じであるが、ホストマイコン13は、複数ブロック送信したい場合は、全てのブロックデータを送信データバンク領域34に書き込み完了してから、送信バンク管理情報35を更新(0→1又は1→0)する。
【0049】
以上説明したインタフェースメモリ12を用いて、ネットワークコントロール部11は、図10に示す処理を実行する。
ネットワークコントロール部11は、定周期でデータ収集処理を実行している。つまり、ネットワーク上で他の局のデータを収集する処理を実行しており、任意の1局分のデータ(構成情報にあるように局によって規定されており、1ブロックだけだったり、複数ブロックだったりする)を収集する際には、まず構成情報32を参照して、その局の送信データ容量(ブロック数)を認識する(また、先頭ブロック位置も認識し、この位置にライトポインタを移動させておく)。そして、全ブロック分のデータを収集できたら、この収集データを共有データバンク領域31へコピーするために、データ更新処理を呼出す(コールする)(ステップS21)。
【0050】
呼出されたデータ更新処理は、まず、データ収集した局に対応する(上記先頭ブロックに対応する)バンク管理情報22を参照することで、“ホスト向け”バンクがデータバンクA,Bのどちらであるかを認識し(ステップS22)、“ホスト向け”バンクではないデータバンクに、収集したデータをブロック単位で順次書き込む(ステップS23〜S26)。すなわち、収集したデータが複数ブロックより成る場合には、まずその先頭ブロックデータを、共有データバンク領域31のA、Bどちらかのデータバンクの上記先頭ブロック位置(ライトポインタ位置)に書き込む(ステップS23)。そして、書き込んだブロックが、データ収集した局が占有する複数ブロックの最後のブロックではない場合には(ステップS24,NO)、次のブロックへライトポインタを移動させ(ブロック番号の昇順に移動させる)(ステップS25)、ステップS23の処理に戻ることで、収集したデータを順次書き込んでいく。そして、データ収集した局が占有する複数ブロックの最後のブロックに対してデータ書き込み完了したら(ステップS24,YES)、バンク管理情報33を更新する。例えば、仮にバンク管理情報33が1だった場合、データバンクAに新しいデータを書き、書き込み完了したら、バンク管理情報33を0に書き換える(ステップS26)。
【0051】
勿論、収集したデータが1ブロック分である場合には、最初のステップS23の処理後、直ちにステップS26の処理に移る。
一方、図示していないが、ホストマイコン13による共有メモリデータ読み出し処理について以下に説明する。
【0052】
ホストマイコン13は、まず、データ読出し対象の局が占有するブロックの先頭ブロックとブロック数を、構成情報を参照することで認識する。更に、バンク管理情報33においてこの先頭ブロックに対応する情報を参照することで、“ホスト向け”バンクが現在、データバンクA,Bのどちらであるかを認識する。そして、“ホスト向け”バンクにおける上記先頭ブロックから上記ブロック数分のデータを全て読み出す。尚、本実施例においても、データ読出しは任意のタイミングで行ってよく、条件としては、上記所定時間内に最低1局分について構成情報、バンク管理情報の参照・認識、及びデータ読出しを全て行えればよい。但し、1局当たり、最大で16ブロックのデータがある為、1局分のデータ読出しに掛かる時間は、実施例1より長くなる。また、1スキャンタイム当たりに何局分のデータを読み出すかも、実施例1と同様、任意に決めてよい。
【0053】
尚、ホストマイコン13による送信データバンク領域34への送信データ書き込みに関しては、複数ブロック分のデータを送信できる点以外は、実施例1と変わらないので、特に説明しない。
【0054】
図11は、共有データの更新、読み出しが行われる様子を示したタイムチャートである。
ここでは、局0のデータ収集・更新、読出しが行われるものとし、局0には複数ブロック割り当てられているものとする。局0が占有する複数ブロックに対応するバンク管理情報は、図示の通り、1番目のブロックに対応する情報のみが変化し、他のブロックに対応する情報は、変化しないし、参照もされない。よって、以下、バンク管理情報とは、1番目のブロックに対応する情報を意味するものとする。また、どのブロックが局0の1番目のブロックであるのか及び局0が占有するブロック数が幾つであるのかは、構成情報32を参照すれば知ることができる。
【0055】
図示の例では、バンク管理情報は、最初は‘1’となっており、データバンクBが“ホスト向け”であるので、ネットワークコントロール部11は、図示の通りデータバンクAにおける局0の占有ブロックに対して1ブロック目、2ブロック目、3ブロック目、・・・と、順に、局0から収集してデータをコピーしていく。そして、全てのデータを書き込んだら、バンク管理情報を1→0へと更新する。
【0056】
その後、ホストマイコン13が、例えば図示のタイミングで局0のデータを読み出そうとした場合、まずバンク管理情報を参照すると‘0’となっているので、データバンクAが現在“ホスト向け”であると認識し、図示の通りデータバンクAにおける局0の占有ブロックから1ブロック目、2ブロック目、3ブロック目、・・・と、順に、データを読出して、ホストマイコン内のローカルコピー領域にコピーしていく。
【0057】
尚、実施例2による接続局内部のデータフローを図12に示す。
上述した共有メモリアクセス方式によってデータ更新、読み出しを行う場合に、最も条件的に厳しいタイミングにおけるデータ一義性検証を図13を用いて行う。
【0058】
上述したネットワークシステムでは、ホストマイコン13がバンク管理情報を読んだ直ぐ後にネットワークコントロール部11がバンク管理情報を書き換えるケースが、一番読み出し余裕時間が少ない。更に、接続台数が2台と少なく、他局は最大の16ブロックを占有し、自局は1ブロックしか送出しない構成の時が一番条件的に厳しい。つまり、ホストマイコン13側は、たとえネットワークコントロール部11が一方のデータバンクにデータ書き込み中であっても、必ず他方のデータバンクからデータを読み出すようになっているが、上記状況では、その後にホストマイコン13側が他方のデータバンクからデータ読出すのに時間が掛かると、このデータ読出し中に、ネットワークコントロール部11側が同一データバンク(他方のデータバンク)にデータを書き込み始める可能性が考えられる。この例では、他局のデータは16ブロック分で1つの意味を持つものであるので、一部を書き換えられてしまうと、データの一義性を保てなくなる可能性がある。
【0059】
本例のネットワークシステムでは、上記の一番厳しい条件下であっても、読み出しに許されている時間Trは、
Tr=ネットワークサイクルタイム−Ta
(Taは、ネットワークコントロール部11によるインタフェースメモリ12へのコピー開始からバンク管理情報書き換えまでに掛かる時間であり、ここでは実測値として16ブロック分で150μsecが得られている)
であり、上述したネットワーク仕様例に基づいて計算すると、
Tr = 43.6msec−150μsec = 43.45msec
となる。
【0060】
一方、ホストマイコン13がバンク管理情報を認識してバンクからデータを読み切るまでの時間は200μsecであり、Trに比較して十分短く余裕があるので、ホストマイコン13が読み出し途中のブロックをデータ更新されてしまうことがない。そのため、データの一義性が保たれる。
【0061】
以上説明したように、実施例1、実施例2のネットワークシステム、そのノード(局)等によれば、従来のLOCK信号やHOLD/HLDAによる排他とは異なり、デュアルポートメモリに対して一方がアクセス中に他方がアクセスを行っても、何等制約されることなくデータのリード/ライトを実行できる。勿論、WAIT状態にはならず、他に走らせたい処理があっても待たされずに実行できる。
【0062】
また、部品コストの制約から、デュアルポートメモリ上にネットワークデータとは関係のない排他の必要のないデータが格納されている場合であっても、一方が共有メモリのデータ更新途中あるいは読み出し途中であっても他方のアクセスは禁止されないため、待たされることなく上記データのリード/ライトを実行できる。
【0063】
更に実施例2では、上記効果に加えて、構成情報によって局ごとの占有ブロック数をそれぞれ定義することができ、共有メモリの占有領域を多くとりたい局や、その逆に少なくてもよい局等を、共有メモリ型ネットワークに無駄なく接続させることができ、且つ、占有領域のサイズの大小によらず局単位のデータブロックの一義性を保ったままデータ伝達ができる。
【0064】
尚、特に図示していないが、ネットワークコントロール部11、ホストマイコン13は、CPUやMPU等の演算処理装置やメモリ等を有しており、このメモリには上述した図5、図10に示す処理や図示せずに説明したホストマイコン13側の処理を、演算処理装置で実行させる為のアプリケーション・プログラムやデータが格納されている。
【図面の簡単な説明】
【0065】
【図1】本例のネットワークシステムの全体図である。
【図2】各局の概略構成図である。
【図3】実施例1におけるインタフェースメモリ領域の構成を示す図である。
【図4】ネットワークの共有メモリイメージの基本を示す図である。
【図5】実施例1におけるネットワークコントロール部によるデータ収集・データバンク更新処理を示す図である。
【図6】共有データの更新、読み出しが行われる様子を示したタイムチャートである。
【図7】実施例2におけるインタフェースメモリ領域の構成を示す図である。
【図8】構成情報の一例である。
【図9】図8に示す構成情報例に応じたネットワークの共有メモリイメージである。
【図10】実施例2におけるネットワークコントロール部によるデータ収集・データバンク更新処理を示す図である。
【図11】共有データの更新、読み出しが行われる様子を示したタイムチャートである。
【図12】実施例2による接続局内部のデータフローである。
【図13】最も条件的に厳しいタイミングにおけるデータ一義性検証を説明する為の図である。
【図14】従来技術を説明する為の図であり、(a)は調停回路を設けた構成、(b)はHOLD/HLDA信号で排他をとる構成である。
【符号の説明】
【0066】
10 局
11 ネットワークコントロール部
12 インタフェースメモリ
13 ホストマイコン
20 インタフェースメモリ領域
21 共有データバンク領域
22 バンク管理情報
23 送信データバンク領域
24 送信バンク管理情報
30 インタフェースメモリ領域
31 共有データバンク領域
32 構成情報
33 バンク管理情報
34 送信データバンク領域
35 送信バンク管理情報

【特許請求の範囲】
【請求項1】
複数のノードがネットワークに接続されたネットワークシステムにおいて、
前記各ノードは、前記ネットワークに接続して他ノードとの間でデータ送受信するネットワークコントロール手段と、制御手段と、該ネットワークコントロール部と制御手段との間に設けられ両者と接続する記憶手段とを有し、
前記各ノードは複数ワードより成るブロック単位で相互にデータ交換し、
前記記憶手段は各々ブロック単位でデータ格納する2つのデータバンクを有し、前記ネットワークコントロール手段は、該2つのデータバンクを交互に切替えながら前記他ノードから収集したデータを該2つのデータバンクの何れか一方に格納し、前記制御手段は他方のデータバンクからデータを読み出すことを特徴とするネットワークシステム。
【請求項2】
前記制御手段が前記データバンクからデータを読み出すのに掛かる時間を、少なくとも前記ネットワーク全体のデータ更新周期から前記ネットワークコントロール手段が1ノード分のデータ更新に要する時間を差し引いた時間より短くさせることを特徴とする請求項1記載のネットワークシステム。
【請求項3】
前記記憶手段は、前記2つのデータバンクのどちらが制御手段向けであるかを示すバンク管理情報を保持し、
前記ネットワークコントロール手段は、該バンク管理情報を参照して、制御手段向けではないデータバンクにデータを格納すると共に、データ格納完了したら該バンク管理情報を切替え、
前記制御手段は、該バンク管理情報を参照して、制御手段向けであるデータバンクからデータを読み出すことを特徴とする請求項1又は2記載のネットワークシステム。
【請求項4】
前記各ノードは複数ブロック分のデータ交換を行うこともでき、
前記データバンクには各ノード毎に1又は複数ブロック分の記憶領域が割り当てられ、
前記記憶手段は、該各ノード毎に割り当てられた記憶領域の先頭ブロック位置とブロック数を示す情報である構成情報を保持し、
前記ネットワークコントロール手段又は制御手段は、前記データバンクへのデータ格納又は前記データバンクからのデータ読出しの際に、該構成情報を参照することを特徴とする請求項1〜3の何れかに記載のネットワークシステム。
【請求項5】
前記記憶手段はデュアルポートメモリであり、前記制御手段は産業用制御機器であることを特徴とする請求項1〜4の何れかに記載のネットワークシステム。
【請求項6】
複数のノードがネットワークに接続されたネットワークシステムにおける該各ノードにおいて、
前記ネットワークに接続して他ノードとの間でデータ送受信するネットワークコントロール手段と、制御手段と、該ネットワークコントロール手段と制御手段との間に設けられ両者と接続する記憶手段とを有し、
前記各ノードは複数ワードより成るブロック単位で相互にデータ交換し、
前記記憶手段は各々ブロック単位でデータ格納する2つのデータバンクを有し、前記ネットワークコントロール手段は、該2つのデータバンクを交互に切替えながら前記他ノードから収集したデータを該2つのデータバンクの何れか一方に格納し、前記制御手段は他方のデータバンクからデータを読み出すことを特徴とするノード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図10】
image rotate

【図14】
image rotate

【図4】
image rotate

【図9】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2006−99650(P2006−99650A)
【公開日】平成18年4月13日(2006.4.13)
【国際特許分類】
【出願番号】特願2004−287658(P2004−287658)
【出願日】平成16年9月30日(2004.9.30)
【出願人】(503361927)富士電機機器制御株式会社 (402)
【Fターム(参考)】