(57)【特許請求の範囲】
【請求項１】
ターゲットシステムとしてのプログラマブルコントローラとモニタ用のコンピュータとを接続し、コンピュータの複数のアプリケーションプログラムとターゲットシステムとの間で通信データを受け渡しする際に、通信データをコンピュータに備えた通信データ格納手段を介して通信手段によりコンピュータとプログラマブルコントローラ間で送受信するモニタリングシステムにおける通信システムにおいて、
前記コンピュータは待ち行列を備えており、通信データ格納手段は、複数のアプリケーションプログラムに対して割当領域を２回以上の通信データを格納可能に複数割り当てることが可能な共有メモリであり、待ち行列は、アプリケーションプログラムによって通信データがセットされた夫々の割当領域を特定するメモリ番号が各アプリケーションプログラムの通信要求順にセットされ、その通信要求順により通信順序を制御するものであり、前記共有メモリに格納される通信データは、前記通信順序を制御する待ち行列に設定された順序に従って通信手段により送受信されることを特徴とするモニタリングシステムにおける通信システム。
【請求項２】
通信手段は、各ターゲットシステムと各ターゲットシステムに対応する通信プロトコルとの対応表を備えており、その対応表を参照して、アプリケーションプログラムが通信を要求するターゲットシステムとそのターゲットシステムに対応する通信プロトコルにより通信データの送受信を実行することを特徴とする請求項１記載のモニタリングシステムにおける通信システム。
【請求項３】
通信手段はマスタの通信マネージャプログラムと各ターゲットシステムに対応する通信プロトコルを備えた複数のスレーブの通信マネージャプログラムとを含んでおり、マスタの通信マネージャプログラムが共有メモリにセットされた通信データに基づき対応表を参照し、通信を行うターゲットシステムに対応するスレーブの通信マネージャプログラムによって通信データを送受信させることを特徴とする請求項２記載のモニタリングシステムにおける通信システム。
【請求項４】
共有メモリの一部が共有メモリコントロールプログラムにより割当領域として通信を要求する夫々のアプリケーションプログラムに割り当てられ、アプリケーションプログラムとターゲットシステムの間で通信データの受け渡しが不要となると、そのアプリケーションプログラムの割当領域は共有メモリコントロールプログラムにより解除されることを特徴とする請求項１から３何れか１項記載のモニタリングシステムにおける通信システム。
【請求項５】
共有メモリコントロールプログラムは各アプリケーションプログラムに夫々含まれていることを特徴とする請求項４記載のモニタリングシステムにおける通信システム。
【請求項６】
アプリケーションプログラムは通信手段を介して、ターゲットシステムとしてのコンピュータのハードウェア内部の記憶装置と通信データの受け渡しを行うことを特徴とする請求項１から５何れか１項記載のモニタリングシステムにおける通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のアプリケーションプログラムとターゲットシステムとの間で通信データを、通信手段を介して、送受信するモニタリングシステムにおける通信システムに関する。
【０００２】
【従来の技術】
従来の通信システムとして、特開平１１−３２７６１２号に開示のものが知られている。これは複数のモニタ装置がマルチタスクＯＳ上で処理を行っており、あるモニタ装置がプログラマブルコントローラとの間で通信を行う際には、通信を行いたいモニタ装置は自らのモニタＩＤをモニタＩＤ格納手段に格納し、データ要求を送信データ格納手段に格納する。そして１つの通信手段によりデータ要求をプログラムコントローラに対して送信し、通信手段により受信データ格納手段にセットされたプログラムコントローラからのデータ応答をモニタ装置が受け取ると、そのモニタ装置は、モニタＩＤ格納手段に格納したモニタＩＤをリセットし、他のモニタ装置の通信処理を可能とする。あるモニタ装置が通信処理を行っている間、他のモニタ装置はモニタＩＤ格納手段を確認しモニタＩＤがセットされている場合、データ要求を送信データ格納手段に格納できないので、モニタＩＤがリセットされるまで、通信処理を次の機会まで待つ。これにより、複数のモニタ装置が非同期で通信を行い、複数のプログラマブルコントローラのデータ表示を実行する。
【０００３】
【発明が解決しようとする課題】
前記従来の技術に記載のものでは、非同期に複数のモニタ装置（アプリケーションプログラム）が通信を行うことができるが、通信要求を行えるモニタ装置は１つであり、１つのモニタ装置が通信を行っているとき他のモニタ装置はデータ要求（通信データ）をセットすることができず、１つのモニタ装置によって通信処理が完全に占有されてしまう問題があった。また、通信を行いたいモニタ装置は先に通信データをセットしたモニタ装置の通信処理の完了の有無を確認しなければならず、確認処理のため時間がかかると共に通信データをセットしたモニタ手段の通信処理が完了するのを待ち、完了後に通信データをセットするので通信待ちの時間がかかり、通信効率が低い問題があった。また、１つの通信手段により通信が実行されるが、通信手段が複数の通信プロトコルに対応している記載はなく、夫々異なる通信プロトコルにより通信を行うプログラムコントローラ（ターゲットシステム）が混在している場合、通信手段は１つの通信プロトコルに対応しているので同じ種類の通信プロトコルのプログラマブルコントローラとしか通信が行えず、他の通信プロトコルのターゲットシステムと通信を行うことができない問題があった。
この発明の課題は、１つのアプリケーションプログラムの１回の通信要求で通信手段を占有することが無いと共に通信の効率が高く、また、複数の異なる通信プロトコルが混在していても通信可能なモニタリングシステムにおける通信システムを提供することである。
【０００４】
【課題を解決するための手段】
前記課題解決のため本願発明は、ターゲットシステムとしてのプログラマブルコントローラとモニタ用のコンピュータとを接続し、コンピュータの複数のアプリケーションプログラムとターゲットシステムとの間で通信データを受け渡しする際に、通信データをコンピュータに備えた通信データ格納手段を介して通信手段によりコンピュータとプログラマブルコントローラ間で送受信するモニタリングシステムにおける通信システムにおいて、前記コンピュータは待ち行列を備えており、通信データ格納手段は、複数のアプリケーションプログラムに対して割当領域を２回以上の通信データを格納可能に複数割り当てることが可能な共有メモリであり、待ち行列は、アプリケーションプログラムによって通信データがセットされた夫々の割当領域を特定するメモリ番号が各アプリケーションプログラムの通信要求順にセットされ、その通信要求順により通信順序を制御するものであり、前記共有メモリに格納される通信データは、前記通信順序を制御する待ち行列に設定された順序に従って通信手段により送受信されることを特徴とする（請求項１）。これによれば、２回（２セット）以上の通信データを格納できる共有メモリを備えているので、１つのアプリケーションプログラムによる通信中にも別のアプリケーションプログラムのデータ要求を共有メモリにセットでき、１つのアプリケーションプログラムによって通信手段が完全に占有されない。また、待ち行列に通信要求順にセットされたメモリ番号に従って通信を行うので、通信時に共有メモリを全て調べ通信データにより通信の有無及び通信順序を確認する必要が無く、そのため通信処理時間が短くなり好ましい。
【０００５】
前記通信手段は、各ターゲットシステムと各ターゲットシステムに対応する通信プロトコルとの対応表を備えており、その対応表を参照して、アプリケーションプログラムが通信を要求するターゲットシステムとそのターゲットシステムに対応する通信プロトコルにより通信データの送受信を実行することを特徴とする（請求項２）。通信手段は対応表に基づいて通信プロトコルが異なる複数のターゲットシステムと通信を行えるので好適である。また、アプリケーションプログラムは通信手段を介して各ターゲットシステムと通信を行うので異なるプロトコルのターゲットシステムでも同様に通信が行える。また、アプリケーションプログラムと通信手段とが独立しているので、アプリケーションプログラムを変更すること無く、通信手段のみを変更すれば対応していない通信プロトコルであっても通信可能となり、また、プログラム製作期間を短縮できて好ましい。
【０００６】
前記通信手段はマスタの通信マネージャプログラムと各ターゲットシステムに対応する通信プロトコルを備えた複数のスレーブの通信マネージャプログラムとを含んでおり、マスタの通信マネージャプログラムが共有メモリにセットされた通信データに基づき対応表を参照し、通信を行うターゲットシステムに対応するスレーブの通信マネージャプログラムによって通信データを送受信させることを特徴とする（請求項３）。
【０００７】
前記共有メモリの一部が共有メモリコントロールプログラムにより割当領域として通信を要求する夫々のアプリケーションプログラムに割り当てられ、アプリケーションプログラムとターゲットシステムの間で通信データの受け渡しが不要となると、そのアプリケーションプログラムの割当領域は共有メモリコントロールプログラムにより解除されることを特徴とする（請求項４）。これによれば、共有メモリの一部が、アプリケーションプログラムとターゲットシステムの間での通信データの受け渡しの要、不要（例えば、アプリケーションプログラムの起動、終了）によって割当領域として各アプリケーションプログラムに対して割り当て、解除されるので、あるアプリケーションプログラムが終了し割当領域が解除されると、通信を要求する他のアプリケーションプログラムにその解除された共有メモリの一部を新たな割当領域として割り当て通信要求をセットできるので、共有メモリを有効に利用でき効率が向上する。また、同一のアプリケーションプログラムが共有メモリに複数の割当領域を割り付けることもできる。
【０００９】
共有メモリコントロールプログラムは各アプリケーションプログラムに夫々含まれていることを特徴とする（請求項６）。これによれば、同一の共有メモリコントロールプログラムを夫々のアプリケーションプログラムに組み込み可能なプログラムとしているので、アプリケーションプログラムを作成するごとに再利用でき、アプリケーションプログラムの作成の効率が向上する。
【００１０】
アプリケーションプログラムは通信手段を介して、ターゲットシステムとしてのコンピュータのハードウェア内部の記憶装置と通信データの受け渡しを行うことを特徴とする（請求項７）。これによれば、通信手段を介して記憶装置とも通信データの受け渡しを行うので、アプリケーションプログラムに記憶装置のどの領域とデータの受け渡しを行えば良いかを設定する必要が無いと共に、記憶装置の特定のデータ領域を、特定のアプリケーションプログラムの専用のデータ領域とするのではなく、異なるアプリケーションプログラム夫々が利用可能なデータ領域とすることができる。
【００１１】
【発明の実施の形態】
本願発明の実施の形態について図１から図８に基づいて説明する。モニタ用のパーソナルコンピュータ（以下ＰＣと記載）とターゲットシステムとしての各プログラマブルコントローラ（以下ＰＬＣ１〜ＰＬＣｎと記載）とは、図１に示すように、ＰＣ及び各ＰＬＣ１〜ＰＬＣｎの夫々の通信インターフェイス（本願実施の形態ではシリアルインターフェイス）１，２を通信ケーブル３により接続してモニタリングシステムを構成している。各ＰＬＣ１〜ＰＬＣｎには夫々モニタ対象（例えば工作機械）４が汎用Ｉ／Ｏ５を介して接続されており、各ＰＬＣ１〜ＰＬＣｎはモニタ手段６を備え、夫々のモニタ対象４を制御監視すると共に監視により得られたモニタ情報としての収集データをＰＣにシリアルインターフェイス１，２経由で送るようになっている。また、ＰＣからは、各ＰＬＣ１〜ＰＬＣｎへ、各ＰＬＣ１〜ＰＬＣｎに対する設定データをシリアルインターフェイス１，２経由で転送するようになっている。また、ＰＬＣ１〜ＰＬＣｍ、ＰＬＣｍ＋１〜ＰＬＣｎは夫々異なる通信プロトコルｐｒ１、ｐｒ２を備えており、夫々の通信プロトコルに従ってＰＣとの間で通信処理を行うようになっている。
【００１２】
ＰＣは、図１に示すように通信手段としての通信コントロール部７と、複数のアプリケーションプログラムＡ１〜Ａｎから成るモニタプログラムと、ターゲットシステムの１つであるハードディスク８や作業用メモリ９等の記憶装置とを備えている。通信手段７は、共有メモリ１０と待ち行列１１とマスタの通信マネージャプログラム１２とスレーブの通信マネージャプログラム１３〜１６と通信インターフェイス２と、図２に示す各ターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎと各ターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎに対応する通信プロトコルで実際の通信を行うスレーブの通信マネージャ１３〜１６との対応表１７とを含んでいる。そして、通信手段７とモニタプログラムと通信インターフェイス１と通信ケーブル３とにより通信システムが構成されている。
【００１３】
共有メモリ１０は、後述の共有メモリコントロールプログラム１８によって、マスタの通信マネージャプログラム１２に対してＰＣに備えられたメモリの一部が割り当てられると共に、その共有メモリ１０は、図３に示すように、通信要求をした夫々のアプリケーションプログラムＡ１〜Ａｎに対して適宜に割当領域を２回以上の通信データを格納可能に複数割当ることができるようになっており、その各割当領域にはアプリケーションプログラムＡ１〜Ａｎとターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎ間で授受される通信データが設定される。通信データは、例えば図４に示すようにターゲットシステムとの通信の完了、未了を示す”１”、”０”が設定される通信フラグ、ターゲットシステムを指定するターゲット指定番号”ＰＬＣ１”、ターゲットシステムのデバイス（ターゲットシステムの各種データ格納エリア）を指定するデバイス番号”ｄ００１”、データ数”１２”、読み書き指定コマンド（ＲまたはＷ）、どのアプリケーションプログラムＡ１〜Ａｎの通信要求か”Ａ１”等からなるコマンドと、ＰＣとターゲットシステム間で授受される授受データとを含んでいる。授受データは、異常情報や工程等の稼動状態を示す収集データ、ＰＣからＰＬＣ１〜ＰＬＣｎへの設定データ、ＨＤＤ等との読書きデータ等を含んでいる。
【００１４】
待ち行列１１は、夫々のアプリケーションプログラムＡ１〜Ａｎの通信依頼に対応して共有メモリ１０に割り当てられた夫々の割当領域を特定するメモリ番号を割当領域に通信データがセットされた順に記憶し、割当順にマスタの通信マネージャプログラム１２に渡す、先入れ先出しシステムであり、例えば順番にメモリ番号”１”、メモリ番号”２”の割当領域に通信データがセットされたとすると、図５（ｂ）に示すように待ち行列１１には、順番にメモリ番号”１”、メモリ番号”２”がセットされ、通信の際には、メモリ番号”１”の割当領域の通信データによる通信が行われた後、次にメモリ番号”２”の割当領域の通信データによって通信が行われる。
【００１５】
マスタの通信マネージャプログラム１２とスレーブの通信マネージャプログラム１３〜１６とは、アプリケーションプログラムＡ１〜ＡｎとＰＬＣ１〜ＰＬＣｎ間及びアプリケーションプログラムＡ１〜ＡｎとＰＣのハードウェア内部の記憶装置との通信を処理するものである。マスタの通信マネージャプログラム１２は、後述の共有メモリコントロールプログラム１８を含み、アプリケーションプログラムＡ１〜Ａｎからの通信要求に応じ、共有メモリ１０に格納されたアプリケーションプログラムＡ１〜Ａｎからの通信データに基づいてどのターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎと通信を行いたいかを確認し、通信要求先となるターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎと対応する通信プロトコルを備えたスレーブの通信マネージャプログラム１３〜１６を対応表１７を参照して選定し、そのスレーブの通信マネージャプログラム１３〜１６に通信の指示を出し、コマンドで指定されたターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎとの間で送受信が行われた通信データを共有メモリ１０に読書きする。
【００１６】
各スレーブの通信マネージャプログラム１３〜１６は、夫々のターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎの通信プロトコルｐｒ１〜ｐｒ４に対応しており、マスタの通信マネージャプログラム１２からの指令により、実際にコマンドで指定されたターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎとの間でデータ通信を行うものである。スレーブの通信マネージャプログラム１３〜１６は通信インターフェイス１，２としてシリアルインターフェイスが利用される場合にはシリアルインターフェイスに対応したものが、通信インターフェイス１，２としてＬＡＮが利用される場合にはＬＡＮに対応したものが夫々通信手段７に組み込まれ、また、同一の通信インターフェイス１，２であっても、例えば、メーカー毎にＰＬＣ１〜ＰＬＣｎの通信プロトコルが異なれば、通信プロトコルの種類だけ通信手段７に組み込まれる。本願実施の形態では、通信手段７には、ＰＬＣ１〜ＰＬＣｍの通信プロトコルｐｒ１とＰＬＣｍ＋１〜ＰＬＣｎの通信プロトコルｐｒ２とハードディスク８の通信プロトコルｐｒ３と作業用メモリ９の通信プロトコルｐｒ４の各通信プロトコルに夫々対応して４つのスレーブの通信マネージャ１３〜１６が組み込まれている。
【００１７】
共有メモリコントロールプログラム１８は、マスタの通信マネージャプログラム１２に組み込まれた場合には、前記のようにマスタの通信マネージャプログラム１２に共有メモリ１０を割り当てる共有メモリ割当手段として、また、アプリケーションプログラムＡ１〜Ａｎに組み込まれた場合には、その共有メモリ１０を、図３に示すように、通信要求元のアプリケーションプログラムＡ１〜Ａｎに割当領域として割り当てまたは開放する割当領域操作手段として機能し、更に、これら共有メモリ１０と割当領域の位置と大きさを記憶すると共に夫々の割当領域と対応してメモリ番号を記憶し、そのメモリ番号を待ち行列１１に格納する。また、共有メモリコントロールプログラム１８は、マスタの通信マネージャプログラム１２と夫々のアプリケーションプログラムＡ１〜Ａｎとに組み込み可能なプログラムとして製作されており、マスタの通信マネージャプログラム１２及びアプリケーションプログラムＡ１〜Ａｎを製作する際に再利用でき、プログラム製作の効率を向上できる。
【００１８】
図６は、マスタの通信マネージャプログラム１２のフローチャートを示すものであり、各ステップは機能実現手段を示している。ステップＳ６１は、初期設定として待ち行列１１をＰＣのメモリに設定すると共に共有メモリコントロールプログラム１８によって共有メモリ１０を確保する初期設定手段である。ステップＳ６３は、待ち行列１１を調べ、メモリ番号が格納されているか判別し、メモリ番号が格納されている場合、メモリ番号の格納順によって共有メモリ１０に格納された通信データの通信順序を確認する通信順確認手段である。ステップＳ６４は、待ち行列１１に格納された通信順序が最先となっているメモリ番号に対応した割当領域の通信データの内容を確認する通信データ確認手段である。ステップＳ６５は、確認した通信データのターゲット指定番号から図２に示す対応表１７を参照してターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎに対応するスレーブの通信マネージャプログラム１３〜１６を選択し、そのスレーブの通信マネージャプログラム１３〜１６に共有メモリ１０から通信データを受け渡し、通信を行わせる通信指令手段である。ステップＳ６６は、スレーブの通信マネージャの通信完了待ち手段であり、ステップＳ６７は、スレーブの通信マネージャプログラム１３〜１６がターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎとの間で授受した通信データを受取り、通信フラグを通信の未了を示す”０”から通信の完了を示す”１”に変更し、その通信データを共有メモリ１０の元の割当領域に再びセットするセット手段である。ステップＳ６８は、ターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎとの間で通信データの送受信が完了すると、通信データに設定されているアプリケーションプログラムＡ１〜Ａｎに通信完了メッセージを通知する通信完了通知手段である。
【００１９】
ステップＳ６９は、アプリケーションプログラムＡ１〜Ａｎが共有メモリ１０に割当領域を確保し、その割当領域に通信データをセットしたことを示す割当領域操作用のメッセージがアプリケーションプログラムＡ１〜Ａｎから通知されると、そのメッセージを受け取りステップＳ６３〜ステップＳ６８の間で割り込みを行う割り込み手段であり、ステップＳ６１０は、割当領域操作用のメッセージにより、アプリケーションプログラムＡ１〜Ａｎにより通信データがセットされた割当領域にメモリ番号を付与し、そのメモリ番号を待ち行列１１にセットするメモリ番号セット手段であり、ステップＳ６９、Ｓ６１０は、マスタの通信マネージャプログラム１２に含まれる共有メモリコントロールプログラム１８により実行される。
【００２０】
図７は、各スレーブの通信マネージャプログラム１３〜１６のフローチャートを示すものであり、各ステップは機能実現手段を示している。ステップＳ７１はマスタの通信マネージャプログラム１２からの通信指令と共に通信データを受け取る通信データ受取手段であり、ステップＳ７２は通信データに基づいてターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎと対応する通信プロトコルｐｒ１〜ｐｒ４で通信を行い、通信データを送受信する通信処理手段であり、ステップＳ７３はターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎとの間で通信データの送受信が完了すると、通信完了メッセージをマスタの通信マネージャプログラム１２に送信すると共にその通信が完了した通信データをマスタの通信マネージャプログラム１２に渡す通信完了通知手段である。
【００２１】
図８は、モニタプログラムを構成する各アプリケーションプログラムＡ１〜Ａｎの概要を示すフローチャートであり、ステップ８１は、初期設定手段であり、アプリケーションプログラムがターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎとの間で通信が必要となると、アプリケーションプログラムＡ１〜Ａｎに組み込まれた共有メモリコントロールプログラム１８によって共有メモリ１０に割当領域を確保し、その割当領域に通信フラグを”１”に設定した通信データを設定する。ステップＳ８２は、ターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎの設定、収集データを適宜に表示または記録する等の適宜な通常動作を行う通常動作手段である。ステップＳ８３は、アプリケーションプログラムの終了（ＰＬＣとの通信データの受け渡しの必要、不要）を判別する手段である。ステップＳ８４は、マスタの通信マネージャプログラム１２からの通信完了メッセージを受け取ったかを判断するメッセージ受取判別手段であり、ステップＳ８５は、割当領域の通信データの通信フラグが”１”であるかを判別するフラグ判別手段であり、ステップＳ８６は、割当領域に通信フラグを”０”とした通信データをセットし、割当領域操作用のメッセージ（通信データセットメッセージ）をマスタの通信マネージャプログラム１２に通知する通信データセット手段である。ステップＳ８７はステップＳ８４でマスタの通信マネージャプログラム１２から通信完了メッセージを受け取ると、割当領域にセットされている通信データを受け取る通信データ受取手段である。ステップＳ８８はアプリケーションプログラムの終了設定手段であり、共有メモリコントロールプログラム１８によって割当領域を開放して、そのメモリ開放を通知する割当領域操作用のメッセージ（割当領域開放メッセージ）をマスタの通信マネージャプログラム１２に通知するメモリ開放手段である。
【００２２】
次に作用について説明する。ＰＣはマルチタスクオペレーティングシステムを搭載しており、複数のプログラムを常時並列処理することが可能となっている。ＰＣ及び各ＰＬＣ１〜ＰＬＣｎの起動動作の後、各ＰＬＣ１〜ＰＬＣｎではモニタ対象４のデータ収集等が行われ、また、ＰＣでは、マスタ及びスレーブの通信マネージャプログラム１２、１３〜１６と各アプリケーションプログラムＡ１〜Ａｎが実行される。マスタの通信マネージャプログラム１２は、ステップＳ６１で初期設定を行い、共有メモリコントロールプログラム１８によって共有メモリ１０を確保すると共に待ち行列１１を確保し、待ち行列１１にメモリ番号を設定するまでステップＳ６２、Ｓ６３を繰り返し待機している。
【００２３】
また、夫々のアプリケーションプログラムＡ１〜Ａｎが実行されると、ステップＳ８１〜Ｓ８７を実行し、各アプリケーションプログラムＡ１〜Ａｎが夫々ターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎと通信手段７を介して通信データの授受を行い、その通信データを用いて通常動作を行う。例えば、アプリケーションプログラムＡ１が実行されると、先ずステップＳ８１で初期設定として共有メモリ１０の適宜な範囲（共有メモリ１０の空いている領域）に割当領域を確保し、その割当領域に通信フラグが”１”の通信データをセットする。次にステップＳ８２で通常動作が行われ、ターゲットシステムとしてのＰＬＣ１との通信を要求すると、ステップＳ８３を介して、ステップＳ８４でマスタの通信マネージャ１２から通信完了メッセージが通知されたかを確認し、「ＮＯ」なのでステップＳ８５に進む。ステップＳ８５では、通信フラグが”１”なのでステップＳ８６に進み、ステップＳ８１で確保された割当領域に図３のように通信フラグを”０”とした通信データをセットし通信データセットメッセージをマスタの通信マネージャプログラム１２に通知する。そして、マスタの通信マネージャ１２から通信完了メッセージが通知されるまでステップＳ８２〜Ｓ８５を繰り返す。
【００２４】
ステップＳ８６で通信データセットメッセージが出力されると、マスタの通信マネージャプログラム１２ではステップＳ６９，Ｓ６１０が実行され、アプリケーションプログラムＡ１の通信データがセットされた割当領域にマスタの通信マネージャプログラム１２によりメモリ番号”１”が付与され、図５（ａ）のように待ち行列１１にメモリ番号”１”がセットされる。マスタの通信マネージャプログラム１２は、ステップＳ６３で待ち行列１１にメモリ番号がセットされていることを確認すると、ステップＳ６４〜Ｓ６８を実行する。待ち行列１１にセットされたメモリ番号”１”が通信順の先頭となると（図５（ｂ））、ステップＳ６４、Ｓ６５でメモリ番号”１”の割当領域にセットされた通信データを確認し、対応表１７を参照してＰＬＣ１の通信プロトコルｐｒ１を備えたスレーブの通信マネージャプログラム１３に通信データを渡し、ステップＳ６６でスレーブの通信マネージャプログラム１３によるＰＬＣ１との通信の完了を待つ。スレーブの通信マネージャプログラム１３は、ステップＳ７１〜Ｓ７３により、マスタの通信マネージャプログラム１２から通信データを受け取るとＰＬＣ１と通信を行って通信データを送受信し、その通信データをマスタの通信マネージャプログラム１２に渡す。マスタの通信マネージャプログラム１２は、ステップＳ６７、Ｓ６８で、そのＰＬＣ１との間で授受された通信データの通信フラグを通信の未完を示す”０”から通信の完了を示す”１”に変更してメモリ番号”１”の割当領域にセットし、通信完了メッセージをアプリケーションプログラムＡ１に通知する。
【００２５】
するとアプリケーションプログラムＡ１はステップＳ８４で通信完了メッセージを受け取り、ステップＳ８７に進んで通信データを割当領域から受け取り、ステップＳ８２に戻って通信データを用いて通常動作を行い、再びステップＳ８２〜Ｓ８７を繰り返し、メモリ番号１の割当領域に新たな通信データをセットしてターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎの何れかと通信を行う。また、ステップＳ８３で、例えばアプリケーションプログラムＡ１の終了により、アプリケーションプログラムＡ１とＰＬＣ１との間で通信データの受け渡しが不要となると、ステップＳ８８に進み、終了設定を行い、割当領域を開放して割当領域開放メッセージをマスタの通信マネージャプログラム１２に通知する。
【００２６】
また、メモリ番号”１”が待ち行列１１にセットされた後、アプリケーションプログラムＡ３が実行され作業メモリ９との通信を要求すると、前記アプリケーションプログラムＡ１とＰＬＣ１との通信のように、ステップＳ８１で初期設定を行って割当領域を確保し、ステップＳ８２〜Ｓ８５を介してステップＳ８６で共有メモリ１０に割り当てられた割当領域に通信データをセットし、ステップＳ６９、Ｓ６１０で待ち行列１１にメモリ番号”２”がメモリ番号”１”の次にセットされる（図５（ｂ））。通信順序が先のメモリ番号”１”の割当領域にセットされた通信データによる通信が行われ、メモリ番号”２”が待ち行列の先頭となると（図５（ｃ））、ステップＳ６４、Ｓ６５で対応表１７が参照され、作業用メモリ９との通信プロトコルｐｒ４を備えたスレーブの通信マネージャプログラム１６に通信データが渡され、ステップＳ７１〜Ｓ７３によりスレーブの通信マネージャプログラム１６によって作業メモリ９との間で通信データの授受が行われる。そして、ステップＳ６６を介して、ステップＳ６７、Ｓ６８及びステップＳ８４、Ｓ８７によりマスタの通信マネージャプログラム１２によってメモリ番号”２”の割当領域にセットされた通信後の通信データをアプリケーションプログラムＡ３が受け取る。このように複数の通信データを通信手段７にセットできるので、１セットの通信によって通信手段７が占有されない。
【００２７】
尚、このとき、先のメモリ番号”１”の通信データ、即ちＰＬＣ１との間の通信が行われていても、作業用メモリ９との通信はＰＬＣ１との通信プロトコルｐｒ１と異なる通信プロトコルｐｒ４のスレーブの通信マネージャプログラム１６によって行われるので、同時に通信が実行されるようにしても良い。また、先に行われている通信と次に行われる通信が同じ通信プロトコルのスレーブの通信マネージャプログラムで実行される場合には、本願実施の形態では１つの通信プロトコルに１つのスレーブの通信マネージャプログラムが対応しているので、先の通信が終わった後、次の通信が行われる。また、各アプリケーションプログラムＡ１〜Ａｎは、共有メモリ１０に複数の割当領域を確保することもでき、例えば図３のようにアプリケーションプログラムＡ１はメモリ番号１，３の割当領域を確保することができ、夫々に通信データをセットすることが可能である。
【００２８】
前記のように、アプリケーションプログラムとターゲットシステムの間で通信データの受け渡しが不要となると、共有メモリ１０から割当領域を開放するので、共有メモリ１０の一部が割当領域として割り当てられたアプリケーションプログラムに占有されることが無く、その共有メモリの空き部分にアプリケーションプログラムＡ１〜Ａｎが新たな割当領域を確保して通信データをセットでき、通信の処理効率が向上する。また、ＰＣとターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎ間の通信は、マスタの通信マネージャプログラム１２がスレーブの通信マネージャプログラム１３〜１６に実行させ、アプリケーションプログラムＡ１〜Ａｎとの通信データの受け渡しは共有メモリ１０を介して、マスタの通信マネージャプログラム１２が処理するので、アプリケーションプログラムＡ１〜Ａｎは通信プロトコルｐｒ１〜ｐｒ４の違いを意識せずに通信プロトコルの異なるターゲットシステム８，９，ＰＬＣ１〜ＰＬＣｎと同じ操作で通信を行える。
【００２９】
【発明の効果】
以上のように本願発明では、２回（２セット）以上の通信データを格納可能な共用メモリを備え、共用メモリに格納された通信データを通信順序を制御する待ち行列に設定された順序に従って通信手段により送受信するので、ＰＣとＰＬＣ間で通信が行われていても共用メモリに通信データをセットできるので、１回の通信によって通信手段が占有されず、通信効率が向上する。また、通信手段は通信プロトコルに対応する対応表を備え、その対応表を参照して通信プロトコルが異なる複数のターゲットシステムとの間で通信データの送受信を実行できる。また、待ち行列にアプリケーションプログラムの通信要求順にセットされるメモリ番号に従って通信が行われるので、待ち行列が無い場合のように通信時に直接共有メモリを調べ、通信データの有無及び通信順序を確認するプロセスが不要となり、通信処理時間が短くなり効率が向上する。
【図面の簡単な説明】
【図１】全体構成を示すブロック図である。
【図２】対応表を示す図である。
【図３】共有メモリを示す図である。
【図４】通信データを示す説明図である。
【図５】待ち行列を示す説明図である。
【図６】マスタの通信マネージャプログラムのフローチャートである。
【図７】スレーブの通信マネージャプログラムのフローチャートである。
【図８】アプリケーションプログラムのフローチャートである。
【符号の説明】
７  通信手段
８、９  記憶装置（ターゲットシステム）
１０  通信データ格納手段（共有メモリ）
１１  待ち行列
１２  マスタの通信マネージャプログラム
１３〜１６  スレーブの通信マネージャプログラム
１７  対応表
１８  共有メモリコントロールプログラム
Ａ１〜Ａｎ  アプリケーションプログラム
ＰＣ  コンピュータ
ＰＬＣ１〜ＰＬＣｎ  プログラマブルコントローラ（ターゲットシステム）
【図１】
0004492778.tif 000002
【図２】
0004492778.tif 000003
【図３】
0004492778.tif 000004
【図４】
0004492778.tif 000005
【図５】
0004492778.tif 000006
【図６】
0004492778.tif 000007
【図７】
0004492778.tif 000008
【図８】
0004492778.tif 000009