JP5583046B2 - 二重化制御装置 - Google Patents

二重化制御装置 Download PDF

Info

Publication number
JP5583046B2
JP5583046B2 JP2011027511A JP2011027511A JP5583046B2 JP 5583046 B2 JP5583046 B2 JP 5583046B2 JP 2011027511 A JP2011027511 A JP 2011027511A JP 2011027511 A JP2011027511 A JP 2011027511A JP 5583046 B2 JP5583046 B2 JP 5583046B2
Authority
JP
Japan
Prior art keywords
controller
memory
operation mode
input
control unit
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.)
Expired - Fee Related
Application number
JP2011027511A
Other languages
English (en)
Other versions
JP2012168635A (ja
Inventor
浩一 甲斐
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011027511A priority Critical patent/JP5583046B2/ja
Priority to CN201210001127.6A priority patent/CN102636987B/zh
Publication of JP2012168635A publication Critical patent/JP2012168635A/ja
Application granted granted Critical
Publication of JP5583046B2 publication Critical patent/JP5583046B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)

Description

本発明の実施形態は、二重化制御装置に関する。
工場や公共施設等の各種プラントの動作を制御するコントローラには、このコントローラに何等かの異常が発生して、制御対象のプラントが停止すると重大な事故に至る恐れがある。
一般に、このような制御対象に対しては、同一構成の2つのコントローラを接続して、いずれか一方を稼動系、他方を待機系として、通常は稼動系のみで制御対象を制御し、稼動系に異常が生じたときに、待機系を稼動系用に切り替え、制御を続行するように構成される待機冗長型の二重化制御装置がある。
このような二重化制御装置においては、2つのコントローラのうち、一方が稼動状態で、かつ他方がバックアップに備えて待機状態となり、コントローラ間で互いに相手の運転状態を監視し、稼動系がダウンしたら待機系がそれを検知し、待機系を稼動系に切替えて制御を継続して実行している。
そのため、従来の二重化制御装置は、互いに相手のコントローラの状態を検知及び通知するためのステータス伝送路(バス)とそれをインタフェースするステータス伝送路(バス)入出力ポートと、コントローラがバックアップ時に制御を継続して実行するためのデータとなる実行結果情報を相手のコントローラに転送するためのデータ伝送路(バス)とそれをインタフェースするデータ伝送路(バス)インタフェースと、実行結果情報を受信及び送信するためのバッファとを備えるようにしている。
このような構成によれば、システムダウンの確率が軽減され、信頼度の高い二重化制御装置を構成することができる。
従来の二重化機能を備えたコントローラは、その重要性から専用の二重化制御部を備え、その二重化制御部を使用して二重化情報を専用にやりとりしながら二重化方式を実現していた。
特開2008−146239号公報
従来の二重化機能を備えたコントローラは、専用の二重化制御部により高速で大量の二重化情報のやりとりを可能とするため、二重化制御部の構成が複雑になり且つ比較的高価になる。そのため小規模なプラントや製造ライン等の産業分野で使用されるコントローラでは、高価な仕組みを採用することが困難であった。
本発明は、上記事情を鑑みて成されたものであって、構成が複雑になることを回避し、安価な二重化制御装置を提供することを目的とする。
実施形態による二重化制御装置は、第1コントローラと、第2コントローラと、外部機器と接続可能なI/Oモジュールと、前記第1コントローラ前記第2コントローラおよび、前記I/Oモジュールが実装される複数のスロット備えた入出力バスと、を備え、前記第1コントローラおよび前記第2コントローラのそれぞれは、制御部と、前記入出力バスへデータを出力するおよび前記入出力バスからデータが入力されるインタフェース部と、前記制御部および前記インタフェース部からアクセス可能なメモリと、を備え、前記メモリは、前記制御部の運転モードを明示するメモリ領域と、他方の前記制御部の運転モードを明示するメモリ領域と、実行結果を等値化するために他方の前記制御部から実行結果データが書き込まれるメモリ領域と、を備え、前記第1コントローラおよび前記第2コントローラの制御部は、前記入出力バスに実装されたスロット位置で、プライマリ側であるかセカンダリ側であるかを判断する手段と、他方の前記制御部の運転モード等から前記第1コントローラおよび前記第2コントローラの制御部が稼動系か待機系かを判断する手段と、前記判断する手段により稼動系と判断したときに、前記I/Oモジュールにデータを入出力する手段と、ユーザ制御プログラムを実行する手段と、待機系の前記制御部と実行結果データを等値化するために待機系側の前記メモリに実行結果データを書き込む手段と、自身の運転モードを待機系の前記メモリに書き込み、且つ、他方の運転モードを待機系のメモリから読み出す手段と、前記判断する手段により待機系と判断したときに、稼働系と判断した前記制御部から書き込まれた運転モードをメモリから読み出し次の運転モードを判定する手段と、稼働系と判断した前記制御部が停止モードを示すときに、稼動系処理へ移行し稼動系の前記制御部として運転を継続実行する手段と、を備え、前記制御部は、初期化処理において、相手監視時間をクリアし、他方の前記制御部の運転モードから他方の前記制御部の運転モードが稼動系か否か判断し、稼働系であるときに待機系処理を行い、他方の前記制御部の運転モードが稼動系でなく且つ自己がプライマリ側であるときに稼動系処理を行い、相手が稼動系でなく且つ自己がセカンダリ側であるときに相手監視時間を更新するとともに相手監視時間が所定の時間をオーバーするまで相手の運転モードが稼動系でなければ、稼動系処理を行う二重化制御装置。

