JP7375632B2 - Control system and support equipment - Google Patents

Control system and support equipment Download PDF

Info

Publication number
JP7375632B2
JP7375632B2 JP2020044555A JP2020044555A JP7375632B2 JP 7375632 B2 JP7375632 B2 JP 7375632B2 JP 2020044555 A JP2020044555 A JP 2020044555A JP 2020044555 A JP2020044555 A JP 2020044555A JP 7375632 B2 JP7375632 B2 JP 7375632B2
Authority
JP
Japan
Prior art keywords
control
program
control system
target trajectory
control device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020044555A
Other languages
Japanese (ja)
Other versions
JP2021144627A (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 JP2020044555A priority Critical patent/JP7375632B2/en
Publication of JP2021144627A publication Critical patent/JP2021144627A/en
Application granted granted Critical
Publication of JP7375632B2 publication Critical patent/JP7375632B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Programmable Controllers (AREA)

Description

本発明は、複数の軸を含む制御対象を制御する制御システムおよびその制御システムに用いられるサポート装置に関する。 The present invention relates to a control system that controls a controlled object including a plurality of axes, and a support device used in the control system.

従来から、CNC工作機械は様々な生産現場で利用されている。CNC工作機械などの複数の軸を含む制御対象は、目標の軌跡を実現するために、特有の演算処理が必要である。例えば、特開平6-282321号公報(特許文献1)は、数値制御工作機械における加工装置の移動制御用に作成された数値制御プログラムを新たなプログラム変換作成する装置などを開示する。そのため、専用の制御装置を用いて制御することが一般的である。 CNC machine tools have traditionally been used at various production sites. A controlled object including a plurality of axes, such as a CNC machine tool, requires specific arithmetic processing in order to realize a target trajectory. For example, Japanese Patent Laid-Open No. 6-282321 (Patent Document 1) discloses an apparatus for converting a numerical control program created for movement control of a processing device in a numerically controlled machine tool into a new program. Therefore, it is common to use a dedicated control device for control.

一方で、FA(Factory Automation)の根幹をなすPLC(プログラマブルロジックコントローラ)などの制御装置は、その高機能化に伴って、従来のシーケンス制御だけではなく、より高機能な制御を実現できるようになってきている。 On the other hand, as control devices such as PLCs (programmable logic controllers), which form the basis of FA (Factory Automation), become more sophisticated, they are now able to perform not only conventional sequence control but also more sophisticated control. It has become to.

特開平6-282321号公報Japanese Patent Application Publication No. 6-282321

しかしながら、CNC工作機械は特有の演算処理が必要であり、PLCのプログラム開発者がこのような特有の演算処理に精通しているとは限らない。 However, CNC machine tools require specific arithmetic processing, and PLC program developers are not necessarily familiar with such specific arithmetic processing.

本発明の一つの目的は、一般的な制御演算に加えて、複数の軸を含む制御対象を制御することが可能な制御システムを提供することである。 One object of the present invention is to provide a control system capable of controlling a controlled object including a plurality of axes in addition to general control calculations.

本発明のある実施の形態によれば、複数の軸を含む制御対象を制御する制御システムが提供される。制御システムは、制御プログラムを所定の制御周期でサイクリック実行する制御装置と、制御装置で実行される制御プログラムを作成するための開発環境を提供するサポート装置とを含む。サポート装置は、1または複数のファンクションブロックを含む任意のソースプログラムを作成可能なユーザインターフェイスを提供する手段を含む。1または複数のファンクションブロックのうち少なくとも1つのファンクションブロックには、制御対象の動作を規定する動作定義が指定可能になっている。サポート装置は、ファンクションブロックに指定された動作定義に基づいて、制御対象の目標軌跡を逐次更新するための命令と、当該逐次更新される目標軌跡に基づいて制御対象の各軸に対する指令値を決定する命令とを含む、制御プログラムを生成する手段を含む。 According to an embodiment of the present invention, a control system is provided for controlling a controlled object including a plurality of axes. The control system includes a control device that cyclically executes a control program at a predetermined control cycle, and a support device that provides a development environment for creating a control program to be executed by the control device. The support device includes means for providing a user interface with which any source program including one or more function blocks can be created. At least one of the one or more function blocks can be designated with an operation definition that defines the operation of a controlled object. The support device issues instructions to sequentially update the target trajectory of the controlled object based on the operation definition specified in the function block, and determines command values for each axis of the controlled object based on the sequentially updated target trajectory. and means for generating a control program.

この構成によれば、ユーザは、ソースプログラムを作成する際に、特定のファンクションブロックを用いて制御対象の動作を規定する動作定義を指定するだけで、制御装置が制御対象を制御するのに必要な制御プログラムを自動的に生成できる。これによって、専門知識の少ないユーザであっても、制御装置を用いて、複数の軸を含む制御対象を制御できる。 According to this configuration, when creating a source program, the user can simply specify the operation definition that specifies the operation of the controlled object using a specific function block, and the user can create a source program that is necessary for the control device to control the controlled object. A control program can be automatically generated. As a result, even a user with little specialized knowledge can use the control device to control a control target including a plurality of axes.

少なくとも1つのファンクションブロックは、異なる方式の動作定義をそれぞれ指定可能に構成されてもよい。この構成によれば、特定のファンクションブロックは共通化した上で、必要に応じて適切な動作定義を指定すればよいので、ユーザ操作を簡素化できる。 At least one function block may be configured to be able to specify different types of operation definitions. According to this configuration, user operations can be simplified because specific function blocks can be shared and appropriate operation definitions can be specified as needed.

動作定義は、Gコードプログラムまたはデータブロックを含んでいてもよい。この構成によれば、汎用的なGコードプログラムまたは指定の容易なデータブロックを利用できるので、ソースプログラムの作成を容易化できる。 The operational definition may include a G-code program or data block. According to this configuration, it is possible to use a general-purpose G code program or an easily specified data block, thereby facilitating the creation of a source program.

制御装置は、制御プログラムにより逐次更新される目標軌跡を格納するためのバッファを含んでいてもよい。この構成によれば、制御プログラムが生成する目標軌跡の管理を簡素化できる。 The control device may include a buffer for storing a target trajectory that is sequentially updated by the control program. According to this configuration, management of the target trajectory generated by the control program can be simplified.

制御プログラムは、動作定義に基づいて決定された複数のブロックを順次移動する際の速度の変動が小さくなるように、目標軌跡を更新する命令を含んでいてもよい。この構成によれば、制御装置が加工装置などである場合に、仕上がり品質を高めることができる。 The control program may include an instruction to update the target trajectory so that variations in speed when sequentially moving a plurality of blocks determined based on the motion definition are reduced. According to this configuration, when the control device is a processing device or the like, finish quality can be improved.

制御プログラムは、現在位置から予め定められた終点までの間を仮想的に往復走査することで、目標軌跡を更新する命令を含んでいてもよい。この構成によれば、より適切な目標軌跡を決定できる。 The control program may include a command to update the target trajectory by virtually scanning back and forth between the current position and a predetermined end point. According to this configuration, a more appropriate target trajectory can be determined.

本発明の別の実施の形態によれば、複数の軸を含む制御対象を制御する制御装置で実行される制御プログラム、を作成するための開発環境を提供するサポート装置が提供される。制御装置は、制御プログラムを所定の制御周期でサイクリック実行するように構成されている。サポート装置は、1または複数のファンクションブロックを含む任意のソースプログラムを作成可能なユーザインターフェイスを提供する手段を含む。1または複数のファンクションブロックのうち少なくとも1つのファンクションブロックには、制御対象の動作を規定する動作定義が指定可能になっている。サポート装置は、ファンクションブロックに指定された動作定義に基づいて、制御対象の目標軌跡を逐次更新するための命令と、当該逐次更新される目標軌跡に基づいて制御対象の各軸に対する指令値を決定する命令とを含む、制御プログラムを生成する手段を含む。 According to another embodiment of the present invention, a support device is provided that provides a development environment for creating a control program to be executed by a control device that controls a controlled object including a plurality of axes. The control device is configured to cyclically execute a control program at a predetermined control cycle. The support device includes means for providing a user interface with which any source program including one or more function blocks can be created. At least one of the one or more function blocks can be designated with an operation definition that defines the operation of a controlled object. The support device issues instructions to sequentially update the target trajectory of the controlled object based on the operation definition specified in the function block, and determines command values for each axis of the controlled object based on the sequentially updated target trajectory. and means for generating a control program.

本発明によれば、一般的な制御演算に加えて、複数の軸を含む制御対象を制御することが可能な制御システムを実現できる。 According to the present invention, it is possible to realize a control system capable of controlling a control target including a plurality of axes in addition to general control calculations.

本実施の形態に係る制御システムの適用例を示す模式図である。FIG. 2 is a schematic diagram showing an example of application of the control system according to the present embodiment. 本実施の形態に係るロボット制御システムの全体構成例を示す模式図である。FIG. 1 is a schematic diagram showing an example of the overall configuration of a robot control system according to the present embodiment. 本実施の形態に係るロボット制御システムを構成する制御装置のハードウェア構成例を示す模式図である。1 is a schematic diagram showing an example of a hardware configuration of a control device that constitutes a robot control system according to the present embodiment. FIG. 本実施の形態に係るロボット制御システムを構成するサポート装置のハードウェア構成例を示す模式図である。FIG. 2 is a schematic diagram showing an example of the hardware configuration of a support device that constitutes the robot control system according to the present embodiment. 本実施の形態に係るロボット制御システムを構成する制御装置の機能構成例を示す模式図である。1 is a schematic diagram illustrating an example of the functional configuration of a control device that constitutes a robot control system according to the present embodiment; FIG. 本実施の形態に係るロボット制御システムを構成する制御装置におけるプログラム実行を示すタイムチャートである。3 is a time chart showing program execution in a control device that constitutes a robot control system according to the present embodiment. 本実施の形態に係るロボット制御システムを構成するサポート装置が提供する開発環境の一例を示す模式図である。FIG. 2 is a schematic diagram showing an example of a development environment provided by a support device that constitutes the robot control system according to the present embodiment. 本実施の形態に係るロボット制御システムを構成するサポート装置が提供する開発環境で利用可能な軌跡制御ファンクションブロックの一例を示す図である。FIG. 3 is a diagram showing an example of trajectory control function blocks that can be used in a development environment provided by a support device that constitutes the robot control system according to the present embodiment. 本実施の形態に係るロボット制御システムを構成するサポート装置で利用可能なGコードプログラムの一例を示す図である。FIG. 2 is a diagram illustrating an example of a G-code program that can be used in the support device that constitutes the robot control system according to the present embodiment. 本実施の形態に係るロボット制御システムを構成するサポート装置で利用可能なデータブロックの一例を示す図である。FIG. 2 is a diagram illustrating an example of data blocks that can be used by the support device that constitutes the robot control system according to the present embodiment. 本実施の形態に係るロボット制御システムを構成する制御装置で実行されるIECプログラムの目標軌跡生成に係る処理例を示すフローチャートである。3 is a flowchart illustrating an example of processing related to target trajectory generation of an IEC program executed by a control device constituting the robot control system according to the present embodiment. 図11に示されるIECプログラムの処理内容を説明するための図である。12 is a diagram for explaining processing contents of the IEC program shown in FIG. 11. FIG.

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

<A.適用例>
まず、本発明が適用される場面の一例について説明する。
<A. Application example>
First, an example of a scene to which the present invention is applied will be described.

図1は、本実施の形態に係る制御システムの適用例を示す模式図である。図1には、制御システムの一例として、ロボット制御システム1の構成例を示す。ロボット制御システム1は、複数の軸を含む制御対象を制御可能になっている。以下の説明においては、制御対象をロボット600とも称す。ロボット600の典型例としては、複数の軸を有するCNC(computer numerical control)工作機械などが挙げられるが、本技術思想は、アプリケーションに応じて任意に作成されるロボットに適用可能である。 FIG. 1 is a schematic diagram showing an example of application of the control system according to the present embodiment. FIG. 1 shows a configuration example of a robot control system 1 as an example of a control system. The robot control system 1 is capable of controlling a control object including a plurality of axes. In the following description, the controlled object is also referred to as robot 600. A typical example of the robot 600 is a CNC (computer numerical control) machine tool having a plurality of axes, but the present technical idea is applicable to any robot created depending on the application.

制御装置100は、PLC(プログラマブルロジックコントローラ)などの、一種のコンピュータとして具現化されてもよい。制御装置100は、IECプログラム1104(制御プログラムに相当)を所定の制御周期でサイクリック実行する。制御装置100は、IECプログラム1104をサイクリック実行するための実行環境であるIECプログラム実行エンジン160を有している。 The control device 100 may be implemented as a type of computer such as a PLC (programmable logic controller). The control device 100 cyclically executes an IEC program 1104 (corresponding to a control program) at a predetermined control cycle. The control device 100 has an IEC program execution engine 160 that is an execution environment for cyclically executing the IEC program 1104.

IECプログラム1104の逐次実行により、ロボット600の軌道を規定する目標軌跡データ154が更新される。IECプログラム1104は、目標軌跡データ154が参照して、ロボット600に対する指令値を制御周期毎に出力する。 By sequentially executing the IEC program 1104, the target trajectory data 154 that defines the trajectory of the robot 600 is updated. The IEC program 1104 is referred to by the target trajectory data 154 and outputs a command value for the robot 600 every control cycle.

ロボット制御システム1は、制御装置100で実行される制御プログラム(IECプログラム1104)を作成するための開発環境を提供するサポート装置200を有している。なお、制御装置100が制御プログラムを実行する期間(制御動作中)において、サポート装置200は必ずしも必要がなく、制御装置100と分離されていてもよい。 The robot control system 1 includes a support device 200 that provides a development environment for creating a control program (IEC program 1104) to be executed by the control device 100. Note that during the period when the control device 100 executes the control program (during control operation), the support device 200 is not necessarily required and may be separated from the control device 100.

サポート装置200は、エディタ232と、ビルダ234とを含む。サポート装置200のエディタ232は、1または複数のファンクションブロックを含む任意のソースプログラム240を作成可能なユーザインターフェイスを提供する。ここで、1または複数のファンクションブロックのうち少なくとも1つのファンクションブロック(軌跡制御ファンクションブロック242)には、ロボット600の動作を規定する動作定義248が指定可能になっている。 Support device 200 includes an editor 232 and a builder 234. The editor 232 of the support device 200 provides a user interface that can create any source program 240 that includes one or more function blocks. Here, a motion definition 248 that defines the motion of the robot 600 can be specified in at least one function block (trajectory control function block 242) among the one or more function blocks.

サポート装置200のビルダ234は、ファンクションブロック(軌跡制御ファンクションブロック242)に指定された動作定義248に基づいて、ロボット600の目標軌跡を逐次更新するための命令と、当該逐次更新される目標軌跡(目標軌跡データ154)に基づいてロボット600の各軸に対する指令値を決定する命令とを含む、IECプログラム1104(第2の制御プログラム)を生成する。 The builder 234 of the support device 200 issues instructions for sequentially updating the target trajectory of the robot 600 and the sequentially updated target trajectory ( An IEC program 1104 (second control program) is generated, including instructions for determining command values for each axis of the robot 600 based on the target trajectory data 154).

さらに、サポート装置200は、IECプログラム1104を制御装置100へ転送する。 Further, the support device 200 transfers the IEC program 1104 to the control device 100.

このような構成を採用することで、ユーザは、ファンクションブロック(軌跡制御ファンクションブロック242)において目的の動作定義248を指定するとともに、他の制御プログラムも含むソースプログラム240を作成すれば、サポート装置200がIECプログラム1104を自動的に生成する。これらの生成されたプログラムが制御装置100へ転送されることで、ロボット600を含む制御演算を容易に実現できる。 By adopting such a configuration, the user can specify the target operation definition 248 in the function block (trajectory control function block 242) and create the source program 240 that also includes other control programs, and then the support device 200 can be used. automatically generates the IEC program 1104. By transferring these generated programs to the control device 100, control calculations involving the robot 600 can be easily realized.

<B.ロボット制御システム構成例>
次に、本実施の形態に係るロボット制御システム1の構成例について説明する。
<B. Robot control system configuration example>
Next, a configuration example of the robot control system 1 according to the present embodiment will be described.

図2は、本実施の形態に係るロボット制御システム1の全体構成例を示す模式図である。図2を参照して、ロボット制御システム1は、1または複数の制御装置100を含む。 FIG. 2 is a schematic diagram showing an example of the overall configuration of the robot control system 1 according to the present embodiment. Referring to FIG. 2, robot control system 1 includes one or more control devices 100.

制御装置100は、制御対象に対する制御演算を実行する。制御対象に対する制御には、ロボット600の制御を含む。ロボット600は、複数の軸を含む制御対象であり、各軸あるいは各関節を駆動するための複数のサーボモータ550を含む。サーボモータ550は、対応付けられたサーボドライバ500により駆動される。 The control device 100 executes control calculations for a controlled object. Control of the controlled object includes control of the robot 600. The robot 600 is a controlled object including a plurality of axes, and includes a plurality of servo motors 550 for driving each axis or each joint. Servo motor 550 is driven by associated servo driver 500.

図2には、サーボドライバ500とサーボモータ550との組を4個含むロボット600を示す。制御装置100とサーボドライバ500との間は、フィールドネットワーク20を介して接続されている。なお、サーボドライバ500とサーボモータ550との組がより少ないあるいはより多いロボット600を採用してもよい。 FIG. 2 shows a robot 600 including four sets of servo drivers 500 and servo motors 550. Control device 100 and servo driver 500 are connected via field network 20. Note that a robot 600 having fewer or more pairs of servo drivers 500 and servo motors 550 may be employed.

フィールドネットワーク20のプロトコルの一例として、EtherNet/IPなどの産業用のイーサネット(登録商標)を採用してもよい。あるいは、EtherCAT(登録商標)を採用してもよい。制御装置100には、フィールドネットワーク20を介して、IOユニット、セーフティコントローラ、ビジョンセンサなどの任意のフィールドデバイスが接続されてもよい。 As an example of the protocol of the field network 20, industrial Ethernet (registered trademark) such as EtherNet/IP may be adopted. Alternatively, EtherCAT (registered trademark) may be employed. Any field device such as an IO unit, a safety controller, a vision sensor, etc. may be connected to the control device 100 via the field network 20.

制御装置100は、さらに上位ネットワーク12を介して、サポート装置200と、表示装置300と、サーバ装置400と接続されていてもよい。上位ネットワーク12のプロトコルの一例として、通常のイーサネットを採用してもよい。 The control device 100 may be further connected to a support device 200, a display device 300, and a server device 400 via the upper network 12. As an example of the protocol of the upper network 12, normal Ethernet may be adopted.

サポート装置200は、制御装置100で実行されるソースプログラムの作成、ソースプログラムのデバッグ、制御装置100の動作に係る設定、制御装置100に接続されるフィールドデバイスの動作に対する設定、フィールドネットワーク20に関する設定などの機能を提供する。 The support device 200 creates a source program to be executed by the control device 100, debugs the source program, configures settings related to the operation of the control device 100, configures settings related to the operation of field devices connected to the control device 100, and configures settings related to the field network 20. Provides functions such as

表示装置300は、HMI(Human Machine Interface)やPT(Programmable Terminal)とも称され、制御装置100が保持する情報を参照して監視操作画面を提供するとともに、ユーザ操作に対応する指示を制御装置100へ送出する。 The display device 300 is also called an HMI (Human Machine Interface) or a PT (Programmable Terminal), and provides a monitoring operation screen by referring to information held by the control device 100, and also provides instructions corresponding to user operations to the control device 100. Send to.

サーバ装置400は、制御装置100との間で制御演算に係る情報をやり取りする。サーバ装置400は、例えば、ファイルサーバ、製造実行システム(MES:Manufacturing Execution System)、生産管理システムなどとして実装されてもよい。 The server device 400 exchanges information regarding control calculations with the control device 100. The server device 400 may be implemented as, for example, a file server, a manufacturing execution system (MES), a production management system, or the like.

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

(c1:制御装置100)
図3は、本実施の形態に係るロボット制御システム1を構成する制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、メモリカードインターフェイス112と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
(c1: control device 100)
FIG. 3 is a schematic diagram showing an example of the hardware configuration of the control device 100 that constitutes the robot control system 1 according to the present embodiment. Referring to FIG. 3, control device 100 includes processor 102, main memory 104, storage 110, memory card interface 112, upper network controller 106, field network controller 108, local bus controller 116, and 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 an arithmetic processing unit that executes control calculations, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads a program stored in the storage 110, expands it to the main memory 104, and executes it, thereby realizing control calculations for the controlled object.

メインメモリ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 DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory). The storage 110 is composed of, for example, a nonvolatile storage device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive).

ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、および、制御対象に応じて作成されたIECプログラム1104などが格納される。IECプログラム1104は、シーケンス命令1105およびモーション命令1106を含み得る。これらの命令は、典型的には、国際電気標準会議(IEC:International Electrotechnical Commission)が定めるIEC61131-3に沿った形式で作成されてもよい。 The storage 110 stores a system program 1102 for realizing basic functions, an IEC program 1104 created according to a controlled object, and the like. IEC program 1104 may include sequence instructions 1105 and motion instructions 1106. These instructions may typically be created in a format in accordance with IEC61131-3 defined by the International Electrotechnical Commission (IEC).

