JP2017021587A - 冗長コントローラ - Google Patents

冗長コントローラ Download PDF

Info

Publication number
JP2017021587A
JP2017021587A JP2015138920A JP2015138920A JP2017021587A JP 2017021587 A JP2017021587 A JP 2017021587A JP 2015138920 A JP2015138920 A JP 2015138920A JP 2015138920 A JP2015138920 A JP 2015138920A JP 2017021587 A JP2017021587 A JP 2017021587A
Authority
JP
Japan
Prior art keywords
module
process data
unit
updated
past
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015138920A
Other languages
English (en)
Inventor
田中 良則
Yoshinori Tanaka
良則 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Azbil Corp
Original Assignee
Azbil Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Azbil Corp filed Critical Azbil Corp
Priority to JP2015138920A priority Critical patent/JP2017021587A/ja
Publication of JP2017021587A publication Critical patent/JP2017021587A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Safety Devices In Control Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】上位機器の汎用性が失われることを防止しながら通信可能な冗長コントローラを提供する。【解決手段】第1モジュール100Pおよび第2モジュール100Sを備え、第1モジュールおよび前記第2モジュールの少なくともいずれか一方の動作状態を診断するモジュール診断部112と、モジュール診断部が前記第1モジュールは非アクティブ状態であることを検出した場合に、第1モジュールにおいて収集されたプロセスデータを第2モジュールに転送する第1転送部1141と、第2モジュールにおいて第1モジュールから転送されたプロセスデータで過去のプロセスデータを更新する第1更新部1143と、第2モジュールにおいて更新された当該プロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの少なくとも一部のプロセスデータを識別する識別情報の少なくともいずれか一方を第1モジュールに転送する第2転送部とを備える。【選択図】図2

Description

