JP4269911B2 - メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム - Google Patents
メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム Download PDFInfo
- Publication number
- JP4269911B2 JP4269911B2 JP2003398247A JP2003398247A JP4269911B2 JP 4269911 B2 JP4269911 B2 JP 4269911B2 JP 2003398247 A JP2003398247 A JP 2003398247A JP 2003398247 A JP2003398247 A JP 2003398247A JP 4269911 B2 JP4269911 B2 JP 4269911B2
- Authority
- JP
- Japan
- Prior art keywords
- message
- node
- tid
- transaction
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000007726 management method Methods 0.000 title claims description 137
- 230000005540 biological transmission Effects 0.000 claims description 294
- 230000004044 response Effects 0.000 claims description 165
- 238000012545 processing Methods 0.000 claims description 143
- 238000000034 method Methods 0.000 claims description 138
- 230000008569 process Effects 0.000 claims description 118
- 239000000284 extract Substances 0.000 claims description 38
- 238000004891 communication Methods 0.000 claims description 37
- 230000007704 transition Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims 1
- LQHNMNCRCCSJQW-UHFFFAOYSA-N 4-(5-amino-1,3,4-thiadiazol-2-yl)benzoic acid Chemical compound S1C(N)=NN=C1C1=CC=C(C(O)=O)C=C1 LQHNMNCRCCSJQW-UHFFFAOYSA-N 0.000 description 70
- 238000001514 detection method Methods 0.000 description 23
- 239000000872 buffer Substances 0.000 description 12
- 101100465000 Mus musculus Prag1 gene Proteins 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 description 1
- 235000010724 Wisteria floribunda Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Images
Landscapes
- Small-Scale Networks (AREA)
Description
送信権の制御には、各ノードが自ら送信のタイミングを判定してデータを送信するシステム(CSMA/CDやトークンリング等)、システムで唯一のマスタノードが他のノードにトークンを与えてデータ送信権を一時的に貸与するシステム、等々がある。また、データ交換の制御には、要求/応答データともに各ノードが送信権を獲得したときに送信するシステム、送信権を持ったノードが他のノードの応答データをポーリングで要求するシステム、等々がある。
ここで、PLC(プログラマブルコントローラ)等の産業用途のシステムであって、例えばシリアルバスに複数のノード(CPUモジュール)とI/Oモジュールが接続されたネットワークシステムにおけるデータ交換では、上記常時交換されるべきデータとしてCPUモジュール−I/Oモジュール間で交換する制御用データを、上記必要に応じて交換されるデータとしてCPUモジュール間で交換する状態監視等の支援メッセージを割り当てることが多い。この様な産業用途ネットワークシステムとしては、例えば、非特許文献1、非特許文献2等で紹介されているSXバスシステム等がある。制御用データは、それをもとに機械を動かしているので、定周期性が強く求められる。データ交換のタイミングがまちまちでは、機械の動きが滑らかでなくなり、最悪の場合に異常な動作を起こしかねないからである。
この為、従来では、TIDは、送信側ノードAにおいて各宛先ノード毎に管理され、受信側ノードBにおいても各送信元ノード毎に管理される。詳しくは、以下に説明する。
ここでは、ノード数を64として、互いにメッセージ交換をするものとする。
図27(a)の図上上側には、送信側で用いる1対1用のTID管理テーブル101の一例を示す。
図28は、送信側ノードのTID生成処理を示すフローチャート図である。
図29において、まず、受信した要求メッセージが1対1か、ブロードキャストかを判定する(ステップS411)。1対1である場合には(ステップS411、NO)、受信した要求メッセージから送信元ノード番号とTIDを取り出して(ステップS412)、テーブル103において同じ送信元ノード番号のTIDと比較する(ステップS413)。もし、両者(TID)が一致すれば(ステップS413,NO)、受信した要求メッセージは再送メッセージであり且つその初送メッセージは既に受信していることになるので、当該要求メッセージは破棄して(ステップS418)処理を終了する。もし、両者が不一致であれば(ステップS413,YES)、テーブル103における上記送信元ノード番号に対応するTIDの値を更新する。つまり、要求メッセージに格納されていたTIDの値にする(ステップS414)。そして、引き続き所定の要求メッセージ受信処理を実行する。
ここでは、ノード番号が‘0’のノード(以下、ノード0と記す)からノード番号が‘1’のノード(以下、ノード1と記す)に対して、1対1の要求メッセージを送る場合を例にする。この場合、ノード0はテーブル101を、ノード1はテーブル103を使用する。
「拡大するSXバス接続機器」;富士時報 Vol.73 NO.2、2000、p130〜131 「統合コントローラ「MICREX−SXシリーズ」のスケーラブル・・・」;富士時報 Vol.71、NO.11 1998
前記メッセージ受信側ノードでは、前回受信した要求メッセージの送信元ノード番号とトランザクション番号を記憶しておき、受信した要求メッセージの送信元ノード番号とトランザクション番号の両方が前記記憶した番号と一致する場合にはメッセージの多重受信と判定することができる。
これに対して、本発明の請求項5では、上記請求項1の方法に加え更に、前記メッセージ受信側ノードは、他ノード宛のメッセージを監視することで新たなトランザクションに移行したことを認識すると該トランザクション移行を示す情報を記憶する。
図1に、本例によるシステム全体の概略構成図を示す。
図示の例では、バス型ネットワーク4にマスタノード3と複数のノード0,1,2、・・・が接続されている。尚、ここでは、上記従来技術と同様、そのノード番号が0のノードをノード0、ノード番号が1のノードをノード1等と記すものとする。また、図ではノードの数は、マスタノードも含めて4つのみ示しているが、より多くのノードがバス型ネットワーク4に接続されていてもよい。また、バス4は、例えば上記SXバス等である。また、各ノードは例えばPLCのCPUモジュールであり、特に図示しない各I/Oモジュールとの間で制御時間帯において制御データ/センサデータ等を送受信する。
図2に示すノード10は、CPU11、プログラムメモリ部12、メモリ部13、タイマ14、伝送制御部15等を有する。メモリ部13は、データメモリ部13a、送信バッファ13b、受信バッファ13c等の記憶領域を有する。
そこで、1トランザクションを要求メッセージとポーリングと応答メッセージで組み立てる。要求メッセージは要求を受信側に送るのみで応答メッセージを期待しない。ポーリングは応答メッセージを期待する。送信権を要求してマスタノード3からトークンを与えられたノードは、要求メッセージを送信した後にポーリングを繰り返し、応答メッセージを受信するまでマスタノード3に対して送信権の要求を繰り返し行う。この間、他のノードからも送信権の要求があるかもしれないが、マスタノード3は上記の通り他のノードには送信権を与えないようにする。ただし、トークンを与えられたノードは、ポーリングの回数もしくは時間によってポーリングを一旦打ち切ってメッセージ時間帯内に抑え、制御用データ交換の時間帯を確保する。そして、次のメッセージ時間帯になるとマスタノード3は、上記トークンを与えられたノードに再びトークンを与え、そのノードは中断していたポーリングを再開する。そして応答メッセージを受信すると、次のサイクルでは送信権の要求は行わない。すると次のメッセージ時間帯になるとマスタノード3は別のノードにトークンを与えることができるので、別のトランザクションに移行することができる。
図4は、マスタノード3の基本処理フローチャート図である。
図5(a)において、メッセージ送信ノードは、制御時間帯に入ったら(ステップS21,YES)、まず、通常の制御データ送信処理を行う(ステップS22)。更に、他のノードに送信すべきメッセージがある場合には(ステップS23、YES)、マスタノード3に対して送信権要求を行う(ステップS24)。
図5(b)において、メッセージ送信ノードは、まず、応答待ちフラグがONかOFFかを判定する(ステップS31)。応答待ちフラグは、既に要求メッセージを送信しておりメッセージ受信ノードからの応答待ちの状態である場合にはONになっている。
図6(a)において、要求メッセージを受け取ったメッセージ受信ノードは、まず、当該要求が1対1通信かブロードキャストかを判定する(ステップS51)。ブロードキャストである場合にはそのままステップS54の処理に移行し、1対1通信である場合、それが自ノード宛である場合には(ステップS52,YES)、まず、ACKを送信する(ステップS53)。勿論、自ノード宛ではない場合には(ステップS52,NO)受信処理は行わない。
図6(b)において、ポーリング受信したメッセージ受信ノードは、応答メッセージの準備が完了していたら(ステップS61,YES)応答メッセージを送信し(ステップS62)、そうでなければ(ステップS61,NO)処理中応答を送信する(ステップS63)。
しかし、本例では上記の通り、要求から応答までを同じトランザクションとし且つその間は別のノードにトークンを与えないようにすることで、あるメッセージ交換処理中に別のトランザクションが発生しないことを保証できるので、受信したメッセージの送信元ノード番号とTIDの組が前に受信したメッセージの組と異なれば別のメッセージと判定しても問題なくなるので、受信側のTID管理テーブルはノード数分確保しておく必要は無くなる。すなわち、1対1用のTID管理テーブルにはノード番号とTIDを1つずつ記憶しておけば良くなる。
実施例1では、図9(a)に示すように、送信側のTID管理テーブルは、管理テーブル21(1対1用)も管理テーブル22(ブロードキャスト用)も、従来の管理テーブル101,102と同様である。よって、図7に送信側ノードのTID生成処理(図5(b)のステップS32の処理)の詳細フローチャートを示すが、これは従来の図28に示すTID生成処理と同様である。すなわち、図7のステップS71〜S77の処理は、図28のステップS401〜S407と同様である。よって、ここでは特に説明しない。
図8において、ステップS81、S82、S86の処理は、従来の図29のステップS411、S412、S415の処理と同様であるので、説明は省略する。
ここでは、図9に示すノード番号0のノード(ノード0)が送信側、ノード番号1のノード(ノード1)が受信側である、1対1通信の場合について説明する。
ノード0からブロードキャストで要求メッセージを送る場合、ノード0はテーブル22を、ノード0以外はテーブル24を使用する。ノード0はテーブル22のTIDをインクリメント(100→101)して、このTID(101) と送信元ノード番号(0) を要求メッセージに格納して送信する。ノード0以外の各ノードはこの要求メッセージを受信するとそこからTID (101)と送信元ノード番号(0)を取り出す。そしてテーブル24の送信元ノード番号(0)、TID(100)とそれぞれ比較する(ステップS87,S88の処理を実行)。
実施例2は、実施例1と比較すると、図12(b)に示すように、受信側のTID管理テーブルが、1対1とブロードキャストで共用するテーブルとなっている点が異なる。
図11において、受信側ノードは、まず、受信した要求メッセージから送信元ノード番号とTIDを取り出すと共に(ステップS111)、このメッセージがブロードキャストか1対1かを判定し(ステップS112)、1対1である場合には(ステップS112,NO)図12(b)のTID管理テーブル33における判定フラグ33aとは別に用意されている不図示の判定フラグをON状態し(ステップS113)、ブロードキャストである場合には(ステップS112,YES)この不図示の判定フラグをOFF状態にする(ステップS114)。尚、ここでは、判定フラグがONの場合は“1対1”、OFFの場合は“ブロードキャスト”を意味するものであることが予め設定・登録されているものとする。
ここでは、図12に示すノード番号0のノード(ノード0)が送信側、ノード番号1のノード(ノード1)が受信側である、1対1通信の場合について説明する。
上記実施例1,2では、従来と比較して、受信側の管理テーブルを削減した(各ノード毎に管理しなくて済むようにした)が、実施例3では送信側の管理テーブルを削減する(各ノード毎に管理しなくて済む)。また、受信側においても1対1用とブロードキャスト用とを共用にすることができる。尚、実施例3においても、要求から応答までを1トランザクションとし、応答完了するまでの間はマスタノード3は他のノードには送信権を与えないようにしている。
図13は、送信側ノードのTID生成処理のフローチャート図である。
テーブル41のようにTIDを1つ管理すれば済むようになったので、図13に示すように、TID生成処理は、従来の図28の処理と比べ、簡略化される。
図14(a)において、まず、受信した要求メッセージから送信元ノード番号とTIDを取り出して(ステップS131)、テーブル42において同じ送信元ノード番号のTIDと比較する(ステップS132)。もし、TIDが一致すれば(ステップS132,NO)、受信した要求メッセージは多重に同じメッセージを受信したものだと判定し、当該要求メッセージは破棄して(ステップS134)処理を終了する。もし、TIDが不一致であれば(ステップS132,YES)、テーブル42における上記送信元ノード番号に対応するTIDの値を更新する。つまり、要求メッセージに格納されていたTIDの値を上書きする(ステップS133)。そして、引き続き所定の要求メッセージ受信処理を実行する。
但し、これだけでは、上記誤判定が生じる可能性がある。
図14(b)に示すように、他ノード宛の要求メッセージを受信すると、この要求メッセージから送信元ノード番号を取り出して(ステップS141)、テーブル42において同じ送信元ノード番号のTIDの値を初期化(0)する(ステップS142)。尚、この例に限らず、他ノード宛の要求メッセージ内のTIDによってテーブル42を更新するようにしてもよい。
上述した実施例3の処理について、以下、具体例を挙げて説明する。ここでは、TIDの値を初期化(0)する例を用いて説明する。
実施例4は、上記実施例3の延長線上の実施例であり、受信側のTID管理テーブルも上記実施例2等と同様に小さくしている例である(実施例3においても小さくすることは出来るが、実施例3はあえて送信側のみ小さくする例を示したに過ぎない)。
図16は、送信側ノードのTID生成処理のフローチャート図である。
図17(a)は、受信側ノードの多重検出処理のフローチャート図である。
図17(b)に示すように(既に述べたように)、実施例4では、実施例3とは異なり、他ノード宛の要求メッセージを受信することを以って、テーブル52のTIDの値を初期化(0)する(ステップS171)。つまり、送信元ノード番号を参照する処理を省ける。尚、図では、初期化することのみ示しているが、他ノード宛の要求メッセージ内のTIDによってテーブル52を更新するようにしてもよい。
上述した実施例4の処理について、以下、具体例を挙げて説明する。ここでは、他ノード宛の要求メッセージを受信することを以って、テーブル52のTIDの値を初期化(0)する例を用いて説明する。
上記実施例1〜4では、各送信側ノード毎に個別にTIDを更新(インクリメント)・管理していたが、実施例5ではシステムでTIDを一元管理する。すなわち、TIDはマスタノードで例えば図21(a)に示すTID管理テーブル61によって一元管理する。よって、マスタノード以外の各ノードは、TID生成処理(インクリメント)は行わないし、送信側TID管理テーブルも保持する必要なく、図21(b)に示す受信側TID管理テーブル62のみを保持・管理するば済むようになる。尚、実施例5においても、要求から応答までを同じトランザクションとし、マスタノードは1つのトランザクションが完結するまで、他のノードにはトークンを与えないようにする点は、実施例1〜4と同じである。
・他ノード宛の要求メッセージを受信すると、このメッセージ内のTIDによってテーブル62を更新(上書き)する。
・他ノード宛の要求メッセージ受信を以って(トリガとして)、テーブル62のTIDを初期化。
・自分宛でも他ノード宛でも良く、宛先に関係なくトークンを受信した場合、このトークン内のTIDとテーブル62のTIDとを比較して、不一致ならテーブル62のTIDを初期化。
・他ノード宛のトークン受信を以って(トリガとして)、テーブル62のTIDを初期化。
図19、図20に、実施例5におけるマスタノード/送信側ノード/受信側ノードの処理フローチャートを示す。
つまり、上記の通り、実施例5では、TIDはシステムで一意のものとしマスタノードで一元管理するので、TID生成処理はマスタノードで行う(送信側ノードでは行わない)。
特に図示していないが、要求メッセージ送信を行いたい送信側ノードは、まず、制御時間帯において、マスタノードに対して、送信権要求を行う。これに対して図19(a)の処理によってトークンが与えられた場合には、図19(b)に示すように、まずトークンからTIDを取り出す(ステップS191)。そして、取り出したTIDを要求メッセージに格納して(ステップS192)、当該要求メッセージを送信する。
図20(a)において、受信側ノードは、図19(b)の処理によって送られてくる要求メッセージを受信すると、この要求メッセージからTIDを取り出して(ステップS201)、これをテーブル62のTIDと比較する(ステップS202)。
図20(b)に示す第1の方法では、他ノード宛の要求メッセージを受信すると、この要求メッセージからTIDを取り出して(ステップS211)、テーブル62を更新する(取り出したTIDをテーブル62に格納する)(ステップS212)。
ここでは、ノード番号0のノード(ノード0)が送信側、ノード番号1のノード(ノード1)又はノード0以外の全ノードが受信側となる場合を例にして説明する。マスタノード、ノード1で管理するTIDは、図21に示す通り、両方とも250であったものとする。
そこで、ノード0は、この要求メッセージのリトライとしてノード1に再送メッセージを送るものとし、マスタノードに対して送信権要求を送る。マスタノードは同じノード(0)からの継続した送信権要求を受け取ることになるのでテーブル61のTIDをインクリメントせずに(251のまま)、このTID(251) をトークンに格納してノード0に送信する。このトークンを受け取ったノード0は、トークンに含まれるTIDを要求メッセージに格納してノード1に送信する。ノード1はこの要求メッセージを受信するとそこからTID (251)を取り出し、テーブル62のTID(251:先の要求メッセージで更新済み)と比較する。この場合、TIDが一致するのでこれが多重に同じメッセージを受信したものだと判定できる。そこで、多重受信したメッセージを破棄する。
その後、ノード0が、ノード1以外の他のノード(例えばノード2)に1対1の要求メッセージを送る為、マスタノードに対して送信権要求を行ったとする。この場合、マスタノードは、テーブル61のTIDをインクリメント(251→252)して、このTID(252) をトークンに格納してノード0に送信する。このトークンを受け取ったノード0は、このトークンに含まれるTIDを要求メッセージに格納してノード2に送信する。
(1)ノード1は、上記要求メッセージは自分宛ではないがそれを受信すると、その中のTID(252)をテーブル62のTID(251:先の要求メッセージで更新済み)に上書きする。
(2)ノード1は、上記要求メッセージは自分宛ではないがそれを受信すると、テーブル62のTID(251:先の要求メッセージで更新済み)を初期化(0)する。
(3)ノード1は、受信したトークン(宛先はなんでも良い)の中のTID(252)とテーブル62のTID(251:先の要求メッセージで更新済み)を比較して、不一致なのでこれを初期化(0)する。
(4)ノード1は、自分宛ではないトークンを受信すると、テーブル62のTID(251:先の要求メッセージで更新済み)を初期化(0)する。
その後、再び、ノード0がノード1に1対1の要求メッセージを送る為もしくはノード0がブロードキャストの要求メッセージを送る為に、ノード0がマスタノードに送信権要求した場合、マスタノードはテーブル61のTIDをインクリメント(252→253)して、このTID(253) をトークンに格納してノード0に送信する。トークンを受け取ったノード0は、このトークンに含まれるTIDをメッセージに格納してノード1に送信する。ノード1はこの要求メッセージを受信するとそこからTID (253)を取り出して、テーブル62のTID(先に初期化もしくは252を上書きされた)と比較する。そうすると、TIDが不一致なので新しいメッセージと判定できる。そして、受信したTID (253)をテーブル62に格納する。
上記の通り、送信側ノードでは、要求メッセージを送信後、1又は複数回、ポーリングを送信する。受信側ノードでは、このポーリングを受信する毎に、応答保持情報を参照して、それが立っていれば(1)応答メッセージを送信し、立っていなければ(0)予め用意しておいた“処理中を通知するためのフレーム”を送信する。
そして、受信側ノードは、上記要求メッセージを受信した場合だけでなく、自ノード宛のポーリングを受信した場合にも、このポーリングに格納されているTIDを受信側TID管理テーブルに記憶されているTID(要求メッセージで更新されている)と比較して、TID一致ならばトランザクションの継続と判定して、応答保持情報がセットされていれば応答メッセージを送信し、セットされていなければ処理中を送信する。
以上の様に、実施例6によれば、ポーリングもTIDで管理する事により、要求メッセージ消失等のトランザクションの異常に対応できる。
図22において、タイマ14による定周期タイマ割り込みが入る毎に(ステップS251,YES)、まず制御時間帯における処理を行う。すなわち、他の各ノード(0,1,2・・・等)からの制御データ受信処理を行うと共に、もし1または2以上のノードから上記送信権要求があった場合にはこれを受信して記録しておく(ステップS252)。続いて、メッセージ時間帯に入ったら(ステップS253,YES)、送信権要求したノードにトークンを与えるが(ステップS256)、もし複数のノードから送信権要求があった場合には、その前にどのノードにトークンを与えるかを判定する(ステップS254)。この判定は、既に述べている通り、前のサイクルでトークンを与えたノードから引き続き送信権要求があった場合には(あるいは要求が無くても、要求の取り下げが無い限り)、このノードに引き続きトークンを与える。
図23は、上記の場合の送信側ノードのトークン受信処理のフローチャート図である。
要求メッセージを受け取ったメッセージ受信ノードは、まず、当該要求が他ノード宛の1対1通信であるか、自ノード宛の1対1通信またはブロードキャストであるかを判定する(ステップS281、S282)。もし、要求メッセージが他ノード宛の1対1通信である場合には(ステップS282,NO)、そのまま当該処理を終了する。一方、自ノード宛の1対1通信またはブロードキャストである場合には、ステップS283の処理に移行する。
尚、図25、図26において図中のTKNはメッセージ時間帯でマスタノードから送信側ノードに与えられるトークン、MSGは要求メッセージ、POLはポーリング、Nackは非応答を意味するものであり、また図25、図26はこれらの各フレームとTIDに注目して記述してあり、その他の定周期で交換している制御用データや送信権要求等については省略してある。また、マスタノード、要求メッセージ送信側ノードの動作も省略してあるが、図22、図23に示す通りである。
この状態で、再び、ノード0がTID(251)を格納したポーリングを送信すると、ノード1は受信したポーリングからTID(251)を取り出してテーブル62のTID(251)と比較する。この場合もTIDが一致するので上記と同様の判定を行う。そして、今回は上記の通り、応答保持情報がオンなので、保持しておいた応答メッセージをノード1に返す。尚、応答メッセージの送信に伴って応答保持情報はオフすることはしない。その理由は図26で説明する。
続いて、図25の図上中央付近に示すように、ノード0からブロードキャストが行われたとする。ブロードキャストは確認応答(ACK)をとれないので、通常は複数回(図の例では3回)同じ要求メッセージを送信して信頼性を上げている。
続いて、図25の図上右側には、マスタノードが上記ノード0以外の別のノードから送信権要求を受けた場合を示す。
図26の左側には、再びノード0がノード1に対して1対1要求メッセージを送信し、この要求に対する応答メッセージが途中で消失した場合の動作例を示す。
図26の図上右側には、要求メッセージが消失して、ノード1にいきなりポーリングが来た例を示す。
3 マスタノード
4 バス型ネットワーク
10 ノード
11 CPU
12 プログラムメモリ部
13 メモリ部
13a データメモリ部
13b 送信バッファ
13c 受信バッファ
14 タイマ
15 伝送制御部
21 送信側TID管理テーブル(1対1用)(実施例1)
22 送信側TID管理テーブル(ブロードキャスト用)(実施例1)
23 受信側TID管理テーブル(1対1用)(実施例1)
24 受信側TID管理テーブル(ブロードキャスト用)(実施例1)
31 送信側TID管理テーブル(1対1用)(実施例2)
32 送信側TID管理テーブル(ブロードキャスト用)(実施例2)
33 受信側TID管理テーブル(1対1とブロードキャスト共用)(実施例2)
41 送信側TID管理テーブル(1対1とブロードキャスト共用)(実施例3)
42 受信側TID管理テーブル(1対1とブロードキャスト共用)(実施例3)
51 送信側TID管理テーブル(1対1とブロードキャスト共用)(実施例4)
52 受信側TID管理テーブル(1対1とブロードキャスト共用)(実施例4)
61 送信側TID管理テーブル(1対1とブロードキャスト共用)(実施例5)
62 受信側TID管理テーブル(1対1とブロードキャスト共用)(実施例5)
Claims (19)
- 複数のノードがネットワークを介して互いにデータ交換するシステムにおけるメッセージ交換管理方法であって、
前記データ交換の為の通信サイクルを、制御データ交換の為の制御データ交換用時間帯とメッセージ交換の為のメッセージ交換用時間帯に分け、
該メッセージ交換用時間帯におけるメッセージ交換処理は、要求から応答までを1トランザクションとし、
システム全体の送信権管理をするマスタノードを備え、
該マスタノードは、メッセージ送信の為の送信権要求を出したノードにトークンを与え、
前記マスタノードからトークンを得たメッセージ送信側ノードは、複数サイクルに渡ってメッセージ交換用時間帯において任意のメッセージ受信側ノードに要求メッセージを送信すると共に該要求に対する応答を得るまでポーリングを繰り返し、
前記マスタノードは前記メッセージ送信側ノードが応答を得るまで他のノードにトークンを与えないようにすることを特徴とするメッセージ交換管理方法。 - 前記メッセージ送信側ノードは、最初のサイクルで前記要求メッセージの送信を行い、2番目以降のサイクルでポーリングを繰り返し行う際には、各サイクル毎に、そのメッセージ交換用時間帯内に応答が得られない場合にはポーリングを一時中断し、次のサイクルのメッセージ交換用時間帯に入ったらポーリングを再開することで、前記制御データ交換の定周期性を保証することを特徴とする請求項1記載のメッセージ交換管理方法。
- 前記メッセージ送信側ノードでは、トランザクション番号を宛先ノード毎に管理して、新規メッセージ送信毎にその宛先に対応するトランザクション番号を更新して、該更新後のトランザクション番号と送信元ノード番号を前記要求メッセージに格納して送信し、
前記メッセージ受信側ノードでは、前回受信した要求メッセージの送信元ノード番号とトランザクション番号を記憶しておき、受信した要求メッセージの送信元ノード番号とトランザクション番号の両方が前記記憶した番号と一致する場合にはメッセージの多重受信と判定することを特徴とする請求項1又は2記載のメッセージ交換管理方法。 - 前記メッセージ送信側ノードでは、トランザクション番号を宛先ノード毎に管理して、新規メッセージ送信毎にその宛先に対応するトランザクション番号を更新して、該更新後のトランザクション番号と送信元ノード番号を前記要求メッセージに格納して送信し、
メッセージ受信側ノードでは、前記前回受信したメッセージの送信元ノード番号とトランザクション番号を記憶すると共に該メッセージがブロードキャストメッセージであるか1対1メッセージであるかを示す判別フラグを記憶しておき、
今回受信したメッセージがブロードキャストメッセージであるか1対1メッセージであるかを判定し、該判定結果と該今回受信したメッセージの送信元ノード番号とトランザクション番号とを、前記記憶しておいた値とそれぞれ比較し、全て一致する場合にはメッセージの多重受信と判定することを特徴とする請求項1又は2記載のメッセージ交換管理方法。 - 前記メッセージ受信側ノードは、
他ノード宛のメッセージを監視することで新たなトランザクションに移行したことを認識すると該トランザクション移行を示す情報を記憶することを特徴とする請求項1又は2記載のメッセージ交換管理方法。 - 前記メッセージ送信側ノードは、宛先ノード毎に区別することなく1対1通信とブロードキャスト共用でトランザクション番号を管理して、新規メッセージ送信毎に該トランザクション番号を更新して、該更新後のトランザクション番号と送信元ノード番号をメッセージに格納して送信し、
メッセージ受信側ノードでは、前回受信したメッセージの送信元ノード番号とトランザクション番号を1対1通信とブロードキャスト共用で記憶しておき、受信したメッセージの送信元ノード番号とトランザクション番号の両方が前記記憶した番号と一致する場合にはメッセージの多重受信と判定することを特徴とする請求項5記載のメッセージ交換管理方法。 - 前記マスタノードは、前記トランザクション番号を一元管理して、新規トランザクションによる送信権要求に応じてトークンを与える場合には該トランザクション番号を更新して、該更新後のトランザクション番号をトークンに格納して送信し、
前記メッセージ送信側ノードは、受信したトークンから前記トランザクション番号を取り出して、該トランザクション番号を前記要求メッセージに格納して送信し、
前記メッセージ受信側ノードは、前回受信した要求メッセージに含まれていたトランザクション番号を1対1通信とブロードキャスト共用で記憶しておき、今回受信した要求メッセージに含まれるトランザクション番号を前記記憶しておいた値と比較し、一致する場合にはメッセージの多重受信と判定し、次のトランザクションへ移行したことを認識すると、トランザクション移行を示す情報を記憶することを特徴とする請求項1又は2記載のメッセージ交換管理方法。 - 前記次のトランザクションへ移行したことを認識するとトランザクション移行を示す情報を記憶するステップは、
(1)他ノード宛のメッセージを検出すると、その中のトランザクション番号を取り出して、記憶しておいたトランザクション番号に上書きする
(2)他ノード宛のメッセージを検出すると、記憶しておいたトランザクション番号を初期化する
(3)トークンを検出すると、その中のトランザクション番号を取り出して、記憶しておいたトランザクション番号と比較して、不一致ならば記憶しておいたトランザクション番号を初期化する
(4)他ノード宛のトークンを検出すると、記憶しておいたトランザクション番号を初期化する
の何れかを用いるものであることを特徴とする請求項7記載のメッセージ交換管理方法。 - 前記メッセージ受信側ノードは、
応答保持情報を保持しており、
前記多重受信か否かの判定において、多重受信ではないと判定した場合には、前記受信した要求メッセージを受け入れて該要求に応じた処理を開始すると共に前記応答保持情報をクリアし、
前記要求に応じた処理が完了して応答メッセージの準備ができた場合には前記応答保持情報をセットし、
前記各ポーリング受信毎に前記応答保持情報を参照し、応答保持情報がリセットされている場合には「処理中」応答を返し、応答保持情報がセットされている場合には前記応答メッセージを返すことを特徴とする請求項3〜8の何れかに記載のメッセージ交換管理方法。 - 前記メッセージ受信側ノードは、
処理中フラグを有し、
前記多重受信ではないと判定した場合において前記要求に応じた処理を開始するときに前記処理中フラグをオンし、該処理が完了したときに該処理中フラグをオフし、
要求メッセージを受信したときに前記処理中フラグがオン状態である場合には、該処理中の処理を要求したトラザクションが中断したと見なすことを特徴とする請求項3〜9の何れかに記載のメッセージ交換管理方法。 - 前記メッセージ受信側ノードは、前記要求メッセージを受信してもACK返信処理は行わず、
前記メッセージ送信側ノードは前記各ポーリング送信の際にも該ポーリングに前記トランザクション番号と送信元ノード番号を格納して送信し、
前記メッセージ受信側ノードは、ポーリングを受信すると、該ポーリングに含まれるトランザクション番号と送信元ノード番号を前記記憶してある値と比較して、不一致である場合には新規要求メッセージの消失と判定して非応答を返信することを特徴とする請求項3〜10の何れかに記載のメッセージ交換管理方法。 - 複数のノードがネットワークを介して互いにデータ交換するネットワークシステムにおいて、
前記データ交換の為の通信サイクルを、制御データ交換の為の制御データ交換用時間帯とメッセージ交換の為のメッセージ交換用時間帯に分け、該メッセージ交換用時間帯におけるメッセージ交換処理は、要求から応答までを1トランザクションとし、
システム全体の送信権管理をするマスタノードを備え、
該マスタノードは、メッセージ送信の為の送信権要求を出したノードにトークンを与え、一旦トークンを与えたノードが前記トランザクションを完了するまで他のノードにトークンを与えないようにする送信権管理手段を有し、
前記マスタノードからトークンを得たノードであるメッセージ送信側ノードは、
複数サイクルに渡ってメッセージ交換用時間帯において任意のメッセージ受信側ノードに要求メッセージを送信すると共に該要求に対する応答を得るまでポーリングを繰り返し、最初のサイクルで前記要求メッセージの送信を行い、2番目以降のサイクルでポーリングを繰り返し行う際には、各サイクル毎に、そのメッセージ交換用時間帯内に応答が得られない場合にはポーリングを一時中断し、次のサイクルのメッセージ交換用時間帯に入ったらポーリングを再開することで前記制御データ交換の定周期性を保証するメッセージ送信制御手段を有することを特徴とするネットワークシステム。 - 前記メッセージ受信側ノードは、
1対1通信、ブロードキャスト各々に対応して、前回受信した要求メッセージの送信元ノード番号とトランザクション番号を記憶する第1の受信側TID管理テーブルを有し、
該第1の受信側TID管理テーブルを用いて多重受信を判定する第1の多重受信判定手段を有することを特徴とする請求項12記載のネットワークシステム。 - 前記メッセージ受信側ノードは、
前回受信した要求メッセージの送信元ノード番号とトランザクション番号を記憶すると共に該要求メッセージがブロードキャストメッセージであるか1対1メッセージであるかを示す判別フラグを記憶する第2の受信側TID管理テーブルを有し、
該第2の受信側TID管理テーブルを用いて多重受信を判定する第2の多重受信判定手段を有することを特徴とする請求項12記載のネットワークシステム。 - 前記メッセージ受信側ノードは、
他ノード宛のメッセージを監視することで新たなトランザクションに移行したことを認識すると該トランザクション移行を示す情報を記憶するトランザクション移行監視手段を有することを特徴とする請求項12記載のネットワークシステム。 - 前記メッセージ送信側ノードは、宛先ノード毎に区別することなく1対1通信とブロードキャスト共用でトランザクション番号を管理する第1の送信側TID管理テーブルを有し、
前記メッセージ受信側ノードは、1対1通信とブロードキャスト共用で前回受信した要求メッセージの送信元ノード番号とトランザクション番号を記憶する第3の受信側TID管理テーブルと、該第3の受信側TID管理テーブルを用いて多重受信を判定する第3の多重受信判定手段を有することを特徴とする請求項15記載のネットワークシステム。 - 前記マスタノードは、前記トランザクション番号を一元管理して、新規トランザクションによる送信権要求に応じてトークンを与える場合には該トランザクション番号を更新して、該更新後のトランザクション番号をトークンに格納するトランザクション番号管理手段を更に有し、
前記メッセージ送信側ノードのメッセージ送信制御手段は、受信したトークンから前記トランザクション番号を取り出して、該トランザクション番号を前記要求メッセージに格納して送信し、
前記メッセージ受信側ノードは、1対1通信とブロードキャスト共用で前回受信した要求メッセージのトランザクション番号を記憶する第4の受信側TID管理テーブルと、該第4の受信側TID管理テーブルを用いて多重受信を判定する第4の多重受信判定手段を有することを特徴とする請求項12記載のネットワークシステム。 - 複数のノードがネットワークを介して互いにデータ交換するネットワークシステムにおける前記各ノードにおいて、
前記データ交換の為の通信サイクルを、制御データ交換の為の制御データ交換用時間帯とメッセージ交換の為のメッセージ交換用時間帯に分け、該メッセージ交換用時間帯におけるメッセージ交換処理は、要求から応答までを1トランザクションとし、複数サイクルに渡ってメッセージ交換用時間帯において任意のメッセージ受信側ノードに要求メッセージを送信すると共に該要求に対する応答を得るまで各サイクル毎にそのメッセージ交換用時間帯内でポーリングを繰り返すメッセージ送信制御手段を有することを特徴とするノード。 - 複数のノードがネットワークを介して互いにデータ交換するネットワークシステムにおける前記各ノードのコンピュータに、
前記データ交換の為の通信サイクルを、制御データ交換の為の制御データ交換用時間帯とメッセージ交換の為のメッセージ交換用時間帯に分け、該メッセージ交換用時間帯におけるメッセージ交換処理は、要求から応答までを1トランザクションとし、複数サイクルに渡ってメッセージ交換用時間帯において任意のメッセージ受信側ノードに要求メッセージを送信すると共に該要求に対する応答を得るまで各サイクル毎にそのメッセージ交換用時間帯内でポーリングを繰り返す機能
を実現させる為のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003398247A JP4269911B2 (ja) | 2003-11-27 | 2003-11-27 | メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003398247A JP4269911B2 (ja) | 2003-11-27 | 2003-11-27 | メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005159920A JP2005159920A (ja) | 2005-06-16 |
JP4269911B2 true JP4269911B2 (ja) | 2009-05-27 |
Family
ID=34723147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003398247A Expired - Lifetime JP4269911B2 (ja) | 2003-11-27 | 2003-11-27 | メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4269911B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101314992B1 (ko) * | 2008-12-25 | 2013-10-04 | 미쓰비시덴키 가부시키가이샤 | 데이터 통신 시스템 및 데이터 통신 장치 |
-
2003
- 2003-11-27 JP JP2003398247A patent/JP4269911B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2005159920A (ja) | 2005-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1279406C (en) | Token passing network | |
US5357525A (en) | Multiplex transmission system | |
US6681139B1 (en) | Distributed control system and filtering method used in the distributed control system | |
US8780772B2 (en) | Communication protocol for wireless enhanced controller area networks | |
JP2010258990A (ja) | 制御システム及び制御プログラム更新方法 | |
CN110447020B (zh) | 通信装置、通信方法、程序和通信系统 | |
WO2019037458A1 (zh) | 通信方法和装置 | |
CN110945491B (zh) | 通信设备、通信方法、程序和通信系统 | |
CN110945490B (zh) | 通信设备、通信方法、程序和通信系统 | |
JPH0654911B2 (ja) | マスターシップを転送する方法および装置 | |
JP4269911B2 (ja) | メッセージ交換管理方法、ネットワークシステム、そのマスタノード、ノード、プログラム | |
CN113965494A (zh) | 用于冗余进程网络中的故障检测和角色选择的方法 | |
JP6527647B1 (ja) | 不正検知方法、不正検知装置及びプログラム | |
US9892073B1 (en) | Bus addressing systems and methods using repurposed bits | |
WO2013111285A1 (ja) | 通信装置及び通信方法及びプログラム | |
JP2020506482A (ja) | コヒーレント相互接続システムにおける読み取りトランザクショントラッカーのライフタイム | |
WO2006030697A1 (ja) | 通信装置、通信制御方法、通信制御プログラム及び通信制御プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
EP4174668A1 (en) | Communication interface adapter, method for dynamic pid assignment, and method for automatically diagnosing peripheral device and recovering peripheral device found to be in abnormal operation | |
JP7172217B2 (ja) | セキュアエレメント、通信方法、通信プログラム及び通信システム | |
EP4213448A1 (en) | Controller area network module and method for the module | |
JPH1117713A (ja) | マルチキャスト通信処理方式 | |
CN113791804A (zh) | 多路仪器并行升级的方法、装置、计算机设备及存储介质 | |
CN112286657A (zh) | 电子设备和中断处理方法 | |
JPS63246055A (ja) | パケツト送受信装置 | |
JPS6076840A (ja) | 状態変化情報伝送方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060810 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080919 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080919 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080919 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081023 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081229 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090203 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090216 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4269911 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130306 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130306 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140306 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |