[go: up one dir, main page]

JP7604918B2 - PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD - Google Patents

PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD Download PDF

Info

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
Application number
JP2021013385A
Other languages
Japanese (ja)
Other versions
JP2022116952A (en
Inventor
慎太郎 岩村
裕 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2021013385A priority Critical patent/JP7604918B2/en
Priority to PCT/JP2021/009585 priority patent/WO2022162960A1/en
Publication of JP2022116952A publication Critical patent/JP2022116952A/en
Application granted granted Critical
Publication of JP7604918B2 publication Critical patent/JP7604918B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical 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.

特開2019-018250号公報JP 2019-018250 A 特開2018-118330号公報JP 2018-118330 A

ロボットを含むアプリケーションにおいては、制御装置で実行されるプログラムと、ロボットを制御するためのプログラムとを直接的または間接的に連携させる必要がある。これに対して、上述の先行技術文献に開示される技術は、ロボットを動作させるためのプログラムの生成に注目するものであり、制御装置で実行されるプログラムについては、何ら考慮されていない。 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.

本実施の形態に係るプログラム生成装置の主たる機能を示す模式図である。FIG. 2 is a schematic diagram showing main functions of the program generating device according to the present embodiment. 本実施の形態に係る制御システムのシステム構成を概略する模式図である。1 is a schematic diagram illustrating an outline of a system configuration of a control system according to an embodiment of the present invention. 本実施の形態に係る制御システムを構成する制御装置のハードウェア構成例を示す模式図である。2 is a schematic diagram illustrating an example of a hardware configuration of a control device that constitutes the control system according to the present embodiment. FIG. 本実施の形態に係る制御システムを構成するロボットコントローラのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing an example of a hardware configuration of a robot controller that constitutes the control system according to the present embodiment. 本実施の形態に係る制御システムを構成するモータドライバのハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing an example of a hardware configuration of a motor driver that constitutes the control system according to the present embodiment. 本実施の形態に係る制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。2 is a schematic diagram illustrating an example of a hardware configuration of a support device that constitutes the control system according to the present embodiment. FIG. 本実施の形態に係るサポート装置にインストールされた開発プログラムのより詳細な構成を示す模式図である。2 is a schematic diagram showing a more detailed configuration of a development program installed in a support device according to the present embodiment; FIG. 本実施の形態に係るサポート装置を用いて仮想空間上で作成した対象装置の一例を示す模式図である。1 is a schematic diagram showing an example of a target device created in a virtual space using a support device according to an embodiment of the present invention; 図8に示す対象装置の第1番目の動作を設定するための手順例を説明するための図である。9 is a diagram for explaining an example of a procedure for setting a first operation of the target device shown in FIG. 8 . 図8に示す対象装置の第2番目の動作を設定するための手順例を説明するための図である。9 is a diagram for explaining an example of a procedure for setting a second operation of the target device shown in FIG. 8 . 図8に示す対象装置の第3番目の動作を設定するための手順例を説明するための図である。9 is a diagram for explaining an example of a procedure for setting a third operation of the target device shown in FIG. 8 . 図8に示す対象装置の第4番目の動作を設定するための手順例を説明するための図である。9 is a diagram for explaining an example of a procedure for setting a fourth operation of the target device shown in FIG. 8 . 図8に示す対象装置の第5番目の動作を設定するための手順例を説明するための図である。9 is a diagram for explaining an example of a procedure for setting a fifth operation of the target device shown in FIG. 8 . 本実施の形態に係るサポート装置が生成した動作定義の一例を示す図である。11 is a diagram showing an example of an operation definition generated by a support device according to the present embodiment; FIG. 図14に示される動作定義に従って生成されたIECプログラムの一例を示す。15 shows an example of an IEC program generated according to the operation definition shown in FIG. 14. 図14に示される動作定義に従って生成されたロボットプログラムの一例を示す。15 shows an example of a robot program generated in accordance with the operation definition shown in FIG. 14 . 図14に示される動作定義に従って生成された実行順序管理プログラムの一例を示す。15 shows an example of an execution order management program generated in accordance with the operation definition shown in FIG. 14. 図14に示される動作定義に対してユーザが修正あるいは変更を行った一例を示す図である。FIG. 15 is a diagram showing an example in which a user has made corrections or changes to the action definition shown in FIG. 14. 本実施の形態に係るサポート装置によるプログラム生成に係る処理手順を示すフローチャートである。6 is a flowchart showing a processing procedure relating to program generation by the support device according to the present embodiment.

本技術の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 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 support device 400 as an example of a program generation device according to the present embodiment. The support device 400 has a drawing function for virtually expressing a target device in a virtual space. A user specifies the operation content of the target device, and the support device 400 acquires the operation content specified by the user. Then, the support device 400 generates an IEC program 1104 and a robot program 1106 based on the specified operation content.

このような構成を提供することで、ロボットを含むアプリケーションにおいて必要なプログラムを容易に生成できる。 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 support device 400, and some or all of the required functions may be realized using multiple processor resources.

<B.制御システム構成>
次に、本実施の形態に係るプログラム生成装置を含む制御システム1の構成について説明する。
<B. Control System Configuration>
Next, a configuration of a control system 1 including a program generating device according to this embodiment will be described.

(b1:全体構成)
図2は、本実施の形態に係る制御システム1のシステム構成を概略する模式図である。図2を参照して、制御システム1は、制御装置100と、フィールドネットワーク10を介して制御装置100とネットワーク接続された、ロボットコントローラ250およびモータドライバ350とを含む。
(b1: Overall configuration)
2 is a schematic diagram outlining a system configuration of a control system 1 according to the present embodiment. Referring to Fig. 2, the control system 1 includes a control device 100, and a robot controller 250 and a motor driver 350 that are network-connected to the control device 100 via a field network 10.

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

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

モータドライバ350は、図示しない任意の機構を駆動するモータ300の制御を担当する。より具体的には、モータドライバ350は、機構との間のインターフェイスとして機能し、制御装置100からの指令に従って、機構を構成する軸を駆動するための指令を対応するモータ300へ出力するとともに、モータ300の状態値を取得して制御装置100へ出力する。 The motor driver 350 is responsible for controlling the motor 300 that drives an arbitrary mechanism (not shown). More specifically, the motor driver 350 functions as an interface between the mechanism and outputs commands to the corresponding motor 300 to drive the axes that make up the mechanism according to commands from the control device 100, and also acquires the state value of the motor 300 and outputs it to the control device 100.

フィールドネットワーク10には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。プロトコルとしてEtherCATを採用した場合には、制御装置100とフィールドネットワーク10に接続されたデバイスとの間で、例えば、数百μ秒~数m秒の定周期でデータをやり取りできる。このような定周期でのデータのやり取りによって、制御システム1に含まれるロボット200および機構を高速高精度に制御できる。 For the field network 10, EtherCAT (registered trademark) or EtherNet/IP, which are protocols for industrial networks, can be used. When EtherCAT is used as the protocol, data can be exchanged between the control device 100 and devices connected to the field network 10 at regular intervals of, for example, several hundred microseconds to several milliseconds. By exchanging data at such regular intervals, the robot 200 and mechanisms included in the control system 1 can be controlled at high speed and with high precision.

制御装置100は、上位ネットワーク20を介して、表示装置500およびサーバ装置600に接続されてもよい。上位ネットワーク20には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。 The control device 100 may be connected to the display device 500 and the server device 600 via a higher-level network 20. The higher-level network 20 may use a protocol for industrial networks such as EtherNet/IP.

制御装置100には、制御装置100で実行されるユーザプログラムのインストールや各種設定を行うためのサポート装置400が接続されてもよい。サポート装置400は、本実施の形態に係るプログラム生成装置の一例である。 A support device 400 may be connected to the control device 100 for installing user programs to be executed by the control device 100 and for performing various settings. The support device 400 is an example of a program generation device according to this embodiment.

以下、図2に示す制御システム1を構成する主要装置のハードウェア構成例について説明する。 Below, we will explain an example of the hardware configuration of the main devices that make up the control system 1 shown in Figure 2.

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

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

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

ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム1104およびロボットプログラム1106などが格納される。 Storage 110 stores a system program 1102 for implementing basic functions, as well as an IEC program 1104 and a robot program 1106 created according to the object to be controlled.

IECプログラム1104は、本実施の形態に係る制御システム1におけるロボット200を制御する処理以外の処理を実現するために必要な命令を含む。IECプログラム1104は、典型的には、シーケンス命令およびモーション命令を含み得る。IECプログラム1104は、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3で規定されるいずれかの言語で記述されてもよい。但し、IECプログラム1104は、IEC61131-3で規定される言語以外のメーカ独自言語で記述されるプログラムを含んでいてもよい。IECプログラム1104は、PLCが実行する基本的なプログラムであるので、「PLCプログラム」とも称される。 The IEC program 1104 includes instructions necessary to realize processes other than the process of controlling the robot 200 in the control system 1 according to this embodiment. The IEC program 1104 may typically include sequence instructions and motion instructions. The IEC program 1104 may be written in any language defined in IEC 61131-3 established by the International Electrotechnical Commission (IEC). However, the IEC program 1104 may include a program written in a manufacturer-specific language other than a language defined in IEC 61131-3. The IEC program 1104 is also referred to as a "PLC program" because it is a basic program executed by the PLC.

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

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

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

フィールドネットワークコントローラ108は、フィールドネットワーク10を介して、それぞれのデバイスとの間でデータをやり取りする。 The field network controller 108 exchanges data with each device via the field network 10.

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

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

(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 robot controller 250 constituting the control system 1 according to the present embodiment. Referring to FIG. 4, the robot controller 250 includes:
The robot controller 250 includes a field network controller 252 and a control processing circuit 260 .

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

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

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

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

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

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

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

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

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

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

モータ300は、機構を構成するいずれかの軸と機械的に結合されている。モータ300としては、駆動対象の機構に応じた特性のモータを採用できる。例えば、モータ300としては、誘導型モータ、同期型モータ、永久磁石型モータ、リラクタンスモータのいずれを採用してもよいし、回転型だけではなく、リニアモータを採用してもよい。 Motor 300 is mechanically coupled to one of the shafts that make up the mechanism. As motor 300, a motor with characteristics that correspond to the mechanism to be driven can be used. For example, as motor 300, any of an induction motor, a synchronous motor, a permanent magnet motor, and a reluctance motor may be used, and not only a rotary motor but also a linear motor may be used.

(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 support device 400 constituting the control system 1 according to the present embodiment. With reference to Fig. 6, the support device 400 includes a processor 402 such as a CPU or an MPU, a main memory 404, a storage 410, a network controller 420, a USB controller 424, an input unit 426, and a display unit 428. These components are connected via a bus 408.

プロセッサ402は、ストレージ410に格納された各種プログラムを読み出して、メインメモリ404に展開して実行することで、サポート装置400で必要な処理を実現する。 The processor 402 reads various programs stored in the storage 410, expands them into the main memory 404, and executes them to realize the processing required by the support device 400.

ストレージ410は、例えば、HDDやSSDなどで構成される。ストレージ410には、典型的には、OS412と、後述するような処理を実現するための開発プログラム414とが格納される。なお、ストレージ410には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。 Storage 410 is configured, for example, with a HDD or SSD. Storage 410 typically stores an OS 412 and a development program 414 for implementing the processing described below. Note that storage 410 may also store necessary programs other than the programs shown in FIG. 6.

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

USBコントローラ424は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。 The USB controller 424 exchanges data with any information processing device via a USB connection.

入力部426は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部428は、ディスプレイ、各種インジケータなどで構成され、プロセッサ402からの処理結果などを出力する。 The input unit 426 is composed of a mouse, keyboard, touch panel, etc., and accepts instructions from the user. The display unit 428 is composed of a display, various indicators, etc., and outputs processing results from the processor 402, etc.

サポート装置400は、光学ドライブ406を有していてもよい。光学ドライブ406は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体407(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)からプログラムを読み取って、ストレージ410などに格納する。 The support device 400 may have an optical drive 406. The optical drive 406 reads a computer-readable program from a recording medium 407 (e.g., an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores the program, and stores the program in the storage 410 or the like.

サポート装置400で実行される各種プログラムは、コンピュータ読取可能な記録媒体407を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。 The various programs executed by the support device 400 may be installed via a computer-readable recording medium 407, or may be installed by downloading from any server on the network.

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

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

(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 development program 414 installed in the support device 400 according to the present embodiment. Referring to Fig. 7, the development program 414 includes, as main elements, a drawing engine 430, an operation acquisition engine 432, a simulator 434, a program generation management engine 436, an IEC program generation engine 438, and a robot program generation engine 440.

描画エンジン430は、対象装置を仮想空間上で仮想的に表現する描画部に相当する。描画エンジン430は、装置設定470を参照して、仮想空間上に任意の装置を描画する。装置設定470は、対象の装置に関する情報を含み、後述するように、CAD(computer-aided design)データなどの設計データから自動的に生成されてもよい。加えて、ユーザが対象とする任意の装置の情報を装置設定470に追加等するようにしてもよい。 The drawing engine 430 corresponds to a drawing unit that virtually represents the target device in a virtual space. The drawing engine 430 draws any device in a virtual space by referring to the device settings 470. The device settings 470 include information about the target device, and may be automatically generated from design data such as computer-aided design (CAD) data, as described below. In addition, the user may add information about any device that is the target to the device settings 470.

なお、本明細書においては、仮想空間上に設定される任意の装置や機構を「対象装置」と総称する。但し、「対象装置」は、完全な装置として構成されている必要はなく、装置の一部の機構や部位なども含み得る概念である。 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 operation acquisition engine 432 corresponds to an acquisition unit that acquires the user's specification of the operation content of the target device. More specifically, the operation acquisition engine 432 generates an operation definition 460 based on the acquired user operation. The operation definition 460 is information that specifies the operation content specified by the user. As described below, the operation definition 460 describes the content of the user's operation, and serves as a basis for generating the IEC program 1104 and the robot program 1106.

シミュレータ434は、設定された装置や機構の動作をエミュレートする。すなわち、シミュレータ434は、IECプログラム1104およびロボットプログラム1106に基づいて、対象装置の動作を再現する。シミュレータ434による挙動情報(例えば、時間毎の各部位の位置や速度など)は、描画エンジン430に出力される。描画エンジン430は、シミュレータ434からの挙動情報に基づいて、仮想空間上で装置や機構の動作を再現する。 The simulator 434 emulates the operation of the set device or mechanism. That is, the simulator 434 reproduces the operation of the target device based on the IEC program 1104 and the robot program 1106. Behavior information from the simulator 434 (e.g., the position and speed of each part over time) is output to the drawing engine 430. The drawing engine 430 reproduces the operation of the device or mechanism in a virtual space based on the behavior information from the simulator 434.

プログラム生成管理エンジン436は、IECプログラム生成エンジン438およびロボットプログラム生成エンジン440によるプログラムの生成処理を管理するとともに、後述するような実行順序管理プログラム1108を生成する。 The program generation management engine 436 manages the program generation process by the IEC program generation engine 438 and the robot program generation engine 440, and generates the execution order management program 1108 as described below.

IECプログラム生成エンジン438は、動作定義460を参照して、必要なIECプログラム1104を生成する。 The IEC program generation engine 438 references the operation definition 460 to generate the required IEC program 1104.

ロボットプログラム生成エンジン440は、動作定義460を参照して、必要なロボットプログラム1106を生成する。 The robot program generation engine 440 references the operation definition 460 to generate the required robot program 1106.

このように、プログラム生成管理エンジン436、IECプログラム生成エンジン438およびロボットプログラム生成エンジン440は、ユーザにより指定された動作内容に基づいて、IECプログラム1104およびロボットプログラム1106を生成するプログラム生成部に相当する。 In this way, the program generation management engine 436, the IEC program generation engine 438, and the robot program generation engine 440 correspond to a program generation unit that generates the IEC program 1104 and the robot program 1106 based on the operation content specified by the user.

実行順序管理プログラム1108は、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の一例である。実行順序管理プログラム1108に代えて、あるいは、実行順序管理プログラム1108とともに、実行順序を規定するテーブルを用意してもよい。 The execution order management program 1108 is an example of information that specifies the execution order between the IEC program 1104 and the robot program 1106. Instead of the execution order management program 1108, or together with the execution order management program 1108, a table that specifies the execution order may be prepared.

シミュレータ434は、制御装置100をエミュレートすることもでき、生成されたプログラム(IECプログラム1104、ロボットプログラム1106、実行順序管理プログラム1108)を参照して、プログラムによる装置や機構の動作を再現することもできる。 The simulator 434 can also emulate the control device 100, and can also reproduce the operation of devices and mechanisms by referring to the generated programs (IEC program 1104, robot program 1106, execution order management program 1108).

<D.生成手順例>
次に、本実施の形態に係るサポート装置400を用いたプログラムの生成手順の一例について説明する。
D. Example of Generation Procedure
Next, an example of a procedure for generating a program using support device 400 according to the present embodiment will be described.

図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 support device 400 according to this embodiment. With reference to Figure 8, a user can virtually create any target device in the virtual space 450 provided by the support device 400. Figure 8 shows an example of a target device including a robot, a robot slider for driving the robot, and two sliders. In reality, the robot slider and the two sliders are each driven by a motor 300 and a motor driver 350 (see Figure 2). The robot is also controlled by a robot controller 250 (see Figure 2).

ロボットスライダおよび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 support device 400 according to this embodiment generates the IEC program 1104 and the robot program 1106 by the user performing operations as described below.

先に、図8に示される制御装置に動作について説明する。スライダ1は、3枚のパレットを搭載できる3段の棚が形成された移動トレイ1を所定方向に沿って移動させる。初期状態において、移動トレイ1には、空のパレット(ワークが置載されていないパレット)が格納されている。ロボットは、移動トレイ1から空のパレットをピックし、作業エリアにプレイスする。作業後には、ワークが置載されたパレットをロボットが移動トレイ1に戻す。 First, the operation of the control device shown in Figure 8 will be described. The slider 1 moves the movable tray 1, which has three shelves and can hold three pallets, in a predetermined direction. In the initial state, an empty pallet (a pallet with no work placed on it) is stored in the movable tray 1. The robot picks up the empty pallet from the movable tray 1 and places it in the work area. After the work is completed, the robot returns the pallet with the work placed on it to the movable tray 1.

スライダ2は、ワークを供給する移動トレイ2を所定方向に沿って移動させる。初期状態において、移動トレイ2には、ワークが置載されており、ロボットが移動トレイ2からワークをピックする。 The slider 2 moves the movable tray 2 that supplies the workpieces along a predetermined direction. In the initial state, the movable tray 2 has a workpiece placed on it, and the robot picks up the workpiece from the movable tray 2.

ロボットスライダは、スライダ1、作業エリア、スライダ2にロボットを移動させる。ロボットは、作業エリアにおいて、空のパレットにワークを置載する。すなわち、ロボットは、以下の動作を行う。 The robot slider moves the robot from slider 1 to the work area and then to slider 2. In the work area, the robot places a workpiece on an empty pallet. That is, the robot performs the following operations:

(1)スライダ1の移動トレイ1の棚にある空のパレットを先端のアームでピックして、作業エリアにプレイスする
(2)スライダ2の移動トレイ2に配置されたワークを先端の吸着機構でピックして、作業エリアにあるパレット上にプレイスする
(3)作業エリアにあるパレットをピックして、スライダ1の移動トレイ1の棚にプレイスする
以下、上述したような処理を実現するための操作手順の一例について説明する。
(1) An empty pallet on the shelf of movable tray 1 of slider 1 is picked up by the arm at the tip and placed in the work area. (2) A workpiece placed on movable tray 2 of slider 2 is picked up by the suction mechanism at the tip and placed on the pallet in the work area. (3) A pallet is picked from the work area and placed on the shelf of movable tray 1 of slider 1. Below, an example of an operating procedure for realizing the processing described above is explained.

図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 mobile tray 1 is moved close to the robot so that the robot can pick up a pallet from the mobile tray 1.

より具体的には、ユーザは、スライダ1の移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間450においては、移動トレイ1の位置を任意に変更でき、ユーザは、サポート装置400上で動きおよび位置を確認できる。 More specifically, the user specifies the start and end positions of the slider 1 using a mouse or other means. Note that in the virtual space 450, the position of the moving tray 1 can be changed as desired, and the user can check the movement and position on the support device 400.

ユーザは、仮想空間450上で、マウス操作により移動トレイ1を選択して移動させることで、スライダ1の移動開始位置および移動終了位置を指定してもよいし、キーボード操作で対応するパラメータを入力あるいは変更することで、スライダ1の移動開始位置および移動終了位置を指定してもよい。 The user may specify the start and end positions of slider 1 by selecting and moving moving tray 1 with a mouse in virtual space 450, or may specify the start and end positions of slider 1 by inputting or changing corresponding parameters with a keyboard.

図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 tray 1 so that the robot can pick up a pallet from the moving tray 1.

より具体的には、ユーザは、ロボットスライダの移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間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 virtual space 450, and the user can check the movement and position on the support device 400.

ユーザは、仮想空間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 virtual space 450, or may specify the start and end positions of the robot slider by inputting or changing corresponding parameters with a keyboard.

図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 tray 1.

より具体的には、ユーザは、ロボット先端のアームの軌跡をマウス操作などで指定する。あるいは、ユーザは、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボット先端のアームの軌跡を指定してもよい。さらにあるいは、サポート装置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 display unit 428 of the support device 400 and performing operations on the displayed teaching pendant object.

図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 tray 1 in the work area.

より具体的には、ユーザは、ロボットスライダの移動開始位置および移動終了位置をマウス操作などで指定する。なお、仮想空間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 virtual space 450, and the user can check the movement and position on the support device 400.

ユーザは、仮想空間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 virtual space 450, or may specify the start and end positions of the robot slider by inputting or changing corresponding parameters with a keyboard.

図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 tray 1 in the work area.

より具体的には、ユーザは、ロボット先端のアームの軌跡をマウス操作などで指定する。あるいは、ユーザは、キーボード操作で対応するパラメータを入力あるいは変更することで、ロボット先端のアームの軌跡を指定してもよい。さらにあるいは、サポート装置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 display unit 428 of the support device 400 and performing operations on the displayed teaching pendant object.

以下同様の手順で、対象装置の動作が順次設定される。より具体的には、第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 tray 2 is moved to the vicinity of the robot so that the robot can pick up the work from the moving tray 2. As the seventh operation, an operation is set in which the robot slider moves the robot to the vicinity of the moving tray 2 so that the robot can pick up the work from the moving tray 2. As the eighth operation, an trajectory of the arm at the tip of the robot is set so that the robot can pick up the work from the moving tray 2. As the ninth 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 work picked up from the moving tray 2 on a pallet in the work area. As the tenth operation, an trajectory of the arm at the tip of the robot is set so that the robot can place the work picked up from the moving tray 2 on a pallet in the work area. Furthermore, an operation is set to move the pallet on which the work is placed to the moving tray 1.

以上のような手順で、ユーザは、対象装置での動作を要素ごとに規定する。サポート装置400は、ユーザによる操作手順に応じて、動作定義460を生成する。 By following the above steps, the user specifies the operation of the target device for each element. The support device 400 generates the operation definition 460 according to the operation procedure by the user.

図14は、本実施の形態に係るサポート装置400が生成した動作定義460の一例を示す図である。なお、説明の簡素化のため、以下においては、第1番目から第5番目までの動作に注目して説明する。 Figure 14 is a diagram showing an example of an action definition 460 generated by the support device 400 according to this embodiment. For simplicity of explanation, the following description focuses on the first to fifth actions.

図14を参照して、動作定義460は、動作の順序を示す順序欄461と、動作対象を示す動作対象欄462と、機構種別を示す機構種別欄463と、動作内容を示す動作内容欄464とを含む。 Referring to FIG. 14, the operation definition 460 includes a sequence column 461 indicating the sequence of operations, an operation target column 462 indicating the operation target, a mechanism type column 463 indicating the mechanism type, and an operation content column 464 indicating the operation content.

順序欄461には、ユーザにより設定された順序を示す番号が格納される。順序欄461に格納された番号ごとに、動作対象欄462に動作対象が定義され、機構種別欄463に機構種別が定義され、動作内容欄464に動作内容が定義される。 The order column 461 stores a number indicating the order set by the user. For each number stored in the order column 461, the operation target is defined in the operation target column 462, the mechanism type is defined in the mechanism type column 463, and the operation content is defined in the operation content column 464.

図14に示す例では、機構種別欄463には、「スライダ」および/または「ロボット」が格納される。基本的には、「スライダ」が格納された動作については、IECプログラム1104により実現され、「ロボット」が格納された動作については、ロボットプログラム1106により実現される。 In the example shown in FIG. 14, the mechanism type column 463 stores "slider" and/or "robot." Basically, the operation for which "slider" is stored is realized by the IEC program 1104, and the operation for which "robot" is stored is realized by the robot program 1106.

対応する動作対象および動作内容に応じて、IECプログラム1104およびロボットプログラム1106のコードが生成される。 Code for the IEC program 1104 and robot program 1106 is generated according to the corresponding operation target and operation content.

図15は、図14に示される動作定義460に従って生成されたIECプログラム1104の一例を示す。図16は、図14に示される動作定義460に従って生成されたロボットプログラム1106の一例を示す。 Figure 15 shows an example of an IEC program 1104 generated according to the operation definition 460 shown in Figure 14. Figure 16 shows an example of a robot program 1106 generated according to the operation definition 460 shown in Figure 14.

図15に示されるIECプログラム1104は、初期化処理を実現するための命令に加えて、第1番目、第2番目および第4番目の動作に対応する命令が記述される。図15に示す例では、スライダの移動(位置制御)は、モーション命令(MC_MoveAbsolute)が用いられているが、スライダではなく回転機構などに適用する場合には、異なるモーション命令が用いられてもよい。 The IEC program 1104 shown in FIG. 15 describes commands for implementing the initialization process, as well as commands corresponding to the first, second, and fourth operations. In the example shown in FIG. 15, a motion command (MC_MoveAbsolute) is used to move the slider (position control), but when applying to a rotation mechanism rather than a slider, a different motion command may be used.

図16に示されるロボットプログラム1106は、第3番目および第5番目の動作に対応する命令が記述される。 The robot program 1106 shown in FIG. 16 contains instructions corresponding to the third and fifth operations.

このように、サポート装置400は、ユーザが仮想空間450上で指定した動作に応じて、IECプログラム1104およびロボットプログラム1106を自動的に生成する。なお、IECプログラム1104とロボットプログラム1106との間で、処理の動作順序およびインターロックを実現するために、実行順序管理プログラムが生成されてもよい。 In this way, the support device 400 automatically generates the IEC program 1104 and the robot program 1106 in response to the operations specified by the user in the virtual space 450. Note that an execution order management program may be generated to realize the processing operation order and interlock between the IEC program 1104 and the robot program 1106.

図17は、図14に示される動作定義460に従って生成された実行順序管理プログラム1108の一例を示す。図17を参照して、実行順序管理プログラム1108は、IECプログラム1104およびロボットプログラム1106が共通に参照することのできる変数Index(フラグ)を順次更新(インクリメント)するための命令を含む。変数Indexを順次更新するとともに、変数Indexを各動作の実行条件とすることで、IECプログラム1104とロボットプログラム1106との間で処理を同期させることもできる。 Figure 17 shows an example of an execution order management program 1108 generated according to the operation definition 460 shown in Figure 14. Referring to Figure 17, the execution order management program 1108 includes an instruction to sequentially update (increment) a variable Index (flag) that can be commonly referenced by the IEC program 1104 and the robot program 1106. By sequentially updating the variable Index and setting the variable Index as an execution condition for each operation, it is also possible to synchronize processing between the IEC program 1104 and the robot program 1106.

このように、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の一例である実行順序管理プログラム1108は、IECプログラム1104およびロボットプログラム1106が参照する値を更新する命令を含む。 Thus, the execution order management program 1108, which is an example of information that specifies the execution order between the IEC program 1104 and the robot program 1106, includes instructions to update values referenced by the IEC program 1104 and the robot program 1106.

なお、実行順序管理プログラム1108を生成する代わりに、IECプログラム1104およびロボットプログラム1106の実行順序を記述するテーブルや任意の定義を生成するようにしてもよい。すなわち、IECプログラム1104とロボットプログラム1106との間の実行順序を規定する情報の別の一例として、IECプログラム1104およびロボットプログラム1106を実行するタイミングを規定するテーブルであってもよい。 Instead of generating the execution order management program 1108, a table or any definition describing the execution order of the IEC program 1104 and the robot program 1106 may be generated. In other words, as another example of information that specifies the execution order between the IEC program 1104 and the robot program 1106, a table that specifies the timing for executing the IEC program 1104 and the robot program 1106 may be used.

<E.動作定義の修正/変更>
サポート装置400は、図14に示される動作定義460に基づいて、IECプログラム1104およびロボットプログラム1106を自動的に生成可能であるが、ユーザは、一種の中間データである動作定義460を修正あるいは変更することもできる。
E. Modifying/changing the operation definition
The support device 400 can automatically generate the IEC program 1104 and the robot program 1106 based on the operation definition 460 shown in FIG. 14, but the user can also modify or change the operation definition 460, which is a kind of intermediate data.

例えば、ユーザは、仮想空間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 virtual space 450, and then refer to the generated motion definition 460 to evaluate the appropriateness of the motion. The user can change values such as the travel distance, target coordinates, and speed defined in the motion definition 460 as necessary. It is also possible to perform a simulation in the virtual space 450 based on the changed motion definition 460, and the appropriateness of the motion can be confirmed by the simulation.

図18は、図14に示される動作定義460に対してユーザが修正あるいは変更を行った一例を示す図である。図18を参照して、例えば、第2番目の動作については、第1番目の動作と競合することはないので、2つの動作を並列的に実行するように変更されている。 Figure 18 is a diagram showing an example in which the user has modified or changed the action definition 460 shown in Figure 14. With reference to Figure 18, for example, the second action does not conflict with the first action, so it has been modified to execute the two actions in parallel.

また、元の第4番目の動作については、仮想空間450上のシミュレーションにより、移動距離の修正が必要であると判断されて、移動距離の値が変更されている。同様に、元の第5番目の動作については、より滑らかな軌跡となるように、通過するポイントが追加されるという経路の見直しが行われている。 For the original fourth motion, a simulation in virtual space 450 determined that the distance traveled needed to be modified, and the value of the distance traveled was changed. Similarly, for the original fifth motion, the path was revised to add passing points to create a smoother trajectory.

このように、サポート装置400は、動作定義460に対するユーザによる変更を受け付ける受付部を有していてもよい。 In this way, the support device 400 may have a reception unit that accepts changes made by the user to the operation definition 460.

本実施の形態に係るサポート装置400によれば、動作定義460に記述された理解できる数値を修正あるいは変更するだけで、新たなIECプログラム1104およびロボットプログラム1106が自動的に生成される。これによって、IECプログラム1104およびロボットプログラム1106をプログラミングすることができない装置設計者などであっても、装置全体の動作の指定および指定した動作の確認などを容易に行うことができる。 According to the support device 400 of this embodiment, a new IEC program 1104 and robot program 1106 are automatically generated simply by modifying or changing the understandable numerical values described in the operation definition 460. This allows even an equipment designer who is unable to program the IEC program 1104 and robot program 1106 to easily specify the operation of the entire equipment and check the specified operation.

<F.処理手順>
次に、本実施の形態に係るサポート装置400によるプログラム生成に係る処理手順の一例について説明する。
F. Processing Procedure
Next, an example of a processing procedure for program generation by the support device 400 according to the present embodiment will be described.

図19は、本実施の形態に係るサポート装置400によるプログラム生成に係る処理手順を示すフローチャートである。図19に示す各ステップは、典型的には、サポート装置400のプロセッサ402が開発プログラム414を実行することで実現される。 Figure 19 is a flowchart showing the processing steps for program generation by the support device 400 according to this embodiment. Each step shown in Figure 19 is typically realized by the processor 402 of the support device 400 executing the development program 414.

図19を参照して、サポート装置400は、ユーザによる対象装置の設定を受け付ける(ステップS100)。そして、サポート装置400は、対象装置を仮想空間上で仮想的に表現する(ステップS102)。なお、サポート装置400は、装置設定470(図7)の形で外部からデータを読み込んでもよい。 Referring to FIG. 19, the support device 400 accepts the settings of the target device by the user (step S100). Then, the support device 400 virtually represents the target device in a virtual space (step S102). Note that the support device 400 may read data from outside in the form of device settings 470 (FIG. 7).

続いて、サポート装置400は、ユーザによる設定操作を受け付けて(ステップS104)、動作定義460を順次生成する(ステップS106)。すなわち、サポート装置400は、ユーザによる対象装置の動作内容の指定を取得する。そして、サポート装置400は、ユーザによる設定操作が終了したか否かを判断する(ステップS108)。ユーザによる設定操作が終了していなければ(ステップS108においてNO)、ステップS102以下の処理が繰り返される。 Then, the support device 400 accepts the setting operation by the user (step S104) and sequentially generates the operation definition 460 (step S106). That is, the support device 400 acquires the user's specification of the operation content of the target device. Then, the support device 400 judges whether the setting operation by the user has been completed (step S108). If the setting operation by the user has not been completed (NO in step S108), the processing from step S102 onwards is repeated.

ユーザによる設定操作が終了していれば(ステップS108においてYES)、サポート装置400は、ユーザによる動作定義460の表示が要求されたか否かを判断する(ステップS110)。 If the user's setting operation has been completed (YES in step S108), the support device 400 determines whether the user has requested the display of the operation definition 460 (step S110).

ユーザによる動作定義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 support device 400 displays the generated action definition 460 (step S112), accepts the user's modification or change operation (step S114), and changes the action definition 460 in accordance with the accepted content (step S116).

ユーザによる動作定義460の表示が要求されていなければ(ステップS110においてNO)、ステップS112~S116の処理はスキップされる。 If the user has not requested that the action definition 460 be displayed (NO in step S110), steps S112 to S116 are skipped.

次に、サポート装置400は、ユーザによるプログラム生成が要求されたか否かを判断する(ステップS118)。ユーザによるプログラム生成が要求されると(ステップS118においてYES)、サポート装置400は、指定された動作内容を記述した動作定義460に基づいて、IECプログラム1104、ロボットプログラム1106および実行順序管理プログラム1108を生成する(ステップS120)。 Next, the support device 400 determines whether the user has requested program generation (step S118). If the user has requested program generation (YES in step S118), the support device 400 generates the IEC program 1104, the robot program 1106, and the execution order management program 1108 based on the operation definition 460 that describes the specified operation content (step S120).

以上により、サポート装置400によるプログラム生成に係る処理は終了する。なお、生成されたプログラム(IECプログラム1104、ロボットプログラム1106および実行順序管理プログラム1108)は、ユーザ操作に応じて、サポート装置400から制御装置100へ転送される。 This completes the process of program generation by the support device 400. The generated programs (IEC program 1104, robot program 1106, and execution order management program 1108) are transferred from the support device 400 to the control device 100 in response to user operations.

<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 support device 400 may have a generation function for generating information (device settings 470) for virtually representing the target device in a virtual space from design data of the target device, such as CAD data.

また、ワークの対象となる面(例えば、ある傾きをもった一面を塗装するなど)に沿って、ロボットを移動させるようなプログラムの生成を容易に行うことができる。なお、ロボットをある傾きをもった面に沿って移動させる場合には、公知の座標変換を行うロジックを適用することが好ましい。 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 support device 400 according to this embodiment is also capable of performing a simulation according to the generated program. The results of such a simulation are rendered (reproduced) in a virtual space, so that the user can check the validity of the generated program in advance while referring to the reproduced mechanism and robot operation.

<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 1, wherein the acquisition unit generates an operation definition (460) that specifies the specified operation content.
[Configuration 3]
3. The program generating device according to configuration 2, further comprising a reception unit that receives changes to the operation definition made by a user.
[Configuration 4]
The program generation device according to any one of configurations 1 to 3, wherein the program generation unit further generates information (1108) that specifies an execution order between the IEC program and the robot program.
[Configuration 5]
The program generating device of configuration 4, wherein the information defining the execution order between the IEC program and the robot program includes an instruction to update values referenced by the IEC program and the robot program.
[Configuration 6]
The program generation device according to configuration 4 or 5, wherein the information defining the execution order between the IEC program and the robot program includes a table defining the timing of executing the IEC program and the robot program.
[Configuration 7]
The program generation device according to any one of configurations 1 to 6, further comprising a generation unit that generates information for virtually expressing the target device in the virtual space from design data of the target device.
[Configuration 8]
The program generating device according to any one of configurations 1 to 7, further comprising a simulator (434) that reproduces the operation of the target device based on the IEC program and the robot program.
[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 control system 1 of this embodiment, 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 content of the target device in a virtual space, so that even a user with little knowledge about program generation can generate a program required for operation.

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 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 .
前記取得部は、前記指定された動作内容を特定する動作定義を生成する、請求項1に記載のプログラム生成装置。 The program generation device according to claim 1, wherein the acquisition unit generates an operation definition that specifies the specified operation content. 前記動作定義に対するユーザによる変更を受け付ける受付部をさらに備える、請求項2に記載のプログラム生成装置。 The program generation device according to claim 2, further comprising a reception unit that receives changes to the operation definition by a user. 前記IECプログラムと前記ロボットプログラムとの間の実行順序を規定する情報は、前記IECプログラムおよび前記ロボットプログラムを実行するタイミングを規定するテーブルを含む、請求項1~3のいずれか1項に記載のプログラム生成装置。 A program generation device according to any one of claims 1 to 3, wherein the information specifying the execution order between the IEC program and the robot program includes a table specifying the timing of executing the IEC program and the robot program. 前記対象装置の設計データから前記仮想空間上で前記対象装置を仮想的に表現するための情報を生成する生成部をさらに備える、請求項1~のいずれか1項に記載のプログラム生成装置。 5. The program generating device according to claim 1, further comprising a generating unit that generates information for virtually expressing the target device in the virtual space from design data of the target device. 前記IECプログラムおよび前記ロボットプログラムに基づいて、前記対象装置の動作を再現するシミュレータをさらに備える、請求項1~のいずれか1項に記載のプログラム生成装置。 The program generating device according to claim 1 , further comprising a simulator that reproduces an operation of the target device based on 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 .
JP2021013385A 2021-01-29 2021-01-29 PROGRAM GENERATION DEVICE, PROGRAM GENERATION PROGRAM, AND PROGRAM GENERATION METHOD Active JP7604918B2 (en)

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)

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

Patent Citations (2)

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