Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7600716B2 - Control device, program execution method, and program - Google Patents
[go: Go Back, main page]

JP7600716B2 - Control device, program execution method, and program - Google Patents

Control device, program execution method, and program Download PDF

Info

Publication number
JP7600716B2
JP7600716B2 JP2021011174A JP2021011174A JP7600716B2 JP 7600716 B2 JP7600716 B2 JP 7600716B2 JP 2021011174 A JP2021011174 A JP 2021011174A JP 2021011174 A JP2021011174 A JP 2021011174A JP 7600716 B2 JP7600716 B2 JP 7600716B2
Authority
JP
Japan
Prior art keywords
execution
program
motion
control device
user program
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
JP2021011174A
Other languages
Japanese (ja)
Other versions
JP2022114752A (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 JP2021011174A priority Critical patent/JP7600716B2/en
Priority to PCT/JP2021/009576 priority patent/WO2022162958A1/en
Publication of JP2022114752A publication Critical patent/JP2022114752A/en
Application granted granted Critical
Publication of JP7600716B2 publication Critical patent/JP7600716B2/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Programmable Controllers (AREA)
  • Manipulator (AREA)

Description

本発明は、制御装置、プログラム実行方法およびプログラムに関する。 The present invention relates to a control device, a program execution method, and a program.

様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。近年のICT(Information and Communication Technology)の進歩に伴って、制御装置は、従来のシーケンス制御およびモーション制御だけではなく、ロボットや工作機械などを制御することも可能になっている。 Factory automation (FA) technology using control devices such as programmable controllers (PLCs) is becoming widespread in various production sites. With recent advances in information and communication technology (ICT), control devices are now capable of controlling not only conventional sequence control and motion control, but also robots, machine tools, and the like.

例えば、特開2019-036043号公報(特許文献1)は、実行形式の異なる複数種類のプログラムに従う制御演算を単一の制御装置で実現する構成を開示する。 For example, JP 2019-036043 A (Patent Document 1) discloses a configuration in which a single control device realizes control calculations according to multiple types of programs with different execution formats.

特開2019-036043号公報JP 2019-036043 A

例えば、ベルトコンベア上を流れるワークをロボットでピックして、所定位置にプレイスするようなアプリケーションを想定すると、ロボットは、ベルトコンベアの速度に応じて移動させる必要がある。 For example, in an application where a robot picks up a workpiece moving along a conveyor belt and places it in a designated position, the robot needs to move according to the speed of the conveyor belt.

本発明の一つの目的は、モーション処理とロボット制御とを連携した制御をより高精度に行うことができる技術を提供することを一つの目的としている。 One objective of the present invention is to provide a technology that can perform coordinated control of motion processing and robot control with higher accuracy.

本発明のある局面に従えば、制御対象を制御するための制御装置が提供される。制御装置は、シーケンス命令を含む第1ユーザプログラムを実行する第1プログラム実行部と、モーション処理部と、ロボットを制御するための第2ユーザプログラムを実行する第2プログラム実行部とを含む。第1ユーザプログラムの実行、モーション処理部の処理の実行、第2ユーザプログラムの実行の順番で、予め定められた制御周期毎に繰り返されるように構成されている。同一の制御周期内において、モーション処理部の処理の実行によって計算された値を、後続の第2ユーザプログラムの実行において参照できるように構成されている。 According to one aspect of the present invention, there is provided a control device for controlling a control target. The control device includes a first program execution unit that executes a first user program including sequence instructions, a motion processing unit, and a second program execution unit that executes a second user program for controlling a robot. The control device is configured to repeat the execution of the first user program, the processing of the motion processing unit, and the execution of the second user program in this order for every predetermined control period. It is configured so that within the same control period, a value calculated by the execution of the processing of the motion processing unit can be referenced in the subsequent execution of the second user program.

この構成によれば、同一の制御周期内において、モーション処理部の処理の実行によって計算された値を、後続のアプリケーションプログラムの実行において参照できるので、モーション処理部の処理に関する値を参照して、第2ユーザプログラムに従って制御対象を制御する場合に、データ更新の時間的ずれや揺らぎを低減できる。これによって、より高精度な制御を実現できる。 With this configuration, the values calculated by the execution of the motion processing unit's processing can be referenced in the execution of a subsequent application program within the same control cycle, so that when the control target is controlled according to the second user program by referencing values related to the motion processing unit's processing, time lags and fluctuations in data updates can be reduced. This allows for more precise control.

モーション処理部の処理の実行は、予め定められた設定に従って、第2ユーザプログラムの実行において参照される対象となる値を保持する処理を含んでいてもよい。この構成によれば、第2ユーザプログラムに実行において参照される値を直接渡すことができる。 The execution of the processing by the motion processing unit may include a process of retaining a value to be referenced in the execution of the second user program according to a predetermined setting. With this configuration, the value to be referenced in the execution can be directly passed to the second user program.

第2ユーザプログラムの実行は、先に実行されたモーション処理部の処理の実行において保持された値を参照する処理を含んでいてもよい。この構成によれば、第2ユーザプログラムに実行において、必要な値を参照することができる。 The execution of the second user program may include a process of referencing values that were retained during a previously executed process of the motion processing unit. With this configuration, it is possible to refer to necessary values during execution of the second user program.

モーション処理部の処理の実行は、予め定められた設定に従って、第2ユーザプログラムの実行において参照される対象となる値を共有領域に格納する処理を含んでいてもよい。この構成によれば、共有領域を介して、第2ユーザプログラムに実行において参照される値を渡すことができる。 The execution of the processing by the motion processing unit may include a process of storing a value to be referenced during execution of the second user program in a shared area according to a predetermined setting. With this configuration, the value to be referenced during execution can be passed to the second user program via the shared area.

第2ユーザプログラムの実行は、先に実行されたモーション処理部の処理の実行において共有領域に格納された値を参照する処理を含んでいてもよい。この構成によれば、第2ユーザプログラムに実行において、共有領域から必要な値を参照することができる。 The execution of the second user program may include a process of referencing values stored in the shared area during the execution of a previously executed process of the motion processing unit. With this configuration, necessary values can be referenced from the shared area during the execution of the second user program.

予め定められた設定は、モーション処理部の処理に関して定義された変数と、第2ユーザプログラムにおいて定義された変数とを対応付ける情報を含んでいてもよい。この構成によれば、モーション処理部の処理において参照される値のうち、第2ユーザプログラムで必要となる値を予め設定できる。 The predetermined settings may include information that associates variables defined for the processing of the motion processing unit with variables defined in the second user program. With this configuration, it is possible to set in advance values that are required in the second user program among values referenced in the processing of the motion processing unit.

モーション処理部の処理は、対象のデバイスに対する指令値を計算する処理とを含んでいてもよい。この構成によれば、第2ユーザプログラムにおいて、モーション処理部の処理の実行により計算される指令値を参照できる。 The processing of the motion processing unit may include a process of calculating a command value for the target device. With this configuration, the command value calculated by executing the processing of the motion processing unit can be referenced in the second user program.

第1ユーザプログラムの実行前に、対象のデバイスから現在値を取得する処理が実行されてもよい。この構成によれば、処理の実行前に、今回の制御周期において必要な情報を取得できる。 Before the first user program is executed, a process may be executed to obtain a current value from the target device. With this configuration, the information required for the current control cycle can be obtained before the process is executed.

本発明の別の局面に従えば、制御対象を制御するための制御装置におけるプログラム実行方法が提供される。プログラム実行方法は、予め定められた制御周期毎に、シーケンス命令を含む第1ユーザプログラムを実行するステップと、第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを含む。第2ユーザプログラムを実行するステップは、同一の制御周期内において、モーション処理の実行によって計算された値を参照するステップを含む。 According to another aspect of the present invention, a program execution method in a control device for controlling a control target is provided. The program execution method includes repeating the steps of executing a first user program including sequence instructions for each predetermined control period, executing a motion process following the execution of the first user program, and executing a second user program following the execution of the motion process. The step of executing the second user program includes a step of referencing a value calculated by the execution of the motion process within the same control period.

本発明のさらに別の局面に従えば、制御対象を制御するための制御装置に向けられたプログラムが提供される。プログラムは、制御装置に、予め定められた制御周期毎に、シーケンス命令を含む第1ユーザプログラムを実行するステップと、第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを実行させる。第2ユーザプログラムを実行するステップは、同一の制御周期内において、モーション処理の実行によって計算された値を参照するステップを含む。 According to yet another aspect of the present invention, a program is provided for a control device for controlling a control target. The program causes the control device to execute, for each predetermined control period, a step of executing a first user program including sequence instructions, a step of executing a motion process following the execution of the first user program, and a step of executing a second user program following the execution of the motion process, repeating the steps. The step of executing the second user program includes a step of referencing a value calculated by the execution of the motion process within the same control period.

本発明によれば、モーション処理とロボット制御とを連携した制御をより高精度に行うことができる。 The present invention makes it possible to perform coordinated control between motion processing and robot control with greater precision.

本実施の形態に係る制御システムのシステム構成例を示す模式図である。1 is a schematic diagram showing an example of a system configuration of a control system according to an embodiment of the present invention; 本実施の形態に係る制御装置の適用例を示す図である。1 is a diagram illustrating an application example of a control device according to an embodiment of the present invention. 本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。2 is a schematic diagram illustrating an example of a hardware configuration of a control device that constitutes the control system according to the present embodiment. FIG. 本実施の形態に係る制御システムを構成するロボットコントローラのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing an example of a hardware configuration of a robot controller that constitutes the control system according to the present embodiment. 本実施の形態に係る制御システムを構成するサーボドライバのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing an example of a hardware configuration of a servo driver that constitutes the control system according to the present embodiment. 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a support device that constitutes the control system according to the present embodiment. 本実施の形態に係る制御装置におけるプログラム実行環境に関する構成を示す模式図である。FIG. 2 is a schematic diagram showing a configuration related to a program execution environment in the control device according to the present embodiment. 本実施の形態に係る制御装置におけるプログラムの実行周期を示す模式図である。FIG. 4 is a schematic diagram showing a program execution period in the control device according to the present embodiment. 本実施の形態に係る制御装置においてモーション処理部の処理結果をアプリケーションプログラム実行部の実行に反映する方法の一例を示す模式図である。11 is a schematic diagram showing an example of a method for reflecting the processing results of a motion processing unit in the execution of an application program execution unit in the control device according to the present embodiment. FIG. 本実施の形態に係る制御装置においてモーション処理部132の処理結果をアプリケーションプログラム実行部の実行に反映する方法の別の一例を示す模式図である。11 is a schematic diagram showing another example of a method for reflecting the processing results of the motion processing unit 132 in the execution of the application program execution unit in the control device according to the present embodiment. FIG. 本実施の形態に係るサポート装置が提供するユーザインターフェイス画面の一例を示す模式図である。4 is a schematic diagram showing an example of a user interface screen provided by the support device according to the present embodiment; FIG. 本実施の形態に係るサポート装置が提供するユーザインターフェイス画面の別の一例を示す模式図である。13 is a schematic diagram showing another example of a user interface screen provided by the support device according to the present embodiment. FIG. 本実施の形態に係るサポート装置が提供するユーザインターフェイス画面のさらに別の一例を示す模式図である。13 is a schematic diagram showing yet another example of a user interface screen provided by the support device according to the present embodiment. FIG. 本実施の形態に係る制御装置が実行するアプリケーションプログラム160の一例を示す模式図である。2 is a schematic diagram showing an example of an application program 160 executed by the control device according to the present embodiment. FIG.

本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 The embodiment of the present invention will be described in detail with reference to the drawings. Note that the same or equivalent parts in the drawings will be given the same reference numerals and their description will not be repeated.

<A.適用例>
まず、本実施の形態に係る制御システム1のシステム構成例について説明する。
<A. Application Examples>
First, a system configuration example of a control system 1 according to the present embodiment will be described.

図1は、本実施の形態に係る制御システム1のシステム構成例を示す模式図である。図1には、ロボット200がコンベア30上を流れるワーク2をピックして、所定位置にプレイスする構成例を示す。ロボット200は、コンベア30と実質的に同じ速度で移動した状態でワーク2をピックする。そのため、ロボット200の目標挙動は、コンベア30の移動速度に応じて計算される。 FIG. 1 is a schematic diagram showing an example of the system configuration of a control system 1 according to the present embodiment. FIG. 1 shows an example of a configuration in which a robot 200 picks up a workpiece 2 moving on a conveyor 30 and places it at a predetermined position. The robot 200 picks up the workpiece 2 while moving at substantially the same speed as the conveyor 30. Therefore, the target behavior of the robot 200 is calculated according to the moving speed of the conveyor 30.

図1を参照して、制御システム1は、制御対象を制御するための制御装置100と、ロボットコントローラ250と、サーボドライバ350と、リモートIO装置500とを含む。これらの装置は、フィールドネットワーク10を介して、データ交換可能に接続される。 Referring to FIG. 1, the control system 1 includes a control device 100 for controlling a control target, a robot controller 250, a servo driver 350, and a remote IO device 500. These devices are connected via a field network 10 so as to be able to exchange data.

制御装置100は、フィールドネットワーク10に接続されたデバイスとの間で周期的にデータをやり取りして、後述するような処理を実行する。制御装置100は、典型的には、PLC(プログラマブルロジックコントローラ)により実現されてもよい。 The control device 100 periodically exchanges data with devices connected to the field network 10 and executes the processes described below. The control device 100 may typically be realized by a PLC (programmable logic controller).

ロボットコントローラ250は、ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、ロボット200を駆動するための指令値を出力するとともに、ロボット200の状態情報を取得して制御装置100へ出力する。 The robot controller 250 is responsible for controlling the robot 200. More specifically, the robot controller 250 functions as an interface with the robot 200, and outputs command values for driving the robot 200 according to commands from the control device 100, and also acquires status information of the robot 200 and outputs it to the control device 100.

ロボット200は、例えば、垂直多関節ロボット、水平多関節(スカラ)ロボット、パラレルリンクロボット、直交ロボットなどの任意のロボットを採用できる。 The robot 200 can be any type of robot, such as a vertical multi-joint robot, a horizontal multi-joint (SCARA) robot, a parallel link robot, or a Cartesian robot.

サーボドライバ350は、コンベア30を駆動するサーボモータ300の制御を担当するとともに、コンベア30と機械的に連結されたエンコーダ310からのエンコーダパルスを受信する。より具体的には、サーボドライバ350は、制御装置100からの指令に従って、サーボモータ300を駆動するとともに、エンコーダ310からのエンコーダパルスをカウントして制御装置100へ出力する。サーボドライバ350は、エンコーダ310からのパルスを受信したパルス数をカウントする。サーボドライバ350のカウント数の変化(単位時間あたりのインクリメント/デクリメント数)から、コンベア30の移動速度を計算できる。 The servo driver 350 is responsible for controlling the servo motor 300 that drives the conveyor 30, and receives encoder pulses from the encoder 310 that is mechanically connected to the conveyor 30. More specifically, the servo driver 350 drives the servo motor 300 in accordance with commands from the control device 100, and counts and outputs encoder pulses from the encoder 310 to the control device 100. The servo driver 350 counts the number of pulses received from the encoder 310. The movement speed of the conveyor 30 can be calculated from the change in the count number of the servo driver 350 (the number of increments/decrements per unit time).

フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。プロトコルとしてEtherCATを採用した場合には、制御装置100とフィールドネットワーク10に接続されたデバイスとの間で、例えば、数百μ秒~数m秒の定周期でデータを更新できる。 For the field network 10, EtherCAT (registered trademark) or EtherNet/IP, which are protocols for industrial networks, can be used. When EtherCAT is used as the protocol, data can be updated between the control device 100 and devices connected to the field network 10 at regular intervals of, for example, several hundred microseconds to several milliseconds.

制御システム1は、コンベア30を視野範囲に含むカメラ400に接続された画像処理装置450と、表示装置700と、サーバ装置800とをさらに含む。これらの装置は、上位ネットワーク20を介して、制御装置100とデータ交換可能に接続される。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。 The control system 1 further includes an image processing device 450 connected to a camera 400 that includes the conveyor 30 in its field of view, a display device 700, and a server device 800. These devices are connected to the control device 100 via a higher-level network 20 so as to be able to exchange data. The higher-level network 20 can use protocols such as EtherNet/IP, which is a protocol for industrial networks.

画像処理装置450は、カメラ400により撮像された画像に含まれるワーク2の位置を認識し、認識結果を制御装置100などへ出力する。カメラ400は、リモートIO装置500からの撮像トリガを受け付けると撮像を行う。 The image processing device 450 recognizes the position of the workpiece 2 contained in the image captured by the camera 400, and outputs the recognition result to the control device 100, etc. The camera 400 captures an image when it receives an imaging trigger from the remote IO device 500.

制御装置100には、制御装置100で実行されるユーザプログラム(後述する、IECプログラム150およびアプリケーションプログラム160)のインストールや各種設定を行うためのサポート装置600が接続されてもよい。 A support device 600 may be connected to the control device 100 for installing user programs (the IEC program 150 and application program 160 described below) executed by the control device 100 and for performing various settings.

図2は、本実施の形態に係る制御装置100の適用例を示す図である。図2を参照して、制御装置100では、IECプログラム実行部130、モーション処理部132、アプリケーションプログラム実行部134の順で処理を実行する。但し、IECプログラム実行部130の処理に先だって、モーション処理部132およびアプリケーションプログラム実行部134は、今回の制御周期T1で利用する入力データを取得する処理とを含む。 Fig. 2 is a diagram showing an application example of the control device 100 according to this embodiment. Referring to Fig. 2, in the control device 100, processing is executed in the order of the IEC program execution unit 130, the motion processing unit 132, and the application program execution unit 134. However, prior to the processing of the IEC program execution unit 130, the motion processing unit 132 and the application program execution unit 134 include processing for acquiring input data to be used in the current control cycle T1.

より具体的には、モーション処理部132は、入力処理(IN)として、フィードバック値(現在値)を取得する。図示していないが、アプリケーションプログラム実行部134についても、入力処理(IN)として、必要な入力データを取得する。 More specifically, the motion processing unit 132 acquires a feedback value (current value) as an input process (IN). Although not shown, the application program execution unit 134 also acquires necessary input data as an input process (IN).

IECプログラム実行部130の実行後に引き続いて、モーション処理部132は、例えば、モーション命令などを実行して、必要な指令値を計算する。 Following execution of the IEC program execution unit 130, the motion processing unit 132 executes, for example, motion commands and calculates the required command values.

本実施の形態に係る制御装置100においては、モーション処理部132の処理の実行後に、アプリケーションプログラム実行部134が処理を実行するため、モーション処理部132が取得したフィードバック値、および、モーション処理部132が計算した指令値をアプリケーションプログラム実行部134の処理の実行時に参照できる。 In the control device 100 according to this embodiment, the application program execution unit 134 executes processing after the motion processing unit 132 executes processing, so the feedback value acquired by the motion processing unit 132 and the command value calculated by the motion processing unit 132 can be referenced when the application program execution unit 134 executes processing.

このようなモーション処理部132の実行によって取得あるいは計算される値を参照することで、アプリケーションプログラム160において、より精度の高い制御を実現できる。 By referencing values obtained or calculated by executing the motion processing unit 132 in this manner, more precise control can be achieved in the application program 160.

<B.ハードウェア構成例>
次に、図1に示す制御システム1を構成する主要装置のハードウェア構成例について説明する。
<B. Hardware Configuration Example>
Next, an example of the hardware configuration of the main devices constituting the control system 1 shown in FIG. 1 will be described.

(b1:制御装置100)
図3は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
(b1: control device 100)
Fig. 3 is a schematic diagram showing an example of a hardware configuration of a control device 100 constituting the control system 1 according to the present embodiment. Referring to Fig. 3, the control device 100 includes a processor 102, a main memory 104, a storage 110, a memory card interface 112, a host network controller 106, a field network controller 108, a local bus controller 116, and a USB controller 120 providing a USB (Universal Serial Bus) interface. These components are connected via a processor bus 118.

プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。 The processor 102 corresponds to a calculation processing unit that executes control calculations, and is composed of a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit), etc. Specifically, the processor 102 reads out a program stored in the storage 110, expands it in the main memory 104, and executes it to realize control calculations for a control target.

