JP4099816B2 - Redundant controller - Google Patents

Redundant controller Download PDF

Info

Publication number
JP4099816B2
JP4099816B2 JP2001224190A JP2001224190A JP4099816B2 JP 4099816 B2 JP4099816 B2 JP 4099816B2 JP 2001224190 A JP2001224190 A JP 2001224190A JP 2001224190 A JP2001224190 A JP 2001224190A JP 4099816 B2 JP4099816 B2 JP 4099816B2
Authority
JP
Japan
Prior art keywords
control
controller
standby
side controller
handler
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001224190A
Other languages
Japanese (ja)
Other versions
JP2003036101A (en
Inventor
祐二 高林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yokogawa Electric Corp
Original Assignee
Yokogawa Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yokogawa Electric Corp filed Critical Yokogawa Electric Corp
Priority to JP2001224190A priority Critical patent/JP4099816B2/en
Publication of JP2003036101A publication Critical patent/JP2003036101A/en
Application granted granted Critical
Publication of JP4099816B2 publication Critical patent/JP4099816B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、プロセス制御システムにおいて、その制御を実行するコントローラの冗長化に関するものであり、特に実行エンジンとして機能する制御ソフトウェアがソフトPLC(Programmable Logic Controller)で実現されたコントローラの冗長化に関するものである。
【0002】
【従来の技術】
出願人は、プロセス制御において同様な目的を達成する冗長化コントローラを、特開平7−36720「二重化コンピュータ装置」で提案している。図4によりその構成と作用を説明する。
【0003】
1及び2は、単体で実行可能な2つのコントローラ(制御側コントローラ及び待機側コントローラ)をシステムバス10で結合した冗長化コントローラである。各コントローラにおいて、11はオペレーティングシステム(OS)を格納したOS実行メモリ手段、12はOSの機能を使用(システムコール)しながら動作するアプリケーションプログラムを格納したプログラム実行メモリ手段である。
【0004】
13は、前記各メモリに格納されているプログラムに従って動作するCPU装置、14は制御対象プロセスとの入出力を行うI/O装置であり、実際に制御に関与しているI/O装置をどちらがアクセスするかにより、1及び2は制御側コントローラと待機側コントローラとに分けられる。15は、自身のCPU装置が受けた割り込みを相手側コントローラ内のCPU装置に伝えるプロセス装置間割り込み発生手段である。
【0005】
16はステップカウント手段であり、このCPU装置が実行するプログラムの起動によりスタートし、当該プログラムの実行ステップ数をカウントすると共にCPU装置への割り込みによりそれまで実行したステップ数を記憶する。
【0006】
17は同期ずれ調整手段であり、前記割り込みにより中断したプログラムの再起動時に、自身のステップカウント手段が記憶する実行ステップ数と相手コントローラ内のステップカウント手段が記憶する実行ステップ数とを比較し、その差が所定の値より大きい場合実行ステップ数が少ないコントローラ側のCPU装置に対して前記差のステップ数だけ先に動作を開始させ、双方のコントローラのCPU装置が同期して動作するように制御する。
【0007】
このように、実際に制御に関与しているI/O装置をどちらがアクセスするかにより制御側と待機側とに分けられる2つのコントローラで構成される冗長化コントローラにおいて、各コントローラに、アプリケーションソフトウェアの実行ステップ数をカウントする手段と、同期ずれ調整手段とを設け、割り込み処理の機会を捕らえて自動的に同期がとられるように構成した点を特徴としている。
【0008】
従って、制御側コントローラと待機側コントローラとは、同様の処理を同期して常に実行することとなり、大がかりなシステムを構築しなくとも、制御側がダウンしたような場合における待機側コントローラへの制御動作の切替えを、継続性を維持しながら即座に行うことができる。
【0009】
また、2つのコントローラが同期をとる動作をシステムコールに基づいて行う場合であって、システムコールが長時間行われないような場合でも、同期動作のずれを本質的に回避することができる。従って、アプリケーションプログラムは、その設計時において冗長化処理(同期化のための処理)を意識しなくともよく、アプリケーションプログラムの作成を容易に行うことができる。
【0010】
【発明が解決しようとする課題】
このような冗長化コントローラは、冗長化を実現するために高度にカスタマイズされた専用ハードウェアおよびOSを用いており、そのプラットフォーム上で動作するアプリケーションソフトウェアが一切、冗長化を意識する必要がないという意味で完璧な冗長化システムと言える。
【0011】
しかしながら、昨今のコンピュータシステムの技術革新は著しく速く、ハードウェアおよびOSの進化に対し、従来の冗長化方式を適用するには全てを自社開発する必要があり、膨大なコストおよび時間を要することになる。
【0012】
近年、システムの実行エンジンを、ソフトウェアで機能が定義されたソフトPLC(Programmable Logic Controller)で構築する場合が多い。更にこのソフトPLCとして、IEC6113-3規格に準拠したプログラム言語で記述されたものを使用することにより、システムのオープン化、標準化を推進する趨勢にある。
この場合、PCのOS及びソフトPLC用OSは、市販の汎用システムを利用し、汎用のPC上で作動するマルチベンダ環境を構築する。
【0013】
一方、従来技術では、前記のように専用のハードウェアが必要となり、PCをはじめとする汎用のコンピュータシステムに適用することができない。つまり、移植性がない。
更に、OS及びデバイスドライバに高度な冗長化制御の仕組みを入れる必要があり、市販のOSに対し、これらの機能を組み込むことは事実上困難である。
【0014】
本発明は、特殊なハードウェア及び冗長化制御の仕組みを入れた特殊なOSを必要とせず、汎用のハードウェア及びOSで実現可能な冗長化コントローラの提供を目的とする。
【0015】
【課題を解決するための手段】
このような課題を達成するために、本発明のうち請求項1記載発明の特徴は、制御側コントローラ及び待機側コントローラよりなる冗長化コントローラにおいて、
前記制御側コントローラ及び待機側コントローラ夫々に設けられ、汎用OSを利用する制御ソフトウェアを実行エンジンとして所定のスキャン周期で動作する同一構成の制御タスクと、
これら制御タスクの夫々に入力するデータ及び制御演算を実行したデータを保持する、前記制御側コントローラ及び待機側コントローラ夫々に設けられたI/Oバッファと、
前記制御側コントローラ側で作動し、プロセスとの入出力を実行するI/Oデバイスと通信するI/Oドライバと、
前記制御タスクが前記I/Oデバイスに対する入出力を要求した時に前記制御側コントローラ及び待機側コントローラでコールされるI/Oハンドラと、
前記制御側コントローラでコールされたI/Oハンドラと前記待機側コントローラでコールされたI/Oハンドラ間の通信を中継する等値化ライブラリと、
を備え、
前記スキャン周期毎に、前記制御側コントローラのI/Oハンドラは、
データのリードの際、前記I/Oドライバからの入力データを、前記制御側コントローラのI/Oバッファに書き込むと共に、前記等値化ライブラリを介して前記待機側コントローラのI/Oハンドラと待ち合わせによる同期をとり、前記待機側コントローラのI/Oバッファに前記入力データのコピーを実行し、
データのライトの際、前記制御側コントローラのI/Oバッファの出力データを、前記等値化ライブラリを介して前記待機側コントローラのI/Oハンドラと待ち合わせにより同期をとり、前記制御側コントローラのI/Oドライバへ書き込む、点にある。
【0016】
請求項2記載発明の特徴は、前記制御側コントローラ及び待機側コントローラは、外部装置と通信するソケットタスクを備え、前記制御側コントローラのソケットタスクは、前記外部装置からのリクエストを受信して自己側のリクエスト処理を指令すると共に、前記等値化ライブラリを介して前記待機側コントローラのソケットタスクに前記外部装置からのリクエストを通知する点にある。
【0017】
請求項3記載発明の特徴は、前記制御ソフトウェアがソフトPLCで実現された点にある。
【0018】
請求項4記載発明の特徴は、前記ソフトPLCが IEC61131-3 規格に準拠したプログラム言語で記述された点にある。
【0020】
【発明の実施の形態】
以下、本発明実施態様を、図面を用いて説明する。図1は本発明を適用した冗長化コントローラの概念を説明する機能ブロック図である。
本発明冗長化コントローラは、ハードウェアの構成としては、単体で動作するコンポーネント(CPUカード、I/Oカード等)を制御側コントローラ1と待機側コントローラ2のペア構成とし、両者をシステムバス(図示せず)で結合する。ソフトウェアは、まったく同一のプログラム(OSおよびアプリケーション)をそれぞれのコントローラで実行させ、両者が互いに同期をとることで並列実行する。
【0021】
冗長化された各コントローラは、実制御を行うもの(制御側)と実制御には関与せず待機しているもの(待機側)とに別れるが、制御側・待機側とも基本的にはまったく同一の処理を行っている。制御側・待機側の区別は、実際にI/Oを行っているかどうかにより区別される。
I/Oの出力は制御側のみが行い。入力は制御側が読込みを行い、待機側に入力データを受け渡す。制御側がダウンした場合は、すみやかに制御権が待機側に移行する。
【0022】
各コントローラ1及び2において、3は実行エンジンとして機能する制御ソフトウェアであり、ソフトPLCによる1個又は複数個のユーザ定義のタスク(タスクA、タスクB)と、これらタスクに対するデータの入出力を行うI/Oバッファを有する。
【0023】
31は制御ソフトウェアを実行エンジンとする、ソフトPLCによる制御タスクであり、ユーザがIEC61131-3規格に準拠したプログラム言語により自由に構築することができる。4は制御ソフトウェア3とは非同期で実行される各種のアプリケーションソフトウェアである。アプリケーションソフトウェア4は、例えば文書作成、表計算等を行うソフトウェアである。5はI/Oドライバであり、制御側コントローラ1のみがプロセスとの入出力を実行するI/Oデバイス6と通信する。
【0024】
制御ソフトウェア上では、ユーザ定義の制御タスクがスキャン周期ごとに定周期で動作し、I/Oバッファにアクセスし、データの入出力を行う。制御タスクは、基本的にスキャンの先頭でI/Oバッファを介してデータの入力を行い、各制御プログラム(ファンクションブロック・シーケンシャルファンクションブロック等の演算処理)を実行後、最後にI/Oバッファへの出力を行う。
【0025】
I/Oデバイス6への入出力は、制御側コントローラのI/Oドライバ5をコールすることで行われる。この際、制御・待機間で同期(待ち合わせ)およびI/Oデータの等値化処理を行うことで、制御・待機間の制御タスクは同一の処理を同期して実行する。
【0026】
図2により、制御タスクの同期動作を説明する。本発明では、制御側・待機側間でI/O入出力の待ち合わせを行うことで、制御タスクの同期実行を実現する。
制御タスク31は、スキャンの先頭でI/Oの入力を行う。I/O入力処理で制御側と待機側の同期(待ち合わせ)を行い、制御側が読込んだI/Oデータを待機側にコピー(等値化)する。
【0027】
IEC61131-3規格に準拠したプログラム言語で記述された各制御プログラムが実行される。この際、I/Oの出力が行われるが、出力はI/Oバッファ5に対して行われ、実際のI/Oデバイス6への出力は行われない。このため、制御側・待機側間で出力の同期をとる必要はない。
【0028】
制御側コントローラにおける制御タスク31は、最後にI/Oバッファ5のデータを実際のI/Oデバイス6に出力する。
I/Oの出力処理において、I/Oを即時出力(I/Oバッファ手段への出力と同時に実際のI/Oデバイス6への書込みも行う)するようにコンフィグレーションすることも可能である。
この場合も、I/O出力処理で制御側・待機側の同期をとるため、制御・待機間の処理の連続性は保証される。
【0029】
つまり、制御・待機間でタスクの動作タイミングが異なってもI/Oの入出力のタイミングで同期がとられ、同期実行することにより、制御側の異常が発生した場合、すみやかに制御を待機側に切替えることが可能となり、制御タスクの処理は途切れることなく継続して制御を行うことができる。
【0030】
ただし、同一タスク同士の同期はとられるが、タスクのスケジューリング(動作順序)は制御・待機間で異なる可能性がある。例えば、制御側ではタスクA、タスクBの順に起動されるが、待機ではタスクB、タスクAの順に起動される場合がある。
【0031】
制御ソフトウェア3に関係のない一般的なアプリケーション4は、制御側・待機側間で非同期に実行される。つまり、制御側と待機側の同一のアプリケーション間でも実行中の処理は異なっている可能性があり、制御権切替え時、処理の連続性は保証されない。
【0032】
図3により、制御ソフトウェア1及びその周辺関連機能の具体的構成例を説明する。
【0033】
バスドライバ27は、コントローラのバックプレーンバスであるシステムバスの制御を行うドライバである。このシステムバスには各種I/Oデバイスが接続され、I/Oドライバ28のI/Oカードアクセスを行う。
更にこのバスドライバ27は、制御側・待機側間の同期およびI/Oを始めとするデータの等値化を行うための等値化ライブラリ29との通信バスとして使用される。等値化通信に使用する通信バスは、汎用のバスも使用可能である。
【0034】
28はシステムバスのI/Oドライバ、210は各種I/Oのカード制御を行うI/Oドライバである。これらI/Oドライバは、制御側コントローラでのみ動作し、待機側はなにも処理を行わない。相手側コントローラCPUとの同期・等値化はI/Oハンドラで行うため、基本的に冗長化は意識しない。
【0035】
232は制御ソフトウェア内のI/Oハンドラであり、制御タスクがI/Oの入出力を行う際にコールされ、データのリード・ライトを実行する。データのリード時は、I/Oドライバ28、210から読込んだデータをI/Oバッファ手段に書込み、等値化ライブラリ29を通して待機側I/Oハンドラとの同期および入力データのコピーを行う。ライト時は、等値化ライブラリ29を通して待機側I/Oハンドラと同期をとり、I/Oバッファ手段の出力データをI/Oドライバ手段へ書込む。
【0036】
234はTCP/IPソケットタスクであり、制御バスドライバ211を介して制御ソフトウェアのコンフィグレータ、ヒューマン・マシンインターフェイス、他コントローラ等のステーション(図示せず)と通信する。このソケットタスクは、イーサネット(登録商標)、TCP/IPを通信媒体としたコミュニケーションインターフェイスである。
制御ソフトウェアでは、制御バスドライバ211を介した通信をコミュニケーションインターフェイス通信というプロトコルで定義しており、様々な通信媒体(RS232Cやベンダ固有のバス)に適応可能な構成となっている。
【0037】
このソケットタスクは、前記コンフィグレータ等のクライアントリクエストを受信すると、サーバータスク235にリクエスト処理を依頼するとともに、等値化ライブラリ29を通して待機側のTCP/IPソケットタスク(図示せず)にリクエストを通知することで、コントローラに対する外部からのアクセスに対し、制御側・待機側間の内部状態の等値化を行う。
【0038】
212は、制御権監視タスクであり、制御側・待機側の状態を監視して、制御権の切替えを実行する。本タスクの機能(コントローラの異常検出と通知)をハードウェアで実現することで、切替え時間の短縮(1秒以内)を行うことが可能となる。
【0039】
【発明の効果】
以上説明したことから明らかなように、本発明によれば、特殊なハードウェア及び冗長化制御の仕組みを入れた特殊なOSを必要とせず、汎用のハードウェア及びOSにより、冗長化コントローラを容易に実現することが可能となる。更に本発明は、OSへの依存度が低いので、市販OSへのポーティングが容易である。
【0040】
特に、冗長化システムの実行エンジンがソフトPLCで実現され、更にこのソフトPLCが、IEC6113-3規格に準拠したプログラム言語で記述されたものに適用した場合は、システムのオープン化、標準化利用環境の構築に貢献することができる。
【図面の簡単な説明】
【図1】本発明を適用した冗長化コントローラの概念を説明する機能ブロック図である。
【図2】本発明における制御側及び待機側の制御タスクの同期動作を説明するタイムチャート図である。
【図3】本発明における制御ソフトウェアの具体的な構成例を示す機能ブロック図である。
【図4】従来の冗長化コントローラの例を説明するシステム構成図である。
【符号の説明】
1 制御側コントローラ
2 待機側コントローラ
3 制御ソフトウェア
31 制御タスク
32 I/Oバッファ
4 アプリケーション
5 I/Oドライバ
6 I/Oデバイス
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to redundancy of a controller that executes control in a process control system, and particularly relates to redundancy of a controller in which control software that functions as an execution engine is realized by software PLC (Programmable Logic Controller). is there.
[0002]
[Prior art]
The applicant has proposed a redundant controller that achieves a similar object in process control in Japanese Patent Laid-Open No. 7-36720 “Duplexed Computer Device”. The configuration and operation will be described with reference to FIG.
[0003]
Reference numerals 1 and 2 denote redundant controllers in which two controllers (a control-side controller and a standby-side controller) that can be executed alone are connected by a system bus 10. In each controller, 11 is an OS execution memory unit that stores an operating system (OS), and 12 is a program execution memory unit that stores an application program that operates while using a function of the OS (system call).
[0004]
Reference numeral 13 denotes a CPU device that operates according to a program stored in each memory. Reference numeral 14 denotes an I / O device that performs input / output with a process to be controlled. Which of the I / O devices is actually involved in control? Depending on whether to access, 1 and 2 are divided into a controller on the control side and a controller on the standby side. Reference numeral 15 denotes an inter-process-device interrupt generating means for transmitting an interrupt received by its own CPU device to the CPU device in the counterpart controller.
[0005]
Reference numeral 16 denotes step counting means, which is started by starting a program executed by the CPU device, counts the number of execution steps of the program, and stores the number of steps executed so far by interruption to the CPU device.
[0006]
17 is a synchronization deviation adjusting means, which compares the number of execution steps stored in its own step counting means with the number of execution steps stored in the step counting means in the partner controller when the program interrupted by the interruption is restarted, When the difference is larger than a predetermined value, control is performed so that the CPU device on the controller side with a small number of execution steps starts to operate first by the number of steps of the difference, and the CPU devices of both controllers operate synchronously. To do.
[0007]
In this way, in a redundant controller composed of two controllers, which are divided into a control side and a standby side, depending on which I / O device actually involved in the control accesses, each controller has application software. A feature is that a means for counting the number of execution steps and a synchronization deviation adjusting means are provided so as to automatically synchronize by capturing an opportunity for interrupt processing.
[0008]
Therefore, the control-side controller and the standby-side controller always execute the same processing synchronously, and the control operation to the standby-side controller in the case where the control-side goes down without building a large-scale system. Switching can be performed immediately while maintaining continuity.
[0009]
Further, even when the two controllers perform an operation for synchronization based on a system call, and the system call is not performed for a long time, a shift in the synchronization operation can be essentially avoided. Therefore, the application program does not need to be aware of the redundancy processing (processing for synchronization) at the time of design, and the application program can be easily created.
[0010]
[Problems to be solved by the invention]
Such redundant controllers use highly customized dedicated hardware and OS to realize redundancy, and application software running on the platform does not need to be aware of redundancy. It can be said that it is a perfect redundancy system.
[0011]
However, the recent technological innovation of computer systems is extremely fast, and it is necessary to develop everything in-house to apply the conventional redundancy method to the evolution of hardware and OS, which requires enormous cost and time. Become.
[0012]
In recent years, the execution engine of a system is often constructed by a software PLC (Programmable Logic Controller) whose function is defined by software. Furthermore, the software PLC, which is written in a programming language conforming to the IEC6113-3 standard, tends to promote system openness and standardization.
In this case, the OS of the PC and the OS for the software PLC use a commercially available general-purpose system to construct a multi-vendor environment that operates on the general-purpose PC.
[0013]
On the other hand, the conventional technology requires dedicated hardware as described above, and cannot be applied to a general-purpose computer system such as a PC. In other words, there is no portability.
Furthermore, it is necessary to put a highly redundant control mechanism in the OS and device driver, and it is practically difficult to incorporate these functions into a commercially available OS.
[0014]
An object of the present invention is to provide a redundant controller that can be realized by using general-purpose hardware and an OS without requiring a special OS including a special hardware and a redundant control mechanism.
[0015]
[Means for Solving the Problems]
In order to achieve such a problem, a feature of the invention described in claim 1 of the present invention is a redundant controller including a control side controller and a standby side controller.
A control task having the same configuration that is provided in each of the control-side controller and the standby-side controller and that operates with a predetermined scan cycle using control software that uses a general-purpose OS as an execution engine;
An I / O buffer provided in each of the control-side controller and the standby-side controller, which holds data input to each of these control tasks and data obtained by executing a control operation;
An I / O driver that operates on the controller side and communicates with an I / O device that performs input and output with the process;
An I / O handler called by the control side controller and standby side controller when the control task requests input / output to the I / O device;
An equalization library that relays communication between the I / O handler called by the control-side controller and the I / O handler called by the standby-side controller;
With
For each scan period, the I / O handler of the control-side controller is
When reading data, the input data from the I / O driver is written to the I / O buffer of the control-side controller, and waits with the I / O handler of the standby-side controller via the equalization library. Synchronize, copy the input data to the I / O buffer of the standby controller,
When writing data, the output data of the I / O buffer of the control-side controller is synchronized with the I / O handler of the standby-side controller via the equalization library, and is synchronized with the I / O handler of the control-side controller. Write to the / O driver .
[0016]
The control side controller and the standby side controller include a socket task that communicates with an external device, and the socket task of the control side controller receives a request from the external device and receives the request from the external device. The request processing from the external device is notified to the socket task of the standby controller via the equalization library .
[0017]
According to a third aspect of the present invention, the control software is realized by a software PLC .
[0018]
According to a fourth aspect of the present invention, the software PLC is described in a programming language conforming to the IEC61131-3 standard .
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a functional block diagram for explaining the concept of a redundant controller to which the present invention is applied.
The redundant controller according to the present invention has a hardware configuration in which a component (CPU card, I / O card, etc.) operating alone is configured as a pair configuration of the control-side controller 1 and the standby-side controller 2, and both are connected to the system bus (FIG. (Not shown). The software executes the same program (OS and application) on each controller and executes them in parallel by synchronizing them with each other.
[0021]
Each redundant controller is divided into one that performs actual control (control side) and one that does not participate in actual control and is waiting (standby side). The same processing is performed. The control side / standby side is distinguished by whether or not the I / O is actually performed.
I / O is output only by the control side. The input is read by the control side, and the input data is transferred to the standby side. When the control side goes down, the control right immediately shifts to the standby side.
[0022]
In each of the controllers 1 and 2, reference numeral 3 denotes control software that functions as an execution engine, and performs input / output of one or a plurality of user-defined tasks (task A and task B) by the software PLC and data for these tasks. Has an I / O buffer.
[0023]
Reference numeral 31 denotes a control task by the software PLC using the control software as an execution engine, which can be freely constructed by a user in a program language compliant with the IEC61131-3 standard. Reference numeral 4 denotes various application software executed asynchronously with the control software 3. The application software 4 is software that performs document creation, spreadsheet calculation, and the like, for example. Reference numeral 5 denotes an I / O driver, and only the control-side controller 1 communicates with an I / O device 6 that performs input / output with a process.
[0024]
On the control software, a user-defined control task operates at a fixed cycle every scan cycle, accesses the I / O buffer, and inputs / outputs data. The control task basically inputs data via the I / O buffer at the beginning of the scan, executes each control program (operation processing such as function block and sequential function block), and finally to the I / O buffer. Is output.
[0025]
Input / output to / from the I / O device 6 is performed by calling the I / O driver 5 of the control-side controller. At this time, by performing synchronization (waiting) between control and standby and equalization processing of I / O data, the control task between control and standby executes the same processing synchronously.
[0026]
The synchronization operation of the control task will be described with reference to FIG. In the present invention, synchronous execution of control tasks is realized by waiting for I / O input / output between the control side and the standby side.
The control task 31 inputs I / O at the head of the scan. In the I / O input process, the control side and the standby side are synchronized (waiting), and the I / O data read by the control side is copied (equalized) to the standby side.
[0027]
Each control program described in a program language compliant with the IEC61131-3 standard is executed. At this time, output of I / O is performed, but output is performed to the I / O buffer 5, and output to the actual I / O device 6 is not performed. For this reason, it is not necessary to synchronize the output between the control side and the standby side.
[0028]
The control task 31 in the control-side controller finally outputs the data in the I / O buffer 5 to the actual I / O device 6.
In the output processing of I / O, it is possible to configure so that I / O is immediately output (the writing to the actual I / O device 6 is performed simultaneously with the output to the I / O buffer means).
Also in this case, since the control side and the standby side are synchronized in the I / O output process, the continuity of the process between the control and the standby is guaranteed.
[0029]
In other words, even if the task operation timing differs between control and standby, synchronization is performed at the I / O input / output timing, and if an abnormality occurs on the control side by executing synchronously, the control is immediately transferred to the standby side. Therefore, the control task process can be continued without interruption.
[0030]
However, although the same tasks are synchronized, task scheduling (operation order) may differ between control and standby. For example, the task is activated in the order of task A and task B on the control side, but may be activated in the order of task B and task A in the standby state.
[0031]
A general application 4 not related to the control software 3 is executed asynchronously between the control side and the standby side. In other words, there is a possibility that the processing being executed is different between the same application on the control side and the standby side, and the continuity of the processing is not guaranteed when the control right is switched.
[0032]
A specific configuration example of the control software 1 and its peripheral related functions will be described with reference to FIG.
[0033]
The bus driver 27 is a driver that controls a system bus that is a backplane bus of the controller. Various I / O devices are connected to the system bus, and the I / O driver 28 accesses the I / O card.
Further, the bus driver 27 is used as a communication bus with the equalization library 29 for performing synchronization between the control side and the standby side and equalization of data including I / O. A general-purpose bus can be used as the communication bus used for the equalization communication.
[0034]
28 is an I / O driver for the system bus, and 210 is an I / O driver that controls various I / O cards. These I / O drivers operate only on the control-side controller, and the standby side does not perform any processing. Since synchronization and equalization with the counterpart controller CPU is performed by the I / O handler, basically no redundancy is considered.
[0035]
Reference numeral 232 denotes an I / O handler in the control software, which is called when the control task performs I / O input / output, and executes data read / write. At the time of reading data, the data read from the I / O drivers 28 and 210 is written to the I / O buffer means, synchronized with the standby side I / O handler through the equalization library 29, and the input data is copied. At the time of writing, it synchronizes with the standby side I / O handler through the equalization library 29 and writes the output data of the I / O buffer means to the I / O driver means.
[0036]
Reference numeral 234 denotes a TCP / IP socket task, which communicates with a station (not shown) such as a control software configurator, a human-machine interface, and other controllers via the control bus driver 211. This socket task is a communication interface using Ethernet (registered trademark) and TCP / IP as communication media.
In the control software, communication via the control bus driver 211 is defined by a protocol called communication interface communication, and is configured to be adaptable to various communication media (RS232C and vendor-specific buses).
[0037]
When this socket task receives a client request from the configurator or the like, it requests the server task 235 to process the request, and notifies the TCP / IP socket task (not shown) on the standby side through the equalization library 29 of the request. Thus, equalization of the internal state between the control side and the standby side is performed for external access to the controller.
[0038]
A control right monitoring task 212 monitors the state of the control side / standby side and executes control right switching. By realizing the function of this task (detection and notification of controller abnormality) with hardware, it is possible to reduce the switching time (within 1 second).
[0039]
【The invention's effect】
As is clear from the above description, according to the present invention, a redundant controller can be easily realized by using general-purpose hardware and an OS without requiring a special hardware and a special OS including a redundancy control mechanism. Can be realized. Furthermore, since the present invention is less dependent on the OS, porting to a commercial OS is easy.
[0040]
In particular, when the execution engine of a redundant system is realized by a software PLC and this software PLC is applied to a program language written in compliance with the IEC6113-3 standard, the system is opened and the standardization environment is Can contribute to construction.
[Brief description of the drawings]
FIG. 1 is a functional block diagram illustrating the concept of a redundant controller to which the present invention is applied.
FIG. 2 is a time chart for explaining the synchronous operation of control tasks on the control side and standby side in the present invention.
FIG. 3 is a functional block diagram illustrating a specific configuration example of control software according to the present invention.
FIG. 4 is a system configuration diagram illustrating an example of a conventional redundant controller.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 Control side controller 2 Standby side controller 3 Control software 31 Control task 32 I / O buffer 4 Application 5 I / O driver 6 I / O device

Claims (4)

制御側コントローラ及び待機側コントローラよりなる冗長化コントローラにおいて、
前記制御側コントローラ及び待機側コントローラ夫々に設けられ、汎用OSを利用する制御ソフトウェアを実行エンジンとして所定のスキャン周期で動作する同一構成の制御タスクと、
これら制御タスクの夫々に入力するデータ及び制御演算を実行したデータを保持する、前記制御側コントローラ及び待機側コントローラ夫々に設けられたI/Oバッファと、
前記制御側コントローラ側で作動し、プロセスとの入出力を実行するI/Oデバイスと通信するI/Oドライバと、
前記制御タスクが前記I/Oデバイスに対する入出力を要求した時に前記制御側コントローラ及び待機側コントローラでコールされるI/Oハンドラと、
前記制御側コントローラでコールされたI/Oハンドラと前記待機側コントローラでコールされたI/Oハンドラ間の通信を中継する等値化ライブラリと、
を備え、
前記スキャン周期毎に、前記制御側コントローラのI/Oハンドラは、
データのリードの際、前記I/Oドライバからの入力データを、前記制御側コントローラのI/Oバッファに書き込むと共に、前記等値化ライブラリを介して前記待機側コントローラのI/Oハンドラと待ち合わせによる同期をとり、前記待機側コントローラのI/Oバッファに前記入力データのコピーを実行し、
データのライトの際、前記制御側コントローラのI/Oバッファの出力データを、前記等値化ライブラリを介して前記待機側コントローラのI/Oハンドラと待ち合わせにより同期をとり、前記制御側コントローラのI/Oドライバへ書き込む、
ことを特徴とする冗長化コントローラ。
In a redundant controller consisting of a controller on the control side and a controller on the standby side,
A control task having the same configuration, which is provided in each of the control-side controller and the standby-side controller and operates at a predetermined scan cycle using control software using a general-purpose OS as an execution engine;
An I / O buffer provided in each of the control-side controller and the standby-side controller that holds data input to each of these control tasks and data obtained by executing a control operation;
An I / O driver that operates on the controller side of the controller and communicates with an I / O device that performs input / output with a process;
An I / O handler called by the control-side controller and standby-side controller when the control task requests input / output to the I / O device;
An equalization library that relays communication between the I / O handler called by the control-side controller and the I / O handler called by the standby-side controller;
With
For each scan period, the I / O handler of the control-side controller is
When data is read, the input data from the I / O driver is written to the I / O buffer of the control-side controller, and also waits with the I / O handler of the standby-side controller via the equalization library. Synchronize, copy the input data to the I / O buffer of the standby controller,
When writing data, the output data of the I / O buffer of the control-side controller is synchronized with the I / O handler of the standby-side controller via the equalization library, and the I / O handler of the control-side controller is synchronized. Write to the / O driver,
A redundant controller characterized by that.
前記制御側コントローラ及び待機側コントローラは、外部装置と通信するソケットタスクを備え、前記制御側コントローラのソケットタスクは、前記外部装置からのリクエストを受信して自己側のリクエスト処理を指令すると共に、前記等値化ライブラリを介して前記待機側コントローラのソケットタスクに前記外部装置からのリクエストを通知することを特徴とする請求項1に記載の冗長化コントローラ。The control-side controller and the standby-side controller include a socket task that communicates with an external device, and the control-side controller socket task receives a request from the external device and commands its own request processing, and 2. The redundant controller according to claim 1, wherein a request from the external device is notified to a socket task of the standby controller via an equalization library. 前記制御ソフトウェアがソフトPLCで実現されたことを特徴とする請求項1または2に記載の冗長化コントローラ。The redundant controller according to claim 1, wherein the control software is realized by a software PLC. 前記ソフトPLCがThe soft PLC IEC61131-3IEC61131-3 規格に準拠したプログラム言語で記述されたことを特徴とする請求項3に記載の冗長化コントローラ。4. The redundant controller according to claim 3, wherein the redundant controller is written in a programming language conforming to a standard.
JP2001224190A 2001-07-25 2001-07-25 Redundant controller Expired - Lifetime JP4099816B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001224190A JP4099816B2 (en) 2001-07-25 2001-07-25 Redundant controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001224190A JP4099816B2 (en) 2001-07-25 2001-07-25 Redundant controller

Publications (2)

Publication Number Publication Date
JP2003036101A JP2003036101A (en) 2003-02-07
JP4099816B2 true JP4099816B2 (en) 2008-06-11

Family

ID=19057398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001224190A Expired - Lifetime JP4099816B2 (en) 2001-07-25 2001-07-25 Redundant controller

Country Status (1)

Country Link
JP (1) JP4099816B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403126B2 (en) 2018-09-10 2022-08-02 Yokogawa Electric Corporation Redundant system, redundant program, and information processing apparatus
EP4068015A1 (en) 2021-03-29 2022-10-05 Yokogawa Electric Corporation Controller and control method
EP4198658A1 (en) 2021-12-17 2023-06-21 Yokogawa Electric Corporation Control system and control method

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280313A (en) * 2006-04-12 2007-10-25 Yokogawa Electric Corp Redundant system
EP1906277A1 (en) 2006-09-29 2008-04-02 Siemens Aktiengesellschaft Method for synchronising two control devices and redundant structured automation apparatus
JP5239525B2 (en) * 2008-06-06 2013-07-17 横河電機株式会社 Multiplexed input / output module
JP5243113B2 (en) * 2008-06-19 2013-07-24 株式会社日立製作所 Arithmetic processing unit multiplexing control system
JP4818379B2 (en) * 2009-02-26 2011-11-16 株式会社東芝 Distributed system having failover function and failover method in the same system
JP4806044B2 (en) * 2009-03-06 2011-11-02 株式会社東芝 Distributed system having failover function and failover method in the same system
JP5615511B2 (en) * 2009-04-24 2014-10-29 株式会社日立製作所 Computer system
US9437057B2 (en) 2013-08-20 2016-09-06 Komatsu Ltd. Construction machine controller
JP6269404B2 (en) * 2014-09-12 2018-01-31 富士電機株式会社 Control system, relay device, and control device
CN108196501A (en) 2017-12-22 2018-06-22 北京东土科技股份有限公司 A kind of disaster recovery method of the dcs based on PLC, device and system
EP3832414B1 (en) 2018-09-05 2023-10-25 Siemens Aktiengesellschaft Industrial personal computer for a redundant hot standby control system, redundant hot standby method and computer-readable storage medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403126B2 (en) 2018-09-10 2022-08-02 Yokogawa Electric Corporation Redundant system, redundant program, and information processing apparatus
EP4068015A1 (en) 2021-03-29 2022-10-05 Yokogawa Electric Corporation Controller and control method
EP4198658A1 (en) 2021-12-17 2023-06-21 Yokogawa Electric Corporation Control system and control method

Also Published As

Publication number Publication date
JP2003036101A (en) 2003-02-07

Similar Documents

Publication Publication Date Title
JP4099816B2 (en) Redundant controller
KR0137406B1 (en) Fault tolerant computer system
JP3982353B2 (en) Fault tolerant computer apparatus, resynchronization method and resynchronization program
US7516265B2 (en) System and method for providing an application with memory access methods
KR101704751B1 (en) Apparatus for simulating of multi-core system by using timing information between modules, and method thereof
JP2007280313A (en) Redundant system
CN111052012B (en) Control device and control system
US7657895B2 (en) Real time-capable control system having an sps application under a non-real time-capable operating system
JPH06242979A (en) Dual computer device
KR102211200B1 (en) Dual PLC Control System Based on Multi Core Processor
JP6937626B2 (en) How to synchronize the controller device and the redundant system
JP2003029809A (en) Cpu unit and programmable controller
JPWO2004040451A1 (en) System controller, control system, and system control method
JP2000132210A (en) Controller and cooperation controlling method
US7146405B2 (en) Computer node architecture comprising a dedicated middleware processor
JPH06230995A (en) Dual processor device
WO2023119524A1 (en) Simulation program, simulation method, and simulation device
JP3745597B2 (en) Massively parallel computer and processing method thereof
JP2786110B2 (en) Competitive operation test method
JP2000276502A (en) Software simulator
JP2006309507A (en) Servo control method and servo control system
JP2022152921A (en) Controller and control method
JP2000242317A (en) Programmable controller
JPH1185518A (en) Controller
JP3903688B2 (en) Bank switching system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070831

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080309

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

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4099816

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120328

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

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

Year of fee payment: 6