本発明は、プロセスデータを取り扱うコントローラに係り、特に二重化構造を有する冗長コントローラに関する。
従来から、化学製造プラント、石油精製プラント、その他製造プラント等の処理プラント内において使用されるプロセス制御コントローラが知られている。
具体的に、プロセス制御コントローラとして、例えば、特開2012−208706号公報には、プロセス内の複数の装置を制御するために使用される冗長コントローラであって、第1ノード(100P)と第2ノード(100S)とを備えた二重化された冗長コントローラ(10)であって、第1ノードおよび第2ノードのうち、いずれか一方をアクティブ状態とし、他方を非アクティブ状態とする手段と、アクティブ状態となっているノードにおいてプロセスデータを収集し、収集したプロセスデータを非アクティブ状態となっているノードに転送する手段と、非アクティブ状態となっているノードにおいて、プロセスデータの収集を禁止し、アクティブ状態となっているノードから転送されたプロセスデータを更新する手段と、アクティブ状態となっているノードにおいて所定の条件に達した場合には、アクティブ状態となっているノードを非アクティブ状態に切り換え、非アクティブ状態となっているノードをアクティブ状態に切り換える手段と、を備える冗長コントローラが開示されている(特許文献1)。
特開2012−208706号公報
しかしながら、特許文献1に記載されているような、複数モジュールを備える冗長コントローラと、当該冗長コントローラのうち単一のノード(モジュール)のみと通信可能な上位機器と、が通信し当該上位機器が当該単一のモジュールからプロセスデータの書き込み・読み込みなどを実行する場合、当該上位機器は、通信相手である当該単一のモジュールの動作状態(アクティブ状態であるか非アクティブ状態であるか)をその都度診断しなければならないという問題があった。
また、このような問題を解決するために、上位機器が、通信するモジュールの状態を診断し、必要に応じて通信するモジュールを切り換える手段を備えるように構成することも可能である。しかしながら、上位機器が通信するモジュールの動作状態を診断する仕組みはモジュールごとに異なるため、それぞれのモジュール(仕組み)に対応するモジュール切換手段を上位機器が備える必要があるため、当該上位機器の汎用性が失われてしまうという新たな問題が生じるおそれがある。
そこで、本発明は、このような問題に対処するために、上位機器が、通信する冗長コントローラのモジュールの動作状態を都度診断しなければならないという状況を防止し当該上位機器の汎用性が失われることを防止しながら通信可能な冗長コントローラを提供することを課題の一つとしている。
上記課題を解決するために、本発明の冗長コントローラは、第1モジュールおよび第2モジュールを備えた二重化された冗長コントローラであって、前記第1モジュールおよび前記第2モジュールの少なくともいずれか一方の動作状態を診断するモジュール診断部と、前記モジュール診断部が前記第1モジュールは非アクティブ状態であることを検出した場合に、当該第1モジュールにおいて収集された前記プロセスデータを第2モジュールに転送する第1転送部と、前記第2モジュールにおいて前記第1モジュールから転送された前記プロセスデータで過去のプロセスデータを更新する第1更新部と、前記第2モジュールにおいて更新された当該プロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの少なくとも一部のプロセスデータを識別する識別情報の少なくともいずれか一方を前記第1モジュールに転送する第2転送部と、を備える。
本発明によれば、非アクティブ状態であると検出されたモジュールにおいて収集されたプロセスデータをアクティブ状態であるモジュールに転送し、アクティブ状態であるモジュールモジュールにおいて非アクティブ状態であるモジュールから転送されたプロセスデータで過去のプロセスデータを更新し、アクティブ状態であるモジュールにおいて更新された当該プロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの少なくとも一部のプロセスデータを識別する識別情報の少なくともいずれか一方を非アクティブ状態であるモジュールに転送するので、上位機器が、通信する冗長コントローラのモジュールの動作状態を都度診断しなければならないという状況を防止し、当該上位機器の汎用性が失われることを防止しながら通信することができる。
本発明の実施形態に係るプロセス制御システムの概略図である。 本発明の実施形態に係る冗長コントローラのブロック図である。 本発明の実施形態に係る冗長コントローラにおける処理シーケンス図の一例である。 本発明の実施形態に係る冗長コントローラにおける処理シーケンス図の他の一例である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形(各実施例を組み合わせる等)して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。
<定義>
「プロセスデータ」:プロセス制御システムにおける装置・機器(主にフィールド機器)から送信される測定値または当該装置・機器に対する設定値、制御値等のデータをいう。
「アクティブ状態」:冗長コントローラにおいてモジュールの動作を許可された状態をいう。
「非アクティブ状態」:冗長コントローラにおいてモジュールの少なくとも一部の動作が禁止された状態をいう。
図1に、本実施形態に係るプロセス管理システムの構成図を示す。図1に示すように、本実施形態のプロセス管理システムは、例示的に、冗長コントローラ10が接続されるユニバーサルバス1とローカルバス2との間に接続されて構成されている。ユニバーサルバス1には、例示的に、冗長コントローラ10の他に、プロセスコントローラ11が通信可能に接続されている。ローカルバス2には、冗長コントローラ10の他に、I/Oサーバ31、およびシリアル通信ユニット33が、相互に通信可能に接続されている。
ユニバーサルバス1は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)(Ethernet)により装置間を相互に接続するバスである。
スーパーバイザリステーション20は、後述する冗長コントローラ10の各モジュール100P,Sのいずれか一方とのみ通信可能な、プロセス管理システムにおける上位機器であり、ユニバーサルバス1に接続する各種コントローラが管理する外部機器(フィールド機器など)から供給される測定信号等に基づいて、プロセス管理システム全体の運転内容を監視し、各外部機器に対する制御信号を送信する管理装置である。スーパーバイザリステーション20は、ユニバーサルバス1に接続される冗長コントローラ10やプロセスコントローラ11、ローカルバス2に接続されるフィールド機器類の運転内容をモニタに表示可能に構成されている。運用者は、表示内容を見ることにより、プロセス管理システム全体の運転内容を把握することが可能である。スーパーバイザリステーション20は、システムに接続される装置やフィールド機器等のプロセスデータを外部装置に書き込み可能に、そして外部装置から読み込み可能に構成されている。
冗長コントローラ10は、互いに同一の構成を備えたプライマリモジュール100Pとセカンダリモジュール100Sとが並行して動作可能に構成されている。例えば、冗長コントローラ10は、OPCサーバであるI/Oサーバ31に対するOPCクライアントの一つとして位置付けられたコントローラである。冗長コントローラ10の詳細な構成については、図2を参照して後述する。特に本実施形態では、冗長コントローラ10は、ユニバーサルバス1の系統とローカルバス2の系統との間で情報を受け渡すためのゲートウェイとして機能する。
プロセスコントローラ11は、冗長コントローラ10と同様に、自ら管理するローカルバスに接続された各種機器で構成されるサブシステムを管理する制御手段であり、必要に応じて設けられる。しかしながら、プロセスコントローラ11は、冗長コントローラ10と異なり、各モジュールを区別して通信するような構成は備えていない。
ローカルバス2は、汎用のコンピュータネットワーク規格、例えばイーサネット(登録商標)により装置間を相互に接続するバスである。ローカルバス2は、例えば工場内のコンピュータ機器を相互に接続する工場LAN(Local Area Network)に相当する。
I/Oサーバ31は、ローカルバス2に接続される機器に対するOPCサーバの一つとして機能し、これら機器に対する監視および管理を実施する管理装置である。I/Oサーバ31は、OPC規格に準拠した通信プロトコルで通信可能に構成されている。また、I/Oサーバ31には、フィールド機器41に直接接続されている。I/Oサーバ31とフィールド機器41とは、シリアル通信ケーブルにより相互に接続されている。フィールド機器41は、流量、圧力、温度等の所定の物理量を測定する測定ポイント又は制御する制御ポイントとして機能可能に構成されている。フィールド機器41は、例えば、流量センサや圧力センサ、温度センサ等の各種センサ、温度調節器や圧力・流量・開閉制御弁等の各種弁装置、ポンプやブロア、ファン等のモータ、アクチュエータ機器類である。
シリアル通信ユニット33は、それぞれがOPCクライアントとして動作するフィールド機器43、44、45に接続されている。シリアル通信ユニット33は、I/Oサーバ31から供給された設定値をシリアル信号に変換してフィールド機器43−45に供給する。またフィールド機器43−45の測定値がローカルバス2経由で通知される。フィールド機器43−45は、前述したフィールド機器41と同様の測定ポイントまたは制御ポイントとして機能し、それぞれの機器に割り当てられた物理量を測定して測定値を出力し、また、入力された設定値に基づいて動作するように構成されている。
図2に、本実施形態における冗長コントローラ10のブロック図を示す。図2に示すように、冗長コントローラ10は、プライマリモジュール100Pとセカンダリモジュール100Sとを備えて構成されている。冗長コントローラ10の各モジュールは、ユニバーサルバス1とローカルバス2との間でプロセスデータの送受信を中継するゲートウェイとして機能する。プライマリモジュール100Pおよびセカンダリモジュール100Sの各々は、ローカルバス2に接続するI/Oサーバ31、シリアル通信ユニット33、およびフィールド機器41,43,44,45などを統合し制御するコントローラとして機能する。
冗長コントローラ10は、自己のモジュールをアクティブ状態としたり非アクティブ状態としたりする切り換え処理を実行することができる。例えば、各機能ブロックを実現するソフトウェアモジュールが参照可能なグローバルなメモリエリアにアクティブ状態/非アクティブ状態を示すフラグを設け、所定の条件に合致した場合にこのフラグを書き換えることによって達成できる。各機能ブロックを実現するソフトウェアモジュールでは、当該フラグを参照して、アクティブ状態/非アクティブ状態の別に応じた処理を実行するように構成すればよい。
上記所定の条件とは、アクティブ状態であるモジュールにおいて動作不全が発生したことを推測可能な条件に達したこと、などである。また、たとえば、アクティブ状態のモジュールに不具合が生じた場合に、当該モジュールを交換して相手側のモジュールを使用するため、運用者により、非アクティブ状態である相手側のモジュールはアクティブ状態に切り替えられる。
なお、本実施形態においてスーパーバイザリステーション20は、冗長コントローラ10とは異なり、通信相手である、冗長コントローラ10の単一のモジュールがアクティブ状態であるか非アクティブ状態であるかをその都度診断したり、単一のモジュールの状態を自由に切り替えたりするような構成は備えていない。
冗長コントローラ10は、所定のソフトウェアプログラムを実行することにより、非限定の例示として、特に以下の手段を実行可能に構成されている点に特徴がある。
(1)第1モジュールおよび第2モジュールの少なくともいずれか一方の動作状態を診断するモジュール診断部。
(2)モジュール診断部が第1モジュールは非アクティブ状態であることを検出した場合に、第1モジュールにおいて収集されたプロセスデータを第2モジュールに転送する第1転送部。
(3)第2モジュールにおいて第1モジュールから転送されたプロセスデータで過去のプロセスデータを更新する第1更新部。
(4)第2モジュールにおいて更新されたプロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの少なくとも一部のプロセスデータを識別する識別情報の少なくともいずれか一方を第1モジュールに転送する第2転送部。
図2は、アクティブ状態であるモジュールがプライマリモジュール100Pであり、非アクティブ状態であるモジュールがセカンダリモジュール100Sである場合を例示している。たとえば、上記(2)に示すように、非アクティブ状態のモジュールの第1転送部により、収集されたプロセスデータが転送されているが、非アクティブ状態のモジュールにおいては、収集されたプロセスデータで過去のプロセスデータの更新処理は実行できないようにプログラムされており、アクティブ状態のモジュールにおいて更新処理を実行するために収集されたプロセスデータはアクティブ状態のモジュールに転送するようにプログラムされている。以下、プライマリモジュール100Pに含まれる構成については符号Pを追記し、セカンダリモジュール100Sに含まれる構成については符号Sを追記する。またいずれのモジュールにおいても共通して構成を説明する際には、符号P/Sを追記することなく構成の符号を記述する。
プライマリモジュール100Pは、例示的に、冗長処理部110Pと、通信部120Pと、収集部130Pと、入出力演算部140Pと、収集部150Pと、通信部160Pとを備える。セカンダリモジュール100Sは、例示的に、冗長処理部110Sと、通信部120Sと、収集部130Sと、入出力演算部140Sと、収集部150Sと、通信部160Sとを備える。以下、プライマリモジュール100Pとセカンダリモジュール100Sとで共通の構成や動作を説明する場合には、符号PおよびSを省略して説明する。上記した冗長コントローラ10の手段(1)−(4)は、上記各機能ブロックのうち一つまたは複数が協働することにより機能的に実現される。
冗長処理部110は、本発明に特徴的な機能ブロックであり、プライマリモジュール100Pとセカンダリモジュール100Sとの間で、それぞれが記憶するプロセスデータの同期をとる(プロセスデータの内容を同一にすること)、相手側のモジュールの動作状況を診断したり、自己のモジュールの動作状況を診断したりする機能ブロックである。冗長処理部100は、例示的に、モジュール診断部112と、データベース同期部114とを備えている。
モジュール診断部112は、たとえば、自己のモジュールの動作状態を診断する機能ブロックである。モジュール診断部112は、たとえば、自己のモジュールが記録するモジュールの状態を示す識別子に基づいて自己のモジュールが、アクティブ状態であるか、又は、非アクティブ状態であるかを検出する。例えば、自己のモジュールは、各機能ブロックを実現するソフトウェアモジュールが参照可能なグローバルなメモリエリアにアクティブ状態/非アクティブ状態を示すフラグ(識別子)を設け、ソフトウェアモジュールが、当該フラグを参照することにより、自己のモジュールの動作状態(アクティブ状態/非アクティブ状態)を診断する処理を実行するように構成されている。
また、モジュール診断部112は、たとえば、相手側のモジュールの動作状態を診断する機能ブロックである。モジュール診断部112は、たとえば、相手側のモジュールの動作状態を示す識別子をあらかじめ取得し、当該識別子に基づいて相手側のモジュールが、アクティブ状態であるか、又は、非アクティブ状態であるかを検出する。例えば、相手側のモジュールは、各機能ブロックを実現するソフトウェアモジュールが参照可能なグローバルなメモリエリアにアクティブ状態/非アクティブ状態を示すフラグ(識別子)を設けており、自己のモジュールは、相手側のモジュールから当該識別子を受信し、ソフトウェアモジュールが当該フラグを参照することにより、相手側のモジュールの動作状態(アクティブ状態/非アクティブ状態)を診断する処理を実行するように構成されている。
なお、自己のモジュールのモジュール診断部112と相手側のモジュールの相手モジュール診断部112との通信は、プライマリモジュール100Pとセカンダリモジュール100Sとを直接接続するバスを介して送受信するように構成されている。また、モジュール診断部112は自己のモジュールがアクティブ状態であるか非アクティブ状態であるかに拘わらず動作するように構成されている。
データベース同期部114は、プライマリモジュール100Pとセカンダリモジュール100Sとの間で、それぞれが同一のプロセスデータを記憶可能にプロセスデータの同期処理、プロセスデータの送受信を行う機能ブロックである。
また、データベース同期部114は、各モジュールにおいてアクティブ状態と非アクティブ状態とを切り換える場合に、必要に応じて、それまでアクティブ状態であったモジュール側のデータベース同期部114がそれまで非アクティブ状態であったモジュール側のデータベース同期部114に対し、全てのプロセスデータを一括送信する。例えば起動開始から時間が経過していないため、それまで非アクティブ状態であったモジュールにおいてプロセスデータが更新されていない場合や、何からの事情でプロセスデータが喪失したりプロセスデータに欠陥が生じていたりする可能性がある場合である。全てのプロセスデータの転送は、いずれか一方のモジュールから他方のモジュールに対して全プロセスデータ転送を要求することによって実行されるように構成することが好ましい。
データベース同期部114は、例示的に、転送部1141と、更新部1143と、比較部1145と、算出部1147とを備えている。
転送部1141は、収集されたプロセスデータ又は更新されたプロセスデータを転送する機能ブロックである。たとえば、モジュール診断部112が自己のモジュールは非アクティブ状態であることを検出した(自己のモジュールがセカンダリモジュール100Sであると検出した)場合に、転送部1141S(第1転送部)は、セカンダリモジュール100Sにおいて収集されたプロセスデータをプライマリモジュール100Pに所定のタイミングで転送する。また、モジュール診断部112が自己のモジュールがセカンダリモジュール100Sであると検出した場合に、転送部1141P(第2転送部)は、転送部1141Sにより転送されたプロセスデータであって、プライマリモジュール100Pにおいて更新されたプロセスデータの少なくとも一部をセカンダリモジュール100Sに転送する。
さらに、モジュール診断部112が自己のモジュールはアクティブ状態であることを検出した(自己のモジュールがプライマリモジュール100Pであると検出した)場合に、転送部1141P(第1転送部)は、プライマリモジュール100Pにおいて更新されたプロセスデータの少なくとも一部をセカンダリモジュール100Sに所定のタイミングで転送する。
更新部1143は、プライマリモジュール100Pとセカンダリモジュール100Sとの間でプロセスデータを同期するために、プロセスデータを更新する機能ブロックである。たとえば、モジュール診断部112が自己のモジュールがセカンダリモジュール100Sであると検出した場合に、更新部1143P(第1更新部)は、転送部1141S(第1転送部)により転送されたプロセスデータで過去のプロセスデータを更新する。また、モジュール診断部112が自己のモジュールがプライマリモジュール100Pであると検出した場合に、更新部1143P(第2更新部)は、プライマリモジュール100Pにおいて収集したプロセスデータで過去のプロセスデータを更新する。なお、過去のプロセスデータとは、収集部130,150が現に収集している、又は、過去に収集したプロセスデータである。収集されたプロセスデータは、一時的に又は長期的にデータベース170に格納されてもよい。
比較部1145は、更新されたプロセスデータと過去のプロセスデータとを比較する機能ブロックである。算出部1147は、更新されたプロセスデータと過去のプロセスデータとの差分を算出する機能ブロックである。ここで、転送部1141により転送される更新されたプロセスデータの少なくとも一部のプロセスデータとは、更新されたプロセスデータと過去のプロセスデータとの差分に対応するプロセスデータを含む。
(1)更新されたプロセスデータと過去のプロセスデータとの差分は、たとえば、過去のプロセスデータが更新された際に、過去のプロセスデータに対して新たに追加されたプロセスデータを含む。具体的には、更新されたプロセスデータがA、B、Cであり、過去のプロセスデータがA、Bの場合、更新されたプロセスデータと過去のプロセスデータとの差分は、プロセスデータCである。
(2)更新されたプロセスデータと過去のプロセスデータとの差分は、たとえば、過去のプロセスデータが更新された際に、過去のプロセスデータのうち削除されたプロセスデータを含む。具体的には、更新されたプロセスデータがA、Cであり、過去のプロセスデータがA、B、Cの場合、更新されたプロセスデータと過去のプロセスデータとの差分は、プロセスデータBである。
(3)更新されたプロセスデータと過去のプロセスデータとの差分は、たとえば、過去のプロセスデータが更新された際に、過去のプロセスデータに対して新たに追加されたプロセスデータ、および過去のプロセスデータのうち削除されたプロセスデータの双方を含んでもよい。
たとえば、セカンダリモジュール100Sのデータベース同期部114Sが、更新されたプロセスデータと過去のプロセスデータとの差分に基づいて過去のプロセスデータを更新する場合、プライマリモジュール100Pのデータベース同期部114Pは、データベース同期部114Pにおいて更新されたプロセスデータと過去のプロセスデータとの差分に対応するプロセスデータや、当該差分に対応するプロセスデータが、プロセスデータ更新処理の際に新たに追加されたデータであるのか/削除されたデータであるのかを示す識別情報を、セカンダリモジュール100Sのデータベース同期部114Sに送信する。そして、セカンダリモジュール100Sのデータベース同期部114Sは、当該差分に対応するプロセスデータおよび識別情報に基づいて過去のプロセスデータを更新する。
更新されたプロセスデータと過去のプロセスデータとの差分が、上記(1)〜(3)に該当する場合のプロセスデータの更新処理について以下に説明する。
(1)プライマリモジュール100Pのデータベース同期部114Pは、データベース同期部114Pにおいて更新されたプロセスデータ(A、B、C)と過去のプロセスデータ(A、B)との差分に対応するプロセスデータ(C)と、プロセスデータ(C)が更新の際に新たに追加されたプロセスデータであることを示す識別情報と、をセカンダリモジュール100Sのデータベース同期部114Sに送信する。そして、セカンダリモジュール100Sのデータベース同期部114Sは、当該識別情報を参照することで、セカンダリモジュール100Sに記録されている過去のプロセスデータ(A、B)にプライマリモジュール100Pからのプロセスデータ(C)を追加することにより、セカンダリモジュール100Sに記録されている過去のプロセスデータを更新する。
(2)プライマリモジュール100Pのデータベース同期部114Pは、データベース同期部114Pにおいて更新されたプロセスデータ(A、C)と過去のプロセスデータ(A、B、C)との差分に対応するプロセスデータ(B)が更新の際に削除されたプロセスデータであることを示す識別情報のみをセカンダリモジュール100Sのデータベース同期部114Sに送信する。そして、セカンダリモジュール100Sのデータベース同期部114Sは、当該識別情報を参照することで、セカンダリモジュール100Sに記録されている過去のプロセスデータ(A、B、C)からプロセスデータ(B)を削除することにより、セカンダリモジュール100Sに記録されている過去のプロセスデータを更新する。
(3)プライマリモジュール100Pのデータベース同期部114Pは、データベース同期部114Pにおいて更新されたプロセスデータ(A、C、D)と過去のプロセスデータ(A、B、C)との差分に対応するプロセスデータ(D)と、プロセスデータ(B)が更新の際に削除されたプロセスデータであり、プロセスデータ(D)が新たに追加されたプロセスデータであることを示す識別情報と、をセカンダリモジュール100Sのデータベース同期部114Sに送信する。そして、セカンダリモジュール100Sのデータベース同期部114Sは、当該識別情報を参照することで、セカンダリモジュール100Sに記録されている過去のプロセスデータ(A、B、C)にプライマリモジュール100Pからのプロセスデータ(D)を追加し、プロセスデータ(B)を削除することにより、セカンダリモジュール100Sに記録されている過去のプロセスデータを更新する。
このように、プライマリモジュール100Pとセカンダリモジュール100Sとの間において、一方のモジュールにおいて更新されたプロセスデータの全てを相手方のモジュールに転送することなく、更新されたプロセスデータと過去のプロセスデータとの差分に対応するプロセスデータおよび/または所定の識別情報のみ送信することにより、プライマリモジュール100Pとセカンダリモジュール100Sとの間でプロセスデータを同期することが可能となるので、データ送信量の削減が可能となる。
なお、アクティブ状態であるプライマリモジュール100Pのデータベース同期部114Pは、過去のプロセスデータに対して更新されたプロセスデータの全てを非アクティブ状態であるセカンダリモジュール100Sのデータベース同期部114Sに送信するように構成されてもよい。プライマリモジュール100Pのデータベース同期部114Pは、更新されたプロセスデータを任意のタイミングでデータベース170Pに記録する。セカンダリモジュール100Sのデータベース同期部114Sは、プライマリモジュール100Pのデータベース同期部114Pから更新されたプロセスデータの全てを受信すると、当該プロセスデータを過去のプロセスデータに上書きすることで当該過去のプロセスデータを更新する。データベース同期部114Sは、任意のタイミングで更新されたプロセスデータをデータベース170Sに記録する。データベース同期部114は、上記処理を実行することにより、プライマリモジュール100Pとセカンダリモジュール100Sとの間で、それぞれが同一のプロセスデータを記憶・保持することを可能にする。
なお、二つのモジュールのデータベース同期部114間のプロセスデータは、データ量が相対的に多い場合に備えて、高速バスであるユニバーサルバス1を経由して転送される。ただし、更新するプロセスデータのようにデータ量が相対的に少ない場合には、プライマリモジュール100Pとセカンダリモジュール100Sとを直接接続する所定バスを介して送受信するように構成してもよい。
通信部120は、ユニバーサルバス1を介してスーパーバイザリステーション20やプロセスコントローラ11と相互通信するためのブロックである。通信部120は、ユニバーサルバス1のコンピュータネットワーク規格に準拠した物理的な通信条件に合致させて所定の通信プロトコルでデータ入出力を行う。
収集部130は、ローカルバス1を介してシステム上位機器類から供給された測定値に関するプロセスデータを収集する機能ブロックである。収集部130は、たとえば、スーパーバイザリステーション20からローカルバス1を介して書き込まれたプロセスデータを収集し、冗長処理部110に出力する。
収集部150は、測定値に関するプロセスデータを収集する機能ブロックである。収集するプロセスデータとしては、フィールド機器類から直流信号で直接供給されたアナログ測定値や、ローカルバス2に接続されるモジュールから供給されたデジタル測定値である。収集部150は、自己のモジュールがアクティブ状態である場合にのみ動作し、非アクティブ状態である場合には動作を停止するように構成されている。なお、収集部150は、たとえば、制御値に関するプロセスデータを出力し、フィールド機器等の外部機器に所望の制御値を設定するように構成されてもよい。設定するプロセスデータとしては、たとえば、温度調節器や圧力・流量・開閉制御弁等の各種弁装置に対して出力するアナログ設定値やデジタル設定値、ポンプやブロア、ファン等のモータ、アクチュエータ機器類に対するロジック値等である。
通信部160は、ローカルバス2を介してフィールド機器類から供給された測定値であるプロセスデータを受信し、フィールド機器類に対する設定値であるプロセスデータを出力するブロックである。通信部160は、ローカルバス2のコンピュータネットワーク規格に準拠した物理的な通信条件に合致させて所定の通信プロトコルでデータ入出力を行う。特に本実施形態における通信部160は、OPC規格に準拠したインターフェースを備えており、OPC規格に準拠した通信プロトコルで通信するI/Oサーバ31と通信可能に構成されている。
入出力演算部140は、プロセスデータの入出力を制御し、必要な演算処理を実施してデータを加工し、加工したデータを出力する機能ブロックである。非限定の例示として、入出力演算部140は、以下のような処理を実行する。
入出力演算部140は、収集部150が収集したプロセスデータをスーパーバイザリステーション20の要求に応じて転送する。入出力演算部140は、収集したプロセスデータに補正、抽出、加算・積算・平均・時間軸移動処理等の演算を施して出力する。入出力演算部140は、収集したプロセスデータに応じて所定の制御値または制御データを生成して出力する。入出力演算部140は、自己のモジュールがアクティブ状態である場合に動作し、非アクティブ状態である場合には動作を停止する。
<動作の説明>
以下、図3および4の処理シーケンス図を参照しながら、冗長コントローラ10の動作を説明する。
図3の処理シーケンス図は、たとえば、スーパーバイザリステーション20がプロセスデータの書き込みを実行する、冗長コントローラ10のモジュールがセカンダリモジュール100S(非アクティブ状態であるモジュール)である場合のデータベース同期処理を例示している。
図4の処理シーケンス図は、たとえば、スーパーバイザリステーション20がプロセスデータの書き込みを実行する、冗長コントローラ10のモジュールがプライマリモジュール100P(アクティブ状態であるモジュール)である場合のデータベース同期処理を例示している。
<スーパーバイザリステーション20がセカンダリモジュール100Sと通信する場合>
前提として、収集部150は、外部機器(フィールド機器など)からプロセスデータを収集している。入出力演算処理部140は、収集したプロセスデータに対して、必要な演算処理を施し、スーパーバイザリステーション20の要求に応じて転送している。そして、スーパーバイザリステーション20は、冗長コントローラ10のモジュールにプロセスデータの書き込みを実行する。
まず、図3のステップSP1において、モジュール診断部112は、スーパーバイザリステーション20がプロセスデータの書き込みを実行するモジュールの動作状態を診断する。
次に、ステップSP2において、モジュール診断部112が、スーパーバイザリステーション20がプロセスデータの書き込みを実行するモジュールは非アクティブ状態であること(セカンダリモジュール100Sであること)を検出した場合に、転送部1141Sは、収集されたプロセスデータを相手側のモジュール(プライマリモジュール100P)に転送する。なお、セカンダリモジュール100Sにおいて、後述する、過去のプロセスデータの更新処理は実行できないようにプログラムされており、スーパーバイザリステーション20から書き込まれたプロセスデータは、プライマリモジュール100Pに転送するようにプログラムされている。
次に、ステップSP3において、プライマリモジュール100Pの更新部1143Pにおいて、セカンダリモジュール100Sから転送されたプロセスデータで過去のプロセスデータを更新する。プライマリモジュール100Pは、更新されたプロセスデータをデータベース170Pに記録する。たとえば、過去のプロセスデータがA、Bであり、転送されたプロセスデータがA、B、Cである場合、プライマリモジュール100Pの更新部1143Pは、転送されたプロセスデータA、B、Cを過去のプロセスデータA、Bに上書きすることで過去のプロセスデータを更新する。プライマリモジュール100Pは、更新されたプロセスデータA、B、Cをデータベース170Pに記録する。
次に、ステップSP4において、プライマリモジュール100Pの転送部1141Pは、プライマリモジュール100Pにおいて更新されたプロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの識別情報の少なくともいずれか一方をセカンダリモジュール100Sに転送する。たとえば、プライマリモジュール100Pの転送部1141Pは、更新されたプロセスデータA、B、Cと過去のプロセスデータがA、Bとの差分に対応するプロセスデータ(C)と、プロセスデータ(C)が更新の際に新たに追加されたプロセスデータであることを示す識別情報と、をセカンダリモジュール100Sに送信する。
次に、ステップSP5において、セカンダリモジュール100Sは、プロセスデータを更新し、更新されたプロセスデータをデータベース170Sに記録する。たとえば、セカンダリモジュール100Sは、プロセスデータ(C)と、プロセスデータ(C)が更新の際に新たに追加されたプロセスデータであることを示す識別情報とを受信し、当該識別情報を参照することで、セカンダリモジュール100Sに記録されている過去のプロセスデータ(A、B)にプライマリモジュール100Pからのプロセスデータ(C)を追加することにより、セカンダリモジュール100Sに記録されている過去のプロセスデータを更新し、更新されたプロセスデータA、B、Cをデータベース170Sに格納する。
ステップSP1−SP5までは、所定の周期で繰り返し実行されてもよいし、スーパーバイザリステーション20がセカンダリモジュール100Sと通信を開始するごとに実行されてもよい。
以上、ステップSP1−SP5により、プライマリモジュール100Pとセカンダリモジュール100Sとのデータベース(プロセスデータ)の同期(等値化)処理が完了する。
<スーパーバイザリステーション20がプライマリモジュール100Pと通信する場合>
前提として、収集部150は、外部機器(フィールド機器など)からプロセスデータを収集している。入出力演算処理部140は、収集したプロセスデータに対して、必要な演算処理を施し、スーパーバイザリステーション20の要求に応じて転送している。そして、スーパーバイザリステーション20は、冗長コントローラ10のモジュールにプロセスデータの書き込みを実行する。
まず、図4のステップSP11において、モジュール診断部112は、スーパーバイザリステーション20がプロセスデータの書き込みを実行するモジュールの動作状態を診断する。
次に、ステップSP12において、モジュール診断部112が、スーパーバイザリステーション20がプロセスデータの書き込みを実行するモジュールはアクティブ状態であること(プライマリモジュール100Pであること)を検出した場合に、プライマリモジュール100Pの更新部1143Pは、プライマリモジュール100Pにおいて収集されたプロセスデータで過去のプロセスデータを更新する。プライマリモジュール100Pは、更新されたプロセスデータをデータベース170Pに記録する。たとえば、過去のプロセスデータがA、Bであり、収集されたプロセスデータがA、B、Cである場合、プライマリモジュール100Pの更新部1143Pは、収集されたプロセスデータA、B、Cを過去のプロセスデータA、Bに上書きすることで過去のプロセスデータを更新する。プライマリモジュール100Pは、更新されたプロセスデータA、B、Cをデータベース170Pに記録する。
次に、ステップSP13において、プライマリモジュール100Pの転送部1141Pは、プライマリモジュール100Pにおいて更新されたプロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの識別情報の少なくともいずれか一方をセカンダリモジュール100Sに転送する。たとえば、プライマリモジュール100Pの転送部1141Pは、更新されたプロセスデータA、B、Cと過去のプロセスデータがA、Bとの差分に対応するプロセスデータ(C)と、プロセスデータ(C)が更新の際に新たに追加されたプロセスデータであることを示す識別情報と、をセカンダリモジュール100Sに送信する。
次に、ステップSP14において、セカンダリモジュール100Sは、プロセスデータを更新し、更新されたプロセスデータをデータベース170Sに記録する。たとえば、セカンダリモジュール100Sは、プロセスデータ(C)と、プロセスデータ(C)が更新の際に新たに追加されたプロセスデータであることを示す識別情報とを受信し、当該識別情報を参照することで、セカンダリモジュール100Sに記録されている過去のプロセスデータ(A、B)にプライマリモジュール100Pからのプロセスデータ(C)を追加することにより、セカンダリモジュール100Sに記録されている過去のプロセスデータを更新し、更新されたプロセスデータA、B、Cをデータベース170Sに格納する。
ステップSP11−SP14までは、所定の周期で繰り返し実行されてもよいし、スーパーバイザリステーション20がプライマリモジュール100Pと通信を開始するごとに実行されてもよい。
以上、ステップSP11−SP14により、プライマリモジュール100Pとセカンダリモジュール100Sとのデータベース(プロセスデータ)の同期(等値化)処理が完了する。
<本実施形態の効果>
以上のように説明した本実施形態によれば、セカンダリモジュール100Sにおいて収集されたプロセスデータをプライマリモジュール100Pに転送し、プライマリモジュール100Pにおいてセカンダリモジュール100Sから転送されたプロセスデータで過去のプロセスデータを更新し、プライマリモジュール100Pにおいて更新された当該プロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの少なくとも一部のプロセスデータを識別する識別情報の少なくともいずれか一方をセカンダリモジュール100Sに転送するので、スーパーバイザリステーション20が、通信する冗長コントローラ10のモジュールの動作状態を都度診断しなければならないという状況を防止し、スーパーバイザリステーション20の汎用性が失われることを防止しながら通信することができる。
(その他の実施形態)
本発明は上記各実施形態に限定されることなく種々に変更して利用することができる。例えば、上記実施形態では、OPCサーバ(I/Oサーバ31)はOPCクライアントである冗長コントローラと離れたモジュールとして説明したが、冗長コントローラ10のそれぞれのモジュールはOPCサーバを備えるか、OPCサーバそのものであってもよい。
1…ユニバーサルバス
2…ローカルバス
10…冗長コントローラ
11…プロセスコントローラ
20…スーパーバイザリステーション
31…I/Oサーバ
33…シリアル通信ユニット
41,43−45…フィールド機器
100P…プライマリモジュール
100S…セカンダリモジュール
110P、110S…冗長処理部
112P、112S…モジュール診断部
114P、114S…データベース同期部
120P、120S…通信部
130P、130S…収集部
140P、140S…入出力演算処理部
150P、150S…収集部
160P、160S…通信部
170P、170S…データベース
1141P、1141S…転送部
1143P、1143S…更新部
1145P、1145S…比較部
1147P、1147S…算出部

