JP2006235765A - 二重化コントローラシステム、そのコントローラ - Google Patents

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

Info

Publication number
JP2006235765A
JP2006235765A JP2005046312A JP2005046312A JP2006235765A JP 2006235765 A JP2006235765 A JP 2006235765A JP 2005046312 A JP2005046312 A JP 2005046312A JP 2005046312 A JP2005046312 A JP 2005046312A JP 2006235765 A JP2006235765 A JP 2006235765A
Authority
JP
Japan
Prior art keywords
program
equalization
controller
fixed
executed
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.)
Pending
Application number
JP2005046312A
Other languages
English (en)
Inventor
Toshiyuki Nishiwaki
敏之 西脇
Makiko Takahashi
真規子 高橋
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 JP2005046312A priority Critical patent/JP2006235765A/ja
Publication of JP2006235765A publication Critical patent/JP2006235765A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 優先レベルが高い定周期プログラムの実行周期が短い場合に優先レベルが低い定周期プログラムの実行時間が増大するという問題を解決する。
【解決手段】 CPU支援ツール5において、新たな定周期プログラムを作成してCPUモジュール1,2にダウンロードする際に、ユーザに等値化処理の有効/無効を設定させて等値化データ転送情報ファイル5aを生成し、当該ファイル5aも一緒にダウンロードする。稼動系のCPUモジュール1は、基本的には各定周期プログラムを実行する毎に等値化処理を実行するものであるが、上記ファイル5aの情報により、等値化処理の無効が設定されている定周期プログラムに関しては、等値化処理は一切行わない。
【選択図】図1

Description

