JP7294085B2 - Control system, control device and control method - Google Patents

Control system, control device and control method Download PDF

Info

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
Application number
JP2019212705A
Other languages
Japanese (ja)
Other versions
JP2021086232A (en
Inventor
貴雅 植田
純児 島村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2019212705A priority Critical patent/JP7294085B2/en
Priority to PCT/JP2020/040208 priority patent/WO2021106467A1/en
Publication of JP2021086232A publication Critical patent/JP2021086232A/en
Application granted granted Critical
Publication of JP7294085B2 publication Critical patent/JP7294085B2/en
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

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.

特開昭62-175808号公報JP-A-62-175808 特開昭61-208103号公報JP-A-61-208103 特開2000-010616号公報Japanese Patent Application Laid-Open No. 2000-010616 特開2009-169468号公報JP 2009-169468 A 特開2017-68353号公報JP 2017-68353 A

上述の先行技術文献においては、制御装置がモータを制御する構成、あるいは、制御装置がロボットを制御する構成といった個別的な構成を開示するに過ぎない。本発明は、このような従来構成に対して、より複雑な制御をより容易に実現できる構成を提供することを目的とする。 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.

本実施の形態に係る制御システムのアプリケーション例を示す模式図である。FIG. 2 is a schematic diagram showing an application example of the control system according to the present embodiment; FIG. 本実施の形態に係る制御システムの構成例を示す模式図である。1 is a schematic diagram showing a configuration example of a control system according to an embodiment; FIG. 本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a control device that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a support device that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するサーボドライバおよびサーボモータのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a servo driver and a servo motor that configure the control system according to the present embodiment; 本実施の形態に係る制御システムを構成する産業用ロボットのハードウェア構成例を示す模式図である。1 is a schematic diagram showing a hardware configuration example of an industrial robot that constitutes a control system according to an embodiment; FIG. 本実施の形態に係る制御システムを構成する安全コントローラのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a safety controller that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成する安全コントローラのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing a hardware configuration example of a safety controller that configures the control system according to the present embodiment; 本実施の形態に係る制御システムを構成するIOユニットのハードウェア構成例を示す模式図である。FIG. 3 is a schematic diagram showing a hardware configuration example of an IO unit that configures the control system according to the embodiment; 本実施の形態に係る制御装置によるモーション命令の処理を説明するための図である。FIG. 4 is a diagram for explaining processing of a motion command by the control device according to the embodiment; 本実施の形態に係る制御装置によるロボットプログラムの処理を説明するための図である。FIG. 4 is a diagram for explaining processing of a robot program by the control device according to the embodiment; 本実施の形態に係る制御装置によるサイクリック処理の一例を説明するための図である。It is a figure for demonstrating an example of the cyclic processing by the control apparatus which concerns on this Embodiment. 本実施の形態に係る制御装置によるアクチュエータの動作開始までに要する遅延時間の一例を説明するための図である。FIG. 5 is a diagram for explaining an example of a delay time required by the control device according to the embodiment to start an actuator operation; 本実施の形態に係る制御装置によるアクチュエータの同期動作の実現に係る機能構成の要部を示す模式図である。FIG. 3 is a schematic diagram showing a main part of a functional configuration related to realizing synchronous operation of actuators by the control device according to the present embodiment; 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための実装例を説明するための図である。FIG. 4 is a diagram for explaining an implementation example for realizing synchronous operation of actuators in the control system according to the present embodiment; 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための制御装置における処理手順を示すフローチャートである。4 is a flow chart showing a processing procedure in a control device for realizing synchronous operation of actuators in the control system according to the present embodiment; 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための別の実装例を説明するための図である。FIG. 7 is a diagram for explaining another implementation example for realizing synchronous operation of actuators in the control system according to the present embodiment; 本実施の形態に係る制御システムにおけるアクチュエータの同期動作を実現するための制御装置における別の処理手順を示すフローチャートである。9 is a flowchart showing another processing procedure in the control device for realizing synchronous operation of the actuators in the control system according to the present embodiment; 本実施の形態に係る制御システムのサポート装置において提供されるユーザインターフェイスの一例を示す模式図である。FIG. 4 is a schematic diagram showing an example of a user interface provided in the support device of the control system according to the embodiment; 本実施の形態に係る制御システムにおける入力および出力を含む同期動作を説明するためのタイムチャートである。4 is a time chart for explaining synchronous operation including input and output in the control system according to the embodiment; 本実施の形態に係る制御システムのサポート装置において提供されるユーザインターフェイスの別の一例を示す模式図である。FIG. 5 is a schematic diagram showing another example of a user interface provided in the support device of the control system according to the present embodiment; 本実施の形態に係る制御システムのサポート装置において提供される同期動作させる対象の入力デバイスおよびアクチュエータを設定するためのユーザインターフェイス画面の一例を示す模式図である。FIG. 5 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 support device of the control system according to the present embodiment;

本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 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 control system 1 according to the present embodiment, one control device can integrate and control various devices.

図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 control system 1 according to this embodiment. FIG. 1 shows an example in which a custom robot 540 and an industrial robot 600 are synchronously packed into a box 40 with workpieces 42 . More specifically, the work 42 is conveyed while being sucked by the suction part 44 provided at the tip of the custom robot 540, and placed inside the box 40 prepared in advance. After the work 42 is placed inside the box 40 by the custom robot 540, the industrial robot 600 performs lid tightening, adhesion, and destination labeling of the box 40. FIG.

カスタムロボット540の近傍には視覚センサ800(を構成するカメラ)が配置されており、カメラにより撮像された画像に対して認識処理が行われることで、箱40の位置やワーク42の状態などが特定される。 A visual sensor 800 (which constitutes a camera) is arranged near the custom robot 540. By performing recognition processing on the image captured by the camera, the position of the box 40, the state of the workpiece 42, etc. are detected. identified.

カスタムロボット540は、アプリケーションに応じて任意に作成されるロボットであり、例えば、1または複数のサーボモータ550と、各サーボモータ550と機械的に結合されたリンク機構46とを有している。サーボモータ550の数およびリンク機構46の構造などは、アプリケーションに応じて任意に設計される。 The custom robot 540 is a robot arbitrarily created according to the application, and has, for example, one or more servomotors 550 and a link mechanism 46 mechanically coupled to each servomotor 550 . The number of servo motors 550, the structure of the link mechanism 46, and the like are arbitrarily designed according to the application.

産業用ロボット600は、一例として、垂直多関節ロボットであり、関節に相当する複数の軸30を有しており、それぞれの軸30が回転または移動することによって、先端に配置されたハンド32を任意の位置および任意の姿勢に配置できる。ハンド32の近傍に力覚センサ950が配置されており、ハンド32がワーク42または箱40に与える力を検出し、その検出された力に応じて処理を実行する。 The industrial robot 600 is, for example, a vertical articulated robot, and has a plurality of shafts 30 corresponding to joints. Can be placed in any position and any posture. A force sensor 950 is arranged near the hand 32 to detect the force applied by the hand 32 to the workpiece 42 or the box 40, and execute processing according to the detected force.

カスタムロボット540および産業用ロボット600の周囲には、図示しない制限区域(ロボット可動エリア)が規定されており、この区域への人の侵入を検知するライトカーテンなどの安全デバイスが配置されている。安全デバイスが人の侵入を検知し、安全が保てないと判断されると、安全コントローラがカスタムロボット540または産業用ロボット600を減速あるいは停止させる。 A restricted area (robot movable area) (not shown) is defined around the custom robot 540 and the industrial robot 600, and safety devices such as light curtains are arranged to detect human intrusion into this area. When the safety device detects human intrusion and determines that safety cannot be maintained, the safety controller slows down or stops the custom robot 540 or the industrial robot 600 .

なお、図1に示す制御システム1は任意のアプリケーションに応用可能である。
本実施の形態に係る制御システム1は、図1に示すような複数のデバイスが組み合わされたアプリケーションに対しても、1つの制御装置で制御することができる。
Note that the control system 1 shown in FIG. 1 can be applied to any application.
The control system 1 according to the present embodiment can control an application in which a plurality of devices are combined as shown in FIG. 1 with a single control device.

図2は、本実施の形態に係る制御システム1の構成例を示す模式図である。図2を参照して、本実施の形態に係る制御システム1の構成例について説明する。 FIG. 2 is a schematic diagram showing a configuration example of the control system 1 according to this embodiment. A configuration example of the control system 1 according to the present embodiment will be described with reference to FIG.

制御システム1は、1つの制御装置で様々なデバイスを制御する統合型のシステムである。より具体的には、制御システム1は、統合的な制御を実現するための制御装置100を含む。制御装置100は、制御対象を制御するための装置であり、典型的には、PLC(プログラマブルロジックコントローラ)が用いられる。より具体的には、制御装置100は、演算ユニット101と、1または複数の拡張ユニット130とを含む。 The control system 1 is an integrated system that controls various devices with one control device. More specifically, the control system 1 includes a control device 100 for realizing integrated control. The control device 100 is a device for controlling a controlled object, and typically uses a PLC (Programmable Logic Controller). More specifically, control device 100 includes arithmetic unit 101 and one or more expansion units 130 .

制御システム1は、制御装置100と産業用のネットワークであるフィールドネットワーク20を介して接続される1または複数のデバイスをさらに含む。フィールドネットワーク20のプロトコルの一例として、EtherCAT(登録商標)を採用してもよい。 The control system 1 further includes one or more devices connected to the control device 100 via a field network 20 that is an industrial network. EtherCAT (registered trademark) may be adopted as an example of the protocol of the field network 20 .

フィールドネットワーク20においては、制御装置100が通信マスタとして機能し、その他のデバイスが通信スレーブとして機能する。そのため、フィールドネットワーク20を介して制御装置100に接続されるデバイスを「スレーブデバイス」と称することもある。フィールドネットワーク20に接続される制御装置100およびスレーブデバイスの各々は、通信マスタに同期したカウンタを有しており、このカウンタに基づいて同期した制御が可能である。この同期制御の詳細については、後述する。 In field network 20, control device 100 functions as a communication master, and other devices function as communication slaves. Therefore, devices connected to the control device 100 via the field network 20 are sometimes called "slave devices". Each of the control device 100 and slave devices connected to the field network 20 has a counter synchronized with the communication master, and can be controlled synchronously based on this counter. The details of this synchronous control will be described later.

図2には、このようなスレーブデバイスの一例として、モータドライバの一例であるサーボドライバ500と、産業用ロボット600と、安全コントローラ700と、視覚センサ800と、IOユニット900とを含む。安全コントローラ700には、ライトカーテンなどの安全デバイス750が電気的に接続されており、IOユニット900には、力覚センサ950などの任意のセンサ、および/または、リレー(図示しない)などの任意のアクチュエータが電気的に接続されている。 2 includes a servo driver 500, which is an example of a motor driver, an industrial robot 600, a safety controller 700, a visual sensor 800, and an IO unit 900, as an example of such a slave device. A safety device 750 such as a light curtain is electrically connected to the safety controller 700, and an arbitrary sensor such as a force sensor 950 and/or an arbitrary device such as a relay (not shown) is connected to the IO unit 900. actuators are electrically connected.

このように、制御システム1は、力覚センサ950などの任意のセンサ、モータドライバおよびロボットを制御装置100に接続するためのネットワークとして、フィールドネットワーク20を含む。さらに、フィールドネットワーク20には、安全制御を実行する安全コントローラ700と、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサ800と、センサからの信号の入力、および、アクチュエータへの信号の出力の少なくとも一方を担当する入出力装置の一例であるIOユニット900とのうち、少なくとも1つが接続されてもよい。 Thus, the control system 1 includes the field network 20 as a network for connecting arbitrary sensors such as the force sensor 950 , motor drivers and robots to the control device 100 . Further, the field network 20 includes a safety controller 700 for executing safety control, a visual sensor 800 for performing recognition processing on a captured image and outputting a recognition result, an input of a signal from the sensor, and an actuator. At least one of the IO unit 900, which is an example of an input/output device responsible for at least one of outputting signals to, may be connected.

制御装置100は、さらに上位ネットワーク12を介して、サポート装置200と、表示装置300と、サーバ装置400と接続されている。上位ネットワーク12は、ネットワークハブ10を用いて分岐したトポロジーを実現してもよい。上位ネットワーク12のプロトコルの一例として、EtherNet/IPなどの産業用のイーサネット(登録商標)を採用してもよい。 Control device 100 is further connected to support device 200 , display device 300 , and server device 400 via host network 12 . The upper network 12 may implement a branched topology using the network hub 10 . Industrial Ethernet (registered trademark) such as EtherNet/IP may be adopted as an example of the protocol of the upper network 12 .

このように、本実施の形態によれば、1つの制御装置で様々なデバイスを制御する統合型の制御システム1を提供できる。 Thus, according to the present embodiment, it is possible to provide an integrated control system 1 that controls various devices with one control device.

<B.ハードウェア構成例>
次に、本実施の形態に係る制御システム1を構成する各装置のハードウェア構成の一例について説明する。
<B. Hardware configuration example>
Next, an example of the hardware configuration of each device constituting the control system 1 according to the present embodiment will be described.

(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 control device 100 that configures the control system 1 according to the present embodiment. Referring to FIG. 3, arithmetic unit 101 of control device 100 includes processor 102, main memory 104, storage 110, host network controller 106, field network controller 108, and USB (Universal Serial Bus) controller 120. , a memory card interface 112 and a local bus controller 116 . These components are connected via processor bus 118 .

プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。 The processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and includes a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads out the program stored in the storage 110, develops it in the main memory 104, and executes it, thereby realizing control calculation according to the control target and various processes described later. do.

メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。 The main memory 104 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory). The storage 110 is configured by, for example, a non-volatile storage device such as SSD (Solid State Drive) or HDD (Hard Disk Drive).

ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたユーザプログラム1104などが格納される。ユーザプログラム1104は、シーケンス命令1105およびモーション命令1106を含み得る。これらの命令は、典型的には、IEC61131-3準拠した形式で作成されてもよい。ロボットプログラム1108は、所定のプログラミング言語(例えば、V+言語などのロボット制御専用プログラミング言語や、GコードなどのNC制御に係るプログラミング言語)で記述されてもよい。 The storage 110 stores a system program 1102 for realizing basic functions, a user program 1104 created according to the object to be controlled, and the like. User program 1104 may include sequence instructions 1105 and motion instructions 1106 . These instructions may typically be created in a format compliant with IEC61131-3. The robot program 1108 may be written in a predetermined programming language (for example, a programming language dedicated to robot control such as V+ language, or a programming language related to NC control such as G code).

制御装置100は、フィールドネットワーク20に接続されたスレーブデバイスを介して任意の情報を参照可能であるので、ユーザプログラム1104には、産業用ロボット600に対するインターロック処理、サーボドライバ500に対する位置決め処理、力覚センサ950の検出量に基づいて、産業用ロボット600および/またはサーボドライバ500に対する指令値を決定する処理などを含めることができる。 Since the controller 100 can refer to any information via a slave device connected to the field network 20, the user program 1104 includes interlock processing for the industrial robot 600, positioning processing for the servo driver 500, force A process of determining a command value for the industrial robot 600 and/or the servo driver 500 based on the amount detected by the sensor 950 can be included.

上位ネットワークコントローラ106は、上位ネットワークを介して、任意の情報処理装置との間でデータをやり取りする。 The host network controller 106 exchanges data with any information processing device via the host network.

フィールドネットワークコントローラ108は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。すなわち、フィールドネットワークコントローラ108は、フィールドネットワーク20を介してサーボドライバ500および産業用ロボット600との間でデータをやり取りするネットワークインターフェイスに相当する。フィールドネットワークコントローラ108は、他のデバイスとの間で同期されたカウンタ109を有している。図3に示す構成において、フィールドネットワークコントローラ108は、フィールドネットワーク20の通信マスタとして機能する。 Field network controller 108 exchanges data with arbitrary devices via field network 20 . In other words, field network controller 108 corresponds to a network interface that exchanges data with servo driver 500 and industrial robot 600 via field network 20 . A field network controller 108 has a counter 109 synchronized with other devices. In the configuration shown in FIG. 3 , field network controller 108 functions as a communication master for field network 20 .

USBコントローラ120は、USB接続を介して、サポート装置200などとの間でデータをやり取りする。 The USB controller 120 exchanges data with the support device 200 or the like via a USB connection.

メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。メモリカード114には、例えば、産業用ロボット600を動作させるためのロボットプログラム1108などが格納される。 Memory card interface 112 accepts memory card 114, which is an example of a removable storage medium. The memory card interface 112 is capable of reading/writing arbitrary data from/to the memory card 114 . The memory card 114 stores, for example, a robot program 1108 for operating the industrial robot 600 and the like.

ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100を構成する任意の拡張ユニット130との間でデータをやり取りする。ローカルバスコントローラ116は、拡張ユニット130との間で同期されたカウンタ117を有している。図3に示す構成において、ローカルバスコントローラ116は、ローカルバス122の通信マスタとして機能する。 Local bus controller 116 exchanges data with optional expansion units 130 that make up control device 100 via local bus 122 . Local bus controller 116 has a counter 117 synchronized with expansion unit 130 . In the configuration shown in FIG. 3, local bus controller 116 functions as a communication master for local bus 122 .

拡張ユニット130は、主として、フィールドデバイスとの間で信号をやり取りする機能ユニットであり、例えば、アナログ信号の入力および/または出力を担当するアナログIOユニット、デジタル信号の入力および/または出力を担当するデジタルIOユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。 The expansion unit 130 is mainly a functional unit that exchanges signals with field devices. It consists of a digital IO unit, a counter unit that receives pulses from an encoder, and so on.

(b2:サポート装置200)
図4は、本実施の形態に係る制御システム1を構成するサポート装置200のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。
(b2: support device 200)
FIG. 4 is a schematic diagram showing a hardware configuration example of the support device 200 that configures the control system 1 according to this embodiment. Support device 200 is implemented, for example, using hardware (for example, a general-purpose personal computer) conforming to a general-purpose architecture.

図4を参照して、サポート装置200は、プロセッサ202と、メインメモリ204と、入力部206と、出力部208と、ストレージ210と、光学ドライブ212と、USBコントローラ220と、通信コントローラ222とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。 4, support device 200 includes processor 202, main memory 204, input unit 206, output unit 208, storage 210, optical drive 212, USB controller 220, and communication controller 222. include. These components are connected via processor bus 218 .

プロセッサ202は、CPUやGPUなどで構成され、ストレージ210に格納されたプログラム(一例として、OS2102および開発プログラム2104)を読出して、メインメモリ204に展開して実行することで、後述するような各種処理を実現する。 The processor 202 is composed of a CPU, a GPU, or the like, and reads out a program (for example, an OS 2102 and a development program 2104) stored in the storage 210, develops it in the main memory 204, and executes it to perform various functions as described later. Realize processing.

メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。 The main memory 204 is composed of a volatile memory device such as DRAM and SRAM. The storage 210 is configured by, for example, a non-volatile storage device such as an HDD or SSD.

ストレージ210には、基本的な機能を実現するためのOS2102、および、統合開発環境を実現するための開発プログラム2104などが格納される。 The storage 210 stores an OS 2102 for realizing basic functions, a development program 2104 for realizing an integrated development environment, and the like.

サポート装置200は、制御システム1に含まれる各デバイスに対する設定および各デバイスで実行されるプログラムの作成が統合的に可能な統合開発環境を提供する。統合開発環境においては、制御装置100、サーボドライバ500、産業用ロボット600、安全コントローラ700、視覚センサ800などに向けられたプログラムの作成およびデバッグなどが可能になっている。 The support device 200 provides an integrated development environment capable of integrally creating settings for each device included in the control system 1 and programs to be executed by each device. In the integrated development environment, it is possible to create and debug programs directed to the control device 100, the servo driver 500, the industrial robot 600, the safety controller 700, the visual sensor 800, and the like.

入力部206は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。出力部208は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。 An input unit 206 includes a keyboard, a mouse, and the like, and receives user operations. An output unit 208 includes a display, various indicators, a printer, and the like, and outputs processing results from the processor 202 and the like.

USBコントローラ220は、USB接続を介して、制御装置100などとの間のデータをやり取りする。通信コントローラ222は、上位ネットワーク12を介して、任意の情報処理装置との間でデータをやり取りする。 The USB controller 220 exchanges data with the control device 100 or the like via a USB connection. The communication controller 222 exchanges data with any information processing device via the host network 12 .

サポート装置200は、光学ドライブ212を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記憶媒体214(例えば、DVD(Digital Versatile Disc)などの光学記憶媒体)から、その中に格納されたプログラムが読取られてストレージ210などにインストールされる。 The support device 200 has an optical drive 212, in which a computer-readable program can be transferred from a storage medium 214 (for example, an optical storage medium such as a DVD (Digital Versatile Disc)) that stores a computer-readable program in a non-transitory manner. The stored program is read and installed in the storage 210 or the like.

サポート装置200で実行される開発プログラム2104などは、コンピュータ読取可能な記憶媒体214を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。 The development program 2104 and the like executed by the support device 200 may be installed via the computer-readable storage medium 214, or may be installed by being downloaded from a server device or the like on the network. Also, the functions provided by the support device 200 according to the present embodiment may be realized by using some of the modules provided by the OS.

なお、制御システム1が稼動中において、サポート装置200は、制御装置100から取り外されていてもよい。 Note that the support device 200 may be removed from the control device 100 while the control system 1 is in operation.

(b3:表示装置300)
本実施の形態に係る制御システム1を構成する表示装置300は、HMI(Human Machine Interface)やPT(Programmable Terminal)とも称され、制御装置100が保持する情報を参照して監視操作画面を提供するとともに、ユーザ操作に対応する指示を制御装置100へ送出する。
(b3: display device 300)
The display device 300 constituting the control system 1 according to the present embodiment is also called HMI (Human Machine Interface) or PT (Programmable Terminal), and provides a monitoring operation screen by referring to information held by the control device 100. At the same time, an instruction corresponding to the user's operation is sent to control device 100 .

表示装置300は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。 Display device 300 is implemented, as an example, using hardware (for example, a general-purpose personal computer) conforming to a general-purpose architecture. A basic hardware configuration example is the same as the hardware configuration example of the support device 200 shown in FIG. 4, so a detailed description will not be given here.

(b4:サーバ装置400)
本実施の形態に係る制御システム1を構成するサーバ装置400は、例えば、ファイルサーバ、製造実行システム(MES:Manufacturing Execution System)、生産管理システムなどとして機能する。
(b4: server device 400)
The server device 400 that configures the control system 1 according to the present embodiment functions, for example, as a file server, a manufacturing execution system (MES), a production management system, and the like.

サーバ装置400は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。 Server device 400 is implemented, as an example, using hardware (for example, a general-purpose personal computer) conforming to a general-purpose architecture. A basic hardware configuration example is the same as the hardware configuration example of the support device 200 shown in FIG. 4, so a detailed description will not be given here.

(b5:サーボドライバ500)
本実施の形態に係る制御システム1を構成するサーボドライバ500は、電気的に接続されたサーボモータ550を駆動する。サーボドライバ500は、モータドライバの一例であり、サーボドライバ500とは異なるモータドライバを採用してもよい。同様に、サーボモータ550は、モータの一例であり、サーボモータ550とは異なるモータ(例えば、誘導型モータやリニアモータなど)を採用してもよい。モータドライバとしては、駆動対象のモータに応じた構成を採用できる。
(b5: servo driver 500)
A servo driver 500 that configures the control system 1 according to the present embodiment drives an electrically connected servo motor 550 . The servo driver 500 is an example of a motor driver, and a motor driver different from the servo driver 500 may be employed. Similarly, the servomotor 550 is an example of a motor, and a motor different from the servomotor 550 (for example, an induction motor, a linear motor, etc.) may be employed. As the motor driver, a configuration corresponding to the motor to be driven can be adopted.

図5は、本実施の形態に係る制御システム1を構成するサーボドライバ500およびサーボモータ550のハードウェア構成例を示す模式図である。図5を参照して、サーボドライバ500は、フィールドネットワークコントローラ502と、演算処理回路510と、ドライブ回路530と、フィードバック受信回路532とを含む。 FIG. 5 is a schematic diagram showing a hardware configuration example of the servo driver 500 and the servo motor 550 that configure the control system 1 according to the present embodiment. Referring to FIG. 5, servo driver 500 includes field network controller 502 , arithmetic processing circuit 510 , drive circuit 530 and feedback receiving circuit 532 .

フィールドネットワークコントローラ502は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ502は、他のデバイスとの間で同期されたカウンタ503を有している。 Field network controller 502 exchanges data with arbitrary devices via field network 20 . A field network controller 502 has a counter 503 synchronized with other devices.

演算処理回路510は、サーボドライバ500を動作させるために必要な演算処理を実行する。一例として、演算処理回路510は、プロセッサ512と、メインメモリ516と、ストレージ520とを含む。プロセッサ512は、サーボモータ550を駆動するための制御演算を実行する。 The arithmetic processing circuit 510 executes arithmetic processing required to operate the servo driver 500 . As an example, processing circuitry 510 includes processor 512 , main memory 516 , and storage 520 . Processor 512 performs control operations for driving servo motor 550 .

メインメモリ516は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ520は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The main memory 516 is composed of a volatile memory device such as DRAM and SRAM. The storage 520 is configured by, for example, a non-volatile storage device such as SSD or HDD.

ストレージ520には、サーボ制御を実現するためのサーボ制御プログラム5202、および、サーボドライバ500での処理を規定するための設定情報5204が格納される。 The storage 520 stores a servo control program 5202 for realizing servo control, and setting information 5204 for defining processing in the servo driver 500 .

ドライブ回路530は、コンバータ回路およびインバータ回路などを含み、演算処理回路510からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ550へ供給する。 Drive circuit 530 includes a converter circuit, an inverter circuit, and the like, and according to instructions from arithmetic processing circuit 510 , generates power of specified voltage, current, and phase, and supplies it to servo motor 550 .

フィードバック受信回路532は、サーボモータ550からのフィードバック信号を受信して、その受信結果を演算処理回路510へ出力する。 Feedback receiving circuit 532 receives a feedback signal from servo motor 550 and outputs the reception result to arithmetic processing circuit 510 .

サーボモータ550は、典型的には、三相交流モータ552および三相交流モータ552の回転軸に取付けられたエンコーダ554を含む。 Servo motor 550 typically includes a three-phase AC motor 552 and an encoder 554 attached to the rotating shaft of the three-phase AC motor 552 .

(b6:産業用ロボット600)
本実施の形態に係る制御システム1を構成する産業用ロボット600は、制御装置100からの指令に従って動作する。産業用ロボット600は、例えば、垂直多関節ロボット、水平多関節(スカラ)ロボット、パラレルリンクロボット、直交ロボットなどの任意の汎用ロボットが用いられてもよい。
(b6: industrial robot 600)
Industrial robot 600 constituting control system 1 according to the present embodiment operates according to commands from control device 100 . Any general-purpose robot such as a vertical articulated robot, a horizontal articulated (scalar) robot, a parallel link robot, or an orthogonal robot may be used as the industrial robot 600, for example.

図6は、本実施の形態に係る制御システム1を構成する産業用ロボット600のハードウェア構成例を示す模式図である。図6を参照して、産業用ロボット600は、ロボット本体610と、ロボット本体610を駆動するロボットコントローラ650とを含む。 FIG. 6 is a schematic diagram showing a hardware configuration example of an industrial robot 600 that constitutes the control system 1 according to this embodiment. Referring to FIG. 6, industrial robot 600 includes a robot body 610 and a robot controller 650 that drives robot body 610 .

ロボットコントローラ650は、フィールドネットワークコントローラ652と、演算処理回路660とを含む。 Robot controller 650 includes field network controller 652 and arithmetic processing circuit 660 .

フィールドネットワークコントローラ652は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ652は、他のデバイスとの間で同期されたカウンタ653を有している。 Field network controller 652 exchanges data with arbitrary devices via field network 20 . Field network controller 652 has a counter 653 synchronized with other devices.

演算処理回路660は、ロボット本体610を駆動するために必要な演算処理を実行する。一例として、演算処理回路660は、プロセッサ662と、メインメモリ666と、ストレージ670と、インターフェイス回路668とを含む。プロセッサ662は、ロボット本体610を駆動するための制御演算を実行する。 Arithmetic processing circuit 660 executes arithmetic processing necessary to drive robot main body 610 . As an example, processing circuitry 660 includes processor 662 , main memory 666 , storage 670 , and interface circuitry 668 . Processor 662 executes control operations for driving robot body 610 .

メインメモリ666は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ670は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The main memory 666 is composed of a volatile storage device such as DRAM and SRAM. The storage 670 is composed of, for example, a non-volatile storage device such as an SSD or HDD.

ストレージ670には、ロボットの駆動制御を実現するためのロボットシステムプログラム6702、および、ロボットコントローラ650での処理を規定するための設定情報6704が格納される。 The storage 670 stores a robot system program 6702 for realizing drive control of the robot and setting information 6704 for defining processing in the robot controller 650 .

インターフェイス回路668は、各軸を駆動するドライブ回路680に対して、それぞれ指令を与える。 The interface circuit 668 gives commands to drive circuits 680 that drive each axis.

ドライブ回路680の各々は、コンバータ回路およびインバータ回路などを含み、インターフェイス回路668からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ690へ供給する。サーボモータ690は、ロボット本体610のアーム部と機械的に結合されており、サーボモータ690の回転によって対応するアーム部が駆動される。 Each of the drive circuits 680 includes a converter circuit, an inverter circuit, and the like, and according to commands from the interface circuit 668 , generates power of specified voltage, current, and phase, and supplies it to the servo motor 690 . The servomotor 690 is mechanically coupled to the arm portion of the robot body 610, and the rotation of the servomotor 690 drives the corresponding arm portion.

(b7:安全コントローラ700)
本実施の形態に係る制御システム1を構成する安全コントローラ700は、安全制御を実行する。
(b7: safety controller 700)
A safety controller 700 that configures the control system 1 according to the present embodiment executes safety control.

図7および図8は、本実施の形態に係る制御システム1を構成する安全コントローラ700のハードウェア構成例を示す模式図である。図7を参照して、安全コントローラ700は、フィールドネットワーク20を介した通信を担当する通信インターフェイスユニット710と、安全制御を司る安全制御ユニット730と、安全コンポーネントを接続する1または複数の安全拡張ユニット740とを含む。 7 and 8 are schematic diagrams showing a hardware configuration example of the safety controller 700 that constitutes the control system 1 according to the present embodiment. Referring to FIG. 7, safety controller 700 includes communication interface unit 710 in charge of communication via field network 20, safety control unit 730 in charge of safety control, and one or more safety expansion units that connect safety components. 740.

通信インターフェイスユニット710は、ローカルバス760を介して、安全制御ユニット730および安全拡張ユニット740と接続されている。 Communication interface unit 710 is connected to safety control unit 730 and safety expansion unit 740 via local bus 760 .

通信インターフェイスユニット710は、プロセッサ711と、メインメモリ712と、ストレージ713と、フィールドネットワークコントローラ714と、USBコントローラ716と、ローカルバスコントローラ717とを含む。これらのコンポーネントは、プロセッサバス719を介して接続されている。 Communication interface unit 710 includes processor 711 , main memory 712 , storage 713 , field network controller 714 , USB controller 716 and local bus controller 717 . These components are connected via processor bus 719 .

プロセッサ711は、フィールドネットワーク20との通信を制御する演算処理部に相当し、CPUやGPUなどで構成される。 The processor 711 corresponds to an arithmetic processing unit that controls communication with the field network 20, and is composed of a CPU, GPU, or the like.

メインメモリ712は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ713は、例えば、フラッシュROM、SSD、HDDなどの不揮発性記憶装置などで構成される。 The main memory 712 is composed of a volatile memory device such as DRAM and SRAM. The storage 713 is configured by, for example, a non-volatile storage device such as a flash ROM, SSD, HDD, or the like.

フィールドネットワークコントローラ714は、フィールドネットワーク20を介して、任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ714は、他のデバイスとの間で同期されたカウンタ715を有している。 Field network controller 714 exchanges data with arbitrary devices via field network 20 . Field network controller 714 has a counter 715 synchronized with other devices.

USBコントローラ716は、USB接続を介して、サポート装置200などの情報処理装置との間でデータをやり取りする。 The USB controller 716 exchanges data with an information processing device such as the support device 200 via a USB connection.

ローカルバスコントローラ717は、ローカルバス760を介して、安全制御ユニット730および安全拡張ユニット740などの拡張ユニットとの間でデータをやり取りする。ローカルバスコントローラ717は、カウンタ718を有しており、カウンタ718は、フィールドネットワークコントローラ714のカウンタ715と同期されている。 Local bus controller 717 exchanges data with expansion units such as safety control unit 730 and safety expansion unit 740 via local bus 760 . The local bus controller 717 has a counter 718 which is synchronized with the counter 715 of the field network controller 714 .

図8(A)を参照して、安全制御ユニット730は、プロセッサ731と、メインメモリ732と、ストレージ733と、ローカルバスコントローラ738とを含む。これらのコンポーネントは、プロセッサバス737を介して接続されている。 Referring to FIG. 8A, safety control unit 730 includes processor 731 , main memory 732 , storage 733 and local bus controller 738 . These components are connected via processor bus 737 .

プロセッサ731は、安全制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。 The processor 731 corresponds to a calculation processing unit that executes control calculations related to safety control, and is composed of a CPU, a GPU, or the like.

メインメモリ732は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ733は、例えば、フラッシュROM、SSD、HDDなどの不揮発性記憶装置などで構成される。 The main memory 732 is composed of a volatile memory device such as DRAM and SRAM. The storage 733 is composed of, for example, a non-volatile storage device such as a flash ROM, SSD, HDD, or the like.

ストレージ733には、安全制御ユニット730での処理を規定するための設定情報734、要求される安全機能に応じた作成された安全プログラム735、および基本的な機能を実現するためのシステムプログラム736が格納される。 The storage 733 contains setting information 734 for defining processing in the safety control unit 730, a safety program 735 created according to required safety functions, and a system program 736 for realizing basic functions. Stored.

ローカルバスコントローラ738は、ローカルバス760を介して、通信インターフェイスユニット710との間でデータをやり取りする。ローカルバスコントローラ738は、カウンタ739を有しており、カウンタ739は、通信インターフェイスユニット710のローカルバスコントローラ717のカウンタ718と同期されている。 Local bus controller 738 transfers data to and from communication interface unit 710 via local bus 760 . Local bus controller 738 has a counter 739 which is synchronized with counter 718 of local bus controller 717 of communication interface unit 710 .

図8(B)を参照して、安全拡張ユニット740は、プロセッサ741と、メインメモリ742と、安全IOモジュール743と、ローカルバスコントローラ748とを含む。これらのコンポーネントは、プロセッサバス747を介して接続されている。 Referring to FIG. 8B, safety expansion unit 740 includes processor 741 , main memory 742 , safety IO module 743 and local bus controller 748 . These components are connected via processor bus 747 .

プロセッサ741は、安全制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。 The processor 741 corresponds to a calculation processing unit that executes control calculations related to safety control, and is composed of a CPU, a GPU, or the like.

メインメモリ742は、DRAMやSRAMなどの揮発性記憶装置などで構成される。
安全IOモジュール743は、安全デバイス750と電気的に接続されており、安全デバイス750による検出結果などの入力を受け付けたり、安全デバイス750を介した電源出力を行ったりする。
The main memory 742 is composed of a volatile memory device such as DRAM and SRAM.
The safety IO module 743 is electrically connected to the safety device 750 , receives inputs such as detection results from the safety device 750 , and outputs power via the safety device 750 .

ローカルバスコントローラ748は、ローカルバス760を介して、通信インターフェイスユニット710との間でデータをやり取りする。ローカルバスコントローラ748は、カウンタ749を有しており、カウンタ749は、通信インターフェイスユニット710のローカルバスコントローラ717のカウンタ718と同期されている。 Local bus controller 748 transfers data to and from communication interface unit 710 via local bus 760 . Local bus controller 748 has a counter 749 which is synchronized with counter 718 of local bus controller 717 of communication interface unit 710 .

さらに、安全制御ユニット730と安全拡張ユニット740との間では、それぞれローカルバス760および通信インターフェイスユニット710を介して、相互にデータをやり取りすることができる。すなわち、安全制御ユニット730は、安全拡張ユニット740に入力された安全入力データを安全プログラム735の実行時に参照でき、また、安全プログラム735の実行により決定された安全出力データを安全拡張ユニット740から出力できる。 Furthermore, data can be exchanged between the safety control unit 730 and the safety expansion unit 740 via the local bus 760 and the communication interface unit 710, respectively. That is, the safety control unit 730 can refer to the safety input data input to the safety extension unit 740 when executing the safety program 735, and outputs the safety output data determined by the execution of the safety program 735 from the safety extension unit 740. can.

(b8:視覚センサ800)
本実施の形態に係る制御システム1を構成する視覚センサ800は、カメラでの撮像によって取得された画像に対して、予め規定された認識処理を実行し、その認識結果を出力する。
(b8: visual sensor 800)
The visual sensor 800 that constitutes the control system 1 according to the present embodiment executes predetermined recognition processing on an image captured by a camera and outputs the recognition result.

視覚センサ800は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いて実現される。基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。また、視覚センサ800で実行される各種認識処理についても公知であるので、ここでは詳細な説明は行わない。 Visual sensor 800 is implemented, for example, using hardware (for example, a general-purpose personal computer) following a general-purpose architecture. A basic hardware configuration example is the same as the hardware configuration example of the support device 200 shown in FIG. 4, so a detailed description will not be given here. Further, since various recognition processes executed by the visual sensor 800 are also known, detailed description thereof will not be given here.

(b9:IOユニット900)
本実施の形態に係る制御システム1を構成するIOユニット900は、力覚センサ950などの任意のセンサからの信号を受け付けるとともに、リレー(図示しない)などの任意のアクチュエータへ指令を出力する。
(b9: IO unit 900)
IO unit 900 that configures control system 1 according to the present embodiment receives signals from arbitrary sensors such as force sensor 950 and outputs commands to arbitrary actuators such as relays (not shown).

図9は、本実施の形態に係る制御システム1を構成するIOユニット900のハードウェア構成例を示す模式図である。図9を参照して、IOユニット900は、フィールドネットワークコントローラ902と、演算処理回路910とを含む。 FIG. 9 is a schematic diagram showing a hardware configuration example of an IO unit 900 that configures the control system 1 according to this embodiment. Referring to FIG. 9, IO unit 900 includes field network controller 902 and arithmetic processing circuit 910 .

フィールドネットワークコントローラ902は、フィールドネットワーク20を介して任意のデバイスとの間でデータをやり取りする。フィールドネットワークコントローラ902は、他のデバイスとの間で同期されたカウンタ903を有している。 Field network controller 902 exchanges data with arbitrary devices via field network 20 . A field network controller 902 has a counter 903 synchronized with other devices.

演算処理回路910は、IOユニット900の機能の実現に必要な演算処理を実行する。一例として、演算処理回路910は、プロセッサ912と、メインメモリ916と、ROM920とを含む。プロセッサ912は、IOユニット900の機能を実現するために必要な制御演算を実行する。 The arithmetic processing circuit 910 executes arithmetic processing necessary for realizing the functions of the IO unit 900 . As an example, arithmetic processing circuit 910 includes processor 912 , main memory 916 , and ROM 920 . Processor 912 performs the control operations necessary to implement the functionality of IO unit 900 .

メインメモリ916は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ROM920には、IOユニット900の機能を実現するためのファームウェア922が格納される。 A main memory 916 is composed of a volatile storage device such as a DRAM or an SRAM. Firmware 922 for implementing the functions of the IO unit 900 is stored in the ROM 920 .

インターフェイス回路930は、力覚センサ950などの任意のセンサ、および/または、任意のアクチュエータとの間で信号をやり取りする。 Interface circuit 930 exchanges signals with any sensor, such as force sensor 950, and/or any actuator.

(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 control device 100 and/or the safety controller 700 may be realized using hardware following a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to execute a plurality of OSs with different purposes in parallel, and necessary applications may be executed on each OS. Furthermore, a configuration in which functions such as the support device 200 and the display device 300 are integrated into the control device 100 may be adopted.

<C.制御システム1におけるアクチュエータの同期動作>
フィールドネットワーク20としてEtherCATを採用する場合には、指令値および入力値を含む通信フレームがデバイス間を周期的に巡回することになる。この通信フレームを用いることで、制御装置100から送出された同じ通信フレームに格納された別々のデバイスに向けられた指令値は、それぞれのデバイスで実質的に同じタイミングで反映されることになる。
<C. Synchronous Operation of Actuators in Control System 1>
When EtherCAT is adopted as the field network 20, communication frames containing command values and input values cyclically circulate between devices. By using this communication frame, command values directed to different devices and stored in the same communication frame sent from the control device 100 are reflected in each device at substantially the same timing.

しかしながら、産業用ロボット600については、独自の命令インターフェイスが用意されていることも多い。そのため、サーボドライバ500あるいはサーボドライバ500により構成される各種機構と、産業用ロボット600との厳密な同期を実現できない可能性がある。本実施の形態に係る制御システム1は、独自の命令インターフェイスを有している産業用ロボット600を含めて、より厳密な同期動作を実現できる。 However, the industrial robot 600 often has its own command interface. Therefore, there is a possibility that strict synchronization between the servo driver 500 or various mechanisms configured by the servo driver 500 and the industrial robot 600 cannot be realized. The control system 1 according to the present embodiment can realize more strictly synchronous operation including the industrial robot 600 having its own command interface.

まず、モーション命令1106の処理およびロボットプログラム1108の処理について説明する。 First, processing of motion instructions 1106 and processing of robot program 1108 will be described.

図10は、本実施の形態に係る制御装置100によるモーション命令1106の処理を説明するための図である。図10(A)には、制御装置100で実行されるユーザプログラム1104に含まれるモーション命令1106の一例を示す。図10(A)に示されるモーション命令1106は、ファンクションブロック形式で描かれているが、これに限定されることなく、任意の形式で規定できる。制御装置100は、モーション命令1106を以下のような手順で処理する。 FIG. 10 is a diagram for explaining processing of motion command 1106 by control device 100 according to the present embodiment. FIG. 10A shows an example of motion instructions 1106 included in a user program 1104 executed by the control device 100. FIG. The motion instructions 1106 shown in FIG. 10A are drawn in function block format, but are not limited to this and can be defined in any format. The control device 100 processes the motion command 1106 in the following procedure.

すなわち、図10(B)を参照して、モーション命令実行指示141が与えられると、モーション命令1106に対して、モーション命令解釈140が実行される。解釈された結果に基づいて、目標軌跡生成処理142が実行される。すなわち、対象の軸(典型的には、対象のサーボドライバ500)が移動すべき時間と位置との関係を規定する目標軌跡が生成される。そして、生成された目標軌跡に基づいて、指令値決定処理144が制御周期毎に実行される。この結果、対象のサーボドライバ500へ与えられる指令値(典型的には、制御周期毎の位置指令あるいは速度指令)を制御周期毎に決定できる。 That is, referring to FIG. 10B, when motion command execution instruction 141 is given, motion command interpretation 140 is executed for motion command 1106 . A target trajectory generation process 142 is executed based on the interpreted result. That is, a target trajectory is generated that defines the relationship between time and position that the target axis (typically, the target servo driver 500) should move. Based on the generated target trajectory, command value determination processing 144 is executed in each control cycle. As a result, a command value (typically, a position command or a speed command for each control cycle) to be given to the target servo driver 500 can be determined for each control cycle.

図11は、本実施の形態に係る制御装置100によるロボットプログラム1108の処理を説明するための図である。図11を参照して、制御装置100において、ロボットプログラム1108に対して、プログラム解釈146が実行される。解釈された結果に基づいて、コマンド生成処理148が実行される。コマンド生成処理148により、ロボットコントローラ650が解釈可能なコマンドが生成される。生成されたコマンドは、フィールドネットワーク20を介して、ロボットコントローラ650へ送信される。 FIG. 11 is a diagram for explaining the processing of robot program 1108 by control device 100 according to the present embodiment. Referring to FIG. 11, program interpretation 146 is executed for robot program 1108 in controller 100 . Command generation processing 148 is executed based on the interpreted result. A command generation process 148 generates commands that can be interpreted by the robot controller 650 . The generated command is transmitted to robot controller 650 via field network 20 .

ロボットコントローラ650において、制御装置100から送信されたコマンドに対して、コマンド解釈672が実行される。解釈された結果に基づいて、目標軌跡生成処理674が実行される。すなわち、産業用ロボット600は、送信されたコマンドを解釈した結果に応じて動作する。 In robot controller 650 , command interpretation 672 is performed on commands sent from controller 100 . A target trajectory generation process 674 is executed based on the interpreted result. That is, the industrial robot 600 operates according to the result of interpreting the transmitted command.

より具体的には、産業用ロボット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 axes 30 of the industrial robot 600 should move. Based on the generated target trajectory, command value determination processing 676 is executed in each control cycle. As a result, a command value (typically, a position command or a speed command for each control cycle) to be given to the drive circuit 680 of the industrial robot 600 can be determined for each control cycle.

図10に示すように、ユーザプログラム1104に含まれるモーション命令1106によりサーボドライバ500などを制御する場合には、制御装置100において制御周期毎の指令値を決定でき、そのままフィールドネットワーク20を介して対象のサーボドライバ500へ送出することができる。そして、サーボドライバ500は、その指令値に従って動作する。 As shown in FIG. 10, when the motion command 1106 included in the user program 1104 is used to control the servo driver 500 or the like, the command value for each control cycle can be determined in the control device 100, and the target value is directly transmitted via the field network 20. can be sent to the servo driver 500. Then, the servo driver 500 operates according to the command value.

これに対して、図11に示すように、ロボットプログラム1108により産業用ロボット600を制御する場合には、制御装置100から対象の産業用ロボット600に向けられたコマンドが生成される。この生成されたコマンドが産業用ロボット600へ送信された後に、産業用ロボット600は目標軌跡を生成して動作を開始する。また、制御装置100と産業用ロボット600との間のコマンドのやり取りには、通常、複数個の通信フレームが必要となる。 On the other hand, as shown in FIG. 11 , when the robot program 1108 controls the industrial robot 600 , a command directed to the target industrial robot 600 is generated from the control device 100 . After the generated command is sent to the industrial robot 600, the industrial robot 600 generates a target trajectory and starts moving. Further, exchange of commands between the control device 100 and the industrial robot 600 usually requires a plurality of communication frames.

このように、制御装置100とアクチュエータ(サーボドライバ500および産業用ロボット600)との間の指令をやり取りする方式が異なっているなどの理由によって、サーボドライバ500あるいはサーボドライバ500により構成される各種機構と、産業用ロボット600との厳密な同期を実現できない可能性がある。 As described above, the servo driver 500 or various mechanisms configured by the servo driver 500 are different because the methods of exchanging commands between the control device 100 and the actuators (the servo driver 500 and the industrial robot 600) are different. , there is a possibility that strict synchronization with the industrial robot 600 cannot be achieved.

本実施の形態に係る制御装置100は、このような指令をやり取りする方式が異なっているアクチュエータが同一のフィールドネットワーク20に存在していても、より厳密な同期動作を実現する仕組みを提供する。 The control device 100 according to the present embodiment provides a mechanism that realizes more strictly synchronous operation even if actuators with different methods of exchanging commands exist in the same field network 20.

図12は、本実施の形態に係る制御装置100によるサイクリック処理の一例を説明するための図である。図12には、制御装置100において、優先度別に複数のタスクが設定されている例を示す。より具体的には、制御周期T1毎にサイクリック実行される高優先タスクと、アプリケーション実行周期T2(>T1)が設定された低優先タスクとが設定されている。 FIG. 12 is a diagram for explaining an example of cyclic processing by control device 100 according to the present embodiment. FIG. 12 shows an example in which a plurality of tasks are set according to priority in the control device 100 . More specifically, a high-priority task that is cyclically executed every control period T1 and a low-priority task that has an application execution period T2 (>T1) are set.

高優先タスクには、フィールドネットワーク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 field network 20, user program execution processing 152 for executing the user program 1104, and motion command processing 1106. A process 154 and a robot process 156 are set up to process commands generated from the robot program 1108 .

通信フレーム伝送処理150は、直前の制御周期において実行された処理によって算出された指令値(出力データ)を通信フレームに格納して送信するとともに、各スレーブデバイスが通信フレームに格納した入力データを取得する処理が実行される。さらに、通信フレーム伝送処理150においては、産業用ロボット600との間でやり取りされるコマンドの送受信処理も実行される。 The communication frame transmission processing 150 stores the command value (output data) calculated by the processing executed in the immediately preceding control cycle in the communication frame and transmits it, and acquires the input data stored in the communication frame by each slave device. process is executed. Furthermore, in the communication frame transmission processing 150, transmission/reception processing of commands exchanged with the industrial robot 600 is also executed.

モーション処理154は、図10に示すモーション命令解釈140、目標軌跡生成処理142および指令値決定処理144を含む。ロボット処理156は、図11に示すコマンド生成処理148を含む。 Motion processing 154 includes motion instruction interpretation 140, target trajectory generation processing 142, and command value determination processing 144 shown in FIG. Robot processing 156 includes command generation processing 148 shown in FIG.

低優先タスクには、ロボットプログラム1108を解釈してコマンドを生成するためのロボットプログラム解釈処理158が設定される。ロボットプログラム解釈処理158は、図11に示すプログラム解釈146を含む。ロボットプログラム解釈処理158により生成されたコマンドはバッファ159に順次書き込まれる。バッファ159に書き込まれたコマンドは、ロボット処理156において順次読み出されて対象の産業用ロボット600へ送信される。 A robot program interpretation process 158 for interpreting the robot program 1108 and generating commands is set for the low priority task. Robot program interpretation processing 158 includes program interpretation 146 shown in FIG. Commands generated by robot program interpretation processing 158 are written to buffer 159 in sequence. The commands written in the buffer 159 are sequentially read in the robot processing 156 and sent to the target industrial robot 600 .

このように、制御装置100においては、周期の異なる複数のタスクを実行することで、ユーザプログラム1104(シーケンス命令1105およびモーション命令1106を含み得る)に従うスレーブデバイスの制御、および、ロボットプログラム1108に従う産業用ロボット600の制御を実現する。 In this way, the controller 100 executes multiple tasks with different cycles to control slave devices according to the user program 1104 (which may include sequence instructions 1105 and motion instructions 1106) and to control the industrial device according to the robot program 1108. The control of the robot 600 for use is realized.

図13は、本実施の形態に係る制御装置100によるアクチュエータの動作開始までに要する遅延時間の一例を説明するための図である。 13A and 13B are diagrams for explaining an example of the delay time required until the actuator starts to operate by the control device 100 according to the present embodiment.

図13を参照して、ユーザプログラム1104に含まれるモーション命令1106の処理が開始されてから対象のアクチュエータ(サーボドライバ500およびサーボモータ550)が動作するまでには、指令値生成60に要する処理時間、伝送遅延62、およびアクチュエータが指令値に従って動作を開始するための応答遅延64の遅延が生じ得る。 Referring to FIG. 13, the processing time required for command value generation 60 from the start of processing of motion command 1106 included in user program 1104 to the operation of the target actuator (servo driver 500 and servo motor 550) is , a transmission delay 62, and a response delay 64 for the actuator to start operating according to the command value.

これに対して、ロボットプログラム1108の処理が開始されてから対象のアクチュエータ(産業用ロボット600)が動作するまでには、コマンド生成70に要する処理時間、伝送遅延を含むコマンド送信72に要する時間、ロボットコントローラ650がコマンドを解釈して指令値を生成するのに要する処理時間74、およびアクチュエータが指令値に従って動作を開始するための応答遅延76の遅延が生じ得る。 On the other hand, the processing time required for command generation 70, the time required for command transmission 72 including transmission delay, There may be delays in the processing time 74 required for the robot controller 650 to interpret the command and generate the command value, and the response delay 76 for the actuator to start moving according to the command value.

本実施の形態に係る制御装置100は、タイミング調整を行うことで、モーション命令1106に従うアクチュエータの動作制御と、ロボットプログラム1108に従うアクチュエータとの間に生じる遅延時間の差を吸収する。このような遅延時間の差を吸収することにより、より正確な同期動作を実現できる。 Control device 100 according to the present embodiment adjusts the timing to absorb the difference in delay time that occurs between the motion control of the actuator following motion command 1106 and the actuator following robot program 1108 . By absorbing such a difference in delay time, a more accurate synchronous operation can be realized.

<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 control device 100 according to the present embodiment. Each functional module shown in FIG. 14 is typically implemented by processor 102 of control device 100 executing system program 1102 .

図14を参照して、制御装置100は、機能構成として、ユーザプログラム処理部160と、目標軌跡演算部162と、指令値演算部164と、出力遅延量演算部166と、各軸指令値演算部168と、入力遅延演算部170とを含む。これらの機能モジュールは、ユーザプログラム1104に含まれるモーション命令1106の処理に向けられる。 14, control device 100 includes, as a functional configuration, user program processing portion 160, target locus calculation portion 162, command value calculation portion 164, output delay amount calculation portion 166, axis command value calculation 168 and an input delay calculator 170 . These functional modules are directed to processing motion instructions 1106 contained in user program 1104 .

ユーザプログラム処理部160は、ストレージ110に格納されているユーザプログラム1104を読み出して実行する。目標軌跡演算部162は、ユーザプログラム1104に含まれるモーション命令1106を解釈して目標軌跡を生成する。指令値演算部164は、生成された目標軌跡に基づいて制御周期毎の指令値を決定する。指令値演算部164は、指令値の決定に際して、入力遅延演算部170により算出される入力遅延(フィードバック遅れ)を考慮してもよい。 The user program processing unit 160 reads and executes the user program 1104 stored in the storage 110 . The target trajectory calculator 162 interprets the motion command 1106 included in the user program 1104 to generate a target trajectory. The command value calculator 164 determines a command value for each control cycle based on the generated target trajectory. The command value calculator 164 may consider the input delay (feedback delay) calculated by the input delay calculator 170 when determining the command value.

出力遅延量演算部166は、遅延パラメータ176を参照して、同期動作の対象となる産業用ロボット600との間でタイミング調整に必要な出力遅延量を決定する。 The output delay amount calculator 166 refers to the delay parameter 176 to determine the output delay amount required for timing adjustment with the industrial robot 600 to be synchronized.

各軸指令値演算部168は、対象のサーボドライバ500が構成する機構またはロボットのキネマティクス174を参照して、指令値演算部164によって決定された指令値を実現するための各軸に与えられる指令値を決定する。キネマティクス174は、サーボモータ550が組み込まれた機構またはロボットの物理的な位置および姿勢と、サーボモータ550の回転角度との関係を規定する情報を含む。キネマティクス174を参照して、目標軌跡演算部162により決定される目標軌跡を実現するためのサーボモータ550の各々の回転角度などが算出される。 Each axis command value calculation unit 168 refers to the mechanism or robot kinematics 174 configured by the target servo driver 500, and is given to each axis for realizing the command value determined by the command value calculation unit 164. Determine the command value. Kinematics 174 includes information that defines the relationship between the physical position and orientation of the mechanism or robot in which servo motor 550 is incorporated and the rotation angle of servo motor 550 . With reference to the kinematics 174, the rotation angle of each of the servo motors 550 for realizing the target trajectory determined by the target trajectory calculation unit 162 and the like are calculated.

各軸指令値演算部168は、出力遅延量演算部166によって決定された出力遅延量に応じて、決定した各軸指令値を対象のサーボドライバ500へ送信する。各軸指令値演算部168が決定した各軸指令値は、フィールドネットワークコントローラ108を通じて送信される。 Each axis command value calculation unit 168 transmits the determined each axis command value to the target servo driver 500 according to the output delay amount determined by the output delay amount calculation unit 166 . Each axis command value determined by each axis command value calculator 168 is transmitted through the field network controller 108 .

このように、ユーザプログラム処理部160と、目標軌跡演算部162と、指令値演算部164と、各軸指令値演算部168とは、モーション命令1106に従って所定周期毎に指令値を生成してサーボドライバ500へ送信する指令送信部に相当する。 In this manner, the user program processing unit 160, the target locus calculation unit 162, the command value calculation unit 164, and the axis command value calculation unit 168 generate command values at predetermined intervals according to the motion command 1106, It corresponds to a command transmission unit that transmits to the driver 500 .

制御装置100は、機能構成として、ロボットプログラム処理部180と、指令値同期部182と、出力遅延量演算部184と、入力遅延演算部186とをさらに含む。これらの機能モジュールは、ロボットプログラム1108の処理に向けられる。 Control device 100 further includes a robot program processing section 180, a command value synchronization section 182, an output delay amount calculation section 184, and an input delay calculation section 186 as functional configurations. These functional modules are directed to processing robot program 1108 .

ロボットプログラム処理部180は、ストレージ110に格納されているロボットプログラム1108を読み出して内容を解釈してコマンドを生成する。すなわち、ロボットプログラム処理部180は、所定のプログラミング言語で記述されたロボットプログラム1108を解釈してコマンドを生成して産業用ロボット600へ順次送信するコマンド送信部に相当する。 The robot program processing unit 180 reads the robot program 1108 stored in the storage 110, interprets the content, and generates commands. That is, the robot program processing unit 180 corresponds to a command transmission unit that interprets the robot program 1108 written in a predetermined programming language, generates commands, and sequentially transmits the commands to the industrial robot 600 .

ロボットプログラム処理部180は、コマンドの生成に際して、入力遅延演算部186により算出される入力遅延(フィードバック遅れ)を考慮してもよい。 The robot program processing unit 180 may consider the input delay (feedback delay) calculated by the input delay calculating unit 186 when generating commands.

指令値同期部182は、同期動作の対象となる1または複数のサーボドライバ500との間でタイミング調整に必要な情報を共有する。 The command value synchronization unit 182 shares information necessary for timing adjustment with one or more servo drivers 500 to be synchronized.

出力遅延量演算部184は、遅延パラメータ176を参照して、同期動作の対象となる1または複数のサーボドライバ500との間でタイミング調整に必要な出力遅延量を決定する。出力遅延量演算部184は、決定した出力遅延量に応じて、ロボットプログラム処理部180により生成されたコマンドを対象の産業用ロボット600へ送信する。コマンは、フィールドネットワークコントローラ108を通じて送信される。 The output delay amount calculator 184 refers to the delay parameter 176 to determine the output delay amount required for timing adjustment with one or more servo drivers 500 to be synchronized. The output delay amount calculation unit 184 transmits the command generated by the robot program processing unit 180 to the target industrial robot 600 according to the determined output delay amount. Commands are sent through the field network controller 108 .

以上のように、モーション命令1106についての出力遅延量演算部166、および、ロボットプログラム1108についての出力遅延量演算部184は、サーボドライバ500によるサーボモータ550の駆動と産業用ロボット600の動作とが同期するように、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)の送信、および、ロボットプログラム1108を解釈して生成されるコマンドの送信の少なくとも一方を変更する同期調整部に相当する。 As described above, the output delay amount calculation unit 166 for the motion command 1106 and the output delay amount calculation unit 184 for the robot program 1108 determine that the driving of the servo motor 550 by the servo driver 500 and the operation of the industrial robot 600 are A synchronization adjusting unit that changes at least one of transmission of command values (command values given to each axis) generated according to the motion command 1106 and transmission of commands generated by interpreting the robot program 1108 so as to be synchronized. corresponds to

遅延パラメータ176は、(1)フィールドネットワーク20を介して伝送される通信フレームの伝送遅延、(2)制御装置100の制御周期(モーション命令1106に従って指令値が更新される周期)、(3)サーボドライバ500が指令を受けてサーボモータ550を駆動するまでのむだ時間、(4)制御装置100の処理リソースの大きさ(ロボットプログラム1108の解釈に要する時間)、(5)産業用ロボット600(ロボットコントローラ650)がコマンドを受けて動作を開始するためのむだ時間、などを考慮して決定された遅延時間を含んでいてもよい。 The delay parameter 176 includes (1) a transmission delay of a communication frame transmitted via the field network 20, (2) a control cycle of the control device 100 (a cycle in which the command value is updated according to the motion command 1106), and (3) a servo Dead time until driver 500 receives a command and drives servo motor 550, (4) size of processing resources of control device 100 (time required to interpret robot program 1108), (5) industrial robot 600 (robot It may include a delay time determined by considering the dead time for the controller 650) to receive the command and start the operation, and the like.

遅延パラメータ176に含まれる遅延時間は、制御システム1を設計した段階で算出される理論値であってもよいし、制御システム1の立ち上げ時に計測された実測値であってもよいし、制御システム1の運転中に計測された値に基づいて動的に更新される値であってもよいし、制御システム1の必要な構成について計測された各種情報に基づいて所定の演算式に従って決定される値であってもよい。 The delay time included in the delay parameter 176 may be a theoretical value calculated at the stage of designing the control system 1, or an actual measurement value measured when the control system 1 is started up. It may be a value that is dynamically updated based on a value measured during operation of the system 1, or a value that is determined according to a predetermined arithmetic expression based on various information measured about the necessary configuration of the control system 1. can be any value.

すなわち、本実施の形態に係る制御装置100は、図13に示すような遅延時間の差を吸収するための情報を予め保持あるいは都度計測できるようになっている。同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、制御装置100からのコマンドの送信に要する時間(コマンド送信72に要する時間)を考慮して、同期動作に必要な調整を行ってもよい。また、同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、産業用ロボット600によるコマンドの解釈に要する時間(コマンドを解釈して指令値を生成するのに要する処理時間74)を考慮して、同期動作に必要な調整を行ってもよい。さらに、同期調整部に相当する出力遅延量演算部166および出力遅延量演算部184は、アクチュエータが指令値に従って動作を開始するための応答遅延64、および、アクチュエータが指令値に従って動作を開始するための応答遅延76を考慮して、同期動作に必要な調整を行ってもよい。 In other words, the control device 100 according to the present embodiment can hold information in advance or measure each time to absorb the difference in delay time as shown in FIG. 13 . The output delay amount calculation section 166 and the output delay amount calculation section 184 corresponding to the synchronization adjustment section consider the time required for command transmission from the control device 100 (the time required for command transmission 72), Adjustments may be made. In addition, the output delay amount calculation unit 166 and the output delay amount calculation unit 184, which correspond to the synchronization adjustment unit, measure the time required for the industrial robot 600 to interpret the command (the processing time required to interpret the command and generate the command value). 74) may be taken into account to make necessary adjustments for synchronous operation. Furthermore, an output delay amount calculation unit 166 and an output delay amount calculation unit 184, which correspond to synchronization adjustment units, provide a response delay 64 for the actuator to start operating according to the command value, and a response delay 64 for the actuator to start operating according to the command value. response delay 76 may be taken into account and adjustments necessary for synchronous operation may be made.

