JP7047728B2 - コントローラ、およびコントローラの制御方法 - Google Patents

コントローラ、およびコントローラの制御方法 Download PDF

Info

Publication number
JP7047728B2
JP7047728B2 JP2018223494A JP2018223494A JP7047728B2 JP 7047728 B2 JP7047728 B2 JP 7047728B2 JP 2018223494 A JP2018223494 A JP 2018223494A JP 2018223494 A JP2018223494 A JP 2018223494A JP 7047728 B2 JP7047728 B2 JP 7047728B2
Authority
JP
Japan
Prior art keywords
cpu module
memory
unit
system cpu
control system
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.)
Active
Application number
JP2018223494A
Other languages
English (en)
Other versions
JP2020087179A (ja
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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2018223494A priority Critical patent/JP7047728B2/ja
Publication of JP2020087179A publication Critical patent/JP2020087179A/ja
Application granted granted Critical
Publication of JP7047728B2 publication Critical patent/JP7047728B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、多重化されるCPUモジュールを備えているコントローラ、およびコントローラの制御方法に関する。
従来、PLC(プログラマブル・ロジック・コントローラ、Programmable Logic Controller)について、システムの安全性、信頼性を向上すること等を目的として、CPUモジュールを多重化する構成が知られている。これらの多重化CPUモジュールでは、何れか1つのCPUモジュールが演算処理を実行する制御系CPUモジュールとして動作し、他のCPUモジュールが待機系CPUモジュールとして動作する。
制御系CPUモジュールに異常が生じた場合には、待機系CPUモジュールが、異常が生じた制御系CPUモジュールに替わって演算処理を実行し、PLCによる制御動作を継続する。制御系CPUモジュールと、待機系CPUモジュールとは、制御系CPUモジュールに異常が発生した場合にシステムを継続動作することができるように、制御系CPUモジュールにおいて用いる一部のデータを待機系CPUモジュールに転送して共有化している。
一般的に、制御系CPUモジュールと、待機系CPUモジュールとの間でどのデータを共有するかは、ユーザが判断し、ユーザが手動で選択する。使用している変数の多いプログラムなどでは、共有する変数の設定ミスにより、制御動作を行うCPUモジュールの切り替え時に誤動作が生じる場合もある。
そこで、共有変数の設定ミスによる動作モジュールの切り替え時の動作異常の抑制と、共有変数設定のユーザの負担軽減のために、制御系CPUモジュールから待機系CPUモジュールに転送するデータを自動選択する技術が提案されている(例えば、特許文献1参照)。
特開2013-235311号公報
上述のような従来技術では、コンパイラは、入出力データを参照して、各メモリがプログラムにおいてどのような用途で使用されているかを確認し、トラッキング要と判定されたメモリのデータを初期値データと入出力データとから抽出して、制御系CPUモジュールから待機系CPUモジュールに転送している。このように、プログラムの実行後に、各メモリをスキャンしてデータを抽出し、抽出したデータを制御系CPUモジュールから待機系CPUモジュールに転送する構成では、メモリスキャンの時間が長くなる。そのため、プログラムの実行が遅れる(実行周期が長くなる)という問題がある。
本発明の一態様は、上述した事情に鑑みてなされたものであり、多重化されるCPUモジュール間で適切かつ効率的にデータを共有することができる技術を実現することを目的とする。
上記の課題を解決するために、本発明の一態様に係るコントローラは、CPUモジュールが多重化されたコントローラであって、制御系CPUモジュールと、待機系CPUモジュールと、を備え、前記制御系CPUモジュールは、ユーザプログラムに基づく演算処理を行う第1演算部と、前記第1演算部による演算結果が書き込まれる第1メモリと、を備え、前記待機系CPUモジュールは、前記制御系CPUモジュールに異常が生じたときにユーザプログラムに基づく演算処理を行う第2演算部と、第2メモリと、を備え、前記制御系CPUモジュールは、さらに、前記第1演算部から受け取った前記演算結果の書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送する第1メモリ処理部を備えている。
CPUモジュールが多重化されたコントローラにおいて、制御系CPUモジュールと、待機系CPUモジュールとの間で、共有変数をユーザが設定する必要がなく、ユーザの手間を低減し、設定ミスが生じるのを防ぐことができる。また、変数を共有するタイミング毎に、データをスキャンして共有する変数を抽出し転送する必要がないため、メモリスキャンに必要な時間を抑えることができる。
したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。また、CPUモジュールの切り替えを行う際に、必要なデータが共有されていないという事がなく、CPUモジュールの切り替えによる誤作動を抑制し、効率良くCPUモジュールの切り替えを行うことができる。
本発明の一態様に係るコントローラにおいて、前記制御系CPUモジュールの前記第1メモリ処理部は、前記制御系CPUモジュールが外部のI/Oユニットから受信した入力データの書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送してもよい。
前記の構成によれば、前記制御系CPUモジュールが、外部のI/Oユニットから受信した入力データを、制御系CPUモジュールの第1メモリに書き込むのと同じタイミングで、待機系CPUモジュールと共有することができる。制御系CPUモジュールは、入力データを共有するために、改めて第1メモリをスキャンする必要がない。したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。
本発明の一態様に係るコントローラにおいて、前記制御系CPUモジュールは、メモリアクセスコントローラを備え、前記メモリアクセスコントローラは、前記第1メモリ処理部を含んでもよい。
前記の構成によれば、メモリアクセスコントローラが、第1メモリへの出力と、待機系CPUモジュールへの転送とを分配してくれるので、第1演算部は書き込み処理を待たずに次の演算処理を実行することができる。
本発明の一態様に係るコントローラにおいて、前記第1演算部と前記第1メモリ処理部とは、1つの集積回路の中に形成されていてもよい。
前記の構成によれば、第1メモリ処理部が、第1メモリへの出力と、待機系CPUモジュールへの転送とを分配してくれるので、第1演算部は書き込み処理を待たずに次の演算処理を実行することができる。
本発明の一態様に係るコントローラにおいて、前記待機系CPUモジュールは、第2メモリ処理部を備え、前記第2メモリ処理部は、前記演算結果の前記書き込み指示を前記制御系CPUモジュールから受信し、当該書き込み指示を前記第2メモリに出力してもよい。
前記の構成によれば、第2メモリ処理部が第2メモリへの書き込みを実行するため、第1メモリ処理部は、第2メモリ処理部に書き込み指示を受け渡すだけで良く、第2メモリへの書き込み処理を待たなくてよい。したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。
本発明の一態様に係るコントローラにおいて、前記第2メモリ処理部は、前記制御系CPUモジュールに異常が生じたときに、前記第2演算部から受け取った演算結果の書き込み指示を、前記第2メモリに出力してもよい。
前記の構成によれば、制御系CPUモジュールに異常が生じたときには、待機系CPUモジュール内で処理を完了することができ、コントローラの運転を効率良く継続することができる。
本発明の一態様に係るコントローラにおいて、前記制御系CPUモジュールは、前記第1演算部と、第1レジスタとを含む第1演算処理部を備え、前記待機系CPUモジュールは、前記第2演算部と、第2レジスタとを含む第2演算処理部を備え、前記第1メモリ処理部は、前記第1演算処理部の前記第1レジスタへの書き込み指示を、前記待機系CPUモジュールの前記第2演算処理部の前記第2レジスタに転送してもよい。
前記の構成によれば、制御系CPUモジュールの第1レジスタに書き込まれる情報が、待機系CPUモジュールの第2レジスタに共有される。これにより、ユーザプログラムに基づく演算処理に必要なレジスタに保存される中間データを、待機系CPUモジュールと共有することができる。待機系CPUモジュールは、制御系CPUモジュールによって実行が完了した処理を適切に知ることができる。したがって、制御系CPUモジュールに異常が生じ、待機系CPUモジュールに動作が切り替わったときには、待機系CPUモジュールは、ユーザプログラムにおける適切な位置から次の処理を実行することができる。
本発明の一態様に係るコントローラは、外部の前記I/Oユニットからの前記入力データを伝送するケーブルとは別に、前記制御系CPUモジュールと前記待機系CPUモジュールとを互いに接続するケーブルであって、前記演算結果の書き込み指示を伝送するケーブルを備えていてもよい。
前記の構成によれば、入力データを伝送するケーブルとは別のケーブルを介して書き込み指示を伝送することができ、データの伝送(すなわち共有)に遅延が生じることを抑制することができる。
上記の課題を解決するために、本発明の一態様に係る制御方法は、制御系CPUモジュールと、待機系CPUモジュールとが多重化されたコントローラの制御方法であって、前記制御系CPUモジュールにおいてユーザプログラムに基づく演算処理を行う演算ステップと、前記演算処理の演算結果の書き込み指示を、前記制御系CPUモジュールの第1メモリに出力するとともに、前記待機系CPUモジュールの第2メモリに転送するメモリ処理ステップと、を含んでいる。
CPUモジュールが多重化されたコントローラにおいて、制御系CPUモジュールと、待機系CPUモジュールとの間で、共有変数をユーザが設定する必要がなく、ユーザの手間を低減し、設定ミスが生じるのを防ぐことができる。また、変数を共有するタイミング毎に、データをスキャンして共有する変数を抽出し転送する必要がないため、メモリスキャンに必要な時間を抑えることができる。
したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。また、CPUモジュールの切り替えを行う際に、必要なデータが共有されていないという事がなく、CPUモジュールの切り替えによる誤作動を抑制し、効率良くCPUモジュールの切り替えを行うことができる。
本発明の一態様によれば、多重化されるCPUモジュール間で適切かつ効率的にデータを共有することができるとの効果を奏する。
本発明の実施形態1に係るPLCの要部構成を示すブロック図である。 図1に示すメモリアクセスコントローラの要部構成を示すブロック図である。 図1に示す2つのCPUモジュール間におけるデータ転送処理の流れの具体例を説明する図である。 図1に示す2つのCPUモジュール間における動作切替処理の流れの具体例を説明する図である。 実施形態2に係るPLCの要部構成を示すブロック図である。
以下、本発明の一側面に係る実施形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。
§1 適用例
図1を用いて、本発明が適用される場面の一例について説明する。図1は、本実施形態に係るPLC(コントローラ)10の要部構成を示すブロック図である。PLC10は、多重化される複数のCPUモジュール100A,100Bを備えて構成されている。PLC10は、複数の上位装置、および制御対象である複数のI/Oユニット(入力/出力ユニット)に接続されている。I/Oユニットは、例えば、工作機械、およびベルトコンベアのサーボモータ等の駆動装置の制御ユニット、または、駆動装置の稼働状態に係るセンサデータ等を収集し、稼働状態を示すデータを生成するセンサユニットである。上位装置は、例えば、ユーザプログラムの編集等を行うユーザPC(パーソナルコンピュータ)またはサーバである。
PLC10は、複数のCPUモジュール100A,100Bの何れか1つが制御系CPUモジュールとして機能する。PLC10は、制御系CPUモジュールにおいて、I/Oユニットからの入力データに基づいて、制御対象のI/Oユニットに応じたユーザプログラムを実行することにより、駆動装置に対する動作制御指示を生成する。
複数のCPUモジュール100A,100Bのそれぞれには、複数の駆動装置のそれぞれを制御するための複数のプログラムが、プログラムメモリ140A,140Bに予め書きこまれている。また、これらのプログラムで使用される初期設定データは、内部のメモリ130A,130Bに予め書きこまれている。
PLC10は、正常状態においては、制御系CPUモジュールがユーザプログラムに基づいて演算処理を行い、演算結果に従って駆動装置の動作を制御する。正常状態においては、待機系CPUモジュールは、ユーザプログラムに基づいた演算処理を行わない。
PLC10において、制御系CPUモジュールに異常が生じた場合、多重化される他のCPUモジュールである待機系CPUモジュールが制御系CPUモジュールに替わって、駆動装置の動作制御を行うことで、PLC10は、制御動作を継続する。制御系CPUモジュールと、待機系CPUモジュールとの間では、制御系CPUモジュールに異常が発生した場合には、制御動作を行うCPUモジュールの切り替えを効率的に行うことができるように、データが共有されている。
制御系CPUモジュールは、I/Oユニットからの入力データをI/Oメモリ(単にメモリとも称する)に書き込む指示を自モジュールのI/Oメモリに出力するとともに、待機系CPUモジュールに転送する。また、制御系CPUモジュールは、演算処理を行った演算結果をI/Oメモリに書き込む指示を自モジュールのメモリに出力するとともに、待機系CPUモジュールに転送する。
このように、制御系CPUモジュールと、待機系CPUモジュールとでは、演算結果(および入力データ)が同時にそれぞれのメモリに書き込まれる。これにより、転送するデータを抽出する為にメモリをスキャンする必要がなく、効率的に必要なデータを共有することができる。また、制御系CPUモジュールと、待機系CPUモジュールとの間で演算結果を常に共有することができ、CPUモジュールの切り替えを効率的に行うことができるため、PLC10は、遅延なく制御動作を継続することができる。
§2 構成例
〔実施形態1〕
図1及び図2に基づいて、本発明の実施形態1に係るPLC10の構成について、詳細に説明する。図1は、PLC10の要部構成を示すブロック図である。
図1に示すように、PLC10は、第1CPUモジュール100Aおよび第2CPUモジュール100Bを含んでいる。第1CPUモジュール100Aと第2CPUモジュール100Bとは、PLC10において多重化されている。なお、図1では、PLC10が二重化される第1CPUモジュール100Aと第2CPUモジュール100Bとを含む例を示しているが、これに限らず、3つ以上の複数の多重化されるCPUを備えている構成であってもよい。第1CPUモジュール100Aおよび第2CPUモジュール100Bの各々は、PLC10全体を統括的に制御可能に構成されている。
第1CPUモジュール100Aは、正常状態においてI/Oユニットからの入力データを取得して、ユーザプログラムに基づく演算処理を実行する制御系モジュールとして機能する。第1CPUモジュール100Aを制御系CPUモジュールとも称する。第2CPUモジュール100Bは、第1CPUモジュール100Aに異常が生じた場合に、第1CPUモジュール100Aに替わって制御動作を実行する待機系モジュールとして機能する。第2CPUモジュール100Bを待機系CPUモジュールとも称する。第1CPUモジュール100Aが正常に動作している間は、第2CPUモジュール100Bは、制御動作に必要なユーザプログラムに基づく演算処理を実行しない。
第1CPUモジュール100Aと、第2CPUモジュール100Bとは、互いに同一の構成を有し、それぞれ、演算処理部110、メモリアクセスコントローラ120、I/Oメモリ130を備えている。また、第1CPUモジュール100Aと、第2CPUモジュール100Bとは、プログラムメモリ140、およびMPU(Micro Processor Unit)150を備えている。
演算処理部110は、1つの集積回路(例えばASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array))で形成されているプロセッサである。メモリアクセスコントローラ120は、1つの集積回路で形成されている。なお、演算処理部110およびメモリアクセスコントローラ120は、それぞれ複数の集積回路を含んでもよい。
第1CPUモジュール100Aと、第2CPUモジュール100Bとは、それぞれ、EtherNet(登録商標)ケーブル等の、外部のI/Oユニットからの入力データを伝送するケーブルに接続されている。また、第1CPUモジュール100Aと、第2CPUモジュール100Bとは、外部のI/Oユニットからの入力データを伝送するケーブルとは別に、互いに伝送ケーブル50で接続されている。第1CPUモジュール100Aと、第2CPUモジュール100Bとは、伝送ケーブル50を介して、外部のI/Oユニットからの入力データ、および演算処理部110による演算結果を共有する。
MPU150は、上位装置との通信を制御する。MPU150は、例えばサーバからユーザプログラムを取得し、ユーザプログラムをプログラムメモリ140に保存する。
プログラムメモリ140には、制御対象の駆動装置を制御するための制御プログラムであるユーザプログラムが格納されている。ユーザプログラムは、例えば、ラダー言語等で記述された制御プログラム等である。
第1CPUモジュール100Aの演算処理部を第1演算処理部110A、第2CPUモジュール110Bの演算処理部を第2演算処理部110Bとそれぞれ称する。また、第1CPUモジュール100Aのメモリアクセスコントローラを第1メモリアクセスコントローラ120A、第2CPUモジュール110Bのメモリアクセスコントローラを第2メモリアクセスコントローラ120Bとそれぞれ称する。また、第1CPUモジュール100AのI/Oメモリを第1メモリ130A、第2CPUモジュール110BのI/Oメモリを第2メモリ130Bとそれぞれ称する。また、第1CPUモジュール100Aのプログラムメモリを第1プログラムメモリ140A、第2CPUモジュール110Bのプログラムメモリを第2プログラムメモリ140Bとそれぞれ称する。また、第1CPUモジュール100AのMPUを第1MPU150A、第2CPUモジュール110BのMPUを第2MPU150Bとそれぞれ称する。
第1CPUモジュール100Aは、I/Oユニットから、周期的に入力データを受信する。入力データは、例えば、駆動装置の駆動状態を示すデータ、および、センサが計測した計測値を示すデータを含む。第1CPUモジュール100Aは、I/Oユニットからの入力データを、第1演算処理部110Aを通じて、第1メモリ130Aにそのまま保存する。具体的には、第1CPUモジュール100Aは、I/Oユニットからの入力データを、第1演算処理部110Aに渡す。第1演算処理部110Aは、受信した入力データを第1メモリ130Aに書き込むため、入力データの書き込み指示を、第1メモリアクセスコントローラ120Aに出力する。第1メモリアクセスコントローラ120Aは、第1演算処理部110Aが出力した入力データの書き込み指示を第1メモリ130Aに出力する。
また、第1CPUモジュール100Aは、第1演算処理部110Aによる演算結果も、第1メモリ130Aに保存する。具体的には、第1CPUモジュール100Aは、第1演算処理部110Aの第1演算部111Aの演算結果を第1メモリ130Aに書き込むため、演算結果の書き込み指示を、第1メモリアクセスコントローラ120Aに出力する。第1メモリアクセスコントローラ120Aは、第1演算処理部110Aが出力した演算結果の書き込み指示を第1メモリ130Aに出力する。
また、第1CPUモジュール100Aは、I/Oユニットからの入力データと、第1演算処理部110Aによる演算結果と、をそれぞれ第1メモリ130Aに書き込むタイミングで、第2CPUモジュール100Bに転送する。
第1演算処理部110Aは、第1演算部111Aと、第1レジスタ112Aとを備えている。同様に、第2演算処理部110Bは、第2演算部111Bと、第2レジスタ112Bとを備えている。
第1演算部111Aは、第1プログラムメモリ140Aに格納されているユーザプログラムと、第1メモリ130Aに保存されているI/Oユニットからの入力データと、を読み込んで、当該ユーザプログラムに基づく演算処理を行う。第1レジスタ112Aには、第1演算処理部110Aによって実行された処理の内容(ユーザプログラムの内部で使用される変数)が書きこまれる。
第2演算部111Bは、第1CPUモジュール100Aに異常が生じたときに、第2プログラムメモリ140Bに格納されているユーザプログラムと、第2メモリ130Bに保存されているI/Oユニットからの入力データと、を読み込んで、当該ユーザプログラムに基づく演算処理を行う。第2レジスタ112Bには、第2演算処理部110Bによって実行された処理の内容(ユーザプログラムの内部で使用される変数)が書きこまれる。
図2は、図1におけるメモリアクセスコントローラ120A,120Bの要部構成を示すブロック図である。メモリアクセスコントローラ120A,120Bは、それぞれ、分配回路部121、データバッファ122、およびデータトランシーバアンドレシーバIC123を含んでいる。第1メモリアクセスコントローラ120Aの分配回路部121は、第1メモリ処理部121Aとも称される。第2メモリアクセスコントローラ120Bの分配回路部121は、第2メモリ処理部121Bとも称される。
第1メモリアクセスコントローラ120Aは、第1演算部111Aから演算結果を第1メモリに書き込む書き込み指示を取得する。該演算結果の書き込み指示は、演算結果と、該演算結果を格納すべきアドレス(論理アドレス又は物理アドレス)の情報とを含む。第1メモリアクセスコントローラ120Aの分配回路部121は、第1演算部111Aから受信した演算結果の書き込み指示を、第1メモリ130Aに出力する。また、第1メモリアクセスコントローラ120Aの分配回路部121は、受信した演算結果の書き込み指示を、データバッファ122、およびデータトランシーバアンドレシーバIC123を介して、第2CPUモジュール100Bの第2メモリ130Bに転送する。このように、分配回路部121は、1つの書き込み指示を、第1メモリ130Aと第2メモリ130Bとに分配する。
具体的には、第1メモリアクセスコントローラ120Aの分配回路部121は、第1演算部111Aからの演算結果の書き込み指示を、第1メモリアクセスコントローラ120Aのデータバッファ122に出力する。データトランシーバアンドレシーバIC123は、CPUモジュール100A,100B間の通信を制御する。第1メモリアクセスコントローラ120AのデータトランシーバアンドレシーバIC123は、データバッファ122に蓄えられた演算結果の書き込み指示を、伝送ケーブル50を介して、第2CPUモジュール110Bの第2メモリアクセスコントローラ120Bに伝送する。
また、第1メモリアクセスコントローラ120Aの分配回路部121は、外部のI/Oユニットから受信した入力データを第1メモリ130Aに書き込む第1演算処理部110Aからの書き込み指示を、第1メモリ130Aに出力するとともに、第2CPUモジュール110Bの第2メモリ130Bに転送する。該入力データの書き込み指示は、入力データと、該入力データを格納すべきアドレスの情報とを含む。第1メモリアクセスコントローラ120Aの分配回路部121は、第1演算部111Aから受信した入力データの書き込み指示を、データバッファ122、データトランシーバアンドレシーバIC123、および伝送ケーブル50を介して、第2CPUモジュール100Bの第2メモリ130Bに転送する。なお、I/Oユニットからの入力データ自体は、伝送ケーブル50とは別の、I/Oユニットからの入力データが伝送されるケーブルを介して、第1CPUモジュール100Aから、第2CPUモジュール100Bに転送されてもよい。または、I/Oユニットからの入力データは、I/Oユニットから第2CPUモジュール100Bに入力されてもよい。
また、第1メモリアクセスコントローラ120Aの分配回路部121は、第1演算処理部110Aのレジスタ112Aへの書き込み指示を、第1演算処理部110Aから取得し、当該書き込み指示を第2CPUモジュール100Bの第2演算処理部110Bのレジスタ112Bに転送する。該レジスタへの書き込み指示は、第1演算処理部110Aによって実行された処理の内容(ユーザプログラムの内部で使用される変数)と、該データを格納すべきレジスタ上のアドレスの情報とを含む。第1メモリアクセスコントローラ120Aの分配回路部121は、第1演算処理部110Aから受信したレジスタへの書き込み指示を、データバッファ122、データトランシーバアンドレシーバIC123、および伝送ケーブル50を介して、第2CPUモジュール100Bのレジスタ112Bに転送する。
第2CPUモジュール110Bは、伝送ケーブル50を介して伝送された、入力データの書き込み指示、演算結果の書き込み指示、及び、レジスタへの書き込み指示を第2メモリアクセスコントローラ120Bによって受信する。
第2メモリアクセスコントローラ120Bは、第2メモリアクセスコントローラ120BのデータトランシーバアンドレシーバIC123を介して、第1CPUモジュール100Bから書き込み指示を受信する。第2メモリアクセスコントローラ120BのデータトランシーバアンドレシーバIC123は、第2メモリアクセスコントローラ120Bのデータバッファ122に受信した書き込み指示を出力する。第2メモリアクセスコントローラ120Bの分配回路(第2メモリ処理部)121は、データバッファ122に蓄えられた書き込み指示が、入力データの書き込み指示、又は演算結果の書き込み指示であれば、当該書き込み指示を、第2メモリ130Bに出力する。第2メモリアクセスコントローラ120Bの分配回路部121は、データバッファ122に蓄えられた書き込み指示が、レジスタへの書き込み指示であれば、当該書き込み指示を、第2演算処理部110Bのレジスタ112Bに出力する。
第2CPUモジュール100Bは、第2メモリアクセスコントローラ120Bを介して、第1CPUモジュール100Aから、第1CPUモジュール100Aに異常が生じたことを示す情報を受信する。第2CPUモジュール100Bは、第1CPUモジュール100Aに異常が生じたことを示す情報を受信すると、第2演算処理部110Bにおいて、ユーザプログラムに基づく演算処理の実行を開始する。第2演算処理部110Bは、第2演算部111Bの機能により、ユーザプログラムに基づく演算処理を行って、第2演算部111Bによる演算結果をメモリに書き込む指示を第2メモリアクセスコントローラ120Bに出力する。第2メモリアクセスコントローラ120Bは、第2演算部111Bによる演算結果をメモリに書き込む指示を受け取ると、第2メモリアクセスコントローラ120Bの分配回路部121の機能により、第2演算処理部110Bから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力する。
第2メモリアクセスコントローラ120Bの分配回路部121は、第1CPUモジュール100Aに異常が生じたときには、第2演算処理部110Bから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力する。
〔CPUモジュール間におけるデータ転送処理の流れについて〕
図3は、第1CPUモジュール100Aと、第2CPUモジュール100Bとの間のデータ転送処理の流れを示すフローチャートである。
第1CPUモジュール100A、および第2CPUモジュール100Bは、PLC10の電源ONの後、I/Oメモリ130A,130Bの初期設定をそれぞれ行う(ステップS1、S11)。初期設定において、I/Oメモリ130A,130Bには、各ユーザプログラムで使用されるパラメータの初期値が登録される。
〔第1CPUモジュール100Aの処理サイクル〕
続いて、第1CPUモジュール100Aは、状態チェック処理、プログラム実行処理、メモリリフレッシュ、およびイベント処理を、この順でセットで、繰り返し実行する。この、状態チェック処理、プログラム実行処理、メモリリフレッシュ、およびイベント処理のセットを「1サイクル」と称する。
第1CPUモジュール100Aは、状態チェック処理において、自モジュールが備える各ハードウェア、およびソフトウェアが正常に動作するか否かを確認する(ステップS2)。
続いて、第1CPUモジュール100Aは、プログラム実行処理において、第1演算処理部110Aの第1演算部111Aの機能により、所定のユーザプログラムと、第1メモリ130Aに記憶されている、当該ユーザプログラムの内部で使用されるパラメータとを読み込んで、ユーザプログラムに基づく演算処理を行う。第1演算部111Aは、演算結果をI/Oメモリに書き込む書き込み指示を、第1メモリアクセスコントローラ120Aに出力する。第1メモリアクセスコントローラ120Aは、分配回路部121の機能により、第1演算部111Aから受け取った演算結果の書き込み指示を、第1メモリ130Aに出力し、演算結果を第1メモリ130Aに書き込む。
また、分配回路部121は、第1演算部111Aから受け取った演算結果(Oデータ)の書き込み指示を、第1メモリ130Aに出力するとともに、当該書き込み指示(Oデータを含む)を、データバッファ122、およびデータトランシーバアンドレシーバIC123を介して、第2CPUモジュール110Aの第2メモリアクセスコントローラ120Bに転送する(ステップS3)。
続いて、第1CPUモジュール100Aは、第1メモリ130Aに記憶されているパラメータを、外部のI/Oユニットから受信した入力データ(Iデータ)を用いてリフレッシュする。第1CPUモジュール100Aの分配回路部121は、外部のI/Oユニットから受信した入力データを第1メモリ130Aに書き込む書き込み指示を、第1メモリ130Aに出力するとともに、当該書き込み指示(Iデータを含む)を、データバッファ122、およびデータトランシーバアンドレシーバIC123を介して、第2CPUモジュール110Aの第2メモリアクセスコントローラ120Bに転送する(ステップS4)。
第1CPUモジュール100Aは、上位装置との通信を行うイベント処理を行う(ステップS5)。例えば、外部のI/Oユニットから受信した入力データの記録又は解析のために、上位装置であるサーバに、特定の入力データを送信する。第1CPUモジュール100Aは、ステップS2~ステップS5の1サイクルの処理を終了すると、次のサイクルを開始する。また、図示はしていないが、第1演算処理部110Aは、例えばユーザプログラムの実行処理時に、当該処理の内容を第1レジスタ112Aに出力するとともに、第2メモリアクセスコントローラ120Bを介して、第2CPUモジュール100Bの第2レジスタ112Bに転送する。
〔第2CPUモジュール100Bの処理〕
続いて、第1CPUモジュール100Aにおける1サイクルの処理中の、第2CPUモジュール100Bの処理について説明する。
初期設定の後、第2CPUモジュール100Bは、状態チェック処理を行い、第2CPUモジュール100Bが備える各ハードウェア、およびソフトウェアが正常に動作するか否かを確認する(ステップS12)。
第2CPUモジュール100Bは、第1CPUモジュール100Aから転送されるデータを受信するまで待機する。第1CPUモジュール100Aが正常に動作している間、第2演算部111Bはユーザプログラムを実行せずに待機する。第2CPUモジュール100Bは、第2メモリアクセスコントローラ120Bの機能により、第1CPUモジュール100Aから演算結果をメモリに書き込む書き込み指示を受信する。第2メモリアクセスコントローラ120Bは、分配回路部121の機能により、第1CPUモジュール100Aの第1演算部111Aによる演算結果の書き込み指示を、第2メモリ130Bに出力し、第2メモリ130Bに演算結果を書き込む(ステップS13)。第2メモリアクセスコントローラ120Bの分配回路部121は、レジスタへの書き込み指示を受信した場合、レジスタへの書き込み指示を第2演算処理部110Bの第2レジスタ112Bに転送する。これにより、第1レジスタ112Aに書き込まれたデータが、第2レジスタ112Bにも書き込まれる。
さらに、第2CPUモジュール100Bは、第1CPUモジュール100Aから転送されるデータを受信するまで待機する。第2CPUモジュール100Bは、第2メモリアクセスコントローラ120Bの機能により、第1CPUモジュール100Aから、第1CPUモジュール100Aが外部のI/Oユニットから受信した入力データをメモリに書き込む書き込み指示を受信する。第2メモリアクセスコントローラ120Bは、分配回路部121の機能により、外部のI/Oユニットからの入力データの書き込み指示を、第2メモリ130Bに出力し、第2メモリ130Bに入力データを書き込む(ステップS14)。
第2CPUモジュール100Bは、ステップS12~ステップS14の処理のセットを1サイクルの処理として実行し、当該1サイクルを終了すると、次のサイクルを開始する。
このように、PLC10において、第1CPUモジュール100Aが正常に稼働している正常状態では、多重化される第1CPUモジュール100Aと、第2CPUモジュール100Bとの間で、演算結果、および外部のI/Oユニットから受信した入力データを、同じタイミングでそれぞれのメモリ130A,130Bに書き込むことができる。第1CPUモジュール100Aの分配回路部121は、第1メモリ130Aへの書き込み指示を、第1メモリ130Aに加えて、そのまま第2CPUモジュール100Bの第2メモリ130Bにも転送する。それゆえ、第1CPUモジュール100Aの第1メモリ130Aのデータを第2CPUモジュール100Bの第2メモリ130Bが共有するために、第1メモリ130Aをスキャンする必要がない。よって、多重化されるCPUモジュール間で適切かつ効率的にデータを共有することができる。これにより、制御系CPUモジュールに異常が生じた場合には、待機系CPUモジュールに制御機能を効率良く切り替えて、運転を継続させることができる。
〔第1CPUモジュール100Aに異常が生じた場合の処理の流れ〕
図4は、第1CPUモジュール100Aに異常が生じた場合の第1CPUモジュール100Aと、第2CPUモジュール100Bとの処理の流れを示すフローチャートである。
第1CPUモジュール100Aは、初期設定処理(ステップS1)を行った後、状態チェック処理(ステップS2)を行う。第1CPUモジュール100Aは、状態チェック処理の結果、異常を検知すると(ステップS23)、異常が生じた旨の通知を、第2CPUモジュール100Bに送信する(ステップS24)。第1CPUモジュール100Aは、プログラム実行処理を行うことなく、状態チェックの処理に戻る。
第2CPUモジュール100Bは、第2メモリアクセスコントローラ120Bを介して第1CPUモジュール100Aに異常が生じている旨の通知を受信し(ステップS31)、第1CPUモジュール100Aに替わって、プログラム実行処理を行い、第2演算部111Bの機能により、ユーザプログラムに基づく演算処理を行う。
プログラム実行処理において、第2CPUモジュール100Bは、第2演算処理部110Bの第2演算部111Bの機能により、所定のユーザプログラムと、第2メモリ130Bに記憶されている所定のパラメータとを読み込んで、ユーザプログラムに基づく演算処理を行う。第2演算部111Bは、演算結果をメモリに書き込む書き込み指示を第2メモリアクセスコントローラ120Bに出力する。第2メモリアクセスコントローラ120Bは、分配回路部121の機能により、第2演算部111Bから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力し、演算結果を第2メモリ130Bに書き込む(ステップS32)。
続いて、第2CPUモジュール100Bは、第2メモリ130Bに記憶されているパラメータを、外部のI/Oユニットから受信した入力データを用いてリフレッシュする。第2CPUモジュール100Bの分配回路部121は、外部のI/Oユニットから受信した入力データを第2メモリ130Bに書き込む書き込み指示を、第2メモリ130Bに出力(ステップS33)。
第2CPUモジュール100Bは、第2演算部111Bによるユーザプログラムに基づく演算処理の結果に応じて制御対象の駆動装置を制御するイベント処理を行う(ステップS34)。第2CPUモジュール100Bは、ステップS12、およびステップS33~ステップS34の1サイクルの処理を終了すると、次のサイクルである、ステップS12、およびステップS33~ステップS34の処理を繰り返し実行する。
なお、第1CPUモジュール100Aに替わって、第2CPUモジュール100Bが制御動作を行っているときに、第1CPUモジュール100Aが異常状態から復旧した場合には、引き続き、第2CPUモジュール100Bが制御動作を継続してもよい。
また、第1CPUモジュール100Aに替わって、第2CPUモジュール100Bが制御動作を行っているときに、第1CPUモジュール100Aが異常状態から復旧した場合には、第2CPUモジュール100Bは、データ(演算結果および入力データ等)の第1CPUモジュール100Aへの転送を開始してもよい。第1CPUモジュール100Aと、第2CPUモジュール100Bとは、該データの共有が終了した後、第1CPUモジュール100Aに制御動作を切り替えて、第1CPUモジュール100Aから、第2CPUモジュール100Bへのデータの転送を開始してもよい。
上述したように、正常状態において駆動装置の動作制御を行う制御系CPUモジュールである、第1CPUモジュール100Aの第1演算処理部110Aによる演算結果、第1CPUモジュール100Aが外部のI/Oユニットから受信した入力データ、および、第1演算処理部110Aの第1レジスタ112Aに書きこまれる情報は、全て、第1CPUモジュール100Aにおいて記憶されるのと同じタイミングで、待機系CPUモジュールである第2CPUモジュール100Bとの間で共有される。これにより、第1CPUモジュール100Aに異常が生じた場合には、速やかに、且つ誤作動なく、第2CPUモジュール100Bに制御動作を切り替えて、PLC10の運転を継続させることができる。
〔実施形態2〕
本発明の実施形態2について、以下に説明する。なお、説明の便宜上、上記実施形態1にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
実施形態1では、第1CPUモジュール100A、および第2CPUモジュール100Bは、演算処理部110A,110Bとは、別に、分配回路部121を備えたメモリアクセスコントローラ120A,120Bを備えていた。分配回路部121は、これに限らず、演算処理部の回路中に形成されていてもよい。
図5は、実施形態2に係るPLC10の要部構成を示す図である。PLC10は、第1CPUモジュール200Aと、第2CPUモジュール200Bとを備えている。第1CPUモジュール200Aは、PLC10においてメインで制御対象の駆動装置の制御を行うモジュールであり、実施形態1と同様に、制御系CPUモジュールと称する。第2CPUモジュール200Bは、第1CPUモジュール200Aに異常が生じたときに、第1CPUモジュール200Aに替わって制御対象の駆動装置の制御を行うモジュールであり、実施形態1と同様に待機系CPUモジュールと称する。
第1CPUモジュール200Aは、第1演算処理部210Aを備えている。第2CPUモジュール200Bは、第2演算処理部210Bを備えている。第1演算処理部210A、および第2演算処理部210Bは、それぞれ、PLC10全体を統括的に制御可能に構成されている。
第1演算処理部210Aは、第1演算部211A、第1分配回路部(第1メモリ処理部)212A、第1データバッファ213Aを含んでいる。第2演算処理部210Bは、第2演算部211B、第2分配回路部(第2メモリ処理部)212B、第2データバッファ213Bを含んでいる。第1演算部211Aと、第1分配回路部212Aと、第1データバッファ213Aとは、1つの集積回路の中に形成されている。同様に、第2演算部211Bと、第2分配回路部212Bと、第2データバッファ213Bとは、1つの集積回路の中に形成されている。
なお、図示は省略するが、第1演算処理部210A、および第2演算処理部210Bは、それぞれ、実行した処理の内容と、当該処理が完了した旨の情報とが書きこまれるレジスタを備えている。
第1分配回路部212A、および第2分配回路部212Bは、それぞれ、実施形態1において説明した分配回路部212と同様の機能を有する。また、第1データバッファ213A、および第2データバッファ213Bは、それぞれ、実施形態1において説明したデータバッファ213と同様の機能を有する。
また、第1CPUモジュール200Aは、伝送ケーブル50と、第1演算処理部210Aとを接続する第1ドライバIC225Aを備えている。第2CPUモジュール200Bは、伝送ケーブル50と第2演算処理部210Bとを接続する第2ドライバIC225Bを備えている。第1及び第2ドライバIC225A,225Bは、第1及び第2演算処理部210A,210Bから出力されるパラレル信号を、シリアル信号に変換して伝送ケーブルを通して他方のCPUモジュールに転送するとともに、伝送ケーブル50を介して受信したシリアル信号を、パラレル信号に変換してCPUモジュールに提供する。
第1演算部211Aは、ユーザプログラムに基づく演算処理を行う。第1演算部211Aによる演算結果と、当該演算結果を第1メモリ130Aに書き込む書き込み指示は、第1分配回路部212Aに渡される。第1分配回路部212Aは、第1演算部211Aから受け取った演算結果の書き込み指示を、第1メモリ130Aに出力するとともに、第2CPUモジュール200Bの第2メモリ130Bに転送する。また、第1分配回路部212Aは、外部のI/Oユニットから受信した入力データのメモリへの書き込み指示を、第1メモリ130Aに出力するとともに、第2CPUモジュール200Bの第2メモリ130Bに転送する。また、第1分配回路部212Aは、第1演算処理部210Aのレジスタへの書き込み指示を、第2CPUモジュール200Bの第2演算処理部210Bのレジスタに転送する。
第2分配回路部212Bは、第1CPUモジュール100Aから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力する。また、第2分配回路部212Bは、第1CPUモジュール100Aから受け取った入力データの書き込み指示を、第2メモリ130Bに出力する。また、第2分配回路部212Bは、第1CPUモジュール100Aから受け取ったレジスタへの書き込み指示を、第2演算処理部210Bのレジスタに出力する。
〔ソフトウェアによる実現例〕
第1CPUモジュール100A、第2CPUモジュール100Bの各々の制御ブロック(特に、演算処理部110A,110B)、および第1CPUモジュール200A、および、第2CPUモジュール200Bの各々の制御ブロック(特に、演算処理部210A,210B)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、第1CPUモジュール100A、第2CPUモジュール100B、第1CPUモジュール200A、および、第2CPUモジュール200Bの各々は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
10 PLC(コントローラ)
50 伝送ケーブル
100A、200A 第1CPUモジュール(CPUモジュール、制御系CPUモジュール)
100B、200B 第2CPUモジュール(CPUモジュール、待機系CPUモジュール)
111A、211A 第1演算部
111B、211B 第2演算部
112A 第1レジスタ
112B 第2レジスタ
120A 第1メモリアクセスコントローラ
120B 第2メモリアクセスコントローラ
130A 第1メモリ
130B 第2メモリ
121 分配回路部(第1メモリ処理部、第2メモリ処理部)
212A 第1分配回路部(第1メモリ処理部)
212B 第2分配回路部(第2メモリ処理部)

Claims (12)

  1. CPUモジュールが多重化されたコントローラであって、
    制御系CPUモジュールと、待機系CPUモジュールと、を備え、
    前記制御系CPUモジュールは、
    ユーザプログラムに基づく演算処理を行う第1演算部と、
    前記第1演算部による演算結果が書き込まれる第1メモリと、を備え、
    前記待機系CPUモジュールは、
    前記制御系CPUモジュールに異常が生じたときにユーザプログラムに基づく演算処理を行う第2演算部と、
    第2メモリと、を備え、
    前記制御系CPUモジュールは、さらに、前記第1演算部から前記演算結果の書き込み指示を受け取り、前記第1演算部から受け取った前記書き込み指示を、前記第1メモリに出力するとともに、前記第1演算部から受け取った前記書き込み指示を、前記待機系CPUモジュールの前記第2メモリに転送する第1メモリ処理部を備えている、コントローラ。
  2. CPUモジュールが多重化されたコントローラであって、
    制御系CPUモジュールと、待機系CPUモジュールと、を備え、
    前記制御系CPUモジュールは、
    ユーザプログラムに基づく演算処理を行う第1演算部と、
    前記第1演算部による演算結果が書き込まれる第1メモリと、を備え、
    前記待機系CPUモジュールは、
    前記制御系CPUモジュールに異常が生じたときにユーザプログラムに基づく演算処理を行う第2演算部と、
    第2メモリと、を備え、
    前記制御系CPUモジュールは、さらに、前記第1演算部から受け取った前記演算結果の書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送する第1メモリ処理部を備えており、
    前記書き込み指示は、書き込まれるデータと、格納すべきアドレスの情報とを含む、コントローラ。
  3. CPUモジュールが多重化されたコントローラであって、
    制御系CPUモジュールと、待機系CPUモジュールと、を備え、
    前記制御系CPUモジュールは、
    ユーザプログラムに基づく演算処理を行う第1演算部と、
    前記第1演算部による演算結果が書き込まれる第1メモリと、を備え、
    前記待機系CPUモジュールは、
    前記制御系CPUモジュールに異常が生じたときにユーザプログラムに基づく演算処理を行う第2演算部と、
    第2メモリと、を備え、
    前記制御系CPUモジュールは、さらに、前記第1演算部から受け取った前記演算結果の書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送する第1メモリ処理部を備えており、
    前記制御系CPUモジュールは、前記第1演算部と、第1レジスタとを含む第1演算処理部を備え、
    前記待機系CPUモジュールは、前記第2演算部と、第2レジスタとを含む第2演算処理部を備え、
    前記第1メモリ処理部は、前記第1演算処理部の前記第1レジスタへの書き込み指示を、前記待機系CPUモジュールの前記第2演算処理部の前記第2レジスタに転送するコントローラ。
  4. 前記制御系CPUモジュールの前記第1メモリ処理部は、
    前記制御系CPUモジュールが外部のI/Oユニットから受信した入力データの書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送する請求項1から3のいずれか1項に記載のコントローラ。
  5. 前記制御系CPUモジュールは、メモリアクセスコントローラを備え、
    前記メモリアクセスコントローラは、前記第1メモリ処理部を含む請求項1から4のいずれか1項に記載のコントローラ。
  6. 前記第1演算部と前記第1メモリ処理部とは、1つの集積回路の中に形成されている請求項1から4のいずれか1項に記載のコントローラ。
  7. 前記待機系CPUモジュールは、第2メモリ処理部を備え、
    前記第2メモリ処理部は、前記演算結果の前記書き込み指示を前記制御系CPUモジュールから受信し、当該書き込み指示を前記第2メモリに出力する請求項1から6のいずれか1項に記載のコントローラ。
  8. 前記第2メモリ処理部は、前記制御系CPUモジュールに異常が生じたときに、前記第2演算部から受け取った演算結果の書き込み指示を、前記第2メモリに出力する請求項に記載のコントローラ。
  9. 外部の前記I/Oユニットからの前記入力データを伝送するケーブルとは別に、前記制御系CPUモジュールと前記待機系CPUモジュールとを互いに接続するケーブルであって、前記演算結果の書き込み指示を伝送するケーブルを備えている請求項に記載のコントローラ。
  10. 制御系CPUモジュールと、待機系CPUモジュールとが多重化されたコントローラの制御方法であって、
    前記制御系CPUモジュールにおいてユーザプログラムに基づく演算処理を行う演算ステップと、
    前記演算処理の演算結果の書き込み指示を、前記制御系CPUモジュールの第1メモリに出力するとともに、同じ前記書き込み指示を、前記待機系CPUモジュールの第2メモリに転送するメモリ処理ステップと、
    を含んでいる制御方法。
  11. 制御系CPUモジュールと、待機系CPUモジュールとが多重化されたコントローラの制御方法であって、
    前記制御系CPUモジュールにおいてユーザプログラムに基づく演算処理を行う演算ステップと、
    前記演算処理の演算結果の書き込み指示を、前記制御系CPUモジュールの第1メモリに出力するとともに、前記待機系CPUモジュールの第2メモリに転送するメモリ処理ステップと、を含み、
    前記書き込み指示は、書き込まれるデータと、格納すべきアドレスの情報とを含む、制御方法。
  12. 制御系CPUモジュールと、待機系CPUモジュールとが多重化されたコントローラの制御方法であって、
    前記制御系CPUモジュールは、ユーザプログラムに基づく演算処理を行う第1演算部と、第1レジスタとを含む第1演算処理部を備え、
    前記待機系CPUモジュールは、前記制御系CPUモジュールに異常が生じたときにユーザプログラムに基づく演算処理を行う第2演算部と、第2レジスタとを含む第2演算処理部を備え、
    前記制御系CPUモジュールにおいてユーザプログラムに基づく演算処理を行う演算ステップと、
    前記演算処理の演算結果の書き込み指示を、前記制御系CPUモジュールの第1メモリに出力するとともに、前記待機系CPUモジュールの第2メモリに転送するメモリ処理ステップと、
    前記第1演算処理部の前記第1レジスタへの書き込み指示を、前記第2演算処理部の前記第2レジスタに転送するステップと、
    を含んでいる制御方法。
JP2018223494A 2018-11-29 2018-11-29 コントローラ、およびコントローラの制御方法 Active JP7047728B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018223494A JP7047728B2 (ja) 2018-11-29 2018-11-29 コントローラ、およびコントローラの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018223494A JP7047728B2 (ja) 2018-11-29 2018-11-29 コントローラ、およびコントローラの制御方法

Publications (2)

Publication Number Publication Date
JP2020087179A JP2020087179A (ja) 2020-06-04
JP7047728B2 true JP7047728B2 (ja) 2022-04-05

Family

ID=70908414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018223494A Active JP7047728B2 (ja) 2018-11-29 2018-11-29 コントローラ、およびコントローラの制御方法

Country Status (1)

Country Link
JP (1) JP7047728B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031484B (zh) * 2021-03-12 2023-12-05 国网智能科技股份有限公司 一种电力巡检嵌入式边缘智能系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168635A (ja) 2011-02-10 2012-09-06 Toshiba Corp 二重化制御装置
WO2013168258A1 (ja) 2012-05-10 2013-11-14 三菱電機株式会社 待機冗長二重化装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2693627B2 (ja) * 1990-06-19 1997-12-24 株式会社東芝 プログラマブルコントローラの二重化システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168635A (ja) 2011-02-10 2012-09-06 Toshiba Corp 二重化制御装置
WO2013168258A1 (ja) 2012-05-10 2013-11-14 三菱電機株式会社 待機冗長二重化装置

