(57)【要約】【課題】プログラムメモリに格納されたシーケンスプログラムを読み出せないようにすることでシーケンスプログラムを保護するプログラマブルコントローラを提供する。【解決手段】主処理部１０は、プログラムメモリ１１に格納されたシーケンスプログラムに従って機器を制御する。また、主処理部１０と通信可能な外部装置を接続するサービスインターフェイス１４を備える。主処理部１０は、プログラムメモリ１１に格納されたシーケンスプログラムについてサービスインターフェイス１４から外部装置への読み出しを禁止する読出禁止処理部２２を備える。したがって、サービスインターフェイス１４から外部装置へのシーケンスプログラムの読み出しを禁止することができるから、シーケンスプログラムのノウハウが他人に知られたり、シーケンスプログラムが盗用されたりするのを防止することができる。【選択図】        図１
2006331130.tif 000002
【特許請求の範囲】
【請求項１】
制御対象となる機器の制御手順を示すシーケンスプログラムが格納される書換可能なプログラムメモリと、プログラムメモリに格納されたシーケンスプログラムに従って機器を制御するプロセッサを有した主処理部と、主処理部と通信可能な外部装置を接続するサービスインターフェイスとを備え、プログラムメモリに格納されたシーケンスプログラムについてサービスインターフェイスから外部装置への読み出しを禁止する読出禁止処理部を主処理部に備えることを特徴とするプログラマブルコントローラ。
【請求項２】
前記主処理部は、セット時に前記読出禁止処理部を有効にする読出禁止フラグが格納されるフラグ格納部を備え、読出禁止フラグをセットしていない状態からセットした状態に不可逆的に変更できることを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
前記主処理部は、前記外部装置から前記プログラムメモリにシーケンスプログラムが書き込まれると、前記フラグ格納部における読出禁止フラグをセットしていない状態からセットした状態に変更することを特徴とする請求項２記載のプログラマブルコントローラ。
【請求項４】
前記主処理部は、セット時に前記読出禁止処理部を有効にする読出禁止フラグが格納されるフラグ格納部を備え、前記読出禁止フラグがセットされている状態からリセットされると前記プログラムメモリの内容を消去することを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項５】
前記主処理部は、前記外部装置から前記サービスインターフェイスを通して前記プログラムメモリにシーケンスプログラムを書き込むことを禁止する書込禁止処理部を備えるとともに、あらかじめ登録したパスワードと一致するパスワードが外部装置から入力されたときに書込禁止処理部を無効にすることを特徴とする請求項２ないし請求項４のいずれか１項に記載のプログラマブルコントローラ。
【請求項６】
前記プログラムメモリとの間でシーケンスプログラムの授受が可能な外部記憶装置と、外部記憶装置を着脱可能に接続する拡張インターフェイスとを備え、プログラムメモリから外部記憶装置にシーケンスプログラムを書き出すときに前記読出禁止フラグを主処理部から外部記憶装置に転送し、外部記憶装置からプログラムメモリにシーケンスプログラムを読み込むときに読出禁止フラグを外部記憶装置から主処理部に転送することを特徴とする請求項２ないし請求項５のいずれか１項に記載のプログラマブルコントローラ。
【請求項７】
前記プログラムメモリとの間でシーケンスプログラムの授受が可能な外部記憶装置と、外部記憶装置を着脱可能に接続する拡張インターフェイスとを備え、前記主処理部は、フラグ格納部に読出禁止フラグがセットされているときは、前記プログラムメモリから前記外部記憶装置へのシーケンスプログラムの転送を禁止することを特徴とする請求項２ないし請求項５のいずれか１項に記載のプログラマブルコントローラ。
【請求項８】
前記主処理部は、フラグ格納部に読出禁止フラグがセットされていないときは、前記プログラムメモリから前記外部記憶装置へのシーケンスプログラムの書き出しが可能であって、前記外部装置は、プログラムメモリから外部記憶装置にシーケンスプログラムが書き出されるときに外部記憶装置に対して読出禁止フラグを書き込むか否かを指示でき、外部記憶装置に書き込まれた読出禁止フラグは、外部記憶装置からプログラムメモリにシーケンスプログラムが読み込まれるときに外部記憶装置から主処理部に転送されることを特徴とする請求項７記載のプログラマブルコントローラ。
【請求項９】
前記主処理部は、前記プログラムメモリから前記外部記憶装置にシーケンスプログラムを転送する際に暗号化するとともに、前記外部記憶装置から前記プログラムメモリにシーケンスプログラムを転送する際に復号化する暗号化・復号化部を備えることを特徴とする請求項６ないし請求項８のいずれか１項に記載のプログラマブルコントローラ。
【請求項１０】
前記暗号化・復号化部は、前記外部装置により暗号キーを設定可能であることを特徴とする請求項９記載のプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シーケンスプログラムに従って機器を制御するプログラマブルコントローラに関するものである。
【背景技術】
【０００２】
一般に、プログラマブルコントローラは、機器を接続する機器インターフェイスと、シーケンスプログラムを格納するプログラムメモリと、シーケンスプログラムを実行して機器を制御する主処理部とを備える。シーケンスプログラムは、使用者がプログラムメモリに書き込む場合のほか、プログラムメモリにあらかじめ格納され使用者による改変を認めない場合がある。
【０００３】
ところで、シーケンスプログラムは、プログラマブルコントローラとは別に設けた外部装置としての支援装置（一般に、パーソナルコンピュータで適宜のプログラムを実行する構成が採用されている）を用いて作成され、支援装置でデバッグを行った後にプログラムメモリに書き込まれる。したがって、プログラマブルコントローラでは、支援装置のような外部装置を接続するためのサービスインターフェイスを備えている（たとえば、特許文献１参照）。支援装置は、シーケンスプログラムをプログラムメモリに書き込むだけではなく、プログラムメモリからシーケンスプログラムを読み出す機能を備え、読み出したシーケンスプログラムの確認や修正の機能を備えることが多い。
【特許文献１】特開平８−１７９８１２号公報（第３頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したように、プログラマブルコントローラにはサービスインターフェイスが設けられているから、サービスインターフェイスに支援装置を接続すれば、使用者であってもシーケンスプログラムを読み出すことができる。したがって、シーケンスプログラムの内容が読み出され特定のアルゴリズムが無断で勝手に利用されたり、改変を認めていないシーケンスプログラムが読み出されて改変されたりするなどの問題が生じる可能性がある。つまり、プログラマブルコントローラでは、プログラムメモリに格納したシーケンスプログラムについては十分な保護がなされていないのが現状である。
【０００５】
本発明は上記事由に鑑みて為されたものであり、その目的は、プログラムメモリに格納されたシーケンスプログラムを読み出せないようにすることでシーケンスプログラムを保護するプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１の発明は、制御対象となる機器の制御手順を示すシーケンスプログラムが格納される書換可能なプログラムメモリと、プログラムメモリに格納されたシーケンスプログラムに従って機器を制御するプロセッサを有した主処理部と、主処理部と通信可能な外部装置を接続するサービスインターフェイスとを備え、プログラムメモリに格納されたシーケンスプログラムについてサービスインターフェイスから外部装置への読み出しを禁止する読出禁止処理部を主処理部に備えることを特徴とする。
【０００７】
この構成によれば、サービスインターフェイスから外部装置へのシーケンスプログラムの読み出しを禁止することができるから、プログラムメモリに格納されたシーケンスプログラムの外部装置による読み出しを禁止して、シーケンスプログラムのノウハウが他人に知られたり、シーケンスプログラムが盗用されたりするのを防止することができる。つまり、シーケンスプログラムが保護される。
【０００８】
請求項２の発明では、請求項１の発明において、前記主処理部は、セット時に前記読出禁止処理部を有効にする読出禁止フラグが格納されるフラグ格納部を備え、読出禁止フラグをセットしていない状態からセットした状態に不可逆的に変更できることを特徴とする。
【０００９】
この構成によれば、読出禁止フラグがセットされているか否かによりシーケンスプログラムの読み出しが禁止されるか否かが決まるから、読出禁止フラグを設定しない状態ではシーケンスプログラムの読み出しと書き込みとを自由に行うことができ、シーケンスプログラムの作成作業が容易になる。また、シーケンスプログラムをプログラムメモリに格納した後に使用者に引き渡す際には読出禁止フラグを設定すれば、シーケンスプログラムの読み出しが禁止されるからシーケンスプログラムが保護される。しかも、読出禁止フラグはセットしていない状態からセットした状態に不可逆的に変更されるから、読出禁止フラグが一旦設定された後には、シーケンスプログラムを読出可能な状態に戻すことはできなくなる。
【００１０】
請求項３の発明では、請求項２の発明において、前記主処理部は、前記外部装置から前記プログラムメモリにシーケンスプログラムが書き込まれると、前記フラグ格納部における読出禁止フラグをセットしていない状態からセットした状態に変更することを特徴とする。
【００１１】
この構成によれば、シーケンスプログラムをプログラムメモリに書き込むだけで読出禁止フラグが設定されるから、読出禁止フラグの設定忘れがなく、シーケンスプログラムの改変、破壊、情報漏れなどに対して高い安全性が得られる。
【００１２】
請求項４の発明では、請求項１の発明において、前記主処理部は、セット時に前記読出禁止処理部を有効にする読出禁止フラグが格納されるフラグ格納部を備え、前記読出禁止フラグがセットされている状態からリセットされると前記プログラムメモリの内容を消去することを特徴とする。
【００１３】
この構成によれば、読出禁止フラグがセットされているとシーケンスプログラムの読み出しが禁止され、また読出禁止フラグのリセットは可能であるが、リセットすればプログラムメモリの内容が消去されるから、読出禁止フラグをリセットしてもシーケンスプログラムは読み出せない。つまり、シーケンスプログラムの読み出しが禁止されているのであり、シーケンスプログラムが保護される。しかも、読出禁止フラグをリセットすれば、シーケンスプログラムを読み書きできる状態に戻すことになるから、シーケンスプログラムを組み直したり、他の用途に用いたりすることが可能になる。
【００１４】
請求項５の発明では、請求項２ないし請求項４のいずれかの発明において、前記主処理部は、前記外部装置から前記サービスインターフェイスを通して前記プログラムメモリにシーケンスプログラムを書き込むことを禁止する書込禁止処理部を備えるとともに、あらかじめ登録したパスワードと一致するパスワードが外部装置から入力されたときに書込禁止処理部を無効にすることを特徴とする。
【００１５】
この構成によれば、シーケンスプログラムの書き込みの可否をパスワードを用いて選択するから、プログラムメモリに不用意にシーケンスプログラムを書き込む可能性を低減することができ、誤操作によるシーケンスプログラムの破壊や改変を防止することができる。しかも、適正なパスワードによってシーケンスプログラムの書き込みが可能になるから、シーケンスプログラムのバージョンアップなどのメンテナンスは行うことができる。
【００１６】
請求項６の発明では、請求項２ないし請求項５のいずれかの発明において、前記プログラムメモリとの間でシーケンスプログラムの授受が可能な外部記憶装置と、外部記憶装置を着脱可能に接続する拡張インターフェイスとを備え、プログラムメモリから外部記憶装置にシーケンスプログラムを書き出すときに前記読出禁止フラグを主処理部から外部記憶装置に転送し、外部記憶装置からプログラムメモリにシーケンスプログラムを読み込むときに読出禁止フラグを外部記憶装置から主処理部に転送することを特徴とする。
【００１７】
この構成によれば、外部記憶装置を用いてシーケンスプログラムを運ぶことにより、制御対象となる機器の設置場所とは異なる場所でシーケンスプログラムを作成することができる。つまり、シーケンスプログラムを作成した提供者は、シーケンスプログラムを作成し外部記憶装置に書き出して、その外部記憶装置を使用者に送付すれば、使用者のプログラマブルコントローラに外部記憶装置からシーケンスプログラムを読み込ませることで、シーケンスプログラムを使用することが可能になる。しかも、外部記憶装置によってシーケンスプログラムとともに読出禁止フラグも運ばれ、使用者のプログラマブルコントローラに読出禁止フラグがセットされるから、使用者によるシーケンスプログラムの読み出しを防止してシーケンスプログラムを保護することができる。
【００１８】
請求項７の発明では、請求項２ないし請求項５のいずれかの発明において、前記プログラムメモリとの間でシーケンスプログラムの授受が可能な外部記憶装置と、外部記憶装置を着脱可能に接続する拡張インターフェイスとを備え、前記主処理部は、フラグ格納部に読出禁止フラグがセットされているときは、前記プログラムメモリから前記外部記憶装置へのシーケンスプログラムの転送を禁止することを特徴とする。
【００１９】
この構成によれば、読出禁止フラグが設定されているとシーケンスプログラムを外部記憶装置に書き出すことができないから、外部記憶装置を用いてシーケンスプログラムが無制限に複製されるのを防止することができる。
【００２０】
請求項８の発明では、請求項７の発明において、前記主処理部は、フラグ格納部に読出禁止フラグがセットされていないときは、前記プログラムメモリから前記外部記憶装置へのシーケンスプログラムの書き出しが可能であって、前記外部装置は、プログラムメモリから外部記憶装置にシーケンスプログラムが書き出されるときに外部記憶装置に対して読出禁止フラグを書き込むか否かを指示でき、外部記憶装置に書き込まれた読出禁止フラグは、外部記憶装置からプログラムメモリにシーケンスプログラムが読み込まれるときに外部記憶装置から主処理部に転送されることを特徴とする。
【００２１】
この構成によれば、読出禁止フラグをセットしていない状態で外部記憶装置にシーケンスプログラムを書き出し、外部装置で読出禁止フラグのセットを指示することができるから、読出禁止フラグによって外部記憶装置へのシーケンスプログラムの転送を禁止しながらも外部記憶装置へのシーケンスプログラムの転送と読出禁止フラグのセットとが可能になる。読出禁止フラグをセットした外部記憶装置からシーケンスプログラムを転送されたプログラマブルコントローラでは、他の外部記憶装置にシーケンスプログラムを書き出すことはできなくなる。
【００２２】
請求項９の発明では、請求項６ないし請求項８のいずれかの発明において、前記主処理部は、前記プログラムメモリから前記外部記憶装置にシーケンスプログラムを転送する際に暗号化するとともに、前記外部記憶装置から前記プログラムメモリにシーケンスプログラムを転送する際に復号化する暗号化・復号化部を備えることを特徴とする。
【００２３】
この構成によれば、外部記憶装置に格納されたシーケンスプログラムは暗号化されているから、外部記憶装置からシーケンスプログラムを読み出そうとしても容易に知られることがなく、シーケンスプログラムを保護することができる。
【００２４】
請求項１０の発明では、請求項９の発明において、前記暗号化・復号化部は、前記外部装置により暗号キーを設定可能であることを特徴とする。
【００２５】
この構成によれば、暗号キーを用いることによりシーケンスプログラムの暗号化が容易にでき、しかも暗号キーは外部装置により任意に設定することができるから、特別な仕様のプログラマブルコントローラを用いることなく外部記憶装置に格納するシーケンスプログラムの暗号化が可能になる。
【発明の効果】
【００２６】
本発明の構成によれば、サービスインターフェイスから外部装置へのシーケンスプログラムの読み出しを禁止することができるから、プログラムメモリに格納されたシーケンスプログラムの外部装置による読み出しを禁止することができ、シーケンスプログラムのノウハウが他人に知られたり、シーケンスプログラムが盗用されたりするのを防止することができ、結果的に、シーケンスプログラムが保護されるという利点を有する。
【発明を実施するための最良の形態】
【００２７】
以下に説明する実施形態では、プログラマブルコントローラ（以下、「ＰＬＣ」と略称する）のシーケンスプログラム（以下、「プログラム」と略称する）を作成してＰＬＣに搭載する提供者と、提供者がプログラムを搭載したＰＬＣを使用する使用者とを想定する。ＰＬＣは書換可能なプログラムメモリを有し、プログラムメモリにプログラムが格納される。本発明では、基本的には、プログラムを少なくとも１回はプログラムメモリに書込可能であるが、使用者においてはプログラムメモリからプログラムを読み出すことができないようにしてある。また、プログラムの実行中により変化しＰＬＣに設けたデータメモリに格納されるデータについては書込可能かつ読出可能としてある。
【００２８】
プログラムメモリにプログラムを１回しか書き込めない場合を除いては、プログラムメモリに新たなプログラムを書き込む際には、プログラムメモリの内容を一旦消去し、その上で、プログラムメモリにプログラムを格納する。したがって、プログラムの修正のためにプログラムの書換が必要であるときには、プログラムメモリの内容を消去して修正後のプログラムを格納する。一方、データメモリに対しては、書込と読出とが可能であるから、プログラムの実行中に生じるデータの監視が可能であって、データの監視によりＰＬＣの動作を把握することができる。以下に具体的に説明する。
【００２９】
（実施形態１）
本実施形態は、図１に示すように、マイクロプロセッサを主構成とする主処理部１０を備え、プログラムメモリ１１に格納されたプログラムを主処理部１０で実行するように構成される。主処理部１０はシステムプログラムを格納したシステムメモリを含むものとする。プログラムメモリ１１には不揮発性のメモリを用い、システムメモリにはＲＯＭを用いる。また、プログラムの実行に必要なデータおよびプログラムの実行に伴って発生ないし変化するデータを一時的に格納するデータメモリ１２と、制御対象である機器を接続する機器インターフェイス１３とが設けられる。データメモリ１２にはＲＡＭを用いる。機器インターフェイス１３は、機器に指示を与えるための出力インターフェイスと、機器の動作を監視するために機器からのデータを取り込む入力インターフェイスとを備える。
【００３０】
さらに、支援装置のような外部機器を着脱可能に接続するサービスインターフェイス１４と、各種機能のユニットを着脱可能に接続する拡張インターフェイス１５とを備える。サービスインターフェイス１４には、ＲＳ２３２Ｃ規格、ＲＳ４２２規格、ＵＳＢ規格の少なくともいずれかの汎用の通信用のインターフェイスが用いられる。また、拡張インターフェイス１５は、ユニットを着脱可能に接続するコネクタを備え、コネクタに接続するユニットの機能に応じてＰＬＣの機能を拡張する。
【００３１】
サービスインターフェイス１４に接続される支援装置は、プログラムの作成とデバッグとの機能、プログラムメモリ１１にプログラムを書き込む機能、プログラムメモリ１１の内容の消去を指示する機能を備える。サービスインターフェイス１４に接続可能な外部装置としては、支援装置のほか、データメモリ１２のデータの変化を読み出すことによりＰＬＣの動作を監視し必要に応じて機器の制御をＰＬＣに指示する監視制御装置を用いる場合もある。監視制御装置としてはタッチパネル式の操作表示部を備えるものを用いるのが望ましい。
【００３２】
拡張インターフェイス１５のコネクタには、機器インターフェイス１３と同仕様の入出力を可能とする入出力用のユニットや、機器インターフェイス１３とは異仕様の入出力を可能とする入出力用のユニットが接続可能になっている。したがって、コネクタに接続するユニットの機能に応じて、機器インターフェイス１３の入出力の点数を増加させたり、アナログ入力の機能を付加したりパルスの入出力の機能を付加したりすることが可能になる。あるいはまた、プログラムメモリ１１に格納したプログラムを他のＰＬＣに転送する際に用いる外部記憶装置を備えた記憶用のユニットをコネクタに接続することも可能である。このユニットを接続すれば、プログラムメモリ１１に格納したプログラムをユニットに設けた外部記憶装置に取り込んだ後に、このユニットを他のＰＬＣに接続して当該プログラムを他のＰＬＣに読み込ませることが可能になる。拡張インターフェイス１５にはサービスインターフェイス１４と同様に外部装置との通信を可能にする通信用のユニットも接続可能である。
【００３３】
上述したＰＬＣでは、図２に示すように、電源が投入（Ｓ１）されると、初期化処理（Ｓ２）がなされ、次に動作モードが判定される（Ｓ３）。動作モードとしては、プログラムメモリ１１に格納されたプログラムを実行する実行モードと、プログラムを実行せずにプログラムのメンテナンスなどを行うプログラムモードとが選択可能になっている。実行モードとプログラムモードとは、手操作するモード切換スイッチ１６で選択する。
【００３４】
実行モードでは、まず機器インターフェイス１３と拡張インターフェイス１５のリフレッシュ（書き直し）を行い（Ｓ４）、次にプログラムを実行する（Ｓ５）。つまり、プログラムを最初から最後まで１回実行する。プログラムを実行すれば通信サービス（Ｓ６）に移行する。一方、プログラムモードが選択されている場合には、機器インターフェイス１３のリフレッシュ（Ｓ４）とプログラムの実行（Ｓ５）とは行われず、ただちに通信サービス（Ｓ６）に移行する。実行モードとプログラムモードとのいずれにおいても、通信サービスが終了した後には動作モードの判定（Ｓ３）に戻る。
【００３５】
通信サービス（Ｓ６）では、実行モードかプログラムモードかにかかわらず、サービスインターフェイス１４に外部装置が接続されているか、または拡張インターフェイス１５に通信用のユニットを介して外部装置が接続されているかを判定し、接続されているときには外部装置と通信することにより命令の有無を確認し、命令があれば命令に応答する。命令の種類と命令に対する応答とについては後述する。プログラムモードにおける通信サービス（Ｓ６）では、外部装置が接続されていない場合でも、拡張インターフェイス１５に記憶用のユニットが接続されているかを確認し、接続されているときにはプログラムメモリ１１と記憶用のユニットとの間でのプログラムの転送を可能にする。
【００３６】
以下では、通信サービスにおいて、外部装置からの命令の有無を確認した後の動作について説明する。記憶用のユニットが接続されている場合の動作については後述する。通信サービスにおいては、外部装置と通信することにより命令の有無を確認し、命令が存在するときには当該命令を受け取って命令の内容を解析する。つまり、主処理部１０には命令を解析する命令解析部２１が設けられている。命令解析部２１はシステムプログラムを実行することにより実現される。
【００３７】
本実施形態では、外部装置からＰＬＣに与えられる命令の種類として、「プログラム読出」「プログラム書込」「データ読出」「データ書込」「プログラム読出禁止設定」「プログラム読出禁止解除」「プログラム書出」「プログラム読込」「パスワードプロテクト設定」「パスワードプロテクト解除」「暗号キー設定」の１１命令が用意されている。ただし、外部装置では、必ずしも１１命令のすべてを与えられなくてもよく、「プログラム読出」「プログラム書込」「データ読出」の３命令を含んでいればよい。また、上述した１１命令以外の命令を与えることができるように構成してもよい。
【００３８】
「プログラム読出」命令は、ＰＬＣのプログラムメモリ１１に格納されたプログラムを外部装置に転送させる命令であるが、本実施形態のＰＬＣでは、外部装置からの「プログラム読出」命令に対し、いかなる場合にもプログラムメモリ１１から外部装置へのプログラムの転送を禁止する。そのため、システムプログラムによって読出禁止処理部２２を実現している。読出禁止処理部２２では、外部装置から「プログラム読出」命令を受け取っても、外部装置に対して読出不可のメッセージを返す処理を行うだけであって他の処理を行わない。したがって、外部装置では「プログラム読出」命令をＰＬＣに与えると、読出不可のメッセージを受け取るのみであり、「プログラム読出」命令は実質的に無効になる。
【００３９】
上述のように「プログラム読出」命令は実質的に無効であるが、外部装置からプログラムメモリ１１にプログラムを書き込むための「プログラム書込」命令は実行される。命令解析部２１において「プログラム書込」命令が検出されると、まずプログラムメモリ１１の内容を消去する。その後、プログラム解析命令で指定されているプログラムの転送を外部装置に要求し、プログラムを転送させる。さらに、外部装置から転送されたプログラムをプログラムメモリ１１に書き込む。このように、プログラムメモリ１１の内容を一旦消去してからプログラムをプログラムメモリ１１に書き込むから、プログラムの不要な断片が残ることによる誤動作を防止できる。プログラムの書き込みが終了すれば、外部装置に対して書込終了のメッセージを通知する。
【００４０】
上述したように、ＰＬＣには外部装置として監視制御装置が接続可能であり、監視制御装置ではデータメモリ１２に一時記憶されるデータを読み出すことにより、ＰＬＣの動作状態や機器の動作状態を把握する。したがって、データは読み出しと書き込みとが自由にできるようにしてある。すなわち、データメモリ１２からデータを読み出すための「データ読出」命令を設けてあり、「データ読出」命令ではデータメモリ１２のどのデータを読み出すかを指定する。したがって、命令解析部２１において「データ読出」命令が検出されると、指定されたデータがデータメモリ１２から抽出され、当該データが外部装置に転送される。
【００４１】
一方、データメモリ１２にデータを書き込むための「データ書込」命令ではデータメモリ１２のどのデータを書き込むかを指定する。したがって、命令解析部２１で「データ書込」命令が検出されると、データメモリ１２における指定されたデータを書き換える。「プログラム書込」命令と同様に、データの書き込みが終了すれば、外部装置に対して終了のメッセージを通知する。このようにデータメモリ１２の特定のデータを指定してデータを変更することが可能であるから、種々データを用いてＰＬＣの動作を検査することが可能になる。
【００４２】
上述したように、本実施形態の読出禁止処理部２２では、外部装置から与えられる「プログラム読出」命令に対してメッセージを返すだけであって、実質的に何の処理も行わないから、プログラムの読み出しが禁止されることになる。したがって、外部装置によってプログラムが読み出されることが防止され、プログラムの保守性が高くなる。
【００４３】
（実施形態２）
実施形態１では、「プログラム読出」命令をどのような場合にも無視する構成としたが、本実施形態では、主処理部１０において、読出禁止処理部２２の有効と無効とを切り換えるための読出禁止フラグを格納するフラグ格納部１０ａ（図１参照）を設けている。読出禁止処理部２２は読出禁止フラグのセットによって有効になり、読出禁止フラグがセットされていなければ読出禁止処理部２２は無効になる。読出禁止処理部２２が無効であるとは「プログラム読出」命令が受け付けられることを意味する。また、読出禁止フラグがセットされ読出禁止処理部２２が有効になると「プログラム読出」命令が無視される。読出禁止フラグは初期状態ではセットされていないが、読出禁止フラグを一旦セットすると、以後は読出禁止フラグをリセットして元の状態に復帰させることはできなくなる。つまり、当初は読出禁止処理部２２は無効の状態であるが、読出禁止フラグをセットして読出禁止処理部２２が有効になる状態に切り換えると、以後は読出禁止処理部２２を無効にすることができなくなり、プログラムの読み出しが禁止される。言い換えると、読出禁止フラグはセットされていない状態からセットされた状態に不可逆的に変更が可能になっている。
【００４４】
上述のように読出禁止フラグをセットした後にはリセットすることができないように、読出禁止フラグの設定変更を一方向として逆方向の設定変更を禁止するには、逆方向の設定変更を許す機能を提供しなければよい。つまり、リセットのための命令を用意しなければよい。ただし、読出禁止フラグの逆方向への設定変更をさらに確実に防止する場合には、ワンタイムプログラマブルメモリのように１回だけ設定変更が可能なメモリを読出禁止フラグに用いる。読出禁止フラグの設定変更は、外部装置から「プログラム読出禁止設定」命令をＰＬＣに与えることにより行う。すなわち、命令解析部２１において「プログラム読出禁止設定」命令が検出されると、読出禁止フラグの設定をセットされていない状態からセットされた状態に変更し、読出禁止フラグがセットされたことを外部装置に通知する。
【００４５】
本実施形態では、上述したように、読出禁止処理部２２の有効と無効とを選択する読出禁止フラグを設けているから、命令解析部２１において「プログラム読出」命令が検出されたときには、読出禁止フラグがセットされているか否かを確認し、読出禁止フラグがセットされておらず読出禁止処理部２２が無効になっているときには、プログラムメモリ１１に格納されたプログラムを外部装置に転送する。一方、読出禁止フラグがセットされ読出禁止処理部２２が有効になっているときには、実施形態１と同様に、外部装置に対してプログラムの読出不可のメッセージを返す処理を行う。
【００４６】
本実施形態の構成では、プログラムを作成してプログラムメモリ１１に格納する提供者においては、読出禁止処理部２２の無効が読出禁止フラグにより選択されている状態でデバッグの終了したプログラムをＰＬＣから外部装置に読み込み、当該プログラムを他のＰＬＣに書き込むことができる。このように、読出禁止フラグをセットしていなければ、ＰＬＣにプログラムを読み書きすることについて制約条件がないから、プログラムの開発、テスト、デバッグの作業を容易に行うことができる。
【００４７】
デバッグの作業が終了した後に使用者に出荷する際には、読出禁止処理部２２を有効にするように読出禁止フラグをセットすることにより、使用者ではプログラムを読み出せなくなり、実施形態１と同様に使用者によるプログラムの読出を防止することができる。他の構成および動作は実施形態１と同様である。
【００４８】
（実施形態３）
実施形態２の構成では、読出禁止フラグのセットによりプログラムの読出を禁止する構成ではあるが、プログラムの書込については実施形態１と同様に許容されている。このようにプログラムの書込が許容されていることは、使用者によるプログラムの変更が可能であるということである。プログラムを作成しＰＬＣにプログラムをプログラムメモリ１１に格納する提供者は、一般にプログラムを管理しているが、使用者では必ずしもプログラムを管理しているとは限らないから、使用者により変更されたプログラムは再現できない場合がある。
【００４９】
このような事情に鑑みて、本実施形態では、プログラムメモリ１１からのプログラムの読出を禁止するだけではなく書込も禁止してある。すなわち、主処理部１０には読出禁止処理部２２だけではなく書込禁止処理部２３（図１参照）も設けてあり、書込禁止処理部２３の有効と無効とは読出禁止処理部２２と同様にフラグ格納部１０ａに格納される読出禁止フラグで選択する。ＰＬＣの未使用状態では読出禁止処理部２２と書込禁止処理部２３とはともに無効であって、「プログラム読出」命令と「プログラム書込」命令とはともに実行可能な状態になっている。一方、読出禁止フラグの設定変更がなされると、読出禁止処理部２２と書込禁止処理部２３とがともに有効になり、「プログラム読出」命令と「プログラム書込」命令とはともに無視される。
【００５０】
読出禁止フラグの設定変更は実施形態２と同様に外部装置からＰＬＣに適宜の命令（たとえば、プログラム読出禁止」命令）を与えることによって行ってもよいが、本実施形態では、命令を与えるのではなく、プログラムメモリ１１にプログラムを書き込むことによって読出禁止フラグの設定変更が自動的になされるように、主処理部１０において読出禁止フラグ変更処理部２４（図１参照）を設けている。読出禁止フラグ変更処理部２４では、命令解析部２１において「プログラム書込」命令を検出した後、プログラムメモリ１１へのプログラムの書き込みが正常終了すると、自動的に読出禁止フラグの設定変更を行う。したがって、プログラムメモリ１１に対してプログラムは１回だけ書き込みが可能であり、以後はプログラムを書き込むことも読み出すこともできなくなる。つまり、プログラムをプログラムメモリ１１に１回書き込めば、以後はプログラムの変更ができなくなる。
【００５１】
上述したように、読出禁止処理部２２および書込禁止処理部２３の有効と無効とを選択する読出禁止フラグを設定するから、命令解析部２１において「プログラム読出」命令が検出されたときには、実施形態２と同様に、読出禁止フラグの設定状態を確認するのであるが、プログラムメモリ１１にプログラムが書き込まれていれば読出禁止フラグは「プログラム読出」命令を無効にする状態になっているから、外部装置に対してプログラムの読出不可のメッセージを返す処理を行う。つまり、読出禁止フラグによって「プログラム読出」命令が有効であるときにはプログラムメモリ１１にプログラムが存在しない状態であるから、プログラムを外部装置によって読み出すことはできない。
【００５２】
一方、図３のように、命令解析部２１において「プログラム書込」命令が検出されると、読出禁止フラグの設定状態を確認し（Ｓ１１）、読出禁止フラグにより書込禁止処理部２３の不使用が選択されているときには、プログラムの書込を許可し、「プログラム書込」命令に続いて外部装置から転送されるプログラムをプログラムメモリ１１に書き込む（Ｓ１２）。プログラムの書込が正常に終了すれば、読出禁止フラグの設定変更を行い（Ｓ１３）、外部装置に対して終了のメッセージを通知する（Ｓ１４）。一方、プログラムメモリ１１にプログラムがすでに書き込まれているときには、読出禁止フラグがセットされて書込禁止処理部２３が有効になっているから、読出禁止フラグの設定状態を確認した後（Ｓ１１）、外部装置に対してプログラムの書込不可のメッセージを返す処理（Ｓ１５）を行う。
【００５３】
以上説明したように、本実施形態ではプログラムメモリ１１にプログラムを登録すると、以後はプログラムの読出と書込とができなくなるから、使用者によるプログラムの改変が禁止され、プログラムの管理が容易になる。他の構成および動作は実施形態２と同様である。
【００５４】
（実施形態４）
実施形態２、３では読出禁止フラグの設定を１回変更すると読出禁止フラグの設定を元に戻せないようにしているが、このような読出禁止フラグを実現するにはワンタイムプログラマブルメモリのような特別な構成が必要になる。そこで、本実施形態では、読出禁止フラグを不可逆に設定するのではなく、読出禁止フラグの可逆性を保っておき、読出禁止フラグを「プログラム読出」命令が無効である状態から有効である状態に変更したときに、プログラムメモリ１１からプログラムを消去することによって、プログラムの読み出しが禁止されるようにしてある。
【００５５】
すなわち、命令解析部２１において「プログラム読出禁止設定」命令が検出されたときには実施形態２と同様に読出禁止フラグの設定を「プログラム読出」命令が無効になるように変更するのであるが、「プログラム読出禁止設定解除」命令が検出されたときには、まずプログラムメモリ１１の内容を消去した後に、「プログラム読出」命令が有効になるように読出禁止フラグの設定を変更する。また、読出禁止フラグの設定を変更した後には外部装置に対して終了のメッセージを返す処理を行う。
【００５６】
本実施形態の構成では、「プログラム読出禁止設定」命令と「プログラム読出禁止設定解除」命令とを用いることにより読出禁止フラグを可逆的に変更することができるが、「プログラム読出禁止設定解除」命令を用いてプログラムの読み出しを可能にすると、プログラムメモリ１１からプログラムが消去されるから、プログラムを読み出すことができず、実質的に使用者によるプログラムの読み出しが禁止される。
【００５７】
本実施形態の構成を採用すれば、プログラムを作成しＰＬＣに搭載する提供者ではプログラムの書き込みと読み込しとを自由に行うことができ、その後、読出禁止フラグを設定してプログラムの読み出しを禁止すればプログラムを読み出すことはできなくなる。ただし、読出禁止フラグの設定は使用者であっても変更可能であって、プログラムの読み出しを可能にする状態に読出禁止フラグの設定を変更することは使用者にもできる。もっとも、上述のようにプログラムの読み出しを可能にするように読出禁止フラグを変更すると、プログラムメモリ１１からプログラムが消去されるから、使用者がプログラムを読み出すことはできない。つまり、「プログラム読出禁止設定解除」命令を用いるとＰＬＣをプログラムの搭載されていない初期状態に戻すことになる。
【００５８】
実施形態３のように、読出禁止フラグをセットすることにより「プログラム書込」命令を無効にすることができる場合でも、本実施形態のように読出禁止フラグのリセットを可能にしておけば、プログラムを何度でも書き込むことが可能であり、ＰＬＣにプログラムを搭載した後でもプログラムのデバッグのようなメンテナンスが可能になる。他の構成および動作は実施形態２と同様である。
【００５９】
（実施形態５）
実施形態２のように、読出禁止フラグがセットされることによりプログラムの読み出しが禁止され、かつプログラムの書き込みは許可されている場合には、使用者が「プログラム書込」命令を安易に使用してプログラムを書き込むと、使用者が書き込んだプログラムを提供者では把握できなくなることがあり、プログラムのメンテナンスができなくなることがある。一方、実施形態３のようにプログラムメモリ１１にプログラムを一旦書き込むと、以後はプログラムメモリ１１にプログラムを書き込むことができなくなる構成を採用すれば、使用者によるプログラムの改変を防止することができるが、提供者にとってもプログラムのメンテナンスができなくなるという不都合を生じることがある。また、実施形態４のように読出禁止フラグのセットとリセットとを可能にしながらも、読出禁止フラグのリセットによってプログラムが消去される構成を採用すると、誤操作によって読出禁止フラグをリセットするとＰＬＣを使用することができなくなる。
【００６０】
そこで、本実施形態では、実施形態２の構成において、「プログラム書込」命令にパスワードプロテクトの機能を付加している。また、必ずしも必要ではないが、「プログラム読出」命令についてもパスワードプロテクトの機能を付加している。パスワードプロテクトとは、パスワードを用いてプロテクトフラグのセットとリセットとを可能にし、プロテクトフラグがセットされているときには、プログラムの書き込みと読み出しとを禁止する機能を意味する。
【００６１】
すなわち、命令解析部２１において「プログラム読出」命令あるいは「プログラム書込」命令が検出されたときに、図４に示すように、まずプロテクトフラグがセットされているか否かを判断し（Ｓ２１）、プロテクトフラグがセットされていなければ、実施形態２と同様に動作する。要するに、「プログラム読出」命令に対してプロテクトフラグがセットされていなければ、読出禁止フラグがセットされているか否かが判定され（Ｓ２２）、読出禁止フラグがセットされていなければプログラムメモリ１１からプログラムが外部装置に転送される（Ｓ２３）。また、読出禁止フラグがセットされていると（Ｓ２２）、外部装置に対してプログラムの読出不可のメッセージを返す処理を行う（Ｓ２４）。「プログラム書込」命令に対しては読出禁止フラグの判断をしないから、プロテクトフラグがセットされていなければ、プログラムをプログラムメモリ１１に書き込んだ後に、外部装置に終了を通知する。一方、プロテクトフラグがセットされている場合には、「プログラム読出」命令と「プログラム書込」命令とのいずれにおいても読出不可あるいは書込不可の通知を外部装置に返す（Ｓ２４）。
【００６２】
要するに、プロテクトフラグによってプログラムの安易な書込を防止し、プログラムメモリ１１からのプログラムの読出に関してはプロテクトフラグと読出禁止フラグとにより二重に保護することになる。
【００６３】
ところで、プロテクトフラグは「パスワードプロテクト設定」命令を用いてセットし、「パスワードプロテクト解除」命令を用いてリセットする。すなわち、命令解析部２１において「パスワードプロテクト設定」命令が検出されると、主処理部１０では、プロテクトフラグをフラグ格納部１０ａ（図１参照）にセットする。次にプロテクトフラグの解除に用いるパスワードが自動的に発生し外部装置に転送される。その後、外部装置には終了が通知される。また、命令解析部２１において、「パスワードプロテクト解除」命令が検出されると、図５に示すように、パスワードの入力が促され（Ｓ３１）、入力したパスワードが一致する場合には（Ｓ３２）、プロテクトフラグがリセットされ（Ｓ３３）、また入力したパスワードが不一致の場合には、外部装置に対してプロテクトフラグのリセットができない旨が通知される（Ｓ３４）。
【００６４】
本実施形態では、提供者がパスワードを設定すれば、使用者はプロテクトフラグを安易に解除することができず、プロテクトフラグをセットしておけば、仮に使用者がパスワードを知ったとしてもプロテクトフラグを解除しなければプログラムメモリ１１へのプログラムの書込ができないから、誤操作によるプログラムの書込を禁止することができる。つまり、使用者がプログラムメモリ１１に格納されたプログラムを安易に書き換える可能性を低減し、また誤操作によってプログラムが破損する可能性を低減することができる。
【００６５】
本実施形態では、プロテクトフラグに関する機能を実施形態２の構成に付加しているが、実施形態４の構成にプロテクトフラグに関する機能を付加してもよい。
【００６６】
（実施形態６）
本実施形態では、図６に示すように、拡張インターフェイス１５に外部記憶装置として記憶用のユニット（以下、「メモリユニット」と呼ぶ）３１を接続することによって、プログラムメモリ１１に格納されたプログラムを他のＰＬＣに転送する動作について説明する。また、実施形態２ないし実施形態５の構成と同様に、ＰＬＣには読出禁止フラグが設定されるものとする。
【００６７】
メモリユニット３１は、ＰＬＣの器体３０に設けた拡張インターフェイス１５のコネクタ（図示せず）に着脱可能に装着される。メモリユニット３１をＰＬＣに装着した状態で、命令解析部２１において「プログラム書出」命令が検出されると、プログラムメモリ１１に格納されたプログラムがメモリユニット３１に転送される。ただし、「プログラム書出」命令が検出されたときに、ＰＬＣにメモリユニット３１が装着されていなければ、外部装置に対して書出不能のメッセージを返す処理を行う。上述のようにＰＬＣにプログラムの読み出しを禁止する読出禁止フラグが設定されていることを前提にしているから、「プログラム書出」命令により、プログラムメモリ１１からメモリユニット３１にプログラムが書き出された後、読出禁止フラグもメモリユニット３１に転送される。なお、実施形態５のようにプロテクトフラグが設定されているときにはプロテクトフラグも転送される。このようにしてプログラムおよび読出禁止フラグ（プロテクトフラグがある場合はプロテクトフラグも含む）をＰＬＣからメモリユニット３１に転送し終わると、終了のメッセージが外部装置に送られる。
【００６８】
「プログラム書出」命令は「プログラム読込」命令と対であって、メモリユニット３１がＰＬＣに装着された状態で「プログラム読込」命令が命令解析部２１において検出されると、メモリユニット３１に格納されたプログラムがＰＬＣのプログラムメモリ１１に転送される。「プログラム読込」命令が検出されたときに、当該ＰＬＣにメモリユニット３１が装着されていなければ、外部装置に対して読込不能のメッセージを返す処理を行う。「プログラム読込」命令によってメモリユニット３１からプログラムメモリ１１にプログラムが転送された後には、読出禁止フラグ（プロテクトフラグがある場合にはプロテクトフラグも）が転送され、終了のメッセージが外部装置に送られる。
【００６９】
上述したメモリユニット３１は、ＰＬＣとの間でプログラムおよび読出禁止フラグ（必要に応じてプロテクトフラグ）の受け渡しが可能であるが、メモリユニット３１は拡張インターフェイス１５に接続されるものであり、サービスインターフェイス１４に接続する外部装置とは、コネクタの形状だけではなくデータの伝送方式が異なるから、メモリユニット３１に書き出されたプログラムは普通には読み出すことができない。したがって、メモリユニット３１にプログラムを転送してもプログラムは保護される。
【００７０】
上述した構成により、プログラムを格納した１個のメモリユニット３１があれば、複数台のＰＬＣにプログラムを書き込むことが可能になる。また、ＰＬＣの使用者に対して提供者がプログラムを書き込んだメモリユニット３１を送付すれば、ＰＬＣに最新のプログラムを書き込むことができ、しかもメモリユニット３１からＰＬＣにプログラムを転送した後にはプログラムの読出を禁止する読出禁止フラグも転送されるから、プログラムのノウハウなどを保護しつつもプログラムのバージョンアップを容易に行うことができる。また、メモリユニット３１からＰＬＣにプログラムを転送する際に読出禁止フラグも転送されるから、提供者においてはメモリユニット３１からＰＬＣにプログラムを転送する試験をしてみれば、読出禁止フラグが正しく設定されているか否かを容易に確認することができる。
【００７１】
プログラムの読出を禁止する読出禁止フラグがＰＬＣにセットされていない場合であっても、メモリユニット３１にプログラムを書き出す際に外部装置からセットを指示することを可能とすれば、ＰＬＣに読出禁止フラグが設定されている場合と同様に、他のＰＬＣにおいてプログラムの読出を禁止することができる。なお、読出禁止フラグのセットは指定できるが、読出禁止フラグのリセットは指定できないようにしてある。
【００７２】
上述の構成例では、ＰＬＣにメモリユニット３１を接続し、「プログラム書出」命令を外部装置から与えると、ＰＬＣのプログラムがメモリユニット３１にいつでも転送されるから、プログラムが登録されたＰＬＣが１台あれば、当該ＰＬＣからメモリユニット３１にプログラムを書き出し、メモリユニット３１に格納されたプログラムを他のＰＬＣで読み込めば、複数台のＰＬＣに同じプログラムを転送することが可能になる。つまり、プログラムの読出に対する保護がなされているものの、プログラムの複製に対する保護がなされていない。そこで、複製を防止するためにＰＬＣにおいて読出禁止フラグが設定されているときに、メモリユニット３１への書き出しを禁止する構成を採用してもよい。
【００７３】
この構成を採用すれば、メモリユニット３１を用いても、あらかじめプログラムが書き込まれたＰＬＣからプログラムを読み出すことができないから、当該ＰＬＣからのプログラムの複製を防止することができる。ただし、この構成を採用してもメモリユニット３１にプログラムが書き込まれていれば、複数台のＰＬＣにプログラムを書き込むことができるから、複数台のＰＬＣへのプログラムの複製を完全に防止できるわけではない。
【００７４】
そこで、メモリユニット３１からＰＬＣにプログラムを転送する際に、プログラムの転送が終了した後にメモリユニット３１のプログラムを消去する構成を採用してもよい。プログラムの消去はＰＬＣからプログラムの書込を終了した旨の通知がなされたときに行われるようにしておけばよい。このように、メモリユニット３１からＰＬＣへのプログラムの転送を１回限りにすれば、１個のメモリユニット３１から複数台のＰＬＣにプログラムが転送されることはなく、プログラムの無制限な複製を防止することができる。なお、メモリユニット３１においてＰＬＣへのプログラムの転送回数を示すカウンタを内蔵しておけば、プログラムの転送を許容された所定回数（所定台数）だけ行うことも可能である。
【００７５】
ＰＬＣのプログラムメモリ１１に格納されたプログラムをメモリユニット３１を用いて他のＰＬＣに転送する場合であっても、上述した各種の技術を採用すれば、外部装置を用いることによっては、メモリユニット３１とＰＬＣとのいずれからもプログラムを読み出すことはできないが、十分な知識を有する使用者であれば、ＰＬＣからプログラムが転送されたメモリユニット３１を分解すればプログラムを読み出すことが可能になる場合がある。
【００７６】
そこで、ＰＬＣからメモリユニット３１にプログラムを転送する際に暗号化し、メモリユニット３１からＰＬＣにプログラムを転送する際には復号化するのが望ましい。そこで、主処理部１０には暗号化と復号化とを行う暗号化・復号化部２５を設ける。この構成を採用すれば、メモリユニット３１には暗号化されたプログラムが格納されるから、たとえメモリユニット１０を分解してもプログラムを容易には解読することができず、開発したプログラムをより確実に保護できる。
【００７７】
また、プログラムを格納したメモリユニット３１を標準品のＰＬＣに装着しても暗号化されたプログラムをＰＬＣで実行することはできず、専用のＰＬＣが必要であるから、提供者は暗号化および復号化の機能を備える専用のＰＬＣを提供することによりプログラムの開発費用を回収することが可能になる。また、使用者が暗号化されたプログラムを解読しようとしても時間がかかるから、暗号化していない場合よりもプログラムを確実に保護することができる。
【００７８】
上述の例では専用のＰＬＣを用いてプログラムの暗号化および復号化を行うことになるが、汎用のＰＬＣを用いても暗号キーを任意に設定可能とすれば、暗号キーの設定者以外にはプログラムの復号ができなくなるから、専用のＰＬＣを用いる場合と同様の機能を汎用のＰＬＣに与えることができる。すなわち、暗号キーを用いた暗号化と復号化とが可能になるようにシステムプログラムを変更して暗号化・復号化部２５を主処理部１０に設けておき、さらに外部装置から暗号キーを設定可能として、プログラムに暗号キーを埋め込んでおけば、暗号キーを知る者以外はＰＬＣからメモリユニット３１にプログラムを転送させることができないから、暗号キーを通知しなければ使用者によるプログラムの複製を防止することができる。他の構成および動作は上述した他の実施形態と同様である。
【００７９】
上述した例では拡張インターフェイス１５にメモリユニット３１を接続しているが、拡張インターフェイス１５にはメモリユニット３１ではなく他の外部記憶装置を接続してもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施形態を示すブロック図である。
【図２】同上の基本動作を示す動作説明図である。
【図３】実施形態３におけるプログラム書込命令に対する動作説明図である。
【図４】実施形態５におけるプログラム読出命令に対する動作説明図である。
【図５】実施形態５におけるパスワードプロテクト解除命令に対する動作説明図である。
【図６】本発明の実施形態を示す外観斜視図である。
【符号の説明】
【００８１】
１０  主処理部
１０ａ  フラグ格納部
１１  プログラムメモリ
１２  データメモリ
１３  機器インターフェイス
１４  サービスインターフェイス
１５  拡張インターフェイス
２１  命令解析部
２２  読出禁止処理部
２３  書込禁止処理部
２４  読出禁止フラグ変更処理部
２５  暗号化・復号化部
３０  器体
３１  メモリユニット（外部記憶装置）
【図１】
2006331130.tif 000003
【図２】
2006331130.tif 000004
【図３】
2006331130.tif 000005
【図４】
2006331130.tif 000006
【図５】
2006331130.tif 000007
【図６】
2006331130.tif 000008