メインメモリ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 dynamic random access memory (DRAM) or a static random access memory (SRAM). The storage 110 is composed of a non-volatile storage device such as a solid state drive (SSD) or a hard disk drive (HDD).

ストレージ110には、基本的な機能を実現するためのシステムプログラム111、および、制御対象に応じて作成されたIECプログラム150およびアプリケーションプログラム160などが格納される。 The storage 110 stores a system program 111 for implementing basic functions, as well as an IEC program 150 and an application program 160 created according to the object to be controlled.

IECプログラム150は、第1ユーザプログラムに相当し、制御システム1におけるロボット200の制御以外の主たる制御を実現するための命令を含む。IECプログラム150は、典型的には、シーケンス命令およびモーション命令を含み得る。IECプログラム150は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよう。但し、IECプログラム150は、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを含んでいてもよい。 The IEC program 150 corresponds to the first user program, and includes instructions for implementing the main controls other than the control of the robot 200 in the control system 1. The IEC program 150 may typically include sequence instructions and motion instructions. The IEC program 150 may be written in any of the languages defined in IEC 61131-3 established by the International Electrotechnical Commission (IEC). However, the IEC program 150 may include a program written in a manufacturer-specific language other than the language defined in IEC 61131-3.

アプリケーションプログラム160は、第2ユーザプログラムに相当し、ロボット200を制御するための命令を含む。アプリケーションプログラム160は、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述された命令を含んでいてもよい。 The application program 160 corresponds to a second user program and includes instructions for controlling the robot 200. The application program 160 may include instructions written in a specific programming language (e.g., a programming language for robot control such as V+ language or a programming language related to NC control such as G-code).

メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。 The memory card interface 112 accepts a memory card 114, which is an example of a removable storage medium. The memory card interface 112 is capable of reading and writing any data to the memory card 114.

上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図1に示される表示装置700およびサーバ装置800など)との間でデータをやり取りする。 The upper network controller 106 exchanges data with any information processing device (such as the display device 700 and server device 800 shown in FIG. 1) via the upper network 20.

フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。図1に示すシステム構成例において、フィールドネットワークコントローラ108は、フィールドネットワーク10の通信マスタとして機能してもよい。 The field network controller 108 exchanges data with each device via the field network 10. In the example system configuration shown in FIG. 1, the field network controller 108 may function as a communication master for the field network 10.

ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット124との間でデータをやり取りする。機能ユニット124は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニットなどからなる。 The local bus controller 116 exchanges data with any functional unit 124 included in the control device 100 via the local bus 122. The functional unit 124 may be, for example, an analog I/O unit responsible for input and/or output of analog signals, a digital I/O unit responsible for input and/or output of digital signals, etc.

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

(b2:ロボットコントローラ250)
図4は、本実施の形態に係る制御システム1を構成するロボットコントローラ250のハードウェア構成例を示す模式図である。図4を参照して、ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。
(b2: robot controller 250)
4 is a schematic diagram showing an example of a hardware configuration of a robot controller 250 constituting the control system 1 according to the present embodiment. Referring to FIG. 4, the robot controller 250 includes a field network controller 252 and a control processing circuit 260.

フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。すなわち、フィールドネットワークコントローラ252は、制御装置100とフィールドネットワーク10を介して接続するためのインターフェイスに相当する。 The field network controller 252 mainly exchanges data with the control device 100 via the field network 10. In other words, the field network controller 252 corresponds to an interface for connecting the control device 100 via the field network 10.

制御処理回路260は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ266と、インターフェイス回路270とを含む。 The control processing circuit 260 executes the calculations required to drive the robot 200. As an example, the control processing circuit 260 includes a processor 262, a main memory 264, a storage 266, and an interface circuit 270.

プロセッサ262は、ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ266は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The processor 262 executes control calculations to drive the robot 200. The main memory 264 is composed of, for example, a volatile storage device such as a DRAM or SRAM. The storage 266 is composed of, for example, a non-volatile storage device such as an SSD or HDD.

ストレージ266には、ロボット200を駆動するための制御を実現するためのシステムプログラム268が格納される。システムプログラム268は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。 Storage 266 stores a system program 268 for implementing control for driving robot 200. System program 268 includes instructions for executing control calculations related to the operation of robot 200, and instructions related to the interface with robot 200.

インターフェイス回路270は、ロボット200との間でデータをやり取りする。
(b3:サーボドライバ350)
図5は、本実施の形態に係る制御システム1を構成するサーボドライバ350のハードウェア構成例を示す模式図である。図5を参照して、サーボドライバ350は、フィールドネットワークコントローラ352と、制御処理回路360と、ドライブ回路370と、カウンタ回路372とを含む。
The interface circuit 270 exchanges data with the robot 200 .
(b3: servo driver 350)
5 is a schematic diagram showing an example of a hardware configuration of a servo driver 350 constituting the control system 1 according to the present embodiment. Referring to FIG. 5, the servo driver 350 includes a field network controller 352, a control processing circuit 360, a drive circuit 370, and a counter circuit 372.

フィールドネットワークコントローラ352は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。 The field network controller 352 mainly exchanges data with the control device 100 via the field network 10.

制御処理回路360は、サーボモータ300の制御に必要な演算処理を実行する。一例として、制御処理回路360は、プロセッサ362と、メインメモリ364と、ストレージ366とを含む。 The control processing circuit 360 executes the calculations required to control the servo motor 300. As an example, the control processing circuit 360 includes a processor 362, a main memory 364, and a storage 366.

プロセッサ362は、サーボモータ300に係る制御演算を実行する。メインメモリ364は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ366は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The processor 362 executes control calculations related to the servo motor 300. The main memory 364 is composed of, for example, a volatile storage device such as a DRAM or SRAM. The storage 366 is composed of, for example, a non-volatile storage device such as an SSD or HDD.

ストレージ366には、サーボモータ300の駆動制御を実現するためのシステムプログラム368が格納される。システムプログラム368は、サーボモータ300の動作に係る制御演算を実行する命令、および、サーボモータ300との間のインターフェイスに係る命令を含む。 Storage 366 stores a system program 368 for implementing drive control of servo motor 300. System program 368 includes instructions for executing control calculations related to the operation of servo motor 300, and instructions related to the interface with servo motor 300.

ドライブ回路370は、コンバータ回路およびインバータ回路などを含み、制御処理回路360により計算された指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ300へ供給する。 The drive circuit 370 includes a converter circuit and an inverter circuit, and generates power of the specified voltage, current, and phase according to the commands calculated by the control processing circuit 360, and supplies it to the servo motor 300.

カウンタ回路372は、エンコーダ310からのパルスを受信するA/D回路およびレジスタなどを含む。 The counter circuit 372 includes an A/D circuit and a register that receive pulses from the encoder 310.

(b4:画像処理装置450)
本実施の形態に係る制御システム1を構成する画像処理装置450は、一例として、汎用パソコンを用いて実現されてもよい。画像処理装置450の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b4: Image processing device 450)
The image processing device 450 constituting the control system 1 according to the present embodiment may be realized by using a general-purpose personal computer, for example. A basic hardware configuration example of the image processing device 450 is well known, so a detailed description will not be given here.

(b5:リモートIO装置500)
本実施の形態に係る制御システム1を構成するリモートIO装置500は、図5に示すサーボドライバ350と同様に、フィールドネットワークコントローラおよび制御処理回路を含むとともに、制御対象からの信号を取得し、および/または、制御対象へ信号を出力するユニットを含む。リモートIO装置500は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニットなどが装着されてもよい。
(b5: remote IO device 500)
The remote IO device 500 constituting the control system 1 according to the present embodiment includes a field network controller and a control processing circuit, as well as a unit for acquiring a signal from a control target and/or outputting a signal to the control target, similar to the servo driver 350 shown in Fig. 5. The remote IO device 500 may be equipped with, for example, an analog I/O unit responsible for inputting and/or outputting analog signals, a digital I/O unit responsible for inputting and/or outputting digital signals, or the like.

(b6:サポート装置600)
本実施の形態に係る制御システム1を構成するサポート装置600は、一例として、汎用パソコンを用いて実現されてもよい。
(b6: Support device 600)
The support device 600 constituting the control system 1 according to the present embodiment may be realized, for example, by using a general-purpose personal computer.

図6は、本実施の形態に係る制御システム1を構成するサポート装置600のハードウェア構成例を示す模式図である。図6を参照して、サポート装置600は、CPUやMPUなどのプロセッサ602と、メインメモリ604と、入力部606と、表示部608と、ストレージ610と、ネットワークコントローラ616と、USBコントローラ618と、光学ドライブ620とを含む。これらのコンポーネントはバス624を介して接続される。 FIG. 6 is a schematic diagram showing an example of the hardware configuration of a support device 600 constituting the control system 1 according to the present embodiment. Referring to FIG. 6, the support device 600 includes a processor 602 such as a CPU or MPU, a main memory 604, an input unit 606, a display unit 608, storage 610, a network controller 616, a USB controller 618, and an optical drive 620. These components are connected via a bus 624.

プロセッサ602は、ストレージ610に格納された各種プログラムを読み出して、メインメモリ604に展開して実行することで、制御装置100で実行されるユーザプログラム(IECプログラム150およびアプリケーションプログラム160)の開発などの処理を提供する。 The processor 602 reads various programs stored in the storage 610, expands them in the main memory 604, and executes them to provide processing such as the development of user programs (IEC program 150 and application program 160) to be executed by the control device 100.

ストレージ610は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。ストレージ610には、典型的には、OS612と、制御装置100において実行されるユーザプログラムの作成、作成したユーザプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム614とが格納される。ストレージ610には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。 Storage 610 is composed of, for example, a non-volatile storage device such as an SSD or HDD. Storage 610 typically stores an OS 612 and a development program 614 for creating user programs to be executed in the control device 100, debugging the created user programs, defining the system configuration, setting various parameters, and the like. Necessary programs other than the programs shown in FIG. 6 may also be stored in storage 610.

入力部606は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部608は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ602からの処理結果などを出力する。 The input unit 606 is made up of a keyboard, mouse, etc., and accepts user operations. The display unit 608 is made up of a display, various indicators, a printer, etc., and outputs processing results from the processor 602, etc.

ネットワークコントローラ616は、任意のネットワークを介した他の装置との間のデータのやり取りを制御する。USBコントローラ618は、USB接続を介して制御装置100との間のデータのやり取りを制御する。 The network controller 616 controls data exchange with other devices via any network. The USB controller 618 controls data exchange with the control device 100 via a USB connection.

サポート装置600は、光学ドライブ620を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体622(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ610などにインストールされる。 The support device 600 has an optical drive 620, and the program stored in the recording medium 622 (e.g., an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores a computer-readable program is read and installed in the storage 610, etc.

サポート装置600で実行される各種プログラムは、コンピュータ読取可能な記録媒体622を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置600が提供する機能は、OS612が提供するモジュールの一部を利用する形で実現される場合もある。 The various programs executed by the support device 600 may be installed via a computer-readable recording medium 622, or may be installed by downloading from a server device on a network. In addition, the functions provided by the support device 600 according to this embodiment may be realized by using some of the modules provided by the OS 612.

(b7:表示装置700)
本実施の形態に係る制御システム1を構成する表示装置700は、一例として、汎用パソコンを用いて実現されてもよい。表示装置700の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b7: display device 700)
The display device 700 constituting the control system 1 according to the present embodiment may be realized, for example, by using a general-purpose personal computer. A basic hardware configuration example of the display device 700 is well known, so A detailed explanation will not be given here.

(b8:サーバ装置800)
本実施の形態に係る制御システム1を構成するサーバ装置800は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置800の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b8: server device 800)
The server device 800 constituting the control system 1 according to the present embodiment may be realized by using a general-purpose personal computer, for example. A basic hardware configuration example of the server device 800 is well known, so a detailed description will not be given here.

(b9:その他の形態)
図3~図6には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(b9: Other forms)
Although Figures 3 to 6 show configuration examples in which required functions are provided by one or more processors executing programs, some or all of these provided functions may be implemented using dedicated hardware circuits (e.g., an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)).

<C.IECプログラムおよびアプリケーションプログラムの実行>
次に、本実施の形態に係る制御装置100におけるIECプログラム150およびアプリケーションプログラム160の実行について説明する。
C. Execution of IEC Programs and Application Programs
Next, the execution of the IEC program 150 and the application program 160 in the control device 100 according to the present embodiment will be described.

