JP2023151876A - Control apparatus, control method, development support apparatus, and program - Google Patents

Control apparatus, control method, development support apparatus, and program Download PDF

Info

Publication number
JP2023151876A
JP2023151876A JP2022061726A JP2022061726A JP2023151876A JP 2023151876 A JP2023151876 A JP 2023151876A JP 2022061726 A JP2022061726 A JP 2022061726A JP 2022061726 A JP2022061726 A JP 2022061726A JP 2023151876 A JP2023151876 A JP 2023151876A
Authority
JP
Japan
Prior art keywords
program
control
virtual
processing unit
control cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022061726A
Other languages
Japanese (ja)
Inventor
征彦 仲野
Masahiko Nakano
哲司 若年
Tetsuji Wakatoshi
圭 安田
Kei Yasuda
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2022061726A priority Critical patent/JP2023151876A/en
Publication of JP2023151876A publication Critical patent/JP2023151876A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

To provide a technique for enabling confirmation of past operation or debugging, even when a system is in operation.SOLUTION: A control apparatus for controlling a control target includes: a first storage unit which stores a first program and a second program; a first processing unit which executes the first program for each control period to calculate a first command value; a second processing unit which executes the second program for each control period to calculate a second command value; and a virtual processing unit which uses a virtual technology capable of controlling a virtual control period which is different from the control period, to execute the first program and/or the second program based on the virtual control period.SELECTED DRAWING: Figure 4

Description

本発明は、制御装置、制御方法、開発支援装置、及びプログラムに関する。 The present invention relates to a control device, a control method, a development support device, and a program.

特許文献1には、予め作成されたリファレンスであって、複数の異なるプログラミング言語のソースコードにおいて参照される共有変数リファレンスに基づいて、入力された複数の異なるプログラミング言語のソースコードにおいて、共有変数が参照されているか否かを判定する開発支援装置が提案されている。当該開発支援装置によれば、異なるプログラム間で定義した共有変数の実装漏れや共有変数名の間違いを、プログラムの実行前に適切に発見することができる。 Patent Document 1 discloses that shared variables are created in advance in source codes of a plurality of different programming languages based on shared variable references that are referenced in source codes of a plurality of different programming languages. A development support device has been proposed that determines whether or not something is referenced. According to the development support device, it is possible to appropriately discover omissions in implementation of shared variables defined between different programs and errors in shared variable names before execution of the programs.

特開2019-160079号公報JP 2019-160079 Publication

しかしながら、特許文献1のようなデバッグ動作モードでは、システムを稼働させたままデバッグを行うことはできない。また、システムの稼働中に、過去のある状態についてのシステム動作を確認したりすることは困難であった。 However, in the debug operation mode as disclosed in Patent Document 1, debugging cannot be performed while the system is running. Furthermore, while the system is in operation, it is difficult to check the system operation for a certain past state.

そこで、本開示の技術では、システムが稼働している最中であっても、動作確認やデバッグ等を行うことができる技術を提供することを目的とする。 Therefore, an object of the technology of the present disclosure is to provide a technology that can perform operation checks, debugging, etc. even while the system is in operation.

本開示の技術は、上述した課題を解決するために、以下の構成を採用する。 The technology of the present disclosure employs the following configuration in order to solve the above-mentioned problems.

すなわち、本開示の技術の一例に係る制御装置は、制御対象を制御する制御装置であって、第1プログラムと第2プログラムとを記憶する第1記憶部と、制御周期ごとに前記第1プログラムを実行して第1指令値を演算する第1処理部と、前記制御周期ごとに前記第2プログラムを実行して第2指令値を演算する第2処理部と、前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する仮想処理部と、を備える。 That is, a control device according to an example of the technology of the present disclosure is a control device that controls a controlled object, and includes a first storage section that stores a first program and a second program, and a first storage section that stores a first program and a second program, and a first storage section that stores a first program and a second program. a first processing section that executes the program to calculate the first command value; a second processing section that executes the second program to calculate the second command value for each control cycle; A virtual processing unit that executes the first program and/or the second program based on the virtual control cycle using virtualization technology that can control the control cycle.

上記構成によれば、仮想化技術を利用することで、実際のシステムを動作させる実制御周期を止めたり変更したりすることなく、仮想制御周期に基づく第1プログラム及び/又は第2プログラムを実行することができ、例えば、仮想制御周期を用いてのデバッグや動作確認などが可能になる。また、配線や機械を変更することなく、上記処理は実現可能である。動作確認は、例えば、共有メモリに記憶されるデータをモニタリングすることや、共有メモリに記憶されている所定期間のデータを用いて過去の動作確認を行うことや、仮想の指令値などを用いてシミュレーション等を行うことを含む。 According to the above configuration, by using virtualization technology, the first program and/or the second program are executed based on the virtual control cycle without stopping or changing the actual control cycle that operates the actual system. For example, debugging and operation confirmation using the virtual control cycle become possible. Further, the above processing can be realized without changing wiring or machinery. Operation confirmation can be performed, for example, by monitoring data stored in the shared memory, by checking past operations using data stored in the shared memory over a predetermined period, or by using virtual command values. This includes conducting simulations, etc.

なお、仮想化技術は、例えばハイパーバイザを利用して、仮想マシン上で動作するOSであるゲストOSが実現されてもよい。この場合、デバッグや動作確認は、ゲストOSにより実行される仮想マシンにより、仮想制御周期を用いて制御される。 Note that the virtualization technology may be implemented as a guest OS, which is an OS running on a virtual machine, using a hypervisor, for example. In this case, debugging and operation confirmation are controlled by a virtual machine executed by a guest OS using a virtual control cycle.

上記一例に係る制御装置は、第1プログラムは、第1プログラム言語で記述され、実行ごとに全体がスキャンされ、第2プログラムは、前記第1プログラム言語とは異なる第2プログラム言語で記述され、逐次実行されてもよい。当該構成によれば、例えば、制御アプリケーションエンジンとプログラマブルロジックコントローラ(PLC)を統合する産業用コントローラにおいてもシステムの稼働を止めずに、デバッグや動作確認等を行うことが可能である。 In the control device according to the above example, the first program is written in a first programming language, and the entirety is scanned each time it is executed, and the second program is written in a second programming language different from the first programming language, May be executed sequentially. According to this configuration, for example, even in an industrial controller that integrates a control application engine and a programmable logic controller (PLC), it is possible to perform debugging, operation confirmation, etc. without stopping system operation.

上記一例に係る前記制御装置の前記仮想処理部は、前記仮想制御周期に基づいて、前記制御対象に関する動作確認を実行してもよい。当該構成によれば、仮想処理部は仮想制御周期に基づいて動作確認を行うため、実処理への影響を抑えることが可能になる。 The virtual processing unit of the control device according to the above example may perform an operation check regarding the controlled object based on the virtual control period. According to this configuration, since the virtual processing unit performs operation confirmation based on the virtual control period, it is possible to suppress the influence on the actual processing.

上記一例に係る前記制御装置の前記仮想処理部は、他の処理装置(例えばIDE(Integrated Development Environment)を有する装置)からの指示により、前記第1プログラム及び/又は前記第2プログラムに対するデバッグ動作モードを実行してもよい。当該構成により、デバッグ動作モードでは、システムを稼働させたまま、仮想マシン上で実行される全てのプログラムに対して開始・停止、ブレーク、部分実行、ステップ実行、バックトレース実行、オンライン編集などの実行制御ができる。 The virtual processing unit of the control device according to the above example operates in a debug operation mode for the first program and/or the second program according to an instruction from another processing device (for example, a device having an IDE (Integrated Development Environment)). may be executed. With this configuration, in debug operation mode, you can start/stop, break, partial execute, step execute, backtrace execute, online edit, etc. for all programs running on the virtual machine while the system is running. Can be controlled.

上記一例に係る前記制御装置の前記仮想処理部は、前記第1処理部及び前記第2処理部の実行中に、前記仮想制御周期に基づき前記デバッグ動作モードを実行してもよい。当該構成によれば、システムが稼働中であっても、仮想制御周期に基づいてデバッグ動作モードを実行するため、実制御周期への影響を抑えることができ、適切にデバッグ動作モードを実行することが可能になる。 The virtual processing unit of the control device according to the above example may execute the debug operation mode based on the virtual control cycle while the first processing unit and the second processing unit are executing. According to this configuration, even when the system is in operation, the debug operation mode is executed based on the virtual control cycle, so the influence on the actual control cycle can be suppressed, and the debug operation mode can be executed appropriately. becomes possible.

上記一例に係る前記制御装置の前記仮想処理部は、前記デバッグ動作モードにおいて、前記仮想制御周期を停止又は変更して前記制御対象の動作確認を実行してもよい。当該構成により、実制御周期を用いての困難な様々な動作確認を行うことが可能になる。 In the debug operation mode, the virtual processing unit of the control device according to the above example may stop or change the virtual control cycle and check the operation of the controlled object. With this configuration, it becomes possible to perform various difficult operation checks using the actual control period.

上記一例に係る前記制御装置は、前記仮想制御周期に基づいて、前記第1プログラムを実行して生成される第1データ、前記第2プログラムを実行して生成される第2データ、又は前記第1プログラム及び前記第2プログラムが同期して実行される場合の第1データ及び第2データを、前記他の処理装置に出力する出力部を備えてもよい。当該構成によれば、IDEを有する他の装置に、デバッグ動作モードの実行結果や動作確認の確認結果を出力することができ、当該実行結果や確認結果をユーザに提供することが可能になる。 The control device according to the above example may generate first data generated by executing the first program, second data generated by executing the second program, or second data generated by executing the second program, based on the virtual control cycle. The processing apparatus may include an output unit that outputs first data and second data when the first program and the second program are executed synchronously to the other processing device. According to this configuration, the execution result of the debug operation mode and the confirmation result of the operation check can be output to another device having the IDE, and the execution result and confirmation result can be provided to the user.

また、本開示の技術の一例に係る制御装置の制御方法は、第1プログラムと第2プログラムとを記憶する記憶部を有し、制御対象を制御する制御装置が、制御周期ごとに前記第1プログラムを実行して第1指令値を演算する第1処理ステップと、前記制御周期ごとに前記第2プログラムを実行して第2指令値を演算する第2処理ステップと、前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する仮想処理ステップと、を実行する。 Further, a control method for a control device according to an example of the technology of the present disclosure includes a storage unit that stores a first program and a second program, and the control device that controls a controlled object performs the first program in each control period. A first processing step of executing a program to calculate a first command value, and a second processing step of executing the second program and calculating a second command value for each control cycle, which are different from the control cycle. A virtual processing step of executing the first program and/or the second program based on the virtual control cycle using a virtualization technology that can control the virtual control cycle.

当該方法によれば、仮想化技術を利用することで、実際のシステムを動作させる実制御周期を止めたり変更したりすることなく、仮想制御周期に基づく第1プログラム及び/又は第2プログラムを実行することができ、例えば、仮想制御周期を用いてのデバッグや動作確認などが可能になる。 According to this method, by using virtualization technology, the first program and/or the second program can be executed based on the virtual control cycle without stopping or changing the actual control cycle that operates the actual system. For example, debugging and operation confirmation using the virtual control cycle become possible.

また、本開示の技術の一例に係る開発支援装置は、制御装置において実行される、制御周期ごとに第1指令値を演算する第1プログラム及び/又は前記制御周期ごとに第2指令値を演算する第2プログラムの開発を支援する開発支援装置であって、前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する前記制御装置の仮想処理部に対し、前記第1プログラム及び/又は前記第2プログラムの実行を指示する指示部と、前記指示に応じて前記仮想処理部を実行させた場合の実行結果を取得する取得部と、前記実行結果を表示部に表示制御する表示制御部と、を備える。 The development support device according to an example of the technology of the present disclosure also includes a first program that is executed in the control device and that calculates a first command value for each control period, and/or a first program that calculates a second command value for each control period. A development support device that supports the development of a second program that uses a virtualization technology that can control a virtual control cycle different from the control cycle to develop the first program and/or the second program based on the virtual control cycle. an instruction unit that instructs a virtual processing unit of the control device that executes the second program to execute the first program and/or the second program; and an instruction unit that causes the virtual processing unit to execute in response to the instruction. and a display control unit that controls display of the execution results on a display unit.

当該構成によれば、開発支援装置から複数の異なるプログラムを実行する制御装置に対して、仮想処理部を利用してそれぞれのプラグラムや両プログラムに実行指示を出し、その結果を取得して表示することができる。これにより、システムの稼働中であっても、他の装置からデバッグ動作モードへの切り替えや解除などの指示を出すことができ、ユーザにその結果を確認させることが可能である。 According to this configuration, the development support device issues execution instructions to each program or both programs using the virtual processing unit to the control device that executes a plurality of different programs, and obtains and displays the results. be able to. As a result, even when the system is in operation, instructions to switch to or cancel the debug operation mode can be issued from other devices, and the user can confirm the results.

また、本開示の技術の一例に係るプログラムは、制御装置において実行される、制御周期ごとに第1指令値を演算する第1プログラム及び/又は前記制御周期ごとに第2指令値を演算する第2プログラムの開発を支援する開発支援装置に、前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する前記制御装置の仮想処理部に対し、前記第1プログラム及び/又は前記第2プログラムの実行を指示するステップと、前記指示に応じて前記仮想処理部を実行させた場合の実行結果を取得するステップと、前記実行結果を表示部に表示制御するステップと、を実行させる。 Further, a program according to an example of the technology of the present disclosure includes a first program that calculates a first command value for each control period and/or a program that calculates a second command value for each control period, which is executed in the control device. A development support device that supports the development of two programs uses a virtualization technology capable of controlling a virtual control cycle different from the control cycle to generate the first program and/or the second program based on the virtual control cycle. a step of instructing a virtual processing unit of the control device that executes the first program and/or the second program; and an execution result when the virtual processing unit is executed in accordance with the instruction. A step of acquiring the result and a step of displaying the execution result on the display unit are executed.

当該プログラムによれば、開発支援装置から複数の異なるプログラムを実行する制御装置に対して、仮想処理部を利用してそれぞれのプラグラムや両プログラムに実行指示を出し、その結果を取得して表示することができる。これにより、システムの稼働中であっても、他の装置からデバッグ動作モードへの切り替えや解除などの指示を出すことができ、ユーザにその結果を確認させることが可能である。 According to the program, the development support device uses a virtual processing unit to issue execution instructions to each program or both programs to a control device that executes multiple different programs, and obtains and displays the results. be able to. As a result, even when the system is in operation, instructions to switch to or cancel the debug operation mode can be issued from other devices, and the user can confirm the results.

本開示の技術によれば、システムが稼働している最中であっても、動作確認やデバッグ等を行うことができる技術を提供することができる。 According to the technology of the present disclosure, it is possible to provide a technology that allows operation confirmation, debugging, etc. to be performed even while the system is in operation.

本実施の形態に係る制御システムの全体構成例を示す模式図である。FIG. 1 is a schematic diagram showing an example of the overall configuration of a control system according to the present embodiment. 本実施形態に係る制御装置のハードウェア構成例を示すブロック図である。FIG. 2 is a block diagram showing an example of the hardware configuration of a control device according to the present embodiment. 本実施形態に係る開発支援装置のハードウェア構成例を示すブロック図である。FIG. 2 is a block diagram showing an example of the hardware configuration of the development support device according to the present embodiment. 本実施形態に係る制御装置の機能構成の一例を模式的に例示する図である。1 is a diagram schematically illustrating an example of a functional configuration of a control device according to an embodiment. 本実施形態に係る制御周期に基づいて各プログラムの実行状態の一例を示す図である。FIG. 3 is a diagram showing an example of the execution state of each program based on the control cycle according to the present embodiment. 本実施形態に係る制御周期に基づいて各プログラムの実行状態の一例を示す図である。FIG. 3 is a diagram showing an example of the execution state of each program based on the control cycle according to the present embodiment. 本実施形態に係る制御周期に基づいて各プログラムの実行状態の一例を示す図である。FIG. 3 is a diagram showing an example of the execution state of each program based on the control cycle according to the present embodiment. 本実施形態に係る開発支援装置の機能構成の一例を模式的に例示する図である。1 is a diagram schematically illustrating an example of a functional configuration of a development support device according to an embodiment. 本実施形態に係るデバッグ用ツールの画面例の一例を示す図である。It is a figure showing an example of the screen of the debugging tool concerning this embodiment. 本実施形態に係る制御装置の処理手順の一例を例示するフローチャートである。3 is a flowchart illustrating an example of a processing procedure of the control device according to the present embodiment. 本実施形態に係る開発支援装置の処理手順の一例を示すフローチャートである。3 is a flowchart illustrating an example of a processing procedure of the development support device according to the present embodiment.

以下、本開示技術の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本開示技術の例示に過ぎない。本開示技術の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本開示技術の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。 DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment (hereinafter also referred to as "this embodiment") according to one aspect of the disclosed technology will be described below with reference to the drawings. However, the present embodiment described below is merely an example of the disclosed technology in all respects. It goes without saying that various improvements and modifications can be made without departing from the scope of the disclosed technology. That is, in implementing the technology of the present disclosure, specific configurations depending on the embodiments may be adopted as appropriate. Although the data that appears in this embodiment is explained using natural language, more specifically, it is specified using pseudo language, commands, parameters, machine language, etc. that can be recognized by a computer.

§1 適用例
<用語>
まず、本開示技術において使用する用語について説明する。
§1 Application example <Term>
First, terms used in the disclosed technology will be explained.

本開示技術において、「IECプログラム」は、実行毎に全体がスキャンされて、実行毎に1または複数の指令値が演算されるプログラムを含む。例えば、「IECプログラム」は、国際電気標準会議(International Electrotechnical Commission:IEC)によって規定された国際規格IEC61131-3に従って記述された1または複数の命令からなるプログラムを含む。 In the technology disclosed herein, the "IEC program" includes a program whose entirety is scanned each time it is executed, and one or more command values are calculated each time it is executed. For example, an "IEC program" includes a program consisting of one or more instructions written in accordance with the international standard IEC61131-3 defined by the International Electrotechnical Commission (IEC).

また、「IECプログラム」は、シーケンス制御およびモーション制御の命令を含み得る。「IECプログラム」は、制御周期毎にすべてのプログラムが実行(スキャン)され、即時性および高速性が要求される制御に好適である。なお、「IECプログラム」としては、国際規格IEC61131-3に従って記述された命令に限らず、PLC(プログラマブルコントローラ)の製造メーカまたはベンダーなどが独自に規定した命令を含んでもよい。 Additionally, the "IEC program" may include sequence control and motion control instructions. The "IEC program" is suitable for control in which all programs are executed (scanned) in each control cycle and requires immediacy and high speed. Note that the "IEC program" is not limited to instructions written in accordance with the international standard IEC61131-3, but may include instructions uniquely defined by a manufacturer or vendor of a PLC (programmable controller).

本開示技術において、「シーケンス制御」は、例えば、入力値、出力値、内部値などを演算する1または複数の論理回路により記述されるプログラム(シーケンスプログラム)を先頭から最終まで順番に実行する方式である。1回の制御周期において、プログラムの先頭から最終まで実行され、次の制御周期において、プログラムの先頭から最終までが再度実行される。なお、シーケンスプログラムは、電気回路を表現するプログラムであってもよい。 In the technology disclosed herein, "sequence control" is, for example, a method of sequentially executing a program (sequence program) written by one or more logic circuits that calculates input values, output values, internal values, etc. from the beginning to the end. It is. In one control cycle, the program is executed from the beginning to the end, and in the next control cycle, the program is executed again from the beginning to the end. Note that the sequence program may be a program that expresses an electric circuit.

本開示技術において、「モーション制御」は、例えば、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、角加加速度などの数値を指令として演算する方式である。「モーション制御」においても、1回の制御周期において、ファンクションブロックや数値演算式などにより記述されるプログラム(モーションプログラム)の先頭から最終までが実行される。すなわち、制御周期毎に指令値は演算(更新)されることになる。 In the disclosed technology, "motion control" is a method of calculating numerical values such as position, velocity, acceleration, jerk, angle, angular velocity, angular acceleration, and angular jerk as commands to an actuator such as a servo motor. It is. In "motion control" as well, a program (motion program) written using function blocks, numerical calculation formulas, etc. is executed from the beginning to the end in one control cycle. That is, the command value is calculated (updated) every control cycle.

本開示技術において、「制御アプリケーション」は、例えば、CNC(Computer Numerical Control:コンピュータ数値制御)および/またはおよびロボットを用いた、特定の加工または動作を行う装置または機械、ならびにそれらの制御を含む。 In the technology disclosed herein, the "control application" includes, for example, devices or machines that perform specific processing or operations using CNC (Computer Numerical Control) and/or robots, and their control.

本開示技術において、「アプリケーションプログラム」は、制御アプリケーションを実現するための1または複数の命令からなるプログラムを含み、例えば、「IECプログラム」には含まれないプログラムを含む。例えば、「アプリケーションプログラム」は、制御アプリケーションの手順を表現するプログラムであり、一例として、CNCではG言語を用いて記述され、ロボット制御ではロボット言語を用いて記述される。これらのアプリケーションプログラムは、1行ずつ逐次実行されるインタプリタ方式が採用されることが多い。 In the disclosed technology, an "application program" includes a program consisting of one or more instructions for realizing a control application, and includes, for example, a program that is not included in an "IEC program." For example, the "application program" is a program that expresses the procedure of a control application, and as an example, it is written using the G language for CNC, and written using the robot language for robot control. These application programs often employ an interpreter method in which they are executed line by line sequentially.

本開示技術において、「ユーザプログラム(User Program:「UPG」とも略称する)」は、ユーザによって任意に作成可能なプログラムを含む。「ユーザプログラム」は、シーケンス制御を実現するためのシーケンスプログラム、モーション制御を実現するためのモーションプログラム、および、アプリケーションプログラムを含み得る。 In the technology disclosed herein, a "user program (also abbreviated as "UPG")" includes a program that can be created arbitrarily by a user. The "user program" may include a sequence program for implementing sequence control, a motion program for implementing motion control, and an application program.

<適用場面>
次に、図1を用いて、本開示技術が適用される場面の一例について説明する。本実施形態に係る制御装置を含む制御システム1が適用される適用場面の全体構成例について説明する。
<Application scene>
Next, an example of a scene to which the disclosed technology is applied will be described using FIG. 1. An overall configuration example of an application scene to which a control system 1 including a control device according to the present embodiment is applied will be described.

図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図1には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。 FIG. 1 is a schematic diagram showing an example of the overall configuration of a control system 1 according to the present embodiment. FIG. 1 shows a control system 1 centered around a control device 100 according to the present embodiment.

制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当し得る。制御装置100は、例えば、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。 The control device 100 may correspond to an industrial controller that controls control targets such as various types of equipment and devices. The control device 100 is, for example, a type of computer that executes control calculations as described below, and may typically be implemented as a PLC (programmable controller).

また、制御装置100は、フィールドネットワーク2を介して各種のフィールド機器500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器500との間でデータをやり取りする。一般的に「フィールドネットワーク」は、「フィールドバス」を含み得る概念であり、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」とも称する。 Further, the control device 100 may be connected to various field devices 500 via the field network 2. The control device 100 exchanges data with one or more field devices 500 via the field network 2 or the like. Generally, a "field network" is a concept that may include a "field bus," and for the sake of simplicity, it will also be referred to as a "field network" in the following description.