Claims (3)

  1. 第1モジュールおよび第2モジュールを備えた二重化された冗長コントローラであって、
    前記第1モジュールおよび前記第2モジュールの少なくともいずれか一方の動作状態を診断するモジュール診断部と、
    前記モジュール診断部が前記第1モジュールは非アクティブ状態であることを検出した場合に、当該第1モジュールにおいて収集されたプロセスデータを第2モジュールに転送する第1転送部と、
    前記第2モジュールにおいて前記第1モジュールから転送された前記プロセスデータで過去のプロセスデータを更新する第1更新部と、
    前記第2モジュールにおいて更新された当該プロセスデータの少なくとも一部のプロセスデータおよび当該プロセスデータの少なくとも一部のプロセスデータを識別する識別情報の少なくともいずれか一方を前記第1モジュールに転送する第2転送部と、を備える、
    冗長コントローラ。
  2. 前記モジュール診断部が前記第1モジュールはアクティブ状態であることを検出した場合に、当該第1モジュールにおいて収集されたプロセスデータで過去のプロセスデータを更新する第2更新部をさらに備え、
    前記第1モジュールの前記第1転送部は、更新された前記プロセスデータの少なくとも一部のプロセスデータを前記第2モジュールに転送する、
    請求項1に記載の冗長コントローラ。
  3. 前記第1モジュールおよび前記第2モジュールは、それぞれ、
    収集した前記プロセスデータおよび前記過去のプロセスデータを記録する記録部と、
    更新された前記プロセスデータと前記過去のプロセスデータとを比較する比較部と、をさらに備え、
    更新された前記プロセスデータの少なくとも一部のプロセスデータは、更新された前記プロセスデータと前記過去のプロセスデータとの差分に対応するプロセスデータを含み、
    前記第1または第2転送部は、前記差分に対応する前記プロセスデータおよび当該プロセスデータを識別する識別情報の少なくともいずれか一方を転送する、
    請求項1又は2に記載の冗長コントローラ。
