(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6138636
(24)【登録日】2017年5月12日
(45)【発行日】2017年5月31日
(54)【発明の名称】プログラマブルコントローラ、プログラミング装置、およびそれらのシステム
(51)【国際特許分類】
G05B 19/05 20060101AFI20170522BHJP
【FI】
G05B19/05 A
【請求項の数】6
【全頁数】10
(21)【出願番号】特願2013-182172(P2013-182172)
(22)【出願日】2013年9月3日
(65)【公開番号】特開2015-49788(P2015-49788A)
(43)【公開日】2015年3月16日
【審査請求日】2016年1月18日
(73)【特許権者】
【識別番号】502129933
【氏名又は名称】株式会社日立産機システム
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜特許業務法人
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール特許業務法人
(72)【発明者】
【氏名】加藤 淳一
【審査官】
黒田 暁子
(56)【参考文献】
【文献】
特開平03−290744(JP,A)
【文献】
特開平10−228303(JP,A)
【文献】
特開2007−079651(JP,A)
【文献】
特開2003−157104(JP,A)
【文献】
米国特許第06336585(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/04 − 19/05
(57)【特許請求の範囲】
【請求項1】
制御対象である機器の制御手順を示すシーケンスプログラムを格納する書き換え可能なシーケンスプログラムメモリと、該シーケンスプログラムメモリに格納されたシーケンスプログラムに従って機器を制御するマイクロプロセッサユニットと、前記シーケンスプログラムメモリに格納されるシーケンスプログラムへのアクセスを行うためにプログラミング装置と接続されるプログラミング装置インタフェースとを備えるプログラマブルコントローラであって、
前記マイクロプロセッサユニットは、前記プログラミング装置からの前記シーケンスプログラムの読み出し要求に対して、前記プログラミング装置に対して前記シーケンスプログラムのバックアップデータの有無を要求し、前記プログラミング装置から指定されたバックアップデータと前記格納しているシーケンスプログラムとの照合を行ない、該照合の結果一致した場合に、前記シーケンスプログラムを前記プログラミング装置へ送信することを特徴とするプログラマブルコントローラ。
【請求項2】
制御対象である機器の制御手順を示すシーケンスプログラムを格納する書き換え可能なシーケンスプログラムメモリと、該シーケンスプログラムメモリに格納されたシーケンスプログラムに従って機器を制御するマイクロプロセッサユニットと、前記シーケンスプログラムメモリに格納されるシーケンスプログラムへのアクセスを行うためにプログラミング装置と接続されるプログラミング装置インタフェースとを備えるプログラマブルコントローラであって、
前記マイクロプロセッサユニットは、前記プログラミング装置からの前記シーケンスプログラムの読み出し要求に対して、前記プログラミング装置に対して前記シーケンスプログラムの一部分の範囲の入力を要求し、前記プログラミング装置から入力された一部分のシーケンスプログラムと前記格納しているシーケンスプログラムとの照合を行ない、該照合の結果一致した場合に、前記シーケンスプログラムを前記プログラミング装置へ送信することを特徴とするプログラマブルコントローラ。
【請求項3】
請求項2記載のプログラマブルコントローラであって、
前記プログラミング装置に対して前記シーケンスプログラムの一部分の範囲の入力を要求する際に、その要求範囲の位置または数を要求毎にランダムに変更することを特徴とするプログラマブルコントローラ。
【請求項4】
シーケンスプログラムに従って機器を制御するプログラマブルコントローラに対して、前記シーケンスプログラムへのアクセスを行うために接続されるプログラミング装置であって、
前記プログラマブルコントローラへの前記シーケンスプログラムの読み出し要求に対して、前記プログラマブルコントローラから前記シーケンスプログラムのバックアップデータの要求または前記シーケンスプログラムの内容の一部の入力要求があった際に、前記要求されたバックアップデータの指定またはシーケンスプログラムの内容の一部の送信を行い、
該指定されたバックアップデータまたは送信された一部分のシーケンスプログラムと前記シーケンスプログラムとの照合結果が一致した場合に前記シーケンスプログラムを受信し、不一致の場合に認証失敗のメッセージを表示することを特徴とするプログラミング装置。
【請求項5】
シーケンスプログラムに従って機器を制御するプログラマブルコントローラと、該シーケンスプログラムのアクセスを行うために接続されるプログラミング装置とからなるプログラマブルコントローラシステムであって、
前記プログラミング装置からの前記プログラマブルコントローラへの前記シーケンスプログラムの読み出し要求に対して、
前記プログラマブルコントローラは、前記シーケンスプログラムのバックアップデータの要求または前記シーケンスプログラムの内容の一部の入力要求を行い、
前記プログラミング装置は、前記プログラマブルコントローラに対して、前記要求されたバックアップデータの指定またはシーケンスプログラムの内容の一部の送信を行い、
前記プログラマブルコントローラは、該指定されたバックアップデータまたは送信された一部のシーケンスプログラムと前記シーケンスプログラムとの照合を行い、前記プログラミング装置へ、照合結果が一致した場合には前記シーケンスプログラムを送信し、不一致の場合には照合失敗の結果を送信することを特徴とするプログラマブルコントローラシステム。
【請求項6】
シーケンスプログラムに従って機器を制御するプログラマブルコントローラと、該プログラマブルコントローラに接続され前記シーケンスプログラムへのアクセスを行うプログラミング装置とからなるシステムにおけるシーケンスプログラムへのアクセス保護を行うユーザ認証方法であって、
前記シーケンスプログラムへのアクセス要求に対して、
前記シーケンスプログラムのバックアップデータの要求または前記シーケンスプログラムの内容の一部の入力要求を行い、
指定されたバックアップデータまたは受信したシーケンスプログラムの内容の一部と前記シーケンスプログラムとの照合を行い、
照合結果が一致した場合に前記シーケンスプログラムへのアクセスを許可することを特徴とするユーザ認証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シーケンスプログラムに従って機器を制御するプログラマブルコントローラに関し、特にプログラマブルコントローラのシーケンスプログラム保護に関する。
【背景技術】
【0002】
一般的なプログラマブルコントローラは、制御対象となる機器の制御手順を示すシーケンスプログラムを格納するシーケンスプログラムメモリと、シーケンスプログラムを実行して機器の制御を行うMPUと、シーケンスプログラムメモリの内容変更を主目的としたプログラミング装置インタフェースを備えている。
【0003】
プログラマブルコントローラにて演算処理されるシーケンスプログラムには、制御対象となる設備の制御に関するノウハウおよび、プログラミングテクニックなどの貴重な情報が凝縮されている。一般に、シーケンスプログラムは、プログラマブルコントローラメーカ各社が提供するプログラミング装置にて入力される。
【0004】
このプログラミング装置は、パソコン用のアプリケーションソフトウェアという形態で提供されるのが一般的であり、このソフトウェアの入手は極めて容易である。
【0005】
プログラミング装置とシーケンスプログラムが格納されたプログラマブルコントローラ間を専用、あるいは汎用の通信用ケーブルで接続し、プログラミング装置から所定の操作をすることで誰もが簡単にプログラマブルコントローラに格納されたシーケンスプログラムを閲覧できたり、閲覧したシーケンスプログラムをデータとしてパソコンへ保存したりすることが可能である。
【0006】
前記のようにプログラミング装置の入手が容易であるために、機材さえ揃えれば比較的容易にプログラマブルコントローラに格納されたシーケンスプログラムを閲覧、入手することが可能である。そのため、悪意を持った作業者が、不当にシーケンスプログラムを入手することが可能であり、その結果、制御対象の設備や機器を容易に複製されてしまう事象が発生している。このため、制御設備や制御機器を開発しているメーカでは、シーケンスプログラムの流出を防ぐ対策が必要になる。
【0007】
このようなシーケンスプログラムの保護に関する背景技術として、特開2003−167606号公報(特許文献1)がある。特許文献1には、ユーザID、パスワード、アクセスレベルを含むユーザ情報を記憶したユーザ認証テーブルを格納するメモリカードをプログラマブルコントローラに装着した後、メモリカードのユーザ認証テーブルのユーザID、パスワードとログイン要求コマンドのユーザID、パスワードが一致した場合にプログラマブルコントローラへのアクセスを許可することが記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2003−167606号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
前記特許文献1は、プログラマブルコントローラに格納されたシーケンスプログラムへのアクセスに際して、ユーザIDやパスワードが必要であり、その管理が煩雑になるという課題がある。また、ユーザIDやパスワードが漏洩してしまった場合には、簡単にシーケンスプログラムへのアクセスが可能になってしまうという課題がある。
【0010】
本発明は上記事由に鑑みて為されたものであり、その目的は、プログラマブルコントローラに格納されているシーケンスプログラムの内容を読み出す場合、特別なパスワードや暗号化を必要とせずに、そのシーケンスプログラムの内容を知りえる者だけが、シーケンスプログラムを閲覧できたり、パソコンへシーケンスプログラムを保存できたりするための認証方式を提供することである。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本発明では、プログラマブルコントローラに格納されているシーケンスプログラムを読み出す際に、プログラミング装置を操作する者が、そのシーケンスプログラムを知りえる者かどうかを認証する。具体的には、操作者から提供されたシーケンスプログラムの一部またはバックアップデータが、格納しているシーケンスプログラムと一致しているかの照合を行う。
【発明の効果】
【0012】
本発明によれば、パスワードや暗号化などの機能を用いることなく、プログラマブルコントローラに格納されたシーケンスプログラムを保護できる。
【図面の簡単な説明】
【0013】
【
図1】実施例1のプログラミング装置とプログラマブルコントローラ間のバックアップデータによる認証方式の処理フローチャートである。
【
図2】プログラマブルコントローラの構成を示す説明図である。
【
図3】プログラミング装置に表示されるラダーシンボルの説明図である。
【
図4】実施例2のプログラミング装置とプログラマブルコントローラ間のプログラム部分指定入力による認証方式の処理フローチャートである。
【発明を実施するための形態】
【0014】
まず、一般的なプログラマブルコントローラとプログラミング装置について
図2と
図3を用いて説明する。
【0015】
図2にプログラマブルコントローラとプログラミング装置の構成を示す。プログラマブルコントローラ1は、論理演算や算術演算を行うMPU2、MPU2が制御する内容や手順を記憶したシステムプログラムメモリ3、制御対象となる機器の制御手順を示すシーケンスプログラムを格納するシーケンスプログラムメモリ4、シーケンスプログラムの演算結果などを一時的に記憶するデータメモリ5、シーケンスプログラムメモリの内容変更を主目的としたプログラミング装置インタフェース6とを備えている。
【0016】
プログラミング装置7は、プログラマブルコントローラ1にて演算処理されるシーケンスプログラムをプログラミングする目的のほか、プログラマブルコントローラ1へのシーケンスプログラムの書込み、プログラマブルコントローラ1からのシーケンスプログラムの読出し、シーケンスプログラムの動作確認などのアクセスを行うために使用される。
【0017】
以降、プログラマブルコントローラとプログラミング装置をまとめてプログラマブルコントローラシステムと称する。
【0018】
図3に、プログラミング装置7で表示されるシーケンスプログラムの一般的な表示形態である、ラダーシンボル形式8の例を示す。
図3において、ラダーシンボルは、X0、X1、X2、X3という4つの入力接点のON/OFF状態によって出力コイルY100のON/OFFを制御するものを示している。それぞれの入力接点が直列に接続されている場合はAND条件、並列に接続されている場合はOR条件を表している。すなわち、
図3においては、X0とX1とX3がON状態のときと、X0とX2とX3がON状態のときに、Y100がON状態になり、X0、X1、X2、X3が前記の状態以外のときはY100がOFF状態になる。
【0019】
プログラミング装置7によりラダーシンボル形式8でプログラミングされたシーケンスプログラムは、プログラミング装置インタフェース6とMPU2を介してシーケンスプログラムメモリ4に格納される。この一連の動作をシーケンスプログラムの書込みと表現する。一方、シーケンスプログラムメモリ4に格納されたシーケンスプログラムを、MPU2とプログラミング装置インタフェース6を介してプログラミング装置7に取り込む動作を、シーケンスプログラムの読出しと表現する。プログラミング装置7に読み出されたシーケンスプログラムは、プログラミング装置7にてラダーシンボル形式8で表示される。
【0020】
プログラミング装置7に読み出されたシーケンスプログラムは、一般的にバックアップデータとして保管されるので、プログラミング装置7にはシーケンスプログラムを保存する機能も併せ持っている。
実施例を、以下図面を用いて説明する。
【実施例1】
【0021】
本実施例は、バックアップデータによる認証方式である。具体的には、プログラマブルコントローラに格納されているシーケンスプログラムと全く同じバックアップデータを持っている場合には、そのバックアップデータとプログラマブルコントローラに格納されているシーケンスプログラムを照合比較し、すべての内容が一致したときのみ、シーケンスプログラムデータのアクセスを許可し、例えば、プログラミング装置側へ転送して、プログラミング装置側のモニタにシーケンスプログラムを表示する。一部でも不一致箇所が検出された場合には、プログラマブルコントローラに格納されているシーケンスプログラムをプログラミング装置には転送しない。
【0022】
図1に、本実施例の、バックアップデータによる認証方式の処理フローチャートを示す。
図1は、シーケンスプログラムの読み出し要求の例である。
図1において、プログラミング装置7は、プログラマブルコントローラに格納されたシーケンスプログラム(以下プログラムとする)を閲覧したり、そのプログラムをファイルとして保存したりする場合、ステップ11(以降ステップをSと省略する)でプログラムの読み出し要求を実行する。
【0023】
プログラマブルコントローラ側では、S12でプログラムの読み出し要求を受信すると、プログラミング装置7の操作者に対して、S13によりプログラムのバックアップデータの有無の確認要求を行う。
【0024】
プログラミング装置7側では、S14にて、プログラムのバックアップデータを持っている場合、そのバックアップデータを指定したのち、バックアップデータとプログラマブルコントローラに格納されたプログラムの照合をプログラマブルコントローラへ要求する。
【0025】
プログラマブルコントローラ側では、S15において、プログラミング装置から指定されたプログラムのバックアップデータと、プログラマブルコントローラに格納されているプログラムを照合処理する。
【0026】
S16の一致判定にてプログラムが一致していると判定された場合、S17で、プログラマブルコントローラ側からプログラミング装置7へ、プログラマブルコントローラに格納されているプログラムが確認のため送信され、プログラミング装置7側では、S18で、シーケンスプログラムが画面に表示されるので、シーケンスプログラムを閲覧したりバックアップを保存したりできる。これが、認証に成功した場合のフローである。
【0027】
一方、S16の一致判定においてプログラムが不一致と判定された場合、S19にてプログラマブルコントローラ1からプログラミング装置7へ照合結果不一致、すなわち認証に失敗した結果を送信する。プログラミング装置7では、S18において、認証失敗というメッセージが表示され、かつ、シーケンスプログラムは画面に表示されないため、プログラミング装置7の操作者はシーケンスプログラムを閲覧したりバックアップを保存したりできない。
【0028】
以上のように、本実施例では、プログラマブルコントローラが、シーケンスプログラムのバックアップデータの有無を要求し、前記プログラミング装置から指定されたバックアップデータと前記格納しているシーケンスプログラムとの照合を行う処理を行い、該照合の結果一致した場合に、前記シーケンスプログラムを前記プログラミング装置へ送信する。
【0029】
よって、シーケンスプログラムのバックアップデータを管理するだけで、プログラマブルコントローラに格納されたシーケンスプログラムを保護できる。
【0030】
すなわち、プログラミング装置からのシーケンスプログラムの読み出し要求に対して、プログラミング装置の操作者がシーケンスプログラムの内容を知りえる者かの確認を行う処理を行い、確認が取れた場合に、シーケンスプログラムをプログラミング装置へ送信するようにしている。つまり、シーケンスプログラムの内容を正確に知りえる者だけが、シーケンスプログラムを閲覧したりバックアップを保存したりできる。
【0031】
本実施例によれば、プログラマブルコントローラに格納されているシーケンスプログラムの内容を知りえる者かどうかを識別するために、パスワードや暗号化などの機能を用いることなくその資格の有無を識別することが可能である。このため、悪意を持った操作者によるシーケンスプログラム情報の流出を防げることはもちろんのこと、パスワードを別途管理する必要もない。
【実施例2】
【0032】
本実施例は、プログラム部分指定入力による認証方式である。具体的には、プログラマブルコントローラに格納されているシーケンスプログラムのバックアップデータを持っていないものの、プログラマブルコントローラに格納されているシーケンスプログラムのすべて、もしくは一部の内容を知りえるものかどうかを判別する目的で、アクセス対象のシーケンスプログラム内容の一部分の範囲をプログラミング装置から入力させる画面を表示させる。プログラミング装置の操作者は、指定された部分のシーケンスプログラムをプログラミング装置から入力して、入力が完了したら照合を要求する。プログラマブルコントローラ側では、認証用に指定した範囲のシーケンスプログラムとプログラミング装置操作者が入力したシーケンスプログラムを照合し、すべての内容が一致したときのみ、シーケンスプログラムデータのアクセスを許可し、例えば、シーケンスプログラムデータをプログラミング装置側へ転送して、プログラミング装置側のモニタにシーケンスプログラムを表示する。一部でも不一致箇所が検出された場合には、プログラマブルコントローラに格納されているシーケンスプログラムをプログラミング装置には転送しない。
【0033】
図4に、本実施例の、プログラム部分指定入力による認証方式の処理フローチャートを示す。
図4は、
図1と同様にシーケンスプログラムの読み出し要求の例であって、プログラミング装置7の操作者は、プログラマブルコントローラに格納されたプログラムを閲覧したり、そのシーケンスプログラムをファイルとして保存したりする場合、S41にて、プログラムの読み出し要求を実行する。
【0034】
プログラマブルコントローラ側では、S42で、プログラムの読み出し要求を受信すると、S43で、実施例1と同様の、バックアップデータの有無の確認要求を行う。ここで、プログラミング装置7からバックアップデータがあることが通知されれば、実施例1と同様の処理を行うが、その部分は省略する。バックアップデータが無い場合を想定して以下説明する。
【0035】
S44でプログラミング装置7からバックアップデータがないことを通知されると、プログラマブルコントローラは、S45で、プログラミング装置7の操作者に対して、プログラマブルコントローラに格納されている一部分のプログラムを入力するように要求する。
【0036】
なお、この場合指定される一部分のプログラムは、プログラマブルコントローラ側で要求毎にランダムに指定される。本実施例では、20から30ステップ部分範囲とした。なお、範囲ではなく、ステップ数をランダムにしても良い。これにより、より認証の確度が高まる効果がある。
【0037】
また、シーケンスプログラムの開発者等のシーケンスプログラムの内容を知り得る者は、そのシーケンスプログラムを書面で残しておくことが一般的であるので、指定された一部分のプログラムを入力することは可能である。
【0038】
プログラミング装置7側では、S46で、プログラマブルコントローラから指定された部分のプログラム入力を促す画面が表示される。
【0039】
そして、S47で、プログラミング装置7の操作者は、指定された部分のプログラムを入力したのち、その入力したプログラムをプログラマブルコントローラ1へ送信する。
【0040】
プログラマブルコントローラ側では、S48で、プログラミング装置7から送信されたプログラム情報と、プログラマブルコントローラに格納されているプログラムを照合処理する。
【0041】
以降は、実施例1と同様に、一致判定S49にてプログラムが一致していると判定された場合は、S50でプログラムが送信され、S51でプログラミング装置7側でプログラムが画面に表示される。一方、一致判定S49においてプログラムが不一致と判定された場合、S52で認証に失敗した結果を送信する。プログラミング装置7では、S51で認証失敗というメッセージが表示される。よって、プログラミング装置7の操作者はシーケンスプログラムを閲覧したりバックアップを保存したりできない。
【0042】
以上のように、本実施例では、プログラマブルコントローラが、シーケンスプログラムの内容の一部の入力要求を行い、入力されたシーケンスプログラムの内容の一部と格納しているシーケンスプログラムとの照合を行う処理を行い、該照合の結果一致した場合に、前記シーケンスプログラムを前記プログラミング装置へ送信する。
【0043】
よって、シーケンスプログラムを書面等で残しておくだけで、プログラマブルコントローラに格納されたシーケンスプログラムを保護できる。
【0044】
また、そのシーケンスプログラムの内容を正確に知りえる者だけが、シーケンスプログラムを閲覧したりバックアップを保存したりできる。
また、シーケンスプログラムへのアクセス保護を行うユーザ認証方法として言い換えると、シーケンスプログラムに従って機器を制御するプログラマブルコントローラと、該プログラマブルコントローラに接続され前記シーケンスプログラムへのアクセスを行うプログラミング装置とからなるシステムにおけるシーケンスプログラムへのアクセス保護を行うユーザ認証方法であって、前記シーケンスプログラムへのアクセス要求に対して、前記シーケンスプログラムのバックアップデータの要求または前記シーケンスプログラムの内容の一部の入力要求を行い、指定されたバックアップデータまたは受信したシーケンスプログラムの内容の一部と前記シーケンスプログラムとの照合を行い、照合結果が一致した場合に前記シーケンスプログラムへのアクセスを許可することを特徴とするユーザ認証方法を提供できる。
【0045】
なお、本実施例では、実施例1のバックアッププログラムによる認証方式も併用する場合を説明したが、プログラム部分指定入力による認証方式のみを前提としても良く、その際には、S43は不要となる。
【0046】
また、シーケンスプログラムの内容を正確に知りえる者として、プログラム制作者があるが、制作者が知りえる情報として制作時の日時情報があるので、それらの時間情報を認証の1手段としても良い。
【0047】
以上、実施例について説明したが、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものである。また、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
【符号の説明】
【0048】
1 プログラマブルコントローラ
2 MPU
3 システムプログラムメモリ
4 シーケンスプログラムメモリ
5 データメモリ
6 プログラミング装置インタフェース
7 プログラミング装置
8 ラダーシンボル形式のシーケンスプログラム