(58)【調査した分野】(Int.Cl.,DB名)
前記リストア処理部は、前記優先情報に前記第1設定情報を優先することが示されている場合、前記リストア要求に対応して、前記第1設定情報に基づいて前記被制御装置の設定情報をリストアし、前記第1設定情報と前記被制御装置の前記第2設定情報とが一致していることを示すように前記設定状態情報を更新する、請求項1に記載の制御装置。
前記優先情報に前記第1設定情報を優先することが示されている場合、前記被制御装置に対するバックアップ要求に対応して、前記被制御装置から前記第2設定情報を取得し、前記第1設定情報と前記第2設定情報とが一致するかどうかを判定し、判定結果に応じて前記設定状態情報を更新するバックアップ処理部をさらに備える、請求項1から3の何れか1つに記載の制御装置。
前記バックアップ処理部は、前記優先情報に前記第2設定情報を優先することが示されている場合、前記バックアップ要求に対応して、前記被制御装置から前記第2設定情報を取得しない、請求項4に記載の制御装置。
【発明を実施するための形態】
【0014】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0015】
図1は、本実施形態に係る制御システム10の概略的な構成を示す。制御システム10は、管理装置20、CPUモジュール100、電源モジュール200、IOモジュール300a、IOモジュール300b、被制御装置350a、被制御装置350b、及び被制御装置350cを備える。
【0016】
IOモジュール300a及びIOモジュール300bは、IOモジュール300と総称する場合がある。また、被制御装置350a、被制御装置350b、及び被制御装置350cは、被制御装置350と総称する場合がある。CPUモジュール100は、制御装置の一例である。CPUモジュール100は、いわゆるマスタ装置(マスタ局)に相当し、被制御装置350は、いわゆるスレーブ装置(スレーブ局)に相当する。IOモジュール300は、CPUモジュール100による制御に従って、被制御装置350との間でデータの入出力を行う入出力装置の一例である。
【0017】
管理装置20は、パーソナルコンピュータ等のコンピュータにより実現される。管理装置20は、いわゆる開発支援装置である。管理装置20は、ネットワークを通じてCPUモジュール100と通信する。CPUモジュール100は、ネットワーク又はバスを通じて、IOモジュール300a及びIOモジュール300bと通信する。IOモジュール300aは、被制御装置350aに接続される。IOモジュール300aは、被制御装置350aとの間のデータの入出力を担う。IOモジュール300bは、被制御装置350b及び被制御装置350cのそれぞれとの間のデータの入出力を担う。なお、CPUモジュール100の数、IOモジュール300の数、及び、被制御装置350の数は、本実施形態に示される数に限定されない。
【0018】
制御システム10は、工場またはプラント等の産業施設において用いられてよい。制御システム10は、ファクトリーオートメーションの少なくとも一部として用いられてよい。管理装置20、CPUモジュール100及びIOモジュール300は、産業用制御システムであってよい。被制御装置350は、管理装置20、CPUモジュール100及びIOモジュール300による制御対象となる機器である。被制御装置350は、モータ、エンコーダ、ポンプ、バルブ、カメラ、各種センサ等であってよい。被制御装置350は、例えば産業機械であってよい。CPUモジュール100及びIOモジュール300は、それぞれプログラマブルロジックコントローラ(PLC)であってよい。
【0019】
管理装置20は、制御システム10全体を制御する。管理装置20は、CPUモジュール100からステータス情報を読み出し、制御システム10が制御する工程に従って、CPUモジュール100に各種の制御指示を出力する。
【0020】
IOモジュール300は、被制御装置350から、被制御装置350による計測結果を示す情報、または被制御装置350の状態を示す情報等のデータを入力データとして取得する。IOモジュール300は、被制御装置350から取得した入力データを、CPUモジュール100に出力する。
【0021】
CPUモジュール100は、ラダー図等を通じて生成されたシーケンス制御のためのアプリケーションプログラムを有する。CPUモジュール100は、管理装置20から取得した制御指示と、IOモジュール300を通じて取得した入力データとに基づいて、被制御装置350への出力データを生成して、IOモジュール300に送信する。IOモジュール300は、CPUモジュール100から受信した出力データに基づいて、被制御装置350に制御信号を出力する。
【0022】
電源モジュール200は、CPUモジュール100及びIOモジュール300に供給される電力である電源電力を生成する。電源モジュール200は、商用電力から電源電力を生成してよい。なお、電源電力の電圧を、「電源電圧」と呼ぶ。
【0023】
図2は、CPUモジュール100の機能構成を概略的に示す。CPUモジュール100は、電源部110、主制御部130、揮発性メモリ142、不揮発性メモリ144、第1通信部146、第2通信部148、バス140、及び低電圧検出部150を備える。
【0024】
電源部110は、CPUモジュール100を動作させるための電力を生成する。CPUモジュール100を動作させるための電力を、「動作電力」と呼ぶ。なお、動作電力の電圧を、「動作電圧」と呼ぶ。動作電圧は、規定値以上の予め定められた大きさの電圧であってよい。電源部110は、電源モジュール200からの電源電力を変換して、CPUモジュール100の動作電力を生成する。
【0025】
より具体的には、電源部110は、電源電力を降圧して、動作電力を生成する。電源電圧は24Vであってよい。動作電圧は3.3Vであってよい。すなわち、電源部110は、24Vの電圧の電源電力を、3.3Vの電圧の動作電力に変換してよい。電源部110が生成した動作電力は、CPUモジュール100の各部に供給される。例えば、電源部110が生成した動作電力は、主制御部130、揮発性メモリ142、不揮発性メモリ144、第1通信部146、及び第2通信部148に供給され、それぞれが動作するための電力として用いられる。
【0026】
主制御部130は、プロセッサであってよい。主制御部130は、マイクロコントローラであってよい。主制御部130は、中央処理装置(CPU)、ROM、RAM等を含む半導体集積回路で構成されてよい。主制御部130は、制御部の一例である。主制御部130は、CPUモジュール100における主処理を担う。例えば、主制御部130は、システムプログラム及びアプリケーションプログラムに基づいて、IOモジュール300からの出力データの処理、IOモジュール300に対する入力データの生成、管理装置20から受信した制御指示の処理、管理装置20へのメッセージデータの生成等の処理を行う。
【0027】
主制御部130は、第1通信部146、第2通信部148、揮発性メモリ142、及び不揮発性メモリ144と、バス140を通じて接続される。主制御部130、第1通信部146、第2通信部148、揮発性メモリ142、及び不揮発性メモリ144は、バス140を通じて互いにデータを送受信する。
【0028】
第1通信部146は、管理装置20との通信を担う。第1通信部146は、管理装置20からの制御指示を受信して、受信した制御指示を主制御部130に送信する。また、第1通信部146は、管理装置20へのメッセージデータを主制御部130から受信して、受信したメッセージデータを管理装置20に送信する。
【0029】
第2通信部148は、外部の機器との通信を担う。例えば、第2通信部148は、IOモジュール300からデータを受信し、IOモジュール300にデータを送信する。具体的には、第2通信部148は、被制御装置350が出力した出力データを、IOモジュール300から受信する。第2通信部148は、受信したデータを主制御部130に送信する。第2通信部148は、被制御装置350への入力データを主制御部130から受信して、受信した入力データをIOモジュール300に送信する。
【0030】
揮発性メモリ142は、揮発性記憶部の一例である。揮発性メモリ142は、例えば、SRAMであってよい。不揮発性メモリ144は、不揮発性記憶部の一例である。不揮発性メモリ144は、例えば、フラッシュメモリであってよい。不揮発性メモリ144は、揮発性メモリ142よりアクセス速度が低速なメモリである。例えば、不揮発性メモリ144のアクセス時間は、揮発性メモリ142のアクセス時間より長い。
【0031】
不揮発性メモリ144は、バックアップを必要とするデータであるバックアップデータを記憶する。バックアップデータは、例えば、アプリケーションプログラム用データ、システムプログラム用データ、制御システム10の稼働情報、制御システム10の故障情報、被制御装置350との通信における通信状態及び異常履歴等のRAS情報、及び被制御装置350のIO情報等の被制御装置350の動作を規定する設定情報を含む。不揮発性メモリ144に記憶されているバックアップデータは、CPUモジュール100が起動した後、予め定められたアプリケーションプログラムに従う動作を開始する前の初期化処理において、揮発性メモリ142に転送される。主制御部130は、アプリケーションプログラムに従う通常処理において、揮発性メモリ142に転送されたバックアップデータを用いて、被制御装置350の制御を含む主処理を実行する。これにより、主制御部130は、高速に主処理を実行することができる。
【0032】
CPUモジュール100の動作終了時に、揮発性メモリ142に記憶されているバックアップデータは、不揮発性メモリ144に転送される。このように、CPUモジュール100が起動した後、動作開始前に、予め定められた条件を満たす場合、初期化処理において、不揮発性メモリ144に記憶されているデータが揮発性メモリ142にリストアされる。さらに、CPUモジュール100の動作終了時に、予め定められた条件を満たす場合、揮発性メモリ142に記憶されているデータは、不揮発性メモリ144にバックアップされる。
【0033】
低電圧検出部150は、CPUモジュール100における電源遮断を電源異常として検出する。電源遮断が生じた場合、電源電圧が低下する。したがって、低電圧検出部150は、電源電圧を検出することにより、電源遮断を検出する。具体的には、低電圧検出部150は、電源電圧が予め定められた電圧以下に低下した場合に、電源遮断を検出する。ここで、予め定められた電圧は、動作電圧より高く、電源電圧より低くてよい。一例として、予め定められた電圧は、20Vであってよい。すなわち、低電圧検出部150は、電源電圧が20V以下に低下した場合に、電源遮断を検出してよい。
【0034】
低電圧検出部150は、電源遮断を検出した場合に、電源遮断が生じた旨を示す信号を生成して、主制御部130に出力する。低電圧検出部150は、電源遮断を検出していない場合、電源遮断が生じていない旨を示す信号を生成して、主制御部130に出力する。なお、電源遮断は、電源異常の一例である。電源異常とは、電源モジュール200からの電源供給が完全に停止する場合だけでなく、電源モジュール200の電源電圧が低下することにより、電源部110が規定値を超える電圧の動作電力を生成することができない場合も含む。低電圧検出部150は、電源遮断を検出した場合に、電源遮断が生じたことを主制御部130に通知する。例えば、低電圧検出部150は、電源遮断が生じたことを、割り込みにより主制御部130に通知する。なお、電源遮断が生じたことを通知する割り込みを、「電源遮断割り込み」と呼ぶ。主制御部130は、低電圧検出部150から電源遮断割り込みが生じた場合に、バックアップ処理を開始する。
【0035】
主制御部130は、リストア処理において、揮発性メモリ142に記憶されているバックアップデータに含まれる被制御装置350の設定情報に基づいて、被制御装置350の設定を更新する。しかし、バックアップデータに含まれる被制御装置350の設定情報が必ずしも被制御装置350の設定情報として正しい内容であるとは限らない。管理装置20を介して、ユーザが誤った内容に、バックアップデータに含まれる被制御装置350の設定情報を書き換えてしまう場合がある。
【0036】
また、主制御部130は、バックアップ処理において、被制御装置350が保持する被制御装置350の設定情報に基づいて、揮発性メモリ142に記憶されているバックアップデータに含まれる被制御装置350の設定情報を更新する。しかし、被制御装置350が保持する被制御装置350の設定情報が必ずしも被制御装置350の設定情報として正しい内容であるとは限らない。ユーザが誤った内容に、被制御装置350が保持する設定情報を書き換えてしまう場合がある。
【0037】
そこで、本実施形態では、CPUモジュール100が保持するバックアップデータに含まれる被制御装置350の設定情報を用いて、被制御装置350の設定情報が意図せずに書き換えられることを防止する。また、被制御装置350が保持する設定情報を用いて、CPUモジュール100が保持するバックアップデータに含まれる被制御装置350の設定情報が意図せずに書き換えられることを防止する。さらに、CPUモジュール100側の被制御装置350の設定情報と、被制御装置350側の被制御装置350の設定状態とが一致するかどうかを示す設定状態を確認できるようにする。
【0038】
主制御部130は、設定情報登録部132、優先情報登録部134、リストア処理部136、及びバックアップ処理部138を有する。不揮発性メモリ144は、設定情報保持部、及び設定状態情報保持部の一例である。
【0039】
設定情報登録部132は、被制御装置350の動作を規定するCPUモジュール100側の設定情報を不揮発性メモリ144に登録する。設定情報は、被制御装置350が動作するときに参照される各種パラメータでよい。設定情報登録部132は、管理装置20を介してユーザにより指定された設定情報を、CPUモジュール100側の被制御装置350の設定情報として不揮発性メモリ144に登録してよい。設定情報登録部132は、管理装置20を介してユーザにより指定された被制御装置350a、被制御装置350b、及び被制御装置350cのそれぞれの設定情報を、CPUモジュール100側の被制御装置350a、被制御装置350b、及び被制御装置350cのそれぞれの設定情報として不揮発性メモリ144に登録してよい。
【0040】
優先情報登録部134は、被制御装置350に保持されている被制御装置350の動作を規定する被制御装置350側の設定情報、及び不揮発性メモリ144に保持されているCPUモジュール100側の被制御装置350の設定情報の何れか一方を優先することを示す優先情報を不揮発性メモリ144に登録する。優先情報登録部134は、管理装置20を介してユーザからの指示に基づいて、優先情報を不揮発性メモリ144に登録してよい。
【0041】
図3は、設定情報及び優先情報を含む設定テーブル500の一例を示す。設定テーブル500は、被制御装置350を一意に識別するスレーブ局番、マスタ局(CPUモジュール100)を優先するか、スレーブ局(被制御装置350)を優先するかを示す優先情報、及び被制御装置350の各種パラメータの値を示す設定情報を含む。
【0042】
図3に示す例では、被制御装置350側の設定情報が優先される場合に、「スレーブ局・優先」のチェックボックスがチェックされている。CPUモジュール100側の設定情報が優先される場合には、「スレーブ局・優先」のチェックボックスがチェックされていない。ユーザは、管理装置20を介して設定テーブル500を生成して、生成された設定テーブル500をCPUモジュール100にアップロードしてよい。
【0043】
設定情報登録部132は、管理装置20からダウンロードされた設定テーブル500を参照して、被制御装置350の設定情報を不揮発性メモリ144に登録する。優先情報登録部134は、ダウンロードされた設定テーブルを参照して、それぞれの被制御装置350の優先情報を不揮発性メモリ144に登録する。
図4は、被制御装置350の優先情報510の一例を示す。優先情報登録部134は、被制御装置350ごとに優先情報510を不揮発性メモリ144に登録してよい。優先情報510は、被制御装置350を一意に識別するスレーブ局番、スレーブ局番に対応する被制御装置350が制御システム10に接続されているか否かを示す登録局の有無、及びCPUモジュール100(マスタ局)側の設定情報を優先するか被制御装置350(スレーブ局)側の設定情報を優先するかを示す優先設定内容を含む。
【0044】
リストア処理部136は、設定情報のリストア要求に対応して、予め定められた条件を満たした場合に、リストア処理を実行する。リストア処理部136は、予め定められた条件を満たした場合に、不揮発性メモリ144から被制御装置350の設定情報をCPUモジュール100側の設定情報として読み出して、CPUモジュール100側の設定情報で被制御装置350の設定情報を更新することでリストア処理を実行する。
【0045】
リストア処理部136は、優先情報にCPUモジュール100側の設定情報を優先することが示されている場合、予め定められた条件を満たすと判断する。そして、リストア処理部136は、設定情報のリストア要求に対応して、CPUモジュール100側の設定情報に基づいて、被制御装置350の設定情報をリストアする。すなわち、リストア処理部136は、設定情報のリストア要求に対応して、CPUモジュール100側の設定情報に基づいて、被制御装置350の設定情報を更新する。リストア処理部136は、被制御装置350の設定情報の更新結果に応じて、CPUモジュール100側の設定情報と、被制御装置350側の設定情報とが一致しているか否かを示す設定状態情報を更新する。すなわち、リストア処理部136は、被制御装置350の設定情報の更新結果に応じて、CPUモジュール100側の設定情報と、被制御装置350側の設定情報とが一致していることを示す設定状態情報に更新する。
【0046】
一方、リストア処理部136は、優先情報に被制御装置350の設定情報を優先することが示されている場合、予め定められた条件を満たさないと判断する。そして、リストア処理部136は、設定情報のリストア要求に対応して、CPUモジュール100側の設定情報に基づく被制御装置350の設定情報のリストアを行わず、被制御装置350から被制御装置350側の設定情報を取得する。さらに、リストア処理部136は、CPUモジュール100側の設定情報と被制御装置350側の設定情報とが一致するかどうかを判定する。リストア処理部136は、不揮発性メモリ144に登録された、CPUモジュール100側の設定情報と、被制御装置350側の設定情報とが一致しているか否かを示す設定状態情報を、判定結果に応じて更新する。なお、ストア処理部136は、被制御装置350から被制御装置350側の設定情報を取得した後、被制御装置350側の設定情報を不揮発性メモリ144に登録しておき、ユーザからの要求を受けた段階で、ストア処理部136は、CPUモジュール100側の設定情報と被制御装置350側の設定情報とが一致するかどうかを判定し、その判定結果を、ユーザに提示してもよい。
【0047】
リストア処理部136は、CPUモジュール100の電源が投入された場合、設定情報のリストア要求を受けて、不揮発性メモリ144に記憶されているそれぞれの被制御装置350の優先情報を参照し、それぞれの被制御装置350についての設定情報の優先先を特定してよい。また、リストア処理部136は、新たな被制御装置350が制御システム10に接続されたことを検知すると、設定情報のリストア要求を受けて、新たな被制御装置350の優先情報を参照して、新たな被制御装置350の設定情報の優先先を特定してよい。
【0048】
優先先の特定後、リストア処理部136は、優先情報にCPUモジュール100側の設定情報を優先することが示されている場合、CPUモジュール100側の設定情報に基づいて、被制御装置350の設定情報を更新する。一方、優先情報に被制御装置350の設定情報を優先することが示されている場合、リストア処理部136は、CPUモジュール100側の設定情報に基づく被制御装置350の設定情報の更新を行わず、被制御装置350から被制御装置350側の設定情報を取得する。
【0049】
バックアップ処理部138は、被制御装置350に対するバックアップ要求に対応して、予め定められた条件を満たす場合、被制御装置350から設定情報を取得する。バックアップ処理部138は、予め定められたタイミングで、バックアップ要求を受けてよい。バックアップ処理部138は、予め定められた周期で、バックアップ要求を受けてよい。バックアップ処理部138は、電源異常を検知した場合に、バックアップ要求を受けてよい。
【0050】
バックアップ処理部138は、優先情報にCPUモジュール100側の設定情報を優先することが示されている場合、バックアップ要求に対応して、被制御装置350から被制御装置350側の設定情報を取得し、被制御装置350側の設定情報とCPUモジュール100側の設定情報とが一致するかどうかを判定する。バックアップ処理部138は、不揮発性メモリ144に登録された、CPUモジュール100側の設定情報と、被制御装置350側の設定情報とが一致しているか否かを示す設定状態情報を、判定結果に応じて更新する。バックアップ処理部138は、被制御装置350から取得した被制御装置350側の設定情報で、不揮発性メモリ144に登録されたCPUモジュール100側の設定情報の更新は行わない。また、バックアップ処理部138は、優先情報に被制御装置350側の設定情報を優先することが示されている場合、被制御装置350に対するバックアップ要求に対応して、被制御装置350から設定情報を取得しない。すなわち、バックアップ処理部138は、優先情報に被制御装置350側の設定情報を優先することが示されている場合、バックアップ要求を受けても、被制御装置350から設定情報を取得しない。
【0051】
本実施形態によれば、CPUモジュール100側の設定情報と、被制御装置350側の設定情報とが一致しているかどうかを、例えば、
図5に示すような設定状態情報520を参照することで確認できる。設定状態情報520は、CPUモジュール100側の設定情報と、被制御装置350側の設定情報とが不一致状態のスレーブ局番の一覧情報でよい。
【0052】
また、CPUモジュール100側の設定情報が優先でなれば、リストア処理で、被制御装置350側の設定情報が書き換えられることはない。したがって、リストア処理において、被制御装置350側の設定情報がユーザの意図と異なる設定情報に書き換えられることを防止できる。
【0053】
さらに、CPUモジュール100側の設定情報が優先の場合、バックアップ処理で、被制御装置350側の設定情報により、CPUモジュール100側の設定情報が書き換えられない。よって、バックアップ処理において、CPUモジュール100側の設定情報がユーザの意図と異なる設定情報に書き換えられることを防止できる。
【0054】
図6は、CPUモジュール100の電源がオンされた場合のリストア処理部136の動作の手順の一例を示すフローチャートである。
【0055】
リストア処理部136は、CPUモジュール100の電源がオンされると(S100)、不揮発性メモリ144に登録された対象の被制御装置350の優先情報を参照する(S102)。リストア処理部136は、優先情報に従って、対象の被制御装置350側の設定情報を優先するか否かを判定する(S104)。被制御装置350側の設定情報を優先する場合、リストア処理部136は、対象の被制御装置350から設定情報を取得する(S106)。次いで、リストア処理部136は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致するかどうかを判定する(S108)。
【0056】
リストア処理部136は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致する場合、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を一致状態に更新する(S110)。一方、リストア処理部136は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致しない場合、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を不一致状態に更新する(S112)。
【0057】
CPUモジュール100側の設定情報を優先する場合、リストア処理部136は、CPUモジュール100側の対象の被制御装置350の設定情報に従って、対象の被制御装置350の設定情報を更新する(S114)。そして、リストア処理部136は、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を一致状態に更新する(S116)。
【0058】
リストア処理部136は、制御システム10に接続されている全ての被制御装置350についてリストア処理が完了したかどうかを判定して(S118)、完了していなければ、ステップS102以降の処理を繰り返し、完了していれば、処理を終了する。
【0059】
以上の手順によれば、CPUモジュール100の電源オン時のリストア処理において、被制御装置350側の設定情報を優先する場合には、不揮発性メモリ144に登録された被制御装置350の設定状態のみが更新され、被制御装置350側の設定情報の更新は行われない。よって、CPUモジュール100の電源オン時に、ユーザが意図せず被制御装置350側の設定情報が変更されることを防止できる。さらに、設定状態を参照することで、CPUモジュール100側の設定情報と被制御装置350側の設定情報とが一致しているか否かを容易に把握できる。
【0060】
図7は、制御システム10に新たな被制御装置350が接続された場合のリストア処理部136の動作の手順の一例を示すフローチャートである。
【0061】
リストア処理部136は、制御システム10に新たな被制御装置350が接続されたことを検知すると(S200)、不揮発性メモリ144に登録された対象の被制御装置350の優先情報を参照する(S202)。リストア処理部136は、優先情報に従って、対象の被制御装置350側の設定情報を優先するか否かを判定する(S204)。被制御装置350側の設定情報を優先する場合、リストア処理部136は、対象の被制御装置350から設定情報を取得する(S206)。
【0062】
次いで、リストア処理部136は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致するかどうかを判定する(S208)。
【0063】
リストア処理部136は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致する場合、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を一致状態に更新する(S210)。一方、リストア処理部136は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致しない場合、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を不一致状態に更新する(S212)。
【0064】
CPUモジュール100側の設定情報を優先する場合、リストア処理部136は、CPUモジュール100側の対象の被制御装置350の設定情報に従って、対象の被制御装置350の設定情報を更新する(S214)。そして、リストア処理部136は、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を一致状態に更新する(S216)。
【0065】
以上の手順によれば、新たな被制御装置350が制御システム10に接続された時のリストア処理において、被制御装置350側の設定情報を優先する場合には、不揮発性メモリ144に登録された被制御装置350の設定状態のみが更新され、被制御装置350側の設定情報の更新は行われない。よって、新たな被制御装置350が制御システム10に接続された時に、ユーザが意図せず被制御装置350側の設定情報が変更されることを防止できる。さらに、設定状態を参照することで、CPUモジュール100側の設定情報と被制御装置350側の設定情報とが一致しているか否かを容易に把握できる。
【0066】
図8は、バックアップ処理部138が予め定められた周期で実行するバックアップ処理の手順の一例を示すフローチャートである。
【0067】
バックアップ処理部138は、不揮発性メモリ144に登録された対象の被制御装置350の優先情報を参照する(S300)。バックアップ処理部138は、優先情報に従って、対象の被制御装置350側の設定情報を優先するか否かを判定する(S302)。被制御装置350側の設定情報を優先する場合、対象の被制御装置350から設定情報を取得せず、バックアップ処理部138は、制御システム10に接続されている全ての被制御装置350についてバックアップ処理が完了したかどうかを判定して(S312)、完了していなければ、ステップS302以降の処理を繰り返し、完了してれば、処理を終了する。
【0068】
CPUモジュール100側の設定情報を優先する場合、バックアップ処理部138は、対象の被制御装置350から設定情報を取得する(S304)。バックアップ処理部138は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致するかどうかを判定する(S306)。
【0069】
バックアップ処理部138は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致する場合、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を一致状態に更新する(S308)。一方、バックアップ処理部138は、対象の被制御装置350側の被制御装置350についての設定情報と、不揮発性メモリ144に登録されているCPUモジュール100側の対象の被制御装置350についての設定情報とが一致しない場合、不揮発性メモリ144に登録された対象の被制御装置350の設定状態を不一致状態に更新する(S310)。そして、バックアップ処理部138は、制御システム10に接続されている全ての被制御装置350についてバックアップ処理が完了したかどうかを判定して(S312)、完了していなければ、ステップS302以降の処理を繰り返し、完了してれば、処理を終了する。
【0070】
以上の手順によれば、CPUモジュール100側の設定情報を優先する場合、バックアップ処理において、CPUモジュール100側の設定情報が、被制御装置350側の設定情報で書き換えられない。よって、バックアップ処理において、ユーザが意図せずに、CPUモジュール100側の設定情報が書き換えられることを防止できる。
【0071】
被制御装置350に接続された設定機器を介して、被制御装置350の設定情報が書き換えられる場合がある。そのような場合でも、以上の手順によれば、被制御装置350の設定情報が、CPUモジュール100側の設定情報と一致しているかどうかをCPUモジュール100側で容易に確認できる。
【0072】
図9は、本発明の複数の態様が全体的または部分的に具現化してよいコンピュータ1200の一例を示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200に、本発明の実施形態に係る装置に関連付けられるオペレーションまたは当該装置の1または複数の「部」として機能させることができる。または、当該プログラムは、コンピュータ1200に当該オペレーションまたは当該1または複数の「部」を実行させることができる。当該プログラムは、コンピュータ1200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつかまたは全てに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0073】
本実施形態によるコンピュータ1200は、CPU1212、及びRAM1214を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、入力/出力ユニットを含み、それらは入力/出力コントローラ1220を介してホストコントローラ1210に接続されている。コンピュータ1200はまた、ROM1230を含む。CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。
【0074】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブが、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納してよい。ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/またはコンピュータ1200のハードウェアに依存するプログラムを格納する。プログラムが、CR−ROM、USBメモリまたはICカードのようなコンピュータ可読記録媒体またはネットワークを介して提供される。プログラムは、コンピュータ可読記録媒体の例でもあるRAM1214、またはROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ1200の使用に従い情報のオペレーションまたは処理を実現することによって構成されてよい。
【0075】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、またはUSBメモリのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0076】
また、CPU1212は、USBメモリ等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0077】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0078】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ1200上またはコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0079】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよい。その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0080】
コンピュータ可読命令は、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードの何れかを含んでよい。ソースコードまたはオブジェクトコードは、従来の手続型プログラミング言語を含む。従来の手続型プログラミング言語は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語または同様のプログラミング言語でよい。コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供されてよい。プロセッサまたはプログラマブル回路は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0081】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0082】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【解決手段】被制御装置を制御する制御装置は、被制御装置の動作を規定する第1設定情報を設定情報保持部に登録する設定情報登録部と、被制御装置に保持されている被制御装置の動作を規定する第2設定情報及び設定情報保持部に保持されている第1設定情報の何れか一方を優先することを示す優先情報を優先情報保持部に登録する優先情報登録部と、優先情報に第2設定情報を優先することが示されている場合、設定情報のリストア要求に対応して、第1設定情報に基づく被制御装置の設定情報のリストアを行わず、被制御装置から第2設定情報を取得し、第1設定情報と第2設定情報とが一致するかどうかを判定し、設定状態情報保持部に登録された第1設定情報と第2設定情報とが一致しているか否かを示す設定状態情報を、判定結果に応じて更新するリストア処理部とを備えてよい。