(57)【要約】【課題】ＰＬＣの分野に関し、特に、パワーダウンせずに仮想ＰＬＣを迅速に再構成するためのソフトウェア定義ＰＬＣの監視及び再構成方法及び装置に関する。【解決手段】ソフトガーディアンが仮想ＰＬＣの故障を監視すると、サーバクラスターにおける各サーバ上の各物理コアの動作状態及び各物理コア上の各マイクロカーネルの動作状態を取得することと、各サーバ上の各物理コアの動作状態及び各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットマイクロカーネルを決定することと、ターゲットマイクロカーネルで仮想ＰＬＣを再構成するように指示するための再構成命令をターゲットマイクロカーネルに送信することとを含む。【選択図】図５ｄ
2019114263.tif 000002
【特許請求の範囲】
【請求項１】
サーバクラスターに適用されるソフトウェア定義ＰＬＣの監視及び再構成方法であって、
前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアン（ｓｏｆｔ  ｇｕａｒｄｉａｎ）を含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定されており、
前記方法は、
前記ソフトガーディアンが、仮想ＰＬＣの故障を監視すると、前記サーバクラスターにおける各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態を取得することと、
前記ソフトガーディアンが、前記各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットマイクロカーネルを決定することと、
前記ソフトガーディアンが、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信することとを含むことを特徴とするソフトウェア定義ＰＬＣの監視及び再構成方法。
【請求項２】
前記ソフトガーディアンが前記仮想ＰＬＣの故障を監視する前に、
設定情報を取得することと、
前記ソフトガーディアンが前記設定情報に基づいて前記仮想ＰＬＣの動作状態を監視することとをさらに含み、
前記設定情報は、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、また、前記ソフトガーディアンが、前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにないことを示すことを特徴とする請求項１に記載の方法。
【請求項３】
前記ソフトガーディアンが前記仮想ＰＬＣの故障を監視する前に、さらに、
前記ソフトガーディアンが、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルをさらに含む設定情報を取得することを含み、
前記ソフトガーディアンが再構成命令を前記ターゲットマイクロカーネルに送信することは、
前記ソフトガーディアンが前記ターゲットマイクロカーネルに前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて前記特定仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信することを含み、
前記再構成命令は、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記各物理コアの動作状態は、前記各物理コアの第１の負荷情報を含み、前記各マイクロカーネルの動作状態は、前記各マイクロカーネルの第２の負荷情報を含み、
前記ソフトガーディアンが前記サーバクラスターにおける各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態を取得することは、
前記ソフトガーディアンが前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報を取得することを含み、
前記ソフトガーディアンが前記各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットマイクロカーネルを決定することは、
前記ソフトガーディアンが前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報に基づいてターゲットマイクロカーネルを決定することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
サーバクラスターに適用されるソフトウェア定義ＰＬＣの監視及び再構成方法であって、
前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定され、
前記方法は、
サーバが、前記ソフトガーディアンで保護される特定仮想ＰＬＣのユーザプログラム編集結果ファイルと前記特定仮想ＰＬＣを再構成するターゲットマイクロカーネルとを含む、前記ソフトガーディアンからの再構成命令を受信することと、
前記サーバが、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて、前記ターゲットマイクロカーネルで前記特定仮想ＰＬＣを再構成することとを含むことを特徴とするソフトウェア定義ＰＬＣの監視及び再構成方法。
【請求項６】
前記サーバが、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成することとは、
前記ターゲットマイクロカーネルで前記ターゲットマイクロカーネルにプリインストールされた仮想ＰＬＣのシステムプログラムを起動することと、仮想ＰＬＣのシステムプログラムで前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを実行することとを含むことを特徴とする請求項５に記載の方法。
【請求項７】
サーバが前記ソフトガーディアンからの再構成命令を受信する前に、さらに、
前記サーバが、クライアントからの初期化設定命令を受信することと、
前記サーバが前記初期化設定命令における設定情報に基づいて仮想ＰＬＣ及びソフトガーディアンを設定することとを含み、
前記初期化設定命令における設定情報は、特定物理コア上の特定マイクロカーネルにソフトガーディアンを設定することと、特定物理コア上の特定マイクロカーネルに仮想ＰＬＣを設定することと、前記特定ＰＬＣが前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにないこととを示し、前記ソフトガーディアンで監視する特定仮想ＰＬＣを含む
ことを特徴とする請求項５又は６に記載の方法。
【請求項８】
サーバクラスターに適用されるソフトウェア定義ＰＬＣの監視及び再構成用のサーバであって、
前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定され、前記サーバに設定されたソフトガーディアンは、
仮想ＰＬＣの故障を監視すると、前記サーバクラスターにおける各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態を取得するための取得ユニットと、
前記各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットマイクロカーネルを決定するための処理ユニットと、
前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信するための送信ユニットとを含むことを特徴とするサーバ。
【請求項９】
前記取得ユニットは、さらに、
前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにないことと、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示す設定情報を取得するために用いられ、
前記処理ユニットは、さらに、
前記設定情報に基づいて、前記特定仮想ＰＬＣの動作状態を監視するために用いられることを特徴とする請求項８に記載のサーバ。
【請求項１０】
前記取得ユニットは、さらに、
前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルをさらに含む設定情報を取得するために用いられ、
前記送信ユニットは、
前記ターゲットマイクロカーネルに前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて前記特定仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信するために用いられ、
前記再構成命令は、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを含むことを特徴とする請求項８に記載のサーバ。
【請求項１１】
前記各物理コアの動作状態は、前記各物理コアの第１の負荷情報を含み、前記各マイクロカーネルの動作状態は、前記各マイクロカーネルの第２の負荷情報を含み、
前記取得ユニットは、
前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報を取得するために用いられ、
前記処理ユニットは、
前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報に基づいてターゲットマイクロカーネルを決定するために用いられることを特徴とする請求項８に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、ＰＬＣの分野に関し、特に、ソフトウェア定義ＰＬＣの監視及び再構成方法及び装置に関する。
【背景技術】
【０００２】
コンピュータ技術、信号処理技術、制御技術ネットワークが絶え間なく発展し、ユーザニーズが絶え間なく向上するのに伴い、プログラマブルロジックコントローラ(Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ、ＰＬＣと略称)は広く使用されている。例えば、鋼鉄、石油、化学工業、電力、機械製造、配達及び文化娯楽などの様々な業界、特に分散制御システムに使用されている。
【０００３】
従来技術において、ＰＬＣに基づく分散制御システムは、複数台のハードＰＬＣで構成されている。分散制御システムの制御対象機器は、一般的に数多く、大きなエリア内に分散し、かつ制御対象機器同士が互いに関連付けられる恐れがあり、したがって、分散制御システムにおけるハードＰＬＣは制御対象機器をリアルタイムに制御する必要がある。分散制御システムにおけるあるハードＰＬＣが故障して制御対象機器をリアルタイムに制御することができない場合は、分散制御システム全体の正常な動作に影響を与えることがある。したがって、分散制御システムには、一般的に、対応するディザスタリカバリ方式が設定されている。
【０００４】
現在、大量のハードＰＬＣで構成される分散制御システムのディザスタリカバリ方式は、各独立したハードＰＬＣに１つ又は複数の冗長なハードＰＬＣを設定することである。ハードＰＬＣが故障すると、冗長なハードＰＬＣに切り替える。しかし、あるエリアの複数台のハードＰＬＣ及び対応する冗長なＰＬＣがすべて故障した場合、他のエリアのハードＰＬＣが正常に動作し、かつ２つのエリアの間のＰＬＣ間に互いに影響があるため、この場合、分散制御システム全体の動作を停止させて故障が発生したエリアのハードＰＬＣを交換することしかできない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施例は、パワーダウンせずに仮想ＰＬＣを迅速に再構成することを実現するためのソフトウェア定義ＰＬＣの監視及び再構成方法及び装置を提供する。
【課題を解決するための手段】
【０００６】
本発明の実施例は、サーバクラスターに適用されるソフトウェア定義ＰＬＣの監視及び再構成方法を提供し、前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアン（ｓｏｆｔ  ｇｕａｒｄｉａｎ）が設定され、前記方法は、前記ソフトガーディアンが仮想ＰＬＣの故障を監視すると、前記サーバクラスターにおける各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態を取得することと、前記ソフトガーディアンが、前記各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットマイクロカーネルを決定することと、前記ソフトガーディアンが、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信することとを含む。
【０００７】
該技術手段によれば、１つの物理コアに複数のマイクロカーネルを仮想化し、各マイクロカーネル（仮想化オペレーティングシステム）で１つの仮想ＰＬＣを実行する。仮想ＰＬＣが故障すれば、他のマイクロカーネルで該ＰＬＣを再構成することができ、各マイクロカーネルの間に互いに影響がないため、仮想ＰＬＣを再構成する場合、サーバをパワーダウンする必要がなく、サーバを再配線する必要もなく、パワーダウンせずに仮想ＰＬＣを迅速に再構成することを実現することができるため、システムにおける他のＰＬＣの動作に影響を与えない。
【０００８】
さらに、サーバクラスターにおける各サーバの物理コアには仮想化のリアルタイムオペレーティングシステムが設定され、仮想ＰＬＣが仮想化のリアルタイムオペレーティングシステムに設定されているため、各仮想ＰＬＣの制御時のリアルタイム性を向上させることができ、また、ソフトガーディアンが仮想化のリアルタイムオペレーティングシステムに設定されると、システム全体のリアルタイム性を向上させることができる。
【０００９】
好ましくは、設定情報を取得し、前記ソフトガーディアンは、前記設定情報に基づいて、前記特定仮想ＰＬＣの動作状態を監視し、前記設定情報は、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、また、前記ソフトガーディアンが前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにないことを示す。
【００１０】
好ましくは、前記ソフトガーディアンは、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルをさらに含む設定情報を取得し、前記ソフトガーディアンは、前記ターゲットマイクロカーネルに前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて前記特定仮想ＰＬＣを再構成するように指示するための、再構成命令を前記ターゲットマイクロカーネルに送信することができる（再構成命令は前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを含む）。このように、ユーザプログラムを再編集する必要がなく、ユーザプログラムにおけるいずれか１つの命令セットを直接的に読み出して実行することにより仮想ＰＬＣの再構成を実現することができ、従来技術における冗長バックアップに比べて、仮想ＰＬＣを迅速に再構成することを実現することができる。かつ、サーバは、パワーダウンせずに仮想ＰＬＣを再構築することができ、さらに分散制御システム全体における正常な仮想ＰＬＣの正常な動作に影響を与えない。
【００１１】
本発明の実施例は、ターゲットマイクロカーネルを決定する以下の２種類の方式を提供する。
【００１２】
実現方式１では、前記各物理コアの動作状態は、前記各物理コアの第１の負荷情報を含み、前記各マイクロカーネルの動作状態は、前記各マイクロカーネルの第２の負荷情報を含み、前記ソフトガーディアンは、前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報を取得し、前記ソフトガーディアンは、前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報に基づいてターゲットマイクロカーネルを決定する。
【００１３】
実現方式２では、前記ソフトガーディアンは、前記ソフトガーディアンが特定仮想ＰＬＣを保護することを含み、前記特定仮想特定仮想ＰＬＣが故障した後に再構成された物理コアの優先順位及び各物理コア上のマイクロカーネルの優先順位を指示する特定仮想ＰＬＣの故障時の配置ポリシーをさらに含む設定情報を取得し、前記ソフトガーディアンは、前記各サーバ上の各物理コアの第１の負荷情報、前記各物理コア上の各マイクロカーネルの第２の負荷情報及び特定仮想ＰＬＣの故障時の配置ポリシーに基づいて、前記ターゲットマイクロカーネルを決定することができる。
【００１４】
本発明の実施例は、サーバクラスターに適用されるソフトウェア定義ＰＬＣの監視及び再構成方法を提供し、前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定され、前記方法は、サーバが、前記ソフトガーディアンで保護される特定仮想ＰＬＣのユーザプログラム編集結果ファイルと前記特定仮想ＰＬＣを再構成するターゲットマイクロカーネルとを含む、前記ソフトガーディアンからの再構成命令を受信することと、前記サーバが、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成することとを含む。
【００１５】
好ましくは、前記サーバが、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成することは、前記ターゲットマイクロカーネルで前記ターゲットマイクロカーネルにプリインストールされた仮想ＰＬＣのシステムプログラムを起動することと、仮想ＰＬＣのシステムプログラムで前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを実行することとを含む。
【００１６】
好ましくは、サーバが前記ソフトガーディアンからの再構成命令を受信する前に、さらに、前記サーバが、特定物理コア上の特定マイクロカーネルにソフトガーディアンを設定することと、特定物理コア上の特定マイクロカーネルに仮想ＰＬＣを設定することに用いられ、前記ソフトガーディアンで監視する特定仮想ＰＬＣを含む、クライアントからの初期化設定命令を受信することと、前記サーバが前記初期化設定命令における前記設定情報に基づいて仮想ＰＬＣ及びソフトガーディアンを設定することとを含む。前記特定仮想ＰＬＣは、前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにない。
【００１７】
本発明の実施例は、サーバクラスターに適用されるサーバを提供し、前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定され、前記サーバに設定されたソフトガーディアンは、仮想ＰＬＣの故障を監視すると、前記サーバクラスターにおける各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態を取得するための取得ユニットと、前記各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットマイクロカーネルを決定するための処理ユニットと、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信するための送信ユニットとを含む。
【００１８】
好ましくは、前記取得ユニットは、さらに、設定情報を取得するために用いられ、前記処理ユニットは、さらに、前記設定情報に基づいて、前記特定仮想ＰＬＣの動作状態を監視するために用いられ、前記設定情報は、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、また、前記特定仮想ＰＬＣが前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにないことを示す。
【００１９】
好ましくは、前記取得ユニットは、さらに、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルをさらに含む設定情報を取得するために用いられ、前記送信ユニットは、具体的には、前記ターゲットマイクロカーネルに前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて前記特定仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信するために用いられる。前記再構成命令は、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを含む。
【００２０】
好ましくは、前記各物理コアの動作状態は、前記各物理コアの第１の負荷情報を含み、前記各マイクロカーネルの動作状態は、前記各マイクロカーネルの第２の負荷情報を含み、前記取得ユニットは、具体的には、前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報を取得するために用いられ、前記処理ユニットは、具体的には、前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報に基づいてターゲットマイクロカーネルを決定するために用いられる。
【００２１】
本発明の実施例は、サーバクラスターに適用されるサーバを提供し、前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定され、前記サーバは、前記ソフトガーディアンで保護される特定仮想ＰＬＣのユーザプログラム編集結果ファイルと前記特定仮想ＰＬＣを再構成するターゲットマイクロカーネルを含む前記ソフトガーディアンからの再構成命令を受信するための受信ユニットと、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成するための処理ユニットとを含む。
【００２２】
好ましくは、前記処理ユニットは、具体的には、前記ターゲットマイクロカーネルで前記ターゲットマイクロカーネルにプリインストールされた仮想ＰＬＣのシステムプログラムを起動し、仮想ＰＬＣのシステムプログラムで前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを実行するために用いられる。
【００２３】
好ましくは、前記受信ユニットは、さらに、特定物理コア上の特定マイクロカーネルにソフトガーディアンを設定することと、特定物理コア上の特定マイクロカーネルに仮想ＰＬＣを設定することと、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示すことに用いられる、クライアントからの初期化設定命令を受信するために用いられ、前記処理ユニットは、さらに、前記初期化設定命令における前記設定情報に基づいて仮想ＰＬＣ及びソフトガーディアンを設定するために用いられる。前記特定仮想ＰＬＣは、前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにない。
【００２４】
本発明の実施例は、仮想化オペレーティングシステムが設定されたサーバクラスターに適用されるＰＬＣに基づく分散制御システムのディザスタリカバリ方法を提供し、前記サーバクラスターにおける各サーバに、仮想ＰＬＣ及び前記仮想ＰＬＣのリアルタイムオペレーティングシステムが設定され、前記ソフトガーディアンは、前記仮想ＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得し、前記ソフトガーディアンは、前記各サーバの動作状態に基づいてターゲットサーバを決定し、前記ソフトガーディアンは、前記ターゲットサーバに前記仮想ＰＬＣを設定するように指示するための設定命令を前記ターゲットサーバに送信する。
【００２５】
本発明の実施例では、前記サーバクラスターにおける各サーバに仮想ＰＬＣ及び前記仮想ＰＬＣのリアルタイムオペレーティングシステムが設定されているため、仮想ＰＬＣのリアルタイムオペレーティングシステムにより各仮想ＰＬＣの制御時のリアルタイム性を向上させることができ、前記ソフトガーディアンのリアルタイムオペレーティングシステムにより分散制御システム全体のリアルタイム性を向上させることができる。
【００２６】
さらに、前記ソフトガーディアンは、前記仮想ＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得し、前記各サーバの動作状態に基づいてターゲットサーバを決定し、決定された前記ターゲットサーバに設定命令を送信することにより、ターゲットサーバに仮想ＰＬＣを自動的に再設定することを実現し、分散制御システム全体の正常な動作に影響を与えず、このようにすれば、分散制御システムのディザスタリカバリ能力を向上させることができ、かつ分散制御システムをメンテナンスしやすい。
【００２７】
好ましくは、前記ソフトガーディアンが前記仮想ＰＬＣの故障を確認する前に、さらに、前記ソフトガーディアンがソフトガーディアンと仮想ＰＬＣとの間のマッピング関係を含む前記仮想ＰＬＣトポロジ情報を取得することと、前記ソフトガーディアンが前記マッピング関係に基づいて前記仮想ＰＬＣの動作状態を保護することとを含む。
【００２８】
好ましくは、前記ソフトガーディアンが前記ターゲットサーバに設定命令を送信することは、前記ソフトガーディアンが、イベント駆動で実行される第１の命令セットと、周期ポーリング及びイベント駆動で実行される第２の命令セットとを含む前記仮想ＰＬＣの命令セットを決定することと、前記ソフトガーディアンが前記仮想ＰＬＣの命令セットを含む設定命令を前記ターゲットサーバに送信することとを含む。
【００２９】
好ましくは、前記ソフトガーディアンが前記ターゲットサーバに設定命令を送信した後、さらに、前記ソフトガーディアンが前記仮想ＰＬＣトポロジ情報を更新することを含む。
【００３０】
好ましくは、ＰＬＣに基づく分散制御システムのディザスタリカバリ方法は、前記ソフトガーディアンが各前記サーバの動作状態を保護することと、前記ソフトガーディアンが、異常状態のサーバが存在すると決定する場合、警報情報を送信することとをさらに含む。
【００３１】
本発明の実施例は、仮想化オペレーティングシステムが設定されたサーバクラスターに適用されるＰＬＣに基づく分散制御システムのディザスタリカバリ装置を提供し、前記サーバクラスターにおける各サーバに仮想ＰＬＣ及び前記仮想ＰＬＣのリアルタイムオペレーティングシステムが設定され、前記ソフトガーディアンは、前記仮想ＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得するための取得ユニットと、前記各サーバの動作状態に基づいてターゲットサーバを決定するための決定ユニットと、前記ターゲットサーバに前記仮想ＰＬＣを設定するように指示するための設定命令を前記ターゲットサーバに送信するための送信ユニットとを含む。
【００３２】
好ましくは、前記取得ユニットは、さらに、ソフトガーディアンと仮想ＰＬＣとの間のマッピング関係を含む前記仮想ＰＬＣトポロジ情報を取得するために用いられ、前記マッピング関係に基づいて、前記仮想ＰＬＣの動作状態を保護するためのガーディアンユニットをさらに含む。
【００３３】
好ましくは、前記決定ユニットは、イベント駆動で実行される第１の命令セットと、周期ポーリング及びイベント駆動で実行される第２の命令セットとを含む前記仮想ＰＬＣの命令セットを決定するために用いられ、前記送信ユニットは、前記仮想ＰＬＣの命令セットを含む設定命令を前記ターゲットサーバに送信するために用いられる。
【００３４】
好ましくは、前記仮想ＰＬＣトポロジ情報を更新するための更新ユニットをさらに含む。
【００３５】
好ましくは、前記ガーディアンユニットは、さらに、各前記サーバの動作状態を保護するために用いられ、前記送信ユニットは、異常状態のサーバが存在すると決定する場合、警報情報を送信するために用いられる。
【００３６】
本発明の実施例は、コンピュータに前記方法を実行させるためのコンピュータ実行可能な命令が記憶されているコンピュータ可読記憶媒体を提供する。
【００３７】
本発明の実施例は、プログラム命令を記憶するためのメモリと、前記メモリに記憶されたプログラム命令を呼び出して、取得されたプログラムに従って前記方法を実行するためのプロセッサとを含むコンピュータ装置を提供する。
【図面の簡単な説明】
【００３８】
本発明の実施例における技術手段をより明確に説明するために、以下、実施例の説明に必要な図面を簡単に説明するが、以下に記載の図面は本発明のいくつかの実施例に過ぎず、当業者にとって、創造的な労働を行わない前提で、これらの図面に基づいて他の図面を取得することができる。
【図１】本発明の実施例に係るＰＬＣに基づく分散制御システムのアーキテクチャ概略図である
【図２】本発明の実施例に係るＰＬＣに基づく分散制御システムのディザスタリカバリ方法の方法フローチャートである。
【図３】本発明の実施例に係る仮想ＰＬＣとサーバとの間の配置関係のアーキテクチャ概略図である。
【図４】本発明の実施例に係るＰＬＣに基づく分散制御システムのディザスタリカバリ装置の構造概略図である。
【図５ａ】本発明の実施例に係るサーバの内部構造概略図である。
【図５ｂ】本発明の実施例に係るサーバ上の一つの物理コアが故障した後の内部配置構造概略図である。
【図５ｃ】本発明の実施例に係る仮想ＰＬＣ３が故障した後のサーバの内部構造概略図である。
【図５ｄ】本発明の実施例に係るソフトウェア定義ＰＬＣの監視及び再構成方法のフローチャートである。
【図６】本発明の実施例に係るサーバが仮想ＰＬＣ又はガーディアンを設定する方法のフローチャートである。
【図７】本発明の実施例に係るソフトガーディアンの構造概略図である。
【図８】本発明の実施例に係るサーバの構造概略図である。
【発明を実施するための形態】
【００３９】
本発明の目的、技術手段及び利点をより明確にするために、以下、図面を合わせて本発明をさらに詳細に説明し、明らかに、説明された実施例は、本発明の一部の実施例に過ぎず、全ての実施例ではない。本発明における実施例に基づいて、当業者が創造的な労働を行わない前提で得られた全ての他の実施例は、いずれも本発明の保護範囲に属する。
【００４０】
（実施例１）
図１は、本発明の実施例が適用される分散ディザスタリカバリ装置のアーキテクチャ概略図を示す。図１に示すように、該システムアーキテクチャは、クライアント１０１、サーバクラスター１０２、入力／出力（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ、Ｉ／Ｏと略称）バス１０３、制御対象機器１０４を含むことができる。図１は、サーバーグループがサーバ１０２ａ、サーバ１０２ｂ及びサーバ１０２ｃを含むことを例として説明する。クライアント１０１とサーバクラスター１０２における各サーバとの間は、有線又は無線の方式で接続され、サーバ１０２ａ、サーバ１０２ｂ及びサーバ１０２ｃの間は、有線又は無線の方式で接続され、サーバ１０２ａ、サーバ１０２ｂ及びサーバ１０２ｃは、それぞれＩ／Ｏバス１０３を介して制御対象機器１０４に接続される。
【００４１】
クライアント１０１には、アプリケーション開発環境ソフトウェア、例えば、統合開発環境(Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｅｎｖｉｒｏｎｍｅｎｔ、ＩＤＥと略称)ソフトウェアが配置されている。開発環境ソフトウェアは、エディタ、コンパイラを含む。前記開発環境ソフトウェアは、国際電気標準会議（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ、ＩＥＣと略称）６１１３１標準及びＩＥＣ６１４９９標準をサポートする。ユーザは、開発環境においてＩＥＣ６１１３１標準のストラクチャードテキスト（Ｓｔｒｕｃｔｕｒｅｄ  ｔｅｘｔ、ＳＴと略称）言語エディタ、中間言語（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｌａｎｇｕａｇｅ、ＩＬと略称）言語エディタ、ファンクションブロックダイアグラム（Ｆｕｎｃｔｉｏｎ  Ｂｌｏｃｋ  Ｄｉａｇｒａｍ、ＦＢＤと略称）言語エディタ、シーケンシャルファンクションチャート（Ｓｅａｕｅｎｔｉａｌ  Ｆｕｃｔｉｏｎ  Ｃｈａｒｔ、ＳＦＣと略称）言語エディタ、ラダーロジックプログラミング言語（ＬａｄｄｅｒＬｏｇｉｃ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｌａｎｇｕａｇｅ、ＬＡＤと略称）言語エディタを用いてエディタでプログラミングし、ＩＥＣ６１４９９標準のファンクションブロックダイアグラムエディタ、ＩＥＣ６１４９９の実行制御遷移図（Ｅｘｅｃｕｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｃｈａｒｔ、ＥＣＣと略称）グラフエディタ、クロスエディタを用いてファンクションブロックダイアグラムとＥＣＣグラフのプログラミングを行う。本発明の実施例において、クライアントは、エディタでプログラム編集を行う場合、ＩＥＣ６１４９９標準及びＩＥＣ６１１３１標準を組み合わせて用いてソフトＰＬＣ、及びソフトガーディアンを設定し、ＩＥＣ６１１３１標準には単独のソフトＰＬＣの制御ロジック、単一のソフトＰＬＣ間の通信プロトコル及び通信ポリシーが規定されるので、ＰＬＣに基づく分散制御システム全体に対する制御ロジックを取得するために、ＩＥＣ６１４９９標準を補充として用いる。ＩＥＣ６１４９９標準は、各ソフトＰＬＣ間の通信プロトコル及び通信ポリシーを規定し、通信プロトコルの機能を弱化し、このように、編集者がソフトＰＬＣ及びソフトガーディアンをプログラミングする場合、開始時に各ソフトＰＬＣ間の通信プロトコル及び通信ポリシーを考慮することを省略することができ、分散制御システム全体の制御ロジックに注目するだけで、分散制御システム全体の制御ロジックを配置した後、ＩＥＣ６１１３１標準に基づいて、具体的な各ソフトＰＬＣに割り当てる。各サーバに設定されたソフトＰＬＣとソフトガーディアンは、ＩＥＣ６１４９９標準及びＩＥＣ６１１３１標準を組み合わせたプログラミング方式を用いて、プログラミングがより簡潔で容易になり、かつプログラムのメンテナンス性が高い。編集者は、必要に応じて、エディタでソフトＰＬＣのトポロジ情報と前記ソフトＰＬＣの命令セットを編集する。コンパイラにおいてソフトＰＬＣトポロジ情報と前記ソフトＰＬＣの制御ロジックソースコードを実行環境で実行可能な機械命令セットに変換する。
【００４２】
サーバクラスター１０２における各サーバは、産業用サーバであってよく、サーバクラスター１０２における各サーバに仮想化オペレーティングシステムが設定される。前記サーバクラスターにおける各サーバに仮想化オペレーティングシステムが設定され、前記サーバは、ソフトＰＬＣトポロジ情報、ソフトガーディアントポロジ情報、ソフトＰＬＣのリアルタイムオペレーティングシステム情報及びソフトガーディアンのリアルタイムオペレーティングシステム情報を含む初期化設定命令を受信し、前記初期化設定命令に基づいて、前記サーバの前記仮想化オペレーティングシステムにソフトＰＬＣ、ソフトガーディアン、前記ソフトＰＬＣのリアルタイムオペレーティングシステム及び前記ソフトガーディアンのリアルタイムオペレーティングシステムを設定するために用いられ、前記初期化設定命令は、ＩＥＣ６１４９９標準及びＩＥＣ６１１３１標準を組み合わせるプログラミング方式で生成されるものである。前記仮想化オペレーティングシステムは、Ｉｎｔｅｒｗｅｌｌ  ＯＳシステムであってよく、ソフトＰＬＣは、ランタイム環境（Ｒｕｎ  Ｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ、ＲＴＥと略称）ソフトウェアであってよく、リアルタイムオペレーティングシステムは、Ｕｎｉｘ系カーネルソフトウェア、例えば「デルタ」システムであってよい。Ｕｎｉｘカーネルソフトウェアは、マルチユーザ、マルチタスクオペレーティングシステムであり、複数種のプロセッサアーキテクチャ時分割オペレーティングシステムをサポートする。サーバクラスター１０２における各サーバには、前記ソフトＰＬＣのリアルタイムオペレーティングシステム及び前記ソフトコントローラのリアルタイムオペレーティングシステムが設定されているため、リアルタイムオペレーティングシステムにより各ソフトＰＬＣ制御の制御対象機器のリアルタイム性及び分散制御システム全体のリアルタイム性を向上させることができる。
【００４３】
Ｉ／Ｏバス１０３は、入力を取得し入力を実行して、工業現場の各制御対象機器１０４を制御して対応する命令を実行するために用いられ、制御対象機器１０４は、モータ又はマニピュレーターなどであってよい。
【００４４】
本発明の実施例では、ソフトガーディアンは、ソフトＰＬＣの動作状態を保護するための、サーバに設定されたシミュレーションガーディアンである。ソフトガーディアンの配置は、様々な方式を含む。方式１では、ソフトガーディアンがソフトＰＬＣと同一のサーバに設定されてよい。同一のサーバの故障時の負担を低減するために、一般的には、ソフトガーディアンは、ガーディアンされたソフトＰＬＣと同一のサーバに設定されない。方式２では、ソフトガーディアンが単独で１つのサーバに設定される。好ましくは、各方式でのソフトガーディアンは１つ又は複数配置されて、あるソフトガーディアンが故障すると、ソフトＰＬＣの動作状態をリアルタイムに保護できないことを防止することができる。
【００４５】
図１に示すシステムアーキテクチャに基づいて、図２は、本発明の実施例に係るＰＬＣに基づく分散制御のディザスタリカバリ方法の方法フローチャートを例示的に示し、図２に示すように、該ＰＬＣに基づく分散制御のディザスタリカバリ方法は、
ソフトガーディアンがソフトＰＬＣの故障を確認すると、サーバクラスターにおける各サーバの動作状態を取得するステップ２０１と、
ソフトガーディアンが各サーバの動作状態に基づいてターゲットサーバを決定するステップ２０２と、
ソフトガーディアンがターゲットサーバにソフトＰＬＣを設定するように指示するための設定命令をターゲットサーバに送信するステップ２０３とを含む。
【００４６】
本発明の実施例では、前記サーバクラスターにおける各サーバにソフトＰＬＣ及び前記ソフトＰＬＣのリアルタイムオペレーティングシステムが設定されているため、ソフトＰＬＣのリアルタイムオペレーティングシステムにより、各ソフトＰＬＣの制御時のリアルタイム性を向上させることができ、前記ソフトガーディアンのリアルタイムオペレーティングシステムにより分散制御システム全体のリアルタイム性を向上させることができる。
【００４７】
さらに、前記ソフトガーディアンは、前記ソフトＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得し、前記各サーバの動作状態に基づいてターゲットサーバを決定し、決定された前記ターゲットサーバに設定命令を送信することにより、ターゲットサーバにソフトＰＬＣを自動的に再設定することを実現し、分散制御システム全体の正常な動作に影響を与えず、このようにすれば、分散制御システムのディザスタリカバリ能力を向上させることができ、かつ分散制御システムをメンテナンスしやすい。
【００４８】
本発明の実施例では、編集者は、実際の必要に応じて、クライアントにおいてＩＥＣ６１４９９標準及びＩＥＣ６１１３１標準を組み合わせるプログラミング方式で、サーバクラスターにおけるサーバの間のトポロジ情報、前記ソフトＰＬＣトポロジ情報、ソフトＰＬＣのリアルタイムオペレーティングシステム情報、ソフトガーディアンのリアルタイムオペレーティングシステム情報、ソフトＰＬＣトポロジ情報及び前記ソフトＰＬＣの命令セットを含む初期化設定命令を予め編集し、ソフトＰＬＣの命令セットは、イベント駆動で実行される第１の命令セットと、周期ポーリング及びイベント駆動で実行される第２の命令セットとを含み、前記ソフトＰＬＣトポロジ情報は、各ソフトＰＬＣとサーバとの間のマッピング関係と、ソフトガーディアンとソフトＰＬＣとの間のマッピング関係とを含む。その後、クライアントは、エディタで編集された内容をコンパイラにおいて実行環境で実行可能な機械命令に変換し、かつサーバクラスターにおける各サーバに送信する。
【００４９】
好ましくは、サーバクラスターにおける各サーバがクライアントから送信された初期化設定命令を受信すると、各サーバは、前記初期化設定命令に基づいて、前記サーバの前記仮想化オペレーティングシステムにソフトＰＬＣ、ソフトガーディアン、前記ソフトＰＬＣのリアルタイムオペレーティングシステム及び前記ソフトガーディアンのリアルタイムオペレーティングシステムを設定し、かつ成功に設定された旨の応答をクライアントに送信する。クライアントは、サーバクラスターにおける各サーバから送信され成功に設定された旨の応答を受信した後、前記各ソフトＰＬＣ及びソフトガーディアンを起動して実行することを確認する。好ましくは、各サーバにおいて仮想化されたソフトガーディアンは、ソフトＰＬＣトポロジ情報に基づいて、保護すべきソフトＰＬＣを決定し、各ソフトＰＬＣは、ソフトＰＬＣの命令セットに基づいて、実行しようとする命令を決定する。サーバクラスターにおける各サーバが各クライアントから送信された起動命令を受信すると、前記起動命令に基づいて前記ソフトＰＬＣ及び前記ソフトガーディアンを起動し、ソフトＰＬＣと前記ソフトガーディアンが起動した後、ソフトＰＬＣの命令セットに基づいて対応する命令をそれぞれ実行し、ソフトガーディアンがソフトＰＬＣトポロジ情報に基づいて対応するソフトＰＬＣを保護する。
【００５０】
本発明の実施例では、ソフトＰＬＣ、ソフトガーディアン、前記ソフトＰＬＣのリアルタイムオペレーティングシステム及び前記ソフトガーディアンのリアルタイムオペレーティングシステムを設定することは、仮想化技術によりソフトＰＬＣ、ソフトガーディアン、前記ソフトＰＬＣのリアルタイムオペレーティングシステム及び前記ソフトガーディアンのリアルタイムオペレーティングシステムを仮想化することであってもよい。
【００５１】
理解を容易にするために、本発明の実施例における図３は、本発明の実施例が適用されるソフトＰＬＣとサーバとの間の配置関係を示す。図３に示すように、サーバ１０２ａにソフトＰＬＣ１１、ＰＬＣ１２及びソフトガーディアン１が配置され、サーバ１０２ｂにＰＬＣ２１、ＰＬＣ２２、ＰＬＣ２３、ソフトガーディアン２が配置され、サーバ１０２ｃにＰＬＣ３１及びソフトガーディアン３が配置され、ソフトガーディアン１は、ソフトＰＬＣ２１、ＰＬＣ２２、ＰＬＣ２３及びＰＬＣ３１の保護を担当し、ソフトガーディアン２は、ソフトＰＬＣ１１、ＰＬＣ１２及びＰＬＣ３１の保護を担当し、ソフトガーディアン３は、ＰＬＣ１１、ＰＬＣ１２、ＰＬＣ２１、ＰＬＣ２２及びＰＬＣ２３の保護を担当する。同一のサーバが故障する場合に負担されるリスクを低減するために、一般的には、ソフトガーディアンは、該ソフトガーディアンで保護されるソフトＰＬＣと同一のサーバに設定されない。
【００５２】
本発明の実施例では、前記ソフトガーディアンが前記ソフトＰＬＣの故障を確認する前に、さらに、前記ソフトガーディアンがソフトガーディアンとソフトＰＬＣとの間のマッピング関係を含む前記ソフトＰＬＣトポロジ情報を取得することと、前記ソフトガーディアンが前記マッピング関係に基づいて前記ソフトＰＬＣの動作状態を保護することとを含む。
【００５３】
本発明の実施例では、ソフトガーディアンとソフトＰＬＣとの間のマッピング関係は、具体的には、ソフトガーディアンがどのソフトＰＬＣを保護する必要があるかということであり、前記ソフトガーディアンが保護する必要があるソフトＰＬＣを決定すると、ソフトガーディアンは、前記ソフトＰＬＣの動作状態を保護する。具体的な実現方式は、前記ソフトガーディアンが各保護されるソフトＰＬＣにハートビートメッセージを送信し、ソフトＰＬＣが正常な動作状態にあると、ソフトガーディアンにハートビートメッセージの応答をフィードバックし、前記ソフトガーディアンが予め設定された時間内に前記ソフトＰＬＣのハートビートメッセージ応答を受信しないと、前記ソフトガーディアンが前記ソフトＰＬＣの動作状態が故障であると決定することである。
【００５４】
ソフトガーディアンがソフトＰＬＣの故障を確認すると、分散制御システム全体の動作に影響を与えないために、ソフトガーディアンは、ターゲットサーバに設定命令を送信し、故障したソフトＰＬＣに対応する新たなソフトＰＬＣを設定する必要がある。
【００５５】
本発明の実施例では、前記ソフトガーディアンが前記ターゲットサーバに設定命令を送信することは、前記ソフトガーディアンが前記ソフトＰＬＣの設定情報と、イベント駆動で実行される第１の命令セット、及び周期ポーリング及びイベント駆動で実行される第２の命令セットを含む前記ソフトＰＬＣの命令セットとを決定することと、前記ソフトガーディアンが前記ソフトＰＬＣの設定情報及び前記ソフトＰＬＣの命令セットを含む設定命令を前記ターゲットサーバに送信することとを含む。好ましい方式では、ソフトガーディアンがソフトＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態、例えば、各サーバの中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵと略称）の占有率を取得し、ＣＰＵ占有率が最小であるサーバをターゲットサーバとするか、又は、ＣＰＵ占有率が第１の閾値より低いサーバをターゲットサーバとする。ターゲットサーバは、１つであっても複数であってもよい。ターゲットサーバが複数であれば、設定命令において複数のターゲットサーバの間に設定されたルールが伝送される。例えば、平均割当ルール又は各ターゲットサーバのＣＰＵ占有率の反比例に基づいて、故障したソフトＰＬＣを設定する。
【００５６】
本発明の実施例では、前記ソフトガーディアンが前記ターゲットサーバに設定命令を送信した後、さらに、前記ソフトガーディアンが前記ソフトＰＬＣトポロジ情報を更新することを含む。
【００５７】
好ましくは、前記ソフトＰＬＣのトポロジ情報は、各ソフトＰＬＣとサーバとの間のマッピング関係をさらに含む。ソフトＰＬＣが故障すると、ソフトガーディアンは、ターゲットサーバに設定命令を送信し、ターゲットサーバは、該設定命令に基づいて、故障したソフトＰＬＣに対応する新たなソフトＰＬＣを設定し、ターゲットサーバは、故障したソフトＰＬＣが所在するサーバである可能性があるが、そうではない可能性がある。ターゲットサーバが元の故障したソフトＰＬＣの所在するサーバではなければ、ソフトガーディアンにおけるソフトＰＬＣトポロジを更新する必要があり、すなわち、各ソフトＰＬＣとサーバとの間のマッピング関係を更新する。保守員のメンテナンスを容易にする。
【００５８】
本発明の実施例では、前記ソフトガーディアンは、各サーバの動作状態を保護し、前記ソフトガーディアンは、異常状態のサーバが存在すると決定する場合、警報情報を送信する。
【００５９】
本発明の実施例では、異常状態は、サーバが故障すること又はサーバの現在のＣＰＵ占有率が第２の閾値より大きいことを含み、第２の閾値は、第１の閾値より大きく、ソフトガーディアンは、サーバクラスターに異常状態のサーバが存在すると決定する場合、警報を送信する。このようにすれば、サービスマンを提示して、故障したサーバをタイムリーに修復するか又はＣＰＵ占有率が第２の閾値より大きいサーバを特に注目しやすく、さらにＰＬＣに基づく分散制御システム全体のディザスタリカバリ能力を向上させる。
【００６０】
上記内容から分かるように、本発明の実施例では、前記サーバクラスターにおける各サーバにソフトＰＬＣ及び前記ソフトＰＬＣのリアルタイムオペレーティングシステムが設定されるため、ソフトＰＬＣのリアルタイムオペレーティングシステムにより、各ソフトＰＬＣの制御時のリアルタイム性を向上させることができ、前記ソフトガーディアンのリアルタイムオペレーティングシステムにより分散制御システム全体のリアルタイム性を向上させることができる。
【００６１】
さらに、前記ソフトガーディアンが前記ソフトＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得し、前記各サーバの動作状態に基づいてターゲットサーバを決定し、決定された前記ターゲットサーバに設定命令を送信することにより、ターゲットサーバにソフトＰＬＣを自動的に再設定することを実現し、分散制御システム全体の正常な動作に影響を与えず、このようにすれば、分散制御システムのディザスタリカバリ能力を向上させることができ、かつ分散制御システムをメンテナンスしやすい。
【００６２】
同じ技術的思想に基づいて、本発明の実施例は、上記方法の実施例を実行可能なＰＬＣに基づく分散制御システムのディザスタリカバリ装置をさらに提供する。該装置は、仮想化オペレーティングシステムが設定されたサーバクラスターに適用され、前記サーバクラスターにおける各サーバにソフトＰＬＣ、前記ソフトＰＬＣのリアルタイムオペレーティングシステム、ソフトガーディアン及び前記ソフトガーディアンのリアルタイムオペレーティングシステムが設定され、図４は、本発明の実施例に係るＰＬＣに基づく分散制御システムのディザスタリカバリ装置の構造概略図であり、図４に示すように、該装置は、取得ユニット４０１、決定ユニット４０２、送信ユニット４０３を含み、好ましくは、ガーディアンユニット４０４及び更新ユニット４０５をさらに含む。
【００６３】
取得ユニットは、前記ソフトＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得するために用いられ、決定ユニットは、前記各サーバの動作状態に基づいてターゲットサーバを決定するために用いられ、送信ユニットは、前記ターゲットサーバに前記ソフトＰＬＣを設定するように指示するための設定命令を前記ターゲットサーバに送信するために用いられる。
【００６４】
本発明の実施例では、前記サーバクラスターにおける各サーバにソフトＰＬＣ及び前記ソフトＰＬＣのリアルタイムオペレーティングシステムが設定されるため、ソフトＰＬＣのリアルタイムオペレーティングシステムにより、各ソフトＰＬＣの制御時のリアルタイム性を向上させることができ、前記ソフトガーディアンのリアルタイムオペレーティングシステムにより分散制御システム全体のリアルタイム性を向上させることができる。
【００６５】
さらに、前記ソフトガーディアンは、前記ソフトＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得し、前記各サーバの動作状態に基づいてターゲットサーバを決定し、決定された前記ターゲットサーバに設定命令を送信することにより、ターゲットサーバにソフトＰＬＣを自動的に再設定することを実現し、分散制御システム全体の正常な動作に影響を与えず、このようにすれば、分散制御システムのディザスタリカバリ能力を向上させることができ、かつ分散制御システムをメンテナンスしやすい。
【００６６】
好ましくは、前記取得ユニットは、さらに、ソフトガーディアンとソフトＰＬＣとの間のマッピング関係を含む前記ソフトＰＬＣトポロジ情報を取得するために用いられ、前記マッピング関係に基づいて、前記ソフトＰＬＣの動作状態を保護するためのガーディアンユニットをさらに含む。
【００６７】
好ましくは、前記決定ユニットは、イベント駆動で実行される第１の命令セット、及び周期ポーリング及びイベント駆動で実行される第２の命令セットを含む前記ソフトＰＬＣの命令セットとを決定するために用いられ、前記送信ユニットは、前記ソフトＰＬＣの命令セットを含む設定命令を前記ターゲットサーバに送信するために用いられる。好ましくは、前記ソフトＰＬＣトポロジ情報を更新するための更新ユニットをさらに含む。
【００６８】
好ましくは、前記ガーディアンユニットは、さらに、各前記サーバの動作状態を保護するために用いられ、前記送信ユニットは、異常状態のサーバが存在すると決定する場合、警報情報を送信するために用いられる。
【００６９】
上記内容から分かるように、前記サーバクラスターにおける各サーバにソフトＰＬＣ及び前記ソフトＰＬＣのリアルタイムオペレーティングシステムが設定されるため、ソフトＰＬＣのリアルタイムオペレーティングシステムにより、各ソフトＰＬＣの制御時のリアルタイム性を向上させることができ、前記ソフトガーディアンのリアルタイムオペレーティングシステムにより分散制御システム全体のリアルタイム性を向上させることができる。
【００７０】
さらに、前記ソフトガーディアンは、前記ソフトＰＬＣの故障を確認すると、前記サーバクラスターにおける各サーバの動作状態を取得し、前記各サーバの動作状態に基づいてターゲットサーバを決定し、決定された前記ターゲットサーバに設定命令を送信することにより、ターゲットサーバにソフトＰＬＣを自動的に再設定することを実現し、分散制御システム全体の正常な動作に影響を与えず、このようにすれば、分散制御システムのディザスタリカバリ能力を向上させることができ、かつ分散制御システムをメンテナンスしやすい。
【００７１】
（実施例２）
実施例１を基に、本実施例におけるサーバクラスターにおける各サーバは、各々に複数のマイクロカーネルが実行される１つ又は複数の物理コアを含む。本実施例におけるマイクロカーネルは、仮想化リアルタイムオペレーティングシステムであってよく、物理コアは、ＣＰＵ物理コアであってよく、仮想化リアルタイムオペレーティングシステムは、複数のＵｎｉｘ系カーネルがインストールされた仮想化オペレーティングシステム、例えば、「道」（一種のオペレーティングシステムである）がインストールされたＩｎｔｅｗｅｌｌ  ＯＳシステムであってよく、Ｕｎｉｘカーネルソフトウェアは、マルチユーザ、マルチタスクオペレーティングシステムであり、複数種のプロセッサアーキテクチャ時分割オペレーティングシステムをサポートする。ＰＬＣ分散制御システムの制御ロジックに基づいて、ＰＬＣ分散制御システムは、各々が異なるマイクロカーネルで実行される、関係を有する複数の仮想ＰＬＣの情報を含む。故障する仮想ＰＬＣがあれば、該仮想ＰＬＣを再構成して、故障した仮想ＰＬＣの対応する機能を実現することができる。仮想化されたリアルタイムオペレーティングシステムは、マルチコアＣＰＵ、命令仮想化、およびインターフェイス仮想化方式により実行されており、少なくとも物理メモリへのアクセルの隔離、Ｉ／Ｏデバイスへのアクセスの隔離、Ｉ／Ｏデバイスの中断の受信の隔離、およびタイムシェアリング・スケジューリングのような安全的な隔離特性を有する。仮想ＰＬＣは、リアルタイムオペレーティングシステムにおいて実行されるＰＬＣである。仮想ＰＬＣは、仮想化リアルタイムオペレーティングシステムと、仮想化リアルタイムオペレーティングシステムにおいて実行されるＰＬＣシステムプログラムと、ＰＬＣシステムプログラムにおいて実行されるユーザプログラム編集結果ファイルとを含む。ソフトガーディアンは、仮想化監視プログラムであり、リアルタイムオペレーティングシステムにおいて実行される。ソフトガーディアンは、仮想化リアルタイムオペレーティングシステムと、仮想化リアルタイムオペレーティングシステムにおいて実行されるガーディアンカーネルとを含む。ガーディアンカーネルは、ガーディアン機能を実施するコアアプリケーションである。ここで、物理メモリへのアクセス隔離とは、仮想化オペレーティングシステムが、オペレーティングシステムのセキュリティカーネルを介して物理メモリをアクセルすることにより、物理メモリを隔離する目的を達成することを意味する。Ｉ／Ｏデバイスへのアクセスの隔離とは、仮想化オペレーティングシステムがオペレーティングシステムのセキュリティカーネルを介してＩ／Ｏデバイスをアクセスすることにより、Ｉ／Ｏデバイスを隔離する目的を達成することを意味する。Ｉ／Ｏデバイスの中断の受信の隔離とは、仮想化オペレーティングシステムが、オペレーティングシステムセキュリティカーネルにより転送されたＩ／Ｏデバイスの中断を受信することにより、Ｉ／Ｏデバイスの中断を隔離する目的を達成することを意味する。タイムシェアリング・スケジューリングとは、オペレーティングシステムのセキュリティカーネルに、タイムシェアリング・スケジューリング方法を用いて、���つの物理コア上の複数の仮想化オペレーティングシステムの並列動作を実現することを意味する。
【００７２】
図５ａは、本発明の実施例に係るサーバの内部構造概略図を例示的に示す。サーバは、上記実施例１におけるサーバ１０２ａ、サーバ１０２ｂ及びサーバ１０２ｃのいずれか１つであってよい。図５ａに示すように、サーバは、物理コアＡ及び物理コアＢを含み、物理コアＡに１０個の仮想化リアルタイムオペレーティングシステムが設定され、１０個の仮想化リアルタイムオペレーティングシステムのいずれか５つにＲＴＥが配置され、いずれか１つにガーディアンカーネルが設置され、このように、物理コアに仮想ＰＬＣ１、仮想ＰＬＣ２、仮想ＰＬＣ３、仮想ＰＬＣ４、仮想ＰＬＣ５、及びソフトガーディアン１を配置することを実現することができる。ＲＴＥもガーディアンカーネルも設置されない４つの仮想化リアルタイムオペレーティングシステムは、スロットと呼ばれてもよく、仮想化リアルタイムオペレーティングシステムが冗長であると理解されてもよい。物理コアＢにも１０個の仮想化リアルタイムオペレーティングシステムが設定され、そのうちのいずれか２つの仮想化リアルタイムオペレーティングシステムにＲＴＥが配置され、いずれか２つにガーディアンカーネルが設置されて、物理コアＢに仮想ＰＬＣ７、仮想ＰＬＣ８、ソフトガーディアン２及びソフトガーディアン３を配置することを実現することができる。ＲＴＥもガーディアンカーネルも設置されない６つの仮想化リアルタイムオペレーティングシステムは、スロットと呼ばれてもよく、仮想化リアルタイムオペレーティングシステムが冗長であると理解されてもよい。好ましくは、物理コアは、ハードＰＬＣであってよい。ソフトガーディアンは、仮想ＰＬＣの動作状態を保護するための、サーバの物理コア上のマイクロカーネルに設定されたシミュレーションガーディアンであると理解されてもよい。例示的に、ソフトガーディアン１は、仮想ＰＬＣ７及び仮想ＰＬＣ８を保護し、ソフトガーディアン２は、仮想ＰＬＣ１、仮想ＰＬＣ２及び仮想ＰＬＣ３を保護し、ソフトガーディアン３は、仮想ＰＬＣ４及び仮想ＰＬＣ５を保護する。実行環境ＲＴＥ（Ｒｕｎ  Ｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ）は、本発明の実施例に係る仮想ＰＬＣのシステムプログラムの１つの実施手段である。
【００７３】
上記図５ａ、図５ｂに基づいて、本発明の実施例に係るサーバ上の１つの物理コアが故障した後の内部配置構造概略図を例示的に示す。図５ｂに示すように、物理コアＡが故障した後、物理コアＡの故障した仮想ＰＬＣ１、仮想ＰＬＣ２、仮想ＰＬＣ３、仮想ＰＬＣ４、仮想ＰＬＣ５、及びソフトガーディアン１を物理コアＢの６つのスロットである仮想化リアルタイムオペレーティングシステムで再構成することができ、図５ｂの物理コアＢに示す配置構造を得ることができる。
【００７４】
上記内容に基づいて、図５ｄは、本発明の実施例に係るソフトウェア定義ＰＬＣの監視及び再構成方法のフローチャートを例示的に示す。ソフトウェア定義ＰＬＣとは、ユーザカスタム方式に基づいて、システムを起動する前に、各マイクロカーネルでどの仮想ＰＬＣが実行されるか、各マイクロカーネル上の対応する仮想ＰＬＣのスケジューリングアルゴリズムを予め決定することにより、マイクロカーネルによりＰＬＣの工業制御を実現する。サーバは、上記実施例１における図１のサーバ１０２ａ、サーバ１０２ｂ及びサーバ１０２ｃのいずれか１つであってよい。図５ｄに示すように、該方法は、以下のステップを含む。
【００７５】
ステップ５０１では、ソフトガーディアンが仮想ＰＬＣの故障を監視すると、サーバクラスターにおける各サーバ上の各物理コアの動作状態及び各物理コア上の各マイクロカーネルの動作状態を取得する。
【００７６】
サーバクラスターに１つまたは複数のソフトガーディアンを設定することができ、サーバにおいて、ソフトガーディアンごとに、当該ソフトガーディアンにより監視する特定仮想ＰＬＣを予め設置することができる。サーバが実行された後、各々ソフトガーディアンが特定仮想ＰＬＣに故障の有無を監視する。ソフトガーディアンが特定仮想ＰＬＣの故障を監視した場合、サーバクラスター中の各サーバ上の各物理コアの動作状態及び各物理コア上の各マイクロカーネルの動作状態を取得する。ここで、各サーバ上の各物理コアの動作状態は、物理コアの占用率であってよい各サーバ上の各物理コアの第１の負荷情報を含む。各マイクロカーネルの動作状態は、マイクロカーネルの占有率であってよい各マイクロカーネルの第２の負荷情報を含む。
【００７７】
上記図５ａを合わせて、ソフトガーディアン１、ソフトガーディアン２及びソフトガーディアン３は、いずれも物理コアＡ及び物理コアＢの動作状態を取得してもよく、物理コアＡ上の１０個のマイクロカーネルの動作状態及び物理コアＢ上の１０個のマイクロカーネルの動作状態を取得してもよい。
【００７８】
ステップ５０２では、ソフトガーディアンは、各サーバ上の各物理コアの動作状態及び各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットカーネルを決定する。
【００７９】
本発明の実施例は、ターゲットマイクロカーネルを決定する以下の実現方式１及び実現方式２の２種類の方式を提供する。
【００８０】
実現方式１では、ソフトガーディアンは、サーバクラスターにおける各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報を取得し、ソフトガーディアンは、各サーバ上の各物理コアの第１の負荷情報及び各物理コア上の各マイクロカーネルの第２の負荷情報に基づいてターゲットマイクロカーネルを決定する。
【００８１】
本発明の実施では、第１の負荷情報が物理コアの占有率であり、第２の負荷情報がマイクロカーネルの占用率であることを例として説明する。ソフトガーディアンは、サーバクラスターにおける各サーバ上の各物理コアの占有率及び各マイクロカーネルの占有率を取得することができる。１つの方式は、占用率が最小である物理コアをターゲット物理コアとして決定して、ターゲット物理コアにおけるマイクロカーネルの占有率が最小であるマイクロカーネルをターゲットマイクロカーネルとして決定するものである。別の方式は、物理コアの占有率が第１の閾値より低い物理コアをターゲット物理コアとし、ターゲット物理コアにおけるマイクロカーネルの占有率が第２の閾値より低いマイクロカーネルをターゲットマイクロカーネルとするものであり、ここで、第１の閾値と第２の閾値が同じでも異なってもよい。決定されたターゲットマイクロカーネルは、１つであっても複数であってもよい。複数であれば、ソフトガーディアンにおいて、いくつかの配置ルール、例えば平均配置ルール、ランダム配置ルール又は各マイクロカーネルの重みに応じて配置することなどを予め記憶することができる。
【００８２】
実現方式２では、ソフトガーディアンが取得した配置情報は、特定仮想ＰＬＣが故障した後に再構成される場合の物理コアの優先順位と各物理コア上のマイクロカーネルの優先順位を指示する特定仮想ＰＬＣの故障時の配置ポリシーを含む。いくつかの実施例では、ソフトガーディアンは、各サーバ上の各物理コアの第１の負荷情報、各物理コア上の各マイクロカーネルの第２の負荷情報、及び特定仮想ＰＬＣの故障時の配置ポリシーに基づいてターゲットマイクロカーネルを決定する。
【００８３】
上記実現方式２に対して、本発明の実施例は、２種の可能な実現方式（方式Ａ及び方式Ｂ）を提供する。
【００８４】
方式Ａでは、物理コアの優先順位に基づいて、優先順位が最高である物理コアを準ターゲット物理コアとして決定する。準ターゲット物理コアの第１の負荷情報が第１の閾値より小さければ、該準ターゲット物理コアをターゲット物理コアとして決定することができ、該準ターゲット物理コアの第１の負荷情報が第１の閾値以であると決定すれば、優先順位が第２位である物理コアを準ターゲット物理コアとして決定することができ、このように類推して、ターゲット物理コアを決定することができる。その後にターゲット物理コアからターゲットマイクロカーネルを決定し、ターゲット物理コア上の優先順位が最高であるマイクロカーネルを準ターゲットマイクロカーネルとして決定する。該準ターゲットマイクロカーネルの第２の負荷情報が第２の閾値より小さければ、該準ターゲットマイクロカーネルがターゲットマイクロカーネルであると決定することができ、該準ターゲットマイクロカーネルの第２の負荷情報が第２の閾値以であれば、優先順位が第２位であるマイクロカーネルを準ターゲットマイクロカーネルとして決定し、優先順位が第２位である準ターゲットマイクロカーネルの第２の負荷情報が第２の閾値より小さいと決定すれば、優先順位が第２位である準ターゲットマイクロカーネルをターゲットマイクロカーネルとして決定する。このように類推し、ターゲット物理コアからターゲットマイクロカーネルを決定する。
【００８５】
方式Ｂでは、各物理コア中の第１の負荷情報が第１の閾値より小さい物理コアを準ターゲット物理コアとして決定して、準ターゲット物理コア中の優先順位が最高である準ターゲット物理コアをターゲット物理コアとして決定する。さらに、ターゲット物理コア上の各マイクロカーネルの第２の負荷情報が第２の閾値より小さい各マイクロカーネルを準ターゲットマイクロカーネルとして決定し、準ターゲットマイクロカーネル中の優先順位が最高である準マイクロカーネルをターゲットマイクロカーネルとして決定する。
【００８６】
１つの可能な実現方式では、ソフトガーディアンは、特定仮想ＰＬＣのターゲットマイクロカーネルの再構成を決定する場合、各サーバ上の各物理コアの動作状態及び各物理コア上の各マイクロカーネルの動作状態に加えて、各マイクロカーネルに仮想化ＰＬＣのシステムプログラムがプリインストールされているかどうかを考慮する。再構成速度を向上するため、仮想化ＰＬＣのシステムプログラムのマイクロカーネルがプリインストールされた負荷及び当該マイクロカーネルの物理コア負荷範囲内の条件下で、仮想の化ＰＬＣがシステムプログラムプリインストールマイクロカーネルをターゲットマイクロカーネルとするのが好ましい。図５ｃは本発明の実施例に係る仮想ＰＬＣ３が故障した後のサーバの内部構造概略図である。図５ｃに示すように、ＲＴＥもガーディアンカーネルもプリインストールされていないマイクロカーネルは、スロットと呼ばれてもよい。マイクロカーネル−Ｃにガーディアンカーネルがプリインストールされており、マイクロカーネル−Ｃにソフトガーディアンを設置することができる。ＲＴＥが設置されたが仮想ＰＬＣを設置されていないマイクロカーネルは、マイクロカーネル−Ｂ、マイクロカーネル−Ｅ及びマイクロカーネル−Ｄである。仮想ＰＬＣ３が故障した後、仮想ＰＬＣ３を実行するサーバは、マイクロカーネル−Ｂ、マイクロカーネル−Ｅ及びマイクロカーネル−Ｄのいずれかにおいて、仮想ＰＬＣ３を再構成することができる。どちらのマイクロカーネルに仮想ＰＬＣ３を設置するかについて、仮想ＰＬＣ３を監視するソフトガーディアン２により決定する。仮想ＰＬＣ３を監視するソフトガーディアン２は、サーバ上の各物理コアの動作状態及び各物理コア条の各マイクロカーネルの動作状態に基づき、仮想ＰＬＣ３を再構成するターゲットマイクロカーネルをマイクロカーネル-Ｂとするように決定する。仮想ＰＬＣ３を実行するサーバが仮想ＰＬＣ３を再構成する場合、再構成命令に従って、マイクロカーネル−Ｂにおいて、マイクロカーネル−ＢにプリインストールされたＲＴＥを実行し、ＲＴＥにおいて、仮想ＰＬＣ３のユーザプログラム編集結果ファイルを実行する。
【００８７】
１つの可能な実現方式では、ターゲットマイクロカーネルは、故障した仮想ＰＬＣが所在するサーバ上の１つのマイクロカーネルであってもよく、故障した仮想ＰＬＣが所在するサーバ上のマイクロカーネルではなくてもよい。
【００８８】
ステップ５０３では、ソフトガーディアンは、ターゲットマイクロカーネルで仮想ＰＬＣを再構成するように指示するための再構成命令をターゲットマイクロカーネルに送信する。
【００８９】
それに応じて、サーバは、ソフトガーディアンで保護される特定仮想ＰＬＣのユーザプログラム編集結果ファイルと特定仮想ＰＬＣを再構成するターゲットマイクロカーネルを含むソフトガーディアンからの再構成命令を受信する。
【００９０】
好ましい実現方式では、ソフトガーディアンが取得した設定情報は、ソフトガーディアンで監視する特定仮想ＰＬＣ、及び特定仮想ＰＬＣのユーザプログラム編集結果ファイルを含む。ここで、設定情報がソフトガーディアンで監視する特定仮想ＰＬＣを示すことにより、いずれのソフトガーディアンについて、当該ソフトガーディアンがどの仮想ＰＬＣを監視するのかを決定することができる。また、いずれの仮想ＰＬＣについて、当該仮想ＰＬＣがどちらのソフトガーディアンで監視されるのかを決定することもできる。設定情報によりソフトガーディアンで監視する特定仮想ＰＬＣを示す１つの方法としては、設定情報がソフトガーディアンと仮想ＰＬＣのマッピング関係を提示することであり、マッピング関係により、いずれのソフトガーディアンで監視する特定仮想ＰＬＣを決定でき、また、いずれの仮想ＰＬＣがどちらのソフトガーディアンにより監視されているのかも決定できる。ソフトガーディアンで監視する特定仮想ＰＬＣは、ソフトガーディアンと同一の物理コアにあるか、又は、ソフトガーディアンで監視する特定ＰＬＣは、ソフトガーディアンと同一の物理コアにない。好ましくは、ソフトガーディアンは、設定情報に基づいて、特定仮想ＰＬＣの動作状態を監視する。ここで、ソフトガーディアンが取得した設定情報は、サーバがクライアントから受信した初期化設定命令であることができる。初期化設定命令は図６に対する記載を参照されたい。
【００９１】
１つの可能な実現方式では、ソフトガーディアンは、ターゲットマイクロカーネルに特定仮想ＰＬＣのユーザプログラム編集結果ファイルを含む再構成命令を送信する。仮想ＰＬＣのユーザプログラムは、産業制御目的を達成するために編集されたプログラムであり、タスクコンテンツ、入出力情報及びタスク命令セットなどを含んでよい。命令セットは、バルブを開き、バルブを閉じ、把持アーム又はプロセスフロー上の制御命令を起動する集合であってよい。タスクは、仮想ＰＬＣロード命令セットのキャリアであり、周期性タスクとトリガ式タスクに分けられ、周期、優先度、トリガ条件などの属性を有する。周期性タスクは、周期ポーリングタスクとも呼ばれ、トリガ式タスクは、イベント駆動式タスクとも呼ばれる。入/出力情報のうちの出力情報は、どのハードウェアからどの情報が収集されるかを指す。出力情報は、どのハードウェアにどの情報が出力されるかを指す。
【００９２】
ステップ５０４では、サーバは、特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいてターゲットカーネルで仮想ＰＬＣを再構成する。
【００９３】
１つの可能な実現方式では、ターゲットマイクロカーネルでターゲットマイクロカーネルにプリインストールされた仮想ＰＬＣのシステムプログラムを起動し、仮想ＰＬＣのシステムプログラムで特定仮想ＰＬＣのユーザプログラム編集結果ファイルを実行する。本願の実施例は、仮想ＰＬＣのシステムプログラムが仮想ＰＬＣのユーザプログラムを読み出し、リソースを初期化し、ユーザプログラムにおけるタスク命令セットを実行すれば、仮想ＰＬＣを成功に配置することを実現できる可能な実現方式を提供する。このように、ユーザプログラムを再編集する必要がなく、ユーザプログラムのうちのいずれか１つの命令セットを直接的に読み出し実行することにより仮想ＰＬＣの再構成を実現することができ、従来技術における冗長バックアップに比べて、仮想ＰＬＣを迅速に再構成することを実現することができる。かつ、サーバはパワーダウンせずに仮想ＰＬＣを再構築することができ、さらに分散制御システム全体における正常な仮想ＰＬＣの正常な動作に影響を与えなくてよい。
【００９４】
上記図５ａ及び図５ｂを合わせて、ターゲットマイクロカーネル上の仮想ＰＬＣとしてプリインストールされたシステムプログラムは、ＲＴＥソフトウェアであってよい。ＲＴＥソフトウェアは、仮想ＰＬＣのユーザプログラムのためにハードウェアリソースにアクセスする機能(例えばメモリ、ＣＰＵなどにアクセス)、入出力機能（例えばセンサーの情報を収集し、制御される部材に情報を出力する）を提供し、ユーザプログラムのためにハードウェア環境及び外部通信環境を遮断し、ユーザプログラムは、ＰＬＣの制御ロジック、出力のコンテンツ、及び入力のコンテンツなどのみに関心があり、どのように情報を外部に出力し、外部情報を収集するか、どのようにハードウェアリソースにアクセスするかなどに関心がない。
【００９５】
従来のＰＬＣ分散制御システムにおけるＰＬＣ冗長バックアップは、１つのＰＬＣに対して、１つ又は複数の冗長なＰＬＣを追加し、ホットバックアップを実現することである。該ＰＬＣが故障した後、そのバックアップＰＬＣに実行することを通知する。該ＰＬＣ及びそのバックアップがいずれも故障した後、分散システムにおけるＰＬＣの間に論理関係があるため、分散システムにおける他のＰＬＣも実行できなくなり、サーバをパワーダウンして新たなＰＬＣで置き換え、ＰＬＣを再配線する必要がある。しかしながら、本発明の実施例における上記ステップ５０１〜ステップ５０４から分かるように、１つの物理コアで複数のマイクロカーネルを仮想化し、各マイクロカーネル（仮想化オペレーティングシステム）で１つの仮想ＰＬＣを実行する。仮想ＰＬＣが故障すれば、他のマイクロカーネルで該ＰＬＣを再構成することができ、各マイクロカーネルの間に互いに影響がないため、仮想ＰＬＣを再構成する場合、サーバをパワーダウンする必要がなく、サーバを再配線する必要もなく、パワーダウンせずに仮想ＰＬＣを再構成することを実現することができるため、システムにおける他のＰＬＣの動作に影響を与えない。
【００９６】
さらに、サーバクラスターにおける各サーバの物理コアに仮想化のリアルタイムオペレーティングシステムを設定し、仮想ＰＬＣを仮想化のリアルタイムオペレーティングシステムに配置するため、各仮想ＰＬＣの制御時のリアルタイム性を向上させることができ、また、ソフトガーディアンを仮想化のリアルタイムオペレーティングシステムに配置することは、システム全体のリアルタイム性を向上させることができる。
【００９７】
上記ステップ５０１の前に、各サーバは、物理コアのマイクロカーネルで仮想ＰＬＣ又はソフトガーディアンを設定することができる。図６は、本願に係るサーバが仮想ＰＬＣ又はガーディアンを設定する方法のフローチャートを例示的に示す。サーバは、上記実施例１における図１のサーバ１０２ａ、サーバ１０２ｂ及びサーバ１０２ｃのいずれか１つであってよい。図６に示すように、方法は、ステップ６０１〜６０６を含む。
【００９８】
ステップ６０１では、クライアントは、初期化設定命令を設定する。初期化設定命令における設定情報は、特定物理コア上の特定マイクロカーネルにソフトガーディアンを設定すること、特定物理コア上の特定マイクロカーネルに仮想ＰＬＣを設定することと、ソフトガーディアンで監視する特定仮想ＰＬＣを示すことに用いられる。ここで、設定情報が特定物理コア上の特定マイクロカーネル上にソフトガーディアンを設定することを示すことにより、いずれのソフトガーディアンがどの物理コアのどのマイクロカーネルに設定されるのかを決定することができる。設定情報が特定物理コア上の特定マイクロカーネル上に仮想ＰＬＣを設定することを示すことにより、いずれの仮想ＰＬＣがどの物理コア上のどのマイクロカーネルに設定されるのかを決定することができる。設定情報がソフトガーディアンで監視する特定仮想ＰＬＣを示すことにより、いずれのソフトガーディアンについて、当該ソフトガーディアンがどの仮想ＰＬＣを監視するのかを決定することができ、また、いずれの仮想ＰＬＣについて、当該仮想ＰＬＣがどのソフトガーディアンにより監視されるのかを決定することもできる。ここで、ソフトガーディアンで監視する特定仮想ＰＬＣがソフトガーディアンと同一の物理コアにあるか、又はソフトガーディアンで監視する特定ＰＬＣがソフトガーディアンと同一の物理コアにない。つまり、仮想ＰＬＣは、当該仮想ＰＬＣを監視するソフトガーディアンと同一の物理コアにあるか、または、同一の物理コアにない。
【００９９】
上記図５ａを合わせて、ソフトガーディアン１とソフトガーディアン1が監視する特定仮想特定仮想ＰＬＣ７と仮想ＰＬＣ８は、同一の物理コアになく、ソフトガーディアン２とソフトガーディアン２が監視する特定仮想特定仮想ＰＬＣ１、仮想ＰＬＣ２、仮想ＰＬＣ３は、同一の物理コアになく、ソフトガーディアン３とソフトガーディアン３が監視する特定仮想ＰＬＣ４と仮想ＰＬＣ５も同一の物理コアにない。図５ｂにおけるソフトガーディアン１とソフトガーディアン1が監視する特定仮想特定仮想ＰＬＣ７と仮想ＰＬＣ８は、同一の物理コアにあり、ソフトガーディアン２と特定仮想特定仮想ＰＬＣ１、仮想ＰＬＣ２、仮想ＰＬＣ３は、同一の物理コアにあり、ソフトガーディアン３とソフトガーディアン３が監視する特定仮想ＰＬＣ４と仮想ＰＬＣ５も同一の物理コアにある。
【０１００】
さらに、ソフトガーディアンとサーバとの間に以下の２種の配置方式を有する。方式１では、ソフトガーディアンは、特定仮想ＰＬＣと同一のサーバに配置でき、すなわち同一のサーバの異なる物理コアの異なるマイクロカーネルに配置することができる。同一のサーバの故障時の負担を低減するために、ソフトガーディアンと特定仮想ＰＬＣを異なるサーバに配置することができる。方式２では、全てのソフトガーディアンは、１つのサーバに単独に設定され、すなわち異なるソフトガーディアンは、同一のサーバの異なる物理コアに設定され、かついずれも特定仮想ＰＬＣと異なるサーバに設定され、かつソフトガーディアンが単独に設定されたサーバは、バックアップされた少なくとも１つのサーバを有する。好ましくは、各方式でのソフトガーディアンは１つ又は複数配置されてよく、あるソフトガーディアンが故障すると、仮想ＰＬＣの動作状態をリアルタイムに保護できないことを防止する。
【０１０１】
１つの可能な実現方式では、初期化設定命令は、ＩＥＣ６１４９９標準及びＩＥＣ６１１３１標準を組み合わせるプログラミング方式で生成されるものである。クライアントは、エディタで編集されたコンテンツをコンパイラにおいて実行環境で実行可能な機械命令セットに変換し、かつサーバクラスターにおける各サーバに送信すると理解されてもよい。
【０１０２】
ステップ６０２では、クライアントは、サーバに初期化設定命令を送信する。それに応じて、サーバは、クライアントからの初期化設定命令を受信する。１つの実施可能の形態では、初期化設定命令における設定情報は、特定マイクロカーネルにおいて仮想ＰＬＣのシステムプログラムを設定することを示し、また、特定マイクロカーネルにおいてガーディアンカーネルを設定することを示す。
【０１０３】
ステップ６０３では、サーバは、初期化設定命令における設定情報に基づいて仮想ＰＬＣ及びソフトガーディアンを設定する。
【０１０４】
ステップ６０４では、サーバは、成功に設定された旨の応答をクライアントに送信する。
【０１０５】
ステップ６０５では、クライアントは、サーバクラスターにおける各サーバから送信され成功に設定された旨の応答を受信した後、各仮想ＰＬＣ及びソフトガーディアンを起動して実行することを確認し、かつサーバクラスターにおける各サーバ上の各物理コアの各マイクロカーネルに起動実行指令を送信する。
【０１０６】
ステップ６０６では、サーバは、各仮想ＰＬＣ及び各ソフトガーディアンを起動して実行する。
【０１０７】
本発明の実施例では、サーバが仮想ＰＬＣ及びソフトガーディアンを起動して実行した後、ソフトガーディアンは、設定情報におけるソフトガーディアンで監視する特定仮想ＰＬＣに基づいて、特定仮想ＰＬＣを保護する。ソフトガーディアンは、物理コアに跨って特定仮想ＰＬＣを保護してもよく、サーバに跨って特定仮想ＰＬＣを保護してもよい。ソフトガーディアンは、各保護される特定仮想ＰＬＣにハートビートメッセージを送信し、特定仮想ＰＬＣが正常な動作状態にあると、ソフトガーディアンにハートビートメッセージの応答をフィードバックし、ソフトガーディアンが予め設定された時間内に特定仮想ＰＬＣのハートビートメッセージ応答を受信しなければ、ソフトガーディアンは、特定仮想ＰＬＣの動作状態が異常状態であると決定し、警報情報を送信することができる。
【０１０８】
いくつかの可能な実施例では、サーバ上の各物理コアの動作状態、及び各物理コア上の各マイクロカーネルの動作状態は、異常状態をさらに含む。ソフトガーディアンは、サーバ上の物理コアが異常状態にあると決定するか、又は物理コア上のマイクロカーネルが異常状態にあると決定すると、ソフトガーディアンは、警報情報を送信することができる。
【０１０９】
本発明の実施例では、異常状態は、物理コア及び／又はマイクロカーネルの故障を含んでもよく、物理コア及び／又はマイクロカーネルの現在の占有率が第３の閾値より大きくてもよく、第３の閾値は、第１の閾値より大きく、第３の閾値は、第２の閾値よりも大きい。ソフトガーディアンは、サーバクラスターにおけるサーバ上の物理コア及び／又はマイクロカーネルが異常状態にあると決定すると、警報を送信する。このように、サービスマンを提示して、故障した物理コア及び／又はマイクロカーネルをタイムリーに修復するか、又は占有率が第３の閾値より大きい物理コア及び／又はマイクロカーネルを特に注目しやすく、さらに仮想ＰＬＣシステム全体のディザスタリカバリ能力を向上させることができる。
【０１１０】
同じ技術的思想に基づいて、本発明の実施例は、上記方法の実施例を実行可能なサーバを提供する。該サーバは、サーバクラスターに適用され、前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定されている。図７は、本発明の実施例に係るソフトガーディアンの構造概略図であり、図７に示すように、該ソフトガーディアン７００は、取得ユニット７０１、処理ユニット７０２及び送信ユニット７０３を含む。
【０１１１】
取得ユニット７０１は、仮想ＰＬＣの故障を監視すると、前記サーバクラスターにおける各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態を取得するために用いられ、処理ユニット７０２は、前記各サーバ上の各物理コアの動作状態及び前記各物理コア上の各マイクロカーネルの動作状態に基づいてターゲットマイクロカーネルを決定するために用いられ、送信ユニット７０３は、前記ターゲットマイクロカーネル上に前記仮想ＰＬＣを再構成するように指示するための再構成命令を前記ターゲットマイクロカーネルに送信するために用いられる。
【０１１２】
好ましくは、前記取得ユニット７０１は、さらに、設定情報を取得するために用いられ、前記処理ユニット７０２は、さらに、前記設定情報に基づいて、前記特定仮想ＰＬＣの動作状態を監視するために用いられる。前記設定情報は、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、また、前記特定仮想ＰＬＣが前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにないことを示す。
【０１１３】
好ましくは、前記取得ユニット７０１は、さらに、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示し、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルをさらに含む設定情報を取得するために用いられ、前記送信ユニット７０３は、具体的には、前記ターゲットマイクロカーネルに前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて前記特定仮想ＰＬＣを再構成するように指示するための、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを含む再構成命令を前記ターゲットマイクロカーネルに送信するために用いられる。
【０１１４】
好ましくは、前記各物理コアの動作状態は、前記各物理コアの第１の負荷情報を含み、前記各マイクロカーネルの動作状態は、前記各マイクロカーネルの第２の負荷情報を含み、前記取得ユニット７０１は、具体的には、前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報を取得するために用いられ、前記処理ユニット７０２は、具体的には、前記各サーバ上の各物理コアの第１の負荷情報及び前記各物理コア上の各マイクロカーネルの第２の負荷情報に基づいてターゲットマイクロカーネルを決定するために用いられる。
【０１１５】
同じ技術的思想に基づいて、本発明の実施例は、サーバクラスターに適用されるサーバを提供し、前記サーバクラスターにおける各サーバは、少なくとも２つのマイクロカーネルが設置された少なくとも１つの物理コアを含み、前記サーバクラスターは、１つ又は複数のソフトガーディアンを含み、前記マイクロカーネルに仮想ＰＬＣ又はソフトガーディアンが設定されている。図８は、本発明の実施例に係るサーバの構造概略図であり、図８に示すように、該サーバ８００は、受信ユニット８０１及び処理ユニット８０２を含む。
【０１１６】
受信ユニット８０１は、前記ソフトガーディアンで保護される特定仮想ＰＬＣのユーザプログラム編集結果ファイルと前記特定仮想ＰＬＣを再構成するターゲットマイクロカーネルを含む前記ソフトガーディアンからの再構成命令を受信するために用いられ、処理ユニット８０２は、前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルに基づいて、前記ターゲットマイクロカーネルで前記仮想ＰＬＣを再構成するために用いられる。
【０１１７】
好ましくは、前記処理ユニット８０２は、具体的には、前記ターゲットマイクロカーネルで前記ターゲットマイクロカーネルにプリインストールされた仮想ＰＬＣのシステムプログラムを起動し、仮想ＰＬＣのシステムプログラムで前記特定仮想ＰＬＣのユーザプログラム編集結果ファイルを実行するために用いられる。
【０１１８】
好ましくは、前記受信ユニット８０１は、さらに、クライアントからの初期化設定命令を受信するために用いられ、前記初期化設定命令における設定情報は、特定物理コア上の特定マイクロカーネルにソフトガーディアンを設定することと、特定物理コア上の特定マイクロカーネルに仮想ＰＬＣを設定することと、前記ソフトガーディアンで監視する特定仮想ＰＬＣを示すことに用いられる。、前記処理ユニット８０２は、さらに、前記初期化設定命令における前記設定情報に基づいて仮想ＰＬＣ及びソフトガーディアンを設定するために用いられる。前記特定仮想ＰＬＣは、前記ソフトガーディアンと同一の物理コアにあるか、又は前記ソフトガーディアンと同一の物理コアにない。
【０１１９】
上記実施例では、全て又は部分的にソフトウェア、ハードウェア、ファームウェア又は他の任意の組み合わせにより実現され、ソフトウェアプログラムで実現されると、全て又は部分的にコンピュータプログラム製品の形態で実現され得る。前記コンピュータプログラム製品は、１つ又は複数の命令を含む。コンピュータに前記コンピュータプログラム命令をロードし実行する場合、本願の実施例に記載のフロー又は機能に基づいて全て又は部分的に生成される。前記コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は他のプログラマブル装置であってもよい。前記命令は、コンピュータ記憶媒体に記憶されるか、又は１つのコンピュータ記憶媒体から別のコンピュータ記憶媒体に送信され、例えば、前記命令は、有線（例えば、同軸ケーブル、光ファイバー、デジタル加入者線（ＤＬＳ））又は無線（例えば、赤外線、無線、マイクロ波など）方式で、１つのウェブサイト、コンピュータ、サーバ又はデータセンターから別のウェブサイト、コンピュータ、サーバ又はデータセンターに送信され得る。前記コンピュータ記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体、又は１つ又は複数の利用可能な媒体で集積されたサーバ、データセンターなどを含むデータ記憶装置であってもよい。前記利用可能な媒体は、磁気媒体（例えば、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク（ＭＯ）など）、光学媒体（例えば、ＣＤ、ＤＶＤ、ＢＤ、ＨＶＤなど）、又は半導体媒体（例えば、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、不揮発性メモリ（ＮＡＮＤ  ＦＬＡＳＨ）、ソリッドステートディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ、ＳＳＤ））などであってもよい。当業者であれば、本願の実施例は、方法、システム、又はコンピュータプログラム製品として提供することができることを理解すべきである。したがって、本願の実施例は、完全なハードウェア実施例、完全なソフトウェア実施例、又はソフトウェアとハードウェアを組み合わせる実施例の形式を用いることができる。また、本願の実施例は、コンピュータ利用可能なプログラムコードを含む１つ又は複数のコンピュータ利用可能な記憶媒体（磁気ディスクメモリ、ＣＤ−ＲＯＭ、光学メモリなどを含むが、これらに限定されない）で実施されたコンピュータプログラム製品の形式を用いることができる。
【０１２０】
本願の実施例は、本願の実施例に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート及び／又はブロック図を参照して説明される。フローチャート及び／又はブロック図の各フロー及び／又はブロック、及び、フローチャート及び／又はブロック図におけるフロー及び／又はブロックの組み合わせは、命令によって実現できることが理解されるべきである。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、埋込みプロセッサ又は他のプログラマブルデータ処理装置のプロセッサに提供してマシンを生成することにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサによって実行される命令が、フローチャートの１つのフロー又は複数のフロー、及び／又はブロック図の１つのブロック又は複数のブロック内で指定された機能を実現するための装置を生成するようにしてもよい。また、これらの命令を、コンピュータ又は他のプログラマブルデータ処理装置を特定の方式で機能するように指令することができるコンピュータ可読記憶装置に記憶することにより、該コンピュータ可読記憶装置に記憶された命令が、フローチャートの１つのフロー又は複数のフロー、及び／又はブロック図の１つのブロック又は複数のブロックで指定された機能を実現する命令装置を含む製造品を生成するようにしてもよい。
【０１２１】
また、これらの命令を、コンピュータ又は他のプログラマブルデータ処理装置にロードして、コンピュータ又は他のプログラマブルデータ処理装置で一連の動作ステップを実行させて、コンピュータ実現プロセスを生成することにより、コンピュータ又は他のプログラマブル装置で実行された命令が、フローチャートの１つのフロー又は複数のフロー、及び／又はブロック図の１つのブロック又は複数のブロック内で指定された機能を実現するためのステップを提供するようにしてもよい。
【０１２２】
明らかに、当業者は、本願の精神及び範囲から逸脱せずに、本願の実施例について様々な修正及び変形を行うことができる。このように、本願の実施例のこれらの修正及び変形が本願の特許請求の範囲及びその同等技術の範囲内に属すれば、本願はこれらの修正及び変形も含むべきである。
【０１２３】
本願は、２０１７年１２月２２日に中国特許局に提出され、出願番号が２０１７１１４０７３２７．０で、発明の名称が「ＰＬＣに基づく分散制御システムのディザスタリカバリ方法及び装置」の中国特許出願の優先権を主張し、その全ての内容は、参照により本願に組み込まれる。
【図１】
2019114263.tif 000003
【図２】
2019114263.tif 000004
【図３】
2019114263.tif 000005
【図４】
2019114263.tif 000006
【図５ａ】
2019114263.tif 000007
【図５ｂ】
2019114263.tif 000008
【図５ｃ】
2019114263.tif 000009
【図５ｄ】
2019114263.tif 000010
【図６】
2019114263.tif 000011
【図７】
2019114263.tif 000012
【図８】
2019114263.tif 000013