図7は、本実施の形態に係る制御装置100におけるプログラム実行環境に関する構成を示す模式図である。図7を参照して、制御装置100は、IECプログラム実行部130と、アプリケーションプログラム実行部134と、データ管理部142とを含む。 Figure 7 is a schematic diagram showing the configuration related to the program execution environment in the control device 100 according to this embodiment. With reference to Figure 7, the control device 100 includes an IEC program execution unit 130, an application program execution unit 134, and a data management unit 142.

IECプログラム実行部130は、シーケンス命令を含むIECプログラム150(第1ユーザプログラム)を周期的に実行する第1プログラム実行部に相当する。IECプログラム実行部130は、モーション処理部132を有しており、モーション設定152に従って、IECプログラム150に含まれるモーション命令などを実行する。 The IEC program execution unit 130 corresponds to a first program execution unit that periodically executes an IEC program 150 (first user program) that includes sequence commands. The IEC program execution unit 130 has a motion processing unit 132, and executes motion commands and the like included in the IEC program 150 according to the motion settings 152.

アプリケーションプログラム実行部134は、ロボット200を制御するためのアプリケーションプログラム160(第2ユーザプログラム)を実行する第2プログラム実行部に相当する。アプリケーションプログラム実行部134は、参照変数設定162に従って、アプリケーションプログラム160を実行する。アプリケーションプログラム実行部134は、インタプリタ136と、キャッシュ138と、コマンド送信部140とを含む。 The application program execution unit 134 corresponds to a second program execution unit that executes an application program 160 (second user program) for controlling the robot 200. The application program execution unit 134 executes the application program 160 according to the reference variable settings 162. The application program execution unit 134 includes an interpreter 136, a cache 138, and a command transmission unit 140.

インタプリタ136は、アプリケーションプログラム160を逐次解釈して中間コードを生成する。生成された中間コードは、キャッシュ138にキューイング(エンキュー)される。コマンド送信部140は、キャッシュ138にキューイングされた中間コードを都度参照して指令を対象のロボット200に送信する。 The interpreter 136 sequentially interprets the application program 160 to generate intermediate code. The generated intermediate code is queued (enqueued) in the cache 138. The command sending unit 140 refers to the intermediate code queued in the cache 138 each time and sends a command to the target robot 200.

データ管理部142は、プログラム実行に必要なデータを保持する。データ管理部142が保持するデータは、予め定められた周期でリフレッシュ(更新)される。データ管理部142は、入出力データを保持するためのIOデータ領域144と、制御装置100の内部で使用されるワーキングデータを保持するための内部データ領域146および共有領域148とを含む。共有領域148には、IECプログラム実行部130およびアプリケーションプログラム実行部134が共通に参照可能なデータが格納される。データ管理部142は、データを変数の形で管理するようにしてもよい。 The data management unit 142 holds data necessary for program execution. The data held by the data management unit 142 is refreshed (updated) at a predetermined cycle. The data management unit 142 includes an IO data area 144 for holding input/output data, an internal data area 146 for holding working data used inside the control device 100, and a shared area 148. The shared area 148 stores data that can be commonly referenced by the IEC program execution unit 130 and the application program execution unit 134. The data management unit 142 may manage data in the form of variables.

図8は、本実施の形態に係る制御装置100におけるプログラムの実行周期を示す模式図である。図8を参照して、制御装置100は、入出力リフレッシュ処理170、モーション入力処理171、アプリケーション入力処理172、IECプログラム実行処理173、モーション実行処理174、アプリケーション実行処理175の順で、制御周期T1毎にサイクリック実行する。 Figure 8 is a schematic diagram showing the execution cycle of a program in the control device 100 according to this embodiment. With reference to Figure 8, the control device 100 cyclically executes input/output refresh processing 170, motion input processing 171, application input processing 172, IEC program execution processing 173, motion execution processing 174, and application execution processing 175 in this order for each control period T1.

入出力リフレッシュ処理170は、前回の制御周期T1で計算した出力データ(指令値)を出力する処理と、今回の制御周期で利用する入力データを取得する処理とを含む。 The input/output refresh process 170 includes a process for outputting the output data (command value) calculated in the previous control cycle T1, and a process for acquiring the input data to be used in the current control cycle.

モーション入力処理171は、モーション処理部132での処理に必要なデータを取得する処理を含む。このように、IECプログラム150の実行前に、対象のデバイス(対象軸)から現在値を取得する処理が実行される。 The motion input process 171 includes a process for acquiring data necessary for processing in the motion processing unit 132. In this way, before the IEC program 150 is executed, a process for acquiring the current value from the target device (target axis) is executed.

アプリケーション入力処理172は、アプリケーションプログラム実行部134での処理に必要なデータを取得する処理を含む。 Application input processing 172 includes processing to obtain data necessary for processing in the application program execution unit 134.

IECプログラム実行処理173は、IECプログラム150の実行処理に相当し、IECプログラム150に従って、入力データおよび内部データから、出力データおよび新たな内部データを計算する処理を含む。 The IEC program execution process 173 corresponds to the execution process of the IEC program 150, and includes the process of calculating output data and new internal data from input data and internal data according to the IEC program 150.

モーション実行処理174は、モーション処理部132の処理の実行に相当し、例えば、IECプログラム150に含まれるモーション命令の実行処理などを含む。モーション処理部132からの処理結果を出力する処理を含む。典型的には、モーション実行処理174は、対象のデバイス(対象軸)に対する指令値を計算する処理を含む。 The motion execution process 174 corresponds to the execution of the process of the motion processing unit 132, and includes, for example, the execution of a motion command included in the IEC program 150. It also includes a process for outputting the processing result from the motion processing unit 132. Typically, the motion execution process 174 includes a process for calculating a command value for the target device (target axis).

アプリケーション実行処理175は、アプリケーションプログラム160の実行処理に相当し、アプリケーションプログラム実行部134での命令実行およびアプリケーションプログラム実行部134からの処理結果を出力する処理(ロボット200にコマンドを送信する処理)を含む。 The application execution process 175 corresponds to the execution process of the application program 160, and includes the execution of instructions in the application program execution unit 134 and the process of outputting the processing results from the application program execution unit 134 (the process of sending a command to the robot 200).

このように、制御装置100においては、IECプログラム150(第1ユーザプログラム)の実行、モーション処理部132の処理の実行、アプリケーションプログラム160の実行の順番で、予め定められた制御周期T1毎に繰り返される。 In this way, in the control device 100, the execution of the IEC program 150 (first user program), the execution of the processing of the motion processing unit 132, and the execution of the application program 160 are repeated in this order every predetermined control period T1.

制御装置100は、IECプログラム150の実行、モーション処理部132の処理の実行、アプリケーションプログラム160の実行を制御周期T1毎に繰り返し実行するため、同じ制御周期T1内で、モーション処理部132による処理結果をアプリケーションプログラム160に反映できる。これによって、制御装置100は、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。 The control device 100 repeatedly executes the IEC program 150, the processing of the motion processing unit 132, and the application program 160 for each control period T1, and therefore can reflect the processing results of the motion processing unit 132 in the application program 160 within the same control period T1. This allows the control device 100 to refer to values calculated by the execution of the processing of the motion processing unit 132 in the subsequent execution of the application program 160 within the same control period T1.

<D.モーション処理部が管理する情報のアプリケーション実行部での参照>
上述したように、本実施の形態に係る制御装置100は、モーション処理部132の処理結果をアプリケーションプログラム実行部134での実行に反映できる。以下では、一例として、コンベア30の移動速度(エンコーダ310からの単位時間あたりパルス数)に応じて、ロボット200の移動速度などを調整する例について説明する。なお、コンベア30の移動速度は、モーション処理部132の処理の実行によって計算される。
<D. Referencing information managed by the motion processing unit in the application execution unit>
As described above, the control device 100 according to this embodiment can reflect the processing results of the motion processing unit 132 in the execution by the application program execution unit 134. In the following, as an example, an example will be described in which the moving speed of the robot 200 is adjusted according to the moving speed of the conveyor 30 (the number of pulses per unit time from the encoder 310). Note that the moving speed of the conveyor 30 is calculated by executing the processing of the motion processing unit 132.

(d1:データ交換方式)
まず、モーション処理部132とアプリケーションプログラム実行部134との間でデータを交換する方式について説明する。この方式では、モーション処理部132が保持するデータ(フィールドバック値および指令値)をアプリケーションプログラム実行部134が参照する。
(d1: Data exchange method)
First, a method of exchanging data between the motion processing unit 132 and the application program execution unit 134 will be described. In this method, the application program execution unit 134 refers to data (feedback values and command values) held by the motion processing unit 132.

図9は、本実施の形態に係る制御装置100においてモーション処理部132の処理結果をアプリケーションプログラム実行部134の実行に反映する方法の一例を示す模式図である。図9には、制御周期T1における処理およびデータのやり取りを示す。図9に示す一連の処理は、プロセッサ102がシステムプログラム111を実行することで実現されるユーザプログラムの実行環境下で実現される。すなわち、システムプログラム111は、制御装置100での後述するような処理を実現するための基本的な環境を提供する。図10に示す一連の処理についても同様である。 Figure 9 is a schematic diagram showing an example of a method for reflecting the processing results of the motion processing unit 132 in the execution of the application program execution unit 134 in the control device 100 according to this embodiment. Figure 9 shows the processing and data exchange in control period T1. The series of processing shown in Figure 9 is realized in an execution environment of a user program realized by the processor 102 executing the system program 111. In other words, the system program 111 provides a basic environment for realizing the processing in the control device 100 as described below. The same applies to the series of processing shown in Figure 10.

図9を参照して、入出力リフレッシュ処理170(図8参照)により、データ管理部142のIOデータ領域144に保持される入出力データが更新される(シーケンスSQ10)。 Referring to Figure 9, the input/output data held in the IO data area 144 of the data management unit 142 is updated by the input/output refresh process 170 (see Figure 8) (sequence SQ10).

モーション入力処理171(図8参照)において、モーション処理部132は、フィードバック値を算出するための入力データを取得する(シーケンスSQ12)。入力データは、モーション処理の対象となるデバイス(対象軸)の状態値を含んでいてもよい。そして、モーション処理部132は、取得した入力データからフィードバック値を計算し、計算したフィールドバック値で更新する(シーケンスSQ14)。典型的には、フィールドバック値は、コンベア30の移動速度の実績値である。なお、更新される対象のデータは、アプリケーションプログラム実行部134から予め取得および保持が依頼されている値を含む(後述のシーケンスSQ16を参照)。 In the motion input process 171 (see FIG. 8), the motion processing unit 132 acquires input data for calculating a feedback value (sequence SQ12). The input data may include a state value of the device (target axis) that is the target of the motion process. The motion processing unit 132 then calculates a feedback value from the acquired input data and updates it with the calculated feedback value (sequence SQ14). Typically, the feedback value is the actual value of the movement speed of the conveyor 30. Note that the data to be updated includes values that the application program execution unit 134 has requested to be acquired and stored in advance (see sequence SQ16 described below).

続いて、アプリケーション入力処理172(図8参照)において、アプリケーションプログラム実行部134は、後続のアプリケーション実行処理175(図8参照)において、モーション処理に関する必要なデータを利用できるように、モーション処理部132に対して、データの取得および保持を依頼する(シーケンスSQ16)。この依頼は、次の制御周期において実行されることになる。対象のデータは、参照変数設定162(図7参照)に定義される。 Next, in application input processing 172 (see FIG. 8), the application program execution unit 134 requests the motion processing unit 132 to acquire and hold data so that the necessary data for motion processing can be used in the subsequent application execution processing 175 (see FIG. 8) (sequence SQ16). This request will be executed in the next control cycle. The target data is defined in the reference variable setting 162 (see FIG. 7).

したがって、モーション入力処理171は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を保持する処理を含む(シーケンスSQ14およびSQ16)。 The motion input process 171 therefore includes a process of retaining values to be referenced during execution of the application program 160 according to predetermined reference variable settings 162 (sequences SQ14 and SQ16).

続いて、IECプログラム実行処理173(図8参照)において、IECプログラム実行部130は、入力データおよび内部データを取得し(シーケンスSQ18)、IECプログラム150を実行し(シーケンスSQ20)、その実行結果を、データ管理部142に出力データおよび内部データとして格納する(シーケンスSQ22)。 Next, in the IEC program execution process 173 (see FIG. 8), the IEC program execution unit 130 acquires input data and internal data (sequence SQ18), executes the IEC program 150 (sequence SQ20), and stores the execution results in the data management unit 142 as output data and internal data (sequence SQ22).

続いて、モーション実行処理174(図8参照)において、モーション処理部132は、入力データを取得し(シーケンスSQ24)、対象のモーション処理を実行し(シーケンスSQ26)、その実行結果(指令値)で更新する(シーケンスSQ28)とともに、データ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ30)。なお、更新される対象のデータは、アプリケーションプログラム実行部134から予め取得および保持が依頼されている値を含む(シーケンスSQ16を参照)。 Next, in the motion execution process 174 (see FIG. 8), the motion processing unit 132 acquires input data (sequence SQ24), executes the target motion process (sequence SQ26), updates it with the execution result (command value) (sequence SQ28), and stores it as output data in the IO data area 144 of the data management unit 142 (sequence SQ30). Note that the target data to be updated includes values that have been requested to be acquired and stored in advance by the application program execution unit 134 (see sequence SQ16).

したがって、モーション実行処理174は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を保持する処理を含む(シーケンスSQ16およびSQ28)。 The motion execution process 174 therefore includes a process of retaining values to be referenced during execution of the application program 160 according to predetermined reference variable settings 162 (sequences SQ16 and SQ28).

続いて、アプリケーション実行処理175(図8参照)において、アプリケーションプログラム実行部134は、入力データを取得し(シーケンスSQ32)、アプリケーションプログラム160を実行する(シーケンスSQ34)。アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行過程において、モーション処理部132が保持するデータの参照が必要になると、モーション処理部132に対してデータの取得を試み(シーケンスSQ36)、モーション処理部132が保持するデータを取得する(シーケンスSQ38)。このように、アプリケーションプログラム160の実行は、先に実行されたモーション処理の実行において保持された値を参照する処理を含む。すなわち、アプリケーションプログラム160を実行する処理は、同一の制御周期内において、モーション処理の実行によって計算された値を参照する処理を含む。 Next, in application execution process 175 (see FIG. 8), application program execution unit 134 acquires input data (sequence SQ32) and executes application program 160 (sequence SQ34). When application program execution unit 134 needs to refer to data held by motion processing unit 132 during the execution of application program 160, it attempts to acquire the data from motion processing unit 132 (sequence SQ36) and acquires the data held by motion processing unit 132 (sequence SQ38). In this way, execution of application program 160 includes processing that references values held in the execution of a previously executed motion process. In other words, processing that executes application program 160 includes processing that references values calculated by the execution of a motion process within the same control period.

なお、モーション処理部132から参照できるデータは、上述のシーケンスSQ16において、予め取得および保持が要求されている。モーション処理部132が保持するデータとしては、今回の制御周期で取得されたフィールドバック値、および、今回の制御周期でモーション処理部132が計算した指令値を含んでいてもよい。 The data that can be referenced by the motion processing unit 132 is required to be acquired and stored in advance in the above-mentioned sequence SQ16. The data stored by the motion processing unit 132 may include the feedback value acquired in the current control cycle and the command value calculated by the motion processing unit 132 in the current control cycle.

そして、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行結果をデータ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ40)。また、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行によってコマンドの送信が必要になると、当該コマンドを対象のロボット200へ送信する(シーケンスSQ42)。出力データは、画像処理装置450がカメラ400で撮像するタイミングを指示する撮像トリガを含めることもできる。また、アプリケーションプログラム160の実行によって生成されるコマンドには、モーション処理部132が保持するフィールドバック値および指令値を反映することもできる。 Then, the application program execution unit 134 stores the execution result of the application program 160 in the IO data area 144 of the data management unit 142 as output data (sequence SQ40). Furthermore, when the execution of the application program 160 requires the transmission of a command, the application program execution unit 134 transmits the command to the target robot 200 (sequence SQ42). The output data can also include an imaging trigger that instructs the image processing device 450 when to capture an image with the camera 400. Furthermore, the command generated by the execution of the application program 160 can also reflect the feedback value and command value held by the motion processing unit 132.

上述したような処理手順によって、アプリケーションプログラム実行部134は、同じ制御周期においてモーション処理部132が取得および生成したデータを利用して、必要な処理およびコマンドの生成を行うことができる。すなわち、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。 By using the processing procedure described above, the application program execution unit 134 can perform the necessary processing and generate commands by using the data acquired and generated by the motion processing unit 132 in the same control period. In other words, within the same control period T1, the values calculated by the execution of the processing by the motion processing unit 132 can be referenced in the subsequent execution of the application program 160.

(d2:共有データ参照方式)
次に、モーション処理部132とアプリケーションプログラム実行部134との間で共有データを参照する方式について説明する。この方式では、モーション処理部132およびアプリケーションプログラム実行部134は、共有領域148に格納されたデータをそれぞれが参照する。
(d2: Shared Data Reference Method)
Next, a method for referencing shared data between the motion processing unit 132 and the application program execution unit 134 will be described. In this method, the motion processing unit 132 and the application program execution unit 134 each refer to the data stored in the shared area 148.

図10は、本実施の形態に係る制御装置100においてモーション処理部132の処理結果をアプリケーションプログラム実行部134の実行に反映する方法の別の一例を示す模式図である。 Figure 10 is a schematic diagram showing another example of a method for reflecting the processing results of the motion processing unit 132 in the execution of the application program execution unit 134 in the control device 100 according to this embodiment.

図10を参照して、入出力リフレッシュ処理170(図8参照)により、データ管理部142のIOデータ領域144に保持される入出力データが更新される(シーケンスSQ10)。 Referring to FIG. 10, the I/O refresh process 170 (see FIG. 8) updates the I/O data held in the IO data area 144 of the data management unit 142 (sequence SQ10).

モーション入力処理171(図8参照)において、モーション処理部132は、フィードバック値を算出するための入力データを取得し(シーケンスSQ12)、取得した入力データからフィードバック値を計算し、計算したフィールドバック値で更新する(シーケンスSQ14)。そして、モーション処理部132は、計算したフィールドバック値をデータ管理部142の共有領域148に格納する(シーケンスSQ48)。 In the motion input process 171 (see FIG. 8), the motion processing unit 132 acquires input data for calculating a feedback value (sequence SQ12), calculates a feedback value from the acquired input data, and updates it with the calculated feedback value (sequence SQ14). The motion processing unit 132 then stores the calculated feedback value in the shared area 148 of the data management unit 142 (sequence SQ48).

このように、モーション処理部132の処理の実行は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を共有領域148に格納する処理を含む。共有領域148に格納された値は、アプリケーションプログラム160の実行において参照可能になっている。 In this way, the execution of the processing by the motion processing unit 132 includes the process of storing values to be referenced during the execution of the application program 160 in the shared area 148 according to the predetermined reference variable settings 162. The values stored in the shared area 148 are accessible during the execution of the application program 160.

図10に示す処理手順においては、アプリケーション入力処理172(図8参照)において実質的な処理は行われない。 In the processing procedure shown in FIG. 10, no substantial processing is performed in application input processing 172 (see FIG. 8).

続いて、IECプログラム実行処理173(図8参照)において、IECプログラム実行部130は、入力データおよび内部データを取得し(シーケンスSQ18)、IECプログラム150を実行し(シーケンスSQ20)、その実行結果を、データ管理部142に出力データおよび内部データとして格納する(シーケンスSQ22)。 Next, in the IEC program execution process 173 (see FIG. 8), the IEC program execution unit 130 acquires input data and internal data (sequence SQ18), executes the IEC program 150 (sequence SQ20), and stores the execution results in the data management unit 142 as output data and internal data (sequence SQ22).

続いて、モーション実行処理174(図8参照)において、モーション処理部132は、入力データを取得し(シーケンスSQ24)、対象のモーション処理を実行し(シーケンスSQ26)、その実行結果(指令値)を格納する(シーケンスSQ28)とともに、データ管理部142のIOデータ領域144および共有領域148に出力データとして格納する(シーケンスSQ50)。 Next, in the motion execution process 174 (see FIG. 8), the motion processing unit 132 acquires the input data (sequence SQ24), executes the target motion process (sequence SQ26), and stores the execution result (command value) (sequence SQ28) and also stores it as output data in the IO data area 144 and shared area 148 of the data management unit 142 (sequence SQ50).

このように、モーション処理部132の処理の実行は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を共有領域148に格納する処理を含む。共有領域148に格納された値は、アプリケーションプログラム160の実行において参照可能になっている。 In this way, the execution of the processing by the motion processing unit 132 includes the process of storing values to be referenced during the execution of the application program 160 in the shared area 148 according to the predetermined reference variable settings 162. The values stored in the shared area 148 are accessible during the execution of the application program 160.

続いて、アプリケーション実行処理175(図8参照)において、アプリケーションプログラム実行部134は、入力データを取得し(シーケンスSQ32)、アプリケーションプログラム160を実行する(シーケンスSQ34)。アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行過程において、モーション処理部132が保持するデータの参照が必要になると、データ管理部142の共有領域148に格納されているデータを取得する(シーケンスSQ52)。このように、アプリケーションプログラム160の実行は、先に実行されたモーション処理部132の処理の実行において共有領域148に格納された値を参照する処理を含む。すなわち、アプリケーションプログラム160を実行する処理は、同一の制御周期内において、モーション処理の実行によって計算された値を参照する処理を含む。 Next, in application execution processing 175 (see FIG. 8), application program execution unit 134 acquires input data (sequence SQ32) and executes application program 160 (sequence SQ34). When application program execution unit 134 needs to refer to data held by motion processing unit 132 during the execution of application program 160, it acquires data stored in shared area 148 of data management unit 142 (sequence SQ52). In this way, execution of application program 160 includes processing that refers to values stored in shared area 148 during the execution of processing by motion processing unit 132 that was previously executed. In other words, processing that executes application program 160 includes processing that refers to values calculated by execution of motion processing within the same control period.

