JP7294085B2 - Control system, control device and control method - Google Patents
Control system, control device and control method Download PDFInfo
- Publication number
- JP7294085B2 JP7294085B2 JP2019212705A JP2019212705A JP7294085B2 JP 7294085 B2 JP7294085 B2 JP 7294085B2 JP 2019212705 A JP2019212705 A JP 2019212705A JP 2019212705 A JP2019212705 A JP 2019212705A JP 7294085 B2 JP7294085 B2 JP 7294085B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- robot
- control device
- unit
- control system
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable 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)
Description
本発明は、制御システム、制御装置および制御方法に関する。 The present invention relates to a control system, control device and control method.
従来より、FA(Factory Automation)分野においては、PLC(プログラマブルロジックコントローラ)などの制御装置とロボットとを組み合わせたシステム構成が公知である。 Conventionally, in the FA (Factory Automation) field, a system configuration in which a control device such as a PLC (Programmable Logic Controller) and a robot are combined is known.
例えば、特開昭62-175808号公報(特許文献1)は、産業用ロボットの制御に視覚センサである画像処理装置を使用したロボット制御装置を開示する。特開昭61-208103号公報(特許文献2)は、ロボット、及びロボット周辺機器等の被制御機構と、プリンタ等の入出力装置とをそれぞれトータル的に制御する制御装置に、被制御機構及び入出力装置への統一した制御言語を解析、実行する機能を設け、各被制御対象を制御するための制御装置を標準化した構成を開示する。特開2000-010616号公報(特許文献3)は、産業用ロボットについてユーザプログラムの高速実行が可能なロボット制御システムを開示する。 For example, Japanese Patent Laying-Open No. 62-175808 (Patent Document 1) discloses a robot control device that uses an image processing device, which is a visual sensor, to control an industrial robot. Japanese Patent Laying-Open No. 61-208103 (Patent Document 2) describes a control device for controlling a controlled mechanism such as a robot and robot peripherals, and an input/output device such as a printer in a total manner. Disclosed is a configuration in which a function for analyzing and executing a unified control language for an input/output device is provided, and a control device for controlling each controlled object is standardized. Japanese Patent Laying-Open No. 2000-010616 (Patent Document 3) discloses a robot control system capable of high-speed execution of a user program for an industrial robot.
また、モータやロボットに生じる遅延などを補償する構成が公知である。
例えば、特開2009-169468号公報(特許文献4)は、起動信号を検出した後、位置指令を生成する処理周期の実行開始時点までの遅延を、起動時刻及び実行開始時刻とから遅れ時間として算出し、該遅れ時間に基づき、起動信号を検出した時点から始まる理想位置指令に近似するように位置指令を生成する構成を開示する。特開2017-68353号公報(特許文献5)は、特に数値制御装置間の同期制御における同期精度を維持することが可能な数値制御システムを開示する。
Also, there is a well-known configuration for compensating for delays occurring in motors and robots.
For example, Japanese Patent Application Laid-Open No. 2009-169468 (Patent Document 4) describes the delay from the start time and the execution start time to the start time of the processing cycle for generating the position command after detecting the start signal as the delay time. Based on the delay time, a configuration is disclosed in which a position command is generated so as to approximate the ideal position command starting from the time when the activation signal is detected. Japanese Patent Laying-Open No. 2017-68353 (Patent Document 5) discloses a numerical control system capable of maintaining synchronization accuracy particularly in synchronization control between numerical controllers.
上述の先行技術文献においては、制御装置がモータを制御する構成、あるいは、制御装置がロボットを制御する構成といった個別的な構成を開示するに過ぎない。本発明は、このような従来構成に対して、より複雑な制御をより容易に実現できる構成を提供することを目的とする。 The above prior art documents merely disclose individual configurations such as a configuration in which a control device controls a motor or a configuration in which a control device controls a robot. An object of the present invention is to provide a configuration that can more easily realize more complicated control than such a conventional configuration.
本発明のある実施の形態に係る制御システムは、制御対象を制御するための制御装置と、センサ、モータドライバおよびロボットを制御装置に接続するためのネットワークとを含む。制御装置は、所定周期毎にセンサから状態値を収集する状態値取得部と、モーション命令に従って所定周期毎に指令値を生成してモータドライバへ送信する指令送信部と、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成してロボットへ順次送信するコマンド送信部とを含む。 A control system according to an embodiment of the present invention includes a control device for controlling a controlled object, and a network for connecting sensors, motor drivers and robots to the control device. The control device includes a state value acquisition unit that collects state values from sensors at predetermined intervals, a command transmission unit that generates command values at predetermined intervals according to motion commands and sends them to the motor driver, and is written in a predetermined programming language. and a command transmission unit that interprets the program that has been written, generates commands, and sequentially transmits the commands to the robot.
この構成によれば、同一のネットワーク上に接続されたモータドライバおよびロボットを同一の制御装置で制御できるので、より複雑な制御をより容易に実現できる。 According to this configuration, the motor driver and the robot connected on the same network can be controlled by the same control device, so that more complicated control can be realized more easily.
制御システムは、モータドライバによるモータの駆動とロボットの動作とが同期するように、指令送信部による指令値の送信、および、コマンド送信部によるコマンドの送信の少なくとも一方を変更する同期調整部をさらに含んでいてもよい。この構成によれば、モータドライバによるモータとロボットとをより正確に同期して動作させることができる。 The control system further includes a synchronization adjustment unit that changes at least one of transmission of command values by the command transmission unit and transmission of commands by the command transmission unit so that driving of the motor by the motor driver and operation of the robot are synchronized. may contain. According to this configuration, the motor by the motor driver and the robot can be operated in more accurate synchronization.
同期調整部は、指令送信部による指令値の送信を遅延させてもよい。この構成によれば、ロボットがコマンドを処理することにより生じる遅延を吸収できる。 The synchronization adjustment section may delay transmission of the command value by the command transmission section. According to this configuration, it is possible to absorb the delay caused by the robot processing the command.
同期調整部は、指令送信部が送信する指令値をモータドライバで処理を開始すべき第1のタイミング、および、コマンド送信部が送信するコマンドをロボットで処理を開始すべき第2のタイミングの少なくとも一方を、送信される指令に付加してもよい。この構成によれば、モータドライバおよびロボットの各々において、処理を開始すべきタイミングを指定できるので、動作の同期を確実に実現できる。 The synchronization adjustment unit sets at least a first timing at which the motor driver should start processing the command value transmitted by the command transmission unit and a second timing at which the robot should start processing the command transmitted by the command transmission unit. One may be appended to the transmitted command. According to this configuration, it is possible to specify the timing to start processing in each of the motor driver and the robot, so that the synchronization of operations can be reliably realized.
同期調整部は、コマンド送信部によるコマンドの送信に要する時間を考慮して、指令送信部による指令値の送信、および、コマンド送信部によるコマンドの送信の少なくとも一方を変更してもよい。この構成によれば、コマンド送信部によるコマンドの送信に要する時間により生じる同期ずれを吸収できる。 The synchronization adjustment section may change at least one of transmission of the command value by the command transmission section and transmission of the command by the command transmission section in consideration of the time required for transmission of the command by the command transmission section. According to this configuration, it is possible to absorb synchronization deviation caused by the time required for the command transmission unit to transmit the command.
ロボットは、コマンドを解釈した結果に応じて動作してもよい。同期調整部は、ロボットによるコマンドの解釈に要する時間を考慮して、指令送信部による指令値の送信、および、コマンド送信部によるコマンドの送信の少なくとも一方を変更するようにしてもよい。この構成によれば、ロボットによるコマンドの解釈に要する時間により生じる同期ずれを吸収できる。 The robot may act according to the result of interpreting the commands. The synchronization adjustment section may change at least one of transmission of the command value by the command transmission section and transmission of the command by the command transmission section, taking into account the time required for the robot to interpret the command. According to this configuration, it is possible to absorb synchronization deviation caused by the time required for the robot to interpret commands.
制御システムは、動作を同期させなければならないモータドライバおよびロボットの設定を受け付ける設定受付部をさらに含む。この構成によれば、同期動作させるべき対象を容易に設定できる。 The control system further includes a setting receiver that receives settings for the motor drivers and the robot whose motions must be synchronized. According to this configuration, it is possible to easily set the target to be synchronously operated.
ネットワークには、安全制御を実行する安全コントローラ、および、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサの少なくとも一方が接続される。この構成によれば、モータドライバおよびロボットに加えて、安全コントローラおよび視覚センサを含めて統合した制御を実現できる。 At least one of a safety controller that performs safety control and a visual sensor that performs recognition processing on a captured image and outputs a recognition result is connected to the network. According to this configuration, in addition to the motor driver and the robot, it is possible to realize integrated control including the safety controller and the visual sensor.
本発明の別の実施の形態に係る、制御対象を制御するための制御装置は、ネットワークを介して、センサ、モータドライバおよびロボットとの間でデータをやり取りするネットワークインターフェイスと、所定周期毎にセンサから状態値を収集する状態値取得部と、モーション命令に従って所定周期毎に指令値を生成してモータドライバへ送信する指令送信部と、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成してロボットへ順次送信するコマンド送信部とを含む。 According to another embodiment of the present invention, a control device for controlling a controlled object comprises a network interface for exchanging data between a sensor, a motor driver, and a robot via a network; a state value acquisition unit that collects state values from the motion command, a command transmission unit that generates command values at predetermined intervals according to motion commands and transmits them to the motor driver, and a command that interprets a program written in a predetermined programming language. and a command sending unit for generating and sequentially sending to the robot.
本発明のさらに別の実施の形態によれば、制御対象を制御するための制御装置を含む制御システムにおける制御方法が提供される。制御装置にはネットワークを介して、センサ、モータドライバおよびロボットが接続されている。制御方法は、制御装置が、所定周期毎にセンサから状態値を収集するステップと、モーション命令に従って所定周期毎に指令値を生成してモータドライバへ送信するステップと、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成してロボットへ順次送信するステップとを含む。 According to still another embodiment of the present invention, there is provided a control method in a control system including a control device for controlling a controlled object. Sensors, motor drivers, and robots are connected to the controller via a network. The control method is described in a predetermined programming language by the step of the control device collecting state values from sensors at predetermined intervals, the steps of generating command values at predetermined intervals according to motion instructions and transmitting them to the motor driver. and interpreting the received program to generate commands and sequentially transmit them to the robot.
本発明によれば、より複雑な制御をより容易に実現できる構成を提供できる。 ADVANTAGE OF THE INVENTION According to this invention, the structure which can implement|achieve more complicated control more easily can be provided.
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are given the same reference numerals, and the description thereof will not be repeated.
<A.適用例>
まず、本発明が適用される場面の一例について説明する。本実施の形態に係る制御システム1は、1つの制御装置が様々なデバイスを統合して制御できる。
<A. Application example>
First, an example of a scene to which the present invention is applied will be described. In the
図1は、本実施の形態に係る制御システム1のアプリケーション例を示す模式図である。図1には、カスタムロボット540と産業用ロボット600と同期して、箱40に商品であるワーク42を箱詰めする例を示す。より具体的には、カスタムロボット540の先端に設けられた吸着部44によりワーク42が吸着された状態で搬送され、予め用意された箱40の内部に配置される。産業用ロボット600は、カスタムロボット540によりワーク42が箱40の内部に配置された後、箱40の蓋締め、接着、宛先シール貼りなどを行う。
FIG. 1 is a schematic diagram showing an application example of a
カスタムロボット540の近傍には視覚センサ800(を構成するカメラ)が配置されており、カメラにより撮像された画像に対して認識処理が行われることで、箱40の位置やワーク42の状態などが特定される。
A visual sensor 800 (which constitutes a camera) is arranged near the
カスタムロボット540は、アプリケーションに応じて任意に作成されるロボットであり、例えば、1または複数のサーボモータ550と、各サーボモータ550と機械的に結合されたリンク機構46とを有している。サーボモータ550の数およびリンク機構46の構造などは、アプリケーションに応じて任意に設計される。
The
産業用ロボット600は、一例として、垂直多関節ロボットであり、関節に相当する複数の軸30を有しており、それぞれの軸30が回転または移動することによって、先端に配置されたハンド32を任意の位置および任意の姿勢に配置できる。ハンド32の近傍に力覚センサ950が配置されており、ハンド32がワーク42または箱40に与える力を検出し、その検出された力に応じて処理を実行する。
The
カスタムロボット540および産業用ロボット600の周囲には、図示しない制限区域(ロボット可動エリア)が規定されており、この区域への人の侵入を検知するライトカーテンなどの安全デバイスが配置されている。安全デバイスが人の侵入を検知し、安全が保てないと判断されると、安全コントローラがカスタムロボット540または産業用ロボット600を減速あるいは停止させる。
A restricted area (robot movable area) (not shown) is defined around the
なお、図1に示す制御システム1は任意のアプリケーションに応用可能である。
本実施の形態に係る制御システム1は、図1に示すような複数のデバイスが組み合わされたアプリケーションに対しても、1つの制御装置で制御することができる。
Note that the
The
図2は、本実施の形態に係る制御システム1の構成例を示す模式図である。図2を参照して、本実施の形態に係る制御システム1の構成例について説明する。
FIG. 2 is a schematic diagram showing a configuration example of the
制御システム1は、1つの制御装置で様々なデバイスを制御する統合型のシステムである。より具体的には、制御システム1は、統合的な制御を実現するための制御装置100を含む。制御装置100は、制御対象を制御するための装置であり、典型的には、PLC(プログラマブルロジックコントローラ)が用いられる。より具体的には、制御装置100は、演算ユニット101と、1または複数の拡張ユニット130とを含む。
The
制御システム1は、制御装置100と産業用のネットワークであるフィールドネットワーク20を介して接続される1または複数のデバイスをさらに含む。フィールドネットワーク20のプロトコルの一例として、EtherCAT(登録商標)を採用してもよい。
The
フィールドネットワーク20においては、制御装置100が通信マスタとして機能し、その他のデバイスが通信スレーブとして機能する。そのため、フィールドネットワーク20を介して制御装置100に接続されるデバイスを「スレーブデバイス」と称することもある。フィールドネットワーク20に接続される制御装置100およびスレーブデバイスの各々は、通信マスタに同期したカウンタを有しており、このカウンタに基づいて同期した制御が可能である。この同期制御の詳細については、後述する。
In
図2には、このようなスレーブデバイスの一例として、モータドライバの一例であるサーボドライバ500と、産業用ロボット600と、安全コントローラ700と、視覚センサ800と、IOユニット900とを含む。安全コントローラ700には、ライトカーテンなどの安全デバイス750が電気的に接続されており、IOユニット900には、力覚センサ950などの任意のセンサ、および/または、リレー(図示しない)などの任意のアクチュエータが電気的に接続されている。
2 includes a
このように、制御システム1は、力覚センサ950などの任意のセンサ、モータドライバおよびロボットを制御装置100に接続するためのネットワークとして、フィールドネットワーク20を含む。さらに、フィールドネットワーク20には、安全制御を実行する安全コントローラ700と、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサ800と、センサからの信号の入力、および、アクチュエータへの信号の出力の少なくとも一方を担当する入出力装置の一例であるIOユニット900とのうち、少なくとも1つが接続されてもよい。
Thus, the
制御装置100は、さらに上位ネットワーク12を介して、サポート装置200と、表示装置300と、サーバ装置400と接続されている。上位ネットワーク12は、ネットワークハブ10を用いて分岐したトポロジーを実現してもよい。上位ネットワーク12のプロトコルの一例として、EtherNet/IPなどの産業用のイーサネット(登録商標)を採用してもよい。
このように、本実施の形態によれば、1つの制御装置で様々なデバイスを制御する統合型の制御システム1を提供できる。
Thus, according to the present embodiment, it is possible to provide an
<B.ハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する各装置のハードウェア構成の一例について説明する。
<B. Hardware configuration example>
Next, an example of the hardware configuration of each device constituting the
(b1:制御装置100)
図3は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100の演算ユニット101は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)コントローラ120と、メモリカードインターフェイス112と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
(b1: control device 100)
FIG. 3 is a schematic diagram showing a hardware configuration example of the
プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
The
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
The
ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたユーザプログラム1104などが格納される。ユーザプログラム1104は、シーケンス命令1105およびモーション命令1106を含み得る。これらの命令は、典型的には、IEC61131-3準拠した形式で作成されてもよい。ロボットプログラム1108は、所定のプログラミング言語(例えば、V+言語などのロボット制御専用プログラミング言語や、GコードなどのNC制御に係るプログラミング言語)で記述されてもよい。
The
制御装置100は、フィールドネットワーク20に接続されたスレーブデバイスを介して任意の情報を参照可能であるので、ユーザプログラム1104には、産業用ロボット600に対するインターロック処理、サーボドライバ500に対する位置決め処理、力覚センサ950の検出量に基づいて、産業用ロボット600および/またはサーボドライバ500に対する指令値を決定する処理などを含めることができる。
Since the
上位ネットワークコントローラ106は、上位ネットワークを介して、任意の情報処理装置との間でデータをやり取りする。
The
フィールドネットワークコントローラ108は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。すなわち、フィールドネットワークコントローラ108は、フィールドネットワーク20を介してサーボドライバ500および産業用ロボット600との間でデータをやり取りするネットワークインターフェイスに相当する。フィールドネットワークコントローラ108は、他のデバイスとの間で同期されたカウンタ109を有している。図3に示す構成において、フィールドネットワークコントローラ108は、フィールドネットワーク20の通信マスタとして機能する。
USBコントローラ120は、USB接続を介して、サポート装置200などとの間でデータをやり取りする。
The
メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。メモリカード114には、例えば、産業用ロボット600を動作させるためのロボットプログラム1108などが格納される。
ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100を構成する任意の拡張ユニット130との間でデータをやり取りする。ローカルバスコントローラ116は、拡張ユニット130との間で同期されたカウンタ117を有している。図3に示す構成において、ローカルバスコントローラ116は、ローカルバス122の通信マスタとして機能する。
拡張ユニット130は、主として、フィールドデバイスとの間で信号をやり取りする機能ユニットであり、例えば、アナログ信号の入力および/または出力を担当するアナログIOユニット、デジタル信号の入力および/または出力を担当するデジタルIOユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。
The
(b2:サポート装置200)
図4は、本実施の形態に係る制御システム1を構成するサポート装置200のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
(b2: support device 200)
FIG. 4 is a schematic diagram showing a hardware configuration example of the
図4を参照して、サポート装置200は、プロセッサ202と、メインメモリ204と、入力部206と、出力部208と、ストレージ210と、光学ドライブ212と、USBコントローラ220と、通信コントローラ222とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
4,
プロセッサ202は、CPUやGPUなどで構成され、ストレージ210に格納されたプログラム(一例として、OS2102および開発プログラム2104)を読出して、メインメモリ204に展開して実行することで、後述するような各種処理を実現する。
The
メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。
The
ストレージ210には、基本的な機能を実現するためのOS2102、および、統合開発環境を実現するための開発プログラム2104などが格納される。
The
サポート装置200は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な統合開発環境を提供する。統合開発環境においては、制御装置100、サーボドライバ500、産業用ロボット600、安全コントローラ700、視覚センサ800などに向けられたプログラムの作成およびデバッグなどが可能になっている。
The
入力部206は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部208は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
An
USBコントローラ220は、USB接続を介して、制御装置100などとの間のデータをやり取りする。通信コントローラ222は、上位ネットワーク12を介して、任意の情報処理装置との間でデータをやり取りする。
The
サポート装置200は、光学ドライブ212を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記憶媒体214(例えば、DVD(Digital Versatile Disc)などの光学記憶媒体)から、その中に格納されたプログラムが読取られてストレージ210などにインストールされる。
The
サポート装置200で実行される開発プログラム2104などは、コンピュータ読取可能な記憶媒体214を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
The
なお、制御システム1が稼動中において、サポート装置200は、制御装置100から取り外されていてもよい。
Note that the
(b3:表示装置300)
本実施の形態に係る制御システム1を構成する表示装置300は、HMI(Human Machine Interface)やPT(Programmable Terminal)とも称され、制御装置100が保持する情報を参照して監視操作画面を提供するとともに、ユーザ操作に対応する指示を制御装置100へ送出する。
(b3: display device 300)
The
表示装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(b4:サーバ装置400)
本実施の形態に係る制御システム1を構成するサーバ装置400は、例えば、ファイルサーバ、製造実行システム(MES:Manufacturing Execution System)、生産管理システムなどとして機能する。
(b4: server device 400)
The
サーバ装置400は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(b5:サーボドライバ500)
本実施の形態に係る制御システム1を構成するサーボドライバ500は、電気的に接続されたサーボモータ550を駆動する。サーボドライバ500は、モータドライバの一例であり、サーボドライバ500とは異なるモータドライバを採用してもよい。同様に、サーボモータ550は、モータの一例であり、サーボモータ550とは異なるモータ(例えば、誘導型モータやリニアモータなど)を採用してもよい。モータドライバとしては、駆動対象のモータに応じた構成を採用できる。
(b5: servo driver 500)
A
図5は、本実施の形態に係る制御システム1を構成するサーボドライバ500およびサーボモータ550のハードウェア構成例を示す模式図である。図5を参照して、サーボドライバ500は、フィールドネットワークコントローラ502と、演算処理回路510と、ドライブ回路530と、フィードバック受信回路532とを含む。
FIG. 5 is a schematic diagram showing a hardware configuration example of the
フィールドネットワークコントローラ502は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ502は、他のデバイスとの間で同期されたカウンタ503を有している。
演算処理回路510は、サーボドライバ500を動作させるために必要な演算処理を実行する。一例として、演算処理回路510は、プロセッサ512と、メインメモリ516と、ストレージ520とを含む。プロセッサ512は、サーボモータ550を駆動するための制御演算を実行する。
The
メインメモリ516は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ520は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
The
ストレージ520には、サーボ制御を実現するためのサーボ制御プログラム5202、および、サーボドライバ500での処理を規定するための設定情報5204が格納される。
The
ドライブ回路530は、コンバータ回路およびインバータ回路などを含み、演算処理回路510からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ550へ供給する。
フィードバック受信回路532は、サーボモータ550からのフィードバック信号を受信して、その受信結果を演算処理回路510へ出力する。
サーボモータ550は、典型的には、三相交流モータ552および三相交流モータ552の回転軸に取付けられたエンコーダ554を含む。
(b6:産業用ロボット600)
本実施の形態に係る制御システム1を構成する産業用ロボット600は、制御装置100からの指令に従って動作する。産業用ロボット600は、例えば、垂直多関節ロボット、水平多関節(スカラ)ロボット、パラレルリンクロボット、直交ロボットなどの任意の汎用ロボットが用いられてもよい。
(b6: industrial robot 600)
図6は、本実施の形態に係る制御システム1を構成する産業用ロボット600のハードウェア構成例を示す模式図である。図6を参照して、産業用ロボット600は、ロボット本体610と、ロボット本体610を駆動するロボットコントローラ650とを含む。
FIG. 6 is a schematic diagram showing a hardware configuration example of an
ロボットコントローラ650は、フィールドネットワークコントローラ652と、演算処理回路660とを含む。
フィールドネットワークコントローラ652は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ652は、他のデバイスとの間で同期されたカウンタ653を有している。
演算処理回路660は、ロボット本体610を駆動するために必要な演算処理を実行する。一例として、演算処理回路660は、プロセッサ662と、メインメモリ666と、ストレージ670と、インターフェイス回路668とを含む。プロセッサ662は、ロボット本体610を駆動するための制御演算を実行する。
メインメモリ666は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ670は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
The
ストレージ670には、ロボットの駆動制御を実現するためのロボットシステムプログラム6702、および、ロボットコントローラ650での処理を規定するための設定情報6704が格納される。
The
インターフェイス回路668は、各軸を駆動するドライブ回路680に対して、それぞれ指令を与える。
The
ドライブ回路680の各々は、コンバータ回路およびインバータ回路などを含み、インターフェイス回路668からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ690へ供給する。サーボモータ690は、ロボット本体610のアーム部と機械的に結合されており、サーボモータ690の回転によって対応するアーム部が駆動される。
Each of the
(b7:安全コントローラ700)
本実施の形態に係る制御システム1を構成する安全コントローラ700は、安全制御を実行する。
(b7: safety controller 700)
A
図7および図8は、本実施の形態に係る制御システム1を構成する安全コントローラ700のハードウェア構成例を示す模式図である。図7を参照して、安全コントローラ700は、フィールドネットワーク20を介した通信を担当する通信インターフェイスユニット710と、安全制御を司る安全制御ユニット730と、安全コンポーネントを接続する1または複数の安全拡張ユニット740とを含む。
7 and 8 are schematic diagrams showing a hardware configuration example of the
通信インターフェイスユニット710は、ローカルバス760を介して、安全制御ユニット730および安全拡張ユニット740と接続されている。
通信インターフェイスユニット710は、プロセッサ711と、メインメモリ712と、ストレージ713と、フィールドネットワークコントローラ714と、USBコントローラ716と、ローカルバスコントローラ717とを含む。これらのコンポーネントは、プロセッサバス719を介して接続されている。
プロセッサ711は、フィールドネットワーク20との通信を制御する演算処理部に相当し、CPUやGPUなどで構成される。
The
メインメモリ712は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ713は、例えば、フラッシュROM、SSD、HDDなどの不揮発性記憶装置などで構成される。
The
フィールドネットワークコントローラ714は、フィールドネットワーク20を介して、任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ714は、他のデバイスとの間で同期されたカウンタ715を有している。
USBコントローラ716は、USB接続を介して、サポート装置200などの情報処理装置との間でデータをやり取りする。
The
ローカルバスコントローラ717は、ローカルバス760を介して、安全制御ユニット730および安全拡張ユニット740などの拡張ユニットとの間でデータをやり取りする。ローカルバスコントローラ717は、カウンタ718を有しており、カウンタ718は、フィールドネットワークコントローラ714のカウンタ715と同期されている。
図8(A)を参照して、安全制御ユニット730は、プロセッサ731と、メインメモリ732と、ストレージ733と、ローカルバスコントローラ738とを含む。これらのコンポーネントは、プロセッサバス737を介して接続されている。
Referring to FIG. 8A,
プロセッサ731は、安全制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。
The
メインメモリ732は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ733は、例えば、フラッシュROM、SSD、HDDなどの不揮発性記憶装置などで構成される。
The
ストレージ733には、安全制御ユニット730での処理を規定するための設定情報734、要求される安全機能に応じた作成された安全プログラム735、および基本的な機能を実現するためのシステムプログラム736が格納される。
The
ローカルバスコントローラ738は、ローカルバス760を介して、通信インターフェイスユニット710との間でデータをやり取りする。ローカルバスコントローラ738は、カウンタ739を有しており、カウンタ739は、通信インターフェイスユニット710のローカルバスコントローラ717のカウンタ718と同期されている。
図8(B)を参照して、安全拡張ユニット740は、プロセッサ741と、メインメモリ742と、安全IOモジュール743と、ローカルバスコントローラ748とを含む。これらのコンポーネントは、プロセッサバス747を介して接続されている。
Referring to FIG. 8B,
プロセッサ741は、安全制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。
The
メインメモリ742は、DRAMやSRAMなどの揮発性記憶装置などで構成される。
安全IOモジュール743は、安全デバイス750と電気的に接続されており、安全デバイス750による検出結果などの入力を受け付けたり、安全デバイス750を介した電源出力を行ったりする。
The
The
ローカルバスコントローラ748は、ローカルバス760を介して、通信インターフェイスユニット710との間でデータをやり取りする。ローカルバスコントローラ748は、カウンタ749を有しており、カウンタ749は、通信インターフェイスユニット710のローカルバスコントローラ717のカウンタ718と同期されている。
さらに、安全制御ユニット730と安全拡張ユニット740との間では、それぞれローカルバス760および通信インターフェイスユニット710を介して、相互にデータをやり取りすることができる。すなわち、安全制御ユニット730は、安全拡張ユニット740に入力された安全入力データを安全プログラム735の実行時に参照でき、また、安全プログラム735の実行により決定された安全出力データを安全拡張ユニット740から出力できる。
Furthermore, data can be exchanged between the
(b8:視覚センサ800)
本実施の形態に係る制御システム1を構成する視覚センサ800は、カメラでの撮像によって取得された画像に対して、予め規定された認識処理を実行し、その認識結果を出力する。
(b8: visual sensor 800)
The
視覚センサ800は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。また、視覚センサ800で実行される各種認識処理についても公知であるので、ここでは詳細な説明は行わない。
(b9:IOユニット900)
本実施の形態に係る制御システム1を構成するIOユニット900は、力覚センサ950などの任意のセンサからの信号を受け付けるとともに、リレー(図示しない)などの任意のアクチュエータへ指令を出力する。
(b9: IO unit 900)
図9は、本実施の形態に係る制御システム1を構成するIOユニット900のハードウェア構成例を示す模式図である。図9を参照して、IOユニット900は、フィールドネットワークコントローラ902と、演算処理回路910とを含む。
FIG. 9 is a schematic diagram showing a hardware configuration example of an
フィールドネットワークコントローラ902は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ902は、他のデバイスとの間で同期されたカウンタ903を有している。
演算処理回路910は、IOユニット900の機能の実現に必要な演算処理を実行する。一例として、演算処理回路910は、プロセッサ912と、メインメモリ916と、ROM920とを含む。プロセッサ912は、IOユニット900の機能を実現するために必要な制御演算を実行する。
The
メインメモリ916は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ROM920には、IOユニット900の機能を実現するためのファームウェア922が格納される。
A
インターフェイス回路930は、力覚センサ950などの任意のセンサ、および/または、任意のアクチュエータとの間で信号をやり取りする。
(b10:その他の形態)
図3~図9には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(b10: other forms)
3 to 9 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
また、制御装置100および/または安全コントローラ700の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。さらに、制御装置100にサポート装置200や表示装置300などの機能を統合した構成を採用してもよい。
Also, the main part of the
<C.制御システム1におけるアクチュエータの同期動作>
フィールドネットワーク20としてEtherCATを採用する場合には、指令値および入力値を含む通信フレームがデバイス間を周期的に巡回することになる。この通信フレームを用いることで、制御装置100から送出された同じ通信フレームに格納された別々のデバイスに向けられた指令値は、それぞれのデバイスで実質的に同じタイミングで反映されることになる。
<C. Synchronous Operation of Actuators in
When EtherCAT is adopted as the
しかしながら、産業用ロボット600については、独自の命令インターフェイスが用意されていることも多い。そのため、サーボドライバ500あるいはサーボドライバ500により構成される各種機構と、産業用ロボット600との厳密な同期を実現できない可能性がある。本実施の形態に係る制御システム1は、独自の命令インターフェイスを有している産業用ロボット600を含めて、より厳密な同期動作を実現できる。
However, the
まず、モーション命令1106の処理およびロボットプログラム1108の処理について説明する。
First, processing of
図10は、本実施の形態に係る制御装置100によるモーション命令1106の処理を説明するための図である。図10(A)には、制御装置100で実行されるユーザプログラム1104に含まれるモーション命令1106の一例を示す。図10(A)に示されるモーション命令1106は、ファンクションブロック形式で描かれているが、これに限定されることなく、任意の形式で規定できる。制御装置100は、モーション命令1106を以下のような手順で処理する。
FIG. 10 is a diagram for explaining processing of
すなわち、図10(B)を参照して、モーション命令実行指示141が与えられると、モーション命令1106に対して、モーション命令解釈140が実行される。解釈された結果に基づいて、目標軌跡生成処理142が実行される。すなわち、対象の軸(典型的には、対象のサーボドライバ500)が移動すべき時間と位置との関係を規定する目標軌跡が生成される。そして、生成された目標軌跡に基づいて、指令値決定処理144が制御周期毎に実行される。この結果、対象のサーボドライバ500へ与えられる指令値(典型的には、制御周期毎の位置指令あるいは速度指令)を制御周期毎に決定できる。
That is, referring to FIG. 10B, when motion
図11は、本実施の形態に係る制御装置100によるロボットプログラム1108の処理を説明するための図である。図11を参照して、制御装置100において、ロボットプログラム1108に対して、プログラム解釈146が実行される。解釈された結果に基づいて、コマンド生成処理148が実行される。コマンド生成処理148により、ロボットコントローラ650が解釈可能なコマンドが生成される。生成されたコマンドは、フィールドネットワーク20を介して、ロボットコントローラ650へ送信される。
FIG. 11 is a diagram for explaining the processing of
ロボットコントローラ650において、制御装置100から送信されたコマンドに対して、コマンド解釈672が実行される。解釈された結果に基づいて、目標軌跡生成処理674が実行される。すなわち、産業用ロボット600は、送信されたコマンドを解釈した結果に応じて動作する。
In
より具体的には、産業用ロボット600の軸30の各々が移動すべき時間と位置との関係を規定する目標軌跡が生成される。そして、生成された目標軌跡に基づいて、指令値決定処理676が制御周期毎に実行される。この結果、産業用ロボット600のドライブ回路680へ与えられる指令値(典型的には、制御周期毎の位置指令あるいは速度指令)を制御周期毎に決定できる。
More specifically, a target trajectory is generated that defines the relationship between time and position to which each of the
図10に示すように、ユーザプログラム1104に含まれるモーション命令1106によりサーボドライバ500などを制御する場合には、制御装置100において制御周期毎の指令値を決定でき、そのままフィールドネットワーク20を介して対象のサーボドライバ500へ送出することができる。そして、サーボドライバ500は、その指令値に従って動作する。
As shown in FIG. 10, when the
これに対して、図11に示すように、ロボットプログラム1108により産業用ロボット600を制御する場合には、制御装置100から対象の産業用ロボット600に向けられたコマンドが生成される。この生成されたコマンドが産業用ロボット600へ送信された後に、産業用ロボット600は目標軌跡を生成して動作を開始する。また、制御装置100と産業用ロボット600との間のコマンドのやり取りには、通常、複数個の通信フレームが必要となる。
On the other hand, as shown in FIG. 11 , when the
このように、制御装置100とアクチュエータ(サーボドライバ500および産業用ロボット600)との間の指令をやり取りする方式が異なっているなどの理由によって、サーボドライバ500あるいはサーボドライバ500により構成される各種機構と、産業用ロボット600との厳密な同期を実現できない可能性がある。
As described above, the
本実施の形態に係る制御装置100は、このような指令をやり取りする方式が異なっているアクチュエータが同一のフィールドネットワーク20に存在していても、より厳密な同期動作を実現する仕組みを提供する。
The
図12は、本実施の形態に係る制御装置100によるサイクリック処理の一例を説明するための図である。図12には、制御装置100において、優先度別に複数のタスクが設定されている例を示す。より具体的には、制御周期T1毎にサイクリック実行される高優先タスクと、アプリケーション実行周期T2(>T1)が設定された低優先タスクとが設定されている。
FIG. 12 is a diagram for explaining an example of cyclic processing by
高優先タスクには、フィールドネットワーク20上で通信フレームを送受信する通信フレーム伝送処理150(O/I/Com)と、ユーザプログラム1104を実行するユーザプログラム実行処理152と、モーション命令1106を処理するモーション処理154と、ロボットプログラム1108から生成されたコマンドを処理するロボット処理156とが設定される。
The high-priority tasks include communication frame transmission processing 150 (O/I/Com) for transmitting and receiving communication frames over the
通信フレーム伝送処理150は、直前の制御周期において実行された処理によって算出された指令値(出力データ)を通信フレームに格納して送信するとともに、各スレーブデバイスが通信フレームに格納した入力データを取得する処理が実行される。さらに、通信フレーム伝送処理150においては、産業用ロボット600との間でやり取りされるコマンドの送受信処理も実行される。
The communication
モーション処理154は、図10に示すモーション命令解釈140、目標軌跡生成処理142および指令値決定処理144を含む。ロボット処理156は、図11に示すコマンド生成処理148を含む。
低優先タスクには、ロボットプログラム1108を解釈してコマンドを生成するためのロボットプログラム解釈処理158が設定される。ロボットプログラム解釈処理158は、図11に示すプログラム解釈146を含む。ロボットプログラム解釈処理158により生成されたコマンドはバッファ159に順次書き込まれる。バッファ159に書き込まれたコマンドは、ロボット処理156において順次読み出されて対象の産業用ロボット600へ送信される。
A robot
このように、制御装置100においては、周期の異なる複数のタスクを実行することで、ユーザプログラム1104(シーケンス命令1105およびモーション命令1106を含み得る)に従うスレーブデバイスの制御、および、ロボットプログラム1108に従う産業用ロボット600の制御を実現する。
In this way, the
図13は、本実施の形態に係る制御装置100によるアクチュエータの動作開始までに要する遅延時間の一例を説明するための図である。
13A and 13B are diagrams for explaining an example of the delay time required until the actuator starts to operate by the
図13を参照して、ユーザプログラム1104に含まれるモーション命令1106の処理が開始されてから対象のアクチュエータ(サーボドライバ500およびサーボモータ550)が動作するまでには、指令値生成60に要する処理時間、伝送遅延62、およびアクチュエータが指令値に従って動作を開始するための応答遅延64の遅延が生じ得る。
Referring to FIG. 13, the processing time required for
これに対して、ロボットプログラム1108の処理が開始されてから対象のアクチュエータ(産業用ロボット600)が動作するまでには、コマンド生成70に要する処理時間、伝送遅延を含むコマンド送信72に要する時間、ロボットコントローラ650がコマンドを解釈して指令値を生成するのに要する処理時間74、およびアクチュエータが指令値に従って動作を開始するための応答遅延76の遅延が生じ得る。
On the other hand, the processing time required for
本実施の形態に係る制御装置100は、タイミング調整を行うことで、モーション命令1106に従うアクチュエータの動作制御と、ロボットプログラム1108に従うアクチュエータとの間に生じる遅延時間の差を吸収する。このような遅延時間の差を吸収することにより、より正確な同期動作を実現できる。
<D.同期動作の実装例>
次に、アクチュエータを同期動作させるためのいくつかの実装例について説明する。
<D. Implementation example of synchronous operation>
Next, several implementation examples for synchronizing the actuators will be described.
(d1:機能構成)
図14は、本実施の形態に係る制御装置100によるアクチュエータの同期動作の実現に係る機能構成の要部を示す模式図である。図14に示す各機能モジュールは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。
(d1: functional configuration)
FIG. 14 is a schematic diagram showing a main part of the functional configuration related to realizing the synchronous operation of the actuators by the
図14を参照して、制御装置100は、機能構成として、ユーザプログラム処理部160と、目標軌跡演算部162と、指令値演算部164と、出力遅延量演算部166と、各軸指令値演算部168と、入力遅延演算部170とを含む。これらの機能モジュールは、ユーザプログラム1104に含まれるモーション命令1106の処理に向けられる。
14,
ユーザプログラム処理部160は、ストレージ110に格納されているユーザプログラム1104を読み出して実行する。目標軌跡演算部162は、ユーザプログラム1104に含まれるモーション命令1106を解釈して目標軌跡を生成する。指令値演算部164は、生成された目標軌跡に基づいて制御周期毎の指令値を決定する。指令値演算部164は、指令値の決定に際して、入力遅延演算部170により算出される入力遅延(フィードバック遅れ)を考慮してもよい。
The user
出力遅延量演算部166は、遅延パラメータ176を参照して、同期動作の対象となる産業用ロボット600との間でタイミング調整に必要な出力遅延量を決定する。
The output
各軸指令値演算部168は、対象のサーボドライバ500が構成する機構またはロボットのキネマティクス174を参照して、指令値演算部164によって決定された指令値を実現するための各軸に与えられる指令値を決定する。キネマティクス174は、サーボモータ550が組み込まれた機構またはロボットの物理的な位置および姿勢と、サーボモータ550の回転角度との関係を規定する情報を含む。キネマティクス174を参照して、目標軌跡演算部162により決定される目標軌跡を実現するためのサーボモータ550の各々の回転角度などが算出される。
Each axis command
各軸指令値演算部168は、出力遅延量演算部166によって決定された出力遅延量に応じて、決定した各軸指令値を対象のサーボドライバ500へ送信する。各軸指令値演算部168が決定した各軸指令値は、フィールドネットワークコントローラ108を通じて送信される。
Each axis command
このように、ユーザプログラム処理部160と、目標軌跡演算部162と、指令値演算部164と、各軸指令値演算部168とは、モーション命令1106に従って所定周期毎に指令値を生成してサーボドライバ500へ送信する指令送信部に相当する。
In this manner, the user
制御装置100は、機能構成として、ロボットプログラム処理部180と、指令値同期部182と、出力遅延量演算部184と、入力遅延演算部186とをさらに含む。これらの機能モジュールは、ロボットプログラム1108の処理に向けられる。
ロボットプログラム処理部180は、ストレージ110に格納されているロボットプログラム1108を読み出して内容を解釈してコマンドを生成する。すなわち、ロボットプログラム処理部180は、所定のプログラミング言語で記述されたロボットプログラム1108を解釈してコマンドを生成して産業用ロボット600へ順次送信するコマンド送信部に相当する。
The robot
ロボットプログラム処理部180は、コマンドの生成に際して、入力遅延演算部186により算出される入力遅延(フィードバック遅れ)を考慮してもよい。
The robot
指令値同期部182は、同期動作の対象となる1または複数のサーボドライバ500との間でタイミング調整に必要な情報を共有する。
The command
出力遅延量演算部184は、遅延パラメータ176を参照して、同期動作の対象となる1または複数のサーボドライバ500との間でタイミング調整に必要な出力遅延量を決定する。出力遅延量演算部184は、決定した出力遅延量に応じて、ロボットプログラム処理部180により生成されたコマンドを対象の産業用ロボット600へ送信する。コマンは、フィールドネットワークコントローラ108を通じて送信される。
The output
以上のように、モーション命令1106についての出力遅延量演算部166、および、ロボットプログラム1108についての出力遅延量演算部184は、サーボドライバ500によるサーボモータ550の駆動と産業用ロボット600の動作とが同期するように、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)の送信、および、ロボットプログラム1108を解釈して生成されるコマンドの送信の少なくとも一方を変更する同期調整部に相当する。
As described above, the output delay
遅延パラメータ176は、(1)フィールドネットワーク20を介して伝送される通信フレームの伝送遅延、(2)制御装置100の制御周期(モーション命令1106に従って指令値が更新される周期)、(3)サーボドライバ500が指令を受けてサーボモータ550を駆動するまでのむだ時間、(4)制御装置100の処理リソースの大きさ(ロボットプログラム1108の解釈に要する時間)、(5)産業用ロボット600(ロボットコントローラ650)がコマンドを受けて動作を開始するためのむだ時間、などを考慮して決定された遅延時間を含んでいてもよい。
The
遅延パラメータ176に含まれる遅延時間は、制御システム1を設計した段階で算出される理論値であってもよいし、制御システム1の立ち上げ時に計測された実測値であってもよいし、制御システム1の運転中に計測された値に基づいて動的に更新される値であってもよいし、制御システム1の必要な構成について計測された各種情報に基づいて所定の演算式に従って決定される値であってもよい。
The delay time included in the
すなわち、本実施の形態に係る制御装置100は、図13に示すような遅延時間の差を吸収するための情報を予め保持あるいは都度計測できるようになっている。同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、制御装置100からのコマンドの送信に要する時間(コマンド送信72に要する時間)を考慮して、同期動作に必要な調整を行ってもよい。また、同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、産業用ロボット600によるコマンドの解釈に要する時間(コマンドを解釈して指令値を生成するのに要する処理時間74)を考慮して、同期動作に必要な調整を行ってもよい。さらに、同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、アクチュエータが指令値に従って動作を開始するための応答遅延64、および、アクチュエータが指令値に従って動作を開始するための応答遅延76を考慮して、同期動作に必要な調整を行ってもよい。
In other words, the
制御装置100は、機能構成として、状態値更新部190と、状態値保持部192とをさらに含む。これらの機能モジュールは、状態値の一例であるIOデータの更新処理に向けられる。すなわち、状態値更新部190は、フィールドネットワーク20に介して接続されているセンサあるいはIOユニット900から入力データを周期的に取得するとともに、ユーザプログラム1104の実行によって制御周期毎に算出される指令値(出力データ)をフィールドネットワーク20を介して対応するアクチュエータあるいはIOユニット900へ送信する。このように、状態値更新部190は、所定周期毎にセンサから状態値を収集する状態値取得部に相当する。
状態値保持部192は、状態値更新部190により更新される入力データおよび指令値(出力データ)を保持する記憶部であり、ユーザプログラム処理部160およびロボットプログラム処理部180からアクセス可能である。すなわち、ユーザプログラム処理部160およびロボットプログラム処理部180は、状態値保持部192にアクセスすることで、処理の実行中に入力データを参照するとともに、算出した指令値(出力データ)を出力できる。
The state
以下、遅延時間の差を吸収して、アクチュエータを同期動作させるためのいくつかの実装例について説明する。 Several implementation examples for absorbing the difference in delay time and synchronously operating the actuators will be described below.
(d2:モーション命令に従う指令値の送信遅延:実装例その1)
アクチュエータを同期動作させる一つの実装例として、制御装置100がモーション命令1106に従う指令値の送信を待機して、ロボットプログラム1108に従う産業用ロボット600の動作と同期させる構成について説明する。
(d2: Transmission delay of command value according to motion command: implementation example 1)
As an implementation example for synchronously operating the actuators, a configuration will be described in which the
図15は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための実装例を説明するための図である。図15を参照して、時刻t11において、ユーザプログラム1104に含まれるモーション命令1106の処理が開始されると、モーション命令1106に基づいて指令値が生成される(指令値生成60)。
FIG. 15 is a diagram for explaining an implementation example for realizing synchronous operation of the actuators in the
一方、同じ時刻t11において、ロボットプログラム1108が解釈されてコマンドが生成される(コマンド生成70)。そして、生成されたコマンドが産業用ロボット600へ送信される(コマンド送信72)。
On the other hand, at the same time t11, the
産業用ロボット600(ロボットコントローラ650)は、制御装置100からのコマンドを解釈して指令値を生成した上で、動作を開始する。産業用ロボット600が動作を開始するタイミングは時刻t13であるとする。
The industrial robot 600 (robot controller 650) interprets a command from the
制御装置100は、産業用ロボット600へコマンドを送信するのに要する時間、産業用ロボット600がコマンドから指令値を生成するのに要する時間、および、産業用ロボット600での応答遅延などに基づいて、産業用ロボット600が動作を開始する時刻t13を推定する。また、制御装置100は、モーション命令1106に従う指令値に関して発生する、伝送遅延62および応答遅延64を考慮して、モーション命令1106に基づいて生成された指令値送信66の開始タイミングを決定する(時刻t12)。そして、制御装置100は、時刻t12において、モーション命令1106に従う指令値の送信を開始する。
Based on the time required to transmit a command to the
このように、制御装置100がモーション命令1106に従う指令値の送信を遅らせることで、ロボットプログラム1108により制御される産業用ロボット600と同期した動作を実現できる。すなわち、制御装置100の出力遅延量演算部166(図14参照)は、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)の送信を遅延させる。
In this way, the
図16は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための制御装置100における処理手順を示すフローチャートである。図16に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。
FIG. 16 is a flowchart showing a processing procedure in
図16を参照して、制御装置100は、異なる種類のアクチュエータを同期動作させるための命令が処理対象になると(ステップS100においてYES)、対象のモーション命令1106を解釈して目標軌跡を生成する(ステップS102)とともに、対象のロボットプログラム1108を解釈してコマンドを生成する(ステップS104)。
Referring to FIG. 16, when a command for synchronously operating actuators of different types is subject to processing (YES in step S100),
制御装置100は、遅延パラメータ176を参照して、生成された目標軌跡およびコマンドに対応する待機時間を決定する(ステップS106)。すなわち、図15に示す時刻t12までの待機時間が決定される。
制御装置100は、生成したコマンドを産業用ロボット600に順次送信する(ステップS108)。そして、制御装置100は、ステップS106において決定された待機時間が経過したか否かを判断する(ステップS110)。
The
ステップS106において決定された待機時間が経過していれば(ステップS110においてYES)、制御装置100は、ステップS102において生成した目標軌跡に基づいて指令値(モーション命令1106に従う指令値)を決定し(ステップS112)、決定した指令値を対象のサーボドライバ500へ制御周期毎に送信する(ステップS114)。新たな命令が処理対象になる毎に、図16に示される処理が繰り返し実行される。
If the standby time determined in step S106 has elapsed (YES in step S110),
以上のように、制御装置100がモーション命令1106に従う指令値の送信を待機することで、ロボットプログラム1108に従う産業用ロボット600の動作と同期させることができる。すなわち、制御装置100によって制御される異なる種類のアクチュエータ同士を、より正確に同期動作させることができる。
As described above, the
(d3:指令値およびコマンドの処理開始タイミングの指定:実装例その2)
アクチュエータを同期動作させる別の実装例として、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、動作を同期させる構成について説明する。
(d3: Designation of command value and command processing start timing: implementation example 2)
As another implementation example for synchronously operating actuators, a configuration for synchronizing operations by designating processing start timings for command values according to the
図17は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための別の実装例を説明するための図である。図17を参照して、時刻t21において、ユーザプログラム1104に含まれるモーション命令1106の処理が開始されると、モーション命令1106に基づいて指令値が生成される(指令値生成60)。一方、同じ時刻t21において、ロボットプログラム1108が解釈されてコマンドが生成される(コマンド生成70)。
FIG. 17 is a diagram for explaining another implementation example for realizing synchronous operation of the actuators in the
制御装置100は、サーボドライバ500での応答遅延64、産業用ロボット600へコマンドを送信するのに要する時間、産業用ロボット600がコマンドから指令値を生成するのに要する時間(処理時間74)、および、産業用ロボット600での応答遅延76などに基づいて、同期動作を開始すべき時刻t24を決定する。そして、制御装置100は、同期動作を開始する時刻t24に応じて決定される処理開始時刻をそれぞれ付加して、生成した所定期間に亘る指令値(指令値群)を対象のサーボドライバ500へ送信するとともに(指令値送信67)、生成したコマンドを対象の産業用ロボット600へ送信する(コマンド送信73)。
The
サーボドライバ500は、制御装置100から指定された処理開始時刻t23が到来すると、受信している指令値群に従ってサーボモータ550を駆動する処理を開始し、産業用ロボット600は、制御装置100から指定された処理開始時刻t22が到来すると、受信しているコマンドに従ってロボット本体610を駆動する処理を開始する。
When the process start time t23 specified by the
すなわち、サーボドライバ500が処理開始時刻t23から指令値群の処理を開始すると、応答遅延64だけ遅れて、時刻t24からサーボモータ550が駆動される。また、産業用ロボット600が処理開始時刻t22からコマンドの処理を開始すると、コマンドから指令値を生成するのに要する処理時間74、および、応答遅延76だけ遅れて、時刻t24からロボット本体610の動作が開始する。
That is, when the
このように、制御装置100の出力遅延量演算部166(図14参照)は、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)をサーボドライバ500で処理を開始すべき処理開始時刻t23(第1のタイミング)を送信される指令(各軸に与えられる指令値)に付加する。また、制御装置100の出力遅延量演算部184(図14参照)は、ロボットプログラム1108から生成されたコマンドを産業用ロボット600で処理を開始すべき処理開始時刻t22(第2のタイミング)を送信される指令(コマンド)に付加する。
In this way, the output delay amount calculation unit 166 (see FIG. 14) of the
以上のような処理開始時刻を指定することで、制御装置100が、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、サーボモータ550および産業用ロボット600との間で同期動作を実現できる。
By designating the processing start time as described above, the
なお、フィールドネットワーク20に接続されているスレーブデバイスの各々は、通信マスタである制御装置100と同期されたカウンタを有しており、この同期されたカウンタに基づいて、制御装置100から指定された処理開始時刻が到来すると、処理を開始できる。
Each of the slave devices connected to the
図18は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための制御装置100における別の処理手順を示すフローチャートである。図18に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。
FIG. 18 is a flow chart showing another processing procedure in the
図18を参照して、制御装置100は、異なる種類のアクチュエータを同期動作させるための命令が処理対象になると(ステップS200においてYES)、対象のモーション命令1106を解釈して目標軌跡を生成し(ステップS202)、制御周期毎の指令値を所定期間に亘って算出して、指令値群を生成する(ステップS204)。
Referring to FIG. 18, when a command for synchronously operating actuators of different types is subject to processing (YES in step S200),
並列的に、制御装置100は、対象のロボットプログラム1108を解釈してコマンドを生成する(ステップS206)
制御装置100は、遅延パラメータ176を参照して、生成された指令値群およびコマンドの処理を開始する処理開始時刻をそれぞれ決定する(ステップS208)。すなわち、図17に示す処理開始時刻t22およびt23が決定される。
In parallel, the
The
最終的に、制御装置100は、生成した指令値群に決定された処理開始時刻の情報を付加して、対象のサーボドライバ500へ送信する(ステップS210)。並列的に、制御装置100は、生成したコマンドに決定された処理開始時刻の情報を付加して、対象の産業用ロボット600へ順次送信する(ステップS212)。新たな命令が処理対象になる毎に、図18に示される処理が繰り返し実行される。
Finally, the
対象のサーボドライバ500および産業用ロボット600は、指定された処理開始時刻が到来すると、対象の処理を開始する。
The
以上のように、制御装置100がモーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、制御装置100によって制御される異なる種類のアクチュエータ同士を、より正確に同期動作させることができる。
As described above, the
(d4:実装例その2の変形例)
上述の図17および図18においては、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドの両方に対して、処理開始のタイミングを指定する情報を付加する構成例について説明したが、これに限られず、いずれか一方にのみ処理開始のタイミングを指定する情報を付加するようにしてもよい。
(d4: Modified example of implementation example 2)
In FIGS. 17 and 18 above, a configuration example has been described in which information designating the timing of starting processing is added to both the command value according to the
また、上述の図17および図18においては、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドの両方に対して、それぞれ異なる処理開始時刻を付与する構成例について説明したが、応答遅延などが十分に小さい場合には、同一の処理開始時刻を付与するようにしてもよい。
Also, in FIGS. 17 and 18 above, a configuration example in which different processing start times are given to both command values according to the
<E.同期動作の設定>
上述の図16および図18に示すフローチャートは、異なる種類のアクチュエータを同期動作させるための命令が処理対象であるか否かを評価する処理を含む。このような異なる種類のアクチュエータを同期動作させるための命令は、ユーザプログラム1104において、ユーザが任意に作成することもできるが、同期動作させる対象を予め設定する環境を提供してもよい。以下、同期動作させる対象を予め設定する構成例について説明する。
<E. Synchronous action setting>
The flowcharts shown in FIGS. 16 and 18 described above include processing for evaluating whether or not an instruction for synchronously operating actuators of different types is to be processed. A command for synchronously operating actuators of different types can be arbitrarily created by the user in the
図19は、本実施の形態に係る制御システム1のサポート装置200において提供されるユーザインターフェイスの一例を示す模式図である。図19(A)には、同期動作させる対象のアクチュエータを設定するためのユーザインターフェイス画面250の一例を示す。
FIG. 19 is a schematic diagram showing an example of a user interface provided in
ユーザインターフェイス画面250においては、同期動作させる対象のグループを示すオブジェクトあるいは変数を規定できるようになっている。ユーザは、同期動作グループ設定252に任意の文字列を指定できる。同期動作グループ設定252に指定された文字列は、図19(B)に示すユーザプログラム1104の開発環境において、オブジェクトあるいは変数として参照可能になる。
On the
ユーザは、グループに属するアクチュエータの数をメンバ数設定欄254に設定するとともに、メンバとなるアクチュエータを示す変数をメンバ設定欄256に設定することができる。これらの内容が設定された後、生成ボタン258が押下されることで、メンバ設定欄256に設定されたアクチュエータからなる同期動作グループの設定が有効化される。この例では、変数「Sync_Gr000」が参照可能になる。
The user can set the number of actuators belonging to the group in the number-of-
図19(B)には、ユーザプログラムを開発するためのユーザインターフェイス画面260の一例を示す。ユーザは、ユーザインターフェイス画面260において、任意のユーザプログラムを作成できる。図19(B)に示す例では、同期動作の対象となる複数のアクチュエータを同期して動作させるためのファンクションブロック262が規定されている。ファンクションブロック262の入力264に変数「Sync_Gr000」を指定することで、変数「Sync_Gr000」として規定される複数のアクチュエータの間について、上述したような処理が実行される。
FIG. 19B shows an example of a
このように、サポート装置200は、動作を同期させなければならないサーボドライバ500および産業用ロボット600の設定を受け付ける設定受付部に相当する。
In this way, the
上述したような構成により、ユーザは、異なる種類のアクチュエータを同期動作グループのメンバとして設定した場合であっても、種類の相違などを気にすることなく、容易に同期動作を実現できる。 With the configuration as described above, even if the user sets different types of actuators as members of the synchronous operation group, the user can easily realize the synchronous operation without worrying about the difference in type.
なお、同期動作グループを示す変数については、図19(B)に示されるユーザプログラムの例に限らず、任意の形態で参照できるようにしてもよい。 Note that the variable indicating the synchronous operation group is not limited to the example of the user program shown in FIG. 19B, and may be referred to in any form.
<F.入力および出力を含む同期動作>
上述の実施の形態においては、モータドライバおよびロボットといったアクチュエータを同期動作させる処理に着目して説明したが、入力および出力を含めて一連の処理を同期させてもよい。
<F. Synchronous operation including input and output>
In the above-described embodiment, the description focused on the process of synchronously operating the actuators such as the motor driver and the robot, but a series of processes including input and output may be synchronized.
図20は、本実施の形態に係る制御システムにおける入力および出力を含む同期動作を説明するためのタイムチャートである。図20には、一例として、3つのセンサ01,02,03とカスタムロボット540および産業用ロボット600とが同期動作を行う例を示す。あるタイミングにおいて、3つのセンサ01,02,03のそれぞれが示すセンシング結果(入力値)を取得するとともに、その取得された各センサからの入力値に基づいて制御演算が実行される。そして、制御演算の実行結果に基づいて、カスタムロボット540および産業用ロボット600に対して指令が与えられる。上述したような処理によって、カスタムロボット540および産業用ロボット600は、あるタイミングにおいて同期して動作を開始する。
FIG. 20 is a time chart for explaining synchronous operation including input and output in the control system according to this embodiment. FIG. 20 shows an example in which three sensors 01, 02, 03, a
このように、制御装置100(図14に示す状態値取得部に相当する状態値更新部190)は、グループに設定された複数の入力デバイスから同期したタイミングで状態値を取得することができる。
In this way, the control device 100 (the state
本実施の形態に係る制御システム1は、図20に示すように、センサなどの1または複数の入力デバイスと、複数のアクチュエータとを単一のグループと見なして、より精度の高い同期制御を実現することもできる。
As shown in FIG. 20, the
1または複数の入力デバイスと、複数のアクチュエータとを単一のグループに設定する方法としては、任意の方法を採用できる。 Any method can be used to set one or a plurality of input devices and a plurality of actuators in a single group.
図21は、本実施の形態に係る制御システム1のサポート装置200において提供されるユーザインターフェイスの別の一例を示す模式図である。図21に示されるユーザインターフェイス画面260Aにおいては、同期動作の対象となる1または複数の入力デバイスと複数のアクチュエータとを同期して動作させるためのファンクションブロック262Aが規定されている。ファンクションブロック262Aの入力264に変数「Sync_Gr000」を指定することで、変数「Sync_Gr000」として規定される複数のアクチュエータが同期動作の対象であることを規定される。
FIG. 21 is a schematic diagram showing another example of a user interface provided in
さらに、ファンクションブロック262Aの入力265に変数「Input_001」,「Input_002」,「Input_003」を指定することで、対応する入力デバイスが、変数「Sync_Gr000」として規定される複数のアクチュエータと同期されることを規定される。
In addition, specifying variables "Input_001", "Input_002", and "Input_003" to
図21に示すようなユーザインターフェイス画面260Aを用いることで、入力および出力を含めた同期動作を実現できる。
By using a
さらに、同期動作させる対象の入力デバイスおよびアクチュエータを設定するためのユーザインターフェイス画面250Aを提供してもよい。
Furthermore, a
図22は、本実施の形態に係る制御システム1のサポート装置200において提供される同期動作させる対象の入力デバイスおよびアクチュエータを設定するためのユーザインターフェイス画面の一例を示す模式図である。図22を参照して、ユーザインターフェイス画面250Aは、図19(A)に示されるユーザインターフェイス画面250において、入力デバイスをさらに設定できるようにしたものに相当する。ユーザインターフェイス画面250Aに対して、ユーザは、グループに属する入力デバイスの数をメンバ数設定欄255に設定するとともに、メンバとなる入力デバイスを示す変数をメンバ設定欄257に設定することができる。これらの内容が設定された後、生成ボタン258が押下されることで、メンバ設定欄256に設定されたアクチュエータからなる同期動作グループの設定が有効化される。この例では、変数「Sync_Gr000」が参照可能になる。
FIG. 22 is a schematic diagram showing an example of a user interface screen for setting input devices and actuators to be synchronously operated provided in the
すなわち、変数「Sync_Gr000」は、設定された入力デバイスおよび出力デバイス(アクチュエータ)をメンバとして含むオブジェクトとして取り扱うことができる。 That is, the variable "Sync_Gr000" can be treated as an object that includes the set input device and output device (actuator) as members.
このように、同期動作の対象となる入力デバイスおよび出力デバイス(アクチュエータ)を単一のユーザインターフェイス画面上で設定できるので、ユーザによる設定の手間を低減できる。入力デバイスおよびアクチュエータを含めて同期動作させることができるので、より精度の高い同期制御を実現することもできる。 In this manner, the input device and output device (actuator) to be synchronized can be set on a single user interface screen, thereby reducing the user's effort for setting. Since it is possible to operate synchronously including the input device and the actuator, more accurate synchronous control can be realized.
<G.変形例>
上述の説明においては、1つの制御装置100が異なる種類のアクチュエータを含む様々なデバイスを統合して制御する構成例について示したが、複数の制御装置100が連係して、様々なデバイスを統合して制御するようにしてもよい。すなわち、複数の制御装置100の間で処理を分担して実行するような構成を採用してもよい。このような構成についても、本願発明の技術的範囲から除外されるものではない。
<G. Variation>
In the above description, a configuration example in which one
また、上述の説明においては、単一のフィールドネットワーク20にすべてのデバイスが接続される例を示すが、これに限らず、例えば、制御装置100が複数のフィールドネットワーク20に接続されており、各デバイスはいずれかのフィールドネットワークに接続されていてもよい。このような構成についても、本願発明の技術的範囲から除外されるものではない。
Further, in the above description, an example in which all devices are connected to a
さらに、図2には、様々なデバイスがフィールドネットワーク20に接続される例を示すが、すべての種類のデバイスがフィールドネットワーク20に接続されていなくてもよい。
Furthermore, although FIG. 2 shows an example in which various devices are connected to the
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
<H. Note>
The present embodiment as described above includes the following technical ideas.
[構成1]
制御システム(1)であって、
制御対象を制御するための制御装置(100)と、
センサ(950)、モータドライバ(500)およびロボット(600)を前記制御装置に接続するためのネットワーク(20)とを備え、
前記制御装置は、
所定周期毎に前記センサから状態値を収集する状態値取得部(190)と、
モーション命令(1106)に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部(160,162,164,168)と、
所定のプログラミング言語で記述されたプログラム(1108)を解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部(180)とを含む、制御システム。
[Configuration 1]
A control system (1),
a control device (100) for controlling a controlled object;
a network (20) for connecting sensors (950), motor drivers (500) and robots (600) to said controller;
The control device is
a state value acquisition unit (190) that collects state values from the sensors at predetermined intervals;
a command transmission unit (160, 162, 164, 168) that generates a command value at predetermined intervals according to a motion command (1106) and transmits it to the motor driver;
A control system comprising a command transmission unit (180) that interprets a program (1108) written in a predetermined programming language to generate commands and sequentially transmit them to the robot.
[構成2]
前記モータドライバによるモータの駆動と前記ロボットの動作とが同期するように、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する同期調整部(166,184)をさらに備える、構成1に記載の制御システム。
[Configuration 2]
A synchronization adjustment unit that changes at least one of transmission of the command value by the command transmission unit and transmission of the command by the command transmission unit so that driving of the motor by the motor driver and operation of the robot are synchronized. 2. The control system of
[構成3]
前記同期調整部は、前記指令送信部による前記指令値の送信を遅延させる、構成2に記載の制御システム。
[Configuration 3]
The control system according to configuration 2, wherein the synchronization adjustment unit delays transmission of the command value by the command transmission unit.
[構成4]
前記同期調整部は、前記指令送信部が送信する前記指令値を前記モータドライバで処理を開始すべき第1のタイミング(t23)、および、前記コマンド送信部が送信する前記コマンドを前記ロボットで処理を開始すべき第2のタイミング(t22)の少なくとも一方を、送信される指令に付加する、構成2に記載の制御システム。
[Configuration 4]
The synchronization adjustment unit processes the command value transmitted by the command transmission unit at a first timing (t23) at which the motor driver should start processing the command value and the command transmitted by the command transmission unit by the robot. 3. The control system of configuration 2, wherein at least one of the second timing (t22) at which to start is added to the transmitted command.
[構成5]
前記同期調整部は、前記コマンド送信部による前記コマンドの送信に要する時間(72)を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、構成2~4のいずれか1項に記載の制御システム。
[Configuration 5]
Considering the time (72) required for transmission of the command by the command transmission unit, the synchronization adjustment unit performs at least transmission of the command value by the command transmission unit and transmission of the command by the command transmission unit. Control system according to any one of configurations 2-4, wherein one is changed.
[構成6]
前記ロボットは、前記コマンドを解釈した結果に応じて動作し、
前記同期調整部は、前記ロボットによる前記コマンドの解釈に要する時間(74)を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、構成2~5のいずれか1項に記載の制御システム。
[Configuration 6]
The robot operates according to a result of interpreting the command,
The synchronization adjustment unit adjusts at least one of transmission of the command value by the command transmission unit and transmission of the command by the command transmission unit in consideration of the time (74) required for the robot to interpret the command. 6. The control system of any one of aspects 2-5, wherein the control system is modified.
[構成7]
動作を同期させなければならない前記モータドライバおよび前記ロボットの設定を受け付ける設定受付部(200)をさらに備える、構成2~6のいずれか1項に記載の制御システム。
[Configuration 7]
7. The control system according to any one of configurations 2 to 6, further comprising a setting reception unit (200) that receives settings of the motor driver and the robot whose operations must be synchronized.
[構成8]
前記ネットワークには、安全制御を実行する安全コントローラ(700)、および、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサ(800)の少なくとも一方が接続される、構成1~7のいずれか1項に記載の制御システム。
[Configuration 8]
[構成9]
制御対象を制御するための制御装置(100)であって、
ネットワーク(20)を介して、センサ(950)、モータドライバ(500)およびロボット(600)との間でデータをやり取りするネットワークインターフェイス(108)と、
所定周期毎にセンサから状態値を収集する状態値取得部(190)と、
モーション命令(1106)に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部(160,162,164,168)と、
所定のプログラミング言語で記述されたプログラム(1108)を解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部(180)とを備える、制御装置。
[Configuration 9]
A control device (100) for controlling a controlled object,
a network interface (108) for exchanging data with the sensor (950), the motor driver (500) and the robot (600) over the network (20);
a state value acquisition unit (190) that collects state values from sensors at predetermined intervals;
a command transmission unit (160, 162, 164, 168) that generates a command value at predetermined intervals according to a motion command (1106) and transmits it to the motor driver;
A control device comprising a command transmission unit (180) that interprets a program (1108) written in a predetermined programming language, generates commands, and sequentially transmits them to the robot.
[構成10]
制御対象を制御するための制御装置(100)を含む制御システム(1)における制御方法であって、前記制御装置にはネットワーク(20)を介して、センサ(950)、モータドライバ(500)およびロボット(600)が接続されており、前記制御方法は、
前記制御装置が、所定周期毎に前記センサから状態値を収集するステップと、
前記制御装置が、モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信するステップ(S114,S210)と、
前記制御装置が、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するステップ(S108,S212)とを備える、制御方法。
[Configuration 10]
A control method in a control system (1) including a control device (100) for controlling a controlled object, wherein the control device includes a sensor (950), a motor driver (500) and A robot (600) is connected, the control method comprising:
the controller collecting state values from the sensors at predetermined intervals;
Steps (S114, S210) in which the control device generates a command value in accordance with a motion command and transmits the command value to the motor driver at predetermined intervals;
A control method comprising steps (S108, S212) in which the control device interprets a program written in a predetermined programming language, generates commands, and sequentially transmits them to the robot.
<I.利点>
本実施の形態に係る制御システム1によれば、1または複数のモータ(あるいは、1または複数のモータにより構成される機構)と、1または複数の産業用ロボットとを単一の制御装置で制御することができる。このように複数のアクチュエータを単一の制御装置で制御できるため、複数のアクチュエータに対する制御内容を制御装置で実行されるユーザプログラムで規定できるため、複雑な制御を実現するにあたっても、ユーザは、設計時にアクチュエータ間の同期などを考慮しなくても、同期動作を実現できる。
<I. Advantage>
According to the
また、本実施の形態に係る制御システム1によれば、モータおよび産業用ロボットだけではなく、安全コントローラ、視覚センサ、IOユニットなどについても、同一のネットワークに接続でき、制御装置がこれらのデバイスを統合して制御できるので、より複雑な制御をより容易に実現できる。
Further, according to the
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 It should be considered that the embodiments disclosed this time are illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the scope and meaning equivalent to the scope of the claims.
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 処理開始時刻。 1 control system, 10 network hub, 12 host network, 20 field network, 30 axis, 32 hand, 40 box, 42 workpiece, 44 adsorption unit, 46 link mechanism, 60 command value generation, 62 transmission delay, 64, 76 response delay , 66, 67 command value transmission, 70 command generation, 72, 73 command transmission, 74 processing time, 100 control device, 101 arithmetic unit, 102, 202, 512, 662, 711, 731, 741, 912 processor, 104, 204 , 516, 666, 712, 732, 742, 916 Main memory, 106 Upper network controller, 108, 502, 652, 714, 902 Field network controller, 109, 117, 503, 653, 715, 718, 739, 749, 903 counter, 110, 210, 520, 670, 713, 733 storage, 112 memory card interface, 114 memory card, 116, 717, 738, 748 local bus controller, 118, 218, 719, 737, 747 processor bus, 120, 220 , 716 USB controller, 122, 760 local bus, 130 expansion unit, 140 motion command interpretation, 141 motion command execution instruction, 142, 674 target trajectory generation processing, 144, 676 command value determination processing, 146 program interpretation, 148 command generation processing , 150 communication frame transmission processing, 152 user program execution processing, 154 motion processing, 156 robot processing, 158 robot program interpretation processing, 159 buffer, 160 user program processing section, 162 target trajectory calculation section, 164 command value calculation section, 166, 184 output delay amount calculation unit 168 axis command value calculation unit 170, 186 input delay calculation unit 174 kinematics 176 delay parameter 180 robot program processing unit 182 command value synchronization unit 190 state value update unit 192 state Value holding unit 200 Support device 206 Input unit 208 Output unit 212 Optical drive 214 Storage medium 222 Communication controller 250, 250A, 260, 260A User interface screen 252 Synchronous operation group setting 254, 255 Number of members Setting column 256, 257 Member setting column 258 Generation button 262, 262A Function block 264, 265 Input 300 Display device 400 Server device 500 Servo driver 510, 660, 910 Arithmetic processing circuit 530, 680 Drive circuit, 532 feedback receiving circuit, 540 custom robot, 550,690 servo motor, 552 three-phase AC motor, 554 encoder, 600 industrial robot, 610 robot body, 650 robot controller, 668,930 interface circuit, 672 command interpretation, 700 Safety Controller, 710 Communication Interface Unit, 730 Safety Control Unit, 734, 5204, 6704 Setting Information, 735 Safety Program, 736, 1102 System Program, 740 Safety Expansion Unit, 743 Module, 750 Safety Device, 800 Vision Sensor, 900 IO Unit , 920 ROM, 922 firmware, 950 force sensor, 1104 user program, 1105 sequence instruction, 1106 motion instruction, 1108 robot program, 2104 development program, 5202 servo control program, 6702 robot system program, T1 control cycle, T2 application execution cycle , t11, t12, t13, t21, t24 times, t22, t23 processing start times.
Claims (10)
制御対象を制御するための制御装置と、
センサ、モータドライバおよびロボットを前記制御装置に接続するためのネットワークとを備え、
前記制御装置は、
所定周期毎に前記センサから状態値を収集する状態値取得部と、
モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部と、
所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部とを含む、制御システム。 A control system,
a control device for controlling a controlled object;
a network for connecting sensors, motor drivers and robots to the controller;
The control device is
a state value acquisition unit that collects state values from the sensor at predetermined intervals;
a command transmission unit that generates a command value for each predetermined cycle according to a motion command and transmits the command value to the motor driver;
A control system, comprising: a command transmission unit that interprets a program written in a predetermined programming language, generates commands, and sequentially transmits the commands to the robot.
前記同期調整部は、前記ロボットによる前記コマンドの解釈に要する時間を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、請求項2~5のいずれか1項に記載の制御システム。 The robot operates according to a result of interpreting the command,
The synchronization adjustment unit changes at least one of transmission of the command value by the command transmission unit and transmission of the command by the command transmission unit, taking into account the time required for the robot to interpret the command. Control system according to any one of claims 2-5.
ネットワークを介して、センサ、モータドライバおよびロボットとの間でデータをやり取りするネットワークインターフェイスと、
所定周期毎に前記センサから状態値を収集する状態値取得部と、
モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部と、
所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部とを備える、制御装置。 A control device for controlling a controlled object,
a network interface for exchanging data between sensors, motor drivers and robots via a network;
a state value acquisition unit that collects state values from the sensor at predetermined intervals;
a command transmission unit that generates a command value for each predetermined cycle according to a motion command and transmits the command value to the motor driver;
A control device, comprising: a command transmission unit that interprets a program written in a predetermined programming language, generates commands, and sequentially transmits the commands to the robot.
前記制御装置が、所定周期毎に前記センサから状態値を収集するステップと、
前記制御装置が、モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信するステップと、
前記制御装置が、所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するステップとを備える、制御方法。 A control method in a control system including a control device for controlling a controlled object, wherein a sensor, a motor driver and a robot are connected to the control device via a network, the control method comprising:
the controller collecting state values from the sensors at predetermined intervals;
a step in which the control device generates a command value in accordance with a motion command and transmits the command value to the motor driver at predetermined intervals;
A control method comprising the step of having said control device interpret a program written in a predetermined programming language, generate commands, and sequentially transmit them to said robot.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019212705A JP7294085B2 (en) | 2019-11-25 | 2019-11-25 | Control system, control device and control method |
PCT/JP2020/040208 WO2021106467A1 (en) | 2019-11-25 | 2020-10-27 | Control system, control device, and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019212705A JP7294085B2 (en) | 2019-11-25 | 2019-11-25 | Control system, control device and control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021086232A JP2021086232A (en) | 2021-06-03 |
JP7294085B2 true JP7294085B2 (en) | 2023-06-20 |
Family
ID=76087680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019212705A Active JP7294085B2 (en) | 2019-11-25 | 2019-11-25 | Control system, control device and control method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7294085B2 (en) |
WO (1) | WO2021106467A1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7410085B2 (en) * | 2021-06-11 | 2024-01-09 | 矢崎総業株式会社 | Communication system and upper control device |
CN116526894A (en) * | 2022-01-20 | 2023-08-01 | 华为技术有限公司 | Motor control system, motor control method, and motor driving and forwarding device |
WO2023200841A1 (en) * | 2022-04-12 | 2023-10-19 | Flexxbotics, Inc. | Robotic workflow recipe |
CN115792452B (en) * | 2022-12-01 | 2024-05-10 | 苏州铸正机器人有限公司 | Robot corresponding delay detection method and detection equipment |
Citations (1)
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 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3538362B2 (en) * | 1999-09-16 | 2004-06-14 | ファナック株式会社 | Synchronous or cooperative operation control device for multiple robots |
JP7052250B2 (en) * | 2017-08-10 | 2022-04-12 | オムロン株式会社 | Information processing equipment, information processing methods, and information processing programs |
JP6950415B2 (en) * | 2017-09-29 | 2021-10-13 | オムロン株式会社 | Control device |
JP6946909B2 (en) * | 2017-09-29 | 2021-10-13 | オムロン株式会社 | Control system and control device |
-
2019
- 2019-11-25 JP JP2019212705A patent/JP7294085B2/en active Active
-
2020
- 2020-10-27 WO PCT/JP2020/040208 patent/WO2021106467A1/en active Application Filing
Patent Citations (1)
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 |
Also Published As
Publication number | Publication date |
---|---|
JP2021086232A (en) | 2021-06-03 |
WO2021106467A1 (en) | 2021-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7294085B2 (en) | Control system, control device and control method | |
US10761515B2 (en) | Control system for controlling control object and control device for linking control applications in control system | |
EP3477405B1 (en) | Control device | |
JP6903275B2 (en) | Control device and control method | |
US10908577B2 (en) | Control device | |
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 | |
JP7310465B2 (en) | Synchronous control device, synchronous control system, synchronous control method, and simulation device | |
US11855907B2 (en) | Robot control system and control method | |
US20230101517A1 (en) | Robot control system and control method | |
US11269313B2 (en) | Controller and control system that stores data in current control cycle for output in next control cycle | |
WO2022162959A1 (en) | Control system, robot controller, and control method | |
WO2022162958A1 (en) | Control device, program execution method, and program | |
US20230022312A1 (en) | Control device | |
WO2021181800A1 (en) | Robot control system and control method |
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 |