JP2022147609A - コントローラ - Google Patents
コントローラ Download PDFInfo
- Publication number
- JP2022147609A JP2022147609A JP2021048923A JP2021048923A JP2022147609A JP 2022147609 A JP2022147609 A JP 2022147609A JP 2021048923 A JP2021048923 A JP 2021048923A JP 2021048923 A JP2021048923 A JP 2021048923A JP 2022147609 A JP2022147609 A JP 2022147609A
- Authority
- JP
- Japan
- Prior art keywords
- control data
- core
- cpu core
- output
- cores
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 80
- 238000004891 communication Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000012806 monitoring device Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 118
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
【課題】複数のCPUコアのうち一部のコアで実行される処理に不具合があったとしても、制御対象機器を継続して制御する。【解決手段】実施形態のコントローラは、メモリと、通信インタフェースと、複数のコアを有するプロセッサと、を備える。何れかのコアが、外部の制御対象機器から受信した、入出力データを、メモリに記憶させ、第1コアが、入出力データを用いて、制御対象機器を制御する制御データを生成し、第2コアが、入出力データを用いて、制御データを生成し、第1コアが生成した制御データと第2コアが生成した制御データとを比較し、一致する場合、第1コアまたは第2コアが生成した制御データを制御対象機器へ出力し、一致しない場合、制御データを生成したコアの中で優先度の高いコアが生成した制御データまたは過去に出力した制御データを制御対象機器へ出力する出力処理を実行する。【選択図】図1
Description
本実施形態は、コントローラに関する。
外部の制御対象機器を制御する、複数のCPUコアを含むプロセッサを備えるコントローラがある。このコントローラでは、コントローラ機能コアが、制御対象機器から取得したI/OデータからI/O部分データを抽出し、コンピュータ機能CPUコアが、当該I/O部分データを表示し、表示した結果に基づく制御データを保存する。
上記のようなコントローラは、制御対象機器を継続して制御する必要があり、コントローラが備える、複数のCPUコアのうち一部のコアで実行される処理に不具合があったとしても継続して制御することが望まれる。
することが望まれる。
することが望まれる。
そこで、本発明は、上記事情に鑑みてなされたものであり、複数のCPUコアのうち一部のコアで実行される処理に不具合があったとしても、制御対象機器を継続して制御することができるコントローラを提供することを目的とする。
実施形態のコントローラは、メモリと、通信インタフェースと、複数のコアを有するプロセッサと、を備える。複数のコアのうち何れかのコアが、通信インタフェースが外部の制御対象機器から受信した、制御対象機器の制御結果を含む入出力データを、メモリの第1記憶領域および第2記憶領域の各々に記憶させ、複数のコアのうち第1コアが、メモリの第1記憶領域に記憶された入出力データを用いて、制御対象機器を制御する制御データを生成し、複数のコアのうち第2コアが、第2記憶領域に記憶された入出力データを用いて、制御データを生成し、複数のコアのうち何れかのコアが、第1コアが生成した制御データと第2コアが生成した制御データとを比較し、双方の制御データが一致する場合、第1コアが生成した制御データまたは第2コアが生成した制御データを、通信インタフェースへ出力し、通信インタフェースが当該制御データを制御対象機器へ出力し、双方の制御データが一致しない場合、制御データを生成したコアの中で優先度の高い第1コアまたは第2コアが生成した制御データまたは過去に出力した制御データを通信インタフェースへ出力し、通信インタフェースが当該制御データを制御対象機器へ出力する出力処理を実行する。
以下、添付の図面を用いて、本実施形態にかかるコントローラについて説明する。
(第1の実施形態)
図1は、第1の実施形態にかかるソフトPLCを実行するPLCである安全コントローラ1の構成の一例を示す図である。本実施形態にかかるソフトPLC(Programmable Logic Controller)は、バルブやセンサ等の外部の制御対象機器2を制御するソフトウェアである。図1に示すように、安全コントローラ1は、複数のコアを有するCPU(Central Processing Unit)等のプロセッサ10と、メインメモリ20と、制御対象機器2との通信を可能とするネットワークカード等の通信インタフェース30と、フラッシュメモリ40とを有する。
図1は、第1の実施形態にかかるソフトPLCを実行するPLCである安全コントローラ1の構成の一例を示す図である。本実施形態にかかるソフトPLC(Programmable Logic Controller)は、バルブやセンサ等の外部の制御対象機器2を制御するソフトウェアである。図1に示すように、安全コントローラ1は、複数のコアを有するCPU(Central Processing Unit)等のプロセッサ10と、メインメモリ20と、制御対象機器2との通信を可能とするネットワークカード等の通信インタフェース30と、フラッシュメモリ40とを有する。
メインメモリ20(メモリの一例)は、I/Oメモリ201(第1記憶領域の一例)と、I/Oメモリ201とは異なるI/Oメモリ202(第2記憶領域の一例)と、を有する。
フラッシュメモリ40は、各種プログラム(ソフトウェア)を記憶する。具体的に、フラッシュメモリ40は、記憶プログラム401、生成プログラム402、および出力プログラム403を記憶する。安全コントローラ1は、通信インタフェース30を介して、図示しないプログラムを保持する装置から各種プログラムを受信し、各種プログラムをフラッシュメモリ40へ記憶させる。各プログラムの詳細は後述する。なお、フラッシュメモリ40以外の記憶手段(例えば、ROM(Read Only Memory)やストレージデバイス等)が、上記各種プログラムを記憶するようにしてもよい。
通信インタフェース30は、有線または無線により、制御対象機器2または監視装置3とデータを送受信するインタフェースである。
プロセッサ10は、複数のCPU(Central Processing Unit)コアを有し、当該CPUコア上でプログラムを実行することによって、制御対象機器2を制御するマルチコアプロセッサである。具体的には、プロセッサ10は、複数のCPUコアのうちいずれかにより実行される1つのOS(Operating System)によって、プログラムを動作させる。本実施形態では、プロセッサ10は、プログラムを実行するCPUコアとして、コントローラ機能CPUコア101およびコントローラ機能CPUコア102を有する。なお、コントローラ機能CPUコア101およびコントローラ機能CPUコア102は、プログラムを含むコンテナを実行するようにしてもよい。
コントローラ機能CPUコア101(第1コアの一例)は、記憶プログラム401を実行する。記憶プログラム401は、制御対象機器2(制御対象機器の一例)とI/Oメモリ201との間で制御対象機器2から受信するI/Oデータ(入出力データの一例)を転送するプログラムである。言い換えると、記憶プログラム401を実行することでコントローラ機能CPUコア101は、制御対象機器2から受信したI/OデータをI/Oメモリ201へ記憶させる。I/Oデータは、制御対象機器2の制御結果を含む、所謂、生データであり、入力データの一例である。
また、上記記憶プログラム401を実行することで、コントローラ機能CPUコア101は、制御対象機器2とI/Oメモリ202との間で制御対象機器2から受信するI/Oデータを転送する。
また、コントローラ機能CPUコア101は、制御対象機器2とI/Oメモリ201との間、または、制御対象機器2とI/Oメモリ202との間で転送するI/Oデータや後述する制御用データ(制御データの一例)を一時的に記憶するI/Oバッファ101aを有する。本実施形態では、記憶プログラム401は、メインメモリ20に記憶されるI/Oメモリマップを用いて、I/Oメモリ201およびI/Oメモリ202に対するI/Oデータ等の保存および読み出しを行うようにしてもよい。ここで、I/Oメモリマップは、I/Oメモリ201およびI/Oメモリ202の記憶領域のうち、I/Oデータ等を記憶する領域のアドレスを示す。
また、コントローラ機能CPUコア101は、生成プログラム402を含むコンテナを実行する。例えば、コントローラ機能CPUコア101は、プロセッサ10において実行されるOS上に仮想マシンを実現し、当該仮想マシン上で汎用のOSを実行し、その汎用のOSによって生成プログラム402を動作させる。生成プログラム402は、I/Oメモリ201から読み出したI/Oデータに基づいて、制御用データを生成したり、保存したりする制御処理や、当該I/Oデータに基づいたデータを、安全コントローラ1が有する表示部に表示する表示処理等の処理を実行するプログラムである。生成プログラム402は、例えば、上述のソフトPLCやラダープログラム等である。本実施形態では、制御用データは、制御対象機器2に対する制御指示やI/Oデータに異常が検出されたことを示すアラームデータを含む。
コントローラ機能CPUコア101は、生成プログラム402を実行することで、I/Oデータに基づいた制御用データを生成する。また、コントローラ機能CPUコア101は、後述する制御用データの比較処理をする。
コントローラ機能CPUコア102(第2コアの一例)は、コントローラ機能CPUコア101と同様、生成プログラム402を含むコンテナを実行する。当該生成プログラム402を実行するコントローラ機能CPUコア102は、I/Oメモリ202から読み出したI/Oデータに基づいてI/Oデータに基づいた制御用データを生成する。
また、コントローラ機能CPUコア101は、出力プログラム403を含むコンテナを実行する。出力プログラム403は、コントローラ機能CPUコア101およびコントローラ機能CPUコア102が生成した制御用データを比較する比較処理を実行し、比較した結果に基づいて制御用データを通信インタフェース30へ出力するプログラムである。
例えば、コントローラ機能CPUコア101は、出力プログラム403を実行することで、コントローラ機能CPUコア101が生成した制御用データをI/Oメモリ201から読み出し、コントローラ機能CPUコア102が生成した制御用データをI/Oメモリ202から読み出す。そして、コントローラ機能CPUコア101は、出力プログラム403を実行することで、I/Oメモリ201から読み出した制御用データと、I/Oメモリ202から読み出した制御用データとを比較することで一致するか否かを判定する。
コントローラ機能CPUコア101は、出力プログラム403を実行することで、比較した結果、双方の制御用データが一致していると判定した場合、いずれかの制御用データを、通信インタフェース30へ出力する。通信インタフェース30は、当該制御用データを制御対象機器2へ送信する。このように、コントローラ機能CPUコア101は、出力プログラム403を実行することで、双方の制御用データが一致していると判定した場合、いずれかの制御用データを、通信インタフェース30を介して制御対象機器2へ送信する。また、コントローラ機能CPUコア102は、上記制御対象機器2へ送信する制御用データをI/Oメモリ201へ記憶させておく。このように、安全コントローラ1では、生成した制御用データを記憶しておく。
コントローラ機能CPUコア101は、出力プログラム403を実行することで、比較した結果、双方の制御用データが一致していないと判定した場合、I/Oメモリ201に記憶している過去に生成した制御用データを、通信インタフェース30へ出力する。そして、通信インタフェース30は、当該過去に生成した制御用データを制御対象機器2へ送信する。これにより、安全コントローラ1は、過去に生成した制御用データを制御対象機器2へ送信する。
また、コントローラ機能CPUコア101は、出力プログラム403を実行することで、比較した結果、双方の制御用データが一致していないと判定した場合、比較した結果として、制御データを生成するコアの中で優先度の高いコントローラ機能CPUコア(例えば、コントローラ機能CPUコア101)の制御データを通信インタフェース30へ出力し、通信インタフェース30が、制御用データを制御対象機器2へ送信するようにしてもよい。
また、コントローラ機能CPUコア101は、出力プログラム403を実行することで、比較した結果、双方の制御用データが一致していないと判定した場合、比較した結果として、双方の制御用データが一致しないことを示すデータを、通信インタフェース30へ出力する。そして、通信インタフェース30は、制御用データが一致しないことを示すデータを監視装置3へ送信する。このように、安全コントローラ1は、制御用データが一致しないことを示すデータを監視装置3へ送信する。
続いて、図2を用いて、本実施形態にかかる安全コントローラ1による制御用データの出力処理の流れの一例について説明する。
図2は、第1の実施形態にかかる安全コントローラ1による制御用データの出力処理の流れの一例を示すフローチャートである。
コントローラ機能CPUコア101は、記憶プログラム401を実行することで、制御対象機器2から通信インタフェース30が受信したI/OデータをI/Oメモリ201へ記憶させる。また、コントローラ機能CPUコア101は、記憶プログラム401を実行することで、当該I/OデータをI/Oメモリ202へも記憶させる(ステップS1)。
続いて、コントローラ機能CPUコア101は、生成プログラム402を実行することで、I/Oメモリ201から読み出したI/Oデータに基づいて、制御用データを生成し、コントローラ機能CPUコア102は、生成プログラム402を実行することで、I/Oメモリ202から読み出したI/Oデータに基づいて、制御用データを生成する(ステップS2)。
続いて、コントローラ機能CPUコア101は、出力プログラム403を実行することで、コントローラ機能CPUコア101およびコントローラ機能CPUコア102が生成した制御用データを比較する比較処理を実行する(ステップS3)。
比較した結果、制御用データが一致すると判定した場合(ステップS4:Yes)、コントローラ機能CPUコア101は、上記出力プログラム403を実行することで、比較した結果として、いずれかの制御用データを、通信インタフェース30を介して、制御対象機器2へ送信する(ステップS5)。
また、比較した結果、制御用データが一致しないと判定した場合(ステップS4:No)、コントローラ機能CPUコア101は、上記出力プログラム403を実行することで、I/Oメモリ201に記憶している過去に生成した制御用データまたは制御データを生成するコアの中で優先度の高いコントローラ機能CPUコアの制御データ(異常時用制御用データ)を、通信インタフェース30へ出力し、通信インタフェース30は、過去に生成した制御用データを制御対象機器2へ送信する(ステップS6)。
そして、コントローラ機能CPUコア101は、上記出力プログラム403を実行することで、比較した結果として、双方の制御用データが一致しないことを示すデータを、通信インタフェース30へ出力し、通信インタフェース30は、当該制御用データが一致しないことを示すデータを監視装置3へ送信する(ステップS7)。
このように、第1の実施形態にかかる安全コントローラ1によれば、コントローラ機能CPUコア101が、生成プログラム402を実行することで、I/Oメモリ201から読み出したI/Oデータに基づいて、制御用データを生成し、コントローラ機能CPUコア102が、生成プログラム402を実行することで、I/Oメモリ202から読み出したI/Oデータに基づいて、制御用データを生成し、コントローラ機能CPUコア101が、出力プログラム403を実行することで、コントローラ機能CPUコア101およびコントローラ機能CPUコア102の各々が生成した制御データを比較して、比較した結果、一致すると判定した場合、いずれかの制御データを通信インタフェース30へ出力する。また、コントローラ機能CPUコア101が、出力プログラム403を実行することで、コントローラ機能CPUコア101およびコントローラ機能CPUコア102の各々が生成した制御データを比較して、比較した結果、一致しないと判定した場合、優先度の高いコントローラ機能CPUコアの制御データまたは過去に生成した制御データを通信インタフェース30へ出力する。
このように、安全コントローラ1は、各コントローラ機能CPUコアが、同一の入力データで、同一のプログラムを実行した結果を比較して、一致しないと判定した場合でも、優先度の高いコントローラ機能CPUコアの制御データまたは過去に生成した制御データを通信インタフェース30へ出力するので、複数のCPUコアのうち一部のコアで実行される処理に不具合があったとしても、制御対象機器を継続して制御することができる。
また、第1の実施形態にかかる安全コントローラ1のコントローラ機能CPUコア101は、コントローラ機能CPUコア101が、出力プログラム403を実行することで、制御用データを比較した結果、制御用データが一致しないと判定した場合に、双方の制御用データが一致しないことを示すデータを、通信インタフェース30へ出力する。また、通信インタフェース30は、当該双方の制御用データが一致しないことを示すデータを監視装置3へ送信する。このように、コントローラ機能CPUコア101は、CPUコアの一部が実行する処理が正常に動作していないことを示すデータを監視装置3へ出力することで、当該監視装置3のユーザに、安全コントローラ1のCPUコアの少なくとも一部が実行する処理が適切になされていないことを知らせることができる。
(第2の実施形態)
第1の実施形態では、コントローラ機能CPUコア101が、記憶プログラム401および出力プログラム403を実行することで、制御対象機器2とI/Oメモリ201との間、または、制御対象機器2とI/Oメモリ202との間でデータを転送する場合について述べた。本実施形態では、プロセッサ10が、コントローラ機能CPUコア101とは別に、記憶プログラム401および出力プログラム403を実行するCPUコアをさらに備える例を説明する。
第1の実施形態では、コントローラ機能CPUコア101が、記憶プログラム401および出力プログラム403を実行することで、制御対象機器2とI/Oメモリ201との間、または、制御対象機器2とI/Oメモリ202との間でデータを転送する場合について述べた。本実施形態では、プロセッサ10が、コントローラ機能CPUコア101とは別に、記憶プログラム401および出力プログラム403を実行するCPUコアをさらに備える例を説明する。
図3は、第2の実施形態にかかる安全コントローラ1の構成の一例を示す図である。プロセッサ10は、コントローラ機能CPUコア101およびコントローラ機能CPUコア102に加えて、I/O管理用CPUコア105(第3コアの一例)を備える。
I/O管理用CPUコア105は、記憶プログラム401を実行する。記憶プログラム401を実行することでI/O管理用CPUコア105は、制御対象機器2から受信したI/OデータをI/Oメモリ201へ記憶させる。
また、上記記憶プログラム401を実行することで、I/O管理用CPUコア105は、制御対象機器2とI/Oメモリ202との間で制御対象機器2から受信するI/Oデータを転送する。
また、I/O管理用CPUコア105は、上記記憶プログラム401および出力プログラム403を実行することで、制御対象機器2とI/Oメモリ201との間、または、制御対象機器2とI/Oメモリ202との間で転送する制御用データおよびI/Oデータを一時的に記憶するI/Oバッファ105aを有する。
また、I/O管理用CPUコア105は、出力プログラム403を実行することで、コントローラ機能CPUコア101およびコントローラ機能CPUコア102が生成した制御用データを比較する比較処理を実行し、比較した結果に基づいて制御用データを通信インタフェース30へ出力する。
第2の実施形態にかかる安全コントローラ1のプロセッサ10では、I/O管理用CPUコア105が、出力プログラム403を実行することで、コントローラ機能CPUコア101およびコントローラ機能CPUコア102が生成した制御用データを比較する比較処理を実行し、比較した結果に基づいて制御用データを通信インタフェース30へ出力する。このように、コントローラ機能CPUコア101ではなく、I/O管理用CPUコア105が、制御用データの比較処理を実行することで、処理負荷を適切に分散させることができる。
(第3の実施形態)
第1の実施形態では、プロセッサ10が、2つのコントローラ機能CPUコアを備え、メインメモリ20が、2つのI/Oメモリを備える場合について述べた。本実施形態では、プロセッサ10が、3つのコントローラ機能CPUコアを備え、メインメモリ20が、3つのコントローラ機能CPUコアを備える例を説明する。
第1の実施形態では、プロセッサ10が、2つのコントローラ機能CPUコアを備え、メインメモリ20が、2つのI/Oメモリを備える場合について述べた。本実施形態では、プロセッサ10が、3つのコントローラ機能CPUコアを備え、メインメモリ20が、3つのコントローラ機能CPUコアを備える例を説明する。
図4は、第3の実施形態にかかる安全コントローラ1の構成の一例を示す図である。メインメモリ20は、I/Oメモリ201およびI/Oメモリ202に加えて、I/Oメモリ201およびI/Oメモリ202とは異なるI/Oメモリ203(第3記憶領域の一例)をさらに有する。
プロセッサ10は、コントローラ機能CPUコア101およびコントローラ機能CPUコア102に加えて、コントローラ機能CPUコア103(第4コアの一例)をさらに有する。
上記記憶プログラム401を実行することで、コントローラ機能CPUコア101は、制御対象機器2とI/Oメモリ203との間で、制御対象機器2から受信するI/Oデータを転送する。
コントローラ機能CPUコア103は、コントローラ機能CPUコア102と同様、生成プログラム402を実行する。当該生成プログラム402を実行するコントローラ機能CPUコア103は、I/Oメモリ203から読み出したI/Oデータに基づいて、制御用データを生成したり、保存したりする制御処理や、当該I/Oデータに基づいたデータを、コントローラが有する表示部に表示する表示処理等の処理を実行する。
コントローラ機能CPUコア101は、出力プログラム403を実行することで、コントローラ機能CPUコア101、コントローラ機能CPUコア102、およびコントローラ機能CPUコア103が生成した制御用データを比較する比較処理を実行し、比較した結果に基づくデータを出力する。
コントローラ機能CPUコア101は、出力プログラム403を実行することで、上記比較処理の結果、全ての制御用データが一致していると判定した場合、比較した結果として、いずれかの制御用データを、通信インタフェース30へ出力する。また、コントローラ機能CPUコア101は、上記通信インタフェース30へ出力する制御用データをI/Oメモリ201へ記憶させておく。
コントローラ機能CPUコア101は、出力プログラム403を実行することで、上記比較処理の結果、コントローラ機能CPUコア101、コントローラ機能CPUコア102、およびコントローラ機能CPUコア103の何れか一のコアが生成した制御データのみ相違すると判定した場合、比較した結果として、上記一のコアとは異なるコアが生成した制御用データを通信インタフェース30へ出力する。
コントローラ機能CPUコア101は、出力プログラム403を実行することで、上記比較処理の結果、コントローラ機能CPUコア101、コントローラ機能CPUコア102、およびコントローラ機能CPUコア103が生成した制御データが、全て相違すると判定した場合、比較した結果として、I/Oメモリ201に記憶している過去に生成した制御用データを、通信インタフェース30へ出力する。
第3の実施形態にかかる安全コントローラ1のプロセッサ10では、コントローラ機能CPUコア103が、生成プログラム402を実行することで、I/Oメモリ203から読み出したI/Oデータに基づいて、制御用データを生成する。また、コントローラ機能CPUコア101は、出力プログラム403を実行することで、コントローラ機能CPUコア101、コントローラ機能CPUコア102、およびコントローラ機能CPUコア103が生成した制御用データを比較する比較処理を実行し、比較した結果に基づいて制御用データを出力する。このように、コントローラ機能CPUコア101は、3つのCPUコアによる制御用データを比較して、比較した結果に基づいて制御用データを出力する。この場合、コントローラ機能CPUコア101が、出力プログラム403を実行することで、2つのCPUコアによる制御用データが一致して、他のCPUコアによる制御用データが異なる場合には、多数決に基づき優先する制御用データを出力することができる。
また、コントローラ機能CPUコア101は、出力プログラム403を実行することで、上記比較処理の結果、コントローラ機能CPUコア101、コントローラ機能CPUコア102、およびコントローラ機能CPUコア103の何れか一のコアが生成した制御データのみ相違すると判定した場合、上記一のコアとは異なるコアが生成した制御データを通信インタフェース30へ出力する。このように、コントローラ機能CPUコア101は、一のCPUコアの制御用データが異なる場合でも、正常に動作していると考えられるCPUコアの制御用データを用いて制御対象機器2を制御することができる。
(第4の実施形態)
第3の実施形態では、コントローラ機能CPUコア101が、記憶プログラム401および出力プログラム403を実行することで、制御対象機器2とI/Oメモリ201との間、制御対象機器2とI/Oメモリ202との間、および制御対象機器2とI/Oメモリ203との間でデータを転送する場合について述べた。本実施形態では、プロセッサ10が、コントローラ機能CPUコア101とは別に、記憶プログラム401および出力プログラム403を実行するCPUコアをさらに備える例を説明する。
第3の実施形態では、コントローラ機能CPUコア101が、記憶プログラム401および出力プログラム403を実行することで、制御対象機器2とI/Oメモリ201との間、制御対象機器2とI/Oメモリ202との間、および制御対象機器2とI/Oメモリ203との間でデータを転送する場合について述べた。本実施形態では、プロセッサ10が、コントローラ機能CPUコア101とは別に、記憶プログラム401および出力プログラム403を実行するCPUコアをさらに備える例を説明する。
図5は、第4の実施形態にかかる安全コントローラ1の構成の一例を示す図である。プロセッサ10は、コントローラ機能CPUコア101、コントローラ機能CPUコア102およびコントローラ機能CPUコア103に加えて、I/O管理用CPUコア105を備える。
I/O管理用CPUコア105は、記憶プログラム401を実行する。記憶プログラム401を実行することでI/O管理用CPUコア105は、制御対象機器2から受信したI/OデータをI/Oメモリ201へ記憶させる。
また、上記記憶プログラム401を実行することで、I/O管理用CPUコア105は、制御対象機器2とI/Oメモリ202との間で制御対象機器2から受信するI/Oデータを転送する。さらに、上記記憶プログラム401を実行することで、I/O管理用CPUコア105は、制御対象機器2とI/Oメモリ203との間で制御対象機器2から受信するI/Oデータを転送する。
また、I/O管理用CPUコア105は、制御対象機器2とI/Oメモリ201との間、制御対象機器2とI/Oメモリ202との間、および制御対象機器2とI/Oメモリ203との間で転送する、制御用データおよびI/Oデータを一時的に記憶するI/Oバッファ105aを有する。
また、I/O管理用CPUコア105は、出力プログラム403を実行することで、コントローラ機能CPUコア101、コントローラ機能CPUコア102、およびコントローラ機能CPUコア103が生成した制御用データを比較する比較処理を実行し、比較した結果に基づいて制御用データを出力する。
第4の実施形態にかかる安全コントローラ1のプロセッサ10では、I/O管理用CPUコア105が、コントローラ機能CPUコア101、コントローラ機能CPUコア102、およびコントローラ機能CPUコア103が生成した制御用データを比較する比較処理を実行し、比較した結果に基づくデータを出力する。このように、コントローラ機能CPUコア101ではなく、I/O管理用CPUコア105が、制御用データの比較処理を実行することで、処理負荷を適切に分散させることができる。
以上、本開示のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…安全コントローラ、2…制御対象機器、3…監視装置、10…プロセッサ、20…メインメモリ、30…通信インタフェース、101…コントローラ機能CPUコア、102…コントローラ機能CPUコア、103…コントローラ機能CPUコア、105…I/O管理用CPUコア、201…I/Oメモリ、202…I/Oメモリ、203…I/Oメモリ。
Claims (5)
- 第1記憶領域および第2記憶領域を有するメモリと、複数のコアを有するプロセッサと、通信インタフェースと、を備え、
前記複数のコアのうち何れかのコアが、前記通信インタフェースが外部の制御対象機器から受信した、前記制御対象機器の制御結果を含む入出力データを、前記メモリの第1記憶領域および第2記憶領域の各々に記憶させ、
前記複数のコアのうち第1コアが、前記メモリの第1記憶領域に記憶された前記入出力データを用いて、前記制御対象機器を制御する制御データを生成し、
前記複数のコアのうち第2コアが、前記第2記憶領域に記憶された前記入出力データを用いて、前記制御データを生成し、
前記複数のコアのうち何れかのコアが、前記第1コアが生成した制御データと前記第2コアが生成した制御データとを比較し、双方の制御データが一致する場合、前記第1コアが生成した制御データまたは前記第2コアが生成した制御データを、前記通信インタフェースへ出力し、前記通信インタフェースが当該制御データを前記制御対象機器へ出力し、双方の制御データが一致しない場合、前記制御データを生成したコアの中で優先度の高い前記第1コアまたは前記第2コアが生成した制御データまたは過去に出力した制御データを前記通信インタフェースへ出力し、前記通信インタフェースが当該制御データを前記制御対象機器へ出力する出力処理を実行する、コントローラ。 - 前記複数のコアのうち、前記第1コアおよび前記第2コアとは異なる第3コアが、前記出力処理を実行する、請求項1に記載のコントローラ。
- 前記複数のコアのうち何れかのコアが、前記入出力データを前記メモリの第3記憶領域に記憶させ、
前記複数のコアのうち前記第1コアおよび前記第2コアとは異なる第4コアが、前記第3記憶領域に記憶される前記入出力データを用いて、前記制御データを生成し、
前記複数のコアのうち何れかのコアが、前記第1コア、前記第2コア、および前記第4コアの各々が生成した制御データを比較する、請求項1または2に記載のコントローラ。 - 前記複数のコアのうち何れかのコアが、前記第1コア、前記第2コア、および前記第4コアが生成した制御データを比較した結果、一の制御データのみ相違する場合、他の制御データを前記通信インタフェースへ出力する、請求項3に記載のコントローラ。
- 前記複数のコアのうち何れかのコアが、前記複数のコアの各々が生成した前記制御データを比較した結果、一致しない場合、一致しないことを示すデータを前記通信インタフェースへ出力し、前記通信インタフェースは、前記一致しないことを示すデータを、前記コントローラを監視する監視装置へ出力する、
請求項1から4の何れか一項に記載のコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021048923A JP2022147609A (ja) | 2021-03-23 | 2021-03-23 | コントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021048923A JP2022147609A (ja) | 2021-03-23 | 2021-03-23 | コントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022147609A true JP2022147609A (ja) | 2022-10-06 |
Family
ID=83463406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021048923A Pending JP2022147609A (ja) | 2021-03-23 | 2021-03-23 | コントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022147609A (ja) |
-
2021
- 2021-03-23 JP JP2021048923A patent/JP2022147609A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8588228B1 (en) | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner | |
WO2016076236A1 (ja) | 分散制御システム、制御装置、制御方法及びプログラム | |
CN107430564A (zh) | 具有多个独立微控制器的微控制器装置 | |
JP6303670B2 (ja) | 複数cpuの起動回路、複数cpuの起動方法及び複数cpuの起動回路のプログラム | |
US11287793B2 (en) | Control device, control method for control device, information processing program, and recording medium | |
JP2022147609A (ja) | コントローラ | |
US20220402121A1 (en) | Control and monitoring of a machine arrangement | |
CN107085394B (zh) | 控制装置及控制方法 | |
JP5496429B1 (ja) | エンジニアリングツールおよびプログラマブルロジックコントローラ | |
US10678744B2 (en) | Method and system for lockless interprocessor communication | |
JP2010079355A (ja) | 複数plc間の協調制御システム | |
JP6149393B2 (ja) | 通信カプラ、情報処理装置、制御方法およびプログラム | |
CN111919181A (zh) | 控制装置 | |
EP3936951B1 (en) | Control device and software deployment method | |
JP6626216B2 (ja) | コントローラ | |
JP2008077265A (ja) | プログラマブルコントローラのプログラム更新方法 | |
JP6479045B2 (ja) | 制御方法及び制御デバイス | |
CN114896058B (zh) | 基于内存运算的派工系统以及派工方法 | |
US20230362283A1 (en) | Communication processing device, communication processing method and program, and data structure of header part of network layer | |
WO2022049885A1 (ja) | 制御装置 | |
JP2008077498A (ja) | 保守制御装置 | |
US20200409593A1 (en) | Remote input/output system | |
JP2017079005A (ja) | プログラマブル・ロジック・コントローラ、制御方法、cpuユニットおよび拡張ユニット | |
JP2016207142A (ja) | 計算機及びメモリ故障診断方法 | |
CN117707723A (zh) | 中断处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231212 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240628 |