JP2021086232A - 制御システム、制御装置および制御方法 - Google Patents

制御システム、制御装置および制御方法 Download PDF

Info

Publication number
JP2021086232A
JP2021086232A JP2019212705A JP2019212705A JP2021086232A JP 2021086232 A JP2021086232 A JP 2021086232A JP 2019212705 A JP2019212705 A JP 2019212705A JP 2019212705 A JP2019212705 A JP 2019212705A JP 2021086232 A JP2021086232 A JP 2021086232A
Authority
JP
Japan
Prior art keywords
command
robot
control device
unit
control
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
JP2019212705A
Other languages
English (en)
Other versions
JP7294085B2 (ja
Inventor
貴雅 植田
Takamasa Ueda
貴雅 植田
純児 島村
Junji Shimamura
純児 島村
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 JP2019212705A priority Critical patent/JP7294085B2/ja
Priority to PCT/JP2020/040208 priority patent/WO2021106467A1/ja
Publication of JP2021086232A publication Critical patent/JP2021086232A/ja
Application granted granted Critical
Publication of JP7294085B2 publication Critical patent/JP7294085B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • 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
    • 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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Programmable Controllers (AREA)
  • Numerical Control (AREA)

Abstract

【課題】より複雑な制御をより容易に実現できる構成を提供する。【解決手段】制御システムは、制御対象を制御するための制御装置と、センサ、モータドライバおよびロボットを制御装置に接続するためのネットワークとを含む。制御装置は、所定周期毎にセンサから状態値を収集する状態値取得部と、モーション命令に従って所定周期毎に指令値を生成してモータドライバへ送信する指令送信部と、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成してロボットへ順次送信するコマンド送信部とを含む。【選択図】図2

Description

本発明は、制御システム、制御装置および制御方法に関する。
従来より、FA(Factory Automation)分野においては、PLC(プログラマブルロジックコントローラ)などの制御装置とロボットとを組み合わせたシステム構成が公知である。
例えば、特開昭62−175808号公報(特許文献1)は、産業用ロボットの制御に視覚センサである画像処理装置を使用したロボット制御装置を開示する。特開昭61−208103号公報(特許文献2)は、ロボット、及びロボット周辺機器等の被制御機構と、プリンタ等の入出力装置とをそれぞれトータル的に制御する制御装置に、被制御機構及び入出力装置への統一した制御言語を解析、実行する機能を設け、各被制御対象を制御するための制御装置を標準化した構成を開示する。特開2000−010616号公報(特許文献3)は、産業用ロボットについてユーザプログラムの高速実行が可能なロボット制御システムを開示する。
また、モータやロボットに生じる遅延などを補償する構成が公知である。
例えば、特開2009−169468号公報(特許文献4)は、起動信号を検出した後、位置指令を生成する処理周期の実行開始時点までの遅延を、起動時刻及び実行開始時刻とから遅れ時間として算出し、該遅れ時間に基づき、起動信号を検出した時点から始まる理想位置指令に近似するように位置指令を生成する構成を開示する。特開2017−68353号公報(特許文献5)は、特に数値制御装置間の同期制御における同期精度を維持することが可能な数値制御システムを開示する。
特開昭62−175808号公報 特開昭61−208103号公報 特開2000−010616号公報 特開2009−169468号公報 特開2017−68353号公報
上述の先行技術文献においては、制御装置がモータを制御する構成、あるいは、制御装置がロボットを制御する構成といった個別的な構成を開示するに過ぎない。本発明は、このような従来構成に対して、より複雑な制御をより容易に実現できる構成を提供することを目的とする。
本発明のある実施の形態に係る制御システムは、制御対象を制御するための制御装置と、センサ、モータドライバおよびロボットを制御装置に接続するためのネットワークとを含む。制御装置は、所定周期毎にセンサから状態値を収集する状態値取得部と、モーション命令に従って所定周期毎に指令値を生成してモータドライバへ送信する指令送信部と、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成してロボットへ順次送信するコマンド送信部とを含む。
この構成によれば、同一のネットワーク上に接続されたモータドライバおよびロボットを同一の制御装置で制御できるので、より複雑な制御をより容易に実現できる。
制御システムは、モータドライバによるモータの駆動とロボットの動作とが同期するように、指令送信部による指令値の送信、および、コマンド送信部によるコマンドの送信の少なくとも一方を変更する同期調整部をさらに含んでいてもよい。この構成によれば、モータドライバによるモータとロボットとをより正確に同期して動作させることができる。
同期調整部は、指令送信部による指令値の送信を遅延させてもよい。この構成によれば、ロボットがコマンドを処理することにより生じる遅延を吸収できる。
同期調整部は、指令送信部が送信する指令値をモータドライバで処理を開始すべき第1のタイミング、および、コマンド送信部が送信するコマンドをロボットで処理を開始すべき第2のタイミングの少なくとも一方を、送信される指令に付加してもよい。この構成によれば、モータドライバおよびロボットの各々において、処理を開始すべきタイミングを指定できるので、動作の同期を確実に実現できる。
同期調整部は、コマンド送信部によるコマンドの送信に要する時間を考慮して、指令送信部による指令値の送信、および、コマンド送信部によるコマンドの送信の少なくとも一方を変更してもよい。この構成によれば、コマンド送信部によるコマンドの送信に要する時間により生じる同期ずれを吸収できる。
ロボットは、コマンドを解釈した結果に応じて動作してもよい。同期調整部は、ロボットによるコマンドの解釈に要する時間を考慮して、指令送信部による指令値の送信、および、コマンド送信部によるコマンドの送信の少なくとも一方を変更するようにしてもよい。この構成によれば、ロボットによるコマンドの解釈に要する時間により生じる同期ずれを吸収できる。
制御システムは、動作を同期させなければならないモータドライバおよびロボットの設定を受け付ける設定受付部をさらに含む。この構成によれば、同期動作させるべき対象を容易に設定できる。
ネットワークには、安全制御を実行する安全コントローラ、および、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサの少なくとも一方が接続される。この構成によれば、モータドライバおよびロボットに加えて、安全コントローラおよび視覚センサを含めて統合した制御を実現できる。
本発明の別の実施の形態に係る、制御対象を制御するための制御装置は、ネットワークを介して、センサ、モータドライバおよびロボットとの間でデータをやり取りするネットワークインターフェイスと、所定周期毎にセンサから状態値を収集する状態値取得部と、モーション命令に従って所定周期毎に指令値を生成してモータドライバへ送信する指令送信部と、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成してロボットへ順次送信するコマンド送信部とを含む。
本発明のさらに別の実施の形態によれば、制御対象を制御するための制御装置を含む制御システムにおける制御方法が提供される。制御装置にはネットワークを介して、センサ、モータドライバおよびロボットが接続されている。制御方法は、制御装置が、所定周期毎にセンサから状態値を収集するステップと、モーション命令に従って所定周期毎に指令値を生成してモータドライバへ送信するステップと、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成してロボットへ順次送信するステップとを含む。
本発明によれば、より複雑な制御をより容易に実現できる構成を提供できる。
本実施の形態に係る制御システムのアプリケーション例を示す模式図である。 本実施の形態に係る制御システムの構成例を示す模式図である。 本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するサーボドライバおよびサーボモータのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成する産業用ロボットのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成する安全コントローラのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成する安全コントローラのハードウェア構成例を示す模式図である。 本実施の形態に係る制御システムを構成するIOユニットのハードウェア構成例を示す模式図である。 本実施の形態に係る制御装置によるモーション命令の処理を説明するための図である。 本実施の形態に係る制御装置によるロボットプログラムの処理を説明するための図である。 本実施の形態に係る制御装置によるサイクリック処理の一例を説明するための図である。 本実施の形態に係る制御装置によるアクチュエータの動作開始までに要する遅延時間の一例を説明するための図である。 本実施の形態に係る制御装置によるアクチュエータの同期動作の実現に係る機能構成の要部を示す模式図である。 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための実装例を説明するための図である。 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための制御装置における処理手順を示すフローチャートである。 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための別の実装例を説明するための図である。 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための制御装置における別の処理手順を示すフローチャートである。 本実施の形態に係る制御システムのサポート装置において提供されるユーザインターフェイスの一例を示す模式図である。 本実施の形態に係る制御システムにおける入力および出力を含む同期動作を説明するためのタイムチャートである。 本実施の形態に係る制御システムのサポート装置において提供されるユーザインターフェイスの別の一例を示す模式図である。 本実施の形態に係る制御システムのサポート装置において提供される同期動作させる対象の入力デバイスおよびアクチュエータを設定するためのユーザインターフェイス画面の一例を示す模式図である。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。本実施の形態に係る制御システム1は、1つの制御装置が様々なデバイスを統合して制御できる。
図1は、本実施の形態に係る制御システム1のアプリケーション例を示す模式図である。図1には、カスタムロボット540と産業用ロボット600と同期して、箱40に商品であるワーク42を箱詰めする例を示す。より具体的には、カスタムロボット540の先端に設けられた吸着部44によりワーク42が吸着された状態で搬送され、予め用意された箱40の内部に配置される。産業用ロボット600は、カスタムロボット540によりワーク42が箱40の内部に配置された後、箱40の蓋締め、接着、宛先シール貼りなどを行う。
カスタムロボット540の近傍には視覚センサ800(を構成するカメラ)が配置されており、カメラにより撮像された画像に対して認識処理が行われることで、箱40の位置やワーク42の状態などが特定される。
カスタムロボット540は、アプリケーションに応じて任意に作成されるロボットであり、例えば、1または複数のサーボモータ550と、各サーボモータ550と機械的に結合されたリンク機構46とを有している。サーボモータ550の数およびリンク機構46の構造などは、アプリケーションに応じて任意に設計される。
産業用ロボット600は、一例として、垂直多関節ロボットであり、関節に相当する複数の軸30を有しており、それぞれの軸30が回転または移動することによって、先端に配置されたハンド32を任意の位置および任意の姿勢に配置できる。ハンド32の近傍に力覚センサ950が配置されており、ハンド32がワーク42または箱40に与える力を検出し、その検出された力に応じて処理を実行する。
カスタムロボット540および産業用ロボット600の周囲には、図示しない制限区域(ロボット可動エリア)が規定されており、この区域への人の侵入を検知するライトカーテンなどの安全デバイスが配置されている。安全デバイスが人の侵入を検知し、安全が保てないと判断されると、安全コントローラがカスタムロボット540または産業用ロボット600を減速あるいは停止させる。
なお、図1に示す制御システム1は任意のアプリケーションに応用可能である。
本実施の形態に係る制御システム1は、図1に示すような複数のデバイスが組み合わされたアプリケーションに対しても、1つの制御装置で制御することができる。
図2は、本実施の形態に係る制御システム1の構成例を示す模式図である。図2を参照して、本実施の形態に係る制御システム1の構成例について説明する。
制御システム1は、1つの制御装置で様々なデバイスを制御する統合型のシステムである。より具体的には、制御システム1は、統合的な制御を実現するための制御装置100を含む。制御装置100は、制御対象を制御するための装置であり、典型的には、PLC(プログラマブルロジックコントローラ)が用いられる。より具体的には、制御装置100は、演算ユニット101と、1または複数の拡張ユニット130とを含む。
制御システム1は、制御装置100と産業用のネットワークであるフィールドネットワーク20を介して接続される1または複数のデバイスをさらに含む。フィールドネットワーク20のプロトコルの一例として、EtherCAT(登録商標)を採用してもよい。
フィールドネットワーク20においては、制御装置100が通信マスタとして機能し、その他のデバイスが通信スレーブとして機能する。そのため、フィールドネットワーク20を介して制御装置100に接続されるデバイスを「スレーブデバイス」と称することもある。フィールドネットワーク20に接続される制御装置100およびスレーブデバイスの各々は、通信マスタに同期したカウンタを有しており、このカウンタに基づいて同期した制御が可能である。この同期制御の詳細については、後述する。
図2には、このようなスレーブデバイスの一例として、モータドライバの一例であるサーボドライバ500と、産業用ロボット600と、安全コントローラ700と、視覚センサ800と、IOユニット900とを含む。安全コントローラ700には、ライトカーテンなどの安全デバイス750が電気的に接続されており、IOユニット900には、力覚センサ950などの任意のセンサ、および/または、リレー(図示しない)などの任意のアクチュエータが電気的に接続されている。
このように、制御システム1は、力覚センサ950などの任意のセンサ、モータドライバおよびロボットを制御装置100に接続するためのネットワークとして、フィールドネットワーク20を含む。さらに、フィールドネットワーク20には、安全制御を実行する安全コントローラ700と、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサ800と、センサからの信号の入力、および、アクチュエータへの信号の出力の少なくとも一方を担当する入出力装置の一例であるIOユニット900とのうち、少なくとも1つが接続されてもよい。
制御装置100は、さらに上位ネットワーク12を介して、サポート装置200と、表示装置300と、サーバ装置400と接続されている。上位ネットワーク12は、ネットワークハブ10を用いて分岐したトポロジーを実現してもよい。上位ネットワーク12のプロトコルの一例として、EtherNet/IPなどの産業用のイーサネット(登録商標)を採用してもよい。
このように、本実施の形態によれば、1つの制御装置で様々なデバイスを制御する統合型の制御システム1を提供できる。
<B.ハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する各装置のハードウェア構成の一例について説明する。
(b1:制御装置100)
図3は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100の演算ユニット101は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)コントローラ120と、メモリカードインターフェイス112と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたユーザプログラム1104などが格納される。ユーザプログラム1104は、シーケンス命令1105およびモーション命令1106を含み得る。これらの命令は、典型的には、IEC61131−3準拠した形式で作成されてもよい。ロボットプログラム1108は、所定のプログラミング言語(例えば、V+言語などのロボット制御専用プログラミング言語や、GコードなどのNC制御に係るプログラミング言語)で記述されてもよい。
制御装置100は、フィールドネットワーク20に接続されたスレーブデバイスを介して任意の情報を参照可能であるので、ユーザプログラム1104には、産業用ロボット600に対するインターロック処理、サーボドライバ500に対する位置決め処理、力覚センサ950の検出量に基づいて、産業用ロボット600および/またはサーボドライバ500に対する指令値を決定する処理などを含めることができる。
上位ネットワークコントローラ106は、上位ネットワークを介して、任意の情報処理装置との間でデータをやり取りする。
フィールドネットワークコントローラ108は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。すなわち、フィールドネットワークコントローラ108は、フィールドネットワーク20を介してサーボドライバ500および産業用ロボット600との間でデータをやり取りするネットワークインターフェイスに相当する。フィールドネットワークコントローラ108は、他のデバイスとの間で同期されたカウンタ109を有している。図3に示す構成において、フィールドネットワークコントローラ108は、フィールドネットワーク20の通信マスタとして機能する。
USBコントローラ120は、USB接続を介して、サポート装置200などとの間でデータをやり取りする。
メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。メモリカード114には、例えば、産業用ロボット600を動作させるためのロボットプログラム1108などが格納される。
ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100を構成する任意の拡張ユニット130との間でデータをやり取りする。ローカルバスコントローラ116は、拡張ユニット130との間で同期されたカウンタ117を有している。図3に示す構成において、ローカルバスコントローラ116は、ローカルバス122の通信マスタとして機能する。
拡張ユニット130は、主として、フィールドデバイスとの間で信号をやり取りする機能ユニットであり、例えば、アナログ信号の入力および/または出力を担当するアナログIOユニット、デジタル信号の入力および/または出力を担当するデジタルIOユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。
(b2:サポート装置200)
図4は、本実施の形態に係る制御システム1を構成するサポート装置200のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
図4を参照して、サポート装置200は、プロセッサ202と、メインメモリ204と、入力部206と、出力部208と、ストレージ210と、光学ドライブ212と、USBコントローラ220と、通信コントローラ222とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
プロセッサ202は、CPUやGPUなどで構成され、ストレージ210に格納されたプログラム(一例として、OS2102および開発プログラム2104)を読出して、メインメモリ204に展開して実行することで、後述するような各種処理を実現する。
メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
ストレージ210には、基本的な機能を実現するためのOS2102、および、統合開発環境を実現するための開発プログラム2104などが格納される。
サポート装置200は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な統合開発環境を提供する。統合開発環境においては、制御装置100、サーボドライバ500、産業用ロボット600、安全コントローラ700、視覚センサ800などに向けられたプログラムの作成およびデバッグなどが可能になっている。
入力部206は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部208は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
USBコントローラ220は、USB接続を介して、制御装置100などとの間のデータをやり取りする。通信コントローラ222は、上位ネットワーク12を介して、任意の情報処理装置との間でデータをやり取りする。
サポート装置200は、光学ドライブ212を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記憶媒体214(例えば、DVD(Digital Versatile Disc)などの光学記憶媒体)から、その中に格納されたプログラムが読取られてストレージ210などにインストールされる。
サポート装置200で実行される開発プログラム2104などは、コンピュータ読取可能な記憶媒体214を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
なお、制御システム1が稼動中において、サポート装置200は、制御装置100から取り外されていてもよい。
(b3:表示装置300)
本実施の形態に係る制御システム1を構成する表示装置300は、HMI(Human Machine Interface)やPT(Programmable Terminal)とも称され、制御装置100が保持する情報を参照して監視操作画面を提供するとともに、ユーザ操作に対応する指示を制御装置100へ送出する。
表示装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(b4:サーバ装置400)
本実施の形態に係る制御システム1を構成するサーバ装置400は、例えば、ファイルサーバ、製造実行システム(MES:Manufacturing Execution System)、生産管理システムなどとして機能する。
サーバ装置400は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(b5:サーボドライバ500)
本実施の形態に係る制御システム1を構成するサーボドライバ500は、電気的に接続されたサーボモータ550を駆動する。サーボドライバ500は、モータドライバの一例であり、サーボドライバ500とは異なるモータドライバを採用してもよい。同様に、サーボモータ550は、モータの一例であり、サーボモータ550とは異なるモータ(例えば、誘導型モータやリニアモータなど)を採用してもよい。モータドライバとしては、駆動対象のモータに応じた構成を採用できる。
図5は、本実施の形態に係る制御システム1を構成するサーボドライバ500およびサーボモータ550のハードウェア構成例を示す模式図である。図5を参照して、サーボドライバ500は、フィールドネットワークコントローラ502と、演算処理回路510と、ドライブ回路530と、フィードバック受信回路532とを含む。
フィールドネットワークコントローラ502は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ502は、他のデバイスとの間で同期されたカウンタ503を有している。
演算処理回路510は、サーボドライバ500を動作させるために必要な演算処理を実行する。一例として、演算処理回路510は、プロセッサ512と、メインメモリ516と、ストレージ520とを含む。プロセッサ512は、サーボモータ550を駆動するための制御演算を実行する。
メインメモリ516は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ520は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ520には、サーボ制御を実現するためのサーボ制御プログラム5202、および、サーボドライバ500での処理を規定するための設定情報5204が格納される。
ドライブ回路530は、コンバータ回路およびインバータ回路などを含み、演算処理回路510からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ550へ供給する。
フィードバック受信回路532は、サーボモータ550からのフィードバック信号を受信して、その受信結果を演算処理回路510へ出力する。
サーボモータ550は、典型的には、三相交流モータ552および三相交流モータ552の回転軸に取付けられたエンコーダ554を含む。
(b6:産業用ロボット600)
本実施の形態に係る制御システム1を構成する産業用ロボット600は、制御装置100からの指令に従って動作する。産業用ロボット600は、例えば、垂直多関節ロボット、水平多関節(スカラ)ロボット、パラレルリンクロボット、直交ロボットなどの任意の汎用ロボットが用いられてもよい。
図6は、本実施の形態に係る制御システム1を構成する産業用ロボット600のハードウェア構成例を示す模式図である。図6を参照して、産業用ロボット600は、ロボット本体610と、ロボット本体610を駆動するロボットコントローラ650とを含む。
ロボットコントローラ650は、フィールドネットワークコントローラ652と、演算処理回路660とを含む。
フィールドネットワークコントローラ652は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ652は、他のデバイスとの間で同期されたカウンタ653を有している。
演算処理回路660は、ロボット本体610を駆動するために必要な演算処理を実行する。一例として、演算処理回路660は、プロセッサ662と、メインメモリ666と、ストレージ670と、インターフェイス回路668とを含む。プロセッサ662は、ロボット本体610を駆動するための制御演算を実行する。
メインメモリ666は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ670は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ670には、ロボットの駆動制御を実現するためのロボットシステムプログラム6702、および、ロボットコントローラ650での処理を規定するための設定情報6704が格納される。
インターフェイス回路668は、各軸を駆動するドライブ回路680に対して、それぞれ指令を与える。
ドライブ回路680の各々は、コンバータ回路およびインバータ回路などを含み、インターフェイス回路668からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ690へ供給する。サーボモータ690は、ロボット本体610のアーム部と機械的に結合されており、サーボモータ690の回転によって対応するアーム部が駆動される。
(b7:安全コントローラ700)
本実施の形態に係る制御システム1を構成する安全コントローラ700は、安全制御を実行する。
図7および図8は、本実施の形態に係る制御システム1を構成する安全コントローラ700のハードウェア構成例を示す模式図である。図7を参照して、安全コントローラ700は、フィールドネットワーク20を介した通信を担当する通信インターフェイスユニット710と、安全制御を司る安全制御ユニット730と、安全コンポーネントを接続する1または複数の安全拡張ユニット740とを含む。
通信インターフェイスユニット710は、ローカルバス760を介して、安全制御ユニット730および安全拡張ユニット740と接続されている。
通信インターフェイスユニット710は、プロセッサ711と、メインメモリ712と、ストレージ713と、フィールドネットワークコントローラ714と、USBコントローラ716と、ローカルバスコントローラ717とを含む。これらのコンポーネントは、プロセッサバス719を介して接続されている。
プロセッサ711は、フィールドネットワーク20との通信を制御する演算処理部に相当し、CPUやGPUなどで構成される。
メインメモリ712は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ713は、例えば、フラッシュROM、SSD、HDDなどの不揮発性記憶装置などで構成される。
フィールドネットワークコントローラ714は、フィールドネットワーク20を介して、任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ714は、他のデバイスとの間で同期されたカウンタ715を有している。
USBコントローラ716は、USB接続を介して、サポート装置200などの情報処理装置との間でデータをやり取りする。
ローカルバスコントローラ717は、ローカルバス760を介して、安全制御ユニット730および安全拡張ユニット740などの拡張ユニットとの間でデータをやり取りする。ローカルバスコントローラ717は、カウンタ718を有しており、カウンタ718は、フィールドネットワークコントローラ714のカウンタ715と同期されている。
図8(A)を参照して、安全制御ユニット730は、プロセッサ731と、メインメモリ732と、ストレージ733と、ローカルバスコントローラ738とを含む。これらのコンポーネントは、プロセッサバス737を介して接続されている。
プロセッサ731は、安全制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。
メインメモリ732は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ733は、例えば、フラッシュROM、SSD、HDDなどの不揮発性記憶装置などで構成される。
ストレージ733には、安全制御ユニット730での処理を規定するための設定情報734、要求される安全機能に応じた作成された安全プログラム735、および基本的な機能を実現するためのシステムプログラム736が格納される。
ローカルバスコントローラ738は、ローカルバス760を介して、通信インターフェイスユニット710との間でデータをやり取りする。ローカルバスコントローラ738は、カウンタ739を有しており、カウンタ739は、通信インターフェイスユニット710のローカルバスコントローラ717のカウンタ718と同期されている。
図8(B)を参照して、安全拡張ユニット740は、プロセッサ741と、メインメモリ742と、安全IOモジュール743と、ローカルバスコントローラ748とを含む。これらのコンポーネントは、プロセッサバス747を介して接続されている。
プロセッサ741は、安全制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。
メインメモリ742は、DRAMやSRAMなどの揮発性記憶装置などで構成される。
安全IOモジュール743は、安全デバイス750と電気的に接続されており、安全デバイス750による検出結果などの入力を受け付けたり、安全デバイス750を介した電源出力を行ったりする。
ローカルバスコントローラ748は、ローカルバス760を介して、通信インターフェイスユニット710との間でデータをやり取りする。ローカルバスコントローラ748は、カウンタ749を有しており、カウンタ749は、通信インターフェイスユニット710のローカルバスコントローラ717のカウンタ718と同期されている。
さらに、安全制御ユニット730と安全拡張ユニット740との間では、それぞれローカルバス760および通信インターフェイスユニット710を介して、相互にデータをやり取りすることができる。すなわち、安全制御ユニット730は、安全拡張ユニット740に入力された安全入力データを安全プログラム735の実行時に参照でき、また、安全プログラム735の実行により決定された安全出力データを安全拡張ユニット740から出力できる。
(b8:視覚センサ800)
本実施の形態に係る制御システム1を構成する視覚センサ800は、カメラでの撮像によって取得された画像に対して、予め規定された認識処理を実行し、その認識結果を出力する。
視覚センサ800は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。また、視覚センサ800で実行される各種認識処理についても公知であるので、ここでは詳細な説明は行わない。
(b9:IOユニット900)
本実施の形態に係る制御システム1を構成するIOユニット900は、力覚センサ950などの任意のセンサからの信号を受け付けるとともに、リレー(図示しない)などの任意のアクチュエータへ指令を出力する。
図9は、本実施の形態に係る制御システム1を構成するIOユニット900のハードウェア構成例を示す模式図である。図9を参照して、IOユニット900は、フィールドネットワークコントローラ902と、演算処理回路910とを含む。
フィールドネットワークコントローラ902は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ902は、他のデバイスとの間で同期されたカウンタ903を有している。
演算処理回路910は、IOユニット900の機能の実現に必要な演算処理を実行する。一例として、演算処理回路910は、プロセッサ912と、メインメモリ916と、ROM920とを含む。プロセッサ912は、IOユニット900の機能を実現するために必要な制御演算を実行する。
メインメモリ916は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ROM920には、IOユニット900の機能を実現するためのファームウェア922が格納される。
インターフェイス回路930は、力覚センサ950などの任意のセンサ、および/または、任意のアクチュエータとの間で信号をやり取りする。
(b10:その他の形態)
図3〜図9には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
また、制御装置100および/または安全コントローラ700の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、制御装置100にサポート装置200や表示装置300などの機能を統合した構成を採用してもよい。
<C.制御システム1におけるアクチュエータの同期動作>
フィールドネットワーク20としてEtherCATを採用する場合には、指令値および入力値を含む通信フレームがデバイス間を周期的に巡回することになる。この通信フレームを用いることで、制御装置100から送出された同じ通信フレームに格納された別々のデバイスに向けられた指令値は、それぞれのデバイスで実質的に同じタイミングで反映されることになる。
しかしながら、産業用ロボット600については、独自の命令インターフェイスが用意されていることも多い。そのため、サーボドライバ500あるいはサーボドライバ500により構成される各種機構と、産業用ロボット600との厳密な同期を実現できない可能性がある。本実施の形態に係る制御システム1は、独自の命令インターフェイスを有している産業用ロボット600を含めて、より厳密な同期動作を実現できる。
まず、モーション命令1106の処理およびロボットプログラム1108の処理について説明する。
図10は、本実施の形態に係る制御装置100によるモーション命令1106の処理を説明するための図である。図10(A)には、制御装置100で実行されるユーザプログラム1104に含まれるモーション命令1106の一例を示す。図10(A)に示されるモーション命令1106は、ファンクションブロック形式で描かれているが、これに限定されることなく、任意の形式で規定できる。制御装置100は、モーション命令1106を以下のような手順で処理する。
すなわち、図10(B)を参照して、モーション命令実行指示141が与えられると、モーション命令1106に対して、モーション命令解釈140が実行される。解釈された結果に基づいて、目標軌跡生成処理142が実行される。すなわち、対象の軸(典型的には、対象のサーボドライバ500)が移動すべき時間と位置との関係を規定する目標軌跡が生成される。そして、生成された目標軌跡に基づいて、指令値決定処理144が制御周期毎に実行される。この結果、対象のサーボドライバ500へ与えられる指令値(典型的には、制御周期毎の位置指令あるいは速度指令)を制御周期毎に決定できる。
図11は、本実施の形態に係る制御装置100によるロボットプログラム1108の処理を説明するための図である。図11を参照して、制御装置100において、ロボットプログラム1108に対して、プログラム解釈146が実行される。解釈された結果に基づいて、コマンド生成処理148が実行される。コマンド生成処理148により、ロボットコントローラ650が解釈可能なコマンドが生成される。生成されたコマンドは、フィールドネットワーク20を介して、ロボットコントローラ650へ送信される。
ロボットコントローラ650において、制御装置100から送信されたコマンドに対して、コマンド解釈672が実行される。解釈された結果に基づいて、目標軌跡生成処理674が実行される。すなわち、産業用ロボット600は、送信されたコマンドを解釈した結果に応じて動作する。
より具体的には、産業用ロボット600の軸30の各々が移動すべき時間と位置との関係を規定する目標軌跡が生成される。そして、生成された目標軌跡に基づいて、指令値決定処理676が制御周期毎に実行される。この結果、産業用ロボット600のドライブ回路680へ与えられる指令値(典型的には、制御周期毎の位置指令あるいは速度指令)を制御周期毎に決定できる。
図10に示すように、ユーザプログラム1104に含まれるモーション命令1106によりサーボドライバ500などを制御する場合には、制御装置100において制御周期毎の指令値を決定でき、そのままフィールドネットワーク20を介して対象のサーボドライバ500へ送出することができる。そして、サーボドライバ500は、その指令値に従って動作する。
これに対して、図11に示すように、ロボットプログラム1108により産業用ロボット600を制御する場合には、制御装置100から対象の産業用ロボット600に向けられたコマンドが生成される。この生成されたコマンドが産業用ロボット600へ送信された後に、産業用ロボット600は目標軌跡を生成して動作を開始する。また、制御装置100と産業用ロボット600との間のコマンドのやり取りには、通常、複数個の通信フレームが必要となる。
このように、制御装置100とアクチュエータ(サーボドライバ500および産業用ロボット600)との間の指令をやり取りする方式が異なっているなどの理由によって、サーボドライバ500あるいはサーボドライバ500により構成される各種機構と、産業用ロボット600との厳密な同期を実現できない可能性がある。
本実施の形態に係る制御装置100は、このような指令をやり取りする方式が異なっているアクチュエータが同一のフィールドネットワーク20に存在していても、より厳密な同期動作を実現する仕組みを提供する。
図12は、本実施の形態に係る制御装置100によるサイクリック処理の一例を説明するための図である。図12には、制御装置100において、優先度別に複数のタスクが設定されている例を示す。より具体的には、制御周期T1毎にサイクリック実行される高優先タスクと、アプリケーション実行周期T2(>T1)が設定された低優先タスクとが設定されている。
高優先タスクには、フィールドネットワーク20上で通信フレームを送受信する通信フレーム伝送処理150(O/I/Com)と、ユーザプログラム1104を実行するユーザプログラム実行処理152と、モーション命令1106を処理するモーション処理154と、ロボットプログラム1108から生成されたコマンドを処理するロボット処理156とが設定される。
通信フレーム伝送処理150は、直前の制御周期において実行された処理によって算出された指令値(出力データ)を通信フレームに格納して送信するとともに、各スレーブデバイスが通信フレームに格納した入力データを取得する処理が実行される。さらに、通信フレーム伝送処理150においては、産業用ロボット600との間でやり取りされるコマンドの送受信処理も実行される。
モーション処理154は、図10に示すモーション命令解釈140、目標軌跡生成処理142および指令値決定処理144を含む。ロボット処理156は、図11に示すコマンド生成処理148を含む。
低優先タスクには、ロボットプログラム1108を解釈してコマンドを生成するためのロボットプログラム解釈処理158が設定される。ロボットプログラム解釈処理158は、図11に示すプログラム解釈146を含む。ロボットプログラム解釈処理158により生成されたコマンドはバッファ159に順次書き込まれる。バッファ159に書き込まれたコマンドは、ロボット処理156において順次読み出されて対象の産業用ロボット600へ送信される。
このように、制御装置100においては、周期の異なる複数のタスクを実行することで、ユーザプログラム1104(シーケンス命令1105およびモーション命令1106を含み得る)に従うスレーブデバイスの制御、および、ロボットプログラム1108に従う産業用ロボット600の制御を実現する。
図13は、本実施の形態に係る制御装置100によるアクチュエータの動作開始までに要する遅延時間の一例を説明するための図である。
図13を参照して、ユーザプログラム1104に含まれるモーション命令1106の処理が開始されてから対象のアクチュエータ(サーボドライバ500およびサーボモータ550)が動作するまでには、指令値生成60に要する処理時間、伝送遅延62、およびアクチュエータが指令値に従って動作を開始するための応答遅延64の遅延が生じ得る。
これに対して、ロボットプログラム1108の処理が開始されてから対象のアクチュエータ(産業用ロボット600)が動作するまでには、コマンド生成70に要する処理時間、伝送遅延を含むコマンド送信72に要する時間、ロボットコントローラ650がコマンドを解釈して指令値を生成するのに要する処理時間74、およびアクチュエータが指令値に従って動作を開始するための応答遅延76の遅延が生じ得る。
本実施の形態に係る制御装置100は、タイミング調整を行うことで、モーション命令1106に従うアクチュエータの動作制御と、ロボットプログラム1108に従うアクチュエータとの間に生じる遅延時間の差を吸収する。このような遅延時間の差を吸収することにより、より正確な同期動作を実現できる。
<D.同期動作の実装例>
次に、アクチュエータを同期動作させるためのいくつかの実装例について説明する。
(d1:機能構成)
図14は、本実施の形態に係る制御装置100によるアクチュエータの同期動作の実現に係る機能構成の要部を示す模式図である。図14に示す各機能モジュールは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。
図14を参照して、制御装置100は、機能構成として、ユーザプログラム処理部160と、目標軌跡演算部162と、指令値演算部164と、出力遅延量演算部166と、各軸指令値演算部168と、入力遅延演算部170とを含む。これらの機能モジュールは、ユーザプログラム1104に含まれるモーション命令1106の処理に向けられる。
ユーザプログラム処理部160は、ストレージ110に格納されているユーザプログラム1104を読み出して実行する。目標軌跡演算部162は、ユーザプログラム1104に含まれるモーション命令1106を解釈して目標軌跡を生成する。指令値演算部164は、生成された目標軌跡に基づいて制御周期毎の指令値を決定する。指令値演算部164は、指令値の決定に際して、入力遅延演算部170により算出される入力遅延(フィードバック遅れ)を考慮してもよい。
出力遅延量演算部166は、遅延パラメータ176を参照して、同期動作の対象となる産業用ロボット600との間でタイミング調整に必要な出力遅延量を決定する。
各軸指令値演算部168は、対象のサーボドライバ500が構成する機構またはロボットのキネマティクス174を参照して、指令値演算部164によって決定された指令値を実現するための各軸に与えられる指令値を決定する。キネマティクス174は、サーボモータ550が組み込まれた機構またはロボットの物理的な位置および姿勢と、サーボモータ550の回転角度との関係を規定する情報を含む。キネマティクス174を参照して、目標軌跡演算部162により決定される目標軌跡を実現するためのサーボモータ550の各々の回転角度などが算出される。
各軸指令値演算部168は、出力遅延量演算部166によって決定された出力遅延量に応じて、決定した各軸指令値を対象のサーボドライバ500へ送信する。各軸指令値演算部168が決定した各軸指令値は、フィールドネットワークコントローラ108を通じて送信される。
このように、ユーザプログラム処理部160と、目標軌跡演算部162と、指令値演算部164と、各軸指令値演算部168とは、モーション命令1106に従って所定周期毎に指令値を生成してサーボドライバ500へ送信する指令送信部に相当する。
制御装置100は、機能構成として、ロボットプログラム処理部180と、指令値同期部182と、出力遅延量演算部184と、入力遅延演算部186とをさらに含む。これらの機能モジュールは、ロボットプログラム1108の処理に向けられる。
ロボットプログラム処理部180は、ストレージ110に格納されているロボットプログラム1108を読み出して内容を解釈してコマンドを生成する。すなわち、ロボットプログラム処理部180は、所定のプログラミング言語で記述されたロボットプログラム1108を解釈してコマンドを生成して産業用ロボット600へ順次送信するコマンド送信部に相当する。
ロボットプログラム処理部180は、コマンドの生成に際して、入力遅延演算部186により算出される入力遅延(フィードバック遅れ)を考慮してもよい。
指令値同期部182は、同期動作の対象となる1または複数のサーボドライバ500との間でタイミング調整に必要な情報を共有する。
出力遅延量演算部184は、遅延パラメータ176を参照して、同期動作の対象となる1または複数のサーボドライバ500との間でタイミング調整に必要な出力遅延量を決定する。出力遅延量演算部184は、決定した出力遅延量に応じて、ロボットプログラム処理部180により生成されたコマンドを対象の産業用ロボット600へ送信する。コマンは、フィールドネットワークコントローラ108を通じて送信される。
以上のように、モーション命令1106についての出力遅延量演算部166、および、ロボットプログラム1108についての出力遅延量演算部184は、サーボドライバ500によるサーボモータ550の駆動と産業用ロボット600の動作とが同期するように、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)の送信、および、ロボットプログラム1108を解釈して生成されるコマンドの送信の少なくとも一方を変更する同期調整部に相当する。
遅延パラメータ176は、(1)フィールドネットワーク20を介して伝送される通信フレームの伝送遅延、(2)制御装置100の制御周期(モーション命令1106に従って指令値が更新される周期)、(3)サーボドライバ500が指令を受けてサーボモータ550を駆動するまでのむだ時間、(4)制御装置100の処理リソースの大きさ(ロボットプログラム1108の解釈に要する時間)、(5)産業用ロボット600(ロボットコントローラ650)がコマンドを受けて動作を開始するためのむだ時間、などを考慮して決定された遅延時間を含んでいてもよい。
遅延パラメータ176に含まれる遅延時間は、制御システム1を設計した段階で算出される理論値であってもよいし、制御システム1の立ち上げ時に計測された実測値であってもよいし、制御システム1の運転中に計測された値に基づいて動的に更新される値であってもよいし、制御システム1の必要な構成について計測された各種情報に基づいて所定の演算式に従って決定される値であってもよい。
すなわち、本実施の形態に係る制御装置100は、図13に示すような遅延時間の差を吸収するための情報を予め保持あるいは都度計測できるようになっている。同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、制御装置100からのコマンドの送信に要する時間(コマンド送信72に要する時間)を考慮して、同期動作に必要な調整を行ってもよい。また、同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、産業用ロボット600によるコマンドの解釈に要する時間(コマンドを解釈して指令値を生成するのに要する処理時間74)を考慮して、同期動作に必要な調整を行ってもよい。さらに、同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、アクチュエータが指令値に従って動作を開始するための応答遅延64、および、アクチュエータが指令値に従って動作を開始するための応答遅延76を考慮して、同期動作に必要な調整を行ってもよい。
制御装置100は、機能構成として、状態値更新部190と、状態値保持部192とをさらに含む。これらの機能モジュールは、状態値の一例であるIOデータの更新処理に向けられる。すなわち、状態値更新部190は、フィールドネットワーク20に介して接続されているセンサあるいはIOユニット900から入力データを周期的に取得するとともに、ユーザプログラム1104の実行によって制御周期毎に算出される指令値(出力データ)をフィールドネットワーク20を介して対応するアクチュエータあるいはIOユニット900へ送信する。このように、状態値更新部190は、所定周期毎にセンサから状態値を収集する状態値取得部に相当する。
状態値保持部192は、状態値更新部190により更新される入力データおよび指令値(出力データ)を保持する記憶部であり、ユーザプログラム処理部160およびロボットプログラム処理部180からアクセス可能である。すなわち、ユーザプログラム処理部160およびロボットプログラム処理部180は、状態値保持部192にアクセスすることで、処理の実行中に入力データを参照するとともに、算出した指令値(出力データ)を出力できる。
以下、遅延時間の差を吸収して、アクチュエータを同期動作させるためのいくつかの実装例について説明する。
(d2:モーション命令に従う指令値の送信遅延:実装例その1)
アクチュエータを同期動作させる一つの実装例として、制御装置100がモーション命令1106に従う指令値の送信を待機して、ロボットプログラム1108に従う産業用ロボット600の動作と同期させる構成について説明する。
図15は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための実装例を説明するための図である。図15を参照して、時刻t11において、ユーザプログラム1104に含まれるモーション命令1106の処理が開始されると、モーション命令1106に基づいて指令値が生成される(指令値生成60)。
一方、同じ時刻t11において、ロボットプログラム1108が解釈されてコマンドが生成される(コマンド生成70)。そして、生成されたコマンドが産業用ロボット600へ送信される(コマンド送信72)。
産業用ロボット600(ロボットコントローラ650)は、制御装置100からのコマンドを解釈して指令値を生成した上で、動作を開始する。産業用ロボット600が動作を開始するタイミングは時刻t13であるとする。
制御装置100は、産業用ロボット600へコマンドを送信するのに要する時間、産業用ロボット600がコマンドから指令値を生成するのに要する時間、および、産業用ロボット600での応答遅延などに基づいて、産業用ロボット600が動作を開始する時刻t13を推定する。また、制御装置100は、モーション命令1106に従う指令値に関して発生する、伝送遅延62および応答遅延64を考慮して、モーション命令1106に基づいて生成された指令値送信66の開始タイミングを決定する(時刻t12)。そして、制御装置100は、時刻t12において、モーション命令1106に従う指令値の送信を開始する。
このように、制御装置100がモーション命令1106に従う指令値の送信を遅らせることで、ロボットプログラム1108により制御される産業用ロボット600と同期した動作を実現できる。すなわち、制御装置100の出力遅延量演算部166(図14参照)は、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)の送信を遅延させる。
図16は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための制御装置100における処理手順を示すフローチャートである。図16に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。
図16を参照して、制御装置100は、異なる種類のアクチュエータを同期動作させるための命令が処理対象になると(ステップS100においてYES)、対象のモーション命令1106を解釈して目標軌跡を生成する(ステップS102)とともに、対象のロボットプログラム1108を解釈してコマンドを生成する(ステップS104)。
制御装置100は、遅延パラメータ176を参照して、生成された目標軌跡およびコマンドに対応する待機時間を決定する(ステップS106)。すなわち、図15に示す時刻t12までの待機時間が決定される。
制御装置100は、生成したコマンドを産業用ロボット600に順次送信する(ステップS108)。そして、制御装置100は、ステップS106において決定された待機時間が経過したか否かを判断する(ステップS110)。
ステップS106において決定された待機時間が経過していれば(ステップS110においてYES)、制御装置100は、ステップS102において生成した目標軌跡に基づいて指令値(モーション命令1106に従う指令値)を決定し(ステップS112)、決定した指令値を対象のサーボドライバ500へ制御周期毎に送信する(ステップS114)。新たな命令が処理対象になる毎に、図16に示される処理が繰り返し実行される。
以上のように、制御装置100がモーション命令1106に従う指令値の送信を待機することで、ロボットプログラム1108に従う産業用ロボット600の動作と同期させることができる。すなわち、制御装置100によって制御される異なる種類のアクチュエータ同士を、より正確に同期動作させることができる。
(d3:指令値およびコマンドの処理開始タイミングの指定:実装例その2)
アクチュエータを同期動作させる別の実装例として、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、動作を同期させる構成について説明する。
図17は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための別の実装例を説明するための図である。図17を参照して、時刻t21において、ユーザプログラム1104に含まれるモーション命令1106の処理が開始されると、モーション命令1106に基づいて指令値が生成される(指令値生成60)。一方、同じ時刻t21において、ロボットプログラム1108が解釈されてコマンドが生成される(コマンド生成70)。
制御装置100は、サーボドライバ500での応答遅延64、産業用ロボット600へコマンドを送信するのに要する時間、産業用ロボット600がコマンドから指令値を生成するのに要する時間(処理時間74)、および、産業用ロボット600での応答遅延76などに基づいて、同期動作を開始すべき時刻t24を決定する。そして、制御装置100は、同期動作を開始する時刻t24に応じて決定される処理開始時刻をそれぞれ付加して、生成した所定期間に亘る指令値(指令値群)を対象のサーボドライバ500へ送信するとともに(指令値送信67)、生成したコマンドを対象の産業用ロボット600へ送信する(コマンド送信73)。
サーボドライバ500は、制御装置100から指定された処理開始時刻t23が到来すると、受信している指令値群に従ってサーボモータ550を駆動する処理を開始し、産業用ロボット600は、制御装置100から指定された処理開始時刻t22が到来すると、受信しているコマンドに従ってロボット本体610を駆動する処理を開始する。
すなわち、サーボドライバ500が処理開始時刻t23から指令値群の処理を開始すると、応答遅延64だけ遅れて、時刻t24からサーボモータ550が駆動される。また、産業用ロボット600が処理開始時刻t22からコマンドの処理を開始すると、コマンドから指令値を生成するのに要する処理時間74、および、応答遅延76だけ遅れて、時刻t24からロボット本体610の動作が開始する。
このように、制御装置100の出力遅延量演算部166(図14参照)は、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)をサーボドライバ500で処理を開始すべき処理開始時刻t23(第1のタイミング)を送信される指令(各軸に与えられる指令値)に付加する。また、制御装置100の出力遅延量演算部184(図14参照)は、ロボットプログラム1108から生成されたコマンドを産業用ロボット600で処理を開始すべき処理開始時刻t22(第2のタイミング)を送信される指令(コマンド)に付加する。
以上のような処理開始時刻を指定することで、制御装置100が、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、サーボモータ550および産業用ロボット600との間で同期動作を実現できる。
なお、フィールドネットワーク20に接続されているスレーブデバイスの各々は、通信マスタである制御装置100と同期されたカウンタを有しており、この同期されたカウンタに基づいて、制御装置100から指定された処理開始時刻が到来すると、処理を開始できる。
図18は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための制御装置100における別の処理手順を示すフローチャートである。図18に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。
図18を参照して、制御装置100は、異なる種類のアクチュエータを同期動作させるための命令が処理対象になると(ステップS200においてYES)、対象のモーション命令1106を解釈して目標軌跡を生成し(ステップS202)、制御周期毎の指令値を所定期間に亘って算出して、指令値群を生成する(ステップS204)。
並列的に、制御装置100は、対象のロボットプログラム1108を解釈してコマンドを生成する(ステップS206)
制御装置100は、遅延パラメータ176を参照して、生成された指令値群およびコマンドの処理を開始する処理開始時刻をそれぞれ決定する(ステップS208)。すなわち、図17に示す処理開始時刻t22およびt23が決定される。
最終的に、制御装置100は、生成した指令値群に決定された処理開始時刻の情報を付加して、対象のサーボドライバ500へ送信する(ステップS210)。並列的に、制御装置100は、生成したコマンドに決定された処理開始時刻の情報を付加して、対象の産業用ロボット600へ順次送信する(ステップS212)。新たな命令が処理対象になる毎に、図18に示される処理が繰り返し実行される。
対象のサーボドライバ500および産業用ロボット600は、指定された処理開始時刻が到来すると、対象の処理を開始する。
以上のように、制御装置100がモーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、制御装置100によって制御される異なる種類のアクチュエータ同士を、より正確に同期動作させることができる。
(d4:実装例その2の変形例)
上述の図17および図18においては、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドの両方に対して、処理開始のタイミングを指定する情報を付加する構成例について説明したが、これに限られず、いずれか一方にのみ処理開始のタイミングを指定する情報を付加するようにしてもよい。
また、上述の図17および図18においては、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドの両方に対して、それぞれ異なる処理開始時刻を付与する構成例について説明したが、応答遅延などが十分に小さい場合には、同一の処理開始時刻を付与するようにしてもよい。
<E.同期動作の設定>
上述の図16および図18に示すフローチャートは、異なる種類のアクチュエータを同期動作させるための命令が処理対象であるか否かを評価する処理を含む。このような異なる種類のアクチュエータを同期動作させるための命令は、ユーザプログラム1104において、ユーザが任意に作成することもできるが、同期動作させる対象を予め設定する環境を提供してもよい。以下、同期動作させる対象を予め設定する構成例について説明する。
図19は、本実施の形態に係る制御システム1のサポート装置200において提供されるユーザインターフェイスの一例を示す模式図である。図19(A)には、同期動作させる対象のアクチュエータを設定するためのユーザインターフェイス画面250の一例を示す。
ユーザインターフェイス画面250においては、同期動作させる対象のグループを示すオブジェクトあるいは変数を規定できるようになっている。ユーザは、同期動作グループ設定252に任意の文字列を指定できる。同期動作グループ設定252に指定された文字列は、図19(B)に示すユーザプログラム1104の開発環境において、オブジェクトあるいは変数として参照可能になる。
ユーザは、グループに属するアクチュエータの数をメンバ数設定欄254に設定するとともに、メンバとなるアクチュエータを示す変数をメンバ設定欄256に設定することができる。これらの内容が設定された後、生成ボタン258が押下されることで、メンバ設定欄256に設定されたアクチュエータからなる同期動作グループの設定が有効化される。この例では、変数「Sync_Gr000」が参照可能になる。
図19(B)には、ユーザプログラムを開発するためのユーザインターフェイス画面260の一例を示す。ユーザは、ユーザインターフェイス画面260において、任意のユーザプログラムを作成できる。図19(B)に示す例では、同期動作の対象となる複数のアクチュエータを同期して動作させるためのファンクションブロック262が規定されている。ファンクションブロック262の入力264に変数「Sync_Gr000」を指定することで、変数「Sync_Gr000」として規定される複数のアクチュエータの間について、上述したような処理が実行される。
このように、サポート装置200は、動作を同期させなければならないサーボドライバ500および産業用ロボット600の設定を受け付ける設定受付部に相当する。
上述したような構成により、ユーザは、異なる種類のアクチュエータを同期動作グループのメンバとして設定した場合であっても、種類の相違などを気にすることなく、容易に同期動作を実現できる。
なお、同期動作グループを示す変数については、図19(B)に示されるユーザプログラムの例に限らず、任意の形態で参照できるようにしてもよい。
<F.入力および出力を含む同期動作>
上述の実施の形態においては、モータドライバおよびロボットといったアクチュエータを同期動作させる処理に着目して説明したが、入力および出力を含めて一連の処理を同期させてもよい。
図20は、本実施の形態に係る制御システムにおける入力および出力を含む同期動作を説明するためのタイムチャートである。図20には、一例として、3つのセンサ01,02,03とカスタムロボット540および産業用ロボット600とが同期動作を行う例を示す。あるタイミングにおいて、3つのセンサ01,02,03のそれぞれが示すセンシング結果(入力値)を取得するとともに、その取得された各センサからの入力値に基づいて制御演算が実行される。そして、制御演算の実行結果に基づいて、カスタムロボット540および産業用ロボット600に対して指令が与えられる。上述したような処理によって、カスタムロボット540および産業用ロボット600は、あるタイミングにおいて同期して動作を開始する。
このように、制御装置100(図14に示す状態値取得部に相当する状態値更新部190)は、グループに設定された複数の入力デバイスから同期したタイミングで状態値を取得することができる。
本実施の形態に係る制御システム1は、図20に示すように、センサなどの1または複数の入力デバイスと、複数のアクチュエータとを単一のグループと見なして、より精度の高い同期制御を実現することもできる。
1または複数の入力デバイスと、複数のアクチュエータとを単一のグループに設定する方法としては、任意の方法を採用できる。
図21は、本実施の形態に係る制御システム1のサポート装置200において提供されるユーザインターフェイスの別の一例を示す模式図である。図21に示されるユーザインターフェイス画面260Aにおいては、同期動作の対象となる1または複数の入力デバイスと複数のアクチュエータとを同期して動作させるためのファンクションブロック262Aが規定されている。ファンクションブロック262Aの入力264に変数「Sync_Gr000」を指定することで、変数「Sync_Gr000」として規定される複数のアクチュエータが同期動作の対象であることを規定される。
さらに、ファンクションブロック262Aの入力265に変数「Input_001」,「Input_002」,「Input_003」を指定することで、対応する入力デバイスが、変数「Sync_Gr000」として規定される複数のアクチュエータと同期されることを規定される。
図21に示すようなユーザインターフェイス画面260Aを用いることで、入力および出力を含めた同期動作を実現できる。
さらに、同期動作させる対象の入力デバイスおよびアクチュエータを設定するためのユーザインターフェイス画面250Aを提供してもよい。
図22は、本実施の形態に係る制御システム1のサポート装置200において提供される同期動作させる対象の入力デバイスおよびアクチュエータを設定するためのユーザインターフェイス画面の一例を示す模式図である。図22を参照して、ユーザインターフェイス画面250Aは、図19(A)に示されるユーザインターフェイス画面250において、入力デバイスをさらに設定できるようにしたものに相当する。ユーザインターフェイス画面250Aに対して、ユーザは、グループに属する入力デバイスの数をメンバ数設定欄255に設定するとともに、メンバとなる入力デバイスを示す変数をメンバ設定欄257に設定することができる。これらの内容が設定された後、生成ボタン258が押下されることで、メンバ設定欄256に設定されたアクチュエータからなる同期動作グループの設定が有効化される。この例では、変数「Sync_Gr000」が参照可能になる。
すなわち、変数「Sync_Gr000」は、設定された入力デバイスおよび出力デバイス(アクチュエータ)をメンバとして含むオブジェクトとして取り扱うことができる。
このように、同期動作の対象となる入力デバイスおよび出力デバイス(アクチュエータ)を単一のユーザインターフェイス画面上で設定できるので、ユーザによる設定の手間を低減できる。入力デバイスおよびアクチュエータを含めて同期動作させることができるので、より精度の高い同期制御を実現することもできる。
<G.変形例>
上述の説明においては、1つの制御装置100が異なる種類のアクチュエータを含む様々なデバイスを統合して制御する構成例について示したが、複数の制御装置100が連係して、様々なデバイスを統合して制御するようにしてもよい。すなわち、複数の制御装置100の間で処理を分担して実行するような構成を採用してもよい。このような構成についても、本願発明の技術的範囲から除外されるものではない。
また、上述の説明においては、単一のフィールドネットワーク20にすべてのデバイスが接続される例を示すが、これに限らず、例えば、制御装置100が複数のフィールドネットワーク20に接続されており、各デバイスはいずれかのフィールドネットワークに接続されていてもよい。このような構成についても、本願発明の技術的範囲から除外されるものではない。
さらに、図2には、様々なデバイスがフィールドネットワーク20に接続される例を示すが、すべての種類のデバイスがフィールドネットワーク20に接続されていなくてもよい。
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
制御システム(1)であって、
制御対象を制御するための制御装置(100)と、
センサ(950)、モータドライバ(500)およびロボット(600)を前記制御装置に接続するためのネットワーク(20)とを備え、
前記制御装置は、
所定周期毎に前記センサから状態値を収集する状態値取得部(190)と、
モーション命令(1106)に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部(160,162,164,168)と、
所定のプログラミング言語で記述されたプログラム(1108)を解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部(180)とを含む、制御システム。
[構成2]
前記モータドライバによるモータの駆動と前記ロボットの動作とが同期するように、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する同期調整部(166,184)をさらに備える、構成1に記載の制御システム。
[構成3]
前記同期調整部は、前記指令送信部による前記指令値の送信を遅延させる、構成2に記載の制御システム。
[構成4]
前記同期調整部は、前記指令送信部が送信する前記指令値を前記モータドライバで処理を開始すべき第1のタイミング(t23)、および、前記コマンド送信部が送信する前記コマンドを前記ロボットで処理を開始すべき第2のタイミング(t22)の少なくとも一方を、送信される指令に付加する、構成2に記載の制御システム。
[構成5]
前記同期調整部は、前記コマンド送信部による前記コマンドの送信に要する時間(72)を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、構成2〜4のいずれか1項に記載の制御システム。
[構成6]
前記ロボットは、前記コマンドを解釈した結果に応じて動作し、
前記同期調整部は、前記ロボットによる前記コマンドの解釈に要する時間(74)を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、構成2〜5のいずれか1項に記載の制御システム。
[構成7]
動作を同期させなければならない前記モータドライバおよび前記ロボットの設定を受け付ける設定受付部(200)をさらに備える、構成2〜6のいずれか1項に記載の制御システム。
[構成8]
前記ネットワークには、安全制御を実行する安全コントローラ(700)、および、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサ(800)の少なくとも一方が接続される、構成1〜7のいずれか1項に記載の制御システム。
[構成9]
制御対象を制御するための制御装置(100)であって、
ネットワーク(20)を介して、センサ(950)、モータドライバ(500)およびロボット(600)との間でデータをやり取りするネットワークインターフェイス(108)と、
所定周期毎にセンサから状態値を収集する状態値取得部(190)と、
モーション命令(1106)に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部(160,162,164,168)と、
所定のプログラミング言語で記述されたプログラム(1108)を解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部(180)とを備える、制御装置。
[構成10]
制御対象を制御するための制御装置(100)を含む制御システム(1)における制御方法であって、前記制御装置にはネットワーク(20)を介して、センサ(950)、モータドライバ(500)およびロボット(600)が接続されており、前記制御方法は、
前記制御装置が、所定周期毎に前記センサから状態値を収集するステップと、
前記制御装置が、モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信するステップ(S114,S210)と、
前記制御装置が、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するステップ(S108,S212)とを備える、制御方法。
<I.利点>
本実施の形態に係る制御システム1によれば、1または複数のモータ(あるいは、1または複数のモータにより構成される機構)と、1または複数の産業用ロボットとを単一の制御装置で制御することができる。このように複数のアクチュエータを単一の制御装置で制御できるため、複数のアクチュエータに対する制御内容を制御装置で実行されるユーザプログラムで規定できるため、複雑な制御を実現するにあたっても、ユーザは、設計時にアクチュエータ間の同期などを考慮しなくても、同期動作を実現できる。
また、本実施の形態に係る制御システム1によれば、モータおよび産業用ロボットだけではなく、安全コントローラ、視覚センサ、IOユニットなどについても、同一のネットワークに接続でき、制御装置がこれらのデバイスを統合して制御できるので、より複雑な制御をより容易に実現できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、10 ネットワークハブ、12 上位ネットワーク、20 フィールドネットワーク、30 軸、32 ハンド、40 箱、42 ワーク、44 吸着部、46 リンク機構、60 指令値生成、62 伝送遅延、64,76 応答遅延、66,67 指令値送信、70 コマンド生成、72,73 コマンド送信、74 処理時間、100 制御装置、101 演算ユニット、102,202,512,662,711,731,741,912 プロセッサ、104,204,516,666,712,732,742,916 メインメモリ、106 上位ネットワークコントローラ、108,502,652,714,902 フィールドネットワークコントローラ、109,117,503,653,715,718,739,749,903 カウンタ、110,210,520,670,713,733 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116,717,738,748 ローカルバスコントローラ、118,218,719,737,747 プロセッサバス、120,220,716 USBコントローラ、122,760 ローカルバス、130 拡張ユニット、140 モーション命令解釈、141 モーション命令実行指示、142,674 目標軌跡生成処理、144,676 指令値決定処理、146 プログラム解釈、148 コマンド生成処理、150 通信フレーム伝送処理、152 ユーザプログラム実行処理、154 モーション処理、156 ロボット処理、158 ロボットプログラム解釈処理、159 バッファ、160 ユーザプログラム処理部、162 目標軌跡演算部、164 指令値演算部、166,184 出力遅延量演算部、168 軸指令値演算部、170,186 入力遅延演算部、174 キネマティクス、176 遅延パラメータ、180 ロボットプログラム処理部、182 指令値同期部、190 状態値更新部、192 状態値保持部、200 サポート装置、206 入力部、208 出力部、212 光学ドライブ、214 記憶媒体、222 通信コントローラ、250,250A,260,260A ユーザインターフェイス画面、252 同期動作グループ設定、254,255 メンバ数設定欄、256,257 メンバ設定欄、258 生成ボタン、262,262A ファンクションブロック、264,265 入力、300 表示装置、400 サーバ装置、500 サーボドライバ、510,660,910 演算処理回路、530,680 ドライブ回路、532 フィードバック受信回路、540 カスタムロボット、550,690 サーボモータ、552 三相交流モータ、554 エンコーダ、600 産業用ロボット、610 ロボット本体、650 ロボットコントローラ、668,930 インターフェイス回路、672 コマンド解釈、700 安全コントローラ、710 通信インターフェイスユニット、730 安全制御ユニット、734,5204,6704 設定情報、735 安全プログラム、736,1102 システムプログラム、740 安全拡張ユニット、743 モジュール、750 安全デバイス、800 視覚センサ、900 IOユニット、920 ROM、922 ファームウェア、950 力覚センサ、1104 ユーザプログラム、1105 シーケンス命令、1106 モーション命令、1108 ロボットプログラム、2104 開発プログラム、5202 サーボ制御プログラム、6702 ロボットシステムプログラム、T1 制御周期、T2 アプリケーション実行周期、t11,t12,t13,t21,t24 時刻、t22,t23 処理開始時刻。

