(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述した従来のPLCに通常1つ設定されるパスワードには、PLCにアクセス操作をしようとする利用者の操作権限のレベル、換言すれば各種の機能別のアクセス操作のうち、当該利用者にどの種類の機能別アクセス操作までを許可あるいは禁止するか、を区別する機能は無く、いかなる利用者であってもこのパスワードを入力しさえすれば全ての機能別のオンライン操作(アクセス操作)が許可される。
【0008】
また、特許文献1のプログラマブルコントローラ・システムではパスワードが複数個使用されるが、これらのパスワードはセキュリティを設定/解除できるプログラムブロックグループを区別するためのものであり、利用者の操作権限のレベルを区別する機能は持っていない。
【0009】
このように、従来PLCに設定されるパスワードは利用者の操作権限のレベルを区別する機能を持たないため、制御対象機器を制御しているPLCにアクセス操作をしようとする利用者が、例えば、管理者、メンテナンスマン、エンドユーザ等のいずれのレベルの操作権限を持つかを判定し、その利用者の操作権限レベルに応じて、各種機能別のアクセス操作のうち許可あるいは禁止するアクセス操作の機能の種類を分けることができないという問題がある。
【0010】
なお、利用者の操作権限レベルを区別するためにパスワード設定を増やした場合でも、従来のPLCとの互換性を維持するために、利用者が所定のパスワードを入力できるか否かに応じて、当該利用者のオンライン操作を全て許可するか全て禁止するかの2者選択の機能も併用できる必要がある。
【0011】
また、従来のパスワードによるプロテクトはPLC側のシステムソフトで実現されており、利用者の操作権限レベルを区別するためにパスワード設定を増やそうとすると、PLCのシステムソフトの変更が必要となる。このためPLCが既に稼動している制御対象機器に使用されている場合には、無視できない時間、制御対象機器の稼動を停止しなければならないという問題がある。
【0012】
また最近では、前述した利用者の操作権限レベルの種類を管理者、メンテナンスマン、エンドユーザ等の限られた種類数に限定せず、さらに利用者個別の段階にまで増加させ、PLCにアクセス操作をしようとする利用者ごとに予め許可あるいは禁止する各種の機能別アクセス操作を設定できるようにすることも要望されている。
【0013】
本発明は、これらの問題を解決できるプログラマブルコントローラのプログラミング装置を提供することを課題とする。
【課題を解決するための手段】
【0014】
本発明では以下のように構成する。
シーケンスプログラムを実行して制御対象機器を制御するプログラマブルコントローラをオンライン操作するプログラミング装置であって、プログラミング装置は、ユーザによる入力操作に基づいて入力されたパスワードデータをプログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令に変換する手段と、シーケンス命令をプログラマブルコントローラの実際の制御には無関係な擬似回路としてシーケンスプログラム内に挿入する手段と、当該シーケンスプログラム内に挿入する手段により擬似回路が挿入されたシーケンスプログラムをプログラマブルコントローラに転送するように構成さ
れ、
パスワードデータはプログラマブルコントローラに対する所定の機能別アクセス操作を許可するものであり、シーケンス命令に変換する手段は、所定の機能別アクセス操作を許可する権限毎のパスワードデータをプログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令にそれぞれ変換し、シーケンスプログラム内に挿入する手段は、シーケンス命令に変換する手段が変換したそれぞれのシーケンス命令を組み合わせて擬似回路とする。
【0015】
また、シーケンスプログラムは母線を有するラダー図でプログラミングされたシーケンスプログラムであり、擬似回路は、ラダー図の母線に未接続とされることによりプログラマブルコントローラの実際の制御に無関係になる。
【0017】
また、権限レベルを有効とするか無効とするかを定めるレベル有効/無効データがさらに入力され、シーケンス命令に変換する手段は、パスワードデータに加えレベル有効/無効データもプログラマブルコントローラのデバイスアドレスに置き換えたシーケンス命令に変換
し、シーケンスプログラム内に挿入する手段は、レベル有効/無効データをデバイスアドレスに置き換えたシーケンス命令も疑似回路の中に組み合わせる。
【0018】
また、オンライン操作の際、プログラマブルコントローラに擬似回路が設定されているか否かを調べ、設定されていると判別したときはパスワードをユーザに入力させ、この入力されたパスワードとプログラマブルコントローラに設定されているパスワードとを照合してプログラマブルコントローラへの権限レベルを判定し、該レベルに応じた操作を許可するようにプログラミング装置を構成してもよい。
【0019】
また、プログラマブルコントローラに擬似回路が設定されているか否かを調べた際、該擬似回路が設定されていないと判別したときは、プログラマブルコントローラに対する全ての操作を許可するようにプログラミング装置を構成してもよい。
【0020】
また、プログラミング装置により転送された擬似回路を含むシーケンスプログラムを保持する記憶手段を有し、当該記憶手段に保持されたシーケンスプログラムに含まれる擬似回路を実行しないようにプログラマブルコントローラを構成する。
【発明の効果】
【0021】
本発明によれば、プログラミング装置のシステムプログラムにパスワード回路設定手段31、アクセス権限判定・操作機能制限手段32等のソフトウェア手段を付加することにより、制御対象機器を制御するPLCにプログラミング装置を介してアクセス操作をしようとする利用者が、例えば、管理者、メンテナンスマン、エンドユーザ等のいずれのレベルの操作権限を持つかを判定し、判定した操作権限レベルに応じて当該利用者に禁止、あるいは許可する機能別アクセス操作の種類を制限できるようにしたので、
例えば、メンテナンスマンやエンドユーザの操作ミスによる制御対象機器の誤動作や、PLC内のシーケンスプログラムデータの不正コピーなどを防止することができ、制御対象機器を含むシステム全体のセキュリティを向上することができる。
【0022】
また、プログラミング装置のシステムプログラムにソフトウェア手段であるパスワード・操作制限情報設定手段61と利用者認証・操作機能制限手段62を付加し、この設定手段61を介し予めPLCの利用者ごとに当該利用者を認証するためのパスワードと当該利用者に許可あるいは禁止する機能別アクセス操作の種類を設定して、これらの設定情報からなるパスワード・操作制限情報500をPLCに格納して置き、実際に制御対象機器を制御するPLCに利用者がアクセス操作をしようとする際、前記利用者認証・操作機能制限手段62がPLC内のパスワード・操作制限情報500を参照して当該利用者が行う機能別アクセス操作の種類を制限できるようにしたので、利用者それぞれのPLCの操作能力を最大限に生かすことができ、PLCの利用効率を高めることができる。
【発明を実施するための形態】
【0024】
(実施の形態1)
先ず
図1ないし
図4を参照して本発明の実施の形態1としての請求項1ないし6に関わる第1発明の実施例を説明する。
図1は第1発明の一実施例としてのプログラミング装置およびこれと接続されたPLCを含むシステムの構成図である。同図において10はプログラミング装置、19はプログラミング装置10と共通バス18を介して接続されたプログラマブルコントローラ(PLC)である。なお、本実施例ではPLC19は自身に接続された図外の制御対象機器をシーケンス制御できるものとする。
【0025】
プログラミング装置10内では、中央演算処理装置(CPU)11、システムメモリ12、シーケンスプログラムメモリ13、図外のキーボードおよびマウスからなる入力装置14、表示器15が共通バス17に接続され、さらに共通バス17が入出力インタフェース(I/Oとも略記する)16を介して前記の共通バス18に接続されている。
【0026】
CPU11はシステムメモリ12に格納されたシステムプログラムを実行する。このシステムプログラムは、シーケンスプログラムの表示、編集、転送処理に関わるプログラムのほか、本実施例では後述の
図4に示す、例えばPLCの運転/停止(No.26)、PLCの情報表示(No.14)等といった各種のアクセス操作(オンライン操作)をPLC19に行えるようにするプログラムを含んでいる。
【0027】
システムメモリ12は、CPU11が実行する上記システムプログラムを格納する領域であるが、CPU11の演算に用いるデータ、表示器15に表示するデータ、編集中のシーケンスプログラム等を記憶する作業領域も備えている。
【0028】
システムメモリ12内に示すパスワード回路設定手段31、アクセス権限判定・操作機能制限手段32はシステムプログラムに付加された本発明の核心となる、つまりPLC19に対するアクセス操作の制限に関わるプログラムであり、ここで、パスワード回路設定手段31は後述するパスワード回路21を疑似回路としてシーケンスプログラム内に挿入し、PLC19に設定するためのプログラムである。
【0029】
また、アクセス権限判定・操作機能制限手段32は、詳細は後述するが、PLC19にアクセス操作をしようとする利用者(操作者)の操作権限の有無や操作権限のレベルを判定し、この判定結果に応じて各種の操作機能(操作の働き)のうち、当該の操作者に許可する操作機能の種類を制限するプログラムである。
【0030】
シーケンスプログラムメモリ13は、PLC19に転送格納すべき、あるいはPLC19から読み出したシーケンスプログラムを一時的に格納する。また入力装置14からは、ユーザによるCPU11に対する動作指示、シーケンスプログラムを構成するシーケンス命令などの入力や、
図4(後述)に示すようなPLC19に対する各種の機能別アクセス操作の入力が可能である。
【0031】
表示器15は、一般に入力装置14による各種の操作に必要な内容や、操作によって要求された内容を表示し、シーケンスプログラム作成モードにおいてはシーケンスプログラムをラダー図等のプログラミング言語形態で表示する。また入出力インタフェース16は、共通バス17と18とを結合する役割を持つ。
【0032】
図2は、第1発明の一実施例としてのラダー図で表現されたパスワード回路21を含むシーケンスプログラムの先頭部分の構成を示す。本実施例では
図4で後述するように利用者のPLC19に対するアクセス権限のレベルを、管理者権限A、メンテナンスマン権限B、エンドユーザ権限Cの3つに分けることとし、パスワードとしては管理者用パスワードとメンテナンスマン用パスワードとの2つを用いるものとする。
【0033】
そして、管理者用パスワードデータ23、メンテナンスマン用パスワードデータ24、レベル有効/無効データ22からなる疑似回路(つまりシーケンスプログラム内に回路の形で置かれるが、実際のシーケンス制御には無関係となる回路)としてのパスワード回路21を
図2の破線部のようにシーケンスプログラムの先頭に挿入してPLC19に設定するようにする。
【0034】
なお、レベル有効/無効データ22は、従来のPLCと互換性を保つためにアクセス権限のレベル分けを無効にすることもできるようにするためのもので、このレベル有効/無効データ22を「無効」に設定したときは、パスワードは1つだけ(本実施例では管理者用パスワードデータ23のみ)を利用するものとする。
【0035】
このようなパスワード回路21をPLC19に設定するには、予めPLC19にパスワード回路21が設定されていない状態において、入力装置14からモニタを開始する旨のモニタ開始操作を行う。これによりPLC19の動作中のシーケンスプログラムはプログラミング装置10のシーケンスプログラムメモリ13に読み込まれる(言い換えれば、PLC19にそのシーケンスプログラムをシーケンスプログラムメモリ13へ転送コピーさせる)。
【0036】
なお本実施例では、上記モニタ開始操作は、後述する
図4におけるNo.29の操作機能「モニタ」に対応する、利用者の操作権限レベルに無関係に許されている、PLC19の動作中のシーケンスプログラムをモニタ(監視)するための操作で、このモニタ開始操作によりPLC19からシーケンスプログラムメモリ13へシーケンスプログラムおよびその動作データが転送コピーされ、この転送された動作データはPLC19により常時更新される。
【0037】
こうしてモニタ開始操作を行った状態で、
図1で述べたパスワード回路設定手段31を起動し、入力装置14および表示器15を利用しながらプログラミング装置10に管理者用パスワード23、メンテナンスマン用パスワード24を入力すると共にレベル有効/無効データ22をその時のPLC19の利用条件に合わせ、「有効」または「無効」として入力する。
【0038】
すると、プログラミング装置10のパスワード回路設定手段31は先ず、管理者用パスワードデータ23、メンテナンスマン用パスワードデータ24及びレベル有効/無効データ22をそれぞれデバイスアドレスに置き換えシーケンス命令へ変換する。
【0039】
この変換されたパスワード回路に関わる命令は、ラダー図で表示された実際に作動するシーケンスプログラムを正しく認識できるように表示器15には表示されないが、シーケンスプログラム内の命令文としては、
図2に点線で示すようにレベル有効/無効データ22、管理者用パスワード23、メンテナンスマン用パスワード24を含み、且つ左母線25及び右母線26には接続しないパスワード回路21としてプログラミング装置10のシステムメモリ12内のパスワード回路データ作成用作業領域に置かれる。
【0040】
次に入力装置14により転送を指示する操作が行われると、パスワード回路設定手段31は、シーケンス制御中のPLC19の制御動作を一時中断させ、システムメモリ12内の上記パスワード回路データ作成用作業領域にあるパスワード回路データを、シーケンスプログラムメモリ13に読み込んだシーケンスプログラムの先頭へ挿入したうえ、この新たなシーケンスプログラムをPLC19へ転送し、その制御動作を再開させる。こうしてパスワード回路21がPLC19に設定されることになる。
【0041】
前記のようにこのパスワード回路21は左母線25及び右母線26とは接続されないので、PLC19の実制御動作に関わるシーケンスプログラムとしての実行は行われず他のプログラムへ影響を与えない。また、このようにパスワード回路21が設定されたPLC19のシーケンスプログラムをプログラミング装置10でモニタする場合、実際に作動しているシーケンスプログラムを正しく認識できるようにパスワード回路21の表示器15への表示は行わない。
【0042】
図3は、プログラミング装置10、従って
図1で述べたアクセス権限判定・操作機能制限手段32が利用者のアクセス権限を判定する処理手順の一実施例を示すフローチャートで、S1〜S12はそのステップ番号である。
【0043】
また
図4は、第1発明の一実施例としての操作者のアクセス権限のレベルの種別と、アクセス制限する操作機能の種別との関係を一覧にして対比したもので、同図ではアクセス権限を横方向に、管理者権限A、メンテナンスマン権限B、エンドユーザ権限Cの3レベルとし、また操作機能の種別を縦方向にNo.01のオンライン開始からNo.32のパスワード一括解除までの32種類として、各アクセス権限レベル別に操作を可能とする操作機能を○印、操作を不可とする操作機能を×印でそれぞれ示している。
【0044】
なお、
図4では管理者権限Aには全ての操作機能に関わる操作を可能としているが、メンテナンスマン権限Bには一部の操作機能、本例ではNo.13のシステム定義、No.28のPLC機種変更、No.30の管理者権限パスワード変更、No.32のパスワード一括解除に関わる操作を不可としている。またエンドユーザ権限CにはPLCの制御動作に影響を与えない操作機能に関わる操作のみを可能としている。
【0045】
次に
図4を参照しつつ
図3を説明する。当該PLC19の利用条件に応じて上述のようにパスワード回路21が設定され、プログラミング装置10と接続されたPLC19が制御対象機器を制御している状態において、プログラミング装置10のアクセス権限判定・操作機能制限手段32は、先ず、入力装置14によって操作者がオンライン操作をしようとしたか否かを判別する(ステップS1)。なお、この判別は
図4のNo.01の「オンライン開始」に対応する操作の有無を検出することとなる。
【0046】
そして、前記「オンライン開始」の操作を検出すると(ステップS1、分岐Yes)、プログラミング装置10(の手段32)はPLC19にパスワード回路21が設定されているか否かを判別する(ステップS2)。
【0047】
ここで、パスワード回路21が設定されていない場合は(ステップS2、分岐No)、どの操作者にも
図4に示す全ての操作機能を許可するものとし、本例では当該の操作者のアクセス権限を管理者権限と判定したことと同等とする(ステップS12)。
【0048】
他方、前記のステップS2でパスワード回路21が設定されている場合は(分岐Yes)、プログラミング装置10(の手段32)は表示器15を介して当該の操作者にパスワードの入力を促す。
【0049】
そしてパスワードが入力されると(ステップS3)、パスワード回路21におけるレベル有効/無効データ22が「有効」と設定されているか否かをしらべる(ステップS4)。
【0050】
ここで「有効」と設定されていない場合は(ステップS4、分岐No)、さらにステップS3で入力されたパスワードがパスワード回路21における管理者用パスワード23と同じか否かを調べる(ステップS10)。
【0051】
ここで、入力されたパスワードが管理者用パスワード23と同じであれば、(ステップS10、分岐Yes)、当該の操作者のアクセス権限を管理者権限と判定するが(ステップS12)、入力パスワードが管理者用パスワード23と同じでなければ(ステップS10、分岐No)、当該操作者のアクセス権限の認証を失敗したとする(ステップS11)。
【0052】
他方、前記ステップS4でレベル有効/無効データ22が「有効」と設定されている場合は(分岐Yes)、入力パスワードがパスワード回路21におけるメンテナンスマン用パスワード24と同じか否かを調べる(ステップS5)。
【0053】
ここで、入力パスワードがメンテナンスマン用パスワード24と同じであれば、(ステップS5、分岐Yes)、当該操作者のアクセス権限をメンテナンスマン権限と判定するが(ステップS9)、他方、入力パスワードがメンテナンスマン用パスワード24と同じでなければ(ステップS5、分岐No)、さらに入力パスワードが管理者用パスワード23と同じか否かを調べる(ステップS6)。
【0054】
ここで、入力パスワードが管理者用パスワード23と同じであれば、(ステップS6、分岐Yes)、当該操作者のアクセス権限を管理者権限と判定するが(ステップS12)、他方、入力パスワードが管理者用パスワード23と同じでなければ(ステップS6、分岐No)、さらに入力パスワードが空白であるか否かを調べる(ステップS7)。
【0055】
ここで、入力パスワードが空白でなければ(ステップS7、分岐No)、当該操作者のアクセス権限の認証を失敗したとし(ステップS11)、他方、入力パスワードが空白であれば(ステップS7、分岐Yes)、当該操作者のアクセス権限をエンドユーザ権限と判定する(ステップS8)。
【0056】
以上の判定処理の結果、プログラミング装置10のアクセス権限判定・操作機能制限手段32は、アクセス権限を認証した操作者には、
図4のように該当する権限レベルで許可した操作機能に関わるPLC19へのアクセス操作を許可する。しかし上記判定処理で認証を失敗したときは再度
図3の処理を繰り返す。
【0057】
なお、本実施例では
図3の処理によって管理者権限Aを持つと判定された利用者は
図4に示すようにNo.30の「管理者権限パスワード変更」およびNo.31の「メンテナンスマン権限パスワード変更」の操作が許可され、同様にメンテナンスマン権限Bを持つと判定された利用者はNo.31の「メンテナンスマン権限パスワード変更」の操作が許可される。
【0058】
本実施例ではこのようなパスワード変更操作を行うにあたっては、もしその時点で、前述のパスワード新規設定時に行われたモニタ開始操作が有効な(つまり、PLC19のシーケンスプログラムの動作データのモニタが継続されている)状態でなければ、改めてモニタ開始操作を行ってPLC19の動作中のシーケンスプログラムをプログラミング装置10のシーケンスプログラムメモリ13に読み込んだうえ、上記パスワード変更操作を行う。
【0059】
すると
図1のパスワード回路設定手段31は、シーケンスプログラムメモリ13に読み込まれたシーケンスプログラム内に設定されている従来のパスワード回路21をプログラミング装置10のシステムメモリ12内のパスワード回路データ作成用作業領域に転送する。
【0060】
続いてパスワード回路設定手段31は、管理者権限のもとで操作入力された新たな管理者用パスワードデータ23およびメンテナンスマン用パスワードデータ24、またはメンテナンスマン権限のもとで操作入力された新たなメンテナンスマン用パスワードデータ24によって、システムメモリ12内のパスワード回路データ作成用作業領域に転送された従来のパスワード回路21内の管理者用パスワードデータ23およびメンテナンスマン用パスワードデータ24、またはメンテナンスマン用パスワードデータ24をそれぞれ書き換える。
【0061】
そして、この書き換えた新たなパスワード回路21でシーケンスプログラムメモリ13内のシーケンスプログラム内の従来のパスワード回路21を置き換え、この新たなシーケンスプログラムをPLC19に転送してそのシーケンス制御を再開させる。
【0062】
また、管理者権限Aを持つと判定された利用者は、
図4に示すようにさらにNo.32の「パスワード一括解除」の操作が許可される。この操作を行うにあたっても上記したパスワード変更操作の場合と同様に、予め必要に応じモニタ開始操作を行ってPLC19のシーケンスプログラムをプログラミング装置10のシーケンスプログラムメモリ13に読み込んで置く。
【0063】
この状態で管理者権限のもとにパスワード一括解除の操作が行われると、パスワード回路設定手段31は、シーケンスプログラムメモリ13に読み込まれたシーケンスプログラムの先頭に設定されているパスワード回路21を一括削除する。そして、パスワード回路21を削除した新たなシーケンスプログラムをPLC19に転送してそのシーケンス制御を再開させる。
【0064】
(実施の形態2)
ところで、上述した第1発明の実施例ではPLCに対する当該の利用者に許可あるいは禁止する機能別アクセス操作の種類の組合わせ(便宜上、操作制限パターンと呼ぶ)を管理者、メンテナンスマン、エンドユーザの3つに限られた操作権限レベルの別に区分している。
【0065】
しかし、PLCを利用する組織によっては、例えばエンドユーザであってもデータメモリの値を変更できる能力を持ち、且つ業務上もこの能力を生かすことが望まれる者があるとか、メンテナンスマンであってもプログラムを変更できる能力の不十分な者があるというように、利用者のPLC操作上の能力に様々な段階がある。
【0066】
このため最近では、前記操作制限パターンをユーザ毎に設定できるようにする(換言すれば前記操作権限レベルの種類を3つといった限られた種類数から利用者個別の段階にまで増加させる)ことが要望されるようになった。
【0067】
次に
図5ないし
図10を参照して、このような要望を満たす機能を備えた本発明の実施の形態2としての、請求項7ないし13に関わる第2発明の実施例を説明する。
図5は第2発明の一実施例としてのプログラミング装置およびこれと接続されたPLCを含むシステムの構成図で
図1に対応するものである。
図5の
図1と異なるところは、
図1におけるプログラミング装置10のシステムメモリ12内のパスワード回路設定手段31とアクセス権限判定・操作機能制限手段32が、
図5ではそれぞれパスワード・操作制限情報設定手段61と利用者認証・操作機能制限手段62に置き換わり、また
図1のPLC19内のパスワード回路21が
図5ではパスワード・操作制限情報500に置き換わった点である。
【0068】
図5においても上記手段61、62および500を除いた手段について、
図1における上記手段31、32および21を除いた手段についての機能の説明が、同様に当てはまる。
【0069】
図5のシステムメモリ12内のパスワード・操作制限情報設定手段61、利用者認証・操作機能制限手段62も、システムメモリ12に格納されたシステムプログラムに付加された本第2発明の核心となる、つまりPLC19に対するアクセス操作の制限に関わるプログラムであり、ここでパスワード・操作制限情報設定手段61は後述するパスワード・操作制限情報500を疑似命令としてシーケンスプログラム内に挿入し、PLC19に設定するためのプログラムである。
【0070】
また、利用者認証・操作機能制限手段62は、詳細は後述するが、PLC19にアクセス操作をしようとする利用者を認証したうえ、PLC19から転送させたパスワード・操作制限情報500を参照して当該の利用者が行う機能別アクセス操作(以下では操作機能ともいう)の種類を制限するプログラムである。
【0071】
図6はパスワード・操作制限情報設定手段61の処理によって利用者毎に許可あるいは禁止する操作機能の種類を設定する際に表示器15に表示される画面としての利用者別操作制限機能設定画面40の実施例を示す。
【0072】
同図において41は、予めこの設定手段61を介するパスワードの設定処理(後述)によってパスワードが与えられた、本例ではn人の利用者としての利用者#1、#2、・・・、#nを一覧で示す利用者一覧の画面、42は、利用者毎に許可あるいは禁止する操作機能の種類の全てである操作機能#1、#2、・・、#5、・・・(なお、これらの操作機能の符号を一般にはF、個別にはそれぞれF1、F2、・・、F5、・・・とする)を一覧で示す操作機能一覧の画面である。
【0073】
この操作機能F(#1としてのF1、#2としてのF2、・・・)はそれぞれ、例えば第1発明で説明した
図4のNo.01〜No.32の操作機能種別に対応するものと考えてよい。なお、各操作機能FにはそれぞれチェックボックスCBが付されている。
【0074】
この
図6は、利用者#1をアクティブ表示にして利用者#1に対する操作制限の設定を行った例を示す。ここでは各操作機能FのうちチェックボックスCBにチェックマークを入れてオンとした操作機能(本例ではF1、F2、F4など)は許可し、チェックマークを入れずオフとした操作機能(本例ではF3、F5など)は禁止するように設定される。
【0075】
図7はパスワード・操作制限情報設定手段61を介するパスワード・操作制限情報500の設定処理を示すフローチャートでS21〜S24はそのステップ番号である。
図8は
図7の処理によってパスワード・操作制限情報500を作成する際にプログラミング装置10のシステムメモリ12内の作業領域に展開される同情報500の構成の実施例を示す。
【0076】
図8において、パスワードデータ#1、#2、・・・、#nは、それぞれ利用者#1、#2、・・・、#nに設定されたパスワードデータである。なお、これらのパスワードデータの符号をそれぞれ51−1、51−2、・・・、51−nとし、また一般には51として利用者別パスワードデータと呼ぶ。
【0077】
また、操作制限データ#1、#2、・・・、#nは、それぞれ利用者#1、#2、・・・、#nに設定された操作制限データである。なお、これらの操作制限データの符号をそれぞれ52−1、52−2、・・・、52−nとし、また一般には52として利用者別操作制限データと呼ぶ。
【0078】
ここで、利用者#1に設定されたパスワードデータ#1と操作制限データ#1の対、同じく利用者#2に設定されたパスワードデータ#2と操作制限データ#2の対、以下同様に利用者#nに設定されたパスワードデータ#nと操作制限データ#nの対を、それぞれ利用者別アクセス制限情報50−1、50−2、50−nと呼び、また一般には利用者別アクセス制限情報50と呼ぶ。
【0079】
パスワード・操作制限情報500は、このように設定された各利用者別アクセス制限情報50−1、50−2、・・・、50−nからできる、全利用者のパスワードデータ#1〜#nとしての510および、全利用者の操作制限データ#1〜#nとしての520と、パスワード・操作制限情報500の先頭部に付加され全利用者のパスワードデータ510や全利用者の操作制限データ520それぞれの全データサイズ等を示すヘッダ情報501とから構成されている。
【0080】
なお、
図8内で(a)として示した全利用者の操作制限データ520(白抜き太矢印の右側)は、この太矢印の左側の全利用者の操作制限データ520内の縦方向にアドレス順に並ぶ操作制限データ#1〜#nのうち代表例とした先頭部の利用者#1の操作制限データ#1、つまり利用者別操作制限データ52−1の内部構成の実施例を示したものである。
【0081】
図示のように利用者別操作制限データ52(本例では52−1)は、
図6で述べた利用者毎の設定対象項目となる全操作機能F(F1、F2、・・・)の各操作機能に対応するビットをそれぞれ順次横に配列し、この各ビットのうち、当該利用者(この場合利用者#1)に対しチエックボックスCBをオンとして許可した操作機能Fのビットには例えば“1”を立て、チエックボックスCBをオフとして禁止した操作機能Fのビットには“0”を立てたデータとして構成されている。
【0082】
次に
図6、8を参照しつつ
図5のパスワード・操作制限情報設定手段61を介する
図7の設定処理を説明する。この処理を開始するにあたっては、予め当該のプログラミング装置10を、新たにパスワード・操作制限情報500を設定すべきPLC19、または既に設定され保持しているパスワード・操作制限情報500を更新すべきPLC19に結合したうえ、入力装置14からモニタを開始する旨のモニタ開始操作を行う。これによりPLC19の動作中のシーケンスプログラムはプログラミング装置10のシーケンスプログラムメモリ13に読み込まれる(PLC19から転送コピーされる)。
【0083】
なお本実施例でも、上記モニタ開始操作は、第1発明の実施例で説明した
図4におけるNo.29の操作機能「モニタ」に対応する、いかなる利用者にも許されている、PLC19の動作中のシーケンスプログラムをモニタ(監視)するための操作で、このモニタ開始操作によりPLC19からシーケンスプログラムメモリ13へシーケンスプログラムおよびその動作データが転送コピーされ、この転送された動作データはPLC19により常時更新される。
【0084】
こうしてモニタ開始操作を行った状態で、入力装置14および表示器15を利用しながら
図6の操作機能F(F1、F2、・・・)には含めていない特別な操作を行ってパスワード・操作制限情報設定手段61を起動し、
図7の処理を順次実行する。なお、
図7の処理は全てこのような特別の操作によって行われる。
【0085】
先ず、手段61に図外のパスワード設定画面を表示させ、利用者毎に当該利用者の名前(本例では設定順に、利用者#1、利用者#2、・・・、利用者#nとする)とその利用者に与えるパスワードとを操作入力して、利用者別パスワードデータ51−1、51−2、・・・、51−nを生成設定させる(ステップS21)。
【0086】
次に
図6の利用者別操作制限機能設定画面40を表示させる。すると利用者一覧画面41には利用者別パスワードデータ51が設定された利用者の名前が順次、利用者#1、利用者#2、・・・、利用者#nと表示され、また操作機能一覧画面42にはチェックボックスCBがオフ状態の全ての操作機能F(F1、F2、・・・・)が表示される。
【0087】
そこで、対象とする利用者を利用者一覧画面41上で選択してアクティブとし、当該利用者に許可する操作機能FのチェックボックスCBのみをオンとして前述した当該利用者についての利用者別操作制限データ52を設定する。そしてパスワードデータが設定されている全利用者に対しこの設定動作を繰り返す(ステップS22)。
【0088】
次に、こうしてできた全利用者の各利用者別アクセス制限情報50からパスワード・操作制限情報500を同情報設定手段61に作成させる。このとき、同情報設定手段61はパスワード・操作制限情報500の先頭にヘッダ情報501を付加する(ステップS23)。
【0089】
次に、こうしてできたパスワード・操作制限情報500を同情報設定手段61を介しPLC19に転送させる。このとき、同情報設定手段61は、シーケンス制御中のPLC19の制御動作を一時中断させ、システムメモリ12の作業領域にあるパスワード・操作制限情報500の前後にこの情報500がシーケンス制御には影響しない疑似命令である旨の命令コードを付加し、シーケンスプログラムメモリ13に読み込んであるシーケンスプログラムの先頭部に新たに、または読み込んであるシーケンスプログラムの先頭部に既に設定されていたパスワード・操作制限情報500を更新するように挿入したうえ、この新たなシーケンスプログラムをPLC19に転送し、その制御動作を再開させる。
【0090】
こうして転送されたパスワード・操作制限情報500がPLC19に新たに、またはPLC19内に既に設定されていた同情報500を更新して設定されることになる(ステップS24)。
【0091】
図9は
図5の利用者認証・操作機能制限手段62、つまり、PLC19から転送させたパスワード・操作制限情報500を参照してPLC19にアクセス操作をしようとする利用者を認証したうえ、当該の利用者が行う機能別アクセス操作(操作機能)の種類を制限するプログラムの処理を示すフローチャートでステップS31〜S38はそのステップ番号である。また、
図10はこの処理において参照されるパスワード・操作制限情報500のデータの動きを示す説明図である。
【0092】
次に
図10を参照しつつ
図9を説明する。プログラミング装置10と接続されたPLC19が制御対象機器を制御している状態において、プログラミング装置10の利用者認証・操作機能制限手段62は、先ず、入力装置14によって利用者がオンライン操作をしようとしたか否かを判別する(ステップS31)。なお、この判別も第1発明で述べた
図4のNo.01の「オンライン開始」に対応する操作の有無を検出することに相当する。
【0093】
ここで、オンライン操作を検出すると(ステップS31、分岐Yes)、プログラミング装置10(の手段62)は、PLC19のユーザメモリに格納されているシーケンスプログラムの先頭部、つまり、パスワード・操作制限情報500の先頭部を読み出し、ヘッダ情報501が設定されているか否かを調べる(ステップS32)。
【0094】
ここで、ヘッダ情報501が設定されていれば(ステップS32、分岐Yes)、ステップS33に進むが、ヘッダ情報501が設定されていなければ(つまり、同情報501が存在しなければ)(ステップS32、分岐No)、ステップS38に進み、当該利用者に
図6の操作機能Fの全てを許可することとし、この全ての操作機能Fに関わる入力装置14の操作が可能になるようにする。
【0095】
他方、ステップS33では、ヘッダ情報501に基づきPLC19のパスワード・操作制限情報500内の全利用者のパスワードデータ510および全利用者の操作制限データ520を読み出す。そして、このデータ510、520を基に、データ510に登録されている全利用者についての利用者別アクセス制限情報50(50−1、50−2、・・・)を生成する。
【0096】
次にプログラミング装置10(の手段62)は表示器15の画面表示により当該の利用者にパスワードの入力を促す(ステップS34)。ここで当該利用者からパスワードが入力されると、手段62は各利用者別アクセス制限情報50(50−1、50−2、・・・)中の利用者別パスワードデータ51(51−1、51−2、・・・)に、当該利用者の入力パスワードと一致するものがあるか否かを検索する(ステップS35)。
【0097】
ここでパスワードに一致するものがなく、当該の入力パスワードを無効と判定した場合は(ステップS35、分岐No)、ステップS34に戻り、再度、当該利用者にパスワードの入力を促すよう指示する。
【0098】
前記ステップS35でパスワードに一致するものがあった場合は(分岐Yes)、当該利用者を認証し、当該利用者についての利用者別アクセス制限情報50から利用者別操作制限データ52を取り出す(ステップS36)。
【0099】
そして、手段62は、当該利用者が行おうとする操作入力(機能別アクセス操作)のうち、その利用者別操作制限データ52に設定されている、許可した操作機能Fに関わる操作入力は可能になり、また禁止した操作機能Fに関わる操作入力は不能となるようにする(ステップS37)。