実施形態の二重化制御装置の一構成例を説明するための図である。 図1に示す二重化制御装置のデータの流れの一例を説明するための図である。 図1に示す二重化制御装置のデータの流れの一例を説明するための図である。 図1に示す入出力バスのスロットおよびI/O空間の割り付けの一例を示す図である。 図1に示す二重化制御装置の初期化処理の一例を説明するためのフローチャートである。 図1に示す二重化制御装置の稼動系処理の一例を説明するためのフローチャートである。 図1に示す二重化制御装置の待機系処理の一例を説明するためのフローチャートである。 図1に示す二重化制御装置の稼動系処理および待機系処理の一例を説明するためのタイミングチャートである。 図1に示す二重化制御装置の切り替わり動作の一例を説明するためのタイミングチャートである。
以下、実施形態について、図面を参照して説明する。
図1に、本実施形態の二重化制御装置の一構成例を示す。本実施形態に係る二重化制御装置は、プライマリ側コントローラ10と、セカンダリ側コントローラ11と、I/O出力モジュール12と、I/O入力モジュール13と、入出力バス1と、を備えている。プライマリ側コントローラ10、セカンダリ側コントローラ11と、I/O出力モジュール12と、I/O入力モジュール13とは、それぞれが入出力バス1に設けたスロットに実装され、入出力バス1により互いに信号を送受信することが可能に構成されている。
プライマリ側コントローラ10は、入出力バス1への信号の送信および入出力バス1からの信号の受信を行うためのインタフェース部101と、メモリMEMP100と、インタフェース部101およびメモリMEMP100を制御するCPU部102と、を備えている。
メモリMEMP100は、インタフェース部101と接続されている。したがって、プライマリ側コントローラ10は、セカンダリ側コントローラ11、I/O出力モジュール12、および、I/O入力モジュール13から受信されるデータの書き込み、および、データの読み出しが可能である。またCPU部102からメモリMEMP100へのデータの書き込みおよびメモリMEMS110からCPU部102へのデータの読み出しも可能である。
インタフェース部101とCPU部102とは、内部バス103で接続されている。CPU部102は、内部バス103、インタフェース部101および入出力バス1を介して、他のモジュール11、12、13のメモリMEMS110、MEMO120、MEMI130を直接読み書きすることができる。
CPU部102は、入出力バス1に実装されたスロット位置で、プライマリ側であるかセカンダリ側であるかを判断する手段(図示せず)と、相手の運転モード等から自身が稼動系であるか待機系であるかを判断する手段(図示せず)と、を備えている。
プライマリ側コントローラ10、すなわち、CPU部102が、稼動系コントローラに搭載される場合には、さらに、I/O入力モジュール12、13にデータを入出力する手段(図示せず)と、ユーザ制御プログラムを実行する手段(図示せず)と、待機系コントローラと実行結果データを等値化するために待機系コントローラのメモリに実行結果データを書き込む手段(図示せず)と、自身の運転モードを待機系コントローラのメモリに書き込み、且つ、相手の運転モードを待機系コントローラのメモリから読み出す手段(図示せず)と、を備える。
CPU部102が、待機系コントローラに搭載される場合には、さらに、自分の運転モードを自分のメモリに書き込み、相手から自分のメモリに書き込まれた相手の運転モードを読み出し次の運転モードを判定する手段(図示せず)と、自分を稼動系として運転する手段(図示せず)とを備える。
セカンダリ側コントローラ11は、プライマリ側コントローラ10と同様の構成である。すなわち、セカンダリ側コントローラ11は、入出力バス1への信号の送信および入出力バス1からの信号の受信を行うためのインタフェース部111と、メモリMEMS110と、インタフェース部111およびメモリMEMS110を制御するCPU部112と、を備えている。
メモリMEMS110は、インタフェース部111と接続されている。したがって、セカンダリ側コントローラ11は、プライマリ側コントローラ10、I/O出力モジュール12、および、I/O入力モジュール13から受信されるデータの書き込み、および、データの読み出しが可能である。またCPU部112からメモリMEMS110へのデータの書き込みおよびメモリMEMS110からCPU部112へのデータの読み出しも可能である。
インタフェース部111とCPU部112とは、内部バス113で接続されている。CPU部112は、内部バス113、インタフェース部111および入出力バス1を介して、他のモジュール10、12、13のメモリMEMP100、MEMO120、MEMI130を直接読み書きすることができる。
CPU部112は、入出力バス1に実装されたスロット位置で、プライマリ側であるかセカンダリ側であるかを判断する手段(図示せず)と、相手の運転モード等から自身が稼動系であるか待機系であるかを判断する手段(図示せず)と、を備えている。ここでの判断方法については初期化処理として後に説明する。
セカンダリ側コントローラ10、すなわち、CPU部112が、稼動系コントローラに搭載される場合には、さらに、I/O入力モジュール12、13にデータを入出力する手段(図示せず)と、ユーザ制御プログラムを実行する手段(図示せず)と、待機系コントローラと実行結果データを等値化するために待機系コントローラのメモリに実行結果データを書き込む手段(図示せず)と、自身の運転モードを待機系コントローラのメモリに書き込み、且つ、相手の運転モードを待機系コントローラのメモリから読み出す手段(図示せず)と、を備える。
CPU部112が、待機系コントローラに搭載される場合には、さらに、自分の運転モードを自分のメモリに書き込み、相手から自分のメモリに書き込まれた相手の運転モードを読み出し次の運転モードを判定する手段(図示せず)と、自分を稼動系として運転する手段(図示せず)とを備える。
上記プライマリ側コントローラ10およびセカンダリ側コントローラ11は、入出力バス1のプライマリ側用スロットとセカンダリ側用スロットに実装し、その他のスロットにはI/Oモジュールを実装する。
入出力バス1は、コントローラやI/O入力モジュール、I/O出力モジュールを実装するための複数のスロット1−1〜1−Nを備えている。スロット1−1は、プライマリ側コントローラ10を実装し、スロット1−2は、セカンダリ側コントローラ11を実装する。スロット1−3以降のスロットには、I/O出力モジュール12やI/O入力モジュール13を実装可能としている。入出力バス1は、例えば、PCI(Peripheral Component Interconnect)バスやISA(Industry Standard Architecture)バス等のパラレルバスである。なお、入出力バス1は、シリアルバスであってもよく、イーサネット(登録商標)ケーブル等のローカルエリアネットワーク(LAN)ケーブルであってもよい。
I/O出力モジュール12には、入出力バス1とインタフェースを行うためのインタフェース部121と、外部出力機器14へデータを出力する出力インタフェース部122と、インタフェース部121を介してプライマリ側コントローラ10およびセカンダリ側コントローラ11からデータの読み書きが可能で、且つ、出力インタフェース部122からもデータの読み書きが可能なメモリMEMO120と、を備えている。メモリMEMO120は、インタフェース部121と、出力インタフェース部122とに接続されている。出力インタフェース部122は、常時、メモリMEMO120に書き込まれた出力データを外部出力機器14へ出力する。
I/O入力モジュール13には、入出力バス1とインタフェースを行うためのインタフェース部131と、外部入力機器15からのデータが入力される入力インタフェース部132と、インタフェース部131を介してプライマリ側コントローラ10およびセカンダリ側コントローラ11からデータの読み書きが可能で、且つ、入力インタフェース部132からもデータの読み書きが可能なメモリMEMI130と、を備えている。メモリMEMI130は、インタフェース部131と入力インタフェース部132とに接続されている。及び、入力インタフェース部132は、常時、外部入力機器15から入力された入力データをメモリMEMI130に書き込む。
図4に、入出力バス1のI/O空間40とスロット1−1〜1−Nの割り付けの一例を示す。スロット1−1〜1−Nそれぞれに、一定のI/O空間が割り当てられ、該当スロットの空間内に該当スロットのインタフェース部に接続されたメモリMEMP100、MEMS110、MEMO120、MEMI130が割り付けられている。
スロット1−1のメモリ空間には、プライマリ側コントローラ10のメモリMEMP100が割り付けられ、スロット1−2のメモリ空間には、セカンダリ側コントローラ11のメモリMEMS110が割り付けられている。スロット1−3以降には、実装されているI/O出力モジュール12のメモリMEMO120、I/O入力モジュール13のメモリMEMI130が各々割り付けられている。
スロット1−1とスロット1−2のI/O空間に割り付けられているメモリ空間は、二重化情報部46、47として、稼動系コントローラと待機系コントローラとで二重化情報のやりとりを行うためのメモリとして使用する。
I/O空間の二重化情報部46、47は、自身の運転モードを明示するメモリ410と、相手の運転モードを明示するメモリ411と、実行結果を等値化するために相手から実行結果データ書き込まれるメモリ412と、を含む。
これら二重化情報部46、47は、稼動系コントローラと待機系コントローラとの間で相手のコントローラから互いに読み書きができ、自信のコントローラ内でも読み書きができる。
スロット1−3以降のスロットに割り付けられたI/O空間に割り付けられているメモリMEMO120、MEMI130は、I/O出力モジュール12のメモリMEMO120であれば、出力レジスタ部48で構成され、各出力レジスタ0〜Mに稼動系コントローラから出力データが書き込まれ、この出力レジスタの出力データは、出力インタフェース部122により外部出力機器14に出力される。
I/O入力モジュール13のメモリMRMI130であれば、入力レジスタ部49で構成され、各入力レジスタ0〜Nには、入力インタフェース部132により外部入力機器15から入力した入力データが書き込まれ、稼動系コントローラから入力データとして読み出される。
上記のように、プライマリ側コントローラ10およびセカンダリ側コントローラ11は、I/O空間にアクセスすることで、プライマリ側コントローラ10、セカンダリ側コントローラ11、I/O出力モジュール12、および、I/O入力モジュール13に具備されたインタフェース部101、111、121、131に接続されたメモリMEMP100、MEMS110、MEMO120、MEMI130に自由にアクセスできる。
図2は、プライマリ側コントローラ10が稼動系コントローラで、セカンダリ側コントローラ11が待機系コンロトーラである場合の、データの流れの一例を示している。稼動系コントローラ10から、I/O出力モジュール12へ出力データを出力する時のデータの流れ2−1は、先ず、CPU部102からデータが、内部バス103を介してインタフェース部101へ出力される。インタフェース部101へ出力されたデータは、更に、入出力バス1を通って、I/O出力モジュール12のインタフェース部121に出力される。次に、インタフェース部121を介して、メモリMEMO120の出力レジスタ部48の各出力レジスタ413、414、415、416に書き込まれる。
更に、常時、出力インタフェース部122により、出力レジスタ部48の各出力レジスタ413、414、415、416に書き込まれた出力データを、外部出力機器14に出力する(2−2)。
次に、稼動系コントローラ10により、I/O入力モジュール13の入力データを入力する時のデータの流れ2−3について説明する。先ず、CPU部102から、入力するレジスタの読み出しを要求すると、読み出し要求が、内部バス103を介して、インタフェース部101へ出力され、更に、入出力バス1を通って、I/O入力モジュール13のインタフェース部131に出力される。インタフェース部131が読み出し要求に従って、メモリMEMI130の入力レジスタ部49の各入力レジスタ417、418、419、420から読み出した入力データを、今度は、入出力バス1を介して、稼動系コントローラ10のインタフェース部101へ入力し、インタフェース部101から、内部バス103を介して、CPU部102へ入力データが入力される。
更に、常時、入力インタフェース部132により、外部入力機器15から入力した入力データを、入力レジスタ部49の各出力レジスタ417、418、419、420に書き込む(2−4)。
次に、稼動系コントローラ10から、待機系コントローラ11のメモリMEMS110にデータを書き込む時のデータの流れ2−5の一例を説明する。先ず、CPU部102から、出力データが、内部バス103を介して、インタフェース部101へ出力され、更に、入出力バス1を通って、待機系コントローラ11のインタフェース部111に出力される。次に、インタフェース部111を介して、メモリMEMS110に書き込まれる。更に、メモリMEMS110に書き込まれたデータはCPU部112により読み出し可能である(2−6)。
次に、稼動系コントローラ10から、待機系コントローラ11のデータを読み出す時のデータの流れ2−7の一例を説明する。先ず、CPU部102からメモリの読み出しを要求すると、読み出し要求が、内部バス103を介して、インタフェース部101へ出力され、更に、入出力バス1を通って、待機系コントローラ11のインタフェース部111に出力される。次に、インタフェース部111が読み出し要求に従って、メモリMEMS110から読み出したデータを、今度は、入出力バス1を介して、コントローラ10のインタフェース部101へ入力し、インタフェース部101から、内部バス103を介して、CPU部102へデータが読み込まれる。なお、CPU部112から自身のメモリMEMS110へデータの書き込むことも可能である(2−8)。
図3は、セカンダリ側コントローラ11が稼動系コントローラで、プライマリ側コントローラ10が待機系コントローラである場合のデータの流れの一例を示している。稼動系コントローラ11から、I/O出力モジュール12へ出力データを出力する時のデータの流れ3−1の一例について説明する。先ず、CPU部112から、出力データが、内部バス113を介して、インタフェース部111へ出力され、更に、入出力バス1を通って、I/O出力モジュール12のインタフェース部121に出力される。次に、インタフェース部121を介して、メモリMEMO120の出力レジスタ部48の各出力レジスタ413、414、415、416に書き込まれる。更に、常時、出力インタフェース部122により、出力レジスタ部48の各出力レジスタ413、414、415、416に書き込まれた出力データを、外部出力機器14に出力する(3−2)。
次に、稼動系コントローラ11から、I/O入力モジュール13の入力データを入力する時のデータの流れ3−3の一例について説明する。先ず、CPU部112から、入力するレジスタの読み出しを要求すると、読み出し要求が、内部バス113を介して、インタフェース部111へ出力され、更に、入出力バス1を通って、I/O入力モジュール13のインタフェース部131に出力される。次に、インタフェース部131が読み出し要求に従って、メモリMEMI130の入力レジスタ部49の各入力レジスタ417、418、419、420から読み出した入力データを、今度は、入出力バス1を介して、コントローラ11のインタフェース部111へ入力し、インタフェース部111から、内部バス113を介して、CPU部112へ入力データが入力される。更に、常時、入力インタフェース部132により、外部入力機器15から入力した入力データを、入力レジスタ部49の各出力レジスタ417、418、419、420に書き込む(3−4)。
次に、稼動系コントローラ11から、待機系コントローラ10のメモリMEMP100にデータを書き込む時のデータの流れ3−5の一例について説明する。先ず、CPU部112から、出力データが、内部バス113を介して、インタフェース部111へ出力され、更に、入出力バス1を通って、待機系コントローラ10のインタフェース部101に出力される。次に、インタフェース部101を介して、メモリMEMP100に書き込まれる。更に、メモリMEMP100に書き込まれたデータはCPU部102で読み出し可能である(3−6)。
次に、稼動系コントローラ11から、待機系コントローラ10のデータを読み出す時のデータの流れ3−7の一例について説明する。先ず、CPU部112からメモリの読み出しを要求すると、読み出し要求が、内部バス113を介して、インタフェース部111へ出力され、更に、入出力バス1を通って、待機系コントローラ10のインタフェース部101に出力される。次に、インタフェース部101が読み出し要求に従って、メモリMEMP100から読み出したデータを、今度は、入出力バス1を介して、稼動系コントローラ11のインタフェース部111へ入力し、インタフェース部111から、内部バス113を介して、CPU部112へデータが読み込まれる。
図5は、プライマリ側コントローラ10およびセカンダリ側コントローラ11のCPU部102、112において、稼動系と待機系との選択する初期化処理(ステップ5−1)の一例を示すフローチャートである。プライマリ側コントローラ10およびセカンダリ側コントローラ11のCPU部102、112は、最初に自分がプライマリ側であるかセカンダリ側であるかを判断し、相手の運転モードにより自分を稼動系に立ち上げるか、待機系に立ち上げるかを以下のように判断する。
先ず、相手監視時間をクリアする(ステップ5−2)。次に相手のメモリの二重化情報部46、47から相手の運転モードを読み出す(ステップ5−3)。次に、相手の運転モードが稼動系の運転であれば(既に稼動系で運転中であれば)、待機系処理(ステップ7−1)へ移行する(ステップ5−4)。
次に、自分がプライマリ側であれば稼動系処理(ステップ6−1)へ移行する(ステップ5−5)。次に、相手監視時間を更新する(ステップ5−6)。相手監視時間が所定の時間をオーバーしていなければ、再度、相手のメモリの二重化情報部46、47から相手の運転モードを読み出し、同じ動作を繰り返す。相手監視時間が所定の時間をオーバーしていれば、稼動系処理(ステップ6−1)へ移行する(ステップ5−7)。
図6は、プライマリ側コントローラ10およびセカンダリ側コントローラ11のCPU部102、112に実装されている稼動系処理(ステップ6−1)と二重化トラッキング処理(ステップ6−7)と停止処理(ステップ6−12)との一例を示すフローチャートである。稼動系処理(ステップ6−1)と二重化トラッキング処理(ステップ6−7)とはスキャン周期に従って定期的に実行される。
稼動系処理(ステップ6−1)では、先ず、自分の運転モード(稼動系を示す運転モード)を相手(待機系側)のメモリの二重化情報部46、47の相手の運転モードメモリ411に書き込む(ステップ6−2)。
次に、I/O入力モジュール13のメモリMRMI(メモリ49)から入力データを読み出す(ステップ6−3)。次に、読み出した入力データを元にユーザ制御プログラムを実行する(ステップ6−4)。次に、ユーザ制御プログラムの実行で得られた出力データをI/O出力モジュール12のメモリMEMO120(メモリ48)へ書き込む(ステップ6−5)。
以上の処理の中で異常が発生していなければ、二重化トラッキング処理(ステップ6−7)へ移行し、異常が発生していれば、停止処理(ステップ6−12)へ移行する(ステップ6−6)。
二重化トラッキング処理(ステップ6−7)では、先ず、相手(待機系側)のメモリの二重化情報部46、47の自分の運転モードメモリ410から運転モードを読み出し、相手が待機系の運転モードであれば(ステップ6−9)、稼動系処理(ステップ6−1)でユーザ制御プログラムを実行した時の実行結果データを、相手(待機系側)のメモリの二重化情報部46、47の等値化用の実行結果データメモリ412へ書き込み、稼動系と待機系との実行状態を等値化する(ステップ6−10)。
次に、次のスキャン周期に達するまで実行を待ち、次のスキャン周期に達したら、繰り返し稼動系処理を実行する(ステップ6−11)。
停止処理(ステップ6−12)では、自分の停止モードを相手のメモリの二重化情報部46、47の相手の運転モードメモリ411へ書き込む(ステップ6−13)。次に、再スタートの要求がなければ停止処理を最初から実行し、再スタート要求があれば、図5で示した初期化処理(ステップ5−1)から実行を開始する(ステップ6−14)。
図7は、プライマリ側コントローラ10およびセカンダリ側コントローラ11のCPU部102、112での待機系処理(ステップ7−1)の一例を示すフローチャートである。待機系処理(ステップ7−1)では、先ず、自分のメモリの二重化情報部46、47の自分の運転モードメモリ410に自分の運転モード(待機系を示す運転モード)を書き込む、(ステップ7−2)。この運転モードは、稼動系コントローラの稼動系処理(ステップ6−1)の中で読み出される(ステップ6−8)。
次に、自分メモリの二重化情報部46,47の相手の運転モードメモリ411から、相手の運転モードを読み出す(ステップ7−3)。相手が、稼動系を示す運転モードであれば、待機系処理を繰り返し実行する(ステップ7−4)。相手が、停止を示す運転モードであれば、自分のメモリの二重化情報46、47の等値化用の実行結果データメモリ412から等値化のための実行結果データを読み出し自分の実行データに取り込む(ステップ7−5)。次に稼動系処理(ステップ6−1)へ移行し、稼動系としてコントローラを実行する。
図8は、上記二重化制御装置における通常の二重化運転の一例を説明するタイミングチャートを示す。稼動系側コントローラ810は、スキャン周期89に従って定周期で稼動系処理(ステップ6−1)を実行する。
稼動系処理(ステップ6−1)では、先ず、タイミング81において、自分の運転モードを待機系側コントローラ811の二重化情報部813の相手の運転モードメモリ411に書き込む820。次に、タイミング82において、稼動系側コントローラ810はI/O入力モジュール13から入力データを読み出す(ステップ6−3)。次に、タイミング83において、入力データを入力情報としてユーザ制御プログラムを実行する(ステップ6−4)。次に、タイミング84において、ユーザ制御プログラムで生成した出力データを、I/O出力モジュール12へ書き込む(ステップ6−5)。次に、タイミング85において、待機系側コントローラ811の二重化情報部813の自分の運転モードメモリ410から、待機系側コントローラ811の運転モードを読み出す823(ステップ6−8)。待機系側コントローラ811の運転モードが、待機系を示す運転モードであれば、次に、タイミング86において、ユーザ制御プログラムの実行結果データを等値化するために、待機系側811の二重化情報部813の等値化用の実行結果データメモリ412へ書き込む824(ステップ6−10)。
待機系側コントローラ811は、少なくとも、スキャン周期89よりも短い周期で、待機系処理(ステップ7−1)を一定周期で実行する。待機系処理(ステップ7−1)では、先ず、タイミング87において、自分の二重化情報部813の自分の運転モードメモリ410に、待機モードを示す運転モードを書き込む821(ステップ7−2)。次に、タイミング88において、自分の二重化情報部813の相手の運転モードメモリ411から、相手の運転モードを読み出す822(ステップ7−3)。相手の運転モードが稼動系を示す運転モードであれば、次の周期でも上記の待機系処理(ステップ7−1)を繰り返し実行する。
以上のように、稼動系側810は、一定周期で、I/Oデータの入出力(タイミング82、84)とユーザ制御プログラムを実行し(タイミング83)、制御対象を制御しながら、二重化情報である自分の運転モードと等値化用の実行結果データとを待機系側コントローラ811に書き込む(タイミング81、86)ことで、二重化の稼動系の運転を維持している。
一方、待機系側コントローラ811は、常時、待機系側コントローラ810から書き込まれる運転モードを監視し(タイミング88)、及び、同時に稼動系側コントローラ810から書き込まれる等値化用の実行結果データ412を保持し、いつでも稼動系側コントローラ810に切り替われるように二重化の待機系の運転を維持している。
なお、二重化運転中においても、稼動系側コントローラ810から待機系側811のメモリをアクセスするのみで、待機系側コントローラ811は、稼動系側コントローラ810のメモリをアクセスしないため、メモリアクセスの経路である入出力バス1とインタフェース部101、111、121、131との負荷を低減することが可能となり、それを構成する回路を簡素化することが可能である。
図9は、稼動系側コントローラ811での異常発生による二重化の切り替わりのタイミングチャートを示す。稼動系側コントローラ810は、あるスキャン周期91の稼動系処理(ステップ6−1)において、タイミング82、84でのI/Oデータの入出力(ステップ6−3、6−5)やタイミング83でのユーザ制御プログラムの実行(ステップ6−4)で、異常を検出すると(タイミング92)、直ちに停止処理(ステップ6−12)95へ移行する。
停止処理(ステップ6−12)では、先ず、タイミング93において停止モードを示す運転モードを、相手(待機系側コントローラ)の二重化情報部813の相手の運転モードメモリ411に書き込む(ステップ6−13)。稼動系側コントローラ810は、次に、新たな再スタート要求がなければ、この停止モードを維持する。
一方、待機系側コントローラ811は、待機系処理(ステップ7−1)の中で、タイミング96において、自分の二重化情報部813の相手の運転モードメモリ411から、相手の運転モードを読み出し(ステップ7−3)、相手が停止モードを示していれば、タイミング98において自分の二重化情報部813の実行結果データメモリ412から、相手が等値化用に書き込んだユーザ制御プログラムの実行結果データを読み出し、自分の実行データに取り込み(ステップ7−5)、タイミング910より直ちに、稼動系処理(ステップ6−1)へ移行し稼動系側911として運転を継続実行する。
以上のように、図1で示したハード構成と、図4で示したスロットとI/O空間との割り付けとを備え、図5で示した初期化処理の手段と、図6で示した稼動系処理と二重化トラッキング処理と停止処理の手段と、図7で示した待機系処理の手段を備え、それらを組み合わせることで、専用の二重化制御部を必要としない、簡易で安価な二重化制御装置を実現することが可能になった。すなわち、本実施形態によれば、構成が複雑になることを回避し、安価な二重化制御装置を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100、110、120、130…メモリ、1…入出力バス、10…プライマリ側コントローラ、11…セカンダリ側コントローラ、12…I/O出力モジュール、12…O入力モジュール、13…I/O入力モジュール、14…外部出力機器、15…外部入力機器、40…I/O空間、46、47…二重化情報部、410…自分の運転モードメモリ、411…相手の運転モードメモリ、48…出力レジスタ部、413、414、415、416…出力レジスタ、49…入力レジスタ部、413、414、415、416…入力レジスタ、89、91、910…スキャン周期、101、111、121、131…インタフェース部、102、112…CPU部(制御部)、103、113、123、133…内部バス、122…出力インタフェース部、132…入力インタフェース部、89、91、910…スキャン周期、810…稼動系、811,911…待機系、812…稼動系側の二重化情報部、813…待機系側の二重化情報部、95…停止。

