(57)【要約】【課題】  エンドユーザ環境下でのバックアップ機能を維持しつつ、記憶媒体を介した違法コピー防止機能と、セットメーカによる正規品の量産機能とを共存、両立させるＰＬＣ構成モジュールのロード手段及びセーブ手段を提供する。【解決手段】    ユーザプログラムを記録した記録媒体の挿入によって又は通信インタフェースを介した管理用コンピュータからの所定の操作によって前記ユーザプログラムを前記記録媒体にセーブするＰＬＣ構成モジュールのセーブ手段において、前記ＰＬＣ構成モジュールを識別する機器別の固有情報を埋め込む識別キー付加モード又はその埋め込みを省略する識別キー無付加モードかを読み取る識別手段と、前記識別値が前記付加モードのとき前記固有情報を前記ユーザプログラム内に埋め込む実装手段とを備えたことを特徴とする。【選択図】                    図１
2006106998.tif 000002
【特許請求の範囲】
【請求項１】
ユーザプログラムを記録した記録媒体の挿入によって又は通信インタフェースを介した管理用コンピュータからの所定の操作によって前記ユーザプログラムを前記記録媒体にセーブするＰＬＣ構成モジュールのセーブ手段において、
前記ＰＬＣ構成モジュールを識別する機器別の固有情報を埋め込む識別キー付加モード又はその埋め込みを省略する識別キー無付加モードかを読み取る識別手段と、
前記識別値が前記付加モードのとき前記固有情報を前記ユーザプログラム内に埋め込む実装手段と、
を備えたことを特徴とするＰＬＣ構成モジュールのセーブ手段。
【請求項２】
前記識別手段は、前記ＰＬＣ構成モジュールに設けた前記識別キー付加モードと前記識別キー無付加モードとを切換える設定スイッチの既定値を読み取ることを特徴とする請求項１に記載のＰＬＣ構成モジュールのセーブ手段。
【請求項３】
前記固有情報は、前記ＰＬＣ構成モジュールに付与されたＭＡＣアドレス値または製造番号であることを特徴とする請求項１に記載のＰＬＣ構成モジュールのセーブ手段。
【請求項４】
前記実装手段は、前記固有情報を、前記ユーザプログラムのソースリスト内に埋め込むことを特徴とする請求項１から請求項３までに記載のＰＬＣ構成モジュールのセーブ手段。
【請求項５】
前記固有情報が埋め込まれた前記ユーザプログラムを機械語に変換する機械語変換手段を更に備えたことを特徴とする、請求項１に記載のＰＬＣ構成モジュールのセーブ手段。
【請求項６】
ユーザプログラムを記録した記録媒体の挿入によって又は通信インタフェースを介した管理用コンピュータからの所定の操作によって前記ユーザプログラムのロードを実行する、ＰＬＣ構成モジュールのロード手順において、
前記ユーザプログラムの不正ロードを防止するプロテクションキーの有無をチェックする検出手段と、
前記プロテクションキーが有ることを検出した場合に前記ＰＬＣモジュールを識別する機器別の固有情報と比較する照合手段とを備え、
前記プロテクションキーと前記固有情報とが一致した場合に前記記録媒体からのロードを許可することを特徴とするＰＬＣ構成モジュールのロード手段。
【請求項７】
前記検出手段は、前記記憶媒体にセーブされている前記ユーザプログラムに基づき前記プロテクションキーの有無を検出することを特徴とする請求項６に記載のＰＬＣ構成モジュールのロード手段。
【請求項８】
前記検出手段は、前記記憶媒体にセーブされている前記ユーザプログラムをプログラム言語に変換する機械語逆変換手段を更に備えたことを特徴とする請求項６及び請求項７に
記載のＰＬＣ構成モジュールのロード手段。
【請求項９】
前記照合手段は、前記プロテクションキーと前記固有情報とを比較して一致を検出することを特徴とする請求項６に記載のＰＬＣ構成モジュールのロード手段。
【請求項１０】
前記固有情報は、前記ＰＬＣ構成モジュールに付与されたＭＡＣアドレス値または製造番号であることを特徴とする請求項６に記載のＰＬＣ構成モジュールのロード手段。
【請求項１１】
前記ＰＬＣ構成モジュールを識別する機器別の前記固有情報を、前記ユーザプログラムに埋め込む実装手段を更に備えたことを特徴とする請求項６記載のＰＬＣ構成モジュールのロード手段。
【請求項１２】
前記実装手段は、前記固有情報を、前記ユーザプログラムのソースリスト内に埋め込むことを特徴とする請求項１１に記載のＰＬＣ構成モジュールのロード手段。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラ（以下はＰＬＣと記す）の構成モジュールからのセーブ手段及び構成モジュールへのロード手段に関する。
【背景技術】
【０００２】
ＰＬＣは、製造プラントなどの制御対象システム内にある各種の入力機器及び出力機器と電気的に接続して、シーケンスコントローラとして動作することでファクトリーオートメーション（ＦＡ）の中核を担う機能をもつ。
【０００３】
すなわち、各種インタフェースモジュール（以下、ＩＯモジュールと記す）を介して入力機器から得たパラメータ情報に基づいて出力機器に対する各種の制御信号を所定タイミングで出力している。この様な制御機能は、ＰＬＣのＣＰＵモジュールにロードされているユーザプログラムを繰り返し演算実行することで実現している。
【０００４】
一般にＰＬＣのスロット内に実装される構成モジュールとして、ＣＰＵモジュールの他に、電源モジュール、ＩＯモジュール、高機能ＩＯモジュールなど各種モジュールが制御対象システムの現状に合わせて実装され、スロット背面のバックプレーンに設けたＰＬＣの内部インタフェースバスを介しモジュール相互間を電気的に接続している。
【０００５】
ところで、産業界の分野で広く用いられる汎用シーケンサとしての側面をもつＰＬＣは、同一構成のモジュール群から構成された場合であってもロードされるユーザプログラムの内容次第で、発揮する性能や機能が全く異なる結果となる。
【０００６】
特にＣＰＵモジュールは、ユーザプログラムのロードとセーブの機能とを合わせ持ち、ＣＰＵモジュールにロードされたユーザプログラムは、ＰＬＣ全体の構成モジュール群を統括すると共に、シーケンスコントローラとしての機能と性能を決定付ける重要な情報が含まれている。（例えば、特許文献１参照）
【０００７】
各種パラメータの処理過程、タイミング仕様詳細、モーション制御に係わるシーケンスアルゴリズムなどの諸機能の実装手法について、逆アセンブル等のリバースエンジニアリングによればノウハウ漏洩の危険がある。
【０００８】
さらにＰＬＣには、通常の産業用機器とは異なる特殊な流通事情と運用形態がある。
例えばモジュールを含めたＰＬＣの製造元メーカがＰＬＣを納入する先は、多くの場合中間ユーザ（以下、セットメーカと記す）であり、制御対象システムを所有するエンドユーザに直販ルートで納品されることは稀である。
【０００９】
こうしたセットメーカでは、製造プラント等の制御対象システムを構成する各種の産業用設備や自動機及びそれらの運用環境に適合させた然るべきユーザプログラムを作成、より具体的には個別仕様でカスタマイズされた専用制御プログラムを作成した上で、それぞれのエンドユーザに納入される。
【００１０】
適切なユーザプログラムを付加されてエンドユーザに納入されたＰＬＣは、制御対象システムを構成する各種の産業用設備や自動機など個別の運転環境と融合し一体化した状態で運用される。一般に、ＰＬＣを運用する現場では、管理用コンピュータを共に配備して有線又は無線の通信インタフェースを介しそれぞれのＰＬＣと接続している。
【００１１】
ＰＬＣを運用する場合に、従来技術に依れば、通信インタフェースを介した管理用コンピュータから或いはメモリカード等の記憶媒体の何れかから、ＰＬＣ内の構成モジュールに対して所定のユーザプログラムをロードすることができる。
【００１２】
記憶媒体としてメモリカードを使用するモジュールでは、モジュールに備え付けのメモリカードスロットを介して当該モジュールにロード済みユーザプログラムについてメモリカードへセーブ操作を実行することができる。
【００１３】
このようなセーブ機能は、ＰＬＣのモジュールで偶発的に生じた外来の電気的ノイズや、モジュール内部のストレージデバイスで後天的に発生する不良箇所など、ロード済みの記憶領域が何らかのダメージを受けた場合に備えたバックアップ手段として備えられている。
【００１４】
メモリカード等に対するセーブ操作Ａは、モジュールのパネル面等に設けられたメモリカードスロットに挿入して所定の書き込みコマンドを実行することにより、何枚でも無制限にコピーを生成することができる。
【００１５】
ただし、ＰＬＣ内のモジュールにロード済みユーザプログラム、又はメモリカード等の記録媒体にセーブ済みユーザプログラムの双方については、コンピュータ側へセーブするには所定のパスワードを入力する必要がある。このときのパスワード入力手順が、ユーザプログラムの機密保護の機能を果たしている。
【００１６】
すなわち、モジュール内にロード又は記憶媒体へセーブされた実行形式のユーザプログラムは、セーブ操作でコンピュータ側へ一度でも取り込まれてしまうと、逆アセンブルで機械語からラダー言語などの可読データに変換され、セットメーカが工夫を凝らして作成したユーザプログラムのノウハウは容易に解析される。セーブ操作に伴い要求されるパスワードには、こうした事態を防止する機能を持つ。
【００１７】
一方で、メモリカード等の記憶媒体に一旦セーブされたユーザプログラムは他のＰＬＣモジュールにも何ら制限無しにロードが可能である。
【００１８】
図８はこのようなユーザプログラムを記録した記憶媒体と、他のＰＬＣの間とのロード／セーブを伴うユーザプログラム管理について従来技術が抱える問題点を示している。
【００１９】
すなわち図８において、ＰＬＣ構成モジュールＰＬＣ１で実施したセーブ操作Ａにより
作成された記憶媒体であるメモリカードＭは、ＰＬＣ１を始め他のＰＬＣ構成モジュールＰＭＣ２、ＰＭＣ３、・・・ＰＭＣｎ（ｎは自然数）に対し無制限にロード操作Ｂを実施することができる。
【００２０】
これは、エンドユーザ環境下では記録媒体を介したロード操作によるユーザプログラムの拡散が防止できないことを意味している。
【００２１】
エンドユーザでは、ユーザプログラムを格納する記憶媒体、具体的にはメモリカードＭに一旦セーブしてしまえば、ＰＬＣの製造元からセットメーカを経ずに直接ＰＬＣを購入して順次ロードを行うことで、正規ルートで導入したＰＬＣと同等のセットを再現することができる。
【００２２】
従来技術によるセーブ手段及びロード手段では、外部から持ち込んだノートパソコン等のコンピュータをＰＬＣ構成モジュールに接続し、ユーザプログラムをアップロードして取り込んでしまうことについて、パスワードによる予防策が施されている。
【００２３】
ところが、記憶媒体を介し実行形式レベルでモジュールからモジュールへとプログラムを移植する、図８に示す様なエンドユーザ環境におけるデッドコピーの作成操作については何らの対策も施されていない。
【００２４】
このため、セットメーカの製品であるユーザプログラムについて、違法な複製品が海賊版ＰＬＣ構成モジュールとして市場で増殖する危険がある。
【００２５】
この様なＰＬＣ構成モジュールのユーザプログラムの機密保持又は著作権の保護に係わる従来技術として例えば、以下の文献がユーザプログラムの全部又は所定の一部について、読み出し禁止手段によるプロテクト機能を開示している。
【００２６】
【特許文献１】特許  第３５４８８２９号  特許文献１の発明は、ＰＬＣを構成するユニット（本願ではモジュールと記している）にユーザプログラムを記憶する第１の記憶手段と、アップロードする外部機器のアクセスを禁止した第２の記憶手段を備え、それぞれの記録領域に対応するユーザプログラム実行手段を個別に備えることで読み出しをプロテクトする。
【００２７】
しかしながら、特許文献１の発明では記憶媒体を介し実行形式レベルでモジュールからモジュールへとプログラムを移植する、いわゆるエンドユーザ環境におけるバックアップ機能を悪用したデッドコピーの作成操作については何らの対策も施されていない。（図８参照）
【００２８】
また一方でセットメーカの立場では、エンドユーザ納品用の正規品ＰＬＣを量産する際に、生産作業の効率と利便性向上を図る必要から、正規品の量産機能としてメモリカード等の記憶媒体を介した複数ＰＬＣ構成モジュールへの一括若しくは連続ロードが要望されている。
【発明の開示】
【発明が解決しようとする課題】
【００２９】
従って本発明が解決しようとする課題は、エンドユーザ環境下でのバックアップ機能を維持しつつ、記憶媒体を介した違法コピー防止機能と、セットメーカによる正規品の量産機能とを共存、両立させるＰＬＣ構成モジュールのロード手段及びセーブ手段を提供することである。
【課題を解決するための手段】
【００３０】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
ユーザプログラムを記録した記録媒体の挿入によって又は通信インタフェースを介した管理用コンピュータからの所定の操作によって前記ユーザプログラムを前記記録媒体にセーブするＰＬＣ構成モジュールのセーブ手段において、前記ＰＬＣ構成モジュールを識別する機器別の固有情報を埋め込む識別キー付加モード又はその埋め込みを省略する識別キー無付加モードかを読み取る識別手段と、前記識別値が前記付加モードのとき前記固有情報を前記ユーザプログラム内に埋め込む実装手段とを備えたことを特徴とするＰＬＣ構成モジュールのセーブ手段である。
【００３１】
セーブ手段が、このような識別手段と実装手段とを備えることによって、識別キー付加モードのとき当該構成モジュールのみが持つ固有情報をユーザプログラム内に埋め込んでからセーブすることができる。このため請求項１の発明によれば、記憶媒体にセーブされたユーザプログラムの内容からセーブが実施されたＰＬＣ構成モジュールを唯一特定する効果を得る。
【００３２】
請求項２記載の発明は、請求項１記載のＰＬＣ構成モジュールのセーブ手段であって、  前記識別手段は、前記ＰＬＣ構成モジュールに設けた前記識別キー付加モードと前記識別キー無付加モードとを切換える設定スイッチの既定値を読み取ることを特徴とする。
【００３３】
この請求項２の発明によれば、エンドユーザによる運用環境下にあっては識別キー付加モードに設定スイッチを切り換えてから出荷することにより記憶媒体を介した不正コピーを防止できる。セットメーカの立場にあっては、多数のＰＬＣ構成モジュールで識別キー無付加モードに設定すると、記憶媒体のみを介したユーザプログラムの直接ロードが効率よく実施でき作業環境と利便性を向上させる。
【００３４】
更に、ＰＬＣ構成モジュールに前記設定スイッチを設けたことにより、識別キー付加モードと無付加モードとの切換操作を当該ＰＬＣ構成モジュール単体で実施できる。
【００３５】
請求項３記載の発明は、請求項１記載のＰＬＣ構成モジュールのセーブ手段であって、
前記ＰＬＣ構成モジュールに付与されたＭＡＣアドレス値または製造番号であることを特徴とする。
【００３６】
この請求項３の発明によればこのような固有情報を使用することによって、個々のＰＬＣ構成モジュール毎の固体識別を保障することができる。
【００３７】
請求項４記載の発明は、請求項１から請求項３までに記載のＰＬＣ構成モジュールのセーブ手段であって、前記プロテクションキーは、前記ユーザプログラムのソースリストに埋め込むことを特徴とする。
【００３８】
この請求項４の発明によれば、ユーザプログラムへのプロテクションキーの埋め込みは、ユーザプログラム実行時にも何らの機能性能の低下を伴うこと無く、しかもアセンブル後の実行形式ファイル容量にも影響しない。
【００３９】
請求項５の発明は、請求項１に記載のＰＬＣ構成モジュールのセーブ手段であって、前記固有情報が埋め込まれた前記ユーザプログラムを機械語に変換する機械語変換手段を更に備えたことを特徴とする。
【００４０】
この請求項５記載の発明によれば、プロテクションキーである固有情報を埋め込んだ後に更に実行形式のバイナリファイル形式に変換することで、プロテクションキーの存在をさらに秘匿する効果が得られる。
【００４１】
請求項６記載の発明は、ユーザプログラムを記録した記録媒体の挿入によって又は通信インタフェースを介した管理用コンピュータからの所定の操作によって前記ユーザプログラムのロードを実行する、ＰＬＣ構成モジュールのロード手順において、前記ユーザプログラムの不正ロードを防止するプロテクションキーの有無をチェックする検出手段と、前記プロテクションキーが有ることを検出した場合に前記ＰＬＣモジュールを識別する機器別の固有情報と比較する照合手段とを備え、前記プロテクションキーと前記固有情報とが一致した場合に前記記録媒体からのロードを許可することを特徴とするＰＬＣ構成モジュールのロード手段である。
【００４２】
ロード手段が、このような検出手段と照合手段とを備えることによって、ＰＬＣ構成モジュールの固有情報をユーザプログラム内に埋め込んでから記憶媒体にセーブされたプロテクションキーの検出と照合を行うことができる。このため請求項６の発明によれば、記憶媒体にセーブされたユーザプログラムの内容から、そのセーブが実施されたＰＬＣ構成モジュールを唯一特定する効果を得る。
【００４３】
請求項７記載の発明は、請求項６に記載のＰＬＣ構成モジュールのロード手段であって、前記検出手段は、前記記憶媒体にセーブされている前記ユーザプログラムに基づき前記プロテクションキーの有無を検出することを特徴とする。
【００４４】
この請求項７の発明によれば、プロテクションキーの存在は記憶媒体にセーブされたユーザプログラムのみで検出できる。
【００４５】
請求項８記載の発明は、請求項６及び請求項７に記載のＰＬＣ構成モジュールのロード手段であって、前記検出手段は、前記記憶媒体にセーブされている前記ユーザプログラムをプログラム言語に変換する機械語逆変換手段を更に備えたことを特徴とする。
【００４６】
請求項９記載の発明は、請求項６に記載のＰＬＣ構成モジュールのロード手段であって、前記照合手段は、前記プロテクションキーと前記固有情報とを比較して一致を検出することを特徴とする。
【００４７】
この請求項８及び請求項９の発明によれば、プロテクションキーの存在を実行形式のバイナリ形式から可読のプログラム言語に変換して、プロテクションキーである固有情報を効果的に検出できる。
【００４８】
請求項１０記載の発明は、請求項６に記載のＰＬＣ構成モジュールのロード手段であって、前記固有情報は、前記ＰＬＣ構成モジュールに付与されたＭＡＣアドレス値または製造番号であることを特徴とする。
【００４９】
この請求項１０の発明によれば、プロテクションキーの作用をもつ固有情報として確実にＰＬＣ構成モジュールの単体を識別する効果を得られる。
【００５０】
請求項１１記載の発明は、前記ＰＬＣ構成モジュールを識別する機器別の前記固有情報を、前記ユーザプログラムに埋め込む実装手段を更に備えたことを特徴とする請求項６記載のＰＬＣ構成モジュールのロード手段である。
【００５１】
この請求項１１の発明によれば、ＰＬＣ構成モジュール側へユーザプログラムをロードする際にも、設定手段と実装手段とを備えることによって、識別キー付加指定のとき当該構成モジュールのみが持つ固有情報をユーザプログラム内に埋め込んでからロードする。
【００５２】
このため、ＰＬＣ構成モジュール内部のストレージデバイス具体的には内蔵フラッシュメモリ及びＲＯＭデバイスに対し、ユーザプログラムを最初にロードする出荷の段階から、プロテクションキーを予め埋め込むことができる。
【００５３】
請求項１２に記載の発明は、請求項１１に記載のＰＬＣ構成モジュールのロード手段であって、前記実装手段は、前記固有情報を前記ユーザプログラムのソースリスト内に埋め込むことを特徴とする。
【００５４】
この請求項１２の発明によれば、ＰＬＣ構成モジュールにロードしたユーザプログラムへのプロテクションキーの埋め込みは、ユーザプログラム実行時に何らの機能性能の低下を伴うこと無く、しかもアセンブル後の実行形式ファイル容量にも影響しない。
【発明の効果】
【００５５】
本発明によれば次のような効果がある。
請求項１，２，３，４、及び請求項５の発明によれば、ＰＬＣ構成モジュールで行うセーブを施す記録メディアについて識別キー付加モードと識別キー無付加モードとを選択スイッチによって選択する、ＰＬＣ構成モジュールを提供する。
【００５６】
さらに識別キー付加モード時に付加されるプロテクションキーはＰＬＣ構成モジュールが備える個別情報に基づきソースリストに組み込まれるので、キー付加済みのユーザプログラムをロードした場合であっても、ファイル容量の増減は勿論、機能面においても制御対象システムの運用上何ら支障は生じない。
【００５７】
請求項６、７、８、９及び請求項１０の発明によれば、ＰＬＣ構成モジュールで行う記録メディアを介したロード操作について、前記プロテクションキーの検出手段と、前記固有情報の照合手段と、ロード実行手段とで構成されたロード手段を提供する。
【００５８】
こうしたセーブ機能を備えたＰＬＣ構成モジュールと、ロード手段を組み合わせて運用することにより、エンドユーザ環境にあってはユーザプログラムがセーブされたメモリカード等の記録メディアへのバックアップサービス機能を温存しつつ、他のＰＬＣ構成モジュールに対しての不正なデッドコピーを防止することができる。
【００５９】
一方、セットメーカにおいては、ロード対象のＰＬＣ構成モジュールの設定スイッチを識別キー無付加モードに設定しておくことにより、メモリカード等の記録メディアを介したロード作業を多数のＰＬＣ構成モジュールに効率良く処置できる。これにより、エンドユーザへ納品するＰＬＣ構成モジュールの量産が短時間で行える効果がある。
【００６０】
すなわち、セットメーカがＰＬＣ構成モジュールをエンドユーザに一括納入する際に、同一ユーザプログラムを大量ロードする作業の利便性を図ると共に、エンドユーザ環境下で個別バックアップ機能を温存しつつ、デッドコピーの防止を両立するＰＬＣを提供できる。
【００６１】
この請求項１１及び請求項１２の発明によれば、ユーザプログラムをロードする際にも、当該ＰＬＣ構成モジュール自体のみが持つ、機器別の固有情報をソースリスト内へ埋め込んでからロードする。
【００６２】
このためロード手段単独のみで、プロテクションキー埋め込み機能と、プロテクションキーによる不正コピー防止機能とを統合運用することができる。
【００６３】
即ち、ロード手段によってプロテクションキーが埋め込まれたＰＬＣ構成モジュールでは、セーブ操作の際に単純にメディアへコピーするだけで、当該メディアには自ずとかつ必然的にプロテクションキーが埋め込まれる結果となる。
【００６４】
この様に、ＰＬＣ構成モジュールにロード済みのユーザプログラム自体に最初からプロテクションキーの埋め込みを図ったことから、エンドユーザ環境下にあって確実にデッドコピーが防止される効果がある。
【発明を実施するための最良の形態】
【００６５】
以下に実施例を用いて本発明を説明する。
図１は本発明に係るＰＬＣ構成モジュールのセーブ手段及びロード手段の構成例を示しておりＡはセーブ手段、Ｂはロード手段に対応している。
【００６６】
図１Ａのセーブ手段は、識別手段１、実装手段２、機械語変換手段３、書き込み手段１０３Ａで構成している。
【００６７】
一方図１Ｂのロード手段は、読み込み手段１０３Ｂ、逆機械語変換手段７、検出手段８、照合手段９および処理手段１０で構成している。
【００６８】
図２は、図１Ａに対応するＰＬＣ構成モジュールを含む機能ブロック図である。本発明のセーブ手段を構成するＰＬＣ構成モジュール内のＣＰＵを含む各種ハードウェア資源と、そのＣＰＵの実行用に記述されたソフトウェアプログラムの対応を示している。
【００６９】
図２において、予め実装されている管理用ソフトウェアであるファームウェア１００Ａは、ＰＬＣ構成モジュール内にあるフラッシュメモリ等のストレージデバイスである第１記憶手段１０１にロードされて、ＣＰＵ１０２によって実行されている。
【００７０】
ファームウェア１００Ａには、図１Ａのセーブ手段を構成する識別手段１、実装手段２、機械語変換手段３に相当するアセンブラ等がそれぞれユーティリティ或いは個別ソフトウェアプログラムとして実装されている。
【００７１】
設定スイッチ４は、図２の実施例ではＰＬＣ構成モジュールのプリント基板上或いは表面パネル等に設けたＤＩＰスイッチを用いている。識別手段１は具体的にはＣＰＵ１０２の周辺Ｉ／Ｏアクセスポートと、その値の読み込みと結果判定を行うソフトウェアのプログラムであり、設定スイッチ４の既定値オン又はオフの状態をＣＰＵ１０２で判定している。
【００７２】
図１及び図２に例示したＰＬＣ構成モジュールでは、記録媒体としてメモリカードＭを用いているため、カードリーダ・ライタ１０３を備えている。図２は、ＣＰＵ１０２によりカードリーダ・ライタ１０３を制御することを示している。
【００７３】
第２記憶手段１０４は、ファームウェア１００Ａをロードしている第１記憶手段１０１とは別のストレージデバイスある。管理対象システムの制御手順に係るユーザプログラム５をロードし、画面表示を伴う編集やライブラリ化など管理作業に用いている。
【００７４】
第２記憶手段１０４は、識別手段１、具体的にはＣＰＵ１０２からアクセスして読み取れる構成としている。即ち第２記憶手段１０４内に格納してあるユーザプログラム５は、ファームウェア１００のソフトウェアプログラム群の一つである実装手段１によって参照される。
【００７５】
個別情報６は、本ＰＬＣ構成モジュールに固有の識別情報が格納されている。識別情報としてＭＡＣアドレス値を用いる場合、固有情報６は、ファームウェア１００の内部に属する。
【００７６】
一方、識別情報として製造シリアル番号値等を用いる場合は、実装手段２、具体的にはＣＰＵ１０２から読み取れることを条件に、周辺Ｉ／Ｏアクセスポートとして本ＰＬＣ構成モジュールに属するハードウェア資源内の何処に設けても良い。
【００７７】
入出力部１０５は、本ＰＬＣ構成モジュールに付帯する入出力デバイスである。キーボード、タッチパネル等の各種入力部及び、ＬＥＤ、表示パネル等の各種出力部を表している。
【００７８】
図３は、図１Ｂに対応する機能ブロック図である。ロード手段として本発明を実施したＰＬＣ構成モジュール内のＣＰＵを含む各種ハードウェア資源と、そのＣＰＵの実行用に記述されたソフトウェアプログラムの対応を示している。
【００７９】
図３において、予め実装されている管理用ソフトウェアであるファームウェア１００Ｂは、ＰＬＣ構成モジュール内にあるフラッシュメモリ等のストレージデバイスである第１記憶手段１０１にロードされて、ＣＰＵ１０２によって実行されている。
【００８０】
ファームウェア１００Ｂには図１Ｂのロード手段を構成する、逆機械語変換手段７に相当する逆アセンブラ、検出手段８、照合手段９、処理手段１０が、各々個別ソフトウェアモジュール単位又はプログラムとして実装されている。
【００８１】
ここで図３の中で図２と同一記号の構成要素は、同一機能をもった手段であるから再度の説明は省略する。
【００８２】
次に図１Ａ，図１Ｂ、図２、図３に示した本発明の実施例である、セーブ手段とロード手段及びそれら相互の関係を詳細に説明する。
【００８３】
セーブ手段では、ＰＬＣ構成モジュールの第２記憶手段１０４にあるユーザプログラム５を記憶媒体にバックアップする場合、メモリカードＭのカードリーダ・ライタへの挿入によって開始する。更に、合わせて入出力部１０５から所定のセーブ実行命令をＣＰＵ１０２に与えても良い。
【００８４】
このとき識別手段１では設定スイッチ４の既定値を読み込んで設定スイッチ４がオンのとき、実装手段２を実行する。
【００８５】
実行手段２では、第２記憶手段１０４内のユーザプログラム５のファイルと、個別情報６の値を読み込む。
【００８６】
ユーザプログラム５のソースリスト中で、レジスタや即値に相当するオペランド部分、またはラベル箇所など、所定の位置へ個別情報６の値の埋め込みを実行する。埋め込みに際して、安全を期して個別情報６の値に基づくスクランブルや暗号化など適宜に二次加工を施しても差し支えない。
【００８７】
固有情報６又はその二次加工データの埋め込み箇所には、ユーザプログラム５のソースリスト内で制御対象システムの制御アルゴリズムや実行内容、応答速度には直接関わらず、動作にも影響しない無関係かつ無害なオペコード位置及びそのオペランドが慎重に選定される。
【００８８】
続いて機械語変換手段３では、実装手段２によって固有情報６又はその二次加工データが埋め込まれたユーザプログラムを実行形式であるバイナリファイル形式の機械語に変換する。本実施例では、機械語変換手段３としてファームウェアに備えたユーティリティ・ソフトであるアセンブラを使用している。
【００８９】
機械語に変換されたユーザプログラムは、書き込み手段１０３Ａを介して記憶媒体であるメモリカードＭへセーブされる。本実施例では、書き込み手段１０３Ａとしてはカードリーダ・ライタ１０３を用いている。
【００９０】
識別手段１において、読み込んだ設定スイッチの規定値がオフであった場合は個別情報６の埋め込みは行わず、現行のユーザプログラム５を機械語に変換してから書き込み手段１０３Ａを介して記憶媒体であるメモリカードＭへセーブする。
【００９１】
一方のロード手段では、ユーザプログラムが格納されたメモリカードＭを本発明が実施されたＰＬＣ構成モジュールのカードリーダ・ライタ１０３に挿入する。ロード手順の開始には、さらに続けて入出力部１０５から所定のロード実行命令をＣＰＵ１０４へ入力しても良い。
【００９２】
カードリーダ・ライタ１０３である図１Ｂの読み込み手段１０３Ｂから読み出された、機械語のデータは、逆機械語変換手段７である逆アセンブラによって処理され、可読ファーマットのソースプログラムに変換される。
【００９３】
検出手段８では、ソースプログラム形式に変換されたユーザプログラム中から、セーブ手段である実装手段２によって埋め込まれた、固有情報６又はその二次加工データの有無を検出する。
【００９４】
検出手段８がソースリスト中に固有情報又はその二次加工データの存在を検出した場合、照合手段９は当該ＰＬＣ構成モジュール自体が備えている固有情報６、又はその二次加工データとの比較照合を行う。
【００９５】
比較の結果、値が一致するとなれば、このとき挿入された記憶媒体であるメモリカードＭは、設定スイッチ４がオン状態のときに当該ＰＬＣ構成モジュールでかつてセーブされ作成された記録媒体であることを示している。
【００９６】
反対に比較の結果、一致しなければ、このとき挿入された記憶媒体であるメモリカードＭのユーザプログラムは、他の個体のＰＬＣ構成モジュールによるセーブされたことを示している。
【００９７】
比較照合の結果、一致した場合には、処理手段１０はメモリカードＭに格納されていたユーザプログラムについて内蔵のストレージデバイスへのロードを許可する。本実施例では図３の様に、第２記憶手段のメモリ領域に逆アセンブルしたユーザプログラムを転送する場合を示している。
【００９８】
ユーザプログラムは可読のソースリスト形式に変換済みであるから第２記憶手段では、再編集や画面表示等のＣＰＵ１０２を介したオフライン作業領域として提供されている。もちろんロードしたユーザプログラムはＣＰＵ１０２による即時実行を前提に、実行形式のバイナリファイル形式のままで、第１記憶手段内にあるファームウェア１００領域以外の所定の実行開始番地へロードしてもよい。
【００９９】
併せて処理手順１０では、入出力部１０５を介して指定されたロード操作が正常終了した旨をオペレータに通知する。
【０１００】
一方、比較照合の結果不一致であった場合は、メモリカードＭに記録されたユーザプログラムのモジュール内へのロードを許可しない。照合手段９では、指定されたロード操作は許可されなかった旨を、入出力部１０５を介してオペレータに通知する。
【０１０１】
すなわち、図２に例示するセーブ手段で設定スイッチ４をオン設定にしてから記憶媒体へのセーブを実施すると、その記憶媒体はセーブ操作を行ったＰＬＣ構成モジュール以外の個体ではロードすることができない。
【０１０２】
これは実装手段２によって個体を識別する個別情報６をユーザプログラム５内に埋め込んだ後からセーブするためであり、ロード操作に対して不正コピーを検出しこれに対するプロテクションキーとして作用する。
【０１０３】
図３に例示したロード手段では、検出手段８がプロテクションキーとしての個別情報６またはこれに基づく二次加工情報の有無を必ず検査し、プロテクションキーが埋め込まれている場合には固有情報との照合が行われて記録媒体の出自を検証する。
【０１０４】
図４は、図２に例示するセーブ手段で設定スイッチ４をオフ、すなわちプロテクションキーを無しにしてから記憶媒体であるメモリカードＭへセーブ操作Ａをした場合、ロード操作Ｂの他ＰＬＣ構成モジュールに対する作用を示している。
【０１０５】
図４においてＰＬＣ構成モジュールであるＰＬＣ１でセーブされたメモリカードＭ０は、他のＰＬＣ構成モジュールであるＰＬＣ２、３、４・・・ｎ（ｎは自然数）についてもすべてロードが許可される。
【０１０６】
一方図５では、図２に例示するセーブ手段で図４の状態とは逆に設定スイッチ４をオン、すなわちプロテクションキーを有りにしてから記憶媒体であるメモリカードＭへセーブ操作Ａをした場合の、他ＰＬＣ構成モジュールに対するロードＢ操作の不正ロードプロテクション作用を示している。
【０１０７】
ここで不正ロードとは、記憶媒体に対するセーブ操作を実施したＰＬＣ構成モジュール個体以外の機器に対して、その記憶媒体を用いてロード操作を行う行為をいう。
【０１０８】
図５において示される様にＰＬＣ構成モジュールであるＰＬＣ１でセーブされたメモリカードＭ１は、ＰＬＣ１以外のＰＬＣ構成モジュールでは不正ロードであり許可されない。他のＰＬＣ構成モジュールであるＰＬＣｎ（ｎは自然数）についても、同一個体であるＰＬＣｎ（ｎは自然数）以外でのロード操作Ｂが許可されない。
【０１０９】
本発明のセーブ手段及びロード手段を同一ＰＬＣ構成モジュールに併せて実装することで、記憶媒体に記録するプログラム動作とファイル容量に何ら影響を及ぼすこと無しに、セーブ操作を実施したモジュール個体の識別子である固有情報６を埋め込んでこれを不正ロードの試みに対してのプロテクションキーとして作用させている。
【０１１０】
この様にＰＬＣ構成モジュールにおいて、図４に相当する設定スイッチオン状態と図５に相当する設定スイッチオフ状態とを適宜切換えることにより、セットメーカ環境下でのユーザプログラムの大量一括ロードと、エンドユーザ環境下での他ＰＬＣ構成モジュールへのユーザプログラム拡散、即ち不正ロードの防止効果とを両立することができる。
【０１１１】
また設定スイッチ４は、図２の実施例によるＤＩＰスイッチ或いはスライドスイッチやロータリスイッチ等の機械的な切換えに替わり、例えばＣＰＵ１０２から読み込みが可能である単なる１ビット以上のレジスタで構成されたＩ／Ｏポートを用いてもよい。
【０１１２】
例えば、このレジスタに１をライトしたとき設定スイッチ４オフ状態、デフォルト値である０をライトしたときオン状態と定義する。
【０１１３】
セットメーカによる正規品の量産の際は、ソフトウェアのみでプロテクションキー解除操作を簡単に実施できる。即ちロード手順の最初のステップに、設定スイッチ４のＩ／Ｏアクセスポートに１をライトする１行を追加することで実施できる。
【０１１４】
更にＰＬＣ構成モジュールの電源オフに伴い、設定スイッチ４のＩ／Ｏアクセスポートは初期状態である値０、即ちプロテクションキーの付加設定状態へ自動的に復帰する。本レジスタ番地が判明しない限りエンドユーザ環境下ではプロテクションキー解除は不可能とすることができる。
【０１１５】
図６は、ＰＬＣ構成モジュールのロード手段について管理用コンピュータＨを介してのソフトウェアダウンロードを伴う遠隔操作で一括して行う場合の実施例を示している。
【０１１６】
即ちユーザプログラムをロードする時点で、識別キーの付加指定を行い当該ＰＬＣ構成モジュール自体のみが持つ、機器別の固有情報をソースリスト内へ予め埋め込んでロード操作を実行する。
【０１１７】
このためロード手段単独で、プロテクションキー埋め込み機能と、プロテクションキーによる不正コピー防止機能とを一元化することができる。以下、この様なプロテクションキーを埋め込んで行うロード操作を、図１Ｂ、図３、４，５で示したロード操作Ｂと区別して、ロード操作ＢＰと記す。
【０１１８】
即ち、ロード操作ＢＰによってプロテクションキーが埋め込まれたＰＬＣ構成モジュールでは、セーブ操作の際に単純にメディアへコピーするだけで、当該メディアには自ずとかつ必然的にプロテクションキーが埋め込まれる結果となる。
【０１１９】
この様に、ＰＬＣ構成モジュールにロード済みのユーザプログラム自体に、予めプロテクションキーの埋め込みを行ったことから、エンドユーザ環境下にあっては確実にデッドコピーが防止される効果がある。図６の実施例は、セーブ操作Ａにおいてプロテクションキー埋め込みを回避する手段を与えないためである。
【０１２０】
図６では、ＰＬＣ構成モジュールにロードするユーザプログラム自体に、最初からプロテクションキーの埋め込みを図る実施例を示している。
【０１２１】
管理用コンピュータＨは、各ＰＬＣ構成モジュールＰＭＣ１、ＰＭＣ２、ＰＭＣ３・・・ＰＭＣｎ（ｎは自然数）にユーザプログラムを一斉又は順番にダウンロードしてロード操作ＢＰを実施する。
【０１２２】
各ＰＬＣ構成モジュールでは、各々にて実施されるロード操作ＢＰを通して、例え元は同一のユーザプログラムであっても、内部の記憶領域へ記録される過程で当該ＰＬＣ構成モジュール自体のみが持つ、機器別の固有情報をソースリスト内へ予め埋め込んだ状態としてロード操作が実行される。
【０１２３】
従って、これらのロード操作ＢＰを受けた各ＰＬＣ構成モジュールで、セーブ操作Ａを実施すると、生成される各記憶媒体のメモリカードＭ１、Ｍ２、Ｍ３・・・・Ｍｎ（ｎは自然数）では、必然的にプロテクションキーが埋め込まれる。
【０１２４】
この結果、これらのメモリカードＭｎ（ｎは自然数）を用いる場合に、同一個体であるＰＬＣｎ（ｎは自然数）以外でのロード操作Ｂが許可されない。すなわちセーブ操作Ａによって生成される記録媒体では同一個体であるＰＬＣｎ（ｎは自然数）へのバックアップ機能のみが有効となり、一切の不正コピーが防止される。
【０１２５】
図７は、図６に対応したロード操作ＢＰを実行するＰＬＣ構成モジュールの構成例を示している。図７において同一記号の構成要素は、図１の構成と同一作用をもつため詳細説明は省略する。
【０１２６】
図７の実施例では管理用コンピュータＨを介したロード操作ＢＰのとき、実装手段２及びアセンブラである機械語変換手段３によって第二記憶手段１０４へのロードを実行している。勿論、記憶手段１０４へロードする際には機械語変換手段３はスキップしても差し支えない。また同時に、他のストレージデバイス具体的には内蔵のフラッシュメモリ及びＲＯＭデバイスにもロードされている。
【０１２７】
また、図７に示す様に、ロード操作ＢＰは管理用コンピュータＨを介して実行する替わりにカードリーダ・ライタ１０３に挿入されたメモリカードを介して実行することも可能である。その場合は、カードリーダ・ライタ１０３からの読み出しデータ出力を実装手段２へと接続する。
【０１２８】
以上説明した様に本発明によれば、エンドユーザ環境下でメモリカード等の記憶媒体を介した違法デッドのコピー防止機能と、エンドユーザが必要とするバックアップ機能との両立が可能なＰＬＣ構成モジュールのロード手段及びセーブ手段を提供できる。更にはセットメーカ環境にあってはユーザプログラムの大量一括ロードを可能にし、量産時の作業利便性を向上させることができる。
【図面の簡単な説明】
【０１２９】
【図１】本発明のセーブ手段及びロード手段の両実施例のフローチャートである。
【図２】本発明の図１に対応するセーブ手段の機能ブロック図の構成例である。
【図３】本発明の図１に対応するロード手段の機能ブロック図の構成例である。
【図４】本発明の図１、図２、図３に対応したセーブ手段及びロード手段で設定スイッチをオフにした場合の、セーブ操作Ａとロード操作Ｂとの対応を示す図である。
【図５】本発明の図１、図２、図３に対応したセーブ手段及びロード手段で設定スイッチをオンにした場合の、セーブ操作Ａとロード操作Ｂとの対応を示す図である。
【図６】本発明のロード操作ＢＰ、セーブ操作Ａ、ロード操作Ｂの各対応を示す図である。
【図７】本発明の図６に対応する、ロード操作ＢＰを実施した場合の構成例である。
【図８】従来のセーブ手段及びロード手段を用いた場合の、セーブ操作Ａとロード操作Ｂの対応を示す図である。
【符号の説明】
【０１３０】
１  識別手段
２  実装手段
３  機械語変換手段
４  設定スイッチ
５  ユーザプログラム
６  個別情報
７  機械語逆変換手段
８  検出手段
９  照合手段
１０  処理手段
１００  ファームウェア
１０１  第１記憶手段
１０２  ＣＰＵ
１０３  カードリーダ・ライタ
１０４  第２記憶手段
１０５  入出力部
【図１】
2006106998.tif 000003
【図２】
2006106998.tif 000004
【図３】
2006106998.tif 000005
【図４】
2006106998.tif 000006
【図５】
2006106998.tif 000007
【図６】
2006106998.tif 000008
【図７】
2006106998.tif 000009
【図８】
2006106998.tif 000010