(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-29
(45)【発行日】2022-12-07
(54)【発明の名称】エミュレータ
(51)【国際特許分類】
G06F 9/44 20180101AFI20221130BHJP
G06F 9/455 20060101ALI20221130BHJP
【FI】
G06F9/44
G06F9/455
(21)【出願番号】P 2018208057
(22)【出願日】2018-11-05
【審査請求日】2021-09-16
(73)【特許権者】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】宮保 勝信
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2005-284953(JP,A)
【文献】特開平06-067747(JP,A)
【文献】特表2009-534768(JP,A)
【文献】特開2013-168072(JP,A)
【文献】特開2013-097702(JP,A)
【文献】特開2015-152973(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/77
9/44ー9/455
(57)【特許請求の範囲】
【請求項1】
スレーブ端末に対するオペレータの操作を模倣するエミュレータであって、
マスター端末から送信されたエミュレートプログラムを記憶するメモリと、
前記スレーブ端末と前記エミュレータとを接続するバスの電源ラインの電圧変化の検出に応じて前記エミュレートプログラムの実行を開始するプロセッサと、
を具備
し、
前記プロセッサは、前記電源ラインを介して前記スレーブ端末から供給される第一電源が前記エミュレートプログラムの実行中に中断される場合、前記エミュレータに接続されたACアダプタから供給される第二電源を使用して前記エミュレートプログラムの実行を継続する、
エミュレータ。
【請求項2】
前記プロセッサは、前記第一電源の供給が中断してから前記第一電源の供給が復活するまでの間だけ、前記第二電源を使用して前記エミュレートプログラムを実行する、
請求項
1に記載のエミュレータ。
【請求項3】
前記メモリは、複数のそれぞれの言語のキーボードにそれぞれ対応する複数のテーブルであって、前記キーボードの各キーと各キーコードとの対応関係を示す前記複数のテーブルを記憶し、
前記プロセッサは、前記エミュレートプログラムに含まれるコマンドに従って、前記複数のテーブルから何れか一つのテーブルを選択する、
請求項1に記載のエミュレータ。
【請求項4】
スレーブ端末に対するオペレータの操作を模倣するエミュレータであって、
マスター端末から送信されたエミュレートプログラムを記憶するメモリと、
前記スレーブ端末により動作が制御される制御対象装置と前記エミュレータとを接続する入出力ポートと、
前記入出力ポートを介して前記制御対象装置から受信される操作開始要求に従って前記エミュレートプログラムの実行を開始するプロセッサと、
を具備するエミュレータ。
【請求項5】
前記プロセッサは、前記エミュレートプログラムに従った前記操作の完了に応じて、操作完了通知を前記入出力ポートを介して前記制御対象装置へ送信する、
請求項
4に記載のエミュレータ。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、エミュレータに関する。
【背景技術】
【0002】
キーボードやマウスを用いてコンピュータに対して行われる入力操作を模倣して動作する装置として「エミュレータ」が知られている。人間がコンピュータに対して行う設定作業や、人間がコンピュータを用いて行う作業を、人間の代わりにエミュレータに行わせることにより、人間の作業工数を削減することができる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2014-049005号公報
【文献】特開2013-168072号公報
【文献】特開平07-110731号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
省力化や作業ミスの発生頻度の低下のために、作業工数をさらに削減することができるエミュレータが望まれている。
【0005】
開示の技術は、上記に鑑みてなされたものであって、作業工数をさらに削減することを目的とする。
【課題を解決するための手段】
【0006】
開示の第一の態様では、スレーブ端末に対するオペレータの操作を模倣するエミュレータは、メモリと、プロセッサとを有する。前記メモリは、マスター端末から送信されたエミュレートプログラムを記憶する。前記プロセッサは、前記スレーブ端末と前記エミュレータとを接続するバスの電源ラインの電圧変化の検出に応じて前記エミュレートプログラムの実行を開始する。
【0007】
開示の第二の態様では、スレーブ端末に対するオペレータの操作を模倣するエミュレータは、メモリと、入出力ポートと、プロセッサとを有する。前記メモリは、マスター端末から送信されたエミュレートプログラムを記憶する。前記入出力ポートは、前記スレーブ端末により動作が制御される制御対象装置と前記エミュレータとを接続する。前記プロセッサは、前記入出力ポートを介して前記制御対象装置から受信される操作開始要求に従って前記エミュレートプログラムの実行を開始する。
【発明の効果】
【0008】
開示の態様によれば、作業工数をさらに削減することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施例1のエミュレータの構成例を示す図である。
【
図2】
図2は、実施例1のキーボードテーブルの一例を示す図である。
【
図3】
図3は、実施例1のキーボードテーブルの一例を示す図である。
【
図4】
図4は、実施例1のエミュレータの処理例の説明に供するフローチャートである。
【
図5】
図5は、実施例1のエミュレータの処理例の説明に供するフローチャートである。
【
図6】
図6は、実施例1のエミュレートシステムの接続形態の一例を示す図である。
【
図7】
図7は、実施例1のエミュレートプログラムの一例を示す図である。
【
図8】
図8は、実施例1のエミュレートシステムの接続形態の一例を示す図である。
【
図9】
図9は、実施例1のエミュレートシステムの処理シーケンスの一例を示す図である。
【
図10】
図10は、実施例2のエミュレートシステムの接続形態の一例を示す図である。
【
図11】
図11は、実施例2のエミュレートプログラムの一例を示す図である。
【
図12】
図12は、実施例2の撮影ロボットの処理例の説明に供するフローチャートである。
【
図13】
図13は、実施例2のスレーブ端末の表示画面例を示す図である。
【
図14】
図14は、実施例2のエミュレートシステムの処理シーケンスの一例を示す図である。
【
図15】
図15は、実施例3のエミュレートシステムの接続形態の一例を示す図である。
【
図16】
図16は、実施例3のエミュレートプログラムの一例を示す図である。
【
図17】
図17は、実施例3のスレーブ端末の表示画面例を示す図である。
【
図18】
図18は、実施例3のエミュレートシステムの処理シーケンスの一例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本願の開示するエミュレータの実施例を図面に基づいて説明する。なお、この実施例により本願の開示するエミュレータが限定されるものではない。また、実施例において同一の機能を有する構成、及び、同一の処理を行うステップには同一の符号を付す。
【0011】
[実施例1]
<エミュレータの構成>
図1は、実施例1のエミュレータの構成例を示す図である。
図1において、エミュレータEMは、プロセッサ11と、メモリ12と、USB(Universal Serial Bus)規格のコネクタ(以下では「USBコネクタ」と呼ぶことがある)13-1,13-2と、スイッチ14と、ダイオード15-1,15-2と、定電圧回路16とを有する。また、エミュレータEMは、DIO(Digital Input/Output)ポート17と、エミュレート開始スイッチ18と、エミュレート停止スイッチ19と、強制オンスイッチ20とを有する。
【0012】
プロセッサ11の一例として、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)等が挙げられる。メモリ12の一例として、SDRAM(Synchronous Dynamic Random Access Memory)等のRAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等が挙げられる。
【0013】
USBコネクタ13-1は、VBUS端子VB1と、D端子DA1とを有する。USBコネクタ13-2は、VBUS端子VB2と、D端子DA2とを有する。D端子DA1,DA2の各々はD+端子とD-端子とのペアで形成されるが、以下では、説明を簡便にするために、D+端子とD-端子とのペアを「D端子」と呼ぶものとする。VBUS端子VB1,VB2は、プロセッサ11への電源供給用の端子である。D端子DA1,DA2は、信号伝送用の端子である。VBUS端子VB1からは電源ラインLV1が延び、VBUS端子VB2からは電源ラインLV2が延びている。また、D端子DA1からは信号ラインLD1が延び、D端子DA2からは信号ラインLD2が延びている。
【0014】
USBコネクタ13-1には、例えばマスター端末MTが接続され、USBコネクタ13-2には、例えばスレーブ端末STが接続される。マスター端末MTは、エミュレータEMへのエミュレートプログラムの供給元の端末であり、スレーブ端末STは、エミュレータEMによるエミュレート対象の端末である。つまり、エミュレータEMは、スレーブ端末STに対するオペレータの操作を模倣するエミュレータである。例えば、エミュレータEMは、スレーブ端末STに対して、HID(Human Interface Device)準拠のキーボードを用いた入力操作をオペレータに代わって行う。
【0015】
エミュレート開始スイッチ18及びエミュレート停止スイッチ19は、モーメンタリ動作する。強制オンスイッチ20は、オルタネート動作する。
【0016】
メモリ12には、予め、
図2に示すキーボードテーブルTJPと、
図3に示すキーボードテーブルTENとが記憶されている。
図2及び
図3は、実施例1のキーボードテーブルの一例を示す図である。キーボードテーブルTJP(
図2)は、日本語キーボードに対応するテーブルであって、キーボードテーブルTJPには、日本語キーボードの各キーと各キーコードとの対応関係が示されている。キーボードテーブルTEN(
図3)は、英語キーボードに対応するテーブルであって、キーボードテーブルTENには、英語キーボードの各キーと各キーコードとの対応関係が示されている。日本語キーボードと英語キーボードとでは、一部のキーの配列が異なる。例えば、キー「@」については、日本語キーボードと英語キーボードとの間でキーボード上における物理的なキーの位置が異なるため、キーボードテーブルTJPが示すように、日本語キーボードにおけるキー「@」に対応するキーコードは「2F」であるのに対し、キーボードテーブルTENが示すように、英語キーボードにおけるキー「@」に対応するキーコードは「1F」である。また例えば、日本語キーボードにおけるキー「@」と英語キーボードにおける「[」とについては、キーボード上における物理的なキーの位置が同じであるため、キーボードテーブルTJP,TENに示すように、日本語キーボードにおけるキー「@」に対応するキーコードと、英語キーボードにおけるキー「[」に対応するキーコードとは「2F」で同一である。また、キーボードテーブルTJP,TENにおいて“MODIFIER”の値はshiftキーの押下の有無(“2”:有り、“0”:無し)を示す。なお、
図2及び
図3には、説明を簡便にするために、主要なキーのみが抜粋されて記載されている。また、メモリ12は、日本語及び英語以外の他の言語のキーボードに対応するキーボードテーブルをさらに記憶しても良い。
【0017】
<エミュレータの処理>
図4及び
図5は、実施例1のエミュレータの処理例の説明に供するフローチャートである。
図4に示すフローチャートは、所定の時間間隔で開始される。
【0018】
図4において、ステップS101では、プロセッサ11は、電源ラインLV2の電圧(以下では「LV2電圧」と呼ぶことがある)を監視し、LV2電圧の変化を検出したか否かを判断する。プロセッサ11は、例えば、LV2電圧が0Vから上昇して閾値TH1以上となったときに、LV2電圧の変化を検出する。閾値TH1は、例えば、4Vに設定される。プロセッサ11がLV2電圧の変化を検出したときは(ステップS101:Yes)、処理はステップS111へ進み、プロセッサ11がLV2電圧の変化を検出しないときは(ステップS101:No)、処理はステップS103へ進む。
【0019】
ステップS103では、プロセッサ11は、マスター端末MTから信号ラインLD1を介してエミュレート開始コマンドを受信したか否かを判断する。プロセッサ11がエミュレート開始コマンドを受信したときは(ステップS103:Yes)、処理はステップS111へ進み、プロセッサ11がエミュレート開始コマンドを受信していないときは(ステップS103:No)、処理はステップS105へ進む。
【0020】
ステップS105では、プロセッサ11は、マスター端末MTから信号ラインLD1を介してエミュレート停止コマンドを受信したか否かを判断する。プロセッサ11がエミュレート停止コマンドを受信したときは(ステップS105:Yes)、処理はステップS113へ進み、プロセッサ11がエミュレート停止コマンドを受信していないときは(ステップS105:No)、処理はステップS107へ進む。
【0021】
ステップS107では、プロセッサ11は、エミュレート開始スイッチ18が押下されたか否かを判断する。エミュレート開始スイッチ18が押下されたときは(ステップS107:Yes)、処理はステップS111へ進み、エミュレート開始スイッチ18が押下されていないときは(ステップS107:No)、処理はステップS109へ進む。
【0022】
ステップS109では、プロセッサ11は、エミュレート停止スイッチ19が押下されたか否かを判断する。エミュレート停止スイッチ19が押下されたときは(ステップS109:Yes)、処理はステップS113へ進み、エミュレート停止スイッチ19が押下されていないときは(ステップS109:No)、処理は終了する。
【0023】
ステップS111では、プロセッサ11は、「実行モード」となって、エミュレートプログラムの実行を開始する。一方で、ステップS113では、プロセッサ11は、「停止モード」となって、エミュレートプログラムの実行を停止する。
【0024】
図5に、プロセッサ11が実行モードにあるときの処理例を示す。
【0025】
図5において、ステップS201の1回目の処理では、プロセッサ11は、メモリ12に記憶されているエミュレートプログラムを形成する複数のコマンドのうち、メモリ12においてエミュレートプログラムが記憶されている領域(以下では「プログラム記憶領域」と呼ぶことがある)の先頭アドレスに格納されているコマンドをメモリ12からリードし、リードしたコマンドを解釈する。また、ステップS201の2回目以降の処理では、プロセッサ11は、ステップS209でインクリメントしたアドレスに格納されているコマンドをメモリ12からリードし、リードしたコマンドを解釈する。
【0026】
次いで、ステップS203では、プロセッサ11は、リードしたコマンドがキーボード入力を示すコマンドであるか否かを判断する。リードされたコマンドがキーボード入力を示すコマンドであるときは(ステップS203:Yes)、処理はステップS205へ進み、リードされたコマンドがキーボード入力を示すコマンドでないときは(ステップS203:No)、ステップS205の処理は行われずに、処理はステップS207へ進む。
【0027】
ステップS205では、プロセッサ11は、コマンドによって示されるキーを、キーボードテーブルTJP(
図2)またはキーボードテーブルTEN(
図3)に従って、キーコードに変換する。
【0028】
次いで、ステップS207では、プロセッサ11は、コマンドを実行する。
【0029】
次いで、ステップS209では、プログラム記憶領域のアドレスをインクリメントする。
【0030】
次いで、ステップS211では、プロセッサ11は、エミュレートプログラムに含まれる全コマンドの実行が完了したか否かを判断する。全コマンドの実行が完了していないときは(ステップS211:No)、処理はステップS201に戻り、全コマンドの実行が完了したときは(ステップS211:Yes)、処理はステップS213へ進む。
【0031】
ステップS213では、プロセッサ11は、停止モードとなって、エミュレートプログラムの実行を停止する。
【0032】
次いで、ステップS215では、プロセッサ11は、エミュレートプログラムの実行完了通知を、USBコネクタ13-2に接続されているスレーブ端末STへ信号ラインLD2を介して送信する。
【0033】
<エミュレートシステムの動作>
図6及び
図8は、実施例1のエミュレートシステムの接続形態の一例を示す図である。
図7は、実施例1のエミュレートプログラムの一例を示す図である。
図9は、実施例1のエミュレートシステムの処理シーケンスの一例を示す図である。以下、スレーブ端末STに対してオペレータが手作業で行っていたMACアドレスの修正作業をエミュレータEMがオペレータに代わって行う場合の動作例について説明する。
【0034】
図6に示す接続形態1は、マスター端末MTがエミュレータEMへエミュレートプログラムを転送する際の接続形態であり、
図8に示す接続形態2は、エミュレータEMがスレーブ端末STに対してエミュレートプログラムを実行する際の接続形態である。以下、接続形態1と接続形態2とに分けて説明する。
【0035】
<接続形態1>
図6に示すように、接続形態1では、エミュレータEMのUSBコネクタ13-1にマスター端末MTがUSB接続される。
【0036】
オペレータは、USBコネクタ13-1にマスター端末MTを接続したときにエミュレータEMの強制オンスイッチ20をオンにする。強制オンスイッチ20がオンにされることにより、スイッチ14がオンとなり、VBUS端子VB1と定電圧回路16とが、スイッチ14及びダイオード15-1を介して接続される。これにより、マスター端末MTからプロセッサ11へ電源ラインLV1を介して供給される電源(以下では「マスター端末電源」と呼ぶことがある)によって、プロセッサ11が駆動することができる。つまり、マスター端末MTがUSBコネクタ13-1に接続された場合、プロセッサ11はマスター端末MTによりバスパワー駆動することができる。また、マスター端末MTがUSBコネクタ13-1に接続された場合、電源ラインLV1の電圧(以下では「LV1電圧」と呼ぶことがある)は0Vから5Vとなるため、定電圧回路16は、5Vの電圧を3.3Vに降圧し、降圧後のマスター端末電源をプロセッサ11に供給する。
【0037】
また、マスター端末MTがUSBコネクタ13-1に接続されると、マスター端末MTに記憶されている制御コマンド及びエミュレートプログラムが、エミュレータEMへ転送される。マスター端末MTから転送された制御コマンド及びエミュレートプログラムは、D端子DA1及び信号ラインLD1を介して、プロセッサ11に入力される。プロセッサ11は、制御コマンドをメモリ12の制御コマンド記憶領域に格納し、エミュレートプログラムをメモリ12のプログラム記憶領域に格納する。
【0038】
図7に、エミュレータEMがスレーブ端末STのMACアドレスの修正作業を行う場合のエミュレートプログラムの一例を示す。
図7に示すエミュレートプログラムPROG1(PROG=1)は、L101~L127の27行のコマンド群で形成される。
【0039】
行L101のコマンドは、「VBUS端子VB2からの電源供給開始後、USB通信が可能になるまで待機する」ことを示す。
【0040】
行L102のコマンドは、「英語キーボードによる動作を選択する」ことを示す。
【0041】
行L103のコマンドは、「DELキーを30回押下後、3秒間待機する」ことを示す。
【0042】
行L104のコマンドは、「“PASSWORD”の文字列をキーボード入力後、ENTERキーを押下する」ことを示す。
【0043】
行L105のコマンドは、「VBUS端子VB1からの一時的な電源供給(セルフパワー供給)を5秒間有効にする」ことを示す。
【0044】
行L106のコマンドは、「LEFTキーを1回、DNキーを3回、ENTERキーを2回押下する」ことを示す。
【0045】
行L107のコマンドは、「UDキーを3回、ENTERキーを2回押下する」ことを示す。
【0046】
行L108のコマンドは、「USB通信が可能になるまで待機する」ことを示す。
【0047】
行L109のコマンドは、「DELキーを30回押下後、3秒間待機する」ことを示す。
【0048】
行L110のコマンドは、「“PASSWORD”の文字列をキーボード入力後、ENTERキーを押下する」ことを示す。
【0049】
行L111のコマンドは、「RIGHTキーを3回、DNキーを3回、-キーを1回押下する」ことを示す。
【0050】
行L112のコマンドは、「RIGHTキーを1回、ENTERキーを2回押下する」ことを示す。
【0051】
行L113のコマンドは、「USB通信が可能になるまで待機し、USB通信が可能になってから10秒間待機する」ことを示す。
【0052】
行L114のコマンドは、「“EEPUPDATE/GUI”の文字列をキーボード入力してENTERキーを押下後、5秒間待機する」ことを示す。
【0053】
行L115のコマンドは、「DNキーを押下し、ENTERキーを2回押下し、RIGHTキーを押下し、ENTERキーを押下し、“FFFF”の文字列をキーボード入力し、ENTERキーを押下し、ESCキーを押下し、ENTERキーを押下し、ESCキーを押下し、DNキーを押下し、ENTERキーを2回押下し、RIGHTキーを押下し、ENTERキーを押下し、“F117”の文字列をキーボード入力し、ENTERキーを押下し、ESCキーを押下し、ENTERキーを押下し、ESCキーを押下する」ことを示す。
【0054】
行L116のコマンドは、「DNキーを2回押下し、ENTERキーを2回押下し、RIGHTキーを押下し、ENTERキーを押下し、“FFFF”の文字列をキーボード入力し、ENTERキーを押下し、ESCキーを押下し、ENTERキーを押下し、ESCキーを押下し、DNキーを2回押下し、ENTERキーを2回押下し、RIGHTキーを押下し、ENTERキーを押下し、“F117”の文字列をキーボード入力し、ENTERキーを押下し、ESCキーを押下し、ENTERキーを押下し、ESCキーを押下する」ことを示す。
【0055】
行L117のコマンドは、「Xキーを押下する」ことを示す。
【0056】
行L118のコマンドは、「左CTRLキーと、左ALTキーと、DELキーとを同時に押下する」ことを示す。
【0057】
行L119のコマンドは、「USB通信が可能になるまで待機する」ことを示す。
【0058】
行L120のコマンドは、「DELキーを30回押下後、3秒間待機する」ことを示す。
【0059】
行L121のコマンドは、「“PASSWORD”の文字列をキーボード入力後、ENTERキーを押下する」ことを示す。
【0060】
行L122のコマンドは、「VBUS端子VB1からの一時的な電源供給(セルフパワー供給)を5秒間有効にする」ことを示す。
【0061】
行L123のコマンドは、「LEFTキーを1回、DNキーを3回、ENTERキーを2回押下する」ことを示す。
【0062】
行L124のコマンドは、「UDキーを3回、ENTERキーを2回押下する」ことを示す。
【0063】
行L125のコマンドは、「USB通信が可能になるまで待機する」ことを示す。
【0064】
行L126のコマンドは、「USB通信が可能になるまで待機する」ことを示す。
【0065】
行L127のコマンドは、「5秒間待機し、日本語キーボードでの動作を選択し、“WINPASS”の文字列をキーボード入力し、ENTERキーを押下する」ことを示す。
【0066】
また、“PWON=1”という制御コマンドがマスター端末MTからエミュレータEMへ転送される。制御コマンド“PWON=1”は、「電源が供給されたときにエミュレートプログラムPROG1の実行を開始する」ことを示す。
【0067】
<接続形態2>
図8に示すように、接続形態2では、エミュレータEMのUSBコネクタ13-1にACアダプタ21がUSB接続され、エミュレータEMのUSBコネクタ13-2にスレーブ端末STがUSB接続される。エミュレート対象となるスレーブ端末STは、HID準拠のキーボード及びマウスとしてエミュレータEMを認識する。
【0068】
オペレータは、USBコネクタ13-1にACアダプタ21を接続したときは、エミュレータEMの強制オンスイッチ20をオフにする。
【0069】
USBコネクタ13-1に接続されるACアダプタ21は、商用電源22に接続されており、商用電源22から供給される100Vの交流電源を5Vの直流電源に変換する。よって、プロセッサ11がスイッチ14をオンにしたときに、プロセッサ11は、ACアダプタ21から電源ラインLV1を介してプロセッサ11へ供給される電源(以下では「ACアダプタ電源」と呼ぶことがある)によって駆動することができる。つまり、商用電源22と接続されたACアダプタ21がUSBコネクタ13-1に接続されている場合、プロセッサ11はACアダプタ電源によりセルフパワー駆動することが可能になる。
【0070】
また、USBコネクタ13-2にスレーブ端末STが接続されると、スレーブ端末STからプロセッサ11へ電源ラインLV2を介して供給される電源(以下では「スレーブ端末電源」と呼ぶことがある)によって、プロセッサ11が駆動することができる。つまり、スレーブ端末STがUSBコネクタ13-2に接続された場合、プロセッサ11はスレーブ端末STによりバスパワー駆動することができる。
【0071】
また、スレーブ端末STがUSBコネクタ13-2に接続されたとき、LV2電圧は0Vから5Vとなるため、
図4のステップS101においてLV2電圧を監視しているプロセッサ11は、LV2電圧の変化を検出する(ステップS101:Yes)。よって、スレーブ端末STがUSBコネクタ13-2に接続されると、
図4における処理はステップS111へと進む。つまり、スレーブ端末STがUSBコネクタ13-2に接続されたとき、プロセッサ11は、LV2電圧の変化に応じて、
図5のフローチャートに従って、スレーブ端末STに対して制御コマンド及びエミュレートプログラムの実行を開始する。
【0072】
図9に、スレーブ端末STがエミュレータEMに接続された後の処理シーケンスを示す。
【0073】
図9において、スレーブ端末STの電源がオペレータによってオンにされると(ステップS301)、スレーブ端末STは、エミュレータEMのVBUS端子VB2を介して、エミュレータEMへのスレーブ端末電源の供給を開始する(ステップS302)。
【0074】
スレーブ端末電源の供給を開始されたエミュレータEMでは、プロセッサ11が、LV2電圧の変化を検出するため、制御コマンドC201に従って、エミュレートプログラムPROG1(PROG=1:
図7)の実行を開始する。
【0075】
次いで、プロセッサ11は、コマンドC202に従って、スレーブ端末電源の供給開始後にスレーブ端末STとのUSB通信が可能になるまで待機する。プロセッサ11が待機している間に、スレーブ端末STではUSBが初期化される(ステップS303)。スレーブ端末STでのUSBの初期化が完了すると、プロセッサ11とスレーブ端末STとのUSB通信が可能になる。
【0076】
次いで、プロセッサ11は、コマンドC203に従って、英語キーボードによる動作を選択する。
【0077】
次いで、プロセッサ11は、コマンドC204に従ってDELキーを30回押下後、コマンドC205に従って3秒間待機する。
【0078】
プロセッサ11によりDELキーが押下されたため、スレーブ端末STは、DELキーの押下を検出してBIOS設定を起動させる(ステップS304)。また、スレーブ端末STは、プロセッサ11が3秒間待機している間に、スレーブ端末STが有するディスプレイに、BIOSパスワードの入力画面を表示させる(ステップS305)。
【0079】
プロセッサ11は、3秒間待機後に、コマンドC206に従って、BIOSパスワードをキー入力する。また、プロセッサ11は、コマンドC207に従って、スイッチ14を5秒間だけオンにすることにより、VBUS端子VB1からのセルフパワー供給を5秒間だけ有効にする。
【0080】
次いで、プロセッサ11は、コマンドC208,C209,C210に従って、LEFTキーを1回、DNキーを3回、ENTERキーを2回押下する。これにより、スレーブ端末STでは、BIOS初期値の読み込みが開始される(ステップS306)。スレーブ端末STでのBIOSの初期化中は、スレーブ端末STからエミュレータEMへのスレーブ端末電源の供給が中断される(ステップS306)。これに対し、プロセッサ11は、スレーブ端末電源の供給が中断される前に、コマンドC207に従って、VBUS端子VB1からのセルフパワー供給を5秒間有効にしているため、ステップS306でスレーブ端末電源の供給が中断されても、ACアダプタ21から供給される一時的なセルフパワーにより駆動を継続してエミュレートプログラムPROG1の実行を継続することができる。VBUS端子VB1からの一時的なセルフパワー供給を有効にする時間(例えば、5秒間)は、スレーブ端末電源の供給が中断してからスレーブ端末電源の供給が復活するまでに要する時間に設定される。
【0081】
次いで、プロセッサ11は、コマンドC211,C212に従って、UDキーを3回、ENTERキーを2回押下する。これにより、スレーブ端末STの再起動が開始される(ステップS307)。スレーブ端末STが再起動することにより、エミュレータEMへのスレーブ端末電源の供給が復活する。
【0082】
次いで、プロセッサ11は、コマンドC213に従って、スレーブ端末STとのUSB通信が可能になるまで待機する。プロセッサ11が待機している間に、スレーブ端末STではUSBが初期化される(ステップS308)。スレーブ端末STでのUSBの初期化が完了すると、プロセッサ11とスレーブ端末STとのUSB通信が可能になる。
【0083】
次いで、プロセッサ11は、コマンドC214に従ってDELキーを30回押下後、コマンドC215に従って3秒間待機する。
【0084】
プロセッサ11によりDELキーが押下されたため、スレーブ端末STは、DELキーの押下を検出してBIOS設定を起動させる(ステップS309)。また、スレーブ端末STは、プロセッサ11が3秒間待機している間に、スレーブ端末STが有するディスプレイに、BIOSパスワードの入力画面を表示させる(ステップS310)。
【0085】
プロセッサ11は、3秒間待機後に、コマンドC216に従って、BIOSパスワードをキー入力する。
【0086】
次いで、プロセッサ11は、コマンドC217,C218,C219に従って、RIGHTキーを3回、DNキーを3回、-キーを1回押下する。これにより、スレーブ端末STでは、ブートデバイスがUSBメモリに変更される(ステップS311)。
【0087】
次いで、プロセッサ11は、コマンドC220,C221に従って、RIGHTキーを1回、ENTERキーを2回押下する。これにより、スレーブ端末STの再起動が開始される(ステップS312)。
【0088】
以降、エミュレートプログラムPROG1(
図7)の行L113~L127のコマンドに従ってプロセッサ11が処理を行うことで、エミュレータEMは、スレーブ端末STに対するMACアドレスの修正作業を実行する。すなわち、エミュレータEMは、PAUSEコマンドによるUSB通信の可能待ちと、SLEEPコマンドによる時間待ちとを用いてスレーブ端末STでの処理と同期をとりながら、スレーブ端末STのUSBメモリからMS-DOSを起動してMACアドレス変更ユーティリティを用いてスレーブ端末STのMACアドレスを修正する。また、エミュレータEMは、スレーブ端末STのMACアドレスの修正後、正常に修正されたことを確認するためにスレーブ端末STを起動させる。
【0089】
以上のように、実施例1では、スレーブ端末STに対するオペレータの操作を模倣するエミュレータEMは、メモリ12と、プロセッサ11とを有する。メモリ12は、マスター端末MTから送信されたエミュレートプログラムPROG1(
図7:PROG=1)を記憶する。プロセッサ11は、スレーブ端末STとエミュレータEMとを接続するUSBの電源ラインLV2の電圧変化の検出に応じてエミュレートプログラムPROG1の実行を開始する。USBは、スレーブ端末STとエミュレータEMとを接続するバスの一例であり、電源ラインLV2は、バスの電源ラインの一例である。
【0090】
こうすることで、エミュレータEMに接続されたスレーブ端末STの電源がオンにされるのと同期して、エミュレータEMは、スレーブ端末STに対するエミュレートを自動的に開始することができるため、作業工数をさらに削減することができる。
【0091】
また実施例1では、プロセッサ11は、スレーブ端末電源がエミュレートプログラムPROG1の実行中に中断される場合(ステップS306)、ACアダプタ電源を使用してエミュレートプログラムPROG1の実行を継続する。
【0092】
こうすることで、エミュレートによるスレーブ端末STのBIOSの初期化中であっても、エミュレータEMはエミュレートプログラムPROG1の実行を継続することができるため、エミュレートの処理効率を上げることができる。
【0093】
また実施例1では、プロセッサ11は、スレーブ端末電源の供給が中断してからスレーブ端末電源の供給が復活するまでの間だけ、ACアダプタ電源を使用してエミュレートプログラムPROG1を実行する。
【0094】
こうすることで、ACアダプタ電源の供給時間がスレーブ端末電源の供給が復活するまでに制限されるため、スレーブ端末STに対するエミュレート中にスレーブ端末STに不具合が生じた場合に、スレーブ端末STの電源を一旦オフにした後再度オンにすることで、スレーブ端末電源を用いたエミュレートを自動的に再開することができる。
【0095】
また実施例1では、プロセッサ11は、中断されたエミュレートプログラムPROG1の実行を、スレーブ端末STとのUSB通信が可能となったときに再開する(コマンドC213)。
【0096】
こうすることで、USB通信が不能な状態にあるスレーブ端末STに対する無駄なコマンド送信を防止することができる。
【0097】
また実施例1では、メモリ12は、キーボードテーブルTJPとキーボードテーブルTENとを記憶する。プロセッサ11は、エミュレートプログラムPROG1に含まれるコマンド(例えば、コマンドC203)に従って、キーボードテーブルTJPまたはキーボードテーブルTENの何れか一つを選択する。
【0098】
こうすることで、エミュレート対象のスレーブ端末STが搭載するオペレーティングシステムの言語に合ったキーボード入力をエミュレートすることができるため、キーボード入力のエミュレートにおける文字化けの発生を防止することができる。
【0099】
以上、実施例1について説明した。
【0100】
[実施例2]
実施例2のエミュレータEMは、実施例1同様、スレーブ端末STに対するオペレータの操作を模倣するエミュレータであり、例えば、スレーブ端末STに対して、HID準拠のマウスを用いた入力操作をオペレータに代わって行う。
【0101】
<エミュレートシステムの動作>
図10は、実施例2のエミュレートシステムの接続形態の一例を示す図である。
図10は、エミュレータEMがスレーブ端末STに対してエミュレートプログラムを実行する際の接続形態である。なお、マスター端末MTがエミュレータEMへエミュレートプログラムを転送する際の接続形態(
図6)は実施例1と同一であるため説明を省略する。
【0102】
図10の接続形態3に示すように、エミュレータEMがスレーブ端末STに対してエミュレートプログラムを実行する際には、エミュレータEMのUSBコネクタ13-2にスレーブ端末STがUSB接続され、エミュレータEMのDIOポート17に撮影ロボットORが接続される。撮影ロボットORはDIOポートPOを有し、DIOポートPOとDIOポート17とを介して撮影ロボットORとエミュレータEMとが接続される。また、スレーブ端末STは、撮影ロボットORに接続され、撮影ロボットORの動作を制御する。
【0103】
撮影ロボットORは、カメラCMと、軸XA,YA,ZAの3軸とを有する直交ロボットであり、これらの3軸の相対的な位置関係を変化させることにより、プリント基板PBに対するカメラCMの位置を調節する。撮影ロボットORは、カメラCMを用いて、撮影ロボットOR上に設置された複数のプリント基板PBの各々の表面をスレーブ端末STからの指示に従って順に撮影する。例えば、撮影ロボットORは、プリント基板PBに搭載された部品のロット情報等を撮影する。撮影ロボットORには、モーメンタリ動作するスタートスイッチSSが接続される。
【0104】
図11は、実施例2のエミュレートプログラムの一例を示す図である。
図11に示すエミュレートプログラムPROG2(PROG=2)は、L301,L302の2行のコマンド群で形成される。エミュレートプログラムPROG2は、マスター端末MTからエミュレータEMへ転送されてメモリ12のプログラム記憶領域に格納されている。
【0105】
行L301のコマンドは、「スレーブ端末STの表示画面サイズを(x,y)=(1024,768)に設定する」ことを示す。
【0106】
行L302のコマンドは、「マウスカーソルの座標を(x,y)=(512,576)に設定した後に、マウスを1回クリックする」ことを示す。
【0107】
また、“SW1=2”及び“DONE=500”という制御コマンドが、マスター端末MTからエミュレータEMへ転送されてメモリ12の制御コマンド記憶領域に格納されている。制御コマンド“SW1=2”は、「DIOポート17に信号が入力されたときにエミュレートプログラムPROG2の実行を開始する」ことを示す。また、制御コマンド“DONE=500”は、「エミュレートプログラムPROG2の実行完了時に、DIOポート17から信号を500ms間だけ出力する」ことを示す。
【0108】
図12は、実施例2の撮影ロボットの処理例の説明に供するフローチャートである。
図12に示すフローチャートは、スタートスイッチSSがオンにされたときに開始される。
【0109】
図12において、ステップS401では、撮影ロボットORは、撮影位置にカメラCMを移動させる。撮影ロボットOR上での各プリント基板PBの設置位置に応じてカメラCMの各撮影位置は予め定められているため、撮影ロボットORは、ステップS401の処理の都度、予め定められた撮影位置にカメラCMを順に移動させる。撮影ロボットORでは、カメラCMが撮影位置に移動することで、撮影準備が整う。
【0110】
次いで、ステップS403では、撮影準備が整った撮影ロボットORは、DIOポートPOから操作開始要求を送信する。DIOポートPOから送信された操作開始要求は、DIOポート17を介してエミュレータEMに受信される。
【0111】
次いで、ステップS405では、撮影操作ロボットORは、DIOポートPOを介して操作完了通知を受信したか否かを判断する。操作完了通知が受信されていない間は(ステップS405:No)、撮影操作ロボットORはステップS405の処理を繰り返して操作完了通知の受信を待ち、操作完了通知が受信されたときに(ステップS405:Yes)、処理はステップS407へ進む。
【0112】
ステップS407では、撮影ロボットORは、予め定められたすべての撮影位置での撮影が完了したか否かを判断する。すべての撮影位置での撮影が完了していない場合は(ステップS407:No)、処理はステップS401に戻り、すべての撮影位置での撮影が完了した場合は(ステップS407:Yes)、処理は終了する。
【0113】
図13は、実施例2のスレーブ端末の表示画面例を示す図である。
図13に示すように、スレーブ端末STの表示画面DS1は、(x,y)=(1024,768)のサイズを有する。また、表示画面DS1は表示領域R11と表示領域R12とに区分され、表示領域R11には、カメラCMによる撮影結果が表示され、表示領域R12には、撮影ボタンB1が表示される。撮影ボタンB1の中心の座標は(x,y)=(512,576)である。
【0114】
図14は、実施例2のエミュレートシステムの処理シーケンスの一例を示す図である。
【0115】
図14において、ステップS501では、オペレータは、撮影対象のプリント基板PBを撮影ロボットOR上の所定位置に設置した後、スタートスイッチSSをオンにする。
【0116】
スタートスイッチSSがオンにされると、撮影ロボットORは、撮影位置にカメラCMを移動させる(ステップS401)。
【0117】
次いで、撮影ロボットORは、DIOポートPOから操作開始要求を送信する(ステップS403)。
【0118】
次いで、撮影ロボットORは、DIOポートPOでの操作完了通知の受信を待つ(ステップS405)。
【0119】
一方で、ステップS403で撮影ロボットORのDIOポートPOから送信された操作開始要求は、DIOポート17を介してエミュレータEMに受信されてプロセッサ11に入力される。
【0120】
プロセッサ11は、DIOポート17から操作開始要求を入力されると、制御コマンドC401に従って、エミュレートプログラムPROG2(PROG=2:
図11)の実行を開始する。
【0121】
次いで、プロセッサ11は、コマンドC402に従って、スレーブ端末STの表示画面サイズを(x,y)=(1024,768)に設定する。
【0122】
次いで、プロセッサ11は、コマンドC403に従ってマウスカーソルの座標を(x,y)=(512,576)に設定した後、コマンドC404に従ってマウスを1回クリックする。
【0123】
プロセッサ11でのコマンドC403,C404の実行に従って、スレーブ端末STは、マウスカーソルを撮影ボタンB1の中心座標(x,y)=(512,576)に移動させた後、撮影ボタンB1をクリックする。撮影ボタンB1がクリックされると、スレーブ端末STは、撮影ロボットORのカメラCMに対して撮影実行指示を送信し、スレーブ端末STからの撮影実行指示に応じて、カメラCMは撮影を実行する(ステップS502)。
【0124】
プロセッサ11は、エミュレートプログラムPROG2(PROG=2:
図11)の最後のコマンドであるコマンドC404の実行が完了したとき、つまり、エミュレートプログラムPROG2に従って行う操作が完了したときに、DIOポート17から操作完了通知を送信する。DIOポート17から送信された操作完了通知は、DIOポートPOを介して撮影ロボットORに受信される。
【0125】
撮影ロボットORは、エミュレータEMから操作完了通知を受信すると、すべての撮影位置での撮影が完了したか否かを判断する(ステップS407)。すべての撮影位置での撮影が完了していない場合は(ステップS407:No)、撮影ロボットORの処理はステップS401に戻り、すべての撮影位置での撮影が完了した場合は(ステップS407:Yes)、撮影ロボットORの処理は終了する。
【0126】
以上のように、実施例2では、スレーブ端末STに対するオペレータの操作を模倣するエミュレータEMは、メモリ12と、DIOポート17と、プロセッサ11とを有する。メモリ12は、マスター端末MTから送信されたエミュレートプログラムPROG2(
図11:PROG=2)を記憶する。DIOポート17は、スレーブ端末STから撮影実行指示が与えられる撮影ロボットORと、エミュレータEMとを接続する。プロセッサ11は、DIOポート17を介して撮影ロボットORから受信される操作開始要求に従ってエミュレートプログラムPROG2の実行を開始する。
【0127】
こうすることで、撮影ロボットORにおいて撮影準備が整ったと同期して、エミュレータEMは、スレーブ端末STに対するエミュレートを自動的に開始することができるため、作業工数をさらに削減することができる。
【0128】
また実施例2では、プロセッサ11は、エミュレートプログラムPROG2に従った操作の完了に応じて、操作完了通知をDIOポート17を介して撮影ロボットORへ送信する。DIOポート17は、入出力ポートの一例である。撮影ロボットORは、スレーブ端末STからの指示に従って動作が制御される制御対象装置の一例である。撮影実行指示は、スレーブ端末STから撮影ロボットORに与えられる。
【0129】
こうすることで、エミュレータEMは、スレーブ端末STからの指示に応じた動作をする撮影ロボットORでの処理と同期をとりながら、スレーブ端末STに対するエミュレートを行うことができる。
【0130】
以上、実施例2について説明した。
【0131】
[実施例3]
実施例3のエミュレータEMは、実施例1同様、スレーブ端末STに対するオペレータの操作を模倣するエミュレータであり、例えば、スレーブ端末STに対して、HID準拠のマウスを用いた入力操作をオペレータに代わって行う。
【0132】
<エミュレートシステムの動作>
図15は、実施例3のエミュレートシステムの接続形態の一例を示す図である。
図15は、エミュレータEMがスレーブ端末STに対してエミュレートプログラムを実行する際の接続形態である。なお、マスター端末MTがエミュレータEMへエミュレートプログラムを転送する際の接続形態(
図6)は実施例1と同一であるため説明を省略する。
【0133】
図15の接続形態4に示すように、エミュレータEMがスレーブ端末STに対してエミュレートプログラムを実行する際には、エミュレータEMのUSBコネクタ13-2にスレーブ端末STがUSB接続され、モーメンタリ動作するフットスイッチFSがエミュレータEMのDIOポート17に接続される。また、スレーブ端末STは、塗布ロボットARに接続され、塗布ロボットARの動作を制御する。
【0134】
塗布ロボットARは、塗布ノズルANと、軸XA,YA,ZAの3軸とを有する直交ロボットであり、これらの3軸の相対的な位置関係を変化させることにより、プリント基板CBに対する塗布ノズルANの位置を調節する。塗布ロボットARは、塗布ノズルANから噴出される塗布剤を、スレーブ端末STからの指示に従って、塗布ロボットAR上に設置された複数のプリント基板CBの各々の表面に塗布する。
【0135】
図16は、実施例3のエミュレートプログラムの一例を示す図である。
図16に示すエミュレートプログラムPROG3(PROG=3)は、L501~L504の4行のコマンド群で形成される。エミュレートプログラムPROG3は、マスター端末MTからエミュレータEMへ転送されてメモリ12のプログラム記憶領域に格納されている。
【0136】
行L501のコマンドは、「スレーブ端末STの表示画面サイズを(x,y)=(1024,768)に設定する」ことを示す。
【0137】
行L502のコマンドは、「マウスカーソルの座標を(x,y)=(340,576)に設定した後に、マウスを1回クリックする」ことを示す。
【0138】
行L503のコマンドは、「Yキーを押下後に、ENTERキーを押下する」ことを示す。
【0139】
行L504のコマンドは、「マウスカーソルの座標を(x,y)=(680,576)に設定した後に、マウスを1回クリックする」ことを示す。
【0140】
また、“SW1=3”という制御コマンドが、マスター端末MTからエミュレータEMへ転送されてメモリ12の制御コマンド記憶領域に格納されている。制御コマンド“SW1=3”は、「DIOポート17に信号が入力されたときにエミュレートプログラムPROG3の実行を開始する」ことを示す。
【0141】
図17は、実施例3のスレーブ端末の表示画面例を示す図である。
図17に示すように、スレーブ端末STの表示画面DS2は、(x,y)=(1024,768)のサイズを有する。また、表示画面DS2は表示領域R21と表示領域R22とに区分され、表示領域R21には、塗布パターンAPが表示され、表示領域R22には、パターン選択ボタンB21及び塗布開始ボタンB22が表示される。パターン選択ボタンB21の中心の座標は(x,y)=(340,576)であり、塗布開始ボタンB22の中心の座標は(x,y)=(680,576)である。
【0142】
図18は、実施例3のエミュレートシステムの処理シーケンスの一例を示す図である。
【0143】
図18において、ステップS701では、オペレータは、塗布対象のプリント基板CBを塗布ロボットAR上の所定位置に設置した後、フットスイッチFSをオンにする。フットスイッチFSがオンにされたことにより、オン信号がDIOポート17を介してエミュレータEMに受信されてプロセッサ11に入力される。
【0144】
プロセッサ11は、DIOポート17からオン信号を入力されると、制御コマンドC601に従って、エミュレートプログラムPROG3(PROG=3:
図16)の実行を開始する。
【0145】
次いで、プロセッサ11は、コマンドC602に従って、スレーブ端末STの表示画面サイズを(x,y)=(1024,768)に設定する。
【0146】
次いで、プロセッサ11は、コマンドC603に従ってマウスカーソルの座標を(x,y)=(340,576)に設定した後、コマンドC604に従ってマウスを1回クリックする。
【0147】
プロセッサ11でのコマンドC603,C604の実行に従って、スレーブ端末STは、ステップS702において、マウスカーソルをパターン選択ボタンB21の中心座標(x,y)=(340,576)に移動させた後、パターン選択ボタンB21をクリックする。パターン選択ボタンB21がクリックされると、スレーブ端末STは、表示領域R21に塗布パターンAPを表示する。
【0148】
次いで、プロセッサ11は、コマンドC605,C606に従って、Yキーを押下後に、ENTERキーを押下する。
【0149】
プロセッサ11でのコマンドC605,C606の実行に従って、スレーブ端末STは、ステップS703において、“YES”を選択することにより塗布パターンAPを選択する。
【0150】
次いで、プロセッサ11は、コマンドC607に従ってマウスカーソルの座標を(x,y)=(680,576)に設定した後、コマンドC608に従ってマウスを1回クリックする。
【0151】
プロセッサ11でのコマンドC607,C608の実行に従って、スレーブ端末STは、ステップS704において、マウスカーソルを塗布開始ボタンB22の中心座標(x,y)=(680,576)に移動させた後、塗布開始ボタンB22をクリックする。塗布開始ボタンB22がクリックされると、スレーブ端末STは、塗布ロボットARに対して塗布開始指示を送信する。塗布開始指示には、ステップS703で選択された塗布パターンAPを示す情報が含まれる。
【0152】
そして、ステップS705では、スレーブ端末STからの塗布開始指示に従って、塗布ロボットARは、プリント基板CBに対する塗布剤の塗布を開始し、複数のプリント基板CBの各々に対して順に塗布パターンAPで塗布剤を塗布していく。
【0153】
以上、実施例3について説明した。
【符号の説明】
【0154】
EM エミュレータ
ST スレーブ端末
MT マスター端末
11 プロセッサ
12 メモリ
13-1,13-2 USBコネクタ
17 DIOポート