制御装置100において実行される制御演算は、フィールド機器500において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、フィールド機器500に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のフィールド機器500へ送信する処理(出力処理)などを含む。 The control calculations executed by the control device 100 include processing (input processing) of collecting data collected or generated by the field device 500 (hereinafter also referred to as "input data"), data such as commands to the field device 500 ( (Hereinafter, also referred to as "output data."

フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。 It is preferable that the field network 2 employs a bus or a network that performs periodic communication in which data arrival time is guaranteed. EtherCAT (registered trademark), EtherNet/IP (registered trademark), DeviceNet (registered trademark), CompoNet (registered trademark), and the like are known as buses or networks that perform such periodic communication.

フィールドネットワーク2には、任意のフィールド機器500を接続することができる。フィールド機器500は、製造装置や生産ラインなど(以下、「フィールド」とも称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報をやり取りする入出力装置などを含む。 Any field device 500 can be connected to the field network 2. The field device 500 includes an actuator that exerts some physical action on manufacturing equipment, a production line, etc. (hereinafter also referred to as a "field"), an input/output device that exchanges information with the field, and the like. .

フィールドネットワーク2を介して、制御装置100とフィールド機器500との間でデータがやり取りされることになるが、これらのやり取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このようなやり取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。 Data will be exchanged between the control device 100 and the field device 500 via the field network 2, but this exchanged data is updated in very short cycles on the order of several 100 μsec to several 10 msec. That will happen. Note that such updating processing of exchanged data is also referred to as input/output refreshing processing.

図1に示す構成例においては、例えば、フィールド機器500は、リモートI/O(Input/Output)装置510と、サーボドライバ520およびサーボモータ522と、ロボットシステム530と、CNC加工装置540とを含む。フィールド機器500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)などを採用することができる。 In the configuration example shown in FIG. 1, for example, field device 500 includes a remote I/O (Input/Output) device 510, a servo driver 520 and a servo motor 522, a robot system 530, and a CNC processing device 540. . The field device 500 is not limited to these, and may be any device that collects input data (for example, a visual sensor, etc.), any device that provides some kind of action according to output data (for example, an inverter device, etc.), etc. be able to.

リモートI/O装置510は、例えば、フィールドネットワーク2を介して通信を行う通信カプラと、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。 The remote I/O device 510 includes, for example, a communication coupler that communicates via the field network 2, and an input/output unit (hereinafter also referred to as an “I/O unit”) that acquires input data and outputs output data. ).

リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。 The remote I/O device 510 includes devices that collect input data such as input relays and various sensors (for example, analog sensors, temperature sensors, vibration sensors, etc.), output relays, contactors, servo drivers, and other optional devices. A device that exerts some action on the field, such as an actuator, is connected.

サーボドライバ520は、例えば、制御装置100からの出力データ(例えば、位置指令や速度指令など)に従って、サーボモータ522を駆動する。 Servo driver 520 drives servo motor 522, for example, according to output data (eg, position command, speed command, etc.) from control device 100.

ロボットシステム530は、例えば、ロボットコントローラ532およびロボット機構534,536,538を含む。ロボットコントローラ532は、制御装置100からの位置指令などに従って、軌道計算および各軸の角度計算などを行うとともに、計算結果に従って、ロボット機構534,536,538を構成するサーボモータなどを駆動する。 Robot system 530 includes, for example, a robot controller 532 and robotic mechanisms 534, 536, 538. The robot controller 532 performs trajectory calculations, angle calculations for each axis, etc. according to position commands from the control device 100, and drives servo motors and the like constituting the robot mechanisms 534, 536, 538 according to the calculation results.

また、図1に示す構成例において、ロボット機構534はパラレルロボットであり、ロボット機構536はスカラロボットであり、ロボット機構538は多関節ロボットである。なお、ロボットとしては、図1に示す機構に限らず任意の機構を採用できる。また、説明の便宜上、ロボットコントローラ532とロボット機構534,536,538とが分離した構成を例示するが、これに限らず両者を一体化してもよい。 Further, in the configuration example shown in FIG. 1, the robot mechanism 534 is a parallel robot, the robot mechanism 536 is a SCARA robot, and the robot mechanism 538 is an articulated robot. Note that the robot is not limited to the mechanism shown in FIG. 1, but any arbitrary mechanism can be employed. Further, for convenience of explanation, a configuration in which the robot controller 532 and the robot mechanisms 534, 536, and 538 are separated is illustrated, but the present invention is not limited to this, and the two may be integrated.

CNC加工装置540は、位置や速度などを指定するプログラムに従って、マシニングセンタなどを制御することで、任意の対象物を加工する。CNC加工装置540は、例えば、旋盤加工、フライス盤、放電加工などの加工装置を含む。 The CNC machining device 540 processes an arbitrary object by controlling a machining center or the like according to a program that specifies positions, speeds, and the like. The CNC machining device 540 includes, for example, lathe machining, milling machine, electric discharge machining, and other machining devices.

制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置300および1または複数の表示装置400が接続されてもよい。 The control device 100 is also connected to other devices via the upper network 6. The upper network 6 may employ general network protocols such as Ethernet (registered trademark) or EtherNet/IP (registered trademark). More specifically, one or more server devices 300 and one or more display devices 400 may be connected to the upper network 6.

サーバ装置300としては、例えば、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。また、情報系サービスを提供する装置が上位ネットワーク6に接続されるようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行う処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行うための機械学習ツールなどが想定される。 As the server device 300, for example, a database system, a manufacturing execution system (MES), etc. are assumed. The manufacturing execution system monitors and manages the entire production by acquiring information from the manufacturing devices and facilities to be controlled, and can also handle order information, quality information, shipping information, etc. Further, a device that provides information-related services may be connected to the upper network 6. Information-related services are assumed to include processing that acquires information from controlled manufacturing equipment and equipment and performs macroscopic or microscopic analysis. For example, we envision data mining that extracts some characteristic trends contained in information from controlled manufacturing equipment and equipment, and machine learning tools that perform machine learning based on information from controlled equipment and machines. be done.

表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置100での演算結果などをグラフィカルに表示する。 In response to a user's operation, the display device 400 outputs a command or the like to the control device 100 according to the user's operation, and graphically displays the calculation results of the control device 100 or the like.

さらに、制御装置100には、開発支援装置200が接続可能になっている。開発支援装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、開発支援装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ出力する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。 Further, a development support device 200 can be connected to the control device 100. The development support device 200 is a device that supports preparations necessary for the control device 100 to control a controlled object. Specifically, the development support device 200 provides a development environment for programs executed by the control device 100 (program creation and editing tools, parsers, compilers, etc.), parameters ( It provides a setting environment for setting (configuration), a function to output a generated user program to the control device 100, a function to modify/change the user program executed on the control device 100 online, etc.

制御装置100は、インストールされたハイパーバイザやホスト型仮想化ソフトウェア等で制御するゲストOS上に仮想マシンを稼働させる。制御装置100は、PLCや制御アプリケーションエンジンなどの処理部ごとにゲストOSを用意し、処理部ごとに仮想マシンを稼働させてもよい。また、制御装置100は、複数の異なるプログラムを、制御周期に基づき同期して実行可能である。これにより、実制御周期に基づきPLCや制御アプリケーションエンジンなどのシステムを稼働中に、仮想マシン上でデバッグ動作モードや過去の動作確認等を行うことができる。 The control device 100 runs a virtual machine on a guest OS controlled by an installed hypervisor, host virtualization software, or the like. The control device 100 may prepare a guest OS for each processing unit such as a PLC or a control application engine, and run a virtual machine for each processing unit. Further, the control device 100 can execute a plurality of different programs synchronously based on the control cycle. As a result, while a system such as a PLC or a control application engine is operating based on the actual control cycle, it is possible to perform debug operation mode, past operation confirmation, etc. on the virtual machine.

§2 構成例
[ハードウェア構成]
<制御装置>
次に、図2及び図3を用いて、本実施形態に係る制御装置100及び開発支援装置(情報処理装置)200のハードウェア構成の一例について説明する。図2は、本実施形態に係る制御装置100のハードウェア構成の一例を模式的に例示する。
§2 Configuration example [Hardware configuration]
<Control device>
Next, an example of the hardware configuration of the control device 100 and the development support device (information processing device) 200 according to the present embodiment will be described using FIGS. 2 and 3. FIG. 2 schematically illustrates an example of the hardware configuration of the control device 100 according to the present embodiment.

図2は、本実施形態に係る制御装置100のハードウェア構成例を示すブロック図である。一般的なPLCは、例えば、CPUユニットと称される演算処理部と、1または複数のI/Oユニット122とにより構成されるが、図2においては、これらをまとめて描いている。 FIG. 2 is a block diagram showing an example of the hardware configuration of the control device 100 according to the present embodiment. A typical PLC includes, for example, an arithmetic processing unit called a CPU unit and one or more I/O units 122, but these are depicted together in FIG. 2.

図2を参照して、制御装置100は、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェース114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。 Referring to FIG. 2, control device 100 includes a processor 102, a chipset 104, a main storage device 106, a secondary storage device 108, an upper network controller 110, a USB (Universal Serial Bus) controller 112, It includes a memory card interface 114, an internal bus controller 120, and a field network controller 130.

プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。 The processor 102 includes a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), and the like. As the processor 102, a configuration having a plurality of cores may be adopted, or a plurality of processors 102 may be arranged.

チップセット104は、プロセッサ102と各デバイスを制御することで、制御装置100全体としての処理を実現する。主記憶装置106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。二次記憶装置108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。 The chipset 104 realizes the processing of the control device 100 as a whole by controlling the processor 102 and each device. The main storage device 106 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory). The secondary storage device 108 is composed of, for example, a nonvolatile storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive).

プロセッサ102は、二次記憶装置108に格納された各種プログラムを読出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。二次記憶装置108には、基本的な機能を実現するためのシステムプログラム36に加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム(IECプログラム30およびアプリケーションプログラム32)が格納される。 The processor 102 reads various programs stored in the secondary storage device 108, expands them to the main storage device 106, and executes them, thereby realizing control according to the controlled object and various processes as described below. . In addition to the system program 36 for realizing basic functions, the secondary storage device 108 stores user programs (IEC program 30 and application program 32) created according to the manufacturing equipment and equipment to be controlled. be done.

上位ネットワークコントローラ110は、上位ネットワーク6を介して、サーバ装置300や表示装置400(図1参照)などとの間のデータのやり取りを制御する。USBコントローラ112は、USB接続を介して開発支援装置200との間のデータのやり取りを制御する。 The upper network controller 110 controls the exchange of data with the server device 300, the display device 400 (see FIG. 1), etc. via the upper network 6. The USB controller 112 controls data exchange with the development support device 200 via a USB connection.

メモリカードインターフェース114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。 The memory card interface 114 is configured such that a memory card 116 is removably attachable, and it is possible to write data to the memory card 116 and read various data (user program, trace data, etc.) from the memory card 116. ing.

内部バスコントローラ120は、制御装置100に搭載されるI/Oユニット122との間のデータのやり取りを制御する。フィールドネットワークコントローラ130は、フィールドネットワーク2を介した他のデバイスとの間のデータのやり取りを制御する。 Internal bus controller 120 controls data exchange with I/O unit 122 installed in control device 100 . The field network controller 130 controls data exchange with other devices via the field network 2.

図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。 FIG. 2 shows an example of a configuration in which necessary functions are provided by the processor 102 executing a program. or FPGA, etc.). Alternatively, the main parts of the control device 100 may be realized using hardware that follows a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, virtualization technology may be used to run multiple OSs (Operating Systems) for different purposes in parallel, and to run necessary applications on each OS.

