JP6570801B1 - Cpuユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツール - Google Patents

Cpuユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツール Download PDF

Info

Publication number
JP6570801B1
JP6570801B1 JP2019530227A JP2019530227A JP6570801B1 JP 6570801 B1 JP6570801 B1 JP 6570801B1 JP 2019530227 A JP2019530227 A JP 2019530227A JP 2019530227 A JP2019530227 A JP 2019530227A JP 6570801 B1 JP6570801 B1 JP 6570801B1
Authority
JP
Japan
Prior art keywords
unit
program
point
points
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019530227A
Other languages
English (en)
Other versions
JPWO2020070873A1 (ja
Inventor
美泰 長友
美泰 長友
智明 鎌倉
智明 鎌倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6570801B1 publication Critical patent/JP6570801B1/ja
Publication of JPWO2020070873A1 publication Critical patent/JPWO2020070873A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Programmable Controllers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

プログラマブルロジックコントローラのCPUユニット(100)において、ポイント記憶部(112)は、CPUユニット(100)において、有料アプリケーション(12)の実行が認められる限度を示すポイントであって、有料アプリケーション(12)の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される保有ポイントを記憶する。実行可否判別部(152)は、選択された有料アプリケーション(12)の対価ポイントの合計が保有ポイント以下である場合、有料アプリケーション(12)の実行が可能であると判別し、選択された有料アプリケーション(12)の対価ポイントの合計が保有ポイントを超えている場合、有料アプリケーション(12)の実行が不可能であると判別する。実行管理部(153)は、有料アプリケーション(12)の実行が可能である場合、有料アプリケーション(12)を実行する。

Description

本発明は、CPUユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツールに関する。
プログラマブルロジックコントローラは、ユーザが用途に応じて作成したプログラムを実行することで、制御対象の機器の動きを制御する。プログラムを一から作成することは、作成時間、作成スキル等を要する。プログラムの作成の支援のため、プログラマブルロジックコントローラのメーカーから、特定の機能を実現するため部品化されたソフトウェアであるプログラム部品が販売されている。
このようなプログラム部品は、従来、複数のプログラム部品をセットにしたライブラリとして販売されることが多く、ユーザは、ライブラリを購入しなければならなかった。しかし、ユーザがライブラリに含まれているプログラム部品の一部しか必要としていない場合も多く、一部のプログラム部品だけを購入したいという要望があった。
上述のような要望をかなえるため、特許文献1には、ユーザが、選択したプログラム部品だけを実行することができることが記載されている。特許文献1では、各プログラム部品には、期間単位で課金される額が決められている。ユーザは、選択したプログラム部品の課金額の合計を上回る度数の使用権を予め購入しておく。決められた期間が経過すると、ユーザが購入した使用権の度数から、ユーザが選択したプログラム部品の課金額に相当する度数が減算される。
また、他の購入形態として、ユーザが予め購入したポイントを使用して、買い切り型のプログラム部品を購入することができる。プログラム部品の購入時には、プログラム部品の代金にユーザが保有するポイントが充当される。プログラム部品が買い切り型であるため、ユーザは、プログラム部品を使用した回数、及び、プログラム部品を使用した期間にかかわらず、プログラム部品を継続して使用することができる。
特開2003−22143号公報
特許文献1の構成では、ユーザが購入した使用権の度数は期間の経過とともに消費される。従って、度数がゼロになるとプログラム部品を実行することができなくなる。このような事態を防止するため、特許文献1には、度数が一定値以下になった場合に、ユーザに警告を出すことが記載されている。このため、ユーザは警告が発生していないかを常時監視する必要がある。さらに、ユーザは度数がゼロになる前に適宜の度数の使用権を追加購入しなければならない。このように、警告の発生の監視、使用権の度々の購入という手間がかかることになり、ユーザにとって使い勝手がよいものではなかった。
また、買い切り型のプログラム部品を購入した後で、プログラム部品の組み合わせを変更する場合、ユーザは新たに必要なプログラム部品を購入する必要がある。例えば、プログラム部品に試用期間が設けられており、試用期間内にプログラム部品の購入をキャンセルすると、購入時に使用したポイントが返還されることがある。ユーザはポイント返還請求の手続きをして、ポイントが返還された後に、返還されたポイントを新たに必要なプログラム部品の購入に充てることができる。この場合、ポイントが返還されるため、ユーザはポイントを無駄に使用することはない。しかし、ポイント返還請求の手続きがユーザにとって煩雑であり、ユーザにとって使い勝手がよいものではなかった。
本発明は、上記実情に鑑みてなされたものであり、プログラマブルロジックコントローラが有料のプログラム部品を実行する場合に、プログラマブルロジックコントローラが保有するポイントの範囲内で自由に複数のプログラム部品を組み合わせることができ、ユーザにとっての利便性を高くすることを目的とする。
上記目的を達成するため、本発明のプログラマブルロジックコントローラのCPUユニットにおいて、対価ポイント記憶手段は、少なくとも1つのプログラム部品について、プログラム部品の実行に要求される対価を示す対価ポイントと、プログラム部品について予め設定され、プログラム部品が実行される順位を示す優先度とを記憶する。限度ポイント記憶手段は、CPUユニットにおいて、プログラム部品の実行が認められる限度を示すポイントであって、プログラム部品の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する。判別手段は、限度ポイントの範囲内で、優先度に従って、実行することが可能なプログラム部品と実行することが不可能なプログラム部品とを判別する。実行管理手段は、判別手段が実行することが可能であると判別したプログラム部品を実行し、判別手段が実行することが不可であると判別したプログラム部品を実行しない。
本発明のCPUユニットは、限度ポイントの範囲内で、優先度に従って、実行することが可能なプログラム部品と実行することが不可能なプログラム部品とを判別し、実行することが可能であると判別したプログラム部品を実行する。よって、ユーザは、限度ポイントの範囲内で自由に複数のプログラム部品を組み合わせることができる。さらに、限度ポイントはプログラム部品の実行回数、及び、プログラム部品の実行期間、にかかわらず維持される。このため、プログラム部品の組み合わせを変更した場合であっても、ポイント追加購入を行うことなく、プログラム部品の実行を継続することが可能である。
本発明の実施の形態に係るCPUユニット、エンジニアリングツール及びポイント管理サーバのハードウェア構成を示すブロック図 実施の形態に係るCPUユニット及びエンジニアリングツールの機能ブロック図 実施の形態に係るユーザプログラムの構成の一例を示す図 実施の形態に係るエンジニアリングツールのプログラム記憶部の構成を示す図 実施の形態に係るエンジニアリングツールのポイント記憶部に格納されるポイント管理テーブルのデータの一例を示す図 実施の形態に係るエンジニアリングツールのメニュー画面の一例を示す図 実施の形態に係る有料アプリケーションのダウンロード画面の一例を示す図 実施の形態に係るポイント管理メニューへのログイン画面の一例を示す図 実施の形態に係るポイント管理のメイン画面の一例を示す図 実施の形態に係るシリアルコード入力画面の一例を示す図 実施の形態に係るポイント登録画面の一例を示す図 実施の形態に係るポイント割り当て画面の一例を示す図 実施の形態に係るポイント書き込み画面の一例を示す図 実施の形態に係るポイント確認画面の一例を示す図 実施の形態に係るポイント削除画面の一例を示す図 実施の形態に係るデータ書き込み画面の一例を示す図 実施の形態に係るイニシャル処理のフローチャート 実施の形態に係るプログラム実行処理のフローチャート 変形例1に係る対価データに登録されるデータの一例を示す図 変形例1に係る実行可否データに登録されるデータの一例を示す図 変形例2に係るカテゴリテーブルに登録されるデータの一例を示す図 変形例2に係る実行可否データに登録されるデータの一例を示す図
(実施の形態)
以下、本発明の実施の形態に係るプログラマブルロジックコントローラ(Programmable Logic Controller、以下、PLCと示す)1000のCPU(Central Processing Unit)ユニット100を説明する。
図1に示すように、PLC1000は、PLC1000全体を制御するCPUユニット100と、外部機器からの入力をCPUユニット100に供給する入力ユニット200と、CPUユニット100の出力を外部機器へ供給する出力ユニット300とを含む。CPUユニット100と入力ユニット200と出力ユニット300とは、フィールドバス400を介して接続され、フィールドバス400を介して通信を行う。また、図示していないが、CPUユニット100と入力ユニット200と出力ユニット300とは、ベースユニットを介して電源ユニットに接続されており、電源ユニットから供給される電源によって動作する。PLC1000は、例えば、ファクトリーオートメーションの分野で使用される。
入力ユニット200には、センサ、スイッチ等を含む検出器901が接続されている。例えば、検出器901がスイッチである場合、入力ユニット200はスイッチのオン/オフを示す信号を、CPUユニット100に供給する。出力ユニット300には、アクチュエータ、表示灯等を含む被制御機器902が接続されている。例えば、被制御機器902が表示灯である場合、出力ユニット300は、CPUユニット100から供給されたオン/オフを示す制御信号を、表示灯に出力する。よって、表示灯が点灯/消灯する。
CPUユニット100は、入力ユニット200から供給されたオン/オフを示す信号に応じて、PLC1000のユーザが作成したプログラム(以下、ユーザプログラムと称することがある)の各命令を実行し、アクチュエータ、表示灯等を含む被制御機器902を制御する信号を出力ユニット300に供給する。PLC1000のユーザは、例えば、PLC1000の管理者である。
ユーザプログラムは、特定の機能を実現するため、その機能が実装されたプログラム部品を呼び出して実行することがある。プログラム部品とは、部品化されたソフトウェアのことである。以下、ユーザプログラムからプログラム部品を呼び出して実行することをコールすると言うことがある。プログラム部品には、市販品であり、実行するために対価を、そのプログラム部品の作成元に支払わなければならない有料のプログラム部品(以下、有料プログラム部品と称する)と、ユーザ自身が作成したプログラム部品(以下、自作プログラム部品と称する)とが含まれている。ユーザ自身が作成した自作プログラム部品については、実行のための対価は不要である。
実施の形態において、有料プログラム部品の実行に関しては、下記のようなルールに従わなければならないものとする。有料プログラム部品を実行するための対価はポイント(以下、対価ポイントと称する)で表される。PLC1000のユーザは、CPUユニット100が有料プログラム部品を実行することができるようにするため、少なくとも有料プログラム部品の対価を示す対価ポイントと同数のポイントを保有していなければならない。ユーザは、ポイントを保有するため、有料プログラム部品の対価ポイントに応じた金額を有料プログラム部品の作成元に支払って、ポイントを購入しなければならない。さらに、ユーザは、購入したポイントをCPUユニット100に登録する必要がある。また、CPUユニット100が有料プログラム部品を実行するためには、有料プログラム部品の対価ポイントの合計以上のポイントが、CPUユニット100が保有する保有ポイントとして、CPUユニット100に登録されている必要がある。
CPUユニット100は、プログラム部品の実行に際し、CPUユニット100に登録されたポイントと、ユーザプログラムからコールする有料プログラム部品の価値を示すポイントとに応じて、有料プログラム部品を実行するか否かを判別する。
ユーザが購入し、CPUユニット100に登録したポイントは、有料プログラム部品の実行回数、実行期間に応じて変動するものではない。CPUユニット100は、コールする複数の有料プログラム部品の対価の合計が、保有するポイントを超えない限り、当該複数の有料プログラム部品を何度でも、無期限に実行することが可能である。
図1に示すように、CPUユニット100は、ハードウェア構成として、各種データを記憶する記憶部110と、入力ユニット200及び出力ユニット300と通信するための通信部120と、ユーザの入力操作を受け付ける入力受付部130と、画像を表示装置に表示する表示部140と、CPUユニット100全体を制御する演算部150と、エンジニアリングツール500と通信するためのツール用通信部160とを含む。記憶部110と、通信部120と、入力受付部130と、表示部140と、ツール用通信部160とはいずれもバス190を介して演算部150に接続されており、演算部150と通信する。
記憶部110は、揮発性メモリ、不揮発性メモリを含む。記憶部110は、各種のプログラム、データを格納する。記憶部110は、演算部150が実行することにより後述の実行可否判別部152の機能を実現するためのプログラム001と、演算部150が実行することにより後述の実行管理部153の機能を実現するためのプログラム002とを格納する。記憶部110は、CPUユニット100自体を識別する識別情報としてシリアルナンバーを記憶する。
CPUユニット100には、後述のエンジニアリングツール500からCPUユニット100に登録される保有ポイント情報が暗号化されたデータで供給される。このため、記憶部110は、暗号化されたデータを復号するための復号鍵が格納されている。
通信部120は、フィールドバス400を介して、入力ユニット200及び出力ユニット300と通信するためのネットワークインタフェース回路を含む。通信部120は、入力ユニット200から受信したデータを演算部150に出力し、演算部150から供給されたデータを出力ユニット300に送信する。
入力受付部130は、ボタン、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号を演算部150に出力する。
表示部140は、インジケータランプ、ディスプレイ等の表示装置を含む。表示部140は、例えば、演算部150の制御に従ってインジケータランプを点灯/消灯し、演算部150から供給される信号に基づく画像をディスプレイに表示する。
演算部150は、MPU(Micro Processing Unit)を含む。演算部150は、記憶部110に記憶される各種プログラムを実行して、CPUユニット100の各種機能を実現する。
ツール用通信部160は、後述のエンジニアリングツール500と通信ケーブル600を介して通信するための通信インタフェースとを含む。ツール用通信部160は、エンジニアリングツール500から受信したデータを演算部150に出力し、演算部150から供給されたデータをエンジニアリングツール500に送信する。
図2Aに示すように、CPUユニット100は、機能的には、ユーザプログラムと各種ライブラリとを記憶するプログラム記憶部111と、CPUユニット100が保有するポイント(以下、保有ポイント)を記憶するポイント記憶部112と、有料プログラム部品の実行可否を示す値を保持する実行可否フラグ113と、後述のエンジニアリングツール500から供給された各種プログラムのファイルをプログラム記憶部111に書き込むファイル操作部151と、有料プログラム部品の実行可否を判別する実行可否判別部152と、有料プログラム部品の実行を管理する実行管理部153と、CPUユニット100に割り当てられたポイントを保有ポイントとしてポイント記憶部112に書き込むポイント管理部154と、エンジニアリングツール500と通信する通信インタフェース161とを含む。
プログラム記憶部111は、第1ライブラリファイル10と、第2ライブラリファイル20と、ユーザプログラムファイル30とを記憶する。プログラム記憶部111は、図1に示す記憶部110により実現される。プログラム記憶部111は、本発明のプログラム記憶手段の一例である。
第1ライブラリファイル10は、ファイルヘッダ11と有料アプリケーション12とを含む。ファイルヘッダ11には、有料アプリケーション12の実行に要求される対価ポイントの情報が含まれている。ファイルヘッダ11は、本発明の対価ポイント記憶手段の一例である。有料アプリケーション12は、ユーザプログラム32からコールされる有料プログラム部品である。
第2ライブラリファイル20は、ファイルヘッダ21と無料アプリケーション22とを含む。ファイルヘッダ21には、第2ライブラリファイル20内の無料アプリケーション22に関する各種情報が含まれている。なお、第1ライブラリファイル10のファイルヘッダ11と異なり、ファイルヘッダ21は対価ポイントの情報を含まない。無料アプリケーション22はユーザが作成したアプリケーションであり、実行するための対価は不要だからである。無料アプリケーション22は、ユーザプログラム32からコールされる無料プログラム部品である。
ユーザプログラムファイル30は、ファイルヘッダ31と、ユーザが作成したユーザプログラム32とを含む。PLC1000において、ユーザプログラム32は次のように実行される。CPUユニット100は、図2Bに示すようなユーザプログラム32を先頭の命令から順次処理し、プログラム終了を示すEND命令を読み込むとユーザプログラム32の実行を終了し、次の周期で再びユーザプログラム32の先頭の命令から順次処理する。
ポイント記憶部112は、ユーザが購入し、CPUユニット100に割り当てたポイントである保有ポイントを記憶する。保有ポイントは、CPUユニット100において有料アプリケーション12の実行が認められる限度を示す。ポイント記憶部112は、図1に示す記憶部110により実現される。ポイント記憶部112は本発明の限度ポイント記憶手段の一例である。保有ポイントは本発明の限度ポイントの一例である。CPUユニット100においては、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計が、CPUユニット100が保有する保有ポイントを超えない場合に有料アプリケーション12を実行することが可能である。ポイント記憶部112には、エンジニアリングツール500から供給された保有ポイント情報が、ポイント管理部154により書き込まれる。保有ポイント情報は、CPUユニット100に割り当てられた保有ポイントと、CPUユニット100のシリアルナンバーとを含む。
実行可否フラグ113は、CPUユニット100が有料アプリケーション12を実行することが可能か否かを示すフラグ値を保持する。実行可否フラグ113は、図1に示す記憶部110により実現される。このフラグ値は、保有ポイントが、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計以上であるか否かに応じて決まる。図2Aに示す実行可否フラグ113には、後述の実行可否判別部152により、実行可否を示すフラグ値がセットされる。
ファイル操作部151は、プログラム記憶部111への各種プログラムのファイルの書き込みを行う。ファイル操作部151は、図1に示す演算部150と、ツール用通信部160とにより実現される。ファイル操作部151は、エンジニアリングツール500から供給された第1ライブラリファイル10、第2ライブラリファイル20、及びユーザプログラムファイル30の全てあるいは一部をプログラム記憶部111に格納する。また、エンジニアリングツール500からプログラム記憶部111内の指定されたファイルを削除するよう指示された場合、ファイル操作部151はプログラム記憶部111内の指定されたファイルを削除する。
図2Aに示す実行可否判別部152は、ユーザプログラムファイル30を解析し、ユーザプログラム32がコールしている有料アプリケーション12の対価ポイントの合計を求める。実行可否判別部152は、ポイント記憶部112が保持する保有ポイントが、求めた対価ポイントの合計以上であるか否かを判別し、判別の結果に応じて実行可否フラグ113に値をセットする。実行可否判別部152は、図1に示す演算部150が記憶部110のプログラム001を実行することにより実現される。実行可否判別部152は、本発明の判別手段の一例である。
図2Aに示す実行可否判別部152は、保有ポイントが、有料アプリケーション12の対価ポイントの合計以上であると判別すると、有料アプリケーション12の実行が可能であることを示す値を実行可否フラグ113にセットする。一方、実行可否判別部152は、ポイント記憶部112が保持する保有ポイントが、有料アプリケーション12の対価ポイントの合計未満であると判別すると、有料アプリケーション12の実行が不可であることを示す値を実行可否フラグ113にセットする。実施の形態においては、有料アプリケーション12の実行が可能であると判別すると、実行可否判別部152は、実行可否フラグ113に、「実行可」を示す値である“1”をセットする。有料アプリケーション12の実行が不可であると判別すると、実行可否判別部152は、実行可否フラグ113に、「実行不可」を示す値である“0”をセットする。
実行管理部153は、ユーザプログラム32の実行時に、実行対象の命令が、有料アプリケーション12をコールする命令である場合に、実行可否フラグ113にセットされている値に基づいて、有料アプリケーション12を実行するか否かの制御を行う。実行管理部153は、図1に示す演算部150が記憶部110のプログラム002を実行することにより実現される。実行管理部153は、本発明の実行管理手段の一例である。
図2Aに示す実行管理部153は、例えば、有料アプリケーション12がコールされ、実行可否フラグ113に「実行不可」を示す値である“0”がセットされている場合、有料アプリケーション12の実行を制限する。よって、有料アプリケーション12は実行されない。一方、実行可否フラグ113に「実行可」を示す値である“1”がセットされている場合、実行管理部153は、有料アプリケーション12の実行を制限しない。
ポイント管理部154は、エンジニアリングツール500から供給された保有ポイント情報をポイント記憶部112に書き込む。また、ポイント管理部154は、エンジニアリングツール500から更新された保有ポイント情報が供給されると、ポイント記憶部112が保持するポイントを書き換える。
実施の形態においては、保有ポイント情報の改ざん防止のため、下記のように、エンジニアリングツール500とCPUユニット100との間で、保有ポイント情報の受け渡しが行われる。エンジニアリングツール500は、保有ポイント情報を暗号化し、暗号化したデータをCPUユニット100に供給する。ポイント管理部154は、エンジニアリングツール500から供給された暗号化された保有ポイント情報をポイント記憶部112に格納する。保有ポイント情報は、CPUユニット100のイニシャル処理時に復号される。また、CPUユニット100は、エンジニアリングツール500から、ポイント記憶部112の保有ポイント情報を要求されると、暗号化された保有ポイント情報をエンジニアリングツール500に送信する。
通信インタフェース161は、エンジニアリングツール500の通信インタフェース521と通信を行う。通信インタフェース161は、エンジニアリングツール500から受信したデータをファイル操作部151又はポイント管理部154に出力する。通信インタフェース161は、図1に示すツール用通信部160により実現される。
次に、エンジニアリングツール500及びポイント管理サーバ700を説明する。エンジニアリングツール500は、PLC1000に関わる開発、設定等を支援するツールであり、パーソナルコンピュータに専用のアプリケーションをインストールした装置である。図1に示すように、エンジニアリングツール500は、通信ケーブル600によりCPUユニット100に接続され、CPUユニット100と通信する。
ユーザは、エンジニアリングツール500を使用して、CPUユニット100で実行するユーザプログラム32を作成し、作成したユーザプログラム32を図2Aに示すCPUユニット100のプログラム記憶部111に書き込む。さらに、実施の形態においては、ユーザは、エンジニアリングツール500を使用して、有料プログラム部品である有料アプリケーション12を実行するために必要なポイントを購入し、購入したポイントを保有ポイントとしてCPUユニット100に登録することができる。さらに、ユーザは、エンジニアリングツール500を使用して、有料プログラム部品である有料アプリケーション12、自作プログラム部品である無料アプリケーション22を、CPUユニット100のプログラム記憶部111に書き込むことができる。
図1に示すポイント管理サーバ700は、CPUユニット100に登録されるポイントに関するデータを管理する。ポイント管理サーバ700は、例えば、有料のプログラム部品の作成元におかれたコンピュータである。ポイント管理サーバ700は、ネットワーク800を介してエンジニアリングツール500に接続され、エンジニアリングツール500と通信する。ユーザは、エンジニアリングツール500を介して、ポイント管理サーバ700にアクセスし、ポイントの購入、CPUユニット100へのポイントの割り当て等を行う。
エンジニアリングツール500は、ハードウェア構成として、各種データを記憶する記憶部510と、CPUユニット100と通信するための通信部520と、ユーザの入力操作を受け付ける入力受付部530と、画像をディスプレイに出力する表示部540と、エンジニアリングツール500全体を制御する演算部550と、ポイント管理サーバ700と通信するためのサーバ用通信部560とを含む。記憶部510と、通信部520と、入力受付部530と、表示部540と、サーバ用通信部560とはいずれもバス590を介して演算部550に接続されており、演算部550と通信する。
記憶部510は、揮発性メモリ、不揮発性メモリを含む。記憶部510は、各種のプログラム、データを格納する。記憶部510は、管理対象のCPUユニット100それぞれの識別情報であるシリアルナンバーを記憶する。
通信部520は、ネットワークインタフェース回路を含み、演算部550の制御に従って、通信ケーブル600で接続されたCPUユニット100と通信する。例えば、通信部520は、演算部550の制御に従って、プログラムファイル、各種設定パラメータ等をCPUユニット100に送信する。入力受付部530は、マウス、操作キー等を含み、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号を演算部550に出力する。表示部540は、ディスプレイを含み、演算部550から供給される信号に基づく画像をディスプレイに表示する。
演算部550は、CPUを含む。演算部550は、記憶部510に記憶される各種プログラムを実行して、エンジニアリングツール500の各種機能を実現する。サーバ用通信部560は、後述のポイント管理サーバ700とネットワーク800を介して通信するための通信インタフェースを含む。
続いて、ポイント管理サーバ700を説明する。ポイント管理サーバ700は、ハードウェア構成として、各種データを記憶する記憶部710と、エンジニアリングツール500と通信するための通信部720と、ポイント管理サーバ700全体を制御する演算部730と、を含む。記憶部710と、通信部720とはいずれもバス790を介して演算部730に接続されており、演算部730と通信する。
記憶部710は、揮発性メモリ、不揮発性メモリを含む。記憶部710は、各種のプログラム、データを格納する。通信部720は、ネットワークインタフェース回路を含み、演算部730の制御に従って、ネットワーク800を介してエンジニアリングツール500と通信する。演算部730は、CPUを含む。演算部730は、記憶部710に記憶される各種プログラムを実行して、ポイント管理サーバ700の各種機能を実現する。
実施の形態においては、ポイント管理サーバ700は、エンジニアリングツール500と協働して、エンジニアリングツール500の各機能を実現する。
図2Aに示すように、エンジニアリングツール500は、機能的には、各種プログラムを記憶するプログラム記憶部511と、保有ポイントを記憶するポイント記憶部512と、CPUユニット100と通信する通信インタフェース521と、各種プログラムのファイルをCPUユニット100に書き込むファイル操作部551と、保有ポイントを管理するポイント管理部552と、を含む。
プログラム記憶部511は、図3Aに示すように、有料ライブラリファイル1と、自作ライブラリファイル2と、ユーザプログラムファイル3と、対価データ4とを記憶する。プログラム記憶部511は、図1に示す記憶部510により実現される。プログラム記憶部511は、本発明の記憶手段の一例である。
図3Aに示す有料ライブラリファイル1は、有料プログラム部品である有料アプリケーション12を含む。有料アプリケーション12は、ユーザがエンジニアリングツール500を介して、有料アプリケーション12の提供サイトにおいてダウンロードしたものである。有料アプリケーション12は、CPUユニット100が実行可能な形式のプログラム部品であり、暗号化されたデータである。有料ライブラリファイル1には、ユーザプログラム32からコールされない有料アプリケーション12が含まれていてもよい。
自作ライブラリファイル2は、自作プログラム部品である無料アプリケーション22を含む。無料アプリケーション22は、エンジニアリングツール500のプログラム作成機能によりユーザが作成したものである。このため無料アプリケーション22の実行のための対価の支払いは不要である。ユーザプログラムファイル3は、ユーザが作成したユーザプログラム32を含む。
対価データ4は、ユーザがダウンロードした有料アプリケーション12それぞれの対価ポイントが既定されたデータを含む。対価データ4は、ユーザがエンジニアリングツール500を介して、有料アプリケーション12の提供サイトにおいてダウンロードしたものである。
図2Aに示すポイント記憶部512は、図3Bに示すように、ポイントに関するデータを格納したポイント管理テーブル5120を含む。ポイント管理テーブル5120には、ユーザを特定するユーザIDと、ユーザが保有するポイントの合計と、CPUユニット100のシリアルナンバーと、CPUユニット100毎に割り当てられた保有ポイントと、が格納されている。ポイント記憶部512は、図1に示すポイント管理サーバ700の記憶部710により実現される。ポイント記憶部512は、本発明の記憶手段の一例である。
通信インタフェース521は、CPUユニット100の通信インタフェース161と通信を行う。通信インタフェース521は、ファイル操作部551から出力されたファイルをCPUユニット100に送信する。通信インタフェース521は、ポイント管理部552から出力された保有ポイント情報をCPUユニット100に送信する。通信インタフェース521は、図1に示すエンジニアリングツール500の通信部520により実現される。
図2Aに示すファイル操作部551は、ユーザの指示に従って、プログラム記憶部511に格納されている各種プログラムのファイルをCPUユニット100に書き込む。ファイル操作部551は、図1に示す通信部520と演算部550とにより実現される。
具体的には、ファイル操作部551は、図3Aに示すプログラム記憶部511の対価データ4から、指定された有料アプリケーション12の対価ポイントを読み出し、読み出した対価ポイントの情報を含めたファイルヘッダ11を作成する。ファイル操作部551は、有料アプリケーション12と、作成したファイルヘッダ11とを含むファイルを、第1ライブラリファイル10として、CPUユニット100に送信するため通信インタフェース521に出力する。
また、ファイル操作部551は、無料アプリケーション22に関する情報を含むファイルヘッダ21を作成する。ファイル操作部551は、無料アプリケーション22と、ファイルヘッダ21とを含むファイルを、第2ライブラリファイル20として、CPUユニット100に送信するため通信インタフェース521に出力する。
また、ファイル操作部551は、ユーザプログラム32がコールする有料プログラム部品である有料アプリケーション12を特定するための情報を含むファイルヘッダ31を作成する。ファイル操作部551は、ユーザプログラム32と、作成したファイルヘッダ31とを含むファイルを、ユーザプログラムファイル30として、CPUユニット100に送信するため通信インタフェース521に出力する。
図2Aに示すポイント管理部552は、ユーザの指示に従って、ポイント記憶部512が記憶する保有ポイントを管理する。ポイント管理部552は、図1に示すエンジニアリングツール500の通信部520及び演算部550と、ポイント管理サーバ700の通信部720及び演算部730とにより実現される。ポイント管理部552は、本発明の更新手段の一例である。
ポイント管理部552が実現する機能は、(1)ポイント登録、(2)ポイント割り当て、(3)ポイント書き込み、(4)ポイント確認、(5)ポイント削除、である。以下、各機能を順番に説明する。
(ポイント登録)
ポイント管理部552は、ユーザが購入したポイントをユーザの購入済みポイントとしてポイント管理サーバ700に登録する。ユーザは予め必要なポイントの購入に必要な金額を有料プログラム部品の作成元に支払っており、支払い時に、ユーザと購入したポイントとを識別するためのシリアルコードを取得しているものとする。ポイント管理部552は、ユーザを識別する情報と、ユーザが購入したポイントとを対応付けて、ポイント記憶部512に格納する。なお、(1)ポイント登録では、CPUユニット100にポイントを書き込むことはできない。CPUユニット100に対するポイントの書き込みは、後述の(3)ポイント書き込みで行う。
ユーザは、エンジニアリングツール500を使用して、次のような手順でポイントを登録する。まず、ユーザは、図4に示すメニュー画面から、「ポイント管理画面へ」のボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、図6Aに示すユーザ認証を行うためのログイン画面を表示部540に表示する。ユーザは、ログイン画面上でユーザ名とパスワードとを入力する。
入力されたユーザ名とパスワードとは、エンジニアリングツール500からポイント管理サーバ700に送信される。ポイント管理サーバ700は認証処理を行い、認証が成功した場合は、図6Bに示すポイント管理のメイン画面をエンジニアリングツール500の表示部540に表示する。ユーザ認証後は、ポイント管理サーバ700にアクセスした状態となり、エンジニアリングツール500とポイント管理サーバ700とは協働して下記の処理を行う。
ポイント登録のため、メイン画面上で、ユーザは「ポイント登録」のボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は図6Cに示すシリアルコード入力画面を表示部540に表示する。ユーザはシリアルコード入力画面上で、ポイントの購入時に取得したシリアルコードを入力し、「OK」ボタンを押す。ユーザの操作に応答して、演算部550は、シリアルコードから特定される契約者名と購入済みのポイントとを要求するため、入力されたシリアルコードとユーザを識別するユーザIDとを、サーバ用通信部560を介して、ポイント管理サーバ700に送信する。ポイント管理サーバ700の演算部730は、受信したシリアルコードから特定される契約者名と購入済みポイントとをエンジニアリングツール500に送信する。
エンジニアリングツール500の演算部550は、ポイント管理サーバ700から応答を受信すると、図6Dに示すようなポイント登録画面を表示部540に表示する。演算部550は、ポイント登録画面上において、ポイント管理サーバ700から受信した契約者名と購入済みポイントとを表示する。ユーザが、ポイント登録画面上で、「登録」ボタンを押したものとする。ユーザの操作に応答して、演算部550は、シリアルコードとユーザを識別するユーザIDとを、サーバ用通信部560を介してポイント管理サーバ700に送信する。ポイント管理サーバ700の演算部730は、受信したシリアルコードから特定される購入済みのポイントと、ユーザIDとを対応付けて、図3Bに示すポイント記憶部512に格納する。
(ポイント割り当て)
また、ポイント管理部552は、ユーザの指示に従って、CPUユニット100それぞれに保有ポイントを割り当てる。なお、(2)ポイント割り当てでは、CPUユニット100にポイントを書き込むことはできない。CPUユニット100に対するポイントの書き込みは、後述の(3)ポイント書き込みで行う。
ユーザが、ポイント登録を行った後、ポイント割り当て画面を開くため、図6Bに示すメイン画面で「ポイント割り当て」ボタンを押したものとする。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、ユーザIDに対応付けられた購入済みのポイントを提示するようポイント管理サーバ700に要求する。ポイント管理サーバ700の演算部730は、ユーザIDに対応付けられた購入済みのポイントをポイント記憶部512から読み出し、読み出したポイントをエンジニアリングツール500に送信する。エンジニアリングツール500の演算部550は、図7Aに示すようなポイント割り当て画面を表示部540に表示する。演算部550は、ポイント割り当て画面上において、ポイント管理サーバ700から供給された購入済みのポイントと、PLC一覧として、記憶部510に格納されているCPUユニット100のシリアルナンバーの一覧を表示する。
例えば、図3Aに示す有料ライブラリファイル1に含まれる有料アプリケーション12のうち、CPUユニット100においてアプリケーション1001と、アプリケーション1002と、アプリケーション1003とを実行すると仮定する。この場合、これらのアプリケーションを実行するために必要な対価ポイントの合計は、図3Aに示す対価データ4に示すように、100ポイントと500ポイントと200ポイントとを合算した800ポイントとなる。この場合、ユーザは、少なくとも800ポイントを購入し、図7Aに示すポイント割り当て画面において、少なくとも800ポイントを当該CPUユニット100に割り当てる必要がある。ユーザが、各CPUユニット100に割り当てるポイントを入力し、「登録」ボタンを押したものとする。
ユーザが「登録」ボタンを押下すると、エンジニアリングツール500の演算部550は、各CPUユニット100を識別するシリアルナンバーと、入力されたポイントとを、ユーザIDに対応づけて登録するようポイント管理サーバ700に要求する。ポイント管理サーバ700の演算部730は、図3Bに示すポイント記憶部512に、CPUユニット100それぞれに割り当てられたポイントを格納する。
(ポイント書き込み)
ポイント管理部552は、ユーザが指定したCPUユニット100にポイントを書き込む。なお、CPUユニット100へのポイントの書き込みは、エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で行う必要がある。
エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で、ユーザがポイント書き込み画面を開くため、図6Bに示すメイン画面で「ポイント書き込み」ボタンを押したものとする。
ユーザの操作に応答して、エンジニアリングツール500の演算部550は、ユーザIDに対応付けられたCPUユニット毎の保有ポイントのデータをポイント管理サーバ700に要求する。ポイント管理サーバ700の演算部730は、ユーザIDに対応付けられたCPUユニット100毎のポイントのデータを図3Bに示すポイント管理テーブル5120から読み出し、読み出したデータをエンジニアリングツール500に送信する。
エンジニアリングツール500の演算部550は、ポイント管理サーバ700から応答を受信すると、図7Bに示すようなポイント書き込み画面を表示部540に表示する。演算部550は、ポイント書き込み画面上において、ポイント管理サーバ700から供給されたCPUユニット100毎の保有ポイントを表示する。ここで、ユーザが画面上でポイントの書き込み対象のCPUユニット100を有するPLC1000を選択し、「実行」ボタンを押下したものとする。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、指定されたCPUユニット100の識別情報であるシリアルナンバーと、CPUユニット100に割り当てられたポイントと、を含む保有ポイント情報を暗号化し、暗号化したデータを図2Aの通信インタフェース521を介して、CPUユニット100に送信する。
CPUユニット100のポイント管理部154として機能する演算部150は、通信インタフェース161を介してエンジニアリングツール500から保有ポイント情報を受信すると、受信した保有ポイント情報をポイント記憶部112に格納する。
(ポイント確認)
ユーザがCPUユニット100に書き込まれたポイントを確認できるように、ポイント管理部552は、エンジニアリングツール500に接続されているCPUユニット100の保有ポイントをCPUユニット100から読み出す。なお、CPUユニット100のポイントの確認は、エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で行う必要がある。
ユーザがエンジニアリングツール500とCPUユニット100とを通信ケーブル600で接続した状態で、図6Bに示すメイン画面から、「ポイント確認」ボタンを押したものとする。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100に、保有ポイント情報を要求するコマンドを送信する。
CPUユニット100の演算部150は、通信インタフェース161を介してエンジニアリングツール500から保有ポイント情報を要求するコマンドを受信すると、ポイント記憶部112に格納されている保有ポイント情報を、通信インタフェース161を介してエンジニアリングツール500に送信する。エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100から保有ポイント情報を受信すると、受信した保有ポイント情報を復号し、復号したポイントとシリアルナンバーとを図7Cに示すようにポイント確認画面に表示する。
(ポイント削除)
ポイント管理部552は、ユーザから指示されると、エンジニアリングツール500に接続されているCPUユニット100に書き込まれた保有ポイントを削除する。なお、CPUユニット100のポイントの削除は、エンジニアリングツール500とポイントの書き込み対象のCPUユニット100とを通信ケーブル600で接続した状態で行う必要がある。
ユーザが、エンジニアリングツール500とCPUユニット100とを通信ケーブル600で接続した状態でポイント削除画面を開くため、図6Bに示すメイン画面から「ポイント削除」ボタンを押したものとする。
ユーザの操作に応答して、エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100に、保有ポイント情報を要求するコマンドを送信し、CPUユニット100から、ポイント記憶部112に格納されている保有ポイント情報を取得する。エンジニアリングツール500の演算部550は、図8に示すようなポイント削除画面を表示部540に表示する。演算部550は、ポイント削除画面上において、ポイントとシリアルナンバーとを表示する。ポイントとシリアルナンバーは、ポイント記憶部112の保有ポイント情報を復号することにより得られる。
ポイント削除画面上でユーザが、「はい」ボタンを押下すると、エンジニアリングツール500の演算部550は、通信インタフェース521を介して、CPUユニット100にポイントの削除を指示するコマンドを送信する。
CPUユニット100の演算部150は、通信インタフェース161を介してエンジニアリングツール500からポイントの削除を指示するコマンドを受信すると、ポイント記憶部112に格納する保有ポイント情報を削除する。さらに、演算部150は、保有ポイント情報の削除完了の通知を通信インタフェース161を介してエンジニアリングツール500に送信する。
エンジニアリングツール500の演算部550は、通信インタフェース521を介してCPUユニット100から保有ポイント情報の削除完了の通知を受信すると、該当するCPUユニット100のシリアルナンバーとともに、ポイントを削除した通知をポイント管理サーバ700に送信する。
ポイント管理サーバ700の演算部730は、ポイントの削除の通知をエンジニアリングツール500から受信すると、図3Bに示すポイント記憶部512の対象のシリアルナンバーに割り当てられたポイントを削除する。演算部730は、例えば、対象のシリアルナンバーのポイントを“0”にしてもよい。以上が、ポイント管理部552が実現する機能である。
以下、ユーザプログラム32の実行に先だって、ユーザが行うべき手順を説明する。まず、ユーザは、ユーザプログラム32、必要な無料アプリケーション22を作成する必要がある。このため、ユーザは、図4に示すエンジニアリングツール500の「プログラムの作成」メニューでユーザプログラム32を作成する。作成されたユーザプログラム32は、図3Aに示すプログラム記憶部511に格納される。さらに、ユーザは、必要に応じて、エンジニアリングツール500で無料アプリケーション22を作成する。作成された無料アプリケーション22は、プログラム記憶部511に格納される。
ユーザプログラム32が有料アプリケーション12をコールする場合には、ユーザは有料アプリケーション12をダウンロードする必要がある。このため、ユーザは、図4に示すエンジニアリングツール500のメニュー画面から「有料アプリケーションのダウンロード」ボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、有料アプリケーション12の提供サイトにアクセスし、図5に示すような有料アプリケーションのダウンロード画面を表示部540に表示する。ユーザが、所望する有料アプリケーション12を選択し、「ダウンロード」ボタンを押したものとする。ユーザの操作に応答して、演算部550は、有料アプリケーション12をダウンロードし、有料アプリケーション12をプログラム記憶部511に格納する。なお、ユーザは、ユーザプログラム32からコールされない有料アプリケーション12をエンジニアリングツール500にダウンロードしても構わない。
さらに、ユーザは、有料ライブラリファイル1、自作ライブラリファイル2、ユーザプログラムファイル3をCPUユニット100に書き込む必要がある。このため、ユーザは、図4に示すエンジニアリングツール500のメニュー画面から、「データ書き込み」ボタンを押す。ユーザの操作に応答して、エンジニアリングツール500の演算部550は、図9に示すデータ書き込み画面を表示部540に表示する。ユーザは、データ書き込み画面上で、有料ライブラリファイル1、自作ライブラリファイル2、ユーザプログラムファイル3のうち所望するファイルを選択し、「実行」ボタンを押す。
ユーザが「実行」ボタンを押下すると、ファイル操作部551として機能するエンジニアリングツール500の演算部550は、ユーザによって指定されたファイルを、通信インタフェース521を介してCPUユニット100に送信する。
図3Aに示す有料ライブラリファイル1が選択された場合、演算部550は、対価データ4から読み出した有料アプリケーション12の対価ポイントを含めたファイルヘッダ11を作成する。演算部550は、有料ライブラリファイル1に、ファイルヘッダ11を付加して、第1ライブラリファイル10を作成し、第1ライブラリファイル10をCPUユニット100に送信する。図2Aに示すようにファイル操作部151として機能するCPUユニット100の演算部150は、受信した第1ライブラリファイル10をプログラム記憶部111に格納する。
図3Aに示す自作ライブラリファイル2が選択された場合、演算部550は、自作ライブラリファイル2にファイルヘッダ21を付加した第2ライブラリファイル20を作成する。演算部550は、第2ライブラリファイル20をCPUユニット100に送信する。図2Aに示すようにファイル操作部151として機能するCPUユニット100の演算部150は、受信した第2ライブラリファイル20をプログラム記憶部111に格納する。
図3Aに示すユーザプログラムファイル3が選択された場合、演算部550は、ユーザプログラムファイル3に適宜のファイルヘッダ31を付加したユーザプログラムファイル30を作成する。演算部550は、ユーザプログラムファイル30をCPUユニット100に送信する。図2Aに示すようにファイル操作部151として機能するCPUユニット100の演算部150は、受信したユーザプログラムファイル30をプログラム記憶部111に格納する。
前述のように、CPUユニット100に登録されている保有ポイントと、ユーザプログラム32からコールされる有料アプリケーション12の対価ポイントの合計との関係で、CPUユニット100におけるユーザプログラム32の実行が制限される。このため、ユーザは、上述したように、エンジニアリングツール500を使用して、(1)ポイント登録、(2)ポイント割り当て、(3)ポイント書き込み、を行う必要がある。
以上が、CPUユニット100において、ユーザプログラム32の実行に先だってユーザが行うべき手順である。なお、上述の手順は一例であるため、一部の手順を省略、手順の入れ替えも可能である。
次に、演算部150が図2Aに示す実行可否判別部152として機能し、ユーザプログラム32からコールされる有料アプリケーション12を実行することができるか否かを判別する実行可否の判別に係る処理を説明する。実行可否の判別に係る処理は、CPUユニット100のイニシャル処理の一部として実行される。
このため、ユーザは、CPUユニット100の電源をオフした後、再度CPUユニット100の電源をオンする必要がある。電源の再投入により、CPUユニット100のファームウェアによるイニシャル処理を開始するためである。なお、プログラムの書き込みと、(1)ポイント登録、(2)ポイント割り当て、(3)ポイント書き込みについては既に行われているものとする。また、ポイント記憶部112には、800ポイントが予め登録されているものとする。また、実行可否フラグ113には、デフォルトの「実行不可」を示す値である“0”がセットされているものとする。
図10を参照しながらCPUユニット100のイニシャル処理を説明する。演算部150は、CPUユニット100の各種メモリを初期化する(ステップS1)。演算部150は、プログラム記憶部111に格納されているプログラムファイルをチェックする(ステップS2)。具体的には、演算部150は、第1ライブラリファイル10、第2ライブラリファイル20、ユーザプログラムファイル30のうち、プログラム記憶部111に格納されているファイルが破損していないかをチェックする。
演算部150は、ポイント記憶部112に保有ポイント情報が格納されているか否かを判別する(ステップS3)。ポイント記憶部112に保有ポイント情報が格納されていると判別すると(ステップS3;Yes)、演算部150は、保有ポイント情報を復号鍵で復号する(ステップS4)。
演算部150は、保有ポイントが有効であるか否かを判別する(ステップS5)。具体的には、演算部150は、復号した保有ポイント情報に含まれているシリアルナンバーと、CPUユニット100の記憶部110に格納されているシリアルナンバーとが一致する場合、保有ポイントが有効であると判別し(ステップS5;Yes)、ステップS6の処理を実行する。一方、演算部150は、復号した保有ポイント情報に含まれているシリアルナンバーと、CPUユニット100の記憶部110に格納されているシリアルナンバーとが一致しない場合、保有ポイントが無効であると判別し(ステップS5;No)、イニシャル処理を終了する。このとき、演算部150は保有ポイントについてのエラーを表示部140に表示するようにしてもよい。
また、ステップS3において、演算部150は、ポイント記憶部112に保有ポイント情報が格納されていないと判別すると(ステップS3;No)、ステップS4、S5の処理を実行せずに、ステップS6の処理を実行する。
演算部150は、有料のライブラリファイルである第1ライブラリファイル10が、プログラム記憶部111に格納されているか否かを判別する(ステップS6)。第1ライブラリファイル10がプログラム記憶部111に格納されている場合(ステップS6;Yes)、演算部150は、有料のライブラリファイルである第1ライブラリファイル10を復号する(ステップS7)。
演算部150は、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計を求める(ステップS8)。具体的には、演算部150は、図2Aのファイルヘッダ11から、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントを読み出し、対価ポイントの合計を求める。例えば、ユーザプログラム32から、図2Aに示すアプリケーション1001と、アプリケーション1002と、アプリケーション1003とをコールしている場合、アプリケーション1001の対価ポイントは100ポイント、アプリケーション1002の対価ポイントは500ポイント、アプリケーション1003の対価ポイントは200ポイントであるので、対価ポイントの合計は、800ポイントである。
続いて、演算部150は、ステップS4で復号した保有ポイント情報に含まれている保有ポイントが、ステップS8で求めた有料アプリケーション12の対価ポイントの合計以上であるか否かを判別する(ステップS9)。演算部150は、保有ポイントが、対価ポイントの合計以上であると判別すると(ステップS9;Yes)、演算部150は、実行可否フラグ113に「実行可」を示す値である“1”をセットする(ステップS10)。例えば、保有ポイントが800ポイントであり、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計が800ポイントであるとすると、演算部150は、実行可否フラグ113に「実行可」を示す値である“1”をセットし、イニシャル処理を終了する。
一方、保有ポイントが、対価ポイントの合計未満であると判別すると(ステップS9;No)、演算部150は、実行可否フラグ113に「実行不可」を示す値である“0”をセットし(ステップS11)、イニシャル処理を終了する。例えば、保有ポイントが500ポイントであり、ユーザプログラム32がコールする有料アプリケーション12の対価ポイントの合計が800ポイントである場合には、演算部150は、保有ポイントが、対価ポイントの合計未満であると判別する。
また、演算部150は、ステップS5で、保有ポイントが有効でないと判別すると(ステップS5;Nо)、イニシャル処理を終了する。この場合も、実行可否フラグ113の値は変更されずデフォルトのままである。このとき、演算部150は、例えば、表示部140のインジケータランプを点灯してユーザにエラーを通知してもよい。
イニシャル処理が終了した後、演算部150は、ユーザプログラム32の各命令を順次処理する。実施の形態においては、演算部150は、図11に示すような手順でユーザプログラム32の各命令を処理することで、実行管理部153として機能する。
図11に示すように、演算部150は、CPUユニット100がRUN状態であるか否かを判別する(ステップS21)。演算部150は、CPUユニット100のRUNスイッチがオンになっている場合、CPUユニット100がRUN状態であると判別し(ステップS21;Yes)、ステップS22の処理を実行する。一方、RUNスイッチがオンになっていない場合、演算部150は、RUN状態でないと判別し(ステップS21;No)、プログラム実行処理を終了する。なお、RUNスイッチは、CPUユニット100のハードスイッチであり、ユーザが手動で操作する。
演算部150は、ステップS22でユーザプログラム32の次の命令を読み出す(ステップS22)。例えば、イニシャル処理の直後のユーザプログラム32の実行においては、ユーザプログラム32の一番初めの命令が読み出される。
演算部150は、ステップS22で読み出した命令が第1ライブラリファイル10の有料アプリケーション12をコールする命令であるか否かを判別する(ステップS23)。
読み出した命令が第1ライブラリファイル10の有料アプリケーション12をコールする命令であると判別すると(ステップS23;Yes)、演算部150は、実行可否フラグ113の値が「実行可」を示す値である“1”であるか否かを判別する(ステップS24)。
実行可否フラグ113の値が「実行可」を示す値である“1”であると判別すると(ステップS24;Yes)、演算部150は、ステップS22で読み出した命令で指定された有料アプリケーション12をコールする(ステップS25)。例えば、ステップS22で読み出した命令が、図2Aに示すアプリケーション1002をコールする命令であれば、演算部150は、アプリケーション1002をコールする。その後、演算部150は、ステップS26の処理を実行する。
ステップS24において、実行可否フラグ113の値が「実行可」を示す値である“1”でない、即ち、実行可否フラグ113の値が「実行不可」を示す値である“0”である場合(ステップS24;No)、演算部150は、ステップS22で読み出した命令で指定された有料アプリケーション12をコールせず、ステップS26の処理を実行する。
一方、ステップS23において、演算部150は、ステップS22で読み出した命令が有料アプリケーション12をコールする命令でないと判別すると(ステップS23;Nо)、当該命令を実行する(ステップS27)。例えば、読み出した命令が無料アプリケーション22をコールする命令である場合、演算部150は、無料アプリケーション22をコールする。その後、演算部150は、ステップS26の処理を実行する。
ステップS26において、演算部150は、次の命令がEND命令であるか否かを判別する(ステップS26)。演算部150は、読み出した命令がEND命令であると判別すると(ステップS26;Yes)、予め設定されたEND命令における処理を実行し、その後、再びステップS21からの処理を実行する。一方、ステップS26において、演算部150は、読み出した命令がEND命令でないと判別すると(ステップS26;No)、再びステップS22からの処理を実行する。
以上説明したように、CPUユニット100が、ユーザプログラム32からコールされる有料アプリケーション12の対価ポイントの合計以上の保有ポイントを有している場合、CPUユニット100は、有料アプリケーション12を実行することができる。一方、CPUユニット100が、ユーザプログラム32からコールされる有料アプリケーション12の対価ポイントの合計以上の保有ポイントを有していない場合、CPUユニット100は、いずれの有料アプリケーション12も実行できない。そのため、ユーザプログラム32の命令が有料アプリケーション12をコールする命令である場合、CPUユニット100は当該命令の実行をスキップする。
実施の形態に係る構成においては、アプリケーションの実行回数、実行期間に応じて、保有ポイントが減らない。よって、ユーザは、プログラマブルロジックコントローラの稼動中に、保有ポイントの残数を監視しなくてもよい。また、保有ポイントが減らないため、ユーザは残数不足によりポイントを追加購入する必要がない。このように、選択したプログラム部品だけを使用できるにもかかわらず、ユーザにとって煩雑な作業を行う必要がなく、利便性が高い。また、ユーザは、購入した保有ポイントの範囲内であれば、有料アプリケーション12を継続して実行することができる。このように、期間経過によって有料アプリケーション12の実行ができなくなることがない。
保有ポイントが、有料アプリケーション12の対価ポイントの合計より少ない場合であっても、ユーザプログラム32において有料アプリケーション12のコール命令を実行しないだけであり、CPUユニット100のユーザプログラム32の実行が中断されることはない。
さらに、保有ポイントの範囲内の対価ポイントの有料アプリケーション12については、CPUユニット100は無期限に有料アプリケーション12を実行することができる。前述のように、実施の形態では、有料アプリケーション12はファイル単位でCPUユニット100に書き込まれている。ユーザプログラム32が修正され、コールされる有料アプリケーション12の組み合わせが変更されても、コールされる有料アプリケーション12の対価ポイントの合計が保有ポイントを超えない場合は、CPUユニット100は、有料アプリケーション12を実行することができる。この場合、ユーザはポイントを追加購入する必要がない。なお、有料アプリケーション12の実行可否の判別に係る処理はイニシャル処理の一部として実行されるため、ユーザプログラム32を修正した後、イニシャル処理を再度実行する必要がある。
また、ユーザプログラム32の修正、置き換え等に伴い、保有ポイントが不足することになった場合には、ユーザは、必要なポイントを追加購入し、CPUユニット100に登録すればよい。
なお、実施の形態においては、CPUユニット100において、ユーザプログラム32の実行の開始に先だってユーザが行うべき手順に、保有ポイントをCPUユニット100に書き込むことを述べたが、保有ポイントをCPUユニット100に一旦書き込んでしまえば、保有ポイントを変更、削除する必要がない間は、ポイントの書き込みの手順は不要である。
また、エンジニアリングツール500は、CPUユニット100のポイント記憶部512からCPUユニット100に割り当てられた保有ポイントを読み出し、ユーザプログラム32内でコールされる有料アプリケーション12の対価ポイントの合計と保有ポイントとの差を、表示部540に表示するようにしてもよい。よって、ユーザは、有料アプリケーション12がコールされたか否かを知ることができ、ポイントの追加購入、ユーザプログラム32の修正等を行って、調整を行うことができる。
実施の形態においては、ポイント記憶部112が保持する保有ポイントが、ユーザプログラム32がコールしている有料アプリケーション12の対価ポイントの合計以上である場合に、有料アプリケーション12の実行が許可され、そうでない場合には、有料アプリケーション12の実行が一切認められない例を説明した。しかしながら、有料アプリケーション12の実行制限の構成は、これに限られない。
(変形例1)
あるいは、図3Aの対価データ4には、各有料アプリケーション12の優先度を示す情報が付加されていてもよい。図12に優先度を示す情報が付加された対価データ4aに格納されるデータの例を示す。この場合、実行可否判別部152は、実行可否の判別に係る処理において、保有ポイントで認められる範囲で、対価データ4aに格納された有料アプリケーション12について、優先度の順で実行が可能であるか否かを判別する。例えば、図12に示すように優先度が定義されており、保有ポイントが700ポイントであるとする。この場合、実行可否判別部152は、保有ポイントの範囲内で、優先度に従って、アプリケーション1002及び1003を実行することが可能であると判別する。実行可否判別部152は、アプリケーション1001、アプリケーション1004、及びアプリケーション1005を実行することができないと判別する。
あるいは、保有ポイントが800ポイントであるとする。この場合、実行可否判別部152は、保有ポイントの範囲内で、優先順位に従って、アプリケーション1001〜1003を実行することが可能であり、アプリケーション1004及び1005を実行することができないと判別する。さらに、実行可否判別部152は、実行可否を示す情報を、図13に示すような実行可否データ113aに格納してもよい。図13では、保有ポイントが800ポイントである場合に、実行可否データ113aに格納された情報を示す。図13では、アプリケーション1001〜1003を実行することが可能であることを示す情報が実行可否データ113aに格納されている。実行管理部153は、実行可否データ113aに格納された実行可否を示す情報に基づいて、有料アプリケーション12を実行するか否かの制御を行う。この場合、図2Aに示す実行可否フラグ113は不要である。
(変形例2)
また、あるいは、有料アプリケーション12にそれぞれ対価ポイントを設定するのではなく、アプリケーションをカテゴリで分別し、保有ポイント数に応じて、決められたカテゴリの有料アプリケーション12を実行できるよう制御してもよい。図14に、有料アプリケーション12とカテゴリとの対応付けを示すデータを格納したカテゴリテーブル4bの例を示す。この場合、図3Aに示す対価データ4は不要である。
例えば、保有ポイントが500ポイント以上であることが、カテゴリ1の有料アプリケーション12の実行が許可される条件であるとする。保有ポイントが800ポイント以上であることが、カテゴリ1及びカテゴリ2の有料アプリケーション12の実行が許可される条件であるとする。保有ポイントを1200ポイント以上であることが、カテゴリ1〜3の有料アプリケーション12、即ち、全ての有料アプリケーション12の実行が許可される条件であるとする。これらの条件を示すデータは、記憶部110に予め記憶されているものとする。ここで、保有ポイントが900ポイントであると仮定する。この場合、実行可否判別部152は、実行可否の判別に係る処理において、カテゴリ1及びカテゴリ2の有料アプリケーション12の実行が可能であると判別する。図14に示すカテゴリから、アプリケーション1002〜1005の実行が可能である。実行可否判別部152は、実行可否を示す情報を、図15に示すような実行可否データ113bに格納する。実行管理部153は、実行可否データ113bに格納された実行可否を示す情報に基づいて、有料アプリケーション12を実行するか否かの制御を行う。この場合、図2Aに示す実行可否フラグ113は不要である。
実施の形態においては、PLC1000が1つのCPUユニット100を含む例を説明したが、PLC1000は、2以上のCPUユニット100を含んでいてもよい。このような場合であっても、図3Bに示すように、CPUユニット100のシリアルナンバーに保有ポイントを割り当てているため問題ない。
また、CPUユニット100は、1台の情報処理装置上で動作する2以上の仮想マシン上で動作するものであってもよい。例えば、複数のCPUユニット100の内の1つが、ホストマシン上で動作し、他のCPUユニットが仮想マシン上で動作する。この場合、ポイント記憶部512は、それぞれのCPUユニット100を識別する情報に、それぞれのCPUユニット100の保有ポイントを対応付けたデータを記憶すればよい。
また、実施の形態では、プログラム、プログラム部品をファイル単位でCPUユニット100に書き込む例を説明した。しかしながらこれに限られない。例えば、ファイル操作部551が、ユーザプログラム32を解析し、ユーザプログラム32でコールされている有料アプリケーション12だけをCPUユニット100に書き込むようにしてもよい。この場合、記憶部110の使用容量を無駄に増やすことがない。
実施の形態においては、図1に示す演算部150は、MPUを有する例を説明したが、演算部150は、MPUに加え、特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)を有していてもよい。演算部150は、さらにFPGA(Field Programmable Gate Array)を有していてもよい。
上述したように演算部150を実行可否判別部152として機能させるためのプログラムと、演算部150を実行管理部153として機能させるプログラムとを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
1 有料ライブラリファイル、2 自作ライブラリファイル、3,30 ユーザプログラムファイル、4,4a 対価データ、4b カテゴリテーブル、10 第1ライブラリファイル、11,21,31 ファイルヘッダ、111,511 プログラム記憶部、12,22 アプリケーション、20 第2ライブラリファイル、30,30A ユーザプログラムファイル、32 ユーザプログラム、100 CPUユニット、110,510,710 記憶部、111 プログラム記憶部、112,512 ポイント記憶部、113 実行可否フラグ、113a,113b 実行可否データ、120,520,720 通信部、130,530 入力受付部、140,540 表示部、150,550,730 演算部、151,551 ファイル操作部、152 実行可否判別部、153 実行管理部、154,552 ポイント管理部、160 ツール用通信部、161,521 通信インタフェース、190,590,790 バス、200 入力ユニット、300 出力ユニット、400 フィールドバス、500 エンジニアリングツール、560 サーバ用通信部、600 通信ケーブル、700 ポイント管理サーバ、800 ネットワーク、901 検出器、902 被制御機器、1000 プログラマブルロジックコントローラ、5120 ポイント管理テーブル

