[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2020087179A - Controller and controller control method - Google Patents

Controller and controller control method Download PDF

Info

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
Application number
JP2018223494A
Other languages
Japanese (ja)
Other versions
JP7047728B2 (en
Inventor
龍男 大垣
Tatsuo Ogaki
龍男 大垣
桶田 英男
Hideo Oketa
英男 桶田
賢治 小松原
Kenji Komatsubara
賢治 小松原
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018223494A priority Critical patent/JP7047728B2/en
Publication of JP2020087179A publication Critical patent/JP2020087179A/en
Application granted granted Critical
Publication of JP7047728B2 publication Critical patent/JP7047728B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

To realize a technique that can efficiently share necessary data between multiplexed CPU modules.SOLUTION: A control system CPU module (100A) includes a first arithmetic unit (111A) that performs arithmetic processing based on a user program, and a first memory (130A) in which an arithmetic result is written. A standby system CPU module (100B) includes a second arithmetic unit (111B) that performs arithmetic processing based on a user program when an abnormality occurs in the control system CPU module (100A), and a second memory (130B). The control system CPU module (100A) further includes a first memory processing unit (121) configured to output an instruction to write the calculation result to the first memory (130A) and transfer it to the second memory (130B) of the standby system CPU module (100B).SELECTED DRAWING: Figure 1

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).

特開2013−235311号公報JP, 2013-23531, A

上述のような従来技術では、コンパイラは、入出力データを参照して、各メモリがプログラムにおいてどのような用途で使用されているかを確認し、トラッキング要と判定されたメモリのデータを初期値データと入出力データとから抽出して、制御系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.

本発明の実施形態1に係るPLCの要部構成を示すブロック図である。It is a block diagram which shows the principal part structure of PLC which concerns on Embodiment 1 of this invention. 図1に示すメモリアクセスコントローラの要部構成を示すブロック図である。FIG. 2 is a block diagram showing a main configuration of the memory access controller shown in FIG. 1. 図1に示す2つのCPUモジュール間におけるデータ転送処理の流れの具体例を説明する図である。It is a figure explaining the specific example of the flow of the data transfer process between the two CPU modules shown in FIG. 図1に示す2つのCPUモジュール間における動作切替処理の流れの具体例を説明する図である。It is a figure explaining the specific example of the flow of the operation switching process between the two CPU modules shown in FIG. 実施形態2に係るPLCの要部構成を示すブロック図である。FIG. 6 is a block diagram showing a main configuration of a PLC according to a second embodiment.

以下、本発明の一側面に係る実施形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。 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 PLC 10 includes a plurality of CPU modules 100A and 100B that are multiplexed. The PLC 10 is connected to a plurality of host devices and a plurality of I/O units (input/output units) to be controlled. The I/O unit is a sensor that collects, for example, a control unit of a drive device such as a machine tool and a servo motor of a belt conveyor, or sensor data related to the operating state of the drive device, and generates data indicating the operating state It is a unit. The host device is, for example, a user PC (personal computer) or a server that edits a user program.

PLC10は、複数のCPUモジュール100A,100Bの何れか1つが制御系CPUモジュールとして機能する。PLC10は、制御系CPUモジュールにおいて、I/Oユニットからの入力データに基づいて、制御対象のI/Oユニットに応じたユーザプログラムを実行することにより、駆動装置に対する動作制御指示を生成する。 In the PLC 10, any one of the plurality of CPU modules 100A and 100B functions as a control system CPU module. In the control system CPU module, the PLC 10 executes a user program corresponding to the I/O unit to be controlled based on the input data from the I/O unit, thereby generating an operation control instruction to the drive device.

複数のCPUモジュール100A,100Bのそれぞれには、複数の駆動装置のそれぞれを制御するための複数のプログラムが、プログラムメモリ140A,140Bに予め書きこまれている。また、これらのプログラムで使用される初期設定データは、内部のメモリ130A,130Bに予め書きこまれている。 In each of the plurality of CPU modules 100A and 100B, a plurality of programs for controlling each of the plurality of driving devices are written in the program memories 140A and 140B in advance. Further, the initial setting data used in these programs are written in advance in the internal memories 130A and 130B.

PLC10は、正常状態においては、制御系CPUモジュールがユーザプログラムに基づいて演算処理を行い、演算結果に従って駆動装置の動作を制御する。正常状態においては、待機系CPUモジュールは、ユーザプログラムに基づいた演算処理を行わない。 In the PLC 10, in a normal state, the control system CPU module performs arithmetic processing based on the user program, and controls the operation of the drive device according to the arithmetic result. In the normal state, the standby CPU module does not perform arithmetic processing based on the user program.

PLC10において、制御系CPUモジュールに異常が生じた場合、多重化される他のCPUモジュールである待機系CPUモジュールが制御系CPUモジュールに替わって、駆動装置の動作制御を行うことで、PLC10は、制御動作を継続する。制御系CPUモジュールと、待機系CPUモジュールとの間では、制御系CPUモジュールに異常が発生した場合には、制御動作を行うCPUモジュールの切り替えを効率的に行うことができるように、データが共有されている。 In the PLC 10, when an abnormality occurs in the control system CPU module, the standby system CPU module, which is another CPU module to be multiplexed, replaces the control system CPU module and controls the operation of the drive device. Control operation continues. Data is shared between the control CPU module and the standby CPU module so that the CPU module that performs the control operation can be efficiently switched when an abnormality occurs in the control CPU module. Has been done.

制御系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 PLC 10 continues the control operation without delay. be able to.

§2 構成例
〔実施形態1〕
図1及び図2に基づいて、本発明の実施形態1に係るPLC10の構成について、詳細に説明する。図1は、PLC10の要部構成を示すブロック図である。
§2 Configuration example [Embodiment 1]
The configuration of the PLC 10 according to the first embodiment of the present invention will be described in detail with reference to FIGS. 1 and 2. FIG. 1 is a block diagram showing a main configuration of the PLC 10.

図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 PLC 10 includes a first CPU module 100A and a second CPU module 100B. The first CPU module 100A and the second CPU module 100B are multiplexed in the PLC 10. Although FIG. 1 shows an example in which the PLC 10 includes the first CPU module 100A and the second CPU module 100B that are duplicated, the present invention is not limited to this, and three or more multiple CPUs are provided. It may be configured. Each of the first CPU module 100A and the second CPU module 100B is configured to be able to integrally control the entire PLC 10.

第1CPUモジュール100Aは、正常状態においてI/Oユニットからの入力データを取得して、ユーザプログラムに基づく演算処理を実行する制御系モジュールとして機能する。第1CPUモジュール100Aを制御系CPUモジュールとも称する。第2CPUモジュール100Bは、第1CPUモジュール100Aに異常が生じた場合に、第1CPUモジュール100Aに替わって制御動作を実行する待機系モジュールとして機能する。第2CPUモジュール100Bを待機系CPUモジュールとも称する。第1CPUモジュール100Aが正常に動作している間は、第2CPUモジュール100Bは、制御動作に必要なユーザプログラムに基づく演算処理を実行しない。 The first CPU module 100A functions as a control system module that acquires input data from the I/O unit in a normal state and executes arithmetic processing based on a user program. The first CPU module 100A is also referred to as a control system CPU module. The second CPU module 100B functions as a standby system module that executes a control operation in place of the first CPU module 100A when an abnormality occurs in the first CPU module 100A. The second CPU module 100B is also referred to as a standby CPU module. While the first CPU module 100A is operating normally, the second CPU module 100B does not execute the arithmetic processing based on the user program necessary for the control operation.

第1CPUモジュール100Aと、第2CPUモジュール100Bとは、互いに同一の構成を有し、それぞれ、演算処理部110、メモリアクセスコントローラ120、I/Oメモリ130を備えている。また、第1CPUモジュール100Aと、第2CPUモジュール100Bとは、プログラムメモリ140、およびMPU(Micro Processor Unit)150を備えている。 The first CPU module 100A and the second CPU module 100B have the same configuration as each other, and each include an arithmetic processing unit 110, a memory access controller 120, and an I/O memory 130. The first CPU module 100A and the second CPU module 100B include a program memory 140 and an MPU (Micro Processor Unit) 150.

演算処理部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 first CPU module 100A and the second CPU module 100B are each connected to a cable that transmits input data from an external I/O unit, such as an EtherNet (registered trademark) cable. Further, the first CPU module 100A and the second CPU module 100B are connected to each other by a transmission cable 50, separately from a cable for transmitting input data from an external I/O unit. The first CPU module 100A and the second CPU module 100B share the input data from the external I/O unit and the calculation result by the calculation processing unit 110 via the transmission cable 50.

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 first CPU module 100A is referred to as a first arithmetic processing unit 110A, and the arithmetic processing unit of the second CPU module 110B is referred to as a second arithmetic processing unit 110B. Further, the memory access controller of the first CPU module 100A is referred to as a first memory access controller 120A, and the memory access controller of the second CPU module 110B is referred to as a second memory access controller 120B. Further, the I/O memory of the first CPU module 100A is referred to as the first memory 130A, and the I/O memory of the second CPU module 110B is referred to as the second memory 130B. Further, the program memory of the first CPU module 100A is referred to as a first program memory 140A, and the program memory of the second CPU module 110B is referred to as a second program memory 140B. The MPU of the first CPU module 100A is referred to as the first MPU 150A, and the MPU of the second CPU module 110B is referred to as the second MPU 150B.

第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 first CPU module 100A periodically receives input data from the I/O unit. The input data includes, for example, data indicating the driving state of the driving device and data indicating the measurement value measured by the sensor. The first CPU module 100A stores the input data from the I/O unit in the first memory 130A as it is through the first arithmetic processing unit 110A. Specifically, the first CPU module 100A transfers the input data from the I/O unit to the first arithmetic processing unit 110A. The first arithmetic processing unit 110A outputs the input data write instruction to the first memory access controller 120A in order to write the received input data in the first memory 130A. The first memory access controller 120A outputs the instruction to write the input data output from the first arithmetic processing unit 110A to the first memory 130A.

また、第1CPUモジュール100Aは、第1演算処理部110Aによる演算結果も、第1メモリ130Aに保存する。具体的には、第1CPUモジュール100Aは、第1演算処理部110Aの第1演算部111Aの演算結果を第1メモリ130Aに書き込むため、演算結果の書き込み指示を、第1メモリアクセスコントローラ120Aに出力する。第1メモリアクセスコントローラ120Aは、第1演算処理部110Aが出力した演算結果の書き込み指示を第1メモリ130Aに出力する。 The first CPU module 100A also stores the calculation result by the first calculation processing unit 110A in the first memory 130A. Specifically, the first CPU module 100A outputs a calculation result write instruction to the first memory access controller 120A in order to write the calculation result of the first calculation unit 111A of the first calculation processing unit 110A to the first memory 130A. To do. The first memory access controller 120A outputs, to the first memory 130A, the instruction to write the operation result output by the first operation processing unit 110A.

また、第1CPUモジュール100Aは、I/Oユニットからの入力データと、第1演算処理部110Aによる演算結果と、をそれぞれ第1メモリ130Aに書き込むタイミングで、第2CPUモジュール100Bに転送する。 Further, the first CPU module 100A transfers the input data from the I/O unit and the calculation result obtained by the first calculation processing section 110A to the second CPU module 100B at the timings of writing them in the first memory 130A.

第1演算処理部110Aは、第1演算部111Aと、第1レジスタ112Aとを備えている。同様に、第2演算処理部110Bは、第2演算部111Bと、第2レジスタ112Bとを備えている。 The first arithmetic processing unit 110A includes a first arithmetic unit 111A and a first register 112A. Similarly, the second arithmetic processing unit 110B includes a second arithmetic unit 111B and a second register 112B.

第1演算部111Aは、第1プログラムメモリ140Aに格納されているユーザプログラムと、第1メモリ130Aに保存されているI/Oユニットからの入力データと、を読み込んで、当該ユーザプログラムに基づく演算処理を行う。第1レジスタ112Aには、第1演算処理部110Aによって実行された処理の内容(ユーザプログラムの内部で使用される変数)が書きこまれる。 The first calculation unit 111A reads the user program stored in the first program memory 140A and the input data from the I/O unit stored in the first memory 130A, and calculates based on the user program. Perform processing. The contents of the processing executed by the first arithmetic processing unit 110A (variables used inside the user program) are written in the first register 112A.

第2演算部111Bは、第1CPUモジュール100Aに異常が生じたときに、第2プログラムメモリ140Bに格納されているユーザプログラムと、第2メモリ130Bに保存されているI/Oユニットからの入力データと、を読み込んで、当該ユーザプログラムに基づく演算処理を行う。第2レジスタ112Bには、第2演算処理部110Bによって実行された処理の内容(ユーザプログラムの内部で使用される変数)が書きこまれる。 The second computing unit 111B is configured to input the user program stored in the second program memory 140B and the input data from the I/O unit stored in the second memory 130B when an abnormality occurs in the first CPU module 100A. And are read, and arithmetic processing based on the user program is performed. The contents of the processing executed by the second arithmetic processing unit 110B (variables used inside the user program) are written in the second register 112B.

図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 memory access controllers 120A and 120B shown in FIG. Each of the memory access controllers 120A and 120B includes a distribution circuit unit 121, a data buffer 122, and a data transceiver and receiver IC 123. The distribution circuit unit 121 of the first memory access controller 120A is also referred to as the first memory processing unit 121A. The distribution circuit unit 121 of the second memory access controller 120B is also referred to as a second memory processing unit 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とに分配する。 The first memory access controller 120A acquires a write instruction for writing the calculation result in the first memory from the first calculation unit 111A. The instruction to write the operation result includes the operation result and information on the address (logical address or physical address) in which the operation result is to be stored. The distribution circuit unit 121 of the first memory access controller 120A outputs the instruction to write the calculation result received from the first calculation unit 111A to the first memory 130A. Further, the distribution circuit unit 121 of the first memory access controller 120A transfers the received write instruction of the calculation result to the second memory 130B of the second CPU module 100B via the data buffer 122 and the data transceiver and receiver IC 123. .. In this way, the distribution circuit unit 121 distributes one write instruction to the first memory 130A and the second memory 130B.

具体的には、第1メモリアクセスコントローラ120Aの分配回路部121は、第1演算部111Aからの演算結果の書き込み指示を、第1メモリアクセスコントローラ120Aのデータバッファ122に出力する。データトランシーバアンドレシーバIC123は、CPUモジュール100A,100B間の通信を制御する。第1メモリアクセスコントローラ120AのデータトランシーバアンドレシーバIC123は、データバッファ122に蓄えられた演算結果の書き込み指示を、伝送ケーブル50を介して、第2CPUモジュール110Bの第2メモリアクセスコントローラ120Bに伝送する。 Specifically, the distribution circuit unit 121 of the first memory access controller 120A outputs the write instruction of the calculation result from the first calculation unit 111A to the data buffer 122 of the first memory access controller 120A. The data transceiver and receiver IC 123 controls communication between the CPU modules 100A and 100B. The data transceiver and receiver IC 123 of the first memory access controller 120A transmits the write instruction of the calculation result stored in the data buffer 122 to the second memory access controller 120B of the second CPU module 110B via the transmission cable 50.

また、第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 distribution circuit unit 121 of the first memory access controller 120A sends a write instruction from the first arithmetic processing unit 110A, which writes the input data received from the external I/O unit to the first memory 130A, to the first memory 130A. The data is output and transferred to the second memory 130B of the second CPU module 110B. The instruction to write the input data includes the input data and information on the address at which the input data should be stored. The distribution circuit unit 121 of the first memory access controller 120A transmits the write instruction of the input data received from the first arithmetic unit 111A via the data buffer 122, the data transceiver and receiver IC 123, and the transmission cable 50 to the second CPU module 100B. To the second memory 130B. The input data itself from the I/O unit is transferred from the first CPU module 100A to the second CPU module 100B via a cable, which is different from the transmission cable 50, for transmitting the input data from the I/O unit. May be done. Alternatively, the input data from the I/O unit may be input from the I/O unit to the second CPU module 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に転送する。 Further, the distribution circuit unit 121 of the first memory access controller 120A acquires a write instruction to the register 112A of the first arithmetic processing unit 110A from the first arithmetic processing unit 110A, and the write instruction is stored in the second CPU module 100B. 2 Transfer to the register 112B of the arithmetic processing unit 110B. The write instruction to the register includes the content of the process executed by the first arithmetic processing unit 110A (variable used inside the user program) and the information of the address on the register in which the data is to be stored. The distribution circuit unit 121 of the first memory access controller 120A transmits the write instruction to the register received from the first arithmetic processing unit 110A via the data buffer 122, the data transceiver and receiver IC 123, and the transmission cable 50 to the second CPU module. Transfer to the register 112B of 100B.

第2CPUモジュール110Bは、伝送ケーブル50を介して伝送された、入力データの書き込み指示、演算結果の書き込み指示、及び、レジスタへの書き込み指示を第2メモリアクセスコントローラ120Bによって受信する。 The second CPU module 110B receives, via the second memory access controller 120B, the input data write instruction, the calculation result write instruction, and the register write instruction transmitted via the transmission cable 50.

第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 memory access controller 120B receives the write instruction from the first CPU module 100B via the data transceiver and receiver IC 123 of the second memory access controller 120B. The data transceiver and receiver IC 123 of the second memory access controller 120B outputs the received write instruction to the data buffer 122 of the second memory access controller 120B. The distribution circuit (second memory processing unit) 121 of the second memory access controller 120B issues a write instruction if the write instruction stored in the data buffer 122 is an input data write instruction or an operation result write instruction. , To the second memory 130B. If the write instruction stored in the data buffer 122 is the write instruction to the register, the distribution circuit unit 121 of the second memory access controller 120B outputs the write instruction to the register 112B of the second arithmetic processing unit 110B. ..

第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 second CPU module 100B receives information indicating that an abnormality has occurred in the first CPU module 100A from the first CPU module 100A via the second memory access controller 120B. When the second CPU module 100B receives the information indicating that the abnormality has occurred in the first CPU module 100A, the second arithmetic processing unit 110B starts executing the arithmetic processing based on the user program. The second arithmetic processing unit 110B performs arithmetic processing based on the user program by the function of the second arithmetic unit 111B and outputs an instruction to write the arithmetic result of the second arithmetic unit 111B to the memory to the second memory access controller 120B. .. When the second memory access controller 120B receives the instruction to write the calculation result by the second calculation unit 111B into the memory, the second memory access controller 120B performs the calculation received from the second calculation processing unit 110B by the function of the distribution circuit unit 121 of the second memory access controller 120B. The instruction to write the result is output to the second memory 130B.

第2メモリアクセスコントローラ120Bの分配回路部121は、第1CPUモジュール100Aに異常が生じたときには、第2演算処理部110Bから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力する。 When an abnormality occurs in the first CPU module 100A, the distribution circuit unit 121 of the second memory access controller 120B outputs the operation result write instruction received from the second operation processing unit 110B to the second memory 130B.

〔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 first CPU module 100A and the second CPU module 100B.

第1CPUモジュール100A、および第2CPUモジュール100Bは、PLC10の電源ONの後、I/Oメモリ130A,130Bの初期設定をそれぞれ行う(ステップS1、S11)。初期設定において、I/Oメモリ130A,130Bには、各ユーザプログラムで使用されるパラメータの初期値が登録される。 The first CPU module 100A and the second CPU module 100B respectively initialize the I/O memories 130A and 130B after turning on the power of the PLC 10 (steps S1 and S11). In the initial setting, initial values of parameters used in each user program are registered in the I/O memories 130A and 130B.

〔第1CPUモジュール100Aの処理サイクル〕
続いて、第1CPUモジュール100Aは、状態チェック処理、プログラム実行処理、メモリリフレッシュ、およびイベント処理を、この順でセットで、繰り返し実行する。この、状態チェック処理、プログラム実行処理、メモリリフレッシュ、およびイベント処理のセットを「1サイクル」と称する。
[Processing cycle of the first CPU module 100A]
Subsequently, the first CPU module 100A repeatedly executes the state check process, the program execution process, the memory refresh, and the event process in this order as a set. This set of state check process, program execution process, memory refresh, and event process is called "1 cycle".

第1CPUモジュール100Aは、状態チェック処理において、自モジュールが備える各ハードウェア、およびソフトウェアが正常に動作するか否かを確認する(ステップS2)。 In the status check process, the first CPU module 100A confirms whether or not each hardware and software included in the module itself operate normally (step S2).

続いて、第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 first CPU module 100A uses the function of the first arithmetic unit 111A of the first arithmetic processing unit 110A to execute a predetermined user program and the user program stored in the first memory 130A. The parameters used internally are read and arithmetic processing based on the user program is performed. The first operation unit 111A outputs a write instruction for writing the operation result to the I/O memory to the first memory access controller 120A. The first memory access controller 120A outputs a calculation result write instruction received from the first calculation unit 111A to the first memory 130A by the function of the distribution circuit unit 121, and writes the calculation result to the first memory 130A.

また、分配回路部121は、第1演算部111Aから受け取った演算結果(Oデータ)の書き込み指示を、第1メモリ130Aに出力するとともに、当該書き込み指示(Oデータを含む)を、データバッファ122、およびデータトランシーバアンドレシーバIC123を介して、第2CPUモジュール110Aの第2メモリアクセスコントローラ120Bに転送する(ステップS3)。 Further, the distribution circuit unit 121 outputs a write instruction of the calculation result (O data) received from the first calculation unit 111A to the first memory 130A, and also outputs the write instruction (including O data) to the data buffer 122. , And via the data transceiver and receiver IC 123 to the second memory access controller 120B of the second CPU module 110A (step 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)。 Subsequently, the first CPU module 100A refreshes the parameters stored in the first memory 130A using the input data (I data) received from the external I/O unit. The distribution circuit unit 121 of the first CPU module 100A outputs a write instruction to write the input data received from the external I/O unit to the first memory 130A to the first memory 130A, and also outputs the write instruction (including the I data). ) Is transferred to the second memory access controller 120B of the second CPU module 110A via the data buffer 122 and the data transceiver and receiver IC 123 (step S4).

