JP2005107776A - Duplicated controller system and method therefor - Google Patents

Duplicated controller system and method therefor 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
Japanese (ja)
Other versions
JP4273905B2 (en
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/en
Publication of JP2005107776A publication Critical patent/JP2005107776A/en
Application granted granted Critical
Publication of JP4273905B2 publication Critical patent/JP4273905B2/en
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

<P>PROBLEM TO BE SOLVED: To specify an error range to thereby specify an error guarantee range. <P>SOLUTION: A CPU module 20 that is a new operation system clears (zeros) an equalized preceding free-running counter value, and initializes and restarts its own free-running counter. When executing an afterward timer instruction, for example in a first scan, a timer present value is not added with a time until a changeover process from final equalization before generation of a changeover factor though an elapsed time from the changeover process is added to the timer present value, so that it becomes an error time. Because the error time depends on an application execution period, the error range can be specified by the application execution period. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、待機冗長2重化コントローラ(プログラマブルコントローラ)に関する。   The present invention relates to a standby redundant duplex controller (programmable controller).

現在、プラント、工場などでは、工作機械や計測装置等の機器のシーケンス制御に多くのプログラマブルコントローラ等のコントローラを用い、FA(ファクトリーオートメーション)化を実現している。   Currently, in plants, factories, etc., FA (factory automation) is realized by using many controllers such as programmable controllers for sequence control of machines such as machine tools and measuring devices.

プログラマブルコントローラでは、通常、プログラマブルコントローラのコントローラ本体であるCPUモジュールにおいて、システムバス等を介して接続している各I/O機器を制御させる為のアプリケーション・プログラムが、複数のタイマ命令を使用している。   In a programmable controller, an application program for controlling each I / O device connected via a system bus or the like in a CPU module that is a controller body of a programmable controller usually uses a plurality of timer instructions. Yes.

図7に示すように、各タイマ命令1〜Nは、CPUモジュール100のアプリケーションプログラム101により使用される。CPUモジュール100は、全てのタイマ命令1〜Nのベース時間を生成する1つのフリーランカウンタ102を備える。また、各タイマ命令1〜N毎にタイマ現在値103と前回フリーランカウンタ値104とをメモリ上に保持する。   As shown in FIG. 7, the timer instructions 1 to N are used by the application program 101 of the CPU module 100. The CPU module 100 includes one free-run counter 102 that generates base times for all timer instructions 1 to N. The timer current value 103 and the previous free-run counter value 104 are held in the memory for each timer instruction 1 to N.

上記タイマ命令、フリーランカウンタに関しては、例えば特許文献1等に記載されている。
そして、ある1つのタイマ命令が実行される毎に、以下の(1)、(2)の処理を実行することで、タイマ現在値103、前回フリーランカウンタ値104を更新する。
(1)タイマ現在値 + (フリーランカウンタ値 − 前回フリーランカウンタ値)
=> タイマ現在値
(2)フリーランカウンタ値 => 前回フリーランカウンタ値
尚、上記フリーランカウンタ値は、当該タイマ命令実行時のフリーランカウンタ102の値であり、以下、フリーランカウンタの現在値等と記するものとする。
The timer instruction and the free-run counter are described in Patent Document 1, for example.
Each time a certain timer instruction is executed, the timer current value 103 and the previous free-run counter value 104 are updated by executing the following processes (1) and (2).
(1) Current timer value + (Free run counter value-Previous free run counter value)
=> Current timer value (2) Free-run counter value => Previous free-run counter value The above-mentioned free-run counter value is the value of the free-run counter 102 when the timer instruction is executed. It shall be written as a value etc.

ここで、近年、プログラマブルコントローラにおいて、信頼性を向上させるためにCPUモジュールを待機冗長の2重化構成にする場合がある。待機冗長の冗長2重化構成は、2つのCPUモジュールを1組とし、一方を稼動系、他方を待機系とし、稼動系のCPUモジュールを待機系のCPUモジュールが監視して、稼動系CPUモジュールに障害等の切替え要因が生じたならば待機系CPUモジュールが稼動系に切り替る構成である。   Here, in recent years, in a programmable controller, there is a case where the CPU module has a standby redundant dual configuration in order to improve reliability. In the redundant redundant configuration of standby redundancy, two CPU modules are set as one set, one is an active system, the other is a standby system, and the active CPU module is monitored by the standby CPU module. If a switching factor such as a failure occurs in the standby CPU module, the standby CPU module is switched to the active system.

このような二重化コントローラシステムにおいては、稼動系/待機系の切替えが生じたときに制御データ整合性を持たせる為、稼動系CPUモジュールから待機系CPUモジュールに対して随時、制御データを転送して待機系CPUモジュールにおいても稼動系CPUモジュールと同じ制御データを保持させる等値化処理を行っている。   In such a redundant controller system, control data is transferred from the active CPU module to the standby CPU module as needed to maintain control data consistency when the active / standby system is switched. The standby CPU module also performs equalization processing for holding the same control data as that of the active CPU module.

このような等値化すべき制御データには、図8に示すように、上記タイマ現在値、前回フリーランカウンタ値等も含まれる。
図8は、二重化コントローラシステムにおけるタイマ命令のデータ等値化について説明する為の図である。
Such control data to be equalized includes the timer current value, the previous free-run counter value, and the like, as shown in FIG.
FIG. 8 is a diagram for explaining data equalization of a timer instruction in the duplex controller system.

図8には、待機冗長の2重化構成とした二重化コントローラシステムにおける2つのCPUモジュールを示す。すなわち、CPUモジュール110、CPUモジュール120とを示す。ここでは、CPUモジュール110が稼動系、CPUモジュール120が待機系であるものとする。   FIG. 8 shows two CPU modules in a duplex controller system having a standby redundancy duplex configuration. That is, the CPU module 110 and the CPU module 120 are shown. Here, it is assumed that the CPU module 110 is an active system and the CPU module 120 is a standby system.

図8において、稼動系のCPUモジュール110で実行される任意のアプリケーション111により使用される各タイマ命令1〜N毎に、そのタイマ命令実行毎に、フリーランカウンタ112の現在値を参照して、上記(1)、(2)の処理により、実行したタイマ命令のタイマ現在値113、前回フリーランカウンタ値114を更新する。   In FIG. 8, for each timer instruction 1 to N used by an arbitrary application 111 executed by the active CPU module 110, with reference to the current value of the free-run counter 112 for each timer instruction execution, Through the processes (1) and (2), the timer current value 113 and the previous free-run counter value 114 of the executed timer instruction are updated.

一方、待機系のCPUモジュール120は、アプリケーション111と同一のアプリケーション121を有するが(使用するタイマ命令1〜Nも同一)、待機系である為、アプリケーション121は実行されていない。しかしながら、アプリケーション121により使用される各タイマ命令1〜Nのタイマ現在値123、前回フリーランカウンタ値124は、上記等値化処理により、随時更新されている。   On the other hand, the standby CPU module 120 has the same application 121 as the application 111 (the timer instructions 1 to N to be used are the same), but the application 121 is not executed because it is a standby system. However, the timer current value 123 and the previous free-run counter value 124 of each timer instruction 1 to N used by the application 121 are updated at any time by the above equalization process.

上記のように、従来では、タイマ現在値、前回フリーランカウンタ値の等値化は行っていたが、フリーランカウンタの値(現在値)の等値化は行っていなかった。稼動系CPUモジュール110のフリーランカウンタ112と待機系CPUモジュール120のフリーランカウンタ122は、互いに独立して動作している為、例えばCPUモジュール110、CPUモジュール120の電源ONの時間差により、フリーランカウンタのカウント値が異なることになる。例えば、CPUモジュール110を電源ONしてから、数十秒後にCPUモジュール120を電源ONした場合、両モジュールのフリーランカウンタ値の差は、数十秒程度となる。
特開平9−244716号公報
As described above, conventionally, the current timer value and the previous free-run counter value are equalized, but the free-run counter value (current value) is not equalized. The free run counter 112 of the active system CPU module 110 and the free run counter 122 of the standby system CPU module 120 operate independently of each other. The count value of the counter will be different. For example, when the CPU module 120 is turned on several tens of seconds after the CPU module 110 is turned on, the difference between the free run counter values of both modules is about several tens of seconds.
Japanese Patent Laid-Open No. 9-244716

上述した従来の待機冗長2重化コントローラ(プログラマブルコントローラ)では、例えば稼動系CPUモジュール110に何らかの異常が生じる等して、稼動/待機切替えが行われた場合に、新たに稼動系となったCPUモジュール120においてタイマ命令実行に不具合が生じていた。これについて、図9に示す例を参照して説明する。   In the conventional standby redundant duplex controller (programmable controller) described above, a CPU that becomes a new active system when the active / standby switching is performed due to, for example, an abnormality in the active CPU module 110. In module 120, a failure occurred in timer instruction execution. This will be described with reference to an example shown in FIG.

図9は、稼動/待機切替え前後における従来のタイマ命令の実行状態を示す図である。
図9においては、各タイマ命令1〜Nの中でタイマ命令1の実行状態を例にして示す。
上述したように、フリーランカウンタは、稼動系のCPUモジュール110と待機系のCPUモジュール120とでは全く非同期にカウントしており、図示の例では、CPUモジュール110のフリーランカウンタ112の値は、CPUモジュール120のフリーランカウンタ122の値より、約‘31’程小さくなっている。つまり、この例では待機系のCPUモジュール120のほうが先に電源ONしたことになる。
FIG. 9 is a diagram showing an execution state of a conventional timer instruction before and after the operation / standby switching.
In FIG. 9, the execution state of timer instruction 1 among timer instructions 1 to N is shown as an example.
As described above, the free-run counter counts completely asynchronously between the active CPU module 110 and the standby CPU module 120. In the illustrated example, the value of the free-run counter 112 of the CPU module 110 is It is smaller by about '31' than the value of the free run counter 122 of the CPU module 120. That is, in this example, the standby CPU module 120 is turned on first.

稼動系である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’となる。   In the active CPU module 110, each time the timer instruction 1 is executed, the timer current value 113 and the previous free run counter are obtained by the processes (1) and (2) based on the value of the free run counter 112 at that time. The value 114 is updated. In the example shown in the figure, for example, when an instruction is executed at the timing when the value of the free-run counter 112 is “22”, the timer current value 113 is “10” and the previous free-run counter value 114 is “18”. Therefore, 10+ (22−18) = 14 is obtained and updated as the new timer current value 113 by the process (1), and the current free-run counter value “22” is obtained by the process (2). Since the previous free run counter value 114 is updated, the timer current value = '14 'and the previous free run counter value = '22' as shown in the figure.

更にそのとき、当該更新されたタイマ現在値113、前回フリーランカウンタ値114は、図示のように、待機系のCPUモジュール120へ転送されて等値化される。つまり、タイマ現在値123、前回フリーランカウンタ値124の値は、タイマ現在値113、前回フリーランカウンタ値114の値と同じになる。   At that time, the updated timer current value 113 and the previous free-run counter value 114 are transferred to the standby CPU module 120 and equalized as shown in the figure. That is, the timer current value 123 and the previous free run counter value 124 are the same as the timer current value 113 and the previous free run counter value 114.

そして、図示のt3のタイミングで、稼動系のCPUモジュール110に何等かの切替え要因が発生した為、稼動/待機切替え処理が行われると、新たに稼動系となったCPUモジュール120は、等値化されたタイマ現在値123、前回フリーランカウンタ値124と、自己のフリーランカウンタ122の値とにより、タイマ命令を実行する。しかしながら、上記の通り、フリーランカウンタ112と122とではカウント値が異なっている為、タイマ現在値123の誤差が非常に大きくなってしまう可能性がある。   Then, at the timing of t3 in the figure, since some switching factor has occurred in the active CPU module 110, when the active / standby switching process is performed, the CPU module 120 that newly becomes the active system has the equal value. The timer command is executed based on the timer current value 123, the previous free run counter value 124, and the value of the self free run counter 122. However, as described above, since the count values are different between the free-run counters 112 and 122, the error of the timer current value 123 may become very large.

例えば図9に示す例では、切替え要因が発生する直前のタイマ命令1実行時に(図示のt1の時点)、タイマ現在値113は‘16’となっているが、切替え後にCPUモジュール120のアプリケーション121が最初にタイマ命令1を実行した時(図示のt2の時点)に、上記(1)の処理によってタイマ現在値123を更新すると、CPUモジュール120のフリーランカウンタ122の値は‘60’となっている為、更新後のタイマ現在値123は、16+(60−24)=‘52’となってしまう。   For example, in the example shown in FIG. 9, the timer current value 113 is '16' at the time of execution of the timer instruction 1 immediately before the switching factor occurs (time t1 in the figure), but the application 121 of the CPU module 120 after the switching. When the timer instruction 1 is executed for the first time (at time t2 in the figure), if the timer current value 123 is updated by the process (1) above, the value of the free run counter 122 of the CPU module 120 becomes “60”. Therefore, the updated timer current value 123 is 16+ (60−24) = “52”.

もし、切替え要因が発生せずに、CPUモジュール110側でt2の時点でタイマ命令1を実行したとすると、更新後のタイマ現在値113は‘21’になるので、誤差は31となる。この誤差は、CPUモジュール110とCPUモジュール120のフリーランカウンタ値の差によって決まるので、誤差が更に拡大することが想定される。また、プログラマブルコントローラでは、通常、タイマ命令の誤差保証範囲が決められており、タイマ現在値に誤差が生じたとしてもこの誤差保証範囲内で使用するのであれば問題ないようになっているが、上記の誤差の場合、誤差が何処まで拡大するのか想定することは難しい為、タイマ命令の誤差保証範囲を特定することができないという問題がある。   If the timer instruction 1 is executed at the time t2 on the CPU module 110 side without occurrence of the switching factor, the updated timer current value 113 is '21', so the error is 31. Since this error is determined by the difference between the free run counter values of the CPU module 110 and the CPU module 120, it is assumed that the error further increases. In addition, in the programmable controller, the error guarantee range of the timer instruction is usually determined, and even if an error occurs in the current timer value, there is no problem if it is used within this error guarantee range. In the case of the above error, since it is difficult to assume how far the error will be expanded, there is a problem that the error guarantee range of the timer instruction cannot be specified.

本発明の課題は、待機冗長2重化コントローラにおいて、稼動/待機切替え後のタイマ命令のタイマ現在値の誤差の範囲を特定でき、以って誤差保証範囲を特定することを可能にし、また従来に比べて誤差を小さくすることができる2重化コントローラシステム、方法、プログラム等を提供することである。   It is an object of the present invention to specify an error range of a timer current value of a timer instruction after operation / standby switching in a standby redundant dual controller, thereby enabling an error guarantee range to be specified. It is to provide a duplex controller system, a method, a program, and the like that can reduce an error as compared with the above.

本発明による第1の2重化コントローラシステムは、一方が稼動系、他方が待機系となる2つのCPUモジュールを有する2重化コントローラシステムにおいて、前記各CPUモジュールは各々、フリーランカウンタを有し、稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、前記待機系CPUモジュールは、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記タイマ現在値は等値化された値を継続し、前記等値化されている前回フリーランカウンタ値はクリアすると共に自己のフリーランカウンタを初期化・再起動する切替手段を有するように構成する。   The first dual controller system according to the present invention is a dual controller system having two CPU modules, one of which is an active system and the other of which is a standby system. Each of the CPU modules has a free-run counter. The active CPU module updates the timer current value and previous free run counter value held for each timer instruction using the free run counter, and the updated timer current value and previous free run counter value. Is transferred to the standby CPU module to equalize the standby CPU module. In the switching process when the standby CPU module becomes a new active system due to the occurrence of an operation / standby switching factor, the timer current value is equal Continues the valued value, clears the previous equalized free-run counter value and The free running counter configured to have a switching means to restart the initialization-.

上記構成の第1の2重化コントローラシステムでは、たとえ稼動系CPUモジュールのフリーランカウンタと、待機系CPUモジュールのフリーランカウンタとで、カウンタ値の差が大きくなっていたとしても、待機系CPUモジュールは、新たな稼動系となる際に、前回フリーランカウンタ値、フリーランカウンタを初期化するので、その後の最初のタイマ命令実行時には、初期化後の経過時間(フリーランカウンタ値)がタイマ現在値に加算されることになる。この場合、切替え要因が発生する前の最終等値化から切替え処理までの時間が加算されないことになり、これが誤差時間となるが、この誤差時間は、アプリケーション実行周期(タイマ命令実行周期)に依存するので、アプリケーション実行周期によって誤差範囲を特定することができる。すなわち、誤差は、最大で“タイマ命令実行周期+切替処理に掛かる時間”となり、これ以上誤差は大きくならない。フリーランカウンタによる時間経過を初期状態として演算を再開することにより、タイマ現在値の実時間経過の誤差を最小限にすることができる。また、アプリケーション実行周期を短くすることにより誤差を更に縮小することもできる。   In the first dual controller system configured as described above, even if the difference in counter values between the free-run counter of the active CPU module and the free-run counter of the standby CPU module is large, the standby CPU Since the module initializes the previous free run counter value and free run counter when it becomes a new active system, the elapsed time (free run counter value) after initialization is the timer when the first timer instruction is executed thereafter. It will be added to the current value. In this case, the time from the final equalization before the switching factor occurs until the switching process is not added, and this is an error time, but this error time depends on the application execution cycle (timer command execution cycle) Therefore, the error range can be specified by the application execution cycle. That is, the maximum error is “timer instruction execution cycle + time required for switching processing”, and the error does not increase any more. By restarting the calculation with the time elapsed by the free-run counter as an initial state, the error in the actual time elapsed of the timer current value can be minimized. Further, the error can be further reduced by shortening the application execution cycle.

本発明による第2の2重化コントローラシステムは、一方が稼動系、他方が待機系となる2つのCPUモジュールを有し、該CPUモジュールにおいてタイマ命令を実行する2重化コントローラシステムにおいて、前記各CPUモジュールは各々フリーランカウンタを有し、稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値、フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、前記待機系CPUモジュールは、前記制御手段により転送される前記タイマ現在値、前回フリーランカウンタ値によって等値化処理を行うと共に前記フリーランカウンタ値を自己の停止状態のフリーランカウンタにセットする等値化手段と、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記停止状態のフリーランカウンタを起動して前記セットされた値から継続してカウント開始させると共に前記等値化されたタイマ現在値、前回フリーランカウンタ値を継続して用いさせる切替手段とを有するように構成する。   A second duplex controller system according to the present invention includes two CPU modules, one of which is an active system and the other of which is a standby system, wherein the CPU module executes a timer command. Each CPU module has a free-run counter, and the active CPU module updates the current timer value and the previous free-run counter value held for each timer instruction using the free-run counter and after the update. A control means for transferring the current timer value, the previous free-run counter value, and the free-run counter value to the standby CPU module to equalize the standby current CPU module, wherein the standby CPU module transfers the timer current value transferred by the control means. Value and the previous free run counter value are equalized and the free run Equalization means for setting the counter value in its own free-run counter, and in the switching process when it becomes a new active system due to the occurrence of an active / standby switching factor, it activates the free-run counter in the stopped state. And switching means for continuously starting the count from the set value and continuously using the equalized timer current value and the previous free-run counter value.

上記構成の第1の2重化コントローラシステムでは、待機系側のフリーランカウンタは停止状態にしておき、等値化処理の際にフリーランカウンタ値(現在値)も等値化しているので、稼動系と待機系とで電源ONの時間差が大きくても関係なく、稼動系側と待機系側のフリーランカウンタの値はほぼ同じとなっている。この状態で、稼動/待機切替が生じると、新たに稼動系となったCPUモジュールのフリーランカウンタは、稼動/待機切替前に最後に等値化されたときにセットされた値から継続してカウント開始するので、上記第1の構成と同様、誤差は、最大で“タイマ命令実行周期+切替処理に掛かる時間”となり、これ以上誤差は大きくならない。よって、上記第1の構成と同様、誤差の上限を特定でき、以って誤差保証範囲を特定できる。また、アプリケーション実行周期を短くすることにより誤差を更に縮小することもできる。   In the first dual controller system configured as described above, the free-run counter on the standby system side is stopped and the free-run counter value (current value) is also equalized during the equalization process. Regardless of whether the power ON time difference between the active system and the standby system is large, the values of the free run counters on the active system side and the standby system side are almost the same. In this state, when operation / standby switching occurs, the free run counter of the CPU module that has newly become active continues from the value set when it was last equalized before operation / standby switching. Since the count starts, the error is “timer instruction execution cycle + time required for the switching process” at the maximum as in the first configuration, and the error does not increase any more. Therefore, similarly to the first configuration, the upper limit of the error can be specified, and thus the error guarantee range can be specified. Further, the error can be further reduced by shortening the application execution cycle.

本発明の2重化コントローラシステム、方法、プログラム等によれば、稼動/待機切替え後のタイマ命令のタイマ現在値の誤差の範囲を特定でき、以って誤差保証範囲を特定することを可能にし、また従来に比べて誤差を小さくすることができる。   According to the dual controller system, method, program, etc. of the present invention, it is possible to specify the error range of the timer current value of the timer instruction after the operation / standby switching, and thus to specify the error guarantee range. In addition, the error can be reduced as compared with the conventional case.

以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本実施の形態による2重化コントローラシステムにおけるプログラマブルコントローラ本体(CPUモジュール)の構成ブロック図である。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a configuration block diagram of a programmable controller main body (CPU module) in a duplex controller system according to the present embodiment.

図1に示す2重化コントローラシステムは、CPUモジュール10、CPUモジュール20とを有し、CPUモジュール10、CPUモジュール20、及び不図示の各種I/O群は、システムバス40を介して接続されている。更に、ここでは、CPUモジュール10とCPUモジュール20との間に、等値化の為のデータ転送用のバス(等値化バス30)が設けられている構成を例にするが、この例に限るわけではなく、等値化の為のデータ転送はシステムバス40を介して行ってもよい(この場合には、図示の等値化バス制御部13、23、受信バッファ用RAM14,24は存在しない)。   The duplex controller system shown in FIG. 1 includes a CPU module 10 and a CPU module 20, and the CPU module 10, the CPU module 20, and various I / O groups (not shown) are connected via a system bus 40. ing. Further, here, a configuration in which a data transfer bus (equalization bus 30) for equalization is provided between the CPU module 10 and the CPU module 20 will be described as an example. The data transfer for equalization may be performed via the system bus 40 (in this case, the equalization bus control units 13 and 23 and the reception buffer RAMs 14 and 24 shown in the figure exist). do not do).

尚、ここでは、CPUモジュール10が稼動系、CPUモジュール20がその待機系となっているものとして説明する。また、CPUモジュール10、20は、プログラマブルコントローラ本体であるが、ここでは本例の説明に係わる構成のみを示し、他の構成は省略して示す。   In the following description, it is assumed that the CPU module 10 is an active system and the CPU module 20 is a standby system. The CPU modules 10 and 20 are programmable controller bodies, but here, only the configuration related to the description of this example is shown, and the other configurations are omitted.

図1において、稼動系のCPUモジュール10は、プログラムRAM11、データRAM12、等値化バス制御部13、受信バッファ用RAM14、及び制御部15等を有する。これら以外の構成については、上記の通り、ここでの説明には特に関係ないので省略している。   In FIG. 1, an active CPU module 10 includes a program RAM 11, a data RAM 12, an equalization bus control unit 13, a reception buffer RAM 14, a control unit 15, and the like. Other configurations are omitted because they are not particularly relevant to the description here, as described above.

プログラムRAM11には、ユーザプログラム11aが格納される。ユーザプログラム11aとは、例えば各I/O機器の制御、等値化処理を制御部15により実行させる為の各種アプリケーションプログラム、各タイマ命令1〜N等である。   The program RAM 11 stores a user program 11a. The user program 11a is, for example, various application programs for causing the control unit 15 to execute control and equalization processing of each I / O device, timer instructions 1 to N, and the like.

データRAM12は、ユーザデータ領域12aを有する。ユーザデータ領域12aには、例えば等値化すべきデータ(例えば各タイマ命令毎のタイマ現在値、前回フリーランカウンタ値等)が格納されている。   The data RAM 12 has a user data area 12a. In the user data area 12a, for example, data to be equalized (for example, timer current value for each timer instruction, previous free run counter value, etc.) is stored.

等値化バス制御部13は、等値化バス30を介して等値化を行う為の等値化処理専用の構成であり、制御部15から等値化すべきデータを渡されると、待機側の等値化バス制御部23と連動して、この等値化データを待機側の受信バッファ用RAM24に転送・格納させる機能を有する。尚、上記の通り、等値化バス制御部13、受信バッファ用RAM24は必ずしも必要な構成ではない。   The equalization bus control unit 13 is a configuration dedicated to equalization processing for performing equalization via the equalization bus 30. When data to be equalized is passed from the control unit 15, In conjunction with the equalization bus control unit 23, the equalization data is transferred to and stored in the reception buffer RAM 24 on the standby side. As described above, the equalization bus control unit 13 and the reception buffer RAM 24 are not necessarily required.

制御部15は、CPUモジュール10全体を制御する中央処理装置(CPUチップ等)であり、上記プログラムRAM11に格納されているユーザプログラム11aを用いて、不図示のI/O群に接続された制御対象機器の制御や、後述する図5(a)に示す等値化処理等を実行する。また、制御部15は、フリーランカウンタ15aを備える。   The control unit 15 is a central processing unit (CPU chip or the like) that controls the CPU module 10 as a whole, and uses a user program 11a stored in the program RAM 11 to control connected to an I / O group (not shown). Control of the target device, equalization processing shown in FIG. The control unit 15 includes a free run counter 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を備える。   The standby CPU module 20 includes a program RAM 21, a data RAM 22, an equalization bus control unit 23, a reception buffer RAM 24, a control unit 25, and the like. Since these configurations are the same as those of the active CPU module 10, they will not be described in particular, but the control unit 25 is stored in the program RAM 21 particularly during the equalization process and the operation / standby switching process. The application program is used to execute the processing in FIG. 2 to be described later and the processing on the standby side in FIGS. 5A and 5B. Unlike the control unit 15, the control unit 25 does not control a control target device connected to an I / O group (not shown). However, this is a story when the CPU module 20 is a standby system. When the CPU module 20 is an active system, the control unit 25 controls the device to be controlled. Of course, each time a timer command is executed, the timer current value and the previous free run are controlled. The counter value is also updated. The control unit 25 includes a free run counter 25a.

上記構成の2重化コントローラシステムにおける等値化処理、稼動/待機切替処理について、以下、2つの実施例を挙げて説明する。
以下、まず、図2、図3を参照して、第1の実施例について説明する。
The equalization process and the operation / standby switching process in the duplex controller system having the above configuration will be described below with reference to two examples.
Hereinafter, first, the first embodiment will be described with reference to FIGS.

第1の実施例では、通常動作時すなわち切替え要因発生前の稼動CPUモジュール、待機CPUモジュールの動作(特に等値化処理)は、従来と同じである。すなわち、図3に示すように、切替え要因発生前には、タイマ命令実行毎に、タイマ現在値、前回フリーランカウンタ値の等値化は行うが、フリーランカウンタ値(現在値)の等値化は行わない。   In the first embodiment, the operation (especially equalization processing) of the active CPU module and the standby CPU module during normal operation, that is, before the occurrence of the switching factor, is the same as the conventional one. That is, as shown in FIG. 3, the timer current value and the previous free-run counter value are equalized every time the timer instruction is executed before the switching factor occurs, but the free-run counter value (current value) is equal. No conversion is performed.

第1の実施例では、稼動/待機切替え時のCPUモジュール20(新たに稼動系となる)の切替処理内容が、従来とは異なる。
図2は、CPUモジュール20の稼動/待機切替え処理及びその後の処理のフローチャート図である。
In the first embodiment, the content of switching processing of the CPU module 20 (newly becomes an active system) at the time of operation / standby switching is different from the conventional one.
FIG. 2 is a flowchart of the operation / standby switching processing of the CPU module 20 and the subsequent processing.

稼動系のCPUモジュール10に何らかの切替え要因が発生した為に、新たに稼動系となるCPUモジュール20は、図2において、等値化されていた前回フリーランカウンタ値をクリア(=0)すると共に、自己のフリーランカウンタ25aを初期化・再起動する(ステップS11)。また、等値化されていたタイマ現在値は、そのまま継続して使用する。これにより、フリーランカウンタ25aは0から再びカウントを開始し、その後、最初にタイマ命令実行された際には(ステップS12)、0クリアされた前回フリーランカウンタ値、フリーランカウンタ値(現在値)、及び等値化された値が継続して用いられるタイマ現在値とによって、上記(1)の処理を実行すると、
(1)タイマ現在値 + (フリーランカウンタ値 − 0)
=> タイマ現在値
によって、タイマ現在値を更新することになる(ステップS13)。勿論、前回フリーランカウンタ値も上記(2)の処理により更新する。
Since some switching factor has occurred in the active CPU module 10, the CPU module 20 that newly becomes the active system clears (= 0) the previous free run counter value that was equalized in FIG. The self-free-run counter 25a is initialized and restarted (step S11). Further, the timer current value that has been equalized is continuously used as it is. As a result, the free run counter 25a starts counting again from 0, and when the timer instruction is executed for the first time (step S12), the previous free run counter value cleared to 0, the free run counter value (current value) ) And the timer current value for which the equalized value is continuously used, the above process (1) is executed.
(1) Current timer value + (Free-run counter value – 0)
=> The current timer value is updated with the current timer value (step S13). Of course, the previous free-run counter value is also updated by the process (2).

このようにすることで、新たに稼動となったCPUモジュール20における1スキャン目のタイマ命令実行の際の上記更新処理では、タイマ現在値には、切替え処理からの経過時間が加算されることになるが、切替え要因が発生する直前の等値化処理実行時点から切替え処理実行時点までの時間が加算されないことになり、これが誤差時間となる。この誤差時間は、アプリケーション実行周期(タイマ命令実行周期)に依存するので、アプリケーション実行周期によって誤差範囲を特定することができる。すなわち、誤差は、最大で“タイマ命令実行周期+切替処理に掛かる時間”となり、これ以上誤差は大きくならない。尚、切替処理に掛かる時間とは、切替え要因発生時点から上記前回フリーランカウンタ値のクリア(=0)及びフリーランカウンタ25aの初期化・再起動が完了する時点までを意味する。また、アプリケーション実行周期を短くすることにより誤差を更に縮小することもできる。   In this way, in the above update process when the first scan timer instruction is executed in the newly activated CPU module 20, the elapsed time from the switching process is added to the timer current value. However, the time from the equalization process execution time immediately before the occurrence of the switching factor to the switching process execution time is not added, and this is an error time. Since this error time depends on the application execution cycle (timer instruction execution cycle), the error range can be specified by the application execution cycle. That is, the maximum error is “timer instruction execution cycle + time required for switching processing”, and the error does not increase any more. The time required for the switching process means from the time when the switching factor occurs until the time when the previous free run counter value is cleared (= 0) and the initialization / restart of the free run counter 25a is completed. Further, the error can be further reduced by shortening the application execution cycle.

上述した処理について、図3に示す例を用いて説明する。
図3に示す例では、図示のt4の時点で切替え要因が発生し、切替え処理によって、図示のt3の時点で前回フリーランカウンタ値は‘0’クリアされ且つフリーランカウンタは初期化・再起動されて、フリーランカウンタ25aはこの時点から‘0’から順にカウントアップされる。
The processing described above will be described using the example shown in FIG.
In the example shown in FIG. 3, a switching factor occurs at the time t4 shown in the figure, the previous free run counter value is cleared to “0” at the time t3 shown in the switching process, and the free run counter is initialized and restarted. Thus, the free-run counter 25a is counted up from “0” in this order.

その後、図示のt2の時点で、新たに稼動となったCPUモジュール20における1スキャン目のタイマ命令が実行された場合、図示の例ではこの時点でのフリーランカウンタのカウント値は‘1’となっており、前回フリーランカウンタ値は‘0’であり、タイマ現在値は‘16’のままであるので、上記(1)の処理により、新たなタイマ現在値は、16+(1−0)=17となる。つまり、切替え処理時点t3からの経過時間がタイマ現在値に加算されることになる。もし、切替え要因が発生せずに、CPUモジュール10がt2の時点でタイマ命令を実行したとすると、タイマ現在値は21になるので、誤差は4となる。ここで、図示のt1からt3までの経過時間はタイマ現在値には加算されないことになり、この経過時間が誤差時間となるが、この経過時間はアプリケーション実行周期に依存するので、誤差範囲を特定することができる。また、従来方式に比べて誤差が少なくなる。更に、等値化実行周期を短くすることにより誤差を縮小することもできる。   After that, when the timer command for the first scan in the CPU module 20 newly activated is executed at the time t2 shown in the figure, the count value of the free run counter at this time is “1” in the example shown in the figure. Since the previous free-run counter value is “0” and the timer current value remains “16”, the new timer current value is 16+ (1-0) by the processing of (1) above. = 17. That is, the elapsed time from the switching processing time point t3 is added to the timer current value. If the CPU module 10 executes the timer instruction at the time t2 without causing the switching factor, the timer current value is 21, so the error is 4. Here, the elapsed time from t1 to t3 in the figure is not added to the timer current value, and this elapsed time becomes an error time, but this elapsed time depends on the application execution cycle, so the error range is specified. can do. Further, the error is reduced as compared with the conventional method. Furthermore, the error can be reduced by shortening the equalization execution cycle.

上述してある通り、通常、プログラマブルコントローラでは、タイマ命令の誤差保証範囲が特定されていれば、実際の現場ではこの誤差保証範囲で使用する限り、問題はない。例えばバルブの開閉システムにおいて、バルブの開時間の誤差が±2秒までは許容できる場合、例えばタイマ命令の誤差保証範囲が±1秒であるプログラマブルコントローラであれば、問題なく使用できることになる。一方、タイマ命令の誤差保証範囲が、許容できる範囲を越えている場合には、ユーザは、最初からそのプログラマブルコントローラは使用しないという判断が行えることになる。   As described above, generally, in the programmable controller, if the error guarantee range of the timer instruction is specified, there is no problem as long as the error guarantee range is used in the actual site. For example, in a valve opening / closing system, if the error of the valve opening time is acceptable up to ± 2 seconds, for example, a programmable controller having a timer command error guarantee range of ± 1 second can be used without any problem. On the other hand, if the error guarantee range of the timer instruction exceeds an allowable range, the user can determine that the programmable controller is not used from the beginning.

次に、以下、第2の実施例について図4〜図6を参照して説明する。
第2の実施例では、図4に示すように、タイマ現在値、前回フリーランカウンタ値だけでなく、フリーランカウンタ値(現在値)の等値化も行っている。
Next, a second embodiment will be described below with reference to FIGS.
In the second embodiment, as shown in FIG. 4, not only the timer current value and the previous free run counter value, but also the equalization of the free run counter value (current value) is performed.

そして、稼動系のCPUモジュール10、待機系のCPUモジュール20は、等値化処理においては図5(a)に示す処理、稼動/待機切替処理においては図5(b)に示す処理を実行する。   The active CPU module 10 and the standby CPU module 20 execute the process shown in FIG. 5A in the equalization process and the process shown in FIG. 5B in the operation / standby switching process. .

図5(a)において、まず、CPUモジュール20は、自己が待機系となっている間は、自己のフリーランカウンタ25aは停止状態にしている。そして、稼動系となっているCPUモジュール10は、各タイマ命令を実行すると共に、等値化処理において、タイマ現在値、前回フリーランカウンタ値に加えてフリーランカウンタ値(現在値)を、待機系のCPUモジュール20へ転送する(ステップS21)。CPUモジュール20は、転送されてきたタイマ現在値、前回フリーランカウンタ値によって、自己が保持するタイマ現在値、前回フリーランカウンタ値を更新する(ステップS31)。更に、転送されてきたフリーランカウンタ値(現在値)を、停止状態にしている自己のフリーランカウンタ25aにセットする(ステップS32)。   In FIG. 5A, first, the CPU module 20 keeps its own free-run counter 25a in a stopped state while it is in a standby system. The active CPU module 10 executes each timer instruction and waits for the free run counter value (current value) in addition to the current timer value and the previous free run counter value in the equalization process. The data is transferred to the system CPU module 20 (step S21). The CPU module 20 updates the timer current value and the previous free-run counter value held by itself with the transferred timer current value and previous free-run counter value (step S31). Further, the transferred free-run counter value (current value) is set in its own free-run counter 25a (step S32).

その後、任意のときに、稼動系のCPUモジュール10に異常発生等の切替え要因が生じると、CPUモジュール20は、稼動/待機切替え処理において、自己のフリーランカウンタを(初期化せずに)起動する(ステップS41)。また、タイマ現在値、前回フリーランカウンタ値は、等値化された値をそのまま継続して用いる。これによって、新たに稼動系となるCPUモジュール20では、フリーランカウンタ25aは、切替え要因発生直前の等値化処理によってセットされた値からカウント開始することになる。また、タイマ現在値、前回フリーランカウンタ値は、等値化された値をそのまま継続して用いる。   Thereafter, when a switching factor such as occurrence of an abnormality occurs in the active CPU module 10 at any time, the CPU module 20 starts its own free-run counter (without initializing) in the operation / standby switching process. (Step S41). Further, the equalized values are continuously used as the current timer value and the previous free-run counter value. As a result, in the CPU module 20 that becomes a new active system, the free-run counter 25a starts counting from the value set by the equalization process immediately before the occurrence of the switching factor. Further, the equalized values are continuously used as the current timer value and the previous free-run counter value.

以上の状態から、その後、随時、タイマ命令を実行することになる(ステップS42)。
これによって、新たに稼動系となったCPUモジュール20の1スキャン目のタイマ命令実行結果は、タイマ現在値には、切替処理からの経過時間が加算されることになるが、切替え要因が発生する直前の等値化処理時点から切替処理完了時点まで時間が加算されないことになり、これが誤差時間となる。よって、第1の実施例と同様、誤差範囲を特定することができる。また、従来方式に比べて誤差が少なくなる。更に、等値化実行周期を短くすることにより誤差を縮小することもできる。
From the above state, a timer command is executed at any time thereafter (step S42).
As a result, in the timer command execution result of the first scan of the CPU module 20 that is newly active, the elapsed time from the switching process is added to the timer current value, but a switching factor occurs. No time is added from the previous equalization processing time point to the switching processing completion time point, which is an error time. Therefore, the error range can be specified as in the first embodiment. Further, the error is reduced as compared with the conventional method. Furthermore, the error can be reduced by shortening the equalization execution cycle.

