(57)【特許請求の範囲】
【請求項１】
プログラミングツールと通信ケーブルで接続し、
該プログラミングツールで作成したユーザプログラムを該通信ケーブルを介して記憶するプログラマブルコントローラにおいて、
電源モジュール、ＣＰＵモジュール及びＩ／Ｏモジュールを備え、
該Ｉ／Ｏモジュールは、機能の異なるモジュールで、複数のスロットに任意に実装でき、
前記スロットと実装された前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報をパスワードとしたことを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１記載のプログラマブルコントローラにおいて、
前記プログラミングツールよりユーザプログラムの読み出し指令が送信された場合、前記パスワード情報と前記Ｉ／Ｏモジュールの実装配置情報を照合し一致したらユーザプログラムの読み出しに応答することを特徴とするプログラマブルコントローラ。
【請求項３】
請求項２記載のプログラマブルコントローラにおいて、
前記プログラミングツールよりユーザプログラムの読み出し指令が送信された場合、前記パスワード情報と前記Ｉ／Ｏモジュールの実装配置情報を照合し、一致していなければユーザプログラムの読み出しを拒否し、ユーザプログラムを保護することを特徴とするプログラマブルコントローラ。
【請求項４】
請求項１記載のプログラマブルコントローラにおいて、
前記機能の異なったＩ／Ｏモジュールを前記スロットに実装し配置して、該実装配置の組み合わせをパスワードとして設定、登録する場合、スロットにＩ／Ｏモジュールを実装しない状態もパスワードとして設定、登録可能としたことを特徴とするプログラマブルコントローラ。
【請求項５】
請求項１記載のプログラマブルコントローラにおいて、
前記機能の異なったＩ／Ｏモジュールを前記スロットに実装し配置して、該実装配置の組み合わせをパスワードとして設定、登録する場合、前記ＣＰＵモジュールのメモリに記憶することを特徴とするプログラマブルコントローラ。
【請求項６】
プログラミングツールと通信ケーブルで接続し、
該プログラミングツールで作成したユーザプログラムを、該通信ケーブルを介して記憶するプログラマブルコントローラにおいて、
電源モジュール、ＣＰＵモジュール及びＩ／Ｏモジュールを備え、
該Ｉ／Ｏモジュールは、機能の異なるモジュールで、複数のスロットに任意に実装でき、
該スロットと実装された前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報及び実装手順をパスワードとしたことを特徴とするプログラマブルコントローラ。
【請求項７】
請求項６記載のプログラマブルコントローラにおいて、
前記スロットと前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報及び実装手順をパスワードとするとき、前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報と実装手順を交互に設定し、登録することを特徴とするプログラマブルコントローラ。
【請求項８】
請求項１乃至７記載のプログラマブルコントローラにおいて、
前記パスワードはいつでも変更することができることを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モジュールタイプのプログラマブルコントローラに係り、特にユーザが作成したユーザプログラムを第三者が閲覧できないようにする情報漏洩のセキュリティ機能に関する。
【背景技術】
【０００２】
従来、プログラマブルコントローラは、プログラム特にユーザが作成したユーザプログラムの機密保持やプログラマブルコントローラの操作の保護などセキュリティの目的のためパスワード機能を持たせている。
ユーザプログラムは、ユーザすなわち機器メーカとして製造プロセスのノウハウを含んでおり、第三者に絶対に閲覧できないようにパスワードを採用し、プログラムを保護している。
しかし、ソフト的なパスワードは、全通り順次パスワードを入力すれば破られ、パスワードの桁数を多く増やしても自作ソフトで自動化して行なえばやはり破られてしまう。このようにパスワードを用いたセキュリティ機能は、パスワードが一旦漏洩するとセキュリティが保護されないという問題が生じる。
【０００３】
一方、キーやドングルといったハード的なセキュリティ機能は、簡単に破られはしないが、離れた地点のプログラマブルコントローラにアクセスする際などにハードキーの輸送を行うため取り扱い性が極めて悪い。また、複製が容易でないため紛失したらパスワードの解除が極めて困難であるという問題がある。
【０００４】
特許文献１（特開２００７−１２８１７２号公報）には、パスワードプロテクト方式を採用したプログラマブルコントローラにおいて、ユーザプログラムの一括読み出し要求コマンド等の解釈実行にプロテクトをかけることにより、正当な権限を有する者以外は、開発支援装置を操作してもプログラマブルコントローラのメモリから勝手にユーザプログラムを読み出せない対策を施し、パスワードの漏洩、盗用、総当たりによる解読等によるプロテクトの不正解除を未然に防止することが記載されている。しかし、特許文献１にはパスワードの構成については開示されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１２８１７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したパスワード方式はソフト的な保護であるため、可能なパスワードの全通りを順次入力すれば破られてしまうという問題がある。パスワードの桁数を多くしても全通りの入力を自作ソフト等で自動化してしまえば同じく破られてしまう危険性が高い。
一方、キーやドングルといったハード的な保護手段では、簡単に破られはしないが、離れた地点のＰＬＣにアクセスする際などにハードキーの輸送を伴うため、取り扱い性が極めて悪いことや、複製が容易でないため紛失したらパスワードの解除が困難といった欠点がある。
【０００７】
本発明の目的は、ソフト的なパスワード方式は破られ易く、キーやドングルなどのハード的なセキュリティ方式は破られ難いが、使い勝手が悪いため、破られ難く使い勝手が良くセキュリティ性の高いパスワード方式を採用したプログラマブルコントローラを提供する。
【課題を解決するための手段】
【０００８】
本発明は、上記目的を達成するため、プログラミングツールと通信ケーブルで接続し、該プログラミングツールで作成したユーザプログラムを該通信ケーブルを介して記憶するプログラマブルコントローラにおいて、電源モジュール、ＣＰＵモジュール及びＩ／Ｏモジュールを備え、該Ｉ／Ｏモジュールは、機能の異なるモジュールで、複数のスロットに任意に実装でき、前記スロットと実装された前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報をパスワードとしたことを特徴とする。
また、前記のプログラマブルコントローラにおいて、前記プログラミングツールよりユーザプログラムの読み出し指令が送信された場合、前記パスワード情報と前記Ｉ／Ｏモジュールの実装配置情報を照合し一致したらユーザプログラムの読み出しに応答することを特徴とする。
【０００９】
また、前記プログラマブルコントローラにおいて、前記プログラミングツールよりユーザプログラムの読み出し指令が送信された場合、前記パスワード情報と前記Ｉ／Ｏモジュールの実装配置情報を照合し、一致していなければユーザプログラムの読み出しを拒否し、ユーザプログラムを保護することを特徴とする。
また、前記プログラマブルコントローラにおいて、前記機能の異なったＩ／Ｏモジュールを前記スロットに実装し配置して、該実装配置の組み合わせをパスワードとして設定、登録する場合、スロットにＩ／Ｏモジュールを実装しない状態もパスワードとして設定、登録可能としたことを特徴とする。
【００１０】
また、前記プログラマブルコントローラにおいて、前記機能の異なったＩ／Ｏモジュールを前記スロットに実装し配置して、該実装配置の組み合わせをパスワードとして設定、登録する場合、前記ＣＰＵモジュールのメモリに記憶することを特徴とする。
さらに、プログラミングツールと通信ケーブルで接続し、該プログラミングツールで作成したユーザプログラムを、該通信ケーブルを介して記憶するプログラマブルコントローラにおいて、電源モジュール、ＣＰＵモジュール及びＩ／Ｏモジュールを備え、該Ｉ／Ｏモジュールは、機能の異なるモジュールで、複数のスロットに任意に実装でき、該スロットと実装された前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報及び実装手順をパスワードとしたことを特徴とする。
【００１１】
また、前記プログラマブルコントローラにおいて、前記スロットと前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報及び実装手順をパスワードとするとき、前記Ｉ／Ｏモジュールの実装配置の組み合わせ情報と実装手順を交互に設定し、登録することを特徴とする。
また、前記プログラマブルコントローラにおいて、前記パスワードはいつでも変更することができることを特徴とする。
【発明の効果】
【００１２】
モジュール自体をキーとして使用するため、キーの紛失や輸送といったハード的なキーの短所を補い、全組み合わせ数を試すにはモジュールの抜き差しを伴うことで時間がかかるため、簡単に全通り入力できるソフト的な保護の短所も補うことができる。さらに、キーとなるモジュールの組み合わせに、通常稼動時に使用しないモジュールを含めることで保護の強度をユーザで自由に上げることができるといった柔軟性もある。
【図面の簡単な説明】
【００１３】
【図１】本発明のプログラマブルコントローラのプログラム保護のシステムを示す概念図である。
【図２】ＣＰＵモジュールの内部構成を示す図である。
【図３】割付パスワードを設定するためのＩ／Ｏモジュールの実装配置の一例を示す図である。
【図４】割付パスワードを設定するためのＩ／Ｏモジュールの実装配置の別の一例を示す図である。
【図５】プログラマブルコントローラのモジュールの実装配置の状態を示す外観斜視図である。
【図６】Ｉ／Ｏモジュールが実装されているスロットと、実際に実装されている機能別のＩ／Ｏモジュールと、割付パスワードを設定、登録したときのＩ／Ｏモジュールの実装配置とを表にした図を示す。
【図７】ＣＰＵモジュールにおける割付パスワードに対する処理のフローチャートを示す。
【図８】プログラミングツールをプログラマブルコントローラとの割付パスワードの概念図を示す。
【図９】割付パスワードの別の構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面を用いて説明する。
（実施例１）
図１は、本発明のプログラマブルコントローラのプログラム保護のシステムを示す概念図である。
図１において、１０はプログラミングツール、１４はプログラマブルコントローラ、１５は通信ケーブルである。
プログラマブルコントローラ１４において、１１は電源モジュール、１２はＣＰＵモジュール、１３はＩ／Ｏモジュールで、Ｉ／Ｏモジュール１３において、１３−１はスロットＳ０に設置した１６点ディジタル入力モジュール、１３−２はスロットＳ１に設置した３２点ディジタル出力モジュール、１３−３はスロットＳ２に設置した３２点ディジタル入力モジュール、１３−４はスロットＳ３に設置した１６点出力モジュール、１３−５はスロットＳ４に設置した６４点ディジタル入力モジュールを示している。
ＣＰＵモジュール１２には、外部との通信が可能なコネクタ端子を有している。
【００１５】
モジュールタイプのプログラマブルコントローラは、１６点、３２点といったＩ／Ｏ点数、ディジタル、アナログといった信号の種類、リレー、トランジスタといった入出力のタイプの違いなどによって数多くの機能の異なる種類のモジュールに分かれており、ユーザは用途に応じて任意のＩ／Ｏモジュールを選んで組み合わせて使うタイプのプログラマブルコントローラシステムである。
また、一般的なモジュールタイプのプログラマブルコントローラの各Ｉ／Ｏモジュールは固有の識別情報を持ち、ＣＰＵモジュールはそれを読むことで、どのＩ／Ｏモジュールが実装されているかがわかる仕掛けとなっている。
【００１６】
また、Ｉ／Ｏモジュール１３は、各々スロットに挿入されており、容易に外したり実装したりでき、実装する場所も任意に変更することができる。
図５にＩ／Ｏモジュールをスロットに挿入するプリグラマブルコントローラ及びＩ／Ｏモジュールの斜視図を示す。
図５（ａ）はＩ／Ｏモジュールをスロットに挿入するプログラミングコントローラの状態を示し、Ｉ／Ｏモジュール１３−４をスロットＳ３に挿入している状態を示す。図５（ａ）において、スロットは、Ｉ／Ｏモジュールとの情報をやり取りする雌型コネクタ３０と、Ｉ／Ｏモジュールとの位置合わせのための孔３２，３３を下側に設け、上側には係止用の孔３１を設ける。
図５（ｂ）は、Ｉ／Ｏモジュールを示し、スロットに挿入する側を表面にした斜視図で、スロット側のコネクタ３０に対応した雄側コネクタ３４と、スロット側の孔３２，３３に位置合わせのため嵌めこむ突起部３６，３７と、スロット側の係止用孔にモジュール全体を挿入して係止する係止部３５とを有する。
【００１７】
プログラミングツール１０は、プログラマブルコントローラ４のプログラミングソフトを搭載したパソコンなどである。
一般に、プログラマブルコントローラ４のユーザは、プログラミングツール１０によってラダー言語などを用いてプログラムを作成し、プログラミングツール１０よりプログラマブルコントローラ４に対してユーザプログラムの書き込みの操作をすることで作成したユーザプログラムを通信ケーブル１５を介して、プログラマブルコントローラ１４のＣＰＵモジュール１２に転送する。
【００１８】
図２にＣＰＵモジュール１２の内部構成を示す。
図２において、１２１は外部との通信を行う通信ポート、１２２は情報の送受を行う通信トランシーバ、１２３は基本的な演算処理を行うＭＰＵである。１２４は不揮発性メモリで、ユーザプログラム１２４０や割付パスワード１２４１を記憶するところである。割付パスワードについては後述する。
１２５は実行するプログラムを記憶する実行メモリで、１２７はＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）でカスタムＩＣとも呼ばれ、ある特定用途のために設計、製造されるＩＣである。１２６は演算するためのデータを格納するメモリ、１２８はプログラマブルコントローラのモジュール間を接続するためのバスコネクタである。
【００１９】
ＣＰＵモジュール内のＭＰＵ（マイクロプロセッサ）１２３はそのプログラムを順次実行することで、機器制御を実現する。逆に、ユーザがプログラミングツールでプログラム読み出しの操作をすることで、稼動しているプログラムをプログラマブルコントローラからプログラミングツール側へ読み出すことができる。
【００２０】
図２のＣＰＵモジュール１２３において、ＭＰＵ１２３は不揮発性メモリ１２４に格納されたユーザプログラム１２４０を呼び出し、実行メモリ１２５に書き込み、プログラムを実行して処理する。
また、ＭＰＵ１２３で、演算処理するために必要なデータや演算した結果のデータを格納するところがデータメモリ１２６で、ＡＳＩＣ１２７を介してデータを書き込んだり呼び出したりする。
さらに、ＣＰＵモジュール１２は、バスコネクタ１２８をバスラインに接続し、Ｉ／Ｏモジュールや電源モジュールに接続し情報の送受を行っている。
【００２１】
また、ＭＰＵ１２３は、通信トランシーバ１２２を介して通信ポート１２１より外部装置へ制御信号を送り外部機器を制御する。
プログラミングツールを使用している場合は、パソコンと接続し、作成したユーザプログラムを不揮発性メモリ１２４に書き込んだりするときに通信ポート１２１を介して書き込んでいる。
【００２２】
また、ＭＰＵ１２３は、バスコネクタ１２８を介してプログラマブルコントローラの各スロットに実装されているＩ／Ｏモジュールを読み込むが、スロットの位置と実装されたＩ／Ｏモジュールの組合せのことを割付パスワードと呼び、
プログラムを見るあるいは編集する権限のあるユーザはプログラム作成時に、キーとなるＩ／Ｏモジュールの組み合わせを登録する。
割付パスワードはＩ／Ｏモジュールの実装位置とＩ／Ｏモジュールの種別の組み合わせパターンで定義される情報である。
割付パスワードは、実際稼動するＩ／Ｏモジュールの組み合わせとは異なる組み合わせにしておくべきである。プログラムがＣＰＵモジュールに転送され、書き込まれる過程で割付パスワードも同時にＣＰＵモジュールの不揮発性メモリに書き込まれる。
【００２３】
次に、この割付パスワードについて説明する。
図３及び図４は割付パスワードの一例を示し、図３（ａ）は図１に示したプログラマブルコントローラを再掲している。
すなわち、図３（ａ）において、Ｉ／Ｏモジュール１３はスロットＳ０に１６点ディジタル入力モジュール１３−１を実装し、スロットＳ１に３２点ディジタル出力モジュール１３−２を実装し、スロットＳ２に３２点ディジタル入力モジュール１３−２を実装し、スロットＳ３に１６点ディジタル出力モジュール１３−４を実装し、スロットＳ４に６４点ディジタル入力モジュール１３−５を実装しており、このＩ／Ｏモジュールを配置した状態で例えばメーカより出荷されたとする。
【００２４】
ユーザはＩ／Ｏモジュール１３を上記の通り容易に取り外すことができ、またスロットの場所を換えて任意に実装することができる。
図３（ｂ）は、図３（ａ）のメーカ出荷時のＩ／Ｏモジュールの配置位置を変更して実装した状態を示す一例である。
すなわち、図３（ｂ）において、スロットＳ０に１６点ディジタル入力モジュール１３−１を実装し、スロットＳ１に６４点ディジタル入力モジュール１３−５を実装し、スロットＳ２に３２点ディジタル出力モジュール１３−２を実装し、スロットＳ３に３２点ディジタル入力モジュール１３−３を実装し、スロットＳ４に１６点ディジタル出力モジュール１３−４を実装し、Ｉ／Ｏモジュールを配置する。
図３（ｂ）のように、Ｉ／Ｏモジュール１３を実装配置し、この実装配置をＣＰＵモジュール１２内のＭＰＵ１２３によりスロット位置とＩ／Ｏモジュールの種別とを読み込んで、割付パスワードとし、不揮発性メモリ１２４に格納し記憶する。
【００２５】
図４（ａ）は、Ｉ／Ｏモジュールを増設して、途中のスロットにＩ／Ｏモジュールを実装しない状態の配置を示す例である。
図４（ａ）において、スロットＳ０に１６点ディジタル入力モジュール１３−１を実装し、スロットＳ１に３２点ディジタル入力モジュール１３−３を実装し、スロットＳ２に３２点ディジタル出力モジュール１３−４を実装し、スロットＳ３にはモジュールを実装しないで、スロットＳ４に１６点ディジタル出力モジュール１３−４を実装し、スロット５に６４点ディジタル出力モジュール１３−６を実装し、スロットＳ６に４点アナログ入力モジュール１３−７を実装した状態を示している。
このように、Ｉ／Ｏモジュールを増設し、途中のスロットＳ３にＩ／Ｏモジュールを実装しない状態で、割付パスワードを設定、登録することも可能である。
【００２６】
また、図４（ｂ）は、図４（ａ）と同様にＩ／Ｏモジュールを増設して、途中のスロットにＩ／Ｏモジュールを実装しない状態の配置の別の例を示している。
図４（ｂ）において、スロットＳ０にはＩ／Ｏモジュールを実装しないで、スロットＳ１に６４点ディジタル入力モジュール１３−５を実装し、スロットＳ２に１６点ディジタル出力モジュール１３−４を実装し、スロットＳ３にはＩ／Ｏモジュールを実装しないで、スロットＳ４には３２点ディジタル入力モジュール１３−３を実装し、スロットＳ５に８点アナログ出力モジュール１３−８を実装し、スロットＳ６に４点アナログ出力モジュール１３−９を実装し、配置した状態を示している。
図４（ｂ）のように、アナログの入出力モジュールなどを増設して、スロットＳ０及びスロットＳ３にはＩ／Ｏモジュールを実装しないような配置状態においても割付パスワードを設定、登録することはでき、パスワードとして見破り難くなる。
【００２７】
次に、プログラマブルコントローラにＩ／Ｏモジュールが実装されている状態を表にしたのが図６である。
図６において、実装スロット位置、実際に実装されているＩ／Ｏモジュール及びユーザが登録した割付パスワードについて記載した例を示す。
図６において、スロットＳ０には１６点ディジタル入力モジュールが実際実装され、スロットＳ１には１６点ディジタル出力モジュールが実際実装され、スロットＳ２には８点アナログ入力モジュールが実際実装され、スロットＳ３には４点アナログ出力モジュールが実際は実装されているが、ユーザが割付パスワードを設定し登録したときは、スロットＳ０には８点アナログ入力モジュールが実装され、スロットＳ１には４点アナログ出力モジュールが実装され、スロットＳ２には１６点ディジタル入力モジュールが実装され、スロットＳ３にはシリアル通信モジュールが実装されており、割付パスワードを設定し登録した後、Ｉ／Ｏモジュールを配置換えして使用している。
【００２８】
次に、ＣＰＵモジュールにおけるユーザプログラムのセキュリティのフローチャートについて説明する。
図７は、ＣＰＵモジュール１２のＭＰＵ１２３において、プログラミングツール１０よりユーザプログラムの読み出し指令が送信されたときの処理のフローチャートを示す。
図７において、先ず、プログラム読み出しの指令を受信し（ステップ２０）、割付パスワードが設定されているかを判断する（ステップ２１）。割付パスワードが設定されていると、実装されているＩ／Ｏモジュールの配置と一致しているか判断する（ステップ２２）。割付パスワードと実装しているモジュールの配置とが一致すれば、プログラミングツールのプログラム読出しの指令要求に対し応答し、ユーザプログラムを送出する処理を行う（ステップ２３）。
また、割付パスワードと実装しているモジュールの配置とが一致していなければ、プログラミングツールのプログラム読み出しに対して拒否の応答を行い、プログラムを送出しない（ステップ２４）。
また、割付パスワードが設定されていなければ、プログラムの保護はされていないと判断し、ステップ２３にジャンプし、プログラミングツールのプログラム読み出し要求指令に対し、プログラム送出の処理を行う。
【００２９】
プログラマブルコントローラのプログラムを読み出しできないように保護するのは、プログラマブルコントローラが実際に機器制御をしている現場で動作している場合である。従って上述したように割付パスワードは実際稼動しているＩ／Ｏモジュールの組み合わせとは異なる組み合わせが設定されるべきである。
【００３０】
このように不正なプログラム読み出しから保護された状態のプログラマブルコントローラに対して、プログラムの編集権限を持つユーザがプログラムの編集やメンテナンスをする場合は、一度電源を切って実装されているＩ／Ｏモジュールの組み合わせを割付パスワードの組み合わせに変更して電源を再投入してからプログラム読み出しをする。そして割付パスワードの設定を一度外してからプログラム転送し、再度電源を落としてＩ／Ｏモジュールを実際の組み合わせに戻してから行う必要がある。プログラムの編集・メンテナンスが終了して最後にＰＬＣに転送する際に割付パスワードを設定してからプログラムを転送すると以降は保護状態に戻る。
また保護するのはプログラム読み出しだけではなく、プログラム消去やＩ／Ｏ（データメモリ）情報のモニタに対しても可能である。
【００３１】
次に、割付パスワードの設定の有効、無効について図８を用いて説明する。
図８（ａ）は、割付パスワードが設定無効の場合すなわち設定しない場合のプログラミングツールとプログラマブルコントローラの関係を示す図である。
図８（ａ）において、プログラミングツール１０で作成したユーザプログラムは、プログラマブルコントローラ１４のＣＰＵモジュール１２の不揮発性メモリ１２４のプログラムメモリ領域１２４０に書き込まれる。
また、プログラミングツール１０よりプログラマブルコントローラ１４に対してユーザプログラムの読み出し要求の指令を送信するとき、割付パスワードの設定を行っていない、すなわち無効の場合、ユーザプログラムを読み出すセキュリティはないすなわち保護なしの状態であるため、読み出しは可能となる。
【００３２】
ユーザプログラムの保護は、すべてのプログラムに対して行なうわけではなく、閲覧しても構わない場合もあり、この場合は割付パスワードを設定しない。
【００３３】
次に、割付パスワードを設定し、有効の場合を図８（ｂ）に示す。
図８（ｂ）において、プログラミングツール１０よりユーザプログラムを作成し、プログラマブルコントローラ１４に送信し、メモリに書き込んで格納する。
割付パスワードの設定は、プログラミングツール１０を搭載したＰＣで行い、割付パスワードを設定するとき、プログラマブルコントローラのＩ／Ｏモジュールの実装配置を当初の配置より変更して、割付パスワードを設定し登録する。設定した割付パスワードは、ユーザが忘れないように記憶又は記録しておく。
割付パスワードの設定が終了すると、Ｉ／Ｏモジュールの実装配置を再度変更して、割付パスワードの設定のときの配置が分からないようにする。
【００３４】
このような状況において、プログラミングツール１０よりプログラマブルコントローラ１４からユーザプログラムの読み出しが必要な場合、Ｉ／Ｏモジュールの実装配置を、割付パスワードを設定したときと同じ実装配置に変更し、プログラミングツール１０よりユーザプログラムの読み出し要求を送信し、割付パスワードと実装されているＩ／Ｏモジュールの配置とを一致させ、プログラマブルコントローラのメモリに格納されているユーザプログラムをプログラミングツール１０へ送出させ、読み出す。（（イ）の場合）
プログラミングツール１０では、プログラムを受信した後、再度Ｉ／Ｏモジュールの実装配置を変更し、割付パスワードを設定し直して登録を行ってもよい。
また、割付パスワードの変更はいつでも可能とする。
また、プログラミングツール１０よりユーザプログラムの読み出し要求があった場合、割付パスワードとＩ／Ｏモジュールの実装配置の組み合わせとが一致しなければ、プログラマブルコントローラ１４からプログラミングツール１０へのユーザプログラムは送出されない。（（ロ）の場合）
従って、ユーザプログラムは保護され、権限を有さない人はプログラムを閲覧することはできない。
【００３５】
（実施例２）
次に、本発明の第２の実施の形態について図９を用いて説明する。
図９は、実施例１ではＩ／Ｏモジュールの実装配置を割付パスワードと設定しているが、割付パスワードをＩ／Ｏモジュールの実装配置と実装手順とを組み合わせて設定し登録することを説明する図である。
図９（ａ）は、プログラマブルコントローラ１４において、左側より電源モジュール１１、ＣＰＵモジュール１２、Ｉ／Ｏモジュール１３である１６点ディジタル入力モジュール１３−１をスロットＳ０に、６４点ディジタル入力モジュール１３−５をスロットＳ１に、３２点ディジタル出力モジュール１３−２をスロットＳ２に実装している図を示す。
先ず、図９（ａ）のＩ／Ｏモジュールの実装状態において割付パルスを設定し、登録する。これを割付パスワードの第１ステップとする。
【００３６】
次に、図９（ｂ）は、図９（ａ）のスロットＳ０の１６点ディジタル入力モジュール１３−１とスロットＳ１の６４点ディジタル入力モジュール１３−５とを交換し変更して、スロットＳ０は６４点ディジタル入力モジュール１３−５を、スロットＳ１は１６点ディジタル入力モジュール１３−１を実装した状態を示す。
ここで、割付パスワードとして、スロットＳ０とスロットＳ１のＩ／Ｏモジュールとを交換し変更した点（図９（ｂ）の丸１）を割付パスワードの第２ステップとする。
【００３７】
次に、図９（ｂ）に示したＩ／Ｏモジュールの実装配置の状態を割付パスワードの第３ステップとする。
さらに、図９（ｃ）に示すように、図９（ｂ）のスロットＳ１の１６点ディジタル入力モジュール１３−１とスロットＳ２の３２点ディジタル出力モジュール１３−２を交換して、スロットＳ１は３２点ディジタル出力モジュール１３−２を、スロットＳ２には１６点ディジタル入力モジュール１３−１を実装する。
また、ここで、割付パスワードとしてスロットＳ１とスロットＳ２のＩ／Ｏモジュールを交換し変更した点（図９（ｃ）の丸２）を割付パスワードの第４ステップとする。
さらに、図９（ｃ）に示したＩ／Ｏモジュールの実装配置の状態を割付パスワードの第５ステップとする。
【００３８】
上記の割付パスワードの第１ステップから第５ステップまでを設定し登録することにより、より見破られ難いパスワードを設定することが可能となる。
【００３９】
また、上記では割付パスワードを設定するために、Ｉ／Ｏモジュールについて説明したが、電源モジュールやＣＰＵモジュールを含めて割付パスワードを設定しても問題はない。
【符号の説明】
【００４０】
１０‥プログラミングツール、      １４‥プログラマブルコントローラ、
１５‥通信ケーブル、              １１‥電源モジュール、
１２‥ＣＰＵモジュール、          １３‥Ｉ／Ｏモジュール、
１３−１‥１６点ディジタル入力モジュール、
１３−２‥３２点ディジタル出力モジュール、
１３−３‥３２点ディジタル入力モジュール、
１３−４‥１６点出力モジュール、
１３−５‥６４点ディジタル入力モジュール
１３−６‥６４点ディジタル出力モジュール
１３−７‥４点アナログ入力モジュール
１３−８‥８点アナログ出力モジュール
１３−９‥４点アナログ出力モジュール
Ｓ０〜Ｓ６‥スロット                ３０‥雌型コネクタ
３１‥雄型コネクタ                  ３５‥係止部
【図１】
0005696067.tif 000002
【図２】
0005696067.tif 000003
【図３】
0005696067.tif 000004
【図４】
0005696067.tif 000005
【図５】
0005696067.tif 000006
【図６】
0005696067.tif 000007
【図７】
0005696067.tif 000008
【図８】
0005696067.tif 000009
【図９】
0005696067.tif 000010