第1CPUモジュール100Aは、上位装置との通信を行うイベント処理を行う(ステップS5)。例えば、外部のI/Oユニットから受信した入力データの記録又は解析のために、上位装置であるサーバに、特定の入力データを送信する。第1CPUモジュール100Aは、ステップS2〜ステップS5の1サイクルの処理を終了すると、次のサイクルを開始する。また、図示はしていないが、第1演算処理部110Aは、例えばユーザプログラムの実行処理時に、当該処理の内容を第1レジスタ112Aに出力するとともに、第2メモリアクセスコントローラ120Bを介して、第2CPUモジュール100Bの第2レジスタ112Bに転送する。 The first CPU module 100A performs an event process for communicating with a higher-level device (step S5). For example, in order to record or analyze the input data received from the external I/O unit, the specific input data is transmitted to the server which is the host device. When the first CPU module 100A finishes the process of one cycle of step S2 to step S5, it starts the next cycle. Further, although not shown, the first arithmetic processing unit 110A outputs the content of the processing to the first register 112A, for example, during the execution processing of the user program, and at the same time, through the second memory access controller 120B. The data is transferred to the second register 112B of the 2CPU module 100B.

〔第2CPUモジュール100Bの処理〕
続いて、第1CPUモジュール100Aにおける1サイクルの処理中の、第2CPUモジュール100Bの処理について説明する。
[Processing of Second CPU Module 100B]
Next, the processing of the second CPU module 100B during one cycle of processing in the first CPU module 100A will be described.