メモリカードインターフェイス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 arbitrary data to and from the memory card 114.

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

フィールドネットワークコントローラ108は、フィールドネットワーク20を介して任意のフィールドデバイスとの間でデータをやり取りする。図2に示す構成例において、フィールドネットワークコントローラ108は、フィールドネットワーク20の通信マスタとして機能してもよい。 Field network controller 108 exchanges data with any field device via field network 20. In the configuration example shown in FIG. 2, the field network controller 108 may function as a communication master of the field network 20.

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

USBコントローラ120は、USB接続を介して、サポート装置200などとの間でデータをやり取りする。 The USB controller 120 exchanges data with the support device 200 and the like via a USB connection.

(c2:サポート装置200)
図4は、本実施の形態に係るロボット制御システム1を構成するサポート装置200のハードウェア構成例を示す模式図である。サポート装置200は、一例として、汎用パソコンを用いて実現されてもよい。
(c2: Support device 200)
FIG. 4 is a schematic diagram showing an example of the hardware configuration of the support device 200 that constitutes the robot control system 1 according to the present embodiment. The support device 200 may be realized using a general-purpose personal computer, for example.

図4を参照して、サポート装置200は、プロセッサ202と、メインメモリ204と、入力部206と、表示部208と、ストレージ210と、光学ドライブ212と、USBコントローラ220と、通信コントローラ222とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。 Referring to FIG. 4, support device 200 includes processor 202, main memory 204, input section 206, display section 208, storage 210, optical drive 212, USB controller 220, and communication controller 222. include. These components are connected via processor bus 218.