Claims (9)

  1. プログラマブルロジックコントローラのCPUユニットであって、
    少なくとも1つのプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントと、前記プログラム部品について予め設定され、前記プログラム部品が実行される順位を示す優先度とを記憶する対価ポイント記憶手段と、
    前記CPUユニットにおいて、前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する限度ポイント記憶手段と、
    前記限度ポイントの範囲内で、前記優先度に従って、実行することが可能な前記プログラム部品と実行することが不可能な前記プログラム部品とを判別する判別手段と、
    前記判別手段が実行することが可能であると判別した前記プログラム部品を実行し、前記判別手段が実行することが不可であると判別した前記プログラム部品を実行しない実行管理手段と、
    を備える、
    CPUユニット。
  2. 前記CPUユニットが実行するプログラムを記憶するプログラム記憶手段、
    をさらに備え、
    選択された前記プログラム部品は、前記プログラムからコールされる前記プログラム部品である、
    請求項1に記載のCPUユニット。
  3. 前記限度ポイントは、ユーザが対価を払って購入したポイントを含む、
    請求項1又は2に記載のCPUユニット。
  4. 前記判別手段は、選択された前記プログラム部品の組み合わせが変更されると、前記限度ポイントが、変更後の組み合わせに含まれる前記プログラム部品の前記対価ポイントの合計以上であるか否かを判別する、
    請求項1から3のいずれか1項に記載のCPUユニット。
  5. 少なくとも1つのプログラム部品について、前記プログラム部品の実行に要求される対価を示す対価ポイントと、前記プログラム部品について予め設定され、前記プログラム部品が実行される順位を示す優先度とを記憶する対価ポイント記憶手段と、
    CPUユニットにおいて、前記プログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントを記憶する限度ポイント記憶手段と、
    前記限度ポイントの範囲内で、前記優先度に従って、実行することが可能な前記プログラム部品と実行することが不可能な前記プログラム部品とを判別する判別手段と、
    前記判別手段が実行することが可能であると判別した前記プログラム部品を実行し、前記判別手段が実行することが不可であると判別した前記プログラム部品を実行しない実行管理手段と、
    を備えるCPUユニットを有するプログラマブルロジックコントローラ。
  6. CPUユニットに
    記CPUユニットにおいてプログラム部品の実行が認められる限度を示すポイントであって、前記プログラム部品の実行回数、及び、前記プログラム部品の実行期間、にかかわらず維持される限度ポイントの範囲内で、前記プログラム部品について予め設定された優先度に従って、実行することが可能な前記プログラム部品と実行することが不可能な前記プログラム部品とを判別させ、
    実行することが可能な前記プログラム部品を実行させる、
    プログラム。
  7. 請求項1から4のいずれか1項に記載の前記CPUユニットと接続可能であるエンジニアリングツールであって、
    前記限度ポイントと、前記対価ポイントとを記憶する記憶手段と、
    前記CPUユニットの前記限度ポイント記憶手段が記憶する前記限度ポイントを、前記記憶手段が記憶する前記限度ポイントで更新し、前記CPUユニットの前記対価ポイント記憶手段が記憶する前記対価ポイントを、前記記憶手段が記憶する前記対価ポイントで更新する更新手段と、
    を備えるエンジニアリングツール。
  8. 前記記憶手段が記憶する前記限度ポイントは、ユーザによって追加される、
    請求項に記載のエンジニアリングツール。
  9. 表示装置をさらに備え、
    前記判別手段の前記プログラム部品の実行の可否の判別に応じて、前記実行管理手段の前記プログラム部品の実行の状況を、前記表示装置に表示する、
    請求項又はに記載のエンジニアリングツール。
JP2019530227A 2018-10-05 2018-10-05 Cpuユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツール Active JP6570801B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/037339 WO2020070873A1 (ja) 2018-10-05 2018-10-05 Cpuユニット、プログラマブルロジックコントローラ、方法、プログラム、及びエンジニアリングツール

Publications (2)

Publication Number Publication Date
JP6570801B1 true JP6570801B1 (ja) 2019-09-04
JPWO2020070873A1 JPWO2020070873A1 (ja) 2021-02-15

Family

ID=67844738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019530227A Active JP6570801B1 (ja) 2018-10-05 2018-10-05 Cpuユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツール

Country Status (3)

Country Link
JP (1) JP6570801B1 (ja)
CN (1) CN112789648A (ja)
WO (1) WO2020070873A1 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990013865A1 (en) * 1989-04-28 1990-11-15 Softel, Inc. Method and apparatus for remotely controlling and monitoring the use of computer software
DE10023827A1 (de) * 2000-05-15 2001-12-06 Siemens Ag Lizenzierung und Zugangsauthorisierung
JP2002036676A (ja) * 2000-07-26 2002-02-06 Fujitsu Ltd 通帳プリンタ装置
JP2005010028A (ja) * 2003-06-19 2005-01-13 Omron Corp 波形検査装置およびネットワークシステム並びに設定ツールおよび波形検査システム構築方法
US7849329B2 (en) * 2004-09-01 2010-12-07 Microsoft Corporation Licensing the use of a particular feature of software
CN100524333C (zh) * 2006-06-13 2009-08-05 正璞科技有限公司 防止非法使用软件的方法
CN101202636A (zh) * 2006-12-11 2008-06-18 中兴通讯股份有限公司 基于媒体服务器实现按资源类型计费的装置
JP5811265B2 (ja) * 2012-02-29 2015-11-11 富士電機株式会社 プログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システム
US10466674B2 (en) * 2017-04-24 2019-11-05 Mitsubishi Electric Corporation Programmable logic controller system, and engineering tool computer program product

