(57)【特許請求の範囲】
【請求項１】
パスワードプロテクト機能を持つプログラマブル・コントローラと、パソコンに制御プログラム開発支援装置プログラムモジュールを組み込んでなる制御プログラム開発支援装置と、それらを結ぶ通信手段とを含み、
前記プログラマブル・コントローラには、
パスワード記憶手段と、
前記通信手段を介してパスワード付きのプロテクト設定コマンドが到来するのに応答して、当該パスワードを前記パスワード記憶手段に書き込むことにより、プロテクト設定状態を記憶するプロテクト設定手段と、
前記通信手段を介してプロテクト解除コマンドが到来するのに応答して、パスワード記憶手段に記憶されたパスワードを消去乃至初期化することにより、プロテクト解除状態を記憶するプロテクト解除手段と、
前記通信手段を介してプログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドが到来するのに応答して、プロテクトが解除されていることを条件として、指定された作業を実行する作業実行手段と、が設けられており、
前記制御プログラム開発支援装置には、
所定の操作に応答して、プログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドを生成する作業コマンド生成手段と、
前記作業コマンド生成手段により作業コマンドが生成されるのに応答して、その作業コマンドの前後に所定の非公開のパスワード付きのプロテクト解除コマンド、プロテクト設定コマンドをそれぞれ付加して、それらのコマンドをプログラマブル・コントローラへと発行する付加機能を実行する付加機能実行手段と、が設けられており、さらに
前記付加機能実行手段は、制御プログラム開発支援装置としての機能を実現する制御プログラム開発支援装置プログラムモジュールとは異なるソフトウェアモジュールとして付加機能を実行するように構成されており、
制御プログラム開発支援装置プログラムモジュールは、その起動時に付加機能を持つソフトウェアモジュールが当該パソコンの外部記憶装置に存在するか否かをチェックし、付加機能を持つソフトウェアモジュールが存在する場合には、付加機能を持つソフトウェアモジュールを制御プログラム開発支援装置プログラムモジュールのプログラムの一部としてリンクし、付加機能が動作するように仕組まれている、
ことを特徴とするプログラマブル・コントローラ・システム。
【請求項２】
制御プログラム開発支援装置プログラムモジュールが組み込まれたパソコンには、
所定のパスワードコードを記憶させたメモリを内蔵するハードウェアキーが着脱自在に装着されており、
付加機能を持つソフトウェアモジュールは、ハードウェアキーの認証を、付加機能実行の条件とするように仕組まれている、
ことを特徴とする請求項１に記載のプログラマブル・コントローラ・システム。
【請求項３】
前記付加機能実行手段にて使用される非公開のパスワードは、ハードウェアキー内のパスワードと対応したパスワードとされる、
ことを特徴とする請求項２に記載のプログラマブル・コントローラ・システム。
【請求項４】
前記制御プログラム開発支援装置は、
所定の操作に応答して、プロテクト設定用の通信コマンドを発行するプロテクト設定コマンド発行手段と、
所定の操作に応答して、プロテクト解除用の通信コマンドを発行するプロテクト解除コマンド発行手段と、をさらに有し、
付加機能を有するソフトウェアモジュールがパソコンに存在しないときには、手動によるプロテクト設定又は解除が可能とされている、ことを特徴とする請求項１〜３のいずれかに記載のプログラマブル・コントローラ・システム。
【請求項５】
パスワードプロテクト機能を持つプログラマブル・コントローラに対して通信を介して接続可能であって、パソコンに制御プログラム開発支援装置プログラムモジュールを組み込むことで構成される制御プログラム開発支援装置であって、
所定の操作に応答して、プログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドを生成する作業コマンド生成手段と、
作業コマンド生成手段により作業コマンドが生成されるのに応答して、その作業コマンドの前後に所定の非公開のパスワード付きのプロテクト解除コマンド、プロテクト設定コマンドをそれぞれ付加して、それらのコマンドをプログラマブル・コントローラへと発行する付加機能を実行する付加機能実行手段と、が設けられており、さらに
付加機能実行手段は、制御プログラム開発支援装置としての機能を実現する制御プログラム開発支援装置プログラムモジュールとは異なるソフトウェアモジュールとして付加機能を実行するように構成されており、
制御プログラム開発支援装置プログラムモジュールは、その起動時に付加機能を持つソフトウェアモジュールが当該パソコンの外部記憶装置に存在するか否かをチェックし、付加機能を持つソフトウェアモジュールが存在する場合には、付加機能を持つソフトウェアモジュールを制御プログラム開発支援装置プログラムモジュールのプログラムの一部としてリンクし、付加機能が動作するように仕組まれている、
ことを特徴とする制御プログラム開発支援装置。
【請求項６】
制御プログラム開発支援装置プログラムモジュールが組み込まれたパソコンには、
所定のパスワードコードを記憶させたメモリを内蔵するハードウェアキーが着脱自在に装着されており、
付加機能を持つソフトウェアモジュールは、ハードウェアキーの認証を、付加機能実行の条件とするように仕組まれている、
ことを特徴とする請求項５に記載の制御プログラム開発支援装置。
【請求項７】
付加機能実行手段にて使用される非公開のパスワードは、ハードウェアキー内のパスワードと対応したパスワードとされる、
ことを特徴とする請求項６に記載の制御プログラム開発支援装置。
【請求項８】
所定の操作に応答して、プロテクト設定用の通信コマンドを発行するプロテクト設定コマンド発行手段と、
所定の操作に応答して、プロテクト解除用の通信コマンドを発行するプロテクト解除コマンド発行手段と、をさらに有し、
付加機能を有するソフトウェアモジュールがパソコンに存在しないときには、手動によるプロテクト設定又は解除が可能とされている、ことを特徴とする請求項５〜７のいずれかに記載の制御プログラム開発支援装置。
【請求項９】
パスワードプロテクト機能を持つプログラマブル・コントローラに対して通信を介して接続可能であって、パソコンに制御プログラム開発支援装置プログラムモジュールを組み込むことで構成される制御プログラム開発支援装置であって、
所定の操作に応答して、プログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドを生成する作業コマンド生成手段と、
作業コマンド生成手段により作業コマンドが生成されるのに応答して、その作業コマンドの前後に所定の非公開のパスワード付きのプロテクト解除コマンド、プロテクト設定コマンドをそれぞれ付加して、それらのコマンドをプログラマブル・コントローラへと発行する付加機能を実行する付加機能実行手段と、が設けられており、さらに
所定のパスワードコードを記憶させたメモリを内蔵するハードウェアキーが着脱可能に構成されており、
制御プログラム開発支援装置プログラムモジュールは、その起動時にハードウェアキーの認証を行なう機能を持つソフトウェアモジュールが当該パソコンの外部記憶装置に存在するか否かをチェックし、ハードウェアキーの認証を行なう機能を持つソフトウェアモジュールが存在する場合には、ハードウェアキーの認証を行なう機能を持つソフトウェアモジュールを制御プログラム開発支援装置プログラムモジュールのプログラムの一部としてリンクし、ハードウェアキーの認証機能が動作するように仕組まれている、
ことを特徴とする制御プログラム開発支援装置。
【請求項１０】
付加機能実行手段は、ハードウェアキーの認証を、付加機能実行の条件とするように仕組まれている、
ことを特徴とする請求項９に記載の制御プログラム開発支援装置。
【請求項１１】
付加機能実行手段にて使用される非公開のパスワードは、ハードウェアキー内のパスワードと対応したパスワードとされる、
ことを特徴とする請求項１０に記載の制御プログラム開発支援装置。
【請求項１２】
所定の操作に応答して、プロテクト設定用の通信コマンドを発行するプロテクト設定コマンド発行手段と、
所定の操作に応答して、プロテクト解除用の通信コマンドを発行するプロテクト解除コマンド発行手段と、をさらに有し、
ハードウェアキーの認証を行なう機能を有するソフトウェアモジュールがパソコンに存在しないときには、手動によるプロテクト設定又は解除が可能とされている、
ことを特徴とする請求項９〜１１のいずれかに記載の制御プログラム開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・コントローラ（以下、ＰＬＣと言う）と制御プログラム開発支援装置として機能するパソコンとを通信手段を介して結んでなるＰＬＣシステムに係り、特に、ユーザ認証機能を有するＰＬＣシステムに関する。
【背景技術】
【０００２】
プログラマブル・コントローラ（以下、ＰＬＣと言う）と制御プログラム開発支援装置として機能するパソコンとを通信手段を介して結んでなるＰＬＣシステムは、従来より知られている。
【０００３】
このようなＰＬＣシステムの一例が図１５に示されている。同図に示されるように、このＰＬＣシステムは、ＰＬＣ２と制御プログラム開発支援装置１として機能するパソコン１ａとを通信手段（例えば、ＲＳ２３２Ｃ等）を介して結んでなるものである。なお、図において、Ａ１はパスワード記憶領域、Ａ２はユーザプログラム記憶領域である。
【０００４】
制御プログラム開発支援装置１はＲＳ２３２Ｃ等の通信手段を介してＰＬＣ２との間で通信を行うことができ、この通信を介して、ユーザプログラム記憶領域Ａ２に格納されているプログラムの読み出しや書き込みが可能である。さらに、制御プログラム開発支援装置１は、ＰＬＣ２の動作を設定するメモリエリアのデータをモニタしたり、制御対象からの入力データや制御対象への出力データを格納するメモリエリアのデータをモニタすることなどが実現されている。
【０００５】
このＰＬＣシステムには、ユーザ認証機能が組み込まれている。この種のユーザ認証機能を有するＰＬＣシステムについては、様々な文献に記載されている（例えば、特許文献１参照）。
【０００６】
すなわち、ＰＬＣ２内には、パスワード記憶領域Ａ１とユーザプログラム領域Ａ２とが設けられている。制御プログラム開発支援装置１からＰＬＣ２に対してプログラム読み出しのための通信コマンドが発行されたときに、ＰＬＣ２内のパスワード記憶領域Ａ１になんらかのパスワード情報が書き込まれていると、ＰＬＣ２は制御プログラム開発支援装置１に対して、プログラム読み出し不可を意味するレスポンスコードを返送する。
【０００７】
制御プログラム開発支援装置１には、パスワード設定機能とパスワード解除機能とが組み込まれている。パスワード設定機能が作動すると、ＰＬＣ２のパスワード記憶領域Ａ１に対してパスワード情報の書き込みが行われる。パスワードの解除機能が作動すると、ＰＬＣ２のパスワード記憶領域Ａ１から制御プログラム開発支援装置１へとパスワード情報が読み出される。このとき、制御プログラム開発支援装置１において、パスワード設定状態を解除するために入力されたパスワード情報とＰＬＣ２から読み出されたパスワード情報との一致が確認されると、ＰＬＣ２上のパスワード記憶領域Ａ１の初期化（パスワード設定状態が解除された状態）が可能となる。
【特許文献１】特開２００３−１６２５０７公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来のユーザ認証機能（パスワードを用いて正規のユーザかどうかを判定する機能）を有するＰＬＣシステムにあっては、次のような問題点が指摘されている。
【０００９】
すなわち、第１には、ユーザ認証の仕組みが一般的な（マニュアルに記載されておりユーザがだれでも知りうる）仕様であるため、悪意を持った第三者がユーザ認証のしくみを分析し、パスワード入力を繰り返し試行すること等により正規のユーザになりすますことができる可能性がある。
【００１０】
第２には、パスワードを知っている正規のユーザがプログラムの読み出しのためにパスワード入力によってプロテクトを解除した後に、プロテクトを再設定し忘れることがあり、結果、パスワードを知らない者もプログラムの読み出しが可能となると言った状況が起こり得る。
【００１１】
この発明は、従来のユーザ認証機能を有するＰＬＣシステムにおける上述の問題点に着目してなされたものであり、その目的とするところは、より高いセキュリティレベルを備えたユーザ認証機能を有するＰＬＣシステムを提供することにある。
【００１２】
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
【課題を解決するための手段】
【００１３】
この発明のＰＬＣシステムは、パスワードプロテクト機能を持つＰＬＣと、パソコンに制御プログラム開発支援装置プログラムモジュールを組み込んでなる制御プログラム開発支援装置と、それらを結ぶ通信手段とを含んでいる。
【００１４】
ＰＬＣには、パスワード記憶手段と、通信手段を介してパスワード付きのプロテクト設定コマンドが到来するのに応答して、当該パスワードを前記パスワード記憶手段に指定のパスワードを書き込むことにより、プロテクト設定状態を記憶するプロテクト設定手段と、通信手段を介してプロテクト解除コマンドが到来するのに応答して、パスワード記憶手段に記憶されたパスワードを消去乃至初期化することにより、プロテクト解除状態を記憶するプロテクト解除手段と、通信手段を介してプログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドが到来するのに応答して、プロテクトが解除されていることを条件として、指定された作業を実行する作業実行手段と、が設けられている。
【００１５】
制御プログラム開発支援装置には、所定の操作に応答して、プログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドを生成する作業コマンド生成手段と、作業コマンド生成手段により作業コマンドが生成されるのに応答して、その作業コマンドの前後に所定の非公開のパスワード付きのプロテクト解除コマンド、プロテクト設定コマンドをそれぞれ付加して、それらのコマンドをＰＬＣへと発行する付加機能を実行する付加機能実行手段と、が設けられている。
【００１６】
さらに、付加機能実行手段は、制御プログラム開発支援装置としての機能を実現する制御プログラム開発支援装置プログラムモジュールとは異なるソフトウェアモジュールとして付加機能を実行するように構成されており、制御プログラム開発支援装置プログラムモジュールは、その起動時に付加機能を持つソフトウェアモジュールが当該パソコンの外部記憶装置に存在するか否かをチェックし、付加機能を持つソフトウェアモジュールが存在する場合には、付加機能を持つソフトウェアモジュールを制御プログラム開発支援装置プログラムモジュールのプログラムの一部としてリンクし、付加機能が動作するように仕組まれている。
【００１７】
本発明ＰＬＣシステムの好ましい実施の形態にあっては、制御プログラム開発支援装置プログラムモジュールが組み込まれたパソコンには、所定のパスワードコードを記憶させたメモリを内蔵するハードウェアキーが着脱自在に装着されており、付加機能を持つソフトウェアモジュールは、ハードウェアキーの認証を、付加機能実行の条件とするように仕組まれている。
【００１８】
本発明ＰＬＣシステムの好ましい他の実施の形態にあっては、付加機能実行手段にて使用される非公開のパスワードは、ハードウェアキー内のパスワードと対応したパスワードとされる。
【００１９】
本発明ＰＬＣシステムの好ましい他の実施の形態にあっては、制御プログラム開発支援装置は、所定の操作に応答して、プロテクト設定用の通信コマンドを発行するプロテクト設定コマンド発行手段と、所定の操作に応答して、プロテクト解除用の通信コマンドを発行するプロテクト解除コマンド発行手段と、をさらに有し、付加機能を有するソフトウェアモジュールがパソコンに存在しないときには、従来の手動によるプロテクト設定又は解除が可能とされている。
【００２０】
別の一面から見た本発明は、パスワードプロテクト機能を持つプログラマブル・コントローラに対して通信を介して接続可能であって、パソコンに制御プログラム開発支援装置プログラムモジュールを組み込むことで構成される制御プログラム開発支援装置として捉えることもできる。
【００２１】
この制御プログラム開発支援装置には、所定の操作に応答して、プログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドを生成する作業コマンド生成手段と、作業コマンド生成手段により作業コマンドが生成されるのに応答して、その作業コマンドの前後に所定の非公開のパスワード付きのプロテクト解除コマンド、プロテクト設定コマンドをそれぞれ付加して、それらのコマンドをプログラマブル・コントローラへと発行する付加機能を実行する付加機能実行手段と、が設けられている。
【００２２】
付加機能実行手段は、制御プログラム開発支援装置としての機能を実現する制御プログラム開発支援装置プログラムモジュールとは異なるソフトウェアモジュールとして付加機能を実行するように構成されており、制御プログラム開発支援装置プログラムモジュールは、その起動時に付加機能を持つソフトウェアモジュールが当該パソコンの外部記憶装置に存在するか否かをチェックし、付加機能を持つソフトウェアモジュールが存在する場合には、付加機能を持つソフトウェアモジュールを制御プログラム開発支援装置プログラムモジュールのプログラムの一部としてリンクし、付加機能が動作するように仕組まれている。
【００２３】
本発明装置の好ましい実施の形態にあっては、制御プログラム開発支援装置プログラムモジュールが組み込まれたパソコンには、所定のパスワードコードを記憶させたメモリを内蔵するハードウェアキーが着脱自在に装着されており、付加機能を持つソフトウェアモジュールは、ハードウェアキーの認証を、付加機能実行の条件とするように仕組まれている。
【００２４】
本発明装置の好ましい他の実施の形態にあっては、付加機能実行手段にて使用される非公開のパスワードは、ハードウェアキー内のパスワードと対応したパスワードとされる
【００２５】
本発明装置の好ましい他の実施の形態にあっては、所定の操作に応答して、プロテクト設定用の通信コマンドを発行するプロテクト設定コマンド発行手段と、所定の操作に応答して、プロテクト解除用の通信コマンドを発行するプロテクト解除コマンド発行手段と、をさらに有し、付加機能を有するソフトウェアモジュールがパソコンに存在しないときには、手動によるプロテクト設定又は解除が可能とされている。
【００２６】
さらに別の一面から見た本発明は、パスワードプロテクト機能を持つプログラマブル・コントローラに対して通信を介して接続可能であって、パソコンに制御プログラム開発支援装置プログラムモジュールを組み込むことで構成される制御プログラム開発支援装置として捉えることもできる。
【００２７】
この制御プログラム開発支援装置には、所定の操作に応答して、プログラム書き込みコマンドやプログラム読み出しコマンド等の作業コマンドを生成する作業コマンド生成手段と、作業コマンド生成手段により作業コマンドが生成されるのに応答して、その作業コマンドの前後に所定の非公開のパスワード付きのプロテクト解除コマンド、プロテクト設定コマンドをそれぞれ付加して、それらのコマンドをプログラマブル・コントローラへと発行する付加機能を実行する付加機能実行手段と、が設けられている。
【００２８】
さらに、この制御プログラム開発支援装置は、所定のパスワードコードを記憶させたメモリを内蔵するハードウェアキーが着脱可能に構成されている。
【００２９】
制御プログラム開発支援装置プログラムモジュールは、その起動時にハードウェアキーの認証を行なう機能を持つソフトウェアモジュールが当該パソコンの外部記憶装置に存在するか否かをチェックし、ハードウェアキーの認証を行なう機能を持つソフトウェアモジュールが存在する場合には、ハードウェアキーの認証を行なう機能を持つソフトウェアモジュールを制御プログラム開発支援装置プログラムモジュールのプログラムのプログラムの一部としてリンクし、ハードウェアキーの認証機能が動作するように仕組まれている。
【００３０】
本発明装置の好ましい実施の形態にあっては、付加機能実行手段は、ハードウェアキーの認証を、付加機能実行の条件とするように仕組まれている。
【００３１】
本発明装置の好ましい他の実施の形態にあっては、付加機能実行手段にて使用される非公開のパスワードは、ハードウェアキー内のパスワードと対応したパスワードとされる。
【００３２】
本発明装置の好ましい他の実施の形態にあっては、所定の操作に応答して、プロテクト設定用の通信コマンドを発行するプロテクト設定コマンド発行手段と、所定の操作に応答して、プロテクト解除用の通信コマンドを発行するプロテクト解除コマンド発行手段と、をさらに有し、ハードウェアキーの認証を行なう機能を有するソフトウェアモジュールがパソコンに存在しないときには、手動によるプロテクト設定又は解除が可能とされている。
【発明の効果】
【００３３】
この発明によれば、ＰＬＣ単体のプロテクトのしくみだけではなく、ハードウェアキーの認証のためのソフトウェアモジュールが制御プログラム開発支援装置を構成するパソコンにインストールされていることおよびハードウェアキーが装着されてことを条件にプロテクトの設定/解除が自動的にできるようになるため、次のような作用効果を奏する。
（１）一般的に知られているプロテクトの仕様を解析して実行したとしてもハードウェアキーに対応したパスワードでないとパスワード解除ができない。また、パスワードの解除後に再設定する必要がないためプロテクトの再設定のし忘れという状態がない。したがって、セキュリティレベルが向上する。
（２）既存のＰＬＣのパスワードプロテクトの仕組みを変更することなしに制御プログラム開発支援装置に機能を追加するのみで実現できる。そのため、既存のパスワードプロテクトの仕組みを持つＰＬＣであれば本発明によるプロテクト機能が実現でき、ＰＬＣに対するユーザの追加投資が不要となる。
（３）ＰＬＣや制御プログラム開発支援装置は汎用品を用いることができるため、ＰＬＣおよび制御プログラム開発支援装置を提供するメーカがユーザ毎に専用の商品を提供する必要がなくなるため、メーカの商品管理・維持の面でコスト的なメリットがある。
【発明を実施するための最良の形態】
【００３４】
以下に、この発明に係るユーザ認証機能を有するＰＬＣシステムの好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００３５】
本発明システムの模式的構成図が図１に示されている。同図に示されるように、このＰＬＣシステムは、ＰＬＣ２と制御プログラム開発支援装置１として機能するパソコン１ａとを通信手段（例えば、ＲＳ２３２Ｃ等）を介して結んでなるものである。なお、図において、Ａ１はパスワード記憶領域、Ａ２はユーザプログラム記憶領域である。ユーザが制御プログラム開発支援装置１上で作成したプログラム（ユーザが作成したプログラムという意味でユーザプログラムと呼ばれる）は、ＰＬＣ２上のユーザプログラム記憶領域Ａ２に格納される。
【００３６】
制御プログラム開発支援装置１内には、本発明の要部であるところの付加機能を持つソフトウェアモジュール１０が組み込まれている。このモジュール１０の機能については、のちに、詳細に説明する。パソコン１ａには、ハードウェアキー１１が着脱自在に装着されている。このハードウェアキー１１としては、例えばパソコンのＵＳＢソケットに装着可能なＵＳＢプラグ付のケースを有するフラッシュメモリ（通称：ＵＳＢメモリ）等の着脱自在なメモリ媒体で構成されており、このハードウェアキー１１の中には、所定のパスワードコード１１ａ（図３参照）が記憶されている。
【００３７】
制御プログラム開発支援装置のソフトウェア構成図が図２に示されている。同図において、１は制御プログラム開発支援装置（プログラムモジュール）、１０は付加機能を有するソフトウェアモジュール、Ｆ１はソフトウェア的に実現されるプログラムの読み出し機能、Ｆ２はソフトウェア的に実現されるプログラムの書き込み機能である。ここで、プログラムの読み出し機能Ｆ１の読み出し対象となるプログラムは、ＰＬＣ２上のユーザプログラム記憶領域Ａ２に格納されているユーザプログラムのことである。また、プログラムの書き込み機能Ｆ２の書き込み対象となるプログラムは、制御プログラム開発支援装置１上に存在するユーザプログラムのことである。
【００３８】
図から明らかなように、付加機能を有するソフトウェアモジュール１０内には、ハードウェアキー用ドライバ１０ａと、ハードウェアキー用ドライバとのインタフェース（Ｉ／Ｆ）１０ｂと、のちに詳述する付加機能１０ｃと、ハードウェアキー認証モジュール１０ｄとが含まれている。
【００３９】
のちに詳細に説明するように、制御プログラム開発支援装置１内には、パスワードの設定又は解除をユーザの操作時（例えば、ユーザプログラム読み出し操作時、ユーザプログラムの書き込み操作時等）に自動的に行う仕組みを付加機能として有する。
【００４０】
この付加機能は、より具体的には、ユーザの操作が例えば「ユーザプログラム読み出し操作」であったときには、ユーザプログラムの読み出し時にパスワードプロテクトの解除・設定の期間が最小となるように、以下の手順で所定の動作を実行するものである。
第１のステップ：  ＲＳ２３２Ｃ等の通信を利用して、ＰＬＣに対してプログラム読み出しのための通信コマンドを送り込み、そのレスポンスを待って、ＰＬＣ側にプロテクトが設定されているか、解除されているかを判定する。
第２のステップ：  第１のステップでプロテクトが設定されていると判定されるときには、ＰＬＣ内のパスワード記憶領域を初期化する一方、第１のステップでプロテクトが解除されていると判定されるときには、続く第３のステップへ直ちに移行する。
第３のステップ：  プログラムを読み出す処理を実行する。その後、先のステップ（第２のステップ）において、プロテクトが設定されていたときには、パスワード記憶領域にパスワードを書き込んで処理を終了する。
【００４１】
のちに詳細に説明するように、このような付加機能は、制御プログラム開発支援装置における以下の内部処理にて実現される。
第１のステップ：  制御プログラム開発支援装置が起動される。
第２のステップ：  制御プログラム開発支援装置は初期処理の中で、付加機能を有するソフトウェアモジュールファイルがパソコン内の補助記憶装置に存在するか否かをチェックする。
第３のステップ：  付加機能を有するソフトウェアモジュールがパソコン内の補助記憶装置に存在する場合には、制御プログラム開発支援装置が実行されているパソコンのメモリ空間に読み出され、制御プログラム開発支援装置モジュールにリンクされる。以後、付加機能が実行可能な状態となる。
第４のステップ：  付加機能を有するソフトウェアモジュールがパソコン内の補助記憶装置に存在しない場合には、以後の処理を継続する。
【００４２】
また、付加機能を有するソフトウェアモジュールは、ハードウェアキーを認証し、付加機能を実行する条件とすることができる。具体的には、付加機能を有するソフトウェアモジュール内には、ハードウェアキーを認証する処理が含まれている。ハードウェアキーが認証された場合には、付加機能が実行可能な状態となる。
【００４３】
さらに、パスワード記憶領域の記憶情報と照合されたり、あるいは、パスワード記憶領域への書き込みに使用されるパスワード情報は、ハードウェアキー内の認証情報と対応したパスワードとし、従来のＰＬＣシステムにおける制御プログラム開発支援装置を用いてユーザが設定したり解除したりすることができないパスワードとすることができる。このパスワード情報は、セキュリティの観点からは、付加機能を有するソフトウェアモジュール内に持たせる方が望ましい。
【００４４】
次に、制御プログラム開発支援装置１を構成するパソコン１ａの構成図が図３に示されている。同図に示されるように、パソコン１ａは、パソコン本体１２と、マウスやキーボード等の入力装置１３と、ＣＲＴや液晶ディスプレイ等で構成される表示装置１４とを有する。
【００４５】
パソコン本体１２とＰＬＣのＣＰＵユニット２０とはインタフェース（ＲＳ２３２Ｃ等）１２６を介してデータのやり取りが可能となっている。また、パソコン本体１２には、ハードウェアキー１１が着脱自在に装着されている。ハードウェアキー１１はパソコンのパラレルポート、シリアルポートなどに接続されるもので、内部にメモリを具備し、そのメモリにはパスワードコード１１ａが格納されている。
【００４６】
パソコン本体１２内には、システム全体を統括制御するためのＣＰＵ１２１と、メモリ１２２と、ハードディスク等の補助記憶装置１２３と、表示制御用メモリ１２４と、それらを繋ぐシステムバス１２５とが内蔵されている。
【００４７】
補助記憶装置１２３内には制御プログラム開発支援装置プログラムモジュール、付加機能を持つソフトウェアモジュール等が格納され、制御プログラム開発支援装置プログラムの起動指令により、メモリ１２２上に展開される。
【００４８】
図示の例にあっては、メモリ１２２内には、制御プログラム開発支援装置プログラムモジュール１２２ａと、ハードウェアキーにバス経由でアクセスするためのハードウェアキー用ドライバ１２２ｂと、ハードウェアキーの認証を行うためのパスワードコード１２２ｄを備えたハードウェア認証モジュール１２２ｃと、ハードウェアキー認証フラグメモリエリア１２２ｅと、ユーザプログラムデータエリア１２２ｆとが含まれている。図示されていないが、付加機能を実行するソフトウェアモジュールもメモリ１２２上に展開されている。
【００４９】
ソフトウェアの構成要素としては、制御プログラム開発支援装置プログラムモジュール１２２ａと、ハードウェアキー用ドライバ１２２ｂと、ハードウェアキー認証モジュール１２２ｃとを備えている。
【００５０】
なお、ハードウェアキー認証モジュール１２２ｃが備えているパスワードコード１２２ｄとハードウェアキーに格納されているパスワードコード１１ａは同じコードであり、ユーザによって予め設定されているものとする。また、ハードウェアキー１１がハードウェア認証モジュール１２２ｃにより正しく認証された場合、ＣＰＵのメモリ空間上にあるハードウェアキー認証フラグメモリエリア１２２ｅにハードウェアキー認証が正しく行われたことを意味する値がセットされる。
【００５１】
次に、ＰＬＣのＣＰＵユニットの構成図が図４に示されている。このＰＬＣは所謂ビルディングブロック型のもので、ＣＰＵユニットの他に、Ｉ／Ｏユニット、特殊機能ユニット等々を含んでＰＬＣの全体が構成されており、図４ではそれらユニットの中で、ＣＰＵユニット２０のみが取り出して示されている。
【００５２】
同図に示されるように、ＣＰＵユニット２０は、ＣＰＵユニットの全体を統括するマイクロプロセッサ２０ａと、ＰＬＣとしての機能を実現するに必要な各種のシステムプログラムを格納させたＲＯＭ２０ｂと、各種演算の途中結果等の一時記憶エリア等として使用されるワークＲＡＭ２０ｃと、異常通知の設定や異常ステータス等を格納するためのデータ格納用の不揮発性メモリ２０ｄと、ユーザが作成した制御プログラム（ユーザプログラム）を格納するためのユーザメモリ２０ｅと、外部Ｉ／Ｏ割付用メモリやユーザプログラムで使用されるデータメモリ等として機能する入出力メモリ（ＩＯＭ）２０ｆと、ユーザプログラム（命令）実行処理、通信ユニットインタフェース処理、メモリアクセスバス調停処理等を実行するためのＡＳＩＣ２０ｇとを含んでいる。
【００５３】
この種のＰＬＣの基本的な機能乃至処理については、既に、各種の文献などにより周知であるから詳細な説明は省略するが、例えば、図１３に示されるように、電源ＯＮ時処理（ステップ１３０１）を実行した後、共通処理（ステップ１３０２）に続いて、演算処理（ステップ１３０３）、Ｉ／Ｏリフレッシュ処理（ステップ１３０４）、周辺サービス処理（ステップ１３０５）を繰り返し実行するように構成されている。
【００５４】
次に、制御プログラム開発支援装置の処理全体を示すゼネラルフローチャートが、図５に示されている。同図にされるように、制御プログラム開発支援装置の処理の全体は、ユーザ操作による起動指示を受け付けた直後に実行される起動時処理（ステップ５０１）と、起動時処理（ステップ５０１）に続いて繰り返し実行される定常時処理（ステップ５０２）と、終了操作を待って（ステップ５０３ＹＥＳ）実行される終了時処理（ステップ５０４）とから構成されている。
【００５５】
起動時処理（ステップ５０１）の詳細が図６に示されている。同図において処理が開始されると、ハードウェアおよびソフトウェア全体の初期処理（ステップ６０１）を行った後、パソコン上のメモリ空間に割り当てられる「ハードウェアキー認証フラグメモリエリア」１２２ｅを初期化する（ステップ６０２）。このメモリエリア１２２ｅは、パソコン１ａに装着されるハードウェアキー１１が認証済または未認証の２値を持ち、初期化処理においては未認証の値をセットする。
【００５６】
続いて、ハードウェア認証モジュール１２２ｃが補助記憶装置１２３に存在するか否かをチェックし（ステップ６０３）、存在する場合は（ステップ６０３ＹＥＳ）、ハードウェア認証モジュール１２２ｃを制御プログラム開発支援装置プログラムモジュール１２２ａの一部として動作するように、パソコン１ａのメモリ空間に読み出す（ステップ６０４）。ステップ６０３は、付加機能を持つソフトウェアモジュールがパソコンに存在するかどうかを確認するための処理である。なぜなら、ハードウェア認証モジュール１２２ｃは付加機能を持つソフトウェアモジュールに含まれているからである。付加機能を持つソフトウェアモジュールに含まれているならば何れいずれのソフトウェアモジュールでもデータファイルでも良い。
【００５７】
続いて、ハードウェアキー用ドライバ（ソフトウェアモジュール）１２２ｂを介して、ハードウェアキー１１がパソコン１ａに装着されているか否かをチェックする（ステップ６０５）。ここで、ハードウェアキー１１がパソコン１ａに装着されている場合は（ステップ６０６ＹＥＳ）、ハードウェアキー用ドライバ（ソフトウェアモジュール）１２２ｂを介して、ハードウェアキー１１のメモリ上に格納されているパスワードコード１１ａを読み出して（ステップ６０７）、ハードウェアキー認証モジュール１２２ｃ内に存在するパスワードコード１２２ｄとを比較する。
【００５８】
ここで、ハードウェアキー１１のパスワードコード１１ａとハードウェアキー認証モジュール１２２ｃ内のパスワードコード１２２ｄとが一致する場合には（ステップ６０８ＹＥＳ）、ハードウェアキー認証フラグメモリエリア１２２ｅに認証済の値をセットする（ステップ６０９）。
【００５９】
これに対して、ハードウェア認証モジュール１２２ｃが存在しない場合は（ステップ６０３ＮＯ）、起動時処理（図５、ステップ５０１）を直ちに終了して、定常時処理（図５、ステップ５０２）へと移行し、従前通りのセキュリティレベルを有する制御プログラム開発支援装置として動作する。
【００６０】
なお、ハードウェア認証モジュール１２２ｃが存在しても（ステップ６０３ＹＥＳ）、ハードウェアキー１１が存在しないか（ステップ６０６ＮＯ）、あるいは、ハードウェアキー１１のメモリ上に格納されているパスワードコード１１ａとハードウェア認証キー認証モジュール１２２ｃ内に存在するパスワードコード１２２ｄとが一致しない場合についても（ステップ６０８ＮＯ）、従前通りのセキュリティレベルを有する制御プログラム開発支援装置として動作する。
【００６１】
従って、制御プログラム開発支援装置１に加え、ハードウェアキー１１およびハードウェアキー認証モジュール１２２ｃが存在し、ハードウェアキー１１およびハードウェアキー認証モジュール１２２ｃ内にそれぞれ持つパスワードコードが一致する場合に限り、本発明のセキュリティレベルの高いパスワードプロテクト機能が動作することが理解されるであろう。
【００６２】
定常時処理（ステップ５０２）の詳細を示すフローチャートが図７に示されている。同図に示されるように、この定常時処理においては、パソコン１ａの入力装置１３を構成するキーボードやマウスによる機能選択操作（ステップ７０１）によりいずれの機能が選択されたかを判定し（ステップ７０２，７０４，７０６，７０８，７０９，７１１）、それらの判定結果に応じて、ＰＬＣとの接続処理（ステップ７０３）、ＰＬＣプログラムの読み出し処理（ステップ７０５）、ＰＬＣプログラムの書き込み処理（ステップ７０７）、ＰＬＣプログラムのプロテクト設定処理（ステップ７１０）、又はＰＬＣプログラムのプロテクト解除処理（ステップ７１２）のいずれかを択一的に実行する。なお、図７および図７の説明文中のＰＬＣプログラムとは、ＰＬＣ２のユーザプログラム記憶領域Ａ２に格納されるユーザプログラムのことである。
【００６３】
ＰＬＣとの接続処理（ステップ７０３）の詳細フローチャートが図８示されている。同図において、処理が開始されると、ハードウェアキー認証フラグメモリエリア１２２ｅの内容を読み出すと共に（ステップ８０１）、その内容に基づいてハードウェアキー認証フラグメモリエリア１２２ｅが認証状態であるか否かを判定する（ステップ８０２）。なお、図８および図８の説明文中のプログラムとは、図７および図７の説明文中のＰＬＣプログラムのことである。
【００６４】
ここで、ハードウェアキー認証フラグメモリエリア１２２ｅが認証状態であると判定されると（ステップ８０２ＹＥＳ）、ＣＰＵユニット２０に対してプログラム読み出しの通信コマンドを発行する（ステップ８０３）。このとき、ＣＰＵユニット２０からはプログラム読み出しの通信コマンドのレスポンスとして、正常に読み出せるか、プロテクト中で読み出せないかのいずれかが返ってくる。そのレスポンスに基づいてプログラムはプロテクト中であるか否かの判定を行う（ステップ８０４）。
【００６５】
ここで、プログラムがプロテクト中でないと判定されると（ステップ８０４ＮＯ）、強制的にハードウェアキー１１のパスワード１１ａをプログラムにセットするか否かの問い合わせが表示装置１４を介してオペレータに対してなされ（ステップ８０７）、オペレータからの返答を待って（ステップ８０８）、強制的にハードウェアキー１１のパスワードコード１１ａをセットすべきか否かを判定する（ステップ８０９）。
【００６６】
ここで、強制的にハードウェアキー１１のパスワード１１ａをセットすべきとの返答の場合には（ステップ８０９ＹＥＳ）、ハードウェアキー認証モジュール１２２ｃ内のパスワードコード１２２ｄをセットしてＣＰＵユニット２０へ強制的なプロテクト設定の通信コマンドを発行する（ステップ８１０）。
【００６７】
しかるのち、オンライン接続時の初期処理（モニタ開始処理など）を実行して（ステップ８１１）、ＰＬＣ２との接続処理は終了する。
【００６８】
これに対して、ハードウェアキー認証フラグメモリエリア１２２ｅが認証状態でないときには（ステップ８０２ＮＯ）、コマンド発行処理（ステップ８０３，８１０）はいずれもスキップされて、直ちにオンライン接続時の初期処理（モニタ開始処理など）が実行されて（ステップ８１１）、ＰＬＣ２との接続処理は終了する。
【００６９】
なお、ハードウェアキー認証フラグメモリエリアが認証状態であったとしても（ステップ８０２ＹＥＳ）、プログラムがプロテクト中であったときには（ステップ８０４ＹＥＳ）、通信コマンド発行処理（ステップ８１０）はスキップされて、オンライン接続時の初期処理（モニタ開始処理など）が実行される（ステップ８１１）。
【００７０】
これにより、ハードウェアキー１１が正しく認証されている場合は、オンライン接続時に自動的にパスワードを設定することで、以後、ハードウェアキー１１が正しく認証されている制御プログラム開発支援装置に限り、プログラムの読み出しや書き込みが可能な状態を作り出す。
【００７１】
ＰＬＣプログラムの読み出し処理（ステップ７０５）の詳細フローチャートが図９に示されている。同図において、処理が開始されると、先ず、ハードウェアキー認証フラグエリア１２２ｅの内容を読み出し（ステップ９０１）、続いてハードウェアキー認証メモリエリア１２２ｅが認証状態か否かをチェックする（ステップ９０２）。なお、図８および図８の説明文中のプログラムとは、図７および図７の説明文中のＰＬＣプログラムのことである。
【００７２】
ここで、ハードウェアキー認証フラグメモリエリア１２２ｅが認証状態であると判定されると（ステップ９０２ＹＥＳ）、続いてＣＰＵユニット２０へプログラムプロテクト解除の通信コマンドを発行したのち（ステップ９０３）、続いてＣＰＵユニット２０からの返信に基づいて、プログラムは既にプロテクト中であるか否かの判定を行う（ステップ９０４）。
【００７３】
ここで、プログラムがプロテクト中ではないと判定されると（ステップ９０４ＮＯ）、ＣＰＵユニット２０へプログラム読み出しの通信コマンドを発行する（ステップ９０５）。しかるのち、ＣＰＵユニット２０へとプログラムプロテクト設定の通信コマンドを発行して処理を終了する（ステップ９０７）。これに対して、プログラムがプロテクト中であると判定されると（ステップ９０４ＹＥＳ）、プログラムがプロテクト中である旨を表示装置１４を介して表示したのち（ステップ９０６）、処理を終了する。
【００７４】
このようにプログラム読み出し処理にあっては、ハードウェアキー認証フラグメモリエリア１２２ｅを読み出し（ステップ９０１）、ハードウェア認証フラグメモリエリアが認証状態か否かをチェックする（ステップ９０２）。認証状態の場合は（ステップ９０２ＹＥＳ）、プログラムプロテクトを解除する通信コマンドを通信インタフェース１２６を介しＣＰＵユニット２０へ発行する（ステップ９０３）。その後、プログラムを読み出す通信コマンドを通信インタフェース１２６を介しＣＰＵユニット２０へ発行し、プログラムを読み出す。そして、プログラムプロテクトをセットする通信コマンドを通信インタフェース１２６を介しＣＰＵユニット２０へ発行する。
【００７５】
これにより、プログラムのプロテクト状態をプログラム読み出し処理の直前および直後にそれぞれ解除・設定することにより、他に接続している制御プログラム開発支援装置からのアクセスを禁止する。
【００７６】
ＰＬＣプログラムの書き込み処理（ステップ７０７）の詳細フローチャートが図１０に示されている。同図において、処理が開始されると、先ず、ハードウェアキー認証フラグエリア１２２ｅの内容を読み出し（ステップ１００１）、続いてハードウェアキー認証メモリエリア１２２ｅが認証状態か否かをチェックする（ステップ１００２）。
【００７７】
ここで、ハードウェアキー認証フラグメモリエリア１２２ｅが認証状態であると判定されると（ステップ１００２ＹＥＳ）、続いてＣＰＵユニット２０へプログラムプロテクト解除の通信コマンドを発行したのち（ステップ１００３）、続いてＣＰＵユニット２０からの返信に基づいて、プログラムは既にプロテクト中であるか否かの判定を行う（ステップ１００４）。
【００７８】
ここで、プログラムがプロテクト中ではないと判定されると（ステップ１００４ＮＯ）、ＣＰＵユニット２０へプログラム書き込みの通信コマンドを発行する（ステップ１００５）。しかるのち、ＣＰＵユニット２０へとプログラムプロテクト設定の通信コマンドを発行して処理を終了する（ステップ１００７）。これに対して、プログラムがプロテクト中であると判定されると（ステップ１００４ＹＥＳ）、プログラムがプロテクト中である旨を表示装置１４を介して表示したのち（ステップ１００６）、処理を終了する。
【００７９】
このようにプログラム書き込み処理にあっては、ハードウェアキー認証フラグメモリエリア１２２ｅを読み出し（ステップ１００１）、ハードウェア認証フラグメモリエリアが認証状態か否かをチェックする（ステップ１００２）。認証状態の場合は（ステップ１００２ＹＥＳ）、プログラムプロテクトを解除する通信コマンドを通信インタフェース１２６を介しＣＰＵユニット２０へ発行する（ステップ１００３）。その後、プログラムを書き込む通信コマンドを通信インタフェース１２６を介しＣＰＵユニット２０へ発行し、プログラムを書き込む。そして、プログラムプロテクトをセットする通信コマンドを通信インタフェース１２６を介しＣＰＵユニット２０へ発行する。
【００８０】
これにより、プログラムのプロテクト状態をプログラム書き込み処理の直前および直後にそれぞれ解除・設定することにより、他に接続している制御プログラム開発支援装置からのアクセスを禁止する。
【００８１】
ＰＬＣプログラムのプロテクト設定処理（ステップ７１０）の詳細フローチャートが図１１に示されている。図１１に示される処理は、従前通りのセキュリティレベルを有する制御プログラム開発支援装置として動作する場合のプロテクト設定処理を説明するものである。本処理は、図６に示す起動時の処理において、ハードウェアキー１１またはハードウェアキー認証モジュール１２２ｃが存在しないか、存在してもハードウェアキー１１およびハードウェアキー認証モジュール１２２ｃ内にそれぞれ持つパスワードコード１１ａ，１２２ｄが一致していない場合に動作するようになっている。なお、図１１および図１１の説明文中のプログラムとは、図７および図７の説明文中のＰＬＣプログラムのことである。
【００８２】
同図において、処理が開始されると、ＣＰＵユニット２０へプログラム読み出しの通信コマンドを発行したのち（ステップ１１０１）、その通信コマンドに対するレスポンスに基づいてプログラムはプロテクト中であるか否かをチェックする（ステップ１１０２）。
【００８３】
ここで、ＣＰＵユニット２０からのレスポンスに基づいて、プログラムがプロテクト中であると判定されると（ステップ１１０２ＹＥＳ）、プログラムがプロテクト中である旨を表示装置１４を介して表示したのち（ステップ１１０３）、オペレータからの設定済みのパスワード入力を待機する（ステップ１１０４）。
【００８４】
オペレータによってパスワードが入力されると、ＣＰＵユニット２０に対して、パスワード取得の通信コマンドを発行したのち（ステップ１１０５）、ＣＰＵユニット２０からのレスポンスを待って、入力されたパスワードとＣＰＵユニット２０上のパスワードとの照合を行う（ステップ１１０６）。
【００８５】
ここで、入力されたパスワードとＣＰＵユニット２０上のパスワードとが一致すると判定されると（ステップ１１０６ＹＥＳ）、オペレータからの新規パスワードの入力を待って（ステップ１１０７）、ＣＰＵユニット２０へプログラムプロテクト設定（新規パスワード含む）の通信コマンドを発行して処理を終了する（ステップ１１１０）。これに対して、入力されたパスワードとＣＰＵユニット２０上のパスワードとが一致しないと判定されると（ステップ１１０６ＮＯ）、パスワード不一致の旨が表示装置１４を介して表示される（ステップ１１０９）。
【００８６】
なお、プログラムはプロテクト中ではないと判定されると（ステップ１１０２ＮＯ）、オペレータからの新規パスワード入力を待って（ステップ１１０８）、ＣＰＵユニット２０へプログラムプロテクト設定（新規パスワード含む）の通信コマンドを発行して処理を終了する（ステップ１１１０）。
【００８７】
ＰＬＣプログラムのプロテクト解除処理（ステップ７１２）の詳細フローチャートが図１２に示されている。図１２に示される処理は、従前通りのセキュリティレベルを有する制御プログラム開発支援装置として動作する場合のプロテクト解除処理を説明するものである。本処理についても、図６に示す起動時の処理において、ハードウェアキー１１またはハードウェアキー認証モジュール１２２ｃが存在しないか、存在してもハードウェアキー１１およびハードウェアキー認証モジュール１２２ｃ内にそれぞれ持つパスワードコード１１ａ，１２２ｄが一致していない場合に動作するようになっている。
【００８８】
同図において、処理が開始されると、ＣＰＵユニット２０へプログラム読み出しの通信コマンドを発行したのち（ステップ１２０１）、その通信コマンドに対するレスポンスに基づいてプログラムはプロテクト中であるか否かをチェックする（ステップ１２０２）。
【００８９】
ここで、ＣＰＵユニット２０からのレスポンスに基づいて、プログラムがプロテクト中であると判定されると（ステップ１２０２ＹＥＳ）、オペレータからの設定済みのパスワード入力を待機する（ステップ１２０３）。
【００９０】
オペレータによってパスワードが入力されると、ＣＰＵユニット２０に対して、パスワード取得の通信コマンドを発行したのち（ステップ１２０４）、ＣＰＵユニット２０からのレスポンスを待って、入力されたパスワードとＣＰＵユニット２０上のパスワードとの照合を行う（ステップ１２０５）。
【００９１】
ここで、入力されたパスワードとＣＰＵユニット２０上のパスワードとが一致すると判定されると（ステップ１２０５ＹＥＳ）、ＣＰＵユニット２０へプログラムプロテクト解除の通信コマンドを発行して処理を終了する（ステップ１２０６）。これに対して、入力されたパスワードとＣＰＵユニット２０上のパスワードとが一致しないと判定されると（ステップ１２０５ＮＯ）、パスワード不一致の旨が表示装置１４を介して表示される（ステップ１２０８）。
【００９２】
なお、プログラムはプロテクト中ではないと判定されると（ステップ１２０２ＮＯ）、プロテクト中ではない旨を表示装置１４を介して表示したのち（ステップ１２０７）処理を終了する。
【００９３】
次に、ＰＬＣ（ＣＰＵユニット２０）の処理全体を概略的に示すフローチャートが図１３に示されている。同図に示されるように、電源ＯＮ時処理（ステップ１３０１）と、共通処理（ステップ１３０２）と、演算処理（ステップ１３０３）と、Ｉ／Ｏリフレッシュ処理（ステップ１３０４）と、周辺サービス処理（ステップ１３０５）とを含んでいる。電源ＯＮ時処理では、ＰＬＣを構成するユニットの接続状態を認識する処理等が行なわれる。共通処理では、メモリに異常がないかをチェックする処理等が行なわれる。演算処理では、ユーザプログラムが実行される。Ｉ／Ｏリフレッシュ処理では、ＰＬＣを構成するユニットとのデータ交換等が行なわれる。周辺サービス処理では、パソコンなどの外部機器との通信処理等が行なわれる。さらに、同図に示されるように、電源ＯＮ時処理（ステップ１３０１）を実行した後、共通処理（ステップ１３０２）に続いて、演算処理（ステップ１３０３）、Ｉ／Ｏリフレッシュ処理（ステップ１３０４）、周辺サービス処理（ステップ１３０５）を繰り返し実行するように構成されている。そして、この発明に係る種々の処理は、主として、周辺サービス処理にて実行される。
【００９４】
周辺サービス処理の詳細フローチャートが図１４に示されている。このＰＬＣのＣＰＵユニット２０には、ユーザ認証機能が組み込まれている。
【００９５】
同図において、処理が開始されると、先ず、機能選択処理（ステップ１４０１）が実行される。この処理は、制御プログラム開発支援装置１から到来するコマンドの種別を解読することにより、ＣＰＵユニット２０側で実行すべき機能を認識するものである。
【００９６】
先に説明したように、この実施形態のＰＬＣシステムの場合には、プログラム書き込み用の通信コマンド、プログラム読み出し用の通信コマンド、プロテクト設定用の通信コマンド、プロテクト解除用の通信コマンド等々が使用されるので、図示例にあっては、それらのコマンドに対応する処理部分だけを取り出して詳細に示している。
【００９７】
すなわち、プログラム書き込み機能が選択されると（ステップ１４０２ＹＥＳ）、ＣＰＵユニット２０の側では所定のプログラム書き込み処理（ステップ１４０３）が実行され、ユーザプログラム領域（図１，Ａ２）に対するプログラムの書き込み処理が実行される。る。このプログラム書き込み処理（ステップ１４０３）では、プロテクトが解除されていることを条件として、制御プログラム開発支援装置１から到来するユーザプログラムをユーザプログラム領域（図１、Ａ２）に書き込む処理を実行する。なお、ユーザプログラムがプロテクト設定されている場合には、書き込み不能を示すレスポンスを制御プログラム開発支援装置１へと返すこととなる。
【００９８】
プログラム読み出し機能が選択されると（ステップ１４０４ＹＥＳ）、ＣＰＵユニット２０の側では所定のプログラム読み出し処理（ステップ１４０５）が実行される。このプログラム読み出し処理（ステップ１４０５）では、プロテクトが解除されていることを条件として、ユーザプログラム領域（図１、Ａ２）に書き込まれているユーザプログラムを制御プログラム開発支援装置１へと送出する処理を実行する。なお、ユーザプログラムがプロテクト設定されている場合には、読み出し不能を示すレスポンスを制御プログラム開発支援装置１へと返すこととなる。
【００９９】
プロテクト設定機能が選択されると（ステップ１４０６ＹＥＳ）、ＣＰＵユニット２０の側では所定のプロテクト設定処理（ステップ１４０７）が実行される。このプロテクト設定処理（ステップ１４０７）では、制御プログラム開発支援装置１から送られてくるパスワードコードをパスワード記憶領域（図１、Ａ１）に書き込むことにより、プロテクト設定状態を記憶する処理を実行する。なお、既に、プロテクト設定されている場合には、その旨を示すレスポンスを制御プログラム開発支援装置１へと返すこととなる。
【０１００】
プロテクト解除機能が選択されると（ステップ１４０８ＹＥＳ）、ＣＰＵユニット２０の側では所定のプロテクト解除処理（ステップ１４０９）が実行される。このプロテクト解除処理（ステップ１４０９）では、パスワード記憶領域（図１、Ａ１）に書き込まれているパスワードコードを消去乃至初期化することにより、プロテクト解除状態を記憶する処理を実行する。なお、既に、プロテクト解除されている場合には、その旨を示すレスポンスを制御プログラム開発支援装置１へと返信することとなる。
【０１０１】
これまでに述べた実施例においては、付加機能をもつソフトウェアモジュールは付加機能を実行する部分と、ハードウェアキーを認証する機能を実行する部分とを含んでいた。以下では、付加機能を実行する部分は、予め制御プログラム開発支援装置プログラムモジュール内に組み込まれており、制御プログラム開発支援装置プログラムモジュールとは異なるソフトウェアモジュールとしてハードウェアキーを認証する機能を実行するソフトウェアモジュールが存在する実施例について述べる。この実施例の模式的構成図とソフトウェア構成図がそれぞれ図１６と図１７に示されている。図１６と図１７は、それぞれ前述の実施例の図１と図２に対応する。
【０１０２】
この実施例の模式的構成図が図１６に示されている。なお、図１と同じ構成要素については、図１と同じ符号を付してある。図１６に示されるように、このＰＬＣシステムは、ＰＬＣ２と制御プログラム開発支援装置１として機能するパソコン１ａとを通信手段（例えば、ＲＳ２３２Ｃ等）を介して結んでなるものである。なお、図において、Ａ１はパスワード記憶領域、Ａ２はユーザプログラム記憶領域である。ユーザが制御プログラム開発支援装置１上で作成したユーザプログラムは、ＰＬＣ２上のユーザプログラム記憶領域Ａ２に格納される。
【０１０３】
制御プログラム開発支援装置１内には、付加機能を実行する部分が予め組み込まれている制御プログラム開発支援装置プログラムモジュールと、ハードウェアキーを認証する機能を持つソフトウェアモジュールが含まれている。ここで付加機能とは、前述の実施例で説明されている付加機能のことであり、その説明は省略する。パソコン１ａには、ハードウェアキー１１が着脱自在に装着されている。このハードウェアキー１１としては、例えばパソコンのＵＳＢソケットに装着可能なＵＳＢプラグ付のケースを有するフラッシュメモリ（通称：ＵＳＢメモリ）等の着脱自在なメモリ媒体で構成されており、このハードウェアキー１１の中には、所定のパスワードコード１１ａ（図３参照）が記憶されている。
【０１０４】
制御プログラム開発支援装置のソフトウェア構成図が図１７に示されている。なお、図２と同じ構成要素については、図２と同じ符号を付してある。図１７において、１は制御プログラム開発支援装置（プログラムモジュール）、３はハードウェアキーを認証する機能を有するソフトウェアモジュール、Ｆ１はソフトウェア的に実現されるプログラムの読み出し機能、Ｆ２はソフトウェア的に実現されるプログラムの書き込み機能である。ここで、プログラムの読み出し機能Ｆ１の読み出し対象となるプログラムは、ＰＬＣ２上のユーザプログラム記憶領域Ａ２に格納されているユーザプログラムのことである。また、プログラムの書き込み機能Ｆ２の書き込み対象となるプログラムは、制御プログラム開発支援装置１上に存在するユーザプログラムのことである。
【０１０５】
図から明らかなように、ハードウェアキーを認証する機能を有するソフトウェアモジュール３内には、ハードウェアキー用ドライバ３ａと、ハードウェアキー用ドライバとのインタフェース（Ｉ／Ｆ）３ｂと、ハードウェアキー認証モジュール３ｄとが含まれている。このハードウェアキー用ドライバ３ａと、ハードウェアキー用ドライバとのインタフェース（Ｉ／Ｆ）３ｂと、ハードウェアキー認証モジュール３ｄは、それぞれ図２のハードウェアキー用ドライバ１０ａと、ハードウェアキー用ドライバとのインタフェース（Ｉ／Ｆ）１０ｂと、ハードウェアキー認証モジュール１０ｄと同じである。また、制御プログラム開発支援装置プログラムモジュール内に予め組み込まれている付加機能１ｃは、図２の付加機能１０ｃと同じである。
【０１０６】
この実施例における制御プログラム開発支援装置の構成図は図３と同等である。この実施例においては、ハードウェアキーを認証する機能を有するソフトウェアモジュールは、図３の補助記憶装置１２３に格納され、制御プログラム開発支援装置プログラムの起動指令によりメモリ１２２上に展開される。付加機能を実行する部分は予め制御プログラム開発支援装置プログラムモジュールに組み込まれているため、図３のメモリ１２２上では制御プログラム開発支援装置プログラムモジュール１２２ａに含まれている。
【０１０７】
この実施例における制御プログラム開発支援装置の処理全体を示すゼネラルフローチャートは図５と同等である。ただし、起動時処理（ステップ５０１）の詳細を説明する図６のステップ６０３の処理が異なる。前述の実施例におけるステップ６０３は、付加機能をもつソフトウェアモジュールがパソコンに存在するかどうかを確認するためのステップであった。この実施例におけるステップ６０３はハードウェアキーの認証を行なう機能を持つソフトウェアモジュールがパソコンに存在するかどうかを確認するためのステップである。具体的には、ハードウェアキーの認証を行なう機能を持つソフトウェアモジュールに含まれるハードウェアキー認証モジュールが補助記憶装置に存在するかどうかを判定している。つまり、ハードウェアキー認証モジュールが存在すればハードウェアキーの認証を行なう機能を持つソフトウェアモジュールが存在すると判定する。また、ハードウェアキー認証モジュールが存在しなければ、ハードウェアキーの認証を行なう機能を持つソフトウェアモジュールが存在しないと判定する。
【０１０８】
この実施例における制御プログラム開発支援装置の処理を説明するフローチャートは、上述した以外のところは図６〜図１２と同等であり、その説明は省略する。
【産業上の利用可能性】
【０１０９】
本発明によれば、ＰＬＣ単体のプロテクトのしくみだけではなく、ハードウェアキーの認証のためのソフトウェアモジュールおよびハードウェアキーを、制御プログラム開発支援装置が動作するパソコンにインストールすることを条件にプロテクトの設定/解除が自動的にできるようになるため、次のような作用効果を奏する。
（１）一般的に知られているプロテクトの仕様を解析して実行したとしてもハードウェアキーに対応したパスワードでないとパスワード解除ができない。また、パスワードの解除後に再設定する必要がないためプロテクトの再設定のし忘れという状態がない。したがって、セキュリティレベルが向上する。
（２）既存のＰＬＣのパスワードプロテクトの仕組みを変更することなしに制御プログラム開発支援装置に機能を追加するのみで実現できる。そのため、既存のパスワードプロテクトの仕組みを持つＰＬＣであれば本発明によるプロテクト機能が実現でき、ＰＬＣに対するユーザの追加投資が不要となる。
（３）ＰＬＣや制御プログラム開発支援装置は汎用品を用いることができるためＰＬＣおよび制御プログラム開発支援装置を提供するメーカがユーザ毎に専用の商品を提供する必要がなくなるため、メーカの商品管理・維持の面でコスト的なメリットがある。
【図面の簡単な説明】
【０１１０】
【図１】本発明システムの模式的構成図である。
【図２】制御プログラム開発支援装置のソフトウェア構成図である。
【図３】制御プログラム開発支援装置の構成図である。
【図４】ＰＬＣのＣＰＵユニットの構成図である。
【図５】制御プログラム開発支援装置の処理全体を示すゼネラルフローチャートである。
【図６】起動時処理の詳細フローチャートである。
【図７】定常時処理の詳細フローチャートである。
【図８】ＰＬＣとの接続処理の詳細フローチャートである。
【図９】ＰＬＣプログラムの読み出し処理の詳細フローチャートである。
【図１０】ＰＬＣプログラムの書き込み処理の詳細フローチャートである。
【図１１】ＰＬＣプログラムのプロテクト設定処理の詳細フローチャートである。
【図１２】ＰＬＣプログラムのプロテクト解除処理の詳細フローチャートである。
【図１３】ＰＬＣの処理全体を示すゼネラルフローチャートである。
【図１４】周辺サービス処理の詳細フローチャートである。
【図１５】従来システムの模式的構成図である。
【図１６】本発明に係る他の実施例の模式的構成図である。
【図１７】本発明に係る他の実施例の制御プログラム開発支援装置のソフトウェア構成図である。
【符号の説明】
【０１１１】
１    制御プログラム開発支援装置
１ａ  パソコン
２    ＰＬＣ
１０  付加機能を持つソフトウェアモジュール
１０ａ  ハードウェアキー用ドライバ
１０ｂ  ハードウェアキー用ドライバとのインタフェース
１０ｃ  付加機能
１１  ハードウェアキー
１１ａ  パスワードコード
１２  メモリ
１３  入力装置
１４  表示装置
２０  ＰＬＣのＣＰＵユニット
２０ａ  ＭＰＵ
２０ｂ  ＲＯＭ
２０ｃ  ワークＲＡＭ
２０ｄ  データ格納用不揮発性メモリ
２０ｅ  ユーザメモリ（ＵＭ）
２０ｆ  入出力メモリ（ＩＯＭ）
２０ｇ  ＡＳＩＣ
１２１  パソコンのＣＰＵ
１２２  メモリ
１２２ａ  制御プログラム開発支援装置プログラムモジュール
１２２ｂ  ハードウェアキー用ドライバ
１２２ｃ  ハードウェアキー認証モジュール
１２２ｄ  パスワードコード
１２２ｅ  ハードウェアキー認証フラグメモリエリア
１２２ｆ  ユーザプログラムデータエリア
１２３  補助記憶装置
１２４  表示制御用メモリ
１２５  バス
１２６  インタフェース（通信用）
Ａ１  パスワード記憶領域
Ａ２  ユーザプログラム領域
Ｆ１  プログラムの読み出し機能
Ｆ２  プログラムの書き込み機能
【図１】
0004607080.tif 000002
【図２】
0004607080.tif 000003
【図３】
0004607080.tif 000004
【図４】
0004607080.tif 000005
【図５】
0004607080.tif 000006
【図６】
0004607080.tif 000007
【図７】
0004607080.tif 000008
【図８】
0004607080.tif 000009
【図９】
0004607080.tif 000010
【図１０】
0004607080.tif 000011
【図１１】
0004607080.tif 000012
【図１２】
0004607080.tif 000013
【図１３】
0004607080.tif 000014
【図１４】
0004607080.tif 000015
【図１５】
0004607080.tif 000016
【図１６】
0004607080.tif 000017
【図１７】
0004607080.tif 000018