(58)【調査した分野】(Int.Cl.,DB名)
各インテリジェントプログラマブルロジックコントローラ装置の前記データ解析構成要素によって使用される前記1つまたは複数の推論アルゴリズムは、納入者指定された1つまたは複数の知識モデルに基づいて構成されている、
請求項1記載のシステム。
前記納入者指定された1つまたは複数の知識モデルは、前記複数のインテリジェントプログラマブルロジックコントローラ装置の1つもしくは複数の能力に関する情報、前記複数のインテリジェントプログラマブルロジックコントローラ装置において入手可能な診断知識、および/または、前記複数のインテリジェントプログラマブルロジックコントローラ装置によって使用されるデータレイアウト情報を有する、
請求項3記載のシステム。
前記方法はさらに、前記第1のインテリジェントプログラマブルロジックコントローラによって、前記制御プログラムの実行時間中に1つまたは複数の宣言知識モデルに基づいて前記1つまたは複数の推論アルゴリズムを動的に修正することを有する、
請求項6記載の方法。
前記納入者指定された1つまたは複数の知識モデルは、前記第1のインテリジェントプログラマブルロジックコントローラの1つもしくは複数の能力に関する情報、前記第1のインテリジェントプログラマブルロジックコントローラにおいて入手可能な診断知識、および/または、前記第1のインテリジェントプログラマブルロジックコントローラによって使用されるデータレイアウト情報を有する、
請求項8記載の方法。
【技術分野】
【0001】
本願の開示内容は、インテリジェントPLCのための分散データ管理システムに関するものである。これら種々のシステムおよび方法は、産業オートメーション用途にも、また、インテリジェントPLCが使用される他の種々の用途にも、使用することができる。
【0002】
背景技術
プログラマブルロジックコントローラ(PLC)は、出力装置の状態を制御するために入力装置の状態についてのデータを連続的に収集するソフトウェアを実行するように構成された特殊なコンピュータ制御システムである。PLCは典型的には、プロセッサ(揮発性メモリを備え得る)、アプリケーションプログラムを有する揮発性メモリ、および、オートメーションシステムの他の装置に接続するための1つまたは複数の入/出力(I/O)ポートである3つの主要な構成要素を備えている。
【0003】
従来のオートメーションシステムはピラミッド構造に従ったものであり、このピラミッド構造は、PLCから全ての原データ(数百万個のサンプル点)を上位層(たとえばSCADAまたはMESレベル)のヒストリアンへ伝送する必要がある。上位レベルへデータをプッシュ送信することによって、PLC挙動からインサイトを抽出するための解析の有効性を制限して制御最適化のための制御プロセスへ介入する待ち時間を増大させるデータの分解能および準備が削減する。データを処理するためのPLCの特権的アクセスとコントローラロジックとに基づいて深層データ解析をサポートするPLCの能力は、従来のシステムでは十分に活用されていない。後者は、静的なコントローラロジック/構成に拠るものであり、かかるコントローラロジック/構成は現在のところ、制御ロジックの動的な適応変化またはコミッショニング後段階をサポートしておらず、また、他のPLCのデータやコンテキストが必要な場合にこれらの認識もサポートしていない。
【0004】
従来のオートメーションシステムの他の欠点として、フィールドレベルコントローラが知識データベースを保有および管理しないという欠点もある。たとえば、従来の大半のイーサネットベースのコントローラは、基本的に監視レベルシステムへ原データを伝送するために当該コントローラのマスタに接続されており、その際には、監視レベルシステムのピアデータ、知識および挙動認識することはなく、これによって上位層に意思決定プロセスを押し付けることになる。より深い解析インサイトを得るためにコントローラのコンテキストは使用されない。現在、解析データモデルは、コントローラのコンテキスト情報(たとえば、データリバースエンジニアリングのために使用できる機能ブロックメタデータの表現)を入手できない上位レベルで構成される。非効率的な意思決定。下位レベルの解析データモデル、および、ローカルに記憶された過去の入力/出力データおよび知識が入手できないことは、ローカルの装置を制御するための意思決定の効率に影響を及ぼす。
【0005】
従来のオートメーションシステムは、PLCにローカルに保有されているヒストリアン知識の量でも極度に制限される。かかる制限により、PLCの機能性も制限される。たとえば現在のところ、最近の過去の情報(すなわち短期間データ)が必要な場合にサイクル内処理(in-cycle processing)を実行することができない。よって、外部で計算を行ってPLCへプッシュ送信により返すことになる。その上、PLCのローカルのヒストリアンが不足していることにより、システム動作の最適化のための制御パラメータの動的適応をサポートするリアルタイムデータ解析の実行の可能性も制限される。
【0006】
さらに、PLCおよび他の制御層装置のローカル情報が無いと、従来のオートメーションシステムにおいて有効かつロバストなインフィールド解析ソリューションを実現することは、不可能ではなくても困難である。現在、インフィールド解析の従来のソリューションはバッチ処理として実装され、過去の製造の回顧的な解析をサポートする(たとえば過去のバッチ)。製造のオンライン解析は、ある程度の遅延を伴わないと行うことができない。よって、解析に基づいて制御に直接介入することは、タイムクリティカルな処理にはしばしば非実用的であることが多い。
【0007】
発明の概要
本発明の実施形態は、たとえばインテリジェントPLC等の制御層装置によって提供される分散記憶システムに関する方法、システムおよび装置を提供することにより、上記の問題および欠点のうちいずれか1つまたは複数に取り組み、これを解決するものである。たとえば、本願にて記載されている技術は、分散システムからインサイクル解析処理エンジンへデータおよび解析を分散することを可能にすることによって、分散データインフラストラクチャにおいてローカルのヒストリアンデータおよびコンテキスト付与知識を使用可能にするという課題に取り組むものである。本願にて記載されている技術は特に、種々の産業オートメーション用途に非常に適しているが、これに限定されない。
【0008】
本発明の一部の実施形態である、産業製造環境においてデータを記憶するためのシステムでは、当該システムは、複数のインテリジェントプログラマブルロジックコントローラ装置に記憶された分散データ管理システムを備えている。各インテリジェントプログラマブルロジックコントローラ装置は、プロセスイメージ領域を有する揮発性のコンピュータ可読記憶媒体と、不揮発性のコンピュータ可読記憶媒体と、製造ユニットへ動作指令を供給するように構成された制御プログラムと、各スキャン周期中に製造ユニットに関連するデータを用いてプロセスイメージ領域を更新するために構成された入力/出力構成要素と、分散データ管理システムのインスタンスを有する分散データ管理構成要素と、コンテキスト付与構成要素と、ヒストリアン構成要素と、データ解析構成要素とを備えている。コンテキスト付与構成要素は、オートメーションシステムコンテキスト情報を用いてプロセスイメージ領域の内容を注釈することにより、コンテキスト付きデータを生成するように構成されている。ヒストリアン構成要素は、プロセスイメージ領域の内容とコンテキスト付きデータとをローカルに記憶するように構成されており、かかるローカルな記憶により、これらの内容を分散データ管理システム全体にわたって分散データ管理構成要素が入手することができる。データ解析構成要素は、分散データ管理構成要素を用いて、分散データ管理システム全体にわたって記憶されたデータを解析するための1つまたは複数の推論アルゴリズムを実行するように構成されている。
【0009】
一部の実施形態では、上述のシステムはさらに、制御プログラムの実行時間中に1つまたは複数の宣言知識モデルに基づいて1つまたは複数の推論アルゴリズムを動的に修正するように構成された知識管理構成要素も備えている。この宣言知識モデルは、たとえば、ウェブオントロジー言語(OWL)を用いて表現されるオントロジー、予測モデルマークアップ言語(PMML)標準規格を用いて表現される予測モデル、および/または、ルール交換フォーマット(RIF)標準規格を用いて表現される1つもしくは複数のルールを含むことができる。
【0010】
上述のシステムの一部の実施形態では、各対応するインテリジェントプログラマブルロジックコントローラ装置のデータ解析構成要素によって使用される推論アルゴリズムは、納入者指定された1つまたは複数の知識モデルに基づいて構成されている。この納入者指定された知識モデルは、たとえば、複数のインテリジェントプログラマブルロジックコントローラ装置の1つもしくは複数の能力に関する情報、複数のインテリジェントプログラマブルロジックコントローラ装置において使用可能な診断知識、および/または、複数のインテリジェントプログラマブルロジックコントローラ装置によって使用されるデータレイアウト情報を有することができる。
【0011】
上述のシステムの種々の構成を、ホストハードウェアの処理能力に基づいて調整、強化または精巧化することができる。たとえば一部の実施形態では、各インテリジェントプログラマブルロジックコントローラ装置は、さらに1つまたは複数のプロセッサを備えており、このプロセッサは、制御プログラムを実行し、当該制御プログラムの実行と並行して、1つまたは複数の推論アルゴリズムを制御プログラムの実行と並行して修正するように構成されている。
【0012】
本発明の他の実施形態では、産業製造環境においてデータを記憶する方法は、第1のインテリジェントプログラマブルロジックコントローラが、複数のスキャン周期にわたって製造ユニットへ動作指令を供給するように構成された制御プログラムを実行することと、複数の各スキャン周期中に、製造ユニットに関連するデータによってプロセスイメージ領域を更新することとを含む。本方法はさらに、第1のインテリジェントプログラマブルロジックコントローラが、オートメーションシステムコンテキスト情報を用いてプロセスイメージ領域の内容を注釈することにより、コンテキスト付きデータを生成することと、プロセスイメージ領域の内容およびコンテキスト付きデータを当該第1のインテリジェントプログラマブルロジックコントローラ上のローカルの不揮発性のコンピュータ可読媒体に入れることとを含む。このローカルの不揮発性のコンピュータ可読媒体は、第1のインテリジェントプログラマブルロジックコントローラと複数の第2のインテリジェントプログラマブルロジックコントローラとにわたって記憶された分散記憶システムの一部である。製造ユニットに関連するデータをローカルの不揮発性のコンピュータ可読媒体に入れることは、たとえば、当該製造ユニットに関連するデータおよび動作指令の変化に基づいてトリガすることができる。第1のインテリジェントプログラマブルロジックコントローラは、分散記憶システムにわたって記憶されたデータを解析するための1つまたは複数の推論アルゴリズムを実行する。
【0013】
上述の方法は、本発明の異なる実施形態において付加的な構成、精巧化または他の変更を有することができる。たとえば一部の実施形態では、本方法はさらに、第1のインテリジェントプログラマブルロジックコントローラが、制御プログラムの実行時間中に1つまたは複数の宣言知識モデルに基づいて1つまたは複数の推論アルゴリズムを動的に修正することも含む。上述の方法の一部の実施形態では、ローカルの不揮発性のコンピュータ可読媒体は、表と等価のビューを有するNoSQLデータベースを有する。
【0014】
上述の方法で使用される推論アルゴリズムは、たとえば、納入者指定された1つまたは複数の知識モデルに基づいて構成することができる。たとえば、これらの納入者指定された知識モデルは、第1のインテリジェントプログラマブルロジックコントローラの1つもしくは複数の能力に関する情報、第1のインテリジェントプログラマブルロジックコントローラに存在する診断知識、および/または、第1のインテリジェントプログラマブルロジックコントローラによって使用されるデータレイアウト情報を有することができる。
【0015】
一部の実施形態では、上述の方法は並列計算環境で実行されることができる。たとえば一実施形態では、第1のインテリジェントプログラマブルロジックコントローラは、第1のインテリジェントプログラマブルロジックコントローラに備えられたプロセッサの第1のコアを用いて制御プログラムを実行する。推論アルゴリズムは、第1のインテリジェントプログラマブルロジックコントローラに備えられた当該プロセッサの第2のコアを用いて動的に修正されることができる。
【0016】
本発明の他の実施形態では、産業製造環境においてデータを記憶するための製品は、上述の方法を実施するためのコンピュータ実行可能な指令を保持する非一時的な有形のコンピュータ可読媒体を備えており、当該コンピュータ可読媒体は、上述の付加的な構成を有し、または有しない。
【0017】
以下の実施例の詳細な説明から、本発明の付加的な構成および利点が明らかであり、この実施例の詳細な説明は、添付の図面を参照して進める。
【0018】
以下の詳細な説明を添付の図面と関連づけて読めば、本発明の上記または他の側面を最良に理解することができる。本発明を解説するため、図面には現時点で有利な実施形態を示しているが、本発明はこれらの開示されている特定の手段に限定されないと解されるものである。
【図面の簡単な説明】
【0019】
【
図1】インテリジェント装置がオートメーションシステムデータの分散データ管理システム(DDMS)を構成する、一部の実施形態の産業オートメーションシステムを示すアーキテクチャ図である。
【
図2】一部の実施形態のインテリジェントPLCの構想図である。
【
図3】分散されたデータならびに知識管理および分散解析のための、一部の実施形態のDDMSアーキテクチャを示す図である。
【
図4】一部の実施形態の、DDMSノードへ情報を伝送できる態様およびDDMSノードから情報を伝送できる態様の構想図である。
【
図5】一部の実施形態の、DDMSノードインスタンスが分散データインフラストラクチャへ/からの大量のデータ伝送をサポートする態様の他の図である。
【
図6】一部の実施形態の、外部の装置またはアプリケーションによってトリガされるインテリジェントPLC論理ルール更新の一例を示す図である。
【
図7】一部の実施形態の、DDMSインフラストラクチャにわたってシャーディングされたデータアクセスを実施できる態様を示す図である。
【
図8】本発明の一部の実施形態の、分散データ管理システム内においてデータを検索および処理するための3ステッププロセスを示す図である。
【0020】
詳細な説明
本願では、一般的に、複数のインテリジェントプログラマブルロジックコントローラ(「インテリジェントPLC」という)にわたって具現化される分散記憶システムに関するシステム、方法および装置を記載している。本願で記載されている複数の実施形態ではインテリジェントPLCは、複数の異種ノードのクラスタの中のノードであって、複数の役割(たとえば制御、広帯域幅のデータ取得等)のうち1つを果たし、従来のMESシステムでは不可能なレベルでの組み込み解析を行うために必要に応じて他のノードからデータをプル受信するノードである。さらにインテリジェントPLCは、ローカルの知識または他のノードからの知識を検索することができる。かかる能力は、ローカルのヒストリアンおよび知識モデルと推論能力とインフィールド解析と相俟って、クラスタについての強力な知識ドリブン型の分散解析を実現する道を開き、これにより、インテリジェントPLCクラスタに対して強力なリアルタイムのデータ記憶、知識記憶、解析、および、オートメーションプロセス全体に係るインタフェースエンジンが可能になる。インテリジェントPLCは、(1)真のインフィールド解析に基づく機能性の向上と、(2)構成要素のコンフィギュレーション、追加、カスタマイズ、変更および除去のフレキシビリティの向上と、(3)迅速なインストール、既存の機能の拡張および開発能力とを具備した制御システムを定義するために、分散データおよび解析技術を向上させることができる。上記の事項はいずれも、人員数を劇的に削減し、これらの機能をインストール、動作、最適化、監視、診断するために必要な人員の専門技術と、これらの機能を実行するために必要な訓練とを、劇的に削減することができる。本願で記載されている技術は、たとえば、産業オートメーションシステムにわたる時間のコヒーレントなイメージ、データ(たとえば時系列データ)、データ編成、およびデータ名を提供し、これらが作成されると直ちにデータを使用可能にするために使用することができる。
【0021】
図1は、インテリジェント装置がオートメーションシステム用の分散データ管理システム(DDMS)を構成する、一部の実施形態の産業オートメーションシステム100を示すアーキテクチャ図である。DDMSは、プロセス情報を含む分散型のデータおよび知識ベースであって、その最上部にデータ解析層を有する分散型のデータおよび知識ベースとして定義することができる。分散は、ノードクラスタ全体に存在する。DDMSの各インスタンスはクライアントおよびサーバの役割を果たし、特定の時期において、これらのうちいずれか1つをDDMSインスタンスの役割に従ってアクティベートすることができる。通常は、プロセスを開始するノードがクライアントとして動作し、データを処理または記憶する他の残りのノードはサーバとして動作する。しかし、1つのノードが同時にクライアントかつサーバとして動作し、一度に1つまたは複数のプロセスを実行することができる。これは、現在の処理要求と仕事負荷とに応じて変わり得る。
【0022】
図1の実施例では、各DDMSノードはインテリジェントPLCである。簡単にいうと、インテリジェントPLCは複数の技術的機能を提供するものであり、これらの技術的機能は、異なる実施形態では複数の異なる組合せで存在し得る。たとえばインテリジェントPLCは、タイムスタンプが付された高分解能のデータを短期的/中期的にアーカイビングできる、時系列データの効率的な記憶メカニズム(すなわち「ヒストリアン」機能)を備えている。データの忠実性が高いことにより、失われるイベントがあっても、それは僅かである。効率的な圧縮アルゴリズム(たとえばスウィンギングドア(swinging door)の一バリエーション)を使用して、所要記憶量および所要通信量を削減することができる。インテリジェントPLCについては、後で
図2を参照して詳細に説明する。ここで留意すべき点は、
図1は、本願で記載された技術と共に使用できるアーキテクチャの高度に簡素化された概観を示していることである。このアーキテクチャは、実世界の実装で存在し得る追加の装置、たとえばルータ装置、追加のデータネットワークとの接続部等を含むように改良することができる。
【0023】
ここで、
図1のDDMSノードはインテリジェントPLCであるが、本発明にはかかる限定がなされないことに留意すべきである。他の実施形態のDDMSは、DDMSのインスタンスの役割を果たすために何らかの最低限の計算要求を満たす他のインテリジェント装置(たとえば互換性のあるオペレーティングシステム、メモリおよびディスク)であるノードを有することができる。さらに、
図1に示されているアーキテクチャは、いかなるマスタまたは中央ノードも有しないことにも留意すべきである。
【0024】
分散データ管理は、種々の実施形態において異なる技術を用いて、産業オートメーションシステム100にわたって実施することができる。一部の実施形態では、インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cによって生成されたデータを複数の装置にわたって記憶するために、分散ファイルシステム(DFS)が使用される。DFSによって、分散データベースシステムに係る非常に低い同等のコストで処理力および記憶の観点で迅速にスケーリングする能力が得られる。よって、多くの並列化可能な処理演算を有する用途では、DFSはデータの分散記憶を行うためのより効率的なソリューションを提供することができる。他の実施形態では、インテリジェントPLCは、スケーラビリティおよび処理能力と共に使用できる、原子性、一貫性、独立性および永続性等の属性を提供するロバストな分散データベース管理システムを具現化するために使用される。これは、多くのノードでパーティショニングされたデータアクセスの抽象化として、SQLに類する手法でのクエリのサポートを行うデータ管理層を提供することができ、また、データが存在するノードにおいてローカルで行われるデータ処理の利点(すなわちデータローカル性)を活用できる機能も提供することができる。
【0025】
図1の実施例では、産業オートメーションシステム100によって使用される分散データ管理システムのノードは、インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cを備えている。
図1は6つのインテリジェントPLCしか示していないが、もちろん、本願にて記載されている技術と共に使用するインテリジェントPLCの数は任意数とすることができる。よって、
図1で提示されているアーキテクチャによってサポートされる分散データ管理システムは、システム要求に依存して計算リソースを追加または除去することによって動的に拡張または縮小することができる。さらに、専用または汎用のハードウェアリソース(たとえばサーバラック、追加のコントローラ等)を追加することによって、分散データ管理システムの記憶容量を増加させることもできる。たとえば、後で
図3を参照して詳細に説明するように一部の実施形態では、インテリジェントPLC105A,105B,105C,110A,110Bおよび110C上に記憶されたデータの長期間記憶を実現するために、分散データベース115サーバが分散データ管理システムのノードとして追加される。ノードは、当該分野において周知の任意の技術を用いて分散データ管理システムに追加することができる。たとえば一部の実施形態では、分散データ管理システムと通信するための機能を有する新規の装置を設置することができる。他の実施形態では、たとえばスクリプト実行によるプッシュ技術を用いて、かかる機能をリモートで新規または既存の装置にアップロードすることができる。
【0026】
各インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cはそれぞれ分散データ管理構成要素を備えている。一部の実施形態では、各インテリジェントPLCに備えられている分散データ管理構成要素は、同一のインタフェースを介してコントローラからのデータを共用メモリ内またはファイルシステム上に記憶することができる。たとえば、以下にて
図3を参照して詳細に説明するように、各インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cは、ローカルにヒストライズ(historize)されたデータの名前、意味および編成のローカルビューを有する組み込まれたプロセスヒストリアンを備えている。分散データ管理構成要素を用いて、各ヒストリアンによって生成されたデータをシステム100全体において共有することができる。
【0027】
インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cに記憶されたデータは、コントローラ内部で実行されるクライアントアプリケーションによって使用することができ、または、
図1に示されたシステム100によって提供される分散データ管理システムへアクセス権限を有する全ての装置によって使用することができる。記憶の他にさらに、各インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cはクラスタ管理サービスおよび処理エンジンを備えることもでき、これは、たとえば分散記憶および通信等のタスクと分散処理および協調制御とを可能にするものである。
【0028】
インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cにわたってデータの場所を特定してデータを管理するために使用される技術は、分散記憶がどのように実現されているかに応じて変わり得る。たとえば、分散記憶のためにHadoop(ハドゥープ)DFS等のDFSを使用する実施形態では、インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cのうちいずれか1つまたは複数が「名前ノード」として機能する。各名前ノードがそれぞれ、DFS内の全てのファイルのディレクトリツリーを管理し、システム100全体のどこにファイルデータが記憶されているかを追跡する。クライアントアプリケーションは、ファイルの場所を特定するため、またはファイルに操作(追加、コピー、移動、削除等)を行うために名前ノードと通信することができる。名前ノードは、成功した要求に対して、当該データが記憶されている関連する装置のリストを返すことによって応答する。ここで留意すべき点は、名前ノードは、DFSに係る失敗の唯一のポイントであることである。よって一部の実施形態では、冗長性を得るために複数の名前ノードを使用するができる。
【0029】
分散記憶を実現するために分散データ管理システムを使用する実施形態では、シャーディング技術を用いてインテリジェントPLC105A,105B,105C,110A,110Bおよび110C上にデータを記憶することができる。当該分野において周知であるように、シャーディングは、分散データベースがそのパーティショニングされたデータの場所を特定するために使用する手法である。このメカニズムはしばしば、分散と高スループットの演算とを必要とするデータセットによる配置をサポートするために使用されることが多い。このことは、コントローラ間でデータを分けるために使用される判断基準であるシャーディングキー定義によって行われる。このシャーディングマッピングは、専用のサーバインスタンスによって記憶され、または各コントローラ内に記憶されることができる。いずれの場合においても、シャーディング情報には全ての装置がアクセスすることができる。各シャーディングキー保有装置は、他のピアとのデータ伝送プロセスを協調制御することができる。というのも、シャーディングメタデータがデータ/コントローラ場所マッピングを保持しているからである。よって、分散データ管理システム(たとえばインテリジェントPLC105A,105B,105C,110A,110Bおよび110Cを用いて実装された分散データ管理システム)は、ネットワーク全体における並列化と低データトラフィックとを達成することができる。
【0030】
インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cは、標準規格のネットワークプロトコル(たとえばTCP、RPC等)を用いてネットワーク接続を介して互いに通信することができる。かかる通信はたとえば、分散データフェッチおよび分散処理タスクを実行するために使用することができる。いずれの場合においても、プロセスはどのコントローラからも開始することができ、後者は、必要なデータを記憶する他のコントローラとの新規の接続をトリガする。ここで、複数の異なるネットワークにわたってブロードキャストメッセージを送信する必要はないことに留意すべきである。というのも、要求されたデータを有するコントローラのみが協調制御装置(たとえば、データフェッチまたは分散処理タスク/マップ縮小(Map Reduce)ジョブを開始したコントローラ)のターゲットだからであり、不要なネットワークトラフィックが無くなる。さらに、処理が分散処理タスクである場合には、ネットワークを介して引渡されるデータは、処理の結果以外には無い。このことは、計算コードを送信して、関心対象のデータを保有するコントローラ上にてこの計算コードを実行させることにより達成される。
【0031】
相互間通信の他、インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cは他のあらゆるTCP、オープンデータベース接続(ODBC)および/またはOPC統一アーキテクチャ(UA)クライアントと通信することもでき、たとえば分散データベース115、データ解析/可視化ステーション120、1つまたは複数のヒューマンマシンインタフェース(HMI)125、SCADAサーバ130、ヒストリアン/PIMサーバ140、および、製造実行システム(MES)ならびに/もしくはラボラトリ情報管理システム(LIMS)と関連するサーバ145等と通信することもできる。アーキテクチャの各構成要素は、ローカルイントラネット(たとえばイーサネットによって実装されるもの)と1つまたは複数のインターネット150,155,160を用いて接続することができる。
【0032】
分散データベース115は、インテリジェントPLC105A,105B,105C,110A,110Bおよび110C上に存在しなくなったデータを記憶する大容量の記憶サーバである。分散データ管理システムはかかるデータを未だ入手することができ、このデータは、当該システム内の他の分散ノードと全く同様に振舞う。分散データベース115はたとえば、リアルタイムの分散型の長期間データアクセスを提供できるスケーラブルかつ高速のデータ記憶装置であるNoSQLを用いて実装することができる。これは、他のリレーショナルデータベース構成と同様に、ODBCコネクタを備えることができる。
【0033】
産業オートメーションシステム100のクライアント局はいずれも、アルゴリズムストアからインテリジェントPLC105A,105B,105C,110A,110Bおよび110Cのうちいずれか1つまたは複数へアルゴリズムを導入することができる。インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cは、分散方式で(複数のコントローラ上で)このアルゴリズムを実行させ、その結果を集約してクライアント局へ送信することができる。
図1の実施例では、データ解析/可視化ステーション120が、インテリジェントPLC105A,105B,105C,110A,110Bおよび110C上にアップロードして実行できるアプリケーション/アルゴリズムストアも保有している。さらに、一部の実施形態では、製造設備全体に配置されたヒューマンマシンインタフェース(HMI)125を使用して、分散データ管理システムに直接アクセスし、またはデータ解析/可視化ステーション120を介してアクセスすることができる。一部の実施形態では、データ解析/可視化ステーション120はグラフィカルユーザインタフェース(GUI)も備えることができ、これはたとえば、分散データ管理システムアプリケーションに記憶されたデータの要求を受信し、および/または、分散データベースシステム全体に記憶されたデータに関する可視化表現を表示するように構成されている。HMI125およびシステムの他の構成要素にも、同様の機能を設けることができる。
【0034】
インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cによって実現される分散データ管理システムは、既存のオートメーションインフラストラクチャ構成要素と相互運用可能である。たとえば監視制御・データ取得(SCADA)サーバ130は、OPC UAおよび/またはODBCクライアントを使用して、インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cからのデータ、およびシステムの他の構成要素(たとえば分散データベース115)からの分散データを接続してプル受信することができる。ヒストリアンPIMサーバ140、およびMES/LIMSに関連するサーバ145も同様に、分散データ管理システムの既存の動作をほとんどまたは全く変更させることなく、当該分散データ管理システム全体に及ぶデータにアクセスすることができる。時間およびリソースが許せば、より上位層の構成要素を、各インテリジェントPLC105A,105B,105C,110A,110Bおよび110Cに備えられた分散データ管理構成要素と共により効率的に動作するように変更することができる。
【0035】
図1に示されているDDMSアーキテクチャは、多数のインテリジェントPLCをサポートすることができる。上記のように、各インテリジェントPLC(または一般的にノード)はDDMSのインスタンスの役割を担う。かかるインスタンスによって、コントローラに分散記憶能力および処理能力が与えられ、コントローラはたとえば、データおよび知識の全体的なコヒーレンシーを維持して何処に何があるかを知るためにローカルのデータおよび知識を編成してこれにインデックス付与するため、各PLCのローカルのヒストリアンに基づいて解析タスク結果をヒストライズするため、キャッシュのためのローカル記憶または分散型の長期間記憶を更新するため、インテリジェントPLC知識およびコンフィギュレーション(ルール、パラメータ、クラスタ構成、閾値等)を更新するため、ローカル計算または分散計算であるデータ解析タスクを実行するため、および、分散されたまたはローカルのデータをフェッチして、クエリに応答するために必要な結果を検索するために、相互間で通信することができ、また、クライアント局またはエンジニアリング局と通信することができる。
【0036】
図2は、一部の実施形態のインテリジェントPLC200の構想図である。プロセスイメージ構成要素225は、コントローラのCPU揮発性システムメモリ内の記憶領域であって、各処理/スキャン周期中に製造装置に関連するデータ(たとえば、接続されたI/Oの入力および出力)に基づいて更新される記憶領域である。各処理ステップ中に、制御アプリケーション230がプロセスイメージ構成要素225を読み出し、展開されたアプリケーションロジックを実行し、結果をプロセスイメージ構成要素225に書き込んで返す。
【0037】
引き続き
図2を参照すると、各周期のプロセスイメージはヒストリアン構成要素220によって読み出されてローカルに不揮発性の物理的記憶媒体に永続的に記憶される。さらにヒストリアン構成要素220は、プロセスイメージデータ(以下で、コンテキスト付与構成要素215に関連して説明する)に関するコンテキスト情報を記憶することもできる。ヒストリアン構成要素220は、データ容量を削減してアプリケーションが過去のプロセスイメージにアクセスできるようにするため、データ圧縮アルゴリズムを展開するように構成することができる。データを固定の時間窓にわたって記憶することができ、または、オンラインアルゴリズムを使用してヒューリスティクスの動的なキャッシュを実現する。ヒストリアン構成要素220の一部として、インテリジェントデータ生成アルゴリズムがプロセスイメージおよびコンテキストを連続的に解析して、接続されたI/Oのデータ生成パラメータ(たとえばサンプリングレート)を調整することができる。たとえば、高速に変化するセンサ信号に対しては高いサンプリングレートを選択することができ、他方、低速で変化するセンサ信号に対しては、それより低いサンプリングレートで十分である。
【0038】
分散データ管理構成要素212は、インテリジェントPLC200が分散データ管理システムまたは分散ファイルシステム(たとえば
図1を参照のこと)のインスタンスとして動作できるようにするものである。分散データ管理構成要素212を使用することによってインテリジェントPLCは、ヒストリアン構成要素220によって生成されたデータを、産業オートメーションシステムにおいて動作する他の装置と共有することができる。このようにして、インテリジェントPLC200の、システムの履歴、コンテキストおよび解析ビューを、並列分散処理アルゴリズムを使用する他の装置およびコントローラと共有することができる。たとえばヒストリアン構成要素220は、インテリジェントPLC200によってローカルでヒストライズされたデータの名前、意味および編成のローカルビューを有する。分散データ管理構成要素212を用いて、オートメーションシステムのこのビューを共有することができる。
【0039】
記憶のためにDFSを使用する実施形態では、分散データ管理構成要素212は、適切なDFS機能を提供する組み込み型のプロセスとなる。たとえば、既に言及したHadoop DFSを使用する実施形態では、分散データ管理構成要素212は、インテリジェントPLC200がクラスタ内でデータノードとして動作できるようにするためのソフトウェアとすることができる。それ自体では、分散データ管理構成要素212を使用して、ヒストリアンデータのブロックを、クラスタ全体において伝送、複製および処理できるデータチャンクにフォーマッティングして編成することができる。一部の実施形態では、新規に作成されたデータチャンクが記憶または計算のために変換を行わずに複製される他のデータノードのアドレスを、名前ノードから取得するために、分散データ管理構成要素212を使用することもできる。他の実施形態では、インテリジェントPLC200がクラスタに対して名前ノードとして機能し、アドレスがローカルに記憶されるように、分散データ管理構成要素212を構成することができる。アドレスが取得された後は、分散データ管理構成要素212を使用して、クラスタ内の他のノードへのヒストリアンデータチャンクのデータ伝送を自律的に管理することができる。分散データ管理構成要素212を使用して、インテリジェントPLC200とオートメーション環境内の他の同様の装置とが、並列分散処理アルゴリズムとしてのこのヒストリアンスタックを実行することができ、ノード上の組み込まれた各プロセスヒストリアンは上述の機能を有する。
【0040】
記憶域をシステム全体に分散させるために分散データ管理システムを使用する実施形態では、当該分野において周知である種々のデータベースシステムを使用して分散データ管理構成要素212を実装することができる。たとえば一部の実施形態では、各コントローラに記憶されたデータが、表と等価の構造を有するNoSQLデータベースに記憶される。当該分野において理解されているように、「NoSQL」との用語は、その設計において非リレーショナルのデータストアのクラスを定義するために使用されるものである。一般的に基礎のデータモデルに従ってグループ分けできるNoSQLデータベースの種類は、種々存在する。これらのグループ分けは、カラムベースのデータモデル(たとえばカサンドラ(Cassandra))、ドキュメントベースのデータモデル(たとえばMongoDB)、キーバリューベースのデータモデル(たとえばレディス(Redis))、および/または、グラフベースのデータモデル(たとえばAllego)を使用するデータベースを含むことができる。本願にて記載されている種々の実施形態を具現化するため、いかなる種類のNoSQLデータベースを使用することも可能である。一部の実施形態では、ヒストリアンデータを分散データ管理システム全体にわたって、分散データファブリックのために最適化されたデータ固有データベース形式および編成のブロックで記憶する。各ブロックのサイズはたとえば、データの所望の時間粒度に基づいて、または、追跡すべき変数の最大数に基づいて指定することができる。
【0041】
引き続き
図2を参照すると、データ解析構成要素205は、分散データ管理構成要素212を用いて、分散データ管理システム全体にわたって記憶されたデータを解析するための1つまたは複数の推論アルゴリズムを実行するように構成されている。データ解析構成要素205には、種々のデータ推論アルゴリズムを備えることができる。たとえば一部の実施形態では、かかるアルゴリズムはクラスタリングアルゴリズム、分類アルゴリズム、論理ベース推論アルゴリズム、および統計解析アルゴリズムのうち1つまたは複数を含む。さらに、装置上での実行時間中に展開できるモデルを用いてアルゴリズムを指定することも可能である。データ解析構成要素205はまた、種々の解析モデルと、これらのモデルを解釈するための専用のアルゴリズムを備えることもできる。データ解析構成要素205によって生成された結果は、ヒストリアン構成要素220に記憶し、プロセスイメージ構成要素225に返して書き込み、および/または、データコネクタ構成要素210を介して外部構成要素へ供給することができる。よってインテリジェントPLCは、分散解析をオートメーションシステム内の他の装置へ供給する装置として見ることができる。
【0042】
データ解析構成要素205は、制御アプリケーション230の実行時間中に1つまたは複数の宣言知識モデルに基づいて、当該データ解析構成要素205によって使用される推論アルゴリズムを動的に修正するように構成された知識管理構成要素235を備えている。一部の実施形態では、インテリジェントPLC200は1つまたは複数のプロセッサ(
図2には示されていない)を備えており、このプロセッサは制御アプリケーション230を実行し、かつ制御アプリケーション230の実行と並行して、1つまたは複数の推論アルゴリズムを修正するように構成されている。並列化は、優先順位情報に基づいて複数のプロセッサ(またはプロセッサコア)にタスクを分散させることによって実現することができる。たとえば、1つまたは複数のプロセッサは、制御アプリケーション230等の高優先順位の処理専用とし、かつ、他のプロセッサは、推論アルゴリズム修正を含むより低い優先順位の処理専用とすることができる。
【0043】
当該分野で周知である種々の種類の宣言知識モデルを、知識管理構成要素235と共に使用することができる。たとえば一部の実施形態では、宣言知識モデルは、ウェブオントロジー言語(OWL)を使用して表現されるオントロジーを有する。宣言知識モデルはたとえば、予測モデルマークアップ言語(PMML)標準規格を用いて、および/または、ルール交換フォーマット(RIF)標準規格を用いて表現することができる。個々の知識モデルは、性質上独占権を有しないもの、独占権を有するもの、納入者固有、またはこれらの組合せとすることができる。
【0044】
上記にて述べたようにインテリジェントPLC200は、当該インテリジェントPLC200が分散データ管理システムのインスタンスとして動作できるようにする分散データ管理構成要素212を備えている。システムの集まり型知識を向上させるため、一部の実施形態では、知識管理構成要素235と共に使用される上述の複数の知識モデルが、たとえば分散データ管理システム内で動作する装置の能力、分散データ管理システム内の各装置において入手可能な診断知識、および/または分散データ管理システムによって使用されるレイアウト情報等の情報を有することができる。
【0045】
一部の実施形態では、知識管理構成要素235によって使用される推論アルゴリズムは、納入者指定された1つまたは複数の知識モデルに基づいて構成されている。納入者指定された各知識モデルは、たとえば、インテリジェントPLC200の能力に関する情報、インテリジェントPLC200において入手可能な診断知識、および/またはインテリジェントPLC200によって使用されるデータレイアウト情報を有することができる。
【0046】
コンテキスト付与構成要素215は、プロセスイメージ構成要素225の内容に、後のその解釈を容易にするためのオートメーションシステムコンテキスト情報を付与して注釈することにより、コンテキスト付きデータを生成するように構成されている。ここで使用される「コンテキスト情報」とは、データの意味を記述するあらゆる情報を含み得る。たとえば、オートメーションシステムにおけるデータのコンテキストは、当該データを生成した装置(たとえばセンサ等)に関する情報、オートメーションシステムの構造に関する情報(たとえばプラントのトポロジ)、システムの動作モードに関する情報(たとえばダウンタイムイベント)、オートメーションソフトウェアとその当該データが生成されていた間の状態とに関する情報、および/または、当該データが生成されていた間に製造された製品/バッチに関する情報を含み得る。コンテキスト付与構成要素215は、更なる特定の処理要請に応じて他の構成要素のいずれかへデータを供給するように構成されている。コンテキスト付与構成要素215によって生成されたコンテキスト情報は、アセット構造に限定されないことが可能であり、制御知識、製品固有情報、プロセス情報、イベント情報、および可能であれば、たとえば天候情報等の外部イベント等の他の観点も含み得る。一部のコンテキスト情報は、エンジニアリングツール(たとえばシーメンスの完全組み込み型オートメーションツール(Totally Integrated Automation tools))からインポートすることができる。さらに一部の実施形態では、コンテキスト付与構成要素215は意味論的コンテキスト付与を行う。コンテキストは、言語構造の意味を形式的に定義する標準規格のモデリング言語(たとえばウェブオントロジー言語、リソース記述フレームワーク等)によって表現することができる。かかる意味論的モデリング標準規格を用いてデータのコンテキスト付与を行うことにより、手動のコンフィギュレーション労力をかけることなく、オートメーションシステムから提供されたデータを業務解析アプリケーションが自動的に理解および解釈することができる。
【0047】
インテリジェントPLC200の構成要素によって取得または生成されたデータは全て、データコネクタ構成要素210を介して外部の構成要素へ供給することができる。これによってたとえば、インテリジェントPLCは、ヒストリアンデータの新規に作成されたブロックを、記憶または計算のために変換を行わずに複製できる他のデータノードのアドレスを取得するために、名前ノードと通信することができる。さらに、ファブリックの基礎技術を用いて、装置が自己のデータ伝送を自律的に管理することもできる。一部の実施形態では、データコネクタ構成要素210はプッシュ技術を用いてデータを出力する(すなわち、能動的に外部の構成要素へデータを送信する)。他の実施形態では、外部の構成要素によってデータのクエリがなされるプル手法を使用することができる。さらに一部の実施形態では、インテリジェントPLCが両形式のデータ伝送を扱う構成となるように、プッシュ手法とプル手法とを組み合わせることができる。
【0048】
一部の実施形態ではインテリジェントPLC200は、分散データ管理構成要素212を使用してプロセスおよびコントローラ情報を分散データベースに記憶するための監視機能を備えることができる。さらに、コンテキスト付与構成要素215からのコンテキスト情報を監視して、より深い解析インサイトを得るために使用することができる。これは、インテリジェントPLC200ロジックに関するメタ情報を示すルーティンを通じてプロセス挙動の変化を検出することによって行うことができ、このメタ情報は、後続の制御ロジック向上の入力として使用することができる。インテリジェントPLC200のロジックへのアクセスと、より低レベルのデータフローの監視とは、コントローラのコンフィギュレーション誤りを早い段階で検出するために役立つ。
【0049】
種々の実施形態と共に使用できるインテリジェントPLC機能の他の例が、米国特許出願第14/467,125号(出願日:2014年8月25日、発明の名称:「INTELLIGENT PROGRAMMABLE LOGIC CONTROLLER(インテリジェントプログラマブルロジックコントローラ)」)、国際特許出願PCT/US14/63105(出願日:2014年10月30日、発明の名称:「USING SOFT-SENSORS IN A PROGRAMMABLE LOGIC CONTROLLER(プログラマブルロジックコントローラにおけるソフトセンサの使用)」)、国際特許出願PCT/US14/62796(出願日:2014年10月29日、発明の名称:「SYSTEM AND METHOD FOR AUTOMATIC COMPRESSION ALGORITHM SELECTION AND PARAMETER TUNING BASED ON CONTROL KNOWLEDGE(制御知識に基づく自動圧縮アルゴリズム選択およびパラメータ調整のためのシステムおよび方法)」)に記載されている。上掲の各出願の全部は、参照により本願の開示内容に含まれることとする。
【0050】
図3は、分散されたデータならびに知識管理および分散解析のための、一部の実施形態のDDMSアーキテクチャ300を示す図である。このDDMSアーキテクチャは機能を3つの構想的な層に分けており、これらの層はデータ管理層305、分散データ処理層310およびサービス層315である。
図3に示されている機能は、たとえば、
図2に示されたインテリジェントPLC200の種々の構成要素によって実現することができる。
【0051】
データ管理層305は、データおよび知識の編成ならびにインデックス付与、キャッシュおよびシャーディングのための機能を提供する、データおよび知識に係る記憶および動作能力を取り扱うものである。ヒストリアン320およびイベントデータベース325からのデータはリアルタイム関連であり、DDMS記憶のためのキャッシュと捉えることができる。ローカルデータのフォーマットはDDMSノードに登録され、当該ローカルデータに及ぶデータアクセスおよび処理を可能にする。知識モデル(アセット、製品、プロセス、制御等)は各DDMSノード上で更新され、ローカルの知識アクセスを可能にする。関連する診断知識(ルールおよび解析記述)も、DDMSノードにアップロードされる。変化は、DDMSの分散記憶およびバージョニング能力を使用するクラスタ内の全てのインテリジェントPLCへ自動的に伝播する。動作能力はDDMSの一部として提供することもでき、たとえば、複数のバージョンのデータが同一のデータベースインスタンス内に共存することができる。
【0052】
データ管理層305は、ローカルの解析プロシージャ335からのインサイクル解析結果をDDMSシステムのローカルノードへ伝送できるように、ローカルのヒストリアン320に密に接続されている。それと同時に、解析プロシージャ335の外部(かつPLCの外部)で生成された情報を当該解析プロシージャ335が入手できるようにし、これによりPLCレベルでの豊富なコンテキスト付与を可能にすることができる。その上、解析プロシージャ335が近くのコントローラに係るコンテキストマッピングを理解できるようにすることもできる。解析プロシージャ335およびオートメーション環境に係る他のプロセスをカスタマイズするため、ローカルのルール330およびオントロジー340を使用することができる。
【0053】
分散データ処理層310は、分散データ全体について実行できるインフィールド解析およびクエリツールを提供するものであり、たとえば、Rおよび/またはJavaスクリプト等の解析エンジンの使用を含む。一部の実施形態では、かかるツールに外部からサービス層315を介してアクセスし、ローカル(1つのインテリジェントPLC)のデータまたは分散された(複数のインテリジェントPLCの)データに対して当該ツールを実行させることができ、これにより、不所望のネットワークトラフィックを回避してよりスケーラブルなインフラストラクチャに寄与するローカル処理が可能になる。
【0054】
サービス層315はDDMSプラットフォームに接続性、アクセス性およびセキュリティを付与することにより、外部のアプリケーションおよび装置が当該プラットフォームの処理およびデータ管理能力を活用できるように構成されている。プラットフォームへのアクセスは、たとえばSQL/SPARQL等の標準的なクエリ言語によって直接行うことができ、または、たとえばODBC、OPC UA、Mongo API等のクライアントツールを用いて直接行うことができる。かかるアクセスにより、インテリジェントPLCにおける相互運用性が向上し、外部の装置およびアプリケーションからの分散データアクセスの権限が与えられる。DDMS内に存在するいかなる種類のデータも、暗号化された形式で記憶することができる。かかる手法によって、DDMSプラットフォームにさらにもう1つセキュリティ層が追加され、これによって機密データが不正アクセスから適切に保護されることが保証される。さらに、パフォーマンスのために、記憶域使用率を最適化すべく記憶域圧縮を行えるようにすることもできる。
【0055】
上記にて述べたように、
図3のDDMSアーキテクチャ300は、ローカルのヒストリアン320とDDMSとの間に、インサイクル環境の外部でほぼリアルタイムの解析を行える能力を可能にするものである接続を導入したものである。この接続は、ヒストリアンとDDMSとの間の単方向通信路として実装することができる。この通信路を介してヒストリアン320は、DDMSによって決定されたロジックに基づいてDDMS内へ(たとえば他のノードへ)データをプッシュ送信することができる。このロジックはたとえば、タイミング付きイベント、容量割り当て、またはインサイクルエンジンからのヒストライズされた結果を含むことができる。DDMSとインフィールド解析エンジンとの接続も、一部の実施形態では単方向とすることができ、この接続は、DDMSから解析結果およびコンテキスト情報をインサイクル解析エンジンへ移動させるために供することができる。さらに、DDMSは新規のまたは更新された知識モデルへプッシュ送信することもできる。
【0056】
インテリジェントPLCインフラストラクチャ(すなわちDDMSクラスタ)を動的にリコンフィギュレーションすることにより、新規のDDMSノードを追加することができる。これにより、既存のフィールドレベルオートメーションのベースラインに影響を及ぼすことなく、インテリジェントPLCを導入、置換または除去することができる。また、DDMSアーキテクチャ300は多数のインテリジェントPLCに1個から数千個に及ぶコントローラに適用可能であるから、水平方向にスケーラブルであることにも留意すべきである。分散データベーススキームへのノードの追加は、パーティショニングされた1つの同一の表に複数のデータを追加することと等価である。この新規に追加されたデータは、ネットワーク上の他のコントローラ自体の(コントローラ)データベースにロードされると直ちに、当該他のコントローラに対して利用可能となる。
【0057】
図4は、一部の実施形態の、DDMSへ情報を伝送できる態様およびDDMSから情報を伝送できる態様の構想
図400である。ここで留意すべき点は、
図4に示されている要素の多くが、
図2おいてインテリジェントPLC200と共に示されているものと類似することである。
図4ではこれらの要素は、インテリジェントPLCへのデータの伝送およびインテリジェントPLCからのデータの伝送に関与するDDMSノードの主な構成を強調するように機能的に編成されている。DDMS405は分散データ記憶のためのデータおよび知識インデックス付与/バージョニングを担当し、インテリジェントPLCを介して全ての情報(ローカルおよびグローバル)を複数の集まりに編成し、たとえば時間データ列集まり、各モデルに係る知識集まり(たとえばアセット、製品、イベント、制御等)、および他のデータ集まりに編成する。集まり構造および内容は時間的に変更することができ、たとえば、データがどのように使用されるかに基づいて動的に拡張し、または、いずれかのデータを記憶するための要件を放棄することによって縮小することができる。最も簡単な例は、(I/Oモジュールによって取得された)センサデータからDDMSへのデータフローである。最初に、入力および出力をPLCによって処理する。その後、その時系列データに外部から分散方式でアクセスできるように、時系列データをローカルのノードデータベースインスタンスに記録する。場合によっては、データのサブセットを同一クラスタの他のPLCの集まりにシャーディングする。シャーディングについては、以下において
図7および
図8を参照して詳細に説明する。
【0058】
図4ではDDMS405は、ローカルの未処理のまたは処理されたデータ、イベント、キャッシュされたデータ、知識へのデータノードインタフェースであり、また、これらの要素の上部におけるフレキシブルな解析を、分散システム内に存在する同様の要素との関連において定義するためのハブである。そのコア機能の定義は、たとえばノードへのデータまたは結果の伝送またはノードからのデータまたは結果の伝送、クエリ、および知識伝送等の典型的な使用事例を効率的に取り扱い、なおかつ、一貫性およびコヒーレンシーを保証するために分散システム内の組み込まれたデータおよび知識にインデックス付与してデータおよび知識にバージョニングすることであり、これらの使用事例は限定列挙ではない。
【0059】
図4は、分散システム全体にわたって記憶されたデータを向上させる追加の機能を示している。分散システム全体に記憶された知識を使用してローカルデータにコンテキストを付与するために、コンテキスト付与機能410を使用する。同様に、分散システム全体に記憶されたデータに推論アルゴリズムを施すために、インフィールド解析推論機能420を使用することができる。
【0060】
ヒストリアン機能415はデータの内部ソースとして使用されるのに対し、データおよび知識の外部ソースはDDMSクラスタノードである。ヒストリアン機能415は、中長期間のプロセスデータのためにローカルの記憶容量を使用する。(たとえばアーカイビング、多年データ解析および/または規制目的のための)データの長期間記憶をサポートするためには、大量のデータをサポートする専用のDDMSインスタンス(
図4には示されていない)を設けることができ、また、DDMSの他のインスタンスと全く同様に分散データインフラストラクチャの一部とすることもできる。
【0061】
図4に示されているように、インフィールド解析推論機能420によって生成された解析の結果を、ヒストリアン機能415によってヒストライズすることもできる。データのヒストリアンローカルの中長期間記憶は、DDMSノードインスタンスによってグローバルに分散データ記憶を行うために編成、インデックス付与およびシャーディングされる。インフィールド解析(たとえばソフトセンサ)の結果は、データの時系列を表すこともできる。対応する集まり構造および内容を時間的に変更することができ、それにかかわらず、データがヒストライズされた後は、DDMS405内のデータの記録が自動的に行われる。たとえば、計算(たとえば電力消費)を毎秒実行するインフィールド解析タスクの結果をDDMSインスタンスへ周期的に(たとえば毎時または毎日)送ることができ、これにより、他のインテリジェントPLCおよび外部のオートメーションツール(たとえばSCADA、エンジニアリングツール、MES等)が結果にアクセスできるようにすることができる。インフィールド解析推論機能420によってイベントが生成された場合、インテリジェントPLC上のイベント記憶機能425がこのイベントをローカルのデータベースに記憶するように構成することができる。ヒストリアンデータと全く同様に、イベントが記憶された後は、更なる解析のために(たとえば根本原因分析等のために)、このイベントのクエリを外部の構成要素が(たとえばDDMS405を介して)インフィールド解析推論機能420によって行うことができる。
【0062】
図5は、一部の実施形態の、DDMSノードインスタンスが分散データインフラストラクチャへ/からの大量のデータ伝送をサポートする態様(たとえば長期間記憶DDMSインスタンス等)の他の
図500である。DDMSノード間の通信は基本的に、分散データフェッチおよび分散処理タスクを実行するために行うことができる。いずれの場合においても、プロセスはどのノードからも開始することができ、後者は、フェッチされたデータを記憶する他のノードとの新規の接続をトリガする。一部の実施形態では、データを供給するように要求されるノードのみが協調制御装置(すなわち、データフェッチまたは分散処理タスクを開始したコントローラ)によってトリガされ、これによって不要なネットワークトラフィックが無くなる。
【0063】
図6は、一部の実施形態の、外部の装置またはアプリケーションによってトリガされるインテリジェントPLC論理ルール更新の一例600を示す図である。ステップ605において開始して、プロセス専門家によって開始されたルール更新を受け取る。データは、たとえば、インテリジェントPLCクラスタをサポートし当該インテリジェントPLCクラスタに接続することが許可されているあらゆる装置上で実行されるクライアントアプリケーションおよびコントローラ等の外部ソースに由来するものとすることもできる。ステップ610において、1つまたは複数のデータ管理インタフェースを介して基づいて、コンテキスト知識にルールが更新される。次にステップ615において、組み込まれた解析によってインサイクルでルールを使用する。その後、ステップ620において、新規に作成/更新されたルールをPLCロジックに従ってインテリジェントPLC I/Oに適用する。
図6に示されている実施例600は、インテリジェントPLCへの変更を最小限にするように適合することができる。たとえば一実施形態では、外部のアプリケーションが、PLCインフィールド解析によって参照されるルールおよびパラメータの更新を開始し、その結果によって、PLCロジックを変更する必要なく、PLC制御挙動を変化させることができる。
【0064】
図7は、一部の実施形態の、DDMSインフラストラクチャにわたってシャーディングされたデータアクセスを実施できる態様を示す
図700である。シャーディングまたは水平方向パーティショニングは、分散と高スループットの演算とを必要とするデータセットによる配置をサポートするために使用されることが多いメカニズムである。たとえば、
図7では4つのコントローラ705A,710A,715Aおよび720Aが存在し、これらのコントローラはそれぞれデータサブセット705B,710B,715Bおよび720Bを記憶する。コントローラ710Aが、他のコントローラ705A,715Aおよび720Aに対して当該他のコントローラの各データサブセットを送信するように要求する動作を開始した。コントローラ710Aは受信した情報を使用して、元のデータサブセットを再生してデータ演算を行うことができる。
【0065】
パーティショニングは、コントローラ705A,710A,715Aおよび720A間でデータを分けるために使用される判断基準であるシャーディングキー定義を用いて行われる。このシャーディングマッピングは、専用のサーバインスタンスによって記憶され、または各コントローラ705A,710A,715Aおよび720A内に記憶されることができる。いずれの場合においても、シャーディング情報には各コントローラ705A,710A、715Aおよび720Aが等しくアクセスすることができる。 各シャーディングキー保有装置は、他のピアとのデータ伝送プロセスを協調制御することができる。というのも、シャーディングメタデータがデータ/コントローラ場所マッピングを保持しているからである。シャーディングによって、制御レベルでの分散された意思決定が可能になる。
【0066】
DDMSは、クラスタ内に何のデータがローカルまたは遠隔に記憶されるかを明示的に指定することを担当する。というのも、分散されたデータソースは、現在のコントローラ境界の内側または外側にあり得るからである。グローバルにアクセスされることを要する集まりごとにシャーディングインデックスを指定する。このシャーディングインデックスは、クラスタ内のシャーディングされたデータの場所を提示するものである。分散データにアクセスするために使用されるシャーディングされたメタデータは、各インテリジェントPLCにローカルに記憶されるので、各PLCは、シャーディングされた情報の場所を効率的に特定することができる。シャーディングインデックスの他、各データベースの記憶ファイルシステムはさらに、特に時系列に対するクエリに応答するためのスキャン処理を高速化するインデックス付与の内部メカニズムを提供することができる。一貫性メカニズムとして、データベースは一意のキーを強制することができ、また、記録が既存のコントローラ、タグおよびタイムスタンプ値と一致する場合には、先の値をオーバーライドすることもできる。
【0067】
図8は、本発明の一部の実施形態の、分散データ管理システム内においてデータを検索および処理するための3ステッププロセス800を示す図である。本プロセス800は、任意のコントローラ上で命令を実行するクエリまたはマップ/縮小(Map/Reduce)ジョブ805として開始する。データのクエリはどのコントローラによっても発することができ、これにより、アドホッククエリ実行、事前定義されたクエリ、およびコントローラタグに基づく数式計算を行うことができる。リレーショナルデータベースにおけるマップ/縮小ジョブは、シャーディングされたデータを有することができる分散データベース内で実行される。かかるジョブは、複数のノードの間にタスクを分散させることにより、並列処理をサポートするものである。その後、その集約された結果を更なる調査のために戻して保存する。さらに、クライアント側において他の処理を行うこともできる(たとえば、ノードの範囲から抽出された最終結果の集約)。全てのジョブおよびクエリの結果が、分かりやすく使用可能な状態のフォーマットで、たとえば表形式、csv形式、またはイメージ形式で、クライアントに対して入手可能となる。
【0068】
図8の実施例では、この最初のステップは「1」と示されており、上述の任意のコントローラはコントローラ810Aである。たとえば、クライアントマシンまたはシステム内の他の任意のコントローラによって、命令を実行するクエリまたはマップ/縮小ジョブ805を開始することができる。第2のステップ(
図8において「2」と示されている)において、コントローラ810Aが、(ローカルデータを使用して、または、シャーディング情報を記憶するサーバとの通信によって)データ場所の探索を実行する。この探索の結果に基づき、第3のステップ(
図8において「3」と示されている)において、コントローラ810Aはコントローラ815Aおよび820Aの各データサブセット815Bおよび820Bを収集するため、これらのコントローラと通信する。本実施例ではさらに、コントローラ810Aは、自己のデータサブセット805B内に要求されたデータの一部を発見し、これにより当該データを検索する。ここで留意すべき点は、コントローラ810Aに記憶されているデータサブセット810Bは元の要求に対して応答するために必要ではないので、コントローラ805Aはコントローラ810Aからいかなるデータも要求する必要がないことである。コントローラ810Aが自己のデータストアおよび他のコントローラ815Aおよび820Aからデータをフェッチした後は、コントローラ810Aは、本プロセス800の第1のステップにおいて最初に受け取った命令を実行するため、収集したデータを処理する。
【0069】
図8に示されているように、クエリおよび処理ジョブを上述の処理能力によってデータにより近づけることにより、データ待ち時間を自動的に低減することができる。本実施例では、結果または処理されたデータのみがネットワークを介して転送される。原データの転送は、一部の限られた状況下、たとえばデータ相関解析等でしか必要とされない。
【0070】
本願で記載されている分散システムの価値を解説するため、オートメーションOEM動作環境下での当該分散システムの実装を考察する。この環境は、(振動センサを使用する)広帯域のスケーラブルなセンシング、データ記憶、スピンドル解析、および工場床面積のスケールでのスピンドル報告を提供する組み込みシステムを介して最適化することができる。新規の振動測定結果を取得するため、センサと通信するインテリジェントPLCをシステムに追加し、そのデータをローカルで、または他のインテリジェントPLCによって管理することができる。データおよび処理管理の視点からは、これは、故障しているマシンを既に制御および監視しているコントローラの拡張であるように見える。新規のセンサによって生成された出力を解析するために、システムからデータを抽出する必要はない。この抽出の代わりに、インテリジェントPLCに組み込まれてプロセス、アセットおよび製品に関する知識によって駆動されるプロセスエキスパートアルゴリズムが、同一のプラットフォーム上において既に存在したプロセスを用いて、新規に収集されたセンサ測定結果を解析することができる。この診断結果は、あらゆるデータ可視化ツールまたは解析ツールを用いて見ることができる。その結果、新規に監視されているデータは分散マルチPLCシステムに対して自動的に入手可能となるので、外部プロセッサ上にて故障解析を実行するためにPLCからMES/SCADAレベルへプロセスデータを抽出する必要がなくなる。
【0071】
組み込みコントローラによって使用される、ここで記載されているプロセッサは、1つまたは複数の中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、または、当該分野において知られている他のあらゆるプロセッサを備えることができる。より一般的には、ここで使用されているプロセッサは、コンピュータ可読媒体上に記憶された機械可読指令を実行するため、タスクを実行するための装置であり、ハードウェアおよびファームウェアのうちいずれか1つまたはこれらの組合せを含むことができる。プロセッサは、タスクを実行するために実行可能な機械可読指令を記憶するメモリを備えることもできる。プロセッサは情報に基づいて、実行可能なプロシージャまたは情報装置による使用のための情報を操作、解析、変更、変換または伝送することにより、および/または、出力装置へ当該情報をルーティングすることによって動作する。プロセッサはたとえば、コンピュータ、コントローラまたはマイクロプロセッサの能力を使用し、または備えることができ、また、実行可能な指令を用いて、汎用コンピュータによっては実行されない特殊用途の機能の実行をプロセッサにさせることができる。プロセッサは、相互間のインタラクションおよび/または通信を可能にするように、他のあらゆるプロセッサと(電気的に、および/または、実行可能な構成要素を含むものとして)結合することができる。ユーザインタフェースプロセッサまたはジェネレータは、ディスプレイイメージまたはその一部を生成するための電子回路またはソフトウェアまたは双方の組合せを備えた公知の要素である。ユーザインタフェースは、プロセッサまたは他の装置とのユーザインタラクションを行うための1つまたは複数のディスプレイイメージを有する。
【0072】
組み込みコントローラおよび関連の計算インフラストラクチャを含み、これらに限定されない、本願で記載されている種々の装置は、本発明の実施形態に従ってプログラミングされた指令を保持し、本願で記載されたデータ構造、表、記録または他のデータを有するための、少なくとも1つのコンピュータ可読媒体またはメモリを備えることができる。本願で使用されている「コンピュータ可読媒体」との用語は、指令を実行のために1つまたは複数のプロセッサへ供給することに関与する全ての媒体をいう。コンピュータ可読媒体は、非一時的、不揮発性の媒体、揮発性の媒体、および伝送媒体を含む多くの形態をとることができるが、これらは限定列挙ではない。不揮発性媒体の非限定的な例には、光学ディスク、ソリッドステートドライブ、磁気ディスク、および磁気光学ディスクが含まれる。揮発性媒体の非限定的な例には、ダイナミックメモリが含まれる。伝送媒体の非限定的な例には、同軸ケーブル、銅線、および光ファイバが含まれており、システムバスを構成するワイヤが含まれる。伝送媒体は、音波または光波の形態をとることもでき、たとえば、無線波および赤外線データ通信中に生成される波等の形態をとることもできる。
【0073】
本願で使用されている実行可能なアプリケーションは、たとえばユーザコマンドまたは入力に応答して、予め決まった機能の実現をプロセッサにさせるためのコードまたは機械可読指令、たとえばオペレーティングシステム、コンテキストデータ取得システム、または他の情報処理システム等のコードまたは指令を含む。実行可能なプロシージャは、コードもしくは機械可読指令のセグメント、サブルーティン、または、1つもしくは複数の特定のプロセスを実行するための実行可能なアプリケーションの一部もしくはコードの他の別個のセクションである。かかるプロセスは、入力されたデータならびに/もしくはパラメータの受信、受信した入力データについての演算の実行、および/または、受信した入力パラメータに応答する関数の実行と、その結果の出力データならびに/もしくはパラメータの出力とを含み得る。
【0074】
本願で使用されるグラフィカルユーザインタフェース(GUI)は、ディスプレイプロセッサによって生成された1つまたは複数のディスプレイイメージを有し、このディスプレイイメージは、プロセッサまたは他の装置とのユーザインタラクションと、関連のデータ取得および処理機能とを可能にするものである。GUIは、実行可能なプロシージャまたは実行可能なアプリケーションも備えている。実行可能なプロシージャまたは実行可能なアプリケーションは、GUIディスプレイイメージを表す信号の生成をディスプレイプロセッサにさせるものである。この信号はディスプレイ装置へ供給され、ディスプレイ装置は、ユーザが見るためにそのイメージを表示する。プロセッサは、実行可能なプロシージャまたは実行可能なアプリケーションの制御下で、入力装置から受信した信号に応答してGUIディスプレイイメージを操作する。このようにしてユーザは、入力装置を用いてディスプレイイメージとインタラクションすることができ、これにより、プロセッサまたは他の装置とのユーザインタラクションを行うことができる。
【0075】
本願の機能およびプロセスステップは自動的に実行することができ、その全部または一部はユーザコマンドに応答して実行することができる。自動的に実行される動作(ステップを含む)は、1つまたは複数の実行可能な指令または装置演算に応答して、ユーザによる動作の直接的な開始無しで実行される。
【0076】
各図のシステムおよびプロセスは、排他的なものではない。本発明の原理に従って同一の目的を果たすために、他のシステム、プロセスおよびメニューを導き出すことができる。特定の実施形態を参照して本発明を説明したが、本願で図示および記載された実施形態および変形態様は、説明のためだけのものであると解すべきである。当業者であれば、本発明の範囲を逸脱することなく、現在の構成に改良を施すことが可能である。本願で記載されている種々のシステム、サブシステム、エージェント、管理部およびプロセスは、ハードウェア構成要素、ソフトウェア構成要素、および/またはその組合せを用いて実装することができる。本願クレームのいかなる要素も、当該要素が明示的に「・・・ための手段」との文言を用いて言及されていない限り、米国法律第35号第112条第6項の規定を受けると解すべきものではない。
産業製造環境においてデータを記憶するためのシステムは、複数のインテリジェントプログラマブルロジックコントローラ装置に記憶された分散データ管理システムを備えている。各インテリジェントプログラマブルロジックコントローラ装置は、プロセスイメージ領域を有する揮発性のコンピュータ可読記憶媒体と、不揮発性のコンピュータ可読記憶媒体と、製造ユニットへ動作指令を供給するように構成された制御プログラムと、各スキャン周期中に製造ユニットに関連するデータを用いてプロセスイメージ領域を更新するために構成された入力/出力構成要素と、分散データ管理システムのインスタンスを有する分散データ管理構成要素と、コンテキスト付与構成要素と、ヒストリアン構成要素と、データ解析構成要素とを備えている。