説明

冗長コントローラ

【課題】二重化構造を備えることでプロセスデータが監視不能となることを防止しながら、通信負荷の増大を防止することが可能な冗長コントローラ装置を提供する。
【解決手段】第1ノード(100P)と第2ノード(100S)とを備えた二重化された冗長コントローラ(10)であって、第1ノードおよび第2ノードのうち、いずれか一方をアクティブ状態とし、他方を非アクティブ状態とする手段と、アクティブ状態となっているノードにおいてプロセスデータを収集し、収集したプロセスデータを非アクティブ状態となっているノードに転送する手段と、非アクティブ状態となっているノードにおいて、プロセスデータの収集を禁止し、アクティブ状態となっているノードから転送されたプロセスデータを更新する手段と、アクティブ状態となっているノードにおいて所定の条件に達した場合には、アクティブ状態となっているノードを非アクティブ状態に切り換え、非アクティブ状態となっているノードをアクティブ状態に切り換える手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセスデータを取り扱うコントローラに係り、特に二重化構造を有する冗長コントローラに関する。
【背景技術】
【0002】
生産設備において収集されるプロセスデータ(計測データ及び制御データ)を参照するための標準インターフェース仕様としてOPC(OLE for Process Control)規格に準拠するインターフェースを用いるプロセス管理システムが開発されている。一つのOPCサーバは複数のOPCクライアントに接続可能であり、一つのOPCクライアントは1つまたは複数のローカルバスに接続されたOPCサーバと通信可能となっている。
【0003】
OPC規格に準拠したインターフェースを用いたプロセス制御システムとして、例えば、特開2005−50127号公報には、OPCサーバに相当する2台の参照先サーバと通信し、一方の参照先サーバを制御側に他方を待機側に切り換え可能に構成され、制御側の参照先サーバのアクセスデータをOPCクライアントに渡す仮想サーバを有するプロセスデータ収集装置が開示されている(特許文献1)。
【0004】
特許文献1に記載の発明は、2台の参照先サーバに対して並行してOPCクライアントがプロセスデータを収集するためにアクセスすることによってデータ収集のための通信負荷が発生するという問題点を解消することを課題している(同書段落0014)。そのため、引用文献1記載のプロセスデータ収集装置は、制御側の参照先サーバをアクティブとし、待機側の参照先サーバをインアクティブとすることによって、プロセスデータアクセスのための通信負荷を最小限にすることを可能としている(同書0015−0016)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−50127号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしならが、特許文献1に記載されているようなOPCクライアント(コントローラ)はオペレータが常時監視可能な環境に設置されていない場合が多く、万一故障が発生するとプロセスデータの監視が不可能になるという問題があった。
【0007】
また、このような問題を解決するために、同一の監視動作を行うコントローラを2台用いて二重化した場合、それぞれのコントローラからOPCサーバ等へのアクセスが重複してOPCサーバにおける通信負荷が大きくなるという新たな問題が生じる。
【0008】
そこで、本発明は、このような問題に対処するために、二重化構造を備えることでプロセスデータが監視不能となることを防止しながら、通信負荷の増大を防止することが可能な冗長コントローラ装置を提供することを課題の一つとしている。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の冗長コントローラは、(1)第1ノードと第2ノードとを備えた二重化された冗長コントローラであって、前記第1ノードおよび前記第2ノードのうち、いずれか一方をアクティブ状態とし、他方を非アクティブ状態とする手段と、前記アクティブ状態となっているノードにおいてプロセスデータを収集し、収集した前記プロセスデータを前記非アクティブ状態となっているノードに転送する手段と、前記非アクティブ状態となっているノードにおいて、前記プロセスデータの収集を禁止し、前記アクティブ状態となっているノードから転送された前記プロセスデータを更新する手段と、前記アクティブ状態となっているノードにおいて所定の条件に達した場合には、前記アクティブ状態となっているノードを非アクティブ状態に切り換え、前記非アクティブ状態となっているノードをアクティブ状態に切り換える手段と、を備える。
【0010】
(2)所定の条件は、前記アクティブ状態となっているノードにおいて動作不全したことを推測可能な条件に達したこと、または、上位の機器監視装置から前記アクティブ状態とするノードと前記非アクティブ状態とするノードとの交替を指示されたこと、の少なくともいずれか一方である。
【0011】
(3)前記第1ノードおよび前記第2ノードは、それぞれ、相手側のノードの動作状態を診断する相手ノード診断部を備え、前記相手ノード診断部は、前記相手側のノードから一定期間データが送信されないこと、または、前記相手側のノードから自己のノードが動作不全となったことを報知されたこと、のいずれかを条件として、自らのノードをアクティブ状態に切り換える。
【0012】
(4)前記第1ノードおよび前記第2ノードは、それぞれ、自己のノードの動作状態を診断する自己ノード診断部を備え、前記自己ノード診断部は、前記自己のノードが通信するサーバに異常を検出したこと、前記自己のノードにおいて動作するいずれかのソフトウェアモジュールに異常を検出したこと、前記自己のノードにおいてハードウェアに異常を検出したこと、のいずれかを条件として、前記自己のノードにおいて動作不全が発生したことを相手側のノードに報知する。
【0013】
(5)前記非アクティブ状態となっているノードにおいて、前記機器設定情報の出力、入出力処理、および演算処理がさらに禁止される。
【0014】
(6)前記アクティブ状態となっているノードを前記非アクティブ状態に切り換え、前記非アクティブ状態となっているノードを前記アクティブ状態に切り換える際に、前記非アクティブ状態へ切り換えられるノードから前記アクティブ状態へ切り換えられるノードへ全ての前記プロセスデータが転送される。
【発明の効果】
【0015】
本発明によれば、一方のノードがアクティブ状態とされ、他方のノードが非アクティブ状態とされ、アクティブ状態となっているノードのみにおいてプロセスデータが収集され、非アクティブ状態となっているノードにおけるプロセスデータの収集が禁止されるので、プロセスデータが監視不能となることを防止しながら、通信負荷の増大を抑制することが可能である。
【図面の簡単な説明】
【0016】
【図1】本実施形態に係るプロセス制御システムの概略図。
【図2】本実施形態に係る冗長コントローラのブロック図。
【図3】本実施形態に係る冗長コントローラにおける処理シーケンス図。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明に係る実施形態について説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で種々変形して実施できる。
【0018】
<定義>
本明細書で使用する用語を以下のとおり定義する。
「ノード」:プロセス管理システムに含まれるサーバ、コントローラ、フィールド機器の各々を示す。
「プロセスデータ」:ノード(主にフィールド機器)から送信される測定値またはノードに対する設定値等のデータをいう。
「アクティブ状態」:装置の動作を許可された状態をいう。
「非アクティブ状態」:装置の動作が禁止された状態をいう。
「アイテム」:測定値または設定値等のプロセスデータの一つを数える単位をいい、一つの「アイテム」は個々のフィールド機器等のノードから収集される一つの測定値、または、個々の制御弁等のノードに対する一つの設定値を意味する。
「サブシステム」:バスに接続する一つのコントローラ、サーバ、シリアル通信ユニットが管理する局所的な系統一般をいう。
【0019】
<プロセス管理システムの構成>
図1に、本実施形態に係るプロセス管理システムの構成図を示す。図1に示すように、本実施形態のプロセス管理システムは、冗長コントローラ10が接続されるユニバーサルバス1とローカルバス2との間に接続されて構成されている。ユニバーサルバス1には、冗長コントローラ10の他に、プロセスコントローラ11およびスーパーバイザリステーション20が相互に通信可能に接続されている。ローカルバス2には、冗長コントローラ10の他に、I/Oサーバ31、I/Oサーバ32、およびシリアル通信ユニット33が、相互に通信可能に接続されている。
【0020】
ユニバーサルバス1は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)(Ethernet)により装置間を相互に接続するバスである。
【0021】
スーパーバイザリステーション20は、ユニバーサルバス1に接続する各種コントローラが管理するサブシステムから供給される測定信号等に基づいて、プロセス管理システム全体の運転内容を監視し、各サブシステムに対する制御信号を送信する管理装置である。スーパーバイザリステーション20は、ユニバーサルバス1に接続される冗長コントローラ10やプロセスコントローラ11、ローカルバス2に接続されるフィールド機器類の運転内容をモニタに表示可能に構成されている。運用者は、表示内容を見ることにより、プロセス管理システム全体の運転内容を把握することが可能である。スーパーバイザリステーション20は、運用者の操作指示に従って、システムに接続される装置やフィールド機器に対する制御内容を指示可能に構成されている。指示可能な制御内容としては、機器の起動操作や停止操作等が該当する。特に本実施形態において、スーパーバイザリステーション20は、冗長コントローラ10に対して、プライマリノード100Pおよびセカンダリノード100Sのうち、いずれか一方のノードがアクティブ状態になるよう、また、他方のノードが非アクティブ状態となるよう、切り換えるように制御可能になっている。
【0022】
冗長コントローラ10は、本発明に係る冗長コントローラであり、互いに同一の構成を備えたプライマリノード100Pとセカンダリノード100Sとが並行して動作可能に構成されている。例えば、冗長コントローラ10は、OPCサーバであるI/Oサーバ31およびI/Oサーバ32に対するOPCクライアントの一つとして位置付けられたコントローラである。冗長コントローラ10の詳細な構成については、図2を参照して後述する。特に本実施形態では、冗長コントローラ10は、ユニバーサルバス1の系統とローカルバス2の系統との間で情報を受け渡すためのゲートウェイとして機能する。
【0023】
プロセスコントローラ11は、冗長コントローラ10と同様に、自ら管理するローカルバスに接続された各種機器で構成されるサブシステムを管理する制御手段であり、必要に応じて設けられる。例えば、プロセスコントローラ11としては、種々の機能を有する装置を適用可能であり、例えば、分散型コントロールシステム(DCS:Distributed Control System)、プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)、ビルディングオートメーションシステム(BAS:Building Automation System)等が挙げられる。
【0024】
ローカルバス2は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)により装置間を相互に接続するバスである。ローカルバス2は、例えば工場内のコンピュータ機器を相互に接続する工場LAN(Local Area Network)に相当する。
【0025】
I/Oサーバ31は、ローカルバス2に接続される機器に対するOPCサーバの一つとして機能し、これら機器に対する監視および管理を実施する管理装置である。I/Oサーバ31は、OPC規格に準拠した通信プロトコルで通信可能に構成されている。また、I/Oサーバ31には、フィールド機器41に直接接続されている。I/Oサーバ31とフィールド機器41とは、シリアル通信ケーブルにより相互に接続されている。フィールド機器41は、流量、圧力、温度等の所定の物理量を測定する測定ポイントとして機能可能に構成されている。測定ポイントとして機能するフィールド機器41は、例えば、流量センサや圧力センサ、温度センサ等の各種センサである。またフィールド機器41は、温度や流量等を制御する制御ポイントとして機能可能に構成されている。制御ポイントとして機能するフィールド機器41は、例えば、温度調節器や圧力・流量・開閉制御弁等の各種弁装置、ポンプやブロア、ファン等のモータ、アクチュエータ機器類である。フィールド機器41は、測定値を所定の規格の信号、例えば4〜20mAの直流信号に変換してI/Oサーバ31に送信可能に構成されている。I/Oサーバ31は、制御ポイントに対する設定値(設定温度、制御弁の開度、モータやアクチュエータ機器の駆動量)を所定の規格の信号、例えば4〜20mAの直流信号に重畳させて変換してフィールド機器41に送信可能に構成されている。
【0026】
I/Oサーバ32は、ローカルバス2に接続される機器に対するOPCサーバの一つとして機能する。I/Oサーバ32は、OPC規格に準拠した通信プロトコルで通信可能に構成されている。I/Oサーバ32には、OPCクライアントの一つとして動作するプログラマブルロジックコントローラ(PLC)42が接続されている。プログラマブルロジックコントローラ42は、特定の制御ポイントに対するリレー制御等を実行可能に構成されている。I/Oサーバ32は、所定の設定値をシリアル信号に変換してプログラマブルロジックコントローラ42に供給する。またプログラマブルロジックコントローラ42から供給された測定値を必要に応じてローカルバス2に送信する。
【0027】
I/Oサーバ31およびI/Oサーバ32が、自らが直接管理するフィールド機器41やプログラマブルロジックコントローラ42に動作異常を検出した場合や、自らの動作に不具合を生じている場合、アラート信号がローカルバス2経由で通知される。
【0028】
シリアル通信ユニット33は、それぞれがOPCクライアントとして動作するフィールド機器43、44、45に接続されている。シリアル通信ユニット33は、I/Oサーバ31から供給された設定値をシリアル信号に変換してフィールド機器43−45に供給する。またフィールド機器43−45の測定値がローカルバス2経由で通知される。フィールド機器43−45は、前述したフィールド機器41と同様の測定ポイントまたは制御ポイントとして機能し、それぞれの機器に割り当てられた物理量を測定して測定値を出力し、また、入力された設定値に基づいて動作するように構成されている。
【0029】
(冗長コントローラ10)
図2に、本実施形態における冗長コントローラ10のブロック図を示す。図2に示すように、冗長コントローラ10は、プライマリノード100Pとセカンダリノード100Sとを備えて構成されている。プライマリノード100Pは本発明の第1ノードに相当し、セカンダリノード100Sは本発明の第2ノードに相当する。冗長コントローラ10の各ノードは、ユニバーサルバス1とローカルバス2との間でプロセスデータの送受信を中継するゲートウェイとして機能する。プライマリノード100Pおよびセカンダリノード100Sの各々は、ローカルバス2に接続するノードを含むサブシステムを統合し制御するコントローラとして機能する。
【0030】
冗長コントローラ10は、所定のソフトウェアプログラムを実行することにより、非限定の例示として、特に以下の手段を実行可能に構成されている点に特徴がある。
(1)第1ノードおよび第2ノードのうち、いずれか一方をアクティブ状態とし、他方を非アクティブ状態とする手段。
(2)アクティブ状態となっているノードにおいてプロセスデータを収集し、収集したプロセスデータを非アクティブ状態となっているノードに転送する手段。
(3)非アクティブ状態となっているノードにおいて、プロセスデータの収集を禁止し、アクティブ状態となっているノードから転送されたプロセスデータを更新する手段。
(4)アクティブ状態となっているノードにおいて所定の条件に達した場合には、アクティブ状態となっているノードを非アクティブ状態に切り換え、非アクティブ状態となっているノードをアクティブ状態に切り換える手段。
【0031】
上記所定の条件とは、以下の少なくともいずれか一方である。
(a)アクティブ状態となっているノードにおいて動作不全が発生したことを推測可能な条件に達したこと、または、
(b)上位の機器監視装置であるスーパーバイザリステーション20から、アクティブ状態とするノードと非アクティブ状態とするノードとの交替を指示されたこと。
【0032】
ここで「所定の条件」は、非限定の例示として、以下に説明する条件(1a)または(1b)を含む。具体的に、条件(a)については、以下に説明する条件(2a)−(2c)が例示できる。条件(b)は以下に説明する条件(2d)の場合である。但し、これら列記された条件に限定されることなく、アクティブ状態とするノードと非アクティブ状態とするノードとを切り換えるべきと考えられるあらゆる事象を、追加の、または、代替する切り換え条件とすることができる。
【0033】
図2は、プライマリノード100Pがアクティブ状態であり、セカンダリノード100Sが非アクティブ状態である場合を例示している。斜線が描かれているブロックであるセカンダリノード100Sのアイテム収集部126S、アイテム設定部128S、入出力演算処理部140Sが動作を停止し待機状態となっている。
【0034】
プライマリノード100Pは、冗長処理部110P、I/O処理部120P、通信部130P、入出力演算部140P、および通信部150Pを備える。セカンダリノード100Sは、冗長処理部110S、I/O処理部120S、通信部130S、入出力演算部140S、および通信部150Sを備える。以下、プライマリノード100Pとセカンダリノード100Sとで共通の構成や動作を説明する場合には、符号PおよびSを省略して説明する。上記した冗長コントローラ10の手段(1)−(4)は、上記各機能ブロックのうち一つまたは複数が協働することにより機能的に実現される。
【0035】
(冗長処理部110)
冗長処理部110は、本発明に特徴的な機能ブロックである。冗長処理部110は、プライマリノード100Pとセカンダリノード100Sとの間で、それぞれが記憶するプロセスデータの同期をとったり(プロセスデータの内容を同一にすること)、相手側のノードの動作状況を診断したり、自己のノードの動作状況を診断したりする。冗長処理部100は、具体的に、データベース同期部112、相手ノード診断部114、および自己ノード診断部116を備えている。
【0036】
(データベース同期部112)
データベース同期部112は、プライマリノード100Pとセカンダリノード100Sとの間で、それぞれが同一のプロセスデータを記憶するようにプロセスデータの送受信を行う機能ブロックである。具体的には、アクティブ状態となっているノード側のデータベース同期部112は、所定のタイミングで、または、所定数のデータが得られたことを条件として、前回の更新時から新たに得られたプロセスデータを非アクティブ状態となっているノード側のデータベース同期部112に送信する。非アクティブ状態となっているノード側のデータベース同期部112は、送信されてきた新たなプロセスデータを受信して、自ら記憶するプロセスデータを更新する。
【0037】
また、データベース同期部112は、プライマリノード100Pとセカンダリノード100Sとの間でアクティブ状態と非アクティブ状態とを切り換える場合に、必要に応じて、それまでアクティブ状態であったノード側のデータベース同期部112がそれまで非アクティブ状態であったノード側のデータベース同期部112に対し、全てのプロセスデータを一括送信する。例えば起動開始から時間が経過していないため、それまで非アクティブ状態であったノードにおいてプロセスデータが更新されていない場合や、何からの事情でプロセスデータが喪失したりプロセスデータに欠陥が生じていたりする可能性がある場合である。全てのプロセスデータの転送は、いずれか一方のノードから他方のノードに対して全プロセスデータ転送を要求することによって実行されるように構成することが好ましい。
【0038】
二つのノードのデータベース同期部112間のプロセスデータは、データ量が相対的に多い場合に備えて、高速バスであるユニバーサルバス1を経由して転送される。ただし、更新するプロセスデータのようにデータ量が相対的に少ない場合には、プライマリノード100Pとセカンダリノード100Sとを直接接続するシリアルバスを介して送受信するように構成してもよい。
【0039】
(相手ノード診断部114)
相手ノード診断部114は、相手側のノードの動作状態を診断する機能ブロックである。相手ノード診断部114は、自己のノードが非アクティブ状態であり、かつ、相手側のノードがアクティブ状態となっている場合であって動作不全が発生していると判断した場合には、自らのノードをアクティブ状態に切り換える。
【0040】
具体的に、非限定の例示として、相手ノード診断部114は、次のいずれか1以上の条件に合致する場合に、相手側のノードに動作不全が生じていると判断する。
【0041】
(1a)アクティブ状態となっている相手側のノードから予め定められた一定期間(例えば10秒間)以上、新たな診断データが送信されてこなかった場合。
(1b)相手側のノードから自己のノードが動作不全となったことを報知してきた場合。
【0042】
上記条件(1a)の場合は、アクティブ状態となっている相手側のノードのメインソフトウェアプログラム等に動作不良が生じ、更新すべきプロセスデータを非アクティブ状態となっているノードに送信不可能になっている場合であり、ノードとして動作不可能であると推測できる場合である。
【0043】
上記条件(1b)の場合は、例えば以下に述べる条件(2a)−(2c)の場合が相当し、ノードとして動作することが不適当であると推測できる場合である。具体的には、アクティブ状態となっている相手側のノードの動作は正常であるが相手側のノードの動作を管理するOPCサーバに異常が生じた場合や、相手側のノードのソフトウェアモジュールやハードウェアに異常が生じた場合である。
【0044】
相手ノード診断部114は、自らのノードをアクティブ状態に切り換える場合、相手側のノードから送信されてきたアイテム設定情報に基づいて自らのノードのアイテム設定情報を更新し、互いのノードにおけるアイテム設定が同一になるように更新する。
【0045】
(自己ノード診断部116)
自己ノード診断部116は、自己のノードの動作状態を診断する機能ブロックである。自己ノード診断部116は、自己のノードがアクティブ状態である場合に以下の少なくともいずれかの条件を満たした場合に、自らのノードを非アクティブ状態に切り換えるとともに、相手側のノードに異常状態を報知する。
【0046】
(2a)自己のノードの動作を管理するOPCサーバに異常を検出した場合。
(2b)自己のノードで動作するいずれかのソフトウェアモジュールに異常を検出した場合。
(2c)自己のノードのハードウェアに異常を検出した場合。
(2d)上位の管理サーバから強制的にアクティブ状態とするノードの切り換えを指示された場合。
【0047】
上記条件(2a)について、自己ノード診断部116は、I/O処理部120のサーバ状態確認部122を参照して、自己のノードが主として通信するOPCサーバに異常が生じているか否かを確認する。OPCサーバが自ら動作不能であることをOPCクライアントに報知してきたこと、または、OPCサーバ自体の動作不全または通信関連のハードウェアの故障で通信そのものが一定期間されていないこと、の少なくとも一方が満たされた場合にOPCサーバが異常であると診断できる。
【0048】
上記条件(2b)について、自己ノード診断部116は、自らのノードにおいて動作する複数のソフトウェアモジュールのうちいずれかのモジュールからエラーを示す引数が返されてきたり、メモリアクセス違反を生じたりした場合に、自己のノードのソフトウェアモジュールに動作不全が発生したものと判断する。
【0049】
上記条件(2c)について、自己ノード診断部116は、一部の機能について、正常な値が読み取れない、または、全く動作しないなど、自己のノードの通信部130・150やネットワークの一部の動作に異常状態を発見した場合には、自己のノードのハードウェアに動作不全が発生したものと判断する。
【0050】
上記条件(2d)について、自己ノード診断部116は、上位のスーパーバイザリステーション20からアクティブ状態にするノードの切り換えを要求するコマンドが送信されてきた場合、現在、アクティブ状態である場合には自己のノードを非アクティブ状態とし、非アクティブ状態である場合には自己のノードをアクティブ状態とする。
【0051】
自己のノードをアクティブ状態としたり非アクティブ状態としたりする切り換え処理は、例えば、各機能ブロックを実現するソフトウェアモジュールが参照可能なグローバルなメモリエリアにアクティブ状態/非アクティブ状態を示すフラグを設け、上記条件に合致した場合にこのフラグを書き換えることによって達成できる。各機能ブロックを実現するソフトウェアモジュールでは、当該フラグを参照して、アクティブ状態/非アクティブ状態の別に応じた処理を実行するように構成すればよい。
【0052】
自己のノードの自己ノード診断部116と相手側のノードの相手ノード診断部114との通信、および、自己のノードの相手ノード診断部114と相手側のノードの自己ノード診断部116との通信は、プライマリノード100Pとセカンダリノード100Sとを直接接続するシリアルバスを介して送受信するように構成されている。
【0053】
(I/O処理部120)
I/O処理部120は、ローカルバス2に接続されるノードとのプロセスデータ入出力を実行する機能ブロックである。具体的に、I/O処理部120は、サーバ状態確認部122とグループ処理部124とを備える。
【0054】
(サーバ状態確認部122)
サーバ状態確認部122は、所定のタイミング毎に、自己のノードの動作を主として管理するOPCサーバと通信し、OPCサーバの動作が正常であるか否かを記録する機能ブロックである。サーバ状態確認部122は、自己ノード診断部116の問い合わせに応じて、記録してある最新のOPCサーバの動作状態を返す。
【0055】
(グループ処理部124)
グループ処理部124は、複数のアイテムをグループ化して管理する機能ブロックである。複数のアイテムをどのようなグループに編成するかの設定は任意である。例えば、いずれのノード(例えば、1つのI/Oサーバやシリアル通信ユニット)に属しているかとは無関係に、同一タイミングで収集する複数のアイテムを1つのグループとすることが可能である。また、1つのノードに接続されるフィールド機器についてのアイテムを1つのグループとすることも可能である。グループ処理部124は、アイテム収集部126とアイテム設定部128とを備える。
【0056】
(アイテム収集部126)
アイテム収集部126は、測定値に関するプロセスデータ(アイテム)をグループ単位で収集する機能ブロックである。収集するプロセスデータとしては、フィールド機器類から直流信号で直接供給されたアナログ測定値や、ローカルバス2に接続されるノードから供給されたデジタル測定値である。アイテム収集部126は、自己のノードがアクティブ状態である場合にのみ動作し、非アクティブ状態である場合には動作を停止するように構成されている。
【0057】
(アイテム設定部128)
アイテム設定部128は、制御値に関するプロセスデータ(アイテム)をグループ単位で出力し、ノードに所望の制御値を設定する機能ブロックである。設定するアイテムとしては、温度調節器や圧力・流量・開閉制御弁等の各種弁装置に対して出力するアナログ設定値やデジタル設定値、ポンプやブロア、ファン等のモータ、アクチュエータ機器類に対するロジック値等である。アイテム設定部128は、自己のノードがアクティブ状態である場合にのみ動作し、非アクティブ状態である場合には動作を停止するように構成されている。
【0058】
(通信部130)
通信部130は、ローカルバス2を介してフィールド機器類から供給された測定値であるプロセスデータを受信し、フィールド機器類に対する設定値であるプロセスデータを出力するブロックである。通信部130は、ローカルバス2のコンピュータネットワーク規格に準拠した物理的な通信条件に合致させて所定の通信プロトコルでデータ入出力を行う。特に本実施形態における通信部130は、OPC規格に準拠したインターフェースを備えており、OPC規格に準拠した通信プロトコルで通信するI/Oサーバ31および32と通信可能に構成されている。
【0059】
(通信部150)
通信部150は、ユニバーサルバス1を介してスーパーバイザリステーション20やプロセスコントローラ11と相互通信するためのブロックである。通信部150は、ユニバーサルバス1のコンピュータネットワーク規格に準拠した物理的な通信条件に合致させて所定の通信プロトコルでデータ入出力を行う。
【0060】
(入出力演算処理部140)
入出力演算部140はプロセスデータの入出力を制御し、必要な演算処理を実施してデータを加工し、加工したデータを出力する機能ブロックである。非限定の例示として、入出力演算部140は、以下のような処理を実行する。
【0061】
(3a)アイテム収集部126が収集したプロセスデータをスーパーバイザリステーション20の要求に応じて転送すること。
(3b)収集したプロセスデータに補正、抽出、加算・積算・平均・時間軸移動処理等の演算を施して出力すること。
(3c)収集したプロセスデータを所定のルールに基づき判定して、必要な警告を出力すること。
(3d)収集したプロセスデータに応じて所定の制御値または制御データを生成して出力すること。
(3e)自己のノードがアクティブ状態である場合に動作し、非アクティブ状態である場合には動作を停止すること。
【0062】
<動作の説明>
以下、図3の処理シーケンス図を参照しながら、冗長コントローラ10の動作を説明する。図3の処理シーケンス図は、図2に示すように、プライマリノード100Pがアクティブ状態であり、セカンダリノード100Sが非アクティブ状態である場合の処理を例示している。
【0063】
なお、破線で囲まれているステップは、プライマリノード100Pがアクティブ状態、セカンダリノード100Sが非アクティブ状態である場合には実行されず、プライマリノード100Pが非アクティブ状態、セカンダリノード100Sがアクティブ状態である場合には実行されるステップである。よって、プラマリノード100Pが非アクティブ状態であり、セカンダリノード100Sがアクティブ状態である場合には、以下の説明におけるプライマリノード100Pにおける各処理とセカンダリノード100Sにおける各処理とが交替して実行される。
【0064】
図3に示すように、プライマリノード100P側では、自己のノードがアクティブ状態である場合、ステップST1P−ST6Pを実行し、自己のノードが非アクティブ状態である場合、ステップST3P−ST6Pを実行する。セカンダリノード100S側では、自己のノードが非アクティブ状態である場合、ステップST3S−ST6Sを実行し、自己のノードがアクティブ状態である場合、ステップST1S−ST6Sを実行する。以下、プライマリノード100Pとセカンダリノード100Sとで動作が共通であるステップについては、ステップ末尾の符号PやSを付けずに説明する。
【0065】
ステップST1P−ST6Pまでは、アクティブ状態であるプライマリノード100Pの処理である。これらのステップは、アクティブ状態である限り、一定の周期で繰り返し実行される処理である。
【0066】
まず、ステップST1Pにおいて、アイテム収集部126Pは、サブシステムからグループ単位でプロセスデータ(アイテム)を収集する。入出力演算処理部140Pは、収集した測定値であるアイテムに対して、必要な演算処理を施し、スーパーバイザリステーション20の要求に応じて転送する。
【0067】
ステップST2Pにおいて、アイテム設定部128Pは、アイテムのグループ単位で設定値であるプロセスデータを出力する。出力するプロセスデータは、入出力演算処理部140Pが演算し変形したものを含む。
【0068】
ステップST3Pにおいて、プライマリノード100Pのデータベース同期部112Pは、前回の更新時から収集された新たなプロセスデータをセカンダリノード100Sのデータベース同期部112Sに送信する。ステップST3Sにおいて、セカンダリノード100Sのデータベース同期部112Sは送信されたプロセスデータに基づき自己のノードのプロセスデータを更新する。
【0069】
ステップST4Pにおいて、プライマリノード100Pの自己ノード診断部116Pは、前回の更新時から設定値に変更のあったアイテムについて設定値(定義)をセカンダリノード100Sの相手ノード診断部114Sに送信する。ステップST4Sにおいて、セカンダリノード100Sの相手ノード診断部114Sは送信された新たなアイテムについての設定値に基づき自己のノードのアイテム定義を更新する。
【0070】
ステップST5Pにおいて、プライマリノード100Pの自己ノード診断部116Pは、サーバ状態確認部122Pを参照して、自己のノードを管理するOPCサーバに異常が生じているか否か、自己のノードで動作するソフトウェアモジュールに動作異常を生じているか否か、自己のノードのハードウェアに動作異常を生じているか否かを確認する。
【0071】
その結果、異常が検出されなければ、アクティブ状態を維持したまま、次の実行タイミングを待つ。一方、異常が検出された場合、自己のノードを非アクティブ状態に切り換え、活動状態であったアイテム収集部126P、アイテム設定部128P、および入出力演算処理部140Pを待機状態に移行する。そして相手側のノードに異常検出を報知する。
【0072】
ステップST6Sにおいて、プライマリノード100Pおよびセカンダリノード100Sの相手ノード診断部114は、相手側のノードに異常が生じているか否かを診断する。相手側のノードから上記したような異常検出が報知されてきた場合、または、所定時間、プロセスデータやアイテム定義の更新がされなかった場合、相手側のノードに異常が生じているものと診断して、セカンダリノード100S側では自己のノードをアクティブ状態に切り換える。そして、待機状態であったアイテム収集部126S、アイテム設定部128S、および入出力演算処理部140Sを起動する。
【0073】
プライマリノード100Pが非アクティブ状態、セカンダリノード100Sがアクティブ状態であった場合には、プライマリノード100PはステップST3P−ST6PおよびST6Pを実行し、セカンダリノード100SはステップST1S−ST6Sを実行する。
【0074】
<本実施形態の効果>
以上のように説明した本実施形態によれば、以下のような作用効果を奏する。
(1)本実施形態によれば、プライマリノード100Pおよびセカンダリノード100Sのうち、一方のノードがアクティブ状態とされ、他方のノードが非アクティブ状態とされる。そして、アクティブ状態に切り換えられたノードにおいてアイテム収集部126によるプロセスデータの収集が開始され、アイテム設定部128におけるアイテムの設定が開始される。また、非アクティブ状態に切り換えられたノードにおいてアイテム収集部126によるプロセスデータの収集が禁止され、アイテム設定部128におけるアイテムの設定が禁止される。よって、冗長コントローラ10におけるプロセスデータの入出力処理が滞ることを防止しながら、プロセス管理システムへの通信負荷の増大を抑制することが可能である。
【0075】
(2)本実施形態によれば、アクティブ状態となっているノードにおいて動作不全が発生したことを推測可能な条件に達したこと(条件(1a)−(1c))、または、上位の機器監視装置であるスーパーバイザリステーション20からアクティブ状態とするノードと前記非アクティブ状態とするノードとの切り換えを指示されたこと、のいずれかに合致した場合に、アクティブ状態となっていたノードが非アクティブ状態となり、非アクティブ状態となっていたノードがアクティブ状態に切り換えられる。よって、アクティブ状態となっているノードの動作不全を的確に検出して、滞りなく動作可能なノードに動作を引き継ぐことができ、ロセスデータの収集処理が不能になったり設定処理が不完全になったりすることを防止可能である。また機器監視装置の必要に応じたノードの切り換えにも対応可能である。
【0076】
(3)本実施形態によれば、相手ノード診断部114は、相手側のノードから一定期間データが送信されないこと(条件(1a))、または、相手側のノードから自己のノードが動作不全となったことを報知されたこと(1b、1c)のいずれかを条件として、自らのノードをアクティブ状態に切り換える。よって、アクティブ状態となっているノードのメインプログラムがハングアップしたような状態となったとしても、その動作状態を確実に検出し、待機状態の他のノードに動作を引き継ぐことが可能である。
【0077】
(4)本実施形態によれば、自己ノード診断部116は、自己のノードが通信するサーバに異常を検出したこと(条件(2a))、または、自己のノードにおいてソフトウェアモジュールまたはハードウェアに動作不全が生じたこと(条件(2b)(2c))のいずれかを条件として、自己のノードにおいて動作不全が発生したことを相手側のノードに報知する。よって、相手側のノードに自己のノードに動作を継続することを妨げる事象が生じていることを的確に報知可能である。
【0078】
(5)本実施形態によれば、非アクティブ状態となっているノードにおいて、機器設定情報の出力、入出力処理、および演算処理が禁止される。よって、待機状態となっているノードでは、不必要な処理が禁止される他、外部のノードに対するデータの出力または出力要求などが禁止される。このため、サブシステムに対する通信負荷を些少に抑制することが可能である。
【0079】
(6)本実施形態によれば、アクティブ状態となっているノードを非アクティブ状態に切り換え、非アクティブ状態となっているノードをアクティブ状態に切り換える際に、非アクティブ状態へ切り換えられるノードからアクティブ状態へ切り換えられるノードへ全てのプロセスデータが転送される。よって、アクティブ状態に切り換えられるノードにおいて、過去のプロセスデータが存在しないか障害を受けていた場合であっても、適正なプロセスデータに基づきアクティブ状態に切り換えられるノードのプロセスデータが更新される。
【0080】
(7)本実施形態によれば、通信部130がOPC規格に準拠したインターフェースを備えており、OPC規格に準拠した通信プロトコルで通信するI/Oサーバ31および32と通信可能に構成されている。OPC規格では、特にヘッダ部分の情報量が多いため、非アクティブ状態に切り換えられたノードにおけるプロセスデータの収集やアイテムの設定が禁止されることによる通信負荷の削減効果が大きい。
【0081】
(その他の実施形態)
本発明は上記各実施形態に限定されることなく種々に変更して利用することができる。例えば、上記の実施形態では、冗長コントローラ10はOPCクライアントとして動作し、外部に設けられたOPCサーバであるI/Oサーバ31やI/Oサーバ32と通信していたが、これに限られない。
【0082】
また上記実施形態では、OPCサーバ(I/Oサーバ31やI/Oサーバ32)はOPCクライアントである冗長コントローラと離れたノードとして説明したが、冗長コントローラ10のそれぞれのノードはOPCサーバを備えるか、OPCサーバそのものであってもよい。冗長コントローラ10がOPCサーバを含むように構成されている場合、OPCサーバの異常検出(条件(2a))は、ローカルバス2を介さない自己診断となる。
【0083】
また上記実施形態では、自己ノード診断部116は自己のノードがアクティブ状態である場合に主として動作するように説明していたが、自己のノードがアクティブ状態であるか非アクティブ状態であるかに拘わらず動作するように構成してもよい。
【0084】
同様に、上記実施形態では、相手ノード診断部114は自己のノードがアクティブ状態であるか非アクティブ状態であるかに関わらず動作するように説明していたが、自己のノードが非アクティブ状態である場合に主として動作するように構成してもよい。
【産業上の利用可能性】
【0085】
本発明の冗長コントローラは、ゲートウェイとしてのみならず、分散型コントロールシステム、プログラマブルロジックコントローラ、ビルディングオートメーションシステム、OPCサーバなどに異なる種類のノードに適用することが可能である。
【符号の説明】
【0086】
1…ユニバーサルバス、2…ローカルバス、10…冗長コントローラ、11…プロセスコントローラ、20…スーパーバイザリステーション、31…I/Oサーバ、32…I/Oサーバ、33…シリアル通信ユニット、41…フィールド機器、42…プログラマブルロジックコントローラ、43−45…フィールド機器、100P…プライマリノード、100S…セカンダリノード、110P、110S…冗長処理部、112P、112S…データベース同期部、114P、114S…相手ノード診断部、116P、116S…自己ノード診断部、120P、120S…I/O処理部、122P、122S…サーバ状態確認部、124P、124S…グループ処理部、126P、126S…アイテム収集部、128P、128S…アイテム設定部、130P、130S…通信部、140P、140S…入出力演算処理部、150P、150S…通信部

