JP7604918B2 - PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD - Google Patents
PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD Download PDFInfo
- Publication number
- JP7604918B2 JP7604918B2 JP2021013385A JP2021013385A JP7604918B2 JP 7604918 B2 JP7604918 B2 JP 7604918B2 JP 2021013385 A JP2021013385 A JP 2021013385A JP 2021013385 A JP2021013385 A JP 2021013385A JP 7604918 B2 JP7604918 B2 JP 7604918B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- robot
- iec
- user
- target 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 27
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 4
- 238000013461 design Methods 0.000 claims description 7
- 238000009877 rendering Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 30
- 230000007246 mechanism Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 23
- 230000009471 action Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000011960 computer-aided design Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000010365 information processing Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006698 induction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- 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
- G05B19/4093—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 characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Programmable Controllers (AREA)
- Numerical Control (AREA)
Description
本技術は、プログラム生成装置、プログラム生成プログラムおよびプログラム生成方法に関する。 This technology relates to a program generation device, a program generation program, and a program generation method.
FA(Factory Automation)分野においては、ロボットが様々なアプリケーションに用いられている。このようなアプリケーションにおいては、PLC(プログラマブルロジックコントローラ)などの制御装置で実行されるプログラムと、ロボットを制御するためのプログラムとが必要となる。 In the field of factory automation (FA), robots are used in a variety of applications. These applications require a program to be executed by a control device such as a programmable logic controller (PLC), and a program to control the robot.
このようなプログラムの作成を容易化するための技術が提案されている。例えば、特開2019-018250号公報(特許文献1)は、ロボットの動作プログラムの作成に要するオペレータの作業を減らすためのプログラミング装置などを開示する。 Technologies have been proposed to make it easier to create such programs. For example, JP 2019-018250 A (Patent Document 1) discloses a programming device that reduces the amount of work required by an operator to create a robot's operation program.
また、特開2018-118330号公報(特許文献2)は、複数のロボットの協調動作を短時間で自動生成することができる演算装置などを開示する。 In addition, JP 2018-118330 A (Patent Document 2) discloses a computing device that can automatically generate coordinated movements of multiple robots in a short period of time.
ロボットを含むアプリケーションにおいては、制御装置で実行されるプログラムと、ロボットを制御するためのプログラムとを直接的または間接的に連携させる必要がある。これに対して、上述の先行技術文献に開示される技術は、ロボットを動作させるためのプログラムの生成に注目するものであり、制御装置で実行されるプログラムについては、何ら考慮されていない。 In applications that include robots, it is necessary to directly or indirectly link the program executed by the control device with the program for controlling the robot. In contrast, the technology disclosed in the above-mentioned prior art documents focuses on the generation of programs for operating the robot, and does not take into account the program executed by the control device.
本技術は、ロボットを含むアプリケーションにおいて必要なプログラムを容易に生成できる解決手段を提供することを目的とする。 The aim of this technology is to provide a solution that makes it easy to generate the programs required for applications that include robots.
本技術のある実施の形態に係るプログラム生成装置は、対象装置を仮想空間上で仮想的に表現する描画部と、ユーザによる対象装置の動作内容の指定を取得する取得部と、指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するプログラム生成部とを含む。 A program generation device according to an embodiment of the present technology includes a rendering unit that virtually represents a target device in a virtual space, an acquisition unit that acquires a user's specification of the operation content of the target device, and a program generation unit that generates an IEC program and a robot program based on the specified operation content.
この構成によれば、ユーザは、仮想空間上で対象装置の動作内容を指定するだけで、対象装置を実環境で動作させるためのIECプログラムおよびロボットプログラムを生成できるので、プログラムの生成に関する知識が乏しいユーザであっても、動作に必要なプログラムを生成できる。 With this configuration, a user can generate an IEC program and a robot program for operating a target device in a real environment simply by specifying the operation details of the target device in a virtual space, so even a user with little knowledge about program generation can generate the program required for operation.
取得部は、指定された動作内容を特定する動作定義を生成するようにしてもよい。この構成によれば、ユーザは、動作定義などの生成を意識することなく、仮想空間上で対象装置の動作を指定さえすればよいので、専門的な知識が乏しいユーザであっても利用できる。また、指定された動作内容を特定する動作定義を生成することで、IECプログラムおよびロボットプログラムをより確実に生成できる。 The acquisition unit may generate an action definition that specifies the specified action content. With this configuration, the user only needs to specify the action of the target device in the virtual space without having to be aware of the generation of action definitions, etc., so even users with little specialized knowledge can use it. Furthermore, by generating an action definition that specifies the specified action content, IEC programs and robot programs can be generated more reliably.
プログラム生成装置は、動作定義に対するユーザによる変更を受け付ける受付部をさらに含むようにしてもよい。この構成によれば、ユーザは、指定された動作内容を特定する動作定義を確認した上で、必要に応じて修正などを行うことができる。 The program generation device may further include a reception unit that receives changes to the action definition made by the user. With this configuration, the user can check the action definition that specifies the specified action content, and then make corrections, etc., as necessary.
プログラム生成部は、IECプログラムとロボットプログラムとの間の実行順序を規定する情報をさらに生成するようにしてもよい。この構成によれば、ロボットと他の機構との間で同期して動作させる必要がある場合などにおいて、より正確な制御を実現できる。 The program generation unit may further generate information that specifies the execution order between the IEC program and the robot program. This configuration allows for more accurate control in cases where the robot and other mechanisms need to be operated in sync.
IECプログラムとロボットプログラムとの間の実行順序を規定する情報は、IECプログラムおよびロボットプログラムが参照する値を更新する命令を含むようにしてもよい。この構成によれば、IECプログラムおよびロボットプログラムが並列的に実行されるような環境において、両プログラム間で相互にインターロックを取りながら処理を進めることができる。 The information that specifies the execution order between the IEC program and the robot program may include instructions to update values referenced by the IEC program and the robot program. With this configuration, in an environment in which the IEC program and the robot program are executed in parallel, processing can proceed while maintaining an interlock between the two programs.
IECプログラムとロボットプログラムとの間の実行順序を規定する情報は、IECプログラムおよびロボットプログラムを実行するタイミングを規定するテーブルを含んでいてもよい。この構成によれば、IECプログラムおよびロボットプログラムの実行順序を明示的に規定できる。 The information that specifies the execution order between the IEC program and the robot program may include a table that specifies the timing for executing the IEC program and the robot program. With this configuration, the execution order of the IEC program and the robot program can be explicitly specified.
プログラム生成装置は、対象装置の設計データから仮想空間上で対象装置を仮想的に表現するための情報を生成する生成部をさらに含んでいてもよい。この構成によれば、CADデータなどの設計データから容易に対象装置を仮想空間に再現できる。 The program generation device may further include a generation unit that generates information for virtually expressing the target device in a virtual space from the design data of the target device. With this configuration, the target device can be easily reproduced in a virtual space from design data such as CAD data.
プログラム生成装置は、IECプログラムおよびロボットプログラムに基づいて、対象装置の動作を再現するシミュレータをさらに含んでいてもよい。この構成によれば、生成されたIECプログラムおよびロボットプログラムによる動作を容易に確認できる。 The program generation device may further include a simulator that reproduces the operation of the target device based on the IEC program and the robot program. With this configuration, the operation of the generated IEC program and the robot program can be easily confirmed.
本技術の別の実施の形態に係るプログラム生成プログラムは、コンピュータに、対象装置を仮想空間上で仮想的に表現するステップと、ユーザによる対象装置の動作内容の指定を取得するステップと、指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップとを実行させる。 A program generation program according to another embodiment of the present technology causes a computer to execute the steps of virtually representing a target device in a virtual space, acquiring a user's specification of the operation content of the target device, and generating an IEC program and a robot program based on the specified operation content.
本技術のさらに別の実施の形態に係るプログラム生成方法は、対象装置を仮想空間上で仮想的に表現するステップと、ユーザによる対象装置の動作内容の指定を取得するステップと、指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップとを含む。 A program generation method according to yet another embodiment of the present technology includes the steps of virtually representing a target device in a virtual space, acquiring a user's specification of the operation content of the target device, and generating an IEC program and a robot program based on the specified operation content.
本技術によれば、ロボットを含むアプリケーションにおいて必要なプログラムを容易に生成できる。 This technology makes it easy to generate the programs required for applications that include robots.
本技術の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 The embodiment of the present technology 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は、本実施の形態に係るプログラム生成装置の主たる機能を示す模式図である。図1には、本実施の形態に係るプログラム生成装置の一例として、サポート装置400を示す。サポート装置400は、対象装置を仮想空間上で仮想的に表現する描画機能を有している。ユーザは、対象装置の動作内容を指定するとともに、サポート装置400は、ユーザにより指定された動作内容を取得する。そして、サポート装置400は、指定された動作内容に基づいて、IECプログラム1104およびロボットプログラム1106を生成する。
<A. Application Examples>
First, an example of a situation in which the present technology is applied will be described. FIG. 1 is a schematic diagram showing main functions of a program generation device according to the present embodiment. FIG. 1 shows a
このような構成を提供することで、ロボットを含むアプリケーションにおいて必要なプログラムを容易に生成できる。 By providing such a configuration, it is easy to generate the programs required for applications that include robots.
なお、プログラム生成装置は、サポート装置400ではなく、任意の情報処理装置として実現してもよいし、必要な機能の一部または全部を複数のプロセッサリソースを用いて実現してもよい。
The program generation device may be realized as any information processing device instead of the
<B.制御システム構成>
次に、本実施の形態に係るプログラム生成装置を含む制御システム1の構成について説明する。
<B. Control System Configuration>
Next, a configuration of a
(b1:全体構成)
図2は、本実施の形態に係る制御システム1のシステム構成を概略する模式図である。図2を参照して、制御システム1は、制御装置100と、フィールドネットワーク10を介して制御装置100とネットワーク接続された、ロボットコントローラ250およびモータドライバ350とを含む。
(b1: Overall configuration)
2 is a schematic diagram outlining a system configuration of a
制御装置100は、フィールドネットワーク10に接続されたデバイスとの間でデータをやり取りして、後述するような処理を実行する。制御装置100は、典型的には、PLCにより実現されてもよい。
The
ロボットコントローラ250は、ロボット200の制御を担当する。より具体的には、ロボットコントローラ250は、ロボット200との間のインターフェイスとして機能し、制御装置100からの指令に従って、ロボット200を駆動するための指令を出力するとともに、ロボット200の状態値を取得して制御装置100へ出力する。
The
モータドライバ350は、図示しない任意の機構を駆動するモータ300の制御を担当する。より具体的には、モータドライバ350は、機構との間のインターフェイスとして機能し、制御装置100からの指令に従って、機構を構成する軸を駆動するための指令を対応するモータ300へ出力するとともに、モータ300の状態値を取得して制御装置100へ出力する。
The
フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。プロトコルとしてEtherCATを採用した場合には、制御装置100とフィールドネットワーク10に接続されたデバイスとの間で、例えば、数百μ秒~数m秒の定周期でデータをやり取りできる。このような定周期でのデータのやり取りによって、制御システム1に含まれるロボット200および機構を高速高精度に制御できる。
For the
制御装置100は、上位ネットワーク20を介して、表示装置500およびサーバ装置600に接続されてもよい。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。
The
制御装置100には、制御装置100で実行されるユーザプログラムのインストールや各種設定を行うためのサポート装置400が接続されてもよい。サポート装置400は、本実施の形態に係るプログラム生成装置の一例である。
A
以下、図2に示す制御システム1を構成する主要装置のハードウェア構成例について説明する。
Below, we will explain an example of the hardware configuration of the main devices that make up the
(b2:制御装置100)
図3は、本実施の形態に係る制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
(b2: 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には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム1104およびロボットプログラム1106などが格納される。
IECプログラム1104は、本実施の形態に係る制御システム1におけるロボット200を制御する処理以外の処理を実現するために必要な命令を含む。IECプログラム1104は、典型的には、シーケンス命令およびモーション命令を含み得る。IECプログラム1104は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよい。但し、IECプログラム1104は、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを含んでいてもよい。IECプログラム1104は、PLCが実行する基本的なプログラムであるので、「PLCプログラム」とも称される。
The
ロボットプログラム1106は、ロボット200を制御するための命令を含む。ロボットプログラム1106は、所定のプログラミング言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述された命令を含んでいてもよい。
The
メモリカードインターフェイス112は、着脱可能な記憶媒体の一例であるメモリカード114を受け付ける。メモリカードインターフェイス112は、メモリカード114に対して任意のデータの読み書きが可能になっている。
The
上位ネットワークコントローラ106は、上位ネットワーク20を介して、任意の情報処理装置(図2に示される表示装置500およびサーバ装置600など)との間でデータをやり取りする。
The
フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。
The
ローカルバスコントローラ116は、ローカルバス122を介して、制御装置100に含まれる任意の機能ユニット130との間でデータをやり取りする。機能ユニット130は、例えば、アナログ信号の入力および/または出力を担当するアナログI/Oユニット、デジタル信号の入力および/または出力を担当するデジタルI/Oユニット、エンコーダなどからのパルスを受け付けるカウンタユニットなどからなる。
The
USBコントローラ120は、USB接続を介して、任意の情報処理装置(サポート装置400など)との間でデータをやり取りする。
The
(b3:ロボットコントローラ250)
図4は、本実施の形態に係る制御システム1を構成するロボットコントローラ250のハードウェア構成例を示す模式図である。図4を参照して、ロボットコントローラ250は、
ロボットコントローラ250は、フィールドネットワークコントローラ252と、制御処理回路260とを含む。
(b3: robot controller 250)
4 is a schematic diagram showing an example of a hardware configuration of a
The
フィールドネットワークコントローラ252は、フィールドネットワーク10を介して、主として、制御装置100との間でデータをやり取りする。
The
制御処理回路260は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路260は、プロセッサ262と、メインメモリ264と、ストレージ270と、インターフェイス回路268とを含む。
The
プロセッサ262は、ロボット200を駆動するための制御演算を実行する。メインメモリ264は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ270は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
The
ストレージ270には、ロボット200を駆動するための制御を実現するためのシステムプログラム272が格納される。システムプログラム272は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。
The
インターフェイス回路268は、ロボット200との間でデータをやり取りする。
(b4:モータドライバ350)
図5は、本実施の形態に係る制御システム1を構成するモータドライバ350のハードウェア構成例を示す模式図である。図5を参照して、モータドライバ350は、フィールドネットワークコントローラ352と、制御処理回路360と、ドライブ回路380とを含む。
The
(b4: motor 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と、ストレージ370とを含む。
The
プロセッサ362は、モータ300に係る制御演算を実行する。メインメモリ364は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ370は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。
The
ストレージ370には、モータ300の駆動制御を実現するためのシステムプログラム372が格納される。システムプログラム372は、モータ300の動作に係る制御演算を実行する命令、および、モータ300との間のインターフェイスに係る命令を含む。
ドライブ回路380は、コンバータ回路およびインバータ回路などを含み、制御処理回路360により算出された指令値に従って、指定された電圧・電流・位相の電力を生成して、モータ300へ供給する。
The
モータ300は、機構を構成するいずれかの軸と機械的に結合されている。モータ300としては、駆動対象の機構に応じた特性のモータを採用できる。例えば、モータ300としては、誘導型モータ、同期型モータ、永久磁石型モータ、リラクタンスモータのいずれを採用してもよいし、回転型だけではなく、リニアモータを採用してもよい。
(b5:サポート装置400)
図6は、本実施の形態に係る制御システム1を構成するサポート装置400のハードウェア構成例を示す模式図である。図6を参照して、サポート装置400は、CPUやMPUなどのプロセッサ402と、メインメモリ404と、ストレージ410と、ネットワークコントローラ420と、USBコントローラ424と、入力部426と、表示部428とを含む。これらのコンポーネントは、バス408を介して接続される。
(b5: support device 400)
Fig. 6 is a schematic diagram showing an example of a hardware configuration of a
プロセッサ402は、ストレージ410に格納された各種プログラムを読み出して、メインメモリ404に展開して実行することで、サポート装置400で必要な処理を実現する。
The
ストレージ410は、例えば、HDDやSSDなどで構成される。ストレージ410には、典型的には、OS412と、後述するような処理を実現するための開発プログラム414とが格納される。なお、ストレージ410には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。
ネットワークコントローラ420は、任意のネットワークを介して、任意の情報処理装置との間でデータをやり取りする。
The
USBコントローラ424は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。
The
入力部426は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部428は、ディスプレイ、各種インジケータなどで構成され、プロセッサ402からの処理結果などを出力する。
The
サポート装置400は、光学ドライブ406を有していてもよい。光学ドライブ406は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体407(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)からプログラムを読み取って、ストレージ410などに格納する。
The
サポート装置400で実行される各種プログラムは、コンピュータ読取可能な記録媒体407を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。
The various programs executed by the
(b6:表示装置500)
本実施の形態に係る制御システム1を構成する表示装置500は、一例として、汎用パソコンを用いて実現されてもよい。表示装置500の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b6: display device 500)
The
(b7:サーバ装置600)
本実施の形態に係る制御システム1を構成するサーバ装置600は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置600の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b7: server device 600)
The
(b8:その他の形態)
図3~図6には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(b8: 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.開発プログラム>
図7は、本実施の形態に係るサポート装置400にインストールされた開発プログラム414のより詳細な構成を示す模式図である。図7を参照して、開発プログラム414は、主要なエレメントとして、描画エンジン430と、操作取得エンジン432と、シミュレータ434と、プログラム生成管理エンジン436と、IECプログラム生成エンジン438と、ロボットプログラム生成エンジン440とを含む。
C. Development Program
Fig. 7 is a schematic diagram showing a more detailed configuration of the
描画エンジン430は、対象装置を仮想空間上で仮想的に表現する描画部に相当する。描画エンジン430は、装置設定470を参照して、仮想空間上に任意の装置を描画する。装置設定470は、対象の装置に関する情報を含み、後述するように、CAD(computer-aided design)データなどの設計データから自動的に生成されてもよい。加えて、ユーザが対象とする任意の装置の情報を装置設定470に追加等するようにしてもよい。
The
なお、本明細書においては、仮想空間上に設定される任意の装置や機構を「対象装置」と総称する。但し、「対象装置」は、完全な装置として構成されている必要はなく、装置の一部の機構や部位なども含み得る概念である。 In this specification, any device or mechanism set in the virtual space is collectively referred to as the "target device." However, the "target device" does not have to be configured as a complete device, and is a concept that can include a partial mechanism or part of a device.
操作取得エンジン432は、ユーザによる対象装置の動作内容の指定を取得する取得部に相当する。より具体的には、操作取得エンジン432は、取得したユーザの操作に基づいて、動作定義460を生成する。動作定義460は、ユーザにより指定された動作内容を特定する情報である。動作定義460は、後述するように、ユーザによる操作の内容を記述したものであり、IECプログラム1104およびロボットプログラム1106を生成するための基準となる。
The
シミュレータ434は、設定された装置や機構の動作をエミュレートする。すなわち、シミュレータ434は、IECプログラム1104およびロボットプログラム1106に基づいて、対象装置の動作を再現する。シミュレータ434による挙動情報(例えば、時間毎の各部位の位置や速度など)は、描画エンジン430に出力される。描画エンジン430は、シミュレータ434からの挙動情報に基づいて、仮想空間上で装置や機構の動作を再現する。
The
プログラム生成管理エンジン436は、IECプログラム生成エンジン438およびロボットプログラム生成エンジン440によるプログラムの生成処理を管理するとともに、後述するような実行順序管理プログラム1108を生成する。
The program
IECプログラム生成エンジン438は、動作定義460を参照して、必要なIECプログラム1104を生成する。
The IEC
ロボットプログラム生成エンジン440は、動作定義460を参照して、必要なロボットプログラム1106を生成する。
The robot
このように、プログラム生成管理エンジン436、IECプログラム生成エンジン438およびロボットプログラム生成エンジン440は、ユーザにより指定された動作内容に基づいて、IECプログラム1104およびロボットプログラム1106を生成するプログラム生成部に相当する。
In this way, the program
実行順序管理プログラム1108は、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の一例である。実行順序管理プログラム1108に代えて、あるいは、実行順序管理プログラム1108とともに、実行順序を規定するテーブルを用意してもよい。
The execution
シミュレータ434は、制御装置100をエミュレートすることもでき、生成されたプログラム(IECプログラム1104、ロボットプログラム1106、実行順序管理プログラム1108)を参照して、プログラムによる装置や機構の動作を再現することもできる。
The
<D.生成手順例>
次に、本実施の形態に係るサポート装置400を用いたプログラムの生成手順の一例について説明する。
D. Example of Generation Procedure
Next, an example of a procedure for generating a program using
図8は、本実施の形態に係るサポート装置400を用いて仮想空間上で作成した対象装置の一例を示す模式図である。図8を参照して、ユーザは、サポート装置400が提供する仮想空間450上で任意の対象装置を仮想的に作成できる。図8には、ロボットと、ロボットを駆動するためのロボットスライダと、2つのスライダとを含む対象装置の例を示す。現実には、ロボットスライダおよび2つのスライダの各々は、モータ300およびモータドライバ350(図2参照)により駆動される。また、ロボットは、ロボットコントローラ250(図2参照)により制御される。
Figure 8 is a schematic diagram showing an example of a target device created in a virtual space using the
ロボットスライダおよび2つのスライダの各々の制御には、IECプログラム1104(図3参照)が用いられ、ロボットの制御には、ロボットプログラム1106(図3参照)が用いられる。本実施の形態に係るサポート装置400は、ユーザが後述するような操作を行うことで、IECプログラム1104およびロボットプログラム1106を生成する。
The IEC program 1104 (see FIG. 3) is used to control the robot slider and each of the two sliders, and the robot program 1106 (see FIG. 3) is used to control the robot. The
先に、図8に示される制御装置に動作について説明する。スライダ1は、3枚のパレットを搭載できる3段の棚が形成された移動トレイ1を所定方向に沿って移動させる。初期状態において、移動トレイ1には、空のパレット(ワークが置載されていないパレット)が格納されている。ロボットは、移動トレイ1から空のパレットをピックし、作業エリアにプレイスする。作業後には、ワークが置載されたパレットをロボットが移動トレイ1に戻す。
First, the operation of the control device shown in Figure 8 will be described. The
スライダ2は、ワークを供給する移動トレイ2を所定方向に沿って移動させる。初期状態において、移動トレイ2には、ワークが置載されており、ロボットが移動トレイ2からワークをピックする。
The
ロボットスライダは、スライダ1、作業エリア、スライダ2にロボットを移動させる。ロボットは、作業エリアにおいて、空のパレットにワークを置載する。すなわち、ロボットは、以下の動作を行う。
The robot slider moves the robot from
(1)スライダ1の移動トレイ1の棚にある空のパレットを先端のアームでピックして、作業エリアにプレイスする
(2)スライダ2の移動トレイ2に配置されたワークを先端の吸着機構でピックして、作業エリアにあるパレット上にプレイスする
(3)作業エリアにあるパレットをピックして、スライダ1の移動トレイ1の棚にプレイスする
以下、上述したような処理を実現するための操作手順の一例について説明する。
(1) An empty pallet on the shelf of
図9は、図8に示す対象装置の第1番目の動作を設定するための手順例を説明するための図である。図9を参照して、第1番目の動作として、ロボットが移動トレイ1からパレットをピックするために、移動トレイ1をロボットの近傍に移動する動作を設定する。
Figure 9 is a diagram for explaining an example of a procedure for setting the first operation of the target device shown in Figure 8. Referring to Figure 9, as the first operation, an operation is set in which the
より具体的には、ユーザは、スライダ1の移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間450においては、移動トレイ1の位置を任意に変更でき、ユーザは、サポート装置400上で動きおよび位置を確認できる。
More specifically, the user specifies the start and end positions of the
ユーザは、仮想空間450上で、マウス操作により移動トレイ1を選択して移動させることで、スライダ1の移動開始位置および移動終了位置を指定してもよいし、キーボード操作で対応するパラメータを入力あるいは変更することで、スライダ1の移動開始位置および移動終了位置を指定してもよい。
The user may specify the start and end positions of
図10は、図8に示す対象装置の第2番目の動作を設定するための手順例を説明するための図である。図10を参照して、第2番目の動作として、ロボットが移動トレイ1からパレットをピックするために、ロボットスライダでロボットを移動トレイ1の近傍に移動する動作を設定する。
Figure 10 is a diagram for explaining an example of a procedure for setting the second operation of the target device shown in Figure 8. Referring to Figure 10, as the second operation, an operation is set in which the robot slider moves the robot to the vicinity of the moving
より具体的には、ユーザは、ロボットスライダの移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間450においては、ロボットの位置を任意に変更でき、ユーザは、サポート装置400上で動きおよび位置を確認できる。
More specifically, the user specifies the start and end positions of the robot slider using a mouse or other means. Note that the position of the robot can be changed as desired in the
ユーザは、仮想空間450上で、マウス操作によりロボットを選択して移動させることで、ロボットスライダの移動開始位置および移動終了位置を指定してもよいし、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボットスライダの移動開始位置および移動終了位置を指定してもよい。
The user may specify the start and end positions of the robot slider by selecting and moving the robot with a mouse in the
図11は、図8に示す対象装置の第3番目の動作を設定するための手順例を説明するための図である。図11を参照して、第3番目の動作として、ロボットが移動トレイ1からパレットをピックするために、ロボット先端のアームの軌跡を設定(ロボットをティーチング)する。
Figure 11 is a diagram for explaining an example of a procedure for setting the third operation of the target device shown in Figure 8. Referring to Figure 11, as the third operation, the trajectory of the arm at the tip of the robot is set (the robot is taught) so that the robot can pick up a pallet from the moving
より具体的には、ユーザは、ロボット先端のアームの軌跡をマウス操作などで指定する。あるいは、ユーザは、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボット先端のアームの軌跡を指定してもよい。さらにあるいは、サポート装置400の表示部428上にティーチングペンダントのオブジェクトを表示して、ユーザが表示されたティーチングペンダントのオブジェクトに対して操作を行うことで、ロボット先端のアームの軌跡を指定してもよい。
More specifically, the user specifies the trajectory of the arm at the tip of the robot by operating a mouse or the like. Alternatively, the user may specify the trajectory of the arm at the tip of the robot by inputting or changing corresponding parameters by operating a keyboard. Furthermore, or alternatively, the user may specify the trajectory of the arm at the tip of the robot by displaying a teaching pendant object on the
図12は、図8に示す対象装置の第4番目の動作を設定するための手順例を説明するための図である。図12を参照して、第4番目の動作として、ロボットが移動トレイ1からピックしたパレットを作業エリアにプレイスするために、ロボットスライダでロボットを作業エリアの近傍に移動する動作を設定する。
Figure 12 is a diagram for explaining an example of a procedure for setting the fourth operation of the target device shown in Figure 8. Referring to Figure 12, as the fourth operation, an operation is set in which the robot slider moves the robot to the vicinity of the work area so that the robot can place the pallet picked up by the robot from the moving
より具体的には、ユーザは、ロボットスライダの移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間450においては、ロボットの位置を任意に変更でき、ユーザは、サポート装置400上で動きおよび位置を確認できる。
More specifically, the user specifies the start and end positions of the robot slider using a mouse or other means. Note that the position of the robot can be changed as desired in the
ユーザは、仮想空間450上で、マウス操作によりロボットを選択して移動させることで、ロボットスライダの移動開始位置および移動終了位置を指定してもよいし、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボットスライダの移動開始位置および移動終了位置を指定してもよい。
The user may specify the start and end positions of the robot slider by selecting and moving the robot with a mouse in the
図13は、図8に示す対象装置の第5番目の動作を設定するための手順例を説明するための図である。図13を参照して、第5番目の動作として、ロボットが移動トレイ1からピックしたパレットを作業エリアにプレイスするために、ロボット先端のアームの軌跡を設定する。
Figure 13 is a diagram for explaining an example of a procedure for setting the fifth operation of the target device shown in Figure 8. Referring to Figure 13, as the fifth operation, a trajectory of the arm at the tip of the robot is set so that the robot places the pallet picked up from the moving
より具体的には、ユーザは、ロボット先端のアームの軌跡をマウス操作などで指定する。あるいは、ユーザは、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボット先端のアームの軌跡を指定してもよい。さらにあるいは、サポート装置400の表示部428上にティーチングペンダントのオブジェクトを表示して、ユーザが表示されたティーチングペンダントのオブジェクトに対して操作を行うことで、ロボット先端のアームの軌跡を指定してもよい。
More specifically, the user specifies the trajectory of the arm at the tip of the robot by operating a mouse or the like. Alternatively, the user may specify the trajectory of the arm at the tip of the robot by inputting or changing corresponding parameters by operating a keyboard. Furthermore, or alternatively, the user may specify the trajectory of the arm at the tip of the robot by displaying a teaching pendant object on the
以下同様の手順で、対象装置の動作が順次設定される。より具体的には、第6番目の動作として、ロボットが移動トレイ2からワークをピックするために、移動トレイ2をロボットの近傍に移動する動作を設定する。第7番目の動作として、ロボットが移動トレイ2からワークをピックするために、ロボットスライダでロボットを移動トレイ2の近傍に移動する動作を設定する。第8番目の動作として、ロボットが移動トレイ2からワークをピックするために、ロボット先端のアームの軌跡を設定する。第9番目の動作として、ロボットが移動トレイ2からピックしたワークを作業エリアにあるパレットにプレイスするために、ロボットスライダでロボットを作業エリアの近傍に移動する動作を設定する。第10番目の動作として、ロボットが移動トレイ2からピックしたワークを作業エリアにあるパレットにプレイスするために、ロボット先端のアームの軌跡を設定する。さらに、ワークがプレイスされたパレットを移動トレイ1に移動するための動作が設定される。
The operations of the target device are set in sequence in the same manner. More specifically, as the sixth operation, an operation is set in which the moving
以上のような手順で、ユーザは、対象装置での動作を要素ごとに規定する。サポート装置400は、ユーザによる操作手順に応じて、動作定義460を生成する。
By following the above steps, the user specifies the operation of the target device for each element. The
図14は、本実施の形態に係るサポート装置400が生成した動作定義460の一例を示す図である。なお、説明の簡素化のため、以下においては、第1番目から第5番目までの動作に注目して説明する。
Figure 14 is a diagram showing an example of an
図14を参照して、動作定義460は、動作の順序を示す順序欄461と、動作対象を示す動作対象欄462と、機構種別を示す機構種別欄463と、動作内容を示す動作内容欄464とを含む。
Referring to FIG. 14, the
順序欄461には、ユーザにより設定された順序を示す番号が格納される。順序欄461に格納された番号ごとに、動作対象欄462に動作対象が定義され、機構種別欄463に機構種別が定義され、動作内容欄464に動作内容が定義される。
The
図14に示す例では、機構種別欄463には、「スライダ」および/または「ロボット」が格納される。基本的には、「スライダ」が格納された動作については、IECプログラム1104により実現され、「ロボット」が格納された動作については、ロボットプログラム1106により実現される。
In the example shown in FIG. 14, the
対応する動作対象および動作内容に応じて、IECプログラム1104およびロボットプログラム1106のコードが生成される。
Code for the
図15は、図14に示される動作定義460に従って生成されたIECプログラム1104の一例を示す。図16は、図14に示される動作定義460に従って生成されたロボットプログラム1106の一例を示す。
Figure 15 shows an example of an
図15に示されるIECプログラム1104は、初期化処理を実現するための命令に加えて、第1番目、第2番目および第4番目の動作に対応する命令が記述される。図15に示す例では、スライダの移動(位置制御)は、モーション命令(MC_MoveAbsolute)が用いられているが、スライダではなく回転機構などに適用する場合には、異なるモーション命令が用いられてもよい。
The
図16に示されるロボットプログラム1106は、第3番目および第5番目の動作に対応する命令が記述される。
The
このように、サポート装置400は、ユーザが仮想空間450上で指定した動作に応じて、IECプログラム1104およびロボットプログラム1106を自動的に生成する。なお、IECプログラム1104とロボットプログラム1106との間で、処理の動作順序およびインターロックを実現するために、実行順序管理プログラムが生成されてもよい。
In this way, the
図17は、図14に示される動作定義460に従って生成された実行順序管理プログラム1108の一例を示す。図17を参照して、実行順序管理プログラム1108は、IECプログラム1104およびロボットプログラム1106が共通に参照することのできる変数Index(フラグ)を順次更新(インクリメント)するための命令を含む。変数Indexを順次更新するとともに、変数Indexを各動作の実行条件とすることで、IECプログラム1104とロボットプログラム1106との間で処理を同期させることもできる。
Figure 17 shows an example of an execution
このように、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の一例である実行順序管理プログラム1108は、IECプログラム1104およびロボットプログラム1106が参照する値を更新する命令を含む。
Thus, the execution
なお、実行順序管理プログラム1108を生成する代わりに、IECプログラム1104およびロボットプログラム1106の実行順序を記述するテーブルや任意の定義を生成するようにしてもよい。すなわち、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の別の一例として、IECプログラム1104およびロボットプログラム1106を実行するタイミングを規定するテーブルであってもよい。
Instead of generating the execution
<E.動作定義の修正/変更>
サポート装置400は、図14に示される動作定義460に基づいて、IECプログラム1104およびロボットプログラム1106を自動的に生成可能であるが、ユーザは、一種の中間データである動作定義460を修正あるいは変更することもできる。
E. Modifying/changing the operation definition
The
例えば、ユーザは、仮想空間450上において、対象装置に含まれる機構およびロボットの動作および動作手順を指定した後、生成された動作定義460を参照して、動作の妥当性などを評価することができる。ユーザは、必要に応じて、動作定義460に規定される移動距離、目標座標、速度などの値を変更することができる。なお、変更された動作定義460に基づいて、仮想空間450上のシミュレーションを行うことも可能であり、シミュレーションにより動作の妥当性を確認できる。
For example, the user can specify the motion and motion procedure of the mechanism and robot included in the target device in the
図18は、図14に示される動作定義460に対してユーザが修正あるいは変更を行った一例を示す図である。図18を参照して、例えば、第2番目の動作については、第1番目の動作と競合することはないので、2つの動作を並列的に実行するように変更されている。
Figure 18 is a diagram showing an example in which the user has modified or changed the
また、元の第4番目の動作については、仮想空間450上のシミュレーションにより、移動距離の修正が必要であると判断されて、移動距離の値が変更されている。同様に、元の第5番目の動作については、より滑らかな軌跡となるように、通過するポイントが追加されるという経路の見直しが行われている。
For the original fourth motion, a simulation in
このように、サポート装置400は、動作定義460に対するユーザによる変更を受け付ける受付部を有していてもよい。
In this way, the
本実施の形態に係るサポート装置400によれば、動作定義460に記述された理解できる数値を修正あるいは変更するだけで、新たなIECプログラム1104およびロボットプログラム1106が自動的に生成される。これによって、IECプログラム1104およびロボットプログラム1106をプログラミングすることができない装置設計者などであっても、装置全体の動作の指定および指定した動作の確認などを容易に行うことができる。
According to the
<F.処理手順>
次に、本実施の形態に係るサポート装置400によるプログラム生成に係る処理手順の一例について説明する。
F. Processing Procedure
Next, an example of a processing procedure for program generation by the
図19は、本実施の形態に係るサポート装置400によるプログラム生成に係る処理手順を示すフローチャートである。図19に示す各ステップは、典型的には、サポート装置400のプロセッサ402が開発プログラム414を実行することで実現される。
Figure 19 is a flowchart showing the processing steps for program generation by the
図19を参照して、サポート装置400は、ユーザによる対象装置の設定を受け付ける(ステップS100)。そして、サポート装置400は、対象装置を仮想空間上で仮想的に表現する(ステップS102)。なお、サポート装置400は、装置設定470(図7)の形で外部からデータを読み込んでもよい。
Referring to FIG. 19, the
続いて、サポート装置400は、ユーザによる設定操作を受け付けて(ステップS104)、動作定義460を順次生成する(ステップS106)。すなわち、サポート装置400は、ユーザによる対象装置の動作内容の指定を取得する。そして、サポート装置400は、ユーザによる設定操作が終了したか否かを判断する(ステップS108)。ユーザによる設定操作が終了していなければ(ステップS108においてNO)、ステップS102以下の処理が繰り返される。
Then, the
ユーザによる設定操作が終了していれば(ステップS108においてYES)、サポート装置400は、ユーザによる動作定義460の表示が要求されたか否かを判断する(ステップS110)。
If the user's setting operation has been completed (YES in step S108), the
ユーザによる動作定義460の表示が要求されると(ステップS110においてYES)、サポート装置400は、生成した動作定義460を表示し(ステップS112)、ユーザによる修正または変更の操作を受け付け(ステップS114)、受け付けた内容に従って、動作定義460を変更する(ステップS116)。
When the user requests the display of the action definition 460 (YES in step S110), the
ユーザによる動作定義460の表示が要求されていなければ(ステップS110においてNO)、ステップS112~S116の処理はスキップされる。
If the user has not requested that the
次に、サポート装置400は、ユーザによるプログラム生成が要求されたか否かを判断する(ステップS118)。ユーザによるプログラム生成が要求されると(ステップS118においてYES)、サポート装置400は、指定された動作内容を記述した動作定義460に基づいて、IECプログラム1104、ロボットプログラム1106および実行順序管理プログラム1108を生成する(ステップS120)。
Next, the
以上により、サポート装置400によるプログラム生成に係る処理は終了する。なお、生成されたプログラム(IECプログラム1104、ロボットプログラム1106および実行順序管理プログラム1108)は、ユーザ操作に応じて、サポート装置400から制御装置100へ転送される。
This completes the process of program generation by the
<G.付加機能>
上述したように、装置設定470については、CADデータなどの設計データから自動的に生成するような機能を実装してもよい。この場合、対象となるワークの形状などについても、CADデータから自動的に生成するようにしてもよい。
<G. Additional Functions>
As described above, the device setting 470 may be implemented with a function of automatically generating the device setting 470 from design data such as CAD data. In this case, the shape of the target workpiece may also be automatically generated from the CAD data.
このようなCADデータを利用できる場合には、機構およびロボットが移動する方向や面を規定するようにしてもよい。例えば、XYZステージなどの機構およびロボットを含む製造装置においては、XYZステージのXY面を基準として、ロボットの軌跡を設定できるようにしてもよい。より具体的には、ロボットはXY面に平行にのみ動作するように制限し、その動作制限に応じて、ユーザによる設定の入力を支援するようにしてもよい。このようなユーザ設定に対して制限を行うことで、ユーザはより容易に動作の設定を行うことができる。さらに、機構とロボットとの間で同期したより正確な制御を実現できる。 When such CAD data is available, the direction and plane in which the mechanism and robot move may be specified. For example, in a manufacturing device including a mechanism such as an XYZ stage and a robot, the trajectory of the robot may be set based on the XY plane of the XYZ stage. More specifically, the robot may be restricted to only operate parallel to the XY plane, and the user may be assisted in inputting settings according to this operation restriction. By placing restrictions on such user settings, the user can more easily set the operation. Furthermore, more accurate control that is synchronized between the mechanism and the robot can be achieved.
このように、サポート装置400は、CADデータなどの対象装置の設計データから仮想空間上で対象装置を仮想的に表現するための情報(装置設定470)を生成する生成機能を有していてもよい。
In this way, the
また、ワークの対象となる面(例えば、ある傾きをもった一面を塗装するなど)に沿って、ロボットを移動させるようなプログラムの生成を容易に行うことができる。なお、ロボットをある傾きをもった面に沿って移動させる場合には、公知の座標変換を行うロジックを適用することが好ましい。 It is also easy to create a program that moves the robot along the target surface of the workpiece (for example, painting a surface with a certain inclination). When moving the robot along a surface with a certain inclination, it is preferable to apply logic that performs known coordinate transformation.
また、上述したようなワークの対象となる面は、CADデータではなく、仮想空間におけるオブジェクトの座標群から特定してもよい。例えば、ワークの露出面については、対応する座標群が算出される。そのため、算出される座標群を補間することで、露出面を特定できる。 The target surface of the workpiece as described above may be identified from a group of coordinates of an object in virtual space, rather than from CAD data. For example, a corresponding group of coordinates is calculated for the exposed surface of the workpiece. Therefore, the exposed surface can be identified by interpolating the calculated group of coordinates.
上述したように、本実施の形態に係るサポート装置400は、生成されたプログラムに従うシミュレーションも可能となっている。このようなシミュレーションの結果は、仮想空間上にレンダリング(再現)されるため、ユーザは、再現された機構やロボットの動作を参照しながら、生成されたプログラムの妥当性を事前に確認できる。
As described above, the
<H.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
対象装置を仮想空間(450)上で仮想的に表現する描画部(430)と、
ユーザによる前記対象装置の動作内容の指定を取得する取得部(432)と、
前記指定された動作内容に基づいて、IECプログラム(1104)およびロボットプログラム(1106)を生成するプログラム生成部(436,438,440)とを備える、プログラム生成装置。
[構成2]
前記取得部は、前記指定された動作内容を特定する動作定義(460)を生成する、構成1に記載のプログラム生成装置。
[構成3]
前記動作定義に対するユーザによる変更を受け付ける受付部をさらに備える、構成2に記載のプログラム生成装置。
[構成4]
前記プログラム生成部は、前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報(1108)をさらに生成する、構成1~3のいずれか1項に記載のプログラム生成装置。
[構成5]
前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムが参照する値を更新する命令を含む、構成4に記載のプログラム生成装置。
[構成6]
前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムを実行するタイミングを規定するテーブルを含む、構成4または5に記載のプログラム生成装置。
[構成7]
前記対象装置の設計データから前記仮想空間上で前記対象装置を仮想的に表現するための情報を生成する生成部をさらに備える、構成1~6のいずれか1項に記載のプログラム生成装置。
[構成8]
前記IECプログラムおよび前記ロボットプログラムに基づいて、前記対象装置の動作を再現するシミュレータ(434)をさらに備える、構成1~7のいずれか1項に記載のプログラム生成装置。
[構成9]
コンピュータ(400)に、
対象装置を仮想空間上で仮想的に表現するステップ(S102)と、
ユーザによる前記対象装置の動作内容の指定を取得するステップ(S106)と、
前記指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップ(S120)とを実行させる、プログラム生成プログラム。
[構成10]
対象装置を仮想空間上で仮想的に表現するステップ(S102)と、
ユーザによる前記対象装置の動作内容の指定を取得するステップ(S106)と、
前記指定された動作内容に基づいて、IECプログラムおよびロボットプログラムを生成するステップ(S120)とを備える、プログラム生成方法。
<H. Notes>
The present embodiment as described above includes the following technical idea.
[Configuration 1]
A rendering unit (430) that virtually represents a target device in a virtual space (450);
An acquisition unit (432) that acquires a user's designation of the operation content of the target device;
and a program generating unit (436, 438, 440) that generates an IEC program (1104) and a robot program (1106) based on the specified operation content.
[Configuration 2]
2. The program generating device according to
[Configuration 3]
3. The program generating device according to
[Configuration 4]
The program generation device according to any one of
[Configuration 5]
The program generating device of
[Configuration 6]
The program generation device according to
[Configuration 7]
The program generation device according to any one of
[Configuration 8]
The program generating device according to any one of
[Configuration 9]
A computer (400)
A step (S102) of virtually representing a target device in a virtual space;
A step of acquiring a user's designation of the operation content of the target device (S106);
and generating an IEC program and a robot program based on the specified operation content (S120).
[Configuration 10]
A step (S102) of virtually representing a target device in a virtual space;
A step of acquiring a user's designation of the operation content of the target device (S106);
and generating (S120) an IEC program and a robot program based on the specified operation content.
<I.利点>
本実施の形態に係る制御システム1によれば、ユーザは、仮想空間上で対象装置の動作内容を指定するだけで、対象装置を実環境で動作させるためのIECプログラムおよびロボットプログラムを生成できるので、プログラムの生成に関する知識が乏しいユーザであっても、動作に必要なプログラムを生成できる。
I. 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 制御システム、10 フィールドネットワーク、20 上位ネットワーク、100 制御装置、102,262,362,402 プロセッサ、104,264,364,404 メインメモリ、106 上位ネットワークコントローラ、108,252,352 フィールドネットワークコントローラ、110,270,370,410 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118 プロセッサバス、120,424 USBコントローラ、122 ローカルバス、130 機能ユニット、200 ロボット、250 ロボットコントローラ、260,360 制御処理回路、268 インターフェイス回路、272,372,1102 システムプログラム、300 モータ、350 モータドライバ、380 ドライブ回路、400 サポート装置、406 光学ドライブ、407 記録媒体、408 バス、412 OS、414 開発プログラム、420 ネットワークコントローラ、426 入力部、428 表示部、430 描画エンジン、432 操作取得エンジン、434 シミュレータ、436 プログラム生成管理エンジン、438 生成エンジン、440 ロボットプログラム生成エンジン、450 仮想空間、460 動作定義、461 順序欄、462 動作対象欄、463 機構種別欄、464 動作内容欄、470 装置設定、500 表示装置、600 サーバ装置、1104 IECプログラム、1106 ロボットプログラム、1108 実行順序管理プログラム。 1 Control system, 10 Field network, 20 Upper network, 100 Control device, 102, 262, 362, 402 Processor, 104, 264, 364, 404 Main memory, 106 Upper network controller, 108, 252, 352 Field network controller, 110, 270, 370, 410 Storage, 112 Memory card interface, 114 Memory card, 116 Local bus controller, 118 Processor bus, 120, 424 USB controller, 122 Local bus, 130 Functional unit, 200 Robot, 250 Robot controller, 260, 360 Control processing circuit, 268 Interface circuit, 272, 372, 1102 System program, 300 Motor, 350 Motor driver, 380 Drive circuit, 400 Support device, 406 Optical drive, 407 Recording medium, 408 bus, 412 OS, 414 development program, 420 network controller, 426 input unit, 428 display unit, 430 drawing engine, 432 operation acquisition engine, 434 simulator, 436 program generation management engine, 438 generation engine, 440 robot program generation engine, 450 virtual space, 460 operation definition, 461 sequence column, 462 operation target column, 463 mechanism type column, 464 operation content column, 470 device setting, 500 display device, 600 server device, 1104 IEC program, 1106 robot program, 1108 execution order management program.
Claims (8)
ユーザによる前記対象装置の動作内容の指定を取得する取得部と、
前記指定された動作内容に基づいて、IECプログラム、ロボットプログラム、および前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報を生成するプログラム生成部とを備え、
前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムとは独立した、前記IECプログラムおよび前記ロボットプログラムが参照する値を更新する命令を含む、プログラム生成装置。 a rendering unit that virtually represents a target device in a virtual space;
an acquisition unit that acquires a user's designation of the operation content of the target device;
a program generating unit that generates an IEC program , a robot program , and information that specifies an execution order between the IEC program and the robot program based on the specified operation content ,
A program generation device, wherein information specifying the execution order between the IEC program and the robot program includes instructions that are independent of the IEC program and the robot program and that update values referenced by the IEC program and the robot program .
対象装置を仮想空間上で仮想的に表現するステップと、
ユーザによる前記対象装置の動作内容の指定を取得するステップと、
前記指定された動作内容に基づいて、IECプログラム、ロボットプログラム、および前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報を生成するステップとを実行させ、
前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムとは独立した、前記IECプログラムおよび前記ロボットプログラムが参照する値を更新する命令を含む、プログラム生成プログラム。 On the computer,
A step of virtually representing a target device in a virtual space;
obtaining a user's designation of an operation content of the target device;
generating an IEC program , a robot program , and information defining an execution sequence between the IEC program and the robot program based on the specified operation content ;
A program generation program, in which information specifying the execution order between the IEC program and the robot program includes instructions that are independent of the IEC program and the robot program and that update values referenced by the IEC program and the robot program .
ユーザによる前記対象装置の動作内容の指定を取得するステップと、
前記指定された動作内容に基づいて、IECプログラム、ロボットプログラム、および前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報を生成するステップとを備え、
前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムとは独立した、前記IECプログラムおよび前記ロボットプログラムが参照する値を更新する命令を含む、プログラム生成方法。 A step of virtually representing a target device in a virtual space;
obtaining a user's designation of an operation content of the target device;
generating an IEC program , a robot program , and information defining an execution sequence between the IEC program and the robot program based on the specified operation content ;
A program generation method, in which information specifying the execution order between the IEC program and the robot program includes instructions that are independent of the IEC program and the robot program and that update values referenced by the IEC program and the robot program .
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021013385A JP7604918B2 (en) | 2021-01-29 | 2021-01-29 | PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD |
PCT/JP2021/009585 WO2022162960A1 (en) | 2021-01-29 | 2021-03-10 | Program generation device, program generation program, and program generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021013385A JP7604918B2 (en) | 2021-01-29 | 2021-01-29 | PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022116952A JP2022116952A (en) | 2022-08-10 |
JP7604918B2 true JP7604918B2 (en) | 2024-12-24 |
Family
ID=82653225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021013385A Active JP7604918B2 (en) | 2021-01-29 | 2021-01-29 | PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7604918B2 (en) |
WO (1) | WO2022162960A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000158301A (en) | 1998-11-30 | 2000-06-13 | Murata Mach Ltd | Plate handling system |
JP2008033419A (en) | 2006-07-26 | 2008-02-14 | Honda Motor Co Ltd | Robot teaching CAD apparatus and robot teaching method |
-
2021
- 2021-01-29 JP JP2021013385A patent/JP7604918B2/en active Active
- 2021-03-10 WO PCT/JP2021/009585 patent/WO2022162960A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000158301A (en) | 1998-11-30 | 2000-06-13 | Murata Mach Ltd | Plate handling system |
JP2008033419A (en) | 2006-07-26 | 2008-02-14 | Honda Motor Co Ltd | Robot teaching CAD apparatus and robot teaching method |
Also Published As
Publication number | Publication date |
---|---|
JP2022116952A (en) | 2022-08-10 |
WO2022162960A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6950347B2 (en) | Information processing equipment, information processing methods and programs | |
US10761513B2 (en) | Information processing device, information processing method, and non-transitory computer-readable recording medium | |
US10814486B2 (en) | Information processing device, information processing method, and non-transitory computer-readable recording medium | |
WO2011114778A1 (en) | Display device, display method, program, virtual mechanism library, and computer-readable recording medium | |
WO2010017835A1 (en) | A system and a method for off-line programming of an industrial robot | |
JP7247808B2 (en) | Control system, analysis method and program | |
JP6972873B2 (en) | Information processing equipment, information processing methods, and information processing programs | |
US20190094831A1 (en) | Control apparatus, control method, and support apparatus | |
JP2020107315A (en) | Synchronization control device, synchronization control system, synchronization control method, and simulation device | |
WO2018070041A1 (en) | Simulation device | |
JP7604918B2 (en) | PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD | |
JP7452124B2 (en) | Robot control system and control method | |
JP2827239B2 (en) | Operation state display device, operation instruction control device, and control device | |
CN105425728A (en) | Multi-axis motion serial control teaching programming method | |
US20220281103A1 (en) | Information processing apparatus, robot system, method of manufacturing products, information processing method, and recording medium | |
Stone et al. | 1Augmented Reality Interface For Industrial Robot Controllers | |
JP7501064B2 (en) | Simulation device, simulation method, and simulation program | |
US20250214234A1 (en) | Information processing apparatus, system, information processing method, method of manufacturing products, and recording medium | |
JP4074151B2 (en) | ROBOT CONTROL METHOD AND DEVICE, PROGRAM, AND RECORDING MEDIUM | |
WO2022249713A1 (en) | Control system, system program, and debugging method | |
WO2020137522A1 (en) | Synchronization control device, synchronization control system, synchronization control method, and simulation device | |
JP2023151876A (en) | Control apparatus, control method, development support apparatus, and program | |
KR101522430B1 (en) | Apparatus and method for providing graphic description information of a part program using a real-time simulator | |
WO2023203604A1 (en) | Simulation program, simulation device, and control method | |
JP2021144627A (en) | Control system and support 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: 20240806 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240902 |
|
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: 20241112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241125 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7604918 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |