(57)【要約】  コントローラシステムには、ＣＰＵモジュールと、１つ以上のテクノロジモジュールと、バックプレーンバスとが含まれる。ＣＰＵモジュールは、制御プログラムを実行するプロセッサを有する。テクノロジモジュールには、ＡＩ（artificial intelligence）アクセラレータプロセッサが含まれており、このＡＩ（artificial intelligence）アクセラレータプロセッサは、（ａ）１つ以上の機械学習モデルに関連した入力データ値を受信し、（ｂ）１つ以上の出力データ値を生成するために入力データ値に機械学習モデルを適用するように構成されている。バックプレーンバスにより、ＣＰＵモジュールとテクノロジモジュールとが接続される。テクノロジモジュールにより、バックプレーンバスを介してプロセッサに出力データ値が転送され、プロセッサにより、制御プログラムの実行中に出力データ値が使用される。
2021534506.tif 000002
【特許請求の範囲】
【請求項１】
制御プログラムを実行するプロセッサを有するＣＰＵモジュールと、
ＡＩアクセラレータプロセッサを含む１つ以上のテクノロジモジュールであって、前記ＡＩアクセラレータプロセッサは、（ａ）１つ以上の機械学習モデルに関連した入力データ値を受信し、（ｂ）１つ以上の出力データ値を生成するために入力データ値に機械学習モデルを適用するように構成されている、１つ以上のテクノロジモジュールと、
前記ＣＰＵモジュールおよび前記テクノロジモジュールを接続するバックプレーンバスと、
を有し、
前記テクノロジモジュールにより、前記バックプレーンバスを介して前記プロセッサに前記出力データ値が転送され、前記プロセッサにより、前記制御プログラムの実行中に前記出力データ値が使用される、
コントローラシステム。
【請求項２】
前記出力データ値は、前記バックプレーンバスを介し、スキャンサイクルにしたがい、１つ以上の付加的な入力または出力と同期して前記制御プログラムに転送される、請求項１記載のコントローラシステム。
【請求項３】
前記入力データ値は、１つ以上のデバイスに関連付けられており、それぞれのテクノロジモジュールには、前記デバイスとの直接的な接続を容易にする１つ以上の入力／出力ポートが含まれている、請求項１記載のコントローラシステム。
【請求項４】
それぞれのテクノロジモジュールにはさらに、前記デバイスから受信したデータに基づき、前記機械学習モデルに対する前記入力データ値を生成するように構成された前処理コンポーネントが含まれている、請求項３記載のコントローラシステム。
【請求項５】
それぞれのデバイス専用の入力／出力ポートは、前記入力データ値を前記テクノロジモジュールに転送するための入力ポートと、前記出力データ値から導出される制御命令を前記デバイスに転送するための出力ポートとを有する、請求項４記載のコントローラシステム。
【請求項６】
前記入力ポートは、前記デバイスと前記テクノロジモジュールとの間のＵＳＢ接続に対応する、請求項５記載のコントローラシステム。
【請求項７】
前記出力ポートは、前記デバイスと前記テクノロジモジュールとの間のイーサネット接続に対応する、請求項５記載のコントローラシステム。
【請求項８】
さらに、前記ＣＰＵモジュールおよび前記テクノロジモジュールを前記バックプレーンバスに接続するための複数のプラグを備えたシャーシを有する、請求項１記載のコントローラシステム。
【請求項９】
前記ＣＰＵモジュールおよび前記テクノロジモジュールにはそれぞれ、前記バックプレーンバスを形成する相互接続プラグが含まれている、請求項１記載のコントローラシステム。
【請求項１０】
ＣＰＵモジュールおよびテクノロジモジュールを有するコントローラシステム内で機械学習モデルを実行する方法であって、
前記テクノロジモジュールにより、前記コントローラシステムの外部のデバイスによって作成されるデータに基づき、１つ以上の入力データ値を生成するステップと、
前記テクノロジモジュール内のＡＩアクセラレータにより、１つ以上の出力データ値を生成するために１つ以上の機械学習モデルを前記入力データ値に適用するステップと、
前記テクノロジモジュールにより、前記ＣＰＵモジュールおよび前記テクノロジモジュールを接続するバックプレーンに前記出力データ値を書き込むステップと、
前記ＣＰＵモジュールにより、前記バックプレーンから前記出力データ値を読み出すステップと、
前記ＣＰＵモジュールにより、前記出力データ値を利用するアプリケーションプログラムを実行するステップと、
を含む、方法。
【請求項１１】
前記アプリケーションプログラムにより、前記デバイスを制御するために前記出力データ値を使用する、請求項１０記載の方法。
【請求項１２】
前記入力データ値を生成するステップは、
前記テクノロジモジュールにより、前記コントローラシステムの外部の前記デバイスによって作成される前記データを読み出すステップと、
前記テクノロジモジュールにより、一連のルールまたは関数を使用して前記データを前記入力データ値に変換するステップと、
を含む、請求項１０記載の方法。
【請求項１３】
前記テクノロジモジュールにより、前記出力データ値に基づいて、前記デバイスに対する１つ以上の制御命令を生成するステップと、
前記テクノロジモジュールにより、前記制御命令を前記デバイスに転送するステップと、
をさらに含む、請求項１０記載の方法。
【請求項１４】
前記ＣＰＵモジュールにより、前記出力データ値に基づいて、前記デバイスに対する１つ以上の制御命令を生成するステップと、
前記ＣＰＵモジュールにより、前記制御命令を前記デバイスに転送するステップと、
をさらに含む、請求項１０記載の方法。
【請求項１５】
制御システムをプログラミングする方法であって、
オートメーションプログラムをプログラミングするためのブロックベースのエディタを含むＧＵＩを表示するステップと、
１つ以上のユーザコマンドに基づき、前記ＧＵＩに表示される機能ブロックに機械学習モデルの視覚的な表現を挿入するステップと、
前記機械学習モデルの入力および出力を定義する、前記機械学習モデルの型シグネチャを識別するステップと、
前記機械学習モデルの前記入力および前記出力に基づき、前記機能ブロックの１つ以上の入力および出力を自動的に定義するステップと、
前記機能ブロックの少なくとも１つの前記入力に入力ソースを接続するステップと、
前記機能ブロックの１つ以上の出力を付加的な機能ブロックに接続するステップと、
前記制御システムによって実行可能なコードを生成するために前記機能ブロックをコンパイルするステップと、
を含む、方法。
【請求項１６】
前記機能ブロックを前記ＧＵＩの第１領域に表示し、前記ＧＵＩの第２領域から前記機能ブロックに前記機械学習モデルの前記視覚的な表現をドラッグすることにより、前記視覚的な表現を前記機能ブロックに挿入する、請求項１５記載の方法。
【請求項１７】
前記機械学習モデルは、テンソルフローモデルである、請求項１５記載の方法。
【請求項１８】
前記コードを前記制御システム内のテクノロジモジュールにデプロイするステップをさらに含む、請求項１５記載の方法。
【請求項１９】
制御プログラムを実行するプロセッサを有するＣＰＵモジュールと、
ＡＩアクセラレータプロセッサを有する１つ以上のテクノロジモジュールであって、前記ＡＩアクセラレータプロセッサは、（ａ）１つ以上のデバイスに関連した入力データ値を受信し、（ｂ）１つ以上の出力データ値を生成するために前記入力データ値に１つ以上の機械学習モデルを適用するように構成されている、１つ以上のテクノロジモジュールと、
前記ＣＰＵモジュールと前記テクノロジモジュールとの間でデータを交換するインタフェースモジュールと、
を有し、
前記テクノロジモジュールにより、前記インタフェースモジュールを介して前記プロセッサに前記出力データ値が転送され、前記プロセッサにより、前記制御プログラムの実行中に前記出力データ値が使用される、
コントローラシステム。
【請求項２０】
第１制御プログラムを実行するプロセッサを有するＣＰＵモジュールと、
ＡＩアクセラレータプロセッサを有する１つ以上のテクノロジモジュールと、
を有し、
前記ＡＩアクセラレータプロセッサは、
１つ以上のデバイスに関連した入力データ値を受信し、
１つ以上の出力データ値を生成するために１つ以上の機械学習モデルを前記入力データ値に適用し、
前記出力データ値に基づいて、前記デバイスに対する１つ以上の制御命令を生成するために第２制御プログラムを実行し、
前記テクノロジモジュールの１つ以上の入力／出力ポートを介し、第１データ転送速度で前記デバイスに前記制御命令を転送し、
バックプレーンバスまたはインタフェースモジュールを介し、前記第１データ転送速度よりも遅い第２データ転送速度で前記ＣＰＵモジュールに状態メッセージを転送する、  ように構成されている、
コントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、プログラマブルロジックコントローラ（ＰＬＣ：programmable logic controller）および他の制御システムに使用可能なＡＩアクセラレーションモジュールに関し、また関連した方法と、システムと、装置とに関する。開示される技術は、例えば、プログラマブルコントローラおよび高速の入力を生成する複数のデバイスが使用されるさまざまな複合型工業環境に適用可能である。
【０００２】
技術背景
第４次産業革命は、デジタル革命を基礎にして構築されており、ＡＩ（artificial intelligence）、ロボティックス、ＩｏＴ（internet of things）などを含めた多くの新興技術によって規定される。その目的は、新しいレベルのアプリケーションを可能することであり、システムは、その環境におけるさまざまな変化に対してフレキシブルになり、セットアップまたは操作のためにマンパワーをより必要としなくなり、したがってコストが節約される。例えば、一アプリケーションにおいて、移動ロボットは、必要に応じて加工物を１つの機械から別の１つの機械に搬送可能である。１つの機械が故障した場合、これらのシステムは、次に必要な作業を実行可能な別のシステムに加工物を自動的に搬送する。全体的なワークフローは、ジャストインタイムの配送が可能になるように最適化される。別の一アプリケーションでは、複数のカメラにより、１つのプロセス、例えばペーストが導体に付着されたことを監視可能である。異常な粒子、間隙または別の問題が検出されると、この情報は、継続的な最適化のためにプロセス制御にフィードバックされる。さらに別の一アプリケーションでは、ロボットは、害をもたらす未知の対象体を収容場所から選び出す必要がある。これは、これらの対象体の３次元ＣＡＤ（computer-aided design）図面なしにかつプログラミングし直すことなく、確実に実行されるべきである。これらアプリケーションは、例えば、一式の製品を箱詰めして顧客に配送する倉庫に必要である。
【０００３】
これらのすべてのアプリケーションが有する共通点は、これらのアプリケーションが、高速データ分析用の最新のテクノロジを要することである。例えば、収容場所から選び出すアプリケーションは、３次元クラウドポイントカメラ入力に基づき、ＤｅｘＮｅｔと称されるニューラルネットワークを使用して実現可能である。ペースト付着の監視は、赤外線カメラ入力に基づく、新しいアルゴリズムによって実現可能である。移動ロボットアプリケーションには、その環境を進むために、ＬＩＤＡＲおよびカメラのような複数のセンサ入力が必要である。状態監視または予知保全のような別の複数のアプリケーションには、オーディオ、振動または別の複数の高速の入力が必要になろう。
【０００４】
高帯域幅入力データと、先進アルゴリズムの使用とに加え、これらのすべてのアプリケーションには共通であるのは、これらのアプリケーションが、それらの環境において変化するために、リアルタイムに反応することが必要になることである。したがって計算は、例えばクラウドインフラストラクチャ内ではなく、むしろデバイスにおいて実行されなければならない。また工業におけるほとんどの離散制御およびプロセス制御には、制御のためにＰＬＣ（Programmable Logic Controller）が必要である。ＰＬＣは、出力デバイスの状態を制御するために入力デバイスの状態についてのデータを連続して収集するソフトウェアを実行するように構成された専用のコンピュータ制御システムである。ＰＬＣには一般に３つの主要なコンポーネント、すなわち（揮発性メモリを含み得る）プロセッサと、アプリケーションプログラムを有する揮発メモリと、オートメーションシステムにおける別のデバイスに接続するための１つ以上の入力／出力（Ｉ／Ｏ）ポートとが含まれる。ＰＬＣにより、過酷または危険な環境における確実な動作が可能になり、リアルタイム性が保証され、冗長性およびフェイルセーフコンセプトが可能になる。製造環境に対してＰＬＣが広く使用されかつ最適化されることを考慮すると、ソリューションがＰＬＣに適切に組み込まれていることが重要である。
【０００５】
慣用のＰＬＣは、先進のアルゴリズムを実行するまたは上記の問題を扱うための十分な計算資源を提供するようには設計されていない。またＡＩベースのアプリケーションは、１つのアプリケーションに極めて特有に適合していることが多い。すなわち、性能要件に適合することでき、かつ異なる分野（例えばビデオ、オーディオ、振動、スペクトル画像など）に固有のアルゴリズムを可能にする、極めてフレキシブルな解決手段が必要である。さらにＡＩアルゴリズムのアクセラレーションは、利用可能な制御ストラテジと確実に一体化できるようにするために、ＰＬＣプログラムと同期する必要がある。この分野におけるＰＬＣの市場が大きいことを考慮すると、デバイスが後付け可能であることも、シーメンスのＴＩＡ（Total Integrated Automation）ポータルのような定着したツールがプログラミングに使用できることも重要である。そうでなければ、現在のほとんどの顧客は、その製造にこれらの新しい技術を組み込むことが困難になろう。
【０００６】
概要
本発明の複数の実施形態により、ＰＬＣ（programmable logic controller）および他の制御システムに使用可能なＡＩアクセラレーションモジュールに関連した方法、システムおよび装置が供給されることによって、上記の１つ以上の欠陥および欠点が扱われかつ克服される。
【０００７】
本発明のいくつかの実施形態によれば、コントローラシステムには、ＣＰＵモジュールと、１つ以上のテクノロジモジュールと、バックプレーンバスとが含まれる。ＣＰＵモジュールは、制御プログラムを実行するプロセッサを有する。テクノロジモジュールには、ＡＩアクセラレータプロセッサが含まれ、このＡＩアクセラレータプロセッサは、（ａ）１つ以上の機械学習モデルに関連した入力データ値を受信し、（ｂ）１つ以上の出力データ値を生成するために入力データ値に機械学習モデルを適用するように構成されている。バックプレーンバスにより、ＣＰＵモジュールおよびテクノロジモジュールが接続される。テクノロジモジュールにより、バックプレーンバスを介してプロセッサに出力データ値が転送され、このプロセッサにより、制御プログラムの実行中に出力データ値が使用される。
【０００８】
別の複数の実施形態によれば、ＣＰＵモジュールおよびテクノロジモジュールを有するコントローラシステム内で機械学習モデルを実行する方法では、テクノロジモジュールにより、コントローラシステムの外部のデバイスによって作成されるデータに基づき、１つ以上の入力データ値を生成する。テクノロジモジュール内のＡＩアクセラレータにより、１つ以上の出力データ値を生成するために、１つ以上の機械学習モデルを入力データ値に適用する。テクノロジモジュールにより、ＣＰＵモジュールおよびテクノロジモジュールを接続するバックプレーンに出力データ値を書き込み、ＣＰＵモジュールにより、バックプレーンから出力データ値を読み出す。出力データ値が受信されると、ＣＰＵモジュールにより、出力データ値を利用するアプリケーションプログラムを実行する。
【０００９】
本発明の別の一実施形態によれば、制御システムをプログラミングする方法では、オートメーションプログラムをプログラミングするためのブロックベースのエディタを含むＧＵＩ（graphical user interface）を表示する。１つ以上のユーザコマンドに基づき、ＧＵＩに表示される機能ブロックに機械学習モデルの視覚的な表現を挿入する。機械学習モデルの入力および出力を定義する、この機械学習モデルの型シグネチャを識別する。機械学習モデルの入力および出力に基づき、機能ブロックの入力および出力を自動的に定義する。機能ブロックの少なくとも１つの入力に入力ソースを接続し、付加的な機能ブロックに機能ブロックの出力を接続する。制御システムによって実行可能なコードを生成するために機能ブロックをコンパイルする。
【００１０】
本発明の別の複数の実施形態によれば、コントローラシステムには、ＣＰＵモジュールと、１つ以上のテクノロジモジュールと、ＣＰＵモジュールとテクノロジモジュールとの間でデータを交換するインタフェースモジュールとが含まれる。ＣＰＵモジュールは、制御プログラムを実行するプロセッサを有する。テクノロジモジュールは、ＡＩアクセラレータプロセッサを有し、この、ＡＩアクセラレータプロセッサは、（ａ）１つ以上のデバイスに関連した入力データ値を受信し、（ｂ）１つ以上の出力データ値を生成するために入力データ値に機械学習モデルを適用するように構成されている。テクノロジモジュールにより、インタフェースモジュールを介してプロセッサに出力データ値が転送され、このプロセッサにより、制御プログラムの実行中に出力データ値が使用される。
【００１１】
本発明の別の一実施形態によれば、コントローラシステムには、第１制御プログラムを実行するプロセッサを有するＣＰＵモジュールと、１つ以上のテクノロジモジュールとが含まれる。それぞれのテクノロジモジュールは、ＡＩ（artificial intelligence）アクセラレータプロセッサを有し、このＡＩアクセラレータプロセッサは、１つ以上のデバイスに関連した入力データ値を受信し、１つ以上の出力データ値を生成するために入力データ値に１つ以上の機械学習モデルを適用にするように構成されている。ＡＩアクセラレータプロセッサは、出力データ値に基づき、デバイスに対する制御命令を生成するために第２制御プログラムを実行する。制御命令は、テクノロジモジュールの１つ以上の入力／出力ポートを介し、第１データ転送速度でデバイスに転送される。状態メッセージは、バックプレーンバスまたはインタフェースモジュールを介し、第１データ転送速度よりも遅い第２データ転送速度でＣＰＵモジュールに伝送される。
【００１２】
本発明の付加的な特徴および利点は、添付の図面を参照して行われる、例示的な実施形態の以下の詳細な説明から明らかになろう。
【００１３】
本発明の前述の様相および別の様相は、添付の図面に関連して以下の詳細な説明を読めば、最もよく理解される。本発明を説明するために、現時点において好ましい実施形態が図面に示されているが、本発明は、開示された特定の手段に限定されないことを理解されたい。
【図面の簡単な説明】
【００１４】
【図１】本発明のいくつかの実施形態による例示的なコントローラシステムを示す図である。
【図２】いくつかの実施形態にしたがい、ＣＰＵモジュールおよびテクノロジモジュールを有するコントローラシステム内で機械学習モデルを実行する方法を示す図である。
【図３】いくつかの実施形態にしたがい、制御システムをプログラミングするワークフローを説明する図である。
【００１５】
詳細な説明
ここでは、ＡＩアプリケーション用のＰＬＣベースのアクセレーションモジュールに関連したシステム、方法および装置が説明される。より一般的にいうと、ここで説明される技術により、コントローラシステムのシャーシに直接に組み込み可能な計算モジュール（ここでは「テクノロジモジュール」と称される）を使用し、デバイスレベルでＡＩアクセレーション用のハードウェアプラットホームが可能になる。このテクノロジモジュールには、ＰＬＣ内での直接の機械学習の実行を容易にするＡＩアクセラレータプロセッサが含まれ、これにより、高速の入力を直接に処理することができ、他の入力モジュールからのデータまたはＰＬＣ変数と共に、最小のオーバヘッドで、制御環境を変更するためのＡＩベースの決定を行うことができる。
【００１６】
図１には、いくつかの実施形態にしたがい、例示的なコントローラシステム１００が示されている。「コントローラシステム」という用語は、ＰＬＣも、ＰＬＣに類似した機能を有する他のデジタル制御コンピュータも共に含むことを意図している。簡単にいうと、コントローラシステム１００には、ＣＰＵモジュール１１０と、３つのテクノロジモジュール１１５、１２０および１２５とが含まれている。それぞれのモジュール１１０、１１５、１２０、１２５は、バックプレーンバス１３０を介して接続されている。コントローラシステム１００全体は、シャーシ１０５に収容されている。一般に、ここで説明されている技術は、当該技術分野において公知の任意のモジュール式コントローラシステムを使用して実現可能である。例えば、一実施形態において、コントローラシステムは、ＳＩＭＡＴＩＣ  ＥＴ  ２００ＳＰである。
【００１７】
従来技術において一般に理解されているように、バックプレーンバス１３０は、モジュール１１０、１１５、１２０、１２５間でデータを転送するための内部データバスである。バックプレーンバス１３０を作成するためにさまざまな技術が使用可能である。例えば、一実施形態において、バックプレーンバス１３０は、シャーシ１０５の一部であり、シャーシは、モジュール１１０、１１５、１２０、１２５をバックプレーンバス１３０に接続可能にする（図１に示されていない）複数のプラグを有する。別の複数の実施形態において、モジュール１１０、１１５、１２０、１２５にはそれぞれ、バックプレーンバス１３０を形成する（図１に示されていない）相互接続プラグが含まれている。
【００１８】
ＣＰＵモジュール１１０には、「スキャンサイクル」と称される一連の操作を実行するプロセッサが含まれている。第１に、入力は、例えば、バックプレーンバス１３０、またはＣＰＵモジュール１１０内の「処理イメージ」と称されるメモリ領域から読み出される。次に、ここでは「制御プログラム」と称される実行可能なアプリケーションが、入力にロジックを適用してデバイス１３５、１４０、１４５に対する１つ以上の制御命令を生成するために実行される。次に、これらの制御命令および任意の他の出力が、デバイス１３５、１４０、１４５および／またはバックプレーンバス１３０に適宜、書き込まれる。
【００１９】
それぞれのテクノロジモジュール１１５、１２０および１２５は、ＡＩ（artificial intelligence）アクセラレータプロセッサ１１５Ａ、１２０Ａおよび１２５Ａと、デバイス１３５、１４０、１４５への直接の接続を容易にする一式の入力／出力ポート１１５Ｃ、１２０Ｃ、１２５Ｃ（例えばネットワークポート、ＵＳＢ、ＣＡＮ、アナログ入力部、チャージ入力部など）とを有する。デバイス１３５、１４０、１４５により、例えば画像、ビデオ、オーディオ信号、振動センサ値などのような、テクノロジモジュール１１５、１２０および１２５への高速の入力が提供される。これらの入力は、必ずしも高速ではないことに注意されたい。例えば、ビデオは、１秒当たりわずかに数フレームを有するが、データ転送速度はなお極めて高い。これは、多くの（例えば３０Ｈｚで）比較的緩慢に変化する（例えばピクセル毎の）センサ信号を有する測定値の単なる一例である。またいくつかの実施例において、テクノロジモジュールは、ハイスループット情報と、ビデオストリームおよびマシン状態のような緩慢なデータとを組み合わせ可能である。マシン状態（例えばＲＰＭ）は、ＣＰＵモジュール１１０または他の入力モジュールから、バックプレーンバス１３０を介して読み出し可能である。
【００２０】
それぞれのＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａ、１２５Ａは、（例えばバックプレーンバス１３０または入力／出力ポート１１５Ｃ、１２０Ｃ、１２５Ｃを介して）１つ以上のデバイス１３５、１４０、１４５に関連した入力データ値を受信するように構成されている。これらの入力データ値が受信されると、それぞれのＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａ、１２５Ａは、機械学習モデルを実行する。この機械学習モデルは、入力／出力ポート１１５Ｃ、１２０Ｃ、１２５Ｃ、バックプレーンバス１３０、または当該技術分野において公知の別の技術（例えばＳＤカード）を使用して、テクノロジモジュール１１５、１２０および１２５にアップロード可能である。
【００２１】
いくかの実施形態において、それぞれのテクノロジモジュールにはさらに、デバイス１３５、１４０、１４５から受信したデータに基づき、機械学習モデルに対する入力データ値を生成するように構成された前処理コンポーネント１１５Ｂ、１２０Ｂおよび１２５Ｂが含まれている。いくつかの例では、デバイスからのローインプットは、機械学習モデルに対する入力データ値として直接に使用可能である。しかしながら別の複数の例では、それぞれの前処理コンポーネント１１５Ｂ、１２０Ｂおよび１２５Ｂは、データを変換するために一式のルールまたは関数を使用可能である。例えば、ローアナログ信号は、入力として使用可能な時系列データを供給するためにサンプリングされることが可能である。ローアナログ時系列データ信号は、定められた期間からスペクトログラムに変換可能である。スペクトログラム表現は、長さ１秒のロー信号から、半分が重なる窓によって０．５秒毎に生成可能である。これらのスペクトログラムは、機械学習モデル用の入力になり得る。
【００２２】
特定のデバイスからのデータを変換するためのルールまたは関数は、インストールの前にそれぞれのデバイスにプリロード可能である。択一的にはルールまたは関数は、必要に応じて動的にロード可能である。例えば、一実施形態では、テクノロジモジュールのネットワークポートを介して特定のデバイスを接続するのに応じて、このテクノロジモジュールは、データを変換するためのルールまたは関数を、その特定のデバイスから、データソースからローカルに、またはコントローラシステム１００の外から取り出し可能である。
【００２３】
それぞれのＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａおよび１２５Ａは、１つ以上の出力データ値を生成するために、１つ以上の機械学習モデルを入力データ値に適用する。生成されると、テクノロジモジュール１１５、１２０および１２５により、バックプレーンバス１３０を介してＣＰＵモジュール１１０に出力データ値が転送され、ＣＰＵモジュール１１０内のプロセッサにより、制御プログラムの実行中に出力データ値が使用される。
【００２４】
一般に、当該技術分野において公知の任意のＡＩアクセラレータプロセッサをコントローラシステムにおいて使用可能である。例えば、一実施形態において、それぞれのＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａ、１２５Ａは、Ｉｎｔｅｌ  Ｍｙｒｉａｄ  Ｘである。ＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａおよび１２５Ａは、高帯域幅に対して最適化されているが低電力動作のアーキテクチャを使用する。例えば、いくつかの実施形態では、チップメモリ内のデータ転送を最小化することによって、またはニューラルネットワーク計算において大量に使用される行列の乗算を加速することによって速度を上げるアーキテクチャが使用される。別の複数の実施形態では、ニューラルネットワークプリミティブおよび共通データ前処理関数がハードウェアに実装される。これにより、ＧＰＵベースのアクセレーションのような一般的な択一的な実装に比べて、高性能の演算が、低電力プロファイルにおいて可能になる。例えば、比較すると、ＮＶＩＤＩＡｓ  Ｔｅｇｒａ  Ｘ２は、約１ＴＯＰＳで動作するが１５Ｗまでを使用し、これは、パッシブに冷却されるコントローラシステムでは実践的ではない。いくつかの実施形態では、それぞれのＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａおよび１２５Ａには、付加的なアプリケーションのフレキシビリティのために２つのＬＥＯＮ  ＣＰＵおよび１６個のＳＨＡＶＥベクトルプロセッサも含まれる。すなわち、それぞれのＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａおよび１２５Ａは、データ収集部（例えばＵＳＢまたはイーサネット）からのパイプライン処理、前処理、機械学習およびコントローラシステムのバックプレーンバス１３０への出力をフレキシブルに実装するのに必要なすべてを有する。上で説明した例は、Ｍｙｒｉａｄ  Ｘプロセッサに関連しているが、ここで説明され技術は、ＡＩアクセラレータの任意の特定のタイプには限定されないことに注意されたい。このフレキシビリティにより、サポートベクトルマシン、ランダムフォレスト、隠れマルコフモデル、主成分分析、および当該技術において一般に公知のその他のもののような、ニューラルネットワークとは別の機械学習モデルのデプロイも可能になる。
【００２５】
それぞれのＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａ、１２５Ａが、バックプレーンバス１３０を介して直接に接続されているという事実は、機械学習モデルの出力が、コントローラシステム１００において同期的に使用可能であるという利点を有する。すなわち、バックプレーンバス１３０のそれぞれサイクルにおいて、現在の出力値は、共有できかつプロセス制御に使用できる。またこのような形式であれば、ＰＲＯＦＩＮＥＴ（Process Field Net）のような他のインタフェースにバックプレーン情報を変換するインタフェースモジュールを使用することにより、テクノロジモジュール１１５、１２０、１２５は、すべてではないとしても、他のほとんどの制御システムに接続することも可能である。すなわち、このインタフェースを介して通信可能でありかつテクノロジモジュールと通信するためのインタフェース記述を有する任意のコントローラは、モジュールを利用可能である。
【００２６】
図１の例には３つのテクノロジモジュール１１５、１２０、１２５が使用されていることが示されているが、一般に、テクノロジモジュールの個数は、例えば、高速の入力の個数またはアプリケーションに必要な処理パワーに基づき、必要に応じて増やすかまたは減らすことができる。さらに、複数のテクノロジモジュールが使用される場合、それぞれのテクノロジモジュールは、異なるタスク専用であってよい。例えば、テクノロジモジュール１１５は、ＬＩＤＡＲ（Light Detection and Ranging）入力を処理可能であり、テクノロジモジュール１２０は、振動信号を処理可能であり、テクノロジモジュール１２５は、点群３次元カメラからのデータを処理可能である。テクノロジモジュール１１５、１２０からの最初の２つの入力の結果は、テクノロジモジュール１２５と共有することができ、特定のシナリオを認識するための処理に含めることができる。したがってホスト側のコントローラシステムの性能に限定されることなく、複雑かつ要求の厳しいアプリケーションを作成可能である。例えば３０個の入力／出力モジュールを有するプロセスをすでに制御しているコントローラにこのようなモジュールを加えることさえも可能である。したがってユーザは、付加的なアプリケーションに対し、高性能の入力の機械学習分析を使用して、利用可能なインストレーションを使用可能である。これにより、開発リスク、付加的なケーブリング、インストールコストなどが抑えられる。
【００２７】
引き続いて図１を参照すると、いくつかの実施形態では、入力／出力ポート１１５Ｃ、１２０Ｃおよび１２５Ｃを介して、デバイス１３５、１４０、１４５に出力値を転送可能である。別の複数の実施形態において、ＡＩアクセラレータプロセッサ１１５Ａ、１２０Ａおよび１２５Ａは、出力値に基づいて１つ以上の制御命令を導出するために使用可能であり、これらの出力命令は、次に、入力／出力ポート１１５Ｃ、１２０Ｃおよび１２５Ｃを介してデバイス１３５、１４０、１４５に転送可能である。一実施形態では、それぞれの入力／出力ポート１１５Ｃ、１２０Ｃおよび１２５Ｃは、対応するテクノロジモジュールに入力データ値を転送するための入力ポートと、デバイス１３５、１４０および１４５のうちの１つに、出力データ値から導出した制御命令を転送するための出力ポートとを有する。入力ポートおよび出力ポートは、同じネットワークプロトコルまたは異なるプロトコルを使用可能である。例えば、一実施形態において、入力ポートは、デバイスとテクノロジモジュールとの間のＵＳＢ接続に対応するのに対し、出力ポートは、デバイスとテクノロジモジュールとの間のイーサネット接続に対応する。
【００２８】
高速の入力からのこの圧縮により、コントローラシステムの比較的低速のバックプレーン接続性と共に、複雑な計算の使用が可能になる。このアプローチの利点は、高帯域幅データが、コントローラシステム１００の資源をロードしておらず、複雑な信号処理のようなタスク（例えば、カメラフィードに基づく対象体認識および追跡）が実行可能であることであり、その結果は、そのバックプレーンバス１３０を介してコントローラシステム１００との同期性が利用可能になることと、メモリのようなリソース要求がバックプレーンバス１３０の共有メモリに限定されることと、テクノロジモジュール１１５、１２０、１２５が、既存のコントローラシステムに容易に組み込み可能であり、したがって容易に後付けできることとである。バックプレーンバス１３０とは択一的に、テクノロジモジュール１１５、１２０、１２５は、ＰＲＯＦＩＮＥＴ（例えば、ＰＲＯＦＩＮＥＴインタフェースモジュールまたはＰＲＯＦＩＢＵＳインタフェースモジュール）を介するデータ交換を可能にする標準インタフェースモジュールを介して、別の任意のタイプのコントローラシステムに接続可能である。
【００２９】
図１に示した設計の１つの利点は、異なるタイプのセンサを接続して処理できることである。すなわち、市場における現在のシステム（例えばスマートカメラ、ドローン、デジタルコンパニオンなど）については、単一のモダリティまたはアプリケーションだけが解決されるのに対し、提案される設計については、ＵＳＢ、イーサネットまたはバックプレーン接続性を備えた任意のデータ作成システムが入力として使用可能であり、アプリケーションがカスタマイズ可能である。他のモダリティ（例えばサーマルビジョン）が好ましいか、または防爆環境における使用のような付加的な要求を満たすカメラが、異なるカメラベンダによって販売される場合、一般に、ＡＩイネーブルデバイスの限定された提供品は使用できない。ＵＳＢ  Ｖｉｓｉｏｎおよびイーサネット  Ｖｉｓｉｏｎのような標準工業インタフェースを介するプラグアンドプレイ接続性を可能にすることにより、図１に示した設計は、顧客にとってフレキシブルでありかつ将来においても有効になる。すなわち、オリジナルのカメラが、もはや利用できないか、またはよりよいまたはより安価なモデルが市場に出た場合、ユーザは、システムをプログラミングし直す必要なしに、このモデルを単にプラグインすることができる（使用されるニューラルネットワークの予想される入力フォーマットに入力を自動的にリサイズするようにこのアルゴリズムを設定可能である）。またこのアプローチにより、混在データ（例えば、ＵＳＢを介するカメラ入力）、バックプレーンを介する制御パラメータ、およびイーサネットを介する共有プラント変数の同期処理が可能になる。
【００３０】
図２には、いくかの実施形態にしたがい、ＣＰＵモジュールおよびテクノロジモジュールを有するコントローラシステム内で機械学習モデルを実行する方法が示されている。ステップ２０５〜２１０からはじめて、コントローラシステムの外部のデバイスによって作成されるデータに基づき、１つ以上の機械学習モデルに対する入力データ値を生成する。より具体的にいうと、ステップ２０５では、例えば、それぞれのモジュール（図１を参照されたい）に含まれている入力／出力ポートを使用し、デバイスによって作成されたデータをテクノロジモジュールによって読み出す。次に、ステップ２１０では、テクノロジモジュールにより、一連のルールまたは関数を使用し、データを前処理して、このデータを機械学習モデルに対する入力データ値に変換する。
【００３１】
図２への参照をさらに続けると、ステップ２１５では、テクノロジモジュール内のＡＩアクセラレータにより、入力データ値に機械学習モデルを適用して、１つ以上の出力データ値を生成する。次に、ステップ２２０では、テクノロジモジュールにより、ＣＰＵモジュールとテクノロジモジュール（図１を参照されたい）を接続するバックプレーンに出力データ値を書き込む。ステップ２２５ではＣＰＵモジュールにより、バックプレーンから出力データ値を読み出す。次に、ステップ２３０では、ＣＰＵモジュールにより、出力データ値を利用するアプリケーションプログラムを実行する。このとき、アプリケーションプログラムは、デバイスを制御するために出力データ値を使用可能である。図２の例では、ステップ２３５において、ＣＰＵモジュールにより、出力データ値に基づいて、デバイスに対する１つ以上の制御命令を生成し、ステップ２４０において、これらの制御命令をデバイスに転送する。
【００３２】
コントローラシステムに対する高スループット入力のリアルタイム分析を可能にするのに加え、いくかの実施形態では、高速制御に対してテクノロジモジュールを使用可能である。例えば、テクノロジモジュールの１つの入力／出力ポート（例えばＵＳＢインタフェース）を介して入力を供給可能であり、別の入力／出力ポート（例えばイーサネットインタフェース）を介して制御パラメータまたは別の出力を導出可能である。テクノロジモジュールは、コントローラシステムのバックプレーンを介してすべての出力を送出することを要求しないため、高速の制御アプリケーションが必要な場合、バックプレーンサイクルよりも高速に反応することが可能である。この場合、制御アプリケーションは、テクノロジモジュール内に完全に含まれることなり、これにより、テクノロジモジュールによって制御命令がデバイスに直接に供給される。このとき、テクノロジモジュールは、例えば、メタデータまたは状態の交換のために、より低い頻度でコントローラシステムの他のモジュールと、情報だけを交換可能である。考えられる一アプリケーションは、移動する加工品の正確な位置について通知するために、１８０Ｈｚで７２０ｐビデオを分析する、Ｍｙｒｉａｄ  Ｘチップの、ハードウェアアクセラレートされたステレオビジョン深さ抽出を使用可能である。
【００３３】
図３には、いくつかの実施形態にしたがい、制御システムをプログラミングするためのワークフローが示されている。このワークフローは、シーメンスのＴＩＡ（Totally Integrated Automation）ポータルのようなＧＵＩを使用する、ＰＬＣおよびＡＩアプリケーション用の統合型プログラミングフレームワークを利用している。ＡＩおよびコントローラアプリケーションの最新式の統合は、オープンコントローラにおいて特定用途向けに実装可能であるか、または外部ハードウェア（例えばスマートセンサ入力またはＧＰＵアクセラレートされた外部マシン）を使用可能であるかのいずれかである。したがって異なるプログラミングおよび統合フレームワークが必要であり、これにより、大抵の場合に特定用途向けのセットアップになる。このセットアップの複雑さは、単一のプログラミングフレームワークを介して、ＡＩおよびコントローラアプリケーションのデプロイを可能にすることによって大幅に低減される。また、このフレームワークは、リソースに対して統合化された制御を有するため、機能を組み合わせるよりも、むしろ単一のプログラミングフレームワークを使用する場合の方が性能を改善させることができる。例えば、複数の局面によって使用される１つの変数に対し、ただ１つのメモリ位置を割り当てればよい。この変数は、そうでなければ、異なるツールにおいて処理されることになる。これにより、不必要なデータのコピーおよびメモリ割り当てが抑えられ、処理時間が節約される。
【００３４】
引き続いて図３を参照すると、ホストコンピュータにＧＵＩ（graphical user interface）が表示される。このＧＵＩには、オートメーションプログラムをプログラミングするためのブロックベースのエディタが含まれている。第１ステップにおいて、プログラマは、ＧＵＩにおいて空のＡＩ機能ブロックを作成する。ここで使用される「ＡＩ機能ブロック」という用語は、機械学習モデルへの参照を含めることをサポート可能な機能ブロックのことをいう。したがって、１つ以上の標準機能ブロックが、このような機能をサポート可能である場合、これらのブロックが使用可能であるか、そうでなければカスタムＡＩ機能ブロックが使用可能である。
【００３５】
プログラマは、ＧＵＩに表示される機能ブロックに機械学習モデルの視覚的な表現を挿入することに結果的に結び付く１つ以上のコマンドを供給する。例えば、一実施形態において、プログラマは、機能ブロックに視覚的な表現をドラッグする。図示された例において、これはテンソルフローモデル(Tensorflow model)の形態で行われるが、別のモデルフレームワーク、例えば、カフェまたはチェイナーが使用可能である。
【００３６】
次に、機械学習モデルの型シグネチャが決定される。この型シグネチャにより、この機械学習モデルの入力および出力が定められる。これは、例えば、機械学習モデルそれ自体のコードを分析することによって、または機械学習モデルに関連付けられたメタデータを使用して行うことができる。機械学習モデルの入力および出力に基づき、入力および出力に基づく機能ブロックの入力および出力が定められる。図３の実施例において仮定しているのは、機械学習モデルが、必要な入力および出力についての情報を含み、この情報が、空のＡＩ機能ブロックに自動的にパラメータ設定するのに使用され、結果的に１６０×１６０ピクセルサイズの必要な画像入力と、人間同士を見分けることが可能な特徴的な特徴のような出力とが得られることである。
【００３７】
次に、プログラマは、入力ソースを接続してパラメータ設定する必要がある。例えば、ＵＳＢカメラドライバを選択し、使用されるニューラルネットワークによって予想されるように、記録された画像を前処理しなければならない。このアプリケーションにおいて、カメラは、１秒当たりに６０フレーム、１６ビットの解像度の画像を記録するように設定され、画像から平均値が減算され、画像は、１６０×１６０ピクセルサイズに変倍され、ホワイトニングされ、ＲＧＢカラースキームを使用する。カメラドライバおよびすべての前処理は、テクノロジモジュールにおいて実行され、同様にＡＩ関数ブロックにおいて機械学習モデルも実行される。次に、リアルタイムで更新された画像特徴は、バックプレーンを介してコントローラに伝えられる。コントローラシステムでは、右端の関数ブロックにおいて例示したように、この値が画像のデータベースと比較される。現在の画像特徴に最も近いスコアを有する、データベース内の画像は、最も可能性の高い検出された候補である。しかしながらコントローラにより、検出として結果を受け入れるために、特徴間の最大許容差分を表す閾値も提供される。スコア差分に基づき、データベース内の特定のユーザが、現在、カメラの方を向いている確率が計算される。この確率およびユーザのＩＤは、コントローラアプリケーションによって出力され、コントローラシステムによって実行される制御アプリケーションの別の複数の部分に（例えばユーザインタフェース設定のパラメータ設定するために）使用可能である。すべての接続が行われると、機能ブロックは、テクノロジモジュールによって実行可能なコードを生成するためにコンパイルされることが可能である。次に、このコードは、（例えば、バックプレーンバスまたはテクノロジモジュールの入力ポートを介して）テクノロジモジュールにデプロイ(deploy)可能である。
【００３８】
以下の段落では、テクノロジモジュールのさまざまなメリットをより詳しく説明する。第１に、ここで説明されるテクノロジモジュールにより、先進の信号処理および高帯域幅入力の分析を標準コントローラシステムに直接に組み込み可能である。これにより、反応サイクル時間が、したがって制御性能が大幅に改善される。また他社ベンダ製のカスタムハードウェアは不要であり、これによって統合化、セットアップおよびメンテナンスが容易になる。最後に、ＡＩコンセプトを使用して、コントローラシステムに新しいアプリケーションが可能になる。
【００３９】
また複数のモジュールを加えることによって、コントローラにオーバヘッドを加えることなく、テクノロジモジュールによってＡＩアクセレーション性能も提供される。慣用のアプローチであれば、オープンコントローラにＰＣＩｅカードを挿入しなければないことになる。さらに性能が必要な場合には、さらに高性能のＰＣＩｅカードを選択しなければならないことになる。択一的には、特定のコントローラバージョンにＡＩコプロセッサを含めることになる。すべてのデータ収集および前処理は、コントローラＣＰＵによって取り扱われる必要があり、したがってその性能に影響が及ぼされることになる。また、コントローラがＰＣＩｅを介して供給可能であり、サポートされる電力定格において適した拡張カードは限定される。高性能カードには、アクティブな冷却が必要であり、この場合には部品の寿命および周囲温度定格に影響が及ぼされる。付加的なテクノロジモジュールをプラグ接続することにより、インタフェース（例えばＵＳＢおよびイーサネット）の個数と共に性能が向上する。またすべてのデータ収集および前処理は、モジュールにおいて行われるため、コントローラにおける性能に及ぼされる影響は最小限である。消費電力は、広い領域にわたってパッシブに放散され、また付加的な電源が必要な場合には、別体の電源モジュールによって供給可能である。これにより、ここで説明しているテクノロジモジュールは、最新のアプローチよりも格段にフレキシブルになり、効率的になり、拡張または縮小可能になる。また、このテクノロジモジュールにより、ファンの軸受にマイナスに作用し得る振動および高い周囲温度、ならびにコントローラシステム内に集中された熱源を有する過酷な工業環境における使用が可能になる。
【００４０】
ここで説明されたテクノロジモジュールにより、複数ソースおよび複数モダリティデータの集中型デバイスレベル分析が容易になる。ＰＬＣおよび他のコントローラシステムは、現在、プラントデータ用のバックボーンプラットホームである。カメラまたは振動ストリームのような高速の入力とプラントデータとを組み合わせることは、多くのアプリケーションにおいて、例えば、マシンの動作状態を考慮するために、重要であるかまたは必要でもある。別のアプリケーションでは、３次元距離情報用のＬＩＤＡＲ、現在の表面温度分布を測定するためのサーマルカメラ、および現在の読み取り値とプロセスの状態とを関連付けるプラント制御変数のような複数のモダリティ入力が必要である。これは、バックプレーンバスを介してプラントパラメータを共有しかつ例えばＵＳＢを介してカメラ入力を記録するテクノロジモジュールには当然、実装される。このアプローチにより、カスタマサイトにおけるセットアップが容易になり、したがってコストが低減され、新たなアプリケーションを市場に出すための時間が短くなり、ソリューションの保守容易性が改善される。
【００４１】
ここでは説明されるテクノロジモジュールのプラグアンドプレイの側面により、現在使用されているコントローラシステムにＡＩ機能を後付け可能である。例えば、テクノロジモジュールは、すべてではないとしても多くのコントローラシステムに使用されるバックプレーン接続性の標準に準拠している。テクノロジモジュールにプログラムをアップロードした後、このテクノロジモジュールは、コントローラシステムから専用のドライバを要求されることなく動作する。すなわち、例えばＥＴ２００ＳＰテクノロジモジュールは、任意のＥＴ２００ＳＰコントローラに接続可能である。さらに、このテクノロジモジュールは、標準インタフェースモジュールを使用し、ＰＲＯＦＩＮＥＴを介して他のコントローラに接続可能である。この機能により、ＡＩ機能を追加したい顧客はそのインフラストラクチャに大幅な変更する必要がないため、これらの顧客に対してコストが低減される。またソリューションプロバイダは、ＡＩアプリケーションをカスタマイズし、これをテクノロジモジュールにデプロイし、インストレーションソフトウェアを出荷するのではなくむしろハードウェアデバイスと共にソリューションを販売することも可能である。したがってテクノロジモジュールは、エンドカスタマ側にＡＩの知識を必要としない明確な、あらかじめ定められたタスク用に構成可能である。
【００４２】
このテクノロジモジュールにより、専用のコントローラを必要とすることなく、ＡＩ機能の分散型の小規模なアクセレーションが可能になる。ＡＩテクノロジモジュールは、標準モジュール（例えばＰＲＯＦＩＮＥＴインタフェースモジュール）と組み合わせてデプロイすることが可能である。この組み合わせはサイズが小さく、複数のシステムをプラント全体に分散可能である。例えば、これらの組み合わせの１つは、設備のそれぞれのロボットに配置することができ、これにより、ロボットプロセスを視覚的に監視しながら、すべてのＡＩモジュールに繋がっている１つのコントローラを介して、すべてのロボットが制御される。このセットアップにより、全体的なデプロイメントの実現およびメンテナンスコストが低減される。
【００４３】
このテクノロジモジュールにより、制御パラメータとＡＩ入力との同期的な使用が容易になる。ＡＩアクセレーションにバックプレーンベーステクノロジモジュールを使用することにより、当然、可能になるのは、テクノロジモジュールの出力が、コントローラの他の入力および出力と同期して共有されることである。このことは、制御システムの制御サイクルにＡＩの結果を確実に含めるために重要である。例えば、プロセスの視覚ベースの分析のために外部アクセラレータを使用する択一的な解決手段は、例えば、結果をバッファリングすることがあり、したがって誤った結果および制御設定に結び付き得る、プラントパラメータおよび視覚分析の不適合を生じさせる。システム間でクロックを同期させるかまたは付加的なタイミング信号を交換するためには付加的な作業が必要になり得る。同期性の側面は、確実かつ再現可能な性能にとって重要である。
【００４４】
テクノロジモジュールがシステムの他のモジュールから独立していることにより、処理を物理的に分散させることができ、電力消費が少ないことにより、パッシブな冷却および高温環境におけるアプリケーションが可能になる。ハードウェアに主電力消費アルゴリズム（例えばニューラルネットワークプリミティブ）を実装するＡＩアクセラレータプロセッサを使用することにより、２Ｗ以下の低電力消費で高性能が可能になる。このことにより、今度は、パッシブな冷却を備えたテクノロジモジュールへのデプロイが可能になる。より高い性能のためには複数のテクノロジモジュールを組み合わせることができる。複数のアクセラレータを追加する場合にはアクティブな冷却は不要である。というのは、それぞれのモジュールは、熱を放散するための物理的な定められた底面積を有するからである。また複数のモジュールのヘッドは、広い領域にわたって物理的に分散されているため、ホットスポットはなく、システムは、より高い周囲温度環境において使用可能である。この機能により、固定の周囲温度では、コントローラシャーシ内に、より高性能な他単一な中央のチップを有する一般的なアプローチに比べて、より高い性能が可能になる。
【００４５】
ここではさまざまな様相および実施形態を開示したが、他の様相および実施形態は、当業者には明らかであろう。ここで開示されたさまざまな様相および実施形態は、説明を目的としており、制限することを意図しておらず、真の範囲および精神は、以下の特許請求の範囲によって示される。
【００４６】
ここで使用されている実行可能なアプリケーションには、オペレーティングシステム、コンテキストデータ収集システムまたは別の情報処理システムのあらかじめ定められた機能のようなあらかじめ定められた機能を、例えば、ユーザコマンドまたは入力に応じてプロセッサに実現させるようにするコードまたは機械読み出し可能命令が含まれる。実行可能な手続きは、１つ以上の特定のプロセスを実行する、コードまたは機械読み出し可能命令、サブルーチンの一セグメント、または実行可能なアプリケーションのコードまたは部分の他の別個のセクションである。これらのプロセスには、入力データおよび／またはパラメータの受信、受信された入力データへの演算の実行、および／または受信された入力パラメータに応じた機能の実行、および結果的に得られた出力データおよび／またはパラメータの供給が含まれていてよい。
【００４７】
ここで使用されるＧＵＩ（graphical user interface）には、ディスプレイプロセッサによって生成され、プロセッサまたは他の装置とのユーザの対話と、関連付けられたデータ収集と、機能の処理とを可能にする１つ以上のディスプレイ画像が含まれる。ＧＵＩにはまた、実行可能な手続きまたは実行可能なアプリケーションが含まれる。実行可能な手続きまたは実行可能なアプリケーションは、ＧＵＩディスプレイ画像を表す信号をディスプレイプロセッサに生成させる。これらの信号は、ユーザに見える画像を表示するディスプレイデバイスに供給される。このプロセッサにより、実行可能な手続きまたは実行可能なアプリケーションの制御下において、入力デバイスから受信された信号に応じて、ＧＵＩディスプレイ画像が操作される。このようにしてユーザは、入力デバイスを使用してディスプレイ画像と対話することができ、ユーザは、プロセッサまたは他のデバイスと対話することができる。
【００４８】
ここの機能およびプロセスステップは、自動的に実行可能であるか、またはユーザコマンドに完全もしくは部分的に応じて実行可能である。自動的に実行される（１つのステップを含む）アクティビティは、このアクティビティをユーザが直接に起動することなく、１つ以上の実行可能な命令またはデバイス操作に応じて実行される。
【００４９】
図面のシステムおよびプロセスは、排他的なものではない。同じ目的を達成するために、本発明の原理にしたがい、他のシステム、プロセスおよびメニューを導出可能である。本発明を、特定の実施形態を参照して説明したが、ここで示されかつ説明されたこれらの実施形態および変化形態は、説明だけを目的としていることを理解されたい。当業者は、本発明の範囲を逸脱することなく、現在の設計に対する変更を行うことができる。ここで説明したように、さまざまなシステム、サブシステム、エージェント、マネージャおよびプロセスは、ハードウェアコンポーネント、ソフトウェアコンポーネント、および／またはこれらの組み合わせを使用して実現可能である。ここでの請求項の構成要素は、この要素が「〜ための手段」という文言を使用して明確に示されているのではない場合には、米国特許１１２条（ｆ）の規定に基づいて解釈されるものではない。
【図１】
2021534506.tif 000003
【図２】
2021534506.tif 000004
【図３】
2021534506.tif 000005
【国際調査報告】
2021534506.tif 000006
2021534506.tif 000007