制御装置100は、機能構成として、状態値更新部190と、状態値保持部192とをさらに含む。これらの機能モジュールは、状態値の一例であるIOデータの更新処理に向けられる。すなわち、状態値更新部190は、フィールドネットワーク20に介して接続されているセンサあるいはIOユニット900から入力データを周期的に取得するとともに、ユーザプログラム1104の実行によって制御周期毎に算出される指令値(出力データ)をフィールドネットワーク20を介して対応するアクチュエータあるいはIOユニット900へ送信する。このように、状態値更新部190は、所定周期毎にセンサから状態値を収集する状態値取得部に相当する。 Control device 100 further includes a state value updating unit 190 and a state value holding unit 192 as functional configurations. These functional modules are directed to updating IO data, which is an example of state values. That is, the state value updating unit 190 periodically acquires input data from the sensor or the IO unit 900 connected via the field network 20, and the command value calculated for each control cycle by executing the user program 1104. (output data) is transmitted to the corresponding actuator or IO unit 900 via the field network 20 . In this way, the state value updating unit 190 corresponds to a state value acquisition unit that collects state values from sensors at predetermined intervals.

状態値保持部192は、状態値更新部190により更新される入力データおよび指令値(出力データ)を保持する記憶部であり、ユーザプログラム処理部160およびロボットプログラム処理部180からアクセス可能である。すなわち、ユーザプログラム処理部160およびロボットプログラム処理部180は、状態値保持部192にアクセスすることで、処理の実行中に入力データを参照するとともに、算出した指令値(出力データ)を出力できる。 The state value holding unit 192 is a storage unit that holds input data and command values (output data) updated by the state value updating unit 190 and is accessible from the user program processing unit 160 and the robot program processing unit 180 . That is, by accessing the state value holding unit 192, the user program processing unit 160 and the robot program processing unit 180 can refer to the input data and output the calculated command value (output data) during execution of the process.

