(57)【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラのＣＰＵユニットであって、
少なくとも１つのプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントと、前記プログラム部品について予め設定され、前記プログラム部品が実行される順位を示す優先度とを記憶する対価ポイント記憶手段と、
前記ＣＰＵユニットにおいて、前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する限度ポイント記憶手段と、
前記限度ポイントの範囲内で、前記優先度に従って、実行することが可能な前記プログラム部品と実行することが不可能な前記プログラム部品とを判別する判別手段と、
前記判別手段が実行することが可能であると判別した前記プログラム部品を実行し、前記判別手段が実行することが不可であると判別した前記プログラム部品を実行しない実行管理手段と、
を備える、
ＣＰＵユニット。
【請求項２】
前記ＣＰＵユニットが実行するプログラムを記憶するプログラム記憶手段、
をさらに備え、
選択された前記プログラム部品は、前記プログラムからコールされる前記プログラム部品である、
請求項１に記載のＣＰＵユニット。
【請求項３】
前記限度ポイントは、ユーザが対価を払って購入したポイントを含む、
請求項１又は２に記載のＣＰＵユニット。
【請求項４】
前記判別手段は、選択された前記プログラム部品の組み合わせが変更されると、前記限度ポイントが、変更後の組み合わせに含まれる前記プログラム部品の前記対価ポイントの合計以上であるか否かを判別する、
請求項１から３のいずれか１項に記載のＣＰＵユニット。
【請求項５】
少なくとも１つのプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントと、前記プログラム部品について予め設定され、前記プログラム部品が実行される順位を示す優先度とを記憶する対価ポイント記憶手段と、
ＣＰＵユニットにおいて、前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する限度ポイント記憶手段と、
前記限度ポイントの範囲内で、前記優先度に従って、実行することが可能な前記プログラム部品と実行することが不可能な前記プログラム部品とを判別する判別手段と、
前記判別手段が実行することが可能であると判別した前記プログラム部品を実行し、前記判別手段が実行することが不可であると判別した前記プログラム部品を実行しない実行管理手段と、
を備えるＣＰＵユニットを有するプログラマブルロジックコントローラ。
【請求項６】
ＣＰＵユニットに、
前記ＣＰＵユニットにおいてプログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントの範囲内で、前記プログラム部品について予め設定された優先度に従って、実行することが可能な前記プログラム部品と実行することが不可能な前記プログラム部品とを判別させ、
実行することが可能な前記プログラム部品を実行させる、
プログラム。
【請求項７】
請求項１から４のいずれか１項に記載の前記ＣＰＵユニットと接続可能であるエンジニアリングツールであって、
前記限度ポイントと、前記対価ポイントとを記憶する記憶手段と、
前記ＣＰＵユニットの前記限度ポイント記憶手段が記憶する前記限度ポイントを、前記記憶手段が記憶する前記限度ポイントで更新し、前記ＣＰＵユニットの前記対価ポイント記憶手段が記憶する前記対価ポイントを、前記記憶手段が記憶する前記対価ポイントで更新する更新手段と、
を備えるエンジニアリングツール。
【請求項８】
前記記憶手段が記憶する前記限度ポイントは、ユーザによって追加される、
請求項７に記載のエンジニアリングツール。
【請求項９】
表示装置をさらに備え、
前記判別手段の前記プログラム部品の実行の可否の判別に応じて、前記実行管理手段の前記プログラム部品の実行の状況を、前記表示装置に表示する、
請求項７又は８に記載のエンジニアリングツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツールに関する。
【背景技術】
【０００２】
プログラマブルロジックコントローラは、ユーザが用途に応じて作成したプログラムを実行することで、制御対象の機器の動きを制御する。プログラムを一から作成することは、作成時間、作成スキル等を要する。プログラムの作成の支援のため、プログラマブルロジックコントローラのメーカーから、特定の機能を実現するため部品化されたソフトウェアであるプログラム部品が販売されている。【０００３】
このようなプログラム部品は、従来、複数のプログラム部品をセットにしたライブラリとして販売されることが多く、ユーザは、ライブラリを購入しなければならなかった。しかし、ユーザがライブラリに含まれているプログラム部品の一部しか必要としていない場合も多く、一部のプログラム部品だけを購入したいという要望があった。【０００４】
上述のような要望をかなえるため、特許文献１には、ユーザが、選択したプログラム部品だけを実行することができることが記載されている。特許文献１では、各プログラム部品には、期間単位で課金される額が決められている。ユーザは、選択したプログラム部品の課金額の合計を上回る度数の使用権を予め購入しておく。決められた期間が経過すると、ユーザが購入した使用権の度数から、ユーザが選択したプログラム部品の課金額に相当する度数が減算される。【０００５】
また、他の購入形態として、ユーザが予め購入したポイントを使用して、買い切り型のプログラム部品を購入することができる。プログラム部品の購入時には、プログラム部品の代金にユーザが保有するポイントが充当される。プログラム部品が買い切り型であるため、ユーザは、プログラム部品を使用した回数、及び、プログラム部品を使用した期間にかかわらず、プログラム部品を継続して使用することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２２１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の構成では、ユーザが購入した使用権の度数は期間の経過とともに消費される。従って、度数がゼロになるとプログラム部品を実行することができなくなる。このような事態を防止するため、特許文献１には、度数が一定値以下になった場合に、ユーザに警告を出すことが記載されている。このため、ユーザは警告が発生していないかを常時監視する必要がある。さらに、ユーザは度数がゼロになる前に適宜の度数の使用権を追加購入しなければならない。このように、警告の発生の監視、使用権の度々の購入という手間がかかることになり、ユーザにとって使い勝手がよいものではなかった。【０００８】
また、買い切り型のプログラム部品を購入した後で、プログラム部品の組み合わせを変更する場合、ユーザは新たに必要なプログラム部品を購入する必要がある。例えば、プログラム部品に試用期間が設けられており、試用期間内にプログラム部品の購入をキャンセルすると、購入時に使用したポイントが返還されることがある。ユーザはポイント返還請求の手続きをして、ポイントが返還された後に、返還されたポイントを新たに必要なプログラム部品の購入に充てることができる。この場合、ポイントが返還されるため、ユーザはポイントを無駄に使用することはない。しかし、ポイント返還請求の手続きがユーザにとって煩雑であり、ユーザにとって使い勝手がよいものではなかった。【０００９】
本発明は、上記実情に鑑みてなされたものであり、プログラマブルロジックコントローラが有料のプログラム部品を実行する場合に、プログラマブルロジックコントローラが保有するポイントの範囲内で自由に複数のプログラム部品を組み合わせることができ、ユーザにとっての利便性を高くすることを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明のプログラマブルロジックコントローラのＣＰＵユニットにおいて、対価ポイント記憶手段は、少なくとも１つのプログラム部品について、プログラム部品の実行に要求される対価を示す対価ポイントと、プログラム部品について予め設定され、プログラム部品が実行される順位を示す優先度とを記憶する。限度ポイント記憶手段は、ＣＰＵユニットにおいて、プログラム部品の実行が認められる限度を示すポイントであって、プログラム部品の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する。判別手段は、限度ポイントの範囲内で、優先度に従って、実行することが可能なプログラム部品と実行することが不可能なプログラム部品とを判別する。実行管理手段は、判別手段が実行することが可能であると判別したプログラム部品を実行し、判別手段が実行することが不可であると判別したプログラム部品を実行しない。
【発明の効果】
【００１１】
本発明のＣＰＵユニットは、限度ポイントの範囲内で、優先度に従って、実行することが可能なプログラム部品と実行することが不可能なプログラム部品とを判別し、実行することが可能であると判別したプログラム部品を実行する。よって、ユーザは、限度ポイントの範囲内で自由に複数のプログラム部品を組み合わせることができる。さらに、限度ポイントはプログラム部品の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される。このため、プログラム部品の組み合わせを変更した場合であっても、ポイント追加購入を行うことなく、プログラム部品の実行を継続することが可能である。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係るＣＰＵユニット、エンジニアリングツール及びポイント管理サーバのハードウェア構成を示すブロック図
【図２Ａ】実施の形態に係るＣＰＵユニット及びエンジニアリングツールの機能ブロック図
【図２Ｂ】実施の形態に係るユーザプログラムの構成の一例を示す図
【図３Ａ】実施の形態に係るエンジニアリングツールのプログラム記憶部の構成を示す図
【図３Ｂ】実施の形態に係るエンジニアリングツールのポイント記憶部に格納されるポイント管理テーブルのデータの一例を示す図
【図４】実施の形態に係るエンジニアリングツールのメニュー画面の一例を示す図
【図５】実施の形態に係る有料アプリケーションのダウンロード画面の一例を示す図
【図６Ａ】実施の形態に係るポイント管理メニューへのログイン画面の一例を示す図
【図６Ｂ】実施の形態に係るポイント管理のメイン画面の一例を示す図
【図６Ｃ】実施の形態に係るシリアルコード入力画面の一例を示す図
【図６Ｄ】実施の形態に係るポイント登録画面の一例を示す図
【図７Ａ】実施の形態に係るポイント割り当て画面の一例を示す図
【図７Ｂ】実施の形態に係るポイント書き込み画面の一例を示す図
【図７Ｃ】実施の形態に係るポイント確認画面の一例を示す図
【図８】実施の形態に係るポイント削除画面の一例を示す図
【図９】実施の形態に係るデータ書き込み画面の一例を示す図
【図１０】実施の形態に係るイニシャル処理のフローチャート
【図１１】実施の形態に係るプログラム実行処理のフローチャート
【図１２】変形例１に係る対価データに登録されるデータの一例を示す図
【図１３】変形例１に係る実行可否データに登録されるデータの一例を示す図
【図１４】変形例２に係るカテゴリテーブルに登録されるデータの一例を示す図
【図１５】変形例２に係る実行可否データに登録されるデータの一例を示す図
【発明を実施するための形態】
【００１３】
（実施の形態）
以下、本発明の実施の形態に係るプログラマブルロジックコントローラ（Programmable Logic Controller、以下、ＰＬＣと示す）１０００のＣＰＵ（Central Processing Unit）ユニット１００を説明する。
【００１４】
図１に示すように、ＰＬＣ１０００は、ＰＬＣ１０００全体を制御するＣＰＵユニット１００と、外部機器からの入力をＣＰＵユニット１００に供給する入力ユニット２００と、ＣＰＵユニット１００の出力を外部機器へ供給する出力ユニット３００とを含む。ＣＰＵユニット１００と入力ユニット２００と出力ユニット３００とは、フィールドバス４００を介して接続され、フィールドバス４００を介して通信を行う。また、図示していないが、ＣＰＵユニット１００と入力ユニット２００と出力ユニット３００とは、ベースユニットを介して電源ユニットに接続されており、電源ユニットから供給される電源によって動作する。ＰＬＣ１０００は、例えば、ファクトリーオートメーションの分野で使用される。
【００１５】
入力ユニット２００には、センサ、スイッチ等を含む検出器９０１が接続されている。例えば、検出器９０１がスイッチである場合、入力ユニット２００はスイッチのオン／オフを示す信号を、ＣＰＵユニット１００に供給する。出力ユニット３００には、アクチュエータ、表示灯等を含む被制御機器９０２が接続されている。例えば、被制御機器９０２が表示灯である場合、出力ユニット３００は、ＣＰＵユニット１００から供給されたオン／オフを示す制御信号を、表示灯に出力する。よって、表示灯が点灯／消灯する。
【００１６】
ＣＰＵユニット１００は、入力ユニット２００から供給されたオン／オフを示す信号に応じて、ＰＬＣ１０００のユーザが作成したプログラム（以下、ユーザプログラムと称することがある）の各命令を実行し、アクチュエータ、表示灯等を含む被制御機器９０２を制御する信号を出力ユニット３００に供給する。ＰＬＣ１０００のユーザは、例えば、ＰＬＣ１０００の管理者である。
【００１７】
ユーザプログラムは、特定の機能を実現するため、その機能が実装されたプログラム部品を呼び出して実行することがある。プログラム部品とは、部品化されたソフトウェアのことである。以下、ユーザプログラムからプログラム部品を呼び出して実行することをコールすると言うことがある。プログラム部品には、市販品であり、実行するために対価を、そのプログラム部品の作成元に支払わなければならない有料のプログラム部品（以下、有料プログラム部品と称する）と、ユーザ自身が作成したプログラム部品（以下、自作プログラム部品と称する）とが含まれている。ユーザ自身が作成した自作プログラム部品については、実行のための対価は不要である。
【００１８】
実施の形態において、有料プログラム部品の実行に関しては、下記のようなルールに従わなければならないものとする。有料プログラム部品を実行するための対価はポイント（以下、対価ポイントと称する）で表される。ＰＬＣ１０００のユーザは、ＣＰＵユニット１００が有料プログラム部品を実行することができるようにするため、少なくとも有料プログラム部品の対価を示す対価ポイントと同数のポイントを保有していなければならない。ユーザは、ポイントを保有するため、有料プログラム部品の対価ポイントに応じた金額を有料プログラム部品の作成元に支払って、ポイントを購入しなければならない。さらに、ユーザは、購入したポイントをＣＰＵユニット１００に登録する必要がある。また、ＣＰＵユニット１００が有料プログラム部品を実行するためには、有料プログラム部品の対価ポイントの合計以上のポイントが、ＣＰＵユニット１００が保有する保有ポイントとして、ＣＰＵユニット１００に登録されている必要がある。
【００１９】
ＣＰＵユニット１００は、プログラム部品の実行に際し、ＣＰＵユニット１００に登録されたポイントと、ユーザプログラムからコールする有料プログラム部品の価値を示すポイントとに応じて、有料プログラム部品を実行するか否かを判別する。
【００２０】
ユーザが購入し、ＣＰＵユニット１００に登録したポイントは、有料プログラム部品の実行回数、実行期間に応じて変動するものではない。ＣＰＵユニット１００は、コールする複数の有料プログラム部品の対価の合計が、保有するポイントを超えない限り、当該複数の有料プログラム部品を何度でも、無期限に実行することが可能である。
【００２１】
図１に示すように、ＣＰＵユニット１００は、ハードウェア構成として、各種データを記憶する記憶部１１０と、入力ユニット２００及び出力ユニット３００と通信するための通信部１２０と、ユーザの入力操作を受け付ける入力受付部１３０と、画像を表示装置に表示する表示部１４０と、ＣＰＵユニット１００全体を制御する演算部１５０と、エンジニアリングツール５００と通信するためのツール用通信部１６０とを含む。記憶部１１０と、通信部１２０と、入力受付部１３０と、表示部１４０と、ツール用通信部１６０とはいずれもバス１９０を介して演算部１５０に接続されており、演算部１５０と通信する。
【００２２】
記憶部１１０は、揮発性メモリ、不揮発性メモリを含む。記憶部１１０は、各種のプログラム、データを格納する。記憶部１１０は、演算部１５０が実行することにより後述の実行可否判別部１５２の機能を実現するためのプログラム００１と、演算部１５０が実行することにより後述の実行管理部１５３の機能を実現するためのプログラム００２とを格納する。記憶部１１０は、ＣＰＵユニット１００自体を識別する識別情報としてシリアルナンバーを記憶する。
【００２３】
ＣＰＵユニット１００には、後述のエンジニアリングツール５００からＣＰＵユニット１００に登録される保有ポイント情報が暗号化されたデータで供給される。このため、記憶部１１０は、暗号化されたデータを復号するための復号鍵が格納されている。
【００２４】
通信部１２０は、フィールドバス４００を介して、入力ユニット２００及び出力ユニット３００と通信するためのネットワークインタフェース回路を含む。通信部１２０は、入力ユニット２００から受信したデータを演算部１５０に出力し、演算部１５０から供給されたデータを出力ユニット３００に送信する。
【００２５】
入力受付部１３０は、ボタン、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号を演算部１５０に出力する。
【００２６】
表示部１４０は、インジケータランプ、ディスプレイ等の表示装置を含む。表示部１４０は、例えば、演算部１５０の制御に従ってインジケータランプを点灯／消灯し、演算部１５０から供給される信号に基づく画像をディスプレイに表示する。
【００２７】
演算部１５０は、ＭＰＵ（Micro Processing Unit）を含む。演算部１５０は、記憶部１１０に記憶される各種プログラムを実行して、ＣＰＵユニット１００の各種機能を実現する。
【００２８】
ツール用通信部１６０は、後述のエンジニアリングツール５００と通信ケーブル６００を介して通信するための通信インタフェースとを含む。ツール用通信部１６０は、エンジニアリングツール５００から受信したデータを演算部１５０に出力し、演算部１５０から供給されたデータをエンジニアリングツール５００に送信する。
【００２９】
図２Ａに示すように、ＣＰＵユニット１００は、機能的には、ユーザプログラムと各種ライブラリとを記憶するプログラム記憶部１１１と、ＣＰＵユニット１００が保有するポイント（以下、保有ポイント）を記憶するポイント記憶部１１２と、有料プログラム部品の実行可否を示す値を保持する実行可否フラグ１１３と、後述のエンジニアリングツール５００から供給された各種プログラムのファイルをプログラム記憶部１１１に書き込むファイル操作部１５１と、有料プログラム部品の実行可否を判別する実行可否判別部１５２と、有料プログラム部品の実行を管理する実行管理部１５３と、ＣＰＵユニット１００に割り当てられたポイントを保有ポイントとしてポイント記憶部１１２に書き込むポイント管理部１５４と、エンジニアリングツール５００と通信する通信インタフェース１６１とを含む。
【００３０】
プログラム記憶部１１１は、第１ライブラリファイル１０と、第２ライブラリファイル２０と、ユーザプログラムファイル３０とを記憶する。プログラム記憶部１１１は、図１に示す記憶部１１０により実現される。プログラム記憶部１１１は、本発明のプログラム記憶手段の一例である。
【００３１】
第１ライブラリファイル１０は、ファイルヘッダ１１と有料アプリケーション１２とを含む。ファイルヘッダ１１には、有料アプリケーション１２の実行に要求される対価ポイントの情報が含まれている。ファイルヘッダ１１は、本発明の対価ポイント記憶手段の一例である。有料アプリケーション１２は、ユーザプログラム３２からコールされる有料プログラム部品である。
【００３２】
第２ライブラリファイル２０は、ファイルヘッダ２１と無料アプリケーション２２とを含む。ファイルヘッダ２１には、第２ライブラリファイル２０内の無料アプリケーション２２に関する各種情報が含まれている。なお、第１ライブラリファイル１０のファイルヘッダ１１と異なり、ファイルヘッダ２１は対価ポイントの情報を含まない。無料アプリケーション２２はユーザが作成したアプリケーションであり、実行するための対価は不要だからである。無料アプリケーション２２は、ユーザプログラム３２からコールされる無料プログラム部品である。
【００３３】
ユーザプログラムファイル３０は、ファイルヘッダ３１と、ユーザが作成したユーザプログラム３２とを含む。ＰＬＣ１０００において、ユーザプログラム３２は次のように実行される。ＣＰＵユニット１００は、図２Ｂに示すようなユーザプログラム３２を先頭の命令から順次処理し、プログラム終了を示すＥＮＤ命令を読み込むとユーザプログラム３２の実行を終了し、次の周期で再びユーザプログラム３２の先頭の命令から順次処理する。
【００３４】
ポイント記憶部１１２は、ユーザが購入し、ＣＰＵユニット１００に割り当てたポイントである保有ポイントを記憶する。保有ポイントは、ＣＰＵユニット１００において有料アプリケーション１２の実行が認められる限度を示す。ポイント記憶部１１２は、図１に示す記憶部１１０により実現される。ポイント記憶部１１２は本発明の限度ポイント記憶手段の一例である。保有ポイントは本発明の限度ポイントの一例である。ＣＰＵユニット１００においては、ユーザプログラム３２がコールする有料アプリケーション１２の対価ポイントの合計が、ＣＰＵユニット１００が保有する保有ポイントを超えない場合に有料アプリケーション１２を実行することが可能である。ポイント記憶部１１２には、エンジニアリングツール５００から供給された保有ポイント情報が、ポイント管理部１５４により書き込まれる。保有ポイント情報は、ＣＰＵユニット１００に割り当てられた保有ポイントと、ＣＰＵユニット１００のシリアルナンバーとを含む。
【００３５】
実行可否フラグ１１３は、ＣＰＵユニット１００が有料アプリケーション１２を実行することが可能か否かを示すフラグ値を保持する。実行可否フラグ１１３は、図１に示す記憶部１１０により実現される。このフラグ値は、保有ポイントが、ユーザプログラム３２がコールする有料アプリケーション１２の対価ポイントの合計以上であるか否かに応じて決まる。図２Ａに示す実行可否フラグ１１３には、後述の実行可否判別部１５２により、実行可否を示すフラグ値がセットされる。
【００３６】
ファイル操作部１５１は、プログラム記憶部１１１への各種プログラムのファイルの書き込みを行う。ファイル操作部１５１は、図１に示す演算部１５０と、ツール用通信部１６０とにより実現される。ファイル操作部１５１は、エンジニアリングツール５００から供給された第１ライブラリファイル１０、第２ライブラリファイル２０、及びユーザプログラムファイル３０の全てあるいは一部をプログラム記憶部１１１に格納する。また、エンジニアリングツール５００からプログラム記憶部１１１内の指定されたファイルを削除するよう指示された場合、ファイル操作部１５１はプログラム記憶部１１１内の指定されたファイルを削除する。
【００３７】
図２Ａに示す実行可否判別部１５２は、ユーザプログラムファイル３０を解析し、ユーザプログラム３２がコールしている有料アプリケーション１２の対価ポイントの合計を求める。実行可否判別部１５２は、ポイント記憶部１１２が保持する保有ポイントが、求めた対価ポイントの合計以上であるか否かを判別し、判別の結果に応じて実行可否フラグ１１３に値をセットする。実行可否判別部１５２は、図１に示す演算部１５０が記憶部１１０のプログラム００１を実行することにより実現される。実行可否判別部１５２は、本発明の判別手段の一例である。
【００３８】
図２Ａに示す実行可否判別部１５２は、保有ポイントが、有料アプリケーション１２の対価ポイントの合計以上であると判別すると、有料アプリケーション１２の実行が可能であることを示す値を実行可否フラグ１１３にセットする。一方、実行可否判別部１５２は、ポイント記憶部１１２が保持する保有ポイントが、有料アプリケーション１２の対価ポイントの合計未満であると判別すると、有料アプリケーション１２の実行が不可であることを示す値を実行可否フラグ１１３にセットする。実施の形態においては、有料アプリケーション１２の実行が可能であると判別すると、実行可否判別部１５２は、実行可否フラグ１１３に、「実行可」を示す値である“１”をセットする。有料アプリケーション１２の実行が不可であると判別すると、実行可否判別部１５２は、実行可否フラグ１１３に、「実行不可」を示す値である“０”をセットする。
【００３９】
実行管理部１５３は、ユーザプログラム３２の実行時に、実行対象の命令が、有料アプリケーション１２をコールする命令である場合に、実行可否フラグ１１３にセットされている値に基づいて、有料アプリケーション１２を実行するか否かの制御を行う。実行管理部１５３は、図１に示す演算部１５０が記憶部１１０のプログラム００２を実行することにより実現される。実行管理部１５３は、本発明の実行管理手段の一例である。
【００４０】
図２Ａに示す実行管理部１５３は、例えば、有料アプリケーション１２がコールされ、実行可否フラグ１１３に「実行不可」を示す値である“０”がセットされている場合、有料アプリケーション１２の実行を制限する。よって、有料アプリケーション１２は実行されない。一方、実行可否フラグ１１３に「実行可」を示す値である“１”がセットされている場合、実行管理部１５３は、有料アプリケーション１２の実行を制限しない。
【００４１】
ポイント管理部１５４は、エンジニアリングツール５００から供給された保有ポイント情報をポイント記憶部１１２に書き込む。また、ポイント管理部１５４は、エンジニアリングツール５００から更新された保有ポイント情報が供給されると、ポイント記憶部１１２が保持するポイントを書き換える。
【００４２】
実施の形態においては、保有ポイント情報の改ざん防止のため、下記のように、エンジニアリングツール５００とＣＰＵユニット１００との間で、保有ポイント情報の受け渡しが行われる。エンジニアリングツール５００は、保有ポイント情報を暗号化し、暗号化したデータをＣＰＵユニット１００に供給する。ポイント管理部１５４は、エンジニアリングツール５００から供給された暗号化された保有ポイント情報をポイント記憶部１１２に格納する。保有ポイント情報は、ＣＰＵユニット１００のイニシャル処理時に復号される。また、ＣＰＵユニット１００は、エンジニアリングツール５００から、ポイント記憶部１１２の保有ポイント情報を要求されると、暗号化された保有ポイント情報をエンジニアリングツール５００に送信する。
【００４３】
通信インタフェース１６１は、エンジニアリングツール５００の通信インタフェース５２１と通信を行う。通信インタフェース１６１は、エンジニアリングツール５００から受信したデータをファイル操作部１５１又はポイント管理部１５４に出力する。通信インタフェース１６１は、図１に示すツール用通信部１６０により実現される。
【００４４】
次に、エンジニアリングツール５００及びポイント管理サーバ７００を説明する。エンジニアリングツール５００は、ＰＬＣ１０００に関わる開発、設定等を支援するツールであり、パーソナルコンピュータに専用のアプリケーションをインストールした装置である。図１に示すように、エンジニアリングツール５００は、通信ケーブル６００によりＣＰＵユニット１００に接続され、ＣＰＵユニット１００と通信する。
【００４５】
ユーザは、エンジニアリングツール５００を使用して、ＣＰＵユニット１００で実行するユーザプログラム３２を作成し、作成したユーザプログラム３２を図２Ａに示すＣＰＵユニット１００のプログラム記憶部１１１に書き込む。さらに、実施の形態においては、ユーザは、エンジニアリングツール５００を使用して、有料プログラム部品である有料アプリケーション１２を実行するために必要なポイントを購入し、購入したポイントを保有ポイントとしてＣＰＵユニット１００に登録することができる。さらに、ユーザは、エンジニアリングツール５００を使用して、有料プログラム部品である有料アプリケーション１２、自作プログラム部品である無料アプリケーション２２を、ＣＰＵユニット１００のプログラム記憶部１１１に書き込むことができる。
【００４６】
図１に示すポイント管理サーバ７００は、ＣＰＵユニット１００に登録されるポイントに関するデータを管理する。ポイント管理サーバ７００は、例えば、有料のプログラム部品の作成元におかれたコンピュータである。ポイント管理サーバ７００は、ネットワーク８００を介してエンジニアリングツール５００に接続され、エンジニアリングツール５００と通信する。ユーザは、エンジニアリングツール５００を介して、ポイント管理サーバ７００にアクセスし、ポイントの購入、ＣＰＵユニット１００へのポイントの割り当て等を行う。
【００４７】
エンジニアリングツール５００は、ハードウェア構成として、各種データを記憶する記憶部５１０と、ＣＰＵユニット１００と通信するための通信部５２０と、ユーザの入力操作を受け付ける入力受付部５３０と、画像をディスプレイに出力する表示部５４０と、エンジニアリングツール５００全体を制御する演算部５５０と、ポイント管理サーバ７００と通信するためのサーバ用通信部５６０とを含む。記憶部５１０と、通信部５２０と、入力受付部５３０と、表示部５４０と、サーバ用通信部５６０とはいずれもバス５９０を介して演算部５５０に接続されており、演算部５５０と通信する。
【００４８】
記憶部５１０は、揮発性メモリ、不揮発性メモリを含む。記憶部５１０は、各種のプログラム、データを格納する。記憶部５１０は、管理対象のＣＰＵユニット１００それぞれの識別情報であるシリアルナンバーを記憶する。
【００４９】
通信部５２０は、ネットワークインタフェース回路を含み、演算部５５０の制御に従って、通信ケーブル６００で接続されたＣＰＵユニット１００と通信する。例えば、通信部５２０は、演算部５５０の制御に従って、プログラムファイル、各種設定パラメータ等をＣＰＵユニット１００に送信する。入力受付部５３０は、マウス、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号を演算部５５０に出力する。表示部５４０は、ディスプレイを含み、演算部５５０から供給される信号に基づく画像をディスプレイに表示する。
【００５０】
演算部５５０は、ＣＰＵを含む。演算部５５０は、記憶部５１０に記憶される各種プログラムを実行して、エンジニアリングツール５００の各種機能を実現する。サーバ用通信部５６０は、後述のポイント管理サーバ７００とネットワーク８００を介して通信するための通信インタフェースを含む。
【００５１】
続いて、ポイント管理サーバ７００を説明する。ポイント管理サーバ７００は、ハードウェア構成として、各種データを記憶する記憶部７１０と、エンジニアリングツール５００と通信するための通信部７２０と、ポイント管理サーバ７００全体を制御する演算部７３０と、を含む。記憶部７１０と、通信部７２０とはいずれもバス７９０を介して演算部７３０に接続されており、演算部７３０と通信する。
【００５２】
記憶部７１０は、揮発性メモリ、不揮発性メモリを含む。記憶部７１０は、各種のプログラム、データを格納する。通信部７２０は、ネットワークインタフェース回路を含み、演算部７３０の制御に従って、ネットワーク８００を介してエンジニアリングツール５００と通信する。演算部７３０は、ＣＰＵを含む。演算部７３０は、記憶部７１０に記憶される各種プログラムを実行して、ポイント管理サーバ７００の各種機能を実現する。
【００５３】
実施の形態においては、ポイント管理サーバ７００は、エンジニアリングツール５００と協働して、エンジニアリングツール５００の各機能を実現する。
【００５４】
図２Ａに示すように、エンジニアリングツール５００は、機能的には、各種プログラムを記憶するプログラム記憶部５１１と、保有ポイントを記憶するポイント記憶部５１２と、ＣＰＵユニット１００と通信する通信インタフェース５２１と、各種プログラムのファイルをＣＰＵユニット１００に書き込むファイル操作部５５１と、保有ポイントを管理するポイント管理部５５２と、を含む。
【００５５】
プログラム記憶部５１１は、図３Ａに示すように、有料ライブラリファイル１と、自作ライブラリファイル２と、ユーザプログラムファイル３と、対価データ４とを記憶する。プログラム記憶部５１１は、図１に示す記憶部５１０により実現される。プログラム記憶部５１１は、本発明の記憶手段の一例である。
【００５６】
図３Ａに示す有料ライブラリファイル１は、有料プログラム部品である有料アプリケーション１２を含む。有料アプリケーション１２は、ユーザがエンジニアリングツール５００を介して、有料アプリケーション１２の提供サイトにおいてダウンロードしたものである。有料アプリケーション１２は、ＣＰＵユニット１００が実行可能な形式のプログラム部品であり、暗号化されたデータである。有料ライブラリファイル１には、ユーザプログラム３２からコールされない有料アプリケーション１２が含まれていてもよい。
【００５７】
自作ライブラリファイル２は、自作プログラム部品である無料アプリケーション２２を含む。無料アプリケーション２２は、エンジニアリングツール５００のプログラム作成機能によりユーザが作成したものである。このため無料アプリケーション２２の実行のための対価の支払いは不要である。ユーザプログラムファイル３は、ユーザが作成したユーザプログラム３２を含む。
【００５８】
対価データ４は、ユーザがダウンロードした有料アプリケーション１２それぞれの対価ポイントが既定されたデータを含む。対価データ４は、ユーザがエンジニアリングツール５００を介して、有料アプリケーション１２の提供サイトにおいてダウンロードしたものである。
【００５９】
図２Ａに示すポイント記憶部５１２は、図３Ｂに示すように、ポイントに関するデータを格納したポイント管理テーブル５１２０を含む。ポイント管理テーブル５１２０には、ユーザを特定するユーザＩＤと、ユーザが保有するポイントの合計と、ＣＰＵユニット１００のシリアルナンバーと、ＣＰＵユニット１００毎に割り当てられた保有ポイントと、が格納されている。ポイント記憶部５１２は、図１に示すポイント管理サーバ７００の記憶部７１０により実現される。ポイント記憶部５１２は、本発明の記憶手段の一例である。
【００６０】
通信インタフェース５２１は、ＣＰＵユニット１００の通信インタフェース１６１と通信を行う。通信インタフェース５２１は、ファイル操作部５５１から出力されたファイルをＣＰＵユニット１００に送信する。通信インタフェース５２１は、ポイント管理部５５２から出力された保有ポイント情報をＣＰＵユニット１００に送信する。通信インタフェース５２１は、図１に示すエンジニアリングツール５００の通信部５２０により実現される。
【００６１】
図２Ａに示すファイル操作部５５１は、ユーザの指示に従って、プログラム記憶部５１１に格納されている各種プログラムのファイルをＣＰＵユニット１００に書き込む。ファイル操作部５５１は、図１に示す通信部５２０と演算部５５０とにより実現される。
【００６２】
具体的には、ファイル操作部５５１は、図３Ａに示すプログラム記憶部５１１の対価データ４から、指定された有料アプリケーション１２の対価ポイントを読み出し、読み出した対価ポイントの情報を含めたファイルヘッダ１１を作成する。ファイル操作部５５１は、有料アプリケーション１２と、作成したファイルヘッダ１１とを含むファイルを、第１ライブラリファイル１０として、ＣＰＵユニット１００に送信するため通信インタフェース５２１に出力する。
【００６３】
また、ファイル操作部５５１は、無料アプリケーション２２に関する情報を含むファイルヘッダ２１を作成する。ファイル操作部５５１は、無料アプリケーション２２と、ファイルヘッダ２１とを含むファイルを、第２ライブラリファイル２０として、ＣＰＵユニット１００に送信するため通信インタフェース５２１に出力する。
【００６４】
また、ファイル操作部５５１は、ユーザプログラム３２がコールする有料プログラム部品である有料アプリケーション１２を特定するための情報を含むファイルヘッダ３１を作成する。ファイル操作部５５１は、ユーザプログラム３２と、作成したファイルヘッダ３１とを含むファイルを、ユーザプログラムファイル３０として、ＣＰＵユニット１００に送信するため通信インタフェース５２１に出力する。
【００６５】
図２Ａに示すポイント管理部５５２は、ユーザの指示に従って、ポイント記憶部５１２が記憶する保有ポイントを管理する。ポイント管理部５５２は、図１に示すエンジニアリングツール５００の通信部５２０及び演算部５５０と、ポイント管理サーバ７００の通信部７２０及び演算部７３０とにより実現される。ポイント管理部５５２は、本発明の更新手段の一例である。
【００６６】
ポイント管理部５５２が実現する機能は、（１）ポイント登録、（２）ポイント割り当て、（３）ポイント書き込み、（４）ポイント確認、（５）ポイント削除、である。以下、各機能を順番に説明する。
【００６７】
（ポイント登録）
ポイント管理部５５２は、ユーザが購入したポイントをユーザの購入済みポイントとしてポイント管理サーバ７００に登録する。ユーザは予め必要なポイントの購入に必要な金額を有料プログラム部品の作成元に支払っており、支払い時に、ユーザと購入したポイントとを識別するためのシリアルコードを取得しているものとする。ポイント管理部５５２は、ユーザを識別する情報と、ユーザが購入したポイントとを対応付けて、ポイント記憶部５１２に格納する。なお、（１）ポイント登録では、ＣＰＵユニット１００にポイントを書き込むことはできない。ＣＰＵユニット１００に対するポイントの書き込みは、後述の（３）ポイント書き込みで行う。
【００６８】
ユーザは、エンジニアリングツール５００を使用して、次のような手順でポイントを登録する。まず、ユーザは、図４に示すメニュー画面から、「ポイント管理画面へ」のボタンを押す。ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、図６Ａに示すユーザ認証を行うためのログイン画面を表示部５４０に表示する。ユーザは、ログイン画面上でユーザ名とパスワードとを入力する。
【００６９】
入力されたユーザ名とパスワードとは、エンジニアリングツール５００からポイント管理サーバ７００に送信される。ポイント管理サーバ７００は認証処理を行い、認証が成功した場合は、図６Ｂに示すポイント管理のメイン画面をエンジニアリングツール５００の表示部５４０に表示する。ユーザ認証後は、ポイント管理サーバ７００にアクセスした状態となり、エンジニアリングツール５００とポイント管理サーバ７００とは協働して下記の処理を行う。
【００７０】
ポイント登録のため、メイン画面上で、ユーザは「ポイント登録」のボタンを押す。ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は図６Ｃに示すシリアルコード入力画面を表示部５４０に表示する。ユーザはシリアルコード入力画面上で、ポイントの購入時に取得したシリアルコードを入力し、「ＯＫ」ボタンを押す。ユーザの操作に応答して、演算部５５０は、シリアルコードから特定される契約者名と購入済みのポイントとを要求するため、入力されたシリアルコードとユーザを識別するユーザＩＤとを、サーバ用通信部５６０を介して、ポイント管理サーバ７００に送信する。ポイント管理サーバ７００の演算部７３０は、受信したシリアルコードから特定される契約者名と購入済みポイントとをエンジニアリングツール５００に送信する。
【００７１】
エンジニアリングツール５００の演算部５５０は、ポイント管理サーバ７００から応答を受信すると、図６Ｄに示すようなポイント登録画面を表示部５４０に表示する。演算部５５０は、ポイント登録画面上において、ポイント管理サーバ７００から受信した契約者名と購入済みポイントとを表示する。ユーザが、ポイント登録画面上で、「登録」ボタンを押したものとする。ユーザの操作に応答して、演算部５５０は、シリアルコードとユーザを識別するユーザＩＤとを、サーバ用通信部５６０を介してポイント管理サーバ７００に送信する。ポイント管理サーバ７００の演算部７３０は、受信したシリアルコードから特定される購入済みのポイントと、ユーザＩＤとを対応付けて、図３Ｂに示すポイント記憶部５１２に格納する。
【００７２】
（ポイント割り当て）
また、ポイント管理部５５２は、ユーザの指示に従って、ＣＰＵユニット１００それぞれに保有ポイントを割り当てる。なお、（２）ポイント割り当てでは、ＣＰＵユニット１００にポイントを書き込むことはできない。ＣＰＵユニット１００に対するポイントの書き込みは、後述の（３）ポイント書き込みで行う。
【００７３】
ユーザが、ポイント登録を行った後、ポイント割り当て画面を開くため、図６Ｂに示すメイン画面で「ポイント割り当て」ボタンを押したものとする。ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、ユーザＩＤに対応付けられた購入済みのポイントを提示するようポイント管理サーバ７００に要求する。ポイント管理サーバ７００の演算部７３０は、ユーザＩＤに対応付けられた購入済みのポイントをポイント記憶部５１２から読み出し、読み出したポイントをエンジニアリングツール５００に送信する。エンジニアリングツール５００の演算部５５０は、図７Ａに示すようなポイント割り当て画面を表示部５４０に表示する。演算部５５０は、ポイント割り当て画面上において、ポイント管理サーバ７００から供給された購入済みのポイントと、ＰＬＣ一覧として、記憶部５１０に格納されているＣＰＵユニット１００のシリアルナンバーの一覧を表示する。
【００７４】
例えば、図３Ａに示す有料ライブラリファイル１に含まれる有料アプリケーション１２のうち、ＣＰＵユニット１００においてアプリケーション１００１と、アプリケーション１００２と、アプリケーション１００３とを実行すると仮定する。この場合、これらのアプリケーションを実行するために必要な対価ポイントの合計は、図３Ａに示す対価データ４に示すように、１００ポイントと５００ポイントと２００ポイントとを合算した８００ポイントとなる。この場合、ユーザは、少なくとも８００ポイントを購入し、図７Ａに示すポイント割り当て画面において、少なくとも８００ポイントを当該ＣＰＵユニット１００に割り当てる必要がある。ユーザが、各ＣＰＵユニット１００に割り当てるポイントを入力し、「登録」ボタンを押したものとする。
【００７５】
ユーザが「登録」ボタンを押下すると、エンジニアリングツール５００の演算部５５０は、各ＣＰＵユニット１００を識別するシリアルナンバーと、入力されたポイントとを、ユーザＩＤに対応づけて登録するようポイント管理サーバ７００に要求する。ポイント管理サーバ７００の演算部７３０は、図３Ｂに示すポイント記憶部５１２に、ＣＰＵユニット１００それぞれに割り当てられたポイントを格納する。
【００７６】
（ポイント書き込み）
ポイント管理部５５２は、ユーザが指定したＣＰＵユニット１００にポイントを書き込む。なお、ＣＰＵユニット１００へのポイントの書き込みは、エンジニアリングツール５００とポイントの書き込み対象のＣＰＵユニット１００とを通信ケーブル６００で接続した状態で行う必要がある。
【００７７】
エンジニアリングツール５００とポイントの書き込み対象のＣＰＵユニット１００とを通信ケーブル６００で接続した状態で、ユーザがポイント書き込み画面を開くため、図６Ｂに示すメイン画面で「ポイント書き込み」ボタンを押したものとする。
【００７８】
ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、ユーザＩＤに対応付けられたＣＰＵユニット毎の保有ポイントのデータをポイント管理サーバ７００に要求する。ポイント管理サーバ７００の演算部７３０は、ユーザＩＤに対応付けられたＣＰＵユニット１００毎のポイントのデータを図３Ｂに示すポイント管理テーブル５１２０から読み出し、読み出したデータをエンジニアリングツール５００に送信する。
【００７９】
エンジニアリングツール５００の演算部５５０は、ポイント管理サーバ７００から応答を受信すると、図７Ｂに示すようなポイント書き込み画面を表示部５４０に表示する。演算部５５０は、ポイント書き込み画面上において、ポイント管理サーバ７００から供給されたＣＰＵユニット１００毎の保有ポイントを表示する。ここで、ユーザが画面上でポイントの書き込み対象のＣＰＵユニット１００を有するＰＬＣ１０００を選択し、「実行」ボタンを押下したものとする。ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、指定されたＣＰＵユニット１００の識別情報であるシリアルナンバーと、ＣＰＵユニット１００に割り当てられたポイントと、を含む保有ポイント情報を暗号化し、暗号化したデータを図２Ａの通信インタフェース５２１を介して、ＣＰＵユニット１００に送信する。
【００８０】
ＣＰＵユニット１００のポイント管理部１５４として機能する演算部１５０は、通信インタフェース１６１を介してエンジニアリングツール５００から保有ポイント情報を受信すると、受信した保有ポイント情報をポイント記憶部１１２に格納する。
【００８１】
（ポイント確認）
ユーザがＣＰＵユニット１００に書き込まれたポイントを確認できるように、ポイント管理部５５２は、エンジニアリングツール５００に接続されているＣＰＵユニット１００の保有ポイントをＣＰＵユニット１００から読み出す。なお、ＣＰＵユニット１００のポイントの確認は、エンジニアリングツール５００とポイントの書き込み対象のＣＰＵユニット１００とを通信ケーブル６００で接続した状態で行う必要がある。
【００８２】
ユーザがエンジニアリングツール５００とＣＰＵユニット１００とを通信ケーブル６００で接続した状態で、図６Ｂに示すメイン画面から、「ポイント確認」ボタンを押したものとする。ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、通信インタフェース５２１を介して、ＣＰＵユニット１００に、保有ポイント情報を要求するコマンドを送信する。
【００８３】
ＣＰＵユニット１００の演算部１５０は、通信インタフェース１６１を介してエンジニアリングツール５００から保有ポイント情報を要求するコマンドを受信すると、ポイント記憶部１１２に格納されている保有ポイント情報を、通信インタフェース１６１を介してエンジニアリングツール５００に送信する。エンジニアリングツール５００の演算部５５０は、通信インタフェース５２１を介して、ＣＰＵユニット１００から保有ポイント情報を受信すると、受信した保有ポイント情報を復号し、復号したポイントとシリアルナンバーとを図７Ｃに示すようにポイント確認画面に表示する。
【００８４】
（ポイント削除）
ポイント管理部５５２は、ユーザから指示されると、エンジニアリングツール５００に接続されているＣＰＵユニット１００に書き込まれた保有ポイントを削除する。なお、ＣＰＵユニット１００のポイントの削除は、エンジニアリングツール５００とポイントの書き込み対象のＣＰＵユニット１００とを通信ケーブル６００で接続した状態で行う必要がある。
【００８５】
ユーザが、エンジニアリングツール５００とＣＰＵユニット１００とを通信ケーブル６００で接続した状態でポイント削除画面を開くため、図６Ｂに示すメイン画面から「ポイント削除」ボタンを押したものとする。
【００８６】
ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、通信インタフェース５２１を介して、ＣＰＵユニット１００に、保有ポイント情報を要求するコマンドを送信し、ＣＰＵユニット１００から、ポイント記憶部１１２に格納されている保有ポイント情報を取得する。エンジニアリングツール５００の演算部５５０は、図８に示すようなポイント削除画面を表示部５４０に表示する。演算部５５０は、ポイント削除画面上において、ポイントとシリアルナンバーとを表示する。ポイントとシリアルナンバーは、ポイント記憶部１１２の保有ポイント情報を復号することにより得られる。
【００８７】
ポイント削除画面上でユーザが、「はい」ボタンを押下すると、エンジニアリングツール５００の演算部５５０は、通信インタフェース５２１を介して、ＣＰＵユニット１００にポイントの削除を指示するコマンドを送信する。
【００８８】
ＣＰＵユニット１００の演算部１５０は、通信インタフェース１６１を介してエンジニアリングツール５００からポイントの削除を指示するコマンドを受信すると、ポイント記憶部１１２に格納する保有ポイント情報を削除する。さらに、演算部１５０は、保有ポイント情報の削除完了の通知を通信インタフェース１６１を介してエンジニアリングツール５００に送信する。
【００８９】
エンジニアリングツール５００の演算部５５０は、通信インタフェース５２１を介してＣＰＵユニット１００から保有ポイント情報の削除完了の通知を受信すると、該当するＣＰＵユニット１００のシリアルナンバーとともに、ポイントを削除した通知をポイント管理サーバ７００に送信する。
【００９０】
ポイント管理サーバ７００の演算部７３０は、ポイントの削除の通知をエンジニアリングツール５００から受信すると、図３Ｂに示すポイント記憶部５１２の対象のシリアルナンバーに割り当てられたポイントを削除する。演算部７３０は、例えば、対象のシリアルナンバーのポイントを“０”にしてもよい。以上が、ポイント管理部５５２が実現する機能である。
【００９１】
以下、ユーザプログラム３２の実行に先だって、ユーザが行うべき手順を説明する。まず、ユーザは、ユーザプログラム３２、必要な無料アプリケーション２２を作成する必要がある。このため、ユーザは、図４に示すエンジニアリングツール５００の「プログラムの作成」メニューでユーザプログラム３２を作成する。作成されたユーザプログラム３２は、図３Ａに示すプログラム記憶部５１１に格納される。さらに、ユーザは、必要に応じて、エンジニアリングツール５００で無料アプリケーション２２を作成する。作成された無料アプリケーション２２は、プログラム記憶部５１１に格納される。
【００９２】
ユーザプログラム３２が有料アプリケーション１２をコールする場合には、ユーザは有料アプリケーション１２をダウンロードする必要がある。このため、ユーザは、図４に示すエンジニアリングツール５００のメニュー画面から「有料アプリケーションのダウンロード」ボタンを押す。ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、有料アプリケーション１２の提供サイトにアクセスし、図５に示すような有料アプリケーションのダウンロード画面を表示部５４０に表示する。ユーザが、所望する有料アプリケーション１２を選択し、「ダウンロード」ボタンを押したものとする。ユーザの操作に応答して、演算部５５０は、有料アプリケーション１２をダウンロードし、有料アプリケーション１２をプログラム記憶部５１１に格納する。なお、ユーザは、ユーザプログラム３２からコールされない有料アプリケーション１２をエンジニアリングツール５００にダウンロードしても構わない。
【００９３】
さらに、ユーザは、有料ライブラリファイル１、自作ライブラリファイル２、ユーザプログラムファイル３をＣＰＵユニット１００に書き込む必要がある。このため、ユーザは、図４に示すエンジニアリングツール５００のメニュー画面から、「データ書き込み」ボタンを押す。ユーザの操作に応答して、エンジニアリングツール５００の演算部５５０は、図９に示すデータ書き込み画面を表示部５４０に表示する。ユーザは、データ書き込み画面上で、有料ライブラリファイル１、自作ライブラリファイル２、ユーザプログラムファイル３のうち所望するファイルを選択し、「実行」ボタンを押す。
【００９４】
ユーザが「実行」ボタンを押下すると、ファイル操作部５５１として機能するエンジニアリングツール５００の演算部５５０は、ユーザによって指定されたファイルを、通信インタフェース５２１を介してＣＰＵユニット１００に送信する。
【００９５】
図３Ａに示す有料ライブラリファイル１が選択された場合、演算部５５０は、対価データ４から読み出した有料アプリケーション１２の対価ポイントを含めたファイルヘッダ１１を作成する。演算部５５０は、有料ライブラリファイル１に、ファイルヘッダ１１を付加して、第１ライブラリファイル１０を作成し、第１ライブラリファイル１０をＣＰＵユニット１００に送信する。図２Ａに示すようにファイル操作部１５１として機能するＣＰＵユニット１００の演算部１５０は、受信した第１ライブラリファイル１０をプログラム記憶部１１１に格納する。
【００９６】
図３Ａに示す自作ライブラリファイル２が選択された場合、演算部５５０は、自作ライブラリファイル２にファイルヘッダ２１を付加した第２ライブラリファイル２０を作成する。演算部５５０は、第２ライブラリファイル２０をＣＰＵユニット１００に送信する。図２Ａに示すようにファイル操作部１５１として機能するＣＰＵユニット１００の演算部１５０は、受信した第２ライブラリファイル２０をプログラム記憶部１１１に格納する。
【００９７】
図３Ａに示すユーザプログラムファイル３が選択された場合、演算部５５０は、ユーザプログラムファイル３に適宜のファイルヘッダ３１を付加したユーザプログラムファイル３０を作成する。演算部５５０は、ユーザプログラムファイル３０をＣＰＵユニット１００に送信する。図２Ａに示すようにファイル操作部１５１として機能するＣＰＵユニット１００の演算部１５０は、受信したユーザプログラムファイル３０をプログラム記憶部１１１に格納する。
【００９８】
前述のように、ＣＰＵユニット１００に登録されている保有ポイントと、ユーザプログラム３２からコールされる有料アプリケーション１２の対価ポイントの合計との関係で、ＣＰＵユニット１００におけるユーザプログラム３２の実行が制限される。このため、ユーザは、上述したように、エンジニアリングツール５００を使用して、（１）ポイント登録、（２）ポイント割り当て、（３）ポイント書き込み、を行う必要がある。
【００９９】
以上が、ＣＰＵユニット１００において、ユーザプログラム３２の実行に先だってユーザが行うべき手順である。なお、上述の手順は一例であるため、一部の手順を省略、手順の入れ替えも可能である。
【０１００】
次に、演算部１５０が図２Ａに示す実行可否判別部１５２として機能し、ユーザプログラム３２からコールされる有料アプリケーション１２を実行することができるか否かを判別する実行可否の判別に係る処理を説明する。実行可否の判別に係る処理は、ＣＰＵユニット１００のイニシャル処理の一部として実行される。
【０１０１】
このため、ユーザは、ＣＰＵユニット１００の電源をオフした後、再度ＣＰＵユニット１００の電源をオンする必要がある。電源の再投入により、ＣＰＵユニット１００のファームウェアによるイニシャル処理を開始するためである。なお、プログラムの書き込みと、（１）ポイント登録、（２）ポイント割り当て、（３）ポイント書き込みについては既に行われているものとする。また、ポイント記憶部１１２には、８００ポイントが予め登録されているものとする。また、実行可否フラグ１１３には、デフォルトの「実行不可」を示す値である“０”がセットされているものとする。
【０１０２】
図１０を参照しながらＣＰＵユニット１００のイニシャル処理を説明する。演算部１５０は、ＣＰＵユニット１００の各種メモリを初期化する（ステップＳ１）。演算部１５０は、プログラム記憶部１１１に格納されているプログラムファイルをチェックする（ステップＳ２）。具体的には、演算部１５０は、第１ライブラリファイル１０、第２ライブラリファイル２０、ユーザプログラムファイル３０のうち、プログラム記憶部１１１に格納されているファイルが破損していないかをチェックする。
【０１０３】
演算部１５０は、ポイント記憶部１１２に保有ポイント情報が格納されているか否かを判別する（ステップＳ３）。ポイント記憶部１１２に保有ポイント情報が格納されていると判別すると（ステップＳ３；Ｙｅｓ）、演算部１５０は、保有ポイント情報を復号鍵で復号する（ステップＳ４）。
【０１０４】
演算部１５０は、保有ポイントが有効であるか否かを判別する（ステップＳ５）。具体的には、演算部１５０は、復号した保有ポイント情報に含まれているシリアルナンバーと、ＣＰＵユニット１００の記憶部１１０に格納されているシリアルナンバーとが一致する場合、保有ポイントが有効であると判別し（ステップＳ５；Ｙｅｓ）、ステップＳ６の処理を実行する。一方、演算部１５０は、復号した保有ポイント情報に含まれているシリアルナンバーと、ＣＰＵユニット１００の記憶部１１０に格納されているシリアルナンバーとが一致しない場合、保有ポイントが無効であると判別し（ステップＳ５；Ｎｏ）、イニシャル処理を終了する。このとき、演算部１５０は保有ポイントについてのエラーを表示部１４０に表示するようにしてもよい。
【０１０５】
また、ステップＳ３において、演算部１５０は、ポイント記憶部１１２に保有ポイント情報が格納されていないと判別すると（ステップＳ３；Ｎｏ）、ステップＳ４、Ｓ５の処理を実行せずに、ステップＳ６の処理を実行する。
【０１０６】
演算部１５０は、有料のライブラリファイルである第１ライブラリファイル１０が、プログラム記憶部１１１に格納されているか否かを判別する（ステップＳ６）。第１ライブラリファイル１０がプログラム記憶部１１１に格納されている場合（ステップＳ６；Ｙｅｓ）、演算部１５０は、有料のライブラリファイルである第１ライブラリファイル１０を復号する（ステップＳ７）。
【０１０７】
演算部１５０は、ユーザプログラム３２がコールする有料アプリケーション１２の対価ポイントの合計を求める（ステップＳ８）。具体的には、演算部１５０は、図２Ａのファイルヘッダ１１から、ユーザプログラム３２がコールする有料アプリケーション１２の対価ポイントを読み出し、対価ポイントの合計を求める。例えば、ユーザプログラム３２から、図２Ａに示すアプリケーション１００１と、アプリケーション１００２と、アプリケーション１００３とをコールしている場合、アプリケーション１００１の対価ポイントは１００ポイント、アプリケーション１００２の対価ポイントは５００ポイント、アプリケーション１００３の対価ポイントは２００ポイントであるので、対価ポイントの合計は、８００ポイントである。
【０１０８】
続いて、演算部１５０は、ステップＳ４で復号した保有ポイント情報に含まれている保有ポイントが、ステップＳ８で求めた有料アプリケーション１２の対価ポイントの合計以上であるか否かを判別する（ステップＳ９）。演算部１５０は、保有ポイントが、対価ポイントの合計以上であると判別すると（ステップＳ９；Ｙｅｓ）、演算部１５０は、実行可否フラグ１１３に「実行可」を示す値である“１”をセットする（ステップＳ１０）。例えば、保有ポイントが８００ポイントであり、ユーザプログラム３２がコールする有料アプリケーション１２の対価ポイントの合計が８００ポイントであるとすると、演算部１５０は、実行可否フラグ１１３に「実行可」を示す値である“１”をセットし、イニシャル処理を終了する。
【０１０９】
一方、保有ポイントが、対価ポイントの合計未満であると判別すると（ステップＳ９；Ｎｏ）、演算部１５０は、実行可否フラグ１１３に「実行不可」を示す値である“０”をセットし（ステップＳ１１）、イニシャル処理を終了する。例えば、保有ポイントが５００ポイントであり、ユーザプログラム３２がコールする有料アプリケーション１２の対価ポイントの合計が８００ポイントである場合には、演算部１５０は、保有ポイントが、対価ポイントの合計未満であると判別する。
【０１１０】
また、演算部１５０は、ステップＳ５で、保有ポイントが有効でないと判別すると（ステップＳ５；Ｎо）、イニシャル処理を終了する。この場合も、実行可否フラグ１１３の値は変更されずデフォルトのままである。このとき、演算部１５０は、例えば、表示部１４０のインジケータランプを点灯してユーザにエラーを通知してもよい。
【０１１１】
イニシャル処理が終了した後、演算部１５０は、ユーザプログラム３２の各命令を順次処理する。実施の形態においては、演算部１５０は、図１１に示すような手順でユーザプログラム３２の各命令を処理することで、実行管理部１５３として機能する。
【０１１２】
図１１に示すように、演算部１５０は、ＣＰＵユニット１００がＲＵＮ状態であるか否かを判別する（ステップＳ２１）。演算部１５０は、ＣＰＵユニット１００のＲＵＮスイッチがオンになっている場合、ＣＰＵユニット１００がＲＵＮ状態であると判別し（ステップＳ２１；Ｙｅｓ）、ステップＳ２２の処理を実行する。一方、ＲＵＮスイッチがオンになっていない場合、演算部１５０は、ＲＵＮ状態でないと判別し（ステップＳ２１；Ｎｏ）、プログラム実行処理を終了する。なお、ＲＵＮスイッチは、ＣＰＵユニット１００のハードスイッチであり、ユーザが手動で操作する。
【０１１３】
演算部１５０は、ステップＳ２２でユーザプログラム３２の次の命令を読み出す（ステップＳ２２）。例えば、イニシャル処理の直後のユーザプログラム３２の実行においては、ユーザプログラム３２の一番初めの命令が読み出される。
【０１１４】
演算部１５０は、ステップＳ２２で読み出した命令が第１ライブラリファイル１０の有料アプリケーション１２をコールする命令であるか否かを判別する（ステップＳ２３）。
【０１１５】
読み出した命令が第１ライブラリファイル１０の有料アプリケーション１２をコールする命令であると判別すると（ステップＳ２３；Ｙｅｓ）、演算部１５０は、実行可否フラグ１１３の値が「実行可」を示す値である“１”であるか否かを判別する（ステップＳ２４）。
【０１１６】
実行可否フラグ１１３の値が「実行可」を示す値である“１”であると判別すると（ステップＳ２４；Ｙｅｓ）、演算部１５０は、ステップＳ２２で読み出した命令で指定された有料アプリケーション１２をコールする（ステップＳ２５）。例えば、ステップＳ２２で読み出した命令が、図２Ａに示すアプリケーション１００２をコールする命令であれば、演算部１５０は、アプリケーション１００２をコールする。その後、演算部１５０は、ステップＳ２６の処理を実行する。
【０１１７】
ステップＳ２４において、実行可否フラグ１１３の値が「実行可」を示す値である“１”でない、即ち、実行可否フラグ１１３の値が「実行不可」を示す値である“０”である場合（ステップＳ２４；Ｎｏ）、演算部１５０は、ステップＳ２２で読み出した命令で指定された有料アプリケーション１２をコールせず、ステップＳ２６の処理を実行する。
【０１１８】
一方、ステップＳ２３において、演算部１５０は、ステップＳ２２で読み出した命令が有料アプリケーション１２をコールする命令でないと判別すると（ステップＳ２３；Ｎо）、当該命令を実行する（ステップＳ２７）。例えば、読み出した命令が無料アプリケーション２２をコールする命令である場合、演算部１５０は、無料アプリケーション２２をコールする。その後、演算部１５０は、ステップＳ２６の処理を実行する。
【０１１９】
ステップＳ２６において、演算部１５０は、次の命令がＥＮＤ命令であるか否かを判別する（ステップＳ２６）。演算部１５０は、読み出した命令がＥＮＤ命令であると判別すると（ステップＳ２６；Ｙｅｓ）、予め設定されたＥＮＤ命令における処理を実行し、その後、再びステップＳ２１からの処理を実行する。一方、ステップＳ２６において、演算部１５０は、読み出した命令がＥＮＤ命令でないと判別すると（ステップＳ２６；Ｎｏ）、再びステップＳ２２からの処理を実行する。
【０１２０】
以上説明したように、ＣＰＵユニット１００が、ユーザプログラム３２からコールされる有料アプリケーション１２の対価ポイントの合計以上の保有ポイントを有している場合、ＣＰＵユニット１００は、有料アプリケーション１２を実行することができる。一方、ＣＰＵユニット１００が、ユーザプログラム３２からコールされる有料アプリケーション１２の対価ポイントの合計以上の保有ポイントを有していない場合、ＣＰＵユニット１００は、いずれの有料アプリケーション１２も実行できない。そのため、ユーザプログラム３２の命令が有料アプリケーション１２をコールする命令である場合、ＣＰＵユニット１００は当該命令の実行をスキップする。
【０１２１】
実施の形態に係る構成においては、アプリケーションの実行回数、実行期間に応じて、保有ポイントが減らない。よって、ユーザは、プログラマブルロジックコントローラの稼動中に、保有ポイントの残数を監視しなくてもよい。また、保有ポイントが減らないため、ユーザは残数不足によりポイントを追加購入する必要がない。このように、選択したプログラム部品だけを使用できるにもかかわらず、ユーザにとって煩雑な作業を行う必要がなく、利便性が高い。また、ユーザは、購入した保有ポイントの範囲内であれば、有料アプリケーション１２を継続して実行することができる。このように、期間経過によって有料アプリケーション１２の実行ができなくなることがない。
【０１２２】
保有ポイントが、有料アプリケーション１２の対価ポイントの合計より少ない場合であっても、ユーザプログラム３２において有料アプリケーション１２のコール命令を実行しないだけであり、ＣＰＵユニット１００のユーザプログラム３２の実行が中断されることはない。
【０１２３】
さらに、保有ポイントの範囲内の対価ポイントの有料アプリケーション１２については、ＣＰＵユニット１００は無期限に有料アプリケーション１２を実行することができる。前述のように、実施の形態では、有料アプリケーション１２はファイル単位でＣＰＵユニット１００に書き込まれている。ユーザプログラム３２が修正され、コールされる有料アプリケーション１２の組み合わせが変更されても、コールされる有料アプリケーション１２の対価ポイントの合計が保有ポイントを超えない場合は、ＣＰＵユニット１００は、有料アプリケーション１２を実行することができる。この場合、ユーザはポイントを追加購入する必要がない。なお、有料アプリケーション１２の実行可否の判別に係る処理はイニシャル処理の一部として実行されるため、ユーザプログラム３２を修正した後、イニシャル処理を再度実行する必要がある。
【０１２４】
また、ユーザプログラム３２の修正、置き換え等に伴い、保有ポイントが不足することになった場合には、ユーザは、必要なポイントを追加購入し、ＣＰＵユニット１００に登録すればよい。
【０１２５】
なお、実施の形態においては、ＣＰＵユニット１００において、ユーザプログラム３２の実行の開始に先だってユーザが行うべき手順に、保有ポイントをＣＰＵユニット１００に書き込むことを述べたが、保有ポイントをＣＰＵユニット１００に一旦書き込んでしまえば、保有ポイントを変更、削除する必要がない間は、ポイントの書き込みの手順は不要である。
【０１２６】
また、エンジニアリングツール５００は、ＣＰＵユニット１００のポイント記憶部５１２からＣＰＵユニット１００に割り当てられた保有ポイントを読み出し、ユーザプログラム３２内でコールされる有料アプリケーション１２の対価ポイントの合計と保有ポイントとの差を、表示部５４０に表示するようにしてもよい。よって、ユーザは、有料アプリケーション１２がコールされたか否かを知ることができ、ポイントの追加購入、ユーザプログラム３２の修正等を行って、調整を行うことができる。
【０１２７】
実施の形態においては、ポイント記憶部１１２が保持する保有ポイントが、ユーザプログラム３２がコールしている有料アプリケーション１２の対価ポイントの合計以上である場合に、有料アプリケーション１２の実行が許可され、そうでない場合には、有料アプリケーション１２の実行が一切認められない例を説明した。しかしながら、有料アプリケーション１２の実行制限の構成は、これに限られない。
【０１２８】
（変形例１）
あるいは、図３Ａの対価データ４には、各有料アプリケーション１２の優先度を示す情報が付加されていてもよい。図１２に優先度を示す情報が付加された対価データ４ａに格納されるデータの例を示す。この場合、実行可否判別部１５２は、実行可否の判別に係る処理において、保有ポイントで認められる範囲で、対価データ４ａに格納された有料アプリケーション１２について、優先度の順で実行が可能であるか否かを判別する。例えば、図１２に示すように優先度が定義されており、保有ポイントが７００ポイントであるとする。この場合、実行可否判別部１５２は、保有ポイントの範囲内で、優先度に従って、アプリケーション１００２及び１００３を実行することが可能であると判別する。実行可否判別部１５２は、アプリケーション１００１、アプリケーション１００４、及びアプリケーション１００５を実行することができないと判別する。
【０１２９】
あるいは、保有ポイントが８００ポイントであるとする。この場合、実行可否判別部１５２は、保有ポイントの範囲内で、優先順位に従って、アプリケーション１００１〜１００３を実行することが可能であり、アプリケーション１００４及び１００５を実行することができないと判別する。さらに、実行可否判別部１５２は、実行可否を示す情報を、図１３に示すような実行可否データ１１３ａに格納してもよい。図１３では、保有ポイントが８００ポイントである場合に、実行可否データ１１３ａに格納された情報を示す。図１３では、アプリケーション１００１〜１００３を実行することが可能であることを示す情報が実行可否データ１１３ａに格納されている。実行管理部１５３は、実行可否データ１１３ａに格納された実行可否を示す情報に基づいて、有料アプリケーション１２を実行するか否かの制御を行う。この場合、図２Ａに示す実行可否フラグ１１３は不要である。
【０１３０】
（変形例２）
また、あるいは、有料アプリケーション１２にそれぞれ対価ポイントを設定するのではなく、アプリケーションをカテゴリで分別し、保有ポイント数に応じて、決められたカテゴリの有料アプリケーション１２を実行できるよう制御してもよい。図１４に、有料アプリケーション１２とカテゴリとの対応付けを示すデータを格納したカテゴリテーブル４ｂの例を示す。この場合、図３Ａに示す対価データ４は不要である。
【０１３１】
例えば、保有ポイントが５００ポイント以上であることが、カテゴリ１の有料アプリケーション１２の実行が許可される条件であるとする。保有ポイントが８００ポイント以上であることが、カテゴリ１及びカテゴリ２の有料アプリケーション１２の実行が許可される条件であるとする。保有ポイントを１２００ポイント以上であることが、カテゴリ１〜３の有料アプリケーション１２、即ち、全ての有料アプリケーション１２の実行が許可される条件であるとする。これらの条件を示すデータは、記憶部１１０に予め記憶されているものとする。ここで、保有ポイントが９００ポイントであると仮定する。この場合、実行可否判別部１５２は、実行可否の判別に係る処理において、カテゴリ１及びカテゴリ２の有料アプリケーション１２の実行が可能であると判別する。図１４に示すカテゴリから、アプリケーション１００２〜１００５の実行が可能である。実行可否判別部１５２は、実行可否を示す情報を、図１５に示すような実行可否データ１１３ｂに格納する。実行管理部１５３は、実行可否データ１１３ｂに格納された実行可否を示す情報に基づいて、有料アプリケーション１２を実行するか否かの制御を行う。この場合、図２Ａに示す実行可否フラグ１１３は不要である。
【０１３２】
実施の形態においては、ＰＬＣ１０００が１つのＣＰＵユニット１００を含む例を説明したが、ＰＬＣ１０００は、２以上のＣＰＵユニット１００を含んでいてもよい。このような場合であっても、図３Ｂに示すように、ＣＰＵユニット１００のシリアルナンバーに保有ポイントを割り当てているため問題ない。
【０１３３】
また、ＣＰＵユニット１００は、１台の情報処理装置上で動作する２以上の仮想マシン上で動作するものであってもよい。例えば、複数のＣＰＵユニット１００の内の１つが、ホストマシン上で動作し、他のＣＰＵユニットが仮想マシン上で動作する。この場合、ポイント記憶部５１２は、それぞれのＣＰＵユニット１００を識別する情報に、それぞれのＣＰＵユニット１００の保有ポイントを対応付けたデータを記憶すればよい。
【０１３４】
また、実施の形態では、プログラム、プログラム部品をファイル単位でＣＰＵユニット１００に書き込む例を説明した。しかしながらこれに限られない。例えば、ファイル操作部５５１が、ユーザプログラム３２を解析し、ユーザプログラム３２でコールされている有料アプリケーション１２だけをＣＰＵユニット１００に書き込むようにしてもよい。この場合、記憶部１１０の使用容量を無駄に増やすことがない。
【０１３５】
実施の形態においては、図１に示す演算部１５０は、ＭＰＵを有する例を説明したが、演算部１５０は、ＭＰＵに加え、特定用途向け集積回路であるＡＳＩＣ（Application Specific Integrated Circuit）を有していてもよい。演算部１５０は、さらにＦＰＧＡ（Field Programmable Gate Array）を有していてもよい。
【０１３６】
上述したように演算部１５０を実行可否判別部１５２として機能させるためのプログラムと、演算部１５０を実行管理部１５３として機能させるプログラムとを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
【０１３７】
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【０１３８】
１  有料ライブラリファイル、２  自作ライブラリファイル、３，３０  ユーザプログラムファイル、４，４ａ  対価データ、４ｂ  カテゴリテーブル、１０  第１ライブラリファイル、１１，２１，３１  ファイルヘッダ、１１１，５１１  プログラム記憶部、１２，２２  アプリケーション、２０  第２ライブラリファイル、３０，３０Ａ  ユーザプログラムファイル、３２  ユーザプログラム、１００  ＣＰＵユニット、１１０，５１０，７１０  記憶部、１１１  プログラム記憶部、１１２，５１２  ポイント記憶部、１１３  実行可否フラグ、１１３ａ，１１３ｂ  実行可否データ、１２０，５２０，７２０  通信部、１３０，５３０  入力受付部、１４０，５４０  表示部、１５０，５５０，７３０  演算部、１５１，５５１  ファイル操作部、１５２  実行可否判別部、１５３  実行管理部、１５４，５５２  ポイント管理部、１６０  ツール用通信部、１６１，５２１  通信インタフェース、１９０，５９０，７９０  バス、２００  入力ユニット、３００  出力ユニット、４００  フィールドバス、５００  エンジニアリングツール、５６０  サーバ用通信部、６００  通信ケーブル、７００  ポイント管理サーバ、８００  ネットワーク、９０１  検出器、９０２  被制御機器、１０００  プログラマブルロジックコントローラ、５１２０  ポイント管理テーブル
【要約】
プログラマブルロジックコントローラのＣＰＵユニット（１００）において、ポイント記憶部（１１２）は、ＣＰＵユニット（１００）において、有料アプリケーション（１２）の実行が認められる限度を示すポイントであって、有料アプリケーション（１２）の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される保有ポイントを記憶する。実行可否判別部（１５２）は、選択された有料アプリケーション（１２）の対価ポイントの合計が保有ポイント以下である場合、有料アプリケーション（１２）の実行が可能であると判別し、選択された有料アプリケーション（１２）の対価ポイントの合計が保有ポイントを超えている場合、有料アプリケーション（１２）の実行が不可能であると判別する。実行管理部（１５３）は、有料アプリケーション（１２）の実行が可能である場合、有料アプリケーション（１２）を実行する。【図１】
0006570801.tif 000002
【図２Ａ】
0006570801.tif 000003
【図２Ｂ】
0006570801.tif 000004
【図３Ａ】
0006570801.tif 000005
【図３Ｂ】
0006570801.tif 000006
【図４】
0006570801.tif 000007
【図５】
0006570801.tif 000008
【図６Ａ】
0006570801.tif 000009
【図６Ｂ】
0006570801.tif 000010
【図６Ｃ】
0006570801.tif 000011
【図６Ｄ】
0006570801.tif 000012
【図７Ａ】
0006570801.tif 000013
【図７Ｂ】
0006570801.tif 000014
【図７Ｃ】
0006570801.tif 000015
【図８】
0006570801.tif 000016
【図９】
0006570801.tif 000017
【図１０】
0006570801.tif 000018
【図１１】
0006570801.tif 000019
【図１２】
0006570801.tif 000020
【図１３】
0006570801.tif 000021
【図１４】
0006570801.tif 000022
【図１５】
0006570801.tif 000023