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

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

Info

Publication number
WO2022137458A1
WO2022137458A1 PCT/JP2020/048558 JP2020048558W WO2022137458A1 WO 2022137458 A1 WO2022137458 A1 WO 2022137458A1 JP 2020048558 W JP2020048558 W JP 2020048558W WO 2022137458 A1 WO2022137458 A1 WO 2022137458A1
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
execution
processing device
api
unit
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.)
Ceased
Application number
PCT/JP2020/048558
Other languages
English (en)
French (fr)
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
Priority to CN202080106688.5A priority Critical patent/CN116457765B/zh
Priority to PCT/JP2020/048558 priority patent/WO2022137458A1/ja
Priority to JP2021530973A priority patent/JP6968318B1/ja
Priority to DE112020007705.5T priority patent/DE112020007705T5/de
Priority to TW110124761A priority patent/TW202225877A/zh
Publication of WO2022137458A1 publication Critical patent/WO2022137458A1/ja
Priority to US18/135,346 priority patent/US12050940B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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

Definitions

  • the present disclosure relates to a technique for executing data processing executed by an external data processing device by a data processing device having an execution environment different from that of the external data processing device.
  • Control software that supports machining with machine tools which is used in equipment such as CNC (Computerized Natural) equipment, has a simulation function.
  • the CNC device is a device that numerically controls the position and / or the amount of movement of the tool of the machine tool by a computer.
  • the control software that supports machining by a machine tool is, for example, CAD / CAM (Computer-Aided Design / Computer-Aided Manufacturing).
  • the simulation function it is possible to check the machining results before actually machining using a machine tool. Therefore, the simulation function makes it possible to confirm in advance whether machining is possible as intended and whether the tool and / or the workpiece is not damaged even if the machine tool is operated. Therefore, the simulation function is required to reproduce the operation of the machine tool as faithfully as possible.
  • a method of faithfully reproducing the operation of the machine tool there is a method of using the control software actually installed in the CNC device. Specifically, faithful simulation can be realized by operating the control software on a general-purpose PC (Personal Computer) using the existing virtualization technology.
  • Patent Document 1 the control software is ported to a general-purpose PC in the state of an executable file (binary data).
  • the execution environment of the control software differs greatly between CNC devices and general-purpose PCs.
  • the execution environment is a hardware environment and a software environment for executing data processing such as a processor, other hardware, and an OS (Operating System).
  • OS Operating System
  • Patent Document 1 requires conversion of hardware processing and OS processing using virtualization technology. This virtualization technology faithfully reproduces the hardware processing and OS processing of the CNC device on a general-purpose PC.
  • Patent Document 1 hardware processing and OS processing in a CNC device are reproduced on a general-purpose PC by virtualization technology.
  • Patent Document 1 has a problem that the execution speed of the simulation function is lowered due to the overhead generated by the virtualization technique.
  • the main purpose of this disclosure is to solve such problems. Specifically, the main purpose of this disclosure is to reduce the overhead generated due to the difference in the execution environment.
  • the data processing device is A data processing device that executes execution data processing, which is data processing executed by the external data processing device, whose data processing execution environment is different from that of the external data processing device, which is an external data processing device.
  • execution data processing is executed when the execution data processing is executed by the external data processing device due to the difference in the execution environment between the external data processing device and the data processing device.
  • the extraction unit that extracts the internal data processing that can be omitted as the optional internal data processing, and the extraction unit. It has an execution unit that executes the execution data processing by omitting the execution of the optional internal data processing extracted by the extraction unit.
  • FIG. The figure which shows the hardware configuration example of the data processing apparatus which concerns on Embodiment 1.
  • FIG. The figure which shows the functional structure example of the data processing apparatus which concerns on Embodiment 1.
  • FIG. The figure which shows the internal structure example of the difference absorption part which concerns on Embodiment 1.
  • FIG. The flowchart which shows the outline of the operation of the simulation execution part which concerns on Embodiment 1.
  • the flowchart which shows the operation example of the API classification part which concerns on Embodiment 1.
  • FIG. The figure which shows the example of the classification list which concerns on Embodiment 1.
  • the flowchart which shows the operation example of the OS alternative processing part which concerns on Embodiment 1.
  • FIG. 1 shows a hardware configuration example of the data processing device 10 according to the present embodiment.
  • the data processing device 10 has a different data processing execution environment from an external data processing device (not shown), which is an external data processing device.
  • the data processing device 10 executes execution data processing, which is data processing executed by an external data processing device.
  • the execution environment is a hardware environment and a software environment for executing data processing such as a processor, other hardware, and an OS (Operating System).
  • the operation procedure of the data processing device 10 corresponds to the data processing method.
  • the program that realizes the operation of the data processing device 10 corresponds to the data processing program.
  • the data processing device 10 is, for example, a general-purpose PC.
  • the data processing device 10 which is a general-purpose PC executes the control software executed by the CNC device in order to simulate the control of the operation of the machine tool by the CNC device.
  • the CNC device corresponds to an external data processing device.
  • the control software for controlling the machine tool corresponds to the execution data processing.
  • the data processing device 10 includes a processor 11, a memory 12, a display device 13, an input device 14, and a storage 15 as hardware. Of these hardware, at least the processor 11, the memory 12, and the storage 15 are different in performance, specifications, and the like from the processor, memory, and storage of the CNC device. Further, the data processing device 10 is not equipped with hardware such as an interface with an amplifier, which is mounted on a CNC device. Further, although the data processing device 10 includes an OS 30, the OS 30 also has different performance, specifications, and the like from the OS of the CNC device. For example, the OS of the CNC device is a real-time OS, but the OS 30 of the data processing device 10 is not a real-time OS.
  • the data processing device 10 includes a simulation execution unit 20 as a functional configuration as described later.
  • the storage 15 stores a program, OS30, and control software 40 that realize the functions of the simulation execution unit 20.
  • the control software 40 is control software executed by the CNC device.
  • the control software 40 is stored in the storage 15 in the state of an executable file (binary data).
  • the control software 40 includes a plurality of APIs (Application Programming Interfaces), and each API includes one or more internal data processing. That is, the control software 40 includes a plurality of internal data processing.
  • the program, OS30, and control software 40 that realize the functions of the simulation execution unit 20 are loaded from the storage 15 into the memory 12. Then, the processor 11 executes these. Further, the storage 15 stores a classification list used by the simulation execution unit 20 for classifying APIs. An area for storing the analysis data generated by the simulation execution unit 20 executing the control software 40 is secured in the memory 12. The display device 13 displays the drawing data in which the analysis data is drawn as the execution result of the control software 40.
  • the input device 14 receives an instruction from the user of the data processing device 10. The input device 14 receives, for example, an instruction to start a simulation from a user of the data processing device 10.
  • FIG. 2 shows an example of a functional configuration of the data processing device 10 according to the present embodiment.
  • the simulation drawing unit 21 draws the behavior of the machine tool simulated by the execution of the control software 40, and outputs the drawing data to the display device 13.
  • the control unit 22 acquires the control software 40 from the storage 15, and the difference absorption unit 23 controls to execute the control software 40.
  • the difference absorbing unit 23 executes at least one of a plurality of internal data processes of the control software 40 to simulate the operation of the machine tool.
  • the difference absorbing unit 23 absorbs the difference between the execution environment of the CNC device and the execution environment of the data processing device 10 when executing the control software 40.
  • OS 30 is an OS that operates on the data processing device 10.
  • FIG. 3 shows an example of the internal configuration of the difference absorbing unit 23.
  • the API classification unit 231 analyzes the names of APIs for OS and hardware processing. Based on the name of the API, the API category is identified and the API is classified into one of a plurality of categories.
  • the API classification unit 231 classifies a plurality of APIs into one of a first category, a second category, and a third category.
  • APIs classified into the first category are referred to as first APIs.
  • APIs classified into the second category are referred to as second APIs.
  • APIs classified into the third category are referred to as third APIs.
  • the API classification unit 231 determines the API as the first API. Execution of the internal data processing included in the first API cannot be omitted.
  • the second API and the third API are APIs that include optional internal data processing.
  • Optional Internal data processing needs to be executed when the control software 40 is executed on the CNC device due to the difference in the execution environment between the CNC device and the data processing device 10.
  • the control software 40 is used on the data processing device 10. It is an internal data processing that can be omitted when it is executed.
  • the optional internal data processing included in the second API is internal data processing peculiar to the CNC device, but when executed by the data processing device 10, it is determined that the data processing always ends with an error or always ends normally.
  • the optional internal data processing included in the third API is internal processing data processing executed by both the CNC device and the data processing device 10, but is executed when the data processing device 10 executes the control software 40. Is an internal data processing that can be omitted.
  • the API classification unit 231 corresponds to the extraction unit. Further, the process performed by the API classification unit 231 corresponds to the extraction process.
  • the OS alternative processing unit 232 executes the first API.
  • the system eigenvalue processing unit 233 executes the second API. When executing the second API, the system eigenvalue processing unit 233 omits the execution of the optional internal data processing included in the second API.
  • the simple API processing unit 234 processes the third API.
  • the simple API processing unit 234 executes the third API, the execution of the optional internal data processing included in the third API is omitted.
  • Omissible internal data processing is data processing that does not affect the simulation accuracy even if execution is omitted. Therefore, the system eigenvalue processing unit 233 omits the execution of the optional internal data processing when the second API is executed. Further, the simple API processing unit 234 omits the execution of the internal data processing that can be omitted when the third API is executed.
  • the optional internal data processing is, for example, a process of giving an instruction to an amplifier to physically move a machine tool and controlling a motor. The CNC device interprets the control software 40 and issues a command to the amplifier to operate the motor to operate the machine tool.
  • the simulation drawing unit 21 can generate a drawing expressing that a command is issued to the amplifier and that the machine tool is moving by the motor.
  • the simulation drawing unit 21 since the physical operation that occurs when the CNC device controls the machine tool is not required, it is possible to omit the internal data processing such as outputting an instruction to the amplifier.
  • the system eigenvalue processing unit 233 and the simple API processing unit 234 are collectively referred to as the execution unit 235.
  • the process performed by the execution unit 235 corresponds to the execution process.
  • FIG. 4 is a flowchart showing an outline of the operation of the simulation execution unit 20 according to the present embodiment.
  • the simulation drawing unit 21 starts the operation.
  • step S10 determines in step S10 whether or not the execution of the control software 40 is completed. If the simulation drawing unit 21 has finished processing all the analysis data of the control software 40 on the memory 12, it determines that the execution of the control software 40 is completed. If the execution of the control software 40 is completed (YES in step S10), the simulation drawing unit 21 ends the process. On the other hand, if the execution of the control software 40 is not completed (NO in step S10), the process proceeds to step S11.
  • step S11 the simulation drawing unit 21 determines whether the analysis data of the control software 40 exists on the memory 12. If the analysis data exists on the memory 12 (YES in step S11), the process proceeds to S17. On the other hand, if the analysis data does not exist on the memory 12 (NO in step S11), the process proceeds to step S12.
  • step S12 the simulation drawing unit 21 activates the control unit 22.
  • step S13 the control unit 22 analyzes the control software 40. Then, as a result of the analysis of the control software 40, the control unit 22 activates the difference absorption unit 23 in step S14.
  • step S15 the difference absorbing unit 23 executes the control software 40. Then, in step S16, the difference absorbing unit 23 stores the analysis data indicating the execution result of step S14 in the memory 12.
  • step S17 the simulation drawing unit 21 generates drawing data corresponding to the analysis data stored in the memory 12, and outputs the drawing data to the display device 13.
  • FIG. 5 is a flowchart showing an operation example of the API classification unit 231 of the difference absorption unit 23. Further, FIG. 6 shows an example of the API included in the control software 40 and an operation example of the API classification unit 231 for each API.
  • the API is defined by the following rules.
  • the API whose name is composed entirely of lowercase letters is the first API.
  • the API in which the name includes elements other than lowercase letters is the second API or the third API.
  • the name includes a plurality of words, the first word is composed of all lowercase letters, and the first letter of the following word is uppercase letters.
  • the third API the first word is described in the classification list.
  • the above "lowercase letters” means only lowercase letters or only lowercase letters and numbers.
  • FIG. 7 shows an example of a classification list.
  • the classification list the first word of the name of the third API is listed.
  • the API classification unit 231 analyzes the name of the API to be called, which is included in the control software 40.
  • the API classification unit 231 analyzes the names of the three APIs shown in FIG. 6, datacopy41, semiforeControl42, and ncUnitId43.
  • the datacopy 41 is an API that copies data in a specific area of the memory 12 to another area of the memory 12.
  • the semaphoreControl 42 is an API that controls the simultaneous execution of a plurality of tasks by a semaphore, grants execution permission only to the task having a high execution priority, and makes the other tasks wait for execution.
  • the ncUnitId43 is an API that reads an identification number uniquely assigned to a CNC device and returns the read identification number.
  • step S20 when the API to be analyzed is the first API (YES in step S21), that is, when the names of the APIs to be analyzed are all composed of lowercase letters, the processing is performed. The process proceeds to step S22.
  • step S21 when the API to be analyzed does not appear in the first API (NO in step S21), that is, when the name of the API contains an element other than lowercase alphanumerical characters, the process proceeds to step S23.
  • step S22 When the API classification unit 231 analyzes the datacopy 41 of FIG. 6, the process proceeds to step S22. On the other hand, when the API classification unit 231 analyzes the semiphoreControl 42 and the ncUnitId43 of FIG. 6, the process proceeds to S23.
  • step S22 the API classification unit 231 instructs the OS alternative processing unit 232 to execute the first API managed by the OS 30.
  • the API classification unit 231 instructs the OS alternative processing unit 232 to execute the datacopy47, which is the same API as the datacopy41, which is managed by the OS30.
  • the API classification unit 231 determines whether or not the API to be analyzed corresponds to the second API. Specifically, the API classification unit 231 refers to the classification list stored in the storage 15 and determines whether or not the API to be analyzed corresponds to the second API. As mentioned above, the classification list lists the first word of the name of the third API. Therefore, if the first word of the name of the API to be analyzed is not included in the classification list, the API to be analyzed corresponds to the second API.
  • step S23 When the API to be analyzed is the second API (YES in step S23), the process proceeds to step S24. On the other hand, if the API to be analyzed is not the second API (NO in step S23), that is, if the API to be analyzed is the third API, the process proceeds to step S25.
  • the API classification unit 231 determines that the ncUnitId43 whose first word is "nc" is the third API according to the classification list.
  • “semaphore” is not listed in the classification list. Therefore, the API classification unit 231 determines that the semiforeControl 42 is the second API. Therefore, when the API classification unit 231 analyzes the semiphoreControl 42, the process proceeds to step S24. On the other hand, when the API classification unit 231 analyzes the ncUnitId43, the process proceeds to step S25.
  • step S24 the API classification unit 231 instructs the system eigenvalue processing unit 233 to execute the second API managed by the implemented library.
  • the execution of the semiphoreControl 45 which is the API corresponding to the semiphoreControl 42 managed by the mounted library 230 of the difference absorbing unit 23 is instructed.
  • the OS 30 has a semaphoreControl 48 which is an API corresponding to the semaphoreControl 42, but the API classification unit 231 instructs the system eigenvalue processing unit 233 to execute the semaphoreControl 45.
  • step S25 the API classification unit 231 instructs the simple API processing unit 234 to execute the third API managed by the implemented library.
  • the execution of ncUnitId46, which is an API corresponding to ncUnitId43, managed by the mounted library 230 of the difference absorbing unit 23 is instructed.
  • the API classification unit 231 performs the above processing for all APIs included in the control software 40.
  • FIG. 8 is a flowchart showing an operation example of the OS alternative processing unit 232 when the API classification unit 231 instructs the execution of the first API in step S22 of FIG.
  • step S31 the OS alternative processing unit 232 calls the first API managed by the OS 30.
  • the OS alternative processing unit 232 calls datacopy47.
  • step S32 the OS alternative processing unit 232 executes all internal data processing included in the called first API.
  • step S33 the OS alternative processing unit 232 generates analysis data indicating the execution result of step S32, and stores the generated analysis data in the memory 12.
  • FIG. 9 is a flowchart showing an operation example of the system eigenvalue processing unit 233 when the API classification unit 231 instructs the execution of the second API in step S24 of FIG.
  • step S41 the system eigenvalue processing unit 233 calls the second API managed by the implemented library 230.
  • the system eigenvalue processing unit 233 calls the semiforeControl45.
  • step S42 the system eigenvalue processing unit 233 determines the optional internal data processing among the plurality of internal data processing included in the called second API.
  • step S43 the system eigenvalue processing unit 233 executes the internal data processing included in the second API excluding the optional internal data processing determined in step S42.
  • step S44 the system eigenvalue processing unit 233 generates analysis data indicating the execution result of step S43, and stores the generated analysis data in the memory 12.
  • FIG. 10 is a flowchart showing an operation example of the simple API processing unit 234 when the API classification unit 231 instructs the execution of the third API in step S25 of FIG.
  • step S51 the simple API processing unit 234 calls a third API managed by the mounted library 230.
  • the simple API processing unit 234 calls ncUnitId46.
  • step S52 the simple API processing unit 234 determines the optional internal data processing among the plurality of internal data processing included in the called third API.
  • step S53 the simple API processing unit 234 executes the internal data processing included in the third API excluding the optional internal data processing determined in step S52.
  • step S54 the simple API processing unit 234 generates analysis data indicating the execution result of step S53, and stores the generated analysis data in the memory 12.
  • FIG. 11 is a diagram specifically explaining an operation example of the system eigenvalue processing unit 233 shown in FIG. 9 and an operation example of the simple API processing unit 234 shown in FIG.
  • the system eigenvalue processing unit 233 determines internal data processing that can be omitted when executing the semiphoreControl 45.
  • the control software 40 operates on the real-time OS.
  • the semiforeControl 42 in the control software 40 includes three internal data processes of task status confirmation, task activation permission, and task activation.
  • the semiforeControl 45 corresponding to the semiforeControl 42 also includes three internal data processes of task status confirmation 451 and task activation permission 452 and task activation 453.
  • the system eigenvalue processing unit 233 determines that the task status confirmation 451 and the task activation permission 452, which are internal data processing for guaranteeing real-time performance, can be omitted. As a result, the system eigenvalue processing unit 233 executes only the task activation 453.
  • the simple API processing unit 234 determines internal data processing that can be omitted when executing ncUnitId46.
  • the operation of the ncUnitId43 is to confirm the hardware status, acquire the hardware value indicating the hardware status, and respond to the acquired hardware value.
  • the ncUnitId43 in the control software 40 includes three internal data processes of hardware status confirmation, hardware value acquisition, and hardware value response.
  • the ncUnitId46 corresponding to the ncUnitId43 also includes three internal data processes of hardware status confirmation 461, hardware value acquisition 462, and hardware value response 463.
  • the simple API processing unit 234 determines that the hardware status confirmation 461 and the hardware value acquisition 462 can be omitted. As a result, the simple API processing unit 234 executes only the hardware value response 463.
  • the difference absorbing unit 23 substitutes for the processing of the hardware and the OS mounted on the CNC device. Therefore, according to the present embodiment, it is possible to port the control software 40 to a general-purpose PC without modifying the source code that is the source of the control software 40 of the CNC device. Further, the difference absorption unit 23 has a library that appropriately simplifies the processing of the hardware and the OS mounted on the CNC device, and maintains the same processing fidelity as the conventional method of emulating the CNC device. It can operate faster than the method.
  • the processor 11 shown in FIG. 1 is an IC (Integrated Circuit) that performs processing.
  • the processor 11 is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like.
  • the memory 12 shown in FIG. 1 is a RAM (Random Access Memory).
  • the storage 15 shown in FIG. 1 is a ROM (Read Only Memory), a flash memory, an HDD (Hard Disk Drive), or the like.
  • the display device 13 shown in FIG. 1 is a display such as an LCD (Liquid Crystal Display).
  • the input device 14 shown in FIG. 1 is a keyboard, a mouse, or the like.
  • At least one of the information, data, signal value, and variable value indicating the processing result of the simulation drawing unit 21, the control unit 22, and the difference absorbing unit 23 is at least one of the memory 12, the storage 15, the register in the processor 11, and the cache memory. It is memorized in either. Further, the program that realizes the functions of the simulation drawing unit 21, the control unit 22, and the difference absorbing unit 23 is stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD. It may have been done. Then, a portable recording medium in which a program that realizes the functions of the simulation drawing unit 21, the control unit 22, and the difference absorption unit 23 may be stored may be distributed.
  • a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD. It may have been done. Then, a portable recording medium in which a program that
  • the "unit" of the simulation drawing unit 21, the control unit 22, and the difference absorption unit 23 may be read as “circuit” or “process” or “procedure” or “processing” or “circuit Lee".
  • the data processing device 10 may be realized by a processing circuit.
  • the processing circuit is, for example, a logic IC (Integrated Circuit), a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or an FPGA (Field-Programmable Gate Array).
  • the simulation drawing unit 21, the control unit 22, and the difference absorption unit 23 are each realized as a part of the processing circuit.
  • the superordinate concept of the processor and the processing circuit is referred to as "processing circuit Lee". That is, the processor and the processing circuit are specific examples of the "processing circuit Lee", respectively.

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.  外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なる、前記外部データ処理機器で実行されるデータ処理である実行データ処理を実行するデータ処理装置であって、
     前記実行データ処理に含まれる内部データ処理のうち、前記外部データ処理機器と前記データ処理装置との間の前記実行環境の違いにより前記外部データ処理機器で前記実行データ処理を実行する際には実行が必要であるが前記データ処理装置で前記実行データ処理を実行する際には実行の省略が可能な内部データ処理を、省略可能内部データ処理として抽出する抽出部と、
     前記抽出部により抽出された前記省略可能内部データ処理の実行を省略して前記実行データ処理を実行する実行部とを有するデータ処理装置。
  2.  前記データ処理装置は、
     前記実行環境として、ハードウェア環境及びOS(Operating System)環境が前記外部データ処理機器と異なり、
     前記抽出部は、
     前記外部データ処理機器と前記データ処理装置との間の前記ハードウェア環境及び前記OS環境の違いにより前記外部データ処理機器で前記実行データ処理を実行する際には実行が必要であるが前記データ処理装置で前記実行データ処理を実行する際には実行の省略が可能な内部データ処理を、前記省略可能内部データ処理として抽出する請求項1に記載のデータ処理装置。
  3.  前記抽出部は、
     API(Application Programming Interface)の名称を解析して前記省略可能内部データ処理を抽出する請求項1に記載のデータ処理装置。
  4.  前記外部データ処理機器は、工作機械の動作の制御のための制御ソフトウェアを、前記実行データ処理として実行するCNC(Computerized Numerical Control)機器であり、
     前記抽出部は、
     前記制御ソフトウェアに含まれる、前記省略可能内部データ処理を抽出し、
     前記実行部は、
     前記省略可能内部データ処理の実行を省略して前記制御ソフトウェアを実行し、前記CNC機器での前記工作機械の制御をシミュレートする請求項1に記載のデータ処理装置。
  5.  外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なるコンピュータが、前記外部データ処理機器で実行されるデータ処理である実行データ処理を実行するデータ処理方法であって、
     前記コンピュータが、前記実行データ処理に含まれる内部データ処理のうち、前記外部データ処理機器と前記コンピュータとの間の前記実行環境の違いにより前記外部データ処理機器で前記実行データ処理を実行する際には実行が必要であるが前記コンピュータで前記実行データ処理を実行する際には実行の省略が可能な内部データ処理を、省略可能内部データ処理として抽出し、
     前記コンピュータが、抽出された前記省略可能内部データ処理の実行を省略して前記実行データ処理を実行するデータ処理方法。
  6.  外部のデータ処理機器である外部データ処理機器とデータ処理の実行環境が異なるコンピュータに、前記外部データ処理機器で実行されるデータ処理である実行データ処理を実行させるデータ処理プログラムであって、
     前記実行データ処理に含まれる内部データ処理のうち、前記外部データ処理機器と前記コンピュータとの間の前記実行環境の違いにより前記外部データ処理機器で前記実行データ処理を実行する際には実行が必要であるが前記コンピュータで前記実行データ処理を実行する際には実行の省略が可能な内部データ処理を、省略可能内部データ処理として抽出する抽出処理と、
     前記抽出処理により抽出された前記省略可能内部データ処理の実行を省略して前記実行データ処理を実行する実行処理とを前記コンピュータに実行させるデータ処理プログラム。
PCT/JP2020/048558 2020-12-24 2020-12-24 データ処理装置、データ処理方法及びデータ処理プログラム Ceased WO2022137458A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202080106688.5A CN116457765B (zh) 2020-12-24 2020-12-24 数据处理装置、数据处理方法及计算机可读取的记录介质
PCT/JP2020/048558 WO2022137458A1 (ja) 2020-12-24 2020-12-24 データ処理装置、データ処理方法及びデータ処理プログラム
JP2021530973A JP6968318B1 (ja) 2020-12-24 2020-12-24 データ処理装置、データ処理方法及びデータ処理プログラム
DE112020007705.5T DE112020007705T5 (de) 2020-12-24 2020-12-24 Datenverarbeitungseinrichtung, datenverarbeitungsverfahren und datenverarbeitungsprogramm
TW110124761A TW202225877A (zh) 2020-12-24 2021-07-06 資料處理裝置、資料處理方法及資料處理程式產品
US18/135,346 US12050940B2 (en) 2020-12-24 2023-04-17 Data processing apparatus, data processing method, and computer readable medium

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/135,346 Continuation US12050940B2 (en) 2020-12-24 2023-04-17 Data processing apparatus, data processing method, and computer readable medium

Publications (1)

Publication Number Publication Date
WO2022137458A1 true WO2022137458A1 (ja) 2022-06-30