以下、遅延時間の差を吸収して、アクチュエータを同期動作させるためのいくつかの実装例について説明する。 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 control device 100 waits for transmission of a command value according to the motion command 1106 and synchronizes with the operation of the industrial robot 600 according to the robot program 1108 .

図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 control system 1 according to the present embodiment. Referring to FIG. 15, at time t11, when processing of motion instruction 1106 included in user program 1104 is started, a command value is generated based on motion instruction 1106 (command value generation 60).

一方、同じ時刻t11において、ロボットプログラム1108が解釈されてコマンドが生成される(コマンド生成70)。そして、生成されたコマンドが産業用ロボット600へ送信される(コマンド送信72)。 On the other hand, at the same time t11, the robot program 1108 is interpreted and a command is generated (command generation 70). Then, the generated command is transmitted to the industrial robot 600 (command transmission 72).

産業用ロボット600(ロボットコントローラ650)は、制御装置100からのコマンドを解釈して指令値を生成した上で、動作を開始する。産業用ロボット600が動作を開始するタイミングは時刻t13であるとする。 The industrial robot 600 (robot controller 650) interprets a command from the control device 100 to generate a command value, and then starts operating. Assume that the timing at which the industrial robot 600 starts to operate is time t13.

制御装置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 industrial robot 600, the time required for the industrial robot 600 to generate a command value from the command, the response delay in the industrial robot 600, etc. , the time t13 at which the industrial robot 600 starts to operate is estimated. In addition, the control device 100 determines the start timing of the command value transmission 66 generated based on the motion command 1106 (time t12). Then, control device 100 starts transmitting command values according to motion command 1106 at time t12.

このように、制御装置100がモーション命令1106に従う指令値の送信を遅らせることで、ロボットプログラム1108により制御される産業用ロボット600と同期した動作を実現できる。すなわち、制御装置100の出力遅延量演算部166(図14参照)は、モーション命令1106に従って生成される指令値(各軸に与えられる指令値)の送信を遅延させる。 In this way, the controller 100 delays the transmission of the command value according to the motion command 1106 , thereby realizing synchronized motion with the industrial robot 600 controlled by the robot program 1108 . That is, the output delay amount calculator 166 (see FIG. 14) of the control device 100 delays the transmission of the command value (command value given to each axis) generated according to the motion command 1106 .

図16は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための制御装置100における処理手順を示すフローチャートである。図16に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。 FIG. 16 is a flowchart showing a processing procedure in control device 100 for realizing synchronous operation of actuators in control system 1 according to the present embodiment. Each step shown in FIG. 16 is typically implemented by processor 102 of control device 100 executing system program 1102 .

図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), control device 100 interprets target motion command 1106 to generate a target trajectory ( Along with step S102), the target robot program 1108 is interpreted to generate a command (step S104).

制御装置100は、遅延パラメータ176を参照して、生成された目標軌跡およびコマンドに対応する待機時間を決定する(ステップS106)。すなわち、図15に示す時刻t12までの待機時間が決定される。 Control device 100 refers to delay parameter 176 to determine the waiting time corresponding to the generated target trajectory and command (step S106). That is, the standby time until time t12 shown in FIG. 15 is determined.