本発明は、二重化コントローラ(プログラマブルコントローラ)システムにおける、ユーザデータ等値化方式に関する。
現在、プラント、工場などでは、工作機械や計測装置等の機器のシーケンス制御に多くのコントローラ(プログラマブルコントローラ等)を用い、FA(ファクトリーオートメーション)化を実現している。
このようなプログラマブルコントローラ・システムでは、信頼性を向上させるためにCPUモジュール(プログラマブルコントローラ本体)を待機冗長の2重化構成にする場合がある(以下、二重化コントローラシステムと呼ぶ)。待機冗長の冗長2重化構成は、2つのCPUモジュールを1組とし、一方を稼動系、他方を待機系とし、稼動系CPUモジュールを待機系CPUモジュールが監視して、稼動系CPUモジュールに障害等の切替え要因が生じたならば待機系CPUモジュールが稼動系に切り替る構成である。
図6に2重化して冗長性を持たせたコントローラのシステム構成例を示す。
図示の2重化コントローラシステムは、CPUモジュール101−1、CPUモジュール101−2、及び各制御対象機器とのデータ入出力を行う複数のI/Oユニットより成るI/Oユニット群102から構成されている。尚、ここでは、CPUモジュール101−1が稼動系、CPUモジュール101−2がその待機系となっている場合を例にして説明する。
稼動系となっているCPUモジュール101−1は、その内部に格納された制御プログラム(通常、定周期に実行されるプログラム;定周期プログラム)を実行することで、I/Oユニット群102に対して制御信号を出力して(又は各I/Oユニットからセンサ計測値等を読み出して)、各制御対象機器を制御する。
一方、待機系となっているCPUモジュール101−2は、稼動系のCPUモジュール101−1を監視しており、稼動系CPUモジュール101−1に故障等の何らかの切替え要因が生じると、稼動/待機切り替え処理を実行して、CPUモジュール101−2が稼動系となって、CPUモジュール101-1が行っていた処理を引き継ぐ。
CPUモジュール101−1及びCPUモジュール101−2には、上記一定周期で起動されて実行される複数の定周期プログラムが格納されており、稼動系となっているCPUモジュール101−1のみがこれらの定周期プログラムを実行してI/O機器の制御処理を行い、待機系となっているCPUモジュール101−2ではこれらの定周期プログラムは実行されない。これらの定周期プログラムには、相対的な優先レベルが設定されており、優先レベルが高い定周期プログラムの起動周期になると、優先レベルの低い定周期プログラムは、実行中であっても割り込みがかかって中断され、優先レベルの高い定周期プログラムが優先的に実行される。
尚、説明を簡単にする為、図6においては、上記複数の定周期プログラムの例として、定周期プログラムA、定周期プログラムBのみを示すものとする。そして、ここでは、上記相対的な優先レベルは、定周期プログラムAのほうが高いものとする。よって、定周期プログラムBは、実行中に割り込みが掛かって中断されて、定周期プログラムAが実行される場合がある。
また、稼動系/待機系の切替えが生じたときに制御データ(ユーザデータ)の整合性を持たせる為、稼動系CPUモジュール101−1から待機系CPUモジュール101−2に制御データ(ユーザデータ)を送信して等値化処理を行っている。この等値化処理に関して、上記図6に示す構成では、システムバス103以外に、専用の等値化バス104を備えており、この等値化バス104を介して、CPUモジュール101-1からCPUモジュール101−2へ、制御データを転送している。
このような二重化コントローラシステムに係わり、本出願人は既に、例えば特許文献1記載の発明を提案している。この特許文献1記載の発明では、複数の定周期プログラムを実行する場合において、各定周期プログラム実行毎に、その演算終了時に制御データの等値化処理を行うものである。これによって、特に上記優先レベルによって割り込みが生じている場合において、稼動系/待機系の切り替えが生じた場合に、最後に等値化を行ったプログラムが実行された状態から、処理を継続することができる。つまり、稼動系/待機系切替え時に生じるオーバーヘッドを縮小できる。更に、プログラム割り込み情報も等値化することにより、上記切り替えによって新たに稼動系になったCPUモジュールは、等値化されたプログラム割り込み情報を参照することで、上記割り込みによって中断されていた定周期プログラムを、継続実行することができる。
特開2003−296133号公報 「統合化制御システムMICREX−IXのコントロールステーションの制御機能」 富士時報 Vol.67 NO.6,1994、345−348頁
上記特許文献1のように、優先レベルの高い定周期プログラムが優先的に実行されるようにし且つ各定周期プログラム実行毎に等値化処理を行うようにした場合、例えば図7に示すようなプログラム実行状況となった場合、以下に述べる問題が生じる。
すなわち、図7には、上記の様に定周期プログラムAと定周期プログラムBとがあり、上記優先レベルは定周期プログラムAのほうが高いものとした場合のプログラム実行状況を示す。図示の例では、最初、定周期プログラムAの起動要求と定周期プログラムBの起動要求が同時に行われ、上記優先レベルより、定周期プログラムAが先に実行され、続いて定周期プログラムBが実行されるが、定周期プログラムBを実行中に、再び定周期プログラムAの起動要求があった為、上記割り込みにより、定周期プログラムBの実行を中断して、定周期プログラムAを実行する。ここで、図7に示すように定周期プログラムAの実行周期が短い場合、割込み発生回数が増加し、定周期プログラムBの実行時間が増大することになる。図7に示す例では、定周期プログラムBの1回の実行時間は、図示のt1となっている。これは、換言すれば、定周期プログラムBがあるスキャン時間内に実行できるプログラムステップ数が、少なくなることを意味する。
尚、図7に示す“入” は入力処理、“演”はプログラム演算、“等”はデータ等値化処理、“出”は出力処理を意味する。よって、図示の通り、各定周期プログラムは、入力処理→プログラム演算→データ等値化処理→出力処理の順番で実行される。
上記の様に、優先レベルが高い定周期プログラムの実行周期が短い場合、優先レベルが低い定周期プログラムの実行時間が増大するという問題が生じる。
本発明の課題は、二重化コントローラシステムに係り、各定周期プログラム実行毎に等値化処理を行うことで稼動系/待機系切替え時に生じるオーバーヘッドを縮小できるものであって、更に、優先レベルが高い定周期プログラムの実行周期が短い場合に優先レベルが低い定周期プログラムの実行時間が増大するという問題を解決できる二重化コントローラシステム、その等値化方法を提供することである。
本発明による二重化コントローラシステムにおけるコントローラは、稼動系と待機系のコントローラを有し、相対的な優先レベルが設定されている複数の定周期プログラムを実行する2重化コントローラシステムにおける前記稼動系のコントローラにおいて、外部からの設定により、前記各定周期プログラム毎に等値化の有効/無効を記憶する第1の記憶手段と、前記各定周期プログラムを実行する毎に、前記第1の記憶手段を参照して、該実行した定周期プログラムが等値化有効である場合には、等値化処理を実行する制御手段とを有するように構成する。
上記相対的な優先レベルが設定されている定周期プログラムにおいて、優先レベルが高い定周期プログラムに等値化無効が設定されている場合には、この定周期プログラム実行時に等値化処理は行われない。よって、この優先レベルが高い定周期プログラムの実行時間は、等値化処理が行われない分、短くなるので、その実行周期が短い場合であっても、優先レベルが低い定周期プログラムの実行時間の増大を抑えることができる。
また、上記構成のコントローラにおいて、例えば更に、前記各定周期プログラム毎に対応するローカル変数を記憶すると共に、全ての定周期プログラムに共通のグローバル変数を記憶する第2の記憶手段を備え、前記第1の記憶手段は、更に、前記各ローカル変数の前記第2の記憶手段における格納位置を示すと共に前記グローバル変数の前記第2の記憶手段における格納位置を示す情報であるマッピング情報を記憶し、前記制御手段は、前期等値化処理において、前記マッピング情報を参照して、実行した定周期プログラムに対応するローカル変数の格納位置と前記グローバル変数の格納位置とを取得することで、該実行した定周期プログラムに対応するローカル変数とグローバル変数とを前記第2の記憶手段から取得して前記待機系のコントローラに転送するように構成してもよい。
この様に、コントローラ側でマッピング情報を保持して等値化処理を行っているので、先出願と同様、等値化する必要のないローカル変数を等値化することを無くし、以ってデータ転送時間オーバヘッドを軽減することができる。
また、例えば、前記等値化無効が設定される定周期プログラムは、継続性を必要とするローカル変数が存在せず且つグローバル変数を使用しないものである。
本発明の二重化コントローラシステム、その等値化方法によれば、各定周期プログラム実行毎に等値化処理を行うことで稼動系/待機系切替え時に生じるオーバーヘッドを縮小できるものであって、更に、各定周期プログラムの等値化処理の実行/非実行を設定・登録しておき、これに基づいて各定周期プログラム実行毎の等値化処理を行うか否かを決定することで、必要の無い等値化処理を実行しないようにできる。これによって特に、優先レベルが高い定周期プログラムの実行周期が短い場合に優先レベルが低い定周期プログラムの実行時間が増大するという問題を解決できる。また、マッピング情報を用いて等値化処理を行っているので、等値化する必要のないローカル変数を等値化することを無くし、以ってデータ転送時間オーバヘッドを軽減することができる。
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、本例の二重化コントローラシステム全体の概略構成図である。
図1に示す二重化コントローラシステムは、CPUモジュール1、CPUモジュール2、及び各制御対象機器とデータの入出力を行う複数のI/Oユニットより成るI/Oユニット群3、及びCPU支援ツール5から構成されている。尚、ここでは、CPUモジュール1が稼動系となっており、CPUモジュール2がその待機系となっている場合を例にして説明する。稼動系のCPUモジュール1、待機系のCPUモジュール2、及びI/O群3は、システムバス4を介して接続されている。また、CPUモジュール1とCPUモジュール2との間には等値化バス6が設けられている。また、CPU支援ツール5とCPUモジュール1/CPUモジュール2とは、不図示の通信線によって接続されている。
CPU支援ツール5自体は、特に新規の構成ではなく、従来より、CPUモジュール1、CPUモジュール2は、CPU支援ツール5から、新たな定周期プログラム(バージョンアップ版/修正版の定周期プログラム等)をダウンロードする等の支援を受けている。
ここで、本出願人が既に提案している特願2003−325000号(以下、先出願と呼ぶ)等に記載のように、等値化データ(等値化すべき制御データ(ユーザデータ))には、グローバル変数とローカル変数とがある。グローバル変数は全ての定周期プログラムに共通の変数であり、ローカル変数は各定周期プログラム毎に個別に存在する変数である。そして、本出願の発明者は、上述した問題を解決する為に、定周期プログラムには「継続性を必要とするローカル変数が存在せず且つグローバル変数を使用しない」タイプのものがあることに着目した。この様なタイプの定周期プログラムに関しては、その実行の際に、等値化処理を行う必要がない。上述した問題は、定周期プログラムを実行する毎に等値化処理を実行するようにした為、特に優先レベルが高い定周期プログラムの実行周期が短い場合、トータルの等値化処理時間が増大することが原因である。そして、もし優先レベルが高い定周期プログラムが、上記「継続性を必要とするローカル変数が存在せず且つグローバル変数を使用しない」タイプである場合、等値化処理が必要ないにも係らず、頻繁に等値化処理が実行される為、等値化処理時間が無駄なオーバヘッドになる。
尚、「継続性を必要とするローカル変数が存在する、又は/且つ、グローバル変数を使用する」定周期プログラムの場合には、当然、等値化処理が必要となる。
上記「継続性を必要とするローカル変数が存在せず且つグローバル変数を使用しない」タイプの定周期プログラム、すなわち等値化処理を行う必要がない定周期プログラムの例としては、例えば、コントローラ内(CPUモジュール内)のデータ収集を行い、モニタ装置(CPU支援ツール5)に対して当該収集データを送信する処理を実行させる定周期プログラム等がある。元々、等値化処理は、例えばプラントの調整値やセンサ測定値等を、待機側にも保持させておく為に行うものである。
以上の点から、本システムでは、上記CPU支援ツール5において新たな定周期プログラムを作成した場合、上記先出願と同様に当該定周期プログラムをコンパイルする際にマッピング情報を生成するが、更にユーザによって等値化処理の有効/無効が設定され、このマッピング情報と等値化有効/無効設定とから成る等値化データ転送情報ファイル5aを作成し、これを上記新たな定周期プログラムと共に各CPUモジュール1,2にダウンロードする。
等値化処理の有効/無効の設定とは、その定周期プログラムの実行の際に等値化処理を行うものであるか否かを設定するものである。CPUモジュール1又は2(稼動系になっているもの)では、この設定を参照することで、各定周期プログラム毎に、等値化処理を行うか否かを判定する。つまり、各定周期プログラムエンドにおける等値化処理を実行するか否かを、ユーザに判断・設定させてCPUモジュールにダウンロードすることで、必要ない等値化処理が実行されることがなくなり、アプリケーションプログラム実行帯域を増加させる(無駄なオーバヘッドをアプリケーションプログラム実行帯域から取り除く)ことができる。
上記本システムの特徴について、以下、更に詳細に説明する。
図2に、図1に示す2重化コントローラシステムにおけるCPUモジュール1、CPUモジュール2の詳細な構成例を示す。
CPUモジュール1、2は、プログラマブルコントローラ本体であるが、ここでは等値化処理に係わる構成のみを示し、他の構成は省略して示す。
図2において、CPUモジュール1は、プログラムRAM11、データRAM12、等値化バス制御部13、受信バッファ用RAM14、及びマイクロプロセッサ15等を有する。
プログラムRAM11には、ユーザプログラム11aが格納される。ユーザプログラム11aとは、例えば上記各定周期プログラムである。尚、本例のシステムにおいては、プログラムRAM11には、更に、後述する図4に示す処理をマイクロプロセッサ15によって実現させるアプリケーションプログラムも格納されている。
データRAM12は、ユーザデータ領域12aを有する。更に、等値化データ転送情報12bが格納される。
ユーザデータ領域12aには、各定周期プログラム毎に対応する各ローカル変数と、グローバル変数とが混在で格納されている。
等値化データ転送情報12bは、上記CPU支援ツール5からダウンロードした上記情報ファイル5aがデータRAM12に格納されたものであり、上記先出願と同様の各ローカル変数とグローバル変数のマッピング情報(ユーザデータ領域12aにおける各変数の格納位置)に加えて更に、上記等値化有効/無効の設定も含まれる。これについては、後に図3を参照して説明する。
等値化バス制御部13は、主に等値化バス6を介して等値化を行う為のデータ転送処理専用の構成であり、マイクロプロセッサ15から等値化データを渡されると、待機側の等値化バス制御部23と連動して、この等値化データを待機側の受信バッファ用RAM24に格納させる機能を有する。尚、等値化バス制御部13は、例えば上記非特許文献1記載の“SGM(Sameness data Gather Memory control)”に相当する。
マイクロプロセッサ15は、CPUモジュール1全体を制御する中央処理装置(CPUチップ等)であり、上記プログラムRAM11に格納されているアプリケーションプログラムを用いて、図4に示す処理を実行する。つまり、マイクロプロセッサ15は、各定周期プログラムを実行する毎に上記等値化有効/無効設定を参照して等値化処理を実行するか否かを判定し、実行しないと判定した場合には、等値化処理は行わない。勿論、等値化有効と設定されている定周期プログラムに関しては、当該定周期プログラムを実行する毎に等値化処理を実行することになる。
また、待機系のCPUモジュール2は、プログラムRAM21、データRAM22、等値化バス制御部23、受信バッファ用RAM24、及びマイクロプロセッサ25等を有する。この構成自体は、稼動系のCPUモジュール1と同じであり、またその動作は上記先出願記載の動作と略同様であるので、ここでは特に説明しない。
図3に、上記データRAM12に格納される等値化データ転送情報12bの一例を示す。
既に述べたように、図示の等値化データ転送情報12bは、先出願と同様のマッピング情報と、等値化有効/無効設定とから成る。マッピング情報は、各定周期プログラムに各々対応する各ローカル変数のマッピング情報、及びグローバル変数のマッピング情報より成る。図3では、定周期プログラムAのローカル変数に関するマッピング情報の具体例を示しており、当該マッピング情報を構成するブロックの数と、その定周期プログラムが使用するローカル変数群の各変数の格納位置を示す情報(ここでは先頭アドレスとサイズ情報)より成る。これは、各変数はユーザデータ領域12aに格納されているので、このユーザデータ領域12aにおける格納位置を意味する。定周期プログラムBのローカル変数に関するマッピング情報やグローバル変数に関するマッピング情報においても、上記定周期プログラムAのローカル変数に関するマッピング情報と略同様である。
そして、本例では更に等値化有効/無効設定情報(図3では等値化設定と記す)が格納されている。図3では、定周期プログラムAのローカル変数に関する等値化設定を示しており、この例では1ビットの情報であり、‘1’は等値化有効、‘0’は等値化無効を意味する。よって例えばユーザが定周期プログラムAに関しては等値化処理は必要無いと判断した場合には、CPU支援ツール5において等値化処理不要を設定すれば、等値化設定として‘0’が格納されることになる。図示していないが、他の定周期プログラムのローカル変数についても同様である。但し、グローバル変数は、全ての定周期プログラムに共通の変数であるので、その等値化設定は、全ての定周期プログラムについての上記1ビットの情報群となる(特に図示しない)。但し、グローバル変数に関する等値化設定は無くてもよい。ローカル変数の等値化設定が‘1’であれば、ローカル変数だけでなくグローバル変数も等値化し、‘0’であれば、ローカル変数もグローバル変数も等値化しないようにすれば済むからである。
尚、上記データRAM12に格納される等値化データ転送情報12bは、上記の通り図1に示す等値化データ転送情報ファイル5aが、ダウンロードされてそのまま格納されたものである。よって、図3に示すデータ構成は、等値化データ転送情報ファイル5aのデータ構成でもあると言える。つまり、等値化データ転送情報ファイル5aは、図3に示すデータフォーマットを有している。つまり、等値化データ転送情報5aには、各ローカル変数、及びグローバル変数についてブロック数や各変数の格納位置を格納するフィールドと、等値化設定フィールドが割り付けられており、等値化設定フィールドには、上記ユーザによって設定された等値化有効/無効情報が格納される。また、上記先出願と同様、CPU支援ツール5においては、作成されたユーザプログラム(図示表現プログラム等)をコンパイルして上記定周期プログラム(マシン語プログラム)を生成する際に、各変数をマッピングして(格納位置を割り当てて)おり、このマッピング結果を上記各ローカル変数、及びグローバル変数についてブロック数や各変数の格納位置を格納するフィールドに格納することで、等値化データ転送情報ファイル5aを生成する。
稼動系のCPUモジュール1のマイクロプロセッサ15は、プログラムRAM11に格納されている各定周期プログラムを実行する。そして、各定周期プログラムエンドのタイミングで、図4に示す等値化処理を実行する。
稼動系のCPUモジュール1のマイクロプロセッサ15は、任意の定周期プログラムエンドにおいて、図4に示す等値化処理を開始すると、まず、当該実行した定周期プログラムのプログラム番号を取得する(ステップS11)。
次に、上記プログラム番号に基づき、当該実行した定周期プログラム用のローカル変数マッピング情報の格納位置(先頭アドレス)を取得する(ステップS12)。尚、この先頭アドレスは、例えば予め各プログラム番号に対応付けて任意の記憶領域(不図示)に登録されている。あるいは、例えば予めマッピング情報の格納領域の先頭位置とオフセット値を記憶しており、P1+オフセット値により上記先頭アドレスを生成してもよい。
そして、ステップS12で取得した先頭アドレス及びそれ以降のアドレスから順次データを読み出して、ステップS13以降の処理を実行する。まず、当該先頭アドレスには、図3に示す通り、等値化設定情報が格納されているので、この設定情報が‘1’であるか‘0’であるかによって、等値化処理を実行するか否かを決定する(ステップS13)。すなわち、等値化設定情報が‘0’であった場合には(ステップS13,NO)、以後の処理は行うことなく、本処理を終了する。等値化設定情報が‘1’であった場合には(ステップS13,YES)、ステップS14以降の処理へ進む。
そして、まず、図3に示す通り、上記先頭アドレスの次のアドレスには、ブロック数が格納されているので、これを取得し(ステップS14)、このブロック数分、各ブロック毎に、ステップS15〜ステップS19の処理を実行する。すなわち、各ブロックには、図3に示す通り、ユーザデータ領域12aにおいてそのローカル変数群を構成する各変数の格納位置を示す情報(先頭アドレス及びサイズ)が格納されており、この先頭アドレスとサイズを取得する(ステップS15,S16)。そして、取得した先頭アドレスとサイズ情報によって、ユーザデータ領域12aからローカル変数を読み出して、これを上記プログラム番号と共に等値化バス制御部13に渡す。これより、上述してある等値化バス制御部13,23の機能によって、当該ローカル変数及びプログラム番号は、待機系のCPUモジュール2側の受信バッファ用RAM24に転送される(ステップS17,18)。そして、図示していないが、続いて、ブロック数=ブロック数−1の処理を行ってからステップS19の処理、すなわちブロック数が0になったか否かを判定する処理を行う。そして、ブロック数が0になるまで、ステップS15〜S19の処理を繰り返し実行する。
尚、図4には示していないが、ブロック数が0になったら(ステップS19,YES)、今度はグローバル変数のマッピング情報を参照して、上記ステップS14〜S19の処理を実行する。
また、尚、待機系のCPUモジュール2側の処理は、特に図示しないが、先出願と同様である。すなわち、待機系のCPUモジュール2も、上記マッピング情報を保持しているので、そのとき実行された定周期プログラムに対応するマッピング情報を用いて、上記転送されたローカル変数、グローバル変数を、所定の格納位置(ユーザデータ領域22aにおける格納位置)に格納する。先出願と異なる点は、定周期プログラムが実行されても、等値化データが転送されてこない場合がある点であり、この場合には当然、待機系のCPUモジュール2は何も行わない。
以上述べたように、ステップS13において、等値化設定情報が‘0’であった場合、すなわち等値化無効が設定されていた場合には、データ等値化処理は一切行わない。よって、等値化処理が必要ない定周期プログラムに関しては、無駄な等値化処理が行われないので、定周期プログラム実行状況は、例えば図5に示すようになる。
図5に示す例は、上記図7に示した例に対応するものである。すなわち、定周期プログラムAの優先レベルが、定周期プログラムBよりも高い場合であって、定周期プログラムAの実行周期が短い場合を例にする。そして、定周期プログラムAに関する等値化設定情報は‘0’であり、定周期プログラムBに関する等値化設定情報は‘1’であるものとする。
この場合、上記図4の処理を実行することで、図5に示すように、定周期プログラムAの実行帯域が縮小され、定周期プログラムBの実行帯域が増大し、定周期プログラムBのプログラム実行時間が縮小されることになる。例えば、図5と図7を比較した場合、本例では定周期プログラムBの1回の実行時間は図示のt2となり、図7のt1に比べて5分の3程度に縮小されたことになる。
よって、上記の方法により、ユーザがデータ等値化の必要性を判断して、定周期プログラムエンドで実行されるデータ等値化の実行/非実行の設定を変更することにより、アプリケーションプログラムの実行帯域が増大し、高速実行を可能とすることができる。
また、本手法では、上記先出願と同様に、マッピング情報を用いて等値化処理を行っているので、等値化有効と設定されている定周期プログラムを実行したときに等値化処理を行う際に、当該実行した定周期プログラムに係るローカル変数のみが待機系CPUモジュール2に転送される(勿論、その際、グローバル変数も転送する)。よって、先出願と同様、等値化する必要のないローカル変数を等値化することを無くし、以ってデータ転送時間オーバヘッドを軽減することができる。
本例の二重化コントローラシステム全体の概略構成図である。 図1に示す2重化コントローラシステムにおけるCPUモジュールの詳細な構成図である。 データRAMに格納される等値化データ転送情報の一例を示す。 本例の等値化処理を説明する為のフローチャート図である。 本例の等値化処理によるプログラム実行状況を示す図である。 従来の2重化して冗長性を持たせたコントローラのシステム構成例を示す。 従来の等値化処理によるプログラム実行状況を示す図である。
符号の説明
1 CPUモジュール(稼動系)
2 CPUモジュール(待機系)
3 I/Oユニット群
4 システムバス
5 CPU支援ツール
11 プログラムRAM
12 データRAM
12a ユーザデータ領域
12b マッピング情報領域
13 等値化バス制御部
14 受信バッファ用RAM
15 マイクロプロセッサ
21 プログラムRAM
22 データRAM
22a ユーザデータ領域
22b マッピング情報領域
23 等値化バス制御部
24 受信バッファ用RAM
25 マイクロプロセッサ