【特許請求の範囲】
【請求項1】
第1ノードと第2ノードとを備えた二重化された冗長コントローラであって、
前記第1ノードおよび前記第2ノードのうち、いずれか一方をアクティブ状態とし、他方を非アクティブ状態とする手段と、
前記アクティブ状態となっているノードにおいてプロセスデータを収集し、収集した前記プロセスデータを前記非アクティブ状態となっているノードに転送する手段と、
前記非アクティブ状態となっているノードにおいて、前記プロセスデータの収集を禁止し、前記アクティブ状態となっているノードから転送された前記プロセスデータを更新する手段と、
前記アクティブ状態となっているノードにおいて所定の条件に達した場合には、前記アクティブ状態となっているノードを非アクティブ状態に切り換え、前記非アクティブ状態となっているノードをアクティブ状態に切り換える手段と、を備える、
冗長コントローラ。
【請求項2】
前記所定の条件は、
前記アクティブ状態となっているノードにおいて動作不全が発生したことを推測可能な条件に達したこと、または、
上位の機器監視装置から前記アクティブ状態とするノードと前記非アクティブ状態とするノードとの切り換えを指示されたこと、の少なくともいずれか一方である、
請求項1に記載の冗長コントローラ。
【請求項3】
前記第1ノードおよび前記第2ノードは、それぞれ、
相手側のノードの動作状態を診断する相手ノード診断部を備え、
前記相手ノード診断部は、前記相手側のノードから一定期間データが送信されないこと、または、前記相手側のノードから自己のノードが動作不全となったことを報知されたこと、のいずれかを条件として、自らのノードをアクティブ状態に切り換える、
請求項1または2に記載の冗長コントローラ。
【請求項4】
前記第1ノードおよび前記第2ノードは、それぞれ、
自己のノードの動作状態を診断する自己ノード診断部を備え、
前記自己ノード診断部は、
前記自己のノードが通信するサーバに異常を検出したこと、
前記自己のノードにおいて動作するいずれかのソフトウェアモジュールに異常を検出したこと、
前記自己のノードにおいてハードウェアに異常を検出したこと、
のいずれかを条件として、前記自己のノードにおいて動作不全が発生したことを相手側のノードに報知する、
請求項1−3のいずれか一項に記載の冗長コントローラ。
【請求項5】
前記非アクティブ状態となっているノードにおいて、
前記機器設定情報の出力、入出力処理、および演算処理がさらに禁止される、
請求項1−4のいずれか一項に記載の冗長コントローラ。
【請求項6】
前記アクティブ状態となっているノードを前記非アクティブ状態に切り換え、前記非アクティブ状態となっているノードを前記アクティブ状態に切り換える際に、前記非アクティブ状態へ切り換えられるノードから前記アクティブ状態へ切り換えられるノードへ全ての前記プロセスデータが転送される、
請求項1−5のいずれか一項に記載の冗長コントローラ。
【請求項7】
OPC規格に準拠したインターフェースを備える通信部を備え、
OPC規格に準拠した通信プロトコルで通信するサーバと前記通信部とが通信可能に構成されている、
請求項1−6のいずれか一項に記載の冗長コントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−208706(P2012−208706A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−73405(P2011−73405)
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000006666)アズビル株式会社 (1,808)
【Fターム(参考)】