分散制御システムなどのプロセス制御システムは、データ取得の解像度、処理能力および信号調整機能が向上した個々の構成要素が開発されるにつれて、ますます複雑になっている。分散制御システム(DCS)は、例えば構成要素の製造、化学原料の処理など、プロセス制御環境で行われる動作のさまざまな側面を監視し、かつ/または制御するために使用される。DCSには通常、付属の入力/出力(I/O)モジュールを有する複数のコントローラ(例えば、電子コントローラ、プログラマブルコントローラなど)が含まれるが、付属の入力/出力(I/O)モジュールより、コントローラはさまざまな入力フィールドデバイスおよび/または機器から信号を取得し、さまざまな出力フィールドデバイスおよび/または機器を制御し得る。I/Oモジュールには、入力、出力、および/またはそれらの組み合わせが含まれる。
本明細書で使用される「フィールドデバイス」、「フィールド機器」、または「機器」という用語は、例えば、プロセス制御システムの異なる側面(例えば、他のプロセス制御デバイスなど)を測定し、かつ/または制御するために、プロセス制御システム全体で使用されてもよい、アクチュエータ、アクチュエータアセンブリ、アクチュエータコントローラ、アクチュエータポジショナ、センサ、トランスミッタ、バルブアセンブリなどの制御デバイスを指す。
典型的なDCSには、プロセス制御環境全体に分散されたコントローラ、プログラマブルプロセッサ、および/または論理回路が含まれ、プロセス制御環境の近くに制御機能をローカライズすることで信頼性を高め、設置コストを削減するが、リモートでプロセス制御環境の監視および監督制御を可能にする。場合によっては、エンジニア、保守技術者、または他の現場担当者を含むオペレータは、プロセス制御ネットワークを介してリモートで、またはコントローラ、フィールドデバイスなどと物理的に対話することによりローカルでDCSを監視する。例えば、オペレータは、有線接続または無線接続を介してフィールドデバイスに接続して、フィールドデバイスおよび/またはフィールドデバイスに通信可能に結合された構成要素またはデバイスに関連付けられたプロセス制御データを閲覧し得る。
一部の既知のDCS実装態様では、フィールドデバイスとローカルに対話する場合、オペレータにとって、フィールドデバイスおよび/またはフィールドデバイスに通信可能に結合された構成要素またはデバイスの可視性が限られている。例えば、オペレータは、コンピュータベースのソフトウェアアプリケーションを介してバルブに関連付けられたバルブコントローラに接続されている場合、バルブに関連付けられた限られたデータにのみアクセスしてもよい。このような例において、オペレータは、アクチュエータ圧力またはバルブ位置などの限られたデータのみを閲覧し得る。例えば、オペレータは、プロセス制御室にいる場合に、限られたデータを表示しているヒューマンマシンインターフェースを介して、限られたデータのみを閲覧できてもよい。他の例において、オペレータは、追加的な専門知識(通信接続の確立、応答しない通信接続のトラブルシューティングなど)を必要とし得る、バルブに通信可能に結合されたデバイス(ラップトップコンピュータ、スマートフォン、タブレットなど)を介して、限られたデータを閲覧することのみ可能であり得る。このような例において、第1のオペレータがバルブの保守またはトラブルシューティング作業を行っている間に、限られたデータを閲覧するために、第1のオペレータは、第2のオペレータの支援を必要とする場合がある。例えば、第1のオペレータは、バルブに関連付けられた1つ以上のタスクを行おうと試みている間、デバイスを動作する自由な手が空いていない場合がある。
いくつかの既知のDCS実装態様では、オペレータは、バルブ、バルブに結合された構成要素もしくはデバイス、および/またはバルブを含む制御ループに関連付けられた構成要素に関連付けられた関連データおよび/または補足データを閲覧することができない。補足データには、アラームデータ、アクション、またはタスクデータ(例えば、行われている、もしくはフィールドデバイスによって行うことが可能な、1つ以上のアクションもしくはルーチン)、履歴データなどが含まれ得る。さらに、フィールドデバイスの保守を行うとき、かつ/またはフィールドデバイスと対話するときに、オペレータは、フィールドデバイスからのプロセス制御図、保守命令、配線図などを含む補足情報を取得することができない。このような例において、オペレータは、プロセス制御領域に戻る前にプロセス制御領域を離れて補足情報を取得し、補足情報に基づいてタスクを完了しなければならない場合があるが、それにより動作上の非効率性が生じる。
本明細書で開示される例は、ユーザおよび/またはコンピュータベースのソフトウェアアプリケーション(例えば、コンピュータベースのソフトウェアアプリケーションとインターフェースするユーザ)が仮想アシスタントまたはボット(例えば、プロセス制御ボット)と会話を開始することを可能にし、プロセス制御に関連付けられたタスクでオペレータまたはユーザを支援する、システム、方法および装置を含む。本明細書で開示される例は、対応するプロセス制御値を返し、支援的または補足的役割でユーザと関わることにより、フィールドデバイスまたはプロセスユニットに関連付けられた情報のユーザからの要求を容易にする。
いくつかの開示された例において、ユーザは、ラップトップコンピュータ、スマートフォン、タブレットなどの例示的なコンピューティングデバイスにインストールされる場合の仮想アシスタントと対話する。いくつかの開示された例において、ユーザは、仮想アシスタントを実装するための、1つ以上のプロセッサ、1つ以上の論理回路などを含むヘッドセット、リストバンド、または眼鏡などのウェアラブルデバイスを含む他の例示的なコンピューティングデバイスにインストールされた場合の仮想アシスタントと対話する。このような開示された例において、仮想アシスタントは、Bluetooth(登録商標)ビーコン、Wi-Fiビーコンなどの無線ビーコンの範囲内にあるフィールドデバイスと対話し得る。例えば、Wi-Fiビーコンは、仮想アシスタントからの要求を容易にする1つ以上のサーバに通信可能に結合されてもよい。このような例において、仮想アシスタントは、Wi-Fiビーコンの範囲内にある場合、Wi-Fiビーコンを介して1つ以上のサーバに照会することで、Wi-Fiビーコンの範囲内にあるフィールドデバイスに関連付けられた情報を要求し得る。いくつかの例において、Wi-Fiビーコンのカバレッジエリアへの入力に応答して、仮想アシスタントはフィールドデバイスに関連付けられた情報をダウンロードして、フィールドデバイスに関連付けられたユーザ要求が処理されてユーザに通信される速度を向上させる。
いくつかの開示された例において、仮想アシスタントはユーザから要求を取得し、アクション可能な情報に対する要求を解析し、アクション可能な情報に基づいてアクションのセットまたは情報のレベルをサポートする。いくつかの開示された例において、アクションは、フィールドデバイス、またはフィールドデバイスに通信可能に結合された構成要素またはデバイスに関連付けられたパラメータ値を提供することを含む。他の開示された例において、アクションは、フィールドデバイスによって実装され、かつ/または実行されている現在のプロセスまたはタスク、フィールドデバイス上の、またはフィールドデバイスによるタスク(例えば、保守タスク、テスト計画に関連付けられたタスクなど)を行うことに関するステップバイステップの命令、フィールドデバイスに関連付けられたプロセス制御タスクのステータスなどの補足情報を提供することを含む。いくつかの例において、アクションには、対応するコマンド(コンピュータベースのアプリケーションを介したコマンド、音声ベースのコマンドなど)によりユーザが開始するか、停止するか、または一時停止し得る、1つ以上のプロセス制御動作を含むプロセス制御ワークフローが含まれる。
図1Aは、例示的なプロセス制御システム102の動作を容易にする例示的な仮想アシスタント(VA)100の概略図である。図1Aでは、VA100は、プロセス制御仮想アシスタントである。例えば、VA100は、例示的なユーザ(例えば、オペレータ、保守技術者、プロセス制御運用者など)104のためのタスクまたはサービスを行うコンピュータベースまたはソフトウェアエージェントであり得る。いくつかの例において、VA100は、複数のユーザ104と対話する。いくつかの例において、VA100は、コンピュータベースまたはソフトウェアアプリケーション、音声コマンド、テキストベースのコマンドなどを介してアクセス、初期化、および/または他の方法で対話され得る、ボット、チャットボットなどである。
図1Aの示された例において、VA100は、第1の例示的なデバイス108、第2の例示的なデバイス110、第3の例示的なデバイス112、および第4の例示的なデバイス114を含むデバイス(例えば、プロセッサベースのデバイス)で動作するか、かつ/または実行する例示的なホストアプリケーション106から要求を検索し、かつ/または取得する。図1Aにおいて、ホストアプリケーション106は、機械可読命令により実行される1つ以上のルーチン(例えば、ソフトウェアルーチン)またはプログラム(例えば、ソフトウェアプログラム)を含む。例えば、ホストアプリケーション106は、標準オペレーティングシステム上で動作するプロセス制御関連ソフトウェアアプリケーション(例えば、Windows(商標)ベースのオペレーティングシステム、Apple macOS(登録商標)オペレーティングシステム、Apple iOS(登録商標)オペレーティングシステム、Android(商標)オペレーティングシステム、Linux(登録商標)オペレーティングシステムなど)であり得る。ホストアプリケーション106は、デバイス108、110、112、114によって実行され、ユーザ104がVA100を介してプロセス制御システム102に含まれる1つ以上のフィールドデバイスまたは対応する動作に関連付けられたデータまたは情報を取得することを可能にする。
いくつかの例において、ホストアプリケーション106は、VA100を介して、ユーザ104が、(例えば、グラフィカルユーザインターフェースを介して)プロセスの現在の状態を閲覧すること、プロセスを評価すること、例えば、視覚オブジェクト図を介して)プロセスの動作を修正することなどの、プロセス制御システム102によって制御され、かつ/または監視されているプロセスに関して所望の機能またはタスクを行うことを可能にする。いくつかの例において、ホストアプリケーション106は、VA100から1つ以上の利用可能なコマンドを検索し、検索されたコマンドのうちの1つを選択し、VA100を介してコマンドをフィールドデバイスに送信することに基づいて、VA100を介してプロセス制御システム102に含まれたフィールドデバイスと対話することにより、所望の機能を実行する。例えば、ユーザ104は、VA100にタスクを行うように求め得、VA100は、要求を処理し得、VA100は、処理された要求に基づいて1つ以上の利用可能なコマンドを記述し、かつ/または含む可聴メッセージを生成し得、ユーザ104は、口頭確認またはコマンドを介してコマンドのうちの1つを選択し得、VA100は、コマンドを1つ以上の対応するフィールドデバイスに送信し得る。
図1Aの示された例において、第1のデバイス108は、ホストアプリケーション106を介して(例えば、統合ディスプレイ、マイクロホンおよび/またはスピーカなどを介して)プロセス制御システム102との対話を容易にすることが可能であるEmerson(商標)AMS TREX(商標)などのプロセス制御ハンドヘルドデバイスである。代替的に、第1のデバイス108は、任意の他のタイプのプロセス制御ハンドヘルドまたはモバイルデバイスであってもよい。図1Aでは、第2のデバイス110は、ホストアプリケーション106を介して(例えば、統合ディスプレイ、マイクロホンおよび/またはスピーカを介して)プロセス制御システムとの対話を容易にすることが可能であるインターネット対応タブレットである。図1Aでは、第3のデバイス112は、インターネット対応モバイルハンドセット(例えば、スマートフォン)であり、したがって、ホストアプリケーション106を介して(例えば、統合ディスプレイ、マイクロホンおよび/またはスピーカを介して)プロセス制御システム102との対話を容易にし得る。図1Aでは、第4のデバイス114は、ホストアプリケーション106を介して(例えば、統合ディスプレイ、マイクロホン、および/またはスピーカを介して)プロセス制御システム102との対話を容易にし得るインターネット対応ラップトップコンピュータである。代替的に、VA100は、図1Aに示されるデバイスの数量および/またはタイプのより少ないまたはより多いデバイスとの対話を容易にしてもよい。ホストアプリケーション106は、デバイス108、110、112、114の各々で同じであるとして示されているが、代替的に、ホストアプリケーション106は、プラットフォームに基づいて調整され、かつ/またはカスタマイズされてもよい。例えば、第1のデバイス108で実行されるホストアプリケーション106は、第2のデバイス110で実行されるホストアプリケーション106とは異なってもよい。このような例において、ホストアプリケーション106は、対応するプラットフォームに適合するために、異なるユーザインターフェース、異なる通信ドライバを有してもよい(例えば、第1のデバイス108はBluetooth(登録商標)5.0を有し、第2のデバイス110はBluetooth(登録商標)4.0を有するなど)。いくつかの例において、ホストアプリケーション106は音声ユーザインターフェース(VUI)以外のインターフェースを持たない。例えば、ホストアプリケーション106のVUIを使用して、キーボード、ユーザ104からのジェスチャなどを完全に置き換え得る。
図1Aの示された例において、ユーザ104および/またはホストアプリケーション106は、聴覚、可聴、コンピュータベース、ジェスチャ、または音声コマンドを含むコマンドを介してVA100と対話し得る。代替的に、任意の他のタイプのコマンドを使用し得る。いくつかの例において、ユーザ104は、口頭要求を発行し、かつ/または、第1の例示的なフィールドデバイス(フィールドバルブ(FV)FV-105)116および第2の例示的なフィールドデバイス(フィールド機器(FI)FI-205)118を含むプロセス制御システム102に含まれるフィールドデバイスに関連付けられたデータをVA100に求め得る。図1Aの第1のフィールドデバイス116は、流量制御アセンブリである。例えば、第1のフィールドデバイス116は、電気的、油圧的、かつ/または空気圧的に作動するバルブアセンブリであり得る。例えば、第1のフィールドデバイス116は、少なくともアクチュエータ、バルブ(例えば、バタフライバルブ、グローブバルブなど)、バルブコントローラ(例えば、ローカルシングルループプロセスコントローラ)などを含み得る。例えば、ユーザ104は、アクチュエータ圧力、バルブ位置などを含む第1のフィールドデバイス116に関連付けられたデータを要求し、かつ/または検索するように、口頭コマンドをVA100に発行し得る。追加的または代替的に、図1Aに関連して図示され、かつ/または説明されたもの以外の任意の他のタイプのフィールドデバイスに対応する対話をトリガし得る。追加的または代替的に、VA100は、第1のフィールドデバイス116に関連付けられた任意の他のデータ(例えば、第1のフィールドデバイス116を含む配線図、第1のフィールドデバイス116のソフトウェアまたは通信プロトコル識別子、第1のフィールドデバイス116に含まれるコントローラに関連付けられたファームウェアバージョンなど)を要求し、かつ/または検索し得る。
図1Aの示された例の第2のフィールドデバイス118はセンサである。例えば、第2のフィールドデバイス118は、圧力トランスミッタ、温度トランスミッタなどであり得る。他の例において、第2のフィールドデバイス118は、レベルトランスミッタ、pHトランスミッタ、バルブポジショナなどであり得る。例えば、ユーザ104は、工学単位(例えば、ポンド/平方インチ(PSI)、摂氏度など)、非工学単位(例えば、電圧測定値、電流測定値など)、原油ユニット、流動接触分解(FCC)ユニットなど、および/またはそれらの組み合わせにおける、センサ測定(例えば、圧力測定、流量測定、温度測定など)を含む、第2のフィールドデバイス118に関連付けられたデータを要求するように、VA100に口頭コマンド(例えば、「仮想アシスタント、FI-205について教えて」)を発行し得る。他の例において、口頭コマンドは、キャリブレーション情報に対する要求(例えば、最後のキャリブレーションの日付、次のキャリブレーションの日付、センサをキャリブレーションしたユーザなど)、構成(例えば、通信プロトコル出力アドレス、電気出力範囲など)、製造者情報(例えば、モデル番号、シリアル番号など)、バージョン情報(例えば、第2のフィールドデバイス118に関連付けられたファームウェアバージョン)などであり得る。
いくつかの例において、ユーザ104および/またはホストアプリケーション106は、例示的な制御ループ120に関連付けられた情報についてVA100に照会する。図1Aでは、制御ループ120は、FIC-205によって指定されたフィールド機器制御(FIC)ループである。図1Aの制御ループ120は、第1のフィールドデバイス116および第2のフィールドデバイス118を含む。図1Aの制御ループ120は、第2のフィールドデバイス118から入力を取得し、かつ/または第1のフィールドデバイス116への出力信号を生成するコントローラ(例えば、PLC、プロセッサベースのコントローラなど)に対応する。代替的に、制御ループ120は、より少ないまたはより多くのフィールドデバイスを含んでもよい。図1Aでは、制御ループ120は、第1のフィールドデバイス116を動作させ得る(例えば、バルブを開く、バルブを閉じる、バルブを特定の位置に移動させるなど)。図1Aでは、制御ループ120は、第1のフィールドデバイス116に関連付けられている第2のフィールドデバイス118からセンサデータを取得および/または取得し得る。例えば、制御ループ120は、第1のフィールドデバイス116に、開いて流体を第1のフィールドデバイス116に流すように命令し、第2のフィールドデバイス118から取得したデータに基づいて、流れのパラメータ(例えば、温度、流量、圧力など)を測定し得る。
いくつかの例において、VA100は、MODEパラメータ(例えば、自動モード、手動モード、カスケードモードなど)、設定点(SP)パラメータ、プロセス変数(PV)パラメータ、または、測定値(MV)パラメータ、出力(OUT)パラメータ、ステータスパラメータ、および/または、制御ループ120に含まれる構成要素またはフィールドデバイスに関連付けられた1つ以上のアラームを含む、制御ループ120に関連付けられた情報を返す。例えば、SPパラメータは、MVまたはPVの予測値、所望値などに対応し得る。このような例において、SPは、VA100を介して、ユーザ104によって入力され、かつ/または通信され得る。例えば、ユーザ104は、第1のフィールドデバイス116のバルブ位置パラメータのためのSPパラメータに100%開いた値を割り当てるように、VA100に命令し得る。MVまたはPVパラメータは、プロセス出力の測定値(例えば、第1のフィールドデバイス116を流れる流体の流量、圧力、温度など)に対応し得る。OUTパラメータは、制御ループ120の出力(例えば、コントローラからの出力)に対応し得る。OUTパラメータは、制御ループ120によって、生成され、アクチュエータ(例えば、第1のフィールドデバイス116に含まれるアクチュエータ)に送信されて、アクチュエータの調整を行う出力信号に対応し得る。
いくつかの例において、自動モードに対応するMODEパラメータに応答して、制御ループ120はSPおよびPVを受信し、OUTパラメータを計算し、OUTパラメータに対応する出力信号を第1のフィールドデバイス116に送信する。いくつかの例において、手動モードに対応するMODEパラメータに応答して、制御ループ120が無効になり、ユーザ104がOUTパラメータに対応する出力信号を直接アクチュエータに送信できるようになる。例えば、ユーザ104は、制御ループ120に格納されたSPを無効にすることにより、第1のフィールドデバイス116のバルブ位置を調整するようにVA100に命令し得る。
いくつかの例において、カスケードモードに対応するMODEパラメータに応答して、制御ループは、別の制御ループ(例えば、FIC-201、FIC-204など)に関連付けられた別のコントローラなどの外部ソースからSPを受信するが、これに限定されない。例えば、制御ループFIC-201は、フィールドデバイスFV-101に関連付けられた第1のSPを、制御ループFIC-204から受信し得る。このような例において、ユーザ104は、FV-101を流れる流体の2バレル/分(bpm)の流量を生成するようにVA100に命令し得る。VA100は、ユーザ104からの要求を処理し、コマンドを生成し、コマンドをFIC-204に送信して、2bpmの流量を流量SPに割り当て得る。FIC-204は、FI-204から例示的なプロセスタンク122のレベル測定値を取得し、レベルの変化を流量(例えば、プロセスタンク122の充填率に基づく流量)に変換し得る。次に、FIC-204は、流量SPに基づいてFV-101のバルブ位置SPに対応するコマンドを生成し、FIC-201に送信し得る。FIC-201がコマンドを受信すると、FIC-201はFV-101を開き、FV-101を介して2bpmの流量SPを満たすバルブ位置SPを達成および/または満たす。バルブ位置SPを満たすことに応答して、FIC-204はFV-101を通る2bpmの流量SPが満たされたかどうかを判定し得る。いくつかの例において、VA100は、ユーザからの要求に関連付けられたFV-101を通る流量が満たされたことを示すユーザ104への可聴メッセージを生成する。追加的または代替的に、VA100は、プロセスタンク122の充填率、バルブ位置SPの値、FV-101に関連付けられたバルブ位置など、および/またはそれらの組み合わせなどの情報を可聴メッセージに含み得る。
いくつかの例において、ユーザ104および/またはホストアプリケーション106は、プロセス制御システム102の1つ以上の構成要素によって実行されるコマンドをVA100に発行する。例えば、ユーザ104は、第1のフィールドデバイス116を開閉するように、異なる測定単位または異なる出力データを使用するよう第2のフィールドデバイス118に指示するように、口頭コマンドを、異なる通信プロトコルなどを使用してVA100に発行し得る。他の例において、ホストアプリケーション106は、コマンドを生成し、コマンドをVA100に送信して、プロセス制御システム102の1つ以上の構成要素の1つ以上の動作を含むワークフローを実行し得る。例えば、ホストアプリケーション106は、プロセスタンク122を充填するように、コマンドを生成し、VA100に送信し得る。このような例において、VA100は、プロセスタンク122を充填し、第1のフィールドデバイス116を開くことによりガス出力を放出し、動作の状態などを含むユーザ104および/またはホストアプリケーション106へのフィードバックを提供するように、FV-101、FV-102などの1つ以上のフィールドデバイスを動作させ得る。例えば、状態は、プロセスタンク122が40%満杯であることを示す可聴および/または視覚ベースのメッセージであり得る。他の例において、メッセージは、残りの動作の推定時間分、動作の開始からの経過時間などを含み得る。いくつかの例において、VA100は、安全情報を含むユーザ104、ホストアプリケーション106などへの通知を生成する。例えば、通知は、FCCのガス漏れ、プロセスタンク122の液体漏れなどに対応し得る。追加的または代替的に、プロセスタンク122が図1Aに示されているが、VA100は、ユーザ104および/または、1つ以上の熱交換器、1つ以上の蒸留塔、1つ以上の加熱炉など、および/またはそれらの組み合わせによる機能および/または動作の容易化に対応するホストアプリケーション106との会話をトリガし得る。
図1Aの示された例において、VA100は、例示的なネットワーク126を介して例示的なデータベース124から情報を照会および/または検索する。いくつかの例において、データベース124は、1つ以上のプロファイルを含み得るプロセス制御システム102の構成を含み、プロファイルの各々は、プロセス制御システム102に含まれる構成要素に対応する(例えば、第1のプロファイルフィールドデバイス116に対応する第1のプロファイル、プロセスタンク122に対応する第2のプロファイルなど)。いくつかの例において、プロファイルは2つ以上の構成要素に対応し得る。例えば、プロファイルは、制御ループ120に関連付けられた情報を含み得るが、これは、第1のフィールドデバイス116、第2のフィールドデバイス118、制御ループ120に含まれるコントローラなどに対応する情報を含み得る。いくつかの例において、データベース124は、プロセス制御システム102の構成要素によって実行し得るアクション(例えば、基本アクション、複合アクションなど)を含む。いくつかの例において、データベース124は、プロセス制御システム102の1つ以上の構成要素に1つ以上のアクションを実行するように命令するためにVA100によって実行できるスクリプトを含む。
図1Aのデータベース124は、揮発性メモリ(例えば、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックランダムアクセスメモリ(RDRAM)など)および/または不揮発性メモリ(フラッシュメモリなど)によって実装され得る。データベース124は、追加的または代替的に、DDR、DDR2、DDR3、DDR4、モバイルDDR(mDDR)などの1つ以上のダブルデータレート(DDR)メモリによって実装されてもよい。データベース124は、追加的または代替的に、ハードディスクドライブ(複数可)、コンパクトディスクドライブ(複数可)、デジタルバーサタイルディスクドライブ(複数可)、ソリッドステートディスクドライブ(複数可)などの1つ以上の大容量記憶デバイスによって実装されてもよい。示された例において、データベース124は単一のデータベースとして示されるが、データベース124は、任意の数および/またはタイプ(複数可)のデータベースによって実装されてもよい。また、データベース124に格納されたデータは、例えば、バイナリデータ、コンマ区切りデータ、タブ区切りデータ、構造化照会言語(SQL)構造などの任意のデータフォーマットであってもよい。
図1Aのネットワーク126は、バスおよび/またはコンピュータネットワークである。例えば、ネットワーク126はプロセス制御ネットワークであり得る。いくつかの例において、ネットワーク126は、インターネットに通信可能に結合される能力を備えたネットワークである。しかしながら、ネットワーク126は、例えば、1つ以上のデータバス、1つ以上のローカルエリアネットワーク(LAN)、1つ以上の無線LAN、1つ以上のセルラーネットワーク、1つ以上の光ファイバーネットワーク、1つ以上の衛星ネットワーク、1つ以上のプライベートネットワーク、1つ以上のパブリックネットワークなどを含む任意の適切な有線および/または無線ネットワークを使用して実装され得る。ネットワーク126は、例示的なVA100がデータベース124と通信することを可能にし得る。
図1Bは、図1Aの例示的なプロセス制御システム102の動作を容易にするために、例示的なウェアラブルデバイス128、130、132に含まれるか、かつ/またはそこで実行する図1Aの例示的なVA100の概略図である。図1Bでは、ウェアラブルデバイス128、130、132は、第1の例示的なウェアラブルデバイス128、第2の例示的なウェアラブルデバイス130、および第3の例示的なウェアラブルデバイス132を含む。図1Bの第1のウェアラブルデバイス128はヘッドセットである。追加的または代替的に、VA100は、スマートウォッチ、スマートゴーグルなどの任意の他のコンピューティングまたはウェアラブルデバイス上でインストールされ、かつ/または構成され得る。
図1Bの示された例の第1のウェアラブルデバイス128は、1つ以上のプロセッサ、機械可読命令を格納するための1つ以上のメモリデバイスおよび/または1つ以上の大容量記憶デバイス、Bluetooth(登録商標)および/またはWi-Fi通信を容易にする1つ以上のインターフェース回路、ボタンおよび/またはマイクロホンなどの1つ以上の入力デバイス、スピーカなどの1つ以上の出力デバイス、および/または任意の他のVA100を実装し得るハードウェア構成要素を含むプロセッサベースのコンピュータプラットフォームを含むヘッドセットであってもよい。このような例において、ユーザ104は、ボタンを押すか、または「ハロー、仮想アシスタント」などの特定の句をアナウンスすることにより、第1のウェアラブルデバイス128でVA100を呼び出し得る。
図1Bの示された例の第2のウェアラブルデバイス130は、リストバンドである。例えば、第2のウェアラブルデバイス130は、1つ以上のプロセッサ、機械可読命令を格納するための1つ以上のメモリデバイスおよび/または1つ以上の大容量記憶デバイス、Bluetooth(登録商標)および/またはWi-Fi通信を容易にする1つ以上のインターフェース回路、ボタンおよび/またはマイクロホンなどの1つ以上の入力デバイス、スピーカなどの1つ以上の出力デバイス、および/または任意の他のVA100を実装し得るハードウェア構成要素を含むプロセッサベースのコンピュータプラットフォームを含むリストバンドであってもよい。このような例において、ユーザ104は、ボタンを押すか、または「ハロー、仮想アシスタント」などの特定の句をアナウンスすることにより、第2のウェアラブルデバイス130でVA100を呼び出し得る。
図1Bの示された例の第3のウェアラブルデバイス132は、2つのレンズを含む眼鏡に対応する。例えば、第3のウェアラブルデバイス132は、1つ以上のプロセッサ、機械可読命令を格納するための1つ以上のメモリデバイスおよび/または1つ以上の大容量記憶デバイス、Bluetooth(登録商標)および/またはWi-Fi通信を容易にする1つ以上のインターフェース回路、ボタンおよび/またはマイクロホンなどの1つ以上の入力デバイス、ディスプレイ、スピーカなどの1つ以上の出力デバイス、および/または任意の他のVA100を実装し得るハードウェア構成要素を含むプロセッサベースのコンピュータプラットフォームを含む眼鏡であってもよい。このような例において、ユーザ104は、まばたきするか、または眼鏡の前で手を振るなどのジェスチャ動作を行いながら、ボタンを押すか、または「ハロー、仮想アシスタント」などの特定の句をアナウンスすることにより、第3のウェアラブルデバイス132でVA100を呼び出し得る。いくつかの例において、第3のウェアラブルデバイス132は、第1のレンズに統合された第1のディスプレイと、第2のレンズに統合された第2のディスプレイとを含む2つのディスプレイを含む。他の例において、第3のウェアラブルデバイス132は、眼鏡の第1または第2のレンズのいずれかに1つのディスプレイを含む。
図1Bの示された例において、ウェアラブルデバイス128、130、132は、Bluetooth(登録商標)またはWi-Fiなどの無線接続を介してネットワーク126に通信可能に結合される。いくつかの例において、ウェアラブルデバイス128、130、132のうちの1つ以上は、アクセスポイント、ビーコン、ゲートウェイなどのインターリーブデバイスなしで直接無線接続を介してネットワーク126に通信可能に結合され得る。ウェアラブルデバイス128、130、132のうちの1つ以上は、アクセスポイント、ビーコン、ゲートウェイなどのインターリーブデバイスを介してネットワーク126に通信可能に結合され得る。
図1Bの示された例において、ウェアラブルデバイス128、130、132のうちの1つ以上は、ビーコン134a~gのうちの1つ以上を介してネットワーク126に通信可能に結合され得る。図1Bでは、ビーコン134a~gは、Wi-Fiビーコン(例えば、Wi-Fi Direct(登録商標)ビーコン)である。例えば、ビーコン134a~134gは、コンピューティングデバイス間(例えば、サーバとクライアントデバイス間、アクセスポイントとクライアントデバイス間など)の無線通信を容易にし得る1つ以上のプロセッサを含むデバイスである。代替的に、ビーコン134a~gのうちの1つ以上は、Bluetooth(登録商標)ビーコンまたはデュアルBluetooth(登録商標)/Wi-Fiビーコンであってもよい。追加的または代替的に、ビーコン134a~gのうちの1つ以上は、異なる無線通信プロトコルをサポートし得る。ビーコン134a~gのうちの7つが図1Bに示されているが、示されたビーコン134a~gよりも少ないか、または多いビーコンが使用されてもよい。
図1Bの示された例において、ビーコン134a~gは、プロセス制御システム102全体の複数の場所に配置されている。図1Bでは、ビーコン134a~gの各々は、1つ以上のフィールドデバイスを含むカバレッジエリアを生成する位置に配置されている。カバレッジエリアは、デバイスがカバレッジエリアに関連付けられたビーコンに通信可能に結合される地理的エリアに対応し得る。例えば、ビーコン134a~134gのうちの第1のものは、FI-205 118およびFIC-207を含む第1のカバレッジエリアを有してもよい。いくつかの例において、ビーコン134a~gの1つ以上のカバレッジエリアは互いに重複していてもよい。他の例において、ビーコン134a~bのカバレッジエリアは互いに重複していなくてもよい。
いくつかの例において、ウェアラブルデバイス128、130、132は、生成されるか、かつ/またはビーコン134a~gに関連付けられるカバレッジエリア内にあるときに、ビーコン134a~gに動的に接続する。例えば、ウェアラブルデバイス128、130、132は、第1のビーコン134aの関連付けられたカバレッジエリアの範囲内に入るとき、ビーコン134a~gの第1のビーコンを介してネットワーク126に通信可能に結合されてもよい。ウェアラブルデバイス128、130、132が第1のビーコン134aと通信可能に結合されると、ユーザ104は、第1のビーコン134aの範囲内のフィールドデバイスに対応するVA100との会話をトリガし得る。例えば、ユーザ104は、FI-205 118に対応する第1のウェアラブルデバイス128上でVA100との会話を開始し得る。このような例において、ユーザ104は、「ハロー仮想アシスタント、私にFI-205に関する情報を提供して」とアナウンスすることによりVA100を呼び出し得る。呼び出しに応答して、VA100は、第1のビーコン134aを介してネットワーク126に通信可能に結合されたデータベース124への要求を生成し得る。VA100は、FI-205 118に対応する情報を含むユーザ104への可聴応答を生成し得る。
いくつかの例において、VA100は、カバレッジエリアに入ると、ビーコン134a~gのカバレッジエリア内のフィールドデバイスに関連付けられているウェアラブルデバイス128、130、132に情報をダウンロードし得る。例えば、第3のウェアラブルデバイス132を装着しているユーザ104が第1のビーコン134aの第1のカバレッジエリアに入ると、VA100は、第1のカバレッジエリア内のフィールドデバイスについて第1のビーコン134aに照会し得る。第1のビーコン134aは、FI-205 118およびFIC-207を含むフィールドデバイスのリストを返してもよい。VA100は、返されたフィールドデバイスのリストを第3のウェアラブルデバイス132に格納されている情報と比較し得る。VA100は、第3のウェアラブルデバイス132にまだ格納されていない情報をダウンロードしてもよい。例えば、第3のウェアラブルデバイス132は、FI-205 118に関連付けられた第1の情報を既に格納しているが、FIC-207に関連付けられた第2の情報をまだ格納していない場合がある。このような例において、VA100は、第2の情報について第1のビーコン134aに照会し得る。いくつかの例において、VA100は、第3の情報が第1の情報と異なる場合、FI-205 118に関連付けられた第3の情報について第1のビーコン134aに照会する。他の例において、VA100は、第1の情報を第3の情報で置き換えてもよい。
いくつかの例において、VA100は、カバレッジエリアを出ると、ビーコン134a~gのカバレッジエリア内のフィールドデバイスに関連付けられている情報を削除する。例えば、第2のウェアラブルデバイス130を装着しているユーザ104が第1のビーコン134aに関連付けられた第1のカバレッジエリアを離れると、VA100は、FI-205 118、FIC-207などに関連付けられた情報を削除するように第2のウェアラブルデバイス130に指示してもよい。他の例において、VA100は、第1のカバレッジエリアとは異なる第2のカバレッジエリアに入るときに情報を削除するように第2のウェアラブルデバイス130に指示してもよい。例えば、VA100は、第2のカバレッジエリア内の第2のフィールドデバイスに関連付けられた第2の情報で第1のカバレッジエリアに関連付けられた以前に格納された情報を置き換えるように第2のウェアラブルデバイス130に指示し得る。
有利には、VA100は、ネットワーク126を介してデータベース124から情報を取得する代わりに、ビーコンカバレッジエリアにフィールドデバイスに関連付けられた情報をウェアラブルデバイス128、130、132上でローカルに保存することにより、ユーザ104からの要求が処理される速度を低下させ得る。例えば、第3のウェアラブルデバイス132を装着しているユーザ104が第1のビーコン134aに関連付けられた第1のカバレッジエリアに入ると、VA100はFIC-205 120に関連付けられた配線図をダウンロードしてもよい。このような例において、ユーザ104がVA100に配線図を表示するように要求すると、VA100は、一方または両方の眼鏡上に(例えば、眼鏡に組み込まれた一方または両方のディスプレイ上に)配線図を表示するよう、第3のウェアラブルデバイス132に指示してもよい。第1のカバレージエリアに入ると、配線図をローカルに保存することにより、VA100は、ユーザ104による要求が処理される速度を上げ得る。
同様に、VA100は、データベース124に照会する代わりに、ビーコン134a~gに格納された情報からデータを検索することにより、ネットワーク126の維持に関連付けられた計算リソースの量を減らすことができる。いくつかの例において、ビーコン134a~gは、メッシュネットワークを形成することにより、ネットワーク126に関連付けられたネットワークリソースを削減し得る。例えば、ビーコン134a~gは、ビーコン134a~gの各々が他のビーコン134a~gのうちの少なくとも1つに通信可能に結合されるようにプロセス制御システム102に配置されてもよい。このような例において、第1のビーコン134aは、第2から第7のビーコン134b~gからの要求を処理し、ネットワーク126がビーコン134a~gの各々からの要求を処理する代わりにネットワーク126に要求を送信できる。
図2は、図1A~図1BのVA100の概略図である。図2では、例示的なプロセス制御環境200において、VA100は動作しており、かつ/またはプロセス制御(例えば、プロセス制御動作)を強化している。例えば、プロセス制御環境200は、化学プラント、製造施設、油田環境、プラントなどを含むプロセス産業環境またはシステムに対応し得る。例えば、プロセス制御環境200は、図1A~図1Bのプロセス制御システム102に対応してもよい。図2の示された例において、VA100は、図1A~図1Bのユーザ104、ホストアプリケーション106などとの通信(例えば、コマンドの受信、応答の送信など)を容易にする。いくつかの例において、ユーザ104および/またはホストアプリケーション106は、第1の例示的な要求201aおよび第2の例示的な要求201bを含む例示的な要求201a~bを介して、関心のあるデータまたは情報についてVA100に照会する。要求201a~bの一方または両方は、口頭要求、コマンド(例えば、口頭コマンド)、ホストアプリケーション106における選択および/またはそれへの入力などに対応し得る。例えば、ユーザ104は、第1の要求201aに「FIC-205はどのような状態ですか?」と尋ね得る。このような例において、VA100は、MODE、SP、PV、OUT、ステータス、アラームなど、および/またはそれらの組み合わせを含む、図1A~図1Bの制御ループ120に関連付けられた1つ以上のパラメータを返し得る。他の例において、ユーザ104は、ユーザインターフェースに表示された事前入力リストから第2の要求201bを選択するか、または、「Find me FI*」(ワイルドカード文字であるアスタリスク(*)は、FIに関連付けられた構成要素またはフィールドデバイスのリストを返すようにVA100に指示するか、またはフィールドデバイスの構成要素の説明にFIを含め得る)などの事前入力リストに含まれていないテキストベースのコマンドまたは要求をタイピングして入力を生成することにより、ホストアプリケーション106と対話し得る。例えば、VA100は、FIを含む指定子(例えば、FI-201、FIC-201、FI-202、FIC-202など)が割り当てられた1つ以上のフィールドデバイス、制御ループなどの名前、説明、および/または対応するパス情報を含むリストを生成し得る。
図2において、ホストアプリケーション106は、例示的なモバイルアプリケーション202であり得る。例えば、モバイルアプリケーション202は、図1A~図1Bの第1のデバイス108、第2のデバイス110、および/もしくは第3のデバイス112を使用して実行され、かつ/または動作され得る。例えば、モバイルアプリケーション202は、Apple(商標登録)iOSモバイルアプリケーション、Android(商標)モバイルアプリケーションなどであり得る。例えば、モバイルアプリケーション202は、Emerson(商標)DeltaV(商標)Mobileなどのプロセス制御ベースのモバイルアプリケーションであり得る。
図2の示された例において、ホストアプリケーション106は、例示的なブラウザアプリケーション204であり得る。例えば、ブラウザアプリケーション204は、VA100に送信された、VA100から受信された、かつ/またはVA100と交換された情報がHTTPメッセージとしてフォーマットされるウェブブラウザおよび/またはウェブサーバを実装し得る。しかし、例えば、ファイル転送プロトコル(FTP)、リアルタイム転送プロトコル(RTP)、簡易メッセージ転送プロトコル(SMTP)、HTTPセキュア(HTTPS)プロトコルなど、の任意の他のメッセージフォーマットおよび/または(通信)プロトコルが追加的または代替的に使用されてもよい。例えば、ブラウザアプリケーション204は、Emerson(商標)DeltaV(商標)Liveを使用して構築され、かつ/または生成されたプロセス制御ベースのブラウザアプリケーションであり得る。
図2のホストアプリケーション106は、例示的なデスクトップアプリケーション206であり得る。例えば、デスクトップアプリケーション206は、Apple(登録商標)Mac(登録商標)コンピュータ(例えば、MacBook(登録商標)コンピュータ、Mac Pro(登録商標)コンピュータなど)、Windowsベースのデスクトップおよび/もしくはラップトップコンピュータ、Linux(登録商標)ベースのデスクトップおよび/もしくはラップトップコンピュータなどで動作し、かつ/または実行し得る。例えば、デスクトップアプリケーション206は、機能するか、または動作するためにウェブブラウザおよび/またはインターネット接続を必要としないスタンドアロンアプリケーションとして動作し、かつ/または実行し得る。他の例において、デスクトップアプリケーション206は、機能するか、または動作するためにウェブブラウザおよび/またはインターネット接続を使用できるコンピュータアプリケーションとして動作し、かつ/または実行し得る。
図2の示された例において、モバイルアプリケーション202、ブラウザアプリケーション204、およびデスクトップアプリケーション206上で動作し、かつ/または実行するホストアプリケーション106は、ユーザ104から要求201a~bを受け入れ、かつ/または取得するためのユーザインターフェースを含む。例えば、VA100は、要求201a~bに対する応答をホストアプリケーション106に送信し得る。このような例において、ホストアプリケーション106は、ユーザインターフェースを介して応答を表示し得る(例えば、パラメータ値を含むグラフィックの表示、視覚化したものの表示、応答を含むテキストベースのメッセージの表示など)。いくつかの例において、ホストアプリケーション106は、ホストアプリケーション106に通信可能に結合された1つ以上のスピーカを介してVA100からの応答を通信し得る。例えば、ホストアプリケーション106は、VA100からの応答を表す口頭メッセージを生成し、ホストアプリケーション106を実行するコンピューティングデバイスに結合された1つ以上のスピーカを介して口頭メッセージを通信し得る。
図2の示された例において、ホストアプリケーション106は、ホストアプリケーションボットフレームワーク208の例を介したVA100との通信を容易にするために使用できる、1つ以上のアプリケーションプログラミングインターフェース(API)、拡張、プラグインなど、および/またはそれらの組み合わせを含む。代替的に、ホストアプリケーション106は、ホストアプリケーションボットフレームワーク208なしで、VA100とデータを通信し、かつ/または交換し得る。図2において、ホストアプリケーションボットフレームワーク208は、ホストアプリケーション106に含まれ、要求をキューイングし、要求および応答をマーシャリングする。例えば、ホストアプリケーションボットフレームワーク208は、VA100およびVA100からの応答に対する要求を処理し、かつ/または管理(例えば、要求のバッファリング、要求の優先順位付け、要求の並べ替え、要求とキャッシュに格納された応答の比較など)し得る。
図2の示された例において、ユーザ104および/またはホストアプリケーション106は、例示的なサーバボットフレームワーク210を介してVA100と通信し、かつ/または対話する。VA100は、コマンドおよび/または要求を受信し、かつ処理することにより通信を容易にするためのサーバボットフレームワーク210を含む。例えば、サーバボットフレームワーク210は、要求/応答、発行/購読、またはコールバックアーキテクチャまたはスキーマを使用したイベント登録に基づいて、ホストアプリケーション106からのクエリを処理または管理し得る。いくつかの例において、サーバボットフレームワーク210は、1つ以上のプロセッサベースのサーバによって実装される。
いくつかの例において、サーバボットフレームワーク210はユーザ104、ホストアプリケーション106などに同期して応答を返すが、他の例において、サーバボットフレームワーク210は応答を非同期に返す。例えば、非同期応答は、アラート、通知などとして返され得る。このような例において、ユーザ104は、図1A~図1Bのプロセスタンク122を充填するなどの長期実行ワークフローを要求し得る。サーバボットフレームワーク210は、プロセスタンク122の充填が完了したときに、かつ/またはプロセスタンク122が25%充填され、50%充填され、75%充填されたときなど、プロセスタンク122を充填するさまざまなマイルストーンのいずれかで、応答を非同期に生成し、(例えば、可聴アラートまたは通知を介して)ユーザ104、(例えば、ホストアプリケーション106のユーザインターフェース上の可聴アラートおよび/または視覚的通知を介して)ホストアプリケーション106、および/またはウェアラブルデバイス128、130、132のうちの1つに送信し得る。いくつかの例において、サーバボットフレームワーク210は、プロセスタンク122の充填率、図1A~図1Bの第1のフィールドデバイス116を通る流量、図1A~図1Bの第2のフィールドデバイス118のセンサ測定値などの長期実行ワークフローに関連付けられた情報を含む応答を、警告または通知とともに、かつ/またはそれに含めて生成し、送信し得る。
図2の示された例において、サーバボットフレームワーク210は、ホストアプリケーション106との通信を処理し、かつ/または管理するための例示的なフレームワークコントローラ212、例示的なパーサ214、例示的なアナライザ216、例示的なジェネレータ218、および例示的な実行部220を含む。代替的に、サーバボットフレームワーク210は、図2に示されるよりも少ないか、または多い構成要素を含んでもよい。代替的に、図2に示されるサーバボットフレームワーク210に含まれる構成要素は、任意の他の方法で組み合わせられ、分割され、再配置され、省略され、除去され、かつ/または実装されてもよい。
図2の示された例において、サーバボットフレームワーク210は、(1)ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などのうちの1つと、(2)サーバボットフレームワーク210との間の対話を容易にするためのフレームワークコントローラ212を含む。いくつかの例において、フレームワークコントローラ212は、要求を管理するときに使用する要求管理システムの構成および/またはタイプを判定する。例えば、フレームワークコントローラ212は、コールバック、および/または他のメッセージ処理スキーマを有する要求/応答、発行/購読、イベント登録に基づいて、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などとの通信またはデータ転送を容易にすることを判定し得る。
いくつかの例において、フレームワークコントローラ212は、ユーザ104、ホストアプリケーション106、および/またはウェアラブルデバイス128、130、132から受信され、かつ/または取得された要求201a~bに対する応答を管理する応答管理システムを判定する。例えば、フレームワークコントローラ212は、応答をユーザ104、ホストアプリケーション106、および/またはウェアラブルデバイス128、130、132に非同期的または同期的に送信し、かつ/または返すことを判定し得る。例えば、フレームワークコントローラ212は、ユーザ104からの初期要求201a~bが比較的長期実行ワークフロー(例えば、図1A~図1Bのプロセスタンク122の充填を開始するコマンド)であると判定することに基づいて、ユーザ104への応答を通知として非同期に返すことを判定し得る。他の例において、フレームワークコントローラ212は、ホストアプリケーション106からの初期要求が情報に対する要求(例えば、図1A~図1Bの第1のフィールドデバイス116に関連付けられたファームウェアのバージョンの要求)であると判定することに基づいて、ホストアプリケーション106に応答を同期的に返すことを判定し得る。
図2の示された例において、サーバボットフレームワーク210は、ユーザ104、ホストアプリケーション106、および/またはウェアラブルデバイス128、130、132からの要求201a~bに含まれる要素(例えば、識別可能な要素、別個の構成要素など)を判定し、かつ/または識別するためのパーサ214を含む。いくつかの例において、パーサ214は、トークン化を行うトークナイザー、または入力文字列のセクションを区切り、かつ/または分類するプロセスまたは方法を含む。例えば、パーサ214は、ユーザ104による第1の要求201aに含まれる単語のストリームを、さらなる処理のためにアナライザ216により取得されるトークンに分割するか、またはセグメント化し得る。追加的または代替的に、パーサ214は、他の方法で第1の要求201aの要素を判定してもよい。
いくつかの例において、パーサ214は次元縮小を行って、サーバボットフレームワーク210による実質的な認識値を追加しない第1の要求201a内の要素を削減し、かつ/または除去する。例えば、パーサ214は、ユーザ104からの第1の要求201aからの外来または識別不可能な可聴ノイズをフィルタリングし、かつ/または除去して、サーバボットフレームワーク210による第1の要求201aの処理に必要な処理能力の量または期間を削減し得る。他の例において、パーサ214は、処理のためにアナライザ216に転送されるトークンの量を削減し得る。例えば、パーサ214は、判定されたトークンをアナライザ216に転送する前に、ユーザ104からの第1の要求201aから、「um」、「the」などのアクション不能、フィラー、または無関係な単語に関連付けられたトークンを削除し得る。
いくつかの例において、パーサ214は、ユーザ104、ホストアプリケーション106、および/またはウェアラブルデバイス128、130、132からの要求に基づいて、表現(例えば、正規表現、典型的な表現など)を識別し、かつ/または判定する。例えば、パーサ214は、要求201a~bが「FIC-201はどのような状態ですか?」、「FV-106はどこにありますか?」などの一般的な質問に基づいていることを判定し得る。パーサ214は、「どのような状態ですか」、「どこにありますか」などの典型的な句を判定して、典型的な句に続く、要求された構成要素(例えば、FIC-201、FV-106など)に基づいた応答を判定し得る。いくつかの例において、パーサ214は、ジェスチャベースの要求の要素(例えば、VA 100などからの応答を承認するために手を振ること、親指を上げるジェスチャなど)を識別するための、画像認識ハードウェア(例えば、1つ以上のハードウェアアクセラレータ)および/またはソフトウェアを含む。
いくつかの例において、パーサ214は、要求201a~bに基づいて情報抽出を行う。例えば、パーサ214は、要求されているフィールドデバイスの名前および/またはタイプを抽出することに基づいて、要求201a~bに関連付けられたフィールドデバイス、制御ループなどを識別し得る。他の例において、パーサ214は、要求201a~bからの情報を抽出することに基づいて、要求201a~bのタイプ(例えば、コマンド、ロケーション要求、保守ステップ要求など)を識別し得る。
図2の示された例において、サーバボットフレームワーク210は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などからの要求201a~bを検証するためのアナライザ216を含む。アナライザ216は、文法チェック、スペルチェック、セマンティックチェックなどを含む1つ以上の検証または検証チェックを行って、パーサ214によってトークン化された表現が有効な表現であるかどうかを判定する。例えば、アナライザ216は、構文アナライザ214が、式を形成するために組み立てられたときに、VA100によって有効な応答を返すことができる1つ以上のトークンを生成したかどうかを判定し得る。
図2の示された例において、サーバボットフレームワーク210は、1つ以上の検索、応答、スクリプト、および/またはテンプレートを含むアクションのセットをコンパイルし、生成し、かつ/または産生するジェネレータ218を含む。いくつかの例において、ジェネレータ218は、要求201a~bに基づいて検索を実行する。例えば、ジェネレータ218は、「FIC-201のステータスは何ですか?」というクエリに基づいて検索を行い得、これに対してジェネレータ218は、ステータスについて図2の例示的なシステム例222のうちの1つを検索し、検索に基づいて「FIC-201のステータスはFV-101を閉じている」との例示的な応答を作成し、例示的な応答をユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などに送信する。
いくつかの例において、ジェネレータ218は、要求201a~bに基づいて、スクリプトまたはテンプレートのうちの少なくとも1つを生成し得る。このような例において、ジェネレータ218はスクリプトまたはテンプレートを実行部220に送信し得る。例えば、ユーザ104からの要求201a-bは、長時間実行されるワークフロー、または複数のステップまたは完了点を含むワークフローに対応し得る。例えば、ユーザ104によって要求される長期実行ワークフローは、「FV-105のシールを交換するステップは何ですか?」であり得る。このような例において、ジェネレータ218は、FV-105に対応するフィールドデバイスタイプ、質問されているフィールドデバイスタイプの構成要素、またはユーザ104の識別のうちの少なくとも1つに基づいてテンプレートを作成し得る。例えば、テンプレートは、個々のステップに編成されたステップのセットを含め得る。セットのステップの各々は、ステップを実行する1つ以上の命令、ステップを行う1つ以上のツール、および/または、1つ以上の命令が正しく実行されることを保証する1つ以上の検証を含む。このような例において、テンプレートは、ステップが完了したことをユーザ104が確認する場合、またはユーザ104が追加情報を要求する場合に、ユーザ104に通信され得るステップの各々に対する応答を含み得る。例えば、応答は、次のステップに関連付けられた情報であり得るか、または、行われている現在のステップに関連付けられたユーザ104によるクエリ(例えば、要求201a~b)への応答、現在のステップに対応するツールなどであり得る。
いくつかの例において、ジェネレータ218は、要求のソースから追加情報を要求するための応答を作成する。例えば、ジェネレータ218は、ユーザ104がプロセス制御システム102に含まれていないフィールドデバイスに関する情報を要求し、フィールドデバイスによってサポートされていないフィールドデバイス上でのアクションを行うことを要求するなどの場合に、明確化または追加情報を求めるユーザ104への応答を生成し得る。このような例において、ジェネレータ218は、サーバボットフレームワーク210によって処理された要求の精度を検証するために、ユーザ104からの追加情報を要求し得る。いくつかの例において、ジェネレータ218は、要求が誤った要求(例えば、頻繁に受信される誤った要求)であることを判定し、要求201a~bの代替案および/または元の要求201a~bが正しくない理由、かつ/または、元の要求201a~bの代わりに提案され得る代替案を実行し得る理由を記述する、対応する情報を含む応答を生成する。
図2の示された例において、サーバボットフレームワーク210は、ユーザ104、ホストアプリケーション106、および/またはウェアラブルデバイス128、130、132からの要求に基づいてアクションまたはコマンドを容易にする実行部220を含む。例えば、実行部220は、生成部218からスクリプト、テンプレートなどを受信し得る。いくつかの例において、実行部220は、要求201a~bに基づいてスクリプト、テンプレート、および/またはアクションをトリガし、かつ/または開始する。例えば、実行部220は、JavaScript(登録商標) Object Notation(JSON)形式のコマンド構造に基づくコマンドを例示的な会話コンテキストエンジン224に送信し得る。送信に応答して、会話コンテキストエンジン224は、ユーザ104が第1のフィールドデバイス116を開くことを要求することに応答して、図1Aの第1のフィールドデバイス116を開くコマンドを生成し得る。他の例において、実行部220は、図1A~図1Bのプロセスタンク122を充填するためにテンプレートをトリガし、テンプレートの1つ以上のステップまたは完了ポイントで通知を生成し得る。例えば、実行部220は、スクリプト、テンプレートなどを会話コンテキストエンジン224に送信して、プロセスタンク122の充填をトリガし得る。他の例において、実行部220は、第1のフィールドデバイス116、第2のフィールドデバイス118などに関連付けられた情報を要求するユーザ104に応答してスクリプトをトリガし得る。
いくつかの例において、実行部220は、例示的な会話コンテキストデータベース244に含まれ、かつ/または格納される例示的なモデル243を更新する。いくつかの例において、会話コンテキストデータベース244は複数のモデル243を含む。例えば、モデル243は、1つ以上の機械学習モデル、1つ以上のニューラルネットワーク(例えば、人工ニューラルネットワーク)などに対応し得る。例えば、実行部220は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132のうちの1つ以上などからの要求を処理するために使用されるモデル243を更新し得る。このような例において、実行部220は、例示的な会話コンテキストエンジン224をトリガして、VA100に関連付けられた会話コンテキストデータベース244に含まれるモデル243をトリガし得る。いくつかの例において、モデル243は、図1A~図1Bのプロセス制御システム102の新しい構成に基づいて、再構成され、更新されるなどする。例えば、プロセス制御システム102は、サーバボットフレームワーク210および/または、より一般的にVA100によって生成される応答に影響を与え得る1つ以上のフィールドデバイスを削除すること、および/または追加すること、1つ以上の制御ループを修正することなどによって、修正され得る。
会話コンテキストデータベース244に格納されたモデル243(複数可)は、人工ニューラルネットワークに対応し得る。人工ニューラルネットワークは、既知の入力と既知の出力を有する例からの評価または「学習」に基づいて、タスクの実行および/または応答の提供を学習するコンピュータシステムアーキテクチャモデルである。会話コンテキストデータベース244に格納されたモデル243(複数可)などのニューラルネットワークは、「ニューロン」またはノードと呼ばれる相互接続された一連のノードを特徴とし得る。入力ノードは、実行部220からの入力などの外部ソース/刺激(例えば、ユーザ104からの要求201a~b、ジェネレータ218によって生成された応答など)からアクティブ化される。入力ノードは、(例えば、機械パラメータ、以前の関係などによって管理された)ノード間の接続に従って他の内部ネットワークノードをアクティブ化する。接続は動的であり、フィードバック、トレーニングなどに基づいて変更され得る。接続を変更することにより、人工ニューラルネットワークの出力を改善するか、または最適化して、より/最も正確な結果を産生し得る。例えば、会話コンテキストデータベース244に格納されているモデル243は、1つ以上のソースからの情報を使用してトレーニングされ、入力を応答などにマッピングして、応答の精度を向上させ、応答などの生成、および/またはそれらの組み合わせに必要な時間を短縮し得る。
ニューラルネットワーク、深層学習ネットワーク、サポートベクター機械、および/または他の体験/観察学習システム(複数可)などの機械学習技術を使用して、例えば最適な結果を生成し、画像内のオブジェクトを見つけ、発話を理解し、発話をテキストに変換し、検索エンジンの結果の関連性を向上させ得る。深層学習は、アルゴリズムのセットを使用して、線形および非線形変換を含む複数の処理層を有する深層グラフを使用したデータの高レベルの抽象化をモデル化する機械学習のサブセットである。多くの機械学習システムには、機械学習ネットワークの学習および更新を通じて修正される初期機能および/またはネットワークウェイトによりシードされているが、深層学習ネットワークは分析のために「良い」機能を識別するために自らをトレーニングする。多層アーキテクチャを使用すると、深層学習技術を使用する機械は、従来の機械学習技術を使用する機械よりも生データをより適切に処理し得る。評価または抽象化の異なる層を使用して、高度に相関する値のグループまたは特有のテーマのデータを調べることが容易になる。
例えば、畳み込みニューラルネットワーク(CNN)を利用する深層学習では、畳み込みフィルタを使用してデータをセグメント化し、データ内の学習可能な観察可能な特徴を特定する。CNNアーキテクチャの各フィルタまたは層は、入力データを変換して、データの選択性と不変性を高める。このデータの抽象化により、機械は無関係な背景情報を分類し、無視しようとしているデータの機能に集中することが可能になる。
深層学習は、多くのデータセットには低レベルの機能を含む高レベルの機能が含まれているという理解に基づいて動作する。例えば、オブジェクトを探すのではなく、画像(例えば、ジェスチャベースの要求の画像)を調べながら、検索対象のオブジェクトを形成するパーツを形成するモチーフを形成するエッジを検索する方がより効率的である。これらの機能の階層は、異なる形式のデータに含まれている。
学習された観察可能な機能には、教師あり学習に機械によって学習されたオブジェクトおよび定量化可能な規則性が含まれる。適切に分類されたデータの大規模なセットを備えた機械は、新しいデータの正しい分類に関連付けられた機能を区別して抽出するためにより適切に装備されている。転移学習を利用する深層学習機械は、データ機能を人間の専門家によって確認された特定の分類に適切に接続し得る。逆に、同じ機械は、人間の専門家による誤った分類を通知されると、分類のパラメータを更新し得る。例えば、設定および/または他の構成情報は、設定および/または他の構成情報の学習された使用によって導かれ、システムがより使用されるにつれて(例えば、繰り返し、かつ/または複数のユーザによって)、多くのバリエーションおよび/または設定および/または他の構成情報の他の可能性は、特定の状況に対して削減され得る。
例えば、深層学習ニューラルネットワークの例は、専門家が分類したデータのセットでトレーニングし得る。このデータセットは、ニューラルネットワークの第1のパラメータを構築し、これが教師あり学習の段階になる。教師あり学習の段階で、所望の動作が達成されたかどうかをニューラルネットワークはテストされ得る。所望のニューラルネットワークの動作が達成されると(例えば、指定された閾値に従って動作するように機械がトレーニングされるなど)、機械を使用するために展開し得る(例えば、「実際の」データで機械をテストするなど)。動作中、ニューラルネットワークの分類を確認するか、または拒否して(例えば、エキスパートユーザ、エキスパートシステム、参照データベースなどによって)ニューラルネットワークの動作を改善し続け得る。会話コンテキストデータベース244に含まれるモデル243(複数可)は次に、進行中の対話に基づいてニューラルネットワーク動作を判定する分類のパラメータが更新されるため、転移学習の状態にある。特定の例において、会話コンテキストデータベース244に格納されたモデル243などの人工ニューラルネットワークは、パーサ214によって解析された要素、ジェネレータ218によって生成された応答など、別のプロセスに直接フィードバックを提供できる特定の例において、モデル243は、データが別のプロセスに提供される前に(クラウドなどを介して)バッファリングされ、検証されるデータを出力する。
いくつかの例において、実行部220は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などからの要求201a~bに基づいて目的を更新する。例えば、実行部220は、以前の要求に関連付けられたアクション、プロセス、動作などをキャンセルするためのユーザ104からの要求に基づき、テンプレート、スクリプトなどを更新し得る。例えば、ユーザ104は、第1の要求が第2の要求の前に行われる場合に、第1の要求でVA100に図1A~図1Bのプロセスタンク122を充填するように要求し、第1の要求が行われる第2の要求でプロセスタンク122の充填をキャンセルするようVA100に要求し得る。このような例において、実行部220は、第1の要求に応答して生成されたスクリプト、テンプレートなどをキャンセルし、かつ/または停止することにより、プロセスタンク122の充填を停止するコマンドを生成できる。いくつかの例において、実行部220は、目的の更新に応答してアクションを生成する。例えば、実行部220は、プロセスタンク122の充填を停止することを要求するユーザ104に応答して、プロセスタンク122をパージするコマンドを生成し得る。このような例において、実行部220は、コマンドに関連付けられた情報をユーザ104に通信して、実行部220がコマンドの実行を容易にする前にユーザ104がコマンドを承認することを保証できる。
いくつかの例において、実行部220はダイアログまたは応答計画を更新する。例えば、実行部220は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などからの要求201a~bに基づいてスクリプトまたはテンプレートを生成し得る。例えば、実行部220は、「FV-105のステータスは何ですか?」と質問するユーザ104に基づいてスクリプトを生成し得る。実行部220は、FV-105、FV-105に結合されたデバイス、またはFV-105を含む制御ループに関連付けられてユーザ104が尋ね得る潜在的な質問に対する応答または応答のレベルを含むために、スクリプトを生成し得る。このような例において、実行部220は、ユーザ104が生成部218、実行部220などによって生成され、通信される応答にフォローアップ質問をするときに、スクリプトに関連付けられたダイアログを更新し得る。例えば、実行部220は、ユーザ104がフォローアップ要求でより具体的な情報を求めることに基づいて、第1のレベルの質問および対応する応答から、第2のレベルの質問および対応する応答にユーザ104が移行したことを判定し得る。
図2の示された例において、ユーザ104は、例示的なDCSコントローラアセンブリ226を介してVA100と対話し得る。例えば、DCSコントローラアセンブリ226は、エマソン(商標)DeltaV(商標)SシリーズDCSシステムであり得る。例えば、DCSコントローラアセンブリ226は、1つ以上のプログラマブルロジックコントローラ(PLC)または産業またはプロセス自動化に使用される任意の他のプロセスコントローラであり得る。代替的に、DCSコントローラアセンブリ226は、任意の他のタイプのDCSシステムであってもよい。図2のDCSコントローラアセンブリ226は、第1のコントローラ228および第2のコントローラ230を含む。図2では、第1および第2のコントローラ228、230は、特徴付けモジュール(CHARM)I/Oカード(CIOC)である。代替的に、電子コントローラの任意の他の数またはタイプが使用されてもよい。第1および第2のコントローラ228、230は、センサ測定値の取得および処理、センサ測定値の外部コントローラおよび/またはDCSへの送信などのデータ取得および制御動作を行う。例えば、第1および第2のコントローラ228、230は、図1Aのプロセス制御システム102に含まれ、第1のフィールドデバイス116、第2のフィールドデバイス118などを制御し、かつ/または監視し得る。
図2の第1および第2のコントローラ228、230は、端子ブロック234を介してI/Oモジュール232に電気的に結合されている。I/Oモジュール232は、端子ブロック234に取り外し可能に結合されている。図2のI/Oモジュール232はCHARMである。代替的に、データ取得および制御のために使用される任意の他のタイプの入力および/または出力モジュールを使用してもよい。各CHARMは、第1および第2のコントローラ228、230の個々の入力および/または出力チャネルである。例えば、I/Oモジュール232の各々は、アナログ入力または出力チャネル、デジタル入力または出力チャネル、リレーチャネルなどであり得る。I/Oモジュール232の各々は、アナログ-デジタル(A/D)変換回路、信号分離回路などを含み得る。
図2の示された例において、I/Oモジュール236の第1のものはVAモジュールである。いくつかの例において、VAモジュール236は、DCSコントローラアセンブリ226と(1)ネットワーク126を介したVA100、(2)ビーコン134a~gのうちの1つ以上、および/または(3)図1Bのウェアラブルデバイス128、130、132のうちの1つ以上との対話を容易にし得る。例えば、第1のウェアラブルデバイス128は、第1の要求201aを第1のビーコン134aに送信することができ、次に、クエリをVAモジュール236に送信し、VAモジュール236は、次に図1A~図1Bのフィールドデバイス118に関連付けられた情報についてネットワーク126を介してVA100に照会し得る。このような例において、VAモジュール236は、DCSコントローラアセンブリ226に含まれる大容量記憶ディスクまたは記憶デバイスに情報を格納し、かつ/または情報をユーザ104に通信し得る。例えば、VAモジュール236は、VA100とのユーザ104の対話(例えば、ユーザ104と情報を通信する、および/またはユーザ104から第1の要求201aを取得する)を容易にし得る。例えば、VAモジュール236は、1つ以上のスピーカおよび/または1つ以上のマイクロホンを含み得る。このような例において、VAモジュール236は、1つ以上のマイクロホンを使用して、ユーザ104から第1の要求201aを聞くおよび/または別の方法で取得し得る。VAモジュール236は、1つ以上のスピーカを使用して、第1の要求201aに対する応答をユーザ104に通信および/または送信し得る。
いくつかの例において、VAモジュール236は、第1の要求201aを、図1A~図1Bのネットワーク126を介してサーバボットフレームワーク210に送信され得る1つ以上のデジタル信号に転換する。サーバボットフレームワーク210が1つ以上のデジタル信号を受信することに応答して、サーバボットフレームワーク210は、パーサ214を介して1つ以上のデジタル信号をトークンに転換し、かつ/または変換し得る。サーバボットフレームワーク210は、トークンを分析し、トークンに基づいて応答を判定し、応答を1つ以上のデジタル信号に変換して、ネットワーク126、DCSコントローラアセンブリ226などを介してVAモジュール236に送信し得る。VAモジュール236が1つ以上のデジタル信号を受信することに応答して、VAモジュール236は、VAモジュール236に含まれる1つ以上のスピーカを介して1つ以上のデジタル信号を音に変換して、ユーザ104に応答を通信する。
代替的に、VAモジュール236の機能は、第1のコントローラ228または第2のコントローラ230のうちの少なくとも1つに組み込まれ、かつ/または統合されてもよい。例えば、1つ以上のマイクロホンおよび/または1つ以上のスピーカは、DCSコントローラアセンブリ226、第1のコントローラ228、および/または第2のコントローラ230に統合されてもよい。いくつかの例において、VAモジュール236は、(例えば、有線接続、無線接続などを介して)DCSコントローラアセンブリ226のうちの少なくとも1つ、ビーコン134a~gの1つ以上、および/またはVA100に通信可能に結合され得るスタンドアロンデバイスである
図2の示された例において、VA100は、会話コンテキストに基づき、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132、DCSコントローラアセンブリ226などからの要求を管理し、かつ/または処理する会話コンテキストエンジン224を含む。例えば、ユーザ104は、DCSコントローラアセンブリ226の第1のコントローラ228、第2のコントローラ230などに関連付けられた情報および/またはステータスをVA100に求め得る。このような例において、ステータスは、第1のコントローラ228の健全性、第2のコントローラ230のファームウェアバージョン、I/Oモジュール236のうちの1つ以上の健全性などに対応し得る。いくつかの例では、会話はVA100との対話に対応する。例えば、会話は、ビーコン134a~g、ウェアラブルデバイス128、130、132、VAモジュール236などを介してVA100から口頭で情報を通信および/または受信するユーザ104に対応し得る。他の例において、会話は、ホストアプリケーション106がVA100に要求を送信および/またはVA100から応答を受信することに対応し得る。いくつかの例において、会話コンテキストエンジン224は、1つ以上のプロセッサベースのサーバによって実装される。いくつかの例において、サーバボットフレームワーク210および会話コンテキストエンジン224は、同じ1つ以上のプロセッサベースのサーバによって実装される。他の例において、サーバボットフレームワーク210は、会話コンテキストエンジン224を実装する1つ以上のプロセッサベースのサーバとは別の1つ以上のプロセッサベースのサーバによって実装される。
いくつかの例において、会話コンテキストは、化学プラント、製造施設、油田環境などを含むプロセス産業に関連付けられた要求、応答などに対応する。いくつかの例において、会話コンテキストエンジン224および/またはより一般的にVA100は、図1A~図1Bのプロセス制御システム102に関連付けられたシステム構成に基づいて、会話コンテキストを使用して応答を生成し得る。例えば、会話コンテキストエンジン224は、プロセス制御デバイス構成(例えば、DeltaVデータベース構成)、資産管理ソフトウェア(AMS)データベース、レシピ、および/または他のプロセス関連情報に基づいて、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などからの要求に対する応答を生成し得る。
図2の会話コンテキストエンジン224は、サーバボットフレームワーク210によって処理された要求を処理し、かつ/または管理するための例示的な会話プロセッサ238、例示的なアクションプロセッサ240、および例示的な会話状態ハンドラ242を含む。例えば、会話コンテキストエンジン224は、プロセス制御システム102の構成に基づいてコンテキストを確立し、コンテキストに関連付けられたトピック(例えば、第1のフィールドデバイス116、第2のフィールドデバイス118などに関連付けられた要求など)を識別し、トピックに関連付けられた1つ以上のアクションを判定し得る。例えば、会話コンテキストエンジン224は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などからの要求201a~bのコンテキストが図1A~図1Bのプロセス制御システム102であることを判定し得る。会話コンテキストエンジン224は、要求のコンテキストがプロセス制御システム102であると判定することに基づいて、プロセス中心の応答を調整し、かつ/または生成し得る。会話コンテキストエンジン224は、要求に含まれる識別されたトピックを図1A~図1Bのデータベース124、図2の会話コンテキストデータベース244にロードされた構成にマッピングすることにより、要求のコンテキストがプロセス制御システム102であることを判定し得る。このような例において、会話コンテキストエンジン224は、1つ以上のスクリプトを実行して、1つ以上のアクションを行い、トピックに関連付けられた情報などを返し、かつ/またはその組み合わせを行い得る。
図2の示された例において、会話コンテキストエンジン224は、会話プロセッサ238を含み、各タスクが1つ以上のアクションを含むスクリプトまたは自動化タスクの他のリストをアセンブルし、コンパイルし、かつ/または集約する。例えば、会話プロセッサ238は、サーバボットフレームワーク210を介してユーザ104から要求201a~bを取得し得る。会話プロセッサ238は、要求に基づいて、1つ以上のアクション、1つ以上の返されるパラメータ(例えば、1つ以上の返されるパラメータの値)など、および/またはそれらの組み合わせを識別し得る。例えば、ユーザ104は、「FV-105を見せてください。」などの要求を発行し得る。サーバボットフレームワーク210は、要求を処理し、処理された要求を会話プロセッサ238に送信し得る。会話プロセッサ238は、要求を、指定子FV-105が割り当てられたフィールドデバイスに関連付けられた情報に対する要求として識別し得る。このような例において、会話プロセッサ238は、MODE、OUT、STATUSなどを含むフィールドデバイスに関連付けられたパラメータを検索し、検索されたパラメータを応答に集約し、サーバボットフレームワーク210を介して応答をユーザ104に送信する。いくつかの例において、応答は、言葉によるコミュニケーションを介してユーザ104に通信される。いくつかの例において、応答は、ホストアプリケーション106を介してユーザ104に通信される(例えば、ディスプレイに応答を表示する、コンピューティングデバイスに結合されたスピーカと応答を通信するなど)。
図2の会話プロセッサ238は、例示的な会話コンテキストデータベース244から検索され、かつ/または取得された情報に基づいてスクリプトを集約する。いくつかの例において、会話プロセッサ238は、例示的なトピック246に基づく情報について会話コンテキストデータベース244に照会する。例えば、会話プロセッサ238は、フィールドデバイスの名前または説明、フィールドデバイスのタイプなどに基づいて、トピック246を会話コンテキストデータベース244に含まれる情報にマッピングし得る。このような例において、会話プロセッサ238は、フィールドデバイス(例えば、FV-105、FIC-205など)の名前または説明を含むトピック246を、トピック246に関連付けられた例示的な構成248a、例示的なスクリプト248bなどにマッピングし得る。例えば、会話プロセッサ238は、第1のフィールドデバイス116に関連付けられたFV-105のトピック246のFV-105の会話コンテキストデータベース244へのマッピングに応答して、図1A~図1Bの第1のフィールドデバイス116のMODE、OUT、およびSTATUSパラメータを取得し得る。
いくつかの例において、会話プロセッサ238は、フィールドデバイスのタイプ(例えば、バルブ、圧力トランスミッタ、プロセスタンクなど)を含むトピック246を、トピック246に関連付けられた構成、スクリプトなどにマッピングする。例えば、会話プロセッサ238は、トピック246に一致し、かつ/または関連付けられるフィールドデバイスのリストを取得し得る。このような例において、会話プロセッサ238は、プロセス制御システム102の識別されたコンテキストに基づいて、「バルブ」のトピック246(例えば、「どのバルブが動作していますか?」などのユーザ104による要求)を対話コンテキストデータベース244にマッピングすることにより、図1AのFV-101、FV-102、FV-103などを含むバルブのリストを取得し得る。
いくつかの例において、会話プロセッサ238は、トピック246に基づいて会話コンテキストデータベース244から1つ以上の例示的なアクション250を検索することによって、スクリプト、テンプレートなどを集約し、かつ/または生成する。例えば、会話プロセッサ238は、トピック246(例えば、名前、デバイスタイプなど)を会話コンテキストデータベース244にマッピングし得る。マッピングに基づいて、会話プロセッサ238は、会話コンテキストデータベース244から1つ以上のアクション250を検索し、検索されたアクション250に基づいてスクリプト、テンプレートなどを生成し得る。いくつかの例において、アクション250は基本的なアクションである。例えば、基本的なアクションは、バルブを開くための要求および、バルブを開くための対応するコマンドとしてのコマンドタイプのアクションに対する1対1の要求に対応し得る。他の例において、基本アクションは情報に対する要求(パラメータ値、安全性情報など)に対応し得る。例えば、基本的なアクションは、現在の安全アラートの要求および、1つ以上の安全アラートを含む対応する要求、または報告する安全アラートがないことの確認などの、1対1の情報要求に対応し得る。
いくつかの例において、アクション250は複合アクションである。例えば、複合アクションは、図1A~図1Bのプロセスタンク122を充填する要求などの2つ以上のアクションを含むワークフローに対応し得る。このような例において、複合アクションには、FI-201および/またはFI-202を介した流量測定値を取得し、FI-206、FI-207、および/またはFI-208を介したプロセスタンク122のレベルを計測しながら、図1A~図1BのFV-101および/またはFV-102を開くアクションを含む。例えば、会話プロセッサ238は、プロセスタンク122を充填する要求に関連付けられた複合アクションを取得し、関連アクション250を含む検索された複合アクションに基づいて複合アクションを実行するスクリプトを生成し得る。いくつかの例において、アクション250は、基本アクション、複合アクションなどを実行するスクリプトを含む。
図2の示された例において、会話コンテキストエンジン224は、会話プロセッサ238によって生成されたスクリプトを実行し、かつ/または容易にするアクションプロセッサ240を含む。いくつかの例において、アクションプロセッサ240は、図2のシステム222のうちの1つ以上と対話することにより、スクリプトまたはコマンド、命令などのセットを実行する。図2のシステム222は、例示的なプロセス制御システム252および例示的なプロセス制御ネットワークシステム254を含む。代替的に、システム222は、図2に示されているよりも少ないか、または多いシステムを含んでもよい。
図2のプロセス制御システム252は、例えば、構成要素の製造、化学原料の処理など、プロセス環境で行われる動作の側面を監視し、かつ/または制御するシステムである。例えば、図2のプロセス制御システム252は、図1A~図1Bのプロセス制御システム102に対応し得る。図2のプロセス制御システム252は、入力および出力を伴う少なくとも1つのコントローラ(例えば、第1のコントローラ228、第2のコントローラ230など)を含み、コントローラ(複数可)がさまざまな入力フィールドデバイスおよび/または機器から信号を取得し、さまざまな出力フィールドデバイスおよび/または機器を制御することを可能にし得る。例えば、図2のプロセス制御システム252は、少なくとも1つのEmerson(商標)DeltaV(商標)コントローラを含むEmerson(商標)DeltaV(商標)分散制御システム(DCS)に対応し得る。
いくつかの例において、アクションプロセッサ240は、図2のプロセス制御システム252にコマンドを生成し、かつ/または送信することにより、スクリプトの実行を容易にする。例えば、アクションプロセッサ240は、図1A~図1Bの第1のフィールドデバイス116を開くコマンドを生成し、制御ループ120を管理するコントローラにコマンドを送信して、第1のフィールドデバイス116を開き得る。他の例において、アクションプロセッサ240は、図2のプロセス制御システム252によって同時にまたは連続して実行されるコマンドのセットを生成し得る。例えば、アクションプロセッサ240は、FV-101、FV-102、およびFV-103を開き、図1A~図1Bに示すFP-101などの流体ポンプ(FP)を無効にしながら(例えば、命令されたフィールドデバイスの物理的制限、伝搬遅延、処理遅延などに従って同時に)、図1A~図1Bのプロセスタンク122を実質的に同時に充填するコマンドセットを生成し得る。
いくつかの例において、アクションプロセッサ240は、プロセス制御システム252からの情報を要求することにより、スクリプト実行を容易にする。例えば、アクションプロセッサ240は、1つ以上のパラメータ値を含む第1のフィールドデバイス116に関連付けられた情報を取得し得る。例えば、アクションプロセッサ240は、MODE、OUT、ステータスなど、第1のフィールドデバイス116、第2のフィールドデバイス118に関連付けられたパラメータについて制御ループ120に照会し得る(例えば、制御ループ120を制御するコントローラに照会し得る)。クエリに応答して、アクションプロセッサ240は、1つ以上のパラメータ値を取得し、1つ以上のパラメータ値を応答にパッケージ化するために会話プロセッサ238に送信し得る。
図2のプロセス制御ネットワークシステム254は、プロセス制御システム252またはVA100の少なくとも一方に通信可能に結合されたシステムである。いくつかの例において、プロセス制御ネットワークシステム254は、複数のプロセス制御システムを監視し、かつ/または制御するクラウドベースのネットワークである。例えば、プロセス制御ネットワークシステム254は、複数のプロセス制御システムに含まれる複数のコントローラからのハードウェア通信プロトコルをOPCプロトコルおよび/または任意の他の通信プロトコルに変換する1つ以上のオープンプラットフォームコミュニケーション(OPC)サーバに対応し得る。いくつかの例において、プロセス制御ネットワークシステム254は、クラウドベースのデータストレージ、分析、ビッグデータ分析、深層機械学習などを行って、マルチプロセス制御環境のスケールモデリング、デジタルプロセス制御の高効率運用および自動化、予後健全性監視、構成要素信頼性分析、プロセス制御管理、および/または複数のプロセス制御システム(例えば、図1A~図1Bのプロセス制御システム102)によって取得され、かつ/または処理される情報に基づく最適化を可能にし得る。
いくつかの例において、アクションプロセッサ240は、コマンドを生成し、かつ/またはプロセス制御ネットワークシステム254に送信することにより、スクリプトの実行を容易にする。例えば、アクションプロセッサ240は、プロセス制御ネットワークシステム254に含まれるか、かつ/またはそれにより監視される2つ以上のプロセス制御システムの緊急シャットダウンを行うコマンドを生成し得る。例えば、アクションプロセッサ240は、プロセス制御ネットワークシステム254が緊急シャットダウンを行うために実装できるアクションのセットを生成し、かつ送信し得る。
いくつかの例において、アクションプロセッサ240は、プロセス制御ネットワークシステム254からの情報を要求することにより、スクリプトの実行を容易にする。例えば、アクションプロセッサ240は、プロセス制御ネットワークシステム254に照会して、第1のフィールドデバイス116に関連付けられた予後健全性監視情報を判定し得る。例えば、ユーザ104は、第1のフィールドデバイス116に残っているライフサイクルの量を推定するようにVA100に要求し得る。このような例において、アクションプロセッサ240は、プロセス制御ネットワークシステム254への第1のフィールドデバイス116に関連付けられた、シリアル番号、製造者部品番号、デバイスタイプ、行われたサイクルの数(例えば、バルブの開閉動作の数)、最後の保守イベントからの時間分などを含む情報を送信し得る。情報の受信に応答して、プロセス制御ネットワークシステム254は、情報を、実質的に同様の情報(例えば、同じ製造者部品番号、100サイクルの許容範囲内のサイクル数、5日間以内などの時間分)を有する、以前に分析されたフィールドデバイスにマッピングし、以前に分析されたフィールドデバイスに関連付けられたデータに基づいて、故障率(例えば、平均故障率、故障率の範囲など)を判定し得る。少なくともマッピングおよび判定に応答して、プロセス制御ネットワークシステム254は、故障率および/または他の予後健全性監視情報をアクションプロセッサ240に送信し得、アクションプロセッサ240は、故障率および/または他の予後健全性監視情報を、サーバボットフレームワーク210への応答に含めるために会話プロセッサ238に送信し得る。例えば、アクションプロセッサ240は、予想される故障までの時間分、予想される故障までのサイクル数などを含む故障率を、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132に送信し得る。このような例において、アクションプロセッサ240は、故障率、差し迫った故障などに基づいて安全アラートを送信し得る。
図2の示された例において、会話コンテキストエンジン224は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などによって開始された会話の状態を格納し、かつ/または維持する会話状態ハンドラ242を含む。いくつかの例において、会話状態は要求に基づいて識別されたトピックに対応する。例えば、会話状態ハンドラ242は、FV-105などのトピックを会話状態に割り当ておよび/または他の方法で関連付け得る。このような例において、会話状態ハンドラ242は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などが、FV-105のトピックに関する情報の追加的な詳細またはレベルを要求し、トピックに関してより深くドリルするか、またはトピックを使用してFIC-205、FI-205などの関心のある別のトピック(例えば、関連トピック)に分岐するか、または遷移することを可能にし得る。例えば、会話状態ハンドラ242は、会話状態を参照して応答を生成し、かつ/またはパッケージ化することにより追加要求を処理するために会話プロセッサ238により使用される計算能力を削減し得る。例えば、会話プロセッサ238は、FV-105によって完了され得る追加のアクションをユーザ104に提供し、FV-105に通信可能に結合された追加の構成要素をユーザ104に通知するなど、ベースラインまたは開始点から作業せずに要求を処理する代わりに、会話状態について会話状態ハンドラ242に照会し得る。
いくつかの例において、会話状態は、アクションプロセッサ240によって実行されているスクリプトのステータス(例えば、完了ステータス)に対応する。例えば、アクションプロセッサ240は、図1A~図1Bの第1のフィールドデバイス116を実質的に同様のフィールドデバイス(例えば、同じモデル、製造者部品番号、動作定格、危険区域の分類などのフィールドデバイス)で置き換える方法に関するステップバイステップの命令のユーザ104への提供などのワークフローを実行し得る。このような例において、アクションプロセッサ240は、アクションプロセッサ240によって実行されている現在または瞬間のステップまたは動作、実行される後続のステップまたは動作、実行されるステップまたは動作の合計数などを会話状態ハンドラ242に送信し得る。アクションプロセッサ240からの情報の受信に応答して、会話状態ハンドラ242は、情報を会話プロセッサ238に提供して、ユーザ104への応答を生成し得る。例えば、会話状態ハンドラ242は、実行される次のステップまたは動作、完了ステータス(例えば、完了するべきステップの量、ステップを完了するための推定時間分など)などを会話プロセッサ238に送信し得、会話状態ハンドラ242から受信した情報に基づいて、会話プロセッサ238が応答を生成し、ユーザ104に通信し得る。
いくつかの例において、会話状態ハンドラ242は会話状態を修正するか、または更新する。例えば、会話状態ハンドラ242は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132、DCSコントローラアセンブリ226などによって要求された新しいトピックに基づいて会話状態を更新し得る。会話状態ハンドラ242は、ユーザ104がFV-106に関する情報を求めることに基づいて、会話状態をFV-105からFV-106に変更し得る。いくつかの例において、会話状態ハンドラ242は会話状態をキャンセルするか、または削除する。例えば、会話状態ハンドラ242は、VA100との会話をキャンセルするユーザ104のうちの少なくとも1人に基づいて、FV-105を会話状態から分離し、かつ/またはFV-105の会話状態をキャンセルし、FV-104などの別のフィールドデバイス、またはFV-105に対応する追加情報が不要であることをVA100に通知するユーザ104に関する情報を尋ね得る。
いくつかの例において、会話状態ハンドラ242は推測的に新しいトピックに分岐するか、または遷移する。例えば、会話状態ハンドラ242は、ユーザ104が第1のビーコン134aの第1のカバレッジエリアを離れ、第2のビーコン134bの第2のカバレッジエリアに入ったことを判定し得る。このような例において、会話状態ハンドラ242は、第2のカバレージエリアに含まれる1つ以上のフィールドデバイスに基づいてプロセス制御ネットワークシステム254に照会して関心のある次だと思われるトピックを判定するようアクションプロセッサ240に命令し得る。
いくつかの例において、会話状態ハンドラ242は、ユーザ104、ホストアプリケーション106などが、プロセスタンク122の充填に関連付けられたトピックに関連付けられたすべての可能な、または潜在的な応答を使い果たしたと判定すると、会話状態ハンドラ242は推測的に新しいトピックに分岐する。このような例において、会話状態ハンドラ242は、プロセス制御ネットワークシステム254に照会して、関心のある次だと思われるトピックを判定するようアクションプロセッサ240に命令し得る。例えば、プロセス制御ネットワークシステム254は、機械学習アルゴリズムを行い、かつ/または実行して、他のプロセス制御システム(例えば、図1A~図1Bのプロセス制御システム102の外部の1つ以上のプロセス制御システム)のプロセスタンクを充填した後に選択されたトピックを判定し得る。例えば、プロセス制御ネットワークシステム254は、プロセスタンクを空にすることに関連付けられたトピックが、プロセスタンクの充填後かなりの時間(例えば、時間の40%、時間の75%など)で選択されたことを判定し得る。このような例において、プロセス制御ネットワークシステム254は、アクションプロセッサ240を介して、推測的に識別されたトピックを会話状態ハンドラ242に送信し得る。このような例において、会話状態ハンドラ242は、新しいトピックを会話コンテキストデータベース244に含まれる1つ以上のアクション、1つ以上の構成、1つ以上のスクリプトなどにマッピングするよう会話プロセッサ238に命令し得る。
新しいトピックを推測的にフェッチすることにより、会話プロセッサ238は、ユーザ104が新しいトピックに関連付けられた要求を発行した場合、ユーザ104に応答を提供し得る。会話プロセッサ238は、会話プロセッサ238がアイドル状態であり、要求を処理していない可能性がある期間などの間、次のステップを予測し、かつ/またはユーザ104よりも先に進むことを試み得る。いくつかの例において、会話プロセッサ238は、推測的にフェッチされたトピックに関連付けられたアクションを実行するようユーザ104に促す。例えば、ユーザ104は、アクションを実行するのを忘れた可能性があり、推測的にフェッチされたトピックに関してVA100によって促されることによりアクションを実行するように思い出さされる。ユーザ104が推測的にフェッチされたトピックとは異なるトピックに関連付けられた要求を発行する場合、会話プロセッサ238は、ユーザ104が推測的にフェッチされたトピックを選択するかどうかを判定するように促すことができる。代替的に、ユーザ104が推測的にフェッチされたトピックの選択を拒否する場合、会話プロセッサ238は、推測的にフェッチされたトピックを要求されたトピックに置き換えるように会話状態ハンドラ242に指示し得る。
図2に示された例において、会話コンテキストエンジン224は、例示的なコンテナリポジトリ256などの外部コンピューティングシステム上でインスタンス化される会話をサポートし得る。コンテナリポジトリ256は、コード、ランタイム、システムツール、システムライブラリおよび設定など、ソフトウェアの実行に必要なすべてを含む、ソフトウェアの軽量でスタンドアロンの実行可能パッケージに対応するコンテナまたはコンテナイメージを含む。コンテナは、例えば開発環境とステージング環境との違いなど、ソフトウェアをソフトウェア環境から隔離する。
いくつかの例において、会話コンテキストエンジン224は、コンテナリポジトリ256に照会して、トピック(例えば、長期実行ワークフロー、複合トピックなど)にトピックを実行できる対応するコンテナがあるかどうかを判定する。トピックに対応するコンテナがあると判定することに応答して、会話コンテキストエンジン224は、対応するコンテナにトピックを実行するよう命令し得る。例えば、コンテナリポジトリ256内のコンテナは、ソフトウェア(例えば、機械可読命令)を実行して、トピックに関連付けられたアクションを実行し得る。コンテナは、コマンドをシステム222に、会話状態を会話コンテキストエンジン224に、会話コンテキストエンジン224を介するなどして通知をユーザ104に送信し得る。このような例において、会話コンテキストエンジン224は、外部システム(例えば、コンテナリポジトリ256内のコンテナ、1つ以上のシステム222など)に複合トピックを委任し、かつ/またはオフロードして、会話コンテキストエンジン224の処理利用、メモリリソース、ストレージリソースなどを削減し得る。
図1A~図1BのVA100を実装する例示的な方法が図2に示されているが、図2に示されている要素、プロセス、および/またはデバイスの1つ以上は、組み合わされ、分割され、再配置され、省略され、削除され、かつ/または他の方法で実装されてもよい。さらに、図2の例示的なサーバボットフレームワーク210、例示的なフレームワークコントローラ212、例示的なパーサ214、例示的なアナライザ216、例示的なジェネレータ218、例示的な実行部220、例示的な会話コンテキストエンジン224、例示的な会話プロセッサ238、例示的なアクションプロセッサ240、例示的な会話状態ハンドラ242、例示的な会話コンテキストデータベース244、例示的なトピック246、例示的な構成248a、例示的なスクリプト248b、例示的なアクション250、および/またはより一般的には、例示的なVA100は、ハードウェア、ソフトウェア、ファームウェア、および/またはハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせによって実装され得る。したがって、例えば、例示的なサーバボットフレームワーク210、例示的なフレームワークコントローラ212、例示的なパーサ214、例示的なアナライザ216、例示的なジェネレータ218、例示的な実行部220、例示的な会話コンテキストエンジン224、例示的な会話プロセッサ238、例示的なアクションプロセッサ240、例示的な会話状態ハンドラ242、例示的な会話コンテキストデータベース244、例示的なトピック246、例示的な構成248a、例示的なスクリプト248b、例示的なアクション250、および/またはより一般的には、例示的なVA100のいずれかは、1つ以上のアナログまたはデジタル回路(複数可)、論理回路、プログラマブルプロセッサ(複数可)、プログラマブルコントローラ(複数可)、グラフィックス処理ユニット(複数可)(GPU(複数可))、デジタルシグナルプロセッサ(複数可)(DSP(複数可))、特定用途向け集積回路(複数可)(ASIC(複数可))、プログラマブルロジックデバイス(複数可)(PLD(複数可))、および/またはフィールドプログラマブルロジックデバイス(複数可)(FPLD(複数可))によって実装され得る。本特許の装置またはシステムの特許請求の範囲のいずれかを読んで、純粋にソフトウェアおよび/またはファームウェアの実装態様、例示的なサーバボットフレームワーク210のうちの少なくとも1つ、例示的なフレームワークコントローラ212、例示的なパーサ214、例示的なアナライザ216、例示的なジェネレータ218、例示的な実行部220、例示的な会話コンテキストエンジン224、例示的な会話プロセッサ238、例示的なアクションプロセッサ240、例示的な会話状態ハンドラ242、例示的な会話コンテキストデータベース244、例示的なトピック246、例示的な構成248a、例示的なスクリプト248b、および/または例示的なアクション250は、本明細書において、非一時的なコンピュータ可読記憶デバイスまたは、メモリ、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、Blu-ray(登録商標)ディスク(ソフトウェアおよび/またはファームウェアを含む)などの記憶ディスクを含むように明示的に定義される。さらに、図1A~図1Bの例示的なVA100は、図2に示すものに加えて、またはその代わりに、1つ以上の要素、プロセス、および/またはデバイスを含んでもよく、かつ/または、説明されている要素、プロセス、およびデバイスのいずれかまたはすべてのうち、2つ以上を含んでもよい。本明細書で使用される「通信中」という句は、その変形例を含めて、直接通信および/または1つ以上の中間構成要素を介した間接通信を包含し、直接の物理(例えば有線)通信および/または常時通信を必要とせず、むしろさらに、定期的な間隔、スケジュールされた間隔、非周期的な間隔、および/または1回限りのイベントでの選択的な通信を含む。
図3は、図1A~図1Bのプロセス制御システム102のプロセスタンク122に対応する例示的なプロファイル300の例示的な表を示す。プロファイル300は、図1A~図1Bのデータベース124、図2の会話コンテキストデータベース244などにおいてロードされるプロセス制御システム102の構成の一部に対応し得る。例えば、プロファイル300は、トピックに対応し得る。このような例において、プロファイル300は、プロセス制御システム102のコンテキストに基づいて、図1A~図1Bのプロセスタンク122のトピックに対応する。いくつかの例において、図1A~図2のVA100は、図1A~図1Bのプロセス制御システム102に関連付けられた構成を会話コンテキストデータベース244にロードすることにより初期化される。構成は、プロセス制御システム102の1つ以上の構成要素に関連付けられた情報を含んでもよい。例えば、構成は、第1のフィールドデバイス116、第2のフィールドデバイス118などに関連付けられた1つ以上のパラメータを含み得る。構成は、制御ループ120に含まれるフィールドデバイスに関する情報を含み得る。
いくつかの例において、構成には、フィールドデバイス、制御ループなどの間の関連付け、および/またはそれらの組み合わせが含まれる。例えば、構成は、FI-207、FIC-207、およびFV-106の物理的な結合(例、配線図、ケーブルスケジュール、終端回路図など)、通信可能な結合(通信プロトコルアドレス指定スキーム、インターネットプロトコル(IP)アドレステーブルなど)などの方法の説明を含み得る図1A~図1BのFI-207、FIC-207、およびFV-106間の関連付けまたは関係を含み得る。いくつかの例において、構成は、図3のプロファイル300を含む複数のプロファイル、複数のプロファイルのうちの1つとの関連付け(例えば、1つのプロファイルの別のプロファイルへの依存性)などを含む。
いくつかの例において、会話プロセッサ238はプロファイル300を生成する。例えば、会話プロセッサ238は、ユーザ104、ホストアプリケーション106などからの図2の要求201a~bに含まれるトピックを識別し得、トピックは第1のフィールドデバイス116、プロセスタンク122である。このような例において、会話プロセッサ238は、第1のフィールドデバイス116のトピックを、ルックアップテーブルまたは会話コンテキストデータベース244に含まれる他のデータ構造にマッピングし得る。言い換えれば、会話プロセッサ238は、会話コンテキストデータベース244に含まれるルックアップテーブルまたは任意の他のデータ構造への第1のフィールドデバイス116のマッピングし、かつ/またはマッピングを実行し得る。いくつかの例において、ルックアップテーブルは構成に基づいている。例えば、ルックアップテーブルは、第1のフィールドデバイス116と、第1のフィールドデバイス116に関連付けられた1つ以上のパラメータに対応する1つ以上のパラメータ、実行され、かつ/または実装され得る1つ以上のアクションとの関連付けを含み得る。会話プロセッサ238は、会話コンテキストデータベース244から1つ以上のパラメータ、1つ以上のアクションなどを検索し、1つ以上のパラメータ、および1つ以上のアクションなどのうちの少なくとも1つに基づいて、プロファイル(例えば、図3のプロファイル300)を生成し得る。会話プロセッサ238は、将来の処理のためにプロファイル300を会話コンテキストデータベース244に格納し得る。
図3に示された例において、プロファイル300は、例示的なレベル302、例示的なカテゴリ304、例示的なパラメータ306、例示的なタグ308、および例示的な説明310などのフィールドを含む。図3のプロファイル300は、プロセスタンク122に関連付けられた情報をVA100によるアクセスの階層または順序に編成するレベル302を含む。例えば、第1のレベル(L1)は、要求に応答して図1A~図2のユーザ104、ホストアプリケーション106などに提供される情報の第1の層に対応し得る。例えば、ユーザ104は、図2のモバイルアプリケーション202を介して「プロセスタンクを見せてください」などの要求を発行し得る。このような例において、VA100は、モバイルアプリケーションを介してL1に含まれる情報をユーザ104に表示し(例えば、モバイルアプリケーション202を動作させるモバイルデバイスのディスプレイに情報を表示し)得る。他の例において、VA100は、L1に含まれる情報(例えば、ホストアプリケーション106に結合されたスピーカを介した口頭の声明)を、ホストアプリケーション106を介してユーザ104に通信し得る。「プロセスタンクについての追加情報を表示してください」または「プロセスタンクについて詳しく教えてください」などの追加情報を要求するユーザ104に応答して、VA100は、第2のレベル(L2)に含まれる情報を、可聴通信、ホストアプリケーション106などを介して、ユーザ104に送信し、通信するなどし得る。代替的に、プロファイル300は、図3に示されるよりも少ないまたは多いレベル302を含み得る。
図3に示された例において、プロファイル300は、要求されている情報の頻度またはプロセスタンク122の構成要素の少なくとも1つに基づいてプロセスタンク122に関連付けられた情報を整理するカテゴリ304を含む。例えば、カテゴリ304は、プロファイル300に含まれる情報が要求される頻度に対応し得る。例えば、カテゴリ304は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132、DSCコントローラアセンブリ226などによって要求されている情報の頻度に対応する、共通、標準、非共通、まれなどの値を有し得る。他の例において、カテゴリ304は、プロセスタンク122のサージドラムなどのプロセスタンク122の構成要素に対応し得る。代替的に、プロファイル300は、図3に示されるよりも少ないか、または多いカテゴリ304を含み得る。
図3の示された例において、プロファイル300は、図1A~図1Bのプロセスタンク122の対応するレベル302またはカテゴリ304のうちの少なくとも1つに関連付けられた値を表すパラメータ306を含む。図3のプロファイル300では、パラメータ306は、容器レベル、容器圧力、流入/流出、温度、および容器温度を含む。例えば、VA100は、プロセスタンク122に関する初期照会の受信に応答して、容器レベルパラメータに関連付けられた情報をユーザ104に返すことができる。例えば、容器レベルパラメータは、図1A~図1BのFI-206、FI-208などによって測定された値に対応し得る。
図3に示された例において、プロファイル300は、少なくともパラメータ306に関連付けられた指定子(例えば、プロセス制御指定子)を表すタグ308を含む。いくつかの例において、タグ308はソフトウェア指定子である。例えば、タグ308は、プロセスタンク122に関連付けられた容器レベルパラメータに割り当てられた通信プロトコル、プロセス制御スキーマなどのアドレスおよび/またはラベルに対応し得る。いくつかの例において、タグ308は、物理的指定子である(例えば、プロセスタンク122に結合された物理的タグ、タグを含むか描写するプロセスタンク122に貼付されたラベルなど)。例えば、容器レベルパラメータにはL XX27のタグが割り当てられる。このような例において、VA100は、プロセスタンク122に関連付けられた情報を要求するユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などに応答して、少なくとも容器レベルパラメータに関連付けられたタグ308を返すことができる。
図3に示された例において、プロファイル300は、要求に応答して提供され得る追加情報を表す説明310を含む。例えば、説明310に含まれる情報は、ユーザ104が少なくともパラメータ306に関連付けられた追加情報を要求することに応答して、ユーザ104への応答にパッケージ化され得る。例えば、ユーザ104はVA100に「プロセスタンクのレベルは?」と尋ね得る。要求に応えて、VA100は「L XX27のタグを持つ容器レベルは80%満杯です。」と口頭で応答し得る。ユーザ104は、「レベルに関する詳細情報を提供してください」というフォローアップ要求を発行し得る。VA100は、「容器レベルはノックアウトポットの最も重要なパラメータです。」と応答し得る。追加的または代替的に、説明310に含まれる情報、および/またはより一般的には、図3のプロファイル300は、ホストアプリケーション106上に表示され得る。他の例において、ユーザ104は「サージドラムについて教えてください。」という要求を発行し得る。要求に応答して、VA100は流/入/流出パラメータおよび/または対応するタグの値を口頭で応答し得る。VA100は、「要求された場合」の対応する説明に基づいて温度パラメータおよび/または温度タグを返さない場合がある。例えば、VA100は、ユーザ104によって要求されない限り、サージドラムの温度に関連付けられた情報を返さない場合がある。
図4は、図3の例示的なプロファイル300に対応する第1の例示的な視覚化したもの400の概略図である。図4の第1の視覚化したもの400は、図3のプロファイル300のL1に関連付けられた第1のレベルの視覚化したものに対応する。代替的に、第1の視覚化したもの400は異なるレベルに対応してもよい。第1の視覚化したもの400は、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132などからの図2の要求201a~bに応答して、図1A~図2のホストアプリケーション106を介して表示され得る。第1の視覚化したもの400は、図1A~図1Bのプロセスタンク122の概略図を含む。第1の視覚化したもの400は、図3のプロファイル300のL1に関連付けられたタグ308を含む。例えば、第1の視覚化したもの400は、容器レベルパラメータ(L XX27)、容器圧力パラメータ(P XX27)、および流入/流出パラメータ(F XX27)に関連付けられたタグ308を含む。いくつかの例において、追加情報に対する要求に基づいて、VA100によって第1の視覚化したもの400を更新し得る。例えば、温度パラメータ(T XX27)に関連付けられたタグ308は、プロセスタンク122の追加情報に対する要求に応答して、第1の視覚化したもの400上に表示し得る。
図5は、図3の例示的なプロファイル300に対応する第2の例示的な視覚化したもの500の概略図である。図5の第2の視覚化したもの500は、図3のプロファイル300のL2に関連付けられた第2のレベルの視覚化したものに対応する。図5では、第2の視覚化したもの500は、プロファイル300の第1および第2のレベルに関連付けられた情報を含む。代替的に、第2の視覚化したもの500は、プロファイル300の第2のレベルのみに関連付けられた情報を描写してもよい。
第2の視覚化したもの500は、ユーザ104、ホストアプリケーション106などからの要求に応答して、図1A~図2のホストアプリケーション106を介して表示され得る。第2の視覚化したもの500は、図1A~図1Bのプロセスタンク122の図を含む。第2の視覚化したもの500は、図3のプロファイル300の第1のレベルおよび第2のレベルに関連付けられたタグ308を含む。例えば、第2の視覚化したもの500は、容器レベルパラメータ(L XX27)、容器圧力パラメータ(P XX27)、流入/流出パラメータ(F XX27)、温度パラメータ(T XX27)、および容器温度パラメータ(T XX27)に関連付けられたタグ308を含む。例えば、ユーザ104は、プロセスタンク122に関連付けられた情報をVA100に要求し得る。VA100は、図4の第1の視覚化したもの400に示されるタグ308を含む第1の応答を生成し得る。例えば、ホストアプリケーション106は、第1の応答に基づいて、図4に示されるタグ308を含む第1の視覚化したもの400を表示し得る。ユーザ104は、プロセスタンク122に対応する追加情報をVA100に要求し得る。要求に応答して、VA100は、図5の第2の視覚化したもの500に示されたタグ308を含む第2の応答を生成し得る。例えば、ホストアプリケーション106は、第2の応答に基づいて、図5に示されるタグ308を含む第2の視覚化したもの500を表示し得る。例えば、ホストアプリケーション106は、第1の視覚化したもの400を第2の視覚化したもの500で置き換え得る。代替的に、ホストアプリケーション106は、図5の追加タグ308を第1の視覚化したもの400に追加し得る。
図1A~図2のVA100を実装するための例示的なハードウェアロジック、機械可読命令、ハードウェア実装状態機械、および/またはそれらの任意の組み合わせを表すフローチャートを図6~図7に示す。機械可読命令は、図8に関連して以下で説明される例示的なプロセッサプラットフォーム800に示されるプロセッサ812などのコンピュータプロセッサによる実行のための実行可能プログラムまたは実行可能プログラムの一部であってもよい。プログラムは、CD-ROM、フロッピーディスク、ハードドライブ、DVD、Blu-ray(登録商標)ディスク、またはプロセッサ812に関連付けられたメモリなどの非一時的なコンピュータ可読記憶媒体に格納されたソフトウェアで具現化されてもよいが、プログラム全体および/またはその一部は、代替的に、プロセッサ812以外のデバイスによって実行され、かつ/またはファームウェアまたは専用ハードウェアで具現化され得る。さらに、図6~図7に示されるフローチャートを参照して例示的なプログラムが説明されるが、例示的なVA100を実装する多くの他の方法が代替的に使用されてもよい。例えば、ブロックの実行順序が変更されてもよく、かつ/または説明したブロックのいくつかが変更されるか、削除されるか、または組み合わされ得る。追加的または代替的に、ブロックのいずれかまたはすべては、ソフトウェアまたはファームウェアを実行せずに対応する動作を実行するように構成されている、1つ以上のハードウェア回路(例えば、個別および/または統合アナログおよび/またはデジタル回路、FPGA、ASIC、コンパレータ、演算増幅器(オペアンプ)、論理回路など)によって実装されてもよい。
上述のように、図6~図7の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み取り専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、および/または、情報が任意の期間(例えば、一時的なバッファリング、および/または情報のキャッシュのために、長時間、永続的に、短時間インスタンスで)保存される任意の他の記憶デバイスまたは記憶ディスクなどの、非一時的なコンピュータおよび/または機械可読媒体に格納された実行可能命令(例えば、コンピュータおよび/または機械可読命令)を使用して実装されてもよい。本明細書で使用される用語「非一時的なコンピュータ可読媒体」は、任意のタイプのコンピュータ可読記憶デバイスおよび/または記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外すると明確に定義される。
「含む」および「備える」(およびそのすべての形式および時制)は、本明細書では開放形式の用語であるように使用される。したがって、特許請求項がプリアンブルとして、またはあらゆる種類の特許請求項記述内で「含む」または「備える」のいずれかの形式を使用する場合(例えば、備える、含む、備える、含む、有するなど)、追加の要素、用語などが、対応する特許請求項または記述の範囲から外れることなく存在する場合があることが理解されるべきである。本明細書で使用されるように、「少なくとも」の句が、例えば特許請求項のプリアンブルで移行用語として使用される場合、「備える」および「含む」という用語が開放形式であるのと同じ様式で開放形式である。例えば、A、B、および/またはCなどの形で使用される場合の「および/または」という用語は、(1)Aのみ、(2)Bのみ、(3)Cのみ、(4)AとB、(5)AとC、(6)BとC、および(7)AとBおよびCとの組み合わせなどのA、B、Cの任意の組み合わせまたはサブセットを指す。構造、構成要素、アイテム、オブジェクト、および/または物事を説明する文脈において本明細書で使用されるように、「AおよびBの少なくとも1つ」という句は、(1)少なくとも1つのA、(2)少なくとも1つのB、ならびに(3)少なくとも1つのAおよび少なくとも1つのBのうちのいずれかを含む実装態様指すことが意図される。同様に、構造、構成要素、アイテム、オブジェクト、および/または物事を説明する文脈において本明細書で使用されるように、「AまたはBのうちの少なくとも1つ」という句は、(1)少なくとも1つのA、(2)少なくとも1つのB、ならびに(3)少なくとも1つのAおよび少なくとも1つのBのうちのいずれかを含む実装態様を指すことが意図される。プロセス、命令、アクション、アクティビティ、および/またはステップの実施または実行を説明する文脈において本明細書で使用されるように、「AおよびBの少なくとも1つ」という句は、(1)少なくとも1つのA、(2)少なくとも1つのB、ならびに(3)少なくとも1つのAおよび少なくとも1つのBのうちのいずれかを含む実装態様を指すことが意図される。同様に、プロセス、命令、アクション、アクティビティ、および/またはステップの実施または実行を説明する文脈において本明細書で使用されるように、「AまたはBの少なくとも1つ」という句は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAと少なくとも1つのBのうちのいずれかを含む実装態様を指すことが意図される。
図6は、要求に基づいてスクリプトを生成し、かつ実行するために図1A~図2のVA100を実装するために実行されてもよい例示的な機械可読命令600を表すフローチャートである。機械可読命令600は、ブロック602で始まり、VA100は、要求が受信されたかどうかを判定する。例えば、図2のフレームワークコントローラ212は、図1Aの第1のフィールドデバイス116を開くために、ユーザ104がウェアラブルデバイス128、130、132のうちの1つ、DCSコントローラアセンブリ226などを介して図2の第1の要求201aをVA100に発行したことを判定し得る。他の例において、フレームワークコントローラ212は、ホストアプリケーション106が第1のフィールドデバイス116を開くためにVA100への第2の要求201bを生成したと判定し得る。
ブロック602において、要求が受信されていないとVA100が判定する場合、VA100は要求を待ち続ける。ブロック602において、要求を受信されたとVA100が判定する場合、ブロック604において、VA100は、要求を解析する。例えば、図2のパーサ214は、要求201a~bを1つ以上のトークンに解析し得る。ブロック604における要求の解析に応答して、VA100は、ブロック606において要求を検証する。例えば、図2のアナライザ216は、1つ以上のトークンを有効なトークンと比較し得る。
ブロック608において、VA100は、要求が有効かどうかを判定する。例えば、アナライザ216は、分析されたトークンと有効なトークンとの比較に基づいて、1つ以上のトークンが無効である、トークンの順序が有効な順序ではないなどを判定することにより、要求201a~bが無効であることを判定し得る。他の例において、アナライザ216は、有効なトークンとして識別されている分析されたトークンの1つ以上に基づいて、要求201a~bが有効であることを判定し得る。言い換えれば、アナライザ216は、検証されたトークンの識別に基づいて、要求201a~bが有効であることを判定し得る。
ブロック608において、要求が有効でないとVA100が判定する場合、制御はブロック610に進み、明確化要求を生成および送信する。例えば、図2のジェネレータ218は、明確化要求を生成し、明確化要求をユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132の1つなどに送信し得る。このような例において、明確化要求は、要求を繰り返す、要求を言い換える、別の要求を提供するなどのプロンプトを含み得る。明確化要求の生成と送信に応答して、制御は、ブロック602において別の要求を受信するかどうかを判定するために戻る。
ブロック608において、要求が有効であるとVA100が判定する場合、ブロック612において、VA100は、会話状態が利用可能かどうかを判定する。例えば、会話プロセッサ238は、図2の会話状態ハンドラ242に照会して、会話がインスタンス化され、かつ/または初期化されているかどうかを判定し得る。このような例において、会話プロセッサ238は、会話状態がインスタンス化されておらず、対応する会話状態が会話状態ハンドラ242によって保存され、かつ/または管理されていないことに基づいて、会話状態が利用可能でないと判定し得る。他の例において、会話プロセッサ238は、会話がインスタンス化されており、対応する会話状態が会話状態ハンドラ242によって保存され、かつ/または管理されていることに基づいて会話状態が利用可能であると判定し得る。例えば、会話状態ハンドラ242は、トピック、スクリプトの完了ステータス、アクションプロセッサ240によって実行されているアクションなどの会話状態を会話プロセッサ238に送信し得る。
ブロック612において、会話状態が利用可能であるとVA100が判定する場合、制御はブロック616に進み、トピックを識別する。ブロック612において、会話状態が利用可能でないとVA100が判定する場合、ブロック614において、VA100は会話状態を確立する。例えば、会話プロセッサ238は、会話を初期化し、対応する会話状態を会話状態ハンドラ242に送信し得る。会話状態の確立に応答して、VA100はブロック616において、トピックを識別する。例えば、会話プロセッサ238は、図2のサーバボットフレームワーク210から取得された処理された要求に基づいて、第1のフィールドデバイス116のトピックを識別し得る。
ブロック618において、VA100は、スクリプトを生成する。例えば、会話プロセッサ238は、図2のトピック246を、図2の会話コンテキストデータベース244において、構成248aのうちの1つ以上、スクリプト248bのうちの1つ以上、アクション250のうちの1つ以上など、および/またはそれらの組み合わせにマッピングし得る。このような例において、会話プロセッサ238は、マッピングに基づいてスクリプトをパッケージ化し得る。例えば、会話プロセッサ238は、1つ以上の構成248a、1つ以上のスクリプト248b、1つ以上のアクション250など、および/またはトピック246が会話コンテキストデータベース244においてその中にマッピングされるそれらの組み合わせを含むスクリプトを生成し得る。
スクリプトの生成に応答して、VA100は、ブロック620において、スクリプトを実行する。例えば、図2のアクションプロセッサ240は、図2のシステム222の1つにコマンドを送信して、会話プロセッサ238によって生成されたスクリプトの実行を容易にし得る。例えば、アクションプロセッサ240は、図1A~図1Bのプロセス制御システム102へのコマンドを生成して、第1のフィールドデバイス116を開くことができる。
ブロック622において、VA100は、会話状態を更新する。例えば、会話状態ハンドラ242は、第1のフィールドデバイス116を開くことに応答して完了するように会話状態を更新し得る。他の例において、会話状態ハンドラ242は、会話状態を、第1のフィールドデバイス116を開くことから、開いている第1のフィールドデバイス116に、第1のフィールドデバイスを95%開くなどに更新し得る。
会話状態の更新に応答して、VA100は、ブロック624において応答を生成し、要求者に送信する。例えば、会話プロセッサ238は、第1のフィールドデバイス116が開かれていること、および/または第1のフィールドデバイス116のバルブ位置を示しながら、応答をパッケージ化し、ユーザ104、ホストアプリケーション106、ウェアラブルデバイス128、130、132のうちの1つ、図2のDCSコントローラアセンブリ226などに応答を送信し得る。
ブロック626において、VA100は、スクリプトが完了しているかどうかを判定する。例えば、会話状態ハンドラ242は、アクションプロセッサ240がスクリプトに含まれるすべてのアクションを完了することに基づいて、ユーザ104、ホストアプリケーション106などからの要求に関連付けられたスクリプトが完了していることを判定し得る。他の例において、会話状態ハンドラ242は、スクリプトが完了していることの確認を発行せずに、アクションプロセッサ240および/またはユーザ104、ホストアプリケーション106などによって完了されるべき1つ以上のアクションに基づいてスクリプトが完了していないことを判定し得る。
ブロック626において、スクリプトが完了しているとVA100が判定する場合、制御はブロック630に進み、要求の監視を継続するかどうかを判定する。ブロック626において、スクリプトが完了していないとVA100が判定する場合、ブロック628において、VA100は要求者が会話を終了したかどうかを判定する。例えば、会話プロセッサ238は、ユーザ104、ホストアプリケーション106などが、会話を終了するためにVA100へのコマンドを生成したかどうかを判定し得る。
ブロック630において、VA100は、要求の監視を継続するかどうかを判定する。ブロック630において、VA100が要求の監視を継続すると判定する場合、制御は戻り、別の要求を待機し、ブロック602において別の要求が受信されるかどうかを判定する。ブロック630において、VA100が要求の監視を継続しないと判定する場合、図6の機械可読命令600は終了する。
図7は、要求に基づいて視覚化したものを生成し、かつ表示するために図1A~図2のVA100を実装するために実行されてもよい例示的な機械可読命令700を表すフローチャートである。機械可読命令700は、ブロック702で始まり、そこでは、要求が受信されたかどうかをVA100が判定する。例えば、図2のフレームワークコントローラ212は、ユーザ104がホストアプリケーション106を介してVA100に「プロセスタンクを見せてください」という口頭の要求を発行したことを判定し得る。他の例において、フレームワークコントローラ212は、ホストアプリケーション106が図1A~図1Bのプロセスタンク122に関する情報を検索するためにVA100への要求を生成したことを判定し得る。
ブロック702において、要求が受信されていないとVA100が判定する場合、VA100は要求を待ち続ける。ブロック702において、VA100が要求を受信したと判定する場合、ブロック704において、VA100は、要求を解析する。例えば、図2のパーサ214は、図2の要求201a~bを1つ以上のトークンに解析し得る。ブロック704における要求の解析に応答して、VA100はブロック706において要求を検証する。例えば、図2のアナライザ216は、1つ以上のトークンを有効なトークンと比較し得る。
ブロック708において、VA100は、要求が有効かどうかを判定する。例えば、アナライザ216は、分析されたトークンと有効なトークンとの比較に基づいて、1つ以上のトークンが無効である、トークンの順序が有効な順序ではないなどを判定することにより、要求が無効であることを判定し得る。他の例において、アナライザ216は、有効なトークンとして識別されている分析されたトークンのうちの1つ以上に基づいて、要求201a~bが有効であることを判定し得る。
ブロック708において、要求が有効でないとVA100が判定する場合、制御はブロック710に進み、明確化要求を生成し、かつ送信する。例えば、図2のジェネレータ218は、明確化要求を生成し、その明確化要求をユーザ104、ホストアプリケーション106などに送信し得る。このような例において、明確化要求は、要求201a~bを繰り返し、要求201a~bを言い換え、要求201a~bの他方を提供するなどのプロンプトを含み得る。明確化要求の生成および送信に応答して、制御は戻り、ブロック702において別の要求を受信するかどうかを判定する。
ブロック708において、要求が有効であるとVA100が判定する場合、ブロック712において、VA100は、会話状態が利用可能かどうか判定する。例えば、会話プロセッサ238は、図2の会話状態ハンドラ242に照会して、会話がインスタンス化され、かつ/または初期化されているかどうかを判定し得る。このような例において、会話プロセッサ238は、会話がインスタンス化されており、対応する会話状態が会話状態ハンドラ242によって保存され、かつ/または管理されていることに基づいて会話状態が利用可能でないと判定し得る。他の例において、会話プロセッサ238は、会話がインスタンス化されており、対応する会話状態が会話状態ハンドラ242によって保存され、かつ/または管理されていることに基づいて会話状態が利用可能であると判定し得る。例えば、会話状態ハンドラ242は、トピック、スクリプトの完了ステータス、アクションプロセッサ240によって実行されているアクションなどの会話状態を会話プロセッサ238に送信し得る。
ブロック712において、会話状態が利用可能であるとVA100が判定する場合、制御はブロック716に進み、トピックを識別する。ブロック712において、VA100が、会話状態が利用可能でないと判定する場合、ブロック714において、VA100は、会話状態を確立する。例えば、会話プロセッサ238は、会話を初期化し、対応する会話状態を会話状態ハンドラ242に送信し得る。会話状態の確立に応答して、VA100はブロック716においてトピックを識別する。例えば、会話プロセッサ238は、図2のサーバボットフレームワーク210から取得された処理された要求に基づいてプロセスタンク122のトピックを識別し得る。
トピックの識別に応答して、VA100は、ブロック718において、トピックをプロファイルにマッピングする。例えば、会話プロセッサ238は、プロセスタンク122のトピックを図2の会話コンテキストデータベース244内の図3のプロファイル300にマッピングし得る。このような例において、会話プロセッサ238は、マッピングに基づいて、ユーザ104、ホストアプリケーション106などからの要求に含まれる識別されたトピックがプロセスタンク122に対応することを判定し得る。会話プロセッサ238は、図1A~図1Bのプロセス制御システム102のどのフィールドデバイスがプロセスタンク122に結合されているか、プロセス制御システム102のどのフィールドデバイスがプロセスタンク122などに関連付けられた測定を監視し、または行うかを含むマッピングに基づいてプロセスタンク122に関連付けられた情報を判定し得る。追加的または代替的に、会話プロセッサ238は、パラメータ306、タグ308、説明310などを含むプロファイル300に含まれる情報を判定し得る。
ブロック720において、VA100は、プロファイルのレベルに対応する応答を生成する。例えば、会話プロセッサ238は、プロファイル300のL1に関連付けられた情報を含む応答をパッケージ化し得る。このような例において、応答は、図3の共通カテゴリまたはサージドラムカテゴリのうちの少なくとも1つに対応する情報を含み得る。例えば、応答は、容器レベルパラメータ、容器圧力パラメータ、対応するタグ308、対応する説明310などのうちの少なくとも1つを含み得る。
ブロック722において、VA100は、ホストアプリケーションに応答を送信する。例えば、会話プロセッサ238は、ホストアプリケーションボットフレームワーク208またはサーバボットフレームワーク210のうちの少なくとも1つを介してホストアプリケーション106に応答を送信し得る。このような例において、ホストアプリケーション106は、図4の第1の視覚化したもの400を生成し、図1Bの第3のウェアラブルデバイス132、モバイルアプリケーション202、ブラウザアプリケーション204、デスクトップアプリケーション206などを介して、グラフィカルユーザインターフェース(GUI)、ヒューマンマシンインターフェース(HMI)などに第1の視覚化したもの400を表示し得る。例えば、ホストアプリケーション106は、レンズ、モバイルデバイス、デスクトップコンピュータ、ラップトップコンピュータのディスプレイ、またはコンピューティングデバイスに通信可能に結合された任意の他のディスプレイ上に第1の視覚化したもの400を表示し得る。他の例において、会話プロセッサ238は、図2のDCSコントローラアセンブリ226に通信可能に結合されたHMI上で動作し、かつ/または実行するホストアプリケーション106に応答を送信し得る。
ブロック724において、VA100は、会話状態を更新する。例えば、会話プロセッサ238は、応答に基づいて会話状態を更新するよう会話状態ハンドラ242に命令し得る。例えば、会話状態ハンドラ242は、L1に関連付けられた情報がユーザ104、ホストアプリケーション106などの要求者に通信されたことを示す会話状態にL1を割り当て得る。他の例において、会話状態ハンドラ242は、プロセスタンク122および/またはL1のトピックおよび/またはユーザ104、ホストアプリケーション106などに送信された情報を会話状態に割り当て得る。
ブロック726において、VA100は、応答に基づいてホストアプリケーション上に視覚化したものを表示する。例えば、サーバボットフレームワーク210は、ホストアプリケーション106に応答を送信して、ホストアプリケーション106に、ホストアプリケーション106を実行するデバイス上のGUI、HMIなどに第1の視覚化したもの400を表示するように指示し得る。
視覚化したものの表示に応答して、VA100は、ブロック728において表示可能なレベルがあるかどうかを判定する。例えば、会話プロセッサ238は、L2がホストアプリケーション106に通信されていないと判定し得る。他の例において、会話プロセッサ238は、ユーザ104、ホストアプリケーション106などが容器レベルパラメータのみを要求したため、容器圧力パラメータなどのL1に関連付けられたパラメータが通信されていないと判定し得る。さらに他の例において、会話プロセッサ238は、カテゴリ304のうちの異なるものに対する要求に基づいて、カテゴリ304のうちの1つが通信されていないと判定し得る。このような例において、会話プロセッサ238は、プロセスタンク122に関連付けられた追加情報に対する要求に応答して、ユーザ104、ホストアプリケーション106などにまだ要求、提供などされていない情報を提供することを判定し得る。
ブロック728において、表示可能なレベルが存在しないとVA100が判定する場合、制御はブロック734に進み、要求の監視を継続するかどうかを判定する。ブロック728において、表示可能なレベルがあるとVA100が判定する場合、ブロック730において、VA100は、トピックに関するさらなる情報に対する要求が受信されたかどうかを判定する。例えば、フレームワークコントローラ212は、要求がユーザ104、ホストアプリケーション106などから受信されたかどうかを判定し得る。要求が受信されたとの判定に応答して、会話プロセッサ238は、要求がプロセスタンク122のトピックに関連付けられているかを判定し得る。要求がプロセスタンク122に関するさらなる情報のクエリに対応すると会話プロセッサ238が判定する場合、会話プロセッサ238は、会話状態ハンドラ242から会話状態を取得し、プロファイル300に含まれる情報を判定して、要求への応答にパッケージ化し得る。例えば、会話プロセッサ238は、会話状態ハンドラ242からL1の会話状態を取得し、応答内のL2に関連付けられた情報をパッケージ化することを判定し、その応答をユーザ104、ホストアプリケーション106などに送信し得る。
ブロック730において、受信された要求がトピックに関するさらなる情報に対するとVA100が判定する場合、制御はブロック720に戻り、プロファイルのレベルに対応する応答を生成する。例えば、会話プロセッサ238は、容器温度パラメータ、タグT XX27など、および/またはそれらの組み合わせなどの、応答でプロファイル300のL2に関連付けられた情報をパッケージ化し得る。他の例において、会話プロセッサ238は、図3に示される、サージカテゴリに関連付けられた情報、共通カテゴリに関連付けられた別のパラメータ、タグ、または説明などをパッケージ化し得る。応答の生成に応答して、VA100は、ブロック722における応答のホストアプリケーションへの送信、ブロック724における会話状態の更新(例えば、会話状態の、L2、L1および/またはL2に関連付けられた情報への更新等)へと進み、かつ、視覚化したものを表示する第3のウェアラブルデバイス132またはホストアプリケーション106のうちの少なくとも1つに、応答に基づいてホストアプリケーション106上に視覚化したものを表示するよう指示し得る。例えば、VA100は、ホストアプリケーション106に、図5の第2の視覚化したもの500をモバイルデバイス、デスクトップコンピュータなどに表示するよう指示し、ホストアプリケーション106を実行し得る。
ブロック730において、受信された要求がトピックに関するさらなる情報ではないとVA100が判定する場合、ブロック732において、VA100は、要求タイムアウトが発生したかどうかを判定する。例えば、フレームワークコントローラ212は、ユーザ104、ホストアプリケーション106などからの要求が閾値時間内(例えば、1分、10分、60分など)に受信されなかったことを判定し得る。他の例において、会話プロセッサ238は、要求が受信されたが、プロセスタンク122のトピックに向けられていないことを判定し得る。このような例において、会話プロセッサ238は、会話状態ハンドラ242に、会話状態を更新し、会話状態を新しいトピックで置き換えるか、またはプロセスタンク122のトピックを会話状態から分離するよう命令し得る。他の例において、会話プロセッサ238は、プロセスタンク122に関連付けられた会話状態と同時に存在するように、別の会話状態をインスタンス化するよう会話状態ハンドラ242に命令し得る。
ブロック732において、要求のタイムアウトが発生していない場合、制御はブロック730に戻り、別の要求を待つ。ブロック732において要求タイムアウトが発生した場合、ブロック734において、VA100は要求の監視を継続するかどうかを判定する。例えば、フレームワークコントローラ212は、VA100をシャットダウンすること、低電力モードまたは休止モードで動作するようにVA100を移行することなどを判定し得る。
ブロック734において、VA100が要求の監視を継続すると判定する場合、制御はブロック702に戻り、別の要求を待つ。ブロック734において、VA100が要求の監視を継続しないと判定する場合、図7の機械可読命令700は終了する。
図8は、図1A~図2のVA100を実装するために図6~図7の命令を実行するように構成された例示的なプロセッサプラットフォーム800のブロック図である。プロセッサプラットフォーム800は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、DCSコントローラアセンブリ(例えば、図2のDCSコントローラアセンブリ226)、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例:携帯電話、スマートフォン、iPad(登録商標)などのタブレット)、携帯情報端末(PDA)、インターネット機器、ヘッドセットまたは他のウェアラブルデバイス(例、図1のウェアラブルデバイス128、130、132)、または任意の他のタイプのコンピューティングデバイスであり得る。
示された例のプロセッサプラットフォーム800は、プロセッサ812を含む。示された例のプロセッサ812は、ハードウェアである。例えば、プロセッサ812は、1つ以上の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、または任意の所望のファミリまたは製造業者からのコントローラによって実装され得る。ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)のデバイスであってもよい。この例において、プロセッサ812は、サーバボットフレームワーク210、フレームワークコントローラ212、パーサ214、アナライザ216、ジェネレータ218、実行部220、会話コンテキストエンジン224、会話プロセッサ238、アクションプロセッサ240、会話状態ハンドラ242、および/またはより一般的にはVA100を実装する。
示された例のプロセッサ812は、ローカルメモリ813(例えば、キャッシュ)を含む。示された例のプロセッサ812は、バス818を介して、揮発性メモリ814および不揮発性メモリ816を含むメインメモリと通信している。揮発性メモリ814は、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUS(登録商標)ダイナミックランダムアクセスメモリ(RDRAM(登録商標))、および/または任意の他のタイプのランダムアクセスメモリデバイスによって実装されてもよい。不揮発性メモリ816は、フラッシュメモリおよび/または任意の他の所望のタイプのメモリデバイスによって実装されてもよい。メインメモリ814、816へのアクセスは、メモリコントローラによって制御される。
示された例のプロセッサプラットフォーム800は、インターフェース回路820も含む。インターフェース回路820は、イーサネット(登録商標)インターフェース、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標)インターフェース、近距離無線通信(NFC)インターフェース、および/またはPCIエクスプレスインターフェースなど、任意のタイプのインターフェース標準によって実装されてもよい。
示された例において、1つ以上の入力デバイス822がインターフェース回路820に接続されている。入力デバイス822(複数可)は、ユーザがデータおよび/またはコマンドをプロセッサ812に入力することを許可する。入力デバイス822(複数可)は、例えば、音声センサ、マイクロホン、カメラ(静止画または動画)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントデバイス、および/または音声認識システムによって実装され得る。
1つ以上の出力デバイス824も、示された例のインターフェース回路820に接続されている。出力デバイス824は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED)、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)、陰極線管ディスプレイ(CRT)、インプレーススイッチング(IPS)ディスプレイ、タッチスクリーンなど)、触覚出力デバイス、プリンター、スピーカなどにより実装され得る。したがって、示された例のインターフェース回路820は、通常、グラフィックスドライバカード、グラフィックスドライバチップ、および/またはグラフィックスドライバプロセッサを含む。
示された例のインターフェース回路820はまた、トランスミッタ、受信機、トランシーバ、モデム、ホームゲートウェイ、無線アクセスポイント、および/またはネットワークインターフェースなどの通信デバイスを含み、ネットワーク826を経由して外部機械(例えば、あらゆる種類のコンピューティングデバイス)とのデータ交換を容易にする。通信は、例えば、イーサネット(登録商標)接続、デジタル加入者線(DSL)接続、電話線接続、同軸ケーブルシステム、衛星システム、サイトの無線システム、携帯電話システムなどを介し得る。
示される例のプロセッサプラットフォーム800は、ソフトウェアおよび/またはデータを格納するための1つ以上の大容量記憶デバイス828も含む。このような大容量記憶デバイス828の例には、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、Blu-ray(登録商標)ディスクドライブ、独立ディスクの冗長アレイ(RAID)システム、およびデジタル多用途ディスク(DVD)ドライブが含まれる。この例において、大容量記憶デバイス828は、図2のモデル243(複数可)を含む図2の会話コンテキストデータベース244を実装する。
図6~図7の機械実行可能命令832は、大容量記憶デバイス828、揮発性メモリ814、不揮発性メモリ816、および/またはCDまたはDVDなどの取り外し可能な非一時的なコンピュータ可読記憶媒体などに記憶されてもよい。
上記から、プロセス制御仮想アシスタントを使用してプロセス制御を強化する例示的なシステム、方法、装置、および製造物品が開示されていることが理解されよう。本明細書において開示されるプロセス制御仮想アシスタントは、プロセス制御モバイルアプリケーション、ブラウザアプリケーション、デスクトップアプリケーションなどのアプリケーションが、プロセス制御に関連付けられたタスクのプロセス制御環境でユーザを支援するボットまたはボットフレームワークとの会話を開始することを可能にするシステムに対応する。開示されているプロセス制御仮想アシスタントは、パラメータ、履歴データ、アラーム、または機器、フィールドデバイス、制御戦略、もしくはバッチなどのプロセス制御構成要素に固有の他の情報を返し得る。いくつかの開示された例において、基本的なスクリプトはパラメータを含む情報を返し得るが、複雑なスクリプトはさらにワークフローを作成し、次に、より複雑な一連のプロセス制御タスクまたは命令を介してユーザを導く追加の自動スクリプトを実行し得る。
本明細書で開示される例は、エンジニア、環境スペシャリスト、オペレータ、保守、スーパーバイザなどを含むプロセス動作に固有の役割をサポートするために使用することができるプロセス中心の仮想アシスタントフレームワークを提供する。本明細書で開示される例は、ユーザおよび/またはコンピューティングデバイス上で実行されるホストアプリケーションからの要求に応答して、プロセス制御構成要素、アクション、タスクなどを識別する。本明細書で開示される例により、アクションのセットをプロセス構成要素でトリガし、情報のプロファイルをプロセス構成要素で返すことが可能になり、かつ/またはユーザが返された情報の視覚化したものを表示することが可能になる。本明細書で開示される例は、複数のユーザおよび/または複数のプラットフォームをサポートする。本明細書で開示される例には、プロセス制御ネットワークを介して接続してプロセス制御を容易にし、/または強化し得るプロセス制御環境の1つ以上の場所に配置することができる開示されたプロセス制御仮想アシスタントを実装するDCSコントローラアセンブリが含まれる。
特定の例示的なシステム、方法、装置、および製造物品が本明細書で開示されてきたが、本特許の対象範囲はそれに限定されない。それどころか、本特許は、本特許の特許請求の範囲の範囲内に相当するすべてのシステム、方法、装置、および製造物品を対象としている。