Family

ID=78509629

Family Applications (1)

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

Country Status (6)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 システムシミュレーション実行プログラムおよびハードウェア記述変換プログラム

Family Cites Families (22)

* 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
US20030220987A1 (en) * 2002-05-21 2003-11-27 Aviation Communication & Surveillance Systems, Llc System and method with environment memory for input/output configuration
JP4957521B2 (ja) * 2007-11-22 2012-06-20 日本電気株式会社 ソフトウェア部分テストシステム、それに用いる方法およびプログラム
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
AU2012373895B2 (en) 2012-03-22 2016-01-21 Intel Corporation Nested emulation and dynamic linking environment
JP2014130460A (ja) * 2012-12-28 2014-07-10 Canon Marketing Japan Inc テスト支援装置、制御方法、及びプログラム
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対応デバイスの制御方法
JP6603513B2 (ja) * 2014-09-03 2019-11-06 キヤノン株式会社 通信装置及び情報処理装置及びそれらの制御方法、並びに記憶媒体
JP6462521B2 (ja) * 2015-07-31 2019-01-30 株式会社日立超エル・エス・アイ・システムズ 通常部の故障が安全部へ伝播することを防止するapi及びその処理部
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 システムシミュレーション実行プログラムおよびハードウェア記述変換プログラム

Also Published As

Publication number Publication date
JPWO2022137458A1 (ja) 2022-06-30
DE112020007705T5 (de) 2023-09-28
US12050940B2 (en) 2024-07-30
JP6968318B1 (ja) 2021-11-17
CN116457765B (zh) 2026-03-31
US20230259372A1 (en) 2023-08-17
TW202225877A (zh) 2022-07-01
CN116457765A (zh) 2023-07-18

Similar Documents

Publication Publication Date Title
JP7557000B2 (ja) ベクトル要素内のビット値のテスト
US11544436B1 (en) Hardware-software interaction testing using formal verification
JP2011118841A (ja) シミュレーション方法、システム、及びプログラム
JP6968318B1 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
CN116340081B (zh) 一种基于硬件虚拟化的riscv内存访问违例检测方法及装置
KR102640248B1 (ko) 생성형 거대 인공지능 모델의 효율적인 하드웨어 매핑을 위한 방법 및 시스템
KR102213258B1 (ko) 효율적인 명령어 처리를 위한 프로세싱-인-메모리 제어 방법 및 이를 적용한 연산장치
EP2115574B1 (en) Employing a buffer to facilitate instruction execution
JP5001126B2 (ja) ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体
JP3641090B2 (ja) プログラミング支援装置とその方法
JP7335952B2 (ja) ベクトル述語要約の生成
WO2022190772A1 (ja) ソフトウェア性能検証システム、およびソフトウェア性能検証方法
JP2007094986A (ja) シミュレーション装置およびシミュレーション方法
JP6818568B2 (ja) 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム
CN118708299B (zh) 图形处理器的仿真方法与系统
WO2022172433A1 (ja) テストコード生成装置、及びテストコード生成方法、並びにテストコード生成プログラム
JP3019922B2 (ja) トレースデータ削減方式
WO2021140568A1 (ja) 関数生成プログラム、関数生成方法、及び情報処理装置
CN117008972B (zh) 一种指令分析方法、装置、计算设备及存储介质
JP7530343B2 (ja) システム開発支援装置、システム開発支援方法およびシステム開発支援プログラム
JP5067705B2 (ja) 異常系テスト支援装置、異常系テスト支援方法、及びプログラム
TWI233034B (en) Hierarchical software application system
JP2008191796A (ja) 解析装置及び解析方法及びプログラム
US20090273605A1 (en) Operation Checking Method in Information System, Operation Checking Program Therefor, Recording Medium, and Operation Checking System
JPH01274238A (ja) Romプログラム開発装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021530973

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20966946

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202347029067

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 202080106688.5

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 112020007705

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20966946

Country of ref document: EP

Kind code of ref document: A1