JP7600716B2 - Control device, program execution method, and program - Google Patents
Control device, program execution method, and program Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/18—Numerical 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.
例えば、ベルトコンベア上を流れるワークをロボットでピックして、所定位置にプレイスするようなアプリケーションを想定すると、ロボットは、ベルトコンベアの速度に応じて移動させる必要がある。 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.
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 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
図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
図1を参照して、制御システム1は、制御対象を制御するための制御装置100と、ロボットコントローラ250と、サーボドライバ350と、リモートIO装置500とを含む。これらの装置は、フィールドネットワーク10を介して、データ交換可能に接続される。
Referring to FIG. 1, the
制御装置100は、フィールドネットワーク10に接続されたデバイスとの間で周期的にデータをやり取りして、後述するような処理を実行する。制御装置100は、典型的には、PLC(プログラマブルロジックコントローラ)により実現されてもよい。
The
ロボットコントローラ250は、ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、ロボット200を駆動するための指令値を出力するとともに、ロボット200の状態情報を取得して制御装置100へ出力する。
The
ロボット200は、例えば、垂直多関節ロボット、水平多関節(スカラ)ロボット、パラレルリンクロボット、直交ロボットなどの任意のロボットを採用できる。
The
サーボドライバ350は、コンベア30を駆動するサーボモータ300の制御を担当するとともに、コンベア30と機械的に連結されたエンコーダ310からのエンコーダパルスを受信する。より具体的には、サーボドライバ350は、制御装置100からの指令に従って、サーボモータ300を駆動するとともに、エンコーダ310からのエンコーダパルスをカウントして制御装置100へ出力する。サーボドライバ350は、エンコーダ310からのパルスを受信したパルス数をカウントする。サーボドライバ350のカウント数の変化(単位時間あたりのインクリメント/デクリメント数)から、コンベア30の移動速度を計算できる。
The
フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。プロトコルとしてEtherCATを採用した場合には、制御装置100とフィールドネットワーク10に接続されたデバイスとの間で、例えば、数百μ秒~数m秒の定周期でデータを更新できる。
For the
制御システム1は、コンベア30を視野範囲に含むカメラ400に接続された画像処理装置450と、表示装置700と、サーバ装置800とをさらに含む。これらの装置は、上位ネットワーク20を介して、制御装置100とデータ交換可能に接続される。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。
The
画像処理装置450は、カメラ400により撮像された画像に含まれるワーク2の位置を認識し、認識結果を制御装置100などへ出力する。カメラ400は、リモートIO装置500からの撮像トリガを受け付けると撮像を行う。
The
制御装置100には、制御装置100で実行されるユーザプログラム(後述する、IECプログラム150およびアプリケーションプログラム160)のインストールや各種設定を行うためのサポート装置600が接続されてもよい。
A
図2は、本実施の形態に係る制御装置100の適用例を示す図である。図2を参照して、制御装置100では、IECプログラム実行部130、モーション処理部132、アプリケーションプログラム実行部134の順で処理を実行する。但し、IECプログラム実行部130の処理に先だって、モーション処理部132およびアプリケーションプログラム実行部134は、今回の制御周期T1で利用する入力データを取得する処理とを含む。
Fig. 2 is a diagram showing an application example of the
より具体的には、モーション処理部132は、入力処理(IN)として、フィードバック値(現在値)を取得する。図示していないが、アプリケーションプログラム実行部134についても、入力処理(IN)として、必要な入力データを取得する。
More specifically, the
IECプログラム実行部130の実行後に引き続いて、モーション処理部132は、例えば、モーション命令などを実行して、必要な指令値を計算する。
Following execution of the IEC
本実施の形態に係る制御装置100においては、モーション処理部132の処理の実行後に、アプリケーションプログラム実行部134が処理を実行するため、モーション処理部132が取得したフィードバック値、および、モーション処理部132が計算した指令値をアプリケーションプログラム実行部134の処理の実行時に参照できる。
In the
このようなモーション処理部132の実行によって取得あるいは計算される値を参照することで、アプリケーションプログラム160において、より精度の高い制御を実現できる。
By referencing values obtained or calculated by executing the
<B.ハードウェア構成例>
次に、図1に示す制御システム1を構成する主要装置のハードウェア構成例について説明する。
<B. Hardware Configuration Example>
Next, an example of the hardware configuration of the main devices constituting the
(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
プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。
The
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
The
ストレージ110には、基本的な機能を実現するためのシステムプログラム111、および、制御対象に応じて作成されたIECプログラム150およびアプリケーションプログラム160などが格納される。
The
IECプログラム150は、第1ユーザプログラムに相当し、制御システム1におけるロボット200の制御以外の主たる制御を実現するための命令を含む。IECプログラム150は、典型的には、シーケンス命令およびモーション命令を含み得る。IECプログラム150は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよう。但し、IECプログラム150は、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを含んでいてもよい。
The
アプリケーションプログラム160は、第2ユーザプログラムに相当し、ロボット200を制御するための命令を含む。アプリケーションプログラム160は、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述された命令を含んでいてもよい。
The
メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。
The
上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図1に示される表示装置700およびサーバ装置800など)との間でデータをやり取りする。
The
フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。図1に示すシステム構成例において、フィールドネットワークコントローラ108は、フィールドネットワーク10の通信マスタとして機能してもよい。
The
ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット124との間でデータをやり取りする。機能ユニット124は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニットなどからなる。
The
USBコントローラ120は、USB接続を介して、任意の情報処理装置(サポート装置600など)との間でデータをやり取りする。
The
(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
フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。すなわち、フィールドネットワークコントローラ252は、制御装置100とフィールドネットワーク10を介して接続するためのインターフェイスに相当する。
The
制御処理回路260は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ266と、インターフェイス回路270とを含む。
The
プロセッサ262は、ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ266は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
The
ストレージ266には、ロボット200を駆動するための制御を実現するためのシステムプログラム268が格納される。システムプログラム268は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。
インターフェイス回路270は、ロボット200との間でデータをやり取りする。
(b3:サーボドライバ350)
図5は、本実施の形態に係る制御システム1を構成するサーボドライバ350のハードウェア構成例を示す模式図である。図5を参照して、サーボドライバ350は、フィールドネットワークコントローラ352と、制御処理回路360と、ドライブ回路370と、カウンタ回路372とを含む。
The
(b3: servo driver 350)
5 is a schematic diagram showing an example of a hardware configuration of a
フィールドネットワークコントローラ352は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。
The
制御処理回路360は、サーボモータ300の制御に必要な演算処理を実行する。一例として、制御処理回路360は、プロセッサ362と、メインメモリ364と、ストレージ366とを含む。
The
プロセッサ362は、サーボモータ300に係る制御演算を実行する。メインメモリ364は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ366は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
The
ストレージ366には、サーボモータ300の駆動制御を実現するためのシステムプログラム368が格納される。システムプログラム368は、サーボモータ300の動作に係る制御演算を実行する命令、および、サーボモータ300との間のインターフェイスに係る命令を含む。
ドライブ回路370は、コンバータ回路およびインバータ回路などを含み、制御処理回路360により計算された指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ300へ供給する。
The
カウンタ回路372は、エンコーダ310からのパルスを受信するA/D回路およびレジスタなどを含む。
The
(b4:画像処理装置450)
本実施の形態に係る制御システム1を構成する画像処理装置450は、一例として、汎用パソコンを用いて実現されてもよい。画像処理装置450の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b4: Image processing device 450)
The
(b5:リモートIO装置500)
本実施の形態に係る制御システム1を構成するリモートIO装置500は、図5に示すサーボドライバ350と同様に、フィールドネットワークコントローラおよび制御処理回路を含むとともに、制御対象からの信号を取得し、および/または、制御対象へ信号を出力するユニットを含む。リモートIO装置500は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニットなどが装着されてもよい。
(b5: remote IO device 500)
The
(b6:サポート装置600)
本実施の形態に係る制御システム1を構成するサポート装置600は、一例として、汎用パソコンを用いて実現されてもよい。
(b6: Support device 600)
The
図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
プロセッサ602は、ストレージ610に格納された各種プログラムを読み出して、メインメモリ604に展開して実行することで、制御装置100で実行されるユーザプログラム(IECプログラム150およびアプリケーションプログラム160)の開発などの処理を提供する。
The
ストレージ610は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。ストレージ610には、典型的には、OS612と、制御装置100において実行されるユーザプログラムの作成、作成したユーザプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム614とが格納される。ストレージ610には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。
入力部606は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部608は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ602からの処理結果などを出力する。
The
ネットワークコントローラ616は、任意のネットワークを介した他の装置との間のデータのやり取りを制御する。USBコントローラ618は、USB接続を介して制御装置100との間のデータのやり取りを制御する。
The
サポート装置600は、光学ドライブ620を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体622(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ610などにインストールされる。
The
サポート装置600で実行される各種プログラムは、コンピュータ読取可能な記録媒体622を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置600が提供する機能は、OS612が提供するモジュールの一部を利用する形で実現される場合もある。
The various programs executed by the
(b7:表示装置700)
本実施の形態に係る制御システム1を構成する表示装置700は、一例として、汎用パソコンを用いて実現されてもよい。表示装置700の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b7: display device 700)
The
(b8:サーバ装置800)
本実施の形態に係る制御システム1を構成するサーバ装置800は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置800の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b8: server device 800)
The
(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
図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
IECプログラム実行部130は、シーケンス命令を含むIECプログラム150(第1ユーザプログラム)を周期的に実行する第1プログラム実行部に相当する。IECプログラム実行部130は、モーション処理部132を有しており、モーション設定152に従って、IECプログラム150に含まれるモーション命令などを実行する。
The IEC
アプリケーションプログラム実行部134は、ロボット200を制御するためのアプリケーションプログラム160(第2ユーザプログラム)を実行する第2プログラム実行部に相当する。アプリケーションプログラム実行部134は、参照変数設定162に従って、アプリケーションプログラム160を実行する。アプリケーションプログラム実行部134は、インタプリタ136と、キャッシュ138と、コマンド送信部140とを含む。
The application
インタプリタ136は、アプリケーションプログラム160を逐次解釈して中間コードを生成する。生成された中間コードは、キャッシュ138にキューイング(エンキュー)される。コマンド送信部140は、キャッシュ138にキューイングされた中間コードを都度参照して指令を対象のロボット200に送信する。
The interpreter 136 sequentially interprets the
データ管理部142は、プログラム実行に必要なデータを保持する。データ管理部142が保持するデータは、予め定められた周期でリフレッシュ(更新)される。データ管理部142は、入出力データを保持するためのIOデータ領域144と、制御装置100の内部で使用されるワーキングデータを保持するための内部データ領域146および共有領域148とを含む。共有領域148には、IECプログラム実行部130およびアプリケーションプログラム実行部134が共通に参照可能なデータが格納される。データ管理部142は、データを変数の形で管理するようにしてもよい。
The
図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
入出力リフレッシュ処理170は、前回の制御周期T1で計算した出力データ(指令値)を出力する処理と、今回の制御周期で利用する入力データを取得する処理とを含む。
The input/
モーション入力処理171は、モーション処理部132での処理に必要なデータを取得する処理を含む。このように、IECプログラム150の実行前に、対象のデバイス(対象軸)から現在値を取得する処理が実行される。
The
アプリケーション入力処理172は、アプリケーションプログラム実行部134での処理に必要なデータを取得する処理を含む。
IECプログラム実行処理173は、IECプログラム150の実行処理に相当し、IECプログラム150に従って、入力データおよび内部データから、出力データおよび新たな内部データを計算する処理を含む。
The IEC
モーション実行処理174は、モーション処理部132の処理の実行に相当し、例えば、IECプログラム150に含まれるモーション命令の実行処理などを含む。モーション処理部132からの処理結果を出力する処理を含む。典型的には、モーション実行処理174は、対象のデバイス(対象軸)に対する指令値を計算する処理を含む。
The
アプリケーション実行処理175は、アプリケーションプログラム160の実行処理に相当し、アプリケーションプログラム実行部134での命令実行およびアプリケーションプログラム実行部134からの処理結果を出力する処理(ロボット200にコマンドを送信する処理)を含む。
The
このように、制御装置100においては、IECプログラム150(第1ユーザプログラム)の実行、モーション処理部132の処理の実行、アプリケーションプログラム160の実行の順番で、予め定められた制御周期T1毎に繰り返される。
In this way, in the
制御装置100は、IECプログラム150の実行、モーション処理部132の処理の実行、アプリケーションプログラム160の実行を制御周期T1毎に繰り返し実行するため、同じ制御周期T1内で、モーション処理部132による処理結果をアプリケーションプログラム160に反映できる。これによって、制御装置100は、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。
The
<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
(d1:データ交換方式)
まず、モーション処理部132とアプリケーションプログラム実行部134との間でデータを交換する方式について説明する。この方式では、モーション処理部132が保持するデータ(フィールドバック値および指令値)をアプリケーションプログラム実行部134が参照する。
(d1: Data exchange method)
First, a method of exchanging data between the
図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
図9を参照して、入出力リフレッシュ処理170(図8参照)により、データ管理部142のIOデータ領域144に保持される入出力データが更新される(シーケンスSQ10)。
Referring to Figure 9, the input/output data held in the
モーション入力処理171(図8参照)において、モーション処理部132は、フィードバック値を算出するための入力データを取得する(シーケンスSQ12)。入力データは、モーション処理の対象となるデバイス(対象軸)の状態値を含んでいてもよい。そして、モーション処理部132は、取得した入力データからフィードバック値を計算し、計算したフィールドバック値で更新する(シーケンスSQ14)。典型的には、フィールドバック値は、コンベア30の移動速度の実績値である。なお、更新される対象のデータは、アプリケーションプログラム実行部134から予め取得および保持が依頼されている値を含む(後述のシーケンスSQ16を参照)。
In the motion input process 171 (see FIG. 8), the
続いて、アプリケーション入力処理172(図8参照)において、アプリケーションプログラム実行部134は、後続のアプリケーション実行処理175(図8参照)において、モーション処理に関する必要なデータを利用できるように、モーション処理部132に対して、データの取得および保持を依頼する(シーケンスSQ16)。この依頼は、次の制御周期において実行されることになる。対象のデータは、参照変数設定162(図7参照)に定義される。
Next, in application input processing 172 (see FIG. 8), the application
したがって、モーション入力処理171は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を保持する処理を含む(シーケンスSQ14およびSQ16)。
The
続いて、IECプログラム実行処理173(図8参照)において、IECプログラム実行部130は、入力データおよび内部データを取得し(シーケンスSQ18)、IECプログラム150を実行し(シーケンスSQ20)、その実行結果を、データ管理部142に出力データおよび内部データとして格納する(シーケンスSQ22)。
Next, in the IEC program execution process 173 (see FIG. 8), the IEC
続いて、モーション実行処理174(図8参照)において、モーション処理部132は、入力データを取得し(シーケンスSQ24)、対象のモーション処理を実行し(シーケンスSQ26)、その実行結果(指令値)で更新する(シーケンスSQ28)とともに、データ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ30)。なお、更新される対象のデータは、アプリケーションプログラム実行部134から予め取得および保持が依頼されている値を含む(シーケンスSQ16を参照)。
Next, in the motion execution process 174 (see FIG. 8), the
したがって、モーション実行処理174は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を保持する処理を含む(シーケンスSQ16およびSQ28)。
The
続いて、アプリケーション実行処理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
なお、モーション処理部132から参照できるデータは、上述のシーケンスSQ16において、予め取得および保持が要求されている。モーション処理部132が保持するデータとしては、今回の制御周期で取得されたフィールドバック値、および、今回の制御周期でモーション処理部132が計算した指令値を含んでいてもよい。
The data that can be referenced by the
そして、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行結果をデータ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ40)。また、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行によってコマンドの送信が必要になると、当該コマンドを対象のロボット200へ送信する(シーケンスSQ42)。出力データは、画像処理装置450がカメラ400で撮像するタイミングを指示する撮像トリガを含めることもできる。また、アプリケーションプログラム160の実行によって生成されるコマンドには、モーション処理部132が保持するフィールドバック値および指令値を反映することもできる。
Then, the application
上述したような処理手順によって、アプリケーションプログラム実行部134は、同じ制御周期においてモーション処理部132が取得および生成したデータを利用して、必要な処理およびコマンドの生成を行うことができる。すなわち、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。
By using the processing procedure described above, the application
(d2:共有データ参照方式)
次に、モーション処理部132とアプリケーションプログラム実行部134との間で共有データを参照する方式について説明する。この方式では、モーション処理部132およびアプリケーションプログラム実行部134は、共有領域148に格納されたデータをそれぞれが参照する。
(d2: Shared Data Reference Method)
Next, a method for referencing shared data between the
図10は、本実施の形態に係る制御装置100においてモーション処理部132の処理結果をアプリケーションプログラム実行部134の実行に反映する方法の別の一例を示す模式図である。
Figure 10 is a schematic diagram showing another example of a method for reflecting the processing results of the
図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
モーション入力処理171(図8参照)において、モーション処理部132は、フィードバック値を算出するための入力データを取得し(シーケンスSQ12)、取得した入力データからフィードバック値を計算し、計算したフィールドバック値で更新する(シーケンスSQ14)。そして、モーション処理部132は、計算したフィールドバック値をデータ管理部142の共有領域148に格納する(シーケンスSQ48)。
In the motion input process 171 (see FIG. 8), the
このように、モーション処理部132の処理の実行は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を共有領域148に格納する処理を含む。共有領域148に格納された値は、アプリケーションプログラム160の実行において参照可能になっている。
In this way, the execution of the processing by the
図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
続いて、モーション実行処理174(図8参照)において、モーション処理部132は、入力データを取得し(シーケンスSQ24)、対象のモーション処理を実行し(シーケンスSQ26)、その実行結果(指令値)を格納する(シーケンスSQ28)とともに、データ管理部142のIOデータ領域144および共有領域148に出力データとして格納する(シーケンスSQ50)。
Next, in the motion execution process 174 (see FIG. 8), the
このように、モーション処理部132の処理の実行は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を共有領域148に格納する処理を含む。共有領域148に格納された値は、アプリケーションプログラム160の実行において参照可能になっている。
In this way, the execution of the processing by the
続いて、アプリケーション実行処理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
そして、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行結果をデータ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ40)。また、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行によってコマンドの送信が必要になると、当該コマンドを対象のロボット200へ送信する(シーケンスSQ42)。
Then, the application
上述したような処理手順によって、アプリケーションプログラム実行部134は、同じ制御周期においてモーション処理部132が取得および生成したデータを利用して、必要な処理およびコマンドの生成を行うことができる。すなわち、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。
By using the processing procedure described above, the application
<E.設定例およびアプリケーションプログラム例>
次に、本実施の形態に係る制御システム1の制御装置100に対する設定例および制御装置100で実行されるアプリケーションプログラム160の一例について説明する。
<E. Setting Examples and Application Program Examples>
Next, a setting example for the
図11は、本実施の形態に係るサポート装置600が提供するユーザインターフェイス画面の一例を示す模式図である。図11には、モーション処理に関するモーション設定152(図7参照)を生成するためのユーザインターフェイス画面650が示されている。
Figure 11 is a schematic diagram showing an example of a user interface screen provided by the
ユーザインターフェイス画面650は、対象軸(本実施例においては、サーボドライバ350が駆動するサーボモータ300)の選択を受け付けて、当該対象軸に関するパラメータの設定を受け付ける。図11には、「MC_Axis000(0)」をラベルとする軸の設定例が示されている。
The
より具体的には、ユーザインターフェイス画面650は、対象軸(サーボモータ300)の駆動に係る速度、加速度、トルクに関する設定値を受け付ける設定受付部652と、サーボドライバ350に接続されたサーボモータ300に関する設定値を受け付ける設定受付部654とを含む。ユーザインターフェイス画面650を介して設定された設定値(パラメータ)は、モーション設定152として格納される。
More specifically, the
図12は、本実施の形態に係るサポート装置600が提供するユーザインターフェイス画面の別の一例を示す模式図である。図12には、アプリケーションプログラム160の実行時に参照可能な変数を定義する参照変数設定162(図7参照)を生成するためのユーザインターフェイス画面660が示されている。
Figure 12 is a schematic diagram showing another example of a user interface screen provided by the
ユーザインターフェイス画面660は、対象軸(本実施例においては、サーボドライバ350が駆動するサーボモータ300)の選択を受け付けて、当該対象軸に関するパラメータの設定を受け付ける。
The
より具体的には、ユーザインターフェイス画面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
なお、ユーザインターフェイス画面660は、対象軸に関連付けられる複数の値のうち、いずれの値を使用するのかを設定できるようになっている。すなわち、ユーザインターフェイス画面660は、データ種別選択欄665を有している。対象軸の現在値、すなわちフィードバック値を選択する場合には、「Actual Position」が選択される。また、対象軸に対する指令値を選択する場合には、「Command Position」が選択される。図12に示す例では、第1エントリ661には、「MC_Axis000(0)」の現在値(フィールドバック値)が割り当てられており、第2エントリ662には、「MC_Axis000(0)」の指令値が割り当てられている。
The
このように、参照変数設定162は、モーション処理に関して定義された変数と、アプリケーションプログラム160において定義された変数とを対応付ける情報を含むことになる。
In this way, the
さらに、ユーザインターフェイス画面660は、各エントリの値を更新する条件を設定する更新条件設定欄666を有している。
Furthermore, the
更新条件設定欄666には、後述するような手順によって設定されるラッチ信号の番号が設定可能になっている。更新条件設定欄666に何らかの番号も設定されていなければ、制御周期毎に値が更新されることになる。
In the update
一方、更新条件設定欄666に番号が設定されていなければ、設定された番号の信号が変化する(FALSEからTRUE、あるいは、TRUEからFALSE)と、対応する値が更新されることになる。更新条件設定欄666に設定される番号が正であれば、信号の立ち上がり(FALSEからTRUE)が値更新の条件となり、更新条件設定欄666に設定される番号が負であれば、信号の立ち上がり(TRUEからFALSE)が値更新の条件となる。
On the other hand, if no number is set in the update
図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
ユーザインターフェイス画面670は、ラッチ信号となる入出力信号を取得するデバイスを設定するソースデバイス設定欄673と、設定されたデバイスがもつデータのうち対象とするデータの位置を設定するポート設定欄674と、割り当てられる番号を設定する番号設定欄675とを含む。
The
図13に示す例では、番号として「4001」が第1エントリ671に対応付けられており、番号として「4002」が第2エントリ672に対応付けられている。なお、ユーザインターフェイス画面670において設定したラッチ番号は、アプリケーションプログラム160においても参照することができる。
In the example shown in FIG. 13, the number "4001" is associated with the
図12および図13に示すユーザインターフェイス画面において設定された内容は、参照変数設定162として格納される。
The contents set in the user interface screens shown in Figures 12 and 13 are stored as reference
図14は、本実施の形態に係る制御装置100が実行するアプリケーションプログラム160の一例を示す模式図である。図14には、一例として、制御装置100からカメラ400に対して撮像トリガが与えられると、ロボット200をコンベア30に追従させて移動させるプログラム例が示されている。図14には、一例として、V+言語で記述されたロボットプログラムのコードを示す。V+言語においては、各命令は「キーワード」と称される。以下では、「命令」の一例として「キーワード」を用いる場合について説明するが、「キーワード」に限られず、言語体系に応じた任意の命令を用いることができる。
Figure 14 is a schematic diagram showing an example of an
図14を参照して、アプリケーションプログラム160は、初期設定として、対象となる軸を特定するための対象軸設定のコード1601を含む。図14に示す例では、「Using_EndoderID」が「101」である軸がオブジェクト「belt」の「num」プロパティに設定されている。アプリケーションプログラム160は、初期設定として、対象軸が有しているラッチ信号を初期化するためのコード1602を含む。
Referring to FIG. 14,
アプリケーションプログラム160のコード1603は、ロボット200の初期位置まで移動させるための命令である。アプリケーションプログラム160のコード1604は、各種設定を行うための命令である。
アプリケーションプログラム160のコード1605は、所定条件が満たされると、実行される命令を規定する。実行される命令は、「4001」のラッチ番号が付与された信号が検出される(立ち上がりまたは立ち上がりが生じる)まで待機するためのコード1606と、信号が検出されると、対象軸の現在値の値を取得するためのコード1607と、対象軸の現在値を基準としてロボット200に所定の動作を行わせるためのコード1608とを含む。すなわち、コード1607において、「%belt」との変数1609に対象軸の現在値がセットされ、コード1608において、変数1609(変数%belt)を基準とした移動などのコマンドがロボット200に送信される。
以上のように、本実施の形態に係る制御装置100においては、IECプログラム150の実行時に、モーション処理部132が管理するモーション軸に関する情報を遅延なく参照できるので、制御性能をより高めることができる。
As described above, in the
<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
<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
[構成3]
前記第2ユーザプログラムの実行は、先に実行された前記モーション処理部の処理の実行において保持された値を参照する処理(SQ36,SQ38)を含む、構成2に記載の制御装置。
[Configuration 3]
3. The control device according to
[構成4]
前記モーション処理部の処理の実行は、予め定められた設定(162)に従って、前記第2ユーザプログラムの実行において参照される対象となる値を共有領域に格納する処理(SQ48)を含む、構成1に記載の制御装置。
[Configuration 4]
The control device according to
[構成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
[構成7]
前記モーション処理部の処理の実行は、対象のデバイスに対する指令値を計算する処理とを含む、構成1~6のいずれか1項に記載の制御装置。
[Configuration 7]
The control device according to any one of
[構成8]
前記第1ユーザプログラムの実行前に、対象のデバイスから現在値を取得する処理(171)が実行される、構成1~7のいずれか1項に記載の制御装置。
[Configuration 8]
The control device according to any one of
[構成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
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 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.
予め定められた制御周期毎に、
シーケンス命令を含む第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.
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)
| 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)
| 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 |
-
2021
- 2021-01-27 JP JP2021011174A patent/JP7600716B2/en active Active
- 2021-03-10 WO PCT/JP2021/009576 patent/WO2022162958A1/en not_active Ceased
Patent Citations (3)
| 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 |