JP2007128172A - プログラマブル・コントローラ - Google Patents

プログラマブル・コントローラ Download PDF

Info

Publication number
JP2007128172A
JP2007128172A JP2005318662A JP2005318662A JP2007128172A JP 2007128172 A JP2007128172 A JP 2007128172A JP 2005318662 A JP2005318662 A JP 2005318662A JP 2005318662 A JP2005318662 A JP 2005318662A JP 2007128172 A JP2007128172 A JP 2007128172A
Authority
JP
Japan
Prior art keywords
code
memory
request command
password
protection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005318662A
Other languages
English (en)
Other versions
JP4471120B2 (ja
Inventor
Toshiro Izumi
俊郎 和泉
Tetsuji Wakatoshi
哲司 若年
Masakazu Komatsu
雅和 小松
Masahiro Satomura
誠啓 里村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2005318662A priority Critical patent/JP4471120B2/ja
Publication of JP2007128172A publication Critical patent/JP2007128172A/ja
Application granted granted Critical
Publication of JP4471120B2 publication Critical patent/JP4471120B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】この種のパスワードプロテクト方式を採用するPLCシステムにおいて、開発支援装置側におけるプロテクト設定操作並びにプロテクト解除操作を一切変更することなく、パスワードの漏洩、盗用、総当たりによる解読等によるプロテクトの不正解除を未然に防止すること。
【解決手段】 プロテクト解除要求コマンドが与えられたときには、メモリのパスワード記憶領域の記憶内容と当該プロテクト解除要求コマンドに付されたパスワードとが一致することを少なくとも条件として、メモリのパスワード記憶領域の記憶内容を第1のコードで書き替える一方、上記の条件が成立しても、メモリのパスワード記憶領域の記憶内容が予め決められた第2のコードと一致するときには、パスワード記憶領域の書き替え処理を行わない。
【選択図】 図5

Description

この発明は、与えられたコマンドを解釈実行する機能を備えたプログラマブル・コントローラに係り、特に、パスワードプロテクト方式により、ユーザプログラムの一括読み出し要求コマンド等の解釈実行に制限をかけることができるプログラマブル・コントローラ(以下、「PLC」と称する)に関する。
PLCによる機器制御は、ユーザの要求する制御仕様をラダー図言語等を用いて記述してなる制御プログラム(以下、「ユーザプログラム」と称する)をPLCのメモリに予め格納しておき、これをPLCの命令実行部が適宜に読み出して実行することにより実現される。
PLCのユーザとして、例えば、各種のFPD(Flat Pannel Display)や半導体装置等の製造メーカ等を想定すると、それらの製造プロセス上のノウハウは、結果としてユーザプログラム中の記述として表現されることが多い。
そのため、従来、PLCとPLCの開発支援装置とを通信を介して接続してなるPLCシステムにおいては、パスワードプロテクト方式により、ユーザプログラムの一括読み出し要求コマンド等の解釈実行にプロテクトをかけることにより、正当な権限を有する者以外は、開発支援装置を操作しても、PLCのメモリから勝手にユーザプログラムが読み出せないような対策が施されている(例えば、特許文献1参照)。
特開平11−184817号公報
しかしながら、上述したパスワードプロテクト方式を採用するPLCシステムにあっては、プロテクト解除コマンドに付されたパスワードとPLC側に格納されたパスワードとが一致しさえすれば、プロテクトは直ちに解除されてしまうため、正当な権限を有する者からパスワードが漏洩してしまったり、或いはパスワードが盗用されてしまえば、最早、用をなさないし、そのような漏洩や盗用がないとしても、可能なパスワードの全てを総当たりされてしまえば、理論的にプロテクトは破られてしまうと言う本質的な問題点を抱えている。
なお、可能なパスワードの全てを総当たりする不正なプロテクト解除操作については、開発支援装置側のパスワード入力操作可能回数を一定回数以下に制限することで解決することができるが、それでも別途通信回線に専用ツールを接続して行う総当たり操作は回避することができない。
また、開発支援装置側のパスワード入力機能を変更して、例えば、特別な操作を行わない限り、既にPLC側に登録されているパスワードと同一パスワードが入力できないようにすることも考えられるが、それでも別の開発支援装置と交換したり、或いは別途通信回線に専用ツールを接続してしまえば、やはり用をなさない。
この発明は、このような従来の問題点に着目してなされてものであり、その目的とするところは、この種のパスワードプロテクト方式を採用するPLCシステムにおいて、開発支援装置側におけるプロテクト設定操作並びにプロテクト解除操作を一切変更することなく、パスワードの漏洩、盗用、総当たりによる解読等によるプロテクトの不正解除を未然に防止することにある。
この発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
上記の課題を解決するために、本発明のPLCは、上述のPLCシステムに好適なものであって、以下の構成を採用している。
すなわち、この発明のPLCは、外部から与えられたコマンドを解釈実行する機能を備え、かつ許可設定コード記憶領域を有するメモリを有している。
さらに、このPLCには、プロテクト設定動作制御手段と、プロテクト解除動作制御手段と、作業実行可否決定手段とが設けられている。
プロテクト設定動作制御手段は、プロテクト設定要求コマンドが与えられたときには、メモリの許可設定コード記憶領域の記憶内容が予め決められた第1のコードと一致するときに限り、メモリの許可設定コード記憶領域の記憶内容を、当該プロテクト設定コマンドに付されたパスワードで書き替える機能を有する。
ここで、「パスワード」とは、当該プロテクト設定コマンドに付されたパスワードそれ自体を意味している。また「許可設定コード」とは、PLCのメモリに格納されるコードを意味し、許可設定コードとしてはパスワードそれ自体を用いてもよいし、パスワードと一義的関係にあるPLC側で生成された別のコードを用いてもよい。すなわち、プロテクト設定コマンドに付されたパスワード文字列がそのままPLCのメモリ(不揮発性メモリ)に格納されると、メモリダンプ等の手段によりパスワード格納アドレスが他人に知られてしまう可能性がある。そのため、PLC側で受信されたパスワード文字列そのままではなく、PLC側で予め用意された別の文字列を許可設定コードとして格納領域に書き込むことで、プロテクトの強度を上げることができる。なお、許可設定コードとしてPLC側で予め用意された別の文字列を用いる場合には、パスワードとの比較に際して許可設定コードをパスワードに戻して比較してもよいし、対応テーブル等を参照してパスワードと許可設定コードとを比較してもよい。
ここで、「パスワードと許可設定コードとが一致する」とは、パスワードと許可設定コードとが等しい場合のみならず、許可設定コードがパスワードと一義的関係にある場合も含む。
プロテクト解除動作制御手段は、プロテクト解除要求コマンドが与えられたときには、メモリの許可設定コード記憶領域の記憶内容と当該プロテクト解除要求コマンドに付されたパスワードとが一致することを少なくとも条件として、メモリの許可設定コード記憶領域の記憶内容を第1のコードで書き替える機能を有する。
作業実行可否決定手段は、プロテクト対象となる作業要求コマンドが与えられたときに、メモリの許可設定コード記憶領域の記憶内容が第1のコードと一致するときには、その作業要求コマンドに対応して予め用意された作業の実行を許可する一方、メモリの許可設定コード記憶領域の記憶内容が第1のコードと一致しないときには、その作業要求マンドに対応して予め用意された作業の実行を禁止し又は作業の実行を制限する機能を有する。
加えて、前記プロテクト解除動作制御手段は、メモリの許可設定コード記憶領域の記憶内容が予め決められた永久プロテクト対応の第2のコードと一致するときには、許可設定コード記憶領域の書き替え処理を行わない、ように構成されている。ここで、第2のコードと一致するか否かの判定は、プロテクト解除要求コマンドが与えられるたびにその都度行ってもよいし、電源投入直後に判定処理を行い、一致判定のときには所定のフラグを立て、以後プロテクト解除要求コマンドが与えられたときには、そのフラグを参照するようにしてもよい。
このような構成によれば、パスワードとして予め決められた第2のコード以外のコードが使用される限り、プロテクト設定要求コマンド並びにプロテクト解除要求コマンドを使用することにより、従前通りに、PLCのコマンド解読実行処理に対して、プロテクトの設定並びにプロテクトの解除を行うことができる。
そして、プロテクトが解除された状態にあっては、プロテクト対象となる作業要求コマンドに対しては、予め用意された作業の実行が許可される一方、プロテクトが設定された状態にあっては、その作業要求マンドに対応して予め用意された作業の実行は禁止又は制限される。
これに対して、パスワードとして予め決められた第2のコードが使用されたときには、プロテクト設定要求コマンドを使用することにより、従前通りに、プロテクトの設定は行えるものの、プロテクト解除要求コマンドについては、メモリの許可設定コード記憶領域の記憶内容とプロテクト解除要求コマンドに付されたパスワードとが一致しても、許可設定コード記憶領域の書き替え処理は行われないため、従前とは異なり、プロテクトの解除を行うことはできない。
そのため、パスワードとして予め決められた第2のコードを使用してプロテクトがかけられたのちにあっては、以後、プロテクトはかけられたままの状態(永久プロテクト状態)に維持されるから、パスワードが漏洩、盗用、解読されたとしても、それによりプロテクト対象となる作業が不正に実行されることはなくなる。
上述の構成を有するPLCにおける作業実行可否決定手段は、メモリの許可設定コード記憶領域の記憶内容が第1のコードと一致しないときには、さらに、その記憶内容が第2のコードと一致するか否かを判定し、第2のコードと一致するときには、その作業要求コマンドが予め第2のコードと関連づけられたものであるときに限り、その作業要求コマンドに対応して予め用意された作業の実行を禁止し又は作業の実行を制限するように構成してもよい。ここで、第2のコードと一致するか否かの判定は、プロテクト解除要求コマンドが与えられるたびにその都度行ってもよいし、電源投入直後に判定処理を行い、一致判定のときには所定のフラグを立て、以後プロテクト解除要求コマンドが与えられたときには、そのフラグを参照するようにしてもよい。
このような構成によれば、第2のコードを複数種類だけ用意すると共に、それらの第2のコードのそれぞれのプロテクトの関連づけ乃至意味づけを、例えば「プログラムのアップロード(一括読み出し)のみ不可能」、「プログラムのダウンロードのみ不可能」、「プログラムのアップロードもダウンロードも不可能」等々のように異ならせておけば、第2のコードを適切に選択することにより、永久プロテクト状態となる作業の範囲を適切に制限することができる。
ここで、プロテクト対象となる作業要求コマンドとしては、ユーザプログラムに関する一括読み出しを要求するアップロード要求コマンド、ダウンロード要求コマンド等が存在するが、この発明の性質上は、中でもアップロードコマンドが最も有効に作用するであろう。
プロテクト対象とならない作業要求コマンドとしては、ユーザプログラムに関する一括消去を要求する消去要求コマンドが定義されていることが好ましく、さらに、ユーザプログラムに関する消去要求コマンドが与えられたときには、その消去要求コマンドで指定されるユーザプログラムを一括消去すると共に、これと併せて、許可設定コード記憶領域の記憶内容を第1のコードに書き替えるように構成されていることが好ましい。
このような構成によれば、永久プロテクト状態を解除するためには、ユーザプログラムを消去する他無くなるから、結局、PLCのメモリからユーザプログラムが一括読み出しされる危険は完全になくなる。
上述したPLCは、PLCの開発支援装置と通信を介して接続することで、PLCシステムを構築することもできる。
本発明によれば、この種のパスワードプロテクト方式を採用するPLCシステムにおいて、開発支援装置側におけるプロテクト設定操作並びにプロテクト解除操作を一切変更することなく、パスワードの漏洩、盗用、総当たりによる解読等によるプロテクトの不正解除を未然に防止することができる。
以下に、この発明のプログラマブル・コントローラの好適な実施の一形態を添付図面を参照しながら詳細に説明する。尚、以下に説明する実施の形態は、本発明の一例を示すものに過ぎず、本発明の要旨とするところは、特許請求の範囲の記載によってのみ規定されるものである。
開発支援装置とPLCとの接続図が図1(a)に示されている。PLC10と開発支援装置20とは通信ケーブル30を介して接続されている。開発支援装置20としては、例えばソフトウェアツールを搭載したパーソナルコンピュータなどが挙げられる。PLC10と開発支援装置20とをつなぐデータ通信方法としては、例えばRS232などが挙げられる。
周知のごとく、PLCは、CPUユニットと、I/Oユニットと、各種特殊機能ユニット等を含んで構成される。このようなPLCのCPUユニットのハードウェア構成図が図1(b)に示されている。同図に示されるように、このCPUユニット100は、ROM101と、マイクロプロセッサ(MPU)102と、ユーザプログラムメモリ(UM)103と、ワークRAM104と、データ格納用不揮発性メモリ105と、アプリケーションスペシフィックIC(ASIC)106と、入出力メモリ(IOM)107とを含んでいる。
ユーザプログラムメモリ(UM)103は、ユーザプログラムを格納するメモリである。入出力メモリ(IOM)107は、外部I/O割付用のメモリ、あるいはユーザプログラムで使用するデータメモリ等として使用されるメモリである。ROM101は、システムファームウェアを格納するメモリである。ワークRAM104は、システムワークとして使用されるメモリである。データ格納用不揮発性メモリ105は、異常通知の設定や異常ステータス等を格納するメモリである。ASIC106は、ユーザプログラムメモリ(UM)103からプログラムを順番に読み出して実行し、実行結果を、入出力メモリ(IOM)107へ書き込む機能を有する。
マイクロプロセッサ(MPU)102は、CPUユニット100の全体を統括制御するものである。ROM101には、マイクロプロセッサ(MPU)102で処理されるシステムプログラムが記憶され、データ格納用不揮発性メモリ105には、バックアップされたユーザプログラムが記憶されている。ワークRAM104には、マイクロプロセッサ(MPU)107の処理全般にわたる各種データが記憶される。入出力メモリ(IOM)107は、プログラム実行により入出力装置に対して入出力される入出力情報の代用として参照/書き換えられるメモリである。ユーザプログラムメモリ(UM)103には、データ格納用不揮発性メモリと等価なユーザプログラムが記憶され、ここから読み出されたユーザプログラムが実行される。ASIC106は、ユーザプログラムメモリ(UM)103からプログラムを順番に読み出し実行し、実行結果を、入出力メモリ(IOM)107へと書き込む。
開発支援装置20のハードウェア構成の全体を示すブロック図が図2に示されている。同図に示されるように、開発支援装置20は、CPU201と、入力部202と、出力部203と、表示部204と、通信部205と、電源部206と、記憶部207と、外部記憶部210と、を備えている。入力部202の例としては、キーボード、マウス、その他各種入力装置などがあり、表示部204の例としては、モニタなどがあり、外部記憶部207の例としては、外付けHDD等の各種記憶装置などがある。ソフトウェアツールは、記憶部207、外部記憶部210などに格納される。開発支援装置20は、通信部205にてPLC10と通信を行う。
この例においてPLCが10が備えているメモリ内に登録されている「許可設定コード」としては、例えば以下のような内容が考えられる。
1.書込読出可能コード(解除状態、読出可能、書込可能)『第1のコード』
2.読出不可能コード(解除不可能、読出不可能、書込可能)
3.読出禁止コード(解除可能、読出不可能、書込可能)
4.書込不可能コード(解除不可能、読出可能、書込不可能)
5.書込禁止コード(解除可能、読出可能、書込不可能)
6.書込読出不可能コード(解除不可能、読出不可能、書込不可能)
7.書込読出禁止コード(解除可能、読出不可能、書込不可能)
上記1〜8以外にも、読出不可能(解除不可能)且つ書込不可能(解除可能)、一部のみ読出可能など、必要に応じて複数のコードを適宜設定することが可能である。なお、以下においては、読出不可能コード(第2のコード)、読出禁止コード(第3のコード)、読出可能コード(第1のコード)に関する処理を主として説明するが、書込禁止コード、書込読出禁止コード等についても同様の処理が行われることは言うまでもない。
本発明においては、パスワード照合等の処理は開発支援装置とPLCとの間で行われる。概略としては、以下の通りである。開発支援装置でパスワードの入力が行われると、開発支援装置はPLCに対して各種コマンドと入力されたパスワードの情報とを送信する。PLCは、メモリ内の所定領域に格納された許可設定コードを参照し、許可設定コードの種別により、開発支援装置からの各種処理要求の可否決定、パスワードの照合、などを行う。
このようなPLCのCPU部の処理内容全体を概略的に示すゼネラルフローチャートが図3に示されている。同図に示される処理は、PLC本体100内のマイクロプロセッサ102がROM101に格納された所定のシステムプログラムを実行することで実現される。同図に示されるように、処理の全体は、電源投入直後に実行される電源ON時処理(ステップ301)と、その後、サイクリックに一巡実行される、共通処理(ステップ302)、演算処理(ステップ303)、I/Oリフレッシュ処理(ステップ304)、開発支援装置から受信したコマンドに対する処理(ステップ305)、その他の周辺サービス処理(ステップ306)とから構成されている。
ここで、電源ON時処理(ステップ301)では、ハードメモリ/システムワーク初期化処理、I/Oメモリエリアのクリア処理、ユーザメモリ(UM)チェック処理などが実行される。
共通処理(ステップ302)においては、PLCが故障していないか否かの診断、MPUが演算処理をするための種々の設定の確認などを主に実行する。診断の内容は、時間の監視、ユーザメモリのチェック、入出力のチェック、バッテリのチェックなどである。
演算処理(ステップ303)では、ユーザプログラムメモリに格納されたユーザプログラムを順次に読み出し実行する。ここで、この演算処理は、主にMPUとI/Oメモリとの間で実行される。
I/Oリフレッシュ処理(ステップ304)では、CPU部内のMPUは演算処理の前に外部入力信号を入力部を経由してI/Oメモリに読み込み、そのデータを用いて演算を行う。また、演算の後、I/Oメモリに格納されている演算結果を出力部を経由して外部へと出力する。
開発支援装置から受信したコマンドに対する処理(ステップ305)においては、開発支援装置へのデータの送信、ユーザメモリへの書込処理などが実行される。なお、本発明に関する処理は、この開発支援装置から受信したコマンドに対する処理において行われるものである。このため、開発支援装置から受信したコマンドに対する処理については後段において詳細に説明する。
さらに、その他の周辺サービス処理(ステップ306)においては、PLCを構成する各種ユニットとのデータ交換、内蔵メモリやメモリカードに対するファイルの読み書き処理、ユーザインターフェイスとの入出力処理、各種リモート機器等との通信処理などが実行される。
次に、開発支援装置側の処理について説明する。開発支援装置のゼネラルフローチャートが図4に示されている。開発支援装置にて数字又はアルファベットの入力が検知されると(ステップ401YES,ステップ402)、入力された数字又はアルファベットがパスワード用バッファに順次登録される(ステップ403)。検知されたキーがリターンキーであった場合にはパスワード用の確認に移り(ステップ402NO,ステップ404YES)、検知されたキーが数字、アルファベット、リターンキーの何れでもなかった場合には、ステップ401に戻り次のキー入力があるまで待機する(ステップ402NO,ステップ404NO)。リターンキーが押されたときに、パスワード用バッファが空だった場合にはエラー処理に移行する(ステップ405NO,ステップ407)。ここでエラー処理としては、入力内容が不正である旨を表示する、入力処理を終了させる、などの既知の手法が挙げられる。
リターンキーが押されたときにパスワード用バッファに一桁以上の数字又はアルファベットの登録があった場合には、続いてコマンド種別の判定に移行する(ステップ405YES,ステップ406)。コマンド種別がプロテクト設定要求コマンドであった場合にはプロテクト設定処理に(ステップ406プロテクト設定コマンド,ステップ408)、コマンド種別がプロテクト解除要求コマンドであった場合にはプロテクト解除処理に(ステップ406プロテクト解除コマンド,ステップ409)、それぞれ移行し処理を行う。プロテクト設定処理(ステップ408)、プロテクト解除処理(ステップ409)については後段にて詳細に説明する。なお、コマンド種別については、各処理を行う際の画面を別に設けたり、ボタンを別に設けておくなどの既知の構成を採用することで容易に判別可能である。
図4の例では、コマンド種別の判定はパスワードの後に行われることとなっているが、最初にコマンド種別の判定を行い、そのコマンドの処理に必要な場合のみパスワード入力を求めるように設定してもよい。また、同図には示されていないが、パスワードの入力が不要な処理として、読出処理、ユーザプログラム消去処理、その他の処理などがあり、所定の操作を行うことでこれらの処理を行うことが可能である。なお、読出処理とユーザプログラム消去処理については、後段で詳細に説明する。
開発支援装置はこの後の処理でPLCに対してそれぞれのコマンドを送信し、PLCは送られてきたコマンドに対する処理を前述の「開発支援装置から受信したコマンドに対する処理(図3・ステップ305参照)」にて行う。このような開発支援装置から受信したコマンドに対するPLC側の処理のフローチャートが図5に示されている。
開発支援装置から受信したコマンドに対する処理においては、先ずはじめに受信コマンドがあるか否かの判定が行われる。受信コマンドがない場合には(ステップ501NO)、そのまま当該処理を終了し次の処理に移る(図3・ステップ306その他の周辺サービス処理)。何らかのコマンドを受信している場合には(ステップ501YES)、受信したコマンドの種別判断に移行する(ステップ502〜504)。受信したコマンドがプロテクト設定コマンドであった場合には(ステップ502YES)、プロテクト設定処理に移行する(ステップ506)。受信したコマンドがプロテクト解除コマンドであった場合には(ステップ503YES)、プロテクト解除処理に移行する(ステップ507)。受信したコマンドが読出コマンドであった場合には(ステップ504YES)、読出処理に移行する(ステップ508)。受信したコマンドが、プロテクト設定コマンド、プロテクト解除コマンド、読出コマンドのいずれでもなかった場合には(ステップ504NO)、そのコマンドに対応する処理を行い図に示された処理を終了する(ステップ506)。なお、プロテクト設定処理(ステップ506)、プロテクト解除処理(ステップ507)、読出処理(ステップ508)については、PLC側の処理と開発支援装置側の処理とにわけて図6〜図12で説明する。
はじめに、プロテクト設定処理について説明する。PLC側のプロテクト設定処理の詳細フロー(その1)が図6に示されている。プロテクト設定処理が開始されて開発支援装置からパスワードが送られてくると、メモリ内の所定箇所に格納されている許可設定コードが『第1のコード』であるか否かの判定が行われる(ステップ601)。登録されている許可設定コードが『第1のコード』であった場合には(ステップ601YES)、現在登録されている許可設定コードの代わりに開発支援装置から送られてきたパスワードを新たな許可設定コードとしてメモリ内の所定箇所に書き込む(ステップ603)。許可設定コードの書換処理が終了したら、許可設定コード書込処理が正常終了した旨を開発支援装置に送信し、当該処理を終了する(ステップ604)。一方、許可設定コードが『第1のコード』でなかった場合には(ステップ601NO)、許可設定コードが書換不可能である旨の情報を開発支援装置に送信し、プロテクト設定処理を終了する(ステップ602)。
本発明においては、許可設定コードとしてPLCのメモリに登録されるコードと入力されたパスワードとは必ずしも同じものでなくともよく、予めPLCのメモリに対応表を設けておいてもよい。例えば、「読出不可能コード(例:BBBB)」等の当初から定まっているコードとそれに対応するパスワード(1234)の対応表を予め設けておき、「1234」と入力された場合には「BBBB」というコードがメモリに登録される、というものであってもよい。また、英数字一字ごとに対応する文字が定められた対応表が設けられており、「Aを入力すると2が書き込まれる」「Bを入力するとMが書き込まれる」・・・というように構成されていてもよい。このような構成を採用することにより、何らかの方法にてメモリ領域を解析されて登録されているコードの内容が解読されてしまった場合でも、入力するべきパスワードは解読されず、不正な利用者はパスワードを解除不可能であるという利点がある。また、開発支援装置より送られてきたパスワードに基づいてPLCにおいて新たな許可設定コードを生成するという構成を採用すれば、開発支援装置からPLCにデータが送られる途中でデータを読みとられても、登録される許可設定コードは異なるものであるため、よりパスワードが解析されにくくなる。
このように、予め用意されたテーブルを用いてパスワードから許可設定コードを生成し書き込む例として、図7にPLC側のプロテクト設定処理の詳細フロー(その2)が示されている。この例では、パスワードを直接書き込まないことで、メモリ解析を行われてもパスワードが判明しないという利点がある。プロテクト設定処理が開始されて開発支援装置からパスワードが送られてくると、メモリ内の所定箇所に格納されている許可設定コードが『第1のコード』であるか否かの判定が行われる(ステップ701)。登録されている許可設定コードが『第1のコード』であった場合には、入力されたパスワードとメモリ内に格納されている変換テーブルとを用いて許可設定コードを生成し(ステップ701YES,ステップ703)、新たな許可設定コードとして現在登録されている許可設定コードの代わりにメモリ内の所定箇所に書き込む(ステップ704)。許可設定コードの書換処理が終了したら、許可設定コード書込処理が正常終了した旨を開発支援装置に送信し、当該処理を終了する(ステップ705)。一方、許可設定コードが『第1のコード』でなかった場合には(ステップ701NO)、許可設定コードが書換不可能である旨の情報を開発支援装置に送信し、プロテクト設定処理を終了する(ステップ702)。
なお、図6及び図7において、新たに登録された許可設定コードが『第2のコード』であった場合には、先にも述べたように以降許可設定コードの書き換え、読み出しのいずれも不可能となる。また、登録された許可設定コードが既知の許可設定コードのいずれでもなかった場合には、『読出禁止コード(第3のコード)』として登録される。
次に、プロテクト設定処理における開発支援装置側の処理について説明する。開発支援装置側のプロテクト設定処理の詳細フローが図8に示されている。プロテクト設定処理がはじまると、先ずプロテクト設定コマンドとパスワードをPLCに送信する(ステップ801)。ここで、パスワードはプロテクト設定コマンドに付して送信されてもよいし、プロテクト設定コマンドと別に送信されてもよい。とPLCでの処理が終了しレスポンスが送られてきたら、送られてきたレスポンスの種別を判定する(ステップ802YES,ステップ803)。送られてきたレスポンスが正常終了レスポンスであったときには、正常終了である旨を表示し、処理を終了する(ステップ803正常終了,ステップ804)。また、送られてきたレスポンスが書換不可能レスポンスであったときには、許可設定コードの書換が不可能である旨を表示して処理を終了する(ステップ803書換不可,ステップ805)。
次に、プロテクト解除処理について説明する。PLC側のプロテクト解除処理の詳細フローが図9に示されている。PLCでプロテクト解除処理が開始されると、先ずはじめにメモリに格納されている許可設定コードの種別判定が行われる(ステップ901)。許可設定コードの種別が『第1のコード』であったときには、開発支援装置に処理が正常終了したというレスポンスを返し、処理を終了する(ステップ901第1,ステップ902)。許可設定コードの種別が『第2のコード』であったときには、開発支援装置に読み出しが不可能であるとのレスポンスを返し、処理を終了する(ステップ901第2,ステップ903)。許可設定コードの種別が『第1、第2以外のコード』(第3のコード)であったときには(ステップ901第1、第2以外)、開発支援装置から送られてきたパスワードが登録されている許可設定コードと等しいか否かの判定を行う(ステップ904YES,ステップ905)。パスワードと許可設定コードが等しかったときには(ステップ905YES)、メモリ内の所定領域に格納されている許可設定コードを『第3のコード』から『第1のコード』に変更し(ステップ906)、正常終了のレスポンスを開発支援装置に返し処理を終了する(ステップ907)。パスワードと許可設定コードが一致しなかったときには(ステップ905NO)、解除できなかったという内容のエラーレスポンスを開発支援装置に返し、当該処理を終了する(ステップ908)。
開発支援装置側のプロテクト解除処理の詳細フローが図10に示されている。開発支援装置でプロテクト解除処理が開始されると、先ずはじめにこの処理がプロテクト解除コマンドとパスワードをPLCに送信する(ステップ1001)。ここで、パスワードはプロテクト解除コマンドに付して送信されてもよいし、プロテクト設定コマンドと別に送信されてもよい。パスワードを送信した後は、PLCで図9に示した処理が終了しレスポンスが送られてくるまで待機し、PLCから送られてきたレスポンスの種別判定を行う(ステップ1002,ステップ1003)。送られてきたレスポンスが正常終了レスポンスであったときには(ステップ1003正常終了)、正常終了の表示を行い処理を終了する(ステップ1004)。送られてきたレスポンスが読出不可能レスポンスであったときには(ステップ1003読出不可能)、読出不可能の表示を行い処理を終了する(ステップ1005)。送られてきたレスポンスがエラーレスポンスであったときには(ステップ1003エラー)、解除できなかった旨のエラー表示を行い処理を終了する(ステップ1006)。
次に、読出処理について説明する。PLC側の読出処理の詳細フローが図11に示されている。読出処理が開始されると、先ずはじめにメモリ内の所定領域に格納されている許可設定コードの種別判定が行われる(ステップ1101)。登録されている許可設定コードが『第1のコード』以外のコードであったときには(ステップ1101NO)、開発支援装置に読出不可能レスポンスを送信し、処理を終了する(ステップ1102)。登録されている許可設定コードが『第1のコード』であったときには(ステップ1101YES)、開発支援装置に読み出し要求のあったプログラムを送信し、この処理を終了する(ステップ1103)。
開発支援装置側の読出処理の詳細フローが図12に示されている。開発支援装置で読出処理が開始されると、先ず当該処理が読出処理であるという情報をPLCに送信する(ステップ1201)。読出コマンドを送信した後は、PLCで図11に示した処理が終了しレスポンスが送られてくるまで待機し、PLCから送られてきたレスポンスの種別判定を行う(ステップ1202,ステップ1203)。PLCで読出が許可されプログラムが送信されてきた場合には(ステップ1203読出許可)、プログラムの受信処理を行い読出処理を終了する(ステップ1204)。レスポンス種別が読出不可能レスポンスであったときには(ステップ1203読出不可能)、読出不可能である旨の表示を行いこの処理を終了する(ステップ1205)。
以上述べたように、本発明においては許可設定コードが『第1のコード』の場合のみユーザプログラムは読出可能である。許可設定コードが『第2のコード』あって解除したい場合には、ユーザプログラム自体を消去することにより別途メモリ内に格納されたパスワードも同時に消去され、これによりパスワードの解除を行うことが可能である。このようにしてユーザプログラムの消去を行うときの開発支援装置側の処理手順が図13に示されている。ユーザプログラムの消去要求があったときには、指示通りユーザプログラムの消去を行うと復元出来ない旨の警告文を表示する(ステップ1301YES,ステップ1302)。警告文を表示した後にユーザプログラムを消去するか否かの選択を表示し、ユーザプログラムを消去しないという選択がなされた場合には(ステップ1303NO)、そのまま処理を終了する。ユーザプログラムを消去するという選択がなされた場合には(ステップ1303YES)、PLCにユーザプログラムを消去するという指示を送信し、PLCでユーザプログラムの消去処理が完了するまで待機する(ステップ1304,ステップ1305)。PLCよりユーザプログラムの消去が完了したというレスポンスが送られてきたら(ステップ1305YES)、ユーザプログラムの消去が完了したという表示を行い処理を終了する(ステップ1306)。なお、PLC側では、ステップ1304のユーザプログラム消去指示が送られてきた場合にはユーザプログラムの消去及び第2のコードの消去を行い、処理が完了したというレスポンスを開発支援装置に送信する、という処理が行われている。
本発明によれば、この種のパスワードプロテクト方式を採用するPLCシステムにおいて、開発支援装置側におけるプロテクト設定操作並びにプロテクト解除操作を一切変更することなく、パスワードの漏洩、盗用、総当たりによる解読等によるプロテクトの不正解除を未然に防止することができる。
本発明が適用されたPLCシステムの主要構成図である。 開発支援装置のハードウェア構成を示すブロック図である。 PLCのゼネラルフローチャートである。 開発支援装置側のゼネラルフローチャートである。 開発支援装置から受信したコマンドに対応するPLC側の処理を示すフローチャートである。 PLC側のプロテクト設定処理詳細フロー(その1)である。 PLC側のプロテクト設定処理詳細フロー(その2)である。 開発支援装置側のプロテクト設定処理詳細フローである。 PLC側のプロテクト解除処理詳細フローである。 開発支援装置側のプロテクト解除処理詳細フローである。 PLC側の読出処理詳細フローである。 開発支援装置側の読出処理詳細フローである。 開発支援装置側のユーザプログラム消去処理フローである。
符号の説明
10 PLC
20 開発支援装置(パソコン)
30 通信ケーブル
101 ROM
102 MPU
103 ユーザメモリ
104 ワークRAM
105 データ格納用不揮発性メモリ
106 ASIC
107 入出力メモリ
201 CPU
202 入力部
203 出力部
204 表示部
205 通信部
206 電源部
207 記憶部
210 外部記憶部

Claims (4)

  1. 外部から与えられたコマンドを解釈実行する機能を備えたプログラマブル・コントローラであって、
    許可設定コード記憶領域を有するメモリと、
    プロテクト設定要求コマンドが与えられたときには、メモリの許可設定コード記憶領域の記憶内容が予め決められた第1のコードと一致するときに限り、メモリの許可設定コード記憶領域の記憶内容を、当該プロテクト設定コマンドに付されたパスワードで書き替えるプロテクト設定動作制御手段と、
    プロテクト解除要求コマンドが与えられたときには、メモリの許可設定コード記憶領域の記憶内容と当該プロテクト解除要求コマンドに付されたパスワードとが一致することを少なくとも条件として、メモリのパスワード記憶領域の記憶内容を第1のコードで書き替えるプロテクト解除動作制御手段と、
    プロテクト対象となる作業要求コマンドが与えられたときに、メモリの許可設定コード記憶領域の記憶内容が第1のコードと一致するときには、その作業要求コマンドに対応して予め用意された作業の実行を許可する一方、メモリの許可設定コード記憶領域の記憶内容が第1のコードと一致しないときには、その作業要求マンドに対応して予め用意された作業の実行を禁止し又は作業の実行を制限する作業実行可否決定手段と、を有し、かつ
    前記プロテクト解除動作制御手段は、
    メモリの許可設定コード記憶領域の記憶内容が予め決められた永久プロテクト対応の第2のコードと一致するときには、許可設定コード記憶領域の書き替え処理を行わない、ことを特徴とするプログラマブル・コントローラ。
  2. 作業実行可否決定手段は、メモリの許可設定コード記憶領域の記憶内容が第1のコードと一致しないときには、さらに、その記憶内容が第2のコードと一致するか否かを判定し、第2のコードと一致するときには、その作業要求コマンドが予め第2のコードと関連づけられたものであるときに限り、その作業要求コマンドに対応して予め用意された作業の実行を禁止し又は作業の実行を制限する、ことを特徴とする請求項1に記載のプログラマブル・コントローラ。
  3. プロテクト対象となる作業要求コマンドとして、ユーザプログラムに関する一括読み出しを要求するアップロード要求コマンドが含まれている、ことを特徴とする請求項1又は2に記載のプログラマブル・コントローラ。
  4. プロテクト対象とならない作業要求コマンドとして、ユーザプログラムに関する一括消去を要求する消去要求コマンドが定義されており、
    ユーザプログラムに関する消去要求コマンドが与えられたときには、その消去要求コマンドで指定されるユーザプログラムを一括消去すると共に、これと併せて、許可設定コード記憶領域の記憶内容を第1のコードに書き替えるように構成されている、ことを特徴とする請求項3に記載のプログラマブル・コントローラ。
JP2005318662A 2005-11-01 2005-11-01 プログラマブル・コントローラ Expired - Fee Related JP4471120B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005318662A JP4471120B2 (ja) 2005-11-01 2005-11-01 プログラマブル・コントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005318662A JP4471120B2 (ja) 2005-11-01 2005-11-01 プログラマブル・コントローラ

Publications (2)

Publication Number Publication Date
JP2007128172A true JP2007128172A (ja) 2007-05-24
JP4471120B2 JP4471120B2 (ja) 2010-06-02

Family

ID=38150799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005318662A Expired - Fee Related JP4471120B2 (ja) 2005-11-01 2005-11-01 プログラマブル・コントローラ

Country Status (1)

Country Link
JP (1) JP4471120B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325202A (zh) * 2016-09-29 2017-01-11 深圳市合信自动化技术有限公司 一种对子程序进行加密的方法、校验方法及相应的plc编程系统
JP2022096156A (ja) * 2020-12-17 2022-06-29 株式会社日立産機システム Plcの管理システム及び管理方法、及びplc

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325202A (zh) * 2016-09-29 2017-01-11 深圳市合信自动化技术有限公司 一种对子程序进行加密的方法、校验方法及相应的plc编程系统
JP2022096156A (ja) * 2020-12-17 2022-06-29 株式会社日立産機システム Plcの管理システム及び管理方法、及びplc
JP7411538B2 (ja) 2020-12-17 2024-01-11 株式会社日立産機システム Plcの管理システム及び管理方法、及びplc

Also Published As

Publication number Publication date
JP4471120B2 (ja) 2010-06-02

Similar Documents

Publication Publication Date Title
US7865659B2 (en) Removable storage device
US5748940A (en) Secure updating of non-volatile memory
US20090307783A1 (en) Data processing device, method, program, integrated circuit, and program generating device
EP0768601A1 (en) Device for executing enciphered program
JP3891539B2 (ja) 半導体装置およびその制御装置
US20120159648A1 (en) Apparatus and method for managing digital rights using virtualization technique
JP4607080B2 (ja) プログラマブル・コントローラ・システム
JP4717398B2 (ja) データ処理装置の制御方法
JP4653497B2 (ja) 携帯記憶装置
US20120310379A1 (en) Programmable controller
JP4471120B2 (ja) プログラマブル・コントローラ
JP4489915B2 (ja) 暗証コード照合機能をもった携帯型情報処理装置
JP5304229B2 (ja) 端末装置
JP2006331130A (ja) プログラマブルコントローラ
JP4229896B2 (ja) 書き換え可能な不揮発性メモリ、電子機器、書き換え可能な不揮発性メモリの書き換え方法、及び書き換えプログラム
JP4936834B2 (ja) 半導体メモリカードにおけるデータ保護方法、および半導体メモリカード
JP5061809B2 (ja) 情報処理装置、およびプログラム
JP2006059025A (ja) Hdd用情報漏洩防止装置
JP6150943B2 (ja) 制御装置
KR20040097435A (ko) Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법
JP7361382B2 (ja) 不揮発性記憶装置
JP4883016B2 (ja) 自動販売機の制御システム
KR20070046363A (ko) 데이터 유출차단장치 및 이를 포함하는 데이터 보안저장장치
JP5503980B2 (ja) シーケンスプログラム、シーケンスプログラムを記録した記録媒体、シーケンスプログラムを格納したプログラマブルコントローラ、並びにプログラマブルコントローラにおけるシーケンスプログラムの保護支援方法及び装置
JP4794618B2 (ja) 情報処理装置、情報処理装置制御方法及び記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4471120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100223

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees