JP2020087179A - Controller and controller control method - Google Patents
Controller and controller control method Download PDFInfo
- Publication number
- JP2020087179A JP2020087179A JP2018223494A JP2018223494A JP2020087179A JP 2020087179 A JP2020087179 A JP 2020087179A JP 2018223494 A JP2018223494 A JP 2018223494A JP 2018223494 A JP2018223494 A JP 2018223494A JP 2020087179 A JP2020087179 A JP 2020087179A
- Authority
- JP
- Japan
- Prior art keywords
- cpu module
- memory
- unit
- processing unit
- system cpu
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000015654 memory Effects 0.000 claims abstract description 215
- 238000012545 processing Methods 0.000 claims abstract description 137
- 238000012546 transfer Methods 0.000 claims abstract description 26
- 230000005856 abnormality Effects 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Safety Devices In Control Systems (AREA)
- Programmable Controllers (AREA)
Abstract
Description
本発明は、多重化されるCPUモジュールを備えているコントローラ、およびコントローラの制御方法に関する。 The present invention relates to a controller having CPU modules to be multiplexed, and a controller control method.
従来、PLC(プログラマブル・ロジック・コントローラ、Programmable Logic Controller)について、システムの安全性、信頼性を向上すること等を目的として、CPUモジュールを多重化する構成が知られている。これらの多重化CPUモジュールでは、何れか1つのCPUモジュールが演算処理を実行する制御系CPUモジュールとして動作し、他のCPUモジュールが待機系CPUモジュールとして動作する。 Conventionally, a PLC (Programmable Logic Controller) is known to have a configuration in which CPU modules are multiplexed for the purpose of improving system safety and reliability. In these multiplexed CPU modules, any one CPU module operates as a control system CPU module that executes arithmetic processing, and another CPU module operates as a standby system CPU module.
制御系CPUモジュールに異常が生じた場合には、待機系CPUモジュールが、異常が生じた制御系CPUモジュールに替わって演算処理を実行し、PLCによる制御動作を継続する。制御系CPUモジュールと、待機系CPUモジュールとは、制御系CPUモジュールに異常が発生した場合にシステムを継続動作することができるように、制御系CPUモジュールにおいて用いる一部のデータを待機系CPUモジュールに転送して共有化している。 When an abnormality occurs in the control system CPU module, the standby system CPU module replaces the control system CPU module in which the abnormality has occurred, executes the arithmetic processing, and continues the control operation by the PLC. The control system CPU module and the standby system CPU module use a part of the data used in the control system CPU module so that the system can continue to operate when an abnormality occurs in the control system CPU module. Transfer to and share.
一般的に、制御系CPUモジュールと、待機系CPUモジュールとの間でどのデータを共有するかは、ユーザが判断し、ユーザが手動で選択する。使用している変数の多いプログラムなどでは、共有する変数の設定ミスにより、制御動作を行うCPUモジュールの切り替え時に誤動作が生じる場合もある。 Generally, the user determines which data is shared between the control system CPU module and the standby system CPU module, and the user manually selects the data. In a program that uses a large number of variables, an erroneous operation may occur when the CPU module that performs the control operation is switched due to a mistake in setting a shared variable.
そこで、共有変数の設定ミスによる動作モジュールの切り替え時の動作異常の抑制と、共有変数設定のユーザの負担軽減のために、制御系CPUモジュールから待機系CPUモジュールに転送するデータを自動選択する技術が提案されている(例えば、特許文献1参照)。 Therefore, a technique for automatically selecting data to be transferred from the control CPU module to the standby CPU module in order to suppress an abnormal operation at the time of switching operation modules due to an error in setting a shared variable and reduce a user's burden of setting a shared variable. Has been proposed (for example, see Patent Document 1).
上述のような従来技術では、コンパイラは、入出力データを参照して、各メモリがプログラムにおいてどのような用途で使用されているかを確認し、トラッキング要と判定されたメモリのデータを初期値データと入出力データとから抽出して、制御系CPUモジュールから待機系CPUモジュールに転送している。このように、プログラムの実行後に、各メモリをスキャンしてデータを抽出し、抽出したデータを制御系CPUモジュールから待機系CPUモジュールに転送する構成では、メモリスキャンの時間が長くなる。そのため、プログラムの実行が遅れる(実行周期が長くなる)という問題がある。 In the conventional technique as described above, the compiler refers to the input/output data to confirm what purpose each memory is used in the program, and sets the data of the memory determined to be tracking-necessary as the initial value data. And the input/output data are extracted and transferred from the control system CPU module to the standby system CPU module. As described above, in the configuration in which each memory is scanned to extract data after the program is executed and the extracted data is transferred from the control system CPU module to the standby system CPU module, the memory scan time becomes long. Therefore, there is a problem that the execution of the program is delayed (the execution cycle becomes long).
本発明の一態様は、上述した事情に鑑みてなされたものであり、多重化されるCPUモジュール間で適切かつ効率的にデータを共有することができる技術を実現することを目的とする。 One aspect of the present invention has been made in view of the above circumstances, and an object of the present invention is to realize a technique capable of appropriately and efficiently sharing data between multiplexed CPU modules.
上記の課題を解決するために、本発明の一態様に係るコントローラは、CPUモジュールが多重化されたコントローラであって、制御系CPUモジュールと、待機系CPUモジュールと、を備え、前記制御系CPUモジュールは、ユーザプログラムに基づく演算処理を行う第1演算部と、前記第1演算部による演算結果が書き込まれる第1メモリと、を備え、前記待機系CPUモジュールは、前記制御系CPUモジュールに異常が生じたときにユーザプログラムに基づく演算処理を行う第2演算部と、第2メモリと、を備え、前記制御系CPUモジュールは、さらに、前記第1演算部から受け取った前記演算結果の書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送する第1メモリ処理部を備えている。 In order to solve the above problems, a controller according to an aspect of the present invention is a controller in which CPU modules are multiplexed, and includes a control system CPU module and a standby system CPU module. The module includes a first arithmetic unit that performs arithmetic processing based on a user program, and a first memory in which the arithmetic result of the first arithmetic unit is written, and the standby CPU module has an abnormality in the control CPU module. And a second memory for performing a calculation process based on a user program when the occurrence of the error occurs, the control system CPU module further writes the calculation result received from the first calculation unit. Is output to the first memory and is transferred to the second memory of the standby CPU module.
CPUモジュールが多重化されたコントローラにおいて、制御系CPUモジュールと、待機系CPUモジュールとの間で、共有変数をユーザが設定する必要がなく、ユーザの手間を低減し、設定ミスが生じるのを防ぐことができる。また、変数を共有するタイミング毎に、データをスキャンして共有する変数を抽出し転送する必要がないため、メモリスキャンに必要な時間を抑えることができる。 In a controller in which CPU modules are multiplexed, the user does not need to set a shared variable between the control CPU module and the standby CPU module, which reduces the user's trouble and prevents a setting error. be able to. Further, since it is not necessary to scan the data and extract and transfer the variable to be shared at each timing of sharing the variable, the time required for the memory scan can be suppressed.
したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。また、CPUモジュールの切り替えを行う際に、必要なデータが共有されていないという事がなく、CPUモジュールの切り替えによる誤作動を抑制し、効率良くCPUモジュールの切り替えを行うことができる。 Therefore, it is possible to efficiently share necessary data among the CPU modules to be multiplexed. Further, when the CPU modules are switched, necessary data is not shared, and malfunctions due to the switching of the CPU modules can be suppressed and the CPU modules can be switched efficiently.
本発明の一態様に係るコントローラにおいて、前記制御系CPUモジュールの前記第1メモリ処理部は、前記制御系CPUモジュールが外部のI/Oユニットから受信した入力データの書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送してもよい。 In the controller according to the aspect of the present invention, the first memory processing unit of the control system CPU module may be configured to send an input data write instruction received by the control system CPU module from an external I/O unit to the first memory. Output to the second memory of the standby CPU module.
前記の構成によれば、前記制御系CPUモジュールが、外部のI/Oユニットから受信した入力データを、制御系CPUモジュールの第1メモリに書き込むのと同じタイミングで、待機系CPUモジュールと共有することができる。制御系CPUモジュールは、入力データを共有するために、改めて第1メモリをスキャンする必要がない。したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。 According to the above configuration, the control system CPU module shares the input data received from the external I/O unit with the standby system CPU module at the same timing as writing to the first memory of the control system CPU module. be able to. The control system CPU module does not need to scan the first memory again in order to share the input data. Therefore, it is possible to efficiently share necessary data among the CPU modules to be multiplexed.
本発明の一態様に係るコントローラにおいて、前記制御系CPUモジュールは、メモリアクセスコントローラを備え、前記メモリアクセスコントローラは、前記第1メモリ処理部を含んでもよい。 In the controller according to the aspect of the present invention, the control system CPU module may include a memory access controller, and the memory access controller may include the first memory processing unit.
前記の構成によれば、メモリアクセスコントローラが、第1メモリへの出力と、待機系CPUモジュールへの転送とを分配してくれるので、第1演算部は書き込み処理を待たずに次の演算処理を実行することができる。 According to the above configuration, the memory access controller distributes the output to the first memory and the transfer to the standby system CPU module, so that the first arithmetic unit does not wait for the write processing to perform the next arithmetic processing. Can be executed.
本発明の一態様に係るコントローラにおいて、前記第1演算部と前記第1メモリ処理部とは、1つの集積回路の中に形成されていてもよい。 In the controller according to the aspect of the present invention, the first arithmetic unit and the first memory processing unit may be formed in one integrated circuit.
前記の構成によれば、第1メモリ処理部が、第1メモリへの出力と、待機系CPUモジュールへの転送とを分配してくれるので、第1演算部は書き込み処理を待たずに次の演算処理を実行することができる。 According to the above configuration, the first memory processing unit distributes the output to the first memory and the transfer to the standby CPU module, so that the first arithmetic unit does not wait for the writing process and then Arithmetic processing can be executed.
本発明の一態様に係るコントローラにおいて、前記待機系CPUモジュールは、第2メモリ処理部を備え、前記第2メモリ処理部は、前記演算結果の前記書き込み指示を前記制御系CPUモジュールから受信し、当該書き込み指示を前記第2メモリに出力してもよい。 In the controller according to the aspect of the present invention, the standby CPU module includes a second memory processing unit, and the second memory processing unit receives the write instruction of the calculation result from the control CPU module. The write instruction may be output to the second memory.
前記の構成によれば、第2メモリ処理部が第2メモリへの書き込みを実行するため、第1メモリ処理部は、第2メモリ処理部に書き込み指示を受け渡すだけで良く、第2メモリへの書き込み処理を待たなくてよい。したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。 According to the above configuration, since the second memory processing unit executes writing to the second memory, the first memory processing unit only needs to deliver the write instruction to the second memory processing unit, and It is not necessary to wait for the writing process of. Therefore, it is possible to efficiently share necessary data among the CPU modules to be multiplexed.
本発明の一態様に係るコントローラにおいて、前記第2メモリ処理部は、前記制御系CPUモジュールに異常が生じたときに、前記第2演算部から受け取った演算結果の書き込み指示を、前記第2メモリに出力してもよい。 In the controller according to the aspect of the present invention, the second memory processing unit may issue a write instruction of a calculation result received from the second calculation unit when an abnormality occurs in the control system CPU module, to the second memory. May be output to.
前記の構成によれば、制御系CPUモジュールに異常が生じたときには、待機系CPUモジュール内で処理を完了することができ、コントローラの運転を効率良く継続することができる。 According to the above configuration, when an abnormality occurs in the control system CPU module, the processing can be completed in the standby system CPU module, and the operation of the controller can be efficiently continued.
本発明の一態様に係るコントローラにおいて、前記制御系CPUモジュールは、前記第1演算部と、第1レジスタとを含む第1演算処理部を備え、前記待機系CPUモジュールは、前記第2演算部と、第2レジスタとを含む第2演算処理部を備え、前記第1メモリ処理部は、前記第1演算処理部の前記第1レジスタへの書き込み指示を、前記待機系CPUモジュールの前記第2演算処理部の前記第2レジスタに転送してもよい。 In the controller according to one aspect of the present invention, the control system CPU module includes a first arithmetic processing unit including the first arithmetic unit and a first register, and the standby CPU module includes the second arithmetic unit. And a second register including a second register, wherein the first memory processing unit issues a write instruction to the first register of the first calculation processing unit to the second CPU of the standby system CPU module. It may be transferred to the second register of the arithmetic processing unit.
前記の構成によれば、制御系CPUモジュールの第1レジスタに書き込まれる情報が、待機系CPUモジュールの第2レジスタに共有される。これにより、ユーザプログラムに基づく演算処理に必要なレジスタに保存される中間データを、待機系CPUモジュールと共有することができる。待機系CPUモジュールは、制御系CPUモジュールによって実行が完了した処理を適切に知ることができる。したがって、制御系CPUモジュールに異常が生じ、待機系CPUモジュールに動作が切り替わったときには、待機系CPUモジュールは、ユーザプログラムにおける適切な位置から次の処理を実行することができる。 According to the above configuration, the information written in the first register of the control CPU module is shared by the second register of the standby CPU module. As a result, the intermediate data stored in the register necessary for the arithmetic processing based on the user program can be shared with the standby CPU module. The standby CPU module can appropriately know the processing executed by the control CPU module. Therefore, when an abnormality occurs in the control system CPU module and the operation is switched to the standby system CPU module, the standby system CPU module can execute the next process from an appropriate position in the user program.
本発明の一態様に係るコントローラは、外部の前記I/Oユニットからの前記入力データを伝送するケーブルとは別に、前記制御系CPUモジュールと前記待機系CPUモジュールとを互いに接続するケーブルであって、前記演算結果の書き込み指示を伝送するケーブルを備えていてもよい。 A controller according to an aspect of the present invention is a cable that connects the control system CPU module and the standby system CPU module to each other separately from a cable that transmits the input data from the external I/O unit. A cable for transmitting the instruction to write the calculation result may be provided.
前記の構成によれば、入力データを伝送するケーブルとは別のケーブルを介して書き込み指示を伝送することができ、データの伝送(すなわち共有)に遅延が生じることを抑制することができる。 According to the above configuration, the write instruction can be transmitted via a cable different from the cable that transmits the input data, and it is possible to suppress the occurrence of delay in data transmission (that is, sharing).
上記の課題を解決するために、本発明の一態様に係る制御方法は、制御系CPUモジュールと、待機系CPUモジュールとが多重化されたコントローラの制御方法であって、前記制御系CPUモジュールにおいてユーザプログラムに基づく演算処理を行う演算ステップと、前記演算処理の演算結果の書き込み指示を、前記制御系CPUモジュールの第1メモリに出力するとともに、前記待機系CPUモジュールの第2メモリに転送するメモリ処理ステップと、を含んでいる。 In order to solve the above problems, a control method according to an aspect of the present invention is a control method for a controller in which a control system CPU module and a standby system CPU module are multiplexed, and A memory for outputting an operation step of performing an operation process based on a user program and an instruction for writing an operation result of the operation process to a first memory of the control system CPU module and transferring the instruction to a second memory of the standby system CPU module. And a processing step.
CPUモジュールが多重化されたコントローラにおいて、制御系CPUモジュールと、待機系CPUモジュールとの間で、共有変数をユーザが設定する必要がなく、ユーザの手間を低減し、設定ミスが生じるのを防ぐことができる。また、変数を共有するタイミング毎に、データをスキャンして共有する変数を抽出し転送する必要がないため、メモリスキャンに必要な時間を抑えることができる。 In a controller in which CPU modules are multiplexed, the user does not need to set a shared variable between the control CPU module and the standby CPU module, which reduces the user's trouble and prevents a setting error. be able to. Further, since it is not necessary to scan the data and extract and transfer the variable to be shared at each timing of sharing the variable, the time required for the memory scan can be suppressed.
したがって、多重化されるCPUモジュール間で効率的に必要なデータを共有することができる。また、CPUモジュールの切り替えを行う際に、必要なデータが共有されていないという事がなく、CPUモジュールの切り替えによる誤作動を抑制し、効率良くCPUモジュールの切り替えを行うことができる。 Therefore, it is possible to efficiently share necessary data among the CPU modules to be multiplexed. Further, when the CPU modules are switched, necessary data is not shared, and malfunctions due to the switching of the CPU modules can be suppressed and the CPU modules can be switched efficiently.
本発明の一態様によれば、多重化されるCPUモジュール間で適切かつ効率的にデータを共有することができるとの効果を奏する。 According to one aspect of the present invention, there is an effect that data can be appropriately and efficiently shared between multiplexed CPU modules.
以下、本発明の一側面に係る実施形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。 Hereinafter, an embodiment according to one aspect of the present invention (hereinafter, also referred to as “this embodiment”) will be described with reference to the drawings.
§1 適用例
図1を用いて、本発明が適用される場面の一例について説明する。図1は、本実施形態に係るPLC(コントローラ)10の要部構成を示すブロック図である。PLC10は、多重化される複数のCPUモジュール100A,100Bを備えて構成されている。PLC10は、複数の上位装置、および制御対象である複数のI/Oユニット(入力/出力ユニット)に接続されている。I/Oユニットは、例えば、工作機械、およびベルトコンベアのサーボモータ等の駆動装置の制御ユニット、または、駆動装置の稼働状態に係るセンサデータ等を収集し、稼働状態を示すデータを生成するセンサユニットである。上位装置は、例えば、ユーザプログラムの編集等を行うユーザPC(パーソナルコンピュータ)またはサーバである。
§1 Application Example An example of a situation in which the present invention is applied will be described with reference to FIG. FIG. 1 is a block diagram showing a main configuration of a PLC (controller) 10 according to this embodiment. The
PLC10は、複数のCPUモジュール100A,100Bの何れか1つが制御系CPUモジュールとして機能する。PLC10は、制御系CPUモジュールにおいて、I/Oユニットからの入力データに基づいて、制御対象のI/Oユニットに応じたユーザプログラムを実行することにより、駆動装置に対する動作制御指示を生成する。
In the
複数のCPUモジュール100A,100Bのそれぞれには、複数の駆動装置のそれぞれを制御するための複数のプログラムが、プログラムメモリ140A,140Bに予め書きこまれている。また、これらのプログラムで使用される初期設定データは、内部のメモリ130A,130Bに予め書きこまれている。
In each of the plurality of
PLC10は、正常状態においては、制御系CPUモジュールがユーザプログラムに基づいて演算処理を行い、演算結果に従って駆動装置の動作を制御する。正常状態においては、待機系CPUモジュールは、ユーザプログラムに基づいた演算処理を行わない。
In the
PLC10において、制御系CPUモジュールに異常が生じた場合、多重化される他のCPUモジュールである待機系CPUモジュールが制御系CPUモジュールに替わって、駆動装置の動作制御を行うことで、PLC10は、制御動作を継続する。制御系CPUモジュールと、待機系CPUモジュールとの間では、制御系CPUモジュールに異常が発生した場合には、制御動作を行うCPUモジュールの切り替えを効率的に行うことができるように、データが共有されている。
In the
制御系CPUモジュールは、I/Oユニットからの入力データをI/Oメモリ(単にメモリとも称する)に書き込む指示を自モジュールのI/Oメモリに出力するとともに、待機系CPUモジュールに転送する。また、制御系CPUモジュールは、演算処理を行った演算結果をI/Oメモリに書き込む指示を自モジュールのメモリに出力するとともに、待機系CPUモジュールに転送する。 The control CPU module outputs an instruction to write the input data from the I/O unit to the I/O memory (simply referred to as a memory) to the I/O memory of its own module and transfers it to the standby CPU module. Further, the control CPU module outputs an instruction to write the calculation result of the arithmetic processing to the I/O memory to the memory of its own module and transfers it to the standby CPU module.
このように、制御系CPUモジュールと、待機系CPUモジュールとでは、演算結果(および入力データ)が同時にそれぞれのメモリに書き込まれる。これにより、転送するデータを抽出する為にメモリをスキャンする必要がなく、効率的に必要なデータを共有することができる。また、制御系CPUモジュールと、待機系CPUモジュールとの間で演算結果を常に共有することができ、CPUモジュールの切り替えを効率的に行うことができるため、PLC10は、遅延なく制御動作を継続することができる。
In this way, in the control system CPU module and the standby system CPU module, the calculation result (and the input data) are simultaneously written in the respective memories. As a result, it is not necessary to scan the memory to extract the data to be transferred, and the necessary data can be shared efficiently. Moreover, since the calculation result can be always shared between the control system CPU module and the standby system CPU module, and the CPU module can be efficiently switched, the
§2 構成例
〔実施形態1〕
図1及び図2に基づいて、本発明の実施形態1に係るPLC10の構成について、詳細に説明する。図1は、PLC10の要部構成を示すブロック図である。
§2 Configuration example [Embodiment 1]
The configuration of the
図1に示すように、PLC10は、第1CPUモジュール100Aおよび第2CPUモジュール100Bを含んでいる。第1CPUモジュール100Aと第2CPUモジュール100Bとは、PLC10において多重化されている。なお、図1では、PLC10が二重化される第1CPUモジュール100Aと第2CPUモジュール100Bとを含む例を示しているが、これに限らず、3つ以上の複数の多重化されるCPUを備えている構成であってもよい。第1CPUモジュール100Aおよび第2CPUモジュール100Bの各々は、PLC10全体を統括的に制御可能に構成されている。
As shown in FIG. 1, the
第1CPUモジュール100Aは、正常状態においてI/Oユニットからの入力データを取得して、ユーザプログラムに基づく演算処理を実行する制御系モジュールとして機能する。第1CPUモジュール100Aを制御系CPUモジュールとも称する。第2CPUモジュール100Bは、第1CPUモジュール100Aに異常が生じた場合に、第1CPUモジュール100Aに替わって制御動作を実行する待機系モジュールとして機能する。第2CPUモジュール100Bを待機系CPUモジュールとも称する。第1CPUモジュール100Aが正常に動作している間は、第2CPUモジュール100Bは、制御動作に必要なユーザプログラムに基づく演算処理を実行しない。
The
第1CPUモジュール100Aと、第2CPUモジュール100Bとは、互いに同一の構成を有し、それぞれ、演算処理部110、メモリアクセスコントローラ120、I/Oメモリ130を備えている。また、第1CPUモジュール100Aと、第2CPUモジュール100Bとは、プログラムメモリ140、およびMPU(Micro Processor Unit)150を備えている。
The
演算処理部110は、1つの集積回路(例えばASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array))で形成されているプロセッサである。メモリアクセスコントローラ120は、1つの集積回路で形成されている。なお、演算処理部110およびメモリアクセスコントローラ120は、それぞれ複数の集積回路を含んでもよい。 The arithmetic processing unit 110 is a processor formed of one integrated circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)). The memory access controller 120 is formed by one integrated circuit. The arithmetic processing unit 110 and the memory access controller 120 may each include a plurality of integrated circuits.
第1CPUモジュール100Aと、第2CPUモジュール100Bとは、それぞれ、EtherNet(登録商標)ケーブル等の、外部のI/Oユニットからの入力データを伝送するケーブルに接続されている。また、第1CPUモジュール100Aと、第2CPUモジュール100Bとは、外部のI/Oユニットからの入力データを伝送するケーブルとは別に、互いに伝送ケーブル50で接続されている。第1CPUモジュール100Aと、第2CPUモジュール100Bとは、伝送ケーブル50を介して、外部のI/Oユニットからの入力データ、および演算処理部110による演算結果を共有する。
The
MPU150は、上位装置との通信を制御する。MPU150は、例えばサーバからユーザプログラムを取得し、ユーザプログラムをプログラムメモリ140に保存する。 The MPU 150 controls communication with a host device. The MPU 150 acquires the user program from the server, for example, and stores the user program in the program memory 140.
プログラムメモリ140には、制御対象の駆動装置を制御するための制御プログラムであるユーザプログラムが格納されている。ユーザプログラムは、例えば、ラダー言語等で記述された制御プログラム等である。 The program memory 140 stores a user program that is a control program for controlling the drive device to be controlled. The user program is, for example, a control program written in a ladder language or the like.
第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とそれぞれ称する。
The arithmetic processing unit of the
第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に出力する。
The
また、第1CPUモジュール100Aは、第1演算処理部110Aによる演算結果も、第1メモリ130Aに保存する。具体的には、第1CPUモジュール100Aは、第1演算処理部110Aの第1演算部111Aの演算結果を第1メモリ130Aに書き込むため、演算結果の書き込み指示を、第1メモリアクセスコントローラ120Aに出力する。第1メモリアクセスコントローラ120Aは、第1演算処理部110Aが出力した演算結果の書き込み指示を第1メモリ130Aに出力する。
The
また、第1CPUモジュール100Aは、I/Oユニットからの入力データと、第1演算処理部110Aによる演算結果と、をそれぞれ第1メモリ130Aに書き込むタイミングで、第2CPUモジュール100Bに転送する。
Further, the
第1演算処理部110Aは、第1演算部111Aと、第1レジスタ112Aとを備えている。同様に、第2演算処理部110Bは、第2演算部111Bと、第2レジスタ112Bとを備えている。
The first
第1演算部111Aは、第1プログラムメモリ140Aに格納されているユーザプログラムと、第1メモリ130Aに保存されているI/Oユニットからの入力データと、を読み込んで、当該ユーザプログラムに基づく演算処理を行う。第1レジスタ112Aには、第1演算処理部110Aによって実行された処理の内容(ユーザプログラムの内部で使用される変数)が書きこまれる。
The
第2演算部111Bは、第1CPUモジュール100Aに異常が生じたときに、第2プログラムメモリ140Bに格納されているユーザプログラムと、第2メモリ130Bに保存されているI/Oユニットからの入力データと、を読み込んで、当該ユーザプログラムに基づく演算処理を行う。第2レジスタ112Bには、第2演算処理部110Bによって実行された処理の内容(ユーザプログラムの内部で使用される変数)が書きこまれる。
The
図2は、図1におけるメモリアクセスコントローラ120A,120Bの要部構成を示すブロック図である。メモリアクセスコントローラ120A,120Bは、それぞれ、分配回路部121、データバッファ122、およびデータトランシーバアンドレシーバIC123を含んでいる。第1メモリアクセスコントローラ120Aの分配回路部121は、第1メモリ処理部121Aとも称される。第2メモリアクセスコントローラ120Bの分配回路部121は、第2メモリ処理部121Bとも称される。
FIG. 2 is a block diagram showing a main configuration of the
第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とに分配する。
The first
具体的には、第1メモリアクセスコントローラ120Aの分配回路部121は、第1演算部111Aからの演算結果の書き込み指示を、第1メモリアクセスコントローラ120Aのデータバッファ122に出力する。データトランシーバアンドレシーバIC123は、CPUモジュール100A,100B間の通信を制御する。第1メモリアクセスコントローラ120AのデータトランシーバアンドレシーバIC123は、データバッファ122に蓄えられた演算結果の書き込み指示を、伝送ケーブル50を介して、第2CPUモジュール110Bの第2メモリアクセスコントローラ120Bに伝送する。
Specifically, the
また、第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に入力されてもよい。
Further, the
また、第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に転送する。
Further, the
第2CPUモジュール110Bは、伝送ケーブル50を介して伝送された、入力データの書き込み指示、演算結果の書き込み指示、及び、レジスタへの書き込み指示を第2メモリアクセスコントローラ120Bによって受信する。
The second CPU module 110B receives, via the second
第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に出力する。
The second
第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に出力する。
The
第2メモリアクセスコントローラ120Bの分配回路部121は、第1CPUモジュール100Aに異常が生じたときには、第2演算処理部110Bから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力する。
When an abnormality occurs in the
〔CPUモジュール間におけるデータ転送処理の流れについて〕
図3は、第1CPUモジュール100Aと、第2CPUモジュール100Bとの間のデータ転送処理の流れを示すフローチャートである。
[Flow of data transfer processing between CPU modules]
FIG. 3 is a flowchart showing a flow of data transfer processing between the
第1CPUモジュール100A、および第2CPUモジュール100Bは、PLC10の電源ONの後、I/Oメモリ130A,130Bの初期設定をそれぞれ行う(ステップS1、S11)。初期設定において、I/Oメモリ130A,130Bには、各ユーザプログラムで使用されるパラメータの初期値が登録される。
The
〔第1CPUモジュール100Aの処理サイクル〕
続いて、第1CPUモジュール100Aは、状態チェック処理、プログラム実行処理、メモリリフレッシュ、およびイベント処理を、この順でセットで、繰り返し実行する。この、状態チェック処理、プログラム実行処理、メモリリフレッシュ、およびイベント処理のセットを「1サイクル」と称する。
[Processing cycle of the
Subsequently, the
第1CPUモジュール100Aは、状態チェック処理において、自モジュールが備える各ハードウェア、およびソフトウェアが正常に動作するか否かを確認する(ステップS2)。
In the status check process, the
続いて、第1CPUモジュール100Aは、プログラム実行処理において、第1演算処理部110Aの第1演算部111Aの機能により、所定のユーザプログラムと、第1メモリ130Aに記憶されている、当該ユーザプログラムの内部で使用されるパラメータとを読み込んで、ユーザプログラムに基づく演算処理を行う。第1演算部111Aは、演算結果をI/Oメモリに書き込む書き込み指示を、第1メモリアクセスコントローラ120Aに出力する。第1メモリアクセスコントローラ120Aは、分配回路部121の機能により、第1演算部111Aから受け取った演算結果の書き込み指示を、第1メモリ130Aに出力し、演算結果を第1メモリ130Aに書き込む。
Subsequently, in the program execution process, the
また、分配回路部121は、第1演算部111Aから受け取った演算結果(Oデータ)の書き込み指示を、第1メモリ130Aに出力するとともに、当該書き込み指示(Oデータを含む)を、データバッファ122、およびデータトランシーバアンドレシーバIC123を介して、第2CPUモジュール110Aの第2メモリアクセスコントローラ120Bに転送する(ステップS3)。
Further, the
続いて、第1CPUモジュール100Aは、第1メモリ130Aに記憶されているパラメータを、外部のI/Oユニットから受信した入力データ(Iデータ)を用いてリフレッシュする。第1CPUモジュール100Aの分配回路部121は、外部のI/Oユニットから受信した入力データを第1メモリ130Aに書き込む書き込み指示を、第1メモリ130Aに出力するとともに、当該書き込み指示(Iデータを含む)を、データバッファ122、およびデータトランシーバアンドレシーバIC123を介して、第2CPUモジュール110Aの第2メモリアクセスコントローラ120Bに転送する(ステップS4)。
Subsequently, the
第1CPUモジュール100Aは、上位装置との通信を行うイベント処理を行う(ステップS5)。例えば、外部のI/Oユニットから受信した入力データの記録又は解析のために、上位装置であるサーバに、特定の入力データを送信する。第1CPUモジュール100Aは、ステップS2〜ステップS5の1サイクルの処理を終了すると、次のサイクルを開始する。また、図示はしていないが、第1演算処理部110Aは、例えばユーザプログラムの実行処理時に、当該処理の内容を第1レジスタ112Aに出力するとともに、第2メモリアクセスコントローラ120Bを介して、第2CPUモジュール100Bの第2レジスタ112Bに転送する。
The
〔第2CPUモジュール100Bの処理〕
続いて、第1CPUモジュール100Aにおける1サイクルの処理中の、第2CPUモジュール100Bの処理について説明する。
[Processing of
Next, the processing of the
初期設定の後、第2CPUモジュール100Bは、状態チェック処理を行い、第2CPUモジュール100Bが備える各ハードウェア、およびソフトウェアが正常に動作するか否かを確認する(ステップS12)。
After the initial setting, the
第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にも書き込まれる。
The
さらに、第2CPUモジュール100Bは、第1CPUモジュール100Aから転送されるデータを受信するまで待機する。第2CPUモジュール100Bは、第2メモリアクセスコントローラ120Bの機能により、第1CPUモジュール100Aから、第1CPUモジュール100Aが外部のI/Oユニットから受信した入力データをメモリに書き込む書き込み指示を受信する。第2メモリアクセスコントローラ120Bは、分配回路部121の機能により、外部のI/Oユニットからの入力データの書き込み指示を、第2メモリ130Bに出力し、第2メモリ130Bに入力データを書き込む(ステップS14)。
Further, the
第2CPUモジュール100Bは、ステップS12〜ステップS14の処理のセットを1サイクルの処理として実行し、当該1サイクルを終了すると、次のサイクルを開始する。
The
このように、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モジュールに制御機能を効率良く切り替えて、運転を継続させることができる。
As described above, in the
〔第1CPUモジュール100Aに異常が生じた場合の処理の流れ〕
図4は、第1CPUモジュール100Aに異常が生じた場合の第1CPUモジュール100Aと、第2CPUモジュール100Bとの処理の流れを示すフローチャートである。
[Process Flow When Abnormality Occurs in
FIG. 4 is a flowchart showing the flow of processing by the
第1CPUモジュール100Aは、初期設定処理(ステップS1)を行った後、状態チェック処理(ステップS2)を行う。第1CPUモジュール100Aは、状態チェック処理の結果、異常を検知すると(ステップS23)、異常が生じた旨の通知を、第2CPUモジュール100Bに送信する(ステップS24)。第1CPUモジュール100Aは、プログラム実行処理を行うことなく、状態チェックの処理に戻る。
The
第2CPUモジュール100Bは、第2メモリアクセスコントローラ120Bを介して第1CPUモジュール100Aに異常が生じている旨の通知を受信し(ステップS31)、第1CPUモジュール100Aに替わって、プログラム実行処理を行い、第2演算部111Bの機能により、ユーザプログラムに基づく演算処理を行う。
The
プログラム実行処理において、第2CPUモジュール100Bは、第2演算処理部110Bの第2演算部111Bの機能により、所定のユーザプログラムと、第2メモリ130Bに記憶されている所定のパラメータとを読み込んで、ユーザプログラムに基づく演算処理を行う。第2演算部111Bは、演算結果をメモリに書き込む書き込み指示を第2メモリアクセスコントローラ120Bに出力する。第2メモリアクセスコントローラ120Bは、分配回路部121の機能により、第2演算部111Bから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力し、演算結果を第2メモリ130Bに書き込む(ステップS32)。
In the program execution process, the
続いて、第2CPUモジュール100Bは、第2メモリ130Bに記憶されているパラメータを、外部のI/Oユニットから受信した入力データを用いてリフレッシュする。第2CPUモジュール100Bの分配回路部121は、外部のI/Oユニットから受信した入力データを第2メモリ130Bに書き込む書き込み指示を、第2メモリ130Bに出力(ステップS33)。
Subsequently, the
第2CPUモジュール100Bは、第2演算部111Bによるユーザプログラムに基づく演算処理の結果に応じて制御対象の駆動装置を制御するイベント処理を行う(ステップS34)。第2CPUモジュール100Bは、ステップS12、およびステップS33〜ステップS34の1サイクルの処理を終了すると、次のサイクルである、ステップS12、およびステップS33〜ステップS34の処理を繰り返し実行する。
The
なお、第1CPUモジュール100Aに替わって、第2CPUモジュール100Bが制御動作を行っているときに、第1CPUモジュール100Aが異常状態から復旧した場合には、引き続き、第2CPUモジュール100Bが制御動作を継続してもよい。
When the
また、第1CPUモジュール100Aに替わって、第2CPUモジュール100Bが制御動作を行っているときに、第1CPUモジュール100Aが異常状態から復旧した場合には、第2CPUモジュール100Bは、データ(演算結果および入力データ等)の第1CPUモジュール100Aへの転送を開始してもよい。第1CPUモジュール100Aと、第2CPUモジュール100Bとは、該データの共有が終了した後、第1CPUモジュール100Aに制御動作を切り替えて、第1CPUモジュール100Aから、第2CPUモジュール100Bへのデータの転送を開始してもよい。
Further, when the
上述したように、正常状態において駆動装置の動作制御を行う制御系CPUモジュールである、第1CPUモジュール100Aの第1演算処理部110Aによる演算結果、第1CPUモジュール100Aが外部のI/Oユニットから受信した入力データ、および、第1演算処理部110Aの第1レジスタ112Aに書きこまれる情報は、全て、第1CPUモジュール100Aにおいて記憶されるのと同じタイミングで、待機系CPUモジュールである第2CPUモジュール100Bとの間で共有される。これにより、第1CPUモジュール100Aに異常が生じた場合には、速やかに、且つ誤作動なく、第2CPUモジュール100Bに制御動作を切り替えて、PLC10の運転を継続させることができる。
As described above, the
〔実施形態2〕
本発明の実施形態2について、以下に説明する。なお、説明の便宜上、上記実施形態1にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
[Embodiment 2]
The second embodiment of the present invention will be described below. For convenience of description, members having the same functions as those described in the first embodiment will be designated by the same reference numerals, and the description thereof will not be repeated.
実施形態1では、第1CPUモジュール100A、および第2CPUモジュール100Bは、演算処理部110A,110Bとは、別に、分配回路部121を備えたメモリアクセスコントローラ120A,120Bを備えていた。分配回路部121は、これに限らず、演算処理部の回路中に形成されていてもよい。
In the first embodiment, the
図5は、実施形態2に係るPLC10の要部構成を示す図である。PLC10は、第1CPUモジュール200Aと、第2CPUモジュール200Bとを備えている。第1CPUモジュール200Aは、PLC10においてメインで制御対象の駆動装置の制御を行うモジュールであり、実施形態1と同様に、制御系CPUモジュールと称する。第2CPUモジュール200Bは、第1CPUモジュール200Aに異常が生じたときに、第1CPUモジュール200Aに替わって制御対象の駆動装置の制御を行うモジュールであり、実施形態1と同様に待機系CPUモジュールと称する。
FIG. 5 is a diagram showing a main configuration of the
第1CPUモジュール200Aは、第1演算処理部210Aを備えている。第2CPUモジュール200Bは、第2演算処理部210Bを備えている。第1演算処理部210A、および第2演算処理部210Bは、それぞれ、PLC10全体を統括的に制御可能に構成されている。
The
第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つの集積回路の中に形成されている。
The first
なお、図示は省略するが、第1演算処理部210A、および第2演算処理部210Bは、それぞれ、実行した処理の内容と、当該処理が完了した旨の情報とが書きこまれるレジスタを備えている。
Although not shown, each of the first
第1分配回路部212A、および第2分配回路部212Bは、それぞれ、実施形態1において説明した分配回路部212と同様の機能を有する。また、第1データバッファ213A、および第2データバッファ213Bは、それぞれ、実施形態1において説明したデータバッファ213と同様の機能を有する。
The first
また、第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モジュールに提供する。
The
第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のレジスタに転送する。
The first
第2分配回路部212Bは、第1CPUモジュール100Aから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力する。また、第2分配回路部212Bは、第1CPUモジュール100Aから受け取った入力データの書き込み指示を、第2メモリ130Bに出力する。また、第2分配回路部212Bは、第1CPUモジュール100Aから受け取ったレジスタへの書き込み指示を、第2演算処理部210Bのレジスタに出力する。
The second
〔ソフトウェアによる実現例〕
第1CPUモジュール100A、第2CPUモジュール100Bの各々の制御ブロック(特に、演算処理部110A,110B)、および第1CPUモジュール200A、および、第2CPUモジュール200Bの各々の制御ブロック(特に、演算処理部210A,210B)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
[Example of software implementation]
Each control block of the
後者の場合、第1CPUモジュール100A、第2CPUモジュール100B、第1CPUモジュール200A、および、第2CPUモジュール200Bの各々は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
In the latter case, each of the
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。 The present invention is not limited to the above-described embodiments, and various modifications can be made within the scope of the claims, and the embodiments obtained by appropriately combining the technical means disclosed in the different embodiments. Is also included in the technical scope of the present invention.
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メモリ処理部)
10 PLC (Controller)
50
100B, 200B Second CPU module (CPU module, standby CPU module)
111A, 211A
212A First distribution circuit unit (first memory processing unit)
212B Second distribution circuit unit (second memory processing unit)
Claims (9)
制御系CPUモジュールと、待機系CPUモジュールと、を備え、
前記制御系CPUモジュールは、
ユーザプログラムに基づく演算処理を行う第1演算部と、
前記第1演算部による演算結果が書き込まれる第1メモリと、を備え、
前記待機系CPUモジュールは、
前記制御系CPUモジュールに異常が生じたときにユーザプログラムに基づく演算処理を行う第2演算部と、
第2メモリと、を備え、
前記制御系CPUモジュールは、さらに、前記第1演算部から受け取った前記演算結果の書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送する第1メモリ処理部を備えている、コントローラ。 A controller in which CPU modules are multiplexed,
A control system CPU module and a standby system CPU module,
The control system CPU module is
A first arithmetic unit that performs arithmetic processing based on a user program;
A first memory in which a calculation result by the first calculation unit is written,
The standby system CPU module is
A second arithmetic unit that performs arithmetic processing based on a user program when an abnormality occurs in the control system CPU module;
A second memory,
The control CPU module further outputs a write instruction of the calculation result received from the first calculation unit to the first memory and transfers the write instruction to the second memory of the standby CPU module. A controller that includes a processing unit.
前記制御系CPUモジュールが外部のI/Oユニットから受信した入力データの書き込み指示を、前記第1メモリに出力するとともに、前記待機系CPUモジュールの前記第2メモリに転送する請求項1に記載のコントローラ。 The first memory processing unit of the control system CPU module is
2. The control system CPU module outputs a write instruction of input data received from an external I/O unit to the first memory and transfers the write instruction to the second memory of the standby system CPU module. controller.
前記メモリアクセスコントローラは、前記第1メモリ処理部を含む請求項1又は2に記載のコントローラ。 The control system CPU module includes a memory access controller,
The controller according to claim 1, wherein the memory access controller includes the first memory processing unit.
前記第2メモリ処理部は、前記演算結果の前記書き込み指示を前記制御系CPUモジュールから受信し、当該書き込み指示を前記第2メモリに出力する請求項1から4のいずれか1項に記載のコントローラ。 The standby CPU module includes a second memory processing unit,
The controller according to claim 1, wherein the second memory processing unit receives the write instruction of the calculation result from the control system CPU module and outputs the write instruction to the second memory. ..
前記第1演算部と、第1レジスタとを含む第1演算処理部を備え、
前記待機系CPUモジュールは、
前記第2演算部と、第2レジスタとを含む第2演算処理部を備え、
前記第1メモリ処理部は、
前記第1演算処理部の前記第1レジスタへの書き込み指示を、前記待機系CPUモジュールの前記第2演算処理部の前記第2レジスタに転送する請求項1から6の何れか1項に記載のコントローラ。 The control system CPU module is
A first arithmetic processing unit including the first arithmetic unit and a first register;
The standby system CPU module is
A second arithmetic processing unit including the second arithmetic unit and a second register;
The first memory processing unit,
7. The write instruction to the first register of the first arithmetic processing unit is transferred to the second register of the second arithmetic processing unit of the standby system CPU module, according to claim 1. controller.
前記制御系CPUモジュールにおいてユーザプログラムに基づく演算処理を行う演算ステップと、
前記演算処理の演算結果の書き込み指示を、前記制御系CPUモジュールの第1メモリに出力するとともに、前記待機系CPUモジュールの第2メモリに転送するメモリ処理ステップと、
を含んでいる制御方法。 A control method for a controller in which a control CPU module and a standby CPU module are multiplexed,
An arithmetic step of performing arithmetic processing based on a user program in the control system CPU module;
A memory processing step of outputting a write instruction of the calculation result of the calculation processing to the first memory of the control system CPU module and transferring it to the second memory of the standby system CPU module;
Control method including.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018223494A JP7047728B2 (en) | 2018-11-29 | 2018-11-29 | Controller and controller control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018223494A JP7047728B2 (en) | 2018-11-29 | 2018-11-29 | Controller and controller control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020087179A true JP2020087179A (en) | 2020-06-04 |
JP7047728B2 JP7047728B2 (en) | 2022-04-05 |
Family
ID=70908414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018223494A Active JP7047728B2 (en) | 2018-11-29 | 2018-11-29 | Controller and controller control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7047728B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031484A (en) * | 2021-03-12 | 2021-06-25 | 国网智能科技股份有限公司 | Embedded edge intelligent system and method for power inspection |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0449402A (en) * | 1990-06-19 | 1992-02-18 | Toshiba Corp | Duplexing system for programmable controller |
JP2012168635A (en) * | 2011-02-10 | 2012-09-06 | Toshiba Corp | Duplex control device |
WO2013168258A1 (en) * | 2012-05-10 | 2013-11-14 | 三菱電機株式会社 | Standby dual redundant system |
-
2018
- 2018-11-29 JP JP2018223494A patent/JP7047728B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0449402A (en) * | 1990-06-19 | 1992-02-18 | Toshiba Corp | Duplexing system for programmable controller |
JP2012168635A (en) * | 2011-02-10 | 2012-09-06 | Toshiba Corp | Duplex control device |
WO2013168258A1 (en) * | 2012-05-10 | 2013-11-14 | 三菱電機株式会社 | Standby dual redundant system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113031484A (en) * | 2021-03-12 | 2021-06-25 | 国网智能科技股份有限公司 | Embedded edge intelligent system and method for power inspection |
CN113031484B (en) * | 2021-03-12 | 2023-12-05 | 国网智能科技股份有限公司 | Electric power inspection embedded edge intelligent system and method |
Also Published As
Publication number | Publication date |
---|---|
JP7047728B2 (en) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7849235B2 (en) | DMA controller, node, data transfer control method and storage medium | |
JP7047728B2 (en) | Controller and controller control method | |
US10162549B2 (en) | Integrated circuit chip and method therefor | |
JP2007280313A (en) | Redundant system | |
US9742623B2 (en) | Master device, communication system, and communication method | |
US11204804B2 (en) | Electronic device and control method thereof | |
US20170052521A1 (en) | Programmable controller and arithmetic processing system | |
US9513680B2 (en) | Relaying device, relaying method, and power control system | |
JP3750467B2 (en) | USB simulation apparatus and storage medium | |
US10824582B2 (en) | Communication apparatus, communication method, program, and communication system | |
JP7028124B2 (en) | CPU unit, CPU unit control method, information processing program, and recording medium | |
KR100812710B1 (en) | Method and apparatus for communication using control bus | |
CN116825170B (en) | Automatic calibration architecture and chip for die-to-die interconnect | |
JPH0628003B2 (en) | DATA CONTROL METHOD AND DEVICE FOR MULTIPLEX CONTROLLER | |
KR100532608B1 (en) | a bus system having serial/parallel circuitry | |
JP7325658B2 (en) | Program execution device and communication method | |
JP5604799B2 (en) | Fault tolerant computer | |
JP2870837B2 (en) | Arbitration circuit of central processing unit | |
KR100428798B1 (en) | Apparatus for slave board resetting | |
EP3327521B1 (en) | Duplexing process control device | |
JP2000347706A (en) | Plant controller | |
JP2008152665A (en) | Method for analyzing operation of semiconductor integrated circuit | |
CN114936131A (en) | Self-monitoring controller | |
JP2024088106A (en) | Control system, processing method, and data relay program | |
US20180341312A1 (en) | Control apparatus, method for controlling the same, storage medium, and computer system |
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 |