(57)【要約】      （修正有）【課題】シリアルケーブルで接続された主局と複数の従局間における情報の送受信通信時間を短縮する。【解決手段】主局と複数の従局とが数珠つなぎに接続され、主局と従局との間の読出し命令および／または書込み命令から構成される情報の送受信を、主局の記憶領域の一部と従局の記憶領域の一部とを共有して通信する情報通信方法において、主局から従局に対し同時に複数の情報３１，３２，３３，４１，４２，５１の通信要求があるとき、この複数の情報の通信先が異なる従局であるか、同一の従局であるかを判断し、通信先が異なる従局の場合には、各情報が対象とする主局の共有記憶領域へ同時にアクセスして、各情報間の読出し命令３０ｂ，３０ｄ同士または書込み命令３０ａ，３０ｃ同士の同期をとって同時に実行処理し、同一の従局に対する通信要求の場合には、主局の共有記憶領域に先にアクセスした情報の実行が完了した後、次の情報を実行処理する。【選択図】  図６
2004297170.tif 000002
【特許請求の範囲】
【請求項１】
主局と複数の従局とが数珠つなぎに接続され、前記主局と前記従局との間の読出し命令および／または書込み命令から構成される情報の送受信を、前記主局の記憶領域の一部と前記従局の記憶領域の一部とを共有して通信する情報通信方法において、
前記主局から前記従局に対し同時に複数の情報の通信要求があるとき、前記複数の情報の通信先が異なる従局であるか、同一の従局であるかを判断し、
前記主局から異なる複数の従局と間で前記情報の通信要求がある場合には、各情報が対象とする前記主局の共有記憶領域へ同時にアクセスして、各情報間の読出し命令同士または書込み命令同士の同期をとって同時に実行処理し、
前記主局から同一の従局に対し複数情報の通信要求がある場合には、前記主局の共有記憶領域に先にアクセスした情報の実行が完了した後、待機していた次の情報を実行処理するプロトコルにより情報通信する
ことを特徴とする情報通信方法。
【請求項２】
請求項１に記載の情報通信方法において、
前記情報は、前記読出し命令および／または前記書込み命令が複数かつ無秩序に存在する
ことを特徴とする情報通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、主局（マスタ）と複数の従局（スレーブユニット）とがシリアルケーブルにて数珠つなぎに接続され、主局と各従局との間の情報の送受信を、主局の記憶領域の一部と各従局の記憶領域の一部とを共有して通信する通信システムに適用して好適な情報通信方法に関する。
【０００２】
【従来の技術】
従来、例えば工場内において、主局と各従局との間の情報を、主局の記憶領域の一部と各従局の記憶領域の一部とを共有して通信する通信システムのひとつとして、フィールドバス技術を用いるフィールドバス通信システムがある。例えば、ＲＳ−２３２ＣやＲＳ−４２２等のシリアルインターフェースを備えるコンピュータ（マスタ）とこのコンピュータにより制御されるＩ／Ｏ機器やコンピュータ等の各機器（スレーブユニット）とを１本のシリアルケーブルにて数珠つなぎに接続し、通信制御するものである。この通信システムによれば、従来、並列配線していたものが１本のシリアルケーブルにより直列配線できるようになり、ケーブル配線コストを減らすことができ、また完全双方向通信することができる。
【０００３】
この従来のシリアル通信の通信システムは、異なるスレーブユニットに対しての情報通信を、シリアルケーブルを介し一つずつ順番にシリアル通信していたために、通信要求の数だけ通信時間が必要であった。例えば、マスタから各スレーブユニットに対する通信時間が１通信につき１秒かかるとすると、通信要求が１０あれば、１（秒）×１０（通信数）で、１０秒かかる計算になる。しかし、パラレル通信するには、高価なリアルタイムＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）で、かつそれに対応した通信ドライバを用意または開発する必要があった。
【０００４】
一方で、複数プロセッサユニット（以下、ＰＵと称する。）と複数のバッファメモリを使用して、各ＰＵからバッファメモリへの処理結果の転送要求があった場合には、転送要求到着順と転送要求があったＰＵの優先順位および処理回数とから、どのＰＵの処理結果をバッファメモリに転送すべきかを判定し、該当するＰＵに転送許可を与えることにより、連続して入力されるデータをリアルタイム性を維持して処理する並列データ処理装置が提案されている（例えば、引用文献１参照。）。
【０００５】
【特許文献１】
特開平１１−３３８８４２号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、上述特許文献１に記載のものは、複数のプロセッサユニットおよび複数のバッファメモリ、これらのプロセッサユニットの優先順位を決定する判定手段等が必要となり、装置が高価になる。また、この並列データ処理装置からシリアルケーブルを介して他の並列データ処理装置にデータを転送する場合には、やはりシリアル通信で一つずつ通信が行われ、通信要求の数だけ通信時間が必要となる問題が生じる不都合がある。
【０００７】
斯かる点に鑑み、本発明は、シリアルケーブルで接続された主局（マスタ）と従局（スレーブユニット）間における複数の情報の送受信にかかる通信時間を短縮することができる情報通信方法を提案するものである。
【０００８】
【課題を解決するための手段】
本発明情報通信方法は、主局と複数の従局とが数珠つなぎに接続され、主局と従局との間の読出し命令および／または書込み命令から構成される情報の送受信を、主局の記憶領域の一部と従局の記憶領域の一部とを共有して通信する情報通信方法において、この主局からこの従局に対し同時に複数の情報の通信要求があるとき、この複数の情報の通信先が異なる従局であるか、同一の従局であるかを判断し、主局から異なる複数の従局と間で情報の通信要求がある場合には、各情報が対象とする主局の共有記憶領域へ同時にアクセスして、各情報間の読出し命令同士または書込み命令同士の同期をとって同時に実行処理し、主局から同一の従局に対し複数情報の通信要求がある場合には、主局の共有記憶領域に先にアクセスした情報の実行が完了した後、待機していた次の情報を実行処理するプロトコルにより情報通信するようにしたものである。
【０００９】
斯かる本発明によれば、主局と従局との間の通信において、主局から異なる複数の従局に対し同時に情報の通信要求がある場合は、各情報の読出し命令同士または書込み命令同士の同期をとって同時に対象とする共有記憶領域にアクセスして実行するようにし、主局から同一の従局に対し同時に複数情報の通信要求がある場合は、共有記憶領域に先にアクセスした情報の実行が完了した後、待機していた次の情報を実行するようにしたので、複数の情報の送受信を同時に確実に通信することができる。
【００１０】
【発明の実施の形態】
以下、図１〜図１１を参照して、本発明情報通信方法が適用される通信システムの一実施の形態の例として、いわゆるフィールドバスを使用した通信システムに適用した場合について説明する。
【００１１】
図１は本例のフィールドバス通信システムの概略構成図を示す。この図１において、１はシリアルケーブル、２はバスのマスタ機能を有する主局（以下、マスタと称する。）、３，４，５は主局２により制御され、主局２と情報（データ）の送受信が可能な従局（以下、スレーブユニットまたは単にユニットと称する。）を示し、マスタ２とスレーブユニット３，４，５とがシリアルケーブル１により数珠つなぎ（いわゆるディジーチェーンともいう。）に接続されているものである。尚、以下図１〜図４においては、数珠つなぎに接続されたスレーブユニットについて、一部スレーブユニットの記載を省略し、その間のフィールドバスを破線で表現している。
【００１２】
図２は、図１のフィールドバス通信システムの機器接続の例を示し、マスタおよび各スレーブユニットの端末機器として、この例ではパーソナルコンピュータ（以下、ＰＣと称する。）等のコンピュータを使用している。例えば、マスタ２はＲＳ−２３２ＣやＲＳ−４２２等のシリアルインターフェース（図示せず）を搭載したマスタボード２ａを備え、同様にスレーブユニット３，５もシリアルインターフェースを搭載したスレーブボード３ａおよび５ａを備え、シリアルケーブル１によってそれぞれ数珠つなぎに接続されている（図２では、スレーブユニット４の記載は省略している。）。
【００１３】
図３に図２の要部の構成を示すように、このマスタ２を構成するマスタボード２ａはメモリ（記憶領域を構成す）１２を有し、このメモリ１２およびシリアルケーブル１からなるバスを制御するメモリ／バスコントローラ２２が設けられている。同様にスレーブユニット３を構成するスレーブボード３ａはメモリ（記憶領域を構成する）１３を有し、このメモリ１３およびシリアルケーブル１からなるバスを制御するメモリ／バスコントローラ２３が設けられ、またスレーブユニット５を構成するスレーブボード５ａは、メモリ（記憶領域を構成する）１５を有し、このメモリ１５およびシリアルケーブル１からなるバスを制御するメモリ／バスコントローラ２５が設けられている。
【００１４】
尚、これらマスタおよび各スレーブユニットを構成するＰＣは、図示しないマスタボードおよび各スレーブボードに搭載され各種制御を行うＣＰＵ等の制御手段、この制御手段によって行われる各種制御プログラムを格納するＲＯＭやＥＥＰＲＯＭ等の不揮発性メモリ、ＣＰＵが各種の制御を行うのに必要な作業領域を提供するＲＡＭ、さらにキーボード等の入力操作手段等をそれぞれ備え、例えばＰＣＩバスなどを介して上述のデバイスが相互にデータ通信を行うことができる周知のものである。各ＰＣのメモリ／バスコントローラおよびメモリもＰＣＩバス等を介してそれぞれＣＰＵと接続されて制御が行われる。また、各ＰＣにはＬＣＤ等の表示装置が接続され、表示画面にフィールド機器の稼動状況やエラー情報等さまざまな情報を表示することができるようになされている。
【００１５】
図４は、本例のマスタおよび各スレーブユニットの共有メモリのメモリ構成を示す。各ボードのメモリ１２，１３および１５の一部には、シリアルケーブル１のシリアル通信によりマスタおよび各スレーブユニットの共有とされる共有メモリ部１２ａ，１３ａおよび１５ａが設けられている。
【００１６】
マスタ２の共有メモリ部１２ａには、各スレーブユニット毎に読出し用メモリ領域、書込み用メモリ領域が割り当てられている。図中、上段はメモリアドレス値、中段が読出し用メモリ領域、下段が書込み用メモリ領域を表す。この例では、それぞれスレーブユニット（１）用が０〜３、スレーブユニット（２）用が４〜７、スレーブユニット（Ｎ）用が４（Ｎ−１）〜４（Ｎ−１）＋３、のようにそれぞれ４つに分割され割り当てられている（Ｎは自然数）。この読出し用メモリ領域および書込み用メモリ領域は、各アドレスに例えば１バイトずつが割り当てられ、最大４バイトのデータの読み出しおよび書込みができるように構成されている。
【００１７】
また、マスタ２の共有メモリアドレスと対応して、各スレーブユニットのメモリ部の一部に共有メモリアドレスが構成されている。スレーブユニット（１）の０〜３のメモリアドレスからなる読出し用メモリ領域の各アドレスには、例えば１バイトずつが割り当てられて、最大４バイトのデータ（ＲＤａｔａ０〜ＲＤａｔａ３）の読出しできる。また書込み用メモリ領域も同様に、各アドレスに１バイトずつが割り当てられ、最大４バイトのデータ（ＷＤａｔａ０〜ＷＤａｔａ３）の書込みができる。
【００１８】
本例の通信システムに接続されるスレーブユニット（１）〜スレーブユニット（Ｎ）までのメモリ構成は、上述したスレーブユニット（１）と同様のメモリアドレスの割り当てられた構成としてある。
【００１９】
マスタからスレーブユニットに対し送信する情報（データ）がある場合、例えばマスタよりスレーブユニット（１）にデータを送信するときは、所定のバスサイクルで、マスタの共有メモリ部の対応する書込みメモリ領域にデータを書き込み、シリアルケーブルを介して、スレーブユニット（１）の共有メモリ部の読出しメモリ領域にマスタの書込みメモリ部に書き込まれたデータを読み出し、これを記憶する如くして送信する。
【００２０】
また、スレーブユニット（１）からマスタに送信する情報（データ）がある場合、例えばスレーブユニット（１）よりマスタにデータを送信するときは、所定のバスサイクルで、スレーブユニット（１）の共有メモリ部の書込みメモリ領域にデータを書き込み、シリアルケーブルを介して、マスタの共有メモリ部の読出しメモリ領域にスレーブユニットの書込みメモリ領域に書き込まれたデータを読み出し、これを記憶する如くして送信する。その他のマスタとスレーブユニット間の通信も上述と同様である。
【００２１】
このように、例えばマスタからスレーブユニットに情報通信する場合は、あるバスサイクルでマスタボードの共有メモリ部の決められた書込み用のアドレスに書き込むと、次のバスサイクルで対応するスレーブボードの共有メモリ部の読出し用のアドレスに自動的に情報が転送される。反対に、スレーブユニットからマスタに情報通信する場合は、あるバスサイクルで所定のスレーブボードの共有メモリ部の決められた書込み用のアドレスに書き込むと、次のバスサイクルでマスタボードの対応する共有メモリ部の読出し用のアドレスに情報が転送される。
【００２２】
図６に、本例の情報通信の一例を示す。図６Ａは本例で通信する情報（データ）の一例としてのコマンドを示し、第１処理（Ｗｒｉｔｅ処理）３０ａ、第２処理（Ｒｅａｄ処理）３０ｂ、第３処理（Ｗｒｉｔｅ処理）３０ｃ、第４処理（Ｒｅａｄ処理）３０ｄの４つの処理から構成されるコマンド体系としてある。Ｗｒｉｔｅ処理は書込み命令、Ｒｅａｄ処理は読出し命令である（以下、Ｗｒｉｔｅ処理をＷ、Ｒｅａｄ処理をＲと称する。）。ここでコマンドは、オペレータが操作入力手段を介してコンピュータに与えた命令によってマスタからスレーブユニットに対し通信を要求するものに加え、ＲＯＭ等に記録されたプログラムに従ってマスタからスレーブユニットに通信を要求するものも含む。但し、コマンドデータはこの例に限るものではなく、Ｗｒｉｔｅ処理およびＲｅａｄ処理を組み合わせて種々の構成をとることができる。
【００２３】
例えば、このコマンド「Ｗ，Ｒ，Ｗ，Ｒ」の一例として「コマンドの種類、ＡＣＫ、データ、結果」から構成される場合、１）マスタからコマンドの種類（データ転送開始の合図を兼ねる。）をスレーブユニットに送り、スレーブユニットではコマンドの種類を受信して、通信準備が整っていればマスタに送信許可を返信する。２）マスタはこの返信に含まれるＡＣＫ（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を受信し、３）スレーブユニットに所望のデータを転送する。そして、スレーブユニットではマスタからのデータに基づいて要求された通りの処理を行い、処理した結果をマスタに返信する。４）マスタはこの結果を受けてスレーブユニット側でマスタの要求した通りの処理が行われたことを確認して、一つのコマンド通信が完了する。
【００２４】
従来、このようなコマンドをシリアルで通信を行うと、図６Ｂに示すように、例えば、マスタから３ノードのスレーブユニットに対し、コマンド３１（対ユニット（１））、コマンド４１（対ユニット（２））、コマンド５１（対ユニット（３））、コマンド３２（対ユニット（１））、コマンド３３（対ユニット（１））、コマンド４２（対ユニット（２））の順にコマンドを通信した場合、バスサイクルに同期した一定のサイクルでひとつずつ順番にデータ転送されるので、コマンド通信要求ユニットに関係なく、コマンドの通信分だけ通信時間が必要になる。
【００２５】
図５に本例の情報通信方法を説明するのに、マスタからのコマンド通信要求ユニットとメモリ管理とを対応させた表を示す。
【００２６】
本例においては、マスタ側から任意のスレーブユニットに対しコマンド通信を行うときに、同一スレーブユニットに対してコマンド実行を要求する場合には、シリアルケーブル１を使っての同時通信制御不可とする。即ち、先に共有メモリにアクセスしたコマンドの実行が完了するまで、次のコマンドを実行待ち行列に待機させ、先のコマンドが終了したら次のコマンドを実行させるようにする。
【００２７】
マスタ側から異なるスレーブユニットに対して同時にコマンド実行を要求する場合には、シリアルケーブル１を介し同時通信制御可能とする。即ち、異なるコマンドが共有メモリにアクセスしようとする際に、読出し命令（Ｒｅａｄ処理）および書込み命令（Ｗｒｉｔｅ処理）が同時に実行されないように、かつ同期をとってそれぞれの読出し命令同士または書込み命令同士が同時にアクセスして実行できるように制御し、同じバスサイクル上でスレーブユニットからのデータの読出しをしたりまたはスレーブユニットへ情報の転送ができるようにする。
【００２８】
例えば図６Ｃに示すように、まず、スレーブユニット（１）へコマンド３１を通信し、遅れてスレーブユニット（２）へコマンド４１を通信するよう要求があった場合、まず、コマンド３１の第１処理Ｗと第２処理Ｒの処理を行う。次いで、コマンド４２の第１処理Ｗをコマンド３１の第３処理Ｗと同期をとって、同一バスサイクル内で共有メモリへの書き込みを実行し、次のバスサイクルでこれら２つのＷに係るデータを各ユニットに転送する。そして、マスタから転送したデータの応答がそれぞれのユニットから返信されてくる。このデータを読み出すのに、コマンド３１の第４処理Ｒとコマンド４１の第２処理Ｒの処理を同期させて、共有メモリへの同時アクセスを行いそれぞれのデータの読出しを同一バスサイクルで行い、擬似的なパラレル通信を行うようにする。
【００２９】
同様に、コマンド４１の第３処理Ｗおよび第４処理Ｒとコマンド５１の第１処理Ｗおよび第２処理Ｒの同期をそれぞれとり、さらに、コマンド５１の第３処理Ｗおよび第４処理Ｒとコマンド３２の第１処理Ｗおよび第２処理Ｒの同期をとってそれぞれ共有メモリにアクセスし所定の処理を実行し、擬似パラレル通信を行う。
【００３０】
コマンド３２とコマンド３３は、同じユニット（１）への通信要求コマンドであるので、排他処理が行われ、コマンド３２の実行が完了した後に、コマンド３３が共有メモリにアクセスすることができコマンド３３が通信される。
【００３１】
そして、コマンド３３の第３処理Ｗおよび第４処理Ｒとコマンド４２の第１処理Ｗおよび第２処理Ｒの同期をとり、共有メモリへの同時アクセスを行い所定の処理を実行し、擬似パラレル通信を行う。
【００３２】
このように、本例は、コマンド実行要求ユニットが異なる場合、Ｗ同士またはＲ同士の処理については同期をとって同時に共有メモリにアクセスし実行できるようにしたので、異なるユニットに対するコマンドのＲ，Ｗの処理を同一バスサイクルにて通信できるようになり、従来のシリアル通信と比較して通信時間を短縮できる。全てのコマンド通信を完了するのに、例えば図６Ｂ，Ｃに示す例では、従来のコマンド２通信分に相当する時間Ｔを短縮することができる。
【００３３】
次に、図７〜図１０に、上述のコマンド実行要求が任意のスレーブユニットに対し同時に行われる例を挙げる。
【００３４】
図７はマスタのタスク例を示すフローチャートであり、制御手段がスレーブユニットに対してのコマンド要求を監視し、要求がある場合、そのコマンドを対象スレーブユニットに対し実行する。
【００３５】
まず、マスタ２のマスタボード２ａの電源またはアプリケーションが立ち上げられると、ハードウェア／ソフトウェアの初期化が行われる（ステップＳ１１）。そして、任意のスレーブユニット（Ｎ）、この例ではスレーブユニット（１）または（２）または（３）へのいずれかのコマンド実行要求があるか否かを監視し（ステップＳ１２）、コマンド実行要求があればスレーブユニット（Ｎ）へコマンドを通信し、コマンド実行を要求する（ステップＳ１３）。コマンド実行要求がなければ、初期化後の状態に戻りさらに監視を続ける。
【００３６】
図８は本例のマスタのステータス監視スレッドを表すフローチャートであり、一定期間ごとにマスタ２が各スレーブユニットのハードウェア／ソフトウェアの状態を読出し、エラーの有無等をチェックする流れを示すものである。
【００３７】
マスタ２のマスタボード２ａの電源またはアプリケーションが立ち上げられ、初期化が行われた後（ステップＳ２１）、まず、マスタ２からスレーブユニット（１）のステータスを読み出すステータス読出しコマンドをスレーブユニット（１）に対し送信する（ステップＳ２２）。次いでスレーブユニット（２）に対するステータス読出しコマンドをスレーブユニット（２）へ送信する（ステップＳ２３）。さらにスレーブユニット（３）に対するステータス読出しコマンドをスレーブユニット（２）へ送信する（ステップＳ２４）。
【００３８】
そして、各スレーブユニットはマスタ２からのコマンドに応じてステータス情報をマスタ２に返信する。マスタ２は各ステータスユニットから返信されてきたステータス情報を基に、各スレーブユニットにエラーがあるか否かを判断する（ステップＳ２５）。このとき、いずれのスレーブユニットにもエラーが認められなければ、初期化後の状態に戻り、ステータス監視を続ける。
【００３９】
上述ステップＳ２５にてエラーの存在が認められた場合は、図示しない表示装置の画面上に該当スレーブユニットのエラー表示をして、エラー原因除去等の所定の適切なエラー処理を行った後、初期化後の状態に戻り、ステータス監視を続ける。
【００４０】
図９は、図７または図８フローチャートに示す処理によって、マスタから各スレーブユニットに対してコマンドが送信された際の、各スレーブユニットのおけるコマンド実行スレッドを示すものである。
【００４１】
図９Ａはスレーブユニット（１）に対するコマンドの実行スレッドである。まず、スレーブユニット（１）のハードディスク／ソフトウェアが初期化（ステップＳ３１）された後、自身に対するコマンド実行要求があるか否かを判断し（ステップＳ３２）、コマンド実行要求がなければ、初期化後の状態に戻って、コマンド実行要求が送られてくるのを監視する。そして、上述ステップＳ３２にてコマンド実行要求があれば、要求コマンドを実行して（ステップＳ３３）、その結果をコマンド実行を要求してきたマスタ２に返信し、要求コマンドの実行が完了したら初期化後の状態に戻って次のコマンド実行要求を待つ。
【００４２】
図９Ｂはスレーブユニット（２）に対するコマンドの実行スレッドを示し、図９Ａと同様に、まず、ハードディスク／ソフトウェアが初期化（ステップＳ４１）された後、自身に対するコマンド実行要求があるか否かを判断し（ステップＳ４２）、コマンド実行要求がなければ、初期化後の状態に戻って、コマンド実行要求が送られてくるのを監視する。そして、上述ステップＳ４２にてコマンド実行要求があれば、要求コマンドを実行して（ステップＳ４３）、その結果をコマンド実行を要求してきたマスタ２に返信し、要求コマンドの実行が完了したら初期化後の状態に戻って次のコマンド実行要求を待つ。
【００４３】
図９Ｃはスレーブユニット（３）に対するコマンドの実行スレッドを示し、図９Ａおよび図９Ｃと同様の流れであり、詳細な説明は省略する。
【００４４】
これら、図７〜図９のフローチャート中の斜線部分の処理は、上述図６Ｃのようにコマンドが競合する可能性のある処理を示すものである。例えば、一例として、スレーブユニット（１）のステータス情報を読出し中に、マスタタスクからスレーブユニット（３）へデータ転送コマンド要求があるような場合などが挙げられ、このような場合でもユニット（１）へのステータス情報要求コマンドの実行完了を待つまでもなく、データ転送コマンドがパラレルで実行できるようになる。
【００４５】
図１０は、本例の実行待ち行列処理スレッドを示す。これは、データ書込み要求コマンド、データ読出し要求コマンドが任意のスレーブユニットに対して要求された場合、同一ユニットに対しては、一のコマンドが完了するまで次のコマンドが実行できないため、待ち行列にて待機させられる流れを表す。
【００４６】
まず、マスタ２のハードディスク／ソフトウェアが初期化（ステップＳ６１）された後、任意のスレーブユニット（Ｎ）に対するコマンドの共有メモリへのアクセスがロックされているか否か判断する。同一のスレーブユニットに対するコマンドが共有メモリへのアクセスを競合している場合、先のコマンドによってロックされているので、後からの実行要求コマンドはアクセスできない。この場合は、共有メモリ上のスレーブユニット（Ｎ）のコマンドロックが解除されるまで、待ち行列で待機する（ステップＳ６３）。
【００４７】
待ち行例で待機させられたコマンドは、ステップＳ６３に戻り、再度コマンドロックされているか否か確認し、コマンドロックが解除されたら、共有メモリにアクセスし、ロックする（ステップＳ６４）。そして、スレーブユニット（Ｎ）に対するコマンドを実行し（ステップＳ６５）、実行が終了したらこのスレーブユニット（Ｎ）のコマンドロックを解除して（ステップＳ６６）、初期化後の状態に戻る。そし、次に待ち行列で待っているコマンドがあれば、コマンドロックされているか否か確認し、上述のステップＳ６２〜ステップＳ６６の処理を繰り返す。
【００４８】
図１１は、待ち行列の一例を示し、Ｗｘはマスタから各スレーブユニットへのデータ書込み要求コマンド、Ｒｘは同データ読出し要求コマンドを表す。このＷｘおよびＲｘは図６Ａに示されるような一つのコマンドに相当するものである。
【００４９】
この例では、スレーブユニット（１）の待ち行列でＷ１，Ｗ１，Ｗ１，Ｒ１が待機しているところにＷ１，Ｒ１（点線部）が、スレーブユニット（２）の待ち行列でＲ２，Ｗ２が待機しているところにＷ２（点線部）が、スレーブユニット（３）の待ち行列でＷ３，Ｒ３，Ｒ３が待機しているところへＷ３（点線部）が、そして、スレーブユニット（Ｎ）の待ち行列でＲＮ（Ｎはユニット番号：自然数）が待機しているところへＲＮが、新たに待ち行列に加わる様子を表している。
【００５０】
例えば、スレーブユニット（１）が図示しないフィールド機器と接続され、温度監視および制御をしている例にとると、この例の「Ｗ１，Ｗ１，Ｗ１，Ｒ１，Ｗ１，Ｒ１」は、オペレータがマスタを介してスレーブユニットに対し、例えば「フィールド機器を２０℃に変更，さらに２１℃に変更，元の２０℃に変更，ユニット（１）から温度情報読出し確認、２５℃に変更、ユニット（１）から温度情報読出し確認」といったような制御指令を要求した場合に相当する。このとき、緊急の温度制御が必要な場合等において、本例のコマンド通信を行うことにより、ステータス監視スレッドなど他のユニットに対するコマンド実行要求とのコマンドの重複があっても、他ユニットへのコマンド通信と対象とするユニットへのコマンド通信とを同時通信できるので、通信時間を短縮することができる。また、その分、コマンド通信要求ユニットに対し早くコマンド実行を要求することができる。
【００５１】
以上説明したように、本例によれば、マスタと異なるユニット間の通信に対しては、コマンド内の読出し命令同士または書込み命令同士の同期をとって同時に共有メモリにアクセスして実行するようにしたので、異なるユニットに対し複数のコマンドを重複して同時に通信することができるようになり、通信時間の短縮を図ることができる。
【００５２】
また、異なるユニットに対しては同時通信制御が可能であるので、任意のユニットと通信中に他のユニットに対し通信要求がある場合に、他のユニットに対してリアルタイムに近い通信を行うことができる。
【００５３】
また、同一スレーブユニットに対して同時通信要求がされた場合も、一つの通信が完了するまで、通信待ち行列にて待機するようにしたので、先に要求のあった通信要求を取りこぼしたり、後からの通信要求がキャンセルされたりすることなくコマンドの通信要求順に確実に通信することができる。
【００５４】
また、複数のスレーブユニットを独立して制御することができ、かつ、複数のスレーブユニットから独立してデータを収集することができる。
【００５５】
また、ソフトウェアの簡単なプログラム改良を行うことで実現することができるので、例えば安価なＯＳ、また、汎用ＯＳ等でも対応することができる。
【００５６】
また、異なるユニットに対するコマンドにおいては、各読出し命令または書込み命令同士は同時処理するので、スレーブユニット数が増えても、通信時間の短縮に影響を及ぼさない。
【００５７】
また、上述したようなプロセッサ搭載型スレーブユニットだけでなく、単純なＩ／Ｏ機器と組み合わせた通信システムであっても本例の情報通信方法を適用することができる。
【００５８】
また、コマンド体系に依存することなく、即ちコマンド中にＲｅａｄ処理および／またはＷｒｉｔｅ処理が複数かつランダムに存在する場合でも、本例の情報通信を行い通信時間の短縮ができる。
【００５９】
また、フィールドバスなど通信システムの規格に応じて接続できるスレーブユニットの最大数が決まっているが、本例はそれ以外にはユニット数の制約を受けることなく通信時間の短縮ができる。
【００６０】
尚、本発明は、上述した実施の形態の例の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵ等の制御装置）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００６１】
この場合のプログラムコードを供給するための記録媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００６２】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施の形態の例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の例の機能が実現される場合も含まれる。
【００６３】
さらに、本発明は上述した実施の形態の例に限られるものではなく、本発明の要旨を逸脱することなくその他種々の構成を取り得ることは勿論である。
【００６４】
【発明の効果】
斯かる本発明によれば、主局と従局との間の通信において、主局から異なる複数の従局に対し同時に情報の通信要求がある場合は、各情報の読出し命令同士または書込み命令同士の同期をとって同時に対象とする共有記憶領域にアクセスして実行するようにし、主局から同一の従局に対し同時に複数情報の通信要求がある場合は、共有記憶領域に先にアクセスした情報の実行が完了した後、待機していた次の情報を実行するようにしたので、複数の情報の送受信を同時に確実に通信することができ、通信時間の短縮を図ることができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態の例のフィールドバス通信システムを示す線図である。
【図２】本発明の一実施の形態の例のフィールドバス通信システムの機器接続図である。
【図３】図２の要部の説明に供する機器構成図である。
【図４】本発明の一実施の形態の例の共有メモリアドレスを示す線図である。
【図５】本発明の一実施の形態の例のコマンド通信要求ユニットとメモリ管理の対応表である。
【図６】本発明の一実施の形態の例のコマンド通信を示す線図である。
【図７】本発明の一実施の形態の例の説明に供するフローチャートである。
【図８】本発明の一実施の形態の例の説明に供するフローチャートである。
【図９】本発明の一実施の形態の例の説明に供するフローチャートである。
【図１０】本発明の一実施の形態の例の説明に供するフローチャートである。
【図１１】本発明の一実施の形態の例の説明に供する線図である。
【符号の説明】
１・・・・シリアルケーブル、２・・・・マスタ（主局）、２ａ・・・・マスタボード、３，４，５・・・・スレーブユニット（従局）、３ａ，５ａ・・・・スレーブボード、１２，１３，１５・・・・メモリ（記憶領域）、１２ａ，１３ａ，１５ａ・・・・共有メモリ（共有記憶領域）、３０ａ，３０ｃ・・・・Ｗｒｉｔｅ処理（書込み命令）、３０ｂ，３０ｄ・・・・Ｒｅａｄ処理（読込み命令）、３１，３２，３３，４１，４２，５１・・・・コマンド
【図１】
2004297170.tif 000003
【図２】
2004297170.tif 000004
【図３】
2004297170.tif 000005
【図４】
2004297170.tif 000006
【図５】
2004297170.tif 000007
【図６】
2004297170.tif 000008
【図７】
2004297170.tif 000009
【図８】
2004297170.tif 000010
【図９】
2004297170.tif 000011
【図１０】
2004297170.tif 000012
【図１１】
2004297170.tif 000013