制御装置100は、生成したコマンドを産業用ロボット600に順次送信する(ステップS108)。そして、制御装置100は、ステップS106において決定された待機時間が経過したか否かを判断する(ステップS110)。 The control device 100 sequentially transmits the generated commands to the industrial robot 600 (step S108). Then, control device 100 determines whether or not the standby time determined in step S106 has elapsed (step S110).

ステップS106において決定された待機時間が経過していれば(ステップS110においてYES)、制御装置100は、ステップS102において生成した目標軌跡に基づいて指令値(モーション命令1106に従う指令値)を決定し(ステップS112)、決定した指令値を対象のサーボドライバ500へ制御周期毎に送信する(ステップS114)。新たな命令が処理対象になる毎に、図16に示される処理が繰り返し実行される。 If the standby time determined in step S106 has elapsed (YES in step S110), control device 100 determines a command value (a command value according to motion command 1106) based on the target trajectory generated in step S102 ( Step S112), the determined command value is transmitted to the target servo driver 500 for each control cycle (step S114). The processing shown in FIG. 16 is repeatedly executed each time a new instruction is processed.

以上のように、制御装置100がモーション命令1106に従う指令値の送信を待機することで、ロボットプログラム1108に従う産業用ロボット600の動作と同期させることができる。すなわち、制御装置100によって制御される異なる種類のアクチュエータ同士を、より正確に同期動作させることができる。 As described above, the control device 100 waits for transmission of command values according to the motion command 1106 , thereby synchronizing the operation of the industrial robot 600 according to the robot program 1108 . That is, different types of actuators controlled by the control device 100 can be operated in synchronization with each other more accurately.

(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 motion instructions 1106 and commands generated from the robot program 1108 will be described. .

図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 control system 1 according to the present embodiment. Referring to FIG. 17, at time t21, when processing of motion instruction 1106 included in user program 1104 is started, a command value is generated based on motion instruction 1106 (command value generation 60). On the other hand, at the same time t21, the robot program 1108 is interpreted and a command is generated (command generation 70).

制御装置100は、サーボドライバ500での応答遅延64、産業用ロボット600へコマンドを送信するのに要する時間、産業用ロボット600がコマンドから指令値を生成するのに要する時間(処理時間74)、および、産業用ロボット600での応答遅延76などに基づいて、同期動作を開始すべき時刻t24を決定する。そして、制御装置100は、同期動作を開始する時刻t24に応じて決定される処理開始時刻をそれぞれ付加して、生成した所定期間に亘る指令値(指令値群)を対象のサーボドライバ500へ送信するとともに(指令値送信67)、生成したコマンドを対象の産業用ロボット600へ送信する(コマンド送信73)。 The control device 100 determines the response delay 64 in the servo driver 500, the time required to send a command to the industrial robot 600, the time required for the industrial robot 600 to generate a command value from the command (processing time 74), Then, based on the response delay 76 of the industrial robot 600, etc., the time t24 at which the synchronous operation should be started is determined. Then, the control device 100 adds the processing start time determined according to the time t24 at which the synchronous operation is started, and transmits the generated command values (command value group) over the predetermined period to the target servo driver 500. At the same time, (command value transmission 67), the generated command is transmitted to the target industrial robot 600 (command transmission 73).

サーボドライバ500は、制御装置100から指定された処理開始時刻t23が到来すると、受信している指令値群に従ってサーボモータ550を駆動する処理を開始し、産業用ロボット600は、制御装置100から指定された処理開始時刻t22が到来すると、受信しているコマンドに従ってロボット本体610を駆動する処理を開始する。 When the process start time t23 specified by the control device 100 arrives, the servo driver 500 starts the process of driving the servo motor 550 according to the received command value group. When the received processing start time t22 arrives, the processing for driving the robot main body 610 is started according to the received command.

すなわち、サーボドライバ500が処理開始時刻t23から指令値群の処理を開始すると、応答遅延64だけ遅れて、時刻t24からサーボモータ550が駆動される。また、産業用ロボット600が処理開始時刻t22からコマンドの処理を開始すると、コマンドから指令値を生成するのに要する処理時間74、および、応答遅延76だけ遅れて、時刻t24からロボット本体610の動作が開始する。 That is, when the servo driver 500 starts processing the command value group from the processing start time t23, the servo motor 550 is driven from the time t24 with a delay of the response delay 64. FIG. Further, when the industrial robot 600 starts processing the command at the processing start time t22, the operation of the robot body 610 is delayed from the time t24 by the processing time 74 required to generate the command value from the command and the response delay 76. starts.

このように、制御装置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 control device 100 sets the command value (command value given to each axis) generated according to the motion command 1106 to the servo driver 500. The start time t23 (first timing) is added to the transmitted command (command value given to each axis). Further, the output delay amount calculation unit 184 (see FIG. 14) of the control device 100 transmits the processing start time t22 (second timing) at which the industrial robot 600 should start processing the command generated from the robot program 1108. Append to the command to be sent.

以上のような処理開始時刻を指定することで、制御装置100が、モーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、サーボモータ550および産業用ロボット600との間で同期動作を実現できる。 By designating the processing start time as described above, the control device 100 designates the processing start timing for each command value according to the motion command 1106 and the command generated from the robot program 1108, so that the servo Synchronous motion can be achieved between the motor 550 and the industrial robot 600 .

なお、フィールドネットワーク20に接続されているスレーブデバイスの各々は、通信マスタである制御装置100と同期されたカウンタを有しており、この同期されたカウンタに基づいて、制御装置100から指定された処理開始時刻が到来すると、処理を開始できる。 Each of the slave devices connected to the field network 20 has a counter synchronized with the control device 100, which is the communication master. When the processing start time arrives, the processing can be started.

図18は、本実施の形態に係る制御システム1におけるアクチュエータの同期動作を実現するための制御装置100における別の処理手順を示すフローチャートである。図18に示す各ステップは、典型的には、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現される。 FIG. 18 is a flow chart showing another processing procedure in the control device 100 for realizing the synchronous operation of the actuators in the control system 1 according to this embodiment. Each step shown in FIG. 18 is typically implemented by processor 102 of control device 100 executing system program 1102 .

図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), control device 100 interprets target motion command 1106 to generate a target trajectory ( Step S202), a command value for each control cycle is calculated over a predetermined period to generate a group of command values (step S204).