Claims (10)

  1. 制御システムであって、
    制御対象を制御するための制御装置と、
    センサ、モータドライバおよびロボットを前記制御装置に接続するためのネットワークとを備え、
    前記制御装置は、
    所定周期毎に前記センサから状態値を収集する状態値取得部と、
    モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部と、
    所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部とを含む、制御システム。
  2. 前記モータドライバによるモータの駆動と前記ロボットの動作とが同期するように、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する同期調整部をさらに備える、請求項1に記載の制御システム。
  3. 前記同期調整部は、前記指令送信部による前記指令値の送信を遅延させる、請求項2に記載の制御システム。
  4. 前記同期調整部は、前記指令送信部が送信する前記指令値を前記モータドライバで処理を開始すべき第1のタイミング、および、前記コマンド送信部が送信する前記コマンドを前記ロボットで処理を開始すべき第2のタイミングの少なくとも一方を、送信される指令に付加する、請求項2に記載の制御システム。
  5. 前記同期調整部は、前記コマンド送信部による前記コマンドの送信に要する時間を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、請求項2〜4のいずれか1項に記載の制御システム。
  6. 前記ロボットは、前記コマンドを解釈した結果に応じて動作し、
    前記同期調整部は、前記ロボットによる前記コマンドの解釈に要する時間を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、請求項2〜5のいずれか1項に記載の制御システム。
  7. 動作を同期させなければならない前記モータドライバおよび前記ロボットの設定を受け付ける設定受付部をさらに備える、請求項2〜6のいずれか1項に記載の制御システム。
  8. 前記ネットワークには、安全制御を実行する安全コントローラ、および、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサの少なくとも一方が接続される、請求項1〜7のいずれか1項に記載の制御システム。
  9. 制御対象を制御するための制御装置であって、
    ネットワークを介して、センサ、モータドライバおよびロボットとの間でデータをやり取りするネットワークインターフェイスと、
    所定周期毎に前記センサから状態値を収集する状態値取得部と、
    モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部と、
    所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部とを備える、制御装置。
  10. 制御対象を制御するための制御装置を含む制御システムにおける制御方法であって、前記制御装置にはネットワークを介して、センサ、モータドライバおよびロボットが接続されており、前記制御方法は、
    前記制御装置が、所定周期毎に前記センサから状態値を収集するステップと、
    前記制御装置が、モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信するステップと、
    前記制御装置が、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するステップとを備える、制御方法。
