JPH08511871A - Front-end device and method - Google Patents

Front-end device and method

Info

Publication number
JPH08511871A
JPH08511871A JP7503013A JP50301395A JPH08511871A JP H08511871 A JPH08511871 A JP H08511871A JP 7503013 A JP7503013 A JP 7503013A JP 50301395 A JP50301395 A JP 50301395A JP H08511871 A JPH08511871 A JP H08511871A
Authority
JP
Japan
Prior art keywords
liquid
container
opening
error
tip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7503013A
Other languages
Japanese (ja)
Inventor
クラーク,グレッグ,エス.
クーパー,ラッセル,エー.
ジョンソン,スコット,アール.
カイザー,デイル,エー.
Original Assignee
ベーリンガー・マンハイム・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ベーリンガー・マンハイム・コーポレーション filed Critical ベーリンガー・マンハイム・コーポレーション
Publication of JPH08511871A publication Critical patent/JPH08511871A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/10Devices for transferring samples or any liquids to, in, or from, the analysis apparatus, e.g. suction devices, injection devices
    • G01N35/1009Characterised by arrangements for controlling the aspiration or dispense of liquids
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01LCHEMICAL OR PHYSICAL LABORATORY APPARATUS FOR GENERAL USE
    • B01L9/00Supporting devices; Holding devices
    • B01L9/06Test-tube stands; Test-tube holders
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N33/00Investigating or analysing materials by specific methods not covered by groups G01N1/00 - G01N31/00
    • G01N33/48Biological material, e.g. blood, urine; Haemocytometers
    • G01N33/483Physical analysis of biological material
    • G01N33/487Physical analysis of biological material of liquid biological material
    • G01N33/49Blood
    • G01N33/4905Determining clotting time of blood
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/02Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor using a plurality of sample containers moved by a conveyor system past one or more treatment or analysis stations
    • G01N35/026Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor using a plurality of sample containers moved by a conveyor system past one or more treatment or analysis stations having blocks or racks of reaction cells or cuvettes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N11/00Investigating flow properties of materials, e.g. viscosity, plasticity; Analysing materials by determining flow properties
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00584Control arrangements for automatic analysers
    • G01N35/00722Communications; Identification
    • G01N35/00732Identification of carriers, materials or components in automatic analysers
    • G01N2035/00742Type of codes
    • G01N2035/00752Type of codes bar codes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/10Devices for transferring samples or any liquids to, in, or from, the analysis apparatus, e.g. suction devices, injection devices
    • G01N35/1009Characterised by arrangements for controlling the aspiration or dispense of liquids
    • G01N2035/1025Fluid level sensing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/10Devices for transferring samples or any liquids to, in, or from, the analysis apparatus, e.g. suction devices, injection devices
    • G01N2035/1027General features of the devices
    • G01N2035/103General features of the devices using disposable tips

