(57)【特許請求の範囲】
【請求項１】
各々に１つ以上の内部データ処理が含まれる複数のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を実行する外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なる、前記複数のＡＰＩを実行するデータ処理装置であって、
前記複数のＡＰＩの各々の名称に用いられている文字を解析して、前記複数のＡＰＩから、前記外部データ処理機器と前記データ処理装置との間の前記実行環境の違いにより前記外部データ処理機器では実行が必要であるが前記データ処理装置では実行の省略が可能な省略可能内部データ処理が含まれる省略可能ＡＰＩを抽出する抽出部と、
前記抽出部により抽出された前記省略可能ＡＰＩに含まれる前記省略可能内部データ処理の実行を省略して前記省略可能ＡＰＩを実行する実行部とを有するデータ処理装置。
【請求項２】
前記抽出部は、
名称に英数小文字のみが用いられているＡＰＩである第１のＡＰＩ以外のＡＰＩを、前記省略可能ＡＰＩとして抽出する請求項１に記載のデータ処理装置。
【請求項３】
前記抽出部は、
抽出した前記省略可能ＡＰＩを、
前記省略可能内部データ処理として、前記データ処理装置で実行した場合には常にエラー終了又は常に正常終了することが確定している内部データ処理が含まれているＡＰＩである第２のＡＰＩと、
前記省略可能内部データ処理として、前記外部データ処理機器でも前記データ処理装置でも実行される内部処データ処理であるが、前記データ処理装置で実行する際には実行の省略が可能な内部データ処理が含まれているＡＰＩである第３のＡＰＩとのいずれかに分類し、
前記実行部は、
前記第２のＡＰＩを実行する第２のＡＰＩ実行部と、前記第３のＡＰＩを実行する第３のＡＰＩ実行部とを有し、
前記抽出部により抽出された前記省略可能ＡＰＩが前記第２のＡＰＩである場合に、前記第２のＡＰＩ実行部に前記第２のＡＰＩを実行させ、
前記抽出部により抽出された前記省略可能ＡＰＩが前記第３のＡＰＩである場合に、前記第３のＡＰＩ実行部に前記第３のＡＰＩを実行させる請求項２に記載のデータ処理装置。
【請求項４】
前記抽出部は、
抽出した前記省略可能ＡＰＩに既定の単語が含まれている場合に、前記省略可能ＡＰＩを前記第３のＡＰＩに分類し、抽出した前記省略可能ＡＰＩに前記既定の単語が含まれていない場合に、前記省略可能ＡＰＩを前記第２のＡＰＩに分類する請求項３に記載のデータ処理装置。
【請求項５】
各々に１つ以上の内部データ処理が含まれる複数のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を実行する外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なるコンピュータが、前記複数のＡＰＩを実行するデータ処理方法であって、
前記コンピュータが、前記複数のＡＰＩの各々の名称に用いられている文字を解析して、前記複数のＡＰＩから、前記外部データ処理機器と前記コンピュータとの間の前記実行環境の違いにより前記外部データ処理機器では実行が必要であるが前記コンピュータでは実行の省略が可能な省略可能内部データ処理が含まれる省略可能ＡＰＩを抽出し、
前記コンピュータが、抽出された前記省略可能ＡＰＩに含まれる前記省略可能内部データ処理の実行を省略して前記省略可能ＡＰＩを実行するデータ処理方法。
【請求項６】
各々に１つ以上の内部データ処理が含まれる複数のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を実行する外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なるコンピュータに、前記複数のＡＰＩを実行させるデータ処理プログラムであって、
前記複数のＡＰＩの各々の名称に用いられている文字を解析して、前記複数のＡＰＩから、前記外部データ処理機器と前記コンピュータとの間の前記実行環境の違いにより前記外部データ処理機器では実行が必要であるが前記コンピュータでは実行の省略が可能な省略可能内部データ処理が含まれる省略可能ＡＰＩを抽出する抽出処理と、
前記抽出処理により抽出された前記省略可能ＡＰＩに含まれる前記省略可能内部データ処理の実行を省略して前記省略可能ＡＰＩを実行する実行処理とを前記コンピュータに実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、外部データ処理機器で実行されるデータ処理を外部データ処理機器とは実行環境が異なるデータ処理装置で実行する技術に関する。
【背景技術】
【０００２】
ＣＮＣ（Ｃｏｍｐｕｔｅｒｉｚｅｄ  Ｎｕｍｅｒｉｃａｌ）機器等の機器で用いられる、工作機械による加工を支援する制御ソフトウェアは、シミュレーション機能を備える。ＣＮＣ機器は、工作機械の工具の位置及び／又は移動量をコンピュータによって数値で制御する機器である。また、工作機械による加工を支援する制御ソフトウェアは、例えばＣＡＤ／ＣＡＭ（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ／Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）である。【０００３】
シミュレーション機能により、実際に工作機械を使用した加工を行う前に加工結果を確認することができる。このため、シミュレーション機能により、意図通りの加工が可能であるか、工作機械を動作させても工具及び／又は加工物が損傷しないか等を事前に確認することができる。
このため、シミュレーション機能では、工作機械の動作を可能な限り忠実に再現することが求められる。工作機械の動作を忠実に再現する方法として、ＣＮＣ機器に実際に搭載されている制御ソフトウェアを使用する方法がある。具体的には、既存の仮想化技術を用いて、制御ソフトウェアを汎用ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上で動作させることで、忠実なシミュレーションを実現することができる。【０００４】
特許文献１では、制御ソフトウェアを実行ファイル（バイナリデータ）の状態で汎用ＰＣに移植する。制御ソフトウェアの実行環境は、ＣＮＣ機器と汎用ＰＣとでは大きく異なる。ここで、実行環境とは、プロセッサ、その他ハードウェア、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等のデータ処理を実行するためのハードウェア環境及びソフトウェア環境である。
このような実行環境の違いを吸収するために、特許文献１では、仮想化技術を用いてハードウェア処理及びＯＳ処理の変換が必要である。この仮想化技術は、汎用ＰＣ上でＣＮＣ機器でのハードウェア処理及びＯＳ処理を忠実に再現する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１５−５１１０４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上のように、特許文献１では、仮想化技術によりＣＮＣ機器でのハードウェア処理及びＯＳ処理を汎用ＰＣ上で再現する。一方で、特許文献１では、仮想化技術によって発生するオーバヘッドにより、シミュレーション機能の実行速度が低下してしまうという課題がある。【０００７】
本開示は、このような課題を解決することを主な目的とする。具体的には、本開示は、実行環境の違いから発生するオーバヘッドを削減することを主な目的とする。
【課題を解決するための手段】
【０００８】
本開示に係るデータ処理装置は、
外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なる、前記外部データ処理機器で実行されるデータ処理である実行データ処理を実行するデータ処理装置であって、
前記実行データ処理に含まれる内部データ処理のうち、前記外部データ処理機器と前記データ処理装置との間の前記実行環境の違いにより前記外部データ処理機器で前記実行データ処理を実行する際には実行が必要であるが前記データ処理装置で前記実行データ処理を実行する際には実行の省略が可能な内部データ処理を、省略可能内部データ処理として抽出する抽出部と、
前記抽出部により抽出された前記省略可能内部データ処理の実行を省略して前記実行データ処理を実行する実行部とを有する。
【発明の効果】
【０００９】
本開示によれば、実行環境の違いから発生するオーバヘッドを削減することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るデータ処理装置のハードウェア構成例を示す図。
【図２】実施の形態１に係るデータ処理装置の機能構成例を示す図。
【図３】実施の形態１に係る差分吸収部の内部構成例を示す図。
【図４】実施の形態１に係るシミュレーション実行部の動作の概要を示すフローチャート。
【図５】実施の形態１に係るＡＰＩ分類部の動作例を示すフローチャート。
【図６】実施の形態１に係る制御ソフトウェアに含まれるＡＰＩとＡＰＩ分類部の動作例を示す図。
【図７】実施の形態１に係る分類リストの例を示す図。
【図８】実施の形態１に係るＯＳ代替処理部の動作例を示すフローチャート。
【図９】実施の形態１に係るシステム固有値処理部の動作例を示すフローチャート。
【図１０】実施の形態１に係る簡易ＡＰＩ処理部の動作例を示すフローチャート。
【図１１】実施の形態１に係るシステム固有値処理部及び簡易ＡＰＩ処理部の動作例を示す図。
【発明を実施するための形態】
【００１１】
以下、実施の形態を図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【００１２】
実施の形態１．
＊＊＊構成の説明＊＊＊
［ハードウェア構成例］
図１は、本実施の形態に係るデータ処理装置１０のハードウェア構成例を示す。
【００１３】
データ処理装置１０は、外部のデータ処理機器である外部データ処理機器（不図示）とデータ処理の実行環境が異なっている。データ処理装置１０は、外部データ処理機器で実行されるデータ処理である実行データ処理を実行する。実行環境とは、前述の通り、プロセッサ、その他ハードウェア、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等のデータ処理を実行するためのハードウェア環境及びソフトウェア環境である。
データ処理装置１０の動作手順は、データ処理方法に相当する。また、データ処理装置１０の動作を実現するプログラムは、データ処理プログラムに相当する。
データ処理装置１０は、例えば汎用ＰＣである。本実施の形態では、汎用ＰＣであるデータ処理装置１０が、ＣＮＣ機器での工作機械の動作の制御をシミュレートするために、ＣＮＣ機器で実行される制御ソフトウェアを実行する例を説明する。本実施の形態で説明する例では、ＣＮＣ機器が外部データ処理機器に相当する。また、工作機械の制御のための制御ソフトウェアが実行データ処理に相当する。
【００１４】
データ処理装置１０は、ハードウェアとして、図１に示すように、プロセッサ１１、メモリ１２、表示装置１３、入力装置１４及びストレージ１５を備える。
これらハードウェアのうち少なくともプロセッサ１１、メモリ１２及びストレージ１５は、ＣＮＣ機器のプロセッサ、メモリ及びストレージとは性能、仕様等が異なる。また、データ処理装置１０には、ＣＮＣ機器に搭載されている、アンプとのインタフェース等のハードウェアも搭載されていない。
また、データ処理装置１０はＯＳ３０を備えるが、ＯＳ３０もＣＮＣ機器のＯＳとは性能、仕様等が異なる。例えば、ＣＮＣ機器のＯＳはリアルタイムＯＳであるが、データ処理装置１０のＯＳ３０はリアルタイムＯＳではない。
このようなハードウェア及びＯＳの違いにより、データ処理装置１０とＣＮＣ機器との間で実行環境の違いが生じる。
また、データ処理装置１０は、機能構成として、後述するようにシミュレーション実行部２０を備える。
ストレージ１５には、シミュレーション実行部２０の機能を実現するプログラム、ＯＳ３０及び制御ソフトウェア４０が記憶されている。制御ソフトウェア４０は、ＣＮＣ機器で実行される制御ソフトウェアである。制御ソフトウェア４０は、実行ファイル（バイナリデータ）の状態でストレージ１５に記憶されている。また、制御ソフトウェア４０には、複数のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）が含まれ、各ＡＰＩには１つ以上の内部データ処理が含まれる。つまり、制御ソフトウェア４０には、複数の内部データ処理が含まれる。
シミュレーション実行部２０の機能を実現するプログラム、ＯＳ３０及び制御ソフトウェア４０は、ストレージ１５からメモリ１２にロードされる。そして、プロセッサ１１がこれらを実行する。
また、ストレージ１５には、シミュレーション実行部２０がＡＰＩの分類に使用する分類リストが記憶されている。
メモリ１２には、シミュレーション実行部２０が制御ソフトウェア４０を実行して生成された解析データを格納するための領域が確保されている。
表示装置１３は、制御ソフトウェア４０の実行結果として解析データが描画された描画データを表示する。
入力装置１４は、データ処理装置１０のユーザから指示を受け付ける。入力装置１４は、例えば、データ処理装置１０のユーザからシミュレーション開始の指示を受け付ける。
【００１５】
［機能構成例］
図２は、本実施の形態に係るデータ処理装置１０の機能構成例を示す。
【００１６】
シミュレーション描画部２１は、制御ソフトウェア４０の実行によりシミュレートされる工作機械の挙動を描画し、描画データを表示装置１３に出力する。
【００１７】
制御部２２は、ストレージ１５から制御ソフトウェア４０を取得し、また、差分吸収部２３が制御ソフトウェア４０を実行するための制御を行う。
【００１８】
差分吸収部２３は、制御ソフトウェア４０の複数の内部データ処理のうちの少なくともいずれかを実行して、工作機械の動作のシミュレーションを行う。差分吸収部２３は、制御ソフトウェア４０の実行にあたり、ＣＮＣ機器の実行環境とデータ処理装置１０の実行環境との差分を吸収する。
【００１９】
ＯＳ３０は、データ処理装置１０上で動作するＯＳである。
【００２０】
［差分吸収部２３の内部構成例］
図３は、差分吸収部２３の内部構成例を示す。
【００２１】
ＡＰＩ分類部２３１は、ＯＳ及びハードウェア処理のＡＰＩの名称を解析する。ＡＰＩの名称に基づき、ＡＰＩのカテゴリーを識別し、ＡＰＩを複数のカテゴリーのいずれかに分類する。
【００２２】
例えば、ＡＰＩ分類部２３１は、複数のＡＰＩを、第１のカテゴリー、第２のカテゴリー及び第３のカテゴリーのいずれかに分類する。以下、第１のカテゴリーに分類されるＡＰＩを第１のＡＰＩという。また、第２のカテゴリーに分類されるＡＰＩを第２のＡＰＩという。また、第３のカテゴリーに分類されるＡＰＩを第３のＡＰＩという。
ＡＰＩ分類部２３１は、ＣＮＣ機器のＯＳが実行するＡＰＩと同じＡＰＩがＯＳ３０で管理されている場合に、当該ＡＰＩを第１のＡＰＩと判別する。第１のＡＰＩに含まれる内部データ処理は実行を省略することができない。
第２のＡＰＩと第３のＡＰＩは、省略可能内部データ処理が含まれているＡＰＩである。省略可能内部データ処理は、ＣＮＣ機器とデータ処理装置１０との間の実行環境の違いによりＣＮＣ機器で制御ソフトウェア４０を実行する際には実行が必要であるがデータ処理装置１０で制御ソフトウェア４０を実行する際には実行の省略が可能な内部データ処理である。
第２のＡＰＩに含まれる省略可能内部データ処理は、ＣＮＣ機器に固有の内部データ処理であるが、データ処理装置１０で実行した場合には常にエラー終了又は常に正常終了することが確定している内部データ処理である。
また、第３のＡＰＩに含まれる省略可能内部データ処理は、ＣＮＣ機器でもデータ処理装置１０でも実行される内部処データ処理であるが、データ処理装置１０が制御ソフトウェア４０を実行する際には実行の省略が可能な内部データ処理である。
ＡＰＩ分類部２３１は抽出部に相当する。また、ＡＰＩ分類部２３１で行われる処理は抽出処理に相当する。
【００２３】
ＯＳ代替処理部２３２は、第１のＡＰＩを実行する。
【００２４】
システム固有値処理部２３３は、第２のＡＰＩを実行する。
システム固有値処理部２３３は、第２のＡＰＩを実行する際に、第２のＡＰＩに含まれる省略可能内部データ処理の実行を省略する。
【００２５】
簡易ＡＰＩ処理部２３４は、第３のＡＰＩを処理する。
簡易ＡＰＩ処理部２３４は、第３のＡＰＩを実行する際に、第３のＡＰＩに含まれる省略可能内部データ処理の実行を省略する。
【００２６】
省略可能内部データ処理は、実行を省略してもシミュレーション精度への影響が無いデータ処理である。このため、システム固有値処理部２３３は、第２のＡＰＩの実行の際に省略可能内部データ処理の実行を省略する。また、簡易ＡＰＩ処理部２３４は、第３のＡＰＩの実行の際に省略可能内部データ処理の実行を省略する。
省略可能内部データ処理は、例えば、工作機械を物理的に動かすためにアンプへ指示を出して、モータを制御する処理である。ＣＮＣ機器は、制御ソフトウェア４０を解釈してアンプに指令を出し、モータを作動させて工作機械を動かす。データ処理装置１０におけるシミュレーションでは、アンプに指令が出たこと、モータにより工作機械が動いていることを表現する描画をシミュレーション描画部２１が生成できればよい。このように、シミュレーションでは、ＣＮＣ機器で工作機械を制御する際に発生する物理的な動作は必要無いため、アンプへ指示を出力する等の内部データ処理を省略することが可能である。
【００２７】
なお、システム固有値処理部２３３及び簡易ＡＰＩ処理部２３４を合わせて実行部２３５という。実行部２３５により行われる処理は実行処理に相当する。
【００２８】
＊＊＊動作の説明＊＊＊
［動作の概要］
図４は、本実施の形態に係るシミュレーション実行部２０の動作の概要を示すフローチャートである。
ユーザが入力装置１４にシミュレーションの開始を指示すると、シミュレーション描画部２１が動作を開始する。
【００２９】
ユーザからシミュレーションの開始が指示されると、シミュレーション描画部２１は、ステップＳ１０において、制御ソフトウェア４０の実行が完了しているか否かを判定する。
シミュレーション描画部２１は、メモリ１２上の制御ソフトウェア４０の解析データを全て処理し終えていれば、制御ソフトウェア４０の実行が完了していると判定する。
制御ソフトウェア４０の実行が完了していれば（ステップＳ１０でＹＥＳ）は、シミュレーション描画部２１は処理を終了する。
一方、制御ソフトウェア４０の実行が完了していなければ（ステップＳ１０でＮＯ）は、処理がステップＳ１１に進む。
【００３０】
ステップＳ１１では、シミュレーション描画部２１が、制御ソフトウェア４０の解析データがメモリ１２上に存在するかを判定する。
メモリ１２上に解析データが存在すれば（ステップＳ１１でＹＥＳ）、処理がＳ１７に進む。一方、メモリ１２上に解析データが存在しなければ（ステップＳ１１でＮＯ）、処理がステップＳ１２に進む。
【００３１】
ステップＳ１２では、シミュレーション描画部２１が制御部２２を起動する。
【００３２】
次に、ステップＳ１３では、制御部２２が制御ソフトウェア４０を解析する。
そして、制御部２２は、制御ソフトウェア４０の解析の結果、ステップＳ１４で、差分吸収部２３を起動する。
【００３３】
次に、ステップＳ１５において、差分吸収部２３が制御ソフトウェア４０を実行する。
そして、差分吸収部２３は、ステップＳ１６において、ステップＳ１４の実行結果を示す解析データをメモリ１２に格納する。
【００３４】
ステップＳ１７では、シミュレーション描画部２１が、メモリ１２に格納された解析データに対応する描画データを生成し、描画データを表示装置１３に出力する。
【００３５】
［ＡＰＩ分類部２３１の動作例］
図５は、差分吸収部２３のＡＰＩ分類部２３１の動作例を示すフローチャートである。
また、図６は、制御ソフトウェア４０に含まれるＡＰＩの例と、ＡＰＩ分類部２３１の各ＡＰＩに対する動作例を示す。
【００３６】
本実施の形態では、以下のルールでＡＰＩが定義されているものとする。
（１）名称が全て英数小文字で構成されるＡＰＩは第１のＡＰＩである。
（２）名称に英数小文字以外の要素が含まれるＡＰＩは第２のＡＰＩ又は第３のＡＰＩである。第２のＡＰＩ又は第３のＡＰＩは、名称が複数の単語を含み、先頭の単語は全て英数小文字で構成され、後続の単語の先頭の文字は英大文字である。
（３）第３のＡＰＩは分類リストに先頭の単語が記載されている。
なお、上記の「英数小文字」とは、英小文字のみ又は英小文字と数字のみを意味する。
【００３７】
図７は、分類リストの例を示す。
分類リストには、第３のＡＰＩの名称の先頭の単語が列記されている。
【００３８】
図５において、ステップＳ２０では、ＡＰＩ分類部２３１は、制御ソフトウェア４０に含まれる、呼び出し対象のＡＰＩの名称を解析する。
ここでは、ＡＰＩ分類部２３１は、図６に示すｄａｔａｃｏｐｙ４１、ｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２及びｎｃＵｎｉｔＩｄ４３の３つのＡＰＩの名称を解析するものとする。
なお、ｄａｔａｃｏｐｙ４１は、メモリ１２の特定の領域のデータを当該メモリ１２の別の領域にコピーするＡＰＩである。
ｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２は、セマフォによって複数タスクの同時実行を制御し、実行優先度が高いタスクのみに実行許可を与え、それ以外のタスクは実行を待機させるＡＰＩである。
ｎｃＵｎｉｔＩｄ４３は、ＣＮＣ機器に固有に割り振られた識別番号を読み取り、読み取った識別番号を返すＡＰＩである。
【００３９】
ステップＳ２０での解析の結果、解析対象のＡＰＩが第１のＡＰＩである場合（ステップＳ２１でＹＥＳ）、すなわち、解析対象のＡＰＩの名称が全て英数小文字で構成されていた場合は、処理がステップＳ２２に進む。一方、解析対象のＡＰＩが第１のＡＰＩでない場合（ステップＳ２１でＮＯ）、すなわち、ＡＰＩの名称に英数小文字以外の要素が含まれている場合は、処理がステップＳ２３に進む。
【００４０】
ＡＰＩ分類部２３１が図６のｄａｔａｃｏｐｙ４１を解析した場合は、処理がステップＳ２２に進む。一方、ＡＰＩ分類部２３１が図６のｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２及びｎｃＵｎｉｔＩｄ４３を解析した場合は、処理がＳ２３に進む。
【００４１】
ステップＳ２２では、ＡＰＩ分類部２３１は、ＯＳ３０で管理される、第１のＡＰＩの実行をＯＳ代替処理部２３２に指示する。図６の例では、ＡＰＩ分類部２３１は、ＯＳ３０で管理される、ｄａｔａｃｏｐｙ４１と同じＡＰＩであるｄａｔａｃｏｐｙ４７の実行をＯＳ代替処理部２３２に指示する。
【００４２】
ステップＳ２３では、ＡＰＩ分類部２３１は、解析対象のＡＰＩが第２のＡＰＩに該当するか否かを判定する。
具体的には、ＡＰＩ分類部２３１は、ストレージ１５に保存された分類リストを参照して、解析対象のＡＰＩが第２のＡＰＩに該当するか否かを判定する。前述したように、分類リストには、第３のＡＰＩの名称の先頭の単語が列記されている。このため、解析対象のＡＰＩの名称の先頭の単語が分類リストに含まれていなければ、解析対象のＡＰＩは第２のＡＰＩに該当する。
【００４３】
解析対象のＡＰＩが第２のＡＰＩである場合（ステップＳ２３でＹＥＳ）は、処理がステップＳ２４に進む。
一方、解析対象のＡＰＩが第２のＡＰＩでない場合（ステップＳ２３でＮＯ）、すなわち、解析対象のＡＰＩが第３のＡＰＩである場合は、処理がステップＳ２５に進む。
【００４４】
図７の分類リストでは「ｎｃ」が記載されている。このため、ＡＰＩ分類部２３１は、分類リストに従い、先頭の単語が「ｎｃ」であるｎｃＵｎｉｔＩｄ４３は第３のＡＰＩであると判定する。一方、「ｓｅｍａｐｈｏｒｅ」は、分類リストに記載されていない。このため、ＡＰＩ分類部２３１は、ｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２は第２のＡＰＩであると判定する。
このため、ＡＰＩ分類部２３１がｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２を解析した場合は、処理がステップＳ２４に進む。一方、ＡＰＩ分類部２３１がｎｃＵｎｉｔＩｄ４３を解析した場合は、処理がステップＳ２５に進む。
【００４５】
ステップＳ２４では、ＡＰＩ分類部２３１は、実装済みライブラリで管理される第２のＡＰＩの実行をシステム固有値処理部２３３に指示する。図６の例では、差分吸収部２３の実装済みライブラリ２３０で管理される、ｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２に対応するＡＰＩであるｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４５の実行を指示する。
ＯＳ３０にはｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２に対応するＡＰＩであるｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４８が存在するが、ＡＰＩ分類部２３１は、システム固有値処理部２３３にｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４５の実行を指示する。
【００４６】
ステップＳ２５では、ＡＰＩ分類部２３１は、実装済みライブラリで管理される第３のＡＰＩの実行を簡易ＡＰＩ処理部２３４に指示する。図６の例では、差分吸収部２３の実装済みライブラリ２３０で管理される、ｎｃＵｎｉｔＩｄ４３に対応するＡＰＩであるｎｃＵｎｉｔＩｄ４６の実行を指示する。
【００４７】
ＡＰＩ分類部２３１は、以上の処理を制御ソフトウェア４０に含まれるすべてのＡＰＩに対して行う。
【００４８】
［ＯＳ代替処理部２３２、システム固有値処理部２３３及び簡易ＡＰＩ処理部２３４の動作例］
図８は、図５のステップＳ２２でＡＰＩ分類部２３１から第１のＡＰＩの実行を指示された場合のＯＳ代替処理部２３２の動作例を示すフローチャートである。
【００４９】
先ず、ステップＳ３１において、ＯＳ代替処理部２３２は、ＯＳ３０で管理されている第１のＡＰＩを呼び出す。
図６の例では、ＯＳ代替処理部２３２は、ｄａｔａｃｏｐｙ４７を呼び出す。
【００５０】
次に、ステップＳ３２において、ＯＳ代替処理部２３２は、呼び出した第１のＡＰＩに含まれる全ての内部データ処理を実行する。
【００５１】
最後に、ステップＳ３３において、ＯＳ代替処理部２３２は、ステップＳ３２の実行結果を示す解析データを生成し、生成した解析データをメモリ１２に格納する。
【００５２】
図９は、図５のステップＳ２４でＡＰＩ分類部２３１から第２のＡＰＩの実行を指示された場合のシステム固有値処理部２３３の動作例を示すフローチャートである。
【００５３】
先ず、ステップＳ４１において、システム固有値処理部２３３は、実装済みライブラリ２３０で管理されている第２のＡＰＩを呼び出す。
図６の例では、システム固有値処理部２３３は、ｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４５を呼び出す。
【００５４】
次に、ステップＳ４２において、システム固有値処理部２３３は、呼び出した第２のＡＰＩに含まれる複数の内部データ処理のうち省略可能内部データ処理を判別する。
【００５５】
次に、ステップＳ４３において、システム固有値処理部２３３は、ステップＳ４２で判別した省略可能内部データ処理を除く第２のＡＰＩに含まれる内部データ処理を実行する。
【００５６】
最後に、ステップＳ４４において、システム固有値処理部２３３は、ステップＳ４３の実行結果を示す解析データを生成し、生成した解析データをメモリ１２に格納する。
【００５７】
図１０は、図５のステップＳ２５でＡＰＩ分類部２３１から第３のＡＰＩの実行を指示された場合の簡易ＡＰＩ処理部２３４の動作例を示すフローチャートである。
【００５８】
先ず、ステップＳ５１において、簡易ＡＰＩ処理部２３４は、実装済みライブラリ２３０で管理されている第３のＡＰＩを呼び出す。
図６の例では、簡易ＡＰＩ処理部２３４は、ｎｃＵｎｉｔＩｄ４６を呼び出す。
【００５９】
次に、ステップＳ５２において、簡易ＡＰＩ処理部２３４は、呼び出した第３のＡＰＩに含まれる複数の内部データ処理のうち省略可能内部データ処理を判別する。
【００６０】
次に、ステップＳ５３において、簡易ＡＰＩ処理部２３４は、ステップＳ５２で判別した省略可能内部データ処理を除く第３のＡＰＩに含まれる内部データ処理を実行する。
【００６１】
最後に、ステップＳ５４において、簡易ＡＰＩ処理部２３４は、ステップＳ５３の実行結果を示す解析データを生成し、生成した解析データをメモリ１２に格納する。
【００６２】
図１１は、図９に示したシステム固有値処理部２３３の動作例と図１０に示した簡易ＡＰＩ処理部２３４の動作例を具体的に説明する図である。
【００６３】
システム固有値処理部２３３は、ｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４５の実行にあたって省略可能な内部データ処理を判別する。
ＣＮＣ機器では制御ソフトウェア４０はリアルタイムＯＳ上で動作している。制御ソフトウェア４０の処理のリアルタイム性を保証するために、制御ソフトウェア４０内のｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２には、タスク状態確認、タスク起動許可及びタスク起動という３つの内部データ処理が含まれる。ｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４２に対応するｓｅｍａｐｈｏｒｅＣｏｎｔｒｏｌ４５でも、図１１に示すように、タスク状態確認４５１、タスク起動許可４５２及びタスク起動４５３という３つの内部データ処理が含まれる。
しかし、データ処理装置１０でのシミュレーションではリアルタイム性の保証は必要ない。このため、システム固有値処理部２３３はリアルタイム性を保証するための内部データ処理であるタスク状態確認４５１及びタスク起動許可４５２を省略可能と判定する。
この結果、システム固有値処理部２３３は、タスク起動４５３のみを実行する。
【００６４】
簡易ＡＰＩ処理部２３４は、ｎｃＵｎｉｔＩｄ４６の実行にあたって省略可能な内部データ処理を判別する。
ＣＮＣ機器で制御ソフトウェア４０が実行されるとｎｃＵｎｉｔＩｄ４３の動作として、ハードウェアの状態の確認と、ハードウェアの状態を示すハードウェア値の取得と、取得されたハードウェア値の応答が行われる。このように、制御ソフトウェア４０内のｎｃＵｎｉｔＩｄ４３には、ハードウェア状態確認、ハードウェア値取得及びハードウェア値応答という３つの内部データ処理が含まれる。ｎｃＵｎｉｔＩｄ４３に対応するｎｃＵｎｉｔＩｄ４６でも、図１１に示すように、ハードウェア状態確認４６１、ハードウェア値取得４６２及びハードウェア値応答４６３という３つの内部データ処理が含まれる。
しかし、データ処理装置１０でのシミュレーションでは、ハードウェア状態確認４６１及びハードウェア値取得４６２の対象となるハードウェアは存在しない。また、仮に、そのようなハードウェアが存在しても、シミュレーションでは、実際に当該ハードウェアに状態を確認する必要はなく、また、当該ハードウェアからハードウェア値を取得する必要はない。このため、簡易ＡＰＩ処理部２３４はハードウェア状態確認４６１、ハードウェア値取得４６２を省略可能と判定する。
この結果、簡易ＡＰＩ処理部２３４は、ハードウェア値応答４６３のみを実行する。
【００６５】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態によれば、実行環境の違いから発生するオーバヘッドを削減することができる。そして、オーバヘッドの削減により、シミュレーションの実行速度を改善することができる。
【００６６】
また、本実施の形態では、差分吸収部２３が、ＣＮＣ機器に搭載されたハードウェアとＯＳの処理を代替している。このため、本実施の形態によれば、ＣＮＣ機器の制御ソフトウェア４０の元となるソースコードを修正することなく、制御ソフトウェア４０を汎用ＰＣに移植することが可能である。
また、差分吸収部２３は、ＣＮＣ機器に搭載されたハードウェアとＯＳの処理を適切に簡略化したライブラリを持ち、従来方式によるＣＮＣ機器のエミュレーション方式と同等の処理の忠実さを保ちつつ、従来方式よりも高速に動作することができる。
【００６７】
＊＊＊ハードウェア構成の補足説明＊＊＊
最後に、データ処理装置１０のハードウェア構成の補足説明を行う。
図１に示すプロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
図１に示すメモリ１２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
図１に示すストレージ１５は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
図１に示す表示装置１３は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等のディスプレイである。
図１に示す入力装置１４は、キーボード、マウス等である。
【００６８】
シミュレーション描画部２１、制御部２２及び差分吸収部２３の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ１２、ストレージ１５、プロセッサ１１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、シミュレーション描画部２１、制御部２２及び差分吸収部２３の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。そして、シミュレーション描画部２１、制御部２２及び差分吸収部２３の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
【００６９】
また、シミュレーション描画部２１、制御部２２及び差分吸収部２３の「部」を、「回路」又は「工程」又は「手順」又は「処理」又は「サーキットリー」に読み替えてもよい。
また、データ処理装置１０は、処理回路により実現されてもよい。処理回路は、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
この場合は、シミュレーション描画部２１、制御部２２及び差分吸収部２３は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【００７０】
１０  データ処理装置、１１  プロセッサ、１２  メモリ、１３  表示装置、１４  入力装置、１５  ストレージ、２０  シミュレーション実行部、２１  シミュレーション描画部、２２  制御部、２３  差分吸収部、３０  ＯＳ、４０  制御ソフトウェア、２３０  実装済みライブラリ、２３１  ＡＰＩ分類部、２３２  ＯＳ代替処理部、２３２  システム固有値処理部、２３４  簡易ＡＰＩ処理部、２３５  実行部。
【要約】
ＡＰＩ分類部（２３１）は、外部のデータ処理機器である外部データ処理機器で実行されるデータ処理である実行データ処理に含まれる内部データ処理のうち、外部データ処理機器とデータ処理装置（１０）との間の実行環境の違いにより外部データ処理機器で実行データ処理を実行する際には実行が必要であるがデータ処理装置（１０）で実行データ処理を実行する際には実行の省略が可能な内部データ処理を、省略可能内部データ処理として抽出する。実行部（２３５）は、ＡＰＩ分類部（２３１）により抽出された省略可能内部データ処理の実行を省略して実行データ処理を実行する。【図１】
0006968318.tif 000002
【図２】
0006968318.tif 000003
【図３】
0006968318.tif 000004
【図４】
0006968318.tif 000005
【図５】
0006968318.tif 000006
【図６】
0006968318.tif 000007
【図７】
0006968318.tif 000008
【図８】
0006968318.tif 000009
【図９】
0006968318.tif 000010
【図１０】
0006968318.tif 000011
【図１１】
0006968318.tif 000012