上述の図1に示す制御システム1においては、制御装置100、開発支援装置200および表示装置400がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。 In the control system 1 shown in FIG. 1 described above, the control device 100, the development support device 200, and the display device 400 are each configured separately, but all or part of these functions can be integrated into a single device. It is also possible to adopt a configuration that does this.

<開発支援装置>
図3は、本実施形態に係る開発支援装置200のハードウェア構成例を示すブロック図である。開発支援装置200は、1つ又は複数のプロセッサ210、1つ又は複数のネットワーク通信インターフェース220、記憶装置230、ユーザインターフェース240及びこれらの構成要素を相互接続するための1つ又は複数の通信バス250を含む。
<Development support equipment>
FIG. 3 is a block diagram showing an example of the hardware configuration of the development support device 200 according to this embodiment. The development support device 200 includes one or more processors 210, one or more network communication interfaces 220, a storage device 230, a user interface 240, and one or more communication buses 250 for interconnecting these components. including.

ユーザインターフェース240は、表示装置(ディスプレイ)241、及び入力装置(キーボード及び/又はマウス、又は他の何らかのポインティングデバイス等)242を含む。 User interface 240 includes a display 241 and an input device 242 (such as a keyboard and/or mouse, or some other pointing device).

記憶装置230は、例えば、DRAM、SRAM、又は他のランダムアクセス固体記憶装置などの高速ランダムアクセスメモリ(主記憶装置)である。また、記憶装置230は、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、又は他の不揮発性固体記憶装置などの不揮発性メモリ(補助記憶装置)でもよい。また、記憶装置230は、コンピュータ読み取り可能な非一時的な記録媒体でもよい。また、記憶装置230は、主記憶装置(メモリ)又は補助記憶装置(ストレージ)のいずれかでもよく、あるいは両方を備えてもよい。 Storage device 230 is, for example, high speed random access memory (main memory) such as DRAM, SRAM, or other random access solid state storage device. Storage device 230 may also be non-volatile memory (auxiliary storage), such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Furthermore, the storage device 230 may be a computer-readable non-transitory recording medium. Further, the storage device 230 may be either a main storage device (memory) or an auxiliary storage device (storage), or may include both.

記憶装置230は、開発支援装置200により用いられるデータやプログラムを記憶する。例えば、記憶装置230は、開発支援装置200における開発支援プログラムや、アプリケーションプログラムや、IECプログラムなどを記憶する。 The storage device 230 stores data and programs used by the development support device 200. For example, the storage device 230 stores a development support program in the development support device 200, an application program, an IEC program, and the like.

プロセッサ210は、例えばCPU(Central Processing Unit)などであり、記憶装置230に記憶されるプログラムを実行することで、後述する開発支援の各処理部を構成する。 The processor 210 is, for example, a CPU (Central Processing Unit), and configures each processing unit for development support, which will be described later, by executing a program stored in the storage device 230.

通信バス250は、開発支援装置200の外部の装置と有線又は無線により、インターネット等を介したデータ通信を行うためのデバイスである。通信バス250は、開発支援装置200の外部に設けられることも考えられる。その場合、通信バス250は、例えばUSB等のインターフェースを介して開発支援装置200に接続される。 The communication bus 250 is a device for performing wired or wireless data communication with a device external to the development support apparatus 200 via the Internet or the like. It is also conceivable that the communication bus 250 is provided outside the development support device 200. In that case, the communication bus 250 is connected to the development support device 200 via an interface such as a USB.

開発支援装置200は、提供されるサービス専用に設計された情報処理装置の他、汎用のデスクトップPC(Personal Computer)、タブレットPC等が用いられてもよい。 The development support device 200 may be an information processing device designed exclusively for the provided service, or may be a general-purpose desktop PC (personal computer), tablet PC, or the like.

[機能構成]
<制御装置>
次に、図4及び図5を用いて、本実施形態に係る制御装置100の機能構成の一例を説明する。図4は、本実施形態に係る制御装置100の機能構成の一例を模式的に例示する。なお、図4に示す制御装置100において、実制御周期に基づき制御される処理部には符号A,1A,2Aを付し、仮想制御周期に基づき制御される処理部には符号B,1B,2Bを付す。また、符号AとBとを区別しない場合は、符号を省略する。
[Functional configuration]
<Control device>
Next, an example of the functional configuration of the control device 100 according to this embodiment will be described using FIGS. 4 and 5. FIG. 4 schematically illustrates an example of the functional configuration of the control device 100 according to this embodiment. In the control device 100 shown in FIG. 4, the processing units that are controlled based on the actual control cycle are designated by symbols A, 1A, and 2A, and the processing units that are controlled based on the virtual control cycle are designated by symbols B, 1B, and 2A. Add 2B. Further, when the symbols A and B are not distinguished, the symbols are omitted.

図4に示す例において、制御装置100は、IECプログラム処理部150-1,150-2(以下、「IECプログラム処理部150」とも称する。)と、フィールドネットワークインターフェース180と、上位ネットワークインターフェース182と、1または複数の制御アプリケーション処理部160-1,160-2,160-3,160-4・・・(以下、「制御アプリケーション処理部160」とも称する。)とを含む。 In the example shown in FIG. 4, the control device 100 includes IEC program processing sections 150-1 and 150-2 (hereinafter also referred to as "IEC program processing section 150"), a field network interface 180, and an upper network interface 182. , one or more control application processing sections 160-1, 160-2, 160-3, 160-4... (hereinafter also referred to as "control application processing section 160").

また、制御装置100は、各制御アプリケーションを制御する。制御アプリケーションの各々は、典型的には、リレーやコンタクタなどのI/Oデバイスおよびサーボモータなどの各種アクチュエータを含む。各制御アプリケーションに加えて、他のI/Oデバイスおよび各種センサについても、フィールドネットワーク2を介して制御装置100と接続されてもよい。 Further, the control device 100 controls each control application. Each control application typically includes I/O devices such as relays and contactors and various actuators such as servo motors. In addition to each control application, other I/O devices and various sensors may also be connected to the control device 100 via the field network 2.

制御装置100のフィールドネットワークインターフェース180は、IECプログラム処理部150および制御アプリケーション処理部160と、フィールドネットワーク2を介して接続されているデバイスとの間のデータのやり取りを仲介する。 Field network interface 180 of control device 100 mediates data exchange between IEC program processing section 150 and control application processing section 160 and devices connected via field network 2.

制御装置100は、上位ネットワーク6を介して接続されているサーバ装置300などから、生産の開始/終了といった指示を受ける。サーバ装置300は、制御アプリケーションを動作させるためのアプリケーションプログラム32およびレシピ情報(生産に適したパラメータなどの情報)などを制御装置100に送信することもある。 The control device 100 receives instructions to start/end production from a server device 300 or the like connected via the upper network 6. The server device 300 may also transmit an application program 32 for operating the control application, recipe information (information such as parameters suitable for production), etc. to the control device 100.

制御装置100の上位ネットワークインターフェース182は、IECプログラム処理部150および制御アプリケーション処理部160と、上位ネットワーク6を介して接続されている装置との間のデータのやり取りを仲介する。 The upper network interface 182 of the control device 100 mediates data exchange between the IEC program processing section 150 and the control application processing section 160 and devices connected via the upper network 6.

IECプログラム処理部150は、予め定められた制御周期毎にIECプログラムを実行(スキャン)して1または複数の指令値を演算する。例えば、IECプログラム処理部150は、IECプログラムに従って、制御周期毎に指令値を演算する。 The IEC program processing unit 150 executes (scans) the IEC program at each predetermined control cycle and calculates one or more command values. For example, the IEC program processing unit 150 calculates a command value for each control cycle according to the IEC program.

モーション処理部152-1,152-2(以下、「モーション処理部152」とも称する。)は、IECプログラムに含まれるモーション命令に従って、制御周期毎に指令値を演算する機能を提供する。例えば、IECプログラムに含まれるモーション命令は、複数の制御周期にわたる挙動を指示する命令(例えば、何らかの軌道を描くための命令)を含む。このようなモーション命令が実行されると、実行されたモーション命令の指示内容に従って、モーション処理部152が制御周期毎に指令値を演算する。すなわち、モーション処理部152は、制御周期毎に指令値を出力することで、モーション命令により指示された挙動を実現する。 The motion processing units 152-1 and 152-2 (hereinafter also referred to as “motion processing units 152”) provide a function of calculating command values for each control cycle according to motion instructions included in the IEC program. For example, motion instructions included in an IEC program include instructions for instructing behavior over multiple control cycles (eg, instructions for drawing some trajectory). When such a motion command is executed, the motion processing unit 152 calculates a command value for each control cycle according to the instruction content of the executed motion command. That is, the motion processing unit 152 realizes the behavior instructed by the motion command by outputting a command value every control cycle.

制御アプリケーション処理部160は、サーバ装置300などから受信したアプリケーションプログラムおよびレシピ情報などに基づいて、制御アプリケーションを制御するための指令値を演算する。制御アプリケーション処理部160は、IECプログラム処理部150による指令値の演算および出力と同期して、制御アプリケーション用の指令値を演算および出力する。すなわち、制御アプリケーション処理部160は、IECプログラム処理部150による演算処理と同期して、指令値の演算処理を実行する。 The control application processing unit 160 calculates command values for controlling the control application based on the application program, recipe information, etc. received from the server device 300 and the like. The control application processing unit 160 calculates and outputs command values for the control application in synchronization with the calculation and output of command values by the IEC program processing unit 150. That is, the control application processing unit 160 executes the calculation process of the command value in synchronization with the calculation process by the IEC program processing unit 150.

IECプログラム処理部150による指令値の演算処理と同期した指令値の演算を実現するために、各制御アプリケーション処理部160は、各共有メモリ162-1,162-2,162-3・・・(以下、「共有メモリ162」とも称する。)と、モーション処理部164-1,164-2,164-3,164-4・・・(以下、「モーション処理部164」とも称する。)とを含む。 In order to realize command value calculation in synchronization with command value calculation processing by the IEC program processing unit 150, each control application processing unit 160 stores each shared memory 162-1, 162-2, 162-3... (hereinafter also referred to as "shared memory 162") and motion processing units 164-1, 164-2, 164-3, 164-4... (hereinafter also referred to as "motion processing units 164"). .

モーション処理部164は、制御周期毎に指令値を演算する。例えば、モーション処理部164は、共有メモリ162に予め格納された中間コードに従って、制御周期毎に指令値を演算する機能を提供する。一般的に、アプリケーションプログラムに記述される命令(コード)は、逐次実行されるために、指令値の演算周期を保証できないが、中間コードを利用することで、モーション処理部164は、制御周期毎に指令値を演算可能になる。中間コードにおいて記述される命令には、各制御アプリケーションに応じた座標系が用いられてもよい。 The motion processing unit 164 calculates a command value for each control cycle. For example, the motion processing unit 164 provides a function of calculating a command value for each control cycle according to an intermediate code stored in the shared memory 162 in advance. Generally, instructions (codes) written in application programs are executed sequentially, so the calculation cycle of command values cannot be guaranteed. However, by using intermediate code, the motion processing unit 164 can It becomes possible to calculate the command value. A coordinate system depending on each control application may be used for the instructions written in the intermediate code.

本明細書において、「中間コード」は、制御周期毎に指令値を演算するための命令を包含する概念である。「中間コード」は、1または複数の命令、あるいは、1または複数の関数を含む。本実施の形態においては、中間コードは、モーション処理部164が制御周期毎に指令値を演算できるものであれば、どのようなコードであってもよい。 In this specification, "intermediate code" is a concept that includes instructions for calculating a command value for each control cycle. "Intermediate code" includes one or more instructions or one or more functions. In this embodiment, the intermediate code may be any code as long as the motion processing unit 164 can calculate the command value for each control cycle.