JP2015138920A 2015-07-10 2015-07-10 冗長コントローラ Pending JP2017021587A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015138920A JP2017021587A (ja) 2015-07-10 2015-07-10 冗長コントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015138920A JP2017021587A (ja) 2015-07-10 2015-07-10 冗長コントローラ

Publications (1)

Publication Number Publication Date
JP2017021587A true JP2017021587A (ja) 2017-01-26

Family

ID=57890074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015138920A Pending JP2017021587A (ja) 2015-07-10 2015-07-10 冗長コントローラ

Country Status (1)

Country Link
JP (1) JP2017021587A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549358A (zh) * 2018-03-28 2018-09-18 安徽航瑞航空动力装备有限公司 一种基于can总线的冗余控制器诊断系统及方法
JP6491769B1 (ja) * 2018-02-09 2019-03-27 株式会社タカラトミー ねじ送り装置及び形態変化玩具
JP2021105773A (ja) * 2019-12-26 2021-07-26 アズビル株式会社 コントローラ及び施設監視システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6491769B1 (ja) * 2018-02-09 2019-03-27 株式会社タカラトミー ねじ送り装置及び形態変化玩具
JP2019136268A (ja) * 2018-02-09 2019-08-22 株式会社タカラトミー ねじ送り装置及び形態変化玩具
CN108549358A (zh) * 2018-03-28 2018-09-18 安徽航瑞航空动力装备有限公司 一种基于can总线的冗余控制器诊断系统及方法
JP2021105773A (ja) * 2019-12-26 2021-07-26 アズビル株式会社 コントローラ及び施設監視システム