上述した処理について、図6に示す例を用いて説明する。
図6に示す例では、図示のt4の時点で切替え要因が発生し、CPUモジュール20は、切替え処理において、停止していたフリーランカウンタ25aを起動することで、フリーランカウンタ25aは、切替え要因発生直前にセットされた値‘24’からカウント開始する。すなわち、図示のt3の時点から、‘25’、‘26’・・・とカウントアップする。
The processing described above will be described using the example shown in FIG.
In the example shown in FIG. 6, a switching factor occurs at the time t4 shown in the figure, and the CPU module 20 starts the stopped free-run counter 25a in the switching process, so that the free-run counter 25a Counting starts from the value “24” set immediately before the occurrence. That is, it counts up to '25', '26',.

その後、図示のt2の時点で、新たに稼動系となったCPUモジュール20における1スキャン目のタイマ命令が実行された場合、図示の例ではこの時点でのフリーランカウンタ25aのカウント値は‘26’となっており、前回フリーランカウンタ値は‘24’、タイマ現在値は‘16’のままであるので、上記(1)の処理により、新たなタイマ現在値は、16+(26−24)=18となる。   Thereafter, when the timer command for the first scan is executed in the CPU module 20 that is newly active at the time t2 shown in the figure, the count value of the free-run counter 25a at this time is “26” in the example shown in the figure. Since the previous free run counter value remains “24” and the timer current value remains “16”, the new timer current value becomes 16+ (26−24) by the processing of (1) above. = 18.

つまり、切替え処理時点t3からの経過時間がタイマ現在値に加算されることになるが、図示のt1からt3までの経過時間はタイマ現在値には加算されないことになり、この経過時間が誤差時間となるが、この経過時間はアプリケーション実行周期に依存するので、誤差範囲を特定することができる。また、従来方式に比べて誤差が少なくなる。尚、図示の例では、もし、切替え要因が発生せずに、CPUモジュール10がt2の時点でタイマ命令を実行したとすると、タイマ現在値は21になるので、誤差は3となる。   That is, the elapsed time from the switching processing time t3 is added to the current timer value, but the elapsed time from t1 to t3 in the figure is not added to the current timer value, and this elapsed time is an error time. However, since this elapsed time depends on the application execution cycle, the error range can be specified. Further, the error is reduced as compared with the conventional method. In the example shown in the figure, if the CPU module 10 executes a timer command at the time t2 without causing a switching factor, the timer current value is 21, so the error is 3.

2重化コントローラシステムにおけるプログラマブルコントローラ本体(CPUモジュール)の構成ブロック図である。It is a block diagram of the programmable controller main body (CPU module) in the duplex controller system. 第1の実施例による稼動/待機切替処理、及びその後の処理のフローチャート図である。It is a flowchart figure of the operation / standby switching process by a 1st Example, and a subsequent process. 第1の実施例における稼動/待機切替え前後におけるタイマ命令の実行状態を示す図である。It is a figure which shows the execution state of the timer command before and after operation / standby switching in a 1st Example. 第2の実施例における等値化処理を示す図である。It is a figure which shows the equalization process in a 2nd Example. (a)は第2の実施例における等値化処理、(b)は稼動/待機切替処理を説明する為のフローチャート図である。(A) is an equalization process in the second embodiment, and (b) is a flowchart for explaining an operation / standby switching process. 第2の実施例における稼動/待機切替え前後におけるタイマ命令の実行状態を示す図である。It is a figure which shows the execution state of the timer command before and behind operation / standby switching in a 2nd Example. 従来のフリーランカウンタを用いるタイマ命令実行を説明する為の図である。It is a figure for demonstrating timer instruction execution using the conventional free run counter. 二重化コントローラシステムにおけるタイマ命令のデータ等値化について説明する為の図である。It is a figure for demonstrating the data equalization of the timer command in a duplication controller system. 稼動/待機切替え前後における従来のタイマ命令の実行状態を示す図である。It is a figure which shows the execution state of the conventional timer instruction before and after operation / standby switching.

符号の説明Explanation of symbols

10 CPUモジュール(稼動系)
11 プログラムRAM
11a ユーザプログラム
12 データRAM
12a ユーザデータ領域
13 等値化バス制御部
14 受信バッファ用RAM
15 制御部
20 CPUモジュール(待機系)
21 プログラムRAM
21a ユーザプログラム
22 データRAM
22a ユーザデータ領域
23 等値化バス制御部
24 受信バッファ用RAM
25 制御部

10 CPU module (working system)
11 Program RAM
11a User program 12 Data RAM
12a User data area 13 Equalization bus control unit 14 Receive buffer RAM
15 Control unit 20 CPU module (standby system)
21 Program RAM
21a User program 22 Data RAM
22a User data area 23 Equalization bus controller 24 Receive buffer RAM
25 Control unit

Claims (4)

一方が稼動系、他方が待機系となる2つのCPUモジュールを有する2重化コントローラシステムにおいて、
前記各CPUモジュールは各々、フリーランカウンタを有し、
稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、
前記待機系CPUモジュールは、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記タイマ現在値は等値化された値を継続し、前記等値化されている前回フリーランカウンタ値はクリアすると共に自己のフリーランカウンタを初期化・再起動する切替手段を有することを特徴とする二重化コントローラシステム。
In a dual controller system having two CPU modules, one of which is an active system and the other is a standby system,
Each of the CPU modules has a free run counter,
The active CPU module updates the current timer value and previous free-run counter value held for each timer instruction using the free-run counter, and updates the updated current timer value and previous free-run counter value. Control means for transferring to the standby CPU module and making it equal,
In the switching process when the standby system CPU module becomes a new active system due to the occurrence of an operating / standby switching factor, the timer current value continues to be equalized, and the previous free time that has been equalized A duplex controller system comprising switching means for clearing a run counter value and initializing / restarting its own free run counter.
一方が稼動系、他方が待機系となる2つのCPUモジュールを有し、該CPUモジュールにおいてタイマ命令を実行する2重化コントローラシステムにおいて、
前記各CPUモジュールは各々フリーランカウンタを有し、
稼動系となるCPUモジュールは、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値、フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させる制御手段を備え、
前記待機系CPUモジュールは、前記制御手段により転送される前記タイマ現在値、前回フリーランカウンタ値によって等値化処理を行うと共に前記フリーランカウンタ値を自己の停止状態のフリーランカウンタにセットする等値化手段と、
稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記停止状態のフリーランカウンタを起動して前記セットされた値から継続してカウント開始させると共に前記等値化されたタイマ現在値、前回フリーランカウンタ値を継続して用いさせる切替手段と、
を有することを特徴とする二重化コントローラシステム。
In a duplex controller system having two CPU modules, one of which is an active system and the other of which is a standby system, which executes a timer command in the CPU module,
Each of the CPU modules has a free run counter,
The active CPU module updates the timer current value held for each timer instruction, the previous free run counter value using the free run counter, the updated timer current value, the previous free run counter value, Control means for transferring the free-run counter value to the standby CPU module and equalizing it,
The standby system CPU module performs equalization processing based on the timer current value and the previous free-run counter value transferred by the control means, and sets the free-run counter value in the free-run counter in its own stopped state. Valuation means,
In the switching process when a new active system is generated due to the occurrence of an operating / standby switching factor, the stopped free-run counter is started to continuously start counting from the set value and the equalized timer Switching means for continuously using the current value and the previous free-run counter value;
A duplex controller system characterized by comprising:
2重化コントローラシステムにおける稼動/待機切替方法であって、
稼動系側において、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値を待機系側へ転送して等値化させ、
待機系側において、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記タイマ現在値は等値化された値を継続し、前記等値化されている前回フリーランカウンタ値はクリアすると共に自己のフリーランカウンタを初期化・再起動することを特徴とする稼動/待機切替方法。
An operation / standby switching method in a duplex controller system,
On the active system side, the timer current value and previous free run counter value held for each timer instruction are updated using the free run counter, and the updated timer current value and previous free run counter value are updated on the standby system side. To be equalized,
In the standby system side, in the switching process when the active / standby switching factor is generated, the timer current value continues the equalized value, and the equalized previous free run counter An operation / standby switching method characterized by clearing a value and initializing / restarting its own free-run counter.
2重化コントローラシステムにおける稼動/待機切替方法であって、
稼動系側において、各タイマ命令毎に保持されるタイマ現在値、前回フリーランカウンタ値を前記フリーランカウンタを用いて更新すると共に、更新後のタイマ現在値、前回フリーランカウンタ値、フリーランカウンタ値を待機系CPUモジュールへ転送して等値化させ、
待機系側において、前記転送される前記タイマ現在値、前回フリーランカウンタ値によって等値化処理を行うと共に前記フリーランカウンタ値を自己の停止状態のフリーランカウンタにセットし、稼動/待機切替え要因発生によって新たな稼動系となる際の切替え処理において、前記停止状態のフリーランカウンタを起動して前記セットされた値から継続してカウント開始させると共に前記等値化されたタイマ現在値、前回フリーランカウンタ値を継続して用いさせることを特徴とする稼動/待機切替方法。
An operation / standby switching method in a duplex controller system,
On the operating system side, the timer current value and previous free run counter value held for each timer instruction are updated using the free run counter, and the updated timer current value, previous free run counter value, free run counter Transfer the value to the standby CPU module and make it equal,
On the standby side, equalization processing is performed based on the transferred current timer value and the previous free-run counter value, and the free-run counter value is set in the free-run counter in its own stopped state, In the switching process when a new active system is generated by the occurrence, the stopped free-run counter is started to start counting continuously from the set value, and the equalized timer current value and previous free An operation / standby switching method characterized in that a run counter value is continuously used.
JP2003339197A 2003-09-30 2003-09-30 Duplex controller system and method Expired - Lifetime JP4273905B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003339197A JP4273905B2 (en) 2003-09-30 2003-09-30 Duplex controller system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003339197A JP4273905B2 (en) 2003-09-30 2003-09-30 Duplex controller system and method

Publications (2)

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

Family

ID=34534444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003339197A Expired - Lifetime JP4273905B2 (en) 2003-09-30 2003-09-30 Duplex controller system and method

Country Status (1)

Country Link
JP (1) JP4273905B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299120A (en) * 2006-04-28 2007-11-15 Meidensha Corp Equalization system for duplicated programmable controller
JP2009294961A (en) * 2008-06-06 2009-12-17 Yokogawa Electric Corp Multiplex input/output module
JP2012003732A (en) * 2010-06-21 2012-01-05 Fuji Electric Co Ltd Programmable controller system and application start method thereof
JP2014123284A (en) * 2012-12-21 2014-07-03 Makita Corp Random number generation device
JP2017138814A (en) * 2016-02-04 2017-08-10 富士電機株式会社 Control system and control device
CN109062027A (en) * 2018-08-02 2018-12-21 中国航空工业集团公司西安飞行自动控制研究所 A kind of active and standby work switching method of CAN bus of double redundancy control mode

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299120A (en) * 2006-04-28 2007-11-15 Meidensha Corp Equalization system for duplicated programmable controller
JP2009294961A (en) * 2008-06-06 2009-12-17 Yokogawa Electric Corp Multiplex input/output module
JP2012003732A (en) * 2010-06-21 2012-01-05 Fuji Electric Co Ltd Programmable controller system and application start method thereof
JP2014123284A (en) * 2012-12-21 2014-07-03 Makita Corp Random number generation device
JP2017138814A (en) * 2016-02-04 2017-08-10 富士電機株式会社 Control system and control device
CN109062027A (en) * 2018-08-02 2018-12-21 中国航空工业集团公司西安飞行自动控制研究所 A kind of active and standby work switching method of CAN bus of double redundancy control mode

Also Published As

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

Similar Documents

Publication Publication Date Title
US20080229158A1 (en) Restoration device for bios stall failures and method and computer program product for the same
CN110874261B (en) Availability system, method, and storage medium storing program
CN107885305B (en) Control device, control method, and recording medium
JP4273905B2 (en) Duplex controller system and method
JP2004054907A (en) Programmable controller and cpu unit, and communication unit and method for controlling communication unit
US20060150002A1 (en) Starting control method, duplex platform system, and information processor
JP2003296133A (en) Controller
JP4697314B2 (en) Duplex field controller
JP5445572B2 (en) Computer system, standby power reduction method, and program
JP5875558B2 (en) Information processing device
JP2007172079A (en) Duplex control system, and update method of control program for control device
JP4826557B2 (en) Duplex PLC
JP6304048B2 (en) Control system and control device
JP2011090642A (en) Controller, control system and starting method for the same
JP2008226111A (en) Duplication controller system and operation system controller
JP2008146239A (en) Duplication control device and automatic restoring method of multi-bit errors in memory part
KR20120102240A (en) Redundancy plc system and data synchronization method thereof
JP2005092695A (en) Duplication controller, and method for determining equalization mode thereof
CN105306256B (en) A kind of two-node cluster hot backup implementation method based on VxWorks equipment
JP6835422B1 (en) Information processing device and information processing method
JP2010128514A (en) Plant control system
JP4810488B2 (en) Duplex control apparatus and tracking method thereof
JP2799104B2 (en) Redundant switching device for programmable controller
JPH11175108A (en) Duplex computer device
JP2007072980A (en) Computer control system

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