Claims (2)

  1. 第1コントローラと、
    第2コントローラと、
    外部機器と接続可能なI/Oモジュールと、
    前記第1コントローラ前記第2コントローラおよび、前記I/Oモジュールが実装される複数のスロット備えた入出力バスと、を備え、
    前記第1コントローラおよび前記第2コントローラのそれぞれは、制御部と、前記入出力バスへデータを出力するおよび前記入出力バスからデータが入力されるインタフェース部と、前記制御部および前記インタフェース部からアクセス可能なメモリと、を備え、
    前記メモリは、前記制御部の運転モードを明示するメモリ領域と、他方の前記制御部の運転モードを明示するメモリ領域と、実行結果を等値化するために他方の前記制御部から実行結果データが書き込まれるメモリ領域と、を備え、
    前記第1コントローラおよび前記第2コントローラの制御部は、
    前記入出力バスに実装されたスロット位置で、プライマリ側であるかセカンダリ側であるかを判断する手段と、
    他方の前記制御部の運転モード等から前記第1コントローラおよび前記第2コントローラの制御部が稼動系か待機系かを判断する手段と、
    前記判断する手段により稼動系と判断したときに、前記I/Oモジュールにデータを入出力する手段と、ユーザ制御プログラムを実行する手段と、待機系の前記制御部と実行結果データを等値化するために待機系側の前記メモリに実行結果データを書き込む手段と、自身の運転モードを待機系の前記メモリに書き込み、且つ、他方の運転モードを待機系のメモリから読み出す手段と、
    前記稼動系か待機系かを判断する手段により、待機系と判断したときに、稼働系と判断した前記制御部から書き込まれた運転モードをメモリから読み出し次の運転モードを判定する手段と、稼働系と判断した前記制御部が停止モードを示すときに、稼動系処理へ移行し稼動系の前記制御部として運転を継続実行する手段と、を備え、
    前記制御部は、初期化処理において、相手監視時間をクリアし、他方の前記制御部の運転モードから他方の前記制御部の運転モードが稼動系か否か判断し、稼働系であるときに待機系処理を行い、他方の前記制御部の運転モードが稼動系でなく且つ自己がプライマリ側であるときに稼動系処理を行い、相手が稼動系でなく且つ自己がセカンダリ側であるときに相手監視時間を更新するとともに相手監視時間が所定の時間をオーバーするまで相手の運転モードが稼動系でなければ、稼動系処理を行う二重化制御装置。
  2. 前記I/Oモジュールは、外部機器とインタフェースする外部機器インタフェース部と、前記入出力バスとインタフェースするためのインタフェース部と、前記インタフェース部を介してデータの読み書きが可能で、且つ、前記外部機器インタフェース部を介して読み書きが可能なメモリと、
    を備えた請求項1記載の二重化制御装置。
JP2011027511A 2011-02-10 2011-02-10 二重化制御装置 Expired - Fee Related JP5583046B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011027511A JP5583046B2 (ja) 2011-02-10 2011-02-10 二重化制御装置
CN201210001127.6A CN102636987B (zh) 2011-02-10 2012-01-04 双重化控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011027511A JP5583046B2 (ja) 2011-02-10 2011-02-10 二重化制御装置

Publications (2)

Publication Number Publication Date
JP2012168635A JP2012168635A (ja) 2012-09-06
JP5583046B2 true JP5583046B2 (ja) 2014-09-03

Family

ID=46621406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011027511A Expired - Fee Related JP5583046B2 (ja) 2011-02-10 2011-02-10 二重化制御装置

Country Status (2)

Country Link
JP (1) JP5583046B2 (ja)
CN (1) CN102636987B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6139386B2 (ja) 2013-11-27 2017-05-31 株式会社東芝 プログラマブルコントローラ
JP6517474B2 (ja) * 2014-05-12 2019-05-22 株式会社東芝 プログラマブルコントローラ、及び演算処理システム
JP6176206B2 (ja) * 2014-08-04 2017-08-09 東芝三菱電機産業システム株式会社 プログラマブルロジックコントローラ
JP6320253B2 (ja) * 2014-09-10 2018-05-09 東芝エネルギーシステムズ株式会社 二重化制御システム
CN107850873B (zh) * 2015-07-23 2021-12-21 三菱电机株式会社 双重化过程控制装置
JP7047728B2 (ja) * 2018-11-29 2022-04-05 オムロン株式会社 コントローラ、およびコントローラの制御方法
JP7326239B2 (ja) * 2020-09-16 2023-08-15 株式会社東芝 コントローラ、および、コントローラシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3291729B2 (ja) * 1989-04-20 2002-06-10 横河電機株式会社 二重化計算機システム
JPH04195202A (ja) * 1990-11-22 1992-07-15 Omron Corp プログラマブルコントローラシステムの共有メモリ構造
JPH05173986A (ja) * 1991-12-24 1993-07-13 Matsushita Electric Works Ltd プログラマブルコントローラ
JPH05173985A (ja) * 1991-12-24 1993-07-13 Matsushita Electric Works Ltd プログラマブルコントローラ
JPH09190407A (ja) * 1996-01-10 1997-07-22 Omron Corp 制御装置
JP2000330815A (ja) * 1999-05-24 2000-11-30 Matsushita Electric Ind Co Ltd 二重化切替制御装置及び方法
JP2002063047A (ja) * 2000-08-18 2002-02-28 Matsushita Electric Ind Co Ltd 二重化系切替装置及びその切替方法
JP3606281B2 (ja) * 2002-06-07 2005-01-05 オムロン株式会社 プログラマブルコントローラ及びcpuユニット並びに特殊機能モジュール及び二重化処理方法
JP4161620B2 (ja) * 2002-06-07 2008-10-08 オムロン株式会社 プログラマブルコントローラ
JP4635616B2 (ja) * 2005-01-17 2011-02-23 株式会社明電舎 コンピュータ間のネットワーク通信方式
JP4776374B2 (ja) * 2005-12-27 2011-09-21 株式会社東芝 二重化監視制御システム、及び同システムの冗長化切替え方法
US8359112B2 (en) * 2006-01-13 2013-01-22 Emerson Process Management Power & Water Solutions, Inc. Method for redundant controller synchronization for bump-less failover during normal and program mismatch conditions
JP2010102565A (ja) * 2008-10-24 2010-05-06 Mitsubishi Electric Corp 二重化制御装置

