(57)【要約】【課題】プログラマブルコントローラにより制御される装置や設備の連続稼動性を高め、プログラムの機密保持等のセキュリティを向上させる。【解決手段】入力パスワードが、暗号化されていたと判定された場合、入力パスワードが復号化され、パスワード国コードとパスワード有効期間データとに分割される。パスワード国コードと、予めプログラマブルコントローラのプログラミング装置に設定された装置内パスワードコードとが一致し、且つ、パスワードが入力された日付・時刻が、パスワード有効期間の範囲内にある場合、入力パスワードは有効とされ、そうでなければ、入力パスワードは無効とされる。入力パスワードが、暗号化されていないと判定された場合、入力パスワードと、ユーザにより設定されたユーザ設定パスワードとが照合される。【選択図】図６
2008083833.tif 000002
【特許請求の範囲】
【請求項１】
パスワード機能が設けられたプログラマブルコントローラのプログラミング装置であって、
パスワードを入力するパスワード入力手段と、
前記パスワード入力手段により入力された前記パスワードが、暗号化されているか否かを判定するパスワード暗号化判定手段と、
入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていたと判定された場合は、入力された前記パスワードを復号化して、暗号化パスワード要素コードと、パスワード有効期間データとに分割するパスワード復号化・分割手段と、
前記暗号化パスワード要素コードと、前記暗号化パスワード要素コードに対応する、予め前記プログラマブルコントローラのプログラミング装置に設定された装置内パスワードコードとが一致し、且つ、前記パスワードが入力された日付・時刻が、前記パスワード有効期間データの範囲内にある場合、入力された前記パスワードは有効であるとし、そうでなければ、入力された前記パスワードは無効であるとする第１のパスワード認証手段と、
入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていないと判定された場合は、入力された前記パスワードと、予め前記プログラマブルコントローラのプログラミング装置に設定されたメーカ専用パスワード、又は、ユーザによって前記プログラマブルコントローラのプログラミング装置に設定されたユーザ設定装置パスワードとが一致すれば、入力された前記パスワードは有効であるとし、そうでなければ、入力された前記パスワードは無効であるとする第２のパスワード認証手段と
を備えたことを特徴とするプログラマブルコントローラのプログラミング装置。
【請求項２】
前記暗号化パスワード要素コードは、パスワード国コードであり、且つ、前記装置内パスワードコードは、前記プログラマブルコントローラのプログラミング装置の言語設定を示す装置国コードである、ことを特徴とする請求項１に記載のプログラマブルコントローラのプログラミング装置。
【請求項３】
プログラマブルコントローラと、前記プログラマブルコントローラに接続されたプログラマブルコントローラのプログラミング装置とを含む、パスワード機能が設けられたプログラマブルコントローラシステムであって、
前記プログラマブルコントローラのプログラミング装置は、
パスワードを入力するパスワード入力手段と、
前記パスワード入力手段により入力された前記パスワードが、暗号化されているか否かを判定するパスワード暗号化判定手段と、
入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていたと判定された場合は、入力された前記パスワードを復号化して、暗号化パスワード要素コードと、パスワード有効期間データとに分割するパスワード復号化・分割手段と、
前記暗号化パスワード要素コードと、前記暗号化パスワード要素コードに対応する、予め前記プログラマブルコントローラのプログラミング装置に設定された装置内パスワードコードとが一致し、且つ、前記パスワードが入力された日付・時刻が、前記パスワード有効期間データの範囲内にある場合、入力された前記パスワードは有効であると判定し、そうでなければ、入力された前記パスワードは無効であると判定するパスワード判定手段と、
前記プログラマブルコントローラに対するコマンドの実行が許可されるか否かを認証するためのコマンド実行認証用パスワードを、前記プログラマブルコントローラに送信するコマンド実行認証用パスワード送信手段とを備え、
入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていないと判定された場合は、前記コマンド実行認証用パスワードは、入力された前記パスワードとし、入力された前記パスワードが、前記パスワード判定手段により、有効であると判定された場合は、前記コマンド実行認証用パスワードは、予め前記プログラマブルコントローラのプログラミング装置に設定された第１のメーカ専用パスワードとし、
前記プログラマブルコントローラは、
前記プログラマブルコントローラのプログラミング装置から送信された前記コマンド実行認証用パスワードを受信するコマンド実行認証用パスワード受信手段と、
前記コマンド実行認証用パスワードと、予め前記プログラマブルコントローラに設定された第２のメーカ専用パスワード、又は、ユーザによって前記プログラマブルコントローラに設定されたユーザ設定プログラマブルコントローラパスワードとが一致した場合は、前記コマンド実行認証用パスワードは有効であるとし、そうでなければ、前記コマンド実行認証用パスワードは無効であるとするパスワード認証手段とを備え、
前記第１のメーカ専用パスワードと、前記第２のメーカ専用パスワードとは同一である、ことを特徴とするプログラマブルコントローラシステム。
【請求項４】
前記暗号化パスワード要素コードは、パスワード国コードであり、且つ、前記装置内パスワードコードは、前記プログラマブルコントローラのプログラミング装置の言語設定を示す装置国コードである、ことを特徴とする請求項３に記載のプログラマブルコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラのプログラミング装置、及び、プログラマブルコントローラシステムに関する。より詳細には、本発明は、プログラマブルコントローラのプログラミング装置やプログラマブルコントローラのメーカが保有するパスワード生成装置により生成されたパスワードを用いることにより、パスワード認証されるプログラマブルコントローラのプログラミング装置、及び、プログラマブルコントローラシステムに関する。
【背景技術】
【０００２】
従来のプログラマブルコントローラ（以下、ＰＬＣとも略記する）は、プログラムの機密保持や、ＰＬＣの操作を保護、又は、制限するため、すなわち、セキュリティの目的上、パスワード機能が設けられている。
【０００３】
前述のパスワードを用いた機密保持等において、厳しい管理が要求される場合と柔軟な管理が要求される場合とがある。このような機密保持等の要求に対し、パスワードの入力により機密保持等を行うＰＬＣにおいて、パスワードの入力ミスの許容条件をユーザにて設定可能とし、入力ミスの回数が許容条件を超えた場合には、パスワードの受付を禁止する発明が提案されている（例えば、特許文献１参照）。また、前述のパスワードの受付禁止状態を受付許容状態に戻すための復旧条件をユーザにて設定可能とし、その復旧条件が満たされた場合には、パスワードの受付禁止状態を解除して、受付許容状態に戻す発明が提案されている（同上）。これにより、ユーザが、使用用途に合わせて機密保持レベルを個別に設定でき、柔軟なパスワードの運用を図ることができる。
【０００４】
【特許文献１】特開２００２−２２９６０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の従来技術が実施されても、ユーザ用パスワードを忘れた場合には、ユーザは、ＰＬＣのプログラムをクリアすることによって、ユーザ用パスワードのクリアを行い、再度プログラムをＰＬＣへ送信した後に、新たなユーザ用パスワードをＰＬＣに設定する必要があった。この際には、ＰＬＣ、すなわち、ＰＬＣにより制御される装置や設備の稼動を停止しなければならない。
【０００６】
また、ユーザ用パスワードを忘れた場合に、ＰＬＣを停止させることなく、操作制限を解除するには、メーカ専用パスワードを用いることにより、一時的に操作制限を解除できるが、最終的には上述のようにユーザ用パスワードを再設定する必要があった。メーカ専用パスワードは、メーカによって固有管理され、ユーザに公開されないため、メーカ担当者がＰＬＣの設置場所に直接赴いて、メーカ専用パスワードを入力する必要があったが、メーカ専用パスワードは、固定されているため、いったん漏洩してしまうと、プログラムの機密保持等が不可能となってしまう。
【０００７】
そこで、本発明は、上述の点に鑑みて、ＰＬＣにより制御される装置や設備の連続稼動性を高める、パスワード機能が設けられたプログラマブルコントローラのプログラミング装置、及び、プログラマブルコントローラシステムを提供することを目的とする。
【０００８】
また、本発明は、機密保持等のセキュリティを向上させる、パスワード機能が設けられたプログラマブルコントローラのプログラミング装置、及び、プログラマブルコントローラシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
このような目的を達成するために、請求項１に記載の発明は、パスワード機能が設けられたプログラマブルコントローラのプログラミング装置であって、パスワードを入力するパスワード入力手段と、前記パスワード入力手段により入力された前記パスワードが、暗号化されているか否かを判定するパスワード暗号化判定手段と、入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていたと判定された場合は、入力された前記パスワードを復号化して、暗号化パスワード要素コードと、パスワード有効期間データとに分割するパスワード復号化・分割手段と、前記暗号化パスワード要素コードと、前記暗号化パスワード要素コードに対応する、予め前記プログラマブルコントローラのプログラミング装置に設定された装置内パスワードコードとが一致し、且つ、前記パスワードが入力された日付・時刻が、前記パスワード有効期間データの範囲内にある場合、入力された前記パスワードは有効であるとし、そうでなければ、入力された前記パスワードは無効であるとする第１のパスワード認証手段と、入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていないと判定された場合は、入力された前記パスワードと、予め前記プログラマブルコントローラのプログラミング装置に設定されたメーカ専用パスワード、又は、ユーザによって前記プログラマブルコントローラのプログラミング装置に設定されたユーザ設定装置パスワードとが一致すれば、入力された前記パスワードは有効であるとし、そうでなければ、入力された前記パスワードは無効であるとする第２のパスワード認証手段とを備えたことを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載のプログラマブルコントローラのプログラミング装置であって、前記暗号化パスワード要素コードは、パスワード国コードであり、且つ、前記装置内パスワードコードは、前記プログラマブルコントローラのプログラミング装置の言語設定を示す装置国コードである、ことを特徴とする。
【００１１】
請求項３に記載の発明は、プログラマブルコントローラと、前記プログラマブルコントローラに接続されたプログラマブルコントローラのプログラミング装置とを含む、パスワード機能が設けられたプログラマブルコントローラシステムであって、前記プログラマブルコントローラのプログラミング装置は、パスワードを入力するパスワード入力手段と、前記パスワード入力手段により入力された前記パスワードが、暗号化されているか否かを判定するパスワード暗号化判定手段と、入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていたと判定された場合は、入力された前記パスワードを復号化して、暗号化パスワード要素コードと、パスワード有効期間データとに分割するパスワード復号化・分割手段と、前記暗号化パスワード要素コードと、前記暗号化パスワード要素コードに対応する、予め前記プログラマブルコントローラのプログラミング装置に設定された装置内パスワードコードとが一致し、且つ、前記パスワードが入力された日付・時刻が、前記パスワード有効期間データの範囲内にある場合、入力された前記パスワードは有効であると判定し、そうでなければ、入力された前記パスワードは無効であると判定するパスワード判定手段と、前記プログラマブルコントローラに対するコマンドの実行が許可されるか否かを認証するためのコマンド実行認証用パスワードを、前記プログラマブルコントローラに送信するコマンド実行認証用パスワード送信手段とを備え、入力された前記パスワードが、前記パスワード暗号化判定手段により、暗号化されていないと判定された場合は、前記コマンド実行認証用パスワードは、入力された前記パスワードとし、入力された前記パスワードが、前記パスワード判定手段により、有効であると判定された場合は、前記コマンド実行認証用パスワードは、予め前記プログラマブルコントローラのプログラミング装置に設定された第１のメーカ専用パスワードとし、前記プログラマブルコントローラは、前記プログラマブルコントローラのプログラミング装置から送信された前記コマンド実行認証用パスワードを受信するコマンド実行認証用パスワード受信手段と、前記コマンド実行認証用パスワードと、予め前記プログラマブルコントローラに設定された第２のメーカ専用パスワード、又は、ユーザによって前記プログラマブルコントローラに設定されたユーザ設定プログラマブルコントローラパスワードとが一致した場合は、前記コマンド実行認証用パスワードは有効であるとし、そうでなければ、前記コマンド実行認証用パスワードは無効であるとするパスワード認証手段とを備え、前記第１のメーカ専用パスワードと、前記第２のメーカ専用パスワードとは同一である、ことを特徴とする。
【００１２】
請求項４に記載の発明は、請求項３に記載のプログラマブルコントローラシステムであって、前記暗号化パスワード要素コードは、パスワード国コードであり、且つ、前記装置内パスワードコードは、前記プログラマブルコントローラのプログラミング装置の言語設定を示す装置国コードである、ことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ユーザが、ユーザによって設定されたパスワードを忘れた場合でも、メーカにパスワードを問い合わせることにより、すぐにパスワード認証され、ＰＬＣ、すなわち、ＰＬＣにより制御される装置や設備を停止する必要がなく、それらの連続稼動性を高めることが可能となる。
【００１４】
また、本発明によれば、発行したパスワードは、有効期間があるので、パスワードの漏洩に基づく不正アクセスを軽減させることが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しながら、本発明を適用できる実施形態を詳細に説明する。尚、本明細書で参照される各図面において、同様の機能を有する箇所には同一の符号を付している。
【００１６】
（装置構成）  
図１は、本発明を適用できる実施形態のために使用されるパスワードを生成するための、パスワード生成装置１０の構成を示すブロック図である。  
パスワード生成装置１０は、中央演算処理装置（ＣＰＵ）１１、システムメモリ１２、システムプログラムメモリ１３、入力装置１４、表示器１５、及び、時計１６を備えている。これらは、システムバス１７に接続されている。
【００１７】
ＣＰＵ１１は、システムプログラムメモリ１３に格納されているシステムプログラム（不図示）に基づき、パスワード生成に関わる処理を行う。
【００１８】
システムメモリ１２は、ユーザによって入力装置１４へ入力された、パスワード国コード１２ａ、パスワードの有効期間を示すパスワード有効期間データ１２ｂ、及び、生成された暗号化パスワードデータ１２ｃを格納する。パスワード有効期間データ１２ｂは、パスワードの有効期間の開始日時１２ｂｓ、及び、終了日時１２ｂｅからなる。暗号化パスワードデータ１２ｃは、パスワード国コード１２ａとパスワード有効期間データ１２ｂとから暗号化されて、生成される。本パスワード生成装置では、パスワード国コード１２ａには、国際電話の国コード（例えば、日本の場合、０８１）が用いられる。なお、本実施形態では、暗号化パスワードデータ１２ｃを生成するための一要素（以下、暗号化パスワード要素コードと呼ぶ）として、パスワード国コード１２ａが用いられているが、プログラマブルコントローラのプログラミング装置製品の型番、品番、シリアル番号、及び、これらの組合せ等が用いられてもよい。特に、暗号化パスワード要素コードは、数字のみから構成されるのが適している。
【００１９】
システムプログラムメモリ１３は、ＣＰＵ１１が実行するシステムプログラム（不図示）を格納している。このシステムプログラムには、上述した、パスワード生成処理の内容を規定した図４のフローチャートによって示されるプログラムが含まれる。このパスワード生成処理には、パスワード国コード１２ａとパスワード有効期間データ１２ｂとから暗号化パスワードデータ１２ｃを生成するための、パスワード暗号化処理（図１０参照）が含まれる。
【００２０】
入力装置１４には、ユーザにより国コードが入力される。本実施形態の入力装置１４は、キーボードからなる。入力装置１４は、タッチパネル式の入力装置等としてもよい。  
表示器１５は、ユーザによって入力された国コード、及び、生成された暗号化パスワードデータを表示する。  
時計１６は、現在の日付・時刻を保持しており、ＣＰＵ１１は、現在の日付・時刻を万国標準時（ＵＴＣ）やグリニッジ標準時（ＧＭＴ）で取得できる。
【００２１】
図２は、本発明を適用できる実施形態による、プログラマブルコントローラのプログラミング装置２０の構成を示すブロック図である。  
プログラミング装置２０は、信号線４１ａを介して、プログラマブルコントローラ（ＰＬＣ）３０に接続されている。  
プログラミング装置２０は、中央演算処理装置（ＣＰＵ）２１、システムメモリ２２、システムプログラムメモリ２３、入力装置２４、表示器２５、時計２６、及び、入出力（Ｉ／Ｏ）インタフェース２８を備えている。これらは、システムバス２７に接続されている。
【００２２】
ＣＰＵ２１は、システムプログラムメモリ２３に格納されているシステムプログラム（不図示）に基づき、シーケンスプログラムの表示、作成、送信処理に関わる制御と共に、パスワード認証処理、及び、パスワード判定処理を行う。
【００２３】
システムメモリ２２は、入力パスワードデータ２２ｃから復号化されたパスワード国コード２２ａ、入力パスワードデータ２２ｃから復号化された、パスワードの有効期間を示すパスワード有効期間データ２２ｂ、ユーザによって入力装置２４へ入力された入力パスワードデータ２２ｃ、プログラミング装置２０の言語設定を示す装置国コード２２ｄ、ＰＬＣ３０に対する通信を実行するための通信コマンド２２ｅ、ユーザによって入力装置２４を介して設定されたＰＬＣ操作用ユーザ設定パスワード２２ｆ、及び、ユーザによって入力装置２４を介して設定されたユーザ設定装置パスワードａ  ２２ｇａ〜  ｍ  ２２ｇｍを格納する。
【００２４】
本実施形態では、パスワード国コード２２ａには、国際電話の国コード（例えば、日本の場合、０８１）が用いられる。パスワード有効期間データ２２ｂは、パスワードの有効期間の開始日時２２ｂｓ、及び、終了日時２２ｂｅからなる。装置国コード２２ｄは、プログラミング装置２０のメーカによって固有管理されるものであり、本実施形態では、装置国コード２２ｄには、国際電話の国コード（例えば、日本の場合、０８１）が用いられる。通信コマンド２２ｅには、状況に応じて、予めプログラミング装置２０のメーカによって設定されたメーカ専用パスワード２３ａ、又は、ユーザによって入力された入力パスワードデータ２２ｃが、コマンド実行認証用パスワード２２ｅａとして格納される。コマンド実行認証用パスワード２２ｅａは、プログラミング装置２０からのＰＬＣ３０に対するコマンドの実行が許可されるか否かを認証するためのものである。
【００２５】
なお、本実施形態では、入力パスワードデータ２２ｃから復号化された一要素として、パスワード国コード２２ａが用いられているが、パスワード生成装置１０において用いられる暗号化パスワード要素コードと対応する、別のパスワードコード（プログラマブルコントローラのプログラミング装置製品の型番、品番、シリアル番号、及び、これらの組合せ等）が用いられてもよい。その場合は、装置国コード２２ｄの代わりに、その別のパスワードコードに対応する、メーカにより固有管理される、別の装置内パスワードコード（例えば、プログラミング装置製品の型番、品番、シリアル番号、及び、これらの組合せ等）が用いられる。
【００２６】
ＰＬＣ操作用ユーザ設定パスワード２２ｆは、ＰＬＣ３０の操作に制限を課すためのものであり、新たなシーケンスプログラムがプログラミング装置２０からＰＬＣ３０へ送信された後に、ユーザによって初期設定されたり、ＰＬＣ３０の起動・停止等のためのパスワードが、ユーザによって初期設定されたりして、それらのＰＬＣ３０の各操作に対応付けられて、ＰＬＣ３０に送信される。また、ＰＬＣ操作用ユーザ設定パスワード２２ｆは、すでにＰＬＣ３０に設定されている各操作用のパスワードを変更する際に、ユーザによって再設定され、ＰＬＣ３０の各操作に対応付けられて、ＰＬＣ３０に送信される。各操作用のパスワードを変更する際には、現在のパスワードを入力した上で、新たなＰＬＣ操作用のパスワードを設定する必要がある。なお、ＰＬＣ操作用ユーザ設定パスワード２２ｆは、ＰＬＣ３０の各操作に対応付けられて、各操作の数の分だけ存在してもよい。
【００２７】
ユーザ設定装置パスワードｉ  ２２ｇｉは、プログラミング装置２０の操作（例えば、シーケンスプログラムの作成やプログラミング装置２０の起動・停止等）に制限を課すためにユーザによって設定され、それらの各操作に対応付けられる。なお、本実施形態では、各操作は、ユーザ設定装置パスワードｉ  ２２ｇｉに対応付けられているが、ユーザとユーザ設定装置パスワードｉ  ２２ｇｉとの組合せや、ユーザのグループとユーザ設定装置パスワードｉ  ２２ｇｉとの組合せに対応付けられてもよい。ユーザ設定装置パスワードｉ  ２２ｇｉ用のメモリは、ユーザによって入力装置２４を介して、ユーザ設定装置パスワードｉ  ２２ｇｉが設定されるたびに、確保される。ユーザ設定装置パスワードｉ  ２２ｇｉ用のメモリは、予め定められた数のパスワード分だけ確保されていてもよい。ユーザ設定装置パスワードｉ  ２２ｇｉは、設定されない、すなわち、ブランクパスワードの場合もある。
【００２８】
システムプログラムメモリ２３は、ＣＰＵ２１が実行するシステムプログラム（不図示）と共に、メーカ専用パスワード２３ａを固定データとして格納している。このシステムプログラムには、上述した、パスワード認証処理、及び、パスワード判定処理の内容を規定した図５、及び、図６のフローチャートによって示されるプログラムが含まれる。これらの処理には、入力パスワードデータ２２ｃが、暗号化されているか否かを判定するパスワード暗号化判定処理（図１１参照）、及び、入力パスワードデータ２２ｃが、暗号化されていた場合は、入力パスワードデータ２２ｃを復号化して、パスワード国コード２２ａとパスワード有効期間データ２２ｂとに分割するパスワード復号化・分割処理（図１２参照）が含まれる。メーカ専用パスワード２３ａは、プログラミング装置２０のメーカによって固有管理されるものであり、ユーザには公開されない。
【００２９】
入力装置２４には、ユーザによって、ＣＰＵ２１に対する動作指示や、シーケンスプログラムを構成するシーケンス命令の入力等が行われると共に、ユーザによって、プログラミング装置２０、及び、プログラミング装置２０を介してＰＬＣ３０の操作に制限を課す（すなわち、パスワード設定をする）、あるいは、操作の制限を解除する（すなわち、パスワード認証をする）ためのパスワードが入力される。本実施形態の入力装置２４は、キーボード、及び、マウスからなる。入力装置２４は、タッチパネル式の入力装置等を含んでもよい。また、本実施形態の入力装置２４に入力されるパスワードには、半角数字０〜９、半角アルファベット、及び、その他の半角記号が用いられる。
【００３０】
表示器２５は、シーケンスプログラム作成モードにおいて、シーケンスプログラムをラダー図等のプログラミング言語形態で表示すると共に、ユーザによって入力されたパスワードを表示する。  
時計２６は、現在の日付・時刻を保持しており、ＣＰＵ２１は、現在の日付・時刻を万国標準時（ＵＴＣ）やグリニッジ標準時（ＧＭＴ）で取得できる。  
Ｉ／Ｏインタフェース２８は、プログラミング装置２０とＰＬＣ３０とを、信号線４１ａを介して接続し、シーケンスプログラムやＰＬＣ３０に対するコマンドをＰＬＣ３０に送信する。
【００３１】
図３は、本発明を適用できる実施形態による、プログラマブルコントローラ（ＰＬＣ）３０の構成を示すブロック図である。  
ＰＬＣ３０は、信号線４１ａ、及び、信号線４１ｂを介して、それぞれ、プログラミング装置２０、及び、制御対象機器４０に接続されている。  
ＰＬＣ３０は、中央演算処理装置（ＣＰＵ）３１、システムメモリ３２、システムプログラムメモリ３３、データメモリ３４、プログラムメモリ３５、及び、入出力（Ｉ／Ｏ）インタフェース３８、３９を備えている。これらは、システムバス３７に接続されている。
【００３２】
ＣＰＵ３１は、システムプログラムメモリ３３に格納されているシステムプログラム（不図示）に基づき、プログラムメモリ３５に格納されているシーケンスプログラム（不図示）の実行／停止等の制御、プログラミング装置２０からのシーケンスプログラムの送信やモニタ等の通信コマンド制御、及び、プログラミング装置２０から送信されるコマンドの処理実行に先立つパスワード認証処理を行う。
【００３３】
システムメモリ３２は、システムプログラムの作業用メモリとして、一時的な演算結果や、ＰＬＣ３０における処理の実行に必要な各種設定値を格納する。また、システムメモリ３２は、シーケンスプログラムがプログラミング装置２０からＰＬＣ３０へ送信された後に、若しくは、すでにＰＬＣ３０へ送信されているシーケンスプログラム用のパスワードが変更される時に、又は、ＰＬＣ３０の起動・停止等のためのパスワードの初期設定・変更時に、プログラミング装置２０を介してユーザによって設定されたＰＬＣ操作用ユーザ設定パスワード２２ｆを、ユーザ設定プログラマブルコントローラ（ＰＬＣ）パスワードａ  ３２ｆａ〜  ｎ  ３２ｆｎに格納する。ユーザ設定ＰＬＣパスワードｊ  ３２ｆｊは、シーケンスプログラムの実行やＰＬＣ３０の起動・停止等の、各操作に対応付けられている。なお、本実施形態では、各操作は、ユーザ設定ＰＬＣパスワードｊ  ３２ｆｊに対応付けられているが、ユーザとユーザ設定ＰＬＣパスワードｊ  ３２ｆｊとの組合せや、ユーザのグループとユーザ設定ＰＬＣパスワードｊ  ３２ｆｊとの組合せに対応付けられてもよい。ユーザ設定ＰＬＣパスワードｊ  ３２ｆｊ用のメモリは、各操作のためのＰＬＣ操作用ユーザ設定パスワード２２ｆが送信されるたびに、確保される。ユーザ設定ＰＬＣパスワードｊ  ３２ｆｊ用のメモリは、予め定められた数のパスワード分だけ確保されていてもよい。ユーザ設定ＰＬＣパスワードｊ  ３２ｆｊは、設定されない、すなわち、ブランクパスワードの場合もある。
【００３４】
システムプログラムメモリ３３は、ＣＰＵ３１が実行するシステムプログラム（不図示）と共に、予めＰＬＣ３０のメーカによって設定されたメーカ専用パスワード３３ａを固定データとして格納している。本実施形態では、メーカ専用パスワード３３ａと、プログラミング装置２０のシステムプログラムメモリ２３に格納されたメーカ専用パスワード２３ａとは同一である。このシステムプログラムには、上述した、プログラミング装置２０から送信されるコマンドの処理（前述の各操作）の実行に先立つ、パスワード認証処理の内容を規定した図７のフローチャートによって示されるプログラムが含まれる。メーカ専用パスワード３３ａは、ＰＬＣ３０のメーカによって固有管理されるものであり、ユーザには公開されない。
【００３５】
データメモリ３４は、プログラムメモリ３５に格納されているシーケンスプログラムの演算結果や制御対象機器４０の各種設定値を格納する。  
Ｉ／Ｏインタフェース３８は、プログラミング装置２０とＰＬＣ３０とを、信号線４１ａを介して接続する。  
Ｉ／Ｏインタフェース３９は、制御対象機器４０とＰＬＣ３０とを、信号線４１ｂを介して接続する。
【００３６】
（動作説明）  
次に、図１に示したパスワード生成装置１０における、パスワード生成処理手順を説明する。  
図４は、本発明を適用できる実施形態のために使用されるパスワードを生成するための、パスワード生成装置１０における、パスワード生成処理のフローチャートを示している。
【００３７】
まず、ＣＰＵ１１は、ユーザによって、入力装置１４へ国コードが入力されたか否かを判定する（Ｓ４０１）。国コードが入力されていない場合、ユーザによって国コードが入力されるのを待つ。国コードが入力された場合、ＣＰＵ１１は、入力された国コードを、パスワード国コード１２ａとして、システムメモリ１２に格納する（Ｓ４０２）。
【００３８】
次いで、ＣＰＵ１１は、現在の日付・時刻を時計１６より取得し、パスワード有効期間データ１２ｂの開始日時１２ｂｓとして、システムメモリ１２に格納する（Ｓ４０３）。そして、ＣＰＵ１１は、パスワード有効期間データ１２ｂの開始日時１２ｂｓに、有効期間を足した値を、パスワード有効期間データ１２ｂの終了日時１２ｂｅとして、システムメモリ１２に格納する（Ｓ４０４）。有効期間は、ユーザによって、入力装置１４を介して設定、及び、変更可能である。有効期間は、予め定められたものであってもよい。有効期間を短くすることにより、より一層、セキュリティを向上させることができる。
【００３９】
次いで、ＣＰＵ１１は、パスワード国コード１２ａ、及び、パスワード有効期間データ１２ｂ（すなわち、開始日時１２ｂｓと終了日時１２ｂｅ）を暗号化し、暗号化パスワードデータ１２ｃとして、システムメモリ１２に格納する（Ｓ４０５）。Ｓ４０５における、暗号化パスワードデータ１２ｃを生成するパスワード暗号化処理については、以下で詳細に説明する。最後に、暗号化パスワードデータが、表示器１５に出力される（Ｓ４０６）。
【００４０】
次に、図８〜図１０を参照しながら、上述のパスワード暗号化処理手順について、詳細に説明する。  
図８は、図１に示したシステムメモリ１２に格納されるパスワード国コード１２ａと、パスワード有効期間データ１２ｂとの詳細を示している。  
図９は、図１０に示すパスワード暗号化処理の過程を模式的に示している。  
図１０は、図４に示したパスワード生成処理における、パスワード暗号化処理（Ｓ４０５）のフローチャートを示している。
【００４１】
図８を参照すると、本実施形態では、パスワード国コード１２ａは、上位２桁と、下位２桁とが、１バイトずつ順に並べられる。例えば、日本の場合、パスコード国コードは、０８１であり、００Ｈ（００）、５１Ｈ（８１）の順に並べられる。パスワード有効期間データ１２ｂの開始日時１２ｂｓは、年（西暦）の上位２桁と、年（西暦）の下位２桁と、月と、日と、時と、分とが、１バイトずつ順に並べられる。例えば、開始日時１２ｂｓが２００６年８月１０日１２時００分の場合、１４Ｈ（２０）、０６Ｈ（０６）、０８Ｈ（０８）、０ＡＨ（１０）、０ＣＨ（１２）、００Ｈ（００）の順に並べられる。パスワード有効期間データ１２ｂの終了日時１２ｂｅについては開始日時１２ｂｓと同様であるため、省略する。
【００４２】
次に、図９、及び、図１０を参照しながら、パスワード暗号化処理手順を説明する。
【００４３】
まず、ＣＰＵ１１は、並び順を反転した終了日時１２ｂｅデータ群と、開始日時１２ｂｓデータ群とを交互に並べる（Ｓ１００１）。すなわち、図９の左側に示すように、オフセットアドレス００、０２、０４、０６、０８、１０には、パスワード有効期間データ１２ｂの終了日時１２ｂｅの分、時、日、月、年下位、年上位が格納され、オフセットアドレス０１、０３、０５、０７、０９、１１には、パスワード有効期間データ１２ｂの開始日時１２ｂｓの年上位、年下位、月、日、時、分が格納される。
【００４４】
次いで、ＣＰＵ１１は、Ｓ１００１にて並べられたデータ群の後に、パスワード国コード１２ａデータ群を並べる（Ｓ１００２）。すなわち、図９の左側に示すように、オフセットアドレス１２、１３には、パスワード国コード上位、パスワード国コード下位が格納される。
【００４５】
次いで、ＣＰＵ１１は、終了日時（分）（オフセットアドレス００）からパスワード国コード下位（オフセットアドレス１３）までを２進加算したバイトデータをチェックサムとして計算し、Ｓ１００２にて並べられたデータ群の後に、そのチェックサムを付加する（Ｓ１００３）。すなわち、オフセットアドレス１４には、チェックサムが格納される。
【００４６】
次いで、ＣＰＵ１１は、チェックサム以外の各データ（オフセットアドレス００〜１３）と、チェックサムとの排他的論理和（ＸＯＲ）を取り、反転（ＮＯＴ）して、暗号化し（Ｓ１００４）、図９の暗号化パスワードデータ１２ｃとして、オフセットアドレス００〜１３に、終了日時（分）〜パスワード国コード下位に対応する暗号化データを格納し、暗号化後のオフセットアドレス１４に、Ｓ１００３にて計算されたチェックサムを格納する（Ｓ１００５）。
【００４７】
最後に、ＣＰＵ１１は、Ｓ１００４にて暗号化されたデータ群と、チェックサムとを、１６進数表記により、オフセットアドレス００〜１４まで順に並べたデータを暗号化パスワードデータとして、表示器１５に表示する（Ｓ４０６）。
【００４８】
本実施形態では、Ｓ１００１→Ｓ１００２の順番で処理が行われているが、Ｓ１００２→Ｓ１００１の順番で処理が行われてもよい。また、本実施形態では、オフセットアドレス００〜１３に格納されるデータ群は、第三者による復号化の予測が困難となるように並べられているが、同様の効果が得られるよう、別の並びにしてもよい。さらに、本実施形態では、暗号化パスワードデータは、半角数字０〜９、及び、半角アルファベットＡ〜Ｆを組み合わせた３０文字から構成されるが、暗号化パスワード要素コードとして別のパスワードコードを用いる場合には、その暗号化パスワード要素コードに応じた組合せの暗号化パスワードデータが生成される。また、暗号化方法、及び、チェックサムの計算方法は一例として示しているに過ぎず、他の方法を用いることもできる。
【００４９】
以下に示すとおり、本手順にしたがって生成された暗号化パスワードデータを用いることにより、プログラミング装置２０、及び、プログラミング装置２０を介したＰＬＣ３０の操作制限を解除することが可能となる。
【００５０】
次に、図２に示したプログラミング装置２０により、プログラミング装置２０、及び、プログラミング装置２０を介したＰＬＣ３０の操作制限を解除するための、パスワード認証処理、及び、パスワード判定処理手順を説明する。
【００５１】
図５は、本発明を適用できる実施形態による、プログラミング装置２０における、プログラミング装置２０の操作制限を解除するためのパスワード認証処理のフローチャートを示している。
【００５２】
まず、ＣＰＵ２１は、ユーザによって、入力装置２４へパスワードが入力されたか否かを判定する（Ｓ５０１）。パスワードが入力されていない場合、ユーザによってパスワードが入力されるのを待つ。パスワードが入力された場合、ＣＰＵ２１は、入力されたパスワードを、入力パスワードデータ２２ｃとして、システムメモリ２２に格納する（Ｓ５０２）。
【００５３】
次いで、ＣＰＵ２１は、入力パスワードデータ２２ｃが、暗号化されているか否かを判定する（Ｓ５０３）。Ｓ５０３における、入力パスワードデータ２２ｃのパスワード暗号化判定処理については、後に詳細に説明する。
【００５４】
Ｓ５０３において、入力パスワードデータ２２ｃが、暗号化されていないと判定された場合、ＣＰＵ２１は、ユーザが要求したプログラミング装置２０の操作に対応したユーザ設定装置パスワードｉ  ２２ｇｉが設定されているか否かを判定する（Ｓ５１０）。
【００５５】
Ｓ５１０において、ユーザ設定装置パスワードｉ  ２２ｇｉが設定されていなかった場合、ＣＰＵ２１は、ユーザによるプログラミング装置２０の操作を可能として（Ｓ５０８）、処理を終了する。Ｓ５１０において、ユーザ設定装置パスワードｉ  ２２ｇｉが設定されていた場合、ＣＰＵ２１は、入力パスワードデータ２２ｃとメーカ専用パスワード２３ａとが一致するか否かを判定する（Ｓ５１１）。
【００５６】
Ｓ５１１において、入力パスワードデータ２２ｃとメーカ専用パスワード２３ａとが一致した場合、ＣＰＵ２１は、入力されたパスワードが有効であるとして（すなわち、パスワード認証を許可）、プログラミング装置２０の操作制限を解除し（Ｓ５０７）、ユーザによるプログラミング装置２０の操作を可能として（Ｓ５０８）、処理を終了する。Ｓ５１１において、入力パスワードデータ２２ｃとメーカ専用パスワード２３ａとが一致しなかった場合、ＣＰＵ２１は、入力パスワードデータ２２ｃとユーザ設定装置パスワードｉ  ２２ｇｉとが一致するか否かを判定する（Ｓ５１２）。
【００５７】
Ｓ５１２において、入力パスワードデータ２２ｃとユーザ設定装置パスワードｉ  ２２ｇｉとが一致した場合、ＣＰＵ２１は、入力されたパスワードが有効であるとして（すなわち、パスワード認証を許可）、プログラミング装置２０の操作制限を解除し（Ｓ５０７）、ユーザによるプログラミング装置２０の操作を可能として（Ｓ５０８）、処理を終了する。Ｓ５１２において、入力パスワードデータ２２ｃとユーザ設定装置パスワードｉ  ２２ｇｉとが一致しなかった場合、ＣＰＵ２１は、入力されたパスワードが無効であるとして（すなわち、パスワード認証を不許可）、ユーザによるプログラミング装置２０の操作を不可とし（Ｓ５０９）、処理を終了する。
【００５８】
Ｓ５０３において、入力パスワードデータ２２ｃが、暗号化されていたと判定された場合、ＣＰＵ２１は、入力パスワードデータ２２ｃを復号化し、復号化した入力パスワードデータ２２ｃを、パスワード国コード２２ａ、及び、パスワード有効期間データ２２ｂ（すなわち、開始日時２２ｂｓと終了日時２２ｂｅ）として、システムメモリ２２に格納する（Ｓ５０４）。Ｓ５０４における、入力パスワードデータ２２ｃのパスワード復号化・分割処理については、後に詳細に説明する。
【００５９】
次いで、ＣＰＵ２１は、パスワード国コード２２ａと装置国コード２２ｄとが一致するか否かを判定する（Ｓ５０５）。Ｓ５０５において、パスワード国コード２２ａと装置国コード２２ｄとが一致しなかった場合、ＣＰＵ２１は、入力されたパスワードが無効であるとして（すなわち、パスワード認証を不許可）、ユーザによるプログラミング装置２０の操作を不可とし（Ｓ５０９）、処理を終了する。Ｓ５０５において、パスワード国コード２２ａと装置国コード２２ｄとが一致した場合、ＣＰＵ２１は、現在の日付・時刻を時計２６より取得し、現在の日付・時刻がパスワード有効期間データ２２ｂの範囲内にあるか否か（すなわち、開始日時２２ｂｓと終了日時２２ｂｅとの間にあるか否か）を判定する（Ｓ５０６）。
【００６０】
Ｓ５０６において、現在の日付・時刻がパスワード有効期間データ２２ｂの範囲内にない場合、ＣＰＵ２１は、入力されたパスワードが無効であるとして（すなわち、パスワード認証を不許可）、ユーザによるプログラミング装置２０の操作を不可とし（Ｓ５０９）、処理を終了する。Ｓ５０６において、現在の日付・時刻がパスワード有効期間データ２２ｂの範囲内にある場合、ＣＰＵ２１は、入力されたパスワードが有効であるとして（すなわち、パスワード認証を許可）、プログラミング装置２０の操作制限を解除し（Ｓ５０７）、ユーザによるプログラミング装置２０の操作を可能として（Ｓ５０８）、処理を終了する。
【００６１】
以上のように、有効期間が定められた暗号化パスワードデータを使用することで、パスワードの漏洩に基づく不正アクセスを軽減させることが可能となる。さらに、パスワードを使用できる国が限定されるので、より一層、セキュリティを向上させることが可能となる。さらに、メーカ専用パスワードは、入力される必要がなく、ＰＬＣのプログラミング装置の内部処理において使用されるだけであるので、メーカ専用パスワードが漏洩する可能性を軽減させることが可能となる。さらに、メーカ担当者が、ＰＬＣのプログラミング装置の操作制限を解除するために、ＰＬＣのプログラミング装置の設置場所に直接赴く必要がなくなり、担当者の負担を軽減させることが可能となる。
【００６２】
なお、本実施形態では、Ｓ５０５→Ｓ５０６の順番で処理が行われているが、Ｓ５０６→Ｓ５０５の順番で処理が行われてもよい。また、本実施形態では、Ｓ５１１→Ｓ５１２の順番で処理が行われているが、Ｓ５１２→Ｓ５１１の順番で処理が行われてもよい。
【００６３】
図６は、本発明を適用できる実施形態による、プログラミング装置２０における、プログラミング装置２０を介したＰＬＣ３０の操作制限を解除するためのパスワード判定処理のフローチャートを示している。
【００６４】
まず、ＣＰＵ２１は、ユーザによって、入力装置２４へパスワードが入力されたか否かを判定する（Ｓ５０１）。パスワードが入力されていない場合、ユーザによってパスワードが入力されるのを待つ。パスワードが入力された場合、ＣＰＵ２１は、入力されたパスワードを、入力パスワードデータ２２ｃとして、システムメモリ２２に格納する（Ｓ５０２）。
【００６５】
次いで、ＣＰＵ２１は、入力パスワードデータ２２ｃが、暗号化されているか否かを判定する（Ｓ５０３）。Ｓ５０３における、入力パスワードデータ２２ｃのパスワード暗号化判定処理については、後に詳細に説明する。
【００６６】
Ｓ５０３において、入力パスワードデータ２２ｃが、暗号化されていないと判定された場合、ＣＰＵ２１は、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとして、入力パスワードデータ２２ｃを格納し、通信コマンド２２ｅをＰＬＣ３０に送信して、処理を終了する（Ｓ６１５）。Ｓ５０３において、入力パスワードデータ２２ｃが、暗号化されていたと判定された場合、ＣＰＵ２１は、入力パスワードデータ２２ｃを復号化し、復号化した入力パスワードデータ２２ｃを、パスワード国コード２２ａ、及び、パスワード有効期間データ２２ｂ（すなわち、開始日時２２ｂｓと終了日時２２ｂｅ）として、システムメモリ２２に格納する（Ｓ５０４）。Ｓ５０４における、入力パスワードデータ２２ｃのパスワード復号化・分割処理については、後に詳細に説明する。
【００６７】
次いで、ＣＰＵ２１は、パスワード国コード２２ａと装置国コード２２ｄとが一致するか否かを判定する（Ｓ５０５）。Ｓ５０５において、パスワード国コード２２ａと装置国コード２２ｄとが一致しなかった場合、ＣＰＵ２１は、入力されたパスワードが無効であると判定して、ユーザによるＰＬＣ３０の操作を不可とし（Ｓ６１４）、処理を終了する。Ｓ５０５において、パスワード国コード２２ａと装置国コード２２ｄとが一致した場合、ＣＰＵ２１は、現在の日付・時刻を時計２６より取得し、現在の日付・時刻がパスワード有効期間データ２２ｂの範囲内にあるか否か（すなわち、開始日時２２ｂｓと終了日時２２ｂｅとの間にあるか否か）を判定する（Ｓ５０６）。
【００６８】
Ｓ５０６において、現在の日付・時刻がパスワード有効期間データ２２ｂの範囲内にない場合、ＣＰＵ２１は、入力されたパスワードが無効であると判定して、ユーザによるＰＬＣ３０の操作を不可とし（Ｓ６１４）、処理を終了する。Ｓ５０６において、現在の日付・時刻がパスワード有効期間データ２２ｂの範囲内にある場合、ＣＰＵ２１は、入力されたパスワードが有効であると判定して、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとして、メーカ専用パスワード２３ａを格納し、通信コマンド２２ｅをＰＬＣ３０に送信して、処理を終了する（Ｓ６１３）。
【００６９】
以上のように、有効期間が定められた暗号化パスワードデータを使用することで、パスワードの漏洩に基づく不正アクセスを軽減させることが可能となる。さらに、パスワードを使用できる国が限定されるので、より一層、セキュリティを向上させることが可能となる。さらに、メーカ専用パスワードは、入力される必要がなく、ＰＬＣのプログラミング装置と、ＰＬＣとの間の処理において使用されるだけであるため、メーカ専用パスワードが漏洩する可能性を軽減させることが可能となる。さらに、メーカ担当者が、ＰＬＣのプログラミング装置を介したＰＬＣの操作制限を解除するために、ＰＬＣの設置場所に直接赴く必要がなくなり、担当者の負担を軽減させることが可能となる。
【００７０】
なお、本実施形態では、Ｓ５０５→Ｓ５０６の順番で処理が行われているが、Ｓ５０６→Ｓ５０５の順番で処理が行われてもよい。
【００７１】
次に、図９、及び、図１１を参照しながら、上述のパスワード暗号化判定処理手順について、詳細に説明する。  
図９は、図１１に示すパスワード暗号化判定処理の過程を模式的に示している。  
図１１は、図５、及び、図６に示したパスワード認証、及び、パスワード判定処理における、パスワード暗号化判定処理（Ｓ５０３）のフローチャートを示している。
【００７２】
まず、ＣＰＵ２１は、入力パスワードデータ２２ｃの中に、半角数字０〜９及び半角アルファベットＡ〜Ｆ以外の文字が含まれるか否かを判定する（Ｓ１１０１）。
【００７３】
Ｓ１１０１において、半角数字０〜９及び半角アルファベットＡ〜Ｆ以外の文字が含まれると判定された場合、ＣＰＵ２１は、入力パスワードデータ２２ｃが暗号化されていないと判定し（Ｓ１１１１）、Ｓ５１０又はＳ６１５に進む。なお、これに代えて、半角数字０〜９及び半角アルファベットＡ〜Ｆ以外の文字が含まれると判定された場合、半角数字０〜９及び半角アルファベットＡ〜Ｆ以外の文字を、所定の文字（例えば、半角数字「０」）に置き換えて、Ｓ１１０２に進んでもよい（不図示）。
【００７４】
Ｓ１１０１において、半角数字０〜９及び半角アルファベットＡ〜Ｆ以外の文字が含まれないと判定された場合、ＣＰＵ２１は、入力パスワードデータ２２ｃの文字数が３０文字であるか否かを判定する（Ｓ１１０２）。
【００７５】
Ｓ１１０２において、入力パスワードデータ２２ｃの文字数が３０文字でないと判定された場合、ＣＰＵ２１は、入力パスワードデータ２２ｃが３０文字より多いか少ないかを判定する（Ｓ１１０３）。Ｓ１１０３において、入力パスワードデータ２２ｃが３０文字より多い場合、ＣＰＵ２１は、次の処理（Ｓ１１０６）のために、入力パスワードデータ２２ｃの下位３０文字を用いる。Ｓ１１０３において、入力パスワードデータ２２ｃが３０文字より少ない場合、ＣＰＵ２１は、次の処理（Ｓ１１０６）のために、入力パスワードデータ２２ｃの上位に所定の文字（例えば、半角数字「０」）をパディングして、３０文字となるようにする。なお、Ｓ１１０２において、入力パスワードデータ２２ｃの文字数が３０文字でないと判定された場合、ＣＰＵ２１は、入力パスワードデータ２２ｃが暗号化されていないと判定して（Ｓ１１１１）、Ｓ５１０又はＳ６１５に進んでもよい（不図示）。
【００７６】
Ｓ１１０２において、入力パスワードデータ２２ｃの文字数が３０文字であると判定された場合、又は、Ｓ１１０４、若しくは、Ｓ１１０５に次いで、ＣＰＵ２１は、入力パスワードデータ２２ｃの下位から上位に向かって２文字ずつ区切られた文字を、１６進数表記されているとして、順に１バイトずつ、オフセットアドレス１４〜００に格納する（Ｓ１１０６）。例えば、図９の右側に示されるように、入力されたパスワードデータが「CCE3E0F1FCFFFFFDF1FBE3F7F7A608」の場合、オフセットアドレス１４には、０８Ｈ（０８）、オフセットアドレス１３には、Ａ６Ｈ（１６６）、オフセットアドレス１２には、Ｆ７（２４７）等、順に格納され、最後にオフセットアドレス００には、ＣＣＨ（２０４）が格納される。
【００７７】
次いで、ＣＰＵ２１は、オフセットアドレス１４に格納されたデータを第１のチェックサムとし、第１のチェックサム以外の各データ（オフセットアドレス００〜１３）を反転（ＮＯＴ）して、第１のチェックサムとの排他的論理和（ＸＯＲ）を取る（Ｓ１１０７）。
【００７８】
次いで、ＣＰＵ２１は、Ｓ１１０７にて処理された、オフセットアドレス００〜１３までのデータ群を２進加算したバイトデータを、第２のチェックサムとして計算する（Ｓ１１０８）。
【００７９】
次いで、ＣＰＵ２１は、第１のチェックサムと、Ｓ１１０８にて計算された第２のチェックサムとが一致するか否かを判定する（Ｓ１１０９）。Ｓ１１０９において、第１のチェックサムと、Ｓ１１０８にて計算された第２のチェックサムとが一致した場合、ＣＰＵ２１は、入力パスワードデータ２２ｃが暗号化されていると判定し（Ｓ１１１０）、Ｓ５０４に進む。Ｓ１１０４において、第１のチェックサムと、Ｓ１１０２にて計算された第２のチェックサムとが一致しなかった場合、ＣＰＵ２１は、入力パスワードデータ２２ｃが暗号化されていないと判定し（Ｓ１１１１）、Ｓ５１０又はＳ６１５に進む。
【００８０】
次に、図８、図９、及び、図１２を参照しながら、上述のパスワード復号化・分割処理手順について、詳細に説明する。  
図８は、図２に示したシステムメモリ２２に格納されるパスワード国コード２２ａと、パスワード有効期間データ２２ｂとの詳細を示している。  
図９は、図１２に示すパスワード復号化・分割処理の過程を模式的に示している。  
図１２は、図５、及び、図６に示したパスワード認証、及び、パスワード判定処理における、パスワード復号化・分割処理（Ｓ５０４）のフローチャートを示している。
【００８１】
まず、ＣＰＵ２１は、図１１のＳ１１０７にて処理された各データを、図９の左側に示すとおり、オフセットアドレス００〜１３に、終了日時（分）〜パスワード国コード下位に対応する復号化データとして格納する（Ｓ１２０１）。
【００８２】
そして、ＣＰＵ２１は、パスワード国コード上位データ（オフセットアドレス１２）と、パスワード国コード下位データ（オフセットアドレス１３）とを抽出し、これらをパスワード国コード２２ａとして、格納する（Ｓ１２０２）。
【００８３】
次いで、ＣＰＵ２１は、オフセットアドレス００〜１１のうちの、奇数オフセットアドレスから開始日時データ群を抽出し、これらをパスワード有効期間２２ｂの開始日時２２ｂｓとして格納する（Ｓ１２０３）。
【００８４】
次いで、ＣＰＵ２１は、オフセットアドレス００〜１１のうちの、偶数オフセットアドレスの並び順を反転させ、終了日時データ群を抽出して、これらをパスワード有効期間２２ｂの終了日時２２ｂｅとして格納し（Ｓ１２０４）、Ｓ５０５に進む。
【００８５】
例えば、入力されたパスワードデータが「CCE3E0F1FCFFFFFDF1FBE3F7F7A608」の場合、図８に示したパスコード国コード２２ａは、００Ｈ（００）、５１Ｈ（８１）の順に並べられる。また、図８に示したパスワード有効期間データ２２ｂの開始日時２２ｂｓは、１４Ｈ（２０）、０６Ｈ（０６）、０８Ｈ（０８）、０ＡＨ（１０）、０ＣＨ（１２）、００Ｈ（００）の順に並べられる。パスワード有効期間データ２２ｂの終了日時２２ｂｅについては開始日時２２ｂｓと同様であるため、省略する。
【００８６】
なお、本実施形態では、Ｓ１２０２→Ｓ１２０３→Ｓ１２０４の順番で処理が行われているが、Ｓ１２０２、Ｓ１２０３及びＳ１２０４の順番は、どのような順番で処理が行われてもよい。また、オフセットアドレス００〜１３に格納されるデータ群の並びは、パスワード生成装置１０にて生成される暗号化パスワードデータ１２ｃと対応するならば、別の並びにしてもよい。また、チェックサムの計算方法、及び、復号化方法は一例として示しているに過ぎず、暗号化方法に対応するものであれば、他の方法を用いることもできる。
【００８７】
次に、図３に示したＰＬＣ３０において、プログラミング装置２０から各種通信コマンドを受信した際の、パスワード認証処理手順を説明する。  
図７は、本発明を適用できる実施形態による、ＰＬＣ３０における、パスワード認証処理のフローチャートを示している。
【００８８】
まず、ＣＰＵ３１は、プログラミング装置２０から、通信コマンド２２ｅが受信されたか否かを判定する（Ｓ７０１）。通信コマンド２２ｅが受信されていない場合、プログラミング装置２０から、通信コマンド２２ｅが受信されるのを待つ。通信コマンド２２ｅが受信された場合、ＣＰＵ３１は、通信コマンド２２ｅの処理に対応したユーザ設定ＰＬＣパスワードｊ  ３２ｆｊが設定されているか否かを判定する（Ｓ７０２）。
【００８９】
Ｓ７０２において、ユーザ設定ＰＬＣパスワードｊ  ３２ｆｊが設定されていなかった場合、ＣＰＵ３１は、コマンド処理を実行し（Ｓ７０５）、コマンド処理の実行が成功した場合には、コマンド正常応答をプログラミング装置２０に送信して（Ｓ７０６→Ｓ７０７）、処理を終了する。コマンド処理の実行が失敗した場合には、ＣＰＵ３１は、コマンド異常応答をプログラミング装置２０に送信して（Ｓ７０６→Ｓ７０８）、処理を終了する。Ｓ７０２において、ユーザ設定ＰＬＣパスワードｊ  ３２ｆｊが設定されていた場合、ＣＰＵ３１は、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとメーカ専用パスワード３３ａとが一致するか否かを判定する（Ｓ７０３）。
【００９０】
Ｓ７０３において、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとメーカ専用パスワード３３ａとが一致した場合、ＣＰＵ３１は、パスワードが有効であるとして（すなわち、パスワード認証を許可）、コマンド処理を実行し（Ｓ７０５）、コマンド処理の実行が成功したならば、コマンド正常応答をプログラミング装置２０に送信して（Ｓ７０６→Ｓ７０７）、処理を終了する。コマンド処理の実行が失敗したならば、ＣＰＵ３１は、コマンド異常応答をプログラミング装置２０に送信して（Ｓ７０６→Ｓ７０８）、処理を終了する。Ｓ７０３において、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとメーカ専用パスワード３３ａとが一致しなかった場合、ＣＰＵ３１は、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとユーザ設定ＰＬＣパスワードｊ  ３２ｆｊとが一致するか否かを判定する（Ｓ７０４）。
【００９１】
Ｓ７０４において、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとユーザ設定ＰＬＣパスワードｊ  ３２ｆｊとが一致した場合、ＣＰＵ３１は、パスワードが有効であるとして（すなわち、パスワード認証を許可）、コマンド処理を実行し（Ｓ７０５）、コマンド処理の実行が成功したならば、コマンド正常応答をプログラミング装置２０に送信して（Ｓ７０６→Ｓ７０７）、処理を終了する。コマンド処理の実行が失敗したならば、ＣＰＵ３１は、コマンド異常応答をプログラミング装置２０に送信して（Ｓ７０６→Ｓ７０８）、処理を終了する。Ｓ７０４において、通信コマンド２２ｅ内のコマンド実行認証用パスワード２２ｅａとユーザ設定ＰＬＣパスワードｊ  ３２ｆｊとが一致しなかった場合、ＣＰＵ３１は、パスワードが無効であるとして（すなわち、パスワード認証を不許可）、コマンド異常応答（パスワード照合エラー）をプログラミング装置２０に送信し（Ｓ７０９）、処理を終了する。
【００９２】
以上のように、ユーザによって設定されたパスワードを忘れた場合でも、メーカにパスワードを問い合わせて、パスワード生成装置により生成されたパスワードを使用することで、すぐにパスワード認証され、ＰＬＣ、すなわち、ＰＬＣにより制御される装置や設備を停止する必要がなく、それらの連続稼動性を高めることが可能となる。さらに、有効期間が定められた暗号化パスワードデータを使用することで、パスワードの漏洩に基づく不正アクセスを軽減させることが可能となる。さらに、パスワードを使用できる国が限定されるので、より一層、セキュリティを向上させることが可能となる。さらに、メーカ専用パスワードは、入力される必要がなく、ＰＬＣのプログラミング装置、及び、ＰＬＣの各装置内、並びに、各装置間の処理において使用されるだけであるため、メーカ専用パスワードが漏洩する可能性を軽減させることが可能となる。さらに、メーカ担当者が、ＰＬＣのプログラミング装置、及び、ＰＬＣのプログラミング装置を介したＰＬＣの操作制限を解除するために、ＰＬＣの設置場所に直接赴く必要がなくなり、担当者の負担を軽減させることが可能となる。
【００９３】
なお、本実施形態では、Ｓ７０３→Ｓ７０４の順番で処理が行われているが、Ｓ７０４→Ｓ７０３の順番で処理が行われてもよい。
【００９４】
（他の実施形態）  
上述の実施形態では、プログラミング装置２０を用いて操作されるプログラマブルコントローラ３０について述べたが、本発明は、プログラマブルコントローラ３０の代わりに、プログラミング装置２０を用いて操作されるプログラマブル表示器にも適用可能である。
【００９５】
（実施形態の効果）  
（１）本実施形態によれば、ユーザが、ユーザによって設定されたパスワードを忘れた場合でも、メーカにパスワードを問い合わせることにより、すぐにパスワード認証され、ＰＬＣ、すなわち、ＰＬＣにより制御される装置や設備を停止する必要がなく、それらの連続稼動性を高めることが可能となる。
【００９６】
（２）本実施形態によれば、発行したパスワードは、暗号化され、有効期間があるので、パスワードの漏洩に基づく不正アクセスを軽減させることが可能となる。さらに、パスワードを使用できる国が限定されるので、より一層、セキュリティを向上させることが可能となる。
【００９７】
（３）本実施形態によれば、メーカ専用パスワードは、入力される必要がなく、各々の装置内、及び、装置間の処理において使用されるものであるため、メーカ専用パスワードが漏洩する可能性を軽減させることが可能となる。
【００９８】
（４）本実施形態によれば、メーカ担当者が、ＰＬＣのプログラミング装置、及び、ＰＬＣのプログラミング装置を介したＰＬＣの操作制限を解除するために、ＰＬＣの設置場所に直接赴く必要がなくなり、担当者の負担を軽減させることが可能となる。
【図面の簡単な説明】
【００９９】
【図１】本発明を適用できる実施形態のために使用されるパスワードを生成するための、パスワード生成装置の構成を示すブロック図である。
【図２】本発明を適用できる実施形態による、プログラマブルコントローラのプログラミング装置の構成を示すブロック図である。
【図３】本発明を適用できる実施形態による、プログラマブルコントローラの構成を示すブロック図である。
【図４】本発明を適用できる実施形態のために使用されるパスワードを生成するための、パスワード生成装置における、パスワード生成処理のフローチャートである。
【図５】本発明を適用できる実施形態による、プログラマブルコントローラのプログラミング装置における、プログラマブルコントローラのプログラミング装置の操作制限を解除するためのパスワード認証処理のフローチャートである。
【図６】本発明を適用できる実施形態による、プログラマブルコントローラのプログラミング装置における、プログラマブルコントローラのプログラミング装置を介したプログラマブルコントローラの操作制限を解除するためのパスワード判定処理のフローチャートである。
【図７】本発明を適用できる実施形態による、プログラマブルコントローラにおける、パスワード認証処理のフローチャートである。
【図８】図１、及び、図２に示すシステムメモリに格納されるパスワード国コードと、パスワード有効期間データとの詳細を示す図である。
【図９】図１０、及び、図１１と図１２とに示すパスワード暗号化処理、及び、パスワード復号化・分割処理の過程を示す模式図である。
【図１０】図１に示すパスワード生成処理における、パスワード暗号化処理のフローチャートである。
【図１１】図５、及び、図６に示すパスワード認証処理、及び、パスワード判定処理における、パスワード暗号化判定処理のフローチャートである。
【図１２】図５、及び、図６に示すパスワード認証処理、及び、パスワード判定処理における、パスワード復号化・分割処理のフローチャートである。
【符号の説明】
【０１００】
１０  パスワード生成装置
１１、２１、３１  ＣＰＵ
１２、２２、３２  システムメモリ
１２ａ、２２ａ  パスワード国コード
１２ｂ、２２ｂ  パスワード有効期間データ
１２ｂｓ、２２ｂｓ  パスワード有効期間データの開始日時
１２ｂｅ、２２ｂｅ  パスワード有効期間データの終了日時
１２ｃ  暗号化パスワードデータ
１３、２３、３３  システムプログラムメモリ
１４、２４  入力装置
１５、２５  表示器
１６、２６  時計
２０  プログラマブルコントローラのプログラミング装置
２２ｃ  入力パスワードデータ
２２ｄ  装置国コード
２２ｇａ〜２２ｇｍ  ユーザ設定装置パスワード
２２ｅ  通信コマンド
２２ｅａ  コマンド実行認証用パスワード
２３ａ、３３ａ  メーカ専用パスワード
３０  プログラマブルコントローラ
３２ｆａ〜３２ｆｎ  ユーザ設定プログラマブルコントローラパスワード
【図１】
2008083833.tif 000003
【図２】
2008083833.tif 000004
【図３】
2008083833.tif 000005
【図４】
2008083833.tif 000006
【図５】
2008083833.tif 000007
【図６】
2008083833.tif 000008
【図７】
2008083833.tif 000009
【図８】
2008083833.tif 000010
【図９】
2008083833.tif 000011
【図１０】
2008083833.tif 000012
【図１１】
2008083833.tif 000013
【図１２】
2008083833.tif 000014