(57)【要約】【課題】複数の電動装置を有する顕微鏡システムにおいて、電動装置の連動動作を実現するための開発コストを低減させる。【解決手段】複数の電動装置を有する顕微鏡１００に接続され、電動装置の動作を制御する情報処理装置２０であって、電動装置毎に設けられた複数の電動装置制御用ＳＤＫ（デバイスドライバ）１１０と、顕微鏡操作用アプリケーション１００とを記憶したメモリ２０２を有し、複数のデバイスドライバ１１０ａ〜ｎは、各々、担当する電動装置を制御した場合、その制御結果を他のデバイスドライバ１１０に通知し、前記他のデバイスドライバ１１０からの制御結果の通知を受付けた場合、受付けた制御結果にしたがい担当する電動装置を制御する。【選択図】図１
2007025074.tif 000002
【特許請求の範囲】
【請求項１】
複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、
利用者からの前記電動装置の操作要求を受け付ける操作受付手段と、
制御を担当する電動装置毎に設けられた、複数のデバイス制御手段と、を有し、
前記操作受付手段は、
前記電動装置の操作要求を受付けると、該受付けた電動装置の制御を担当する制御手段に、該受付けた操作要求を送信し、
前記制御手段は、
前記操作受付手段からの前記操作要求を受付けた場合、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信し、
前記操作要求の対象となる電動装置からの前記送信した制御命令に対する動作結果を受付けた場合、他のデバイス制御手段に該受付けた制御結果を通知し、さらに、
他のデバイス制御手段からの制御結果の通知を受付けた場合、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信すること
を特徴とする情報処理装置。
【請求項２】
複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、
前記電動装置と通信を行うインタフェースと、
前記電動装置毎に設けられた複数のデバイスドライバと、利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムと、が記憶されているメモリと、
前記アプリケーションプログラムを実行することにより、利用者からの前記電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行う演算処理装置と、を有し、
前記演算装置は、前記デバイスドライバを実行することにより、
前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、
前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、
前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する連動動作処理と、を行うこと
を特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記複数のデバイスドライバは、各々、
前記制御結果毎に操作要求の対象となる電動装置の制御内容を対応付けた制御情報を保持していて、
前記演算装置は、前記連動動作処理において、
前記受付けた制御結果および前記制御情報を用いて、該制御結果に対応する制御内容を特定し、該特定した制御内容の制御命令を生成すること
を特徴とする情報処理装置。
【請求項４】
複数の電動装置を有する顕微鏡と、該顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置とを有する顕微鏡システムであって、
前記情報処理装置は、演算装置と、前記電動装置と通信を行うインタフェースと、メモリとを有し、
前記メモリには、前記電動装置毎に設けられた複数のデバイスドライバおよび利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムが記憶されていて、
前記演算装置は、前記アプリケーションプログラムを実行することにより、
利用者からの電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行い、
前記演算装置は、前記デバイスドライバを実行することにより、
前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、
前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、
前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、を行い、
前記顕微鏡の電動装置は、
前記情報処理装置からの前記制御命令を受付け、該制御命令に対応する動作を行い、動作結果を前記情報処理装置に送信すること
を特徴とする顕微鏡システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顕微鏡の電動ステージや電動レボルバ等の電動装置の動作を制御する技術に関する。
【背景技術】
【０００２】
従来から、電動化された顕微鏡と、顕微鏡からの画像を撮影するカメラと、ＰＣ（Personal Computer）とを接続した顕微鏡システムが知られている。この顕微鏡システムでは、利用者がモニタ上でカメラからのライブ画像を観察しながら、顕微鏡の電動ステージ等の電動装置を操作する（例えば、特許文献１）。
【０００３】
ところで、ＰＣにより顕微鏡の電動装置を制御する場合には、顕微鏡の電動装置を制御するためのソフトウェア（アプリケーションおよびデバイスドライバ）が必要になる。近年は、顕微鏡操作用のアプリケーションの作成を容易にするために、制御する電動装置毎にＳＤＫ（Software Development Kit）と呼ばれるアプリケーションの開発支援ツールが提供されている。このＳＤＫは、通信設定、通信処理、および初期設定等の面倒な処理を自動で行う。そのため、ＳＤＫを利用することにより、顕微鏡の電動装置を制御するためのソフトウェアの開発効率を向上させることができる。
【０００４】
また、顕微鏡システムでは、顕微鏡に設けられた電動装置を１つ動かすと、その電動装置に連動させて他の電動装置の設定を行う必要が生じることが多い。例えば、対物レンズが切替わる際、ステージと対物レンズがぶつからないようにステージを下げてからレボルバを回す、といった連動動作の制御を行う必要がある。また、対物レンズを切り替えた場合、切り替えた対物レンズに合わせ、コンデンサレンズ、焦点位置(ステージＺ方向位置)、透過視野絞り、透過開口絞り、およびＮＤフィルタの設定を変更する必要が生じることがある。
【０００５】
そのため、顕微鏡システムでは、ある電動装置の動きに連動して別の電動装置が動く連動制御を可能にしているものがある。この連動制御を行なう場合、例えば、アプリケーションは、レボルバ制御用のデバイスドライバから対物切替え命令を受け取り、この命令に対応してアプリケーションが、ステージ制御用のデバイスドライバにステージ降下命令を送る。そして、アプリケーションは、制御完了の応答を受け取った後、レボルバに回転命令を送る処理を行う。このような連動制御に対応するため、一つのアプリケーションと、複数のデバイスドライバとから構成され、一つのアプリケーションにより複数の電動装置を操作できる顕微鏡システムが開発されている。この顕微鏡システムでは、上位のアプリケーションが複数のデバイスドライバを介して電動装置を統合管理している。
【０００６】
【特許文献１】特開２００２−１９６２２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、複数のデバイスドライバを上位のアプリケーションが統合管理するシステムでは、以下の問題が生じる。具体的には、上述のシステムでは、新たな電動装置を組み込む場合、新たな電動装置を制御するためのデバイスドライバをアプリケーションに組み込み、機能を追加する必要がある。そして、新たに追加する電動装置を既存の他の電動装置と連動動作をさせようとした場合、アプリケーションにおいて、他の電動装置との連動動作を行う連携部分の開発が必要になる。つまり、新たな機能を追加する際、その電動装置を制御するための機能追加だけではなく既存のデバイスドライバとの連携部分の開発も必要となり、アプリケーション開発に時間と手間が必要となる。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、複数の電動装置が設置可能な顕微鏡システムにおいて、容易に電動装置の連動動作が可能なシステムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために請求項１に係る発明の情報処理装置は、複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、利用者からの前記電動装置の操作要求を受け付ける操作受付手段と、制御を担当する電動装置毎に設けられた、複数のデバイス制御手段と、を有し、前記操作受付手段は、前記電動装置の操作要求を受付けると、該受付けた電動装置の制御を担当する制御手段に、該受付けた操作要求を送信し、前記制御手段は、前記操作受付手段からの前記操作要求を受付けた場合、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信し、前記操作要求の対象となる電動装置からの前記送信した制御命令に対する動作結果を受付けた場合、他のデバイス制御手段に該受付けた制御結果を通知し、さらに、他のデバイス制御手段からの制御結果の通知を受付けた場合、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信する。
【００１０】
請求項２に係る情報処理装置は、複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、前記電動装置と通信を行うインタフェースと、前記電動装置毎に設けられた複数のデバイスドライバと、利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムと、が記憶されているメモリと、前記アプリケーションプログラムを実行することにより、利用者からの前記電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行う演算処理装置と、を有し、前記演算装置は、前記デバイスドライバを実行することにより、前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、
前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する連動動作処理と、を行う。
【００１１】
請求項３に係る情報処理装置は、請求項２に記載の情報処理装置であって、
前記複数のデバイスドライバは、各々、前記制御結果毎に操作要求の対象となる電動装置の制御内容を対応付けた制御情報を保持していて、前記演算装置は、前記連動動作処理において、前記受付けた制御結果および前記制御情報を用いて、該制御結果に対応する制御内容を特定し、該特定した制御内容の制御命令を生成する。
【００１２】
請求項４に係る顕微鏡システムは、複数の電動装置を有する顕微鏡と、該顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置とを有する顕微鏡システムであって、前記情報処理装置は、演算装置と、前記電動装置と通信を行うインタフェースと、メモリとを有し、前記メモリには、前記電動装置毎に設けられた複数のデバイスドライバおよび利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムが記憶されていて、前記演算装置は、前記アプリケーションプログラムを実行することにより、利用者からの電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行い、前記演算装置は、前記デバイスドライバを実行することにより、前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、を行い、前記顕微鏡の電動装置は、前記情報処理装置からの前記制御命令を受付け、該制御命令に対応する動作を行い、動作結果を前記情報処理装置に送信する。
【発明の効果】
【００１３】
このように、本発明では、複数の電動装置が設置可能な顕微鏡システムにおいて、容易に電動装置の連動動作が可能なシステムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態について図面を用いて説明する。
【００１５】
最初に、本発明の第１実施形態が適用された顕微鏡システムの概略構成を説明する。
【００１６】
図１は、本発明の実施形態の顕微鏡システムの概略構成を説明するための図である。
【００１７】
図示するように、顕微鏡システムは、顕微鏡１００と、顕微鏡１００に接続線３００を介して接続している情報処理装置２０とを有する。顕微鏡１００には、複数の電動装置（図示する例では、ランプシャッタ２、電動レボルバ４、電動ステージ５、透過照明用ランプ７）が設けられている。情報処理装置２０には、顕微鏡１００に設けられた電動装置を制御するためのプログラムがインストールされている。そして、各電動装置は、情報処理装置２０からの操作要求にしたがい動作する。また、情報処理装置２０には、顕微鏡１００に対する操作を受付けるための操作画面等を表示するディスプレイ１３と、利用者からの各種要求を受付けるための外部入力装置１４とが接続されている。
【００１８】
なお、情報処理装置２０には、例えば、ＰＣ（Personal Computer）を用いることができる。ディスプレイ１３には、液晶表示装置等を用いることができる。また、外部入力装置１４には、キーボードやマウス等を用いることができる。以下、顕微鏡１００および情報処理装置２０の構成について具体的に説明する。
【００１９】
先ず、顕微鏡１００の構成を説明する。顕微鏡１００は、試料の蛍光観察を行う際の照明光源として用いる蛍光観察用ランプ１と、ランプシャッタ２と、フィルタキューブ３と、対物レンズを設定する電動レボルバ４と、電動ステージ５と、電動ステージ５の動作を制御するステージ制御部６と、透過照明用ランプ７と、電動コンデンサ８と、コンデンサ・シャッタ・ランプ制御部９と、パワーサプライ１０と、通信制御部１１と、電動レボルバ４の動作を制御するレボルバ制御部１２とを有する。
【００２０】
蛍光観察用ランプ１の電源の「ＯＮ/ＯＦＦ」および光量の調整は、利用者が手動で制御する。ランプシャッタ２は、蛍光観察用ランプ１からの照明を光路に入れるか、或いは、当該照明を遮光するかの制御を行う。具体的には、蛍光観察用ランプ１からの照明は、ランプシャッタ２を「ＯＰＥＮ」にした場合に光路に入射される。一方、蛍光観察用ランプ１からの照明は、ランプシャッタ２を「ＣＬＯＳＥ」にした場合に遮光される。なお、ランプシャッタ２の動作は、コンデンサ・シャッタ・ランプ制御部９からの制御信号にしたがい制御される。
【００２１】
フィルタキューブ３は、２種類のフィルタ及び１枚のダイクロイックミラーから構成され、特定の波長の光を抽出し、試料（図示しない）から発せられた蛍光とその他の不要な散乱光などを分離して必要な光だけを通す。
【００２２】
電動レボルバ４は、複数の対物レンズを保持するレボルバと、レボルバ制御部１２からの制御信号を受付け、受付けた制御信号にしたがい複数の対物レンズの中から対応する対物レンズに設定を切り替えるレボルバ駆動部とを有する。レボルバ制御部１２は、電動レボルバ４の接続状態を確認し、且つ制御を行う。
【００２３】
電動ステージ５は、試料を置くためのステージと、ステージ制御部６からの制御信号を受付け、受付けた制御信号にしたがいステージを動かすステージ駆動部を有する。ステージ制御部６は、電動ステージ５の接続状態を確認し、且つ制御を行う。
【００２４】
透過照明用ランプ７は、電動でランプの「ＯＮ/ＯＦＦ」制御と、光量の調整とが制御可能に構成されていて、コンデンサ・シャッタ・ランプ制御部９からの制御信号を受付け、受付けた制御信号にしたがい動作する。
【００２５】
電動コンデンサ８は、透過照明用ランプ７の光を調整するためのレンズであり、コンデンサ・シャッタ・ランプ制御部９からの制御信号を受付け、受付けた制御信号にしたがい動作する。具体的には、電動コンデンサ８は、コンデンサ・シャッタ・ランプ制御部９からの制御信号にしたがい、透過照明用ランプ７の光を集めたり、絞りにより弱くしたり、或いは、上下移動させて集光状態を変化させたりする。
【００２６】
コンデンサ・シャッタ・ランプ制御部９は、ランプシャッタ２、透過照明用ランプ７、および電動コンデンサ８の接続状態を確認し、制御を行う。
【００２７】
通信制御部１１は、情報処理装置２０との間で行うデータの送受信を制御する。なお、通信制御部１１と情報処理装置２０とは、例えば、ＵＳＢ(Universal Serial Bus)により接続線３００で接続されている。
【００２８】
続いて、顕微鏡１００の電動装置を制御する情報処理装置２０の構成を説明する。情報処理装置２０は、各種の処理を実行するＣＰＵ（Central Processing Unit：演算装置）２００と、ディスプレイ１３や顕微鏡１００等の外部装置との間で行うデータの送受信を制御するＩＯＩ／Ｆ２０１と、メモリ２０２と、を有する。メモリ２０２の所定領域には、顕微鏡１００の操作を受付けるための顕微鏡操作用アプリケーション１００と、電動装置の動作を制御するためのデバイスドライバである電動装置制御用ＳＤＫ（Software Development Kit）１１０ａ〜ｎと、全ての電動装置制御用ＳＤＫ１１０ａ〜ｎが内容を理解できる「制御メッセージ」を格納した制御メッセージテーブル（図示しない）とが格納されている。
【００２９】
ここで、「制御メッセージ」とは、電動装置１１０ａ〜ｎが行った制御内容を示す情報（制御した電動装置の状態を示す情報）をいう。なお、「制御メッセージ」をGUID（Global Unique Identifier）により表現するようにしてもよい。
【００３０】
顕微鏡操作用アプリケーション１００は、情報処理装置２０に、顕微鏡１００を制御する処理を実行させるためのプログラムである。具体的には、顕微鏡操作用アプリケーション１００は、利用者からの電動装置の操作要求を受付け、受け付けた電動装置の制御を担当する電動装置制御用ＳＤＫ１１０に受付けた操作要求を行う。
【００３１】
電動装置制御用ＳＤＫ１１０ａ〜ｎは、情報処理装置２０に、顕微鏡１００の電動装置を制御する処理を実行させる。電動装置制御用ＳＤＫ１１０ａ〜ｎは、制御する電動装置との間で行うデータの送受信のための各種処理（通信設定処理、通信処理、および初期設定等）を行う。なお、本実施形態では、制御を担当する電動装置毎に、電動装置制御用ＳＤＫ１１０ａ〜ｎが設けられている。例えば、図示する電動装置制御用ＳＤＫ１１０ａは、顕微鏡１００の電動レボルバ４の動作を制御するためのプログラムである。また、電動装置制御用ＳＤＫ１１０ｂは、顕微鏡１００の電動ステージ５の動作を制御するためのプログラムである。
【００３２】
続いて、本実施形態の情報処理装置２０が行う顕微鏡１００の電動装置を制御する機能について図２を用いて説明する。
【００３３】
図２は、本実施形態の情報処理装置２０の機能を説明するための図である。なお、図２では、説明を簡略化するために、情報処理装置２０が電動レボルバ４および電動ステージ５だけを制御する場合の例を説明する。
【００３４】
さて、情報処理装置２０には、上記図1で示した通り、顕微鏡操作用アプリケーション１００と、電動レボルバ４を制御するための電動装置制御用ＳＤＫ（電動レボルバ用）１１０ａと、電動ステージ５を制御するための電動装置制御用ＳＤＫ（電動ステージ用）１１０ｂと、制御メッセージテーブル（図示しない）と、が格納されている。
【００３５】
なお、図２で説明する処理は、情報処理装置２０のＣＰＵ２００が各プログラム（顕微鏡操作用アプリケーション１００、電動装置制御用ＳＤＫ１１０ａ〜ｂ）を実行することにより実現されるものである。しかしながら、以下では、各処理を担当するプログラムを明確にするために、各プログラム（顕微鏡操作用アプリケーション１００、電動装置制御用ＳＤＫ（電動レボルバ用）１１０ａ、電動装置制御用ＳＤＫ（電動ステージ用）１１０ｂ、）を動作主体として記載する。
【００３６】
顕微鏡操作用アプリケーション１００は、顕微鏡１００の操作を受付けるための操作画面をディスプレイ１３に表示する。顕微鏡操作用アプリケーション１００は、利用者が操作画面にしたがい外部入力装置１４を介して入力する顕微鏡１００の操作要求（例えば、電動ステージ５を移動させる要求）を受付ける。また、顕微鏡操作用アプリケーション１００は、受付けた操作要求がどの電動装置（電動レボルバ４および電動ステージ５のいずれか）に対するものかを判定する。顕微鏡操作用アプリケーション１００は、判定した電動装置の制御を担当する電動装置制御用ＳＤＫ１１０（電動装置制御用ＳＤＫ１１０ａ、および電動装置制御用ＳＤＫ１１０ｂのいずれか）に受付けた操作要求を出力する。
【００３７】
電動装置制御用ＳＤＫ１１０ａは、顕微鏡操作用アプリケーション１００からの電動レボルバ４を制御する操作要求を受付け、顕微鏡１００の電動レボルバ４を制御する。
【００３８】
具体的には、電動装置制御用ＳＤＫ１１０ａは、顕微鏡操作用アプリケーション１００からの電動レボルバ４を制御する操作要求を受付け、受付けた操作要求にしたがい対応する制御命令を生成する。電動装置制御用ＳＤＫ１１０ａは、生成した制御命令をＩＯＩ／Ｆ２０１（図１参照）を介して顕微鏡１００のレボルバ制御部１２に送信する。その結果、顕微鏡１００のレボルバ制御部１２により電動レボルバ４が制御される（例えば、利用者の要求した対物レンズになるようにレボルバの設定を切り替える）。なお、顕微鏡１００のレボルバ制御部１２は、電動装置制御用ＳＤＫ１１０ａからの要求にしたがい電動レボルバ４を設定し、その設定が終了した場合に、電動レボルバ４の状態が変更した旨の通知（動作結果）を電動装置制御用ＳＤＫ１１０ａに送信する。
【００３９】
また、電動装置制御用ＳＤＫ１１０ｂは、顕微鏡操作用アプリケーション１００からの電動ステージ５を制御する操作要求を受付け、顕微鏡１００のステージ制御部６を介して電動ステージ５を制御する。
【００４０】
具体的には、電動装置制御用ＳＤＫ１１０ｂは、顕微鏡操作用アプリケーション１００からの電動ステージ５を制御する操作要求を受付け、受付けた操作要求にしたがい対応する制御命令を生成する。電動装置制御用ＳＤＫ１１０ｂは、生成した制御命令をＩＯＩ／Ｆ２０１（図１参照）を介して顕微鏡１００のステージ制御部６に送信する。その結果、顕微鏡１００のステージ制御部６により電動ステージ５が制御される（例えば、利用者の要求する位置に電動ステージを移動する）。なお、顕微鏡１００のステージ制御部６は、電動装置制御用ＳＤＫ１１０ｂからの要求にしたがい電動ステージ５を設定し、その設定が終了した場合に、電動ステージ５の状態が変更した旨の通知（動作結果）を電動装置制御用ＳＤＫ１１０ｂに送信する。
【００４１】
また、本実施形態では、電動装置制御用ＳＤＫ１１０ａおよび電動装置制御用ＳＤＫ１１０ｂは、相互に通信を行う。電動装置制御用ＳＤＫ１１０ａ（電動装置制御用ＳＤＫ１１０ｂ）は、自身が制御する電動装置の設定状態が変更した場合（担当する電動装置を制御した場合）、その制御内容を示す「制御メッセージ」を電動装置制御用ＳＤＫ１１０ｂ（電動装置制御用ＳＤＫ１１０ａ）に送信する。なお、電動装置制御用ＳＤＫ１１０は、他の電動装置制御用ＳＤＫ１１０と通信を行う際、メモリ２０２に格納されている制御メッセージテーブルを参照し、通信先の電動装置制御用ＳＤＫ１１０が理解できるデータ形式の「制御メッセージ」を作成して送信する。また、電動装置制御用ＳＤＫ１１０は、他の電動装置制御用ＳＤＫ１１０からの「制御メッセージ」を受信した場合、受信した「制御メッセージ」の内容により、自身が制御している電動装置を連動動作させる必要があるか否かを判定し、必要に応じて（連動動作させる必要があると判定した場合）、顕微鏡操作用アプリケーション１００を介さず、顕微鏡１００の電動装置の連動動作を行う。
【００４２】
電動装置の連動動作とは、顕微鏡操作用アプリケーション１００が受付けた１台の電動装置の動作に対応させて動作させる必要がある、他の電動装置の動作をいう。例えば、電動装置の一つである電動レボルバ４を動作させて対物レンズを切り替えた場合、切り替えた対物レンズに合わせ、他の電動装置（例えば、電動ステージ５、電動コンデンサ８、透過証明用ランプ９）の設定を変更する場合をいう。この場合、情報処置装置２０は、電動レボルバ４を動作させた後、電動ステージ５、電動コンデンサ８、および透過照明用ランプ７を動作させ、切り替えた対物レンズに対応する設定に顕微鏡１００を変更する。
【００４３】
続いて、本実施形態の顕微鏡システムが行う電動装置の連動動作について図３を用いて説明する。
【００４４】
図３は、本発明の実施形態の顕微鏡システムが行う電動装置の連動動作の処理のフローを説明するための図である。なお、以下では、説明を簡略化するために、電動装置の連動動作以外の処理の説明を省略する。
【００４５】
また、以下の処理は、上述した図２と同様、情報処理装置２０のＣＰＵ２００が各プログラム（顕微鏡操作用アプリケーション１００、電動装置制御用ＳＤＫ１１０ａ〜ｎ）を実行することにより実現されるものである。しかしながら、以下では、各処理を担当するプログラムを明確にするために、各プログラム（顕微鏡操作用アプリケーション１００、電動装置制御用ＳＤＫ１１０ａ〜ｎ）を動作主体として記載する。また、情報処理装置２０には、少なくとも１つの電動装置制御用ＳＤＫ１１０がインストールされていることとする。
【００４６】
先ず、利用者が顕微鏡１００のパワーサプライ１０および情報処理装置２０の電源をONにして、顕微鏡システムを起動させる。その後、顕微鏡操作用アプリケーション１００が起動されて、以下のフローが開始される。
【００４７】
顕微鏡操作用アプリケーション１００は、利用者からの電動装置に対する操作要求を受付け、その受け付けた電動装置制御用ＳＤＫ１１０を起動させ（Ｓ１００）、Ｓ１０１の処理に進む。ここで、顕微鏡操作用アプリケーション１００は、受け付けた電動装置制御用ＳＤＫ１１０を起動させる際、情報処理装置２０にインストールされている他の電動装置制御用ＳＤＫ１１０も、共に起動させる。本ステップ（Ｓ１００）で起動された電動装置制御用ＳＤＫ１１０は、各々、以下のＳ１０１〜１０６、Ｓ１１０の処理を行う。なお、Ｓ１０１〜１０６、Ｓ１１０の説明では、説明の便宜上、Ｓ１００で起動された電動装置制御用ＳＤＫ１１０の中の１つの電動装置制御用ＳＤＫ１１０（以下、本フローの説明において「特定ＳＤＫ」と呼ぶ）が行う処理を代表して説明する。
【００４８】
Ｓ１０１では、「特定ＳＤＫ」は、他の電動装置制御用ＳＤＫ１１０（「特定ＳＤＫ」以外の電動装置制御用ＳＤＫ）が起動しているか否かの確認を行う。確認の結果、「特定ＳＤＫ」は、他の電動装置制御用ＳＤＫ１１０が起動していることを確認した場合、Ｓ１０２の処理に進む。一方、本フローチャートは、顕微鏡１００に設けられた電動装置の連動動作に限定したものであるため、起動している他の電動装置制御用ＳＤＫ１１０が見当たらなければ、処理を終了する。ここで、起動している他の電動装置制御用ＳＤＫ１１０が見当たらない場合とは、Ｓ１００において、「特定ＳＤＫ」以外の電動装置制御用ＳＤＫ１１０が起動されなかった場合、つまり、情報処理装置２０に「特定ＳＤＫ」以外の電動装置制御用ＳＤＫ１１０がインストールされていない場合をいう。
【００４９】
Ｓ１０２では、「特定ＳＤＫ」は、イベント監視・取得用のスレッドオブジェクトを生成し、Ｓ１０３の処理に進む。
【００５０】
Ｓ１０３では、「特定ＳＤＫ」は、Ｓ１０２で生成したスレッドオブジェクトにより、イベントチェックを行う。具体的には、「特定ＳＤＫ」は、自身が制御を行なっている電動装置の状態が変化したか否かの監視と、他の電動装置制御用ＳＤＫ１１０が送信する状態変更を示す「制御メッセージ」を受信したか否かの監視と、を行う。そして、「特定ＳＤＫ」は、自身が制御を行なっている電動装置の状態が変化したと判定した場合、Ｓ１１０に進む。また、「特定ＳＤＫ」は、他の電動装置制御用ＳＤＫ１１０からの「制御メッセージ」を受信した場合、Ｓ１０４に進む。なお、本ステップでは、「特定ＳＤＫ」は、他の電動装置制御用ＳＤＫ１１０からの「制御メッセージ」を取得するまで、または、自身が制御を行なっている電動装置の状態変化を検知するまで待機する。
【００５１】
ここで、上記の自身が制御を行っている電動装置の状態が変化したか否かの判定は、例えば、顕微鏡１００からの状態変化を示す「動作結果」を受信したか否かにより行なう。具体的には、顕微鏡１００は、電動装置制御用ＳＤＫ１１０からの制御命令に対する電動装置の操作が完了した場合、「動作結果」を電動装置制御用ＳＤＫ１１０（制御命令を送信した電動装置制御用ＳＤＫ１１０）に送信する。電動装置制御用ＳＤＫ１１０は、顕微鏡１００からの「動作結果」をＩＯＩ／Ｆ２０１を介して受信した場合、自身が制御を行なっている電動装置の状態が変化したと判定する。
【００５２】
Ｓ１１０では、「特定ＳＤＫ」は、メモリ２０２に格納されている「制御メッセージテーブル」を参照し、自身が担当する電動装置に対して行った制御内容を示す「制御メッセージ」を作成する。「特定ＳＤＫ」は、作成した「制御メッセージ」をＳ１０１で確認した自分以外の全ての電動装置制御用ＳＤＫ１１０に送信し、Ｓ１０３の処理に戻る。
【００５３】
続いて、Ｓ１０３において、他の電動装置制御用ＳＤＫ１１０からの「制御メッセージ」を受信した場合に進むＳ１０４の処理について説明する。
【００５４】
Ｓ１０４では、「特定ＳＤＫ」は、「制御メッセージテーブル」を参照し、Ｓ１０３で取得した他の電動装置制御用ＳＤＫ１１０からの「制御メッセージ」の内容のチェックを行い、自身が制御する電動装置を連動動作させる必要があるか否かの判定を行う。なお、電動装置制御用ＳＤＫ１１０は、各々、制御メッセージ毎に自身が制御する電動装置の動作内容を対応付けた「制御判定情報（電動装置を動作させないことを示す情報、具体的な動作内容を示す情報等）」を保持しているものとする。そして、「特定ＳＤＫ」は、上記制御判定情報を用いて制御メッセージの内容のチェック行う。「特定ＳＤＫ」は、連動動作を行なう必要があると判定した場合、Ｓ１０５へ進み、連動動作を行なう必要の無いと判定した場合、Ｓ１０３の処理に戻る。
【００５５】
なお、「制御判定情報」を電動装置制御用ＳＤＫ１１０の各々に保持させるのではなく、メモリ２０２の所定領域に格納しておくようにしてもよい。この場合、電動装置制御用ＳＤＫ１１０は、他の電動装置制御用ＳＤＫ１１０から制御メッセージを受付けた際、メモリ２０２に格納されている「制御判定情報」を参照して、連動動作を行なう必要があるか否かの判定を行う。
【００５６】
Ｓ１０５では、「特定ＳＤＫ」は、Ｓ１０４で判定した連動動作のための制御命令を生成し、生成した制御命令をＩＯＩ／Ｆ２０１を介して顕微鏡１００の電動装置に送信する。「特定ＳＤＫ」は、制御命令を送信後、顕微鏡１００からの応答（制御命令に対応する「動作結果」））があるまで待機する。「特定ＳＤＫ」は、顕微鏡１００からの応答（動作結果）を受信したら、Ｓ１０３の処理に戻り（Ｓ１０６）、上述したＳ１０３〜Ｓ１０６の処理を繰返す。なお、Ｓ１０６の処理の後、上述したＳ１１０と同様の処理を行うようにしてもよい。
【００５７】
本実施形態では、電動装置制御用ＳＤＫ１１０は、自身が担当する電動装置を制御した場合、その制御内容を示す「制御メッセージ」を他の電動装置制御用ＳＤＫ１１０に通知する。また、電動装置制御用ＳＤＫ１１０は、他の電動装置制御用ＳＤＫ１１０からの「制御メッセージ」を受付けた場合、自身が制御している電動装置の連動動作を行う必要があるか否かを判定する。そして、電動装置制御用ＳＤＫ１１０は、連動動作を行う必要があると判定した場合、自身が制御している電動装置を連動動作させる。
【００５８】
このように構成することにより、顕微鏡操作用アプリケーション１００が、電動装置間の連携動作を管理する必要がなくなる。具体的には、顕微鏡操作用アプリケーション１００は、電動装置制御用ＳＤＫ１１０の制御結果の内容から連動動作が必要であるか否かを判定する必要がない。また、顕微鏡操作用アプリケーション１００は、連動動作を指示するコマンドを生成し、担当する電動装置制御用ＳＤＫ１１０に送信する等の処理をする必要がない。そのため、本実施形態によれば、顕微鏡操作用アプリケーション１００の開発の手間を低減することができる。
【００５９】
また、本実施形態では、電動装置制御用ＳＤＫ１１０は、共通の制御メッセージを他の電動装置制御用ＳＤＫ１１０に通知できるようにしておけばよく、他の電動装置制御用ＳＤＫ１１０毎の制御命令を生成する必要はない。すなわち、本実施形態の電動装置制御用ＳＤＫ１１０は、他の電動装置制御用ＳＤＫ１１０の規格等を意識することなく作成することができる。そのため、電動装置を連動動作させる顕微鏡システム全体の開発コストを低減することができる。
【００６０】
また、本実施形態によれば、電動装置が設けられた顕微鏡システムに、新たな電動装置を追加する場合、顕微鏡操作用アプリケーション１００は、既存の電動装置と追加する電動装置との間の連携について考慮する必要がない。そのため、本実施形態によれば、既存の顕微鏡システムに新たに電動装置を追加する場合であっても、電動装置を追加するために必要な手間を軽減することができる。特に、近年は、電動装置のモジュール化が進み、利用者毎に異なる電動装置を組み込んだ顕微鏡が利用されるようになってきている。また、利用者が顕微鏡に新たな電動装置を追加することも多く行われるようになってきている。したがって、本実施形態のように、電動装置制御用ＳＤＫ１１０に電動装置の連動動作を制御する機能を設けるようにしておけば、顕微鏡システムに新たな電動装置を追加する際の手間およびコストを軽減することができる。
【００６１】
また、本実施形態によれば、電動装置の連動動作を、顕微鏡操作用アプリケーション１００を介さず行うことができる。そのため、本実施形態によれば、複数の電動装置を有する顕微鏡システムにおいて、電動装置の連動動作の処理を高速化することができる。
【００６２】
なお、本発明は以上で説明した実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形が可能である。例えば、本実施形態では、情報処理装置２０が制御する電動装置として、ランプシャッタ２、電動レボルバ４、電動ステージ５、透過証明用ランプ７、および電動コンデンサ８を示したがこれは例示に過ぎない。
【００６３】
また、上記の実施形態では、情報処理装置２０が顕微鏡１００の電動装置の連動動作を制御する場合を例にしたが、特にこれに限定するものではない。例えば、情報処理装置２０に、顕微鏡以外の装置を制御させるようにしてもかまわない。
【図面の簡単な説明】
【００６４】
【図１】本発明の実施形態の顕微鏡システムの概略構成を説明するための図である。
【図２】本発明の実施形態の情報処理装置２０の機能を説明するための図である。
【図３】本発明の実施形態の顕微鏡システムが行う電動装置の連動動作の処理のフローを説明するための図である。
【符号の説明】
【００６５】
１…蛍光観察用ランプ、２…ランプシャッタ、３…フィルタキューブ、４…電動レボルバ、５…電動ステージ、６…ステージ制御部、７…透過照明用ランプ、８…電動コンデンサ、９…コンデンサ・シャッタ・ランプ制御部、１０…パワーサプライ、１１…通信制御部、１２…レボルバ制御部、１３…ディスプレイ、１４…外部入力装置、２０…情報処理装置、１００…顕微鏡用操作用アプリケーション、１１０…電動装置制御用ＳＤＫ、２００…ＣＰＵ、２０１…ＩＯＩ／Ｆ、２０２…メモリ
【図１】
2007025074.tif 000003
【図２】
2007025074.tif 000004
【図３】
2007025074.tif 000005