(57)【要約】【課題】  モジュール間での同期を簡単に取ることができ、コントロールモジュールにおける制御対象に対する制御のための演算処理への影響を可及的に抑制するとともに、各モジュールの負荷の軽減を図ること【解決手段】  サイクルマスタモジュールと、少なくとも１台以上のモーションコントロールモジュールを備え、各モジュールは、同期バスと大量データを扱うイベントバスからなる２重バス構造で接合される。モーションコントロールモジュールは、制御対象機器の動作を制御するユーザプログラムをサイクリックに演算実行する機能を有し、サイクルマスタモジュールは、制御対象機器以外の外部装置との間のデータの送受、並びにコントロールモジュールに対してイベントバス及び同期バスを用いてデータの送受を行なう機能を有する。モーションコントロールモジュールは、サイクルマスタモジュールから同期バスを介して送られる同期データを受信することを条件とし、１サイクル分の演算実行を行なう。【選択図】        図３
2005293569.tif 000002
【特許請求の範囲】
【請求項１】
サイクルマスタモジュールと、少なくとも1台以上のコントロールモジュールを備え、
前記サイクルマスタモジュールと前記コントロールモジュールとは、同期バスと、同期バスが扱うデータの量に比較して大量のデータを扱うイベントバスからなる２重バス構造で接合され、
前記コントロールモジュールは、制御対象機器の動作を制御するユーザプログラムをサイクリックに演算実行する機能を有し、
前記サイクルマスタモジュールは、前記制御対象機器以外の外部装置との間のデータの送受、並びに前記コントロールモジュールに対して前記イベントバスおよび同期バスを用いてデータの送受を行なう機能を有し、
前記コントロールモジュールは、前記サイクルマスタモジュールから前記同期バスを介
して送られる同期データを受信することを契機に、１サイクル分の演算実行を行なうようにしたことを特徴とする同期コントローラ。
【請求項２】
前記コントロールモジュールが複数設けられ、
前記コントロールモジュールは、他のコントロールモジュールから前記同期バスを介して送られてきた同期データを受信するとともに、同期データ記憶エリアに格納し、その格納した同期データを演算実行の際に利用可能にしたことを特徴とする請求項１に記載の同期コントローラ。
【請求項３】
コントロールモジュールは、増減可能に構成されていることを特徴とする請求項１に記載の同期コントローラ。
【請求項４】
前記サイクルマスタモジュールは、接続された全てのコントロールモジュールからの同期データを受信したことを条件に、自己の同期データを送信するようにしたことを特徴とする請求項１に記載の同期コントローラ。
【請求項５】
前記サイクルマスタモジュールは、一定間隔で同期データを出力するようにしたことを特徴とする請求項１に記載の同期コントローラ。
【請求項６】
システム設定により各モジュールの同期バスを介して送受する同期データの情報種類を選択できる手段を備えたことを特徴とする請求項１に記載の同期コントローラ。
【請求項７】
コントロールモジュールは、制御対象機器とデータを直接送受するためのインタフェースを備えていることを特徴とする請求項１に記載の同期コントローラ。
【請求項８】
制御対象機器を接続する少なくとも1台のコントロールモジュールと、その各コントロールモジュールとの間でデータ送受を行なうサイクルマスタモジュールとからなり、前記各コントローラモジュールと前記サイクルマスタモジュールが同期バスで接合された制御システムであって、
前記サイクルマスタモジュールは、各コントロールモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理と、その同期データに基づいてユーザプログラムを実行する状態別処理と、をサイクリックに実行するものであり、
前記各コントロールモジュールは、サイクルマスタモジュールおよび他のコントローラモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理と、その同期データに基づいて接続制御対象機器の動作に対するユーザプログラムを実行する状態別処理と、をサイクリックに実行するものであり、
サイクルマスタモジュールの同期バスリフレッシュ処理によって各コントロールモジュールは同期され、
サイクルマスタモジュールおよびコントロールモジュールの同期バスリフレッシュ処理によって、順次１つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有することを特徴とする制御システム。
【請求項９】
前記コントロールモジュールが複数設けられ、
前記コントロールモジュールは、他のコントロールモジュールから前記同期バスを介して送られてきた同期データを受信するとともに、同期データ記憶エリアに格納し、その格納した同期データを演算実行の際に利用可能にしたことを特徴とする請求項８に記載の制御システム。
【請求項１０】
コントロールモジュールは、増減可能に構成されていることを特徴とする請求項８に記載の制御システム。
【請求項１１】
前記サイクルマスタモジュールは、接続された全てのコントロールモジュールからの同期データを受信したことを条件に、自己の同期データを送信するようにしたことを特徴とする請求項８に記載の制御システム。
【請求項１２】
前記サイクルマスタモジュールは、一定間隔で同期データを出力するようにしたことを特徴とする請求項８に記載の制御システム。
【請求項１３】
システム設定により各モジュールの同期バスを介して送受する同期データの情報種類を選択できる手段を備えたことを特徴とする請求項８に記載の制御システム。
【請求項１４】
コントロールモジュールは、制御対象機器とデータを直接送受するためのインタフェースを備えていることを特徴とする請求項８に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、同期コントローラに関するものである。
【背景技術】
【０００２】
生産工場（製造現場）に設置されるファクトリーオートメーション（ＦＡ）の制御装置として、プログラマブルコントローラ（ＰＬＣ）が用いられている。このＰＬＣは、複数のユニットから構成される。すなわち、電源供給源の電源ユニット，ＰＬＣ全体の制御を統率するＣＰＵユニット，ＦＡの生産装置や設備装置の適所に取り付けたスイッチやセンサの信号を入力する入力ユニット，アクチュエータなどに制御出力を出す出力ユニット，通信ネットワークに接続するための通信ユニットなどの各種のユニットを適宜組み合わせて構成される。そして、これら各ユニットは、側面に設けられたコネクタを介して電気・機械的に連結され、電源ユニットから各ユニットへ電力供給を受けるとともに、情報の送受も行えるようになっている。
【０００３】
ＰＬＣのＣＰＵユニットにおける制御は、入力ユニットで入力した信号をＣＰＵユニットのＩ／Ｏメモリに取り込み（ＩＮリフレッシュ）、予め登録されたユーザプログラム記述言語（例えばラダー言語）で組まれたユーザプログラムに基づき論理演算をし（演算実行）、その演算実行結果をＩ／Ｏメモリに書き込んで出力ユニットに送り出し（ＯＵＴリフレッシュ）、その後、いわゆる周辺処理を行うと言うことをサイクリックに繰り返し処理するようになる。
【０００４】
ところで、ＰＬＣを構成するユニットの中には、インテリジェントな高機能な制御を行うための高機能ユニットもある。この高機能ユニットは、例えば、温度等のアナログ値を受け、ＰＩＤ制御を行う等の専用のプロセス制御（アナログ制御）のプログラムを実施する機能を持つプロセス制御ユニットや、モーション制御を行うモーションコントロールユニットなど、各種のものがある。このモーションコントロールユニットは複数のモータを駆動制御できるものであり、その用途は、複数のモータの駆動軸を３軸（いわゆるＸ軸、Ｙ軸、Ｚ軸）の方向（左右、前後、上下の３方向）とし、駆動系の対象物の位置決めを制御するような例がある。また、モーションコントロールユニットに同期コントローラと称されるものがあり、それは多軸の制御を行う際に各軸の動作を同期制御できる機能をもっている。
【０００５】
この種の同期コントローラにおいて、特許文献１に開示された発明のようにコントローラ内に数軸（２軸または４軸程度まで）のコントロール機能を搭載したり、特許文献２に開示された発明のようにネットワーク方式にて多軸（６軸以上）のコントロール機能を搭載してモーション制御を行う構造が一般的である。また、上記コントローラ内蔵タイプやネットワークタイプにてその同期手段として共有メモリと割込み信号を使用した方式や通信コマンドによる方式等がある。
【０００６】
【特許文献１】特開２００２-００１０００
【特許文献２】特開２００１-０７０６７８
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した従来の装置では、以下に示す問題があった。すなわち、  多軸コントロールを１つのメインＣＰＵにて処理する場合には、その制御性能はそのメインＣＰＵの処理能力に依存するところが大きく、性能を低下させることなく多軸制御を実現しようとすると、そのＣＰＵに求められる性能もどんどん増大し結果としてコントローラとしてかなり高価なものとなってしまう。少軸制御しか必要としない顧客にとっては、そのようなコントローラはオーバースペックとなるうえ、コスト高となり、デメリットが生じる。
【０００８】
構造的な面でも、１つのユニット筐体にコントロール機能を内蔵する方式は、多軸分のモーターコントロールＩ／Ｆを搭載しなければならず筐体が大きくなってしまい、大きな設置スペースが必要となり、デメリットが生じる。特に少軸制御しか必要としない顧客にとっては、筐体が大きくなることは、設置場所の制約となり、デメリットが生じることがある。
【０００９】
さらに、コントローラのメインＣＰＵが通信ネットワーク方式でモーション制御する場合には、その通信における情報伝達が１（メインＣＰＵ）：N（各モータ等）となり、ネットワーク環境によっては、各モータ間での情報伝達にタイムラグが生じることがあり、同期などモーション制御においては軸間動作のズレを生み出す要因となる。そして、軸数が多くなればなるほど通信サイクルも増大するため、このズレ幅も通信サイクルに比例して増大することになる。
【００１０】
通信ネットワーク方式では各制御軸に指令値を事前に送信し、起動指令を一斉にかけるようにすれば同期動作としての性能は出せるものの、制御軸数が増えるにつれてメインＣＰＵの処理負荷も増大し、通信サイクルも増大することになり、外部情報からのレスポンス動作に対して性能が低下するという問題を生じる。
【００１１】
この発明は、必要な軸数に応じてパフォーマンスの高いコントローラを構築でき、モジュール間での同期を簡単に取ることができ、しかも、コントロールモジュールにおける制御対象に対する制御のための演算処理への影響を可及的に抑制すると共に、各モジュールの負荷の軽減を図ることのできる同期コントローラを提供することを目的とする。
【課題を解決するための手段】
【００１２】
この発明による同期コントローラは、サイクルマスタモジュールと、少なくとも1台以上のコントロールモジュールを備え、サイクルマスタモジュールとコントロールモジュールとは、同期バスと、同期バスが扱うデータの量に比較して大量のデータを扱うイベントバスからなる２重バス構造で接合され、コントロールモジュールは、制御対象機器の動作を制御するユーザプログラムをサイクリックに演算実行する機能を有し、サイクルマスタモジュールは、制御対象機器以外の外部装置との間のデータの送受、並びに前記コントロールモジュールに対してイベントバスおよび同期バスを用いてデータの送受を行なう機能を有し、コントロールモジュールは、サイクルマスタモジュールから同期バスを介して送られる同期データを受信することを契機に、１サイクル分の演算実行を行なうようにした。
【００１３】
モーションコントローラなどの同期機能を有するコントローラにおいて、その構造をサイクルマスタモジュール、コントロールモジュールなどから構成されるモジュール構造とし、モジュール（サイクルマスタ、モーションコントロール）にはそれぞれユーザによるプログラミングとそのプログラム実行機能を搭載するようにした。これらモジュールが毎サイクル情報共有し、その情報共有エリアをユーザプログラムが利用できるようにすることで各モジュールが同期プログラム実行できる。常に共有される同期データは各モジュールのユーザプログラムから任意に参照でき、かつすべての共有同期データが参照できるようになると、複数の同期情報によりアプリケーションプログラムを作成することができる。
【００１４】
そして、ユーザがアプリケーション（特に２軸から４軸程度の少軸規模の同期・トルク・テンション制御アプリケーション）に応じてコントロールモジュールを付加して同期コントローラを構築することができるため省スペース、コストパフォーマンス高く使用することができる。
【００１５】
各モジュール間は同期バスと大量のデータを扱うイベントバスの２重構造としているためそれぞれの目的に応じたパフォーマンスのバス構造を使用することができる。これにより、扱うデータは小容量だが超高速で定時性が必要となる同期と、高速性や定時性は必要ないが取り扱うデータは大容量となるイベントの特性の異なる処理を共通のバス構造とするのではなく分離することで、利用するバス構造が高いパフォーマンスでなくても十分な同期性能を実現できる。
【００１６】
また、多軸構成となってもコントロールモジュールの数を適宜に設定することにより、各モジュール当たりのＣＰＵの処理負荷も増大することはないため、高速で安定した制御性能を発揮する。
【００１７】
さらにコントロールモジュールを複数設けた場合、各モジュールにユーザプログラムを作成することが可能であるため、アプリケーションからみた処理の負荷分散が可能となり、プログラム内容と配置を工夫することでより処理性能の高いコントローラを得ることができる。
【００１８】
なお、所定数のコントロールモジュールは、通常は複数個で用いられるが、所定数には１個も含む。すなわち、たとえコントロールモジュールが1つであっても、イベントその他の容量の大きなデータの送受や、外部との通信などの処理をサイクルマスタモジュールに実行させることにより、コントロールモジュールは、制御対象機器に対する制御のための演算処理等に注力できるので好ましい。
【００１９】
各モジュールの同期の基準となるサイクルマスタモジュールからの同期データの送信タイミングは、各種の設定をすることができる。一例として、接続された全てのコントロールモジュールからの同期データを受信したことを条件に、自己の同期データを出力するようにすることができる。別の方法としては、一定間隔で同期データを出力するように設定できる。これらの設定条件を複数実装し、適宜に切り替えて実施することもできる。
【００２０】
また、前記コントロールモジュールが複数設けられ、他のコントロールモジュールから前記同期バスを介して送られてきた同期データを受信するとともに、同期データ記憶エリアに格納し、その格納した同期データを演算実行の際に利用可能にするとよい。本コントローラでは多軸同期可能なようにモジュール間で常に情報を共有するための専用同期バスとイベント的に必要時に情報交換するイベント専用バスを用意し、各モジュールが同期して動作するためのタイミングを生成するサイクルマスタ機能を有するモジュールを用意している。これにより、分散構造となった場合のモジュール間をまたがった多軸同期制御の実現できる。
【００２１】
別の解決手段としては、制御対象機器を接続する所定数のコントロールモジュールと、その各コントロールモジュールとの間でデータ送受を行なうサイクルマスタモジュールとからなり、前記各コントローラモジュールと前記サイクルマスタモジュールが同期バスで接合された制御システムであって、前記サイクルマスタモジュールは、各コントロールモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理、その同期データに基づいてユーザプログラムを実行する状態別処理、をサイクリックに実行するものであり、前記各コントロールモジュールは、サイクルマスタモジュールおよび他のコントローラモジュールとの間で同期バスを介して同期データを送受してデータ共有する同期バスリフレッシュ処理、その同期データに基づいて接続制御対象機器の動作に対するユーザプログラムを実行する状態別処理、をサイクリックに実行するものであり、サイクルマスタモジュールの同期バスリフレッシュ処理によって各コントロールモジュールは同期され、サイクルマスタモジュールおよびコントロールモジュールの同期バスリフレッシュ処理によって、順次１つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有するように構成しても良い。
【００２２】
また、コントロールモジュールは、増減可能に構成されるとよい。同期コントローラをモジュール分割された構造とし、その分割されたモジュールに１軸ｏr２軸程度のコントロール機能とそのコントロール内容を実現するためのＣＰＵとそのコントロールに必要なユーザプログラムを実行するプログラミング機能を搭載することにより、ユーザにおいて必要な軸数に応じてパフォーマンスの高いコントローラを構築できるようにする。また、制御軸数に応じてモジュールを付加する構造のため最適なコストと大きさでコントローラを使用することができる。そして、監視対象の変化に応じて適宜コントロールモジュールを増減することにより、最適な状態を維持できる。
【００２３】
さらに、システム設定により各モジュールの同期バスを介して送受する同期データの情報種類を選択できる手段を備えるとよい。さらにまた、コントロールモジュールは、制御対象機器とデータを直接送受するためのインタフェース備えているようにするとよい。制御対象の外部機器からの情報入手手段等のインタフェースをコントロールモジュールに内蔵しているため、外部動作の変化に対して高速に反応することができ高いフィードバック制御性能を得ることができる。
【００２４】
同期バスを介して行なわれるモジュール間の通信は、順次１つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有する。そして、各モジュールが順番に送信元となって、全モジュールに送信元の順番がまわるようにしている。
【発明の効果】
【００２５】
この発明では、必要な軸数に応じてパフォーマンスの高いコントローラを構築でき、モジュール間での同期を簡単に取ることができ、しかも、コントロールモジュールにおける制御対象に対する制御のための演算処理への影響を可及的に抑制すると共に、各モジュールの負荷の軽減を図ることができる。
【発明を実施するための最良の形態】
【００２６】
図１は、本発明の同期コントローラを含むＦＡシステム全体を示している。同期コントローラ１０は、ＰＬＣ等の上位コントローラ１と接続されるとともに、上位コントローラ１に表示器２が接続された構成を取っている。同期コントローラ１０は、上位コントローラ１から命令を受けると、その命令を実行すべく所定の制御を行ない、その結果を上位コントローラ１に返すようになる。
【００２７】
同期コントローラ１０は、電源モジュール１１とサイクルマスタモジュール１２と、モーションコントロールモジュール１３と、エンドモジュール１４から構成される。１つのサイクルマスタモジュール１２に対し複数のモーションコントロールモジュール１３を装着可能としている。サイクルマスタモジュール１２とモーションコントロールモジュール１３は、共にユーザプログラムがインストールされ、それぞれがサイクリックに実行される。
【００２８】
本例では、サイクルマスタモジュール１２のシリアルポートＳＰ１にプログラミングツール３を接続し、サイクルマスタモジュール１２のユーザプログラムは、そのプログラミングツール３から直接サイクルマスタモジュール１２にアップロード・ダウンロードされ、モーションコントロールモジュール１３のユーザプログラムは、プログラミングツール３からサイクルマスタモジュール１２を経由してアップロード・ダウンロードがされる。また、サイクルマスタモジュール１２の別のシリアルポートＳＰ２には、上位コントローラ１のＣＰＵユニット１ａに接続される。
【００２９】
モーションコントロールモジュール１３は、サイクルマスタモジュール１２によって同期制御されるものであり、モーションコントロールモジュール１３のユーザプログラムの実行処理によって、サーボドライバ５に対して制御信号を出力する。そして、サーボドライバ５が制御対象のサーボモータ４を制御することによって、実際にモーション制御を行うものである。サイクルマスタモジュール１２は、上位コントローラ１から命令を受けて、サイクルマスタモジュール１２自身のユーザプログラムを演算実行する機能や、その演算実行の処理結果に基づいて各モーションコントロールモジュールを同期動作させるためのタイミングを生成する機能や、処理を終えたときにその結果を上位コントローラ１に通信する機能、さらにプログラミングツール３と通信を行う機能、自身あるいはモーションコントロールモジュール１３と外部の装置である上位コントローラ１または表示器２との間のデータの受け渡し（ゲートウェイ）をする機能などを備えている。なお、図ではモーションコントロールモジュール１３とサーボドライバ５とを別体としているが、モーションコントロールモジュール１３にサーボドライバ５を内蔵させた構成としてもよい。
【００３０】
つまり、従来と本実施例とを対比して説明すると、従来のＰＬＣに高機能ユニットの一つとして連結されたモーションコントロールユニットの場合、モーション制御を行う機能と、ＰＬＣを構成するＣＰＵユニットとの間の通信を行う機能が組み込まれていた。そしてモーションコントロールユニットにおいてユーザプログラム実行と周辺処理とをサイクリックに実行し、ユーザプログラムの実行時にモーション制御を行い、周辺処理実行時にＣＰＵユニットとの間の通信等を行うようにしていた。本実施の形態の場合、従来のモーションコントロールユニットが持つモーション制御機能と周辺処理機能とを別々のユニットで分けて処理するようにし、サイクルマスタモジュール１２がＰＬＣのＣＰＵユニットとの間の通信を行い、サイクルマスタモジュールにバスを経由してつながれたモーションコントロールモジュール１３がモーション制御に関する処理を実行するようにした。これにより、高速かつ高精度な制御を行えるようになる。
【００３１】
さらに、モーションコントロールモジュール１３は複数連結可能、着脱可能となっているので、用途に合わせてモーションコントロールモジュール１３の台数を増減することができ、アプリケーションにあわせたコントローラ構造が構築でき、必要十分で適切なスペース・コストとなり好ましい。コントローラとして、それぞれのモジュールが成すべき処理を分散させて各モジュールにユーザプログラムを持たせることが可能であるため、複数モジュール構成となっても処理能力を低下させることなく実行させることも可能である。
【００３２】
さらに、モーションコントロールモジュール１３を複数連結した場合、後述する同期バスの活用により別のモーションコントロールモジュール１３が持つＩ／Ｏの情報を高速で入手するとともに自モジュールの処理に使用することも可能である。よって、例えば、パルス入出力機能を有するモーションコントロールモジュール１３がアナログ入出力機能を有する他のモーションコントロールモジュールからアナログ入力情報を同期バスを介して入手し、如何にも自モジュールが内蔵するＩ／Ｏかのように使用して自モジュールのパルス出力制御などに使用することが可能である。これにより、より複雑な制御も高速かつ高精度に行うことができる。
【００３３】
次に、上述した処理機能を実現するための具体的なモジュールの構成を説明する。図２は、ハードウェア構成を示しており、図３はソフトウエアに着目したコントローラの内部イメージを示している。
【００３４】
この実施の形態では、サイクルマスタモジュール１２，モーションコントロールモジュール１３が、共にＭＰＵ１２ａ，１３ａと、ＲＯＭ１２ｂ，１３ｂと、ＲＡＭ１２ｃ，１３ｃを有し、各モジュール１２，１３のシステムソフトはＭＰＵ１２ａ，１３ａまたはＲＯＭ１２ｂ，１３ｂに格納される。また、このＲＯＭ１２ｂ，１３ｂは、たとえばフラッシュＲＯＭを用いることができ、ユーザにて作成されるユーザプログラムもこのＲＯＭ１２ｂ，１３ｂにバックアップ格納される。
【００３５】
図３参照に示すように、ＲＡＭ１２ｃ，１３ｃ内の記憶領域は、ユーザプログラムエリア，変数エリア，ワークエリアが設定されており、ユーザプログラム実行時は電源ＯＮ時にＲＯＭ１２ｂ，１３ｂからＲＡＭ１２ｃ，１３ｃに展開されてそれを実行する。
【００３６】
また、変数エリア（変数メモリ）はユーザプログラムにて使用するためのエリアであり、各モジュール１２，１３が持つＩ／Ｏのデータや、モジュール間で交換する情報の格納エリアとして使用される。ワークエリアは各モジュール１２，１３のシステムソフトがシステム実行のために使用するエリアである。
【００３７】
これらのＭＰＵ１２ａ，１３ａ，ＲＯＭ１２ｂ，１３ｂ，ＲＡＭ１２ｃ，１３ｃの機能は、ＰＬＣを構成するＣＰＵユニットや、モーションコントロールニットなどに実装されるものと基本的に同様である。
【００３８】
さらにモーションコントロールモジュール１３は、サーボモータなどの制御対象を含むＩ／Ｏ機器（外部装置）を制御するためのパルス入出力やアナログ入出力回路１３ｈを有し、それら各入出力回路１３ｈは、特殊Ｉ／Ｏポート１３ｉを介して外部のＩ／Ｏ機器と接続されるようになっている。ここに接続されるＩ／Ｏ機器としては、図１に示すサーボモータ４を制御するサーボドライバ５がある。そして、外部のＩ／Ｏ機器（入力機器）から取得した入力信号は、ＭＰＵ１３ａに与えられ（パルス入力回路はＡＳＩＣ１３ｇを介して）、ＭＰＵ１３ａから外部のＩＯ機器（出力機器）へ対して送るデータは、アナログ出力回路，パルス出力回路１３ｈを介して行われる。
【００３９】
また、モーションコントロールモジュール１３には、装置構成の共通化を図る上でパルスの入出力回路とアナログの入出回路１３ｈの両方を設けたが、実際の運用に際しては、それら全てを用いてもよいし、パルスとアナログのうちの一方のみとしたり、入力回路のみあるいは出力回路のみを実際に稼働するようにしてもよい。このようにどの種類を有効にするかは、システム設定（図３参照）により設定されている。また、モーションコントロールモジュール１３の外部Ｉ／Ｆとしてこれらパルス・アナログ入出力回路だけではなく通信Ｉ／Ｆを設けてもよい。
【００４０】
さらに、サイクルマスタモジュール１２，モーションコントロールモジュール１３は、外部Ｉ／ＦとしてＩ／Ｏポート１２ｊ，１３ｊを有し、そのＩ／Ｏポート１２ｊ，１３ｊに接続された機器とＭＰＵ１２ａ，１３ａとの間でデータの送受が可能となる。つまり、モーションコントロールモジュール１３では、直接モータ制御するための汎用的なＩ／Ｏ機能部（パルスまたはアナログなど）と、直接外部機器（ＯＮ／ＯＦＦセンサ、アナログセンサ、エンコーダなど）から情報を入手するＩ／Ｏ機能部を有する。
【００４１】
各モジュールは、上述した各外部Ｉ／Ｆ（Ｉ／Ｏポート１２ｊ，１３ｊ，特殊Ｉ／Ｏポート１３ｉなど）から取得した入力データに基づき、ユーザプログラムを演算実行し、得られた演算結果を所定の外部Ｉ／Ｆを介して出力することにより制御することをサイクリックに繰り返す（１サイクル分の処理については図６、図７にて後述する）。このように、モータ制御には、汎用インタフェースを利用することができるため、市販のモータから適切なものを選択できる。また、通信ネットワークに比べ、モータ制御手段がパルスやアナログとなるため指令が連続的なものとなり滑らかな制御を実現することが可能となる。
【００４２】
また、各モジュールでのモーターコントロールにおいて、数軸（１ｏｒ２単位）で専用のＣＰＵを持たせ直接外部からの情報入力、モータへのパルスまたはアナログにて指令を出力できる構造となる。よって、使用されるモータについてはパルスまたはアナログＩ／Ｆ方式となり汎用品から広く選択できる他、直接外部機器からの情報を取り込めるため通信方式などのようにタイムラグもなくクイックな応答性能を実現することができる。
【００４３】
さらに、各モジュール間は、イベントバスと同期バスで繋がっており、エンドモジュール１４には、それら各バスを終端するバス接続終端機能１４ａを有する。そして、モーションコントロールモジュール１３には、イベントバスに接続される共有メモリ１３ｆを有し、サイクルマスタモジュール１２にはイベントバスに接続されるイベント送受用ＡＳＩＣ１２ｄが備えられている。このイベント送受用ＡＳＩＣ１２ｄはサイクルマスタモジュールがモーションコントロールモジュール１３内の共有メモリ１３ｆへアクセスする際にそのデータ送受を補間する機能を有し、サイクルマスタモジュールはこのイベント送受用ＡＳＩＣ１２ｄを使用してゲートウェイとしての機能を成す。例えば上位コントローラ１やプログラミングツール３などからモーションコントロールモジュール１３宛にイベント，プログラム等が送られてきた場合に、対応するモーションコントロールモジュール１３（モジュール番号などにより特定）の共有メモリ１３ｆに係るイベント等を格納する。また、モーションコントロールモジュール１３は、共有メモリ１３ｆに格納されたデータを読み出してイベントに対するレスポンスとして外部の上位コントローラ１などへ返送する処理などを実行する。
【００４４】
このイベントバスを介して伝送されるデータは、一般に容量が大きく伝送に時間がかかるため、従来のモーションコントロールユニットのようにサイクリックに行なわれる周辺サービスの時に行なうと、時間がかかり本来のモーション制御に支障を来すおそれがあるが、本実施の形態では、モーション制御を行なわないサイクルマスタモジュール１２が係るデータ転送を実行するためモーション制御に支障を生じない。さらに、同期制御を行なうための同期バスと別にイベントバスを設けたため、共有メモリ１３ｆへのアクセスと平行して同期バスを介して同期制御のためのデータの送受が行なえるので、同期制御への支障も生じない。
【００４５】
同期バスに接続される同期用ＡＳＩＣ１２ｅ，１３ｅが各モジュール１２，１３内にそれぞれ実装され、同期用ＡＳＩＣ１２ｅ，１３ｅにＭＰＵ１２ａ，１３ａが接続される。この同期用ＡＳＩＣ１２ｅ，１３ｅは、データリング方式により同期バスに接続された他の全てのモジュール内の同期用ＡＳＩＣ１２ｅ，１３ｅに対して一斉同報でデータを送信でき、内部に送受信データを一次記憶するためのバッファエリアを持っている。つまり、同期用ＡＳＩＣから同期バスにデータを出力することにより、他のモジュールの同期用ＡＳＩＣ１２ｅ，１３ｅは、送られてきたデータを内部のバッファエリアに取り込むことができる。より具体的には、順次１つのモジュールが送信元となって他モジュールへ同期データを一斉同報することによりすべてのモジュールが共通データを共有するものである。このように本発明の要部の１つとなる同期バスを介してデータを送受することにより同期をとる仕組みの詳細については、後述する。
【００４６】
このように、各モジュール間が同期バスとイベントバスの２つのバスでつながっており、それぞれのバスを介してモジュール間のデータを交換しながら、それぞれのモジュールが内蔵するユーザプログラムを実行する。つまり、各モジュールで毎サイクル共有したい情報（データ）は小容量だが高速でデータ交換可能な同期バスを使用し、毎サイクル共有する必要のない大容量のデータはイベントバスを使用する。
【００４７】
この情報の用途目的に合わせた２重のモジュール間バス構造により、時折発生するモジュール間の大容量のデータ交換（イベント）が発生しても毎サイクル共有しなければならない情報はこの影響を受けることなく共有化される。
【００４８】
これにより各モジュールは、自モジュールに内蔵されたＩ／Ｏからの情報のみならず、システムにて実施される同期バス，イベントバスによるデータ交換の情報も利用することができ、ユーザプログラムがそれらの情報を任意に使用して演算ができるようになっている。もちろん、このユーザプログラムの実行に伴い求められた演算結果は、自モジュールのＩ／Ｏから出力されたり、同期バス，イベントバスによるデータ交換の情報として出力されたりする。
【００４９】
図４は、同期バスを利用した同期データの共有について説明する図である。ここでは、モーションコントロールモジュール１３が３個連結されており、モジュール番号がそれぞれ＃１，＃２，＃３が設定されている。また、サイクルマスタモジュール１２のモジュール番号は＃０とする。
【００５０】
同期用ＡＳＩＣ１２ｅ、１３ｅを用いたデータリンク方式によって同期バスにて各モジュール間で共有されたデータは、自モジュール分も他モジュール分も含めてＲＡＭ１２ｃ，１３ｃの変数メモリ内のモジュール間同期データ記憶エリア（図３参照）に転送され、格納される。このモジュール間同期データ記憶エリアは、図４に示すように各モジュール毎に割付けられており、毎サイクルにおいてすべてのモジュールの情報が共有され、各モジュールでは自モジュール内のモジュール間同期データ記憶エリアを参照することにより、すべてのモジュールの同期データを参照することができる。
【００５１】
つまり、サイクルマスタモジュール１２では、自モジュールが管理するデータは、＃０の記憶エリアに格納するとともに、所定のタイミングで＃０に格納されたデータを他のモーションコントロールモジュール１３に送る。これにより、他の全てのモーションコントロールモジュール１３は、送られてきたデータを受信するとともに、自己の変数メモリ内のモジュール間同期データ記憶エリアの＃０に割り当てられた記憶エリアに格納する。実際には、同期用ＡＳＩＣ内のバッファエリアに一次記憶したデータを、所定のタイミングでモジュール間同期データ記憶エリア１３ｅへ移す同期バスリフレッシュにより実現する。また、各モーションコントロールモジュール１３（たとえば「＃１」）も、自身が管理するデータ＃１を送信すると、他のモーションコントロールモジュール１３（たとえば「＃２」，「＃３」）やサイクルマスタモジュール１２がその＃１のデータを受信するとともに該当するモジュール間同期データ記憶エリア中の＃１に割り当てられた記憶エリアに格納する。
【００５２】
この同期データの共有は、各サイクルごとに行う。そして、各モジュールが送るデータは、他のモジュールでもユーザプログラムの実行の際に参照するデータとする。これにより、１サイクル実行する都度各モジュールのモジュール間同期データ記憶エリアに格納された同期データは、最新のものに更新されているため、その最新のデータに基づいて演算実行することにより、精密で、そのときの状態にあった制御が行える。
【００５３】
この同期バスを介して送受する同期データの種類は、図５に示すように、各モジュールが持つ情報を任意に選択して同期データとして各モジュール間で共有することができるようにしている。例えば、同期データとして共有できるのは自モジュール内のユーザプログラム実行にて生成される演算結果はもちろんであるが、それに限ることはなく自モジュールが持つＩ／Ｏの最新値を同期データとすることができる。さらに、自モジュールが持つＩ／Ｏ情報を同期データとする場合には、自モジュールに設定されるシステム設定にて登録することができ、登録された情報が同期データとしてシステムにて自動で転送され交換される。なお、この図５における同期データエリア（＋０，＋１，……+ｎ）が、図４における１つの記憶エリア（たとえば「＃１」についての記憶エリア）に対応し、各エリアにおいてｎの値は任意にとれる。つまり、各記憶エリアのデータ容量は異なることを許容している。
【００５４】
そして、本実施の形態では、各モジュール間の同期データの共有は、同期データ送受信と同期バスリフレッシュの２つの処理からなる。同期データ送受信は、各モーションコントールモジュール１３が自モジュールの同期データを順次に同期バスへ一斉同報で送信し、他のモジュール（各モーションコントールモジュール１３およびサイクルマスタモジュール１２）が送信されてきたデータを受信する一連のデータ送受信に対応する。また、同期データ送受信は、サイクルマスタモジュール１２が自モジュールの同期データを同期バスへ一斉同報で送信し、各モーションコントールモジュール１３が送信されてきたデータを受信するデータ送受信にも対応する。サイクルマスタモジュール１２の同期データ送受信は、全てのモーションコントロールモジュール１３の一連の同期データの送受信が完了した後、サイクルマスタモジュール１２がそれを認識したことによって実行される。
【００５５】
同期バスリフレッシュは、各モジュールがそれぞれ同期用ＡＳＩＣ１２ｅまたは１３ｅのバッファエリアから、変数メモリ１２ｃまたは１３ｃ内のモジュール間同期データ記憶エリア中の割り当てられた記憶エリアにすべての同期データを転送し格納することに対応する。この同期バスリフレッシュは、サイクルマスタモジュールの管理によって、全てのモーションコントロールモジュール１３による一連の同期データの送受信とサイクルマスタモジュール１２の同期データを送受信とが完了したことに基づいて行う。
【００５６】
この同期バスリフレッシュを実現するやりかたは複数ある。一例として、各モーションコントールモジュール１３が、サイクルマスタモジュール１２から一斉同報で送信されてきた同期データを受信したことに連動して、同期用ＡＳＩＣ１３ｅのバッファエリアからモジュール間同期データ記憶エリアにすべての同期データを転送し格納するように動作するようにしてもよい。別の例としては、サイクルマスタモジュール１２が同期データを同期バスへ一斉同報で送信した後、さらに同期バスを介して各モーションコントロールモジュール１３に対して同期データリフレッシュ処理のトリガ信号を一斉同報で送信するようにしてもよい。この別例においては、各モーションコントロールモジュール１３は、サイクルマスタモジュール１２から一斉同報で送信されてきた同期データを受信したことに連動して同期バスリフレッシュ処理をするのではなく、サイクルマスタモジュール１２からの同期バスリフレッシュ処理トリガ信号を契機にして同期バスリフレッシュ処理をすることとなる。
【００５７】
各モーションコントロールモジュール１３の処理の同期について説明する。  各モーションコントロールモジュール１３は、他の各モーションコントロールモジュール１３からの同期データを受信した後、最後にサイクルマスタモジュール１２から同期データを受信するので、サイクルマスタモジュール１２からの同期データ受信により、そのサイクルでの同期データの送受信は完了したと判断できる。よって各モーションコントロールモジュール１３はサイクルマスタモジュールからの同期データ受信を契機として、同期バスリフレッシュを行い、自モジュールのユーザプログラムの演算処理を行う。つまり、各モーションコントロールモジュール１３は、サイクルマスタモジュール１２からの同期データを受信することを契機として図６に示す１サイクル分の処理、つまり状態別処理と周辺サービス処理を行う。こうすることで各モーションコントロールモジュール１３同士が同期を取って演算処理を実行することができる。
【００５８】
なお、「同期データ受信を契機として」の意味には、前述の同期データリフレッシュ処理の別例のように、サイクルマスタモジュール１２からの同期バスリフレッシュ処理トリガ信号を契機にする場合を含む。この場合、各モーションコントロールモジュール１３は、サイクルマスタモジュール１２からの同期バスリフレッシュ処理トリガ信号を契機に図６に示す１サイクル分の処理を行うようになる。
【００５９】
そして、サイクルマスタモジュール１２における動作内容は図７に示すフローチャートのようになっている。初めに、電源ＯＮに伴う初期化処理（Ｓ２１）を実行後、まず共通処理を行なう（Ｓ２２）。この共通処理で、サイクルマスタモジュール１２は、同期データ受信管理、同期データ送信および同期バスリフレッシュを行う。サイクルマスタの同期データ送受信の処理は、全てのモーションコントロールモジュール１３の一連の同期データの送受信が完了したかどうかを管理していて、その完了後に、自モジュールの同期データを同期バスへ一斉同報で送信する処理である。同期バスリフレッシュ処理は、すべてのモーションコントロールモジュールから受信した同期データをＡＳＩＣ１２ｅのバッファエリアからモジュール間同期データ記憶エリアへ転送し格納する処理である。なお、前述の同期バスリフレッシュ処理の別例のように、サイクルマスタモジュール１２から同期バスリフレッシュ処理トリガ信号を出力する場合は、そのトリガ信号出力処理を含む。
【００６０】
また、サイクルマスタモジュール１２がこの共通処理を別途定時割り込み処理で実行することができるが詳細は後述する。
【００６１】
同期バスリフレッシュを終了すると、次いで、状態別処理（Ｓ２３）として、ユーザプログラムを演算処理し、サイクルタイムを算出後、自身のＩ／Ｏリフレッシュを行なう。このＩ／Ｏリフレッシュ処理は、演算処理の結果を次のサイクルの同期データとして、変数メモリ１２ｃのモジュール間同期データの所定エリアに格納する処理を含む。
【００６２】
そして、周辺サービス処理を実行する（Ｓ２４）。サイクルマスタモジュール１２においては、イベントバスを介して行なうモーションコントロールモジュール１３との間のイベント等の送受に加え、外部の装置（上位コントローラ１やプログラミングツール３）との間の通信を行なう。このように、サイクルマスタモジュール１２は、イベントバスサービスにより高速交換を要求されないデータの交換や接続される周辺機器のサービス要求により必要によりイベントバスサービスにてモーションコントロールモジュール１３へのイベントを発行する。このように、共通処理Ｓ２２，状態別処理Ｓ２３，周辺処理Ｓ２４をサイクリックに繰り返し実行する。
【００６３】
モーションコントロールモジュール１３のＭＰＵ１３ａにおける動作内容は図６に示すフローチャートのようになっている。電源ＯＮに伴う初期化処理（Ｓ１１）を実行後、まず共通処理を行なう（Ｓ１２）。共通処理では、自身の同期データを同期バスへ一斉同報で送信する処理と、待機処理と、同期バスリフレッシュとを行う。待機処理については、図８中の待機の箇所で後述する。そして、待機処理を経て、同期用ＡＳＩＣ１３ｅがサイクルマスタモジュール１２から同期データを受信し、これを契機に同期バスリフレッシュを実行する。この同期バスリフレッシュは、ＭＰＵ１３ａが同期バスを介してサイクルマスタモジュール１２から送信されてきた同期データをＡＳＩＣ１３ｅが受信することを契機に、ＡＳＩＣが受信した他の各モーションコントロールモジュール１３からの同期データおよびサイクルマスタモジュール１２からの同期データをモジュール間同期データ記憶エリア１３ｅに転送し格納する。すべてのモーションコントロールモジュール１３が同じ処理をすることにより、サイクルマスタモジュール１２からの同期データ受信を契機にタイミングを合わせることができ、同期を取って状態別処理（Ｓ２３）に移行することになる。この契機については、前述の同期バスリフレッシュ処理の別例のように、サイクルマスタモジュール１２から同期バスリフレッシュ処理トリガ信号を受信することを契機にすることもできる。
【００６４】
同期バスリフレッシュを終了すると、次いで、状態別処理（Ｓ２３）として、ユーザプログラムを演算処理し、サイクルタイムを算出後、自身のＩ／Ｏリフレッシュを行なう。このＩ／Ｏリフレッシュ処理は、演算処理の結果を次のサイクルの同期データとして、変数メモリ１３ｃのモジュール間同期データの所定エリアに格納する処理を含む。
【００６５】
周辺サービス処理は、モーションコントロールモジュールの場合には、イベントバスを介して行なわれるイベント等のデータの送受であるが、頻繁に行なわれることはないので、通常はすぐにＳ１２に戻り、共通処理を行なう。
【００６６】
このように、各モジュールの演算処理の前に図６のように同期バスリフレッシュが行なわれるため、その前のサイクルで求められた最新のデータを各モジュールが共有することができる。そして、サイクルマスタモジュール１２からの同期データ受信にタイミングを合わせて同期バスリフレッシュを実行し、演算処理を開始するので、モジュール間で同期がとれる。
【００６７】
すなわち、上記のサイクルマスタモジュール１２の１サイクル処理に同期して実施される方式では、図８に示すようなタイミングチャートとなる。図８において、ＣＭはサイクルマスタモジュールを意味し、ＭＭ＃１，ＭＭ＃２はモーションコントロールモジュール１３を意味する。またＢＣは同期データ送信、ＲＦは同期バスリフレッシュを意味する。図６で示すモーションコントロールモジュールの共通処理は図８で示すＭＭ＃１とＭＭ＃２のＢＣ（同期データ送信）、待機およびＲＦ（同期バスリフレッシュ）に対応する。図７で示すサイクルマスタモジュールの共通処理は図８で示すＣＭのＢＣ（同期データ送信）およびＲＦ（同期バスリフレッシュ）に対応する。図７の同期データ受信管理は図８では省略している。また、図６、図７で示す状態別処理（Ｓ１３、Ｓ２３）および周辺サービス処理（Ｓ１４、Ｓ２４）を実行する一連の処理は図８で示す各モジュールのサイクル処理に対応する。図６、図７、図８には図示しないが、各モジュールがサイクル処理あるいは待機処理を実行中に他のモジュールから送信された同期データは各モジュールの同期用ＡＳＩＣ内のバッファエリアに自動的に取り込まれる。図８の例では、同期コントローラの電源をＯＮすると、モーションコントロールモジュールＭＭ２は電源ＯＮ初期処理後、同期データを送信する(ＭＭ＃２のＢＣ)。このモーションコントロールモジュールＭＭ＃２の同期データ送信は、図４の「＃２」に対応する。つまりモーションコントロールモジュールＭＭ＃２の同期用ＡＳＩＣ内のバッファエリアから送信された同期データがサイクルマスタモジュールＣＭのＡＳＩＣ１２ｅ内のバッファエリアとモーションコントロールモジュールＭＭ＃１他のＡＳＩＣ１３ｅ内のバッファエリアに受信される。そして、モーションコントロールモジュールＭＭ＃２は、サイクルマスタモジュールＣＭの同期データ送信が完了するまで待機処理を行う。モーションコントロールモジュールＭＭ１も電源ＯＮ初期処理後、同期データを送信する(ＭＭ＃１のＢＣ)。この同期データ送信は、図４の「＃１」に対応する。その後モーションコントロールモジュールＭＭ＃１は、サイクルマスタモジュールＣＭの同期データ送信が完了するまで待機処理を行う。サイクルマスタモジュールＣＭはすべてのモーションコントロールモジュールが同期データを送受信したことを確認したのち、自身の同期データを送信する（ＣＭのＢＣ）。この同期データ送信は、図４の「＃０」に対応する。これですべてのモジュール間で同期データ送受信を完了したこととなるので、これを契機にして、各モジュールは同期バスリフレッシュを行う。つまりＡＳＩＣ１２ｅ，１３ｅのバッファエリアからモジュール間同期データエリアに同期データを転送し格納する。次にサイクルマスタモジュールＣＭ自らが１スキャンの処理を開始するとともに、モーションコントロールモジュールＭＭ＃１，ＭＭ＃２も同期して１スキャンの処理を開始する。以降同じ処理を繰り返し、ｔ２、ｔ３のように同じタイミングで各モジュールの状態別処理は同期して実行される。また、サイクルマスタモジュールが同期データを同期バスへ一斉同報で送信した後、さらに同期バスを介して各モーションコントロー��モジュールに対して同期バスリフレッシュ処理のトリガ信号を一斉同報で送信する別例では、各モーションコントロールモジュール１３は、サイクルマスタモジュール１２から一斉同報で送信されてきた同期データを受信したことに連動して同期バスリフレッシュ処理をするのではなく、サイクルマスタモジュール１２からの同期バスリフレッシュ処理トリガ信号を契機にして同期バスリフレッシュ処理をすることとなる。いずれにしても、サイクルマスタモジュールのサイクル処理と共通処理を合わせた１周期時間（Ｔｃｍ）と、各モーションコントロールモジュールのサイクル処理と共通処理を合わせた１周期時間（Ｔｍｍ）は等しくなる。
【００６８】
また、処理負荷量によりサイクルマスタモジュールのサイクル処理時間が大きくなるような場合には、サイクルマスタモジュールの同期データ送信を共通処理から切り離し、任意に設定可能な定時時間割り込み処理にて実行させることもできる。これにより、モーションコントロールモジュール間ではサイクルマスタモジュールのサイクル処理時間に引きずられること無く高速に一定時間間隔で同期バスリフレッシュを実施し、情報の共有を行うとともに同期を取ることができる。すなわち図９の例のように、サイクルマスタモジュールの１サイクルのサイクル処理時間が長い場合、サイクルマスタモジュールの同期データ送信を契機にモーションコントロールモジュールが１サイクル処理を開始する方式では各モーションコントロールモジュールの待機時間が長くなり好ましくない。そこで、図７のサイクルマスタモジュールの処理フローの共通処理（Ｓ２２）なかで、同期データ受信管理を省略し、同期データ送信と同期バスリフレッシュ処理をサイクル処理とは非同期で動作するタイマの定時時間割込みに基づいて実行させることにより、これを契機に各モーションコントロールモジュール１３が次のサイクル処理を開始するようにする。これにより、モーションコントロールモジュール１３の待機時間が不用意に長くなるのを抑止する。
【００６９】
この結果、たとえサイクルマスタモジュール１２における周辺サービスに要する時間が長くなりサイクルタイムが長くなっても、モーションコントロールモジュール１３におけるサイクルタイムを最小化し，一定サイクルの安定性を確保できる。つまり、サイクルマスタモジュールの１周期時間（Ｔｃｍ）に比較して、各モーションコントロールモジュールの１周期時間
（Ｔｍｍ）を短くすることができる。
【００７０】
そして、上記の２つの方式のうち、いずれの方式を採るかは、サイクルマスタモジュール１２のシステム設定によりその手段が決定される。また、各モジュールで同期データが不要な場合には同期バスリフレッシュを停止し、それぞれ非同期にてイベントバスのみでデータ交換し単独で処理を行う設定とすることも可能である。
【図面の簡単な説明】
【００７１】
【図１】本発明の好適な一実施の形態を示す全体システム図である。
【図２】本発明の同期コントローラの内部構造（ハードウェア構成）を示すブロック図である。
【図３】本発明の同期コントローラの内部構造（ソフトウェア構成）を示すブロック図である。
【図４】同期バスを利用した同期制御について説明する図である。
【図５】同期データの種類を説明する図である。
【図６】モーションコントロールモジュールの処理機能を説明するフローチャートである。
【図７】サイクルマスタモジュールの処理機能を説明するフローチャートである。
【図８】同期処理と、各モジュールの１スキャン（サイクルタイム）の関係を示すタイムチャートである。
【図９】同期処理と、各モジュールの１スキャン（サイクルタイム）の関係を示すタイムチャートである。
【符号の説明】
【００７２】
１  上位コントローラ
２  表示器
３  プログラミングツール
４  サーボドライバ
５  サーボモータ
１０  同期コントローラ
１１  電源モジュール
１２  サイクルマスタモジュール
１３  モーションコントロールモジュール
１４  エンドモジュール
【図１】
2005293569.tif 000003
【図２】
2005293569.tif 000004
【図３】
2005293569.tif 000005
【図４】
2005293569.tif 000006
【図５】
2005293569.tif 000007
【図６】
2005293569.tif 000008
【図７】
2005293569.tif 000009
【図８】
2005293569.tif 000010
【図９】
2005293569.tif 000011