説明

パスワードによるプログラム保護方法

【課題】プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護できるようにする。
【解決手段】本プログラム保護方法は、各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、プログラマブルコントローラ等の機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばプログラマブルコントローラ(プログラマブルロジックコントローラとも称し、以下では説明の都合でPLCと称する)やプログラマブル表示器等のコントローラ分野において、プログラム開発者やプログラム利用者をパスワードにより有効に保護する方法に関するものである。
【背景技術】
【0002】
PLCはコントローラの一つとして、生産設備に配備され、シーケンス制御上のプログラムを実行してそれに接続された生産設備内の各種機械や装置等の制御対象をシーケンス制御するようになっている。PLCは、制御対象の状態に対応したスイッチやセンサ等の入力機器のON/OFF情報を入力し、ラダー言語などで記述されたプログラムに沿って論理演算を実行すると共に、得られた演算結果に従い、リレー,バルブ,アクチュエータ等の出力機器に対し、ON/OFF情報の信号を出力することで制御対象の制御を実行するようになっている。
【0003】
上記プログラムの記述言語として、ラダー図方式のプログラムが汎用されている。このようなプログラムは、プログラム開発者により特有のラダー言語で作成される。
【0004】
以上のようにシーケンス制御用のプログラムは、一般的に、プログラム編集専用のコンピュータであるプログラミング用ツールにて編集され、編集後にデバッグすることでその作成が終了される。
【0005】
そして、作成されたプログラムは、プログラム開発者からそのプログラム利用者であるユーザーに渡される。プログラムの渡し方は各種あり、渡し方は重要ではないので、その説明は略する。プログラム開発者はそのユーザーとは特定関係のユーザー(特定ユーザー)であり、第三者のユーザーではない。
【0006】
プログラム開発者から開発プログラムを渡された特定ユーザーは、ダウンロード専用に特化したパソコン(ダウンロード専用ツール)によりPLCにダウンロードする。このダウンロード専用ツールは、プログラム開発者側から特定ユーザーにのみ提供されたダウンロード専用ソフトがダウンロードされたツールである。
【0007】
プログラム開発者が開発したプログラムがダウンロードされたPLCの場合、別のパソコンによりそのプログラムがコピーされたりしたのでは、プログラム開発者が開発したプログラムの保護に欠けてしまう。
【0008】
そこで、プログラム開発者は開発プログラム中にパスワードを埋め込み、ダウンロード専用ソフトによりPLCにプログラムをダウンロードすると、パスワードも同時に登録されるようにしている。
【0009】
そして、特定ユーザーがPLCにダウンロードしているプログラムを別のパソコンの画面上に開くには、すでにプログラム開発者から入手済みのパスワードを入力することでパスワードによる表示ロック状態を解除し、これによりパソコン画面上にプログラムを開くことができるようにしている。
【0010】
しかしながら、こうしたパスワード方式では、プログラム開発者が意図していない第三者ユーザーにパスワードが知得されてしまった場合には、簡単に第三者ユーザーによりプログラムが盗用されてしまうことになるので、プログラム開発者の保護に欠けるという課題がある。
【0011】
一方、プログラムはプログラム開発者によりバージョン1からバージョン2に変更される場合があり、このようなバージョン変更では、特定ユーザーはダウンロード専用ツールとダウンロード済みのPLCとを接続すると共に、ダウンロード専用ツールにパスワード入力してバージョン2のプログラムをPLC内で上書きするなどしてダウンロードすることが多い。
【0012】
しかしながら、そのようなダウンロードにおいて、プログラム開発者と特定ユーザーとの間のパスワードであるので、いずれのプログラムでもそのパスワードでダウンロードされてしまい、PLCで目的とする機械装置等の制御ができなくなるおそれもあり、これでは、ユーザーの保護に欠けるという課題がある。
【0013】
なお、PLCにおいてパスワードに関する先行特許文献としては例えば以下の特許文献を挙げることができる。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2008−152317号公報
【特許文献2】特開平10−307611号公報
【特許文献3】特開平10−116108号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
そこで本発明では、プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護できるようにすることを解決すべき課題としている。
【課題を解決するための手段】
【0016】
本発明によるパスワードによるプログラム保護方法は、各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、上記プログラムのダウンロード対象となる機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、を含むことを特徴とする。
【0017】
ダウンロード対象機器は特に限定しないが、例えばPLCやプログラマブル表示器等のHMI(ヒューマン・マシーン・インターフェース)機器、コントローラ分野に使用する機器、その他の機器を含むことができる。
【発明の効果】
【0018】
本発明によれば、プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護することができる。
【図面の簡単な説明】
【0019】
【図1】図1はプログラム開発者におけるプログラム開発の説明のための図である。
【図2】図2はユーザーによるプログラムダウンロードの説明のための図である。
【図3】図3はダウンロードのフローチャートを示す図である。
【図4】図4は同一ユーザーにより複数のPLCへのプログラムダウンロードの説明のための図である。
【図5】図5は複数ユーザーによりそれぞれのPLCへのプログラムダウンロードの説明のための図である。
【発明を実施するための形態】
【0020】
以下、添付した図面を参照して、本発明の実施の形態に係るパスワードによるプログラム保護方法を説明する。このプログラムはPLCにおけるラダープログラムとする。ダウンロードされたプログラムがパスワードにより保護されるダウンロード対象機器はPLCに限定しないが、本実施の形態では説明の都合でPLCに適用して説明する。
【0021】
図1(a)を参照してプログラム開発者はプログラミング用ツール1によりバージョン1(ver1.0)、バージョン2(ver2.0)のプログラム(プロジェクトファイル等)を開発すると、各バージョンのプログラムをそれぞれPLC2にダウンロードしたり、デバッグしたりする。プログラム開発者は、各バージョン1,2それぞれのプログラムに図1(b)のパスワードテーブル1で示すように同一のパスワード「ABC」を埋め込む。このバージョン1のプログラムは例えば図1(c1)で示すように接点C1,C2,C3および出力Y1のラダーロジックであり、バージョン2のプログラムは図1(c2)で示すように接点C1,C2,C3、C4および出力Y2のラダーロジックである。このラダーロジックはプロジェクトファイル内のものである。
【0022】
これらバージョン1、バージョン2の各プログラムへのパスワードの埋め込みとしては、例えばプログラミング用ツール1の画面上に、パスワード埋め込みメニューを表示させ、パスワード設定画面を表示し、適宜の操作により、プロジェクトファイル中にパスワードを埋め込むことができる。この埋め込み方法は周知の技術により可能であり、特に説明しない。また、プログラミング用ツール1は、汎用パソコンであり、その内部のハードウエア構成の詳細は略すると共に、プログラムの作成方法等の説明も省略する。なお、プログラム開発者側に複数のユーザーがある場合とか、同一ユーザー内でも複数の制御対象があるような場合などでは、パスワードが多数存在するようになるので、プログラム開発者側は、パスワード管理プログラムによりパスワードを管理することが好ましい。なお、実施の形態では、バージョンはバージョン1と、バージョン2との2つであったが、このバージョンは単なる一例であり、2つに限定されるものではない。
【0023】
プログラム開発者は、このようなパスワードの埋め込み、各バージョンごとでのパスワード比較、パスワード一致、およびダウンロード許可、などのパスワード保護フローを行うプログラムの作成を完了すると、ユーザーにそのプログラムを渡す。
【0024】
図2(a)を参照してユーザー側のダウンロード専用ツール3には、プログラム開発者から提供されたダウンロード用プログラムが搭載されている。そしてユーザーはこのダウンロード専用ツール3と、プログラムダウンロード先であるPLC4とを接続すると共に、プログラム開発者から渡されたプログラムをダウンロード専用ツール3からPLC4にダウンロードさせる。このプログラムにおいてバージョン1のパスワードとバージョン2のパスワードは図2(b)のパスワードテーブル2で示すように、いずれも「ABC」である。
【0025】
次にこのバージョン1、バージョン2の各プログラムのダウンロードの制御フローに関して図3を参照して説明する。ステップS1でユーザーはダウンロード専用ツール3からPLC4にバージョン1(Ver.1.0)のプログラムをダウンロードする。ステップS2では、上記ダウンロードによりPLC4にはパスワード「ABC」が登録される。次いで、ステップS3で別バージョンのプログラムがダウンロードされてくるかどうかを判断する。別バージョンであるバージョン2(Ver.2.0)のプログラムがダウンロードされてくると、ステップS3でYESと判断して、ステップS4に進む。ステップS4では、バージョン1のプログラムのパスワード「ABC」とバージョン2のプログラムのパスワード「ABC」とが比較される。そして、ステップS5で両パスワードが一致しないでNOと判断された時は、ステップS6でプログラムのダウンロードを不許可とし、一致してYESと判断された時はステップS7でプログラムのダウンロードを許可してバージョン2のプログラムのダウンロードを許可して、終了する。
【0026】
上記プログラムは、機能として、ユーザーの制御対象をシーケンス制御するラダープログラムであるが、ダウンロード専用ツール3からPLC4にダウンロードされてくると、PLC4内のCPUは上記図3のフローチャートに従い、バージョン1、バージョン2のプログラムのダウンロード、両バージョン1,2それぞれのプログラム内のパスワード比較などを行う。なお、PLC4内部の詳細ブロックの図示は略する。
【0027】
次に、図4を参照して、ユーザーがPLCにより複数の制御対象それぞれを異なるプログラムで制御する場合を説明する。ダウンロード専用ツール5をPLC6に接続する。プログラム開発者は、制御対象が複数、例えば制御対象数を「10」と仮定し、各制御対象ごとにプログラム4−1、プログラム4−2、…、プログラム4−10を開発する。これらプログラム4−1、4−2、…は、いずれも、バージョン1(Ver.1.0)である。次に、プログラム開発者は、これらプログラム4−1、4−2、…のバージョン2(Ver.2.0)を開発した。それぞれのパスワードテーブル4−1、4−2、…を示す。パスワードテーブル4−1でのパスワードはABC4−1、パスワードテーブル4−2でのパスワードはABC4−2、…、パスワードテーブル4−10でのパスワードはABC4−10である。
【0028】
そして、PLC6内部のメモリには、プログラム4−1、プログラム4−2、…、プログラム4−10ごとに異なるパスワードABC4−1、ABC4−2、…、ABC4−10を登録する。プログラム4−1は、例えば第1制御対象の制御用プログラムでありそのバージョン1にもバージョン2にも共に同一パスワードABC4−1とし、プログラム4−2は、第2制御対象の制御用プログラムであり、そのバージョン1にもバージョン2にも共に同一パスワードABC4−2とし、…、プログラム4−10は、第10制御対象の制御用プログラムであり、そのバージョン1にもバージョン2にも共に同一パスワードABC4−10とする。
【0029】
そして、ユーザーは、例えば第1制御対象をプログラム4−1のバージョン1で制御している場合において、ダウンロード専用ツール5をPLC6に接続してバージョン2に変更する場合、PLC6内部で、バージョン1と2とのパスワード比較がなされ、パスワードが共にABC4−1と一致するので、バージョン2のプログラム4−1のダウンロードが許可され、当該バージョン2のプログラム4−1がダウンロードされる。こうしてプログラム4−1をバージョン1からバージョン2に変更することができる。第2制御対象以降も同様であるから、その説明は省略する。
【0030】
図5を参照してプログラム開発者側に複数、例えば10名のユーザーがいて、各ユーザーごとにバージョン変更する場合を説明する。各ユーザーはそれぞれダウンロード専用ツール7−1、7−2、…、7−10を有する。各ダウンロード専用ツール7−1、7−2、…、7−10それぞれにPLC8−1、8−2、…、8−10が接続され、各PLC8−1、8−2、…、8−10に、いずれもバージョン1のプログラム5−1、5−2、…、5−10がダウンロードされる。各PLC8−1、8−2、…、8−10には、パスワードテーブル5−1,5−2、…、5−10におけるパスワードABC5−1、ABC5−2、…、ABC5−10が登録される。
【0031】
次に、プログラム開発者から各ユーザーにバージョン2のプログラム5−1、5−2、…、5−10がそれぞれ渡される。各ユーザーは、それぞれのダウンロード専用ツール7−1、7−2、…、7−10からバージョン2の各プログラム5−1、5−2、…、5−10をダウンロード操作する。PLC8−1、8−2、…、8−10においては、バージョン1と2それぞれのパスワード比較を行う。これらパスワードはプログラム5−1、5−2、…、5−10それぞれにおいて、共にABC5−1、ABC5−2、…、ABC5−10として一致するので、これらバージョン2のプログラム5−1、5−2、…、5−10はダウンロードされる。こうして各PLC8−1、8−2、…、8−10においては、プログラム5−1、5−2、…、5−10それぞれのバージョンをバージョン1からバージョン2に変更することができる。
【0032】
以上説明したように本実施の形態では、例えば、プログラム開発者はユーザーに対しては、バージョン1のプログラムに埋め込んだパスワードと同一のパスワードを、バージョン2のプログラムに埋め込む。そして、バージョン1のプログラムをまずPLCにダウンロードすると、バージョン1のプログラムのパスワードがPLCに登録される。そして、このバージョン1のプログラムのパスワード登録後では、第三者ユーザーがダウンロード専用ツールを用いて、バージョン1のプログラムを別のPLCにコピーさせるようなことはできない。
【0033】
次に、プログラム開発者がバージョン2のプログラムを開発した場合、バージョン2のプログラムに対してバージョン1のプログラムの時のパスワードと同一のパスワードを埋め込む。そして、このバージョン2のプログラムをユーザーに渡す。ユーザーはそのバージョン2のプログラムをダウンロード専用ツールからPLCにダウンロードさせる場合、PLC内部においては、すでにダウンロードしているバージョン1のプログラムのパスワードとバージョン2のプログラムのパスワードとを比較し、両パスワードが一致する場合は、バージョン2のプログラムのダウンロードを許可することができる。
【0034】
以上により、本実施の形態では、パスワード登録済みのPLCからプログラムをコピーすることができないので、プログラム開発者のプログラムを保護することができると共に、ユーザーはパスワードを知らなくても、PLC内のCPUがメモリに登録しているバージョン1のプログラムのパスワードと、ダウンロードしようとするバージョン2のプログラムのパスワードとを比較し、一致すればバージョン2のダウンロードを許可し、一致しなければ許可しないので、バージョン1のプログラムで機械を制御している場合に、別のプログラムがダウンロードされて当該機械を誤動作させてしまうといったことが防止され、ユーザーを保護することができる。
【符号の説明】
【0035】
1 プログラミング用ツール
2 PLC
3 ダウンロード専用ツール
4 PLC

【特許請求の範囲】
【請求項1】
各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、
上記プログラムダウンロード対象の機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、
上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、
上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、
を含むことを特徴とするパスワードによるプログラム保護方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−113198(P2011−113198A)
【公開日】平成23年6月9日(2011.6.9)
【国際特許分類】
【出願番号】特願2009−267629(P2009−267629)
【出願日】平成21年11月25日(2009.11.25)
【出願人】(000167288)光洋電子工業株式会社 (354)
【Fターム(参考)】