JP6931099B2 - Programming automation in a 3D graphic editor with tightly coupled logic and physics simulation - Google Patents

Programming automation in a 3D graphic editor with tightly coupled logic and physics simulation Download PDF

Info

Publication number
JP6931099B2
JP6931099B2 JP2020002854A JP2020002854A JP6931099B2 JP 6931099 B2 JP6931099 B2 JP 6931099B2 JP 2020002854 A JP2020002854 A JP 2020002854A JP 2020002854 A JP2020002854 A JP 2020002854A JP 6931099 B2 JP6931099 B2 JP 6931099B2
Authority
JP
Japan
Prior art keywords
physical
components
user
simulation
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020002854A
Other languages
Japanese (ja)
Other versions
JP2020074151A (en
Inventor
ゲーリー マクダニエル リチャード
ゲーリー マクダニエル リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
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
Priority claimed from JP2017517718A external-priority patent/JP2018501532A/en
Application filed by Siemens AG filed Critical Siemens AG
Priority to JP2020002854A priority Critical patent/JP6931099B2/en
Publication of JP2020074151A publication Critical patent/JP2020074151A/en
Application granted granted Critical
Publication of JP6931099B2 publication Critical patent/JP6931099B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、全般的に言えば、密結合ロジックおよび物理的シミュレーションの技術を採用した三次元グラフィックインタフェースを用いたオートメーションシステムをプログラミングするための方法、システムおよび装置に関する。 Generally speaking, the present invention relates to methods, systems and devices for programming an automation system using a three-dimensional graphic interface that employs tightly coupled logic and physical simulation techniques.

背景技術
慣用のオートメーションソフトウェアのプログラミング環境において、プログラマは多数の別個のツールを使用し、これらのツールは各々、オートメーションの挙動の態様をプログラミングするために特定の目的を有している。たとえば、あるツールはネットワークプロトコルをセットアップし、別のツールは入力デバイスおよび出力デバイスのためにメモリを割り当て、さらに別のツールは命令をコーディングするために用いられる。これらのツールは完全に独立しており、手動でコンフィギュレーションしなければならず、あるツール内で用いられるコーディング間の何らかのミスマッチによって、たいていは別のツールまたはオートメーションにエラーが引き起こされることになる。さらに、既定のツールの言語と、オートメーションの実行に使用される実際の物理ハードウェアとのマッピングがほとんどない。オートメーションツールにおいて定義される論理要素の多くは、各ツールの構造同士のマッピングを確立すること自体に用いられ、何らかの種類の機械の挙動の実施とは間接的にしか結び付けられていない。
Background Technology In the programming environment of conventional automation software, programmers use a number of separate tools, each of which has a specific purpose for programming aspects of automation behavior. For example, one tool sets up a network protocol, another tool allocates memory for input and output devices, and another tool is used to code instructions. These tools are completely independent and must be manually configured, and any mismatch between the coding used within one tool will often cause errors in another tool or automation. In addition, there is little mapping between the default tool language and the actual physical hardware used to perform the automation. Many of the logical elements defined in automation tools are used in themselves to establish mappings between the structures of each tool and are only indirectly linked to the implementation of some kind of machine behavior.

いくつかの慣用のアプリケーションによって要求されるのは、それらがシミュレーションのために一般的に用いられているとはいえ、それらの命令をあるコントロールデバイスに移植することによってランタイムファンクションも生成できるようにすることである。たとえばモデルベースの制御の分野では、制御プログラムを記述するために、シミュレーションシステムにより提供される種類の等式が利用される。このような状況では、物理デバイスの実際のシミュレーションが行われない場合が多い。むしろ、あるシミュレーションをプログラミングするために通常用いられることになるプログラミング方法は、制御ファンクションをプログラミングするために用いられているものである。別のシステムによればそれらのシミュレーションコードが、Cなどの低レベル言語に変換され、それによって特別なランタイムを必要とすることなく、ある環境においてそのコードを実行させることができる。ただしこのシミュレーションコードは依然として、オートメーションが開発されるデバイスおよび環境をシミュレートするというよりは、汎用プログラミング言語として用いられているにすぎない。 Some idiomatic applications require that run-time functions can also be generated by porting those instructions to a control device, even though they are commonly used for simulation. That is. For example, in the field of model-based control, the types of equations provided by simulation systems are used to write control programs. In such situations, the actual simulation of the physical device is often not performed. Rather, the programming methods that would normally be used to program a simulation are those used to program control functions. According to another system, their simulation code is translated into a low-level language such as C, which allows the code to be executed in one environment without the need for a special runtime. However, this simulation code is still used as a general-purpose programming language rather than simulating the devices and environments in which automation is developed.

いくつかの慣用のコントローラおよびデータ収集ボードは、非標準的なまたは独自の言語を用いてプログラミングされる。それらのコントローラは多種多様であり、それらのうちのいくつかは、テスト中に手動で特定のI/Oの状態を制御可能であるという意味で、一種のシミュレーションを実行することになる。たとえば、ホームオートメーションデバイスによってユーザは、ある種のウェブインタフェースを介して照明のオン/オフをプログラミングできるようになる。しかしながらこの種の慣用の技術では、単純な切り替え以上のことは行われず、たとえばシミュレートされるオブジェクトの属性を利用するなどして指定される物理的シミュレーションを提供できるようにするために、手動でプログラミングされる挙動以上のことは行われない。 Some conventional controllers and data acquisition boards are programmed using non-standard or proprietary languages. Their controllers are diverse and some of them will perform a kind of simulation in the sense that they can manually control the state of a particular I / O during the test. For example, home automation devices allow users to program lighting on and off through some sort of web interface. However, this type of idiomatic technique does nothing more than a simple switch, manually to allow you to provide a specified physical simulation, for example by utilizing the attributes of the simulated object. Nothing is done beyond the programmed behavior.

概要
本発明の実施形態は、物理的シミュレーションを用いる三次元グラフィックインタフェースにおいてオートメーションをプログラミングするための方法、システムおよび装置を提供することによって、上述の不都合な点および欠点のうちの1つまたは複数と取り組み、それを克服しようというものである。ここで開示する技術はたとえば、様々な産業環境および機械装置を設計、シミュレートおよびインプリメントするために用いることができる。
Overview The embodiments of the present invention combine one or more of the above disadvantages and disadvantages by providing methods, systems and devices for programming automation in a three-dimensional graphic interface using physical simulation. It is an effort to overcome it. The techniques disclosed herein can be used, for example, to design, simulate and implement various industrial environments and machinery.

簡単に述べると、本発明の様々な実施形態は、グラフィックシミュレーション環境について説明するものであって、この場合、論理コンポーネントと物理コンポーネントが同じワークスペース内に存在していて、それらをその場その場で編集、修正および実行することができる。たとえば1つの実施形態によれば、設計が不完全であっても、または結果として失敗しているとしても、設計プロセス中の任意の時点にシミュレーションを実行することができる。ロジックを使用して、コンポーネントの状態を変更することができ、また、たとえば他のコンポーネントとインタラクトする可能性のあるワークアイテムを表すために、新たなコンポーネントを生成することができる。コンポーネントの物理的シミュレーションによって、物理的制約のインタラクションに従い、ワークアイテムが除去および変更されるようにすることができる。たとえばコンベヤは、衝突支援を提供し、かつボックスを前方に押し出す力を与えることによって、ボックスを移動させることができる。センサは、シミュレートされるオブジェクトの幾何学的属性またはその他の物理的属性に基づき、値を検出して発生させることができる。ロジックは値を転送してアクティビティを開始することができ、またはそうでなければ、それらのファンクションに基づきアクティビティを制御することができる。一般的にはオートメーションを、物理的に組み合わせられたものであるかのように、シミュレートされた環境において実行することができる。ユーザは、シミュレーション実行時にシミュレーションのオペレーションを検査して、エラーを見つけ出すことができ、そうでなければシステムのファンクションを検証することができる。ユーザは、任意の時点でシミュレーションを停止して、オブジェクトの初期状態を復元することができ、設計されたオートメーションを引き続き編集することができる。 Briefly, various embodiments of the present invention describe a graphic simulation environment, in which the logical and physical components are present in the same workspace and they are in place. Can be edited, modified and executed with. For example, according to one embodiment, the simulation can be run at any time during the design process, even if the design is incomplete or fails as a result. Logic can be used to change the state of a component, and new components can be created, for example to represent work items that may interact with other components. Physical simulation of a component allows work items to be removed and modified according to the interaction of physical constraints. Conveyors, for example, can move a box by providing collision assistance and providing a force that pushes the box forward. The sensor can detect and generate a value based on the geometric or other physical attributes of the simulated object. Logic can transfer values to start activities, or else control activities based on those functions. In general, automation can be performed in a simulated environment as if it were a physical combination. The user can inspect the operation of the simulation when running the simulation to find errors, otherwise the function of the system can be verified. The user can stop the simulation at any point to restore the initial state of the object and continue to edit the designed automation.

本発明のいくつかの実施形態によれば、ユーザからの入力に基づきオートメーションアプリケーションを設計するためのシステムは、ライブラリインタフェースと三次元ワークスペースとシミュレーションエンジンとコントローラコード生成ユニットとを含んでいる。ライブラリインタフェースは、コンポーネントライブラリからの複数のコンポーネントのユーザ選択を受け取るように構成されている。いくつかの実施形態によれば、リモートのマーケットプレイスサーバからダウンロードされたデバイスモデルに部分的に基づき、ライブラリを移入することができる。三次元ワークスペースは、コンポーネントを表示し、ユーザにより供給される1つまたは複数の命令に基づき、コンポーネントを用いてシステム設計を生成する。ついでシミュレーションエンジンは、システム設計に基づきシミュレーションコードを生成し、ユーザからのコマンドに応答してシミュレーションコードを実行することができる。いくつかの実施形態によれば、シミュレーションコードを仮想マシン環境において実行することができる。さらにいくつかの実施形態によれば、三次元ワークスペース内の1つまたは複数のコンポーネントが、シミュレーションコードの実行中、アニメーションで表示される。前述のシステムに含まれているコントローラコード生成ユニットは、三次元ワークスペース内のコンポーネントに対応する物理コントローラを(たとえばコントローラから受け取ったデバイス通知メッセージに基づき)識別し、システム設計に基づきそれらのコントローラのために、コントローラにより実行可能なコードを生成するように構成されている。 According to some embodiments of the present invention, a system for designing an automation application based on user input includes a library interface, a three-dimensional workspace, a simulation engine, and a controller code generation unit. The library interface is configured to receive user selections of multiple components from the component library. According to some embodiments, the library can be populated based in part on the device model downloaded from the remote marketplace server. The 3D workspace displays the components and uses the components to generate a system design based on one or more instructions provided by the user. The simulation engine can then generate simulation code based on the system design and execute the simulation code in response to commands from the user. According to some embodiments, the simulation code can be executed in a virtual machine environment. According to some further embodiments, one or more components in the 3D workspace are animated during the execution of the simulation code. The controller code generation unit included in the system described above identifies the physical controllers corresponding to the components in the 3D workspace (for example, based on the device notification message received from the controller) and of those controllers based on the system design. Therefore, it is configured to generate code that can be executed by the controller.

前述のシステムのいくつかの実施形態によれば、三次元ワークスペースを、付加的な機能を実行するように構成することができる。たとえばいくつかの実施形態によれば、ユーザにより選択されたコンポーネントには、1つの物理デバイスモデルに対応づけられた物理コンポーネントと、1つの論理演算に対応づけられた論理要素とを含むことができる。このようにして三次元ワークスペースは、複数の論理要素と複数の物理コンポーネントとの対応づけを、1つまたは複数のユーザ命令に基づき生成することができる。択一的に(または付加的に)三次元ワークスペースは、第1のユーザリクエストに基づき、1つまたは複数の論理要素を含む論理要素コンテナを生成することができる。ついで第2のユーザリクエストに基づき、論理要素コンテナと、複数の物理コンポーネントのうち少なくとも1つの物理コンポーネントとの間で、対応づけを生成することができる。このような対応づけを生成するために、様々な技術を用いることができる。たとえば1つの実施形態によれば、この対応づけは以下により生成される。すなわち、
・第1のユーザ選択に基づき、第1の物理オブジェクトを識別し、
・論理要素コンテナの論理入力ポートオブジェクトを、第1の物理オブジェクトのデバイス出力ポートオブジェクトと接続し、
・第2のユーザ選択に基づき、第2の物理オブジェクトを識別し、
・論理要素コンテナの論理出力ポートオブジェクトを、第2の物理オブジェクトのデバイス入力ポートオブジェクトと接続する
ことにより生成される。いくつかの実施形態によれば、三次元ワークスペースをさらに、複数の物理コンポーネントのうち少なくとも1つの物理コンポーネントのための1つまたは複数の属性値のユーザコンフィギュレーションを受け取るように、構成することができる。これらの属性値をたとえば、シミュレーションコード実行中、1つまたは複数の物理コンポーネントの挙動をシミュレートするために用いられる物理モデルへの入力に対応させることができる。
According to some embodiments of the system described above, the 3D workspace can be configured to perform additional functions. For example, according to some embodiments, the component selected by the user can include a physical component associated with one physical device model and a logical element associated with one logical operation. .. In this way, the three-dimensional workspace can generate the association between a plurality of logical elements and a plurality of physical components based on one or a plurality of user instructions. Alternatively (or additionally) the 3D workspace can generate a logical element container containing one or more logical elements based on the first user request. Then, based on the second user request, the association can be generated between the logical element container and at least one physical component among the plurality of physical components. Various techniques can be used to generate such associations. For example, according to one embodiment, this association is generated by: That is,
-Identify the first physical object based on the first user selection
-Connect the logical input port object of the logical element container to the device output port object of the first physical object,
-Identify the second physical object based on the second user selection
-Created by connecting the logical output port object of the logical element container to the device input port object of the second physical object. According to some embodiments, the 3D workspace may be further configured to receive a user configuration of one or more attribute values for at least one physical component of the plurality of physical components. can. These attribute values can correspond, for example, to input to a physical model used to simulate the behavior of one or more physical components during simulation code execution.

いくつかの実施形態によって説明するように本発明の別の態様によれば、ユーザからの入力に基づきオートメーションアプリケーションを設計するためのシステムは、ワークスペースと、シミュレーションエンジンと、コントローラコード生成ユニットとを含んでいる。ワークスペースは、産業環境の三次元モデルをユーザが生成および操作できるように構成されている。シミュレーションエンジンは、三次元モデルの物理的挙動をシミュレートするように構成されている。1つの実施形態によれば、シミュレーションエンジンは、シミュレーション実行中、三次元モデルをアニメーションで表示する。コントローラコード生成ユニットは、三次元モデルに含まれる物理コンポーネントに対応する1つまたは複数の物理コントローラのために、コントローラにより実行可能なコードを生成するように構成されている。いくつかの実施形態によれば、システムは、マーケットプレイスサーバから新たな物理デバイスモデルを取り出すように構成されたマーケットプレイスインタフェースも含んでいる。このようにしてマーケットプレイスインタフェースは、新たな物理デバイスモデルを使用して、三次元モデルにおいて使用するための新たな物理コンポーネントを生成することができる。1つの実施形態によれば、マーケットプレイスインタフェースは、新たな物理デバイスモデルに対応する物理デバイスの(たとえばマーケットプレイスサーバを介した)ユーザによる取得を、補助して円滑に進めることもできる。 According to another aspect of the invention, as described by some embodiments, a system for designing an automation application based on user input comprises a workspace, a simulation engine, and a controller code generation unit. Includes. The workspace is configured to allow the user to generate and manipulate a three-dimensional model of the industrial environment. The simulation engine is configured to simulate the physical behavior of a 3D model. According to one embodiment, the simulation engine animates the 3D model during simulation execution. The controller code generation unit is configured to generate code that can be executed by the controller for one or more physical controllers corresponding to the physical components contained in the 3D model. According to some embodiments, the system also includes a marketplace interface configured to retrieve a new physical device model from the marketplace server. In this way, the marketplace interface can use the new physical device model to generate new physical components for use in the 3D model. According to one embodiment, the marketplace interface can also assist and facilitate the acquisition of physical devices corresponding to the new physical device model by the user (eg, via a marketplace server).

本発明のさらに別の実施形態によれば、ユーザからの入力に基づきオートメーションアプリケーションを設計する、コンピュータにより実施される方法には、コンポーネントライブラリからの複数のコンポーネントのユーザ選択をコンピュータが受け取るステップが含まれている。コンピュータは、ユーザにより供給される1つまたは複数の命令に基づき、コンポーネントを用いて三次元ワークスペース内にシステム設計を生成する。ついでコンピュータは、システム設計に基づきシミュレーションコードを生成し、ユーザからのコマンドに応答してこのコードを実行する。コンピュータは、三次元ワークスペース内の複数のコンポーネントに対応する物理コントローラを識別し、システム設計に基づきそれらの物理コントローラのために、コントローラにより実行可能なコードを生成する。 According to yet another embodiment of the invention, a computer-implemented method of designing an automation application based on user input involves the computer receiving user selections of multiple components from a component library. It has been. The computer uses components to generate a system design in a 3D workspace based on one or more instructions provided by the user. The computer then generates simulation code based on the system design and executes this code in response to commands from the user. The computer identifies the physical controllers that correspond to multiple components in the three-dimensional workspace and generates code that can be executed by the controllers for those physical controllers based on the system design.

添付の図面を参照しながら例示的な実施形態について以下で詳しく説明することで、本発明のその他の特徴および利点を明らかにしていく。 Other features and advantages of the present invention will be clarified by describing exemplary embodiments in detail below with reference to the accompanying drawings.

以下の詳細な説明を添付の図面を参照しながら読めば、本発明の前述の態様およびその他の態様の理解が最も深まる。本発明を例示する目的で、図面には現時点で好ましい実施形態が示されているが、本発明が特定の詳細な説明に限定されるものではないことを理解されたい。 Reading the following detailed description with reference to the accompanying drawings will give the best understanding of the aforementioned and other aspects of the invention. Although preferred embodiments are shown in the drawings at this time for purposes of exemplifying the invention, it should be understood that the invention is not limited to any particular detailed description.

本発明のいくつかの実施形態による、オートメーションをプログラミングするためのシステムの概要を示す図Diagram showing an overview of a system for programming automation according to some embodiments of the present invention. 本発明のいくつかの実施形態によるエンジニアリングツールの一例を示す図The figure which shows an example of the engineering tool by some embodiments of this invention. 本発明のいくつかの実施形態によるコントローラアーキテクチャの一例を示す図The figure which shows an example of the controller architecture by some embodiments of this invention. 本発明のいくつかの実施形態による、シミュレーション環境においてオートメーション実行時に実施されるプロセスの概要を示す図The figure which outlines the process performed at the time of automation execution in the simulation environment by some embodiments of this invention. 本発明の実施形態をインプリメント可能なコンピューティング環境の一例を示す図The figure which shows an example of the computing environment which can implement the embodiment of this invention.

詳細な説明
以下の開示では、密結合ロジックおよび物理的シミュレーションを用いるグラフィック環境におけるオートメーションをプログラミングするための方法、システムおよび装置を対象としたいくつかの実施形態に従って、本発明を説明する。ここで説明する本発明の種々の実施形態によれば、シミュレーションと制御プログラミングとが融合されて、もはや別々の実行項目ではなくなるように、それらが共に同じツールに組み込まれる。ここで説明する技術は、産業用途に特に適用可能なシステムの設計およびインプリメンテーションであるが、それらに限定されるものではない。
Detailed Description The following disclosure describes the invention according to several embodiments intended for methods, systems and devices for programming automation in graphic environments with tightly coupled logic and physical simulation. According to the various embodiments of the invention described herein, simulation and control programming are fused and both incorporated into the same tool so that they are no longer separate execution items. The techniques described herein are, but are not limited to, the design and implementation of systems that are particularly applicable to industrial applications.

図1には、本発明のいくつかの実施形態による、オートメーションをプログラミングするためのシミュレーション環境100の概要が示されている。簡単に述べると、コンポーネント供給業者105および110は、ネットワーク125を介してマーケットプレイスサーバ115へデバイスモデルを提供する。ついで製造業者サイト120におけるユーザ120Aは、ユーザコンピュータ120Bにおいて実行されるシミュレーション環境で使用するために、ネットワーク125を介してそれらのモデルをマーケットプレイスサーバ115からダウンロードすることができる。ユーザコンピュータ120Bによってユーザ120Aは、コントローラコード120Fを生成することができ、その後、それらのコントローラコード120Fを、物理デバイス120Dおよび120Eに対応づけられたコントローラにアップロードすることができる。 FIG. 1 outlines a simulation environment 100 for programming automation according to some embodiments of the present invention. Briefly, component suppliers 105 and 110 provide device models to marketplace servers 115 over network 125. The user 120A at the manufacturer site 120 can then download their models from the marketplace server 115 over the network 125 for use in the simulation environment running on the user computer 120B. The user computer 120B allows the user 120A to generate controller codes 120F and then upload those controller codes 120F to the controllers associated with the physical devices 120D and 120E.

コンポーネント供給業者105およびコンポーネント供給業者110は、それぞれ物理コンベヤおよび物理モータのモデルを、ネットワーク125を介してマーケットプレイスサーバ115へ供給する。各モデルは、拡張マークアップ言語(XML)などのように標準化された言語を用いて、デバイスに関する詳細情報を提供する。機能的に自己完結型に、また、必要に応じてインテリジェント型に、モデルを設計することができる。モデルは、センサまたはアクチュエータ、制御デバイスたとえばプログラマブルロジックコントローラなどのような物理デバイスを表現することができ、さらに物理的実体を伴わないアプリケーションにおいて適用可能なファンクションを表すことができる。モデルのコンテンツにはたとえば、対応する物理デバイスのジオメトリ、キネマティクスおよび挙動に関する詳細情報を含めることができる。さらにモデルには、他のモデルとのインタフェースのための、および異なるコンフィギュレーションを提供するための表示も含めることができる。コンピュータ支援型設計ソフトウェアの拡張を利用して、機械設計を組み込むことによりモデルを生成することができる。マーケットプレイスサーバ115は、各コンポーネント供給業者により生成されたモデルのレポジトリのホストの役割を果たす。マーケットプレイスサーバ115は、レポジトリに対するインタフェースを提供し、これによってユーザは、モデルを閲覧およびダウンロードすることができる。たとえば、いくつかの実施形態において、マーケットプレイスサーバ115はウェブページインタフェースを使用し、これによってダウンロードで入手可能な様々なモデルのカタログが提供される。このインタフェースには、各モデルに関する詳細情報を含めることができ、この情報にはたとえば、モデリングされた物理デバイスのイメージ、入出力ポートの一覧、コンフィギュレーション可能な属性、およびモデル挙動の記述などが含まれている。いくつかの実施形態によれば、マーケットプレイスサーバ115は、ユーザと様々なコンポーネント供給業者との間のトランザクションを処理することもできる。たとえば1つの実施形態によれば、マーケットプレイスサーバ115からダウンロードされた各モデルについて、ユーザに対し料金が請求される。別の実施形態によれば、マーケットプレイスサーバ115は、特定のモデルに対応する物理デバイスの取得にあたり、ユーザとコンポーネント供給業者との間のトランザクションを補助して円滑に進める。 The component supplier 105 and the component supplier 110 supply the models of the physical conveyor and the physical motor to the marketplace server 115 via the network 125, respectively. Each model uses a standardized language, such as Extended Markup Language (XML), to provide detailed information about the device. Models can be designed to be functionally self-contained and intelligent as needed. The model can represent a physical device such as a sensor or actuator, a control device such as a programmable logic controller, and can represent a function applicable in an application without a physical entity. The content of the model can include, for example, detailed information about the geometry, kinematics and behavior of the corresponding physical device. Models can also include displays for interfacing with other models and for providing different configurations. An extension of computer-aided design software can be used to generate models by incorporating mechanical design. The marketplace server 115 acts as a host for the model repository generated by each component supplier. Marketplace server 115 provides an interface to the repository, which allows users to view and download models. For example, in some embodiments, the Marketplace Server 115 uses a web page interface, which provides a catalog of various models available for download. This interface can contain detailed information about each model, including, for example, an image of the modeled physical device, a list of I / O ports, configurable attributes, and a description of model behavior. It has been. According to some embodiments, the Marketplace Server 115 can also handle transactions between the user and various component suppliers. For example, according to one embodiment, the user is charged for each model downloaded from the Marketplace Server 115. According to another embodiment, the marketplace server 115 assists and facilitates a transaction between a user and a component supplier in acquiring a physical device corresponding to a particular model.

製造業者サイト120において、ユーザ120Aはユーザコンピュータ120Bを利用して、(図2を参照しながらあとで詳しく説明する)エンジニアリングツール120Cを実行する。エンジニアリングツール120Cによりユーザ120Aは、モータのモデルおよびコンベヤのモデルをユーザコンピュータ120Bにダウンロードすることができる。その後、エンジニアリングツール120Cは、ダウンロードされたモデルをシミュレーション環境において使用することができ、このシミュレーション環境によって、モデリングされたアイテムの物理的アクティビティを模倣する計算が実施される。簡単に述べると、エンジニアリングツールは、3Dグラフィックエディタおよび可視化環境に組み込まれたダイナミクスシミュレーションを有している。このシミュレーションには、ハードウェアデバイスおよびこのデバイスが操作および変形する加工製品の物理的シミュレーションが含まれている。シミュレートされる物理オブジェクトは、現実のハードウェアデバイスを表している。既定のデバイスのためのシミュレーションは、そのデバイスの挙動が整合されて、同じ入力条件においてシミュレーションの能力範囲内で同じアクションが実施されるように設定される。シミュレーションによって、オブジェクトの幾何学的形状、ポジション、キネマティクス連鎖、およびダイナミクスを追従することができる。さらにシミュレーションには、オブジェクトの追加およびシミュレーションからの除去を動的に行う能力も含めることができる。この能力を用いて、たとえば切断、圧搾、成形などのようなオブジェクトの変形をシミュレートすることができる。さらにこの能力を用いて、加工製品の導入およびプロセスからの除去をシミュレートすることもできる。 At the manufacturer site 120, the user 120A utilizes the user computer 120B to execute the engineering tool 120C (discussed in detail later with reference to FIG. 2). The engineering tool 120C allows the user 120A to download the motor model and the conveyor model to the user computer 120B. The engineering tool 120C can then use the downloaded model in a simulation environment, which performs calculations that mimic the physical activity of the modeled item. Briefly, engineering tools have a 3D graphic editor and dynamics simulation built into the visualization environment. This simulation includes a physical simulation of the hardware device and the machined product that the device operates and deforms. The simulated physical object represents a real hardware device. The simulation for a default device is set so that the behavior of that device is matched and the same actions are performed within the capabilities of the simulation under the same input conditions. Simulation can track the geometry, position, kinematics chain, and dynamics of an object. The simulation can also include the ability to dynamically add and remove objects from the simulation. This ability can be used to simulate deformation of objects such as cutting, squeezing, molding, etc. This capability can also be used to simulate the introduction and removal of processed products from the process.

産業環境のシミュレートにおいて、ユーザ120Aは、特有のプロセスをインプリメントするために要求される必要な物理コンポーネントとレイアウトを、簡単に同定することができる。レイアウトの決定が完了すると、エンジニアリングツール120Cは、さらに詳細な事項(たとえばパーツリストおよび/または青図)を生成することができ、それによって必要とされる物理コンポーネントを(それらがまだ取得されていなかったならば)発注することができ、所望のレイアウトでコンフィギュレーションすることができる。これらに加えいくつかの実施形態によれば、エンジニアリングツール120Cは、プログラマブルロジックコントローラなどのような物理コンポーネントにおいてそのまま使用可能なコントローラコードを生成する。たとえば図1によれば、エンジニアリングツールは、物理モータ120Dおよび物理コンベヤ120Eに対応づけられたコントローラ上でそのまま使用可能なコントローラコード120Fを生成することができる。したがって、設計が完了するとただちに、ユーザのためにコントローラコード120Fが準備完了状態となることから、物理デバイスの導入が簡素化される。 In simulating an industrial environment, user 120A can easily identify the necessary physical components and layout required to implement a unique process. Once the layout decision is complete, the engineering tool 120C can generate more detailed information (eg parts list and / or blueprint), thereby obtaining the required physical components (they have not yet been obtained). It can be ordered (if any) and configured in the desired layout. In addition to these, according to some embodiments, the engineering tool 120C generates controller code that can be used out-of-the-box in physical components such as programmable logic controllers. For example, according to FIG. 1, the engineering tool can generate a controller code 120F that can be used as-is on the controller associated with the physical motor 120D and the physical conveyor 120E. Therefore, as soon as the design is completed, the controller code 120F is ready for the user, which simplifies the introduction of the physical device.

図2には、本発明のいくつかの実施形態によるエンジニアリングツール200の一例が示されている。手短に述べると、エンジニアリングツール200は、3Dグラフィックエディタおよび可視化環境に組み込まれた3D多体ダイナミクスシミュレーションを有している。エンジニアリングツール200には、3Dワークスペース205と、ツールバー210と、ユーザが3Dワークスペース205内に配置可能な論理要素のギャラリ215とが含まれている。なお、図2の場合、設計の大部分の様相を、3Dワークスペース205内で視覚的に得ることができる。このため、ツール間で切り替えを行わずに単一のインタフェースで、レイアウト、可視化、プログラミング、シミュレーションを実施することができる。このことに加え、あとで説明するように、3Dコンポーネントとロジックとが、同じスペース内で共働する。 FIG. 2 shows an example of an engineering tool 200 according to some embodiments of the present invention. Briefly, the engineering tool 200 has a 3D graphic editor and a 3D multi-body dynamics simulation built into the visualization environment. The engineering tool 200 includes a 3D workspace 205, a toolbar 210, and a gallery 215 of logical elements that the user can place within the 3D workspace 205. Note that in the case of FIG. 2, most aspects of the design can be visually obtained within the 3D workspace 205. This allows layout, visualization, programming, and simulation to be performed in a single interface without switching between tools. In addition to this, 3D components and logic work together in the same space, as will be explained later.

エンジニアリングツール200によって、使いやすさと効率的な編集のためにスタンドアローンで実行するように設計された、低コストにし得るツールが提供される。エンジニアリングツール200内のコンポーネントは、それらが実世界にあるかのように動作し、その際にそれらがどのように動作するのか、アニメーションで挙動が示される。物理システムのコンポーネントを、ベンダが提供するセレクションから生成することができ、この場合、グラフィックの複雑の程度はベンダによって決定される(すなわちユーザが改めて描き直す必要はない)。センサからの入力をロジックへ、さらには出力デバイスへつなぐことによって、コンポーネントの挙動を描写するために、物理システムを「配線」することができる。これに加え、いくつかの実施形態によれば、内部値および他の状態を即座にフィードバックできるようにすることで、シミュレーションにより瞬時のデバッグが提供される。同様にシミュレーションによって、物理的インタラクションが意図されたものではないケースを示すことによって、オートメーションによる問題を評価することができる。エンジニアリングツール200によって、工業設計にあたりいくつかの利点が提供される。シミュレートされた3D環境においてそのままプログラミングすることによって、設計およびインプリメンテーションのプロセス中に発生する可能性のある間接性のレベルが低減する。これに加え、三次元の物理的シミュレーションによって、迅速な設計検証が可能となる。このように許容性のあるエンジニアリングモデルにより、テスト環境において直接、アイデアの探求が促進される。 The Engineering Tool 200 provides a low cost tool designed to run standalone for ease of use and efficient editing. The components in Engineering Tool 200 behave as if they were in the real world, and animations show how they behave. The components of the physical system can be generated from a vendor-provided selection, in which case the degree of graphic complexity is determined by the vendor (ie, the user does not have to redraw). By connecting the inputs from the sensors to the logic and even to the output devices, the physical system can be "wired" to depict the behavior of the components. In addition to this, according to some embodiments, the simulation provides instant debugging by allowing immediate feedback of internal values and other states. Similarly, simulations can be used to assess automation problems by showing cases where physical interactions are not intended. The engineering tool 200 offers several advantages in industrial design. Programming out-of-the-box in a simulated 3D environment reduces the level of indirectness that can occur during the design and implementation process. In addition to this, three-dimensional physical simulation enables rapid design verification. This permissive engineering model facilitates the search for ideas directly in the test environment.

図2に具体例として示したエンジニアリングツール200に含まれているギャラリ215は、ライブラリインタフェースセクション215Aと物理セクション215Bとを有している。ライブラリインタフェースセクション215Aには、3Dワークスペース205に追加することのできる種々のコンポーネントが含まれている。ユーザは、ライブラリインタフェースセクション215Aの最上部に含まれているタブとインタラクトして、3Dワークスペース205内で使用するために入手可能な種々の物理コンポーネントと論理コンポーネントを閲覧することができる。3Dワークスペース内の各コンポーネントの物理的特性を閲覧し、物理セクション215Bを介して調節することができる。 The gallery 215 included in the engineering tool 200 shown as a specific example in FIG. 2 has a library interface section 215A and a physical section 215B. Library interface section 215A contains various components that can be added to the 3D workspace 205. The user can interact with the tabs contained at the top of Library Interface Section 215A to browse the various physical and logical components available for use within the 3D workspace 205. The physical properties of each component in the 3D workspace can be viewed and adjusted via physics section 215B.

エンジニアリングツール200による設計を進展させるために、ユーザはデバイスモデルをギャラリ215の外にドラッグして、3Dワークスペース205内に配置する。オブジェクトを選択して位置決めするための他の方法を、択一的に用いてもよい。デバイスモデルを3Dワークスペース内に配置することによって、モデルを表現する視覚的コンポーネントが生成される。各コンポーネントは、関連するコンポーネントまたは他のオブジェクトを取り付けることのできるコネクションポイントを有することができる。いくつかの実施形態によれば、接続されたオブジェクトは自動的に整列されて、周囲を取り囲むモデルのジオメトリと照合済みの隙間を有することができる。3Dワークスペース205内のポジションは、プロセスにおけるデバイスの物理的ポジションを表すように意図されており、類似した幾何学的依存性を保持するのが望ましい。たとえば、プロセスにおいて2つのコンベヤが存在しており、一方のコンベヤが材料を搬送して、他方のコンベヤに材料を落とすような場合であれば、シミュレートされる挙動がこのパターンに従うよう、シミュレートされる空間においてこれらのコンベヤを、端部同士が接続されるように配置するのが望ましい。図2には、一例として単純な設計が含まれており、これによれば、モータコンポーネント205Fがベルトコンベヤコンポーネント205Aを駆動して、2つの光センサコンポーネント205Bと205Dとの間でボックスコンポーネント205Iを移動させる。モータコンポーネント205Fのアクティベートにより、ベルトコンベヤコンポーネント205Aは指定速度で動作するようになる。 To advance the design with the engineering tool 200, the user drags the device model out of the gallery 215 and places it in the 3D workspace 205. Alternatively, other methods for selecting and positioning objects may be used. Placing the device model within the 3D workspace creates a visual component that represents the model. Each component can have a connection point to which it can attach related components or other objects. According to some embodiments, the connected objects can be automatically aligned and have a collated gap with the surrounding model geometry. Positions within the 3D workspace 205 are intended to represent the physical position of the device in the process, and it is desirable to retain similar geometric dependencies. For example, if there are two conveyors in the process, one conveyor transports the material and the other conveyor drops the material, the simulated behavior follows this pattern. It is desirable to arrange these conveyors so that the ends are connected to each other in the space to be used. FIG. 2 includes a simple design as an example, in which the motor component 205F drives the belt conveyor component 205A to drive the box component 205I between the two optical sensor components 205B and 205D. Move it. By activating the motor component 205F, the belt conveyor component 205A will operate at the specified speed.

各デバイスモデルは、入力値を供給しモデルから出力値を受け取るポートオブジェクトを含むことができる。たとえば図2の場合、モータコンポーネント205Fは、入力値を受け取るモータポートオブジェクト205Gを含んでいる。これらの入力値に基づきモータコンポーネント205Fは、その動作速度を相応に設定する。光センサコンポーネント205Bおよび205Dは、光センサポートオブジェクト205Cおよび205Eをそれぞれ含んでいる。各光センサポートオブジェクト205Cおよび205Eは、それらのオブジェクトの個々の光センサがトリガされると、出力値を生成する。 Each device model can include a port object that supplies input values and receives output values from the model. For example, in the case of FIG. 2, the motor component 205F includes a motor port object 205G that receives an input value. Based on these input values, the motor component 205F sets its operating speed accordingly. Optical sensor components 205B and 205D include optical sensor port objects 205C and 205E, respectively. Each optical sensor port objects 205C and 205E generate an output value when the individual optical sensors of those objects are triggered.

デバイスモデルに機能を提供するために、デバイスモデルのポートオブジェクトに論理要素が接続される。論理要素は、ポートを備えたブロックとして描かれ、その際、あるブロックを別のブロックと接続することができる。デバイスモデルのポートオブジェクトを論理要素のポートと接続することによって、デバイスモデルを論理ブロックとリンクすることができる。同様にユーザは、あるブロックを別のブロックのポートと接続することによって、2つのブロックをリンクすることができる。いくつかの実施形態によれば、ポートを入力型および出力型として分類することができる。入力ポートは出力ポートと接続され、その際、1つのリンクだけが1つの既定の入力ポートと接続されるようにしてもよいが、複数のリンクが1つの出力ポートに接続されるようにしてもよい。別の実施形態によれば、ポートを双方向とすることができ、その場合、それらのポートは同時に入力端子と出力端子の両方とすることができ、任意に接続することができる。さらにポートを、それぞれ異なる様式および型が混合されたものとしてもよい。いくつかの実施形態によればポートは、ブーリアン、整数、値の配列、複数のフィールド値を含む構造化された値など、様々な型の値をサポートすることができる。各ポート同士の型が両立しない場合には、各ポート間の接続を制限することができる。いくつかの実施形態によればポートは、それぞれ異なる種類のコンポーネントにおいて演算を汎用的に実施できるように、コンポーネントまたは他の論理要素に対する参照である値を生成することができ、あるいは、様々なグループの無効化または反復など、アプリケーションのロジックにおける操作を実施することができる。 Logical elements are connected to port objects in the device model to provide functionality to the device model. Logical elements are depicted as blocks with ports, in which one block can be connected to another. A device model can be linked to a logical block by connecting the device model's port object to a logical element's port. Similarly, the user can link two blocks by connecting one block to the port of another block. According to some embodiments, ports can be classified as input type and output type. The input port is connected to the output port, where only one link may be connected to one default input port, or multiple links may be connected to one output port. good. According to another embodiment, the ports can be bidirectional, in which case they can be both input and output terminals at the same time and can be arbitrarily connected. In addition, the ports may be a mixture of different styles and types. According to some embodiments, the port can support various types of values, such as booleans, integers, arrays of values, and structured values containing multiple field values. If the types of each port are incompatible, the connection between each port can be restricted. According to some embodiments, a port can generate a value that is a reference to a component or other logical element, or various groups, so that operations can be performed generically on different types of components. You can perform operations in the logic of your application, such as disabling or iterating.

種々のタイプの論理要素を用いることができ、以下に限定されるものではないが具体例を挙げると、算術演算、選択、信号、メモリ状態、コンテナ、およびオブジェクト影響因子などである。いくつかの実施形態によれば、ロジックを多重定義することができる。たとえばプラスの算術演算を、浮動小数点、整数の加算のために、およびブール値における論理OR演算の実施のために用いることができる。ロジックによって、シミュレーションオブジェクト、物理デバイスの挙動、またはこれらの双方ならびに他のロジックに影響を与えることができる。一般にコンポーネントと同様に、論理要素は属性を有している。これらの属性が変化すると、論理要素のセマンティクスおよび/またはトポロジーが変化する。ある論理要素コンテナ内のロジックの挙動は、そのコンテナと接続されている(1つまたは複数の)シミュレーションオブジェクトに伝播する。 Various types of logical elements can be used, including, but not limited to, arithmetic operations, selections, signals, memory states, containers, and object influencing factors. According to some embodiments, the logic can be overloaded. For example, positive arithmetic operations can be used for floating point, integer addition, and for performing logical OR operations on Boolean values. Logic can affect the behavior of simulation objects, physical devices, or both, and other logic. In general, like components, logical elements have attributes. Changes in these attributes change the semantics and / or topology of the logical elements. The behavior of logic within a logical element container propagates to the simulation objects (s) connected to that container.

ユーザは、デバイスの追加と同じ手法を用いて、ロジックをシステム設計に加えることができる。エンジニアリングツール200には、ユーザが選択可能な(図2には示されていない)論理要素のギャラリが含まれている。論理要素は一般に、ファンクションまたはオペレーションを表現するために用いられる。ユーザは、ギャラリから論理要素をドラッグし、3Dワークスペース内に配置する。物理コンポーネント上にロジックを配置することによって、そのコンポーネントの挙動を変えることができる。コンポーネントに取り付けられたロジックは、コンポーネントが動かされたときに、そのコンポーネントに付随する。ユーザはロジックを使用して、他のコンポーネントとインタラクトすることのできる加工製品を生成するなど、シミュレーションを強化することができる。論理要素をフリースペース内、デバイスオブジェクト上、または論理要素コンテナ内に配置することができる。3Dスペース内または3Dデバイスモデル上に配置された論理要素は、3Dポジションを有する。エンジニアリングツール200は、論理要素が取り付けられたコンポーネントを用いて、そのコンポーネントに特有の挙動を実施することができる。プログラミングとポジションを相互に関連づけることができる。論理要素のタイプによって、その目的と、取り付けられた何らかのデバイスモデルがそのファンクションの一部として用いられることになるか否か、が決定される。論理要素において算出された値は、リンク経路を辿って伝達される。ユーザがワークスペースビューを、回転および並進またはさもなければ変形させると、論理要素のポジションは新たなビューポジションで表示されることになる。 The user can add logic to the system design using the same technique as adding a device. The engineering tool 200 includes a user-selectable gallery of logical elements (not shown in FIG. 2). Logical elements are commonly used to represent a function or operation. The user drags a logical element from the gallery and places it in the 3D workspace. By placing logic on a physical component, the behavior of that component can be changed. The logic attached to a component accompanies that component when it is moved. Users can use logic to enhance simulation, such as creating processed products that can interact with other components. Logical elements can be placed in free space, on device objects, or in logical element containers. Logical elements placed in 3D space or on the 3D device model have 3D positions. The engineering tool 200 can use a component to which a logical element is attached and perform a behavior peculiar to the component. Programming and position can be interrelated. The type of logical element determines its purpose and whether any attached device model will be used as part of its function. The value calculated in the logical element is transmitted by following the link route. When the user rotates and translates or otherwise transforms the workspace view, the position of the logical element will be displayed in the new view position.

図2の論理要素コンテナ205Hにより、1つのコンテナを用いて複数の論理要素から成る1つのグループを包含可能な手法の一例が示されている。3Dワールドに帰属するオブジェクトにおいて振る舞う1つの論理要素に関して、1つのコンテナ内の1つの要素は、そのコンテナが帰属するオブジェクトにおいて動作し、または再帰的にこのコンテナが、ある1つのコンテナ自体の中に配置されているならば、そのコンテナに向かう方向で動作する。コンテナの外側から内側のブロックへのリンクにより、コンテナおよび必要に応じてネストされた他のコンテナにおいて、インタフェースポートを自動的に生成することができる。たとえば図2を参照すると、論理要素コンテナ205Hには、光センサポートオブジェクト205Cおよび205Eから受け取った入力に基づき、モータコンポーネント205Fを制御するために用いられる論理要素が含まれている。特に論理要素コンテナ205Hは、光センサコンポーネント205B,205Dのいずれがトリガされたのかに応じて、−5〜5の間でモータコンポーネント205Fの速度を調節する。いくつかの実施形態によれば、論理要素コンテナを、エンジニアリングツール200内の二次元フィールドによって表すことができる。ただし別の実施形態によれば、三次元コンテナを使用することができる。ユーザは、必要に応じてインタフェースポートを再配置するために、論理要素コンテナ内(または回路間)でブロックを移動させることができる。いくつかの実施形態において、3Dワークスペース内の局所的な要素コンテナにより占有されているスペースを、オープン/クローズすることができ、ユーザが内容に満足して散乱状態を少なくしたいときに、回路内部を隠すことができる。さらにコンテナを単一のユニットとしてコピーすることもでき、このようにすれば種々の入出力接続が使用可能な特有のコンテナの内容が生成される。なお、オリジナルのコンテナとコピーされたコンテナは、互いに独立して振る舞うことができる。たとえば、異なるコンテナへ異なる入力を行った結果、異なる出力を生じさせることができ、異なる状態を記憶させることができ、非決定性の演算により異なる結果を生じさせることができる。ユーザが内容の変更を望まないならば、またはユーザが、内容をリンクさせたままにして変更が共有されるようにしたいならば、コピーされた論理要素コンテナのためのロジックのストレージを、場合によっては共有することができる。論理要素コンテナを、外部のデバイスからインポートすることもでき、それによって複雑なファンクションをパッケージ化して、それらをアプリケーション間で共有できるようになる。論理要素コンテナは、コンテナ自体の状態を制御するコネクションを提供することもできる。コンテナは、ネストされたコンテナを含めコンテナの内容全体の挙動をアクティベートおよびディアクティベートする入力ポートを提供することができる。コンテナがディアクティベートされているときには、コンテナの内容を更新することはできず、コンテナの出力ポートをゼロまたはフォールスのようなデフォルト状態にセットすることができる。他の種類のコンテナが、1つのシーケンス内で実施されるグループ化ロジックのような、他の種類のオペレーションをサポートすることができ、または有限状態オートマトンのように振る舞うことができ、または単一のタイムサイクル内で1つのロジックグループを繰り返し実行させることができる。 The logical element container 205H of FIG. 2 shows an example of a method in which one container can be used to include one group consisting of a plurality of logical elements. For one logical element that behaves in an object that belongs to the 3D world, one element in one container operates on the object that the container belongs to, or recursively this container is in one container itself. If placed, it works in the direction towards the container. A link from the outside of the container to the inside block allows interface ports to be automatically generated in the container and other nested containers as needed. For example, referring to FIG. 2, the logical element container 205H contains logical elements used to control the motor component 205F based on the inputs received from the optical sensor port objects 205C and 205E. In particular, the logical element container 205H adjusts the speed of the motor component 205F between -5 and 5 depending on which of the optical sensor components 205B and 205D is triggered. According to some embodiments, the logical element container can be represented by a two-dimensional field in the engineering tool 200. However, according to another embodiment, a three-dimensional container can be used. The user can move blocks within the logical element container (or between circuits) to relocate the interface ports as needed. In some embodiments, the space occupied by the local element container in the 3D workspace can be opened / closed, inside the circuit when the user is satisfied with the content and wants to reduce the scattering state. Can be hidden. In addition, the container can be copied as a single unit, which creates the contents of a unique container with various I / O connections available. The original container and the copied container can behave independently of each other. For example, different inputs to different containers can result in different outputs, different states can be stored, and nondeterministic operations can produce different results. If the user does not want to change the content, or if the user wants the content to remain linked and the changes are shared, then storage of logic for the copied logic element container, in some cases Can be shared. Logical element containers can also be imported from external devices, allowing complex functions to be packaged and shared between applications. The logical element container can also provide a connection that controls the state of the container itself. The container can provide an input port to activate and deactivate the behavior of the entire contents of the container, including the nested container. When the container is deactivated, the contents of the container cannot be updated and the output port of the container can be set to a default state such as zero or false. Other types of containers can support other types of operations, such as grouping logic performed within a sequence, or behave like a finite state automaton, or a single. One logic group can be executed repeatedly within the time cycle.

エンジニアリングツール200のツールバー210は、種々のサブセクションを含んでおり、それらのサブセクションによってユーザはモデルとインタラクトすることができる。クリップボードサブセクション210Aに含まれているインタフェースコンポーネントによって、ユーザは、自身のクリップボードへワークスペース205の一部分(たとえば1つのコンポーネント)をカット(またはコピー)することによって、3Dワークスペース205を編集することができる。ついでその部分をワークスペース205内にペーストして戻してもよいし、またはすべてを他のワークスペースにペーストしてもよい。ツールバー210におけるサブセクション210Bに含まれているインタフェースコンポーネントによって、ユーザは、3Dワークスペース205内のコンポーネントを選択、移動および回転することができる。たいていのコンポーネントは、既存のデバイスモデルによってユーザに提供されているとはいえ、ユーザはジオメトリサブセクション210Cとインタラクトして、様々な形状を3Dワークスペース205に追加することができる。このようにしてユーザは、事前に生成されたデバイスモデルだけを単独で用いて得られる以上に、設計レイアウトをカスタマイズすることができる。同様にスタイルサブセクション210Dにより提供されるインタフェースコンポーネントによって、ユーザは、3Dワークスペース205内に配置された種々のコンポーネントの外観(たとえば色、線幅等)を調節することができる。あとでさらに詳しく説明するようにツールバー210には、さらに実行サブセクション210Eと物理サブセクション210Fが含まれており、これらによって、3Dワークスペース205内に配置されたコンポーネントと対応づけられたシミュレーションを生成して、それとインタラクトするためのインタフェースコンポーネントが提供される。最後に、ビューサブセクション210Gによって、ユーザは、エンジニアリングツール200内の特定のアイテムを表示すべきか否かを選択することができる。 Toolbar 210 of Engineering Tool 200 contains various subsections that allow the user to interact with the model. The interface components included in the clipboard subsection 210A allow the user to edit the 3D workspace 205 by cutting (or copying) a portion (eg, one component) of the workspace 205 to their clipboard. can. The portion may then be pasted back into workspace 205, or the whole may be pasted into another workspace. The interface components included in subsection 210B of the toolbar 210 allow the user to select, move and rotate the components in the 3D workspace 205. Although most components are provided to the user by existing device models, the user can interact with the geometry subsection 210C to add various shapes to the 3D workspace 205. In this way, the user can customize the design layout more than it can be obtained by using only the pre-generated device model alone. Similarly, the interface components provided by the style subsection 210D allow the user to adjust the appearance (eg, color, line width, etc.) of the various components placed within the 3D workspace 205. As will be explained in more detail later, the toolbar 210 also contains an execution subsection 210E and a physical subsection 210F, which generate a simulation associated with the components placed in the 3D workspace 205. Then, an interface component for interacting with it is provided. Finally, the view subsection 210G allows the user to choose whether or not to display a particular item within the engineering tool 200.

エンジニアリングツール200には、ハードウェアデバイスおよびこのデバイスが操作および変形する加工製品の物理的シミュレーションが含まれている。ツールバー210における実行サブセクション210Eによって、ユーザは、システム設計が3Dワークスペース205内で開発されている期間中、シミュレーションをアクティベートおよびストップすることができる。ツールバー210における物理サブセクション210Fに含まれるインタフェースコンポーネントによって、ユーザは、シミュレーションのタイミングおよび他の属性を調節することができ、さらにシミュレーションによって生じる何らかのエラーを見ることができる。シミュレーションの実行中、ワークスペースは、このワークスペースにユーザが追加した種々のコンポーネントの保守、計算およびアニメーションを行う。たとえば、物理オブジェクトがそれらの動的属性に基づき移動および変形し、検知オブジェクトが対応するそれらのターゲットを検出し、挙動オブジェクトが値を読み出し、書き込み、計算する、などである。ユーザがシミュレーションを停止すると、3Dワークスペース205はその本来のコンフィギュレーションに復帰することができ、ユーザは編集を続けることができる。いくつかの実施形態によれば、シミュレーション実行中、ユーザに対しシステム設計の編集が許可されている。このケースでは、シミュレーションを実行中と見なしてもよいし、または休止状態と見なしてもよく、ユーザはオブジェクトをいつでも追加、削除および編集することができる。いくつかの実施形態によれば、実行サブセクション210Eのインタフェースとインタラクトすることで、明示的なコンパイルを行わずにシミュレーションを即座に実行することができる。さらにここで述べておくと、3Dワークスペース205における設計が、完全に開発されたものでなくてもよく、設計プロセス中にいつでもシミュレーションを実行することができる。いくつかの実施形態によれば、色の変更またはフラッシュなどのような視覚的キューを用いて、ロジックがアクティブである個所が示される。ユーザは、ロジック実行時にそのロジックを調べることができ、値を変更してシナリオを実際に試すことができる。 The engineering tool 200 includes a physical simulation of a hardware device and a processed product on which the device operates and deforms. The execution subsection 210E on the toolbar 210 allows the user to activate and stop the simulation while the system design is being developed within the 3D workspace 205. The interface components included in the physics subsection 210F on the toolbar 210 allow the user to adjust the timing and other attributes of the simulation and also see any errors caused by the simulation. During the simulation run, the workspace maintains, calculates, and animates the various components you add to the workspace. For example, physical objects move and transform based on their dynamic attributes, detection objects detect their corresponding targets, behavior objects read, write, and calculate values. When the user stops the simulation, the 3D workspace 205 can revert to its original configuration and the user can continue editing. According to some embodiments, the user is allowed to edit the system design during the simulation run. In this case, the simulation may be considered running or hibernating, and the user can add, remove, and edit objects at any time. According to some embodiments, the simulation can be performed immediately without explicit compilation by interacting with the interface of execution subsection 210E. Further mentioned here, the design in the 3D workspace 205 does not have to be fully developed and simulations can be performed at any time during the design process. According to some embodiments, visual cues such as color changes or flashes are used to indicate where the logic is active. The user can examine the logic as it runs and change the values to try out the scenario.

基本的に、エンジニアリングツール200により生成されるシミュレーションの複雑さの程度を、任意のレベルとすることができる。ただし本発明の多くの実施形態によれば、エンジニアリングツール200は、ユーザがデバイスおよび加工製品について高位レベルの属性を指定することによって、シミュレートされるオブジェクトを設定および実行できるように構成されている。シミュレーションによって、仮想の加工製品を生成することができ、オートメーションデバイスにより実行される様々なプロセスを通過するそれらの加工製品の流れを追従し、加工製品において生じる何らかの変化、およびその変化がデバイスにどのような影響を及ぼすことになるのか、を計算することができる。さらにシミュレーションによって、オートメーションデバイスの状態および挙動をシミュレートして、それらが加工製品にどのような影響をもたらすのかを把握することもできる。シミュレーションの忠実度は、オートメーションの主要なファンクションを仮想世界で実行して、オートメーションのプログラミングを検証できる程度に十分なものであるのが望ましい。シミュレーションにより実行可能なその他の挙動は、それらの挙動が現実に即しており、特定するのが難しすぎないかぎり、有用であると見なされる。シミュレーションの許容範囲および精度を、サイズ、速度、オートメーションの汎用的な必要性に応じて、調節することができる。オートメーションの分野と整合させるように、シミュレーションを提供することができる。たとえばロボットのオートメーションであればおそらくは、三次元でキネマティックであり、ダイナミクスを使用する可能性もあるシミュレーションを用いることになる。これとは逆に、石油精製所のオートメーションであれば、パイプなどの液体回路網の圧力、流量およびトポロジーならびに数値を表す一次元のファンクションが用いられる可能性がある。 Basically, the degree of complexity of the simulation generated by the engineering tool 200 can be any level. However, according to many embodiments of the invention, the engineering tool 200 is configured to allow the user to set and execute simulated objects by specifying high-level attributes for devices and processed products. .. Simulation allows the creation of virtual processed products, following the flow of those processed products through various processes performed by the automation device, any changes that occur in the processed products, and what changes are made to the device. It is possible to calculate what kind of effect it will have. Simulation can also simulate the state and behavior of automation devices to understand how they affect processed products. The simulation fidelity should be sufficient to perform key automation functions in the virtual world and verify the automation programming. Other behaviors that can be performed by simulation are considered useful unless they are realistic and too difficult to identify. Simulation tolerances and accuracy can be adjusted according to size, speed, and general automation needs. Simulations can be provided to align with the field of automation. Robot automation, for example, would probably use simulations that are three-dimensional and kinematic and may use dynamics. Conversely, oil refinery automation may use one-dimensional functions that represent pressure, flow and topology as well as numerical values in liquid networks such as pipes.

図3には、本発明のいくつかの実施形態によるコントローラアーキテクチャ300の一例が示されている。このコントローラアーキテクチャ300は概念的なものであり、1つまたは複数の接続された物理デバイスにエンジニアリングツール305を結合するネットワークを想定している。物理ポートまたは結線されたコネクションなどのように、他の種類のデバイスを用いてもよい。エンジニアリングツール305は、接続された任意のデバイスの識別を要求する汎化されたリクエストをネットワークに送信する。デバイスは、デバイス通知メッセージ315を介して供給されるデバイス情報310によって応答する。エンジニアリングツール305は、受け取ったデバイス情報310に基づいて、仮想コンポーネントと物理デバイスとの間の仮想コネクションを生成して記憶することができる。いくつかの実施形態によれば、仮想コネクションは、コンポーネント識別子とアプリケーション識別子とを有する。したがって同じアプリケーション内に複数の物理デバイスが存在するならば、それらをアプリケーション識別子と共に対応づけることができる一方、異なるコンポーネント識別子を介して異なる仮想デバイスと対応づけることができる。 FIG. 3 shows an example of controller architecture 300 according to some embodiments of the present invention. The controller architecture 300 is conceptual and envisions a network that combines engineering tools 305 with one or more connected physical devices. Other types of devices may be used, such as physical ports or wired connections. Engineering tool 305 sends a generalized request to the network requesting the identification of any connected device. The device responds with device information 310 provided via device notification message 315. The engineering tool 305 can generate and store a virtual connection between a virtual component and a physical device based on the received device information 310. According to some embodiments, the virtual connection has a component identifier and an application identifier. Therefore, if there are multiple physical devices in the same application, they can be associated with the application identifier, while they can be associated with different virtual devices through different component identifiers.

引き続き図3を参照すると、エンジニアリングツール305がデバイスおよびそれらに対応する仮想コネクションを識別したならば、エンジニアリングツール305はエンジニアリングファンクションをウェブサーバ320へ伝達する。エンジニアリングファンクションは、特定の物理デバイスに論理機能をインプリメントする命令を有する。ウェブサーバ320は、受け取ったエンジニアリングファンクションに基づき、プログラムを生成し、それをプログラムストア325に記憶する。いくつかの実施形態によれば、エンジニアリングツール305は、プログラムをダイレクトに生成するように構成されており、ウェブサーバ320によりこのファンクションが実行されるわけではない。このようなシナリオによればウェブサーバ320は、エンジニアリングツール305から受け取った何らかのプログラムを、プログラムコードの付加的な前処理を行って、または行わずに、プログラムストア325に伝送するだけとなる。ついでプログラムは、(1つまたは複数の)物理コントローラによって実行され、これはロジック実行矢印330によって概念的に表されている。エンジニアリングツール305および/またはウェブサーバ320は、(1つまたは複数の)物理コントローラと通信して、プログラムのスタート、ストップ、リセットなどのようなファンクションを実行することができる。各コントローラは、当技術分野で周知の任意の技術を用いて、1つまたは複数の物理デバイスと通信する。たとえばいくつかの実施形態によれば、コントローラはそれらに対応する物理デバイスとのダイレクトな電気接続を有しており、Universal Serial Bus (USB) またはパルス幅変調(PWM)などのプロトコルを用いて通信する。別の実施形態によれば、コントローラはそれらの物理デバイスと、有線(たとえばEthernet)またはワイヤレス(たとえばIEEE 802.11)の通信ネットワークを介して通信することができる。 Continuing with reference to FIG. 3, once the engineering tool 305 has identified the devices and their corresponding virtual connections, the engineering tool 305 propagates the engineering function to the web server 320. An engineering function has an instruction to implement a logical function in a specific physical device. The web server 320 generates a program based on the received engineering function and stores it in the program store 325. According to some embodiments, the engineering tool 305 is configured to generate the program directly and the web server 320 does not execute this function. According to such a scenario, the web server 320 only transmits some program received from the engineering tool 305 to the program store 325 with or without additional preprocessing of the program code. The program is then executed by the physical controller (s), which is conceptually represented by the logic execution arrow 330. The engineering tool 305 and / or the web server 320 can communicate with the physical controller (s) to perform functions such as program start, stop, reset, and so on. Each controller communicates with one or more physical devices using any technique well known in the art. For example, according to some embodiments, the controller has a direct electrical connection to their corresponding physical device and communicates using a protocol such as Universal Serial Bus (USB) or Pulse Width Modulation (PWM). do. According to another embodiment, the controller can communicate with those physical devices over a wired (eg Ethernet) or wireless (eg IEEE 802.11) communication network.

状態ストア335は第一には、ネットワークに組み込まれた複数のコントローラ間で共有される状態を伝送するために用いられるが、プログラムがコントローラによって実行されているときに、エンジニアリングツール305がプログラムについて状態検査を実行できるようにすることもできる。つまりエンジニアリングツール305は、各コントローラにおいて実行中のコードの現在の状態を特定することができる。いくつかの実施形態によれば、状態ストア335は、ネットワークデータシェア350を介して、種々の物理コントローラ間で共有される。これらに加え、ネットワークデータシェア350を用いて、たとえば監視制御およびデータ取得サーバ(SCADA)または統一化プラントナレッジウェアハウスなどのような、他のエンティティの状態情報を共有することもできる。データを受け取ることのできる様々なエンティティを、ここでは「パートナ」と称する。ネットワークパートナファインダ355を用いて、状態情報を要求するまたは必要とするパートナを見つけることができる。分散型制御のシナリオであれば、これらのパートナを、ロジックが分散された他のコントローラとすることができる。ネットワークパートナファインダ355は、見つけ出された各パートナのアドレスを供給する。ついで状態ストア335はそれらのアドレスを用い、I/O通信API360を介して、パートナへ状態情報を分配することができる。 The state store 335 is primarily used to transmit states shared between multiple controllers embedded in the network, but when the program is being executed by the controllers, the engineering tool 305 states about the program. You can also enable the inspection to be performed. That is, the engineering tool 305 can identify the current state of the code being executed in each controller. According to some embodiments, the state store 335 is shared between various physical controllers via the network data share 350. In addition to these, network data share 350 can also be used to share state information of other entities, such as monitoring control and data acquisition servers (SCADA) or unified plant knowledge warehouses. The various entities that can receive data are referred to herein as "partners". The network partner finder 355 can be used to find the partner who requests or needs state information. In a distributed control scenario, these partners can be other controllers with distributed logic. The network partner finder 355 supplies the address of each found partner. The state store 335 can then use those addresses to distribute state information to partners via the I / O communication API 360.

図4には、本発明のいくつかの実施形態による、シミュレーション環境100において実施されるプロセス400の概要が示されている。ステップ405においてユーザは、マーケットプレイスサーバから1つまたは複数の物理デバイスモデルをダウンロードする。各物理デバイスモデルはそれぞれ、1つの物理デバイスに対応する。たとえば、ある物理デバイスモデルには、物理コンベヤベルトの三次元モデルを生成するための命令を、この種のデバイスに対応づけることのできる種々の属性と共に、含めることができる。物理デバイスモデルにおける情報を使用して、エンジニアリングツール用の物理コンポーネントが生成される。いくつかの実施形態によれば、エンジニアリングツールはこの生成を自動的に実行する。たとえば1つの実施形態によれば、エンジニアリングツールには、マーケットプレイスサーバに対するインタフェースが含まれている。ユーザは、このインタフェースとのユーザインタラクションを通して、物理デバイスモデルをローカルでダウンロードすることができ、それによってエンジニアリングツールは対応する物理デバイスモデルを生成することができる。この生成プロセスを自動的なものとしてもよいし、ユーザが明示的にモデル生成を要求する必要があるようにしてもよい。さらにここで述べておくと、いくつかの実施形態によれば、マーケットプレイスサーバ以外の場所で物理デバイスモデルをダウンロードすることができる。つまりたとえば複数のユーザが、それらのユーザの個々のエンジニアリングツールにおいて使用するために、Eメールによって物理デバイスモデルを共有することができる。 FIG. 4 shows an overview of process 400 performed in simulation environment 100 according to some embodiments of the present invention. In step 405, the user downloads one or more physical device models from the marketplace server. Each physical device model corresponds to one physical device. For example, a physical device model can include instructions for generating a three-dimensional model of a physical conveyor belt, along with various attributes that can be associated with this type of device. The information in the physical device model is used to generate physical components for engineering tools. According to some embodiments, the engineering tool performs this generation automatically. For example, according to one embodiment, the engineering tool includes an interface to the marketplace server. The user can download the physical device model locally through user interaction with this interface, which allows the engineering tool to generate the corresponding physical device model. This generation process may be automatic, or the user may need to explicitly request model generation. Further mentioned here, according to some embodiments, the physical device model can be downloaded at a location other than the marketplace server. That is, for example, multiple users can share a physical device model via email for use in their individual engineering tools.

引き続き図4を参照すると、ステップ410においてユーザは、三次元ワークスペースにコンポーネントを追加し調節することによって、このワークスペース内にシステム設計を生成する。いくつかの実施形態によればエンジニアリングツールは、ワークスペースと共働して使用可能なコンポーネントのライブラリを提供し、それによってユーザは、(マウスベースの環境であれば)クリック&ドラッグ、または(タッチベースのディスプレイを用いた環境であれば)タッチ&ドラッグなどのようなインタラクションを介して、コンポーネントを選択し、ワークスペース内に配置することができる。次にステップ415においてユーザは、論理コンポーネントをこの環境に追加する。上述のように、各論理コンポーネントは1つの論理演算と対応づけられており、ユーザは、複数の論理コンポーネントを含むコンテナを生成することができる。論理コンポーネントがワークスペースに追加されたならば、それらのコンポーネントを使用し、コンポーネントの入力と出力との間の対応づけを生成することによって、物理コンポーネントにロジックが追加される。たとえば、図2を参照しながらすでに説明したように、センサを表す物理デバイスのコンポーネントの出力を、論理コンテナの入力と結び付けることができ、他方、論理コンテナの出力は、モータを表す物理デバイスのコンポーネントの入力と結び付けられている。物理コンポーネントと論理コンポーネントとの対応づけを、ワークスペースにコンポーネントを追加するための上述の技術と同様の手法で実施することができる。たとえば、コンポーネントの出力をクリック(またはタッチ)し、他のコンポーネントの入力に向けてそれをドラッグすることにより、対応づけを生成することができる。 Continuing with reference to FIG. 4, in step 410 the user creates a system design within the 3D workspace by adding and adjusting components. According to some embodiments, engineering tools work with the workspace to provide a library of components that can be used by the user by clicking and dragging (in a mouse-based environment) or by touching (touching). Components can be selected and placed in the workspace through interactions such as touch and drag (in an environment with a base display). The user then adds a logical component to this environment in step 415. As described above, each logical component is associated with one logical operation, and the user can create a container containing a plurality of logical components. Once logical components have been added to the workspace, the logic is added to the physical components by using them to generate a correspondence between the component's inputs and outputs. For example, as already described with reference to FIG. 2, the output of the physical device component representing the sensor can be combined with the input of the logical container, while the output of the logical container is the physical device component representing the motor. Is associated with the input of. The association between physical and logical components can be performed in a manner similar to the techniques described above for adding components to the workspace. For example, you can generate an association by clicking (or touching) the output of a component and dragging it towards the input of another component.

ステップ420において、ワークスペース内のコンポーネントに基づきシミュレーションが実行される。このシミュレーションは、コンポーネントの物理的および電気的な挙動をシミュレートする。いくつかの実施形態によれば、これらのコンポーネントのうちの1つまたは複数を、シミュレーション実行中にアニメーションで示すことができる。たとえばコンベヤベルトコンポーネントを、取り付けられたモータコンポーネントのアクティベートに応答して回転させることができる。ここで述べておくと、設計プロセス中、任意のポイントでシミュレーションを実行することができる。したがってシミュレーションが実行された後、ユーザは、望ましい結果をもたらしているか否かを判定する。望ましい結果がもたらされていなければ、ステップ410、415、420を繰り返し実施することができ、それによってユーザは、物理コンポーネントおよび関連するロジックをワークスペースに追加することができる。その後、ユーザは、望ましい結果が達成されるまで、反復のたびに結果を評価することができる。 At step 420, a simulation is performed based on the components in the workspace. This simulation simulates the physical and electrical behavior of a component. According to some embodiments, one or more of these components can be animated during the simulation run. For example, the conveyor belt component can be rotated in response to activation of the attached motor component. As mentioned here, the simulation can be run at any point during the design process. Therefore, after the simulation is run, the user determines if it is producing the desired result. If the desired result is not achieved, steps 410, 415, 420 can be repeated, allowing the user to add physical components and related logic to the workspace. The user can then evaluate the result at each iteration until the desired result is achieved.

次にステップ425において、三次元ワークスペース内のシステム設計に基づき、コントローラコードが生成される。さらに具体的には、エンジニアリングツールは、物理デバイスに対応する物理コントローラを識別し、それらのデバイスにより実行可能なコードを生成する。コントローラを識別するために、様々な技術を用いることができる。たとえばいくつかの実施形態によれば、各コントローラは固定のハードウェアアドレスを有しており、このアドレスがユーザによってエンジニアリングツールへ供給される。他の実施形態によれば、エンジニアリングツールはデバイスディスカバリプロセスを実行することができ、このプロセスにおいてエンジニアリングツールは、物理デバイスから受け取ったデバイス通知メッセージを処理して、それらの個々のアドレスおよび他の関連情報を取得する。これらの物理デバイスが、ユーザがエンジニアリングツールにおいて選択したデバイスモデルと同じタイプのものでなければならないようにしてもよいし、または別の選択肢として物理デバイスが、アプリケーションによって定義された所定のファンクションセットを実行可能なものであればよいとすることもできる。いくつかの実施形態によれば、エンジニアリングツールは、論理要素とシミュレーションコードとに基づき、各コントローラごとにコードを生成してコンパイルする。他の実施形態によれば、エンジニアリングツールには、シミュレーション実行中にコントローラコードを実行する仮想マシンが含まれている。したがってシミュレーションにおいて使用されるコードを、さらにコンパイルすることもなく、各コントローラにおいてそのまま使用することができる。 Next, in step 425, the controller code is generated based on the system design in the 3D workspace. More specifically, engineering tools identify the physical controllers that correspond to the physical devices and generate code that can be executed by those devices. Various techniques can be used to identify the controller. For example, according to some embodiments, each controller has a fixed hardware address, which is supplied by the user to the engineering tool. According to other embodiments, the engineering tool can perform a device discovery process, in which the engineering tool processes device notification messages received from physical devices to their individual addresses and other associations. Get information. These physical devices may have to be of the same type as the device model selected by the user in the engineering tool, or, as an alternative, the physical device may have a given set of functions defined by the application. It can be anything that is feasible. According to some embodiments, the engineering tool generates and compiles code for each controller based on logical elements and simulation code. According to another embodiment, the engineering tool includes a virtual machine that executes the controller code during the simulation run. Therefore, the code used in the simulation can be used as it is in each controller without further compilation.

コードが生成されると、ステップ430においてそのコードが物理コントローラにダウンロードされる。いくつかの実施形態によれば、エンジニアリングツールによりネットワークコネクションを介してコントローラへ、コードをそのまま送信することができる。別の実施形態によれば、エンジニアリングツールを、物理コントローラと通信する中間サーバまたは中間ストレージ媒体として用いることができる。 Once the code is generated, it is downloaded to the physical controller in step 430. According to some embodiments, engineering tools can send the code directly to the controller over a network connection. According to another embodiment, the engineering tool can be used as an intermediate server or intermediate storage medium to communicate with the physical controller.

図5には、本発明の実施形態をインプリメント可能なコンピューティング環境500の一例が示されている。たとえばコンピューティング環境500を用いて、図1に示したシミュレーション環境100の1つまたは複数のコンポーネントをインプリメントすることができる。コンピュータシステム510およびコンピューティング環境500といったコンピュータおよびコンピューティング環境は、当業者には周知であり、よって、これらについてはここでは手短に説明する。 FIG. 5 shows an example of a computing environment 500 in which embodiments of the present invention can be implemented. For example, the computing environment 500 can be used to implement one or more components of the simulation environment 100 shown in FIG. Computer and computing environments such as computer system 510 and computing environment 500 are well known to those of skill in the art and are therefore briefly described herein.

図5に示されているように、コンピュータシステム510は、システムバス521などのような通信メカニズムを含むことができるし、またはコンピュータシステム510内の情報を通信するための他の通信メカニズムを含むことができる。さらにコンピュータシステム510は情報を処理するために、システムバス521と接続された1つまたは複数のプロセッサ520を含んでいる。 As shown in FIG. 5, the computer system 510 may include a communication mechanism such as system bus 521, or may include other communication mechanisms for communicating information within the computer system 510. Can be done. Further, the computer system 510 includes one or more processors 520 connected to the system bus 521 to process the information.

プロセッサ520は、1つまたは複数の中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、または当技術分野において周知の他の任意のプロセッサを含むことができる。もっと一般的に述べると、ここで用いられるプロセッサは、タスクを実施するためコンピュータ読み取り可能媒体に記憶された機械読み取り可能な命令を実行するデバイスであり、ハードウェアおよびファームウェアのうち任意の1つまたはこれらの組み合わせを含むことができる。プロセッサは、タスクを実施するために実行可能である機械読み取り可能な命令を記憶するメモリを含むこともできる。プロセッサは情報に応答して動作し、その際、実行可能なプロシージャまたは情報デバイスによって使用するために、情報を操作、分析、変更、変換または伝送し、および/または、この情報を出力デバイスにルーティングする。プロセッサはたとえば、コンピュータ、コントローラまたはマイクロプロセッサの能力を使用することができ、または含むことができ、汎用のコンピュータによって実行されない特別な目的のファンクションを実施するために実行可能な命令を用いて、コンディショニングすることができる。プロセッサを、他の任意のプロセッサと(電気的に、および/または実行可能なコンポーネントを含むように)接続することができ、これによってそれらの間のインタラクションおよび/またはコミュニケーションが可能となる。ユーザインタフェースプロセッサまたはユーザインタフェースジェネレータは、周知の要素であり、ディスプレイイメージまたはその一部分を生成するために、これには電子回路またはソフトウェアまたは両者の組み合わせが含まれている。ユーザインタフェースには、プロセッサまたは他のデバイスとのユーザインタラクションを可能にする1つまたは複数のディスプレイイメージが含まれている。 Processor 520 may include one or more central processing units (CPUs), graphics processing units (GPUs), or any other processor well known in the art. More generally, the processor used herein is a device that executes machine-readable instructions stored on a computer-readable medium to perform a task, and is any one of hardware and firmware. These combinations can be included. The processor can also include memory that stores machine-readable instructions that can be executed to perform the task. The processor operates in response to the information, in which it manipulates, analyzes, modifies, transforms or transmits the information for use by an executable procedure or information device, and / or routes this information to the output device. do. A processor can, for example, use or include the power of a computer, controller or microprocessor, and condition it with instructions that can be executed to perform special purpose functions that are not performed by a general purpose computer. can do. Processors can be connected to any other processor (including electrically and / or executable components), which allows interaction and / or communication between them. A user interface processor or user interface generator is a well-known element, which includes electronic circuits or software, or a combination thereof, in order to generate a display image or a portion thereof. The user interface includes one or more display images that allow user interaction with the processor or other device.

引き続き図5を参照すると、コンピュータシステム510にはさらに、情報とプロセッサ520によって実行すべき命令とを記憶するために、システムバス521と接続されたシステムメモリ530も含まれている。システムメモリ530は、リードオンリメモリ(ROM)531および/またはランダムアクセスメモリ(RAM)532などのような、揮発性メモリおよび/または不揮発性メモリの形態のコンピュータ読み取り可能なストレージ媒体を含むことができる。システムメモリのRAM532は、(1つまたは複数の)他のダイナミックストレージデバイス(たとえばダイナミックRAM、スタティックRAM、およびシンクロナスDRAM)を含むことができる。システムメモリのROM531は、(1つまたは複数の)他のスタティックストレージデバイス(たとえばプログラマブルROM、消去可能なPROM、および電気的に消去可能なPROM)を含むことができる。これらに加え、システムメモリ530を、プロセッサ520による命令実行中、一時的な変数または他の中間段階の情報を記憶するために用いることができる。始動中などに、コンピュータシステム510内の各要素間での情報伝送を補助する基本ルーチンを含む基本入出力システム533(BIOS)を、システムメモリのROM531に記憶させることができる。システムメモリのRAM532には、プロセッサ520により即座にアクセス可能な、および/またはプロセッサ520により目下実行されているデータモジュールおよび/またはプログラムモジュールを含めることができる。これらに加えシステムメモリ530は、たとえばオペレーティングシステム534、アプリケーションプログラム535、他のプログラムモジュール536、およびプログラムデータ537も含むことができる。 Continuing with reference to FIG. 5, the computer system 510 also includes a system memory 530 connected to the system bus 521 to store information and instructions to be executed by the processor 520. System memory 530 can include computer-readable storage media in the form of volatile and / or non-volatile memory, such as read-only memory (ROM) 531 and / or random access memory (RAM) 532. .. RAM 532 of system memory can include other dynamic storage devices (eg, dynamic RAM, static RAM, and synchronous DRAM). ROM 531 of system memory can include other static storage devices (eg, programmable ROMs, erasable PROMs, and electrically erasable PROMs). In addition to these, system memory 530 can be used to store temporary variables or other intermediate stage information during instruction execution by processor 520. A basic input / output system 533 (BIOS) including a basic routine for assisting information transmission between each element in the computer system 510 can be stored in the ROM 531 of the system memory during startup or the like. RAM 532 of the system memory can include data modules and / or program modules that are immediately accessible by processor 520 and / or are currently being executed by processor 520. In addition to these, the system memory 530 can also include, for example, an operating system 534, an application program 535, other program modules 536, and program data 537.

コンピュータシステム510には、情報および命令を記憶するための1つまたは複数のストレージデバイスたとえば磁気ハードディスク541およびリムーバブル媒体ドライブ542(たとえばフロッピーディスクドライブ、コンパクトディスクドライブ、テープドライブ、および/またはソリッドステートドライブ)などを制御するために、システムバス521と接続されたディスクコントローラ540も含まれている。これらのストレージデバイスを、適切なデバイスインタフェース(たとえばsmall computer system interface (SCSI), integrated device electronics (IDE), Universal Serial Bus (USB)またはFire Wire)を用いて、コンピュータシステム510に追加することができる。 The computer system 510 includes one or more storage devices for storing information and instructions, such as a magnetic hard disk 541 and a removable medium drive 542 (eg, floppy disk drive, compact disk drive, tape drive, and / or solid state drive). A disk controller 540 connected to the system bus 521 is also included to control such as. These storage devices can be added to the computer system 510 using the appropriate device interface (eg small computer system interface (SCSI), integrated device electronics (IDE), Universal Serial Bus (USB) or Fire Wire). ..

コンピュータシステム510にはさらに、コンピュータユーザに情報を表示するための、ブラウン管(CRT)または液晶ディスプレイ(LCD)などのようなディスプレイ566を制御するために、システムバス521と接続されたディスプレイコントローラ565も含めることができる。コンピュータシステムには、コンピュータユーザとのインタラクションおよび1つまたは複数のプロセッサ520への情報の供給のために、入力インタフェース560と、キーボード562およびポインティングデバイス561などのような1つまたは複数の入力デバイスが含まれている。方向情報およびコマンド選択を1つまたは複数のプロセッサ520へ伝達するために、およびディスプレイ566上でのカーソルの動きを制御するために、ポインティングデバイス561をたとえばマウス、ライトペン、トラックボール、またはポインティングスティックとすることができる。ディスプレイ566によって、タッチスクリーンインタフェースを提供することができ、このインタフェースによって、ポインティングデバイス561による方向情報およびコマンド選択の伝達を補足または置き換えるための入力が可能となる。 The computer system 510 also includes a display controller 565 connected to the system bus 521 to control a display 566, such as a cathode ray tube (CRT) or liquid crystal display (LCD), for displaying information to the computer user. Can be included. The computer system includes an input interface 560 and one or more input devices such as a keyboard 562 and a pointing device 561 for interacting with the computer user and supplying information to the one or more processors 520. include. Pointing devices 561, such as mice, light pens, trackballs, or pointing sticks, are used to convey direction information and command selection to one or more processors 520 and to control the movement of the cursor on the display 566. Can be. A display 566 can provide a touch screen interface that allows input to supplement or replace the transmission of directional information and command selection by the pointing device 561.

コンピュータシステム510は、システムメモリ530などのようなメモリ内に含まれている1つまたは複数の命令の1つまたは複数のシーケンスを実行する、1つまたは複数のプロセッサ520に応答して、本発明の実施形態の処理ステップの一部分またはすべてを実行することができる。このような命令を、磁気ハードディスク541またはリムーバブル媒体ドライブ542など他のコンピュータ読み取り可能媒体から、システムメモリ530に読み込むことができる。磁気ハードディスク541は、本発明の実施形態により使用される1つまたは複数のデータストアおよびデータファイルを含むことができる。セキュリティ向上のため、データストアのコンテンツおよびデータファイルを暗号化することができる。システムメモリ530内に含まれている1つまたは複数の命令シーケンスを実行するために、複数のプロセッサ520をマルチプロセッシング構成で使用することもできる。択一的な実施形態によれば、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、ハードワイヤード回路を用いてもよい。したがって、ハードウェア回路とソフトウェアの何らかの特定の組み合わせに、実施形態が限定されるものではない。 The computer system 510 is the present invention in response to one or more processors 520 executing one or more sequences of one or more instructions contained in memory, such as system memory 530. Part or all of the processing steps of the embodiment can be performed. Such instructions can be read into the system memory 530 from another computer-readable medium, such as a magnetic hard disk 541 or a removable medium drive 542. The magnetic hard disk 541 can include one or more data stores and data files used according to embodiments of the present invention. Data store content and data files can be encrypted for added security. Multiple processors 520 may also be used in a multiprocessing configuration to execute one or more instruction sequences contained within system memory 530. According to an alternative embodiment, a hardwired circuit may be used in place of or in combination with the software instructions. Therefore, the embodiments are not limited to any particular combination of hardware circuit and software.

上述のようにコンピュータシステム510は、本発明の実施形態に従ってプログラミングされた命令を保持するための、およびデータ構造、テーブル、レコードまたはここで述べた他のデータを入れるための、少なくとも1つのコンピュータ読み取り可能媒体またはメモリを含むことができる。ここで用いられている用語「コンピュータ読み取り可能媒体」は、実行のために1つまたは複数のプロセッサ520に命令を供給することに関与する何らかの媒体のことを指す。コンピュータ読み取り可能媒体は、以下に限定されるものではないが、非一時的媒体、不揮発性媒体、揮発性媒体および伝送媒体を含む数多くの形態をとることができる。不揮発性媒体の非限定的な例を挙げると、光ディスク、ソリッドステートドライブ、磁気ディスク、および光磁気ディスクであり、たとえば磁気ハードディスク541またはリムーバブル媒体ドライブ542などである。揮発性媒体の非限定的な例を挙げると、システムメモリ530などのようなダイナミックメモリである。伝送媒体の非限定的な例を挙げると、同軸ケーブル、銅線、および光ファイバであり、これにはシステムバス521を構築するワイヤが含まれる。伝送媒体には、電波や赤外線によるデータ通信中に発せられるような、音響波または光波の形態を含めることができる。 As mentioned above, the computer system 510 is at least one computer read to hold instructions programmed according to embodiments of the present invention and to contain data structures, tables, records or other data described herein. Possible media or memory can be included. As used herein, the term "computer-readable medium" refers to any medium involved in delivering instructions to one or more processors 520 for execution. Computer-readable media can take many forms, including, but not limited to, non-temporary media, non-volatile media, volatile media and transmission media. Non-volatile examples include optical disks, solid state drives, magnetic disks, and magneto-optical disks, such as magnetic hard disks 541 or removable medium drives 542. A non-limiting example of a volatile medium is a dynamic memory such as a system memory 530. Non-limiting examples of transmission media are coaxial cables, copper wires, and optical fibers, including the wires that make up the system bus 521. The transmission medium can include forms of acoustic or light waves, such as those emitted during data communication by radio waves or infrared rays.

コンピューティング環境500にはさらに、リモートコンピュータ580などのような1つまたは複数のリモートコンピュータとの論理接続を用いてネットワークが構築された環境で動作するコンピュータシステム510を含めることができる。リモートコンピュータ580を、パーソナルコンピュータ(ラップトップまたはデスクトップ)、モバイルデバイス、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、このリモートコンピュータ580には一般に、コンピュータシステム510に関連して述べた上述の要素のうちの多数またはすべてが含まれている。ネットワーキング環境で用いられる場合、コンピュータシステム510には、インターネットなどのようなネットワーク571を介して通信を確立するために、モデム572を含めることができる。モデム572を、ユーザネットワークインタフェース570を介して、または他の適切なメカニズムを介して、システムバス521と接続することができる。 The computing environment 500 can further include a computer system 510 that operates in an environment in which a network is constructed using logical connections with one or more remote computers, such as the remote computer 580. The remote computer 580 can be a personal computer (laptop or desktop), mobile device, server, router, network PC, peer device, or other common network node, and the remote computer 580 generally includes a computer. Includes many or all of the above mentioned elements mentioned in connection with system 510. When used in a networking environment, the computer system 510 may include a modem 572 to establish communication over a network 571 such as the Internet. The modem 572 can be connected to the system bus 521 via the user network interface 570 or through other suitable mechanisms.

ネットワーク571を、当技術分野において一般的に知られている任意のネットワークまたはシステムとすることができ、これにはインターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、1つのダイレクトコネクションまたは一連のダイレクトコネクション、セルラ電話回線網、またはコンピュータシステム510と他のコンピュータ(たとえばリモートコンピューティング580)との間の通信を促進することのできる他の任意のネットワークまたは媒体が含まれる。ネットワーク571を有線、ワイヤレス、またはそれらの組み合わせとすることができる。有線コネクションを、Ethernet、Universal Serial Bus (USB)、RJ-6、または当技術分野で一般的に知られている他の任意の有線コネクションを用いて、インプリメントすることができる。ワイヤレスコネクションを、Wi-Fi、WiMAXおよびBluetooth、赤外線ネットワーク、セルラネットワーク、衛星、または当技術分野で一般的に知られている他の任意のワイヤレスコネクション技法を用いて、インプリメントすることができる。これらに加え、複数のネットワークを単独で動作させてもよいし、または互いに通信し合う状態で動作させてもよく、これによればネットワーク571における通信が容易になる。 The network 571 can be any network or system commonly known in the art, including the Internet, intranet, local area network (LAN), wide area network (WAN), metropolitan area network. (MAN) A direct connection or set of direct connections, a cellular network, or any other network that can facilitate communication between a computer system 510 and another computer (eg, remote computing 580). Or a medium is included. The network 571 can be wired, wireless, or a combination thereof. Wired connections can be implemented using Ethernet, Universal Serial Bus (USB), RJ-6, or any other wired connection commonly known in the art. Wireless connections can be implemented using Wi-Fi, WiMAX and Bluetooth, infrared networks, cellular networks, satellites, or any other wireless connection technique commonly known in the art. In addition to these, a plurality of networks may be operated independently or in a state of communicating with each other, which facilitates communication in the network 571.

ここで用いられる実行可能なアプリケーションは、たとえばユーザのコマンドまたは入力に応答して、オペレーティングシステム、コンテキストデータ取得システムまたは他の情報処理システムのファンクションなど、予め定められたファンクションをインプリメントするために、プロセッサをコンディショニングするためのコードまたは機械読み取り可能な命令を含んでいる。実行可能なプロシージャは、1つまたは複数の特定のプロセスを実施するために実行可能なアプリケーションの、コードまたは機械読み取り可能な命令の1つのセグメント、サブルーチン、またはコードまたは一部分の他の別個のセクションである。これらのプロセスとして挙げられるのは、入力データおよび/またはパラメータの受け取り、受け取った入力データに基づくオペレーションの実施、および/または受け取った入力パラメータに応答したファンクションの実施、および結果として生じた出力データおよび/またはパラメータの供給である。 The executable application used herein is a processor to implement a predetermined function, such as a function of an operating system, a contextual data acquisition system or another information processing system, in response to a user's command or input. Contains code or machine-readable instructions for conditioning. An executable procedure is a segment, subroutine, or other separate section of code or part of a code or machine-readable instruction of an application that can be executed to perform one or more specific processes. be. These processes include receiving input data and / or parameters, performing operations based on the received input data, and / or performing functions in response to the received input parameters, and the resulting output data and / Or the supply of parameters.

ここで用いられるグラフィックユーザインタフェース(GUI)には、ディスプレイプロセッサにより生成される1つまたは複数のディスプレイイメージが含まれており、これによってプロセッサまたは他のデバイスおよび対応づけられたデータ取得および処理のファンクションとのユーザインタラクションが可能になる。GUIには、実行可能なプロシージャまたは実行可能なアプリケーションも含まれている。実行可能なプロシージャまたは実行可能なアプリケーションによって、GUIディスプレイイメージを表す信号を発生させるために、ディスプレイプロセッサがコンディショニングされる。これらの信号は、ユーザが閲覧するためのイメージを表示するディスプレイデバイスに供給される。プロセッサは、実行可能なプロシージャまたは実行可能なアプリケーションの制御に従い、入力デバイスから受け取った信号に応答して、GUIディスプレイイメージを操作する。このようにしてユーザは、プロセッサまたは他のデバイスとのユーザインタラクションを可能にする入力デバイスを用いることで、ディスプレイイメージとインタラクトすることができる。 The graphic user interface (GUI) used herein contains one or more display images generated by a display processor, thereby a processor or other device and associated data acquisition and processing functions. User interaction with is possible. The GUI also contains executable procedures or executable applications. An executable procedure or executable application conditions the display processor to generate a signal that represents a GUI display image. These signals are supplied to a display device that displays an image for viewing by the user. The processor manipulates the GUI display image in response to signals received from the input device under the control of an executable procedure or executable application. In this way, the user can interact with the display image by using an input device that allows user interaction with the processor or other device.

ここでファンクションおよびプロセスステップを、ユーザコマンドに応答して、完全にまたは部分的に自動的に実施させることができる。自動的に実施される1つのアクティビティは(1つのステップを含めて)、そのアクティビティをユーザがじかに開始させることなく、1つまたは複数の実行可能な命令またはデバイスオペレーションに応答して実施される。 Function and process steps can now be performed completely or partially automatically in response to user commands. An automatically performed activity (including one step) is performed in response to one or more executable instructions or device operations without initiating the activity directly by the user.

図面のシステムおよびプロセスは、排他的なものではない。同じ目的を達成するために、本発明の原理に従って他のシステム、プロセスおよびメニューを派生させることができる。これまで本発明について、特定の実施形態を参照しながら説明してきたが、ここに示して説明した実施形態および変形形態は例示目的であるにすぎない、という点を理解されたい。当業者であれば、本発明の範囲を逸脱することなく、現行の設計に対する変更をインプリメントすることができる。さらにこれまで述べてきたように、様々なシステム、サブシステム、エージェント、マネージャおよびプロセスを、ハードウェアコンポーネント、ソフトウェアコンポーネント、および/またはそれらの組み合わせを用いてインプリメントすることができる。本願の特許請求の範囲の構成要件を「〜のための手段」"means for"というフレーズを用いて特別に挙げないかぎり、その要件は米国特許法第112条第6項の条項に従って解釈されるものではない。 The drawing systems and processes are not exclusive. Other systems, processes and menus can be derived according to the principles of the invention to achieve the same objectives. Although the present invention has been described with reference to specific embodiments, it should be understood that the embodiments and modifications described herein are for illustrative purposes only. One of ordinary skill in the art can implement changes to the current design without departing from the scope of the present invention. Moreover, as mentioned above, various systems, subsystems, agents, managers and processes can be implemented using hardware components, software components, and / or combinations thereof. Unless the requirements of the claims of the present application are specifically mentioned using the phrase "means for", those requirements shall be construed in accordance with the provisions of Article 112, paragraph 6 of the US Patent Act. It's not a thing.

Claims (20)

ユーザからの入力に基づき、オートメーションアプリケーションを設計するためのシステムであって、
当該システムは、三次元ワークスペースと、シミュレーションエンジンと、コントローラコード生成ユニットとを含むコンピュータ実装自動化システムエンジニアリングツールを含み、
前記三次元ワークスペースは、
・複数のコンポーネントを表示し、
・ユーザにより供給された1つまたは複数の命令に基づき、第1の物理的要素を、論理要素を介して、第2の物理的要素に接続する前記複数のコンポーネントを用いて、当該三次元ワークスペース内にシステム設計を生成する
ように構成されており、
前記シミュレーションエンジンは、
・前記三次元ワークスペース内の前記システム設計に基づき、シミュレーションコードを生成し、
・ユーザからのコマンドに応答して、前記シミュレーションコードを実行し、
ただし、前記三次元ワークスペース内の前記複数のコンポーネントのうち少なくとも1つのコンポーネントは、前記シミュレーションコード実行中、アニメーションで表示され、
・前記シミュレーションコードに基づいて新しいコンポーネントを自動的に生成する
ように構成されており、
前記コントローラコード生成ユニットは、
・1つまたは複数の物理コントローラが前記オートメーションアプリケーションにインストールされる前に、前記少なくとも1つの論理要素に部分的に基づく前記システム設計に基づき、前記1つまたは複数の物理コントローラのために、コントローラにより実行可能なコードを生成し、
・前記1つまたは複数の物理コントローラが前記オートメーションアプリケーションにインストールされる場合、前記生成されたコントローラコードを前記1つまたは複数の物理コントローラにインストールする
ように構成されている、
オートメーションアプリケーションを設計するためのシステム。
A system for designing automation applications based on user input.
The system includes a computer-implemented automated system engineering tool that includes a three-dimensional workspace, a simulation engine, and a controller code generation unit.
The three-dimensional workspace is
- to display the multiple components,
The three-dimensional work using the plurality of components that connect the first physical element to the second physical element via the logical element based on one or more instructions supplied by the user. It is configured to generate a system design in space
The simulation engine
-Generate a simulation code based on the system design in the 3D workspace,
-In response to a command from the user, execute the simulation code and
However, at least one of the plurality of components in the three-dimensional workspace is displayed as an animation during the execution of the simulation code.
-It is configured to automatically generate a new component based on the simulation code.
The controller code generation unit is
• By the controller for the one or more physical controllers, based on the system design, which is partially based on the at least one logical element, before one or more physical controllers are installed in the automation application. Generate executable code and
When the one or more physical controllers are installed in the automation application, the generated controller code is configured to be installed in the one or more physical controllers.
A system for designing automation applications.
前記複数のコンポーネントは、
・1つの物理デバイスモデルに各々対応づけられ、少なくとも1つの入力ポートオブジェクトと少なくとも1つの出力ポートオブジェクトとを有する複数の物理コンポーネントと、
・1つの論理演算に各々対応づけられ、少なくとも1つの入力ポートオブジェクトと少なくとも1つの出力ポートオブジェクトとを有する複数の論理要素と
を含む、
請求項1記載のシステム。
The plurality of components
• Multiple physical components, each associated with a physical device model, having at least one input port object and at least one output port object.
· Each logical operation is associated with a plurality of logical elements having at least one input port object and at least one output port object.
The system according to claim 1.
前記三次元ワークスペースはさらに、
・前記複数の論理要素と前記複数の物理コンポーネントとの対応づけを、少なくとも1つの入力ポートオブジェクトと1つの出力ポートオブジェクトとを介した1つまたは複数のユーザ命令に基づき生成する
ように構成されている、
請求項2記載のシステム。
The 3D workspace is further
The association between the plurality of logical elements and the plurality of physical components is configured to be generated based on one or more user instructions via at least one input port object and one output port object. Yes,
The system according to claim 2.
前記三次元ワークスペースはさらに、
・第1のユーザリクエストに基づき、前記複数の論理要素のうち1つまたは複数の論理要素を含む論理要素コンテナを生成し、
・第2のユーザリクエストに基づき、前記論理要素コンテナと、前記複数の物理コンポーネントのうち少なくとも1つの物理コンポーネントとの対応づけを生成する
ように構成されている、
請求項2記載のシステム。
The 3D workspace is further
-Based on the first user request, a logical element container containing one or a plurality of logical elements among the plurality of logical elements is generated.
-Based on the second user request, it is configured to generate an association between the logical element container and at least one physical component among the plurality of physical components.
The system according to claim 2.
前記論理要素コンテナと、前記複数の物理コンポーネントのうち少なくとも1つの物理コンポーネントとの対応づけは、以下により生成される、すなわち、
・第1のユーザ選択に基づき、第1の物理オブジェクトを識別し、
・前記論理要素コンテナの前記入力ポートオブジェクトを、前記第1の物理オブジェクトの前記出力ポートオブジェクトと接続し、
・第2のユーザ選択に基づき、第2の物理オブジェクトを識別し、
・前記論理要素コンテナの前記出力ポートオブジェクトを、前記第2の物理オブジェクトの前記入力ポートオブジェクトと接続する
ことにより生成される、
請求項4記載のシステム。
The association between the logical element container and at least one of the plurality of physical components is generated by the following, that is,
-Identify the first physical object based on the first user selection
-Connecting the input port object of the logical element container to the output port object of the first physical object,
-Identify the second physical object based on the second user selection
Generated by connecting the output port object of the logical element container to the input port object of the second physical object.
The system according to claim 4.
前記三次元ワークスペースはさらに、
・前記複数の物理コンポーネントのうち少なくとも1つの物理コンポーネントのための1つまたは複数の属性値のユーザコンフィギュレーションを受け取る
ように構成されており、ただし、前記1つまたは複数の属性値は、前記シミュレーションコード実行中、前記複数の物理コンポーネントのうち少なくとも1つの物理コンポーネントの挙動をシミュレートするために用いられる物理モデルへの入力に対応する、
請求項2記載のシステム。
The 3D workspace is further
• It is configured to receive a user configuration of one or more attribute values for at least one of the plurality of physical components, where the one or more attribute values are the simulation. Corresponds to input to a physical model used to simulate the behavior of at least one of the plurality of physical components during code execution.
The system according to claim 2.
前記シミュレーションエンジンによる前記シミュレーションコードの実行は、前記コントローラにより実行可能なコードを仮想マシンにおいて実行することを含む、
請求項1記載のシステム。
Execution of the simulation code by the simulation engine includes executing code that can be executed by the controller in a virtual machine.
The system according to claim 1.
当該システムは、マーケットプレイスインタフェースコンポーネントをさらに含み、該マーケットプレイスインタフェースコンポーネントは、
・マーケットプレイスサーバから1つまたは複数のデバイスモデルを取り出し、
・前記1つまたは複数のデバイスモデルに基づき、コンポーネントライブラリ内に1つまたは複数の新たなコンポーネントを生成する
ように構成されている、
請求項1記載のシステム。
The system further includes a Marketplace Interface Component, which is a Marketplace Interface Component.
· Extract one or more device models from the marketplace server
- based on said one or more device models, and is configured to generate one or more new components in the component library,
The system according to claim 1.
前記三次元ワークスペース内の前記複数のコンポーネントに対応する前記1つまたは複数の物理コントローラは、該1つまたは複数の物理コントローラから受け取ったデバイス通知メッセージに基づき識別される、
請求項1記載のシステム。
The one or more physical controllers corresponding to the plurality of components in the three-dimensional workspace are identified based on device notification messages received from the one or more physical controllers.
The system according to claim 1.
ユーザからの入力に基づき、オートメーションアプリケーションを設計するためのシステムであって、
当該システムは、
・製造者から取得することを可能にする物理コンポーネントと前記物理コンポーネントのコンピュータ実行可能なモデルとを含むオンラインマーケットプレイスと
・コンピュータ実装エンジニアリングツールとを含み、該コンピュータ実装エンジニアリングツールは、
・複数の物理コンポーネントモデルおよび少なくとも1つの論理要素を含むモデルされたコンポーネントのギャラリと、
・前記ギャラリから選択されたモデル化されたコンポーネントを含む産業自動化環境の三次元モデルをユーザが生成および操作できるように構成されたワークスペースであって、複数の物理コンポーネントモデルのうちの第1の物理コンポーネントモデルは、前記論理要素のうちの1つによって、複数の物理コンポーネントモデルのうちの第2の物理コンポーネントモデルに関連づけられている、前記ワークスペースと、
・前記三次元モデルの物理的挙動をシミュレートし、前記三次元モデルで新しいコンポーネントを動的に生成するように構成されたシミュレーションエンジンと、
・1つまたは複数の物理コントローラが産業自動化環境にインストールされる前に、前記産業自動化環境の前記三次元モデルに含まれている物理コンポーネントに対応する1つまたは複数の物理コントローラのために、コントローラにより実行可能なコードを生成するように構成された、コントローラコード生成ユニットと
を含み、前記生成されたコントローラ実行可能コードは、前記1つまたは複数の物理コントローラが前記産業自動化環境にインストールされる場合に、前記1つまたは複数の物理コントローラにインストールされる、
ユーザからの入力に基づき、オートメーションアプリケーションを設計するためのシステム。
A system for designing automation applications based on user input.
The system is
• An online marketplace that includes physical components that can be obtained from the manufacturer and computer-executable models of said physical components. • Computer-implemented engineering tools, including computer-implemented engineering tools.
- a gallery of the plurality of physical components model and modeled component comprising at least one logic element,
- a three-dimensional model of the industrial automation environment that includes a selected modeled components from the gallery a configuration workspace to allow the user to generate and manipulate, the first of the plurality of physical component model physical component model, the I 1 Tsuniyo of logic elements, associated with the second physical component models of the plurality of physical component model, and the work space,
-A simulation engine configured to simulate the physical behavior of the 3D model and dynamically generate new components in the 3D model.
• Controllers for one or more physical controllers corresponding to the physical components contained in the three-dimensional model of the industrial automation environment before one or more physical controllers are installed in the industrial automation environment. The generated controller executable code includes a controller code generation unit configured to generate code that can be executed by, if the one or more physical controllers are installed in the industrial automation environment. Installed on the one or more physical controllers mentioned above,
A system for designing automation applications based on user input.
前記シミュレーションエンジンは、
・前記産業自動化環境の前記三次元モデルを、該三次元モデルの物理的挙動のシミュレーション中、アニメーションで表示する
ように構成されている、
請求項10記載のシステム。
The simulation engine
-The three-dimensional model of the industrial automation environment is configured to be displayed as an animation during the simulation of the physical behavior of the three-dimensional model.
The system according to claim 10.
前記産業自動化環境の前記三次元モデルは、
・1つの物理デバイスモデルに各々対応する複数の物理コンポーネントと、
・1つの論理デバイス演算子に各々対応する複数の論理要素と、
・前記複数の物理コンポーネントと前記複数の論理要素との少なくとも1つの対応づけと
を含む、
請求項10記載のシステム。
The three-dimensional model of the industrial automation environment
-Multiple physical components corresponding to one physical device model,
-Multiple logical elements corresponding to one logical device operator,
-Includes at least one association between the plurality of physical components and the plurality of logical elements.
The system according to claim 10.
前記複数の論理要素は、前記ワークスペース内に表示される1つの論理要素コンテナにグループ分けされる、
請求項12記載のシステム。
The plurality of logical elements are grouped into one logical element container displayed in the workspace.
The system according to claim 12.
当該システムは、デバイスディスカバリインタフェースをさらに含み、該デバイスディスカバリインタフェースは、
・前記1つまたは複数の物理コントローラからデバイス通知メッセージを受け取り、
前記デバイス通知メッセージに基づき、前記1つまたは複数の物理コントローラを識別する
ように構成されている、
請求項12記載のシステム。
The system further includes a device discovery interface, which is a device discovery interface.
-Receive device notification messages from the one or more physical controllers mentioned above
It is configured to identify the one or more physical controllers based on the device notification message.
The system according to claim 12.
当該システムは、マーケットプレイスインタフェースをさらに含み、該マーケットプレイスインタフェースは、
・1つの物理デバイスに対応する新たな物理デバイスモデルを、マーケットプレイスサーバから受け取り、
・前記新たな物理デバイスモデルに基づき、前記産業自動化環境の前記三次元モデルにおいて使用するために、新たな物理コンポーネントを生成する
ように構成されている、
請求項12記載のシステム。
The system further includes a marketplace interface, which is a marketplace interface.
-Receive a new physical device model corresponding to one physical device from the marketplace server and receive it.
• Based on the new physical device model, it is configured to generate new physical components for use in the three-dimensional model of the industrial automation environment.
The system according to claim 12.
前記マーケットプレイスインタフェースはさらに、
・前記マーケットプレイスサーバを介した前記物理デバイスのユーザによる取得を補助する
ように構成されている、
請求項15記載のシステム。
The marketplace interface further
-It is configured to assist the user in acquiring the physical device via the marketplace server.
The system according to claim 15.
コンピュータにより実施される、ユーザからの入力に基づきオートメーションアプリケーションを設計する方法であって、
当該方法は以下のステップを含む、すなわち
・複数の物理コンポーネントおよび少なくとも1つの論理要素を含むコンポーネントライブラリからの複数のコンポーネントのユーザ選択を、コンピュータにより受け取るステップと、
・ユーザにより供給された1つまたは複数の命令に基づき、少なくとも1つの論理要素によって、第1の物理コンポーネントから第2の物理コンポーネントに接続する前記複数のコンポーネントを用いて、前記コンピュータにより三次元ワークスペース内にシステム設計を生成するステップと、
・前記三次元ワークスペース内の前記システム設計に基づき、前記コンピュータによりシミュレーションコードを生成するステップと、
・ユーザからのコマンドに応答して、前記コンピュータにより前記シミュレーションコードを実行するステップであって、前記シミュレーションコードの実行に基づいて新しいコンポーネントを動的に生成するステップと、
・前記三次元ワークスペース内の前記複数のコンポーネントに対応する、1つまたは複数の物理コントローラを、前記コンピュータにより識別するステップと、
・産業自動化システムに前記1つまたは複数の物理コントローラのインストールより前に、前記システム設計に基づき、前記1つまたは複数の物理コントローラのために、コントローラにより実行可能なコードを、前記コンピュータにより生成するステップと
を含み、
前記1つまたは複数の物理コントローラが前記産業自動化システムにインストールされる場合に、前記生成されたコントローラ−実行可能コードが前記1つまたは複数の物理コントローラにインストールされる、
コンピュータにより実施される、オートメーションアプリケーションを設計する方法。
A method of designing an automation application based on user input, performed by a computer.
The method comprises the following steps:: -A step of receiving a user selection of multiple components from a component library containing multiple physical components and at least one logical element by a computer.
A three-dimensional work by the computer using the plurality of components connecting the first physical component to the second physical component by at least one logical element based on one or more instructions supplied by the user. Steps to generate a system design in space,
-A step of generating a simulation code by the computer based on the system design in the three-dimensional workspace, and
-A step of executing the simulation code by the computer in response to a command from the user, and a step of dynamically generating a new component based on the execution of the simulation code.
A step of identifying one or more physical controllers corresponding to the plurality of components in the three-dimensional workspace by the computer.
Prior to the installation of the one or more physical controllers in an industrial automation system, the computer generates code that can be executed by the controller for the one or more physical controllers based on the system design. Including steps
When the one or more physical controllers are installed in the industrial automation system, the generated controller-executable code is installed in the one or more physical controllers.
How to design an automation application performed by a computer.
ユーザからのコマンドに応答して前記シミュレーションコードを実行する前記ステップは、前記コントローラにより実行可能なコードを仮想マシンにおいて実行するステップを含む、
請求項17記載の方法。
The step of executing the simulation code in response to a command from the user includes a step of executing the code that can be executed by the controller in the virtual machine.
17. The method of claim 17.
前記三次元ワークスペース内の前記複数のコンポーネントのうち少なくとも1つのコンポーネントを、前記シミュレーションコードの実行中、アニメーションで表示する、
請求項17記載の方法。
At least one of the plurality of components in the three-dimensional workspace is animated during execution of the simulation code.
17. The method of claim 17.
当該方法はさらに、
・前記1つまたは複数の物理コントローラからデバイス通知メッセージを、前記コンピュータにより受け取るステップと、
前記デバイス通知メッセージに基づき、前記1つまたは複数の物理コントローラを、前記コンピュータにより識別するステップと
を含む、
請求項17記載の方法。
The method further
A step of receiving a device notification message from the one or more physical controllers by the computer, and
A step of identifying the one or more physical controllers by the computer based on the device notification message.
17. The method of claim 17.
JP2020002854A 2014-10-02 2020-01-10 Programming automation in a 3D graphic editor with tightly coupled logic and physics simulation Active JP6931099B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020002854A JP6931099B2 (en) 2014-10-02 2020-01-10 Programming automation in a 3D graphic editor with tightly coupled logic and physics simulation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017517718A JP2018501532A (en) 2014-10-02 2014-10-02 Automation programming in 3D graphic editors using tightly coupled logic and physical simulation
JP2020002854A JP6931099B2 (en) 2014-10-02 2020-01-10 Programming automation in a 3D graphic editor with tightly coupled logic and physics simulation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017517718A Division JP2018501532A (en) 2014-10-02 2014-10-02 Automation programming in 3D graphic editors using tightly coupled logic and physical simulation

Publications (2)

Publication Number Publication Date
JP2020074151A JP2020074151A (en) 2020-05-14
JP6931099B2 true JP6931099B2 (en) 2021-09-01

Family

ID=70610178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020002854A Active JP6931099B2 (en) 2014-10-02 2020-01-10 Programming automation in a 3D graphic editor with tightly coupled logic and physics simulation

Country Status (1)

Country Link
JP (1) JP6931099B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272844A (en) * 1995-03-30 1996-10-18 Omron Corp Device and method for supporting production equipment
DE10348563B4 (en) * 2002-10-22 2014-01-09 Fisher-Rosemount Systems, Inc. Integration of graphic display elements, process modules and control modules in process plants
US8655461B2 (en) * 2010-05-25 2014-02-18 Siemens Product Lifecycle Management Software Inc. Method, system, and non-transitory computer readable storage medium for generating code for a closed-loop controller

Also Published As

Publication number Publication date
JP2020074151A (en) 2020-05-14

Similar Documents

Publication Publication Date Title
CN107077339B (en) Programming automation in a 3D graphics editor with tightly coupled logic and physics simulations
US11816309B2 (en) User interface logical and execution view navigation and shifting
CN102227692B (en) Efficient design and configuration of elements in process control system
EP3798757B1 (en) System and method for developing industrial applications
US8655461B2 (en) Method, system, and non-transitory computer readable storage medium for generating code for a closed-loop controller
CN103559153B (en) Data resource identity
EP3819733A1 (en) Creation of a digital twin from a mechanical model
CN105467858A (en) Graphical integrated development environment for control program of robot
US20170053047A1 (en) Programming automation sensor applications using simulation
KR20180100276A (en) Apparatuses, systems, and methods for providing a visual program for machine vision systems
US20220156433A1 (en) Industrial network communication emulation
US11675936B2 (en) Unifying multiple simulation models
EP3673334B1 (en) Method for engineering autonomous system with reusable skills
JP6931099B2 (en) Programming automation in a 3D graphic editor with tightly coupled logic and physics simulation
Bartelt et al. More than a Mockup: SmartComponents: reusable fully functional virtual components from scratch
Rocha et al. 3D virtual system of an Apple sorting process using hardware-in-the-loop technique
EP3974928B1 (en) Wiring diagram manager and emulator
Blubaugh et al. Building a Simple Virtual Rover
Kazała Lusci nski, S.; Straczy nski, P.; Taneva, A. An Enabling Open-Source Technology for Development and Prototyping of Production Systems by Applying Digital Twinning. Processes 2022, 10, 21
van Ginneken et al. Design of a Digital Twin for the Sorting workstation of a Festo production line
Tato-Sánchez-Del-Valle et al. Simulation with CAD in Robotics. Free Software Versus Proprietary Software in University Teaching
Flake et al. Customer-oriented systems design through virtual prototypes
US20110307083A1 (en) System and Method for Physics-Oriented System Configuration
Sacco et al. Experiences in virtual factory prototype: modular plants design and simulation
Lugarić et al. Object-oriented programming model for synthesis of domain-specific application development environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210714

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210812

R150 Certificate of patent or registration of utility model

Ref document number: 6931099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250