説明

情報処理装置、顕微鏡システム

【課題】複数の電動装置を有する顕微鏡システムにおいて、電動装置の連動動作を実現するための開発コストを低減させる。
【解決手段】複数の電動装置を有する顕微鏡100に接続され、電動装置の動作を制御する情報処理装置20であって、電動装置毎に設けられた複数の電動装置制御用SDK(デバイスドライバ)110と、顕微鏡操作用アプリケーション100とを記憶したメモリ202を有し、複数のデバイスドライバ110a〜nは、各々、担当する電動装置を制御した場合、その制御結果を他のデバイスドライバ110に通知し、前記他のデバイスドライバ110からの制御結果の通知を受付けた場合、受付けた制御結果にしたがい担当する電動装置を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、顕微鏡の電動ステージや電動レボルバ等の電動装置の動作を制御する技術に関する。
【背景技術】
【0002】
従来から、電動化された顕微鏡と、顕微鏡からの画像を撮影するカメラと、PC(Personal Computer)とを接続した顕微鏡システムが知られている。この顕微鏡システムでは、利用者がモニタ上でカメラからのライブ画像を観察しながら、顕微鏡の電動ステージ等の電動装置を操作する(例えば、特許文献1)。
【0003】
ところで、PCにより顕微鏡の電動装置を制御する場合には、顕微鏡の電動装置を制御するためのソフトウェア(アプリケーションおよびデバイスドライバ)が必要になる。近年は、顕微鏡操作用のアプリケーションの作成を容易にするために、制御する電動装置毎にSDK(Software Development Kit)と呼ばれるアプリケーションの開発支援ツールが提供されている。このSDKは、通信設定、通信処理、および初期設定等の面倒な処理を自動で行う。そのため、SDKを利用することにより、顕微鏡の電動装置を制御するためのソフトウェアの開発効率を向上させることができる。
【0004】
また、顕微鏡システムでは、顕微鏡に設けられた電動装置を1つ動かすと、その電動装置に連動させて他の電動装置の設定を行う必要が生じることが多い。例えば、対物レンズが切替わる際、ステージと対物レンズがぶつからないようにステージを下げてからレボルバを回す、といった連動動作の制御を行う必要がある。また、対物レンズを切り替えた場合、切り替えた対物レンズに合わせ、コンデンサレンズ、焦点位置(ステージZ方向位置)、透過視野絞り、透過開口絞り、およびNDフィルタの設定を変更する必要が生じることがある。
【0005】
そのため、顕微鏡システムでは、ある電動装置の動きに連動して別の電動装置が動く連動制御を可能にしているものがある。この連動制御を行なう場合、例えば、アプリケーションは、レボルバ制御用のデバイスドライバから対物切替え命令を受け取り、この命令に対応してアプリケーションが、ステージ制御用のデバイスドライバにステージ降下命令を送る。そして、アプリケーションは、制御完了の応答を受け取った後、レボルバに回転命令を送る処理を行う。このような連動制御に対応するため、一つのアプリケーションと、複数のデバイスドライバとから構成され、一つのアプリケーションにより複数の電動装置を操作できる顕微鏡システムが開発されている。この顕微鏡システムでは、上位のアプリケーションが複数のデバイスドライバを介して電動装置を統合管理している。
【0006】
【特許文献1】特開2002−196225号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、複数のデバイスドライバを上位のアプリケーションが統合管理するシステムでは、以下の問題が生じる。具体的には、上述のシステムでは、新たな電動装置を組み込む場合、新たな電動装置を制御するためのデバイスドライバをアプリケーションに組み込み、機能を追加する必要がある。そして、新たに追加する電動装置を既存の他の電動装置と連動動作をさせようとした場合、アプリケーションにおいて、他の電動装置との連動動作を行う連携部分の開発が必要になる。つまり、新たな機能を追加する際、その電動装置を制御するための機能追加だけではなく既存のデバイスドライバとの連携部分の開発も必要となり、アプリケーション開発に時間と手間が必要となる。
【0008】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、複数の電動装置が設置可能な顕微鏡システムにおいて、容易に電動装置の連動動作が可能なシステムを提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために請求項1に係る発明の情報処理装置は、複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、利用者からの前記電動装置の操作要求を受け付ける操作受付手段と、制御を担当する電動装置毎に設けられた、複数のデバイス制御手段と、を有し、前記操作受付手段は、前記電動装置の操作要求を受付けると、該受付けた電動装置の制御を担当する制御手段に、該受付けた操作要求を送信し、前記制御手段は、前記操作受付手段からの前記操作要求を受付けた場合、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信し、前記操作要求の対象となる電動装置からの前記送信した制御命令に対する動作結果を受付けた場合、他のデバイス制御手段に該受付けた制御結果を通知し、さらに、他のデバイス制御手段からの制御結果の通知を受付けた場合、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信する。
【0010】
請求項2に係る情報処理装置は、複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、前記電動装置と通信を行うインタフェースと、前記電動装置毎に設けられた複数のデバイスドライバと、利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムと、が記憶されているメモリと、前記アプリケーションプログラムを実行することにより、利用者からの前記電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行う演算処理装置と、を有し、前記演算装置は、前記デバイスドライバを実行することにより、前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、
前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する連動動作処理と、を行う。
【0011】
請求項3に係る情報処理装置は、請求項2に記載の情報処理装置であって、
前記複数のデバイスドライバは、各々、前記制御結果毎に操作要求の対象となる電動装置の制御内容を対応付けた制御情報を保持していて、前記演算装置は、前記連動動作処理において、前記受付けた制御結果および前記制御情報を用いて、該制御結果に対応する制御内容を特定し、該特定した制御内容の制御命令を生成する。
【0012】
請求項4に係る顕微鏡システムは、複数の電動装置を有する顕微鏡と、該顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置とを有する顕微鏡システムであって、前記情報処理装置は、演算装置と、前記電動装置と通信を行うインタフェースと、メモリとを有し、前記メモリには、前記電動装置毎に設けられた複数のデバイスドライバおよび利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムが記憶されていて、前記演算装置は、前記アプリケーションプログラムを実行することにより、利用者からの電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行い、前記演算装置は、前記デバイスドライバを実行することにより、前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、を行い、前記顕微鏡の電動装置は、前記情報処理装置からの前記制御命令を受付け、該制御命令に対応する動作を行い、動作結果を前記情報処理装置に送信する。
【発明の効果】
【0013】
このように、本発明では、複数の電動装置が設置可能な顕微鏡システムにおいて、容易に電動装置の連動動作が可能なシステムを提供することができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施形態について図面を用いて説明する。
【0015】
最初に、本発明の第1実施形態が適用された顕微鏡システムの概略構成を説明する。
【0016】
図1は、本発明の実施形態の顕微鏡システムの概略構成を説明するための図である。
【0017】
図示するように、顕微鏡システムは、顕微鏡100と、顕微鏡100に接続線300を介して接続している情報処理装置20とを有する。顕微鏡100には、複数の電動装置(図示する例では、ランプシャッタ2、電動レボルバ4、電動ステージ5、透過照明用ランプ7)が設けられている。情報処理装置20には、顕微鏡100に設けられた電動装置を制御するためのプログラムがインストールされている。そして、各電動装置は、情報処理装置20からの操作要求にしたがい動作する。また、情報処理装置20には、顕微鏡100に対する操作を受付けるための操作画面等を表示するディスプレイ13と、利用者からの各種要求を受付けるための外部入力装置14とが接続されている。
【0018】
なお、情報処理装置20には、例えば、PC(Personal Computer)を用いることができる。ディスプレイ13には、液晶表示装置等を用いることができる。また、外部入力装置14には、キーボードやマウス等を用いることができる。以下、顕微鏡100および情報処理装置20の構成について具体的に説明する。
【0019】
先ず、顕微鏡100の構成を説明する。顕微鏡100は、試料の蛍光観察を行う際の照明光源として用いる蛍光観察用ランプ1と、ランプシャッタ2と、フィルタキューブ3と、対物レンズを設定する電動レボルバ4と、電動ステージ5と、電動ステージ5の動作を制御するステージ制御部6と、透過照明用ランプ7と、電動コンデンサ8と、コンデンサ・シャッタ・ランプ制御部9と、パワーサプライ10と、通信制御部11と、電動レボルバ4の動作を制御するレボルバ制御部12とを有する。
【0020】
蛍光観察用ランプ1の電源の「ON/OFF」および光量の調整は、利用者が手動で制御する。ランプシャッタ2は、蛍光観察用ランプ1からの照明を光路に入れるか、或いは、当該照明を遮光するかの制御を行う。具体的には、蛍光観察用ランプ1からの照明は、ランプシャッタ2を「OPEN」にした場合に光路に入射される。一方、蛍光観察用ランプ1からの照明は、ランプシャッタ2を「CLOSE」にした場合に遮光される。なお、ランプシャッタ2の動作は、コンデンサ・シャッタ・ランプ制御部9からの制御信号にしたがい制御される。
【0021】
フィルタキューブ3は、2種類のフィルタ及び1枚のダイクロイックミラーから構成され、特定の波長の光を抽出し、試料(図示しない)から発せられた蛍光とその他の不要な散乱光などを分離して必要な光だけを通す。
【0022】
電動レボルバ4は、複数の対物レンズを保持するレボルバと、レボルバ制御部12からの制御信号を受付け、受付けた制御信号にしたがい複数の対物レンズの中から対応する対物レンズに設定を切り替えるレボルバ駆動部とを有する。レボルバ制御部12は、電動レボルバ4の接続状態を確認し、且つ制御を行う。
【0023】
電動ステージ5は、試料を置くためのステージと、ステージ制御部6からの制御信号を受付け、受付けた制御信号にしたがいステージを動かすステージ駆動部を有する。ステージ制御部6は、電動ステージ5の接続状態を確認し、且つ制御を行う。
【0024】
透過照明用ランプ7は、電動でランプの「ON/OFF」制御と、光量の調整とが制御可能に構成されていて、コンデンサ・シャッタ・ランプ制御部9からの制御信号を受付け、受付けた制御信号にしたがい動作する。
【0025】
電動コンデンサ8は、透過照明用ランプ7の光を調整するためのレンズであり、コンデンサ・シャッタ・ランプ制御部9からの制御信号を受付け、受付けた制御信号にしたがい動作する。具体的には、電動コンデンサ8は、コンデンサ・シャッタ・ランプ制御部9からの制御信号にしたがい、透過照明用ランプ7の光を集めたり、絞りにより弱くしたり、或いは、上下移動させて集光状態を変化させたりする。
【0026】
コンデンサ・シャッタ・ランプ制御部9は、ランプシャッタ2、透過照明用ランプ7、および電動コンデンサ8の接続状態を確認し、制御を行う。
【0027】
通信制御部11は、情報処理装置20との間で行うデータの送受信を制御する。なお、通信制御部11と情報処理装置20とは、例えば、USB(Universal Serial Bus)により接続線300で接続されている。
【0028】
続いて、顕微鏡100の電動装置を制御する情報処理装置20の構成を説明する。情報処理装置20は、各種の処理を実行するCPU(Central Processing Unit:演算装置)200と、ディスプレイ13や顕微鏡100等の外部装置との間で行うデータの送受信を制御するIOI/F201と、メモリ202と、を有する。メモリ202の所定領域には、顕微鏡100の操作を受付けるための顕微鏡操作用アプリケーション100と、電動装置の動作を制御するためのデバイスドライバである電動装置制御用SDK(Software Development Kit)110a〜nと、全ての電動装置制御用SDK110a〜nが内容を理解できる「制御メッセージ」を格納した制御メッセージテーブル(図示しない)とが格納されている。
【0029】
ここで、「制御メッセージ」とは、電動装置110a〜nが行った制御内容を示す情報(制御した電動装置の状態を示す情報)をいう。なお、「制御メッセージ」をGUID(Global Unique Identifier)により表現するようにしてもよい。
【0030】
顕微鏡操作用アプリケーション100は、情報処理装置20に、顕微鏡100を制御する処理を実行させるためのプログラムである。具体的には、顕微鏡操作用アプリケーション100は、利用者からの電動装置の操作要求を受付け、受け付けた電動装置の制御を担当する電動装置制御用SDK110に受付けた操作要求を行う。
【0031】
電動装置制御用SDK110a〜nは、情報処理装置20に、顕微鏡100の電動装置を制御する処理を実行させる。電動装置制御用SDK110a〜nは、制御する電動装置との間で行うデータの送受信のための各種処理(通信設定処理、通信処理、および初期設定等)を行う。なお、本実施形態では、制御を担当する電動装置毎に、電動装置制御用SDK110a〜nが設けられている。例えば、図示する電動装置制御用SDK110aは、顕微鏡100の電動レボルバ4の動作を制御するためのプログラムである。また、電動装置制御用SDK110bは、顕微鏡100の電動ステージ5の動作を制御するためのプログラムである。
【0032】
続いて、本実施形態の情報処理装置20が行う顕微鏡100の電動装置を制御する機能について図2を用いて説明する。
【0033】
図2は、本実施形態の情報処理装置20の機能を説明するための図である。なお、図2では、説明を簡略化するために、情報処理装置20が電動レボルバ4および電動ステージ5だけを制御する場合の例を説明する。
【0034】
さて、情報処理装置20には、上記図1で示した通り、顕微鏡操作用アプリケーション100と、電動レボルバ4を制御するための電動装置制御用SDK(電動レボルバ用)110aと、電動ステージ5を制御するための電動装置制御用SDK(電動ステージ用)110bと、制御メッセージテーブル(図示しない)と、が格納されている。
【0035】
なお、図2で説明する処理は、情報処理装置20のCPU200が各プログラム(顕微鏡操作用アプリケーション100、電動装置制御用SDK110a〜b)を実行することにより実現されるものである。しかしながら、以下では、各処理を担当するプログラムを明確にするために、各プログラム(顕微鏡操作用アプリケーション100、電動装置制御用SDK(電動レボルバ用)110a、電動装置制御用SDK(電動ステージ用)110b、)を動作主体として記載する。
【0036】
顕微鏡操作用アプリケーション100は、顕微鏡100の操作を受付けるための操作画面をディスプレイ13に表示する。顕微鏡操作用アプリケーション100は、利用者が操作画面にしたがい外部入力装置14を介して入力する顕微鏡100の操作要求(例えば、電動ステージ5を移動させる要求)を受付ける。また、顕微鏡操作用アプリケーション100は、受付けた操作要求がどの電動装置(電動レボルバ4および電動ステージ5のいずれか)に対するものかを判定する。顕微鏡操作用アプリケーション100は、判定した電動装置の制御を担当する電動装置制御用SDK110(電動装置制御用SDK110a、および電動装置制御用SDK110bのいずれか)に受付けた操作要求を出力する。
【0037】
電動装置制御用SDK110aは、顕微鏡操作用アプリケーション100からの電動レボルバ4を制御する操作要求を受付け、顕微鏡100の電動レボルバ4を制御する。
【0038】
具体的には、電動装置制御用SDK110aは、顕微鏡操作用アプリケーション100からの電動レボルバ4を制御する操作要求を受付け、受付けた操作要求にしたがい対応する制御命令を生成する。電動装置制御用SDK110aは、生成した制御命令をIOI/F201(図1参照)を介して顕微鏡100のレボルバ制御部12に送信する。その結果、顕微鏡100のレボルバ制御部12により電動レボルバ4が制御される(例えば、利用者の要求した対物レンズになるようにレボルバの設定を切り替える)。なお、顕微鏡100のレボルバ制御部12は、電動装置制御用SDK110aからの要求にしたがい電動レボルバ4を設定し、その設定が終了した場合に、電動レボルバ4の状態が変更した旨の通知(動作結果)を電動装置制御用SDK110aに送信する。
【0039】
また、電動装置制御用SDK110bは、顕微鏡操作用アプリケーション100からの電動ステージ5を制御する操作要求を受付け、顕微鏡100のステージ制御部6を介して電動ステージ5を制御する。
【0040】
具体的には、電動装置制御用SDK110bは、顕微鏡操作用アプリケーション100からの電動ステージ5を制御する操作要求を受付け、受付けた操作要求にしたがい対応する制御命令を生成する。電動装置制御用SDK110bは、生成した制御命令をIOI/F201(図1参照)を介して顕微鏡100のステージ制御部6に送信する。その結果、顕微鏡100のステージ制御部6により電動ステージ5が制御される(例えば、利用者の要求する位置に電動ステージを移動する)。なお、顕微鏡100のステージ制御部6は、電動装置制御用SDK110bからの要求にしたがい電動ステージ5を設定し、その設定が終了した場合に、電動ステージ5の状態が変更した旨の通知(動作結果)を電動装置制御用SDK110bに送信する。
【0041】
また、本実施形態では、電動装置制御用SDK110aおよび電動装置制御用SDK110bは、相互に通信を行う。電動装置制御用SDK110a(電動装置制御用SDK110b)は、自身が制御する電動装置の設定状態が変更した場合(担当する電動装置を制御した場合)、その制御内容を示す「制御メッセージ」を電動装置制御用SDK110b(電動装置制御用SDK110a)に送信する。なお、電動装置制御用SDK110は、他の電動装置制御用SDK110と通信を行う際、メモリ202に格納されている制御メッセージテーブルを参照し、通信先の電動装置制御用SDK110が理解できるデータ形式の「制御メッセージ」を作成して送信する。また、電動装置制御用SDK110は、他の電動装置制御用SDK110からの「制御メッセージ」を受信した場合、受信した「制御メッセージ」の内容により、自身が制御している電動装置を連動動作させる必要があるか否かを判定し、必要に応じて(連動動作させる必要があると判定した場合)、顕微鏡操作用アプリケーション100を介さず、顕微鏡100の電動装置の連動動作を行う。
【0042】
電動装置の連動動作とは、顕微鏡操作用アプリケーション100が受付けた1台の電動装置の動作に対応させて動作させる必要がある、他の電動装置の動作をいう。例えば、電動装置の一つである電動レボルバ4を動作させて対物レンズを切り替えた場合、切り替えた対物レンズに合わせ、他の電動装置(例えば、電動ステージ5、電動コンデンサ8、透過証明用ランプ9)の設定を変更する場合をいう。この場合、情報処置装置20は、電動レボルバ4を動作させた後、電動ステージ5、電動コンデンサ8、および透過照明用ランプ7を動作させ、切り替えた対物レンズに対応する設定に顕微鏡100を変更する。
【0043】
続いて、本実施形態の顕微鏡システムが行う電動装置の連動動作について図3を用いて説明する。
【0044】
図3は、本発明の実施形態の顕微鏡システムが行う電動装置の連動動作の処理のフローを説明するための図である。なお、以下では、説明を簡略化するために、電動装置の連動動作以外の処理の説明を省略する。
【0045】
また、以下の処理は、上述した図2と同様、情報処理装置20のCPU200が各プログラム(顕微鏡操作用アプリケーション100、電動装置制御用SDK110a〜n)を実行することにより実現されるものである。しかしながら、以下では、各処理を担当するプログラムを明確にするために、各プログラム(顕微鏡操作用アプリケーション100、電動装置制御用SDK110a〜n)を動作主体として記載する。また、情報処理装置20には、少なくとも1つの電動装置制御用SDK110がインストールされていることとする。
【0046】
先ず、利用者が顕微鏡100のパワーサプライ10および情報処理装置20の電源をONにして、顕微鏡システムを起動させる。その後、顕微鏡操作用アプリケーション100が起動されて、以下のフローが開始される。
【0047】
顕微鏡操作用アプリケーション100は、利用者からの電動装置に対する操作要求を受付け、その受け付けた電動装置制御用SDK110を起動させ(S100)、S101の処理に進む。ここで、顕微鏡操作用アプリケーション100は、受け付けた電動装置制御用SDK110を起動させる際、情報処理装置20にインストールされている他の電動装置制御用SDK110も、共に起動させる。本ステップ(S100)で起動された電動装置制御用SDK110は、各々、以下のS101〜106、S110の処理を行う。なお、S101〜106、S110の説明では、説明の便宜上、S100で起動された電動装置制御用SDK110の中の1つの電動装置制御用SDK110(以下、本フローの説明において「特定SDK」と呼ぶ)が行う処理を代表して説明する。
【0048】
S101では、「特定SDK」は、他の電動装置制御用SDK110(「特定SDK」以外の電動装置制御用SDK)が起動しているか否かの確認を行う。確認の結果、「特定SDK」は、他の電動装置制御用SDK110が起動していることを確認した場合、S102の処理に進む。一方、本フローチャートは、顕微鏡100に設けられた電動装置の連動動作に限定したものであるため、起動している他の電動装置制御用SDK110が見当たらなければ、処理を終了する。ここで、起動している他の電動装置制御用SDK110が見当たらない場合とは、S100において、「特定SDK」以外の電動装置制御用SDK110が起動されなかった場合、つまり、情報処理装置20に「特定SDK」以外の電動装置制御用SDK110がインストールされていない場合をいう。
【0049】
S102では、「特定SDK」は、イベント監視・取得用のスレッドオブジェクトを生成し、S103の処理に進む。
【0050】
S103では、「特定SDK」は、S102で生成したスレッドオブジェクトにより、イベントチェックを行う。具体的には、「特定SDK」は、自身が制御を行なっている電動装置の状態が変化したか否かの監視と、他の電動装置制御用SDK110が送信する状態変更を示す「制御メッセージ」を受信したか否かの監視と、を行う。そして、「特定SDK」は、自身が制御を行なっている電動装置の状態が変化したと判定した場合、S110に進む。また、「特定SDK」は、他の電動装置制御用SDK110からの「制御メッセージ」を受信した場合、S104に進む。なお、本ステップでは、「特定SDK」は、他の電動装置制御用SDK110からの「制御メッセージ」を取得するまで、または、自身が制御を行なっている電動装置の状態変化を検知するまで待機する。
【0051】
ここで、上記の自身が制御を行っている電動装置の状態が変化したか否かの判定は、例えば、顕微鏡100からの状態変化を示す「動作結果」を受信したか否かにより行なう。具体的には、顕微鏡100は、電動装置制御用SDK110からの制御命令に対する電動装置の操作が完了した場合、「動作結果」を電動装置制御用SDK110(制御命令を送信した電動装置制御用SDK110)に送信する。電動装置制御用SDK110は、顕微鏡100からの「動作結果」をIOI/F201を介して受信した場合、自身が制御を行なっている電動装置の状態が変化したと判定する。
【0052】
S110では、「特定SDK」は、メモリ202に格納されている「制御メッセージテーブル」を参照し、自身が担当する電動装置に対して行った制御内容を示す「制御メッセージ」を作成する。「特定SDK」は、作成した「制御メッセージ」をS101で確認した自分以外の全ての電動装置制御用SDK110に送信し、S103の処理に戻る。
【0053】
続いて、S103において、他の電動装置制御用SDK110からの「制御メッセージ」を受信した場合に進むS104の処理について説明する。
【0054】
S104では、「特定SDK」は、「制御メッセージテーブル」を参照し、S103で取得した他の電動装置制御用SDK110からの「制御メッセージ」の内容のチェックを行い、自身が制御する電動装置を連動動作させる必要があるか否かの判定を行う。なお、電動装置制御用SDK110は、各々、制御メッセージ毎に自身が制御する電動装置の動作内容を対応付けた「制御判定情報(電動装置を動作させないことを示す情報、具体的な動作内容を示す情報等)」を保持しているものとする。そして、「特定SDK」は、上記制御判定情報を用いて制御メッセージの内容のチェック行う。「特定SDK」は、連動動作を行なう必要があると判定した場合、S105へ進み、連動動作を行なう必要の無いと判定した場合、S103の処理に戻る。
【0055】
なお、「制御判定情報」を電動装置制御用SDK110の各々に保持させるのではなく、メモリ202の所定領域に格納しておくようにしてもよい。この場合、電動装置制御用SDK110は、他の電動装置制御用SDK110から制御メッセージを受付けた際、メモリ202に格納されている「制御判定情報」を参照して、連動動作を行なう必要があるか否かの判定を行う。
【0056】
S105では、「特定SDK」は、S104で判定した連動動作のための制御命令を生成し、生成した制御命令をIOI/F201を介して顕微鏡100の電動装置に送信する。「特定SDK」は、制御命令を送信後、顕微鏡100からの応答(制御命令に対応する「動作結果」))があるまで待機する。「特定SDK」は、顕微鏡100からの応答(動作結果)を受信したら、S103の処理に戻り(S106)、上述したS103〜S106の処理を繰返す。なお、S106の処理の後、上述したS110と同様の処理を行うようにしてもよい。
【0057】
本実施形態では、電動装置制御用SDK110は、自身が担当する電動装置を制御した場合、その制御内容を示す「制御メッセージ」を他の電動装置制御用SDK110に通知する。また、電動装置制御用SDK110は、他の電動装置制御用SDK110からの「制御メッセージ」を受付けた場合、自身が制御している電動装置の連動動作を行う必要があるか否かを判定する。そして、電動装置制御用SDK110は、連動動作を行う必要があると判定した場合、自身が制御している電動装置を連動動作させる。
【0058】
このように構成することにより、顕微鏡操作用アプリケーション100が、電動装置間の連携動作を管理する必要がなくなる。具体的には、顕微鏡操作用アプリケーション100は、電動装置制御用SDK110の制御結果の内容から連動動作が必要であるか否かを判定する必要がない。また、顕微鏡操作用アプリケーション100は、連動動作を指示するコマンドを生成し、担当する電動装置制御用SDK110に送信する等の処理をする必要がない。そのため、本実施形態によれば、顕微鏡操作用アプリケーション100の開発の手間を低減することができる。
【0059】
また、本実施形態では、電動装置制御用SDK110は、共通の制御メッセージを他の電動装置制御用SDK110に通知できるようにしておけばよく、他の電動装置制御用SDK110毎の制御命令を生成する必要はない。すなわち、本実施形態の電動装置制御用SDK110は、他の電動装置制御用SDK110の規格等を意識することなく作成することができる。そのため、電動装置を連動動作させる顕微鏡システム全体の開発コストを低減することができる。
【0060】
また、本実施形態によれば、電動装置が設けられた顕微鏡システムに、新たな電動装置を追加する場合、顕微鏡操作用アプリケーション100は、既存の電動装置と追加する電動装置との間の連携について考慮する必要がない。そのため、本実施形態によれば、既存の顕微鏡システムに新たに電動装置を追加する場合であっても、電動装置を追加するために必要な手間を軽減することができる。特に、近年は、電動装置のモジュール化が進み、利用者毎に異なる電動装置を組み込んだ顕微鏡が利用されるようになってきている。また、利用者が顕微鏡に新たな電動装置を追加することも多く行われるようになってきている。したがって、本実施形態のように、電動装置制御用SDK110に電動装置の連動動作を制御する機能を設けるようにしておけば、顕微鏡システムに新たな電動装置を追加する際の手間およびコストを軽減することができる。
【0061】
また、本実施形態によれば、電動装置の連動動作を、顕微鏡操作用アプリケーション100を介さず行うことができる。そのため、本実施形態によれば、複数の電動装置を有する顕微鏡システムにおいて、電動装置の連動動作の処理を高速化することができる。
【0062】
なお、本発明は以上で説明した実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形が可能である。例えば、本実施形態では、情報処理装置20が制御する電動装置として、ランプシャッタ2、電動レボルバ4、電動ステージ5、透過証明用ランプ7、および電動コンデンサ8を示したがこれは例示に過ぎない。
【0063】
また、上記の実施形態では、情報処理装置20が顕微鏡100の電動装置の連動動作を制御する場合を例にしたが、特にこれに限定するものではない。例えば、情報処理装置20に、顕微鏡以外の装置を制御させるようにしてもかまわない。
【図面の簡単な説明】
【0064】
【図1】本発明の実施形態の顕微鏡システムの概略構成を説明するための図である。
【図2】本発明の実施形態の情報処理装置20の機能を説明するための図である。
【図3】本発明の実施形態の顕微鏡システムが行う電動装置の連動動作の処理のフローを説明するための図である。
【符号の説明】
【0065】
1…蛍光観察用ランプ、2…ランプシャッタ、3…フィルタキューブ、4…電動レボルバ、5…電動ステージ、6…ステージ制御部、7…透過照明用ランプ、8…電動コンデンサ、9…コンデンサ・シャッタ・ランプ制御部、10…パワーサプライ、11…通信制御部、12…レボルバ制御部、13…ディスプレイ、14…外部入力装置、20…情報処理装置、100…顕微鏡用操作用アプリケーション、110…電動装置制御用SDK、200…CPU、201…IOI/F、202…メモリ