フィールドネットワークインターフェース180は、IECプログラム処理部150により演算された1または複数の指令値(基本的には、論理値)、モーション処理部152により演算された1または複数の指令値(基本的には、数値)、ならびに、各モーション処理部164により演算された1または複数の指令値(基本的には、数値)を制御周期毎にフィールド側へ出力する。 The field network interface 180 receives one or more command values (basically, logical values) calculated by the IEC program processing unit 150 and one or more command values (basically, logical values) calculated by the motion processing unit 152. , numerical values) and one or more command values (basically, numerical values) calculated by each motion processing section 164 are output to the field side in each control cycle.

共有メモリ162は、IECプログラム処理部150と制御アプリケーション処理部160との間でデータを共有する。図4に示す構成例においては、制御アプリケーション処理部160による処理結果の一部または全部が共有メモリ162に格納され、IECプログラム処理部150は、制御アプリケーション処理部160の共有メモリ162に格納されたデータを参照することができる。IECプログラム処理部150から制御アプリケーション処理部160の共有メモリ162へのデータ書込みも可能であり、このようにIECプログラム処理部150から書込まれたデータは、モーション処理部164から参照可能である。共有メモリ162にデータを格納する際には、構造体変数を採用してもよい。 The shared memory 162 shares data between the IEC program processing section 150 and the control application processing section 160. In the configuration example shown in FIG. Data can be referenced. It is also possible to write data from the IEC program processing section 150 to the shared memory 162 of the control application processing section 160, and the data written in this way from the IEC program processing section 150 can be referenced from the motion processing section 164. When storing data in the shared memory 162, structure variables may be used.

このように、各制御アプリケーション処理部160は、制御アプリケーションを制御するためのユーザプログラムである各アプリケーションプログラムと、指令値を演算するための各モーション処理部164とを含む。アプリケーションプログラムは、制御アプリケーションに応じた、例えば、工作機械を制御するためのプログラムや組立機械(ロボット)を制御するためのプログラムなどが想定される。 In this way, each control application processing section 160 includes each application program that is a user program for controlling the control application, and each motion processing section 164 for calculating command values. The application program is assumed to be a program for controlling a machine tool, a program for controlling an assembly machine (robot), etc., depending on the control application.

図4に示すように、複数の制御アプリケーションを制御する場合には、制御装置100内に、モーション処理部164を複数配置することで、柔軟に拡張が可能である。 As shown in FIG. 4, when controlling a plurality of control applications, flexible expansion is possible by arranging a plurality of motion processing units 164 within the control device 100.

ここで、制御装置100の実制御周期に基づき制御されるのは、IECプログラム処理部(第1処理部)A150-1と、制御アプリケーション処理部(第2処理部)1A160-1と、制御アプリケーション処理部(第2処理部)2A160-2とである。また、制御装置100の仮想制御周期に基づいて、第1処理部及び/又は第2処理部が稼働中に、例えば仮想マシン170、仮想マシン172、及び仮想マシン174の少なくとも1つが実行される。また、仮想マシン170,172,174を処理する構成をまとめて「仮想処理部」とも称する。図4に示す例では、仮想処理部は、デバッグ動作モードを実行する場合、又は動作確認等を行う場合に利用される。動作確認は、例えば、共有メモリに記憶されるデータをモニタリングすることや、共有メモリに記憶されている所定期間のデータを用いて過去の動作確認を行うことや、仮想の指令値などを用いてシミュレーション等を行うことを含む。 Here, what is controlled based on the actual control period of the control device 100 are the IEC program processing section (first processing section) A150-1, the control application processing section (second processing section) 1A160-1, and the control application processing section (second processing section) 1A160-1. and a processing section (second processing section) 2A160-2. Further, based on the virtual control period of the control device 100, for example, at least one of the virtual machine 170, the virtual machine 172, and the virtual machine 174 is executed while the first processing unit and/or the second processing unit is operating. Further, the configuration that processes the virtual machines 170, 172, and 174 is also collectively referred to as a "virtual processing unit." In the example shown in FIG. 4, the virtual processing unit is used when executing the debug operation mode or when checking the operation. Operation confirmation can be performed, for example, by monitoring data stored in the shared memory, by checking past operations using data stored in the shared memory over a predetermined period, or by using virtual command values. This includes conducting simulations, etc.

仮想処理部は、仮想制御周期に基づいて、IECプログラム、及び/又は、アプリケーションプログラムの実行を制御する。仮想マシン170は、例えばハイパーバイザ上のゲストOS1により、モーション処理部B152-2を含むIECプログラム処理部B150-2を実行し、制御する。仮想マシン172は、例えばハイパーバイザ上のゲストOS2により、共有メモリ1B162-3と、モーション処理部1B164-3とを含む制御アプリケーション処理部1B160-3を実行し、制御する。仮想マシン174は、例えばハイパーバイザ上のゲストOS3により、共有メモリ2B162-4と、モーション処理部2B164-4とを含む制御アプリケーション処理部2B160-4を実行し、制御する。 The virtual processing unit controls execution of the IEC program and/or the application program based on the virtual control cycle. The virtual machine 170 executes and controls an IEC program processing section B150-2 including a motion processing section B152-2 using, for example, a guest OS 1 on a hypervisor. The virtual machine 172 executes and controls a control application processing section 1B160-3 including a shared memory 1B162-3 and a motion processing section 1B164-3, using the guest OS 2 on the hypervisor, for example. The virtual machine 174 executes and controls a control application processing section 2B160-4 including a shared memory 2B162-4 and a motion processing section 2B164-4, using the guest OS 3 on the hypervisor, for example.

この開示技術によれば、仮想化技術を利用することで、実際のシステムを動作させる実制御周期を止めたり変更したりすることなく、仮想制御周期に基づくIECプログラム及び/又はアプリケーションプログラムを実行することができ、例えば、仮想制御周期を用いてのデバッグや動作確認などが可能になる。また、システム内の配線や機械を変更することなく、上記処理は実現可能である。 According to the disclosed technology, by using virtualization technology, an IEC program and/or an application program based on a virtual control cycle can be executed without stopping or changing the actual control cycle that operates the actual system. For example, debugging and operation confirmation using the virtual control cycle become possible. Furthermore, the above processing can be realized without changing the wiring or machinery within the system.

なお、仮想化技術は、例えばハイパーバイザを利用して、仮想マシン上で動作するOSであるゲストOSにより実現されてもよい。この場合、デバッグや動作確認は、ゲストOSにより実行される仮想マシンにより仮想制御周期を用いて制御される。具体例としては、デバッグ用ツール(IDE)から、1つのCPU上に統合された、抽象度の異なるこれらのプログラムを同時にプログラミングすることで、PLCと制御アプリケーションとが連動する複雑なアプリケーションシステムを効率よくデバッグすることが可能になる。 Note that the virtualization technology may be realized by a guest OS, which is an OS running on a virtual machine, using a hypervisor, for example. In this case, debugging and operation confirmation are controlled by a virtual machine executed by a guest OS using a virtual control cycle. As a specific example, by simultaneously programming these programs with different levels of abstraction that are integrated on one CPU using a debugging tool (IDE), it is possible to efficiently create a complex application system in which a PLC and a control application work together. This allows for better debugging.

また、制御装置100について、IECプログラムは、第1プログラム言語(ST言語、ラダー言語等)で記述され、実行ごとに全体がスキャンされ、アプリケーシプログラムは、第1プログラム言語とは異なる第2プログラム言語(C言語、C++言語等)で記述され、逐次実行されてもよい。 Further, regarding the control device 100, the IEC program is written in a first programming language (ST language, ladder language, etc.), the entirety is scanned each time it is executed, and the application program is written in a second programming language different from the first programming language. (C language, C ++ language, etc.) and may be executed sequentially.

この開示技術によれば、例えば、第2プログラム言語で記述される制御アプリケーションエンジンと、第1プログラム言語で記述されるプログラマブルロジックコントローラ(PLC)とを統合する産業用コントローラにおいても、システムの稼働を止めずに、デバッグや動作確認等を行うことが可能である。 According to the disclosed technology, system operation can be achieved, for example, in an industrial controller that integrates a control application engine written in a second programming language and a programmable logic controller (PLC) written in a first programming language. It is possible to debug or check operation without stopping the program.

また、制御装置100の仮想処理部は、仮想制御周期に基づいて、制御対象に関する動作確認を実行してもよい。この開示技術によれば、仮想処理部は仮想制御周期に基づいて動作確認を行うため、実処理への影響を抑えることが可能になる。 Further, the virtual processing unit of the control device 100 may perform operation confirmation regarding the controlled object based on the virtual control cycle. According to this disclosed technology, since the virtual processing unit performs operation confirmation based on the virtual control period, it is possible to suppress the influence on actual processing.

また、制御装置100の仮想処理部は、開発支援装置200からの指示により、IECプログラム及び/又はアプリケーションプログラムに対するデバッグ動作モードを実行してもよい。上記開示技術によれば、デバッグ動作モードでは、システムを稼働させたまま、仮想マシン上の全てのプログラムに対して開始・停止、ブレーク、部分実行、ステップ実行、バックトレース実行、オンライン編集などの実行制御ができる。 Further, the virtual processing unit of the control device 100 may execute a debug operation mode for the IEC program and/or the application program according to instructions from the development support device 200. According to the disclosed technology, in the debug operation mode, all programs on the virtual machine can be started/stopped, broken, partially executed, stepped, backtrace executed, online edited, etc. while the system is running. Can be controlled.

例えば、1つのCPU上で動作するPLCおよび制御アプリケーションエンジンそれぞれが、仮想マシン上でデバッグするための動作モードを持つ。また、システムの稼働状態において、デバッグ用ツール(IDE)から独立して、PLC又は制御アプリケーションエンジンの動作モードを変更することができる。また、デバッグ用ツールからは、仮想マシン上で動作するPCLおよび制御アプリケーションエンジンのプログラムを独立してモニタリングすることもできる。 For example, a PLC and a control application engine running on one CPU each have an operating mode for debugging on a virtual machine. Furthermore, while the system is in operation, the operating mode of the PLC or control application engine can be changed independently of the debugging tool (IDE). Furthermore, the debugging tool can also independently monitor the PCL and control application engine programs running on the virtual machine.

なお、IECプログラム処理部150におけるロジックモデルは、ロジックアナライザ、I/Oモニタ、強制I/O設定、オンラインロジック変更、I/Oトリガトレースなどの機能を持つ。制御アプリケーション処理部160におけるアプリケーションプログラムは、ブレーク、ステップ実行、ウォッチなどの機能を持つ。 Note that the logic model in the IEC program processing unit 150 has functions such as a logic analyzer, I/O monitor, forced I/O setting, online logic change, and I/O trigger trace. The application program in the control application processing unit 160 has functions such as break, step execution, and watch.

また、IECプログラム処理部A150-1に対応する第1処理部、及び、制御アプリケーション処理部1A160-1等に対応する第2処理部の実行中に、制御装置100の仮想処理部は、仮想制御周期に基づきデバッグ動作モードを実行してもよい。この開示技術によれば、システムが稼働中であっても、仮想制御周期に基づいてデバッグ動作モードを実行するため、実制御周期への影響を抑えることができ、適切にデバッグ動作モードを実行することが可能になる。 Further, during execution of the first processing section corresponding to the IEC program processing section A150-1 and the second processing section corresponding to the control application processing section 1A160-1, etc., the virtual processing section of the control device 100 performs virtual control. The debug operation mode may be executed based on the period. According to the disclosed technology, since the debug operation mode is executed based on the virtual control cycle even when the system is in operation, the influence on the actual control cycle can be suppressed, and the debug operation mode can be executed appropriately. becomes possible.

