JP2005092695A - 二重化コントローラ、その等値化モード決定方法 - Google Patents

二重化コントローラ、その等値化モード決定方法 Download PDF

Info

Publication number
JP2005092695A
JP2005092695A JP2003327647A JP2003327647A JP2005092695A JP 2005092695 A JP2005092695 A JP 2005092695A JP 2003327647 A JP2003327647 A JP 2003327647A JP 2003327647 A JP2003327647 A JP 2003327647A JP 2005092695 A JP2005092695 A JP 2005092695A
Authority
JP
Japan
Prior art keywords
controller
program
standby
equalization
active
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.)
Granted
Application number
JP2003327647A
Other languages
English (en)
Other versions
JP4232589B2 (ja
Inventor
Makiko Yugawa
真規子 湯川
Toshiyuki Nishiwaki
敏之 西脇
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Systems Co Ltd
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 Fuji Electric Systems Co Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2003327647A priority Critical patent/JP4232589B2/ja
Publication of JP2005092695A publication Critical patent/JP2005092695A/ja
Application granted granted Critical
Publication of JP4232589B2 publication Critical patent/JP4232589B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 稼動系と待機系とで相互に定周期プログラムが異なっていても問題なく稼動/待機切り替え後の制御が行えるようにする。
【解決手段】 制御部15、25は、通常時はマルチ等値化処理を実行しており、定周期プログラムの一致/不一致を確認する必要がある状況では、図2〜図4の何れかの処理を実行してプログラム不一致の場合には一時的にシングル等値化処理モードへと移行する。
【選択図】 図1

Description

本発明は、待機冗長の二重化構成にした二重化コントローラ(プログラマブルコントローラ)における等値化処理等に関する。
現在、プラント、工場などでは、工作機械や計測装置等の機器のシーケンス制御に多くのプログラマブルコントローラ等のコントローラを用い、FA(ファクトリーオートメーション)化を実現している。
このようなプログラマブルコントローラ・システムでは、信頼性を向上させるためにCPUモジュール(コントローラ本体)を待機冗長の2重化構成にする場合がある。待機冗長の冗長2重化構成は、2つのCPUモジュールを1組とし、一方を稼動系、他方を待機系とし、稼動系CPUモジュールを待機系CPUモジュールが監視して、稼動系CPUモジュールに障害等の切替え要因が生じたならば待機系CPUモジュールが稼動系に切り替る構成である。
図7に2重化して冗長性を持たせたコントローラの一般的なシステム構成を示す。
図示の2重化コントローラシステムは、CPUモジュール101−1、CPUモジュール101−2、及び各制御対象機器とのデータ入出力を行う複数のI/Oユニット102−1〜102−nより成るI/O群102から構成されている。尚、ここでは、CPUモジュール101−1が稼動系、CPUモジュール101−2がその待機系となっている場合を例にして説明する。
稼動系となっているCPUモジュール101は、その内部に格納されたプログラム(通常、定周期に実行されるプログラム;定周期プログラム)を実行することで、各I/Oユニット102−1〜102−nに対して制御データを出力して(又は各I/Oユニットからセンサ計測値等を読み出して)、各制御対象機器を制御する。
一方、待機系となっているCPUモジュール101−2は、稼動系のCPUモジュール101−1を監視しており、稼動系CPUモジュール101−1に故障等の何らかの切替え要因が生じると、稼動/待機切り替え処理を実行して、CPUモジュール101−2が稼動系となって、CPUモジュール101-1が行っていた処理を引き継ぐ。
CPUモジュール101−1及びCPUモジュール101−2には、一定周期で起動されて実行される複数の定周期プログラム(ここでは、仮にA、B、Cの3つの定周期プログラム)が格納されており、稼動系となっているCPUモジュール101−1のみがこれらの定周期プログラムを実行してI/O機器の制御処理を行い、待機系となっているCPUモジュール101−2ではこれらの定周期プログラムは実行されない。これらの定周期プログラムには、優先レベルがあり(優先レベル:A>B>C)、優先レベルが高い定周期プログラムの起動周期になると、優先レベルの低い実行中の定周期プログラムは割り込みがかかって中断され、優先レベルの高い定周期プログラムが優先的に実行される。
CPUモジュール101−1、CPUモジュール101−2及びI/O群102は、システムバス103によって接続されており、稼動系CPUモジュール101−1はシステムバス103を介して各I/Oユニット102−1〜102−nに対して出力データ(制御データ)を送信し、またI/Oユニット102−1〜102−nからは接続されている制御対象機器からの計測値等の入力データを受信している。
また2重化されているCPUモジュール101−1とCPUモジュール101−2との間には等値化バス104を備え、稼動系/待機系の切替えが生じたときに制御データの整合性を持たせる為、この等値化バス104を介して稼動系CPUモジュール101−1から待機系CPUモジュール101−2に制御データを送信して等値化処理を行っている。
図8に示すように、従来の2重化コントローラでは、稼動系CPUモジュール101−1にて定周期プログラムA、B、Cが実行された場合、他の定周期プログラムによる処理が完了して固定で優先レベルが最も低い定周期プログラムCに処理が戻り、その定周期プログラムCによる演算処理が終了後に、定周期プログラムA、B、Cで使用される全ての制御データに対する等値化を行う。よって定周期プログラムA、B、C内で行われる各処理の実行順序は、入力処理→プログラム演算→出力処理となり、また最も優先レベルが低い定周期プログラムCは等値化処理が入るのでその処理実行順序は、入力処理→プログラム演算→制御データ等値化→出力処理となる。尚、図上に示す“入”が入力処理、“演”がプログラム演算、“等”が制御データ等値化、“出”が出力処理を意味する。
図9は、定周期プログラム実行中に稼動系/待機系CPUの切替えが発生した時のプログラムの実行状態を示す図である。尚、図9では、定周期プログラムはA〜Eの5つとなっているが、定周期プログラムが幾つであるかは関係ない(2つ以上であれば、本問題は発生する)。
稼動系CPUモジュール101−1の各定周期プログラムの演算中に、稼動系/待機系切替え要因が発生した場合、稼動/待機の切替えを行って新たに稼動系となったCPUモジュール101−2は、制御データの整合性を保証するため、最後に制御データが等値化された図9のt1の時点の状態から処理を引き継いだ形で定周期プログラムを実行する。
例えば、図9のt2の時点でCPUの切替え要因が発生した場合、新たに稼動系となるCPUモジュール101−2はt1の時点の状態からプログラムを実行する。しかしこの場合、定周期プログラムA、B、Cは、t2の時点で既にI/Oユニットに出力データの送信を行っている為、制御データとI/Oユニットからの出力の状態が不整合となる場合がある。また、最後に制御データが等値化された状態まで戻して処理を引き継ぐので戻り時間が大きくなってしまうことがある。
また従来のコントローラでは、稼動系/待機系CPUの切替えが生じると切替え後の処理において、定周期プログラムの実行周期時間や各定周期プログラムの実行順番を維持できないという問題が生じる。
また従来のコントローラでは、稼動系/待機系CPUモジュールの切替えが生じると切替え後の処理において、定周期プログラムの実行周期時間や各定周期プログラムの実行順番を維持できないという問題が生じる。
以上説明した従来技術に関しては、例えば特許文献1、非特許文献1等に記載されている。
特開2002−149212号公報 「統合化制御システムMICREX−IXのコントロールステーションの制御機能」;富士時報 Vol.67 NO.6,1994、345−348頁
上述した問題に対して、本出願の出願人は、既に、特願2002−104380号の発明(以下、先出願と呼ぶ)を提案している。
尚、ここでは特に図示しないが、先出願の二重化コントローラシステムは、不図示のCPUモジュールa、CPUモジュールbを有し、図7の構成と同様、CPUモジュールa−CPUモジュールb間に等値化バスを設け、この等値化バスを介して等値化を行う構成であるものとする。また、ここでは、CPUモジュールaが稼動系、CPUモジュールbが待機系であるものとして説明する。
図10に示すように、先出願の二重化コントローラでは、稼動系CPUモジュールaにて定周期プログラムA、B、C(優先レベル:A>B>C)が実行される場合、各定周期プログラムの処理実行順番は、入力処理→プログラム演算→制御データ等値化→出力処理である。すなわち、各定周期プログラムA、B、Cを実行する毎に、制御データの等値化処理を行う(以下、このような等値化を“マルチ等値化”と呼ぶ。一方、上記従来の等値化を“シングル等値化”と呼ぶ)。このようなマルチ等値化を行うことによって、稼動/待機切り替えが生じたときに、等値化データとI/Oユニットへの出力データとの整合性が確保できると共に、稼動/待機切り替え時のオーバーヘッドを縮小できるという効果が得られる。
また、従来のシングル等値化処理ではユーザが使用しているユーザデータを等値化しているのに対して、先出願のマルチ等値化処理では更にプログラム割り込み情報やプログラム実行スケジュール情報等のシステム情報も等値化している。
図11はプログラム割り込み情報、図12はプログラム実行スケジュール情報の一例を示す図である。
図11では、定周期プログラムA、B,及びCと搭載している全ての定周期プログラムに対して、プログラム割込み情報としてプログラムカウンタや各種フラグやレジスタの値等を等値化している。尚、図11では、搭載されている全ての定周期プログラムに対しての情報をプログラム割込み情報として等値化しているが、等値化処理を行う時点で割込み退避されているプログラム等、必要なプログラムに対する情報のみを等値化する構成としても良い。また、尚、プログラムカウンタは、各定周期プログラム毎に、最後に実行したプログラム(行)を示すものである。
稼動/待機の切替えが行われ、新たに稼働系となったCPUモジュールbは、等値化してあるプログラム割込み情報を使用して、割込み中断されていたプログラム実行を、中断時の状態から継続して行うことができる。
また、図12に示すプログラム実行スケジュール情報は、各定周期プログラム毎に、その定周期プログラムの実行周期である定周期設定時間や、その定周期プログラムを前回実行した後の経過時間を示す実行周期経過時間等である。
上記先出願の二重化コントローラシステムにおいては、稼動/待機の切り替えが起きると、図13に示すように、新たに稼動系になったCPUモジュールbは、等値化されていたシステム情報を元に、中断された定周期プログラムB、Cを、それぞれ、中断時点の状態から継続させて制御を続けることができる。図示の例では、定周期プログラムBを実行中に何らかの異常が発生した為に、稼動/待機の切り替えが行われたが、上記先出願ではシステム情報も等値化されているので、新たに稼動系になったCPUモジュールbは、定周期プログラムBの中断時点から継続してプログラム実行することができる。
しかしながら、このような制御は、CPUモジュールaが保持する定周期プログラムと、CPUモジュールbが保持する定周期プログラムとが一致していることが前提条件になっている。
もし、稼動系のCPUモジュールaが保持する定周期プログラムと待機系のCPUモジュールbが保持する定周期プログラムとが同一ではない場合、例えば図14に示すように稼動系のCPUモジュールaは定周期プログラムB、待機系のCPUモジュールbは定周期プログラムB’(B’はBの一部を変更したもの、すなわち改造版、バージョンアップ版等とする)を保持している状態で、稼動/待機切り替えが起きると、例えばプログラムカウンタが一致しないまま、定周期プログラムB’を実行をしてしまい、継続して制御ができなくなるという問題点があった。
上記稼動系と待機系とで定周期プログラムが同一ではない場合とは、例えば以下に説明する状況で起こりえる。
すなわち、プログラマブルコントローラの運用現場では、現地で定周期プログラムの一部改造を行う場合があり、その際、システムを止めずに、改造後の定周期プログラムが正常に動作できるか否かを確認したい場合がある。この場合、稼動系のCPUモジュールaが定周期プログラム実行中に、待機系のCPUモジュールbに対してのみ改造後の定周期プログラムをダウンロードする。その後、稼動/待機切り替えを行い、新たに稼動系となったCPUモジュールbにおいて改造後の定周期プログラムを実行して、正常動作するか否かを確認する。もし、異常動作した場合には、再度、稼動/待機切り替えを行い、再度稼動系となったCPUモジュールaによって改造前の定周期プログラムが実行される状態に戻すと共に、待機系になったCPUモジュールbの定周期プログラムを改造前の状態に戻す。一方、もし正常動作することを確認できた場合には、稼動/待機の再切り替えは行わずに、CPUモジュールa(待機系になっている)に対して改造後の定周期プログラムをダウンロードする。
以上述べた状況では、稼動系のCPUモジュールと待機系のCPUモジュールとで相互に定周期プログラムとが不一致となる時間帯が存在することになる。
あるいは、どちらか一方のCPUモジュールが故障する等してCPUモジュールを交換した場合(もし、稼動系のCPUモジュールが故障した場合、待機系のCPUモジュールが新たな稼動系となるが、通常、その後、人手により、故障したCPUモジュールを別のものに交換する)、交換したCPUモジュールには、本来、ペアCPUと同じ定周期プログラムが格納されているはずであるが、例えば人的ミス等により、異なる定周期プログラムが格納されている可能性がある。尚、ここで言う“異なる定周期プログラム”とは、全く異なることを意味するのではない。上記の通り、各定周期プログラムは、通常、随時改造(バージョンアップ)を行うものであり、ここではバージョンが異なる事を意味するものとする。
また、あるいは、新たなシステムを構築する場合、新たに設置した稼動/待機の2つのCPUモジュールには、同じ定周期プログラムが格納されているはずであるが、例えば人的ミス等により、相互に異なる定周期プログラムが格納されている場合も有り得る。例えば、一方には新バージョンを格納したのに、他方には間違えて旧バージョンの定周期プログラムを格納してある場合も有り得る。
上述した状況は一例であるが、とにかく、何らかの理由で、本来同一であるべき稼動系CPUモジュールの定周期プログラムと待機系CPUモジュールの定周期プログラムとが同一ではなくなっている場合があり、このような状態で稼動/待機切り替えが生じると、上述した問題が発生することになる。

本発明の課題は、定周期プログラムの制御データ等値化処理の際に、各定周期プログラム実行毎に制御データ等値化処理を行うマルチ等値化を行う2重化コントローラシステムであって、稼動系と待機系とで相互に定周期プログラムが異なっていても問題なく稼動/待機切り替え後の制御が行える2重化コントローラシステム、その方法等を提供することである。
本発明による二重化コントローラシステムは、稼動系と待機系のコントローラを有し、複数の定周期プログラムを実行する2重化コントローラシステムにおいて、前記稼動系のコントローラ、待機系のコントローラは、それぞれ、前記稼動系コントローラにおいて各定周期プログラムが実行される毎に、システム情報も等値化するマルチ等値化処理を実行する等値化処理手段と、互いに他方のコントローラの定周期プログラムを読み出し、自コントローラの定周期プログラムと一致するか否かを照合する照合手段と、該照合手段によって不一致と判定された場合には、システム情報を必要としないシングル等値化モードによる等値化処理に切り替える等値化モード切替手段とを有するように構成する。
上述した構成の二重化コントローラシステムでは、通常時、先出願と同様、各定周期プログラム実行毎に等値化処理を行うマルチ等値化処理を実行しているので、等値化データとI/Oユニットへの出力データとの整合性が確保できると共に稼動/待機切り替え時のオーバーヘッドを縮小できる。更にこのマルチ等値化処理ではシステム情報も等値化されているので、稼動/待機切り替え要因が発生した場合、新たに稼動系になったコントローラは、定周期プログラムの中断時点から継続してプログラム実行することができる。
しかしながら、各コントローラが保持する定周期プログラムが相互に異なる場合(例えば、一方のみバージョンアップ版となった場合等)、等値化されたシステム情報を用いてプログラムの継続実行しようとすると、問題が生じる。
よって、上記照合手段によってプログラム不一致と判定された場合には、一時的に、シングル等値化モード(従来の等値化手法)へと切り替える。シングル等値化モードでは、定周期プログラムの中断時点から継続してプログラム実行することはできないので、上記の問題が生じることはない。尚、後にオペレータ等によって2つのコントローラの定周期プログラムを一致させる為の作業が行われた後には、再び、マルチ等値化モードへ戻すことになる。
前記照合手段による照合処理は、例えば、システムイニシャル時に実行する。
または、前記照合手段による照合処理は、例えば、前記稼動系コントローラが運用中に待機系コントローラが起動した時、該待機系コントローラにおいては該起動に伴って実行され、前記稼動系コントローラにおいては起動した待機系コントローラから出されるチェック要求に応じて実行される。
あるいは、前記照合手段による照合処理は、前記稼動/待機系の両方のコントローラが運用中に、一方のコントローラの定周期プログラムが変更されたとき、該一方のコントローラにおいては該プログラム変更に伴って実行され、他方のコントローラにおいては前記一方のコントローラから出されるチェック要求に応じて実行される。
上記チェック要求を出すのは、シングル等値化とマルチ等値化とでは、等値化するデータが異なる為(上記の通り、マルチ等値化ではシステム情報も等値化している)、どちらか一方のコントローラのみ、等値化モードを変更するのは問題が生じる為である。
また、例えば、前記照合手段による照合処理実行中は、フェイルセーフの考え方により、定周期プログラムの一致/不一致に関係なく、前記シングル等値化モードによる等値化処理を実行する。
本発明の2重化コントローラシステム、そのプログラム単位等値化方法によれば、定周期プログラムの等値化処理において、各定周期プログラム実行毎にシステム情報を含むデータ等値化処理を行うことで、上記先出願の効果、すなわち等値化データとI/Oユニットへの出力データとの整合性が確保でき、稼動/待機切り替え時のオーバーヘッドを縮小でき、更に中断途中からプログラムを継続実行できるという効果が得られると共に、更に、稼動系と待機系とで定周期プログラムが異なる可能性がある場合に、稼動系、待機系それぞれにおいて相互に定周期プログラムが同一であるか否かはチェックして、同一ではない場合にはシングル等値化モードに移行することで、定周期プログラムが異なっていても問題なく稼動/待機切り替え後の制御が行える。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本実施の形態による2重化コントローラシステムにおけるプログラマブルコントローラ本体(CPUモジュール)の構成ブロック図である。
図1に示す2重化コントローラシステムは、CPUモジュール1、CPUモジュール2とを有し、CPUモジュール1、CPUモジュール2、及び不図示の各種I/O群は、システムバス4を介して接続されている。更に、CPUモジュール1とCPUモジュール2との間には等値化バス3が設けられている。尚、ここでは、CPUモジュール1が稼動系、CPUモジュール2がその待機系となっているものとして説明する。
CPUモジュール1、2は、プログラマブルコントローラ本体であるが、ここでは本例の説明に係わる構成のみを示し、他の構成は省略して示す。
図1において、稼動系のCPUモジュール1は、プログラムRAM11、データRAM12、等値化バス制御部13、受信バッファ用RAM14、及び制御部15等を有する。これら以外の構成については、上記の通り、ここでの説明には特に関係ないので省略している。
プログラムRAM11には、ユーザプログラム11aが格納される。ユーザプログラム11aとは、例えば上記定周期プログラムである。尚、本例のシステムにおいては、プログラムRAM11には、更に、後述する図2〜図4に示すCPUモジュール1側の処理を制御部15によって実現させるアプリケーションプログラムも格納されている。
データRAM12は、ユーザデータ領域12aを有する。ユーザデータ領域12aには、例えば各定周期プログラム毎に対応する等値化データ(ユーザデータ)が格納されている。
等値化バス制御部13は、等値化バス3を介して等値化を行う為の等値化処理専用の構成であり、制御部15から等値化すべきデータを渡されると、待機側の等値化バス制御部23と連動して、この等値化データを待機側の受信バッファ用RAM24に格納させる機能を有する。尚、等値化バス制御部13は、例えば上記非特許文献1記載の“SGM(Sameness data Gather Memory control)”に相当する。
制御部15は、CPUモジュール1全体を制御する中央処理装置(CPUチップ等)であり、上記プログラムRAM11に格納されているアプリケーションプログラムを用いて、通常時は先出願と同様のマルチ等値化による等値化処理を実行し、定周期プログラムの一致/不一致を確認する必要がある状況では図2〜図4に示すCPUモジュール1側の処理を実行し、場合によっては一時的にシングル等値化による等値化処理へと移行する。つまり、制御部15は、各定周期プログラム実行毎に等値化を行うと共にこの等値化データにはシステム情報も含むようにするマルチ等値化処理を実行する等値化処理機能と、待機系のCPUモジュール2の定周期プログラムを読み出し、自CPUモジュールの定周期プログラムと一致するか否かの照合を行う照合機能と、この照合機能によって不一致と判定された場合には、上記等値化処理を、システム情報を必要としないシングル等値化モードによる等値化処理に切り替える等値化モード切替機能とを実現する。また、制御部15は、その内部のメモリに、上記システム情報を保持している。
また、待機系のCPUモジュール2は、プログラムRAM21、データRAM22、等値化バス制御部23、受信バッファ用RAM24、及び制御部25等を有する。この構成自体は、稼動系のCPUモジュール1と同じであるので、特に説明しないが、制御部25は、プログラムRAM21に格納されているアプリケーションプログラムを用いて、後述する図2〜図4に示すCPUモジュール2側の処理を実行する。また、制御部25は、制御部15とは異なり、各定周期プログラムの実行は行っていない。但し、これは、CPUモジュール2が待機系のときの話であり、稼動系のときには制御部25は各定周期プログラムの実行も行う。
図2、図3、図4に、制御部15、制御部25によって実行される等値化モード決定処理の具体例を示す。尚、図2〜図4の処理は、基本的には同じであり、上記“発明が解決しようとする課題”で述べた様々な状況に応じて、図2、図3、図4に各々示す場合に、稼動系と待機系とで定周期プログラムが一致するか否かをチェックし、必要に応じて一時的にシングル等値化モードへ移行する。尚、図2〜図4におけるCPUモジュール1−CPUモジュール2間のコマンド、プログラム送受信は、等値化バス3を介して行ってもよいし、システムバス4を介して行ってもよい。
図2は、第1の実施例による等値化モード決定処理のフローチャート図である。
第1の実施例では、稼動系/待機系CPUモジュールの両方をほぼ一緒に起動したときに、等値化モード決定処理を実行する。これは、例えば上述した“稼動系/待機系CPUモジュールを新たに設置した場合”等を想定している。
図2に示すように、稼動系のCPUモジュール1の制御部15は、システムイニシャル時、アプリケーションプログラム(定周期プログラム)の照合要求を出すと(ステップS11)、まず、それまでの等値化モードが何であるかに係わらず、強制的にシングル等値化モードにする(ステップS12)。つまり、フェイルセーフの考え方により、当該等値化モード決定処理中は、シングル等値化モードによる等値化処理を実行させる。次に、待機系のCPUモジュール2に対して、プログラム読出しコマンドを送信し、これに対して後述する待機系のCPUモジュール2側のステップS23の処理によって返信されてくる待機系のCPUモジュール2側のアプリケーションプログラムを受信して、例えば不図示のバッファ等に格納する(ステップS13)。
また、別途、後述する待機系のCPUモジュール2側のステップS24の処理によって、待機系のCPUモジュール2側からプログラム読出しコマンドが送られてきた場合には、稼動系のCPUモジュール1側のアプリケーションプログラムを待機系のCPUモジュール2に返信する(ステップS14)。
次に、稼動系のCPUモジュール1は、ステップS13で受信・格納した待機系のCPUモジュール2側のアプリケーションプログラムと、自己のアプリケーションプログラムとの照合を行い、両者が一致するか否かを判定する(ステップS15)。この照合・一致判定は、既存の手法を用いればよく、例えば各プログラムを一行ずつ比較して一致・不一致を判定し、たとえ1行でも不一致である場合には、不一致と判定する。また、ここでは、プログラム不一致といっても、全く異なることは想定していない。例えば同じ定周期プログラムAであっても、例えばバージョン等が異なる場合等を想定している。よって、上記照合は、例えば、稼動系のCPUモジュール1の定周期プログラムAと、待機系のCPUモジュール2の定周期プログラムAとを比較・照合する。勿論、他の定周期プログラムB,C等も同様に比較・照合する。そして、全ての定周期プログラムが一致する場合に、一致と判定する。
もし一致すると判定された場合には等値化処理はマルチ等値化モードに変更し(上記ステップS12の処理によりシングル等値化モードになっているので)、もし不一致と判定された場合には等値化処理はシングル等値化モードのままとする(ステップS16)。
尚、マルチ等値化モードとは、上述してある通り、上記先出願の等値化処理、すなわち各定周期プログラム実行毎に等値化を行うと共に該等値化データにはシステム情報も含むようにする等値化処理を実行するモードである。また、シングル等値化モードは、上述してある通り、従来の等値化処理、すなわち優先レベルが最も低い定周期プログラムの演算処理が終了後に、全ての定周期プログラムで使用される全ての制御データに対する等値化処理を実行するモードであり、このモードではシステム情報は等値化する必要はない。
一方、図2における待機系のCPUモジュール2側の等値化モード決定処理は、稼動系のCPUモジュール1のそれと、ほぼ同じである。すなわち、制御部25は、システムイニシャル時、アプリケーションプログラム(定周期プログラム)の照合要求を出すと(ステップS21)、まず、それまでの等値化モードが何であるかに係わらず、強制的にシングル等値化モードにする(ステップS22)。つまり、フェイルセーフの考え方により、当該等値化モード決定処理中は、シングル等値化モードによる等値化処理を実行させる。次に、稼動系のCPUモジュール1側のアプリケーションプログラムの読み出しを行う(ステップS24)。
また、稼動系のCPUモジュール1側のステップS13の処理によって、稼動系のCPUモジュール1側からプログラム読出しコマンドが送られてきた場合には、待機系のCPUモジュール2側のアプリケーションプログラムを稼動系のCPUモジュール1に返信する(ステップS23)。
そして、自己のアプリケーションプログラムと稼動系のCPUモジュール1のアプリケーションプログラムとの照合を行い(ステップS25)、上記ステップS16と同様、その一致/不一致に応じて等値化モードを決定する(ステップS26)。
図3は、第2の実施例による等値化モード決定処理のフローチャート図である。
第2の実施例は、稼動系のCPUモジュール1が既に運転中の状態で、待機系のCPUモジュール2が立ち上がったときの等値化モード決定処理である。これは、例えば、上述した“一方のCPUモジュールが故障等した為、交換した場合”を想定している。
図3において、図2の処理と略同一の処理については同一のステップ番号を付してある。ここでは、図2の処理とは異なる部分についてのみ説明する。
図3の処理では、待機系のCPUモジュール2は、イニシャル処理によって起動すると、稼動系のCPUモジュール1が運用中であるか否かをチェックし、運用中である場合には、自己に対してアプリケーションプログラム(定周期プログラム)の照合要求を出して等値化モード決定処理を開始させるだけでなく、稼動系のCPUモジュール1に対して、アプリケーションプログラム照合要求コマンドを発行する(ステップS31)。尚、上記チェックの結果、運用中ではなかった場合には、図2の処理を行うことになる。
稼動系のCPUモジュール1は、このアプリケーションプログラム照合要求コマンドを受信すると、等値化モード決定処理を開始する(ステップS41)。つまり、第1の実施例と比較すると、第2の実施例の場合は稼動系のCPUモジュール1は運用中であり、等値化モード決定処理開始のトリガとなるイニシャル処理が行われないが、本例の手法では稼動系のCPUモジュール1と待機系のCPUモジュール2とが同じ等値化モードにならなければ意味がない為、稼動系のCPUモジュール1においても等値化モード決定処理を行わせる為に、上記アプリケーションプログラム照合要求コマンドを発行する。その後の稼動系のCPUモジュール1側のステップS12〜S17、待機系のCPUモジュール2側のステップS22〜S27の処理は、図2の処理と略同様である。
図4は、第3の実施例による等値化モード決定処理のフローチャート図である。
第3の実施例では、例えば上述してあるように、どちらか一方のCPUモジュール(ここでは稼動系のCPUモジュール1)のアプリケーションプログラムが変更されたとき、他方のCPUモジュールは変更されていない場合もあるので、当該等値化モード決定処理を行う。
図4において、図2の処理と略同一の処理については同一のステップ番号を付してある。ここでは、図2の処理とは異なる部分についてのみ説明する。
まず、図1には特に図示しなかったが、通常、各CPUモジュール1,2には、例えば何らかの専用線を介して、プログラマブルコントローラ支援装置5が接続されており、プログラマブルコントローラ支援装置5から既存のアプリケーションプログラムの改造版、バージョンアップ版等をダウンロードする。
図示の場合、一例として、既存のアプリケーションプログラムCの変更版C’をダウンロードするものとする。
稼動系のCPUモジュール1は、プログラマブルコントローラ支援装置5から、変更コマンドと共に上記変更版のアプリケーションプログラムC’が送られてくると(ステップS51)、まず、メモリ等に保持している既存のアプリケーションプログラムCを、変更版のアプリケーションプログラムC’に置き換える処理を実行し(ステップS52)、続いて、自己に対してアプリケーションプログラム(定周期プログラム)の照合要求を出して等値化モード決定処理を開始させるだけでなく、待機CPU2に対して、アプリケーションプログラム照合要求コマンドを発行する(ステップS53)。
待機系のCPUモジュール2は、このアプリケーションプログラム照合要求コマンドを受信すると、等値化モード決定処理を開始する(ステップS61)。つまり、第1の実施例と比較すると、第2の実施例の場合は待機系のCPUモジュール2では等値化モード決定処理開始のトリガとなるイニシャル処理が行われないが、本例の手法では稼動系のCPUモジュール1と待機系のCPUモジュール2とが同じ等値化モードにならなければ意味がない為、待機系のCPUモジュール2においても等値化モード決定処理を行わせる為に、上記アプリケーションプログラム照合要求コマンドを発行する。その後の稼動系のCPUモジュール1側のステップS12〜S17、待機系のCPUモジュール2側のステップS22〜S27の処理は、図2の処理と略同様である。
以上説明した第1〜第3の実施例の等値化モード決定処理により、稼動系のCPUモジュール1と待機系のCPUモジュール2とでアプリケーションプログラムが不一致であるときには、図5のようなシステム情報の継続を必要としない最低レベル定周期プログラムエンドにての等値化を行うモード、すなわちシングル等値化モードに変更することで、図6に示すように、もし稼動系のCPUモジュール1側に異常発生等の稼動/待機切り替え要因が発生しても、新たに稼動系となったCPUモジュール2において最初から処理を実行し直すので(システム情報を用いて演算途中から処理を再開するものではないので)、稼動/待機切り替え後において、問題なく、定周期プログラム実行処理を継続することができる。
また、フェイルセーフの考え方より、等値化モード決定処理中には、シングル等値化モードに切り替えておく。
本例の2重化コントローラシステムにおけるプログラマブルコントローラ本体(CPUモジュール)の構成ブロック図である。 第1の実施例による等値化モード決定処理のフローチャート図である。 第2の実施例による等値化モード決定処理のフローチャート図である。 第3の実施例による等値化モード決定処理のフローチャート図である。 シングル等値化モード時のプログラム実行状態を示す図である。 シングル等値化モードにおける稼動/待機切り替わり発生の際のプログラム実行状態を示す図である。 2重化して冗長性を持たせたコントローラの一般的なシステム構成図である。 従来の定周期プログラム実行状態の一例を示す図である。 従来のシステムで定周期プログラム実行中に稼動系/待機系CPUの切替えが発生した時のプログラムの実行状態を示す図である。 先出願のマルチ等値化処理による定周期プログラム実行状態の一例を示す図である。 プログラム割り込み情報の一例を示す図である。 プログラム実行スケジュール情報の一例を示す図である。 稼動/待機切り替えの場合に、等値化したシステム情報によって中断途中から継続して演算処理する様子を示す図である。 図13の処理において定周期プログラムが相互に異なる場合に生じる問題を説明する為の図である。
符号の説明
1 CPUモジュール(稼動系)
2 CPUモジュール(待機系)
3 等値化バス
4 システムバス
11 プログラムRAM
12 データRAM
13 等値化バス制御部
14 受信バッファ用RAM
15 制御部
21 プログラムRAM
22 データRAM
23 等値化バス制御部
24 受信バッファ用RAM
25 制御部

Claims (7)

  1. 稼動系と待機系のコントローラを有し、複数の定周期プログラムを実行する2重化コントローラシステムにおいて、
    前記稼動系のコントローラ、待機系のコントローラは、それぞれ、
    前記稼動系コントローラにおいて各定周期プログラムが実行される毎に、システム情報も等値化するマルチ等値化処理を実行する等値化処理手段と、
    互いに他方のコントローラの定周期プログラムを読み出し、自コントローラの定周期プログラムと一致するか否かを照合する照合手段と、
    該照合手段によって不一致と判定された場合には、システム情報を必要としないシングル等値化モードによる等値化処理に切り替える等値化モード切替手段と、
    を有することを特徴とする二重化コントローラシステム。
  2. 前記照合手段による照合処理は、システムイニシャル時に実行することを特徴とする請求項1記載の二重化コントローラシステム。
  3. 前記照合手段による照合処理は、前記稼動系コントローラが運用中に待機系コントローラが起動した時、該待機系コントローラにおいては該起動に伴って実行され、前記稼動系コントローラにおいては起動した待機系コントローラから出されるチェック要求に応じて実行されることを特徴とする請求項1記載の二重化コントローラシステム。
  4. 前記照合手段による照合処理は、前記稼動/待機系の両方のコントローラが運用中に、一方のコントローラの定周期プログラムが変更されたとき、該一方のコントローラにおいては該プログラム変更に伴って実行され、他方のコントローラにおいては前記一方のコントローラから出されるチェック要求に応じて実行されることを特徴とする請求項1記載の二重化コントローラシステム。
  5. 前記照合手段による照合処理実行中は、定周期プログラムの一致/不一致に関係なく、前記シングル等値化モードによる等値化処理を実行することを特徴とする請求項1〜4の何れかに記載の二重化コントローラシステム。
  6. 稼動系と待機系のコントローラを有し、複数の定周期プログラムを実行する2重化コントローラシステムにおける等値化モード決定方法であって、
    少なくとも前記稼動/待機系の何れか一方のイニシャル時に又は何れか一方の前記定周期プログラム変更の際に、
    互いに他方のコントローラの定周期プログラムを読み出し、自コントローラの定周期プログラムと一致するか否かを判定し、
    該判定において不一致と判定された場合には、各定周期プログラム実行毎にシステム情報も等値化するマルチ等値化モードから、システム情報を必要としないシングル等値化モードへと切り替えることを特徴とする等値化モード決定方法。
  7. 稼動系と待機系のコントローラを有し、複数の定周期プログラムを実行する2重化コントローラシステムのコンピュータにおいて、
    少なくとも前記稼動/待機系の何れか一方のイニシャル時に又は何れか一方の前記定周期プログラム変更の際に、
    互いに他方のコントローラの定周期プログラムを読み出し、自コントローラの定周期プログラムと一致するか否かを判定する機能と、
    該判定において不一致と判定された場合には、各定周期プログラム実行毎にシステム情報も等値化するマルチ等値化モードから、システム情報を必要としないシングル等値化モードへと切り替える機能と、
    を実現させるためのプログラム。
JP2003327647A 2003-09-19 2003-09-19 二重化コントローラ、その等値化モード決定方法 Expired - Lifetime JP4232589B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003327647A JP4232589B2 (ja) 2003-09-19 2003-09-19 二重化コントローラ、その等値化モード決定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003327647A JP4232589B2 (ja) 2003-09-19 2003-09-19 二重化コントローラ、その等値化モード決定方法

Publications (2)

Publication Number Publication Date
JP2005092695A true JP2005092695A (ja) 2005-04-07
JP4232589B2 JP4232589B2 (ja) 2009-03-04

Family

ID=34457461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003327647A Expired - Lifetime JP4232589B2 (ja) 2003-09-19 2003-09-19 二重化コントローラ、その等値化モード決定方法

Country Status (1)

Country Link
JP (1) JP4232589B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226113A (ja) * 2007-03-15 2008-09-25 Mitsubishi Electric Corp 数値制御装置及び数値制御システム
JP2009506407A (ja) * 2005-08-08 2009-02-12 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング コンピュータシステムの制御方法および制御装置
JP2010146044A (ja) * 2008-12-16 2010-07-01 Nec Corp 冗長システム
CN104570720A (zh) * 2014-11-26 2015-04-29 卡斯柯信号有限公司 一种基于健康度的车载控制器冗余管理方法
JP2017138814A (ja) * 2016-02-04 2017-08-10 富士電機株式会社 制御システム、および制御装置
JP2020035374A (ja) * 2018-08-31 2020-03-05 横河電機株式会社 可用性のシステム、方法、およびプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009506407A (ja) * 2005-08-08 2009-02-12 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング コンピュータシステムの制御方法および制御装置
US8219796B2 (en) 2005-08-08 2012-07-10 Robert Bosch Gmbh Method and device for controlling a computer system
JP2008226113A (ja) * 2007-03-15 2008-09-25 Mitsubishi Electric Corp 数値制御装置及び数値制御システム
JP4650441B2 (ja) * 2007-03-15 2011-03-16 三菱電機株式会社 数値制御装置及び数値制御システム
JP2010146044A (ja) * 2008-12-16 2010-07-01 Nec Corp 冗長システム
CN104570720A (zh) * 2014-11-26 2015-04-29 卡斯柯信号有限公司 一种基于健康度的车载控制器冗余管理方法
JP2017138814A (ja) * 2016-02-04 2017-08-10 富士電機株式会社 制御システム、および制御装置
JP2020035374A (ja) * 2018-08-31 2020-03-05 横河電機株式会社 可用性のシステム、方法、およびプログラム

Also Published As

Publication number Publication date
JP4232589B2 (ja) 2009-03-04

Similar Documents

Publication Publication Date Title
JP4330547B2 (ja) 情報処理システムの制御方法、情報処理システム、情報処理システムの制御プログラム、冗長構成制御装置
US7890800B2 (en) Method, operating system and computing hardware for running a computer program
US7246270B2 (en) Programmable controller with CPU and communication units and method of controlling same
CN109254525B (zh) 用于运行两个冗余的系统的方法和设施
JP6139386B2 (ja) プログラマブルコントローラ
EP2787401B1 (en) Method and apparatus for controlling a physical unit in an automation system
JP5041290B2 (ja) プログラマブルコントローラおよびその異常時復旧方法
US10360115B2 (en) Monitoring device, fault-tolerant system, and control method
JP4232589B2 (ja) 二重化コントローラ、その等値化モード決定方法
JP4941954B2 (ja) データエラー検出装置およびデータエラー検出方法
JP5012548B2 (ja) プログラマブルコントローラ
JP2000285030A (ja) 情報処理装置
JP4281602B2 (ja) 2重化コントローラシステム、そのコントローラ、プログラム
JP4483876B2 (ja) 二重化システムにおける記憶装置の制御方法
JP2016024798A (ja) 冗長化コントローラシステム、その待機系コントローラ
JP5034584B2 (ja) 2重化コントローラシステム、その稼動系/待機系コントローラ
JP5227653B2 (ja) 多重化計算機システム、及びその処理方法
JP2001306348A (ja) 冗長系情報処理システム
JP4810488B2 (ja) 二重化制御装置、及びそのトラッキング方法
JP2008090656A (ja) プログラマブルコントローラ
JP2002229811A (ja) 論理分割システムの制御方法
JP2021189988A (ja) 電子制御装置及び電子制御装置の制御方法
JP4983806B2 (ja) 二重化タイマを用いたシステム監視装置、および監視方法
JP4613019B2 (ja) コンピュータシステム
JP2001256071A (ja) 冗長化システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080704

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: 20081118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081201

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4232589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term