(57)【特許請求の範囲】
【請求項１】
バイオリアクター制御システムの構成内のプロセスタスクの実行を制御するための装置であって、プロセスタスクが、プロセスタスクオブジェクトの入力値のソースロケーションを識別するためのマップ値を含むプロセスタスクオブジェクトによって定義され、当該装置が、
メモリーと結合したプロセッサーであって、
プロセスタスクオブジェクトに含まれるマップ値が有効なマップ値であるか否かを決定する処理であって、プロセスタスクオブジェクトが、バイオリアクター制御システム構成のバイオリアクター、制御デバイス、又は測定デバイスによって実行されるタスクに対応するものである処理と、
マップ値が有効なマップ値であると決定することに応答して、ソースロケーションを識別するためにマップ値を復号する処理と、
プロセスタスクオブジェクトの入力値を更新するためにソースロケーションから値を引き出す処理と、
入力値によってプロセスタスクを実行させる処理と、
を実行するようにプログラムされたプロセッサー
を備えている、装置。
【請求項２】
マップ値が、第２のプロセスタスクオブジェクトの出力を識別するためのものである、請求項１記載の装置。
【請求項３】
マップ値が、テーブルエントリを識別するためのものである、請求項１記載の装置。
【請求項４】
プロセスタスクオブジェクトが、プロセスレシピに含まれる複数のプロセスタスクオブジェクトの１つである、請求項１記載の装置。
【請求項５】
プロセスレシピが、製品を生産するためのバイオリアクター制御システム構成内の一連のアクションを定義するためのものである、請求項４記載の装置。
【請求項６】
マップ値を復号する処理が、さらに、プロセッサーがデバイスタイプとデバイス番号とを決定することを含む、請求項１記載の装置。
【請求項７】
プロセスタスクの実行が、入力値を出力値に変換することである、請求項１記載の装置。
【請求項８】
バイオリアクター制御システムの構成内のプロセスタスクの実行を制御するための方法であって、
プロセスタスクオブジェクトに含まれるマップ値が有効なマップ値であるか否かを決定するステップであって、プロセスタスクオブジェクトは、バイオリアクター制御システム内のプロセス制御デバイスによって実行されるタスクに対応しており、マップ値は、プロセスタスクオブジェクトの入力値のソースロケーションを識別するためのものである、ステップと、
マップ値が有効なマップ値であると決定することに応答して、ソースロケーションを識別するためにマップ値を復号するステップと、
プロセスタスクオブジェクトの入力値を更新するためにソースロケーションから値を引き出すステップと、
入力値によってプロセスタスクを実行するステップと
を含む方法。
【請求項９】
マップ値が、第２のプロセスタスクオブジェクトの出力を識別する、請求項８記載の方法。
【請求項１０】
マップ値が、テーブルエントリを識別する、請求項８記載の方法。
【請求項１１】
プロセスタスクオブジェクトが、プロセスレシピに含まれる複数のプロセスタスクオブジェクトの１つである、請求項８記載の方法。
【請求項１２】
プロセスレシピが、製品を生産するためのバイオリアクター制御システム構成内の一連のアクションを定義する、請求項１１記載の方法。
【請求項１３】
マップ値を復号するステップが、さらに、バイオリアクター制御システムにおけるプロセス制御デバイスのデバイスタイプとデバイス番号とを決定するステップを含む、請求項８記載の方法。
【請求項１４】
プロセスタスクを実行するステップが、さらに、入力値を出力値に変換することを含む、請求項８記載の方法。
【請求項１５】
命令を有する有形の機械アクセス可能な記憶媒体であって、命令が、実行された場合、機械に少なくとも、
プロセスタスクオブジェクトに含まれるマップ値が有効なマップ値であるか否かを決定させる処理であって、プロセスタスクオブジェクトは、バイオリアクター制御システム内のプロセス制御デバイスによって実行されるタスクに対応しており、マップ値が、プロセスタスクオブジェクトの入力値のソースロケーションを識別するためのものである処理と、
マップ値が有効なマップ値であると決定することに応答して、ソースロケーションを識別するためにマップ値を復号させる処理と、
プロセスタスクオブジェクトの入力値を更新するためにソースロケーションから値を引き出す処理と、
入力値によってプロセスタスクを実行させる処理と
を実行させる、有形の機械アクセス可能な記憶媒体。
【請求項１６】
マップ値が、第２のプロセスタスクオブジェクトの出力を識別するためのものである、請求項１５記載の機械アクセス可能な記憶媒体。
【請求項１７】
マップ値が、テーブルエントリを識別するためのものである、請求項１５記載の機械アクセス可能な記憶媒体。
【請求項１８】
プロセスタスクオブジェクトが、プロセスレシピに含まれる複数のプロセスタスクオブジェクトの１つである、請求項１５記載の機械アクセス可能な記憶媒体。
【請求項１９】
プロセスレシピが、製品を生産するためのバイオリアクター制御システム構成内の一連のアクションを定義するためのものである、請求項１８記載の機械アクセス可能な記憶媒体。
【請求項２０】
実行された場合に機械にデバイスタイプとデバイス番号とを決定させる命令をさらに備える、請求項１５記載の機械アクセス可能な記憶媒体。
【請求項２１】
実行された場合に機械に入力値を出力値に変換させる命令をさらに備える、請求項１５記載の機械アクセス可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、プロセス制御システムに関し、より具体的には、フレキシブルなバイオリアクター制御システムを実装するための方法及び装置に関する。
【背景技術】
【０００２】
バイオリアクター制御システムにおいて使用されるもののようなプロセス制御システムは典型的に、アナログ、デジタル、又は組合せられたアナログ／デジタルバスを介して１以上のホスト又はオペレータのワークステーションと１つ以上のプロセス制御デバイスとに通信可能に結合された、１つ以上のプロセスコントローラーと入力／出力（Ｉ／Ｏ）デバイスとを含む。プロセス制御デバイスは、例えば、ポンプ、攪拌機、質量流量コントローラー、及びトランスミッタ（例えば、温度センサ、圧力センサ、及び流量センサ）であり得、流体流量を増加又は減少させること及びプロセスパラメータを測定することといったプロセス内の機能を実行する。プロセスコントローラーは、プロセス制御デバイスによって得られたプロセス測定値及び／又はプロセス制御デバイスに関係する他の情報を示す信号を受信し、この情報を使用して制御ルーチンを実装し、続いて、プロセスの動作を制御するためにバス又は他の通信線を介してプロセス制御デバイスに送られる制御信号を生成する。このように、プロセスコントローラーは、プロセス制御デバイスを通信可能に結合するバス及び／又は他の通信リンクを介してプロセス制御デバイスを使用して、制御ストラテジを実行及び調整し得る。
【０００３】
プロセス制御システムはしばしば、製品を生産するためのバッチレシピに応じてプロセスを実行するように構成される。製品設計者又はエンジニアは、設計時間中にレシピを準備し、プロセス制御システムによって後に複数回使用されるようレシピを格納する。レシピは典型的に、ユニットプロシージャ、動作、及びフェーズの組合せを含み、それらのすべては、製品を生成するためにプロセス制御システムにおいて材料を移送、混合等するようプロセス機器（例えば、ミキサ、ポンプ、トランスミッタ、弁等）を制御するための命令を含む。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１２／００３７２８号明細書
【発明の概要】
【０００５】
ある特定の例は、フレキシブルなバイオリアクター制御システムを実装するための方法及び装置を提供する。バイオリアクター制御システムの構成内のプロセスタスクの実行を制御するための例示的な装置であって、プロセスタスクが、プロセスタスクオブジェクトの入力値のソースロケーションを識別するためのマップ値を含むプロセスタスクオブジェクトによって定義される、装置は、メモリーと結合したプロセッサーを含む。例示的なプロセッサーは、バイオリアクター制御システム構成のバイオリアクター、制御デバイス、又は測定デバイスによって実行されるタスクに対応するプロセスタスクオブジェクトに含まれるマップ値が有効なマップ値であるか否かを決定し、マップ値が有効なマップ値であると決定することに応答して、プロセスタスクオブジェクトの第１の入力のソースロケーションを識別するためにマップ値を復号するようにプログラムされる。例示的なプロセッサーは、プロセスタスクオブジェクトの入力値を更新するためにソースロケーションから値を引き出し、入力値によってプロセスタスクの実行を容易にするようにプログラムされる。
【０００６】
別の例は、バイオリアクター制御システムの構成内のプロセスタスクの実行を制御するための方法を含む。例示的な方法は、プロセスタスクオブジェクトに含まれるマップ値が有効なマップ値であるか否かを決定するステップであって、プロセスタスクオブジェクトが、バイオリアクター制御システム内のプロセス制御デバイスによって実行されるタスクに対応し、マップ値が、プロセスタスクオブジェクトの入力値のソースロケーションを識別する、ステップと、マップ値が有効なマップ値であると決定することに応答して、プロセスタスクオブジェクトの入力値を更新するためにソースロケーションから値を引き出すステップとを含む。例示的な方法はまた、入力値によってプロセスの実行を容易にするステップを含む。
【０００７】
別の例は、命令を有する有形の機械アクセス可能な記憶媒体を含み、この命令は、実行された場合、機械に少なくとも、プロセスタスクオブジェクトに含まれるマップ値が有効なマップ値であるか否かを決定させ、プロセスタスクオブジェクトは、バイオリアクター制御システム内のプロセス制御デバイスによって実行されるタスクに対応し、マップ値は、プロセスタスクオブジェクトの入力値のソースロケーションを識別する。例示的な命令は機械に、マップ値が有効なマップ値であると決定することに応答して、プロセスタスクオブジェクトの第１の入力のソースロケーションを識別するためにマップ値を復号させるためのものである。例示的な命令はまた、機械に、プロセスタスクオブジェクトの入力値を更新するためにソースロケーションから値を引き出し、入力値によってプロセスタスクの実行を容易にさせるためのものである。
【図面の簡単な説明】
【０００８】
【図１Ａ】例示的なプロセス制御環境の模式図である。
【図１Ｂ】例示的なプロセス制御環境の模式図である。
【図２】図１の例示的なコントローラーの例示的な実装のブロック図である。
【図３】図２の例示的なプロセスレシピビルダーで生成された例示的なプロセスタスクオブジェクトを示す図である。
【図４】図２の例示的なプロセスレシピビルダーで生成された例示的なプロセスレシピを示す図である。
【図５】図２の例示的な値プーラーの例示的な実装のブロック図である。
【図６】バイオリアクター制御システムを制御するために実行され得る例示的な機械可読命令を表すフローチャートである。
【図７】プロセスタスクオブジェクトの入力値を引き出すために実行され得る例示的な機械可読命令を表すフローチャートである。
【図８】図２の例示的なプロセスレシピビルダーで生成された例示的なプロセスレシピを示す図である。
【図９】図２の例示的なプロセスレシピビルダーで生成された例示的なプロセスレシピを示す図である。
【図１０】図１及び／又は図２の例示的なコントローラーを実装するための図６の例示的な機械可読命令、及び／又は、図２及び／又は図５の例示的な値プーラーを実装するための図７の例示的な機械可読命令をそれぞれ実行することができる、例示的なプロセッシングプラットフォームのブロック図である。
【発明を実施するための形態】
【０００９】
バイオテクノロジーにおいて、以前の制御システムは、ステンレススチールドラムを使用して製品（例えば、医薬品等）を生産した。しかしながら、ステンレススチールドラムを使用することは、バッチ間の高価な洗浄及び殺菌を必要とした。例えば、新たな製品が生産されるたびに、前の製品生産（本明細書では時に「バッチ」とも呼ばれる）で使用された機器は、適切に洗浄及び殺菌されなければならなかった。いくつかの例では、複雑な方針と標準がバッチ製造前に遵守されなければならない。例えば、医薬製品を生産する前に、制御システム機器は費用のかかる検証プロセスを受ける。かくして、いくつかの例では、使い捨て（本明細書では時に「単回使用」と呼ばれる）のプロセス制御デバイスが使用され得る。例えば、バイオリアクターは、照射プラスチックバッグと置き換えられ得る。結果として、バイオリアクター制御システムを維持するコストが減少し得る。さらに、設備における使い捨て機器（例えば、プラスチックバッグ）の使用は、短縮された制御システム機器の制御システム洗浄及び殺菌に起因する製造中断時間を可能にする。
【００１０】
制御システムがステンレススチールドラムを使用するか又は使い捨て機器を使用するかに関わらず、機器は依然として、製品を生産するように構成される必要がある。公知の制御システムは、機器（例えば、プロセス制御デバイス）の構成を定義することと定義された機器に対する製品レシピを構築することとを可能にする、制御システムインターフェースアプリケーションによって構成され得る。公知の制御システムインターフェースアプリケーションは、ユーザー（例えば、製品設計者、エンジニア等）に制御システム機器の対話を構成することを可能にさせるためのユーザーインターフェース（本明細書では時に「制御画面」とも呼ばれる）を含む。例えば、ユーザーは、入力デバイス（例えば、ｐＨセンサ）を出力デバイス（例えば、酸吐出ポンプ及び／又は塩基吐出ポンプ）にマッピングし得る。いくつかのそのような例では、出力デバイスはその実行を、入力デバイスから受信された情報に基づいて修正変更し得る。例えば、ｐＨセンサがバイオリアクターのｐＨレベルがセットポイントを上回ることを示す場合、酸吐出ポンプが、バイオリアクターのｐＨレベルを低下させるために酸の吐出を増加させ得る（例えば、弁を開く）。
【００１１】
プロセスレシピ（本明細書では時に「バッチレシピ」又は「レシピ」とも呼ばれる）は、製品を生産するための一連の機器のアクションを定義する。例えば、バイオリアクター制御システムは、細菌、酵母菌の培養、微生物発酵、哺乳類細胞培養等のために使用され得る。いくつかの例において、レシピは、階層的に構築され、生産される製品についての記述的情報、配合情報、機器の要件、及び製品を作るために使用されるプロシージャ（例えば、プロセスタスク）を含む。 いくつかの例において、レシピは、パラメータ入力によって差別化されるテンプレートとみなされ得る。例えば、レシピは、第１の材料をバッグの中に追加すること、第２の材料をバッグの中に追加すること、バッグの中の材料を混合すること、及び制御システムにおける別のデバイスに混合物を移送することを含み得る。第１の材料と第２の材料が何であるかに関わらず、２つの材料の混合物を移送するための同一レシピが、変更された入力パラメータ（例えば、第１の材料及び第２の材料）とともに使用され得る。
【００１２】
上述されたように、制御システムインターフェースアプリケーションはユーザーに、制御デバイスが互いとどのように対話するかを構成することを可能にさせる。これらの構成をさらに可能にするために、いくつかの公知の制御システムインターフェースアプリケーションは、制御システムデバイスのための予め定義されたテンプレートを含む。制御システムデバイスのテンプレートは、制御システムをテンプレートとして設計することがユーザーが迅速に定義及び／又は構成するための予め定義されたマッピングを含み得る場合、有用であり得る。例えば、第１のセンサのためのテンプレートはユーザーに、第１のセンサ（例えば、溶存酸素センサ）を２つの異なるタイプのポンプ（例えば、空気ポンプ又は酸素ポンプ）にマッピングすることを可能にさせ得る。しかしながら、テンプレートに含まれないデバイス（例えば、グルコースフィードのような第３のタイプのポンプ）に第１のセンサを接続することを望むユーザーは、カスタム制御システムプログラミングなくして可能ではなかろう。かくして、いくつかの例において、制御システムインターフェースアプリケーションは、ユーザーが制御システムデバイステンプレートのためのソースコードを書き換えることを可能にし得る。例えば、ユーザーは、シングルリアクター構成をデュアルリアクター構成に変換し得る。しかしながら、これは、ソースコードをカットアンドペーストするのに複数週を必要とし得る面倒なプロセスである。さらに、ソースコードが書き換えられるたびに、コーディングにおけるエラーの導入の機会が増大する。
【００１３】
本明細書に開示される例示的な方法及び装置は、フレキシブルな制御システム構成を可能にする。予め定義されたデバイスマッピングを含む従来例とは異なり、本明細書に開示される例は、任意のエンドデバイスを入力にマッピングすることをユーザーに可能にさせる。本明細書に開示される例は、プロセス制御デバイスの基本の（例えば、基本的な）プロセスタスクを定義することにより、フレキシブルな制御システム構成を可能にする。結果として、異なるプロセスタスクは、ソースコードの離散的で再使用可能な単位として定義され得る。例えば、上述された２つの材料を混合する例では、材料追加プロセスタスクは、一度目は第１の材料を追加するために、二度目は第２の材料の追加するために、二度呼び出され得る。いくつかのそのような例では、混合のためのソースコードは同一のままであるが、材料追加プロセスタスクの第１のインスタンスへの入力パラメータは、材料追加プロセスタスクの第２のインスタンスとは異なる。さらに、レシピが３つの材料が混合物に追加されるように変更される場合、ソースコードの２材料ミキサブロックをソースコードの３材料ミキサブロックへと書き換え又は修正変更しなくてはならない代わりに、レシピが材料追加プロセスタスクの第３のインスタンスを含むように変更されるだけである。
【００１４】
本明細書に開示される例は、プロセスタスクを対応するプロセスタスクオブジェクトによって定義する。例示的なプロセスタスクオブジェクトは、対応するプロセスタスクを実行するために必要とされる情報を含み得る。例えば、加算器プロセスタスクオブジェクトは、第１のオペランド（例えば、入力）値、第２のオペランド値、変形識別値（例えば、加算）、及び結果値を含み得る。かくして、加算器プロセスタスクオブジェクトのインスタンスが呼び出されると、第１の入力値及び第２の入力値が加算器に送られ、結果として生じる値が加算器プロセスタスクオブジェクト結果値として記憶される。
【００１５】
しかしながら、従来のシステムとは異なり、本明細書に開示される例示的なプロセスタスクオブジェクトはまた、プロセスタスクオブジェクトへのそれぞれの入力値（単数又は複数）を引き出すためのマップ値を含む。かくして、制御デバイステンプレートに含まれる現在のマッピングに基づいてデバイス構成が制限される従来のシステムとは異なり、本明細書に開示される例は、入力値を入力マップ値によって決定された場所から引き出すことにより、フレキシブルなバイオリアクター制御システム構成を可能にする。例えば、ユーザーが溶存酸素センサにグルコースフィードポンプの出力の制御を望む場合、本明細書に開示される例は、グルコースフィードポンプのための入力マップ値を溶存酸素センサの出力として定義することを可能にする。したがって、グルコースフィードプロセスタスクのインスタンスが実行される前に、グルコースフィードプロセスタスクオブジェクトの入力値を、溶存酸素センサの出力値から引き出し、グルコースフィードプロセスタスクオブジェクトの入力として使用される。かくして、本明細書に開示される例は、任意のデバイスの出力（単数又は複数）を任意の他のデバイスの入力（単数又は複数）に論理的に接続することを可能にする。さらに、本明細書に開示される例は、ソースコードではなく入力マップ値を変更することによって制御システムを再構成することを可能にする。例えば、第１の日は、溶存酸素センサが酸素吐出ポンプを制御し得（例えば、酸素吐出ポンプが溶存酸素センサの出力値を引き出す）、第２の日には、ｐＨセンサが酸素吐出ポンプを制御し得る（例えば、酸素吐出ポンプがｐＨセンサの出力値を引き出す）。
【００１６】
図１は、例示的なプロセス制御環境１００のブロック図である。例示的なプロセス制御環境１００は、例示的なユーザーインターフェースプロセッサー１０２と例示的なバイオリアクター制御システム１０４（本明細書では時に「プロセス制御システム」と呼ばれる）とを含む。例示的なユーザーインターフェースプロセッサー１０２は、例示的なワークステーション１０６内に実装及び／又は包含され得る。他の例示的な実装において、ユーザーインターフェースプロセッサー１０２は、ワークステーション１０６に通信可能に結合され得る、サーバ、分散コンピューティングネットワーク、及び／又は任意の他のコンピューティングデバイス（単数又は複数）内に含まれ得る。
【００１７】
例示的なバイオリアクター制御システム１０４は、任意のタイプのバイオテクノロジー又はバイオマニュファクチャリング設備、構造、又はシステムを含み得る。いくつかの例において、例示的なプロセス制御環境１００は、同一の設備内に含まれ得る、及び／又は異なる設備に配置され得る、他のバイオリアクター制御システム（図示せず）を含み得る。
【００１８】
例示的なプロセス制御環境１００は、以下においてより詳細に説明される例示的な方法及び装置が有利に用いられ得るシステムの１つのタイプを示すために提供される。しかしながら、本明細書において説明される例示的な方法及び装置は、所望される場合、図１に示された例示的なプロセス制御環境１００及び／又はバイオリアクター制御システム１０４よりも高い又は低い複雑性の他のシステムにおいて使用され得る。
【００１９】
図１の例示的なバイオリアクター制御システム１０４は、ネットワーク１１０を介してワークステーション１０６に通信可能に結合され得る例示的なコントローラー１０８を含む。バイオリアクター制御システム１０４はまた、プロセス制御デバイス１１２（例えば、入力及び／又は出力デバイス）を含む。プロセス制御デバイス１１２は、入力を受信し、出力を生成し、及び／又は、プロセス又は制御ループを制御することができる、任意のタイプ（単数又は複数）のプロセス制御コンポーネント（単数又は複数）を含み得る。プロセス制御デバイス１１２は、１つ以上のバイオリアクター、１つ以上のポンプ、１つ以上の質量流量コントローラー、１つ以上の弁、１つ以上の攪拌機等といった制御デバイスを含み得る。加えて、プロセス制御デバイス１１２は、プロセスの一部を測定するための、ｐＨセンサ、温度センサ、溶存酸素センサ、圧力計、濃度計、流量計等といった１つ以上の測定又は監視デバイスを含み得る。制御デバイスは、指定されたコマンドを実行し、プロセス制御デバイス１１２によって実装及び／又は制御されるプロセスへの変更を引き起こすための命令を、コントローラー１０８から入力１１４を介して受信し得る。さらに、測定又は監視デバイスが、プロセスデータ、環境データ、及び／又は入力デバイスデータを測定し、測定されたデータをプロセスデータとして出力１１６を介しコントローラー１０８に送信する。このプロセスデータは、プロセス制御デバイス１１２の各々からの測定された出力に対応する変数（又はパラメータ）の値を含み得る。
【００２０】
プロセス制御デバイス１１２を含むバイオリアクター制御システム１０４の例示的な実装は、カスタマイズされたジャケット付きステンレススチール容器、ロードセル、プラスチックバックの中の攪拌を制御するためのＸリフト及びサーボドライブ、排気ガスフィルタが湿気で詰まってバッグの過圧インターロックとバッグの巻き上げを引き起こさないことを保証するための排気フィルタ加熱器、攪拌セットポイント又は質量流量コントローラーのセットポイントを制御するためのｐＨ／溶存酸素センサ／トランスミッタ又はフィードポンプ、質量流量コントローラー、計量ポンプ、バッグ圧力トランスミッタ（単数又は複数）、測温抵抗体（例えば、温度センサ）及び温度制御ユニット、を含むバイオリアクターを含み得る。説明される単回使用製品コンタクトアセンブリは、全気体フィルタ、攪拌システム、スパージャー、プローブ、ポート、圧力センササンプリング、気体及び液体移送管を含む。加えて、磁気的に結合され、内部に搭載される攪拌機は、使い捨てアセンブリを通る回転シール又はシャフト貫通を使用しない。さらに、カスタマイズされたジャケット付きステンレススチール容器が、使い捨てバッグの装填と５：１のターンダウン能力機能とをサポートし、容易にするために使用され得る。例示的なバイオリアクター制御システム１０４における温度制御は、急激な加熱及び冷却を提供するシステム温度コントローラーによって提供され得る。加えて、例示的なバイオリアクター制御システム１０４は、冷却用の設備冷水を使用する加熱器のためのオプションを含む（例えば、Ｍｏｋｏｎのユニット）。
【００２１】
図１の例示的な例において、例示的なコントローラー１０８は、入力１１４及び／又は出力１１６を介してバイオリアクター制御システム１０４内のプロセス制御デバイス１１２と通信し得る。入力１１４及び出力１１６は、データバスによって実装され得る。いくつかの例において、データバスは、バイオリアクター制御システム１０４内の中間通信コンポーネントに結合され得る。図２に関連して詳細に論じられるように、コントローラー１０８は、プロセス制御デバイス１１２からデータを受信し、そのデータを、例示的なコントローラー１０８によって受信され、処理されることができる通信に変換（又は翻訳）する、ハードウェアアブストラクターを含み得る。加えて、ハードウェアアブストラクターは、コントローラー１０８からのデータ又は通信を、対応するプロセス制御デバイス１１２によって処理されることができるデータ形式に変換（又は翻訳）し得る。例において、データバスは、プロセスフィールドバス（時に「ＰＲＯＦＩＢＵＳ」と呼ばれる）プロトコル（例えば、ＰＲＯＦＩＢＵＳ  ＤＰ）、イーサネット（登録商標）プロトコル等といった有線及び／又は無線通信プロトコルを使用して実装され得る。
【００２２】
図１の例示的なコントローラー１０８は、バイオリアクター制御システム１０４内のプロセス制御デバイス１１２を制御するための１つ以上の制御ルーチン（例えば、プロセス制御ループ、アルゴリズム、機能、及び／又は命令）を管理する。制御ルーチンは、プロセス監視アプリケーション、アラーム管理アプリケーション、プロセス・トレンディング・アプリケーション、ヒストリアプリケーション、バッチプロセス管理アプリケーション、システム診断アプリケーション等を含み得る。制御ルーチン（単数又は複数）は、バイオリアクター制御システム１０４が指定された量の所望の製品をある特定の品質しきい値内で生産することを保証し得る。例えば、バイオリアクター制御システム１０４は、バッチプロセスの終了時及び／又は最中に製品を生産するバッチシステムとして構成され得る。他の例では、バイオリアクター制御システム１０４は、絶えず製品を生産する連続プロセス製造システムを含み得る。
【００２３】
図１の図示された例において、ワークステーション１０６は、ネットワーク１１０（例えば、ローカルエリアネットワーク（ＬＡＮ））を介してコントローラー１０８に通信可能に結合され得る。例示的なワークステーション１０６は、パーソナルコンピュータ、ラップトップ、サーバ、コントローラー等を含む任意のコンピューティングデバイスを含み得る。加えて、ワークステーション１０６は、任意の適切なコンピュータシステム又はプロセッシングプラットフォーム（例えば、図１０に示されたプロセッサープラットフォーム１０００）を使用して実装され得る。例えば、ワークステーション１０６は、シングルプロセッサーのパーソナルコンピュータ、シングル又はマルチプロセッサーのワークステーション等を使用して実装され得る。
【００２４】
図１の図示された例では、ワークステーション１０６が、バイオリアクター制御システム１０４の外部に示されている。他の例では、ワークステーション１０６は、バイオリアクター制御システム１０４内に含まれ、及び／又は、コントローラー１０８に対し直接的に通信可能に結合され得る。加えて、プロセス制御環境１００は、他のワークステーション（図示せず）をコントローラー１０８に通信可能に結合し、及び／又は、ワークステーション１０６を他のプロセス制御システム内の他のコントローラー（図示せず）に通信可能に結合するための、ルータ（図示せず）を含み得る。さらに、プロセス制御環境１００は、リモートワークステーション（例えば、プロセス制御環境１００の外部のワークステーション）にプロセス制御環境１００内のリソースへのアクセスを提供するためのファイアウォール（図示せず）を含み得る。
【００２５】
例示的なネットワーク１１０は、任意の所望の通信媒体及び／又はプロトコルを使用して実装され得る。例えば、ネットワーク１１０は、ハードワイヤード又は無線イーサネット（登録商標）通信スキームに基づき得る。しかしながら、任意の他の適切な通信媒体及び／又はプロトコルが使用され得る。さらに、単一のネットワーク１１０が示されているが、２つ以上のネットワーク及びワークステーション１０６内の適切な通信ハードウェアが、ワークステーション１０６とそれぞれの同様のワークステーション（図示せず）との間の冗長通信経路を提供するために使用され得る。
【００２６】
例示的なワークステーション１０６及び／又はバイオリアクター制御システム１０４へのアクセスを有する他のワークステーションは、バイオリアクター制御システム１０４内の１つ以上のプロセスを作成し、検討し、修正変更し、及び／又は修正するように構成され得る。例示的なワークステーション１０６は、プロセス制御システムの変数を検討すること、プロセス制御システムの状態を検討すること、プロセス制御システムの条件を検討すること、プロセス制御システムのアラームを検討すること、プロセス制御システムの設定（例えば、セットポイント、制御変数、プロセス変数、動作状態等）を検討することをユーザーに可能にさせる１つ以上のユーザーディスプレイ画面及び／又はアプリケーションを再検討すること及び／又は動作させることをユーザーに可能にさせる。
【００２７】
例示的なワークステーション１０６は、プロセス制御ルーチン（単数又は複数）を作成し、設計し、及び／又は監視し、及び／又は、コントローラー１０８によって送信された制御情報を処理してステータスの問題を識別及び／又は決定するための、ユーザーインターフェースプロセッサー１０２を包含及び／又は実装する。図示された例において、ユーザーインターフェースプロセッサー１０２は、ユーザーインターフェース（例えば、制御画面、グラフィカルユーザーインターフェース（ＧＵＩ）等）を介してユーザーに対し情報を動的に表示する。いくつかの例において、ユーザーインターフェースプロセッサー１０２は、バイオリアクター制御システム１０４を介してプロセス又はバッチレシピを設計することをユーザーに可能にさせるためのマッピング表示を表示する。例えば、ユーザーは、バイオリアクター制御システム１０４のプロセス制御デバイス１１２がどのように、互いに対し対話するか、及び／又は、コントローラー１０８及び／又は他のプロセス制御デバイス１１２によって提供されたデータを処理するか、をマッピングし得る。
【００２８】
いくつかの例において、ユーザーは、基準に応じて自動で変わるようにセットポイントを構成するためのセットポイントテーブルを生成し得る。本明細書において使用される場合、セットポイントは、対応するパラメータのユーザーが入れた所望の値である。例えば、バイオリアクターのためのセットポイントは、ユーザーによってｐＨレベル５．６に設定され得る。本明細書において使用される場合、プロセス変数は、パラメータの測定値の実際の読み取り値である。例えば、測定又は監視デバイス１１２（例えば、ｐＨセンサ）は、バイオリアクターのｐＨレベルを６．３であると測定し得る。本明細書において使用される場合、制御変数は、コントローラー１０８からのコントローラー出力である。図示された例において、バイオリアクターのｐＨレベルは、ユーザーによって入れられたｐＨレベルのセットポイント（例えば、５．６）よりも塩基性（例えば、６．３）である。かくして、コントローラー１０８は、酸吐出ポンプにバイオリアクターへの流体流量を増加させる（例えば、弁を開位置へと動かす）命令を送信し、及び／又は、塩基吐出ポンプにバイオリアクターへの流体流量を減少させる（例えば、弁を閉位置へと動かす）命令を送信し得る。
【００２９】
図示された例では、ユーザーがプロセス（例えば、プロセス制御デバイスの対話、命令、プロシージャ等）の設計を完了すると、ユーザーは、プロセスを構築するために、ユーザーインターフェースプロセッサー１０２によって表示されたユーザーインターフェースを介し、「ロード」、「構築」等のボタンを選択し得る。図２に関連して詳細に説明されるように、ユーザーが「ロード」ボタンを選択すると、例示的なユーザーインターフェースプロセッサー１０２は、例示的なコントローラー１０８のコンポーネントを管理するための例示的なバッチマネージャー２０４を起動する。
【００３０】
図２は、図１の例示的なコントローラー１０８の例示的な実装のブロック図である。図２の図示された例において、例示的なコントローラー１０８は、例示的な外部インターフェース２０２、例示的なバッチマネージャー２０４、例示的なプロセスレシピビルダー２０６、例示的なハードウェアアブストラクター２０８、例示的な値プーラー２１０、例示的な変形器２１２、例示的なデータベース２１４を含む。例示的なデータベース２１４は、例示的なテーブルデータベース２１６、例示的なプロセスタスクオブジェクトライブラリー２１８、及び例示的なプロセスデータベース２２０を含む。図示された例の例示的なテーブルデータベース２１６は、プロセスを構成している間に例示的なユーザーインターフェースプロセッサー１０２（図１）を介しユーザーで生成されたセットポイントテーブル及び／又はルックアップテーブルを格納し得る。図示された例の例示的なプロセスタスクオブジェクトライブラリー２１８は、プロセスレシピを構築（例えば、設計、構成、生成等）するためにプロセスレシピビルダー２０６によって使用され得るプロセスタスクオブジェクトのテンプレートを格納する。例示的なプロセスデータベース２２０は、例示的なプロセスレシピビルダー２０６によって構築されたプロセスレシピ（例えば、例示的なプロセスレシピ２２２）を格納する。
【００３１】
図２の図示された例では、例示的なコントローラー１０８は、コントローラー１０８と例示的なワークステーション１０６（図１）との間の双方向通信を可能にするための例示的な外部インターフェース２０２を含む。例示的な外部インターフェース２０２は、例示的なネットワーク１１０（図１）（例えば、無線ネットワーク）との通信をコントローラー１０８に可能にさせるための無線通信機によって実装され得る。しかしながら、加えて又はあるいは、外部インターフェース２０２は、例えば、イーサネット（登録商標）インターフェース、セルラーインターフェース、Ｂｌｕｅｔｏｏｔｈ（登録商標）インターフェース等といった任意の他のタイプのネットワークインターフェースによって実装され得る。
【００３２】
図２の図示された例において、例示的なコントローラー１０８は、バッチ（又はプロセス）レシピの実行を管理するための例示的なバッチマネージャー２０４を含む。例えば、起動されると、バッチマネージャー２０４は、プロセスレシピビルダー２０６、ハードウェアアブストラクター２０８、値プーラー２１０、及び／又は変形器２１２がいつ動作するかを指揮し得る。いくつかの例において、バッチマネージャー２０４は、ユーザーがプロセスの構築及び／又は実行を選ぶと起動される。例えば、ユーザーは、ユーザーインターフェースの「ロード」、「構築」等のボタンを選択し得る。いくつかの例において、バッチマネージャー２０４は、プロセスの実行中のプロセスタスクオブジェクトのステータスを管理する。例えば、バッチマネージャー２０４は、プロセスタスクオブジェクトがいつ、イネーブル状態（例えば、値がプロセスタスクオブジェクトに書き込まれることができる、変形器２１２がプロセスタスクオブジェクトの変形を実行することができる等）であるか、又は、ディスエーブル状態（例えば、値がプロセスタスクオブジェクトに書き込まれない）であるか、を決定し得る。いくつかのそのような例において、バッチマネージャー２０４は、プロセス変数（例えば、例示的な測定又は監視デバイスによって測定されたパラメータ値）をテーブルデータベース２１６に含まれるセットポイントテーブルから検索された対応するセットポイントと比較し得る。例示的なバッチマネージャー２０４は、その比較結果を、制御変数、プロセスタスクオブジェクトの状態等を修正変更するか否かを決定するために使用し得る。
【００３３】
図２の図示された例において、例示的なコントローラー１０８は、ユーザーインターフェースプロセッサー１０２（図１）によって構成されたプロセスに基づいてプロセスレシピを構築するための例示的なプロセスレシピビルダー２０６を含む。いくつかの例において、プロセスレシピビルダー２０６は、構成されたプロセスの一部を実行するための１つ以上の基本プロセスタスクを識別する。例えば、プロセスレシピビルダー２０６は、第１の材料追加プロセスタスク、第２の材料追加プロセスタスク、材料混合プロセスタスク、及び混合物移送プロセスタスクを識別し得る。図示された例において、プロセスレシピビルダー２０６は、プロセスタスクオブジェクトライブラリー２１８から、識別されたプロセスタスク（単数又は複数）に対応するプロセスタスクオブジェクトのテンプレートを検索する。テンプレートは、プロセスタスクを実行するために必要とされる要素又はフィールドを識別する。
【００３４】
図３は、プロセスタスクオブジェクトライブラリー２１８から検索された例示的な加算器プロセスタスクオブジェクト３００を示す。図３の図示された例において、プロセスタスクオブジェクト３００は、例示的なプロセスタスクエントリ識別子３０２、例示的な変形器識別子３０４、例示的な変形器ステータス識別子３０６、例示的な入力１のマップ値３０８、例示的な入力１の値３１０、例示的な入力２のマップ値３１２、例示的な入力２の値３１４、及び例示的な出力値３１６を含む。図示された例において、バッチマネージャー２０４（図２）は、例示的なプロセスデータベース２２０から対応するプロセスタスクオブジェクトを検索するためにプロセスタスクオブジェクトのプロセスタスクエントリ識別子３０２を使用し得る。例示的な変形器識別子３０４は、プロセスタスクオブジェクトに関連づけられた変形動作を識別する。例えば、関連づけられた変形動作は、追加、混合、移送等を含み得る。図示された例において、変形器ステータス識別子３０６は、関連づけられた変形動作のステータスを識別する。例えば、ステータスは、イネーブル（例えば、変形器識別子３０４によって識別された関連づけられた変形動作が実行される）又はディスエーブル（例えば、変形器識別子３０４によって識別された関連づけられた変形動作は実行されない）であり得る。
【００３５】
図３の図示された例において、例示的な入力１のマップ値３０８は、例示的な入力１の値３１０の場所を識別する。同様に、例示的な入力２のマップ値３１２は、例示的な入力２の値３１４の場所を識別する。図示された例において、プロセスレシピビルダー２０６は、プロセスタスクオブジェクトにおける入力値だけでなく、プロセスタスクオブジェクトの入力のソースロケーションを、対応する入力マップ値フィールドに格納する。結果として、入出力の接続は、所定の（例えば、予め構成された）デバイスマッピングに限定されない。かくして、プロセスタスクの入力は、別のプロセス制御デバイス又はプロセスタスクからセットポイントを検索するようにマッピングされ得るか、例示的なテーブルデータベース２１６からセットポイントを検索するようにマッピングされ得るか、例示的なコントローラー１０８によって制御され得るか、又は何にもマッピングされないことができる（例えば、ユーザーインターフェースプロセッサー１０２（図１）で生成されたユーザーインターフェースを介してユーザーから入力値を受信し得る）。
【００３６】
いくつかの例において、例示的なプロセスタスクオブジェクトライブラリー２１８は、ユーザー定義プロセスタスクオブジェクトを格納し得る。本明細書において使用される場合、ユーザー定義プロセスタスクオブジェクトは、非標準的な（例えば、予め構成されたものでない）プロセスタスクオブジェクトである。例えば、ユーザーは、彼らのバイオリアクター制御システム１０４（図１）に固有のユーザー定義プロセスタスクオブジェクトを定義し得る。いくつかのそのような例において、ユーザーは、例示的なユーザーインターフェースプロセッサー１０２で生成されたユーザーインターフェースを介してプロセスタスクオブジェクトを定義するように促され得る。これは、ユーザーに、彼らのプロセス制御環境に一意のバイオリアクター制御システムを構成することを可能にさせるのに有用であり得る。すなわち、ユーザーは、有限数のプロセス制御システム構成に制限されない。
【００３７】
さらに、入力値だけでなく入力値のソースロケーションを格納することにより、誤った入力値を処理する機会が大幅に低減される。すなわち、入力値は、（例えば、対応する入力マップ値によって識別された）指定された場所から引き出されるので、別の出力によって書き込まれることはできない。例えば、いくつかの従来の制御システムは、２つの出力値を不注意に同一の入力値にマッピングすることをユーザーに可能にさせ得ることにより、エラー値又は間違った値が処理されるという結果を生じる。例示的な値プーラー２１０に関連して以下に詳細に説明されるように、出力値がプロセスタスク入力に押されるのではなく、入力マップ値が、ソースロケーション（例えば、別のプロセスタスク出力値、セットポイントテーブル、コントローラー１０８から等）から正しい入力値を引き出すことを可能にすることにより、正しい入力値が処理されるという結果を生じる。かくして、出力値は１つ以上の入力値によって引き出すことができるが、各々の入力値は、１つの出力値のみを引き出す。
【００３８】
図２の図示された例において、例示的なプロセスレシピビルダー２０６は、構成されたプロセスに基づいて１つ以上のプロセスタスクオブジェクトフィールド３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６にデータ投入し、プロセスタスクオブジェクトを、対応するプロセスレシピ（例えば、例示的なプロセスレシピ２２２）とともに例示的なプロセスデータベース２２０に格納する。図４は、例示的なプロセスタスクオブジェクト４０２、４０４、４０６を含むプロセスレシピビルダー２０６で生成された例示的なプロセスレシピ４００を示す。図４の図示された例において、プロセスレシピ４００は、温度を摂氏から華氏に変換するために呼び出され得る。例えば、温度センサがバイオリアクターの温度を摂氏で測定し得る一方で、バイオリアクターに結合された排気加熱器は、華氏値で動作し得る。かくして、例示的なプロセスレシピビルダー２０６は、測定された温度を華氏に変換するためのプロセスレシピ４００を生成し得る。
【００３９】
例えば、温度を変換するために、プロセスレシピ４００は、温度センサから摂氏の温度を検索するための第１のプロセスタスクと、第１のプロセスタスクにおいて検索された温度に９／５を乗算するための第２のプロセスタスクと、第２プロセスタスクにおいて形成された積に３２を加算するための第３のプロセスタスクとを含み得る。第３のプロセスタスクの完了時の計算された合計が続いて、バイオリアクターの温度を上昇させるか否かを決定するために、例えば、排気加熱器によって、使用され得る。したがって、例示的なプロセスレシピビルダー２０６は、それぞれのプロセスタスクオブジェクトの入力マップ値フィールドにデータ投入する。例えば、プロセスタスクオブジェクト４０２（例えば、温度検索プロセスタスク）の入力１のマップ値４０８は、排気フィルタ温度センサの出力に対応し、プロセスタスクオブジェクト４０４（例えば、乗算プロセスタスク）の入力１のマップ値４１０と入力２のマップ値４１２とはそれぞれ、第１のプロセスタスクオブジェクトの出力（例えば、出力値４１８）と第１のルックアップテーブルエントリ（例えば、「０９０６」）とに対応し、プロセスタスクオブジェクト４０６（例えば、加算プロセスタスク）の入力１のマップ値４１４と入力２のマップ値４１６とは、第２のプロセスタスクオブジェクトの出力（例えば、出力値４２０）と第２のルックアップテーブルエントリ（例えば、「０９１４」）とに対応する。例示的な値プーラー２１０に関連して詳細に説明されるように、値プーラー２１０は、マップ値の各々を復号して対応するソースロケーションを識別し、識別されたソースロケーションから対応する値を引き出し（例えば、検索し）、引き出された値をプロセスタスクオブジェクトの対応する入力値フィールドに格納する。
【００４０】
図２の図示された例において、例示的なコントローラー１０８は、プロセス制御デバイス１１２（図１）によってコントローラー１０８に入力されたデータを変換（又は翻訳）し、コントローラー１０８からプロセス制御デバイス１１２に出力されるデータを変換（又は翻訳）するための、例示的なハードウェアアブストラクター２０８を含む。例えば、ハードウェアアブストラクター２０８は、プロセス制御デバイス１１２の出力値を読み取り（又は受信し）、そのデータを、例示的なバッチマネージャー２０４によって受信され、処理されることができる通信へと変換し得る。加えて、ハードウェアアブストラクター２０８は、例示的なプロセスデータベース２２０に格納されたデータを、対応するプロセス制御デバイス１１２によって受信され、処理されることができる通信へと変換し得る。いくつかの例において、ハードウェアアブストラクター２０８は、アナログデータをデジタル値に翻訳し、及び／又は、デジタル値をアナログデータに翻訳し得る。
【００４１】
いくつかの例において、例示的なハードウェアアブストラクター２０８が、プロセスレシピの実行中に例示的なバッチマネージャー２０４によって起動される。いくつかのそのような例において、ハードウェアアブストラクター２０８は、値の変更についてプロセス制御デバイス１１２及び／又はプロセスデータベース２２０を連続的に（又は実質的にほぼ連続的に）（例えば、毎秒５回）スキャンする。例えば、プロセスタスクオブジェクトの出力値フィールドが更新された場合、ハードウェアアブストラクター２０８は、更新された値を処理し、その値を、対応するプロセス制御デバイス１１２によって受信され、処理されることができるデータへと変換し得る。いくつかの例では、ハードウェアアブストラクター２０８は、対応するプロセスタスクオブジェクトの変形器ステータス識別子３０６（図３）によって決定されたときに活動状態にあるプロセスタスクオブジェクトについての値を更新し得る。いくつかのそのような例において、ハードウェアアブストラクター２０８は、変形器ステータス識別子３０６が対応するプロセスタスクオブジェクトが非活動状態にあることを示す場合、値の更新をスキップ（又は延期）し得る。
【００４２】
図２の図示された例において、例示的なコントローラー１０８は、ソースロケーションから入力値を引き出し、入力値をプロセスタスクオブジェクトの対応する入力値フィールドに格納するための、例示的な値プーラー２１０を含む。いくつかの例において、値プーラー２１０は、バッチマネージャー２０４によって起動されると、プロセスレシピのプロセスタスクオブジェクトを端から端まで反復的に読み取り、対応する入力マップ値によって識別されたソースロケーションから対応する入力値を引き出す。図５の例示的な値プーラーに関連して詳細に説明されるように、値プーラー２１０は、例示的なプロセスデータベース２２０からプロセスタスクオブジェクトを検索し、検索されたプロセスタスクオブジェクトをオペランド解析してマップ値を見出し、マップ値を復号して対応する入力値のソースロケーションを識別し、ソースロケーションから値を検索し（例えば、引き出し）、検索された値によってプロセスタスクオブジェクトを更新し得る。
【００４３】
図２の図示された例において、例示的なコントローラー１０８は、呼び出された（例えば、実行中の）プロセスタスクオブジェクトの変形動作を行うための例示的な変形器２１２を含む。いくつかの例では、コントローラー１０８は、２つ以上の変形器２１２を含み得る。いくつかのそのような例では、変形器２１２の各々は、特定の変形動作を行い得る。例えば、第１の変形器２１２は、加算器として動作し得、第２の変形器２１２は、乗算器として動作し得る、といった具合である。いくつかの例において、コントローラー１０８は、２つ以上の変形器２１２を含み得るが、変形動作は、バッチマネージャー２０４及び／又は例示的な変形器識別子３０４（図３）によって受信された命令に基づいて異なり得る。例えば、第１のサイクル中には、第１の変形器２１２は加算器として動作し得、第２の変形器２１２は乗算器として動作し得、第２のサイクル中には、第１及び第２の変形器２１２はどちらも乗算器として動作し得る。図２の図示された例において、例示的なバッチマネージャー２０４は、変形器２１２によって実行された変形動作の結果を、対応するプロセスタスクオブジェクトの出力値に格納する。例えば、プロセスタスクオブジェクト４０４（例えば、変形器２１２が乗算器として動作している）が呼び出された場合、バッチマネージャー２０４は、積（例えば、乗算の結果）をプロセスタスクオブジェクト４０４の出力値４２０に格納する。
【００４４】
図１のコントローラー１０８を実装する例示的な手法が図２に示されているが、図２に示された要素、プロセス、及び／又はデバイスの１つ以上は、任意の他の手法で組合せられ、分割され、配列し直され、省略され、除去され、及び／又は実装され得る。・さらに、例示的な外部インターフェース２０２、例示的なバッチマネージャー２０４、例示的なプロセスレシピビルダー２０６、例示的なハードウェアアブストラクター２０８、例示的な値プーラー２１０、例示的な変形器２１２、例示的なデータベース２１４、例示的なテーブルデータベース２１６、例示的なプロセスタスクオブジェクトライブラリー２１８、例示的なプロセスデータベース２２０、及び／又は、より一般的に図１の例示的なコントローラー１０８は、ハードウェア、ソフトウェア、ファームウェア、及び／又は、ハードウェア、ソフトウェア、及び／又はファームウェアの任意の組合せによって実装され得る。・かくして、例えば、例示的な外部インターフェース２０２、例示的なバッチマネージャー２０４、例示的なプロセスレシピビルダー２０６、例示的なハードウェアアブストラクター２０８、例示的な値プーラー２１０、例示的な変形器２１２、例示的なデータベース２１４、例示的なテーブルデータベース２１６、例示的なプロセスタスクオブジェクトライブラリー２１８、例示的なプロセスデータベース２２０、及び／又は、より一般的に例示的なコントローラー１０８のいずれかは、１つ以上のアナログ又はデジタル回路（単数又は複数）、論理回路、プログラマブルプロセッサー（単数又は複数）、特定用途向け集積回路（単数又は複数）（ＡＳＩＣ（単数又は複数））、プログラマブル論理デバイス（単数又は複数）（ＰＬＤ（単数又は複数））、及び／又はフィールドプログラマブル論理デバイス（単数又は複数）（ＦＰＬＤ（単数又は複数））によって実装され得る。・本特許の装置又はシステムの請求項のいずれかを、純粋にソフトウェア及び／又はファームウェアの実装を扱うものと読む場合、例示的な外部インターフェース２０２、例示的なバッチマネージャー２０４、例示的なプロセスレシピビルダー２０６、例示的なハードウェアアブストラクター２０８、例示的な値プーラー２１０、例示的な変形器２１２、例示的なデータベース２１４、例示的なテーブルデータベース２１６、例示的なプロセスタスクオブジェクトライブラリー２１８、及び／又は例示的なプロセスデータベース２２０の少なくとも１つは、ソフトウェア及び／又はファームウェアを記憶する、メモリー、デジタル多用途ディスク（ＤＶＤ）、コンパクトディスク（ＣＤ）、ブルーレイディスク等といった、有形のコンピュータ可読記憶デバイス又は記憶ディスクを含むようにここで明確に定義される。・ さらにまた、図１の例示的なコントローラー１０８は、図２に示されたものに加えて又はその代わりに、１つ以上の要素、プロセス、及び／又はデバイスを含み得、及び／又は、図示された要素、プロセス、及びデバイスのうちの、任意の２つ以上又はすべてを含み得る。
【００４５】
図５は、図２の例示的な値プーラー２１０の例示的な実装のブロック図である。図５の図示された例において、例示的な値プーラー２１０は、例示的なプロセスタスクオブジェクト検索器５０２、例示的なプロセスタスクオブジェクトパーサー５０４、例示的なマップ値デコーダー５０６、例示的な値検索器５０８、及び例示的なプロセスタスクオブジェクトアップデーター５１０を含む。
【００４６】
図５の図示された例において、例示的な値プーラー２１０は、それぞれのプロセスタスクオブジェクトに含まれる入力値を引き出すために例示的なプロセスデータベース２２０（図２）からプロセスタスクオブジェクト（単数又は複数）を検索するための例示的なプロセスタスクオブジェクト検索器５０２を含む。いくつかの例において、プロセスタスクオブジェクト検索器５０２は、プロセスタスクオブジェクトを反復的に検索する。例えば、プロセスタスクオブジェクト検索器５０２は、値プーラー２１０が例示的なプロセスタスクオブジェクト４０２（図４）の処理を完了するまで、例示的なプロセスレシピ４００（図４）の例示的なプロセスタスクオブジェクト４０４（図４）を検索することを遅延させ得る。いくつかの例において、プロセスタスクオブジェクト検索器５０２は、プロセスデータベース２２０から２つ以上のプロセスタスクオブジェクトを検索し、それらをバッファ又はキャッシュといった一時的なストレージに格納し得る。いくつかのそのような例において、プロセスタスクオブジェクト検索器５０２は、プロセスタスクオブジェクトを、さらなる処理のために一時的なストレージから１つずつ検索する。いくつかの例において、プロセスタスクオブジェクト検索器５０２は、プロセスタスクオブジェクトではなく、プロセスタスクオブジェクトに含まれるマップ値を検索し得る。いくつかのそのような例において、プロセスタスクオブジェクト検索器５０２は、マップ値を復号のために例示的なマップ値デコーダー５０６に通信し得る。
【００４７】
図５の図示された例において、例示的な値プーラー２１０は、検索されたプロセスタスクオブジェクトのフィールドをオペランド解析してプロセスタスクオブジェクトに含まれるマップ値を識別するための例示的なプロセスタスクオブジェクトパーサー５０４を含む。例えば、例示的なプロセスタスクオブジェクト４０２のフィールドをオペランド解析しながら、例示的なプロセスタスクオブジェクトパーサー５０４は、入力１のマップ値４０８（図４）（例えば、０２０１）を識別し得る。いくつかの例において、プロセスタスクオブジェクトパーサー５０４は、識別されたマップ値が有効なマップ値であるか否かを決定し得る。例えば、２つのゼロで終わるマップ値は、無効なマップ値を示し得る。いくつかのそのような例において、例示的なプロセスタスクオブジェクトパーサー５０４は、別のマップ値のために検索されたプロセスタスクオブジェクトを解析し得、及び／又は、例示的なプロセスデータベース２２０から別のプロセスタスクオブジェクトを検索するよう例示的なプロセスタスクオブジェクト検索器５０２に通知し得る。
【００４８】
図５の図示された例において、例示的な値プーラー２１０は、識別されたマップ値を復号して入力値のソースロケーションを決定するための例示的なマップ値デコーダー５０６を含む。図５の図示された例において、マップ値デコーダー５０６は、入力値のソースロケーションを、別のプロセスタスクオブジェクト及び／又はプロセス制御デバイスの出力、例示的なテーブルデータベース２１６に含まれるテーブル（例えば、セットポイントテーブル、ルックアップテーブル等）におけるエントリ、バッチマネージャー２０４の出力に、マッピングすることができ、又は何にもマッピングしないことができる。いくつかの例において、マップ値が何にもマッピングされない（例えば、ヌル値、無効なマップ値である等の）場合、対応する入力値のための値は、ユーザーによって提供され得る（例えば、入力される、入れられる等）。
【００４９】
図５の図示された例において、マップ値は４桁の文字列であり、マップ値の最初の２桁はソースタイプを識別する。例えば、マップ値の最初の２桁は、温度センサ（例えば、例示的なプロセスタスクオブジェクト４０２の入力１のマップ値４０８の最初の２桁（０２））、プロセスタスク（例えば、例示的なプロセスタスクオブジェクト４０４の入力１のマップ値４１０の最初の２桁（００））、ルックアップテーブル（例えば、例示的なプロセスタスクオブジェクト４０６の入力２のマップ値４１６の最初の２桁（０９））等といったデバイスタイプを識別し得る。
【００５０】
図５の図示された例において、マップ値の次の２桁は、ソース番号を識別する。いくつかの例において、バイオリアクター制御システムは、２つ以上のデバイスタイプを含み得る。例えば、バイオリアクター制御システム１０４（図１）は、３つのポンプ、４つの温度センサ等を含み得る。いくつかのそのような例において、マップ値の次の２桁は、ある特定の温度センサを識別し（例えば、例示的なプロセスタスクオブジェクト４０２の入力１のマップ値４０８の次の２桁（０１）は、第１の温度センサを識別する）、プロセスタスクオブジェクトを識別し（例えば、例示的なプロセスタスクオブジェクト４０４の入力１のマップ値４１０の次の２桁（０１）は、第１のプロセスタスクオブジェクト（例えば、例示的なプロセスタスクオブジェクト４０２）を識別する）、ルックアップテーブルエントリを識別し得る（例えば、例示的なプロセスタスクオブジェクト４０６の入力２のマップ値４１６の次の２桁（１４）は、ルックアップテーブルにおける１４番目のエントリを識別する）、といった具合である。かくして、いくつかの例において、マップ値の次の２桁がどちらもゼロである場合、マップ値は無効なマップ値である。
【００５１】
図５の図示された例において、例示的な値検索器５０８は、例示的なマップ値デコーダー５０６からの復号されたマップ値を使用して、ソースロケーションから対応する入力値を検索する。例えば、マップ値デコーダー５０６は、プロセスタスクオブジェクト４０４の入力２の値４２２のソースロケーションがルックアップテーブル（例えば、０９）における６番目のエントリ（例えば、０６）であることを識別し得る。かくして、例示的な値検索器５０８は、ルックアップテーブルの６番目のエントリからの値（例えば、１．８）を検索する。図５の図示された例において、例示的な値プーラー２１０は、検索された値を対応する入力フィールドに格納するための例示的なプロセスタスクオブジェクトアップデーター５１０を含む。例えば、プロセスタスクオブジェクトアップデーター５１０は、検索された値をプロセスタスクオブジェクト４０４の入力２の値４２２のフィールドに格納し得る。いくつかの例において、プロセスタスクオブジェクトアップデーターはまた、引き出された値を対応する入力値フィールドに格納した後、例示的なプロセスデータベース２２０を更新し得る。
【００５２】
図２の値プーラー２１０を実装する例示的な手法が図５に示されているが、図５に示された要素、プロセス、及び／又はデバイスの１つ以上は、任意の他の手法で組合せられ、分割され、配列し直され、省略され、除去され、及び／又は実装され得る。・さらに、例示的なプロセスタスクオブジェクト検索器５０２、例示的なプロセスタスクオブジェクトパーサー５０４、例示的なマップ値デコーダー５０６、例示的な値検索器５０８、例示的なプロセスタスクオブジェクトアップデーター５１０、及び／又は、より一般的に図２の例示的な値プーラー２１０は、ハードウェア、ソフトウェア、ファームウェア、及び／又は、ハードウェア、ソフトウェア、及び／又はファームウェアの任意の組合せによって実装され得る。・かくして、例えば、例示的なプロセスタスクオブジェクト検索器５０２、例示的なプロセスタスクオブジェクトパーサー５０４、例示的なマップ値デコーダー５０６、例示的な値検索器５０８、例示的なプロセスタスクオブジェクトアップデーター５１０、及び／又は、より一般的に例示的な値プーラー２１０のいずれかは、１つ以上のアナログ又はデジタル回路（単数又は複数）、論理回路、プログラマブルプロセッサー（単数又は複数）、特定用途向け集積回路（単数又は複数）（ＡＳＩＣ（単数又は複数））、プログラマブル論理デバイス（単数又は複数）（ＰＬＤ（単数又は複数））、及び／又はフィールドプログラマブル論理デバイス（単数又は複数）（ＦＰＬＤ（単数又は複数））によって実装され得る。・本特許の装置又はシステムの請求項のいずれかを、純粋にソフトウェア及び／又はファームウェアの実装を扱うものと読む場合、例示的なプロセスタスクオブジェクト検索器５０２、例示的なプロセスタスクオブジェクトパーサー５０４、例示的なマップ値デコーダー５０６、例示的な値検索器５０８、及び／又は例示的なプロセスタスクオブジェクトアップデーター５１０の少なくとも１つは、ソフトウェア及び／又はファームウェアを記憶する、メモリー、デジタル多用途ディスク（ＤＶＤ）、コンパクトディスク（ＣＤ）、ブルーレイディスク等といった、有形のコンピュータ可読記憶デバイス又は記憶ディスクを含むようにここで明確に定義される。・ さらにまた、図２の例示的な値プーラー２１０は、図５に示されたものに加えて又はその代わりに、１つ以上の要素、プロセス、及び／又はデバイスを含み得、及び／又は、図示された要素、プロセス、及びデバイスのうちの、任意の２つ以上又はすべてを含み得る。
【００５３】
図１及び／又は図２のコントローラー１０８を実装するための例示的な機械可読命令を表すフローチャートが、図６に示される。図２及び／又は図５の値プーラー２１０を実装するための例示的な機械可読命令を表すフローチャートが、図７に示される。これらの例において、機械可読命令は、図１０に関連して後述される例示的なプロセッサープラットフォーム１０００に示されるプロセッサー１０１２のようなプロセッサーによる実行のためのプログラムを備える。プログラムは、ＣＤ−ＲＯＭ、フロッピー(登録商標）ディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、ブルーレイディスク、又はプロセッサー１０１２に関連づけられたメモリーといった有形のコンピュータ可読記憶媒体に格納されたソフトウェアで具体化され得るが、プログラム全体及び／又はその一部は、あるいは、プロセッサー１０１２以外のデバイスによって実行され得、及び／又は、ファームウェア又は専用ハードウェアで具体化され得る。さらに、例示的なプログラムは図６及び／又は図７に示されたフローチャートを参照して説明されるが、例示的なコントローラー１０８及び／又は値プーラー２１０を実装する多くの他の方法が代わりに使用されることもできる。例えば、ブロックの実行の順序は変更されることができ、及び／又は、説明されるブロックのいくつかは、変更され、除去され、又は組合せられることができる。
【００５４】
上述されたように、図６及び／又は図７の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリー、読み取り専用メモリー（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリー（ＲＡＭ）、及び／又は、情報が任意の持続時間にわたって（例えば、長い時間期間にわたって、永久的に、短時間のインスタンスのために、一時的なバッファのために、及び／又は情報のキャッシュのために）格納される、任意の他の記憶デバイス又は記憶ディスクといった有形のコンピュータ可読記憶媒体に格納された、コード化された命令（例えば、コンピュータ及び／又は機械可読命令）を使用して実装され得る。・ 本明細書において使用される場合、有形のコンピュータ可読記憶媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び／又は記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するよう、明確に定義される。本明細書において使用される場合、「有形のコンピュータ可読媒体」及び「有形の機械可読記憶媒体」は、区別なく使用される。加えて又はあるいは、図６及び／又は図７の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリー、読み取り専用メモリー、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリー、及び／又は、情報が任意の持続時間にわたって（例えば、長い時間期間にわたって、永久的に、短時間のインスタンスのために、一時的なバッファのために、及び／又は情報のキャッシュのために）格納される、任意の他の記憶デバイス又は記憶ディスクといった非一時的なコンピュータ及び／又は機械可読媒体に格納された、コード化された命令（例えば、コンピュータ及び／又は機械可読命令）を使用して実装され得る。・ 本明細書において使用される場合、非一時的なコンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び／又は記憶ディスクを含み、伝搬信号を除外し、伝送媒体を除外するよう、明確に定義される。本明細書において使用される場合、「少なくとも」という語句が請求項の前文における移行句として使用される場合、それは、「備える」という用語がオープンエンドであるのと同様にオープンエンドである。
【００５５】
図６のプログラムは、ブロック６０２で、例示的なプロセスレシピビルダー２０６（図２）が、構成されたプロセスにおけるプロセスタスクを識別すると始まる。例えば、構成されたプロセスに対応するプロセスレシピを構築しながら、プロセスレシピビルダー２０６は、基本プロセスタスク（例えば、乗算プロセスタスク、加算プロセスタスク等）を識別し得る。ブロック６０４で、例示的なプロセスレシピビルダー２０６が、例示的なプロセスタスクオブジェクトライブラリー２１８（図２）が、識別されたプロセスタスクに対応するテンプレートを含むか否かを決定する。例えば、識別されたプロセスタスクは、予め構成されたプロセスタスク又は特定のバイオリアクター制御システムにおける使用のために定義されたユーザー定義プロセスタスクであり得る。例示的なプロセスレシピビルダー２０６が、プロセスタスクオブジェクトライブラリー２１８が、識別されたプロセスタスクのためのテンプレートを含まないと決定する（ブロック６０４）（例えば、プロセスタスクがユーザー定義プロセスタスクである）場合、制御は、ブロック６０６へと進み、ユーザー定義プロセスタスクに対応するプロセスタスクオブジェクトを検索する。例えば、ユーザーは、例示的なユーザーインターフェースプロセッサー１０２（図１）を介して例示的なワークステーション１０６（図１）に表示されたユーザーインターフェースを介してユーザー定義プロセスタスクのためのプロセスタスクオブジェクトを定義するように促され得る。
【００５６】
そうでなければ、ブロック６０４で、例示的なプロセスレシピビルダー２０６が、プロセスタスクオブジェクトライブラリー２１８がプロセスタスクのためのテンプレートを含むと決定する場合、又は、ユーザー定義プロセスタスクオブジェクトがブロック６０６で検索された後、続いて、ブロック６０８では、例示的なプロセスレシピビルダー２０６が、構成されたプロセスに基づいてプロセスタスクオブジェクト（単数又は複数）の入力マップ値フィールドにデータ投入する。例えば、プロセスレシピビルダー２０６は、第１のプロセスタスクオブジェクトが第２のプロセスタスクオブジェクトの出力を使用することを決定し得る。かくして、プロセスレシピビルダー２０６は、第２のプロセスタスクオブジェクトの出力を示すソースロケーション（例えば、マップ値）を、第１のプロセスタスクオブジェクトの対応する入力マップ値フィールドに格納し得る。
【００５７】
ブロック６１０で、例示的なプロセスレシピビルダー２０６は、構成されたプロセスが別のプロセスタスクを含むか否かを決定する。例示的なプロセスレシピビルダー２０６が、構成されたプロセスが別のプロセスタスクを含むと決定する場合、制御は、ブロック６０４へと戻り、例示的なプロセスタスクオブジェクトライブラリー２１８が識別されたプロセスタスクに対応するテンプレートを含むか否かを決定する。そうでなければ、制御はブロック６１２へと進み、例示的なバッチマネージャー２０４（図２）が、例示的なプロセスデータベース２２０（図２）におけるプロセスレシピが呼び出されるか否かを決定する。バッチマネージャー２０４がブロック６１２でプロセスデータベース２２０におけるプロセスレシピが呼び出されることを決定する場合には、ブロック６１４で、バッチマネージャー２０４が、例示的なバイオリアクター制御システム１０４のプロセス制御デバイス１１２（図１）と例示的なコントローラー１０８（図１）との間の通信を起動する。例えば、バッチマネージャー２０４は、例示的なハードウェアアブストラクター２０８（図２）を起動し得る。結果として、ハードウェアアブストラクター２０８は、プロセス制御デバイス１１２の出力値を、コントローラー１０８によって受信され、処理されることができる通信へと翻訳し始め、プロセスタスクオブジェクトの出力値を、プロセス制御デバイス１１２によって受信され、処理されることができる通信へと変換し始め得る。
【００５８】
ブロック６１６で、例示的な値プーラー２１０（図２）が、対応するマップ値を使用して入力値を引き出し、呼び出されたプロセスレシピ（例えば、例示的なレシピ２２２（図２）及び／又は例示的なレシピ４００（図４））に含まれるプロセスタスクオブジェクトの入力値フィールド（単数又は複数）にデータ投入する。ブロック６１６を実現するために使用され得る本明細書に開示される例示的なプロセスは、図７に関連して以下に説明される。ブロック６１８で、例示的なバッチマネージャー２０４が、呼び出されたプロセスを実行し続けるか否かを決定する。バッチマネージャー２０４が呼び出されたプロセスを実行し続けると決定した場合、制御は、ブロック６１６へと戻り、プロセスタスクオブジェクト（単数又は複数）の入力値フィールド（単数又は複数）にデータ投入し続ける。そうでなければ、ブロック６１８で、バッチマネージャー２０４が（例えば、プロセス制御シャットダウンイベント、バイオリアクターシャットダウンイベント等に起因して）呼び出されたプロセスを実行し続けないことを決定した場合、図６の例示的なプロセスは終了する。
【００５９】
図７のプログラムは、呼び出されたプロセスレシピ（例えば、例示的なレシピ２２２（図２）及び／又は例示的なレシピ４００（図４））に含まれるプロセスタスクオブジェクトの入力マップ値フィールドにデータ投入する例示的な方法を示す。図７の例示的なプログラムは、図６のブロック６１６を実現するために使用され得る。図７のプログラムは、ブロック７０２で、例示的な値プーラー２１０（図２）が例示的なプロセスデータベース２２０（図２）からプロセスタスクオブジェクトを検索すると始まる。例えば、例示的なプロセスタスクオブジェクト検索器５０２（図５）が、例示的なプロセスレシピ４００（図４）の例示的なプロセスタスクオブジェクト４０２を検索し得る。ブロック７０４で、例示的な値プーラー２１０が、検索されたプロセスタスクオブジェクトのフィールドをオペランド解析して、マップ値を識別する。例えば、例示的なプロセスタスクオブジェクトパーサー５０４（図５）が、プロセスタスクオブジェクト４０４の入力２のマップ値４１２（例えば、０９０６）を識別し得る。
【００６０】
ブロック７０６で、例示的な値プーラー２１０が、識別されたマップ値が有効なマップ値であるか否かを決定する。例えば、マップ値は、ヌル値又はゼロ番のデバイスに対応し得る。例示的なプロセスタスクオブジェクトパーサー５０４が、識別されたマップ値が有効でないと決定した場合には、制御は、ブロック７１４へと進み、検索されたプロセスタスクオブジェクトが別のマップ値を含むか否かを決定する。
【００６１】
そうでなければ、ブロック７０６で、例示的なプロセスタスクオブジェクトパーサー５０４が、マップ値が有効なマップ値であると決定した場合には、ブロック７０８で、例示的な値プーラー２１０が、識別されたマップ値を復号して、識別されたマップ値に対応する入力値のソースロケーションを識別する。例えば、例示的なマップ値デコーダー５０６（図５）が、入力２のマップ値４１２の最初の２桁（例えば、０９）を使用して、ソースタイプ（例えば、ルックアップテーブル）を識別し得る。例示的なマップ値デコーダー５０６は続いて、入力２のマップ値４１２の次の２桁（例えば、０６）を使用して、ソース番号（例えば、６番目のエントリ）を識別し得る。かくして、例示的なマップ値デコーダー５０６は、プロセスタスクオブジェクト４０４の入力２の値４２２のソースロケーションとしてルックアップテーブルにおける６番目のエントリを識別する。ブロック７１０で、例示的な値プーラー２１０が、識別されたソースロケーションから入力値を検索する。例えば、例示的な値検索器５０８（図５）が、復号されたマップ値を使用して、ルックアップテーブルにおける６番目のエントリに格納された値（例えば、１．８）を検索し得る。
【００６２】
ブロック７１２で、例示的な値プーラー２１０が、検索された値を、プロセスタスクオブジェクトの対応する入力フィールドに格納する。例えば、プロセスタスクオブジェクトアップデーター５１０（図５）が、検索された値（例えば、１．８）を、プロセスタスクオブジェクト４０４の入力２の値フィールド４２２に格納し得る。いくつかの例において、プロセスタスクオブジェクトアップデーター５１０はまた、更新されたプロセスタスクオブジェクトによって例示的なプロセスデータベース２２０を更新し得る。ブロック７１２で、例示的なプロセスタスクオブジェクトアップデーター５１０が検索された値を格納した後、又は、ブロック７０６で、識別されたマップ値が有効なマップ値でない場合には、ブロック７１４で、例示的な値プーラー２１０が、プロセスタスクオブジェクトが別のマップ値を含むか否かを決定する。例えば、プロセスタスクオブジェクトパーサー５０４が検索されたプロセスタスクオブジェクトが別のマップ値を含むと決定した場合には、制御は、ブロック７０６へと戻り、マップ値が有効であるか否かを決定する。そうでなければ、制御は、図６の例示的なプログラムのような呼び出し関数又はプロセスへと戻り、図７の例示的なプロセスは終了する。
【００６３】
ユーザーが、細菌を培養するために、バイオリアクター制御システムのプロセス制御デバイスの構成を定義し、定義された機器に対するレシピを構築する例を考える。例えば、ユーザーは、酸性環境を必要とする第１の細菌と塩基性環境を必要とする第２の細菌とを培養することを所望し得る。図８は、例示的なバイオリアクター＿０１［０１］において酸性環境を維持するための例示的なプロセスタスクオブジェクト８０２、８０４、８０６、８０８、８１０を含む例示的なプロセスレシピビルダー２０６（図２）で生成された例示的なプロセスレシピ８００を示す。図９は、例示的なバイオリアクター＿０１［０１］において塩基性環境を維持するために例示的なプロセスレシピビルダー２０６で生成された例示的なプロセスレシピ９００を示す。図示された例の例示的なプロセスレシピ８００、９００（例えば、ｐＨ制御ループ）は、例示的なバイオリアクター＿０１［０１］のｐＨレベルを維持するためにバッチマネージャー（図２）によって呼び出され得る。例えば、プロセスレシピ８００を実行しながら、ｐＨコントローラー（例えば、ｐＨコントローラー＿０５［０４］）は、バイオリアクター＿０１［０１］の検出されたｐＨレベルに基づいて、酸吐出ポンプ＿１７［１０］の出力を調節し得る。図８及び／又は図９の図示された例において、デバイス名の後の最初の２桁（例えば、０１、０５、又は１７）は、デバイスタイプ（例えば、それぞれ、バイオリアクター、コントローラー、ポンプ）を識別し、ブラケット内の次の２桁（例えば、０１、０４、１０、又は２３）は、バイオリアクター制御システム内のデバイス番号（例えば、それぞれ、第１のバイオリアクター、第４のコントローラー、１０番目のポンプ、２３番目のポンプ）を識別する。
【００６４】
図８の図示された例において、例示的なプロセスタスクオブジェクト８０２、８０４は、検索プロセスタスクである。すなわち、プロセスタスクオブジェクト８０２、８０４における変形器（例えば、検索器）は、マップ値に対応する出力値を引き出すことによって、値を検索する。例えば、プロセスタスクオブジェクト８０２は、入力１のマップ値８１２（例えば、例示的なバイオリアクター＿０１［０１］）に対応する出力値（例えば、ｐＨサンプル）を引き出す。いくつかのそのような例において、例示的な値プーラー２１０（図２）は、例えば、例示的なバイオリアクター＿０１［０１］に結合されたｐＨセンサの出力値を引き出し、プロセスタスクオブジェクト８０２の対応する値（例えば、入力１の値）を格納する。図示された例のプロセスタスクオブジェクト８０４は、入力１のマップ値８１４（例えば、セットポイントテーブル＿０９［１３］）に対応する出力値（例えば、ｐＨレベルのセットポイント）を引き出す。いくつかのそのような例において、例示的な値プーラー２１０は、例えば、セットポイントテーブルにおける１３番目のエントリ＿０９［１３］の出力値を引き出し、プロセスタスクオブジェクト８０４の対応する値（例えば、入力１の値）を格納する。かくして、例示的なプロセスタスクオブジェクト８０２、８０４は、同一の変形器（例えば、検索器）を使用して、それぞれの入力１の値のためのマップ値のみを変更してそれらのそれぞれの動作を行い得る。図示された例において、プロセスタスクオブジェクト８０２、８０４の入力１の値はまた、それぞれ、出力値８１３、８１５として書き込まれる。
【００６５】
図８の図示された例において、例示的なプロセスタスクオブジェクト８０６は、比較プロセスタスクである。すなわち、例示的なプロセスタスクオブジェクト８０６における変形器（例えば、比較器）が、２つの値を比較し、その比較に基づいて値を出力する。例えば、ｐＨコントローラー＿０５［０４］が、バイオリアクター＿０１［０１］からのｐＨサンプル値をセットポイントテーブル＿０９［１３］におけるｐＨレベルのセットポイント値と比較し得る。いくつかのそのような例において、第１の反復中、例示的な値プーラー２１０は、プロセスタスクオブジェクト８０２の出力値（例えば、入力１のマップ値８１６）を引き出し、第２の反復中、例示的な値プーラー２１０は、プロセスタスクオブジェクト８０４の出力値（例えば、入力１のマップ値８１７）を引き出す。図８の図示された例において、比較器変形器は、比較結果に基づいて制御値（例えば、出力値８１８）を格納する。
【００６６】
いくつかの例において、プロセスタスクオブジェクト８０２、８０４、８０６は、単一のプロセスタスクオブジェクトへと組合せられ得る。例えば、入力１のマップ値８１６がバイオリアクター＿０１［０１］のｐＨレベルを検索したプロセスタスクオブジェクト８０２にマッピングする代わりに、プロセスタスクオブジェクト８０６の入力１のマップ値は、バイオリアクター＿０１［０１］にマッピングし得る。加えて、入力２のマップ値８１７は、プロセスタスクオブジェクト８０４の出力値ではなく、プロセスタスクオブジェクト８０４において検索された、セットポイント値＿０９［１３］にマッピングし得る。
【００６７】
図８の図示された例において、例示的なプロセスタスクオブジェクト８０８は、出力修正変更プロセスタスクである。すなわち、例示的なプロセスタスクオブジェクト８０８における変形器（例えば、出力修正変更器）は、例えばポンプによって出力される、流体流量を修正変更する。例えば、酸吐出ポンプ＿１７［１０］は、コントローラーからの制御値に応答して酸出力の量を変え得る。いくつかのそのような例において、例示的な値プーラー２１０は、プロセスタスクオブジェクト８０６の出力値（例えば、入力１のマップ値８２０）を引き出し、それに応じて酸出力の量を修正変更する。図８の図示された例において、出力修正変更器変形器は、例示的なプロセスレシピ８００の出力値８２１のフィールドに、出力される酸の修正変更された量を格納する。
【００６８】
図８の図示された例において、例示的なプロセスタスクオブジェクト８１０は、流体流量入力プロセスタスクである。例えば、バイオリアクター＿０１［０１］は、例示的な酸吐出ポンプ＿１７［１０］からの酸の流体流量を入力する。いくつかのそのような例において、例示的な値プーラー２１０は、酸の流体流量の入力を決定するために、プロセスタスクオブジェクト８０８の出力値（例えば、入力１のマップ値８２２）を引き出す。図８の図示された例において、例示的なバイオリアクター＿０１［０１］は、例示的なプロセスレシピ８００の出力値フィールド８２３に、（例えば、吐出される）酸入力量を格納する。
【００６９】
かくして、図８の図示された例では、例示的なプロセスレシピ８００は、酸性環境でのバイオリアクター＿０１［０１］のｐＨレベルを維持するために、バイオリアクター制御システムにおいて使用され得る。
【００７０】
図９は、例示的なプロセスタスクオブジェクト９０２、９０４、９０６、９０８、９１０を含む例示的なプロセスレシピビルダー２０６で生成された例示的なプロセスレシピ９００を示す。図９の図示された例では、ｐＨコントローラー＿０５［０４］が、バイオリアクター＿０１［０１］の検出されたｐＨレベルに基づいて、塩基吐出ポンプ＿１７［２３］の出力を調節し得る。かくして、例示的なプロセスレシピ８００がバイオリアクター制御システムの第１の構成（例えば、ｐＨコントローラー＿０５［０４］と酸吐出ポンプ＿１７［１０］とに結合された例示的なバイオリアクター＿０１［０１］）に対応する一方で、例示的なプロセスレシピ９００は、バイオリアクター制御システムの第２の構成（例えば、ｐＨコントローラー＿０５［０４］と塩基吐出ポンプ＿１７［２３］とに結合された例示的なバイオリアクター＿０１［０１］）に対応する。
【００７１】
図９の図示された例において、例示的なプロセスタスクオブジェクト９０２、９０６、９０８は、図８の対応するプロセスタスクオブジェクト８０２、８０６、８０８と同一である。すなわち、例示的なプロセスタスクオブジェクト９０２は、例示的なバイオリアクター＿０１［０１］のｐＨサンプル値を検索し、例示的なプロセスタスクオブジェクト９０６は、２つの以前のプロセスタスクオブジェクト（例えば、プロセスタスクオブジェクト９０２、９０４）の出力値を比較し、例示的なプロセスタスクオブジェクト９０８は、ポンプによって出力される流体の量を修正変更する。
【００７２】
図９の図示された例において、例示的なプロセスタスクオブジェクト９０４は、検索プロセスタスクオブジェクトである。しかしながら、例示的なプロセスタスクオブジェクト８０４（図８）とは異なり、例示的なプロセスタスクオブジェクト９０４の検索器変形器は、塩基性環境のためのｐＨセットポイント値を検索する。すなわち、例示的な値プーラー２１０（図２）は、入力１のマップ値９１２に対応する出力値（例えば、セットポイントテーブル＿０９［２３］）を引き出し、引き出された値を例示的なプロセスレシピ９００の出力値フィールド９１３に格納する。
【００７３】
図９の図示された例において、例示的なプロセスタスクオブジェクト９１０は、流体流量入力プロセスタスクである。しかしながら、例示的なプロセスタスクオブジェクト８１０（図８）とは異なり、バイオリアクター＿０１［０１］は、例示的な塩基吐出ポンプ＿１７［２３］からの塩基流体流量を入力する。いくつかのそのような例において、例示的な値プーラー２１０は、塩基の流体流量の入力を決定するために、プロセスタスクオブジェクト９０８の出力値（例えば、入力１のマップ値９１４）を引き出す。図９の図示された例において、例示的なバイオリアクター＿０１［０１］は、例示的なプロセスレシピ９００の出力値フィールド９１５に、（例えば、吐出される）塩基入力量を格納する。
【００７４】
かくして、例示的なプロセスレシピ８００及び９００はどちらも、例示的なバイオリアクター＿０１［０１］の所望のｐＨレベルを維持する。しかしながら、例示的な両プロセスレシピ８００及び９００は、異なるバイオリアクター制御システム構成によってこのタスクを達成する。結果として、ユーザーがソースコードを書き換えて構成を変更するのではなく、本明細書に開示される例は、対応するプロセスタスクオブジェクトの入力マップ値を変更することによって、バイオリアクター制御システム構成を変更することができる。すなわち、図８の第１の構成を図９の第２の構成に変更するために、プロセスタスクオブジェクトで、入力値を引き出す入力マップ値が変更される。例えば、バイオリアクター＿０１［０１］のｐＨレベルが酸性であるか否かをチェックするために、例示的な値プーラー２１０は、酸性のセットポイント値に対応するセットポイント値（例えば、セットポイントテーブル＿０９［１３］の値）を引き出し、バイオリアクター＿０１［０１］のｐＨレベルが塩基性であるか否かをチェックするために、例示的な値プーラー２１０は、塩基性のセットポイント値に対応するセットポイント値（例えば、セットポイントテーブル＿０９［２３］の値）を引き出す。かくして、バイオリアクター制御システムの構成変更の実装を待つのではなく、例示的な値プーラー２１０は、構成変更を迅速に行うことによってフレキシブルなバイオリアクター制御システム構成を可能にする。これは、設備において使い捨て機器を使用する場合に特に有利であり得る。例えば、設備は、構成のためのソースコードを書き換える代わりに、使い捨て機器を置き換え、マップ値を更新することによって、第１の製品を生産することから第２の製品を生産することへと迅速に切り替わることができる。
【００７５】
未知の機器がバイオリアクター制御システムにおいて使用される例を考える。例えば、ユーザーは、未知のコンポーネント（例えば、ある特定の手法で情報を処理するためにユーザーによって設計された特定のコンポーネント、未知の特性を有するブランド及び／又はスタイルのコンポーネント等）をバイオリアクター制御システムにおけるポンプに結合することを所望し得る。いくつかのそのような例において、ユーザーは、流量センサのような未知のコンポーネントをバイオリアクター制御システムにおけるバイオリアクターの予備又は補助の入力に結合し得る。ユーザーは続いて、未知のコンポーネントの単位から既知のコンポーネントの期待される単位への単位変換を可能にする変形オブジェクト（例えば、ルックアップテーブル）を作成し得る。例えば、変形オブジェクトは、未知の流量センサのスケール範囲を、ポンプによって期待される単位へと変換し得る。いくつかのそのような例において、バイオリアクター制御システムのためのプロセスレシピは、流量センサから値を検索するための例示的な第１のプロセスタスクオブジェクト、流量センサからの値をポンプのための値に変換するための例示的な第２のプロセスタスクオブジェクト、変換された値をポンプに検索させるための第３のプロセスタスクオブジェクトを含み得る。
【００７６】
動作において、例示的な第１のプロセスタスクオブジェクトの入力１のマップ値は、値プーラーに流量センサの出力値を検索させ得る。例示的な第２のプロセスタスクオブジェクトは、例示的な第１のプロセスタスクオブジェクトの出力値（例えば、流量センサの出力値）を、変形オブジェクトによる使用のために値プーラーに引き出すための、入力１のマップ値を含み得る。例示的な第３のプロセスタスクオブジェクトは、第２のプロセスタスクオブジェクトの出力値（例えば、変形オブジェクトによって変換された値）を、ポンプによる使用のために値プーラーに引き出すための、入力１のマップ値を含み得る。このように、値プーラーは、未知のコンポーネントを含むバイオリアクター制御システムのためのカスタムソフトウェアを書かずに、バイオリアクター制御システムにおける未知のコンポーネントの使用を可能にする。
【００７７】
図１０は、図１及び／又は図２のコントローラー１０８を実装する図６の命令、及び／又は、図２及び／又は図５の値プーラー２１０を実装する図７の命令を実行することができる、例示的なプロセッサープラットフォーム１０００のブロック図である。プロセッサープラットフォーム１０００は、例えば、サーバ、パーソナルコンピュータ、モバイルデバイス（例えば、携帯電話、スマートフォン、ｉＰａｄ（商標）のようなタブレット）、携帯情報端末（ＰＤＡ）、インターネット家電、又は任意の他のタイプのコンピューティングデバイスであり得る。
【００７８】
図示された例のプロセッサープラットフォーム１０００は、プロセッサー１０１２を含む。図示された例のプロセッサー１０１２は、ハードウェアである。例えば、プロセッサー１０１２は、任意の所望の家族又は製造業者から１つ以上の集積回路、論理回路、マイクロプロセッサー、又はコントローラーによって実装され得る。
【００７９】
図示された例のプロセッサー１０１２は、ローカルメモリー１０１３（例えば、キャッシュ）を含む。図示された例のプロセッサー１０１２は、バス１０１８を介して揮発性メモリー１０１４と不揮発性メモリー１０１６とを含むメインメモリーと通信する。揮発性メモリー１０１４は、シンクロナスダイナミックランダムアクセスメモリー（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリー（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミックランダムアクセスメモリー（ＲＤＲＡＭ）、及び／又は任意の他のタイプのランダムアクセスメモリーデバイスによって実装され得る。不揮発性メモリー１０１６は、フラッシュメモリー及び／又は任意の他の所望のタイプのメモリーデバイスによって実装され得る。メインメモリー１０１４、１０１６へのアクセスは、メモリーコントローラーによって制御される。
【００８０】
図示された例のプロセッサープラットフォーム１０００はまた、インターフェース回路１０２０を含む。インターフェース回路１０２０は、イーサネット（登録商標）インターフェース、ユニバーサルシリアルバス（ＵＳＢ）、及び／又はＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのような任意のタイプのインターフェース標準によって実装され得る。
【００８１】
図示された例において、１つ以上の入力デバイス１０２２が、インターフェース回路１０２０に接続される。入力デバイス（単数又は複数）１０２２はユーザーに、プロセッサー１０１２にデータ及びコマンドを入れることを可能にさせる。入力デバイス（単数又は複数）は、例えば、オーディオセンサ、マイクロフォン、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント、及び／又は音声認識システムによって、実装され得る。
【００８２】
１つ以上の出力デバイス１０２４もまた、図示された例のインターフェース回路１０２０に接続される。出力デバイス１０２４は、例えば、ディスプレイデバイス（例えば、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ、陰極線管ディスプレイ（ＣＲＴ）、タッチスクリーン、触覚出力デバイス、発光ダイオード（ＬＥＤ）、プリンタ、及び／又はスピーカー）によって実装され得る。図示された例のインターフェース回路１０２０は、かくして、典型的には、グラフィックスドライバカード、グラフィックスドライバチップ、又はグラフィックスドライバプロセッサーを含む。
【００８３】
図示された例のインターフェース回路１０２０はまた、ネットワーク１０２６（例えば、イーサネット（登録商標）接続、デジタル加入者回線（ＤＳＬ）、電話線、同軸ケーブル、セルラー電話システム等）を介した外部の機械（例えば、任意の種類のコンピューティングデバイス）とのデータの交換を容易にするための、送信機、受信機、トランシーバ、モデム、及び／又はネットワークインターフェースカードのような通信デバイスを含む。
【００８４】
図示された例のプロセッサープラットフォーム１０００はまた、ソフトウェア及び／又はデータを記憶するための１つ以上の大容量記憶デバイス１０２８を含む。そのような大容量記憶デバイス１０２８の例は、フロッピー(登録商標）ディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、ＲＡＩＤシステム、及びデジタル多用途ディスク（ＤＶＤ）ドライブを含む。
【００８５】
図６及び／又は図７のコード化された命令１０３２が、大容量記憶デバイス１０２８、揮発性メモリー１０１４、不揮発性メモリー１０１６、及び／又は、ＣＤ又はＤＶＤのような取り外し可能な有形のコンピュータ可読記憶媒体に記憶され得る。
【００８６】
以上のことから、上に開示された方法、装置、及び製造物品は、任意のデバイスの出力（単数又は複数）を任意の他のデバイスの入力（単数又は複数）に論理的に接続することにおける増大したフレキシビリティを可能にする、ということが理解されるであろう。さらに、本明細書に開示された例は、ソースコードの代わりに入力マップ値を変更することによって制御システムの改善された再構成を可能にする。
【００８７】
本特許は、２０１２年９月１４日に出願され、その全内容が引用により本明細書に組み込まれる、米国仮出願番号第６１／７０１，２０７号からの優先権を主張する、ということに注意する。
【００８８】
ある特定の例示的な方法、装置、及び製造物品が本明細書に開示されているが、本特許の適用範囲は、それらに限定されない。そればかりでなく、本特許は、本特許の特許請求の範囲内に公正に含まれるすべての方法、装置、及び製造物品を扱う。
【図１Ａ】
0006647709.tif 000002
【図１Ｂ】
0006647709.tif 000003
【図２】
0006647709.tif 000004
【図３】
0006647709.tif 000005
【図４】
0006647709.tif 000006
【図５】
0006647709.tif 000007
【図６】
0006647709.tif 000008
【図７】
0006647709.tif 000009
【図８】
0006647709.tif 000010
【図９】
0006647709.tif 000011
【図１０】
0006647709.tif 000012