また、制御装置100の仮想処理部は、デバッグ動作モードにおいて、仮想制御周期を停止又は変更して制御対象の動作確認を実行してもよい。この開示技術により、実制御周期を用いての困難な様々な動作確認を行うことが可能になる。例えば、デバック用ツールは、PLCおよび制御アプリケーションエンジンの実行時間の測定機能と、動作制御周期のリアルタイムを変更する変更機能とを持ち、実時間に対して加速あるいは減速したデバッグができる。 Further, the virtual processing unit of the control device 100 may stop or change the virtual control period and check the operation of the controlled object in the debug operation mode. This disclosed technology makes it possible to perform various difficult operation checks using actual control cycles. For example, the debugging tool has a function of measuring the execution time of the PLC and control application engine, and a changing function of changing the real time of the operation control cycle, and can perform debugging accelerated or decelerated relative to the real time.

<制御周期>
図5A乃至Cは、本実施形態に係る制御周期(クロック)に基づいて各プログラムの実行状態の一例を示す図である。なお、図5A乃至Cに示す例では、クロックAは、IECプログラム処理部A150-1と制御アプリケーション処理部A160-1とを制御する実クロックを示す。また、クロックBは、IECプログラム処理部B150-2を制御する仮想クロックを示す。また、クロックCは、制御アプリケーション処理部1B160-3を制御する仮想クロックを示す。
<Control cycle>
FIGS. 5A to 5C are diagrams illustrating an example of the execution state of each program based on the control cycle (clock) according to the present embodiment. Note that in the examples shown in FIGS. 5A to 5C, clock A indicates an actual clock that controls the IEC program processing section A150-1 and the control application processing section A160-1. Further, clock B indicates a virtual clock that controls the IEC program processing section B150-2. Further, clock C indicates a virtual clock that controls the control application processing section 1B160-3.

図5Aは、実クロックを示すクロックAと、仮想クロックB及び仮想クロックCとが同期していることを示す。これにより、IECプログラム処理部A150-1と、制御アプリケーション処理部1A160-1とは、実クロックであるクロックAを用いて制御されている最中に、仮想クロックB又は仮想クロックCによりデバック動作モードを実行することなどが可能になる。また、仮想クロックB及び仮想クロックCを同期させることで、実システムと同様の動作について確認することが可能である。 FIG. 5A shows that clock A indicating the real clock, virtual clock B, and virtual clock C are synchronized. As a result, the IEC program processing unit A150-1 and the control application processing unit 1A160-1 are in the debug operation mode using the virtual clock B or the virtual clock C while being controlled using the clock A, which is the real clock. It becomes possible to execute, etc. Further, by synchronizing the virtual clock B and the virtual clock C, it is possible to confirm the same operation as the real system.

図5Bに示す例では、制御アプリケーション処理部1B160-3のクロックCの長さを半分に変更したときの動作状態を示す。この場合、ユーザは、デバック用ツールなどを用いて、制御アプリケーション処理部1B160-3の処理速度を半分にして、制御対象のロボットの動作確認をシミュレーションすること等が可能になる。 The example shown in FIG. 5B shows the operating state when the length of the clock C of the control application processing unit 1B160-3 is changed to half. In this case, the user can use a debugging tool or the like to reduce the processing speed of the control application processing unit 1B160-3 by half and simulate checking the operation of the robot to be controlled.

図5Cに示す例では、制御アプリケーション処理部1B160-3のクロックCを停止したときの動作状態を示す。この場合、ユーザは、デバック用ツールなどを用いて、制御アプリケーション処理部1B160-3の動作を停止した状態で、IECプログラム処理部B150-2の動作確認などを行うことが可能になる。 The example shown in FIG. 5C shows the operating state when the clock C of the control application processing unit 1B 160-3 is stopped. In this case, the user can use a debug tool or the like to check the operation of the IEC program processing section B150-2 while the operation of the control application processing section 1B160-3 is stopped.

なお、図5B及び図5Cは、制御アプリケーション処理部1B160-3のクロックCについて変更したが、IECプログラム処理部B150-2のクロックBを同様に変更したり、同じく仮想マシン上で動作する制御アプリケーション処理部2B160-4の仮想クロックを変更したりすることが可能である。 Note that in FIGS. 5B and 5C, the clock C of the control application processing unit 1B160-3 is changed, but the clock B of the IEC program processing unit B150-2 may be changed in the same way, or the control application It is possible to change the virtual clock of the processing unit 2B160-4.

<開発支援装置>
次に、図6及び図7を用いて、本実施形態に係る開発支援装置200の機能構成の一例を説明する。図6は、本実施形態に係る開発支援装置200の機能構成の一例を模式的に例示する。
<Development support equipment>
Next, an example of the functional configuration of the development support device 200 according to this embodiment will be described using FIGS. 6 and 7. FIG. 6 schematically illustrates an example of the functional configuration of the development support device 200 according to this embodiment.

図6に示す例において、開発支援装置200は、通信部260と、表示部262と、記憶部264と、制御部270とを含む。また、制御部270は、プログラム編集部270aと、取得部270bと、指示部270c、表示制御部270dとを含む。 In the example shown in FIG. 6, development support device 200 includes a communication section 260, a display section 262, a storage section 264, and a control section 270. Further, the control section 270 includes a program editing section 270a, an acquisition section 270b, an instruction section 270c, and a display control section 270d.

通信部260は、例えば図3に示すネットワーク通信インターフェース220により実現可能であり、制御装置100等とデータのやり取りを行う。例えば、通信部260は、制御装置100に対するデバック動作モードへの変更指示や解除指示、仮想制御周期に関する指示などを制御装置100に送信する。また、通信部260は、開発支援装置200の指示に対する制御装置100の実行結果などを受信する。 The communication unit 260 can be realized, for example, by the network communication interface 220 shown in FIG. 3, and exchanges data with the control device 100 and the like. For example, the communication unit 260 transmits to the control device 100 an instruction to change or cancel the debug operation mode to the control device 100, an instruction regarding the virtual control period, and the like. The communication unit 260 also receives the execution results of the control device 100 in response to instructions from the development support device 200.

表示部262は、例えば図3に示す表示装置241により実現可能であり、表示制御部270dの指示によりデバッグ用ツール画面などを表示する。 The display unit 262 can be realized, for example, by the display device 241 shown in FIG. 3, and displays a debugging tool screen or the like according to instructions from the display control unit 270d.

記憶部264は、例えば図3に示す記憶装置230により実現可能であり、IECプログラム(第1プログラム)や、アプリケーションプログラム(第2プログラム)や、制御装置100から受信したシミュレーション結果や、デバッグの実行結果などを記憶する。 The storage unit 264 can be implemented, for example, by the storage device 230 shown in FIG. 3, and stores the IEC program (first program), application program (second program), simulation results received from the control device 100, and debug execution. Memorize results etc.

制御部270は、例えば図3に示すプロセッサ210等により実現可能であり、予めインストールしてあるプログラムを起動することにより、後述の各機能を実現する。 The control unit 270 can be realized by, for example, the processor 210 shown in FIG. 3, and realizes each function described below by starting a program installed in advance.

プログラム編集部270aは、記憶部264に記憶されているIECプログラム(第1プログラム)や、アプリケーションプログラム(第2プログラム)を編集する。例えば、プログラム編集部270aは、各プログラムに命令文を追加又は削除したり、変数を設定したりすることが可能である。 The program editing section 270a edits the IEC program (first program) and application program (second program) stored in the storage section 264. For example, the program editing section 270a can add or delete command statements to each program, or set variables.

取得部270bは、必要に応じて、記憶部264に記憶された又は制御装置100にインストールされたIECプログラム(第1プログラム)や、アプリケーションプログラム(第2プログラム)を取得する。 The acquisition unit 270b acquires the IEC program (first program) and application program (second program) stored in the storage unit 264 or installed in the control device 100, as necessary.

指示部270cは、制御装置100の実制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、仮想制御周期に基づき第1プログラム及び/又は第2プログラムを実行する制御装置100の仮想処理部に対し、第1プログラム及び/又は第2プログラムの実行を指示する。 The instruction unit 270c executes the first program and/or the second program based on the virtual control cycle of the control device 100 using virtualization technology that can control a virtual control cycle that is different from the actual control cycle of the control device 100. The virtual processing unit is instructed to execute the first program and/or the second program.

例えば、指示部270cは、制御装置100のシステム稼働中に、仮想制御周期を利用してデバッグ動作モードへの切替・解除などの指示を行う。また、指示部270cは、デバッグ動作モードにおいて、システムを稼働させたまま、仮想マシン上で動作する全てのプログラムに対して開始・停止、ブレーク、部分実行、ステップ実行、バックトレース実行、オンライン編集などの実行を指示してもよい。 For example, while the system of the control device 100 is operating, the instruction unit 270c uses a virtual control cycle to instruct the debug operation mode to be switched to or canceled. In addition, in the debug operation mode, the instruction unit 270c executes start/stop, break, partial execution, step execution, backtrace execution, online editing, etc. for all programs running on the virtual machine while the system is running. You may also instruct the execution of

また、指示部270cは、共有メモリ1B162-3、共有メモリ2B162-4に対して、モニタリング、又はオンライン編集を指示してもよい。これにより、共有メモリ1B162-3、共有メモリ2B162-4に書き込まれるデータを監視したり、強制的に書き換えたりすることが可能になる。 Further, the instruction unit 270c may instruct the shared memory 1B 162-3 and the shared memory 2B 162-4 to perform monitoring or online editing. This makes it possible to monitor and forcibly rewrite the data written to the shared memory 1B162-3 and the shared memory 2B162-4.

また、指示部270cは、制御アプリケーション1、2のI/Oに対して、モニタリング、強制値設定、オンライン編集を指示してもよい。また、指示部270cは、モーション処理部B152-2、1B164-3、2B164-4に対して、位置/速度/加速度や軌跡のモニタリングを指示してもよい。これにより、モーション処理部B152-2、1B164-3、2B164-4の制御時に用いられる位置/速度/加速度や軌跡のデータをモニタリングすることが可能になる。 Further, the instruction unit 270c may instruct the I/O of the control applications 1 and 2 to perform monitoring, forced value setting, and online editing. Further, the instruction unit 270c may instruct the motion processing units B152-2, 1B164-3, and 2B164-4 to monitor position/velocity/acceleration and trajectory. This makes it possible to monitor position/velocity/acceleration and trajectory data used when controlling the motion processing units B152-2, 1B164-3, and 2B164-4.

また、指示部270cは、I/O、共有メモリ、制御対象のモーションに対して、IECプログラム処理部B150-2の仮想クロック、及び、制御アプリケーション処理部1B160-3等の仮想クロックと同期したデータトレースを指示してもよい。これにより、IECプログラム処理部B150-2、及び、制御アプリケーション処理部1B160-3等で同様のタイミングで発生する事象について動作確認を行うことが可能になる。また、図5において上述したように、指示部270cは、デバッグ動作モードや動作確認時において、仮想クロックを変更又は停止する指示を行ってもよい。これにより、1つの処理部の動作を停止して、他の処理部の動作を確認したり、各処理部の動作速度を確認したりすることが可能になる。 The instruction unit 270c also provides data synchronized with the virtual clock of the IEC program processing unit B150-2, the virtual clock of the control application processing unit 1B160-3, etc. for I/O, shared memory, and motion to be controlled. You may also instruct tracing. This makes it possible to check the operation of the IEC program processing section B150-2, control application processing section 1B160-3, etc. regarding events that occur at similar timings. Further, as described above with reference to FIG. 5, the instruction unit 270c may issue an instruction to change or stop the virtual clock in the debug operation mode or during operation confirmation. This makes it possible to stop the operation of one processing section and check the operation of other processing sections, or to check the operating speed of each processing section.

