JP6912421B2 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP6912421B2
JP6912421B2 JP2018106000A JP2018106000A JP6912421B2 JP 6912421 B2 JP6912421 B2 JP 6912421B2 JP 2018106000 A JP2018106000 A JP 2018106000A JP 2018106000 A JP2018106000 A JP 2018106000A JP 6912421 B2 JP6912421 B2 JP 6912421B2
Authority
JP
Japan
Prior art keywords
processor
data
message
request message
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018106000A
Other languages
English (en)
Other versions
JP2019211897A (ja
Inventor
智 金丸
智 金丸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FANUC Corp
Original Assignee
FANUC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FANUC Corp filed Critical FANUC Corp
Priority to JP2018106000A priority Critical patent/JP6912421B2/ja
Priority to DE102019003694.8A priority patent/DE102019003694A1/de
Priority to US16/423,681 priority patent/US11119461B2/en
Priority to CN201910464375.6A priority patent/CN110554660B/zh
Publication of JP2019211897A publication Critical patent/JP2019211897A/ja
Application granted granted Critical
Publication of JP6912421B2 publication Critical patent/JP6912421B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/0405Programme-control specially adapted for machine tool control and not otherwise provided for
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/22Pc multi processor system
    • G05B2219/2214Multicontrollers, multimicrocomputers, multiprocessing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34015Axis controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Hardware Redundancy (AREA)
  • Numerical Control (AREA)

Description

本発明は、制御装置に関し、特にマルチプロセッサ又はマルチコアプロセッサ等の複数のプロセッサ間でリソースを共有することが可能な制御装置に関する。
ロボットや工作機械等の産業機械(以下、単に機械という)を制御する制御装置は、様々なデータのバックアップを行う機能を有することが一般的である。例えば制御装置は、停電等により制御装置の電源がUPS(無停電電源装置)に切り替わったことを検知すると、制御装置の再開に必要なメモリ上のデータを所定のストレージデバイス(以下、単にストレージという)にバックアップした後、制御装置自身をシャットダウンする。また、停電のようなイベント発生時だけでなく、定期的に上述のようなバックアップを実行することで、システムの可用性を高めている。
バックアップされたデータに不整合があると、再開時に機械が立ち上がらなかったり、正常に運転できず加工不良やクラッシュなどが発生して、多大な損失をこうむるおそれがある。また、整合性のとれたデータがバックアップされていれば、バックアップデータを同様の機械及び制御装置を備える別のシステムに移植することにより、移植先のシステムの立ち上げを比較的簡便に行うことができる。
マルチプロセッサやマルチコアプロセッサを有する制御装置では、メモリ上にあるバックアップ対象のデータや、バックアップ先のストレージへのアクセスが、複数のプロセッサ又はコアから同時に発生することがある。例えば図1に示すように、プロセッサ#2がメモリ上のデータにアクセスしている時、又はプロセッサ#3がストレージにアクセスしている時に、プロセッサ#1がメモリ上のデータをストレージにバックアップしようとすることがある。このような場合、データの整合性を保証したバックアップができない可能性がある。又はバックアップに非常に長い時間がかかることがある。
このような事態を避けるため、制御装置は、メモリやストレージ等のリソースに対する、複数のプロセッサやコアからのアクセスを管理するための機構(特許文献1に開示されているようなセマフォを使った排他制御機構等)を備えることが一般的である。しかしながら、プロセッサやコアの数が増え、アクセス処理が複雑な依存関係を有するようになったシステムでは、アクセス管理は非常に複雑である。ここでいう依存関係とは、あるプロセッサ(又はコア)による特定のリソースへのアクセスと、他のプロセッサ(又はコア)で実行している処理とが互いに競合したり、影響したりする関係性のことをいう。このようなアクセス処理の依存関係を解析することや、それらのアクセス処理各々に排他制御を実装することは、非常に工数が掛かり、開発者の負担となる。また、排他制御を実装することで発生するオーバヘッドによるパフォーマンスの低下や、コード量の増加も問題となる。
汎用のコンピュータ用オペレーティングシステムは、スナップショットやハイバネーションといった、メモリ上のデータを所定のストレージへバックアップする機能を提供している。ところが、このような機能は、任意の瞬間におけるメモリ上のデータをそのままバックアップするものであって、メモリ上のデータの整合性は保証していない。
例えば図2に示すように、4つのメンバ変数を持つ構造体が1つのデータセットとして定義されているものとする。そして制御装置がある指令を実行すると、これら4つのメンバ変数が全て更新されるものとする。この場合、仮に3つ目のメンバ変数までが更新され、4つの目のメンバ変数が未だ更新されていない状態でスナップショット機能が実行されると、バックアップされたデータセットはデータの整合性が保たれていないものとなる。つまり、データの整合性が保証されているとは、指令の実行結果が関連する全てのデータ(先の例における4つのメンバ変数)に完全に反映された状態となっていることをいう。
スナップショットやハイバネーションといった機能は、不具合の調査や、システム障害からの迅速な再起動には効果的ではあるが、データの整合性を厳密に保証することが求められるバックアップ用途には適さない。特に、リアルタイム性が高く、データセットとしての更新頻度が高い産業機械の制御装置においては、スナップショットやハイバネーションといった機能を採用することは難しい。
データセットが完全に更新されるまでプロセッサ又はコア間で待ち合わせを行うことにより、データの整合性を保証することも考えられる。しかし、一般にプロセッサ間又はコア間で待ち合わせを行うには、各プロセッサ及び各コアが実行するプログラム内に、待ち合わせを行うためのコマンドを明示的に実装する必要がある。また、データセットの更新の度に待ち合わせを行うと、パフォーマンスの大幅な低下が懸念される。
また、データの不整合は、複数のプロセッサ又はコアが協力してデータ更新処理を行うような場合に、任意のタイミングでバックアップを行うと発生することがある。例えば図3に示すように、データセットDATA_SET1及びDATA_SET2が、あるシーケンスの実行により連動して更新されるよう設計されている場合を考える。この場合、プロセッサ#1がDATA_SET1の更新を完了し、プロセッサ#2がDATA_SET2の更新を完了していない状態でバックアップが実行されると、DATA_SET1とDATA_SET2との間で不整合が発生する。
このように、任意のタイミングでデータバックアップを行う従来技術では、データの整合性を保証することが難しい。これは、メモリ内容のバックアップに限らず、ストレージやポータブルデバイス等に格納されたデータを入出力する際や、シャットダウンシーケンスを実行する際にも同様に生じうる問題である。また、バックアップ先及び入出力先のストレージやデバイスにおいても、厳密にはアクセス管理が必要になる。してみると、マルチプロセッサ又はマルチコアのプロセッサが稼動する情報処理システム、特にリアルタイム性の高い産業機械の制御装置においては、バックアップやデータ入出力は非常に難しい処理であるといえる。
特開昭62−219058号公報
こうした背景から、従来、産業機械の制御装置におけるデータのバックアップ及び入出力は、制御装置の電源投入直後、シングルプロセッサ又はシングルコアで動作する段階において実施するケースが多かった。産業機械においてはデータの整合性が特に強く要求され、バックアップすべきパラメタ等のデータの数も非常に多いからである。しかし、データのバックアップ及び入出力を行うだけのために制御装置の電源を入れ直すことは、周辺機器(例えばアクチュエータ、計測機器及びモータアンプ等)への負担が大きいうえ、製造工程への影響も少なくなく、無駄の多い作業であった。
本発明はこのような課題を解決するためのものであり、マルチプロセッサ又はマルチコアプロセッサ等の複数のプロセッサ間で安全にリソースを共有することが可能な制御装置を提供することを目的とする。
々がリソースを管理する、またはリソースを共有する複数のプロセッサを有する制御装置であって、リソースのデータを整合させる処理の開始と、第1系統のシーケンス処理とを実行する第1のプロセッサと、第2系統のシーケンス処理を実行する第2のプロセッサと、を有し、第1のプロセッサがリソース間のデータを整合させる処理の開始を示すリクエストメッセージを送信し、リクエストメッセージには、バックアップ対象のデータを特定する情報が含まれ、第2のプロセッサがリクエストメッセージを受信するリクエストメッセージ送受信手段と、第2のプロセッサが、前記バックアップ対象のデータに関連するシーケンス処理を完了した後、バックアップ対象のデータを含むレディメッセージを送信し、第1のプロセッサがレディメッセージを受信するレディメッセージ送受信手段と、第2のプロセッサに対し、第1のプロセッサがレディメッセージに含まれるバックアップ対象のデータをバックアップし、リソースのデータを整合させる処理が完了したことを示すエンドメッセージを通知し、第2のプロセッサがエンドメッセージを受信するエンドメッセージ送受信手段と、を有し、第1のプロセッサは、リクエストメッセージの通知後に待機状態となり、レディメッセージの通知後に動作を再開し、第2のプロセッサは、レディメッセージの通知後に待機状態となり、エンドメッセージの通知後に動作を再開することを特徴とする。
各々がリソースを管理する、またはリソースを共有する複数のプロセッサを有する制御装置であって、リソースのデータを整合させる処理の開始と、第1系統のシーケンス処理とを実行する第1のプロセッサと、第2系統のシーケンス処理を実行する第2のプロセッサと、を有し、第1のプロセッサがリソース間のデータを整合させる処理の開始を示すリクエストメッセージを送信し、リクエストメッセージには、バックアップ対象のデータを特定する情報が含まれ、第2のプロセッサがリクエストメッセージを受信するリクエストメッセージ送受信手段と、第2のプロセッサが、バックアップ対象のデータに関連するシーケンス処理を完了した後、バックアップ対象のデータを含むレディメッセージを送信し、第1のプロセッサがレディメッセージを受信するレディメッセージ送受信手段と、第1のプロセッサは、データを整合させる処理として、第2のプロセッサによるレディメッセージの受信確認に応じて、シャットダウン処理を実行することを特徴とする。
本発明により、マルチプロセッサ又はマルチコアプロセッサ等の複数のプロセッサ間で安全にリソースを共有することが可能な制御装置を提供することができる。
データの不整合の発生例を示す図である。 データの不整合の発生例を示す図である。 データの不整合の発生例を示す図である。 制御装置1の機能及び動作を示す図である。 制御装置1の機能及び動作を示す図である。 制御装置1の動作を示す図である。 制御装置1の機能及び動作を示す図である。 制御装置1の動作を示す図である。 制御装置1のハードウェア構成を示す図である。 プロセッサ11a、11bの関係を示す図である。
<実施形態1>
図9は、本発明の実施形態1による制御装置1の要部を示す概略的なハードウェア構成図である。制御装置1は、例えばプログラムを読み込んで工作機械やロボット等の機械の制御を行う数値制御装置等である。制御装置1は、複数のプロセッサ11(本図では11a,11bの2つを例示する)、ROM12、RAM13、不揮発性メモリ14、インタフェース18、バス10、軸制御回路16、サーボアンプ17を有する。インタフェース18には、例えば操作盤60等が接続される。
プロセッサ11は、制御装置1を全体的に制御するプロセッサである。プロセッサ11は、ROM12に格納されたシステム・プログラムをバス10を介して読み出し、システム・プログラムに従って制御装置1全体を制御する。
本実施の形態では、制御装置1は複数のプロセッサ11(11a,11b)を有している。個々のプロセッサ11(11a,11b)は、例えばマルチプロセッサ環境における各プロセッサ、マルチコアプロセッサにおける各コアに相当する。
ROM12は、機械の各種制御等を実行するためのシステム・プログラムを予め格納している。
RAM13は、一時的な計算データや表示データ、後述する操作盤60を介してオペレータが入力したデータ等を一時的に格納する。例えばDRAMはこれに含まれる。
不揮発性メモリ14は、例えば図示しないバッテリでバックアップされており、制御装置1の電源が遮断されても記憶状態を保持する。例えばバッテリでバックアップされたSRAMなどが相当する。不揮発性メモリ14は、例えばRAM13上のデータのバックアップ先ストレージとして使用される。
軸制御回路16は、機械の動作軸を制御する。軸制御回路16は、プロセッサ11が出力する軸の移動指令量を受けて、軸の移動指令をサーボアンプ17に出力する。
サーボアンプ17は、軸制御回路16が出力する軸の移動指令を受けて、サーボモータ50を駆動する。
サーボモータ50は、サーボアンプ17により駆動されて機械の動作軸を動かす。サーボモータ50は、典型的には位置・速度検出器を内蔵する。位置・速度検出器は位置・速度フィードバック信号を出力し、この信号が軸制御回路16にフィードバックされることで、位置・速度のフィードバック制御が行われる。
なお、図1では軸制御回路16、サーボアンプ17、サーボモータ50は1つずつしか示されていないが、実際には制御対象となる機械に備えられた軸の数だけ用意される。例えば、6軸を備えたロボットを制御する場合、それぞれの軸に対応する軸制御回路16、サーボアンプ17、サーボモータ50が合計6セット用意される場合もある。
操作盤60は、ディスプレイやハードウェアキー等を備えたデータ入出力装置である。操作盤60は、インタフェース18を介してプロセッサ11から受けた情報をディスプレイに表示する。操作盤60は、ハードウェアキー等から入力された指令やデータ等をインタフェース18を介してプロセッサ11に渡す。
図4は、本実施形態における制御装置1の概略的な機能及び動作ブロック図である。制御装置1は、リクエストメッセージ送受信手段101、シーケンス処理完了判定手段102、レディメッセージ送受信手段103、エンドメッセージ送受信手段104を有する。リクエストメッセージ送受信手段101、シーケンス処理完了判定手段102、レディメッセージ送受信手段103、及びエンドメッセージ送受信手段104は、プロセッサ11の一機能としてハードウェア的に実現されても良く、例えばROM12、RAM13、又は不揮発性メモリ14に格納されたプログラムをプロセッサ11が実行することにより実現されても良い。
図4のプロセッサ11a(プロセッサ#1)、プロセッサ11b(プロセッサ#2)は、それぞれRAM13上に各自のリソースを管理しているものとする。本実施例は、図10に示すように、1つのデータセット内の異なるデータ(データ#1、データ#2)を、プロセッサ11a及びプロセッサ11bがそれぞれ独自に管理している状態を想定している。
リクエストメッセージ送受信手段101は、プロセッサ11a(任意のプロセッサ又はコア。図4においてはプロセッサ#1)からプロセッサ11b(他の全てのプロセッサ又はコアの各々。図4においてはプロセッサ#2)に対してリクエストメッセージを送信する。プロセッサ11aとプロセッサ11bとは、1対多の関係である。
リクエストメッセージとは、メッセージの送信者(プロセッサ11a)がバックアップ処理を実行したい旨を受信者(プロセッサ11b)に通知するものである。リクエストメッセージには、バックアップ対象のデータ(データセットを含む)を特定する情報(メモリブロックのインデックス)が含まれる。
リクエストメッセージの送信後、リクエストメッセージ送受信手段101は、プロセッサ11aをバックアップ処理の実行待ち(待機状態)とする。
リクエストメッセージを受信したプロセッサ11bは、リクエストメッセージの内容をシーケンス処理完了判定手段に通知する。
シーケンス処理完了判定手段102は、リクエストメッセージの受信者(プロセッサ11b)において、リクエストメッセージの内容に関連する、プロセッサ11b自身が実行するシーケンス処理が完了したか否かを判定する。つまりプロセッサ11bは、リクエストメッセージに含まれていたメモリブロックのインデックスにアクセスするデータを特定し、当該データにかかるシーケンス処理を終わらせる。
シーケンス処理が完了したと判断すると、シーケンス処理完了判定手段102は、プロセッサ11bを待機状態に設定し、レディメッセージ送受信手段103に通知を送信する。
レディメッセージ送受信手段103は、リクエストメッセージの受信者(プロセッサ11b)からリクエストメッセージの送信者(プロセッサ11a)に対してレディメッセージを送信する。
レディメッセージとは、リクエストメッセージの送信者(プロセッサ11a)が実行を希望するバックアップ処理に関連するシーケンス処理のうち、リクエストメッセージの受信者(プロセッサ11b)に関係する部分の実行が完了したことを、リクエストメッセージの送信者(プロセッサ11a)に通知するものである。
プロセッサ11aは、リクエストメッセージの宛先となった全てのプロセッサ11bからレディメッセージを受信したか否かを判断する。全てのプロセッサ11bからレディメッセージを受信したならば、レディメッセージ送受信手段103は、プロセッサ11aのバックアップ処理の実行待ち(待機状態)を解除する。
プロセッサ11aはバックアップ処理を実行する。
エンドメッセージ送受信手段104は、リクエストメッセージの送信者(プロセッサ11a)からリクエストメッセージの受信者(プロセッサ11b)に対してエンドメッセージを送信する。
エンドメッセージとは、リクエストメッセージの送信者(プロセッサ11a)においてバックアップ処理が完了したことを通知するものである。
エンドメッセージ送受信手段104は、エンドメッセージを受信したプロセッサ11bの待機状態を解除する。
図5を用いて、従来技術に対する本実施形態の利点について説明する。本実施形態の特徴的な構成要素であるシーケンス処理完了判定手段102は、リクエストメッセージを受信した全てのプロセッサ11bにおいてバックアップ処理の対象データに関連するシーケンス処理が完了したことを確認してから、プロセッサ11bを待機状態に移行させる。仮にプロセッサ11bがリクエストメッセージを受信してすぐに待機状態に移行するなら、データセットには不整合が発生してしまう。しかし本実施形態では、シーケンス処理完了判定手段102が、シーケンス処理が終了するまではプロセッサ11bを待機状態に移行させず、データセットが整合するまで実行処理を継続させる。そのため、データセットの不整合が発生しない。
図6は、プロセッサ11a(プロセッサ#1)、プロセッサ11b(プロセッサ#2)、プロセッサ11c(プロセッサ#3)がそれぞれ、系統1軸制御、系統2軸制御、系統3軸制御を実行する制御装置1において、プロセッサ11b(プロセッサ#2)がデータバックアップを実行する場合のプロセッサ間の処理フローの例を示すチャートである。
初期状態において、プロセッサ11a、プロセッサ11b、プロセッサ11cはそれぞれ系統1軸制御、系統2軸制御、系統3軸制御にかかる処理を実行している(S11,S21,S31)。
プロセッサ11bが、バックアップ処理のリクエストメッセージをプロセッサ11a、プロセッサ11cに対して送信する(S22)。この後、プロセッサ11bは待機状態となる。
リクエストメッセージを受信したプロセッサ11a、プロセッサ11cは、それぞれ当該リクエストメッセージの内容に関係するシーケンス処理を完了させ(S12,S32)、プロセッサ11bに対しレディメッセージを送信する。この後、プロセッサ11a、プロセッサ11cは待機状態となる。
プロセッサ11bは、全てのプロセッサ11a、プロセッサ11cからレディメッセージを受信したことを確認すると、待機状態を解除してバックアップ処理を実行する(S23)。バックアップ処理が完了すると、プロセッサ11bは、プロセッサ11a、プロセッサ11cに対してエンドメッセージを送信し(S24)する。またプロセッサ11bは、系統2軸制御の実行を再開する(S25)。
プロセッサ11a、プロセッサ11cは、エンドメッセージを受信すると待機状態を解除し、系統1軸制御、系統3軸制御の実行を再開する(S13,S33)。
本実施形態によれば、データの更新頻度が高く、複雑なアクセス処理が混在する制御装置1であっても、データの整合性を保証したデータバックアップ、データ入出力、及びシャットダウンシーケンスの実行等が可能になる。また、排他制御を実装することで発生するオーバヘッドによるパフォーマンスの低下、コード量の増加によるストレージやメモリの圧迫等の問題を回避することができる。
また本実施形態では、リクエストメッセージの内容に応じ、データの整合性を保つために必要な範囲において、バックアップ前にシーケンス処理を完了させ、バックアップ処理の完了を待機する構成とした。したがって、例えば系統間や制御軸間の依存関係に従って、シーケンス処理の実行範囲、すなわちデータの整合性の保証範囲が適切に設定される。
なお上述の実施形態では、バックアップ処理のリクエストメッセージをトリガとして、一連の処理が実行される例を示した。しかしながら、プライマリのプロセッサ又はコアの実行したい処理の種類に応じて、リクエストメッセージの種類、形式、内容、シーケンス処理の内容や範囲等が異なっていても構わない。例えばバックアップ処理の場合でも、不揮発性メモリ14やROM12へのバックアップ、図示しない外部ストレージへのバックアップといった態様の違いに応じて、諸条件を適宜変更して差し支えない。
<実施形態2>
図7を用いて、実施形態2にかかる制御装置1の動作について説明する。実施形態2は実施形態1の変形例であり、特に明示しない限り、実施形態2にかかる制御装置1の構成要素及び動作は実施形態1のものを踏襲する。
本実施形態では、シーケンス処理完了判定手段102は、リクエストメッセージの受信者(実施形態1の例ではプロセッサ11b)において、リクエストメッセージで通知された処理(実施形態1の例ではバックアップ処理)に依存しない(影響を与えない)処理を別のタスクとして実装しておくことができる。そしてプロセッサ11bは、レディメッセージを送信後、待機状態に移行する代わりに、当該別のタスクにスイッチする。すなわち、バックアップ処理に関係のないタスクを、バックアップ処理と独立したメモリ空間で継続することができる。
この場合、エンドメッセージ送受信手段104は、エンドメッセージを受信した際、プロセッサ11bがバックアップ処理の完了待ち(待機状態)であるか、別のタスクを実行している状態であるかを判定する。バックアップ処理の完了待ち(待機状態)であれば、待機状態を解除する。一方、別のタスクが実行状態であれば、リクエストメッセージ受信時のタスク(例えば軸制御)にスイッチする。
本実施例によれば、リクエストメッセージを受信したプロセッサ又はコアは、リクエストされた処理の完了を待つ間に別のタスクを実行できるので、制御装置1全体の処理効率を向上させることができる。
<実施形態3>
図8を用いて、実施形態3にかかる制御装置1の動作について説明する。実施形態3は実施形態1の変形例であり、特に明示しない限り、実施形態3にかかる制御装置1の構成要素及び動作は実施形態1のものを踏襲する。
本実施形態は、プライマリのプロセッサから送信されるメッセージの種類に応じて、シーケンス処理完了判定の条件や、エンドメッセージ受信後の動作を変える点に特徴を有する。
図8は、実施形態3のバックアップ処理に関する動作スキームを、システムエラー発生時のシャットダウンシーケンス実行に応用した場合の、プロセッサ11a(プロセッサ#1)、プロセッサ11b(プロセッサ#2)、プロセッサ11c(プロセッサ#3)の動作を示すチャートである。
初期状態において、プロセッサ11a、プロセッサ11b、プロセッサ11cはそれぞれ系統1軸制御、系統2軸制御、系統3軸制御にかかる処理を実行している(S211,S221,S231)。
プロセッサ11bが、システムエラー発生通知(実施形態1のバックアップ処理のリクエストメッセージに相当)をプロセッサ11a、プロセッサ11cに対して送信する(S222)。なおシステムエラー発生通知にも、バックアップ対象のデータが存在するメモリブロックのインデックスが含まれるものとする。この後、プロセッサ11bは待機状態となる。
システムエラー発生通知を受信したプロセッサ11a、プロセッサ11cは、それぞれバックアップ対象のデータに関係するシーケンス処理を完了させる。併せて、システムエラー発生通知の受信時には、シャットダウンシーケンスの実行に備え、レジスタをリセットする、コアの周波数を落とす等の処理を実行しても良い(S212,S232)。シーケンス処理等が完了したなら、プロセッサ11a、プロセッサ11cは、プロセッサ11bに対しレディメッセージを送信する。この後、プロセッサ11a、プロセッサ11cは待機状態となる。
プロセッサ11bは、全てのプロセッサ11a、プロセッサ11cからレディメッセージを受信したことを確認すると、待機状態を解除してシャットダウンシーケンスを実行する(S223)。シャットダウンシーケンスが完了すると、プロセッサ11bは、プロセッサ11a、プロセッサ11に対してプロセッサ停止要求(実施形態1のエンドメッセージに相当)を送信し(S224)する。またプロセッサ11bは動作を停止する(S225)。
プロセッサ11a、プロセッサ11cは、プロセッサ停止要求を受信すると待機状態を解除し、動作を停止する(S213,S233)。
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、本発明は、データバックアップ、データ入出力、及びシャットダウンシーケンスに限らず、様々な用途に適用可能である。例えばシステムエラー発生時のプロセッサ間又はコア間の通信方法、安全にシステムを停止するための非常停止処理の実行方法などに応用できる。また、アプリケーションの再起動を行う際に、メモリマップ上の特定のメモリを初期化する方法としても利用できる。
1 制御装置
11(11a,11b,11c) プロセッサ
12 ROM
13 RAM
14 不揮発性メモリ
18 インタフェース
10 バス
16 軸制御回路
17 サーボアンプ
50 サーボモータ
60 操作盤
101 リクエストメッセージ送受信手段
102 シーケンス処理完了判定手段
103 レディメッセージ送受信手段
104 エンドメッセージ送受信手段

Claims (3)

  1. 各々がリソースを管理する、またはリソースを共有する複数のプロセッサを有する制御装置であって、
    前記リソースのデータを整合させる処理の開始と、第1系統のシーケンス処理とを実行する第1のプロセッサと、
    第2系統のシーケンス処理を実行する第2のプロセッサと、を有し、
    前記第1のプロセッサが前記リソース間のデータを整合させる処理の開始を示すリクエストメッセージを送信し、前記リクエストメッセージには、バックアップ対象のデータを特定する情報が含まれ、前記第2のプロセッサが前記リクエストメッセージを受信するリクエストメッセージ送受信手段と、
    前記第2のプロセッサが、前記バックアップ対象のデータに関連するシーケンス処理を完了した後、前記バックアップ対象のデータを含むレディメッセージを送信し、前記第1のプロセッサが前記レディメッセージを受信するレディメッセージ送受信手段と、
    前記第2のプロセッサに対し、前記第1のプロセッサが前記レディメッセージに含まれる前記バックアップ対象のデータをバックアップし、前記リソースのデータを整合させる処理が完了したことを示すエンドメッセージを通知し、前記第2のプロセッサが前記エンドメッセージを受信するエンドメッセージ送受信手段と、
    を有し、
    前記第1のプロセッサは、前記リクエストメッセージの通知後に待機状態となり、前記レディメッセージの通知後に動作を再開し、
    前記第2のプロセッサは、前記レディメッセージの通知後に待機状態となり、前記エンドメッセージの通知後に動作を再開することを特徴とする制御装置。
  2. 前記第1のプロセッサは、前記データを整合させる処理として、メモリ上のデータのバックアップ処理を実行することを特徴とする
    請求項1記載の制御装置。
  3. 各々がリソースを管理する、またはリソースを共有する複数のプロセッサを有する制御装置であって、
    前記リソースのデータを整合させる処理の開始と、第1系統のシーケンス処理とを実行する第1のプロセッサと、
    第2系統のシーケンス処理を実行する第2のプロセッサと、を有し、
    前記第1のプロセッサが前記リソース間のデータを整合させる処理の開始を示すリクエストメッセージを送信し、前記リクエストメッセージには、バックアップ対象のデータを特定する情報が含まれ、前記第2のプロセッサが前記リクエストメッセージを受信するリクエストメッセージ送受信手段と、
    前記第2のプロセッサが、前記バックアップ対象のデータに関連するシーケンス処理を完了した後、前記バックアップ対象のデータを含むレディメッセージを送信し、前記第1のプロセッサが前記レディメッセージを受信するレディメッセージ送受信手段と、
    前記第1のプロセッサは、前記データを整合させる処理として、前記第2のプロセッサによるレディメッセージの受信確認に応じて、シャットダウン処理を実行することを特徴とする制御装置。
JP2018106000A 2018-06-01 2018-06-01 制御装置 Active JP6912421B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018106000A JP6912421B2 (ja) 2018-06-01 2018-06-01 制御装置
DE102019003694.8A DE102019003694A1 (de) 2018-06-01 2019-05-24 Steuergerät
US16/423,681 US11119461B2 (en) 2018-06-01 2019-05-28 Controller
CN201910464375.6A CN110554660B (zh) 2018-06-01 2019-05-30 控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018106000A JP6912421B2 (ja) 2018-06-01 2018-06-01 制御装置

Publications (2)

Publication Number Publication Date
JP2019211897A JP2019211897A (ja) 2019-12-12
JP6912421B2 true JP6912421B2 (ja) 2021-08-04

Family

ID=68576333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018106000A Active JP6912421B2 (ja) 2018-06-01 2018-06-01 制御装置

Country Status (4)

Country Link
US (1) US11119461B2 (ja)
JP (1) JP6912421B2 (ja)
CN (1) CN110554660B (ja)
DE (1) DE102019003694A1 (ja)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62219058A (ja) 1986-03-19 1987-09-26 Nec Corp 共有メモリの排他制御方式
JPS63254555A (ja) 1987-04-13 1988-10-21 Hitachi Ltd 共有二重化メモリ制御方式
JPH0981526A (ja) 1995-09-08 1997-03-28 Hitachi Ltd マルチプロセッサシステム
GB0214669D0 (en) * 2002-06-26 2002-08-07 Ibm Method for maintaining data access during failure of a controller
JP4601557B2 (ja) * 2005-02-07 2010-12-22 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置
JP5745868B2 (ja) * 2011-01-18 2015-07-08 トヨタ自動車株式会社 マルチプロセッサシステム
JP5966466B2 (ja) * 2012-03-14 2016-08-10 富士通株式会社 バックアップ制御方法、および情報処理装置
CN104346317B (zh) * 2013-07-23 2019-08-27 南京中兴软件有限责任公司 共享资源访问方法和装置
WO2015074232A1 (zh) * 2013-11-22 2015-05-28 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
GB2533414B (en) * 2014-12-19 2021-12-01 Advanced Risc Mach Ltd Apparatus with shared transactional processing resource, and data processing method
JP6424797B2 (ja) * 2015-11-02 2018-11-21 株式会社デンソー 車載装置
US11222256B2 (en) * 2017-10-17 2022-01-11 Xilinx, Inc. Neural network processing system having multiple processors and a neural network accelerator

Also Published As

Publication number Publication date
DE102019003694A1 (de) 2019-12-05
CN110554660A (zh) 2019-12-10
US11119461B2 (en) 2021-09-14
CN110554660B (zh) 2023-12-19
US20190369582A1 (en) 2019-12-05
JP2019211897A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
US8607219B2 (en) Information processing device and a firmware updating method of the information processing device
JP4585463B2 (ja) 仮想計算機システムを機能させるためのプログラム
US20070168082A1 (en) Task-based robot control system for multi-tasking
JP6971016B2 (ja) 制御装置、制御方法およびプログラム
CN103645678A (zh) 一种实时响应网络控制系统
US7853826B2 (en) Operating system transfer and launch without performing post
US7428660B2 (en) Starting control method, duplex platform system, and information processor
CN115113591A (zh) 使用控制软件的虚拟化实例控制工业过程
JP6912421B2 (ja) 制御装置
US8291419B2 (en) Fault tolerant system for execution of parallel jobs
US6374335B1 (en) Data loading process
US20060059305A1 (en) Efficient firmware update for hierarchical data storage systems
US5291613A (en) Method for executing a control instruction in a multi-computer system
JP2799104B2 (ja) プログラマブルコントローラの二重化切替装置
JP2018130775A (ja) ロボット制御装置、ロボットシステム及びロボットの制御方法
JP3992767B2 (ja) 計算機処理システム
JPH09251430A (ja) 計算機システムのデータ配布装置
CN116414589A (zh) 车载操作系统、调试系统及方法、电子设备及存储介质
WO2013140765A1 (ja) オフラインバックアップ方式におけるバックアップ装置、バックアップ方法、およびバックアップシステム
JP2003280939A (ja) フォールトトレラントシステムにおけるプロセスペア実行制御方法、プロセスペア実行制御プログラム、及びフォールトトレラントシステム
JP2002268899A (ja) 情報処理装置及びプログラムの動作環境の動的変更方法並びにプログラム
JP2013140491A (ja) Os動作装置及びos動作プログラム
JP3054472B2 (ja) マルチタスクシステムにおける障害処理方法
JPH08249296A (ja) マルチプロセッサシステム
CN116450182A (zh) 自动化流程机器人的更新方法、计算机设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210708

R150 Certificate of patent or registration of utility model

Ref document number: 6912421

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150