説明

マルチレベルコントローラシステム

図5のレベル化されたシステムアーキテクチャ(100)は、互いに制御し合い、最終的にはシステムコンポーネントを制御するマルチレベルプロセッサ及び(又は)コントローラを有する。ホストレベルコントローラ(56)は、ホストプロセッサを含み、レベル−1コントローラ(52)は、マスターコントローラを含み、レベル−2コントローラ(54)は、4つのコントローラ(54a,54b,54c,54d)を含み、レベル−3コントローラは、レベル−2コントローラとシステムコンポーネントとの間のインタフェースを取る1以上のコントローラを含む。モータ、ポンプ及び弁は、レベル−3コントローラによって制御され、レベル−3コントローラは、Cでプログラムされており、代表的には、プロセッサエンジニアが第2及びレベル−2コントローラの動作を制御するために接近する状態記録のように可変ではなく、システムは、実行される1組の状態を識別し、1組の状態中の現在の状態を実行するのに出される必要のある状態コマンドを出すことによりプロセスを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、米国仮特許出願第60/427,445号及び米国仮特許出願第60/427,527号についての35USC§119(e)に基づく権益主張出願であり、これら米国特許出願明細書の記載内容を参照により引用する。
発明の分野
本発明は一般に、状態機械アーキテクチャに関し、特に、希釈流体サンプル中の粒子を分析する方法及びシステムに関する。
【背景技術】
【0002】
発明の背景
大抵のプロセスは、物理的に且つ時間的に一貫した仕方で互いに適合する幾つかのプロセスセグメントから成っている。例えば、流体制御及び画像化システム、例えば検尿システムは、サンプルを受け入れ、サンプルを吸引し、サンプルを流体系中へ注入するプロセスセグメントを有し、流体系において、サンプルが適正な仕方で流れているときに画像を撮る。有意なデータを生じさせるためには、サンプル容器、吸引器、弁、ポンプ及び光学部品は、適正な時期に適正な位置になければならず、種々の流体は、適正な時期に放出されなければならない。代表的には、これらプロセスセグメントは、ソフトウェア又はファームウェア中の命令に従って単一のプロセッサによりリアルタイム方式で制御される。命令は通常、「ハードコード化」分岐条件を考慮することにより種々の入力への応答を必要とする。この種の「ハードコード化」分岐は、“CASE文(場合分け文)”の形態で起こり、この場合、各ケースは、状態に対応し、比較的複雑な“IF文”は、所与の状態の場合における入力への応答を定める。
【0003】
この種のリアルタイム動作では、プロセスセグメントは、全て完全に同時には起こらない。例えば、フローセルに洗浄溶液をフラッシングしているときにそれと同時にサンプルを受け取って吸引できるが、吸引及びフラッシングは、終了するまでの時間の長さは互いに異なり、したがって、同時に開始して同時に終了することはない。さらに、これらプロセスの各々が終了するまでにかかる時間がどれぐらいの長さであるかは、常に正確に予測できるとは限らない。というのは、プロセスは、ランダムな要素(例えば、サンプル濃度が一定数の画像を捕捉するのに必要な時間を定めることになる)又は突発的な予定外の事態、例えば吸引針がつっかえて動かなくなった事態又は洗浄流体が正確に輸注されていない事態を有する場合があるからである。プロセスが成功するかどうかは、各プロセスセグメントがスムーズに動作するかどうかにかかっており、この種の突発的な予定外の事態は、もしその事態が正しく取り扱われなければ、プロセスセグメントを混乱させるだけでなくプロセスラン全体を無駄な努力にしてしまう。さらに、ランが間違っていることがいったん判定されると問題解決(トラブルシューティング)と関連した余分の非効率性が生じる。というのは、どのプロセスセグメントが或る特定の時点において進行していたかを正確に知ることは困難だからである。
【0004】
単一プロセッサ型ハードコード化リアルタイムコントローラと関連した上述の欠点に加えて、プロセスエンジニアがソフトウェアエンジニアと協力してプロセスパラメータを調整することが必要であることに起因して追加の非効率源がある。プロセスエンジニアはプロセスを理解してコンポーネントをどのように設定すべきかを知っているが、プロセスの実行には通常、ソフトウェアエンジニアが必要である。かくして、典型的には、プロセスエンジニアは、プロセスを説明し、自分が達成して欲しいことをプログラマーに説明しなければならず、プログラマーは、コードを工夫する。このプロセスエンジニアとソフトウェアエンジニアの通信リンクには時間がかかるだけでなく伝達不十分(誤った伝達)又は理解不足(誤った理解)に基づく誤差の恐れが多く生じる。
上述の理由で、プロセスをより効率的に制御する方法が望ましい。
【発明の開示】
【課題を解決するための手段】
【0005】
発明の概要
本発明は、コントローラのマルチレベルを有するシステム(例えば、検尿システム)である。このシステムは、第1レベル状態のシーケンスで動作する少なくとも1つのレベル−1コントローラを有する第1の制御レベルを有し、第1の制御レベルは、第1レベル状態のうちの1つと関連した第1レベルコマンドを発生する。このシステムは、第1レベルコマンドに応答して第2レベル状態のシーケンスで動作する少なくとも1つのレベル−2コントローラを有する第2の制御レベルを更に含む。レベル−2コントローラは、第2レベル状態のうちの1つで定められたレベル−2状態が第2レベル状態で実現されると、状態報告を第1の制御レベルに送る。
【0006】
本発明は又、プロセスを実行する方法に関する。この方法は、実行されるべき第1レベル状態のシーケンスを識別する段階、第1レベル状態のうちの1つに関連付けられた第1レベルコマンドをレベル−2コントローラを有する第2レベルに出す段階及びレベル−2コントローラから第2レベル状態報告を受け取る段階を有する。状態報告は、第1レベルコマンドに応答したレベル−2コントローラの状態を指示している。
【0007】
本発明は、別の特徴では、コントローラ及びシステムコンポーネントを有するシステムを制御する方法に関する。この方法は、コントローラによっては読み取りできない第1の言語で表されていて、システムコンポーネントを制御する命令である入力パラメータを受け取る段階、入力パラメータをコントローラによって読取り可能な第2の言語で表された翻訳パラメータに変換する段階及び入力パラメータ及びこれに対応した翻訳パラメータを含むテーブルを作成する段階を有する。入力パラメータは、テーブル中で編集可能である。
【0008】
本発明は、更に別の特徴として、コントローラ、システムコンポーネント及びコントローラ及びシステムコンポーネントを制御するのに有用なテーブルを生成するプロセスを含むシステムに関する。テーブルは、コントローラによっては読み取りできない第1の言語で表された命令を含む第1の組をなす列と、コントローラによって読取り可能な第2の言語で表された命令を含む第2の組をなす列とを有する。第2の組をなす列中の値及び命令は、第1の組をなす列中の命令の翻訳バージョンである。
【0009】
本発明は、別の特徴では、レベル−1タスクを第1のレベル−2タスク及び第2のレベル−2タスクに分割し、第1レベルコマンドをそれぞれ第1のレベル−2コントローラ及び第2のレベル−2コントローラに出すレベル−1コントローラを有するシステムに関し、第1のレベル−2コントローラは、第1のレベル−2タスクを実行し、第2のレベル−2コントローラは、第1レベルコマンドに応答して第2のレベル−2タスクを実行し、第1のレベル−2コントローラ及び第2のレベル−2コントローラがこれらのレベル−2タスクを終了させ、レベル−1コントローラがレベル−1タスクを終了させるようにする。
【0010】
本発明は又、互いに異なる制御レベルの複数のコントローラを有する多層制御システムに関する。各コントローラは、一義的な組をなす値を含むコントローラテーブルに従って挙動する。コントローラテーブルは互いに異なる値を含むが、これらテーブルは、実質的に似通ったフォーマットを有している。各コントローラテーブルは、状態によって索引付けされ、低レベルコントローラに出される第1の列をなすコマンド、高レベルコントローラに送られる第2の列をなす状態報告、あらかじめ定められた条件が満たされたかどうかをチェックするための第3の列をなす検査及びあらかじめ定められた条件が満たされた場合の手順を定める第4の列を有する。インタフェース制御レベルは、複数のコントローラからコマンドを受け取り、これらコマンドに応答してシステムコンポーネントを制御する。
【発明を実施するための最良の形態】
【0011】
好ましい実施形態の詳細な説明
本発明は、検尿プロセスに特に利用でき、この関係において、本発明を説明する。しかしながら、本発明のシステム及び方法の利用可能性は広いことは理解されよう。というのは、かかるシステム及び方法は、1以上の状態機械としてモデル化できる他形式のプロセスに使用できるからである。本発明は、米国特許第4,338,024号明細書及び第4,393,466号明細書に開示された技術を利用するin vitro検尿診断装置に組み込むことができる。
【0012】
一般に、2種類の状態機械、即ち同期型状態機械及び非同期型状態機械がある。同期型状態機械は、クロックのビートに同期されたプロセス(又はプロセスのタイムスライス)のセグメントを実施する。かくして、プロセスが一連の1分間のタイムスライスに分割される場合、これらタイムスライスの各々についてのあらかじめ割り当てられたタスクは、各クロック信号でトリガされる。同期型状態機械の利点は、その安定性にあり、これは、全てがクロックに同期されていることに由来している。しかしながら、この同期は、同期型状態機械の欠点でもある。というのは、同期は、最も早いプロセスランを得ることができない場合が多いからである。さらに、正しいクロック速度を選択することは、手が込んでいて難しい場合がある。というのは、プロセスの幾つかの部分は、他の部分よりも早いクロック速度を必要とする場合があるからである。クロック速度が遅過ぎると、連続したクロック信号相互間で開始したり終了する事象又はイベントの中には見過ごされてしまうものが生じる恐れがある。
【0013】
非同期型状態機械は、同期型状態機械よりも早い解決策を提供する。クロックのビートに合わせて動作することはない非同期型状態機械は通常、出力が遅延線を通って入力としてフィードバックされる論理素子のブロックから成る。
【0014】
かくして、非同期型状態機械の出力及び次の状態は、現在の状態と現在の入力の組合せで決定される。現在の状態値が遅延線をいったん通過すると次の状態が即座に決定されるということにより、プロセスは、もし遅延が短ければ早くランできる。しかしながら、これら非同期型状態機械に欠点が無いわけではない。入力検査条件の全ての変化は組合せ論理の出力に即座に反映され、遅延要素を介して伝搬する次の状態を開始させるので、非同期型状態機械は、不安定な場合がある。非同期及び同期型状態機械についての技術背景情報及び詳細は、ティンダー・リチャード・エフ(Tinder, Richard F)著,「エンジニアリング・ディジタル・デザイン(Engineering Digital Design),アカデミック・プレス(Academic Press),2000年1月に見られる。
【0015】
本発明は、同期型状態機械の安定性と非同期型状態機械の速度を有するが、いずれの欠点も無いハイブリッド型状態機械を提供する。このハイブリッド型状態機械は、1以上のコントローラが各レベルで存在するマルチレベルコントローラシステムの形態で具体化される。一レベルに多数のコントローラがあれば、同一レベル内でのコントローラは、互いに別々に挙動する。各コントローラの挙動は、状態記録理論(status record formalism
)で定められ、かかる状態記録理論は、スプレッドシート(表計算)/テーブルで具体化できる。スプレッドシートは、多数の欄(フィールド)を有し、各行は、「状態記録」である。欄の中には、或る特定の条件を検査するものがあり、「次の状態」は、検査結果に基づいて識別される。次に、コントローラは、次の状態に移り、この次の状態における欄の値/コマンドを実行する。
【0016】
マルチレベルコントローラシステムの各コントローラは、それ自体のスプレッドシートに従って挙動する。例えば、第1の制御レベルに1つのコントローラを有し、第2の制御レベルに3つのコントローラを有するシステムの場合、4つのスプレッドシートがあることになる。第1の制御レベルのコントローラは、コマンドを第2の制御レベルの3つのコントローラに出し、3つのコントローラは、コマンドに従って自分のタスクを実行し、これらのタスクが終了すると、少なくとも1つの信号を第1の制御レベルのコントローラに送り戻す。3つのコントローラは必ずしも同時に自分のタスクを終了しないが、第1の制御レベルのコントローラは、第1の制御レベルに関するスプレッドシートの次の状態に移る前に3つ全てのコントローラから戻ってくる連絡を受けるのを待っている(又は、しかしながら多くの場合、3つ全てのコントローラから戻ってくる連絡を受ける必要がある)。かくして、第2の制御レベルの3つのコントローラが互いに別個に自分のタスクを実行するが、第1の制御レベルのコントローラは、次の状態に進む前に3つのコントローラから戻ってくる連絡を受けるのを待つことにより状態を或る程度同期させる。
【0017】
このハイブリッド型状態機械は、第1の制御レベルのコントローラが所定の組をなすタスクを達成し又は条件が満たされると、現在の状態から次の状態に移るという点で同期型状態機械に似ている。しかしながら、このハイブリッド型状態機械は、同期型状態機械のようにクロックのビートに制約されることはない。これとは異なり、ハイブリッド型状態機械は、できるだけ迅速にプロセスを実行することができ、そのコンポーネントはそれぞれ別々のタスクを実行することができる。高速プロセッサを用いることにより、ハイブリッド型状態機械は、非同期型状態機械とほぼ同じほど早くプロセスを実行するよう製作できる。
【0018】
ハイブリッド型状態機械は、非同期型状態機械の特性を更に有する。例えば、ハイブリッド型状態機械は、次の段階を決定する条件を検査し、これら条件が満たされるとすぐに次の状態に進む。しかしながら、ハイブリッド型状態機械では、非同期型状態機械のような不安定性の問題が生じない。というのは、第1のレベルは、プロセス中の或る特定の点(即ち、各状態の終わり)でプロセスセグメントを同期させ、状態記録理論に鑑みて、全ての考えられる状態及び状態移行が特定される。欄付きのスプレッドシートで具体化される状態記録理論は、パラメータを全て特定してプロセスの或る特定の点が同期されるようにする。
【0019】
このマルチレベルコントローラアーキテクチャのもう1つの利点は、最も低いレベルを除き、あらゆるレベルでの構文を同一に作ることができ、プログラミングプロセスが劇的に単純化されることにある。このマルチレベルコントローラシステムの各レベルでは、コントローラは、そのスプレッドシートに何があるかについて単に「認識する(知る)」と共に関心を示すに過ぎず、それ自体のレベルの上又は下のレベルで起こっている詳細の全てについて認識しているわけではない。例えば、3レベル化システムは、1)ランシーケンスを実行する高制御レベル、2)ランシーケンスの各々の状態を実行し、コマンドを次の低制御レベルに出す中間制御レベル、及び3)状態中のコマンドに従ってモータ、アクチュエータ及び弁を制御する低制御レベルを含む場合がある。このシステムでは、高制御レベルは、ランシーケンスコマンドを中間制御レベルに送り、これが連絡を聞く必要のある中間制御レベルの全てのコントローラから戻って来る連絡をいったん受けると、次のランシーケンス状態に移るのを認識しているに過ぎない。高制御レベルは、中間制御レベルにおける状態の詳細、中間レベルよりも下の低制御レベルの存在、低制御レベル、弁及びモータ等の各々の機能を全て認識していない。これと同様に、中間制御レベルは、或る特定のコマンドを高制御レベルからのコマンドに応答して低制御レベルに送り出し低制御レベルから戻って来る連絡を受けると次の状態を決定するのを認識しているに過ぎない。
【0020】
スプレッドシートを用いた場合の利点は、プロセスエンジニアの用語法(例えば、モータ#2オン/オフ、検査センサ#12、弁#3オン/オフ)がスプレッドシートの欄に用いられている場合、プロセスエンジニアは、プログラマーから援助を受けないでプロセスランの設定値を調整できるということにある。値をスプレッドシートの欄に入力することにより、プロセスエンジニアは、自分で各レベルについての状態及びランシーケンスを特定することができる。スプレッドシートにより、プロセスエンジニアの好みの言語でプロセスエンジニアからの入力信号を受け取り、これら入力信号を機械により使用できるコードに変換することによりプロセス技術用語に分解することができる。変換されたコードは、スプレッドシートの部分、例えば別個の組をなす列(縦の列)の状態で再び送ることができる。
【0021】
本明細書で用いる「状態(ステータス)」は、或る特定の位置/設定値の状態にあり又は特定のタスクを実行しているコントローラ及びシステムのコンポーネントと関連したプロセスセグメントを意味する。「タスク」は、何か積極的なことを行ない、例えば弁を開く命令又は待機のような何か自動的なことを行なう命令であるのがよい。図8、図9、図10及び図11のスプレッドシートの行(横の列)は、例えば状態を表している。「状態記録」は、図8、図9、図10及び図11のスプレッドシートの行中の欄の値又はパラメータの集まりである。「パラメータ」は、テーブル中の値を意味している。状態は、「状態索引(インデックス)」又は「状態順序」によって索引付けできる。状態記録中の欄は、所与の状態にあるとき、検査及びこれら検査が状態を終了させるために満足させなければならない条件と共にコントローラからの出力を表し/特定する。例えば、レベル−1コントローラが第1レベルコマンドを第2の制御レベルの3つのコントローラに出そうとしている場合、レベル−1コントローラは、その状態記録のそれぞれの欄からこれらレベル−2コントローラの各々についての特定のコマンドを得ることになる。これら第1レベルコマンドは、各レベル−2コントローラにより実行されるランシーケンスを識別することができる。この場合、各レベル−2コントローラは、識別されたランシーケンス中の第2にレベル状態を実行する。本明細書においては、第1の制御レベルのコントローラを「レベル−1コントローラ」と呼び、第2の制御レベルのコントローラを「レベル−2コントローラ」等と呼ぶ。また、本明細書で用いる「第1レベルコマンド」は、レベル−1コントローラにより出されるコマンドを意味し、「第2レベルコマンド」は、レベル−2コントローラ等により出されるコマンドを意味する。状態の「実行」は、各状態において適切な措置を講じて状態を適当な順序で行なうことを意味する。
【0022】
多数の状態は、「ランシーケンス」を構成する。代表的には、ランシーケンスは、特定の機能、例えばサンプル吸引又は試料ラックを点Aから点Bに移動させる機能を達成するよう特定の順序で配列された特定の組をなす状態を有する。多くの場合、第2の制御レベルにおける多数の状態ランシーケンスは、第1の制御レベルの単一の状態に対応している。
【0023】
本明細書で用いる「モータ」は、実際に機械部品を動かすモータとポンプ等を駆動するモータの両方を含む。本明細書で用いる「コンポーネント」は、コントローラ以外のシステムの物理的部分全てを意味している。「コマンド」は、高レベルのコントローラから低レベルのコントローラに伝わる信号であり、「状態報告」は、低レベルのコントローラから高レベルのコントローラに伝わる信号である。
【0024】
次に、図面を参照して本発明を更に説明する。
図1は、本発明により具体化できる例示の検尿プロセス10のフローチャートである。分析プロセス10は、尿サンプルがサンプル採取システムにより受け取られると(段階12)開始する。受け取ったサンプルを混合してシステム中へ吸引し、流体系中へ導入する(段階14)。流動顕微鏡中の要素は、サンプルを染色して混合し(段階16)、これをフローセルに通し、ここで画像を撮る(段階18)。ホストコントローラは、撮像を監督する。画像化コンピュータは、フローセルからデータを受け取り(段階20)、これらを必要に応じて処理し(段階22)、そしてデータを表示する(段階24)。
【0025】
図2は、例示の検尿システム30の主要コンポーネントを示すブロック図である。検尿システム30は、サンプラ32及び鏡検分析器ユニット34を有しこれらは両方共、情報コンピュータ36に送る。通信リンク37が、鏡検分析器ユニット34をコンピュータ36に接続し、このコンピュータ36は又、実験室情報システム(LIS)38に接続されている。サンプルの検査管を備えた試料ラック40が、サンプラ32と鏡検分析器ユニット34との間を移動する。実施形態の中には、自動化ラック移送機構が、試料ラック40をサンプラ32から鏡検分析器ユニット34に移送するものがある。実施形態の中には、移送が手作業で行なわれるものもある。
【0026】
図3は、本発明に使用できる例示のベンチトップモジュール鏡検分析器ユニット34の斜視図である。鏡検分析器ユニット34は、サンプルを吸引し、流動顕微鏡内に提供された検体(分析物)画像のディジタル画像捕捉法を用いて尿サンプルから画像を収集し、画像処理を行なって個々の粒子を単離する。鏡検分析器ユニット34は、それ自体の電源、プロセッサ、コントローラ、サンプルを識別するバーコードリーダ、システムの機械的コンポーネントを駆動するモータ、ピペットでサンプルを検査管から移す流体系及びコンピュータ36への通信リンク37を有している(図2参照)。鏡検分析器ユニット34は外部に、試料ラック40が載せられるプラットホーム42及び幾つかのボタン、例えば開始ボタン44を有する。試料ラック40は、プラットホーム42の測定側44上に載置する。多数(例えば、5つ)のラックを同時に載置することができる。入力コンベヤ(CI)が、ラックをユーザから遠ざけて壁48に近づけ、ここでサンプルをピペットシステム(図示せず)により吸引する。各サンプルが吸引されると、シフトレバーアームが、ラックを戻し側46に小刻みに近づけ、次のサンプル検査管をピペットの下に配置する。全ての検査管のサンプルが採取されると、戻し側46の近くに位置する出力コンベヤ(CO)がラックを前方に移動し、壁48から遠ざける。多数のラックがプラットホーム42上に置かれる場合、測定側44上のちょうど後ろのところ(即ち、壁48の近く)に位置していたラックは、戻し側上で前のところ(即ち、壁48から遠ざかったところ)で終わりになるであろう。
【0027】
図4は、鏡検分析器ユニット34の略図である。図の左から右に沿って9個のコネクタ50が、レベル−1コントローラ52(HLC)及びレベル−1コントローラによって制御されるレベル−2コントローラ54に接続されている。図4に示す実施形態では、レベル−2コントローラは、第1のレベル−2コントローラ54a(これは、試料呈示組立体(SPA)コントローラとも呼ばれる)、第2のレベル−2コントローラ54b(これは、流体ブロック組立体(FBA)コントローラとも呼ばれる)、第3のレベル−2コントローラ54c(これは、試料搬送機構(STM)コントローラとも呼ばれる)及び第4のレベル−2コントローラ54d(これは、光学ブロック組立体(OBA)コントローラとも呼ばれる)を含む。レベル−2コントローラは各々、或るシステムコンポーネントを制御する。
【0028】
第1のレベル−2コントローラ54aは、信号をピペットモータ60,62、排気ポンプ64、シースポンプ67及び弁68のうちの幾つかに送ることにより吸引プロセスを制御する。第1のレベル−2コントローラ54aによって制御されるピペット操作ステーションが、鏡検分析器ユニット34の前の近くに配置される。ピペットモータ60,62によって制御されるピペッタは、サンプルを混合し、所定量のサンプルを吸引する。サンプルをその管内で混合し、サンプル採取プローブは、管の底部まで下降し、空気のパルスを追い出して鏡検分析器ユニット34により処理される前に沈澱物の一様な混合を保証する。混合後、サンプルを真空により一連の管を通ってフローセル内へ引き込み、これら管は、染色液を尿中へ導入して混合させることができる。
【0029】
第2のレベル−2コントローラ54bは、信号をカニューレポンプ70、シースポンプ67及び弁68の幾つかに送ることによりフローセルを制御する。特定の実施形態では、弁68は、第1のレベル−2コントローラ54aと第2のレベル−2コントローラ54bの両方によって制御される。流体系コンポーネントは、染色液容器(図示せず)、シース容器(図示せず)及びサンプル、染色液、シース流体及び洗浄液(例えば、IRISolv)を吸引してこれらを流体ブロック及びフローセル中へ循環させる3つのポンプ64,67,70で構成されている。ポンプ64,67,70は、蠕動ポンプ又は押し退けポンプであるのがよい。
【0030】
第3のレベル−2コントローラ54cは、ラックを経路に沿って動かす種々のアームに信号を送ることにより、試料ラック40を搬送するよう機能するコンポーネントに信号を送る。具体的に説明すると、第3のレベル−2コントローラ54cは、信号をフロントアーム式ステップモータ76a、リヤアーム式ステップモータ76b、1以上の電子モータ78に送って主要ラック40を動かす。サンプルプラットホーム42上の管(図3に示されている)からのサンプル採取は、ポンプで駆動されるフルイディックスサブシステムによって行なわれる。サンプル採取プロセスを駆動するのに任意適当なポンプを用いることができ、かかるポンプとしては、米国特許出願(願番未付与;代理人事件番号:2102402−914911)に記載された形式の押し退けポンプが挙げられる。
【0031】
第3のレベル−2コントローラ54cは、バーコードリーダ90とインタフェースを取る。バーコードリーダ90は、サンプル管上のバーコードラベルを走査し、識別情報を局部記憶状態に保持する。最終的に、バーコードリーダ90は、コンピュータ36を介して、走査された識別情報を実験室情報システム(LIS)38に送る。
【0032】
第4のレベル−2コントローラ58は、流動顕微鏡の光学コンポーネントを制御し、かかる光学コンポーネントは、顕微鏡(図示せず)内に設けられていて、フローセルの位置を調整する電動式ポジショナ86を含むのがよい。鏡検分析器ユニット34がストローブ照明を利用する実施形態では、ストローブは、CCDカメラ84と同期した状態で高速で点滅する。ホストコントローラにより制御されるCCDカメラ84は、ストローブフラッシュ中に画像を捕捉する。レベル−1コントローラは、ストローブバルブ又はストローブ球82を間接的に制御する。顕微鏡は代表的には例えば拡散フィルタ、レンズ及び光を所望の仕方で合焦させる他の光学素子のようなコンポーネントを有する。図示の実施形態では、これらのコンポーネントのうち幾つかは、第4のレベル−2コントローラ54dによって制御される。
【0033】
画像を撮った後、廃棄物ポンプ94は、廃棄物チャンバに通じている廃棄物ライン中へ流体を破棄する。廃棄物ウェル液体レベルセンサ組立体73が、廃棄物チャンバ内の液位を検出する。
【0034】
図5は、本発明のレベル化システムアーキテクチャ100の略図である。単一のプロセッサを用いてリアルタイム動作を実行する従来型システムの場合とは異なり、レベル化システムアーキテクチャ100は、互いに制御し、最終的にはシステムコンポーネントを制御するマルチレベルのプロセッサ及び(又は)コントローラを有している。例えば、ホストレベルコントローラ56は、ホストプロセッサを含み、レベル−1コントローラ52は、マスターコントローラを含み、レベル−2コントローラ54は、4つのコントローラ54a,54b,54c,54dを含み、レベル−3コントローラは、レベル−2コントローラとシステムコンポーネントとのインタフェースを取る1以上のコントローラを含む。モータ、ポンプ及び弁は、レベル−3コントローラによって制御され、これらレベル−3コントローラは、Cでプログラムされており、代表的には、プロセスエンジニアが第2及びレベル−2コントローラ52,54の動作を制御するために接近する状態記録のように可変ではない。
【0035】
図示の実施形態では、ホストレベルコントローラ56は、分析プロセッサ(AP)56a及び沈澱物モジュールホスト(SMH)56bを有する。SMH56bは、レベル−1コントローラ52を直接制御する。しかしながらユーザインタフェースは、AP56aで具体化される。かくして、ユーザの観点からは、システムを制御するのに2つの経路があり、即ち、1)鏡検分析器ユニット34に設けられたボタン(図3参照)を押すこと、又は、2)AP56aにおいてユーザインタフェース(例えば、GUI)を用いてコマンドを入力することである。2つの経路により、ユーザは、システムの互いに異なる特徴を制御することができる。本発明は、図5に示されたホストレベルコントローラ56の特定の形態には限定されない。
【0036】
このマルチレベルシステムアーキテクチャ100では、「高」レベルは、コマンドを「低」レベルに送り、この「低」レベルは、コマンドに従って或る特定の機能を実行し、命令を出した「高」レベルに少なくとも1つの状態報告を戻す。例えば、レベル−1コントローラ56は、第1レベルコマンドをレベル−2コントローラ52に送り、レベル−2コントローラ52は、レベル−1コントローラ56からの第1レベルコマンドに従ってレベル−3コントローラ54に第2レベルコマンドを送る。レベル−3コントローラ54は、レベル−2コントローラ52からの第2レベルコマンドに従ってその機能を実行し、機能を終了させると、状態報告をレベル−2コントローラ52に戻す。レベル−2コントローラ52は、これが受け取るのを期待する全ての状態報告を受け取るのを待ち、これが生じると、状態報告をレベル−1コントローラ56に送ってレベル−1コントローラにレベル−2コントローラ52がその機能を終了したことを知らせる。本明細書で用いる「終了」は、指定されたタスクの上首尾の終了又は指定された時間の長さの経過を意味するのがよい。
【0037】
このレベル化システムアーキテクチャ100を上述の検尿プロセス10に利用することができる。ただし、その有用性は、これには限定されない。図8、図9、図10及び図11には図示されていないが、スプレッドシートの各々は、スプレッドシートにより作成され、コントローラをプログラムするヘッダファイルを備えた列を含む。ヘッダファイルは通常、状態記録情報を含む16進法ファイルの形態を取っており、レベル−1コントローラ52及びレベル−2コントローラ54を具体化するマイクロコントローラの各々と関連したEEPROMにロードされるようになる。このように、プログラマーである必要は無いプロセスエンジニアは、コントローラにより解読されたコードを自動的に発生させる欄の値をスプレッドシートに入力することができる。レベル−1コントローラ52及びレベル−2コントローラ54についてのスプレッドシート中の値を入力し又は修正することにより、プロセスエンジニアは、プログラマーに頼ることなくプロセスパラメータを修正することができる。
【0038】
図6は、ホストコントローラ56がレベル−1コントローラ52に送る例示の組をなすランシーケンスを提供している。図示の実施形態では、各ランシーケンスは、2文字のコードL12600によって識別される。各ランシーケンスに関し、開始状態602、終了状態604及び特定のランシーケンスで何が行なわれているかについての一般的な説明606がある。例えば、状態1〜状態14で実施されるランシーケンスRHでは、レベル−2コントローラ54は、リセットされる。状態15〜状態99で実施されるランシーケンス16では、システムは、ラックのランを再開させる。ランシーケンスを実施する順序には制約は無く、全てのランシーケンスが、プロセス中に実行される必要はない。また、幾つかの状態を多数のランシーケンスで実施できる。状態350〜状態366を含む“Irisolve clean”についてのランシーケンスPIは、「漂白剤による洗浄(wah with bleach )」についてのランシーケンスWAの一部である(状態356〜392)。ホストコントローラ56の沈澱物モジュールホストPC部分は、プロセスエンジニアが何が行なわれるかを望むに応じてランシーケンスPI又はランシーケンスWAについての信号を送る。
【0039】
図7は、レベル−1コントローラ52及び最も低いレベルのコントローラを除く他のレベルの各々が作動信号をホストコントローラ56(又は次の高いレベルのコントローラ)からいったん受け取ると、どのようにランシーケンスを実行するかを示す状態機械記録インタプリタを示す図である。当初、作動時、レベル−1コントローラ52をリセットし(段階700)、アイドル状態にある(段階702)。この時点で、現在の状態は、図6に「開始状態」列中に確認された状態である。第1の状態の機能を終了させた後、コントローラは、シーケンス中の次の段階に進み、状態番号(段階704)を調節して先の状態において「次の状態」であった状態が今や「現在の状態」であるようにする。コントローラは、次の段階を終了させるのを待ち(段階706)、次に矢印708で示されているように次の段階に移行する。シーケンス中の次の状態が無いようになるまで段階704,706を繰り返し実施した後、その時点で、ランシーケンスが終了し、レベル−1コントローラ52は、段階702中のアイドル状態に戻る。
【0040】
図8、図9、図10及び図11は、検尿プロセス10を実施するために用いることができる例示のテーブル(表)を定めている。図8のテーブルは、レベル−1コントローラの状態記録テーブル300であり、これは、レベル−1コントローラ52の挙動を定めている。図8、図9及び図10のテーブルは、レベル−2コントローラ54の挙動を定めるレベル−2コントローラ状態記録テーブルである。表は、状態が各行で表され、信号が各列で表されるよう作成されている。テーブル中において、“SM”は、隣りの高いレベルにあるコントローラ又はプロセッサを意味している。例えば、レベル−1コントローラ52の全体から見たSMは、ホストコントローラ56であり、レベル−2コントローラ54の全体から見たSMは、レベル−1コントローラ52である。
【0041】
図8は、例示のレベル−1コントローラ状態記録テーブル300を示す図である。状態記録テーブル300は、種々の欄を示す列及び互いに異なる状態を示す行を備えたスプレッドシートの形態をしている。レベル−1コントローラ52は、ランシーケンスを終了させるまで現在の状態から次の状態に移る。状態索引302は、説明列304に記載された状態についての数値表示を示している。各状態に関し、レベル−1コントローラ52がレベル−2コントローラ54に出すコマンド306がある。コマンド306a,306b,306c,306dに応答して、レベル−2コントローラ54a,54b,54c,54dは、或る特定の機能を実行し、状態報告308a,308b,308c,308dをレベル−1コントローラ52に戻す。レベル−2コントローラ54は、これらの機能を互いに別個独立に且つ非同期状態で実行する。レベル−2コントローラ54はこれらのそれぞれの機能を終了させるのに要する時間の長さが互いに異なるので、これらコントローラは各々、これらのそれぞれの状態報告を互いに異なる時点でレベル−1コントローラ52に戻すことになる。レベル−1コントローラ52は、全ての予想される状態報告が戻されるまでは次の状態を実行するコマンドを送らない。レベル−1コントローラ52が次の状態に移る前に受け取ることが必要な状態報告の数には制約がない。状態報告欄308中の値は、プロセスエンジニアによって変えることができ、テーブル300においては、“0X00”は、状態報告が必要でないことを意味している。
【0042】
レベル−2コントローラ54との通信に関連した欄306,308に加えて、レベル−1コントローラ状態記録テーブル300は、ホストコントローラ56との通信に関連した欄パラメータを含む。SMTest310は、レベル−1コントローラ52がホストコントローラ56から受け取る信号を意味している。SMTest310の特定の値は、2文字コードを表し、この2文字コードは、2文字コードを受け取った時点におけるレベル−1コントローラの状態に応じて別々に解読される。例えば、レベル−1コントローラが特定のコードを受け取った時点でアイドル状態であれば、レベル−1コントローラは、そのコードを図6に示すランシーケンスとして解読することになる。レベル−1コントローラは、ランシーケンスを識別するために図6のテーブルにアクセスした後ランシーケンスを実行することになる。レベル−1コントローラは又、信号ToSM312をホストコントローラに送り、ランシーケンスが進行中であることをホストコントローラに知らせる。以後の或る時点で、ホストコントローラは、別の2文字コードを出して例えば全ての必要なデータを収集したという理由でランシーケンスを停止させる。この時点で、レベル−1コントローラは2文字コードを受け取った時点でランしているので、レベル−1コントローラは、受け取った2文字コードがSMTest310の欄中の値に合致しているかどうかを確認する。この値がSMTest310の値に合致していれば、レベル−1コントローラは、その状態を終了させる。次に、レベル−1コントローラは、信号ToSM312を送ってランシーケンスが終了したことを指示する。
【0043】
Tvalue314とTfunc316は一緒になって、状態がどれぐらい長く続くかを求める。具体的に説明すると、Tvalue314は、時間フレームを或る所定の時間的単位で指示し、Tfunc316は、Tvalue340中へ指示された時間フレームがどのように使用されるべきかを指示する(例えば、最大ランタイムとして)。状態がTvalue314及びTfunc316により定められた時間フレーム内で終了しない場合、ユーザに予期しない事態がこの状態で発生したという警告を出すためにエラーメッセージを生じさせるのがよい。
【0044】
Sens318、STst320及びSMsk322は、センサ状態の決定に関している。パラメータを測定し又は検出する多くのセンサが鏡検分析器ユニット34内に設けられており、Sens318は、特定の状態に適したセンサを識別する。STst320
は、センサの状態(例えば、オン又はオフ)を識別する。SMsk322は、手順を決めるためにSTst値と比較される基準値を提供する。基準値に対して或る特定の関係を持つSTst値を本明細書においては次の段階を終了に向かって連れていく(条件)と呼ぶ。
【0045】
ホストコントローラからの信号(SMTest310)、第3レベルのコントローラの状態308及びSMsk322に対するセンサの状態(STst320)は、次の状態を決定する。これらの値により分岐が起きないことが分かると、現在の状態は、終了し、現在のランシーケンス中の次の連続番号の状態索引が起動された状態になる。現在の状態がランシーケンスの終わりに終了する場合、ToSM312信号がホストコントローラ56に送られてランシーケンスが終了したことを指示する。すると、レベル−1コントローラ52は、ホストコントローラ56が新たなランシーケンスを起動する別のSMTest信号を出すまではアイドル状態のままであろう。SMTest310、レベル−2コントローラ状態308及びセンサ状態STst320により現在の状態が分岐することが分かり、それにより分岐に関する「指定された条件」が満足される場合、Dest328は、その状態の方を指し、分岐し、そしてBran326が分岐をトリガする。
【0046】
上述したように、プロセスエンジニアは、テーブル300中のパラメータ値のうちの少なくとも幾つかを調整することができる。というのは、これらパラメータ値は、システムがプロセスエンジニアの観点から考慮したときに意味が分かるパラメータである。例えば、プロセスエンジニアは、状態がエラー信号を発生させる前に長い期間又は短い期間にわたり待つようTvalue314を調整でき或いは、或る特定の弁が開き、閉じられていないようにコマンド306中の値を調整することができる。システムは、プロセスエンジニアが別個のテーブル(ちょうどレベル−1コントローラ用のテーブルではない)中の「較正」値を調節することができるようにするユーザインタフェースを有する。これら較正値を用いると、時間間隔、モータ動作を制御し、或いはセンサ読み出しのための閾値設定値として制御することができる。
【0047】
検尿システム30中のコントローラは、プロセスエンジニアにより入力されたパラメータを変換して列330中に機械により読取り可能な値を生じさせる。プログラマーが当初この変換方法をプログラムする必要があるが、プログラマーは、パラメータを調節するたびに関与する必要はない。
【0048】
レベル−2コントローラ54a,54b,54c,54dは、コマンド306をレベル−1コントローラ52から受け取ると、レベル−2コントローラ54は各々、受け取ったコマンドに従って機能を開始する。上述したように、レベル−2コントローラ54a,54b,54c,54d用のスプレッドシートは、レベル−1コントローラ用のスプレッドシートと実質的に同一の構文を有する。この類似性は、スプレッドシート中の欄に及ぶだけでなく隣接のレベルとの通信モードにも及ぶ。例えば、隣接の高レベルからのコードに関するレベル−1コントローラの解読がコードを受け取った時点におけるレベル−1コントローラの状態で決まるのと同一の仕方で、レベル−2コントローラは、コードを受け取ったときにこれがアイドル状態にあるか活動状態にあるかどうかに応じて入力を互いに別々に解読する。
【0049】
図9は、第1のレベル−2コントローラ54aがレベル−1コントローラ52からコマンドを受け取った際に何をするかを示している。第1のレベル−2コントローラ状態記録テーブル400は、付勢弁406、第1のモータ410、第2のモータ412、EP408及びSP414という標識がそれぞれ付けられた列中の弁68、ピペットモータ60,62、排気ポンプ64及びシースポンプ67(図4参照)に送られるコマンドを含んでいる。弁及びポンプの位置は、状態順序402によって割り送りされ、これらの位置の各々については説明404がある。本明細書における“SP”は、全ての状態において一定の値によって指示されるように特定の実施形態では用いられないダミー欄である。
【0050】
第1のレベル−2コントローラ54aは、空気ストレージ内部の圧力を測定するために圧力センサを用いている。この空気は、例えばエアブラストにより試料を混合するために用いられる。センサ選択416はセンサを識別し、センサ状態418は、選択されたセンサの状態を指示し、センサマスク420には基準値が入っている。モータの状態を検出するMotorTest422は、次に何をすべきかを決定するために考慮される要因のうちの1つである。モータは、幾つかの状態のうちの1つの状態であるのがよく、正確な数は、モータのタイプで決まる。例えば、モータは、1)動作中であるがそうであると考えられる場合ではない、2)動作中であり、しかもそうであると考えられる場合、又は3)停止され、しかもそうであると考えられる場合である。MotorTest422中の値は、モータが3つの状態のうちのどれにあるかを指示する。
【0051】
レベル−1コントローラ52とは異なり、第1のレベル−2コントローラ54aは、高レベルコントローラからの特定のメッセージがあるかどうかを検査せず、この場合、高レベルコントローラは、レベル−1コントローラ52である。かくして、SMTest424は、値0X0000に設定される。しかしながら、弁及びモータの状態は、ToSM426中のゼロではない値によって指示されるようにレベル−1コントローラに報告される。Tvalue428は、それぞれの状態と関連した時間切れ(タイムアウト)値を指示し、Tfunc430は、時間切れ値がどのように用いられるかを指示する。モータ検査422、Tvalue428及びTfunc430中の値に基づいて(即ち、これらが基準値に対し指定された条件を満足しているかどうかに基づいて)、第1のレベル−2コントローラは、状態が終了すべきかどうかを判定する。状態が終了する場合、End Ctrl432と標識が付けられた列中の値は、特定の状態がどのように終了するかを指示している。状態が分岐する場合、Bran Ctrl434は、分岐をトリガし、Dest436は、状態又はランシーケンスを分岐の方に向ける。
【0052】
図10は、或る特定の機能を実行するよう第2のレベル−2コントローラ54bに指図するために使用できる第2のレベル−2コントローラテーブル500を示している。第2のレベル−2コントローラテーブル500は、状態順序502によって索引付けられており、これらの各々は、状態説明504を有している。第2のレベル−2コントローラテーブル500は、弁68を制御する点において第1のレベル−2コントローラテーブル400(上述の図4参照)と似通っている。加うるに、かかるテーブルは、シースポンプ67及びカニューレポンプ70を制御する。MotorTest522は、シースポンプ67及びカニューレポンプ70の状態を検出する。付勢弁506は、付勢される流体ブロック弁を識別する。コマンドの列509は、カニューレポンプに送られる信号を指示するCP508及びシースポンプに送られる信号を指示するSP514を含む。ダミーモータ510及びダミーモータ512は、両方の列中の一定の値80FFによって指示されるように図示の実施形態では使用されない。ダミーモータ欄は、それ以上のモータがシステムに追加される場合使用できる。これと同様に、センサの選択に関連した列、例えばセンサ選択516、センサ状態518及びセンサマスク520は、第2のレベル−2コントローラがセンサを用いないので図示の実施形態では使用されない。使用されない欄は、例えばセンサのようなコンポーネントが第2のレベル−2コントローラ54に用いられる場合使用できる。モータ状態を検査し、状態コードをMotorTest522中の検査値と比較する。ToSM526中の信号により示されるように、第2のレベル−2コントローラ54b、レベル−1コントローラ52からは2方向の通信がある。しかしながら、SMTest524中の一定値0X0000によって指示されるように、レベル−1コントローラ52から第2のレベル−2コントローラ54bに伝送される信号は存在しない。
【0053】
Tvalue528は、それぞれの状態と関連した時間切れ値を指示し、Tfunc530は、時間切れ値がどのように用いられるかを指示している。時間切れ値により指示された時間の長さが切れる前にEndCtl中の指定された条件が満足されていないので現在の状態が終了しない場合、エラー信号を発生させるのがよい。MotorTest522、Tvalue528及びTfunc530の値がこの指定された条件を満足するかどうかに応じて、状態は、終了するか又は分岐することになる。End Ctrl532という標識が付けられた列中の値は、特定の状態が終了するために満足されるべき条件を指示している。状態が分岐する場合、Bran Ctrl534は、条件又は分岐方法を指示し、Dest536は、状態又はランシーケンスを分岐するように向ける。状態24では、Dest=0であり、次の状態がアイドル状態であることを指示している(状態順序0)。
【0054】
図11は、試料ラック42(図3参照)を制御する第3のレベル−2コントローラ54c用の第3のレベル−2コントローラ状態記録テーブル600を示している。第3のレベル−2コントローラ状態記録テーブル600は、状態順序602及び説明604によって索引付けられている。図3において上述したように、システムには、少なくとも2つのコンベヤ、即ち、入力コンベヤ(CI)及び出力コンベヤ(CO)がある。CIは、試料ラックを鏡検分析器ユニット34(図3参照)の壁48に向かって押す。すると、ラックは、側方へ小刻みにシフトして互いに異なる検査管のサンプル採取を可能にする。図4のステップモータ76aにより制御されるシフトレバーアーム(SM)は、この経路に沿って試料ラック40をCIからCOにシフトさせ、各管をサンプル採取できるよう停止させる。次に、COは、試料ラックをCIがこれを残した位置から動かして、試料ラックを前に持って行き、したがってCIとCOは一緒になってU字形経路上で試料ラックを連れて行くようになる。ステップモータ76b(図4)によって制御される再位置決めアーム(CM)は、コマンド612を出してラックをUの最終端部からUの開始端部に動かしてCIが試料ラックを再び動かすことができるようにするために使用できる。SM610、CM612、CI614及びCO616は、各状態においてそれぞれのアームに送られる信号を示している。例示のテーブル600では、列Dor606及びDand608、並びにRC618は、一定の値によって指示されるようにダミー列である。これらダミー列は、もし追加のコンポーネントがシステムに組み込まれると使用可能になる。
【0055】
幾つかのセンサが第3のレベル−2コントローラ54cによって使用される。SenSel620は、各状態において検査されるセンサを識別し、Stst622は、検査によって決定されるセンサの状態を指示し、SMtst624は、センサの状態を検査するために用いられる基準値を指示している。Mtst626は、モータ76a,76b又は78a,78b(図4参照)のコード化された状態である。SMtst628は使用されず、これはレベル−1コントローラ52が検査されていないことを指示している。ToSM630中の信号は、或る特定の条件が満足されると、レベル−1コントローラ52に送られる。
【0056】
Tvalue632は、それぞれの状態と関連した時間切れ値を指示し、Tfunc634は、時間切れ値がどのように用いられるかを指示している。SM610、CM612、CI614、CO616及びMtst626が指定された条件を満足するかどうかに応じて、現在の状態は、終了するか又は分岐することになる。状態が終了する場合、EndCtrl636の標識が付けられた列中の値は、特定の状況がどのようにして終了しているかを指示している。状態が分岐する場合、BranCtrl638は、分岐をトリガし、Dest640は、状態又はランシーケンスがブランチするように向ける。
【0057】
実施例
この実施例は、ランシーケンスを終了させるためにマルチレベルコントローラが互いにどのように相互作用するかを示している。具体的に説明すると、この実施例は、レベル−1コントローラがどのようにレベル−2コントローラをリセットし、サンプルの処理のためにシステムを準備するランシーケンスをこれらにどのように実施させるか(即ち、図6に示す第1のランシーケンスを実施させる)を示している。図6に示すように、ランシーケンスRHは、レベル−1コントローラ状態記録テーブル300の状態索引1〜14を必要とする。このプロセスの間、シースびんは、シース流体で満たされ、ピペット位置は、初期化され、STMは、ラック運動レバーの位置を初期化して入力及び出力コンベヤをクリアする。このリセットプロセスの第1の状態では(即ち、図8、状態索引=1)、レベル−1コントローラ52は、リセット信号(RE)を4つの高レベルコントローラの各々に送る。4つのレベル−2コントローラ54は、リセット信号に応答してそれ自体リセットを行ない、状態報告(0XFF)を送り戻す。4つの状態報告を全て受け取った後、レベル−1コントローラ52は、状態索引2と関連した信号を送る。状態索引2では、レベル−1コントローラ52は、“S1”を第1のレベル−2コントローラ54aに送る。次に、状態記録テーブル400の状態61を開始させる第1のレベル−2コントローラ54aは、シースびんを充填する。値“0X0000”は、信号が送られていないことを指示しているので、状態索引2においては、第2、第3及び第4のレベル−2コントローラに送られる信号は存在しない。シースびんが充填を開始すると、第1のレベル−2コントローラ54aは、テーブル400のToSM列及びテーブル300のSPAstat列中に示されるように終了状態“0X32”を戻す。End列324中の値0X0002は、“0X32”状態が第1のレベル−2コントローラ54aから戻されるとすぐに状態索引2が終了することを指示している。
【0058】
0X0005の時間切れ値314及び0X42のTfunc316を有する状態索引3は、時間切れ値314に達すると、シースびんの充填を止めるよう指示する。0X0033のSens318値、0X01のSTst値及び0X01のSMsk値は、0X0033により識別されたセンサが状態0X01に達すると、シースびんが満杯であることを指示する。End列324は、値0X8383を有し、これは、シースびんが満杯であるか時間切れ値314に達すると状態が終了することを意味している。現在の状態が終了すると、レベル−1コントローラは、状態索引4に進み、それにより、S0信号が第1のレベル−2コントローラ54aに送られて重点を停止させる。信号S0を受け取ると、第1のレベル−2コントローラ54aは、シースポンプの作動を停止させ、信号0X33をレベル−1コントローラ52に送り、このレベル−1コントローラ52は、次に現在の状態を終了させる。
【0059】
状態索引5では、レベル−1コントローラ52は、第1のレベル−2コントローラ54aがシースポンプを作動停止させ、今やこれがアイドル状態にあることを指示する信号0XFFを送るのを待つ。
【0060】
シースポンプを充填した後、シースのレベルを状態索引6で検査する。シースレベルは、列318の0X0032によって選択された低レベルセンサを識別し、これをSMsk値0X80によって選択された較正テーブル値と比較することにより検査される。検査によりシースレベルが低いことが分かると、プロセスは、Bran32及びDest8に従って状態索引8に分岐する。状態索引8では、シースが空であるかどうかが検査される。列318中のシースセンサ0X0032により、0X40のSMsk値によって選択された較正テーブル値と比較した場合にシースが空であることが分かると、Bran326値及びDest328値は、レベル−1コントローラに指図してこれを状態索引10に分布させる。状態索引10では、レベル−1コントローラは、メッセージ0X21をホストプロセッサに送ってシースが空であることをホストプロセッサに知らせる。次に、レベル−1コントローラは、状態索引100に分岐し、それによりラッククリアプロセスを開始させる。
【0061】
状態索引6に戻ってこれを参照すると、0X0032によって選択されたセンサによりシースレベルが低いことが指示されていなければ、分岐は起こらず、次の状態は、状態索引7である。状態索引7では、レベル−1コントローラ52は、ToSMメッセージ0X1Fを送ることによりシースレベルがホストプロセッサにとってオーケーであることを報告する。次に、レベル−1コントローラ52は、状態索引11を実行する。
【0062】
状態索引11では、レベル−1コントローラ52は、コマンドPH、HS及びCRをそれぞれ第1のレベル−2コントローラ54a、第2のレベル−2コントローラ54b及び第3のレベル−2コントローラ54cに送る。光学ベンチ初期化はリセットされたランシーケンスでは不要なので第4のレベル−2コントローラ(OBAコントローラ)に送られる信号は存在しない。第1のレベル−2コントローラは、PHコマンドを受け取ると、テーブル400中の状態4〜9を実行することにより、ピペッタを持ち上げてピペッタをバックセンサに送り、最終的に廃棄物ウェルに送るのを開始する。状態4,5では、信号を水平モータに送ってピペットアームをバックセンサまで移動させる。状態6では、信号をモータに送ってピペッタを廃棄物ウェルまで回転させる。次に、センサ10B0を用いて基準センサマスク値と比較するよう空気圧力を状態7でチェックする。圧力が既に許容レベルにあれば、SPAコントローラ36bは、状態9に分岐し、ここで、メッセージ0X12がレベル−1コントローラに送られて圧力レベルが合格であることを知らせる。圧力が許容レベルに無い場合、第1のレベル−2コントローラ54aは、値を設定し、空気ポンプを作動させて圧力を状態8の許容レベルまで再投入し、その後信号を状態9においてレベル−1コントローラに送る。
第2のレベル−2コントローラ54bは、HSコマンドを受け取ると、弁CBV3を作動させ、信号80FEをカニューレポンプ70及びシースポンプ67(図4参照)に送ってこれらを状態32において待機位置にする。次に、ポンプローラを状態33において管上に配置する。次に、状態報告信号0X21を状態34においてレベル−1コントローラ52に送る。
【0063】
第3のレベル−2コントローラ54cは、CRコマンドを受け取ると、信号0X80FFをSMに送り、信号0X0100をCIに送り、信号0X880FFをCOに送ることにより送り込みコンベヤを逆に動作させる。これは、Tval=0X0016及びTfnc=0X02によって定められた期間の間行なわれる。この指定された期間後、信号0X30をレベル−1コントローラに送り、状態34が終了する。
【0064】
テーブル300に戻ってこれを参照すると、0X21のFBAstat値を状態11で受け取る。0X0009のTvalue及び0X44のTfunc値は、FBAstat値を戻さなければならない時間フレームを設定する。終了値0X005Fは、0X21のFBAstat値が指定された時間フレームの終了によって受け取られない場合、誤差信号を発生させ、FBAstat値が時間内に受け取られると、レベル−1コントローラが状態12に移行することを指示する。
【0065】
状態索引12では、レベル−1コントローラ52は、0XFFのSPAstat値を受け取るのを待ち、受け取ると状態13に移行する。状態13では、レベル−1コントローラは、0XFFのSTMstat値を受け取るよう待ち、受け取ると状態14に移行する。ランシーケンスResetHigh(RH)では、レベル−1コントローラとOBAコントローラとの間には信号は交換されない。状態14では、ResetHighランシーケンスが終了する。
【0066】
本発明のレベル化コアコントローラアーキテクチャ100(図5参照)では、各レベル−2コントローラ54は、互いに独立して動作する。しかしながら、レベル−1コントローラ52が予想された状態報告の全てを高レベルコントローラから受け取るまで次の状態に進まないので、レベル−1コントローラは、プロセス中の或る特定の「チェックポイント」で高レベルコントローラ同期させる。予想された状態報告の全てが指定された時間フレーム(例えば、Tvalue)内に受け取られない場合、誤差信号を発生させ、任意的に、プロセスが停止する。各状態の終わりにおけるこの「チェックポイント」システムを設けることにより、プロセスラン全体がエラーでうまくいかないのが阻止される。さらに、「チェックポイント」システムは、プロセスエンジニアがどの状態において誤差が発生しているかを正確に知ることができるようになることにより問題解決を容易にする。
【0067】
上記は本発明の特定の実施形態に関するが、当業者であれば、本発明の原理及び精神、特許請求の範囲に記載された本発明の範囲から逸脱することなくこの実施形態の変更を想到することは理解されよう。
【0068】
例えば、高い制御レベルが低い制御レベル又はシステムコンポーネントを「直接的」又は「間接的」に制御することは本発明の範囲に属する。制御が「直接的」であれば、制御を行なっているレベルと、制御されているレベルとの間に介在するレベルは存在しない。例えば、レベル−2コントローラは通常、レベル−2コントローラを直接制御する。これとは対照的に、制御が「間接的」であれば、制御を行なっているレベルと制御されているレベルとの間に介在するレベルが1以上存在する。例えば、3レベル制御システムでは、第1の制御レベルは、状況に応じて、第2の制御レベル又は第3の制御レベルを、制御できるように設計されているのがよい。
【0069】
多数の低レベルコントローラを有する実施形態では、高レベルコントローラによって出されるコマンドは、特定の低レベルコンポーネントのうちの1以上に向けられ又はこれを「標的とし」ている。或る幾つかの実施形態では、高レベルコントローラは、コマンドを標的にされた低レベルコントローラにのみ送る。これら実施形態では、標的にされていない低レベルコントローラは、コマンドを受け取らない。他の実施形態では、高レベルコントローラは、コマンドを低レベルコントローラのうちの多くに「ブロードキャスト」し、低レベルコントローラにコマンドがこれらに適用されるかどうかを判定させる。低レベルコントローラによりコマンドが適用できないことが判定されると、低レベルコントローラはコマンドを無視することになる。
【0070】
実施形態に応じて、同一制御レベルのコントローラは、互いに限定され又は完全な通信状態が可能になる。場合によっては、通信は、高レベルコントローラと低レベルコントローラとの間のレベル内通信に限定される。当業者であれば、多くの変形例が可能であることは理解されよう。
【図面の簡単な説明】
【0071】
【図1】本発明に使用できる例示の検尿プロセスのフローチャートである。
【図2】例示の検尿システムの主要コンポーネントを示すブロック図である。
【図3】本発明に使用できる例示のベンチトップモジュール分析器ユニットの斜視図である。
【図4A】分析器ユニットの略図である。
【図4B】分析器ユニットの略図である。
【図5】本発明のレベル化されたシステムアーキテクチャの略図である。
【図6】ホストコントローラがレベル−1コントローラに送る例示の組をなすランシーケンスを記載した図である。
【図7】作動信号がホストコントローラからいったん受け取られると、レベル−1コントローラがどのようにランシーケンスを実行するかを示す図である。
【図8A1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8A2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8B1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8B2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8C1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8C2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8D1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8D2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8E1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8E2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8F1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8F2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8G1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8G2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8H1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8H2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8I1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8I2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8J1】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図8J2】検尿プロセスにおいてレベル−1コントローラに用いることができる例示のテーブルを示す図である。
【図9A1】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図9A2】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図9B1】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図9B2】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図9C1】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図9C2】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図10A1】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図10A2】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図10B1】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図10B2】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図11A1】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図11A2】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図11B1】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。
【図11B2】検尿プロセスにおいてレベル−2コントローラに用いることができる例示のテーブルを示す図である。