プロセッサ202は、CPUやGPUなどで構成され、ストレージ210に格納されたプログラム(一例として、OS2102および開発プログラム2104)を読出して、メインメモリ204に展開して実行することで、後述するような各種処理を実現する。 The processor 202 is composed of a CPU, a GPU, etc., and reads programs (for example, the OS 2102 and the development program 2104) stored in the storage 210, expands them to the main memory 204, and executes them, thereby executing various programs as described below. Achieve processing.

メインメモリ204は、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ210は、例えば、HDDやSSDなどの不揮発性記憶装置などで構成される。 The main memory 204 is composed of a volatile storage device such as DRAM or SRAM. The storage 210 is composed of, for example, a nonvolatile storage device such as an HDD or an SSD.

ストレージ210には、基本的な機能を実現するためのOS2102、および、開発環境を実現するための開発プログラム2104などが格納される。開発環境においては、制御装置100で実行されるソースプログラムの作成、ソースプログラムのデバッグ、制御装置100の動作に係る設定、制御装置100に接続されるフィールドデバイスの動作に対する設定、フィールドネットワーク20に関する設定などが可能になっている。 The storage 210 stores an OS 2102 for realizing basic functions, a development program 2104 for realizing a development environment, and the like. In the development environment, creation of a source program to be executed by the control device 100, debugging of the source program, settings related to the operation of the control device 100, settings related to the operation of field devices connected to the control device 100, settings related to the field network 20 are performed. etc. are now possible.

入力部206は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部208は、ディスプレイや各種インジケータなどで構成され、プロセッサ202による処理結果などを表示する。 The input unit 206 includes a keyboard, a mouse, and the like, and accepts user operations. The display unit 208 includes a display, various indicators, and the like, and displays processing results by the processor 202 and the like.

USBコントローラ220は、USB接続を介して、制御装置100などとの間のデータをやり取りする。通信コントローラ222は、上位ネットワーク12を介して、任意の情報処理装置との間でデータをやり取りする。 The USB controller 220 exchanges data with the control device 100 and the like via a USB connection. The communication controller 222 exchanges data with any information processing device via the upper network 12.

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

サポート装置200で実行される開発プログラム2104などは、コンピュータ読取可能な記憶媒体214を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。 The development program 2104 and the like executed by the support device 200 may be installed via the computer-readable storage medium 214, but may also be installed by downloading from a server device on a network. Further, the functions provided by the support device 200 according to the present embodiment may be realized by using part of the modules provided by the OS.

なお、ロボット制御システム1の稼動中において、サポート装置200は、制御装置100から取り外されていてもよい。 Note that the support device 200 may be removed from the control device 100 while the robot control system 1 is in operation.

(c3:表示装置300)
本実施の形態に係るロボット制御システム1を構成する表示装置300は、一例として、汎用パソコンを用いて実現されてもよい。表示装置300の基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(c3: display device 300)
The display device 300 that constitutes the robot control system 1 according to the present embodiment may be realized using a general-purpose personal computer, for example. The basic hardware configuration example of the display device 300 is similar to the hardware configuration example of the support device 200 shown in FIG. 4, so a detailed explanation will not be given here.

(c4:サーバ装置400)
本実施の形態に係るロボット制御システム1を構成するサーバ装置400は、一例として汎用パソコンを用いて実現されてもよい。サーバ装置400の基本的なハードウェア構成例は、図4に示すサポート装置200のハードウェア構成例と同様であるので、ここでは詳細な説明は行わない。
(c4: server device 400)
The server device 400 configuring the robot control system 1 according to the present embodiment may be realized using a general-purpose personal computer, for example. The basic hardware configuration example of the server device 400 is the same as the hardware configuration example of the support device 200 shown in FIG. 4, so a detailed explanation will not be given here.

(c5:サーボドライバ500)
本実施の形態に係るロボット制御システム1を構成するサーボドライバ500は、電気的に接続されたサーボモータ550を駆動する。サーボドライバ500は、モータドライバの一例であり、サーボドライバ500とは異なるモータドライバを採用してもよい。同様に、サーボモータ550は、モータの一例であり、サーボモータ550とは異なるモータ(例えば、誘導型モータやリニアモータなど)を採用してもよい。モータドライバとしては、駆動対象のモータに応じた構成を採用できる。
(c5: Servo driver 500)
Servo driver 500 configuring robot control system 1 according to this embodiment drives an electrically connected servo motor 550. Servo driver 500 is an example of a motor driver, and a motor driver different from servo driver 500 may be employed. Similarly, the servo motor 550 is an example of a motor, and a motor different from the servo motor 550 (for example, an induction motor, a linear motor, etc.) may be employed. As the motor driver, a configuration depending on the motor to be driven can be adopted.

