JP2023151876A - Control apparatus, control method, development support apparatus, and program - Google Patents
Control apparatus, control method, development support apparatus, and program Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000011161 development Methods 0.000 title claims description 61
- 238000012545 processing Methods 0.000 claims abstract description 122
- 238000003860 storage Methods 0.000 claims abstract description 43
- 238000012790 confirmation Methods 0.000 claims abstract description 19
- 238000005516 engineering process Methods 0.000 claims description 46
- 230000008569 process Effects 0.000 claims description 14
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000003754 machining Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000036461 convulsion Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 208000033748 Device issues Diseases 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007431 microscopic evaluation Methods 0.000 description 1
- 238000003801 milling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
Abstract
Description
本発明は、制御装置、制御方法、開発支援装置、及びプログラムに関する。 The present invention relates to a control device, a control method, a development support device, and a program.
特許文献1には、予め作成されたリファレンスであって、複数の異なるプログラミング言語のソースコードにおいて参照される共有変数リファレンスに基づいて、入力された複数の異なるプログラミング言語のソースコードにおいて、共有変数が参照されているか否かを判定する開発支援装置が提案されている。当該開発支援装置によれば、異なるプログラム間で定義した共有変数の実装漏れや共有変数名の間違いを、プログラムの実行前に適切に発見することができる。
しかしながら、特許文献1のようなデバッグ動作モードでは、システムを稼働させたままデバッグを行うことはできない。また、システムの稼働中に、過去のある状態についてのシステム動作を確認したりすることは困難であった。
However, in the debug operation mode as disclosed in
そこで、本開示の技術では、システムが稼働している最中であっても、動作確認やデバッグ等を行うことができる技術を提供することを目的とする。 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.
以下、本開示技術の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本開示技術の例示に過ぎない。本開示技術の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本開示技術の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。 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
図1は、本実施の形態に係る制御システム1の全体構成例を示す模式図である。図1には、本実施の形態に係る制御装置100を中心とした制御システム1を示す。
FIG. 1 is a schematic diagram showing an example of the overall configuration of a
制御装置100は、各種の設備や装置などの制御対象を制御する産業用コントローラに相当し得る。制御装置100は、例えば、後述するような制御演算を実行する一種のコンピュータであり、典型的には、PLC(プログラマブルコントローラ)として具現化されてもよい。
The
また、制御装置100は、フィールドネットワーク2を介して各種のフィールド機器500と接続されてもよい。制御装置100は、フィールドネットワーク2などを介して、1または複数のフィールド機器500との間でデータをやり取りする。一般的に「フィールドネットワーク」は、「フィールドバス」を含み得る概念であり、説明の簡素化のため、以下の説明においては、「フィールドネットワーク」とも称する。
Further, the
制御装置100において実行される制御演算は、フィールド機器500において収集または生成されたデータ(以下、「入力データ」とも称す。)を収集する処理(入力処理)、フィールド機器500に対する指令などのデータ(以下、「出力データ」とも称す。)を生成する処理(演算処理)、生成した出力データを対象のフィールド機器500へ送信する処理(出力処理)などを含む。
The control calculations executed by the
フィールドネットワーク2は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。このような定周期通信を行うバスまたはネットワークとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
It is preferable that the
フィールドネットワーク2には、任意のフィールド機器500を接続することができる。フィールド機器500は、製造装置や生産ラインなど(以下、「フィールド」とも称する。)に対して何らかの物理的な作用を与えるアクチュエータ、および、フィールドとの間で情報をやり取りする入出力装置などを含む。
Any
フィールドネットワーク2を介して、制御装置100とフィールド機器500との間でデータがやり取りされることになるが、これらのやり取りされるデータは、数100μsecオーダ~数10msecオーダのごく短い周期で更新されることになる。なお、このようなやり取りされるデータの更新処理は、入出力リフレッシュ処理とも称される。
Data will be exchanged between the
図1に示す構成例においては、例えば、フィールド機器500は、リモートI/O(Input/Output)装置510と、サーボドライバ520およびサーボモータ522と、ロボットシステム530と、CNC加工装置540とを含む。フィールド機器500としては、これらに限られることなく、入力データを収集する任意のデバイス(例えば、視覚センサなど)、出力データに従う何らかの作用を与える任意のデバイス(例えば、インバータ装置など)などを採用することができる。
In the configuration example shown in FIG. 1, for example,
リモートI/O装置510は、例えば、フィールドネットワーク2を介して通信を行う通信カプラと、入力データの取得および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。
The remote I/
リモートI/O装置510には、入力リレーや各種センサ(例えば、アナログセンサ、温度センサ、振動センサなど)などの入力データを収集する装置、および、出力リレー、コンタクタ、サーボドライバ、および、その他任意のアクチュエータなどのフィールドに対して何らかの作用を与える装置が接続される。
The remote I/
サーボドライバ520は、例えば、制御装置100からの出力データ(例えば、位置指令や速度指令など)に従って、サーボモータ522を駆動する。
ロボットシステム530は、例えば、ロボットコントローラ532およびロボット機構534,536,538を含む。ロボットコントローラ532は、制御装置100からの位置指令などに従って、軌道計算および各軸の角度計算などを行うとともに、計算結果に従って、ロボット機構534,536,538を構成するサーボモータなどを駆動する。
また、図1に示す構成例において、ロボット機構534はパラレルロボットであり、ロボット機構536はスカラロボットであり、ロボット機構538は多関節ロボットである。なお、ロボットとしては、図1に示す機構に限らず任意の機構を採用できる。また、説明の便宜上、ロボットコントローラ532とロボット機構534,536,538とが分離した構成を例示するが、これに限らず両者を一体化してもよい。
Further, in the configuration example shown in FIG. 1, the
CNC加工装置540は、位置や速度などを指定するプログラムに従って、マシニングセンタなどを制御することで、任意の対象物を加工する。CNC加工装置540は、例えば、旋盤加工、フライス盤、放電加工などの加工装置を含む。
The
制御装置100は、上位ネットワーク6を介して、他の装置にも接続されている。上位ネットワーク6には、一般的なネットワークプロトコルであるイーサネット(登録商標)やEtherNet/IP(登録商標)が採用されてもよい。より具体的には、上位ネットワーク6には、1または複数のサーバ装置300および1または複数の表示装置400が接続されてもよい。
The
サーバ装置300としては、例えば、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視および管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。また、情報系サービスを提供する装置が上位ネットワーク6に接続されるようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行う処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行うための機械学習ツールなどが想定される。
As the
表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを出力するとともに、制御装置100での演算結果などをグラフィカルに表示する。
In response to a user's operation, the
さらに、制御装置100には、開発支援装置200が接続可能になっている。開発支援装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、開発支援装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ出力する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
Further, a
制御装置100は、インストールされたハイパーバイザやホスト型仮想化ソフトウェア等で制御するゲストOS上に仮想マシンを稼働させる。制御装置100は、PLCや制御アプリケーションエンジンなどの処理部ごとにゲストOSを用意し、処理部ごとに仮想マシンを稼働させてもよい。また、制御装置100は、複数の異なるプログラムを、制御周期に基づき同期して実行可能である。これにより、実制御周期に基づきPLCや制御アプリケーションエンジンなどのシステムを稼働中に、仮想マシン上でデバッグ動作モードや過去の動作確認等を行うことができる。
The
§2 構成例
[ハードウェア構成]
<制御装置>
次に、図2及び図3を用いて、本実施形態に係る制御装置100及び開発支援装置(情報処理装置)200のハードウェア構成の一例について説明する。図2は、本実施形態に係る制御装置100のハードウェア構成の一例を模式的に例示する。
§2 Configuration example [Hardware configuration]
<Control device>
Next, an example of the hardware configuration of the
図2は、本実施形態に係る制御装置100のハードウェア構成例を示すブロック図である。一般的なPLCは、例えば、CPUユニットと称される演算処理部と、1または複数のI/Oユニット122とにより構成されるが、図2においては、これらをまとめて描いている。
FIG. 2 is a block diagram showing an example of the hardware configuration of the
図2を参照して、制御装置100は、プロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェース114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
Referring to FIG. 2,
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。
The
チップセット104は、プロセッサ102と各デバイスを制御することで、制御装置100全体としての処理を実現する。主記憶装置106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。二次記憶装置108は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性記憶装置などで構成される。
The
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。二次記憶装置108には、基本的な機能を実現するためのシステムプログラム36に加えて、制御対象の製造装置や設備に応じて作成されるユーザプログラム(IECプログラム30およびアプリケーションプログラム32)が格納される。
The
上位ネットワークコントローラ110は、上位ネットワーク6を介して、サーバ装置300や表示装置400(図1参照)などとの間のデータのやり取りを制御する。USBコントローラ112は、USB接続を介して開発支援装置200との間のデータのやり取りを制御する。
The
メモリカードインターフェース114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
The
内部バスコントローラ120は、制御装置100に搭載されるI/Oユニット122との間のデータのやり取りを制御する。フィールドネットワークコントローラ130は、フィールドネットワーク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
上述の図1に示す制御システム1においては、制御装置100、開発支援装置200および表示装置400がそれぞれ別体として構成されているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
In the
<開発支援装置>
図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
ユーザインターフェース240は、表示装置(ディスプレイ)241、及び入力装置(キーボード及び/又はマウス、又は他の何らかのポインティングデバイス等)242を含む。
記憶装置230は、例えば、DRAM、SRAM、又は他のランダムアクセス固体記憶装置などの高速ランダムアクセスメモリ(主記憶装置)である。また、記憶装置230は、1つ又は複数の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリデバイス、又は他の不揮発性固体記憶装置などの不揮発性メモリ(補助記憶装置)でもよい。また、記憶装置230は、コンピュータ読み取り可能な非一時的な記録媒体でもよい。また、記憶装置230は、主記憶装置(メモリ)又は補助記憶装置(ストレージ)のいずれかでもよく、あるいは両方を備えてもよい。
記憶装置230は、開発支援装置200により用いられるデータやプログラムを記憶する。例えば、記憶装置230は、開発支援装置200における開発支援プログラムや、アプリケーションプログラムや、IECプログラムなどを記憶する。
The
プロセッサ210は、例えばCPU(Central Processing Unit)などであり、記憶装置230に記憶されるプログラムを実行することで、後述する開発支援の各処理部を構成する。
The
通信バス250は、開発支援装置200の外部の装置と有線又は無線により、インターネット等を介したデータ通信を行うためのデバイスである。通信バス250は、開発支援装置200の外部に設けられることも考えられる。その場合、通信バス250は、例えばUSB等のインターフェースを介して開発支援装置200に接続される。
The
開発支援装置200は、提供されるサービス専用に設計された情報処理装置の他、汎用のデスクトップPC(Personal Computer)、タブレットPC等が用いられてもよい。
The
[機能構成]
<制御装置>
次に、図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
図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
また、制御装置100は、各制御アプリケーションを制御する。制御アプリケーションの各々は、典型的には、リレーやコンタクタなどのI/Oデバイスおよびサーボモータなどの各種アクチュエータを含む。各制御アプリケーションに加えて、他のI/Oデバイスおよび各種センサについても、フィールドネットワーク2を介して制御装置100と接続されてもよい。
Further, the
制御装置100のフィールドネットワークインターフェース180は、IECプログラム処理部150および制御アプリケーション処理部160と、フィールドネットワーク2を介して接続されているデバイスとの間のデータのやり取りを仲介する。
制御装置100は、上位ネットワーク6を介して接続されているサーバ装置300などから、生産の開始/終了といった指示を受ける。サーバ装置300は、制御アプリケーションを動作させるためのアプリケーションプログラム32およびレシピ情報(生産に適したパラメータなどの情報)などを制御装置100に送信することもある。
The
制御装置100の上位ネットワークインターフェース182は、IECプログラム処理部150および制御アプリケーション処理部160と、上位ネットワーク6を介して接続されている装置との間のデータのやり取りを仲介する。
The
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
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
モーション処理部164は、制御周期毎に指令値を演算する。例えば、モーション処理部164は、共有メモリ162に予め格納された中間コードに従って、制御周期毎に指令値を演算する機能を提供する。一般的に、アプリケーションプログラムに記述される命令(コード)は、逐次実行されるために、指令値の演算周期を保証できないが、中間コードを利用することで、モーション処理部164は、制御周期毎に指令値を演算可能になる。中間コードにおいて記述される命令には、各制御アプリケーションに応じた座標系が用いられてもよい。
The
本明細書において、「中間コード」は、制御周期毎に指令値を演算するための命令を包含する概念である。「中間コード」は、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
フィールドネットワークインターフェース180は、IECプログラム処理部150により演算された1または複数の指令値(基本的には、論理値)、モーション処理部152により演算された1または複数の指令値(基本的には、数値)、ならびに、各モーション処理部164により演算された1または複数の指令値(基本的には、数値)を制御周期毎にフィールド側へ出力する。
The
共有メモリ162は、IECプログラム処理部150と制御アプリケーション処理部160との間でデータを共有する。図4に示す構成例においては、制御アプリケーション処理部160による処理結果の一部または全部が共有メモリ162に格納され、IECプログラム処理部150は、制御アプリケーション処理部160の共有メモリ162に格納されたデータを参照することができる。IECプログラム処理部150から制御アプリケーション処理部160の共有メモリ162へのデータ書込みも可能であり、このようにIECプログラム処理部150から書込まれたデータは、モーション処理部164から参照可能である。共有メモリ162にデータを格納する際には、構造体変数を採用してもよい。
The shared
このように、各制御アプリケーション処理部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
図4に示すように、複数の制御アプリケーションを制御する場合には、制御装置100内に、モーション処理部164を複数配置することで、柔軟に拡張が可能である。
As shown in FIG. 4, when controlling a plurality of control applications, flexible expansion is possible by arranging a plurality of
ここで、制御装置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
仮想処理部は、仮想制御周期に基づいて、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
この開示技術によれば、仮想化技術を利用することで、実際のシステムを動作させる実制御周期を止めたり変更したりすることなく、仮想制御周期に基づく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
この開示技術によれば、例えば、第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
また、制御装置100の仮想処理部は、開発支援装置200からの指示により、IECプログラム及び/又はアプリケーションプログラムに対するデバッグ動作モードを実行してもよい。上記開示技術によれば、デバッグ動作モードでは、システムを稼働させたまま、仮想マシン上の全てのプログラムに対して開始・停止、ブレーク、部分実行、ステップ実行、バックトレース実行、オンライン編集などの実行制御ができる。
Further, the virtual processing unit of the
例えば、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
また、制御装置100の仮想処理部は、デバッグ動作モードにおいて、仮想制御周期を停止又は変更して制御対象の動作確認を実行してもよい。この開示技術により、実制御周期を用いての困難な様々な動作確認を行うことが可能になる。例えば、デバック用ツールは、PLCおよび制御アプリケーションエンジンの実行時間の測定機能と、動作制御周期のリアルタイムを変更する変更機能とを持ち、実時間に対して加速あるいは減速したデバッグができる。
Further, the virtual processing unit of the
<制御周期>
図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
図6に示す例において、開発支援装置200は、通信部260と、表示部262と、記憶部264と、制御部270とを含む。また、制御部270は、プログラム編集部270aと、取得部270bと、指示部270c、表示制御部270dとを含む。
In the example shown in FIG. 6,
通信部260は、例えば図3に示すネットワーク通信インターフェース220により実現可能であり、制御装置100等とデータのやり取りを行う。例えば、通信部260は、制御装置100に対するデバック動作モードへの変更指示や解除指示、仮想制御周期に関する指示などを制御装置100に送信する。また、通信部260は、開発支援装置200の指示に対する制御装置100の実行結果などを受信する。
The
表示部262は、例えば図3に示す表示装置241により実現可能であり、表示制御部270dの指示によりデバッグ用ツール画面などを表示する。
The
記憶部264は、例えば図3に示す記憶装置230により実現可能であり、IECプログラム(第1プログラム)や、アプリケーションプログラム(第2プログラム)や、制御装置100から受信したシミュレーション結果や、デバッグの実行結果などを記憶する。
The
制御部270は、例えば図3に示すプロセッサ210等により実現可能であり、予めインストールしてあるプログラムを起動することにより、後述の各機能を実現する。
The
プログラム編集部270aは、記憶部264に記憶されているIECプログラム(第1プログラム)や、アプリケーションプログラム(第2プログラム)を編集する。例えば、プログラム編集部270aは、各プログラムに命令文を追加又は削除したり、変数を設定したりすることが可能である。
The
取得部270bは、必要に応じて、記憶部264に記憶された又は制御装置100にインストールされたIECプログラム(第1プログラム)や、アプリケーションプログラム(第2プログラム)を取得する。
The
指示部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
例えば、指示部270cは、制御装置100のシステム稼働中に、仮想制御周期を利用してデバッグ動作モードへの切替・解除などの指示を行う。また、指示部270cは、デバッグ動作モードにおいて、システムを稼働させたまま、仮想マシン上で動作する全てのプログラムに対して開始・停止、ブレーク、部分実行、ステップ実行、バックトレース実行、オンライン編集などの実行を指示してもよい。
For example, while the system of the
また、指示部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
また、指示部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
表示制御部270dは、実行結果を表示部262に表示制御するよう制御する。例えば、デバッグ動作モードへの切替指示の後、デバッグ動作モードが実行された場合に、表示制御部270dは、デバッグの実行結果、例えばバグがある箇所を含むプログラムを表示部262に表示するよう制御する。ユーザは、表示部262に表示される実行結果を参照しながら操作を行うことで、プログラム編集部270aは、ユーザの操作内容に応じてプログラムを編集する。
The
上記開示技術によれば、開発支援装置200から複数の異なるプログラムを実行する制御装置100に対して、仮想処理部を利用してそれぞれのプラグラムや両プログラムに実行指示を出し、その実行結果を取得して表示することができる。これにより、システムの稼働中であっても、開発支援装置200からデバッグ動作モードへの切り替えや解除などの指示を出すことが可能であり、その結果を確認することができる。
According to the disclosed technology, the
<画面例>
図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
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
アプリケーションプログラム表示部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
プログラム表示部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
(ステップS102)
ステップS102で、制御装置100は、実制御周期により、例えば制御アプリケーションエンジンとプログラマブルロジックコントローラとを統合した実処理を実行する。例えば、制御装置100は、サーバ装置300等からの指示により、IECプログラム処理部A150-1においてIECプログラム(第1プログラム)を実行し(第1処理)、及び/又は、制御アプリケーション処理部1A160-1等においてアプリケーションプログラム(第2プログラム)を実行する(第2処理)。
(Step S102)
In step S102, the
(ステップS104)
ステップS104で、制御装置100は、開発支援装置200から仮想処理についての指示があるか否かを判定する。例えば、制御装置100の仮想処理部は、開発支援装置200からデバッグ動作モードなどの指示を取得した場合、仮想処理の指示ありと判定し(ステップS104-YES)、処理はステップS106に進み、仮想処理の指示がなければ(ステップS104-NO)、処理はステップS102に戻る。なお、ステップS102の処理とステップS104の処理とは独立して並列処理されてもよい。
(Step S104)
In step S104, the
(ステップS106)
ステップS106で、制御装置100の仮想処理部は、実制御周期とは異なる仮想制御周期を制御可能な仮想化技術を利用して、仮想制御周期に基づきIECプログラム(第1プログラム)及び/又はアプリケーションプログラム(第2プログラム)を実行する。例えば、各仮想マシン上で各処理部が実行され、それぞれ独立して制御可能にするとよい。
(Step S106)
In step S106, the virtual processing unit of the
(ステップS108)
ステップS108で、制御装置100は、仮想処理部の実行結果を、上位ネットワークインターフェース182を介して、開発支援装置200に出力する。
(Step S108)
In step S108, the
以上の処理によれば、仮想化技術を利用することで、実際のシステムを動作させる実制御周期を止めたり変更したりすることなく、仮想制御周期に基づく第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
(ステップS202)
ステップS202で、開発支援装置200の指示部270cは、ユーザからの操作を受け付けて、受け付けた指示が制御装置100の仮想処理の実行指示であるか否かを判定する。仮想処理の実行指示であれば(ステップS202-YES)、処理はステップS204に進み、仮想処理の実行指示がなければ(ステップS202-NO)、処理はステップS202に戻る。
(Step S202)
In step S202, the instruction unit 270c of the
(ステップS204)
ステップS204で、指示部270cは、制御装置100の仮想処理部に対する指示内容を、制御装置100に出力する。指示内容は、例えば、デバッグ動作モードへの切替等である。
(Step S204)
In step S204, the instruction unit 270c outputs to the
(ステップS206)
ステップS206で、開発支援装置200の取得部270bは、指示内容に基づいて実行された実行結果を、制御装置100から取得する。
(Step S206)
In step S206, the
(ステップS208)
ステップS208で、開発支援装置200の表示制御部270dは、取得された実行結果を表示部262に表示するよう制御する。例えば、図7に示す画面が、表示制御部270dにより画面に表示される。
(Step S208)
In step S208, the
以上の処理により、開発支援装置200から複数の異なるプログラムを実行する制御装置100に対して、仮想処理部を利用してそれぞれのプラグラムや両プログラムに実行指示を出し、その結果を取得して表示することができる。これにより、システムの稼働中であっても、ユーザは他の装置からデバッグ動作モードへの切り替えや解除などの指示を出すことができ、その結果を確認することが可能である。
Through the above processing, the
今回開示された実施形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 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
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:
第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プログラムを実行して第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プログラム及び/又は前記第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プログラム及び/又は前記第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.
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) |
-
2022
- 2022-04-01 JP JP2022061726A patent/JP2023151876A/en active Pending
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 |