【特許請求の範囲】
【請求項1】
複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、
利用者からの前記電動装置の操作要求を受け付ける操作受付手段と、
制御を担当する電動装置毎に設けられた、複数のデバイス制御手段と、を有し、
前記操作受付手段は、
前記電動装置の操作要求を受付けると、該受付けた電動装置の制御を担当する制御手段に、該受付けた操作要求を送信し、
前記制御手段は、
前記操作受付手段からの前記操作要求を受付けた場合、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信し、
前記操作要求の対象となる電動装置からの前記送信した制御命令に対する動作結果を受付けた場合、他のデバイス制御手段に該受付けた制御結果を通知し、さらに、
他のデバイス制御手段からの制御結果の通知を受付けた場合、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に送信すること
を特徴とする情報処理装置。
【請求項2】
複数の電動装置を有する顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置であって、
前記電動装置と通信を行うインタフェースと、
前記電動装置毎に設けられた複数のデバイスドライバと、利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムと、が記憶されているメモリと、
前記アプリケーションプログラムを実行することにより、利用者からの前記電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行う演算処理装置と、を有し、
前記演算装置は、前記デバイスドライバを実行することにより、
前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、
前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、
前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する連動動作処理と、を行うこと
を特徴とする情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記複数のデバイスドライバは、各々、
前記制御結果毎に操作要求の対象となる電動装置の制御内容を対応付けた制御情報を保持していて、
前記演算装置は、前記連動動作処理において、
前記受付けた制御結果および前記制御情報を用いて、該制御結果に対応する制御内容を特定し、該特定した制御内容の制御命令を生成すること
を特徴とする情報処理装置。
【請求項4】
複数の電動装置を有する顕微鏡と、該顕微鏡に接続され、前記電動装置の動作を制御する情報処理装置とを有する顕微鏡システムであって、
前記情報処理装置は、演算装置と、前記電動装置と通信を行うインタフェースと、メモリとを有し、
前記メモリには、前記電動装置毎に設けられた複数のデバイスドライバおよび利用者から前記電動装置の操作要求を受け付けるアプリケーションプログラムが記憶されていて、
前記演算装置は、前記アプリケーションプログラムを実行することにより、
利用者からの電動装置の操作要求を受け付ける処理と、該受付けた電動装置の操作要求を対象の電動装置の制御を実行中の前記デバイスドライバに送信する処理と、を行い、
前記演算装置は、前記デバイスドライバを実行することにより、
前記実行中のアプリケーションプログラムからの操作要求を受付け、操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を該操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、
前記操作要求の対象となる電動装置からの前記制御命令に対する動作結果を、前記インタフェースを介して受信した場合、実行中の他の前記デバイスドライバに該電動装置の制御結果を通知する処理と、
前記他のデバイスドライバからの制御結果の通知を受付け、該受付けた制御結果にしたがい操作要求の対象となる電動装置を制御するための制御命令を生成し、該生成した制御命令を操作要求の対象となる電動装置に前記インタフェースを介して送信する処理と、を行い、
前記顕微鏡の電動装置は、
前記情報処理装置からの前記制御命令を受付け、該制御命令に対応する動作を行い、動作結果を前記情報処理装置に送信すること
を特徴とする顕微鏡システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate