(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-20
(45)【発行日】2024-05-28
(54)【発明の名称】処理装置、及び処理方法
(51)【国際特許分類】
G05B 19/4069 20060101AFI20240521BHJP
B25J 13/00 20060101ALI20240521BHJP
【FI】
G05B19/4069
B25J13/00 Z
(21)【出願番号】P 2020024608
(22)【出願日】2020-02-17
【審査請求日】2022-12-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】大谷 拓
(72)【発明者】
【氏名】関本 英彦
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2009-282755(JP,A)
【文献】特開2006-085328(JP,A)
【文献】特開2010-140225(JP,A)
【文献】特開2019-036043(JP,A)
【文献】特開昭62-165212(JP,A)
【文献】特開2006-302314(JP,A)
【文献】特開2012-096338(JP,A)
【文献】米国特許第07657329(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05-19/42
B23Q 15/00
B25J 9/10-13/08
(57)【特許請求の範囲】
【請求項1】
プログラムの実行により複数の制御対象の少なくとも一部を同期制御可能に構成された制御装置による同期制御のシミュレーションを表示する処理装置であって、
前記複数の制御対象を、前記シミュレーション上の前記プログラムの進行に応じて表示する表示部と、
前記複数の制御対象のうち、前記シミュレーション上の前記プログラムの進行において同期制御されている制御対象を含む同期対象群を特定する特定部と、
前記表示部により表示されている前記複数の制御対象のうち、前記特定部により特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示部に表示させる制御部と、を備え、
前記制御装置は、
前記プログラムの実行により異なる同期精度で異なる前記同期対象群の同期制御が可能となるように構成され、
予め定められた制御周期毎に、実行毎に全体が実行される第1の実行形式に従った第1プログラムを実行して、前記複数の制御対象の一部である一又は複数の第1制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、
逐次実行される第2の実行形式に従った第2プログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に、前記複数の制御対象の他部である一又は複数の第2制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、
を更に有し、
前記表示部は、前記第1処理部により制御される前記一又は複数の第1制御対象と、前記第2処理部により制御される前記一又は複数の第2制御対象とを、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行に応じて表示し、
前記特定部は、前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行において同期制御されている前記同期対象群を特定し、
前記制御部は、前記表示部により表示されている前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記特定部により特定された前記同期対象群を、前記同期制御における同期精度の種類に応じて、それぞれの前記同期対象群の表示形式が異なるように前記表示部にそれぞれの該同期対象群を表示させる、
処理装置。
【請求項2】
プログラムの実行により複数の制御対象の少なくとも一部を同期制御可能に構成された制御装置による同期制御のシミュレーションを表示する処理装置であって、
前記複数の制御対象を、前記シミュレーション上の前記プログラムの進行に応じて表示する表示部と、
前記複数の制御対象のうち、前記シミュレーション上の前記プログラムの進行において同期制御されている制御対象を含む同期対象群を特定する特定部と、
前記表示部により表示されている前記複数の制御対象のうち、前記特定部により特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示部に表示させる制御部と、を備え、
前記制御装置は、
予め定められた制御周期毎に、実行毎に全体が実行される第1の実行形式に従った第1プログラムを実行して、前記複数の制御対象の一部である一又は複数の第1制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、
逐次実行される第2の実行形式に従った第2プログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に、前記複数の制御対象の他部である一又は複数の第2制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、
を更に有し、
前記表示部は、前記第1処理部により制御される前記一又は複数の第1制御対象と、前記第2処理部により制御される前記一又は複数の第2制御対象とを、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行に応じて表示し、
前記特定部は、前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行において同期制御されている前記同期対象群を特定し、
前記制御部は、前記表示部により表示されている前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記特定部により特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示部に表示させ、
前記制御装置が、該制御装置の前記第1処理部と前記第2処理部に相当する所定処理部を有する他の制御装置との間で、該制御装置内での同期精度とは異なる同期精度で同期制御を行う場合、前記制御部は、該制御装置内での同期精度と、該制御装置と該他の制御装置との間での同期精度との違いに応じて、該制御装置で同期制御される前記同期対象群と、該制御装置と該他の制御装置との間で同期制御される装置間同期対象群とのそれぞれの表示形式が異なるように前記表示部に該同期対象群及び該装置間同期対象群を表示させる、
処理装置。
【請求項3】
前記制御部は、更に、前記第1プログラム及び第2プログラムの進行に応じた前記同期対象群に含まれるそれぞれの前記制御対象の、前記同期制御に関連する所定信号の時間推移を、時間軸が一致するように前記表示部に表示させる、
請求項1または2に記載の処理装置。
【請求項4】
前記制御部は、前記同期対象群の同期制御と非同期制御の切り替えタイミングを含む所定期間において、前記表示部による前記複数の制御対象の表示速度を、該所定期間以外の期間における表示速度よりも遅くする、
請求項1から3の何れか1項に記載の処理装置。
【請求項5】
プログラムの実行により複数の制御対象の少なくとも一部を同期制御可能に構成された制御装置による同期制御のシミュレーションを表示する処理方法であって、
前記制御装置は、
前記複数の制御対象のうち、前記シミュレーション上の前記プログラムの進行において同期制御されている制御対象を含む同期対象群であって、前記プログラムの実行により異なる同期精度で異なる前記同期対象群の同期制御が可能となるように構成され、
予め定められた制御周期毎に、実行毎に全体が実行される第1の実行形式に従った第1プログラムを実行して、前記複数の制御対象の一部である一又は複数の第1制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、
逐次実行される第2の実行形式に従った第2プログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に、前記複数の制御対象の他部である一又は複数の第2制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、を更に有し、
前記処理方法は、
前記複数の制御対象を、前記シミュレーション上の前記プログラムの進行に応じて表示装置に表示する第1の表示処理と、
前記複数の制御対象のうち、前記シミュレーション上の前記プログラムの進行において同期制御されている制御対象を含む
前記同期対象群を特定する特定処理と、
前記表示装置での前記複数の制御対象の表示において、表示されている前記複数の制御対象のうち、特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示装置に第2の表示処理と、を含み、
前記第1の表示処理は、前記第1処理部により制御される前記一又は複数の第1制御対象と、前記第2処理部により制御される前記一又は複数の第2制御対象とを、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行に応じて表示する処理を更に含み、
前記特定処理は、前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行において同期制御されている前記同期対象群を特定する処理を更に含み、
前記第2の表示処理は、前記
複数の制御対象を、前記シミュレーション上の前記プログラムの進行に応じて表示する表示部により表示されている前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記特定処理により特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示部に表示させる処理を更に含む、
処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同期制御のシミュレーションを表示する処理技術に関する。
【背景技術】
【0002】
最近、様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。このような制御装置は、モーションの軸とロボット制御を同期制御することができる。例えば、ロボットアームでコンベア上を搬送されている第1ワークをピックして、他のロボットで把持された第2ワークと組み立てる。このように連続的に同期制御することで、インターロックに必要な時間を最小化することができる。
【0003】
また、第1ワークと第2ワークとの嵌合の成否を精確的に判定するために、ワーク位置取得手段で第1ワークと第2ワークとの相対位置を検出し、力検出手段で嵌合時に第1ワ
ーク又は第2ワークに加える力を検出して、実嵌合量取得手段で第1ワークの第2ワークに対する実嵌合量に関する値を求めるロボット制御装置も知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、前記のロボット制御装置は、モーション軸とロボットとを同期させる機能、またはロボットとロボットとを同期させる機能を持つが、そのような同期制御を実現するためには予め同期対象同士のシミュレーションを行うのが好ましい。しかし従来技術では、シミュレーション上でどのマスターとスレーブがいつ同期しているのかをリアルタイムで確認することが容易ではなく、同期機能が設計通りに動作しているかをデバッグ、調整するのが難しい。
【0006】
本発明は、このような問題に鑑みてなされたものであり、同期制御に関するシミュレーションにおいて、制御対象の同期中の状態を視覚的に確認できる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明においては、上記課題を解決するために、プログラムの実行により複数の制御対象の少なくとも一部を同期制御可能に構成された制御装置による同期制御のシミュレーションを表示する処理装置及び処理方法を提供する。
【0008】
具体的に、プログラムの実行により複数の制御対象の少なくとも一部を同期制御可能に構成された制御装置による同期制御のシミュレーションを表示する処理装置であって、前記複数の制御対象を、前記シミュレーション上の前記プログラムの進行に応じて表示する表示部と、前記複数の制御対象のうち、前記シミュレーション上の前記プログラムの進行において同期制御されている制御対象を含む同期対象群を特定する特定部と、前記表示部により表示されている前記複数の制御対象のうち、前記特定部により特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示部に表示させる制御部と、を備える。
【0009】
上記の処理装置は、制御装置の同期機能に関して、ステップ実行しながら表示部で視覚的に同期制御における同期の開始、終了タイミングが確認できるようになるため、同期機能が設計通りに動作しているかをデバッグ、調整することができる。設計、検証の工数を削減できる。
【0010】
前記制御装置は、予め定められた制御周期毎に、実行毎に全体が実行される第1の実行形式に従った第1プログラムを実行して、前記複数の制御対象の一部である一又は複数の第1制御対象を制御するための第1の指令値を演算可能に構成された第1処理部と、逐次実行される第2の実行形式に従った第2プログラムを実行してインタプリタにより該プログラムの少なくとも一部が解釈されて生成される中間コードに従って前記制御周期毎に、前記複数の制御対象の他部である一又は複数の第2制御対象を制御するための第2の指令値を演算可能に構成された第2処理部と、を更に有してもよい。その場合、前記表示部は、前記第1処理部により制御される前記一又は複数の第1制御対象と、前記第2処理部により制御される前記一又は複数の第2制御対象とを、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行に応じて表示し、前記特定部は、前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記シミュレーション上の前記第1プログラム及び前記第2プログラムの進行において同期制御されている前記同期対象群を特定し、前記制御部は、前記表示部により表示されている前記一又は複数の第1制御対象と前記一又は複数の第2制御対象のうち、前記特定部により特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示部に表示させてもよい。
【0011】
また、前記制御装置は、前記プログラムの実行により異なる同期精度で異なる前記同期対象群の同期制御が可能となるように構成されてもよい。その場合、前記制御部は、前記同期制御における同期精度の種類に応じて、それぞれの前記同期対象群の表示形式が異なるように前記表示部にそれぞれの該同期対象群を表示させてもよい。これによって、同期精度に応じて、それぞれの同期対象群の表示形態を変えることができ、制御装置での同期制御に関するデバッグ効率を向上させることができる。
【0012】
前記制御装置が、該制御装置の前記第1処理部と前記第2処理部に相当する所定処理部を有する他の制御装置との間で、該制御装置内での同期精度とは異なる同期精度で同期制御を行う場合、前記制御部は、該制御装置内での同期精度と、該制御装置と該他の制御装置との間での同期精度との違いに応じて、該制御装置で同期制御される前記同期対象群と、該制御装置と該他の制御装置との間で同期制御される装置間同期対象群とのそれぞれの表示形式が異なるように前記表示部に該同期対象群及び該装置間同期対象群を表示させてもよい。これによって、制御装置内での同期制御と、制御装置と他の制御装置との間の同期制御とで、同期対象群の表示形態を変えることができ、制御装置での同期制御に関するデバッグ効率を向上させることができる。
【0013】
前記制御部は、更に、前記第1プログラム及び第2プログラムの進行に応じた前記同期対象群に含まれるそれぞれの前記制御対象の、前記同期制御に関連する所定信号の時間推移を、時間軸が一致するように、前記表示部に表示させてもよい。これによって、同期制御に関するデバッグを視覚的かつ定量的(モータ位置やトリガータイミングなど)にも確認することができ、効率良くデバッグできる。
【0014】
また、前記制御部は、前記同期対象群の同期制御と非同期制御の切り替えタイミングを含む所定期間において、前記表示部による前記複数の制御対象の表示速度を、該所定期間以外の期間における表示速度よりも遅くしてもよい。一般に同期制御と非同期制御の切り替えは瞬時に行われるため、そのタイミングを視認するのは難しい。そこで、同期開始や
同期終了タイミングの前後でシミュレーションの表示速度を落とすことで、ユーザが簡単にデバッグ箇所を特定できるようになり、効率が向上できる。
【0015】
また、本発明は、制御装置による同期制御のシミュレーションを表示する処理方法の側面から捉えることもできる。すなわち、当該処理方法は、前記複数の制御対象を、前記シミュレーション上の前記プログラムの進行に応じて表示装置に表示し、前記複数の制御対象のうち、前記シミュレーション上の前記プログラムの進行において同期制御されている制御対象を含む同期対象群を特定し、前記表示装置での前記複数の制御対象の表示において、表示されている前記複数の制御対象のうち、特定された前記同期対象群を、該同期対象群以外の制御対象とは区別できる形式で該表示装置に表示する処理方法である。また、上述までの処理装置に関連して開示した技術思想について、技術的な齟齬が生じない範囲において、上記の処理方法に適用しても構わない。
【発明の効果】
【0016】
同期制御に関するシミュレーションにおいて、制御対象の同期中の状態を視覚的に確認できる。
【図面の簡単な説明】
【0017】
【
図1】本発明の制御装置100が適用される制御システム1の概略構成図である。
【
図2】本発明の制御装置100に形成される機能部をイメージ化した図である。
【
図3】本発明の処理装置をイメージ化したブロック図である。
【
図4】同期対象の同期状況を示す概略図である。(a)コンベア上のワークに同期しながらロボットがワークをピックする概略図である。(b)各ロボットが同期しながら、組立作業を行う概略図である。
【
図5】本発明の同期シミュレーションの可視化方法を示すフローチャートである。
【
図6】表示部で
図4(b)におけるロボット動作に関連する信号推移の一例である。
【発明を実施するための形態】
【0018】
以下、図面を参照しながら、本発明の実施形態に係る処理装置の適用例を説明する。なお、以下の実施形態は、各請求項に係る発明を限定するものではなく、また、実施形態の中で説明されている特徴の組合せのすべてが発明の解決手段に必須であるとは限らない。
図1は、当該制御装置100が適用される制御システム1の概略構成図であり、
図2は、制御装置100に形成される機能部をイメージ化した図である。
【0019】
本実施形態の処理装置10は、シミュレーション装置であり、そのシミュレーション対象は制御装置100により制御される制御対象(後述のロボット210やモータ222等)である。処理装置10は直接に制御装置100に繋がっている。処理装置10は制御装置100から制御対象の情報とその同期制御に関する情報(プログラム等)を取得し、どのような同期制御が行われるか解析する。そして、その解析結果をシミュレーション結果として表示部で表示する。なお、処理装置10の詳細については、後述する。
【0020】
本実施形態の制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当する。制御装置100は、後述するような制御演算を実行する一種のコンピュータである。制御装置100は、フィールドネットワーク2を介して各種のフィールド機器と接続されてもよい。フィールド機器は、製造装置や生産ラインなど(以下、「フィールド」とも総称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報を遣り取りする入出力装置などを含み、
図1においては、フィールド機器として、ロボット210や、サーボドライバ220及びモータ222が例示されている。サーボドライバ220は、制御装置100からの出力データ(例えば、
位置指令や速度指令など)に従って、モータ222を駆動する。また、ロボット210としては、パラレルロボット、スカラロボット、多関節ロボットが例示できる。このように制御装置100は、ロボット210やサーボドライバ220及びモータ222を統合的に制御し得るように構成された制御装置であり、その詳細については後述する。
【0021】
制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器との間でデータを遣り取りする。制御装置100は、各種のフィールド機器において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、フィールド機器に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のフィールド機器へ送信する処理(出力処理)等を行う。
【0022】
ここで、フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)等が知られている。そして、フィールドネットワーク2を介して、制御装置100とフィールド機器との間で遣り取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
【0023】
また、制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるEtherNet/IP(登録商標)が採用されてもよい。より具体的には、制御装置100は、上位ネットワーク6を介して、他の制御装置100Aにも接続されている。なお、他の制御装置100Aにおいてもフィールドネットワークを介してフィールド機器であるロボット210Aやサーボドライバ220A、モータ222Aが接続されている。
【0024】
ここで、
図2に基づいて、制御装置100の構成について説明する。制御装置100は、上記の通り所定の制御演算を実行する一種のコンピュータであり、当該制御演算に必要なプロセッサやメモリを備えている。当該プロセッサは、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサとしては、複数のコアを有する構成を採用してもよいし、当該プロセッサを複数配置してもよい。当該メモリとしては、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置や、HD
D(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。そして、プロセッサは、メモリに格納された各種プログラムを読出して実行することで、同期対象に応じた制御、および、後述するような各種処理を実現する。メモリには、基本的な機能を実現するためのシステムプログラムに加えて、同期対象の製造装置や設備に応じて作成されるユーザプログラム(IECプログラム51およびアプリケーションプログラム52)が格納される。
【0025】
なお、本願におけるIECプログラム51とは、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が演算されるプログラムであり、典型的には、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規
格IEC61131-3に従って記述された1または複数の命令からなるプログラムを包含する。IECプログラム51には、シーケンス制御およびモーション制御の命令が含まれる。このようなIECプログラム51は、制御周期毎にすべてのプログラムが実行(スキャン)される実行形式に対応するものであり、即時性および高速性が要求される制御に好適である。一方で、本願におけるアプリケーションプログラム52は、ロボットを用いて特定の加工や動作を行うための制御プログラムであり、ロボットによる制御アプリケー
ションを実現するための1または複数の命令からなるプログラムを包含し、基本的には、IECプログラム51とは区別される。
【0026】
そして、
図2に示すように、制御装置100は、IECプログラム処理部40と、下位ネットワークインターフェース60と、上位ネットワークインターフェース20と、制御アプリケーション処理部30と、通信部70を有する。下位ネットワークインターフェース60は、IECプログラム処理部40および制御アプリケーション処理部30と、フィールドネットワーク2を介して接続されているフィールド機器との間のデータの遣り取りを仲介する。上位ネットワークインターフェース20は、IECプログラム処理部40および制御アプリケーション処理部30と、上位ネットワーク6を介して接続されている他の制御装置100Aとの間のデータの遣り取りを仲介する。また、通信部70は、上位ネットワークインターフェース20や下位ネットワークインターフェース60を介さずに、制御装置100と通信を行うための機能部である。
【0027】
IECプログラム処理部40は、予め定められた制御周期毎にIECプログラム51を実行(スキャン)して1または複数の指令値を演算する。なお、本願では、モータ222を含んで構成される所定の装置を制御するためにIECプログラム51の実行が行われるものとする。そして、モーション処理部42は、IECプログラム51に含まれるモーション命令に従って、制御周期毎に指令値を演算する機能を提供する。すなわち、IECプログラム51に含まれるモーション命令は、複数の制御周期に亘る挙動を指示する命令(例えば、モータ222で構成される所定の装置の出力が何らかの軌道を描くための命令)を含む。このようなモーション命令が実行されると、実行されたモーション命令の指示内容に従って、モーション処理部42が制御周期毎に指令値を演算する。すなわち、モーション処理部42は、上記の所定の装置に対して制御周期毎に指令値を出力することで、モーション命令により指示された挙動を実現する。
【0028】
次に、制御アプリケーション処理部30は、アプリケーションプログラム52およびレシピ情報などに基づいて、制御アプリケーションを制御するための指令値を演算する。なお、本願では、ロボット210を制御するためにアプリケーションプログラム52が制御アプリケーション処理部30によって実行されるものとする。制御アプリケーション処理部30は、IECプログラム処理部40による指令値の演算および出力と同期して、制御アプリケーション用の指令値を演算および出力する。すなわち、制御アプリケーション処理部30は、IECプログラム処理部40による演算処理と同期して、指令値の演算処理を実行する。なお、このIECプログラム処理部40と制御アプリケーション処理部30の同期処理は、常に行われるのではなく、制御対象の制御内容に応じて同期処理と非同期処理が適宜切り替えられる。IECプログラム処理部40による指令値の演算処理と同期した指令値の演算を実現するために、制御アプリケーション処理部30は、モーション処理部32と、バッファ33と、インタプリタ34とを含む。
【0029】
インタプリタ34は、逐次アプリケーションプログラム52の少なくとも一部を解釈して中間コードを生成するとともに、生成した中間コードを格納するバッファ33を有する。本願における中間コードは、制御周期毎に指令値を演算するための命令を包含する概念であり、1または複数の命令、あるいは、1または複数の関数を含んでもよい。そして、モーション処理部32は、インタプリタ34が事前に生成しバッファ33に格納されている中間コードに従って、制御周期毎に指令値を演算する。
【0030】
そして、IECプログラム処理部40と制御アプリケーション処理部30との間でデータを共有するために、共有メモリ31が設けられる。本願開示では、制御アプリケーション処理部30による処理結果の一部または全部が共有メモリ31に格納され、IECプログラム処理部40は、制御アプリケーション処理部30の共有メモリ31に格納されたデ
ータを参照することができる。また、IECプログラム処理部40から制御アプリケーション処理部30の共有メモリ31へのデータ書込みも可能であってもよく、このようにIECプログラム処理部40から書込まれたデータは、インタプリタ34およびモーション処理部32から参照可能とされる。
【0031】
制御装置100においては、IECプログラム51とアプリケーションプログラム52の同期実行が実現可能である。その場合、制御アプリケーション処理部30のインタプリタ34は、制御周期より長い周期、例えば、制御周期の2倍分の周期毎にアプリケーションプログラム52を逐次実行する。ただし、IECプログラム処理部40のモーション処理部42および制御アプリケーション処理部30のモーション処理部32は、いずれも同一の制御周期毎に指令値を演算する。したがって、制御装置100からの指令値の出力は、いずれも予め定められた制御周期で同期して行われる。このように、IECプログラム処理部40および制御アプリケーション処理部30は、アクチュエータの動きを連続的に制御するためのモーション処理部をそれぞれ有しており、これらのモーション処理部が同期して指令値を演算することで、IECプログラム51に従う制御およびアプリケーションプログラム52に従う制御の両方を制御周期と同期させて実行することができ、これによって制御周期単位での精密な制御が実現される。
【0032】
また、インタプリタ34は、予め定められた制御アプリケーション同期周期(制御周期の整数倍)が到来する前に、アプリケーションプログラム52の解釈を一時停止する。その一時停止したタイミングで、IECプログラム処理部40と制御アプリケーション処理部30との間でデータ同期を行うことで、双方に整合性をもつデータを共有する。このように、インタプリタ34は、同期周期毎に、IECプログラム処理部40との間で共有するデータを更新する。共有データの更新に併せて、フィールド側から取得される入力データおよび出力データについても更新(データ同期)するようにしてもよい。これにより、制御アプリケーション処理部30側でも、IECプログラム処理部40で取得されたデータを利用してロボット210の制御が可能となる。制御アプリケーション同期周期は、制御周期の整数倍に設定されれば、どのような長さであってもよい。制御アプリケーションにおいて要求される制御の精度などに応じて、適宜設定される。
【0033】
このように制御装置100は、IECプログラム51やアプリケーションプログラム52を利用することで、複数の制御対象の同期制御を実現することが可能である。なお、他の制御装置100Aについても、制御装置100と同様の機能部を有しており、そこでも各フィールド機器の同期制御が実現され得る。そして、制御装置100、100Aにおいては、IECプログラム51やアプリケーションプログラム52のうちいずれかのプログラムを利用するかについては、制御対象の制御内容等を踏まえて適宜選択することができる。ここで、同期制御においては、その対象となる制御対象同士の動きが、目的とする結果が得られるように想定通りに同期していなければならない。例えば、同期制御が開始されるタイミングやその同期制御が終了されるタイミング、同期制御の対象となる制御対象の集まり(同期対象群)が間違って設定されてしまうと、好ましい同期制御の結果を得ることができない。そのため、各プログラムで設定されている制御対象の同期制御内容が適切か事前にシミュレーションできるように、処理装置10が構成されている。そこで、次に、処理装置10について説明する。具体的には、処理装置10における同期シミュレーションでの表示制御ついて説明する。
図3は処理装置10に形成される機能部をイメージ化したブロック図である。
【0034】
図3に示すように、破線で示す部分が、処理装置10の構成とする。処理装置10は表示部310と、特定部320と、制御部330とを備える。
【0035】
<表示部>
ここで、表示部310とは、一般的には液晶ディスプレイなどのディスプレイ装置であるが、プロジェクタによる表示など、他の表示手段を用いるものであっても構わない。表示部310は、制御装置100のプログラムを解析して、制御対象であるロボット210や、モータ222などの制御動作を可視化する機能を有する。本実施形態においては、当該プログラムは、上記のIECプログラム51及びアプリケーションプログラム52である。表示部310は、制御装置100の通信部70を介して制御装置100が有するプログラムを直接取得することができる。そして、表示部310は、その取得したプログラムを解析して、制御対象であるロボット210や、サーボドライバ220及びモータ222などのフィールド機器に対して行われる同期制御の内容を把握し、その内容に応じて制御対象の動きを把握する。その上で、プログラムの進行に応じて制御対象の動作をディスプレイ等の表示装置に表示する。この結果、ユーザは、IECプログラム51及びアプリケーションプログラム52による制御対象の動きを、視覚的に確認することができる。また、表示部310は、制御装置100から直接プログラムを取得する形態に代えて、ユーザの操作により制御対象の同期制御に関する情報が与えられてもよい。この場合、処理装置10は、通信部70を介して制御装置100に接続される必要は無い。
【0036】
<特定部>
上記の通り、制御装置100における同期制御では、制御対象に対する同期制御のタイミングや、同期制御の対象となる制御対象(同期対象群)は、目的とする制御結果が得られるように適宜設定される。そこで、特定部320は、ロボット210や、ロボット211や、モータ222などの制御対象のうち、前記シミュレーション上の前記IECプログラム51及びアプリケーションプログラム52の進行において同期制御されている同期対象群を特定する。同期対象群は、上記フィールド機器などの制御対象のうち、IECプログラム51とアプリケーションプログラム52の実行において同期制御されている複数の制御対象を含む。
【0037】
なお、特定部320は、同一の制御装置100内での同期制御における同期対象群を特定することだけでなく、当該制御装置100が、当該制御装置100のIECプログラム処理部40および制御アプリケーション処理部30に相当する所定処理部を有する他の制御装置(例えば他の制御装置100A)との間で、同期制御を行うことが可能であり、そのような場合、異なる制御装置100A間での同期制御における同期対象群を特定することもできる。
【0038】
<制御部>
制御部330は、表示部310により表示されている制御対象のうち、特定部320により特定された同期対象群を、当該同期対象群以外の制御対象とは区別できる態様で表示部310に表示させる。例えば、制御部330は、特定部320によって特定された同期対象群がそれぞれどこになるのか、又はどの状態になるのかを一目で分かるように、当該同期対象群以外の制御対象と異なる色を付して表示させてもよい。但し、これに限定されない、同期対象群を当該同期対象群以外の制御対象とは区別できる態様であれば、どのような形式でもいい(例えば、点線枠を付して表示する、など)。このように制御部330により表示部310の表示形態が制御されることで、ユーザは、同期制御に関する状態(同期制御と非同期制御の切り替えタイミングや、同期制御の対象となっている制御対象等)を容易に把握でき、その制御内容が想定通りのものか確認しやすくなる。
【0039】
<実施例1>
次に、
図4及び
図5を参照して、本実施形態の同期シミュレーションの処理装置10による強調表示に関する第1の実施例について説明する。第1の実施例は、1つの制御装置100内における同期制御に関する例である。
図4は、ロボット210と211によるワーク作業の流れを示しており、表示部310によるシミュレーションの表示結果でもある
。具体的には、先ず
図4の上段(a)に、ロボット210がコンベア上を流れるワーク224を把持しようとするとともに、ロボット211が同じコンベア上を流れるワーク225を把持しようとする状況が示されている。各ロボットの動作は、アプリケーションプログラム52により実現され、各ワークの流れ(すなわち、コンベアの動き)は、IECプログラム51により実現されている。その上で、ワーク224の把持の前後において、ロボット210とコンベアを駆動するモータ222とは同期制御され、一方で、ワーク225の把持の前後において、ロボット211と同じモータ222とは同期制御される。
【0040】
そして、各ワーク224、225を把持した各ロボット210、211は、続いて
図4の下段(b)に、ワーク224とワーク225の組み立て作業を行おうとする状況が示されている。このときのロボットの動作はアプリケーションプログラム52により実現され、そして、ワーク同士の組み立ての前後において、ロボット210とロボット211とが同期制御される。このようなロボット210、211、モータ222の動作を踏まえて、
図5に処理装置10による同期シミュレーションの可視化方法(処理方法)のフローチャートを示す。
【0041】
次は、
図5に参照し、ワークの組立作業では、処理装置が制御対象を強調表示するフローを説明する。制御アプリケーション処理部30により制御されている制御対象とIECプログラム処理部40により制御されている制御対象などの情報が通信部70を介して処理装置10に入力されて、IECプログラム51及びアプリケーションプログラム52の解析によりロボット210、ロボット211及びモータ222の動作及び位置などをシミュレーションする(ステップS301)。ステップS301の処理は、表示部310により行われる。続いて、ステップS302において、シミュレーションでのプログラムの進行において、上述制御対象が同期制御されているか否かが判定される。そこで、肯定判定されると、特定部320が、その同期制御になっている複数の制御対象が同期対象群として特定される(ステップS303)。なお、同期制御の対象が複数群ある場合(
図4(a)に示す場合では、2群の同期制御対象がある)、特定部320はそれぞれの同期対象群を区別して特定する。その後、ステップS303で特定された同期対象群を、当該同期対象群以外の対象と区別できる形式(例えば、
図4に示すように、同期対象群ごとに点線枠を付して表示する形式)で表示部310に表示させる(ステップS304)。この結果、表示部310は、
図4に示すように、IECプログラム51及びアプリケーションプログラム52の進行に応じてシミュレーション結果をディスプレイ上に表示するとともに、その表示において同期対象群が強調表示され、ユーザが同期制御の状態を視認しやすくなる。そして、ステップS301~ステップS304の処理が繰り返される。
【0042】
ステップS304における区別可能な表示形式については、様々な表示形態を採用できる。例えば、同期対象群ごとに色を変えて強調表示を行ってもよく、点滅等の視覚的な動きを伴う表示形態を採用してもよい。
【0043】
<実施例2>
次に、本実施形態の同期シミュレーションの処理装置10による強調表示に関する第2の実施例について説明する。具体的には、
図4の下段(b)に示す組立作業が終了した後のワークを、他のロボットに引き渡す作業を行う場合の同期制御を考える。このときワークを引き渡す側はロボット211であり、当該ワークを引き渡される側は、
図1に示すロボット210Aとする。ロボット210Aは、ロボット211を制御する制御装置100とは異なる制御装置(他の制御装置)100Aによりフィールドネットワーク2Aを介して制御される。したがって、ワークの引渡し作業については、制御装置100と他の制御装置100Aとの間で上位ネットワーク6を介して同期制御が行われることになる。上位ネットワーク6はEtherNetを利用するネットワークであるため、そこでの同期制御の精度は、実施例1で示した制御装置内のフィールドネットワーク2での同期制御の精
度より低くなる。
【0044】
このような場合でも
図5に示す処理方法を適用することができる。そして、この場合、ステップS304における区別可能な表示形式を、同期制御の精度に応じて変更してもよい。例えば、
図4に示す高精度の同期制御が行われる場合の表示形式は、
図4に示すように点線枠で同期制御群を囲むような表示を行い、一方で、上述した低精度の同期制御が行われる場合の表示形式は、配色による強調表示を行ってもよい。もちろん、この表示形態以外の形態を採用しても構わない。
【0045】
すなわち、本実施例では、制御部330は、同期制御における同期精度の種類に応じて、複数の同期対象群をそれぞれ異なる表示形式(例えば、異なる色を付して表示する)で表示部310に表示させる。この結果、制御装置100及び100Aの同期機能を使い、ワークの把持作業、ワークの組立作業及びワークの引き渡す作業に関連する同期制御について、各制御対象の動作とともに同期制御の状態を可視化させることができる。これによって、ユーザは、同期機能のデバッグ、調整などをリアルタイムで簡単にできる。
【0046】
<変形例>
なお、上記の例では、制御装置100と他の制御装置100Aとの間の同期制御の精度と、制御装置100内での同期制御の精度に着目したが、1つの制御装置100内で精度の異なる同期制御が行われる場合でも、その同期制御の精度に応じて、上記の区別可能な表示形式に関する処理を適用することもできる。
【0047】
<実施例3>
図6は、
図4(b)に示すロボット210とロボット211がワークの組み立て作業を行う際の、各ロボットのワークを把持しているエンドエフェクタの位置指令の推移を上段に示し、各ロボットのエンドエフェクタの位置制御における同期制御のON、OFFの状態を表す信号推移を下段に示している。すなわち、これらの指令・信号の推移は、同期制御される各ロボットの、その同期制御に関連する信号の推移である。そして、これらの信号の推移は、表示部310において、各ロボットのシミュレーション表示(
図4参照)に並行して、それぞれの時間軸が一致するように表示される。そのため、ユーザは、各プログラムの進行に応じた制御対象の動きと、それに関連する信号の推移とを容易に比較できるため、デバッグ効率を更に向上でき、設計、検証の工数を削減できる。
【0048】
また、
図6に示すように、同期機能の開始タイミングt1と、その終了タイミングt2も表示することができる。制御装置100に搭載する同期機能は、1msオーダの高精度な同期であるため、表示部310の表示速度が実時間と同じ速度であれば同期開始タイミングt1や同期終了タイミングt2などを視認するのは難しい。そこで、本実施形態で、表示部310での表示において、同期開始タイミングや同期終了タイミングの前後(例えば5ms、10msなど)の表示速度をそれ以外の期間における表示速度より遅くさせ、即ち、同期対象群の同期制御と非同期制御の切り替えタイミングの前後でシミュレーションや信号推移がスロー表示されることで、ユーザが簡単にデバッグ箇所を特定できるようになり、その作業効率が向上する。なお、どの程度スロー表示するかについては、ユーザが適宜選択することができる。
【符号の説明】
【0049】
1: 制御システム
2: フィールドネットワーク
6: 上位ネットワーク
10: 処理装置
20:上位ネットワークインターフェース
30: 制御アプリケーション処理部
40: IECプログラム処理部
51: IECプログラム
52: アプリケーションプログラム
60:下位ネットワークインターフェース
70:通信部
100、100A:制御装置
210、211、210A: ロボット
220、220A: サーボドライバ
222、222A: モータ
224、225: ワーク
310:表示部
320:特定部
330:制御部