サーボドライバ500は、フィールドネットワーク20を介して、制御装置100から指令を受信するとともに、制御装置100へ状態値などを送信するためのフィールドネットワークコントローラを有している。サーボドライバ500は、コンバータ回路およびインバータ回路などを含み、制御装置100からの指令に従って、指定された電圧・電流・位相の電力を生成して、サーボモータ550へ供給する。 The servo driver 500 receives commands from the control device 100 via the field network 20 and has a field network controller for transmitting status values and the like to the control device 100. Servo driver 500 includes a converter circuit, an inverter circuit, and the like, and generates power of a specified voltage, current, and phase according to instructions from control device 100 and supplies it to servo motor 550.

<D.制御装置100の機能構成例>
次に、制御装置100の機能構成例について説明する。
<D. Functional configuration example of control device 100>
Next, an example of the functional configuration of the control device 100 will be described.

図5は、本実施の形態に係るロボット制御システム1を構成する制御装置100の機能構成例を示す模式図である。図5に示す各機能は、制御装置100のプロセッサ102がシステムプログラム1102を実行することで実現されてもよい。あるいは、図5に示される機能の全部または一部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤード回路を用いて実現してもよい。 FIG. 5 is a schematic diagram showing an example of the functional configuration of the control device 100 that constitutes the robot control system 1 according to the present embodiment. Each function shown in FIG. 5 may be realized by the processor 102 of the control device 100 executing the system program 1102. Alternatively, all or part of the functions shown in FIG. 5 may be realized using a hard-wired circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

図5を参照して、制御装置100は、その機能として、スケジューラ150と、変数マネジャ152と、IECプログラム実行エンジン160とを含む。 Referring to FIG. 5, control device 100 includes a scheduler 150, a variable manager 152, and an IEC program execution engine 160 as its functions.

スケジューラ150は、IECプログラム実行エンジン160の処理タイミングなどを制御する。 The scheduler 150 controls the processing timing of the IEC program execution engine 160 and the like.

変数マネジャ152は、フィールドネットワークコントローラ108がフィールドデバイスとの間でやり取りする状態値(フィールドデバイスが収集する入力値、および/または、フィールドデバイスに与えられる指令値)、および/または、ローカルバスコントローラ116が機能ユニット130との間でやり取りする状態値(機能ユニット130が収集する入力値、および/または、機能ユニット130に与えられる指令値)を保持するとともに、周期的に更新する。変数マネジャ152は、それぞれの状態値を変数値として参照可能に保持してもよい。変数マネジャ152は、制御装置100で実行されるプログラムが使用する内部変数、および/または、制御装置100の動作に係るシステム変数を保持および更新してもよい。 The variable manager 152 stores state values that the field network controller 108 exchanges with the field devices (input values collected by the field devices and/or command values given to the field devices), and/or the local bus controller 116 . The state values exchanged with the functional unit 130 (input values collected by the functional unit 130 and/or command values given to the functional unit 130) are held and periodically updated. The variable manager 152 may hold each state value as a variable value so that it can be referenced. The variable manager 152 may hold and update internal variables used by programs executed by the control device 100 and/or system variables related to the operation of the control device 100.

変数マネジャ152は、ロボット制御に係る目標軌跡データ154を有している。目標軌跡データ154は、IECプログラム実行エンジン160により順次更新される。すなわち、制御装置100は、IECプログラム1104により逐次更新される目標軌跡データ154を格納するためのバッファを有している。なお、目標軌跡データ154を格納するためのバッファは、リングバッファを採用してもよい。リングバッファを採用することで、順次更新される目標軌跡データ154を効率的に格納することができる。 The variable manager 152 has target trajectory data 154 related to robot control. The target trajectory data 154 is sequentially updated by the IEC program execution engine 160. That is, the control device 100 has a buffer for storing target trajectory data 154 that is sequentially updated by the IEC program 1104. Note that a ring buffer may be used as the buffer for storing the target trajectory data 154. By employing a ring buffer, target trajectory data 154 that is sequentially updated can be efficiently stored.

IECプログラム実行エンジン160は、変数マネジャ152が保持する変数(状態値)を参照して、IECプログラム1104を所定の制御周期でサイクリック実行する。IECプログラム実行エンジン160による実行結果は、変数マネジャ152が保持する変数(状態値)に反映される。 The IEC program execution engine 160 refers to variables (state values) held by the variable manager 152 and cyclically executes the IEC program 1104 at a predetermined control cycle. The execution results by the IEC program execution engine 160 are reflected in variables (state values) held by the variable manager 152.

IECプログラム実行エンジン160による実行結果は、目標軌跡データ154に反映される。 The execution result by the IEC program execution engine 160 is reflected in the target trajectory data 154.

図6は、本実施の形態に係るロボット制御システム1を構成する制御装置100におけるプログラム実行を示すタイムチャートである。 FIG. 6 is a time chart showing program execution in the control device 100 that constitutes the robot control system 1 according to the present embodiment.

図6を参照して、制御装置100においては、IECプログラム実行エンジン160による定周期タスク180が実行される。 Referring to FIG. 6, in control device 100, a periodic task 180 is executed by IEC program execution engine 160.

定周期タスク180は、出力更新処理182と、入力更新処理184と、IECプログラム実行処理186と、モーション命令実行処理188との一群の処理を含み、この一群の処理が予め定められた制御周期T1毎にサイクリック実行(繰り返し実行)される。 The fixed period task 180 includes a group of processes including an output update process 182, an input update process 184, an IEC program execution process 186, and a motion command execution process 188, and this group of processes is executed at a predetermined control cycle T1. It is executed cyclically (repeatedly) every time.

出力更新処理182は、IECプログラム実行処理186およびモーション命令実行処理188により算出された出力(指令値)を対象のフィールドデバイスおよび/または機能ユニットへ送信する処理を含む。特に、モーション命令実行処理188は、制御対象のロボット600の各軸に対する指令値を算出する処理と、目標軌跡データ154を更新する処理とを含む。入力更新処理184は、接続されているフィールドデバイスおよび/または機能ユニットから入力を取得する処理を含む。 The output update process 182 includes a process of transmitting the output (command value) calculated by the IEC program execution process 186 and the motion instruction execution process 188 to the target field device and/or functional unit. In particular, the motion command execution process 188 includes a process of calculating command values for each axis of the robot 600 to be controlled, and a process of updating the target trajectory data 154. Input update processing 184 includes obtaining input from connected field devices and/or functional units.

IECプログラム実行処理186は、IECプログラム1104に含まれるシーケンス命令1105(軌跡制御ファンクションブロック242を含み得る)を実行する処理を含む。IECプログラム実行処理186によって次の周期における目標軌跡データ154が算出される。モーション命令実行処理188は、IECプログラム1104に含まれるモーション命令1106を実行する処理を含む。モーション命令1106の実行は、目標軌跡データ154を参照して、制御周期T1毎にサーボドライバ500に対する指令値を算出する処理を含む。 IEC program execution processing 186 includes processing for executing sequence instructions 1105 (which may include trajectory control function block 242) included in IEC program 1104. IEC program execution processing 186 calculates target trajectory data 154 for the next cycle. Motion instruction execution processing 188 includes processing for executing motion instruction 1106 included in IEC program 1104. Execution of the motion command 1106 includes processing for calculating a command value for the servo driver 500 every control period T1 with reference to the target trajectory data 154.

このように、制御装置100においては、定周期で繰り返し実行される定周期タスク180を含む。 As described above, the control device 100 includes a fixed periodic task 180 that is repeatedly executed at a fixed period.

<E.サポート装置200が提供する開発環境>
次に、サポート装置200が提供する開発環境の一例について説明する。
<E. Development environment provided by support device 200>
Next, an example of the development environment provided by the support device 200 will be described.

図7は、本実施の形態に係るロボット制御システム1を構成するサポート装置200が提供する開発環境230の一例を示す模式図である。 FIG. 7 is a schematic diagram showing an example of a development environment 230 provided by the support device 200 that constitutes the robot control system 1 according to the present embodiment.

サポート装置200は、ユーザ操作に従って作成されるソースプログラム240からIECプログラム1104を生成し、制御装置100へ転送する。このように、サポート装置200は、制御装置100で実行される制御プログラム(IECプログラム1104)を作成するための開発環境230を提供する。 The support device 200 generates an IEC program 1104 from the source program 240 created according to user operations, and transfers it to the control device 100. In this way, the support device 200 provides a development environment 230 for creating a control program (IEC program 1104) to be executed by the control device 100.

より具体的には、図7を参照して、サポート装置200は、開発環境230に係る機能として、エディタ232と、ビルダ234と、デバッガ236とを含む。これらの機能は、サポート装置200のプロセッサ202が開発プログラム2104を実行することで実現されてもよい。あるいは、図5に示される機能の全部または一部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤード回路を用いて実現してもよい。 More specifically, referring to FIG. 7, support device 200 includes an editor 232, a builder 234, and a debugger 236 as functions related to development environment 230. These functions may be realized by the processor 202 of the support device 200 executing the development program 2104. Alternatively, all or part of the functions shown in FIG. 5 may be realized using a hard-wired circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).

エディタ232は、ユーザ操作に応じて、ソースプログラム240を作成するための環境を提供する。より具体的には、エディタ232は、1または複数のファンクションブロックを含む任意のソースプログラム240を作成可能なユーザインターフェイスを提供する。エディタ232は、GUI(Graphical User Interface)形式の編集画面を提供してもよいし、その他の任意のプログラム作成画面を提供してもよい。ユーザは、サポート装置200の入力部206(キーボードやマウスなど)を操作して、ソースプログラム240を作成する。 Editor 232 provides an environment for creating source program 240 in response to user operations. More specifically, editor 232 provides a user interface that can create any source program 240 that includes one or more function blocks. The editor 232 may provide an editing screen in a GUI (Graphical User Interface) format, or may provide any other program creation screen. The user operates the input unit 206 (keyboard, mouse, etc.) of the support device 200 to create the source program 240.

説明の便宜上、単一のソースプログラム240を例示するが、互いに独立した複数のソースプログラム240を作成することも可能である。さらに、エディタ232は、データ通信に関する設定や、フィールドデバイスや機能ユニット130の動作に関する設定などを行うためのユーザインターフェイスを提供するようにしてもよい。 For convenience of explanation, a single source program 240 is illustrated, but it is also possible to create a plurality of mutually independent source programs 240. Furthermore, the editor 232 may provide a user interface for making settings related to data communication, settings related to the operation of field devices and functional units 130, and the like.

1または複数のソースプログラム240ならびに各種設定をまとめて、「プロジェクト」という単位で管理してもよい。 One or more source programs 240 and various settings may be collectively managed in units called "projects."

ソースプログラム240は、典型的には、IEC61131-3に規定された、LD(ラダーダイアグラム)、IL(インストラクションリスト)、ST(ストラクチャードテキスト)、FBD(ファンクションブロックダイアグラム)、SFC(シーケンシャルファンクションチャート)などの任意の言語で記述されてもよい。 The source program 240 is typically LD (ladder diagram), IL (instruction list), ST (structured text), FBD (function block diagram), SFC (sequential function chart), etc., as specified in IEC61131-3. may be written in any language.

本実施の形態に係るサポート装置200においては、ロボット600を制御するため命令をソースプログラム240に定義することが可能である。このような命令として、例えば、軌跡制御ファンクションブロック242を採用してもよい。このように、開発環境230で利用可能な1または複数のファンクションブロックのうち少なくとも1つのファンクションブロック(軌跡制御ファンクションブロック242)には、制御対象であるロボット600の動作を規定する動作定義が指定可能になっている。 In the support device 200 according to this embodiment, instructions can be defined in the source program 240 to control the robot 600. For example, the trajectory control function block 242 may be used as such a command. In this way, a motion definition that defines the motion of the robot 600 to be controlled can be specified for at least one function block (trajectory control function block 242) among one or more function blocks available in the development environment 230. It has become.

ロボット600の動作を規定する動作定義は、ロボット600の挙動を上位レベルで規定するものであり、例えば、Gコードプログラム244あるいはデータブロック246を利用できる。 The motion definition that defines the motion of the robot 600 defines the behavior of the robot 600 at a higher level, and can use the G code program 244 or the data block 246, for example.

ビルダ234は、作成されたソースプログラム240をコンパイルして、制御装置100で実行可能なプログラムを生成する。より具体的には、ビルダ234は、ソースプログラム240(および、参照される動作定義(例えば、Gコードプログラム244あるいはデータブロック246))に基づいて、IECプログラム1104を生成する。これらの生成されたプログラムは、制御装置100へ転送される。 The builder 234 compiles the created source program 240 to generate a program executable by the control device 100. More specifically, builder 234 generates IEC program 1104 based on source program 240 (and referenced operational definitions (eg, G-code program 244 or data block 246)). These generated programs are transferred to the control device 100.

このように、ビルダ234は、軌跡制御ファンクションブロック242に指定された動作定義に基づいて、制御対象であるロボット600の目標軌跡(目標軌跡データ154に格納されるデータ)を逐次更新するための命令と、当該逐次更新される目標軌跡に基づいてロボット600の各軸に対する指令値を決定する命令とを含む、IECプログラム1104を生成する。 In this way, the builder 234 issues instructions for sequentially updating the target trajectory (data stored in the target trajectory data 154) of the robot 600, which is the controlled object, based on the operation definition specified in the trajectory control function block 242. An IEC program 1104 is generated, which includes: and instructions for determining command values for each axis of the robot 600 based on the sequentially updated target trajectory.

デバッガ236は、生成されたIECプログラム1104に含まれる不具合を検出および修正するための機能を提供する。 Debugger 236 provides functionality for detecting and correcting defects contained in generated IEC program 1104.

<F.軌跡制御ファンクションブロック>
次に、ソースプログラム240に定義可能な軌跡制御ファンクションブロック242について説明する。なお、ロボット600を制御するため命令としては、軌跡制御ファンクションブロック242に限らず、任意の形式の命令を採用できる。
<F. Trajectory control function block>
Next, the trajectory control function block 242 that can be defined in the source program 240 will be explained. Note that the commands for controlling the robot 600 are not limited to the trajectory control function block 242, and any type of command can be adopted.

図8は、本実施の形態に係るロボット制御システム1を構成するサポート装置200が提供する開発環境230で利用可能な軌跡制御ファンクションブロック242の一例を示す図である。 FIG. 8 is a diagram showing an example of the trajectory control function block 242 that can be used in the development environment 230 provided by the support device 200 that constitutes the robot control system 1 according to the present embodiment.

図8を参照して、軌跡制御ファンクションブロック242は、ツール定義入力2420と、座標定義入力2421と、M関数入力2422と、Gコード内変数定義入力2423と、チャネル指定入力2424と、軸指定入力2425と、ペンダント定義入力2426と、データブロック開始入力2427と、ブロックバッファ定義入力2428と、先読みブロック数入力2429といった複数の入力を有している。 Referring to FIG. 8, the trajectory control function block 242 includes a tool definition input 2420, a coordinate definition input 2421, an M function input 2422, a G code variable definition input 2423, a channel specification input 2424, and an axis specification input. 2425, a pendant definition input 2426, a data block start input 2427, a block buffer definition input 2428, and a prefetch block number input 2429.

ツール定義入力2420には、制御対象のロボット600の先端に配置されたツール(ワークを加工する治具)に関する設定値群が指定される。図8に示す例では、変数Toolsが構造体となっており、1または複数の設定値が変数Toolsのメンバとして設定された上で、変数Toolsが入力値として指定される。 In the tool definition input 2420, a set value group related to a tool (a jig for processing a workpiece) placed at the tip of the robot 600 to be controlled is specified. In the example shown in FIG. 8, the variable Tools is a structure, one or more setting values are set as members of the variable Tools, and then the variable Tools is specified as an input value.

座標定義入力2421には、制御対象のロボット600が採用する座標系が指定される。 In the coordinate definition input 2421, a coordinate system adopted by the robot 600 to be controlled is specified.

M関数入力2422には、Gコードプログラム244に基づく軌跡制御が実行される際に、Gコードプログラム244の開始や終了などを制御するための命令であるM関数が指定される。図8に示す例では、変数MFunctionDefが構造体となっており、1または複数のM関数が変数MFunctionDefのメンバとして設定された上で、変数MFunctionDefが入力値として指定される。 The M function input 2422 is designated with an M function that is a command for controlling the start, end, etc. of the G code program 244 when trajectory control based on the G code program 244 is executed. In the example shown in FIG. 8, the variable MFunctionDef is a structure, one or more M functions are set as members of the variable MFunctionDef, and then the variable MFunctionDef is specified as an input value.

Gコード内変数定義入力2423には、Gコードプログラム244で参照される変数の定義が指定される。図8に示す例では、変数Variablesは、変数名と対応する数値との組が複数配置された構造体となっており、変数Variablesにおいて定義された変数名は、Gコードプログラム244で参照可能になる。 In the G-code variable definition input 2423, definitions of variables referenced in the G-code program 244 are specified. In the example shown in FIG. 8, the variable Variables is a structure in which multiple pairs of variable names and corresponding numerical values are arranged, and the variable names defined in the variable Variables can be referenced in the G code program 244. Become.

チャネル指定入力2424には、制御対象のロボット600を指定するためのチャネルが指定される。 In the channel designation input 2424, a channel for designating the robot 600 to be controlled is designated.

軸指定入力2425には、制御対象のロボット600に含まれる軸定義が指定される。図8に示す例では、X,Y,Z,A,B,C,U,V,Wの合計9個の軸が有効化されている。但し、例えば、制御対象のロボット600が4個の軸のみをもつ場合には、対応する4個の軸にのみ定義を指定すればよい。 In the axis specification input 2425, an axis definition included in the robot 600 to be controlled is specified. In the example shown in FIG. 8, a total of nine axes, X, Y, Z, A, B, C, U, V, and W, are enabled. However, for example, if the robot 600 to be controlled has only four axes, it is only necessary to specify definitions for the four corresponding axes.

ペンダント定義入力2426には、制御対象のロボット600に付属するペンダントからの入力を示す変数が指定される。 In the pendant definition input 2426, a variable indicating an input from a pendant attached to the robot 600 to be controlled is specified.

データブロック開始入力2427には、Gコードプログラム244ではなく、データブロック246が利用される場合に、データブロック246の読み込みを開始するためのトリガが入力される。 A trigger for starting reading of the data block 246 is input to the data block start input 2427 when the data block 246 is used instead of the G code program 244.