初期設定の後、第2CPUモジュール100Bは、状態チェック処理を行い、第2CPUモジュール100Bが備える各ハードウェア、およびソフトウェアが正常に動作するか否かを確認する(ステップS12)。 After the initial setting, the second CPU module 100B performs a state check process to confirm whether or not each hardware and software included in the second CPU module 100B operates normally (step 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にも書き込まれる。 The second CPU module 100B waits until it receives the data transferred from the first CPU module 100A. While the first CPU module 100A is operating normally, the second arithmetic unit 111B stands by without executing the user program. The second CPU module 100B receives a write instruction for writing the calculation result in the memory from the first CPU module 100A by the function of the second memory access controller 120B. The second memory access controller 120B outputs a calculation result write instruction to the second memory 130B by the function of the distribution circuit unit 121 to write the calculation result by the first calculation unit 111A of the first CPU module 100A, and outputs the calculation result to the second memory 130B. Write (step S13). When the distribution circuit unit 121 of the second memory access controller 120B receives the write instruction to the register, it transfers the write instruction to the register to the second register 112B of the second arithmetic processing unit 110B. As a result, the data written in the first register 112A is also written in the second register 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)。 Further, the second CPU module 100B waits until it receives the data transferred from the first CPU module 100A. By the function of the second memory access controller 120B, the second CPU module 100B receives a write instruction from the first CPU module 100A to write the input data received by the first CPU module 100A from the external I/O unit into the memory. The second memory access controller 120B outputs an input data write instruction from an external I/O unit to the second memory 130B by the function of the distribution circuit unit 121, and writes the input data to the second memory 130B (step S14).

第2CPUモジュール100Bは、ステップS12〜ステップS14の処理のセットを1サイクルの処理として実行し、当該1サイクルを終了すると、次のサイクルを開始する。 The second CPU module 100B executes the set of processes of steps S12 to S14 as one cycle of processing, and when the one cycle is completed, starts the next cycle.

このように、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 PLC 10, in the normal state where the first CPU module 100A is operating normally, the calculation result and the external I/O between the first CPU module 100A and the second CPU module 100B, which are multiplexed, are obtained. The input data received from the unit can be written in the respective memories 130A and 130B at the same timing. The distribution circuit unit 121 of the first CPU module 100A transfers the write instruction to the first memory 130A to the second memory 130B of the second CPU module 100B as it is in addition to the first memory 130A. Therefore, since the data of the first memory 130A of the first CPU module 100A is shared by the second memory 130B of the second CPU module 100B, it is not necessary to scan the first memory 130A. Therefore, the data can be appropriately and efficiently shared between the CPU modules to be multiplexed. As a result, when an abnormality occurs in the control system CPU module, the control function can be efficiently switched to the standby system CPU module and the operation can be continued.

〔第1CPUモジュール100Aに異常が生じた場合の処理の流れ〕
図4は、第1CPUモジュール100Aに異常が生じた場合の第1CPUモジュール100Aと、第2CPUモジュール100Bとの処理の流れを示すフローチャートである。
[Process Flow When Abnormality Occurs in First CPU Module 100A]
FIG. 4 is a flowchart showing the flow of processing by the first CPU module 100A and the second CPU module 100B when an abnormality occurs in the first CPU module 100A.