Similar Documents

Publication Publication Date Title
CN106843166B (zh) 经由通信网络监控现场设备
CN102144382B (zh) 用于冗余服务器自动故障转移的方法和系统
US7603361B2 (en) Data processing methods and systems for use in industrial control
ES2288745T3 (es) Red de automatizacion con componentes de red que generan mensajes de estado.
RU2695052C2 (ru) Построение иерархии устройств для удаленного оконечного блока
EP3333657A1 (en) Communication system, communication device, and communication program
US9043053B2 (en) Aircraft information management system
JP2017021587A (ja) 冗長コントローラ
EP3547049A1 (en) Safety control system and safety control unit
CN107430391B (zh) 管理系统
JP3227309U (ja) コントローラ・エリア・ネットワーク・バスでのエラー記録メカニズムのためのシステムおよび方法
US20140022937A1 (en) Integrated device management over ethernet network
JP2009284119A (ja) フィールドバス通信システム及びデータ管理装置
JP2012208706A (ja) 冗長コントローラ
JP2019174950A (ja) サポート装置、サポートプログラム、設定方法
JP6694327B2 (ja) 機器制御システム
CN116055347A (zh) 运算系统及网络装置管理方法
JP2017021588A (ja) 冗長用モジュール、冗長コントローラ、およびプログラム
JP7107262B2 (ja) 制御システムおよび制御装置
CN115280729A (zh) 建立工业终端设备与以太网络之间的时间敏感通信
JP2007128436A (ja) フィールド通信システム
JPWO2020217434A1 (ja) データ収集装置、データ収集方法及びプログラム
US11893873B2 (en) Information collection apparatus, computer-readable recording medium, and information collection method
CN102710444A (zh) 一种端口连接关系确定方法、装置及系统
JP2019197449A (ja) 機器管理装置およびタグ名検証方法