そして、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行結果をデータ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ40)。また、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行によってコマンドの送信が必要になると、当該コマンドを対象のロボット200へ送信する(シーケンスSQ42)。 Then, the application program execution unit 134 stores the execution result of the application program 160 in the IO data area 144 of the data management unit 142 as output data (sequence SQ40). Furthermore, when the execution of the application program 160 requires the sending of a command, the application program execution unit 134 sends the command to the target robot 200 (sequence SQ42).

上述したような処理手順によって、アプリケーションプログラム実行部134は、同じ制御周期においてモーション処理部132が取得および生成したデータを利用して、必要な処理およびコマンドの生成を行うことができる。すなわち、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。 By using the processing procedure described above, the application program execution unit 134 can perform the necessary processing and generate commands by using the data acquired and generated by the motion processing unit 132 in the same control period. In other words, within the same control period T1, the values calculated by the execution of the processing by the motion processing unit 132 can be referenced in the subsequent execution of the application program 160.

<E.設定例およびアプリケーションプログラム例>
次に、本実施の形態に係る制御システム1の制御装置100に対する設定例および制御装置100で実行されるアプリケーションプログラム160の一例について説明する。
<E. Setting Examples and Application Program Examples>
Next, a setting example for the control device 100 of the control system 1 according to the present embodiment and an example of the application program 160 executed by the control device 100 will be described.

図11は、本実施の形態に係るサポート装置600が提供するユーザインターフェイス画面の一例を示す模式図である。図11には、モーション処理に関するモーション設定152(図7参照)を生成するためのユーザインターフェイス画面650が示されている。 Figure 11 is a schematic diagram showing an example of a user interface screen provided by the support device 600 according to this embodiment. Figure 11 shows a user interface screen 650 for generating motion settings 152 (see Figure 7) related to motion processing.

ユーザインターフェイス画面650は、対象軸(本実施例においては、サーボドライバ350が駆動するサーボモータ300)の選択を受け付けて、当該対象軸に関するパラメータの設定を受け付ける。図11には、「MC_Axis000(0)」をラベルとする軸の設定例が示されている。 The user interface screen 650 accepts the selection of the target axis (in this embodiment, the servo motor 300 driven by the servo driver 350) and accepts the setting of parameters related to the target axis. Figure 11 shows an example of setting an axis labeled "MC_Axis000(0)".

より具体的には、ユーザインターフェイス画面650は、対象軸(サーボモータ300)の駆動に係る速度、加速度、トルクに関する設定値を受け付ける設定受付部652と、サーボドライバ350に接続されたサーボモータ300に関する設定値を受け付ける設定受付部654とを含む。ユーザインターフェイス画面650を介して設定された設定値(パラメータ)は、モーション設定152として格納される。 More specifically, the user interface screen 650 includes a setting reception section 652 that receives setting values related to the speed, acceleration, and torque associated with driving the target axis (servo motor 300), and a setting reception section 654 that receives setting values related to the servo motor 300 connected to the servo driver 350. The setting values (parameters) set via the user interface screen 650 are stored as motion settings 152.

図12は、本実施の形態に係るサポート装置600が提供するユーザインターフェイス画面の別の一例を示す模式図である。図12には、アプリケーションプログラム160の実行時に参照可能な変数を定義する参照変数設定162(図7参照)を生成するためのユーザインターフェイス画面660が示されている。 Figure 12 is a schematic diagram showing another example of a user interface screen provided by the support device 600 according to this embodiment. Figure 12 shows a user interface screen 660 for generating a reference variable setting 162 (see Figure 7) that defines variables that can be referenced when the application program 160 is executed.

ユーザインターフェイス画面660は、対象軸(本実施例においては、サーボドライバ350が駆動するサーボモータ300)の選択を受け付けて、当該対象軸に関するパラメータの設定を受け付ける。 The user interface screen 660 accepts the selection of the target axis (in this embodiment, the servo motor 300 driven by the servo driver 350) and accepts the setting of parameters related to that target axis.

より具体的には、ユーザインターフェイス画面660は、アプリケーションプログラム160側で対象軸あるいは変数を特定するための対象特定表示欄663として、「Using_EndoderID」が示されている。ユーザは、目的とする「Using_EndoderID」に対応付けて、対象軸を特定するための情報を設定する(軸設定欄664)。図12に示す例では、「Using_EndoderID」が「101」の第1エントリ661に「MC_Axis000(0)」が対応付けられており、「Using_EndoderID」が「102」の第2エントリ662に「MC_Axis000(0)」が対応付けられている。 More specifically, the user interface screen 660 shows "Using_EnderID" as a target specification display field 663 for specifying a target axis or variable on the application program 160 side. The user sets information for specifying a target axis in association with the desired "Using_EnderID" (axis setting field 664). In the example shown in FIG. 12, "MC_Axis000(0)" is associated with the first entry 661 with "Using_EnderID" of "101", and "MC_Axis000(0)" is associated with the second entry 662 with "Using_EnderID" of "102".

なお、ユーザインターフェイス画面660は、対象軸に関連付けられる複数の値のうち、いずれの値を使用するのかを設定できるようになっている。すなわち、ユーザインターフェイス画面660は、データ種別選択欄665を有している。対象軸の現在値、すなわちフィードバック値を選択する場合には、「Actual Position」が選択される。また、対象軸に対する指令値を選択する場合には、「Command Position」が選択される。図12に示す例では、第1エントリ661には、「MC_Axis000(0)」の現在値(フィールドバック値)が割り当てられており、第2エントリ662には、「MC_Axis000(0)」の指令値が割り当てられている。 The user interface screen 660 allows the user to set which of the multiple values associated with the target axis is to be used. That is, the user interface screen 660 has a data type selection field 665. When selecting the current value of the target axis, i.e., the feedback value, "Actual Position" is selected. When selecting a command value for the target axis, "Command Position" is selected. In the example shown in FIG. 12, the current value (feedback value) of "MC_Axis000(0)" is assigned to the first entry 661, and the command value of "MC_Axis000(0)" is assigned to the second entry 662.

このように、参照変数設定162は、モーション処理に関して定義された変数と、アプリケーションプログラム160において定義された変数とを対応付ける情報を含むことになる。 In this way, the reference variable settings 162 contain information that associates variables defined for motion processing with variables defined in the application program 160.

さらに、ユーザインターフェイス画面660は、各エントリの値を更新する条件を設定する更新条件設定欄666を有している。 Furthermore, the user interface screen 660 has an update condition setting field 666 for setting conditions for updating the values of each entry.

更新条件設定欄666には、後述するような手順によって設定されるラッチ信号の番号が設定可能になっている。更新条件設定欄666に何らかの番号も設定されていなければ、制御周期毎に値が更新されることになる。 In the update condition setting field 666, the number of the latch signal that is set by the procedure described below can be set. If no number is set in the update condition setting field 666, the value will be updated every control cycle.

一方、更新条件設定欄666に番号が設定されていなければ、設定された番号の信号が変化する(FALSEからTRUE、あるいは、TRUEからFALSE)と、対応する値が更新されることになる。更新条件設定欄666に設定される番号が正であれば、信号の立ち上がり(FALSEからTRUE)が値更新の条件となり、更新条件設定欄666に設定される番号が負であれば、信号の立ち上がり(TRUEからFALSE)が値更新の条件となる。 On the other hand, if no number is set in the update condition setting field 666, the corresponding value will be updated when the signal with the set number changes (from FALSE to TRUE, or from TRUE to FALSE). If the number set in the update condition setting field 666 is positive, the rising edge of the signal (from FALSE to TRUE) becomes the condition for updating the value, and if the number set in the update condition setting field 666 is negative, the rising edge of the signal (from TRUE to FALSE) becomes the condition for updating the value.

図13は、本実施の形態に係るサポート装置600が提供するユーザインターフェイス画面のさらに別の一例を示す模式図である。図13には、図12に示すユーザインターフェイス画面660の更新条件設定欄666に設定可能な番号を定義するためのユーザインターフェイス画面670が示されている。 Figure 13 is a schematic diagram showing yet another example of a user interface screen provided by the support device 600 according to this embodiment. Figure 13 shows a user interface screen 670 for defining a number that can be set in the update condition setting field 666 of the user interface screen 660 shown in Figure 12.

ユーザインターフェイス画面670は、ラッチ信号となる入出力信号を取得するデバイスを設定するソースデバイス設定欄673と、設定されたデバイスがもつデータのうち対象とするデータの位置を設定するポート設定欄674と、割り当てられる番号を設定する番号設定欄675とを含む。 The user interface screen 670 includes a source device setting field 673 for setting the device that will acquire the input/output signal that will become the latch signal, a port setting field 674 for setting the position of the target data among the data held by the set device, and a number setting field 675 for setting the assigned number.

図13に示す例では、番号として「4001」が第1エントリ671に対応付けられており、番号として「4002」が第2エントリ672に対応付けられている。なお、ユーザインターフェイス画面670において設定したラッチ番号は、アプリケーションプログラム160においても参照することができる。 In the example shown in FIG. 13, the number "4001" is associated with the first entry 671, and the number "4002" is associated with the second entry 672. Note that the latch number set in the user interface screen 670 can also be referenced in the application program 160.

図12および図13に示すユーザインターフェイス画面において設定された内容は、参照変数設定162として格納される。 The contents set in the user interface screens shown in Figures 12 and 13 are stored as reference variable settings 162.

図14は、本実施の形態に係る制御装置100が実行するアプリケーションプログラム160の一例を示す模式図である。図14には、一例として、制御装置100からカメラ400に対して撮像トリガが与えられると、ロボット200をコンベア30に追従させて移動させるプログラム例が示されている。図14には、一例として、V+言語で記述されたロボットプログラムのコードを示す。V+言語においては、各命令は「キーワード」と称される。以下では、「命令」の一例として「キーワード」を用いる場合について説明するが、「キーワード」に限られず、言語体系に応じた任意の命令を用いることができる。 Figure 14 is a schematic diagram showing an example of an application program 160 executed by the control device 100 according to this embodiment. As an example, Figure 14 shows an example program in which, when an image capture trigger is given from the control device 100 to the camera 400, the robot 200 moves to follow the conveyor 30. As an example, Figure 14 shows the code of a robot program written in the V+ language. In the V+ language, each command is called a "keyword." Below, a case where a "keyword" is used as an example of a "command" is described, but the command is not limited to a "keyword" and any command according to the language system can be used.