第1CPUモジュール100Aは、初期設定処理(ステップS1)を行った後、状態チェック処理(ステップS2)を行う。第1CPUモジュール100Aは、状態チェック処理の結果、異常を検知すると(ステップS23)、異常が生じた旨の通知を、第2CPUモジュール100Bに送信する(ステップS24)。第1CPUモジュール100Aは、プログラム実行処理を行うことなく、状態チェックの処理に戻る。 The first CPU module 100A performs a state check process (step S2) after performing an initial setting process (step S1). When the first CPU module 100A detects an abnormality as a result of the state check processing (step S23), the first CPU module 100A transmits a notification that the abnormality has occurred to the second CPU module 100B (step S24). The first CPU module 100A returns to the state check process without performing the program execution process.

第2CPUモジュール100Bは、第2メモリアクセスコントローラ120Bを介して第1CPUモジュール100Aに異常が生じている旨の通知を受信し(ステップS31)、第1CPUモジュール100Aに替わって、プログラム実行処理を行い、第2演算部111Bの機能により、ユーザプログラムに基づく演算処理を行う。 The second CPU module 100B receives the notification indicating that the abnormality has occurred in the first CPU module 100A via the second memory access controller 120B (step S31), and executes the program execution process in place of the first CPU module 100A. The function of the second arithmetic unit 111B performs arithmetic processing based on a user program.

プログラム実行処理において、第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 second CPU module 100B reads a predetermined user program and a predetermined parameter stored in the second memory 130B by the function of the second calculation unit 111B of the second calculation processing unit 110B, Performs arithmetic processing based on a user program. The second arithmetic unit 111B outputs a write instruction for writing the arithmetic result to the memory to the second memory access controller 120B. The second memory access controller 120B outputs a calculation result write instruction received from the second calculation unit 111B to the second memory 130B by the function of the distribution circuit unit 121, and writes the calculation result to the second memory 130B (step S32).

続いて、第2CPUモジュール100Bは、第2メモリ130Bに記憶されているパラメータを、外部のI/Oユニットから受信した入力データを用いてリフレッシュする。第2CPUモジュール100Bの分配回路部121は、外部のI/Oユニットから受信した入力データを第2メモリ130Bに書き込む書き込み指示を、第2メモリ130Bに出力(ステップS33)。 Subsequently, the second CPU module 100B refreshes the parameters stored in the second memory 130B using the input data received from the external I/O unit. The distribution circuit unit 121 of the second CPU module 100B outputs, to the second memory 130B, a write instruction for writing the input data received from the external I/O unit into the second memory 130B (step S33).

第2CPUモジュール100Bは、第2演算部111Bによるユーザプログラムに基づく演算処理の結果に応じて制御対象の駆動装置を制御するイベント処理を行う(ステップS34)。第2CPUモジュール100Bは、ステップS12、およびステップS33〜ステップS34の1サイクルの処理を終了すると、次のサイクルである、ステップS12、およびステップS33〜ステップS34の処理を繰り返し実行する。 The second CPU module 100B performs an event process for controlling the drive device to be controlled according to the result of the calculation process based on the user program by the second calculation unit 111B (step S34). When the second CPU module 100B finishes the processing of step S12 and steps S33 to S34 in one cycle, it repeats the processing of step S12 and steps S33 to S34, which is the next cycle.

なお、第1CPUモジュール100Aに替わって、第2CPUモジュール100Bが制御動作を行っているときに、第1CPUモジュール100Aが異常状態から復旧した場合には、引き続き、第2CPUモジュール100Bが制御動作を継続してもよい。 When the first CPU module 100A recovers from the abnormal state while the second CPU module 100B is performing the control operation instead of the first CPU module 100A, the second CPU module 100B continues the control operation. May be.