Also Published As

Publication number Publication date
CN102636987B (zh) 2014-12-17
JP2012168635A (ja) 2012-09-06
CN102636987A (zh) 2012-08-15

Similar Documents

Publication Publication Date Title
JP5583046B2 (ja) 二重化制御装置
KR101951072B1 (ko) 코어 간 통신 장치 및 방법
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US7849235B2 (en) DMA controller, node, data transfer control method and storage medium
US20060159115A1 (en) Method of controlling information processing system, information processing system, direct memory access control device and program
WO2011089660A1 (ja) バス調停装置
US20060182040A1 (en) Device and method for diagnosis in multi-channel-CAN-applications
WO2015131516A1 (zh) 分布式智能平台管理总线连接方法及atca机框
JP2008176360A (ja) マルチプロセッサシステム
JP2002149212A (ja) 制御データを等値化する冗長化プログラマブルコントローラ及び等値化方法。
EP1869558A2 (en) Data storage system having memory controller with embedded cpu
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
JP4755050B2 (ja) データ処理装置、モード管理装置、及びモード管理方法
JP2007280313A (ja) 冗長化システム
JPH07287064A (ja) レーダ信号処理装置
JP5908068B2 (ja) 待機冗長二重化装置
JP2016206891A (ja) アクセス遮断回路、半導体集積回路およびアクセス遮断方法
CN102346454A (zh) 可编程控制器以及总线变换器
JP6394727B1 (ja) 制御装置、制御方法、及び、フォールトトレラント装置
KR100544805B1 (ko) 분산 컴퓨터 시스템의 초기화 시스템 및 방법
JP2009251652A (ja) マルチコアシステム
WO2012117445A1 (ja) 情報処理システム
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
EP3327521B1 (en) Duplexing process control device
JP3903688B2 (ja) バンク切替システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140110

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140715

R151 Written notification of patent or utility model registration

Ref document number: 5583046

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees