JP5811265B2 - プログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システム - Google Patents

プログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システム Download PDF

Info

Publication number
JP5811265B2
JP5811265B2 JP2014501903A JP2014501903A JP5811265B2 JP 5811265 B2 JP5811265 B2 JP 5811265B2 JP 2014501903 A JP2014501903 A JP 2014501903A JP 2014501903 A JP2014501903 A JP 2014501903A JP 5811265 B2 JP5811265 B2 JP 5811265B2
Authority
JP
Japan
Prior art keywords
program
execution
data area
programmable controller
flag
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
JP2014501903A
Other languages
English (en)
Other versions
JPWO2013128603A1 (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Publication of JPWO2013128603A1 publication Critical patent/JPWO2013128603A1/ja
Application granted granted Critical
Publication of JP5811265B2 publication Critical patent/JP5811265B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC

Description

本発明は、外部機器を制御するプログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システムに関する。
プログラマブルコントローラは、所定のアプリケーションを実行して外部機器等を制御するものである。そのアプリケーションは、プログラミング装置を使って予め利用者によってプログラミングされ、プログラマブルコントローラにダウンロードされる。プログラマブルコントローラは、様々なメーカから商品化されているが、コントローラの性能やアプリケーション開発ツールの使い易さ等はメーカ毎に異なるため、実際に使用してみて採用を判断したいという要望がある。
このような要望に応えるため、コントローラメーカは、プログラマブルコントローラを利用者に評価させる目的で、プログラマブルコントローラの実機やアプリケーション開発ツールを評価機(体験版)として提供することがある。このような場合、利用者は、評価機を評価し、その評価結果に基づいて正規に購入することとなる。
しかしながら、提供される評価機は、正規品との区別がなく、特に使用制約を設けていない。よって利用者の中には、評価機を用いてシステムを構築し、構築したシステムをそのままエンド利用者に納めてしまい、コントローラメーカが売上を回収できないという問題がある。そのため、従来では、例えば評価開始時期と現在日時との比較によりプログラマブルコントローラ(評価機)の評価期間の把握を行い、期間満了後にプログラマブルコントローラを起動しない措置を取っている。また、従来では、デモ評価ソフトウェアの実行時間使用量を監視し、経過した実行時間が所定の評価時間を超えた時点で、利用者からの登録があるまでデモ評価ソフトウェアを実行不能にする手法が知られている(例えば、特許文献1参照)。
特開2001−100855号公報
しかしながら、上述した従来の評価開始時期と現在日時との比較により評価期間を把握する手法では、プログラマブルコントローラの電源オフ時に、バッテリのバックアップ等を行っていないとカレンダIC(Integrated Circuit)の動作が停止して、正確な日時がわからなくなる。そのため、上述の手法では、評価期間が正確に把握できないという問題がある。
また、プログラマブルコントローラは、対話型アプリケーションを搭載するPC(Personal Computer)と異なり、システムを立ち上げた後は連続運転が求められる。例えば、プログラマブルコントローラを所定の生産ラインに適用した場合には、24時間若しくはそれ以上の連続運転を行うことも珍しくない。そのため、従来手法のように、評価期間満了により直ちにプログラマブルコントローラを停止させた場合には、予期せぬ事故等を誘発する可能性がある。
本発明は、上記の点に鑑みてなされたものであり、評価期間等に対するプログラマブルコントローラの使用を適切に制御するプログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システムを提供することを目的とする。
上記の課題を解決するために、本発明は、プログラムの実行周期を積算し、積算により得られた積算値が所定の固定時間値を超過する毎に所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数に基づき前記プログラムの累積実行時間を求め、該累積実行時間が予め設定された評価期間の満了前の所定のタイミングで通知を行い、該通知後に前記評価期間を超過することにより前記プログラムの実行を阻止するアプリケーション管理手段を有する。
なお、本発明の構成要素、表現又は構成要素の任意の組み合わせを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造等に適用したものも本発明の態様として有効である。
本発明によれば、プログラマブルコントローラの使用を適切に制御することができる。
本実施形態における提供システムの概略構成の一例を示す図である。 本実施形態におけるPLCの機能構成の一例を示す図である。 本実施形態におけるPLCのハードウェア構成の一例を示す図である。 利用者端末の機能構成の一例を示す図である。 提供者端末の機能構成の一例を示す図である。 本実施形態における利用者端末及び提供者端末のハードウェア構成の一例を示す図である。 PLCにおけるプログラムの実行周期例を説明するための図である。 評価期間の判定及び実行制御の第1実施例を説明するためのフローチャートである。 評価期間の判定及び実行制御の第2実施例を説明するためのフローチャートである。 図9に対応するフラグ書き込みの一例を示す図である。 評価期間の判定及び実行制御の第3実施例を説明するためのフローチャートである。 図11に対応するフラグ書き込みの一例を示す図である。 第3実施例に対する通知処理の一例を示すフローチャートである。 利用者端末における処理手順の一例を示すフローチャートである。 提供者端末における処理手順の一例を示すフローチャートである。
<本発明について>
本発明は、例えばプログラマブルコントローラの使用に関し、例えばプログラムの実行周期を積算し、積算により得られた積算値が所定の固定時間値を超過すると計数し、該計数値に基づきプログラムの累積実行時間を求め、該累積実行時間が予め設定された評価期間を超過することによりプログラムの実行を阻止する。なお、コントローラで実行されるアプリケーション(プログラム)の実行時間の積算情報は、例えばメモリ(記憶手段)等に蓄えていくことで、カレンダIC等による時刻記録の課題を解決する。
また、本発明は、積算値が固定時間を超過する毎に所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって上述した累積実行時間を算出してもよい。また、本発明は、評価期間満了後は、適切なタイミングでプログラマブルコントローラの起動を行わないように制御する。例えば、上述したフラグ数の判定により、プログラムを評価期間の満了期間以上実行した場合には、次回のプログラムの実行を阻止する。
なお、本発明では、実行積算時間が閾値を超過した場合に、例えばプログラマブルコントローラ本体に設けられた発光部や音声出力部を用いて利用者に評価期間満了を通知してもよい。なお、発光部としては、例えばLED(Light Emitting Diode)等があるが、これに限定されるものではなく、その他の発光素子であってもよい。また、音声出力部としては、例えばスピーカ等があるが、これに限定されるものではない。また、上述した発光部や音声出力部は、プログラマブルコントローラ内に一体に設けられていてもよい。また、発光部や音声出力部は、評価コントローラとは別体に設けられ、例えばUSB(Universal Serial Bus)端子やスピーカ端子等の出力端子等により接続されていてもよい。
また、本発明では、実行積算時間がタイムアップした場合に、プログラマブルコントローラと接続された利用者端末上の支援ツールに評価期間満了を通知してもよい。例えば、アプリケーションに対するメモリ領域に設けられたRAS情報通知領域等に対して、評価期間満了を通知して利用者に知らせることができる。なお、RAS情報とは、コンピュータシステムの信頼性(Reliability)、可用性(Availability)、保守性(Serviceability)を表す情報である。なお、上述した評価期間満了の通知の際には、対象モジュール(対象機器)であるプログラマブルコントローラが軽故障であるとして通知を行ってもよい。
以下に、本発明におけるプログラマブルコントローラ、プログラマブルコントローラシステム、及び提供システムを好適に実施した形態について、図面を用いて説明する。なお、以下の説明では、プログラマブルコントローラの一例としてPLC(Programmable Logic Controller)を用いることとするが、本発明においてはこれに限定されるものではない。
<プログラマブルコントローラの提供システムの概略構成例>
図1は、本実施形態におけるプログラマブルコントローラの提供システムの概略構成の一例を示す図である。図1に示す提供システム10は、PLC11−1〜11−3(以下、必要に応じて「PLC11」と総称する)と、利用者端末12と、入出力モジュール13−1〜13−n(以下、必要に応じて「I/Oモジュール13」と総称する)とを有する。ここで、図1に示す提供システム10では、一例として3台のPLC11−1〜11−3と、複数台のI/Oモジュール13−1〜13−nとを有するが、本発明における台数については上記の内容に限定されるものではない。
利用者端末12と、PLC11−1とは、例えば通信ケーブル14等により接続されており、PLC11−1〜11−3と、I/Oモジュール13−1〜13−nとは、それぞれ制御用のネットワーク15により接続されている。
更に、図1に示す提供システム10は、PLC11を提供した提供者端末16を有し、利用者端末12と提供者端末16とは、例えばインターネット等に代表される通信ネットワーク17によりデータの送受信が可能な状態で接続されている。なお、1又は複数のPLC11(図1の例では、PLC11−1〜11−3)と、1又は複数のI/Oモジュール13(図1の例では、I/Oモジュール13−1〜13−n)とは、プログラマブルコントローラシステム18として機能する。また、複数のPLC11及び複数のI/Oモジュール13は、それぞれが1つのノード(局)として位置付けることができる。
PLC11は、各種の支援ツールを搭載した利用者端末12からの指示に基づいて、対象機器であるI/Oモジュール13等を用いて所定の処理を実行したり、実行結果の解析、制御等を行うプログラマブルコントローラである。つまり、PLC11は、利用者端末12における支援対象の機器である。なお、PLC11は、例えばアプリケーション演算等を行うCPU(Central Processing Unit)モジュール等が用いられるがこれに限定されるものではない。
ここで、本実施形態では、CPUモジュール等からなる各PLC11−1〜11−3は、所定の周期で例えばリング状のネットワーク15等を介して各I/Oモジュール13−1〜13−nとのデータ交換を行う。このとき、各PLC11−1〜11−3や各I/Oモジュール13−1〜13−nは、例えばネットワーク通信サイクル(例えば、1ms毎)に同期してアプリケーション等を起動する。
つまり、制御用のネットワーク15のトポロジは、プログラマブルコントローラシステム18内のPLC11−1〜11−3や各I/Oモジュール13−1〜13−nがデイジーチェーン接続されたリング型である。PLC11は、所定の周期でこのリング型トポロジにデータフレームを周回させることで各I/Oモジュール13−1〜13−n間のデータ交換を行っている。
例えば、上述したプログラマブルコントローラシステム18において、PLC11−1が送信したデータフレームは、PLC11−2→PLC11−3→I/Oモジュール13−1→I/Oモジュール13−2→I/Oモジュール13−nへとバケツリレーのように送受信され順次伝達される。そして、I/Oモジュール13−nに伝達されたデータフレームは、折り返され、上記と逆のルートを辿ってPLC11−1に戻る。このようにネットワーク15を一巡して戻ったデータフレームは、その源の送信元(この場合は、PLC11−1)で削除される。このようにして、リング上のPLC11は、データの送受信を行い、I/Oモジュール13がその送受信データに基づき所定のデータ処理を行う。
なお、PLC11は、ネットワーク15を用いて入出力データのみならず、他のPLC間のアプリケーションデータの交換や、システム起動・停止・リセット等のシステム全体の制御のため、メッセージのやり取りを行う。これらのデータをリング上で伝送することで、システムとしてタイミングの同期を計りつつ、データの更新を行っている。
また、本実施形態では、PLC11を評価用(サンプル品)として利用者に与えた場合の評価期間(サンプル期間)の満了を出力するために、ネットワーク通信サイクルに同期して起動されるアプリケーションの稼働時間を積算する。具体的には、例えば上述したリング状のネットワーク15を周回するデータの交換周期に同期して実行されるアプリケーションの稼働時間(プログラムの実行周期)を積算して評価期間を判定する。
これにより、上述したデータ交換周期に同期して実行されるプログラムの実行周期に対応させて、ネットワーク15上の各PLC11の評価期間を適切に監視することができる。なお、本実施形態におけるプログラムの実行周期の取得方法は、これに限定されるものではない。
また、本実施形態では、積算した時間が所定の時間を超過したら評価期間の満了として、例えば利用者に通知してプログラムの実行を阻止する等の処理を行う。
つまり、本実施形態では、予め設定されたPLC11を停止させる条件に基づいて、PLC11が使用できるか否かを判断し、使用できなくなった場合に、例えばプログラムの実行を阻止する制御を行うことで、なお、本実施形態においては、これに限定されるものではなく、例えば電源ON/OFF、リセット、停止/起動等の制御によりPLC11の使用を制御してもよい。また、本実施形態において、提供システム10が運転中である場合には、PLC11が使用できなくなった場合に、故障情報等を表示して利用者に何らかの対応を促すインタフェースをPLC11に設けてもよい。
ここで、利用者端末12は、内部にPLC11の実行等を支援する支援ツールが格納されている。利用者端末12は、利用者の指示により、予め設定された支援ツールを実行し、PLC11等に対して所定の処理を実行させる。なお、上述した支援ツールは、各PLC11−1〜11−3に対応した支援ツールを提供者端末16から通信ネットワーク17を通じて取得してもよい。
ここで、利用者端末12は、一般的な汎用のコンピュータを用いることができる。また、利用者端末12は、PLC11から予め設定された評価期間を経過した旨の通知を受けた場合に、その旨のメッセージを画面に表示させて利用者に通知する処理を行うことができる。また、利用者端末12は、PLC11に対して正規に購入する場合や、レンタルする場合には、提供者端末16にその旨の通知やPLC11の識別情報(例えば、MACアドレス)等を送信する。また、利用者端末12は、提供者端末16から情報を取得する際に暗号化が必要な場合には、予め設定されている利用者端末12の鍵情報を提供者端末16に送信する。
また、利用者端末12は、提供者端末16から正規購入用のコマンド情報やレンタル用のコマンド情報等を取得し、取得した各コマンド情報を対象のPLC11に対して実行することで、評価期間経過後もそのまま継続してPLC11を使用することができる。なお、利用者端末12が提供者端末16から取得される各コマンド情報等は、上述した鍵情報に基づいて暗号化されていることが好ましい。上述したように、コマンドを暗号化して送信するのは、送信したデータが盗難されて他のPLC11に流用されるのを防止するためであり、データの内容自体を秘匿するためでもある。
利用者端末12は、提供者端末16により得られる暗号化されたコマンド情報を自らの鍵情報により復号し、得られたコマンドを所定のPLC11に実行させることにより、PLC11を購入して正規版として使用したり、所定時間のレンタル使用をすることが可能となる。なお、上述したコマンドは、PLC11−1〜11−3毎に固有のコマンドであることが好ましい。PLC11毎に固有のコマンドとすることで、個々の機器に対する制御を行うことができる。なお、固有のコマンドは、例えばMACアドレス等のPLC11の識別情報を含むコマンドを用いることができる。これにより、上述したネットワーク15上を巡回するコマンドを取得した各PLC11は、自分のMACアドレスと、コマンド内のMACアドレスとを比較し、同一である場合にコマンドを実行する。これにより、PLC11の評価版から正規版又はレンタル版へのモード情報の変更(書き換え等)を個別に行うことができる。
なお、上述したコマンドは、PLC11−1〜11−3のうち、複数のPLCに対応する共有のコマンドであってもよい。これにより、複数の機器に対して1つのコマンドで効率的に制御することができる。
I/Oモジュール13は、他のモジュール等とデータの入出力処理を行う。例えば、I/Oモジュール13は、PLC11からの指示に基づいて、例えば接続機器等から得られるデータ等をPLC11に出力(送信)したり、PLC11により処理された結果を、接続機器等に出力したり、記憶したりする。
提供者端末16は、通信ネットワークを通じて利用者端末12から取得した情報に基づいて、対象のPLC11が使用可能となるように、それぞれのPLC11毎に使用を許可する固有のコマンドを生成する。なお、利用者端末12から取得する情報としては、例えばPLC11を正規に購入するか又はレンタル使用するかの要求通知や対象のPLC11の識別情報(例えば、MACアドレス)等である。また、暗号化が必要な場合には、予め設定されている利用者端末12の鍵情報を取得する。
なお、提供者端末16は、生成されたコマンドを、利用者端末12から得られた鍵情報に基づいて暗号化を行い、暗号化された情報を、通信ネットワーク17を介して利用者端末12に送信することができる。
なお、上述した提供システム10において、利用者端末12と提供者端末16とは、通信ネットワーク17等で接続されていなくてもよい。そのような場合に、利用者端末12は、例えばPLC11の購入要求や鍵情報を郵送等で提供者端末16に送付する。また、利用者端末12は、提供者端末16からPLC11の使用を許可する固有のコマンドを含む暗号化情報等が記録された記録媒体(例えば、CD−ROM)等を郵送で受け取り、記録媒体の情報を読み取ることで目的の情報を取得する。
<PLC11における機能構成例>
次に、本実施形態におけるPLC11の機能構成例について、図を用いて説明する。図2は、本実施形態におけるPLCの機能構成の一例を示す図である。図2に示すPLC11は、通信インタフェース手段21と、コマンド提供手段22と、ストレージ管理手段23と、アプリケーション管理手段24と、システム管理手段25と、スイッチ(SW)監視手段26と、カレンダIC(日時取得手段)27と、入出力(I/O)制御手段28と、通知手段29とを有する。
通信インタフェース手段21は、通信ケーブル14に接続された利用者端末12や、他のPLC11、I/Oモジュール13、I/Oモジュール13に接続された外部機器等とのデータの送受信を行うための通信手段である。なお、通信インタフェース手段21には、例えばMACアドレス等の識別情報を含んでいる。また、通信インタフェース手段21は、例えばUSB(Universal Serial Bus)等のシリアルインタフェースや、LAN(Local Area Network)ケーブル等と接続可能なインタフェース等を備えるが、本発明においては、これに限定されるものではない。
コマンド提供手段22は、例えばローダコマンドサーバとしての機能を有する。具体的には、コマンド提供手段22は、PLC11やI/Oモジュール13との間でデータのやり取りや、予め設定された処理を実行させるためのコマンドをアプリケーション管理手段24から取得する。また、コマンド提供手段22は、所定の外部装置に対してローダに関するコマンドを出力する。
なお、本実施形態において、ローダとは、例えばプログラムを外部記憶装置からコンピュータの記憶領域に読み込むために使用される記憶領域内に常駐するプログラム等を意味するが、これに限定されるものではない。また、本実施形態において、コマンドとは、例えば上述したローダに対して所定の実行や制御を与えるためのコマンド等を意味するが、これに限定されるものではない。また、各コマンドは、例えば上述した利用者端末12から取得してもよく、またアプリケーション管理手段24やシステム管理手段25により取得することができる。
ストレージ管理手段23は、自分のMACアドレス等のPLC11の識別情報やPLC11内で動作された内容、出力結果等を記憶するための記憶手段である。また、ストレージ管理手段23は、評価期間の判定等を行うための領域を有し、その領域に対して、例えばプログラムの実行周期の積算値等を格納する。
また、ストレージ管理手段23は、例えば、フラッシュメモリやSDカード(登録商標)等のような不揮発の書換え可能メモリ(記憶手段)と接続して所定の情報を記憶させ、必要に応じて読み出せるようにしてもよい。ストレージ管理手段23は、取得した情報をアプリケーション管理手段24やシステム管理手段25等に出力したり、アプリケーション管理手段24やシステム管理手段25等から得られた情報を記憶する。
アプリケーション管理手段24は、本実施形態におけるPLC11の使用期間等を管理し、利用者に適切な使用を行わせるためのアプリケーション(プログラム)等を管理する。具体的には、アプリケーション管理手段24は、例えばプログラムの実行周期を積算し、積算により得られた積算値がPLC11の評価期間が予め設定された閾値を超えた場合に、アプリケーション(プログラム)の実行を阻止することで、PLC11の使用を停止する。
その場合、アプリケーション管理手段24は、最初にプログラムの実行周期を積算し、積算により得られた積算値が所定の固定時間値を超過すると計数し、該計数値に基づきプログラムの累積実行時間を求める。次に、アプリケーション管理手段24は、該累積実行時間が予め設定された評価期間を超過することによりプログラムの実行を阻止することで、PLC11の使用を停止する。
また、アプリケーション管理手段24は、例えば上述した積算値が、上述した固定時間を超過する毎に所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって累積実行時間を算出してもよい。その場合、アプリケーション管理手段24は、プログラムの実行回数が、設定された固定回数を超過する毎に所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって積算値を算出してもよい。
なお、フラグを書き込む具体例については後述する。また、アプリケーション管理手段24は、上述したフラグ数の判定により、プログラムを評価期間の満了期間以上実行した場合に、次回のプログラムの実行を阻止する。
システム管理手段25は、PLC11全体のシステム動作を管理する。具体的には、システム管理手段25は、SW監視手段26からのスイッチ情報に基づいて、使用時間の計測等を行う。なお、このときの時間情報は、例えばカレンダIC27から取得することができる。また、システム管理手段25は、計測された実使用時間と予め設定された使用時間とを比較し、実使用時間が、予め設定された使用時間を超えた場合には、プログラムの実行を阻止するに先立ち、光や音声等で周囲にいる利用者等に対して通知を行う。なお、通知等は、アプリケーション管理手段24に通知用のコマンドを発生させることで、通知手段29により所定の通知(例えば、アラーム出力等)を行わせることができる。
また、システム管理手段25は、利用者端末12から取得した正規購入用又はレンタル用の所定のコマンドを実行する。これにより、システム管理手段25は、例えばストレージ管理手段23内に記憶された評価用コントローラとしての各種設定情報を書き換えて、評価期間の満了後もPLC11の継続使用を実現することができる。なお、システム管理手段25は、例えば外部から得られる固有のコマンドに含まれるMACアドレスと自分のMACアドレスとを比較し、同一である場合にコマンドを実行することができるが、これに限定されるものではない。
SW管理手段26は、例えば、PLC11自体に設けられた各スイッチ(例えば、電源スイッチやキースイッチ(KeySW)、局番スイッチ(SW)等)から利用者により選択されたスイッチに対する信号をシステム管理手段25に出力する。
カレンダIC27は、日時情報を取得し、取得した日時情報(例えば、日付、時間だけでなく、例えば曜日等も含む)をシステム管理手段25に出力する。なお、カレンダIC27は、例えばRTC(Real Time Clock)等を用いることができるが、これに限定されるものではない。
I/O制御手段28は、PLC11やI/Oモジュール13等の外部装置との間で、制御データやメッセージデータ等の送受信を制御する。また、I/O制御手段28は、取得した各データをアプリケーション管理手段24やシステム管理手段25に出力する。
通知手段29は、例えばLED等の発光部やスピーカ等の音声出力部等を有し、外部への通知が必要な場合に、アプリケーション管理手段24からの指示により、外部への通知を行う。なお、通知手段29は、PLC11の内部に設けられていてもよく、外部に設けられていてもよい。
<PLC11におけるハードウェア構成例>
次に、本実施形態におけるPLC11のハードウェア構成例について、図を用いて説明する。図3は、本実施形態におけるPLCのハードウェア構成の一例を示す図である。図3に示すPLC11のハードウェア構成は、CPU31と、ドライバ/レシーバ(ネットワーク接続装置)32と、バスコントローラ33と、フラッシュ(FLASH)メモリ34と、プログラムメモリ35と、データメモリ36と、RTC37と、スイッチ38と、LED39と、スピーカ40と、電池41と、電源42と、リセット回路43とを有する。なお、CPU31、ドライバ/レシーバ32、バスコントローラ33、フラッシュメモリ34、プログラムメモリ35、データメモリ36、RTC37、スイッチ38、LED39、及びスピーカ40は、システムバスB等により接続されている。
CPU31は、PLC11全体の制御を行う。具体的には、CPU31は、予め設定された支援ツール等に対応するシステムプログラム及びユーザプログラム等を実行する。なお、プログラムの実行は、例えば上述したリング状のネットワーク15を周回するデータの交換周期に同期して実行される。その一例を説明するが、PLC11−1は、例えば1ms毎にデータフレームをネットワーク15に送出し周回させている。I/Oモジュール13は、周回しているデータフレームを受信すると、自I/O情報をデータフレームに付加した上で再びネットワーク15にデータフレームを送信している。このようにして本発明のプログラマブルコントローラを接続するネットワークは、データフレームをバケツリレーのように伝達している。PLC11−1は、ネットワーク15を一巡したデータフレームを受信してI/Oモジュール13からI/O情報を取得し、自身に搭載されたプログラム(アプリケーションプログラム)にI/O情報を与えて制御の演算を実行している。
また、本実施形態では、上述したシステムプログラム及びユーザプログラムを電源断時も保存しておくために、例えば不揮発の書換え可能メモリであるフラッシュメモリ34に等に記憶しておくことができる。
また、CPU31には、ドライバ/レシーバ32が接続されている。ドライバ/レシーバ32は、支援ツールを有する利用者端末12から得られる利用者の指示を伝えるための機器である。なお、ドライバ/レシーバ32は、例えばシリアルバスやネットワーク、イーサネット(登録商標)等を介して利用者端末12が有する支援ツール等を取得する。また、ドライバ/レシーバ32は、例えばUSBやSDカード等の記録媒体を介して、上述した記録媒体に記録された支援ツール等を取得することができる。この場合、ドライバ/レシーバ32は、取得した支援ツール等をCPU31に出力する。
バスコントローラ33は、PLC11の制御対象であるI/Oモジュール13へのデータ交換を行う。具体的には、バスコントローラ33は、評価対象機器である所定のI/Oモジュール13に対して処理の指示を行い、その処理結果から、処理速度や処理精度等の結果を取得する。なお、バスコントローラ33は、例えばネットワークLSI(Large Scale Integration)等を用いることができるがこれに限定されるものではない。
フラッシュメモリ34は、CPU31による制御に基づいてシステムプログラム及びユーザプログラム(例えば、PLC11の提供プログラム等)を記憶する。なお、フラッシュメモリ34は、SRAM(Static Random Access Memory)に比べて読み出し/書き込み速度が低速である。そのため、PLC11は、フラッシュメモリ34に格納されたユーザプログラム(及びシステムプログラム等)を実行する場合には、速度の速いプログラムメモリ35に展開して実行する。また、本実施形態では、ユーザプログラム及びシステムプログラムが読み出し/書き込みするメモリとしてデータメモリ36を有する。つまり、プログラムメモリ35及びデータメモリ36は、共にSRAM等からなる。
ここで、プログラムメモリ35、及びデータメモリ36は、別々のメモリとして表現されているが物理的に一つのメモリでもよく、またより高速なアプリケーション実行を行うためプログラムメモリを、例えばSDRAM(Synchronous Dynamic Random Access Memory)等の高速なデバイスを用いて実現してもよい。なお、メモリは、例えばデータの消去・書き込みを自由に行うことができ、電源を切っても内容が消えない半導体メモリ等を用いることができるが、これに限定されるものではない。
また、本実施形態では、コントローラであるPLC11のユーザプログラム実行や異常発生時の記録のため、上述したようにカレンダIC27が実装されている。このカレンダIC27は、RTC37により日時等の正確なデータを取得することができる。
また、本実施形態では、スイッチ38等の操作装置を有し、利用者がPLC11に対して直接電源のON/OFF、再起動等の操作を行うことができる。また、本実施形態では、上述したようにLED39やスピーカ40等の利用者への通知手段29を有する。LED39は、光により利用者に所定の使用時間が経過したことや、PLC11が所定の使用時間を超えたために使用できない旨を通知する。また、スピーカ40は音により利用者に所定の使用時間が経過したことや、PLC11が所定の使用時間を超えたために使用できない旨等を通知する。
ここで、上述したデータメモリ36及びRTC37は、それぞれ電池41−1,41−2等を用いてバックアップされていることもある。なお、電池41−1,41−2は、同一の電池であってもよく別々の電池であってもよい。なお、通常は、電源42からの電源供給によりPLC11を稼動させる。また、本実施形態では、リセット回路43により、PLC11の使用時間等をリセットさせることができる。これにより、PLC11の購入時に、所定の使用時間を超えてもそのまま使用させることができる。
<利用者端末12における機能構成例>
次に、上述した利用者端末12における機能構成例について図を用いて説明する。図4は、利用者端末の機能構成の一例を示す図である。図4に示す利用者端末12は、入力手段51と、出力手段52と、記憶手段53と、PLC(コントローラ)実行手段54と、通知手段55と、購入手段56よ、画面生成手段57と、送受信手段58と、制御手段59とを有する。
入力手段51は、利用者等からの各PLC11への所定のプログラムの実行指示や、通知指示、購入指示、画面生成指示、送受信指示等の各種指示の開始/終了等の入力を受け付ける。なお、入力手段51は、例えばキーボードやマウス等のポインティングデバイスからなる。更に、入力手段51は、音声等を入力する音声入力機能があってもよい。
出力手段52は、入力手段51により入力された内容や、入力内容に基づいて実行された結果や経過等を出力する。なお、出力手段52は、例えばディスプレイやスピーカ等からなる。
記憶手段53は、本実施形態において必要となる各種情報(例えば、PLC11に所定の実行をさせる支援ツールやシステムプログラム、ユーザプログラム、PLC11の識別情報、鍵情報、各種設定情報等)を記憶する。また、記憶手段53は、必要に応じて記憶されている各種データを読み出すことができる。
PLC実行手段54は、記憶手段53等に記憶された支援ツール等に基づいて、PLC11に対して所定の処理(プログラム等)を実行させる。このとき、PLC実行手段54は、PLC11−1〜11−3毎に対して個別に所定の処理を実行させてもよく、複数のPLCに対して所定の処理を実行させてもよい。なお、PLC実行手段54は、必要に応じて最新の支援ツールを、通信ネットワーク17を介して提供者端末16から取得することができる。
通知手段55は、PLC11から予め設定された評価期間が満了した等の場合に、出力手段52により利用者に対して所定の通知(例えば、アラーム出力等)を行う。なお、通知手段55による通知内容は、PLC11から得られる通知内容に基づいて、画面生成手段57により所定の画面を生成して表示させてもよく、光や音声等により通知してもよい。
購入手段56は、利用者が評価用のPLC11を実際に購入する場合に、提供者端末16と通信ネットワーク17を介して接続して所定の購入手続を行う。また、購入手段56は、所定の購入手続として買い取りによる購入だけでなく、PLC11の所定期間のレンタル使用の手続を行うことができる。
なお、所定の購入手続とは、例えば提供者端末16に対して、PLC11を購入するか、レンタルするか、購入しないかの何れかを示す通知情報を送信する。また、本実施形態では、PLC11の識別情報(例えば、MACアドレス)も提供者端末16に送信する。また、本実施形態では、例えば購入時又はレンタル時において、PLC11の評価期間経過後も継続して使用できるようにするための所定の情報(例えば、コマンド情報等)を取得する際に暗号化を行うため、予め設定された自分の鍵情報を提供者端末16に送信してもよい。
また、購入手段56は、通信ネットワーク17を介して提供者端末16から取得した情報が暗号化されていた場合に、予め設定された鍵情報対応する復号化処理を行う。また、購入手段56は、復号化処理により得られる提供者端末16から得られる情報に基づいて、PLC実行手段54により所定のPLC11に対して正規使用又はレンタル使用の動作を行う処理を実行させる。
画面生成手段57は、利用者が通信ケーブル14等に接続された各PLC11に対してどのような処理をさせるかといった支援ツールの設定画面を生成する。また、画面生成手段57は、PLC11からの評価期間満了を通知する通知情報を表示するための画面を生成する。また、画面生成手段57は、評価期間があとどのくらい残っているかといった画面等を生成することもできる。
送受信手段58は、通信ケーブル14や通信ネットワーク17を用いて接続可能な外部装置から各種情報(例えば、支援ツール(各種プログラム等)やコマンド情報、各種設定情報、所定の処理の実行結果等)を取得するためのインタフェースである。また、送受信手段58は、例えば通知手段55により得られる通知情報やPLC11の実行結果等の各種情報を外部装置に送信することもできる。
制御手段59は、利用者端末12の各構成部全体の制御を行う。具体的には、制御手段59は、例えば利用者等による入力手段51からの指示等に基づいて、PLC11に対する所定処理の実行や、PLC11の購入処理等の各処理における制御等を行う。
<提供者端末16の機能構成例>
次に、上述した提供者端末16における機能構成例について図を用いて説明する。図5は、提供者端末の機能構成の一例を示す図である。図5に示す提供者端末16利用者端末12は、入力手段61と、出力手段62と、記憶手段63と、PLC(コントローラ)管理手段64と、鍵取得手段65と、コマンド生成手段66と、暗号化手段67と、送受信手段68と、制御手段69とを有する。
入力手段61は、提供者等からのPLC管理指示、鍵取得指示、コマンド生成指示、暗号化指示、送受信指示等の各種指示の開始/終了等の入力を受け付ける。なお、入力手段61は、例えばキーボードやマウス等のポインティングデバイスからなる。更に、入力手段61は、音声等を入力する音声入力機能があってもよい。
出力手段62は、入力手段61により入力された内容や、入力内容に基づいて実行された結果や経過等を出力する。なお、出力手段62は、例えばディスプレイやスピーカ等からなる。
記憶手段63は、本実施形態において必要となる各種情報(例えば、利用者端末12に送信し、PLC11に所定の実行をさせる支援ツールやシステムプログラム、ユーザプログラム、各種設定情報等)を記憶する。また、記憶手段53は、必要に応じて記憶されている各種データを読み出すことができる。
PLC管理手段64は、利用者端末12毎に、評価版として提供しているPLC11の識別情報や台数、購入履歴等を管理する。なお、購入履歴としては、例えば購入した場合や現在レンタル中である場合を分けて管理できる履歴情報を含むが、これに限定されるものではない。
鍵取得手段65は、利用者端末12から少なくとも1台のPLC11の購入時やレンタル使用時に、現在使用しているPLC11を評価期間満了後も継続して使用するためのコマンド情報を暗号化するための鍵情報を取得する。なお、鍵情報は、PLC12の購入時やレンタル使用時に利用者端末12から送信されるが、送信されなかった場合に、鍵情報取得手段65から利用者端末12に対して鍵情報を要求することもできる。
コマンド生成手段66は、利用者端末12から得られる購入(正規版)要求又はレンタル要求に基づいて対応するコマンドを生成する。なお、コマンドとは、例えば、PLC11に対して正規版として評価期間満了後も継続して無期限で使用可能にするコマンドや、評価期間満了後、レンタル版として更に所定期間だけ継続して使用可能にするコマンドを含む。
なお、コマンド生成手段66は、生成するコマンドにPLC11の識別情報を含める。識別情報としては、MACアドレス等を用いることができるが、これに限定されるものではない。この識別情報は、例えば利用者端末12から送信される。
暗号化手段67は、コマンド生成手段66で生成されたコマンドの送信時に、上述した鍵取得手段65により取得された鍵情報に基づいて暗号化を行う。コマンドを暗号化することで、送信したデータが盗難されても他のPLC11に流用されるのを防止することができる。なお、本実施形態では、例えば利用者端末12と、提供者端末16とが専用回線で通信される場合には、コマンドを暗号化せずに利用者端末12に送信してもよい。したがって、そのような場合には、鍵取得手段65や暗号化手段67の機能は必要ない。
送受信手段68は、通信ネットワーク17を介して接続可能な1又は複数の利用者端末12から各種情報(例えば、購入要求等)を取得するためのインタフェースである。また、送受信手段68は、例えばコマンド生成手段66により生成されたコマンドを、通信ネットワーク17を介して利用者端末12に送信する。また、送受信手段68は、通信ネットワーク17に接続された外部装置等から必要な各種情報を取得したり、送信したりすることができる。
制御手段69は、提供者端末16の各構成部全体の制御を行う。具体的には、制御手段69は、例えば提供者等による入力手段61からの指示等に基づいて、PLC11の管理や利用者端末12に対するコマンド発行等の各処理における制御等を行う。
<利用者端末12、提供者端末16におけるハードウェア構成例>
次に、利用者端末12、提供者端末16におけるハードウェア構成例について図を用いて説明する。図6は、本実施形態における利用者端末及び提供者端末のハードウェア構成の一例を示す図である。
図6における利用者端末12、提供者端末16には、入力装置71と、出力装置72と、ドライブ装置73と、補助記憶装置74と、メモリ装置75と、各種制御を行うCPU76と、ネットワーク接続装置77とを有するよう構成されており、これらはシステムバスBで相互に接続されている。
入力装置71は、ユーザ等が操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザ等からのプログラムの実行等、各種操作信号を入力する。
出力装置72は、本発明における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイを有し、CPU76が有する制御プログラムによりプログラムの実行経過や結果等を表示することができる。
ここで、本発明においてコンピュータ本体にインストールされる実行プログラムは、例えばUSBメモリやCD−ROM等の可搬型の記録媒体78等により提供される。プログラムを記録した記録媒体78は、ドライブ装置73にセット可能であり、記録媒体78に含まれる実行プログラムが、記録媒体78からドライブ装置73を介して補助記憶装置74にインストールされる。
補助記憶装置74は、ハードディスク等のストレージ手段であり、本発明における実行プログラムやコンピュータに設けられた制御プログラム等を記憶し、必要に応じて入出力を行うことができる。
メモリ装置75は、CPU76により補助記憶装置74から読み出された実行プログラム等を格納する。なお、メモリ装置75は、ROM(Read Only Memory)やRAM(Random Access Memory)等からなる。
CPU76は、OS(Operating System)等の制御プログラム、及びメモリ装置75に格納されている実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して、本実施形態における各処理を実現することができる。なお、プログラムの実行中に必要な各種情報等は、補助記憶装置74から取得することができ、また実行結果等を格納することもできる。
ネットワーク接続装置77は、通信ネットワーク等と接続することにより、実行プログラムを通信ネットワークに接続されている他の端末等から取得したり、プログラムを実行することで得られた実行結果又は本発明における実行プログラム自体を他の端末等に提供することができる。
<I/Oモジュール13とのデータ交換とユーザアプリケーションの実行手順の関係>
次に、I/Oモジュール13とのデータ交換とユーザアプリケーション(プログラム)の実行手順の関係について、図を用いて説明する。図7は、PLCにおけるプログラムの実行周期例を説明するための図である。
本実施形態において、図7の例に示すユーザアプリケーションは、例えばI/Oモジュール13からのデータを取り込み、演算を実行した後、I/Oモジュール13に演算結果のデータを送ることで一連の演算処理を完了する。図7の説明において、上述した一連の処理を行う期間を「スキャン」と称する。
図7に示すように、スキャンとスキャンの間の期間81は、コントローラの管理(例えば、異常監視やシステム制御処理)を行っている。以下の説明において、この期間81は、「スキャンエンド処理期間」という。
コントローラであるPLC11は、スキャン開始までに入力データをアプリケーションに提供するため、まず入力データ82を読み込み、読み込んだ入力データ82をアプリケーションの入力データ領域にコピーする(図7に示す入力データ82から入力データ83への処理)。
また、図7の例では、前回の出力データ84を書き出す(図7に示す出力データ84から出力データ85への処理)。ここで、入力データ読み込みから次の入力データ読み込みまで、或いは、アプリケーション実行の入力から次アプリケーション実行の入力までの期間86は、利用者によって定義される数値でありスキャン周期と呼ばれる。コントローラであるPLC11は、このスキャン周期に基づいて、所定の演算処理や入出力データ処理(図7に示すユーザプログラム処理期間87)を行う。また、バス処理では、演算処理としてメッセージ伝送88等の処理を行う。
なお、上述した一連の処理は、図7に示すように一定サイクルで実行され、このサイクルは、例えば上述したリング状のネットワーク15を周回するデータの交換周期に同期して実行される。
ここで、本実施形態では、コントローラであるPLC11の評価用としての提供にあたり、評価期間の判定をアプリケーション実行の積算時間で行うことにする。なお、評価期間の判定には、例えば上述したカレンダIC27を用いた日付による判定も可能である。しかしながら、例えば利用者が実機評価を行わず(コントローラの電源を入れず)にいた場合に評価期間が短くなることや、評価機を貸し出す毎に評価完了日付を設定する必要があること、更にはバッテリを装着せずに運用する可能性があること等から好ましい方法とはいえない。
そこで、本実施形態では、評価用コントローラとして使用するPLC11に対し、スキャンエンド処理期間81においてコントローラ管理処理の中でアプリケーションの実行中を判断する。具体的には、本実施形態は、例えばCPU31の制御により、プログラムの実行周期を積算し、積算により得られた積算値が予め設定された閾値を超過した場合にプログラムの実行を阻止することで、PLC11の使用を停止する。なお、積算値等は、上述したフラッシュメモリ34等に記憶して管理される。
<PLC11における評価期間の判定及び実行制御例>
ここで、上述したPLC11における評価期間の判定及び実行制御例について具体的に説明する。
<第1実施例>
図8は、評価期間の判定及び実行制御の第1実施例を説明するためのフローチャートである。
図8の例において、第1実施例では、まず上述したスキャン時間を積算時間に加算する(S01)。このように、上述したスキャン時間を基準に積算することで、例えば上述したリング状のネットワーク15を周回するデータの交換周期に同期して実行されるプログラムの実行周期を積算することができる。
また、第1実施例では、S01により積算された積算時間(積算値)が予め設定された閾値以上であるか否かを判断する(S02)。なお、閾値としては、例えば5〜10時間、1〜2週間、1〜3ヶ月等の時間を設定することができ、この設定は、例えばPLC11を提供する提供者側が設定することができる。また、第1実施例の場合には、この閾値が上述した評価期間となる。ここで、第1実施例では、積算時間が閾値以上である場合(S02において、YES)、予め設定された通知手段により利用者等に通知を行い(S03)、その後、プログラムの実行を阻止する(S04)。また、第1実施例では、S02の処理において、積算時間が閾値以上でない場合(S02において、NO)、S01に戻りプログラムの実行を行うことができる。なお、積算時間は、プログラムの実行周期に対応させて上述したフラッシュメモリ34等に記憶しておくことで管理することができる。
これにより、評価期間の満了に対して適切なタイミングでPLC11を停止させることができる。なお、図8に示す処理は、例えば上述したアプリケーション管理手段24等により行われる。
通常、PLC11は、電源ON/OFF、リセット、或いは利用者端末12等から得られる支援ツールからのアプリケーション起動指示等によりアプリケーションを実行する。その場合に、第1実施例では、PLC11によるプログラムの実行時に、上述したフラッシュメモリ34上の積算時間をチェックし、評価期間に対応する閾値を超過している場合にアプリケーションの実行を行わないようにする。
上述した第1実施例では、例えば1又は複数のPLC11と、1又は複数のI/Oモジュール13とがデータ交換バスを介して所定の周期でデータ交換を行い、PLC11がI/Oモジュール13を介して当該I/Oモジュールに接続された外部機器を制御するプログラマブルコントローラシステム18で適用することができる。この場合、PLC11は、上述したデータ交換の所定の周期に同期して実行されるプログラムの実行周期を積算し、積算により得られた積算値が予め設定された閾値を超過すると、プログラムの実行を阻止する。これにより、第1実施例では、利用者によるプログラマブルコントローラの不正使用を防止することができる。
<第2実施例>
次に、第2実施例について説明する。第2実施例では、プログラムの実行周期に基づき、複数回のプログラムの実行に対する時間(固定時間)を設定する。例えば、プログラムの実行周期が100msであれば、固定時間として1分を設定する。そして、第2実施例では、プログラムの実行周期を積算し、積算された積算時間(積算値)が固定時間を超過すると計数し、この計数値に基づきプログラムの累積実行時間を求める。また、第2実施例では、この累積実行時間が予め設定された評価期間を超過することによりプログラムの実行を阻止する。
なお、第2実施例では、例えば、上述した積算時間が固定時間を超過する毎に、メモリ等の記憶手段に予め設けられた所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって上述した累積実行時間を算出してもよい。なお、第2実施例では、例えばプログラムの実行が1分経過する毎に1つのフラグの書き込みが行われる。つまり、フラグのセットは、上述した積算時間が上述した固定時間を超過した回数を意味する。また、第2実施例では、データ領域にセットされたフラグ数によって得られる累積実行時間と、上述した評価期間に対応する閾値とに基づいて評価時間の判定を行い、実行制御を行う。
ここで、図9は、評価期間の判定及び実行制御の第2実施例を説明するためのフローチャートである。また、図10は、図9に対応するフラグ書き込みの一例を示す図である。
ここで、図10の例では、フラグを書込む不揮発メモリ領域としてフラッシュメモリ34を用いているが、これに限定されるものではない。図10に示すフラッシュメモリ34は、全領域の一部に評価中ビット91、閾値92、判定領域93の各情報を記憶する領域を含んでいる。評価中ビット91には、正規版、評価版、レンタル版等のモード情報をそれぞれ識別する識別フラグを含んでいる。なお、図10の例では、正規版を「0」、評価版を「1」、レンタル版を「2」として分類しているが、分類内容についてはこれに限定されるものではない。
また、閾値92は、評価期間に対応する閾値が設定される。なお、閾値92は、PLC11の提供者側が設定することができるが、これに限定されるものではなく、例えば初期状態として所定の時間(例えば、10時間等)が設定されていてもよい。
また、判定領域93は、上述したフラグの書き込み領域を示しており、閾値92の時間と上述した固定時間とに応じた領域が設定される。図10の例において、初期状態では、全ビットに「1」が設定され、閾値92で設定された単位時間毎に1ビットずつ「0」に書き込みが行われる。例えば、上述した固定時間を1分とした場合には、1分=1ビットであり、1ケ月=30日=720時間=43200分である。したがって、そのときに使用されるデータ量は、約5400byte(約6Kbyte弱)の情報の格納領域を設定する。
なお、図9の例では、評価中ビット91の所定領域に、評価版である旨の情報が含まれているPLC11に対する処理を示しており、図9の処理を行う前には、PLC11が評価版であるか否かの判断が行われる。したがって、本実施形態では、最初に評価中ビット91の内容を確認し、PLC11が正規版である場合には、以下の処理は行わない。
図9の例において、第2実施例は、まず上述したスキャン時間を積算時間に加算し(S11)、その後、積算時間が上述した固定時間(例えば、1分)以上であるか否かを判断する(S12)。第2実施例は、積算時間が固定時間以上である場合(S12において、YES)、判定領域93の所定のフラグの書き込み位置をインクリメント(+1)し(S13)、不揮発性メモリ(例えば、フラッシュメモリ34)へフラグの書き込みを行う(S14)。その後、第2実施例は、積算時間をクリアする(S15)。
ここで、第2実施例は、S15の処理が終了後、又はS12の処理において、積算時間が固定時間以上でない場合(S12においてNO)、全フラグの書き込みが完了したか否かを判断する(S16)。なお、この処理は、言い換えれば、書き込まれたフラグの数により得られるプログラムの累積実行時間が、上述した閾値92以上か否かを判断することを意味する。
第2実施例は、全フラグの書き込みが完了している場合(S16において、YES)、予め設定された通知手段により利用者等に通知を行い(S17)、その後、プログラムの実行を阻止する(S18)。また、第2実施例では、S16の処理において、全フラグの書き込みが完了していない場合(S16において、NO)、S11に戻りプログラムの実行を行うことができる。なお、積算時間は、プログラムの実行周期に対応させて、例えば上述したフラッシュメモリ34等に記憶しておくことで管理することができる。
上述した処理により、PLC11における時間監視を適切に行うことができる。なお、図9に示す処理は、例えば上述したアプリケーション管理手段24等により行われる。
上述したように、第2実施例では、不揮発性メモリであるフラッシュメモリ34を例えばセクタ単位で全ビットON(ビット「1」)の状態で初期化し、ワード単位でビットをONからOFFへの書き込みを行う。そこで、本実施形態では、ビットをOFFする時間を予めシステムプログラムで設定し、その時間が経過する毎に1ビットずつOFFする。これにより、例えばコントローラの電源が、ON/OFFされた場合であっても、それまでの経過時間が記録として残ることになる。
上述した第2実施例によれば、固定時間に対応させてフラグをセットして利用者が使用した時間を管理することで、フラグの書き込み処理にある程度の時間間隔を持たせることができ処理を軽減することができる。また、時間ではなく、フラグで管理されるため、他人がこのデータを見ても評価期間を管理しているとは気付かないため、他人のデータ改竄等による不正使用を防止することができる。
<第3実施例>
次に、第3実施例について説明する。PLC11は、産業用コンピュータであり連続稼動も可能なモジュールである。したがって、PLC11を使用して評価するアプリケーション(プログラム)が、24時間連続稼動のアプリケーションである可能性もある。この場合には、アプリケーションの起動タイミングでのみ評価満了期間の判定を行っていると、連続稼働中のPLC11では評価期間の満了を認識することができない。
また、評価期間の満了をもってアプリケーションを強制的に終了させることも可能であるが、そのような場合評価中のシステムによっては甚大な事故を引き起こす可能性もあり、悪意のない評価利用者に対し多大な損失を与える可能性がある。
そこで、第3実施例では、評価用として使用しているPLC11に対し、上述した評価期間の満了前の所定のタイミングで利用者に通知を行って利用者に正規品への移行を促す。また、第3実施例では、上述した通知を行っているにもかかわらず、継続して使い続けている場合には、悪意ある利用者と判断し、評価期間満了後にプログラムの実行を阻止する。
具体的には、第3実施例では、フラッシュメモリ34上に、上述した評価満了期間判定のための閾値(第1閾値)とは別に、第2の期間満了判定のための閾値(第2閾値)を設ける。また、第3実施例では、第1閾値の経過後も、プログラムの継続使用時間を積算し、積算したこれが一定期間(例えば、2週間)を経過した場合には、強制的にアプリケーション(プログラム)の実行を阻止して、PLC11の使用を停止する。なお、上述した第3実施例では、第1閾値と第2閾値との合計が、プログラムの実行を阻止するまでの評価時間に相当する。
これにより、第3実施例では、評価期間満了前に通知を行い、その後も所定の期間PLC11が使用できるため、24時間連続稼動のシステムにも適用することができる。また、第3実施例では、PLC11を使い続けられることを防止し、正規品購入による売上につなげることができる。
なお、上述した通知としては、例えば軽故障表示等を行うことができる。例えばPLC11のモジュール前面等に設けられたLED39、内部に設けられたスピーカ40、利用者端末12上の支援ツールによる故障表示画面の表示、アプリケーションデータメモリ上のRAS領域等に表示される。ここで、PLC11には、アプリケーションの実行に影響はないものの利用者に対処の必要な不具合を通知するためのRAS通知機能(以下、「軽故障表示」という)がある。これは、例えば「バックアップ用の電池の電圧が低下している」、「一時的にアプリケーションの渋滞が発生した」等のときに通知されるものである。このように、軽故障表示を行うことで、評価期間満了に対する利用者への通知が可能となる。
ここで、図11は、評価期間の判定及び実行制御の第3実施例を説明するためのフローチャートである。また、図12は、図11に対応するフラグ書き込みの一例を示す図である。
なお、図12の例では、上述した図10に示す例と比較すると、2つの閾値(第1閾値、第2閾値)92−1,92−2と、2つの判定領域(第1のデータ領域(以下、単に「第1領域」という)、第2のデータ領域(以下、単に「第2領域」という))93−1,93−2とを有する。
つまり、図11、図12の例では、2種類の書き込みフラグ(第1フラグ、第2フラグ)にそれぞれ対応する閾値と、判定領域とを有する。なお、2つの閾値92−1,92−2は、それぞれ異なる時間でもよく、同一の時間でもよい。また、2つの判定領域93−1,93−2の大きさは、それぞれ閾値92−1,92−2と、上述した第2実施例に示す固定時間とに基づいて設定される。例えば、評価期間に対する判定及び期間満了後の通知を行うための判定で用いられる閾値92−1として、1ヶ月等を設定し、評価期間満了後の所定の期間(強制停止期間満了)の判定用いられる閾値92−2として2週間等を設定することができるが、これに限定されるものではない。
したがって、第3実施例では、積算値が固定時間を超過する毎にフラグを書込む場合に、最初に第1領域にフラグを書き込み、第1領域の全てのフラグを書き込んだ後、第1領域とは異なる第2領域にフラグを書き込み、第2領域に書き込まれたフラグ数によって評価期間の満了を判定することになる。
具体的には、図11の例において、第3実施例は、まず上述したスキャン時間を積算時間に加算し(S21)、その後、積算時間が上述した固定時間(例えば、1分)以上であるか否かを判断する(S22)。第3実施例は、積算時間が固定時間以上である場合(S22において、YES)、上述した第1領域(例えば、図12に示す判定領域93−1)への書き込みが完了しているか否かを判断する(S23)。
第3実施例は、第1領域への書き込みが完了していない場合(S23において、NO)、第1フラグの書き込み位置をインクリメント(+1)し(S24)、第1領域へフラグの書き込みを行う(S25)。つまり、S24,S25の処理では、第1領域中で未だ第1フラグが書き込まれていない位置にフラグの書き込みを行う。
また、第3実施例は、S23の処理において、第1領域への書き込みが完了した場合(S23において、YES)、第2フラグの書き込み位置をインクリメント(+1)し(S26)、第2領域(例えば、図12に示す判定領域93−2)へフラグの書き込みを行う(S27)。つまり、S26,S27の処理では、第2領域中で未だ第2フラグが書き込まれていない位置にフラグの書き込みを行う。
その後、第3実施例は、積算時間をクリアする(S28)。ここで、第3実施例は、S28の処理が終了後、又はS22の処理において、積算時間が固定時間以上でない場合(S22においてNO)、第2領域の全フラグの書き込みが完了したか否かを判断する(S29)。なお、この処理は、言い換えれば、第1領域及び第2領域に書き込まれたフラグの数により得られるプログラムの累積実行時間が、上述した閾値92-1及び閾値92−2の合計時間以上か否かを判断することを意味する。
第3実施例は、第2領域の全フラグの書き込みが完了している場合(S29において、YES)、プログラムの実行を阻止する(S30)。また、第3実施例では、S29の処理において、全フラグの書き込みが完了していない場合(S29において、NO)、S21に戻りプログラムの実行を行うことができる。なお、積算時間は、プログラムの実行周期に対応させて上述したフラッシュメモリ34等に記憶しておくことで管理することができる。
上述した処理により、2つの閾値を用いたPLC11における時間監視を適切に行うことができる。なお、図11に示す処理は、例えば上述したアプリケーション管理手段24等により行われる。
ここで、第3の実施例では、第1領域への書き込み完了後に利用者への通知処理が行われるが、図11には通知処理が示されていない。そこで、以下に、第3実施例に対する通知処理の一例について説明する。図13は、第3実施例に対する通知処理の一例を示すフローチャートである。なお、図13に示す例では、LEDにおける通知例を示すが、これに限定されるものではなく、例えば所定の音声等の出力による通知等であってもよく、その他のアラーム出力であってもよい。
図13の例において、第3実施例における通知処理は、まず上述したフラッシュメモリ34等の不揮発性メモリに設けられた判定領域93を確認し(S31)、上述した第2領域(判定領域93−2)への書き込みが完了したか否かを判断する(S32)。
ここで、通知処理は、第2領域への書き込みが完了していない場合(S32において、NO)、次に、上述した第1領域(判定領域93−1)への書き込みが完了したか否かを判断する(S33)。通知処理は、S33において、第1領域への書き込みが完了している場合(S33において、YES)、故障RASを通知し(S34)、故障LEDを表示する(S35)。
また、通知処理は、第1領域への書き込みが完了していない場合(S33において、NO)、そのまま処理を終了する。また、通知処理は、上述したS32の処理において、第2領域への書き込みが完了している場合(S32において、YES)、評価コントローラとしての使用を中止するため、通知を行わずにそのまま処理を終了する。なお、第2領域への書き込みが完了している場合には、S34及びS35とは異なる他の通知を行ってもよい。
また、図13に示す処理は、上述した図11に示す処理に統合してもよく、図11の処理とは別に所定の間隔で図13に示す通知処理のみを行ってもよい。図13の処理を図11の処理と分けることで、図13に示す通知のみをプログラムの実行とは関係なく、利用者に通知することができる。これにより、利用者は、PLC11の現在の状況を容易に把握することができる。なお、上述した処理は、例えば上述したアプリケーション管理手段24等により行われる。
つまり、上述した第3実施例では、第1領域と第2領域を設け、フラグを書込む際、第1領域からフラグを書き込み始め、当該第1領域の全領域に対してフラグを書き込み終えると所定の通知(例えば、アラーム出力等)を行い、以降は前記第2領域にフラグを書き込む。また、第3実施例では、当該第1領域に書き込まれたフラグ数と前記第2領域に書き込まれたフラグ数との総フラグ数によって累積実行時間を算出し、算出した累積実行時間が評価期間を超過することにより、プログラムの実行を阻止する。
なお、第3実施例では、上述した第1閾値を評価期間とし、第2閾値を猶予期間として実行制御を行うことができる。具体的には、第3実施例では、フラグを書込む際、評価期間に対応する第1領域からフラグを書き込み始め、当該第1領域の全領域に対してフラグを書き込み終えると評価期間満了を示す所定の通知を行う。また、以降の処理では、猶予期間に対応する第2領域にフラグを書き込み、第2領域に書き込まれたフラグ数によって算出される累積時間が猶予時間を超過することにより、プログラムの実行を阻止してもよい。
更に、第3実施例では、図11、図12に示すように、第2領域(判定領域93−2)を別途設けているが、本発明においてはこれに限定されるものではなく、例えば第1領域を継続使用し、評価満了通知判定と強制停止判定の基準をそれぞれ設けることで対応することも可能である。また、本実施形態では、例えば第3領域や第4領域の多数の領域等を設け、各領域のフラグが書き換わる毎に段階的な通知を利用者に行うこともできる。なお、本実施形態では、最初に評価中ビット91の内容を確認し、PLC11が正規版である場合に、上述の処理は行わない。
<評価状態解除方法(コマンドの具体例)>
ここで、本実施形態において、PLC11を実際に購入した利用者が評価版ではなく、正規版又はレンタル版として使用する場合には、PLC11を後で回収せずに使い回す場合がある。したがって、本実施形態では、評価版である状態(以下、「評価状態」という)を解除して評価用から正規用への変更の仕組みを提供する。
具体的には、上述したように、利用者端末12が、提供者端末16に対して購入手続をすることで、所定のPLC11の評価状態を解除するコマンドを取得する。例えば、本実施形態では、提供者端末16において、イーサネットのMACアドレス等の機器固有の情報に基づいたコマンドを作成し、これを利用者端末12に送信する。利用者端末12は、このコマンドを対象のPLC11に実行させる。
利用者端末12は、コマンドをネットワーク15上で巡回させることで、コマンドを取得した各PLC11が自分のMACアドレスとコマンド内のMACアドレスとを比較し、同一である場合にコマンドが実行される。これにより、PLC11の評価版から正規版又はレンタル版へのモード情報の変更(書き換え等)を個別に行うことができる。
また、コマンド動作は、例えば、上述した図10、図12に示す評価中ビット91に対して、評価版から正規版又はレンタル版の識別情報に書き換えると共に、閾値92の情報や判定領域の情報を初期化する。
<他の機器にアプリケーションを使い回した場合のフラグの立て方>
また、本実施形態において、他の機器(PLC)にアプリケーション(プログラム)を使い回した場合のフラグの立て方について説明する。他の機器にアプリケーションを使い回す場合には、例えばPLC11そのものではなく、コントローラアプリケーション(プログラム)の不正利用ということになる。そのため、本実施形態では、例えばPLC11からアプリケーションをコピーしたとき、そのコピーしたアプリケーションにコピーフラグを設定する。なお、このフラグの設定は、例えばフラッシュメモリ34等に行われるが、これに限定されるものではない。ここで、コピーフラグが付与されたアプリケーションがダウンロードされた別のPLC11は、評価用コントローラという位置付けで動作させる。
また逆に、正規にダウンロードされた場合には、予め設定されたキーとなるようなファイルを外部装置から別途ダウンロードし、コピーではこのファイルを移せないようにする。なお、上述の処理は、例えばPLC11のアプリケーション管理手段24等により行われる。
<レンタル用PLCを想定したときのフラグの立て方>
次に、レンタル用PLCを想定したときのフラグの立て方について説明する。レンタル用PLCを想定した場合には、評価用コントローラであるPLC11の評価からPLC11の購入という使い方が想定されるが、レンタル使用の場合も考えられる。
このような場合でも、上述と同様に機器毎の識別情報(例えば、MACアドレス)に基づいたコマンドをダウンロードすることで対応することができる。例えば、レンタル用PLC11の場合には、評価期間としての判定領域の追加、削除、判定領域のリセット、正規版への移行等のフラグを設定しておくことで、PLC11の多種の使用内容に対応することができ、利用者のニーズに適切に対応することができる。
<利用者端末12における処理手順>
ここで、利用者端末12における処理手順について、フローチャートを用いて説明する。図14は、利用者端末における処理手順の一例を示すフローチャートである。図14において、利用者端末12は、まず評価版(評価用コントローラ)として使用しているPLC11に対して所定のプログラム等の実行指示を行い(S41)、また実行結果等を取得する(S42)。なお、実行結果とは、処理結果の他にも例えばエラー情報の取得や残りの評価期間の情報等を取得することができる。
ここで、利用者端末12は、PLC11から評価期間が満了した旨の通知があるか否かを判断し(S43)、通知がある場合(S43において、YES)、画面等に表示して利用者に通知すると共に、利用者から購入する指示があったか否かを判断する(S44)。
ここで、利用者端末12は、購入指示があった場合(S44において、YES)、購入要求(レンタルの場合も含む)、PLC11の識別情報(例えば、MACアドレス)、必要に応じて鍵情報を提供者端末16に送信する(S45)。次に、利用者端末12は、提供者端末16から暗号化された購入要求に対応するコマンドを取得したか否かを判断し(S46)、取得していない場合(S46において、NO)、取得するまで待機する。また、利用者端末12は、S45の処理において、暗号化されたコマンドを取得した場合(S45において、YES)、復号化処理を行い(S47)、処理されたコマンドを実行する(S48)。
ここで、S48の処理の終了後、S43の処理においてPLC11からの通知がない場合(S43において、NO)、又は、S44の処理において利用者からの購入指示がない場合(S44において、NO)、処理を終了する。なお、S48の処理の終了後、及びS43の処理においてPLC11からの通知がない場合(S43において、NO)には、上述した処理を繰り返すことができる。一方、S44の処理において、利用者からの購入指示がない場合(S44において、NO)には、PLC11におけるプログラムの実行が阻止され、PLC11が使用できなくなる。
<提供者端末16における処理手順>
ここで、提供者端末16における処理手順について、フローチャートを用いて説明する。図15は、提供者端末における処理手順の一例を示すフローチャートである。図15において、提供者端末16は、まず利用者端末12からの購入要求(レンタルの場合も含む)があったか否かを判断し(S51)、購入要求があった場合(S51において、YES)、購入要求に応じて対象のPLC11に対する所定のコマンドを生成する(S52)。
次に、提供者端末16は、S52の処理で生成したコマンドに対して利用者端末12から得られる鍵情報に基づいて暗号化を行い(S53)、暗号化されたコマンドを利用者端末12に送信する(S54)。なお、提供者端末16は、S51の処理において、利用者端末12からの購入要求がない場合(S51において、NO)、処理を終了する。なお、上述した提供者端末16における処理は、PLC11を提供している利用者端末12に対してPLC11毎に処理が行われる。
また、図15に示す処理は、利用者端末12と提供者端末16とが通信ネットワーク17等で接続されている場合の処理を示しているが、本実施形態においては、これに限定されるものではない。例えば、利用者端末12と提供者端末16とが通信ネットワーク17で接続されていない場合には、両者間のデータのやり取りは郵送等により行われる。
上述したように、本発明によれば、プログラマブルコントローラの使用を適切に制御することができる。つまり、本発明は、プログラマブルコントローラの利用者に対するプログラマブルコントローラとしての提供において、評価期間の高精度な監視を行うことができる。
これにより、既存のコントローラに対しハードウェア等の変更なく、評価期間を利用者のアプリケーション(プログラム)実行時間の合計として判断し、評価期間満了後のコントローラ起動を制限することができる機能を実現する。また、ユーザアプリケーション実行中に評価期間満了となった場合は、アプリケーションを停止しない形で期間満了を所定の通知手段、又はアプリケーションや支援ツール等に通知し、利用者に対し正規品の購入を促すことができる。これにより、正規品への置換えを行わないシステムに対しては悪意ある使用とみなし、一定期間経過後にコントローラの実行を停止することができる。
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
10 提供システム
11 PLC
12 利用者端末
13 入出力モジュール
14 通信ケーブル
15 ネットワーク
16 提供者端末
17 通信ネットワーク
18 プログラマブルコントローラシステム
21 通信インタフェース手段
22 コマンド提供手段
23 ストレージ管理手段
24 アプリケーション管理手段
25 システム管理手段
26 スイッチ(SW)監視手段
27 カレンダIC(日時取得手段)
28 入出力(I/O)制御手段
29 通知手段
31 CPU
32 ドライバ/レシーバ(ネットワーク接続装置)
33 バスコントローラ
34 フラッシュ(FLASH)メモリ
35 プログラムメモリ
36 データメモリ
37 RTC
38 スイッチ
39 LED
40 スピーカ
41 電池
42 電源
43 リセット回路
51,61 入力手段
52,62 出力手段
53,63 記憶手段
54 PLC(コントローラ)実行手段
55 通知手段
56 購入手段
57 画面生成手段
58,68 送受信手段
59,69 制御手段
64 PLC(コントローラ)管理手段
65 鍵取得手段
66 コマンド生成手段
67 暗号化手段
71 入力装置
72 出力装置
73 ドライブ装置
74 補助記憶装置
75 メモリ装置
76 CPU
77 ネットワーク接続装置
78 記録媒体
81,86 期間
82,83 入力データ
84,85 出力データ
87 ユーザプログラム処理期間
88 メッセージ伝送
91 評価中ビット
92 閾値
93 判定領域

Claims (16)

  1. プログラムの実行周期を積算し、積算により得られた積算値が所定の固定時間値を超過する毎に所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数に基づき前記プログラムの累積実行時間を求め、該累積実行時間が予め設定された評価期間の満了前の所定のタイミングで通知を行い、該通知後に前記評価期間を超過することにより前記プログラムの実行を阻止するアプリケーション管理手段を有することを特徴とするプログラマブルコントローラ。
  2. 前記データ領域は、第1のデータ領域と第2のデータ領域で構成され、
    前記アプリケーション管理手段は、
    前記フラグを書込む際、前記第1のデータ領域からフラグを書き込み始め、当該第1のデータ領域の全領域に対してフラグを書き込み終えると所定の通知を行い、以降は前記第2のデータ領域にフラグを書き込み、前記第1のデータ領域に書き込まれたフラグ数と前記第2のデータ領域に書き込まれたフラグ数との総フラグ数によって前記累積実行時間を算出することを特徴とする請求項に記載のプログラマブルコントローラ。
  3. プログラムの実行周期を積算し、積算により得られた積算値が所定の固定時間値を超過する毎に、所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって累積実行時間を算出し、該累積実行時間が予め設定された評価期間を超過した後、所定の猶予期間を待って前記プログラムの実行を阻止するアプリケーション管理手段を有し、
    前記データ領域は第1のデータ領域と第2のデータ領域で構成され、
    前記アプリケーション管理手段は、前記フラグを書込む際、前記評価期間に対応する前記第1のデータ領域からフラグを書き込み始め、当該第1のデータ領域の全領域に対してフラグを書き込み終えると前記評価期間満了を示す所定の通知を行い、以降は前記猶予期間に対応する前記第2のデータ領域にフラグを書き込み、前記第2のデータ領域に書き込まれたフラグ数のみによって算出される累積時間が前記猶予期間を超過することにより、プログラムの実行を阻止することを特徴とするプログラマブルコントローラ。
  4. 前記プログラマブルコントローラは、MACアドレスを含む通信手段と、
    外部からMACアドレスを含んだコマンド受信し、該受信したコマンドに含まれるMACアドレスと前記通信手段に含まれた前記MACアドレスとを比較し、両MACドレスが同一である場合に前記コマンドを実行し、該実行により当該プログラマブルコントローラのモード情報を書き換え、前記累積実行時間が前記評価期間を超過しても前記アプリケーション管理手段に前記プログラムの実行を継続させるシステム管理手段とを更に有することを特徴とする請求項1乃至の何れか1項に記載のプログラマブルコントローラ。
  5. 前記プログラムの実行を阻止するに先立ち、前記プログラムの実行の停止を通知する通知手段を更に有することを特徴とする請求項1乃至の何れか1項に記載のプログラマブルコントローラ。
  6. 前記プログラマブルコントローラは、リング状のデータ交換バスに接続され、該データ交換バスに接続される複数のノードと周期的にデータ交換し、
    前記プログラムは、前記データ交換の周期に同期して起動されることを特徴とする請求項1乃至5の何れか1項に記載のプログラマブルコントローラ。
  7. プログラムを実行する1又は複数のプログラマブルコントローラと、データの入出力を行う1又は複数のI/Oモジュールとがデータ交換バスを介して所定の周期でデータ交換を行い、前記プログラマブルコントローラが前記I/Oモジュールを介して当該I/Oモジュールに接続された外部機器を制御するプログラマブルコントローラシステムにおいて、
    前記プログラマブルコントローラは、前記データ交換の前記所定の周期に同期して実行されるプログラムの実行周期を積算し、積算により得られた積算値が予め設定された閾値の超過前の所定のタイミングで通知を行い、該通知後に前記閾値を超過すると、前記プログラムの実行を阻止するアプリケーション管理手段を有し、
    前記アプリケーション管理手段は、前記プログラムの実行回数が、設定された固定回数を超過する毎に所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって前記積算値を算出することを特徴とするプログラマブルコントローラシステム。
  8. 前記データ領域は、第1のデータ領域と第2のデータ領域で構成され、
    前記アプリケーション管理手段は、
    前記フラグを書込む際、前記第1のデータ領域からフラグを書き込み始め、当該第1のデータ領域の全領域に対してフラグを書き込み終えると所定の通知を行い、以降は前記第2のデータ領域にフラグを書き込み、当該第2のデータ領域に書き込まれたフラグ数と前記第1のデータ領域に書き込まれたフラグ数の総フラグ数によって前記積算値を算出することを特徴とする請求項に記載のプログラマブルコントローラシステム。
  9. 前記プログラマブルコントローラは、MACアドレスを含む通信手段を更に有し、
    外部からMACアドレスを含んだコマンド受信し、この受信したコマンドに含まれるMACアドレスと前記通信手段に含まれた前記MACアドレスとを比較し、両MACドレスが同一である場合に前記コマンドを実行し、このコマンドの実行により当該プログラマブルコントローラのモード情報を書き換え、前記積算値が前記閾値を超過しても前記アプリケーション管理手段に前記プログラムの実行を継続させるシステム管理手段を更に有することを特徴とする請求項7又は8に記載のプログラマブルコントローラシステム。
  10. 前記プログラムの実行を阻止するに先立ち、前記プログラムの実行の停止を通知する通知手段を更に有することを特徴とする請求項7乃至9の何れか1項に記載のプログラマブルコントローラシステム。
  11. プログラムを実行するプログラマブルコントローラと、該プログラマブルコントローラに前記プログラムの実行を指示する利用者端末と、前記プログラマブルコントローラを提供した提供者端末とがネットワーク上に接続された前記プログラマブルコントローラの提供システムであって、
    前記プログラマブルコントローラは、前記プログラムの実行周期を積算し、積算により得られた積算値が所定の固定時間値を超過する毎に所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって前記プログラムの累積実行時間を求め、該累積実行時間が予め設定された評価期間の満了前の所定のタイミングで通知を行い、該通知後に前記評価期間を超過することにより前記プログラムの実行を阻止するアプリケーション管理手段を有することを特徴とする提供システム。
  12. 前記データ領域は、第1のデータ領域と第2のデータ領域で構成され、
    前記アプリケーション管理手段は、
    前記フラグを書込む際、前記第1のデータ領域からフラグを書き込み始め、当該第1のデータ領域の全領域に対してフラグを書き込み終えると所定の通知を行い、以降は前記第2のデータ領域にフラグを書き込み、前記第1のデータ領域に書き込まれたフラグ数と前記第2のデータ領域に書き込まれたフラグ数との総フラグ数によって前記累積実行時間を算出することを特徴とする請求項11に記載の提供システム。
  13. プログラムを実行するプログラマブルコントローラと、該プログラマブルコントローラに前記プログラムの実行を指示する利用者端末と、前記プログラマブルコントローラを提供した提供者端末とがネットワーク上に接続された前記プログラマブルコントローラの提供システムであって、
    前記プログラマブルコントローラは、プログラムの実行周期を積算し、積算により得られた積算値が所定の固定時間値を超過する毎に、所定のデータ領域にフラグを書き込み、該書き込まれたフラグ数によって累積実行時間を算出し、該累積実行時間が予め設定された評価期間を超過した後、所定の猶予期間を待って前記プログラムの実行を阻止するアプリケーション管理手段を有し、
    前記データ領域は第1のデータ領域と第2のデータ領域で構成され、
    前記アプリケーション管理手段は、前記フラグを書込む際、前記評価期間に対応する前記第1のデータ領域からフラグを書き込み始め、当該第1のデータ領域の全領域に対してフラグを書き込み終えると前記評価期間満了を示す所定の通知を行い、以降は前記猶予期間に対応する前記第2のデータ領域にフラグを書き込み、前記第2のデータ領域に書き込まれたフラグ数のみによって算出される累積時間が前記猶予期間を超過することにより、プログラムの実行を阻止することを特徴とする提供システム。
  14. 前記プログラマブルコントローラは、MACアドレスを含む通信手段と、
    外部からMACアドレスを含んだコマンド受信し、該受信したコマンドに含まれるMACアドレスと前記通信手段に含まれた前記MACアドレスとを比較し、両MACドレスが同一である場合に前記コマンドを実行し、該実行により当該プログラマブルコントローラのモード情報を書き換え、前記累積実行時間が前記評価期間を超過しても前記アプリケーション管理手段に前記プログラムの実行を継続させるシステム管理手段とを更に有することを特徴とする請求項11乃至13の何れか1項に記載の提供システム。
  15. 前記プログラムの実行を阻止するに先立ち、前記プログラムの実行の停止を通知する通知手段を更に有することを特徴とする請求項11乃至14の何れか1項に記載の提供システム。
  16. 前記プログラマブルコントローラは、リング状のデータ交換バスに接続され、該データ交換バスに接続される複数のノードと周期的にデータ交換し、
    前記プログラムは、前記データ交換の周期に同期して起動されることを特徴とする請求項11乃至15の何れか1項に記載の提供システム。
JP2014501903A 2012-02-29 2012-02-29 プログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システム Active JP5811265B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/055137 WO2013128603A1 (ja) 2012-02-29 2012-02-29 プログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システム

Publications (2)

Publication Number Publication Date
JPWO2013128603A1 JPWO2013128603A1 (ja) 2015-07-30
JP5811265B2 true JP5811265B2 (ja) 2015-11-11

Family

ID=49081850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014501903A Active JP5811265B2 (ja) 2012-02-29 2012-02-29 プログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システム

Country Status (3)

Country Link
JP (1) JP5811265B2 (ja)
CN (1) CN104081299B (ja)
WO (1) WO2013128603A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020181364A (ja) * 2019-04-25 2020-11-05 オムロン株式会社 制御システムおよび制御方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10416644B2 (en) * 2016-01-07 2019-09-17 Mitsubishi Electric Corporation Programmable controller and synchronization control program
CN112639773A (zh) * 2018-08-30 2021-04-09 三菱电机株式会社 控制装置、控制方法及程序
JP7091986B2 (ja) * 2018-10-05 2022-06-28 オムロン株式会社 制御システム、制御方法、および開発支援プログラム
WO2020070873A1 (ja) * 2018-10-05 2020-04-09 三菱電機株式会社 Cpuユニット、プログラマブルロジックコントローラ、方法、プログラム、及びエンジニアリングツール

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134720A (ja) * 1991-11-11 1993-06-01 Murata Mach Ltd プログラマブルコントローラの計時装置
US5689560A (en) * 1994-04-25 1997-11-18 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for allowing a try-and-buy user interaction
US5765000A (en) * 1994-12-29 1998-06-09 Siemens Energy & Automation, Inc. Dynamic user interrupt scheme in a programmable logic controller
JPH08194748A (ja) * 1995-01-17 1996-07-30 Hitachi Ltd ソフトウェア試用管理システム
JP3694987B2 (ja) * 1996-06-25 2005-09-14 石川島播磨重工業株式会社 三重系フォールトトレラントシステム
CA2313839A1 (en) * 1999-07-27 2001-01-27 Lucent Technologies Inc. Method of monitoring runtime usage of demo evaluation software

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020181364A (ja) * 2019-04-25 2020-11-05 オムロン株式会社 制御システムおよび制御方法

Also Published As

Publication number Publication date
JPWO2013128603A1 (ja) 2015-07-30
CN104081299B (zh) 2016-08-17
CN104081299A (zh) 2014-10-01
WO2013128603A1 (ja) 2013-09-06

Similar Documents

Publication Publication Date Title
JP5811265B2 (ja) プログラマブルコントローラ、プログラマブルコントローラシステム、及びプログラマブルコントローラの提供システム
CN1540657B (zh) 非易失性存储设备和数据处理系统
WO2009055040A1 (en) Dynamic, secure software tagging for software asset management with respect to deployment, configuration, and usage
CN105930193A (zh) 一种基于操作系统的电能表软件在线升级方法及系统
TWI261748B (en) Policy-based response to system errors occurring during OS runtime
US20190095593A1 (en) License information based on baseboard management controller
CN101933024A (zh) 用于数字设备的选项管理系统、方法和记录介质
JP5645725B2 (ja) データ処理装置およびデータ処理システムおよびその制御方法
CN102271054B (zh) 用于网络软件部署评估的书签和性能历史
JP6260005B2 (ja) 機能設定方法
US11243823B2 (en) System and method capable of remotely controlling electronic apparatus to execute program
CN108319869B (zh) 一种自动开标的方法、装置、服务器和存储介质
JP2008084275A (ja) ソフトウェアの改ざん監視装置および改ざん監視方法
CN112187783B (zh) 鉴权方法及装置、电子设备以及存储介质
JP4678217B2 (ja) 数値制御装置の管理方法及びその装置
JP2009009323A (ja) 設定装置、電子機器、及び設定プログラム
JP6439051B2 (ja) ライセンス管理に適した半導体装置
JP2017004293A (ja) セキュリティ制御装置、電子機器、セキュリティ制御方法及びセキュリティ制御プログラム
TWI405071B (zh) 使用時間記錄系統及其記錄方法
JP6365284B2 (ja) 決済システム
WO2020235172A1 (ja) 制御装置、データ不能化プログラム、および制御システム
CN117130865A (zh) 一种传感器参数的配置方法、装置、设备及可读存储介质
WO2020070873A1 (ja) Cpuユニット、プログラマブルロジックコントローラ、方法、プログラム、及びエンジニアリングツール
JP6573749B1 (ja) 制御装置、制御方法及びプログラム
JP2007334821A (ja) アプリケーション保護装置、アプリケーション保護方法およびアプリケーション保護プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150610

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: 20150818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150831

R150 Certificate of patent or registration of utility model

Ref document number: 5811265

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

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