Also Published As

Publication number Publication date
JP2020087179A (ja) 2020-06-04

Similar Documents

Publication Publication Date Title
US7849235B2 (en) DMA controller, node, data transfer control method and storage medium
JP7047728B2 (ja) コントローラ、およびコントローラの制御方法
US10162549B2 (en) Integrated circuit chip and method therefor
JP2007280313A (ja) 冗長化システム
JPH09330106A (ja) バックアップ機能付制御システム
US20170052521A1 (en) Programmable controller and arithmetic processing system
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
JP7271973B2 (ja) 車両制御装置、動作クロック切換方法
JP3750467B2 (ja) Usbシミュレーション装置、及び、記憶媒体
JP4666258B2 (ja) データアクセスシステム
JP7028124B2 (ja) Cpuユニット、cpuユニットの制御方法、情報処理プログラム、および記録媒体
JPH0628003B2 (ja) 多重化制御装置のデ−タ制御方法及び装置
KR100812710B1 (ko) 제어 버스를 이용한 통신 방법 및 장치
JP7325658B2 (ja) プログラム実行装置、及び、通信方法
JP2870837B2 (ja) 中央演算処理装置の調停回路
JP5604799B2 (ja) フォールトトレラントコンピュータ
CN114936131A (zh) 一种自监控对控制器
JP2008152665A (ja) 半導体集積回路の動作解析方法
EP3327521B1 (en) Duplexing process control device
JP2000347706A (ja) プラント制御装置
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
WO2018074590A1 (ja) コントローラ
JP4437386B2 (ja) 信号処理システム
JP2010026739A (ja) タイミング調整装置、タイミング調整方法、タイミング調整プログラム及び記録媒体
JP6214346B2 (ja) 二重系制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211018

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220307

R150 Certificate of patent or registration of utility model

Ref document number: 7047728

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150