(57)【要約】  【課題】信号供給元と信号供給先との対応関係を示すリンク情報に基づいて、信号供給先のチャンネル番号と同一の信号供給元にリンクされた他のチャンネル番号との対応関係を示すリンクテーブルを生成する処理を高速化する。  【解決手段】ハッシュ関数を予め定め、信号供給元情報にハッシュ関数を適用してハッシュ値に変換し、ハッシュ値とそれに対応したチャンネル番号（複数ある場合には最も小さな番号）との対応関係を示すハッシュテーブルをまず作成する（Ｓ１０）。そして、チャンネル番号の順にリンクされている信号供給元からハッシュ値を再計算し、ハッシュテーブルを参照してチャンネル番号を引き出し（Ｓ１３）、引き出したチャンネル番号がその時点での処理対象のチャンネル番号と同じか否かを判定することで同一信号供給元にリンクされた他のチャンネルの有無を判断する（Ｓ１４、Ｓ１５）。ハッシュテーブルを用いた逆引きによって、１チャンネルずつ信号供給元の同一性を判断する処理を省くことができる。【選択図】  図５
2005267213.tif 000002
【特許請求の範囲】
【請求項１】
複数チャンネルの信号供給先の各チャンネルについて分配すべき信号の信号供給先を記述したリンク情報に基づいて、該信号供給元からそれぞれ得られる信号を選択して信号供給先に分配するに際し、前記リンク情報から、信号供給先の各チャンネルについて同一の信号供給元にリンクされている他のチャンネルの信号供給先の情報を一覧形式で記述したリンクテーブルを生成するリンクテーブル生成方法であって、
a)予め適宜のハッシュ関数を定めておき、
b)前記リンク情報に含まれる全ての信号供給元の情報にハッシュ関数を適用してそれぞれハッシュ値に変換し、ハッシュ値と代表的な１チャンネルの信号供給先との対応関係とを記述したハッシュテーブルを作成した後に、
c)信号供給先の各チャンネルについて所定の順番で、
c1)前記リンク情報に記述されている信号供給元の情報に前記ハッシュ関数を適用してハッシュ値を再計算し、
c2)前記ハッシュテーブルを参照して、当該信号供給先が再計算で求まったハッシュ値に対応付けられた信号供給先と同一であるか否かを判定し、
c3)その判定結果に応じて、その信号供給先に対応してリンク先が同一信号供給元である他の信号供給先をリンクテーブルに格納する
ようにしたことを特徴とするリンクテーブル生成方法。
【請求項２】
請求項１に記載のリンクテーブル生成方法によってリンク情報から生成されたリンクテーブルを記憶しておき、ｎチャンネルの信号供給先に対して１組のデータセットとして供給するｎ個の信号を選択する際に、前記リンクテーブルに基づいて、同一信号供給元にリンクされていて互いに異なる信号供給先に対しては同一の信号を供給することを特徴とする、リンクテーブルを用いた信号選択装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス制御／監視やデータ通信等を目的とした各種システムにおいて複数の信号供給元から収集した信号を選択して演算装置等の信号供給先に出力する処理を行う際に用いられるリンクテーブルの生成方法、及びリンクテーブルを用いた信号選択装置に関する。
【背景技術】
【０００２】
例えば工場や発電設備、プラント等の制御／監視システムでは、コントローラ（制御装置）が多数の制御／監視端末からの入力信号を受け、それに基づいて所定の制御演算処理を実行し、その演算結果に基づく制御信号を制御端末へと出力する（例えば特許文献１など参照）。図１はこうした制御／監視システムにおける処理装置の要部のブロック構成図である。
【０００３】
データ収集部１は多数の信号供給元Ｘi（i=1〜z）から所定のサンプリング周期でデータを収集し、収集したデータをデータメモリ２に格納する。プロセス制御の場合、信号供給元はプロセスの各所に配置された様々な計測装置等である。一方、データ選択処理部３はデータメモリ２に格納されたデータの中から所定のデータを選択的に取り出して来て演算処理部６の入力に供給する。演算処理部６はｎチャンネル（CH1〜CHn）の入力にそれぞれ１個ずつ与えられるｎ個のデータを１組（これをデータセットと呼ぶ）として、このデータセットに対して所定の演算処理を実行して演算結果を得る。
【０００４】
データ選択処理部３は、同じデータセットに含まれるｎ個のデータを収集するに際して、チャンネル番号順つまりCH1から昇順にリンク情報４に従ってデータメモリ２からデータを読み出す。リンク情報４は予めオペレータ等により設定される情報であり、その一例を図２に示す。この図２中の左欄はチャンネル番号 i（i=1〜n）であり、ここではチャンネル数ｎは10である。一方、右欄はその各チャンネルに対応付けられている、つまりリンクされている信号供給元である。すなわち、このリンク情報４は信号供給先と信号供給元とのリンク関係を示すテーブルである。異なる信号供給先に対し同一の信号供給元が重複してリンクされることも一般的であり、この図２の例では、例えば第１チャンネルCH1と第５チャンネルCH5に対して同一の信号供給元Ｘ1がリンクされている。
【０００５】
上述したようにデータメモリ２へのデータの書き込み（図１でＡ側）の周期とデータメモリ２からのデータの読み出し（図１でＢ側）の周期とは非同期である。すなわち、データメモリ２からのデータの読み出しとは全く無関係にデータメモリ２へデータは書き込まれる。そのため、データ選択処理部３が或る１組のデータセットに属するｎ個のデータをデータメモリ２から順次読み出していく間に、そのデータセットに含まれる信号供給元から新たなデータがデータメモリ２に書き込まれることがあり得る。しかしながら、上述したように異なる信号供給先に対し同一の信号供給元が重複してリンクされている場合、１組のデータセット内では、その異なる信号供給先に与えるデータは一致している必要がある。
【０００６】
具体的に説明すると、例えば図２の例の場合、第１チャンネルCH1に対して供給するべき信号供給元Ｘ1によるデータＤ1をデータメモリ２から読み出した後、第５チャンネルCH5に対して供給するべきデータをデータメモリ２から読み出す時点までの間に信号供給元Ｘ1による新しいデータＤ1'がデータメモリ２に書き込まれていたとしても、第５チャンネルCH5に対して供給するべきデータはＤ1'ではなく、先に第１チャンネルCH1に対して供給したデータＤ1を読み出して来て供給する必要がある。図２の例では、第２チャンネルCH2と第８チャンネルCH8、第３チャンネルCH3と第10チャンネルCH10、第４チャンネルCH4と第７チャンネルCH7も同様である。これによって同一データセットに含まれるデータの同期が維持されることになる。
【０００７】
こうしたデータセット内のデータの同期を維持するようにデータの選択処理をスムーズに行うには、チャンネル番号の順に、それよりも若い（小さな）チャンネル番号であって同一の信号供給元にリンクされているチャンネル番号を記述したリンクテーブルを利用すると便利である。図３は図２に対応するリンクテーブルである。図３において、右欄の一致CH番号で「０」は一致するものが存在しないことを意味する。このリンクテーブルに従えば、例えば第５チャンネルCH5に対して供給するべきデータを読み出そうとするときに、信号供給元が一致するのが第１チャンネルCH1であることがすぐに判るから、この第１チャンネルCH1に対して供給したものと同じデータを第５チャンネルCH5に供給することができる。
【０００８】
そこで、従来の信号選択装置では、図２に示したようなリンク情報４が与えられると、自動的に図３に示したようなリンクテーブルを生成して記憶する。一旦リンクテーブルを生成すればリンク情報４の内容が変更されない限りリンクテーブルを生成し直す必要はないから、通常、リンクテーブルの生成処理は、システム起動時やリンク情報更新時にのみ行われる。図４は、リンク情報に基づいてリンクテーブルを生成するための従来の手法（アルゴリズム）を説明するためのフローチャートである。このアルゴリズムの基本は、対象チャンネルを先頭（番号の小さなもの）から順番に探索してゆき、信号供給元が同一であるチャンネルを個別に抽出するものである。
【０００９】
すなわち、まずリンクテーブルＴLの内容（図３では一致CH番号の欄）を全て０にクリアし（ステップＳ５０）、チャンネル番号ｉを１にセット（ステップＳ５１）、変数ｊを０にセットする（ステップＳ５２）。そして、リンク情報において、チャンネル番号ｉにリンクされている信号供給元（以下、リンク信号という）Ｘ[i]がチャンネル番号ｊのリンク信号Ｘ[j]と一致しているか否かを判定する（ステップＳ５３）。最初はｊ＝０であってリンク信号Ｘ[0]は存在しないからステップＳ５３では「Ｎo」と判定され、ｊをインクリメントして（ステップＳ５４）ｊがｉより小であるか否かを判定する（ステップＳ５５）。最初にこのステップＳ５５に来るときにはｉ＝ｊ＝１であるから、ｊはｉよりも小でないのでステップＳ５７へと進み、ｉをインクリメントして、ｉがチャンネル数ｎより小であるか否かを判定する（ステップＳ５８）。
【００１０】
ステップＳ５２でｉがｎより小であればステップＳ５２に戻る。例えばｎ＝10であればｉ＝２のときにステップＳ５２へと戻り、上記と同様にステップＳ５２→Ｓ５３→Ｓ５４→Ｓ５５と進むが、ｊ＝１、i＝２であるのでステップＳ５５からＳ５３へと戻る。そして、第２チャンネルCH2のリンク信号Ｘ[2]が第１チャンネルCH1のリンク信号Ｘ[1]と一致しているか否かを判定する。図２の例の場合には、Ｘ[2]＝Ｘ2、Ｘ[1]＝Ｘ1であるので、Ｘ[2]≠Ｘ[1]であり、ステップＳ５４→Ｓ５５→Ｓ５７→Ｓ５８と進む。図２の例の場合、第４チャンネルCH4までは上記と同様の処理を繰り返すから、CH1〜CH4に対応する一致CH番号は０のままである。
【００１１】
第５チャンネルCH5（つまりi=5）のときには、ｊ＝１であるときにＸ[5]＝Ｘ1、Ｘ[1]＝Ｘ1であるので、ステップＳ５３でＸ[5]＝Ｘ[1]となりステップＳ５６へと進む。このときには、リンクテーブルＴLのチャンネル番号ｉに対応してｊつまり「１」を書き込む。ｊは順次インクリメントされるから、仮に３個以上のチャンネル番号に同一の信号供給元がリンクされている場合、その最も小さな（若い）チャンネル番号が書き込まれることになる。こうした処理を繰り返し行うことにより、図２に示すリンク情報に対して図３に示すリンクテーブルを生成することができる。
【００１２】
上記アルゴリズムにおける処理はｉについて１からｎまで繰り返され、ｉが固定されている間にｊは０からｉになるまで繰り返される。或る値ｉにおける変数ｊのインクリメントは信号供給元が一致するチャンネル番号が見つかった時点で終了するから、全体の計算量は、全チャンネルが全て相異なる信号供給元にリンクされている場合に最大となる。すなわち、チャンネル数をｎとすると、最大の計算量は｛（ｎ＋１）×ｎ｝／２となり、信号点数のほぼ２乗に比例する。そのため、チャンネル数ｎが多くなるとリンクテーブルＴLの生成に要する時間は膨大になる。
【００１３】
監視／制御システム等においては、一般に、同一信号供給元を複数の信号供給先（チャンネル）にリンクさせる割合は総チャンネル数に対してかなり小さいため、上述したように計算量が最大に近くなるケースが殆どであり、リンクテーブルＴLの生成に要する時間が長くなる可能性がきわめて高い。このようにリンクテーブルＴLの生成に時間を要すると、例えばオペレータがリンク情報の登録内容を変更した場合に新たにリンクテーブルＴLを作成し直すための待ち時間が長くなり、オペレータの作業効率を低下させるのみならず、例えば、所定の監視や制御が行えない、いわゆる制御や監視の不感時間が長くなってしまうという問題もある。
【００１４】
【特許文献１】特開平8-179816号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明はこのような点に鑑みて成されたものであり、その目的とするところは、与えられたリンク情報に基づいてリンクテーブルを生成する際の所要時間を従来よりも短縮化することができるリンクテーブル生成方法と、そうした方法によって生成されたリンクテーブルを用いた信号選択装置を提供することである。
【課題を解決するための手段】
【００１６】
上記課題を解決するために成された本発明に係るリンクテーブル生成方法は、複数チャンネルの信号供給先の各チャンネルについて分配すべき信号の信号供給先を記述したリンク情報に基づいて、該信号供給元からそれぞれ得られる信号を選択して信号供給先に分配するに際し、前記リンク情報から、信号供給先の各チャンネルについて同一の信号供給元にリンクされている他のチャンネルの信号供給先の情報を一覧形式で記述したリンクテーブルを生成するリンクテーブル生成方法であって、
a)予め適宜のハッシュ関数を定めておき、
b)前記リンク情報に含まれる全ての信号供給元の情報にハッシュ関数を適用してそれぞれハッシュ値に変換し、ハッシュ値と代表的な１チャンネルの信号供給先との対応関係とを記述したハッシュテーブルを作成した後に、
c)信号供給先の各チャンネルについて所定の順番で、
c1)前記リンク情報に記述されている信号供給元の情報に前記ハッシュ関数を適用してハッシュ値を再計算し、
c2)前記ハッシュテーブルを参照して、当該信号供給先が再計算で求まったハッシュ値に対応付けられた信号供給先と同一であるか否かを判定し、
c3)その判定結果に応じて、その信号供給先に対応してリンク先が同一信号供給元である他の信号供給先をリンクテーブルに格納する
ようにしたことを特徴としている。
【００１７】
周知のようにハッシュ関数は文字列や数字列を固定長の疑似乱数に変換する関数であり、一般的なデータベース検索などに利用されている。本発明では、このハッシュ関数を利用した検索アルゴリズムつまりハッシュ法を、リンクテーブルを生成する際に同一信号供給元にリンクされている信号供給先が有るか否かを見い出すために利用する。ハッシュ関数としては、それ自体の演算自体に時間を要するものでなく、異なる信号列（ここでは信号供給元の情報）から同一のハッシュ値が導出されない、つまり衝突（collosion）ができるだけ発生しないものを選ぶことが望ましい。
【００１８】
リンク情報が与えられリンクテーブル生成処理が開始されると、まず、信号供給先を求めるための逆引き表としてのハッシュテーブルを作成する。そのために、リンク情報に含まれる全ての信号供給元の情報にハッシュ関数を適用してそれぞれハッシュ値に変換する。信号供給先と信号供給元とが１対１に対応している場合にはハッシュ値と信号供給先との対応関係は単純であるが、複数の信号供給先に同一の信号供給元がリンクされている場合には、１つのハッシュ値に複数の信号供給先が対応する。そのときには、所定の規則で、例えば最もチャンネル番号の小さなものを代表としてハッシュ値にそのチャンネルを対応付ける。
【００１９】
その後に、今度は信号供給先の各チャンネルについて所定の順番、例えば番号の最も小さなものから昇順で以て、リンク情報に記述されている信号供給元の情報に前記ハッシュ関数を適用してハッシュ値を再計算する。そして、再計算によって得られたハッシュ値をハッシュテーブルに適用し信号供給先を逆引きし、ハッシュテーブルから得られた信号供給先がその時点で処理対象である信号供給先と同一であるか否かを判定する。ハッシュテーブルから得られた信号供給先がその時点で処理対象である信号供給先と同一でない場合、そのハッシュ値の元となっている信号供給元には少なくとも２つ以上の信号供給先がリンクされていると判断することができる。そこで、上記判定結果に応じて、その信号供給先に対応してリンク先が同一信号供給元である他の信号供給先をリンクテーブルに格納する。こうした処理を全ての信号供給先について繰り返し行うことにより、信号供給先の各チャンネルについて同一の信号供給元にリンクされている他のチャンネルの信号供給先の情報を一覧形式で記述したリンクテーブルを得ることができる。
【００２０】
すなわち、この方法によれば、従来、或る１つのチャンネルについて信号供給元が同一であるか否かを自チャンネルよりも若番の全チャンネルに亘って順番に探索していた作業が、ハッシュテーブルで逆引きをしてそれを判定するという作業に置き換えられるので、処理手順が非常に簡略化される。もちろん、ハッシュテーブルの作成やハッシュ値の再計算に長い時間を費やすのであれば、処理手順が簡略化されても処理時間の短縮化につながらないため、上述したようにハッシュ関数は計算が簡単なものである必要がある。また、本発明に係るデータリンク生成方法では、ハッシュ値が同一となるような衝突があるか否かを判定し、衝突がある場合には従来のようにチャンネルの番号順に信号供給元が同一であるか否かを探索していくような処理を組み込んでおくことが好ましい。もちろん、ハッシュ関数を適切に選びさえすれば実際に衝突が起きる可能性はきわめて低いので、実質的にそれによって処理時間が大幅に長くなることは回避できる。
【００２１】
また、本発明に係る信号選択装置は、上記発明に係るリンクテーブル生成方法によってリンク情報から生成されたリンクテーブルを記憶しておき、ｎチャンネルの信号供給先に対して１組のデータセットとして供給するｎ個の信号を選択する際に、前記リンクテーブルに基づいて、同一信号供給元にリンクされていて互いに異なる信号供給先に対しては同一の信号を供給することを特徴としている。
【００２２】
この信号選択装置によれば、信号供給元からの信号の入力のタイミングとは無関係に、同一信号供給元にリンクされている複数の信号供給先に対しては信号が同一となるデータセットを供給することができる。したがって、例えば信号供給先においてこれらｎ個の信号に基づいて演算処理等を行う場合でも、正確な演算結果を得ることを保証することができる。
【発明の効果】
【００２３】
本発明に係るリンクテーブル生成方法によれば、リンクテーブルを生成するために処理手順が従来よりも大幅に簡略化されるので、リンクテーブルの生成に要する時間を短縮することができ、しかも特に信号供給先のチャンネル数が多い場合にその時間短縮の効果が顕著である。それによって、リンク情報の内容の変更の際にもオペレータの待ち時間が短くて済み作業を効率的に行うことができるとともに、例えばプロセス制御／監視等においては制御／監視が行えない不感時間を短くして、より良好な制御／監視を継続することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明に係るリンクテーブル生成方法の一実施例について図面を参照して説明する。図５及び図６は本実施例におけるリンクテーブル生成のアルゴリズムを示すフローチャートである。
【００２５】
本実施例のリンクテーブル生成方法では、リンクテーブルを生成する前にハッシュ関数を利用して図７に示すようなハッシュテーブルＴHを作成する。ハッシュ関数はハッシュ値が０〜ｎより大の整数をとり、且つ異なる信号供給元の情報に対するハッシュ値がなるべく同一とならないように選ぶことが望ましい。また、あまり複雑な計算を伴うものではハッシュ値の算出に時間を要するため、リンクテーブル生成時間を短縮化したいという本来の目的に反する。そこで、ここではこうした条件を満たしつつ計算負荷を軽くするために、ｐ≧ｎとなるような素数ｐを選択し、次式をハッシュ関数とした。
ｈ（ｘ）＝ｘ  mod  ｐ
すなわち、ハッシュ値はｘをｐで除した剰余である。
【００２６】
リンクテーブル生成処理が開始されると、まずハッシュテーブルＴHの生成処理を実行する（ステップＳ１０）。ハッシュテーブルＴHの生成処理では、まず、ハッシュテーブルＴHの右欄（チャンネル番号）を全て０にクリアし（ステップＳ３０）、チャンネル番号ｉ＝１とし（ステップＳ３１）、リンク情報４において第１チャンネルCH1にリンクされている信号供給元のデータ情報Ｘｉを上記ハッシュ関数に適用して計算したハッシュ値ｈ（Ｘｉ）をインデクスＨiとする（ステップＳ３２）。
【００２７】
次に、ハッシュテーブルＴHにおいてインデクスＨiの右欄の内容ＴH[Ｈi]が０であるか否かを判定する（ステップＳ３３）。ＴH[Ｈi]＝０である場合には、その欄には未だ内容の書き込みが為されていないことを意味するから、ステップＳ３７に進み、ＴH[Ｈi]にそのときのチャンネル番号ｉを書き込む。一方、ＴH[Ｈi]≠０である場合には、その欄には既に内容の書き込みが為されているから、その内容であるＴH[Ｈi]が現時点でのチャンネル番号ｉよりも大きいか否かを判定する（ステップＳ３４）。
【００２８】
ＴH[Ｈi]がｉよりも大である場合には、上記ステップＳ３７に進み、ＴH[Ｈi]の内容をそのときのチャンネル番号ｉに書き換える。すなわち、その欄に既に内容の書き込みが為されている場合であって、ＴH[Ｈi]がｉよりも大きい場合には内容をより若いチャンネル番号に変更し、ＴH[Ｈi]がｉと同じかｉよりも小さい場合には、既に書き込まれているチャンネル番号のほうが若いのでＴH[Ｈi]の内容の書き換えの必要はない。
【００２９】
そして、次いでチャンネル番号ｉをインクリメントし（ステップＳ３５）、ｉがｎよりも小さければ（ステップＳ３６で「Yes」）ステップＳ３２へと戻る。ｉ＝０〜ｎまでＳ３２〜Ｓ３７の処理を繰り返すことにより、ハッシュテーブルＴH には、ハッシュ値をインデクスＨiとして対応するチャンネル番号が格納され、且つ同一のハッシュ値に複数のチャンネル番号が対応する場合には、その中で最も若いチャンネル番号が格納される。対応するチャンネル番号が存在しないハッシュ値をインデクスとする欄には、当初にクリアによって格納された「０」が存在する。こうして、信号供給元の情報がハッシュ値に変換されたハッシュテーブルＴHが完成する。
【００３０】
こうしてハッシュテーブルＴHを作成した後、リンクテーブルＴLの作成処理に取り掛かる。すなわち、まずリンクテーブルＴLの内容（図３では一致CH番号の欄）を全て０にクリアし（ステップＳ１１）、チャンネル番号ｉを１にセットする（ステップＳ１２）。その後に、リンク情報４において第１チャンネルCH1にリンクされている信号供給元の情報Ｘｉを上記ハッシュ関数に適用して計算したハッシュ値ｈ（Ｘｉ）を計算する。そして、このハッシュ値をインデクスとしてハッシュテーブルＴHからチャンネル番号を読み出し、それをｋとする（ステップＳ１３）。このｋがｉと一致しているか否かを判定する（ステップＳ１４）。
【００３１】
上述したように、或るハッシュ値に複数のチャンネル番号が対応している場合、ハッシュテーブルＴHでは、それら複数のチャンネル番号の中で最も若いチャンネル番号が格納されている。したがって、ｋがｉとが一致している場合には、そのチャンネル番号と同一の信号供給元を有するチャンネル番号でそのチャンネル番号より若番のチャンネルは他には存在しないことになる。そこで、ｉ＝ｋであればステップＳ２２に進み、ｉをインクリメントして、ｉがチャンネル数ｎより小であるか否かを判定する（ステップＳ２３）。すなわち、この場合には、リンクテーブルＴLにおいてチャンネル番号ｉに対する右欄にはクリア時に格納された「０」がそのまま残る。ｉがｎより小さければステップＳ１３に戻りインクリメントされたチャンネル番号について上記と同様の処理を続行する。
【００３２】
通常、異なる信号供給元に対しては異なるハッシュ値が求まっているから、図２の例の場合、チャンネル番号ｉが４まではステップＳ１４でｉ＝ｋであると判定される処理が繰り返される。ｉ＝５になると、それに対応して求まるハッシュ値はｉ＝１のときと同じになるが、ハッシュテーブルＴHには最も若いチャンネル番号のみが格納されているから、このハッシュ値に対しては「１」が格納されておりｋ＝１となる。そのため、ｋ≠ｉであるからステップＳ１４からＳ１５へと進み、信号供給元が本当に一致しているかどうかを確認するためにＸiがＸkと一致しているか否かを判定する。この判定を行うのは、信号供給元が異なっていても、偶然、ハッシュ値が一致してしまう場合（つまり衝突が生じる）があり得るからである。
【００３３】
ここでＸi＝Ｘkであれば、信号供給元が同一である、チャンネル番号のより若い他のチャンネルが存在することを意味するから、ステップＳ１６へと進んで、リンクテーブルＴLのチャンネル番号ｉに対応してｋを書き込む。前述のようにｋは同一信号供給元にリンクされた複数のチャンネルの中で最も若いチャンネル番号であり、ｉ＝５のときにはｋ＝１であるから、リンクテーブルＴLのチャンネル番号CH5の右欄に「１」を書き込む。そして、ステップＳ２２へと進んでｉをインクリメントする。
【００３４】
もし、ステップＳ１５でＸi≠Ｘkと判定された場合には、ハッシュ値は一致しているが信号供給元は異なるということを意味する。この場合には、もはやハッシュ値を利用して同一信号供給元にリンクされている他のチャンネルを探索することは不可能であるから、従来のアルゴリズム（図４）のステップＳ５２〜Ｓ５６と同一の手順を踏むステップＳ１７〜Ｓ２１の処理を実行する。すなわち、チャンネル番号がｉよりも小さなものにリンクされている信号供給元を１つずつ調べていって、一致するものがあるか否かを判定する。ステップＳ１７〜Ｓ２１の処理を実行する回数が多いと計算時間が長くなるが、ハッシュ関数を適切に決めておけば、異なる信号供給元に対するハッシュ値が同一になることは殆どない。したがって、実際上、ステップＳ１７〜Ｓ２１の処理を実行することは全く無いか、有ったとしてもきわめて希である。こうしたことから、計算回数を算出する上では、このステップＳ１７〜Ｓ２１の実行回数は無視することができる。
【００３５】
こうしてｉがチャンネル数ｎに達するまで上記処理を繰り返し実行することによって、図３に示すようなリンクテーブルＴLを生成することができる。
【００３６】
本実施例のリンクテーブル生成のアルゴリズムによる計算量削減効果について具体的に説明する。いま、例えばチャンネル数ｎが8000である場合について考える。
上述した従来のリンクテーブル生成アルゴリズムの場合、リンクテーブルＴLを生成する際に信号供給元が全く重複しない最悪の場合を想定すると、
(8000＋1)×8000／2≒32×106（回）
だけ処理ループを繰り返すことになる。これに対し、本実施例のリンクテーブル生成アルゴリズムの場合、ハッシュテーブルＴHを生成する際に8000回の処理ループの繰り返しを行った後に、ハッシュ値の重複さえなければ8000回の処理ループの繰り返しによってリンクテーブルＴLが完成する。すなわち、合計で16000＝16×103（回）の処理ループの繰り返しによってリンクテーブルＴLが完成することになる。したがって、従来よりも格段に少ない処理ループ繰り返し回数で済む。ハッシュ値の演算には通常の判定、インクリメント等の処理に比べて時間が掛かるものの、それを考慮してもリンクテーブルＴLの生成に要する時間は従来よりも大幅に短縮できる。
【００３７】
なお、上記実施例は本発明の一例にすぎず、本発明の趣旨の範囲で適宜、変形、修正、追加を行っても本願発明に包含されることは明らかである。
【図面の簡単な説明】
【００３８】
【図１】本発明によるリンクテーブル生成方法を適用する制御／監視システムにおける処理装置の要部のブロック構成図。
【図２】登録されるリンク情報の一例を示す図。
【図３】図２に示すリンク情報に基づいて作成されるリンクテーブルを示す図。
【図４】従来のリンクテーブル生成アルゴリズムを示すフローチャート。
【図５】本発明の一実施例によるリンクテーブル生成アルゴリズムを示すフローチャート。
【図６】図５中のハッシュテーブル生成の処理手順を示すフローチャート。
【図７】図２に示すリンク情報に基づいて作成されるハッシュテーブルの例を示す図。
【符号の説明】
【００３９】
１…データ収集部
２…データメモリ
３…データ選択処理部
４…リンク情報
５…リンクテーブル
６…演算処理部
【図１】
2005267213.tif 000003
【図２】
2005267213.tif 000004
【図３】
2005267213.tif 000005
【図４】
2005267213.tif 000006
【図５】
2005267213.tif 000007
【図６】
2005267213.tif 000008
【図７】
2005267213.tif 000009