また、第1CPUモジュール100Aに替わって、第2CPUモジュール100Bが制御動作を行っているときに、第1CPUモジュール100Aが異常状態から復旧した場合には、第2CPUモジュール100Bは、データ(演算結果および入力データ等)の第1CPUモジュール100Aへの転送を開始してもよい。第1CPUモジュール100Aと、第2CPUモジュール100Bとは、該データの共有が終了した後、第1CPUモジュール100Aに制御動作を切り替えて、第1CPUモジュール100Aから、第2CPUモジュール100Bへのデータの転送を開始してもよい。 Further, when the first CPU module 100A recovers from the abnormal state while the second CPU module 100B is performing the control operation in place of the first CPU module 100A, the second CPU module 100B displays data (calculation result and input Transfer of data etc.) to the first CPU module 100A may be started. After the sharing of the data is completed, the first CPU module 100A and the second CPU module 100B switch the control operation to the first CPU module 100A, and start the data transfer from the first CPU module 100A to the second CPU module 100B. You may.

上述したように、正常状態において駆動装置の動作制御を行う制御系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 first CPU module 100A receives from the external I/O unit as the calculation result by the first arithmetic processing unit 110A of the first CPU module 100A, which is the control system CPU module that controls the operation of the drive device in the normal state. The input data and the information written in the first register 112A of the first arithmetic processing unit 110A are all stored in the first CPU module 100A at the same timing, and the second CPU module 100B, which is a standby CPU module, is stored. Shared with. As a result, when an abnormality occurs in the first CPU module 100A, the control operation can be switched to the second CPU module 100B promptly and without malfunction, and the operation of the PLC 10 can be continued.

〔実施形態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 first CPU module 100A and the second CPU module 100B include the memory access controllers 120A and 120B including the distribution circuit unit 121, in addition to the arithmetic processing units 110A and 110B. The distribution circuit unit 121 is not limited to this, and may be formed in the circuit of the arithmetic processing unit.

図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 PLC 10 according to the second embodiment. The PLC 10 includes a first CPU module 200A and a second CPU module 200B. The first CPU module 200A is a module that mainly controls the drive device to be controlled in the PLC 10, and is referred to as a control system CPU module as in the first embodiment. The second CPU module 200B is a module that controls the drive device to be controlled in place of the first CPU module 200A when an abnormality occurs in the first CPU module 200A, and is called a standby CPU module as in the first embodiment. ..

第1CPUモジュール200Aは、第1演算処理部210Aを備えている。第2CPUモジュール200Bは、第2演算処理部210Bを備えている。第1演算処理部210A、および第2演算処理部210Bは、それぞれ、PLC10全体を統括的に制御可能に構成されている。 The first CPU module 200A includes a first arithmetic processing unit 210A. The second CPU module 200B includes a second arithmetic processing section 210B. Each of the first arithmetic processing unit 210A and the second arithmetic processing unit 210B is configured to be able to integrally control the entire PLC 10.

第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 arithmetic processing unit 210A includes a first arithmetic unit 211A, a first distribution circuit unit (first memory processing unit) 212A, and a first data buffer 213A. The second arithmetic processing unit 210B includes a second arithmetic unit 211B, a second distribution circuit unit (second memory processing unit) 212B, and a second data buffer 213B. The first calculation unit 211A, the first distribution circuit unit 212A, and the first data buffer 213A are formed in one integrated circuit. Similarly, the second calculation unit 211B, the second distribution circuit unit 212B, and the second data buffer 213B are formed in one integrated circuit.

なお、図示は省略するが、第1演算処理部210A、および第2演算処理部210Bは、それぞれ、実行した処理の内容と、当該処理が完了した旨の情報とが書きこまれるレジスタを備えている。 Although not shown, each of the first arithmetic processing unit 210A and the second arithmetic processing unit 210B includes a register in which the content of the executed process and the information indicating that the process is completed are written. There is.

第1分配回路部212A、および第2分配回路部212Bは、それぞれ、実施形態1において説明した分配回路部212と同様の機能を有する。また、第1データバッファ213A、および第2データバッファ213Bは、それぞれ、実施形態1において説明したデータバッファ213と同様の機能を有する。 The first distribution circuit unit 212A and the second distribution circuit unit 212B each have the same function as the distribution circuit unit 212 described in the first embodiment. The first data buffer 213A and the second data buffer 213B each have the same function as the data buffer 213 described in the first embodiment.

また、第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 first CPU module 200A also includes a first driver IC 225A that connects the transmission cable 50 and the first arithmetic processing unit 210A. The second CPU module 200B includes a second driver IC 225B that connects the transmission cable 50 and the second arithmetic processing unit 210B. The first and second driver ICs 225A and 225B convert the parallel signals output from the first and second arithmetic processing units 210A and 210B into serial signals, transfer the serial signals to the other CPU module through the transmission cable, and transmit the transmission cable. The serial signal received via 50 is converted into a parallel signal and provided to the CPU module.