また、取得部270bは、指示部270cの指示に応じて制御装置100の仮想処理部を実行させた場合の実行結果を取得する。実行結果は、例えばシミュレーション結果や、モニタリング結果、デバッグ動作モードによるデバッグ結果などの少なくとも1つを含む。 Furthermore, the acquisition unit 270b acquires an execution result when the virtual processing unit of the control device 100 is executed in accordance with an instruction from the instruction unit 270c. The execution results include, for example, at least one of a simulation result, a monitoring result, a debug result in a debug operation mode, and the like.

表示制御部270dは、実行結果を表示部262に表示制御するよう制御する。例えば、デバッグ動作モードへの切替指示の後、デバッグ動作モードが実行された場合に、表示制御部270dは、デバッグの実行結果、例えばバグがある箇所を含むプログラムを表示部262に表示するよう制御する。ユーザは、表示部262に表示される実行結果を参照しながら操作を行うことで、プログラム編集部270aは、ユーザの操作内容に応じてプログラムを編集する。 The display control unit 270d controls the display unit 262 to display the execution results. For example, when the debug operation mode is executed after an instruction to switch to the debug operation mode, the display control unit 270d controls the display unit 262 to display the debug execution result, for example, a program including a buggy part. do. The user performs an operation while referring to the execution result displayed on the display unit 262, and the program editing unit 270a edits the program according to the user's operation.

上記開示技術によれば、開発支援装置200から複数の異なるプログラムを実行する制御装置100に対して、仮想処理部を利用してそれぞれのプラグラムや両プログラムに実行指示を出し、その実行結果を取得して表示することができる。これにより、システムの稼働中であっても、開発支援装置200からデバッグ動作モードへの切り替えや解除などの指示を出すことが可能であり、その結果を確認することができる。 According to the disclosed technology, the development support device 200 issues execution instructions to each program or both programs using the virtual processing unit to the control device 100 that executes a plurality of different programs, and obtains the execution results. can be displayed. Thereby, even when the system is in operation, it is possible to issue instructions to switch to or cancel the debug operation mode from the development support device 200, and the results can be confirmed.

<画面例>
図7は、本実施形態に係るデバッグ用ツールの画面例の一例を示す図である。図7に示す例における、表示部262の表示画面は、IECプログラム表示部H10と、アプリケーションプログラム表示部H12と、制御周期表示部H14と、プログラム表示部H16とを含む。
<Screen example>
FIG. 7 is a diagram showing an example of a screen of the debugging tool according to the present embodiment. In the example shown in FIG. 7, the display screen of the display section 262 includes an IEC program display section H10, an application program display section H12, a control cycle display section H14, and a program display section H16.

IECプログラム表示部H10に表示されるIECプログラム情報は、プログラム編集部270aが作成し、記憶部264内に格納されたプログラムでもよい。そして、表示制御部270dは、編集対象のIECプログラム、例えばロボット制御プログラムまたはシーケンス制御プログラムについてのプログラム情報をIECプログラム表示部H10に表示制御する。例えば、表示されるIECプログラムは、電気回路を模したロジックモデルによりプログラム可能な言語によりプログラミングされたプログラムである。 The IEC program information displayed on the IEC program display section H10 may be a program created by the program editing section 270a and stored in the storage section 264. Then, the display control section 270d displays program information about the IEC program to be edited, such as a robot control program or a sequence control program, on the IEC program display section H10. For example, the displayed IEC program is a program programmed in a programmable language using a logic model that imitates an electric circuit.

アプリケーションプログラム表示部H12には、ロボット制御などのアプリケーションプログラムのソースコードが表示される。アプリケーションプログラム表示部H12には、例えばデバッグ動作により問題が発見された部分のプログラムのソースコードが表示されてもよい。 The application program display section H12 displays the source code of an application program such as robot control. The application program display section H12 may display, for example, the source code of a portion of the program in which a problem is discovered by debugging.

制御周期表示部H14には、制御装置100の実制御周期及び/又は仮想制御周期が表示される。また、ユーザは、この制御周期表示部H14の仮想制御周期を用いて、周期の長さを変更したり、停止したりすることが可能である。指示部270cは、仮想制御周期に関するユーザの操作を検知すると、制御装置100に対して、指示に応じた仮想制御周期の変更又は停止の指示を行う。 The control cycle display section H14 displays the actual control cycle and/or virtual control cycle of the control device 100. Further, the user can change the length of the cycle or stop it using the virtual control cycle in the control cycle display section H14. When the instruction unit 270c detects a user's operation regarding the virtual control period, it instructs the control device 100 to change or stop the virtual control period according to the instruction.

プログラム表示部H16には、例えば、デバッグなどで発見された確認すべきプログラムの箇所などが表示される。例えば、プログラム表示部H16には、プログラム名、確認すべき行番号、プログラム言語などが表示されてもよい。 The program display section H16 displays, for example, parts of the program that are discovered during debugging and should be checked. For example, the program name, line number to be confirmed, programming language, etc. may be displayed on the program display section H16.

§3 動作例
[制御装置]
次に、図8を用いて、制御装置100の動作例を説明する。図8は、本実施形態に係る制御装置100の処理手順の一例を例示するフローチャートである。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
§3 Operation example [Control device]
Next, an example of the operation of the control device 100 will be described using FIG. 8. FIG. 8 is a flowchart illustrating an example of the processing procedure of the control device 100 according to the present embodiment. Note that the processing procedure described below is only an example, and each process may be changed as much as possible. Furthermore, steps may be omitted, replaced, or added as appropriate in the processing procedure described below, depending on the embodiment.

(ステップS102)
ステップS102で、制御装置100は、実制御周期により、例えば制御アプリケーションエンジンとプログラマブルロジックコントローラとを統合した実処理を実行する。例えば、制御装置100は、サーバ装置300等からの指示により、IECプログラム処理部A150-1においてIECプログラム(第1プログラム)を実行し(第1処理)、及び/又は、制御アプリケーション処理部1A160-1等においてアプリケーションプログラム(第2プログラム)を実行する(第2処理)。
(Step S102)
In step S102, the control device 100 executes actual processing by integrating a control application engine and a programmable logic controller, for example, according to an actual control cycle. For example, the control device 100 executes the IEC program (first program) in the IEC program processing section A150-1 (first process) according to instructions from the server device 300, etc. (first processing), and/or the control application processing section 1A160-1. The application program (second program) is executed in the first program (second process).

(ステップS104)
ステップS104で、制御装置100は、開発支援装置200から仮想処理についての指示があるか否かを判定する。例えば、制御装置100の仮想処理部は、開発支援装置200からデバッグ動作モードなどの指示を取得した場合、仮想処理の指示ありと判定し(ステップS104-YES)、処理はステップS106に進み、仮想処理の指示がなければ(ステップS104-NO)、処理はステップS102に戻る。なお、ステップS102の処理とステップS104の処理とは独立して並列処理されてもよい。
(Step S104)
In step S104, the control device 100 determines whether there is an instruction regarding virtual processing from the development support device 200. For example, when the virtual processing unit of the control device 100 acquires an instruction such as a debug operation mode from the development support device 200, it determines that there is an instruction for virtual processing (step S104-YES), and the process proceeds to step S106. If there is no processing instruction (step S104-NO), the process returns to step S102. Note that the processing in step S102 and the processing in step S104 may be independently processed in parallel.

(ステップS106)
ステップS106で、制御装置100の仮想処理部は、実制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、仮想制御周期に基づきIECプログラム(第1プログラム)及び/又はアプリケーションプログラム(第2プログラム)を実行する。例えば、各仮想マシン上で各処理部が実行され、それぞれ独立して制御可能にするとよい。
(Step S106)
In step S106, the virtual processing unit of the control device 100 uses the virtualization technology that can control a virtual control period different from the actual control period to control the IEC program (first program) and/or application based on the virtual control period. Execute the program (second program). For example, it is preferable that each processing unit is executed on each virtual machine and can be controlled independently.

(ステップS108)
ステップS108で、制御装置100は、仮想処理部の実行結果を、上位ネットワークインターフェース182を介して、開発支援装置200に出力する。
(Step S108)
In step S108, the control device 100 outputs the execution result of the virtual processing unit to the development support device 200 via the upper network interface 182.

以上の処理によれば、仮想化技術を利用することで、実際のシステムを動作させる実制御周期を止めたり変更したりすることなく、仮想制御周期に基づく第1プログラム及び/又は第2プログラムを実行することができ、例えば、仮想制御周期を用いてのデバッグや動作確認などが可能になる。また、システム内の配線や機械を変更することなく、上記処理は実現可能である。 According to the above process, by using virtualization technology, the first program and/or the second program can be executed based on the virtual control cycle without stopping or changing the actual control cycle that operates the actual system. For example, debugging and operation confirmation using a virtual control cycle become possible. Furthermore, the above processing can be realized without changing the wiring or machinery within the system.

[開発支援装置]
図9は、本実施形態に係る開発支援装置200の処理手順の一例を示すフローチャートである。図9に示す例では、開発支援装置200にインストールされたプログラムが実行されることで実現される。
[Development support equipment]
FIG. 9 is a flowchart illustrating an example of a processing procedure of the development support apparatus 200 according to the present embodiment. The example shown in FIG. 9 is realized by executing a program installed in the development support device 200.

(ステップS202)
ステップS202で、開発支援装置200の指示部270cは、ユーザからの操作を受け付けて、受け付けた指示が制御装置100の仮想処理の実行指示であるか否かを判定する。仮想処理の実行指示であれば(ステップS202-YES)、処理はステップS204に進み、仮想処理の実行指示がなければ(ステップS202-NO)、処理はステップS202に戻る。
(Step S202)
In step S202, the instruction unit 270c of the development support device 200 receives an operation from the user and determines whether the received instruction is an instruction for the control device 100 to execute virtual processing. If there is an instruction to execute virtual processing (step S202-YES), the process proceeds to step S204, and if there is no instruction to execute virtual processing (step S202-NO), the process returns to step S202.

(ステップS204)
ステップS204で、指示部270cは、制御装置100の仮想処理部に対する指示内容を、制御装置100に出力する。指示内容は、例えば、デバッグ動作モードへの切替等である。
(Step S204)
In step S204, the instruction unit 270c outputs to the control device 100 the content of the instruction to the virtual processing unit of the control device 100. The contents of the instruction include, for example, switching to a debug operation mode.

(ステップS206)
ステップS206で、開発支援装置200の取得部270bは、指示内容に基づいて実行された実行結果を、制御装置100から取得する。
(Step S206)
In step S206, the acquisition unit 270b of the development support device 200 acquires from the control device 100 the execution result executed based on the instruction content.

(ステップS208)
ステップS208で、開発支援装置200の表示制御部270dは、取得された実行結果を表示部262に表示するよう制御する。例えば、図7に示す画面が、表示制御部270dにより画面に表示される。
(Step S208)
In step S208, the display control unit 270d of the development support device 200 controls the display unit 262 to display the acquired execution results. For example, the screen shown in FIG. 7 is displayed on the screen by the display control unit 270d.

以上の処理により、開発支援装置200から複数の異なるプログラムを実行する制御装置100に対して、仮想処理部を利用してそれぞれのプラグラムや両プログラムに実行指示を出し、その結果を取得して表示することができる。これにより、システムの稼働中であっても、ユーザは他の装置からデバッグ動作モードへの切り替えや解除などの指示を出すことができ、その結果を確認することが可能である。 Through the above processing, the development support device 200 issues an execution instruction to each program or both programs using the virtual processing unit to the control device 100 that executes a plurality of different programs, and obtains and displays the results. can do. As a result, even when the system is in operation, the user can issue instructions to switch to or cancel the debug operation mode from other devices, and check the results.

