JP3688827B2 - プログラマブルコントローラの周辺装置 - Google Patents
プログラマブルコントローラの周辺装置 Download PDFInfo
- Publication number
- JP3688827B2 JP3688827B2 JP28393396A JP28393396A JP3688827B2 JP 3688827 B2 JP3688827 B2 JP 3688827B2 JP 28393396 A JP28393396 A JP 28393396A JP 28393396 A JP28393396 A JP 28393396A JP 3688827 B2 JP3688827 B2 JP 3688827B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- protection
- unit
- command
- password
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
この発明は、プログラマブルコントローラを動作させるためのプログラム保護に関し、特にプログラマブルコントローラ用のプログラムの保護を行うプログラマブルコントローラの周辺装置に関するものである。
【0002】
【従来の技術】
図21は従来のプログラマブルコントローラ(以下PCと称す)の周辺装置の構成図である。この周辺装置1は、PC20を動作させるためのプログラムを開発するためのものであり、PCインタフェース部2と、プログラム転送制御部3と、プログラム記憶部4と、プログラム編集部5と、キャラクタデータ作成部6と、プログラムモニタ部7と、オペレータインタフェース部8と、補助記憶装置インタフェース部9と、補助記憶装置10とを有している。
【0003】
PCインタフェース部2はPC20との間でデータの授受を行い、プログラム転送制御部3はPC20や補助記憶装置10とプログラム記憶部4との間のプログラムの転送制御を行う。
【0004】
プログラム記憶部4は、プログラム編集やモニタ等を行うために、PC20や補助記憶装置10のプログラムをメモリ上に記憶管理し、プログラム編集部5はプログラム記憶部4に記憶されているプログラムを編集する。
【0005】
キャラクタデータ作成部6はプログラムをラダーダイアグラムで画面上に表示するためのキャラクタデータを作成し、プログラムモニタ部7はプログラム記憶部4のデータとキャラクタデータ作成部6で作成されたデータとPC20から得られるデータを元にプログラムのモニタ表示を行う。
【0006】
オペレータインタフェース部8は実際の画面表示やオペレータとのインタフェースを行う。
【0007】
補助記憶装置インタフェース部9は補助記憶装置10にアクセスするためのインタフェースであり、補助記憶装置10は作成されたプログラムやパラメータ等を格納する。
【0008】
つぎに、従来のPCのプログラム保護方法について、図22〜図24のフローチャートを用いて説明する。
【0009】
まず、PCのプログラムの編集を行う場合の動作について説明する。編集の対象となるプログラムは、オペレータインタフェース部8からのオペレータ指示により、プログラム転送制御部3が動作することで、PC20あるいは補助記憶装置10よりプログラム記憶部4に転送される。
【0010】
このプログラムの転送制御について図22を参照して説明する。オペレータインタフェース部8からの転送要求が、プログラム記憶部4からPC20への転送であるか否かを判別し(ステップS2201)、プログラム記憶部4からPC20への転送であれば(ステップS2201肯定)、転送先のPC20内でプログラム単位に設定されている書き込み禁止の情報をチェックし(ステップS2202)、同一のプログラムが書き込み禁止で存在していれば(ステップS2202肯定)、転送を行わないで、終了する。
【0011】
これに対し、書き込み禁止でなければ(ステップS2202否定)、プログラム記憶部4からPC20へ、PCインタフェース部2を介してプログラムを転送する(ステップS2203)。
【0012】
オペレータインタフェース部8からの転送要求が、プログラム記憶部4から補助記憶装置10への転送であれば(ステップS2201否定→ステップS2204肯定)、転送先の補助記憶装置10内の同一のプログラムが、書き込み禁止で存在していないかを補助記憶装置インタフェース部9を介してチェックし(ステップS2205)、書き込み禁止であれば(ステップS2205肯定)、転送を行わないで、終了する。
【0013】
これに対し、書き込み禁止でない場合には(ステップS2205否定)、プログラム記憶部4から補助記憶装置10へ、補助記憶装置インタフェース部9を介してプログラムを転送する(ステップS2206)。
【0014】
オペレータインタフェース部8からの転送要求が、PC20内のプログラムの編集等の目的で、PC20からプログラム記憶部4への転送であれば(ステップS2201否定→ステップS2204否定→ステップS2207肯定)、PC20内でプログラム単位に設定されている読み出し禁止の情報をチェックし(ステップS2208)、読み出し禁止であれば(ステップS2208肯定)、転送を行わないで、終了する。
【0015】
これに対し、読み出し禁止でない場合には(ステップS2208否定)、PC20からプログラム記憶部4へ、PCインタフェース部2を介してプログラムを転送する(ステップS2209)。
【0016】
オペレータインタフェース部8からの転送要求が、補助記憶装置10内のプログラムの編集等の目的で、補助記憶装置10からプログラム記憶部4への転送であれば(ステップS2201否定→ステップS2204否定→ステップS2207否定)、転送するファイルが補助記憶装置10内で読み出し禁止になっていないであるか否かを判別し(ステップS2210)、読み出し禁止になっていれば(ステップS2210肯定)、転送を行わないで、終了する。
【0017】
これに対し、読み出し禁止になっていない場合には(ステップS2210否定)、補助記憶装置10からプログラム記憶部4へ、補助記憶装置インタフェース部9を介してプログラムを転送する(ステップS2211)。
【0018】
つぎにプログラム編集部の動作について図23を参照して説明する。PC20あるいは補助記憶装置10からプログラム記憶部4へのプログラムの転送が完了すると、オペレータインタフェース部8によってプログラム編集部5が起動される。
【0019】
プログラム編集部5では、編集するプログラム(シーケンスプログラム)をプログラム記憶部4から読み出し(ステップS2301)、実際にプログラムの命令リストから、ラダーダイアグラムで画面上に表示するためのキャラクタデータを作成するために、キャラクタデータ作成部6へ読み出したプログラムを引き渡し、キャラクタデータを作成する(ステップS2302)。
【0020】
キャラクタデータがキャラクタデータ作成部6で作成されれば、オペレータインタフェース部8を介して実際にラダーダイアグラムの編集画面をコンソールに画面表示する(ステップS2303)。
【0021】
続いて、編集操作が行われるか否かをチェックし(ステップS2304)、編集操作があれば(ステップS2304肯定)、編集操作に応じた編集処理を行い(ステップS2305)、編集結果をプログラム記憶部4に反映する(ステップS2306)。
【0022】
編集操作がない場合には(ステップS2304否定)、編集の終了操作が行われたか否かをチェックし(ステップS2307)、終了操作が行われていれば(ステップS2307肯定)、プログラム編集部の処理を終了する。
【0023】
編集したプログラムをPC20に反映する場合は、オペレータインタフェース部8から、プログラム記憶部4からPC20あるいは補助記憶装置10への転送要求がプログラム転送制御部3に対し行われる。このとき、プログラム転送制御部3によって、転送先に同一のプログラムが、書き込み禁止で存在しているかチェックを行って、書き込み禁止となっていれば転送が行われず、編集結果はPC20あるいは補助記憶装置10に反映されない。
【0024】
つぎにプログラムをモニタする場合の動作を図24を参照して説明する。オペレータインタフェース部8からモニタ開始要求がプログラムモニタ部7に出されると、まず全キャラクタデータのトレースが完了したか否かをチェックし(ステップS2401)、トレースが完了していなければ(ステップS2401否定)、現在のキャラクタデータからラダーダイアグラムのモニタを行うために、1命令分のキャラクタデータを取り出してモニタデータを作成する(ステップS2402,ステップS2403)。モニタデータには、ラダーダイアグラムで表現されている接点やコイルの情報と、それぞれのキャラクタデータ上の位置データなどが含まれる。
【0025】
全キャラクタデータのモニタデータの作成が完了した時点で(ステップS2401肯定)、モニタデータから、PC20での接点やコイルの現在の情報をPC20に対して、PCインタフェース部2を介して要求する(ステップS2404)。
【0026】
続いて、PC20からの情報の受信を待ち(ステップS2405)、受信した接点やコイルの情報を元に、画面上に接点の状態をオペレータインタフェース部8を介してモニタ表示する(ステップS2406)。
【0027】
続いて、ここまでの処理中にモニタ終了要求が、オペレータから出されていないか否かをチェックし(ステップS2407)を行い、モニタ終了要求が出されていれば(ステップS2407肯定)、プログラムモニタ部の処理を終了する。これに対し、モニタ終了要求が出されていなければ(ステップS2407否定)、ステップS2404からの処理を継続して行う。
【0028】
つぎにキャラクタデータ作成部6の動作について図25を参照して説明する。キャラクタデータ作成部6は、渡されたプログラムの命令リストの先頭から、終了命令までの各命令からラダーダイアグラムの表示を行うためのデータ変換を行い、キャラクタデータを作成する(ステップS2501,ステップS2502)。
【0029】
また、その他の従来技術として、特開平1−231102号公報に示されているように、PC内部の制御パラメータの部分にも、パスワードと設定許可コードで、書き込みの保護を行うものや、特開平5−233036号公報に示されているように、プログラム中の命令により、PCからのプログラムの読み出しを禁止したり、書き込みを禁止するものがある。
【0030】
【発明が解決しようとする課題】
従来のPCのプログラム保護方法は単にプログラムのPCからの読み出しや書き込みを禁止するものであり、このプログラム保護方法では、PCを搭載したシステムを製作したメーカにとっては、メーカのトレードシークレットは保護できるものの、実際の運用にあたっては、メーカ側ではなくユーザ側でのプログラムの調整が必要な部分までも、保護によって自由に変更できないと云う問題点があった。
【0031】
従来のプログラム保護方法では、プログラムメモリ中に保護のための命令が入っていたとしても、実際に保護されるべき部分は、プログラム中にそのまま存在するため、補助記憶装置等にプログラムを格納した場合、プログラム中のデータを解析し、部分的にコピーしたりすることで、保護されている部分の内容が比較的容易に取り出せてしまうと云う問題点があった。
【0032】
この発明は、上述のような問題点を解決するためになされたもので、プログラムの意図された部分のみの変更を禁止し、またプログラムの意図された部分の振る舞いが分からないように、意図された部分のプログラムのモニタができないようし、またトレードシークレットを確実に保護するために、プログラムの意図された部分の表示を行わないようにしたりして、メーカのトレードシークレットの保護と、実際の運用にあたってのユーザ側でのプログラムの調整とを両立し、また意図された部分を容易にコピーなどで取り出せないようにするプログラマブルコントローラの周辺装置を提供することを目的とする。
【0033】
【課題を解決するための手段】
上述の目的を達成するために、この発明によるプログラマブルコントローラの周辺装置は、保護を解除するためのパスワードが記述されたパスワード記述部、および表示禁止の有無、編集禁止の有無を少なくとも有する保護仕様が記述された保護仕様記述部を含み保護開始位置を表す保護命令と、保護終了位置を示す保護終了命令とが予め命令中の任意の部分に書き込まれたシーケンスプログラムが搭載されているプログラマブルコントローラから前記シーケンスプログラムを取り込んで編集するプログラマブルコントローラの周辺装置であって、前記プログラマブルコントローラから転送される前記シーケンスプログラムをメモリ上で記憶管理するプログラム記憶部と、プログラマブルコントローラおよびプログラム記憶部間のシーケンスプログラムの転送を制御するプログラム転送制御部と、前記保護命令の保護仕様記述部に編集禁止あるいは表示禁止の保護仕様が記述されているか否かを判定し、編集禁止あるいは表示禁止の保護仕様が記述されている場合は、前記パスワード記述部に記述されたパスワードに一致するパスワードが入力されない限り、前記プログラム記憶部によって記憶管理されるシーケンスプログラムにおける前記保護命令から保護終了命令までの保護領域部分の編集を禁止するプログラム編集部と、前記保護命令の保護仕様記述部に表示禁止の保護仕様が記述されているか否かを判定し、表示禁止の保護仕様が記述されている場合は、前記パスワード記述部に記述されたパスワードに一致するパスワードが入力されない限り、前記プログラム記憶部によって記憶管理されるシーケンスプログラムにおける前記保護命令から保護終了命令までの保護領域部分の表示を禁止する表示制御部とを備えることを特徴とする。
【0045】
【発明の実施の形態】
以下に添付の図を参照してこの発明の実施の形態を詳細に説明する。なお、以下に説明するこの発明の実施の形態において上述の従来例と同一構成の部分は、上述の従来例に付した符号と同一の符号を付してその説明を省略する。
【0046】
図1はこの発明によるPCのプログラム保護方法の実施に使用される周辺装置を示している。この周辺装置1は、プログラム転送制御部3とプログラム記憶部4との間に、データの暗号化・復号化部11を含んでいる。
【0047】
暗号化・復号化部11は、プログラム転送制御部3によってプログラム記憶部4からPCインタフェース部2を介してプログラムをPC20に転送したり、PC20からプログラム記憶部4へのプログラム転送、あるいはプログラム記憶部4から補助記憶装置10へのプログラム転送、補助記憶装置10からプログラム記憶部4へのプログラム転送の際に、プログラムの保護命令から保護終了命令の間のデータを暗号化および復号化する。
【0048】
つぎにこの発明によるPCのプログラム保護方法の実施要領を図2〜図21のフローチャート及びデータを表す図面を用いて説明する。
【0049】
プログラムの意図された部分の保護のために、保護命令“PROTECT”と保護終了命令“PROTECTEND”とが用意されており、プログラムの意図された部分の保護を行いたい部分に、予め保護命令“PROTECT”と保護終了命令“PROTECTEND”を編集してプログラムに書き込んでおく。
【0050】
保護命令“PROTECT”は、図2に示されているように、パスワード記述部とオプション記述部を有しており、パスワード記述部には保護を解除する際に必要なパスワードを記述し、オプション記述部には保護仕様を記号で記述する。
【0051】
オプション指定には、保護終了命令までの部分をプログラムの編集を禁止する“MODIFY”と、プログラムの表示を禁止する“DISPLAY”と、プログラムのモニタを禁止する“MONITOR”と、プログラムにおけるデバイスのモニタを禁止する“DEV−MON”と、保護終了命令までの部分を暗号化する“CIPHER”がある。“DISPLAY”がオプション指定された場合には、表示禁止により必然的に編集やモニタも禁止になり、“MONITOR”がオプション指定された場合には、モニタ禁止により必然的に編集も禁止になる。
【0052】
例えば、図3に示されているようなプログラムに表示および編集、モニタ禁止の部分を設ける場合には、図4(a)に示されているように、プログラム中に、保護命令“PROTECT”と保護終了命令“PROTECTEND”を記述する。これをラダーダイアグラムで表すと、図5のようになる。
【0053】
また、図4(b)は、プログラム中に保護命令“PROTECT”が、表示禁止“DISPLAY”の指定で、置かれている場合の命令リストでの画面表示例を示している。
【0054】
PC20のプログラムの編集を行う場合、編集の対象となるプログラムは、オペレータインタフェース部8からのオペレータの指示によって、プログラム転送制御部3からプログラム記憶部4へ転送される。プログラムの転送については、従来技術と同様であるが、プログラムがプログラム記憶部4へ転送される際には、暗号化・復号化部11で暗号化されている部分が復号される。
【0055】
つぎに、プログラム編集部5の動作について図6のフローチャートを用いて説明する。オペレータインタフェース部8から起動されたプログラム編集部5は、シーケンスプログラムをプログラム記憶部4から読み出す(ステップS601)。続いて、読み出したプログラムをキャラクタデータ作成部6に引渡し、プログラムの命令リストから、ラダーダイアグラム表示のためのキャラクタデータを作成する(ステップS602)。
【0056】
キャラクタデータが作成されれば、キャラクタデータを元に、オペレータインタフェース部8にて画面上にラダーダイアグラムを表示する(ステップS603)。このとき、プログラム中に含まれる保護命令のオプション指定の如何によって、作成されるキャラクタデータが異なるため、画面表示も異なる。
【0057】
保護命令“PROTECT”に“MODIFY”あるいは“MONITOR”がオプション指定されている場合には、編集禁止であるが、表示は許可なので、図7に示されているように、編集禁止領域が反転表示され、“DISPLAY”がオプション指定されている場合には、表示も禁止であるから、図8に示されているように、保護命令“PROTECT”と保護終了命令“PROTECTEND”との間のプログラムが表示されない。
【0058】
つぎに、オペレータインタフェース部8から編集の操作を待つ(ステップS604)。編集操作があった場合には(ステップS604肯定)、編集操作を行おうとしている箇所が、保護されている範囲であるか否かをチェックする(ステップS605)。保護されている範囲でなければ(ステップS605否定)、編集操作に応じた処理を行い(ステップS610)、続いて編集結果をプログラム記憶部4に反映する(ステップS611)。
【0059】
これに対し、編集操作を行おうとしている箇所が保護されている範囲である場合には(ステップS605肯定)、既に保護が解除されているか否かをチェックする(ステップS606)。既に保護が解除されていれば(ステップS606肯定)、保護されている範囲外の部分と同様に、編集操作に応じた処理を行い(ステップS610)、続いて編集結果をプログラム記憶部4に反映する(ステップS611)。
【0060】
保護が解除されていない場合には(ステップS606否定)、図9〜図11に示されているようなパスワードの入力を促す画面を表示する(ステップS607)。
【0061】
つぎに、入力されたパスワードが、保護命令“PROTECT”のパスワード記述部に記述されているパスワードと一致するか否かのチェックを行い(ステップS608)、一致すれば(ステップS608肯定)、保護を解除し(ステップS609)、編集操作に応じた処理を行い(ステップS610)、続いて編集結果をプログラム記憶部4に反映する(ステップS611)。
【0062】
パスワードが一致していない場合には(ステップS608否定)、該当部分が編集できないことを示すメッセージを表示し(ステップS612)、ステップS604に戻る。
【0063】
編集処理の終了は、ステップS613でチェックし、編集終了が指示されていれば(ステップS613肯定)、編集処理は終了する。編集終了が指示されていなければ(ステップS613否定)、ステップS604に戻る。
【0064】
つぎにキャラクタデータ作成部6の処理を図12のフローチャートを用いて説明する。プログラム編集部5からキャラクタデータの作成要求がキャラクタデータ作成部6に出されると、まず終了命令であるか否かをチェックし(ステップS1201)、終了命令であれば(ステップS1201肯定)、キャラクタデータの作成を終了する。
【0065】
終了命令でない場合には(ステップS1201否定)、保護命令“PROTECT”であるか否かをチェックする(ステップS1202)。保護命令“PROTECT”でなければ(ステップS1202否定)、命令をキャラクタデータに変換し、通常のキャラクタデータを作成する(ステップS1208)。
【0066】
これに対し、保護命令“PROTECT”である場合には(ステップS1202肯定)、すでにプログラム編集部5で保護が解除されているか否を判別する(ステップS1203)。解除されていれば(ステップS1203肯定)、命令をキャラクタデータに変換し、通常のキャラクタデータを作成する(ステップS1208)。
【0067】
保護が解除されていなければ(ステップS1203否定)、保護命令“PROTECT”のオプション記述部をチェックし、表示禁止“DISPLAY”がオプション指定されていれば(ステップS1204肯定)、保護終了命令“PROTECTEND”まで、表示プロテクト領域である旨を表示するためのキャラクタデータを作成する(ステップS1205)。
【0068】
これに対し、保護命令“PROTECT”で、編集禁止“MODIFY”あるいはあるいはモニタ禁止“MONITOR”が指定されている場合には(ステップS1206肯定)、保護終了命令“PROTECTEND”までの範囲を、反転表示するキャラクタデータを作成する(ステップS1207)。
【0069】
なお、保護命令はあるものの、編集禁止、モニタ禁止あるいは表示禁止が指定されていない場合には(ステップS1206否定)、通常のキャラクタデータを作成する(ステップS1208)。
【0070】
プログラムモニタを行う際の動作を図13のフローチャートを用いて説明する。オペレータインタフェース部8からモニタ開始要求がプログラムモニタ部7に出されると、まず全キャラクタデータのトレースが完了したか否かをチェックし(ステップS1301)、トレースが完了していなければ(ステップS1301否定)、1命令分のキャラクタデータを取出す(ステップS1302)。
【0071】
つぎに、取り出したキャラクタデータが保護命令によるモニタ禁止領域内のデータであるか否かをチェックし(ステップS1303)、モニタ禁止領域内のデータでなければ(ステップS1303否定)、モニタデータを作成する(ステップS1305)。
【0072】
これに対し、モニタ禁止領域内のデータであった場合には(ステップS1303肯定)、すでにモニタ禁止の保護が解除済みであるか否かをチェックし(ステップS1304)、解除済みであれば(ステップS1304肯定)、モニタデータを作成する(ステップS1305)。保護解除済みでなければ(ステップS1304否定)、モニタデータを作成せずにステップS1301に戻る。
【0073】
このようにしてモニタデータの作成が完了すれば(ステップS1301肯定)モニタデータから、PC20での接点やコイルの現在の情報をPC20に対して、PCインタフェース部2を介して要求する(ステップS1306)。
【0074】
続いて、PC20からの情報の受信を待ち(ステップS1307)、受信した現在接点やコイルの情報を元に、接点の状態をオペレータインタフェース部8を介してモニタ表示する(ステップS1308)。
【0075】
このとき、保護命令“PROTECT”で、モニタ禁止の指定“MONITOR”がある場合には、キャラクタデータ作成部6にて、保護されている範囲が反転され、さらにモニタも行われないため、図7に示されているような画面表示になる。
【0076】
つづいて、モニタ禁止領域のモニタ要求が、オペレータインタフェース部8などから指示されていないか否かをチェックし(ステップS1309)、モニタ禁止領域でのモニタ要求がある場合には(ステップS1309肯定)、ステップS1310に移行し、ここで、すでにモニタ禁止の保護が解除されていれば(ステップS1310肯定)、そのままモニタを継続して行う。
【0077】
これに対し、モニタ禁止の保護が解除されていない場合には(ステップS1310否定)、図9に示されているように、パスワード入力を促す画面を表示し、パスワードの入力処理を行う(ステップS1311)。
【0078】
入力されたパスワードが保護命令“PROTECT”のパスワード記述部に記述されているパスワードと一致すれば(ステップS1312肯定)、モニタ禁止保護の解除を行い(ステップS1314)、ステップS1301に戻り、モニタデータの作成から、再度行う。
【0079】
入力されたパスワードが一致しなければ(ステップS1312否定)、該当部分のモニタができない旨を画面に表示し(ステップS1313)、ステップS1306からの処理を繰り返す。
【0080】
モニタ禁止領域でのモニタ要求がない場合には(ステップS1309否定)、モニタ処理中にオペレータインタフェース部8等から指示されるモニタ終了要求の有無をチェックし(ステップS1315)、モニタ終了要求があれば(ステップS1315肯定)、プログラムモニタ部7の処理を終了する。モニタ終了要求がなければ(ステップS1315否定)、ステップS1306からの処理を繰り返す。
【0081】
上述のように、プログラム命令中の任意の部分に置かれた保護命令“PROTECT”と保護終了命令“PROTECTEND”により、キャラクタデータの作成時およびプログラム編集で、保護命令“PROTECT”のつぎの行から保護終了命令“PROTECTEND”までの行の編集を禁止、即ちプログラムの意図された部分のみの変更を禁止できるようにしたため、その他の部分の変更は行えるようになり、PCが搭載されているシステムを運用する際、運用する側(ユーザ側)で自由に変更・調整が行える部分と、PCのプログラムを作成した側とで誤って変更されてはいけない部分を分けられるようになる。
【0082】
また、プログラム中の任意の部分に置かれた保護命令“PROTECT”のオプション指定で、モニタ禁止“MONITOR”が指定されていれば、保護範囲のデータのモニタを行わないから、PCが搭載されているシステムを製作するメーカのプログラムの振る舞いの部分に関するトレードシークレットを守れるようになる。
【0083】
また、プログラム中の任意の部分に置かれた保護命令“PROTECT”に、表示禁止“DISPLAY”が指定されている場合には、キャラクタデータ作成部6で、その部分のキャラクタデータを作成せず、画面表示しないから、PCが搭載されているシステムを製作するメーカのプログラムのトレードシークレットが守れるようになる。
【0084】
つぎに、暗号化・復号化部11の動作について図14〜図16のフローチャートを用いて説明する。オペレータインタフェース部8などからプログラムの転送要求がプログラム転送制御部3に対して行われると、プログラム記憶部4とプログラム転送制御部3の間で、プログラムが暗号化・復号化部11により暗号化あるいは復号化の処理が行われる。
【0085】
暗号化・復号化部11では、補助記憶装置10あるいはPC20からプログラム記憶部4へのプログラム転送であるか否かをチェックする(ステップS1401)。プログラム記憶部4へのプログラム転送の場合には(ステップS1401肯定)、プログラム記憶部4への複号化処理を行う(ステップS1402)。
【0086】
これに対し、プログラム記憶部4への転送でないと判断した場合には、プログラム記憶部4から補助記憶装置10あるいはPC20へのプログラム転送と判断し、プログラム記憶部4からの暗号化処理を行う(ステップS1403)。
【0087】
図15はプログラム記憶部4からの暗号化処理のフローチャートであり、この暗号化処理では、プログラムを順にチェックし、終了命令までの保護命令をチェックしながら、暗号化処理を行う。
【0088】
先ず、プログラム終了命令までのチェックが完了したか否かを判別し(ステップS1501)、プログラム終了命令までのチェックが完了していない場合には(ステップS1501否定)、対象命令が保護命令“PROTECT”であるか否かを判別し(ステップS1502)、保護命令“PROTECT”でなければ(ステップS1502否定)、命令を暗号化せずにプログラム転送制御部3へ引き渡す(ステップS1506)。
【0089】
これに対し、保護命令“PROTECT”である場合には(ステップS1502肯定)、保護命令“PROTECT”のパスワード記述部とオプション記述部の内容を暗号化する(ステップS1503)。
【0090】
つづいて、保護命令“PROTECT”のオプション記述部に暗号化の指定“CIPHER”がされているか否かを判別し(ステップS1504)、指定されていれば(ステップS1504肯定)、保護終了命令“PROTECT”までのプログラムを暗号化してプログラム転送制御部3に引き渡す(ステップS1505)。
【0091】
保護命令“PROTECT”のオプション記述部に暗号化の指定“CIPHER”がされていない場合には(ステップS1504否定)、以降の命令を暗号化せずにプログラム転送制御部3へ引き渡す(ステップS1506)。
【0092】
このように暗号化が行われるため、図17に示されているように、保護命令“PROTECT”のオプション記述部に暗号化“CIPHER”が指定されているプログラムは、図18に示す範囲の部分が暗号化されてプログラム転送制御部3へ渡される。
【0093】
これに対し、図19に示されているように、保護命令“PROTECT”のオオプション記述部に暗号化“CIPHER”が指定されていない場合には、図20に示されているように、保護命令“PROTECT”のパラメータ部分のみが暗号化される。
【0094】
上述のように、保護範囲のプログラムは暗号化されてPC20や補助記憶装置10に転送されるから、プログラム中の保護された部分のコピーやリバースエンジニアリングによる解析が阻止される。
【0095】
なお、図16はプログラム記憶部4への復号化処理のフローチャートであり、この復号化処理では、プログラムを順にチェックし、終了命令までの保護命令をチェックしながら、復号化処理を行う。
【0096】
先ず、プログラム終了命令までのチェックが完了したか否かを判別し(ステップS1601)、プログラム終了命令までのチェックが完了していない場合には(ステップS1601否定)、対象命令が保護命令“PROTECT”であるか否かを判別し(ステップS1602)、保護命令“PROTECT”でなければ(ステップS1602否定)、命令をそのままプログラム記憶部4にセットする(ステップS1606)。
【0097】
これに対し、保護命令“PROTECT”である場合には(ステップS1602肯定)、暗号化された保護命令“PROTECT”のパラメータを復号する(ステップS1603)。
【0098】
つづいて、保護命令“PROTECT”のオプション記述部に暗号化のパラメータ“CIPHER”が記述されているであるか否かを判別し(ステップS1604)、暗号化のパラメータの記述があれば(ステップS1604肯定)、保護終了命令“PROTECT”までのプログラムを復号してプログラム記憶部4にセットする(ステップS1605)。
【0099】
保護命令“PROTECT”のオプション記述部に暗号化の指定“CIPHER”がされていない場合には(ステップS1604否定)、命令をそのままプログラム記憶部4にセットする(ステップS1606)。
【0100】
【発明の効果】
以上の説明から理解される如く、この発明によるプログラマブルコントローラの周辺装置によれば、プログラムの保護命令から保護終了命令までの間以外の部分は編集、表示ができるが、保護命令から保護終了命令の部分は編集、表示ができなくなるから、プログラムの任意の部分の変更は行えるようになり、PCが搭載されているシステムを運用する際、運用する側で自由に変更・調整が行える部分と、PCのプログラムを作成した側で誤って変更されてはいけない部分とを分けることができ、メーカのトレードシークレットの保護と、実際の運用にあたってのユーザ側でのプログラムの調整とが両立するようになるとともに、プログラム保護に関して高いセキュリティ性が得られる。
【図面の簡単な説明】
【図1】 この発明によるPCのプログラム保護方法が適用されるPC周辺装置の構成を示すブロック図である。
【図2】 この発明によるPCののプログラム保護方法で使用する保護命令の記述形式を示す説明図である。
【図3】 保護命令が入っていない状態のプログラムの命令リストを示す説明図である。
【図4】 (a)はこの発明によるPCのプログラム保護方法において、保護命令が入っている状態のプログラムの命令リスト例を示す説明図、(b)はプログラム中に保護命令が表示禁止の指定で置かれている場合の命令リストでの画面表示例を示す説明図である。
【図5】 この発明によるPCのプログラム保護方法において、保護命令が入っている状態のプログラムをラダーダイアグラムで表現した説明図である。
【図6】 この発明によるPCのプログラム保護方法において、プログラム編集部の動作を表すフローチャートである。
【図7】 この発明によるPCのプログラム保護方法において、プログラム中に保護命令がモニタ禁止の指定で置かれている場合のラダーダイアグラムの画面表示例を示す説明図である。
【図8】 この発明によるPCのプログラム保護方法において、プログラム中に保護命令が表示禁止の指定で置かれている場合のラダーダイアグラムの画面表示例を示す説明図である。
【図9】 この発明によるPCのプログラム保護方法において、プログラム中にモニタ禁止の保護がされている部分を編集・モニタしようとした際の画面表示例を示す説明図である。
【図10】 この発明によるPCのプログラム保護方法において、プログラム中に編集禁止の保護がされている部分を編集しようとした際の画面表示を示す説明図である。
【図11】 この発明によるPCのプログラム保護方法において、プログラム中に表示禁止の保護がされている部分を編集・モニタしようとした際の、画面表示を示す説明図である。
【図12】 この発明によるPCのプログラム保護方法において、キャラクタデータ作成部の動作を表すフローチャートである。
【図13】 この発明によるPCのプログラム保護方法において、プログラムモニタ部の動作を表すフローチャートである。
【図14】 この発明によるPCのプログラム保護方法において、暗号化・復号化部の動作を表すフローチャートである。
【図15】 この発明によるPCのプログラム保護方法において、暗号化・復号化部のプログラム記憶部からの暗号化処理の動作を表すフローチャートである。
【図16】 この発明によるPCのプログラム保護方法において、暗号化・復号化部のプログラム記憶部への復号化処理の動作を表すフローチャートである。
【図17】 この発明によるPCのプログラム保護方法において、プログラム中に保護命令が暗号化指定で入っている状態のプログラムの命令リスト例を示す説明図である。
【図18】 この発明によるPCのプログラム保護方法において、プログラム中に保護命令が暗号化指定で入っている状態の暗号化される範囲を示す説明図である。
【図19】 この発明によるPCのプログラム保護方法において、プログラム中に保護命令が暗号化指定されていない状態のプログラムの命令リストを示す説明図である。
【図20】 この発明によるPCのプログラム保護方法において、プログラム中に保護命令が暗号化指定されていない状態の暗号化される範囲を示した説明図である。
【図21】 従来におけるPCのプログラム保護方法が適用されるPC周辺装置の構成を示すブロック図である。
【図22】 従来におけるPCのプログラム保護方法が適用されたPC周辺装置におけるプログラム転送制御部の動作を表すフローチャートである。
【図23】 従来におけるPCのプログラム保護方法が適用されたPC周辺装置におけるプログラム編集部の動作を表すフローチャートである。
【図24】 従来におけるPCのプログラム保護方法が適用されたPC周辺装置におけるプログラムモニタ部の動作を表すフローチャートである。
【図25】 従来における実施の形態であるPCのプログラム保護方法が適用されたPC周辺装置におけるキャラクタデータ作成部の動作を表すフローチャートである。
【符号の説明】
1 周辺装置,2 PCインタフェース部,3 プログラム転送制御部,4 プログラム記憶部,5 プログラム編集部,6 キャラクタデータ作成部,7 プログラムモニタ部,8 オペレータインタフェース部,9 補助記憶装置インタフェース部,10 補助記憶装置,11 暗号化・復号化部,20 PC(プログラマブルコントローラ)。
Claims (1)
- 保護を解除するためのパスワードが記述されたパスワード記述部、および表示禁止の有無、編集禁止の有無を少なくとも有する保護仕様が記述された保護仕様記述部を含み保護開始位置を表す保護命令と、保護終了位置を示す保護終了命令とが予め命令中の任意の部分に書き込まれたシーケンスプログラムが搭載されているプログラマブルコントローラから前記シーケンスプログラムを取り込んで編集するプログラマブルコントローラの周辺装置であって、
前記プログラマブルコントローラから転送される前記シーケンスプログラムをメモリ上で記憶管理するプログラム記憶部と、
プログラマブルコントローラおよびプログラム記憶部間のシーケンスプログラムの転送を制御するプログラム転送制御部と、
前記保護命令の保護仕様記述部に編集禁止あるいは表示禁止の保護仕様が記述されているか否かを判定し、編集禁止あるいは表示禁止の保護仕様が記述されている場合は、前記パスワード記述部に記述されたパスワードに一致するパスワードが入力されない限り、前記プログラム記憶部によって記憶管理されるシーケンスプログラムにおける前記保護命令から保護終了命令までの保護領域部分の編集を禁止するプログラム編集部と、
前記保護命令の保護仕様記述部に表示禁止の保護仕様が記述されているか否かを判定し、表示禁止の保護仕様が記述されている場合は、前記パスワード記述部に記述されたパスワードに一致するパスワードが入力されない限り、前記プログラム記憶部によって記憶管理されるシーケンスプログラムにおける前記保護命令から保護終了命令までの保護領域部分の表示を禁止する表示制御部と、
を備えることを特徴とするプログラマブルコントローラの周辺装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28393396A JP3688827B2 (ja) | 1996-10-25 | 1996-10-25 | プログラマブルコントローラの周辺装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28393396A JP3688827B2 (ja) | 1996-10-25 | 1996-10-25 | プログラマブルコントローラの周辺装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10124308A JPH10124308A (ja) | 1998-05-15 |
JP3688827B2 true JP3688827B2 (ja) | 2005-08-31 |
Family
ID=17672103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28393396A Expired - Fee Related JP3688827B2 (ja) | 1996-10-25 | 1996-10-25 | プログラマブルコントローラの周辺装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3688827B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003157104A (ja) * | 2001-11-22 | 2003-05-30 | Fuji Electric Co Ltd | プログラミング装置 |
JP4495945B2 (ja) * | 2003-10-30 | 2010-07-07 | 株式会社東芝 | 制御プログラムの保護機能を備えた制御システム |
US7853787B2 (en) * | 2005-01-11 | 2010-12-14 | Mitsubishi Denki Kabushiki Kaisha | Peripheral device for programmable logic controller |
JP4766300B2 (ja) * | 2005-01-24 | 2011-09-07 | 横河電機株式会社 | プログラムの編集支援装置 |
JP4501781B2 (ja) * | 2005-05-26 | 2010-07-14 | パナソニック電工株式会社 | プログラマブルコントローラ |
KR100787684B1 (ko) * | 2006-09-08 | 2007-12-21 | 미쓰비시덴키 가부시키가이샤 | 프로그래머블 로직 컨트롤러의 주변 장치 |
JP2009070144A (ja) * | 2007-09-13 | 2009-04-02 | Omron Corp | Plcにおけるプログラミング方法 |
JP2011113198A (ja) * | 2009-11-25 | 2011-06-09 | Koyo Electronics Ind Co Ltd | パスワードによるプログラム保護方法 |
JP5503980B2 (ja) * | 2010-01-14 | 2014-05-28 | 株式会社日立産機システム | シーケンスプログラム、シーケンスプログラムを記録した記録媒体、シーケンスプログラムを格納したプログラマブルコントローラ、並びにプログラマブルコントローラにおけるシーケンスプログラムの保護支援方法及び装置 |
JP5091283B2 (ja) * | 2010-06-25 | 2012-12-05 | 株式会社日立製作所 | 制御装置の保守ツール |
SG11201601239PA (en) * | 2013-08-21 | 2016-03-30 | Mitsubishi Electric Corp | Program for program editing |
KR102052489B1 (ko) | 2017-06-23 | 2019-12-05 | 미쓰비시덴키 가부시키가이샤 | 래더 프로그램 부정 이용 방지 시스템, 래더 프로그램 부정 이용 방지 방법, 및 엔지니어링 툴 |
-
1996
- 1996-10-25 JP JP28393396A patent/JP3688827B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10124308A (ja) | 1998-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3688827B2 (ja) | プログラマブルコントローラの周辺装置 | |
JP4789819B2 (ja) | アプリケーションとデータの管理方法、管理システム、それに用いられるシンクライアント端末、管理サーバ、および、リモート計算機 | |
JP4470312B2 (ja) | サーバ装置、再生装置、データ配信方法、データ再生方法、記憶媒体 | |
US6378071B1 (en) | File access system for efficiently accessing a file having encrypted data within a storage device | |
KR100682290B1 (ko) | 콘텐츠 관리 시스템, 장치, 방법 및 프로그램 격납 매체 | |
DE60224480T2 (de) | Vorrichtung und Verfahren zum geschützten Aufzeichnen und Abspielen digitaler Inhalte | |
EP1211681B1 (en) | Data storage device and control method therefor | |
EP1001419B1 (en) | Data conversion apparatus and method in copyright protecting system | |
EP0923076B1 (en) | Recording and reproduction of data and provision and collection of information | |
US6880054B2 (en) | Portable data storage device having a secure mode of operation | |
KR101190124B1 (ko) | 소스 코드 보호 | |
KR20020064945A (ko) | 데이터 재생 장치, 데이터 기록 장치, 데이터 재생 방법,데이터 기록 방법 및 리스트 갱신 방법 | |
JP2008009631A (ja) | 記憶装置及び記憶方法 | |
JP2007011511A (ja) | 情報漏洩防止方法 | |
EP2571026B1 (en) | Authenticating Memory Card with flag indicating validity period in unprotected user area common for a block of subscription files. | |
US7076063B2 (en) | Master digital data creation device and digital data reproduction device | |
KR100975133B1 (ko) | 보조기억매체의 보안 관리 시스템 및 이를 이용한 보안관리 방법 | |
KR100699717B1 (ko) | 과금 처리 기능을 구비한 정보 신호의 기록 장치 및 과금처리 단말 장치 | |
JP2008165738A (ja) | ジョブ処理方法、画像処理システム、及びプログラム | |
EP2571025A2 (en) | Information processing apparatus, information processing method and program | |
JP6693276B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP2002190795A (ja) | 情報端末及び情報端末システム | |
JP2007172593A (ja) | ライセンス管理装置、ライセンス管理方法およびライセンス管理プログラム | |
JP2004254193A (ja) | ユーザ機器、サーバ、コンテンツ流通システム、コンテンツ流通方法、及びプログラム | |
JP2003006980A (ja) | 記録再生装置及び該記録再生装置を備えた情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050509 |
|
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: 20050607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050609 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080617 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090617 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100617 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100617 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110617 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120617 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130617 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |