以下、実施の形態について、図面を参照して説明する。
(実施の形態1)
図1は、実施の形態1の分散監視制御装置の構成を示す図である。
同図に示すように、複数の制御装置1、複数の監視操作装置3、エンジニアリング装置4は、冗長化された制御ネットワーク5にそれぞれ接続されている。また、I/Oネットワーク6には複数の制御装置1及び複数の入出力制御装置2が接続されている。
制御装置1は、エンジニアリング装置4でプログラミングされた制御ロジックを演算すると共に監視・操作装置3、エンジニアリング装置4、及び入出力制御装置2と通信する。
入出力制御装置2は、プラントを構成する機器を監視・制御するために配置した計測・制御機器に対する入出力制御を行なうと共に制御装置1と通信する。
監視・操作装置3は、運転員が選択・要求した対話画面をプラント状態量を含めて表示・更新すると共に、監視・操作装置3から操作指令を出力する。
制御ネットワーク5は、冗長化されており、エンジニアリング装置4、監視・操作装置3、及び制御装置1を接続する。I/Oネットワーク6は、制御装置1と入出力制御装置2を接続する。
本実施の形態の分散監視制御装置は、入出力制御装置2から入力されたプラント状態量をI/Oネットワーク6、制御装置1、制御ネットワーク5を介して監視・操作装置3に入力する。監視・操作装置3は、運転員が選択・要求した対話画面にプラント状態量を含めて表示・更新する。また、監視・操作装置3からの操作指令を制御装置1を介して入出力制御装置2に制御値として出力する。
図8は、実施の形態1の分散監視制御装置における制御装置と入出力制御装置の具体的な構成を示す図である。
図8に示した制御装置X、Yと入出力制御装置A、Bは、図1に示した制御装置1と入出力制御装置2に対応している。
制御装置1は、それぞれ制御ロジック格納部7、制御データ格納部8、運転制御部10、演算部11、伝送部12及び伝送入出力部13を具備している。
制御ロジック格納部7は、プログラミングされた制御ロジックを格納する。
制御データ格納部8は、制御ロジック格納部7に格納された制御ロジックが参照・更新する入出力値を保持する。
運転制御部10は、伝送入出力部13、演算部11、及び伝送部12の実行を制御する。
演算部11は、制御データ格納部8に格納された制御データの入力値を制御ロジックに従って演算し、演算結果を制御データ格納部8に格納された制御データの出力値に更新する。
伝送部12は、制御データ格納部8に格納された制御データの入出力値を監視・操作装置3や他の制御装置1と通信する。
伝送入出力部13は、入出力制御装置2から受信したプロセス状態量を制御データ格納部8に格納された制御データの入力値に更新すると共に、制御データ格納部8に格納された制御データの出力値を入出力制御装置2に送信する。
入出力制御装置2は、入出力データ格納部9、入出力伝送部14、入力部15及び出力部16を有する。
入出力データ格納部9は、入出力データを保持する。
入出力伝送部14は、制御装置1の伝送入出力部13が送信した出力値を入出力データ格納部9に格納された入出力データに更新すると共に、入出力データ格納部9に格納された入出力データの入力値を送信する。
入力部15は、計測機器から入力したプラント状態量を入出力データ格納部9に格納された入出力データに更新する。
出力部16は、入出力データ格納部9に格納された入出力データに更新された出力値を制御機器に出力する。
図9は、実施の形態1の分散監視制御装置における制御ロジック、制御データ、及び入出力データを示す図である。
本実施の形態の入出力制御装置Aには、計測・制御機器としてA1乃至A4、入出力制御装置BにはB1乃至B4がそれぞれ接続され、A1乃至A2とB1乃至B2は計測機器、A3乃至A4とB3乃至B4は制御機器となっている。
図9(a)は、図8に示した制御装置Xにおける制御ロジック、制御データ、入出力制御装置の送信データを示す図であり、図9(b)は、図8に示した制御装置Yにおける制御ロジック、制御データ、入出力制御装置の送信データを示す図である。
図9(c)は、図8に示した入出力制御装置Aにおける入出力データ、入出力制御装置Aの送信データを示す図であり、図9(d)は、図8に示した入出力制御装置Bにおける入出力データ、入出力制御装置Bの送信データを示す図である。
図9(a)、(b)に示した制御装置Xと制御装置Y、図9(d)、(e)に示した入出力制御装置Aと入出力制御装置Bは、図8に示した制御装置1と入出力制御装置2に対応している。
図9(a)、(b)において、制御ロジックXは、制御装置Xの制御ロジック格納部7に格納された制御ロジックであり、制御ロジックYは、制御装置Yの制御ロジック格納部7に格納された制御ロジックである。
制御データXは、制御装置Xの制御データ格納部8に格納された制御データであり、制御データYは、制御装置Yの制御データ格納部8に格納された制御データである。
図9(c)において、入出力データAは入出力制御装置Aの入出力データ格納部9に格納された入出力データを示し、図9(d)において、入出力データBは入出力制御装置Bの入出力データ格納部9に格納された入出力データを示す。
制御装置Xの制御ロジック格納部7に格納された制御ロジックXは、X1乃至X3を演算入力とし、X4乃至X5を演算出力する。制御ロジックXは、制御データ格納部8に格納された制御データXによりそれぞれが接続する入出力制御装置2のデバイス名と入出力方向が入出力指標として定義されている。
制御装置Yの制御ロジック格納部7に格納された制御ロジックは、Y1乃至Y2を演算入力とし、Y3乃至Y4を演算出力としており、同様に制御データ格納部8に格納された制御データにより接続する入出力制御装置2のデバイス名と入出力指標が定義されている。
入出力制御装置Aの入出力データ格納部9に格納された入出力データAには、計測機器として接続されたA1乃至A2から入力データと、制御機器として接続されたA3乃至A4への出力データがデバイス名、及び入出力方向を示す入出力指標と共に定義されている。
入出力制御装置Bの入出力データ格納部9に格納された入出力データBにも、同様に計測機器として接続されたB1乃至B2から入力データと、制御機器として接続されたB3乃至B4への出力データがデバイス名、及び入出力指標と共に定義されている。
次に、実施の形態1の分散監視制御装置の動作について説明する。
制御装置Xの伝送入出力部13は、制御データXに定義された内容から、入出力制御装置Aからデバイス名A1乃至A2のプラント状態量a1乃至a2を獲得して変数X1乃至X2を更新すると共に、入出力制御装置Bからデバイス名B1のプラント状態量b1を獲得して変数X3を更新する事を認識する。
また、入出力制御装置Aのデバイス名A3に制御量a3を与えるために変数X4をデータ送信すると共に、入出力制御装置Bのデバイス名B3に制御量b3を与えるために変数X5をデータ送信する必要がある事を認識する。
同様に、制御装置Yの伝送入出力部13は、制御データYに定義された内容から、入出力制御装置Aからデバイス名A1のプラント状態量a1を獲得して変数Y1を更新すると共に、入出力制御装置Bからデバイス名B2のプラント状態量b2を獲得して変数Y2を更新する事を認識する。
また、入出力制御装置Aのデバイス名A4に制御量a4を与えるために変数Y3をデータ送信すると共に、入出力制御装置Bのデバイス名B4に制御量b4を与えるために変数Y4をデータ送信する必要がある事を認識する。
本実施形態1の入出力制御装置2には、計測機器から入力したプラント状態量と、制御機器に与える制御量を送受信するために、独立した送信用と受信用のマルチキャストアドレスを設ける。
入出力制御装置Aの入出力伝送部14は、入出力データAに定義されたデバイスA1乃至A2について、デバイス名A1乃至A2と値a1乃至a2(プラント状態量)を対として構成したものをマルチキャスト送信すると共に、入出力データAに定義されたデバイスA3又はA4についてデバイス名と値a3又はa4(制御量)を対として構成したものをマルチキャスト受信する。
入出力制御装置Aの送信データは、入出力制御装置Aからプラント状態量を獲得できる事を認識している制御装置Xと制御装置Yにより受信され、送信データに含まれるデバイスA1乃至A2のプラント状態量a1乃至a2は、制御装置Xの伝送入出力部13により変数X1乃至X2が更新され、制御装置Yの伝送入出力部13により変数Y1が更新される。
同様に、入出力制御装置Bの入出力伝送部14は、入出力データBに定義されたデバイスB1乃至B2について、デバイス名B1乃至B2と値b1乃至b2を対として構成したものをマルチキャスト送信すると共に、入出力データBに定義されたデバイスB3乃至B4についてデバイス名B3又はB4と値b3又はb4を対として構成したものをマルチキャスト受信する。
入出力制御装置Bの送信データは、入出力制御装置Bからプラント状態量を獲得できる事を認識している制御装置Xと制御装置Yにより受信され、送信データに含まれるデバイスB1のプラント状態量b1は、制御装置Xの伝送入出力部13により変数X3が更新され、制御装置Yの伝送入出力部13により変数Y2が更新される。
制御装置Xの伝送入出力部13は、制御データXに定義されたデバイスA3について、デバイス名と変数X4の値a3を対として構成したものを、入出力制御装置Aにマルチキャスト送信すると共に、デバイスB3について、デバイス名と変数X5の値b3を対として構成したものを、入出力制御装置Bにマルチキャスト送信する。
入出力制御装置Aの入出力伝送部14は、受信データを構成するデバイス名によりデバイスA3の値a3を更新し、同入出力制御装置内の出力部がデバイスA3に制御量を出力する。
入出力制御装置Bの入出力伝送部14は、受信データを構成するデバイス名によりデバイスB3の値b3を更新し、同入出力制御装置内の出力部がデバイスB3に制御量を出力する。
同様に、制御装置Yの伝送入出力部13は、制御データYに定義されたデバイスA4について、デバイス名と変数Y3の値a4を対として構成したものを、入出力制御装置Aにマルチキャスト送信すると共に、デバイスB4について、デバイス名と変数Y4の値b4を対として構成したものを、入出力制御装置Bにマルチキャスト送信する。
入出力制御装置Aの入出力伝送部14は、受信データを構成するデバイス名によりデバイスA4の値a4を更新し、同入出力制御装置内の出力部がデバイスA4に制御量を出力する。
入出力制御装置Bの入出力伝送部14は、受信データを構成するデバイス名によりデバイスB4の値b4を更新し、同入出力制御装置内の出力部がデバイスB4に制御量を出力する。
図10及び図11は、運転制御部10による処理を示すフローチャートである。
図10において、制御装置1の起動と共に制御データから演算周期を獲得し(S1)、タイマに実行ハンドラを登録して(S2)、タイマを起動する(S3)。その後、停止条件が成立したか否かの判断が行なわれ(S4)、停止条件が成立したと判断された場合にはタイマを停止して(S5)、処理を終了する。停止条件とは、例えば、制御装置の故障により機能が停止する場合、ユーザから停止が指示された場合などである。なお、同図においてT/Dは時間遅れを示している。
図11は、実行ハンドラの処理を説明するためのフローチャートである。
タイマにより周期的に実行ハンドラが実行される。実行ハンドラでは、伝送部12に入力を指示し(S11)、伝送入出力部13に入力を指示する(S12)ことにより、入力を行なった後、演算部11に演算を指示(S13)する。そして、演算結果の出力を伝送部12及び伝送入出力部13に指示し(S14、S15)、演算結果を出力する。
以上の結果により、制御装置Xと制御装置Y、及び入出力制御装置Aと入出力制御装置Bの通信が成立する。
なお、本実施の形態では、入出力制御装置2からの送信データを計測機器からの入力データに限定しているが、制御機器への出力データを含めることにより、特定の制御装置1が出力する制御量を他の制御装置1でプラント状態量として扱えるようにしても良い。
本実施の形態によれば、制御ロジック格納部7に格納された制御ロジックを演算する制御装置1と、入出力を行う入出力制御装置2がI/Oネットワーク6で分離されているので、演算量が増大した際の制御装置1の増設や、入出力が増大した際の入出力制御装置2の増設により、既存の制御装置1や入出力制御装置2に対する影響は極小化することができる。
また、入出力制御装置2から送信されるプラント状態量は、分散監視制御装置を構成する全ての制御装置1が同時に獲得できるので、制御装置1間で共有するプログラミングを必要する場合と比較して応答性を改善することができる。
また、制御装置1と入出力制御装置2との通信はマルチキャストで行われるため、送信側は受信側の冗長化度合を認識する必要がなく、入出力制御装置2を冗長化した構成にする事も容易になる。
更に、入出力が制御装置1とはネットワーク分離された入出力制御装置2で行なわれるため、図7に示すプラントモデル21aを内臓した模擬装置21において、入出力制御装置を動作模擬する手段を設ける事により、特殊な設備を導入する事なくプラント規模での制御ロジックの動作検証を行うことができ、高品質の分散監視制御装置を提供する事ができる。制御装置1が組込み用途の汎用OSを採用している場合、仮想化技術を用いた試験環境で同様の事が実現できる事は言うまでもない。
(実施の形態2)
次に、実施の形態2に係る分散監視制御装置を図2、図12〜図13を用いて説明する。なお、実施の形態1と同一の構成には同一の符号を付し、重複する説明は省略する。
図1に示した実施の形態1の分散監視制御装置と、図2に示した実施の形態2の分散監視制御装置と異なる点は、制御装置1と入出力制御装置2とを接続するI/Oネットワーク6が冗長されていることにある。
図12は、実施の形態2の分散監視制御装置における制御装置と入出力制御装置の構成を示す図である。なお、図8と同一部分には、同一符号を付して説明し、その説明を省略し、機能が異なる部分について説明する。
図12に示した制御装置X、Yと入出力制御装置X、Yは、図2に示した制御装置1と入出力制御装置2に対応している。
実施の形態2の制御装置1は、図8に示した実施の形態1の制御装置1に比して、それぞれ制御ロジック格納部7、制御データ格納部8、運転制御部10、演算部11、伝送部12及び伝送入出力部13に加えて、受信データ格納部31を有している。
受信データ格納部31は、受信データの最終受信日時を保持する受信データを格納する。
伝送入出力部13は、受信データ格納部31に格納された受信データを用いて入出力制御装置から先着受信したプロセス状態量を制御データの入力値に更新すると共に、制御データ格納部8に格納された制御データの出力値を冗長化されたI/Oネットワーク6を介して入出力制御装置2に送信する。
実施の形態2の入出力制御装置2は、図8に示した実施の形態1の入出力制御装置2に比して、入出力データ格納部9、入出力伝送部14、入力部15及び出力部16に加えて、受信データ格納部31を有している。
受信データ格納部32は、受信データの最終受信日時を保持する受信データを格納する。
入出力伝送部14は、受信データ17を用いて入出力制御装置2の入出力伝送部14が先着受信した出力値を入出力データ格納部32に更新すると共に、入出力データ格納部32の入力値を送信する。
図13(a)は、図12に示した制御装置Xにおける制御ロジック、制御データ、受信データ、入出力制御装置の送信データを示す図であり、図13(b)は、図12に示した制御装置Yにおける制御ロジック、制御データ、受信データ、入出力制御装置の送信データを示す図である。
図13(c)は、図12に示した入出力制御装置Aにおける入出力データ、受信データ、入出力制御装置Aの送信データを示す図であり、図13(d)は、図12に示した入出力制御装置Bにおける入出力データ、受信データ、入出力制御装置Bの送信データを示す図である。
図13(a)、(b)に示した制御装置Xと制御装置Y、図13(d)、(e)に示した入出力制御装置Aと入出力制御装置Bは、図12に示した制御装置1と入出力制御装置2に対応している。
次に、実施の形態2の分散監視制御装置の動作について説明する。
制御装置1と入出力制御装置2とは、冗長化されたI/Oネットワーク6に対して同一内容を各ネットワークに送信する共に、先着した送信データを処理し、後着した送信データは破棄する。先着判定は、送信側が付したタイムスタンプと受信側が保持する最終送信日時との比較により、最終送信日時より新しい送信日時を有する送信データを先着と判定する。
入出力制御装置Aの入出力伝送部14は、入出力データAに定義されたデバイスA1乃至A2について、デバイス名と値を対として構成したものに装置名とタイムスタンプtaを付した送信データを各I/Oネットワーク6にマルチキャスト送信すると共に、入出力データAに定義されたデバイスについてデバイス名と値(制御量)を対として構成したものに装置名とタイムスタンプを付したものを各I/Oネットワーク6からマルチキャスト受信する。入出力制御装置Aの送信データは、入出力制御装置Aからプラント状態量を獲得できる事を認識している制御装置Xと制御装置Yの伝送入出力部により受信され、送信データに含まれる装置名、及びタイムスタンプtaと受信データ17が保持する当該装置からの最終送信日時との比較により先着判定を行う。先着と判断した送信データにより最終送信日時taが更新されると共に、送信データに含まれるデバイスA1乃至A2のプラント状態量は、制御装置Xの伝送入出力部により変数X1乃至X2が更新され、制御装置Yの伝送入出力部により変数Y1が更新される。
同様に、入出力制御装置Bの入出力伝送部14は、入出力データBに定義されたデバイスB1乃至B2について、デバイス名と値を対として構成したものに装置名とタイムスタンプtbを付した送信データを各I/Oネットワーク6にマルチキャスト送信すると共に、入出力データBに定義されたデバイスについてデバイス名と値を対として構成したものに装置名とタイムスタンプを付したものを各I/Oネットワーク6からマルチキャスト受信する。入出力制御装置Bの送信データは、入出力制御装置Bからプラント状態量を獲得できる事を認識している制御装置Xと制御装置Yにより受信され、先着と判断された受信データにより最終送信日時が更新されると共に、受信データに含まれるデバイスB1のプラント状態量により変数X3が更新され、制御装置Yの伝送入出力部により変数Y2が更新される。
制御装置Xの伝送入出力部13は、制御データXに定義されたデバイスA3について、デバイス名と値を対として構成したものに装置名とタイムスタンプtxを付した送信データを各I/Oネットワーク6にマルチキャスト送信すると共に、デバイスB3について、デバイス名と変数X5の値を対として構成したものに装置名とタイムスタンプtxを付した送信データを、各I/Oネットワーク6にマルチキャスト送信する。入出力制御装置Aの入出力伝送部14は、送信データに含まれる装置名、及びタイムスタンプと受信データ格納部32に格納された受信データが保持する当該装置からの最終送信日時txとの比較により先着判定を行う。先着と判断した送信データにより最終送信日時が更新されると共に、送信データを構成するデバイス名によりデバイスA3の値を更新し、同入出力制御装置内の出力部16がデバイスA3に制御量を出力する。入出力制御装置Bの入出力伝送部14は、送信データに含まれる装置名、及びタイムスタンプと受信データ格納部に格納された受信データが保持するい当該装置からの最終送信日時txとの比較により先着判定を行う。先着と判断した送信データにより最終送信日時が更新されると共に、送信データを構成するデバイス名によりデバイスB3の値を更新し、同入出力制御装置内の出力部16がデバイスB3に制御量を出力する。
同様に、制御装置Yの伝送入出力部13は、制御データYに定義されたデバイスA4について、デバイス名と変数Y3の値を対として構成したものに装置名とタイムスタンプtyを付した送信データを各I/Oネットワーク6にマルチキャスト送信すると共に、デバイスB4について、デバイス名と変数Y4の値を対として構成したものに装置名とタイムスタンプtyを付した送信データを各I/Oネットワーク6にマルチキャスト送信する。
入出力制御装置Aの入出力伝送部14は、送信データに含まれる装置名、及びタイムスタンプと受信データ17が保持する最終送信日時tyとの比較により先着判定を行う。先着と判定した送信データにより最終送信日時が更新されると共に、送信データを構成するデバイス名によりデバイスA4の値を更新し、同入出力制御装置内の出力部16がデバイスA4に制御量を出力する。入出力制御装置Bの入出力伝送部14は、送信データに含まれる装置名、及びタイムスタンプと受信データ17が保持する当該装置からの最終送信日時tyとの比較により先着判定を行う。先着と判断した送信データにより最終送信日時が更新されると共に、送信データを構成するデバイス名によりデバイスB4の値を更新し、同入出力制御装置内の出力部16がデバイスB4に制御量を出力する。
したがって、本実施の形態によれば、冗長化されたI/Oネットワーク6での制御装置X、及び制御装置Yと入出力制御装置A、及び入出力制御装置Bの通信が成立する。
また、本実施の形態によれば、制御装置1と入出力制御装置のネットワークインターフェイス、或いはI/Oネットワークで発生した単一故障により、制御装置1と入出力制御装置2の通信が不能になる事はないので、分散監視制御装置としての信頼性を改善することができる。
また、分離・独立している制御ネットワークとI/Oネットワークを図3に示す構成にて共有した構成をとる事により、小規模な分散監視制御装置を構成する上では必要となるハードウェアを抑制でき、設備の設置領域も改善することができる。
(実施の形態3)
次に、実施の形態3に係る分散監視制御装置について説明する。
制御装置1、入出力制御装置2及び監視操作装置3の構成は、図1に示した構成と同様であり、ここではその説明を省略する。
図14は、実施の形態3の分散監視制御装置における制御装置と入出力制御装置の具体的な構成を示す図である。
図14に示した制御装置X1、X2と入出力制御装置Aは、図1に示した制御装置1と入出力制御装置2に対応している。すなわち、実施の形態3においては、制御装置X1、X2が冗長化されている。なお、図8と同一部分には同一符号を付して、その説明を省略する。
構成データ格納部41は、自系制御装置の運転制御情報を保持する構成データを格納する。診断データ格納部42は、他系制御装置の運転制御情報を保持する診断データを格納する。
図15(a)は、制御装置X1の構成データ及び診断データを示す図であり、図15(b)は、制御装置X2の構成データ及び診断データを示す図である。同図に示すように、構成データ及び診断データは、それぞれ制御装置名、最終送信日時、バージョン、運転モードを有する。
運転制御部10は、構成データと診断データとにより冗長化された制御装置1の伝送入出力部13、演算部11、及び伝送部12の実行を制御する。
冗長化した制御装置1の運転制御部10は、常用、待機のいずれで稼動するかを決定するため制御ネットワーク5を介したマルチキャスト通信により調整を行なう。構成データに定義される制御装置1の運転モードは「待機」を初期値とする。本実施の形態における運転制御部10によるマルチキャスト送信は、冗長化構成をとる制御装置1毎にマルチキャストアドレスを設ける。冗長化された制御ネットワークでの送受信は、実施の形態2に示した冗長化されたI/Oネットワークでの送受信と同様の方法で行うので説明は省略する。
図18は、実施の形態3の分散監視制御装置の運転制御部による運転モードの調整を示すタイミングチャートである。
同図に示すように、まず、先行して起動した制御装置X1から運転状態の問合せを行なうモードクエリ(MQ)がマルチキャスト送信される(T1)。次に、応答待ち時間t1内に対となる制御装置X2から応答が得られなかったことを受けて、自系の運転モードを常用としたモードセット(MS)をマルチキャスト送信する(T2)。
以後は、構成データの最終送信日時から規定時間t2が経過する度、最終送信日時を更新する共に、稼動状態の通知としてハートビート(HB)をマルチキャスト送信する(T3、T4)。
後から起動した制御装置X2は、運転状態の問合せを行なうモードクエリ(MQ)をマルチキャスト送信するが(T5)、応答待ち時間t1内に対となる制御装置X1からモードレスポンス(MR)を受信する事により(T6)、常用系の存在を認識して自系の運転モードを待機としたモードセット(MS)を送信する(T7)。
以後は、制御装置X1とX2の双方が定周期t2で稼動状態の通知としてハートビート(HB)を送信し、ハートビート(HB)の受信によって診断データの最終受信日時を更新する。待機系である制御装置X2は、常用系である制御装置X1からのハートビート(HB)を規定時間t2のN(=2)倍以上受信しなかった事で常用系の異常を検出し、運転モードを常用に設定したモードセット(MS)を送信した後、常用系として稼動する。
図19(a)−(d)は冗長化された制御装置1間の通信に使用されるコマンドを示す図である。図15(a)は運転モードクエリ、(b)は運転モードレスポンス、(c)は運転モードセット、(d)はハートビートを示すである。
同図に示すように、運転モードモードクエリは、タイムスタンプ、コマンド「MQ]及び「制御装置名」が定義される。運転モードレスポンスは、タイムスタンプ、コマンド「MR」、制御装置名、バージョン及び運転モードが定義される。運転モードセットは、タイムスタンプ、コマンド「MS」、制御装置名、バージョン及び運転モードが定義される。ハートビートは、タイムスタンプ、コマンド「HB」、制御装置名、バージョン及び運転モードが定義される。
図20は、図18に示した運転モードの調整を行なう運転制御部の動作を示すフローチャートである。
運転制御部10が起動すると、受信ハンドラを起動し(S21)、モードクエリ(MQ)を送信する(S22)。
モードクエリ(MQ)を送信して応答待ち時間t1が経過したか否かが判断され(S23)、応答待ち時間t1が経過したと判断された場合には、診断データを参照して、他系の運転モードが常用か否かを判断する(S24)。
他系が常用であると判断された場合には、常用の他系からの応答を得て制御ロジックと制御データのバージョンが一致するか否かの判断が行なわれる(S25)。バージョンが一致しない場合には処理を終了する。
一方、S24において、他系が常用ではないと判断された場合には、自系の優先度が他系に対して高いか否かの判断を行なう(S26)。本実施の形態では、例えば、優先度は制御装置名で比較した場合の大小関係で表現され、制御装置名X1とX2では、制御装置X1を高優先度と判定する。
S25においてバージョンが一致すると判断された場合、及びS26において自系の優先度が高くないと判断された場合には、構成データの運転モードを待機に設定する(S27)。一方、自系の優先度が高いと判断された場合には、構成データの運転モードを常用に設定する(S28)。
その後、モードセット(MS)を送信し(S29)、制御データから演算周期を獲得し(S30)、タイマに送信ハンドラ、実行ハンドラ、診断ハンドラを登録し(S31)、タイマを起動する(S32)。その後、停止条件が成立したか否かの判断が行なわれ(S33)、停止条件が成立したと判断された場合にはタイマを停止して(S34)、処理を終了する。停止条件とは、例えば、制御装置の故障により機能が停止する場合、ユーザから停止が指示された場合などである。なお、同図においてT/Dは時間遅れを示している。
図21は、受信ハンドラの動作を説明するためのフロチャートである。
S21において受信ハンドラが開始されると、停止条件が成立したか否かの判断が行なわれ(S41)、停止であると判断された場合には処理を終了する。一方、停止条件が成立していないと判断された場合には、コマンドの受信がされたか否かの判断が行なわれる(S42)。
S42においてコマンドの受信がされたと判断された場合には、コマンド(MQ/MR/MS/HB)を受信し(S43)、受信したコマンドが自装置宛か否かの判断が行なわれる(S44)。
次に、コマンドの種別の判断が行なわれ(S45)、コマンドがモードレスポンス(MR)、モードセット(MS)、ハートビート(HB)である場合には、診断データに登録し、受信日時を更新する(S45、S46)。コマンドがモードクエリ(MQ)である場合には、構成データを元にモードレスポンス(MR)を送信する(S47)。
図22は、実行ハンドラの動作を説明するためのフローチャートである。
タイマにより周期的に実行ハンドラが実行される。実行ハンドラでは、伝送部12に入力を指示し(S51)、伝送入出力部13に入力を指示する(S52)ことにより、入力を行なった後、演算部11に演算を指示(S53)する。
次に、自系が常用か否かの判断を行ない(S54)、常用ではないと判断された場合には処理を終了する。一方、自系が常用であると判断された場合には、演算結果の出力を伝送部12及び伝送入出力部13に指示し(S55、S56)、演算結果を出力する。
図23は、送信ハンドラの動作を示すフロチャートである。
同図に示すように、送信に障害があるか否かの判断を行い(S61)、障害がないと判断された場合には処理を終了し、障害があると判断された場合にはハートビート(HB)を送信する。
図24は、診断ハンドラの動作を示すフロチャートである。
同図に示すように、S71において自系が待機か否かの判断が行なわれる。S71において待機ではないと判断された場合には処理を終了する。一方、S71において、自系が待機であると判断された場合には、ハートビートを規定時間t2のN倍(本実施の形態では2倍)の間、受信していないか否かの判断が行なわれる(S72)。
S72において、受信していないと判断された場合には処理を終了する。一方、S72において、受信していると判断した場合には、診断データの運転モードを停止に変更し(S73)、構成データの運転モードを常用に変更し(S74)、モードセット(MS)を送信し(S75)、処理を終了する。
本実施の形態では、伝送部12と入出力制御装置2からの入力、制御ロジックによる演算、運転モードが常用である場合の伝送装置と入出力制御装置2への出力は実行ハンドラ、ハートビート(HB)の送信は送信ハンドラ、ハートビート(HB)の最終受信日時と現在日時の偏差による常用系の異常検出とモードセット(MS)による通知を含む常用への運転モード遷移は診断ハンドラで行なう構成としている。
運転モードは、応答待ち時間t1内に応答を得られなかった場合と、運転モードの初期値である待機の応答を得て自系の実行優先度が高い場合において常用とし、常用の応答を得て制御ロジックと制御データのバージョンが一致した場合において待機を選択する。
本実施の形態によれば、制御装置X1と制御装置X2による冗長化が成立する。本実施の形態では制御ネットワークを用いて運転制御を行っているが、I/Oネットワークを利用しても良い。
また、本実施の形態では二重化構成で説明しているが、図16に示す三重化構成では複数の制御装置1が登録された図17に示す診断データを参照し、図24に示した診断ハンドラのフローチャートに優先度判定を加えればよい。
図25は、制御装置を三重化した構成を採用した実施の形態3の分散監視制御装置の動作を説明するためのフロチャートである。
同図に示すように、S81において自系が待機か否かの判断が行なわれる。S81において待機ではないと判断された場合には処理を終了する。一方、S81において、自系が待機であると判断された場合には、待機装置名を初期化し(S82)、ハートビートを規定時間t2のN倍(本実施の形態では2倍)の間、受信していないか否かの判断が行なわれる(S83)。
S83において、受信していないと判断された場合にはS85へ移る。一方、S83において、受信していると判断した場合には、診断データの運転モードを停止に変更し(S84)、他系が待機か否かの判断が行なわれる(S85)。
S85において、他系が待機であると判断された場合には、他系の中で優先度が高いか否かの判断が行なわれる(S86)。優先度が高いと判断された場合には待機装置名を更新する(S87)。S86において、他系の中で優先度が低いと判断された場合、及びS87において待機装置名が更新された後に他系について全て優先度の判断が完了したか否かの判断が行なわれる(S88)。
S88において、他系について全て優先度の判断が完了していないと判断された場合には、S83の処理に戻る。一方、S88において他系について全て優先度の判断が完了したと判断された場合には、全部の装置が常用ではない否かの判断が行なわれる(S89)。
S89において、全部の装置が常用ではないと判断された場合には、自系が最高優先度であるか否かの判断が行なわれる(S90)。S90において、自系が最高優先度であると判断された場合には、構成データの運転モードを常用に変更し(S91)、モードセット(MS)を送信し(S92)、処理を終了する。S89において、常用の装置がある場合、S89において自系が最高優先度ではないと判断された場合には、処理を終了する。
従来の制御装置において、制御装置間を接続する特殊なインターフェイスを用いて行なわれた冗長化は、本実施の形態においては、制御ネットワーク5を介して行なわれるので任意の冗長度を得ることができる。
本実施の形態によれば、冗長化された制御装置1で発生した単一故障により、当該制御装置による制御機能が失われることはないので、分散監視制御装置としての信頼性を改善することができる。
(実施の形態4)
次に、本実施の形態4の分散監視制御装置について説明する。
本実施の形態は、従来の分散監視制御装置の制御装置と入出力装置を用いてプログラムされた制御ロジックと制御データを使用することができる仮想制御装置を設けたものである。
本実施の形態4に係る分散監視制御装置を図4、及び図26乃至図28を用いて説明する。なお上述の実施の形態と同一の構成には同一の符号を付し、重複する説明は省略する。
図4に示した実施の形態4の分散監視制御装置は、エンジニアリング装置4でプログラミングされた図39が示す構成の従来の制御ロジックを演算すると共に監視・操作装置3、エンジニアリング装置4及び入出力制御装置2と通信する制御装置を具備する。
図26に示す制御装置1は、図4において仮想制御装置20を含む制御装置1に対応しており、仮想制御装置20は図7に示した入出力装置を用いて実現した制御装置に対応する。図39に示した入出力装置を用いて実現した制御装置を構成していた入力部と出力部は無効化し、伝送入出力部に代替するので図には示していない。
本実施の形態では、従来の単一の入出力装置を用いて構築された制御ロジックと制御データを用いて伝送入出力部13が入出力制御装置2と通信するために必要となる入出力制御装置名を図27に示す構成データから与える。
制御装置Xの伝送入出力部13は、仮想制御装置X1の入出力対象が入出力制御装置Aである事を認識でき、制御装置Yの伝送入出力部は、仮想制御装置Y1の入出力対象が入出力制御装置Bである事を認識できる。
図28(a)−(d)に示した仮想制御装置X1と仮想制御装置Y1、入出力制御装置Aと入出力制御装置Bは図26に示した仮想制御装置X1、Y1と入出力制御装置2に対応している。図28(a)−(d)では、仮想制御装置X1、Y1に格納された制御ロジックと制御データ、及び入出力制御装置A、Bに格納された入出力データを示している。
仮想制御装置X1の制御ロジックは、X11乃至X12を演算入力とし、X13乃至X14を演算出力としており、構成データと制御データX1により接続する入出力制御装置のデバイス名と入出力方向が入出力指標として定義されている。仮想制御装置Y1の制御ロジックは、Y1乃至Y2を演算入力とし、Y3乃至Y4を演算出力としており、同様に制御データY1により接続する入出力制御装置のデバイス名と入出力指標が定義されている。
入出力制御装置Aの入出力データには、計測機器として接続されたA1乃至A2から入力データと、制御機器として接続されたA3乃至A4への出力データがデバイス名、及び入出力方向を示す入出力指標と共に定義されている。入出力制御装置Bの入出力データにも、同様に計測機器として接続されたB1乃至B2から入力データと、制御機器として接続されたB3乃至B4への出力データがデバイス名、及び入出力指標と共に定義されている。
このように構成された本実施の形態において、制御装置Xの伝送入出力部13は、構成データと制御データX1に定義された内容から、入出力制御装置Aからデバイス名A1乃至A2のプラント状態量を獲得して仮想制御装置X1の変数X11乃至X12を更新する事を認識する。また、入出力制御装置Aのデバイス名A3乃至A4に制御量を与えるために変数X13乃至X14の演算結果をデータ送信する必要がある事を認識する。
同様に、制御装置Yの伝送入出力部13は、構成データと制御データY1に定義された内容から、入出力制御装置Bからデバイス名B1乃至B2のプラント状態量を獲得して仮想制御装置Y1の変数Y11乃至Y12を更新する事を認識する。また、入出力制御装置Bのデバイス名B3乃至B4に制御量を与えるために変数Y13乃至Y14をデータ送信する必要がある事を認識する。
入出力制御装置Aの入出力伝送部14は、入出力データAに定義されたデバイスA1乃至A2について、デバイス名A1乃至A2と値(プラント状態量)を対として構成したものをマルチキャスト送信すると共に、入出力データAに定義されたデバイスA3又はA4についてデバイス名と値(制御量)を対として構成したものをマルチキャスト受信する。入出力制御装置Aの送信データは、入出力制御装置Aからプラント状態量を獲得できる事を認識している制御装置Xの伝送入出力部により受信され、送信データに含まれるデバイスA1乃至A2のプラント状態量で仮想制御装置X1の変数X11乃至X12が更新される。
同様に、入出力制御装置Bの入出力伝送部14は、入出力データBに定義されたデバイスB1乃至B2について、デバイス名と値を対として構成したものをマルチキャスト送信すると共に、入出力データBに定義されたデバイスB3乃至B4についてデバイス名と値を対として構成したものをマルチキャスト受信する。入出力制御装置Bの送信データは、入出力制御装置Bからプラント状態量を獲得できる事を認識している制御装置Yの伝送入出力部により受信され、送信データに含まれるデバイスB1乃至B2のプラント状態量で仮想制御装置Y1の変数Y11乃至Y12が更新される。
制御装置Xの伝送入出力部13は、制御データX1に定義されたデバイスA3乃至A4について、デバイス名と値を対として構成したものを、入出力制御装置Aにマルチキャスト送信する。入出力制御装置Aの入出力伝送部14は、受信データを構成するデバイス名によりデバイスA3乃至A4の値を更新し、同入出力制御装置内の出力部がデバイスA3乃至A4に制御量を出力する。
同様に、制御装置Yの伝送入出力部13は、制御データY1に定義されたデバイスB3乃至B4について、デバイス名と値を対として構成したものを、入出力制御装置Bにマルチキャスト送信する。入出力制御装置Bの入出力伝送部14は、受信データを構成するデバイス名によりデバイスB3乃至B4の値を更新し、同入出力制御装置内の出力部がデバイスB3乃至B4に制御量を出力する。
以上の結果により、制御装置Xと入出力制御装置A、制御装置Yと入出力制御装置Bの通信が成立する。
本実施の形態によれば、従来の制御装置と入出力装置を用いてプログラミングされた制御ロジックと制御データを改変する必要がないので、システム更新に際して高品質の分散監視制御装置を提供することができる。
(実施の形態5)
次に、実施の形態5に係る分散監視制御装置について説明する。
実施の形態5と実施の形態4と異なる点は、1つの制御装置に複数の仮想制御装置を設けたことにある。
本実施の形態5に係る分散監視制御装置について、図5、及び図29乃至図32を用いて説明する。なお、上述の実施の形態と同一の構成には同一の符号を付し、重複する説明は省略する。
図5に示した実施の形態5の分散監視制御装置は、エンジニアリング装置4でプログラミングされた図39が示す構成の制御ロジックを演算すると共に監視・操作装置3、エンジニアリング装置、及び入出力制御装置と通信する制御装置を具備する。
図29に示す制御装置1は、図5において仮想制御装置20を複数含む制御装置に対応しており、仮想制御装置20は図7に示した入出力装置を用いて実現した制御装置に対応する。図30は、制御装置の構成データを示す図である。同図に示すように、構成データは制御装置名と、入出力制御装置名とで構成される。
構成データにより制御装置Xの伝送入出力部13は、仮想制御装置X1の入出力対象が入出力制御装置Aである事、仮想制御装置X2の入出力対象が入出力制御装置Bである事を認識できる。また、運転制御部も仮想制御装置X1と仮想制御装置X2の存在を認識できる。
図31(a)−(d)に示した仮想制御装置X1と仮想制御装置X2、入出力制御装置Aと入出力制御装置Bは図29に示した仮想制御装置X1、X2と入出力制御装置A、Bに対応している。図31(a)−(d)は、仮想制御装置X1、X2に格納された制御ロジックと制御データ、及び入出力制御装置A、Bに格納された入出力データを示している。
仮想制御装置X1の制御ロジックは、X11乃至X12を演算入力とし、X13乃至X14を演算出力としており、制御データX1により接続する入出力制御装置のデバイス名と入出力方向が入出力指標として定義されている。仮想制御装置X2の制御ロジックは、X21乃至X22を演算入力とし、X23乃至X24を演算出力としており、同様に制御データX2により接続する入出力制御装置のデバイス名と入出力指標が定義されている。
入出力制御装置Aの入出力データには、計測機器として接続されたA1乃至A2から入力データと、制御機器として接続されたA3乃至A4への出力データがデバイス名、及び入出力方向を示す入出力指標と共に定義されている。入出力制御装置Bの入出力データにも、同様に計測機器として接続されたB1乃至B2から入力データと、制御機器として接続されたB3乃至B4への出力データがデバイス名、及び入出力指標と共に定義されている。
このように構成された本実施の形態において、制御装置Xの伝送入出力部13は、構成データと制御データX1に定義された内容から、入出力制御装置Aからデバイス名A1乃至A2のプラント状態量を獲得して仮想制御装置X1の変数X11乃至X12を更新する事を認識する。また、入出力制御装置Aのデバイス名A3乃至A4に制御量を与えるために変数X13乃至X14の演算結果をデータ送信する必要がある事を認識する。
同様に、構成データと制御データX2に定義された内容から、入出力制御装置Bからデバイス名B1乃至B2のプラント状態量を獲得して仮想制御装置X2の変数X211乃至X22を更新する事を認識する。また、入出力制御装置Bのデバイス名B3乃至B4に制御量を与えるために変数X23乃至X24をデータ送信する必要がある事を認識する。
入出力制御装置Aの入出力伝送部14は、入出力データAに定義されたデバイスA1乃至A2について、デバイス名A1乃至A2と値(プラント状態量)を対として構成したものをマルチキャスト送信すると共に、入出力データAに定義されたデバイスA3又はA4についてデバイス名と値(制御量)を対として構成したものをマルチキャスト受信する。
入出力制御装置Aの送信データは、入出力制御装置Aからプラント状態量を獲得できる事を認識している制御装置Xの伝送入出力部13により受信され、送信データに含まれるデバイスA1乃至A2のプラント状態量で仮想制御装置X1の変数X11乃至X12が更新される。
同様に、入出力制御装置Bの入出力伝送部14は、入出力データBに定義されたデバイスB1乃至B2について、デバイス名と値を対として構成したものをマルチキャスト送信すると共に、入出力データBに定義されたデバイスB3乃至B4についてデバイス名と値を対として構成したものをマルチキャスト受信する。入出力制御装置Bの送信データは、入出力制御装置Bからプラント状態量を獲得できる事を認識している制御装置Xの伝送入出力部13により受信され、送信データに含まれるデバイスB1乃至B2のプラント状態量で仮想制御装置X2の変数X21乃至X22が更新される。
制御装置Xの伝送入出力部13は、制御データX1に定義されたデバイスA3乃至A4について、デバイス名と値を対として構成したものを、入出力制御装置Aにマルチキャスト送信すると共に、制御データX2に定義されたデバイスB3乃至B4について、デバイス名と値を対として構成したものを、入出力制御装置Bにマルチキャスト送信する。入出力制御装置Aの入出力伝送部14は、受信データを構成するデバイス名によりデバイスA3乃至A4の値を更新し、同入出力制御装置内の出力部がデバイスA3乃至A4に制御量を出力する。
同様に、入出力制御装置Bの入出力伝送部14は、受信データを構成するデバイス名によりデバイスB3乃至B4の値を更新し、同入出力制御装置内の出力部がデバイスB3乃至B4に制御量を出力する。
図32は、運転制御部10による処理を示すフローチャートである。
図32において、制御装置1の起動と共に制御データから演算周期を獲得し(S101)、タイマに実行ハンドラを登録して(S102)、タイマを起動する(S103)。その後、全仮想制御装置についてタイマを起動したか否かの判断が行なわれる(S104)。S104において、全仮想制御装置についてタイマを起動していないと判断された場合にはS101の処理に戻る。
一方、S104において、全仮想制御装置についてタイマを起動していると判断された場合には、停止条件が成立したか否かの判断が行なわれ(S105)、停止条件が成立したと判断された場合には、タイマを停止して(S106)、全仮想制御装置についてタイマを停止したか否かの判断を行なう(S107)。停止条件とは、例えば、制御装置の故障により機能が停止する場合、ユーザから停止が指示された場合などである。なお、同図においてT/Dは時間遅れを示している。
S107において全仮想制御装置についてタイマを停止したと判断された場合には処理を終了し、全仮想制御装置についてタイマを停止していないと判断された場合にはS106の処理に戻る。なお、実効ハンドラの処理については、図11に示した動作と同様であるので、ここではその説明を省略する。
以上の結果により、制御装置X、入出力制御装置A、及び入出力制御装置Bの通信が成立する。
本実施の形態5によれば、従来の制御装置と入出力装置を用いてプログラミングされた制御ロジックと制御データを、制御装置1の演算能力に合わせて複数実行できるので、システム更新に際して制御装置を削減することができる。
(実施の形態6)
次に、本実施の形態6の分散監視制御装置について説明する。
本実施の形態は、制御装置に複数の仮想制御装置を設けるとともに、制御装置を冗長化したものである。
本実施の形態6に係る分散監視制御装置について、図6、及び図33乃至図38を用いて説明する。なお、上述の実施の形態と同一の構成には同一の符号を付し、重複する説明は省略する。
図6に示した実施の形態6の分散監視制御装置は、エンジニアリング装置でプログラミングされた図39が示す構成の制御ロジックを演算すると共に監視・操作装置3、エンジニアリング装置、及び入出力制御装置と通信する制御装置を具備する。
図33に示す制御装置1は、図6において仮想制御装置20を複数含む制御装置に対応しており、仮想制御装置20は図7に示した入出力装置を用いて実現した制御装置に対応する。
図34(a)、(b)は、制御装置のX、Yの構成データ及び診断データを示す図である。同図に示すように、構成データ及び診断データは、制御装置名、入出力制御装置名、バージョン、運転モードで構成されている。
構成データにより制御装置の伝送入出力部13は、仮想制御装置X1、X2の入出力対象が入出力制御装置Aである事、制御装置Yの仮想制御装置X1、X2の入出力対象が入出力制御装置Aである事を認識できる。また、運転制御部10も仮想制御装置X1と仮想制御装置X2の存在を認識できる。
図35(a)−(d)に示した仮想制御装置X1と仮想制御装置X2、入出力制御装置Aと入出力制御装置Bは図33に示した仮想制御装置X1、X2と入出力制御装置A、Bに対応している。図35(a)−(d)は、仮想制御装置に格納された制御ロジックと制御データ、及び入出力制御装置A、Bに格納された入出力データを示している。
仮想制御装置X1の制御ロジックは、X11乃至X12を演算入力とし、X13乃至X14を演算出力としており、制御データX1により接続する入出力制御装置のデバイス名と入出力方向が入出力指標として定義されている。仮想制御装置X2の制御ロジックは、X21乃至X22を演算入力とし、X23乃至X24を演算出力としており、同様に制御データX2により接続する入出力制御装置のデバイス名と入出力指標が定義されている。
入出力制御装置Aの入出力伝送部14は、入出力データAに定義されたデバイスA1乃至A2について、デバイス名と値を対として構成したものに装置名とタイムスタンプtaを付した送信データを各I/Oネットワークにマルチキャスト送信すると共に、入出力データAに定義されたデバイスについてデバイス名と値(制御量)を対として構成したものに装置名とタイムスタンプを付したものを各I/Oネットワークからマルチキャスト受信する。入出力制御装置Aの送信データは、入出力制御装置Aからプラント状態量を獲得できる事を認識している制御装置Xと制御装置Yの伝送入出力部13により受信され、送信データに含まれる装置名、及びタイムスタンプtaと受信データが保持する当該装置からの最終送信日時との比較により先着判定を行う。先着と判断した送信データにより最終送信日時taが更新されると共に、送信データに含まれるデバイスA1乃至A2のプラント状態量は、制御装置Xの伝送入出力部13により仮想制御装置X1の変数X11乃至X12が更新され、制御装置Yの伝送入出力部13により仮想制御装置X1の変数X11乃至X12が更新される。
同様に、入出力制御装置Bの入出力伝送部14は、入出力データBに定義されたデバイスB1乃至B2について、デバイス名と値を対として構成したものに装置名とタイムスタンプtbを付した送信データを各I/Oネットワークにマルチキャスト送信すると共に、入出力データBに定義されたデバイスについてデバイス名と値を対として構成したものに装置名とタイムスタンプを付したものを各I/Oネットワークからマルチキャスト受信する。入出力制御装置Bの送信データは、入出力制御装置Bからプラント状態量を獲得できる事を認識している制御装置Xと制御装置Yにより受信され、先着と判断された受信データにより最終送信日時が更新されると共に、受信データに含まれるデバイスB1乃至B2のプラント状態量により仮想制御装置X2の変数X21乃至X22が更新され、制御装置Yの伝送入出力部13により仮想制御装置X2の変数X21乃至X22が更新される。
常用系である制御装置Xの伝送入出力部13は、仮想制御装置X1の制御データX1に定義されたデバイスA3乃至A4について、デバイス名と値を対として構成したものに装置名とタイムスタンプtx1を付した送信データを各I/Oネットワークにマルチキャスト送信する。入出力制御装置Aの入出力伝送部14は、送信データに含まれる装置名、及びタイムスタンプと受信データが保持するい当該装置からの最終送信日時tx1との比較により先着判定を行う。先着と判断した送信データにより最終送信日時が更新されると共に、送信データを構成するデバイス名によりデバイスA3乃至A4の値を更新し、同入出力制御装置内の出力部がデバイスA3乃至A4に制御量を出力する。
同様に、制御装置Xの伝送入出力部13は、仮想制御装置X2の制御データX2に定義されたデバイスB3乃至B4について、デバイス名と値を対として構成したものに装置名とタイムスタンプtx2を付した送信データを各I/Oネットワークにマルチキャスト送信する。入出力制御装置Bの入出力伝送部14は、送信データに含まれる装置名、及びタイムスタンプと受信データが保持する最終送信日時tx2との比較により先着判定を行う。先着と判定した送信データにより最終送信日時が更新されると共に、送信データを構成するデバイス名によりデバイスB3乃至B4の値を更新し、同入出力制御装置内の出力部がデバイスB3乃至B4に制御量を出力する。
図36は、運転制御部による運転モードの調整を示すタイミングチャートである。
同図に示すように、まず、先行して起動した制御装置Xから運転状態の問合せを行なうモードクエリ(MQ)がマルチキャスト送信される(T11)。次に、応答待ち時間t1内に対となる制御装置Yから応答が得られなかったことを受けて、仮想制御装置の運転モードを常用としたモードセット(MS)をマルチキャスト送信する(T12)。
以後は、構成データの最終送信日時から規定時間t2が経過する度、最終送信日時を更新する共に、稼動状態の通知としてハートビート(HB)をマルチキャスト送信する(T13、T14)。
後から起動した制御装置Yは運転状態の問合せを行なうモードクエリ(MQ)をマルチキャスト送信するが(T15)、応答待ち時間t1内に対となる制御装置Xからモードレスポンス(MR)を受信する事により(T16)、常用系の存在を認識して仮想制御装置の運転モードを待機としたモードセット(T17)を送信する。
以後は、制御装置XとYの双方が定周期t2で稼動状態の通知としてハートビート(HB)を送信し、ハートビート(HB)の受信によって診断データの最終受信日時を更新する。待機系である制御装置Yは、常用系である制御装置Xからのハートビート(HB)を規定時間t2のN(=2)倍以上受信しなかった事で常用系の異常を検出し、運転モードを常用に設定したモードセット(MS)を送信した後、常用系として稼動する。
図37は、冗長化された制御装置1間の通信に使用されるコマンドを示す図である。
図37(a)は運転モードクエリ、(b)は運転モードレスポンス、(c)は運転モードセット、(d)はハートビートを示すである。
同図に示すように、運転モードモードクエリは、タイムスタンプ、コマンド「MQ]及び「制御装置名」が定義される。運転モードレスポンスは、タイムスタンプ、コマンド「MR」、制御装置名、バージョン及び運転モードが定義される。運転モードセットは、タイムスタンプ、コマンド「MS」、制御装置名、バージョン及び運転モードが定義される。ハートビートは、タイムスタンプ、コマンド「HB」、制御装置名、バージョン及び運転モードが定義される。
図38は、図36に示した運転モードの調整を行なう運転状態制御部のフローチャートである。なお、図20と同一部分には説明を省略し、ここでは異なる部分についてのみ述べる。また、受信ハンドラについては図21、実効ハンドラについては図22、送信ハンドラについては図23及び診断ハンドラについては図24に示したフロチャートの動作と同様である。
図38に示すように、S27において構成データの運転モードを待機に設定し、又は自系の優先度が高いと判断された場合に、構成データの運転モードを常用に設定した後、全装置について完了したか否かの判断が行なわれる(S28−1)。S28−1において、全装置について完了したと判断された場合には、S29の処理に移り、完了していない場合には、S24の処理に戻る。
また、S32において、タイマを起動した後、全装置についてタイマの起動が完了したか否かの判断が行なわれる(S32−1)。S32−1において、全装置についてタイマの起動が完了したと判断された場合にはS33の処理に移る。完了していないと判断された場合には、S30の処理に戻る。
さらに、S34において、タイマを停止した後、全装置についてタイマを停止したか否かの判断が行なわれる(S34−1)。S34−1において、全装置についてタイマを停止したと判断された場合には、処理を終了する。全装置についてタイマを停止していないと判断された場合には、S34の処理に戻る。
以上の結果により、仮想制御装置X1と仮想制御装置X2を含む制御装置Xと、仮想制御装置X1と仮想制御装置X2を含む制御装置Yは冗長化され、冗長化したI/Oネットワークを介した入出力制御装置A、及び入出力制御装置Bとの通信が成立する。
本実施の形態によれば、制御装置やネットワークの冗長化が求められる場合においても、従来の制御装置と入出力装置を用いてプログラミングされた制御ロジックと制御データを、制御装置の演算能力に合わせて複数実行できるので、システム更新に際して制御装置を削減することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。