Claims (4)

  1. 稼動系と待機系のコントローラを有し、相対的な優先レベルが設定されている複数の定周期プログラムを実行する2重化コントローラシステムにおける前記稼動系のコントローラにおいて、
    外部からの設定により、前記各定周期プログラム毎に等値化の有効/無効を記憶する第1の記憶手段と、
    前記各定周期プログラムを実行する毎に、前記第1の記憶手段を参照して、該実行した定周期プログラムが等値化有効である場合には、等値化処理を実行する制御手段と、
    を有することを特徴とするコントローラ。
  2. 前記各定周期プログラム毎に対応するローカル変数を記憶すると共に、全ての定周期プログラムに共通のグローバル変数を記憶する第2の記憶手段を更に備え、
    前記第1の記憶手段は、更に、前記各ローカル変数の前記第2の記憶手段における格納位置を示すと共に前記グローバル変数の前記第2の記憶手段における格納位置を示す情報であるマッピング情報を記憶し、
    前記制御手段は、前期等値化処理において、前記マッピング情報を参照して、実行した定周期プログラムに対応するローカル変数の格納位置と前記グローバル変数の格納位置とを取得することで、該実行した定周期プログラムに対応するローカル変数とグローバル変数とを前記第2の記憶手段から取得して前記待機系のコントローラに転送することを特徴とする請求項1記載のコントローラ。
  3. 前記等値化無効が設定される定周期プログラムは、継続性を必要とするローカル変数が存在せず且つグローバル変数を使用しないものであることを特徴とする請求項1又は2記載のコントローラ。
  4. 稼動系と待機系のコントローラを有し、複数の定周期プログラムを実行する2重化コントローラシステムにおいて、
    前記稼動系と待機系の各コントローラに通信線を介して接続し、作成させた任意の定周期プログラムに係るマッピング情報を生成すると共に、等値化の有効/無効を設定させ、該定周期プログラムとマッピング情報と有効/無効設定を前記各コントローラにダウンロードする支援装置を更に有し、
    前記稼動系のコントローラは、
    前記各定周期プログラム毎に、前記等値化の有効/無効を記憶する第1の記憶手段と、
    前記各定周期プログラムを実行する毎に、前記第1の記憶手段を参照して、該実行した定周期プログラムが等値化有効である場合には、等値化処理を実行する制御手段と、
    を有することを特徴とする二重化コントローラシステム。
JP2005046312A 2005-02-22 2005-02-22 二重化コントローラシステム、そのコントローラ Pending JP2006235765A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005046312A JP2006235765A (ja) 2005-02-22 2005-02-22 二重化コントローラシステム、そのコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005046312A JP2006235765A (ja) 2005-02-22 2005-02-22 二重化コントローラシステム、そのコントローラ

Publications (1)

Publication Number Publication Date
JP2006235765A true JP2006235765A (ja) 2006-09-07

Family

ID=37043373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005046312A Pending JP2006235765A (ja) 2005-02-22 2005-02-22 二重化コントローラシステム、そのコントローラ

Country Status (1)

Country Link
JP (1) JP2006235765A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128514A (ja) * 2008-11-25 2010-06-10 Mitsubishi Electric Corp プラントコントロールシステム
JP2013134543A (ja) * 2011-12-26 2013-07-08 Mizuho Corporate Bank Ltd 情報処理装置、情報処理方法及び情報処理プログラム
CN104793601A (zh) * 2015-04-23 2015-07-22 山东创恒科技发展有限公司 一种dcs控制器冗余装置和方法
JP2019139489A (ja) * 2018-02-09 2019-08-22 株式会社ヴィーネックス 光ラインセンサユニットの受光出力補正方法及び受光出力補正システム、並びに、これに用いられる光ラインセンサユニット

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010128514A (ja) * 2008-11-25 2010-06-10 Mitsubishi Electric Corp プラントコントロールシステム
JP2013134543A (ja) * 2011-12-26 2013-07-08 Mizuho Corporate Bank Ltd 情報処理装置、情報処理方法及び情報処理プログラム
CN104793601A (zh) * 2015-04-23 2015-07-22 山东创恒科技发展有限公司 一种dcs控制器冗余装置和方法
JP2019139489A (ja) * 2018-02-09 2019-08-22 株式会社ヴィーネックス 光ラインセンサユニットの受光出力補正方法及び受光出力補正システム、並びに、これに用いられる光ラインセンサユニット

Similar Documents

Publication Publication Date Title
US8588228B1 (en) Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner
US9141336B2 (en) Data transfer device
CN1875346A (zh) 执行不同版本的软件的冗余处理器的配置同步
US20100251005A1 (en) Multiprocessor system and failure recovering system
EP2733613B1 (en) Controller and program
JP2006235765A (ja) 二重化コントローラシステム、そのコントローラ
JP2005092520A (ja) 2重化コントローラシステム、その等値化方法
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP5034584B2 (ja) 2重化コントローラシステム、その稼動系/待機系コントローラ
JP2003296133A (ja) コントローラ
JP6196505B2 (ja) クラウド制御システム、及びその制御プログラムの実行方法
US7603489B2 (en) Direct memory access controller including first and second transfer setting registers
JP2008021059A (ja) 情報処理装置およびプロセッサ機能変更方法
JP4281602B2 (ja) 2重化コントローラシステム、そのコントローラ、プログラム
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
CN109358903B (zh) 数据访问设备和访问错误通知方法
JPWO2013168258A1 (ja) 待機冗長二重化装置
JP2010020494A (ja) 保護制御装置
JP2005092695A (ja) 二重化コントローラ、その等値化モード決定方法
WO2012098655A1 (ja) データ書き込み制御装置、データ書き込み制御方法及び情報処理装置
WO2023021848A1 (ja) 制御装置、制御装置の制御方法
JP5045168B2 (ja) 周辺デバイス制御装置及び方法
JP2005285018A (ja) 2重化コントローラシステム、その稼動/待機切換え方法
KR102030167B1 (ko) 임베디드 기기를 위한 디버깅 방법
JP7003432B2 (ja) 二重化システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090910

A02 Decision of refusal

Effective date: 20100105

Free format text: JAPANESE INTERMEDIATE CODE: A02