Simulation Log Replay for Faster Program Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing simulation systems require significant time for program verification, as they demand repeated reproduction of simulations to ensure program correctness, leading to inefficient program debugging processes.

Innovation Solution

A simulation system that allows users to check positional information of objects and variable values at each execution time, enabling efficient program debugging by reproducing simulations step-by-step and displaying relevant logs and graphs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If simulations are repeatedly reproduced to verify programs, then program verification reliability is improved, but time consumption increases

Engineering Contradiction:
Improveprogram verification reliabilityVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by recording positional information and variable values at each execution time during the initial simulation run. This recorded data is then reused for multiple verification purposes, eliminating the need to re-run simulations repeatedly and thus reducing time consumption while maintaining verification reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of simulation data (positional information and variable values) at different execution times and presents them in a time-series display. This allows users to verify program correctness by examining copied data from multiple time points without re-executing the simulation, thereby reducing time consumption while maintaining verification reliability

Inventive Principle:
Principle #26Copying

2Productivity

If positional information and variable values are displayed for each execution time, then program debugging efficiency is improved, but data processing complexity increases

Engineering Contradiction:
Improveprogram debugging efficiencyVSAvoiddata processing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the simulation data by execution time, creating distinct data sets for each time point. This segmentation allows the display to present positional information and variable values in an organized, time-ordered manner, making it easier to debug programs by examining specific execution moments without being overwhelmed by the overall complexity of the entire simulation data set

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary data structure that stores and manages the relationship between execution times, positional information, and variable values. This intermediary layer simplifies the processing complexity by providing a structured interface between the raw simulation data and the display function, enabling efficient debugging through organized data presentation

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP4113225B1Simulation system, method for simulation system, and simulation program
Publication Date: 2025.02.12 OMRON CORP
  • EP4113225B1 patent drawingFigure 1
  • EP4113225B1 patent drawingFigure 2
  • EP4113225B1 patent drawingFigure 3

AI summary

Provided is a simulation technique that allows the program verification to be more efficiently performed. A simulation system (500) includes: a simulator (520) that executes simulation of an operation of one or more devices; a data input unit (551) that obtains one or more execution times in the simulation, positional information (252) of each one of one or more objects in the simulation, and a value (254) of each one of one or more variables referred to by a program (253) to operate the one or more devices; a data recorder (554) that stores, as a first log (250), positional information (252) of the one or more objects and value (254) of the one or more variables for each of the one or more execution times in a manner that positional information (252) and value (254) are associated with each other; and a displayer that displays positional information (252) of the one or more objects and value (254) of the one or more variables for each of the one or more execution times included in first log (250).