(57)【要約】【課題】効率よく外部装置と通信を行うコンピュータシステムを実現することを目的にする。【解決手段】本発明は、アプリケーションプログラムに従って外部装置と通信を行うコンピュータシステムに改良を加えたものである。本システムは、オブジェクト指向で設計され、外部装置へのコマンドや機能をメソッドとして定義し、外部装置の機器情報を属性として定義したクラスを記憶する記憶部と、アプリケーションプログラムに従って外部装置に通信の接続をする時に、記憶部のクラスをもとにインスタンスを構築する処理手段とを設けたことを特徴とするものである。【選択図】        図１
2004318457.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムに従って外部装置と通信を行うコンピュータシステムにおいて、
オブジェクト指向で設計され、前記外部装置へのコマンドや機能をメソッドとして定義し、前記外部装置の機器情報を属性として定義したクラスを記憶する記憶部と、
前記アプリケーションプログラムに従って前記外部装置に通信の接続をする時に、前記記憶部のクラスをもとにインスタンスを構築する処理手段と
を設けたことを特徴とするコンピュータシステム。
【請求項２】
処理手段は、インスタンスを構築するときに前記外部装置から機器情報を取得することを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記アプリケーションプログラムに呼び出され、前記処理手段の構築したインスタンスのメソッドを呼び出す関数を定義したインターフェース手段を設けたことを特徴とする請求項１または２記載のコンピュータシステム。
【請求項４】
前記外部装置と通信の接続、通信の切断、データの送信、データの受信を行う手順を通信方式ごとに定義した通信手段を設け、
前記処理手段は、前記通信手段を介して前記外部装置と通信を行うことを特徴とする請求項１〜３のいずれかに記載のコンピュータシステム。
【請求項５】
外部装置は、計測機器であることを特徴とする請求項１〜４のいずれかに記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションプログラムに従って外部装置と通信を行うコンピュータシステムに関し、詳しくは、効率よく外部装置と通信を行うコンピュータシステムに関するものである。
【０００２】
【従来の技術】
近年のコンピュータシステムは、パーソナルコンピュータ（パソコン）と外部装置（例えば、計測機器）とをネットワークで接続して、イーサネット（登録商標）やＧＰ−ＩＢ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｔｅｒｆａｃｅ  Ｂｕｓ）等の通信方式によって通信を行い、計測機器の制御を行っている（例えば、特許文献１）。そして、計測機器に所望の動作を行わせるために、ユーザはアプリケーションプログラム（ユーザプログラム）を作成し、この作成したユーザプログラムをパソコン上で実行する。
【０００３】
この際、パソコンと計測機器とを所定の通信方式で通信させ、計測機器に所望の動作を行わせるためには、多種の手順を必要とする。しかし、これらの手順全てを含んだユーザプログラムを作成するには、高度なプログラミング技術、計測機器および通信方式の詳細な仕様を理解する必要があり、ユーザにとって非常に困難である。
【０００４】
そのため計測機器の製造メーカは、通信の手順や計測機器への動作の手順をまとめた専用のアプリケーションプログラムインターフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を計測機器ごとに提供している。ＡＰＩは、計測機器へのコマンド（例えば、測定開始、測定条件の設定等）や機能（例えば、通信の接続、通信の切断等）ごとに必要な手順を定めた関数としてまとめられている。もちろん、異なる計測機器で共通する関数も少数だが存在する。
【０００５】
そして、ユーザは、適当なパラメータを指定してＡＰＩに含まれる関数を呼び出すだけで所望の動作を計測機器に行わせることができ、容易にユーザプログラムを作成することができる。なお、ＡＰＩは、パソコンのオペレーティングシステム（ＯＳ）上で動作する。
【０００６】
続いて、このような従来のコンピュータシステムの構成例を示す。
計測機器Ｍ１、Ｍ２は外部装置である。ユーザプログラム１は、ユーザによって作成されるプログラムである。通信処理手段２は、いわゆるＡＰＩであり、コマンドや機能ごとに必要な手順を定めた関数を有し、ユーザプログラム１に従って、計測機器Ｍ１、Ｍ２と通信を行う。テーブル３は、記憶部であり、通信処理手段２が計測機器Ｍ１、Ｍ２と通信をして取得した計測機器Ｍ１、Ｍ２の機器情報を記憶する。
【０００７】
この機器情報とは、例えば、計測機器Ｍ１、Ｍ２が設定できる測定レンジや測定周期等であり、さらに計測機器が１つの筐体に複数のモジュールが挿着されたモジュール計測機器の場合、各モジュールの種類（圧力測定用か温度測定用か等）や、何番目のスロットにどのモジュールが装着されているか等も含まれる。また、これらの機器情報は各関数が共通して必要とするものなので、共有情報とも呼ばれる。なお、通信処理手段２、テーブル３はパソコンに設けられる。
【０００８】
このような装置の動作を説明する。
ユーザプログラム１は、
（ａ）初期化（通信の接続）
（ｂ）コマンドの実行（送信、受信）
（ｃ）終了処理（通信の切断）
の手順で記述され、通信処理手段２の関数を呼ぶ。なお、（ｂ）コマンドの実行は、複数回行われることが多い。
【０００９】
そして、通信処理手段２が、ユーザプログラム１に呼ばれた関数ごとに処理を行って、計測機器Ｍ１、Ｍ２の制御を行う。例えば、（ａ）初期化では、計測機器Ｍ１、Ｍ２との通信の接続を確立するとともに、機器情報を計測機器Ｍ１、Ｍ２から取得して、テーブル３に計測機器Ｍ１の機器情報３１、計測機器Ｍ２の機器情報３２を格納する。なお機器情報３１、３２は、通信処理手段２がインデックス値を付して管理する。
【００１０】
さらに、（ｂ）コマンドの実行では、テーブル３の機器情報３１、３２を参照しながら計測機器Ｍ１、Ｍ２と通信して、ユーザプログラム１のコマンドを計測機器Ｍ１、Ｍ２に実行させる。例えば、モジュール計測機器の計測機器Ｍ１に温度測定を開始させるコマンドならば、通信処理手段２が、機器情報３１を参照して、何番目のモジュールに測定の開始をさせればよいかを判断して、測定を開始させる。
【００１１】
そして（ｃ）終了処理（通信の切断）では、計測機器Ｍ１、Ｍ２との接続を切断するとともに、切断した計測機器Ｍ１、Ｍ２の機器情報３１、３２を消去する。
【００１２】
【特許文献１】
特開２０００−１２１３９８号公報（段落番号０００３〜０００９、第８〜９図）
【００１３】
【発明が解決しようとする課題】
このように通信処理手段２がユーザプログラム１に従って計測機器Ｍ１、Ｍ２と通信を行うが、通信処理手段２はユーザプログラム１が逐次処理されることを想定して設計され、テーブル３の機器情報３１、３２をパソコンのＯＳでなく、通信処理手段２が管理している。
【００１４】
しかしながら、近年は効率的に計測機器Ｍ１、Ｍ２に計測させるため、マルチ・スレッド処理を意識してユーザプログラム１が作成されることが多くなっている。また、ユーザプログラム１自体も独立性を保ち、再利用し易いように、オブジェクト指向のプログラミング言語（例えば、Ｃ＋＋言語）で記述されることが多くなっている。そのため、次のような問題が発生している。
【００１５】
テーブル３を通信処理手段２が管理しているので、マルチ・スレッド処理を行うユーザプログラム１であっても、通信処理手段２がテーブル３の機器情報３１、３２の両方を参照すると競合が発生する。この競合を回避するために、テーブル３への参照をロックしてしまう。そのため、マルチ・スレッド処理を行うユーザプログラム１にもかかわらず、通信処理手段２は逐次処理を行う。
【００１６】
また、テーブル３を通信処理手段２が管理しているので、オブジェクト指向のユーザプログラム１で、計測機器Ｍ１、Ｍ２ごとにクラスを定義して、インスタンスを構築しても、機器情報Ｍ１、Ｍ２は独立していない。そのため、通信処理手段２によって制限を受けてしまう。例えば、パソコンの記憶部にインスタンスを構築する余裕があったとしても、接続できる計測機器Ｍ１、Ｍ２の数（構築できるインスタンスの数）は、通信処理手段２がテーブル３で管理できるインデックス値に制限されてしまう。
【００１７】
すなわち、ユーザプログラム１が計測機器Ｍ１、Ｍ２に対して効率よく通信できるものであっても、実際は通信処理手段２によって制限を受けてしまう。
【００１８】
そこで本発明の目的は、効率よく外部装置と通信を行うコンピュータシステムを実現することを目的とする。
【００１９】
【課題を解決するための手段】
請求項１記載の発明は、
アプリケーションプログラムに従って外部装置と通信を行うコンピュータシステムにおいて、
オブジェクト指向で設計され、前記外部装置へのコマンドや機能をメソッドとして定義し、前記外部装置の機器情報を属性として定義したクラスを記憶する記憶部と、
前記アプリケーションプログラムに従って前記外部装置に通信の接続をする時に、前記記憶部のクラスをもとにインスタンスを構築する処理手段と
を設けたことを特徴とするものである。
【００２０】
請求項２記載の発明は、請求項１記載の発明において、
処理手段は、インスタンスを構築するときに前記外部装置から機器情報を取得することを特徴とするものである。
【００２１】
請求項３記載の発明は、請求項１または２記載の発明において、
前記アプリケーションプログラムに呼び出され、前記処理手段の構築したインスタンスのメソッドを呼び出す関数を定義したインターフェース手段を設けたことを特徴とするものである。
【００２２】
請求項４記載の発明は、請求項１〜３のいずれかに記載の発明において、
前記外部装置と通信の接続、通信の切断、データの送信、データの受信を行う手順を通信方式ごとに定義した通信手段を設け、
前記処理手段は、前記通信手段を介して前記外部装置と通信を行うことを特徴とするものである。
【００２３】
請求項５記載の発明は、請求項１〜４のいずれかに記載の発明において、
外部装置は、計測機器であることを特徴とするものである。
【００２４】
【発明の実施の形態】
以下図面を用いて本発明の実施の形態を説明する。
図１は本発明の第１の実施例を示す構成図である。ここで、図６と同一のものは同一符号を付し、説明を省略する。図１において、通信処理手段２、テーブル３の代わりにインターフェース手段４が設けられる。インタフェース手段４は、ユーザプログラム１からみると、通信処理手段２と同じように計測機器Ｍ１、Ｍ２のコマンドや機能ごとに設けられる関数であり、ユーザプログラム１によって呼び出される。
【００２５】
記憶部５は、オブジェクト指向で設計され、計測機器Ｍ１、Ｍ２へのコマンドや機能をメソッドとして定義し、計測機器Ｍ１、Ｍ２の機器情報を属性として定義したクラスＣ１〜Ｃ３を記憶する。このクラスＣ１〜Ｃ３は、計測機器Ｍ１、Ｍ２の製造メーカから提供される。なお、クラスはオブジェクトを作成するための雛型であり、オブジェクトはデータ（属性）とそれを操作する手順（メソッド）を一塊としたものである。
【００２６】
処理手段６は、インターフェース手段４からの指示によって記憶部５のクラスＣ１〜Ｃ３をもとにインスタンスを構築し、定義されたメソッドに基いて計測機器Ｍ１、Ｍ２への通信、制御を行う。
【００２７】
通信手段７は、通信方式ごとに必要な手順が定められ、処理手段６からの指示によって、実際に計測機器Ｍ１、Ｍ２との通信の接続、通信の切断、データの送信、データの受信を行う。なお、インターフェース手段４、記憶部５、処理手段６、通信手段７はパソコンに設けられる。
【００２８】
ここで図２に、記憶部５のクラスＣ１〜Ｃ３の一例を示す。計測機器Ｍ１、Ｍ２ごとにサブクラスＣ１、Ｃ２を定義し、計測機器Ｍ１、Ｍ２の機種に依存しないコマンドや機能をルートクラスＣ３として定義している。なお、ルートクラスＣ３を定義しているのは、機種を意識せずにクラスＣ３のオブジェクトに対して、ユーザが同じメソッドを実行できるようにするためである。
【００２９】
このような装置の動作を図３、図４を用いて説明する。図３は、ユーザプログラム１のフローチャートであり、図４はシーケンス図である。
ユーザプログラム１は、図６に示す装置と同様に、
（ａ）初期化（通信の接続）（Ｓ１１）
（ｂ）コマンドの実行（送信、受信）（Ｓ１２）
（ｃ）終了処理（通信の切断）（Ｓ１３）
の手順で記述され、インターフェース手段４の関数を呼ぶ。つまり、インターフェース手段４によって、ユーザ側からみると従来のユーザプログラム１と同様のの記述でよい。なお、（ｂ）コマンドの実行は、複数回行われることが多い。
【００３０】
そして、インターフェース手段４が、ユーザプログラム１より測定機器Ｍ１、Ｍ２への（ａ）初期化の関数が呼び出されると（ＳＱ１）、処理手段６に測定機器Ｍ１、Ｍ２に対応するクラスＣ１、Ｃ２をもとにオブジェクトの実体（インスタンス）の構築を指示する（ＳＱ２）。これにより処理手段６が、記憶部５からクラスＣ１、Ｃ２それぞれのインスタンス６１、６２を構築するとともに、通信手段７に所望の通信方式で通信の接続を行わせる。なお、通信方式はユーザによってあらかじめ指定されている（ＳＱ３）。もちろん、通信の接続時に計測機器Ｍ１、Ｍ２の機器情報を取得し、インスタンス６１、６２のそれぞれが、計測機器Ｍ１、Ｍ２の機器情報を管理する。また、インスタンス６１、６２は、パソコンの図示しない記憶部に構築され、ＯＳによって管理される。
【００３１】
そして、インターフェース手段４が、ユーザプログラム１より測定機器Ｍ１、Ｍ２への（ｂ）コマンド実行の関数が呼び出されると（ＳＱ４）、読み出された関数に対応するインスタンス６１、６２のメソッドを呼び出す（ＳＱ５）。これにより処理手段６が、インスタンス６１、６２のメソッドに従って通信手段７にコマンドの送信を行わせる。この際、インスタンス６１のメソッドは計測機器Ｍ１の機器情報を参照し、インスタンス６２のメソッドは計測機器Ｍ２の機器情報を参照している（ＳＱ６）。そして、通信手段７が計測機器Ｍ１、Ｍ２と通信を行い、計測機器Ｍ１、Ｍ２の応答から受信したデータを処理手段６に出力する（ＳＱ７）。
【００３２】
インターフェース手段４が、ユーザプログラム１より測定機器Ｍ１、Ｍ２への（ｃ）終了処理の関数が呼び出されると（ＳＱ８）、処理手段６に測定機器Ｍ１、Ｍ２に対応するクラスＣ１、Ｃ２の消滅を指示する（ＳＱ９）。これにより処理手段６が、インスタンス６１、６２を消滅するとともに、通信手段７に通信の切断を行わせる（ＳＱ１０）。
【００３３】
ここで、図５に計測機器１と通信を行うユーザプログラム１の一例を示し、具体的に動作を説明する。まず、計測機器Ｍ１を初期化する初期化の関数（ｏｐｅｎＭ１）によって、処理手段６が、記憶部５のクラスＣ１をもとにインスタンス６１を構築する。なお（ａｄｄｒｅｓ）は、計測機器Ｍ１に割り振られているネットワークアドレスである。そして、インスタンス６１を構築し、計測機器Ｍ１との通信の接続後、インスタンス６１への参照ポインタを識別子（ｉｄ）として返している。
【００３４】
そして、コマンド実行の関数（ｒｕｎＣｏｍｍａｎｄＭ１）や終了処理の関数（ｃｌｏｓｅＭ１）によって、受け取った識別子（ｉｄ）で示されるインスタンス６１のメソッドを呼び出す。そして、このメソッドは、通信手段７に送信、受信を行わせる。なお、パラメータ（ｐａｒａｍｅｔｅｒ）は、コマンドごとに指定する値であり、コマンド実行の関数（ｒｕｎＣｏｍｍａｎｄＭ１）名も仮名称であり、コマンドごとに用意されている。
【００３５】
終了処理の関数（ｃｌｏｓｅＭ１）によって、処理手段６が通信手段７に通信を切断させた後、インスタンス６１を消滅させる。
【００３６】
このように、処理手段６が、計測機器Ｍ１、Ｍ２と通信の接続をするときに、計測機器Ｍ１、Ｍ２ごとに設けられたクラスＣ１、Ｃ２をもとに、機器情報を属性としてインスタンス６１、６２を構築するので、計測機器Ｍ１、Ｍ２の機器情報がインスタンス６１、６２ごとに独立している。これにより、効率よく計測機器Ｍ１、Ｍ２と通信を行うことができる。
【００３７】
すなわち、計測機器Ｍ１、Ｍ２の機器情報がインスタンス６１、６２ごとに独立しているので、マルチ・スレッド処理のユーザプログラム１であっても、機器情報を参照時する時にインスタンス６１、６２が競合を起こすことがない。これにより、マルチ・スレッド処理で通信を行うことができ、効率よく外部装置と通信を行うことができる。また、ユーザも競合等を考慮せずにプログラムを作成できるので、ユーザプログラムの作成が効率よくなる。
【００３８】
また、計測機器Ｍ１、Ｍ２の機器情報がインスタンス６１、６２ごとに独立しているので、図６に示す装置のように通信処理手段２による制限を受けない。つまり、オブジェクト指向では、インスタンス６１、６２の構築される領域はＯＳによって管理されているので、パソコンの性能によって制限される。
【００３９】
そして、記憶部５に計測機器Ｍ１、Ｍ２ごとのクラスが記憶されているので、ユーザがオブジェクト指向でユーザプログラム１を作成する場合、図６に示す装置のように、ユーザ自らが計測機器Ｍ１、Ｍ２のクラスを設計する必要がない。これにより、ユーザプログラムの作成が効率よくなる。
【００４０】
また、処理手段６がクラスＣ１〜Ｃ３をもとにインスタンスを構築して動作するので、製造メーカは処理手段６のデバック、メンテナンスが容易になる。すなわち、オブジェクト指向言語の場合、変更した部分、変更に関連する部分のみをデバックすればよく、Ｃ言語のようなコンパイラ言語のようにプログラム全体をデバックする必要がない。
【００４１】
また、インターフェース手段４が従来のコンピュータシステムと同様の関数を提供し、ユーザプログラム１から読み出された関数に対応するインスタンス６１、６２のメソッドを呼び出す。これによりユーザは、新たにユーザプログラム１を作成する必要がなく、ユーザプログラム１の作成の効率がよくなる。
【００４２】
さらに、通信手段７に通信方式ごとに通信を行う手順が定められ、通信手段７が計測機器Ｍ１、Ｍ２と実際の通信を行うので、製造メーカはクラスＣ１〜Ｃ３を作成する際に、通信方式の特性を考慮することなく作成することができる。
【００４３】
なお、本発明はこれに限定されるものではなく、以下のようなものでもよい。
図１に示すシステムにおいて、計測機器Ｍ１、Ｍ２の２台が接続される構成を示したが、何台接続してもよく、通信を行う計測機器ごとに処理手段６がインスタンスを構築する。もちろん、計測機器の種類も何種類でもよく、記憶部５には計測機器の種類ごとにクラスが格納される。
【００４４】
外部装置として、計測機器Ｍ１、Ｍ２を接続する構成を示したが、ネットワークを介してパソコンと接続され制御される装置、例えば、外付けのハードディスク、デジタルカメラ等でもよい。
【００４５】
記憶部５のクラスＣ１〜Ｃ３には、通信方式に関する定義をしていないが、通信手段７を設けずに、クラスＣ１〜Ｃ３に通信方式に関する機能をメソッドとして定義してもよい。
【００４６】
通信手段７をオブジェクト指向で設計し、通信方式ごとにクラスを定義し、処理手段６からの通信の接続要求の際に、このクラスをもとにインスタンスを構築してもよい。
【００４７】
【発明の効果】
本発明によれば、以下のような効果がある。
請求項１〜５によれば、処理手段が、外部装置と通信の接続をするときに、外部装置ごとに設けられたクラスをもとに、機器情報を属性としてインスタンスを構築するので、外部装置の機器情報がインスタンスごとに独立している。これにより、効率よく外部装置と通信を行うことができる。
【００４８】
請求項３によれば、インターフェース手段が従来のコンピュータシステムと同様の関数を提供し、ユーザプログラムから読み出された関数に対応するインスタンスのメソッドを呼び出す。これによりユーザは、新たにユーザプログラムを作成する必要がなく、ユーザプログラムの作成の効率がよくなる。
【００４９】
請求項４によれば、通信手段に通信方式ごとに通信を行う手順が定められ、通信手段が外部装置と実際の通信を行うので、製造メーカはクラスを作成する際に、通信方式の特性を考慮することなく作成することができる。
【図面の簡単な説明】
【図１】本発明の一実施例を示した構成図である。
【図２】記憶部５のクラスＣ１〜Ｃ３を示した図である。
【図３】ユーザプログラム１の流れを示したフローチャートである。
【図４】図１に示す装置の動作を示したシーケンス図である。
【図５】ユーザプログラム１の記述例を示した図である。
【図６】従来のコンピュータシステムの構成図である。
【符号の説明】
１  ユーザプログラム
４  インターフェース手段
５  記憶部
６  処理手段
７  通信手段
６１、６２  インスタンス
Ｃ１〜Ｃ３  クラス
Ｍ１、Ｍ２  計測機器
【図１】
2004318457.tif 000003
【図２】
2004318457.tif 000004
【図３】
2004318457.tif 000005
【図４】
2004318457.tif 000006
【図５】
2004318457.tif 000007
【図６】
2004318457.tif 000008