(57)【要約】【課題】同一伝送路上で内容コード通信方式や送信先指定による１対１通信方式などの異なる通信方式が混在してもデータの送受信を可能とする。【解決手段】機器の制御や他の機器との通信等の処理を行う演算手段と当該演算手段にて処理されるプログラムを格納する記憶手段とを含む制御処理装置を備えた機器が、伝送路を介して複数接続された分散制御システムにおいて、前記制御処理装置は、前記伝送路上を流れるメッセージより受信すべきメッセージを選択する比較選択回路を有し、当該制御処理装置は前記比較選択回路を介して前記伝送路に接続されることを特徴とする。【選択図】図３
2006141068.tif 000002
【特許請求の範囲】
【請求項１】
機器の制御や他の機器との通信等の処理を行う演算手段と当該演算手段にて処理されるプログラムを格納する記憶手段とを含む制御処理装置を備えた機器が、伝送路を介して複数接続された分散制御システムにおいて、
前記制御処理装置は、前記伝送路上を流れるメッセージより受信すべきメッセージを選択するフィルタリング回路を有し、当該制御処理装置は前記フィルタリング回路を介して前記伝送路に接続されることを特徴とする分散制御システム。
【請求項２】
前記請求項１において、
前記フィルタリング回路は、
外部から入力されるデータ及びデータに付随する条件情報を含むメッセージを格納するメッセージ格納部と、
受信すべきメッセージの条件を示す条件情報を予め格納した登録部と、
前記メッセージに含まれるデータに付随する情報と前記登録部内の条件情報とを比較する比較部と、
当該比較部の比較結果に応じて、前記メッセージ格納部内のメッセージを格納し、且つ外部へ出力する受信メッセージ格納部とを有することを特徴とする分散制御システム。
【請求項３】
前記請求項２において、
前記比較部は、ＤＳＰ（Digital Signal Processor）より構成されることを特徴とした分散制御システム。
【請求項４】
前記請求項２において、
前記比較部は、プログラマブル・ロジック回路より構成されることを特徴とした分散制御システム。
【請求項５】
外部から入力されるデータ及びデータに付随する条件情報を含むメッセージを格納するメッセージ格納部と、
受信すべきメッセージの条件を示す条件情報を予め格納した登録部と、
前記メッセージに含まれるデータに付随する情報と前記登録部内の条件情報とを比較する比較部と、
当該比較部の比較結果に応じて、前記メッセージ格納部内のメッセージを格納し、且つ外部へ出力する受信メッセージ格納部とを有することを特徴とするフィルタリング回路。
【請求項６】
前記請求項５において、
前記比較部は、ＤＳＰ（Digital Signal Processor）より構成されることを特徴としたフィルタリング回路。
【請求項７】
前記請求項５において、
前記比較部は、プログラマブル・ロジック回路より構成されることを特徴としたフィルタリング回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の制御装置を共通の伝送路で接続することにより構成される分散制御システムに係り、特に、伝送路からメッセージを選択して受信するための分散制御システム、及びフィルタリング回路に関する。
【背景技術】
【０００２】
プロセスオートメーションやファクトリーオートメーションのシステムでは、圧力，温度，流量などの物理量を検出するセンサー，流量などを制御するバルブ，機械を駆動するモーター，位置検出を行うフォトセンサーなど、プロセッサを備えたフィールド機器と呼ばれる機器が多数利用されている。このようなフィールド機器と、フィールド機器を制御するＰＣ（プログラマブル・コントローラ）、更に、入出力装置や表示装置を備えたコンピュータなどを伝送路で接続し、相互にメッセージを送受信することによりプラントなどを制御するシステムを一般に分散制御システムと呼ぶ。
【０００３】
分散制御システムにおける通信では、例えば、同一のセンサーデータを複数のモーターにて同時に受信し、各々のモーターで独自にセンサーデータに対応した処理を実行するといった場合など、プラント等制御対象をリアルタイムで制御するため、フィールド機器を制御するためのデータ（以下、メッセージという。）を短時間で送受信しなければならない。また、プラントなどの拡張や変更が行われ、システム構成が頻繁に変化するため、フィールド機器やＰＣの拡張，リプレースに対する要求も強い。
【０００４】
このような分散制御システムの要求を満足するため、従来は、メッセージにデータの内容を示す内容コードを付与してメッセージを伝送路にブロードキャストし、伝送路に接続された各ノードがメッセージに付与された内容コードをもとにメッセージを選択受信するという内容コード通信方式が用いられている。内容コード通信方式に関しては、例えば特開昭５６−１１１３５３号公報（特許文献１）に記載されている。
【０００５】
【特許文献１】特開昭５６−１１１３５３号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
近年、半導体技術の進歩により、フィールド機器のインテリジェント化が進み、従来、単に検出や測定のみを行っていたフィールド機器において、自己診断やフィードバック制御などの複雑な処理を実行するようになってきている。これに伴い、フィールド機器の上位機器であるコンピュータなどから、フィールド機器の自己診断情報を収集したり、フィールド機器へ複数のパラメータ情報を設定する、などの処理を行う必要性が生じている。これにより、従来、上位のコンピュータやフィールド機器間を接続する伝送路では、プラントなどを制御するデータ長の短いメッセージ（以下、制御系データと呼ぶ）が短時間で送受信されていたのに加え、自己診断情報やパラメータ設定情報などのデータ長が長く、また必ずしも短時間で送受信される必要のない制御系データとは質の異なるメッセージ
（以下、情報系データと呼ぶ）が混在するようになってきている。
【０００７】
制御系データは、分散制御システムの拡張性や同期などに対する要求により、前述のように内容コード通信方式にて送受信するが、情報系データは複数のノードに対して同時に送信する必要性がないため、送信先を指定して送信する、いわゆる１対１通信方式を行うのが良い。しかしながら、情報系データはデータ長が長いために受信したノードにおける通信処理に時間がかかり、処理負荷も上がるという特徴がある。
【０００８】
上記従来技術で示した内容コード通信方式では、送信先を指定せず、データにデータ自身の内容を示す内容コードを付与してブロードキャストする。このため、例えば送信先を指定してデータを送信することはできないため、送信先を指定しない内容コード通信方式と送信先を指定する１対１通信方式を混在して使用することはできないという問題があった。
【０００９】
また、内容コード通信方式を使用するシステムでは、伝送路を流れる全てのメッセージを受信し、内容コードをもとにメッセージを受信するか否かを判断するため、受信したノードにおける通信処理の負荷が大きいという問題があった。特に、機器制御と通信処理を同じＣＰＵにて行うフィールド機器では、内容コード通信方式により通信処理の負荷が大きくなるとフィールド機器の制御を実行するアプリケーションプログラムの処理に影響を及ぼし、処理のタイミングや周期を守ることができなくなり、プラントなどを正常に制御できなくなる。これにより、プラントの安全性を損なったり、生産ラインの歩留まりを低下させるなどの問題が発生する。
【００１０】
本発明の第１の目的は、このような従来技術の問題を解決し、内容コード通信方式や送信先指定による１対１通信方式などの異なる通信方式の混在を可能とし、同一伝送路上で制御系データや情報系データなどの質の異なるデータの送受信を可能とすることにある。
【００１１】
本発明の第２の目的は、通信処理の負荷向上がアプリケーションプログラムなどの他の処理に対して影響を及ぼすのを防ぐことにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するための本発明の特徴は、機器の制御や他の機器との通信等の処理を行う演算手段と当該演算手段にて処理されるプログラムを格納する記憶手段とを含む制御処理装置を備えた機器が、伝送路を介して複数接続された分散制御システムにおいて、前記制御処理装置は、前記伝送路上を流れるメッセージより受信すべきメッセージを選択する比較選択回路を有し、当該制御処理装置は前記比較選択回路を介して前記伝送路に接続されることである。
【００１３】
また、各々が独自に動作するための制御手段を有する機器を伝送路に複数接続して構成される分散制御システムの各機器において、前記伝送路上を流れるメッセージを受信するステップと、前記受信したメッセージ内の少なくとも２つのメッセージ内比較部と予め受信すべきメッセージの条件として登録された条件データとを比較するステップと、比較した結果に基づいてメッセージを受信するか否かを判断するステップを行うことである。
【００１４】
また更には、外部から入力されるデータ及びデータに付随する条件情報を含むメッセージを格納するメッセージ格納部と、受信すべきメッセージの条件を示す条件情報を予め格納した登録部と、前記メッセージに含まれるデータに付随する情報と前記登録部内のデータとを比較する比較部と、当該比較部の比較結果に応じて、前記メッセージ格納部内のメッセージを格納し、且つ外部へ出力する受信メッセージ格納部とを有することを特徴とするフィルタリング回路を構成することである。
【００１５】
本発明では、必要なメッセージのみを選択して受信するフィルタリング手段を備えることにより、１つのプロセッサで制御と通信の両方の処理を実行するフィールド機器であっても、通信処理の負荷向上が制御処理に影響を及ぼさないようにすることができる。
【発明の効果】
【００１６】
本発明によれば、受信したメッセージ内に含まれる少なくとも２つの条件データを予め登録されたデータと比較してメッセージを選択受信するフィルタリング回路を備えることにより、選択受信するための処理をＣＰＵで行う必要はなくなり、通信処理が他の処理に影響を及ぼすことなく、ＣＰＵの負荷軽減が可能となる。よって、安価なＣＰＵを使ってコントローラを構成することが可能となる。
【００１７】
また、制御系と情報系の混在した種々のメッセージが送受信される伝送路において、必要なメッセージのみを効率よく受信することが可能となる。
【００１８】
従って、プログラムを開発するプログラマは不要なメッセージを処理するためのプログラム開発が必要なくなると共に、不要なメッセージの受信による通信負荷向上の影響を考慮することなく、容易にプログラムを開発することができる。
【発明を実施するための最良の形態】
【００１９】
（実施例１）
本発明における第１の実施例について説明する。
【００２０】
図１は本発明を適応した分散制御システムの構成例である。プロセッサ１０１，プロセッサ１０２，プロセッサ１０３は、各ノードの制御及び他のノードとの通信処理を行う構成要素であり、それぞれ伝送路１００に接続されている。各プロセッサは接続される伝送路１００を介してメッセージを送受信する。本実施例では、伝送路としてバス型の伝送路を適応した例を示すが、これは任意の形態の伝送路でよく、無線・赤外線などの通信手段を用いてもよい。
【００２１】
また、プロセッサを実装したノードとしては、例えば、汎用計算機，制御用プロセスコンピュータ，ワークステーション，パーソナルコンピュータ，ＰＣ（プログラマブル・コントローラ），インテリジェントＩ／Ｏデバイスなどのフィールド機器等が挙げられる。また更に、このようなプロセッサを実装したノードを有するシステムとしては、プロセスオートメーションやファクトリーオートメーションのシステム以外に、半導体製造装置やホーム／ビルオートメーション、または血液自動分析装置などの医用システム等においても本発明のシステムを適用することができる。
【００２２】
図２にプロセッサの構成を示す。プロセッサ２００は、自ノードの制御や他のノードの通信などの処理を行うプログラムを実行する演算処理装置であるＣＰＵ２０１，プログラムを記憶する不揮発性メモリであるＲＯＭ２０２，データを一時的に記憶する揮発性メモリであるＲＡＭ２０３、タイマーなどの周辺機器２０４，伝送路２１０より受信するメッセージを選択して記憶するフィルタリング回路２０５，各回路が接続されている内部バスにより構成され、これらが１チップに実装されている。これらのプロセッサ２００の各構成要素は、内部バス２０６を介して相互にデータを交換することができる。
【００２３】
図３にフィルタリング回路の構成を示す。フィルタリング回路３００は伝送路３５０上を流れる全てのメッセージ３１０を受信する。フィルタリング回路３００はメッセージ
３１０を受信すると、メッセージ格納部３０１に、シリアルで伝送されてきたメッセージ３１０をパラレルに変換して格納する。フィルタリング回路３００は、メッセージ３１０内の複数のメッセージ内比較部と登録部３０２１，３０２２，３０２３に登録されたデータを比較部３０３１，３０３２，３０３３で比較し、メッセージ３１０を受信するか否かを判断する。
【００２４】
フィルタリング回路の該略図を図４に示す。登録部４００には、メッセージを受信するか否かを判断するための複数の条件データを登録できる（以下、このデータを登録データと呼ぶ）。これらのデータは、例えば内部バスを介してＣＰＵより登録される。図４では、登録データ１（４００１），登録データ２（４００２），登録データ３（４００３），登録データ４（４００４）が登録されている例を示す。比較部４０３は、メッセージ格納部４２０に伝送路より受信されたメッセージ４１０が格納されると、メッセージ内比較部４０１と登録部４００内の複数のデータを順次比較し、一致しているか否かを判断する。比較部４０３が比較するメッセージ内比較部４０１の位置（メッセージの先頭からのビット数またはバイト数）とサイズ（ビット数またはバイト数）は、予め決まっている。また、１つの比較部は、メッセージ４１０内の１つのメッセージ内比較部を比較する。
【００２５】
比較部４０３にて比較された結果は、制御部４０４に通知される。図４の場合、比較部４０３はメッセージ内比較部４０１のデータと登録データ１（４００１），登録データ
２（４００２），登録データ３（４００３），登録データ４（４００４）を比較し、１つでも一致した場合にはデータが一致したと判断し、一致した旨を制御部４０４に通知する。
【００２６】
ここで、メッセージには少なくとも２つのメッセージ内比較部があるものとする。図３で示したメッセージ３１０にはメッセージ内比較部３００１,３００２,３００３があり、フィルタリング回路３００は、これらを比較するために同数の比較部３０３１，３０３２，３０３３を備えている。また、各比較部はそれぞれ１つの登録部を備えている。比較部３０３１では登録部３０２１の登録データとメッセージ内比較部３００１のデータを比較する。同様に、比較部３０３２では登録部３０２２の登録データとメッセージ内比較部
３００２のデータを比較し、比較部３０３３では登録部３０２３の登録データとメッセージ内比較部３００３のデータを比較する。比較部３０３１，３０３２，３０３３は、各登録部に一致する登録データがあったか否かを制御部３０４に通知する。
【００２７】
制御部３０４は、図５に示す比較部設定レジスタ５００及びメッセージ内比較部位置設定レジスタ５１０を備える。比較部設定レジスタ５００は、比較部を有効とするか無効とするかを設定するためのレジスタである。比較部設定レジスタ５００は比較部と同数の有効／無効設定フラグにより構成され、各有効／無効設定フラグは比較部に１対１で対応する。例えば、有効／無効設定フラグ５００１，５００２，５００３は、比較部３０３１，３０３２，３０３４に対応する。有効／無効設定フラグが無効と設定された場合、比較部で一致したか否かに関わらず、常に一致したものと見なされる。
【００２８】
また、メッセージ内比較部位置設定レジスタ５１０は、各比較部において比較されるメッセージ内比較部の位置およびサイズを登録する。メッセージ内比較部位置設定レジスタ５１０は、バイトオフセット５１０１,５１０３,５１０５とバイト数５１０２，５１０４，５１０６により構成される。各バイトオフセットとバイト数は比較部に１対１で対応する。例えば、バイトオフセット５１０１とバイト数５１０２は比較部３０３１に、バイトオフセット５１０３とバイト数５１０４は比較部３０３２に、バイトオフセット５１０５とバイト数５１０６は比較部３０３３に対応する。バイトオフセットは、メッセージの先頭からのバイト数であり、各メッセージ内比較部の先頭位置を示す。バイト数はメッセージ内比較部のサイズを表わす。尚、ここでは、メッセージ内比較部の位置をバイトで扱う例を示したが、メッセージ内比較部の先頭位置やサイズをバイトで表現できない場合には、バイトオフセットはビットオフセット（メッセージの先頭からのビット数）、バイト数はビット数であってもよい。メッセージ内比較部位置設定レジスタ５１０の各バイトオフセットとバイト数は、例えばＣＰＵにより内部バスを介して設定される。
【００２９】
制御部３０４は、各比較部の結果が全て一致した場合、メッセージ格納部３０１内のメッセージ３１０を受信メッセージ格納部３０５に格納する。受信メッセージ格納部３０５は、メッセージを複数格納でき、内部バス３６０を介して順次ＣＰＵより読み出せるFIFO型のメモリ領域であるが、メッセージを上書きして最新のメッセージのみを格納するオーバーライト型のメモリ領域であってもよい。受信メッセージ格納部３０５に格納されたメッセージは、内部バス３６０を介してＣＰＵに読み込まれ、ＣＰＵで実行されるプログラムにより処理される。比較部の結果が１つでも不一致であった場合、メッセージ格納部
３０１内のメッセージ３１０は廃棄される。
【００３０】
また、フィルタリング回路３００にてメッセージを送信することもできる。メッセージを送信する場合、ＣＰＵは内部バス３６０を介して送信するメッセージを送信メッセージ格納部３０６に格納する。フィルタリング回路３００は、メッセージが送信メッセージ格納部３０６に格納されると、メッセージを伝送路３５０に送信する。
【００３１】
フィルタリング回路にてメッセージを受信したときの処理フローを図６に示す。フィルタリング回路は伝送路よりメッセージを受信すると（ステップ６０１）、メッセージをメッセージ格納部に格納する（ステップ６０２）。各比較部は格納されたメッセージの予め指定されたメッセージ内比較部のデータを読み込む（ステップ６０３）。登録部に比較すべき登録データがある場合（ステップ６０４）、比較部は登録部の登録データを１つ読み込み（ステップ６０５）、メッセージ内比較部のデータと比較する（ステップ６０６）。比較した結果、データが不一致の場合（ステップ６０６）、比較部は登録部に次の登録データがあるか否かを判断する(ステップ６０４)。データが一致した場合(ステップ６０６)、データが一致した旨を制御部に通知する（ステップ６０７）。登録部にデータがない場合（ステップ６０４）、登録部は制御部にデータが不一致である旨を通知する（ステップ６０８）。ステップ６０３からステップ６０８の処理は、全ての比較部において並行して実行される。制御部は全ての比較部から比較結果を受け取ると、有効／無効設定フラグが有効と設定されたフラグに対応する全比較部からの比較結果が一致であるか否かを判断する（ステップ６０９）。全て一致であった場合には、メッセージ格納部に格納されたメッセージを受信メッセージ格納部に格納する（ステップ６１０）。１つでも不一致であった場合には、メッセージ格納部に格納されたメッセージを廃棄する（ステップ６１１）。
【００３２】
本実施例におけるシステムの構成例と設定例を図７に示す。
【００３３】
図７は、システムの構成例である。伝送路７００には、オペレータ用のディスプレイ装置を備えたコンピュータＡ（７０１），コンピュータＢ（７０２）、そしてＡ地点に設置されたデバイスＡ（７０３）、Ｂ地点に設置されたデバイスＢ（７０４），Ｃ地点に設置されたデバイスＣ（７０５）が接続されている。デバイスは、入出力Ｉ／Ｏを備えたセンサーやモーターであり、プラントの制御を行う。図７では、デバイスＡ（７０３）は物体を検知するセンサーであり、デバイスＢ(７０４)はモーターであり、デバイスＣ(７０５)はモーターである。
【００３４】
これらの各ノードは、同じメッセージフォーマットのメッセージ７５０を伝送路７００に送信する。メッセージ７５０は、メッセージ７５０内のデータ７５４の種別を表わすデータ種別７５１，メッセージ７５０を送信したノードを識別するための送信元ノード識別子７５２，メッセージ７５０の送信先のノードを識別するための送信先ノード識別子753により構成される。主に、コンピュータ間では文書などの情報系データが送受信され、デバイス間ではセンサーデータなどの制御系データが送受信される。
【００３５】
ここで、コンピュータＡ（７０１）は自分宛に送られる文書データ，画像データ，音声データなどの情報系データを受信して処理し、デバイスＢ(７０４)はデバイスＡ(７０３)が送信するセンサーデータ等の制御系データを受信してモーターを駆動し、デバイスＣ
(７０５)はセンサーデータ等を受信してモーターを駆動するものの、デバイスＡ(７０３)からのセンサーデータは受信しないものとする。図８に、コンピュータＢ（７０２）がコンピュータＡ（７０１）に文書データを含むメッセージ７１０を送信し、デバイスＡ
（７０３）が宛先を指定せずにセンサーデータを含むメッセージ７２０を送信したと仮定し、コンピュータＡ（７０１）とデバイスＢ（７０４）の設定例を示す。
【００３６】
コンピュータＡでは、特定の種類のデータを受信するため、「データ種別」に対応する比較部設定レジスタの有効／無効設定フラグ（８０１）を有効＝１に設定する。コンピュータＡでは、データ種別として「文書データ」，「画像データ」，「音声データ」を取り込むため、登録部８１１に登録データとして、これらのデータ種別を登録する。また、自ノード宛のメッセージのみを受信するため、「送信先ノード識別子」に対応する比較部設定レジスタの有効／無効設定フラグ（８０３）を有効＝１に設定する。そして、登録部
８１３には、登録データとして自ノードを表わす「コンピュータＡ」を登録する。また、送信元には関係なく任意のノードからのメッセージを受信するため、「送信元ノード識別子」に対応する比較部設定レジスタの有効／無効設定フラグ（８０２）を無効＝０に設定する。従って、登録部８１２に登録データを登録したとしても、有効／無効設定フラグ
（８０２）が無効である限り、比較結果は常に一致したと判断される。これらの設定により、コンピュータＡでは自分宛の文書データ，画像データ，音声データのみを選択受信することができる。ここでは登録データとメッセージ内比較部に日本語の文字列を使った例を示したが、英語の文字列や文字列に対応した数値（例えば、文書データ＝１，画像データ＝２，音声データ＝３と文字列に対して規定された意味のある数値）であってもよい。
【００３７】
デバイスＢでは、センサーデータとスイッチデータを受信する。またＡ地点のセンサー（デバイスＡ），Ｄ地点のセンサー，Ｂ地点のスイッチからのデータのみを受信してモーターを駆動する。尚、Ｄ地点のセンサーとＢ地点のスイッチは図７には示していない。デバイスＢでは、特定の種類のデータを受信するので、比較部設定レジスタの「データ種別」に対応する有効／無効設定フラグ８５１は有効＝１に設定する。センサーデータとスイッチデータのみを受信するため、これらのデータ種別を登録部８６１に登録データとして登録する。また、特定のノードから送信されたデータを受信するため、「送信元ノード識別子」に対応する有効／無効設定フラグ８５２は有効＝１に設定する。そして、Ａ地点センサー，Ｄ地点センサー，Ｂ地点スイッチからのデータのみを受信するので、これらの
「送信元ノード識別子」を登録部８６２に登録する。制御データは複数のノードにより受信されるため、送信先を指定せずにブロードキャストされる。このため、メッセージには「送信先ノード識別子」が指定されていない。従って、送信先ノードは任意であり、送信先ノード識別子に対応する有効／無効設定フラグ８５３は無効＝０に設定する。これらの設定により、デバイスＢではＡ地点センサー，Ｄ地点センサー，Ｂ地点スイッチより送信されたセンサーデータとスイッチデータのみを受信し、これに該当しないメッセージは全てフィルタリング回路にて廃棄される。
【００３８】
この実施例によれば、プロセッサがメッセージを受信すると、プロセッサ内のフィルタリング回路によりメッセージ内の複数のデータが事前に登録された登録データと比較され、メッセージを受信するか否かが判断される。これにより、ユーザは受信したいメッセージを受信するための条件を登録すれば、この条件に合致したメッセージのみを受信することができ、不要なメッセージを受信しなくてもよい。例えば、コンピュータで自分宛の文書データのみを受信する、デバイスで特定デバイスから送信されたセンサーデータのみを受信するといった、制御系データと情報系データが混在したシステムを構築することが可能である。また、メッセージを受信するか否かという判断をフィルタリング回路にて行うことにより、判断を高速に行うことが可能であり、メッセージの取りこぼしをなくすことができる。従来のようにＣＰＵにてメッセージを受信するか否かの判断を行う必要がないため、この処理によりＣＰＵ負荷が向上することがなく、ＣＰＵで実行されるプログラム処理に影響を及ぼさない。プログラムを開発するプログラマは、受信処理による影響を考慮せず、効率的にプログラム開発を行うことができる。
【００３９】
（実施例２）
本発明における第２の実施例を説明する。
【００４０】
上記の第１の実施例では、メッセージのメッセージ内比較部毎（比較部毎）に比較結果を有効にするか無効にするかを設定する例を示した。本第２の実施例における特徴は、比較結果を有効にするか無効にするかの設定を、第１の実施例と異なり、登録部に登録された登録データ毎に行う点にある。システムの構成（図１），プロセッサの構成（図２），フィルタリング回路の構成（図３）は第１の実施例と同じであるが、登録部の構成および制御部の処理が異なる。
【００４１】
本実施例では、制御部には、図５で示す比較部設定レジスタ５００は存在せず、メッセージ比較部位置設定レジスタ５１０のみを有する。
【００４２】
登録部の構成を図９に示す。登録部９００には、登録データ９１０と次比較部有効フラグ９２０が登録される。これらの登録は、例えばＣＰＵより内部バスを介して行われる。図９に示す例では、登録データ９１０として登録データ１、この登録データ１に対応する次比較部有効フラグ９２０として「有効」が登録されている（９００１）。同様に登録データ２と次比較部有効フラグ９２０が「無効」（９００２）、登録データ３と次比較部有効フラグ９２０が「無効」(９００３)が登録されている。本実施例の場合、図３に示した比較部３０３１は、メッセージ３１０内のメッセージ内比較部３００１と登録部３０２１に登録された登録データ９１０を比較する。登録データ９１０が一致した場合、制御部
３０４に対してデータが一致した旨と、一致した登録データ９１０に設定された次比較部有効フラグ９２０を制御部に対して通知する。この次比較部有効フラグ９２０が無効の場合には、残りの比較部の比較結果に関係なく、メッセージ格納部３０１内のメッセージを受信メッセージ格納部３０５に格納する。次比較部有効フラグ９２０が有効の場合には、次の比較部３０３２が通知する比較結果と次比較部有効フラグ９２０の内容をもとに同様の処理を繰り返す。
【００４３】
処理フローを図１０に示す。フィルタリング回路は伝送路よりメッセージを受信すると(ステップ１００１)、メッセージをメッセージ格納部に格納する(ステップ１００２)。各比較部は格納されたメッセージ内の予め指定されたメッセージ内比較部のデータを読み込む（ステップ１００３）。登録部に比較すべき登録データがある場合(ステップ１００４)、比較部は登録部の登録データと次比較部有効フラグを読み込み（ステップ１００５）、メッセージ内比較部のデータと比較する（ステップ１００６）。比較した結果、データが不一致の場合（ステップ１００６）、比較部は登録部に次の登録データがあるか否かを判断する（ステップ１００４）。比較した結果、データが一致した場合(ステップ１００４)、データが一致した旨と一致した登録データに設定された次比較部有効フラグが有効であるか無効であるかを制御部に通知する（ステップ１００７）。登録部に登録データがない場合（ステップ１００４）、比較部は制御部に対してデータが不一致であった旨を通知する（ステップ１００８）。ステップ１００３からステップ１００８の処理は、全ての比較部において並列に実行される。制御部は全ての比較部からの比較結果を受け取ると、比較部１の処理結果から順にステップ１００９からステップ１０１４の処理を行う。ここで比較部Ｎとは、メッセージ内に複数あるメッセージ内比較部の先頭からＮ番目のメッセージ内比較部を比較する比較部である。先頭のメッセージ内比較部（比較部１）から順に処理を行うため、Ｎ＝１を設定する（ステップ１００９）。比較部Ｎから通知された比較結果は「一致」であるか否かを判断する（ステップ１０１０）。もしも「一致」でない場合には、メッセージ格納部に格納されたメッセージを廃棄し（ステップ１０１１）、処理を終了する。「一致」している場合（ステップ１０１０）、比較部Ｎの次比較部設定フラグが有効であるか無効であるかを判断する（ステップ１０１２）。有効である場合には、次の比較部である比較部Ｎ＋１に対して同様の処理を繰り返す（ステップ１０１３）。無効である場合（ステップ１０１２）、メッセージ格納部に格納されたメッセージを受信メッセージ格納部に格納し（ステップ１０１４）、処理を終了する。
【００４４】
本実施例におけるシステムの構成例と設定例を図１１，図１２，図１３に示す。図１１は、システムの構成例である。伝送路１１００には、ノードＡ（１１０１），ノードＢ
（１１０２），ノードＣ（１１０３），ノードＤ（１１０４）が接続されている。ノードＡ，ノードＢ，ノードＣは制御系データを送受信してプラントを制御するデバイスであり、ノードＤはデバイスのパラメータ設定や状態監視などを行うオペレータ用のディスプレイ装置を備えたコンピュータである。伝送路１１００に接続された各ノードは同じフォーマットのメッセージ１１５０を送信する。メッセージ１１５０は、メッセージ１１５０内のデータ１１５４の種別を表わすデータ種別１１５１，メッセージ１１５０を送信したノードを識別するための送信元ノード識別子１１５２，メッセージ１１５０の送信先のノードを識別するための送信先ノード識別子１１５３により構成される。
【００４５】
ノードＡ（１１０１）は、制御系データを含むメッセージ１１２０を送信する。メッセージの送信先ノードは指定せず、ブロードキャスト通信を行う。このメッセージ１１２０は、プラントを制御しているノードＢ（１１０２）とノードＣ（１１０３）に受信され、処理される。コンピュータＤ（１１０４）は、ノードＣ（１１０３）の設定値を変更するため、設定値の情報をデータとして含むメッセージ１１１０を送信する。設定値は特定のノードに対して送信されるため、コンピュータＤ（１１０４）は設定値を設定する送信先ノードであるノードＣ（１１０３）を指定して送信する。このため、メッセージ１１１０はノードＣ（１１０３）のみに受信される。設定値の情報は制御系データに比べてデータ長も大きく、デバイスにて受信されると制御を実行しているプログラムに影響を与える。このため、ノードＡやノードＢでは受信しないようフィルタリング回路においてメッセージ１１１０を廃棄する。
【００４６】
フィルタリング回路の設定例を図１２と図１３に示す。図１２は、ノードＡが送信する制御系データ（メッセージ１１２０）をフィルタリングする設定例であり、図１３はノードＤが送信する設定値の情報（メッセージ１１１０）をフィルタリングする設定例である。図１２（１）と図１３（１）はノードＢの設定例であり、図１２（２）と図１３（２）はノードＣの設定例である。
【００４７】
図１２に示すように、ノードＡは送信するメッセージに対して「データ種別」としてセンサーデータ（１２０５）、「送信元ノード識別子」としてノードＡ（１２０６）を設定する。「送信先ノード識別子」はブロードキャスト通信を行うため、任意のノードであり、特定のノードは指定しない（１２０７）。データ１２０８には、センサーデータ（例えば、センサーのオン／オフ）などの制御系データが設定される。ノードＢは、「センサーデータ」および自内のパラメータ値を変更するために受信する「設定データ」を登録データとして登録部１（１２０１）に登録し、次比較部有効フラグをどちらも有効とする。
「文書データ」は受信しないため、文書データを登録データとして登録部１（１２０１）に登録した場合、次比較部有効フラグは無効とする。ノードＢは、ノードＡ，ノードＤ，ノードＦから送信されたメッセージを受信するので、これらのノードの識別子を登録部
２（１２０２）に登録する。しかし、ノードＡとノードＦはデバイスであり、制御系データを送信するため、送信先ノード識別子まで比較して受信するか否かの判断をする必要がない。このため、ノードＡとノードＦの次比較部有効フラグは無効に設定する。ノードＤはパラメータなどの値を設定するコンピュータであり、特定の送信先ノードを指定して送信する。ノードＢは、自ノード宛のメッセージのみを受信するため、送信先ノード識別子まで比較して受信するか否かを判断しなければならない。したがって、ノードＤに対しては次比較部有効フラグを有効に設定する。このため、登録部３（１２０３）には自分のノードを識別するための識別子である「ノードＢ」を登録する。ここではメッセージ内比較部と登録データとして日本語の文字列を使用する例を示したが、英語の文字列や番号でもよい。
【００４８】
ノードＢのフィルタリング回路では、ノードＡから送信されたメッセージを受信すると、データ種別（最初のメッセージ内比較部１２０５）と登録部１（１２０１）の登録データを比較する。データが一致すると一致した旨と、一致した登録データに対応する次比較部有効フラグが有効か無効かを制御部に通知する。この例の場合、比較部より制御部に対して「一致」とセンサーデータに設定された次比較部有効フラグである「有効」が通知される。同様に、送信元ノード識別子（先頭から２番目のメッセージ内比較部）であるノードＡ（１２０６）と登録部２（１２０２）の登録データを比較して「一致」と「無効」が通知される。次比較部有効フラグが「無効」であるため、送信先ノード識別子（先頭から３番目のメッセージ内比較部１２０７）の比較結果はメッセージを受信するか否かに影響しない。制御部は、登録部１（１２０１）の登録データとの比較結果が「一致」かつ「有効」であるため、登録部２（１２０２）の登録データとの比較結果も参照する。この結果は「一致」かつ「無効」であるため、伝送路より受信したメッセージは受信メッセージ格納部に格納される。
【００４９】
同様に（２）のノードＣの設定に関して説明する。ノードＣもデバイスであり、同じセンサーデータを受信して処理する。このため、ノードＢと同じ「データ種別」，「送信元ノード識別子」を登録部１（１２５１）と登録部２（１２５２）に登録する。また、登録部３（１２５３）には自ノードの識別子である「ノードＣ」を登録する。これにより、ノードＢと同様に、データ識別子であるセンサーデータ１２５５と送信元ノード識別子1256がそれぞれ登録部１（１２５１）と登録部２（１２５２）の登録データと一致し、比較部から制御部に対してそれぞれ「一致」かつ「有効」，「一致」かつ「無効」が通知され、メッセージは受信メッセージ格納部に格納される。
【００５０】
図１３はコンピュータであるノードＤが送信先ノードとしてデバイスであるノードＣを指定してパラメータ値などの設定データを送信する例である。ノードＢの登録部１３０１，１３０２，１３０３およびノードＣの登録部１３５１，１３５２，１３５３の設定は図１２と同じである。ノードＢの登録部１（１３０１）には設定データが登録されており、ノードＤが送信したメッセージのデータ種別である設定データ１３０５と一致するため、最初の比較部は「一致」かつ「有効」を制御部に通知する。登録部２（１３０２）にはノードＤが登録されており、これはメッセージの送信元ノード識別子であるノードＤ(1306)と一致するため、２番目の比較部は「一致」かつ「有効」を制御部に通知する。登録部
３（１３０３）にはノードＢのみが登録されており、これはメッセージの送信先ノード識別子であるノードＣ（１３０７）とは一致しないため、３番目の比較部は「不一致」を制御部に通知する。３番目の比較部による比較結果が「不一致」であるため、受信されたメッセージは廃棄される。ノードＤの登録部１（１３５１）には設定データが登録されており、ノードＤが送信したメッセージのデータ種別である設定データ１３５５と一致するため、最初の比較部は「一致」かつ「有効」を制御部に通知する。登録部２（１３５２）にはノードＤが登録されており、これはメッセージの送信元ノード識別子であるノードＤ
（１３５６）と一致するため、２番目の比較部は「一致」かつ「有効」を制御部に通知する。登録部３（１３５３）にはノードＣが登録されており、これはメッセージの送信先ノード識別子であるノードＣ（１３５７）と一致するため、３番目の比較部は「一致」かつ「無効」を制御部に通知する。１番目と２番目の比較部による比較結果が「一致」かつ
「有効」であり、３番目の比較部の比較結果が「一致」かつ「無効」であるため、有効な全ての比較結果が「一致」であると判断され、受信されたメッセージは受信メッセージ格納部に格納される。
【００５１】
本実施例によれば、プロセッサがメッセージを受信すると、プロセッサ内のフィルタリング回路によりメッセージ内の複数のデータが事前に登録された登録データと比較され、メッセージを受信するか否かを判断する。いくつのメッセージ内比較部の比較結果を有効とするかは、メッセージの種類毎に設定することができる。本実施例では、ブロードキャスト通信（１対Ｎ通信）により送信される制御系データは２つの比較結果をもとに受信されるが、相手先を指定した通信（１対１通信）により送信される情報系データは３つの比較結果をもとに受信される例を示した。これにより、制御系データなどの多くのノードにおいて受信する必要のあるデータは、ブロードキャスト通信により任意のノードで選択受信することができ、同時にコンピュータやハンディーターミナルなどから特定のノードに対して送信される設定データ，監視データ，状態変更指示データなどの情報系データは、特定のノードのみで選択受信することができる。つまり、伝送路に接続された各ノードは、ブロードキャストされたメッセージの中から自ノードが必要とするメッセージのみを選択受信することが可能となり、同時に特定ノードに対して送信されるメッセージの中から自ノード宛てのメッセージのみを選択受信することができる。これにより、各ノードは異なる種類のメッセージが混在しても自ノードに必要なメッセージのみを選択受信することが可能となり、受信処理による処理負荷向上の影響を受けない。このため、アプリケーションプログラムの開発者は通信処理負荷向上による影響を考慮せずにプログラム設計を行うことが可能となり、プログラム開発効率が向上する。また、通信処理負荷向上がアプリケーションプログラムの実行に影響を与えないため、アプリケーションプログラムの実行タイミングや周期性が保証され、プラント制御などを行っている場合には、安全にシステムを運用することができる。メッセージを送信してもフィルタリング回路により他ノードのアプリケーションプログラムの実行に影響を与えないため、ノード間の影響を考慮しなければならないシステム設計も容易に行うことができる。
【００５２】
（実施例３）
本発明における第３の実施例を説明する。
【００５３】
第１と第２の実施例では、メッセージのメッセージ内比較部をフィルタリング回路内の複数の比較部にて比較し、一致した場合にはメッセージを１つの受信メッセージ格納部に格納する方式を示した。本実施例は、上記の第１，第２の実施例と異なり、各比較部毎に受信メッセージ格納部を持ち、比較結果が一致した場合には各比較部毎に設けられた受信メッセージ格納部にメッセージを格納することが特徴である。
【００５４】
システムの構成（図１），プロセッサの構成（図２），制御部内の設定レジスタ(図５)は第１の実施例と同じである。
【００５５】
本実施例におけるフィルタリング回路の構成を図１４に示す。伝送路１４６０より受信されたメッセージ１４１０は、メッセージ格納部１４０１に格納される。メッセージには、複数のメッセージ内比較部１４００１，１４００２，１４００３があり、フィルタリング回路１４００は、このメッセージ内比較部をもとに受信したメッセージ１４１０を受信メッセージ格納部１４５１，１４５２，１４５３に格納するか否かを判断する。
【００５６】
例えば、メッセージ内比較部１４００１は、比較部１４３１にて登録部１４２１内の登録データと比較され、一致した場合にはメッセージ格納部１４０１内のメッセージは受信メッセージ格納部１４５１に格納される。登録部１４３１の構成は、図４に示された登録部の構成と同じであり、複数の登録データを登録することができる。同じくメッセージ内比較部１４００２は、比較部１４３２にて登録部１４２２内の登録データと比較され、一致した場合にはメッセージ格納部１４０１内のメッセージは受信メッセージ格納部1452に格納される。また、メッセージ内比較部１４００３は、比較部１４３３にて登録部1423内の登録データと比較され、一致した場合にはメッセージ格納部１４０１内のメッセージは受信メッセージ格納部１４５３に格納される。
【００５７】
メッセージ格納部１４０１に格納されたメッセージ１４１０は、複数のメッセージ内比較部と比較部にて比較され一致した場合、複数の受信メッセージ格納領域に格納される。例えば、メッセージ内格納部１４００１と登録部１４２１内の登録データが一致し、更にメッセージ内格納部１４００２と登録部１４２２内の登録データが一致した場合、メッセージ１４１０は、受信メッセージ格納部１４５１と１４５２に格納される。メッセージ格納部１４０１に格納されたメッセージ１４１０は、比較処理終了後に廃棄される。各受信メッセージ格納部１４５１，１４５２，１４５３は、ＦＩＦＯ型のメモリ領域であり、複数のメッセージを格納できる。また、受信メッセージ格納部１４５１,１４５２,１４５３は、メッセージを上書きし、最新のメッセージのみを保存するオーバーライト型のメモリ領域であってもよい。受信メッセージ格納領域１４５１，１４５２，１４５３内に格納されたメッセージは、内部バス１４７０を介してＣＰＵに読み込まれ、処理される。
【００５８】
図１５にシステム構成例を示す。伝送路１５００には、ノードＡ（１５０１），ノードＢ（１５０２），ノードＣ（１５０３），ノードＤ（１５０４）が接続され、相互に通信を行っている。各ノードが送信するメッセージのフォーマット１５５０は、データ種別
１５５１，送信元ノード識別子１５５２，送信先ノード識別子１５５３，データ１５５４により構成される。ノードＡ（１５０１）,ノードＢ（１５０２）,ノードＣ（１５０３）はプラントなどを制御するデバイスであり、ノードＤ（１５０４）はこれらのデバイスのパラメータ設定や監視を行うディスプレイ装置を備えたコンピュータである。ノードＤ
(１５０４)は、パラメータ設定情報などをデータ１５５４として含むメッセージ１５１０を送信し、ノードＡ（１５０１）はプラントの制御データなどをデータ１５５４として含むメッセージ１５２０を送信する。ノードＢ（１５０２）は、ノードＤ（１５０４）から送信されたメッセージ１５１０とノードＡ(１５０１)から送信されたメッセージ１５１０を選択受信し、自内のフィルタリング回路内の受信メッセージ格納部に分けて格納する。
【００５９】
図１６にノードＢの設定例を示す。図１６（１）はノードＡが送信するメッセージを選択受信する例を示し、図１６（２）はノードＤが送信するメッセージを選択受信する例を示している。
【００６０】
図１６（１）において、ノードＡより送信されるメッセージには、データ種別が「センサーデータ」（１６１１）、送信元ノード識別子が「ノードＡ」（１６１２）、送信先ノード識別子はブロードキャストされるメッセージであるため設定されず（１６１３）、センサーの測定データが「データ」（１６１４）として設定されている。ノードＢでは、最初のメッセージ内比較部を比較する比較部の登録部１６０１には何も登録されていない。このため、比較部は制御部に対して「不一致」を通知し、メッセージは最初の比較部に接続された受信メッセージ格納部１６０４には格納されない。２番目のメッセージ内比較部を比較する比較部の登録部１６０２には「ノードＡ」が登録データとして登録されている。このため、比較部は制御部に対して「一致」を通知し、メッセージ格納部に格納されたメッセージは２番目の比較部に接続された受信メッセージ格納部１６０５に格納される。３番目のメッセージ内比較部を比較する比較部の登録部１６０３には自ノードのノード識別子である「ノードＢ」が登録データとして登録されている。従って、メッセージ内比較部１６１３と一致しないため、比較部は制御部に対して「不一致」を通知し、メッセージ格納部に格納されたメッセージは、３番目の比較部に接続された受信メッセージ格納部
１６０６に格納されない。
【００６１】
尚、メッセージ内比較部に何も設定しない場合には、即ち未設定の場合は、通常「０」と設定されるが、登録部内においてもデータが何も登録されていない場合、即ち、未登録の場合には、当然登録部でも「０」と設定されるため、比較部では「一致」と判定してしまうことになる。したがって、このような場合、メッセージ内比較部には、何も設定がない場合は「０」以外の特定の値を設定するようにして、両者が未設定／未登録の場合に比較された結果が「一致」とならないよう予め規定されているものとする（これは、他の実施例においても同様に規定される。）。
【００６２】
図１６（２）において、ノードＤより送信されるメッセージには、データ種別が「設定データ」（１６６１）,送信元ノード識別子が「ノードＥ」（１６６２）,送信先ノード識別子が「ノードＢ」（１６６３），デバイスのパラメータ値などの「データ」(１６６４)が設定されている。ノードＢでは、最初のメッセージ内比較部を比較する比較部の登録部１６０１には何も登録されていない。このため、比較部は制御部に対して「不一致」を通知し、メッセージは最初の比較部に接続された受信メッセージ格納部１６０４には格納されない。２番目のメッセージ内比較部を比較する比較部の登録部１６０２には「ノードＡ」が登録データとして登録されている。このため、比較部は制御部に対して「不一致」を通知し、メッセージ格納部に格納されたメッセージは２番目の比較部に接続された受信メッセージ格納部１６０５には格納されない。３番目のメッセージ内比較部を比較する比較部の登録部１６０３には、自ノードのノード識別子である「ノードＢ」が登録データとして登録されている。送信先ノード識別子であるノードＢ（１６０３）と一致するため、比較部は制御部に対して「一致」を通知し、メッセージ格納部に格納されたメッセージを受信メッセージ格納部１６０６に格納する。
【００６３】
本実施例によれば、プロセッサがメッセージを受信すると、プロセッサ内のフィルタリング回路によりメッセージ内比較部の各データが事前にそれぞれの登録部に登録された登録データと比較され、一致した場合には各比較部毎に設けられた格納領域に保存される。これにより、特定のノードから送信されたメッセージ，特定の種類のメッセージ，自分宛てのメッセージなど、メッセージ内比較部によって区別することのできるデータ毎に、それぞれ分けて格納領域に保存することができる。図１５に示した例では、コンピュータであるノードＤより受信した情報系データと、デバイスであるノードＡから受信した制御系データとを分けて受信メッセージ格納部に格納することができる。一般に、制御系データは短時間で処理する必要があり、パラメータなどの設定データや監視用のデータに優先して処理されなければならない。種々のメッセージを分けて受信メッセージ格納部に格納することにより、ＣＰＵは優先順位の高いメッセージ（例えば制御系データを含むメッセージ）から順に処理することが可能となる。これにより、本実施例では、必要なメッセージのみをフィルタリング回路において選択受信するとともに、優先順位の高いメッセージから順に処理をすることができ、優先順位が異なるメッセージが混在するシステムにおいて特に有効である。
【００６４】
尚、これまでに示した各実施例１〜３では、メッセージのフォーマットは固定であり、フィルタリング回路内の各比較部では、予め決められた位置のメッセージ内比較部を登録データと比較していた。しかし、メッセージのフォーマットは、図１７に示すようなフォーマットにすることで、各比較部が比較するメッセージ内比較部の位置をメッセージ毎に可変することができる。以下に、メッセージ内比較部の位置を随時可変可能とした場合の例を説明する。
【００６５】
図１７（１）はメッセージ内比較部の位置が可変の場合のメッセージフォーマットを示し、図１７（２）はメッセージフォーマット例を示す。伝送路に送信されるメッセージ
１７００には比較部宣言部１７０１が付与される。また、メッセージ１７００にはメッセージ内比較部１７００１，１７００２，１７００３がある。比較部宣言部１７０１は、比較数１７１１，複数のオフセット１７１２とバイト数１７１３の組により構成される。比較数１７１１はメッセージ内比較部の数を表わし、オフセット１７１２とバイト数1713はメッセージ内比較部の先頭位置とサイズを表わす。オフセット１７１２とバイト数1713の組は比較数１７１１で示された数だけ付与される。
【００６６】
メッセージフォーマット１７５０は、メッセージ内比較部が３つ存在する例である。メッセージ内比較部が３つであるので比較数１７５１は３である。最初のメッセージ内比較部１７５０１の位置は先頭から１４バイト目であり、サイズが２バイトであるため、オフセット１７５２には１４が設定され、バイト数１７５３には２が設定される。同様に、２番目のメッセージ内比較部１７５０２の位置は先頭から１８バイト目であり、サイズが２バイトであるため、オフセット１７５４には１８が設定され、バイト数１７５５には２が設定される。３番目のメッセージ内比較部１７５０３の位置は先頭から２４バイト目であり、サイズが４バイトであるため、オフセット１７５６には２４が設定され、バイト数
１７５７には４が設定される。
【００６７】
上記のように、メッセージに比較部宣言部１７０１を備えることにより、まず比較部宣言部１７０１の内容をＣＰＵにて参照し、メッセージ内の指定された位置のデータをフィルタリング回路内の各比較部に割り当て、比較処理を行うようにすることにより、メッセージ内比較部の位置を随時可変可能としたメッセージを受信することができる。これにより、より自由なメッセージフォーマットでの送受信が可能となる。
【００６８】
（実施例４）
本発明における第４の実施例を説明する。
【００６９】
上記の第１，第２，第３の実施例では、同一プロセッサ内のフィルタリング回路において複数のメッセージ内比較部と登録データを比較し、メッセージを選択受信する方式を示した。これに対し、本実施例は、複数のメッセージ内比較部を複数のプロセッサにおいて比較することに特徴がある。
【００７０】
システムの構成例を図１８に示す。コントローラ１８０１，コントローラ１８０２，コントローラ１８０３が伝送路１８００に接続され、伝送路１８００を介して相互に通信を行う。ここでコントローラとは、通信機能を備えたセンサーやモーターなどのインテリジェントデバイス，ＰＣ，コンピュータなどである。また、本実施例では伝送路としてバス型の伝送路を用いた例を示すが、他の形態の伝送路でもよく、無線／赤外線通信などであってもよい。
【００７１】
コントローラの構成を図１９に示す。コントローラ１９００は、伝送路１９５０を介して送受信される全てのメッセージ１９６０を受信する。メッセージ１９６０はトランシーバ１９１０を介して受信され、コントローラ１９００内部の複数の通信プロセッサ1901，１９０２，１９０３に格納される。通信プロセッサ１９０１，１９０２，１９０３とプロセッサ１９３０は、システムバス１９２０に接続されており、システムバス１９２０を介してデータを交換することができる。プロセッサ１９３０は、アプリケーションプログラムや通信ドライバなどが実行されるプロセッサであり、通信プロセッサ１９０１，1902，１９０３よりメッセージを読み込んで処理を行う。
【００７２】
通信プロセッサの構成を図２０に示す。通信プロセッサ２０００は、トランシーバ2050を介してメッセージ２０１０を受信すると、メッセージ格納部２００１に受信したメッセージ２０１０を格納する。メッセージ２０１０には複数のメッセージ内比較部２０１１，２０１２があり、通信プロセッサは予め設定されたメッセージ内比較部のうちの１つのデータを読み出し、比較部２００２にて登録部２００３に登録された登録データと比較する。登録部２００３の構成は、図４に示した登録部の構成と同じであり、複数の登録データを登録することができる。登録部２００３の登録データとメッセージ内比較部２０１１の比較結果は、制御部２００４に通知され、一致した登録データがある場合には受信したメッセージ２０１０は、受信メッセージ格納部２００５に格納される。受信メッセージ格納部２００５に格納されたメッセージは、システムバス２０６０を介してプロセッサにより読み込まれ処理される。
【００７３】
各通信プロセッサにおいて比較されるメッセージ内比較部の位置は、各通信プロセッサの制御部内のレジスタに登録する。登録するレジスタの構成を図２１に示す。メッセージ内比較部の位置を登録するレジスタ２１００は、バイトオフセット２１０１とバイト数
２１０２により構成される。バイトオフセット２１０１は、メッセージの先頭からのバイト数であり、メッセージ内比較部の先頭位置を示す。バイト数２１０２はメッセージ内比較部のサイズを表わす。尚、ここでは、メッセージ内比較部の位置をバイトで扱う例を示したが、メッセージ内比較部の先頭位置やサイズをバイトで表現できない場合には、バイトオフセット２１０１はビットオフセット（メッセージの先頭からのビット数）、バイト数２１０２はビット数であってもよい。レジスタ２１００のバイトオフセット２１０１とバイト数２１０２は、例えばプロセッサによりシステムバスを介して設定される。
【００７４】
図２２に本実施例の処理フローを示す。コントローラが伝送路よりメッセージを受信すると（ステップ２２０１）、各通信プロセッサは受信したメッセージ格納部にメッセージを格納する（ステップ２２０２）。各通信プロセッサは、レジスタに登録されたバイトオフセットとバイト数で指定された位置よりメッセージ内比較部のデータを読み込む（ステップ２２０３）。各通信プロセッサは、自内登録部に登録データがあれば(ステップ2204)、登録部の登録データを読み込み（ステップ２２０５）、読み込んだメッセージ内比較部のデータと比較する（ステップ２２０６）。データが一致した場合（ステップ２２０６）、メッセージ格納部のメッセージを受信メッセージ格納部に格納する(ステップ２２０７)。自内登録部に登録データがなければ（ステップ２２０４）、メッセージ内比較部と一致する登録データがないのでメッセージ格納部に格納されたメッセージを廃棄する（ステップ２２０８）。
【００７５】
上記のステップ２２０２からステップ２２０８までの処理は、各通信プロセッサにおいて並列に実行される。レジスタにバイトオフセットとバイト数が登録されていない場合、あるいはバイトオフセットの値やバイト数の値が、受信したメッセージ長より大きく無効な場合には、通信プロセッサは処理を実行しない。
【００７６】
図２３にコントローラの構成例と通信プロセッサの設定例を示す。コントローラ2300は、伝送路２３２０を介して送受信される全てのメッセージを受信する。図２３の例では、コントローラ２３００は２つの通信プロセッサ２３０２，２３０３を実装している例を示す。受信したメッセージ２３３０は、トランシーバ２３０１を介して通信プロセッサＡ
（２３０２）のメッセージ格納部２３０６と通信プロセッサＢ(２３０３)のメッセージ格納部２３０７に格納される。伝送路２３２０より受信するメッセージ２３３０は、例えばメッセージ１(２３５０)に示すフォーマットとし、先頭の２バイトが「データ種別」、次の２バイトが「送信元ノード識別子」、次の２バイトが「送信先ノード識別子」である。ここでは、このフォーマットに基づいたメッセージ１（２３５０）とメッセージ２(2360)を受信する例を示す。
【００７７】
通信プロセッサＡの設定２３０８は、登録部とレジスタの設定である。通信プロセッサＢの設定２３０９も、同様に登録部とレジスタの設定である。通信プロセッサＡ(2302)のレジスタには、バイトオフセット＝０，バイト数＝２が設定されており、登録データとして「センサーデータ」が登録されている。すなわち、通信プロセッサＡでは、登録データとして、「データ種別」が“センサーデータ”のものを選択するように登録されている。通信プロセッサＢ(２３０３)のレジスタには、バイトオフセット＝４，バイト数＝２が設定されており、登録データとして「ノードＢ」が登録されている。すなわち、通信プロセッサＢでは、登録データとして、「送信先ノード識別子」が“ノードＢ”のものを選択するように登録されている。
【００７８】
メッセージ１（２３５０）が受信されると、通信プロセッサＡ（２３０２）において、設定２３０８で設定された内容（バイトオフセット＝０，バイト数＝２，登録データ＝センサーデータ）とメッセージ１（２３５０）の「データ種別」の部分が比較される。メッセージ１（２３５０）では、センサーデータが無いため、不一致であり、受信したメッセージ２３３０は受信メッセージ格納部２３１０に格納されず廃棄される。通信プロセッサＢ（２３０３）では、設定２３０９で設定された内容（バイトオフセット＝４，バイト数＝２，登録データ＝ノードＢ）とメッセージ１（２３５０）の「送信先ノード識別子」の部分が比較される。メッセージ１（２３５０）では、ノードＢが設定されているため、一致となり、受信したメッセージは受信メッセージ格納部２３１１に格納される。
【００７９】
メッセージ２（２３６０）が受信されると、通信プロセッサＡ（２３０２）において、設定２３０８で設定された内容（バイトオフセット＝０，バイト数＝２，登録データ＝センサーデータ）とメッセージ２（２３６０）の「データ種別」の部分が比較される。メッセージ２(２３６０)では、センサーデータが設定されているため、一致となり、受信したメッセージは受信メッセージ格納部２３１０に格納される。通信プロセッサＢ(２３０３)では、設定２３０９で設定された内容（バイトオフセット＝４，バイト数＝２，登録データ＝ノードＢ）とメッセージ２（２３６０）の「送信先ノード識別子」の部分が比較される。メッセージ２（２３６０）では、設定が無いため不一致となり、受信したメッセージは受信メッセージ格納部２３１１に格納されず廃棄される。
【００８０】
以上の処理により、通信プロセッサＡ（２３０２）内の受信メッセージ格納部２３１０には、センサーデータのみが格納され、通信プロセッサＢ（２３０３）内の受信メッセージ格納部２３１１には、ノードＢ宛てのメッセージのみが格納される。プロセッサ2305は、優先順位の高いセンサーデータを格納した通信プロセッサＡ（２３０２）の受信メッセージ格納部２３１０に格納されたメッセージから先にメッセージを読み込み処理を実行する。
【００８１】
受信メッセージ格納部２３１０と２３１１がＦＩＦＯ型のメモリ領域である場合、一定数のメッセージを受信メッセージ格納部に格納しておくことができる。このため、プロセッサ２３０５は優先順位の高い受信メッセージ格納部２３１０のメッセージを先に処理し、受信メッセージ格納部２３１０のメッセージがない場合に、優先順位の低い受信メッセージ格納部２３１１のメッセージを処理することにより、メッセージが失われることがなく、優先度の高いメッセージから順に処理を行うことができる。
【００８２】
本実施例によれば、コントローラがメッセージを受信すると、フィルタリング回路を備えたコントローラ内の複数の通信プロセッサにて、指定されたメッセージのデータと予め登録された登録データとを比較し、一致すると受信する。これにより、メッセージ内の識別子の位置と登録データを各通信プロセッサ毎に設定し、これらのデータが一致したメッセージを分けて受信メッセージ格納部に格納することができる。また、各通信プロセッサ毎に比較しているため、例えばメッセージのフォーマットが変わり、比較したいメッセージ内比較部の数が増えた場合でも、通信プロセッサを追加するのみでよく、フィルタリング回路の設計変更は必要ない。このため、拡張性や変化に対して設計者の負担を軽減することが可能となり、メッセージフォーマットの変更などに対しても柔軟に対応することができる。
【００８３】
（実施例５）
本発明における第５の実施例を説明する。
【００８４】
上記第１〜第４の実施例では、フィルタリング回路の比較部あるいは１つの比較部を備えたフィルタリング回路を有する通信プロセッサを並列に配置し、メッセージの複数のメッセージ内比較部を比較し、メッセージを選択受信する方式を示した。本実施例は、上記の各実施例と異なり、単にフィルタリング回路の比較部を並列に配置するだけではなく、直列方向にも配置して、行列配置することを特徴としたものである。
【００８５】
システム構成例（図１）とプロセッサ構成例（図２）は、第１の実施例と同じである。本実施例では、複数の基本フィルタリング回路を組み合わせてフィルタリング回路を実現する。図２４（１）に基本フィルタリング回路の構成を示す。基本フィルタリング回路
２４００は、外部より受け取るメッセージを格納する入力メッセージ格納部２４０１，登録データを登録する登録部２４０２，登録データとメッセージ内比較部とを比較する比較部２４０３，比較結果を基にメッセージの流れを制御する制御部２４０４，外部にメッセージを渡すインターフェース部である出力メッセージ格納部２４０５により構成される。図２４（２）は、登録部２４０２の構成例であり、複数の登録データを登録することができる。登録データは、内部バスを介してＣＰＵ（図示せず）などから登録することができる。また基本フィルタリング回路２４００の制御部２４０４は、図２４（３）に示す比較部設定レジスタ２４１０とメッセージ内比較部位置設定レジスタ２４５０を有している。比較部設定レジスタ２４１０では、基本フィルタリング回路２４００の動作を有効にするか無効にするかを登録でき、比較部設定レジスタ２４１０の登録方法は登録データの場合と同じであり、内部バスを介してＣＰＵなどから登録することができる。また更にメッセージ内比較部位置設定レジスタ２４５０は、比較部２４０３で比較すべきメッセージ内比較部の位置（バイトオフセット２４５１）とサイズ（バイト数２４５２）を登録できる。
【００８６】
図２５に本実施例におけるフィルタリング回路の構成を示す。フィルタリング回路2500は直列（例えば２５０１，２５０２，２５０３）に接続された基本フィルタリング回路を更に並列に接続することで構成される。直列に並ぶ基本フィルタリング回路の数は、伝送路２５５０より受信するメッセージ２５６０内のメッセージ内比較部の数と同じ、若しくはメッセージ内比較部よりも多いものとし、直列に並んだ各基本フィルタリング回路は各々異なるメッセージ内比較部を比較する。例えば、基本フィルタリング回路２５０１は最初のメッセージ内比較部と自内に登録された登録データを比較し、基本フィルタリング回路２５０２は先頭から２番目のメッセージ内比較部と自内に登録された登録データを比較し、基本フィルタリング回路２５０３は先頭から３番目のメッセージ内比較部と自内に登録された登録データを比較する。メッセージのメッセージ内比較部の数と、各基本フィルタリング回路が比較するメッセージ内比較部の位置は、予め決められているものとする。並列にならぶ基本フィルタリング回路の組の数は任意であり、この数が多いほど分類できるメッセージの種類が多くなる。
【００８７】
フィルタリング回路２５００は、伝送路２５５０よりメッセージ２５６０を受信すると、直列に並んだ基本フィルタリング回路の中で最も伝送路２５５０側に配置された基本フィルタリング回路２５０１，２５１１，２５２１が、メッセージ２５６０を自内の入力メッセージ格納部に格納する。これらの基本フィルタリング回路は、自内に登録された登録データとメッセージ内比較部を比較し、一致するか、または比較部設定レジスタが無効である場合、メッセージを自内の出力メッセージ格納部に格納する。２番目の基本フィルタリング回路２５０２，２５１２，２５２２は最初の基本フィルタリング回路２５０１，
２５１１，２５２１の出力メッセージ格納部よりメッセージを読み込んで自内の入力メッセージ格納部に格納し、同様の処理を繰り返す。３番目の基本フィルタリング回路2503，２５１３，２５２３は２番目の基本フィルタリング回路２５０２，２５１２，２５２２の出力メッセージ格納部よりメッセージを読み込んで自内の入力メッセージ格納部に格納し、同じ処理を繰り返す。ＣＰＵ（図示せず）は、内部バス２５７０を介して基本フィルタリング回路２５０３，２５１３，２５２３の出力メッセージ格納部よりメッセージを読み込んで処理する。
【００８８】
図２６に基本フィルタリング回路の設定例を示す。ここでは、直列に並んだ１組の基本フィルタリング回路の設定例を示している。伝送路より受信するメッセージ２６５０には、３つのメッセージ内比較部２６５１，２６５２，２６５３があり、最初のメッセージ内比較部２６５１にはＡが、２番目のメッセージ内比較部２６５２にはＢが、３番目のメッセージ内比較部２６５３にはＣが設定されている。基本フィルタリング回路２６０１，
２６０２，２６０３は直列に接続されており、基本フィルタリング回路２６０１はメッセージ内比較部２６５１と自内に登録された登録データを、基本フィルタリング回路2602はメッセージ内比較部２６５２と自内に登録された登録データを、基本フィルタリング回路２６０３はメッセージ内比較部２６５３と自内に登録された登録データを各々比較する。各基本フィルタリング回路の比較部の処理動作は、第１の実施例と同じであり、入力メッセージ格納部に格納されたメッセージのメッセージ内比較部と登録データを順次比較し、一致しているか否かを判断する。
【００８９】
基本フィルタリング回路２６０１の制御部内の比較部設定レジスタには「有効」が設定されており、登録部には登録データ＝Ａが登録されている。基本フィルタリング回路2601はメッセージ２６５０を自内の入力メッセージ格納部に格納すると、比較部設定レジスタが「有効」であるため、メッセージ内比較部２６５１と登録データを比較する。これらは一致するため、入力メッセージ格納部のメッセージは出力メッセージ格納部に格納される。もしも不一致である場合には、入力メッセージ格納部のメッセージは廃棄される。基本フィルタリング回路２６０２の制御部内の比較部設定レジスタには「無効」が設定されており、登録部には登録データが登録されていない。基本フィルタリング回路２６０２は、メッセージ２６５０を基本フィルタリング回路２６０１の出力メッセージ格納部より自内の入力メッセージ格納部に格納すると、比較部設定レジスタが「無効」であるため、入力メッセージ格納部のメッセージをそのまま出力メッセージ格納部に格納する。基本フィルタリング回路２６０３の制御部内の比較部設定レジスタには「有効」が設定されており、登録部には登録データ＝Ｃが登録されている。基本フィルタリング回路２６０３はメッセージ２６５０を基本フィルタリング回路２６０２の出力メッセージ格納部より読み込んで自内の入力メッセージ格納部に格納すると、比較部設定レジスタが「有効」であるため、メッセージ内比較部２６５３と登録データを比較する。これらは一致するため、入力メッセージ格納部のメッセージは出力メッセージ格納部に格納される。
【００９０】
図２７に基本フィルタリング回路における処理フローを示す。基本フィルタリング回路は、メッセージを入力メッセージ格納部に読み込むと（ステップ２７０１）、予め指定されたメッセージのメッセージ内比較部を読み込む（ステップ２７０２）。比較部設定レジスタ２７０３が「無効」である場合（ステップ２７０３）、比較部は制御部に対して比較を行わず「一致」を通知する。登録部に登録データが登録されているとき(ステップ2704)、登録部の登録データを１つ読み込む（ステップ２７０５）。メッセージ内比較部と登録データが一致する場合（ステップ２７０６）、入力メッセージ格納部に格納されたメッセージを出力メッセージ格納部に格納する（ステップ２７０７）。登録部に登録データがない場合（ステップ２７０４）、入力メッセージ格納部のメッセージを廃棄する（ステップ２７０８）。
【００９１】
ステップ２７０１からステップ２７０８の処理により、図２６に示した例では｛メッセージ内比較部２６５１＝Ａ，メッセージ内比較部２６５３＝Ｃ｝という２つの条件の組み合わせを満足するメッセージのみが選択される。この直列に接続された基本フィルタリング回路を複数、並列に実装することにより、種々の条件を設定して受信するメッセージを分類することができる。例えば、図２５の基本フィルタリング回路２５１１の登録部にＡとＦを登録し、比較部設定レジスタに有効を設定する。基本フィルタリング回路２５１２の登録部にＢを登録し、比較部設定レジスタに有効を設定する。基本フィルタリング回路２５１３の登録部にＤとＥを登録し、比較部設定レジスタに有効を設定する。これにより、受信メッセージ＝｛最初のメッセージ内比較部＝ＡまたはＦ，２番目のメッセージ内比較部＝Ｂ，３番目のメッセージ内比較部＝ＤまたはＥ｝という条件が設定でき、この条件を満足するメッセージのみが基本フィルタリング回路２５１３の出力メッセージ格納部に格納される。
【００９２】
本実施例によれば、プロセッサがメッセージを受信すると、メッセージ内の個々のメッセージ内比較部と予め登録された登録データとを比較し、それらの比較結果の組み合わせによって設定される複数の条件を、各条件毎に分類して格納する。即ち、例えば｛データ種別＝センサーデータ，送信元ノード＝ノードＡ｝，｛データ種別＝設定データ，送信先ノード＝ノードＢまたはノードＣ｝，｛送信元ノード＝Ａ，送信先ノード＝ノードＣ｝などの条件を設定してメッセージを受信し、別々の受信メッセージ格納部に格納することができる。この受信処理と分類処理はフィルタリング回路にて実行されるため、ＣＰＵ負荷を向上することなく、ＣＰＵで実行されているプログラムに影響を与えることはない。また、分類するためのプログラムをユーザが開発する必要はなく、簡単な条件をフィルタリング回路に設定するのみで分類することができる。また更に、並列に接続される基本フィルタリング回路の列を増やすことで、フィルタリング回路において受信することのできる条件を容易に増やすことが可能である。
【００９３】
（実施例６）
次に、本発明における第６の実施例について説明する。
【００９４】
本実施例は、伝送路上で送受信されるメッセージの優先順位を制御することができる点において前述の実施例と異なる。
【００９５】
図３２は、本発明の第６の実施例における分散制御システムの構成例を示す。図示するように、分散制御システムは、計測・制御対象の複数の機器３２３０に対応して設けられた複数のプロセッサ３２００と、各プロセッサ３２００に共通に接続される伝送路3250とで構成される。
【００９６】
伝送路３２５０上を送受信されるメッセージのフォーマットを図３３に示す。本実施例のメッセージのフォーマットは、調停部とデータ部により構成される。調停部は、データ番号と送信元ノード識別子により構成される。調停部のサイズはｎビットである。データ番号は、データを区別するための識別子であり、サイズはｍビットである。送信元ノード識別子はメッセージを送信したノードを識別するためのノードアドレスであり、サイズはｎ−ｍビットである。データ部には送受信されるデータが格納される。更に本実施例においては、データ部の一部に送信先のノードを識別するための送信先ノード識別子が含まれる。送信先ノード識別子のサイズは、送信元ノード識別子と同じｎ−ｍビットとする。このように、調停部と、データ部内の送信先ノード識別子のデータが、前述した実施例のメッセージ内比較部に相当する。
【００９７】
プロセッサの構成を図３４に示す。プロセッサ３４００は、伝送路３４５０に接続するためのメッセージ格納部３４０７，伝送路３４５０より受信したメッセージ３４２０の調停部と比較するデータを格納する登録部３４０６，調停部と登録部３４０６内のデータとを比較する比較部３４０５，伝送路３４５０より受信したメッセージのデータ部内の送信先ノード識別子と比較するデータを格納する登録部３４１２，送信先ノード識別子と登録部３４１２内のデータとを比較する比較部３４１１、これらの動作を処理するための制御部３４１０，比較部３４０５と比較部３４１１の両方の比較結果が一致した際に受信したメッセージを記憶する受信メッセージ格納部３４０３，通信及びアプリケーションの処理を行うＣＰＵ３４０１，ＣＰＵ３４０１のバスである内部バス３４０２，メッセージ格納部３４０７と内部バス３４０２の間に接続されプロセッサ３４００より外部へメッセージを送信する際に送信するメッセージを格納する送信メッセージ格納部３４６０により構成される。これらの構成要素は、１つのプロセッサとして１チップに実装される。また、メッセージ格納部３４０７は、伝送路３４５０上の全てのメッセージを受信し、且つ送信メッセージ格納部３４６０内のメッセージの送信時に優先制御を行う。
【００９８】
メッセージ格納部３４０７における処理を説明する。
【００９９】
制御系データを送受信する伝送路では、データの到達時間を保証しなければならない。つまり、プラントの緊急停止などを伝える優先順位の高いメッセージが、メッセージの衝突などにより大幅に遅延することがあってはならない。そこでメッセージ格納部３４０７では、図３５（ａ）に示すオープンドレイン方式の伝送形態を使用し、メッセージの優先制御を実現する。オープンドレイン方式の特徴は、１本の伝送路に複数の出力を持たせることができることであり、伝送路に接続された各ノードは同時に伝送路にメッセージを送信することが可能である。尚、図３５（ａ）に示される各ノードの構成は、それぞれ各プロセッサのメッセージ格納部３４０７内に備えられているものである。
【０１００】
メッセージの優先制御は図３５(ｂ)に示す方式でなされる。メッセージ格納部３４０７が伝送路３４５０にメッセージを送信する際、伝送路３４５０上でのメッセージは１ビットのオン／オフ情報が連なった波形信号として表現される。
【０１０１】
まず伝送路３４５０に接続された各プロセッサ（以下、単にノードという。）は、同じタイミングでメッセージの送信を開始する。例えば、エンドフラグにより他ノードの送信が終了したことを認識し、メッセージを送信する必要のあるノードは一斉にメッセージの送信を開始する。各ノードは自ノードが送信する送信波形のオン／オフ情報（オン情報は０、オフ情報は１で表す）と、伝送路３４５０より受信した受信波形のオン／オフ情報を比較する。異なるノードがオフ情報とオン情報を同時に伝送路３４５０上に送信した場合、伝送路３４５０上の波形はオン情報が優先されるためオン情報の波形となり、受信波形はオン情報が得られる。
【０１０２】
各ノードはオフ情報を送信したにも関わらず、オン情報を受信した場合、つまり自ノード以外にオン情報を送信したノードを認識した場合、メッセージの送信を中断する。図
３５（ｂ）の例では、ノードＡとノードＣは２ビット目まで同じデータを送信しているが、３ビット目ではノードＡがオフ情報を、ノードＣがオン情報を送信している。受信波形は全てのノードが受信する伝送路上の波形であり、３ビット目の情報としてノードＡはオフ情報を、ノードＣはオン情報を受信する。ノードＡは送信した情報と受信した情報が異なるため、メッセージ送信を中断し、ノードＣは送信した情報と受信した情報が一致するために送信処理を継続する。同様に、ノードＢは５ビット目で送受信波形の食い違いを認識し、送信を中断する。これを繰り返すことにより、常にオン情報を送信したノードが勝ち残り、いずれ１つのノードを残して全てのノードが送信を中断することになる。尚、送信を中断されたノードは、勝ち残ったノードの送信終了後、再送信の処理が行われる。
【０１０３】
このような送信波形と受信波形の比較は、図３３に示すメッセージの先頭からｎビット目まで、つまり調停部において行われる。ここで、常にオン情報を送信したノードが生き残るということは、他ノードよりデータ番号の小さいメッセージを送信したノードが伝送路を占有し、メッセージを送信できるということである。また、調停部には送信元ノードアドレスが含まれるため、ノードアドレスが重複していない限り、各ノードが送信するメッセージの調停部の値は異なり、調停部を比較すれば必ず最後には１つのノードのみが生き残り、伝送路を占有することになる。これにより、データ番号を小さい値に設定すれば他ノードに優先してメッセージを送信することができ、メッセージの優先制御が可能となる。例えば、緊急停止のメッセージを送信する場合には、データ番号を「０」に設定すれば最優先でメッセージが送信される。また、優先度が同じ状態のノードがある場合、また単にデータ番号が重複した場合は、優先させて送信したいノードのノードアドレスを小さい方に設定しておくことにより、優先的にメッセージが送信される。
【０１０４】
上記の様なオープンドレイン方式での優先制御は、一般にビットアービトレーション方式と呼ばれ、分散制御を行うシステムでは通常用いられる通信方式である。
【０１０５】
本実施例においては、上記のような通信方式を用いて、更に、データ部にもメッセージ内比較部を備え、またデータ部のメッセージ内比較部を比較する手段を備えたことを特徴とする。
【０１０６】
以下にメッセージ内比較部の比較について説明する。図３４に示す登録部３４０６と登録部３４１２には予め自プロッセッサ内に格納すべき条件となるデータが登録されている。比較部３４０５は、通信コントローラ３４０７が受信したメッセージの調停部と登録部３４０６に登録されたデータを、比較部３４１１は、メッセージのデータ部内の送信先ノード識別子と登録部３４１２内のデータをそれぞれ比較する。登録部に登録されているデータは１つ以上とし、複数登録されている場合には、各々の登録データと調停部あるいは送信先ノード識別子を比較する。もしも登録データが登録されていない場合には、各比較部は一致したものと判断する。各比較部の比較結果は制御部３４１０に通知され、比較部３４０５と比較部３４１１の両方において一致する登録データが存在した場合、メッセージ格納部３４０７において受信されたメッセージは受信メッセージ格納部３４０３に格納される。受信メッセージ格納部３４０３に格納されたメッセージは、内部バス３４０２を介してＣＰＵ３４０１に読み込まれ、アプリケーションにより処理される。
【０１０７】
上記に示すように本実施例では、伝送路に接続された各ノードは、メッセージの優先順位にしたがってメッセージを送信し、これらのメッセージを受信する各ノードは、優先制御にも使用される調停部と、更にデータ部の一部を自内に登録された登録データと比較し、両方が一致した場合にのみメッセージを受信する。
【０１０８】
これにより、制御系データのように短時間で送信先に到達しなければならないメッセージと、情報系データのようにある程度時間がかかってもプラント制御に影響を及ぼさないような異なる種類のメッセージが混在するシステムにおいて、制御系データを優先的に送信できる。
【０１０９】
更に、本実施例のようなビットアービトレーション方式を行うシステムでは、従来は調停部のみの比較であり、しかもＣＰＵにて比較処理を行っていたため、各ノードに必要なメッセージ以外も多く格納され、また比較処理のためのＣＰＵの負荷向上はやむをえなかったのに対し、本実施例では、データ部でも比較を行うことから、データのフィルタリングの精度が向上し、必要なデータのみを格納することができ、更に比較処理は全てフィルタリング回路で行われることから、不要なデータはＣＰＵにて判断処理を行うことなく廃棄（受信拒否）することができるため、ＣＰＵの負荷向上はない。
【０１１０】
したがって、メッセージの優先度を高くすることにより、メッセージの到達時間を保証することも可能であり、またＣＰＵにおける通信処理負荷が高くならないため、ＣＰＵ上で実行される制御プログラムが通信の影響をほとんど受けず、制御周期を保証した制御を実行することが可能である。つまり、プラント制御を安全に実行しながら、パラメータ設定情報や診断情報といった情報系データを送受信することができる。
【０１１１】
（実施例７）
これまで述べてきた第１乃至第６の実施例においては、すべての例でメッセージのフィルタリングを行う回路を有しており、ＣＰＵに負荷をかけることがない。各実施例では、プロセッサの一部に構成されたフィルタリング回路または通信プロセッサとして独立して設けられたフィルタリング回路により、高速な処理を行うことが可能である。しかしながら、それぞれのフィルタリング回路は、各実施例における専用の回路構成であり、そのフィルタリング方式以外には使用することはできない。そこで、以下に上記第１乃至第６の実施例の何れの回路構成でも実現可能なフィルタリング回路を第７の実施例として説明する。
【０１１２】
図２８は、本発明の第７の実施例に関わる分散制御システムにおける１つのノードの概略構成図である。分散制御システムは、計測・制御対象の複数の機器に対応して設けられた複数のコントローラ２８００と、各コントローラ２８００へ共通に接続される信号の伝送路２８５０とを有する。ここでコントローラとは、実施例４と同様に、通信機能を備えたセンサーやモーターなどのインテリジェントデバイス，ＰＣ，コンピュータなどであり、図２８で示すコントローラ２８００は、これらの一部の回路構成である。また、本実施例では、コントローラ２８００での各構成要素は、それぞれ独立した回路として説明するが、コントローラ２８００を１チップのプロセッサとして構成することも可能である。
【０１１３】
以下に、コントローラ２８００の構成を説明する。
【０１１４】
各ノードにおけるコントローラ２８００は、図２８に示すように伝送路２８５０に接続されたトランシーバ２８０８，トランシーバ２８０８で受信されたメッセージ２８０９内の複数のメッセージ内比較部（以下、ＩＤともいう。）を比較・転送するＤＳＰ(DigitalSignal Processor)２８０１，ＤＳＰ２８０１の比較の結果、格納すべき条件と一致したメッセージを格納する受信バッファ２８０７，トランシーバ２８０８とＤＳＰ２８０１と受信バッファ２８０７との間を結びメッセージ２８０９を伝送されるデータバス２８０２，ＤＳＰ２８０１の動作条件を示すプログラムが格納される登録部２８０４，ＤＳＰ2801と登録部２８０４とのデータをやり取りをするプログラムバス２８０３，通信及びアプリケーションの処理をするＣＰＵ２８０５，ＣＰＵ２８０５と受信バッファ２８０７と登録部２８０４との間でデータのやり取りをするためのＣＰＵバス２８０６を有している。
【０１１５】
上記のＤＳＰ２８０１は、フォンノイマン型のプロセッサであり、すなわち、その内部に信号処理用のバスとプログラム用のバスを別々に有し、プログラム用のバス上を流れる命令に従って、信号処理用のバスを通じて入出力されるデータの演算を高速に行う機能を有するものである。
【０１１６】
以下に、本実施例での動作について説明する。
【０１１７】
コントローラ２８００において、伝送路２８５０よりメッセージを受信した場合、まずトランシーバ２８０８にメッセージが伝送される。トランシーバ２８０８は、シリアルで伝送されてきたメッセージ２８０９のフレームをパラレルに変換し、ＤＳＰ２８０１へメッセージが受信されたことを通知する。
【０１１８】
ＤＳＰ２８０１は、メッセージ２８０９が受信されたことをトランシーバ２８０８から通知されると、登録部２８０４にあるプログラムをプログラムバス２８０３を用いて読み込む。尚、ＤＳＰ２８０１が登録部２８０４からプログラムを読み込む処理は、新たなメッセージが受信され、ＤＳＰが処理を行う度に行われる。登録部２８０４には、受信したメッセージ中に含まれる複数のメッセージ内比較部の位置や各メッセージ比較部に対する格納すべき条件となるデータ、及び比較を行うための論理回路（例えば、実施形態１〜６で示されたようなフィルタリング回路を構成する論理回路）についての情報が、プログラムとして記憶されている。また、登録部２８０４は、自由に書き換え可能なメモリであり、登録されるプログラムは、ＣＰＵ２８０５によって書き換えが行われる。
【０１１９】
プログラムの読み込みが終わると、図２９で示すように、ＤＳＰ２８０１は、プログラムに基づきトランシーバ２８０８内にあるメッセージ内比較部を読み込む。受信されたメッセージには、前記の各実施例にあるように、複数のメッセージ内比較部（ＩＤ１〜IDnまで）を含んでいる。ＤＳＰ２８０１は、受信したメッセージ２８０９内にある各メッセージ内比較部と、登録部２８０４にあるメッセージ内比較部に対応した一致条件とを逐次、または同時に比較し、更にプログラムに基づいた論理演算を行う。ＤＳＰ２８０１は、比較の結果、すべての条件を満足し、取り込むべきメッセージであると判断された場合、データバス２８０２を用いて、受信したメッセージ２８０９を受信バッファ２８０７に転送する。受信バッファ２８０７は、ＦＩＦＯ等のメモリであり、複数のメッセージを記憶することができる。また、受信バッファ２８０７は、メッセージを上書きし、最新のメッセージのみを保存するオーバーライト型のメモリ領域であってもよい。ＤＳＰ２８０１は、ＣＰＵ２８０５に対して、受信メッセージのあることを通知する。その後、受信バッファ２８０７内に格納されたメッセージは、システムバス２８０６を介してＣＰＵ２８０５に読み込まれ、処理される。
【０１２０】
コントローラ２８００は、適用されるシステムが、仮に、最大ｍバイトのメッセージ長をｎ bps（bit par second）の速度で送受信するものであるとすると、１つのメッセージあたりの比較処理を（ｍ／ｎ)sec以内で行う動作速度を有するよう構成する。これにより、上記のコントローラ２８００における一連の処理は、次のメッセージが受信されるまでに行われるため、メッセージを取りこぼすことはない。
【０１２１】
また、伝送路２８５０は、他の実施例と同様に、光ファイバや、有線以外の無線・赤外線に変更することも可能である。その場合は、ＯＳＩ（Open Systems Interconnection)７層構造の物理層に対応するトランシーバ２８０８で、通信媒体を光ファイバー対応のものや、有線以外の無線，赤外線に対応したものに変更することにより対応が可能となる。また更に、伝送路上での伝送形態をベースバンド，ブロードバンド，拡散スペクトラム等の方式にも対応可能であり、物理層を自由に選択可能である。
【０１２２】
この実施形態では、次の効果がある。ＤＳＰのプログラムをＣＰＵから変更可能であるために、同一ハードウェア構成にて、様々なメッセージの構造やフィルタリング回路に対応可能である。さらに、トランシーバも通信媒体・伝送形態に合わせて自由に選択可能である。また、次のフレームを受信するまでの間に処理が終わるものであれば、受信メッセージのフィルタリング以外の、その他のプロトコルの処理にも対応可能である。
【０１２３】
（実施例８）
次に第８の実施例について説明する。前記第７の実施例では、第１から第６の実施例の回路をＤＳＰによって実現した例を示したが、本実施例では、ＤＳＰではなく、プログラマブル・ロジックを用いて実現した例を示す。
【０１２４】
図３０に、本実施例におけるプログラマブル・ロジックを用いた回路構成を示す。
【０１２５】
本実施例においても、分散制御システムの各ノードは、実施例４と同様に、通信機能を備えたセンサーやモーターなどのインテリジェントデバイス，ＰＣ，コンピュータなどのコントローラとして説明する。また、コントローラでの各構成要素は、それぞれ独立した回路として説明するが、１チップのプロセッサとして構成することも可能である。
【０１２６】
以下に、図３０のコントローラ３０００の構成を説明する。
【０１２７】
コントローラ３０００は、図３０に示すように伝送路３０８０に接続されたトランシーバ３０５９，受信されたメッセージ３０５８にある複数のメッセージ内比較部（以下、
ＩＤともいう。）を比較・転送するプログラマブル・ロジック３０５１，プログラマブル・ロジック３０５１とトランシーバ３０５９との間でメッセージ３０５８を転送するバス３０５２，プログラマブル・ロジック３０５１での比較の結果、条件と一致したメッセージを格納する受信バッファ３０５７，プログラマブル・ロジック３０５１と受信バッファ３０５７の間でメッセージを転送するバス３０６０，プログラマブル・ロジック３０５１が受信したメッセージ３０５８の各メッセージ内比較部を比較するときの情報とプログラマブル・ロジック３０５１のプログラムが格納されている登録部３０５４，プログラマブル・ロジック３０５１で実行させるべきプログラムと、一致条件を登録部３０５４内の複数のメモリの中から選択するための選択レジスタ３０５３，選択されたメモリのデータをプログラマブル・ロジック３０６１ヘ伝送するメモリセレクタ３０６１，通信及びアプリケーションの処理をするＣＰＵ３０５５，ＣＰＵ３０５５と受信バッファ３０５７と選択レジスタ３０５３との間でメッセージのやり取りをするためのＣＰＵバス３０５６を有している。
【０１２８】
上記のプログラマブル・ロジック３０５１は、複数の組合せ回路，順序回路を持ち、それらの接続方法を接続情報に基づいて自由に変更できる機能を有した回路であり、接続情報は、外部の不揮発メモリ（本実施例においては登録部３０５４）やプログラマブル・ロジック内の不揮発メモリに蓄えられており、必要に応じてプログラマブル・ロジック3051へ伝送されるものである。
【０１２９】
以下に、本実施例での動作について説明する。
【０１３０】
コントローラ３０００は、伝送路３０８０上の全てのメッセージを受信し、トランシーバ３０５９にメッセージを格納する。トランシーバ３０５９は、伝送路３０８０をシリアルで伝送されてきたメッセージ３０５８をパラレルに変換する。受信されたメッセージは、図３１で示すように、複数のメッセージ内比較部（ＩＤ）を含んでいる。
【０１３１】
ＣＰＵ３０５５は、自ノードにおいて受信したいメッセージを選択するために、登録部３０５４内に格納されている複数のメモリのうち、適切な条件が記憶されたメモリを選択レジスタ３０５３に書き込む。ここで、登録部３０５４は、複数のメモリを有し、各メモリには、受信したメッセージ中に含まれる複数のメッセージ内比較部の位置や格納すべき条件となるデータ、及び比較を行うための論理回路（例えば、実施形態１〜６で示されたようなフィルタリング回路を構成する論理回路）についての情報が、それぞれの接続情報（ロジックデータ）として含まれている。プログラマブル・ロジック３０５１は、登録部３０５４から、選択されたメモリのロジックデータを読み込み、図３１に示すように、論理回路を構成する。
【０１３２】
プログラマブル・ロジック３０５１は、メッセージ３０５８が受信されたことをトランシーバ３０５９から通知されると、選択レジスタ３０５３を介して伝送されたメモリ内に記憶されたロジックデータに従って、受信したメッセージ３０５８のメッセージ内比較部を比較し、更に論理回路にしたがって比較を行い、条件と一致していると判断されれば、バス３０６０を介して受信バッファ３０５７に転送する。転送後、ＣＰＵ３０５５に受信バッファ３０５７にメッセージがあることを通知する。ここまでの処理は、次のメッセージの受信までに行われるために通信を取りこぼすことはない。
【０１３３】
本実施例では、実施形態１〜６のような完全な専用設計の回路よりも処理速度は劣るものの、前述のＤＳＰの場合よりも高速な処理が可能であるため、短い受信メッセージ長に対しても対応可能である。
【０１３４】
また、登録部３０５４内にあるメモリ１からメモリｎを選択レジスタ３０５３を介してＣＰＵ３０５５から変更することができるため、同一ハードウェア構成にて、様々なメッセージの構造やフィルタリング回路に対応可能である。
【０１３５】
また更に、実施例７の場合と同様に、伝送路３０８０は、光ファイバや、有線以外の無線・赤外線に変更することも可能である。その場合は、ＯＳＩ（Open Systems 
Interconnection)７層構造の物理層に対応するトランシーバ３０５８で、通信媒体を光ファイバー対応のものや、有線以外の無線，赤外線に対応したものに変更することにより対応が可能となる。また更に、伝送路上での伝送形態をベースバンド，ブロードバンド，拡散スペクトラム等の方式にも対応可能であり、物理層を自由に選択可能である。
【０１３６】
本実施例では、プログラマブル・ロジックを用いることにより、フィールドでの柔軟性、すなわち様々な比較条件を選択可能な構成となっている。
【０１３７】
（実施例９）
次に第９の実施例について説明する。前記第１から第８の実施例では、受信したメッセージを受信メッセージ格納部に格納するかどうかを、比較結果を用いて判断していた。前記第１から第８の実施例に示したような登録データを検索する方式では、受信メッセージ格納部に格納するかどうかを判断するのに、登録部へ登録された登録データの内容を逐次読み出して比較を行っていく必要があり、登録件数が多い場合には処理時間が長くなる場合がある。本実施例では、登録件数が多い場合でも常に高速に格納判断を行うために、メッセージ内比較部のデータを登録部のアドレスとし、そのアドレス内容を参照するだけで格納判断することを特徴とする。
【０１３８】
本実施例におけるフィルタリング回路の構成を図３６に示す。システムの構成及びプロセッサの構成は、第１の実施例の図１及び図２と同じである。
【０１３９】
フィルタリング回路３６００は、伝送路上を流れる全てのメッセージを一時的に格納するメッセージ格納部３６０３と、フィルタリングして受信すると判断されたメッセージを格納する受信メッセージ格納部３６０５と、受信メッセージ格納部３６０５に格納したいメッセージに関する条件情報を登録しておく登録部Ａ３６２１及び登録部Ｂ３６２２と、登録部Ａ３６２１のデータをラッチするためのフラグ格納部３６３１と、登録部Ｂ3622のデータをラッチするためのフラグ格納部３６３２と、ＣＰＵが内部バス３６６０を介してメッセージを送信する時にメッセージを一時記憶しておく送信メッセージ格納部３６０６と、これらの各構成を制御するための制御部３６０４と、からなる。
【０１４０】
制御部３６０４は、伝送路上にメッセージが送信されていると判断した場合に、シリアルで伝送されてきたメッセージ３６１０のフレームをパラレルに変換し、メッセージ格納部３６０３に格納する。本実施例では、伝送路上を流れる各メッセージのメッセージ内比較部は、少なくとも２箇所以上備えられ、その位置は予め定められており、その位置とサイズは実施例１の図５と同様に制御部３６０４に備えられたメッセージ内比較部位置設定レジスタに格納されている。
【０１４１】
メッセージ格納部３６０３にメッセージが格納されると、制御部３６０４はフラグ格納部３６３１にメッセージ内比較部Ａ３６０１のアドレスが示すデータを登録部Ａ３６２１よりラッチする。また更に、フラグ格納部３６３２にメッセージ内比較部Ｂ３６０２のアドレスが示すデータを登録部Ｂ３６２２よりラッチする。尚、メッセージ格納部３６０３におけるメッセージ内比較部Ａ３６０１の格納場所は登録部Ａ３６２１のアドレス線に結線されており、メッセージ内比較部Ｂ３６０２の格納場所は登録部Ｂ３６２２のアドレス線に結線されている。
【０１４２】
制御部３６０４は、各登録部からラッチしたデータをフラグ格納部３６３１とフラグ格納部３６３２を介して参照し、その内容からメッセージ３６１０を受信メッセージ格納部３６０５に格納するか否かを判断し、格納する場合にはメッセージ格納部３６０３にあるメッセージ３６１０を受信メッセージ格納部３６０５にラッチする。
【０１４３】
図３７に、本実施例の登録部Ａ３６２１と登録部Ｂ３６２２の構成を示す。本実施例のメッセージ内比較部は、前述のように登録部のアドレスが格納されており、メッセージ内比較部Ａ３６０１のデータは登録部Ａ３６２１のアドレスを示し、メッセージ内比較部Ｂ３６０２のデータは登録部Ｂ３６２２のアドレスを示す。各登録部のメモリ容量（アドレス数）は、各メッセージ内比較部のデータ長で表し得る数以上の容量がある。登録部の各アドレスには、それぞれ有効／無効設定フラグのデータが格納される。有効／無効設定フラグは、受信を行うか否かの判断を行うためのフラグであり、判断に値するアドレスには“１”、判断を行わないアドレスには“０”を登録しておく。フラグの登録は、内部バス３６６０を介してＣＰＵから自由に行えるものとする。
【０１４４】
各メッセージ内比較部及び各登録部で示されるアドレスは、前述の実施例１などの登録部に格納される登録データに相当する。各登録部のアドレスに、それぞれセンサーデータや送信先ノードの識別子などの条件情報を予め定義しておき、自ノードにおいて受信する条件が該当するアドレスの有効／無効設定フラグを“１”にしておけば、アドレスを参照するのみで、フィルタリングが可能となる。
【０１４５】
以下に例として、フィルタリング回路３６００において、ノードＤと定義された上位のコンピュータから設定データを受信するという場合のフィルタリング動作を示す。
【０１４６】
システム全体のメッセージの定義としては、メッセージ内比較部Ａ３６０１で設定データを示し、メッセージ内比較部Ｂ３６０２で送信先ノード識別子を示すものとしておき、フィルタリング回路３６００で受信したい上位コンピュータの設定データをアドレス
「00000004(Ｈ)」とし、上位コンピュータのノード種別（送信先ノード識別子）をアドレス「00000007(Ｈ)」と定義しておく。登録部内の有効／無効設定フラグは、図３７で示すように、登録部Ａ３６２１のアドレス「00000004(Ｈ)」を“１”とし、登録部Ｂ３６２２のアドレス「00000007(Ｈ)」も“１”と登録する。
【０１４７】
フィルタリング回路３６００では、伝送路上のメッセージを順次メッセージ格納部3603に格納し、各メッセージ比較部で示されたアドレスを読み込み、該当する登録部のアドレスを参照する。制御部３６０４では、上記のアドレスを含むメッセージを受信したとき、ノードＤの上位コンピュータから送信された設定データであると認識でき、自ノードにおいて受信すべきメッセージであると判断して、受信メッセージ格納部３６０５にメッセージを格納する。
【０１４８】
従って、フィルタリング回路３６００では、メッセージ内比較部に示されたアドレスを参照するのみで、受信したメッセージの内容を認識することができるため、自ノードにおいて受信すべきメッセージのフィルタリングを行うことができる。本実施例の方式では、登録部を参照する回数は１回で良くなり、前述の実施例と異なり登録部に格納されるデータが多い場合でも常に高速な判断を行うことができる。また更には、フィルタリング回路の動作時間が大幅に短縮されるので、消費電力も大幅に低減することが可能となる。
【０１４９】
尚、上記の例では、メッセージ比較部が２箇所の例を示したが、本実施例の方式では、特にメッセージ比較部の数に制限はない。また、メッセージ内のメッセージ比較部の数に合わせて登録部も同数備える例を示したが、本実施例では登録部のアドレス自体に実施例１〜８で用いた登録データの意味を定義するので、例えばメッセージ比較部Ａ３６０１のデータを登録部のハイアドレスに、メッセージ比較部Ｂ３６０２のデータを同一の登録部のローアドレスに結線して、それらのアドレスが示す内容を見て、受信メッセージ格納部３６０５に格納するか否かを判断することが可能となるので、登録部の数はメッセージ比較部の数に合わせる必要はなく、少なくとも１つの登録部で実現可能である。
【０１５０】
また上記では、メッセージ内比較部に示したアドレスを参照してフィルタリングする例を示したが、前述の実施例１〜８で用いた比較部を組み合わせることも可能である。以下にその例を示す。
【０１５１】
図３８に、アドレス参照と比較部を組み合わせたフィルタリング回路の構成図を示す。
【０１５２】
フィルタリング回路３８００は、受信メッセージ格納部３８０５に格納したいメッセージに関する条件情報を登録データとして登録しておく登録部Ｂ３８２２と、登録部Ｂ3822の内容とメッセージ内比較部Ｂ３８０２の内容を比較処理する比較部３８３２とを備えている。その他の構成は図３６の回路と同じである。登録部Ｂ３８２２の内容は、実施例１で示した図４と同じである。
【０１５３】
制御部３８０４は、伝送路上にメッセージが送信されていると判断した場合に、シリアルで伝送されてきたメッセージ３６１０のフレームをパラレルに変換し、メッセージ格納部３６０３に格納する。ここで本例においても、伝送路上を流れる各メッセージのメッセージ内比較部は、２箇所備えられ、その位置は予め定められているものとする。また、メッセージ内比較部Ａ３８０１は、登録部Ａ３８２１のアドレスを示すデータが記載され、メッセージ内比較部Ｂ３８０２には、前述の実施例１〜８のように設定データや送信先ノード識別子などの条件情報がそのまま記載されている。
【０１５４】
メッセージ格納部３８０３にメッセージが格納されると、制御部３８０４はフラグ格納部３８３１にメッセージ内比較部Ａ３８０１のアドレスが示すデータを登録部Ａ３８２１よりラッチする。尚、メッセージ格納部３８０３におけるメッセージ内比較部Ａ３８０１の格納場所は登録部Ａ３８２１のアドレス線に結線されている。また、制御部３８０４は比較部３８３２に対し登録部Ｂ３８２２中の登録データとメッセージ内比較部Ｂ３８０２のデータとを比較するよう指示し、比較部３８３２は登録部Ｂ３８２２の登録データをサーチし、一致するものがある場合に制御部３８０４に対して“１”を送信し、一致するものがない場合には“０”を送信する。
【０１５５】
図３９に、本実施例の登録部Ａ３８２１の構成を示す。本例においては、メッセージ内比較部Ａ３８０１には、上記と同様に登録部Ａ３８２１のアドレスが記載されており、登録部Ａ３８２１のメモリ容量(アドレス数)は、少なくともメッセージ内比較部Ａ３６０１のデータ長で表し得る数以上の容量がある。登録部Ａ３８２１の各アドレスには、上記と同様にそれぞれ有効／無効設定フラグのデータが格納されると共に、比較部の判断結果を参照するか否かを判断するための比較部有効フラグが合わせて格納される。これら登録部Ａ３８２１や登録部Ｂ３８２２のフラグの登録及び条件データの登録は、内部バス3660を介してＣＰＵから自由に行えるものとする。
【０１５６】
制御部３８０４は、登録部Ａ３８２１からラッチしたデータをフラグ格納部３８３１を介して参照し、また比較部３８３２の比較結果と合わせて、その内容からメッセージ3610を受信メッセージ格納部３６０５に格納するか否かを判断し、格納する場合にはメッセージ格納部３６０３にあるメッセージ３６１０を受信メッセージ格納部３６０５に伝送する。
【０１５７】
上記の比較部有効フラグは、比較部３８３２の演算結果を考慮して、受信メッセージ格納部３８０５に格納するか否かを判断する場合に設定する。比較部有効フラグに“１”が書き込まれている場合には、有効／無効設定フラグに“１”が書き込まれていても、登録部Ｂ３８２２にメッセージ内比較部Ｂ３８０２のデータと一致するものがなければ、受信メッセージ格納部３８０５に受信メッセージは格納されない。
【０１５８】
本例においては、図４０の真理値表に従い、メッセージは受信メッセージ格納部3805に格納される。すなわち、フラグ格納部３８３１にラッチした有効／無効設定フラグが
“０”の場合には、メッセージは格納されない。有効／無効設定フラグが“１”で比較部有効フラグが“０”の場合には、比較部の結果にかかわらず、メッセージを格納する。有効／無効設定フラグが“１”で比較部有効フラグが“１”の場合には、比較部の結果が
“１”のときにのみメッセージを格納する。尚、本例では比較部が１箇所の場合を示しているが、メッセージ内比較部の数によっては、更に複数の比較部を備えても良く、この場合は更に複雑なフィルタリングの条件を設定することができる。
【０１５９】
上記のように、本例によれば、複数あるメッセージ内比較部の内、非常に種類の多いものがある場合（例：伝送路上に接続されるノードが非常に多く、送信元ノード識別子の種類が他のデータよりも格段に多い場合など）、そのメッセージ内比較部に該当する比較部を本例のようにメッセージ内比較部Ａ３８０１のようにアドレスを参照するようにし、他のデータ種類が少ないメッセージ比較部は、通常の比較部を用いる方式にすることにより、高速にフィルタリング処理を行うことが可能である。
【図面の簡単な説明】
【０１６０】
【図１】第１の実施例におけるシステム例を示す図である。
【図２】プロセッサの構成例を示す図である。
【図３】プロセッサに内蔵されるフィルタリング回路構成例を示す図である。
【図４】フィルタリング回路の一部と登録部の構成例を示す図である。
【図５】比較部設定レジスタの構成例を示す図である。
【図６】第１の実施例の処理フローを示す図である。
【図７】第１の実施例におけるシステム構成例を示す図である。
【図８】第１の実施例における設定例を示す図である。
【図９】第２の実施例における登録部の構成例を示す図である。
【図１０】第２の実施例の処理フローを示す図である。
【図１１】第２の実施例のシステム構成例を示す図である。
【図１２】第２の実施例における設定例を示す図である。
【図１３】第２の実施例における設定例を示す図である。
【図１４】第３の実施例におけるフィルタリング回路の構成例を示す図である。
【図１５】第３の実施例におけるシステム構成例を示す図である。
【図１６】第３の実施例における設定例を示す図である。
【図１７】第３の実施例におけるメッセージフォーマット例を示す図である。
【図１８】第４の実施例におけるシステム構成例を示す図である。
【図１９】第４の実施例におけるコントローラの構成例を示す図である。
【図２０】通信プロセッサの構成例を示す図である。
【図２１】メッセージ内比較部の位置を登録するレジスタの構成例を示す図である。
【図２２】第４の実施例における処理フローを示す図である。
【図２３】第４の実施例における設定例を示す図である。
【図２４】第５の実施例における基本回路構成例を示す図である。
【図２５】第５の実施例におけるフィルタリング回路の構成例を示す図である。
【図２６】第５の実施例における設定例を示す図である。
【図２７】第５の実施例における処理フローを示す図である。
【図２８】第７の実施例におけるコントローラの構成例を示す図である。
【図２９】コントローラの機能を説明する図である。
【図３０】第８の実施例におけるコントローラの構成例を示す図である。
【図３１】コントローラの機能を説明する図である。
【図３２】第６の実施例におけるシステム構成例を示す図である。
【図３３】メッセージフレームの構成例を示す図である。
【図３４】第６の実施例におけるプロセッサの構成例を示す図である。
【図３５】オープンドレイン方式、及び優先制御方式を説明する図である。
【図３６】第９の実施例のフィルタリング回路の構成を示す図である。
【図３７】登録部Ａ３６２１と登録部Ｂ３６２２の構成を示す図である。
【図３８】第９の実施例のアドレス参照と比較部を組み合わせたフィルタリング回路の構成図を示す図である。
【図３９】登録部Ａ３８２１の構成を示す図である。
【図４０】図３８の構成例における受信判断の真理値表を示す図である。
【符号の説明】
【０１６１】
１００，２１０，３５０，７００，１４６０，１８００，１９５０,２３２０,２５５０，２８５０，３０８０，３２５０，３４５０…伝送路、１０１，１０２,１０３,１９３０，２３０５，３２００…プロセッサ、２０１，２８０５，３０５５，３４０１…ＣＰＵ、２０５，３００，１４００，２５００…フィルタリング回路、４０３,１４３１,１４３２，１４３３，２００２，２４０３，３０３１，３０３２，３０３３…比較部、３１２，
４００，９００，１４２１，１４２２，１４２３，１６０１，１６０２，１６０３，2003，２４０２，２８０４，３０２１，３０２２，３０２３，３０５４，３４０６…登録部、３０５，１４５１，１４５２，１４５３，１６０４，１６０５，１６０６，２００５，
３４０３…受信メッセージ格納部、３０１，４２０，１４０１，２００１，３４０７…メッセージ格納部、５００…比較部設定レジスタ、１８０１，１８０２,１８０３,２３００…コントローラ、１９０１，１９０２，１９０３，２０００，２３０２，２３０３…通信プロセッサ、１９１０，２０５０，２３０１，２８０８，３０５４…トランシーバ、2401…入力メッセージ格納部、２４０５…出力メッセージ格納部、２８０１…ＤＳＰ、3051…プログラマブル・ロジック。
【図１】
2006141068.tif 000003
【図２】
2006141068.tif 000004
【図３】
2006141068.tif 000005
【図４】
2006141068.tif 000006
【図５】
2006141068.tif 000007
【図６】
2006141068.tif 000008
【図７】
2006141068.tif 000009
【図８】
2006141068.tif 000010
【図９】
2006141068.tif 000011
【図１０】
2006141068.tif 000012
【図１１】
2006141068.tif 000013
【図１２】
2006141068.tif 000014
【図１３】
2006141068.tif 000015
【図１４】
2006141068.tif 000016
【図１５】
2006141068.tif 000017
【図１６】
2006141068.tif 000018
【図１７】
2006141068.tif 000019
【図１８】
2006141068.tif 000020
【図１９】
2006141068.tif 000021
【図２０】
2006141068.tif 000022
【図２１】
2006141068.tif 000023
【図２２】
2006141068.tif 000024
【図２３】
2006141068.tif 000025
【図２４】
2006141068.tif 000026
【図２５】
2006141068.tif 000027
【図２６】
2006141068.tif 000028
【図２７】
2006141068.tif 000029
【図２８】
2006141068.tif 000030
【図２９】
2006141068.tif 000031
【図３０】
2006141068.tif 000032
【図３１】
2006141068.tif 000033
【図３２】
2006141068.tif 000034
【図３３】
2006141068.tif 000035
【図３４】
2006141068.tif 000036
【図３５】
2006141068.tif 000037
【図３６】
2006141068.tif 000038
【図３７】
2006141068.tif 000039
【図３８】
2006141068.tif 000040
【図３９】
2006141068.tif 000041
【図４０】
2006141068.tif 000042