並列的に、制御装置100は、対象のロボットプログラム1108を解釈してコマンドを生成する(ステップS206)
制御装置100は、遅延パラメータ176を参照して、生成された指令値群およびコマンドの処理を開始する処理開始時刻をそれぞれ決定する(ステップS208)。すなわち、図17に示す処理開始時刻t22およびt23が決定される。
In parallel, the control device 100 interprets the target robot program 1108 and generates commands (step S206).
The control device 100 refers to the delay parameter 176 to determine the processing start time for starting the processing of the generated command value group and command (step S208). That is, the processing start times t22 and t23 shown in FIG. 17 are determined.

最終的に、制御装置100は、生成した指令値群に決定された処理開始時刻の情報を付加して、対象のサーボドライバ500へ送信する(ステップS210)。並列的に、制御装置100は、生成したコマンドに決定された処理開始時刻の情報を付加して、対象の産業用ロボット600へ順次送信する(ステップS212)。新たな命令が処理対象になる毎に、図18に示される処理が繰り返し実行される。 Finally, the control device 100 adds the determined processing start time information to the generated command value group, and transmits it to the target servo driver 500 (step S210). In parallel, the control device 100 adds the information of the determined processing start time to the generated commands and sequentially transmits them to the target industrial robot 600 (step S212). The processing shown in FIG. 18 is repeatedly executed each time a new instruction is processed.

対象のサーボドライバ500および産業用ロボット600は、指定された処理開始時刻が到来すると、対象の処理を開始する。 The target servo driver 500 and the industrial robot 600 start the target process when the designated process start time arrives.

以上のように、制御装置100がモーション命令1106に従う指令値、および、ロボットプログラム1108から生成されたコマンドに対して、それぞれ処理開始タイミングを指定することで、制御装置100によって制御される異なる種類のアクチュエータ同士を、より正確に同期動作させることができる。 As described above, the control device 100 designates the processing start timings for the command value according to the motion command 1106 and the command generated from the robot program 1108, respectively. Actuators can be synchronized with each other more accurately.

(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 motion command 1106 and the command generated from the robot program 1108. , and information designating the timing of starting processing may be added to only one of them.

また、上述の図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 motion command 1106 and commands generated from the robot program 1108 has been described. If the response delay or the like is sufficiently small, the same processing start time may be given.

<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 user program 1104, but an environment for presetting targets to be synchronously operated may be provided. A configuration example for presetting targets for synchronous operation will be described below.

図19は、本実施の形態に係る制御システム1のサポート装置200において提供されるユーザインターフェイスの一例を示す模式図である。図19(A)には、同期動作させる対象のアクチュエータを設定するためのユーザインターフェイス画面250の一例を示す。 FIG. 19 is a schematic diagram showing an example of a user interface provided in support device 200 of control system 1 according to the present embodiment. FIG. 19A shows an example of a user interface screen 250 for setting actuators to be synchronized.

ユーザインターフェイス画面250においては、同期動作させる対象のグループを示すオブジェクトあるいは変数を規定できるようになっている。ユーザは、同期動作グループ設定252に任意の文字列を指定できる。同期動作グループ設定252に指定された文字列は、図19(B)に示すユーザプログラム1104の開発環境において、オブジェクトあるいは変数として参照可能になる。 On the user interface screen 250, it is possible to define objects or variables that indicate groups to be synchronized. The user can specify any character string in the synchronous action group setting 252 . A character string specified in the synchronous action group setting 252 can be referred to as an object or variable in the development environment of the user program 1104 shown in FIG. 19B.

ユーザは、グループに属するアクチュエータの数をメンバ数設定欄254に設定するとともに、メンバとなるアクチュエータを示す変数をメンバ設定欄256に設定することができる。これらの内容が設定された後、生成ボタン258が押下されることで、メンバ設定欄256に設定されたアクチュエータからなる同期動作グループの設定が有効化される。この例では、変数「Sync_Gr000」が参照可能になる。 The user can set the number of actuators belonging to the group in the number-of-members setting column 254 and set a variable indicating the member actuators in the member setting column 256 . By pressing the generate button 258 after these contents are set, the setting of the synchronous action group composed of the actuators set in the member setting column 256 is validated. In this example, the variable "Sync_Gr000" becomes referable.

図19(B)には、ユーザプログラムを開発するためのユーザインターフェイス画面260の一例を示す。ユーザは、ユーザインターフェイス画面260において、任意のユーザプログラムを作成できる。図19(B)に示す例では、同期動作の対象となる複数のアクチュエータを同期して動作させるためのファンクションブロック262が規定されている。ファンクションブロック262の入力264に変数「Sync_Gr000」を指定することで、変数「Sync_Gr000」として規定される複数のアクチュエータの間について、上述したような処理が実行される。 FIG. 19B shows an example of a user interface screen 260 for developing a user program. A user can create any user program on the user interface screen 260 . In the example shown in FIG. 19B, a function block 262 is defined for synchronously operating a plurality of actuators targeted for synchronous operation. By designating the variable "Sync_Gr000" to the input 264 of the function block 262, the processing as described above is executed between the actuators defined as the variable "Sync_Gr000".

このように、サポート装置200は、動作を同期させなければならないサーボドライバ500および産業用ロボット600の設定を受け付ける設定受付部に相当する。 In this way, the support device 200 corresponds to a setting reception unit that receives settings for the servo driver 500 and the industrial robot 600 whose operations must be synchronized.

上述したような構成により、ユーザは、異なる種類のアクチュエータを同期動作グループのメンバとして設定した場合であっても、種類の相違などを気にすることなく、容易に同期動作を実現できる。 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 custom robot 540, and an industrial robot 600 perform synchronous operations. At a certain timing, sensing results (input values) indicated by the three sensors 01, 02, and 03 are acquired, and control calculations are executed based on the acquired input values from each sensor. Then, commands are given to the custom robot 540 and the industrial robot 600 based on the execution result of the control calculation. Through the processing described above, the custom robot 540 and the industrial robot 600 start operating in synchronization at a certain timing.

このように、制御装置100(図14に示す状態値取得部に相当する状態値更新部190)は、グループに設定された複数の入力デバイスから同期したタイミングで状態値を取得することができる。 In this way, the control device 100 (the state value update unit 190 corresponding to the state value acquisition unit shown in FIG. 14) can acquire state values from a plurality of input devices set in a group at synchronized timing.

本実施の形態に係る制御システム1は、図20に示すように、センサなどの1または複数の入力デバイスと、複数のアクチュエータとを単一のグループと見なして、より精度の高い同期制御を実現することもできる。 As shown in FIG. 20, the control system 1 according to the present embodiment regards one or more input devices such as sensors and a plurality of actuators as a single group to achieve more accurate synchronous control. You can also

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 support device 200 of control system 1 according to the present embodiment. A user interface screen 260A shown in FIG. 21 defines a function block 262A for synchronously operating one or more input devices to be synchronized and a plurality of actuators. By designating the variable "Sync_Gr000" to the input 264 of the function block 262A, it is defined that a plurality of actuators defined as the variable "Sync_Gr000" are subject to synchronous operation.

さらに、ファンクションブロック262Aの入力265に変数「Input_001」,「Input_002」,「Input_003」を指定することで、対応する入力デバイスが、変数「Sync_Gr000」として規定される複数のアクチュエータと同期されることを規定される。 In addition, specifying variables "Input_001", "Input_002", and "Input_003" to inputs 265 of function block 262A indicates that the corresponding input devices are synchronized with a plurality of actuators defined as variable "Sync_Gr000". Defined.

図21に示すようなユーザインターフェイス画面260Aを用いることで、入力および出力を含めた同期動作を実現できる。 By using a user interface screen 260A as shown in FIG. 21, synchronous operation including input and output can be realized.

さらに、同期動作させる対象の入力デバイスおよびアクチュエータを設定するためのユーザインターフェイス画面250Aを提供してもよい。 Furthermore, a user interface screen 250A for setting the input device and actuator to be synchronized may be provided.

図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 support device 200 of the control system 1 according to the present embodiment. Referring to FIG. 22, user interface screen 250A corresponds to user interface screen 250 shown in FIG. 19(A) in which input devices can be further set. On the user interface screen 250A, the user can set the number of input devices belonging to the group in the number-of-members setting field 255, and can set a variable indicating the input devices to be members in the member setting field 257. FIG. By pressing the generate button 258 after these contents are set, the setting of the synchronous action group composed of the actuators set in the member setting column 256 is validated. In this example, the variable "Sync_Gr000" becomes referable.

すなわち、変数「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 control device 100 integrates and controls various devices including different types of actuators is shown, but multiple control devices 100 cooperate to integrate various devices. may be controlled by That is, a configuration may be adopted in which processing is shared among a plurality of control devices 100 and executed. Such a configuration is not excluded from the technical scope of the present invention.

また、上述の説明においては、単一のフィールドネットワーク20にすべてのデバイスが接続される例を示すが、これに限らず、例えば、制御装置100が複数のフィールドネットワーク20に接続されており、各デバイスはいずれかのフィールドネットワークに接続されていてもよい。このような構成についても、本願発明の技術的範囲から除外されるものではない。 Further, in the above description, an example in which all devices are connected to a single field network 20 is shown, but the present invention is not limited to this. The device may be connected to any field network. Such a configuration is not excluded from the technical scope of the present invention.

さらに、図2には、様々なデバイスがフィールドネットワーク20に接続される例を示すが、すべての種類のデバイスがフィールドネットワーク20に接続されていなくてもよい。 Furthermore, although FIG. 2 shows an example in which various devices are connected to the field network 20, not all types of devices need to be connected to the field network 20. FIG.

<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 arrangement 1, further comprising (166, 184).

[構成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]
Configuration 1, wherein at least one of a safety controller (700) that performs safety control and a visual sensor (800) that performs recognition processing on a captured image and outputs a recognition result is connected to the network. 8. A control system according to any one of claims 1-7.

[構成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 control system 1 according to the present embodiment, one or more motors (or a mechanism composed of one or more motors) and one or more industrial robots are controlled by a single controller. can do. Since a plurality of actuators can be controlled by a single control device in this way, the control details for the plurality of actuators can be specified by a user program executed by the control device. Synchronous operation can sometimes be realized without considering synchronization between actuators.

また、本実施の形態に係る制御システム1によれば、モータおよび産業用ロボットだけではなく、安全コントローラ、視覚センサ、IOユニットなどについても、同一のネットワークに接続でき、制御装置がこれらのデバイスを統合して制御できるので、より複雑な制御をより容易に実現できる。 Further, according to the control system 1 according to the present embodiment, not only motors and industrial robots, but also safety controllers, visual sensors, IO units, etc. can be connected to the same network, and the control device can connect these devices. Since it can be integrated and controlled, more complicated control can be realized more easily.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 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.
前記モータドライバによるモータの駆動と前記ロボットの動作とが同期するように、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する同期調整部をさらに備える、請求項1に記載の制御システム。 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 claim 1, further comprising: 前記同期調整部は、前記指令送信部による前記指令値の送信を遅延させる、請求項2に記載の制御システム。 3. The control system according to claim 2, wherein said synchronization adjusting section delays transmission of said command value by said command transmitting section. 前記同期調整部は、前記指令送信部が送信する前記指令値を前記モータドライバで処理を開始すべき第1のタイミング、および、前記コマンド送信部が送信する前記コマンドを前記ロボットで処理を開始すべき第2のタイミングの少なくとも一方を、送信される指令に付加する、請求項2に記載の制御システム。 The synchronization adjustment unit determines a first timing at which the motor driver should start processing the command value transmitted by the command transmission unit, and a first timing for starting processing of the command transmitted by the command transmission unit by the robot. 3. The control system of claim 2, which appends at least one of the second timings to the transmitted command. 前記同期調整部は、前記コマンド送信部による前記コマンドの送信に要する時間を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、請求項2~4のいずれか1項に記載の制御システム。 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 in consideration of the time required for transmission of the command by the command transmission unit. The control system according to any one of claims 2 to 4, wherein 前記ロボットは、前記コマンドを解釈した結果に応じて動作し、
前記同期調整部は、前記ロボットによる前記コマンドの解釈に要する時間を考慮して、前記指令送信部による前記指令値の送信、および、前記コマンド送信部による前記コマンドの送信の少なくとも一方を変更する、請求項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.
動作を同期させなければならない前記モータドライバおよび前記ロボットの設定を受け付ける設定受付部をさらに備える、請求項2~6のいずれか1項に記載の制御システム。 7. The control system according to any one of claims 2 to 6, further comprising a setting reception unit that receives settings of said motor driver and said robot whose operations should be synchronized. 前記ネットワークには、安全制御を実行する安全コントローラ、および、撮像された画像に対して認識処理を行って認識結果を出力する視覚センサの少なくとも一方が接続される、請求項1~7のいずれか1項に記載の制御システム。 8. The network according to any one of claims 1 to 7, wherein at least one of a safety controller that executes safety control and a visual sensor that performs recognition processing on a captured image and outputs a recognition result is connected to the network. A control system according to claim 1. 制御対象を制御するための制御装置であって、
ネットワークを介して、センサ、モータドライバおよびロボットとの間でデータをやり取りするネットワークインターフェイスと、
所定周期毎に前記センサから状態値を収集する状態値取得部と、
モーション命令に従って所定周期毎に指令値を生成して前記モータドライバへ送信する指令送信部と、
所定のプログラミング言語で記述されたプログラムを解釈してコマンドを生成して前記ロボットへ順次送信するコマンド送信部とを備える、制御装置。
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.
JP2019212705A 2019-11-25 2019-11-25 Control system, control device and control method Active JP7294085B2 (en)

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 (3)

* Cited by examiner, † Cited by third party
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

Citations (1)

* 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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* 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

Also Published As

Publication number Publication date
JP2021086232A (en) 2021-06-03
WO2021106467A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
US10761515B2 (en) Control system for controlling control object and control device for linking control applications in control system
JP7294085B2 (en) Control system, control device and control method
EP3477405B1 (en) Control device
JP6903275B2 (en) Control device and control method
US10908577B2 (en) Control device
JP6919404B2 (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