Landscapes

  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Chemical & Material Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Pathology (AREA)
  • Analytical Chemistry (AREA)
  • Biochemistry (AREA)
  • Biomedical Technology (AREA)
  • Immunology (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Hematology (AREA)
  • Ecology (AREA)
  • Medicinal Chemistry (AREA)
  • Food Science & Technology (AREA)
  • Urology & Nephrology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Clinical Laboratory Science (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)

Abstract

(57)【要約】 空気供給源から使い捨てのピペットチップ(11)へ空気を供給する。前記供給源から前記チップを通る経路内に障害がなければ、空気は自由に流れ、空気供給回路内で前記チップより上流側に配置されている圧力トランスデューサ(12)によってわずかな背圧が測定される。ロボットアーム(20)で前記液体の表面(16)に向けてチップを下降させる。チップが前記表面に当接すると、前記液体が空気の流れを阻止するので前記トランスデューサによって検出される圧力が増加する。この増加はピペットチップが液面に到達したことを知らせる。チップを液面以下に下降させて、真空供給源を前記空気供給回路へ結合する。前記液体はチップへ吸い込まれる。トランスデューサは負圧を測定する。測定される圧力は空気の流速、液体の粘度、及びその他多数の二次的要因により変化する。流速とこれらその他の要素が既知の場合、粘度と粘度変化を測定することができる。前記チップで前記液体内に凝固またはゲル化が生じると、部分的真空度がより大きくなることから、凝固またはゲル化が検出される。 (57) [Summary] Air is supplied from the air supply source to the disposable pipette tip (11). If there is no obstruction in the path from the source through the tip, the air is free to flow and a slight back pressure is measured by a pressure transducer (12) located upstream of the tip in the air supply circuit. It The robot arm (20) lowers the tip towards the surface (16) of the liquid. When the tip abuts the surface, the pressure detected by the transducer increases as the liquid blocks the flow of air. This increase signals that the pipette tip has reached the liquid level. The tip is lowered below the liquid level to connect the vacuum source to the air supply circuit. The liquid is sucked into the chip. The transducer measures negative pressure. The pressure measured varies with air flow rate, liquid viscosity, and many other secondary factors. If the flow rate and these and other factors are known, viscosity and viscosity changes can be measured. When coagulation or gelation occurs in the liquid at the chip, the degree of partial vacuum becomes larger, so coagulation or gelation is detected.

Description

【発明の詳細な説明】 フロントエンド装置及び方法技術分野−産業上の利用可能性 本発明は、自動フロントエンド装置、即ち臨床検査システムにおいてピペット 操作、検体回収及び分注などを行うための装置に関する。背景技術 数種類の自動フロントエンド装置が公知である。これらの装置は、例えば米国 特許第4,794,085号、第4,478,094号、第4,780,833 号、欧州特許公開第0,169,071号、第0,273,128号、第0,3 41,438号、PCT国際公開WO91/16675号に図示説明されている 。なお、これにより、上記リストが関連のある従来技術の完全なリストであり、 かつ最も適切な従来技術を示すものであることを意図するものではなく、また推 論するべきものでもない。発明の開示 本発明の1つの態様によれば、使い捨てピペットチップを介して空気供給源か ら空気が供給される。供給源からピペットチップを介した経路内には障害物はな いので、空気は自由に流れ、空気供給回路内でピペットチップから上流側に位置 する圧力トランスデューサでわずかな背圧が測定される。チップはロボットアー ムにより液面に向けて下降する。ピペットチップが液面に接触すると、液体が空 気の流れを妨げるので、トランスデューサで検出される圧力が増加する。この増 加がピペットチップが液面に到達したことを知らせる信号となる。ピペットチッ プが液面より下に下りると空気供給回路に真空供給源が結合され、液体がピペッ トチップ内に吸い込まれる。トランスデューサは負圧(部分的真空度)を測定す る。測定される圧力は、空気の流速、液体の粘度、及びその他多数の二次的要因 に依存する。空気の流 速とその他の要因が既知の場合、粘度と粘度変化を測定することかてきる。ピペ ットチップで液体に凝固またはゲル化が起こると部分的真空度が比較的大きく上 昇するので、凝固またはゲル化が検出される。ピペットチップの孔の直径や液流 の特性、濡れの状態、流速、ロボットアームの速度等、処理に影響を与え処理を 更に正確に記述するために使用できる要因が多数存在する。図面の簡単な説明 本発明は以下の詳細な説明と、本発明を図示する添付の図面とを参照すること で最も良く理解されよう。図面において、 図1は本発明に従って構成されたシステムの部分斜視図である。 図2は図1に図示したシステムのある程度詳細なブロック図である。 図3は図1に図示したシステムの細部の側断面図である。 図4a〜4jは図2に図示したブロック図のより詳細な回路ブロック図である 。 図5は図3に図示した細部の部分斜視図であり、図1に図示したシステムの他 の関連する詳細をともに示す図である。 図6は本発明に従って構成されたシステムを制御するための幾つかのソフトウ ェアタスクの構造及び相互作用である。 図7〜11、12a〜b、13、14、15a〜b、16a〜b、17〜23 、24a〜b、25〜41、42a〜b、43〜58、59a〜b、60a〜b 、61〜70、71a〜b、72a〜b、73a〜b、74a〜b、75、76 a〜b、77a〜b、78〜80、81a〜b、82〜90、91a〜b、92 、93、94a〜c、95、96a〜b、97a〜b、98a〜b、99a〜b 、100、101、102a〜b、103a〜b、104、105、106a〜 c、107、108a〜b、109a〜b、110、111、112a〜b、1 13、114、115a〜b、116、117、118a〜b、119a〜c、 120a〜c、121a〜c、122a〜c、123〜137は、図6に図示し たソフトウェアタスク を理解する上で有用な流れ図及び関連の略図である。 図138は図1に図示したシステムの上面図である。 図139は図3に図示した細部の上面図であり、図1に図示したシステムの幾 つかの他の関連する詳細をともに示す図である。 図140は図1に図示したシステムの細部の底面図である。 図141は図1に図示したシステムの詳細の側断面図である。 図142は図1に図示したシステムの細部の上面図である。 図143は図1に図示したシステムの細部の側断面図である。発明を実現するための形態 図1をここで参照すると、シリンジポンプ10から使い捨てピペットチップ1 1を介して空気が供給される。ポンプ10からピペットチップ11を介した経路 内には障害物がないので、空気は自由に流れシリンジポンプ10の回路14内で ピペットチップ11から上流側に配置された圧力トランスデューサ12(図2参 照)によってわずかな背圧が測定される。シリンジポンプ10は、例えば、ハミ ルトン社(Hamilton Company,P.O.Box10030,Reno,NV 89520-0012)製39450 型シリンジポンプである。チップ11はアーム20によって液体18の表面16 (図3参照)へ向かって下降する。ピペットチップ11が液体18の表面16に 接触すると、液体18が空気の流れを妨げトランスデューサ12で検出される圧 力が上昇する。この圧力上昇は、ピペットチップ11が液面16に接したことを 知らせる信号を発する。ピペットチップ11は液面16より更に下へと下降し、 シリンジポンプ10が回路14内に部分的真空を引くと、液体18がピペットチ ップ11に引き込まれる。トランスデューサ12は部分的真空度を測定する。測 定される部分的真空度は回路14を介して流れる気流の速度と、液体18の粘度 と、その他の多数の二次的要因によって変化する。これらの要因が既知の場合、 粘度と粘度変化を測定することができる。ピペットチップ11の液体18内に、 破線24で図示したような凝固また はゲルが生成されると、凝固またはゲル24がない場合に液体18の流れが発生 させる部分的真空度に比べて比較的大きな真空度の上昇を発生するので、凝固ま たはゲル24が検出されることになる。本発明の方法を実施するのに有用な電気 システムが、図2及び図4a〜jに図示してある。以下の模式図及び回路ブロッ ク図の説明は特定の集積回路及びその他の部材また多くの場合これらの特定の供 給元も明らかにしている。特定の端子及びピンの名称と番号は、完全のためそれ らとの関連において一般的に付与されているものである。これらの端子とピンの 識別子は、これらの特に識別された部材に付与されるものである。これらの端子 とピン識別子は、これらの特に識別された部材に付与されるものであることを理 解すべきである。これは代表例を構成するものではなく、またそのようないかな る代表例と推定されるものでもないこと、そして、特定の部材または供給元は、 必要な機能を実行することのできる同一のまたはその他の何らかの供給元から入 手可能な唯一の部材であることを理解すべきである。さらに、同一のまたは異な る供給元から入手可能なその他の適当な部材は、本明細書の説明に示されたのと 同じ端子/ピン識別子を使用すべきでないことも理解されるべきである。 システムのブロック図を図2に示す。本システムは、バーコードリーダ151 及びベーリンガー・マンハイム社製ES300分析器などの臨床検査装置155 を制御するパーソナル・コンピュータ153とRS232Cインタフェース15 0を介して接続されたマスターマイクロコントローラ(μC)120を有する。 システムのアナログ/デジタルコンバータ70は、抵抗/電圧(R/V)コンバ ータ73を介して強制スイッチ71からの入力値と、真空/圧力トランスデュー サ12からの入力値をμC120へ供給する。これらの値に基づいて、μC12 0はベント弁駆動回路132を制御する。μC120はアーム20のR(角度) ステッピングモータ183をRモータ駆動回路168、172、176を介して 、またアーム20のZ(上下動)ステッピングモータ185をZモータ駆動回路 170、174、17 8を介して、どちらも第1のスレーブμC160を介して制御する。R及びZモ ータ183、185それぞれの動作は、R及びZモータの動作エンコーダを介し て確認され、エンコーダの動作信号は部材184−11、−13、−14と18 4−3、−15、−16をそれぞれ介してシステムへ返される。μC120は検 体試験管ラック300(図5参照)シャトル302のステッピングモータ195 をシャトルモータ駆動回路198、200、202を介して、またY(半径方向 )DCサーボモータ197をYモータ駆動回路220、222を介して、どちら も第2のスレーブμC190を通じて制御する。シャトルモータ195の動作は シャトル光学センサ224を介して確認される。Yモータ217の動作はYモー タ動作エンコーダを介して確認され、Y動作エンコーダの動作信号は部材234 、236を介してシステムへ返される。第2のスレーブμC190はまたRS2 32Cインタフェース150を介してシリンジポンプ10を制御する。 図4aをここで参照すると、図1〜図2に図示したシステムの圧力トランスデ ューサ12はハネウエル社マイクロスイッチ事業部の176PC07型差動圧力 トランスデューサ12を備え、トランスデューサの1番ピンはVs電圧供給源に 接続され、3番ピンはシステムの接地へ接続され、2番ピン、4番ピンはナショ ナル・セミコンダクタ社製LM324型4回路入り差動増幅器の2つの差動増幅 器34、36の非反転入力(+)端子にそれぞれ接続されている。増幅器34、 36の反転入力(−)端子は10kΩの抵抗器で接続されている。増幅器34、 36の出力端子は、100kΩの抵抗器を介してそれぞれの入力端子に接続され ている。増幅器34、36の出力端子はまたそれぞれ100kΩ抵抗器を介して LM324差動増幅器38の(−)と(+)の入力端子にそれぞれ接続されてい る。増幅器38の出力端子は、47kΩの抵抗器と0.1μFのコンデンサを含 むRC並列回路を介してその(−)入力端子に接続されている。 供給電圧は、コネクタ40の端子40−1に接続されたDC+12V電源、ナ ショ ナル・セミコンダクタ社製LM78L05型5Vレギュレータ集積回路42とL M324型差動増幅器24からトランスデューサ12のVs端子へ供給される。 コネクタ40の端子40−1のDC+12V電源は、0.1μFのコンデンサを 介して接地へ、そしてコネクタ40の端子40−4へ接続されている。端子40 −1はまたICレギュレータ42のV1端子にも接続されている。レギュレータ 42のV0端子と接地との間には、0.1μFのコンデンサが挿入されている。 レギュレータ42のV0端子と増幅器44の(+)入力端子との間には、2.4 kΩの抵抗器が接続されている。ナショナル・セミコンダクタ社製LM385型 2.5Vツェナーダイオード46のカソードは、増幅器44の(+)入力端子へ 、アノードは接地へそれぞれ接続されている。増幅器44の出力端子は、トラン スデューサ12のVs端子に接続されているほか、直列接続された100kΩ抵 抗器48、50を介して接地にも接続されている。抵抗器48、50の接続点は 、増幅器44の(−)入力端子に接続されている。 図4aに図示した回路は、低利得と高利得両方の出力信号を供給する。高利得 出力信号はコネクタ40の端子40−3に現われ、LM324型差動増幅器52 の出力端子から10kΩ抵抗器を通じて供給される。増幅器52の(+)入力端 子は、10kΩ抵抗器を介してツェナーダイオード46のアノードに接続されて いる。増幅器52の(−)入力端子は、10kΩ抵抗器を介して増幅器38の出 力端子に接続されている。増幅器52の出力端子は、100kΩ抵抗器と0.1 μFのコンデンサとを含むRC並列回路を介してその(−)入力端子へ接続され ている。100kΩ抵抗器、10kΩポテンショメータ54及び100kΩ抵抗 器の直列接続を含む回路が、増幅器44の出力端子と接地との間に接続されてい る。ポテンショメータ54の可動端子は、単位利得バッファ構成に接続されてい るLM324型差動増幅器56の(+)入力端子に接続されている。増幅器56 の出力端子は、100kΩ抵抗器を介して増幅器38の(+)入力端子に接続さ れている。増幅器38の出 力端子は、10kΩ抵抗器を介してコネクタ40の低利得出力端子である端子4 0−2に接続されている。増幅器44の出力端子におけるDC+5Vレベルは、 LM324型差動増幅器58の(+)入力端子に接続されている。DC+12V は、10kΩ抵抗器を介して増幅器58の(−)入力端子へ接続されている。増 幅器58の(−)入力端子、コネクタ40の低利得端子40−2、コネクタ40 の高利得端子40−3は、それぞれ1N4148型ダイオード60、62、64 を介して増幅器58の出力端子に接続されている。 コネクタ40からの低利得及び高利得の圧力信号は、多重化能力を有するマイ クロリニア型ML2258型アナログ/デジタル(A/D)コンバータ70のI Nput端子5とINput端子6へそれぞれ印加される(図4b参照)。高利 得(液面検出用)と低利得(液体吸入及び分注用)の両方の能力が提供されるが 、図示した実施例においては高利得入力だけを使用している。本実施例では、い くつかの吸入分注信号について高利得圧力トランスデューサ12の出力が飽和す るが、出力は最終的に飽和状態を脱して有意なレベルに戻る。DC+35Vは、 69.8kΩ±1%と10kΩの直列抵抗器を介して接地に接続される。これら 2つの抵抗器の接続点は、A/Dコンバータ70のINput端子1に接続され ている。DC+12Vは、30kΩ±1%と10kΩの直列抵抗器を介して接地 に接続されている。これら2つの抵抗器の接続点は、A/Dコンバータ70のI Nput端子2に接続されている。システムのVccと+5Vアクセサリ電圧源 は、それぞれ直列に挿入された10kΩ分圧抵抗器を介して接地に接続されてお り、分圧回路の10kΩ抵抗器の接続点は、A/Dコンバータ70のINput 端子3及び4にそれぞれ接続されている。 DC+2.5Vは、2個のLM324型差動増幅器76、78の(+)入力端 子に接続されている。DC+2.5Vは、増幅器76、78の(+)入力端子と 接地との間に接続されたLM385型2.5Vツェナーダイオード80で調整さ れる。 ツェナーダイオード80と並列に、0.1μFのコンデンサが接続されている。 増幅器76、78の(+)入力端子からVccへ2.4kΩ抵抗器が接続されて いる。増幅器76の出力端子は、2N3944型NPNトランジスタ82のベー スへ接続されている。トランジスタ82のコレクタは、DC+12Vに接続して あり、エミッタはA/Dコンバータ70のVccとREF+端子に接続されてい る。増幅器76の(−)入力端子へその出力端子から0.001μFコンデンサ を介して、そして、トランジスタ82のエミッタから10kΩ抵抗器を介してフ ィードバックがかけられる。増幅器76の(−)入力端子と接地との間には、1 0kΩ抵抗器が接続されている。 増幅器78の出力端子は、10kΩ抵抗器を介して2N3904型NPNトラ ンジスタ84のベースに接続されている。トランジスタ84のコレクタは、10 kΩの負荷抵抗器を介してDC+12Vへ、またエミッタは10kΩフィードバ ック抵抗器を介して接地へそれぞれ接続されている。トランジスタ84のエミッ タは、増幅器78の(−)入力端子へ接続されている。トランジスタ84のコレ クタは、LM324型差動増幅器86の(+)入力端子へ接続されている。増幅 器86の出力端子は、10kΩ抵抗器を介して2N3906型PNPトランジス タ88のベースに接続されている。トランジスタ88のエミッタは、増幅器86 の(−)入力端子へ直接、また127kΩ±1%抵抗器を介してDC+12Vへ 接続されている。トランジスタ88のコレクタは、単位利得バッファとして構成 されているLM324型差動増幅器90の(+)入力端子へ接続されている。 ピペットチップ11が、例えば試験管または検査カップの底に接触したことを 知らせるために、ピペットのチャックに取り付けられたマイクロスイッチ(図示 していない)は、増幅器90の入力端子間に10kΩ抵抗器を介して接続されて いる。増幅器90の(+)入力端子と接地との間には、0.01μFコンデンサ が接続されている。増幅器90の出力端子は、10kΩ抵抗器を介してA/Dコ ンバータ7 0のINput端子7に接続されている。5.1Vツェナーダイオード92はI Nput端子7を保護するためのもので、INput端子7と接地との間には、 2.2μF,16Vのタンタルコンデンサが接続されている。A/Dコンバータ 70のアドレスバス0〜アドレスバス2とデータバス0〜データバス7は、それ ぞれシステムバスのA0〜A2とD0〜D7線に接続されている。 システムのリセットは、手動リセットボタン94を含むリセット回路93経由 で行う。リセットボタン94の一方の端子は接地に、他方の端子は74HC74 フリップフロップ96のCLear入力端子に接続されている。フリップフロッ プ96のQ入力端子は、システムバスのHC74/Q線を形成する。フリップフ ロップ96のQバー出力端子は、システムバスのX74Qバー線を形成する。シ ステムバスのMASTER/T1線は、フリップフロップ96のCLocK入力 端子に接続される。 リセットは初期設定によって行うこともできる。10Hzクロック信号が74 HC393型8ビットバイナリカウンタ100のA入力端子に印加される。バイ ナリカウンタ100のQC出力端子は、74HC393型カウンタ102のA入 力端子に接続されてカウンタ対を32分割カウンタとして設定するように構成し てあり、カウンタ102のQD出力端子に3.2秒毎にリセット信号が現われる ようにしてある。10Hzのクロック信号は、LM339型差動増幅器105の 出力端子に供給される。差動増幅器105の(+)入力端子は、2個の10kΩ 抵抗器の接合部に接続されており、その抵抗器の一方の別の端子はVccへ、他 方の抵抗器の他方の端子は接地へ接続されている。差動増幅器105の(−)端 子は、4.7μFタンタルコンデンサを介して接地へ接続されている。差動増幅 器105の出力端子とその(+)と(−)の入力端子の間には、10kΩフィー ドバック抵抗器がそれぞれ接続されている。5kΩ抵抗器で差動増幅器105の 出力端子はVccへ接続されている。 カウンタ102のQD出力端子は、1N4148型ダイオードを介してLM3 39型差動増幅器104の(−)入力端子に接続されている。1MΩ抵抗器と0 .1μFコンデンサを含むRC並列回路が、差動増幅器104の(−)入力端子 と接地との間に接続されている。差動増幅器104の(+)入力端子は、DC+ 2.5Vへ接続されている。これの出力端子は、1MΩプルアップ抵抗器を介し てVccへ、また2.2μF,16Vタンタルコンデンサを介して接地へ接続さ れている。差動増幅器104の出力端子はまたリセットボタン94の通常は接地 されない端子へ1N4148型ダイオード106を介して接続される。ダイオー ド106のアノードは、LM339型差動増幅器108の(−)入力端子へ接続 されている。ダイオード106のカソードは、LM339型差動増幅器110の 出力端子へ接続されている。差動増幅器108の(+)入力端子は、100kΩ 抵抗器を介してDC+2.5Vへ接続されている。これの出力端子は、1MΩフ ィードバック抵抗器を介して自身の(+)入力端子へ接続される。差動増幅器1 10の(−)入力端子はDC+2.5Vへ接続する。差動増幅器110の(+) 入力端子は、10kΩ±1%抵抗器を介してDC+12Vへ、また3.74kΩ ±1%抵抗器を介して接地へ接続されている。 差動増幅器108の出力端子は、10kΩプルアップ抵抗器を介してVccへ 接続され、システムのマスターリセット信号供給源を形成する。これはまた、1 MΩ抵抗器114と0.1μFコンデンサ116の直列回路を介してシステムバ スのMASTER/T1線へも接続されている。MASTER/T1線は、10 kΩ抵抗器を介してVccへプルアップされる。抵抗器114とコンデンサ11 6の接合点は、バイナリカウンタ100、102のCLeaR入力端子に接続さ れる。 インテル8032−8ビットマスターマイクロコントローラ(μC)120( 図4c参照)は、インタフェース150を介して検査装置155を操作するパー ソナルコンピュータ153との通信全てを取り扱う。μC120はまた、RS2 32C 双方向インタフェースを用いて、システムのバーコードリーダ151を制御する 。さらに、2台のスレーブμC160、190は、双方向通信を介してμC12 0によって制御される。応力センサ71、73、圧力トランスデューサ12及び ベント弁駆動回路132もまたμC120によって監視される。液面レベルと凝 固は、圧力トランスデューサ12からA/Dコンバータ70を介してμC120 で検出される。より詳しくは、μC120が次のようなステップを実行すること で液面を検出している。ベント弁駆動回路132がベント弁を開き、シリンジポ ンプ10が空気を吸入する。ベント弁駆動回路132が次にベント弁を閉じると 、ピペットチップ11が検体表面16に向かって下降するに従いシリンジポンプ 10は空気を排出する。ピペットチップ11が検体表面16に達すると、圧力が わずかに上昇する。アーム20はこのわずかな圧力上昇に応答して動きを停止す る。ベント弁駆動回路132がベント弁を開き、シリンジポンプ内に残っていた 残りの空気が排出される。ベント弁駆動回路132はここでベント弁を閉じ、ア ーム20が検体表面16より下に下降し、吸引しようとする検体量によって定ま る量だけピペットチップ11を下降させてから、検体を吸引する。検体吸引中に 異常に低い負圧(異常に高い真空度)が発生することで凝固を検出する。 μC120が有するP0.0〜P0.7端子は、各々システムバスのD0〜D 7線へ接続されている。P1.0〜P1.7端子は、それぞれシステムバスのマ スター入出力要求(MIOREQ)1、マスタービジー(MBUSY)1、MI OREQ2、MBUSY2線と、スプラグ(Sprague)のUDN2508型高電 位線駆動インバータ122、スプラグのULN2003型低電位線駆動インバー タ124、システムバスのMP1.6線、デバッグ用コネクタ126の端子12 6−1へ接続されている。直列の10kΩ抵抗器128、130は、インバータ 122、124の入力端子を結合し、抵抗器128、130の接合点がVccに 維持される。インバータ122の出力端子は、ULN2003型インバータ13 2の入力端子に接続され ており、インバータ132の出力端子はコネクタ134の端子134−2に結合 されているベント弁駆動ソレノイド(図示していない)を介して電流を引き込む 。コネクタ134の端子134−1は、DC+12Vに接続されており、1N4 148型フライバックダイオードがコネクタ134の端子1と2との間に接続さ れている。インバータ124の出力端子は、コネクタ136の端子136−3と 136−4との間に接続されている1kΩ抵抗器及び危険状態表示LED(図示 していない)を介してDC+12Vから電流を引き込む。ULN2003型イン バータ138の出力端子は、コネクタ136の端子136−1と136−2との 間に接続されている1kΩ抵抗器及び正常状態表示LED(図示していない)を 通じてDC+12Vから電流を引き込む。 アトメル製EEPROM140は、そのA0〜A12とD0〜D7の各端子が それぞれシステムバスのA0〜A12及びD0〜D7線へ接続されている。EE PROM140のCEバー及びOEバー端子は、それぞれシステムバスのMCS 0バーとReaDバー線とに接続されている。EEPROM140のWrite Enableバー端子は、EEPROMイネーブルスライドスイッチ141の一 方の端子へ接続してあり、スライドスイッチ141の他方の端子はμC120の WRバー端子へ接続されている。EEPROM140のWEバー端子はまた10 kΩプルアップ抵抗器を介してVccへ接続されている。ウエハスケール社製P SD311型マイクロコントローラインタフェース142は、そのPA0〜PA 7とAD8/A8〜AD15/A15端子とがそれぞれシステムバスのA0〜A 15線へ接続してあり、そのAD0/A0〜AD7/A7端子はそれぞれシステ ムバスのD0〜D7線へ接続されている。μC120のReaDバー、Writ Eバー、プログラムストア・イネーブル(PSEN)、及びアドレスラッチ・イ ネーブル/Pバー(ALEP)端子は、μCインタフェース142のReaDバ ー、WRiteバーVPP、PSENバー、アドレスラッチ・イネーブルの各端 子へそれぞれ接続されている。μC インタフェース142のPB0〜PB7、A16/CS8〜A18/CS10、 及びA19/CSI端子は、それぞれシステムバスのMCS0バー〜MCS10 バー線へ接続されている。μC120のTxD、RxD割り込み1(RxDIN T1)、T0、T1端子は、それぞれシステムバスのマスター送信、マスター受 信、BARCODE、BUSYバー、MASTER/T1線へ接続されている。 μC120とμCインタフェース142のリセット端子は、システムのリセット 線へ接続されている。μC120の割り込み0(INT0)端子は、スタンダー ド・マイクロシステムズ社製81C17汎用非同期送受信器(UART)144 へ接続されている。 μC120のX1端子は、ECS社製OECS−110.5−1−A101A 型11.0592MHz5Vクロックオシレータ146の出力端子(OUT)へ 接続されている。この端子はシステムバスのCLOCK端子を形成する。ECS 社製OECS−51−1−A101A型5.0688MHz5Vクロックオシレ ータ148(図4d参照)の出力端子(OUT)は、システムバスのクロック( CLK)端子を形成する。システムバスのD0〜D7線は、それぞれUART1 44のD0〜D7線へ接続されている。UART144のWRiteバー、Re aDバー、RS、ChipSelectバー、及びクロック端子は、システムバ スのWRバー、RDバー、A0、MasterChipSelectlバー、C LKの各線に接続されている。UART144のI/O端子は、システムバスの HC74/Q線に接続されている。UART144のTX及びRX端子は、オン ボードDC+5V−DC±12V電源を備えたマキシム社製MAX238型RS 232Cドライバ150のT1INとR1OUT端子とにそれぞれ接続されてい る。ドライバ150のT2IN、R2OUT、T3IN、及びR3OUT端子は 、システムバスのMTX、MRCV、スレーブ2送信(S2Tx)、及びスレー ブ2受信(S2RCV)線へそれぞれ接続されている。ドライバ150のC1+ とC1−端子、C2+とC2−端子、V+とVcc端子、接地とV−端子との間 には、それぞれ4.7μF,25Vコンデン サが接続されている。コネクタ152の端子152−1と152−2との間に接 続されているバーコードリーダ151と交換される信号は、ドライバ150のT 1OUT及びR1IN端子で、バーコード送信1に送信されバーコード受信1に 受信される。図示のバーコードリーダ151としては、例えばシンボル・テクノ ロジーズ社(116.TWilbur Place,Bohemia,NY 11716-3300)から入手可能なLS −20−10024Aバーコードリーダがある。バーコードリーダ151は、R S232双方向インタフェース150を介してμC120によって制御される。 図示したシステムに接続するベーリンガー・マンハイムES300型分析器1 55の運転を制御するPC153との通信は、全てT2OUT−R2INシリア ルデータポートと、ドライバ150のT2OUTとR2INとが接続されている コネクタ端子154−1、154−2とを経由する。システムのシリンジポンプ 10は、ドライバ150の端子T3OUT及びR3INにそれぞれ接続されてい るコネクタ端子156−1と156−2とを経由して駆動される。 ピペットチップ駆動アーム20が待機位置0°から旋回する角度Rと、作業表 面上にアーム20により移動されたピペットチップ11の上下動Zとの制御は、 インテル社製8032スレーブμC160とウエハスケール社製PSD311μ Cインタフェース162を介して行われる。これについては図4eを参照された い。μC160は、ハーフステップ駆動回路168、172、176と、動作用 モータ183と、位置フィードバック用にコネクタ184−11、−13、−1 4へ接続されているエンコーダとを用いて、R駆動を監視し制御する。μC16 0はまた、ハーフステップ駆動回路170、174、178と、動作用モータ1 85と、位置フィードバック用にコネクタ184−3、−15、−16へ接続さ れているエンコーダとを用いて、Z駆動を監視し制御する。アーム20の待機位 置または基準位置は、コネクタ182−11と182−3とへそれぞれ接続され ているR及びZリミットスイッチで設定する。 μCインタフェース162のPB0〜PB7とA16/CS8〜A18/CS 10端子とは、システムバスのS1CS0バー〜S1CS10バー線へそれぞれ 接続されている。μCインタフェース162のAD0/A0〜AD7/A7端子 は、システムバスのS1D0〜S1D7線へそれぞれ接続されている。μCイン タフェース162のAD8/A8〜AD15/A15端子は、それぞれシステム バスのS1A8〜S1A15線へ接続されている。μC160のP0.0〜P0 .7端子は、システムバスのS1D0〜S1D7線へそれぞれ接続されている。 μC160のP2.0〜P2.7端子は、システムバスのS1A8〜S1A15 線へそれぞれ接続されている。μC160及びμCインタフェース162のRD バー端子は相互に接続されている。μC160のWRバー端子は、μCインタフ ェース162のWRバーVPP端子へ接続されている。μC160のPSEN端 子は、μCインタフェース162のPSENバー端子へ接続されている。μC1 60のアドレスラッチ・イネーブル/Pバー端子は、μCインタフェース162 のALE端子へ接続されている。μC160のTXD端子は、コネクタ164の 端子164−1へ接続してあり、この端子はシステムのデバッグに用いられる。 コネクタ164の端子164−2は接地へ接続されている。μC160のX1端 子は、システムのCLOCK線へ接続されている。μC160の割り込み0(I NT0)、割り込み1(INT1)、T0、T1端子は、それぞれシステムのM IOREQ1、XRZ/INT、XDZ2、XDZ1線へ接続される。μC16 0のP1.0〜P1.7端子は、それぞれシステムのMBUSY1、RLIMI Tバー、ZLIMITバー、RSTEP0、ZSTEP0、RZENable、 XDR1、XDR2線へ接続されている。μC160のRXD端子はシステムの RZDIRection線へ接続されている。μC160及びμCインタフェー ス162のRESET端子は、システムのRESET線へ接続されている。 図4fを参照すると、システムのRSTEP0、ZSTEP0、RZEN、R Z DIR線は、UDN2508型インバータ168、170、172、174、1 76、178を介して、R駆動及びZ駆動ステッピングモータを制御している。 RSTEP0線はインバータ168の入力端子に接続されている。ZSTEP0 線はインバータ170の入力端子に接続されている。RZEN線はインバータ1 72、174の入力端子に接続されている。RZDIR線はインバータ176、 178の入力端子に接続されている。R駆動及びZ駆動ステッピングモータへの RSTEP、ZSTEP、RENable、ZENable、RDIRecti on及びZDIRection制御信号は、それぞれインバータ168、170 、172、174、176、178の出力端子に現われる。これらの信号は、コ ネクタ180の端子180−7、180−3、180−5、180−1、180 −8、180−4をそれぞれ介して、R駆動及びZ駆動ステッピングモータへ供 給される。 R駆動及びZ駆動ステッピングモータの活動を表わす信号は、コネクタ182 を介してシステムへ戻る。増幅器90に印加される応力センサ信号は、端子18 2−1と182−2との間に現われる。RLIMIT信号は端子182−11と 接地との間に現われ、これが端子182−19と−20へ供給される。ZLIM IT信号は端子182−3と接地との間に現われる。R1、R2、Z1、Z2信 号は、それぞれ端子13〜16と接地との間に現われる。DC+12Vは端子1 82−17と18とからR駆動及びZ駆動ステッピングモータ・センサ回路へ供 給される。端子182−11及び182−3とVccとの間には、それぞれ10 0kΩプルアップ抵抗器が接続されている。端子182−13〜16と接地との 間には、それぞれ100kΩプルダウン抵抗器が接続されている。端子182− 11、−3、−13〜−16と74HC14型インバータの入力端子184−1 1、−3、及び−13〜−16との間にはそれぞれ100kΩ抵抗器が接続され ている。インバータ184−11、−3、−13〜−16の入力端子と接地との 間には、それぞれ0.001μFコンデンサが接続されている。インバータ18 4−11、−3、−13〜−1 6の出力端子は、それぞれシステムのRLIMITバー、ZLIMITバー、X R1、XR2、XZ1、XZ2線へ接続されている。 インテル社製8032FA型の第2のスレーブμC190と、これに付随する ウエハスケール社製PSD311型μCインタフェース192(図4g参照)は 、ピペットチップ11のアーム20に対して半径方向内方へ及び半径方向外方へ のY軸方向の動きを制御する。μC190とこれに付随するインタフェース19 2はまた、シャトル302の動きも制御しており、シャトルは図示したシステム に接続されているES300型分析装置155で検査するために、それぞれの試 験管304−1〜304−10に入れてある検体を取り出す位置まで試験管ラッ ク300を順次移動させるものである。μC190は、シャトルモータの駆動回 路198、200、202とYモータ駆動回路220、222とを監視し制御す る。μC190のP0.0〜P0.7端子及びμCインタフェース192のAD 0/A0〜AD7/A7端子は、それぞれシステムバスのS2D0〜S2D7線 へ接続されている。μC190のP2.0〜P2.7端子及びμCインタフェー ス192のAD8/A8〜AD15/A15端子は、それぞれS2A8〜S2A 15線へ接続されている。μC190とμCインタフェース192のRDバーと RDバー端子、WRバーとWRバーVPP端子、PSENとPSENバー端子、 アドレスラッチ・イネーブル/PバーとALE端子は、それぞれが相互に接続さ れている。μCインタフェース192のPA0〜PA5端子は、それぞれシステ ムのXPoWeRDoWn1、XPoWeRDoWn2、XDONE1、XDO NE2、XRESET1、XRESET2線へ接続されている。XDONE1と XDONE2及びμCインタフェース192の端子PA6は、それぞれ10kΩ プルアップ抵抗器を介してVccへ接続されている。PA6端子はまた、74H C14型インバータ194の入力端子に接続してあり、これの出力端子は74H C14型インバータ196の入力端子に接続されている。インバータ196の出 力端子はシステムのRESET信号を供給する。μCイ ンタフェース192のPB0〜PB7とA16/CS8〜A18/CS10端子 は、それぞれシステムのS2CS0〜S2CS10線へ接続されている。μC1 90及びμCインタフェース192のRESET端子は、システムのMRESE T線へ接続されている。 μC190のTXDとRXD端子はそれぞれシステムのS2TX及びS2RC V線へ接続されている。μC190のX1端子はシステムのCLOCK線へ接続 されている。μC190の割り込み(INT)0、INTI、T0、T1端子は 、それぞれシステムのMIOREQ2、XYIT、XDY1、XDY2線へ接続 されている。μC190のP1.0〜P1.4端子は、それぞれシステムのMB USY2、BARCODE、YENableバー、YCounterClock Wiseバー、YClockWiseバー線へ接続されている。μC190のP 1.2〜P1.7端子は、それぞれが10kΩプルアップ抵抗器を介してVcc へ接続されている。端子P1.5〜P1.7はまた、それぞれULN2003型 インバータ198、200、202の入力端子へ接続されている。端子P1.7 はさらに、コネクタ206の端子206−1へ接続されている。コネクタ206 の端子206−2は接地へ接続されている。コネクタ206はシステムのデバッ グに使用される。インバータ198、200、202の出力端子は、それぞれシ ステムにSHuttleSTEP、SHuttleReSeT、SHuttle DIRection信号を供給する。 μCインタフェース142、162、192のEPROMに組み込んであるフ ァームウェアについては、本明細書の付録Aに詳細に説明されている。 μC190のYENバー端子はLM339型差動増幅器208の(−)入力端 子へ接続されている。これについては図4hを参照されたい。10kΩ抵抗器2 10と、6.8kΩ抵抗器212と、2.4kΩ抵抗器214との直列の組み合 わせがVccと接地との間に接続されている。抵抗器210、212の接合点で 約DC+ 2.4Vが差動増幅器208の(+)入力端子へ接続されている。抵抗器212 、214の接合点における約DC+0.625Vは、2個のLM339型差動増 幅器216、218の入力端子にTTL閾値を供給する。差動増幅器208の出 力端子は、SGS社L293E型ブリッジ駆動増幅器220の入力端子である1 番ピンへ直接接続され、さらに10kΩプルアップ抵抗器を介してVccへ接続 される。増幅器220の入力端子である2番ピンは、システムのXYCW線へ接 続されている。増幅器220の出力端子である3番ピンは、システムのYDRI VECW線へ信号を供給する。増幅器220の出力端子である4番ピンは、10 kΩ抵抗器を介して増幅器216の(−)入力端子へ、また3.3Ωの抵抗器を 介して接地へ接続されている。増幅器216の(−)入力端子と接地との間には 、0.1μFコンデンサが接続されている。システムのXYCCW線は、L23 9E型増幅器222の入力端子である9番ピンへ接続されている。増幅器222 の出力端子である8番ピンは、システムのYDRIVECCW線に信号を供給す る。接地と増幅器220、222のそれぞれの出力端子である3番ピンと8番ピ ンとの間、及びこれらの端子とDC+7Vとの間には、それぞれ1N4148型 ダイオードが接続してあり、これらの端子にかかる電圧を−0.6Vから+7. 6Vの間でクランプする。 増幅器222の出力端子7番ピンは、10kΩ抵抗器を介して増幅器218の (−)入力端子へ、また3.3Ω抵抗器を介して接地へ接続されている。増幅器 218の(−)入力端子と接地との間には0.1μFコンデンサが接続されてい る。増幅器216、218の出力端子は、それぞれ10kΩプルアップ抵抗器を 介してVccへ接続されている。これらの端子はそれぞれシステムにXYLIM INバー信号とXYLIMOUTバー信号とを供給する。 試験管ラック300は、それぞれが本発明のシステムがその前端に接続されて いるES300分析装置155で検査しようとする検体を入れた10本までの試 験管304−1〜304−10を保持する。試験管ラックの位置は特定のシステ ムの設 定中に初期設定を行い、それ以降はモトローラ社製H22B1型スロット式光ス イッチなどの光学式検出器223−Rで検出する。光学検出器223−Rの出力 ならびにそれぞれの試験管ラック300内の試験管304−1〜304−10の 位置を予測する光学式検出器223−1〜223−10の出力は、コネクタ22 4を介して本発明のシステムに入力され(図4i参照)、コネクタ224の端子 224−1と224−2は、コネクタ224に接続されている試験管ラック及び 試験管位置表示装置225へDC+12Vを供給する。端子224−13〜22 4−3は、試験管ラックと試験管ラック内の試験管の位置を表わす信号を光学式 検出器223−R及び223−1〜223−10から返す。これらの信号はそれ ぞれの100kΩ抵抗器226−13〜226−3と228−12〜228−3 との接合点に接続されている。抵抗器226−13〜226−3の他の端子は接 地へ接続されている。抵抗器228−13〜228−3の残りの端子は、接地に 接続されている。抵抗器228−13〜228−3の残りの端子は、それぞれ7 4HC14型反転増幅器230−13〜230−3の入力端子へ接続されている 。インバータ230−13〜230−3の入力端子は、それぞれが0.001μ Fコンデンサを介して接地へも接続されている。インバータ230−13〜23 0−3の出力端子は、それぞれシステムのXRACK、XTUBE1〜XTUB E10線へ接続されている。 Y駆動モータは2つの出力端子を有する位置エンコーダを含み、エンコーダ出 力端子はシステムにおいてYENCODERAとYENCODERBとして認識 される信号を供給する。これについては図4hを参照されたい。YENCODE RA信号線は100kΩ抵抗器を介して接地に、また100kΩ抵抗器を介して 74HC14インバータ234の入力端子へ接続されている。インバータ234 の入力端子と接地との間には100pFコンデンサが接続されている。YENC ODERB信号線は100kΩ抵抗器を介して接地へ、また1100kΩ抵抗器 を介して74HC14インバータ236の入力端子へ接続されている。インバー タ236の入力端 子と接地との間には100pFコンデンサが接続されている。 2個のザイリンクス(Xylinx)社製XC2018−50PC84Cプログラマ ブル・ゲートアレイ241、242が、図4jに図示したようにシステム線へ接 続されている。ゲートアレイ241、242のピン番号とシステム線の名称は図 示したとおりである。μC160はシステムバスとプログラマブル・ゲートアレ イ241とを介してμC120が制御している。μC190はシステムバスとプ ログラマブル・ゲートアレイ242とを介してμC120が制御している。μC 190はシステムの初期化時にゲートアレイ241、242をプログラムする。 システム電力はコネクタ244を介して供給され、コネクタ244の端子24 4−1と244−2にはAC13Vが維持される。これについては図4hを参照 されたい。4本の1N5400ダイオード246−1〜246−4を含むブリッ ジ全波整流器246が端子244−1と244−2との間に接続されている。動 作電圧25Vの3300μFの静電容量248が、ブリッジ246の両端に接続 されている。容量248の両端にDC+12Vが供給される。DC+5VとVc cの供給は、ナショナル・セミコンダクタ社LM7805型5Vレギュレータ2 50、252で供給され、レギュレータのV1と接地端子とは、容量248の両 端に接続されている。レギュレータ250、252のV0と接地端子との間には 、1μFタンタルコンデンサが接続されている。+5ENCoder電圧はモト ローラ社78L05電圧レギュレータ254で供給され、これのV1及び接地端 子は容量248の両端に接続してあり、V0端子はシステムのYENCODER +5V線に接続されている。レギュレータ254のV0と接地端子との間には、 1μFタンタルコンデンサが接続されている。DC+7Vはモトローラ社LM3 17プログラマブル電圧レギュレータ256で供給され、レギュレータ256の VIN端子はDC+12Vへ接続されている。レギュレータ256のADJust 端子と接地との間には、2kΩ抵抗器が接続されている。レギュレータ256の VINと接地との間及びレギュレータ2 56のVOUT端子と接地との間には、1μFタンタルコンデンサが接続されてい る。 ライトロン(Lytron)社1430型7セグメント表示器270は、システム診 断の目的で設けられている。これについては図4fを参照されたい。7セグメン トの各端子は、それぞれ1kΩ抵抗器を介してULN2003インバータ272 −1〜272−7のそれぞれの出力端子に接続されている。表示器270の表示 リセット端子(DP)は、1kΩ抵抗器を介してULN2003インバータ27 2−8の出力端子に接続されている。インバータ272−1〜272−7の入力 端子は、それぞれシステムのXLD0〜XLD6線へ接続されている。インバー タ272−8の入力端子は74HC14インバータの出力端子へ接続してあり、 これの入力端子はシステムのMRESET線へ接続されている。 システムを実行するソフトウェアの流れ図についての以下の説明において、A LCOはシステムへ命令を送出するためと何らかの応答を返すためのソフトウェ アタスクの略称である。ALERはシステム・ソフトウェアのエラー訂正タスク の略称である。ALPRはシステムのメインソフトウェア制御タスクの略称であ る。CAALはシステムの内部較正を受け持つソフトウェアタスクの略称である 。INALは初期化と読み込み終了シーケンスを受け持つソフトウェアタスクの 略称である。TIPSはチップラック内のピペットチップ11を探して見つけ出 したピペットチップ11をピペットのチャックに装着する作業を受け持つソフト ウェアタスクの略称である。これらのソフトウェアタスクは全てPC153内に あり、流れ図においてオートローダシステムとも称することのある本システムを 制御している。このソフトウェアはC言語で書かれている。TWINはES30 0分析装置155を制御するPC153内のソフトウェアの略称である。TWI NはC言語とZIM言語の組み合わせで書かれている。 ピペットシーケンスの間、シャトル上におかれており現在の検査工程で使用さ れ るようにマークが付けてあるすべての検体が、様々なラック内の一次試験管から 、ES300分析装置の検体ロータ上のそれぞれの検体カップに移し換えられる 。走査シーケンスの間に、シャトルは完全に1周期回転して、シャトル内の内容 全体をバーコードリーダ151で読み取り、PC153のデータベース内に保存 する。シャトルは走査とピペッティング操作のために一度に15個までの試験管 ラックを移動できる。本システムでは、シリンジポンプ10を用いて試験管ラッ ク内に立ててある一次試験管から検体を吸引して、これらの検体を検体カップに 分注する。チップラックは、ロボットアーム20で支持されたピペットのチャッ クに装着する使い捨てピペットチップ11を保持する。それぞれに96個のピペ ットチップ11を入れたラック2個を一度にシステムに組み込める。試験管ラッ クは10本の一次試験管を保持し、試験管ラックに入れた試験管から検体カップ へ移し換えるためシャトル上に載せることができる。 図6はシステムのハードウェア制御を分担する6つの特化したタスク同士の関 連性を図示している。それぞれのタスクは独立したプログラムであって、C言語 で書かれており、別のタスク同士の通信にはQNXメッセージ転送装置を使用す る。主制御タスクはALPRである。このタスクは走査とピペッティング操作の 管理を受け持つ。操作を実行するのに必要な命令は既存のTWINタスクRUC Oのほとんど直接のコピーでシステムハードウェアとの直接の通信を受け持つA LCOに渡る。命令処理中にエラーが発生すると、別のタスクALERに制御を 渡してエラーを修復するかまたはALPRへエラーを報告することができる。タ スクの1つTIPSは、システムのアーム上のチャックにピペットチップ11を 取り付けるためだけに特化している。INALはシステム初期化を担当し未使用 時にシステムを休止位置へ移動させる。CAALはサービスのための較正操作を 実行するために起動する。CAALは通常運転では使用せず、サービス要員だけ がアクセスできる。CAALはZIMコードで起動してその動作を行った後、メ モリから取り除かれる。ZIM コードはC言語とZIMコードの間の便利なインタフェースを提供するALSC タスクを介してALPRと通信する。以下の説明ではそれぞれのタスクを構成す る各種モジュールについて詳細に述べる。 ALPRはシステム運用の集中管理タスクである。ZIMコードでQNXメッ セージをALPRに送り、シャトル全体の走査、一次試験管全部からのピペッテ ィングなどの主要な動作を開始させることができる。起動後、ALPRはZIM コードからの支援無しに所望の動作を完全に完了できるものと推定される。AL PRはZIM−PLI機能を使ってセット全体にアクセスできる。ALPRはI NALとALERの間の通信を開始させるタスクである。ALPRはTIPSま たはCALLとは通信しない。他の全てのシステムタスクと同様、ALPRはA LCOと通信する。 ALPRの主な機能は走査とピペッティングである。ALPRは、例えばシス テムへサービス命令が直接送出されるのを許容するなど、他の重要な機能も有し ている。図7a〜図7bはALPRの動作全体を示す流れ図である。個々のAL PRメッセージオプションはそれぞれが流れ図と動作の説明を有する。図8a〜 図8bはALPRが支持しmain( )関数で処理するメッセージを示す。 SCAN_ALL_TUBESメッセージを受信すると、ALPRはWAIT _STATモードからSCANモードに移行する。図9a〜図9bはこれが行わ れる様子を示している。シャトル走査を行う前にシステムを初期化する必要があ るので、初期化が必要かを調べるためのチェックを行う。エラーが発生した場合 、WAIT_STATモードへ戻る。それ以外の場合には、シャトル走査が実行 中であることをALSWが示す。走査中であっても、ALPRでは走査が完了す る前に走査を停止させるメッセージをまだ受信できる。 走査モードに入ると、ALPRのmain( )関数がループし、走査モードはシャ トルラックと試験管バーコードを読み取る機能を管理する。図10a〜図10b と図11a〜図11bは走査の流れ図を示す。復元不可能なSYSTEMまたは FATA Lシステムエラーの発生時には、SCANモードからWAIT_STATモード へシステムが移行する。これによって走査は終了する。修復できないNON_F ATALエラーの発生時には検体をスキップするか、走査は終了しない。走査中 、試験管ラック番号、試験管位置、試験管バーコード(検体の患者ID)をAL POに追加する。ZIMコードがALPOをモニタし必要があればデータを排除 する。シャトル全体の走査が完了すると、WAIT_STATモードへモード設 定を行い走査が終了する。 ALPRのmain( )関数がループしているときに、PIPETTEメッセージ をALPRが受信すると、図12a〜図12cに図示した流れ図が実行される。 必要であればますシステムを初期化し、次にES300分析装置155を初期化 する。初期化が完了すると、ピペッティング操作が開始され、チップラック1の 1番の位置にあるピペットチップ11から開始する。これによってチップ11の 供給をユーザが補充した場合にも、前回の運用が終わった位置から続けるのでは なく第1のチップ11から開始するようにしている。 初期化後、ALPRのメインループは図13a〜図13b及び図14a〜図1 4bの流れ図を反復的に実行し、その反復毎にメインループを通過するようにし ている。ピペッティングの間、ALPRはまだメッセージを受信できる。シャト ルの端部に到達するまで、システムからのバーコードデータとSAMPからの検 体データがget_action( )関数に渡され、検体をピペッティングできるかどうか が判定される。シャトル全体を調べた時点で、ALPR_statはWAIT_ STATに設定されるのでピペッティングが終了する。かなり重大なエラーが発 生した場合、ピペッティングは停止し、エラーがALSWに記録される。軽微な エラーでは、個々の検体をスキップすることになるが、残りの検体のピペッティ ングには影響しない。 gct_action( )関数において検体を吸引できると判定されると、transfer_ma nager( )関数を用いて一次試験管からES300分析装置155上の検体ロータ への液体の 移動を管理する。transfer_manager( )関数内部では、電力障害でピペッティン グが中断した場合には、SAMPのPip_statusが“E”に設定される。電力が 復旧したときに“E”が検体にマークされる。ピペッティングが通常に進行して いる場合には、図14bに図示したようにPip_statusは“Y”に設定されるこ とになる。 図15a〜図15bを参照すると、ALPRのtransfer_manager( )関数の主 な機能は、1000マイクロリットルより多い検体の適切な吸引及び分注量を管 理することである。SAMPの吸引量に基づいて、ASPとDS1命令がアレイ に検体量を追記する。検体量が1000マイクロリットルを超えていなければ、 アレイは保存されているDSIについて常に検体量0を有する。 1000マイクロリットルを超える検体量では、検体量を2で除算し本来の量 から減算して吸入する検体量の1つを得る。残った差分が第2の検体量になる。 この技術によれば、吸入する整数マイクロリットル量を生成するだけで、分数量 は不可能である。第1の吸入量は「先に分注された」量である第2のDSI量と なる。 PC153のTWINソフトウェアは2000マイクロリットルを超える量を サポートしないので、これより大きいいかなる量も2000マイクロリットルに 等しく設定される。アレイが埋まると、transfer_sample( )関数が液体の移動 を実行する。 ここで図16a〜図16cを参照すると、ALPRのtransfer_sample( )関 数は、1つの検体量を試験管ラック内の試験管からES300分析装置の検体カ ップへ移し換える関数を呼び出す役割を担っている。さらに、移し換えの間にエ ラーが報告された場合、この関数がこれらを検出して返す。新しい実行の開始が 検出された場合、transfer_sample( )は前回の実行の時の列にある次のチップ ではなく、1番のラックから1番目のチップを取り付けようとする。何らかのエ ラーの場合には、ALERがチップを排除させて新しいチップを装着させる。tr ansfer_sample( )はこれを検出し必要に応じてALSWを更新する。 関数install_tip( )はチップの装着に使用する。このことについては図17 を参照されたい。シーケンスの中で1番目のチップを装着しようとすることが必 要なため、install_tip( )からは2つの関数が呼び出される。これは通常のチ ップ装着(図18参照)のためのalpr_next( )関数と、実行の開始時に1番目 のラックから1番目のチップを装着するためのalpr_tip1( )関数である(図1 9参照)。チップが探しているラック位置に見つからない場合にはチップの装着 に失敗することがあるため、ALERが責任を持つと仮定してTIPSを使って チップを見つけ出し装着しようとする。うまくチップが検出できた場合には、装 着すべき次のチップをALSWに記録する必要がある。これはTIPSとALP Rの両方が行う。通常の装着と1番目のチップに別の関数を用いることにより、 全ての場合にどのチップを装着したか追跡することができる。1番目の特別なチ ップの場合には、alpr_tip1( )関数は1番目のチップを装着しようとする前に ALSWに入っていたものを保存する。1番のチップが利用できないためTIP Sがチップを装着した場合には、alpr_tip1( )は元のALSWと新しい値を比 較して違いがあるかを確かめることができる。相違がある場合、ALSWはすで にTIPSによって更新されている。値が同じ場合にはTIPSの活動はなく、 alpr_tip1( )関数がALSW内の2番目のチップを使用すべき次のチップとし て保存する。alpr_next( )は、TIPSの活動を検出する必要はなく、シーケ ンス外の番号を保存する必要もない。この関数は最後に利用できるチップを装着 することになるかを検出してALSW内の1番チップにチップ計数を丸める必要 がある。 図20を参照すると、ALPRのtry_tip( )関数をalpr_next( )とalpr_ti p1( )とが用いてチップを装着する。これは指定したチップ番号を用いてチップ 上にアーム20を動かし、次にIPTを用いて装着を行おうとする。チップの装 着失敗はALERが取り扱う。 ALPRのset_rotor( )関数は、供給された検体ロータ位置を使用してシス テムで使用するための新しい位置を読み替える。これについては図21を参照さ れたい。アームが正しい検体カップ内に分注できるようにするためには、ES3 00分析装置の異なるロータ位置を指定して必要とされる検体カップをアームで アクセスできるようにしなければならない。これはrotor_array[ ]を用いて対 応する必要な座標を探し出すことで行う。新しい位置が利用できるようになれば 、ES300分析装置の命令を組み立ててAL_Dispatch( )関数を使って送信す る。ES300分析装置からのエラーはALERで補正できないので、set_rot or( )関数で何らかのエラーが検出された場合には、ALPR_statをWA IT_STATに設定することでピペッティング操作を中止する。 ALPRのasp_setup( )(図22参照)、perf_asp( )(図23参照)、per f_ds1( )(図24a〜図24c参照)は、システム命令を発行しエラー検査を 行う。perf_ds1( )の間、アームは分注するために検体カップ上に移動しなけれ ばならない。アレイrotor_array[ ]を用いて供給されたロータ位置をアームの 水平方向の位置へ変換する。この特別な演算以外、これらの関数は主として固定 された命令シーケンスを発行し、同時にエラー及び早い復帰をチェックする。 ALPRのconv_al_ret( )関数は、AL_Dispatch( )関数呼出しの必要性を 最小化するためと、リターン値をエラー検査用に整数形に変換するために使用さ れる。このことについては図25を参照されたい。conv_al_ret( )関数は、呼 出し側のためにこれらの関数を両方とも実行する。しかし、呼出し側が命令制御 パラメータのインデックスを指定する必要は依然としてある。 検体のピペッティングを行う決定は、システム情報とSAMP情報に依存して いる。ALPRのget_action( )関数はその組み合わせ値をソートし、エラーコ ード、スキップコード、あるいはピペッティングを行わせるコードのいずれかを 返す。主な 決定グループは2つ存在する:システムが現在の試験管からバーコードを供給す ることができたか、及び特定のラックと試験管位置でバーコードが見つからなか ったかてある。図26、図27a〜図27bを比較されたい。 システムがバーコードを供給した場合、SAMPは同じバーコードを発見する ために検索を行うことができる。SAMPのpip_statusとLd_statusが同一の 検体をピペッティングできることを示せば、get_action( )はPIPETTEを 返す。利用できるバーコードがない場合、SAMPはバーコードの番号で検索す ることができない。その代わりにラックと試験管位置に基づいて検索を行う。一 致するラックと試験管位置がSAMP内に見つかり、SAMPのフラグがこれを 許可した場合には、get_action( )関数がPIPETTEを返す。 SAMP検索のget_action( )関数の2つの部分に加えて、get-action( )が 実際の作業を行うために使用する関数が存在する。バーコードの番号検索のため にはprimary_id( )とsecondary_id( )を使用する。これについては図28〜図 29を参照されたい。ラック検索にはprimary_rack( )とsccondary_rack( )を 使用する。 バーコード番号で最初に検索を行うときにはprimary_id( )を使用する。検体 をピペッティングできないとSAMPが示している場合には別の検索を行って、 同じバーコード番号を有する別のSAMPレコードを検索する。これにはsecond ary_id( )を用いる。secondary_id( )はZIMNEXT検索法を使用し、これ よりFIRST検索法が先行しなければならない。これはprimary_id( )で行う 。NEXT検索は、バーコード番号の判定基準が別のSAMPレコードと一致し なかった場合に停止する。 primary_rack( )関数とsecondary_rack( )関数の検索は、ID番号による検 索と違って検索に使用するユニークキーが存在しないため、いくぶん複雑になっ ている。primary_rack( )はSAMP内のラック番号の第1の一致例を発見する ためFIRST検索法を使用する。このことについては図30と図31を参照さ れたい。正しい 試験管位置である確率は1/10の確率でしかないことから(ラック内には最大 10本の試験管が存在し得る)、通常はラックと試験管番号両方の一致が見つか るまでNEXT検索を行う必要がある。primary_rack( )関数が一致を発見して も、これがラックと試験管位置の唯一の一致例ではない可能性がある。成功した 第1の検索からの検体をピペッティングできない場合、secondary_rack( )関数 を用いて、利用可能な場合には同じラックと試験管の別の一致例を発見する。こ のことについては図32を参照されたい。このような別の一致例が発見された場 合には、この検体もピペッティングすることができる。 ALPRのget_next_barcode( )関数は、走査とピペッティング操作のため に使用する。このことについては図33、図34、図35を参照されたい。しか し、これらの操作の間の相違のため、コードの全てを共有することはできない。 最大の相違はバーコードを読み取った後のシャトルの移動に関してである。走査 のためには、できる限り速いシャトルの移動が望ましい。バーコードを取得する とすぐにシャトルは次の位置へ移動を開始することになる。これによりデータベ ース動作を行いつつシャトルを移動させることができる。ピペッティングするた めには、試験管のバーコードを読み取った後シャトルを移動させてはならないが 、これは液体の取り出しのために試験管を固定する必要があるためである。つま り、get_next_barcode( )関数はバーコードを読み取った後の動きを制御する ためにフラグを使用する。使用するシャトル命令の形式も重要である。走査のた めにはMS3とMS1を用いて必要に応じ第1またはその次の試験管に移動させ ることができる。ラック内の最後の試験管を読み取り、MS1を発行した場合、 次の試験管1番の位置を所定位置に移動させる。利用できるラックがない場合、 MS3を発行して次の試験管1番の位置を所定位置に移動させることができる。 バーコードを取得するとすぐに移動を始められるので、走査するためにはこれが 効率的である。ピペッティングする場合、ラックが存在しなければ試験管1番で 停止するのは効率的ではない。ピペッティングの ためにはラックのバーコードで停止してラックが存在するかを調べ、そのあとM S1命令を使って試験管から試験管へと移動するか、またはMS5を発行して次 のラックへ移動させる方がよい。つまり、走査では移動のためのMS3/MS1 命令を使用し、ピペッティングにはMS5/MS1命令を使用する。get_next _barcode( )関数はシャトルの「終端」を追跡する。物理的にはシャトルの「始 端」または「終端」は存在しないので、get_next_barcodc( )関数は走査また はピペット操作が開始した時点でフラグが渡される。これによって、全体の計数 が0に設定されることになりフラグがクリアされる。この後、試験管またはラッ ク毎の動きで計数が適切に増加する。計数がシャトル容量(150=15ラック ×試験管10本/ラックまで)に達した時点で、シャトルの「端部」に達したと いうことにする。これは、それぞれの試験管位置がバーコード位置を1回は通過 したことを意味しており、オペレータがなにかの変更を行わなかった限り、新し く取得する情報がないことを表わす。図33〜図35は走査とピペッティング・ モードがどのように組み合わせてあるかと、試験管計数をどのように管理してシ ャトル終端を検出しているかを示す。 APLR SERVICEは、オペレータの命令を直接システムへ転送し、返 ってくる結果を観察する。このことについては図36を参照されたい。サービス 設備はシステムに対してバーコードデータなどのZIM画面上に表示するための 情報を供給するように自動的に要求する。ACINのセット全体がZIMで初期 化され、これを行うためにALPRによって読み込まれる。ALPRはACOT も使用してZIMコードに応答する。システムへの送信にはAL_Serv_Disp( ) を用い、AL_Dispatch( )は使用しない。これは、AL_Dispatch( )がエラーを検 出しALERにそのエラーを訂正するようにメッセージを送信するからである。 サービス操作中にはこれは望ましくない。図36は、ACINからシステム命令 を読み込みAL_Serv_Disp( )を用いてその命令を送信するのにどのようにルー プを用いるかを図示したものである。 ALPR SENSORは、ZIM画面上にシステムセンサの連続的更新を表 示する。SENSORモードに入ると、SENSORから他のいずれかのモード に変更するメッセージを受信するまで命令シーケンスが反復される。図37〜図 38はSENSORモードがどのように確立され、どのようにしてセンサが読込 まれてその読み込み値が表示されるかを図示したものである。 ALPRのAL_Dispatch( )は、ALCOと通信する全てのシステムタスクに 存在する。しかし、ALPRのAL_Dispatch( )だけがシステムエラーを検出し てALERに制御を渡す。AL_Dispatch( )へのエントリ部分で、ZIMインデ ックスの使用に関するテストを行っている。できる限りALPRを高速化するた め、ACMDのセット全体の使用をACMDの内容を反映するアレイへのインデ ックスで置き換えてある。しかし、ALPRとALERを検証中に検査するため には、インデックスがALPRの残りにあるかどうかが既知ではないから、ZI M_methodを使用する必要がある。ALPRを用いてシステム命令を発行 し、エラーを生成し、状態をALERに渡す場合、技術者はDIRECTモード でALPRに命令を発行する。こうした条件下では、AL_Dispatch( )がACM D内の命令制御パラメータを参照する必要がある。必要であれば、AL_Dispatch ( )はオートローダを再度初期化する。電力障害の場合以外では通常これは必要 ないはずである。命令を送信ために、AL_Dispatch( )はALCOによって実行 されているのを越えて再試行ができる。AL_Dispatch( )のエントリ全体、命令 の送信、及びループの再試行法とが図39a〜図39bに図示されている。送信 の詳細については、図40、41、42a〜42b、43〜45に図示されてい る。 図40は、主な命令の種類、C(命令)、S(状態)、R(読み込み)、M( マクロ)、E(ES300自動分析機)を示している。それぞれの種類の命令は 別の取り扱いが必要である。命令の種別は、AL_Dispatch( )へ渡されたインデ ックスで 決定する。連続してエラーが発生する場合、送信前に幾つかの命令を検出する必 要がある。これには、図40に図示したようなtest_cmd_str( )関数を使用す る。システムは、最後に送信したシャトル命令を保持するための設備を有してい ない。例えばMS1などのシャトル命令に起因するエラーが発生した場合、AL ERはシステムからシャトル命令を取得する手段がない。これはALPRが供給 しなければならない。ALPRがこれを実行できるようにするには、メッセージ がALERに送信され、test_cmd_str( )関数が用いられる前に、命令を捕捉 しておく必要がある。ASP及びDSI命令を発行するALERに関しては、A LERで容量が既知である必要がある。ALPRはtest_cmd_str( )を用いて 、必要な場合には最後に使用した量を捕捉する。このことについては図46を参 照されたい。特別な命令の条件に適合したら、AL_Dispatch( )関数は、その命 令を送信するのに適当なコード部分を実行する。AL_Dispatch( )関数では、ト レースをマーキングする目的で、エラー処理がOに指定されている。通常の処理 はO形式である。ALERが実行中であれば、異なるエラー処理コードを使用す る。これによって、そのトレースは異なるもののように見えることになる。こう して、ALERの動作は簡単に識別することができる。 ALPRのAL_Dispatch( )のC型命令は、応答を返さない。図41はC型命令 を支持するのに必要とされるものを図示している。 ALPRのAL_Dispatch( )でS型命令は、システムのある部分の状態を反映 する応答をシステムが返すようにさせる。すべてのS型の応答は、ビジー状態を 含むことができる。AL_Dispatch( )は、ビジー状態でなくなるまで命令を再送 信する。システムがビジーでなくなると、システム応答は検査のため倍長整数形 式(long)に変換される。結果0はエラー無しを表わす。それ以外の結果は、ど れもエラー訂正のためにALERへ状態メッセージを送信させる。その状態にし たがって、もし適 切であれば、シャトル命令が発行され、量(エラーがASQまたはDSQエラー でなければ意味がない)も発行する。ALERが応答した後、リターンコードは ASCII文字列に変換されてから、AL_Dispatch( )の呼出し関数に戻る。リ ターンコードは、ALERが問題の修正に成功したことを反映している。ALE R応答を受信した後、もう1つの別のハウスキーピングタスクが実行される。AL _Dispatch( )はALERで使用するためシャトル命令を追跡するので、古い情 報を排除するためにシャトル命令の成功をまた追跡しておかなければならない。 システムのシャトル命令応答を受信してエラーがないことを確認したら、保存し ておいた命令に関する情報は消去される。エラーが発生しALERがこれを補正 することができて、シャトルを移動できる場合には、これも検出しなければなら ない。test_smsg_str( )ルーチンは、BEFORE及びAFTERモードで使 用して、ALERに送信される「前」と「後」とにシステム応答の検査するよう にする。このことについては、図42a〜図42bならびに図47を参照された い。 ALPRのAL_Dispatch( )でR型命令はシステムからの情報取得に使用する 。こうした情報の一例は、試験管ラック300と試験管304のバーコードであ る。システムからの応答は、返されたシステム文字列へのポインタである。図4 3はR型の流れ図を示す。 ALPRのAL_Dispatch( )のM型命令は、AL_Dispatch( )にシステムの状態 情報を返す。しかしS命令とは異なり、ビジー状態の競合はない。システム状態 が受信されると、エラーについて検査される。エラーが存在する場合、エラー訂 正のためALERに状態メッセージを送信する。図44はM型の流れ図を示す。 ALPRのAL_Dispatch( )のE型命令は、ES300自動分析機用である。E S_command構造は、ES300自動分析機と正しく通信するためSENDPROC( )が 必要とする値で初期化される。ES300自動分析機のエラー訂正は、システム タスク 環境内からすることができない。エラーは報告されるだけである。図45はE型 の流れ図を示す。 ALPRのtest_scmd_str( )及びtest_smsg_str( )は、AL_Dispatch( ) がある種の命令を検出してALERへ情報を供給できるようにするために使用す る。test_smsg_str( )は、すでに捕捉したシャトル命令についての情報を消去 するためにALERの結果も検出する。AL_Dispatch( )についての説明と図4 6〜図47を参照されたい。 ALPRのmain( )関数で各種QNXメッセージには以下を含む:ALPRを 終了させるSHUTDOWN(図48参照)、ENQをシステムへ送信させるC ONNECT(図49参照)、EOTをシステムへ送信させるDISCONNE CT(図50参照)、ALPRの演算を全面的に中止せず開始/停止させるため に使用するINTERRUPTとCONTINUE(図51〜図52参照)、直 前のINTERRUPTの結果として全ての中間状態を消去しINALにend_l oadシーケンスを送信するように信号を送るEND_LOAD(図53参照)、 DIRECT−−ALER試験時に、ALPRへメッセージを送信することによ って、AL_Dispatch( )へZIM PLIを使用して命令制御データを参照する ように指示する必要がある。DIRECTモードは、検査室でのソフトウェア試 験にのみ使用される(図54参照)、シャトル全体ではなく試験管1本だけの走 査を行えるようにするSCAN_NEXT_TUBE(図55参照)。 ALERは走査とピペット操作中にシステムエラーを補正するために使用する 。ALPRだけがALERと通信するので、ALERで補正できるエラーはAL PRの演算から来るもののみである。さらに、ALERはALPR内のAL_Disp atch( )ルーチンのみから起動される。システム命令は、エラー発生時にALE Rを起動するため、ALPR内のAL_Dispatch( )を経由する必要がある。図5 6は、ALPRとALERとの間のQNXメッセージの関連性を図示している。 ALPRで検出し たシステムエラーにより起動されたALERへのメッセージは、検出したエラー を表わす状態文字列を含む。メッセージは、シャトル命令または液量についての 情報を含んでもよい。しかし、エラーがシャトル命令に起因したものでなければ 、シャトル情報は関連がない。液量情報についても同じことが言える。ASQ及 びDSQエラー以外では、液量は必要とされない。 ALERは、エラーを訂正することができることもあり、またできないことも ある。ALERからのQNX応答のフラグの値は、エラー訂正がどの程度成功し たかを表わす。例えばSYSTEMエラー等のある種のエラーは、非常に重大で あるので、ALERはこれらを訂正することができない。ALERがピペットチ ップを装着する必要がある場合、そのためにQNXメッセージをTIPSに送信 する。図57はALERとTIPSとの間のメッセージの関連を示している。チ ップがALER/TIPSによって装着された場合には、このイベントがALP Rへ報告される。これはALSW全体のセットが常に適切に更新されて使用すべ き次のチップを反映することを保証するのに必要である。ALERを構成する関 数のそれぞれについては後述する。 図58は、ALER内の主な決定ブロックを示したものである。エラー訂正の ために、ALERは開始点としてALPRからの状態メッセージを使用する。状 態メッセージには、データベースから訂正方法を選択するのに使用することので きる情報が含まれる。チップ装着を除き、全てのエラー取り扱いはZIMデータ ベースを使用したリストに基づいて行う。訂正の基本的シーケンスは一般に、エ ラービット検出、データベースのキー構成、データベース検索、リストの実行、 本来のシステム命令を再送信してエラーが訂正されたかを確かめること、からな る。「次検索」があることで状態メッセージがさらに複雑になることがある。幾 つかの状態メッセージはエラーを報告するが、詳細を取得するには別の命令を使 用しなければならない。ALER内の一つ以上の状態メッセージに対応させるた め、状態スタックが存在す る。スタックは先入れ後出し方式である。次検索を検出すると、新しく必要な状 態をシステムから要求し、スタック上に積み重ねる。エラーが訂正されるまで、 または訂正が不可能であると判定されるまで、この新しい状態を使ってエラー訂 正を継続する。次検索をスタックから取り消すことができると仮定すると、直前 の状態を使ってエラー訂正を継続できる。次検索に関するエラーは解決すること ができるものと推定される。しかし、さらに訂正を必要とするほかのエラーが存 在する可能性がある。こうしたエラーはリストについてデータベース検索を生成 し、これによってシステムへさらなる命令を送信させる。最終的に、エラー無し 応答がシステムから受信されるか、またはエラーを補正できないことが明らかに なる。いずれの場合にも、al_error( )関数が返され、ALERエラー訂正活動 の成功を報告する応答がALPRへもたらされる。ALERを構成する関数の動 作についての説明は以下で行う。 関数test_bits( )は調査中に状態メッセージ内のエラービット番号を決定す るために使用する。al_error( )内部のループは、0以外のビット番号が返され たときに動作する。エラー処理の第1の段階は、AERRデータベース内でエラ ーを発見することである。これはfind_aerr( )関数を使って行う。aerr構 造内には、error_typeと称するメンバーがある。エラー訂正は、error_typeの 属性に従って誘導される。例えば、特定のエラーが「S」(システム)型エラー だとすると、このエラーを訂正しようとする試みは行われない。一方、「F」ま たは「N」型エラーは訂正される。図59a〜図59dはエラーの全種類を取り 扱うために用いる段階と関数を図示したものである。 test_bits( )が、状態番号内の最後のビット処理が終わったことを報告する 時点で、al_error( )の外側のループが実行される。この部分は図60a〜bに 図示されている。外側ループの第1の決定点では、先行する内側のループのエラ ー訂正活動で何 らかの効果があったかを調べる。エラーが存在することを最新の状態情報が示し ているかを調べる検査を行う。まだエラーが存在している場合、何らかの改善が 行われた可能性がある。この場合、新しいエラー状態が訂正を開始した時点の本 来の状態とは別かどうかを確かめる検査を行う。状態が異なっている場合、最初 からまたエラー訂正を始めるだけの価値がある。これを実施するには、al_erro r( )内のSTART位置へジャンプを行う。エラー訂正を再度実行する理由はビ ット位置に依存するエラー訂正に関連している。補正する必要のあるエラーが2 つ存在すると仮定してみる。test_bits( )は第1のエラーを識別するが、この 第1のエラーが第2のエラーに依存しているため、たぶん第1のエラーを訂正す ることができない。結局第2のエラーが検出されて訂正される。状態を検証した ときに何らかのエラーが発見されたことが明らかになるが、まだ問題が残ってい る。エラー修復を初めから再開した時点で、第1のエラー訂正を阻害していた問 題が修復されている。ここでエラーを補正することができるようになり、第2の 試行で完全なエラー訂正が行える。この態様のエラー訂正は、エラー訂正法を選 択するときに二次推論のエラー訂正の順序を排除するために選択したものである 。 エラー無し/別エラーについての決定点を通過すると、次の試験は状態スタッ クの深さに関してである。状態スタックのインデックスが0に達すると、ALP Rへのリターンコードを決定する必要がある。スタックが0ではない場合、現在 のスタックエントリを削除して次に順位の高いスタックレベルでエラー訂正を再 開することができる。スタックが0に達したときには、get_return_status( ) 関数がALPRへ報告すべきコードを決定する。スタックが0でなければ、solv e_problem( )関数が呼ばれて、次検索エラー処理を発生させるような状態が再 発行されたときに、エラー・ハンドラによりこれ以上のエラーが引き起こされな いように、システムを位置づける。この時点で、スタックからの状態問合せがシ ステムに再送され、これにはALERがすでにチップを装着した場合にIPTを 抑圧するとともに、send_current_ query( )関数を用いて現在の状態を決定するためのオプションが付随する。エラ ーが訂正されたことを状態が示していれば、良好な状態がスタックに収納され、 エラー訂正が継続する。 al_error( )が動作を開始すると、システム格納メモリのどの所望の位置が要 求されたかを保存する必要がある。例えば、アーム20を水平方向の位置1へ移 動させるようシステムに命令したが、アーム20の電力がオフになっていたため 移動に失敗したとする。所望の目的位置である水平方向の位置1は、システムに よって保存される。al_error( )が保存されている目的の位置を上書きしてしま うような何らかの命令を送出する前に、get_current_pos( )関数を使って将来 の使用のために情報を取り出して保存しておかなければならない。図61は、ge t_current_pos( )関数の動作を図示したものである。保存された情報はrestor e_position( )で使用する。 エラー訂正を完了するためには、al_error( )の開始時に、システムから取り 出されget_cur_pos( )によって保存されていた情報において、システムがおか れていた状態またはシステムがあるべきであった状態とシステムを同じ状態にす る必要がある。図62〜65は、システム位置をどのように復元するかを図示し たものである。シャトルの位置は特別で、実際にrestore_position( )が使用す るエラーを発生するのに用いたコマンドである。情報はALPRが供給し、シス テムからは利用できない。 AERRのセット全体は、システム命令の終わりにビット位置を追加すること で組み立てたキーを含む。考えられる最低のビット番号は1で最高のビット番号 は16である。ALERが状態QSSs4096を受信したと仮定すると、find _aerr( )で組み立てた検索キーはQSS13である。受信した状態がASQs 1だとすると、検索キーはASQ1となり、この後に空白文字が来る。これはZ IMとの互換性を考慮したためである。図66はこれをどのように行うかを示し たものである。検索が完了した後で、AERR構造はディスク上のZIM AE RRデータベース からのレコードによって充填される。 状態スタックは連続したcharバッファである。スタックのエントリは、インデ ックスの計数値と状態メッセージの最大長さで決定される。ある状態をスタック に追加するには、次のインデックスを使って開始位置を計算し、メッセージをス タック・バッファへコピーする必要がある。この処理が図67に図示されている 。ALERのadd_msd( )は、スタックが一杯になった場合にエラーを報告する 。しかし、スタックは10個の状態メッセージに対して十分大きく定義されてい る。理論的には、検出可能なnext_queryビットの限界値のため、スタックカル ベル3を越えて成長するのは不可能である。つまり、スタックフルエラーが検出 されれば、何らかの重大な間違いがソフトウェアに発生したことになる。 next_query状態をスタックに追加したとき、論理マスクの作業状態も保存し なければならない。結果的にnext_queryはスタックからクリアされて、エラー 訂正が直前の状態について再開される。これを行うことができるようにするには 、test_bits( )で使用するマスクは同じ状態になければならない。ALERのn xtquery_man( )関数は、状態スタックのインデックスを用いて作業マスクをマ スクスタックへ転送する。これが図68に図示されている。そのため、test_bi ts( )は新しい状態を処理できるようになるので、作業マスクを初期化する。そ こでsend_next_query( )を使ってエラー訂正に必要な、さらなるエラー情報を 含むAERRで指定した状態を取り込み、これをスタックに追加する。 ALPRからALERへ送信されるメッセージは、システムエラー状態を表わ す状態文字列を含む。エラー訂正を実行した後、結果を調べるために同じ状態を 要求する必要がある。状態が「ハイレベル」の命令で生成された場合には、エラ ーを発生した命令を探す必要がある。これはALERのstatus_to_query( )で 行う。状態文字は、ハイレベルの状態文字列のアレイと比較される。一致が見つ かった場合、こ れに対応する命令がエントリでパディングされたバッファへコピーされる。次に 、呼出し側がもともとエラーを発生させた命令と一緒に状態の送信を続けること ができる。図69a〜図69bは、1つの文字列を別の文字列に変換するのに用 いる方法を図示している。ALERのstatus_to_query( )は、3文字の問合せ を使って対応する命令を検索する。status_to_query( )への入力には、IPQ などの状態文字列へのポインタ、リターンのための命令文字列へのポインタ、及 びstat-quer( )アレイが、次の表1に図示した組み合わせと共に含まれる。 ALERのst_diff( )は、エントリで供給されたlongを状態内のASCII 番号と比較するためのユーティリティである。状態は状態スタック内にある。al _error( )の外側のループで、st_diff( )を使って、最近の状態がスタックに 保存された状態と異なっているかどうかを調べる。図70はこの比較工程に含ま れるステップを図示したものである。 エラー訂正を実行した後、システム状態を生成した問合せ命令を再送する必要 がある。システムから返された状態は、エラー訂正で何らかの効果があったかを 決定するために使用することができる。低レベル命令では、状態の第1の3文字 を問合せのために再送することができる。しかし、高レベル命令では、問合せに 先行する 命令、例えばIPQの前のIPTを再送する必要がある。2つの高レベル命令、 ASPとDSIも量を含まなければならない。であるから、状態の文字を処理し て高レベル命令が必要されているかを判定する必要がある。図71にはこれが図 示されている。ASPまたはDSI命令が必要な場合には、高レベル命令のこれ 以上の検索は行わない。それ以外の場合には、status_to_query( )関数を使っ て必要とされる命令を組み立てる。命令を組み立てたなら、これを送信しても安 全かどうか検査する必要がある。IPT命令がすでに使用されていてうまく行っ た場合には、これをもう一度送信することができない。訂正されたばかりのエラ ーの後にエラーを引き起こすからである。IPT送信を防止するには、ALER のsend_cur_query( )関数に呼出し関数で保持されているオプションフラグを 供給する。IPTの抑制が必要な場合、呼出し関数はフラグを含み、sent_cur _query( )関数は命令がIPTかどうかを確かめ、フラグがこれを表していれば 送信を阻止する。特別な高レベル命令が設定されているかいないかとは関係なく 、状態メッセージの最初の3文字は必ず送信される。システム応答へのポインタ は値を返す前に呼出し側で利用できるようになる。 システム状態のエラーを評価するには、エラービットの位置を識別する必要が ある。エラービットの位置は、データベース検索の一部として使用する。ALE Rのtest_bits( )を使ってエラービット位置を検索する。図72a〜図72b は、test_bits( )関数がどのように動作するかを図示したものである。test-bi ts( )はすでに検査した状態の一部の再検査を行わないように設計されている。 ビットマスクを用いることで、それまでに検査したビットを排除した「新しい」 状態を生成することが可能である。つまり、新しいビット位置だけが、状態の作 業の終端に達するまで、報告されることになる。表2は、10進数の値4384 (1120hex)についてのtest_bits( )の動作を図示したものである。ビット位置 6、9、13、最後に0を生成する途中 で発生される中間値は、表2に図示されているとおりである。 表3は、脱出マスクの値がビット位置決めにどのように対応し、ビット位置が 不可解にならないようにするにはどうするかを示したものである。 エラー訂正が完了した後、システムからの最新の利用可能な状態を使ってAL PRへの返信コードを決定する。エラーが存在しない場合には、返信値はOKで ある。エラーの場合、2以上のエラーがあれば、最も重大なエラーを報告するこ とが重要である。図73a〜図73bは、get_retum_status( )がtest_bits( )を使って最新のシステム状態をどのように分析するかを図示したものである。 その処理は、次検索エラーによって複雑になる。ALERのget_retum_status ( )は、状態値同士の比較を解決する目的で、スタックからの直前の状態情報を 復元する。この考え方は、シス テムエラーを反映する状態値の中から最も重大なエラーを見つけ出すものである 。これは、AERRによって指定された次検索を送信し、観察されたエラーに基 づくリターン値を取得し、さらに分析するために直前の状態を復元することで行 う。全体として、最も重大なエラーがまだ報告される。 エラー訂正は、AERRに保存されている定義済みの戦略で管理される。戦略 名は、init_proc、flag_proc、run_proc、そしてerror_procである。関数so lve_problem( )は、error_proc法を使用しない(後述するclean_up( )関数の 説明を参照のこと)。solve_problem( )の方法のうちの2つ、init_procとrun _procとは、動作においてほぼ同一である。flag_proc法は、リストに基づいた 方法では解決することのできないような問題を解決するためのものである。現在 の所、チップ装着だけがflag_procを必要とする。図74a〜図74b、図75 、図76a〜図76bは、これら3つの方法がどのように検出されてエラー訂正 のためにsolve_problem( )で使用されるかを図示している。init_procとrun_ procの部分で、ALMA検索のための基本文字列がAERRからキー作成用のロ ーカルバッファへコピーされる。ループ内部では、検索キーを形成するために基 本となるキーにはシーケンス番号が追加される。この後、この検索キーが使用さ れてALMAへ送信する命令を見つける。これ以上の命令が発見できなくなった ら、init_procまたはrun_proc法を終了する。全てのAERRエントリが3つ の方法全てを定義しているわけではないことに注意すべきである。init_procま たはrun_procがAERR内に「ZZZ」を有する場合には、ALMA内で利用 可能な定義済み戦略はないことになる。flag_procは番号で定義される。この番 号は、エラー訂正を行うflag_proc関数を選択するために、switch文の中で使用 される。flag_proc#1、すなわち唯一のflag_procに対して、TIPSを開始す る前にアームを1番のチップ上へ移動する。これは、TIPSが要求する必要の ある位置の近傍へアームを動かすことでTIPSを支援するものである。これに より、TIPSを呼出したときにアームがチップラック上に位置していない場合 、TIPSによるアームエラーを防止するようになっている。TIPSの操作が うまく行った場合、solve_problem( )関数はipt_mode変数をSUPPRESS_IPTに 設定する。これはチップがうまく装着できた後でさらにチップ装着を試みないよ うにするためである。 clean_up( )関数は、AERRのerror_procメンバを使用する。ALERのc lean_up( )は、solve_problem( )において前述したinit_procとrun procと 同様に動作する。図77a〜図77bはclean up( )の動作を示したものである 。 次検索ビットが状態メッセージに設定されている場合、AERR構造は検索を 行った後の命令ストリングを含んでいるであろう。AERR命令はシステムに送 信され、応答が状態スタックに入れられる。これについては図78に図示されて いる。 関数ipq_test( )は、チップがうまく装着できたことを検出するのに使用され る。システム状態メッセージがIPQsOの場合には、チップが存在している。 この情報は、すでにチップが装着されているために、ALERがチップを装着し ようとしてエラーを発生させることになる将来の試行を抑圧するために使用され る。図79はipq_test( )内でIPQsOを検出し報告するのに使用する方法を 図示したものである。 TIPSは、エラー処理中にピペットチップを装着するために特化したタスク である。ALERは、TIPSと通信する唯一のタスクである。図80a〜図8 0bは、TIPSのmain( )関数を示したものである。ここでは、INSTALL_TIP SとSHUTDOWNの2つの演算だけがサポートされている。INSTALL_TIPSの場合、A LERへ戻る応答には装着したチップの番号と完了コードが含まれる。 チップを装着するために、tip_managcr( )はALSWのチップ番号から開始 する。さらに、この番号をインクリメントしてからALSWへ保存し直す。装着 に成功し た場合には、これが次に装着するチップとなる。チップ番号のインクリメントと 保存は、computer_tip( )が取り扱う。ALSWからの第1の番号とinstall_t ip( )を使って、tip_manager( )はチップを装着しようとする。装着に失敗 した場合、tip_manager( )はいわゆる「カラム検索」でチップを検出しようと する。1番目と2番目のチップラックの第1のカラムのそれぞれの列にある第1 のチップを試みる。チップが見つかった場合、ALSWは新しいチップ番号に1 を加えたものによって更新される。実際に装着したチップの番号がALERへの リターン値で保存される。図81a〜図81bはチップを検出し装着するために どのように2つの方法を使用するかを図示したものである。 チップ番号をALSWに保存する前に、これをインクリメントして範囲につい て検査する必要がある。2番目のラックの最大のチップ番号は144である。co mpute_tip( )は最大値を超過しないかを検査し、もし最大値を超える場合には 、ALSW内の次のチップを1に丸める。これについては図82を参照されたい 。 ALSW内のチップ番号を記録するには、呼出し関数がチップ番号をsave_ti p( )関数に渡す。change_alsw( )はディスク上の変更を記録するために使用さ れる。このことについては図83を参照されたい。 図84、85、86a〜b、87、88を参照すると、TIPSのAL_Dispat ch( )関数は、ALPR内に記述されたバージョンの部分集合である。TIPS はALERが制御するので、ALPRでなされたようなエラーの捕捉は行われな い。また、TIPSはACMDの代わりとしてのインデックスを使用しない。T IPS内のAL_Dispatch( )命令はALERの拡張と見なされるため、SENDCOMM( )のエラー処理は100として特定される。これはTIPSのトレース線に標識 をつけて、それらがALER同様のエラー処理であることを示す。 INALはシステムの初期化を行い、実行が終了した後に既知の状態にシステ ム をおくために使用する。どちらの機能も同様に実行されるが、唯一の違いは検索 文字列の供給源となるアレイのアドレスである。図89a〜図89bは2つの主 要ジョブであるINITとEND_LOADをどのように選択するかを図示した ものである。 INALのsend_cmd( )は、initialize( )とend_load( )から呼び出される 。これら2つの関数は操作に必要なアレイを初期化して、アレイのアドレスをse nd cmd( )へ渡す。send cmd( )関数は、用意されたそれぞれのアレイ文字列の 内容に沿って組み立てられ、番号が付されたシーケンスのすべてについて、AL MAを検索する。ALMA検索が成功した場合、ALMAからの文字列がシステ ムヘ送られる。システムからのエラーはINALを終了させてしまい、ALPR へのエラー応答を発生させる(ALPRだけがINALを使用するため)。IN ALが訂正のためにALERへエラーメッセージを送信することはない。表4と 図90、図91a〜図91bは、ALMA検索に使用するアレイの内容とALM Aキーを組み立てて発見した命令を送信するのに使用する方法を図示している。 send_cmd( )への入力は、end_load( )とinitialize()を含む。これはそれぞれ の検索キーの本体をアレイ内に格納してアレイへのポインタをsend_cmd( )へ渡 す。それぞれのアレイの内容は次に示すとおりである。 以下のINAL命令は、初期化とend_loadクリーンナップのためにシステム へ送信される。INALシーケンスの間に何らかのエラーが発生した場合、シー ケンスは中断され、エラーメッセージが画面上に表示され、エラーはエラーログ に記録される。 初期化シーケンス ファームウェアをリセット RES 電力供給、EEPROM、マイクロプロセッサ、RAMを検 査する。QGSと同じ状態を返す。 アームテスト AP+ アームのモータへの電力供給を開始 LZ− アームをZ軸限界まで移動 QAS アーム移動が完了するまでビジービットをポーリング LY+ アームをY軸内側の限界まで移動 QAS アーム移動が完了するまでビジービットをポーリング LR− アームをR軸限界まで移動 QAS アーム移動が完了するまでビジービットをポーリング LY− アームをY軸最小限界まで移動 QAS アーム移動が完了するまでビジービットをポーリング LZ− アームをZ軸限界まで移動 QAS アーム移動が完了するまでビジービットをポーリング MPVv1 アームを一番上の位置まで下降 QAS アーム移動が完了するまでビジービットをポーリング MPHh191 アームを「休止」位置へ移動 QAS アーム移動が完了するまでビジービットをポーリング チップ排出 MPVv1 アームを一番上の位置まで下降 QAS アーム移動が完了するまでビジービットをポーリング MPHh186 アームを排出口位置まで移動 QAS アーム移動が完了するまでビジービットをポーリング MPVv9 チップ排出高さまでアームを下げる QAS アーム移動が完了するまでビジービットをポーリング EPT ピペットチップを排出 EPQ 排出状態を検査 MPHh191 アームを「休止」位置へ移動 QAS アーム移動が完了するまでビジービットをポーリング シャトル試験 SP+ シャトルの電源を投入 MS5 次のトレイのラックのバーコード位置を吸入位置まで移動 QSS シャトル移動が完了するまでビジービットをポーリング ポンプ試験 PP+ ポンプの電源投入 ISP ポンプ初期化 QPS ポンプ動作が完了するまでビジービットをポーリング END_LOADシーケンス AP+ アームモータの電源投入 MPVv1 アームを一番上の位置まで移動 QAS アーム移動が完了するまでビジービットをポーリング MPHh191 アームを「休止」位置へ移動 QAS アーム移動が完了するまでビジービットをポーリング 較正用タスクCAALは、ALPRによって制御されない唯一のタスクである 。CAALはALCOのサービスを必要とする。CAALは他のシステムタスク のようにメモリ内に常駐しない。ZIMは特定の作業のためのコマンドライン・ パラメータでCAALを起動する。CAALは命令を実行して終了する。直前の CAALの作業の結果を必要とする較正操作では、結果を保存してからディスク ファイルを使って復旧する。CAALの実行から実行までの間にメモリ内に残る 中間結果はない。一方未使用時にはRAMを消費しないだけではなく、コマンド ライン技術によって実行されるので、PC153と連関する表示画面へのアクセ スが簡単に行える。これがCAALによるZIM画面の上書きを簡単にしている 。 CAALの作業は基本的に2種類である。これはファイル及び表示の操作と、 較正作業である。CAALは古い情報を保持しつつ新しい較正を実行できるよう に、多数のファイルコピー・オプションが必要である。したがって、幾つかのコ マンドライン・パラメータはファイルを読み込みこれを新しい名称にコピーする 以外何も しない。幾つかのオプションは、初めて初期設定値でファイルのコピーを作成す る開発にだけ使用するものである。一旦そのファイルがプレースホルダとして作 成されると、これはCAALによって読み出すことができ、較正が実行されると 最終的に上書きされる。表示のためには、幾つかのオプションがファイルを読み 込み、表示座標を使って画面に書き込む。 較正オプションはファイル及び表示型のオプションに比べて大幅に複雑である 。較正を行うには、ユーザがキーをトグル式に切り換えてシステムを必要に応じ て整合させると考えられる。整合後、新しい座標をファイルに書き込み表示でき るようにする。新しいパラメータが正しいとユーザが決定した場合、パラメータ はファイルからシステムのEEPROM140へ転送される。図92と図93a 〜図93cは、main( )がコマンドライン・パラメータを使って較正操作または ファイル及び表示操作へ制御を渡す方法が図示されている。 較正プログラムを管理する関数は、calman( )である。これは要求されたコマ ンドライン操作を実行するのに必要な関数を呼び出す。何らかの較正を実行する 前に、定数と記述子を保持するRAMテーブルをディスクファイルとrd_table( )とを用いて埋める必要がある。さらに、new_table[ ]はディスクからの最新 情報で埋めて、1回の較正が実行されれば、完全な情報を伴ってテーブルを書き 戻すことができるようにしなければならない。初期のファイル操作の後、calman ( )はset_variables( )を使用して、どの軸を較正するか、それぞれの軸にいく つの位置が存在し、較正を始める前にシステムの位置を決める命令の列をどのよ うに見つけるか、を制御するフラグを初期化する。set_variables( )は、冒頭 でコマンドライン・パラメータに基づいてこれを行う。較正制御変数を設定する と、calman( )がループを実行し始める。ループ内部では、2文字のコードがsen d_cmd( )によって使用され、システムへ送信する命令を見い出すためのキーを 構築する。これらの命令は、アームとシャトルをオペ レータの位置合わせに必要な場所に配置する。実行すべき操作が分注位置の較正 である場合には、ES300自動分析機が初期化される。オペレータが軸調整を 行う必要があるとフラグが示している場合、calibrate( )を使ってキーボード制 御により軸移動を行うことができる。ループ制御はループ通過毎にインクリメン トされる。初期化されたループの値を超過すると、ループを抜ける。calman( ) はES300自動分析機が必要だったかを調べ、必要であった場合には通信を切 断する。システムエラーが全くない場合、calman( )はwrt_table( )関数を使っ てal_newファイルに新しい較正情報を保存し復帰する。システムのEEPRO M140に較正した座標を読み込むためには、他のコマンドライン・パラメータ を使用する必要がある。図94a〜図94cはcalman( )の動作を示している。s tore( )はループ内のnew_table[ ]へシステム座標を転送するために使用するこ とに注意すべきである。 図95a〜図95bは、CAALのset_variables( )がコマンドライン・パ ラメータを較正制御用のコードへどのように変換するかを図示したものである。 例えば、コマンドライン・パラメータが3だとすると、ループの計数値は2に設 定され、R、Y、Zについて軸フラグは1に設定され、検索コードはT2に設定 される。これは、較正中に2つの定義位置が設定され、アーム軸は3つとも設定 されるが、シャトルは設定されず、アームを設定するための命令がALMA検索 用基本コードとしてのT2を使って発見できることを表わしている。set_varia bles( )への入力は、シーケンス変数とCAALエントリ命令動的パラメータc lpとを保持する構造体へのポインタを含む。この関数は、システムへ命令シー ケンスを送信しアームの位置合わせを行うのに後で使用するために、コードと軸 ループ計数を割り当てる。 図96a〜図96bは、CAALのcalibrate( )内で許容されるキーストロー クを軸変数がどのように管理しているかを示している。calibrate( )ループ内に 入ると、ユーザがキーを打つことでアームとシャトルの移動を行うことができる ようになる。し かし、set_variables( )で初期化されたR、Y、Z、Sの各変数は、制御しよ うとする軸の変数でなければならない。 calman( )較正処理の一部として、send_cmd( )はシステム命令の検索と送信 に使用される。set_variables( )は、ALMA検索用基本コードを保存する。 set_variables( )はcalman( )で使用するループ計数も設定する。基本コード、 例えば「T1」または「BC」などにループ計数を加えて検索キーの最初の3文 字を作る。send_cmd( )には別のループが存在する。このループは、ALMA内 で、最初の3文字が基本コード及びループ計数と一致する全ての一致例を発見す るように設定する。これを行うには、内側のループの計数を検索文字列の最初の 3文字と結合して最終的なキーを作成する。それぞれのシーケンスあたり9つ以 上の命令が存在するため、内側のループ計数は2桁までの長さをとり得る。した がって、キーの全長は4文字または5文字である。ZIMとの互換性のため、必 要ならそれぞれのキーが5文字になるように空白文字を埋める。図97a〜図9 7bは、send_cmd( )の動作を図示したものである。 オペレータが較正を完了すると、CAALのstore( )関数は情報をnew_table [ ]にどのように保存するか指定する。仕様はget_pos( )へ渡される。この関数 はシステムの現在位置を読み取って、store( )からのインデックス仕様を用いて 位置を保存する。図98a〜図98bはstore( )とget_pos( )の動作を図示し ている。store( )への入力は、シーケンス変数を保持するための構造体へのポイ ンタを含む。clpはCAAL入力コマンドライン・パラメータを保持する。ル ープはcalman( )が管理する。get_pos( )への入力はシーケンス変数、特にstor e( )が初期化したridx、yidx、zidx、sidxを保持する構造体へ のポインタを含む。 コマンドライン・パラメータ11番を受信したとき、ユーザが直接較正した点 の集合の中から、較正点の完全な集合を計算する処理が開始される。処理に最も 関係 の深い部分は、ラック1とラック2のチップ座標の較正である。calc_rack1( ) が処理を開始し、row_col( )関数が計算を管理する。row_col( )は汎用である ため、calc_mck1( )とcalc_rack2( )がrow_col( )で使用する構造体を設定す る。row_col( )の準備以外にも、calc_rackX( )関数はZ軸のチップ装着とチ ップ検索上下動を計算する。これらの計算は、al_caal_parmファイルから読み 取った異なるオフセットと、チップラックの較正した上下動との単純加算である 。図100と図101はcalc_rack1( )とcalc_rack2( )の動作を図示している 。 CAALのrow_col( )は、一度に1つのチップラックについての計算を管理 する。エントリで所定のラックの第1のチップ列の1番目と12番目のチップの R及びY軸座標にアクセスする。しかし、Y軸座標はアーム中心からチップの中 心までの距離ではなく、実際にアームの中心から最も遠いY軸位置からチップ中 心までの距離である。全てのチップ位置の極座標を求めるために三角法を使用で きるようにするには、アーム中心からY軸初期化位置までの不明の距離を計算す ることが必要である。これはcalc_r4( )関数を使って実行する。r4が既知に なれば、第1の列のチップ全部についての座標を計算することができる。これは init_row1( )を用いて行う。列1のチップ全部の座標が既知になれば、他の列 の座標を計算するための基本座標として用いることができる。列1の座標を他の チップの位置全部の計算のために用いることは、row_col( )が実行する計算の 本体を含む。図102a〜図102bはrow_col( )の動作全体を図示したもの である。図103a〜図103bはrow_col( )が既知の列1座標から未知の位 置をどのように計算するかを図示したものである。 以下の説明ではrow_col( )で用いる関数のそれぞれについて述べたのち、既 知の座標から未知の位置をrow_col( )がどのように計算するかについての議論 を行う。row_col( )への入力は、作業用浮動小数点アレイへのポインタと、列 、行、チップ の限界を保持する構造体へのポインタとを含む。 図104は、チップ座標の計算処理を開始するために関係のある位置と距離を 示したものである。較正中に、計算を開始する前の段階としてラック内の2つの チップの位置を取得する。この説明の目的として1番目のラックを参照するが、 2番目のラックを参照して同じ処理を説明することもできる。1番目のラックの チップ1とチップ12とは既知の、測定した位置を有している。これらの位置は 極座標を用いて表示され、単位はモータのステップ数とする。図104ではこれ らの座標の大きさを図示し、図105では回転座標を図示している。克服すべき 第1の計算問題は未知の距離r4に関してで、r4はアームポストの中心からY 軸の内側限界までで測定する。この距離はアームの組み立ての時に起こり得る誤 差と、Y軸DCモータの特性のため未知である。三角法の計算を実行するために は、距離r1を含む三角形の辺の長さが既知にならなければならない。三角形の 辺はr4とr1からなるので、これらがどちらも知られなければならない。calc _r4( )はr4の計算に使用する。calc_r4( )が使えるようになるまでに克服す べき他の複雑な要因が幾つか存在する。その第1はY軸の原点に関してである。 Y軸の「0」点に達したとき、アームはアームポストの位置にはない。アームは これの外側限界にある。言い換えれば、Y軸極座標の原点は原点があるべき位置 には存在していない。これを克服するには、ymaxと呼ぶ距離を使って原点を 移動し、Y軸測定値がアーム中心近くの点で0になるようにし、アーム中心から 最も遠い点で最大になるようにする。unload( )関数は、この方法を使って所定 のY軸位置を基準となる原点に変換する。一例を挙げると、ymaxが計数値1 0000ステップで、与えられたY軸のステップ計数値が5500ステップだっ たとする。R4の端部からチップ1までの距離は10000−5500=450 0ステップである。これがR1の値になる。R4を計算するためには、図105 に図示したように、θ1の値を知る必要がある。角度θ2はシステムから直接読 み出す。チップ12に対応する回転も与えられる。これら2つの 値を減算することで、θ1を決定することができる。 unload( )への入力は、作業用浮動小数点アレイarr[ ]へのポインタと、new_ table[ ]へのポィンタと、con_table( )へのポインタと、1または2いずれか のラック番号を含む。 Y軸位置をR1及びR2に変換し、θ1を計算する以外にも、unload( )は関 係するラックに特有の作業用浮動小数点アレイの作成を担当する。アレイ内には 、将来の計算をサポートするために必要な値がある。それらの値は様々な位置と 計算から収集され、他の関数へ渡すのを簡単にするため一箇所に保存される。図 106a〜図106cは、unload( )内で実行する演算を図示したものである。 距離R4を計算するには、式1を用いる。式1のR1、R2、θ1の値につい ては、すでに説明した。R3はラック自体から測定された定数である。このこと については図104を参照されたい。R1をR1及びR2の2辺の内の長いほう の辺に等しくなるように選択することで、全ての場合に士符号は(−)になる。 calc_r4( )はこの計算の実行を担当する。図107はこの計算を図示している 。R4を計算する残りの段階は簡単な数学の計算である。この手順は図108a 〜図108bに図示されている。calc_r4( )は図104に図示した距離r4を 計算する。式1はr4を計算するために使用される。なお、θ1は図105に図 示されている。 ソフトウェアでr2とr1の長いほうの辺を決定することにより、1番ラック と2番ラックの計算で±演算子を−に集約することができる。r2は、r1と比 較し て常に三角形の長い辺でなければならない。RACK1とRACK2について、 距離R1、R2は図107を用いることで式の値r1、r2に一致させることが できる。calc_r4( )への入力は、RACK1とRACK2について保存されて いる変数を有する作業用浮動小数点アレイへのポインタと、列、行、チップにつ いてのラック限界を保持する構造体へのポインタとを含む。 図109a〜図109bは、init_row( )の動作を図示している。この関数は calc_r4( )を呼出し、その結果を使って図110に図示した角θ6を計算する。 角θ6はcalc_row( )で必要とされる。θ6は式2を用いて計算され、図110に 図示されている。 式1において、R2及びR3は既知である。r4はcalc_r4( )を用いて計算さ れる。角θ1はinit_row( )へ入る前に計算される。結果θ6は列1におけるそれ ぞれのチップ位置の座標を計算する基礎として、calc_row1( )が使用する。ini t_row1( )への入力は作業用浮動小数点アレイへのポインタを含む。 チップ位置計算の予備段階の最後は、calc_row1( )により実行される。反復 計算によるエラーの拡散を最小限に抑えるため、列1のそれぞれのチップの座標 が計算され、row_col( )で他の列の位置を計算するために用いられる。calc_r ow1( )は、式3〜式6を用いてチップ2〜チップ12のチップ座標を計算する。 図111は、チップ2の計算のために角度を決めてある1番目のラックを図示し たものである。calc_row1( )は、直前の計算から既知の角度と三角形の辺とを 用いて列1のチップとチップ1からなる三角形について新しい辺と角度とを計算 する。図111ではチップ1及びチップ2の中心とアームの中心とからなる小さ い三角形が図示されている。式3〜式7は、チップ2の座標を計算するために使 用する。列1の全部のチップを同 じ方法で計算する。主要な結果は、init_row1( )で計算される角θ6は、それぞ れのチップについて計算し保存することができることである。これらの角度は列 1以上の列で他の座標を計算するための基礎として用いる。図112a〜図11 2bと図113a〜図113bは、角θ6を計算し保存するのに必要とされる段 階を図示したものである。calc_row1( )への入力は作業用浮動小数点アレイへ のポインタと、列、行、チップの限界を保持する構造体へのポインタとを含む。 図111はチップ位置を計算する段階に続く実施例を図示したものである。 ラック内のそれぞれのチップについてrとy座標を計算するには、列1のチッ プ位置を用いて12の行について基本座標位置を計算する。これらの座標はこの あとそれぞれの位置についてrow_col( )が使用する。calc_row( )は、列12 のそれぞれのチップについての角θ6と距離r6の計算を担当する。1つのチップ の距離と角度位置の図示については図111を参照されたい。r6の距離(ソフ トウェア内ではorg_ccとも表記されている)を計算するには、式3を用いる。 R1は既知、またr4及びθ6はエントリ以前に計算されている。r5は列あたり のチップ位置の全数でR3を割って、チップ番号−1をかけたものである。 いずれかの列1チップについてθ6(ソフトウェア内ではl6_ccとも称してい る)を計算するには、l7(angle_bとも称する)を計算して、システム水平位置 のr座標を計算できるようにし、かつangle_cを計算できるようにする必要があ る。angle_cは、三角形の3つの角度全部の和が180°になることに基づいて 計算することができる。angle_cが既知になれば、チップ位置についてのθ6は 180°から減算す ることで計算できる。 チップ座標計算の最後の段階は、calc_row1( )からの結果を用いて他の全て のチップ位置を計算することである。row_col( )はループ内でこれを行ってお り、列2のチップ1から列8のチップ12へと計算が進むに従い、計算に必要な 資源を参照する。図114はチップ23の座標を計算する例を図示したものであ る。チップ11について保存されているθ6の値を用いると、angle_aを計算す ることが可能である。原点からチップ11までの距離が既知で、またR5は既知 であることから、angle_aとともに用いられると、原点からチップ23までの距 離を計算することができる。R4を減算すると、残りの距離が標準化されたY軸 座標となる。チップ11についてのangle_cc1は、init_row1( )について既知 である。三角形の辺の全部がこれで既知になったので、1つの角、angle_bと称 する角度を計算することができる。この処理を全てのチップについて行って計算 を完了する。 row_col1( )の一部としてsave_pos( )が呼び出されイメージテーブル内に計 算したYとRのチップ座標を保存する。保存されているチップのグローバルな計 数値をイメージテーブルへのインデックスとして使用する。チップを保存する前 に、その位置を許容されるチップ位置に対して検査しなければならない。ラック 2のチップの全てがサポートされるわけてはない。アレイpos_ok[ ]はこの目的 のために使用される。ラック2のチップについて、pos_ok[ ]内で一致する位置 が存在するはずであり、そうでない場合はチップは保存されない。図115a〜 図115bはsave_pos( )がどのように動作するかを図示したものである。 CAALは、メモリとディスクとの間で情報を移動するために1つの基本的な 手法を使用する。記述とその実際のデータを許容する共通形式の構造が存在する 。その記述によって、他の文書を参照することなくディスク上のファイルの内容 を参照し、また編集することができる。データと記述の両方ともASCII形式 で保存されている。RAMテーブルのアドレスを特定することにより、ファイル 名、処理しようとするレコードの番号、及びCAALデータの大半は、rd_tabl e( )とwrt_table( )とを使って移動することができる。このことについては図 116a〜図116b及び図117を参照されたい。rd_table( )への入力は、 宛先RAMテーブルへのポインタと、供給源ディスクファイルの名称へのポイン タと、読み込もうとするレコードの番号とを含む。レコード長は60文字以下で なければならない。wrt_table( )への入力は、供給源のRAMテーブルへのポ インタと、書き込もうとするディスクファイルの名称へのポインタと、書き込む レコードの番号とを含む。 CAALのee_to_oldfile( )は、コマンドライン・パラメータ10をサポー トするために使用する。このことについては図93と図118a〜図118bを 参照されたい。これの目的は、現在のシステムEEPROM140の内容をファ イルal_oldへ転送することである。較正に必要なパラメータだけが転送される 。これらはシス テムからデータを取得するために使用する命令を保持しているctrl_table[ ]ア レイにより制御される。 CAALのimages_to_ee( )及びnewfile_to_ee( )は、コマンドライン・ パラメータ11の支持の一部を成す。これについては図93を参照されたい。シ ステムのR、Y、Z座標全部を計算する計算が完了した後、images_to_ee( ) を使ってファイルのデータをシステムへ転送する。計算していない較正点は、テ ーブルal_new[ ]内にある。関数newfile_to_ee( )は、このファイルの内容を システムへ転送するために使用される。このことについては図119a〜図11 9c、図120a〜図120b、図121a〜図121b、図122a〜図12 2cを参照されたい。 CAALのdfile_to_new( )は、既定の初期パラメータをファイルal_newへ 転送するために使用する。初期設定値は較正が完了した後の正確な値に近い。こ れにより、特定のシステム/ES300自動分析機の組み合わせについて何らか の実際の較正情報が利用できるようになる前に、最終的に較正した位置に近づけ る方法を提供する。このことについては図93と図123を参照されたい。 CAALのofile_to_new( )は、コマンドライン・パラメータ13に対する サポートを提供する。較正の開始時に、「古い」情報と「新しい」情報はこの関 数を用いて同一とされる。較正が進むに従い、新しい情報は変化して行く。しか し、較正によりデータの一部が変更されなければ、そのデータは保存されなけれ ばならない。古いデータから開始することによって、システムの一部だけを較正 し、同時に本来の、変更されていない較正も保持しておくことができる。このこ とについては図93と図124を参照されたい。 CAALのold_to_disp( )、new_to_disp( )は、コマンドライン・パラ メータ14及び15をサポートするために使用される。ctrl_table[ ]からの 画面座標と、video_out_line( )関数とを用いることで、それぞれのテーブル 内に保存された較正 データを画面上に表示することができる。これらの関数はZIM画面にあわせて あるので、古いデータと新しいデータが実際にZIMテンプレートに当てはまる 。このことについては図93、図125、図126を参照されたい。 システムは、EEPROM140へ読み込む必要のある幾つかの定数を使用す る。CAALのconstants_to_eeprom( )関数はこの機能を実行する。これはコ マンドライン・パラメータ16に対するサポートである。このことについては図 93と図127を参照されたい。ファイルal_constantsは、データの説明、送 信のためのシステム命令、及びデータを全て1つのレコード内に含んでいる。こ の手法により、より簡便にテーブルを更新して、1を超えるファイルを変更する 必要無しに新しいパラメータをサポートすることができる。 CAALのmake_default( )、make_constants( )、make_images( )関数は 、コマンドライン・パラメータ50、51、52のサポートを提供する。これら はプログラマ用ユーティリティであって、CAALが読み込むファイルの最初の コピーを作成する際の利便のためにのみ使用する。ファイルが利用可能になれば 、必要に応じて読み込み変更することができる。この最初のコピーは、ファイル 欠如エラーを回避するために作成される。CAALデータ構造が変化すれば、C AALのテキストファイルの古いバージョンは破棄され、これらの関数を使用す ることで新しいファイルが作成されるべきである。これについては図93、図1 28、図129、図130を参照されたい。CAALのmake_default( )は、最 初のal_defaultファイルのコピーを作成するために使用されるプログラマ用ユ ーティリティである。CAALのmake_constants( )は、最初のal_caal_parm ファイルのコピーを作成するために使用されるプログラマ用ユーティリティであ る。CAALのmake_images( )は、r、y、zのイメージファイルの最初のコ ピーを作成するために使用されるプログラマ用ユーティリティである。 CAALのsave_old( )は、コマンドライン・パラメータ10をサポートする 。CAALのsave_old( )は、old_table[ ]に含まれる情報をold_fileに書き 込む。このことについては図93、図118、図131を参照されたい。 CAALのAL_Dispatch( )関数は、命令をシステムへ伝える。AL_Dispatch( )のCAALでの実現形態は、構造的にALERでの実現形態と同一であるので 、AL_Dispatch( )の動作についての説明はALERの説明を参考にすることが できる。CAALでは、処理形式が0に設定されているので、通常操作の場合と 同様にトレースにはアステリスクが付かない。これが、CAALとALERの間 でのAL_Dispatch( )実現形態における唯一の相違点である。このことについて は図132、図133、図134a〜図134b、図135〜図137を参照さ れたい。CAALのAL_Dispatch( )において形式がE型の部分は、ES300 自動分析機の通信に使用する。 ALSCタスクは、ZIMからALPRへメッセージを渡すために使用する一 時的なタスクである。ALSCはZIMから起動されて、1つのコマンドライン ・パラメータが渡される。ALSCはこのパラメータを使ってどのメッセージを ALPRへ渡すかを決定する。表5は、ALSCを介してZIMからALPRへ 渡される全メッセージの一覧である。ALSCはALPRからの応答を受信した 後即座に終了する。 ラック1とラック2及びシステムの他の部分とこれらの関連性は、図1及び図 138を参照すればさらに良く理解することができる。図3、図5、図139、 図140に最も良く図示されているように、それぞれが1本から10本の試験管 304を載せている試験管ラック300は、シャトル302に載置する。シャト ルのモータ195は走査操作中に起動され、試験管ラック300と試験管304 はシャトル302の側壁にあるバーコードリーダ151のスロット開口部の正面 の位置に運ばれる。試験管ラック300の動きは、駆動チェーン316に沿って 均等に配置した15個の牽引リンク314のピン312の係合により完了する。 試験管ラック300にはピン312による係合のために下方向に向いた開口部3 18が設けてある。システムの初期設定中、シャトルからギア機構を介して駆動 されるラックと試験管の位置エンコーダ225が調節されて、試験管ラック30 0といずれかの試験管304−1〜304−10に付けてあるそれぞれのバーコ ード322−Rと322−1〜322−10が開口部310の直前の位置に達す ると、フラグ320が光スイッチ223−Rと223−1〜223−10との間 の光路を遮断する。バーコードリーダ151はこれでコネクタ152及びコネク タ154を介してPC153へ、試験 管ラック300と試験管304のバーコードに符号化した試験管ラック300と 患者識別子の全部を送信することができるようになる。 この情報を全部PC153に入力すると、ピペッティングを開始できる。アー ム20と、アーム20にベアリング325で移動自在に支持されているピペット チャック・キャリッジ324を、ラック1またはラック2の一方のピペットチッ プ11の位置へ、R、Z、Yモータ183、185、187で駆動操作する。Z モータ185を作動させ、ピペットチャック326がピペットチップ11と係合 するまでアーム20を下げる。ピペットチャック326に備えてあるマイクロス イッチ(図示していない)は、増幅器90を介して、アーム20によってピペッ トチップ11にかかる応力を検出する。チャック326に設けてあるOリング3 28は、空気回路14の封止を支援すると同時に、ピペットチップ11の嵌合と 排出を容易にする。Zモータ185を作動させ、試験管ラック300とES30 0分析装置155の作業表面の高さより上にアーム20を持ち上げる。シリンジ ポンプ10には空気が入る。R及びYモータ183、197が作動して、ピペッ トチップ11を付けたピペットチャックを試験管304の上へ移動させ、試験管 から分析用の検体を取り出す。Zモータ185をまた作動させ、チャック326 とピペットチップ11を下げる。これと同時に、シリンジポンプ10が回路14 からピペットチップ11を介して空気を圧出する。試験管304内の検体18の 液面16に接近して回路14内の圧力がわずかに上昇したことをトランスデュー サ12が検出すると、Zモータ185を停止させる。残っている空気がシリンジ ポンプ10から押し出される。Zモータ185をまた作動させて、試験管304 の円筒の軸を横断する断面積で200マイクロリットルを割った値に等しい距離 だけ検体18の液面16より下へピペットチップ11を下降させる。シリンジポ ンプ10は、200マイクロリットルの検体18をピペットチップ11内に吸入 する。この検体について実行しようとする検査でもっと大量の検体を必要とする 場合には、Z軸モータをさらに作動させて試験管304 内に同様の距離だけピペットチップ11を差し込み、シリンジポンプ10がさら に別の200マイクロリットルの検体を吸引することを繰り返す。検体量は、図 示した実施例のピペットチップ11の許容量1000マイクロリットルに制限さ れている。この手順では、検体18でピペットチップ11を濡らすことが最小限 に抑えられる。適当な検体量をピペットチップ11に吸引した後、Z軸モータ1 85を作動させて、作業表面と試験管304の全部を越える高さにピペットチッ プ11を持ち上げる。次に、R及びY軸モータ183、197を作動させてES 300自動分析機のロータ340上の検体カップ338に検体を含むピペットを 位置合わせする。 Z軸モータ185を作動させる。Z軸モータはピペットチップ11が検体カッ プ338の底部に達する高さに到達するまで作動し、増幅器90の入力端子のマ イクロスイッチを開く。マイクロスイッチが開かない場合、システムは検体カッ プがないものと解釈して、検体を分注しない。これてロータ340の汚染を防止 するようになっている。マイクロスイッチが開くと、システムは検体カップ33 8が存在することによりスイッチが開いたものと解釈する。Z軸モータ185を また作動させてピペットチップ11が作業表面のいずれともぶつからないように 持ち上げる。R及びZ軸モータ183、185を操作して、使用済みピペットチ ップ11を使い捨てにするためチャック326から使用済みピペットチップ11 を外し、システムは別のピペットチップ11を取り付けるために復帰する。 検体カップ338で実施しようとする検査が1000マイクロリットル以上、 2000マイクロリットルまでの検体を必要とする場合、R及びY軸モータ18 3、197を作動させて、検体を採取したばかりの試験管304の上へピペット チップ11を戻し、Z軸モータ185を作動させて検体内にピペットチップ11 を下降させる。さらに、前と同様に、シリンジポンプ10を作動させてこの処理 の間の回路14から空気を排出し、試験管304内に残っている検体18の液面 16を探せるようにする。液面16が見つかると、Z軸モータ185をまた作動 させて検体18 内へピペットチップ11を200マイクロリットル分だけ下降させ、検体カップ 338の必要量を満たす十分な検体を吸引するまで200マイクロリットル単位 で検体を吸引する。次に、Z軸モータ185を作動させて、ピペットチップ11 が作業表面と試験管304にぶつからないようにし、R及びY軸モータ183、 197を前回同様に作動させてピペットチップ11を検体カップ338の上に配 置する。Z軸モータを作動させて検体カップ内の検体の高さまでピペットチップ 11を戻す。この高さはソフトウェア内に保存されている。ここで検体カップ3 38内に検体を分注する。Z軸モータ185をまた作動させ、ピペットチップ1 1が作業表面とぶつからないようにし、R及びY軸モータ183、197を作動 させてピペットチップ11をチップ廃棄部342の上へ移動させる。R及びZ軸 モータ183、185を作動させチャック326から使用済みピペットチップ1 1を引き抜き、別のピペットチップ11を取り付けるためにシステムを復帰する 。 R、Z、Y軸モータ183、185、197からチャック326に伝達する方 法は、高度に模式化した図142、図143を参照することで最も良く理解する ことができる。R軸モータ183はカラム342に接続し、カラム342がこれ の軸344の周囲を回転できるようにされている。カラム回転エンコーダ板34 6はカラムの底部端部に接続してあり、インバータ184−11、−13、−1 4へ送信される信号がカラム342の回転を表わすようにしてある。カラム34 2はまた、軸方向に移動できるように摺動自在に装着されている。Z軸モータ1 85に下側の端部で結合354されている案内ねじ352が、カラム342の中 に設けた溝と、例えばカラム342内の袋ナット(図示していない)により係合 する。案内ねじ352の回転は案内ねじ352に接続されているエンコーダ板3 56で検出し、インバータ184−3、184−15、184−16へ送信する 信号がZ軸に沿ったカラム342の突出量を表わすようにしている。 図示されているY軸モータ197は、ポーツキャップUS社(Portescap US,I nc.) 製MD162R16M18−210−D16−54−XXモータで、内蔵型エン コーダを有する。モータ197は、モータ197の出力軸の歯付き駆動輪366 の周囲に巻き付けた歯付き可撓性ベルト364とアーム20の遠位端に回転的に 装着されている歯付きアイドラ輪368とを介してキャリッジ324を駆動する 。ベルト364は切断され、その結果得られた自由端をキャリッジ324に装着 した歯付きベルト364のテンショナ370の周囲に巻き付けてある。Detailed Description of the Invention                         Front-end device and methodTechnical field-industrial availability   The present invention is an automatic front end device, i.e., a pipette in a clinical laboratory system. The present invention relates to a device for performing operations, sample collection, dispensing, and the like.Background technology   Several types of automatic front end devices are known. These devices are, for example, US Patent Nos. 4,794,085, 4,478,094, 4,780,833 No., European Patent Publication No. 0,169,071, No. 0,273,128, No. 0,3 41,438, illustrated and described in PCT International Publication WO 91/16675. . Note that this makes the above list a complete list of related prior art, And is not intended to represent the most relevant prior art, and It's not something to discuss.Disclosure of the invention   In accordance with one aspect of the present invention, an air source is provided via a disposable pipette tip. Is supplied with air. There are no obstructions in the path from the source through the pipette tip. Air flows freely and is located upstream from the pipette tip in the air supply circuit. A slight back pressure is measured with a pressure transducer. Chip is a robot It descends toward the surface of the liquid. When the pipette tip contacts the liquid surface, the liquid The pressure sensed by the transducer increases as it blocks the flow of air. This increase The addition serves as a signal indicating that the pipette tip has reached the liquid surface. Pipette When the pump drops below the liquid level, the vacuum supply is connected to the air supply circuit and the liquid is pipetted. It is sucked into the tip. Transducer measures negative pressure (partial vacuum) It The pressure measured depends on the flow rate of air, the viscosity of the liquid, and many other secondary factors. Depends on. Air flow If the speed and other factors are known, it may be possible to measure viscosity and viscosity change. Pipette When the liquid is coagulated or gelled at the tip, the partial vacuum is relatively large. As a result, coagulation or gelation is detected. Pipette tip hole diameter and liquid flow Characteristics, wet condition, flow velocity, robot arm speed, etc. There are many factors that can be used to describe it more accurately.Brief description of the drawings   BRIEF DESCRIPTION OF THE DRAWINGS The invention is described below in detail with reference to the accompanying drawings which illustrate the invention. Best understood in. In the drawing,   FIG. 1 is a partial perspective view of a system constructed in accordance with the present invention.   FIG. 2 is a somewhat detailed block diagram of the system illustrated in FIG.   FIG. 3 is a side sectional view of a detail of the system shown in FIG.   4a-4j are more detailed circuit block diagrams of the block diagram shown in FIG. .   FIG. 5 is a partial perspective view of the detail shown in FIG. FIG. 3 is a diagram showing details related to the above.   FIG. 6 shows some software for controlling a system constructed according to the invention. The structure and interaction of the air task.   7-11, 12a-b, 13, 14, 15a-b, 16a-b, 17-23. , 24a-b, 25-41, 42a-b, 43-58, 59a-b, 60a-b. , 61-70, 71a-b, 72a-b, 73a-b, 74a-b, 75, 76. ab, 77a-b, 78-80, 81a-b, 82-90, 91a-b, 92 , 93, 94a-c, 95, 96a-b, 97a-b, 98a-b, 99a-b. , 100, 101, 102a-b, 103a-b, 104, 105, 106a- c, 107, 108a-b, 109a-b, 110, 111, 112a-b, 1 13, 114, 115a-b, 116, 117, 118a-b, 119a-c, 120a-c, 121a-c, 122a-c, 123-137 are shown in FIG. Software task 4 is a flow chart and related schematics useful in understanding the invention.   FIG. 138 is a top view of the system illustrated in FIG.   FIG. 139 is a top view of the detail shown in FIG. 3 and illustrates some of the systems shown in FIG. FIG. 6 is a diagram together with some other related details.   140 is a bottom view of details of the system illustrated in FIG.   141 is a side cross-sectional view of details of the system illustrated in FIG.   142 is a top view of a detail of the system illustrated in FIG.   143 is a side sectional view of a detail of the system illustrated in FIG.MODE FOR CARRYING OUT THE INVENTION   Referring now to FIG. 1, a syringe pump 10 to a disposable pipette tip 1 Air is supplied via 1. Path from pump 10 through pipette tip 11 Since there are no obstructions inside, air is free to flow within the circuit 14 of the syringe pump 10. The pressure transducer 12 arranged upstream from the pipette tip 11 (see FIG. 2). A slight back pressure is measured by The syringe pump 10 is, for example, Luton Company (Hamilton Company, P. O. Box10030, Reno, NV 89520-0012) 39450 Type syringe pump. The tip 11 moves the surface 16 of the liquid 18 by the arm 20. (See FIG. 3). Pipette tip 11 on surface 16 of liquid 18 Upon contact, the liquid 18 impedes the flow of air and the pressure detected by the transducer 12 is Power rises. This increase in pressure means that the pipette tip 11 is in contact with the liquid surface 16. Send a signal to inform. The pipette tip 11 descends further below the liquid surface 16, When the syringe pump 10 draws a partial vacuum in the circuit 14, the liquid 18 pipettes. It is pulled into the top 11. The transducer 12 measures the partial vacuum. Measurement The partial vacuum determined is the velocity of the air flow through circuit 14 and the viscosity of liquid 18. And many other secondary factors. If these factors are known, Viscosity and viscosity changes can be measured. In the liquid 18 of the pipette tip 11, Solidification as illustrated by dashed line 24 When a gel is produced, a flow of liquid 18 occurs in the absence of coagulation or gel 24 It causes a relatively large increase in vacuum compared to the partial vacuum to Or gel 24 will be detected. Electricity Useful for Carrying Out the Method of the Invention The system is illustrated in Figures 2 and 4a-j. The following schematic diagram and circuit block The description of the diagram should be used to identify specific integrated circuits and other components, and often these specific components. The salary is also disclosed. The names and numbers of specific terminals and pins are It is generally given in the context of those. Of these terminals and pins The identifier is given to these specially identified members. These terminals It is important to note that the pin and pin identifiers are assigned to these specially identified parts. It should be understood. This does not constitute a typical example, and I wonder if that is the case. Is not assumed to be a representative example of the Come from the same or some other source that can perform the required function It should be understood that this is the only component that can be handled. Furthermore, the same or different Other suitable components available from commercial sources are as indicated in the description herein. It should also be understood that the same terminal / pin identifier should not be used.   A block diagram of the system is shown in FIG. This system uses a bar code reader 151. And clinical test equipment 155 such as Boehringer Mannheim ES300 analyzer Personal computer 153 and RS232C interface 15 for controlling It has a master microcontroller (μC) 120 connected through 0. The analog / digital converter 70 of the system is a resistance / voltage (R / V) converter. Input from the forced switch 71 via the power switch 73 and the vacuum / pressure transducer. The input value from the server 12 is supplied to the μC 120. Based on these values, μC12 0 controls the vent valve drive circuit 132. μC120 is R (angle) of arm 20 The stepping motor 183 via the R motor drive circuits 168, 172, 176 In addition, the Z (vertical movement) stepping motor 185 of the arm 20 is used as a Z motor drive circuit. 170, 174, 17 8 and both are controlled via the first slave μC 160. R and Z The operation of each of the motors 183 and 185 is performed through the operation encoders of the R and Z motors. The encoder operation signals are transmitted to the members 184-11, -13, -14 and 18. Returned to the system via 4-3, -15, -16 respectively. μC120 is Body test tube rack 300 (see FIG. 5) Shuttle 302 stepping motor 195 Via shuttle motor drive circuits 198, 200, 202, and Y (radial direction ) Which of the DC servo motor 197 and the Y motor drive circuits 220 and 222 Is also controlled through the second slave μC 190. The operation of shuttle motor 195 Confirmed via shuttle optical sensor 224. The Y motor 217 operates in Y mode. The operation signal of the Y motion encoder is confirmed through the member motion 234. , 236 to the system. The second slave μC190 is also RS2 The syringe pump 10 is controlled via the 32C interface 150.   Referring now to FIG. 4a, the pressure transducer of the system illustrated in FIGS. User 12 is a 176PC07 type differential pressure of Honeywell Micro Switch Division. The transducer 12 is provided, and the pin 1 of the transducer is the Vs voltage supply source. Connected, Pin 3 is connected to system ground, Pins 2 and 4 are Two differential amplifiers of NAL Semiconductor LM324 type 4 circuit differential amplifier And the non-inverting input (+) terminals of the capacitors 34 and 36, respectively. Amplifier 34, The inverting input (-) terminal of 36 is connected by a 10 kΩ resistor. Amplifier 34, The output terminals of 36 are connected to the respective input terminals via a 100 kΩ resistor. ing. The output terminals of the amplifiers 34 and 36 are also connected via 100 kΩ resistors, respectively. It is connected to the (-) and (+) input terminals of the LM324 differential amplifier 38, respectively. It The output terminal of the amplifier 38 has a 47 kΩ resistor and a 0. Includes 1μF capacitor It is connected to its (-) input terminal via an RC parallel circuit.   The supply voltage is the DC + 12V power supply connected to the terminal 40-1 of the connector 40, Sho NAL Semiconductor LM78L05 type 5V regulator integrated circuit 42 and L It is supplied from the M324 type differential amplifier 24 to the Vs terminal of the transducer 12. The DC + 12V power source of the terminal 40-1 of the connector 40 is 0. 1μF capacitor To the ground and to terminal 40-4 of connector 40. Terminal 40 -1 is also connected to the V1 terminal of the IC regulator 42. regulator 42 between the V0 terminal and ground. A 1 μF capacitor is inserted. 1. Between the V0 terminal of the regulator 42 and the (+) input terminal of the amplifier 44, 4 A kΩ resistor is connected. National Semiconductor LM385 type 2. The cathode of the 5V Zener diode 46 is connected to the (+) input terminal of the amplifier 44. , The anodes are each connected to ground. The output terminal of the amplifier 44 is In addition to being connected to the Vs terminal of the Sducer 12, a 100kΩ resistor connected in series It is also connected to ground via the resistors 48,50. The connection point of resistors 48 and 50 is , And is connected to the (−) input terminal of the amplifier 44.   The circuit illustrated in Figure 4a provides both low and high gain output signals. High gain The output signal appears at the terminal 40-3 of the connector 40, and the LM324 type differential amplifier 52 It is supplied from the output terminal of the device through a 10 kΩ resistor. (+) Input terminal of amplifier 52 Is connected to the anode of Zener diode 46 via a 10 kΩ resistor. There is. The (-) input terminal of the amplifier 52 is the output of the amplifier 38 via a 10 kΩ resistor. Connected to the power terminal. The output terminal of the amplifier 52 has a 100 kΩ resistor and a 0. 1 connected to its (−) input terminal via an RC parallel circuit including a μF capacitor ing. 100kΩ resistor, 10kΩ potentiometer 54 and 100kΩ resistor A circuit including a series connection of the amplifier is connected between the output terminal of the amplifier 44 and ground. It The movable terminal of potentiometer 54 is connected in a unity gain buffer configuration. Connected to the (+) input terminal of the LM324 type differential amplifier 56. Amplifier 56 Is connected to the (+) input terminal of the amplifier 38 via a 100 kΩ resistor. Have been. Output of amplifier 38 The force terminal is terminal 4 which is a low gain output terminal of the connector 40 via a 10 kΩ resistor. It is connected to 0-2. The DC + 5V level at the output terminal of the amplifier 44 is It is connected to the (+) input terminal of the LM324 type differential amplifier 58. DC + 12V Is connected to the (−) input terminal of the amplifier 58 via a 10 kΩ resistor. Increase (-) Input terminal of width device 58, low gain terminal 40-2 of connector 40, connector 40 Of the high gain terminal 40-3 of 1N4148 type diodes 60, 62, 64 Is connected to the output terminal of the amplifier 58 via.   The low gain and high gain pressure signals from the connector 40 are I of chronoline type ML2258 type analog / digital (A / D) converter 70 It is applied to the Nput terminal 5 and the INput terminal 6, respectively (see FIG. 4b). High interest Both gain (for liquid level detection) and low gain (for liquid aspiration and dispensing) capabilities are provided. , Only high gain inputs are used in the illustrated embodiment. In this example, The output of the high gain pressure transducer 12 saturates for some inhalation dispense signals. However, the output eventually leaves saturation and returns to a significant level. DC + 35V is 69. It is connected to ground through a series resistor of 8 kΩ ± 1% and 10 kΩ. these The connection point of the two resistors is connected to the INput terminal 1 of the A / D converter 70. ing. DC + 12V is grounded through a series resistor of 30kΩ ± 1% and 10kΩ It is connected to the. The connection point of these two resistors is I / D of the A / D converter 70. It is connected to the Nput terminal 2. System Vcc and + 5V accessory voltage source Are connected to the ground via the 10kΩ voltage divider resistors that are inserted in series. Therefore, the connection point of the 10 kΩ resistor of the voltage dividing circuit is the INput of the A / D converter 70. It is connected to terminals 3 and 4, respectively.   DC + 2. 5V is the (+) input terminal of two LM324 type differential amplifiers 76 and 78 Connected to child. DC + 2. 5V is connected to the (+) input terminals of amplifiers 76 and 78 LM385 type 2. connected to ground. Adjusted with a 5V Zener diode 80 Be done. In parallel with the Zener diode 80, 0. A 1 μF capacitor is connected. 1. From the (+) input terminals of the amplifiers 76 and 78 to Vcc.2. 4kΩ resistor is connected There is. The output terminal of the amplifier 76 is the base of the 2N3944 NPN transistor 82. Connected to the device. Connect the collector of transistor 82 to DC + 12V Yes, the emitter is connected to the Vcc and REF + terminals of the A / D converter 70 It From the output terminal to the (-) input terminal of the amplifier 76, 0. 001μF capacitor Via a 10 kΩ resistor from the emitter of transistor 82. Feedback can be applied. Between the (−) input terminal of the amplifier 76 and the ground, 1 A 0 kΩ resistor is connected.   The output terminal of the amplifier 78 is a 2N3904 type NPN transistor via a 10 kΩ resistor. It is connected to the base of the transistor 84. The collector of the transistor 84 is 10 DC + 12V via a kΩ load resistor, and the emitter is a 10kΩ feed bar. Are each connected to ground via a clock resistor. Emission of transistor 84 Is connected to the (−) input terminal of the amplifier 78. This is the transistor 84 Is connected to the (+) input terminal of the LM324 type differential amplifier 86. amplification The output terminal of the device 86 is a 2N3906 type PNP transistor via a 10 kΩ resistor. Is connected to the base of the switch 88. The emitter of the transistor 88 is the amplifier 86. Directly to the (-) input terminal of, and to DC + 12V through 127kΩ ± 1% resistor It is connected. The collector of transistor 88 is configured as a unity gain buffer Is connected to the (+) input terminal of the LM324 type differential amplifier 90.   Check that the pipette tip 11 has touched the bottom of the test tube or test cup, for example. A microswitch attached to the chuck of the pipette (not shown) Is not connected between the input terminals of the amplifier 90 via a 10 kΩ resistor. There is. Between the (+) input terminal of the amplifier 90 and the ground, 0. 01μF capacitor Are connected. The output terminal of the amplifier 90 is connected to the A / D converter via a 10 kΩ resistor. Converter 7 0 is connected to the INput terminal 7. 5. 1V Zener diode 92 is I It is for protecting the Nput terminal 7, and between the INput terminal 7 and the ground, 2. A 2 μF, 16 V tantalum capacitor is connected. A / D converter The address bus 0 to the address bus 2 and the data bus 0 to the data bus 7 of 70 are They are connected to the A0-A2 and D0-D7 lines of the system bus, respectively.   System reset is via a reset circuit 93 including a manual reset button 94. Done in. One terminal of the reset button 94 is grounded and the other terminal is 74HC74 It is connected to the CLear input terminal of the flip-flop 96. Flip-flop The Q input terminal of group 96 forms the HC74 / Q line of the system bus. Flip flop The Q bar output terminal of Rop 96 forms the X74Q bar line of the system bus. Shi Stem bus MASTER / T1 line is CLocK input of flip-flop 96 Connected to the terminal.   The reset can also be performed by initial setting. 10 Hz clock signal is 74 It is applied to the A input terminal of the HC393 type 8-bit binary counter 100. by The QC output terminal of the Nari counter 100 is the A input of the 74HC393 type counter 102. Connected to the input terminals and configured to set the counter pair as a 32-division counter. The counter 102 has a QD output terminal of 3. Reset signal appears every 2 seconds Is done. The 10 Hz clock signal is supplied to the LM339 type differential amplifier 105. It is supplied to the output terminal. The (+) input terminal of the differential amplifier 105 has two 10 kΩ It is connected to the junction of a resistor, one end of which is connected to Vcc and the other The other terminal of one resistor is connected to ground. (−) Terminal of the differential amplifier 105 The child is 4. Connected to ground through a 7μF tantalum capacitor. Differential amplification Between the output terminal of the instrument 105 and its (+) and (-) input terminals. Each of the feedback resistors is connected. The differential amplifier 105 of 5kΩ resistor The output terminal is connected to Vcc.   The QD output terminal of the counter 102 is connected to the LM3 via the 1N4148 type diode. It is connected to the (−) input terminal of the 39-type differential amplifier 104. 1MΩ resistor and 0 . The RC parallel circuit including the 1 μF capacitor is used as the (−) input terminal of the differential amplifier 104. Is connected between the ground and the ground. The (+) input terminal of the differential amplifier 104 is DC + 2. It is connected to 5V. The output terminal of this is via a 1MΩ pull-up resistor To Vcc and 2. Connect to ground via a 2μF, 16V tantalum capacitor Have been. The output terminal of the differential amplifier 104 is also normally ground of the reset button 94. It is connected via a 1N4148 type diode 106 to the other terminal. Daio The anode of the battery 106 is connected to the (−) input terminal of the LM339 type differential amplifier 108. Has been done. The cathode of the diode 106 is of the LM339 type differential amplifier 110. It is connected to the output terminal. The (+) input terminal of the differential amplifier 108 is 100 kΩ DC + 2. It is connected to 5V. The output terminal of this is 1MΩ It is connected to its own (+) input terminal through the feedback resistor. Differential amplifier 1 The (-) input terminal of 10 is DC + 2. Connect to 5V. (+) Of the differential amplifier 110 Input terminal to DC + 12V through 10kΩ ± 1% resistor, and 3. 74 kΩ Connected to ground through a ± 1% resistor.   The output terminal of the differential amplifier 108 is connected to Vcc via a 10 kΩ pull-up resistor. Connected to form the master reset signal source for the system. This is also 1 MΩ resistors 114 and 0. A system bus is connected via a series circuit of 1 μF capacitor 116. It is also connected to the MASTER / T1 line. MASTER / T1 line is 10 Pulled up to Vcc through a kΩ resistor. Resistor 114 and capacitor 11 The junction point of 6 is connected to the CLeaR input terminal of the binary counters 100 and 102. Be done.   Intel 8032-8-bit master microcontroller (μC) 120 ( (See FIG. 4c) is a part for operating the inspection device 155 via the interface 150. It handles all communication with the sonal computer 153. μC120 is also RS2 32C Control the bar code reader 151 of the system using a bidirectional interface . Further, the two slave μCs 160 and 190 are connected to the μC12 via bidirectional communication. Controlled by 0. The stress sensors 71, 73, the pressure transducer 12, and The vent valve drive circuit 132 is also monitored by the μC 120. Liquid level and condensation From the pressure transducer 12 through the A / D converter 70, Detected in. More specifically, the μC120 performs the following steps: The liquid level is detected by. The vent valve drive circuit 132 opens the vent valve, The pump 10 inhales air. When the vent valve drive circuit 132 then closes the vent valve , The syringe pump as the pipette tip 11 descends toward the sample surface 16 10 discharges air. When the pipette tip 11 reaches the sample surface 16, the pressure is It rises slightly. Arm 20 stops moving in response to this slight increase in pressure It The vent valve drive circuit 132 opened the vent valve and remained in the syringe pump. The remaining air is exhausted. The vent valve drive circuit 132 now closes the vent valve, The chamber 20 descends below the sample surface 16 and is determined by the amount of sample to be aspirated. The pipette tip 11 is lowered by a certain amount, and then the sample is sucked. During sample aspiration Coagulation is detected when an abnormally low negative pressure (abnormally high vacuum) is generated.   P0. 0-P0. 7 terminals are D0 to D of system bus It is connected to line 7. P1. 0-P1. 7 terminals are the system bus Star input / output request (MIOREQ) 1, master busy (MBUSY) 1, MI OREQ2, MBUSY2 wire and Sprague UDN2508 type high voltage Position drive inverter 122, Sprag ULN2003 type low potential line drive invertor 124, system bus MP1. 6 wire, terminal 12 of the connector 126 for debugging It is connected to 6-1. The series 10 kΩ resistors 128 and 130 are inverters. The input terminals of 122 and 124 are connected, and the junction point of resistors 128 and 130 is set to Vcc. Will be maintained. The output terminal of the inverter 122 is the ULN2003 type inverter 13 Connected to the 2 input terminals And the output terminal of the inverter 132 is coupled to the terminal 134-2 of the connector 134. Draws current through a vent valve drive solenoid (not shown) . The terminal 134-1 of the connector 134 is connected to DC + 12V, and 1N4 A 148 flyback diode is connected between terminals 1 and 2 of connector 134. Have been. The output terminal of the inverter 124 is connected to the terminal 136-3 of the connector 136. 1 kΩ resistor connected to 136-4 and dangerous state display LED (illustration Current is drawn from DC + 12V via (not done). ULN2003 type in The output terminal of the burner 138 is connected to the terminals 136-1 and 136-2 of the connector 136. Connect a 1kΩ resistor and a normal status LED (not shown) It draws current from DC + 12V.   Atmel EEPROM 140 has its terminals A0-A12 and D0-D7 They are connected to the A0 to A12 and D0 to D7 lines of the system bus, respectively. EE The CE bar and OE bar terminals of the PROM 140 are the MCS of the system bus, respectively. It is connected to the 0 bar and the ReaD bar line. Write of EEPROM 140 The Enable bar terminal is one of the EEPROM enable slide switches 141. The other terminal of the slide switch 141 is connected to one terminal of the μC120. It is connected to the WR bar terminal. The WE bar terminal of the EEPROM 140 has 10 Connected to Vcc through a kΩ pullup resistor. Wafer Scale P The SD311 type micro controller interface 142 has its PA0 to PA 7 and AD8 / A8 to AD15 / A15 terminals are A0 to A of the system bus, respectively. It is connected to 15 lines, and the AD0 / A0 to AD7 / A7 terminals are connected to the system respectively. It is connected to the D0-D7 lines of Mubus. μC120 ReaD Bar, Writ E-bar, program store enable (PSEN), and address latch enable The enable / P bar (ALEP) terminal is used for the ReaD bus of the μC interface 142. -, WRite bar VPP, PSEN bar, address latch enable ends Connected to each child. μC PB0 to PB7, A16 / CS8 to A18 / CS10 of the interface 142, And A19 / CSI terminals are MCS0 bar to MCS10 of the system bus, respectively. It is connected to the bar line. μC120 TxD, RxD interrupt 1 (RxDIN The T1), T0, and T1 terminals are the master transmission and master reception of the system bus, respectively. Signal, BARCODE, BUSY bar, MASTER / T1 line. The reset terminals of the μC120 and μC interface 142 are used to reset the system. Connected to the line. The interrupt 0 (INT0) terminal of the μC120 is a standard 81C17 Universal Asynchronous Receiver / Transmitter (UART) 144 manufactured by Do Micro Systems Connected to.   The X1 terminal of the μC120 is an OECS-110. 5-1-A101A Mold 11. To the output terminal (OUT) of 0592MHz 5V clock oscillator 146 It is connected. This terminal forms the CLOCK terminal of the system bus. ECS OECS-51-1-A101A type 5. 0688MHz 5V clock oscillation The output terminal (OUT) of the data 148 (see FIG. 4d) is connected to the system bus clock ( CLK) terminal is formed. The D0 to D7 lines of the system bus are respectively UART1 It is connected to 44 D0-D7 lines. WR144 WRite bar, Re The aD bar, RS, ChipSelect bar, and clock terminal are WR bar, RD bar, A0, MasterChipSelectl bar, C It is connected to each line of LK. The I / O terminal of UART144 is the system bus. It is connected to the HC74 / Q line. The TX and RX terminals of UART144 are on Board Max 238 type RS with DC + 5V-DC ± 12V power supply Connected to the T1IN and R1OUT terminals of the 232C driver 150 respectively It The T2IN, R2OUT, T3IN, and R3OUT terminals of the driver 150 are , System bus MTX, MRCV, slave 2 transmission (S2Tx), and slave 2 reception (S2RCV) line. C1 + of driver 150 And between C1-terminal, C2 + and C2-terminal, V + and Vcc terminal, ground and V- terminal In each, there are 4. 7μF, 25V Conden Are connected. Connect between the terminals 152-1 and 152-2 of the connector 152. The signal exchanged with the continuous bar code reader 151 is the T 1OUT and R1IN terminals are transmitted to barcode transmission 1 and transmitted to barcode reception 1 Be received. The bar code reader 151 shown in the figure is, for example, a symbol techno Logis (116. LS available from TWilbur Place, Bohemia, NY 11716-3300) There is a -20-10024A barcode reader. The barcode reader 151 is R Controlled by the μC 120 via the S232 bidirectional interface 150.   Boehringer Mannheim ES300 analyzer 1 connected to the system shown All communication with the PC 153 controlling the operation of the 55 is T2OUT-R2IN serial. Data port and the T2OUT and R2IN of the driver 150 are connected Via connector terminals 154-1 and 154-2. System syringe pump 10 is connected to the terminals T3OUT and R3IN of the driver 150, respectively. It is driven via the connector terminals 156-1 and 156-2.   The angle R at which the pipette tip drive arm 20 pivots from the standby position 0 ° and the work table Control of the vertical movement Z of the pipette tip 11 moved by the arm 20 on the surface is Intel 8032 Slave μC160 and Wafer Scale PSD 311μ This is done via the C interface 162. See Figure 4e for this. Yes. The μC160 is for operation with the half-step drive circuits 168, 172, 176. Motor 183 and connectors 184-11, -13, -1 for position feedback And an encoder connected to 4 to monitor and control the R drive. μC16 0 is also the half-step drive circuit 170, 174, 178, and the operation motor 1 85 and connectors 184-3, -15, -16 for position feedback. The encoder is used to monitor and control the Z drive. Standby position of arm 20 Position or reference position is connected to connectors 182-11 and 182-3, respectively. Set it with the R and Z limit switches.   μC interface 162 PB0 to PB7 and A16 / CS8 to A18 / CS 10 terminals refer to S1CS0 bar to S1CS10 bar line of the system bus, respectively. It is connected. AD0 / A0 to AD7 / A7 terminals of μC interface 162 Are respectively connected to lines S1D0 to S1D7 of the system bus. μC in The interface 162 has AD8 / A8 to AD15 / A15 terminals, respectively. It is connected to the S1A8 to S1A15 lines of the bus. μC160 P0. 0-P0 . The seven terminals are connected to the S1D0 to S1D7 lines of the system bus, respectively. μC160 P2. 0-P2. 7 terminals are system buses S1A8 to S1A15 Each connected to a line. RD of μC160 and μC interface 162 The bar terminals are connected to each other. The WR bar terminal of the μC160 is a μC interface. It is connected to the WR bar VPP terminal of the case 162. μC160 PSEN end The child is connected to the PSEN bar terminal of the μC interface 162. μC1 The address latch enable / P bar terminal of 60 is connected to the μC interface 162. It is connected to the ALE terminal of. The TXD terminal of the μC160 is the connector 164 It is connected to terminal 164-1 and is used for system debugging. Terminal 164-2 of connector 164 is connected to ground. μC160 X1 end The child is connected to the CLOCK line of the system. Interrupt 0 (I NT0), interrupt 1 (INT1), T0, T1 terminals are respectively Connected to IOREQ1, XRZ / INT, XDZ2, XDZ1 lines. μC16 0 P1. 0-P1. 7 terminals are MBUSY1 and RLIMI of the system respectively T-bar, ZLIMIT bar, RSTEP0, ZSTEP0, RZENable, It is connected to the XDR1 and XDR2 lines. RXD terminal of μC160 It is connected to the RZDIRection line. μC160 and μC interface The RESET terminal of the switch 162 is connected to the RESET line of the system.   Referring to FIG. 4f, the system RSTEP0, ZSTEP0, RZEN, R Z The DIR lines are UDN 2508 type inverters 168, 170, 172, 174, 1 The R drive and Z drive stepping motors are controlled via 76 and 178. The RSTEP0 line is connected to the input terminal of the inverter 168. ZSTEP0 The line is connected to the input terminal of the inverter 170. RZEN line is inverter 1 It is connected to the input terminals of 72 and 174. The RZDIR line is an inverter 176, It is connected to the input terminal of 178. R drive and Z drive to stepping motor RSTEP, ZSTEP, RENable, ZENable, RDIRecti The on and ZDIRection control signals are inverters 168 and 170, respectively. , 172, 174, 176, 178 appear at the output terminals. These signals are Nectar 180 terminals 180-7, 180-3, 180-5, 180-1, 180 Supply to R drive and Z drive stepping motors via -8 and 180-4 respectively. Be paid.   Signals representative of R drive and Z drive stepper motor activity are provided at connector 182. Return to the system via. The stress sensor signal applied to amplifier 90 is applied to terminal 18 Appears between 2-1 and 182-2. RLIMIT signal is sent to the terminal 182-11 Appears to ground and is supplied to terminals 182-19 and -20. ZLIM The IT signal appears between terminals 182-3 and ground. R1, R2, Z1, Z2 signal The signal appears between terminals 13-16 and ground, respectively. DC + 12V is terminal 1 82-17 and 18 to the R drive and Z drive stepping motor sensor circuits Be paid. Between the terminals 182-11 and 182-3 and Vcc, 10 A 0 kΩ pull-up resistor is connected. Between terminals 182-13 to 16 and ground A 100 kΩ pull-down resistor is connected between each. Terminal 182- 11, -3, -13 to -16 and the input terminal 184-1 of the 74HC14 type inverter 100kΩ resistors are connected between 1, -3, and -13 to -16, respectively. ing. Between the input terminals of the inverters 184-11, -3, -13 to -16 and the ground In between, 0. A 001 μF capacitor is connected. Inverter 18 4-11, -3, -13 to -1 The output terminals of 6 are the RLIMIT bar, ZLIMIT bar, and X It is connected to the R1, XR2, XZ1, and XZ2 lines.   8032FA type second slave μC190 manufactured by Intel and incidental to it Wafer Scale PSD311 μC Interface 192 (see Figure 4g) , Radially inward with respect to the arm 20 of the pipette tip 11 and radially outward Control the movement in the Y-axis direction. μC 190 and its associated interface 19 2 also controls the movement of shuttle 302, which is the system shown. In order to inspect with the ES300 analyzer 155 connected to the The test tube rack is moved to the position where the specimen contained in the test tubes 304-1 to 304-10 can be taken out. The tool 300 is to be sequentially moved. μC190 is a drive circuit for shuttle motor And monitors and controls paths 198, 200, 202 and Y motor drive circuits 220, 222. It μC190 P0. 0-P0. AD of 7 terminals and μC interface 192 The 0 / A0 to AD7 / A7 terminals are respectively the S2D0 to S2D7 lines of the system bus. Connected to. μC190 P2. 0-P2. 7 terminals and μC interface The AD8 / A8 to AD15 / A15 terminals of the switch 192 are S2A8 to S2A, respectively. It is connected to line 15. RD bar of μC190 and μC interface 192 RD bar terminal, WR bar and WR bar VPP terminal, PSEN and PSEN bar terminal, The address latch enable / P bar and ALE terminal are not connected to each other. Have been. The PA0 to PA5 terminals of the μC interface 192 are system XPoWeRDoWn1, XPoWeRDoWn2, XDONE1, XDO It is connected to the NE2, XRESET1, and XRESET2 lines. With XDONE1 The terminals PA6 of the XDONE2 and μC interface 192 are 10 kΩ each. Connected to Vcc through a pull-up resistor. PA6 terminal is also 74H It is connected to the input terminal of C14 type inverter 194, and its output terminal is 74H. It is connected to the input terminal of a C14 type inverter 196. Output of inverter 196 The force terminal supplies the system RESET signal. μC Interface 192 PB0-PB7 and A16 / CS8-A18 / CS10 terminals Are respectively connected to lines S2CS0 to S2CS10 of the system. μC1 The RESET terminal of the 90 and μC interface 192 is the MRESE of the system. It is connected to the T line.   The TXD and RXD terminals of the μC190 are the S2TX and S2RC of the system, respectively. It is connected to the V line. Connect X1 terminal of μC190 to CLOCK line of system Has been done. The μC190 interrupt (INT) 0, INTI, T0, and T1 terminals are , Connect to the MIOREQ2, XYIT, XDY1, and XDY2 lines of the system, respectively. Has been done. μC190 P1. 0-P1. 4 terminals are MB of system respectively USY2, BARCODE, YENable bar, YCounterClock It is connected to the Wise bar and YClockWise bar lines. μC190 P 1. 2 to P1. 7 terminals are each connected to Vcc via a 10kΩ pull-up resistor. Connected to. Terminal P1. 5 to P1. 7 is also ULN2003 type It is connected to the input terminals of the inverters 198, 200 and 202. Terminal P1. 7 Is further connected to the terminal 206-1 of the connector 206. Connector 206 206-2 is connected to ground. Connector 206 is the system debug Used for The output terminals of the inverters 198, 200 and 202 are respectively Shuttlestep, ShuttleReSeT, Shuttle on the stem Supply a DIRection signal.   The firmware embedded in the EPROM of the μC interfaces 142, 162, 192 The firmware is described in detail in Appendix A of this specification.   The YEN bar terminal of the μC190 is the (−) input terminal of the LM339 type differential amplifier 208. Connected to child. See Figure 4h for this. 10kΩ resistor 2 10 and 6. 8 kΩ resistor 212 and 2. Series combination with 4kΩ resistor 214 The joint is connected between Vcc and ground. At the junction of resistors 210 and 212 About DC + 2. 4V is connected to the (+) input terminal of the differential amplifier 208. Resistor 212 , 214 at the junction of approximately DC + 0. 625V is a two LM339 type differential amplifier The TTL threshold is supplied to the input terminals of the width devices 216, 218. Output of differential amplifier 208 The output terminal is the input terminal of the SGS L293E type bridge drive amplifier 220. 1 No. pin, and then connected to Vcc via a 10kΩ pull-up resistor To be done. Pin 2 which is the input terminal of the amplifier 220 is connected to the XYCW line of the system. Has been continued. Pin 3 which is the output terminal of the amplifier 220 is connected to the system YDRI. Supply signal to VECW line. The output pin 4 of the amplifier 220 is 10 2. to the (−) input terminal of the amplifier 216 via a kΩ resistor, and 3Ω resistor Connected to ground. Between the (-) input terminal of the amplifier 216 and the ground , 0. A 1 μF capacitor is connected. The XYCCW line of the system is L23 It is connected to the 9th pin which is the input terminal of the 9E type amplifier 222. Amplifier 222 The 8th pin, which is the output terminal of, supplies the signal to the system YDRIVECCW line. It Pins 3 and 8 which are the output terminals of the ground and the amplifiers 220 and 222, respectively. 1N4148 type between these terminals and between DC + 7V and these terminals. Diodes are connected and the voltage applied to these terminals is -0. 6V to +7. Clamp between 6V.   The output terminal No. 7 pin of the amplifier 222 is connected to the amplifier 218 via a 10 kΩ resistor. To the (-) input terminal, and 3. It is connected to ground through a 3Ω resistor. amplifier 218 between the (-) input terminal and ground. 1μF capacitor is connected It The output terminals of the amplifiers 216 and 218 are respectively 10 kΩ pull-up resistors. Through Vcc. These terminals are XYLIM It provides an IN bar signal and an XYLIMOUT bar signal.   Each test tube rack 300 has a system of the present invention connected to its front end. Up to 10 samples containing the sample to be tested by the ES300 analyzer 155 Hold test tubes 304-1 to 304-10. The position of the test tube rack depends on the specific system. Installation The initial setting is performed during setting, and thereafter the Motorola H22B1 type slot type optical switch is used. It is detected by an optical detector 223-R such as an switch. Output of optical detector 223-R And the test tubes 304-1 to 304-10 in the respective test tube racks 300. The output of the optical detectors 223-1 to 223-10 for predicting the position is the connector 22. 4 into the system of the present invention (see FIG. 4i) and the terminals of the connector 224. 224-1 and 224-2 are test tube racks connected to the connector 224 and DC + 12V is supplied to the test tube position display device 225. Terminals 224-13 to 22 4-3 is an optical signal indicating the position of the test tube rack and the position of the test tube in the test tube rack. Return from detectors 223-R and 223-1 to 223-10. These signals are 100 kΩ resistors 226-13 to 226-3 and 228-12 to 228-3, respectively It is connected to the junction with. Connect the other terminals of resistors 226-13 to 226-3 to It is connected to the ground. The remaining terminals of resistors 228-13 to 228-3 are connected to ground. It is connected. The remaining terminals of the resistors 228-13 to 228-3 are each 7 Connected to the input terminals of 4HC14 type inverting amplifiers 230-13 to 230-3 . The input terminals of the inverters 230-13 to 230-3 are respectively 0. 001μ It is also connected to ground through the F capacitor. Inverters 230-13 to 23 The output terminals of 0-3 are XRACK, XTUBE1 to XTUB of the system, respectively. It is connected to the E10 line.   The Y drive motor includes a position encoder with two output terminals, The power terminals are recognized as YENCODERA and YENCODERB in the system. The signal to be delivered. See Figure 4h for this. YENCODE The RA signal line is grounded via a 100 kΩ resistor and also via a 100 kΩ resistor. It is connected to the input terminal of the 74HC14 inverter 234. Inverter 234 A 100 pF capacitor is connected between the input terminal and the ground. YENC ODERB signal line to 100kΩ resistor to ground and 1100kΩ resistor Is connected to the input terminal of the 74HC14 inverter 236 via. Invar Input terminal A 100 pF capacitor is connected between the child and ground.   Two Xilinx (Xylinx) XC2018-50PC84C programmers Bull gate arrays 241, 242 connect to system lines as shown in FIG. 4j. Has been continued. The pin numbers of the gate arrays 241 and 242 and the names of system lines are shown in the figure. As shown. The μC160 is a system bus and programmable gate array. The μC 120 is controlled via a. The μC190 is a system bus and It is controlled by the μC 120 via the programmable gate array 242. μC 190 programs the gate arrays 241, 242 during system initialization.   System power is supplied through the connector 244 and the terminal 24 of the connector 244 AC13V is maintained at 4-1 and 244-2. See Figure 4h for this I want to be done. A bridge including four 1N5400 diodes 246-1 to 246-4. A full wave rectifier 246 is connected between terminals 244-1 and 244-2. Movement A 3300 μF electrostatic capacitance 248 with a working voltage of 25 V is connected to both ends of the bridge 246. Has been done. DC + 12V is supplied to both ends of the capacitor 248. DC + 5V and Vc c is supplied by National Semiconductor LM7805 type 5V regulator 2 50 and 252, and V1 of the regulator and the ground terminal are both connected to the capacitor 248. Connected to the end. Between V0 of regulator 250 and 252 and the ground terminal A 1 μF tantalum capacitor is connected. +5 ENCoder voltage is moto Powered by Laura 78L05 voltage regulator 254, which has V1 and ground end The child is connected to both ends of the capacitor 248, and the V0 terminal is the YENCODER of the system. It is connected to the + 5V line. Between V0 of the regulator 254 and the ground terminal, A 1 μF tantalum capacitor is connected. DC + 7V is Motorola LM3 17 programmable voltage regulator 256 VINThe terminal is connected to DC + 12V. ADJust of regulator 256 A 2 kΩ resistor is connected between the terminal and ground. Of regulator 256 VINAnd ground and regulator 2 56 VOUTBetween the terminal and ground 1 μF tantalum capacitor is connected It   The Lytron 1430 type 7-segment display 270 is System diagnosis It is provided for the purpose of disconnection. See Figure 4f for this. 7 segment Each terminal of ULN2003 inverter 272 via each 1kΩ resistor It is connected to each output terminal of -1 to 272-7. Display of display 270 The reset terminal (DP) is ULN2003 inverter 27 via 1kΩ resistor It is connected to the output terminal of 2-8. Input of the inverters 272-1 to 272-7 The terminals are Each is connected to the XLD0 to XLD6 lines of the system. Invar The input terminal of the data 272-8 is connected to the output terminal of the 74HC14 inverter, Its input terminal is connected to the MRESET line of the system.   In the following description of the flow chart of the software that runs the system, A The LCO is a software for sending commands to the system and returning some kind of response. It is an abbreviation for Astask. ALER is a system software error correction task Is an abbreviation for. ALPR is an abbreviation for the main software control task of the system. It CAAL is an abbreviation for software task responsible for internal calibration of a system . INAL is a software task responsible for initialization and read end sequences. It is an abbreviation. TIPS searches for and finds the pipette tip 11 in the tip rack. Software responsible for attaching the pipette tip 11 to the chuck of the pipette Abbreviation for wear task. All these software tasks are in PC153 Yes, This system, which is sometimes called the autoloader system in the flow chart, is Have control. This software is written in C language. TWIN is ES30 0 is an abbreviation for software in the PC 153 that controls the analyzer 155. TWI N is written in a combination of C and ZIM languages.   During the pipette sequence, It is placed on the shuttle and used in the current inspection process. Re All specimens marked as From primary test tubes in various racks , Transferred to each sample cup on sample rotor of ES300 analyzer . During the scan sequence, The shuttle rotates one cycle, Contents in the shuttle Read the whole with the barcode reader 151, Saved in the database of PC153 To do. Shuttle has up to 15 test tubes at a time for scanning and pipetting operations You can move the rack. In this system, Use the syringe pump 10 to Aspirate the sample from the primary test tube set up in the Put these samples in a sample cup Dispense. Chip rack A pipette chuck supported by the robot arm 20. Hold the disposable pipette tip 11 to be attached to the plug. 96 pipettes each Two racks containing the chip 11 can be installed in the system at one time. Test tube rack Ku holds 10 primary test tubes, From the test tubes in the test tube rack to the sample cup Can be placed on the shuttle for transfer to.   Figure 6 shows the relationship between the six specialized tasks that share the hardware control of the system. Illustrates connectivity. Each task is an independent program, C language Is written in Use the QNX message transfer device for communication between different tasks. It The main control task is ALPR. This task is for scanning and pipetting Take charge of management. The instructions required to perform the operation are the existing TWIN task RUC Almost direct copy of O responsible for direct communication with system hardware A Go to LCO. If an error occurs during instruction processing, Control to another task ALER It can be passed to repair the error or report the error to ALPR. Ta One of the disks, TIPS, Pipette tip 11 onto the chuck on the system arm Specialized only for mounting. INAL is in charge of system initialization and unused Sometimes the system is moved to the rest position. CAAL does the calibration operation for the service Start to run. CAAL is not used in normal operation, Service personnel only Can be accessed. After CAAL starts with ZIM code and performs its operation, Me Removed from Mori. ZIM The code is ALSC, which provides a convenient interface between C and ZIM code. Communicate with ALPR via a task. The following description configures each task. The various modules will be described in detail.   ALPR is a centralized management task for system operation. QNX message with ZIM code Send sage to ALPR, Scanning the entire shuttle, Pipette from all primary test tubes It can initiate major operations such as swinging. After starting, ALPR is ZIM It is estimated that the desired operation can be completely completed without any assistance from the code. AL The PR can access the entire set using the ZIM-PLI function. ALPR is I It is a task that initiates communication between NAL and ALER. ALPR is TIPS Or does not communicate with CALL. Like all other system tasks ALPR is A Communicate with the LCO.   The main functions of ALPR are scanning and pipetting. ALPR is For example Sith System, allowing service commands to be sent directly to the system, Also has other important features ing. 7a-b are flow charts illustrating the overall operation of ALPR. Individual AL Each PR message option has a flow chart and a description of the operation. 8a- FIG. 8b shows a message supported by ALPR and processed by the main () function.   Upon receiving the SCAN_ALL_TUBES message, ALPR is WAIT Transition from _STAT mode to SCAN mode. This is done in Figures 9a-9b. Is shown. The system must be initialized before performing the shuttle scan. So Check to see if initialization is needed. If an error occurs , Return to WAIT_STAT mode. Otherwise, Shuttle scan performed ALSW indicates inside. Even during the scan Scanning is completed in ALPR You can still receive a message to stop the scan before it starts.   Once in scan mode, ALPR's main () function loops, The scan mode is Manages the ability to read Torrack and test tube barcodes. 10a to 10b And Figures 11a-b show scanning flow diagrams. Unrecoverable SYSTEM or FATA When an L system error occurs, From SCAN mode to WAIT_STAT mode The system shifts to. This ends the scan. NON_F that cannot be repaired Skip the sample when an ATAL error occurs, The scan does not end. Scanning , Test tube rack number, Test tube position, Test tube bar code (patient ID of sample) AL Add to PO. ZIM code monitors ALPO and eliminates data if needed To do. Once the entire shuttle has been scanned, Mode setting to WAIT_STAT mode Scanning is completed.   When the main () function of ALPR is looping, PIPETTE message When ALPR receives The flow chart illustrated in Figures 12a to 12c is executed. Initialize the system if necessary, Next, the ES300 analyzer 155 is initialized. To do. When initialization is complete, The pipetting operation is started, Chip rack 1 Start with the pipette tip 11 at position 1. This makes chip 11 If the user replenishes the supply, If you continue from the position where the last operation ended Instead, it starts from the first chip 11.   After initialization, The main loop of ALPR is shown in FIGS. 13a to 13b and 14a to 1 Iteratively execute the flow chart of 4b, So that each iteration it goes through the main loop ing. During pipetting ALPR can still receive messages. Chate Until you reach the end of Bar code data from the system and detection from SAMP Body data is passed to the get_action () function, Whether the sample can be pipetted Is determined. When I checked the entire shuttle, ALPR_stat is WAIT_ Since it is set to STAT, pipetting ends. A fairly serious error has occurred If you give birth, Pipetting stopped, The error is recorded in ALSW. Minor In the error, You will skip individual samples, Pipette of the remaining sample Does not affect   When it is determined that the sample can be aspirated by the gct_action () function, transfer_ma Sample rotor on ES300 analyzer 155 from primary test tube using nager () function Of liquid to Manage movement. Inside the transfer_manager () function, Pipetting on power failure Is interrupted, Pip_status of SAMP is set to "E". Power is When restored, “E” is marked on the specimen. Pipetting progresses normally If Pip_status shall be set to "Y" as shown in Figure 14b. Becomes   Referring to FIGS. 15a-15b, Main of transfer_manager () function of ALPR Features Pipette appropriate aspiration and aliquot volumes for samples greater than 1000 microliters To make sense. Based on the suction amount of SAMP, Array of ASP and DS1 instructions Add the sample amount to. If the sample volume does not exceed 1000 microliters, The array always has an analyte volume of 0 for stored DSI.   For sample volumes over 1000 microliters, Divide the sample amount by 2 and get the original amount To obtain one of the sample volumes to be inhaled. The remaining difference becomes the second sample amount. According to this technology, Simply generate an integer microliter volume to inhale, Minute quantity Is impossible. The first inhaled volume is the second DSI volume which is the "previously dispensed" volume Become.   TWIN software on PC153 exceeds 2000 microliters I don't support it, Any larger volume up to 2000 microliters Equally set. When the array is full, transfer_sample () function transfers liquid To execute.   Referring now to FIGS. 16a-16c, ALPR transfer_sample () function The number is One sample volume is transferred from the test tubes in the test tube rack to the sample cover of the ES300 analyzer. It is responsible for calling the function that transfers to further, During the transfer If Ra is reported, This function detects and returns them. The start of a new run If detected, transfer_sample () is the next chip in the column from the last run not, Try to install the first tip from the first rack. Some kind of d In case of Ra, ALER removes the tip and installs a new tip. tr Ansfer_sample () detects this and updates ALSW as needed.   The function install_tip () is used for mounting a chip. Figure 17 Please refer to. Must try to mount the first chip in the sequence Because it is necessary Two functions are called from install_tip (). This is normal And the alpr_next () function for mounting (see FIG. 18), First at start of execution Alpr_tip1 () function for mounting the 1st tip from the rack (Fig. 1 9). Insert tip if it is not found in the desired rack position May fail because Using TIPS assuming ALER is responsible I try to find and install the chip. If the chip is successfully detected, Dress The next chip to wear must be recorded in ALSW. This is TIPS and ALP Both R do. By using a different function for normal mounting and the first tip, In all cases it is possible to keep track of which tip is worn. First special chi In the case of The alpr_tip1 () function will call before trying to mount the first tip Save what was in ALSW. TIP because the first chip is not available When S attaches the tip, alpr_tip1 () compares the original ALSW with the new value You can see if there is any difference. If there is a difference, ALSW Have been updated by TIPS. If the values are the same, there is no TIPS activity, The alpr_tip1 () function makes the second chip in ALSW the next chip to be used. And save. alpr_next () is You don't have to detect TIPS activity, Sike There is no need to store numbers outside the license. This function installs the last available tip It is necessary to detect whether it will be done and round the chip count to the 1st chip in ALSW There is.   Referring to FIG. 20, Use the ALPR try_tip () function with alpr_next () and alpr_ti. Use p1 () to mount the tip. This is a chip using the specified chip number Move the arm 20 up, Next, I try to attach using IPT. Chip packaging ALER will handle the missed arrival.   The set_rotor () function of ALPR is Use the supplied sample rotor position to Replace the new position for use with the system. See Figure 21 for this. I want to be In order for the arm to dispense into the correct sample cup, ES3 00 Specify the different rotor positions of the analyzer and use the required sample cup with the arm. Must be accessible. This is paired using rotor_array []. This is done by finding the necessary coordinates that correspond. Once new locations are available , Assemble the ES300 analyzer command and send it using the AL_Dispatch () function It Since the error from the ES300 analyzer cannot be corrected by ALER, set_rot If any error is detected in the or () function, WA for ALPR_stat The pipetting operation is stopped by setting IT_STAT.   Asp_setup () of ALPR (see Figure 22), perf_asp () (see FIG. 23), per f_ds1 () (see FIGS. 24a to 24c) is Issuing system commands and error checking To do. During perf_ds1 (), The arm must move onto the sample cup for dispensing. I have to. The rotor positions supplied using the array rotor_array [] Convert to horizontal position. Other than this special operation, These functions are mostly fixed Issue the sequence of instructions At the same time check for errors and early recovery.   The ALPR conv_al_ret () function is The need to call the AL_Dispatch () function To minimize Used to convert the return value to an integer for error checking. Be done. See FIG. 25 for this. The conv_al_ret () function is Call Performs both of these functions on behalf of the issuer. But, Caller has command control It is still necessary to specify the parameter index.   The decision to pipette the sample is Depends on system information and SAMP information There is. The ALPR get_action () function sorts the combined values, Erraco Mode, Skip code, Or one of the codes that causes pipetting return. main There are two decision groups: The system supplies the barcode from the current test tube Was it possible to And bar code not found on specific rack and test tube position I want to. 26, Compare Figures 27a-b.   If the system supplies a bar code, SAMP finds the same barcode You can do a search for it. SAMP's pip_status and Ld_status are the same If you show that you can pipette your sample, get_action () is PIPETTE return. If no bar code is available, SAMP can be searched by barcode number. Can not be. Instead, search based on rack and test tube position. one A matching rack and test tube location was found in SAMP, SAMP flag If you allow, The get_action () function returns PIPETTE.   In addition to the two parts of the get_action () function of SAMP search, get-action () There are functions used to do the actual work. For barcode number search Uses primary_id () and secondary_id (). About this See 29. For rack search, use primary_rack () and sccondary_rack (). use.   Use primary_id () when you first search by barcode number. Specimen If SAMP shows you can't pipette, do another search, Find another SAMP record with the same barcode number. Second for this ary_id () is used. secondary_id () uses ZIMNEXT search method, this The FIRST search method must precede. This is done with primary_id (). . NEXT search is The bar code number criteria match another SAMP record If not, stop.   To search for the primary_rack () and secondary_rack () functions, Inspection by ID number Unlike the search, because there is no unique key used for searching, Somewhat complicated ing. primary_rack () finds the first match of rack number in SAMP Therefore, the FIRST search method is used. See Figures 30 and 31 for this. I want to be correct The probability of being a test tube position is only 1/10. There may be 10 test tubes), Normally, a match is found for both the rack and the tube number. It is necessary to perform a NEXT search until the end. The primary_rack () function finds a match Also, This may not be the only match between rack and test tube position. Successful If you cannot pipette the sample from the first search, secondary_rack () function Using, If available, find another match for the same rack and test tube. This See FIG. 32 for that. If another such match is found, If This sample can also be pipetted.   The ALPR get_next_barcode () function is For scanning and pipetting operations To use. About this, FIG. 33, 34, See FIG. 35. Only Then Because of the differences between these operations, Not all of the code can be shared. The biggest difference is in the movement of the shuttle after reading the bar code. scanning For It is desirable to move the shuttle as fast as possible. Get barcode As soon as the shuttle will start moving to the next position. This allows the database The shuttle can be moved while performing the ground movement. Pipetting First, Do not move the shuttle after scanning the bar code on the test tube. , This is because it is necessary to fix the test tube for liquid removal. Tsuma , get_next_barcode () function controls movement after reading barcode To use flags. The format of shuttle instructions used is also important. Scan Use MS3 and MS1 to move to the first or next test tube as needed. Can be Read the last test tube in the rack, If you issue MS1, The position of the next test tube No. 1 is moved to a predetermined position. If no rack is available, It is possible to issue the MS3 to move the position of the next test tube No. 1 to a predetermined position. Since you can start moving as soon as you get the barcode, This is for scanning It is efficient. When pipetting If there is no rack, use test tube 1 Stopping is not efficient. Pipetting In order to stop by the rack bar code, check if the rack exists, Then M Use the S1 command to move from test tube to test tube, Or issue MS5 and then It is better to move to the rack. That is, Scan to move MS3 / MS1 Using instructions, Use MS5 / MS1 instructions for pipetting. get_next The _barcode () function keeps track of the shuttle's "end". Physically, Since there is no "end" or "end", The get_next_barcodc () function scans and Is passed a flag when pipetting begins. by this, Total count Will be set to 0 and the flag will be cleared. After this, Test tube or rack The count increases appropriately with each movement. Count is shuttle capacity (150 = 15 racks) X 10 test tubes / rack) When you reach the "end" of the shuttle I will say. this is, Each test tube position passes the bar code position once Meaning that Unless the operator made any changes, new Indicates that there is no information to be acquired. 33 to 35 show scanning and pipetting. How the modes are combined, How to manage test tube counting Indicates whether the end of the camera is detected.   APLR SERVICE is Transfer operator's commands directly to the system, Return Observe the resulting results. See FIG. 36 for this. service Equipment for displaying the ZIM screen such as bar code data to the system Automatically request to supply information. The whole set of ACIN is ZIM initial Was converted into Read by ALPR to do this. ALPR is ACOT Is also used to respond to the ZIM code. AL_Serv_Disp () for sending to the system Using AL_Dispatch () is not used. this is, AL_Dispatch () detects an error This is because the message is sent to the issuing ALER so that the error is corrected. This is not desirable during service operation. FIG. 36 shows System command from ACIN How to read the command and send the command using AL_Serv_Disp (). It is a diagram showing whether to use a loop.   ALPR SENSOR is Display continuous updates of system sensors on ZIM screen To show. When you enter the SENSOR mode, From SENSOR to any other mode The sequence of instructions is repeated until a message that changes to 37 to FIG. 38 how the SENSOR mode was established, How the sensor reads It is illustrated whether the read value is displayed.   AL_Dispatch () of ALPR is For all system tasks that communicate with ALCO Exists. But, Only ALPR's AL_Dispatch () detects a system error And pass control to ALER. In the entry part to AL_Dispatch (), ZIM Index I'm doing a test on the use of X. To speed up ALPR as much as possible Because The use of the entire ACMD set is indexed into an array that reflects the contents of the ACMD. It has been replaced with a x. But, To test ALPR and ALER during verification Has It is not known if the index is in the rest of ALPR, so ZI Must use M_method. Issue system command using ALPR Then Produces an error, When passing the status to ALER, Technician is in DIRECT mode Issue a command to ALPR. Under these conditions, AL_Dispatch () is ACM It is necessary to refer to the instruction control parameter in D. If necessary, AL_Dispatch () Re-initializes the autoloader. Usually required except in case of power failure Should not be. To send the order AL_Dispatch () is executed by ALCO You can retry beyond what is being done. The entire AL_Dispatch () entry, order Of the And the loop retry method is illustrated in Figures 39a-39b. Send For more information on 40, 41, 42a-42b, Illustrated at 43-45 It   FIG. 40 shows Main instruction types, C (command), S (state), R (read), M ( macro), E (ES300 automatic analyzer) is shown. Each type of instruction Different handling is required. The type of instruction is The index passed to AL_Dispatch (). In the decide. If errors occur continuously, It is necessary to detect some commands before sending. It is necessary. This includes Use the test_cmd_str () function as shown in Figure 40. It the system, It has equipment to hold the last transmitted shuttle command. Absent. For example, if an error occurs due to a shuttle command such as MS1, AL The ER has no way to get a shuttle command from the system. This is supplied by ALPR Must. To allow ALPR to do this, message Is sent to ALER, Before the test_cmd_str () function is used, Capture the instruction You need to do it. Regarding ALER which issues ASP and DSI command, A The capacity must be known at the LER. ALPR uses test_cmd_str () , If necessary, capture the last used amount. See Figure 46 for this. I want to be illuminated. If you meet the requirements of a special order, The AL_Dispatch () function That life Execute the appropriate piece of code to send the command. In AL_Dispatch () function, To For the purpose of marking the race, Error handling is specified as O. Normal processing Is O format. If ALER is running, Use different error handling code It by this, The trace will look different. like this do it, The behavior of the ALER can be easily identified.   The C-type command of AL_Dispatch () of ALPR is No response is returned. Figure 41 is a C-type instruction 9 illustrates what is needed to support the.   In AL_AL_Dispatch () of ALPR, the S type command is Reflects the state of some part of the system Causes the system to return the response to All S-type responses are Busy Can be included. AL_Dispatch () is Resend commands until no longer busy Believe. When the system is no longer busy System response is a longint for inspection Converted to expression (long). The result 0 represents no error. Other results are Th It also sends a status message to ALER for error correction. In that state Therefore, If it is suitable If it ’s off, A shuttle order was issued, Quantity (error is ASQ or DSQ error Otherwise there is no meaning). After ALER responds, The return code is After being converted to an ASCII string, Return to the calling function of AL_Dispatch (). Re The turn code is It reflects that ALER has successfully fixed the problem. ALE After receiving the R response, Another separate housekeeping task is performed. AL _Dispatch () keeps track of shuttle commands for use with ALER, so Old emotion The success of the shuttle order must also be tracked to eliminate the news. After receiving the system shuttle command response and confirming that there are no errors, Save The information about the saved command is deleted. An error occurs and ALER corrects this. You can If you can move the shuttle, This should also be detected Absent. The test_smsg_str () routine is Used in BEFORE and AFTER modes Use Check system response "before" and "after" sent to ALER To For this, 42a-b and 47. Yes.   R-type command in AL_Dispatch () of ALPR is used to get information from system . An example of this information is It is a bar code of the test tube rack 300 and the test tube 304. It The response from the system is A pointer to the returned system string. Figure 4 3 shows an R type flow chart.   The AL-Dispatch () M-type command of ALPR is System status in AL_Dispatch (). Returns information. But unlike the S command, There is no busy contention. System state Is received, Checked for errors. If there is an error, Error correction Send a status message to ALER because it is positive. FIG. 44 shows a flow chart of the M type.   The E-type instruction of AL_Dispatch () of ALPR is For ES300 automatic analyzer. E The S_command structure is SENDPROC () is used to communicate correctly with ES300 automatic analyzer. Initialized with the required values. Error correction of ES300 automatic analyzer system task You cannot do it from within the environment. The error is only reported. Figure 45 is E type The flow chart of is shown.   ALPR test_scmd_str () and test_smsg_str () are AL_Dispatch () It is used to detect certain instructions and provide information to the ALER. It test_smsg_str () is Erase information about shuttle commands already captured The result of ALER is also detected in order to do so. AL_Dispatch () description and Fig. 4 See Figures 6-47.   In ALPR main () function, various QNX messages include: ALPR SHUTDOWN to terminate (see FIG. 48), C to send ENQ to system ONNECT (see FIG. 49), DISCONNE to send EOT to the system CT (see FIG. 50), To start / stop ALPR calculation without stopping it entirely INTERRUPT and CONTINUE (see FIGS. 51-52) used for straight Erase all intermediate states as a result of the previous INTERRUPT and end_l in INAL END_LOAD, which signals to send the oad sequence (see Figure 53), During the DIRECT-ALER test, By sending a message to ALPR I mean Use ZIM PLI to refer AL_Dispatch () to command control data Need to tell. The DIRECT mode is Software testing in the laboratory Used only for testing (see Figure 54), Run only one test tube instead of the entire shuttle SCAN_NEXT_TUBE (see FIG. 55) that enables the inspection.   ALER is used to correct system errors during scanning and pipetting . Since only ALPR communicates with ALER, Errors that can be corrected with ALER are AL Only those that come from the PR calculation. further, ALER is AL_Disp in ALPR Only invoked from the atch () routine. The system instructions are ALE when an error occurs To start R, It is necessary to go through AL_Dispatch () in ALPR. Figure 5 6 is 9 illustrates the association of QNX messages between ALPR and ALER. Detected by ALPR The message to ALER activated by the system error Error detected Includes a status string that represents. The message is Shuttle command or liquid quantity It may include information. But, If the error is not due to a shuttle command , Shuttle information is not relevant. The same applies to the liquid volume information. ASQ and And DSQ error, No liquid volume is required.   ALER is Sometimes you can correct the error, What you can't do is there. The value of the flag of the QNX response from ALER is How successful was the error correction? Represents Taka. Some errors, such as SYSTEM errors, Very serious Because there is ALER cannot correct these. ALER is a pipette If you need to wear For that, send a QNX message to TIPS To do. FIG. 57 shows the message association between ALER and TIPS. Chi If the top is mounted by ALER / TIPS, This event is ALP Reported to R. This is to ensure that the entire ALSW set is always properly updated and used. Necessary to ensure that the next chip reflects. Functions that make up ALER Each of the numbers will be described later.   FIG. 58 shows It shows the major decision blocks within the ALER. Error correction for, ALER uses the status message from ALPR as a starting point. Condition Status message, Since it can be used to select the correction method from the database Information is included. Excluding tip mounting ZIM data for all error handling Based on a list using the base. The basic sequence of corrections is generally D Rabbit detection, Database key structure, Database search, Run list, Resend the original system command to see if the error has been corrected, Empty It The "next search" can make the status message more complicated. How many Some status messages report errors, Use another instruction to get details Must be used. Corresponds to one or more status messages in ALER Because State stack exists It The stack is a first-in, first-out system. When the next search is detected, New required condition State from the system, Stack on the stack. Until the error is corrected Or until it is determined that correction is impossible, Error correction using this new state Keep positive. Assuming you can cancel the next search off the stack, Immediately before Error correction can be continued using the status of. Resolve errors related to next search Is estimated to be possible. But, There are other errors that need further correction May exist. These errors generate a database search for the list Then This causes the system to send further commands. Finally, No error The response is received from the system, Or clearly that the error cannot be corrected Become. In either case, The al_error () function is returned, ALER error correction activity A response is reported to ALPR that reports the success of Movement of the functions that make up ALER The work will be explained below.   The function test_bits () determines the error bit number in the status message during the investigation To use. The loop inside al_error () is Bit number other than 0 is returned When it works. The first stage of error handling is Ella in the AERR database Is to discover. This is done using the find_aerr () function. aerr structure In the building, There is a member called error_type. Error correction error_type Guided according to attributes. For example, Specific error is "S" (system) type error If so, No attempt is made to correct this error. on the other hand, "F" Or "N" type errors are corrected. 59a to 59d show all types of errors. 6 illustrates the steps and functions used to handle.   test_bits () Report that the last bit in the state number has been processed At that time The loop outside al_error () is executed. This part is shown in Figures 60a-b. It is shown. At the first decision point of the outer loop, Leading inner loop gills -What is correction activity Find out if there was any effect. The latest status information indicates that an error exists. Perform an inspection to see if it is present. If the error still exists, Some improvement It may have been done. in this case, Book at the time the new error condition began to be corrected Perform an inspection to see if it is different from the original condition. If the states are different, the first It is worth starting error correction again with. To do this, al_erro Jump to the START position in r (). The reason for performing error correction again is It is related to error correction depending on the bit position. There are 2 errors that need to be corrected Let's assume that one exists. test_bits () identifies the first error, but this Because the first error depends on the second error, Maybe correct the first error Can not be. Eventually the second error is detected and corrected. Verified state Sometimes it becomes clear that some error was discovered, I still have a problem It When error recovery is restarted from the beginning, The first problem that prevented the error correction The subject has been restored. Now you can correct the error, Second Complete error correction can be done by trial. This form of error correction is Select error correction method Selected to eliminate the order of quadratic inference error correction when selecting .   After passing the decision point about no error / other error, The next test is a status stack It is about the depth of ku. When the state stack index reaches 0, ALP It is necessary to determine the return code to R. If the stack is not 0, Current And remove the stack entry for the Can be opened. When the stack reaches 0, get_return_status () The function determines the code to report to ALPR. If the stack is not 0, solv e_problem () function is called, The condition that causes the next search error processing to occur again When issued, The error handler should not cause any more errors Like Position the system. at this point, Status inquiry from the stack is Retransmitted to the stem, This includes IPT if ALER has already installed the tip Suppress it, send_current_ It comes with an option to determine the current state using the query () function. Ella If the status indicates that the Good condition is stored in the stack, Error correction continues.   When al_error () starts operation, Which desired location of system storage memory is required You need to save what was asked for. For example, Move arm 20 to horizontal position 1. I ordered the system to run, Because the power of the arm 20 was turned off Suppose that the move fails. Horizontal position 1, which is the desired destination position, is To the system Therefore, it is saved. Overwrite the desired location where al_error () is stored. Such as future using get_current_pos () function Information must be retrieved and stored for use. FIG. 61 shows ge 9 illustrates the operation of the t_current_pos () function. Saved information is restor Used in e_position ().   To complete the error correction, At the start of al_error (), Taken from the system In the information that was issued and saved by get_cur_pos (), System is wrong The same state that the system was in or should have been Need to be 62-65, Illustrates how to restore system location It is a thing. The shuttle location is special, Actually used by restore_position (). The command used to generate the error. The information is provided by ALPR, Sith Not available from Tem.   The entire AERR set is Adding bit positions at the end of system instructions Including the key assembled in. The lowest possible bit number is 1 and the highest bit number Is 16. Assuming the ALER has received the state QSSs4096, find The search key assembled with _aerr () is QSS13. The received status is ASQs If it is 1, The search key is ASQ1, After this comes a space character. This is Z This is because compatibility with IM is taken into consideration. Figure 66 shows how to do this It is a thing. After the search is complete, AERR structure is ZIM AE on disk RR database Filled by records from.   The state stack is a continuous char buffer. The stack entry is Index It is determined by the count value of the queue and the maximum length of status message. Stack a state To add Calculate the start position using the following index, Message Must be copied to the tack buffer. This process is illustrated in FIG. . ALER's add_msd () is Report an error when the stack is full . But, Stack is defined large enough for 10 status messages It In theory, Due to the limit of detectable next_query bits, Stack skull It is impossible to grow beyond Bell 3. That is, Stack full error detected If done, Some serious mistake has occurred in the software.   When you add the next_query state to the stack, Save the working state of the logic mask There must be. As a result next_query is cleared from the stack, error The correction is resumed for the previous state. To be able to do this , The mask used in test_bits () must be in the same state. N of ALER The xtquery_man () function is Use the state stack index to mask the working mask. Transfer to stack. This is shown in FIG. for that reason, test_bi ts () will be able to handle the new state, so Initialize the work mask. So Here, send_next_query () is used for error correction, For more error information Incorporate the state specified by including AERR, Add this to the stack.   The messages sent from ALPR to ALER are: Indicates system error status Contains the status string. After performing error correction, Same situation to check the result Need to request. If the state was generated by a "high level" instruction, Ella Need to find the instruction that generated the error. This is status_to_query () of ALER To do. The status character is Compared to an array of high level status strings. Find a match If you want This The corresponding instruction is copied into the buffer padded with entries. next , The caller continues to send status with the instruction that originally caused the error. Can be. 69a-69b For converting one string into another Illustrates a method of doing so. ALER status_to_query () is 3-letter inquiry To find the corresponding instruction. Input to status_to_query () IPQ A pointer to the status string, such as Pointer to the command string for return, Over And the stat-quer () array Included with the combinations illustrated in Table 1 below.   ALER's st_diff () returns the long supplied in the entry as ASCII in state. A utility for comparing numbers. The state is in the state stack. al In the outer loop of _error (), use st_diff (). Check if it is different from the saved state. Figure 70 is included in this comparison process 3 illustrates the steps performed.   It is necessary to resend the query command that generated the system state after performing error correction There is. The status returned from the system indicates whether the error correction had any effect. Can be used to determine. In low-level instructions, the first three characters of status Can be resent for inquiry. However, high-level instructions Precede It is necessary to retransmit the command, eg the IPT before the IPQ. Two high level instructions, ASP and DSI must also include quantities. So the state character is processed Need to determine if high level instructions are needed. This is shown in Figure 71. It is shown. If an ASP or DSI instruction is required, this is a high-level instruction The above search is not performed. Otherwise, use the status_to_query () function And assemble the required instructions. Once you have assembled your order, it is safe to send it It is necessary to check whether it is all. IPT command already used and works If you do, you cannot send it again. Ella just corrected Cause an error after To prevent IPT transmission, use ALER In the send_cur_query () function of the Supply. If IPT suppression is required, the calling function will include a flag and send_cur The _query () function checks if the instruction is an IPT, and if the flag indicates this Block transmission. Whether or not special high-level instructions are set , The first three characters of the status message are always sent. Pointer to system response Will be available to the caller before returning the value.   To evaluate system state errors, you need to identify the location of the error bit. is there. The position of the error bit is used as part of the database search. ALE Use test_bits () of R to search the error bit position. 72a-72b Shows how the test_bits () function works. test-bi ts () is designed so that it does not retest some of the previously tested conditions. A "new" that eliminates the bits that have been inspected so far by using a bit mask It is possible to generate states. That is, only the new bit position is It will be reported until the end of the work is reached. Table 2 shows the decimal value 4384 The operation of test_bits () for (1120hex) is illustrated. Bit position 6, 9, 13 and finally in the middle of generating 0 The median values generated at are as shown in Table 2.   Table 3 shows how the values of the escape mask correspond to the bit positioning and the bit positions It shows how to avoid becoming incomprehensible.   After error correction is complete, AL using the latest available state from the system Determine the reply code to PR. If there is no error, the reply value is OK. is there. In case of error, the most serious error can be reported if there is more than one error. And are important. In FIGS. 73a and 73b, get_retum_status () is set to test_bits (  ) Is used to illustrate how to analyze the latest system state. The process is complicated by the next search error. ALER get_retum_status () Is the last state information from the stack for the purpose of resolving the comparison between state values. Restore. This idea is The most serious error is found from the status values that reflect system errors. . It sends the next search specified by AERR and based on the observed error. By returning the previous return value and restoring the previous state for further analysis. U Overall, the most serious errors are still reported.   Error correction is managed by a predefined strategy stored in AERR. strategy The names are init_proc, flag_proc, run_proc, and error_proc. Function so lve_problem () does not use the error_proc method (see the clean_up () function below). See description). Two of the solve_problem () methods, init_proc and run _Proc is almost the same in operation. flag_proc method is list-based It is for solving problems that cannot be solved by the method. Current At this point, only chip mounting requires flag_proc. 74a to 74b and 75 76a-76b show how these three methods are detected and error corrected. Is used in solve_problem () for init_proc and run_ In proc part, the basic character string for ALMA search is the key generation key from AERR. To the local buffer. Inside the loop, the base is used to form the search key. A sequence number is added to the key that serves as a book. After this this search key is used Find the command to send to ALMA. No more orders can be found Then, the init_proc or run_proc method is terminated. 3 for all AERR entries It should be noted that not all methods of are defined. init_proc Or, if run_proc has "ZZZ" in AERR, use it in ALMA There will be no predefined strategy possible. flag_proc is defined by a number. This turn Issue is used in the switch statement to select the flag_proc function for error correction. To be done. Start TIPS for flag_proc # 1, ie only flag_proc Move the arm onto the first chip before moving. This is what TIPS needs to The TIPS is supported by moving the arm near a certain position. to this If the arm is not located on the chip rack when calling TIPS, , TIPS to prevent arm errors. The operation of TIPS If successful, the solve_problem () function will set the ipt_mode variable to SUPPRESS_IPT. Set. This will not try to insert more chips after the chips have been installed successfully This is because   The clean_up () function uses the error_proc member of AERR. ALER's c lean_up () is the init_proc and run described in solve_problem (). proc and It works similarly. 77a-77b are clean This shows the operation of up (). .   If the next search bit is set in the status message, the AERR structure will search for It will contain the instruction string after it is done. AERR command sent to system Trusted and the response is put on the state stack. This is illustrated in Figure 78. There is.   The function ipq_test () is used to detect the successful mounting of the chip. It If the system status message is IPQsO, then a chip is present. This information indicates that the ALER has installed the tip because the tip has already been installed. Used to suppress future attempts that would result in an error It Figure 79 shows the method used to detect and report IPQsO in ipq_test (). It is the one illustrated.   TIPS is a specialized task for mounting pipette tips during error handling. Is. ALER is the only task that communicates with TIPS. 80a to 8 0b shows the main () function of TIPS. Here, INSTALL_TIP Only two operations, S and SHUTDOWN, are supported. In the case of INSTALL_TIPS, A The response to the return to the LER includes the number of the mounted chip and the completion code.   Tip_managcr () starts with the ALSW chip number to mount the chip To do. Further, this number is incremented and then saved again in ALSW. Wearing Succeeded in If this happens, this will be the next chip to be mounted. Incrementing the chip number Saving is handled by computer_tip (). First number from ALSW and install_t Tip_manager () tries to attach a chip using ip (). Installation failed If you do, tip_manager () tries to detect the tip by so-called "column search". To do. The first in each row of the first column of the first and second tip racks Try the tip. If a chip is found, ALSW will increment the new chip number by 1. Will be updated by. The number of the actually mounted chip is Saved with the return value. 81a to 81b are for detecting and mounting the chip. It is an illustration of how to use the two methods.   Before saving the chip number in ALSW, increment this to find the range Need to be inspected. The highest chip number in the second rack is 144. co mpute_tip () checks if the maximum value is exceeded, and if the maximum value is exceeded , Round the next chip in ALSW to 1. See FIG. 82 for this. .   To record the chip number in ALSW, the calling function save_ti Pass to the p () function. change_alsw () is used to record changes on disk. Be done. See FIG. 83 for this.   84, 85, 86a-b, 87, 88, AL_Dispat of TIPS The ch () function is a subset of the version described in ALPR. TIPS Is controlled by ALER, so no error trapping as done in ALPR is done. Yes. Also, TIPS does not use an index as an alternative to ACMD. T The AL_Dispatch () command in IPS is considered as an extension of ALER, so SENDCOMM (  ) Error handling is specified as 100. This is marked on the trace line of TIPS To indicate that they are error handling similar to ALER.   INAL initializes the system and puts it into a known state after it finishes running. Mu Used to store. Both functions perform the same, with the only difference being search. The address of the array that is the source of the string. 89a-89b are two main Illustrated how to select INIT and END_LOAD, which are required jobs It is a thing.   INAL's send_cmd () is called from initialize () and end_load (). . These two functions initialize the array needed for the operation and set the array address to se. nd Pass to cmd (). send The cmd () function is called for each prepared array string. AL for all numbered sequences assembled according to content Search for MA. If the ALMA search is successful, the string from ALMA will be Sent to Mu. An error from the system caused INAL to terminate and ALPR Error response to (since only ALPR uses INAL). IN The AL will not send an error message to the ALER for correction. Table 4 90, 91a and 91b show the contents of the array used for the ALMA search and the ALM. 9 illustrates the method used to assemble the A key and send the discovered commands. Inputs to send_cmd () include end_load () and initialize (). This is Store the body of the search key of in the array and pass the pointer to the array to send_cmd (). You The contents of each array are shown below.   The following INAL instruction is used by the system for initialization and end_load cleanup. Sent to. If any error occurs during the INAL sequence, the sequence The can is interrupted, an error message is displayed on the screen, the error is in the error log Recorded in. Initialization sequence Reset firmware    RES power supply, EEPROM, microprocessor, RAM                   Inspect. Returns the same status as QGS. Arm test    Power supply to AP + arm motor started    LZ- Move arm to Z axis limit    Poll the busy bit until the QAS arm move is complete    Move LY + arm to the limit inside Y-axis    Poll the busy bit until the QAS arm move is complete    Move the LR-arm to the limit of the R axis    Poll the busy bit until the QAS arm move is complete    LY- Move the arm to the Y-axis minimum limit    Poll the busy bit until the QAS arm move is complete    LZ- Move arm to Z axis limit    Poll the busy bit until the QAS arm move is complete    Move the MPVv1 arm to the top position    Poll the busy bit until the QAS arm move is complete    Moved MPHh191 arm to "rest" position    Poll the busy bit until the QAS arm move is complete Chip ejection    Move the MPVv1 arm to the top position    Poll the busy bit until the QAS arm move is complete    Move MPHh186 arm to the outlet position    Poll the busy bit until the QAS arm move is complete    MPVv9 Lower arm to chip ejection height    Poll the busy bit until the QAS arm move is complete    EPT pipette tip is ejected    EPQ emission inspection    Moved MPHh191 arm to "rest" position    Poll the busy bit until the QAS arm move is complete Shuttle test    Power on the SP + shuttle    MS5 Move the bar code position of the next tray rack to the suction position    Poll busy bit until QSS shuttle move is complete Pump test    Power on the PP + pump    ISP pump initialization    Poll busy bit until QPS pump operation is complete END_LOAD sequence    Power on AP + arm motor    Move the MPVv1 arm to the top position    Poll the busy bit until the QAS arm move is complete    Moved MPHh191 arm to "rest" position    Poll the busy bit until the QAS arm move is complete   Calibration task CAAL is the only task not controlled by ALPR . CAAL requires ALCO services. CAAL is another system task Does not reside in memory like. ZIM is a command line for specific tasks. Start CAAL with parameters. CAAL executes the instruction and terminates. Immediately before For calibration operations that require the results of CAAL's work, save the results before saving to disk. Recover using a file. Remains in memory between CAAL executions There are no interim results. On the other hand, not only does it consume RAM when not in use Since it is executed by line technology, access to the display screen associated with the PC 153 is possible. Can be easily done. This makes it easy to overwrite the ZIM screen with CAAL. .   There are basically two types of CAAL work. This is a file and display operation, It is a calibration work. CAAL can perform new calibration while keeping old information In addition, many file copy options are required. Therefore, some Mandline parameter reads a file and copies this to a new name Nothing but do not do. Some options first create a copy of the file with default values. It is used only for development. Once the file is created as a placeholder Once done, it can be read by CAAL and once the calibration is performed Eventually it will be overwritten. For display, some options read the file. And write it to the screen using the display coordinates.   Calibration options are significantly more complex than file and view options . To perform the calibration, the user toggles the key to switch the system as needed. It is considered to be matched. After alignment, the new coordinates can be written to the file and displayed. To do so. If the user determines that the new parameter is correct, the parameter Are transferred from the file to the EEPROM 140 of the system. 92 and 93a ~ Figure 93c shows that main () uses command line parameters to perform a calibration operation or A method of passing control to file and display operations is illustrated.   The function that manages the calibration program is calman (). This is the requested frame Call the functions required to perform the command line operation. Perform some calibration Before, the RAM table that holds constants and descriptors was created as a disk file and rd_table (  ) And need to be filled. In addition, new_table [] is the latest from disk Fill in the information and once the calibration is performed, write the table with complete information. We must be able to put it back. Calman after initial file manipulation () Uses set_variables () to go to each axis to determine which axis to calibrate There are two positions and the sequence of instructions to position the system before starting calibration To find or initialize flags that control. set_variables () is the beginning Will do this based on the command line parameters. Set calibration control variables And calman () starts executing the loop. Inside the loop, the two-letter code is sen A key used by d_cmd () to find out which command to send to the system. To construct. These instructions operate the arm and shuttle. Place it in the place necessary for the positioner alignment. Calibration to dosing position If, then the ES300 automated analyzer is initialized. Operator adjusts the axis If the flag indicates that you need to do this, use calibrate () to control the keyboard. The axis can be moved by the control. Loop control is incremented every time the loop passes. To be When the value of the initialized loop is exceeded, the loop is exited. calman () Checks if an ES300 automatic analyzer was needed and if so, disconnects. Refuse. If there are no system errors, calman () uses the wrt_table () function Save the new calibration information in the al_new file and restore. System EEPRO To read the calibrated coordinates into M140, another command line parameter Need to use. 94a to 94c show the operation of calman (). s tore () can be used to transfer system coordinates to new_table [] in a loop. It should be noted that   95a-95b, CAAL set_variables () is the command line Figure 6 illustrates how the parameters are converted into codes for calibration control. For example, if the command line parameter is 3, the loop count is set to 2. Set, the axis flag is set to 1 for R, Y, and Z, and the search code is set to T2 To be done. This is because two defined positions are set during calibration and all three arm axes are set. However, the shuttle is not set and the command to set the arm is searched for ALMA. It means that it can be found by using T2 as a basic code for use. set_varia The input to bles () is the sequence variable and the CAAL entry instruction dynamic parameter c. Contains a pointer to a structure holding lp and. This function tells the system Code and axis for later use in transmitting cans and for arm alignment Assign a loop count.   96a-96b show keystrokes allowed within CAAL's calibrate (). It shows how the axis variable manages the clock. inside the calibrate () loop Once in, the user can hit the keys to move the arm and shuttle. Like Shi However, control the R, Y, Z, and S variables initialized by set_variables (). Must be a variable for the axis to be tried.   As part of the calman () calibration process, send_cmd () retrieves and sends system instructions. Used for. set_variables () stores the basic code for ALMA search. set_variables () also sets the loop count used by calman (). Basic code, For example, adding the loop count to "T1" or "BC" etc., the first three sentences of the search key Make letters. There is another loop in send_cmd (). This loop is in ALMA Find all matches where the first 3 characters match the base code and loop count To be set. To do this, count the counts in the inner loop at the beginning of the search string. Combine with the three letters to create the final key. 9 or more per each sequence Due to the presence of the above instruction, the inner loop count can be up to two digits long. did Thus, the total length of the key is 4 or 5 characters. Required for compatibility with ZIM If necessary, fill in the blank characters so that each key has 5 characters. 97a to 9 7b illustrates the operation of send_cmd ().   When the operator completes the calibration, CAAL's store () function fills the information with new_table. Specify how to save in []. The specifications are passed to get_pos (). This function Reads the current position of the system and uses the index specification from store () Save position. 98a-98b illustrate the operation of store () and get_pos (). ing. The input to store () is a pointer to a structure to hold the sequence variables. Included. clp holds CAAL input command line parameters. Le Groups are managed by calman (). Inputs to get_pos () are sequence variables, especially stor To a structure holding ridx, yidx, zidx, sidx initialized by e (). Contains a pointer to.   Point directly calibrated by the user when command line parameter # 11 is received The process of calculating the complete set of calibration points from the set of Most in processing Relationship The deep part of is the calibration of the tip coordinates of rack 1 and rack 2. calc_rack1 () Starts processing, and the row_col () function manages the calculation. row_col () is general purpose Therefore, the structure used by row_col () is set by calc_mck1 () and calc_rack2 (). It Besides preparing row_col (), the calc_rackX () function is used for Z-axis chip mounting and checking. Up Search Vertical motion is calculated. These calculations are read from the al_caal_parm file. A simple addition of the different offsets taken and the calibrated up and down movement of the tip rack . 100 and 101 illustrate the operation of calc_rack1 () and calc_rack2 (). .   CAAL row_col () manages calculations for one chip rack at a time To do. Entry of the 1st and 12th chips in the first chip row of a given rack Access R and Y axis coordinates. However, the Y-axis coordinate is inside the chip from the arm center Inserting from the Y-axis position farthest from the center of the arm, not the distance to the heart It is the distance to the heart. You can use trigonometry to find the polar coordinates of all tip positions. To be able to do so, calculate the unknown distance from the arm center to the Y-axis initialization position. It is necessary to This is done using the calc_r4 () function. r4 is known Then, the coordinates for all the chips in the first column can be calculated. this is This is done using init_row1 (). Once the coordinates of all chips in row 1 are known, another row It can be used as a basic coordinate for calculating the coordinate of. Column 1 coordinates to other It is used for the calculation of the entire position of the chip, and the calculation of row_col () Including the body. 102a-102b show the overall operation of row_col (). Is. 103a to 103b show that row_col () has an unknown position from the known column 1 coordinate. It is a diagram showing how to calculate the position.   In the following explanation, each function used in row_col () is described, A discussion of how row_col () computes an unknown position from an intelligent coordinate I do. The input to row_col () is a pointer to a working floating point array and a row , Rows, chips And a pointer to a structure holding the bounds of.   FIG. 104 shows the relevant positions and distances to start the chip coordinate calculation process. It is shown. During calibration, the two rack Get the tip position. For the purposes of this description, refer to the first rack, The same process can be described with reference to the second rack. On the first rack Chip 1 and chip 12 have known, measured positions. These positions are It is displayed using polar coordinates and the unit is the number of motor steps. In Figure 104 this The size of these coordinates is illustrated, and the rotation coordinates are illustrated in FIG. 105. To overcome The first calculation problem is about the unknown distance r4, where r4 is Y from the center of the arm post. Measure up to the inner limit of the shaft. This distance is an error that can occur when assembling the arm. It is unknown because of the difference and the characteristics of the Y-axis DC motor. To perform trigonometric calculations Must know the length of the sides of the triangle containing the distance r1. Triangular Both sides must be known because the edge consists of r4 and r1. calc _R4 () is used to calculate r4. overcome before calc_r4 () can be used There are some other complications that should be addressed. The first is with respect to the origin of the Y axis. When the "0" point on the Y axis is reached, the arm is not in the arm post position. Arm is It is at the outer limit of this. In other words, the origin of Y-axis polar coordinates is the position where the origin should be. Does not exist in. To overcome this, use a distance called ymax to find the origin Move so that the Y-axis measurement value becomes 0 at a point near the arm center, Try to maximize at the farthest point. The unload () function uses this method The Y-axis position of is converted to the reference origin. As an example, ymax is a count value of 1. In 0000 steps, the given Y-axis step count value is 5500 steps Suppose The distance from the end of R4 to chip 1 is 10,000-5500 = 450 It is 0 steps. This becomes the value of R1. To calculate R4, refer to FIG. It is necessary to know the value of θ1 as shown in FIG. The angle θ2 is read directly from the system To stick out. The rotation corresponding to the tip 12 is also provided. These two By subtracting the value, θ1 can be determined.   The input to unload () is a pointer to the working floating point array arr [], and new_ A pointer to table [], a pointer to con_table (), and either 1 or 2. Including the rack number of.   In addition to converting the Y-axis position to R1 and R2 and calculating θ1, unload () Responsible for creating a working floating point array specific to the rack involved. In the array , Have the values needed to support future calculations. Those values are in various positions Collected from calculations and stored in one place to make it easy to pass to other functions. Figure 106a-106c illustrate the operations performed within unload ().   Equation 1 is used to calculate the distance R4. For the values of R1, R2 and θ1 in Equation 1, Already explained. R3 is a constant measured from the rack itself. this thing See FIG. 104 for. R1 is the longer of the two sides of R1 and R2 By selecting to be equal to the side of, the sign is (-) in all cases. calc_r4 () is responsible for performing this calculation. Figure 107 illustrates this calculation . The remaining steps to calculate R4 are simple mathematical calculations. This procedure is shown in Figure 108a. ~ Fig. 108b. calc_r4 () is the distance r4 shown in FIG. calculate. Equation 1 is used to calculate r4. Note that θ1 is shown in Fig. 105. It is shown.   By determining the longer side of r2 and r1 by software, the 1st rack And the ± operator can be aggregated to-in the calculation of the 2nd rack. r2 is the ratio of r1 Comparison Must always be the long side of a triangle. Regarding RACK1 and RACK2, The distances R1 and R2 can be matched with the values r1 and r2 of the equation by using FIG. it can. The input to calc_r4 () is saved for RACK1 and RACK2. Pointer to the working floating-point array that holds the variables And a pointer to a structure that holds the rack limit of the current rack.   109a-109b illustrate the operation of init_row (). this function is Call calc_r4 () and use the result to calculate the angle θ shown in Fig. 110.6To calculate. Angle θ6Is required by calc_row (). θ6Is calculated using Equation 2 and is shown in FIG. It is shown. In equation 1, R2 and R3 are known. r4 is calculated using calc_r4 (). Be done. Angle θ1Is calculated before entering init_row (). Result θ6Is that in row 1 It is used by calc_row1 () as the basis for calculating the coordinates of each chip position. ini The input to t_row1 () contains a pointer to the working floating point array.   The final preliminary stage of chip position calculation is executed by calc_row1 (). Repetition Coordinates of each chip in column 1 to minimize diffusion of errors due to calculations Is calculated and used in row_col () to calculate the position of other columns. calc_r ow1 () calculates the chip coordinates of the chips 2 to 12 using the formulas 3 to 6. FIG. 111 illustrates the first rack, which is angled for tip 2 calculation. It is a thing. calc_row1 () calculates the known angle and the triangle side from the previous calculation. Calculate new edges and angles for the chips in column 1 and the triangle consisting of chips 1 using To do. In FIG. 111, the small size consisting of the centers of the chips 1 and 2 and the center of the arm. A large triangle is shown. Equations 3-7 are used to calculate the coordinates of chip 2. To use. All chips in row 1 are the same Calculate using the same method. The main result is the angle θ calculated by init_row1 ().6Is that It is possible to calculate and store these chips. These angles are columns Used as a basis for calculating other coordinates in one or more columns. 112a to 11 2b and FIGS. 113a to 113b show the angle θ.6The steps needed to calculate and store The floor is illustrated. Input to calc_row1 () to a working floating point array , And pointers to structures that hold column, row, and chip limits. FIG. 111 illustrates an embodiment following the step of calculating the chip position.   To calculate the r and y coordinates for each chip in the rack, click the column 1 tip. The basic position is calculated for 12 rows using the position. These coordinates are It is then used by row_col () for each position. calc_row () is column 12 Angle θ for each tip of6And distance r6Is in charge of calculation. One chip See FIG. 111 for an illustration of the distance and angular position of the. r6The distance (Sof Equation 3 is used to calculate org_cc). R1 is known, and r4 and θ6Has been calculated prior to entry. rFivePer row R3 is divided by the total number of chip positions, and multiplied by the chip number -1.   Θ for one chip in any row6(In software6Also called _cc To calculate7Calculate system horizontal position (also called angle_b) Needs to be able to calculate the r coordinate of and to be able to calculate angle_c. It angle_c is based on the sum of all three angles of the triangle being 180 ° Can be calculated. Once the angle_c is known, θ for the chip position6Is Subtract from 180 ° Can be calculated.   The final stage of tip coordinate calculation is to use the result from calc_row1 () to do everything else. Is to calculate the chip position of. row_col () does this in a loop As the calculation progresses from chip 1 in row 2 to chip 12 in row 8, Refer to resources. FIG. 114 shows an example of calculating the coordinates of the chip 23. It Θ stored for chip 116Angle_a is calculated using the value of It is possible to The distance from the origin to the tip 11 is known, and RFiveIs known Therefore, when used with angle_a, the distance from the origin to the tip 23 The separation can be calculated. Subtracting R4, the remaining distance is standardized on the Y-axis It becomes coordinates. Angle_cc1 for chip 11 is known for init_row1 (). Is. Now that all the sides of the triangle are known, we call it one corner, angle_b You can calculate the angle you want. This calculation is performed for all chips To complete.   save_pos () is called as a part of row_col1 () and it is stored in the image table. Save the calculated Y and R chip coordinates. Global total of stored chips Use the number as an index into the image table. Before saving the tip First, its position must be checked against the allowed chip position. rack Not all two chips are supported. Array pos_ok [] is for this purpose Used for. Matching position in pos_ok [], for the tip of rack 2 Must exist, otherwise the chip will not be saved. 115a- FIG. 115b illustrates how save_pos () works.   CAAL is one basic way to move information between memory and disk. Use the technique. There is a common form of structure that allows the description and its actual data . By its description, the contents of the file on disk without reference to other documents You can refer to and edit it. Both data and description are in ASCII format It has been saved in. By specifying the address of the RAM table, the file The name, the number of the record to be processed, and most of the CAAL data are rd_tabl It can be moved using e () and wrt_table (). Figure about this See 116a-116b and 117. Input to rd_table () is A pointer to the destination RAM table and a pointer to the name of the source disk file Data and the number of the record to be read. The record length is 60 characters or less There must be. The input to wrt_table () is the pointer to the source RAM table. Interface, a pointer to the name of the disk file to be written, and write Contains the record number and.   CAAL's ee_to_oldfile () supports command line parameter 10 Used to See FIG. 93 and FIGS. 118a-118b for this. Please refer. The purpose of this is to read the contents of the current system EEPROM 140. Transfer to file al_old. Only the parameters needed for calibration are transferred . These are cis The ctrl_table [] array that holds the instructions used to retrieve data from the system. Controlled by Ray.   CAAL images_to_ee () and newfile_to_ee () are command line It forms part of the support for parameter 11. See FIG. 93 for this. Shi Images_to_ee () after the calculation to calculate all the R, Y, Z coordinates of the stem is completed Use to transfer the data in the file to the system. The uncalculated calibration points are It is in the table al_new []. The function newfile_to_ee () returns the contents of this file Used to transfer to system. Regarding this, FIG. 119a to FIG. 9c, 120a to 120b, 121a to 121b, 122a to 12 See 2c.   CAAL's dfile_to_new () returns the default initial parameters to the file al_new. Used to transfer. The default value is close to the exact value after the calibration is complete. This This will allow you to do something about the specific system / ES300 automated analyzer combination. Close to the final calibrated position before the actual calibration information of the Provide a way to See FIGS. 93 and 123 for this.   CAAL's ofile_to_new () is for the command line parameter 13 Provide support. At the beginning of calibration, the "old" and "new" information is Numbers are made the same. As the calibration progresses, the new information changes. Only However, if the calibration does not change part of the data, it must be saved. I have to. Calibrate only part of the system by starting with old data At the same time, however, the original, unmodified calibration can be retained. this child See FIGS. 93 and 124 for and.   CAAL's old_to_disp () and new_to_disp () are command line parameters. Used to support meters 14 and 15. from ctrl_table [] By using screen coordinates and the video_out_line () function, each table Calibration stored in The data can be displayed on the screen. These functions are based on the ZIM screen So the old and new data actually fit in the ZIM template . See FIG. 93, FIG. 125, and FIG. 126 for this.   The system uses some constants that need to be loaded into EEPROM 140. It CAAL's constants_to_eeprom () function performs this function. This is Support for mandline parameter 16. Figure about this 93 and FIG. 127. The file al_constants describes and sends the data. It contains all system instructions and data for communication in one record. This Method to update table more easily and change more than 1 files New parameters can be supported without need.   The CAAL make_default (), make_constants (), and make_images () functions are , Provides support for command line parameters 50, 51, 52. these Is a utility for programmers and is the first in the file that CAAL reads. Use only for convenience when making a copy. Once the file is available , Can be read and changed as required. This first copy is a file Created to avoid missing errors. C if the CAAL data structure changes Older versions of AAL text files are discarded and use these functions. Should create a new file. Regarding this, FIG. 93 and FIG. 28, FIG. 129, and FIG. 130. CAAL make_default () is The programmer user used to make the first copy of the al_default file. It is a utility. CAAL make_constants () is the first al_caal_parm A programmer utility used to make copies of files. It CAAL make_images () is the first copy of the r, y, z image file. A utility for programmers used to create pee.   CAAL save_old () supports command line parameter 10 . CAAL save_old () writes the information contained in old_table [] to old_file. Put in. See FIGS. 93, 118, and 131 for this.   CAAL's AL_Dispatch () function passes an instruction to the system. AL_Dispatch (  ), The CAAL implementation is structurally the same as the ALER implementation. , AL_Dispatch () operation, please refer to the explanation of ALER it can. With CAAL, the processing format is set to 0, so Similarly, traces have no asterisk. This is between CAAL and ALER This is the only difference in the AL_Dispatch () implementation in the. About this Refer to FIGS. 132, 133, 134a to 134b, and 135 to 137. I want to be In the AL_Dispatch () of CAAL, the part whose format is E type is ES300 Used for communication with automatic analyzers.   The ALSC task is used to pass messages from ZIM to ALPR. It is a temporal task. ALSC is launched from ZIM and has one command line -Parameters are passed. ALSC uses this parameter to determine which message Decide whether to hand over to ALPR. Table 5 shows ZIM to ALPR via ALSC Here is a list of all the messages that are passed. ALSC received a response from ALPR It ends immediately afterwards.   The relationship between rack 1 and rack 2 and other parts of the system and their relationship is shown in FIGS. It can be better understood with reference to 138. 3, 5, and 139, 1 to 10 test tubes each, as best shown in FIG. The test tube rack 300 carrying 304 is placed on the shuttle 302. Chate Motor 195 is activated during the scanning operation to allow test tube rack 300 and test tube 304 Is the front of the slot opening of the barcode reader 151 on the side wall of the shuttle 302 Be carried to the position. The test tube rack 300 moves along the drive chain 316. This is completed by the engagement of the pins 312 of the 15 evenly arranged traction links 314. The test tube rack 300 has a downward facing opening 3 for engagement by the pin 312. 18 is provided. Driven by the gear mechanism from the shuttle during system initialization The rack and test tube position encoder 225 is adjusted to allow the test tube rack 30 0 and each of the test tubes 304-1 to 304-10 attached to each barco 322-R and 322-1 to 322-10 reach the position immediately before the opening 310. Then, the flag 320 is set between the optical switches 223-R and 223-1 to 223-10. Shut off the optical path of. The bar code reader 151 is now connected to the connector 152 and the connector. Test to PC 153 via computer 154 A tube rack 300 and a test tube rack 300 encoded into a bar code of a test tube 304. It will be possible to send the entire patient identifier.   When all this information is input to the PC 153, pipetting can be started. Ah And a pipette movably supported on the arm 20 by a bearing 325. Attach the chuck carriage 324 to one of the rack 1 or rack 2 pipette tips. The R, Z, and Y motors 183, 185, and 187 are driven and operated to the position of the pull-up unit 11. Z The motor 185 is activated and the pipette chuck 326 engages with the pipette tip 11. Lower arm 20 until Micros with pipette chuck 326 Switch (not shown) is pipetted by the arm 20 via the amplifier 90. The stress applied to the chip 11 is detected. O-ring 3 provided on the chuck 326 28 supports the sealing of the pneumatic circuit 14 and at the same time fits the fitting of the pipette tip 11. Facilitates discharge. Operate the Z motor 185 to test tube rack 300 and ES30 0 Lift arm 20 above the height of the work surface of analyzer 155. Syringe Air enters the pump 10. The R and Y motors 183 and 197 are activated to operate the pipette. Move the pipette chuck with the tip 11 onto the test tube 304, Remove the sample for analysis from. The Z motor 185 is activated again, and the chuck 326 And lower the pipette tip 11. At the same time, the syringe pump 10 causes the circuit 14 From the pipette 11 through the pipette tip 11. Of specimen 18 in test tube 304 Transducing the fact that the pressure in the circuit 14 rose slightly when approaching the liquid surface 16 When the sensor 12 detects it, the Z motor 185 is stopped. The remaining air is a syringe It is pushed out from the pump 10. The Z motor 185 is also activated to activate the test tube 304. Distance equal to 200 microliters divided by the cross-sectional area across the axis of the cylinder Only the pipette tip 11 is lowered below the liquid surface 16 of the specimen 18. Syringe port The pump 10 inhales 200 microliters of the specimen 18 into the pipette tip 11. To do. The test you are going to perform on this sample requires a larger amount of sample In some cases, the Z-axis motor is further operated to drive the test tube 304. Insert the pipette tip 11 into the inside at the same distance, and Repeat by aspirating another 200 microliter of sample. Figure of sample amount The pipette tip 11 of the embodiment shown is limited to a capacity of 1000 microliters. Have been. This procedure minimizes wetting of the pipette tip 11 with the specimen 18. Can be suppressed to. After sucking an appropriate amount of sample into the pipette tip 11, the Z-axis motor 1 Operate 85 to pipette tip above working surface and all of test tube 304. Lift up the top 11. Next, the R and Y axis motors 183 and 197 are operated to operate ES. Pipette containing the sample into the sample cup 338 on the rotor 340 of the 300 automatic analyzer. Align.   The Z-axis motor 185 is operated. For the Z-axis motor, pipette tip 11 is It operates until it reaches a height reaching the bottom of the amplifier 338, and the amplifier 90 input terminal Open the black switch. If the microswitch does not open, the system will Do not dispense the sample, assuming that there is no sample. This prevents contamination of the rotor 340 It is supposed to. When the micro switch is opened, the system opens the sample cup 33. The presence of 8 is interpreted as the switch being opened. Z axis motor 185 It should also be activated so that the pipette tip 11 does not hit any of the work surfaces. lift. Operate the R and Z axis motors 183 and 185 to change the used pipette Used pipette tip 11 from chuck 326 to make disposable And the system returns to mount another pipette tip 11.   The test to be performed with the sample cup 338 is 1000 microliters or more, If you need samples up to 2000 microliters, R and Y axis motor 18 Operate 3, 197 to pipette onto test tube 304 that has just taken the sample Return the tip 11 and operate the Z-axis motor 185 to move the pipette tip 11 into the specimen. To lower. Further, as in the previous case, the syringe pump 10 is operated to perform this treatment. The liquid level of the specimen 18 remaining in the test tube 304 after exhausting air from the circuit 14 between I will be able to find 16. When the liquid level 16 is found, the Z-axis motor 185 is activated again. Let me sample 18 Lower the pipette tip 11 by 200 microliters into the sample cup 200 microliters unit to aspirate enough sample to meet the required amount of 338 Aspirate the sample. Next, the Z-axis motor 185 is activated to operate the pipette tip 11 Does not hit the work surface and the test tube 304, and the R and Y axis motors 183, Operate 197 in the same manner as the previous time to place the pipette tip 11 on the sample cup 338. Place. Pipette tip to the height of the sample in the sample cup by operating the Z-axis motor Return 11 This height is stored in the software. Sample cup 3 here Dispense the specimen into 38. The Z-axis motor 185 is activated again, and the pipette tip 1 1 does not collide with the work surface and activates R and Y axis motors 183 and 197. Then, the pipette tip 11 is moved onto the tip discarding section 342. R and Z axes Operate the motors 183 and 185 to move the chuck 326 to the used pipette tip 1 Pull out 1 and restart the system to attach another pipette tip 11. .   How to transmit from the R, Z, Y axis motors 183, 185, 197 to the chuck 326 The method is best understood with reference to highly schematic diagrams 142 and 143. be able to. The R-axis motor 183 is connected to the column 342, which is connected to the column 342. It is adapted to be rotatable about an axis 344 of. Column rotary encoder plate 34 6 is connected to the bottom end of the column and is connected to the inverters 184-11, -13, -1. The signal sent to 4 is representative of the rotation of column 342. Column 34 2 is also slidably mounted for axial movement. Z-axis motor 1 The guide screw 352, which is connected to the lower end of the column 85, is provided in the column 342. Engage with a groove provided in, for example, a cap nut (not shown) in the column 342. To do. The rotation of the guide screw 352 is controlled by the encoder plate 3 connected to the guide screw 352. Detected by 56 and transmitted to the inverters 184-3, 184-15, 184-16 The signal is adapted to represent the amount of protrusion of column 342 along the Z axis.   The Y-axis motor 197 shown is a Portescap US, nc.) Made by MD162R16M18-210-D16-54-XX motor with built-in engine Have a coder. The motor 197 has a toothed drive wheel 366 on the output shaft of the motor 197. Rotatably around the distal end of the arm 20 with a flexible toothed belt 364 wrapped around the Drive the carriage 324 via the attached toothed idler wheel 368 . Belt 364 is cut and the resulting free end is attached to carriage 324. The toothed belt 364 is wrapped around the tensioner 370.

【手続補正書】特許法第184条の8 【提出日】1995年1月9日 【補正内容】 請求の範囲 1. 第1の容器から1つまたはそれ以上の第2の容器へ生物学的液体 の検体を移し換えるための装置を制御する方法であって、第1のアレイの位置群 の第1の位置に前記第1の容器を配置するステップと、第2のアレイの位置群の 1つに前記第2の容器のうちの選択された1つを配置するステップと、第3のア レイの位置群を提供するステップを備え、前記第1のアレイの位置群は相互に空 間的に関連させて前記第1のアレイの位置群を前記第1のアレイの位置から決定 できるようになっており、前記第2のアレイの位置群は相互に空間的に関連させ て前記第2のアレイの前記位置群が前記第2のアレイの位置から決定できるよう になっており、前記第3のアレイの位置群は相互に空間的に関連させて前記第3 のアレイの前記位置群を前記第3のアレイの位置から決定できるようになってお り、さらに、前記第3のアレイの位置群に使い捨ての第3の容器を提供するステ ップと、前記第3の容器の処分を行うことのできる第4の位置を提供するステッ プと、前記第1のアレイと、前記第2のアレイと、前記第3のアレイと、前記第 4の位置との間を往復させるための移送装置を提供するステップと、前記移送装 置を操作して使い捨ての第3の容器が見つかるまで前記第3のアレイの位置群を 調べるステップと、前記使い捨ての第3の容器を前記移送装置に着脱自在に装着 するステップと、前記移送装置を操作して前記第1のアレイの前記第1の位置の 近くに前記使い捨ての第3の容器が来るように位置合わせするステップと、前記 第1のアレイの前記第1の位置で生物学的液体の近接を検出するように前記移送 装置を操作するステップと、前記第1のアレイの前記第1の位置で生物学的液体 の前記近接を検出するステップと、前記第1のアレイの前記第1の位置から前記 使い捨ての第3の容器へ生物学的液体を取り込むステップと、前記選択された第 2の容器の近接を検出するように前記移し換え装置を操作するステップと、前記 選択された第2の容器の近接を検出するステップと、前記生物学的液体を前記選 択された第2の容器内に入れるステップと、前記第4の 位置に前記使い捨ての第3の容器が位置するように前記移送装置を操作するステ ップと、前記使い捨ての第3の容器を処分するステップとを備えている方法。 2. 前記第1のアレイの第2の位置に別の第1の容器を用意するステ ップと、前記第2のアレイの前記第1の位置に次の選択された第2の容器が来る ように位置合わせするステップと、前記移送装置を操作して次の使い捨ての第3 の容器が見つかるまで前記第3のアレイの位置群を調べるステップと、前記移送 装置に前記次の使い捨ての第3の容器を着脱自在に装着するステップと、前記移 送装置を操作して前記第1のアレイの前記第2の位置の近くに前記次の使い捨て の第3の容器が来るように位置合わせするステップと、前記第1のアレイの前記 第2の位置で生物学的液体の近接を検出するように前記移送装置を操作するステ ップと、前記第1のアレイの前記第2の位置で生物学的液体の前記近接を検出す るステップと、前記第1のアレイの前記第2の位置から前記次の使い捨ての第3 の容器内へ生物学的液体を取り込むステップと、前記次の選択された第2の容器 の近接を検出するように前記移送装置を操作するステップと、前記次の選択され た第2の容器の前記近接を検出するステップと、前記次の選択された第2の容器 内に前記生物学的液体を入れるステップと、前記移送装置を操作して前記次の使 い捨ての第3の容器を前記第4の位置に来るように位置合わせするステップと、 前記次の使い捨ての第3の容器を処分するステップとをさらに備えている請求の 範囲第1項に記載の方法。 3. 前記移送装置を操作して次の使い捨ての第3の容器が配置される まで前記第3のアレイの位置群を調べるステップと、前記移送装置に前記次の使 い捨ての第3の容器を着脱自在に装着するステップと、前記移送装置を操作して 前記第1のアレイの前記第1の位置の近くに前記次の使い捨ての第3の容器が来 るように位置合わせするステップと、前記第1のアレイの前記第1の位置で生物 学的液体の近接を検出するように前記移送装置をさらに操作するステップと、前 記第1のアレイの前記第1の位置で生物学的液体の前記近接をさらに検出するス テップと、前記 第1のアレイの前記第1の位置から前記次の使い捨ての第3の容器に生物学的液 体をさらに取り込むステップと、前記選択された第2の容器に前記生物学的液体 をさらに入れるステップと、前記第4の位置に前記次の使い捨ての第3の容器が 位置するように前記移送装置を操作するステップと、前記次の使い捨ての第3の 容器を処分するステップとをさらに備えている請求の範囲第1項に記載の方法。 4. 前記第1のアレイの第2の位置に別の第1の容器を用意するステ ップと、前記第2のアレイの前記第1の位置に次の選択された第2の容器を位置 合わせするステップと、前記移送装置を操作して第3の使い捨ての第3の容器が 配置されるまで前記第3のアレイの位置を調べるステップと、前記移送装置に前 記第3の使い捨ての第3の容器を着脱自在に装着するステップと、前記移送装置 を操作して前記第1のアレイの前記第2の位置の近くに前記第3の使い捨ての第 3の容器が来るように位置合わせするステップと、前記第1のアレイの前記第2 の位置で生物学的液体の近接を検出するように前記移送装置を操作するステップ と、前記第1のアレイの前記第2の位置で生物学的液体の前記近接を検出するス テップと、前記第1のアレイの前記第2の位置から前記第3の使い捨ての第3の 容器に生物学的液体を取り込むステップと、前記次の選択された第2の容器の近 接を検出するように前記移送装置を操作するステップと、前記次の選択された第 2の容器の前記近接を検出するステップと、前記次の選択された第2の容器内に 前記生物学的液体を入れるステップと、前記移送装置を操作して前記第4の位置 に前記第3の使い捨ての第3の容器が来るように位置合わせするステップと、前 記第3の使い捨ての第3の容器を処分するステップとをさらに備えている請求の 範囲第3項に記載の方法。 5. 前記第1のアレイの前記第1の位置で生物学的液体の近接を検出 するように前記移送装置を操作し、前記第1のアレイの前記第1の位置で生物学 的液体の前記近接を検出し、前記第1のアレイの前記第1の位置から前記使い捨 ての第3の容器へ生物学的液体を取り込むステップが、気体及び生物学的液体の 出入りの ため前記使い捨ての第3の容器内の開口部の延長上にある気体回路を選択的に減 圧したりまた加圧することができるポンプを作動させて前記回路から前記開口部 を介して気体を圧送するステップと、前記移送装置を操作して前記第1の位置で 前記液体の前記表面に向かって前記開口部を動かすステップと、前記回路内の圧 力を表わす出力信号を発生することができるトランスデューサの出力信号を監視 するステップと、前記第1の位置の前記液面が前記開口部の近くに接近したこと を表わす第1の閾値に前記トランスデューサの出力信号が達したときに前記第1 の位置で前記液体の前記表面に向かう前記開口部の移動を停止させるステップと 、移し換えようとする液体の第1の量に対応する距離だけ前記第1の位置にある 前記液体の液面より下に前記開口部を沈降させるステップと、前記気体回路を制 御可能な状態で減圧して前記トランスデューサ出力信号を監視しながら前記第1 の量の液体を前記開口部内に吸引するステップとを備えている請求の範囲第1項 に記載の方法。 6. 前記選択された第2の容器内に前記生物学的液体を入れるステッ プは、前記気体回路を制御可能な状態で加圧して前記選択された第2の容器内に 前記第1の量の液体を分注するステップを備えている請求の範囲第5項に記載の 方法。 7. 前記開口部が閉塞されたことを表わす第2の閾値に前記トランス デューサ出力信号が達した場合、前記気体回路の減圧を停止して前記開口部内へ の前記第1の量の吸入を停止させるステップをさらに備えた請求の範囲第5項に 記載の方法。 8. 前記開口部が閉塞されたことを表わす第2の閾値に前記トランス デューサ出力信号が達した場合、前記気体回路の減圧を停止して前記開口部内へ の前記第1の量の吸入を停止させるステップをさらに備えた請求の範囲第6項に 記載の方法。 9. 前記第1のアレイの前記第1の位置で生物学的液体の近接を検出 するように前記移送装置を操作し、前記第1のアレイの前記第1の位置で生物学 的液 体の前記近接を検出し、前記第1のアレイの前記第1の位置から前記使い捨ての 第3の容器に生物学的液体を取り込むステップが、気体及び生物学的液体の出入 りのため前記使い捨ての第3の容器内の開口部の延長上にある気体回路を選択的 に減圧したりまた加圧することのできるポンプを作動させて前記回路から前記開 口部を介して気体を圧送するステップと、前記移送装置を操作して前記第1の位 置で前記液体の前記表面に向かって前記開口部を動かすステップと、前記回路内 の圧力を表わす出力信号を発生することのできるトランスデューサの出力信号を 監視するステップと、前記第1の位置の前記液面が前記開口部の近くに接近した ことを表わす第1の閾値に前記トランスデューサの出力信号が達したときに前記 第1の位置で前記液体の前記表面に向かう前記開口部の移動を停止させるステッ プと、移し換えようとする液体の第1の量に対応する距離だけ前記第1の位置に ある前記液体の液面より下に前記開口部を沈降させるステップと、前記気体回路 を制御可能な状態で減圧して前記トランスデューサ出力信号を監視しながら前記 第1の量の液体を前記開口部内に吸引するステップとを備え、また、さらに前記 第1のアレイの前記第1の位置で生物学的液体の近接を検出するように前記移送 装置を操作し、前記第1のアレイの前記第1の位置で生物学的液体の前記近接を 検出し、前記第1のアレイの前記第1の位置から前記次の使い捨ての第3の容器 に生物学的液体を取り込むステップが、気体及び生物学的液体の出入りのため前 記次の使い捨ての第3の容器内の開口部の延長上にある気体回路を選択的に減圧 したりまた加圧することのできるポンプを作動させて前記回路から前記開口部を 介して前記次の使い捨ての第3の容器内へ気体を圧送するステップと、前記移送 装置を操作して前記第1の位置で前記液体の前記表面に向かって前記次の使い捨 ての第3の容器を動かすステップと、前記トランスデューサの前記出力信号を監 視するステップと、前記第1の位置の前記液面が前記前記次の使い捨ての第3の 容器内で前記開口部の近くに接近したことを表わす第1の閾値に前記トランスデ ューサの出力信号が達したときに前記第1の位置で前記液 体の前記表面に向かう前記次の使い捨ての第3の容器の前記開口部の移動を停止 させるステップと、移し換えようとする液体の第2の量に対応する距離だけ前記 第1の位置にある前記液体の液面より下に前記次の使い捨ての第3の容器の前記 開口部を沈降させるステップと、前記気体回路を制御可能な状態で減圧して前記 トランスデューサ出力信号を監視しながら前記第2の量の液体を前記次の使い捨 ての第3の容器の前記開口部内に吸引するステップとを備えている請求の範囲第 3項に記載の方法。 10. 前記選択された第2の容器内に前記生物学的液体を分注しまた再 分注するステップは、前記気体回路を制御可能な状態で加圧して前記選択された 第2の容器内に前記生物学的液体を入れるステップを備えた請求の範囲第9項に 記載の方法。 11. 前記開口部が閉塞されたことを示す第2の閾値に前記トランスデ ューサ出力信号が達した場合、前記気体回路の減圧を停止させて前記開口部内へ の吸入を停止するステップをさらに備える請求の範囲第10項に記載の方法。 12. 前記第4の位置に前記使い捨ての第3の容器が来るように位置合 わせするために前記移送装置を操作するステップの前に、前記選択された第2の 容器に接近した前記開口部の位置の指標をメモリ内に保存するステップをさらに 備え、前記選択された第2の容器内に前記生物学的液体を再分注するステップは 、前記指標によって定められた位置に前記次の使い捨ての第3の容器の前記開口 部を移動させるステップを備えている請求の範囲第9項に記載の方法。[Procedure Amendment] Patent Act Article 184-8 [Submission date] January 9, 1995 [Correction content]                                 The scope of the claims       1. Biological liquid from a first container to one or more second containers A method of controlling an apparatus for transferring a specimen of Placing the first container in a first position of the second array of positions of the second array. Placing one of the selected ones of the second containers into one, and a third one. Providing a position group of rays, the position groups of the first array being mutually empty. Positions of the first array are determined from the positions of the first array in interrelation The positions of the second array are spatially related to each other. So that the position groups of the second array can be determined from the positions of the second array. And the positions of the third array are spatially related to each other in the third array. Of said array of positions can be determined from the position of said third array. And further providing a disposable third container to the third array of positions. And a step providing a fourth position where the disposal of the third container can be performed. Group, the first array, the second array, the third array, the third array, Providing a transfer device for reciprocating to and from the position 4; Position the third array of positions until the disposable third container is found. Step of examining and detachably mounting the disposable third container to the transfer device And operating the transfer device to move the first position of the first array. Aligning the disposable third container near by; The transfer to detect the proximity of a biological liquid at the first location of the first array. Operating the device and biological fluid at the first position of the first array. Detecting said proximity of said first array from said first position of said first array Incorporating a biological liquid into a third disposable container, said selected first container Operating the transfer device to detect the proximity of two containers; Detecting the proximity of the selected second container, and selecting the biological fluid. Placing in a selected second container; A step for operating the transfer device to position the disposable third container in the position. And disposing of the disposable third container.       2. A step of preparing another first container in the second position of the first array. And the next selected second container at the first position of the second array. And aligning the transfer device to operate the transfer device to the next disposable third Searching the position group of the third array until a container of Detachably attaching the next disposable third container to the device; Operating the delivery device to position the next disposable near the second position of the first array. Aligning so that a third container of the first array comes in; A step for operating the transfer device to detect the proximity of the biological fluid at the second position. And detecting the proximity of biological fluid at the second position of the first array. And a second disposable third from the second position of the first array. A biological fluid into the container of the container, and the next selected second container Operating the transfer device to detect the proximity of the Detecting said proximity of said second container, and said next selected second container Placing the biological liquid therein and operating the transfer device to perform the next operation. Aligning the discarded third container to be in the fourth position; Disposing of the next disposable third container. The method according to claim 1.       3. The transfer device is operated to place the next disposable third container. Up to the position group of the third array up to and including the next use of the transfer device. Removably mounting the discarded third container and operating the transfer device The next disposable third container is located near the first position of the first array. Aligning the organisms at the first position of the first array Further operating the transfer device to detect the proximity of the biological liquid. A probe for further detecting the proximity of biological fluid at the first location of the first array. And the above Biological fluid from the first position of the first array to the next disposable third container Further incorporating a body, the biological liquid in the selected second container And further inserting the next disposable third container in the fourth position. Operating the transfer device to be in a position, and the next disposable third The method of claim 1, further comprising the step of disposing of the container.       4. A step of preparing another first container in the second position of the first array. And position the next selected second container in the first position of the second array. And a step of operating the transfer device to set a third disposable third container Interrogating the position of the third array until it is placed; A step of detachably mounting a third disposable third container, and the transfer device. To manipulate the third disposable first near the second position of the first array. Aligning three containers so that the second array of the first array is aligned. Operating the transfer device to detect proximity of biological fluid at And a probe for detecting the proximity of the biological fluid at the second position of the first array. And a third disposable third from the second position of the first array. Incorporating a biological liquid into the container and bringing the next selected second container into proximity. Operating the transfer device to detect contact, and selecting the next selected first Detecting the proximity of two containers, and in the next selected second container. Depositing the biological liquid and operating the transfer device to the fourth position. Aligning so that the third disposable third container is in The step of disposing of the third disposable third container. The method according to claim 3.       5. Detecting proximity of biological fluid at the first location of the first array Operating the transfer device to move the biological material at the first position of the first array. Detecting the proximity of the target liquid and disposing of the disposable liquid from the first position of the first array. The step of incorporating the biological liquid into the third container of the In and out Therefore, the gas circuit on the extension of the opening in the disposable third container is selectively reduced. The opening from the circuit by actuating a pump capable of pressurizing and / or pressurizing Pumping gas through the device and operating the transfer device to move the gas in the first position. Moving the opening toward the surface of the liquid, the pressure in the circuit Monitor the output signal of a transducer capable of producing an output signal representative of force And the liquid level at the first position is close to the opening. When the output signal of the transducer reaches a first threshold value Stopping the movement of the opening towards the surface of the liquid at , At the first position by a distance corresponding to a first amount of liquid to be transferred Controlling the gas circuit to settle the opening below the liquid surface of the liquid; The first pressure while monitoring the transducer output signal by reducing the pressure in a controllable state. Suctioning an amount of liquid into the opening. The method described in.       6. A step of placing the biological fluid in the selected second container. Controllably pressurizes the gas circuit into the selected second container. 6. The method of claim 5, comprising dispensing the first volume of liquid. Method.       7. The transformer is set to a second threshold value indicating that the opening is closed. When the deducer output signal arrives, stop depressurizing the gas circuit and into the opening. 6. The method according to claim 5, further comprising the step of stopping the inhalation of the first amount of The method described.       8. The transformer is set to a second threshold value indicating that the opening is closed. When the deducer output signal arrives, stop depressurizing the gas circuit and into the opening. 7. The method according to claim 6, further comprising the step of stopping the inhalation of the first amount of The method described.       9. Detecting proximity of biological fluid at the first location of the first array Operating the transfer device to move the biological material at the first position of the first array. Target liquid Detecting the proximity of the body and removing the disposable from the first position of the first array. Incorporating the biological liquid into the third container includes ingress and egress of gas and biological liquid. Selectively select a gas circuit on the extension of the opening in the disposable third container for Open the circuit from the circuit by activating a pump that can reduce or increase the pressure. Pumping gas through the mouth and operating the transfer device to move the first position Moving the opening towards the surface of the liquid at The output signal of a transducer capable of producing an output signal representative of the pressure of The step of monitoring and the liquid level at the first position approached near the opening. When the output signal of the transducer reaches a first threshold value A step that stops the movement of the opening towards the surface of the liquid at the first position. And a distance corresponding to the first amount of liquid to be transferred to the first position. Settling the opening below a liquid level of the liquid, the gas circuit Controllably decompressing while monitoring the transducer output signal Sucking a first volume of liquid into the opening, and further comprising: The transfer to detect the proximity of a biological liquid at the first location of the first array. Operating the device to bring the biological fluid into proximity with the first position of the first array. Detecting, from the first position of the first array to the next disposable third container Prior to the step of introducing biological liquid into and out of gas and biological liquid Selective depressurization of the gas circuit on the extension of the opening in the following disposable third container And opening the opening from the circuit by activating a pump that can Pumping gas through the next disposable third container via the transfer Operate the device to move the next disposable material toward the surface of the liquid at the first position. Moving all third vessels and monitoring the output signal of the transducer. The step of viewing, and the liquid level in the first position is the next disposable third The trans-demeter is set to a first threshold that indicates the proximity of the opening in the container. When the output signal of the user reaches the liquid at the first position Stop movement of the opening of the next disposable third container towards the surface of the body And a distance corresponding to the second amount of liquid to be transferred. Below the liquid level of the liquid in the first position, the next disposable third container Settling the opening, and depressurizing the gas circuit in a controllable state While monitoring the transducer output signal, the second volume of liquid is then discarded. Suctioning into the opening of all the third containers. The method according to item 3.       10. Dispense and re-distribute the biological liquid in the selected second container. The step of dispensing is selected by pressurizing the gas circuit in a controllable manner. The method of claim 9 including the step of placing the biological liquid in a second container. The method described.       11. The transformer threshold is set to a second threshold value indicating that the opening has been closed. When the output signal of the user is reached, the decompression of the gas circuit is stopped 11. The method of claim 10, further comprising the step of stopping the inhalation of.       12. Aligned so that the disposable third container is in the fourth position. Prior to the step of operating the transfer device to force the selected second A step of storing in memory an indication of the position of said opening in proximity to the container And re-dispensing the biological liquid in the selected second container, , The opening of the next disposable third container at a position defined by the indicator 10. The method according to claim 9, comprising the step of moving the part.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 クーパー,ラッセル,エー. アメリカ合衆国・アリゾナ州 85022・フ ェニックス・イースト コーラル ゲーブ ルズ ドライブ 1033 (72)発明者 ジョンソン,スコット,アール. アメリカ合衆国・アリゾナ州 85021・フ ェニックス・ウエスト ケーラー ドライ ブ 919 (72)発明者 カイザー,デイル,エー. アメリカ合衆国・アリゾナ州 85283・タ ンパ・イースト ボーン ストリート 2137─────────────────────────────────────────────────── ─── Continued front page    (72) Inventor Cooper, Russell, A.             85022, Arizona, United States             Phoenix East Coral Gave             Ruze Drive 1033 (72) Inventor Johnson, Scott, Earl.             85021, Arizona, United States             Enix West Koehler Dry             Bou 919 (72) Inventor Kaiser, Dale, A.             85283, Arizona, USA             Npa East Bourne Street             2137

Claims (1)

【特許請求の範囲】 1. 第1の容器から第2の容器へ液体を移し換えるための方法であっ て、前記方法は、気体及び移し換えようとする液体の出入りのための開口部を有 する気体回路を選択的に減圧したり加圧したりできるポンプを作動させて前記開 口部を通して前記気体回路から気体を圧出するステップと、前記開口部を前記第 1の容器内の前記移し換えようとする液体の表面に向かって移動させるステップ と、前記回路内の圧力を表わす出力信号を発生することのできるトランスデュー サの出力信号を監視するステップと、前記第1の容器内の前記液体表面が前記開 口部の近くに接近したことを表わす第1の閾値に前記トランスデューサの出力信 号が達したときに、前記第1の容器内の前記液体の表面に向かう前記開口部の移 動を停止させるステップと、前記移し換えようとする液体の第1の量に対応する 距離だけ前記第1の容器内の前記液体の液面より下に前記開口部を沈降させるス テップと、前記気体回路を制御可能な状態で減圧して前記トランスデューサの出 力信号を監視しながら前記液体の第1の量を前記開口部内に吸引するステップと 、前記開口部を前記第2の容器の近くに移動させるステップと、前記気体回路を 制御可能な状態で加圧して前記第2の容器内に前記液体の第1の量を分注するス テップとを備えた方法。 2. 前記トランスデューサ出力信号が、前記開口部が閉塞されたこと を表わす第2の閾値に達した場合、前記気体回路の排気を停止して前記開口部内 への前記第1の量の吸入を停止するステップをさらに備えている請求の範囲第1 項に記載の方法。 3. 前記気体回路を加圧して前記第2の容器内に前記第1の量の液体 を分注した後、前記開口部を前記第1の容器の近くに戻すステップと、前記第1 の容器内の前記液体の前記表面に向かって前記開口部を移動しながら前記トラン スデューサの前記出力信号を監視するステップと、前記トランスデューサの出力 信号が前記第1の閾値に達した時に前記第1の容器内の前記液体の前記表面に向 かう前記開口 部の移動を停止させるステップと、移し換えようとする第2の量の液体に対応す る距離だけ前記第1の容器内の前記液体の液面より下に前記開口部を沈降させる ステップと、前記気体回路を制御可能な状態で減圧して前記トランスデューサ出 力信号を監視しながら前記第2の量の液体を前記開口部内に吸引するステップと 、前記第2の容器の近くに前記開口部を移動するステップと、前記気体回路を制 御可能な状態で加圧して前記第2の容器内に前記第2の量の液体を分注するステ ップとをさらに備えている請求の範囲第1項に記載の方法。 4. 前記第1の容器の近くへ前記開口部を戻すステップの前に、前記 第2の容器に接近した前記開口部の位置の指標をメモリ内に保存するステップを さらに有し、前記第2の容器の近くへ前記開口部を戻すステップは前記指標によ って定められた位置へ前記開口部を移動させるステップを備えている請求の範囲 第3項に記載の方法。[Claims]       1. A method for transferring liquid from a first container to a second container. Thus, the method has openings for the entry and exit of gas and the liquid to be transferred. Open the gas circuit by operating a pump that can selectively depressurize or pressurize the gas circuit. Pressurizing gas from the gas circuit through a mouth, and opening the opening with the first Moving towards the surface of the liquid to be transferred in one container And a transducer capable of producing an output signal representative of the pressure in said circuit. Monitoring the output signal of the sensor, and the liquid surface in the first container is opened. The output signal of the transducer is set to a first threshold value indicating the proximity to the mouth. Transfer of the opening towards the surface of the liquid in the first container when Corresponding to the step of stopping the movement and the first amount of liquid to be transferred A space for allowing the opening to settle below the liquid level of the liquid in the first container by a distance. And the gas circuit under controllable decompression to reduce the output of the transducer. Aspirating a first amount of the liquid into the opening while monitoring the force signal; , Moving the opening closer to the second container; A controllable pressurizer to dispense a first volume of the liquid into the second container. Method with steps.       2. The transducer output signal indicates that the opening has been closed. When the second threshold value is reached, the exhaust of the gas circuit is stopped and the inside of the opening is stopped. Claim 1 further comprising the step of stopping the inhalation of said first amount to the The method described in the section.       3. Pressurizing the gas circuit to cause the first amount of liquid in the second container. And then returning the opening to the vicinity of the first container; Moving the opening towards the surface of the liquid in the container of Monitoring the output signal of the transducer and the output of the transducer When the signal reaches the first threshold, it is directed toward the surface of the liquid in the first container. The opening Corresponding to the step of stopping the movement of the parts and the second amount of liquid to be transferred. Settling the opening below the liquid level of the liquid in the first container Step, depressurize the gas circuit in a controllable state and output the transducer. Aspirating the second amount of liquid into the opening while monitoring the force signal; Moving the opening near the second container, and controlling the gas circuit. In a controllable state by applying pressure to dispense the second amount of liquid into the second container. The method of claim 1, further comprising:       4. Prior to the step of returning the opening near the first container, Storing in memory an indication of the position of the opening in proximity to the second container. Further comprising the step of returning the opening near the second container by means of the indicator. A step of moving the opening to a position defined by The method according to item 3.
JP7503013A 1993-06-21 1994-06-20 Front-end device and method Pending JPH08511871A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8061393A 1993-06-21 1993-06-21
US08/080,613 1993-06-21
PCT/US1994/006940 WO1995000829A1 (en) 1993-06-21 1994-06-20 Front end apparatus and method

Publications (1)

Publication Number Publication Date
JPH08511871A true JPH08511871A (en) 1996-12-10

Family

ID=22158489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7503013A Pending JPH08511871A (en) 1993-06-21 1994-06-20 Front-end device and method

Country Status (4)

Country Link
EP (1) EP0705424A4 (en)
JP (1) JPH08511871A (en)
CA (1) CA2153415A1 (en)
WO (1) WO1995000829A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009244177A (en) * 2008-03-31 2009-10-22 Sysmex Corp Analyzer, analysis method, and computer program

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158269A (en) * 1995-07-13 2000-12-12 Bayer Corporation Method and apparatus for aspirating and dispensing sample fluids
US5750881A (en) * 1995-07-13 1998-05-12 Chiron Diagnostics Corporation Method and apparatus for aspirating and dispensing sample fluids
US5665601A (en) * 1996-01-22 1997-09-09 Johnson & Johnson Clinical Diagnostics, Inc. Avoiding bubble formation while sensing air-liquid interface using pressurized air flow
US5853665A (en) * 1997-09-16 1998-12-29 Coulter International Corp. Apparatus and method for monitoring vent line vacuum
EP0990908A1 (en) 1998-09-30 2000-04-05 F. Hoffmann-La Roche Ag Automated analyser with means for monitoring pipetting procedures
EP0990909A1 (en) * 1998-09-30 2000-04-05 F. Hoffmann-La Roche Ag Automated analyser with means for monitoring pipetting procedures
US20130045498A1 (en) 2010-03-01 2013-02-21 Novozymes A/S Viscosity pressure assay

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3650306A (en) * 1970-09-18 1972-03-21 Cooke Eng Co Laboratory dispensing apparatus
US3759667A (en) * 1971-10-22 1973-09-18 Damon Corp Apparatus for aspirating precise volumes of fluid sample
GB1562686A (en) * 1975-10-15 1980-03-12 St Thomas Hosp Med School Apparatus for taking blood samples from a living patient
DE2719234C2 (en) * 1977-04-29 1985-03-28 Hans A. Dipl.-Chem. Dr. 8000 München Thoma Multi-channel system for handling immobilized, biologically active substances
US4461328A (en) * 1982-06-04 1984-07-24 Drummond Scientific Company Pipette device
US4478094A (en) * 1983-01-21 1984-10-23 Cetus Corporation Liquid sample handling system
US4794085A (en) * 1984-07-19 1988-12-27 Eastman Kodak Company Apparatus and method for detecting liquid penetration by a container used for aspirating and dispensing the liquid
FI862843A (en) * 1985-07-05 1987-01-06 Cetus Corp AUTOMATISK ANORDNING FOER BEHANDLING AV VAETSKA OCH FOERFARANDE FOER ANALYZING OCH BEHANDLING AV ETT FLYTANDE PROV.
CA1321940C (en) * 1987-05-02 1993-09-07 Teruaki Itoh Apparatus for distributing sample liquid
EP0311440B1 (en) * 1987-10-09 1992-06-24 Seiko Instruments Inc. Apparatus for carrying out a liquid reaction
EP0341438A3 (en) * 1988-05-13 1990-11-28 Abbott Laboratories Pneumatic sensing system
US5132088A (en) * 1988-11-17 1992-07-21 Kabushiki Kaisha Nittec Automatic medical sampling device
JPH03226403A (en) * 1989-07-24 1991-10-07 Japan Tobacco Inc Method and apparatus for filling liquid
US5226462A (en) * 1991-07-26 1993-07-13 Carl Richard A Introducing measured amounts of liquid into receptacles
GB9217616D0 (en) * 1992-08-19 1992-09-30 British Nuclear Fuels Plc Dispensing apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009244177A (en) * 2008-03-31 2009-10-22 Sysmex Corp Analyzer, analysis method, and computer program

Also Published As

Publication number Publication date
EP0705424A4 (en) 1996-12-04
WO1995000829A1 (en) 1995-01-05
EP0705424A1 (en) 1996-04-10
CA2153415A1 (en) 1995-01-05

Similar Documents

Publication Publication Date Title
JP4980671B2 (en) Blood sample analyzer
US5631844A (en) Interactive remote sample analysis system
JP4876010B2 (en) Sample analyzer and reagent aspiration method
US9297818B2 (en) Sample analyzer
US6192320B1 (en) Interactive remote sample analysis system
EP1873531B1 (en) Sample analyzer
US6055487A (en) Interactive remote sample analysis system
JP5089307B2 (en) Sample analyzer
US8535607B2 (en) Sample analyzer
CN101526542B (en) Sample analyzer and control system
US20050196867A1 (en) Failure detection in automated clinical analyzers
EP0219805A2 (en) Computer directed liquid handling and reaction characterization system
US8425839B2 (en) Sample analyzer
EP3267203A1 (en) Sample analyzer
US20080063570A1 (en) Sample analyzer
US9201083B2 (en) Sample analyzer and reagent management method
CN101275961A (en) Sample analyzer
US8209196B2 (en) Specimen testing apparatus, test information management apparatus, and test information output method
JP4825548B2 (en) Sample analyzer
JP2008051542A (en) Analyzer
JP2007212303A (en) Sample measuring instrument
JPH08511871A (en) Front-end device and method
JP2009074901A (en) Specimen analyzer
WO2020259466A1 (en) Personalized method and device for quality control in clinical laboratory
JP2004340969A (en) Analyzer equipped with concentric rotor