(57)【要約】【課題】  複数アプリケーションソフトを組み合わせた１つのシステムにおいて、目的に応じて使用するアプリケーションソフトの組み合わせを容易に組み替えられるようにする。【解決手段】  複数のアプリケーションソフトを接続して１つのシステムとして動作させるプロセス接続手段に、各アプリケーションソフト間の連携動作の管理を行うコア部１０５と、各アプリケーションソフトに直接接続されるインターフェース部１０６とを構成し、インターフェース部に、接続されるアプリケーションソフトの数だけ用意される複数のインターフェースモジュール（１０６−１〜１０６−３）を構成し、当該インターフェースモジュールを、コア部１０５と共通のインターフェース仕様により接続し、アプリケーションソフトと担当するアプリケーションソフト固有のインターフェース仕様により接続するようにする。【選択図】  図１
2005339029.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム上で独立のプロセスとして動作する複数のアプリケーションソフトと、前記複数のアプリケーションソフトを接続して１つのシステムとして動作させるプロセス接続手段とを含み構成されるプログラム連携システムにおいて、
前記プロセス接続手段は、前記各アプリケーションソフト間の連携動作の管理を行うコア部と、前記各アプリケーションソフトに直接接続されるインターフェース部とを有して構成され、
前記インターフェース部は、接続されるアプリケーションソフトの数だけ用意される複数のインターフェースモジュールを備えて構成され、
前記インターフェースモジュールは、前記コア部とは共通のインターフェース仕様により接続され、前記アプリケーションソフトとは担当するアプリケーションソフト固有のインターフェース仕様により接続されていることを特徴とするプログラム連携システム。
【請求項２】
前記コア部は、システム構成を管理するシステム管理モジュールと、前記各アプリケーションソフト間の情報伝達経路の確立を行う配線モジュールと、前記各アプリケーションソフト間の同期の処理を行う同期モジュールとを備えて構成されており、
前記システム管理モジュールは、あらかじめ設定されたシステム構成情報に応じて必要なアプリケーションソフトと当該アプリケーションソフトに対応するインターフェースモジュールとを選択的に起動することを特徴とする請求項１に記載のプログラム連携システム。
【請求項３】
前記システム管理モジュールは、システム起動時にあらかじめ決められた書式に従って記述されたシステム構成データファイルを読み込み、当該システム構成データファイルに応じて必要なアプリケーションソフトと当該アプリケーションソフトに対応するインターフェースモジュールとを選択的に起動することを特徴とする請求項２に記載のプログラム連携システム。
【請求項４】
前記システム管理モジュールは、システム構成を設定するためのグラフィックユーザインターフェースを有し、当該グラフィックユーザインターフェースを介してユーザが設定するシステム構成情報に応じて必要なアプリケーションソフトと当該アプリケーションソフトに対応するインターフェースモジュールとを選択的に起動することを特徴とする請求項２に記載のプログラム連携システム。
【請求項５】
前記各アプリケーションは、それぞれが固有の仮想時間の概念により当該仮想時間の経過に対応した各種処理を行うアプリケーションソフトであり、
前記プロセス接続手段の前記コア部は、前記各アプリケーションソフトが有する前記固有の仮想時間をシステム全体の仮想時間に同期させることを特徴とする請求項１又は２に記載のプログラム連携システム。
【請求項６】
前記プロセス接続手段の前記コア部及び前記インターフェース部を構成する各モジュールは、同一プロセス内の独立したスレッドであることを特徴とする請求項１又は２に記載のプログラム連携システム。
【請求項７】
前記プロセス接続手段は、他のアプリケーションソフトとは独立したプロセスであり、
前記プロセス接続手段の起動後に前記システム管理モジュールが起動され、前記プロセス接続手段を構成する他のモジュール、及びシステムに必要なアプリケーションソフトは前記システム管理モジュールから起動されることを特徴とする請求項２に記載のプログラム連携システム。
【請求項８】
前記プロセス接続手段は、他のアプリケーションソフトの内の何れかのサブプロセスであり、
前記システム管理モジュールは、前記アプリケーションソフトの起動時に起動され、他のモジュール、及びシステムを構成するアプリケーションソフトは、前記システム管理モジュールから起動されることを特徴とする請求項２に記載のプログラム連携システム。
【請求項９】
前記プロセス接続手段の前記インターフェース部は、ダイナミックリンクライブラリとして提供されることを特徴とする請求項１又は２に記載のプログラム連携システム。
【請求項１０】
機械装置の動作をコンピュータシステム上でシミュレーションし、当該シミュレーションの対象となる装置に搭載されるＣＰＵの制御プログラムに従って、前記対象装置のＣＰＵの端子に対応して定義された仮想入力端子の情報を読み込み、当該仮想出力端子を制御することにより前記対象装置のＣＰＵの動作をシミュレーションする１乃至複数のＣＰＵシミュレータと、
アクチュエータ、センサを含む複数の部品からなる機械装置の機構モデル、当該機構モデル間の干渉、連携、及び前記アクチュエータ、前記センサに接続される信号をコンピュータシステム上で定義し、外部から入力されたアクチュエータ動作信号として定義された情報に対応したアクチュエータの動作、及び機構部品間の干渉、連携定義に従って、関連する全ての機構部品の動作をコンピュータシステムの表示装置上に画像として再現するとともに、前記機構モデルの動作の結果、前記センサとして定義された機構モデルに対するあらかじめ定義された作用に応じてセンサ信号として定義された情報を外部に出力する１乃至複数の機構モデルシミュレータと、
前記シミュレーションの対象装置の構成物で前記ＣＰＵシミュレータ、前記機構モデルシミュレータで対応していない構成物の動作、及び前記対象装置に対する外的作用を擬似的に再現する機能、シミュレーションの結果の解析、表示、保存機能、シミュレーションのためのユーザインターフェース機能を備えた１乃至複数のシミュレータアプリケーションと、
前記シミュレーションにおけるシミュレーションソフトを接続して１つの機器制御シミュレーションシステムとして動作させるプロセス接続手段とを含み構成されるプログラム連携システムにおいて、
前記プロセス接続手段は、各種シミュレーションソフト間の連携動作を管理するコア部と、前記各種シミュレーションソフトに直接接続されるインターフェース部とを有して構成され、
前記インターフェース部は、接続される前記各種シミュレーションソフトのインターフェース仕様の数だけ用意される複数のインターフェースモジュールを備えて構成され、
前記インターフェースモジュールは、前記コア部とは共通のインターフェース仕様により接続され、前記各種シミュレーションソフトとは担当するシミュレーションソフト固有のインターフェース仕様により接続されていることを特徴とするプログラム連携システム。
【請求項１１】
前記プロセス接続手段は、
前記シミュレーションの対象機器の構成に応じてシステム構成を管理するシステム管理モジュールと、
前記ＣＰＵシミュレータの入出力信号、前記機構モデルシミュレータのアクチュエータモデル、センサモデルの接続信号、前記シミュレータアプリケーションの入出力信号の情報伝達経路の確立を行う配線モジュールと、
前記ＣＰＵシミュレータの仮想動作クロック、前記機構モデルシミュレータ、前記シミュレータアプリケーションの仮想時間を全てシミュレーションシステムの仮想時間に同期させる処理を行う同期モジュールとを備えて構成され、
前記システム管理モジュールは、指定されたシステム構成に応じて必要なシミュレーションソフトと当該シミュレーションソフトに対応したインターフェースモジュールとを選択的に起動することを特徴とする請求項１０に記載のプログラム連携システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム上で複数の独立プロセスとして存在するアプリケーションソフトを１つのシステムとして同期実行させるプログラム連携システムに関するものである。
【背景技術】
【０００２】
従来、プログラム連携システムとして、下記の特許文献１に挙げるようなものがある。この特許文献１のシステムでは、独立プロセスとして動作する複数のアプリケーションソフトを中間インターフェース部を介して連携動作させる例が示されている。中間インターフェース部は同期処理部、接続部、外部インターフェース部から構成されており、外部インターフェース部がそれぞれのアプリケーションソフトとの直接の通信を担当する。本例のシステムでは、あらかじめシステム構成が決められており、前記外部インターフェース部は固定のシステム構成にのみ対応できるようになっている。
【０００３】
【特許文献１】特開平１１−３２７９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
複数のアプリケーションプログラムを連携させて１つのシステムを構成する場合、システム構成に自由度を持たせることによって、システムの汎用性、利便性が高まる。
例えば、機器制御シミュレーションを行う場合、装置を制御する中央処理装置（ＣＰＵ）のシミュレータ、機構モデルのシミュレータ、その他、各種装置構成のシミュレータやシミュレーションを支援するシステムを受け持つアプリケーションソフト（以下まとめて、シミュレータアプリケーションと呼ぶ）等によってシステムが構成される。そして、これらのシステム構成は、対象となる装置やシミュレーションの目的によって異なる。
【０００５】
ＣＰＵを複数持つシステムであれば、複数のＣＰＵシミュレータが必要になる。また、対象となるメカ構成によって、何種類かの機構モデルシミュレータを使い分ける必要があるかもしれない。更に、機構部品のシーケンシャルな動作を簡易的にテストするためのシミュレーションの場合には、機構モデルシミュレータにシーケンシャルな信号変化を簡易的に与えるシーケンサがシステム構成にあれば動作の重いＣＰＵシミュレータは必要なくなる。また、システムを構成する各種アプリケーションソフトは、独自開発品、市販品等の様々なものが存在し、目的に応じてより適切なものをシステムに組み込めることが望ましい。
【０００６】
しかしながら、前述の従来技術では、必要なシステム構成毎に中間インターフェース部を新たに作成する必要があり、ユーザによって臨機応変にシステム構成を組み替えることができないという問題点があった。
【０００７】
本発明は前述の問題点を鑑みてなされたもので、複数アプリケーションソフトを組み合わせた１つのシステムにおいて、目的に応じて使用するアプリケーションソフトの組み合わせを容易に組み替えることを実現するプログラム連携システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明のプログラム連携システムでは、コンピュータシステム上で独立のプロセスとして動作する複数のアプリケーションソフトと、前記複数のアプリケーションソフトを接続して１つのシステムとして動作させるプロセス接続手段とを含み構成されるプログラム連携システムにおいて、前記プロセス接続手段に、前記各アプリケーションソフト間の連携動作の管理を行うコア部と、前記各アプリケーションソフトに直接接続されるインターフェース部とを構成し、前記インターフェース部に、接続されるアプリケーションソフトの数だけ用意される複数のインターフェースモジュールを構成し、当該インターフェースモジュールを、前記コア部と共通のインターフェース仕様により接続し、前記アプリケーションソフトと担当するアプリケーションソフト固有のインターフェース仕様により接続するようにする。これにより、簡易にシステムに使用されるアプリケーションソフトの構成を変化させることが可能になる。
【０００９】
また、前記コア部に、システム構成を管理するシステム管理モジュールを構成し、前記システム管理モジュールがあらかじめ設定されたシステム構成情報に応じて必要なアプリケーションソフトと当該アプリケーションソフトに対応するインターフェースモジュールとを選択的に起動することにより、システム構成の組み換えがより容易になる。
【発明の効果】
【００１０】
本出願に係る第１の発明によれば、複数アプリケーションソフトを組み合わせた１つのシステムにおいて、目的に応じて使用するアプリケーションソフトの組み合わせを容易に組み替えることができる。
【００１１】
また、本出願に係る第２の発明によれば、エンドユーザがシステム構成を意識することなく容易に必要なプログラムのみを起動できるようになるため、プログラム実行においてコンピュータシステムの資源を有効に活用することができる。また、本出願に係る第３の発明によれば、システム構成の変更を所定の書式によるデータの作成のみで簡易に行うことができる。
【００１２】
また、本出願に係る第４の発明によれば、システム構成の変更をＧＵＩによって簡易に行うことができる。また、本出願に係る第５の発明によれば、独自の仮想時間の概念を持つ様々なアプリケーションソフトを組み合わせた場合でも、システム全体を同一の仮想時間単位で動作させることが可能になるため、システム構成の汎用性を高めることができる。
【００１３】
また、本出願に係る第６の発明によれば、プロセス接続手段が、それぞれが独立プロセスであるシステムを構成する複数のアプリケーションに対して個別に並列に対応できるため、スムースなシステムの連携を実現することができる。また、本出願に係る第７の発明によれば、プロセス接続手段がシステム全体の起動を管理できるため、オペレータはシステム構成を意識せずにシステムを起動することができる。
【００１４】
また、本出願に係る第８の発明によれば、プロセス接続手段をシステムの中心的なアプリケーションソフトのサブプロセスとして動作させることができ、システムの中心となるアプリケーションソフトとの連携を高速に行うことができる。また、本出願に係る第９の発明によれば、前記各アプリケーション毎のインターフェースモジュールを動的にシステムに取り込むことができるため、コンピュータシステムの資源を有効活用できる。
【００１５】
また、本出願に係る第１０の発明によれば、機器制御シミュレーションシステムにおいて、シミュレーションの対象となる機器の構成、シミュレーションの目的に応じた最適なシステムを効率よく構築することができる。また、本出願に係る第１１の発明によれば、機器制御シミュレーションシステムにおいて、シミュレーションの対象となる機器の構成、シミュレーションの目的に応じたシステムの構築をエンドユーザによって容易に行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照して本発明の好適な実施形態を詳細に説明する。
【００１７】
（第１の実施形態）
本発明の第１の実施形態に係るプログラム連携システムの機器制御シミュレーションは、パーソナルコンピュータ、ワークステーション等（以下、まとめてコンピュータシステムと呼ぶ）で実行されるプログラムとして実現されるものである。
【００１８】
図２は、本発明の第１の実施形態に係るプログラム連携システムの概略構成図である。
コンピュータシステム２０１は、中央処理装置（以下、ＣＰＵと呼ぶ）、主記憶装置（以下、ＲＡＭと呼ぶ）、ハードディスク等を内蔵した本体部２０２と、本体部２０２からの指示により画面表示を行う表示装置２０３と、このコンピュータシステム２０１にユーザの指示や文字情報を入力するためのキーボード２０４と、表示装置２０３上の任意の位置を指定することによりその位置に表示されていたアイコン等に応じた指示を入力するマウス２０５とを備えている。
【００１９】
ハードディスクには、機器制御シミュレーションにおける各機能を実現したプログラム、シミュレーションの対象となる機器の情報を含むシミュレーションのための各種データが格納される。シミュレーションに際しては、前記プログラム、各種データを前記ＲＡＭにロードし、前記コンピュータシステム２０１のＣＰＵによってプログラムが実行される。
これらコンピュータシステム２０１の基本動作は、基本プログラムであるオペレーティングシステム（以下、ＯＳと記す）を介して実行される。以下、本実施形態では、コンピュータシステム２０１のＯＳをMicrosoft社のWindows（登録商標） ＯＳの例で説明する。しかし、本発明は。Windows（登録商標） ＯＳ上のシステムに限定されるものではない。
【００２０】
図１は、本発明の第１の実施形態に係るプログラム連携システムの機能構成図である。
図１に示すように、このプログラム連携システムは、ＣＰＵシミュレータＡ（１０１−Ａ），Ｂ（１０１−Ｂ）と、機構モデルシミュレータ１０２と、シミュレータアプリケーション１０３と、シミュレータハブ（以下、ＨＵＢと記す）１０４を備え構成されている。
ＨＵＢ１０４は、コア部１０５（１０５−１〜１０５−３）とインターフェース部１０６（１０６−１Ａ〜１０６−３）を備え構成されている。
【００２１】
コア部１０５は、システム管理モジュール１０５−１、同期モジュール１０５−２、配線モジュール１０５−３、ログモジュールから構成され、インターフェース部１０６は、ＣＰＵシミュレータインターフェースモジュール（以下、ＣＩＦモジュールと呼ぶ）１０６−１Ａ，１０６−１Ｂ、機構モデルシミュレータインターフェース（以下、ＭＩＦモジュールと呼ぶ）１０６−２、シミュレータアプリケーションインターフェース（以下、ＡＩＦモジュールと呼ぶ）１０６−３を備え構成されている。
【００２２】
ＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２、シミュレータアプリケーション１０３は、それぞれがWindows（登録商標） ＯＳ上で個別に動作するアプリケーションソフトであり、それぞれが独立したプロセスとして存在する。更に、シミュレータアプリケーション１０３は機能によって複数の独立プロセスで構成される場合がある。
【００２３】
本実施形態において、ＣＰＵシミュレータ１０１は、ダイナミックリンクライブラリ（以下、ＤＬＬと記す）で提供される外部モジュールとの間で共有メモリ、及び、関数の直接呼出し方式による外部インターフェースを有している。また、機構モデルシミュレータ１０２、シミュレータアプリケーション１０３は、ソケットインターフェースによるプロセス間通信方式による外部インターフェースを有している。
【００２４】
ＨＵＢ１０４は、前記ＣＰＵシミュレータ１０１の直接呼出し方式の外部インターフェースを利用するためにＤＬＬとして提供され、ＣＰＵシミュレータ１０１から起動されるサブプロセスとして動作する。ＣＰＵシミュレータ１０１は、各種イベント発生時に、あらかじめ指定されたＨＵＢ１０４のコールバック関数を呼び出す。
【００２５】
前記ＨＵＢ１０４を構成するシステム管理モジュール１０５−１、同期モジュール１０５−２、配線モジュール１０５−３、ログモジュール、ＣＩＦモジュール１０６−１、ＭＩＦモジュール１０６−２、ＡＩＦモジュール１０５−３の各モジュールはそれぞれ独立したスレッドとして動作し、ＣＰＵシミュレータ１０１の起動時に呼び出されるコールバック関数から各スレッドが起動される。
【００２６】
機構モデルシミュレータ１０２、シミュレータアプリケーション１０３は、ＨＵＢ１０４の提供するアプリケーションプログラムインターフェース（ＡＰＩ）を使用してＨＵＢ１０４との接続を行う。
【００２７】
次に、各構成要素の機能について説明する。
ＣＰＵシミュレータ１０１は、シミュレーション対象となるＣＰＵ（以下、ターゲットＣＰＵと呼ぶ）の動作をコンピュータシステム２０１上で実現する機能である。ここで、ターゲットＣＰＵとは、コンピュータシステム２０１に搭載されているＣＰＵではなく、シミュレーションの対象となる装置（本例ではプリンタ装置）に搭載され、該装置を制御するためのＣＰＵのことである。
【００２８】
ＣＰＵシミュレータ１０１は、ターゲットＣＰＵの制御プログラム（以下、ターゲットファームウエアと呼ぶ）に従って、ターゲットＣＰＵの端子に対応して定義された仮想入力端子の情報を読み込み、仮想出力端子を制御する。また、ＣＰＵシミュレータ１０１は、ターゲットＣＰＵのアドレス空間に対応した仮想アドレス空間を用意している。
【００２９】
ここで、仮想アドレス空間とは、ターゲットＣＰＵの管理するアドレス空間上の個々の領域と１対１で対応する領域をコンピュータシステム２０１のＲＡＭ上に定義したものである。仮想アドレス空間のコンピュータシステム２０１上の実アドレス値は、ターゲットＣＰＵの扱うアドレス値と異なる。そして、ＣＰＵシミュレータ１０１は、ターゲットファームウエアによるターゲットＣＰＵアドレス空間上のアドレス値へのアクセス命令に従って、仮想アドレス空間上の対応する領域にアクセスする。
【００３０】
また、ターゲットＣＰＵのレジスタ類も、前記仮想アドレス空間上に対応する領域が設定され、レジスタ類へのアクセスも仮想アドレス空間へのアクセスによってシミュレーションされる。
【００３１】
ＣＰＵシミュレータ１０１は、外部インターフェースとしてターゲットＣＰＵのＩ／Ｏメモリ、レジスタアクセスのためのメソッドを用意している。外部モジュールは、これらのメソッドにより前記仮想アドレス空間へのアクセスを行う。
【００３２】
コンピュータシステム２０１上でのターゲットファームウエアの処理のシミュレーション方法としては、ターゲットファームウエアのソースプログラムをコンピュータシステム２０１のネイティブ言語に変換して実行する方式と、ターゲットＣＰＵの実行命令を１語ずつ解釈し、コンピュータシステム２０１のＣＰＵに対応した実行命令に翻訳しながら実行する方式がある。本発明は何れのＣＰＵシミュレーション方式にも対応する。
【００３３】
前記のように、ＣＰＵシミュレータ１０１のイベント毎に、ＨＵＢ１０４のコールバック関数が呼び出される。ＣＰＵシミュレータ１０１が前記コールバック関数を呼び出すイベントの例としては、ＣＰＵシミュレータ１０１の状態に関するもの（起動、初期化終了等）や、ターゲットＣＰＵの動作シミュレーション上のイベント（メモリアクセス、割り込み発生等）がある。
【００３４】
機構モデルシミュレータ１０２は、アクチュエータ、センサを含む複数の部品からなる機構モデルを前記コンピュータ上で擬似的に動作させる機能である。機構モデルの各要素（以下、機構部品と呼ぶ）は、ユーザにより形状、種類、動作、機構部品間の干渉と連携条件等が定義される。更に、センサ、アクチュエータについては外部信号定義が行われる。これら機構部品の定義はＣＡＤ図面からの自動設定、専用の機構モデル作成ソフトウエアをユーザが操作して設定、その両方の組み合わせで設定するなどして行われる。
【００３５】
前記のように定義される機構部品の種類としては単なる物体と定義される物と機能定義がなされるもの（モータ、ソレノイド、クラッチ、センサ、歯車、カム、ローラ等）がある。また、機構部品には、対象となる装置の構成物ではないもので装置の動作シミュレーションに必要なもの（プリンタ装置における用紙等）も含まれる。また、前記のように構築された機構モデルは、コンピュータシステム２０１の表示装置２０３上に２次元、又は３次元のグラフィックとして表示される。
【００３６】
機構モデルシミュレータ１０２は、ＣＰＵシミュレータ１０１からＨＵＢ１０４を介して送られてきたアクチュエータ動作信号に対応して、該当するアクチュエータの機構モデルを定義された動きで動作させる。更に機構定義に基づきアクチュエータに連結された機構部品をアクチュエータの動作に関連付けて定義された動きで動作させる。また、オペレータの操作により動作する機構については、前記キーボード２０４、マウス２０５によってオペレータによる機構部品への操作を擬似的に再現し、擬似操作に応じて対象となる機構部品を定義された動きで動作させる。更に、機構部品間の干渉、連携定義に従い、関連する全ての機構部品の動作が再現される。
【００３７】
これら機構部品の動作は、前記表示装置２０３に表示されたグラフィックとして再現されるとともに、機構モデルの動作の結果、センサとして定義された機構モデルにあらかじめ定義された作用が発生すると、作用に応じたセンサ信号を発生させ、そのセンサ信号は、ＣＰＵシミュレータ１０１にＨＵＢ１０４を介して送信される。
【００３８】
シミュレータアプリケーション１０３は、機器制御シミュレーションシステムによる各種試験のための支援プログラムであり、仮想装置に対する各種外的作用を設定したりシミュレーションの結果を解析、表示、保存する機能をもつ。
【００３９】
シミュレーションの対象となる実際の装置は、その装置を使用するオペレータやその装置に接続されたコンピュータシステム等により外部から様々な作用を受けて動作する。シミュレータアプリケーション１０３は、これら外的作用のうち、機構モデルシミュレータ１０２で設定されるメカニカルな外的作用以外のものを擬似的に設定する手段を提供する。本実施形態における対象装置であるプリンタ装置の例では、メカニカルな外的作用としては給紙カセットの操作や消耗部品の取り外し、取り付け等が挙げられる。一方、それ以外の外的作用としては、ホストPCからの各種命令の受信、オペレータによるオペレーションパネルの操作、環境温度の変化等が挙げられる。
【００４０】
シミュレータアプリケーション１０３は、これらを設定するための専用のユーザインターフェース（以下、ＵＩと記す）を提供する。また、シミュレータアプリケーション１０３は、当該ＵＩによる設定に従ってＨＵＢ１０４を介してＣＰＵシミュレータ１０１や機構モデルシミュレータ１０２に所定の外的作用を与える。また、シミュレータアプリケーション１０３は、コンピュータシステム２０１のハードディスクに格納された、連続した外的作用の設定手順を記述したマクロ命令ファイルや一連の外的作用データを記述したファイルを、必要に応じて読み出しＨＵＢ１０４を介してＣＰＵシミュレータ１０１や機構モデルシミュレータ１０２に対して一連の外的作用を与える。
【００４１】
前記のような外的作用の設定機能のほかに、シミュレータアプリケーション１０３は、シミュレーションの結果として出力される各種データを解析、評価し、試験目的に応じた各種情報を表示装置２０３に表示したりハードディスクに保存する機能を有している。
具体的には、各種信号の変化をタイミングチャートとして表示したり、一連の動作をあらかじめ想定された動作と比較してその正当性を評価する、また、不正な事象を可視的に表示する等の機能を有している。
【００４２】
前記のようにＨＵＢ１０４は、コア部１０５とインターフェース部１０６とから構成され、更に、コア部１０５はシステム管理モジュール１０５−１、同期モジュール１０５−２、配線モジュール１０５−３、ログモジュールから、インターフェース部１０６はＣＩＦモジュール１０６−１、ＭＩＦモジュール１０６−２、ＡＩＦモジュール１０６−３から構成される。
【００４３】
コア部１０５は、システム構成に合わせたＨＵＢモジュールの設定、ＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２、シミュレータアプリケーション１０３（以下、まとめて周辺シミュレーションツールと記す）間のデータ伝送管理、同期処理、データ伝送履歴（以下、ログと記す）取得を行う。インターフェース部１０６は、コア部１０５と各周辺シミュレーションツールとの接続を仲介し、ＨＵＢ１０４の外部インターフェースを各周辺シミュレーションツールのインターフェース仕様に対応させる。
【００４４】
システム管理モジュール１０５−１は、あらかじめ設定されたシステム構成定義情報に応じてインターフェースモジュールの構成を管理する。同期モジュール１０５−２は、各インターフェースモジュールから渡されるインターバル通知をもとに、全周辺シミュレーションツールの動作をシミュレーション上の１単位時間間隔で同期させる。
【００４５】
機器制御シミュレーションでは複数の独立プロセスである周辺シミュレーションツールを組み合わせて動作させるため、それぞれの持つ仮想時間を同期させる必要がある。この方法として、同期モジュール１０５−２は、各インターフェースモジュールを介してそれぞれの周辺シミュレーションツールにあらかじめ定義した１同期間隔の実行を指示する。
【００４６】
そして、各インターフェースモジュールを介してそれぞれの周辺シミュレーションツールから１同期間隔の動作終了の通知を受ける。全周辺シミュレーションツールから１同期間隔の動作終了通知を受けた時点で、次の１同期の実行処理に移る。以上の処理の繰り返しにより機器制御シミュレーションシステムを構成する全システムを同じ仮想時間の中で動作させることができる。
【００４７】
配線モジュール１０５−３は、あらかじめ設定された配線定義情報をもとに、周辺シミュレーションツール間を接続する。また、配線モジュール１０５−３は、各インターフェースモジュールに対してデータ送受信のメソッドを提供する。
【００４８】
ログモジュールは、配線モジュール１０５−３と各インターフェースモジュール間でやり取りされる送受信データを、シミュレーション時間情報とともに所定の書式でファイルに記録する。このとき、シミュレータアプリケーション１０３によるタイミングチャートの作成、試験結果の解析、評価は、ログモジュールによって取得したログ情報を使用する。
【００４９】
ＣＩＦモジュール１０６−１、ＭＩＦモジュール１０６−２、ＡＩＦモジュール１０６−３の基本機能は、以下のとおりである。
まず、あらかじめ設定された端子定義情報に基づき各周辺シミュレーションツールと配線モジュール１０５−３との接続を行う。そして、周辺シミュレーションツールからのデータ出力に応じて配線モジュール１０５−３のデータ送受信メソッドを呼び出してデータを配線モジュール１０５−３に渡し、配線モジュール１０５−３からのデータ設定要求に応じて周辺シミュレーションツールにデータを送る。また、同期モジュール１０５−２の同期実行要求に応じて周辺シミュレーションツールに所定の同期間隔での動作を指示し、１同期間隔処理終了を同期モジュール１０５−２に報知する。
【００５０】
ここで、シミュレーションの対象となる装置毎に使用しているＣＰＵが異なり、各ＣＰＵに対応したＣＰＵシミュレータが異なる外部インターフェースを持つ場合には、それぞれに対応したインターフェースモジュールが必要になる。
【００５１】
本発明のプログラム連携システムでは、インターフェースモジュールを、対象となる周辺シミュレーションツール毎にそのインターフェース仕様に合わせて用意し、システム構成に合わせてインターフェースモジュールを選択的に使い分けることにより、様々な周辺シミュレーションツールをシステム構成として組み込み可能としている。ここで、２つの異なる外部インターフェースを持つＣＰＵシミュレータを例に、インターフェースモジュールの制御を説明する。
【００５２】
前記のとおり、ＣＰＵシミュレータ１０１は、イベント毎にＨＵＢ１０４のコールバック関数を呼び出す。このコールバックの方式が異なる外部インターフェースを持つ２つのＣＰＵシミュレータを想定する。
【００５３】
−ＣＰＵシミュレータＡ−
初期設定でイベント毎に対応するコールバック関数の登録を受け、イベント発生時に対応するコールバック関数を呼び出す。
【００５４】
−ＣＰＵシミュレータＢ−
初期設定で指定された１つのコールバック関数を、イベント毎に呼び出す。呼び出し時に発生イベント情報をパラメータとして渡す。
【００５５】
ＨＵＢ１０４は、前記のようにＣＰＵシミュレータ１０１とは、ＣＩＦモジュール１０６−１を介して接続されている。以下、上記ＣＰＵシミュレータ１０１−Ａのインターフェースに対応したＣＩＦモジュールをＣＩＦモジュール１０６−１Ａ、ＣＰＵシミュレータ１０１−Ｂのインターフェースに対応したＣＩＦモジュールをＣＩＦモジュール１０６−１Ｂと呼ぶ。
【００５６】
ＣＩＦモジュール１０６−１Ａは、図３のようにＣＰＵシミュレータ１０１−Ａの初期化時に呼び出される初期化コールバック関数と、各種イベントに対応したコールバック関数の集合であるコールバック関数群を持っている。初期化コールバック関数はｍＣＰＵシミュレータ１０１−Ａから立ち上げ時に呼び出される関数としてあらかじめ指定されている関数である。ＣＩＦモジュール１０６−１Ａは、初期化コールバック関数の中で、各種イベント毎に呼び出されるコールバック関数をＣＰＵシミュレータ１０１−Ａに登録する。具体的には、ＣＰＵシミュレータ１０１−Ａの外部Ｉ／Ｆとして提供されるコールバック関数登録のための関数により、以下のようなコーリングシーケンスにより登録する。
【００５７】
func_entry ( EVENT_ID, FUNC_PTR, DATA_PTR);
func_entry  …  コールバック関数登録関数名
EVENT_ID  …  登録するコールバック関数呼び出しイベントのＩＤ（あらかじめ各イベント毎に指定された番号）
FUNC_PTR  …  コールバック関数へのポインタ
DATA_PTR  …  コールバック関数に渡されるデータ領域へのポインタ
【００５８】
ＣＰＵシミュレータ１０１−Ａは、上記のように登録されたコールバック関数を指定されたイベント発生時に呼び出す。ＣＩＦモジュール１０６−１Ａは、各コールバック関数により各種イベントに対する処理を実現する。例として、ＣＰＵシミュレータ１０１のリードイベントに対する処理を説明する。リードイベントは、ＣＰＵシミュレータ１０１によるターゲットＣＰＵの実行命令シミュレーションにおいて、データ読み出し命令の直前に発生するイベントである。
【００５９】
図４は、リードイベントに対するＣＩＦモジュール１０６−１の処理のフローチャートである。
まず、ステップＳ４０１では、リードイベントの対象となったリード動作のアクセスアドレスをＣＰＵシミュレータより取得する。本例のＣＰＵシミュレータＡでは、コールバック時にパラメータとしてアクセスアドレスが渡される。
【００６０】
続いて、ステップＳ４０２では、当該アドレスがターゲットＣＰＵの仮想アドレス上の外部アクセス領域かどうかを判別する。外部アクセス領域でない場合には、リード処理に対するシミュレーションは、ＣＰＵシミュレータ１０１内で完結するため、終了する。外部アクセス領域である場合には、続いて、ステップＳ４０３で外部アクセス領域に対応する外部データを配線モジュールより取得する。これは、機構モデルシミュレータ１０２、シミュレータアプリケーション１０３から与えられるデータである。
【００６１】
続いて、ステップＳ４０４では、ＣＰＵシミュレータに前記データを当該外部アドレス領域に設定するよう指示する。この指示は、ＣＰＵシミュレータ１０１から提供されるあらかじめ指定されているメソッドによって行う。
【００６２】
ＣＩＦモジュール１０６−１Ｂは、図５のようにＣＰＵシミュレータ１０１−Ｂのから呼び出されるコールバック関数と、各種イベントに対応した関数の集合である関数群を持っている。コールバック関数は、ＣＰＵシミュレータ１０１−Ｂから各種イベント発生時に呼び出される関数としてあらかじめ指定されている関数である。
【００６３】
ＣＰＵシミュレータ１０１−Ｂは、イベント発生時に発生したイベントのＩＤ（あらかじめ各イベント毎に指定された番号）を引数として、ＣＩＦモジュール１−Ｂのコールバック関数を呼び出す。ＣＩＦモジュール１０６−１Ｂは、図６に示すようなイベント−関数テーブルを持ち、コールバック関数の中で前記テーブルを参照することによってＩＤで指定されたイベントに対応する関数を呼び出す。
【００６４】
ＣＩＦモジュール１０６−１Ｂは、各関数により各種イベントに対する処理を実現する。ＣＰＵシミュレータ１０１のリードイベントに対する処理を例にとると、処理の流れは、ＣＩＦモジュール１０６−１Ａのリードイベントに対するコールバック関数（図４）と同じになる。ただし、ＣＰＵシミュレータ１０１Ｂからのリードアドレスの取得、ＣＰＵシミュレータ１０１へのデータ設定はＣＰＵシミュレータ１０１Ｂから提供されるメソッドによって行う。
【００６５】
システム構築に際して、以上のようにして用意されたインターフェースモジュールを使用するＣＰＵシミュレータに合わせてよって入れ替えるだけでことにより外部インターフェース仕様の違いに対応できる。
【００６６】
（第２の実施形態）
本発明の第１の実施形態では、周辺シミュレーションツールの外部インターフェース接続方式の違いに対するインターフェース部の対応を例に説明をしたが、本発明の第２の実施形態では、周辺シミュレーションツールへの指示方式の違いに対するインターフェース部の対応を説明する。
【００６７】
図７は、本発明の第２の実施形態に係るプログラム連携システムの機能構成図である。
図７に示すように、プログラム連携システムは、ＣＰＵシミュレータ７０１と、機構モデルシミュレータ７０２−Ａと、機構モデルシミュレータ７０２−Ｂと、シミュレータアプリケーション７０３と、ＨＵＢ７０４とを備え構成されている。
【００６８】
本実施形態においては、ＣＰＵシミュレータ７０１は、他の周辺シミュレーションツールと同様にソケットインターフェースによるプロセス間通信方式の外部インターフェースを有しており、ＨＵＢ７０４は、独立プロセスとして存在し、メインプロセスのシステム管理モジュール７０５−１から同期、配線、インターフェースの各モジュールが起動される形態を例に説明する。しかし、以下のシステム構成の変化への対応手段は、第１の実施形態のようなＨＵＢの形態の場合にも適用できる。
【００６９】
ここで、システムに機構モデルシミュレータを１つだけ組み込む場合と、機構モデルシミュレータを２つ組み込む場合の２つの構成を切り換える例について説明する。
【００７０】
このようなケースとしては、例えば、機構モデルシミュレータとして装置全体の機構をより簡潔にシミュレーションするもの（以下、機構モデルシミュレータＡとする）と、機構部品の一部の動作をより詳細にシミュレーションするもの（以下、機構モデルシミュレータＢとする）が存在し、通常の全体的なシーケンス確認には機構モデルシミュレータＡのみ、全体のシーケンスの中で機構部品の一部のより詳細な動作解析には機構モデルシミュレータＡとＢの両方をシステムに組み込むというような場合が想定される。
【００７１】
本実施形態では、前記２つの機構モデルシミュレータに関してモータモデル定義が異なる場合を例に、本発明に関る機能を説明する。
【００７２】
実機におけるステッピングモータは、ステッピングモータの各相に与えられる駆動パルスがＣＰＵの出力信号によって制御され動作する。具体的には、ＣＰＵはステッピングモータの各相に与える駆動パルス間隔を変化させることにより回転速度を制御し、駆動パルスの変化順により回転方向を制御する。これらはステッピングモータドライバーＩＣを介して行われ、ステッピングモータドライバーＩＣの種類により、ＣＰＵによる制御方式も異なる。本実施形態では、ＣＰＵからステッピングモータドライバーＩＣへステッピングモータへの通電のオン、オフの指定信号と全相の駆動パルス信号を出力する方式を例にとる。また、本例でシミュレーションするステッピングモータの１パルスあたりの回転角度は７.５°とする。
【００７３】
前記のような方式からＣＰＵシミュレータ７０１とＨＵＢ７０４の接続定義情報としては、ステッピングモータの各相の駆動パルス信号と通電のオン、オフ信号が定義される。機構モデルシミュレータ１０２の接続定義については以下に述べる。
【００７４】
機構モデルシミュレータ１０２のモータモデルの駆動指示方式として、以下のような２つ方式を想定する。
【００７５】
−機構モデルシミュレータＡ−
モータモデルに対して、回転速度［rpm］、回転方向を指定し、回転を指示する。
【００７６】
−機構モデルシミュレータＢ−
モータモデルに対して、１パルスあたりの回転角［°］、回転方向を指定し、パルス信号情報を与える。
【００７７】
ＭＩＦモジュール７０６−２は、他のＨＵＢモジュールとは独立のスレッドで、システム管理モジュール１０５−１からシステム立ち上げ時に起動された後、コア部７０５と機構モデルシミュレータ７０２−Ａ、Ｂとの接続を常時管理しており、ステッピングモータ接続に関しては、コア部７０５の配線モジュール７０５−３を介してＣＰＵシミュレータ７０１から送られるステッピングモータの各相の駆動パルス信号と通電のオン、オフ信号に応じて、機構モデルシミュレータ７０２−Ａ、Ｂのモータモデルに対して回転動作実行を外部インターフェース仕様に即した方法で指示する。
【００７８】
図８は、ステッピングモータ制御シミュレーションに関するＭＩＦモジュール７０６−Ａのステッピングモータ接続機能の制御フローチャートである。
【００７９】
ステップＳ８０１では、パルスカウンターをクリアする。パルスカウンターは配線モジュール７０５−３から送られてくるステッピングモータの励磁パルスからステッピングモータの動作量をカウントするためのものである。カウント方法は後述する。
【００８０】
続いて、ステップＳ８０２では、ステッピングモータ通電信号がオンになるのを待つ。ステッピングモータ通電オンになると、続いて、ステップＳ８０３では、ステッピングモータ駆動パルス信号として定義された各信号の変化を待つ。ここで、いずれかの駆動パルス信号に変化があった場合、続いて、ステップＳ８０４では、パルス変化を解析しステッピングモータの動作を決定する。
【００８１】
ステッピングモータの回転方向は各駆動パルスの変化パターンによって一義的に決まる。この決定方法については公知であるため詳述は避けるが、以下に簡単に説明する。
【００８２】
ステッピングモータの駆動方法としては、１相励磁、２相励磁、１-２相励磁がある。図１０のように何れの方法においても励磁相が０（OFF）から１（ON）に切り替わる順番で回転方向が決まる。ステップＳ８０４では、駆動パルス信号の入力がある毎にパルス信号の状態を確認し、パルス信号変化の順番により回転の有無と回転がある場合の回転方向を解析する。ステップＳ８０４でのパルス解析の後、ステップＳ８０５でパルスカウンターのカウント処理を行う。ここで、ステップＳ８０４でのパルス変化解析の結果、パルス信号が正回転方向に変化している場合にはカウンターを１カウントアップし、逆回転方向に変化している場合にはカウンターを１カウントダウンする。
【００８３】
パルス信号に変化がない場合、及び、パルス信号の変化が正しくモータを回転させることができないパターンの場合にはパルスカウンター値を変化させない。ステップＳ８０５でのパルスカウンターのカウント処理の後、ステップＳ８０６で同期信号のチェックを行う。同期信号は、同期モジュール７０５−２による同期制御のために、ＭＩＦモジュール７０６−２Ａが機構モデルシミュレータ７０２−Ａに対して出した１同期間隔の実行指示に対して、機構モデルシミュレータ７０２−Ａが１同期間隔の動作終了を通知する信号である。
【００８４】
ステップＳ８０６において、同期信号を受けていない場合には、ステップＳ８０２〜ステップＳ８０５を繰り返す。ステップＳ８０６において、同期信号を受けている場合には、ステップＳ８０７に進み、機構モデルシミュレータ７０２−Ａのモータモデルに対してモータの回転方向と回転速度を指示する。モータの回転方向と回転速度はパルスカウンターの値から以下のように求める。
【００８５】
まず、回転方向については、パルスカウンター値の正負によって決める。すなわち、パルスカウンター値が正の場合には正回転、負の場合には逆回転となる。次に、回転速度に関してはパルスカウンターの絶対値によって決める。ステップＳ８０７の時点でのパルスカウンターの絶対値は１同期間隔内でのステッピングモータ駆動パルスの累積値である。従って、パルスカウンターの絶対値から１同期時間のモータ回転量が求まり、モータ回転速度が求まる。
【００８６】
例えば、本実施形態のシステムで１同期間隔の時間は仮想時間上の１msecとし、ある１同期間隔でのパルスカウンター値が２であった場合、前記のとおり本実施形態でシミュレーション対象としているステッピングモータの１パルスあたりの回転角度が７.５°であることから回転速度は、（７.５×２）／３６０／（０.００１／６０）＝２５００［rpm］となる。
【００８７】
前記のように機構モデルシミュレータ７０２−Ａは、モータモデルの駆動指示方式として、回転速度、回転方向を指定し、回転を指示する方式を持っているため、ステップＳ８０７で前記のように求められたモータの回転方向、回転速度を指定し、機構モデルシミュレータ７０２−Ａにモータ回転を指示することによって、機構モデルシミュレータ７０２−Ａの対象となるモータモデルがここで指定された回転方向、回転速度で次の１同期期間で動作させることができる。
【００８８】
ＭＩＦモジュール７０６−２Ｂについても、ＭＩＦモジュール７０６-２Ａと同様に１同期間隔でのステップカウントを行うことにより、機構モデルシミュレータ１０２−Ｂのモータモデルに対応する。
【００８９】
図９は、ステッピングモータ制御シミュレーションに関するＭＩＦモジュール７０６-２Ｂのステッピングモータ接続機能の制御フローチャートである。
図９に示すように、ステップＳ９０１〜ステップＳ９０６は、ＭＩＦモジュール７０６−２ＡにおけるステップＳ８０１〜ステップＳ８０６と全く同じである。すなわち、この処理により１同期間隔内のステップカウントを行うことにより、１同期間隔でのモータの回転方向、回転量を求める。そして、ステップＳ９０７で機構モデルシミュレータ１０２−Ｂのモータモデル駆動指示方式に合わせて、回転方向と回転角度を求める。
【００９０】
回転方向については、ＭＩＦモジュール７０６−２Ａと同様にパルスカウンター値の正負によって求まる。回転角度についてはパルスカウンターの絶対値と対象となるモータモデルの１パルスあたりの回転角度から求まる。
【００９１】
例えば、ある１同期間隔でのパルスカウンター値が３であったとすると、のとおり本実施形態でシミュレーション対象としているステッピングモータの１パルスあたりの回転角度が７.５°であることから回転角度は、７.５×３＝２２.５［°］となる。
【００９２】
前記のように機構モデルシミュレータ７０２−Ｂは、モータモデルの駆動指示方式として、回転速度、回転角度を指定し、回転を指示する方式を持っているため、ステップＳ９０７で前記のように求められたモータの回転方向、回転角度を指定し、機構モデルシミュレータ７０２−Ｂにモータ回転を指示することによって、機構モデルシミュレータ７０２−Ｂの対象となるモータモデルがここで指定された回転方向、回転角度で次の１同期期間で動作させることができる。
【００９３】
以上のように機構モデルシミュレータ７０２−Ａ、７０２-Ｂそれぞれに対して用意されたＭＩＦモジュール７０６-２Ａ、７０６-２Ｂは、ＤＬＬとして提供される。システム管理モジュール７０５−１は、図１１のようなグラフィカルユーザインターフェース（以下、ＧＵＩと呼ぶ）を持っている。
【００９４】
シミュレータコントロールバーは、シミュレーションシステムの動作、設定を行う各種ボタンから構成される。シミュレーションシステムの構成は、プロジェクトとして設定されファイルの保存される。プロジェクトの新規作成、プロジェクトの開閉、プロジェクトの設定等は、メニューボタンをマウス２０５でポイントしクリックする（以下、略してマウスクリックと記述する）と、プルダウンメニューが現れ各作業を選択できる。プロジェクトの新規作成メニューをマウスクリック、或いは、既存のプロジェクトを開いた状態でプロジェクトの設定メニューをマウスクリックすると、プロジェクト設定ウインドウが開き、システムを構成するアプリケーションソフトの追加、削除ができる。
【００９５】
アプリケーションソフトをシステムに追加するときには、使用可能アプリケーション一覧から使用するアプリケーションをマウスクリックで選択し、追加ボタンをマウスクリックする。また、アプリケーションソフトをシステムから削除するときには、使用アプリケーション一覧から削除するアプリケーションをマウスクリックで選択し、削除ボタンをマウスクリックする。
【００９６】
以上の作業で、システム構成を決定後、適用ボタン、または、ＯＫボタンをマウスクリックすることにより、設定がプロジェクトに反映される。設定をプロジェクトに反映させない場合には、キャンセルボタンをマウスクリックする。ＯＫ、または、キャンセルボタンをマウスクリックすることによりプロジェクトの設定ウインドウが閉じる。
【００９７】
プロジェクトを開いた状態で、起動ボタンをマウスクリックすると、プロジェクト構成に設定されたアプリケーションソフトと、当該アプリケーションソフトに対応したインターフェースモジュールが起動される。システム起動後、実行ボタンをマウスクリックすると、シミュレーションの実行が開始される。シミュレーション実行中に停止ボタンをマウスクリックすると、シミュレーションが停止する。
【００９８】
また、シミュレーション実行中にポーズボタンをマウスクリックすると、シミュレーションが一時停止し、一時停止中にポーズボタンをマウスクリックすると、一時停止の状態からシミュレーションが再開される。システム起動時に終了ボタンをマウスクリックすると、システムを構成する各アプリケーションソフト、及び、ＨＵＢを構成する同期、配線、インターフェースの各モジュールを終了する。
【００９９】
以上のようなＧＵＩにより、ユーザから指定されたシステム構成に従って、アプリケーションソフト、及び、対応するインターフェースモジュールの起動、シミュレーションの実効が行われる。
【図面の簡単な説明】
【０１００】
【図１】本発明の第１の実施形態に係るプログラム連携システムの機能構成図である。
【図２】本発明の第１の実施形態に係るプログラム連携システムの概略構成図である。
【図３】本発明の第１の実施形態に係るＣＰＵシミュレータのコールバック方式を説明する図である。
【図４】リードイベントに対するＣＩＦモジュールの処理のフローチャートである。
【図５】ＣＰＵシミュレータのコールバック方式を説明する図である。
【図６】ＣＩＦモジュールのイベント−関数対応テーブルの模式図である。
【図７】本発明の第２の実施形態に係るプログラム連携システムの機能構成図である。
【図８】ステッピングモータ制御シミュレーションに関するＭＩＦモジュールのステッピングモータ接続機能の制御フローチャートである。
【図９】ステッピングモータ制御シミュレーションに関するＭＩＦモジュールのステッピングモータ接続機能の制御フローチャートである。
【図１０】ステッピングモータ励磁パターンと回転方向、回転速度の関係を説明する図である。
【図１１】システム管理モジュールのＧＵＩの模式図である。
【符号の説明】
【０１０１】
１０１  ＣＰＵシミュレータ
１０２  機構モデルシミュレータ
１０３  シミュレータアプリケーション
１０４  シミュレータハブ
１０５  シミュレータハブのコア部
１０５−１  システム管理モジュール
１０５−２  同期モジュール
１０５−３  配線モジュール
１０６  シミュレータハブのインターフェース部
１０６−１  ＣＰＵシミュレータインターフェースモジュール
１０６−２  機構モデルシミュレータインターフェースモジュール
１０６−３  シミュレータアプリケーションインターフェースモジュール
【図１】
2005339029.tif 000003
【図２】
2005339029.tif 000004
【図３】
2005339029.tif 000005
【図４】
2005339029.tif 000006
【図５】
2005339029.tif 000007
【図６】
2005339029.tif 000008
【図７】
2005339029.tif 000009
【図８】
2005339029.tif 000010
【図９】
2005339029.tif 000011
【図１０】
2005339029.tif 000012
【図１１】
2005339029.tif 000013