第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 arithmetic unit 211A performs arithmetic processing based on a user program. The calculation result by the first calculation unit 211A and the write instruction for writing the calculation result in the first memory 130A are passed to the first distribution circuit unit 212A. The first distribution circuit unit 212A outputs the write instruction of the calculation result received from the first calculation unit 211A to the first memory 130A and transfers it to the second memory 130B of the second CPU module 200B. Further, the first distribution circuit unit 212A outputs an instruction to write the input data received from the external I/O unit to the memory to the first memory 130A and transfers it to the second memory 130B of the second CPU module 200B. .. Further, the first distribution circuit unit 212A transfers the write instruction to the register of the first arithmetic processing unit 210A to the register of the second arithmetic processing unit 210B of the second CPU module 200B.

第2分配回路部212Bは、第1CPUモジュール100Aから受け取った演算結果の書き込み指示を、第2メモリ130Bに出力する。また、第2分配回路部212Bは、第1CPUモジュール100Aから受け取った入力データの書き込み指示を、第2メモリ130Bに出力する。また、第2分配回路部212Bは、第1CPUモジュール100Aから受け取ったレジスタへの書き込み指示を、第2演算処理部210Bのレジスタに出力する。 The second distribution circuit unit 212B outputs the instruction to write the calculation result received from the first CPU module 100A to the second memory 130B. Further, the second distribution circuit unit 212B outputs the input data write instruction received from the first CPU module 100A to the second memory 130B. Further, the second distribution circuit unit 212B outputs the write instruction to the register received from the first CPU module 100A to the register of the second arithmetic processing unit 210B.

〔ソフトウェアによる実現例〕
第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 first CPU module 100A and the second CPU module 100B (in particular, the arithmetic processing units 110A and 110B), and each control block of the first CPU module 200A and the second CPU module 200B (in particular, the arithmetic processing unit 210A, 210B) may be realized by a logic circuit (hardware) formed in an integrated circuit (IC chip) or the like, or may be realized by software using a CPU (Central Processing Unit).

後者の場合、第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 first CPU module 100A, the second CPU module 100B, the first CPU module 200A, and the second CPU module 200B executes a command of a program that is software that realizes each function, the above-mentioned program and various data. Is provided with a ROM (Read Only Memory) or a storage device (these are referred to as a "recording medium") recorded so that they can be read by a computer (or a CPU), a RAM (Random Access Memory) for expanding the above program, and the like. Then, the computer (or CPU) reads the program from the recording medium and executes the program to achieve the object of the present invention. As the recording medium, a “non-transitory tangible medium”, for example, a tape, a disk, a card, a semiconductor memory, a programmable logic circuit, or the like can be used. The program may be supplied to the computer via any transmission medium (communication network, broadcast wave, etc.) capable of transmitting the program. The present invention can also be realized in the form of a data signal embedded in a carrier wave, in which the above program is embodied by electronic transmission.

本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。 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 Transmission cable 100A, 200A First CPU module (CPU module, control system CPU module)
100B, 200B Second CPU module (CPU module, standby CPU module)
111A, 211A 1st operation part 111B, 211B 2nd operation part 112A 1st register 112B 2nd register 120A 1st memory access controller 120B 2nd memory access controller 130A 1st memory 130B 2nd memory 121 Distribution circuit part (1st memory Processing unit, second memory processing unit)
212A First distribution circuit unit (first memory processing unit)
212B Second distribution circuit unit (second memory processing unit)

Claims (9)

CPUモジュールが多重化されたコントローラであって、
制御系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モジュールの前記第1メモリ処理部は、
前記制御系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.
前記制御系CPUモジュールは、メモリアクセスコントローラを備え、
前記メモリアクセスコントローラは、前記第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.
前記第1演算部と前記第1メモリ処理部とは、1つの集積回路の中に形成されている請求項1又は2に記載のコントローラ。 The controller according to claim 1, wherein the first arithmetic unit and the first memory processing unit are formed in one integrated circuit. 前記待機系CPUモジュールは、第2メモリ処理部を備え、
前記第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. ..
前記第2メモリ処理部は、前記制御系CPUモジュールに異常が生じたときに、前記第2演算部から受け取った演算結果の書き込み指示を、前記第2メモリに出力する請求項5に記載のコントローラ。 The controller according to claim 5, wherein the second memory processing unit outputs to the second memory a write instruction of a calculation result received from the second calculation unit when an abnormality occurs in the control system CPU module. . 前記制御系CPUモジュールは、
前記第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.
外部の前記I/Oユニットからの前記入力データを伝送するケーブルとは別に、前記制御系CPUモジュールと前記待機系CPUモジュールとを互いに接続するケーブルであって、前記演算結果の書き込み指示を伝送するケーブルを備えている請求項2に記載のコントローラ。 A cable for connecting the control CPU module and the standby CPU module to each other, separately from the cable for transmitting the input data from the external I/O unit, and transmitting the instruction to write the calculation result. The controller of claim 2 comprising a cable. 制御系CPUモジュールと、待機系CPUモジュールとが多重化されたコントローラの制御方法であって、
前記制御系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.
JP2018223494A 2018-11-29 2018-11-29 Controller and controller control method Active JP7047728B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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