【特許請求の範囲】
【請求項1】
第1レベル状態のシーケンスで動作する少なくとも1つのレベル−1コントローラを備えていて、第1レベル状態のうちの1つと関連した第1レベルコマンドを出す第1の制御レベルと、第1レベルコマンドに応答して第2レベル状態のシーケンスで動作し、第2レベル状態のうちの1つで定められるレベル−2状態が実現されると、状態報告を第1の制御レベルに送るレベル−2コントローラを備えた第2の制御レベルとを有することを特徴とするシステム。
【請求項2】
第2の制御レベルは、レベル−2コントローラを含む複数のレベル−2コントローラを有し、第1レベルコマンドは、レベル−2コントローラを標的にしていることを特徴とする請求項1記載のシステム。
【請求項3】
レベル−1コントローラは、第1レベル状態のうちの1つで定められたレベル−1状態を検査し、状態報告及び検査結果に応答して前記1つの第1レベル状態を第1レベル状態のうちの別のレベル状態に移ることを特徴とする請求項1記載のシステム。
【請求項4】
レベル−1コントローラ及びレベル−2コントローラのうちの少なくとも一方は、それぞれ第1レベルコマンド又は第2レベルコマンドを出すことによりシステムコンポーネントを直接制御することを特徴とする請求項1記載のシステム。
【請求項5】
第2の制御レベルとシステムコンポーネントとの間のインタフェースを取る第3の制御レベルを更に有し、第3の制御レベルは、第1レベルコマンド及び第2レベルコマンドのうち少なくとも一方を受け取ったコマンドをシステムコンポーネントのために翻訳するよう設計されていることを特徴とする請求項4記載のシステム。
【請求項6】
パラメータを含むレベル−1コントローラテーブルを生成するプロセッサを更に有し、レベル−1コントローラは、レベル−1コントローラテーブル中のパラメータを評価することにより前記1つの第1レベル状態と関連した第1レベルコマンドを識別することを特徴とする請求項1記載のシステム。
【請求項7】
ユーザインタフェースを更に有し、レベル−1コントローラテーブル中のパラメータは、ユーザインタフェース中の値を調整することにより可変であることを特徴とする請求項6記載のシステム。
【請求項8】
第1レベル状態のシーケンスは、該シーケンスを含む複数のシーケンスから成り、レベル−1コントローラは、複数のシーケンスの中から第1レベル状態のシーケンスを選択してホスト制御レベルから受け取ったホストレベルコマンドに応答して動作することを特徴とする請求項1記載のシステム。
【請求項9】
サンプル吸引コンポーネント、フローセルコンポーネント、搬送機構及び検尿のための画像収集コンポーネントを更に有し、第2制御レベルは、サンプル吸引コンポーネントを制御する第1のレベル−2コントローラを有し、第1レベル−2コントローラは、レベル−2コントローラであり、前記第2の制御レベルは、フローセルコンポーネントを制御する第2のレベル−2コントローラと、サンプル採取と関連した搬送機構を制御する第3のレベル−2コントローラと、画像収集コンポーネントを制御する第4のレベル−2コントローラとを更に有することを特徴とする請求項1記載のシステム。
【請求項10】
ポンプ、弁及びモータを更に有し、ポンプ、弁及びモータは、第1のレベル−2コントローラにより制御されることを特徴とする請求項9記載のシステム。
【請求項11】
第2レベルコマンドを含むレベル−2コントローラテーブルを生成するプロセッサを更に有し、第1のレベル−2コントローラは、レベル−2コントローラテーブルに従ってサンプル吸引コンポーネントを制御し、レベル−2コントローラテーブルは、第2レベル状態によって索引付けられていることを特徴とする請求項9記載のシステム。
【請求項12】
レベル−2コントローラテーブルは、第1レベルコマンドに応答して動作するのが第2レベル状態のうちのどれであるかを指示することを特徴とする請求項11記載のシステム。
【請求項13】
レベル−2コントローラテーブルは、第2レベル状態により索引付けられた行と、第2レベルコマンドを指示する第1の組をなす列と、前記状態報告を含む状態報告を指示する第2の組をなす列と、前記レベル−2状態を含むレベル−2状態が実現されたかどうかをチェックするためのレベル−2検査を指示する第3の組をなす列と、移るべき第2レベル状態のうちの1つを指示する第4の組をなす列とから成り、前記1つの第2レベル状態は、レベル−2検査の結果で決まることを特徴とする請求項11記載のシステム。
【請求項14】
レベル−1コントローラテーブルを生成するプロセッサを更に有し、第1の制御レベルに関するレベル−1コントローラテーブルは、レベル−2コントローラテーブルと実質的に鏡像関係をなし、レベル−1コントローラテーブルは、第1レベル状態により索引付けされる行と、前記第1レベルコマンドを含む第1レベルコマンドを指示する第1の組をなす列と、レベル−1コントローラにより生成される状態報告を指示する第2の組をなす列と、レベル−1状態が実現されたかどうかをチェックするためのレベル−1検査を指示する第3の組をなす列と、検査結果に従って手順を指示する第4の組をなす列とから成ることを特徴とする請求項13記載のシステム。
【請求項15】
第1のレベル−2コントローラは、サンプル吸引コンポーネントを制御し、サンプル吸引コンポーネントのサブグループは、第1のレベル−2コントローラと、第2のレベル−2コントローラの両方により制御されることを特徴とする請求項9記載のシステム。
【請求項16】
フローセルは、流体の流れを制御する弁及びポンプを有することを特徴とする請求項9記載のシステム。
【請求項17】
検尿用サンプルを保持する試料ラックを更に有し、搬送機構は、試料ラックを搬送するためのアーム、モータ及びコンベヤベルトのうち少なくとも1つを有することを特徴とする請求項9記載のシステム。
【請求項18】
パラメータを含むレベル−2コントローラテーブルを生成するプロセッサを更に有し、第3のレベル−2コントローラは、レベル−2コントローラテーブル中のパラメータに従って搬送機構を制御することを特徴とする請求項9記載のシステム。
【請求項19】
画像収集コンポーネントは、ストローブバルブ、カメラ及びモータを有することを特徴とする請求項9記載のシステム。
【請求項20】
レベル−1コントローラは、検査結果に応答して、以下の動作、即ち、第1レベル状態のうちの1つから第1レベル状態のうちの別のものに進む動作、アイドル状態に進む動作及び検査結果に応じて誤差信号を生じさせる動作のうち1つを実施することを特徴とする請求項1記載のシステム。
【請求項21】
検査は、センサの読みを得る段階と、センサの読みを基準値と比較する段階とから成り、結果は、センサの読み及び基準値の相対的大きさから成ることを特徴とする請求項20記載のシステム。
【請求項22】
基準値を含む不揮発性メモリを更に有し、基準値は、不揮発性メモリの再プログラミングにより可変であることを特徴とする請求項21記載のシステム。
【請求項23】
基準値は、再プログラムされた基準値を上書きすることなくユーザインタフェースにより可変であることを特徴とする請求項21記載のシステム。
【請求項24】
第2の制御レベルは、前記レベル−2コントローラを含む複数のレベル−2コントローラを有し、複数のレベル−2コントローラは各々、第1レベルコマンドに応答して第2レベル状態の一義的なシーケンスで動作するためのものであり、複数のレベル−2コントローラは、互いに対し非同期的にこれらのそれぞれのシーケンスで動作し、レベル−1コントローラは、複数のレベル−2コントローラの第2レベル状態のそれぞれのシーケンスの終了に応答して第1レベル状態を終了させることを特徴とする請求項1記載のシステム。
【請求項25】
複数のレベル−2コントローラは、システムコンポーネントを直接的又は間接的に制御することを特徴とする請求項24記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A1】
image rotate

