JP2022114752A - Control device, program execution method, and program - Google Patents
Control device, program execution method, and program Download PDFInfo
- Publication number
- JP2022114752A JP2022114752A JP2021011174A JP2021011174A JP2022114752A JP 2022114752 A JP2022114752 A JP 2022114752A JP 2021011174 A JP2021011174 A JP 2021011174A JP 2021011174 A JP2021011174 A JP 2021011174A JP 2022114752 A JP2022114752 A JP 2022114752A
- Authority
- JP
- Japan
- Prior art keywords
- execution
- processing
- program
- user program
- control device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 245
- 230000033001 locomotion Effects 0.000 claims abstract description 139
- 230000008569 process Effects 0.000 claims description 35
- 238000010586 diagram Methods 0.000 description 27
- 238000013523 data management Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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—Programme-controlled manipulators
- B25J9/16—Programme 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—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/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 programme 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)
Abstract
Description
本発明は、制御装置、プログラム実行方法およびプログラムに関する。 The present invention relates to a control device, program execution method and program.
様々な生産現場において、PLC(プログラマブルコントローラ)などの制御装置を用いたFA(Factory Automation)技術が広く普及している。近年のICT(Information and Communication Technology)の進歩に伴って、制御装置は、従来のシーケンス制御およびモーション制御だけではなく、ロボットや工作機械などを制御することも可能になっている。 FA (Factory Automation) technology using control devices such as PLCs (Programmable Controllers) is widely used in various production sites. With recent advances in ICT (Information and Communication Technology), it has become possible for control devices to control not only conventional sequence control and motion control, but also robots, machine tools, and the like.
例えば、特開2019-036043号公報(特許文献1)は、実行形式の異なる複数種類のプログラムに従う制御演算を単一の制御装置で実現する構成を開示する。 For example, Japanese Patent Laying-Open No. 2019-036043 (Patent Document 1) discloses a configuration in which a single control device realizes control calculations according to a plurality of types of programs with different execution formats.
例えば、ベルトコンベア上を流れるワークをロボットでピックして、所定位置にプレイスするようなアプリケーションを想定すると、ロボットは、ベルトコンベアの速度に応じて移動させる必要がある。 For example, assuming an application in which a robot picks up a work flowing on a belt conveyor and places it at a predetermined position, the robot must be moved according to the speed of the belt conveyor.
本発明の一つの目的は、モーション処理とロボット制御とを連携した制御をより高精度に行うことができる技術を提供することを一つの目的としている。 One object of the present invention is to provide a technology capable of performing control in which motion processing and robot control are coordinated with higher accuracy.
本発明のある局面に従えば、制御対象を制御するための制御装置が提供される。制御装置は、シーケンス命令を含む第1ユーザプログラムを実行する第1プログラム実行部と、モーション処理部と、ロボットを制御するための第2ユーザプログラムを実行する第2プログラム実行部とを含む。第1ユーザプログラムの実行、モーション処理部の処理の実行、第2ユーザプログラムの実行の順番で、予め定められた制御周期毎に繰り返されるように構成されている。同一の制御周期内において、モーション処理部の処理の実行によって計算された値を、後続の第2ユーザプログラムの実行において参照できるように構成されている。 According to one aspect of the present invention, a control device for controlling a controlled object is provided. The controller includes a first program execution unit executing a first user program including sequence instructions, a motion processing unit, and a second program execution unit executing a second user program for controlling the robot. The order of execution of the first user program, execution of the processing of the motion processing unit, and execution of the second user program is configured to be repeated every predetermined control cycle. In the same control cycle, the value calculated by executing the processing of the motion processing section can be referred to in subsequent execution of the second user program.
この構成によれば、同一の制御周期内において、モーション処理部の処理の実行によって計算された値を、後続のアプリケーションプログラムの実行において参照できるので、モーション処理部の処理に関する値を参照して、第2ユーザプログラムに従って制御対象を制御する場合に、データ更新の時間的ずれや揺らぎを低減できる。これによって、より高精度な制御を実現できる。 According to this configuration, the value calculated by executing the processing of the motion processing unit can be referred to in subsequent execution of the application program within the same control cycle. When controlling the controlled object according to the second user program, it is possible to reduce time shifts and fluctuations in data update. This makes it possible to achieve more precise control.
モーション処理部の処理の実行は、予め定められた設定に従って、第2ユーザプログラムの実行において参照される対象となる値を保持する処理を含んでいてもよい。この構成によれば、第2ユーザプログラムに実行において参照される値を直接渡すことができる。 Execution of processing by the motion processing unit may include processing for holding a value to be referenced in execution of the second user program according to a predetermined setting. According to this configuration, it is possible to directly pass the value referred to during execution to the second user program.
第2ユーザプログラムの実行は、先に実行されたモーション処理部の処理の実行において保持された値を参照する処理を含んでいてもよい。この構成によれば、第2ユーザプログラムに実行において、必要な値を参照することができる。 Execution of the second user program may include processing that refers to a value held in a previously executed execution of the motion processing unit. According to this configuration, necessary values can be referred to during execution of the second user program.
モーション処理部の処理の実行は、予め定められた設定に従って、第2ユーザプログラムの実行において参照される対象となる値を共有領域に格納する処理を含んでいてもよい。この構成によれば、共有領域を介して、第2ユーザプログラムに実行において参照される値を渡すことができる。 The execution of the process by the motion processing unit may include a process of storing in the shared area a value to be referred to in execution of the second user program according to a predetermined setting. According to this configuration, it is possible to pass a value referred to during execution to the second user program via the shared area.
第2ユーザプログラムの実行は、先に実行されたモーション処理部の処理の実行において共有領域に格納された値を参照する処理を含んでいてもよい。この構成によれば、第2ユーザプログラムに実行において、共有領域から必要な値を参照することができる。 The execution of the second user program may include a process of referring to the value stored in the shared area in the previously executed process of the motion processor. According to this configuration, necessary values can be referred to from the shared area during execution of the second user program.
予め定められた設定は、モーション処理部の処理に関して定義された変数と、第2ユーザプログラムにおいて定義された変数とを対応付ける情報を含んでいてもよい。この構成によれば、モーション処理部の処理において参照される値のうち、第2ユーザプログラムで必要となる値を予め設定できる。 The predetermined settings may include information that associates variables defined for processing of the motion processing section with variables defined in the second user program. According to this configuration, among the values referred to in the processing of the motion processing section, the values necessary for the second user program can be set in advance.
モーション処理部の処理は、対象のデバイスに対する指令値を計算する処理とを含んでいてもよい。この構成によれば、第2ユーザプログラムにおいて、モーション処理部の処理の実行により計算される指令値を参照できる。 The processing of the motion processor may include calculating a command value for the target device. According to this configuration, the second user program can refer to the command value calculated by executing the processing of the motion processing section.
第1ユーザプログラムの実行前に、対象のデバイスから現在値を取得する処理が実行されてもよい。この構成によれば、処理の実行前に、今回の制御周期において必要な情報を取得できる。 A process of obtaining the current value from the target device may be performed before the execution of the first user program. According to this configuration, necessary information can be acquired in the current control cycle before execution of the process.
本発明の別の局面に従えば、制御対象を制御するための制御装置におけるプログラム実行方法が提供される。プログラム実行方法は、予め定められた制御周期毎に、シーケンス命令を含む第1ユーザプログラムを実行するステップと、第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを含む。第2ユーザプログラムを実行するステップは、同一の制御周期内において、モーション処理の実行によって計算された値を参照するステップを含む。 According to another aspect of the present invention, there is provided a program execution method in a control device for controlling a controlled object. The program execution method includes steps of executing a first user program including sequence instructions, executing motion processing following execution of the first user program, and executing motion processing, at each predetermined control cycle. followed by repeating the step of executing the second user program. The step of executing the second user program includes the step of referring to the values calculated by executing the motion processing within the same control cycle.
本発明のさらに別の局面に従えば、制御対象を制御するための制御装置に向けられたプログラムが提供される。プログラムは、制御装置に、予め定められた制御周期毎に、シーケンス命令を含む第1ユーザプログラムを実行するステップと、第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを実行させる。第2ユーザプログラムを実行するステップは、同一の制御周期内において、モーション処理の実行によって計算された値を参照するステップを含む。 According to still another aspect of the present invention, there is provided a program directed to a control device for controlling a controlled object. The program causes the control device to execute a first user program including a sequence command at each predetermined control cycle; execute motion processing following execution of the first user program; is followed by the step of executing the second user program and repeating the step of executing the second user program. The step of executing the second user program includes the step of referring to the values calculated by executing the motion processing within the same control cycle.
本発明によれば、モーション処理とロボット制御とを連携した制御をより高精度に行うことができる。 According to the present invention, control in which motion processing and robot control are linked can be performed with higher accuracy.
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are given the same reference numerals, and the description thereof will not be repeated.
<A.適用例>
まず、本実施の形態に係る制御システム1のシステム構成例について説明する。
<A. Application example>
First, a system configuration example of the
図1は、本実施の形態に係る制御システム1のシステム構成例を示す模式図である。図1には、ロボット200がコンベア30上を流れるワーク2をピックして、所定位置にプレイスする構成例を示す。ロボット200は、コンベア30と実質的に同じ速度で移動した状態でワーク2をピックする。そのため、ロボット200の目標挙動は、コンベア30の移動速度に応じて計算される。
FIG. 1 is a schematic diagram showing a system configuration example of a
図1を参照して、制御システム1は、制御対象を制御するための制御装置100と、ロボットコントローラ250と、サーボドライバ350と、リモートIO装置500とを含む。これらの装置は、フィールドネットワーク10を介して、データ交換可能に接続される。
Referring to FIG. 1,
制御装置100は、フィールドネットワーク10に接続されたデバイスとの間で周期的にデータをやり取りして、後述するような処理を実行する。制御装置100は、典型的には、PLC(プログラマブルロジックコントローラ)により実現されてもよい。
The
ロボットコントローラ250は、ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、ロボット200を駆動するための指令値を出力するとともに、ロボット200の状態情報を取得して制御装置100へ出力する。
A
ロボット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が接続されてもよい。
The
図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 the execution of the IEC
本実施の形態に係る制御装置100においては、モーション処理部132の処理の実行後に、アプリケーションプログラム実行部134が処理を実行するため、モーション処理部132が取得したフィードバック値、および、モーション処理部132が計算した指令値をアプリケーションプログラム実行部134の処理の実行時に参照できる。
In
このようなモーション処理部132の実行によって取得あるいは計算される値を参照することで、アプリケーションプログラム160において、より精度の高い制御を実現できる。
By referring to the values obtained or calculated by executing the
<B.ハードウェア構成例>
次に、図1に示す制御システム1を構成する主要装置のハードウェア構成例について説明する。
<B. Hardware configuration example>
Next, an example of hardware configuration of 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 a hardware configuration example of the
プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、制御対象に対する制御演算を実現する。
The
メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
The
ストレージ110には、基本的な機能を実現するためのシステムプログラム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制御に係るプログラミング言語)で記述された命令を含んでいてもよい。
メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。
上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図1に示される表示装置700およびサーバ装置800など)との間でデータをやり取りする。
フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。図1に示すシステム構成例において、フィールドネットワークコントローラ108は、フィールドネットワーク10の通信マスタとして機能してもよい。
ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット124との間でデータをやり取りする。機能ユニット124は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニットなどからなる。
USBコントローラ120は、USB接続を介して、任意の情報処理装置(サポート装置600など)との間でデータをやり取りする。
The
(b2:ロボットコントローラ250)
図4は、本実施の形態に係る制御システム1を構成するロボットコントローラ250のハードウェア構成例を示す模式図である。図4を参照して、ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。
(b2: robot controller 250)
FIG. 4 is a schematic diagram showing a hardware configuration example of the
フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。すなわち、フィールドネットワークコントローラ252は、制御装置100とフィールドネットワーク10を介して接続するためのインターフェイスに相当する。
制御処理回路260は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ266と、インターフェイス回路270とを含む。
The
プロセッサ262は、ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ266は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
ストレージ266には、ロボット200を駆動するための制御を実現するためのシステムプログラム268が格納される。システムプログラム268は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。
The
インターフェイス回路270は、ロボット200との間でデータをやり取りする。
(b3:サーボドライバ350)
図5は、本実施の形態に係る制御システム1を構成するサーボドライバ350のハードウェア構成例を示す模式図である。図5を参照して、サーボドライバ350は、フィールドネットワークコントローラ352と、制御処理回路360と、ドライブ回路370と、カウンタ回路372とを含む。
(b3: servo driver 350)
FIG. 5 is a schematic diagram showing a hardware configuration example of the
フィールドネットワークコントローラ352は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。
制御処理回路360は、サーボモータ300の制御に必要な演算処理を実行する。一例として、制御処理回路360は、プロセッサ362と、メインメモリ364と、ストレージ366とを含む。
The
プロセッサ362は、サーボモータ300に係る制御演算を実行する。メインメモリ364は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ366は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
The
ストレージ366には、サーボモータ300の駆動制御を実現するためのシステムプログラム368が格納される。システムプログラム368は、サーボモータ300の動作に係る制御演算を実行する命令、および、サーボモータ300との間のインターフェイスに係る命令を含む。
The
ドライブ回路370は、コンバータ回路およびインバータ回路などを含み、制御処理回路360により計算された指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ300へ供給する。
カウンタ回路372は、エンコーダ310からのパルスを受信するA/D回路およびレジスタなどを含む。
(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)
(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 a hardware configuration example of the
プロセッサ602は、ストレージ610に格納された各種プログラムを読み出して、メインメモリ604に展開して実行することで、制御装置100で実行されるユーザプログラム(IECプログラム150およびアプリケーションプログラム160)の開発などの処理を提供する。
The
ストレージ610は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。ストレージ610には、典型的には、OS612と、制御装置100において実行されるユーザプログラムの作成、作成したユーザプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム614とが格納される。ストレージ610には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。
The
入力部606は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部608は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ602からの処理結果などを出力する。
An
ネットワークコントローラ616は、任意のネットワークを介した他の装置との間のデータのやり取りを制御する。USBコントローラ618は、USB接続を介して制御装置100との間のデータのやり取りを制御する。
サポート装置600は、光学ドライブ620を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体622(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読取られてストレージ610などにインストールされる。
The
サポート装置600で実行される各種プログラムは、コンピュータ読取可能な記録媒体622を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置600が提供する機能は、OS612が提供するモジュールの一部を利用する形で実現される場合もある。
Various programs to be executed by the
(b7:表示装置700)
本実施の形態に係る制御システム1を構成する表示装置700は、一例として、汎用パソコンを用いて実現されてもよい。表示装置700の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b7: display device 700)
(b8:サーバ装置800)
本実施の形態に係る制御システム1を構成するサーバ装置800は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置800の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b8: server device 800)
(b9:その他の形態)
図3~図6には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(b9: other forms)
3 to 6 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
<C.IECプログラムおよびアプリケーションプログラムの実行>
次に、本実施の形態に係る制御装置100におけるIECプログラム150およびアプリケーションプログラム160の実行について説明する。
<C. Execution of IEC Program and Application Program>
Next, execution of
図7は、本実施の形態に係る制御装置100におけるプログラム実行環境に関する構成を示す模式図である。図7を参照して、制御装置100は、IECプログラム実行部130と、アプリケーションプログラム実行部134と、データ管理部142とを含む。
FIG. 7 is a schematic diagram showing the configuration of the program execution environment in
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とを含む。
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毎にサイクリック実行する。
FIG. 8 is a schematic diagram showing a program execution cycle in
入出力リフレッシュ処理170は、前回の制御周期T1で計算した出力データ(指令値)を出力する処理と、今回の制御周期で利用する入力データを取得する処理とを含む。
The input/
モーション入力処理171は、モーション処理部132での処理に必要なデータを取得する処理を含む。このように、IECプログラム150の実行前に、対象のデバイス(対象軸)から現在値を取得する処理が実行される。
The motion input processing 171 includes processing for acquiring data necessary for processing in 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毎に繰り返される。
As described above, in the
制御装置100は、IECプログラム150の実行、モーション処理部132の処理の実行、アプリケーションプログラム160の実行を制御周期T1毎に繰り返し実行するため、同じ制御周期T1内で、モーション処理部132による処理結果をアプリケーションプログラム160に反映できる。これによって、制御装置100は、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。
Since the
<D.モーション処理部が管理する情報のアプリケーション実行部での参照>
上述したように、本実施の形態に係る制御装置100は、モーション処理部132の処理結果をアプリケーションプログラム実行部134での実行に反映できる。以下では、一例として、コンベア30の移動速度(エンコーダ310からの単位時間あたりパルス数)に応じて、ロボット200の移動速度などを調整する例について説明する。なお、コンベア30の移動速度は、モーション処理部132の処理の実行によって計算される。
<D. Referencing Information Managed by Motion Processing Unit in Application Execution Unit>
As described above,
(d1:データ交換方式)
まず、モーション処理部132とアプリケーションプログラム実行部134との間でデータを交換する方式について説明する。この方式では、モーション処理部132が保持するデータ(フィールドバック値および指令値)をアプリケーションプログラム実行部134が参照する。
(d1: data exchange method)
First, a method for exchanging data between the
図9は、本実施の形態に係る制御装置100においてモーション処理部132の処理結果をアプリケーションプログラム実行部134の実行に反映する方法の一例を示す模式図である。図9には、制御周期T1における処理およびデータのやり取りを示す。図9に示す一連の処理は、プロセッサ102がシステムプログラム111を実行することで実現されるユーザプログラムの実行環境下で実現される。すなわち、システムプログラム111は、制御装置100での後述するような処理を実現するための基本的な環境を提供する。図10に示す一連の処理についても同様である。
FIG. 9 is a schematic diagram showing an example of a method for reflecting the processing result of
図9を参照して、入出力リフレッシュ処理170(図8参照)により、データ管理部142のIOデータ領域144に保持される入出力データが更新される(シーケンスSQ10)。
9, input/output data held in
モーション入力処理171(図8参照)において、モーション処理部132は、フィードバック値を算出するための入力データを取得する(シーケンスSQ12)。入力データは、モーション処理の対象となるデバイス(対象軸)の状態値を含んでいてもよい。そして、モーション処理部132は、取得した入力データからフィードバック値を計算し、計算したフィールドバック値で更新する(シーケンスSQ14)。典型的には、フィールドバック値は、コンベア30の移動速度の実績値である。なお、更新される対象のデータは、アプリケーションプログラム実行部134から予め取得および保持が依頼されている値を含む(後述のシーケンスSQ16を参照)。
In the motion input processing 171 (see FIG. 8), the
続いて、アプリケーション入力処理172(図8参照)において、アプリケーションプログラム実行部134は、後続のアプリケーション実行処理175(図8参照)において、モーション処理に関する必要なデータを利用できるように、モーション処理部132に対して、データの取得および保持を依頼する(シーケンスSQ16)。この依頼は、次の制御周期において実行されることになる。対象のデータは、参照変数設定162(図7参照)に定義される。
Subsequently, in the application input processing 172 (see FIG. 8), the application
したがって、モーション入力処理171は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を保持する処理を含む(シーケンスSQ14およびSQ16)。
Accordingly, motion input processing 171 includes processing for holding values to be referenced in execution of
続いて、IECプログラム実行処理173(図8参照)において、IECプログラム実行部130は、入力データおよび内部データを取得し(シーケンスSQ18)、IECプログラム150を実行し(シーケンスSQ20)、その実行結果を、データ管理部142に出力データおよび内部データとして格納する(シーケンスSQ22)。
Subsequently, in IEC program execution processing 173 (see FIG. 8), IEC
続いて、モーション実行処理174(図8参照)において、モーション処理部132は、入力データを取得し(シーケンスSQ24)、対象のモーション処理を実行し(シーケンスSQ26)、その実行結果(指令値)で更新する(シーケンスSQ28)とともに、データ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ30)。なお、更新される対象のデータは、アプリケーションプログラム実行部134から予め取得および保持が依頼されている値を含む(シーケンスSQ16を参照)。
Subsequently, in the motion execution processing 174 (see FIG. 8), the
したがって、モーション実行処理174は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を保持する処理を含む(シーケンスSQ16およびSQ28)。
Accordingly,
続いて、アプリケーション実行処理175(図8参照)において、アプリケーションプログラム実行部134は、入力データを取得し(シーケンスSQ32)、アプリケーションプログラム160を実行する(シーケンスSQ34)。アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行過程において、モーション処理部132が保持するデータの参照が必要になると、モーション処理部132に対してデータの取得を試み(シーケンスSQ36)、モーション処理部132が保持するデータを取得する(シーケンスSQ38)。このように、アプリケーションプログラム160の実行は、先に実行されたモーション処理の実行において保持された値を参照する処理を含む。すなわち、アプリケーションプログラム160を実行する処理は、同一の制御周期内において、モーション処理の実行によって計算された値を参照する処理を含む。
Subsequently, in application execution processing 175 (see FIG. 8), application
なお、モーション処理部132から参照できるデータは、上述のシーケンスSQ16において、予め取得および保持が要求されている。モーション処理部132が保持するデータとしては、今回の制御周期で取得されたフィールドバック値、および、今回の制御周期でモーション処理部132が計算した指令値を含んでいてもよい。
Data that can be referred to by the
そして、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行結果をデータ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ40)。また、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行によってコマンドの送信が必要になると、当該コマンドを対象のロボット200へ送信する(シーケンスSQ42)。出力データは、画像処理装置450がカメラ400で撮像するタイミングを指示する撮像トリガを含めることもできる。また、アプリケーションプログラム160の実行によって生成されるコマンドには、モーション処理部132が保持するフィールドバック値および指令値を反映することもできる。
Then, application
上述したような処理手順によって、アプリケーションプログラム実行部134は、同じ制御周期においてモーション処理部132が取得および生成したデータを利用して、必要な処理およびコマンドの生成を行うことができる。すなわち、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。
By the processing procedure as described above, the application
(d2:共有データ参照方式)
次に、モーション処理部132とアプリケーションプログラム実行部134との間で共有データを参照する方式について説明する。この方式では、モーション処理部132およびアプリケーションプログラム実行部134は、共有領域148に格納されたデータをそれぞれが参照する。
(d2: shared data reference method)
Next, a method of referring to shared data between the
図10は、本実施の形態に係る制御装置100においてモーション処理部132の処理結果をアプリケーションプログラム実行部134の実行に反映する方法の別の一例を示す模式図である。
FIG. 10 is a schematic diagram showing another example of a method for reflecting the processing result of
図10を参照して、入出力リフレッシュ処理170(図8参照)により、データ管理部142のIOデータ領域144に保持される入出力データが更新される(シーケンスSQ10)。
10, input/output data held in
モーション入力処理171(図8参照)において、モーション処理部132は、フィードバック値を算出するための入力データを取得し(シーケンスSQ12)、取得した入力データからフィードバック値を計算し、計算したフィールドバック値で更新する(シーケンスSQ14)。そして、モーション処理部132は、計算したフィールドバック値をデータ管理部142の共有領域148に格納する(シーケンスSQ48)。
In the motion input processing 171 (see FIG. 8), the
このように、モーション処理部132の処理の実行は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を共有領域148に格納する処理を含む。共有領域148に格納された値は、アプリケーションプログラム160の実行において参照可能になっている。
In this way, the execution of processing by the
図10に示す処理手順においては、アプリケーション入力処理172(図8参照)において実質的な処理は行われない。 In the processing procedure shown in FIG. 10, no substantial processing is performed in the application input processing 172 (see FIG. 8).
続いて、IECプログラム実行処理173(図8参照)において、IECプログラム実行部130は、入力データおよび内部データを取得し(シーケンスSQ18)、IECプログラム150を実行し(シーケンスSQ20)、その実行結果を、データ管理部142に出力データおよび内部データとして格納する(シーケンスSQ22)。
Subsequently, in IEC program execution processing 173 (see FIG. 8), IEC
続いて、モーション実行処理174(図8参照)において、モーション処理部132は、入力データを取得し(シーケンスSQ24)、対象のモーション処理を実行し(シーケンスSQ26)、その実行結果(指令値)を格納する(シーケンスSQ28)とともに、データ管理部142のIOデータ領域144および共有領域148に出力データとして格納する(シーケンスSQ50)。
Subsequently, in motion execution processing 174 (see FIG. 8),
このように、モーション処理部132の処理の実行は、予め定められた参照変数設定162に従って、アプリケーションプログラム160の実行において参照される対象となる値を共有領域148に格納する処理を含む。共有領域148に格納された値は、アプリケーションプログラム160の実行において参照可能になっている。
In this way, the execution of processing by the
続いて、アプリケーション実行処理175(図8参照)において、アプリケーションプログラム実行部134は、入力データを取得し(シーケンスSQ32)、アプリケーションプログラム160を実行する(シーケンスSQ34)。アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行過程において、モーション処理部132が保持するデータの参照が必要になると、データ管理部142の共有領域148に格納されているデータを取得する(シーケンスSQ52)。このように、アプリケーションプログラム160の実行は、先に実行されたモーション処理部132の処理の実行において共有領域148に格納された値を参照する処理を含む。すなわち、アプリケーションプログラム160を実行する処理は、同一の制御周期内において、モーション処理の実行によって計算された値を参照する処理を含む。
Subsequently, in application execution processing 175 (see FIG. 8), application
そして、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行結果をデータ管理部142のIOデータ領域144に出力データとして格納する(シーケンスSQ40)。また、アプリケーションプログラム実行部134は、アプリケーションプログラム160の実行によってコマンドの送信が必要になると、当該コマンドを対象のロボット200へ送信する(シーケンスSQ42)。
Then, application
上述したような処理手順によって、アプリケーションプログラム実行部134は、同じ制御周期においてモーション処理部132が取得および生成したデータを利用して、必要な処理およびコマンドの生成を行うことができる。すなわち、同一の制御周期T1内において、モーション処理部132の処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。
By the processing procedure as described above, the application
<E.設定例およびアプリケーションプログラム例>
次に、本実施の形態に係る制御システム1の制御装置100に対する設定例および制御装置100で実行されるアプリケーションプログラム160の一例について説明する。
<E. Setting example and application program example>
Next, a setting example for the
図11は、本実施の形態に係るサポート装置600が提供するユーザインターフェイス画面の一例を示す模式図である。図11には、モーション処理に関するモーション設定152(図7参照)を生成するためのユーザインターフェイス画面650が示されている。
FIG. 11 is a schematic diagram showing an example of a user interface screen provided by
ユーザインターフェイス画面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が示されている。
FIG. 12 is a schematic diagram showing another example of the user interface screen provided by
ユーザインターフェイス画面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,
なお、ユーザインターフェイス画面660は、対象軸に関連付けられる複数の値のうち、いずれの値を使用するのかを設定できるようになっている。すなわち、ユーザインターフェイス画面660は、データ種別選択欄665を有している。対象軸の現在値、すなわちフィードバック値を選択する場合には、「Actual Position」が選択される。また、対象軸に対する指令値を選択する場合には、「Command Position」が選択される。図12に示す例では、第1エントリ661には、「MC_Axis000(0)」の現在値(フィールドバック値)が割り当てられており、第2エントリ662には、「MC_Axis000(0)」の指令値が割り当てられている。
Note that the
このように、参照変数設定162は、モーション処理に関して定義された変数と、アプリケーションプログラム160において定義された変数とを対応付ける情報を含むことになる。
In this way, the reference variable setting 162 includes information that associates variables defined for motion processing with variables defined in 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が示されている。
FIG. 13 is a schematic diagram showing still another example of the user interface screen provided by
ユーザインターフェイス画面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 on the user interface screens shown in FIGS. 12 and 13 are stored as reference
図14は、本実施の形態に係る制御装置100が実行するアプリケーションプログラム160の一例を示す模式図である。図14には、一例として、制御装置100からカメラ400に対して撮像トリガが与えられると、ロボット200をコンベア30に追従させて移動させるプログラム例が示されている。図14には、一例として、V+言語で記述されたロボットプログラムのコードを示す。V+言語においては、各命令は「キーワード」と称される。以下では、「命令」の一例として「キーワード」を用いる場合について説明するが、「キーワード」に限られず、言語体系に応じた任意の命令を用いることができる。
FIG. 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は、各種設定を行うための命令である。
A
アプリケーションプログラム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>
As shown in FIG. 12, the current value is obtained from the target axis when the condition of the latch signal is satisfied. At this time, if there is a time lag between the timing when the condition of the latch signal is met and the timing when the current value is acquired from the target axis, processing is performed to correct the time lag. good too.
具体的には、ラッチ信号の条件が成立したタイミング(時刻t1)と、対象軸から現在値を取得したタイミング(時刻t2)とを用いて、時刻t1におけるフィードバック位置は、(時刻t2で取得した現在値)+対象軸の移動速度(フィールドバック速度)×(t1-t2)と算出できる。 Specifically, using the timing (time t1) at which the condition of the latch signal is satisfied and the timing (time t2) at which the current value is acquired from the target axis, the feedback position at time t1 is current value) + movement speed of target axis (feedback speed) x (t1-t2).
このような現在値の補正処理は、制御装置100のシステムプログラム111で実行するようにしてもよい。
Such current value correction processing may be executed by the
<G.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
<G. Note>
The present embodiment as described above includes the following technical ideas.
[構成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 controlled object,
a first program execution unit (130) for executing a first user program (150) containing sequence instructions;
a motion processing unit (132);
a second program execution unit (134) that executes a second user program (160) for controlling the robot (200);
Execution of the first user program (173), execution of the process of the motion processing unit (174), and execution of the second user program (175) are repeated in the order of a predetermined control period (T1). is configured as
A control device configured to refer to a value calculated by executing the processing of the motion processing unit within the same control cycle in subsequent execution of the second user program.
[構成2]
前記モーション処理部の処理の実行は、予め定められた設定(162)に従って、前記第2ユーザプログラムの実行において参照される対象となる値を保持する処理(SQ14,SQ28)を含む、構成1に記載の制御装置。
[Configuration 2]
Execution of processing by the motion processing unit includes processing (SQ14, SQ28) for holding values to be referred to in execution of the second user program according to a predetermined setting (162). Control device as described.
[構成3]
前記第2ユーザプログラムの実行は、先に実行された前記モーション処理部の処理の実行において保持された値を参照する処理(SQ36,SQ38)を含む、構成2に記載の制御装置。
[Configuration 3]
3. The control device according to
[構成4]
前記モーション処理部の処理の実行は、予め定められた設定(162)に従って、前記第2ユーザプログラムの実行において参照される対象となる値を共有領域に格納する処理(SQ48)を含む、構成1に記載の制御装置。
[Configuration 4]
[構成5]
前記第2ユーザプログラムの実行は、先に実行された前記モーション処理部の処理の実行において前記共有領域に格納された値を参照する処理(SQ52)を含む、構成4に記載の制御装置。
[Configuration 5]
The control device according to configuration 4, wherein the execution of the second user program includes a process (SQ52) of referring to the value stored in the shared area in the previously executed process of the motion processing unit.
[構成6]
前記予め定められた設定は、前記モーション処理部の処理に関して定義された変数と、前記第2ユーザプログラムにおいて定義された変数とを対応付ける情報(162;660)を含む、構成2~5のいずれか1項に記載の制御装置。
[Configuration 6]
Any one of
[構成7]
前記モーション処理部の処理の実行は、対象のデバイスに対する指令値を計算する処理とを含む、構成1~6のいずれか1項に記載の制御装置。
[Configuration 7]
7. The control device according to any one of
[構成8]
前記第1ユーザプログラムの実行前に、対象のデバイスから現在値を取得する処理(171)が実行される、構成1~7のいずれか1項に記載の制御装置。
[Configuration 8]
8. The control device according to any one of the
[構成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 controlled object,
For each predetermined control cycle (T1),
executing (173) a first user program (150) comprising sequence instructions;
following execution of the first user program, executing (174) motion processing;
repeating (175) the step of executing a second user program (160) following execution of said motion processing;
The program execution method, wherein the step of executing the second user program includes a step of referring to values calculated by executing the motion processing within the same control cycle.
[構成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 control device comprising:
For each predetermined control cycle (T1),
executing (173) a first user program comprising sequence instructions;
following execution of the first user program, executing (174) motion processing;
executing a step (175) of repeating the step of executing a second user program following execution of the motion processing;
A program according to
<H.利点>
本実施の形態に係る制御装置100によれば、同一の制御周期T1内において、モーション処理の実行によって計算された値を、後続のアプリケーションプログラム160の実行において参照できるようになっている。そのため、モーション処理に関連する特定の軸(デバイス)に関する値(指令値およびフィードバック値(現在値))を参照して、ロボット200を制御する場合に、データ更新の時間的ずれや揺らぎを低減できる。これによって、モーション処理とロボット制御とを連携したより高精度な制御を実現できる。
<H. Advantage>
According to the
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 It should be considered that the embodiments disclosed this time are illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the scope and meaning equivalent to the scope of the claims.
1 制御システム、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 host network, 30 conveyor, 50,60,70 execution period, 100 control device, 102,262,362,602 processor, 104,264,364,604 main memory, 106 host 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 process 175 Application execution process 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 unit, 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, 16 03, 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 controlled object,
a first program execution unit that executes a first user program including sequence instructions;
a motion processing unit;
a second program execution unit that executes a second user program for controlling the robot;
The order of execution of the first user program, execution of the processing of the motion processing unit, and execution of the second user program is configured to be repeated at a predetermined control cycle,
A control device configured to refer to a value calculated by executing the processing of the motion processing unit within the same control cycle in subsequent execution of the second user program.
予め定められた制御周期毎に、
シーケンス命令を含む第1ユーザプログラムを実行するステップと、
前記第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、
前記モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを備え、
前記第2ユーザプログラムを実行するステップは、同一の制御周期内において、前記モーション処理の実行によって計算された値を参照するステップを含む、プログラム実行方法。 A program execution method in a control device for controlling a controlled object,
For each predetermined control cycle,
executing a first user program comprising sequence instructions;
executing motion processing subsequent to execution of the first user program;
repeating the step of executing a second user program following execution of the motion processing;
The program execution method, wherein the step of executing the second user program includes a step of referring to values calculated by executing the motion processing within the same control cycle.
予め定められた制御周期毎に、
シーケンス命令を含む第1ユーザプログラムを実行するステップと、
前記第1ユーザプログラムの実行に続いて、モーション処理を実行するステップと、
前記モーション処理の実行に続いて、第2ユーザプログラムを実行するステップとを繰り返すステップを実行させ、
前記第2ユーザプログラムを実行するステップは、同一の制御周期内において、前記モーション処理の実行によって計算された値を参照するステップを含む、プログラム。
A program directed to a control device for controlling a controlled object, the control device comprising:
For each predetermined control cycle,
executing a first user program comprising sequence instructions;
executing motion processing subsequent to execution of the first user program;
executing a step of executing a second user program following execution of the motion processing;
A program according to claim 1, wherein the step of executing the second user program includes a step of referring to values calculated by executing the motion processing within the same control cycle.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021011174A JP2022114752A (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 JP2022114752A (en) | 2021-01-27 | 2021-01-27 | Control device, program execution method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022114752A true JP2022114752A (en) | 2022-08-08 |
Family
ID=82653088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021011174A Pending JP2022114752A (en) | 2021-01-27 | 2021-01-27 | Control device, program execution method, and program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2022114752A (en) |
WO (1) | WO2022162958A1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6919404B2 (en) * | 2017-08-10 | 2021-08-18 | オムロン株式会社 | Control device |
JP6950385B2 (en) * | 2017-09-12 | 2021-10-13 | オムロン株式会社 | Control device and control method |
JP6946909B2 (en) * | 2017-09-29 | 2021-10-13 | オムロン株式会社 | Control system and control device |
JP7230703B2 (en) * | 2019-06-20 | 2023-03-01 | オムロン株式会社 | Control device |
-
2021
- 2021-01-27 JP JP2021011174A patent/JP2022114752A/en active Pending
- 2021-03-10 WO PCT/JP2021/009576 patent/WO2022162958A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022162958A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761515B2 (en) | Control system for controlling control object and control device for linking control applications in control system | |
US10496079B2 (en) | Control device and control method | |
US10761884B2 (en) | Control device for operating multiple types of programs in different execution formats | |
US10678218B2 (en) | Control device | |
US10908577B2 (en) | Control device | |
US10606246B2 (en) | Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle | |
US20190095246A1 (en) | Support device and non-transitory storage medium | |
JP2021086232A (en) | Control system, control device and control method | |
JP2020107315A (en) | Synchronization control device, synchronization control system, synchronization control method, and simulation device | |
CN111176225A (en) | Method and apparatus for proxy execution and computation using an industrial controller | |
US11855907B2 (en) | Robot control system and control method | |
US20230101517A1 (en) | Robot control system and control method | |
WO2022162958A1 (en) | Control device, program execution method, and program | |
US12117788B2 (en) | Control device with second processing unit that accesses variable via first processing unit | |
US12045034B2 (en) | Control system, method, and program to improve debugging efficiency of an NC program and sequence program respectively controlling a machine tool and a peripheral target instrument | |
JP2019053397A (en) | Control apparatus and control method | |
WO2022162959A1 (en) | Control system, robot controller, and control method | |
JP7375632B2 (en) | Control system and support equipment | |
WO2022168336A1 (en) | Control device, control method, and control program | |
JP7392590B2 (en) | Robot control system, control program and control method | |
WO2021181800A1 (en) | Robot control system and control method | |
JP2021114015A (en) | Control unit | |
JP2021114019A (en) | Data processing method | |
JP2021026587A (en) | Control device |
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 |