図14を参照して、アプリケーションプログラム160は、初期設定として、対象となる軸を特定するための対象軸設定のコード1601を含む。図14に示す例では、「Using_EndoderID」が「101」である軸がオブジェクト「belt」の「num」プロパティに設定されている。アプリケーションプログラム160は、初期設定として、対象軸が有しているラッチ信号を初期化するためのコード1602を含む。 Referring to FIG. 14, application program 160 includes, as an initial setting, code 1601 for setting a target axis to specify a target axis. In the example shown in FIG. 14, an axis with "Using_EnderID" of "101" is set in the "num" property of object "belt". Application program 160 includes, as an initial setting, code 1602 for initializing the latch signal of the target axis.

アプリケーションプログラム160のコード1603は、ロボット200の初期位置まで移動させるための命令である。アプリケーションプログラム160のコード1604は、各種設定を行うための命令である。 Code 1603 of application program 160 is a command for moving robot 200 to its initial position. Code 1604 of application program 160 is a command for making various settings.

アプリケーションプログラム160のコード1605は、所定条件が満たされると、実行される命令を規定する。実行される命令は、「4001」のラッチ番号が付与された信号が検出される(立ち上がりまたは立ち上がりが生じる)まで待機するためのコード1606と、信号が検出されると、対象軸の現在値の値を取得するためのコード1607と、対象軸の現在値を基準としてロボット200に所定の動作を行わせるためのコード1608とを含む。すなわち、コード1607において、「%belt」との変数1609に対象軸の現在値がセットされ、コード1608において、変数1609(変数%belt)を基準とした移動などのコマンドがロボット200に送信される。 Code 1605 of application program 160 specifies commands to be executed when a predetermined condition is met. The commands to be executed include code 1606 for waiting until a signal with a latch number of "4001" is detected (rising or rising edge occurs), code 1607 for obtaining the current value of the target axis when the signal is detected, and code 1608 for causing robot 200 to perform a predetermined operation based on the current value of the target axis. That is, in code 1607, the current value of the target axis is set in variable 1609, "%belt", and in code 1608, a command such as movement based on variable 1609 (variable %belt) is sent to robot 200.

以上のように、本実施の形態に係る制御装置100においては、IECプログラム150の実行時に、モーション処理部132が管理するモーション軸に関する情報を遅延なく参照できるので、制御性能をより高めることができる。 As described above, in the control device 100 according to this embodiment, when the IEC program 150 is executed, information related to the motion axis managed by the motion processing unit 132 can be referenced without delay, thereby further improving control performance.

<F.現在値補正>
図12に示すように、ラッチ信号の条件が成立した場合に、対象軸から現在値が取得される。このとき、ラッチ信号の条件が成立したタイミングと、対象軸から現在値を取得したタイミングとの間に時間的なずれがある場合には、当該時間的なずれを補正するような処理を行ってもよい。
<F. Current value correction>
12, when the latch signal condition is satisfied, the current value is acquired from the target axis. At this time, if there is a time lag between the timing when the latch signal condition is satisfied and the timing when the current value is acquired from the target axis, processing may be performed to correct the time lag.

具体的には、ラッチ信号の条件が成立したタイミング(時刻t1)と、対象軸から現在値を取得したタイミング(時刻t2)とを用いて、時刻t1におけるフィードバック位置は、(時刻t2で取得した現在値)+対象軸の移動速度(フィールドバック速度)×(t1-t2)と算出できる。 Specifically, using the timing when the latch signal condition is met (time t1) and the timing when the current value is acquired from the target axis (time t2), the feedback position at time t1 can be calculated as (current value acquired at time t2) + moving speed of the target axis (feedback speed) x (t1 - t2).

このような現在値の補正処理は、制御装置100のシステムプログラム111で実行するようにしてもよい。 Such correction processing of the current value may be executed by the system program 111 of the control device 100.

<G.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
<G. Notes>
The present embodiment as described above includes the following technical idea.

[構成1]
制御対象を制御するための制御装置(100)であって、
シーケンス命令を含む第1ユーザプログラム(150)を実行する第1プログラム実行部(130)と、
モーション処理部(132)と、
ロボット(200)を制御するための第2ユーザプログラム(160)を実行する第2プログラム実行部(134)とを備え、
前記第1ユーザプログラムの実行(173)、前記モーション処理部の処理の実行(174)、前記第2ユーザプログラムの実行(175)の順番で、予め定められた制御周期(T1)毎に繰り返されるように構成されており、
同一の制御周期内において、前記モーション処理部の処理の実行によって計算された値を、後続の前記第2ユーザプログラムの実行において参照できるように構成されている、制御装置。
[Configuration 1]
A control device (100) for controlling a control target,
a first program execution unit (130) that executes a first user program (150) including a sequence command;
A motion processing unit (132);
a second program execution unit (134) that executes a second user program (160) for controlling the robot (200);
The execution of the first user program (173), the execution of the process of the motion processing unit (174), and the execution of the second user program (175) are repeated in this order for every predetermined control period (T1),
A control device configured so that, within the same control period, values calculated by execution of processing by the motion processing unit can be referenced in subsequent execution of the second user program.

[構成2]
前記モーション処理部の処理の実行は、予め定められた設定(162)に従って、前記第2ユーザプログラムの実行において参照される対象となる値を保持する処理(SQ14,SQ28)を含む、構成1に記載の制御装置。
[Configuration 2]
The control device according to configuration 1, wherein the execution of the processing by the motion processing unit includes a process (SQ14, SQ28) of retaining values to be referenced in the execution of the second user program in accordance with a predetermined setting (162).

[構成3]
前記第2ユーザプログラムの実行は、先に実行された前記モーション処理部の処理の実行において保持された値を参照する処理(SQ36,SQ38)を含む、構成2に記載の制御装置。
[Configuration 3]
3. The control device according to configuration 2, wherein execution of the second user program includes processing (SQ36, SQ38) for referencing values retained in a previously executed processing of the motion processing section.

[構成4]
前記モーション処理部の処理の実行は、予め定められた設定(162)に従って、前記第2ユーザプログラムの実行において参照される対象となる値を共有領域に格納する処理(SQ48)を含む、構成1に記載の制御装置。
[Configuration 4]
The control device according to configuration 1, wherein the execution of the processing by the motion processing unit includes a process (SQ48) of storing a value to be referenced in the execution of the second user program in a shared area in accordance with a predetermined setting (162).

[構成5]
前記第2ユーザプログラムの実行は、先に実行された前記モーション処理部の処理の実行において前記共有領域に格納された値を参照する処理(SQ52)を含む、構成4に記載の制御装置。
[Configuration 5]
The control device according to configuration 4, wherein execution of the second user program includes a process (SQ52) of referencing a value stored in the shared area during execution of a previously executed process of the motion processing unit.

[構成6]
前記予め定められた設定は、前記モーション処理部の処理に関して定義された変数と、前記第2ユーザプログラムにおいて定義された変数とを対応付ける情報(162;660)を含む、構成2~5のいずれか1項に記載の制御装置。
[Configuration 6]
The control device according to any one of configurations 2 to 5, wherein the predetermined settings include information (162; 660) that associates variables defined with respect to the processing of the motion processing unit with variables defined in the second user program.

[構成7]
前記モーション処理部の処理の実行は、対象のデバイスに対する指令値を計算する処理とを含む、構成1~6のいずれか1項に記載の制御装置。
[Configuration 7]
The control device according to any one of configurations 1 to 6, wherein the execution of the processing of the motion processing unit includes a process of calculating a command value for a target device.

[構成8]
前記第1ユーザプログラムの実行前に、対象のデバイスから現在値を取得する処理(171)が実行される、構成1~7のいずれか1項に記載の制御装置。
[Configuration 8]
The control device according to any one of configurations 1 to 7, wherein a process (171) of acquiring a current value from a target device is executed before the first user program is executed.

[構成9]
制御対象を制御するための制御装置(100)におけるプログラム実行方法であって、
予め定められた制御周期(T1)毎に、
シーケンス命令を含む第1ユーザプログラム(150)を実行するステップ(173)と、
前記第1ユーザプログラムの実行に続いて、モーション処理を実行するステップ(174)と、
前記モーション処理の実行に続いて、第2ユーザプログラム(160)を実行するステップとを繰り返すステップ(175)を備え、
前記第2ユーザプログラムを実行するステップは、同一の制御周期内において、前記モーション処理の実行によって計算された値を参照するステップを含む、プログラム実行方法。
[Configuration 9]
A program execution method in a control device (100) for controlling a control target, comprising:
For each predetermined control period (T1),
Executing (173) a first user program (150) including sequence instructions;
executing (174) a motion process following execution of the first user program;
and repeating (175) the step of executing a second user program (160) following execution of the motion process;
A program execution method, wherein the step of executing the second user program includes a step of referring to a value calculated by execution of the motion processing within the same control period.

[構成10]
制御対象を制御するための制御装置(100)に向けられたプログラム(111)であって、前記制御装置に、
予め定められた制御周期(T1)毎に、
シーケンス命令を含む第1ユーザプログラムを実行するステップ(173)と、
前記第1ユーザプログラムの実行に続いて、モーション処理を実行するステップ(174)と、
前記モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップ(175)を実行させ、
前記第2ユーザプログラムを実行するステップは、同一の制御周期内において、前記モーション処理の実行によって計算された値を参照するステップを含む、プログラム。
[Configuration 10]
A program (111) directed to a control device (100) for controlling a controlled object, the program comprising:
For each predetermined control period (T1),
Executing (173) a first user program including sequence instructions;
executing (174) a motion process following execution of the first user program;
and executing (175) a step of repeating the step of executing the motion process and a step of executing a second user program.
A program, wherein the step of executing the second user program includes a step of referring to a value calculated by execution of the motion processing within the same control period.

<H.利点>
本実施の形態に係る制御装置100によれば、同一の制御周期T1内において、モーション処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。そのため、モーション処理に関連する特定の軸(デバイス)に関する値(指令値およびフィードバック値(現在値))を参照して、ロボット200を制御する場合に、データ更新の時間的ずれや揺らぎを低減できる。これによって、モーション処理とロボット制御とを連携したより高精度な制御を実現できる。
H. Advantages
According to the control device 100 of this embodiment, values calculated by executing motion processing can be referenced in the subsequent execution of the application program 160 within the same control period T1. Therefore, when controlling the robot 200 by referencing values (command values and feedback values (current values)) related to a specific axis (device) related to the motion processing, it is possible to reduce time lags and fluctuations in data updates. This makes it possible to realize more accurate control by linking motion processing and robot control.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is indicated by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims.

1 制御システム、2 ワーク、10 フィールドネットワーク、20 上位ネットワーク、30 コンベア、50,60,70 実行期間、100 制御装置、102,262,362,602 プロセッサ、104,264,364,604 メインメモリ、106 上位ネットワークコントローラ、108,252,352 フィールドネットワークコントローラ、110,266,366,610 ストレージ、111,268,368 システムプログラム、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118 プロセッサバス、120,618 USBコントローラ、122 ローカルバス、124 機能ユニット、130 IECプログラム実行部、132 モーション処理部、134 アプリケーションプログラム実行部、136 インタプリタ、138 キャッシュ、140 コマンド送信部、142 データ管理部、144 IOデータ領域、146 内部データ領域、148 共有領域、150 IECプログラム、152 モーション設定、160 アプリケーションプログラム、162 参照変数設定、170 入出力リフレッシュ処理、171 モーション入力処理、172 アプリケーション入力処理、173 IECプログラム実行処理、174 モーション実行処理、175 アプリケーション実行処理、200 ロボット、250 ロボットコントローラ、260,360 制御処理回路、270 インターフェイス回路、300 サーボモータ、310 エンコーダ、350 サーボドライバ、370 ドライブ回路、372 カウンタ回路、400 カメラ、450 画像処理装置、500 リモートIO装置、600 サポート装置、606 入力部、608 表示部、612 OS、614 開発プログラム、616 ネットワークコントローラ、620 光学ドライブ、622 記録媒体、624 バス、650,660,670 ユーザインターフェイス画面、652,654 設定受付部、661,671 第1エントリ、662,672 第2エントリ、663 対象特定表示欄、664 軸設定欄、665 データ種別選択欄、666 更新条件設定欄、673 ソースデバイス設定欄、674 ポート設定欄、675 番号設定欄、700 表示装置、800 サーバ装置、1601,1602,1603,1604,1605,1606,1607,1608 コード、1609 変数、T1 制御周期。
1 Control system, 2 Work, 10 Field network, 20 Upper network, 30 Conveyor, 50, 60, 70 Execution period, 100 Control device, 102, 262, 362, 602 Processor, 104, 264, 364, 604 Main memory, 106 Upper network controller, 108, 252, 352 Field network controller, 110, 266, 366, 610 Storage, 111, 268, 368 System program, 112 Memory card interface, 114 Memory card, 116 Local bus controller, 118 Processor bus, 120, 618 USB controller, 122 Local bus, 124 Functional unit, 130 IEC program execution unit, 132 Motion processing unit, 134 Application program execution unit, 136 Interpreter, 138 Cache, 140 Command transmission unit, 142 Data management unit, 144 IO data area, 146 internal data area, 148 shared area, 150 IEC program, 152 motion setting, 160 application program, 162 reference variable setting, 170 input/output refresh processing, 171 motion input processing, 172 application input processing, 173 IEC program execution processing, 174 motion execution processing, 175 application execution processing, 200 robot, 250 robot controller, 260, 360 control processing circuit, 270 interface circuit, 300 servo motor, 310 encoder, 350 servo driver, 370 drive circuit, 372 counter circuit, 400 camera, 450 image processing device, 500 remote IO device, 600 support device, 606 input unit, 608 display unit, 612 OS, 614 development program, 616 network controller, 620 optical drive, 622 recording medium, 624 bus, 650, 660, 670 user interface screen, 652, 654 setting reception section, 661, 671 first entry, 662, 672 second entry, 663 target identification display field, 664 axis setting field, 665 data type selection field, 666 update condition setting field, 673 source device setting field, 674 port setting field, 675 number setting field, 700 display device, 800 server device, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608 code, 1609 variable, T1 control period.

Claims (10)

制御対象を制御するための制御装置であって、
シーケンス命令を含む第1ユーザプログラムを実行する第1プログラム実行部と、
モーション処理部と、
ロボットを制御するための第2ユーザプログラムを実行する第2プログラム実行部とを備え、
前記第1ユーザプログラムの実行、前記モーション処理部の処理の実行、前記第2ユーザプログラムの実行の順番で、予め定められた制御周期毎に繰り返されるように構成されており、
同一の制御周期内において、前記モーション処理部の処理の実行によって計算された値を、後続の前記第2ユーザプログラムの実行において参照できるように構成されている、制御装置。
A control device for controlling a control target,
a first program execution unit that executes a first user program including a sequence command;
A motion processing unit;
a second program execution unit that executes a second user program for controlling the robot;
the execution of the first user program, the execution of the process of the motion processing unit, and the execution of the second user program are repeated in this order for each predetermined control period;
A control device configured so that, within the same control period, values calculated by execution of processing by the motion processing unit can be referenced in subsequent execution of the second user program.
前記モーション処理部の処理の実行は、予め定められた設定に従って、前記第2ユーザプログラムの実行において参照される対象となる値を保持する処理を含む、請求項1に記載の制御装置。 The control device according to claim 1, wherein the execution of the processing by the motion processing unit includes a process of retaining a value to be referenced in the execution of the second user program according to a predetermined setting. 前記第2ユーザプログラムの実行は、先に実行された前記モーション処理部の処理の実行において保持された値を参照する処理を含む、請求項2に記載の制御装置。 The control device according to claim 2, wherein the execution of the second user program includes a process that references a value held in a previously executed process of the motion processing unit. 前記モーション処理部の処理の実行は、予め定められた設定に従って、前記第2ユーザプログラムの実行において参照される対象となる値を共有領域に格納する処理を含む、請求項1に記載の制御装置。 The control device according to claim 1, wherein the execution of the processing by the motion processing unit includes a process of storing a value to be referenced in the execution of the second user program in a shared area according to a predetermined setting. 前記第2ユーザプログラムの実行は、先に実行された前記モーション処理部の処理の実行において前記共有領域に格納された値を参照する処理を含む、請求項4に記載の制御装置。 The control device according to claim 4, wherein the execution of the second user program includes a process of referencing a value stored in the shared area during a previously executed process of the motion processing unit. 前記予め定められた設定は、前記モーション処理部の処理に関して定義された変数と、前記第2ユーザプログラムにおいて定義された変数とを対応付ける情報を含む、請求項2~5のいずれか1項に記載の制御装置。 The control device according to any one of claims 2 to 5, wherein the predetermined settings include information that associates variables defined for processing by the motion processing unit with variables defined in the second user program. 前記モーション処理部の処理は、対象のデバイスに対する指令値を計算する処理とを含む、請求項1~6のいずれか1項に記載の制御装置。 The control device according to any one of claims 1 to 6, wherein the processing of the motion processing unit includes a process of calculating a command value for a target device. 前記第1ユーザプログラムの実行前に、対象のデバイスから現在値を取得する処理が実行される、請求項1~7のいずれか1項に記載の制御装置。 The control device according to any one of claims 1 to 7, wherein a process for acquiring a current value from a target device is executed before the execution of the first user program. 制御対象を制御するための制御装置におけるプログラム実行方法であって、
予め定められた制御周期毎に、
シーケンス命令を含む第1ユーザプログラムを実行するステップと、
前記第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、
前記モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを備え、
前記第2ユーザプログラムを実行するステップは、同一の制御周期内において、前記モーション処理の実行によって計算された値を参照するステップを含む、プログラム実行方法。
A program execution method in a control device for controlling a control target, comprising:
At each predetermined control period,
executing a first user program including sequence instructions;
executing a motion process following execution of the first user program;
and repeating a step of executing a second user program following the execution of the motion processing;
A program execution method, wherein the step of executing the second user program includes a step of referring to a value calculated by execution of the motion processing within the same control period.
制御対象を制御するための制御装置に向けられたプログラムであって、前記制御装置に、
予め定められた制御周期毎に、
シーケンス命令を含む第1ユーザプログラムを実行するステップと、
前記第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、
前記モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを実行させ、
前記第2ユーザプログラムを実行するステップは、同一の制御周期内において、前記モーション処理の実行によって計算された値を参照するステップを含む、プログラム。

A program for a control device for controlling a control target, the program comprising:
At each predetermined control period,
executing a first user program including sequence instructions;
executing a motion process following execution of the first user program;
a step of executing a second user program after executing the motion processing;
A program, wherein the step of executing the second user program includes a step of referring to a value calculated by execution of the motion processing within the same control period.

JP2021011174A 2021-01-27 2021-01-27 Control device, program execution method, and program Active JP7600716B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021011174A JP7600716B2 (en) 2021-01-27 2021-01-27 Control device, program execution method, and program
PCT/JP2021/009576 WO2022162958A1 (en) 2021-01-27 2021-03-10 Control device, program execution method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021011174A JP7600716B2 (en) 2021-01-27 2021-01-27 Control device, program execution method, and program

Publications (2)

Publication Number Publication Date
JP2022114752A JP2022114752A (en) 2022-08-08
JP7600716B2 true JP7600716B2 (en) 2024-12-17

Family

ID=82653088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021011174A Active JP7600716B2 (en) 2021-01-27 2021-01-27 Control device, program execution method, and program

Country Status (2)

Country Link
JP (1) JP7600716B2 (en)
WO (1) WO2022162958A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019049947A (en) 2017-09-12 2019-03-28 オムロン株式会社 Control device and control method
JP2019053459A (en) 2017-09-14 2019-04-04 オムロン株式会社 Control device and control method
JP2021002113A (en) 2019-06-20 2021-01-07 オムロン株式会社 Control device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6919404B2 (en) * 2017-08-10 2021-08-18 オムロン株式会社 Control device
JP6946909B2 (en) * 2017-09-29 2021-10-13 オムロン株式会社 Control system and control device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019049947A (en) 2017-09-12 2019-03-28 オムロン株式会社 Control device and control method
JP2019053459A (en) 2017-09-14 2019-04-04 オムロン株式会社 Control device and control method
JP2021002113A (en) 2019-06-20 2021-01-07 オムロン株式会社 Control device

Also Published As

Publication number Publication date
WO2022162958A1 (en) 2022-08-04
JP2022114752A (en) 2022-08-08

Similar Documents

Publication Publication Date Title
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
US10496079B2 (en) Control device and control method
CN1312547C (en) Numerical control device
US20190095246A1 (en) Support device and non-transitory storage medium
JP7078895B2 (en) Control systems, controls, image processing devices and programs
US11855907B2 (en) Robot control system and control method
WO2021106467A1 (en) Control system, control device, and control method
JP7392590B2 (en) Robot control system, control program and control method
JP2019215633A (en) Control system, control unit, image processing apparatus, and program
JP7600716B2 (en) Control device, program execution method, and program
JP6881174B2 (en) Control device and control method
JP7452124B2 (en) Robot control system and control method
US12117788B2 (en) Control device with second processing unit that accesses variable via first processing unit
JP7613132B2 (en) CONTROL SYSTEM, ROBOT CONTROLLER, AND CONTROL METHOD
JP7593154B2 (en) Control device, control method, and control program
JP7592975B2 (en) Robot control system and control method
JP2019215634A (en) Control system, control unit, and program
US12032349B2 (en) Controller
WO2021181800A1 (en) Robot control system and control method
JP7456165B2 (en) Control device
JP7396063B2 (en) Data processing method
JP2021144627A (en) Control system and support device
JP2025127553A (en) programmable logic controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240716

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241118

R150 Certificate of patent or registration of utility model

Ref document number: 7600716

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150