(57)【要約】【課題】プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護できるようにする。【解決手段】本プログラム保護方法は、各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、プログラマブルコントローラ等の機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、を含む。【選択図】図１
2011113198.tif 000002
【特許請求の範囲】
【請求項１】
各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、
上記プログラムダウンロード対象の機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、
上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、
上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、
を含むことを特徴とするパスワードによるプログラム保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばプログラマブルコントローラ（プログラマブルロジックコントローラとも称し、以下では説明の都合でＰＬＣと称する）やプログラマブル表示器等のコントローラ分野において、プログラム開発者やプログラム利用者をパスワードにより有効に保護する方法に関するものである。
【背景技術】
【０００２】
ＰＬＣはコントローラの一つとして、生産設備に配備され、シーケンス制御上のプログラムを実行してそれに接続された生産設備内の各種機械や装置等の制御対象をシーケンス制御するようになっている。ＰＬＣは、制御対象の状態に対応したスイッチやセンサ等の入力機器のＯＮ／ＯＦＦ情報を入力し、ラダー言語などで記述されたプログラムに沿って論理演算を実行すると共に、得られた演算結果に従い、リレー，バルブ，アクチュエータ等の出力機器に対し、ＯＮ／ＯＦＦ情報の信号を出力することで制御対象の制御を実行するようになっている。
【０００３】
上記プログラムの記述言語として、ラダー図方式のプログラムが汎用されている。このようなプログラムは、プログラム開発者により特有のラダー言語で作成される。
【０００４】
以上のようにシーケンス制御用のプログラムは、一般的に、プログラム編集専用のコンピュータであるプログラミング用ツールにて編集され、編集後にデバッグすることでその作成が終了される。
【０００５】
そして、作成されたプログラムは、プログラム開発者からそのプログラム利用者であるユーザーに渡される。プログラムの渡し方は各種あり、渡し方は重要ではないので、その説明は略する。プログラム開発者はそのユーザーとは特定関係のユーザー（特定ユーザー）であり、第三者のユーザーではない。
【０００６】
プログラム開発者から開発プログラムを渡された特定ユーザーは、ダウンロード専用に特化したパソコン（ダウンロード専用ツール）によりＰＬＣにダウンロードする。このダウンロード専用ツールは、プログラム開発者側から特定ユーザーにのみ提供されたダウンロード専用ソフトがダウンロードされたツールである。
【０００７】
プログラム開発者が開発したプログラムがダウンロードされたＰＬＣの場合、別のパソコンによりそのプログラムがコピーされたりしたのでは、プログラム開発者が開発したプログラムの保護に欠けてしまう。
【０００８】
そこで、プログラム開発者は開発プログラム中にパスワードを埋め込み、ダウンロード専用ソフトによりＰＬＣにプログラムをダウンロードすると、パスワードも同時に登録されるようにしている。
【０００９】
そして、特定ユーザーがＰＬＣにダウンロードしているプログラムを別のパソコンの画面上に開くには、すでにプログラム開発者から入手済みのパスワードを入力することでパスワードによる表示ロック状態を解除し、これによりパソコン画面上にプログラムを開くことができるようにしている。
【００１０】
しかしながら、こうしたパスワード方式では、プログラム開発者が意図していない第三者ユーザーにパスワードが知得されてしまった場合には、簡単に第三者ユーザーによりプログラムが盗用されてしまうことになるので、プログラム開発者の保護に欠けるという課題がある。
【００１１】
一方、プログラムはプログラム開発者によりバージョン１からバージョン２に変更される場合があり、このようなバージョン変更では、特定ユーザーはダウンロード専用ツールとダウンロード済みのＰＬＣとを接続すると共に、ダウンロード専用ツールにパスワード入力してバージョン２のプログラムをＰＬＣ内で上書きするなどしてダウンロードすることが多い。
【００１２】
しかしながら、そのようなダウンロードにおいて、プログラム開発者と特定ユーザーとの間のパスワードであるので、いずれのプログラムでもそのパスワードでダウンロードされてしまい、ＰＬＣで目的とする機械装置等の制御ができなくなるおそれもあり、これでは、ユーザーの保護に欠けるという課題がある。
【００１３】
なお、ＰＬＣにおいてパスワードに関する先行特許文献としては例えば以下の特許文献を挙げることができる。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００８−１５２３１７号公報
【特許文献２】特開平１０−３０７６１１号公報
【特許文献３】特開平１０−１１６１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
そこで本発明では、プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護できるようにすることを解決すべき課題としている。
【課題を解決するための手段】
【００１６】
本発明によるパスワードによるプログラム保護方法は、各バージョンのプログラムそれぞれに同一パスワードを埋め込むステップと、上記プログラムのダウンロード対象となる機器に任意バージョンのプログラムをダウンロードするに際して当該任意バージョンプログラム内のパスワードを当該機器側に登録するステップと、上記機器に別バージョンのプログラムをダウンロードするに際しては上記任意バージョンプログラム内のパスワードと上記別バージョンプログラム内のパスワードとを比較するステップと、上記比較で上記両パスワードが一致した時のみ上記機器側では上記別バージョンプログラムのダウンロードを許可するステップと、を含むことを特徴とする。
【００１７】
ダウンロード対象機器は特に限定しないが、例えばＰＬＣやプログラマブル表示器等のＨＭＩ（ヒューマン・マシーン・インターフェース）機器、コントローラ分野に使用する機器、その他の機器を含むことができる。
【発明の効果】
【００１８】
本発明によれば、プログラム開発者と、プログラム利用者であるユーザーとをパスワードにより有効に保護することができる。
【図面の簡単な説明】
【００１９】
【図１】図１はプログラム開発者におけるプログラム開発の説明のための図である。
【図２】図２はユーザーによるプログラムダウンロードの説明のための図である。
【図３】図３はダウンロードのフローチャートを示す図である。
【図４】図４は同一ユーザーにより複数のＰＬＣへのプログラムダウンロードの説明のための図である。
【図５】図５は複数ユーザーによりそれぞれのＰＬＣへのプログラムダウンロードの説明のための図である。
【発明を実施するための形態】
【００２０】
以下、添付した図面を参照して、本発明の実施の形態に係るパスワードによるプログラム保護方法を説明する。このプログラムはＰＬＣにおけるラダープログラムとする。ダウンロードされたプログラムがパスワードにより保護されるダウンロード対象機器はＰＬＣに限定しないが、本実施の形態では説明の都合でＰＬＣに適用して説明する。
【００２１】
図１（ａ）を参照してプログラム開発者はプログラミング用ツール１によりバージョン１（ｖｅｒ１．０）、バージョン２（ｖｅｒ２．０）のプログラム（プロジェクトファイル等）を開発すると、各バージョンのプログラムをそれぞれＰＬＣ２にダウンロードしたり、デバッグしたりする。プログラム開発者は、各バージョン１，２それぞれのプログラムに図１（ｂ）のパスワードテーブル１で示すように同一のパスワード「ＡＢＣ」を埋め込む。このバージョン１のプログラムは例えば図１（ｃ１）で示すように接点Ｃ１，Ｃ２，Ｃ３および出力Ｙ１のラダーロジックであり、バージョン２のプログラムは図１（ｃ２）で示すように接点Ｃ１，Ｃ２，Ｃ３、Ｃ４および出力Ｙ２のラダーロジックである。このラダーロジックはプロジェクトファイル内のものである。
【００２２】
これらバージョン１、バージョン２の各プログラムへのパスワードの埋め込みとしては、例えばプログラミング用ツール１の画面上に、パスワード埋め込みメニューを表示させ、パスワード設定画面を表示し、適宜の操作により、プロジェクトファイル中にパスワードを埋め込むことができる。この埋め込み方法は周知の技術により可能であり、特に説明しない。また、プログラミング用ツール１は、汎用パソコンであり、その内部のハードウエア構成の詳細は略すると共に、プログラムの作成方法等の説明も省略する。なお、プログラム開発者側に複数のユーザーがある場合とか、同一ユーザー内でも複数の制御対象があるような場合などでは、パスワードが多数存在するようになるので、プログラム開発者側は、パスワード管理プログラムによりパスワードを管理することが好ましい。なお、実施の形態では、バージョンはバージョン１と、バージョン２との２つであったが、このバージョンは単なる一例であり、２つに限定されるものではない。
【００２３】
プログラム開発者は、このようなパスワードの埋め込み、各バージョンごとでのパスワード比較、パスワード一致、およびダウンロード許可、などのパスワード保護フローを行うプログラムの作成を完了すると、ユーザーにそのプログラムを渡す。
【００２４】
図２（ａ）を参照してユーザー側のダウンロード専用ツール３には、プログラム開発者から提供されたダウンロード用プログラムが搭載されている。そしてユーザーはこのダウンロード専用ツール３と、プログラムダウンロード先であるＰＬＣ４とを接続すると共に、プログラム開発者から渡されたプログラムをダウンロード専用ツール３からＰＬＣ４にダウンロードさせる。このプログラムにおいてバージョン１のパスワードとバージョン２のパスワードは図２（ｂ）のパスワードテーブル２で示すように、いずれも「ＡＢＣ」である。
【００２５】
次にこのバージョン１、バージョン２の各プログラムのダウンロードの制御フローに関して図３を参照して説明する。ステップＳ１でユーザーはダウンロード専用ツール３からＰＬＣ４にバージョン１（Ｖｅｒ．１．０）のプログラムをダウンロードする。ステップＳ２では、上記ダウンロードによりＰＬＣ４にはパスワード「ＡＢＣ」が登録される。次いで、ステップＳ３で別バージョンのプログラムがダウンロードされてくるかどうかを判断する。別バージョンであるバージョン２（Ｖｅｒ．２．０）のプログラムがダウンロードされてくると、ステップＳ３でＹＥＳと判断して、ステップＳ４に進む。ステップＳ４では、バージョン１のプログラムのパスワード「ＡＢＣ」とバージョン２のプログラムのパスワード「ＡＢＣ」とが比較される。そして、ステップＳ５で両パスワードが一致しないでＮＯと判断された時は、ステップＳ６でプログラムのダウンロードを不許可とし、一致してＹＥＳと判断された時はステップＳ７でプログラムのダウンロードを許可してバージョン２のプログラムのダウンロードを許可して、終了する。
【００２６】
上記プログラムは、機能として、ユーザーの制御対象をシーケンス制御するラダープログラムであるが、ダウンロード専用ツール３からＰＬＣ４にダウンロードされてくると、ＰＬＣ４内のＣＰＵは上記図３のフローチャートに従い、バージョン１、バージョン２のプログラムのダウンロード、両バージョン１，２それぞれのプログラム内のパスワード比較などを行う。なお、ＰＬＣ４内部の詳細ブロックの図示は略する。
【００２７】
次に、図４を参照して、ユーザーがＰＬＣにより複数の制御対象それぞれを異なるプログラムで制御する場合を説明する。ダウンロード専用ツール５をＰＬＣ６に接続する。プログラム開発者は、制御対象が複数、例えば制御対象数を「１０」と仮定し、各制御対象ごとにプログラム４−１、プログラム４−２、…、プログラム４−１０を開発する。これらプログラム４−１、４−２、…は、いずれも、バージョン１（Ｖｅｒ．１．０）である。次に、プログラム開発者は、これらプログラム４−１、４−２、…のバージョン２（Ｖｅｒ．２．０）を開発した。それぞれのパスワードテーブル４−１、４−２、…を示す。パスワードテーブル４−１でのパスワードはＡＢＣ４−１、パスワードテーブル４−２でのパスワードはＡＢＣ４−２、…、パスワードテーブル４−１０でのパスワードはＡＢＣ４−１０である。
【００２８】
そして、ＰＬＣ６内部のメモリには、プログラム４−１、プログラム４−２、…、プログラム４−１０ごとに異なるパスワードＡＢＣ４−１、ＡＢＣ４−２、…、ＡＢＣ４−１０を登録する。プログラム４−１は、例えば第１制御対象の制御用プログラムでありそのバージョン１にもバージョン２にも共に同一パスワードＡＢＣ４−１とし、プログラム４−２は、第２制御対象の制御用プログラムであり、そのバージョン１にもバージョン２にも共に同一パスワードＡＢＣ４−２とし、…、プログラム４−１０は、第１０制御対象の制御用プログラムであり、そのバージョン１にもバージョン２にも共に同一パスワードＡＢＣ４−１０とする。
【００２９】
そして、ユーザーは、例えば第１制御対象をプログラム４−１のバージョン１で制御している場合において、ダウンロード専用ツール５をＰＬＣ６に接続してバージョン２に変更する場合、ＰＬＣ６内部で、バージョン１と２とのパスワード比較がなされ、パスワードが共にＡＢＣ４−１と一致するので、バージョン２のプログラム４−１のダウンロードが許可され、当該バージョン２のプログラム４−１がダウンロードされる。こうしてプログラム４−１をバージョン１からバージョン２に変更することができる。第２制御対象以降も同様であるから、その説明は省略する。
【００３０】
図５を参照してプログラム開発者側に複数、例えば１０名のユーザーがいて、各ユーザーごとにバージョン変更する場合を説明する。各ユーザーはそれぞれダウンロード専用ツール７−１、７−２、…、７−１０を有する。各ダウンロード専用ツール７−１、７−２、…、７−１０それぞれにＰＬＣ８−１、８−２、…、８−１０が接続され、各ＰＬＣ８−１、８−２、…、８−１０に、いずれもバージョン１のプログラム５−１、５−２、…、５−１０がダウンロードされる。各ＰＬＣ８−１、８−２、…、８−１０には、パスワードテーブル５−１，５−２、…、５−１０におけるパスワードＡＢＣ５−１、ＡＢＣ５−２、…、ＡＢＣ５−１０が登録される。
【００３１】
次に、プログラム開発者から各ユーザーにバージョン２のプログラム５−１、５−２、…、５−１０がそれぞれ渡される。各ユーザーは、それぞれのダウンロード専用ツール７−１、７−２、…、７−１０からバージョン２の各プログラム５−１、５−２、…、５−１０をダウンロード操作する。ＰＬＣ８−１、８−２、…、８−１０においては、バージョン１と２それぞれのパスワード比較を行う。これらパスワードはプログラム５−１、５−２、…、５−１０それぞれにおいて、共にＡＢＣ５−１、ＡＢＣ５−２、…、ＡＢＣ５−１０として一致するので、これらバージョン２のプログラム５−１、５−２、…、５−１０はダウンロードされる。こうして各ＰＬＣ８−１、８−２、…、８−１０においては、プログラム５−１、５−２、…、５−１０それぞれのバージョンをバージョン１からバージョン２に変更することができる。
【００３２】
以上説明したように本実施の形態では、例えば、プログラム開発者はユーザーに対しては、バージョン１のプログラムに埋め込んだパスワードと同一のパスワードを、バージョン２のプログラムに埋め込む。そして、バージョン１のプログラムをまずＰＬＣにダウンロードすると、バージョン１のプログラムのパスワードがＰＬＣに登録される。そして、このバージョン１のプログラムのパスワード登録後では、第三者ユーザーがダウンロード専用ツールを用いて、バージョン１のプログラムを別のＰＬＣにコピーさせるようなことはできない。
【００３３】
次に、プログラム開発者がバージョン２のプログラムを開発した場合、バージョン２のプログラムに対してバージョン１のプログラムの時のパスワードと同一のパスワードを埋め込む。そして、このバージョン２のプログラムをユーザーに渡す。ユーザーはそのバージョン２のプログラムをダウンロード専用ツールからＰＬＣにダウンロードさせる場合、ＰＬＣ内部においては、すでにダウンロードしているバージョン１のプログラムのパスワードとバージョン２のプログラムのパスワードとを比較し、両パスワードが一致する場合は、バージョン２のプログラムのダウンロードを許可することができる。
【００３４】
以上により、本実施の形態では、パスワード登録済みのＰＬＣからプログラムをコピーすることができないので、プログラム開発者のプログラムを保護することができると共に、ユーザーはパスワードを知らなくても、ＰＬＣ内のＣＰＵがメモリに登録しているバージョン１のプログラムのパスワードと、ダウンロードしようとするバージョン２のプログラムのパスワードとを比較し、一致すればバージョン２のダウンロードを許可し、一致しなければ許可しないので、バージョン１のプログラムで機械を制御している場合に、別のプログラムがダウンロードされて当該機械を誤動作させてしまうといったことが防止され、ユーザーを保護することができる。
【符号の説明】
【００３５】
１  プログラミング用ツール
２  ＰＬＣ
３  ダウンロード専用ツール
４  ＰＬＣ
【図１】
2011113198.tif 000003
【図２】
2011113198.tif 000004
【図３】
2011113198.tif 000005
【図４】
2011113198.tif 000006
【図５】
2011113198.tif 000007