JP6968318B1 - データ処理装置、データ処理方法及びデータ処理プログラム - Google Patents

データ処理装置、データ処理方法及びデータ処理プログラム Download PDF

Info

Publication number
JP6968318B1
JP6968318B1 JP2021530973A JP2021530973A JP6968318B1 JP 6968318 B1 JP6968318 B1 JP 6968318B1 JP 2021530973 A JP2021530973 A JP 2021530973A JP 2021530973 A JP2021530973 A JP 2021530973A JP 6968318 B1 JP6968318 B1 JP 6968318B1
Authority
JP
Japan
Prior art keywords
data processing
api
optional
execution
processing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021530973A
Other languages
English (en)
Other versions
JPWO2022137458A1 (ja
Inventor
崇文 稲葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6968318B1 publication Critical patent/JP6968318B1/ja
Publication of JPWO2022137458A1 publication Critical patent/JPWO2022137458A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34256Api application programming interface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34282Using special api's allowing user access to control machine, motion, servo

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

API分類部(231)は、外部のデータ処理機器である外部データ処理機器で実行されるデータ処理である実行データ処理に含まれる内部データ処理のうち、外部データ処理機器とデータ処理装置(10)との間の実行環境の違いにより外部データ処理機器で実行データ処理を実行する際には実行が必要であるがデータ処理装置(10)で実行データ処理を実行する際には実行の省略が可能な内部データ処理を、省略可能内部データ処理として抽出する。実行部(235)は、API分類部(231)により抽出された省略可能内部データ処理の実行を省略して実行データ処理を実行する。

Description

本開示は、外部データ処理機器で実行されるデータ処理を外部データ処理機器とは実行環境が異なるデータ処理装置で実行する技術に関する。
CNC(Computerized Numerical)機器等の機器で用いられる、工作機械による加工を支援する制御ソフトウェアは、シミュレーション機能を備える。CNC機器は、工作機械の工具の位置及び/又は移動量をコンピュータによって数値で制御する機器である。また、工作機械による加工を支援する制御ソフトウェアは、例えばCAD/CAM(Computer−Aided Design/Computer−Aided Manufacturing)である。
シミュレーション機能により、実際に工作機械を使用した加工を行う前に加工結果を確認することができる。このため、シミュレーション機能により、意図通りの加工が可能であるか、工作機械を動作させても工具及び/又は加工物が損傷しないか等を事前に確認することができる。
このため、シミュレーション機能では、工作機械の動作を可能な限り忠実に再現することが求められる。工作機械の動作を忠実に再現する方法として、CNC機器に実際に搭載されている制御ソフトウェアを使用する方法がある。具体的には、既存の仮想化技術を用いて、制御ソフトウェアを汎用PC(Personal Computer)上で動作させることで、忠実なシミュレーションを実現することができる。
特許文献1では、制御ソフトウェアを実行ファイル(バイナリデータ)の状態で汎用PCに移植する。制御ソフトウェアの実行環境は、CNC機器と汎用PCとでは大きく異なる。ここで、実行環境とは、プロセッサ、その他ハードウェア、OS(Operating System)等のデータ処理を実行するためのハードウェア環境及びソフトウェア環境である。
このような実行環境の違いを吸収するために、特許文献1では、仮想化技術を用いてハードウェア処理及びOS処理の変換が必要である。この仮想化技術は、汎用PC上でCNC機器でのハードウェア処理及びOS処理を忠実に再現する。
特表2015−511041号公報
以上のように、特許文献1では、仮想化技術によりCNC機器でのハードウェア処理及びOS処理を汎用PC上で再現する。一方で、特許文献1では、仮想化技術によって発生するオーバヘッドにより、シミュレーション機能の実行速度が低下してしまうという課題がある。
本開示は、このような課題を解決することを主な目的とする。具体的には、本開示は、実行環境の違いから発生するオーバヘッドを削減することを主な目的とする。
本開示に係るデータ処理装置は、
外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なる、前記外部データ処理機器で実行されるデータ処理である実行データ処理を実行するデータ処理装置であって、
前記実行データ処理に含まれる内部データ処理のうち、前記外部データ処理機器と前記データ処理装置との間の前記実行環境の違いにより前記外部データ処理機器で前記実行データ処理を実行する際には実行が必要であるが前記データ処理装置で前記実行データ処理を実行する際には実行の省略が可能な内部データ処理を、省略可能内部データ処理として抽出する抽出部と、
前記抽出部により抽出された前記省略可能内部データ処理の実行を省略して前記実行データ処理を実行する実行部とを有する。
本開示によれば、実行環境の違いから発生するオーバヘッドを削減することができる。
実施の形態1に係るデータ処理装置のハードウェア構成例を示す図。 実施の形態1に係るデータ処理装置の機能構成例を示す図。 実施の形態1に係る差分吸収部の内部構成例を示す図。 実施の形態1に係るシミュレーション実行部の動作の概要を示すフローチャート。 実施の形態1に係るAPI分類部の動作例を示すフローチャート。 実施の形態1に係る制御ソフトウェアに含まれるAPIとAPI分類部の動作例を示す図。 実施の形態1に係る分類リストの例を示す図。 実施の形態1に係るOS代替処理部の動作例を示すフローチャート。 実施の形態1に係るシステム固有値処理部の動作例を示すフローチャート。 実施の形態1に係る簡易API処理部の動作例を示すフローチャート。 実施の形態1に係るシステム固有値処理部及び簡易API処理部の動作例を示す図。
以下、実施の形態を図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
実施の形態1.
***構成の説明***
[ハードウェア構成例]
図1は、本実施の形態に係るデータ処理装置10のハードウェア構成例を示す。
データ処理装置10は、外部のデータ処理機器である外部データ処理機器(不図示)とデータ処理の実行環境が異なっている。データ処理装置10は、外部データ処理機器で実行されるデータ処理である実行データ処理を実行する。実行環境とは、前述の通り、プロセッサ、その他ハードウェア、OS(Operating System)等のデータ処理を実行するためのハードウェア環境及びソフトウェア環境である。
データ処理装置10の動作手順は、データ処理方法に相当する。また、データ処理装置10の動作を実現するプログラムは、データ処理プログラムに相当する。
データ処理装置10は、例えば汎用PCである。本実施の形態では、汎用PCであるデータ処理装置10が、CNC機器での工作機械の動作の制御をシミュレートするために、CNC機器で実行される制御ソフトウェアを実行する例を説明する。本実施の形態で説明する例では、CNC機器が外部データ処理機器に相当する。また、工作機械の制御のための制御ソフトウェアが実行データ処理に相当する。
データ処理装置10は、ハードウェアとして、図1に示すように、プロセッサ11、メモリ12、表示装置13、入力装置14及びストレージ15を備える。
これらハードウェアのうち少なくともプロセッサ11、メモリ12及びストレージ15は、CNC機器のプロセッサ、メモリ及びストレージとは性能、仕様等が異なる。また、データ処理装置10には、CNC機器に搭載されている、アンプとのインタフェース等のハードウェアも搭載されていない。
また、データ処理装置10はOS30を備えるが、OS30もCNC機器のOSとは性能、仕様等が異なる。例えば、CNC機器のOSはリアルタイムOSであるが、データ処理装置10のOS30はリアルタイムOSではない。
このようなハードウェア及びOSの違いにより、データ処理装置10とCNC機器との間で実行環境の違いが生じる。
また、データ処理装置10は、機能構成として、後述するようにシミュレーション実行部20を備える。
ストレージ15には、シミュレーション実行部20の機能を実現するプログラム、OS30及び制御ソフトウェア40が記憶されている。制御ソフトウェア40は、CNC機器で実行される制御ソフトウェアである。制御ソフトウェア40は、実行ファイル(バイナリデータ)の状態でストレージ15に記憶されている。また、制御ソフトウェア40には、複数のAPI(Application Programming Interface)が含まれ、各APIには1つ以上の内部データ処理が含まれる。つまり、制御ソフトウェア40には、複数の内部データ処理が含まれる。
シミュレーション実行部20の機能を実現するプログラム、OS30及び制御ソフトウェア40は、ストレージ15からメモリ12にロードされる。そして、プロセッサ11がこれらを実行する。
また、ストレージ15には、シミュレーション実行部20がAPIの分類に使用する分類リストが記憶されている。
メモリ12には、シミュレーション実行部20が制御ソフトウェア40を実行して生成された解析データを格納するための領域が確保されている。
表示装置13は、制御ソフトウェア40の実行結果として解析データが描画された描画データを表示する。
入力装置14は、データ処理装置10のユーザから指示を受け付ける。入力装置14は、例えば、データ処理装置10のユーザからシミュレーション開始の指示を受け付ける。
[機能構成例]
図2は、本実施の形態に係るデータ処理装置10の機能構成例を示す。
シミュレーション描画部21は、制御ソフトウェア40の実行によりシミュレートされる工作機械の挙動を描画し、描画データを表示装置13に出力する。
制御部22は、ストレージ15から制御ソフトウェア40を取得し、また、差分吸収部23が制御ソフトウェア40を実行するための制御を行う。
差分吸収部23は、制御ソフトウェア40の複数の内部データ処理のうちの少なくともいずれかを実行して、工作機械の動作のシミュレーションを行う。差分吸収部23は、制御ソフトウェア40の実行にあたり、CNC機器の実行環境とデータ処理装置10の実行環境との差分を吸収する。
OS30は、データ処理装置10上で動作するOSである。
[差分吸収部23の内部構成例]
図3は、差分吸収部23の内部構成例を示す。
API分類部231は、OS及びハードウェア処理のAPIの名称を解析する。APIの名称に基づき、APIのカテゴリーを識別し、APIを複数のカテゴリーのいずれかに分類する。
例えば、API分類部231は、複数のAPIを、第1のカテゴリー、第2のカテゴリー及び第3のカテゴリーのいずれかに分類する。以下、第1のカテゴリーに分類されるAPIを第1のAPIという。また、第2のカテゴリーに分類されるAPIを第2のAPIという。また、第3のカテゴリーに分類されるAPIを第3のAPIという。
API分類部231は、CNC機器のOSが実行するAPIと同じAPIがOS30で管理されている場合に、当該APIを第1のAPIと判別する。第1のAPIに含まれる内部データ処理は実行を省略することができない。
第2のAPIと第3のAPIは、省略可能内部データ処理が含まれているAPIである。省略可能内部データ処理は、CNC機器とデータ処理装置10との間の実行環境の違いによりCNC機器で制御ソフトウェア40を実行する際には実行が必要であるがデータ処理装置10で制御ソフトウェア40を実行する際には実行の省略が可能な内部データ処理である。
第2のAPIに含まれる省略可能内部データ処理は、CNC機器に固有の内部データ処理であるが、データ処理装置10で実行した場合には常にエラー終了又は常に正常終了することが確定している内部データ処理である。
また、第3のAPIに含まれる省略可能内部データ処理は、CNC機器でもデータ処理装置10でも実行される内部処データ処理であるが、データ処理装置10が制御ソフトウェア40を実行する際には実行の省略が可能な内部データ処理である。
API分類部231は抽出部に相当する。また、API分類部231で行われる処理は抽出処理に相当する。
OS代替処理部232は、第1のAPIを実行する。
システム固有値処理部233は、第2のAPIを実行する。
システム固有値処理部233は、第2のAPIを実行する際に、第2のAPIに含まれる省略可能内部データ処理の実行を省略する。
簡易API処理部234は、第3のAPIを処理する。
簡易API処理部234は、第3のAPIを実行する際に、第3のAPIに含まれる省略可能内部データ処理の実行を省略する。
省略可能内部データ処理は、実行を省略してもシミュレーション精度への影響が無いデータ処理である。このため、システム固有値処理部233は、第2のAPIの実行の際に省略可能内部データ処理の実行を省略する。また、簡易API処理部234は、第3のAPIの実行の際に省略可能内部データ処理の実行を省略する。
省略可能内部データ処理は、例えば、工作機械を物理的に動かすためにアンプへ指示を出して、モータを制御する処理である。CNC機器は、制御ソフトウェア40を解釈してアンプに指令を出し、モータを作動させて工作機械を動かす。データ処理装置10におけるシミュレーションでは、アンプに指令が出たこと、モータにより工作機械が動いていることを表現する描画をシミュレーション描画部21が生成できればよい。このように、シミュレーションでは、CNC機器で工作機械を制御する際に発生する物理的な動作は必要無いため、アンプへ指示を出力する等の内部データ処理を省略することが可能である。
なお、システム固有値処理部233及び簡易API処理部234を合わせて実行部235という。実行部235により行われる処理は実行処理に相当する。
***動作の説明***
[動作の概要]
図4は、本実施の形態に係るシミュレーション実行部20の動作の概要を示すフローチャートである。
ユーザが入力装置14にシミュレーションの開始を指示すると、シミュレーション描画部21が動作を開始する。
ユーザからシミュレーションの開始が指示されると、シミュレーション描画部21は、ステップS10において、制御ソフトウェア40の実行が完了しているか否かを判定する。
シミュレーション描画部21は、メモリ12上の制御ソフトウェア40の解析データを全て処理し終えていれば、制御ソフトウェア40の実行が完了していると判定する。
制御ソフトウェア40の実行が完了していれば(ステップS10でYES)は、シミュレーション描画部21は処理を終了する。
一方、制御ソフトウェア40の実行が完了していなければ(ステップS10でNO)は、処理がステップS11に進む。
ステップS11では、シミュレーション描画部21が、制御ソフトウェア40の解析データがメモリ12上に存在するかを判定する。
メモリ12上に解析データが存在すれば(ステップS11でYES)、処理がS17に進む。一方、メモリ12上に解析データが存在しなければ(ステップS11でNO)、処理がステップS12に進む。
ステップS12では、シミュレーション描画部21が制御部22を起動する。
次に、ステップS13では、制御部22が制御ソフトウェア40を解析する。
そして、制御部22は、制御ソフトウェア40の解析の結果、ステップS14で、差分吸収部23を起動する。
次に、ステップS15において、差分吸収部23が制御ソフトウェア40を実行する。
そして、差分吸収部23は、ステップS16において、ステップS14の実行結果を示す解析データをメモリ12に格納する。
ステップS17では、シミュレーション描画部21が、メモリ12に格納された解析データに対応する描画データを生成し、描画データを表示装置13に出力する。
[API分類部231の動作例]
図5は、差分吸収部23のAPI分類部231の動作例を示すフローチャートである。
また、図6は、制御ソフトウェア40に含まれるAPIの例と、API分類部231の各APIに対する動作例を示す。
本実施の形態では、以下のルールでAPIが定義されているものとする。
(1)名称が全て英数小文字で構成されるAPIは第1のAPIである。
(2)名称に英数小文字以外の要素が含まれるAPIは第2のAPI又は第3のAPIである。第2のAPI又は第3のAPIは、名称が複数の単語を含み、先頭の単語は全て英数小文字で構成され、後続の単語の先頭の文字は英大文字である。
(3)第3のAPIは分類リストに先頭の単語が記載されている。
なお、上記の「英数小文字」とは、英小文字のみ又は英小文字と数字のみを意味する。
図7は、分類リストの例を示す。
分類リストには、第3のAPIの名称の先頭の単語が列記されている。
図5において、ステップS20では、API分類部231は、制御ソフトウェア40に含まれる、呼び出し対象のAPIの名称を解析する。
ここでは、API分類部231は、図6に示すdatacopy41、semaphoreControl42及びncUnitId43の3つのAPIの名称を解析するものとする。
なお、datacopy41は、メモリ12の特定の領域のデータを当該メモリ12の別の領域にコピーするAPIである。
semaphoreControl42は、セマフォによって複数タスクの同時実行を制御し、実行優先度が高いタスクのみに実行許可を与え、それ以外のタスクは実行を待機させるAPIである。
ncUnitId43は、CNC機器に固有に割り振られた識別番号を読み取り、読み取った識別番号を返すAPIである。
ステップS20での解析の結果、解析対象のAPIが第1のAPIである場合(ステップS21でYES)、すなわち、解析対象のAPIの名称が全て英数小文字で構成されていた場合は、処理がステップS22に進む。一方、解析対象のAPIが第1のAPIない場合(ステップS21でNO)、すなわち、APIの名称に英数小文字以外の要素が含まれている場合は、処理がステップS23に進む。
API分類部231が図6のdatacopy41を解析した場合は、処理がステップS22に進む。一方、API分類部231が図6のsemaphoreControl42及びncUnitId43を解析した場合は、処理がS23に進む。
ステップS22では、API分類部231は、OS30で管理される、第1のAPIの実行をOS代替処理部232に指示する。図6の例では、API分類部231は、OS30で管理される、datacopy41と同じAPIであるdatacopy47の実行をOS代替処理部232に指示する。
ステップS23では、API分類部231は、解析対象のAPIが第2のAPIに該当するか否かを判定する。
具体的には、API分類部231は、ストレージ15に保存された分類リストを参照して、解析対象のAPIが第2のAPIに該当するか否かを判定する。前述したように、分類リストには、第3のAPIの名称の先頭の単語が列記されている。このため、解析対象のAPIの名称の先頭の単語が分類リストに含まれていなければ、解析対象のAPIは第2のAPIに該当する。
解析対象のAPIが第2のAPIである場合(ステップS23でYES)は、処理がステップS24に進む。
一方、解析対象のAPIが第2のAPIでない場合(ステップS23でNO)、すなわち、解析対象のAPIが第3のAPIである場合は、処理がステップS25に進む。
図7の分類リストでは「nc」が記載されている。このため、API分類部231は、分類リストに従い、先頭の単語が「nc」であるncUnitId43は第3のAPIであると判定する。一方、「semaphore」は、分類リストに記載されていない。このため、API分類部231は、semaphoreControl42は第2のAPIであると判定する。
このため、API分類部231がsemaphoreControl42を解析した場合は、処理がステップS24に進む。一方、API分類部231がncUnitId43を解析した場合は、処理がステップS25に進む。
ステップS24では、API分類部231は、実装済みライブラリで管理される第2のAPIの実行をシステム固有値処理部233に指示する。図6の例では、差分吸収部23の実装済みライブラリ230で管理される、semaphoreControl42に対応するAPIであるsemaphoreControl45の実行を指示する。
OS30にはsemaphoreControl42に対応するAPIであるsemaphoreControl48が存在するが、API分類部231は、システム固有値処理部233にsemaphoreControl45の実行を指示する。
ステップS25では、API分類部231は、実装済みライブラリで管理される第3のAPIの実行を簡易API処理部234に指示する。図6の例では、差分吸収部23の実装済みライブラリ230で管理される、ncUnitId43に対応するAPIであるncUnitId46の実行を指示する。
API分類部231は、以上の処理を制御ソフトウェア40に含まれるすべてのAPIに対して行う。
[OS代替処理部232、システム固有値処理部233及び簡易API処理部234の動作例]
図8は、図5のステップS22でAPI分類部231から第1のAPIの実行を指示された場合のOS代替処理部232の動作例を示すフローチャートである。
先ず、ステップS31において、OS代替処理部232は、OS30で管理されている第1のAPIを呼び出す。
図6の例では、OS代替処理部232は、datacopy47を呼び出す。
次に、ステップS32において、OS代替処理部232は、呼び出した第1のAPIに含まれる全ての内部データ処理を実行する。
最後に、ステップS33において、OS代替処理部232は、ステップS32の実行結果を示す解析データを生成し、生成した解析データをメモリ12に格納する。
図9は、図5のステップS24でAPI分類部231から第2のAPIの実行を指示された場合のシステム固有値処理部233の動作例を示すフローチャートである。
先ず、ステップS41において、システム固有値処理部233は、実装済みライブラリ230で管理されている第2のAPIを呼び出す。
図6の例では、システム固有値処理部233は、semaphoreControl45を呼び出す。
次に、ステップS42において、システム固有値処理部233は、呼び出した第2のAPIに含まれる複数の内部データ処理のうち省略可能内部データ処理を判別する。
次に、ステップS43において、システム固有値処理部233は、ステップS42で判別した省略可能内部データ処理を除く第2のAPIに含まれる内部データ処理を実行する。
最後に、ステップS44において、システム固有値処理部233は、ステップS43の実行結果を示す解析データを生成し、生成した解析データをメモリ12に格納する。
図10は、図5のステップS25でAPI分類部231から第3のAPIの実行を指示された場合の簡易API処理部234の動作例を示すフローチャートである。
先ず、ステップS51において、簡易API処理部234は、実装済みライブラリ230で管理されている第3のAPIを呼び出す。
図6の例では、簡易API処理部234は、ncUnitId46を呼び出す。
次に、ステップS52において、簡易API処理部234は、呼び出した第3のAPIに含まれる複数の内部データ処理のうち省略可能内部データ処理を判別する。
次に、ステップS53において、簡易API処理部234は、ステップS52で判別した省略可能内部データ処理を除く第3のAPIに含まれる内部データ処理を実行する。
最後に、ステップS54において、簡易API処理部234は、ステップS53の実行結果を示す解析データを生成し、生成した解析データをメモリ12に格納する。
図11は、図9に示したシステム固有値処理部233の動作例と図10に示した簡易API処理部234の動作例を具体的に説明する図である。
システム固有値処理部233は、semaphoreControl45の実行にあたって省略可能な内部データ処理を判別する。
CNC機器では制御ソフトウェア40はリアルタイムOS上で動作している。制御ソフトウェア40の処理のリアルタイム性を保証するために、制御ソフトウェア40内のsemaphoreControl42には、タスク状態確認、タスク起動許可及びタスク起動という3つの内部データ処理が含まれる。semaphoreControl42に対応するsemaphoreControl45でも、図11に示すように、タスク状態確認451、タスク起動許可452及びタスク起動453という3つの内部データ処理が含まれる。
しかし、データ処理装置10でのシミュレーションではリアルタイム性の保証は必要ない。このため、システム固有値処理部233はリアルタイム性を保証するための内部データ処理であるタスク状態確認451及びタスク起動許可452を省略可能と判定する。
この結果、システム固有値処理部233は、タスク起動453のみを実行する。
簡易API処理部234は、ncUnitId46の実行にあたって省略可能な内部データ処理を判別する。
CNC機器で制御ソフトウェア40が実行されるとncUnitId43の動作として、ハードウェアの状態の確認と、ハードウェアの状態を示すハードウェア値の取得と、取得されたハードウェア値の応答が行われる。このように、制御ソフトウェア40内のncUnitId43には、ハードウェア状態確認、ハードウェア値取得及びハードウェア値応答という3つの内部データ処理が含まれる。ncUnitId43に対応するncUnitId46でも、図11に示すように、ハードウェア状態確認461、ハードウェア値取得462及びハードウェア値応答463という3つの内部データ処理が含まれる。
しかし、データ処理装置10でのシミュレーションでは、ハードウェア状態確認461及びハードウェア値取得462の対象となるハードウェアは存在しない。また、仮に、そのようなハードウェアが存在しても、シミュレーションでは、実際に当該ハードウェアに状態を確認する必要はなく、また、当該ハードウェアからハードウェア値を取得する必要はない。このため、簡易API処理部234はハードウェア状態確認461、ハードウェア値取得462を省略可能と判定する。
この結果、簡易API処理部234は、ハードウェア値応答463のみを実行する。
***実施の形態の効果の説明***
以上のように、本実施の形態によれば、実行環境の違いから発生するオーバヘッドを削減することができる。そして、オーバヘッドの削減により、シミュレーションの実行速度を改善することができる。
また、本実施の形態では、差分吸収部23が、CNC機器に搭載されたハードウェアとOSの処理を代替している。このため、本実施の形態によれば、CNC機器の制御ソフトウェア40の元となるソースコードを修正することなく、制御ソフトウェア40を汎用PCに移植することが可能である。
また、差分吸収部23は、CNC機器に搭載されたハードウェアとOSの処理を適切に簡略化したライブラリを持ち、従来方式によるCNC機器のエミュレーション方式と同等の処理の忠実さを保ちつつ、従来方式よりも高速に動作することができる。
***ハードウェア構成の補足説明***
最後に、データ処理装置10のハードウェア構成の補足説明を行う。
図1に示すプロセッサ11は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ11は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図1に示すメモリ12は、RAM(Random Access Memory)である。
図1に示すストレージ15は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図1に示す表示装置13は、LCD(Liquid Crystal Display)等のディスプレイである。
図1に示す入力装置14は、キーボード、マウス等である。
シミュレーション描画部21、制御部22及び差分吸収部23の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ12、ストレージ15、プロセッサ11内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、シミュレーション描画部21、制御部22及び差分吸収部23の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に格納されていてもよい。そして、シミュレーション描画部21、制御部22及び差分吸収部23の機能を実現するプログラムが格納された可搬記録媒体を流通させてもよい。
また、シミュレーション描画部21、制御部22及び差分吸収部23の「部」を、「回路」又は「工程」又は「手順」又は「処理」又は「サーキットリー」に読み替えてもよい。
また、データ処理装置10は、処理回路により実現されてもよい。処理回路は、例えば、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)である。
この場合は、シミュレーション描画部21、制御部22及び差分吸収部23は、それぞれ処理回路の一部として実現される。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
10 データ処理装置、11 プロセッサ、12 メモリ、13 表示装置、14 入力装置、15 ストレージ、20 シミュレーション実行部、21 シミュレーション描画部、22 制御部、23 差分吸収部、30 OS、40 制御ソフトウェア、230 実装済みライブラリ、231 API分類部、232 OS代替処理部、232 システム固有値処理部、234 簡易API処理部、235 実行部。