Also Published As

Publication number Publication date
CN112789648A (zh) 2021-05-11
JPWO2020070873A1 (ja) 2021-02-15
WO2020070873A1 (ja) 2020-04-09

Similar Documents

Publication Publication Date Title
JP5531819B2 (ja) 管理装置,ライセンス管理サーバ,電子機器,電子機器管理システム,管理方法,プログラム,および記録媒体
JPWO2014199464A1 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
EP3200110B1 (en) License management server, license management system, and storage medium
US20080027742A1 (en) Information processing method, information processing apparatus, computer program and storage medium
CN109522738B (zh) 数据储存装置
JP6127719B2 (ja) 情報処理システム、情報処理装置、ライセンス管理方法及びプログラム
US8885210B2 (en) Image forming apparatus and control method thereof
JP6570801B1 (ja) Cpuユニット、プログラマブルロジックコントローラ、プログラム、及びエンジニアリングツール
JP6070423B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6390696B2 (ja) ライセンス情報管理装置、ライセンス情報管理方法、および、プログラム
JP2006164300A (ja) 情報処理装置および情報処理方法
JP6439051B2 (ja) ライセンス管理に適した半導体装置
JP6885441B2 (ja) ライセンス管理装置、ライセンス管理方法、及び、ライセンス管理プログラム
JP2010204886A (ja) ライセンス管理装置及びプログラム
JP6573749B1 (ja) 制御装置、制御方法及びプログラム
CN112231716A (zh) 数据的防盗装置和防盗方法
JP6492418B2 (ja) 決済システム
JP6701463B1 (ja) ライセンス移行ツール、プログラム、及びライセンス移行システム
JP6065161B2 (ja) 産業機器生産システム、産業機器生産方法、プログラム、及び情報記憶媒体
JP6304427B2 (ja) 情報処理システム及び操作端末
JP2002116834A (ja) ソフトウェアの使用許諾方法と使用許諾システム及びコンピュータ読み取り可能な記録媒体
JP7183873B2 (ja) 電子機器及び電子機器の制御方法
JP2007334821A (ja) アプリケーション保護装置、アプリケーション保護方法およびアプリケーション保護プログラム
JP2021117658A (ja) 画像形成システム、画像形成装置およびアプリ制御プログラム
JP2018120605A (ja) 情報処理システム、情報処理装置及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190605

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190605

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190626

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190806

R150 Certificate of patent or registration of utility model

Ref document number: 6570801

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250