JP2005107776A - 2重化コントローラシステム、その方法 - Google Patents

2重化コントローラシステム、その方法 Download PDF

Info

Publication number
JP2005107776A
JP2005107776A JP2003339197A JP2003339197A JP2005107776A JP 2005107776 A JP2005107776 A JP 2005107776A JP 2003339197 A JP2003339197 A JP 2003339197A JP 2003339197 A JP2003339197 A JP 2003339197A JP 2005107776 A JP2005107776 A JP 2005107776A
Authority
JP
Japan
Prior art keywords
run counter
free
timer
value
standby
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
JP2003339197A
Other languages
English (en)
Other versions
JP4273905B2 (ja
Inventor
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 JP2003339197A priority Critical patent/JP4273905B2/ja
Publication of JP2005107776A publication Critical patent/JP2005107776A/ja
Application granted granted Critical
Publication of JP4273905B2 publication Critical patent/JP4273905B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P70/00Climate change mitigation technologies in the production process for final industrial or consumer products
    • Y02P70/10Greenhouse gas [GHG] capture, material saving, heat recovery or other energy efficient measures, e.g. motor control, characterised by manufacturing processes, e.g. for rolling metal or metal working

Landscapes

  • Numerical Control (AREA)
  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】 誤差範囲を特定でき、以って誤差保証範囲を特定できるようにする。
【解決手段】 新たに稼動系となるCPUモジュール20は、等値化されていた前回フリーランカウンタ値をクリア(=0)すると共に、自己のフリーランカウンタを初期化・再起動する。その後の例えば1スキャン目のタイマ命令実行の際、タイマ現在値には、切替え処理からの経過時間が加算されることになるが、切替え要因が発生する前の最終等値化から切替え処理までの時間が加算されないことになり、これが誤差時間となる。この誤差時間は、アプリケーション実行周期に依存するので、アプリケーション実行周期によって誤差範囲を特定することができる。
【選択図】 図3

Description

本発明は、待機冗長2重化コントローラ(プログラマブルコントローラ)に関する。
現在、プラント、工場などでは、工作機械や計測装置等の機器のシーケンス制御に多くのプログラマブルコントローラ等のコントローラを用い、FA(ファクトリーオートメーション)化を実現している。
プログラマブルコントローラでは、通常、プログラマブルコントローラのコントローラ本体であるCPUモジュールにおいて、システムバス等を介して接続している各I/O機器を制御させる為のアプリケーション・プログラムが、複数のタイマ命令を使用している。
図7に示すように、各タイマ命令1〜Nは、CPUモジュール100のアプリケーションプログラム101により使用される。CPUモジュール100は、全てのタイマ命令1〜Nのベース時間を生成する1つのフリーランカウンタ102を備える。また、各タイマ命令1〜N毎にタイマ現在値103と前回フリーランカウンタ値104とをメモリ上に保持する。
上記タイマ命令、フリーランカウンタに関しては、例えば特許文献1等に記載されている。
そして、ある1つのタイマ命令が実行される毎に、以下の(1)、(2)の処理を実行することで、タイマ現在値103、前回フリーランカウンタ値104を更新する。
(1)タイマ現在値 + (フリーランカウンタ値 − 前回フリーランカウンタ値)
=> タイマ現在値
(2)フリーランカウンタ値 => 前回フリーランカウンタ値
尚、上記フリーランカウンタ値は、当該タイマ命令実行時のフリーランカウンタ102の値であり、以下、フリーランカウンタの現在値等と記するものとする。
ここで、近年、プログラマブルコントローラにおいて、信頼性を向上させるためにCPUモジュールを待機冗長の2重化構成にする場合がある。待機冗長の冗長2重化構成は、2つのCPUモジュールを1組とし、一方を稼動系、他方を待機系とし、稼動系のCPUモジュールを待機系のCPUモジュールが監視して、稼動系CPUモジュールに障害等の切替え要因が生じたならば待機系CPUモジュールが稼動系に切り替る構成である。
このような二重化コントローラシステムにおいては、稼動系/待機系の切替えが生じたときに制御データ整合性を持たせる為、稼動系CPUモジュールから待機系CPUモジュールに対して随時、制御データを転送して待機系CPUモジュールにおいても稼動系CPUモジュールと同じ制御データを保持させる等値化処理を行っている。
このような等値化すべき制御データには、図8に示すように、上記タイマ現在値、前回フリーランカウンタ値等も含まれる。
図8は、二重化コントローラシステムにおけるタイマ命令のデータ等値化について説明する為の図である。
図8には、待機冗長の2重化構成とした二重化コントローラシステムにおける2つのCPUモジュールを示す。すなわち、CPUモジュール110、CPUモジュール120とを示す。ここでは、CPUモジュール110が稼動系、CPUモジュール120が待機系であるものとする。
図8において、稼動系のCPUモジュール110で実行される任意のアプリケーション111により使用される各タイマ命令1〜N毎に、そのタイマ命令実行毎に、フリーランカウンタ112の現在値を参照して、上記(1)、(2)の処理により、実行したタイマ命令のタイマ現在値113、前回フリーランカウンタ値114を更新する。
一方、待機系のCPUモジュール120は、アプリケーション111と同一のアプリケーション121を有するが(使用するタイマ命令1〜Nも同一)、待機系である為、アプリケーション121は実行されていない。しかしながら、アプリケーション121により使用される各タイマ命令1〜Nのタイマ現在値123、前回フリーランカウンタ値124は、上記等値化処理により、随時更新されている。
上記のように、従来では、タイマ現在値、前回フリーランカウンタ値の等値化は行っていたが、フリーランカウンタの値(現在値)の等値化は行っていなかった。稼動系CPUモジュール110のフリーランカウンタ112と待機系CPUモジュール120のフリーランカウンタ122は、互いに独立して動作している為、例えばCPUモジュール110、CPUモジュール120の電源ONの時間差により、フリーランカウンタのカウント値が異なることになる。例えば、CPUモジュール110を電源ONしてから、数十秒後にCPUモジュール120を電源ONした場合、両モジュールのフリーランカウンタ値の差は、数十秒程度となる。
特開平9−244716号公報
上述した従来の待機冗長2重化コントローラ(プログラマブルコントローラ)では、例えば稼動系CPUモジュール110に何らかの異常が生じる等して、稼動/待機切替えが行われた場合に、新たに稼動系となったCPUモジュール120においてタイマ命令実行に不具合が生じていた。これについて、図9に示す例を参照して説明する。
図9は、稼動/待機切替え前後における従来のタイマ命令の実行状態を示す図である。
図9においては、各タイマ命令1〜Nの中でタイマ命令1の実行状態を例にして示す。
上述したように、フリーランカウンタは、稼動系のCPUモジュール110と待機系のCPUモジュール120とでは全く非同期にカウントしており、図示の例では、CPUモジュール110のフリーランカウンタ112の値は、CPUモジュール120のフリーランカウンタ122の値より、約‘31’程小さくなっている。つまり、この例では待機系のCPUモジュール120のほうが先に電源ONしたことになる。
稼動系であるCPUモジュール110では、タイマ命令1が実行される毎に、そのときのフリーランカウンタ112の値に基づいて上記(1)(2)の処理によりタイマ現在値113、前回フリーランカウンタ値114を更新している。図示の例では、例えばフリーランカウンタ112の値が‘22’のタイミングで命令実行された際には、タイマ現在値113は‘10’、前回フリーランカウンタ値114は‘18’となっているので、上記(1)の処理により、10+(22−18)=14が新たなタイマ現在値113として求められて更新され、また上記(2)の処理により現在のフリーランカウンタ値‘22’によって前回フリーランカウンタ値114が更新されるので、図示の通り、タイマ現在値=‘14’、前回フリーランカウンタ値=‘22’となる。
更にそのとき、当該更新されたタイマ現在値113、前回フリーランカウンタ値114は、図示のように、待機系のCPUモジュール120へ転送されて等値化される。つまり、タイマ現在値123、前回フリーランカウンタ値124の値は、タイマ現在値113、前回フリーランカウンタ値114の値と同じになる。
そして、図示のt3のタイミングで、稼動系のCPUモジュール110に何等かの切替え要因が発生した為、稼動/待機切替え処理が行われると、新たに稼動系となったCPUモジュール120は、等値化されたタイマ現在値123、前回フリーランカウンタ値124と、自己のフリーランカウンタ122の値とにより、タイマ命令を実行する。しかしながら、上記の通り、フリーランカウンタ112と122とではカウント値が異なっている為、タイマ現在値123の誤差が非常に大きくなってしまう可能性がある。
例えば図9に示す例では、切替え要因が発生する直前のタイマ命令1実行時に(図示のt1の時点)、タイマ現在値113は‘16’となっているが、切替え後にCPUモジュール120のアプリケーション121が最初にタイマ命令1を実行した時(図示のt2の時点)に、上記(1)の処理によってタイマ現在値123を更新すると、CPUモジュール120のフリーランカウンタ122の値は‘60’となっている為、更新後のタイマ現在値123は、16+(60−24)=‘52’となってしまう。
もし、切替え要因が発生せずに、CPUモジュール110側でt2の時点でタイマ命令1を実行したとすると、更新後のタイマ現在値113は‘21’になるので、誤差は31となる。この誤差は、CPUモジュール110とCPUモジュール120のフリーランカウンタ値の差によって決まるので、誤差が更に拡大することが想定される。また、プログラマブルコントローラでは、通常、タイマ命令の誤差保証範囲が決められており、タイマ現在値に誤差が生じたとしてもこの誤差保証範囲内で使用するのであれば問題ないようになっているが、上記の誤差の場合、誤差が何処まで拡大するのか想定することは難しい為、タイマ命令の誤差保証範囲を特定することができないという問題がある。
本発明の課題は、待機冗長2重化コントローラにおいて、稼動/待機切替え後のタイマ命令のタイマ現在値の誤差の範囲を特定でき、以って誤差保証範囲を特定することを可能にし、また従来に比べて誤差を小さくすることができる2重化コントローラシステム、方法、プログラム等を提供することである。
本発明による第1の2重化コントローラシステムは、一方が稼動系、他方が待機系となる2つのCPUモジュールを有する2重化コントローラシステムにおいて、前記各CPUモジュールは各々、フリーランカウンタを有し、稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、前記待機系CPUモジュールは、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記タイマ現在値は等値化された値を継続し、前記等値化されている前回フリーランカウンタ値はクリアすると共に自己のフリーランカウンタを初期化・再起動する切替手段を有するように構成する。
上記構成の第1の2重化コントローラシステムでは、たとえ稼動系CPUモジュールのフリーランカウンタと、待機系CPUモジュールのフリーランカウンタとで、カウンタ値の差が大きくなっていたとしても、待機系CPUモジュールは、新たな稼動系となる際に、前回フリーランカウンタ値、フリーランカウンタを初期化するので、その後の最初のタイマ命令実行時には、初期化後の経過時間(フリーランカウンタ値)がタイマ現在値に加算されることになる。この場合、切替え要因が発生する前の最終等値化から切替え処理までの時間が加算されないことになり、これが誤差時間となるが、この誤差時間は、アプリケーション実行周期(タイマ命令実行周期)に依存するので、アプリケーション実行周期によって誤差範囲を特定することができる。すなわち、誤差は、最大で“タイマ命令実行周期+切替処理に掛かる時間”となり、これ以上誤差は大きくならない。フリーランカウンタによる時間経過を初期状態として演算を再開することにより、タイマ現在値の実時間経過の誤差を最小限にすることができる。また、アプリケーション実行周期を短くすることにより誤差を更に縮小することもできる。
本発明による第2の2重化コントローラシステムは、一方が稼動系、他方が待機系となる2つのCPUモジュールを有し、該CPUモジュールにおいてタイマ命令を実行する2重化コントローラシステムにおいて、前記各CPUモジュールは各々フリーランカウンタを有し、稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値、フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、前記待機系CPUモジュールは、前記制御手段により転送される前記タイマ現在値、前回フリーランカウンタ値によって等値化処理を行うと共に前記フリーランカウンタ値を自己の停止状態のフリーランカウンタにセットする等値化手段と、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記停止状態のフリーランカウンタを起動して前記セットされた値から継続してカウント開始させると共に前記等値化されたタイマ現在値、前回フリーランカウンタ値を継続して用いさせる切替手段とを有するように構成する。
上記構成の第1の2重化コントローラシステムでは、待機系側のフリーランカウンタは停止状態にしておき、等値化処理の際にフリーランカウンタ値(現在値)も等値化しているので、稼動系と待機系とで電源ONの時間差が大きくても関係なく、稼動系側と待機系側のフリーランカウンタの値はほぼ同じとなっている。この状態で、稼動/待機切替が生じると、新たに稼動系となったCPUモジュールのフリーランカウンタは、稼動/待機切替前に最後に等値化されたときにセットされた値から継続してカウント開始するので、上記第1の構成と同様、誤差は、最大で“タイマ命令実行周期+切替処理に掛かる時間”となり、これ以上誤差は大きくならない。よって、上記第1の構成と同様、誤差の上限を特定でき、以って誤差保証範囲を特定できる。また、アプリケーション実行周期を短くすることにより誤差を更に縮小することもできる。
本発明の2重化コントローラシステム、方法、プログラム等によれば、稼動/待機切替え後のタイマ命令のタイマ現在値の誤差の範囲を特定でき、以って誤差保証範囲を特定することを可能にし、また従来に比べて誤差を小さくすることができる。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本実施の形態による2重化コントローラシステムにおけるプログラマブルコントローラ本体(CPUモジュール)の構成ブロック図である。
図1に示す2重化コントローラシステムは、CPUモジュール10、CPUモジュール20とを有し、CPUモジュール10、CPUモジュール20、及び不図示の各種I/O群は、システムバス40を介して接続されている。更に、ここでは、CPUモジュール10とCPUモジュール20との間に、等値化の為のデータ転送用のバス(等値化バス30)が設けられている構成を例にするが、この例に限るわけではなく、等値化の為のデータ転送はシステムバス40を介して行ってもよい(この場合には、図示の等値化バス制御部13、23、受信バッファ用RAM14,24は存在しない)。
尚、ここでは、CPUモジュール10が稼動系、CPUモジュール20がその待機系となっているものとして説明する。また、CPUモジュール10、20は、プログラマブルコントローラ本体であるが、ここでは本例の説明に係わる構成のみを示し、他の構成は省略して示す。
図1において、稼動系のCPUモジュール10は、プログラムRAM11、データRAM12、等値化バス制御部13、受信バッファ用RAM14、及び制御部15等を有する。これら以外の構成については、上記の通り、ここでの説明には特に関係ないので省略している。
プログラムRAM11には、ユーザプログラム11aが格納される。ユーザプログラム11aとは、例えば各I/O機器の制御、等値化処理を制御部15により実行させる為の各種アプリケーションプログラム、各タイマ命令1〜N等である。
データRAM12は、ユーザデータ領域12aを有する。ユーザデータ領域12aには、例えば等値化すべきデータ(例えば各タイマ命令毎のタイマ現在値、前回フリーランカウンタ値等)が格納されている。
等値化バス制御部13は、等値化バス30を介して等値化を行う為の等値化処理専用の構成であり、制御部15から等値化すべきデータを渡されると、待機側の等値化バス制御部23と連動して、この等値化データを待機側の受信バッファ用RAM24に転送・格納させる機能を有する。尚、上記の通り、等値化バス制御部13、受信バッファ用RAM24は必ずしも必要な構成ではない。
制御部15は、CPUモジュール10全体を制御する中央処理装置(CPUチップ等)であり、上記プログラムRAM11に格納されているユーザプログラム11aを用いて、不図示のI/O群に接続された制御対象機器の制御や、後述する図5(a)に示す等値化処理等を実行する。また、制御部15は、フリーランカウンタ15aを備える。
また、待機系のCPUモジュール20は、プログラムRAM21、データRAM22、等値化バス制御部23、受信バッファ用RAM24、及び制御部25等を有する。これらの構成自体は、稼動系のCPUモジュール10と同じであるので、特に説明しないが、制御部25は、特に等値化処理、稼動/待機切替処理の際に、プログラムRAM21に格納されているアプリケーションプログラムを用いて、後述する図2の処理や、図5(a)、(b)における待機側の処理を実行する。また、制御部25は、制御部15とは異なり、不図示のI/O群に接続された制御対象機器の制御は行っていない。但し、これは、CPUモジュール20が待機系のときの話であり、稼動系のときには制御部25は制御対象機器の制御を行うし、勿論、各タイマ命令実行毎にタイマ現在値、前回フリーランカウンタ値の更新も行う。また、制御部25は、フリーランカウンタ25aを備える。
上記構成の2重化コントローラシステムにおける等値化処理、稼動/待機切替処理について、以下、2つの実施例を挙げて説明する。
以下、まず、図2、図3を参照して、第1の実施例について説明する。
第1の実施例では、通常動作時すなわち切替え要因発生前の稼動CPUモジュール、待機CPUモジュールの動作(特に等値化処理)は、従来と同じである。すなわち、図3に示すように、切替え要因発生前には、タイマ命令実行毎に、タイマ現在値、前回フリーランカウンタ値の等値化は行うが、フリーランカウンタ値(現在値)の等値化は行わない。
第1の実施例では、稼動/待機切替え時のCPUモジュール20(新たに稼動系となる)の切替処理内容が、従来とは異なる。
図2は、CPUモジュール20の稼動/待機切替え処理及びその後の処理のフローチャート図である。
稼動系のCPUモジュール10に何らかの切替え要因が発生した為に、新たに稼動系となるCPUモジュール20は、図2において、等値化されていた前回フリーランカウンタ値をクリア(=0)すると共に、自己のフリーランカウンタ25aを初期化・再起動する(ステップS11)。また、等値化されていたタイマ現在値は、そのまま継続して使用する。これにより、フリーランカウンタ25aは0から再びカウントを開始し、その後、最初にタイマ命令実行された際には(ステップS12)、0クリアされた前回フリーランカウンタ値、フリーランカウンタ値(現在値)、及び等値化された値が継続して用いられるタイマ現在値とによって、上記(1)の処理を実行すると、
(1)タイマ現在値 + (フリーランカウンタ値 − 0)
=> タイマ現在値
によって、タイマ現在値を更新することになる(ステップS13)。勿論、前回フリーランカウンタ値も上記(2)の処理により更新する。
このようにすることで、新たに稼動となったCPUモジュール20における1スキャン目のタイマ命令実行の際の上記更新処理では、タイマ現在値には、切替え処理からの経過時間が加算されることになるが、切替え要因が発生する直前の等値化処理実行時点から切替え処理実行時点までの時間が加算されないことになり、これが誤差時間となる。この誤差時間は、アプリケーション実行周期(タイマ命令実行周期)に依存するので、アプリケーション実行周期によって誤差範囲を特定することができる。すなわち、誤差は、最大で“タイマ命令実行周期+切替処理に掛かる時間”となり、これ以上誤差は大きくならない。尚、切替処理に掛かる時間とは、切替え要因発生時点から上記前回フリーランカウンタ値のクリア(=0)及びフリーランカウンタ25aの初期化・再起動が完了する時点までを意味する。また、アプリケーション実行周期を短くすることにより誤差を更に縮小することもできる。
上述した処理について、図3に示す例を用いて説明する。
図3に示す例では、図示のt4の時点で切替え要因が発生し、切替え処理によって、図示のt3の時点で前回フリーランカウンタ値は‘0’クリアされ且つフリーランカウンタは初期化・再起動されて、フリーランカウンタ25aはこの時点から‘0’から順にカウントアップされる。
その後、図示のt2の時点で、新たに稼動となったCPUモジュール20における1スキャン目のタイマ命令が実行された場合、図示の例ではこの時点でのフリーランカウンタのカウント値は‘1’となっており、前回フリーランカウンタ値は‘0’であり、タイマ現在値は‘16’のままであるので、上記(1)の処理により、新たなタイマ現在値は、16+(1−0)=17となる。つまり、切替え処理時点t3からの経過時間がタイマ現在値に加算されることになる。もし、切替え要因が発生せずに、CPUモジュール10がt2の時点でタイマ命令を実行したとすると、タイマ現在値は21になるので、誤差は4となる。ここで、図示のt1からt3までの経過時間はタイマ現在値には加算されないことになり、この経過時間が誤差時間となるが、この経過時間はアプリケーション実行周期に依存するので、誤差範囲を特定することができる。また、従来方式に比べて誤差が少なくなる。更に、等値化実行周期を短くすることにより誤差を縮小することもできる。
上述してある通り、通常、プログラマブルコントローラでは、タイマ命令の誤差保証範囲が特定されていれば、実際の現場ではこの誤差保証範囲で使用する限り、問題はない。例えばバルブの開閉システムにおいて、バルブの開時間の誤差が±2秒までは許容できる場合、例えばタイマ命令の誤差保証範囲が±1秒であるプログラマブルコントローラであれば、問題なく使用できることになる。一方、タイマ命令の誤差保証範囲が、許容できる範囲を越えている場合には、ユーザは、最初からそのプログラマブルコントローラは使用しないという判断が行えることになる。
次に、以下、第2の実施例について図4〜図6を参照して説明する。
第2の実施例では、図4に示すように、タイマ現在値、前回フリーランカウンタ値だけでなく、フリーランカウンタ値(現在値)の等値化も行っている。
そして、稼動系のCPUモジュール10、待機系のCPUモジュール20は、等値化処理においては図5(a)に示す処理、稼動/待機切替処理においては図5(b)に示す処理を実行する。
図5(a)において、まず、CPUモジュール20は、自己が待機系となっている間は、自己のフリーランカウンタ25aは停止状態にしている。そして、稼動系となっているCPUモジュール10は、各タイマ命令を実行すると共に、等値化処理において、タイマ現在値、前回フリーランカウンタ値に加えてフリーランカウンタ値(現在値)を、待機系のCPUモジュール20へ転送する(ステップS21)。CPUモジュール20は、転送されてきたタイマ現在値、前回フリーランカウンタ値によって、自己が保持するタイマ現在値、前回フリーランカウンタ値を更新する(ステップS31)。更に、転送されてきたフリーランカウンタ値(現在値)を、停止状態にしている自己のフリーランカウンタ25aにセットする(ステップS32)。
その後、任意のときに、稼動系のCPUモジュール10に異常発生等の切替え要因が生じると、CPUモジュール20は、稼動/待機切替え処理において、自己のフリーランカウンタを(初期化せずに)起動する(ステップS41)。また、タイマ現在値、前回フリーランカウンタ値は、等値化された値をそのまま継続して用いる。これによって、新たに稼動系となるCPUモジュール20では、フリーランカウンタ25aは、切替え要因発生直前の等値化処理によってセットされた値からカウント開始することになる。また、タイマ現在値、前回フリーランカウンタ値は、等値化された値をそのまま継続して用いる。
以上の状態から、その後、随時、タイマ命令を実行することになる(ステップS42)。
これによって、新たに稼動系となったCPUモジュール20の1スキャン目のタイマ命令実行結果は、タイマ現在値には、切替処理からの経過時間が加算されることになるが、切替え要因が発生する直前の等値化処理時点から切替処理完了時点まで時間が加算されないことになり、これが誤差時間となる。よって、第1の実施例と同様、誤差範囲を特定することができる。また、従来方式に比べて誤差が少なくなる。更に、等値化実行周期を短くすることにより誤差を縮小することもできる。
上述した処理について、図6に示す例を用いて説明する。
図6に示す例では、図示のt4の時点で切替え要因が発生し、CPUモジュール20は、切替え処理において、停止していたフリーランカウンタ25aを起動することで、フリーランカウンタ25aは、切替え要因発生直前にセットされた値‘24’からカウント開始する。すなわち、図示のt3の時点から、‘25’、‘26’・・・とカウントアップする。
その後、図示のt2の時点で、新たに稼動系となったCPUモジュール20における1スキャン目のタイマ命令が実行された場合、図示の例ではこの時点でのフリーランカウンタ25aのカウント値は‘26’となっており、前回フリーランカウンタ値は‘24’、タイマ現在値は‘16’のままであるので、上記(1)の処理により、新たなタイマ現在値は、16+(26−24)=18となる。
つまり、切替え処理時点t3からの経過時間がタイマ現在値に加算されることになるが、図示のt1からt3までの経過時間はタイマ現在値には加算されないことになり、この経過時間が誤差時間となるが、この経過時間はアプリケーション実行周期に依存するので、誤差範囲を特定することができる。また、従来方式に比べて誤差が少なくなる。尚、図示の例では、もし、切替え要因が発生せずに、CPUモジュール10がt2の時点でタイマ命令を実行したとすると、タイマ現在値は21になるので、誤差は3となる。
2重化コントローラシステムにおけるプログラマブルコントローラ本体(CPUモジュール)の構成ブロック図である。 第1の実施例による稼動/待機切替処理、及びその後の処理のフローチャート図である。 第1の実施例における稼動/待機切替え前後におけるタイマ命令の実行状態を示す図である。 第2の実施例における等値化処理を示す図である。 (a)は第2の実施例における等値化処理、(b)は稼動/待機切替処理を説明する為のフローチャート図である。 第2の実施例における稼動/待機切替え前後におけるタイマ命令の実行状態を示す図である。 従来のフリーランカウンタを用いるタイマ命令実行を説明する為の図である。 二重化コントローラシステムにおけるタイマ命令のデータ等値化について説明する為の図である。 稼動/待機切替え前後における従来のタイマ命令の実行状態を示す図である。
符号の説明
10 CPUモジュール(稼動系)
11 プログラムRAM
11a ユーザプログラム
12 データRAM
12a ユーザデータ領域
13 等値化バス制御部
14 受信バッファ用RAM
15 制御部
20 CPUモジュール(待機系)
21 プログラムRAM
21a ユーザプログラム
22 データRAM
22a ユーザデータ領域
23 等値化バス制御部
24 受信バッファ用RAM
25 制御部

Claims (4)

  1. 一方が稼動系、他方が待機系となる2つのCPUモジュールを有する2重化コントローラシステムにおいて、
    前記各CPUモジュールは各々、フリーランカウンタを有し、
    稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、
    前記待機系CPUモジュールは、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記タイマ現在値は等値化された値を継続し、前記等値化されている前回フリーランカウンタ値はクリアすると共に自己のフリーランカウンタを初期化・再起動する切替手段を有することを特徴とする二重化コントローラシステム。
  2. 一方が稼動系、他方が待機系となる2つのCPUモジュールを有し、該CPUモジュールにおいてタイマ命令を実行する2重化コントローラシステムにおいて、
    前記各CPUモジュールは各々フリーランカウンタを有し、
    稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値、フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、
    前記待機系CPUモジュールは、前記制御手段により転送される前記タイマ現在値、前回フリーランカウンタ値によって等値化処理を行うと共に前記フリーランカウンタ値を自己の停止状態のフリーランカウンタにセットする等値化手段と、
    稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記停止状態のフリーランカウンタを起動して前記セットされた値から継続してカウント開始させると共に前記等値化されたタイマ現在値、前回フリーランカウンタ値を継続して用いさせる切替手段と、
    を有することを特徴とする二重化コントローラシステム。
  3. 2重化コントローラシステムにおける稼動/待機切替方法であって、
    稼動系側において、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値を待機系側へ転送して等値化させ、
    待機系側において、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記タイマ現在値は等値化された値を継続し、前記等値化されている前回フリーランカウンタ値はクリアすると共に自己のフリーランカウンタを初期化・再起動することを特徴とする稼動/待機切替方法。
  4. 2重化コントローラシステムにおける稼動/待機切替方法であって、
    稼動系側において、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値、フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させ、
    待機系側において、前記転送される前記タイマ現在値、前回フリーランカウンタ値によって等値化処理を行うと共に前記フリーランカウンタ値を自己の停止状態のフリーランカウンタにセットし、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記停止状態のフリーランカウンタを起動して前記セットされた値から継続してカウント開始させると共に前記等値化されたタイマ現在値、前回フリーランカウンタ値を継続して用いさせることを特徴とする稼動/待機切替方法。
JP2003339197A 2003-09-30 2003-09-30 2重化コントローラシステム、その方法 Expired - Lifetime JP4273905B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003339197A JP4273905B2 (ja) 2003-09-30 2003-09-30 2重化コントローラシステム、その方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003339197A JP4273905B2 (ja) 2003-09-30 2003-09-30 2重化コントローラシステム、その方法

Publications (2)

Publication Number Publication Date
JP2005107776A true JP2005107776A (ja) 2005-04-21
JP4273905B2 JP4273905B2 (ja) 2009-06-03

Family

ID=34534444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003339197A Expired - Lifetime JP4273905B2 (ja) 2003-09-30 2003-09-30 2重化コントローラシステム、その方法

Country Status (1)

Country Link
JP (1) JP4273905B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299120A (ja) * 2006-04-28 2007-11-15 Meidensha Corp 二重化プログラマブルコントローラの等値化方式
JP2009294961A (ja) * 2008-06-06 2009-12-17 Yokogawa Electric Corp 多重化入出力モジュール
JP2012003732A (ja) * 2010-06-21 2012-01-05 Fuji Electric Co Ltd プログラマブルコントローラシステムおよびそのアプリケーション起動方法
JP2014123284A (ja) * 2012-12-21 2014-07-03 Makita Corp 乱数発生装置
JP2017138814A (ja) * 2016-02-04 2017-08-10 富士電機株式会社 制御システム、および制御装置
CN109062027A (zh) * 2018-08-02 2018-12-21 中国航空工业集团公司西安飞行自动控制研究所 一种双余度控制方式的can总线主备工作切换方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299120A (ja) * 2006-04-28 2007-11-15 Meidensha Corp 二重化プログラマブルコントローラの等値化方式
JP2009294961A (ja) * 2008-06-06 2009-12-17 Yokogawa Electric Corp 多重化入出力モジュール
JP2012003732A (ja) * 2010-06-21 2012-01-05 Fuji Electric Co Ltd プログラマブルコントローラシステムおよびそのアプリケーション起動方法
JP2014123284A (ja) * 2012-12-21 2014-07-03 Makita Corp 乱数発生装置
JP2017138814A (ja) * 2016-02-04 2017-08-10 富士電機株式会社 制御システム、および制御装置
CN109062027A (zh) * 2018-08-02 2018-12-21 中国航空工业集团公司西安飞行自动控制研究所 一种双余度控制方式的can总线主备工作切换方法

Also Published As

Publication number Publication date
JP4273905B2 (ja) 2009-06-03

Similar Documents

Publication Publication Date Title
CN110874261B (zh) 可用性系统、方法和存储有程序的存储介质
CN107885305B (zh) 控制装置、控制方法以及记录介质
JP2007511806A (ja) 技術的装置を制御するための冗長性自動化システム及びその作動方法
JP2008225858A (ja) Biosストール障害時の復旧装置、その方法及びそのプログラム
JP4273905B2 (ja) 2重化コントローラシステム、その方法
JP2004054907A (ja) プログラマブルコントローラ及びcpuユニット並びに通信ユニット及び通信ユニットの制御方法
US7428660B2 (en) Starting control method, duplex platform system, and information processor
JP2003296133A (ja) コントローラ
JP4697314B2 (ja) 二重化フィールド制御装置
JP5445572B2 (ja) コンピュータシステム、待機電力削減方法、及びプログラム
JP2007172079A (ja) 二重化制御システム、及びその制御装置の制御プログラムの更新方法
JP4826557B2 (ja) 二重化plc
JP6304048B2 (ja) 制御システム、および制御装置
JP2011113240A (ja) 二重化処理装置
JP2011090642A (ja) 制御装置、制御システム、及びその起動方法
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
JP2008146239A (ja) 二重化制御装置、及びそのメモリ部の複数ビットエラーの自動修復方法
KR20120102240A (ko) 이중화 plc 시스템 및 이의 데이터 동기화 방법
JP2005092695A (ja) 二重化コントローラ、その等値化モード決定方法
CN105306256B (zh) 一种基于VxWorks设备的双机热备实现方法
JP6835422B1 (ja) 情報処理装置及び情報処理方法
JP2010128514A (ja) プラントコントロールシステム
JP4810488B2 (ja) 二重化制御装置、及びそのトラッキング方法
JP2799104B2 (ja) プログラマブルコントローラの二重化切替装置
JPH11175108A (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: 20090202

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4273905

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120313

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130313

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140313

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