(57)【要約】      （修正有）【課題】抽象化層を介してオートメーション機能を実施するためのシステムを提供する。【解決手段】システムは、制御アプリケーションと、ランタイム環境において実行可能な、オートメーション設備抽象化フレームワーク２００とを含む。制御アプリケーションは、１つまたは複数のオートメーション機能を使用するオートメーション設備と通信するように設計されている。各オートメーション機能は、１以上の非設備依存の命令を含む。オートメーション設備抽象化フレームワーク２００は、制御アプリケーションの実行中に、非設備依存の命令と、オートメーション設備の特定のユニットの指示とを受信し、非設備依存の命令を、オートメーション設備の上記特定のユニットにおいて実行可能な、設備固有のオートメーション命令に変換し、オートメーション設備の上記特定のユニットに送信する。【選択図】図２
2020009451.tif 000002
【特許請求の範囲】
【請求項１】
抽象化層を介してオートメーション機能を実施するためのシステムであって、
１つまたは複数のオートメーション機能を使用するオートメーション設備と通信するように設計された制御アプリケーションであって、それぞれのオートメーション機能は、１つまたは複数の非設備依存の命令を含む、制御アプリケーションと、
ランタイム環境において実行可能な、オートメーション設備抽象化フレームワークと、
を含み、
前記オートメーション設備抽象化フレームワークは、
前記制御アプリケーションの実行中に、非設備依存の命令と、オートメーション設備の特定のユニットの指示とを受信して、
前記非設備依存の命令を、前記オートメーション設備の前記特定のユニットにおいて実行可能な、設備固有のオートメーション命令に変換し、
前記設備固有のオートメーション命令を、前記オートメーション設備の前記特定のユニットに送信する
ように構成されている、
システム。
【請求項２】
当該システムは、前記オートメーション設備の前記特定のユニットにインストールされたプラグインコンポーネントをさらに含み、
前記プラグインコンポーネントは、前記オートメーション設備の前記特定のユニットと、前記オートメーション設備抽象化フレームワーク間との通信を容易にする、
請求項１記載のシステム。
【請求項３】
（ａ）前記オートメーション設備の前記特定のユニットは、所定のオペレーティングシステムを実行するコントローラによって制御されており、
（ｂ）前記オートメーション設備抽象化フレームワークは、前記非設備依存の命令を、前記オペレーティングシステムにおいて実行可能な設備固有の命令に変換するためのオペレーティングシステム抽象化コンポーネントを含む、
請求項１記載のシステム。
【請求項４】
（ａ）前記オートメーション設備の前記特定のユニットは、所定の通信プロトコルを使用する所定のネットワークを介してアクセス可能であり、
（ｂ）前記オートメーション設備抽象化フレームワークは、前記非設備依存の命令を、前記通信プロトコルを使用する前記ネットワークを介して送信するための通信抽象化コンポーネントを含む、
請求項１記載のシステム。
【請求項５】
前記オートメーション設備抽象化フレームワークは、製品構成コンポーネントを含み、
前記製品構成コンポーネントは、グラフィカルユーザインターフェース（ＧＵＩ）を介してユーザによって要求された機能に基づいて、前記オートメーション機能を自動的に作成するように構成されている、
請求項１記載のシステム。
【請求項６】
抽象化層を介してオートメーション機能を実施するためのシステムであって、
１つまたは複数のオートメーション機能を使用するオートメーション設備と通信するように設計された制御アプリケーションであって、それぞれのオートメーション機能は、１つまたは複数の非生産環境依存の命令を含む、制御アプリケーションと、
ランタイム環境において実行可能な、生産抽象化フレームワークと、
を含み、
前記生産抽象化フレームワークは、
前記制御アプリケーションの実行中に、非生産環境依存の命令と、ターゲット生産環境の指示とを受信して、
前記非生産環境依存の命令を、前記ターゲット生産環境におけるオートメーション設備の特定のユニットにおいて実行可能な、生産環境固有のオートメーション命令に変換し、
前記生産環境固有のオートメーション命令を、前記オートメーション設備の前記特定のユニットに送信する
ように構成されている、
システム。
【請求項７】
（ａ）前記オートメーション設備の前記特定のユニットは、前記ターゲット生産環境における特定のステーションと相互作用し、
（ｂ）前記生産抽象化フレームワークは、前記非生産環境依存の命令の少なくとも一部を、前記ターゲット生産環境における前記特定のステーションと相互作用するためのステーション固有の命令に変換するように構成された、ステーション抽象化コンポーネントを含む、
請求項６記載のシステム。
【請求項８】
（ａ）前記ターゲット生産環境は、特定の地理的位置にあり、
（ｂ）前記生産抽象化フレームワークは、前記非生産環境依存の命令の少なくとも一部を、前記特定の地理的位置にある１つまたは複数のリソースにアクセスするための位置固有の命令に変換するように構成された、位置抽象化コンポーネントを含む、
請求項６記載のシステム。
【請求項９】
（ａ）前記ターゲット生産環境は、特定の製品を生産するように構成されており、
（ｂ）前記生産抽象化フレームワークは、前記非生産環境依存の命令の少なくとも一部を、前記特定の製品と相互作用するための製品固有の命令に変換するように構成された、位置抽象化コンポーネントを含む、
請求項６記載のシステム。
【請求項１０】
前記生産抽象化フレームワークは、製品構成コンポーネントを含み、
前記製品構成コンポーネントは、グラフィカルユーザインターフェース（ＧＵＩ）を介してユーザによって要求された機能に基づいて、前記オートメーション機能を自動的に作成するように構成されている、
請求項６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本出願は、２０１８年７月１１日に出願された米国仮出願第６２／６９６４７０号（U.S. Provisional Application Serial No. 62/696,470）の利益を主張するものであり、その全体が参照により本明細書に組み込まれる。
【０００２】
技術分野
本発明は、概して、プラットフォームに依存しない方法でオートメーション機能を実行することを可能にする抽象化層を利用した、システム、方法、および装置に関する。例えば、複数の異なるオートメーションシナリオに対するコントローラの柔軟性を高めるために、本開示による技術を適用することができる。
【０００３】
背景
オートメーションシステムは、機械および他のコンポーネントの動作を体系的に制御するために使用される。典型的なオートメーションシステムは、通常、複数のベンダからの設備を含む。これらの設備のそれぞれの部分は、ベンダ固有のプログラミング言語、ランタイム環境、およびプロトコルを使用している場合がある。このことによって、複数の設備を統合するタスクが困難になる。例えば、ある特定のベンダからの設備において実行するように設計されたオートメーション機能は、他のベンダからの設備では実行できない場合がある。システムの設計および統合をさらに複雑にすることとして、オートメーションシステムの他のコンポーネントに連絡するために、設備が通信用または他の動作用に使用可能なプロトコルが、多数存在する。従来のシステムでは、これらのプロトコルのためのサポートを、オートメーション機能自体の内部において「ハードコーディング」する必要があり、これによってオートメーション機能は、特定のシステムの実装にさらに依存することとなってしまう。
【０００４】
オートメーション機能を開発および展開するために必要とされる時間を短縮するために、基盤となるオートメーションシステムおよびオートメーション設備の実装細部を抽象化するフレームワークを提供することが望ましい。
【０００５】
概要
本発明の実施形態は、ソフトワイヤードされたオートメーション機能を用いて、ドメイン全体におけるオートメーション設備および生産レベルの細部を抽象化するフレームワークに関連する方法、システム、および装置を提供することにより、上記の欠点および短所のうちの１つまたは複数に対処し、これを克服するものである。
【０００６】
いくつかの実施形態によれば、抽象化層を介してオートメーション機能を実施するためのシステムは、制御アプリケーションと、ランタイム環境において実行可能な、オートメーション設備抽象化フレームワークとを含む。制御アプリケーションは、１つまたは複数のオートメーション機能を使用するオートメーション設備と通信するように設計されている。それぞれのオートメーション機能は、１つまたは複数の非設備依存の命令を含む。オートメーション設備抽象化フレームワークは、制御アプリケーションの実行中に、非設備依存の命令と、オートメーション設備の特定のユニットの指示とを受信する。オートメーション設備抽象化フレームワークは、非設備依存の命令を、オートメーション設備の上記特定のユニットにおいて実行可能な、設備固有のオートメーション命令に変換する。次いで、これらの設備固有のオートメーション命令は、オートメーション設備の上記特定のユニットに送信され得る。
【０００７】
他の実施形態によれば、抽象化層を介してオートメーション機能を実施するためのシステムは、制御アプリケーションと、ランタイム環境において実行可能な、生産抽象化フレームワークとを含む。制御アプリケーションは、１つまたは複数のオートメーション機能を使用するオートメーション設備と通信するように設計されている。それぞれのオートメーション機能は、１つまたは複数の非生産環境依存の命令を含む。生産抽象化フレームワークは、制御アプリケーションの実行中に、非生産環境依存の命令と、ターゲット生産環境の指示とを受信する。生産抽象化フレームワークは、非生産環境依存の命令を、ターゲット生産環境におけるオートメーション設備の特定のユニットにおいて実行可能な、生産環境固有のオートメーション命令に変換する。次いで、生産環境固有のオートメーション命令は、オートメーション設備の上記特定のユニットに送信され得る。
【０００８】
他の実施形態によれば、抽象化層を介してオートメーション機能を実施するためのシステムは、制御アプリケーションと、ランタイム環境とを含む。制御アプリケーションは、１つまたは複数のオートメーション機能を使用するオートメーション設備と通信するように設計されている。それぞれのオートメーション機能は、オートメーション設備および生産環境に依存しない命令を含む。ランタイム環境は、オートメーション設備抽象化層を含み、このオートメーション設備抽象化層は、命令の少なくとも一部を、オートメーション設備の特定のユニットにおいて実行可能な、設備固有のオートメーション命令に変換する。ランタイム環境は、生産抽象化層をさらに含み、この生産抽象化層は、命令の少なくとも一部を、ターゲット生産環境におけるオートメーション設備の特定のユニットによって実行可能な、生産環境固有のオートメーション命令に変換する。
【０００９】
本発明の追加的な特徴および利点は、添付の図面を参照しながら進められる、例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【００１０】
図面の簡単な説明
本発明の前述の態様および他の態様は、以下の詳細な説明から、添付の図面に関連させて読むと最も良好に理解される。図面には、本発明を説明する目的で、現在のところ好まれている実施形態が示されているが、本発明が、開示されている特定の手段に限定されていないことを理解すべきである。図面には、以下の図が含まれている。
【図面の簡単な説明】
【００１１】
【図１】オートメーションシステムを示す図であり、このオートメーションシステムにおいて、本発明のいくつかの実施形態が実施され得る。
【図２】いくつかの実施形態において実施され得るような、オートメーションシステムを抽象化するためのフレームワークを示す図である。
【００１２】
詳細な説明
以下の開示は、オートメーション設備を抽象化するためのフレームワークに関連する方法、システム、および装置に関する、複数の実施形態による本発明を説明するものである。以下で詳述するように、前述のフレームワークは、「オートメーション機能」の開発を可能にする。それぞれのオートメーション機能は、ジェネリックな（すなわち設備固有ではない）方法でオートメーションタスクを実施するための一連の命令を含む。本明細書で説明されるフレームワークの目的の１つは、複数の異なるコンピューティングシステムの要件を抽象化することであって、置換することではない。例えば、オートメーション設備は、ＤＤＳ、ＯＰＣ ＵＡ、またはＭＴＣｏｎｎｅｃｔのような産業標準プロトコルを実施することができる。本明細書で説明されるフレームワークは、これら複数のプロトコルの細部を１つのインターフェースに抽象化し、このインターフェースを使用して、開発者は、コードが実行されるハードウェア基盤が使用しているプロトコルには依存しないオートメーション機能を開発することが可能となる。
【００１３】
図１は、オートメーションシステム１００を示す図であり、このオートメーションシステムにおいて、本発明のいくつかの実施形態が実施され得る。この例は、１つの産業環境を、生産層１０５と、制御層１１０と、ＩＴ層１１５とに概念的に分割している。端的に言えば、生産ユニット（例えば、ユニット１０５Ａ，１０５Ｂ，１０５Ｃ，および１０５Ｄ）から受信されたデータが、制御層デバイスによってＩＴ層１１５に転送される。ＩＴ層１１５は、種々の後処理タスクおよび保存タスクを実行するシステムを含む。図１の例は、監視制御・データ取得（ＳＣＡＤＡ）サーバ（またはゲートウェイ）コンポーネント１１５Ａを含む。このコンポーネント１１５Ａによって操作者は、制御層１１０および生産層１０５のデバイスをリモートで監視および制御することが可能となる。さらに、ＳＣＡＤＡサーバコンポーネント１１５Ａは、下位層１０５，１１０からデータを収集し、その情報を処理して、統合プラント知識ウェアハウス１１５Ｂが利用できるようにする。統合プラント知識ウェアハウス１１５Ｂは、下位層１０５，１１０から受信したデータのさらなる処理および保存を提供する。統合プラント知識ウェアハウス１１５Ｂは、本発明の複数の異なる実施形態においてそれぞれ異なる機能を実行することができる。例えば、いくつかの実施形態では、統合プラント知識ウェアハウス１１５Ｂは、下位層１０５，１１０によって生成されたデータに基づいてビジネス分析部１１５Ｃをサポートするための機能を含む。
【００１４】
従来のシステムでは、それぞれの層におけるオートメーション設備は、特定のコンピューティングアーキテクチャに基づいて高度にカスタマイズされている。例えば、図１では、制御層１１０のオートメーション設備は、２つのコントローラ１１０Ｅ，１１０Ｆと、８つのフィールド機器１１０Ａ，１１０Ｂ，１１０Ｃ，１１０Ｄ，１１０Ｇ，１１０Ｈ，１１０Ｉ，および１１０Ｊとを含む。オートメーション設備のそれぞれのユニットは、潜在的に、それぞれ異なるコンピューティングアーキテクチャ（オペレーティングシステム、ネットワークプロトコルの使用およびサポート、情報モデルなど）を有する。それぞれのユニットにおいて実行可能なソフトウェアは、特にコンピューティングアーキテクチャの要件を考慮した方法で開発されなければならない。一例として、コントローラ１１０Ｅが、ある特定のオペレーティングシステムと、ある特定の一連のネットワークプロトコルとを実行する場合には、開発者は、これらの項目の各々を使用するためにソフトウェアをカスタマイズしなければならない。ソフトウェアは、コントローラ１１０Ｅのためにカスタマイズされているので、両方のコントローラが同一のコンピューティングアーキテクチャを有していない限り、このソフトウェアをコントローラ１１０Ｆにおいて簡単に再利用することはできない。
【００１５】
本明細書で説明される技術によれば、制御層１１０のオートメーション設備のそれぞれのユニットに、事前統合型プラグインをインストールして、基盤となるオートメーション設備のコンピューティングアーキテクチャのための抽象化を可能にすることができる。それぞれのプラグインは、オートメーションシステムを抽象化するフレームワークを実施する（以下で詳述する）。端的に言えば、本フレームワークによって開発者は、複数のオートメーション機能同士を接続することにより、オートメーションプログラムを作成することが可能となる。本フレームワークは、これら複数のオートメーション機能を、これら複数のオートメーション機能が実行されるオートメーション設備から分離するか、またはこれら複数のオートメーション機能が相互作用する相手のオートメーション設備から分離する。それぞれのオートメーション機能は、例えば、実際のオートメーション設備のハードウェア（例えばＰＬＣまたはＩＰＣ）、基盤となる通信プロトコル（例えばＤＤＳまたはＯＰＣ ＵＡ）、およびフィールドバスプロトコル（例えばＰｒｏｆｉｎｅｔまたはＥｔｈｅｒｎｅｔ）には依存しない。それぞれのオートメーション機能は、産業的な実行環境（例えばＩＥＣ６１１３１またはＩＥＣ６１４９９）にも依存しない。オートメーション機能とオートメーション設備との分離を容易にするために、本フレームワークのそれぞれの層に抽象化層が構築される。
【００１６】
図２は、いくつかの実施形態において実施され得るような、オートメーションシステムを抽象化するためのフレームワーク２００を示す。フレームワーク２００のコアは、ランタイム環境において実行される２つの抽象化層２１５，２２０である。抽象化層２１５，２２０が構築されると、それぞれのオートメーション機能のために記述された制御アプリケーションコードを、どんな場所でも、またいずれの場所でも、実行することが可能となる。抽象化層２１５，２２０を、例えばＰＣ上で、またはクラウドベースのコンピューティング環境で、またはベンダ固有のランタイムプラットフォーム環境上で展開することができる。抽象化層２１５，２２０は、（１つまたは複数の）オートメーション機能に対する共通のインターフェースを提供するので、オートメーション設備のいずれのユニットにおいても同じ制御コードを実行することが可能となる。
【００１７】
オートメーション設備抽象化層２１５は、コンポーネント２１５Ａ，２１５Ｂ，２１５Ｃを含み、これらのコンポーネント２１５Ａ，２１５Ｂ，２１５Ｃは、オートメーション設備２２５Ａ，２２５Ｂ，２２５Ｃ，２２５Ｄ，２２５Ｅ，２２５Ｆのそれぞれ異なる機能特性を抽象化するものである。端的に言えば、オペレーティングシステム抽象化コンポーネント２１５Ａは、オペレーティングシステムに依存している機能を抽象化する。簡単な例として、コントローラ２２５Ａは、Ｗｉｎｄｏｗｓベースのオペレーティングシステムを使用し、その一方で、コントローラ２２５Ｂは、ＵＮＩＸベースのオペレーティングシステムを使用すると仮定する。これら２つのオペレーティングシステムでは、基本的なオペレーションおよびシステムプリミティブがそれぞれ異なっている。オペレーティングシステム抽象化コンポーネント２１５Ａは、オートメーション機能からジェネリックな機能呼び出しを受信し、この機能呼び出しを、ターゲットオートメーション設備に適した、オペレーティングシステム固有の機能呼び出しに変換する。通信抽象化コンポーネント２１５Ｂも、同様の方法で動作するが、ただし、ＤＤＳ、ＯＰＣ、ＴＣＰ、ＭＱＴＴ等のような通信プロトコルとの関連において動作する。その一方で、情報抽象化コンポーネント２１５Ｃは、使用可能な複数の異なる情報モデルの間で、情報を変換する。
【００１８】
それぞれの場合において、抽象化コンポーネント２１５Ａ，２１５Ｂ，２１５Ｃは、オペレーティングシステムや通信プロトコル等のような機能を実施するわけではないということに留意すべきである。むしろ、抽象化コンポーネント２１５Ａ，２１５Ｂ，２１５Ｃは、既に存在している機能の細部を覆い隠すものである。したがって、オートメーション設備抽象化層２１５は、オートメーション機能によって要求される実際の機能を実施するわけではない。むしろ、オートメーション設備抽象化層２１５は、既存のソリューションおよび標準を事前に統合するものである。抽象化によって共通性がモデル化され、これにより、基盤となるソリューション／標準が交換可能なものとなる。これらの通信プロトコルの各々は、事前に統合されているので、開発者は、プログラミングの労力を必要とすることなく、またコンフィギュレーションの労力を殆どまたは全く必要とすることなく、全ての混合または一部を同時に使用することが可能となる。
【００１９】
オートメーション設備抽象化層２１５は、プラットフォームとは異なる。プラットフォームは、ゼロから構築され、標準またはプロプラエタリ技術に基づくものである。すなわち、プラットフォームは、上にしか拡張することできない。逆に、オートメーション設備抽象化層２１５は、オートメーション機能と、これらの機能によって使用されるオートメーション設備との間に位置している。オートメーション設備抽象化層２１５によって、オートメーション機能と設備との間で物事を交換可能にすることが可能となる。プラットフォームと同様に、オートメーション設備抽象化層２１５も、上下に拡張することができるが、プラットフォームとは異なり、オートメーション設備抽象化層２１５は、新しいオートメーション機能および／またはオートメーション設備をサポートするために左右に拡張することもできる。
【００２０】
生産抽象化層２２０も、オートメーション設備抽象化層２１５と同様の方法で動作するが、ただし、生産環境の細部との関連において動作する。ステーション抽象化コンポーネント２２０Ａは、ステーションの組み立てプロセスおよびその他の動作の細部を抽象化するという点で、オペレーティングシステム抽象化コンポーネント２１５Ａに類似している。位置抽象化コンポーネント２２０Ｂは、生産環境に関するあらゆる位置固有の細部を抽象化し、製品抽象化コンポーネント２２０Ｃは、生産される製品に関する細部を抽象化する。
【００２１】
開発者は、最適な開発環境２０５を介してエンジニアリング層２１０で動作する。概して、最適な開発環境２０５を、（例えばＣ、Ｊａｖａ、Ｍａｔｌａｂ、パイソン等をサポートする）当技術分野で公知の任意の開発環境とすることができる。例えば、１つの実施形態では、最適な開発環境２０５は、シーメンス社の完全統合オートメーション（ＴＩＡ：Totally Integrated Automation）ポータルである。エンジニアリング層２１０は、コンポーネント２１０Ａ，２１０Ｂ，２１０Ｃを含み、これらのコンポーネント２１０Ａ，２１０Ｂ，２１０Ｃは、オートメーション設備抽象化層２１５および生産抽象化層２２０の能力を利用するプログラムの生成を容易にする。
【００２２】
生産構成コンポーネント２１０Ａは、１つまたは複数のオートメーション機能を使用するプログラムを作成することを可能にする。複数のオートメーション機能同士を接続することによって、制御アプリケーション、または他のオートメーションプログラムを実施することができる。それぞれのオートメーション機能は、一緒に「ソフトワイヤード」されている。つまり、機能呼び出しを介して複数のオートメーション機能同士を直接的にリンクさせるのではなく、オートメーション設備抽象化層２１５と生産抽象化層２２０とを中継所として使用することにより、ソフトウェアアーキテクチャ全体が時間の経過と共に進化するにつれて、柔軟性を高めることが可能となる。さらに、オートメーション機能は、プラットフォームに依存していないので、再利用可能なオートメーション機能の抽象化層２１５，２２０をサポートする、例えばオンライン市場で作成可能および入手可能なあらゆる設備において、これらのオートメーション機能を実行することが可能である。いくつかの実施形態では、生産構成コンポーネント２１０Ａは、複数のオートメーション機能同士をソフトワイヤードさせることができる「ドラッグアンドドロップ」または類似の機能を有するＧＵＩを含むことができ、これによって、オートメーションアプリケーションの迅速な開発が容易になる。
【００２３】
生産構成コンポーネント２１０Ａを介してオートメーションプログラムが開発されると、アプリケーションパッカーコンポーネント２１０Ｂは、オートメーション設備の１つまたは複数のユニットにおいてこのプログラムを展開する。このアプリケーションパッカーコンポーネント２１０Ｂは、複数のオートメーション機能を結合して、オートメーション設備のターゲットユニットにおいて実行可能な１つまたは複数のファイルにするものである。いくつかの実施形態では、ユーザは、適切なコンパイラ等を識別することができるように、アプリケーションパッカーコンポーネント２１０Ｂにターゲットユニットを直接的に提供することができる。他の実施形態では、アプリケーションパッカーコンポーネント２１０Ｂは、オートメーション設備が動作しているシステムを記述しているコンフィギュレーションファイルに基づいて、ターゲットコンピュータを自動的に検出することができる。
【００２４】
生産環境におけるオートメーション設備において表示可能なＧＵＩおよび他のＨＭＩを生成するために、ヒューマンマシンインターフェース（ＨＭＩ）生成コンポーネント２１０Ｃを使用することができる。ＨＭＩ生成コンポーネント２１０Ｃは、オートメーション機能を分析して、どの情報を、ＨＭＩを介してユーザに表示すべきかを決定する。いくつかの実施形態では、開発者は、出力されるべき値を指示するために、特定のコードをオートメーション機能に追加することができる。例えば、１つの実施形態では、ＨＭＩを介して出力されるべき開発者を許可する型定義が存在する（例えば、整数を宣言する「ｈｍｉ＿ｉｎｔｅｇｅｒ」）。他の実施形態では、印刷ステートメントと同様の方法で機能する機能呼び出しを使用することができる。ＨＭＩ生成コンポーネント２１０Ｃは、コードを解析してこれらの項目を検出し、それに応じてＨＭＩを生成する。いくつかの実施形態では、ＨＭＩ生成コンポーネント２１０Ｃは、ＨＭＩを生成する際に、事前に生成された複数のテンプレートを使用する。ＨＭＩ生成コンポーネント２１０Ｃによって、例えば、表示しなければならない値の型に基づいて、テンプレートを選択することができる。例えば、３つの整数値に対して１つのテンプレートを事前に生成することができる。すなわち、オートメーション機能が３つの整数値の表示を要求していることを、ＨＭＩ生成コンポーネント２１０Ｃが発見した場合に、このテンプレートを利用することができる。ＨＭＩが生成されると、例えば、ＨＭＩ生成コンポーネント２１０Ｃとディスプレイデバイス（図２には図示せず）との間の接続を介して、このＨＭＩを展開することができる。代替的に、アプリケーションパッカーコンポーネント２１０Ｂを使用して、ＨＭＩをパッケージに含めることができ、このパッケージを、生産環境におけるディスプレイユニットに展開することができる。
【００２５】
オートメーション設備２２５Ａ，２２５Ｂ，２２５Ｃ，２２５Ｄ，２２５Ｅ，２２５Ｆのそれぞれのユニットは、プラグインコンポーネント（図２では「ＰＩ」とラベル付けされている）を含む。それぞれのプラグインコンポーネントは、オートメーション設備の特定のユニットにインストールされており、オートメーション設備のこの特定のユニットと、オートメーション設備抽象化層２１５および生産抽象化層２２０を実行しているランタイム環境との間の通信を容易にする。いくつかの実施形態では、ランタイム環境は、オートメーション設備の特定のユニット自体において実行される。例えば、コントローラ２２５Ａは、ランタイム環境を提供するアプリケーションを実行することができる。他の実施形態では、ランタイム環境を、１つまたは複数のネットワークを介してオートメーション設備の特定のユニットに接続されたコンピューティングシステム上で実行することができる。
【００２６】
ランタイム環境を実施するために、種々の技術を使用することができる。例えば、いくつかの実施形態では、ランタイム環境は、オートメーション設備の特定のユニットおよび生産環境のためにカスタマイズされた仮想マシンを含む。複数のオートメーション機能をコンパイルして、仮想マシンにおいて実行可能な１つのアプリケーションにすることができる。次いで、仮想マシンは、オートメーション設備抽象化層２１５および生産抽象化層２２０の機能を使用して、このアプリケーションのそれぞれ命令を解釈することができ、必要に応じて変換することができる。代替的に、仮想マシンは、ジャストインタイム（ＪＩＴ）コンパイラを使用してもよく、このジャストインタイム（ＪＩＴ）コンパイラは、アプリケーションのコードをコンパイルして、ランタイム環境を実行しているオートメーション設備において実行可能なネイティブマシンコードにする。ＪＩＴコンパイラがコンパイルプロセスを実行するときには、ＪＩＴコンパイラは、必要に応じて、オートメーション設備抽象化層２１５および生産抽象化層２２０の機能を使用して、任意の設備固有のオートメーション命令、または任意の生産環境固有の命令を挿入する。
【００２７】
いくつかの実施形態では、オートメーション機能（ＡＦ）は、要求に応じて増分的かつ独立的にダウンロードされる。したがって、アプリケーションとは、所与の時点における全ての展開されたＡＦの集合体であるとして理解することができる。つまり、プログラマがＡＦを使用することを希望する場合には、プログラマは、説明（例えば名前、署名等）を入力し、次いで、リモートソースから対応するＡＦを取得することができる。いくつかの実施形態では、ランタイム時に、オンデマンド展開の概念を適用することができる。例えば、オートメーション設備に対して展開されるコードは、ＡＦ自体のためのオブジェクトコードを含まないことがある。むしろ、このコードは、ＡＦへの参照を含むことができ、このＡＦへの参照を、ランタイム中に解析して、リモートソースからＡＦを取得するために使用することが可能である。いくつかの実施形態では、ＡＦへの参照を、明示的なものとすることができる（例えばネットワークアドレス）。他の実施形態では、この参照は、ＡＦの名前または他の識別情報のみを含む。その場合、ランタイム環境のコンポーネント（例えば前述の仮想マシン）は、コンポーネントが、識別されたＡＦをリモートリソースから取得できるようにする機能を含むことができる。例えば、上述した仮想マシンを、ＡＦを含んでいるサーバのリストによって構成することができる。ＡＦを検出すると、ＡＦを取得するためにサーバが接続される。取得されると、ランタイム環境は、指定されたとおりにＡＦを実行することができる。
【００２８】
プログラマブルロジックコントローラによって使用される、本明細書で説明されるプロセッサは、１つまたは複数の中央処理ユニット（ＣＰＵ）、グラフィック処理ユニット（ＧＰＵ）、または当技術分野で公知の他の任意のプロセッサを含むことができる。より一般的には、本明細書で使用されているプロセッサは、コンピュータ可読媒体上に記憶された機械可読命令を実行してタスクを実行するための装置であり、ハードウェアおよびファームウェアのうちいずれか１つまたはこれらの組み合わせを含むことができる。プロセッサは、タスクを実行するために実行可能な機械可読命令を記憶するメモリを含むこともできる。プロセッサは、情報に基づいて、実行可能なプロシージャまたは情報装置による使用のための情報を操作、解析、変更、変換、または伝送することによって、かつ／または出力装置へ当該情報をルーティングすることによって動作する。プロセッサは、例えば、コンピュータ、コントローラ、またはマイクロプロセッサの能力を使用し、または含むことができ、また、実行可能な命令を用いて、汎用コンピュータによっては実行されない特殊用途の機能の実行をプロセッサにさせることができる。プロセッサは、相互間のインタラクションおよび／または通信を可能にするように、他の任意のプロセッサと（電気的に、かつ／または実行可能な構成要素を含むものとして）結合することができる。ユーザインタフェースプロセッサまたはジェネレータは、ディスプレイイメージまたはその一部を生成するための電子回路またはソフトウェアまたは双方の組み合わせを含む公知の要素である。ユーザインタフェースは、プロセッサまたは他の装置とのユーザインタラクションを行うための１つまたは複数のディスプレイイメージを有する。
【００２９】
プログラマブルロジックコントローラおよび関連の計算インフラストラクチャを含むが、これらに限定されているわけではない、本明細書で説明される種々の装置は、本発明の実施形態に従ってプログラミングされた命令を保持し、本明細書で説明されるデータ構造、表、記録、または他のデータを有するための、少なくとも１つのコンピュータ可読媒体またはメモリを含むことができる。本明細書で使用されている「コンピュータ可読媒体」との用語は、実行のために命令を１つまたは複数のプロセッサへ供給することに関与する全ての媒体をいう。コンピュータ可読媒体は、非一時的、不揮発性の媒体、揮発性の媒体、および伝送媒体を含む多くの形態をとることができるが、これらは限定列挙ではない。不揮発性媒体の非限定的な例には、光学ディスク、ソリッドステートドライブ、磁気ディスク、および磁気光学ディスクが含まれる。揮発性媒体の非限定的な例には、ダイナミックメモリが含まれる。伝送媒体の非限定的な例には、同軸ケーブル、銅線、および光ファイバが含まれており、システムバスを構成するワイヤが含まれる。伝送媒体は、音波または光波の形態をとることもでき、例えば、無線波および赤外線データ通信中に生成される波等の形態をとることもできる。
【００３０】
本明細書で使用されている実行可能なアプリケーションは、例えばユーザコマンドまたは入力に応答して、予め決まった機能の実現をプロセッサにさせるためのコードまたは機械可読命令、例えばオペレーティングシステム、コンテキストデータ取得システム、または他の情報処理システム等のコードまたは命令を含む。実行可能なプロシージャは、コードもしくは機械可読命令のセグメント、サブルーティン、または１つもしくは複数の特定のプロセスを実行するための実行可能なアプリケーションの一部もしくはコードの他の別個のセクションである。かかるプロセスは、入力データならびに／もしくはパラメータの受信、受信した入力データについての演算の実行、および／または受信した入力パラメータに応答する関数の実行と、その結果の出力データならびに／もしくはパラメータの出力とを含み得る。
【００３１】
本明細書の機能およびプロセスステップは自動的に実行することができ、その全部または一部を、ユーザコマンドに応答して実行することができる。自動的に実行される動作（ステップを含む）は、１つまたは複数の実行可能な命令または装置演算に応答して、ユーザによる動作の直接的な開始無しで実行される。
【００３２】
本願において、「含む」や「有する」との用語、およびこれらに派生する用語は包含を意味し、限定列挙ではない。「または」との用語は非排他的な用語であり、「および／または」という意味である。「・・・と関連する」ならびに「それと関連する」との文言、およびそれらから派生した文言は、「・・・を含む」、「・・・に含まれる」、「・・・とやりとりする」、「・・・を包含する」、「・・・に包含されている」、「・・・に接続している」、「・・・に結合している」、「・・・と通信可能である」、「・・・と協働する」、「・・・と交互に配置されている」、「・・・と並んで配置されている」、「・・・に近接している」、「・・・と接している」、「・・・を有する」、「・・・の特性を有する」等の意味であると解し得る。また「コントローラ」との用語は、少なくとも１つの動作を制御するあらゆる装置、システムまたはその一部を意味するものであり、かかる装置がハードウェアによって具現化されるか、ファームウェアによって具現化されるか、ソフトウェアによって具現化されるか、またはこれらのうち少なくとも２つの何らかの組み合わせで具現化されるかは問わない。具体的にどのようなコントローラと関連する機能であっても、ローカルまたはリモートかを問わず、その機能を集中型または分散型とすることができることに留意すべきである。特定の用語および文言の定義は、本明細書全体についてなされたものであり、当技術分野における通常の知識を有する者であれば、上述の定義の文言の従来または将来の、ほとんどではないにしても多くの使用事例に、上述の定義が適用されることが明らかである。一部の用語は、非常に幅広い種々の実施形態を含むことがあるが、そのような用語を特定の実施形態に明示的に限定し得るのは、添付の特許請求の範囲である。
【００３３】
各図のシステムおよびプロセスは、排他的なものではない。本発明の原理に従って同一の目的を果たすために、他のシステム、プロセスおよびメニューを導き出すことができる。特定の実施形態を参照して本発明を説明したが、本明細書で図示および説明される実施形態および変形態様は、説明のためだけのものであると解すべきである。当業者であれば、本発明の範囲を逸脱することなく、現在の構成に改良を施すことが可能である。本明細書で説明される種々のシステム、サブシステム、エージェント、管理部およびプロセスは、ハードウェア構成要素、ソフトウェア構成要素、および／またはその組み合わせを用いて実装することができる。本願クレームのいかなる要素も、当該要素が明示的に「・・・ための手段」との文言を用いて言及されていない限り、米国法律第３５号第１１２条第６項の規定を受けると解すべきものではない。
【図１】
2020009451.tif 000003
【図２】
2020009451.tif 000004
【外国語明細書】
2020009451.tif 000005
2020009451.tif 000006
2020009451.tif 000007
2020009451.tif 000008
2020009451.tif 000009
2020009451.tif 000010
2020009451.tif 000011
2020009451.tif 000012
2020009451.tif 000013
2020009451.tif 000014
2020009451.tif 000015
2020009451.tif 000016
2020009451.tif 000017
2020009451.tif 000018
2020009451.tif 000019
2020009451.tif 000020
2020009451.tif 000021
2020009451.tif 000022