(57)【要約】【課題】  眼科機器の梱包姿勢と検眼姿勢の切り替えを効率よくする。【解決手段】  眼科機器と制御用ＰＣとのＵＳＢ通信が途絶えた際に、眼科機器を検眼姿勢から梱包姿勢に切り替える。眼科機器と制御用ＰＣとがＵＳＢ通信している場合も、一定時間操作がなければ、検眼姿勢から梱包姿勢に切り替える。眼科機器の電源をＯＦＦする際に、予備電源を眼科機器本体に備えておいて、その予備電源を使って、検眼姿勢から梱包姿勢に変更する。【選択図】  図８
2014045900.tif 000002
【特許請求の範囲】
【請求項１】
切り離し可能な制御装置によって制御される眼科装置であって、
前記制御装置の指示に応じて被検眼の画像を撮像する光学ヘッドユニット部と、
前記被検眼に対して前記光学ヘッドユニット部を駆動する光学ヘッドユニット駆動部と、
前記制御装置の指示に応じて前記被検眼の高さを規定する顎受けユニット部と、
前記光学ヘッドユニット部に対して前記顎受けユニット部を駆動する顎受けユニット駆動部と、
前記制御装置とは異なる副制御装置と、
眼科装置の状態を判定する状態判定手段と、を有し、
前記副制御装置は、前記状態判定手段の判定結果に応じて、前記光学ヘッドユニット駆動部及び前記顎受けユニット駆動部により前記光学ヘッドユニット部及び前記顎受けユニット部を、第一の所定位置及び前記第一の所定位置とは異なる第二の所定位置の何れかの位置までの駆動を実行する、ことを特徴とする眼科装置。
【請求項２】
前記状態判定手段は、前記眼科装置への電源の入切の有無を判定する入切判定手段と、タイマと、を有し、
前記副制御装置は、前記入切判定手段による電源切りの判定に応じて、前記タイマにより指定された期間電源の切り動作を保留した後に前記光学ヘッドユニット部及び前記顎受けユニット部の前記第一の所定位置までの駆動を行うことを特徴とする請求項１に記載の眼科装置。
【請求項３】
前記状態判定手段は、前記制御装置と前記眼科装置との通信状態が確保されているか否かを判定する通信判定手段を有し、
前記副制御装置は、前記通信状態が確保されていないと前記通信判定手段が判定した場合において、前記眼科装置への電源の切り操作と前記光学ヘッドユニット部及び前記顎受けユニット部の前記第一の所定位置までの駆動とを行うことを特徴とする請求項１又は２に記載の眼科装置。
【請求項４】
前記状態判定手段はタイマを有し、
前記状態判定手段が前記制御装置から前記眼科装置への操作信号の通信がないと判定した状態で前記タイマが第一の期間、カウントした場合に、前記副制御装置は前記光学ヘッドユニット部及び前記顎受けユニット部の前記第二の所定位置までの駆動を行い、
前記タイマが前記第一の期間より長い第二の期間、カウントした場合に、前記副制御装置は前記光学ヘッドユニット部及び前記顎受けユニット部の前記第一の所定位置までの駆動を行うことを特徴とする請求項１に記載の眼科装置。
【請求項５】
切り離し可能な制御装置によって制御され、被検眼の画像を撮像する光学ヘッドユニット部及び撮像する時の前記光学ヘッドユニット部に対する前記被検眼の高さを規定する顎受けユニット部を有する眼科装置の制御方法であって、
前記眼科装置と前記制御装置との通信の状態を判定し、
前記通信の状態の判定結果に応じて、前記眼科装置の有する副制御装置により前記光学ヘッドユニット部及び前記顎受けユニット部を第一の所定位置及び前記第一の所定位置とは異なる第二の所定位置の何れかの位置までの駆動を実行する、ことを特徴とする眼科装置の制御方法。
【請求項６】
前記眼科装置への電源の入切の有無を判定し、
前記副制御装置は、前記入切判定手段による電源切りの判定に応じて、指定された期間電源の切り動作を保留した後に前記光学ヘッドユニット部及び前記顎受けユニット部の前記第一の所定位置までの駆動を行うことを特徴とする請求項５に記載の眼科装置の制御方法。
【請求項７】
前記制御装置と前記眼科装置との通信状態が確保されているか否かを判定し、
前記副制御装置は、前記通信状態が確保されていないと判定した場合において、前記眼科装置への電源の切り操作と前記光学ヘッドユニット部及び前記顎受けユニット部の前記第一の所定位置までの駆動とを行うことを特徴とする請求項５又は６に記載の眼科装置の制御方法。
【請求項８】
前記制御装置から前記眼科装置への操作信号の通信がないと判定した状態で第一の期間が計測された場合に、前記副制御装置は前記光学ヘッドユニット部及び前記顎受けユニット部の前記第二の所定位置までの駆動を行い、
前記第一の期間より長い第二の期間が計測された場合に、前記副制御装置は前記光学ヘッドユニット部及び前記顎受けユニット部の前記第一の所定位置までの駆動を行うことを特徴とする請求項５に記載の眼科装置の制御方法。
【請求項９】
請求項５乃至８の何れか一項に記載の眼科装置の制御方法の各工程をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、眼科装置及び該眼科装置における姿勢制御の方法に関するものである。
【背景技術】
【０００２】
近年の眼科装置は、診断を支援するための様々な機能が組み込まれるとともに、測定が自動化される傾向にある。
【０００３】
機能が増えると、本体部の操作部材も増える傾向にある。操作部材の増加と反比例の関係にあるのが本体部の大きさである。本体の操作部は検者の手で操作する。したがって、操作部を小さくするのにも限界がある。そのために、操作部材の数に比例して操作部ユニットも大きくなる。操作部ユニットが大きくなるとその大きさで本体のサイズが決まる場合もある。このために、操作部材が増加すると本体部から操作部を切り離し、操作部をケーブル等で本体に接続することによって本体部をコンパクトにする場合もある。（特許文献１参照）あるいは、本体部の操作部材を無くして、制御用のPersonal Computer（PC）と接続し、前記PCのGraphical User Interface（GUI）から操作する方式もある。操作部がGUI方式の場合は、ポインティングデバイスで操作できればよい。したがって、操作部の配置がハードで作る以上に密に配置できる。そして、本体部は操作部がなくなるために非常にシンプルになる。
【０００４】
測定の自動化では、本体部の駆動を電動化する必要がある。この電動化で本体の電源が切られていると本体部の姿勢を手動で変更することができなくなった。この制約条件により、検眼時の待機姿勢と本体を梱包して輸送する際の姿勢を効率よく切り替え出来ないと検眼時や運搬時に不都合が生じる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許３５０７２０４
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、検眼時の待機姿勢の例しか示されていない。したがって、本体の電源あるいは制御用のPCの電源などをOFFすると、従来のように本体部の姿勢を自由に変えられない。したがって、再度電源をONしてから本体を梱包して輸送する際の姿勢にする必要がある。姿勢制御に制御用PCと接続する方式の本体だと、PCの電源をOFFした場合は、再度PCをONしてOSを起動させて、本体の姿勢を変更する必要がある。その際に、PCにインストールされたOSの再起動には時間がかかる。さらには、前記のケーブル類を外してから梱包時の姿勢に変更する必要に気付いた場合は、ケーブル類を再接続するために、OSの起動時間以上の時間を浪費することになる。
【０００７】
本発明は、上記の問題点を解消するために案出されたものであって、効率よく検眼時の姿勢と梱包時の姿勢を切り替えられる眼科装置及び眼科装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る眼科装置は、切り離し可能な制御装置によって制御される眼科装置であって、
前記制御装置の指示に応じて被検眼の画像を撮像する光学ヘッドユニット部と、
前記被検眼に対して前記光学ヘッドユニット部を駆動する光学ヘッドユニット駆動部と、
前記制御装置の指示に応じて前記被検眼の高さを規定する顎受けユニット部と、
前記光学ヘッドユニット部に対して前記顎受けユニット部を駆動する顎受けユニット駆動部と、
前記制御装置とは異なる副制御装置と、
眼科装置の状態を判定する状態判定手段と、を有し、
前記副制御装置は、前記状態判定手段の判定結果に応じて、前記光学ヘッドユニット駆動部及び前記顎受けユニット駆動部により前記光学ヘッドユニット部及び前記顎受けユニット部を、第一の所定位置及び前記第一の所定位置とは異なる第二の所定位置の何れかの位置までの駆動を実行する、ことを特徴とする。
【０００９】
また、本発明に係る眼科装置の制御方法は、切り離し可能な制御装置によって制御され、被検眼の画像を撮像する光学ヘッドユニット部及び撮像時の前記光学ヘッドユニット部に対する前記被検眼の高さを規定する顎受けユニット部を有する眼科装置の制御方法であって、
前記眼科装置と前記制御装置との通信の状態を判定し、
前記通信の状態の判定結果に応じて、前記眼科装置の有する副制御装置により前記光学ヘッドユニット部及び前記顎受けユニット部を第一の所定位置及び前記第一の所定位置とは異なる第二の所定位置の何れかの位置までの駆動を実行する、ことを特徴とする。
【発明の効果】
【００１０】
本発明に係る眼科装置は、効率よく検眼時の姿勢と梱包時の姿勢を切り替えられる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１に係る眼科装置のブロック図である。
【図２】本発明の実施例１に係る眼科装置を制御する制御用PCのブロック図である。
【図３】本実施例に係る眼科装置の外観斜視図である。
【図４】本実施例に係る制御用PCの斜視図である。
【図５】GUIアプリケーションソフト（GUIアプリ）の画面である。
【図６】光学ヘッド部の操作方法の詳細を説明する図である。
【図７】顎受けユニット部の動作を実行するフローチャートを示す図である。
【図８】XYZユニットの動作を説明するためのアクティビティ図である。
【図９】定義済み処理SUB1の動作を説明するためのアクティビティ図である。
【図１０】定義済み処理SUB2の動作を説明するためのアクティビティ図である。
【図１１】定義済み処理SUB3の動作を説明するためのアクティビティ図である。
【図１２】定義済み処理SUB4の動作を説明するためのアクティビティ図である。
【図１３】定義済み処理SUB5の動作を説明するためのアクティビティ図である。
【図１４】定義済み処理SUB6の動作を説明するためのアクティビティ図である。
【図１５】定義済み処理SUB7の動作を説明するためのアクティビティ図である。
【図１６】定義済み処理SUB8の動作を説明するためのアクティビティ図である。
【図１７】定義済み処理SUB9の動作を説明するためのアクティビティ図である。
【図１８】定義済み処理SUB10の動作を説明するためのアクティビティ図である。
【図１９】定義済み処理SUB11の動作を説明するためのアクティビティ図である。
【図２０】定義済み処理SUB12の動作を説明するためのアクティビティ図である。
【図２１】定義済み処理SUB13の動作を説明するためのアクティビティ図である。
【図２２】定義済み処理SUB14の動作を説明するためのアクティビティ図である。
【図２３】定義済み処理SUB15の動作を説明するためのアクティビティ図である。
【図２４】定義済み処理SUB16の動作を説明するためのアクティビティ図である。
【図２５】定義済み処理SUB17の動作を説明するためのアクティビティ図である。
【図２６】定義済み処理SUB18の動作を説明するためのアクティビティ図である。
【図２７】定義済み処理SUB19の動作を説明するためのアクティビティ図である。
【図２８】定義済み処理SUB20の動作を説明するためのアクティビティ図である。
【図２９】定義済み処理SUB21の動作を説明するためのアクティビティ図である。
【図３０】定義済み処理SUB22の動作を説明するためのアクティビティ図である。
【図３１】定義済み処理SUB23の動作を説明するためのアクティビティ図である。
【図３２】定義済み処理SUB24の動作を説明するためのアクティビティ図である。
【図３３】定義済み処理SUB25の動作を説明するためのアクティビティ図である。
【図３４】本発明の実施例2に係る眼科装置に関し、実施例１に示した眼科装置との相違点をブロック図として示す図である。
【図３５】実施例2に係る眼科装置のアクティビティ図である。
【発明を実施するための形態】
【００１２】
［実施例１］
実施例１の眼科装置について、図１、図２に基づき説明する。図１は、眼科装置のブロック図である。図２は、眼科装置で得られる光学信号の処理と装置の姿勢を制御するための制御装置であるPCのブロック図である。
【００１３】
101は、前眼像、眼底像および眼部の断層像を撮像する眼科装置の正面図である。102は、前記正面図101の座標系である。103は、正面図101の側面図である。104は、前記側面図103の座標系である。
105は、光学ヘッドユニット部（以下光学ヘッド部と称する。）である。光学ヘッドユニット部105は、不図示の被検眼の光学情報を、電子データあるいは光干渉信号に変換し、後述するPC156からの指示に応じて該被検眼の画像を撮像するためのユニットである。不図示の対物レンズから被検眼の光学情報を取り込み、前記光学情報をハーフミラーなどで分割して、前記の前眼像、眼底像および眼部の断層像を同時に観察している。不図示の被検眼の前眼部の光学情報は、例えば不図示のCharge Coupled Device Image Sensor（CCD）などの固体撮像素子ユニットで電子データに変換される。不図示の被検眼の眼底部の光学情報は、例えば不図示のScanning Laser Ophthalmoscope（SLO）ユニットなどで光干渉信号に変換される。不図示の被検眼の眼部の断層像は、不図示の光ファイバーユニットにより干渉信号に変換される。
106は、光学ヘッド部105、XYZユニット部108および顎受けユニット部107を支えるベースユニット部である。ベースユニット部106には、USBハブユニット137、CPUユニット136、電源ユニット138、ラインセンサユニット139で構成されている。
【００１４】
電源は、AC電源を電源コード149により、ACインレット148、電源スイッチ150を経由して、配線143にて電源ユニット138にAC電源を供給している。電源ユニット138は、AC電源をDC電源に変換して、CPUユニット136を経由して、光学ヘッドユニット部105内の不図示の駆動部や電気的な処理をしているユニットへDC電源を供給している。
【００１５】
ラインセンサユニット139を説明する前にカメラリンクという言葉について説明しておく。カメラリンクとは、産業用デジタルカメラと画像入力ボードを接続する規格仕様である。規格仕様の策定は、米国の自動化イメージング協会がしている。
ラインセンサユニット139は、光学ヘッドユニット部105から送られてくる被検眼の断層像の光干渉信号を不図示の導波路にて分光し、波長毎の光の強さを測定して電子データ化するユニットである。ラインセンサユニット139の配線140はカメラリンクコネクタ145に、配線141はカメラリンクコネクタ146に、配線142はカメラリンク同期コネクタ147と接続されている。
【００１６】
カメラリンクコネクタ145、カメラリンクコネクタ146、カメラリンク同期コネクタ147からPC156への接続を説明する前に、157の説明を先にしておく。157は、PC156の不図示のPeripheral Component Interconnect（PCI）スロットに挿入されたカメラリンクボードである。カメラリンクボード157は、カメラリンクコネクタが２個（157（a）、157（b））とカメラリンク同期コネクタ157（c）マウントされている。
【００１７】
コネクタケーブル152は、カメラリンクコネクタ145とカメラリンクボード157（a）へ接続するためのケーブルである。
コネクタケーブル153は、カメラリンクコネクタ146とカメラリンクボード157（b）へ接続するためのケーブルである。
コネクタケーブル154は、カメラリンク同期コネクタ147からカメラリンク同期コネクタ157(c)へ接続するためのケーブルである。
【００１８】
CPUユニット136は、以下の機能を有している。
１．不図示のCCDで撮像された不図示の被検者の前眼部の画像信号をUSBハブユニット137に転送する。
２．GUIインターフェースからの制御信号に基づいて、XYZユニット108の駆動部やセンサ部の制御をする。
３．不図示のリアルタイムクロック回路（Real Time Clock）にて、時間をカウントする。
【００１９】
また、CPUユニット136は、前述したPCとは異なる本発明における副制御装置としての機能を有するモジュール領域と、PCとの通信状態を含めた眼科装置の状態を判定する状態判定手段として機能するモジュール領域と、を有する。
137はUSBハブユニットである。USBハブユニット137は、PC156から送出されてきた、XYZの制御信号をCPUユニット136へ、CPUユニット136から送出された前眼部の画像信号をPC156へ、それぞれ転送する。
144は配線である。配線144はUSBハブユニット137とUSBコネクタ端子151を接続するケーブルである。
155は、USBコネクタケーブルである。USBコネクタケーブル155は、USBコネクタ端子151とUSBコネクタ端子161とを接続するためのケーブルである。
【００２０】
図５は、GUIアプリケーションソフト（GUIアプリ）の画面である。前記GUIアプリは、後述するPC156の不図示のOS上で動作するアプリケーションソフトである。510は後述するディスプレイ160の表示部である。501は、マウスカーソルである。マウスカーソル501は、後述するマウス162によって操作される。503は、顎受けユニット部107を下げるボタンである。507は、被検眼の前眼部表示領域である。この表示領域をクリックすると、クリックした領域に応じて、光学ヘッド部105がX，Y方向へ動く。詳細は図６で説明する。
【００２１】
図６は、図５で説明した前眼部表示領域507である。607と608は、2点鎖線である。2点鎖線の交点部が602である。602は、前眼部表示領域507の中央部である。601は、X-Y座標であり、図１の104と対応している。前眼部表示領域507を2点鎖線607と608で分割すると、603、604、605、606の領域に分けることができる。602をX-Y座標系の原点とすると、603は、＋X、＋Y領域である。603の領域をクリックすると光学ヘッド部105は＋X、＋Y方向へ所定の距離だけ移動する。604は、＋X、−Y領域である。604領域をクリックすると光学ヘッド部105は＋X，−Y方向に所定の距離だけ移動する。605は、−X、−Y領域である。605の領域をクリックすると光学ヘッド部105は−X，−Y方向に所定の距離だけ移動する。606は、−X、＋Y領域である。606の領域をクリックすると光学ヘッド部105は−X，＋Y方向に所定の距離だけ移動する。608上の＋X領域をクリックすると光学ヘッド部105は＋X方向へ所定の距離だけ移動する。608上の−X領域をクリックすると光学ヘッド部105は−X方向へ所定の距離だけ移動する。607上の＋Y領域をクリックすると光学ヘッド部105は＋Y方向へ所定の距離だけ移動する。607上の−Y領域をクリックすると光学ヘッド部105は−Y方向へ所定の距離だけ移動する。
【００２２】
506は、光学ヘッド部105をZ+方向へ移動させるためのボタンである。505は、光学ヘッド部106をZ-方向へ移動させるためのボタンである。
504は、不図示被検眼の眼底部の表示領域である。511は、断層ラインで、このライン上の断層像を508で表示している。508は、不図示被検眼の511の断面で切断した断層像の表示領域である。509は、記録ボタンで、押下すると、被検眼のデータを不図示の記録装置に保存する。顎受け部107とXYZユニット108の動作フローなどに関しては後述する。
【００２３】
156はPCである。不図示のOperating Soft（OS）がインストールされており、検者が眼科装置を操作するためのGUIアプリ（図５で説明）がインストールされている。前記GUIアプリで、眼科装置を操作し、被検眼の前眼、眼底、断層像などのデータを取得する。そして、前記の操作により取得した電子データを画像処理して、ディスプレイ160に表示する。
【００２４】
158は、PC156のCPUユニットである。カメラリンクボード157から取り込まれたデータの画像処理、被検眼を撮像するためのGUIアプリの処理、前記GUIアプリによるXYZユニット108の駆動、ヘッドユニット105内部の不図示光学ユニット部の駆動、ディスプレイ160へのGUIの表示などの制御をする。
160は、ディスプレイである。検者が眼科装置を操作するためのGUIを表示している。
162は、マウスでPC156に接続されている。163はキーボードでPC156へ接続されている。164は、PC156のACインレットコネクタで後述するACケーブル165が接続される。165は、ACケーブルである。これは、ACインレット部へ電源を供給するためのものである。
【００２５】
107は、PC156の指示に応じて被検眼の高さを規定する顎受けユニット部である。顎受けユニット部107は、不図示の被検者の顎を受けて目高位置を調整するための機構部である。113は、ピッチ2ｍｍの送りねじである。112は、ステッピングモータである。1ステップパルスを入力すると1.8°回転する仕様である。回転方向は時計回り（CW方向）と反時計回り（CCＷ方向）に回る。送りネジ113は、ステッピングモータ112に連結されている。115はピンでＹ軸と平行である。前記顎受けユニット部107は、送りねじ113と顎受け部品114の不図示の雌ネジが勘合しており、顎受け部品114は、ピン115にて回転しない構造となっている。そのために、送りねじ113を駆動用のステッピングモータ112にて回転させると顎受け部品114が上下に動くので被検眼の目高位置が調整できる。ここで、ステッピングモータ112にCW方向のステップを入力するとY−方向に動く。CCW方向のステップを入力するとY＋方向へ動く。顎受け部品のストロークは60mmである。164は、静電型の距離センサである。顎受け部品114が所定の距離まで近づくと反応する。このセンサが反応した顎受けの位置が原点となる。また、この位置は眼科機器を梱包する際の位置である。即ち、顎受けユニット107の梱包位置は、該顎受けユニット107の駆動ストロークにおける下端位置であり原点位置に相当する。詳細なフローは図７で後述する。これら構成は、本発明において顎受けユニット部107を駆動する顎受けユニット駆動部として機能する。
【００２６】
108は、ベースユニット部106の上に配置されて、光学ヘッド部105をXYZ方向に位置決めするためのXYZユニットであり、本発明における光学ヘッドユニット駆動部に相当する。XYZユニット108の構成は、X軸ユニット111、Z軸ユニット110、Y軸ユニット109で構成されている。
【００２７】
X軸ユニット111は、モータ116、カップリング120、送りねじ117、回転止めピン119、X軸ベース121、ポジションセンサ122で構成されている。X軸ユニット111のストロークは100mmである。モータ116は、ステッピングモータである。モータ116は、1ステップあたり1.8°回転する。モータ116の軸には送りねじ117がカップリング120を介して取り付けられている。送りねじ117は、ピッチ2mmのネジが切られており、Z軸ベース128に連結された雌ネジと勘合している。回転止めピン119は、Z軸ベース128が回転しないようにするためのピンである。ポジションセンサ122は、モータ116のパルスカウントによる位置と物理的な位置を校正するためのセンサである。X軸ベース121は、ベースユニット部106にネジ止めされている。そして、モータ116、送りねじ117、回転止めピン119を保持し、Z軸ユニット110、Y軸ユニット109を支えている。
【００２８】
Z軸ユニット110は、モータ123、カップリング124、送りねじ125、回転止めピン127、Y軸ベース128、ポジションセンサ126で構成されている。Z軸ユニット110のストロークは40mmである。モータ123は、ステッピングモータである。モータ123は、1ステップあたり1.8°回転する。モータ123の軸には送りねじ125がカップリング124を介して取り付けられている。送りねじ125は、ピッチ2mmのネジが切られており、Y軸ベース133に連結された雌ネジと勘合している。回転止めピン127は、Y軸ベース133が回転しないようにするためのピンである。ポジションセンサ126は、モータ123のパルスカウントによる位置と物理的な位置を校正するためのセンサである。Z軸ベース128は、X軸ユニットの送りねじ117と勘合している。そして、モータ123、送りねじ125、回転止めピン127を保持し、Y軸ユニット109を支えている。
【００２９】
Y軸ユニット109は、モータ129、平歯車130、平歯車131、送りねじ134、回転止めピン132、Y軸ベース133で構成されている。Y軸ユニット109のストロークは、30mmである。そして、ストロークの方向は重力方向と平行である。モータ129は、ステッピングモータである。モータ129は、1ステップあたり1.8°回転する。モータ129の軸には平歯車130が取り付けられている。送りねじ134は、ピッチ2mmのネジが切られており、ヘッド部と連結した雌ネジ136と勘合している。回転止めピン132は、ヘッド部と連結した雌ネジ136が回転しないようにするためのピンである。送りねじ134には、平歯車131も取り付けられている。モータ129側の平歯車130と送りねじ134側の平歯車131の歯車比（平歯車131/平歯車130）は、1.5/1である。これは、Y軸にヘッド部105の重量が掛かるために、減速しているからである。ポジションセンサ135は、モータ129のパルスカウントによる位置と物理的な位置を校正するためのセンサである。
【００３０】
次に、実際の外観とブロック図１、図２との関連を説明する。図３は本実施例の外観斜視図である。301は光学ヘッド部である。図１の105に相当する。302はベースユニット部で、図１の106に相当する。303は、顎受けユニット部で、図１の107に相当する。304,305は、カメラリンクコネクタで、図１の146、147に相当する。306はカメラリンク同期コネクタで、図１の147に相当する。307は、USBコネクタで図１の151に相当する。308は、ACインレットコネクタで図１の148に相当する。310は座標系で図１の102と104に相当する。
【００３１】
図４は本実施例のPCの斜視図である。図２のPC156に相当するものである。401は、ACインレットで、165に相当する。402は、USBポートで、161に相当する。406は、カメラリンクボードで157に相当する。403、404は、カメラリンクコネクタで157(a)、157(b)に相当する。405は、カメラリンク同期コネクタでカメラリンク同期コネクタ157(c)に相当する。
【００３２】
以上で、説明した顎受けユニット部107およびXYZユニット108の動作フローについて説明する。
【００３３】
まず、顎受けユニット部107の動作フローについて、図７に示すフローチャートを用いて説明する。ステップ701は、フローの始まりである。ステップ702は、PC156と眼科機器図1がUSBで通信しているかを調べる判断部である。USB通信されていない場合は、ステップ703以下のフローへ、USB通信がされている場合は、ステップ705以下へ進む。まず、USB通信されていない場合から説明する。ステップ703は、顎受け部品114の位置が原点にあるか否かを調べる判断部である。距離センサ164に顎受け部品114が、所定の距離まで近づいて距離センサ164が反応していれば、顎受け部品114は原点に位置決めされていると判断されて、ステップ702へ移動する。距離センサ164の反応がない場合は、ステップ704に移る。ステップ704では、CWパルス1パルスをステッピングモータ112へ送出する。そして、ステップ703に移る。顎受け部品114が原点位置に移動するまでステップ703とステップ704を繰り返すフローになっている。次に、USB通信されている場合は、ステップ705に進む。ステップ705では、カウンタ変数を初期化して０にする。そして次のステップ706に進む。カウンタ変数は、ステッピングモータ112に送出されたパルスをカウントする。カウンタ変数の値で顎受けの位置を把握している。ステップ706は、フローのリンクポイントS1である。次のステップ707は、図５で説明したGUIの502のボタンがクリックされたか否かの判断部である。ボタン502が押下されている場合はステップ708以下へ、押下されていない場合は、ステップ713へ進む。まず、ボタン502が押下されている場合から説明する。ステップ708では、カウンタ変数が6000以下すなわち顎受け部107のストローク上限値以下であるか否かを判断する。否の場合は、リンクポイントS1へ進む。カウンタ変数が6000以下の場合すなわち顎受け部107のストローク上限値以下の場合は、ステップ710へ進む。ステップ710では、ステッテッピングモータ112にCWのパルスを1パルス送出する。そして次のステップ711に進む。ステップ711では、カウンタ変数tに1を加える。そして次ステップ712へ進む。ステップ712はリンクポイントS1へ進む。次に、ボタン502が押下されていない場合は、ステップ713へ進み、ステップ713では503のボタンが押下されているか否かの判断部である。503のボタンが押下されている場合は、ステップ714へ進む、503のボタンが押下されていない場合はステップ702へ戻る。ステップ702以下は説明済みなので、503のボタンが押下されている場合のステップ714以下の説明をする。ステップ714は、カウンタ変数tが0より大きいか否かの判断部である。カウンタ変数tが0の場合、すなわち顎受け部品114の位置は原点にありそれ以上下がらない位置にある場合は、ステップ715に進む。ステップ715は、リンクポイントS1である。カウンタ変数tが0より大きい場合は、ステップ716へ進む。ステップ716では、ステッテッピングモータ112にCCWのパルスを1パルス送出する。そして次のステップ717に進む。ステップ717では、カウンタ変数ｔから１を減ずる。そして次のステップ718へ進む。ステップ718は、リンクポイントS1である。以上のように、眼科機器図１がPC156とUSB通信していない場合は、顎受け部品114が梱包する際の位置に自動的に位置決めされることを示している。顎受け部品114が梱包する際の位置に自動的に位置決めされる場面の例を何点か書い���おく。
【００３４】
１．眼科機器図１からUSBコネクタケーブル155が引き抜かれると、顎受け部品114が梱包する際の位置に自動的に位置決めされる。
２．眼科機器図１にPC156のUSBコネクタケーブル155を接続せずに眼科機器図１の電源スイッチの状態をOFFからONに遷移させると顎受け部品114が梱包する際の位置に自動的に位置決めされる。
【００３５】
次に、XYZユニット108の動作の流れについて説明する。各軸は並行処理で動作しているので、アクティビティ図で説明する。図８から図３２はXYZユニット108の動作を説明するためのアクティビティ図である。ステップ801は、アクティビティの初期状態である。ステップ802は、定義済み処理SUB1へジャンプする。定義済み処理SUB1は、XYZ軸の原点構成動作を定義した処理である。詳細は後述する。ステップ803は、眼科機器とPC156のUSB通信がされているか否かの判断部である。
【００３６】
USB通信がされていない場合は、定義済み処理SUB2へジャンプする。定義済み処理SUB2は眼科機器図１のヘッド部105をY軸は−Y方向のストローク限界まで下げ、X軸、Z軸はストロークの中央部に位置決めするアクティビティである。この位置は眼科機器図１を梱包する際の位置、即ち本発明における第一の位置に相当する梱包位置である。詳細は後述する。
【００３７】
USB通信がされている場合は、ステップ805に進む。ステップ805は、定義済み処理SUB3へジャンプする。定義済み処理SUB3は、眼科機器図１のヘッド部105をX軸はX軸原点から17.5mm、Y軸はストロークの中央部、Z軸は−Z方向のストローク限界に位置決めするアクティビティである。この位置は、被検眼の右目の位置に相当する。詳細は後述する。処理終了後はステップ806へ進む。
【００３８】
ステップ806は、timeカウンタに0（ゼロ）をセットする。そして次の並列処理のステップへ進む。並列処理される定義済み処理は14ある。ここでは、定義済み処理の動作の概要だけ説明し、詳細なアクティビティは後述する。
【００３９】
ステップ807は、定義済み処理SUB14へジャンプする。定義済み処理SUB14は、GUIの図６の603がカーソルで押下された場合の処理である。X軸、Y軸共に＋方向へ動く。
ステップ808は、定義済み処理SUB15へジャンプする。定義済み処理SUB15は、GUIの図６の604がカーソルで押下された場合の処理である。X軸は＋方向へ、Y軸は−方向へ動く。
ステップ809は、定義済み処理SUB16へジャンプする。定義済み処理SUB16は、GUIの図６の605がカーソルで押下された場合の処理である。X軸、Y軸共に−方向へ動く。
ステップ810は、定義済み処理SUB17へジャンプする。定義済み処理SUB17は、GUIの図６の606がカーソルで押下された場合の処理である。X軸は−方向へ、Y軸は＋方向へ動く。
【００４０】
ステップ813は、定義済み処理SUB20へジャンプする。定義済み処理SUB20は、GUIの図６の608の＋X領域をカーソルで押下された場合の処理である。X軸が＋方向へ動く。
ステップ814は、定義済み処理SUB21へジャンプする。定義済み処理SUB21は、GUIの図６の608の−X領域をカーソルで押下された場合の処理である。X軸が−方向へ動く。
ステップ815は、定義済み処理SUB22へジャンプする。定義済み処理SUB22は、GUIの図６の609の＋Y領域をカーソルで押下された場合の処理である。Y軸が＋方向へ動く。
ステップ816は、定義済み処理SUB23へジャンプする。定義済み処理SUB23は、GUIの図６の610の−Y領域をカーソルで押下された場合の処理である。Y軸が−方向へ動く。
ステップ811は、定義済み処理SUB18へジャンプする。定義済み処理SUB18は、GUIの図５の506がカーソルで押下された場合の処理である。Z軸が＋方向へ動く。
ステップ812は、定義済み処理SUB19へジャンプする。定義済み処理SUB19は、GUIの図５の505がカーソルで押下された場合の処理である。Z軸が−方向へ動く。
【００４１】
ステップ817は、定義済み処理SUB24へジャンプする。定義済み処理SUB24は、timeカウンタを読み込み300秒以下だと何もしない。300秒以上だと定義済み処理SUB2へジャンプし、眼科機器図１のヘッド部105をY軸は−Y方向のストローク限界まで下げ、X軸、Z軸はストロークの中央部に位置決めする。これはすでに説明した梱包待機時の姿勢である。詳細は後述する。
【００４２】
ステップ818は、定義済み処理SUB25へジャンプする。定義済み処理SUB24は、眼科機器図１とPC156がUSB通信しているか否かの判断をして、前記のUSB通信がされている場合は、何もしない。USB通信がされていない場合は、定義済み処理SUB2へジャンプし、眼科機器図１のヘッド部105をY軸は−Y方向のストローク限界まで下げ、X軸、Z軸はストロークの中央部に位置決めする。これはすでに説明した梱包待機時の姿勢である。詳細は後述する。以上のステップ807からステップ820までを並列処理にて、眼科機器の電源が切られるまで繰り返す。
【００４３】
以下では、図８で説明した。アクティビティ図の定義済み処理を説明する。
図９は、定義済み処理SUB1である。ステップ901は、定義済み処理SUB１のアクティビティの初期状態である。この後、以下の3つの処理が並列処理される。
【００４４】
処理１．ステップ902では、X軸の原点が検知されているか否かの判断部である。X軸の原点が検知されている場合は、ステップ905に進む。ステップ905では、txを0にする。次に、定義済み処理SUB１のアクティビティの終了状態であるステップ912に進む。X軸の原点が検知されていない場合は、ステップ904へ進みモータ116へCCWパルスを送出する。そして、次のステップ913へ進む。ステップ913では、txから1を減ずる。そして、次のステップ902へ進む。以上のループは、tx＝0になるまで、すなわちX軸の原点に到達に達するまで、繰り返される。
【００４５】
処理２．ステップ906では、Y軸の原点が検知されているか否かの判断部である。Y軸の原点が検知されている場合は、ステップ908に進む。ステップ908では、tyを0にする。次に、定義済み処理SUB1のアクティビティの終了状態であるステップ912に進む。Y軸の原点が検知されていない場合は、ステップ904へ進みモータ129へCCWパルスを送出する。そして、次のステップ914へ進む。ステップ914では、tyから1を減ずる。そして次のステップ906へ進む。以上のループは、ty＝0になるまで、すなわちY軸の原点に到達するまで、繰り返される。
【００４６】
処理３．ステップ909では、Z軸の原点が検知されているか否かの判断部である。Z軸の原点が検知されている場合は、ステップ911に進む。ステップ911では、tzを０にする。次に、定義済み処理SUB1のアクティビティの終了状態であるステップ912に進む。Z軸の原点が検知されていない場合は、ステップ910へ進みモータ123へCCWパルスを送出する。そして、次のステップ915へ進む。ステップ915では、tzから1を減ずる。そして次のステップ909へ進む。以上のループは、tz＝0になるまで、すなわちZ軸の原点に到達するまで繰り返される。
【００４７】
図１０は、定義済み処理SUB2である。この定義済み処理は前に説明したとおり、光学ヘッド部105を梱包する際の姿勢に変更する処理である。ステップ1001は、定義済み処理SUB2のアクティビティの初期状態である。この後、以下の3つの処理が並列に処理される。
【００４８】
処理１．ステップ1003では、X軸のストローク中央部で位置決めされているか否かの判断部である。X軸のストローク中央部に位置決めされている場合は、定義済み処理SUB1のアクティビティの終了状態であるステップ1021に進む。X軸のストローク中央部に位置決めされていない場合は、ステップ1004に進む。ステップ1004は、txが5000より大きいか否かの判断部である。すなわち、ストローク中央部より原点センサ122側か否かを判定する処理部である。tx＞5000の場合は、ステップ1007へ進む。ステップ1007では、モータ116へCCWパルスを送出する。そして、次のステップ1023へ進む。ステップ1023では、txから1を減ずる。そして、次のステップ1008へ進む。ステップ1008は、リンクポインタSx1で、1002のリンクポインタSx1へジャンプする。リンクポインタSx1 1002は、ステップ1003に接続されている。tx＜5000の場合は、ステップ1005へ進む。ステップ1005では、モータ116へCWパルスを送出する。そして次のステップ1022へ進む。ステップ1022では、txに1を加算する。そして、次のステップ1006へ進む。ステップ1006は、リンクポインタで1002のSx1リンクポイントにジャンプする。リンクポインタSx1は、ステップ1003に接続されている。以上に説明したように、処理１では、X軸のストローク中央に位置決めするための処理である。
【００４９】
処理２．ステップ1011では、Y軸の−方向ストローク限界位置で位置決めされているか否かの判断部である。Y軸の−方向ストローク限界位置で位置決めされている場合は、定義済み処理SUB1のアクティビティの終了状態であるステップ1021に進む。Y軸の−方向ストローク限界位置で位置決めされていない場合は、ステップ1012に進む。ステップ1012は、モータ129へCWパルスを送出する。そして、次のステップ1024へ進む。ステップ1024では、tyに1を加算する。そして、次のステップ1013へ進む。ステップ1013は、リンクポインタで1010のSy1リンクポイントにジャンプする。リンクポインタSy1010は、ステップ1011に接続されている。以上に説明したように、処理２では、Y軸の−方向ストローク限界位置で位置決めするための処理である。
【００５０】
処理３．ステップ1015では、Z軸のストローク中央部で位置決めされているか否かの判断部である。Z軸のストローク中央部に位置決めされている場合は、定義済み処理SUB1のアクティビティの終了状態であるステップ1021に進む。Z軸のストローク中央部に位置決めされていない場合は、ステップ1016に進む。ステップ1016は、tzが2000より大きいか否かの判断部である。すなわち、ストローク中央部より原点センサ126側か否かを判定する処理部である。tz＞2000の場合は、ステップ1019へ進む。ステップ1019では、モータ123へCCWパルスを送出する。そして、次のステップ1026へ進む。ステップ1026はtzから1を減ずる。そして、次のステップ1020へ進む。ステップ1020は、リンクポインタで、1014のSz1リンクポイントにジャンプする。リンクポインタSｚ1は、ステップ1015に接続されている。tx＜2000の場合は、ステップ1017へ進む。ステップ1017では、モータ123へCWパルスを送出する。そして、次のステップ1025へ進む。ステップ1025では、tzへ1を加算する。そして、次のステップ1018へ進む。ステップ1018は、リンクポインタで1014のSz1リンクポイントにジャンプする。リンクポインタSz1は、ステップ1015に接続されている。以上に説明したように、処理１では、Z軸のストローク中央に位置決めするための処理である。
【００５１】
図１１は、定義済み処理SUB3である。この定義済み処理は前に説明したとおり、光学ヘッド部105を不図示の被検眼の右目を撮像する際の待機姿勢に変更する処理である。ステップ1101は、定義済み処理SUB3のアクティビティの初期状態である。この後、以下の３つの処理が並列に処理される。
【００５２】
処理１．ステップ1102では、X軸の位置が原点から17.5mmの位置にあるか否かの判断部である。X軸の位置が原点から17.5mmに位置決めされている場合は、定義済み処理SUB3のアクティビティの終了状態であるステップ1120に進む。X軸位置が原点から17.5mmに位置決めされていない場合は、ステップ1104に進む。ステップ1104は、txが1750より大きいか否かの判断部である。すなわち、不図示の被検眼の位置X=17.5mmより原点センサ122側か否かを判定する処理部である。tx＞1750の場合は、ステップ1107へ進む。ステップ1107では、モータ116へCCWパルスを送出する。そして、次のステップ1122へ進む。ステップ1122は、txから1を減ずる。そして、次のステップ1108へ進む。ステップ1108は、リンクポインタSx2で1103のSx2のリンクポイントにジャンプする。リンクポインタSx2 1103は、ステップ1102に接続されている。tx＜1750の場合は、ステップ1105へ進む。ステップ1105では、モータ116へCWパルスを送出する。そして、次のステップ1121へ進む。ステップ1121では、txに1を加算する。そして、次のステップ1106へ進む。ステップ1106は、リンクポインタSx2で、1103のSx2リンクポイントにジャンプする。リンクポインタSx2は、ステップ1102に接続されている。以上に説明したように、処理１では、不図示被検眼の真正面にX軸を位置決めするための処理である。
【００５３】
処理２．ステップ1109は、Y軸のストローク中央位置にあるか否かの判断部である。Y軸のストローク中央位置にある場合は、定義済み処理SUB3のアクティビティの終了状態であるステップ1120に進む。Y軸のストローク中央位置でない場合は、ステップ1111に進む。ステップ1111は、tyが2250より大きいか否かの判断部である。ty＞2250の場合は、ステップ1114へ進む。ステップ1114では、モータ129へCCWパルスを送出する。そして次のステップ1124へ進む。ステップ1124では、tyから1を減ずる。そして、次のステップ1115へ進む。ステップ1115は、リンクポインタSy2で1110のSy2のリンクポイントにジャンプする。リンクポインタSy2 1110は、ステップ1109に接続されている。tx＜2250の場合は、ステップ1112へ進む。ステップ1112では、モータ129へCWパルスを送出する。そして、次のステップ1123へ進む。ステップ1123では、tyに1を加算する。そして、次のステップ1113へ進む。ステップ1113は、リンクポインタSy2で、1110のSy2リンクポイントにジャンプする。リンクポインタSy2は、ステップ1109に接続されている。以上に説明したように、処理２では、Y軸のストローク中央に位置決めするための処理である。
【００５４】
処理３．ステップ1117では、Z軸の−方向ストローク限界位置で位置決めされているか否かの判断部である。Z軸の−方向ストローク限界位置で位置決めされている場合は、定義済み処理SUB1のアクティビティの終了状態であるステップ1120に進む。Z軸の−方向ストローク限界位置で位置決めされていない場合は、ステップ1118に進む。ステップ1118は、モータ123へCWパルスを送出する。そして、次のステップ1125へ進む。ステップ1125では、tzに1を加算する。そして、次のステップ1119へ進む。ステップ1119は、リンクポインタで1116のSz2リンクポイントにジャンプする。リンクポインタSz2の 1116は、ステップ1117に接続されている。以上に説明したように、処理３では、Z軸の−方向ストローク限界位置で位置決めするための処理である。
【００５５】
図２２は、定義済み処理SUB14である。図６のGUIの603の領域をカーソル501でクリックした際の動作を定義している。ステップ2201は、定義済み処理SUB14のアクティビティの初期状態である。ステップ2202は、図６のGUIの603領域をカーソル501で押下しているか否かの判断部である。押下している場合は、ステップ2203へ進む。ステップ2203は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2204、2205、2206と進む。ステップ2204では、タイマーカウンタを0にする。ステップ2205ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2206は、定義済み処理SUB4を実行する。定義済み処理SUB4は、この定義済み処理SUB14の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2206へ進む。ステップ2206の処理が終了したら、ステップ2202に戻る。図６のGUIの603領域をカーソル501で押下されていない場合は、ステップ2207に進む。ステップ2207は、定義済み処理SUB14のアクティビティの終了状態である。
【００５６】
図１２は、定義済み処理SUB4である。この定義済み処理は前に説明したとおり、定義済み処理SUB14に利用されている処理である。ステップ1201は、定義済み処理SUB4のアクティビティの初期状態である。この後、以下の2つの処理が並列に処理される。
処理１．ステップ1202は、X軸の位置が＋方向の限界位置を超えていないか否かの判断部である。txが10000より小さい、すなわち＋方向のストローク限界以下である場合は、ステップ1203に進む。ステップ1203では、モータ116へCWパルスを送出する。そして、次のステップ1207へ進む。ステップ1207では、txに1を加算する。そして、次のステップ1206に進む。ステップ1206は、定義済み処理SUB4のアクティビティの終了状態である。tx=10000すなわち＋方向のストローク限界に達している場合は、ステップ1206に進む。
処理２．ステップ1204は、Y軸の位置が＋方向の限界位置を超えていないか否かの判断部である。tyが0より大きい、すなわち＋Y方向のストローク限界以下である場合は、ステップ1205に進む。ステップ1205では、モータ129へCCWパルスを送出する。そして、次のステップ1208へ進む。ステップ1208では、tyから1を減ずる。そして、次のステップ1206に進む。ステップ1206は、定義済み処理SUB4のアクティビティの終了状態である。ty=0すなわち＋Y方向のストローク限界に達している場合は、ステップ1206に進む。
以上に示したような並列の処理が行われ、X軸の＋方向、Y軸の＋方向に動かす処理が行われる。
【００５７】
図２３は、定義済み処理SUB15である。図６のGUIの604の領域をカーソル501でクリックした際の動作を定義している。ステップ2301は、定義済み処理SUB15のアクティビティの初期状態である。ステップ2302は、図６のGUIの604領域をカーソル501で押下しているか否かの判断部である。押下している場合は、ステップ2303へ進む。ステップ2303は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2304、2305、2306と進む。ステップ2304では、タイマーカウンタを0にする。ステップ2305ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2306は、定義済み処理SUB5を実行する。定義済み処理SUB5は、この定義済み処理SUB15の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2306へ進む。ステップ2306の処理が終了したら、ステップ2302に戻る。図６のGUIの603領域をカーソル501で押下されていない場合は、ステップ2307に進む。ステップ2307は、定義済み処理SUB15のアクティビティの終了状態である。
【００５８】
図１３は、定義済み処理SUB5である。この定義済み処理は前に説明したとおり、定義済み処理SUB15に利用されている処理である。ステップ1301は、定義済み処理SUB5のアクティビティの初期状態である。この後、以下の2つの処理が並列に処理される。
処理１．ステップ1302は、X軸の位置が−方向の限界位置を超えていないか否かの判断部である。txが10000より小さい、すなわち＋方向のストローク限界位置以外である場合は、ステップ1303に進む。ステップ1303では、モータ116へCWパルスを送出する。そして、次のステップ1307へ進む。ステップ1307では、txへ1を加算する。そして、次のステップ1206に進む。ステップ1206は、定義済み処理SUB5のアクティビティの終了状態である。tx=10000すなわち＋方向のストローク限界に達している場合は、ステップ1206に進む。
処理２．ステップ1304は、Y軸の位置が＋方向の限界位置を超えていないか否かの判断部である。tyが0より大きい、すなわち＋Y方向のストローク限界以下である場合は、ステップ1305に進む。ステップ1305では、モータ129へCWパルスを送出する。そして、次のステップ1308へ進む。ステップ1308では、tyに1を加算する。そして、次のステップ1306に進む。ty=0すなわち＋Y方向のストローク限界に達している場合は、ステップ1306に進む。ステップ1306は、定義済み処理SUB5のアクティビティの終了状態である。
以上に示したような並列の処理が行われ、X軸の＋方向、Y軸の−方向に動かす処理が行われる。
【００５９】
図２４は、定義済み処理SUB16である。図６のGUIの604の領域をカーソル501でクリックした際の動作を定義している。ステップ2401は、定義済み処理SUB16のアクティビティの初期状態である。ステップ2402は、図６のGUIの605領域をカーソル501で押下しているか否かの判断部である。押下している場合は、ステップ2403へ進む。ステップ2403は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2404、2405、2406と進む。ステップ2404では、タイマーカウンタを0にする。ステップ2405ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2406は、定義済み処理SUB6を実行する。定義済み処理SUB6は、この定義済み処理SUB16の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2406へ進む。ステップ2406の処理が終了したら、ステップ2402に戻る。図６のGUIの605領域をカーソル501で押下されていない場合は、ステップ2407に進む。ステップ2407は、定義済み処理SUB16のアクティビティの終了状態である。
【００６０】
図１４は、定義済み処理SUB6である。この定義済み処理は前に説明したとおり定義済み処理SUB16に利用されている処理である。ステップ1401は、定義済み処理SUB6のアクティビティの初期状態である。この後、以下の2つの処理が並列に処理される。
処理１．ステップ1402は、X軸の位置が原点以外であるか否か判断部である。X軸の位置が原点以外の場合は、ステップ1403に進む。ステップ1403では、モータ116へCCWパルスを送出する。そして、次のステップ1407へ進む。ステップ1407では、txから1を減ずる。そして、次のステップ1406に進む。tx=0すなわちX軸原点の場合は、ステップ1406に進む。ステップ1406は、定義済み処理SUB6のアクティビティの終了状態である。
処理２．ステップ1404は、Y軸の位置が−方向の限界位置を超えていないか否かの判断部である。tyが4500より小さい、すなわち−Y方向のストローク限界以下である場合は、ステップ1405に進む。ステップ1405では、モータ129へCWパルスを送出する。そして、次のステップ1408へ進む。ステップ1408では、tyに1を加算する。そして、次のステップ1406に進む。ty=4500すなわち−Y方向のストローク限界に達している場合は、ステップ1406に進む。ステップ1406は、定義済み処理SUB6のアクティビティの終了状態である。
以上に示したような並列の処理が行われ、X軸の−方向、Y軸の−方向に動かす処理が行われる。
【００６１】
図２５は、定義済み処理SUB17である。図６のGUIの605の領域をカーソル501でクリックした際の動作を定義している。ステップ2501は、定義済み処理SUB17のアクティビティの初期状態である。ステップ2502は、図６のGUIの605領域をカーソル501で押下しているか否かの判断部である。押下している場合は、ステップ2503へ進む。ステップ2503は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2504、2505、2506と進む。ステップ2504では、タイマーカウンタを0にする。ステップ2505ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2506は、定義済み処理SUB7を実行する。定義済み処理SUB7は、この定義済み処理SUB17の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2506へ進む。ステップ2506の処理が終了したら、ステップ2502に戻る。図６のGUIの605領域をカーソル501で押下されていない場合は、ステップ2507に進む。ステップ2507は、定義済み処理SUB17のアクティビティの終了状態である。
【００６２】
図１５は、定義済み処理SUB7である。この定義済み処理は前に説明したとおり、定義済み処理SUB17に利用されている処理である。ステップ1501は、定義済み処理SUB7のアクティビティの初期状態である。この後、以下の2つの処理が並列に処理される。
処理１．ステップ1502は、X軸の位置が原点以外であるか否か判断部である。X軸の位置が原点以外の場合は、ステップ1503に進む。ステップ1503では、モータ116へCCWパルスを送出する。そして、次のステップ1507へ進む。ステップ1507では、txから1を減ずる。そして、次のステップ1506に進む。tx=0すなわちX軸原点の場合は、ステップ1506に進む。ステップ1506は、定義済み処理SUB7のアクティビティの終了状態である。
処理２．ステップ1504は、Y軸の位置が原点か否か判断部である。tyが0より大きい、すなわちY軸の位置が原点以外である場合は、ステップ1505に進む。ステップ1505では、モータ129へCCWパルスを送出する。そして、次のステップ1508へ進む。ステップ1508では、tyから1を減ずる。そして、次のステップ1506に進む。ty=0すなわちY軸の原点に位置している場合は、ステップ1506に進む。ステップ1506は、定義済み処理SUB7のアクティビティの終了状態である。
以上に示したような並列の処理が行われ、X軸の−方向、Y軸の＋方向に動かす処理が行われる。
【００６３】
図２６は、定義済み処理SUB18である。図６のGUIの606の領域をカーソル501でクリックした際の動作を定義している。ステップ2601は、定義済み処理SUB18のアクティビティの初期状態である。ステップ2602は、図６のGUIの606領域をカーソル501で押下しているか否かの判断部である。押下している場合は、ステップ2603へ進む。ステップ2603は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2604、2605、2606と進む。ステップ2604では、タイマーカウンタを0にする。ステップ2605ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2606は、定義済み処理SUB8を実行する。定義済み処理SUB8は、この定義済み処理SUB18の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2606へ進む。ステップ2606の処理が終了したら、ステップ2602に戻る。図６のGUIの606領域をカーソル501で押下されていない場合は、ステップ2607に進む。ステップ2607は、定義済み処理SUB18のアクティビティの終了状態である。
【００６４】
図１６は、定義済み処理SUB8である。この定義済み処理は前に説明したとおり、定義済み処理SUB18に利用されている処理である。ステップ1601は、定義済み処理SUB8のアクティビティの初期状態である。ステップ1602では、Z軸の位置が原点であるか否かの判断部である。Z軸の位置が原点以外の場合は、ステップ1603へ進む。ステップ1603では、モータ123へCCWパルスを送出する。そして、次のステップ1608へ進む。ステップ1608は、tzから１を減ずる。そして、次のステップ1606に進む。ステップ1606は、定義済み処理SUB8のアクティビティの終了状態である。Z軸の位置が原点の場合は、ステップ1607に進む。ステップ1607は、定義済み処理SUB8のアクティビティの終了状態である。
【００６５】
図２７は、定義済み処理SUB19である。図５のGUIの505をカーソル501で押下した際の動作を定義している。ステップ2701は、定義済み処理SUB19のアクティビティの初期状態である。ステップ2702は、図５のGUIの505をカーソル501で押下しているか否かの判断部である。押下している場合は、ステップ2703へ進む。ステップ2703は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2704、2705、2706と進む。ステップ2704では、タイマーカウンタを0にする。ステップ2705ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2706は、定義済み処理SUB9を実行する。定義済み処理SUB9は、この定義済み処理SUB19の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2706へ進む。ステップ2706の処理が終了したら、ステップ2702に戻る。図５のGUIの505をカーソル501で押下されていない場合は、ステップ2707に進む。ステップ2707は、定義済み処理SUB19のアクティビティの終了状態である。
【００６６】
図１７は、定義済み処理SUB9である。この定義済み処理は前に説明したとおり、定義済み処理SUB19に利用されている処理である。ステップ1701は、定義済み処理SUB9のアクティビティの初期状態である。ステップ1702では、tzが4000より小さいすなわち、−Ｚ方向のストローク限度位置以外であるか否かの判断部である。Z軸の位置が−Ｚ方向のストローク限度位置以外の場合は、ステップ1703へ進む。ステップ1703では、モータ123へCWパルスを送出する。そして、次のステップ1708へ進む。ステップ1708は、tzに1を加算する。そして、次のステップ1706に進む。ステップ1706は、定義済み処理SUB9のアクティビティの終了状態である。tzが4000すなわち−Z方向のストローク限度位置の場合は、ステップ1707に進む。ステップ1707は、定義済み処理SUB9のアクティビティの終了状態である。
【００６７】
図２８は、定義済み処理SUB20である。図６のGUIの608の＋X領域を押下した際の動作を定義している。ステップ2801は、定義済み処理SUB20のアクティビティの初期状態である。ステップ2802は、図６のGUIの608の＋X領域を押下しているか否かの判断部である。押下している場合は、ステップ2803へ進む。ステップ2803は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2804、2805、2806と進む。ステップ2804では、タイマーカウンタを0にする。ステップ2805ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2806は、定義済み処理SUB10を実行する。定義済み処理SUB10は、この定義済み処理SUB20の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2806へ進む。ステップ2806の処理が終了したら、ステップ2802に戻る。図５のGUIの608の＋X領域を押下されていない場合は、ステップ2807に進む。ステップ2807は、定義済み処理SUB20のアクティビティの終了状態である。
【００６８】
図１８は、定義済み処理SUB10である。この定義済み処理は前に説明したとおり、定義済み処理SUB20に利用されている処理である。ステップ1801は、定義済み処理SUB10のアクティビティの初期状態である。ステップ1802では、txが10000より小さいすなわち、＋X方向のストローク限度位置以外であるか否かの判断部である。X軸の位置が＋X方向のストローク限度位置以外の場合は、ステップ1803へ進む。ステップ1803では、モータ116へCWパルスを送出する。そして、次のステップ1808へ進む。ステップ1808は、txに1を加算する。そして、次のステップ1806に進む。ステップ1806は、定義済み処理SUB10のアクティビティの終了状態である。txが10000すなわち＋X方向のストローク限度位置の場合は、ステップ1807に進む。ステップ1807は、定義済み処理SUB10のアクティビティの終了状態である。
【００６９】
図２９は、定義済み処理SUB21である。図６のGUIの608の−X領域を押下した際の動作を定義している。ステップ2901は、定義済み処理SUB21のアクティビティの初期状態である。ステップ2902は、図６のGUIの608の−X領域を押下しているか否かの判断部である。押下している場合は、ステップ2903へ進む。ステップ2903は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ2904、2905、2906と進む。ステップ2904では、タイマーカウンタを0にする。ステップ2905ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ2906は、定義済み処理SUB11を実行する。定義済み処理SUB11は、この定義済み処理SUB21の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ2906へ進む。ステップ2906の処理が終了したら、ステップ2902に戻る。図５のGUIの608の−X領域を押下されていない場合は、ステップ2907に進む。ステップ2907は、定義済み処理SUB21のアクティビティの終了状態である。
【００７０】
図１９は、定義済み処理SUB11である。この定義済み処理は前に説明したとおり、定義済み処理SUB21に利用されている処理である。ステップ1801は、定義済み処理SUB11のアクティビティの初期状態である。ステップ1902では、txが0より大きいすなわち、X軸原点以外であるか否かの判断部である。X軸の位置が原点以外の場合は、ステップ1903へ進む。ステップ1903では、モータ116へCCWパルスを送出する。そして、次のステップ1908へ進む。ステップ1908は、txから1を減ずる。そして、次のステップ1906に進む。ステップ1906は、定義済み処理SUB11のアクティビティの終了状態である。txが0すなわちX軸原点の場合は、ステップ1907に進む。ステップ1907は、定義済み処理SUB11のアクティビティの終了状態である。
【００７１】
図３０は、定義済み処理SUB22である。図６のGUIの607の＋Y領域を押下した際の動作を定義している。ステップ3001は、定義済み処理SUB22のアクティビティの初期状態である。ステップ3002は、図６のGUIの607の＋Y領域を押下しているか否かの判断部である。押下している場合は、ステップ3003へ進む。ステップ3003は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ3004、3005、3006と進む。ステップ3004では、タイマーカウンタを0にする。ステップ3005ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ3006は、定義済み処理SUB12を実行する。定義済み処理SUB12は、この定義済み処理SUB22の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ3006へ進む。ステップ3006の処理が終了したら、ステップ3002に戻る。図６のGUIの607の＋Y領域を押下されていない場合は、ステップ3007に進む。ステップ3007は、定義済み処理SUB22のアクティビティの終了状態である。
【００７２】
図２０は、定義済み処理SUB12である。この定義済み処理は前に説明したとおり、定義済み処理SUB22に利用されている処理である。ステップ2001は、定義済み処理SUB12のアクティビティの初期状態である。ステップ2002では、tyが0より大きいすなわち、Y軸原点以外であるか否かの判断部である。Y軸の位置が原点以外の場合は、ステップ2003へ進む。ステップ2003では、モータ129へCCWパルスを送出する。そして、次のステップ2008へ進む。ステップ2008は、tyから1を減ずる。そして、次のステップ2006に進む。ステップ2006は、定義済み処理SUB12のアクティビティの終了状態である。tyが0すなわちY軸原点の場合は、ステップ2007に進む。ステップ2007は、定義済み処理SUB12のアクティビティの終了状態である。
【００７３】
図３１は、定義済み処理SUB23である。図６のGUIの607の−Y領域を押下した際の動作を定義している。ステップ3101は、定義済み処理SUB23のアクティビティの初期状態である。ステップ3102は、図６のGUIの607の−Y領域を押下しているか否かの判断部である。押下している場合は、ステップ3103へ進む。ステップ3103は、タイマーカウンタtimeが300秒以上か否かの判断部である。timeが300秒以上の場合は、ステップ3104、3105、3106と進む。ステップ3104では、タイマーカウンタを0にする。ステップ3105ではtiを0にする。このtiは、図３２及び３３で説明する。ステップ3106は、定義済み処理SUB13を実行する。定義済み処理SUB13は、この定義済み処理SUB23の説明後に説明する。タイマーカウンタtimeが300秒以下の場合はステップ3106へ進む。ステップ3106の処理が終了したら、ステップ3102に戻る。図６のGUIの607の−Y領域を押下されていない場合は、ステップ3107に進む。ステップ3107は、定義済み処理SUB23のアクティビティの終了状態である。
【００７４】
図２１は、定義済み処理SUB13である。この定義済み処理は前に説明したとおり、定義済み処理SUB23に利用されている処理である。ステップ2101は、定義済み処理SUB13のアクティビティの初期状態である。ステップ2102では、tyが4500より小さいすなわち、−方向のストローク限度位置以外であるか否かの判断部である。Y軸の−方向のストローク限度位置以外の場合は、ステップ2103へ進む。ステップ2103では、モータ129へCWパルスを送出する。そして、次のステップ2108へ進む。ステップ2108は、tyに1を加算する。そして、次のステップ2106に進む。ステップ2106は、定義済み処理SUB13のアクティビティの終了状態である。tyが4500すなわち−方向のストローク限度位置の場合は、ステップ2107に進む。ステップ2107は、定義済み処理SUB13のアクティビティの終了状態である。
【００７５】
図３２は、定義済み処理SUB24である。この定義済み処理は、GUIを300秒以上操作されない場合に、光学ヘッド部105を梱包する際の姿勢に変更するための処理を定義している。ステップ3201は、定義済み処理SUB24のアクティビティの初期状態である。ステップ3202は、CPUユニット136のリアルタイムクロック回路からtimeカウンタを読み込む。ステップ3203は、timeカウンタが300秒以上であるか否かの判断部である。timeカウンタが300秒以上であれば、ステップ3205へ進む。ステップ3205では、tiが1か否かを判断する。tiが1の場合は、ステップ3209へ進む。ステップ3209は、定義済み処理SUB24のアクティビティの終了状態である。tiが1以外の場合は、ステップ3206へ進む。ステップ3206は定義済み処理SUB2を実行する。定義済み処理SUB2は、すでに説明したとおり、光学ヘッド部105を梱包時の姿勢に変更する処理を実行する。そして、次のステップ3207を実行する。ステップ3207はtiに1をセットする。そして、ステップ3208に進む。tiがｉだと、次の図８のステップ806以下の並列処理ループで、図５のGUI操作がされて、光学ヘッド部105を動かされない限り、梱包時の姿勢に変更する定義済み処理SUB2を呼び出さない。timeカウンタが300秒より少なければ、ステップ3204へ進む。ステップ3204、3208は、定義済み処理SUB24のアクティビティの終了状態である。
【００７６】
即ち、本定義済み処理においては、PCから眼科装置（光学ヘッド部105及び顎受けユニット部107）への操作信号の通信がないと判定した状態で第一の期間が計測された場合に、CPUユニット136における副制御装置は眼科装置の検査待機位置（第二の所定位置）までの駆動を行う。また、該第一の期間より長い第二の期間が計測された場合に、副制御装置は該眼科装置の梱包位置（第一の所定位置）までの駆動を行う。この検査待機位置は、例えば顎受けユニット部107を検査開始位置にある光学ヘッド部105に対して標準的な患者の被検眼の観察が可能となる高さとなる位置が例示される。また、光学ヘッド部105に関しては、検査項目、撮像対象物に応じて設定されるZ軸方向の位置が各々検査待機位置として例示される。
【００７７】
図３３は、定義済み処理SUB25である。この定義済み処理は、眼科機器図１とPC156のUSB通信が途絶えた場合に、光学ヘッド部105を梱包する際の姿勢に変更するための処理を定義している。ステップ3301は、定義済み処理SUB25のアクティビティの初期状態である。ステップ3302は、眼科機器図１とPC156とがUSB通信されているか否かの判断部である。USB通信がされている場合は、3303へ進む。USB通信がされていない場合は、ステップ3304に進む。ステップ3304では、tiがｉか否かを判断する。tiがｉの場合は、ステップ3308へ進む。tiが1以外の場合は、ステップ3305へ進む。ステップ3305は定義済み処理SUB2を実行する。定義済み処理SUB2は、すでに説明したとおり、光学ヘッド部105を梱包時の姿勢に変更する処理を実行する。そして、次のステップ3206を実行する。ステップ3206はtiにｉをセットする。そして、ステップ3307に進む。tiが1だと、次の図８のステップ806以下の並列処理ループで、図５のＧＵＩ操作がされて、光学ヘッド部105を動かされない限り、梱包時の姿勢に変更する定義済み処理SUB2を呼び出さない。ステップ3303、3307、3308は、定義済み処理SUB24のアクティビティの終了状態である。
【００７８】
以上に説明した通り、制御用PC156と眼科機器図１の本体のUSB通信が確立されている場合は、光学ヘッド部105が検眼待機姿勢になる。また、制御用PC156と眼科機器図１の本体のUSB通信が確立されていない場合は、電源OFFからONに遷移すると、光学ヘッド部105が梱包姿勢に変更される。また、一定時間GUIを使用しないと、光学ヘッド部105が梱包姿勢に変更される。
【００７９】
即ち、この場合において、眼科装置と制御用PC156との通信の状態を判定し、該通信の状態の判定結果に応じて、眼科装置の有するCPUユニット136（副制御装置）により光学ヘッド部105及び顎受けユニット部107を梱包位置及び該梱包位置とは異なる検査待機位置の何れかの位置までの駆動を実行する。より詳細には、眼科装置への電源の入切の有無をCPUユニット136における入切判定手段として機能するモジュール領域によって判定し、更に副制御装置により電源切りの判定に応じて指定された期間電源の切り動作を保留した後に眼科装置の梱包位置までの駆動が行われる。また、CPUユニット136における通信判定手段として機能するモジュール領域によって制御用PC156と眼科装置との通信状態が確保されているか否かを判定し、通信状態が確保されていないと判定した場合に眼科装置への電源の切り操作と梱包位置までの駆動とが行われる。
【００８０】
これらは、梱包する際に、梱包時の姿勢に効率よく切り替えられることを示している。本実施例では、通信をUSB通信で説明しているが、無線LANや同軸ケーブルなど、手段は何でもよいことを付け加えておく。
【００８１】
換言すれば、本発明に係る眼科装置は、制御用PCで本体の姿勢制御をする手段と、本体の駆動軸および顎受けを電動で駆動させる手段と、で構成される眼科機器において、制御用PCと本体の通信が確立されていない状態にて、本体の電源をOFFからONの状態に遷移させると、梱包姿勢になり、制御用PCと本体の通信が確立されている場合には、検眼待機姿勢になることを特徴とする。
【００８２】
或いは、制御用PCで本体の姿勢制御をする手段と、本体の駆動軸および顎受けを電動で駆動させる手段と、電源をＯＦＦする手段と、電源ＯＦＦを遅延させる手段と、で構成される眼科機器において、本体の電源をＯＦＦすると、梱包姿勢になることを特徴とする。
【００８３】
更には、制御用PCで本体の姿勢制御をする手段と、本体の駆動軸および顎受けを電動で駆動させる手段と、操作信号が無い場合の時間を検知する手段と、前記の操作信号が一定時間送られてこない場合に検眼待機位置に姿勢を位置決めするものにおいて、検眼待機位置に姿勢を位置決め後に一定時間操作信号が送られてこない場合は、梱包時の姿勢に位置決めすることを特徴とする。
［実施例２］
実施例２の眼科装置について、図３４に基づき説明する。
実施例２の眼科装置は、実施例１の眼科装置と比較して、CPUユニット136と電源ユニット138の間にバッテリー3403が構成されること、電源ユニットにAC電源入力が切れた際の電気信号をCPUユニットへ送出すること、CPUユニットは電源ユニットから送出されたAC切断信号を受信しXYZユニット108を梱包姿勢に変更させることが追加されている。
【００８４】
図３４のブロック図は、実施例１のブロック図１、図２との差分である。3401は、CPUユニットである。実施例１では、136に相当する。3402は、電源ユニットである。実施例１では、138に相当する。3403は24Vのバッテリーである。3404はアースである。その他の構成は同じである。
電源スイッチ150がONされている場合は、バッテリー3403は充電される。電源スイッチ150がOFFされると、バッテリー3403は、CPUユニット3401へ電源を供給する。その際に、電源ユニット3402は、CPUユニット3401へAC電源が切断された信号を送出する。CPUユニット3401は、前記の信号を受信すると、光学ヘッド部105を梱包姿勢に変更する。
【００８５】
図３５は、実施例２のアクティビティ図である。3501は、アクティビティ図の初期状態である。ステップ3502では、電源がONされているか否かの判断部である。電源がONされている場合は、ステップ3503とステップ3504を並列に処理する。ステップ3503は、実施例１で説明した図８の処理である。ステップ3504は、バッテリー3403を充電する処理である。この処理が終われば、ステップ3502へ戻り、AC電源がONされている限りは、ループ処理を繰り返す。AC電源がOFFされた場合は、ステップ3504とステップ3506からステップ3509の処理を並列に処理する。ステップ3505は、バッテリー3506が放電する処理である。ステップ3506は、電源ユニット3402がAC切断信号を送出する。ステップ3507では、CPUユニットがAC切断信号を受信する。ステップ3508では実施例１で説明した図１０の定義済み処理を実施する。この処理は、光学ヘッド部105を梱包姿勢にする処理である。ステップ3509では、CPUユニット3401が、バッテリー3403の放電を遮断する。これらの並列処理が終了すると、ステップ3510へ進む。ステップ3510はアクティビティ図の終了状態である。
以上の例では、電源スイッチが切られた場合に、光学ヘッド部105が梱包姿勢になるので、梱包時や移動時の時間的なロスが少なくて済む。
【００８６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００８７】
101  眼科装置
105  光学ヘッドユニット部
106  ベースユニット部
107  顎受けユニット部
136  CPUユニット部
156  制御用PC
【図１】
2014045900.tif 000003
【図２】
2014045900.tif 000004
【図３】
2014045900.tif 000005
【図４】
2014045900.tif 000006
【図５】
2014045900.tif 000007
【図６】
2014045900.tif 000008
【図７】
2014045900.tif 000009
【図８】
2014045900.tif 000010
【図９】
2014045900.tif 000011
【図１０】
2014045900.tif 000012
【図１１】
2014045900.tif 000013
【図１２】
2014045900.tif 000014
【図１３】
2014045900.tif 000015
【図１４】
2014045900.tif 000016
【図１５】
2014045900.tif 000017
【図１６】
2014045900.tif 000018
【図１７】
2014045900.tif 000019
【図１８】
2014045900.tif 000020
【図１９】
2014045900.tif 000021
【図２０】
2014045900.tif 000022
【図２１】
2014045900.tif 000023
【図２２】
2014045900.tif 000024
【図２３】
2014045900.tif 000025
【図２４】
2014045900.tif 000026
【図２５】
2014045900.tif 000027
【図２６】
2014045900.tif 000028
【図２７】
2014045900.tif 000029
【図２８】
2014045900.tif 000030
【図２９】
2014045900.tif 000031
【図３０】
2014045900.tif 000032
【図３１】
2014045900.tif 000033
【図３２】
2014045900.tif 000034
【図３３】
2014045900.tif 000035
【図３４】
2014045900.tif 000036
【図３５】
2014045900.tif 000037