(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-23
(45)【発行日】2023-01-31
(54)【発明の名称】プログラマブルロジックコントローラベースの人工知能用モジュール式アクセラレーションモジュール
(51)【国際特許分類】
G05B 19/05 20060101AFI20230124BHJP
G06F 9/38 20180101ALI20230124BHJP
G06N 20/00 20190101ALI20230124BHJP
【FI】
G05B19/05 F
G06F9/38 370C
G06N20/00
(21)【出願番号】P 2021509832
(86)(22)【出願日】2018-08-20
(86)【国際出願番号】 US2018047030
(87)【国際公開番号】W WO2020040721
(87)【国際公開日】2020-02-27
【審査請求日】2021-02-19
【前置審査】
(73)【特許権者】
【識別番号】517291346
【氏名又は名称】シーメンス アクチエンゲゼルシヤフト
【氏名又は名称原語表記】Siemens Aktiengesellschaft
【住所又は居所原語表記】Werner-von-Siemens-Str. 1, D-80333 Muenchen, Germany
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ハイコ クラウセン
【審査官】松本 泰典
(56)【参考文献】
【文献】特開2017-33040(JP,A)
【文献】米国特許出願公開第2009/0088870(US,A1)
【文献】米国特許出願公開第2008/0313228(US,A1)
【文献】特開2017-97718(JP,A)
【文献】特開2005-182785(JP,A)
【文献】実開昭60-166006(JP,U)
【文献】特開2018-97663(JP,A)
【文献】特開2006-65850(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/05
G06N 20/00
G06F 9/38
(57)【特許請求の範囲】
【請求項1】
コントローラシステムであって、
前記コントローラシステムの外部の複数のデバイスを制御する制御プログラムを実行するプロセッサを有するCPUモジュールと、
複数のテクノロジモジュールであって、各テクノロジモジュールは、前記複数のデバイスのそれぞれのデバイスに対応し、各テクノロジモジュールは、AIアクセラレータプロセッサを含み、前記AIアクセラレータプロセッサは、(a)1つ以上の機械学習モデルに関連した入力データ値を受信し、(b)1つ以上の出力データ値を生成するために入力データ値に機械学習モデルを適用するように構成されている、複数のテクノロジモジュールと、
前記CPUモジュールおよび前記テクノロジモジュールを接続するバックプレーンバスと、
を有し、
前記テクノロジモジュールにより、前記バックプレーンバスを介して前記プロセッサに前記出力データ値が転送され、前記プロセッサにより、前記制御プログラムの実行中に前記出力データ値が使用される、
コントローラシステム。
【請求項2】
前記出力データ値は、前記バックプレーンバスを介し、スキャンサイクルにしたがい、1つ以上の付加的な入力または出力と同期して前記制御プログラムに転送される、請求項1記載のコントローラシステム。
【請求項3】
前記入力データ値は、対応するデバイスに関連付けられており、それぞれのテクノロジモジュールには、対応する前記デバイスとの直接的な接続を容易にする1つ以上の入力/出力ポートが含まれている、請求項1または2記載のコントローラシステム。
【請求項4】
それぞれのテクノロジモジュールにはさらに、対応する前記デバイスから受信したデータに基づき、前記機械学習モデルに対する前記入力データ値を生成するように構成された前処理コンポーネントが含まれている、請求項3記載のコントローラシステム。
【請求項5】
それぞれのデバイス専用の入力/出力ポートは、前記入力データ値を前記テクノロジモジュールに転送するための入力ポートと、出力ポートとを有する、請求項3記載のコントローラシステム。
【請求項6】
前記入力ポートは、対応する前記デバイスと前記テクノロジモジュールとの間のUSB接続に対応する、請求項5記載のコントローラシステム。
【請求項7】
さらに、前記CPUモジュールおよび前記テクノロジモジュールを前記バックプレーンバスに接続するための複数のプラグを備えたシャーシを有する、請求項1から
6までのいずれか1項記載のコントローラシステム。
【請求項8】
前記CPUモジュールおよび前記テクノロジモジュールにはそれぞれ、前記バックプレーンバスを形成する相互接続プラグが含まれている、請求項1から
6までのいずれか1項記載のコントローラシステム。
【請求項9】
CPUモジュール、および、各々が、コントローラシステムの外部の複数のデバイスのそれぞれのデバイスに対応する複数のテクノロジモジュールを有する前記コントローラシステム内で機械学習モデルを実行する方法であって、
各々の前記テクノロジモジュールにより、対応する前記デバイスによって作成されるデータに基づき、1つ以上の入力データ値を生成するステップと、
各々の前記テクノロジモジュール内のAIアクセラレータにより、1つ以上の出力データ値を生成するために1つ以上の機械学習モデルを前記入力データ値に適用するステップと、
各々の前記テクノロジモジュールにより、前記CPUモジュールおよび前記テクノロジモジュールを接続するバックプレーンに前記出力データ値を書き込むステップと、
前記CPUモジュールにより、前記バックプレーンから前記出力データ値を読み出すステップと、
前記CPUモジュールにより、前記出力データ値に基づいて、対応する前記デバイスに対する1つ以上の制御命令を生成するステップと、
前記CPUモジュールにより、前記制御命令を対応する前記デバイスに転送するステップと、
を含む、方法。
【請求項10】
前記入力データ値を生成するステップは、
前記テクノロジモジュールにより、対応する前記デバイスによって作成される前記データを読み出すステップと、
前記テクノロジモジュールにより、一連のルールまたは関数を使用して前記データを前記入力データ値に変換するステップと、
を含む、請求項
9記載の方法。
【請求項11】
コントローラシステムであって、
前記コントローラシステムの外部の複数のデバイスを制御する制御プログラムを実行するプロセッサを有するCPUモジュールと、
複数のテクノロジモジュールであって、各テクノロジモジュールは、前記複数のデバイスのそれぞれのデバイスに対応し、各テクノロジモジュールは、AIアクセラレータプロセッサを含み、前記AIアクセラレータプロセッサは、(a)対応する前記デバイスに関連した入力データ値を受信し、(b)1つ以上の出力データ値を生成するために前記入力データ値に1つ以上の機械学習モデルを適用するように構成されている、複数のテクノロジモジュールと、
前記CPUモジュールと前記テクノロジモジュールとの間でデータを交換するインタフェースモジュールと、
を有し、
前記テクノロジモジュールにより、前記インタフェースモジュールを介して前記プロセッサに前記出力データ値が転送され、前記プロセッサにより、前記制御プログラムの実行中に前記出力データ値が使用される、
コントローラシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、プログラマブルロジックコントローラ(PLC:programmable logic controller)および他の制御システムに使用可能なAIアクセラレーションモジュールに関し、また関連した方法と、システムと、装置とに関する。開示される技術は、例えば、プログラマブルコントローラおよび高速の入力を生成する複数のデバイスが使用されるさまざまな複合型工業環境に適用可能である。
【0002】
技術背景
第4次産業革命は、デジタル革命を基礎にして構築されており、AI(artificial intelligence)、ロボティックス、IoT(internet of things)などを含めた多くの新興技術によって規定される。その目的は、新しいレベルのアプリケーションを可能することであり、システムは、その環境におけるさまざまな変化に対してフレキシブルになり、セットアップまたは操作のためにマンパワーをより必要としなくなり、したがってコストが節約される。例えば、一アプリケーションにおいて、移動ロボットは、必要に応じて加工物を1つの機械から別の1つの機械に搬送可能である。1つの機械が故障した場合、これらのシステムは、次に必要な作業を実行可能な別のシステムに加工物を自動的に搬送する。全体的なワークフローは、ジャストインタイムの配送が可能になるように最適化される。別の一アプリケーションでは、複数のカメラにより、1つのプロセス、例えばペーストが導体に付着されたことを監視可能である。異常な粒子、間隙または別の問題が検出されると、この情報は、継続的な最適化のためにプロセス制御にフィードバックされる。さらに別の一アプリケーションでは、ロボットは、害をもたらす未知の対象体を収容場所から選び出す必要がある。これは、これらの対象体の3次元CAD(computer-aided design)図面なしにかつプログラミングし直すことなく、確実に実行されるべきである。これらアプリケーションは、例えば、一式の製品を箱詰めして顧客に配送する倉庫に必要である。
【0003】
これらのすべてのアプリケーションが有する共通点は、これらのアプリケーションが、高速データ分析用の最新のテクノロジを要することである。例えば、収容場所から選び出すアプリケーションは、3次元クラウドポイントカメラ入力に基づき、DexNetと称されるニューラルネットワークを使用して実現可能である。ペースト付着の監視は、赤外線カメラ入力に基づく、新しいアルゴリズムによって実現可能である。移動ロボットアプリケーションには、その環境を進むために、LIDARおよびカメラのような複数のセンサ入力が必要である。状態監視または予知保全のような別の複数のアプリケーションには、オーディオ、振動または別の複数の高速の入力が必要になろう。
【0004】
高帯域幅入力データと、先進アルゴリズムの使用とに加え、これらのすべてのアプリケーションには共通であるのは、これらのアプリケーションが、それらの環境において変化するために、リアルタイムに反応することが必要になることである。したがって計算は、例えばクラウドインフラストラクチャ内ではなく、むしろデバイスにおいて実行されなければならない。また工業におけるほとんどの離散制御およびプロセス制御には、制御のためにPLC(Programmable Logic Controller)が必要である。PLCは、出力デバイスの状態を制御するために入力デバイスの状態についてのデータを連続して収集するソフトウェアを実行するように構成された専用のコンピュータ制御システムである。PLCには一般に3つの主要なコンポーネント、すなわち(揮発性メモリを含み得る)プロセッサと、アプリケーションプログラムを有する揮発メモリと、オートメーションシステムにおける別のデバイスに接続するための1つ以上の入力/出力(I/O)ポートとが含まれる。PLCにより、過酷または危険な環境における確実な動作が可能になり、リアルタイム性が保証され、冗長性およびフェイルセーフコンセプトが可能になる。製造環境に対してPLCが広く使用されかつ最適化されることを考慮すると、ソリューションがPLCに適切に組み込まれていることが重要である。
【0005】
慣用のPLCは、先進のアルゴリズムを実行するまたは上記の問題を扱うための十分な計算資源を提供するようには設計されていない。またAIベースのアプリケーションは、1つのアプリケーションに極めて特有に適合していることが多い。すなわち、性能要件に適合することでき、かつ異なる分野(例えばビデオ、オーディオ、振動、スペクトル画像など)に固有のアルゴリズムを可能にする、極めてフレキシブルな解決手段が必要である。さらにAIアルゴリズムのアクセラレーションは、利用可能な制御ストラテジと確実に一体化できるようにするために、PLCプログラムと同期する必要がある。この分野におけるPLCの市場が大きいことを考慮すると、デバイスが後付け可能であることも、シーメンスのTIA(Total Integrated Automation)ポータルのような定着したツールがプログラミングに使用できることも重要である。そうでなければ、現在のほとんどの顧客は、その製造にこれらの新しい技術を組み込むことが困難になろう。
【0006】
概要
本発明の複数の実施形態により、PLC(programmable logic controller)および他の制御システムに使用可能なAIアクセラレーションモジュールに関連した方法、システムおよび装置が供給されることによって、上記の1つ以上の欠陥および欠点が扱われかつ克服される。
【0007】
本発明のいくつかの実施形態によれば、コントローラシステムには、CPUモジュールと、1つ以上のテクノロジモジュールと、バックプレーンバスとが含まれる。CPUモジュールは、制御プログラムを実行するプロセッサを有する。テクノロジモジュールには、AIアクセラレータプロセッサが含まれ、このAIアクセラレータプロセッサは、(a)1つ以上の機械学習モデルに関連した入力データ値を受信し、(b)1つ以上の出力データ値を生成するために入力データ値に機械学習モデルを適用するように構成されている。バックプレーンバスにより、CPUモジュールおよびテクノロジモジュールが接続される。テクノロジモジュールにより、バックプレーンバスを介してプロセッサに出力データ値が転送され、このプロセッサにより、制御プログラムの実行中に出力データ値が使用される。
【0008】
別の複数の実施形態によれば、CPUモジュールおよびテクノロジモジュールを有するコントローラシステム内で機械学習モデルを実行する方法では、テクノロジモジュールにより、コントローラシステムの外部のデバイスによって作成されるデータに基づき、1つ以上の入力データ値を生成する。テクノロジモジュール内のAIアクセラレータにより、1つ以上の出力データ値を生成するために、1つ以上の機械学習モデルを入力データ値に適用する。テクノロジモジュールにより、CPUモジュールおよびテクノロジモジュールを接続するバックプレーンに出力データ値を書き込み、CPUモジュールにより、バックプレーンから出力データ値を読み出す。出力データ値が受信されると、CPUモジュールにより、出力データ値を利用するアプリケーションプログラムを実行する。
【0009】
本発明の別の一実施形態によれば、制御システムをプログラミングする方法では、オートメーションプログラムをプログラミングするためのブロックベースのエディタを含むGUI(graphical user interface)を表示する。1つ以上のユーザコマンドに基づき、GUIに表示される機能ブロックに機械学習モデルの視覚的な表現を挿入する。機械学習モデルの入力および出力を定義する、この機械学習モデルの型シグネチャを識別する。機械学習モデルの入力および出力に基づき、機能ブロックの入力および出力を自動的に定義する。機能ブロックの少なくとも1つの入力に入力ソースを接続し、付加的な機能ブロックに機能ブロックの出力を接続する。制御システムによって実行可能なコードを生成するために機能ブロックをコンパイルする。
【0010】
本発明の別の複数の実施形態によれば、コントローラシステムには、CPUモジュールと、1つ以上のテクノロジモジュールと、CPUモジュールとテクノロジモジュールとの間でデータを交換するインタフェースモジュールとが含まれる。CPUモジュールは、制御プログラムを実行するプロセッサを有する。テクノロジモジュールは、AIアクセラレータプロセッサを有し、この、AIアクセラレータプロセッサは、(a)1つ以上のデバイスに関連した入力データ値を受信し、(b)1つ以上の出力データ値を生成するために入力データ値に機械学習モデルを適用するように構成されている。テクノロジモジュールにより、インタフェースモジュールを介してプロセッサに出力データ値が転送され、このプロセッサにより、制御プログラムの実行中に出力データ値が使用される。
【0011】
本発明の別の一実施形態によれば、コントローラシステムには、第1制御プログラムを実行するプロセッサを有するCPUモジュールと、1つ以上のテクノロジモジュールとが含まれる。それぞれのテクノロジモジュールは、AI(artificial intelligence)アクセラレータプロセッサを有し、このAIアクセラレータプロセッサは、1つ以上のデバイスに関連した入力データ値を受信し、1つ以上の出力データ値を生成するために入力データ値に1つ以上の機械学習モデルを適用にするように構成されている。AIアクセラレータプロセッサは、出力データ値に基づき、デバイスに対する制御命令を生成するために第2制御プログラムを実行する。制御命令は、テクノロジモジュールの1つ以上の入力/出力ポートを介し、第1データ転送速度でデバイスに転送される。状態メッセージは、バックプレーンバスまたはインタフェースモジュールを介し、第1データ転送速度よりも遅い第2データ転送速度でCPUモジュールに伝送される。
【0012】
本発明の付加的な特徴および利点は、添付の図面を参照して行われる、例示的な実施形態の以下の詳細な説明から明らかになろう。
【0013】
本発明の前述の様相および別の様相は、添付の図面に関連して以下の詳細な説明を読めば、最もよく理解される。本発明を説明するために、現時点において好ましい実施形態が図面に示されているが、本発明は、開示された特定の手段に限定されないことを理解されたい。
【図面の簡単な説明】
【0014】
【
図1】本発明のいくつかの実施形態による例示的なコントローラシステムを示す図である。
【
図2】いくつかの実施形態にしたがい、CPUモジュールおよびテクノロジモジュールを有するコントローラシステム内で機械学習モデルを実行する方法を示す図である。
【
図3】いくつかの実施形態にしたがい、制御システムをプログラミングするワークフローを説明する図である。
【0015】
詳細な説明
ここでは、AIアプリケーション用のPLCベースのアクセレーションモジュールに関連したシステム、方法および装置が説明される。より一般的にいうと、ここで説明される技術により、コントローラシステムのシャーシに直接に組み込み可能な計算モジュール(ここでは「テクノロジモジュール」と称される)を使用し、デバイスレベルでAIアクセレーション用のハードウェアプラットホームが可能になる。このテクノロジモジュールには、PLC内での直接の機械学習の実行を容易にするAIアクセラレータプロセッサが含まれ、これにより、高速の入力を直接に処理することができ、他の入力モジュールからのデータまたはPLC変数と共に、最小のオーバヘッドで、制御環境を変更するためのAIベースの決定を行うことができる。
【0016】
図1には、いくつかの実施形態にしたがい、例示的なコントローラシステム100が示されている。「コントローラシステム」という用語は、PLCも、PLCに類似した機能を有する他のデジタル制御コンピュータも共に含むことを意図している。簡単にいうと、コントローラシステム100には、CPUモジュール110と、3つのテクノロジモジュール115、120および125とが含まれている。それぞれのモジュール110、115、120、125は、バックプレーンバス130を介して接続されている。コントローラシステム100全体は、シャーシ105に収容されている。一般に、ここで説明されている技術は、当該技術分野において公知の任意のモジュール式コントローラシステムを使用して実現可能である。例えば、一実施形態において、コントローラシステムは、SIMATIC ET 200SPである。
【0017】
従来技術において一般に理解されているように、バックプレーンバス130は、モジュール110、115、120、125間でデータを転送するための内部データバスである。バックプレーンバス130を作成するためにさまざまな技術が使用可能である。例えば、一実施形態において、バックプレーンバス130は、シャーシ105の一部であり、シャーシは、モジュール110、115、120、125をバックプレーンバス130に接続可能にする(
図1に示されていない)複数のプラグを有する。別の複数の実施形態において、モジュール110、115、120、125にはそれぞれ、バックプレーンバス130を形成する(
図1に示されていない)相互接続プラグが含まれている。
【0018】
CPUモジュール110には、「スキャンサイクル」と称される一連の操作を実行するプロセッサが含まれている。第1に、入力は、例えば、バックプレーンバス130、またはCPUモジュール110内の「処理イメージ」と称されるメモリ領域から読み出される。次に、ここでは「制御プログラム」と称される実行可能なアプリケーションが、入力にロジックを適用してデバイス135、140、145に対する1つ以上の制御命令を生成するために実行される。次に、これらの制御命令および任意の他の出力が、デバイス135、140、145および/またはバックプレーンバス130に適宜、書き込まれる。
【0019】
それぞれのテクノロジモジュール115、120および125は、AI(artificial intelligence)アクセラレータプロセッサ115A、120Aおよび125Aと、デバイス135、140、145への直接の接続を容易にする一式の入力/出力ポート115C、120C、125C(例えばネットワークポート、USB、CAN、アナログ入力部、チャージ入力部など)とを有する。デバイス135、140、145により、例えば画像、ビデオ、オーディオ信号、振動センサ値などのような、テクノロジモジュール115、120および125への高速の入力が提供される。これらの入力は、必ずしも高速ではないことに注意されたい。例えば、ビデオは、1秒当たりわずかに数フレームを有するが、データ転送速度はなお極めて高い。これは、多くの(例えば30Hzで)比較的緩慢に変化する(例えばピクセル毎の)センサ信号を有する測定値の単なる一例である。またいくつかの実施例において、テクノロジモジュールは、ハイスループット情報と、ビデオストリームおよびマシン状態のような緩慢なデータとを組み合わせ可能である。マシン状態(例えばRPM)は、CPUモジュール110または他の入力モジュールから、バックプレーンバス130を介して読み出し可能である。
【0020】
それぞれのAIアクセラレータプロセッサ115A、120A、125Aは、(例えばバックプレーンバス130または入力/出力ポート115C、120C、125Cを介して)1つ以上のデバイス135、140、145に関連した入力データ値を受信するように構成されている。これらの入力データ値が受信されると、それぞれのAIアクセラレータプロセッサ115A、120A、125Aは、機械学習モデルを実行する。この機械学習モデルは、入力/出力ポート115C、120C、125C、バックプレーンバス130、または当該技術分野において公知の別の技術(例えばSDカード)を使用して、テクノロジモジュール115、120および125にアップロード可能である。
【0021】
いくかの実施形態において、それぞれのテクノロジモジュールにはさらに、デバイス135、140、145から受信したデータに基づき、機械学習モデルに対する入力データ値を生成するように構成された前処理コンポーネント115B、120Bおよび125Bが含まれている。いくつかの例では、デバイスからのローインプットは、機械学習モデルに対する入力データ値として直接に使用可能である。しかしながら別の複数の例では、それぞれの前処理コンポーネント115B、120Bおよび125Bは、データを変換するために一式のルールまたは関数を使用可能である。例えば、ローアナログ信号は、入力として使用可能な時系列データを供給するためにサンプリングされることが可能である。ローアナログ時系列データ信号は、定められた期間からスペクトログラムに変換可能である。スペクトログラム表現は、長さ1秒のロー信号から、半分が重なる窓によって0.5秒毎に生成可能である。これらのスペクトログラムは、機械学習モデル用の入力になり得る。
【0022】
特定のデバイスからのデータを変換するためのルールまたは関数は、インストールの前にそれぞれのデバイスにプリロード可能である。択一的にはルールまたは関数は、必要に応じて動的にロード可能である。例えば、一実施形態では、テクノロジモジュールのネットワークポートを介して特定のデバイスを接続するのに応じて、このテクノロジモジュールは、データを変換するためのルールまたは関数を、その特定のデバイスから、データソースからローカルに、またはコントローラシステム100の外から取り出し可能である。
【0023】
それぞれのAIアクセラレータプロセッサ115A、120Aおよび125Aは、1つ以上の出力データ値を生成するために、1つ以上の機械学習モデルを入力データ値に適用する。生成されると、テクノロジモジュール115、120および125により、バックプレーンバス130を介してCPUモジュール110に出力データ値が転送され、CPUモジュール110内のプロセッサにより、制御プログラムの実行中に出力データ値が使用される。
【0024】
一般に、当該技術分野において公知の任意のAIアクセラレータプロセッサをコントローラシステムにおいて使用可能である。例えば、一実施形態において、それぞれのAIアクセラレータプロセッサ115A、120A、125Aは、Intel Myriad Xである。AIアクセラレータプロセッサ115A、120Aおよび125Aは、高帯域幅に対して最適化されているが低電力動作のアーキテクチャを使用する。例えば、いくつかの実施形態では、チップメモリ内のデータ転送を最小化することによって、またはニューラルネットワーク計算において大量に使用される行列の乗算を加速することによって速度を上げるアーキテクチャが使用される。別の複数の実施形態では、ニューラルネットワークプリミティブおよび共通データ前処理関数がハードウェアに実装される。これにより、GPUベースのアクセレーションのような一般的な択一的な実装に比べて、高性能の演算が、低電力プロファイルにおいて可能になる。例えば、比較すると、NVIDIAs Tegra X2は、約1TOPSで動作するが15Wまでを使用し、これは、パッシブに冷却されるコントローラシステムでは実践的ではない。いくつかの実施形態では、それぞれのAIアクセラレータプロセッサ115A、120Aおよび125Aには、付加的なアプリケーションのフレキシビリティのために2つのLEON CPUおよび16個のSHAVEベクトルプロセッサも含まれる。すなわち、それぞれのAIアクセラレータプロセッサ115A、120Aおよび125Aは、データ収集部(例えばUSBまたはイーサネット(登録商標))からのパイプライン処理、前処理、機械学習およびコントローラシステムのバックプレーンバス130への出力をフレキシブルに実装するのに必要なすべてを有する。上で説明した例は、Myriad Xプロセッサに関連しているが、ここで説明され技術は、AIアクセラレータの任意の特定のタイプには限定されないことに注意されたい。このフレキシビリティにより、サポートベクトルマシン、ランダムフォレスト、隠れマルコフモデル、主成分分析、および当該技術において一般に公知のその他のもののような、ニューラルネットワークとは別の機械学習モデルのデプロイも可能になる。
【0025】
それぞれのAIアクセラレータプロセッサ115A、120A、125Aが、バックプレーンバス130を介して直接に接続されているという事実は、機械学習モデルの出力が、コントローラシステム100において同期的に使用可能であるという利点を有する。すなわち、バックプレーンバス130のそれぞれサイクルにおいて、現在の出力値は、共有できかつプロセス制御に使用できる。またこのような形式であれば、PROFINET(Process Field Net)のような他のインタフェースにバックプレーン情報を変換するインタフェースモジュールを使用することにより、テクノロジモジュール115、120、125は、すべてではないとしても、他のほとんどの制御システムに接続することも可能である。すなわち、このインタフェースを介して通信可能でありかつテクノロジモジュールと通信するためのインタフェース記述を有する任意のコントローラは、モジュールを利用可能である。
【0026】
図1の例には3つのテクノロジモジュール115、120、125が使用されていることが示されているが、一般に、テクノロジモジュールの個数は、例えば、高速の入力の個数またはアプリケーションに必要な処理パワーに基づき、必要に応じて増やすかまたは減らすことができる。さらに、複数のテクノロジモジュールが使用される場合、それぞれのテクノロジモジュールは、異なるタスク専用であってよい。例えば、テクノロジモジュール115は、LIDAR(Light Detection and Ranging)入力を処理可能であり、テクノロジモジュール120は、振動信号を処理可能であり、テクノロジモジュール125は、点群3次元カメラからのデータを処理可能である。テクノロジモジュール115、120からの最初の2つの入力の結果は、テクノロジモジュール125と共有することができ、特定のシナリオを認識するための処理に含めることができる。したがってホスト側のコントローラシステムの性能に限定されることなく、複雑かつ要求の厳しいアプリケーションを作成可能である。例えば30個の入力/出力モジュールを有するプロセスをすでに制御しているコントローラにこのようなモジュールを加えることさえも可能である。したがってユーザは、付加的なアプリケーションに対し、高性能の入力の機械学習分析を使用して、利用可能なインストレーションを使用可能である。これにより、開発リスク、付加的なケーブリング、インストールコストなどが抑えられる。
【0027】
引き続いて
図1を参照すると、いくつかの実施形態では、入力/出力ポート115C、120Cおよび125Cを介して、デバイス135、140、145に出力値を転送可能である。別の複数の実施形態において、AIアクセラレータプロセッサ115A、120Aおよび125Aは、出力値に基づいて1つ以上の制御命令を導出するために使用可能であり、これらの出力命令は、次に、入力/出力ポート115C、120Cおよび125Cを介してデバイス135、140、145に転送可能である。一実施形態では、それぞれの入力/出力ポート115C、120Cおよび125Cは、対応するテクノロジモジュールに入力データ値を転送するための入力ポートと、デバイス135、140および145のうちの1つに、出力データ値から導出した制御命令を転送するための出力ポートとを有する。入力ポートおよび出力ポートは、同じネットワークプロトコルまたは異なるプロトコルを使用可能である。例えば、一実施形態において、入力ポートは、デバイスとテクノロジモジュールとの間のUSB接続に対応するのに対し、出力ポートは、デバイスとテクノロジモジュールとの間のイーサネット
(登録商標)接続に対応する。
【0028】
高速の入力からのこの圧縮により、コントローラシステムの比較的低速のバックプレーン接続性と共に、複雑な計算の使用が可能になる。このアプローチの利点は、高帯域幅データが、コントローラシステム100の資源をロードしておらず、複雑な信号処理のようなタスク(例えば、カメラフィードに基づく対象体認識および追跡)が実行可能であることであり、その結果は、そのバックプレーンバス130を介してコントローラシステム100との同期性が利用可能になることと、メモリのようなリソース要求がバックプレーンバス130の共有メモリに限定されることと、テクノロジモジュール115、120、125が、既存のコントローラシステムに容易に組み込み可能であり、したがって容易に後付けできることとである。バックプレーンバス130とは択一的に、テクノロジモジュール115、120、125は、PROFINET(例えば、PROFINETインタフェースモジュールまたはPROFIBUSインタフェースモジュール)を介するデータ交換を可能にする標準インタフェースモジュールを介して、別の任意のタイプのコントローラシステムに接続可能である。
【0029】
図1に示した設計の1つの利点は、異なるタイプのセンサを接続して処理できることである。すなわち、市場における現在のシステム(例えばスマートカメラ、ドローン、デジタルコンパニオンなど)については、単一のモダリティまたはアプリケーションだけが解決されるのに対し、提案される設計については、USB、イーサネット
(登録商標)またはバックプレーン接続性を備えた任意のデータ作成システムが入力として使用可能であり、アプリケーションがカスタマイズ可能である。他のモダリティ(例えばサーマルビジョン)が好ましいか、または防爆環境における使用のような付加的な要求を満たすカメラが、異なるカメラベンダによって販売される場合、一般に、AIイネーブルデバイスの限定された提供品は使用できない。USB Visionおよびイーサネット
(登録商標) Visionのような標準工業インタフェースを介するプラグアンドプレイ接続性を可能にすることにより、
図1に示した設計は、顧客にとってフレキシブルでありかつ将来においても有効になる。すなわち、オリジナルのカメラが、もはや利用できないか、またはよりよいまたはより安価なモデルが市場に出た場合、ユーザは、システムをプログラミングし直す必要なしに、このモデルを単にプラグインすることができる(使用されるニューラルネットワークの予想される入力フォーマットに入力を自動的にリサイズするようにこのアルゴリズムを設定可能である)。またこのアプローチにより、混在データ(例えば、USBを介するカメラ入力)、バックプレーンを介する制御パラメータ、およびイーサネット
(登録商標)を介する共有プラント変数の同期処理が可能になる。
【0030】
図2には、いくかの実施形態にしたがい、CPUモジュールおよびテクノロジモジュールを有するコントローラシステム内で機械学習モデルを実行する方法が示されている。ステップ205~210からはじめて、コントローラシステムの外部のデバイスによって作成されるデータに基づき、1つ以上の機械学習モデルに対する入力データ値を生成する。より具体的にいうと、ステップ205では、例えば、それぞれのモジュール(
図1を参照されたい)に含まれている入力/出力ポートを使用し、デバイスによって作成されたデータをテクノロジモジュールによって読み出す。次に、ステップ210では、テクノロジモジュールにより、一連のルールまたは関数を使用し、データを前処理して、このデータを機械学習モデルに対する入力データ値に変換する。
【0031】
図2への参照をさらに続けると、ステップ215では、テクノロジモジュール内のAIアクセラレータにより、入力データ値に機械学習モデルを適用して、1つ以上の出力データ値を生成する。次に、ステップ220では、テクノロジモジュールにより、CPUモジュールとテクノロジモジュール(
図1を参照されたい)を接続するバックプレーンに出力データ値を書き込む。ステップ225ではCPUモジュールにより、バックプレーンから出力データ値を読み出す。次に、ステップ230では、CPUモジュールにより、出力データ値を利用するアプリケーションプログラムを実行する。このとき、アプリケーションプログラムは、デバイスを制御するために出力データ値を使用可能である。
図2の例では、ステップ235において、CPUモジュールにより、出力データ値に基づいて、デバイスに対する1つ以上の制御命令を生成し、ステップ240において、これらの制御命令をデバイスに転送する。
【0032】
コントローラシステムに対する高スループット入力のリアルタイム分析を可能にするのに加え、いくかの実施形態では、高速制御に対してテクノロジモジュールを使用可能である。例えば、テクノロジモジュールの1つの入力/出力ポート(例えばUSBインタフェース)を介して入力を供給可能であり、別の入力/出力ポート(例えばイーサネット(登録商標)インタフェース)を介して制御パラメータまたは別の出力を導出可能である。テクノロジモジュールは、コントローラシステムのバックプレーンを介してすべての出力を送出することを要求しないため、高速の制御アプリケーションが必要な場合、バックプレーンサイクルよりも高速に反応することが可能である。この場合、制御アプリケーションは、テクノロジモジュール内に完全に含まれることなり、これにより、テクノロジモジュールによって制御命令がデバイスに直接に供給される。このとき、テクノロジモジュールは、例えば、メタデータまたは状態の交換のために、より低い頻度でコントローラシステムの他のモジュールと、情報だけを交換可能である。考えられる一アプリケーションは、移動する加工品の正確な位置について通知するために、180Hzで720pビデオを分析する、Myriad Xチップの、ハードウェアアクセラレートされたステレオビジョン深さ抽出を使用可能である。
【0033】
図3には、いくつかの実施形態にしたがい、制御システムをプログラミングするためのワークフローが示されている。このワークフローは、シーメンスのTIA(Totally Integrated Automation)ポータルのようなGUIを使用する、PLCおよびAIアプリケーション用の統合型プログラミングフレームワークを利用している。AIおよびコントローラアプリケーションの最新式の統合は、オープンコントローラにおいて特定用途向けに実装可能であるか、または外部ハードウェア(例えばスマートセンサ入力またはGPUアクセラレートされた外部マシン)を使用可能であるかのいずれかである。したがって異なるプログラミングおよび統合フレームワークが必要であり、これにより、大抵の場合に特定用途向けのセットアップになる。このセットアップの複雑さは、単一のプログラミングフレームワークを介して、AIおよびコントローラアプリケーションのデプロイを可能にすることによって大幅に低減される。また、このフレームワークは、リソースに対して統合化された制御を有するため、機能を組み合わせるよりも、むしろ単一のプログラミングフレームワークを使用する場合の方が性能を改善させることができる。例えば、複数の局面によって使用される1つの変数に対し、ただ1つのメモリ位置を割り当てればよい。この変数は、そうでなければ、異なるツールにおいて処理されることになる。これにより、不必要なデータのコピーおよびメモリ割り当てが抑えられ、処理時間が節約される。
【0034】
引き続いて
図3を参照すると、ホストコンピュータにGUI(graphical user interface)が表示される。このGUIには、オートメーションプログラムをプログラミングするためのブロックベースのエディタが含まれている。第1ステップにおいて、プログラマは、GUIにおいて空のAI機能ブロックを作成する。ここで使用される「AI機能ブロック」という用語は、機械学習モデルへの参照を含めることをサポート可能な機能ブロックのことをいう。したがって、1つ以上の標準機能ブロックが、このような機能をサポート可能である場合、これらのブロックが使用可能であるか、そうでなければカスタムAI機能ブロックが使用可能である。
【0035】
プログラマは、GUIに表示される機能ブロックに機械学習モデルの視覚的な表現を挿入することに結果的に結び付く1つ以上のコマンドを供給する。例えば、一実施形態において、プログラマは、機能ブロックに視覚的な表現をドラッグする。図示された例において、これはテンソルフロー(登録商標)モデル(Tensorflow model)の形態で行われるが、別のモデルフレームワーク、例えば、カフェまたはチェイナーが使用可能である。
【0036】
次に、機械学習モデルの型シグネチャが決定される。この型シグネチャにより、この機械学習モデルの入力および出力が定められる。これは、例えば、機械学習モデルそれ自体のコードを分析することによって、または機械学習モデルに関連付けられたメタデータを使用して行うことができる。機械学習モデルの入力および出力に基づき、入力および出力に基づく機能ブロックの入力および出力が定められる。
図3の実施例において仮定しているのは、機械学習モデルが、必要な入力および出力についての情報を含み、この情報が、空のAI機能ブロックに自動的にパラメータ設定するのに使用され、結果的に160×160ピクセルサイズの必要な画像入力と、人間同士を見分けることが可能な特徴的な特徴のような出力とが得られることである。
【0037】
次に、プログラマは、入力ソースを接続してパラメータ設定する必要がある。例えば、USBカメラドライバを選択し、使用されるニューラルネットワークによって予想されるように、記録された画像を前処理しなければならない。このアプリケーションにおいて、カメラは、1秒当たりに60フレーム、16ビットの解像度の画像を記録するように設定され、画像から平均値が減算され、画像は、160×160ピクセルサイズに変倍され、ホワイトニングされ、RGBカラースキームを使用する。カメラドライバおよびすべての前処理は、テクノロジモジュールにおいて実行され、同様にAI関数ブロックにおいて機械学習モデルも実行される。次に、リアルタイムで更新された画像特徴は、バックプレーンを介してコントローラに伝えられる。コントローラシステムでは、右端の関数ブロックにおいて例示したように、この値が画像のデータベースと比較される。現在の画像特徴に最も近いスコアを有する、データベース内の画像は、最も可能性の高い検出された候補である。しかしながらコントローラにより、検出として結果を受け入れるために、特徴間の最大許容差分を表す閾値も提供される。スコア差分に基づき、データベース内の特定のユーザが、現在、カメラの方を向いている確率が計算される。この確率およびユーザのIDは、コントローラアプリケーションによって出力され、コントローラシステムによって実行される制御アプリケーションの別の複数の部分に(例えばユーザインタフェース設定のパラメータ設定するために)使用可能である。すべての接続が行われると、機能ブロックは、テクノロジモジュールによって実行可能なコードを生成するためにコンパイルされることが可能である。次に、このコードは、(例えば、バックプレーンバスまたはテクノロジモジュールの入力ポートを介して)テクノロジモジュールにデプロイ(deploy)可能である。
【0038】
以下の段落では、テクノロジモジュールのさまざまなメリットをより詳しく説明する。第1に、ここで説明されるテクノロジモジュールにより、先進の信号処理および高帯域幅入力の分析を標準コントローラシステムに直接に組み込み可能である。これにより、反応サイクル時間が、したがって制御性能が大幅に改善される。また他社ベンダ製のカスタムハードウェアは不要であり、これによって統合化、セットアップおよびメンテナンスが容易になる。最後に、AIコンセプトを使用して、コントローラシステムに新しいアプリケーションが可能になる。
【0039】
また複数のモジュールを加えることによって、コントローラにオーバヘッドを加えることなく、テクノロジモジュールによってAIアクセレーション性能も提供される。慣用のアプローチであれば、オープンコントローラにPCIeカードを挿入しなければないことになる。さらに性能が必要な場合には、さらに高性能のPCIeカードを選択しなければならないことになる。択一的には、特定のコントローラバージョンにAIコプロセッサを含めることになる。すべてのデータ収集および前処理は、コントローラCPUによって取り扱われる必要があり、したがってその性能に影響が及ぼされることになる。また、コントローラがPCIeを介して供給可能であり、サポートされる電力定格において適した拡張カードは限定される。高性能カードには、アクティブな冷却が必要であり、この場合には部品の寿命および周囲温度定格に影響が及ぼされる。付加的なテクノロジモジュールをプラグ接続することにより、インタフェース(例えばUSBおよびイーサネット(登録商標))の個数と共に性能が向上する。またすべてのデータ収集および前処理は、モジュールにおいて行われるため、コントローラにおける性能に及ぼされる影響は最小限である。消費電力は、広い領域にわたってパッシブに放散され、また付加的な電源が必要な場合には、別体の電源モジュールによって供給可能である。これにより、ここで説明しているテクノロジモジュールは、最新のアプローチよりも格段にフレキシブルになり、効率的になり、拡張または縮小可能になる。また、このテクノロジモジュールにより、ファンの軸受にマイナスに作用し得る振動および高い周囲温度、ならびにコントローラシステム内に集中された熱源を有する過酷な工業環境における使用が可能になる。
【0040】
ここで説明されたテクノロジモジュールにより、複数ソースおよび複数モダリティデータの集中型デバイスレベル分析が容易になる。PLCおよび他のコントローラシステムは、現在、プラントデータ用のバックボーンプラットホームである。カメラまたは振動ストリームのような高速の入力とプラントデータとを組み合わせることは、多くのアプリケーションにおいて、例えば、マシンの動作状態を考慮するために、重要であるかまたは必要でもある。別のアプリケーションでは、3次元距離情報用のLIDAR、現在の表面温度分布を測定するためのサーマルカメラ、および現在の読み取り値とプロセスの状態とを関連付けるプラント制御変数のような複数のモダリティ入力が必要である。これは、バックプレーンバスを介してプラントパラメータを共有しかつ例えばUSBを介してカメラ入力を記録するテクノロジモジュールには当然、実装される。このアプローチにより、カスタマサイトにおけるセットアップが容易になり、したがってコストが低減され、新たなアプリケーションを市場に出すための時間が短くなり、ソリューションの保守容易性が改善される。
【0041】
ここでは説明されるテクノロジモジュールのプラグアンドプレイの側面により、現在使用されているコントローラシステムにAI機能を後付け可能である。例えば、テクノロジモジュールは、すべてではないとしても多くのコントローラシステムに使用されるバックプレーン接続性の標準に準拠している。テクノロジモジュールにプログラムをアップロードした後、このテクノロジモジュールは、コントローラシステムから専用のドライバを要求されることなく動作する。すなわち、例えばET200SPテクノロジモジュールは、任意のET200SPコントローラに接続可能である。さらに、このテクノロジモジュールは、標準インタフェースモジュールを使用し、PROFINETを介して他のコントローラに接続可能である。この機能により、AI機能を追加したい顧客はそのインフラストラクチャに大幅な変更する必要がないため、これらの顧客に対してコストが低減される。またソリューションプロバイダは、AIアプリケーションをカスタマイズし、これをテクノロジモジュールにデプロイし、インストレーションソフトウェアを出荷するのではなくむしろハードウェアデバイスと共にソリューションを販売することも可能である。したがってテクノロジモジュールは、エンドカスタマ側にAIの知識を必要としない明確な、あらかじめ定められたタスク用に構成可能である。
【0042】
このテクノロジモジュールにより、専用のコントローラを必要とすることなく、AI機能の分散型の小規模なアクセレーションが可能になる。AIテクノロジモジュールは、標準モジュール(例えばPROFINETインタフェースモジュール)と組み合わせてデプロイすることが可能である。この組み合わせはサイズが小さく、複数のシステムをプラント全体に分散可能である。例えば、これらの組み合わせの1つは、設備のそれぞれのロボットに配置することができ、これにより、ロボットプロセスを視覚的に監視しながら、すべてのAIモジュールに繋がっている1つのコントローラを介して、すべてのロボットが制御される。このセットアップにより、全体的なデプロイメントの実現およびメンテナンスコストが低減される。
【0043】
このテクノロジモジュールにより、制御パラメータとAI入力との同期的な使用が容易になる。AIアクセレーションにバックプレーンベーステクノロジモジュールを使用することにより、当然、可能になるのは、テクノロジモジュールの出力が、コントローラの他の入力および出力と同期して共有されることである。このことは、制御システムの制御サイクルにAIの結果を確実に含めるために重要である。例えば、プロセスの視覚ベースの分析のために外部アクセラレータを使用する択一的な解決手段は、例えば、結果をバッファリングすることがあり、したがって誤った結果および制御設定に結び付き得る、プラントパラメータおよび視覚分析の不適合を生じさせる。システム間でクロックを同期させるかまたは付加的なタイミング信号を交換するためには付加的な作業が必要になり得る。同期性の側面は、確実かつ再現可能な性能にとって重要である。
【0044】
テクノロジモジュールがシステムの他のモジュールから独立していることにより、処理を物理的に分散させることができ、電力消費が少ないことにより、パッシブな冷却および高温環境におけるアプリケーションが可能になる。ハードウェアに主電力消費アルゴリズム(例えばニューラルネットワークプリミティブ)を実装するAIアクセラレータプロセッサを使用することにより、2W以下の低電力消費で高性能が可能になる。このことにより、今度は、パッシブな冷却を備えたテクノロジモジュールへのデプロイが可能になる。より高い性能のためには複数のテクノロジモジュールを組み合わせることができる。複数のアクセラレータを追加する場合にはアクティブな冷却は不要である。というのは、それぞれのモジュールは、熱を放散するための物理的な定められた底面積を有するからである。また複数のモジュールのヘッドは、広い領域にわたって物理的に分散されているため、ホットスポットはなく、システムは、より高い周囲温度環境において使用可能である。この機能により、固定の周囲温度では、コントローラシャーシ内に、より高性能な他単一な中央のチップを有する一般的なアプローチに比べて、より高い性能が可能になる。
【0045】
ここではさまざまな様相および実施形態を開示したが、他の様相および実施形態は、当業者には明らかであろう。ここで開示されたさまざまな様相および実施形態は、説明を目的としており、制限することを意図しておらず、真の範囲および精神は、以下の特許請求の範囲によって示される。
【0046】
ここで使用されている実行可能なアプリケーションには、オペレーティングシステム、コンテキストデータ収集システムまたは別の情報処理システムのあらかじめ定められた機能のようなあらかじめ定められた機能を、例えば、ユーザコマンドまたは入力に応じてプロセッサに実現させるようにするコードまたは機械読み出し可能命令が含まれる。実行可能な手続きは、1つ以上の特定のプロセスを実行する、コードまたは機械読み出し可能命令、サブルーチンの一セグメント、または実行可能なアプリケーションのコードまたは部分の他の別個のセクションである。これらのプロセスには、入力データおよび/またはパラメータの受信、受信された入力データへの演算の実行、および/または受信された入力パラメータに応じた機能の実行、および結果的に得られた出力データおよび/またはパラメータの供給が含まれていてよい。
【0047】
ここで使用されるGUI(graphical user interface)には、ディスプレイプロセッサによって生成され、プロセッサまたは他の装置とのユーザの対話と、関連付けられたデータ収集と、機能の処理とを可能にする1つ以上のディスプレイ画像が含まれる。GUIにはまた、実行可能な手続きまたは実行可能なアプリケーションが含まれる。実行可能な手続きまたは実行可能なアプリケーションは、GUIディスプレイ画像を表す信号をディスプレイプロセッサに生成させる。これらの信号は、ユーザに見える画像を表示するディスプレイデバイスに供給される。このプロセッサにより、実行可能な手続きまたは実行可能なアプリケーションの制御下において、入力デバイスから受信された信号に応じて、GUIディスプレイ画像が操作される。このようにしてユーザは、入力デバイスを使用してディスプレイ画像と対話することができ、ユーザは、プロセッサまたは他のデバイスと対話することができる。
【0048】
ここの機能およびプロセスステップは、自動的に実行可能であるか、またはユーザコマンドに完全もしくは部分的に応じて実行可能である。自動的に実行される(1つのステップを含む)アクティビティは、このアクティビティをユーザが直接に起動することなく、1つ以上の実行可能な命令またはデバイス操作に応じて実行される。
【0049】
図面のシステムおよびプロセスは、排他的なものではない。同じ目的を達成するために、本発明の原理にしたがい、他のシステム、プロセスおよびメニューを導出可能である。本発明を、特定の実施形態を参照して説明したが、ここで示されかつ説明されたこれらの実施形態および変化形態は、説明だけを目的としていることを理解されたい。当業者は、本発明の範囲を逸脱することなく、現在の設計に対する変更を行うことができる。ここで説明したように、さまざまなシステム、サブシステム、エージェント、マネージャおよびプロセスは、ハードウェアコンポーネント、ソフトウェアコンポーネント、および/またはこれらの組み合わせを使用して実現可能である。ここでの請求項の構成要素は、この要素が「~ための手段」という文言を使用して明確に示されているのではない場合には、米国特許112条(f)の規定に基づいて解釈されるものではない。