(57)【要約】  システム全体としてリソースを有効活用し、開発から生産終了までの製品コストを削減できるリアルタイム制御システムを提供することにある。【課題】【解決手段】  ホストコンピュータ１０と、フィールドデバイスＤＳの制御を行う複数のデバイスコントローラが接続され、フィールドデバイスＤＳをリアルタイムで制御する。ホストコンピュータ１０は、デバイスコントローラ１００への制御内容を、一定時間で処理可能なファンクションに分割して転送し、デバイスコントローラ１００は、ホストコンピュータ１０から転送されたファンクションに基づいて、フィールドデバイスＤＳをリアルタイムで制御する。デバイスコントローラ１００は、それぞれ、共通な部品で構成される標準部１１０と、接続されるフィールドデバイスによって異なる構成を持つ拡張部１５０とから分割して構成され、標準部１１０と拡張部１５０とは、コネクタＣ１０，Ｃ２０を介してバス接続される。【選択図】  図１
2005293333.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと、このホストコンピュータに接続され、フィールドデバイスの制御を行う複数のデバイスコントローラとからなり、前記フィールドデバイスをリアルタイムで制御するリアルタイム制御システムにおいて、
前記ホストコンピュータは、前記デバイスコントローラへの制御内容を、一定時間で処理可能なファンクションに分割して転送し、
前記デバイスコントローラは、前記ホストコンピュータから転送されたファンクションに基づいて、前記フィールドデバイスをリアルタイムで制御することを特徴とするリアルタイム制御システム。
【請求項２】
請求項１記載のリアルタイム制御システムにおいて、
前記デバイスコントローラは、それぞれ、共通な部品で構成される標準部と、接続されるフィールドデバイスによって異なる構成を持つ拡張部とから分割して構成され、前記標準部と前記拡張部とは、コネクタを介してバス接続されることを特徴とするリアルタイム制御システム。
【請求項３】
請求項２記載のリアルタイム制御システムにおいて、
前記デバイスコントローラは、前記拡張部で保持している識別子を読み出し、前記ホストコンピュータに伝送し、
前記ホストコンピュータは、前記デバイスコントローラから転送された識別子に基づいて、複数の前記デバイスコントローラを識別することを特徴とするリアルタイム制御システム。
【請求項４】
請求項１記載のリアルタイム制御システムにおいて、
前記デバイスコントローラは、前記ホストコンピュータから転送されたファンクションを格納する揮発性メモリを備えたことを特徴とするリアルタイム制御システム。
【請求項５】
請求項１記載のリアルタイム制御システムにおいて、
前記ホストコンピュータは、前記デバイスコントローラに対し、前記ファンクションを一定周期で送付することを特徴とするリアルタイム制御システム。
【請求項６】
請求項５記載のリアルタイム制御システムにおいて、
前記ホストコンピュータは、ＵＳＢ(Universal Serial Bus)を用いて、前記デバイスコントローラに前記ファンクションを転送することを特徴とするリアルタイム制御システム。
【請求項７】
請求項１記載のリアルタイム制御システムにおいて、
前記デバイスコントローラは、前記ファンクションを実行した結果を、返値として前記ホストコンピュータに送信することを特徴とするリアルタイム制御システム。
【請求項８】
請求項１記載のリアルタイム制御システムにおいて、
前記ホストコンピュータ及び複数の前記デバイスコントローラは、ツリー型にネットワークにより接続されたことを特徴とするリアルタイム制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータにより、複数のフィールドデバイスの制御を行う複数のデバイスコントローラをリアルタイムで制御するリアルタイム制御システムに係り、特に、部品改廃や装置構成の変更などにより、制御コントローラや、Ｉ／Ｏなどのデバイスを、頻繁に変更する必要のあるシステムに用いるに好適なリアルタイム制御システムに関する。
【背景技術】
【０００２】
医療の分野で使われている自動分析装置や、成分分析や質量分析などの理化学機器などの装置においては、ユーザインタフェイスとなるパーソナルコンピュータ（ホストコンピュータ）と、フィールドデバイスの制御を行う制御コントローラとＩ／Ｏを制御するＩ／Ｏボードとからなるデバイスコントローラとによって、制御システムを構成する方法がよく用いられている。これは、パーソナルコンピュータでコマンドの発行や測定データの表示を行い、制御コントローラによりユーザの入力したコマンドを解してリアルタイム制御を行い、Ｉ／Ｏボードによりモータ，バルブ，センサなどのフィールドデバイスを制御するものである。
【０００３】
ここで、制御コントローラとＩ／Ｏボードは同一のラックに格納され、バスによって互いにデータのやり取りができるよう接続されている。このバスとしては、たとえばＶＭＥ(ＩＥＥＥ１０１４標準の非同期バス)やコンパクトＰＣＩバスなどが用いられ、ラック内に基板が複数挿入できるように配置された接続スロットを介して、制御コントローラと複数のＩ／Ｏボードをバス接続する形態の制御システムが広く用いられている。
【０００４】
このような制御システムは、例えば、特開２００３−２２９７６０号公報等に、大規模装置に適用した場合のシステム概略が記載されている。
【０００５】
装置の制御においては、モータ，バルブ，センサといったフィールドデバイスをシステム設計時に作成したタイムチャートに従って手順どおりに動作させていく必要がある。これは、デバイスを動作する順序が異なってしまったり、必要な時間までにデバイスを動作できなければ、機構系が期待通りの動作をとらなかったり、測定性能が未達となる。よって、制御システムにおいては、上述のタイムチャートを実現できるよう、ある決まった最小時間間隔ごとに処理を実行するリアルタイム性が要求される。
【０００６】
【特許文献１】特開２００３−２２９７６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
近年、パーソナルコンピュータの高速化／低価格化は年々劇的に進行しており、以前に比べて高速なＣＰＵ，容量の大きいメモリやハードディスクを搭載したモデルが安価に入手することができる。また、ＯＳについても、ＲＴ−Ｌｉｎｕｘなど、以前はパーソナルコンピュータでは不得手とされてきたリアルタイム性に特化したものが開発されてきている。同様に制御に用いるマイクロプロセッサにおいても動作クロックの高速化が顕著に進行している。また、ＰＣＭＣＩＡやＣＦカードなど、記憶媒体とのインタフェイスやＵＳＢ／ＬＡＮといった通信インタフェイスなどの付帯機能が充実してきている。
【０００８】
一方、装置においては競合製品との競争力を強化するためにも、製品出荷までの開発費，生産コスト，メインテナンスやバージョンアップなどの出荷後のサポート費の削減が強く望まれている。これに対して従来技術によるリアルタイム制御システムのアーキテクチャを今後とも踏襲し続けてゆくとすると、以下の３点の問題が発生する。
【０００９】
第１は、マイクロプロセッサの付帯機能の充実化によりデバイスコントローラに機能が集中し、上位のパーソナルコンピュータにおいてはある程度までのリアルタイム性を許容するにもかかわらず、あまり使用されず機能分担のバランスの悪いシステムとなってしまうことである。すなわち、デバイスコントローラとパーソナルコンピュータにおいてリソースが重複するため、コスト高となる。
【００１０】
第２は、デバイスコントローラにおいては制御プログラムはオンボードのフラッシュメモリなどを利用し格納するのが一般的である。これに対してパーソナルコンピュータにおいても、ハードディスクやメモリカード、光学式ドライブなどを不揮発性のデータ保存手段をもっている。すなわちここにおいてもリソースの重複が発生している。また、フラッシュメモリの書き込みにおいては、書き込み用のパーソナルコンピュータから書きこみデータをダウンロードしてフラッシュメモリに書き込みを行う方法や、ロムライターを使用して書き込み用のパソコンからフラッシュメモリに書き込みを行う方法などが一般的である。このような書きこみ作業は非効率的であり、分散制御システムなど複数のデバイスコントローラを用いる場合は多数の不揮発性メモリに書き込みを行わなくてはならないため、特に、生産コスト高となる。
【００１１】
第３は、部品改廃の問題である。デバイスコントローラに使用される電子部品のうち、特にメモリは改廃のサイクルが短い。この理由は、揮発性メモリ／不揮発性メモリともにアプリケーションやユーザの要求する容量は年々増加の一途をたどっており、半導体メーカとしてもこの需要に応えるために日々、メモリの高速化大容量化に注力しているためである。一方、Ｉ／Ｏボードは改廃のサイクルが長いものである。デバイスコントローラとしては、この改廃の影響をできるだけ小さくしなくては、開発から生産終了までの製品ライフサイクルにおけるコスト増大となる。
【００１２】
本発明の目的は、システム全体としてリソースを有効活用し、開発から生産終了までの製品コストを削減できるリアルタイム制御システムを提供することにある。
【課題を解決するための手段】
【００１３】
（１）上記目的を達成するために、本発明は、ホストコンピュータと、このホストコンピュータに接続され、フィールドデバイスの制御を行う複数のデバイスコントローラとからなり、前記フィールドデバイスをリアルタイムで制御するリアルタイム制御システムにおいて、前記ホストコンピュータは、前記デバイスコントローラへの制御内容を、一定時間で処理可能なファンクションに分割して転送し、前記デバイスコントローラは、前記ホストコンピュータから転送されたファンクションに基づいて、前記フィールドデバイスをリアルタイムで制御するようにしたものである。  
かかる構成により、システム全体としてリソースを有効活用し、開発から生産終了までの製品コストを削減し得るものとなる。
【００１４】
（２）上記（１）において、好ましくは、前記デバイスコントローラは、それぞれ、共通な部品で構成される標準部と、接続されるフィールドデバイスによって異なる構成を持つ拡張部とから分割して構成され、前記標準部と前記拡張部とは、コネクタを介してバス接続されるものである。
【００１５】
（３）上記（２）において、好ましくは、前記デバイスコントローラは、前記拡張部で保持している識別子を読み出し、前記ホストコンピュータに伝送し、前記ホストコンピュータは、前記デバイスコントローラから転送された識別子に基づいて、複数の前記デバイスコントローラを識別するようにしたものである。
【００１６】
（４）上記（１）において、好ましくは、前記デバイスコントローラは、前記ホストコンピュータから転送されたファンクションを格納する揮発性メモリを備えるようにしたものである。
【００１７】
（５）上記（１）において、好ましくは、前記ホストコンピュータは、前記デバイスコントローラに対し、前記ファンクションを一定周期で送付するようにしたものである。
【００１８】
（６）上記（５）において、好ましくは、前記ホストコンピュータは、ＵＳＢ(Universal Serial Bus)を用いて、前記デバイスコントローラに前記ファンクションを転送するようにしたものである。
【００１９】
（７）上記（１）において、好ましくは、前記デバイスコントローラは、前記ファンクションを実行した結果を、返値として前記ホストコンピュータに送信するようにしたものである。
【００２０】
（８）上記（１）において、好ましくは、前記ホストコンピュータ及び複数の前記デバイスコントローラは、ツリー型にネットワークにより接続されたものである。
【発明の効果】
【００２１】
本発明によれば、システム全体としてリソースを有効活用し、開発から生産終了までの製品コストを削減できる。
【発明を実施するための最良の形態】
【００２２】
以下、図１〜図９を用いて、本発明の一実施形態によるリアルタイム制御システムの構成について説明する。  
最初に、図１を用いて、本実施形態によるリアルタイム制御システムを適用した理化学装置の全体構成について説明する。  
図１は、本発明の一実施形態によるリアルタイム制御システムを適用した理化学装置の全体構成を示す概略斜視図である。
【００２３】
理化学装置とは、医療の分野で使われている自動分析装置や、成分分析や質量分析などの理化学機器などの装置である。装置内には多数のＩ／Ｏを有し、計測，分析などの処理を行うための搬送制御や、センサやアクチュエータの制御が行われている。
【００２４】
ホストコンピュータ１０は、例えば、パーソナルコンピュータを使用している。理化学装置の操作者は、装置２０Ａ，２０Ｂに対する計測，分析などの処理開始を指示する。理化学装置が、例えば、高速液体クロマトグラフ装置の場合、装置４００Ａはポンプやオートサンプラーであり、装置４００Ｂはカラムオーブンや検出器である。なお、ポンプ，オートサンプラー，カラムオーブン，検出器を、それぞれ独立した装置として構成することもできる。
【００２５】
ホストコンピュータ１０と装置２０Ａ，２０Ｂは、ＵＳＢ伝送線３０Ｃによって接続されている。装置２０Ａ，２０Ｂ側のインタフェイスとしては、ＵＳＢハブ３０Ｈを用いている。ＵＳＢ伝送線３０Ｃは、ＵＳＢハブ３０Ｈによって分配され、ホストコンピュータ１０は、装置２０Ａ，２０Ｂのデバイスコントローラ１００Ａ，１００Ｂに接続される。
【００２６】
デバイスコントローラ１００Ａ，１００Ｂは、それぞれ、標準部１１０Ａ，１１０Ｂと、拡張部１５０Ａ，１５０Ｂとから構成される。デバイスコントローラ１００Ａ，１００Ｂの詳細については、図４を用いて後述するが、標準部１１０Ａ，１１０Ｂは、マイコンやメモリからなり、上述の制御コントローラの機能を有し、拡張部１５０Ａ，１５０Ｂは、モータ，バルブ，センサなどのフィールドデバイスを制御する上述のＩ／Ｏボードの機能を有する。ホストコンピュータ１０に接続されたＵＳＢ伝送線３０Ｃは、ＵＳＢハブ３０Ｈによって分配され、デバイスコントローラ１００Ａ，１００Ｂの標準部１１０Ａ，１１０Ｂに接続される。デバイスコントローラ標準部１１０Ａ，１１０Ｂは、コネクタを介して、拡張部１５０Ａ，１５０Ｂと接続され、拡張部１５０Ａ，１５０Ｂに内蔵されるＤＩ／ＤＯやモータドライバを介してモータやセンサなど複数のフィールドデバイスＤＡ１，ＤＡ２，ＤＡ３，ＤＢ１，ＤＢ２を制御する。
【００２７】
拡張部１５０Ａ，１５０Ｂに内蔵されている機能としては、フォトトランジスタや赤外線センサなど、出力値として１または０を取るものを接続するためのＤＩや、スイッチなど１または０の入力を必要とするデバイスを接続するためのＤＯなどが挙げられる。また、バルブや流量計などある程度の段階的な設定の必要なもので、インタフェイスとしてＬＯＮやＤｅｖｉｃｅＮｅｔ、Ｉ２Ｃ等を持つフィールドデバイスを接続するためのフィールドネットワークインタフェイス、モータやアクチュエータといった、動作にある程度の電力が必要なものを接続するためのドライバなどを実装する場合もある。このように、拡張部１５０Ａ，１５０Ｂは、装置２０Ａ，２０Ｂに実装される位置や機能に従って異なる基板とすることができる。
【００２８】
一方、標準部１１０Ａ，１１０Ｂは、マイコンやメモリからなり、標準部１１０Ａと標準部１１０Ｂは、共通のハード構成となっている。そして、メモリ等が改廃された場合には、標準部１１０Ａ，１１０Ｂのみを新たな基板として、拡張部１５０Ａ，１５０Ｂについては、以前からの基板をそのまま使用することができる。標準部１１０Ａと、標準部１１０Ｂとは、異なる制御内容となると、その制御内容については、ホストコンピュータ１０から制御プログラムとしてそれぞれ個別にダウンロードすることにより、個別の制御内容を実行できる構成となっている。その詳細については、図８及び図９を用いて後述する。
【００２９】
ここで、図２を用いて、本実施形態によるリアルタイム制御システムに用いるＵＳＢ伝送路３０Ｃのバストポロジーについて説明する。  
図２（Ａ），（Ｂ）は、本発明の一実施形態によるリアルタイム制御システムに用いるＵＳＢ伝送路３０Ｃのバストポロジーの説明図である。
【００３０】
本実施形態では、ホストコンピュータ１０と装置２０Ａ，２０Ｂ内の通信手段として、ＵＳＢ伝送路３０Ｃを使用しており、ここでＵＳＢについて説明する。ＵＳＢは、マウスやキーボード，外付けハードディスクや光学式ドライブ，あるいはプリンタやスキャナといった周辺機器とパーソナルコンピュータを接続するための汎用シリアルバスインタフェイスであり、業界標準として多くのパーソナルコンピュータにあらかじめ装備されている。
【００３１】
ＵＳＢのバストポロジーは、図２（Ａ）に示すように、唯一のホストコンピュータ１０を頂点としたツリー構造となっており、ハブ３０Ｈ１において分岐し、ハブ３０Ｈ２やデバイス１１０Ａ，１１０Ｂが接続され、ツリー型に接続される。ルートハブ１２，ハブ３０Ｈ１，３０Ｈ２，３０Ｈ３や、デバイス１１０Ａ，１１０Ｂ，１１０Ｃ，１１０Ｄ，１１０Ｅの間のＵＳＢ伝送路長については、規格では遅延などの電気的仕様を満たせればよいことになっているが、一般的に最大５ｍほどとされている。また、ハブは５段までチェインすることができる。
【００３２】
また、図２（Ｂ）に示すように、ハブ３０Ｈ１からスター型にデバイス１１０Ａ，…，１１０Ｅ５０３を配置することもできる。これらのツリー型やスター型の接続により、配線の自由度を確保している。
【００３３】
次に、図３を用いて、本実施形態によるリアルタイム制御システムに用いるＵＳＢデバイスの伝送線について説明する。  
図３は、本発明の一実施形態によるリアルタイム制御システムに用いるＵＳＢデバイスの伝送線伝送路の説明図である。
【００３４】
ＵＳＢによるデータ転送は、Ｄ＋信号線Ｄ１０，Ｄ−信号線Ｄ１２の対からなる差動信号線によって実現され、ＵＳＢケーブルには他にも電源線Ｄ１４，ＧＮＤ線Ｄ１６が内蔵されており、合計４本の電線にて構成されている。
【００３５】
ＵＳＢＰＨＹ（Ｄ）は、差動データレシーバＤ２０と、データドライバＤ３０とを備えている。ホスト側から送られてきた差動信号は、差動データレシーバＤ２０にて受信され、逆にホスト側へデータを送信する場合にはデータドライバＤ３０を用いて差動信号を生成する。また、ホスト側にデバイスが接続されたことを認識させるには、プルアップ抵抗Ｄ４０を用いてＤ＋信号線Ｄ１０をプルアップし、これによりホストに通知することができる。なお、ＵＳＢについての詳細技術資料としては、USB Implementers Forum,Inc.(www.usb.org)から発行されているUniversal Serial Bus Revision 2.0 Specificationなどがある。ＵＳＢにおけるデータ転送は、１ｍｓ毎に周期的に行われる。一方、後述するように、本実施形態におけるリアルタイム制御システムにおいては、１ｍｓ毎に、この時間内で処理可能なファンクションを実行するようにしており、リアルタイム制御が可能となっている。
【００３６】
次に、図４を用いて、本実施形態によるリアルタイム制御システムに用いるデバイスコントローラ１００の構成について説明する。  
図４は、本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラの構成を示すブロック図である。なお、図１と同一符号は、同一部分を示している。
【００３７】
前述したように、デバイスコントローラ１００Ａ，１００Ｂは、標準部１１０Ａ，１１０Ｂは同じハード構成を有し、拡張部１５０Ａ，１５０Ｂはそれぞれ異なるハード構成となっっている。図８で説明するデバイスコントローラ１００は、デバイスコントローラ１００Ａ，１００Ｂのいずれにも適用できるものである。
【００３８】
デバイスコントローラ１００は、標準部１１０と、拡張部１５０とから構成されている。標準部１１０において、ホストコンピュータとの接続を行うＵＳＢケーブル３０Ｃは、ＵＳＢＰＨＹ（Ｄ）に接続される。ＵＳＢＰＨＹ（Ｄ）は、ＵＳＢケーブル３０Ｃによってデータ転送される差動信号の送受信を行う。ＵＳＢプロトコル処理部１１２は、受信されたデータから、ＵＳＢプロトコルに従った手順を生成する。受信したデータはシリアルデータであるのでシリアルパラレル変換回路１１４にて内部バスＩＢに出力可能となり、ＤＭＡ転送を用いてキャッシュメモリ１１６に格納される。ここで、従来のデバイスコントローラでは、制御プログラムはオンボードのフラッシュメモリなどを利用し格納されているが、本実施形態では、制御プログラムは、ホストコンピュータ１０からデータとして送信される構成となっている。
【００３９】
ここで、ホストコンピュータから送信されるデータは、装置の制御をある一定時間で処理可能なファンクションという単位である。ファンクションの詳細については、図９を用いて後述する。ホストコンピュータから送信されるデータ（ファンクション）は、一定期間内にＣＰＵ１１８で実行し、拡張部１５０に接続されたデバイスを制御する必要がある。このため、プログラムカウンタコントローラ１２０はＣＰＵ１１８の動作を制限し、ファンクションがキャッシュメモリ１１６へＤＭＡ転送が完了するとともに、プログラムカウンタ１２２をファンクションのプログラム先頭に設定する。以降、プログラムカウンタ１２２は順にインクリメントされ、プログラムに記述された動作をＣＰＵ１１８に実行させる。ファンクションに含まれる動作が終了するとプログラムカウンタ１２２はキャッシュメモリ１１６の無限ループが含まれる領域へジャンプする。この領域へプログラムカウンタ１２２が移行すると、比較器１２４により、無限ループ領域に達したことをプログラムカウンタコントローラ１２０へ通知することができる。リセット回路１２６は、ＣＰＵ１１８の初期化時、ＣＰＵ１１８をリセットする。
【００４０】
デバイスコントローラ１００の拡張部１５０は、標準部１１０と、標準部コネクタＣ１０及び拡張部コネクタＣ２０とによって接続されている。コネクタＣ１０，Ｃ２０は、標準部１１０の内部バスＩＢを延長するものである。拡張部１５０には、ＤＩ１５２，ＤＯ１５４，フィールドネットワークインタフェイス１５６，モータコントローラ１５８，モータドライバ１６０などが内蔵されており、センサＤＢ−Ｓ１，ＤＢ−Ｓ２，アクチュエータＤＢ−Ａ，スイッチＤＢ−ＳＷ，バルブＤＢ−Ｖ，流量計ＤＢ−ＦＭ，モータＤＢ−Ｍなどのフィールドデバイスが接続されており、これらの制御を行う。アクチュエータＤＢ−Ａは、例えば、開位置と閉位置の２位置においてオンオフ（開閉）制御されるバルブなどである。バルブＤＢ−Ｖは、バルブの開度が連続的に制御可能なバルブである。また、拡張部１５０には、基板識別子１６２が接続されており、内部バスＩＢを介して標準部１１０より読み出し、拡張部１５０の種別を判別することができる。読み出された基板識別子は、ホストコンピュータ１０に伝送することで、ホストコンピュータ１０は、複数のデバイスコントローラを識別することができる。
【００４１】
次に、図５を用いて、本実施形態によるリアルタイム制御システムに用いるデバイスコントローラ標準部と拡張部の接続コネクタの構成について説明する。  
図５は、本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラ標準部と拡張部の接続コネクタの構成を示すブロック図である。なお、図４と同一符号は、同一部分を示している。
【００４２】
標準部コネクタＣ１０と拡張部コネクタＣ２０により、標準部１１０の内部バスＩＢと拡張部１５０の内部バスＩＢとは、電気的に接続される。ここで接続される信号線は、一般的なマイクロプロセッサのメモリバスと同様な構成となっており、アドレスバス，データバス，リードやライトを示すストローブ信号，チップセレクト信号，割込み信号，バスマスタとなっているＣＰＵに対してバス使用を要求するＤＭＡ要求信号，ＤＭＡ許可信号，そして拡張部の基板識別子を伝達するための、基板識別信号からなっている。これにより、標準部に接続されているキャッシュメモリなどと同様に、拡張部の機能にバスアクセスを行うことができる。
【００４３】
次に、図６を用いて、本実施形態によるリアルタイム制御システムに用いるデバイスコントローラの初期化処理について説明する。  
図６は、本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラの初期化処理の内容を示すフローチャートである。図６において、図６（Ａ）は、ホストコンピュータ１０の初期化処理の内容を示し、図６（Ｂ）は、デバイスコントローラ１００の初期化処理の内容を示している。
【００４４】
ステップｓ１００において、ホストコンピュータ１０の電源がＯＮし、ステップｓ２００において、デバイスコントローラ１００の電源がＯＮする。次に、ステップｓ１０５において、ホストコンピュータ１０は、自己診断チェックなどのシステム初期化を行い、次に、ステップｓ１１０において、ディスクリプタセットアップを行う。同様にして、ステップｓ２０５において、デバイスコントローラ１００は、自己診断チェックなどのシステム初期化を行い、次に、ステップｓ２１０において、ディスクリプタセットアップを行う。ディスクリプタセットアップは、ＵＳＢ通信の初期化で、ホストコンピュータ１０とデバイスコントローラ１００の間で通信を行うための初期設定などを行う。
【００４５】
次に、ステップｓ１１５において、ホストコンピュータ１０は、デバイスコントローラ１００に対して、ＣＰＵ初期化プログラムを転送し、ステップｓ１２０において、Ａｃｋ受信待ちとなる。
【００４６】
一方、ステップｓ２１５において、デバイスコントローラ１００のプロトコル処理部１１２は、ホストコンピュータ１０から転送されたＣＰＵ初期化プログラムをダウンロードする。ＣＰＵ初期化プログラムとは、デバイスコントローラ１００のＣＰＵ初期化を行うためのプログラムで、ＣＰＵ１１８の内蔵レジスタの設定を行う。ダウンロードしたプログラムは、ステップｓ２２０において、シリアルパラレル変換回路１１４は、ダウンロードした初期化プログラムをパラレルデータに変換して、キャッシュメモリ１１６にＤＭＡ転送する。次に、ステップｓ２２５において、プログラムカウンタコントローラ１２０は、ＣＰＵリセットを解除し、０番地に格納されているＣＰＵ初期化プログラムを実行する。なお、電源オンとなった時点で、リセット回路１２６は、ＣＰＵ１１８をリセットしている。
【００４７】
初期化が終了すると、ステップｓ２３０において、プログラムカウンタコントローラ１２０は、プログラムカウンタ１２２を「Ｌｏｏｐ」にセットする。
【００４８】
ここで、図７を用いて、本実施形態によるリアルタイム制御システムに用いるデバイスコントローラのキャッシュメモリ１１６の構成について説明する。  
図７は、本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラのキャッシュメモリの構成を示すメモリマップである。
【００４９】
キャッシュメモリ１１８の内容は、ファンクションエリアＭ１０と、ワークエリアＭ３０と、無限ループＭ４０とが含まれている。ファンクションエリアＭ１０の最後には無限ループへのジャンプ命令Ｍ２０が書き込まれており、これにより無限ループＭ４０へとジャンプし、ファンクションＭ１０の処理が完了となる。
【００５０】
図６のステップｓ２３０の処理により、プログラムカウンタ１２２が「Ｌｏｏｐ」に設定されると、比較器１２４は、「Ｌｏｏｐ」に設定されたことを、プログラムカウンタコントローラ１２０に通知する。これを元に、ステップｓ２３５において、ＵＳＢプロトコル処理部１１２は、ホストコンピュータ１０にＡｃｋを送信する。
【００５１】
ステップｓ１２０で説明したように、このとき、ホストコンピュータ１０ではＡｃｋ受信待ちとなっており、このＡｃｋを受信すると、ステップｓ１２５において、ホストコンピュータ１０は、デバイスコントローラ１００に対して、基板識別ファンクションを転送し、ステップｓ１３０において、Ａｃｋ受信待ちとなる。
【００５２】
一方、ステップｓ２４０において、デバイスコントローラ１００のプロトコル処理部１１２は、ホストコンピュータ１０から転送された基板識別ファンクションをダウンロードする。基板識別ファンクションとは、デバイスコントローラの拡張部に実装されている基板識別子を読み込むためのものである。ダウンロードしたプログラムは、ステップｓ２４５において、シリアルパラレル変換回路１１４は、ダウンロードした初期化プログラムをパラレルデータに変換して、キャッシュメモリ１１６にＤＭＡ転送する。次に、ステップｓ２５０において、プログラムカウンタコントローラ１２０は、プログラムカウンタ１２２を「Ｓｔａｒｔ」にセットする。そして、ステップｓ２５５において、ＵＳＢプロトコル処理部１１２は、ホストコンピュータ１０にＡｃｋを返答する。
【００５３】
ステップｓ１３０で説明したように、このとき、ホストコンピュータ１０ではＡｃｋ受信待ちとなっており、Ａｃｋを受信すると、ステップｓ１３５において、返値アップロード要求を開始し、次に、ステップｓ１４０で返値アップロード待ちとなる。返値アップロード要求は、一定時間ごとに連続して送信され、デバイスコントローラ側で返値の準備ができていなければＮＡＣＫを返信し、返値の準備ができれば返値とともにＡｃｋ返答する。
【００５４】
デバイスコントローラ側では、基板識別ファンクションをＣＰＵ１１８にて実行し、終了するとプログラムカウンタ１２２は「Ｌｏｏｐ」状態となる。そして、ステップｓ２６０において、プログラムカウンタコントローラ１２０は、「Ｌｏｏｐ」状態となったことを判別し、「Ｌｏｏｐ」状態となると、ステップｓ２６５において、シリアルパラレル変換回路１１４は、基板識別信号をシリアル変換し、ステップｓ２７０において、返値をホストコンピュータ１０にアップロードする。
【００５５】
ホストコンピュータ１０は返値を受け取ると、ステップｓ１４５において、デバイスコントローラ１００にＡｃｋを送信し、ステップｓ１５０において、初期化完了となる。デバイスコントローラ１００は、ステップｓ２７５において、Ａｃｋ受信待ちとなっており、Ａｃｋを受信すると、ステップｓ２８０において、初期化完了となる。初期化が完了すると、デバイスコントローラ１００は、ファンクション受付状態となる。
【００５６】
次に、図８及び図９を用いて、本実施形態によるリアルタイム制御システムにおけるファンクションの実行処理の内容について説明する。  
図８は、本発明の一実施形態によるリアルタイム制御システムにおけるファンクションの実行処理の内容を示すフローチャートであり、図９は、本発明の一実施形態によるリアルタイム制御システムで用いられるファンクションの説明図である。図８において、図８（Ａ）は、ホストコンピュータ１０のファンクション転送処理の内容を示し、図８（Ｂ）は、デバイスコントローラ１００のファンクション実行処理の内容を示している。
【００５７】
ファンクション実行には、ステップｓ１６０において、ホストコンピュータ１０は、デバイスコントローラ１００に対して、ファンクションを転送し、ステップｓ１６５において、Ａｃｋ受信待ちとなる。
【００５８】
一方、ステップｓ３００において、デバイスコントローラ１００のプロトコル処理部１１２は、ホストコンピュータ１０から転送されたファンクションをダウンロードする。
【００５９】
ここで、図９を用いて、ファンクションの内容について説明する。本実施形態では、装置の制御をある一定時間で処理可能なファンクションに分割し、これをホストコンピュータ１０からデバイスコントローラ１００に送付することにより、システム全体としてリアルタイム性をもった制御システムを実現するようにしている。ここで、一定時間とは、例えば、１ｍｓである。リアルタイム制御を実行するためには、１ｍｓ程度で処理を完了する必要がある。一方、ＵＳＢのデータ転送は、１ｍｓ周期で行われるため、ファンクションの実行時間を１ｍｓとすると、このデータ転送周期ともマッチングがとれる。
【００６０】
ホストコンピュータ側でリアルタイム制御可能な最小時間に収まる処理として、図９に示すように、初期化処理Ｆ１０，バルブ開放処理７Ｆ２０，アクチュエータ起動処理Ｆ３０などがあり、これら一つ一つがファンクションとなる。ファンクションの処理内容としては、さらに時間の短いリアルタイム性が必要なＩ／Ｏ制御などが含まれ、デバイスコントローラ１００で実行される。
【００６１】
例えば、バルブ開放処理Ｆ２０をダウンロードしたデバイスコントローラ１００は、処理ｆ２１において、流量計測定値をリードし、処理ｆ２２において、リードされた流量計測定値が正常値であるか否かを判断する。正常値でない場合には、処理ｆ２３において、返値＝２として、終了する。
【００６２】
正常値の場合には、処理ｆ２４において、次のＤＯライト(例えば、バルブ開放)処理を実行する。そして、処理ｆ２５において、ＤＩリード(バルブ開放確認)処理を実行する。処理ｆ２６では、リードされたＤＩリード値が正常値か否かを判断する。正常値でない場合には、処理ｆ２７において、返値＝３として、終了する。正常値の場合には、返値＝１として、終了する。
【００６３】
これらの返値（＝１，２，３）は、ホストコンピュータ１０に送信され、ファンクションＦ２０の実行結果がホストコンピュータ１０に送信される。また、ＡＤＣ（Analog Digital Converter）など、測定結果がある桁数の数値を取る場合などは、この値が返値としてホストコンピュータに送信される。
【００６４】
ファンクションを作成するにあたっては、装置のシステム設計段階において、ホストコンピュータにてリアルタイム制御可能な最小時間を１ファンクションタイムとし、これを基準として装置の処理を分割してゆく必要がある。なお、１ファンクションタイムを超える処理がある場合は動作開始と動作終了を二つのファンクションに分けるなどしてホストコンピュータにて実行管理を行う。
【００６５】
再び、図８において、デバイスコントローラ１００は、ｓ３００の処理によりファンクションをダウンロードすると、ダウンロードしたファンクションは、ステップｓ３１０において、シリアルパラレル変換回路１１４は、ダウンロードしたファンクションをパラレルデータに変換して、キャッシュメモリ１１６にＤＭＡ転送する。次に、ステップｓ３１５において、プログラムカウンタコントローラ１２０は、プログラムカウンタ１２２を「Ｓｔａｒｔ」にセットする。そして、ステップｓ３２０において、ＵＳＢプロトコル処理部１１２は、ホストコンピュータ１０にＡｃｋを返答する。
【００６６】
ステップｓ１６５で説明したように、このとき、ホストコンピュータ１０ではＡｃｋ受信待ちとなっており、Ａｃｋを受信すると、ステップｓ１７０において、返値アップロード要求を開始し、次に、ステップｓ１７５で返値アップロード待ちとなる。返値アップロード要求は、一定時間ごとに連続して送信され、デバイスコントローラ側で返値の準備ができていなければＮＡＣＫを返信し、返値の準備ができれば返値とともにＡｃｋ返答する。
【００６７】
デバイスコントローラ側では、ファンクションをＣＰＵ１１８にて実行し、終了するとプログラムカウンタ１２２は「Ｌｏｏｐ」状態となる。そして、ステップｓ３２５において、プログラムカウンタコントローラ１２０は、「Ｌｏｏｐ」状態となったことを判別し、「Ｌｏｏｐ」状態となると、ステップｓ３３０において、シリアルパラレル変換回路１１４は、返値をシリアル変換し、ステップｓ３３５において、返値をホストコンピュータ１０にアップロードする。
【００６８】
ホストコンピュータ１０は返値を受け取ると、ステップｓ１８０において、デバイスコントローラ１００にＡｃｋを送信する。デバイスコントローラ１００は、ステップｓ３４０において、Ａｃｋ受信待ちとなっており、Ａｃｋを受信すると、デバイスコントローラ１００は、次のファンクション受付状態となる。
【００６９】
ホストコンピュータ１０は、全てのファンクションが終了したか否かを判定して、終了すると、ステップｓ１９０において、シャットダウンする。
【００７０】
以上説明したように、本実施形態によれば、パーソナルコンピュータにおいて許容されているリアルタイム性を引き出し、下位のデバイスコントローラとバランスのよいリアルタイム制御システムを構築することができる。これにより双方でリソースが重複していた不揮発性メモリを減らすことができ、低コスト化を図ることができる。また、以前は生産時にロムライターやＣＰＵのＪＴＡＧ機能を用いていた不揮発性メモリ書き込みが不要となり、生産コストの低減を図れる。
【００７１】
また、デバイスコントローラを標準部と拡張部に分けたことにより、改廃のサイクルの短い部品を有する標準部については改廃するが、拡張部はそのまま利用することにより、デバイスコントローラをすべて作り直すといった作業量を減らすことができる。これにより、リアルタイム制御システムの開発から生産終了までの製品ライフサイクルにおけるコストの削減できる。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態によるリアルタイム制御システムを適用した理化学装置の全体構成を示す概略斜視図である。
【図２】本発明の一実施形態によるリアルタイム制御システムに用いるＵＳＢ伝送路３０Ｃのバストポロジーの説明図である。
【図３】本発明の一実施形態によるリアルタイム制御システムに用いるＵＳＢデバイスの伝送線伝送路の説明図である。
【図４】本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラの構成を示すブロック図である。
【図５】本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラ標準部と拡張部の接続コネクタの構成を示すブロック図である。
【図６】本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラの初期化処理の内容を示すフローチャートである。
【図７】本発明の一実施形態によるリアルタイム制御システムに用いるデバイスコントローラのキャッシュメモリの構成を示すメモリマップである。
【図８】本発明の一実施形態によるリアルタイム制御システムにおけるファンクションの実行処理の内容を示すフローチャートである。
【図９】本発明の一実施形態によるリアルタイム制御システムで用いられるファンクションの説明図である。
【符号の説明】
【００７３】
１０…ホストコンピュータ
３０Ｃ…ＵＳＢ伝送線
１００…デバイスコントローラ
１１０…デバイスコントローラ標準部
１１２…ＵＳＢプロトコル処理部
１１４…シリアルパラレル変換回路
１１６…キャッシュメモリ
１１８…デバイスコントローラＣＰＵ
１２０…プログラムカウンタコントローラ
１２２…プログラムカウンタ
１２４…比較器
１５０…デバイスコントローラ拡張部
１５２…ＤＩ
１５４…ＤＯ
１５６…フィールドネットワークインタフェイス
１５８…モータコントローラ
１６０…モータドライバ
Ｃ１０…標準部コネクタ
Ｃ２０…拡張部コネクタ
【図１】
2005293333.tif 000003
【図２】
2005293333.tif 000004
【図３】
2005293333.tif 000005
【図４】
2005293333.tif 000006
【図５】
2005293333.tif 000007
【図６】
2005293333.tif 000008
【図７】
2005293333.tif 000009
【図８】
2005293333.tif 000010
【図９】
2005293333.tif 000011