ブロックバッファ定義入力2428には、Gコードプログラム244ではなく、データブロック246が利用される場合に、データブロック246が格納されるバッファが入力される。 The block buffer definition input 2428 receives a buffer in which the data block 246 is stored when the data block 246 is used instead of the G code program 244.

先読みブロック数入力2429には、データブロック246を解釈して、目標軌跡データ154を順次更新する際に利用されるバッファの数が入力される。 The number of buffers to be used when interpreting the data block 246 and sequentially updating the target trajectory data 154 is input to the pre-read block number input 2429.

図9は、本実施の形態に係るロボット制御システム1を構成するサポート装置200で利用可能なGコードプログラム244の一例を示す図である。 FIG. 9 is a diagram showing an example of the G code program 244 that can be used in the support device 200 that constitutes the robot control system 1 according to the present embodiment.

図9を参照して、Gコードプログラム244は、G01やG02といったGで始まる命令(Gコード)、および/または、M30といったMで始まる命令(M関数)と、各命令に対応する変数との組み合わせで、行毎に定義される。 Referring to FIG. 9, the G code program 244 includes instructions starting with G such as G01 and G02 (G code), and/or instructions starting with M such as M30 (M function), and variables corresponding to each instruction. Defined for each row in combination.

図10は、本実施の形態に係るロボット制御システム1を構成するサポート装置200で利用可能なデータブロック246の一例を示す図である。 FIG. 10 is a diagram showing an example of the data block 246 that can be used in the support device 200 that constitutes the robot control system 1 according to the present embodiment.

図10を参照して、データブロック246は、ブロック(区間)毎に定義されたデータ群を含む。各ブロックは、インデックス2451(変数i)を用いて定義されている。各ブロックは、補間方式などを示すブロックタイプ2462の定義と、終了位置2463の定義と、移動速度2464の定義とを含む。データブロック246に含まれる各ブロックの定義に従って、軌跡が逐次計算される。 Referring to FIG. 10, data block 246 includes a data group defined for each block (section). Each block is defined using an index 2451 (variable i). Each block includes a definition of a block type 2462 indicating an interpolation method, an end position 2463, and a movement speed 2464. Trajectories are calculated sequentially according to the definition of each block included in data block 246.

上述したように、本実施の形態に係るサポート装置200が提供する開発環境230において、同一の軌跡制御ファンクションブロック242には、異なる方式の動作定義がそれぞれ指定可能になっている。すなわち、同一の軌跡制御ファンクションブロック242に対して、Gコードなどのプログラミング言語で記述されたプログラムを入力することもできるし、データブロック246を入力することもできる。 As described above, in the development environment 230 provided by the support device 200 according to the present embodiment, different types of operation definitions can be specified for the same trajectory control function block 242. That is, a program written in a programming language such as G code can be input to the same trajectory control function block 242, and a data block 246 can also be input.

<G.IECプログラム1104に含まれる目標軌跡生成のアルゴリズム例>
次に、IECプログラム1104に含まれる目標軌跡生成のアルゴリズムの一例について説明する。
<G. Example of algorithm for generating target trajectory included in IEC program 1104>
Next, an example of an algorithm for generating a target trajectory included in the IEC program 1104 will be described.

図11は、本実施の形態に係るロボット制御システム1を構成する制御装置100で実行されるIECプログラム1104の目標軌跡生成に係る処理例を示すフローチャートである。 FIG. 11 is a flowchart showing an example of processing related to target trajectory generation of the IEC program 1104 executed by the control device 100 configuring the robot control system 1 according to the present embodiment.

図11を参照して、制御装置100のIECプログラム実行エンジン160は、指定された先読みブロック数の情報を読み込む(ステップS100)。続いて、IECプログラム実行エンジン160は、読み込んだ先読みブロック数の情報に基づいて、ラフ演算により移動速度の制限値である移動速度制限を演算する(ステップS102)。 Referring to FIG. 11, IEC program execution engine 160 of control device 100 reads information on the specified number of prefetch blocks (step S100). Subsequently, the IEC program execution engine 160 calculates a movement speed limit, which is a movement speed limit value, by rough calculation based on the read-in information on the number of prefetch blocks (step S102).

そして、IECプログラム実行エンジン160は、読み込んだブロックのうち最終のブロックから順次移動速度を演算する逆方向演算により、各ブロック内およびブロック間の移動速度を演算する(ステップS104)。このとき、移動速度制限とコンフリクトする移動速度が演算されたブロックについては、当該ブロックと直前のブロックとの境界の移動速度から再演算が行われる。 Then, the IEC program execution engine 160 calculates the movement speed within each block and between blocks by a backward calculation that sequentially calculates the movement speed from the last block among the read blocks (step S104). At this time, for a block for which a moving speed that conflicts with the moving speed limit has been calculated, recalculation is performed from the moving speed of the boundary between the block and the immediately preceding block.

読み込んだブロックのすべてに対して逆方向演算が終了すると、IECプログラム実行エンジン160は、読み込んだブロックのうち最初のブロックから順次移動速度を演算する順方向演算により、各ブロック内およびブロック間の移動速度を演算する(ステップS106)。このとき、移動速度制限とコンフリクトする移動速度が演算されたブロックについては、当該ブロックと直前のブロックとの境界の移動速度から再演算が行われる。 When the backward calculation is completed for all the read blocks, the IEC program execution engine 160 calculates the movement speed within each block and between blocks by a forward calculation that sequentially calculates the movement speed from the first block among the read blocks. The speed is calculated (step S106). At this time, for a block for which a moving speed that conflicts with the moving speed limit has been calculated, recalculation is performed from the moving speed of the boundary between the block and the immediately preceding block.

このように、IECプログラム1104は、現在位置から予め定められた終点までの間を仮想的に往復走査する(逆方向演算および順方向演算)ことで、目標軌跡を更新する命令を含む。 In this way, the IEC program 1104 includes an instruction to update the target trajectory by virtually reciprocating scanning (reverse direction calculation and forward direction calculation) between the current position and a predetermined end point.

IECプログラム実行エンジン160は、ステップS104およびステップS106の演算結果を合成して、移動速度を決定する(ステップS108)。そして、IECプログラム実行エンジン160は、決定した移動速度を変数マネジャ152の目標軌跡データ154に反映する(ステップS110)。目標軌跡データ154には、各ブロック内の制御周期毎の速度が規定されてもよいし、各ブロック内の時刻と速度との関係を規定する定義式(例えば、at+bt+ct+d(tは時刻))が規定されてもよい。 The IEC program execution engine 160 combines the calculation results of steps S104 and S106 to determine the moving speed (step S108). The IEC program execution engine 160 then reflects the determined moving speed in the target trajectory data 154 of the variable manager 152 (step S110). The target trajectory data 154 may specify a speed for each control period in each block, or a definition formula that specifies the relationship between time and speed in each block (for example, at 3 +bt 2 +ct+d (t is time)) may be specified.

IECプログラム実行エンジン160は、未だ読み込まれていない次のブロックが存在するか否かを判断する(ステップS112)。未だ読み込まれていない次のブロックが存在する場合(ステップS112においてYES)には、IECプログラム実行エンジン160は、直前の演算に用いたブロックの情報に次のブロックの情報を追加して(ステップS114)(なお、直前の演算に用いたブロックの情報のうち先頭のブロックの情報は破棄される)、ステップS102以下の処理を再度実行する。 The IEC program execution engine 160 determines whether there is a next block that has not yet been read (step S112). If there is a next block that has not been read yet (YES in step S112), the IEC program execution engine 160 adds the information of the next block to the information of the block used in the previous calculation (step S114). ) (Note that among the block information used in the previous calculation, the information on the first block is discarded), and the processes from step S102 onwards are executed again.

未だ読み込まれていない次のブロックが存在しない場合(ステップS112においてNO)には、IECプログラム実行エンジン160は、移動速度の演算処理を終了する。 If there is no next block that has not been read yet (NO in step S112), the IEC program execution engine 160 ends the movement speed calculation process.

なお、未だ読み込まれていない次のブロックが存在しない場合であっても、ロボット600の現在いるブロックから最終ブロックまでの区間の情報に基づいて、ステップS102以下の処理を繰り返し実行するようにしてもよい。 Note that even if there is no next block that has not yet been read, the processes from step S102 onward may be repeatedly executed based on information about the section from the block where the robot 600 is currently located to the final block. good.

図12は、図11に示されるIECプログラム1104の処理内容を説明するための図である。 FIG. 12 is a diagram for explaining the processing contents of the IEC program 1104 shown in FIG. 11.

図12を参照して、先に、ラフ演算により移動速度制限が決定される。続いて、逆方向演算により、最終のブロックから順次移動速度が演算される。図12に示す例においては、ブロック251において、最初に演算された移動速度(破線)が移動速度制限を超えるので、再度演算が実行されている。 Referring to FIG. 12, first, a travel speed limit is determined by rough calculation. Subsequently, the moving speed is calculated sequentially from the last block by backward calculation. In the example shown in FIG. 12, in block 251, the first calculated moving speed (broken line) exceeds the moving speed limit, so the calculation is performed again.

逆方向演算が完了すると、順方向演算により、最初のブロックから順次移動速度が演算される。図12に示す例においては、ブロック252および253において、最初に演算された移動速度(破線)が移動速度制限を超えるので、再度演算が実行されている。 When the backward calculation is completed, the forward calculation calculates the moving speed sequentially from the first block. In the example shown in FIG. 12, in blocks 252 and 253, the first calculated moving speed (broken line) exceeds the moving speed limit, so the calculation is performed again.

最終的に、逆方向演算により決定された移動速度と、順方向演算により決定された移動速度とを合成して、ブロック間で速度ギャップが生じないように、対象のブロックにおける移動速度が決定される。 Finally, the movement speed determined by the backward calculation and the movement speed determined by the forward calculation are combined to determine the movement speed of the target block so that no speed gap occurs between blocks. Ru.

特に、IECプログラム1104は、参照される動作定義(例えば、Gコードプログラム244あるいはデータブロック246)に基づいて決定された複数のブロックを順次移動する際の速度の変動が小さくなるように、目標軌跡を更新する命令を含んでいてもよい。すなわち、演算対象のブロックを移動するに際して、速度の変動が小さくことを目的として、逆方向演算および順方向演算を行うようにしてもよい。 In particular, the IEC program 1104 sets a target trajectory so that variations in speed when sequentially moving a plurality of blocks determined based on a referenced motion definition (for example, the G code program 244 or the data block 246) are small. It may also include an instruction to update the . That is, when moving the block to be computed, backward computations and forward computations may be performed for the purpose of minimizing speed fluctuations.

なお、軌跡および移動速度を決定する処理としては、どのようなアルゴリズムを採用してもよい。 Note that any algorithm may be employed for the process of determining the trajectory and moving speed.

<H.変形例>
上述の実施の形態においては、単一のサポート装置200がIECプログラム1104を生成する構成を例示したが、これに限らず、複数のコンピュータが連携して本実施の形態に係る機能を実現してもよい。この場合、一部または全部の機能をいわゆるクラウドコンピューティングの環境で実現してもよい。
<H. Modified example>
In the above-described embodiment, a configuration in which a single support device 200 generates the IEC program 1104 has been exemplified, but the present invention is not limited to this. Good too. In this case, some or all of the functions may be realized in a so-called cloud computing environment.

<I.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
複数の軸を含む制御対象(600)を制御する制御システム(1)であって、
制御プログラム(1104)を所定の制御周期(T1)でサイクリック実行する制御装置(100)と、
前記制御装置で実行される制御プログラムを作成するための開発環境(230)を提供するサポート装置(200)とを備え、
前記サポート装置は、
1または複数のファンクションブロックを含む任意のソースプログラム(1104)を作成可能なユーザインターフェイスを提供する手段(232)を含み、前記1または複数のファンクションブロックのうち少なくとも1つのファンクションブロック(242)には、前記制御対象の動作を規定する動作定義(248)が指定可能になっており、
前記ファンクションブロックに指定された前記動作定義に基づいて、前記制御対象の目標軌跡(154)を逐次更新するための命令と、当該逐次更新される目標軌跡に基づいて前記制御対象の各軸に対する指令値を決定する命令とを含む、前記制御プログラムを生成する手段(234)とを備える、制御システム。
[構成2]
前記少なくとも1つのファンクションブロックは、異なる方式の動作定義をそれぞれ指定可能に構成される、構成1に記載の制御システム。
[構成3]
前記動作定義は、Gコードプログラム(244)またはデータブロック(246)を含む、構成2に記載の制御システム。
[構成4]
前記制御装置は、前記制御プログラムにより逐次更新される目標軌跡を格納するためのバッファを備える、構成1~3のいずれか1項に記載の制御システム。
[構成5]
前記制御プログラムは、前記動作定義に基づいて決定された複数のブロックを順次移動する際の速度の変動が小さくなるように、前記目標軌跡を更新する命令を含む、構成1~4のいずれか1項に記載の制御システム。
[構成6]
前記制御プログラムは、現在位置から予め定められた終点までの間を仮想的に往復走査することで、前記目標軌跡を更新する命令を含む、構成5に記載の制御システム。
[構成7]
複数の軸を含む制御対象(600)を制御する制御装置(100)で実行される制御プログラム(1104)を作成するための開発環境(230)を提供するサポート装置(200)であって、前記制御装置は、制御プログラム(1104)を所定の制御周期でサイクリック実行するように構成されており、
1または複数のファンクションブロックを含む任意のソースプログラム(1104)を作成可能なユーザインターフェイスを提供する手段(232)を含み、前記1または複数のファンクションブロックのうち少なくとも1つのファンクションブロック(242)には、前記制御対象の動作を規定する動作定義(248)が指定可能になっており、
前記ファンクションブロックに指定された前記動作定義に基づいて、前記制御対象の目標軌跡(154)を逐次更新するための命令と、当該逐次更新される目標軌跡に基づいて前記制御対象の各軸に対する指令値を決定する命令とを含む、前記制御プログラムを生成する手段(234)とを備える、サポート装置。
<I. Additional notes>
This embodiment as described above includes the following technical idea.
[Configuration 1]
A control system (1) that controls a controlled object (600) including a plurality of axes,
a control device (100) that cyclically executes a control program (1104) at a predetermined control cycle (T1);
a support device (200) that provides a development environment (230) for creating a control program to be executed by the control device;
The support device includes:
means (232) for providing a user interface with which an arbitrary source program (1104) including one or more function blocks can be created; at least one function block (242) among the one or more function blocks; , an operation definition (248) that defines the operation of the controlled object can be specified,
A command for sequentially updating a target trajectory (154) of the controlled object based on the operation definition specified in the function block, and a command for each axis of the controlled object based on the sequentially updated target trajectory. and means (234) for generating the control program, including instructions for determining values.
[Configuration 2]
The control system according to configuration 1, wherein the at least one function block is configured to be able to specify different types of operation definitions.
[Configuration 3]
The control system according to configuration 2, wherein the operation definition includes a G code program (244) or a data block (246).
[Configuration 4]
4. The control system according to any one of configurations 1 to 3, wherein the control device includes a buffer for storing a target trajectory that is sequentially updated by the control program.
[Configuration 5]
Any one of configurations 1 to 4, wherein the control program includes an instruction to update the target trajectory so that variations in speed when sequentially moving a plurality of blocks determined based on the operation definition are reduced. The control system described in Section.
[Configuration 6]
6. The control system according to configuration 5, wherein the control program includes an instruction to update the target trajectory by virtually reciprocating from a current position to a predetermined end point.
[Configuration 7]
A support device (200) that provides a development environment (230) for creating a control program (1104) to be executed by a control device (100) that controls a controlled object (600) including a plurality of axes, the support device (200) comprising: The control device is configured to cyclically execute the control program (1104) at a predetermined control cycle,
means (232) for providing a user interface with which an arbitrary source program (1104) including one or more function blocks can be created; at least one of the one or more function blocks (242) includes: , an operation definition (248) that defines the operation of the controlled object can be specified,
A command for sequentially updating a target trajectory (154) of the controlled object based on the operation definition specified in the function block, and a command for each axis of the controlled object based on the sequentially updated target trajectory. and means (234) for generating the control program, including instructions for determining values.

<J.利点>
本実施の形態に従うロボット制御システムによれば、一般的な制御演算に加えて、複数の軸を含む制御対象を制御することが可能になる。
<J. Advantages>
According to the robot control system according to the present embodiment, in addition to general control calculations, it is possible to control a controlled object including a plurality of axes.

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

1 ロボット制御システム、12 上位ネットワーク、20 フィールドネットワーク、100 制御装置、102,202 プロセッサ、104,204 メインメモリ、106 上位ネットワークコントローラ、108 フィールドネットワークコントローラ、110,210 ストレージ、112 メモリカードインターフェイス、114 メモリカード、116 ローカルバスコントローラ、118,218 プロセッサバス、120,220 USBコントローラ、122 ローカルバス、130 機能ユニット、150 スケジューラ、152 変数マネジャ、154 目標軌跡データ、160 プログラム実行エンジン、180 定周期タスク、182 出力更新処理、184 入力更新処理、186 IECプログラム実行処理、188 モーション命令実行処理、200 サポート装置、206 入力部、208 表示部、212 光学ドライブ、214 記憶媒体、222 通信コントローラ、230 開発環境、232 エディタ、234 ビルダ、236 デバッガ、240 ソースプログラム、242 軌跡制御ファンクションブロック、244 Gコードプログラム、246 データブロック、248 動作定義、251,252 ブロック、300 表示装置、400 サーバ装置、500 サーボドライバ、550 サーボモータ、600 ロボット、1102 システムプログラム、1104 IECプログラム、1105 シーケンス命令、1106 モーション命令、2104 開発プログラム、2420 ツール定義入力、2421 座標定義入力、2422 関数入力、2423 コード内変数定義入力、2424 チャネル指定入力、2425 軸指定入力、2426 ペンダント定義入力、2427 データブロック開始入力、2428 ブロックバッファ定義入力、2429 先読みブロック数入力、2451 インデックス、2462 ブロックタイプ、2463 終了位置、2464 移動速度、T1 制御周期。 1 robot control system, 12 upper network, 20 field network, 100 control device, 102, 202 processor, 104, 204 main memory, 106 upper network controller, 108 field network controller, 110, 210 storage, 112 memory card interface, 114 memory Card, 116 Local bus controller, 118, 218 Processor bus, 120, 220 USB controller, 122 Local bus, 130 Functional unit, 150 Scheduler, 152 Variable manager, 154 Target trajectory data, 160 Program execution engine, 180 Periodic task, 182 Output update processing, 184 Input update processing, 186 IEC program execution processing, 188 Motion command execution processing, 200 Support device, 206 Input section, 208 Display section, 212 Optical drive, 214 Storage medium, 222 Communication controller, 230 Development environment, 232 Editor, 234 Builder, 236 Debugger, 240 Source program, 242 Trajectory control function block, 244 G code program, 246 Data block, 248 Operation definition, 251, 252 Block, 300 Display device, 400 Server device, 500 Servo driver, 550 Servo Motor, 600 Robot, 1102 System program, 1104 IEC program, 1105 Sequence command, 1106 Motion command, 2104 Development program, 2420 Tool definition input, 2421 Coordinate definition input, 2422 Function input, 2423 Variable definition input in code, 2424 Channel specification input , 2425 Axis specification input, 2426 Pendant definition input, 2427 Data block start input, 2428 Block buffer definition input, 2429 Prefetch block number input, 2451 Index, 2462 Block type, 2463 End position, 2464 Movement speed, T1 control cycle.