今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 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]
制御対象を制御する制御装置(100)であって、
第1プログラムと第2プログラムとを記憶する第1記憶部(108)と、
制御周期ごとに前記第1プログラムを実行して第1指令値を演算する第1処理部(150)と、
前記制御周期ごとに前記第2プログラムを実行して第2指令値を演算する第2処理部(160)と、
前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する仮想処理部(170,172,174)と、
を備える制御装置。
[付記2]
制御装置において実行される、制御周期ごとに第1指令値を演算する第1プログラム及び/又は前記制御周期ごとに第2指令値を演算する第2プログラムの開発を支援する開発支援装置(200)であって、
前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する前記制御装置の仮想処理部(170,172,174)に対し、前記第1プログラム及び/又は前記第2プログラムの実行を指示する指示部(270c)と、
前記指示に応じて前記仮想処理部を実行させた場合の実行結果を取得する取得部(270b)と、
前記実行結果を表示部に表示制御する表示制御部(270d)と、
を備える開発支援装置。
[Additional note 1]
A control device (100) that controls a controlled object,
a first storage unit (108) that stores a first program and a second program;
a first processing unit (150) that executes the first program every control cycle to calculate a first command value;
a second processing unit (160) that executes the second program every control cycle to calculate a second command value;
a virtual processing unit (170, 172, 174) that executes the first program and/or the second program based on the virtual control cycle using a virtualization technology capable of controlling a virtual control cycle different from the control cycle; )and,
A control device comprising:
[Additional note 2]
A development support device (200) that supports the development of a first program that calculates a first command value for each control cycle and/or a second program that calculates a second command value for each control cycle, which is executed in a control device. And,
A virtual processing unit (170 , 172, 174) to execute the first program and/or the second program;
an acquisition unit (270b) that acquires an execution result when the virtual processing unit is executed in accordance with the instruction;
a display control unit (270d) that controls display of the execution result on a display unit;
Development support equipment equipped with.

1…制御システム、2…フィールドネットワーク、6…上位ネットワーク、10A,10B…上位コントローラ、30…IECプログラム、32…アプリケーションプログラム、36…システムプログラム、100…制御装置、102…プロセッサ、104…チップセット、106…主記憶装置、108…二次記憶装置、110…上位ネットワークコントローラ、112…USBコントローラ、114…メモリカードインターフェース、116…メモリカード、120…内部バスコントローラ、122…I/Oユニット、130…フィールドネットワークコントローラ、150…IECプログラム処理部、152,164…モーション処理部、160…制御アプリケーション処理部、162…共有メモリ、180…フィールドネットワークインターフェース、182…上位ネットワークインターフェース、200…開発支援装置、210…プロセッサ、220…ネットワーク通信インターフェース、230…記憶装置、240…ユーザインターフェース、241…表示装置、242…入力装置、260…通信部、262…表示部、264…記憶部、270…制御部、270a…プログラム編集部、270b…取得部、270c…指示部、270d…表示制御部、200…開発支援装置、300…サーバ装置、400…表示装置 DESCRIPTION OF SYMBOLS 1... Control system, 2... Field network, 6... Upper network, 10A, 10B... Upper controller, 30... IEC program, 32... Application program, 36... System program, 100... Control device, 102... Processor, 104... Chip set , 106...Main storage device, 108...Secondary storage device, 110...Upper network controller, 112...USB controller, 114...Memory card interface, 116...Memory card, 120...Internal bus controller, 122...I/O unit, 130 ...Field network controller, 150...IEC program processing unit, 152, 164...Motion processing unit, 160...Control application processing unit, 162...Shared memory, 180...Field network interface, 182...Upper network interface, 200...Development support device, 210...Processor, 220...Network communication interface, 230...Storage device, 240...User interface, 241...Display device, 242...Input device, 260...Communication section, 262...Display section, 264...Storage section, 270...Control section, 270a...Program editing section, 270b...Acquisition section, 270c...Instruction section, 270d...Display control section, 200...Development support device, 300...Server device, 400...Display device

Claims (10)

制御対象を制御する制御装置であって、
第1プログラムと第2プログラムとを記憶する第1記憶部と、
制御周期ごとに前記第1プログラムを実行して第1指令値を演算する第1処理部と、
前記制御周期ごとに前記第2プログラムを実行して第2指令値を演算する第2処理部と、
前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する仮想処理部と、
を備える制御装置。
A control device that controls a controlled object,
a first storage unit that stores a first program and a second program;
a first processing unit that executes the first program every control cycle to calculate a first command value;
a second processing unit that executes the second program every control cycle to calculate a second command value;
a virtual processing unit that executes the first program and/or the second program based on the virtual control cycle using virtualization technology that can control a virtual control cycle that is different from the control cycle;
A control device comprising:
第1プログラムは、第1プログラム言語で記述され、実行ごとに全体がスキャンされ、
第2プログラムは、前記第1プログラム言語とは異なる第2プログラム言語で記述され、逐次実行される、請求項1に記載の制御装置。
The first program is written in a first programming language, and is entirely scanned each time it is executed.
The control device according to claim 1, wherein the second program is written in a second programming language different from the first programming language and is executed sequentially.
前記仮想処理部は、前記仮想制御周期に基づいて、前記制御対象に関する動作確認を実行する、請求項1又は2に記載の制御装置。 The control device according to claim 1 or 2, wherein the virtual processing unit performs operation confirmation regarding the controlled object based on the virtual control period. 前記仮想処理部は、他の処理装置からの指示により、前記第1プログラム及び/又は前記第2プログラムに対するデバッグ動作モードを実行する、請求項1に記載の制御装置。 The control device according to claim 1, wherein the virtual processing unit executes a debug operation mode for the first program and/or the second program based on instructions from another processing device. 前記仮想処理部は、前記第1処理部及び前記第2処理部の実行中に、前記仮想制御周期に基づき前記デバッグ動作モードを実行する、請求項4に記載の制御装置。 The control device according to claim 4, wherein the virtual processing unit executes the debug operation mode based on the virtual control cycle while the first processing unit and the second processing unit are executing. 前記仮想処理部は、前記デバッグ動作モードにおいて、前記仮想制御周期を停止又は変更して前記制御対象の動作確認を実行する、請求項4又は5に記載の制御装置。 6. The control device according to claim 4, wherein the virtual processing unit checks the operation of the controlled object by stopping or changing the virtual control cycle in the debug operation mode. 前記仮想制御周期に基づいて、前記第1プログラムを実行して生成される第1データ、前記第2プログラムを実行して生成される第2データ、又は前記第1プログラム及び前記第2プログラムが同期して実行される場合の第1データ及び第2データを、前記他の処理装置に出力する出力部を備える、請求項4に記載の制御装置。 Based on the virtual control period, first data generated by executing the first program, second data generated by executing the second program, or the first program and the second program are synchronized. The control device according to claim 4, further comprising an output unit that outputs the first data and second data when the process is executed to the other processing device. 第1プログラムと第2プログラムとを記憶する記憶部を有し、制御対象を制御する制御装置が、
制御周期ごとに前記第1プログラムを実行して第1指令値を演算する第1処理ステップと、
前記制御周期ごとに前記第2プログラムを実行して第2指令値を演算する第2処理ステップと、
前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する仮想処理ステップと、
を実行する制御方法。
A control device that has a storage unit that stores a first program and a second program and controls a controlled object,
a first processing step of executing the first program every control cycle to calculate a first command value;
a second processing step of executing the second program every control cycle to calculate a second command value;
a virtual processing step of executing the first program and/or the second program based on the virtual control cycle using virtualization technology capable of controlling a virtual control cycle different from the control cycle;
A control method for executing.
制御装置において実行される、制御周期ごとに第1指令値を演算する第1プログラム及び/又は前記制御周期ごとに第2指令値を演算する第2プログラムの開発を支援する開発支援装置であって、
前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する前記制御装置の仮想処理部に対し、前記第1プログラム及び/又は前記第2プログラムの実行を指示する指示部と、
前記指示に応じて前記仮想処理部を実行させた場合の実行結果を取得する取得部と、
前記実行結果を表示部に表示制御する表示制御部と、
を備える開発支援装置。
A development support device that supports the development of a first program that calculates a first command value for each control cycle and/or a second program that calculates a second command value for each control cycle, which is executed in a control device. ,
A virtual processing unit of the control device that executes the first program and/or the second program based on the virtual control cycle using virtualization technology that can control a virtual control cycle that is different from the control cycle. , an instruction unit that instructs execution of the first program and/or the second program;
an acquisition unit that acquires an execution result when the virtual processing unit is executed according to the instruction;
a display control unit that controls display of the execution result on a display unit;
Development support equipment equipped with.
制御装置において実行される、制御周期ごとに第1指令値を演算する第1プログラム及び/又は前記制御周期ごとに第2指令値を演算する第2プログラムの開発を支援する開発支援装置に、
前記制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、前記仮想制御周期に基づき前記第1プログラム及び/又は前記第2プログラムを実行する前記制御装置の仮想処理部に対し、前記第1プログラム及び/又は前記第2プログラムの実行を指示するステップと、
前記指示に応じて前記仮想処理部を実行させた場合の実行結果を取得するステップと、
前記実行結果を表示部に表示制御するステップと、
を実行させるプログラム。
A development support device that supports the development of a first program that calculates a first command value for each control period and/or a second program that calculates a second command value for each control period, which is executed in a control device.
A virtual processing unit of the control device that executes the first program and/or the second program based on the virtual control cycle using virtualization technology that can control a virtual control cycle that is different from the control cycle. , instructing execution of the first program and/or the second program;
obtaining an execution result when the virtual processing unit is executed in accordance with the instruction;
controlling the display of the execution result on a display unit;
A program to run.
JP2022061726A 2022-04-01 2022-04-01 Control apparatus, control method, development support apparatus, and program Pending JP2023151876A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022061726A JP2023151876A (en) 2022-04-01 2022-04-01 Control apparatus, control method, development support apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022061726A JP2023151876A (en) 2022-04-01 2022-04-01 Control apparatus, control method, development support apparatus, and program

Publications (1)

Publication Number Publication Date
JP2023151876A true JP2023151876A (en) 2023-10-16

Family

ID=88326837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022061726A Pending JP2023151876A (en) 2022-04-01 2022-04-01 Control apparatus, control method, development support apparatus, and program

Country Status (1)

Country Link
JP (1) JP2023151876A (en)

Similar Documents

Publication Publication Date Title
US10761515B2 (en) Control system for controlling control object and control device for linking control applications in control system
JP6903275B2 (en) Control device and control method
CN109388107B (en) Control device
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
JP7052250B2 (en) Information processing equipment, information processing methods, and information processing programs
EP3441830B1 (en) Information processing device, information processing method, and information processing program
JP6900863B2 (en) Control unit, control method and control program
JP2019061467A (en) Support system and support program
JP7327225B2 (en) Robot control system and control method
JP6881174B2 (en) Control device and control method
JP7077848B2 (en) Control device
JP2023151876A (en) Control apparatus, control method, development support apparatus, and program
US12045034B2 (en) Control system, method, and program to improve debugging efficiency of an NC program and sequence program respectively controlling a machine tool and a peripheral target instrument
JP2023151965A (en) Control apparatus, control method, development support apparatus, and program
JP7167516B2 (en) Control device, control method and control program
WO2022249713A1 (en) Control system, system program, and debugging method
CN108027602B (en) Simulation method for simulating real controller of industrial process, facility or machine and simulation system for executing the simulation method
JP7375632B2 (en) Control system and support equipment
WO2022190420A1 (en) System and method for controlling plurality of movement mechanisms
WO2022254927A1 (en) Information processing device, control system, and program for developing control program