IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

<>
  • 特許-制御装置 図1
  • 特許-制御装置 図2A
  • 特許-制御装置 図2B
  • 特許-制御装置 図3
  • 特許-制御装置 図4
  • 特許-制御装置 図5
  • 特許-制御装置 図6
  • 特許-制御装置 図7
  • 特許-制御装置 図8
  • 特許-制御装置 図9
  • 特許-制御装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】制御装置
(51)【国際特許分類】
   B25J 13/00 20060101AFI20240214BHJP
   G05B 19/4155 20060101ALI20240214BHJP
   G05B 19/414 20060101ALI20240214BHJP
   G05B 19/05 20060101ALI20240214BHJP
【FI】
B25J13/00 A
G05B19/4155 N
G05B19/414 P
G05B19/05 A
【請求項の数】 2
(21)【出願番号】P 2022526985
(86)(22)【出願日】2021-05-21
(86)【国際出願番号】 JP2021019375
(87)【国際公開番号】W WO2021241440
(87)【国際公開日】2021-12-02
【審査請求日】2022-12-19
(31)【優先権主張番号】P 2020093395
(32)【優先日】2020-05-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】小池 将隆
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2019-067045(JP,A)
【文献】特開2003-241804(JP,A)
【文献】特開2005-316880(JP,A)
【文献】特開2019-067046(JP,A)
【文献】中国特許出願公開第101334766(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/16-19/00
G05B 19/05-19/4155
G06F 7/57-15/78
(57)【特許請求の範囲】
【請求項1】
複数のプラットフォームを有する制御装置において、
複数の指令アプリケーション部と、
前記複数の指令アプリケーション部にそれぞれ対応付けられた複数のプラットフォーム部と、
前記複数のプラットフォーム間で通信される情報を記憶する共有メモリと、
サーボ制御処理部と、を備え、
前記指令アプリケーション部は、
指令値を含む指令処理を出力する指令処理部と、
協調制御対象となる前記プラットフォーム部の識別情報と調停方法種別とを出力する指令調停方法指定部とを備え、
前記プラットフォーム部は、
前記指令アプリケーション部から、前記指令値を取得する第1インタフェース部と、
前記指令アプリケーション部から、前記プラットフォーム部の識別情報と調停方法種別とを取得する第2インタフェース部と、
前記共有メモリを介して、前記プラットフォーム部間で前記指令処理、前記識別情報、及び前記調停方法種別の伝達を行うプラットフォーム間通信部と、
協調制御対象となる全ての前記プラットフォーム部から、前記指令処理、前記識別情報、前記調停方法種別を取得すると共に、前記識別情報及び前記調停方法種別に基づいて前記指令処理の調停を行い、調停された前記指令処理を前記共有メモリに出力する指令調停部とを備え、
前記サーボ制御処理部は、前記共有メモリから取得された、調停後の前記指令値に基づいて、サーボ制御を行う、制御装置。
【請求項2】
前記調停方法種別は、前記複数のプラットフォーム部間での前記指令処理の順序制御、同期、混合、及び重畳のいずれか1つを含むことを特徴とする、請求項1に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置に関する。
【背景技術】
【0002】
製造工場では、コンベア、ロボット、加工機等を一つの生産ラインで使用するケースが増えている。現状、単純な動作をするコンベア等は、PLC(Programmable Logic Controller)上でラダー、ファンクションブロック、構造化テキスト言語(ST言語)等を使い指令していることが多い。また、ロボットではロボットコントローラ上でロボットプログラムによって指令している。一方、工作機械等の加工機では制御装置上でGコードによって指令している。
【0003】
このような場合、一つの生産ラインにおいて、複数の異なる制御装置や、複数の指令言語が使われている。一つの生産ラインに複数の異なる制御装置が使われている生産ラインでは、他の装置の動作を待ち、次の動作を行うような動作では、各装置間の動作タイミングの調整を、例えば各制御装置に備わる分散制御プラットフォームを用いるアプリケーションによって行っている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2004-220326号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
そのため、ラインの設計者は、各制御装置のアプリケーション上で装置間の協調動作を行う指令を作成しなくてはならず、複雑な設計を強いられる。また、この装置間の動作の切り替えには、装置間の動作を確認する時間が発生しており、円滑な協調動作を行うことが困難である。
【0006】
各制御装置のアプリケーションが動作タイミングを意識せずに、制御対象の装置を動作させることが可能になる技術が望まれている。
【課題を解決するための手段】
【0007】
本開示の一態様は、複数のプラットフォームを有する制御装置において、複数の指令アプリケーション部と、前記複数の指令アプリケーション部にそれぞれ対応付けられた複数のプラットフォーム部と、前記複数のプラットフォーム間で通信される情報を記憶する共有メモリと、サーボ制御処理部と、を備え、前記指令アプリケーション部は、指令値を出力する指令処理部と、協調制御対象となる前記プラットフォーム部の識別情報と調停方法種別とを出力する指令調停方法指定部とを備え、前記プラットフォーム部は、前記指令アプリケーション部から、前記指令値を取得する第1インタフェース部と、前記指令アプリケーション部から、前記プラットフォーム部の識別情報と調停方法種別とを取得する第2インタフェース部と、前記共有メモリを介して、前記プラットフォーム部間で前記指令処理、前記識別情報、及び前記調停方法種別の伝達を行うプラットフォーム間通信部と、協調制御対象となる全ての前記プラットフォーム部から、前記指令処理、前記識別情報、前記調停方法種別を取得すると共に、前記識別情報及び前記調停方法種別に基づいて前記指令処理の調停を行い、調停された前記指令処理を前記共有メモリに出力する指令調停部とを備え、前記サーボ制御処理部は、前記共有メモリから取得された、調停後の前記指令値に基づいて、サーボ制御を行う。
【発明の効果】
【0008】
本発明によれば、各制御装置のアプリケーションが動作タイミングを意識せずに、制御対象の装置を動作させることが可能となる。
【図面の簡単な説明】
【0009】
図1】一実施形態に係る制御装置の機能ブロック図である。
図2A】一実施形態に係る制御装置の動作を示すフローチャートである。
図2B】一実施形態に係る制御装置の動作を示すフローチャートである。
図3】一実施形態に係る制御装置における情報の流れを示す図である。
図4】一実施形態に係る制御装置が制御するシステムの例を示す図である。
図5】一実施形態に係る制御装置の動作を示すシーケンス図である。
図6】一実施形態に係る制御装置における情報の流れを示す図である。
図7】一実施形態に係る制御装置が制御するシステムの例を示す図である。
図8】一実施形態に係る制御装置の動作を示すシーケンス図である。
図9】一実施形態に係る制御装置の動作を示すシーケンス図である。
図10】一実施形態に係る制御装置の動作を示すシーケンス図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図1図7を参照することにより説明する。
【0011】
〔1 実施形態の構成〕
図1は、本実施形態に係る制御装置1の構成を示す機能ブロック図である。制御装置1は、第1制御部10と、第2制御部20と、第1共有メモリ31と、第2共有メモリ32と、サーボ制御処理部40とを備える。なお、実施例として2つの制御部を有する制御装置を例示するが、制御部は2つに限られない。制御装置1は、3つ以上の制御部を備えてもよい。例えば、3つ以上の制御部を備えている場合、それぞれの制御部は、第1制御部10又は第2制御部20の備える機能部と同等の機能部を備える。具体的には、3つの制御部を備えている場合、3番目の制御部(「第3制御部」という)は、第3指令アプリケーション部と、第3プラットフォーム部と、を備える。また、4つの制御部を備えている場合、4番目の制御部(「第4制御部」という)は、第4指令アプリケーション部と、第4プラットフォーム部と、を備える。本実施形態においては、2つの制御部を備えている場合について例示するが、3つ以上の制御部を備える場合も、各制御部は、同様に構成される。
【0012】
第1制御部10と第2制御部20とは、各々が互いに異なる装置を制御する制御部である。ここで、「互いに異なる装置」とは、例えば、コンベア、ロボット、工作機械、加工機、プレス機等が挙げられる。制御装置1は、第1制御部10と第2制御部20とにより、互いに異なる装置を協調制御する。なお、第1制御部10と第2制御部20とは、例えばCPUによって構成される。
【0013】
第1制御部10は、第1指令アプリケーション部11と、第1プラットフォーム部12とを備える。
【0014】
第1指令アプリケーション部11は、第1プラットフォーム部12に対し、第1制御部10で制御する装置に対する指令値を含む指令処理と、当該指令処理と、第2制御部20で制御する装置に対する第2制御部20からの指令処理とを調停する調停方法とを出力する。
【0015】
第1指令アプリケーション部11は、第1調停方法指定部111と、第1指令処理部112とを備える。
【0016】
第1調停方法指定部111は、他の複数のプラットフォーム間で、予めユーザにより設定された協調制御情報に基づいて、当該プラットフォーム間で、指令の調停方法のネゴシエーションを行う。ここで、「協調制御情報」とは、例えば、協調制御対象となる全てのプラットフォームの識別情報及び調停方法を含む。また、「調停方法」とは、具体的には、順序制御、同期、混合、重畳の何れか1つを含み、指令値の演算方法を含む。
具体的には、「順序制御」とは、各プラットフォームが実行する指令の順序を制御する処理のことである。「同期」とは、各プラットフォームが実行する指令を同期させる処理のことである。「混合」とは、第1のプラットフォームの指令を、第2のプラットフォームから出力する一方で、第2のプラットフォームの指令を、第1のプラットフォームから出力する処理のことである。「重畳」とは、各プラットフォームで用いる指令値を、1つのプラットフォームで加算して処理することである。
【0017】
第1調停方法指定部111は、第1プラットフォーム部12が備える、後述の第1調停方法指定用インタフェースに対し、協調制御対象となる全てのプラットフォームの識別情報と、調停方法の種別とを出力する。
【0018】
第1指令処理部112は、第1プラットフォーム部12に対し、第1制御部10で制御する装置を駆動するための指令値を出力する。より具体的には、第1指令処理部112は、第1プラットフォーム部12が備える、後述の第1指令用インタフェース121に対し、上記の指令値を出力する。
【0019】
第1プラットフォーム部12は、第1指令用インタフェース121と、第1調停方法指定用インタフェース122と、第1プラットフォーム間通信部123と、第1指令調停部124とを備える。
【0020】
第1指令用インタフェース121は、第1指令アプリケーション部11から取得した指令値を、第1指令調停部124に受け渡すためのインタフェースである。
【0021】
第1調停方法指定用インタフェース122は、第1指令アプリケーション部11から取得した、協調制御対象となる全てのプラットフォームの識別情報と調停方法種別を、第1プラットフォーム間通信部123に受け渡すためのインタフェースである。更に、第1調停方法指定用インタフェース122は、第1プラットフォーム間通信部123を介して、協調制御対象となる全てのプラットフォームのプラットフォーム間通信部と、調停方法種別及び指令値の調停方法に係る情報の送受信を行う。
【0022】
第1プラットフォーム間通信部123は、協調制御対象となる全てのプラットフォームから受信した、プラットフォーム識別情報、当該プラットフォームとの調停方法種別、指令値、及び指令値の調停方法に係る情報を、第1指令調停部124に出力する。
また、第1プラットフォーム間通信部は、第1プラットフォーム部12自身のプラットフォーム識別情報、当該プラットフォームとの調停方法種別、後述の第1指令調停部124を介して取得した第1指令アプリケーション部11からの指令値、及び指令値の調停方法に係る情報を、協調制御対象となる他のプラットフォームに出力するため、第1共有メモリ31に書き込む。
【0023】
第1指令調停部124は、第1指令処理部112から、第1指令用インタフェース121を介して指令値を取得すると、当該指令値を第1プラットフォーム間通信部123に出力する。また、第1指令調停部124は、第1プラットフォーム間通信部123から取得した、協調制御対象となる全てのプラットフォームのプラットフォーム識別情報、及び調停方法種別に基づいて指令値を調停し、調停後の指令値を、第2共有メモリ32に書き込む。
【0024】
第2制御部20は、第2指令アプリケーション部21と、第2プラットフォーム部22とを備える。
【0025】
第2指令アプリケーション部21は、第1指令アプリケーション部11と同様の機能を有するため、その詳細な説明は省略する。また、第2プラットフォーム部22は、第1プラットフォーム部12と同様の機能を有するため、その詳細な説明は省略する。
【0026】
第2指令アプリケーション部21は、第2調停方法指定部211と、第2指令処理部212とを備える。
第2調停方法指定部211は、第1調停方法指定部111と同様の機能を有するため、その詳細な説明は省略する。第2指令処理部212は、第1指令処理部112と同様の機能を有するため、その詳細な説明は省略する。
【0027】
第2プラットフォーム部22は、第2指令用インタフェース221と、第2調停方法指定用インタフェース222と、第2プラットフォーム間通信部223と、第2指令調停部224とを備える。
【0028】
第2指令用インタフェース221は、第1指令用インタフェース121と同様の機能を有するため、その詳細な説明は省略する。第2調停方法指定用インタフェース222は、第1調停方法指定用インタフェース122と同様の機能を有するため、その詳細な説明は省略する。第2プラットフォーム間通信部223は、第1プラットフォーム間通信部123と同様の機能を有するため、その詳細な説明は省略する。第2指令調停部224は、第1指令調停部124と同様の機能を有するため、その詳細な説明は省略する。
【0029】
第1共有メモリ31は、第1プラットフォーム間通信部123及び第2プラットフォーム間通信部223によって、それぞれのプラットフォーム識別情報、プラットフォーム間での調停方法種別、指令値、及び指令値の調停方法に係る情報が書き込まれるメモリである。
【0030】
第2共有メモリ32は、第1指令調停部124及び第2指令調停部224によって、それぞれのプラットフォーム間通信部から第1共有メモリ31を介して取得した、協調制御対象となる全てのプラットフォームのプラットフォーム識別情報、及び調停方法種別に基づいてそれぞれ調停された調停後の指令値が書き込まれるメモリである。
【0031】
なお、第1共有メモリ31と第2共有メモリ32とを、「共有メモリ」として総称することがある。
【0032】
サーボ制御処理部40は、第2共有メモリ32に書き込まれた、調停後の指令値に基づいて、サーボ制御を行う。
【0033】
制御装置1は、上記の構成を備えることにより、協調動作を要する異なる装置に対して、それぞれ異なるアプリケーションにより実行される指令の調停(協調動作)を、第1指令アプリケーション部11及び第2指令アプリケーション部21を介さずに、第1プラットフォーム部12及び第2プラットフォーム部22で行うことが可能となる。
【0034】
〔2 実施形態の動作〕
以下、図2A及び図2Bを参照し、本実施形態に係る制御装置1の動作について説明する。図2Aは、制御装置1の基本動作を示すフローチャートである。図2Bは、制御装置1の調停時の動作を示すフローチャートである。
【0035】
〔2.1 基本動作〕
最初に、図2Aを参照することにより、制御装置1の基本動作における指令の流れについて説明する。ここで、「基本動作」とは、第1指令アプリケーション部11から出力される第1の指令値と、第2指令アプリケーション部21から出力される第2の指令値とを調停せずに、双方の指令値をそのままサーボ制御処理部40に出力する動作のことである。なお、説明を簡単にするために、双方の指令値を調停しないことの確認は、第1の指令値及び第2の指令値の処理前に確認されているものとする。
【0036】
ステップS1において、第1指令アプリケーション部11で、第1指令処理部112は、ある実行形式のモーションプログラムを用いて第1の指令値の演算を行い、当該指令値を、第1プラットフォーム部12の第1指令用インタフェース121に出力する。
【0037】
ステップS2において、第2指令アプリケーション部21で、第2指令処理部212は、ある実行形式のモーションプログラムを用いて第2の指令値の演算を行い、当該第2の指令値を、第2プラットフォーム部22の第2指令用インタフェース221に出力する。
【0038】
ステップS3において、第1指令調停部124は、第1指令用インタフェース121から、第1の指令値を取得する。
【0039】
ステップS4において、第2指令調停部224は、第2指令用インタフェース221から、第2の指令値を取得する。
【0040】
ステップS5において、第1指令調停部124及び第2指令調停部224は、それぞれ第1の指令値及び第2の指令値を、第2共有メモリ32に書き込む。
【0041】
ステップS6において、第2共有メモリ32に書き込まれた第1の指令値及び第2の指令値は、サーボ制御処理部40によって取得され、サーボ制御処理部40は、当該指令値を用いて、サーボ制御をするための演算を行う。サーボ制御処理部40は、この演算結果をそれぞれのアンプへ出力することで、それぞれのモータを駆動する。
【0042】
〔2.2 調停時の動作〕
次に、図2Bを参照することにより、制御装置1における調停時の動作について説明する。調停時においては、制御装置1は、上記の「第1の指令値」と「第2の指令値」とを調停し、調停後の指令値をサーボ制御処理部40に出力する。なお、説明を簡単にするために、双方の指令値に係る調停方法の確認は、第1の指令値及び第2の指令値の処理前に確認されているものとする。なお、双方の指令値に係る調停方法の確認を第1の指令値及び第2の指令値の処理の過程で行うようにしてもよい。
【0043】
ステップS11~ステップS12の処理は、基本動作時のステップS1~ステップS2の処理と同一であるため、その説明を省略する。
【0044】
ステップS13において、第1プラットフォーム部12の第1指令調停部124、及び第2プラットフォーム部22の第2指令調停部224は、指定された調停方法に従い、第1プラットフォーム間通信部123、第2プラットフォーム間通信部223、第1共有メモリ31を介して、第1の指令値と第2の指令値の調停を行う。
【0045】
ステップS14において、第1指令調停部124又は第2指令調停部224は、調停を行った指令値を、第2共有メモリ32に書き込む。
【0046】
ステップS15において、第1指令調停部124又は第2指令調停部224によって第2共有メモリ32に書き込まれた、調停後のそれぞれの指令値は、サーボ制御処理部40によって取得され、サーボ制御処理部40は、当該指令値を用いて、サーボ制御をするための演算を行う。サーボ制御処理部40は、この演算結果をそれぞれのアンプへ出力することで、それぞれのモータを駆動する。
【0047】
〔3 実施例〕
〔3.1 第1の実施例〕
以下、図3及び~図5を参照することにより、第1の実施例について説明する。第1の実施例は、一つの制御装置で、異なる実行形式の装置同士の重畳制御(すなわち、上記の「第1の指令値」に「第2の指令値」を加算した値を「第1の指令値」とする重畳制御)を行う例である。
【0048】
図3は、本実施例に係る制御装置1における指令値に係る情報の流れを示す図である。なお、図3においては、説明の簡略化のため、図1に示す制御装置1の構成のうち一部の構成要素を省略している。
【0049】
また、図4は、本実施例が対象とする重畳制御を実行するシステムの全体構成図の例示である。図4で例示するように、本実施例においては、ロボット2がアーム6を用いて、コンベア3上のワーク7を移動させる。この際、生産性を向上させるため、ロボット2におけるアーム6の動作距離(第1の指令値に相当)に、コンベア3の移動距離(第2の指令値に相当)を重畳する。
【0050】
図3において、各指令値は実線で示される矢印に沿って伝達される。また、図3に示す例において、制御装置1は、バス5を介して、ロボット2とコンベア3とを制御する。より詳細には、第1制御部10がロボット2を制御し、第2制御部20がコンベア3を制御する。また、第1指令アプリケーション部11は、例としてロボットプログラムを用いて、ロボット2を制御するロボットコントローラである。第2指令アプリケーション部21は、例としてST言語を用いてコンベア3を制御するソフトPLCである。
【0051】
第1指令アプリケーション部11は、第1プラットフォーム部12に対して、指令値としてロボット2のアーム6の動作距離Xr=40mmを出力する。また、第2指令アプリケーション部21は、第2プラットフォーム部22に対して、指令値としてコンベア3の移動距離Xc=20mmを出力する。このとき、第1プラットフォーム部12は、XrとXcとを重畳し、重畳された指令値を、第2共有メモリ32に書き込む。第2共有メモリ32に書き込まれた指令値は、サーボ制御処理部40によって取得される。
【0052】
図5は、重畳制御をする際の、制御装置1の動作を示すシーケンス図である。
【0053】
ステップS1-1において、第1指令アプリケーション部11は、第1プラットフォーム部12に対し、ロボット2の指令値(例えば、アーム6の動作距離Xr=40mm)を出力する。
【0054】
ステップS1-2において、第1プラットフォーム部12は、当該第1プラットフォーム部12と第2プラットフォーム部22との調停方法を確認する。ここでの調停方法とは、第2プラットフォーム部22からのコンベア3に対する指令値(例えば、コンベア3の移動距離Xc=20mm)を、第1プラットフォーム部12からのロボット2に対する指令値に重畳することである。
【0055】
ステップS2-1において、第2指令アプリケーション部21は、第2プラットフォーム部22に対し、コンベア3の指令値を出力する。
【0056】
ステップS2-2において、第2プラットフォーム部22は、当該第2プラットフォーム部22と第1プラットフォーム部12との調停方法を確認する。ここでの調停方法とは、第2プラットフォーム部22からの指令値を、第1プラットフォーム部12からの指令値に重畳することである。
【0057】
なお、ステップS1-1とステップS1-2、及びステップS2-1とステップS2-2は、それぞれ一つの組としてパラレルに実行されると共に、各々の組のどちらを先に実行するかは問わない。
【0058】
ステップS2-3において、第2プラットフォーム部22は、当該第2プラットフォーム部22の指令値としてコンベア3の指令値を第1共有メモリ31に書き込む。
【0059】
ステップS1-3において、第1プラットフォーム部12は、第1共有メモリ31から、第2プラットフォーム部22の指令値としてコンベア3の指令値を取得する。
【0060】
ステップS1-4において、第1プラットフォーム部12は、ロボット2の指令値とコンベア3の指令値を重畳する。
【0061】
ステップS1-5において、第1プラットフォーム部12は、当該第1プラットフォーム部12の指令値としてロボット2の指令値とコンベア3の指令値とが重畳(加算)された指令値を、第2共有メモリ32に出力する。
【0062】
ステップS2-4において、第2プラットフォーム部22は、当該第2プラットフォーム部22の指令値としてコンベア3の指令値を、第2共有メモリ32に出力する。
【0063】
これにより、ロボット2とコンベア3を有する生産ラインを、制御装置1により制御することで、機器間の重畳動作が容易になり、コンベア3を止めることなくワークへの作業が行える。
【0064】
〔3.2 第2の実施例〕
以下、図6図8を参照することにより、第2の実施例について説明する。第2の実施例は、一つの制御装置で、異なる実行形式の装置同士の順序制御(すなわち、上記の「第1の指令値」としてのロボットのアームの移動と「第2の指令値」としてのプレスのスライドの移動と、のサーボ制御処理部40への出力順序の制御)を行う例である。
【0065】
図6は、本実施例に係る制御装置1における指令値に係る情報の流れを示す図である。なお、図6においては、説明の簡略化のため、図1に示す制御装置1の構成のうち一部の構成要素を省略している。
【0066】
また、図7は、本実施例が対象とする順序制御を実行するシステムの全体構成図の例である。図7で例示するように、本実施例においては、ロボット2がアーム6を用いて、プレス4にワーク7をロードする。この際、生産性を向上させるため、プレス4のスライド8が上方に移動した後に、ロボット2におけるアーム6が、ワーク7をスライド8の下にロードする。
【0067】
図6において、各指令値は実線で示される矢印に沿って伝達される。また、図2に示す例において、制御装置1は、バス5を介して、ロボット2とプレス4とを制御する。より詳細には、第1制御部10がロボット2を制御し、第2制御部20がプレス4を制御する。また、第1指令アプリケーション部11は、例としてロボットプログラムを用いて、ロボット2を制御するロボットコントローラである。第2指令アプリケーション部21は、例としてNCプログラムを用いてプレス4を制御する数値制御装置(CNC)である。
【0068】
第1指令アプリケーション部11は、第1プラットフォーム部12に対して、指令値としてロボット2のアーム6の動作距離Xr=40mmを出力する。また、第2指令アプリケーション部21は、第2プラットフォーム部22に対して、指令値としてプレス4のスライド8の移動距離Xp=20mmを出力する。このとき、第1プラットフォーム部12は、第2プラットフォーム部22からのプレス4の移動指令の処理を待って、指令値を第2共有メモリ32に書き込む。第2共有メモリ32に書き込まれた指令値は、サーボ制御処理部40によって取得される。
【0069】
図8は、順序制御をする際の、制御装置1の動作を示すシーケンス図である。
【0070】
ステップS1-11において、第1指令アプリケーション部11は、第1プラットフォーム部12に対し、ロボット2の指令値(例えば、アーム6の動作距離Xr=40mm)を出力する。
【0071】
ステップS1-12において、第1プラットフォーム部12は、当該第1プラットフォーム部12と第2プラットフォーム部22との調停方法を確認する。ここでの調停方法とは、第2プラットフォーム部22からのプレス4に対する指令値(例えば、スライド8の移動距離Xp=20mm)の出力を、第1プラットフォーム部12からのロボット2に対する指令値の出力よりも優先させることである。
【0072】
ステップS2-11において、第2指令アプリケーション部21は、第2プラットフォーム部22に対し、プレス4の指令値を出力する。
【0073】
ステップS2-12において、第2プラットフォーム部22は、当該第2プラットフォーム部22と第1プラットフォーム部12との調停方法を確認する。ここでの調停方法とは、第2プラットフォーム部22からの指令値の出力を、第1プラットフォーム部12からの指令値の出力よりも優先させることである。
【0074】
なお、ステップS1-11とステップS1-12、及びステップS2-11とステップS2-12は、それぞれ一つの組としてパラレルに実行されると共に、各々の組のどちらを先に実行するかは問わない。
【0075】
ステップS2-13において、第2プラットフォーム部22は、当該第2プラットフォーム部22の指令値としてプレス4の指令値を第1共有メモリ31に書き込む。
【0076】
ステップS1-13において、第1プラットフォーム部12は、第1共有メモリ31に対する、第2プラットフォーム部22からのプレス4の指令値の書き込みを確認する。
【0077】
ステップS1-14において、第1プラットフォーム部12は、任意の制御周期が経過するのを待つ。
【0078】
ステップS1-15において、第1プラットフォーム部12は、当該第1プラットフォーム部12の指令値としてロボット2の指令値を、第2共有メモリ32に出力する。
【0079】
ステップS2-14において、第2プラットフォーム部22は、当該第2プラットフォーム部22の指令値としてプレス4の指令値を、第2共有メモリ32に出力する。
【0080】
これにより、第1プラットフォーム部12は、第1共有メモリ31から第2プラットフォーム部22の指令が出力したことを確認した後、任意の制御周期後に第1プラットフォーム部12の指令値を、第2共有メモリ32へ出力する。
【0081】
〔3.3 第3の実施例〕
以下、図9を参照することにより、第3の実施例について説明する。第3の実施例は、一つの制御装置で、異なる実行形式の装置同士の同期制御(すなわち、上記の「第1の指令値」と「第2の指令値」の出力タイミングを同期させる制御)を行う例である。
【0082】
図9は、同期制御をする際の、制御装置1の動作を示すシーケンス図である。
【0083】
ステップS1-21において、第1指令アプリケーション部11は、第1プラットフォーム部12に対し、第1指令アプリケーション部11の指令値を出力する。
【0084】
ステップS1-22において、第1プラットフォーム部12は、当該第1プラットフォーム部12と第2プラットフォーム部22との調停方法を確認する。ここでの調停方法とは、第1プラットフォーム部12からの指令値の出力と、第2プラットフォーム部22からの指令値の出力とを、同期させることである。
【0085】
ステップS2-21において、第2指令アプリケーション部21は、第2プラットフォーム部22に対し、第2指令アプリケーション部21からの指令値を出力する。
【0086】
ステップS2-22において、第2プラットフォーム部22は、当該第2プラットフォーム部22と第1プラットフォーム部12との調停方法を確認する。ここでの調停方法とは、第1プラットフォーム部12からの指令値の出力と、第2プラットフォーム部22からの指令値の出力とを、同期させることである。
【0087】
なお、ステップS1-21とステップS1-22、及びステップS2-21とステップS2-22は、それぞれ一つの組としてパラレルに実行されると共に、各々の組のどちらを先に実行するかは問わない。
【0088】
ステップS2-23において、第2プラットフォーム部22は、当該第2プラットフォーム部22の指令値を第1共有メモリ31に書き込む。
【0089】
ステップS1-23において、第1プラットフォーム部12は、当該第1プラットフォーム部12の指令値を第1共有メモリ31に書き込む。
【0090】
なお、ステップS1-23とステップS2-23とは、どちらを先に実行するかは問わない。
【0091】
ステップS1-24において、第1プラットフォーム部12は、第1共有メモリ31に対する、第2プラットフォーム部22からの指令値の書き込みを確認する。
【0092】
ステップS2-24において、第2プラットフォーム部22は、第1共有メモリ31に対する、第1プラットフォーム部12からの指令値の書き込みを確認する。
【0093】
なお、ステップS1-24とステップS2-24とは、どちらを先に実行するかは問わない。
【0094】
ステップS1-25において、第1プラットフォーム部12は、当該第1プラットフォーム部12の指令値を、第2共有メモリ32に出力する。
【0095】
ステップS2-25において、第2プラットフォーム部22は、当該第2プラットフォーム部22の指令値を、第2共有メモリ32に出力する。
【0096】
これにより、第1プラットフォーム部12は、第2プラットフォーム部22が第1共有メモリ31へ指令値を書き込んだことを確認し、第1プラットフォーム部12の指令値を、第2共有メモリ32に出力する。また、第2プラットフォーム部22は、第1プラットフォーム部12が第1共有メモリ31へ指令値を書き込んだことを確認し、第2プラットフォーム部22の指令値を、第2共有メモリ32に出力する。
【0097】
〔3.4 第4の実施例〕
以下、図10を参照することにより、第4の実施例について説明する。第4の実施例は、一つの制御装置で、異なる実行形式の装置同士の混合制御(すなわち、「第1の指令値」として、第2プラットフォーム部22からの指令値を出力し、「第2の指令値」として、第1プラットフォーム部12からの指令値を出力する制御)を行う例である。
【0098】
図10は、混合制御をする際の、制御装置1の動作を示すシーケンス図である。
【0099】
ステップS1-31において、第1指令アプリケーション部11は、第1プラットフォーム部12に対し、第1指令アプリケーション部11の指令値を出力する。
【0100】
ステップS1-32において、第1プラットフォーム部12は、当該第1プラットフォーム部12と第2プラットフォーム部22との調停方法を確認する。ここでの調停方法とは、第2プラットフォーム部22の指令値を、第1プラットフォーム部12が出力し、第1プラットフォーム部12の指令値を、第2プラットフォーム部22が出力することである。
【0101】
ステップS2-31において、第2指令アプリケーション部21は、第2プラットフォーム部22に対し、第2指令アプリケーション部21からの指令値を出力する。
【0102】
ステップS2-32において、第2プラットフォーム部22は、当該第2プラットフォーム部22と第1プラットフォーム部12との調停方法を確認する。ここでの調停方法とは、第2プラットフォーム部22の指令値を、第1プラットフォーム部12が出力し、第1プラットフォーム部12の指令値を、第2プラットフォーム部22が出力することである。
【0103】
なお、ステップS1-21とステップS1-22、及びステップS2-21とステップS2-22は、それぞれ一つの組としてパラレルに実行されると共に、各々の組のどちらを先に実行するかは問わない。
【0104】
ステップS2-33において、第2プラットフォーム部22は、当該第2プラットフォーム部22の指令値を第1共有メモリ31に書き込む。
【0105】
ステップS1-33において、第1プラットフォーム部12は、当該第1プラットフォーム部12の指令値を第1共有メモリ31に書き込む。
【0106】
なお、ステップS1-33とステップS2-33とは、どちらを先に実行するかは問わない。
【0107】
ステップS1-34において、第1プラットフォーム部12は、第1共有メモリ31から、第2プラットフォーム部22の指令値を取得する。
【0108】
ステップS2-34において、第2プラットフォーム部22は、第1共有メモリ31から、第1プラットフォーム部12の指令値を取得する。
【0109】
なお、ステップS1-34とステップS2-34とは、どちらを先に実行するかは問わない。
【0110】
ステップS1-35において、第1プラットフォーム部12は、第2プラットフォーム部22の指令値を、第2共有メモリ32に出力する。
【0111】
ステップS2-35において、第2プラットフォーム部22は、第1プラットフォーム部12の指令値を、第2共有メモリ32に出力する。
【0112】
これにより、第1プラットフォーム部12は、第2プラットフォーム部22が第1共有メモリ31へ指令値を書き込んだことを確認し、第2プラットフォーム部22の指令値を、第2共有メモリ32に出力する。また、第2プラットフォーム部22は、第1プラットフォーム部12が第1共有メモリ31へ指令値を書き込んだことを確認し、第1プラットフォーム部12の指令値を、第2共有メモリ32に出力する。
【0113】
〔4 効果〕
(1) 本実施形態に係る制御装置(例えば、上記の「制御装置1」)は、複数のプラットフォームを有する制御装置において、複数の指令アプリケーション部(例えば、上記の「第1指令アプリケーション部11」及び「第2指令アプリケーション部21」)と、前記複数の指令アプリケーション部にそれぞれ対応付けられた複数のプラットフォーム部(例えば、上記の「第1プラットフォーム部12」及び「第2プラットフォーム部22」)と、前記複数のプラットフォーム間で通信される情報を記憶する共有メモリ(例えば、上記の「第1共有メモリ31」及び「第2共有メモリ32」)と、サーボ制御処理部(例えば、上記の「サーボ制御処理部40」)と、を備え、前記指令アプリケーション部は、指令値を出力する指令処理部(例えば、上記の「第1指令処理部112」及び「第2指令処理部212」)と、協調制御対象となる前記プラットフォーム部の識別情報と調停方法種別とを出力する調停方法指定部(例えば、上記の「第1調停方法指定部111」及び「第2調停方法指定部211」)とを備え、前記プラットフォーム部は、前記指令アプリケーション部から、前記指令値を取得する第1インタフェース部(例えば、上記の「第1指令用インタフェース121」及び「第2指令用インタフェース221」)と、前記指令アプリケーション部から、前記プラットフォーム部の識別情報と調停方法種別とを取得する第2インタフェース部(例えば、上記の「第1調停方法指定用インタフェース122」及び「第2調停方法指定用インタフェース222」)と、前記共有メモリ部を介して、前記プラットフォーム部間で前記指令処理、前記識別情報、及び前記調停方法種別の伝達を行うプラットフォーム間通信部(例えば、上記の「第1プラットフォーム間通信部123」及び「第2プラットフォーム間通信部223」)と、協調制御対象となる全ての前記プラットフォーム部から、前記指令処理、前記識別情報、前記調停方法種別を取得すると共に、前記識別情報及び前記調停方法種別に基づいて前記指令処理の調停を行い、調停された前記指令処理を前記共有メモリに出力する指令調停部(例えば、上記の「第1指令調停部124」及び「第2指令調停部224」)とを備え、前記サーボ制御処理部は、前記共有メモリから取得された、調停後の前記指令値に基づいて、サーボ制御を行う。
【0114】
これにより、各制御装置のアプリケーションによって行っていた装置間の動作タイミングの調停を一つの制御装置にある各プラットフォームにて行うことで、各制御装置のアプリケーションは動作タイミングを意識せずに、制御対象の装置を動作させることが可能になる。
【0115】
(2) (1)に記載の制御装置において、前記調停方法種別は、前記複数のプラットフォーム部間での前記指令処理の順序制御、同期、混合、及び重畳のいずれか1つを含むことを特徴とする。
【0116】
これにより、装置間の順序制御、同期、混合、及び重畳が容易に行え、装置間で円滑な協調動作を行うことが可能となる。
【0117】
〔5 変形例〕
上記の実施形態に係る制御装置1は、二つの制御部である第1制御部10と第2制御部20とを備える構成としたが、これには限定されない。例えば、制御装置1が制御する機器の数に応じて、任意の複数個の制御部を備えることが可能である。
【0118】
上記の制御装置1に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の制御装置1に含まれる各構成部のそれぞれの協働により行なわれる制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0119】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0120】
1 制御装置
10 第1制御部
11 第1指令アプリケーション部
12 第1プラットフォーム部
20 第2制御部
21 第2指令アプリケーション部
22 第2プラットフォーム部
31 第1共有メモリ
32 第2共有メモリ
40 サーボ制御処理部
111 第1調停方法指定部
122 第1調停方法指定用インタフェース
123 第1プラットフォーム間通信部
124 第1指令調停部
211 第2調停方法指定部
222 第2調停方法指定用インタフェース
223 第2プラットフォーム間通信部
224 第2指令調停部
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10