Claims (6)

  1. 各々に1つ以上の内部データ処理が含まれる複数のAPI(Application Programming Interface)を実行する外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なる、前記複数のAPIを実行するデータ処理装置であって、
    前記複数のAPIの各々の名称に用いられている文字を解析して、前記複数のAPIから、前記外部データ処理機器と前記データ処理装置との間の前記実行環境の違いにより前記外部データ処理機器では実行が必要であるが前記データ処理装置では実行の省略が可能な省略可能内部データ処理が含まれる省略可能APIを抽出する抽出部と、
    前記抽出部により抽出された前記省略可能APIに含まれる前記省略可能内部データ処理の実行を省略して前記省略可能APIを実行する実行部とを有するデータ処理装置。
  2. 前記抽出部は、
    名称に英数小文字のみが用いられているAPIである第1のAPI以外のAPIを、前記省略可能APIとして抽出する請求項1に記載のデータ処理装置。
  3. 前記抽出部は、
    抽出した前記省略可能APIを、
    前記省略可能内部データ処理として、前記データ処理装置で実行した場合には常にエラー終了又は常に正常終了することが確定している内部データ処理が含まれているAPIである第2のAPIと、
    前記省略可能内部データ処理として、前記外部データ処理機器でも前記データ処理装置でも実行される内部処データ処理であるが、前記データ処理装置で実行する際には実行の省略が可能な内部データ処理が含まれているAPIである第3のAPIとのいずれかに分類し、
    前記実行部は、
    前記第2のAPIを実行する第2のAPI実行部と、前記第3のAPIを実行する第3のAPI実行部とを有し、
    前記抽出部により抽出された前記省略可能APIが前記第2のAPIである場合に、前記第2のAPI実行部に前記第2のAPIを実行させ、
    前記抽出部により抽出された前記省略可能APIが前記第3のAPIである場合に、前記第3のAPI実行部に前記第3のAPIを実行させる請求項2に記載のデータ処理装置。
  4. 前記抽出部は、
    抽出した前記省略可能APIに既定の単語が含まれている場合に、前記省略可能APIを前記第3のAPIに分類し、抽出した前記省略可能APIに前記既定の単語が含まれていない場合に、前記省略可能APIを前記第2のAPIに分類する請求項3に記載のデータ処理装置。
  5. 各々に1つ以上の内部データ処理が含まれる複数のAPI(Application Programming Interface)を実行する外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なるコンピュータが、前記複数のAPIを実行するデータ処理方法であって、
    前記コンピュータが、前記複数のAPIの各々の名称に用いられている文字を解析して、前記複数のAPIから、前記外部データ処理機器と前記コンピュータとの間の前記実行環境の違いにより前記外部データ処理機器では実行が必要であるが前記コンピュータでは実行の省略が可能な省略可能内部データ処理が含まれる省略可能APIを抽出し、
    前記コンピュータが、抽出された前記省略可能APIに含まれる前記省略可能内部データ処理の実行を省略して前記省略可能APIを実行するデータ処理方法。
  6. 各々に1つ以上の内部データ処理が含まれる複数のAPI(Application Programming Interface)を実行する外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なるコンピュータに、前記複数のAPIを実行させるデータ処理プログラムであって、
    前記複数のAPIの各々の名称に用いられている文字を解析して、前記複数のAPIから、前記外部データ処理機器と前記コンピュータとの間の前記実行環境の違いにより前記外部データ処理機器では実行が必要であるが前記コンピュータでは実行の省略が可能な省略可能内部データ処理が含まれる省略可能APIを抽出する抽出処理と、
    前記抽出処理により抽出された前記省略可能APIに含まれる前記省略可能内部データ処理の実行を省略して前記省略可能APIを実行する実行処理とを前記コンピュータに実行させるデータ処理プログラム。
JP2021530973A 2020-12-24 2020-12-24 データ処理装置、データ処理方法及びデータ処理プログラム Active JP6968318B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/048558 WO2022137458A1 (ja) 2020-12-24 2020-12-24 データ処理装置、データ処理方法及びデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP6968318B1 true JP6968318B1 (ja) 2021-11-17
JPWO2022137458A1 JPWO2022137458A1 (ja) 2022-06-30

Family

ID=78509629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021530973A Active JP6968318B1 (ja) 2020-12-24 2020-12-24 データ処理装置、データ処理方法及びデータ処理プログラム

Country Status (6)

Country Link
US (1) US12050940B2 (ja)
JP (1) JP6968318B1 (ja)
CN (1) CN116457765A (ja)
DE (1) DE112020007705T5 (ja)
TW (1) TW202225877A (ja)
WO (1) WO2022137458A1 (ja)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0648471B2 (ja) 1986-07-01 1994-06-22 日本電気株式会社 情報処理装置
JPH07295832A (ja) 1994-04-25 1995-11-10 Mitsubishi Electric Corp 計算機シミュレータ
US20010027387A1 (en) 2000-03-30 2001-10-04 Hideaki Miyake Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
JP2002244883A (ja) * 2000-03-30 2002-08-30 Matsushita Electric Ind Co Ltd デバッグ支援装置、デバッグ支援方法及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005321848A (ja) * 2004-05-06 2005-11-17 Matsushita Electric Ind Co Ltd システムシミュレーション実行プログラムおよびハードウェア記述変換プログラム
US9152435B2 (en) * 2009-08-31 2015-10-06 Red Hat, Inc. Generating a set of linked rotational views of model objects
US8838430B1 (en) * 2011-08-26 2014-09-16 Cadence Design Systems, Inc. Detection of memory access violation in simulations
JP5976917B2 (ja) 2012-03-22 2016-08-24 インテル コーポレイション ネスト構造化されたエミュレーションおよび動的リンキング環境
JP6168799B2 (ja) 2013-03-12 2017-07-26 三菱電機株式会社 仮想計算機システム
US9396011B2 (en) 2013-03-12 2016-07-19 Qualcomm Incorporated Algorithm and apparatus to deploy virtual machine monitor on demand
JP5917441B2 (ja) 2013-06-03 2016-05-11 株式会社日立製作所 仮想計算機システム、sr−iov対応デバイスの制御方法
US10523577B2 (en) * 2017-05-23 2019-12-31 Cable Television Laboratories, Inc Systems and methods for low latency DOCSIS queueing and scheduling
US11295013B2 (en) * 2017-12-11 2022-04-05 International Business Machines Corporation Dimensionality reduction based on functionality
US10437712B1 (en) * 2018-06-20 2019-10-08 Ca, Inc. API functional-test generation
US10949237B2 (en) * 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US20200310764A1 (en) * 2019-03-29 2020-10-01 Panasonic Avionics Corporation Vehicle entertainment system interactive user interface co-development environment
US11704431B2 (en) * 2019-05-29 2023-07-18 Microsoft Technology Licensing, Llc Data security classification sampling and labeling
WO2021127640A1 (en) * 2019-12-20 2021-06-24 Cresance Inc. Modeling cloud inefficiencies using domain-specific templates
US11232193B1 (en) * 2020-11-04 2022-01-25 Malwarebytes Inc. Automated generation of a sandbox configuration for malware detection

Also Published As

Publication number Publication date
TW202225877A (zh) 2022-07-01
CN116457765A (zh) 2023-07-18
JPWO2022137458A1 (ja) 2022-06-30
US12050940B2 (en) 2024-07-30
WO2022137458A1 (ja) 2022-06-30
US20230259372A1 (en) 2023-08-17
DE112020007705T5 (de) 2023-09-28

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US20070030286A1 (en) Method, system, and program product for controlling a display on a data editing screen
US20150113503A1 (en) Selectively enabling runtime editing of an application
KR20200021517A (ko) 벡터 요소들 내부의 비트 값들의 시험
JP2011118841A (ja) シミュレーション方法、システム、及びプログラム
US20170344520A1 (en) Information processing apparatus, information processing method, and storage medium
JP6968318B1 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP7025104B2 (ja) 情報処理装置、方法およびプログラム
CN116340081A (zh) 一种基于硬件虚拟化的riscv内存访问违例检测方法及装置
JP5001126B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
US20090273605A1 (en) Operation Checking Method in Information System, Operation Checking Program Therefor, Recording Medium, and Operation Checking System
JP6818568B2 (ja) 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム
JP7530343B2 (ja) システム開発支援装置、システム開発支援方法およびシステム開発支援プログラム
KR101619989B1 (ko) 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체
WO2022190772A1 (ja) ソフトウェア性能検証システム、およびソフトウェア性能検証方法
JP2008191796A (ja) 解析装置及び解析方法及びプログラム
CN118643774B (zh) Eda工具间的命令转换方法及装置
KR102213258B1 (ko) 효율적인 명령어 처리를 위한 프로세싱-인-메모리 제어 방법 및 이를 적용한 연산장치
JPH09237191A (ja) プログラミング支援装置、プログラミング支援方法、及びプログラミング支援プログラムを記録した媒体
WO2022172433A1 (ja) テストコード生成装置、及びテストコード生成方法、並びにテストコード生成プログラム
US20210389934A1 (en) Memory Compiler Techniques
JP6419902B1 (ja) プログラム比較方法、プログラム比較装置およびプログラム比較プログラム
JP6851210B2 (ja) 分析支援装置、分析支援方法および分析支援プログラム
JP6888336B2 (ja) スタブ生成装置、方法、及びプログラム
CN115883132A (zh) 安全管控方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210528

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210928

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211026

R150 Certificate of patent or registration of utility model

Ref document number: 6968318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250