【図8A2】
image rotate

【図8B1】
image rotate

【図8B2】
image rotate

【図8C1】
image rotate

【図8C2】
image rotate

【図8D1】
image rotate

【図8D2】
image rotate

【図8E1】
image rotate

【図8E2】
image rotate

【図8F1】
image rotate

【図8F2】
image rotate

【図8G1】
image rotate

【図8G2】
image rotate

【図8H1】
image rotate

【図8H2】
image rotate

【図8I1】
image rotate

【図8I2】
image rotate

【図8J1】
image rotate

【図8J2】
image rotate

【図9A1】
image rotate

【図9A2】
image rotate

【図9B1】
image rotate

【図9B2】
image rotate

【図9C1】
image rotate

【図9C2】
image rotate

【図10A1】
image rotate

【図10A2】
image rotate

【図10B1】
image rotate

【図10B2】
image rotate

【図11A1】
image rotate

image rotate

【図11B1】
image rotate

image rotate


【公表番号】特表2006−506650(P2006−506650A)
【公表日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願番号】特願2004−553977(P2004−553977)
【出願日】平成15年11月18日(2003.11.18)
【国際出願番号】PCT/US2003/037136
【国際公開番号】WO2004/046834
【国際公開日】平成16年6月3日(2004.6.3)
【出願人】(505183082)インターナショナル リモート イメイジング システムズ インコーポレイテッド (5)
【Fターム(参考)】