JP2019212705A 2019-11-25 2019-11-25 制御システム、制御装置および制御方法 Active JP7294085B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019212705A JP7294085B2 (ja) 2019-11-25 2019-11-25 制御システム、制御装置および制御方法
PCT/JP2020/040208 WO2021106467A1 (ja) 2019-11-25 2020-10-27 制御システム、制御装置および制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019212705A JP7294085B2 (ja) 2019-11-25 2019-11-25 制御システム、制御装置および制御方法

Publications (2)

Publication Number Publication Date
JP2021086232A true JP2021086232A (ja) 2021-06-03
JP7294085B2 JP7294085B2 (ja) 2023-06-20

Family

ID=76087680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019212705A Active JP7294085B2 (ja) 2019-11-25 2019-11-25 制御システム、制御装置および制御方法

Country Status (2)

Country Link
JP (1) JP7294085B2 (ja)
WO (1) WO2021106467A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023200841A1 (en) * 2022-04-12 2023-10-19 Flexxbotics, Inc. Robotic workflow recipe
US11809357B2 (en) 2021-06-11 2023-11-07 Yazaki Corporation Communication system, superior control device and subordinate control device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116526894A (zh) * 2022-01-20 2023-08-01 华为技术有限公司 电机控制系统、电机控制方法和电机驱动和转发装置
CN115792452B (zh) * 2022-12-01 2024-05-10 苏州铸正机器人有限公司 一种机器人相应延时检测方法及检测设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120130539A1 (en) * 2010-11-23 2012-05-24 Korea Institute Of Science And Technology Robot control system and control method using the same
JP2019032789A (ja) * 2017-08-10 2019-02-28 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2019067045A (ja) * 2017-09-29 2019-04-25 オムロン株式会社 制御装置
JP2019067046A (ja) * 2017-09-29 2019-04-25 オムロン株式会社 制御システムおよび制御装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3538362B2 (ja) * 1999-09-16 2004-06-14 ファナック株式会社 複数ロボットの同期又は協調動作制御装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120130539A1 (en) * 2010-11-23 2012-05-24 Korea Institute Of Science And Technology Robot control system and control method using the same
JP2019032789A (ja) * 2017-08-10 2019-02-28 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP2019067045A (ja) * 2017-09-29 2019-04-25 オムロン株式会社 制御装置
JP2019067046A (ja) * 2017-09-29 2019-04-25 オムロン株式会社 制御システムおよび制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809357B2 (en) 2021-06-11 2023-11-07 Yazaki Corporation Communication system, superior control device and subordinate control device
JP7410085B2 (ja) 2021-06-11 2024-01-09 矢崎総業株式会社 通信システム及び上位制御装置
WO2023200841A1 (en) * 2022-04-12 2023-10-19 Flexxbotics, Inc. Robotic workflow recipe

Also Published As

Publication number Publication date
JP7294085B2 (ja) 2023-06-20
WO2021106467A1 (ja) 2021-06-03

Similar Documents

Publication Publication Date Title
WO2021106467A1 (ja) 制御システム、制御装置および制御方法
US10761515B2 (en) Control system for controlling control object and control device for linking control applications in control system
US10908577B2 (en) Control device
EP3477405B1 (en) Control device
JP6903275B2 (ja) 制御装置および制御方法
US10606246B2 (en) Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle
US20190095246A1 (en) Support device and non-transitory storage medium
US11855907B2 (en) Robot control system and control method
WO2021181801A1 (ja) ロボット制御システムおよび制御方法
EP3822734A1 (en) Control device and control method
WO2022162959A1 (ja) 制御システム、ロボットコントローラおよび制御方法
WO2022162958A1 (ja) 制御装置、プログラム実行方法およびプログラム
WO2021181800A1 (ja) ロボット制御システムおよび制御方法
US20230022312A1 (en) Control device
Kelkar EtherCAT based motion controller
JP2021144586A (ja) ロボット制御システムおよび制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220907

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230522

R150 Certificate of patent or registration of utility model

Ref document number: 7294085

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150