(57)【要約】【課題】制御装置と被制御装置との間でのデータ転送量を減少させる。【解決手段】少なくとも制御対象の状態を表す状態データと制御対象を制御するための制御データとを格納するメモリと、メモリに格納された状態データに基づいて制御対象の制御データを求める計算機と、メモリに格納された状態データを読み出すと共に、読み出した状態データに計算機で求められたデータを書込みメモリに格納するメモリコントローラと、メモリコントローラにより書き換えられたデータをメモリから読み出して送信するデータ転送装置から構成する。【選択図】図１
2006344244.tif 000002
【特許請求の範囲】
【請求項１】
少なくともプロセス状態や制御データを格納したメモリと、
上記メモリに格納されたプロセス情報に基づいて制御データを生成するコントローラと、
上記メモリ及びコントローラと接続され、複数のビットデータを保持するレジスタを有し、上記コントローラからのリードアクセスに対して、上記リードアクセスの対象となる第１のデータ及び上記第１のデータに続く第２のデータを上記メモリから読み出すと共に、上記第１のデータを上記コントローラに転送すると共に、上記第２のデータを上記レジスタに保持するデータ制御装置とを有することを特徴とするプロセス制御装置。
【請求項２】
少なくともプロセス状態や制御データを格納したメモリと、
上記メモリに格納されたプロセス情報に基づいて制御データを生成するコントローラと、
上記メモリ及びコントローラと接続され、複数のビットデータを保持するレジスタを有し、上記コントローラからの第１のライトアクセスに対して、上記第１のライトアクセスの対象となる第１のデータを上記レジスタに保持し、上記コントローラからの第２のライトアクセスに対して、上記第２のライトアクセスの対象となる第２のデータと上記レジスタに保持された第１のデータとを連続して上記メモリに格納するデータ制御装置とを有することを特徴とするプロセス制御装置。
【請求項３】
請求項１または２において、
上記データ制御装置はアドレスポインタを有し、上記コントローラからのアクセスに対して上記メモリの対応するアドレスポインタで示されたアドレスにアクセスする間接アクセスであることを特徴するプロセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラマブルコントローラのように、制御装置と制御対象となる被制御装置との間に一定間隔でデータ転送が必要な計算機システムに関する。
【背景技術】
【０００２】
従来より、産業設備を構成する様々な装置を制御するプログラマブルコントローラでは、各装置の状態を報告するセンサからの情報を取り込み、各装置のアクチュエータに指示を与えることにより産業設備を制御している。このプログラマブルコントローラ上で実行される制御プログラムを作り易くすることを目的として、プログラマブルコントローラ内に制御メモリと呼ばれるメモリを置き、この制御メモリ上の各ビットに制御対象となる各装置のセンサ情報やアクチュエータ情報をマッピングする。プログラマブルコントローラは、ネットワークを介して定期的に各装置と通信を行い、センサ情報は装置側からプログラマブルコントローラ側に、アクチュエータ情報は反対にプログラマブルコントローラ側から装置側にデータを転送することにより、この制御メモリの内容と装置のセンサ情報やアクチュエータ情報の状態との一致を図っている。このような特徴を持つ制御メモリをプログラマブルコントローラが備えることにより、制御プログラムは、この制御メモリをアクセスするだけで各装置の制御を行うことが可能となる。
【０００３】
ところが、近年になって産業設備の大型化高性能化に伴いプログラマブルコントローラの制御対象となる装置数の増加と共に各装置におけるセンサ数やアクチュエータ数が増加した。これにより、プログラマブルコントローラと各装置との間でネットワークを流れるデータ転送量が増加すると共に制御プログラムの処理も増加して、制御サイクルと呼ばれる制御プログラムが実行の開始から次の制御プログラムの実行が開始されるまでの時間が長くなった。この制御サイクルを短縮するため、制御プログラムの実行時間の短縮に加えてプログラマブルコントローラと各装置との間のデータ転送時間を短縮することが必要となった。
【０００４】
このデータ転送時間を短縮する方法として、高速なネットワークを使用する方法とデータ転送の効率化を図る方法の２つが挙げられる。
【０００５】
高速ネットワークを使用する方法はプログラマブルコントローラと各装置との間で行われるデータ転送が高速となるため、データ転送時間の短縮を実現できる。また、データ転送の効率化としては制御メモリをセンサ情報を格納するセンサ領域とアクチュエータ情報を格納するアクチュエータ領域との２つに分割する方法がある。制御メモリ上にセンサ情報とアクチュエータ情報が混在していると制御メモリの各アドレスのデータがセンサ情報かアクチュエータ情報かを示すテーブルがプログラマブルコントローラ内に必要となる。この場合、プログラムコントローラと各装置間の転送時にそのテーブルをひかなければならないため、余分なオーバーヘッドがかかってしまう。また、装置側でプログラマブルコントローラから送られて来た情報がセンサ情報であるかアクチュエータ情報であるかの判定を行う場合にはプログラマブルコントローラは余計なデータであるセンサ情報までも装置側に転送しなければならないため、データ転送量が増加して転送時間がかかってしまう。同様にセンサ情報に関しても同じことが言える。しかし制御メモリの領域を分割することでこのセンサ情報かアクチュエータ情報であるかの判定のオーバーヘッドやプログラマブルコントローラと各装置との間に余計なデータ転送を省くことができるため、プログラマブルコントローラと各装置との間のデータ転送時間の短縮が実現できる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記の通り、データ転送時間の高速化を図るためには高速なネットワークを使用する方法と、余計なオーバーヘッドやデータ転送を省くことにより転送効率を向上させる方法がある。
【０００７】
前者の高速なネットワークを使用する方法は高速なネットワーク自体が高価であり、速い転送速度を実現するため高速なアクセスタイムを持つメモリを制御メモリとして使用しなければならないため、プログラマブルコントローラ本体が高価となってしまう。
【０００８】
次にデータ転送の効率化の方法では制御メモリをセンサ領域とアクチュエータ領域とに２分割するため同じ装置に属するセンサ情報とアクチュエータ情報を、ひと固まりとして制御メモリ上の連続したアドレスに配置することができないため、各装置の情報の管理が装置単位で行えず、たくさんの装置を制御する場合にはユーザーインターフェースが悪くなり、制御プログラムの作成やプログラマブルコントローラ上での制御プログラムの動作を確認することが困難になる。
【０００９】
また、もう１つの問題としてコストの問題がある。制御する対象となる機器が増加することによって、センサやアクチュエータ数が増加し、制御メモリの容量が多くなる。また、被制御回路をディジタルではなくアナログで制御する場合、アナログ信号はＡ／Ｄ（アナログ／ディジタル）変換器を用いて１２ビットや１６ビットのディジタル信号に変換する。しかし、制御メモリのデータバスが８ビットの場合、１６ビットで構成されるアナログデータへのアクセスは１バイトごとの２回のアクセスになってしまう。もし、コントローラからの１回目のアクセスと２回目のアクセスの間に通信プロセッサからのアクセスが入り込み、アナログデータの上位８ビットと下位８ビットでデータの同時性が損なわれると、正しく制御が行われない問題が発生する。そのため、制御メモリのデータバスもそれに合わせて１６ビットバスを用いるものも多い。このように、コントローラを構成する
ＬＳＩやメモリのピン数が増大し、そのため大きなＬＳＩパッケージが必要となり、コストが高くなってしまうという問題があった。
【００１０】
上記問題点に鑑みて、本発明では低コストで制御装置と被制御装置間のデータ転送効率を向上させた制御システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明は、少なくとも制御対象の状態を表す状態データと制御対象を制御するための制御データとを格納するメモリと、メモリに格納された状態データに基づいて制御対象の制御データを求める計算機と、メモリに格納された状態データを読み出すと共に、読み出した状態データに計算機で求められたデータを書き込み上記メモリに格納するメモリコントローラと、制御内容を変更するためにメモリコントローラにより書き換えられたデータをメモリから読み出して送信するデータ転送装置とを有することを特徴とする。
【００１２】
また上記目的を達成するために本発明は、少なくとも制御対象の状態を表すデータと制御対象を制御するためのデータとを格納するメモリと、メモリに格納された制御対象の状態を表すデータに基づいて制御対象の制御データを求める計算機と、メモリに格納されたデータから複数ビットからなる１ワードのデータを読み出すと共に、制御対象のデータを計算機に転送し、読み出した１ワードのデータに計算機で求められた制御のためのデータを書き込みメモリに格納するメモリコントローラと、メモリコントローラにより書き換えられたデータをメモリから読み出して送信するデータ転送装置とを有する制御装置と、複数の制御対象と、制御対象の状態を計測する複数のセンサと、制御対象を制御するための複数のアクチュエータと、複数のセンサにより計測された制御対象の状態を表すデータを送出し、制御装置から送られた制御のためのデータを複数のアクチュエータに転送する入出力装置とを有する被制御装置とを有することを特徴とする。
【００１３】
また、上記目的を達成するために本発明は、少なくともプロセス状態や制御データを格納したメモリと、メモリに格納されたプロセス情報に基づいて制御データを生成するコントローラと、メモリ及びコントローラと接続され、複数のビットデータを保持するレジスタを有し、コントローラからのリードアクセスに対して、リードアクセスの対象となる第１のデータ及び第１のデータに続く第２のデータをメモリから読み出すと共に、第１のデータをコントローラに転送すると共に、第２のデータをレジスタに保持するデータ制御装置とを有することを特徴とする。
【００１４】
また上記目的を達成するために本発明では、少なくともプロセス状態や制御データを格納したメモリと、メモリに格納されたプロセス情報に基づいて制御データを生成するコントローラと、メモリ及びコントローラと接続され、複数のビットデータを保持するレジスタを有し、コントローラからの第１のライトアクセスに対して、第１のライトアクセスの対象となる第１のデータを上記レジスタに保持し、コントローラからの第２のライトアクセスに対して、第２のライトアクセスの対象となる第２のデータとレジスタに保持された第１のデータとを連続してメモリに格納するデータ制御装置とを有することを特徴とする。
【発明の効果】
【００１５】
以上詳述したように、本発明では産業システムを制御するコントローラにおいて、コントローラ内の制御メモリとＩ／Ｏとのデータ転送量を減らすため、制御メモリとＩ／Ｏ内のメモリのアクセス単位毎にそのメモリ内のデータの内容が更新されたか否かを示す内容更新ビットを付加し、内容が更新されたデータのみを転送することで転送量を減らすことを可能とした。また、メモリへのアクセスがリードモディファイライトがほとんどであることに注目し、リードアクセスの次のライトアクセスは同じアドレスに対して行われる確率が高く、この方式は有効である。また、この内容が更新されたかどうかの判定は、このリードモディファイライトアクセス中にオーバーラップさせることにより判定のためのオーバーヘッドなしに行うことが可能である。また、コントローラとプロセスデータ制御装置との接続を専用バスではなく汎用性のあるＩＯバスで接続すると共に、コントローラからのデータバスのバス幅を１バイトにすることによりＬＳＩのピン数を減らし、プロセス制御装置全体のコストを下げることを実現した。通常アナログデータは２バイトで扱われるため２バイトデータの同時性を保証する方式を示した。また、コントローラとプロセスデータ制御装置はＩＯバスで接続されているため、プロセスデータを保持しているメモリの全空間をＩＯバス上にマッピングが困難である。そこで、プロセスデータ制御装置内にアドレスポインタを設けこのアドレスポインタを用いた間接アドレス方式を採用することで、ＩＯバス空間の狭さを克服することが可能となった。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の説明を図１〜図２７を用いて説明する。
【００１７】
図２は、プログラマブルコントローラを使用した制御システムを示したものである。制御システムは、制御装置１０００，被制御装置２０００，制御装置１０００と被制御装置２０００との間はネットワーク１２００を介して接続されている。
【００１８】
制御装置１０００は、内部に計算装置１０１，制御メモリ２０１，制御データ転送装置３０１，内部に内容更新判定装置４００２を持つメモリコントローラ４０１からなる。また、被制御装置２０００は、入出力装置２００１，センサ２１０１，アクチュエータ2102，装置３０００からなる。
【００１９】
次に、制御装置１０００と被制御装置２０００との間のデータの流れを説明する。
【００２０】
制御装置１０００と被制御装置２０００との間を流れる情報は装置３０００に取り付けられた１つ以上のセンサ２１０１からのセンサ情報と装置３０００の動作を制御する１つ以上のアクチュエータ２１０２へのアクチュエータ情報である。また、制御装置１０００内の制御メモリ２０１の各アドレスに、センサ２１０１からのセンサ情報やアクチュエータ２１０２へのアクチュエータ情報を割り当て、制御装置１０００で実行される制御プログラムが特定のセンサからの情報が欲しい時には制御メモリ２０１の当該センサ情報が保持されているアドレスを読むことで当該センサ情報を得る。また、特定のアクチュエータを制御したいときには同様に制御メモリ２０１のそのアクチュエータ情報が保持されているアドレスにアクチュエータ情報を書き込むことで当該アクチュエータの制御を行う。また、センサ情報はセンサの種類によってビット長が異なり、１ビットをはじめ、数ビット長になるものまであり、データ長がさまざまであるため、センサ情報は入出力装置2001で、複数のセンサ情報を制御装置１０００が処理しやすいバイト(８ビット)やワード（１６ビット）等のアクセス単位にまとめ、アクセス単位ごとにネットワーク１２００を介して制御装置１０００に送られる。制御装置１０００では被制御装置２０００から送られるアクセス単位にまとめられたセンサ情報を制御メモリ２０１の該当するアドレスに書き込む。アクチュエータ情報についても、センサ情報と同様に複数のアクチュエータ情報をアクセス単位にまとめて、制御メモリの割り当てられたアドレスに書き込まれる。その後、アクチュエータ情報はネットワーク１２００を介してアクセス単位ごとに被制御装置2000に転送され、入出力装置２００１でアクセス単位にまとめられた複数のアクチュエータ情報をアクチュエータごとにデータを分割し、アクチュエータ２１０２に転送する。そして、アクチュエータ２１０２は、入出力装置２００１から転送されたデータに基づいて装置
３０００に対して動作を行う。以上のようにして、制御装置１０００による被制御装置
２０００の装置３０００の制御が可能となる。
【００２１】
ここで、被制御装置２０００の例としてモータ制御を挙げて、図２における制御システム全体の動作を説明する。被制御装置２０００のモータを装置３０００，モータの回転数を調べるセンサ２１０１，モータに与える電流を制御する電流制御装置をアクチュエータ２１０２とする。
【００２２】
制御装置１０００内の計算装置１０１で実行される制御プログラムは、センサ２１０１によりモータの回転数を読み取り、規定値と比較し、高ければアクチュエータ２１０２にモータへの供給電流を減らしてモータの回転数を下げるように指示し、反対に低ければアクチュエータ２１０２にモータへの供給電流を増やしてモータの回転数を上げるように指示する。このようにモータに与える電流を制御することによりモータの回転数を規定値になるように制御する。
【００２３】
アクセス単位については、計算装置１０１が制御メモリ２０１から一度に読み出せるビット数であり、ここでは１６ビットとする。
【００２４】
このモータ制御プログラムはラダー図により与えられる。図２におけるデータの流れは次のようになる。センサ２１０１はモータの回転数を測定し、アナログ値として入出力装置２００１に出力する。入出力装置２００１では、それをＡ／Ｄ(アナログ／ディジタル)変換器を介して１６ビットのディジタルデータに変換する。変換されたモータの回転数のデータはネットワーク１２００を介して制御装置１０００に送られる。制御装置１０００では次のようにして、アクチュエータ２１０２に対するアクチュエータ情報を計算する。制御データ転送装置３０１でディジタル化されたモータの回転数データを受信し、制御メモリ２０１のａ番地に書き込む。計算装置１０１は制御メモリ２０１のａ番地を読み出して、モータの回転数情報を入手する。次に規定値と、モータの回転数情報とを比較し、規定値に比べてモータの回転数が高いか低いかを判定し、モータへの電流制御装置であるアクチュエータ２１０２へのアクチュエータ情報を制御メモリ２０１に２ビットデータを書き込む。モータの回転数が規定値よりも高い場合にはモータへの供給電流を下げるために２ビット情報で１０を、反対に低い場合にはモータへの供給電流を上げるために２ビット情報で０１を、モータの回転数が規定値と同じならば００を制御メモリ２０１のｂ番地に書き込む。ｂ番地に書き込まれたアクチュエータ２１０２へのアクチュエータ情報は制御データ転送装置３０１により読み出され、ネットワーク１２００を介して被制御装置2000に送信する。
【００２５】
被制御装置２０００では、入出力装置２００１が制御データ転送装置３０１によって送られたアクチュエータ情報を受信し、アクチュエータ２１０２にその受信したアクチュエータ情報を転送する。アクチュエータ２１０２は入出力装置２００１から転送されたアクチュエータ情報が０１ならばモータへの供給電流を減らし、反対にアクチュエータ情報が１０ならばモータへの供給電流を増やす。このようにすることで、モータの回転数を規定値に保つことができる。
【００２６】
次に、計算装置１０１と制御メモリ２０１の間のデータ転送について説明する。図１に示すように計算装置１０１はメモリコントローラ４０１を介して制御メモリ２０１とつながっている。図３に、このメモリコントローラ４０１の内部の構造を示す。メモリコントローラ４０１を介しての計算装置１０１から制御メモリ２０１へのアクセス方法はリード，ライト，リードモディファイライトの３種類ある。リードアクセスは制御メモリ２０１からデータを読み込むアクセス，ライトアクセスは制御メモリ２０１へのデータ書き込みアクセス，リードモディファイライトアクセスは制御メモリ２０１上の１ビットのみを書き換えるアクセスである。先述したアクチュエータ２１０２へのアクチュエータ情報は２ビットである。そのため、いま、同じｂ番地の他のビットに他のアクチュエータへのアクチュエータ情報が割り当てられていると、単にｂ番地にアクチュエータ２１０２へのアクチュエータ情報を書き込んでしまうと、他のアクチュエータ情報もいっしょに書き換えられてしまう。そこで、一度アクチュエータ２１０２のデータを含むｂ番地を制御メモリ
２０１から読み出し（リード）、そのうちのアクチュエータ２１０２へのデータの部分のみを書き換え（モディファイ）、書き換えたデータを制御メモリ２０１のｂ番地に書き戻す（ライト）処理を行うことにより、アクチュエータ２１０２への制御データのみを書き換えることができる。さらに、このメモリコントローラ４０１にはリードモディファイライトアクセス時に制御メモリ２０１から読み込んだデータと書き込むデータとを比較することにより、リードモディファイライトアクセスによって、データ内容が更新されたかを判定する機能である内容更新判定機能を有する。この内容更新判定機能により、制御データ転送装置３０１でのデータ転送時にデータの内容が更新されているデータのみを被制御装置２０００に転送することができ、送信データの削減を実現でき、データ送信時間を短くすることができる。
【００２７】
次にメモリコントローラ４０１の構造について説明する。メモリコントローラ４０１にはラッチ４０１１，４０１２，４０２１，４０２２、２つの入力のうちどちらかを選択するセレクタ４２０１，２入力１出力であり、一方の入力がアクセス単位のビット幅で、もう一方の入力が１ビットで入力されたアクセス単位のうちの任意の１ビットをもう一方の入力である１ビットと置き換えるアクセス単位の出力を行うビットマージ４２０２，バスが双方向バスのため出力同士が衝突するバスファイトを防ぐための３状態バッファ4301，４３０２，４３０３，リードモディファイライト時のデータ内容が更新されたかを判定する内容更新判定装置４００２，以上のリソースを制御しメモリコントローラとして動作させるシーケンサ４００１から構成される。
【００２８】
計算装置１０１からのアドレス出力であるアドレスバス１４１はラッチ４０１１を介してアドレスバス２４１となり制御メモリ２０１のアドレス入力となる。同様に計算装置
１０１からのデータ入出力バス１４２はシーケンサ４００１とラッチ４０１２を介してセレクタ４２０１，ビットマージ４２０２に接続され、セレクタ４２０１の出力は３状態バッファ４３０１を介して制御メモリのデータバス２４２に接続され、また、データバス
２４２はラッチ４０２１を介して３状態バッファ４３０２，ビットマージ４２０２，内容更新判定装置４００２に接続されており、該３状態バッファ４３０２の出力は該データバス１４２に接続される。メモリ制御信号１４３はシーケンサ４００１に入力され、制御メモリ２０１のメモリ制御信号２４４に変換される。双方向バスである内容更新判定ビットバス２４３への出力は内容更新判定装置４００２の出力４１３１を３状態バッファ4303を介して出力され、入力はラッチ４０２２を介して内容更新判定装置４００２に入力される。ビットマージ４２０２はラッチ４０２１の出力の任意の１ビットをラッチ４０１２の下位１ビットと置き換えてセレクタ４２０１に接続される。シーケンサ４００１の出力である制御信号はラッチ４０１１，４０１２，４０２１，４０２２のラッチタイミング、３状態バッファ４３０１，４３０２，４３０３の状態（出力、ハイインピーダンス）、セレクタ４２０１のセレクト信号，ビットマージ４２０２のセレクト信号，内容更新判定装置
４００２の判定イネーブル信号を出力する。
【００２９】
メモリコントローラ４０１の動作を説明する。メモリコントローラ４０１にはリード・ライト・リードモディファイライトの３種類の動作が存在し、計算装置１０１からアドレスバス１４１，データバス１４２，メモリ制御信号１４３により起動する。
【００３０】
リードアクセスは計算装置１０１からアドレスをメモリ制御信号１４３からリード要求が出力されて起動する。シーケンサ４００１はラッチ４０１１，４０２１にラッチ信号を、３状態バッファ４３０２へ出力信号を、他の３状態バッファ４３０１，４３０３にはハイインピーダンス信号、制御メモリ２０１へのメモリ制御信号２４４にリード信号を出力し、アドレスバス２４１へは計算装置１０１からのアドレス出力が出力される。制御メモリ２０１では、アドレスバス２４１で指定されたアドレスの内容のデータがデータバス
２４２に、内容更新ビット情報が内容更新ビットバス２４３に出力される。データバス
２４２の内容はラッチ４０２１，３状態バッファ４３０２を介してデータバス１４２に出力されリードアクセスは終了する。
【００３１】
次にライトアクセスについて説明する。ライトアクセスは計算装置１０１からアドレスバス１４１にアドレスをデータバス１４２に書き込みデータを、メモリ制御信号１４３にライト要求を出力し、メモリコントローラ４０１が起動される。シーケンサ４００１は、メモリ制御信号２４４にライト要求を、ラッチ４０１１，４０１２にラッチ信号を、セレクタ４２０１にラッチ４１０２側を選択させ、アドレスバス２４１，データバス２４２にそれぞれ、アドレスバス１４１，データバス１４２の内容を出力し、アドレスバス２４１で指定された番地にデータバス２４２の内容が書き込まれる。最後にリードモディファイライトアクセスについて説明する。計算装置１０１からアドレスバス１４１にアドレス、データバス１４２に図４に示すフォーマットを持つデータを、メモリ制御信号１４３にリードモディファイライト要求を出力されて、メモリコントローラ４０１が起動する。シーケンサ４００１はまず、ラッチ４０１１，４０１２，４０２１，４０２２にラッチ信号を、制御メモリ２０１へのメモリ制御信号２４４にリード信号を出力し、アドレスバス241にアドレスバス１４１の内容を出力する。制御メモリ２０１はアドレスバス２４１で指定されたアドレスのデータを２４２に、内容更新ビットを内容更新ビットバス２４３に出力し、それぞれラッチ４０２１，４０２２にラッチされる。次にシーケンサ４００１は制御メモリ２０１へのメモリ制御信号２４４をライト要求に、３状態バッファ４３０１，4303を出力状態に、４３０２をハイインピーダンス状態に設定し、セレクタ４０２１をビットマージ４０２２の出力側に選択させ、ビットマージ４０２２に図８に示したビットアドレス９０１の内容をビットデータ９０２に置き換えさせるとともに内容更新判定装置4002に判定イネーブル信号を出力する。内容更新判定装置４００２ではリードデータであるラッチ４０２１の出力とライトデータであるビットマージ４２０２のデータを比較し、ラッチ４０２２との値を考慮して制御メモリ２０１へ書き込む内容更新ビットを演算し４１３１に出力する。またビットマージ４２０２の出力はセレクタ４２０１、３状態バッファ4301を介してデータバス２４２に出力され、制御メモリ２０１のアドレスバス２４１で指定されたアドレスにデータバス２４２と内容更新ビットバス２４３の内容が書き込まれる。以上がメモリコントローラ４０１の動作である。このメモリコントローラ４０１のタイムチャートを図１０から図１４に挙げる。
【００３２】
図５は内容更新判定装置４００２の概要を示したものである。この内容更新判定装置
４００２はリードモディファイライトアクセス時の制御メモリ２０１からのリードデータ４１２１と制御メモリ２０１へ書き込むデータ４１１１とを比較し、リードモディファイライトによるデータの変化を検出し、変化があれば出力４１３１に１を出力する。このとき、すでに制御メモリ２０１のデータの内容更新ビットが１であった場合にはその情報を保存するため、論理和を計算するオアゲート５００２がある。比較回路５００１の動作は次のとおりである。比較回路５００１には４つの入力があり、入力Ａ４１１１と入力
Ｂ４１２１，シーケンサ４００１からの制御信号である比較イネーブル信号４１４１と非比較時の出力信号を与える信号４１４２からなっている。比較器５００１の出力は図６に示すとおりであり、比較イネーブル信号４１４１が０の時、比較器５００１は入力Ａ4111と入力Ｂ４１２１が一致すれば１、不一致ならば０を出力し、比較イネーブル信号4141が１ならば、非比較時の出力信号４１４２の値をそのまま出力する。比較回路５００１の出力を反転したものとラッチ４０２２との出力との論理和をとることで、リードモディファイライトによるデータの内容が変化したかどうかを示す信号を生成することができる。
【００３３】
図７にシーケンサ４００１の概要を示す。シーケンサ４００１は計算装置１０１からの読み込み，書き込み，リードモディファイライト（メモリ制御信号１４３）に対してアドレスバス２４１，データバス１４２からの入力から、各ラッチ４０１１，４０１２，4021，４０２２のラッチタイミングやセレクタ４２０１，ビットマージ４２０２への選択信号，３状態バッファ４３０１，４３０２，４３０３への出力イネーブル信号，内容更新判定装置４００２への比較タイミング信号４１４１，出力選択信号４１４２，制御メモリ201への読み込み、書き込みタイミング信号２４４１，２４４２の生成を行う。この内容更新判定装置４００２への出力選択信号４１４２は図１に示す制御装置１０００では０に固定されている。あとで説明する図１５に示す計算装置１０１と制御データ転送装置３０１をＣＰＵ５０１が兼ねる場合にこの出力選択信号４１４２が使用される。メモリ制御信号
１４３はリード要求信号１４３１（以下：ＲＤ信号），ライト要求信号１４３２（以下：ＷＲ信号），リードモディファイライト信号１４３３（以下：ＲＭＷ信号），メモリアクセスが終了していないことを示すウェイト信号１４３４（以下：ＷＡＩＴ信号）から構成され、ＲＤ信号１４３１，ＷＲ信号１４３２，ＲＭＷ信号１４３３はシーケンサ４００１の入力，ＷＡＩＴ信号１４３４はシーケンサ４００１の出力となっている。メモリ制御信号２４４は出力イネーブル信号２４４１（以下：ＯＥ信号），ライトイネーブル信号2442（以下：ＷＥ信号）からなり、ＯＥ信号２４４１，ＷＥ信号２４４２ともシーケンサ4001の出力である。内容更新判定装置への出力信号は比較イネーブル信号４１４１，比較しないときの出力設定信号４１４２である。
【００３４】
図８にＲＭＷ時の計算装置１０１がデータバス１４２に出力するデータフォーマット
９００を示す。データフォーマット９００は最下位ビットである０ビットが書き込みビットデータ９０２，書き換えるビットのワード内アドレスを示す９０１からなり、計算装置１０１から出力されたアドレスで指定された制御メモリ２０１のデータに対して、メモリコントローラ４０１は制御メモリ２０１からデータを読み出し（リード）、ワード内アドレス９０１で指定された、データ内の１ビットを１ビットデータ９０２と取り替え（モディファイ）、同じアドレスに書き戻す（ライト）処理を行う。
【００３５】
図９に制御データ転送装置３０１の構成を示す。制御データ転送装置３０１は制御メモリ２０１からデータを読み出し、内容更新ビットバス２３３の値が１ならば、データバス２３２のデータをネットワーク１２００に出力する。また、ネットワーク１２００からデータを受信した場合には、該受信データを制御メモリ２０１へ書き込む。アドレスバス
２３１，出力イネーブル信号２３４１，書き込みイネーブル信号２３４２からなるメモリ制御信号２３４は転送制御装置３００２の出力であり、データバス２３２は転送回路3001に、内容更新ビットバス２３３は転送回路３００１とラッチ３２０２につながっており、ラッチ３２０２の出力は３状態バッファ３２０１につながっている。この３状態バッファ３２０１は、データバス２３２が双方向バスであるため、該データバス２３２上で制御メモリ２０１からの出力とラッチ３２０２の出力が衝突しないためラッチ３２０２の出力側に挿入されている。また、転送装置３００１と転送制御装置３００２はデータ線３１００でつながっている。
【００３６】
転送装置３００１は内部に転送判定回路３０１１を持ち、内容更新ビットバス２３３の値を見てデータバス２３２のデータをネットワーク１２００へ出力するかどうかを判定する。また、転送制御装置３００２は内部に制御メモリ２０１のアドレスを指すカウンタ
３０１２を持ち、このカウンタにより制御メモリ２０１の内容を順にネットワーク1200に出力する。
【００３７】
次にこの制御装置１０００内のデータの流れを説明する。計算装置１０１はアドレスバス１４１，データバス１４２，メモリ制御信号１４３を介してメモリコントローラにアクセス要求を出力し制御メモリ２０１とデータをやり取りする。
【００３８】
メモリコントローラ４０１の動作のタイミングチャートを図１０〜図１２に挙げる。図１０は読み込み時、図１１は書き込み時、図１２はリードモディファイライト時のタイミングチャートである。各タイミングチャートとも計算装置１０１がアクセス開始するクロックタイミングをＴ０とする。
【００３９】
読み込み時のタイムチャートを図１０に示す。Ｔ０のタイミングで、計算装置１０１はアドレスバス１４１にアドレスを出力し、ＲＤ信号１４３１をアサートする。Ｔ１のタイミングではシーケンサ４００１はＴ１の頭でラッチ４０１１にラッチ信号を送り、ラッチ４０１１にアドレスバス１４１の値をラッチさせ、ＷＡＩＴ信号１４３４，ＯＥ信号2441をアサートする。制御メモリ２０１へ、アドレスバス２４１にアドレス、メモリ制御信号２４４にＯＥ信号２４４１が出力され、制御メモリ２０１はアドレスバス２４１で指定されたアドレスの内容がデータバス２４２に出力される。Ｔ２のタイミングではシーケンサ４００１はＴ２の頭でラッチ４０２１にラッチ信号を送り、データバス２４２の値をラッチさせ、ＷＡＩＴ信号１４３４，ＯＥ信号２４４１をネゲートし、３状態バッファ4302にイネーブル信号を送り、ラッチ４０２１の出力４１２１のデータをデータバス１４２に読み込みデータが出力される。Ｔ３のタイミングでは計算装置１０１はＷＡＩＴ信号1434がネゲートされたのを確認し、アドレスバス１４１への出力を止め、ＲＤ信号１４３１をネゲートし、データバス１４２の内容を取り込む。シーケンサ４００１は３状態バッファ
４３０２のイネーブル信号を止め、データバス１４２へのデータ出力を止める。以上が読み込み時のメモリコントローラ４０１の動作である。
【００４０】
図１１に書き込み時のタイムチャートを示す。Ｔ０のタイミングで、計算装置１０１はアドレスバス１４１にアドレスをデータバス２４２に書き込みデータを出力し、ＷＲ信号１４３２をアサートする。Ｔ１のタイミングではシーケンサ４００１はＴ１の頭でラッチ４０１１，４０１２にラッチ信号を送り、ラッチ４０１１にアドレスバス１４１の値をラッチ４０１２にデータバス１４２の値をそれぞれラッチさせ、ＷＡＩＴ信号１４３４，
ＷＥ信号２４４２をアサートし、セレクタ４２０１にラッチ４０１２の出力４１０２を選択させる選択信号を、３状態バッファ４３０１，４３０３にイネーブル信号を送る。これにより、アドレスバス２４１にアドレス，データバス２４２にデータ，内容更新ビットバス２４３に内容更新ビット情報，メモリ制御信号２４４にＷＥ信号２４４２が出力され、制御メモリ２０１はアドレスバス２４１で指定されたアドレスにデータバス２４２と内容更新ビットバス２４３の内容が書き込まれる。Ｔ２のタイミングではシーケンサ４００１はＷＡＩＴ信号１４３４，ＷＥ信号２４４２をネゲートし、３状態バッファ４３０１，
４３０３のイネーブル信号を止め、データバス２４２，内容更新ビットバス２４３へのデータ出力を止める。Ｔ３のタイミングでは計算装置１０１はＷＡＩＴ信号１４３４がネゲートされたのを確認し、アドレスバス１４１，データバス１４２への出力を止め、ＷＲ信号１４３２をネゲートする。以上が書き込み時のメモリコントローラ４０１の動作である。
【００４１】
図１２にリードモディファイライト時のタイムチャートを示す。Ｔ０のタイミングで、計算装置１０１はアドレスバス１４１にアドレスを、データバス２４２に書き込みデータを出力し、ＲＭＷ信号１４３３をアサートする。Ｔ１のタイミングではシーケンサ4001はＴ１の頭でラッチ４０１１，４０１２にラッチ信号を送り、ラッチ４０１１にアドレスバス１４１の値をラッチ４０１２にデータバス１４２の値をそれぞれラッチさせ、ＷＡＩＴ信号１４３４，ＯＥ信号２４４１をアサートする。制御メモリ２０１へ、アドレスバス
２４１にアドレス，メモリ制御信号２４４にＯＥ信号２４４１が出力され、制御メモリ
２０１はアドレスバス２４１で指定されたアドレスの内容がデータバス２４２に出力される。Ｔ２のタイミングではシーケンサ４００１はＴ２の頭でラッチ４０２１，４０２２にラッチ信号を送り、ラッチ４０２１にデータバス２４２の値を、ラッチ４０２２に内容更新ビットバス２４３の値をラッチさせ、ＯＥ信号２４４１をネゲートする。Ｔ３のタイミングではシーケンサ４００１はセレクタ４２０１にビットマージ４２０２の出力４１１１を選択させる選択信号を、ビットマージ４２０２に置き換えるビットアドレスを、３状態バッファに４３０１，４３０３にイネーブル信号を送り、内容更新判定装置４００２へのイネーブル信号４１４１とＷＥ信号２４４２をアサートし、ＷＡＩＴ信号１４３４をネゲートする。これにより、アドレスバス２４１にアドレス，データバス２４２にデータ，内容更新ビットバス２４３に内容更新情報，メモリ制御信号２４４にＷＥ信号２４４２が出力され、制御メモリ２０１はアドレスバス２４１で指定されたアドレスにデータバス242と内容更新ビットバス２４３の内容が書き込まれる。Ｔ４のタイミングではシーケンサ
４００１はイネーブル信号４１４１，ＷＡＩＴ信号１４３４，ＷＥ信号２４４２をネゲートし、３状態バッファ４３０１，４３０３のイネーブル信号を止め、データバス２４２，内容更新ビットバス２４３へのデータ出力を止める。Ｔ５のタイミングでは計算装置101はＷＡＩＴ信号１４３４がネゲートされたのを確認し、アドレスバス１４１，データバス１４２への出力を止め、ＲＭＷ信号１４３３をネゲートする。以上がリードモディファイライト時のメモリコントローラ４０１の動作である。
【００４２】
内容更新判定装置４００２での動作は次のとおりである。
【００４３】
リードモディファイライト動作時は制御メモリ２０１の同じアドレスに対して読み出してから制御メモリ２０１の内容を書き換えて書き戻す。リードモディファイライト時には比較回路５００１のイネーブル信号４１４１がアサートされ、比較回路５００１の２つの入力である制御メモリ２０１から読み込んだデータであるＡ４１１１と制御メモリ２０１へ書き込むデータであるＢ４１２１とが一致すれば、出力５１０１に１が、４１１１と
４１２１が不一致ならば０が出力される。また、リードモディファイライトアクセスのリード時に内容更新ビットバス２４３の内容をラッチ４０２２にラッチさせ、ライト時にラッチ４０２２の内容と比較回路５００１の比較結果と論理和をとることにより、リードモディファイライトによる内容更新ビットの欠落が発生するのを防ぐ。
【００４４】
読み込み時，書き込み時では比較回路５００１のイネーブル信号４１４１はネゲートされており、図４に示される真理値表から比較回路５００１の出力５１０１には０が出力されるため、オアゲート５００２の出力４１３１には４１３２の値にかかわらず、１が出力される。書き込み時にはリード動作を伴わないため内容更新判定ができないため、内容更新ビットを１に設定する。
【００４５】
制御メモリ２０１と制御データ転送装置３０１とのデータの流れはアドレスバス２３１，データバス２３２，内容更新ビットバス２３３，メモリ制御信号２３４を介して被制御装置２０００から転送されたセンサデータを制御メモリ２０１に書き込むと共に、制御メモリ２０１上のアクチュエータ情報を被制御装置２０００に転送する。
【００４６】
図１３，図１４に制御データ転送装置３０１が制御メモリ２０１へのアクセス動作のタイミングチャートを挙げる。図１３が制御メモリ２０１への読み込み、図１４が制御メモリ２０１への書き込み時のタイミングチャートである。制御装置１０００から被制御装置２０００へアクチュエータデータを転送する際には制御データ転送装置３０１から制御メモリ２０１へアドレスバス２３１にアドレス情報，メモリ制御信号２３４に出力イネーブル信号を送り、制御メモリ２０１からアドレスバス２４１で指定されたアドレスのデータがデータバス２３２に内容更新ビット情報が内容更新ビットバス２３３に出力される。制御データ転送装置３０１はこの内容更新ビットバス２３３の値を見て、０ならば前回の被制御装置２０００への転送からデータは内容更新されていないと判断し被制御装置2000へ
のデータ転送を行う必要はない。一方、内容更新ビットバス２３３の値が１ならば、このデータは前回の転送から内容更新されたと判断しネットワーク１２００を介して被制御装置２０００へこのデータを転送すると同時に内容更新ビット情報を０にリセットする。また、被制御装置２０００側からコントローラ側にセンサデータ転送が行われる際には制御データ転送装置３０１から制御メモリ２０１へアドレスバス２３１にアドレス情報，データバス２３２に制御データ転送装置３０１がネットワーク１２００から受け取ったデータ情報，メモリ制御信号２３４に書き込み信号を送り、制御メモリ２０１のアドレスバス
２３１で指定されたアドレスに当該データを書き込む。この際内容更新ビットの内容は０である。この内容更新判定ビットを利用することにより、制御メモリ２０１のデータは計算装置１０１のアクセスによって変更されたデータのみが被制御装置２０００側へ転送されるため余分なデータ転送を省くことができデータ転送時間の短縮が可能となる。
【００４７】
図１３に示す読み込み時のタイミングチャートはＴ０のタイミングで転送制御装置3002はカウンタ３００２の値をアドレスバス２３１に出力し、ＯＥ信号２３４１をアサートする。制御メモリ２０１はアドレスバス２３１で指定されたアドレスの内容がデータバス
２３２に、内容更新ビット情報が内容更新ビットバス２３３に出力される。Ｔ１のタイミングで、転送制御回路３００２はバッファ３２０１，ラッチ３２０２にラッチ信号を送り、データバス２３２，内容更新ビットバス２３３の値がそれぞれバッファ３２０１，ラッチ３２０２にラッチさせ、ＯＥ信号２３４１をネゲートする。内容判定回路３００１はラッチ３２０２の内容を見て、０ならば転送をしないと判定し、カウンタ３０１２をカウントアップしアドレスバス２３１へのアドレス出力を止め、読み込み動作が終了する。１ならば当該データを被制御装置２０００へ当該データを転送するため、Ｔ２のタイミングで当該データをネットワーク１２００へ出力すると共に、転送制御装置３００２はＷＥ信号２３４２をアサートし、３状態バッファ３２１１にイネーブル信号を送り、読み込みデータを保持しているラッチ３２０２の内容をデータバス２３２に内容更新ビットバス２３３に０を出力し、制御メモリ２０１の当該アドレスの内容更新ビットをリセットする。Ｔ３のタイミングで転送制御装置３００２はＷＥ信号２３４２をネゲートすると共にアドレスバス２４１へのアドレス出力を止めてタイミングチャートが終了する。
【００４８】
図１４に示す書き込みタイミングチャートは被制御装置２０００からのデータをネットワーク１２００を介して転送回路３００１が受取ると、転送制御装置にデータを受取った旨を３１００を通じて知らせて、書き込みタイミングチャートが開始される。Ｔ０のタイミングで転送制御回路３００２がアドレスバス２３１にアドレスを出力し、ＷＥ信号234をアサートし、転送回路３００１がデータバス２３２に受取ったデータを、内容更新ビットバスに０を出力し、スキャンメモリのアドレスバス２３１で指定されたアドレスに当該データを書き込む。Ｔ１のタイミングで転送制御回路３００２はＷＥ信号２３４２をネゲートし書き込み動作が終了する。
【００４９】
図１５に他の実施例としてＣＰＵ５０１が図１における計算装置１０１と制御データ転送装置３０１を兼ねるコントローラ１１００を示す。ＣＰＵ５０１とメモリコントローラ４０１はアドレスバス４５１，データバス４５２，メモリ制御信号４５３，内容更新ビットバス２５１でつながっており、メモリコントローラ４０１と制御メモリ２０１はアドレスバス２６１，データバス２６２，メモリ制御信号２６３，内容更新ビットバス２５１とで接続されている。制御メモリ２０１，メモリコントローラ４０１の構成は図３と同じであり、アドレスバス４５１，データバス４５２，メモリ制御信号４５３は図２のアドレスバス１４１，データバス１４２，メモリ制御信号４５３に対応し、アドレスバス２６１，データバス２６２，メモリ制御信号２６３，内容更新ビットバス２５１はそれぞれ図２のアドレスバス２４１，データバス２４２，メモリ制御信号２４４，内容更新ビットバス
２４３に対応する。ＣＰＵ５０１は図１の計算装置１０１と制御データ転送装置３０１の処理を兼ねるため、図１６に示すとおり、制御メモリ２０１のメモリ空間６０００をCPU５０１のアドレス空間のＣＰＵ５０１が制御プログラム実行時にアクセスする制御プログラム実行領域６００１とＣＰＵ５０１が被制御装置２０００にデータ転送する際にアクセスするデータ転送領域６００２にそれぞれマッピングする。シーケンサ４００１はアドレス入力２４１をデコードして、ＣＰＵ５０１からのアクセスが領域６００１か領域6002へのアクセスかを判断し、領域６００１へのアクセスならば０を領域６００２へのアクセスならば１を内容更新判定装置４００２への制御信号４１４２に出力することで、内容更新判定装置４００２は書き込み時に領域６００１へのアクセスは１を、領域６００２へのアクセスでは０を内容更新ビットとして出力する。これによりＣＰＵ５０１は図１の計算装置１０１と制御データ転送装置３０１と等価な動作を行うことが可能となる。
【００５０】
ＣＰＵ５０１がメモリコントローラ４０１を介して制御メモリ２０１へアクセスする際のタイムチャートは制御プログラム実行時にアクセスする領域６００１へのアクセス時の動作のタイミングチャートは図１０〜図１２と同じで、図１０〜図１２におけるアドレスバス１４１，２４１がそれぞれアドレスバス４５１，２６１にデータバス１４２，２４２がそれぞれデータバス４５２，２６２、メモリ制御信号１４３，２４４がそれぞれメモリ制御信号４５３，２６３，内容更新ビットバス２４３が内容更新ビットバス２５１に対応している。また、データ転送時にアクセスする領域６００２へのアクセス時の動作のタイミングチャートは読み込み時が図１７、書き込み時が図１８にあげる３，１４と同じであり、同様にアドレスバス２３１がアドレスバスである。動作自体は制御データ転送装置
３０１と同じであるが、メモリコントローラ４０１を介するため、動作が複雑になる。
【００５１】
図１７にＣＰＵ５０１が転送データを制御メモリ２０１から読み込む際のタイムチャートを示す。Ｔ０のタイミングで、ＣＰＵ５０１はアドレスバス４５１にアドレスを、データバス４５２に書き込みデータを出力し、ＲＤ信号４５３１をアサートする。Ｔ１のタイミングではシーケンサ４００１はＴ１の頭でラッチ４０１１にラッチ信号を送り、ラッチ４０１１にアドレスバス４５１の値をラッチさせ、ＷＡＩＴ信号１４３４，ＯＥ信号2441をアサートする。制御メモリ２０１へ、アドレスバス２６１にアドレス，メモリ制御信号２４４にＯＥ信号２６３１が出力され、制御メモリ２０１はアドレスバス２６１で指定されたアドレスの内容がデータバス２６２に、内容更新ビット情報が内容更新ビットバス
２５１に出力される。
【００５２】
Ｔ２のタイミングではシーケンサ４００１はＴ２の頭でラッチ４０２１，４０２２にラッチ信号を送り、ラッチ４０２１にデータバス２６２の値を、ラッチ４０２２に内容更新ビットバス２５１の値をラッチさせ、ＯＥ信号２６３１をネゲートする。Ｔ３のタイミングではシーケンサ４００１はセレクタ４２０１にビットマージ４２０２の出力４１１１を選択させる選択信号を、ビットマージ４２０２に４１２１の値を出力４１１１にスルーさせる信号を、３状態バッファに４３０１，４３０３にイネーブル信号を送り、内容更新判定装置４００２への出力設定信号４１４２に１を出力すると共に、ＷＥ信号２６３１をアサートし、ＷＡＩＴ信号４５３４をネゲートする。これにより、アドレスバス２６１にアドレス，データバス２６２にラッチ４０２１にラッチされているデータ，内容更新ビットバス２５１に０，メモリ制御信号２６３にＷＥ信号が出力され、制御メモリ２０１はアドレスバス２６１で指定されたアドレスにデータバス２６２と内容更新ビットバス２５１の内容が書き込まれる。Ｔ４のタイミングではシーケンサ４００１は、ＷＡＩＴ信号4534，ＷＥ信号２６３２をネゲートし、３状態バッファ４３０１，４３０３のイネーブル信号を止め、データバス２６２，内容更新ビットバス２５１へのデータ出力を止める。Ｔ５のタイミングではＣＰＵ５０１はＷＡＩＴ信号４５３４がネゲートされたのを確認し、アドレスバス４５１，データバス４５２への出力を止め、ＲＤ信号４５３３をネゲートする。以上が転送データ読み込み時のメモリコントローラ４０１の動作である。
【００５３】
図１８に、被制御装置２０００から転送されたデータを制御メモリ２０１に書き込む際のタイムチャートを示す。Ｔ０のタイミングで、ＣＰＵ５０１はアドレスバス４５１にアドレスをデータバス４５２に書き込みデータを出力し、ＷＲ信号４５３２をアサートする。Ｔ１のタイミングではシーケンサ４００１はＴ１の頭でラッチ４０１１，４０１２にラッチ信号を送り、ラッチ４０１１にアドレスバス４５１の値をラッチ４０１２にデータバス４５２の値をそれぞれラッチさせ、ＷＡＩＴ信号４５３４，ＷＥ信号２６３２をアサートし、セレクタ４２０１にラッチ４０１２の出力４１０２を選択させる選択信号を、内容更新判定装置４００２への出力選択信号４１４２に１を出力し、３状態バッファ４３０１，４３０３にイネーブル信号を送る。これにより、アドレスバス２６１にアドレス，データバス２６２にデータ，内容更新ビットバス２５１に０，メモリ制御信号２６３にＷＥ信号２６３２が出力され、制御メモリ２０１はアドレスバス２６１で指定されたアドレスにデータバス２６２と内容更新ビットバス２５１の内容が書き込まれる。Ｔ２のタイミングではシーケンサ４００１はＷＡＩＴ信号４５３４，ＷＥ信号２６３２をネゲートし、３状態バッファ４３０１，４３０３のイネーブル信号を止め、データバス２６２，内容更新ビットバス２５１へのデータ出力を止める。Ｔ３のタイミングではＣＰＵ５０１はＷＡＩＴ信号４５３４がネゲートされたのを確認し、アドレスバス４５１，データバス４５２への出力を止め、ＷＲ信号４５３２をネゲートする。以上が書き込み時のメモリコントローラ４０１の動作である。
【００５４】
次にコスト問題に対する実施の形態について図１９〜図２７を用いて説明する。
【００５５】
図１９に示すように、プロセス制御装置１００００はコントローラ１０００１とプロセスデータ制御装置１０００２，メモリ１０００３，通信プロセッサ１０００４，入出力装置１０００５，センサ１０００６，電流計１０００７，表示ランプ１０００８から構成され、プロセスデータ制御装置１０００２はそれぞれ、コントローラ１０００１とはＩＯデータバス２１０００により、メモリ１０００３とはメモリデータバス２３０００により、通信プロセッサ１０００４とは通信データバス２４０００により、接続されている。
【００５６】
また、通信プロセッサ１０００４はシリアル線を介して入出力装置１０００５と接続されており、入出力装置１０００５はセンサ１０００６と電流計１０００６と表示ランプ
１０００８と接続されている。このプロセス制御装置ではセンサ１０００６から情報が来ると電流計１０００７の電流値を調べ、基準値より低ければＯＫのサインとしてランプ
１０００８を点灯させる動作を行うものとする。
【００５７】
プロセス制御装置１００００でのデータの動きは次の通りである。
【００５８】
コントローラ１０００１はプロセスデータ制御装置１０００２を介してメモリ10003からセンサ１０００６のデータを読み出し、センサ１０００６の情報が１ならば、電流計
１０００７のデータをプロセスデータ制御装置１０００２を介してメモリ１０００３から読み出す。読み出された電流計１０００７のデータが基準値より低ければ１を高ければ０をランプ１０００８へのデータとしてプロセスデータ制御装置１０００２を介してメモリ１０００３に書き込む。この一連の処理を一定間隔でコントローラ１０００１は実行する。一方通信プロセッサ１０００４は一定間隔で入出力装置に起動をかけ、センサ10006と電流計１０００７のデータを読み込み、プロセスデータ制御装置を介して当該センサ
１０００６と電流計１０００７のデータをメモリ１０００３に書き込むと共に、プロセスデータ制御装置１０００２を介してランプ１０００８のデータをメモリ１０００３より読み出し、ＰＩＯ装置１０００５に転送する。ＰＩＯ装置１０００５は通信プロセッサから起動をかけられると、センサ１０００６と電流計１０００７からデータを取り込み、電流計１０００７のデータをＡ／Ｄ変換器を用いて２バイトのディジタル情報に変換し、通信プロセッサ１０００４に転送する。また通信プロセッサ１０００４から転送されたランプ１０００８へのデータを取り込み、当該データが１ならばランプを点灯させ、０ならば、ランプを消灯させる。以上のようにプロセス制御装置１００００を動作する。
【００５９】
まず、コントローラ１０００１からのアクセスについて説明する。コントローラ10001からプロセスデータ制御装置１０００２を介してのメモリ１０００３へのアクセスは２バイト単位で行われる。図２０に示すように、コントローラ１０００１のＩＯアドレス空間の一部にプロセスデータ制御装置１０００２のアクセス空間を割り当て、このＩＯ空間を介してコントローラ１０００１はメモリ１０００３をアクセスする。当該ＩＯ空間はプロセスデータ制御装置１０００２内の２バイトアドレスポインタを構成するアドレスポインタ上位バイト１２００１，アドレスポインタ下位バイト１２００２，コントローラ10001がメモリ１０００３へのライトアクセス時に使用する上位バイトライトバッファ12002，メモリライトバッファ１２００３、同じくコントローラ１０００１がメモリ１０００３へのリードアクセス時に使用する上位バイトリードバッファ１２００５，メモリリードバッファ１２００６から構成され、コントローラ１０００１はこれら１２００１〜１２００６の６バイトからなる空間をアクセスし、メモリ１０００３へのアクセスを行う。
【００６０】
コントローラ１０００１がメモリ１０００３へアクセスする方法を図２１に示す。コントローラ１０００１がメモリ１０００３へのライトアクセスを行うには、コントローラ
１０００１はメモリ１０００３上のアクセスしたいアドレスの上位バイトをアドレスポインタ上位バイト１２００１に、同じく下位バイトをアドレスポインタ下位バイト12002に書き込む（１３００１）。次にコントローラ１０００１は１３００１でセットしたアドレスへ書き込みたい２バイトデータの上位バイトを上位バイトライトバッファ１２００３に書き込む（１３００３）。そして、同じく書き込みたい２バイトデータの下位バイトをメモリライトバッファ１２００４に書き込む（１３００３）ことにより、プロセスデータ制御装置１０００２はアドレスポインタ上位バイト１２００１とアドレスポインタ下位バイト１２００２からなるアドレスポインタで示されたアドレスにメモリライトバッファ2004
の値を、アドレスポインタにより示されたその次のアドレスに上位バイトライトバッファ１２００３の値をメモリ１０００３に連続して書き込む。
【００６１】
コントローラ１０００１がメモリ１０００３からデータをリードする際にはライト時と同様にして、コントローラ１０００１はメモリ１０００３から読み込みたいデータのアドレスをアドレスポインタ上位バイト１２００１・下位バイト１２００２に値をセット
（１３０１１）し、先程のライト時とは異なり、先ずコントローラ１０００１はメモリリードバッファ１２００６を読み込む。するとプロセスデータ制御装置１０００２はメモリ１０００３に対してメモリ１０００３からアドレスポインタ上位バイト１２００１と下位バイト１２００２からなるアドレスポインタで示されたアドレスの値をメモリリードバッファ１２００６に、アドレスポインタで示されたアドレスの次のアドレスの値を上位バイトリードバッファ１２００５に連続して読み込む（１３０１２）。したがって、コントローラ１０００１がメモリリードバッファ１２００６をリードするとコントローラ10001はアドレスポインタで示されたメモリ１０００３上のアドレスの値を読み出すことができる。次にコントローラ１０００１は上位バイトリードバッファ１２００５をリードし、上位バイトを読み込み、リードアクセスは終了する（１３０１３）。以上のようにコントローラ１０００１からのアクセスをプロセスデータ制御装置１０００２がメモリ１０００３に対して２バイト単位でアクセスすることにより、２バイトデータの同時性を保証する。また、コントローラ１０００１からのリードライトバッファ１２００３〜１２００６へのアクセスによりプロセスデータ制御装置１０００２がメモリ１０００３へ１バイトデータをアクセスするごとにアドレスポインタをインクリメントするアドレスポインタにオートインクリメント機能を持たせることで、コントローラ１０００１は一度アドレスポインタにアドレスをセットすれば、あとはリードライトバッファ１２００３〜１２００６へアクセスするだけで、コントローラ１０００１はアドレスポインタ１２００１，１２００２に新たにアドレスををセットすることなしにメモリ１０００３の連続アドレスにアクセスできる。
【００６２】
一方、通信プロセッサ１０００４からのメモリ１０００３へのアクセスはコントローラ１０００１からアクセスとは異なり、メモリ１０００３の全メモリ空間を通信プロセッサからのアドレス出力によって指定でき、かつ通信データバス２４０００が２バイトであるため、通信プロセッサ１０００４からのメモリ１０００３へのアドレス出力は偶数アドレス（アドレスの最下位ビットが０）となる。次に通信プロセッサ１０００４からメモリ
１０００３へのアクセス方法を示す。
【００６３】
通信プロセッサ１０００４からメモリ１０００３へのライトアクセス時には通信プロセッサ１０００４はプロセスデータ制御装置１０００２に対して、メモリ１０００３へのアドレスと通信データバス２４０００に２バイトのライトデータを出力する。プロセスデータ制御装置１０００２はメモリ１０００３へのライトアクセスはメモリデータバス23000のバス幅が１バイト幅であるため、先ずメモリ１０００３に対して２バイトからなる通信データバス２４０００の下位バイトを通信プロセッサ１０００４から指定されたアドレス（偶数アドレス）に書き込み、次に通信データバス２４０００の上位バイトをその次のアドレス（奇数アドレス：当該アドレスの最下位ビットを１にする）に書き込む２回連続ライトアクセスを行い、プロセスデータ制御装置１０００２はメモリ１０００３に対する通信プロセッサ１０００４からのライトアクセスを終了する。
【００６４】
次に通信プロセッサ１０００４からのメモリ１０００３へのリードアクセス時には、ライト時と同様に通信プロセッサ１０００４，プロセスデータ制御装置１０００２に対してメモリ１０００３へのアドレスを出力する。プロセスデータ制御装置１０００２はメモリデータバス２４０００が１バイトバスであるため、通信プロセッサ１０００４から指定されたアドレス（偶数アドレス）で示されたメモリ１０００３の内容を読み出しこれを下位バイトとして、続く次のアドレスの内容を（奇数アドレス：当該アドレスの最下位ビットを１）をメモリ１０００３から読み出し、これを上位バイトとし、合わせて２バイトデータとして通信プロセッサ１０００４に出力する２回連続リードを行うことにより、プロセスデータ制御装置１０００２はメモリ１０００３に対する通信プロセッサ１０００４からのリードアクセスを終了する。
【００６５】
以上のようにして通信プロセッサ１０００４からメモリ１０００３へのアクセスは行われる。さらにプロセスデータ制御装置１０００２ではコントローラ１０００１と通信プロセッサ１０００４とは非同期で動作しているため、コントローラ１０００１と通信プロセッサ１０００４から同時にプロセスデータ制御装置１０００２にアクセス要求が発生する場合（メモリ１０００３へのアクセス競合）が存在する。この競合の解消方法としてプロセス制御装置１００００ではテストアンドセット等のソフトウエアによる競合解消ではなく、プロセスデータ制御装置１０００２内に競合解消回路を持たせ、ハードウエアで競合をすばやく解消し競合によるメモリアクセス時のオーバーヘッドを小さくしている。この競合解消によりメモリ１０００３へのアクセスの排他性を２バイトアクセス単位で実現し、２バイトデータの同時性を保証する。
【００６６】
図２２にプロセスデータ制御装置１０００２の構成を示す。プロセスデータ制御装置
１０００２はコントローラ１０００１とはＩＯデータバス２１０００とＩＯアドレスバスとで、通信プロセッサ１０００４とは通信データバス２４０００と通信アドレスバスとで、メモリ１０００３とはメモリデータバス２３０００とメモリアドレスバスとで接続されており、ＩＯデータバス２１０００，通信データバス２４０００，メモリデータバス
２３０００はそれぞれ、１バイト幅，２バイト幅，１バイト幅の双方向バスであり、ＩＯアドレスバス，通信アドレスバス，メモリアドレスバスはすべて２バイト幅である。このプロセスデータ制御装置１０００２はコントローラ１０００１からのＩＯアドレス出力をデコードするＩＯデコーダ１００２１とコントローラ１０００１からアクセス時のデータを制御し２バイト同時保証を行う２バイト同時保証回路１００２３と、コントローラ
１０００１からのアクセス時にメモリへのアドレスを保持するアドレスポインタ10024 と通信プロセッサからのアクセス時のデータを制御するメモリシーケンサ１００２５と２バイト同時保証回路１００２３からの出力データとメモリシーケンサ１００２５からの出力データをセレクトしメモリデータバス２３０００に出力するセレクタ１００２７と、アドレスポインタ１００２４からのアドレス出力と通信プロセッサ１０００４からのアドレス出力をセレクトし、メモリアドレスバスに出力するセレクタ１００２６，２バイト同時保証回路からＩＯデータバス２１０００への出力を制御する３状態バッファ１１００１，同じくメモリシーケンサ１００２５から通信データバス２４０００への出力を制御する３状態バッファ１１００３、同じくセレクタ１００２７の出力をメモリデータバス２３０００
への出力を制御する３状態バッファ１１００２、また、これらを制御する制御装置10022から構成される。
【００６７】
ＩＯデコーダ１００２１はコントローラ１０００１からのプロセスデータ制御装置
１０００２へのアクセス時にＩＯアドレスをデコードし、プロセスデータ制御装置10002へのアクセスであれば、アドレスポインタ１００２４へのアクセスかメモリ１０００３へのアクセスかを判定する。コントローラ１０００１からのアクセスがアドレスポインタ
１００２４へのアクセスの場合にはアドレスポインタ１００２４に対してアドレスポインタの上位または下位バイトへのデータセット信号を出力する。また、メモリアクセス（メモリライトバッファ１２００４，メモリリードバッファ１２００６へのアクセス）の場合には制御回路１００２２にアクセス要求を出力する。制御回路１００２２は内部に競合判定回路１０２２１を持っており、メモリ１０００３へのアクセスにおける競合が発生するか否かを判定する。メモリ１０００３への競合が発生する場合にはメモリシーケンサ
１００２５からのメモリ１０００３へのアクセスが終了するまで待たせてから、競合が発生しなればアクセス許可を２バイト同時保証回路１００２３に与えるとともに、セレクタ１００２６にアドレスポインタ１００２４の出力を選択させる。さらに、コントローラ
１０００１からのアクセスがリードアクセスの場合にはメモリ１０００３に対して２回連続してリード要求を出力すると共に、ＩＯデータバス２１０００への３状態バッファ
１１００１を出力状態にする。またコントローラ１０００１からのアクセスがライトアクセスの場合にはメモリ１０００３に対して２回連続してライト要求を出力するとともにセレクタ１００２７に２バイト同時制御回路の出力を選択させ、メモリデータバス23000への３状態バッファ１１００２をドライブする。２バイト同時保証回路１００２３は制御回路１００２２よりアクセス許可を得てメモリ１０００３に対してアクセスを開始する。
【００６８】
また、通信プロセッサ１０００４からのアクセス時にはメモリシーケンサ１００２５が制御回路１００２２にアクセス要求を出力し、制御回路１００２２が持っている競合判定回路１０２２１がメモリ１０００３へのアクセス競合が発生するかを判定し、競合が発生するならば２バイト同時保証回路１００２３がメモリ１０００３へのアクセスが終了するまでまたせ、メモリ１０００３へのアクセス競合が発生しなければ、制御回路１００２２はメモリシーケンサ１００２５にアクセス許可を与えるとともに、セレクタ１００２６に通信プロセッサ１０００４のアドレス出力を選択させる。さらに、通信プロセッサ10004からのアクセスがリードアクセスの場合にはメモリ１０００３に対して２回連続してリード要求を出力すると共に通信データバス２４０００への３状態バッファ１１００３をドライブする。また、通信プロセッサ１０００４からのアクセスがライトアクセスの場合にはメモリ１０００３に対して２回連続ライト要求を出力すると共にセレクタ１００２７にメモリシーケンサ１００２５の出力を選択させ、メモリデータバス２３０００への３状態バッファ１１００２をドライブする。
【００６９】
図２３に２バイト同時保証回路１００２３の構成を示す。２バイト同時保証回路10023は同時保証制御回路１０２３１とメモリ１０００３へのライト時に上位バイトデータを保持するラッチ１０２３２とメモリ１０００３へのライトデータを選択するセレクタ10235、また、メモリ１０００３へのリード時に上位バイトデータを保持するラッチ１０２３３，下位バイトを保持するラッチ１０２３４，コントローラ１０００１へのリードデータを選択するセレクタ１０２３６から構成されている。この２バイト同時保証回路100023は制御回路１００２２からのアクセス許可を受けて起動し、ＩＯデコーダ１００２１から、上位バイトライトバッファ１２００３，メモリライトバッファ１２００４，上位バイトリードバッファ１２００５，メモリリードバッファ１２００６のどれへのアクセスかを受け取る。同時保証制御回路１０２３１の動作は次のとおりである。上位バイトライトバッファ１２００３へのアクセスの場合には同時保証制御回路１０２３１はラッチ１０２３２にラッチ信号を出力しラッチ１０２３２にＩＯデータバス２１０００のデータをラッチさせる。上位バイトリードバッファ１２００５へのアクセスの場合には同時保証制御回路10231はセレクタ１０２３６にラッチ１０２３４の出力を選択させ、ＩＯデータバス２１０００にラッチ１０２３４に保持された上位バイトデータを出力させる。また、メモリライトバッファ１２００４へのアクセス時には同時保証制御回路１０２３１は制御回路１００２２に対してメモリ１０００３へのライト要求を出力し、同制御回路１００２２からアクセス許可をもらうのを待つ、同時保証制御回路１０２３１は制御回路１００２２からアクセス許可をもらうと、セレクタ１０２３５にＩＯデータバス２１０００を選択させ、メモリ
１０００３にメモリライトバッファ１２００４への書き込みデータを書き込み、続いて同時保証制御回路１０２３１はセレクタ１０２３５をラッチ１０２３２を選択させ、上位バイトリードバッファの値をメモリ１０００３に出力し、ラッチ１０２３２のデータを書き込むことにより、２バイトデータを連続してメモリ１０００３へ書き込む。
【００７０】
メモリリードバッファ１２００６へのアクセス時には、同様にして制御回路１００２２に対してメモリ１０００３へのリード要求を出力し、同制御回路１００２２からアクセス許可をもらうのを待つ。同時保証制御回路１０２３１は制御回路１００２２からアクセス許可をもらうと、制御装置１００２２から２回連続してリード要求が出力されるので、同時保証制御回路１０２３１はラッチ１０２３３にラッチ信号を出力し最初のリードデータ（下位バイトデータ）をラッチ１０２３３に保持させ、続いて、ラッチ１０２３４にラッチ信号を出力し続くメモリ１０００３からのリードデータ（上位バイト）を１０２３４に保持させる。また、同時保証回路１０２３１はセレクタ１０２３５をラッチ１０２３３への出力を選択しＩＯデータバス２１０００に下位バイトデータを出力する。
【００７１】
図２４にアドレスポインタ１００２４の概要を示す。アドレスポインタ１００２４はメモリ１０００３へ出力するアドレスの上位バイトを保持するラッチ１０２４１と下位バイトを保持するラッチ１０２４２、また、メモリ１０００３へのオートインクリメントを行う１６ビット（２バイト）インクリメンタ１０２４３，セレクタ１０２４４，１０２４５から構成され、セレクタ１０２４４，１０２４５はそれぞれ、ラッチ１０２４１，10242への入力データをＩＯデータバス２１０００か、１６ビットインクリメンタ１０２４３の出力かを選択する。セレクタ１０２４４，１０２４５は通常は１６ビットインクリメンタ１０２４３の出力を選択しているが、コントローラ１０００１がアドレスポインタをアクセスする際にはセレクタ１０２４４，１０２４５共にＩＯデータバス２１０００側を選択する。コントローラ１０００１がアドレスポインタ上位バイト１２００１をアクセス時にはＩＯデコーダ１００２１からラッチ１０２４１にラッチ信号が出力され、ラッチ10241にＩＯデータバス２１０００の値が、また、コントローラ１０００１がアドレスポインタ下位バイト１２００２をアクセス時にはＩＯデコーダ１００２１からラッチ１０２４２にラッチ信号が出力され、ラッチ１０２４２にＩＯデータバス２１０００の値が書き込まれる。また、コントローラ１０００１がメモリライトバッファ１２００４，メモリリードバッファ１２００６へのアクセス時には制御回路１００２２からメモリ１０００３へリード／ライト要求信号が出力されるとともにラッチ１０２４１，１０２４２にラッチ信号が出力され、メモリ１０００３へのアクセスごとにアドレスポインタの値がインクリメントされて、２回連続アクセスの際にアドレスポインタが１つずつインクリメントされるため、正しくメモリアクセスを行うことができる。
【００７２】
図２５にメモリシーケンサ１００２５の概要を示す。メモリシーケンサ１００２５は通信プロセッサ１０００４のライト時に２バイト幅の通信データバス２４０００のライトデータの上位バイト，下位バイトを選択しメモリデータバス２３０００に出力するセレクタ１０２５２と、通信プロセッサ１０００４のリード時に上位バイトを保持するラッチ
１０２５３と下位バイトを保持するラッチ１０２５４とこれらを制御するメモリシーケンサ制御回路１０２５１から構成される。通信プロセッサ１０００４からのライト時にはメモリシーケンサ制御回路１０２５１は制御回路１００２２にライト要求信号を出力し、同制御回路１００２２からのアクセス許可が来るのを待つ。同制御回路１００２２からのアクセス許可が来ると、メモリシーケンサは制御回路１００２２から出力されるメモリ
１０００３への２回連続のライトアクセス要求に対してセレクタ１０２５４を最初のライトアクセス時には下位バイトを続く次のライトアクセス時には上位バイトを選択すると同時にアドレスの最下位ビットを最初のライトアクセス時には０を次のライトアクセス時には１を出力することにより、メモリ１０００３の連続したアドレスに通信データバス
２４０００上のデータを書き込む。また、通信プロセッサ１０００４がメモリ１０００３からリードするときには、制御回路１００２２にライト要求信号を出力し、同制御回路
１００２２からのアクセス許可が来るのを待つ。同制御回路１００２２はメモリシーケンサ制御回路１０２５１にアクセス許可が与えると共に、メモリ１０００３に対して２回連続してリードアクセス要求を出力する。メモリシーケンサ１０２５１は制御回路10022からアクセス許可をもらうと、最初のメモリ１０００３からのリードデータをラッチ10253に、続く次のリードデータをラッチ１０２５４に保持させるようにラッチ１０２５３，
１０２５４にラッチ信号を出力し、通信データバス２４０００にラッチ１０２５３，
１０２５４の出力からなるに２バイトデータを出力する。以上のようにして通信プロセッサ１０００４からのメモリアクセスに対しても２バイト同時保証を実現する。
【００７３】
図２６にコントローラ１０００１からのメモリ１０００３へのアクセス時のタイムチャートを図２７に通信プロセッサ１０００４からのメモリ１０００３へのアクセス時のタイムチャートを挙げる。
【００７４】
以上のようにしてプロセスデータ制御装置１０００２は動作することにより、コントローラ１０００１に対して２バイトデータの同時性を保証する。
【図面の簡単な説明】
【００７５】
【図１】本発明であるデータ転送方式の適用例１の概要図。
【図２】プログラマブルコントローラを用いた制御システムの概要図。
【図３】図１のメモリコントローラの詳細図。
【図４】図３の内容更新判定装置の詳細図制御メモリ。
【図５】図４の比較回路の真理値表。
【図６】制御メモリのアクセス単位を示す図。
【図７】図４のシーケンサの概要図。
【図８】リードモディファイライト時のデータフォーマットを示す図。
【図９】図１の転送装置の概要図。
【図１０】読み込み時のメモリコントローラの動作タイミングチャート図。
【図１１】書き込み時のメモリコントローラの動作タイミングチャート図。
【図１２】リードモディファイライト時のメモリコントローラの動作タイミングチャート図。
【図１３】転送装置の制御メモリへの読み込み動作タイミングチャート図。
【図１４】転送装置の制御メモリへの書き込み動作タイミングチャート。
【図１５】本発明のデータ転送方式の適用例２の概要図。
【図１６】図１５のＣＰＵ５０１のメモリマップ。
【図１７】図１５のＣＰＵ５０１のデータ送信時のメモリコントローラ４０１の動作タイミングチャート。
【図１８】図１５のＣＰＵ５０１のデータ受信時のメモリコントローラ４０１の動作タイミングチャート。
【図１９】プロセス制御装置の概要図。
【図２０】図１９のコントローラから見えるＩＯアドレスマッピング。
【図２１】図１９のコントローラからプロセス制御装置を介してのメモリアクセス手順。
【図２２】図１９のプロセスデータ制御装置の概要図。
【図２３】図２２の２バイト同時保証回路の概要図。
【図２４】図２２のアドレスポインタの概要図。
【図２５】図２２のメモリシーケンサの概要図。
【図２６】図１９のコントローラからのメモリアクセスのタイムチャート。
【図２７】図１９の通信プロセッサからのメモリアクセスのタイムチャート。
【符号の説明】
【００７６】
１０１…計算装置、１４１，２３１，２４１，２６１，４５１…アドレスバス、１４２，２３２，２４２，２６２，４５２…データバス、１４３，２３４，２４４，２６３，
４５３…メモリ制御信号、２０１…制御メモリ、２３３，２４３，２５１…内容更新ビットバス、３０１…制御データ転送装置、４０１…メモリコントローラ、５０１…ＣＰＵ、１０００…制御装置、１２００…ネットワーク、２０００…被制御装置、２００１…入出力装置、２１０１…センサ、２１０２…アクチュエータ、３０００…装置、４００１…シーケンサ、４００２…内容更新判定装置、４０１１，４０１２，４０２２…ラッチ、4201…セレクタ、４２０２…ビットマージ、４３０１，４３０２，４３０３…３状態バッファ、５００１…比較回路、５００２…オアゲート。
【図１】
2006344244.tif 000003
【図２】
2006344244.tif 000004
【図３】
2006344244.tif 000005
【図４】
2006344244.tif 000006
【図５】
2006344244.tif 000007
【図６】
2006344244.tif 000008
【図７】
2006344244.tif 000009
【図８】
2006344244.tif 000010
【図９】
2006344244.tif 000011
【図１０】
2006344244.tif 000012
【図１１】
2006344244.tif 000013
【図１２】
2006344244.tif 000014
【図１３】
2006344244.tif 000015
【図１４】
2006344244.tif 000016
【図１５】
2006344244.tif 000017
【図１６】
2006344244.tif 000018
【図１７】
2006344244.tif 000019
【図１８】
2006344244.tif 000020
【図１９】
2006344244.tif 000021
【図２０】
2006344244.tif 000022
【図２１】
2006344244.tif 000023
【図２２】
2006344244.tif 000024
【図２３】
2006344244.tif 000025
【図２４】
2006344244.tif 000026
【図２５】
2006344244.tif 000027
【図２６】
2006344244.tif 000028
【図２７】
2006344244.tif 000029