Claims (7)

複数の軸を含む制御対象を制御する制御システムであって、
制御プログラムを所定の制御周期でサイクリック実行する制御装置と、
前記制御装置で実行される制御プログラムを作成するための開発環境を提供するサポート装置とを備え、
前記サポート装置は、
1または複数のファンクションブロックを含む任意のソースプログラムを作成可能なユーザインターフェイスを提供する手段を含み、前記1または複数のファンクションブロックのうち少なくとも1つのファンクションブロックには、前記制御対象の動作を規定する動作定義が指定可能になっており、
前記ファンクションブロックに指定された前記動作定義に基づいて、前記制御対象の目標軌跡を逐次更新するための命令と、当該逐次更新される目標軌跡に基づいて前記制御対象の各軸に対する指令値を決定する命令とを含む、前記制御プログラムを生成する手段とを備える、制御システム。
A control system that controls a controlled object including multiple axes,
a control device that cyclically executes a control program at a predetermined control cycle;
and a support device that provides a development environment for creating a control program to be executed by the control device,
The support device includes:
The method includes means for providing a user interface that allows creation of an arbitrary source program including one or more function blocks, and at least one of the one or more function blocks defines an operation of the object to be controlled. Behavior definitions can be specified,
Based on the operation definition specified in the function block, a command for sequentially updating a target trajectory of the controlled object, and a command value for each axis of the controlled object based on the sequentially updated target trajectory. and means for generating the control program, the control system comprising: an instruction for generating the control program.
前記少なくとも1つのファンクションブロックは、異なる方式の動作定義をそれぞれ指定可能に構成される、請求項1に記載の制御システム。 The control system according to claim 1, wherein the at least one function block is configured to be able to specify different types of operation definitions. 前記動作定義は、Gコードプログラムまたはデータブロックを含む、請求項2に記載の制御システム。 3. The control system of claim 2, wherein the operational definition includes a G-code program or data block. 前記制御装置は、前記制御プログラムにより逐次更新される目標軌跡を格納するためのバッファを備える、請求項1~3のいずれか1項に記載の制御システム。 The control system according to claim 1, wherein the control device includes a buffer for storing a target trajectory that is sequentially updated by the control program. 前記制御プログラムは、前記動作定義に基づいて決定された複数のブロックを順次移動する際の速度の変動が小さくなるように、前記目標軌跡を更新する命令を含む、請求項1~4のいずれか1項に記載の制御システム。 Any one of claims 1 to 4, wherein the control program includes an instruction to update the target trajectory so as to reduce variation in speed when sequentially moving the plurality of blocks determined based on the motion definition. The control system according to item 1. 前記制御プログラムは、現在位置から予め定められた終点までの間を仮想的に往復走査することで、前記目標軌跡を更新する命令を含む、請求項5に記載の制御システム。 6. The control system according to claim 5, wherein the control program includes an instruction to update the target trajectory by virtually reciprocating from a current position to a predetermined end point. 複数の軸を含む制御対象を制御する制御装置で実行される制御プログラム、を作成するための開発環境を提供するサポート装置であって、前記制御装置は、第1の制御プログラムを所定の制御周期でサイクリック実行するように構成されており、
1または複数のファンクションブロックを含む任意のソースプログラムを作成可能なユーザインターフェイスを提供する手段を含み、前記1または複数のファンクションブロックのうち少なくとも1つのファンクションブロックには、前記制御対象の動作を規定する動作定義が指定可能になっており、
前記ファンクションブロックに指定された前記動作定義に基づいて、前記制御対象の目標軌跡を逐次更新するための命令と、当該逐次更新される目標軌跡に基づいて前記制御対象の各軸に対する指令値を決定する命令とを含む、前記制御プログラムを生成する手段とを備える、サポート装置。
A support device that provides a development environment for creating a control program executed by a control device that controls a controlled object including a plurality of axes, the control device executing a first control program at a predetermined control cycle. is configured to run cyclically with
The method includes means for providing a user interface that allows creation of an arbitrary source program including one or more function blocks, and at least one of the one or more function blocks defines an operation of the object to be controlled. Behavior definitions can be specified,
Based on the operation definition specified in the function block, a command for sequentially updating a target trajectory of the controlled object, and a command value for each axis of the controlled object based on the sequentially updated target trajectory. and means for generating the control program, including instructions for:
JP2020044555A 2020-03-13 2020-03-13 Control system and support equipment Active JP7375632B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020044555A JP7375632B2 (en) 2020-03-13 2020-03-13 Control system and support equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020044555A JP7375632B2 (en) 2020-03-13 2020-03-13 Control system and support equipment

Publications (2)

Publication Number Publication Date
JP2021144627A JP2021144627A (en) 2021-09-24
JP7375632B2 true JP7375632B2 (en) 2023-11-08

Family

ID=77766820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020044555A Active JP7375632B2 (en) 2020-03-13 2020-03-13 Control system and support equipment

Country Status (1)

Country Link
JP (1) JP7375632B2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132307A (en) 2000-10-18 2002-05-10 Yaskawa Electric Corp Motion controller and program editor
WO2015063925A1 (en) 2013-10-31 2015-05-07 三菱電機株式会社 Program creating device, program creating method, and program
WO2018180148A1 (en) 2017-03-31 2018-10-04 ソニー株式会社 Information processing device and information processing method, computer program, and program manufacturing method
JP2019061467A (en) 2017-09-26 2019-04-18 オムロン株式会社 Support system and support program
JP2019139365A (en) 2018-02-07 2019-08-22 オムロン株式会社 Method for creation of application program and device and program
JP2020013211A (en) 2018-07-13 2020-01-23 オムロン株式会社 Program development device and controller

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132307A (en) 2000-10-18 2002-05-10 Yaskawa Electric Corp Motion controller and program editor
WO2015063925A1 (en) 2013-10-31 2015-05-07 三菱電機株式会社 Program creating device, program creating method, and program
WO2018180148A1 (en) 2017-03-31 2018-10-04 ソニー株式会社 Information processing device and information processing method, computer program, and program manufacturing method
JP2019061467A (en) 2017-09-26 2019-04-18 オムロン株式会社 Support system and support program
JP2019139365A (en) 2018-02-07 2019-08-22 オムロン株式会社 Method for creation of application program and device and program
JP2020013211A (en) 2018-07-13 2020-01-23 オムロン株式会社 Program development device and controller

Also Published As

Publication number Publication date
JP2021144627A (en) 2021-09-24

Similar Documents

Publication Publication Date Title
JP6903275B2 (en) Control device and control method
US10606246B2 (en) Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle
US20190095246A1 (en) Support device and non-transitory storage medium
JP4748286B1 (en) Controller support apparatus, controller support program to be executed in the apparatus, recording medium storing the program, and method for estimating execution time of control program
US20190094831A1 (en) Control apparatus, control method, and support apparatus
WO2021181801A1 (en) Robot control system and control method
US11855907B2 (en) Robot control system and control method
JP7375632B2 (en) Control system and support equipment
JP7077848B2 (en) Control device
JP7247808B2 (en) Control system, analysis method and program
WO2012124145A1 (en) Computation unit, assistance unit, assistance program, recording medium storing assistance program, and operation method in assistance device
JP2019053397A (en) Control apparatus and control method
WO2022162959A1 (en) Control system, robot controller, and control method
WO2022162958A1 (en) Control device, program execution method, and program
WO2022249713A1 (en) Control system, system program, and debugging method
WO2021181800A1 (en) Robot control system and control method
CN114041092B (en) Control system, analysis method, and recording medium
JP7396063B2 (en) Data processing method
WO2022168336A1 (en) Control device, control method, and control program
JP7167516B2 (en) Control device, control method and control program
JP2023151731A (en) Control system, control method, and control program
JP2023151876A (en) Control apparatus, control method, development support apparatus, and program
JP2021144586A (en) Robot control system and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231009

R150 Certificate of patent or registration of utility model

Ref document number: 7375632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150