(57)【要約】【課題】プログラミング装置１０と共通バス１８によって結合され制御対象機器を制御しているプログラマブルコントローラ（ＰＬＣ）１９に、プログラミング装置の入力装置１４および表示器１５を介し利用者がＰＬＣをアクセス操作する能力を最大限に生かす。【解決手段】プログラミング装置のシステムプログラムにパスワード・操作制限情報設定手段６１と利用者認証・操作機能制限手段６２を付加し、予め手段６１により利用者ごとの認証用パスワードと、利用者ごとに所定の複数の機能別アクセス操作のうち、当該利用者に許可あるいは禁止する機能別アクセス操作の種類を定めた操作制限情報とをＰＬＣに設定しておき、利用者がＰＬＣにアクセス操作をしようとすると手段６２がこの設定情報を読み出し、当該利用者のパスワード入力を求めて当該利用者を認証したうえ当該利用者の操作制限情報を参照し、当該利用者が行おうとする機能別アクセス操作の種類を制限する。【選択図】        図１
2014013622.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラムを実行して制御対象機器を制御するプログラマブルコントローラをオンライン操作するプログラミング装置であって、
前記プログラミング装置は、ユーザによる入力操作に基づいて入力されたパスワードデータを前記プログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令に変換する手段と、
前記シーケンス命令を前記プログラマブルコントローラの実際の制御には無関係な擬似回路としてシーケンスプログラム内に挿入する手段と、
当該シーケンスプログラム内に挿入する手段により前記擬似回路が挿入されたシーケンスプログラムを前記プログラマブルコントローラに転送する手段と、を備えることを特徴とするプログラミング装置。
【請求項２】
前記シーケンスプログラムは母線を有するラダー図でプログラミングされたシーケンスプログラムであり、
前記擬似回路は、前記ラダー図の母線に未接続とされることにより前記プログラマブルコントローラの実際の制御に無関係に構成されることを特徴とする請求項１記載のプログラミング装置。
【請求項３】
前記パスワードデータは、前記プログラマブルコントローラに対する所定の操作を許可する権限レベルであることを特徴とする請求項１記載のプログラミング装置。
【請求項４】
前記パスワードデータは、前記プログラマブルコントローラに対する操作種別ごとの複数の権限レベルであり、該レベル毎に異なることを特徴とする請求項１記載のプログラミング装置。
【請求項５】
請求項３または請求項４に記載のプログラミング装置であって、
前記権限レベルを有効とするか無効とするかを定めるレベル有効／無効データがさらに入力され、前記シーケンス命令に変換する手段は、前記パスワードデータに加え前記レベル有効／無効データも前記プログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令に変換することを特徴とするプログラミング装置。
【請求項６】
請求項３〜５のいずれか１項記載のプログラミング装置であって、
前記オンライン操作の際、前記プログラマブルコントローラに前記擬似回路が設定されているか否かを調べ、設定されていると判別したときはパスワードをユーザに入力させ、この入力されたパスワードとプログラマブルコントローラに設定されているパスワードとを照合して前記プログラマブルコントローラへの前記権限レベルを判定し、該レベルに応じた操作を許可することを特徴とするプログラミング装置。
【請求項７】
請求項６記載のプログラミング装置であって、
前記プログラマブルコントローラに前記擬似回路が設定されているか否かを調べた際、該擬似回路が設定されていないと判別したときは、前記プログラマブルコントローラに対する全ての操作を許可することを特徴とするプログラミング装置。
【請求項８】
プログラミング装置により編集されたシーケンスプログラムを実行して制御対象機器を制御するプログラマブルコントローラであって、
前記プログラミング装置は、ユーザによる入力操作に基づいて入力されたパスワードデータを前記プログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令に変換する手段と、
前記シーケンス命令を前記プログラマブルコントローラの実際の制御には無関係な擬似回路としてシーケンスプログラム内に挿入する手段と、
当該シーケンスプログラム内に挿入する手段により前記擬似回路が挿入されたシーケンスプログラムを前記プログラマブルコントローラに転送する手段と、を有し、
前記プログラマブルコントローラは、前記プログラミング装置により転送された前記擬似回路を含むシーケンスプログラムを保持する記憶手段を有し、当該記憶手段に保持された前記シーケンスプログラムに含まれる前記擬似回路を実行しないように構成されることを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御対象機器を制御するプログラマブルコントローラ（ＰＬＣとも略記する）、プログラマブルコントローラをアクセス操作するプログラミング装置に関する。
なお前記したアクセス操作（オンライン操作ともいう）とは、例えば、ＰＬＣ本体とプログラミング装置とをケーブルで接続し、利用者（操作者）がＰＬＣ本体のシーケンスプログラムを読み出してモニタしたり、シーケンスプログラムを編集してＰＬＣ本体へ転送したり、ＰＬＣ内部データのモニタや書き込みを行ったり、制御対象機器のシステム構成を変更したりするなどの操作を指す。また、シーケンスプログラムの編集とは、シーケンスプログラムの作成、変更、デバッグ等のシーケンスプログラムの作成に関わる全ての作業を意味するものとする。
【背景技術】
【０００２】
プログラマブルコントローラ（ＰＬＣ）は、シーケンスプログラムを演算実行してＰＬＣに接続される制御対象機器を自動的にシーケンス制御する装置として知られている。そしてこのシーケンスプログラムは通常、利用者によりプログラミング装置上でラダー図等のプログラミング言語を用いて編集されたのち機械語（マシンコード）に変換されて通信ケーブル等を介し当該のＰＬＣに格納される。
【０００３】
ところで、制御対象機器を自動シーケンス制御するＰＬＣには、そのシーケンスプログラムに対する誤った改変を防止するため、通常は１つのパスワードが設定されており、プログラミング装置を介して利用者がＰＬＣにアクセス操作をしようとする際、このパスワードを入力できる利用者のみがアクセス操作できるようになっている。
【０００４】
この動作を具体的に説明すると、従来、プログラミング装置からＰＬＣにパスワードを設定すると、そのパスワードデータはＰＬＣ内のパスワードデータ領域に格納され、ＰＬＣはプロテクト状態となる。この状態でプログラミング装置からシーケンスプログラムの読み出し操作が行われるとＰＬＣが拒否する仕組みを取っており、パスワードの入力による当該利用者の認証が行われない場合、全てのオンライン操作が阻止される。
【０００５】
利用者の認証は、当該利用者によって入力されたパスワードデータをプログラミング装置からＰＬＣへ送り、ＰＬＣがこの送られたパスワードと自身に設定されているパスワードとの照合を行うことによって行われ、両パスワードが一致していればプロテクト状態が解除されＰＬＣに対する当該利用者のオンライン操作が可能となる。
また、特許文献１には、ユーザプログラムをプログラムブロック単位で複数格納可能としたプログラマブルコントローラ・システムであって、一群のプログラムブロック（プログラムブロックグループ）毎にパスワード等の鍵を割り当てることにより、プログラム保護のためのセキュリティを、プログラムブロックグループ単位で一括設定または一括解除可能としたプログラマブルコントローラ・システムが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３２８７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した従来のＰＬＣに通常１つ設定されるパスワードには、ＰＬＣにアクセス操作をしようとする利用者の操作権限のレベル、換言すれば各種の機能別のアクセス操作のうち、当該利用者にどの種類の機能別アクセス操作までを許可あるいは禁止するか、を区別する機能は無く、いかなる利用者であってもこのパスワードを入力しさえすれば全ての機能別のオンライン操作（アクセス操作）が許可される。
【０００８】
また、特許文献１のプログラマブルコントローラ・システムではパスワードが複数個使用されるが、これらのパスワードはセキュリティを設定／解除できるプログラムブロックグループを区別するためのものであり、利用者の操作権限のレベルを区別する機能は持っていない。
【０００９】
このように、従来ＰＬＣに設定されるパスワードは利用者の操作権限のレベルを区別する機能を持たないため、制御対象機器を制御しているＰＬＣにアクセス操作をしようとする利用者が、例えば、管理者、メンテナンスマン、エンドユーザ等のいずれのレベルの操作権限を持つかを判定し、その利用者の操作権限レベルに応じて、各種機能別のアクセス操作のうち許可あるいは禁止するアクセス操作の機能の種類を分けることができないという問題がある。
【００１０】
なお、利用者の操作権限レベルを区別するためにパスワード設定を増やした場合でも、従来のＰＬＣとの互換性を維持するために、利用者が所定のパスワードを入力できるか否かに応じて、当該利用者のオンライン操作を全て許可するか全て禁止するかの２者選択の機能も併用できる必要がある。
【００１１】
また、従来のパスワードによるプロテクトはＰＬＣ側のシステムソフトで実現されており、利用者の操作権限レベルを区別するためにパスワード設定を増やそうとすると、ＰＬＣのシステムソフトの変更が必要となる。このためＰＬＣが既に稼動している制御対象機器に使用されている場合には、無視できない時間、制御対象機器の稼動を停止しなければならないという問題がある。
【００１２】
また最近では、前述した利用者の操作権限レベルの種類を管理者、メンテナンスマン、エンドユーザ等の限られた種類数に限定せず、さらに利用者個別の段階にまで増加させ、ＰＬＣにアクセス操作をしようとする利用者ごとに予め許可あるいは禁止する各種の機能別アクセス操作を設定できるようにすることも要望されている。
【００１３】
本発明は、これらの問題を解決できるプログラマブルコントローラのプログラミング装置を提供することを課題とする。
【課題を解決するための手段】
【００１４】
本発明では以下のように構成する。
シーケンスプログラムを実行して制御対象機器を制御するプログラマブルコントローラをオンライン操作するプログラミング装置であって、プログラミング装置は、ユーザによる入力操作に基づいて入力されたパスワードデータをプログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令に変換する手段と、シーケンス命令をプログラマブルコントローラの実際の制御には無関係な擬似回路としてシーケンスプログラム内に挿入する手段と、当該シーケンスプログラム内に挿入する手段により擬似回路が挿入されたシーケンスプログラムをプログラマブルコントローラに転送するように構成される。
【００１５】
また、シーケンスプログラムは母線を有するラダー図でプログラミングされたシーケンスプログラムであり、擬似回路は、ラダー図の母線に未接続とされることによりプログラマブルコントローラの実際の制御に無関係になる。
【００１６】
また、パスワードデータは、プログラマブルコントローラに対する所定の操作を許可する権限レベルである。
また、パスワードデータは、プログラマブルコントローラに対する操作種別ごとの複数の権限レベルであり、該レベル毎に異なる。
【００１７】
また、権限レベルを有効とするか無効とするかを定めるレベル有効／無効データがさらに入力され、シーケンス命令に変換する手段は、パスワードデータに加えレベル有効／無効データもプログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令に変換する。
【００１８】
また、オンライン操作の際、プログラマブルコントローラに擬似回路が設定されているか否かを調べ、設定されていると判別したときはパスワードをユーザに入力させ、この入力されたパスワードとプログラマブルコントローラに設定されているパスワードとを照合してプログラマブルコントローラへの権限レベルを判定し、該レベルに応じた操作を許可するようにプログラミング装置を構成してもよい。
【００１９】
また、プログラマブルコントローラに擬似回路が設定されているか否かを調べた際、該擬似回路が設定されていないと判別したときは、プログラマブルコントローラに対する全ての操作を許可するようにプログラミング装置を構成してもよい。
【００２０】
また、プログラミング装置により転送された擬似回路を含むシーケンスプログラムを保持する記憶手段を有し、当該記憶手段に保持されたシーケンスプログラムに含まれる擬似回路を実行しないようにプログラマブルコントローラを構成する。
【発明の効果】
【００２１】
本発明によれば、プログラミング装置のシステムプログラムにパスワード回路設定手段３１、アクセス権限判定・操作機能制限手段３２等のソフトウェア手段を付加することにより、制御対象機器を制御するＰＬＣにプログラミング装置を介してアクセス操作をしようとする利用者が、例えば、管理者、メンテナンスマン、エンドユーザ等のいずれのレベルの操作権限を持つかを判定し、判定した操作権限レベルに応じて当該利用者に禁止、あるいは許可する機能別アクセス操作の種類を制限できるようにしたので、
例えば、メンテナンスマンやエンドユーザの操作ミスによる制御対象機器の誤動作や、ＰＬＣ内のシーケンスプログラムデータの不正コピーなどを防止することができ、制御対象機器を含むシステム全体のセキュリティを向上することができる。
【００２２】
また、プログラミング装置のシステムプログラムにソフトウェア手段であるパスワード・操作制限情報設定手段６１と利用者認証・操作機能制限手段６２を付加し、この設定手段６１を介し予めＰＬＣの利用者ごとに当該利用者を認証するためのパスワードと当該利用者に許可あるいは禁止する機能別アクセス操作の種類を設定して、これらの設定情報からなるパスワード・操作制限情報５００をＰＬＣに格納して置き、実際に制御対象機器を制御するＰＬＣに利用者がアクセス操作をしようとする際、前記利用者認証・操作機能制限手段６２がＰＬＣ内のパスワード・操作制限情報５００を参照して当該利用者が行う機能別アクセス操作の種類を制限できるようにしたので、利用者それぞれのＰＬＣの操作能力を最大限に生かすことができ、ＰＬＣの利用効率を高めることができる。
【図面の簡単な説明】
【００２３】
【図１】第１発明の一実施例としてのプログラミング装置のシステム構成図
【図２】第１発明の一実施例としてのパスワードデータを含むシーケンスプログラム先頭部の構成図
【図３】図１のアクセス権限判定・操作機能制限手段のアクセス権限判定処理の一実施例としての手順を示すフローチャート
【図４】第１発明の一実施例としてのアクセス権限レベルの種別と操作機能種別との対応の一覧を示す図
【図５】第２発明の一実施例としてのプログラミング装置のシステム構成図
【図６】第２発明の一実施例としての利用者別操作制限機能設定画面の構成を示す図
【図７】図５のパスワード・操作制限情報設定手段を介する設定処理の一実施例としての手順を示すフローチャート
【図８】図５のパスワード・操作制限情報の構成の一実施例を示す図
【図９】図５の利用者認証・操作機能制限手段の処理の一実施例としての手順を示すフローチャート
【図１０】図９の処理におけるパスワード・操作制限情報内のデータ参照の動きの実施例を示す図
【発明を実施するための形態】
【００２４】
（実施の形態１）
先ず図１ないし図４を参照して本発明の実施の形態１としての請求項１ないし６に関わる第１発明の実施例を説明する。図１は第１発明の一実施例としてのプログラミング装置およびこれと接続されたＰＬＣを含むシステムの構成図である。同図において１０はプログラミング装置、１９はプログラミング装置１０と共通バス１８を介して接続されたプログラマブルコントローラ（ＰＬＣ）である。なお、本実施例ではＰＬＣ１９は自身に接続された図外の制御対象機器をシーケンス制御できるものとする。
【００２５】
プログラミング装置１０内では、中央演算処理装置（ＣＰＵ）１１、システムメモリ１２、シーケンスプログラムメモリ１３、図外のキーボードおよびマウスからなる入力装置１４、表示器１５が共通バス１７に接続され、さらに共通バス１７が入出力インタフェース（Ｉ／Ｏとも略記する）１６を介して前記の共通バス１８に接続されている。
【００２６】
ＣＰＵ１１はシステムメモリ１２に格納されたシステムプログラムを実行する。このシステムプログラムは、シーケンスプログラムの表示、編集、転送処理に関わるプログラムのほか、本実施例では後述の図４に示す、例えばＰＬＣの運転／停止（Ｎｏ．２６）、ＰＬＣの情報表示（Ｎｏ．１４）等といった各種のアクセス操作（オンライン操作）をＰＬＣ１９に行えるようにするプログラムを含んでいる。
【００２７】
システムメモリ１２は、ＣＰＵ１１が実行する上記システムプログラムを格納する領域であるが、ＣＰＵ１１の演算に用いるデータ、表示器１５に表示するデータ、編集中のシーケンスプログラム等を記憶する作業領域も備えている。
【００２８】
システムメモリ１２内に示すパスワード回路設定手段３１、アクセス権限判定・操作機能制限手段３２はシステムプログラムに付加された本発明の核心となる、つまりＰＬＣ１９に対するアクセス操作の制限に関わるプログラムであり、ここで、パスワード回路設定手段３１は後述するパスワード回路２１を疑似回路としてシーケンスプログラム内に挿入し、ＰＬＣ１９に設定するためのプログラムである。
【００２９】
また、アクセス権限判定・操作機能制限手段３２は、詳細は後述するが、ＰＬＣ１９にアクセス操作をしようとする利用者（操作者）の操作権限の有無や操作権限のレベルを判定し、この判定結果に応じて各種の操作機能（操作の働き）のうち、当該の操作者に許可する操作機能の種類を制限するプログラムである。
【００３０】
シーケンスプログラムメモリ１３は、ＰＬＣ１９に転送格納すべき、あるいはＰＬＣ１９から読み出したシーケンスプログラムを一時的に格納する。また入力装置１４からは、ユーザによるＣＰＵ１１に対する動作指示、シーケンスプログラムを構成するシーケンス命令などの入力や、図４（後述）に示すようなＰＬＣ１９に対する各種の機能別アクセス操作の入力が可能である。
【００３１】
表示器１５は、一般に入力装置１４による各種の操作に必要な内容や、操作によって要求された内容を表示し、シーケンスプログラム作成モードにおいてはシーケンスプログラムをラダー図等のプログラミング言語形態で表示する。また入出力インタフェース１６は、共通バス１７と１８とを結合する役割を持つ。
【００３２】
図２は、第１発明の一実施例としてのラダー図で表現されたパスワード回路２１を含むシーケンスプログラムの先頭部分の構成を示す。本実施例では図４で後述するように利用者のＰＬＣ１９に対するアクセス権限のレベルを、管理者権限Ａ、メンテナンスマン権限Ｂ、エンドユーザ権限Ｃの３つに分けることとし、パスワードとしては管理者用パスワードとメンテナンスマン用パスワードとの２つを用いるものとする。
【００３３】
そして、管理者用パスワードデータ２３、メンテナンスマン用パスワードデータ２４、レベル有効／無効データ２２からなる疑似回路（つまりシーケンスプログラム内に回路の形で置かれるが、実際のシーケンス制御には無関係となる回路）としてのパスワード回路２１を図２の破線部のようにシーケンスプログラムの先頭に挿入してＰＬＣ１９に設定するようにする。
【００３４】
なお、レベル有効／無効データ２２は、従来のＰＬＣと互換性を保つためにアクセス権限のレベル分けを無効にすることもできるようにするためのもので、このレベル有効／無効データ２２を「無効」に設定したときは、パスワードは１つだけ（本実施例では管理者用パスワードデータ２３のみ）を利用するものとする。
【００３５】
このようなパスワード回路２１をＰＬＣ１９に設定するには、予めＰＬＣ１９にパスワード回路２１が設定されていない状態において、入力装置１４からモニタを開始する旨のモニタ開始操作を行う。これによりＰＬＣ１９の動作中のシーケンスプログラムはプログラミング装置１０のシーケンスプログラムメモリ１３に読み込まれる（言い換えれば、ＰＬＣ１９にそのシーケンスプログラムをシーケンスプログラムメモリ１３へ転送コピーさせる）。
【００３６】
なお本実施例では、上記モニタ開始操作は、後述する図４におけるＮｏ．２９の操作機能「モニタ」に対応する、利用者の操作権限レベルに無関係に許されている、ＰＬＣ１９の動作中のシーケンスプログラムをモニタ（監視）するための操作で、このモニタ開始操作によりＰＬＣ１９からシーケンスプログラムメモリ１３へシーケンスプログラムおよびその動作データが転送コピーされ、この転送された動作データはＰＬＣ１９により常時更新される。
【００３７】
こうしてモニタ開始操作を行った状態で、図１で述べたパスワード回路設定手段３１を起動し、入力装置１４および表示器１５を利用しながらプログラミング装置１０に管理者用パスワード２３、メンテナンスマン用パスワード２４を入力すると共にレベル有効／無効データ２２をその時のＰＬＣ１９の利用条件に合わせ、「有効」または「無効」として入力する。
【００３８】
すると、プログラミング装置１０のパスワード回路設定手段３１は先ず、管理者用パスワードデータ２３、メンテナンスマン用パスワードデータ２４及びレベル有効／無効データ２２をそれぞれデバイスアドレスに置き換えシーケンス命令へ変換する。
【００３９】
この変換されたパスワード回路に関わる命令は、ラダー図で表示された実際に作動するシーケンスプログラムを正しく認識できるように表示器１５には表示されないが、シーケンスプログラム内の命令文としては、図２に点線で示すようにレベル有効／無効データ２２、管理者用パスワード２３、メンテナンスマン用パスワード２４を含み、且つ左母線２５及び右母線２６には接続しないパスワード回路２１としてプログラミング装置１０のシステムメモリ１２内のパスワード回路データ作成用作業領域に置かれる。
【００４０】
次に入力装置１４により転送を指示する操作が行われると、パスワード回路設定手段３１は、シーケンス制御中のＰＬＣ１９の制御動作を一時中断させ、システムメモリ１２内の上記パスワード回路データ作成用作業領域にあるパスワード回路データを、シーケンスプログラムメモリ１３に読み込んだシーケンスプログラムの先頭へ挿入したうえ、この新たなシーケンスプログラムをＰＬＣ１９へ転送し、その制御動作を再開させる。こうしてパスワード回路２１がＰＬＣ１９に設定されることになる。
【００４１】
前記のようにこのパスワード回路２１は左母線２５及び右母線２６とは接続されないので、ＰＬＣ１９の実制御動作に関わるシーケンスプログラムとしての実行は行われず他のプログラムへ影響を与えない。また、このようにパスワード回路２１が設定されたＰＬＣ１９のシーケンスプログラムをプログラミング装置１０でモニタする場合、実際に作動しているシーケンスプログラムを正しく認識できるようにパスワード回路２１の表示器１５への表示は行わない。
【００４２】
図３は、プログラミング装置１０、従って図１で述べたアクセス権限判定・操作機能制限手段３２が利用者のアクセス権限を判定する処理手順の一実施例を示すフローチャートで、Ｓ１〜Ｓ１２はそのステップ番号である。
【００４３】
また図４は、第１発明の一実施例としての操作者のアクセス権限のレベルの種別と、アクセス制限する操作機能の種別との関係を一覧にして対比したもので、同図ではアクセス権限を横方向に、管理者権限Ａ、メンテナンスマン権限Ｂ、エンドユーザ権限Ｃの３レベルとし、また操作機能の種別を縦方向にＮｏ．０１のオンライン開始からＮｏ．３２のパスワード一括解除までの３２種類として、各アクセス権限レベル別に操作を可能とする操作機能を○印、操作を不可とする操作機能を×印でそれぞれ示している。
【００４４】
なお、図４では管理者権限Ａには全ての操作機能に関わる操作を可能としているが、メンテナンスマン権限Ｂには一部の操作機能、本例ではＮｏ．１３のシステム定義、Ｎｏ．２８のＰＬＣ機種変更、Ｎｏ．３０の管理者権限パスワード変更、Ｎｏ．３２のパスワード一括解除に関わる操作を不可としている。またエンドユーザ権限ＣにはＰＬＣの制御動作に影響を与えない操作機能に関わる操作のみを可能としている。
【００４５】
次に図４を参照しつつ図３を説明する。当該ＰＬＣ１９の利用条件に応じて上述のようにパスワード回路２１が設定され、プログラミング装置１０と接続されたＰＬＣ１９が制御対象機器を制御している状態において、プログラミング装置１０のアクセス権限判定・操作機能制限手段３２は、先ず、入力装置１４によって操作者がオンライン操作をしようとしたか否かを判別する（ステップＳ１）。なお、この判別は図４のＮｏ．０１の「オンライン開始」に対応する操作の有無を検出することとなる。
【００４６】
そして、前記「オンライン開始」の操作を検出すると（ステップＳ１、分岐Ｙｅｓ）、プログラミング装置１０（の手段３２）はＰＬＣ１９にパスワード回路２１が設定されているか否かを判別する（ステップＳ２）。
【００４７】
ここで、パスワード回路２１が設定されていない場合は（ステップＳ２、分岐Ｎｏ）、どの操作者にも図４に示す全ての操作機能を許可するものとし、本例では当該の操作者のアクセス権限を管理者権限と判定したことと同等とする（ステップＳ１２）。
【００４８】
他方、前記のステップＳ２でパスワード回路２１が設定されている場合は（分岐Ｙｅｓ）、プログラミング装置１０（の手段３２）は表示器１５を介して当該の操作者にパスワードの入力を促す。
【００４９】
そしてパスワードが入力されると（ステップＳ３）、パスワード回路２１におけるレベル有効／無効データ２２が「有効」と設定されているか否かをしらべる（ステップＳ４）。
【００５０】
ここで「有効」と設定されていない場合は（ステップＳ４、分岐Ｎｏ）、さらにステップＳ３で入力されたパスワードがパスワード回路２１における管理者用パスワード２３と同じか否かを調べる（ステップＳ１０）。
【００５１】
ここで、入力されたパスワードが管理者用パスワード２３と同じであれば、（ステップＳ１０、分岐Ｙｅｓ）、当該の操作者のアクセス権限を管理者権限と判定するが（ステップＳ１２）、入力パスワードが管理者用パスワード２３と同じでなければ（ステップＳ１０、分岐Ｎｏ）、当該操作者のアクセス権限の認証を失敗したとする（ステップＳ１１）。
【００５２】
他方、前記ステップＳ４でレベル有効／無効データ２２が「有効」と設定されている場合は（分岐Ｙｅｓ）、入力パスワードがパスワード回路２１におけるメンテナンスマン用パスワード２４と同じか否かを調べる（ステップＳ５）。
【００５３】
ここで、入力パスワードがメンテナンスマン用パスワード２４と同じであれば、（ステップＳ５、分岐Ｙｅｓ）、当該操作者のアクセス権限をメンテナンスマン権限と判定するが（ステップＳ９）、他方、入力パスワードがメンテナンスマン用パスワード２４と同じでなければ（ステップＳ５、分岐Ｎｏ）、さらに入力パスワードが管理者用パスワード２３と同じか否かを調べる（ステップＳ６）。
【００５４】
ここで、入力パスワードが管理者用パスワード２３と同じであれば、（ステップＳ６、分岐Ｙｅｓ）、当該操作者のアクセス権限を管理者権限と判定するが（ステップＳ１２）、他方、入力パスワードが管理者用パスワード２３と同じでなければ（ステップＳ６、分岐Ｎｏ）、さらに入力パスワードが空白であるか否かを調べる（ステップＳ７）。
【００５５】
ここで、入力パスワードが空白でなければ（ステップＳ７、分岐Ｎｏ）、当該操作者のアクセス権限の認証を失敗したとし（ステップＳ１１）、他方、入力パスワードが空白であれば（ステップＳ７、分岐Ｙｅｓ）、当該操作者のアクセス権限をエンドユーザ権限と判定する（ステップＳ８）。
【００５６】
以上の判定処理の結果、プログラミング装置１０のアクセス権限判定・操作機能制限手段３２は、アクセス権限を認証した操作者には、図４のように該当する権限レベルで許可した操作機能に関わるＰＬＣ１９へのアクセス操作を許可する。しかし上記判定処理で認証を失敗したときは再度図３の処理を繰り返す。
【００５７】
なお、本実施例では図３の処理によって管理者権限Ａを持つと判定された利用者は図４に示すようにＮｏ．３０の「管理者権限パスワード変更」およびＮｏ．３１の「メンテナンスマン権限パスワード変更」の操作が許可され、同様にメンテナンスマン権限Ｂを持つと判定された利用者はＮｏ．３１の「メンテナンスマン権限パスワード変更」の操作が許可される。
【００５８】
本実施例ではこのようなパスワード変更操作を行うにあたっては、もしその時点で、前述のパスワード新規設定時に行われたモニタ開始操作が有効な（つまり、ＰＬＣ１９のシーケンスプログラムの動作データのモニタが継続されている）状態でなければ、改めてモニタ開始操作を行ってＰＬＣ１９の動作中のシーケンスプログラムをプログラミング装置１０のシーケンスプログラムメモリ１３に読み込んだうえ、上記パスワード変更操作を行う。
【００５９】
すると図１のパスワード回路設定手段３１は、シーケンスプログラムメモリ１３に読み込まれたシーケンスプログラム内に設定されている従来のパスワード回路２１をプログラミング装置１０のシステムメモリ１２内のパスワード回路データ作成用作業領域に転送する。
【００６０】
続いてパスワード回路設定手段３１は、管理者権限のもとで操作入力された新たな管理者用パスワードデータ２３およびメンテナンスマン用パスワードデータ２４、またはメンテナンスマン権限のもとで操作入力された新たなメンテナンスマン用パスワードデータ２４によって、システムメモリ１２内のパスワード回路データ作成用作業領域に転送された従来のパスワード回路２１内の管理者用パスワードデータ２３およびメンテナンスマン用パスワードデータ２４、またはメンテナンスマン用パスワードデータ２４をそれぞれ書き換える。
【００６１】
そして、この書き換えた新たなパスワード回路２１でシーケンスプログラムメモリ１３内のシーケンスプログラム内の従来のパスワード回路２１を置き換え、この新たなシーケンスプログラムをＰＬＣ１９に転送してそのシーケンス制御を再開させる。
【００６２】
また、管理者権限Ａを持つと判定された利用者は、図４に示すようにさらにＮｏ．３２の「パスワード一括解除」の操作が許可される。この操作を行うにあたっても上記したパスワード変更操作の場合と同様に、予め必要に応じモニタ開始操作を行ってＰＬＣ１９のシーケンスプログラムをプログラミング装置１０のシーケンスプログラムメモリ１３に読み込んで置く。
【００６３】
この状態で管理者権限のもとにパスワード一括解除の操作が行われると、パスワード回路設定手段３１は、シーケンスプログラムメモリ１３に読み込まれたシーケンスプログラムの先頭に設定されているパスワード回路２１を一括削除する。そして、パスワード回路２１を削除した新たなシーケンスプログラムをＰＬＣ１９に転送してそのシーケンス制御を再開させる。
【００６４】
（実施の形態２）
ところで、上述した第１発明の実施例ではＰＬＣに対する当該の利用者に許可あるいは禁止する機能別アクセス操作の種類の組合わせ（便宜上、操作制限パターンと呼ぶ）を管理者、メンテナンスマン、エンドユーザの３つに限られた操作権限レベルの別に区分している。
【００６５】
しかし、ＰＬＣを利用する組織によっては、例えばエンドユーザであってもデータメモリの値を変更できる能力を持ち、且つ業務上もこの能力を生かすことが望まれる者があるとか、メンテナンスマンであってもプログラムを変更できる能力の不十分な者があるというように、利用者のＰＬＣ操作上の能力に様々な段階がある。
【００６６】
このため最近では、前記操作制限パターンをユーザ毎に設定できるようにする（換言すれば前記操作権限レベルの種類を３つといった限られた種類数から利用者個別の段階にまで増加させる）ことが要望されるようになった。
【００６７】
次に図５ないし図１０を参照して、このような要望を満たす機能を備えた本発明の実施の形態２としての、請求項７ないし１３に関わる第２発明の実施例を説明する。
図５は第２発明の一実施例としてのプログラミング装置およびこれと接続されたＰＬＣを含むシステムの構成図で図１に対応するものである。図５の図１と異なるところは、図１におけるプログラミング装置１０のシステムメモリ１２内のパスワード回路設定手段３１とアクセス権限判定・操作機能制限手段３２が、図５ではそれぞれパスワード・操作制限情報設定手段６１と利用者認証・操作機能制限手段６２に置き換わり、また図１のＰＬＣ１９内のパスワード回路２１が図５ではパスワード・操作制限情報５００に置き換わった点である。
【００６８】
図５においても上記手段６１、６２および５００を除いた手段について、図１における上記手段３１、３２および２１を除いた手段についての機能の説明が、同様に当てはまる。
【００６９】
図５のシステムメモリ１２内のパスワード・操作制限情報設定手段６１、利用者認証・操作機能制限手段６２も、システムメモリ１２に格納されたシステムプログラムに付加された本第２発明の核心となる、つまりＰＬＣ１９に対するアクセス操作の制限に関わるプログラムであり、ここでパスワード・操作制限情報設定手段６１は後述するパスワード・操作制限情報５００を疑似命令としてシーケンスプログラム内に挿入し、ＰＬＣ１９に設定するためのプログラムである。
【００７０】
また、利用者認証・操作機能制限手段６２は、詳細は後述するが、ＰＬＣ１９にアクセス操作をしようとする利用者を認証したうえ、ＰＬＣ１９から転送させたパスワード・操作制限情報５００を参照して当該の利用者が行う機能別アクセス操作（以下では操作機能ともいう）の種類を制限するプログラムである。
【００７１】
図６はパスワード・操作制限情報設定手段６１の処理によって利用者毎に許可あるいは禁止する操作機能の種類を設定する際に表示器１５に表示される画面としての利用者別操作制限機能設定画面４０の実施例を示す。
【００７２】
同図において４１は、予めこの設定手段６１を介するパスワードの設定処理（後述）によってパスワードが与えられた、本例ではｎ人の利用者としての利用者＃１、＃２、・・・、＃ｎを一覧で示す利用者一覧の画面、４２は、利用者毎に許可あるいは禁止する操作機能の種類の全てである操作機能＃１、＃２、・・、＃５、・・・（なお、これらの操作機能の符号を一般にはＦ、個別にはそれぞれＦ１、Ｆ２、・・、Ｆ５、・・・とする）を一覧で示す操作機能一覧の画面である。
【００７３】
この操作機能Ｆ（＃１としてのＦ１、＃２としてのＦ２、・・・）はそれぞれ、例えば第１発明で説明した図４のＮｏ．０１〜Ｎｏ．３２の操作機能種別に対応するものと考えてよい。なお、各操作機能ＦにはそれぞれチェックボックスＣＢが付されている。
【００７４】
この図６は、利用者＃１をアクティブ表示にして利用者＃１に対する操作制限の設定を行った例を示す。ここでは各操作機能ＦのうちチェックボックスＣＢにチェックマークを入れてオンとした操作機能（本例ではＦ１、Ｆ２、Ｆ４など）は許可し、チェックマークを入れずオフとした操作機能（本例ではＦ３、Ｆ５など）は禁止するように設定される。
【００７５】
図７はパスワード・操作制限情報設定手段６１を介するパスワード・操作制限情報５００の設定処理を示すフローチャートでＳ２１〜Ｓ２４はそのステップ番号である。
図８は図７の処理によってパスワード・操作制限情報５００を作成する際にプログラミング装置１０のシステムメモリ１２内の作業領域に展開される同情報５００の構成の実施例を示す。
【００７６】
図８において、パスワードデータ＃１、＃２、・・・、＃ｎは、それぞれ利用者＃１、＃２、・・・、＃ｎに設定されたパスワードデータである。なお、これらのパスワードデータの符号をそれぞれ５１−１、５１−２、・・・、５１−ｎとし、また一般には５１として利用者別パスワードデータと呼ぶ。
【００７７】
また、操作制限データ＃１、＃２、・・・、＃ｎは、それぞれ利用者＃１、＃２、・・・、＃ｎに設定された操作制限データである。なお、これらの操作制限データの符号をそれぞれ５２−１、５２−２、・・・、５２−ｎとし、また一般には５２として利用者別操作制限データと呼ぶ。
【００７８】
ここで、利用者＃１に設定されたパスワードデータ＃１と操作制限データ＃１の対、同じく利用者＃２に設定されたパスワードデータ＃２と操作制限データ＃２の対、以下同様に利用者＃ｎに設定されたパスワードデータ＃ｎと操作制限データ＃ｎの対を、それぞれ利用者別アクセス制限情報５０−１、５０−２、５０−ｎと呼び、また一般には利用者別アクセス制限情報５０と呼ぶ。
【００７９】
パスワード・操作制限情報５００は、このように設定された各利用者別アクセス制限情報５０−１、５０−２、・・・、５０−ｎからできる、全利用者のパスワードデータ＃１〜＃ｎとしての５１０および、全利用者の操作制限データ＃１〜＃ｎとしての５２０と、パスワード・操作制限情報５００の先頭部に付加され全利用者のパスワードデータ５１０や全利用者の操作制限データ５２０それぞれの全データサイズ等を示すヘッダ情報５０１とから構成されている。
【００８０】
なお、図８内で（ａ）として示した全利用者の操作制限データ５２０（白抜き太矢印の右側）は、この太矢印の左側の全利用者の操作制限データ５２０内の縦方向にアドレス順に並ぶ操作制限データ＃１〜＃ｎのうち代表例とした先頭部の利用者＃１の操作制限データ＃１、つまり利用者別操作制限データ５２−１の内部構成の実施例を示したものである。
【００８１】
図示のように利用者別操作制限データ５２（本例では５２−１）は、図６で述べた利用者毎の設定対象項目となる全操作機能Ｆ（Ｆ１、Ｆ２、・・・）の各操作機能に対応するビットをそれぞれ順次横に配列し、この各ビットのうち、当該利用者（この場合利用者＃１）に対しチエックボックスＣＢをオンとして許可した操作機能Ｆのビットには例えば“１”を立て、チエックボックスＣＢをオフとして禁止した操作機能Ｆのビットには“０”を立てたデータとして構成されている。
【００８２】
次に図６、８を参照しつつ図５のパスワード・操作制限情報設定手段６１を介する図７の設定処理を説明する。この処理を開始するにあたっては、予め当該のプログラミング装置１０を、新たにパスワード・操作制限情報５００を設定すべきＰＬＣ１９、または既に設定され保持しているパスワード・操作制限情報５００を更新すべきＰＬＣ１９に結合したうえ、入力装置１４からモニタを開始する旨のモニタ開始操作を行う。これによりＰＬＣ１９の動作中のシーケンスプログラムはプログラミング装置１０のシーケンスプログラムメモリ１３に読み込まれる（ＰＬＣ１９から転送コピーされる）。
【００８３】
なお本実施例でも、上記モニタ開始操作は、第１発明の実施例で説明した図４におけるＮｏ．２９の操作機能「モニタ」に対応する、いかなる利用者にも許されている、ＰＬＣ１９の動作中のシーケンスプログラムをモニタ（監視）するための操作で、このモニタ開始操作によりＰＬＣ１９からシーケンスプログラムメモリ１３へシーケンスプログラムおよびその動作データが転送コピーされ、この転送された動作データはＰＬＣ１９により常時更新される。
【００８４】
こうしてモニタ開始操作を行った状態で、入力装置１４および表示器１５を利用しながら図６の操作機能Ｆ（Ｆ１、Ｆ２、・・・）には含めていない特別な操作を行ってパスワード・操作制限情報設定手段６１を起動し、図７の処理を順次実行する。なお、図７の処理は全てこのような特別の操作によって行われる。
【００８５】
先ず、手段６１に図外のパスワード設定画面を表示させ、利用者毎に当該利用者の名前（本例では設定順に、利用者＃１、利用者＃２、・・・、利用者＃ｎとする）とその利用者に与えるパスワードとを操作入力して、利用者別パスワードデータ５１−１、５１−２、・・・、５１−ｎを生成設定させる（ステップＳ２１）。
【００８６】
次に図６の利用者別操作制限機能設定画面４０を表示させる。すると利用者一覧画面４１には利用者別パスワードデータ５１が設定された利用者の名前が順次、利用者＃１、利用者＃２、・・・、利用者＃ｎと表示され、また操作機能一覧画面４２にはチェックボックスＣＢがオフ状態の全ての操作機能Ｆ（Ｆ１、Ｆ２、・・・・）が表示される。
【００８７】
そこで、対象とする利用者を利用者一覧画面４１上で選択してアクティブとし、当該利用者に許可する操作機能ＦのチェックボックスＣＢのみをオンとして前述した当該利用者についての利用者別操作制限データ５２を設定する。そしてパスワードデータが設定されている全利用者に対しこの設定動作を繰り返す（ステップＳ２２）。
【００８８】
次に、こうしてできた全利用者の各利用者別アクセス制限情報５０からパスワード・操作制限情報５００を同情報設定手段６１に作成させる。このとき、同情報設定手段６１はパスワード・操作制限情報５００の先頭にヘッダ情報５０１を付加する（ステップＳ２３）。
【００８９】
次に、こうしてできたパスワード・操作制限情報５００を同情報設定手段６１を介しＰＬＣ１９に転送させる。このとき、同情報設定手段６１は、シーケンス制御中のＰＬＣ１９の制御動作を一時中断させ、システムメモリ１２の作業領域にあるパスワード・操作制限情報５００の前後にこの情報５００がシーケンス制御には影響しない疑似命令である旨の命令コードを付加し、シーケンスプログラムメモリ１３に読み込んであるシーケンスプログラムの先頭部に新たに、または読み込んであるシーケンスプログラムの先頭部に既に設定されていたパスワード・操作制限情報５００を更新するように挿入したうえ、この新たなシーケンスプログラムをＰＬＣ１９に転送し、その制御動作を再開させる。
【００９０】
こうして転送されたパスワード・操作制限情報５００がＰＬＣ１９に新たに、またはＰＬＣ１９内に既に設定されていた同情報５００を更新して設定されることになる（ステップＳ２４）。
【００９１】
図９は図５の利用者認証・操作機能制限手段６２、つまり、ＰＬＣ１９から転送させたパスワード・操作制限情報５００を参照してＰＬＣ１９にアクセス操作をしようとする利用者を認証したうえ、当該の利用者が行う機能別アクセス操作（操作機能）の種類を制限するプログラムの処理を示すフローチャートでステップＳ３１〜Ｓ３８はそのステップ番号である。また、図１０はこの処理において参照されるパスワード・操作制限情報５００のデータの動きを示す説明図である。
【００９２】
次に図１０を参照しつつ図９を説明する。プログラミング装置１０と接続されたＰＬＣ１９が制御対象機器を制御している状態において、プログラミング装置１０の利用者認証・操作機能制限手段６２は、先ず、入力装置１４によって利用者がオンライン操作をしようとしたか否かを判別する（ステップＳ３１）。なお、この判別も第１発明で述べた図４のＮｏ．０１の「オンライン開始」に対応する操作の有無を検出することに相当する。
【００９３】
ここで、オンライン操作を検出すると（ステップＳ３１、分岐Ｙｅｓ）、プログラミング装置１０（の手段６２）は、ＰＬＣ１９のユーザメモリに格納されているシーケンスプログラムの先頭部、つまり、パスワード・操作制限情報５００の先頭部を読み出し、ヘッダ情報５０１が設定されているか否かを調べる（ステップＳ３２）。
【００９４】
ここで、ヘッダ情報５０１が設定されていれば（ステップＳ３２、分岐Ｙｅｓ）、ステップＳ３３に進むが、ヘッダ情報５０１が設定されていなければ（つまり、同情報５０１が存在しなければ）（ステップＳ３２、分岐Ｎｏ）、ステップＳ３８に進み、当該利用者に図６の操作機能Ｆの全てを許可することとし、この全ての操作機能Ｆに関わる入力装置１４の操作が可能になるようにする。
【００９５】
他方、ステップＳ３３では、ヘッダ情報５０１に基づきＰＬＣ１９のパスワード・操作制限情報５００内の全利用者のパスワードデータ５１０および全利用者の操作制限データ５２０を読み出す。そして、このデータ５１０、５２０を基に、データ５１０に登録されている全利用者についての利用者別アクセス制限情報５０（５０−１、５０−２、・・・）を生成する。
【００９６】
次にプログラミング装置１０（の手段６２）は表示器１５の画面表示により当該の利用者にパスワードの入力を促す（ステップＳ３４）。ここで当該利用者からパスワードが入力されると、手段６２は各利用者別アクセス制限情報５０（５０−１、５０−２、・・・）中の利用者別パスワードデータ５１（５１−１、５１−２、・・・）に、当該利用者の入力パスワードと一致するものがあるか否かを検索する（ステップＳ３５）。
【００９７】
ここでパスワードに一致するものがなく、当該の入力パスワードを無効と判定した場合は（ステップＳ３５、分岐Ｎｏ）、ステップＳ３４に戻り、再度、当該利用者にパスワードの入力を促すよう指示する。
【００９８】
前記ステップＳ３５でパスワードに一致するものがあった場合は（分岐Ｙｅｓ）、当該利用者を認証し、当該利用者についての利用者別アクセス制限情報５０から利用者別操作制限データ５２を取り出す（ステップＳ３６）。
【００９９】
そして、手段６２は、当該利用者が行おうとする操作入力（機能別アクセス操作）のうち、その利用者別操作制限データ５２に設定されている、許可した操作機能Ｆに関わる操作入力は可能になり、また禁止した操作機能Ｆに関わる操作入力は不能となるようにする（ステップＳ３７）。
【符号の説明】
【０１００】
１０                  プログラミング装置
１１                  ＣＰＵ
１２                  システムメモリ
１３                  シーケンスプログラムメモリ
１４                  入力装置
１５                  表示器
１６                  入出力インタフェース（Ｉ／Ｏ）
１７，１８            共通バス
１９                  プログラマブルコントローラ（ＰＬＣ）
２０                  シーケンスプログラム
２１                  パスワード回路
２２                  レベル有効／無効データ
２３                  管理者用パスワードデータ
２４                  メンテナンスマン用パスワードデータ
２５                  左母線
２６                  右母線
３１                  パスワード回路設定手段
３２                  アクセス権限判定・操作機能制限手段
４０                  利用者別操作制限機能設定画面
４１                  利用者一覧画面
４２                  操作機能一覧画面
５０（５０−１、・・・、５０−ｎ）    利用者別アクセス制限情報
５１（５１−１、・・・、５１−ｎ）    利用者別パスワードデータ
５２（５２−１、・・・、５２−ｎ）    利用者別操作制限データ
６１                  パスワード・操作制限情報設定手段
６２                  利用者認証・操作機能制限手段
５００                パスワード・操作制限情報
５０１                ヘッダ情報
５１０                全利用者のパスワードデータ
５２０                全利用者の操作制限データ
Ｆ（Ｆ１、Ｆ２、・・・）    操作機能
ＣＢ                        チェックボックス
【図１】
2014013622.tif 000003
【図２】
2014013622.tif 000004
【図３】
2014013622.tif 000005
【図４】
2014013622.tif 000006
【図５】
2014013622.tif 000007
【図６】
2014013622.tif 000008
【図７】
2014013622.tif 000009
【図８】
2014013622.tif 000010
【図９】
2014013622.tif 000011
【図１０】
2014013622.tif 000012