(57)【要約】【課題】不正にコピーされたアプリケーションプログラムでは、他のプログラマブルコントローラを、元のプログラマブルコントローラと同様に機能させることができないようにする。【解決手段】実施形態のプログラマブルコントローラは、複数のタスクからなるアプリケーションプログラムの各タスクに、ハードウェアの識別コードが含まれているか否かを判断する第１の判断手段を備える。また、第１の判断手段により、タスクに識別コードが付加されていると判定された場合、該識別コードが、本プログラマブルコントローラの識別コードに一致するか判断する第２の判断手段を備える。また、第２の判断手段により、タスクに付加された識別コードが本プログラマブルコントローラの識別コードに一致すると判定された場合、当該タスクを実行許可し、そうでない場合、実行禁止とする実行許可手段を備える。【選択図】図６
2014035698.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクからなるアプリケーションプログラムの各タスクに、ハードウェアの識別コードが含まれているか否かを判断する第１の判断手段と、
前記第１の判断手段により、前記タスクに前記識別コードが付加されていると判定された場合、該識別コードが、本プログラマブルコントローラの識別コードに一致するか判断する第２の判断手段と、
前記第２の判断手段により、前記タスクに付加された前記識別コードが本プログラマブルコントローラの識別コードに一致すると判定された場合、当該タスクを実行許可し、そうでない場合、実行禁止とする実行許可手段と、
を備えるプログラマブルコントローラ。
【請求項２】
前記実行許可手段は、前記第１の判断手段により前記タスクに前記識別コードが付加されていないと判定された場合、当該タスクを実行許可する、請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記タスクに複数の前記識別コードが付加されている場合に、
前記第２の判断手段は、該当タスクに付加された識別コードのいずれかが、本プログラマブルコントローラの識別コードに一致するか判断し、
前記実行許可手段は、前記第２の判断手段により、前記該当タスクに付加された識別コードの１つが本プログラマブルコントローラの識別コードと一致すると判定された場合、当該タスクを実行許可する、請求項１または請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記実行許可手段は、エンジニアリングツールにより前記アプリケーションプログラムとともにダウンロードされる、該アプリケーションプログラムの各タスクの実行順序および実行可否を管理するためのタスク管理情報に対し、実行許可または実行禁止の設定をする、請求項１から請求項３のいずれか１項に記載のプログラマブルコントローラ。
【請求項５】
請求項４に記載のプログラマブルコントローラ用の、前記アプリケーションプログラムおよび前記タスク管理情報を作成するためのエンジニアリングツールプログラムであって、
通常は、前記識別コードを除く前記タスク管理情報を表示するとともに、前記アプリケーションプログラムの各タスクの実行可否の設定を受け付け、所定の操作に応じて、前記識別コードを含む前記タスク管理情報を表示するとともに、タスク毎に前記識別コードの設定をさらに受け付けるタスク管理情報設定ステップと、
前記タスク管理情報設定ステップにおいて、作成されるアプリケーションプログラムのいずれかのタスクに対して前記識別コードが設定された場合、該当タスクに、前記タスク管理情報に設定された識別コードを付加する識別コード付加ステップと、
作成されたアプリケーションプログラムと前記タスク管理情報とを前記プログラマブルコントローラにダウンロードするダウンロードステップと、
をコンピュータに実行させるためのエンジニアリングツールプログラム。
【請求項６】
複数のタスクからなるアプリケーションプログラムの各タスクに、ハードウェアの識別コードが含まれているか否かを判断する第１の判断手段と、
前記第１の判断手段により前記タスクに前記識別コードが付加されていると判定された場合、該識別コードが、本プログラマブルコントローラの識別コードに一致するか判断する第２の判断手段と、
前記第２の判断手段により、前記タスクに付加された前記識別コードが、本プログラマブルコントローラの識別コードに一致すると判定された場合、前記アプリケーションプログラムとともにダウンロードされる、該アプリケーションプログラムの各タスクの実行順序および実行可否を管理するためのタスク管理情報に対し、当該タスクの実行可否の設定を実行許可とし、そうでない場合、実行禁止とする実行許可手段と、
を有するプログラマブルコントローラと、
前記プログラマブルコントローラ用の、前記アプリケーションプログラムおよび前記タスク管理情報を作成するためのエンジニアリングツールプログラムであって、
通常は、前記識別コードを除く前記タスク管理情報を表示するとともに、前記アプリケーションプログラムの各タスクの実行可否の設定を受け付け、所定の操作に応じて、前記識別コードを含む前記タスク管理情報を表示するとともに、タスク毎に前記識別コードの設定をさらに受け付けるタスク管理情報設定ステップと、
前記タスク管理情報設定ステップにおいて、作成されるアプリケーションプログラムのいずれかのタスクに対して前記識別コードが設定された場合、該当タスクに、前記タスク管理情報に設定された識別コードを付加する識別コード付加ステップと、
作成されたアプリケーションプログラムと前記タスク管理情報とを前記プログラマブルコントローラにダウンロードするダウンロードステップと、
をコンピュータに実行させるためのエンジニアリングツールプログラムを実装するコンピュータと、
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、プログラマブルコントローラ、エンジニアリングツール、およびそのシステムに関する。
【背景技術】
【０００２】
従来より、各種プラントなどのシステム制御を行うために、プログラマブルコントローラと呼ばれる制御装置が使用されている。このプログラマブルコントローラは、所定のエンジニアリングツールを用いて作成された、タスクと呼ばれるプログラムの一群（ここではアプリケーションプログラムと称す）をダウンロードして、そのタスクを順次実行することにより、該当システムに備わる外部機器に対する制御を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２５０６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記エンジニアリングツールで作成したアプリケーションプログラムは、エンジニアリング効率化のため、容易に中身を参照したりコピーすることができ、不正にコピーされて悪用されてしまうという問題があった。具体的には、不正にコピーされたアプリケーションプログラムでも、同型の他のプログラマブルコントローラにダウンロードすることにより、他のプログラマブルコントローラを、元のプログラマブルコントローラと同様に機能させることができてしまう問題があった。
【０００５】
本発明が解決しようとする課題は、プログラマブルコントローラ用のアプリケーションプログラムが不正にコピーされてしまっても、そのアプリケーションプログラムでは、他のプログラマブルコントローラを、元のプログラマブルコントローラと同様に機能させることができないようにするプログラマブルコントローラ、エンジニアリングツール、およびそのシステムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態のプログラマブルコントローラは、複数のタスクからなるアプリケーションプログラムの各タスクに、ハードウェアの識別コードが含まれているか否かを判断する第１の判断手段を備える。また、第１の判断手段により、タスクに識別コードが付加されていると判定された場合、該識別コードが、本プログラマブルコントローラの識別コードに一致するか判断する第２の判断手段を備える。また、第２の判断手段により、タスクに付加された識別コードが本プログラマブルコントローラの識別コードに一致すると判定された場合、当該タスクを実行許可し、そうでない場合、実行禁止とする実行許可手段を備える。
【０００７】
また、実施形態のエンジニアリングツールプログラムは、上記プログラマブルコントローラ用の、アプリケーションプログラムおよびタスク管理情報を作成するためのエンジニアリングツールプログラムである。このプログラムは、通常は、識別コードを除くタスク管理情報を表示するとともに、アプリケーションプログラムの各タスクの実行可否の設定を受け付ける。一方、所定の操作に応じて、識別コードを含むタスク管理情報を表示するとともに、タスク毎に識別コードの設定をさらに受け付ける。また、作成されるアプリケーションプログラムのいずれかのタスクに対して識別コードが設定された場合、該当タスクに、タスク管理情報に設定された識別コードを付加する。また、作成されたアプリケーションプログラムとタスク管理情報とをプログラマブルコントローラにダウンロードする。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態にかかる、該当システムにおけるプログラマブルコントローラ周辺のシステム構成（Ａ）と、別システムにおけるプログラマブルコントローラ周辺のシステム構成（Ｂ）と、を示すブロック図である。
【図２】図２は、第１の実施形態にかかる、エンジニアリングツールにより作成され登録されるタスク管理テーブルとアプリケーションプログラムを例示した図である。
【図３】図３は、第１の実施形態にかかる、エンドユーザの下でのエンジニアリングツールにおけるタスク管理テーブルの表示態様（通常表示）の一例を示す図である。
【図４】図４は、第１の実施形態にかかる、システム設計者の下でのエンジニアリングツールにおけるタスク管理テーブルの表示態様（システム設計者用表示）の一例を示す図である。
【図５】図５は、第１の実施形態にかかる、タスク管理テーブルとアプリケーションプログラムとがダウンロードされたＣＰＵモジュールの概略構成を示すブロック図である。
【図６】図６は、第１の実施形態にかかる、コントローラのＣＰＵモジュールの動作を説明するフローチャートである。
【図７】図７は、第１の実施形態において、アプリケーションプログラムの不正コピーがなされ別システムのコントローラのＣＰＵモジュールにダウンロードされた場合の、当該ＣＰＵモジュールの概略構成と動作を説明するブロック図である。
【図８】図８は、第２の実施形態にかかる、該当システムにおけるプログラマブルコントローラ周辺のシステム構成を示すブロック図である。
【図９】図９は、第２の実施形態にかかる、エンジニアリングツールにより作成され登録されるタスク管理テーブルとアプリケーションプログラムを例示した図である。
【図１０】図１０は、第２の実施形態にかかる、システム設計者の下でのエンジニアリングツールにおけるタスク管理テーブルの表示態様（システム設計者用表示）の一例を示す図である。
【図１１】図１１は、第２の実施形態にかかる、タスク管理テーブルとアプリケーションプログラムとがダウンロードされたＣＰＵモジュールの概略構成を示すブロック図である。
【図１２】図１２は、第２の実施形態の変形例にかかる、該当システムにおけるプログラマブルコントローラ周辺のシステム構成を示すブロック図である。
【図１３】図１３は、第２の実施形態の変形例にかかる、エンジニアリングツールにより作成され登録されるタスク管理テーブルとアプリケーションプログラムを例示した図である。
【発明を実施するための形態】
【０００９】
（第１の実施形態）
図１は、第１の実施形態にかかる、該当システムにおけるプログラマブルコントローラ周辺のシステム構成（Ａ）と、別システムにおけるプログラマブルコントローラ周辺のシステム構成（Ｂ）と、を示すブロック図である。
【００１０】
本実施形態は、図１（Ａ）に示すように、該当するシステムで使用するエンジニアリングツール１１を実装するパソコン等のコンピュータ（図中パソコンと記載）１とプログラマブルコントローラ（以下、コントローラと略記）２がイーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）によるネットワークを介して接続されている。また、コントローラ２には、制御手段としてのＣＰＵモジュール２１が実装され、このＣＰＵモジュール２１が制御する外部機器と情報の入出力をするためのＩ／Ｏモジュール２２が複数接続されている。なお、このコントローラ２および下記のコントローラ２０には、図示しない電源モジュールやその他のモジュールも実装される。
【００１１】
図１（Ｂ）は、不正にコピーされたアプリケーションプログラムが使用されうる別システムにおける、エンジニアリングツール１０１を実装するコンピュータ１００と、ＣＰＵモジュール２０１を実装するコントローラ２０を例示している。従来は、図１（Ａ）に示すシステムのアプリケーションプログラムのコピーを（不正にコピーされたものであっても）、図１（Ｂ）に示すシステムでそのまま使用することができていた。
【００１２】
以下に、不正にコピーされたアプリケーションプログラムを、他のシステムでは使用できなくする本実施形態の詳細を、図２〜図７を用いて説明する。
【００１３】
本実施形態において、システム設計者は、予め、エンジニアリングツール１１にてアプリケーションプログラム１４ａを作成し登録する（図２）。なお、図２では、アプリケーションプログラム１４ａの各タスクに、コントローラの識別コードを例示しているが、アプリケーションプログラム１４ａの作成当初は、この識別コードは付加されていない。
【００１４】
また、このアプリケーションプログラム１４ａの作成の際、エンジニアリングツール１１では、システム設計者により、アプリケーションプログラム１４ａの各タスクを管理できるように、タスク番号、プログラムの名称、実行許可（許可／禁止）およびコントローラの識別コードなどの情報が設定されるタスク管理テーブル１３ａ（図２）も作成される。
【００１５】
なお、上記コントローラの識別コードは、実際はコントローラに実装されるＣＰＵモジュールの識別コードであるが、１つのコントローラに１つのＣＰＵモジュールが実装されるので、コントローラとＣＰＵモジュールとを同一視することができ、ここではコントローラの識別コードと称す。また、以下において、アプリケーションプログラム等を「コントローラにダウンロードする」ことは、実際は、そのコントローラに実装されたＣＰＵモジュールにダウンロードすることを意味する。
【００１６】
エンドユーザの下では、エンジニアリングツール１１により、通常表示として図３に示すようなタスク管理テーブル１２ａが表示される。このタスク管理テーブル１２ａには、アプリケーションプログラム１４ａの実行対象となるコントローラの識別コードは表示されない。このように、エンドユーザの下では、通常表示がなされるが、システム設計者の所定の管理操作により、システム設計者用表示として図４に示すようなタスク管理テーブル１２ｂに表示が切り替わり、タスク毎にコントローラの識別コード等が登録・変更できるようになっている。
【００１７】
本実施形態では、このように、システム設計者のみが、作成されたタスク管理テーブル１３ａの識別コード等の設定や変更を行うことができる。一方、エンドユーザは、図３に示すタスク管理テーブル１２ａ上で実行許可の内容を変更できるが、識別コードの設定や変更を行うことはできない。
【００１８】
システム設計者は、システム設計者用に表示されたタスク管理テーブル１２ｂ上で、該当システムで使用するコントローラの識別コードをタスク単位で登録する。このとき識別コードを登録したタスクには、登録した識別コードが付加される（図２：アプリケーションプログラム１４ａ参照）。そして、エンジニアリングツール１１により、識別コードを除くタスク管理テーブル１３ａの情報および各タスクに識別コードが付加されたアプリケーションプログラム１４ａをコントローラ２のＣＰＵモジュール２１にダウンロードする。
【００１９】
ＣＰＵモジュール２１は、ＣＰＵ２１ａおよびメモリ２１ｂを備えており、ＣＰＵモジュール２１にダウンロードされた識別コードを除くタスク管理テーブル１３ａの情報およびアプリケーションプログラム１４ａは、タスク管理テーブル２３ａおよびアプリケーションプログラム２４ａとしてメモリ２１ｂに格納され、ＣＰＵ２１ａが、メモリ２１ｂに格納されたタスク管理テーブル２３ａに従って、アプリケーションプログラム２４ａを実行する。
【００２０】
コントローラ２のＣＰＵモジュール２１は、図６に示すように、アプリケーションプログラム２４ａを実行する際に、該当するタスクに識別コードが付加されているかどうかをチェックする（ステップＳ１０１）。
【００２１】
そして、識別コードが付加されていれば（ステップＳ１０１でＹｅｓ）、その識別コードとコントローラ２自身の識別コードとを比較し（ステップＳ１０２）、一致していれば（ステップＳ１０２でＹｅｓ）、該当のタスクを実行許可し（ステップＳ１０５）、不一致であれば（ステップＳ１０２でＮｏ）、該当のタスクを実行禁止にする（ステップＳ１０３）。なお、セキュリティ管理の必要のないタスクなど、タスクに識別コードが付加されていない場合は、識別コードが一致するとみなして処理する。
【００２２】
そして、チェック対象を次のタスクとして（ステップＳ１０４）、ステップＳ１０１以降の処理を、残りの全タスクに対し繰り返す。
【００２３】
図５の例では、アプリケーションプログラム２４ａの各タスクに付加されている識別コードがプログラマブルコントローラ２自身の識別コードと一致しているので、ダウンロードされたアプリケーションプログラムの各タスクは全て実行される。なお、コントローラ２と異なるコントローラの識別コードがアプリケーションプログラムのいずれかのタスクに付加されていた場合、そのタスクは、コントローラ２では、タスク管理テーブル２３ａの「実行許可」が“禁止”となって、実行されない。
【００２４】
図７の例は、図１（Ａ）および図２のエンジニアリングツール１１から、図１（Ｂ）に示す別システムのエンジニアリングツール１０１にタスク管理テーブル１３ａおよびアプリケーションプログラム１４ａ（図２）をそのままコピーして利用することを想定した例である。
【００２５】
この例において、別システムのエンジニアリングツール１０１上で、エンドユーザ用のタスク管理テーブル１３ａを表示させても（図３：１２ａ）、アプリケーションプログラム１４ａの各タスクに付加された識別コードの表示はされないが、タスク管理テーブル１３ａおよびアプリケーションプログラム１４ａの各タスクには、コントローラ２の識別コードが付加されている。
【００２６】
本例では、識別コードを除くタスク管理テーブル１３ａの情報およびアプリケーションプログラム１４ａをコントローラ２０のＣＰＵモジュール２０１にダウンロードする。
【００２７】
ＣＰＵモジュール２０１は、ＣＰＵ２０１ａおよびメモリ２０１ｂを備えており、ＣＰＵモジュール２０１にダウンロードされた識別コードを除くタスク管理テーブル１３ａの情報およびアプリケーションプログラム１４ａは、タスク管理テーブル２０３およびアプリケーションプログラム２０４としてメモリ２０１ｂに格納され、ＣＰＵ２０１ａが、メモリ２０１ｂに格納されたタスク管理テーブル２０３に従って、アプリケーションプログラム２０４を実行する。つまり、ＣＰＵ２０１ａは、図６を用いて説明した一連のチェック処理により、各タスクの実行許可／禁止が決定した上で、アプリケーションプログラム２０４を実行する。
【００２８】
図７の例では、該当のタスクに付加された識別コード（ここではコントローラ２の識別コード）がコントローラ２０１のものと不一致であるため、該当のタスクを実行禁止にする（タスク管理テーブル２０３参照）。これにより、不正にコピーされ別システムのコントローラ２０のＣＰＵモジュール２０１にダウンロードされたアプリケーションプログラム２０４は、“識別コード：なし”のタスクを除いて実行されない。
【００２９】
以上のように、本実施形態では、いずれかのコントローラにダウンロードされたアプリケーションプログラム１４ａの各タスクに付加された識別コードが、当該コントローラ自身の識別コードと一致しなければ該当のタスクを実行しないようにしたので、アプリケーションプログラム１４ａが不正にコピーされても、このコピープログラムでは、コントローラ２０のような別システムのコントローラを正規のコントローラ２と同様に機能させることはできず、当該アプリケーションプログラム１４ａを別システムにて利用できないようにすることができる。
【００３０】
（第２の実施形態）
図８は、第２の実施形態にかかる、該当システムにおけるプログラマブルコントローラ周辺のシステム構成を示すブロック図である。本実施形態は、該当するシステムで、複数のコントローラを使用する場合の構成例である。
【００３１】
図８は、このシステムで使用するエンジニアリングツール１１を実装したコンピュータ１と、一例として、コントローラ２とコントローラ３とコントローラ４とを、イーサネット（登録商標）によるネットワークを介して接続した構成例を示している。各コントローラ２〜４には、それぞれが制御する外部機器と情報の入出力を行うためのＩ／Ｏモジュール２２，３２，４２が、それぞれ複数接続されている。
【００３２】
以下に、本実施形態の詳細を、図９〜１１および図３を用いて説明する。なお、前述の第１の実施形態と共通する部分は、その説明を省略する。
【００３３】
本実施形態においても、前述の第１の実施形態と同様に、システム設計者が、あらかじめエンジニアリングツール１１にてアプリケーションプログラム１４ｂを作成し登録するが、図９に示す本実施形態のタスク管理テーブル１３ｂでは、前述のタスク管理テーブル１３ａに対し、該当システムで使用する複数のコントローラの識別コードを、タスク単位で登録できるようになっている。ここでシステム設計者は、該当システムで使用する複数のコントローラの内、実際にタスクを実行させるコントローラの識別コードをタスク単位で登録する。
【００３４】
システム設計者は、エンジニアリングツール１１に対する所定の管理操作により、図１０に示すようなタスク管理テーブル１２ｃに、表示を切り替えることができ、このタスク管理テーブル１２ｃ上で、タスク毎にコントローラの識別コードを設定・変更する。なお、エンドユーザの下では、第１の実施形態のように、エンジニアリングツール１１により、通常表示として前述の図３に示すようなタスク管理テーブル１２ａが表示される。
【００３５】
図９の例では、タスク管理テーブル１３ｂは、システム設計者により、タスク番号１のタスクであるプログラムＡおよびタスク番号３のタスクであるプログラムＣに対し、識別コードとしてコントローラ２、コントローラ３、およびコントローラ４が設定され登録されている。このように登録されたタスク管理テーブル１３ｂの識別コードを除く情報と、第１の実施形態の場合と同様に識別コードが付加されたタスクからなるアプリケーションプログラム１４ｂとがコントローラ２〜４にダウンロードされる。
【００３６】
例えば、ＣＰＵモジュール２１は、図１１に示すように、第１の実施形態の場合と同様のＣＰＵ２１ａおよびメモリ２１ｂを備えており、ＣＰＵモジュール２１にダウンロードされた識別コードを除くタスク管理テーブル１３ｂの情報およびアプリケーションプログラム１４ｂは、タスク管理テーブル２３ｂおよびアプリケーションプログラム２４ｂとしてメモリ２１ｂに格納され、ＣＰＵ２１ａが、メモリ２１ｂに格納されたタスク管理テーブル２３ｂに従って、アプリケーションプログラム２４ｂを実行する。
【００３７】
各コントローラ２〜４個々の動作は、第１の実施形態におけるコントローラ２の動作と同様である。図１１の例では、コントローラ２は、アプリケーションプログラム２４ｂに付加されている識別コードがコントローラ２自身の識別コードと一致しているので、アプリケーションプログラム２４ｂの各タスクは全て実行される。コントローラ３およびコントローラ４においても同様に識別コードが一致するので、すべてのタスクが実行されることになる。一方、別システムに対し、タスク管理テーブル１３ｂおよびアプリケーションプログラム１４ｂをコピーして利用しようとしても、コントローラ２〜４と同様に機能させることはできない。
【００３８】
なお、本実施形態において、例えば、識別コードとしてコントローラ２の識別コードのみが付加されていた場合は、このコントローラ２の識別コードが付加されたタスクは、コントローラ３，４では実行禁止となる。また、識別コードとしてコントローラ２〜４のいずれとも異なるコントローラの識別コードがアプリケーションプログラムのいずれかのタスクに付加されていた場合、そのタスクは、コントローラ２〜４で実行禁止となる。
【００３９】
以上のように、本実施形態では、複数のコントローラを利用しているシステムにおいて、同一システム内では各コントローラに対するセキュリティ（正当な利用）が共有される。一方、コントローラ固有の識別コードが付加されているアプリケーションプログラムを、別のシステムのコントローラにダウンロードしても、識別コードが一致しないので実行されず、本実施形態のアプリケーションプログラムを不正にコピーしても別システムでは利用できないようにすることができる。
【００４０】
（第２の実施形態の変形例）
図１２は、第２の実施形態の変形例にかかる、該当システムにおけるプログラマブルコントローラ周辺のシステム構成を示すブロック図である。本変形例は、該当するシステムで使用するエンジニアリングツール１１を実装するコンピュータ１とコントローラ２とがイーサネット（登録商標）によるネットワークを介して接続されている。そして、予備機としてＣＰＵモジュール５が準備されている。
【００４１】
前述の第２の実施形態は、該当するシステムで複数のコントローラを使用する場合の実施形態であったが、本変形例は、該当システムにて現には使用されない予備機を、当該予備機の識別コードを予め登録しておくことで、当該システムにおいていつでも使用可能にするものである。
【００４２】
本変形例では、第２の実施形態の構成において、コントローラ２の識別コード（すなわちＣＰＵモジュール２１の識別コード）と予備機のＣＰＵモジュール５の識別コードの両方を、タスク管理テーブル１３ｃの該当タスクの識別コードとして設定し登録するようにする（図１３）。このようにすることで、コントローラ２のＣＰＵモジュール２１を予備機であるＣＰＵモジュール５に交換しても、この交換されたＣＰＵモジュール５に、エンジニアリングツール１１により識別コードを除くタスク管理テーブル１３ｃの情報とアプリケーションプログラム１４ｃをダウンロードすることで、モジュール交換前と同様に、コントローラ２を機能させることができる。
【００４３】
なお、この変形例では、現用機（ＣＰＵモジュール２１）の識別コードに加えて予備機（ＣＰＵモジュール５）の識別コードも予め登録するようにしているが、予備機に交換する際、システム設計者が、エンジニアリングツール１１を用いて、タスク管理テーブル１３ｃの該当タスクの現用機の識別コードを予備機の識別コードに変更して（その際、変更されたタスクの識別コード（すなわち予備機の識別コード）が、アプリケーションプログラムの該当タスクに付加される）、変更後の識別コードを除くタスク管理テーブル１３ｃの情報とアプリケーションプログラム１４ｃを予備機にダウンロードするようにしても、モジュール交換前と同様に、コントローラ２を機能させることができる。
【００４４】
以上説明したとおり、上述の諸実施形態によれば、プログラマブルコントローラ用のアプリケーションプログラムが不正にコピーされてしまっても、そのアプリケーションプログラムでは、他のプログラマブルコントローラを、元のプログラマブルコントローラと同様に機能させることができないようにすることができる。
【００４５】
なお、上記諸実施形態のエンジニアリングツール１１、１０１をそれぞれ実装するコンピュータ１、１００は、ＣＰＵなどの制御装置と、ＲＯＭ（Read  Only  Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、イーサネット（登録商標）によるネットワークと接続するための入出力装置とを備えた、一般的なハードウェア構成となっている。
【００４６】
上記エンジニアリングツール（プログラム）１１、１０１はそれぞれ、上記コンピュータ１、１００の記憶装置に予めインストールされるが、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供することもできる。また、上記エンジニアリングツール１１、１０１を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００４７】
また、上記エンジニアリングツール１１、１０１は、実際のハードウェアとしてはＣＰＵなどの制御装置が、そのプログラムを格納した記憶装置からそのプログラムを主記憶装置としてのＲＡＭ上にロードし、実行することにより、その機能を実現する。
【００４８】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４９】
１、１００…パソコン（コンピュータ）
２、３、４、２０…コントローラ
５…ＣＰＵモジュール（予備機）
１１、１０１…エンジニアリングツール
１２ａ、１２ｂ、１２ｃ…（エンジニアリングツール表示用）タスク管理テーブル
１３ａ、１３ｂ、１３ｃ…タスク管理テーブル
１４ａ、１４ｂ、１４ｃ…アプリケーションプログラム
２１、３１、４１、２０１…ＣＰＵモジュール
２１ａ、２０１ａ…ＣＰＵ
２１ｂ、２０１ｂ…メモリ
２２、３２、４２…Ｉ／Ｏモジュール
２３ａ、２３ｂ、２０３…（ダウンロード済み）タスク管理テーブル
２４ａ、２４ｂ、２０４…（ダウンロード済み）アプリケーションプログラム
【図１】
2014035698.tif 000003
【図２】
2014035698.tif 000004
【図３】
2014035698.tif 000005
【図４】
2014035698.tif 000006
【図５】
2014035698.tif 000007
【図６】
2014035698.tif 000008
【図７】
2014035698.tif 000009
【図８】
2014035698.tif 000010
【図９】
2014035698.tif 000011
【図１０】
2014035698.tif 000012
【図１１】
2014035698.tif 000013
【図１２】
2014035698.tif 000014
【図１３】
2014035698.tif 000015