(57)【特許請求の範囲】
【請求項１】
プログラマブルコントローラのシーケンスプログラムメモリに格納可能であって制御対象である機器の制御シーケンスを書き示し、前記プログラマブルコントローラで実行されるシーケンスプログラムであって、
前記シーケンスプログラムメモリに格納されたシーケンスプログラムは、
当該プログラマブルコントローラ外のシーケンスプログラム保護支援装置に取り込まれ、当該シーケンスプログラム保護支援装置にて、
当該シーケンスプログラムのオペコードがダミーデータであるか否かをチェックされ、当該ダミーデータがプログラマブルコントローラ側では何も処理せず機器の制御内容に影響を与えることがない命令であって、当該シーケンスプログラムを書き換えるための周辺装置側では不当命令として定義されるデータであり、
当該チェック結果、当該オペコードがダミーデータでなく、保護状態にないと判断された場合、前記シーケンスプログラムにダミーデータオペコードが追加されて、シーケンスプログラム全体の処理ステップ番号が再構成され、
当該再構成したシーケンスプログラムは前記プログラマブルコントローラへ書き戻され、
前記プログラマブルコントローラによって実行され、
前記オペコードがダミーデータである場合、前記シーケンスプログラムを表示する周辺装置に前記シーケンスプログラムを表示しないようにして前記プログラマブルコントローラの周辺装置による当該プログラムの書き換えを保護することを特徴とする、シーケンスプログラム。
【請求項２】
前記シーケンスプログラムに追加される前記ダミーデータオペコードは、前記シーケンスプログラムの先頭に書き込まれた１ステップ目のダミーデータであることを特徴とする請求項１に記載のシーケンスプログラム。
【請求項３】
前記ダミーデータは、前記プログラマブルコントローラ側では何も処理せず前記機器の制御内容に影響を与えることがない命令であって、前記プログラマブルコントローラの周辺装置側では不当命令として定義されるデータであることを特徴とする請求項２に記載のシーケンスプログラム。
【請求項４】
請求項１〜３のいずれか一項に記載されている前記シーケンスプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
制御対象である機器の制御シーケンスを書き示すシーケンスプログラムを格納する書き換え可能なシーケンスプログラムメモリと、
前記シーケンスプログラムに基づいて実行されるマイクロプロセッサユニットと、
前記シーケンスプログラムを書き換えるために周辺装置と接続可能な周辺装置インタフェースとを備え、前記シーケンスプログラムを保護するシーケンスプログラム保護装置に接続されるプログラマブルコントローラであって、
前記マイクロプロセッサユニットは、
前記シーケンスプログラムメモリに格納されたシーケンスプログラムを当該プログラマブルコントローラ外のシーケンスプログラム保護支援装置に取り込まれ、前記シーケンスプログラム保護支援装置にて、
当該シーケンスプログラムのオペコードがダミーデータであるか否かをチェックし、当該ダミーデータがプログラマブルコントローラ側では何も処理せず機器の制御内容に影響を与えることがない命令であって、当該シーケンスプログラムを書き換えるための周辺装置側では不当命令として定義されるデータであり、
当該チェック結果、当該オペコードがダミーデータでなく、保護状態にないと判断された場合、前記シーケンスプログラムにダミーデータオペコードが追加されて、シーケンスプログラム全体の処理ステップ番号が再構成し、
当該再構成したシーケンスプログラムを前記プログラマブルコントローラへ書き戻されたシーケンスプログラムに基づいて演算処理を実行し、
前記オペコードがダミーデータである場合、前記シーケンスプログラムを表示する周辺装置に前記シーケンスプログラムを表示しないようにして前記プログラマブルコントローラの周辺装置による当該プログラムの書き換えを保護することを特徴とする、ことを特徴とするプログラマブルコントローラ。
【請求項６】
前記マイクロプロセッサユニットに接続されており、前記シーケンスプログラムの演算処理過程で演算に用いられる値を一時的に格納しておくデータメモリを備えていることを特徴とする請求項５に記載のプログラマブルコントローラ。
【請求項７】
プログラマブルコントローラ内に格納されたシーケンスプログラムを、当該シーケンスプログラムに書き示された制御シーケンスで制御される制御対象の制御内容に影響を与えることなく、且つ周辺装置にシーケンスプログラムを表示させない目的で、プログラムの一部を書き換えるシーケンスプログラム保護支援装置をもって前記プログラマブルコントローラにおけるシーケンスプログラムを保護する保護支援方法であって、
前記プログラマブルコントローラ内のシーケンスプログラムを、当該プログラマブルコントローラ外のシーケンスプログラム保護支援装置に取り込み、
当該シーケンスプログラム保護支援装置にて、シーケンスプログラムを解析し、
当該シーケンスプログラムのオペコードがダミーデータであるか否かをチェックし、当該ダミーデータがプログラマブルコントローラ側では何も処理せず機器の制御内容に影響を与えることがない命令であって、当該シーケンスプログラムを書き換えるための周辺装置側では不当命令として定義されるデータであり、
ダミーデータでない場合、保護状態にないと判断し、
前記シーケンスプログラムにダミーデータオペコードを追加し、シーケンスプログラム全体のステップ番号を再構成し、
当該再構成したシーケンスプログラムを前記プログラマブルコントローラへ書き戻し、
前記オペコードがダミーデータである場合、前記シーケンスプログラムを表示する周辺装置に前記シーケンスプログラムを表示しないようにして前記プログラマブルコントローラの周辺装置による前記シーケンスプログラムの書き換えを保護するプログラマブルコントローラにおけるシーケンスプログラムの保護支援方法。
【請求項８】
プログラマブルコントローラのシーケンスプログラムメモリに格納された又は格納されることになるシーケンスプログラムの一部のオペコードを書き換えることが可能なプログラマブルコントローラにおけるシーケンスプログラム保護支援装置であって、
前記シーケンスプログラム保護支援装置は、
前記プログラマブルコントローラ内のシーケンスプログラムを取り込み、当該取り込んだシーケンスプログラムを解析し、当該シーケンスプログラムのオペコードがダミーデータであるか否かをチェックし、ダミーデータでない場合、保護状態にないと判断し、当該ダミーデータがプログラマブルコントローラ側では何も処理せず機器の制御内容に影響を与えることがない命令であって、当該シーケンスプログラムを書き換えるための周辺装置側では不当命令として定義されるデータであり、
前記シーケンスプログラムにダミーデータオペコードを追加し、シーケンスプログラム全体のステップ番号を再構成し、当該再構成したシーケンスプログラムを前記プログラマブルコントローラへ書き戻し、
前記オペコードがダミーデータである場合、前記シーケンスプログラムを表示する周辺装置に前記シーケンスプログラムを表示しないようにして前記プログラマブルコントローラの周辺装置による当該プログラムの書き換えを保護することを特徴とする、ことを特徴とするプログラマブルコントローラにおけるシーケンスプログラム保護支援装置。
【請求項９】
プログラマブルコントローラに接続して使用されることを特徴とする請求項８に記載のプログラマブルコントローラにおけるシーケンスプログラム保護支援装置。
【請求項１０】
前記シーケンスプログラム保護支援装置は、押下げが前記シーケンスプログラムの一部のオペコードを書き換える操作となる前記保護ボタンと、押下げが前記シーケンスプログラムの当該書き換えを解除する操作となる保護解除ボタンとが配置された操作ウィンドウを画面に表示する表示部を有する
ことを特徴とする請求項８又は９に記載のプログラマブルコントローラにおけるシーケンスプログラム保護支援装置。
【請求項１１】
プログラマブルコントローラのシーケンスプログラムメモリに格納可能であって制御対象である機器の制御シーケンスを書き示すシーケンスプログラムにおいて、
前記シーケンスプログラムは、前記シーケンスプログラムメモリを保護する操作を受け付けた保護支援装置に取り込まれ、保護状態であるか否かを判断され、
保護状態にないと判断された前記シーケンスプログラムは、前記プログラマブルコントローラに何も処理をさせない命令であるダミーデータを追加され、当該ダミーデータがプログラマブルコントローラ側では何も処理せず機器の制御内容に影響を与えることがない命令であって、当該シーケンスプログラムを書き換えるための周辺装置側では不当命令として定義されるデータであり、
前記ダミーデータが追加されたシーケンスプログラムは、全体ステップ番号を再構成され、
全体ステップ番号を再構成された前記シーケンスプログラムは、前記プログラマブルコントローラへ書き戻され、前記プログラマブルコントローラに処理を実行され、
前記オペコードがダミーデータである場合、前記シーケンスプログラムを表示する周辺装置に前記シーケンスプログラムを表示しないようにして前記プログラマブルコントローラの周辺装置による当該プログラムの書き換えを保護することを特徴とする、ことを特徴とするシーケンスプログラム。
【請求項１２】
請求項１１に記載のシーケンスプログラムであって、
追加された前記ダミーデータは、前記シーケンスプログラムの１ステップ目のオペコードとして追加されること
を特徴とするシーケンスプログラム。
【請求項１３】
請求項１１または１２に記載のシーケンスプログラムを格納されたプログラマブルコントローラであって、
前記プログラマブルコントローラへ書き戻されたシーケンスプログラムに含まれるダミーデータを何もしない処理としてプログラマブルコントローラを制御すること
を特徴とするプログラマブルコントローラ。
【請求項１４】
プログラマブルコントローラのシーケンスプログラムメモリに格納可能であって制御対象である機器の制御シーケンスを書き示すシーケンスプログラムにおいて、
前記シーケンスプログラムは、前記シーケンスプログラムメモリを保護する操作を受け付けた保護支援装置に取り込まれ、保護状態であるか否かを判断され、
保護状態にあると判断された前記シーケンスプログラムは、前記プログラマブルコントローラに何も処理をさせない命令であるダミーデータを削除され、当該ダミーデータがプログラマブルコントローラ側では何も処理せず機器の制御内容に影響を与えることがない命令であって、当該シーケンスプログラムを書き換えるための周辺装置側では不当命令として定義されるデータであり、
前記ダミーデータが削除されたシーケンスプログラムは、全体ステップ番号を再構成され、
全体ステップ番号を再構成された前記シーケンスプログラムは、前記プログラマブルコントローラへ書き戻され前記プログラマブルコントローラに処理を実行され、
前記オペコードがダミーデータである場合、前記シーケンスプログラムを表示する周辺装置に前記シーケンスプログラムを表示しないようにして前記プログラマブルコントローラの周辺装置による当該プログラムの書き換えを保護することを特徴とする、ことを特徴とするシーケンスプログラム。
【請求項１５】
請求項１４に記載のシーケンスプログラムであって、
削除された前記ダミーデータは、前記シーケンスプログラムの１ステップ目のオペコードとして削除されること
を特徴とするシーケンスプログラム。
【請求項１６】
請求項１４または１５に記載のシーケンスプログラムを格納されたプログラマブルコントローラであって、
前記プログラマブルコントローラへ書き戻されたダミーデータが削除されたシーケンスプログラムをもってプログラマブルコントローラを制御すること
を特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象である機器の制御シーケンスを書き示すシーケンスプログラム、そうしたシーケンスプログラムを記録した記録媒体、シーケンスプログラムを格納したプログラマブルコントローラ、並びにプログラマブルコントローラにおけるシーケンスプログラムの保護支援方法及び装置に関する。
【背景技術】
【０００２】
図３に一般的なプログラマブルコントローラ（ＰＬＣ）と周辺装置の構成を示す。プログラマブルコントローラ１は、論理演算、算術演算を行うＭＰＵ２、ＭＰＵ２の制御する内容・手順を記憶したシステムプログラムメモリ３、シーケンスプログラムを格納するシーケンスプログラムメモリ４、シーケンスプログラムの演算結果などを一時的に記憶するデータメモリ５、シーケンスプログラムメモリの内容変更を主目的とした周辺装置インタフェース６とを備えている
【０００３】
周辺装置７は、プログラマブルコントローラ１にて演算処理されるシーケンスプログラムをプログラミングする目的のほか、プログラマブルコントローラ１へのシーケンスプログラム書込み、プログラマブルコントローラ１からのシーケンスプログラム読出し、シーケンスプログラムの動作確認などに使用される。
【０００４】
図４に周辺装置７で表示されるシーケンスプログラムの一般的な形態を示す。周辺装置７では、シーケンスプログラムがラダーシンボル形式８や、命令語形式９で表示されるのが一般的であり、制御内容が一目瞭然である。周辺装置７自体は、パソコンのアプリケーションソフトウェアという形態で提供され、価格や納期面での入手性が良い。
【０００５】
暗号鍵を用いた暗号化と復号鍵を用いた復号化によってＲＯＭに格納したシーケンスプログラムの不正な複製を防止することが提案されている（特許文献１）。入力されたキーワードを登録されたキーワードとの照合によって、ユーザメモリからユーザプログラムの読み出しを許可することで、ユーザプログラムの無断盗用を防止する機能を備えたプログラマブルコントローラが提案されている（特許文献２）。また、プログラムメモリに格納されたシーケンスプログラムについて、サービスインターフェイスから外部装置への読み出しを禁止する読出禁止処理部を備えることによって、シーケンスプログラムの読み出しを禁止することが提案されている（特許文献３）。更に、フラッシュメモリへのツールによるアクセスできないことを利用して、ユーザプログラムの一部または全部をライブラリ化してフラッシュメモリに格納することによりプロテクトすることが提案されている（特許文献４）。
【０００６】
ベンダーにより各種の産業用機械に組み込まれた状態でエンドユーザの工場に設置される、或いはエンドユーザによりエンドユーザの工場の設備に組み込まれるプログラマブルコントローラにおいて、ユーザプログラム中の保護対象プログラムの入出力を実行すると、所定のハードウェア固有データに置き換えられ、表示プロテクトを掛けることが提案されている（特許文献５）。ユーザプログラム中の特定プログラム部分には特定のＰＬＣ以外では動作不能にすること、及び、入出力メモリの所定アドレスの保護対象プログラム部分は、ファンクションブロックに置き換えられると共に、表示プロテクトが掛けられることが開示されている。また、実行プログラムで保護すべき部分があるとき、利用者端末に保護プログラムを読み出して、無効命令プログラムを埋め込んだ後に実行プログラムを利用者端末へ配信又は記録媒体に記録した状態で配布することで、機密性を有するプログラムを不当な解析から守ることが提案されている（特許文献６）。更に、制御手順プログラム中にプログラム出力禁止命令が含まれているとプログラム出力禁止手順がプログラム出力動作を禁止することで制御手順プログラムを保護することが提案されている（特許文献７）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平６−１１０５１２号公報
【特許文献２】特開昭６２−１００８０５号公報
【特許文献３】特開２００６−３３１１３０号公報
【特許文献４】特開２００４−５３８９号公報
【特許文献５】特開２００９−０７０１４４号公報
【特許文献６】特開２００３−２７１２５５号公報
【特許文献７】特開平５−２３３０３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、プログラマブルコントローラには周辺装置インタフェースが設けられていることと、周辺装置自体の入手性が良いため、プログラム作成者以外の第三者が、プログラマブルコントローラに格納されているシーケンスプログラムを容易に読出すことができる。
【０００９】
プログラマブルコントローラに格納されているシーケンスプログラムには、制御される設備に関するノウハウや、プログラム記述のテクニックなどが含まれていることが多く、それらの重要な情報が流出し、無断で勝手に使用されてしまう恐れがある。
【００１０】
本発明は上記事由に鑑みて為されたものであり、その目的は、プログラムメモリに格納されたシーケンスプログラムを支援装置によって読み出せないようにすることで、シーケンスプログラムを保護するプログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明によるシーケンスプログラムは、プログラマブルントローラのシーケンスプログラムメモリに格納可能であって制御対象である機器の制御シーケンスを書き示すシーケンスプログラムであり、前記プログラマブルントローラの周辺装置に表示させない目的で一部のプログラムが書き換えられていることを特徴とする。また、本発明は、前記シーケンスプログラムが記録されており、コンピュータにおいて用いることができる記録媒体である。
【００１２】
また、本発明によるプログラマブルコントローラは、制御対象である機器の制御シーケンスを書き示すシーケンスプログラムを格納する書き換え可能なシーケンスプログラムメモリと、前記シーケンスプログラムメモリに格納された前記シーケンスプログラムに基づいて演算処理するマイクロプロセッサユニットと、前記シーケンスプログラムメモリに格納される前記シーケンスプログラムを書き換えるために周辺装置と接続可能な周辺装置インタフェースとを備えるプログラマブルコントローラであって、前記シーケンスプログラムメモリに格納されている前記シーケンスプログラムは、前記周辺装置に表示させない目的で一部のプログラムが書き換えられている上記のシーケンスプログラムであることを特徴としている。
【００１３】
プログラマブルコントローラのシーケンスプログラムメモリに格納されているシーケンスプログラムの先頭に書き込まれるダミーデータは、プログラマブルコントローラ側では何も処理しない命令として定義される。このため、プログラマブルコントローラのシーケンスプログラムメモリに格納されているシーケンスプログラムの先頭にダミーデータが書き込まれていようがいまいが、制御内容に影響を与えない。一方、周辺装置側では、プログラマブルコントローラのシーケンスプログラムメモリに格納されているシーケンスプログラムの先頭に書き込まれるダミーデータを不当命令として定義する。
【００１４】
周辺装置からプログラマブルコントローラのシーケンスプログラムメモリの内容を読み出した際、シーケンスプログラムの先頭にダミーデータが含まれていた場合、周辺装置側では不当なデータが含まれていると判断して、周辺装置上にシーケンスプログラムを表示しないようにすることで、シーケンスプログラムが保護される。逆に、周辺装置により読み出されたプログラマブルコントローラのシーケンスプログラムの１ステップ目にダミーデータが含まれていない場合は、周辺装置上にシーケンスプログラムを表示する。
【００１５】
また、本発明は、プログラマブルコントローラ内に格納されたシーケンスプログラムを、当該シーケンスプログラムに書き示された制御シーケンスで制御される制御対象の制御内容に影響を与えることなく、且つ周辺装置に表示させない目的で、一部を書き換えることを特徴とするプログラマブルコントローラにおけるシーケンスプログラムの保護支援方法である。
【００１６】
更に、本発明は、プログラマブルコントローラのシーケンスプログラムメモリに格納された又は格納されることになるシーケンスプログラムの一部を書き換えることを特徴とするプログラマブルコントローラにおけるシーケンスプログラム保護支援装置である。
【００１７】
具体的には、プログラマブルコントローラのシーケンスプログラムメモリに格納されているシーケンスプログラムの先頭に、１ステップのダミーデータを書き込む支援装置を用いる。この支援装置は、周辺装置とは異なる形態でパソコンのアプリケーションとして提供される。
【発明の効果】
【００１８】
本発明の構成によれば、内部に格納されているシーケンスプログラムを周辺装置に表示させないために、プログラマブルコントローラのシーケンスプログラムメモリに格納されているシーケンスプログラムの一部を書き換えて保護しているので、プログラマブルコントローラのシーケンスプログラムメモリが保護されている場合、周辺装置を所有している第三者によって無断でシーケンスプログラムを閲覧することはできないため、シーケンスプログラムのノウハウ流出、シーケンスプログラムの盗用、シーケンスプログラムの改ざんを防止することができる。さらに、プログラマブルコントローラや周辺装置に暗号化処理などの複雑な手段を実装することなく、シーケンスプログラムが保護されるという利点を有する。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態を示す図であり、シーケンスプログラムメモリに格納されている保護状態にあるシーケンスプログラムを演算処理するプログラマブルコントローラの説明図である。
【図２】本発明の実施形態を示すラダーシンボル及び命令語に対応する中間言語形式とＮＯＯＰオペコードの説明図である。
【図３】一般的なプログラマブルコントローラの構成を示す説明図である。
【図４】周辺装置に表示されるラダーシンボルと命令語の説明図である。
【図５】ラダーシンボル及び命令語に対応する中間言語形式の説明図である。
【図６】シーケンスプログラムメモリに格納されているシーケンスプログラムの説明図である。
【図７】本発明の実施形態を示す支援装置とプログラマブルコントローラの説明図である。
【図８】本発明の実施形態を示すプログラム保護処理のフローチャートである。
【図９】本発明の実施形態を示すプログラム保護解除処理のフローチャートである。
【発明を実施するための形態】
【００２０】
本発明によるプログラマブルコントローラを実施するための形態を説明する前に、一般的なプログラマブルコントローラと支援装置について図５と図６を用いて説明する。
【００２１】
図５は、周辺装置７に表示されるラダーシンボル形式８あるいは命令語形式９に対応する中間言語の一例である。中間言語とは、ラダーシンボル形式８あるいは命令語形式９とＭＰＵ２が処理可能な機械語との中間状態のコードであり、本説明文中ではこれらのコードの集合体をシーケンスプログラムと表現する。
【００２２】
プログラマーによりラダーシンボル形式８あるいは命令語形式９でプログラミングされたシーケンスプログラムは、周辺装置７によって中間言語の形式に変換される。中間言語形式のコードは、周辺装置インタフェース６とＭＰＵ２を介してシーケンスプログラムメモリ４に格納される。この一連の動作をシーケンスプログラムの書込みと表現する。
【００２３】
一方、シーケンスプログラムメモリ４に格納されたシーケンスプログラムを、ＭＰＵ２と周辺装置インタフェース６を介して周辺装置７に取り込む動作を、シーケンスプログラムの読出しと表現する。読み出された中間言語状態のシーケンスプログラムは、周辺装置７にて逆に変換されてラダーシンボル形式８あるいは命令語形式９で表示される。
【００２４】
図６は、シーケンスプログラムメモリ４に格納されているシーケンスプログラムの様子である。プログラマブルコントローラ１は、シーケンスプログラムメモリ４に格納されているシーケンスプログラムをステップ１から順次処理し、ステップ７のＥＮＤ命令が処理されると再びステップ１のコードから順次処理を繰り返す。
【００２５】
図７は、本発明の一実施形態であるシーケンスプログラム保護支援装置とプログラマブルコントローラの接続図、及びシーケンスプログラム保護支援装置の操作画面である。シーケンスプログラム保護支援装置１０は、プログラマブルコントローラ１に接続して用いられており、パソコンのアプリケーションソフトウェアという形態で実装され、操作ウィンドウ１１のように保護支援装置１０の画面に表示される。操作ウィンドウ１１にはＰｒｏｔｅｃｔボタン１２とＵｎｐｒｏｔｅｃｔボタン１３が配置されている。
【００２６】
図８は、保護支援装置１０の操作ウィンドウ１１のＰｒｏｔｅｃｔボタン１２が押下されたときの処理フローチャートである。
プログラマブルコントローラのシーケンスプログラムメモリを保護する場合、使用者は保護支援装置１０の操作ウィンドウ１１のＰｒｏｔｅｃｔボタン１２を押し下げる（ステップ１１；「Ｓ１１」と略す。以下、同様）。
保護支援装置１０ではＰｒｏｔｅｃｔ１２ボタンが押下されたことをＳ１１で検出すると、通信によりプログラマブルコントローラ内のシーケンスプログラムを保護支援装置に取り込む（Ｓ１２）。Ｓ１２にて保護支援装置１０に取り込まれたにシーケンスプログラムはＳ１３にて解析され、１ステップ目のオペコードがＮＯＯＰ（ＮＯｎ−ＯＰｅｒａｔｉｏｎの略。何もしない命令のこと；ダミーデータ）であるか否かがチェックされる。
【００２７】
Ｓ１３でのチェックにおいて、１ステップ目のオペコードがＮＯＯＰでない場合、保護支援装置１０はプログラマブルコントローラ内のシーケンスプログラムが保護状態にないと判断して、Ｓ１４の処理へ進む。逆に、１ステップ目のオペコードがＮＯＯＰの場合、保護支援装置１０はプログラマブルコントローラ内のシーケンスプログラムが保護状態にあると判断して、Ｓ１６の処理へ進み、Ｓ１６にて「すでに保護されています」というメッセージを表示した後処理を終了する。
【００２８】
Ｓ１４では、Ｓ１２で取り込んだシーケンスプログラムの１ステップ目にＮＯＯＰオペコードを追加して、シーケンスプログラム全体のステップ番号を再構成する。Ｓ１４で再構成されたシーケンスプログラムは、Ｓ１５にてプログラマブルコントローラ１へ書き戻される。
【００２９】
図９は、保護支援装置１０の操作ウィンドウ１１のＵｎｐｒｏｔｅｃｔボタン１３が押下されたときの処理フローチャートである。
プログラマブルコントローラのシーケンスプログラムメモリの保護を解除する場合、使用者は保護支援装置１０の操作ウィンドウ９のＵｎｐｒｏｔｅｃｔボタン１３を押し下げる（Ｓ２１）。保護支援装置１０ではＵｎｐｒｏｔｅｃｔボタン１３が押下されたことを検出すると、シーケンスプログラムの読み出し、即ち、通信によりプログラマブルコントローラ内のシーケンスプログラムを保護支援装置に取り込む（Ｓ２２）。
【００３０】
Ｓ２２にて保護支援装置１０に取り込まれたシーケンスプログラムはＳ２３にて解析され、１ステップ目のオペコードがＮＯＯＰであるか否かがチェックされる。Ｓ２２のチェックにおいて、１ステップ目のオペコードがＮＯＯＰの場合、保護支援装置１０はプログラマブルコントローラ内のシーケンスプログラムが保護状態にあると判断して、Ｓ２４の処理へ進む。逆に、１ステップ目のオペコードがＮＯＯＰでない場合、保護支援装置１０はプログラマブルコントローラ内のシーケンスプログラムが保護状態にないと判断して、Ｓ２６の処理へ進み、Ｓ２６にて「保護されていないプログラムです」というメッセージを表示した後処理を終了する。
【００３１】
Ｓ２４では、Ｓ２２で取り込んだシーケンスプログラムの１ステップ目にあるＮＯＯＰオペコードを削除して、シーケンスプログラム全体のステップ番号を再構成する。Ｓ２４で再構成されたシーケンスプログラムは、Ｓ２５にてプログラマブルコントローラ１へ書き戻される。
【００３２】
図２は、本発明の一実施形態である、周辺装置７に表示されるラダーシンボルあるいは命令語に対応する中間言語であり、中間言語「ＮＯＯＰ」オペコードが追加されていることが特徴である。プログラマブルコントローラ側では、ＮＯＯＰ命令は何もしない命令として解釈される。一方、周辺装置側では、ＮＯＯＰオペコードを未定義の不当命令として解釈されることが特徴である。
【００３３】
図１は、本発明の一実施形態である、シーケンスプログラムメモリ４に格納されている保護状態のシーケンスプログラムの様子である。プログラマブルコントローラ１側では、１ステップ目にＮＯＯＰオペコードが格納されていているものの、ＭＰＵ２はシステムプログラムメモリ３に格納されている中間言語の命令に基づき、ＮＯＯＰオペコードを何も処理しない命令として処理されるため、シーケンスプログラムメモリ４に格納されているシーケンスプログラムをステップ１から順次処理し、ステップ８のＥＮＤ命令が処理されると再びステップ１のＮＯＯＰオペコードから順次処理を繰り返す。すなわち、シーケンスプログラムが保護状態にあってもプログラマブルコントローラ側の処理内容はまったく影響を受けない。なお、データメモリ５は、マイクロプロセッサユニット２においてシーケンスプログラムの演算処理過程で演算に用いられる値を一時的に格納しておくメモリであり、周辺装置インタフェース６は、既に説明したように、シーケンスプログラムメモリ４に格納されるシーケンスプログラムを書き換えるために周辺装置７と接続可能なインタフェースである。
【符号の説明】
【００３４】
１  プログラマブルコントローラ        ２  ＭＰＵ
３  システムプログラムメモリ          ４  シーケンスプログラムメモリ
５  データメモリ                      ６  周辺装置インタフェース
７  周辺装置
８  ラダーシンボル形式のシーケンスプログラム
９  命令語形式のシーケンスプログラム
１０  シーケンスプログラム保護支援装置
１１  シーケンスプログラム保護支援装置の操作ウィンドウ
１２  シーケンスプログラム保護支援装置のシーケンスプログラム保護ボタン
１３  シーケンスプログラム保護支援装置のシーケンスプログラム保護解除ボタン
【図１】
0005503980.tif 000002
【図２】
0005503980.tif 000003
【図３】
0005503980.tif 000004
【図４】
0005503980.tif 000005
【図５】
0005503980.tif 000006
【図６】
0005503980.tif 000007
【図７】
0005503980.tif 000008
【図８】
0005503980.tif 000009
【図９】
0005503980.tif 000010