(57)【要約】【課題】プログラマブルコントローラにおいて、シーケンスプログラムを変更することなく、実時間レベルでのシミュレーションを可能とする。【解決手段】ＣＰＵが、シーケンスプログラムに従った処理演算及び負荷装置の擬似回路がサブルーチンとして追加されたシミュレーション用シーケンスプログラムに従ったシミュレーション処理演算を行う制御部と、該シーケンスプログラム及び該シミュレーション用シーケンスプログラムを格納するメモリと、該制御部が行った処理演算の結果を格納するメモリとを備え、該制御部が、シーケンスプログラムの動作検証を行うとき、シミュレーション用シーケンスプログラムに従ったシミュレーション処理演算と、該処理演算の結果の評価を行う構成とする。【選択図】図１
2010108075.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラムによりＣＰＵに負荷装置の制御を行わせるプログラマブルコントローラであって、
上記ＣＰＵが、
上記シーケンスプログラムに従う処理演算及び上記負荷装置の擬似回路がサブルーチンとして追加されたシミュレーション用シーケンスプログラムに従うシミュレーション処理演算を行う制御部と、
上記シーケンスプログラム及び上記シミュレーション用シーケンスプログラムを格納するメモリと、
上記制御部が行った処理演算の結果を格納するメモリと、
を備え、
上記制御部は、上記シーケンスプログラムの動作検証を行うとき、上記シミュレーション用シーケンスプログラムに従ったシミュレーション処理演算と、該シミュレーション処理演算結果の評価とを行うことを特徴とするプログラマブルコントローラ。
【請求項２】
シーケンスプログラムによりＣＰＵに負荷装置の制御を行わせるプログラマブルコントローラであって、
上記ＣＰＵが、
上記シーケンスプログラムに従った処理演算及び上記負荷装置の擬似回路がサブルーチンとして追加されたシミュレーション用シーケンスプログラムに従ったシミュレーション処理演算を行う制御部と、
上記制御部の制御内容及び制御動作手順を格納した第１のメモリと、
上記シーケンスプログラム及び上記シミュレーション用シーケンスプログラムを格納する第２のメモリと、
上記制御部が行った上記処理演算の結果を格納する第３のメモリと、
上記制御部の指示に従い、上記負荷装置側からの情報または上記擬似回路からの情報を外部入力として取込むとともに、上記処理演算の結果を上記負荷装置側や上記擬似回路に出力するインタフェースと、
を備え、
上記制御部は、上記シーケンスプログラムの動作検証を行うとき、上記シミュレーション用シーケンスプログラムの上記第２のメモリからの選択的読出しと、該シミュレーション用シーケンスプログラムに従ったシミュレーション処理演算と、該シミュレーション処理演算の結果の上記第３のメモリからの読出しと、該読出した該シミュレーション処理演算結果の評価とを行うことを特徴とするプログラマブルコントローラ。
【請求項３】
上記シーケンスプログラム及び上記シミュレーション用シーケンスプログラムは、ラダープログラムである請求項１または請求項２に記載のプログラマブルコントローラ。
【請求項４】
上記擬似回路は、上記シーケンスプログラムを変更することなく外部入力のＯＮ/ＯＦＦタイミングを作成する構成である請求項１から請求項３のいずれかに記載のプログラマブルコントローラ。
【請求項５】
上記制御部は、上記シミュレーション用シーケンスプログラムを判定フラグにより識別する構成である請求項１から請求項３のいずれかに記載のプログラマブルコントローラ。
【請求項６】
プログラマブルコントローラのＣＰＵに負荷装置の制御を行わせるシーケンスプログラムの動作検証を行うシーケンスプログラム動作検証方法であって、
上記ＣＰＵが、上記負荷装置の擬似回路がサブルーチンとして追加されたシミュレーション用シーケンスプログラムを外部から取込み、上記シーケンスプログラムとともに上記ＣＰＵ内のシーケンスプログラムメモリに格納するステップと、
上記ＣＰＵが、上記擬似回路から情報を外部入力として取込むステップと、
上記ＣＰＵが、上記シミュレーション用シーケンスプログラムに、上記擬似回路から取込んだ情報に基づくシミュレーション処理演算を行わせるステップと、
上記ＣＰＵが、上記シミュレーション用シーケンスプログラムによるシミュレーション処理演算の結果を上記ＣＰＵ内の内部データメモリに格納するステップと、
上記ＣＰＵが、上記格納された演算結果を上記内部データメモリから読み出して評価するステップと、
を備えたことを特徴とするシーケンスプログラム動作検証方法。
【請求項７】
上記シーケンスプログラム及び上記シミュレーション用シーケンスプログラムはラダープログラムである請求項６に記載のシーケンスプログラム動作検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ（ＰＬＣ）に係り、特に、それに用いるシーケンスプログラムの動作を検証するための技術に関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラ（ＰＬＣ）（以下、プログラマブルコントローラという）は、工場などに設置されている多様な機械設備やプラント設備などを制御するための汎用制御装置として広く普及している。プログラマブルコントローラには、負荷装置としての機械設備の稼動状態をセンサやスイッチなどの機器を介して検知し、該検知結果を、デジタル信号によるＯＮ／ＯＦＦ情報として取込んだり、プラント設備の圧力情報や温度情報などをアナログ信号として取込んだりするための信号入力部がある。プログラマブルコントローラには、取込まれたデジタル信号としてのＯＮ／ＯＦＦ情報や、アナログ信号としてのアナログ量情報などに応じて、必要な数値演算や論理演算を実行するためのシーケンスプログラムと呼ばれるプログラムが予め登録されている。該シーケンスプログラムは、プログラマブルコントローラ内において逐次、処理演算され、該演算結果は、信号出力部からデジタル信号やアナログ信号として出力され、該信号出力部に接続されている機械設備の動力源やプラント設備のバルブなどに伝達され、設備全体の制御が行われるようになっている。このシーケンスプログラムはユーザによって作成され、作成後はプログラム動作の検証が行われ、バグ（ＢＵＧ）がある場合には、これを取り除くためにデバグ（以下、ＤＥＢＵＧという）を行い、誤動作による機器の暴走を未然に防ぐようにしている。
【０００３】
本発明に関連した従来技術であって、特許文献に記載された技術としては、例えば、特開平４−２１５１０５号公報（特許文献１）、特開平９−３３０２５０号公報（特許文献２）及び特開２００２−７３１１５号公報（特許文献３）に記載されたものがある。特開平４−２１５１０５号公報には、センサ信号生成プログラムを用いて生成した模擬入力により、プログラマブルコントローラのシーケンスプログラムのシミュレーションを行うとした技術が記載され、特開平９−３３０２５０号公報には、プログラマブルコントローラにおいて、被制御系の動作を擬似した擬似プログラムを用いて制御シミュレーションを行うとした技術が記載され、特開２００２−７３１１５号公報には、プログラマブルコントローラにおいて、ラダープログラムをシミュレートし、プログラマブルコントローラ内と同じデータテーブルを擬似データテーブルとして作成し、ラダー作成ツールやパソコンのアプリケーションによってインターフェースを介して該擬似データテーブルにアクセスし、データ、入出力及びシミュレーション動作を管理することで、システムデバッグシミュレーションを行うとした技術が記載されている。
【０００４】
【特許文献１】特開平４−２１５１０５号公報
【特許文献２】特開平９−３３０２５０号公報
【特許文献３】特開２００２−７３１１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記特開平４−２１５１０５号公報記載のシミュレーション技術は、実際に負荷装置の制御を行うプログラマブルコントローラを使ってシーケンスプログラムのシミュレーションを行うものではないため、ユーザが作成するシーケンスプログラムのＤＥＢＵＧを行うに当たり、シミュレータを製作しなければならないし、さらに、負荷装置としての外部機器を想定した入力パターンをシミュレーションデータとして作成する必要もあり、装置コストの増大を招くおそれがある。また、上記特開平９−３３０２５０号公報記載の技術においては、被制御系の動作をシミュレートするプログラム及び該プログラムを実行するための外部ツールを必要とする。また、上記特開２００２−７３１１５号公報記載の技術は、実際に負荷装置の制御を行うプログラマブルコントローラを使ってシーケンスプログラムのシミュレーションを行うものではないため、シーケンスプログラムのＤＥＢＵＧを行うに当たり、シミュレータを製作しなければならないし、プログラマブルコントローラ内と同じデータテーブルを擬似データテーブルとして作成してシミュレータ内に備える必要がある。
【０００６】
本発明の課題点は、上記従来技術の状況に鑑み、プログラマブルコントローラにおけるシーケンスプログラムの動作検証技術として、シミュレーション用に特別な装置は不要で、かつ、ユーザが作成したシーケンスプログラムを変更することなく、シミュレーション用に作成した外部入力を模擬したシーケンスプログラムを、通常のシーケンスプログラムと同じ方式で実行することができるようにすることである。
本発明の目的は、上記課題点を解決し、制御の信頼性を確保したプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題点を解決するために、本発明では、プログラマブルコントローラにおいて、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が、シーケンスプログラムに従った処理演算及び負荷装置の擬似回路がサブルーチンとして追加されたシミュレーション用シーケンスプログラムに従ったシミュレーション処理演算を行う制御部と、上記シーケンスプログラム及び上記シミュレーション用シーケンスプログラムを格納するメモリと、上記制御部が行った上記処理演算の結果を格納するメモリとを備え、上記シーケンスプログラムの動作検証を行うとき、上記制御部が、上記シミュレーション用シーケンスプログラムに従ったシミュレーション処理演算と、該シミュレーション処理演算結果の評価を行う構成とする。
【発明の効果】
【０００８】
本発明によれば、プログラマブルコントローラにおいて、シーケンスプログラムの動作を、該シーケンスプログラムをシミュレーション用に変更することなく、リアルタイム性を確保したシミュレーションにより、検証することができる。この結果、制御の信頼性を確保することができる。また、プログラムの管理が容易になる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例につき、図面を用いて説明する。
図１〜図６は、本発明の第１の実施例としてのプログラマブルコントローラの説明図である。図１は、本発明の第１の実施例としてのプログラマブルコントローラの構成を示すブロック図、図２は、図１のプログラマブルコントローラにおけるＣＰＵの動作のフロー図、図３は、図１のプログラマブルコントローラにおいて、シーケンスプログラムの検証を行う場合のＣＰＵの動作のフロー図、図４は、図１のプログラマブルコントローラにおけるシーケンスプログラムの例を示す図、図５は、図１のプログラマブルコントローラにおいて、シーケンスプログラムの検証を行うシミュレーション用シーケンスプログラムの例を示す図、図６は、図５のシミュレーション用シーケンスプログラムにおける入力手段の例を示す図である。
【００１０】
図１において、１０００はプログラマブルコントローラ、１は、プログラマブルコントローラ１０００のＣＰＵ、２は、ユーザがシーケンスプログラムや、該シーケンスプログラムの動作検証用のシミュレーション用シーケンスプログラムを作成するためのプログラミングツール、３は、プログラマブルコントローラ１０００によって制御される負荷装置側のセンサやスイッチなどからの信号が入力される外部入力モジュール、４は、ＣＰＵ１からの制御信号を負荷装置側の制御対象であるランプやアクチュエータなどに出力する外部出力モジュールである。プログラマブルコントローラ１０００は、ＣＰＵ１が生成する制御信号により負荷装置を制御する。ＣＰＵ１は、上記シーケンスプログラムにより、負荷装置を制御する制御動作の各手順を処理演算して実行するとともに、上記シミュレーション用シーケンスプログラムにより、上記シーケンスプログラムの動作を検証するための負荷装置の擬似制御動作すなわちシミュレーション制御動作の各手順を処理演算して実行する。プログラミングツール２は、例えばパソコンのアプリケーションなどで構成する。該プログラミングツール２は、シーケンスプログラム内の外部入力信号取込み命令(接点)毎にシミュレーションモードで動作させるか否かを判定するための判定フラグを設定可能、かつ、シミュレーションモード時の擬似入力回路をも作成可能であるとする。
【００１１】
また、図１において、ＣＰＵ１は、制御部としてのＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、周辺装置インタフェース１１、第１のメモリとしてのシステムプログラムメモリ１２、第２のメモリとしてのシーケンスプログラムメモリ１３、第３のメモリとしての内部データメモリ１４、外部バスインタフェース１５を備えて構成されている。上記制御部としてのＭＰＵ１０は、上記シーケンスプログラムに従った処理演算を行うとともに、該シーケンスプログラムの動作検証時は、負荷装置の擬似回路がサブルーチンとして追加されたシミュレーション用シーケンスプログラムに従ったシミュレーション処理演算を行う。上記周辺装置インタフェース１１は、上記ＭＰＵ１０との間及び上記プログラミングツール２との間においてそれぞれ、通信を行う。上記システムプログラムメモリ１２は、上記ＭＰＵ１０の制御内容及び制御動作手順を予め格納する。上記シーケンスプログラムメモリ１３は、上記ＭＰＵ１０が負荷装置を制御するシーケンスプログラム及びシミュレーション用シーケンスプログラムを格納する。プログラミングツール２で作成されたシーケンスプログラムは、周辺装置インタフェース部１１を介してＣＰＵ１内のシーケンスプログラムメモリ１３に格納される。上記内部データメモリ１４は、上記ＭＰＵ１０が行った処理演算の結果を格納する。また、上記外部バスインタフェース１５は、上記ＭＰＵ１０と、上記外部入力モジュール３、上記外部出力モジュール４との間で信号の授受を行う。すなわち、上記ＭＰＵ１０の指示に従い、負荷装置側からの情報を外部入力として外部入力モジュール３を介してＣＰＵ１内に取込むとともに、ＭＰＵ１０による処理演算の結果を外部出力モジュール４を介して上記負荷装置側に出力する。プログラミングツール２とＣＰＵモジュール１との接続は、ＵＳＢ、Ｅｔｈｅｎｅｔ、ＲＳ２３２Ｃ等を用いて成るインタフェースにより行う。
以下、説明中で用いる図１の構成における構成要素には、図１の場合と同じ符号を付して用いる。
【００１２】
プログラマブルコントローラ１０００において、ＣＰＵ１は、その内部のＭＰＵ１０が、図２に示すように、シーケンスプログラムにより負荷装置に対する制御動作の手順を実行する前に、外部入力モジュール３からデータを取込み、それを内部データメモリ１４に格納する。その後、ＭＰＵ１０は、該シーケンスプログラムに従って、負荷装置に対する制御動作を、先頭の手順から最後の手順までを順番に実行する。実行後の処理演算結果は、該処理演算の都度、内部データメモリ１４に格納される。ＭＰＵ１０は、シーケンスプログラムにより、制御動作の最後の手順までの処理演算を行った後、内部データメモリ１４に格納されている処理演算の結果を読み出して外部出力モジュール４に出力する。ＣＰＵ１は、以上の動作をサイクリックに繰り返し行う。
【００１３】
また、ＣＰＵ１は、シーケンスプログラムの動作検証時、シミュレーション用シーケンスプログラムにより負荷装置の制御動作のシミュレーションを行う場合、図３に示すように、処理演算の結果を外部出力に反映させない。このため、負荷装置は作動しない。ただし、該シーケンスプログラムの動作検証時においても、外部入力モジュール３からのセンサやスイッチ等の情報の取り込みは可能であるとする。これにより、スイッチ等の情報を取込んで負荷装置の制御動作のシミュレーションを行うことが可能となる。シミュレーションモードか否かを判定するための判定フラグは、プログラミングツール２からシーケンスプログラムが転送される時に、内部データメモリ１４内の特定のエリアに格納される。
【００１４】
図４は、図１のプログラマブルコントローラ１０００におけるシーケンスプログラムの例を示す図である。該シーケンスプログラムはラダープログラムとして形成されている。
図４において、回路１は、内部データメモリ１４に定義されている内部リレー「Ｒ０」がＯＮの時に、外部出力「Ｙ１００」をＯＮする回路、回路２は、外部入力「Ｘ０」がＯＮの時に、内部リレー「Ｒ１」をＯＮする回路である。負荷装置としての機器が配線されている状態では、例えば回路１の「Ｙ１００」がＯＮしている状態が５秒経過した時点で、センサがＯＮし、該センサが接続されている回路２の「Ｘ０」がＯＮすると仮定する。
以下、説明中で用いる図４の構成要素には、図４の場合と同じ符合を付して用いる。
【００１５】
図５は、図１のプログラマブルコントローラ１０００において、シーケンスプログラムの検証を行うシミュレーション用シーケンスプログラムの例を示す図である。該シミュレーション用シーケンスプログラムもラダープログラムとして形成されている。
【００１６】
上記のように、回路１の「Ｙ１００」がＯＮしてから５秒後に、回路２の「Ｘ０」がＯＮするようにした場合、図５に示すように、回路Ｓ１、回路Ｓ２を実行することにより実際の負荷装置を作動させることなく、「Ｙ１００」を制御することで外部入力「Ｘ０」を変化させることが可能となる。これは、図２、図３で示した外部入力の取込みを行った後、回路２の演算を行う前に回路Ｓ１、回路Ｓ２の演算を行うため、実際の外部機器からの入力データではなく、シミュレーション用に追加された擬似回路の演算結果を使用して回路２の演算が行われることを意味する。該擬似回路はサブルーチンとして追加され、サブルーチンの起動条件は、前記シミュレーションモードの判定フラグを利用して設定する。
【００１７】
図５のシミュレーション用シーケンスプログラムにおいては、図４に示すシーケンスプログラムの動作の検証を行い、該シーケンスプログラムにＢＵＧがある場合には、最終的には該シーケンスプログラムをＤＥＢＵＧすることを目的にシミュレーション動作を行うため、実際にはプログラミングツール２にて別に入力を行う手段を設け、ユーザが作成するシーケンスプログラムとの区別をつけておく必要がある。
【００１８】
図６は、図５のシミュレーション用シーケンスプログラムにおける入力手段の例を示す図である。
図６において、外部からの擬似入力に対し、プログラミングツール２にてシミュレーションモードを設定するためのプロパティウィンドウを開く。そこで「Ｘ０」のＯＮ条件を擬似するためのプログラムを作成する。
【００１９】
通常ラダープログラムにおいては、入力を取込む場合に接点を使用し、出力させる場合にコイルを使用するが、本プロパティウィンドウでは擬似入力を作成するためのラダープログラムを作成するため、コイル命令に「Ｘ０」という外部入力のアドレスを使用可能とする。
これにより、最終的に機器を制御するシーケンスプログラムを直接編集せずに、プロパティウィンドウにてシミュレーション用の擬似入力プログラムを挿入し、その擬似入力プログラムもシーケンスプログラム同様ＣＰＵ1で演算を行うため、実時間でのシミュレーションを行うことが可能となる。
【００２０】
上記第１の実施例のプログラマブルコントローラによれば、制御対象の負荷装置にプログラマブルコントローラを組み込み、配線した状態で、ユーザが作成したシーケンスプログラムを修正することなく、指定された部分のみシミュレーション用に作成した擬似入力プログラム（シミュレーション用シーケンスプログラム）を動作させることにより、実時間で負荷装置を作動させることなく、該シーケンスプログラムの検証を行うことが可能となる。また、部分的に実際の負荷装置からの状態を取込むか、擬似入力の状態を取込むかの選択も可能である。
【００２１】
図７〜図９は、本発明の第２の実施例の説明図である。図７は、本発明の第２の実施例としてのプログラマブルコントローラの構成を示すブロック図、図８は、図７のプログラマブルコントローラにおけるＣＰＵ内の内部データメモリのメモリマップを示す図、図９は、図７のプログラマブルコントローラにおいて、シーケンスプログラムの検証を行うシミュレーション用シーケンスプログラムの例を示す図である。図７〜図９において、図１、図４〜図６に示した構成要素と同じ構成・機能を有する構成要素には、図１、図４〜図６の場合と同じ符号を付す。
【００２２】
図７において、１０００ａは、第２の実施例としてのプログラマブルコントローラ、５は、ＣＰＵ１中の内部データメモリ１４に対し読み書き可能なシミュレーションモジュールである。本第２の実施例としてのプログラマブルコントローラ１０００ａは、ＣＰＵ１の外部に上記シミュレーションモジュール５を備えている点、及び、内部データメモリ１４内に、図８に示すマップのメモリエリアを設けている点が、上記第１の実施例としてのプログラマブルコントローラ１０００とは異なっている。内部データメモリ１４内には、を図８のメモリマップに示すように、「Ｒ０」等の内部リレーを格納する内部リレーエリア１４ａ、「Ｘ０」等の外部入力を取込む外部入力エリア１４ｂ、「Ｙ０」等の外部出力に出力するための外部出力エリア１４ｃ、前記外部入力エリアのダミー情報を格納するダミー外部入力エリア１４ｄ、そのダミー外部入力エリアの値を使用して演算し結果を格納するダミー外部出力エリア１４ｅ及びシミュレーションモードの判定フラグ等ユーザの演算に関係しない情報を格納するシステムデータエリア１４ｆを設ける。ここで、ユーザがプログラミングツール２により作成した図４に示すシーケンスプログラムをＣＰＵ１に転送する際、シミュレーションモードの場合には、プログラミングツール２は、図４に示すシーケンスプログラムを図９に示すシーケンスプログラムに変更して転送する。具体的には「Ｘ０」等の外部入力アドレスを「‘Ｘ０」としてダミー外部入力エリア１４ｄのアドレスに変更する。また、「Ｙ０」等の外部出力アドレスを「’Ｙ０」としてダミー外部出力エリア１４ｅのアドレスに変更する。
【００２３】
演算の対象をダミーのエリアとすることにより、図２に示すフローチャートの「外部入力取込み」、「外部出力へ演算結果出力」を行う処理が無効となる。この状態で、上記シミュレーションモジュール５からダミー外部入力エリアに対し、任意の入力データを与えることで、そのデータによるシーケンスプログラムの演算を実行し、ダミー外部出力エリア１４ｅに格納された演算結果をシミュレーションモジュール５が読み出し、何らかの手段によりユーザが該演算結果を確認することが可能となる。また、シミュレーションモジュール５からではなく、プログラミングツール２からダミー外部入力エリア１４ｄに対しデータを与えることも可能である。
【００２４】
本発明の第２の実施例のプログラマブルコントローラによれば、制御対象の負荷装置にプログラマブルコントローラを組み込み、配線済みの状態で、ユーザが作成したシーケンスプログラムを修正することなく、内部データメモリ１４内のダミー外部入出力エリア１４ｅを対象に、実時間でプログラムの検証を行うことが可能となる。また、部分的に実際の負荷装置からの状態を取込むか、擬似入力の状態を取込むかの選択も可能である。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１の実施例としてのプログラマブルコントローラの構成を示すブロック図である。
【図２】図１のプログラマブルコントローラにおけるＣＰＵの動作のフロー図である。
【図３】図１のプログラマブルコントローラにおいて、シーケンスプログラムの検証を行う場合のＣＰＵの動作のフロー図である。
【図４】図１のプログラマブルコントローラにおけるシーケンスプログラムの例を示す図である。
【図５】図１のプログラマブルコントローラにおいて、シーケンスプログラムの検証を行うシミュレーション用シーケンスプログラムの例を示す図である。
【図６】図５のシミュレーション用シーケンスプログラムにおける入力手段の例を示す図である。
【図７】本発明の第２の実施例としてのプログラマブルコントローラの構成を示すブロック図である。
【図８】図７のプログラマブルコントローラにおけるＣＰＵ内の内部データメモリのメモリマップを示す図である。
【図９】図７のプログラマブルコントローラにおいて、シーケンスプログラムの検証を行うシミュレーション用シーケンスプログラムの例を示す図である。
【符号の説明】
【００２６】
１０００、１０００ａ…プログラマブルコントローラ、
１…ＣＰＵ、
２…プログラミングツール、
３…外部入力モジュール、
４…外部出力モジュール、
５…シミュレーションモジュール、
１０…ＭＰＵ、
１１…周辺装置インタフェース、
１２…システムプログラムメモリ、
１３…シーケンスプログラムメモリ、
１４…内部データメモリ、
１５…外部バスインタフェース。
【図１】
2010108075.tif 000003
【図２】
2010108075.tif 000004
【図３】
2010108075.tif 000005
【図４】
2010108075.tif 000006
【図５】
2010108075.tif 000007
【図６】
2010108075.tif 000008
【図７】
2010108075.tif 000009
【図８】
2010108075.tif 000010
【図９】
2010108075.tif 000011