Information processing system, method and program

The information processing system addresses the challenge of acquiring control programs and models by using a controller and simulator to collect and adjust model parameters, ensuring accurate simulation and reduced online adjustment needs.

JP7600789B2Active Publication Date: 2024-12-17OMRON CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021039413
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-03-11
Publication Date
2024-12-17
Estimated Expiration
2041-03-11

AI Technical Summary

Technical Problem

Existing technologies do not provide an efficient mechanism for easily acquiring a control program and corresponding model for diverse production sites, as highlighted by Japanese Patent Application Publication No. 2016-42378.

Method used

An information processing system that includes a controller and simulator, with a controller emulator and actuator emulator, to execute control programs and models, and collects and adjusts model parameters based on behavior values to match actual drive device behavior, facilitating easy acquisition of control programs and models.

Benefits of technology

Enables easy acquisition and adjustment of control programs and models to match the behavior of actual drive devices, reducing the need for extensive online adjustments and improving the accuracy of simulations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007600789000001
    Figure 0007600789000001
  • Figure 0007600789000002
    Figure 0007600789000002
  • Figure 0007600789000003
    Figure 0007600789000003
Patent Text Reader

Abstract

To obtain both a control program for a control target and a model of a driving apparatus for the control target.SOLUTION: An FA system (50) causes a controller (51) to execute a control program (15) that outputs a command value for controlling a driving apparatus (55); control the driving apparatus according to the command value; and collects a first behavior value of the driving apparatus. The information processing device (10) collects a second behavior value that is calculated by executing a driving apparatus model (16) by using, as input, a command value that is output when the control program is executed by a controller emulator (120). The information processing device adjusts a parameter of the model on the basis of, a difference in a same period or at a same time in time between the first and second behavior values that have been collected in time-series.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a technique for providing an environment for developing programs for controlling FA (Factory Automation) devices. [Background technology]

[0002] FA systems for automating production processes are becoming common in various production sites. FA systems are equipped with devices to be controlled in the production process and control devices such as PLCs (Programmable Logic Controllers) that execute control programs.

[0003] Typically, designers can use a simulator to develop a control program. The simulator executes a control program for a control target, and executes a model for calculating the behavior of the control target using the execution result. Regarding a technology for supporting a simulation, Japanese Patent Application Laid-Open No. 2016-42378 (Patent Document 1) discloses a simulation device capable of realizing an integrated simulation including a visual sensor. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2016-42378 A Summary of the Invention [Problem to be solved by the invention]

[0005] The diversity of production sites is increasing, and in order to keep up with this diversity, there is a demand for easily acquiring control programs for controlled objects and models of devices that drive the controlled objects. Patent Document 1 does not propose a mechanism for acquiring control programs and corresponding models.

[0006] The present disclosure provides a configuration that can easily obtain a control program for a control target and a model of a moving machine for the control target. [Means for solving the problem]

[0007] The information processing system according to the present disclosure includes a controller that executes a control program for a movable device and outputs a command value for controlling the movable device, and a simulator, the simulator including a controller emulator that simulates a behavior of the controller by executing the control program, and an actuator emulator that uses as an input a command value output when the control program is executed by the controller emulator and executes a model of the movable device to calculate a behavior value of the movable device. The information processing system further includes a first collection unit that collects behavior values ​​indicating a behavior of the movable device when the control program is executed by the controller, a second collection unit that collects the calculated behavior values ​​in a simulation in which the control program is executed by the controller emulator and the behavior values ​​are calculated by the actuator emulator, and an adjustment unit that adjusts a model parameter preset in the model based on a difference between the time-series behavior values ​​collected by the first collection unit and the time-series behavior values ​​collected by the second collection unit at the same time or at the same time.

[0008] According to the disclosure above, the adjustment unit adjusts the model parameters based on the difference between the time-series behavior values ​​collected from the moving machine by the first collection unit when the control program is executed by the controller and the time-series behavior values ​​collected from the model of the moving machine by the second collection unit at the same time or at the same instant in time. This makes it possible to adjust the model parameters of the model so as to match the behavior of the actual moving machine, and to easily obtain the control program of the moving machine to be controlled and the model of the moving machine.

[0009] In the above disclosure, the information processing system outputs the behavior values ​​collected by the first collector and the behavior values ​​collected by the second collector in association with each other on the time axis based on the collection times.

[0010] According to the above disclosure, the behavior of the actual moving machine and the behavior calculated by the model of the moving machine can be associated with each other and presented to the user.

[0011] In the above disclosure, the association includes plotting the time series behavior values ​​collected by the first collection unit and the time series behavior values ​​collected by the second collection unit based on the time at which they were collected on a two-dimensional plane with the behavior values ​​on the vertical axis and the time axis on the horizontal axis.

[0012] According to the above disclosure, the behavior of the actual moving machine and the behavior calculated by a model of the moving machine can be plotted on a graph to show the correlation between them.

[0013] In the above disclosure, the model parameters include parameters based on the mechanical or physical properties of the drive equipment.

[0014] According to the above disclosure, the model parameters include parameters of the mechanical or physical characteristics of the drive equipment, so that the mechanical or physical behavior of the drive equipment can be included in the behavior calculated by the model.

[0015] In the above disclosure, the model executed by the actuator emulator in the simulation includes a model in which model parameters adjusted by the adjustment unit are set.

[0016] According to the above disclosure, by performing a simulation using a model in which adjusted parameters are set, the adjustment results of the model parameters can be reflected in the behavior values ​​calculated from the model in the simulation.

[0017] In the above disclosure, the controller takes as input the behavior value of the moving equipment and executes a control program based on the first control parameter, the controller emulator takes as input the behavior value calculated by the actuator emulator and executes a control program based on the second control parameter, and the adjustment unit further adjusts the second control parameter to be consistent with the first control parameter, and then performs adjustment of the model parameter.

[0018] According to the above disclosure, the second control parameter is matched with the first parameter before the model parameter is adjusted, so that the model parameter can be adjusted without the difference between the second control parameter and the first parameter control affecting the adjustment amount of the model parameter.

[0019] In the above disclosure, the adjustment unit outputs guide information for adjusting the model parameters based on the above-mentioned difference at the same time or at the same instant of time.

[0020] According to the above disclosure, guide information for adjusting model parameters can be presented to a user.

[0021] In the above disclosure, the guide information includes an identifier of a model parameter to be adjusted and an adjustment amount of the model parameter.

[0022] According to the above disclosure, the parameters to be adjusted and the amounts of adjustment thereof can be presented as guide information.

[0023] In the above disclosure, the model parameters set in the model are adjusted based on the model parameters to be adjusted and the adjustment amounts of the model parameters designated by a user operation.

[0024] According to the above disclosure, the adjusted parameters can be reset in the model.

[0025] In the above disclosure, the simulator executes a simulation using a model in which the adjusted model parameters are set, each time an adjustment is performed by the adjustment unit, until the difference satisfies a predetermined condition.

[0026] According to this disclosure, each time an adjustment is performed by the adjustment unit, a simulation is repeatedly performed using a model in which the adjusted model parameters are set, and the repetition of adjustment and simulation can be automatically terminated when the above difference satisfies a predetermined condition.

[0027] The method disclosed herein comprises the steps of: causing a controller to execute a control program that outputs command values ​​to control a moving machine to be controlled, and controlling the moving machine in accordance with the command values; executing controller emulation to calculate a behavior of the controller by executing the control program; executing actuator emulation to calculate a behavior value of the moving machine by executing a model of the moving machine using as input the command values ​​output when the control program is executed by the controller emulation; a first collection step of collecting behavior values ​​indicative of the behavior of the moving machine when the control program is executed by the controller; a second collection step of collecting behavior values ​​calculated by the actuator emulation when the control program is executed in the controller emulation; and adjusting model parameters that are pre-set in the model based on the difference between the time-series behavior values ​​collected by the first collection step and the time-series behavior values ​​collected by the second collection step at the same time or at the same instant in time.

[0028] According to the above disclosure, when the method is performed, the model parameters are adjusted based on the difference between the time-series behavior values ​​collected from the moving machine by the first collection unit when the control program is executed by the controller and the time-series behavior values ​​collected from the model of the moving machine by the second collection unit at the same time or at the same instant in time. This makes it possible to adjust the model parameters set in the model so as to match the behavior of the actual moving machine, and to easily obtain the control program of the moving machine to be controlled and the model of the moving machine.

[0029] According to another aspect of the present disclosure, there is provided a program for causing a processor to execute the above-described method.

[0030] In the above disclosure, when the program is executed by the processor, the model parameters are adjusted based on the difference between the time-series behavior values ​​collected from the moving machine by the first collection unit when the control program is executed by the controller and the time-series behavior values ​​collected from the model of the moving machine by the second collection unit at the same time, whereby the model parameters set in the model can be adjusted to match the behavior of the actual moving machine, and the control program of the moving machine to be controlled and the model of the moving machine can be easily obtained. Effect of the Invention

[0031] According to the present disclosure, a control program for a controlled object and a model of a moving machine for the controlled object can be easily obtained. [Brief description of the drawings]

[0032] [Figure 1] FIG. 1 is a diagram illustrating a schematic configuration of an information processing system 1 according to the present embodiment. [Diagram 2] FIG. 1 is a diagram illustrating an example of a development environment according to an embodiment of the present invention. [Diagram 3] FIG. 1 is a diagram illustrating a schematic configuration of an FA system 50 having a controlled object according to the present embodiment. [Figure 4]It is a diagram schematically showing an example of a control program 15 according to the present embodiment. [Diagram 5] It is a diagram schematically showing an example of a UI for assisting in creating parameters according to the present embodiment. [Figure 6] It is a diagram showing an example of an arithmetic expression 741 of a model 16 according to the present embodiment. [Figure 7] It is a diagram showing an example of a UI for specifying a control target according to the present embodiment. [Figure 8] It is a diagram showing an example of a UI for specifying model parameters according to the present embodiment. [Figure 9] It is a diagram showing an example of a configuration of adjustment based on the output of an actual machine according to the present embodiment. [Figure 10] It is a diagram showing an example of a UI for adjustment processing according to the present embodiment. [Figure 11] It is a schematic diagram showing an example of the configuration of an information processing apparatus 10 according to the present embodiment. [Figure 12] It is a flowchart of creation processing according to the present embodiment. [Figure 13] It is a flowchart of adjustment processing based on the output of an actual machine according to the present embodiment. [Figure 14] It is a flowchart of adjustment processing based on the output of an actual machine according to the present embodiment.

Embodiments for Carrying Out the Invention

[0033] Hereinafter, embodiments according to the present invention will be described with reference to the drawings. In the following description, the same parts and components are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated.

[0034] <A. Application Examples> Application examples of the present invention will be described. An information processing apparatus 10 according to the present embodiment provides an environment for developing a control program 15 for a drive device (hereinafter also referred to as an actual machine) for driving a machine that is a control target provided in a production process and a model 16 of the drive device.

[0035] 2 is a diagram showing a schematic diagram of an example of a development environment according to the present embodiment. The information processing device 10 includes a development support tool 20 for developing a control program 15 and a model 16 based on user settings 19 using a simulator 21, a builder 18 for converting the created control program 15 into an executable format, and a storage unit for storing information related to the development. A designer can operate the development support tool 20 and the builder 18 by operating a UI tool provided by the information processing device 10.

[0036] The information processing device 10 transfers the control program 15 converted by the builder 18 to a controller 51 that controls the actual machine. The controller 51 controls the actual machine by executing the transferred control program 15. The controller 51 typically includes a PLC, but is not limited to the name of a PLC, and the controller is a concept that generally refers to a control device that controls an actual machine.

[0037] The control program 15 is an example of a user program, and is written in a cyclic execution type program language (for example, a ladder language or a ST (Structured Text) language). More specifically, the control program 15 includes a ladder program having FUs (Functions), FBs (Function Blocks), etc. as program elements that are basic components called POUs (Program Organization Units) constituting a user program. The control program 15 is not limited to a program written in a cyclic execution type program language such as a ladder program, and may also include, for example, a program written in a sequential execution type language. In this embodiment, FBs will be mainly described as program elements constituting the control program 15, but this embodiment can be similarly applied to FUs.

[0038] The user settings 19 include a control target 19a including an identifier for identifying a control target (machine) designated by the user, settings 19b relating to parameters of the model 16, and a control method 19c indicating a method for controlling the actual machine.

[0039] The storage unit stores, for each of a plurality of machines that can be controlled, an FB (Function Block) set 138 having an object ID 1381 for identifying the machine, and a CAD (Computer-Aided Design) set 139 having an object ID 1391 for identifying the machine, as well as pairs 17, which will be described later. The FB set 138 includes one or more FBs for implementing control arithmetic processing for controlling the corresponding machine. The CAD set 139 includes a basic model 16B of a driving device of the controlled machine, together with data of one or more images showing the three-dimensional shape of the corresponding machine. The basic model 16B indicates a model in which specific model parameters have not yet been set, for example, a model in which initial model parameters have been set.

[0040] The control program creation tool 22 searches the storage unit for an FB set 138 having an object ID 1381 that matches the identifier of the control object 19a in the user settings 19. The control parameter setting unit 23 sets a control parameter for control based on the control method 19c in the user settings 19 to the FB of the searched FB set 138. In this embodiment, the control method 19c includes a specification value for control indicated by the specification data of the machine or driving device to be controlled. The control parameter setting unit 23 converts the specification value indicated by the control method 19c into a control parameter value using a predetermined conversion formula, and sets the converted control parameter to the FB. In this embodiment, a "parameter" corresponds to a variable representing a parameter, and "setting a parameter" means setting a type of a variable representing a parameter, or setting a value to a variable. In addition, "adjusting a parameter," "adjusting the control program 15," or "adjusting the model 16" means adjusting (changing) the value of a parameter in this embodiment.

[0041] The control parameters include parameters of the control calculation process realized by the FB. For example, if the actual machine to be controlled includes a servo motor, the control calculation process may include a PID (Proportional-Integral-Differential Controller) calculation. The PID parameters include, for example, a gain, a target value, a time constant, and the like. The types of control parameters differ depending on the control method, and are not limited to these. For example, the control parameters may include a trigger that indicates the timing of the calculation. The control parameter setting unit 23 sets the control parameters to each FB of the FB set 138, thereby creating a control program 15 based on the specifications.

[0042] The model creation tool 24 searches the storage unit for a CAD set 139 and a basic model 16B having an object ID 1391 that matches the identifier of the control object 19a in the user settings 19. The model parameter setting unit 25 creates a model 16 by setting model parameters based on the model specifications based on the settings 19b of the user settings 19 to the searched basic model 16B. The basic model 16B may be provided by the settings 19b of the user settings 19.

[0043] More specifically, the model is represented by various arithmetic expressions including a physical arithmetic expression for calculating the behavior of the driving device (actual device) to be controlled, and the model parameters represent parameters to be set in the arithmetic expression of the model. The model parameters include parameters of the mechanical characteristics and physical characteristics of the actual device. The setting 19b indicates the mechanical characteristics and physical characteristics. The parameters based on the mechanical characteristics (hereinafter also referred to as mechanical parameters) include parameters based on the size, position, etc., and the parameters of the physical characteristics (hereinafter also referred to as physical parameters) include parameters based on the friction coefficient, mass (weight), etc. For example, when the driving device is configured to include a servo motor, the friction coefficient of the physical parameters may include the friction coefficient of the motor bearing. Note that the types of the mechanical parameters and physical parameters are not limited to these.

[0044] The development support tool 20 executes the control program 15 in which the control parameters are set and the model 16 in which the model parameters are set using a simulator 21 to obtain the control program 15 in which the control parameters have been adjusted, and transfers the adjusted control program 15 to the controller 51.

[0045] More specifically, the simulator 21 executes the control program 15 based on the behavior value as input, executes the calculation of the model 16 using the control command value as the execution result as input, and outputs the behavior value indicating the behavior of the actual machine, which is the calculated value, as the input of the control program 15. The simulator 21 repeatedly executes this series of processes for each time step ti (i=1, 2, 3, ...) described later. In this way, the simulator 21 can estimate the behavior of the actual machine when the actual machine is controlled by the control program 15 by executing the control program 15 and the model 16. In this embodiment, "calculating the behavior" indicates a concept that can include "estimating the behavior" or "simulating the behavior".

[0046] When a simulation is executed, the information processing device 10 generates an image that visualizes the movement of the controlled object according to the behavior calculated by the model 16 using the CAD data (images) of the CAD set 139 by the visualizer 27 described later, and displays the generated image on the display. This allows the designer to visually present the estimated behavior of the actual machine.

[0047] In this embodiment, the driving device includes an actuator such as a servo motor, and the command value includes the angular velocity of the driving device. The behavior value calculated by the model 16 includes the rotation speed of the servo motor, etc. Note that the "command value" is not limited to the angular velocity, and may be, for example, a command for a driving device including an actuator such as a servo motor, such as a position, velocity, acceleration, jerk (jerk), angle, angular acceleration, angular jerk, etc., expressed as a command.

[0048] When a designer operates the development support tool 20 to develop a control program 15, the designer operates the control program creation tool 22 to adjust control parameters so as to derive behavior values ​​that satisfy the specifications, thereby creating the control program 15. The designer also operates the development support tool 20 to create a model 16 by adjusting model parameters.

[0049] More specifically, the simulator 21 executes the control program 15 and the model 16 at each periodic time step ti. At the start of the simulation, the model 16 is set with model parameters indicated by the settings 19b, and the control program 15 is set with control parameters based on the control method 19c. At the time step ti, the control program 15 is executed with a behavior value from the model 16 as an input, and the model 16 is executed with a command value from the control program 15 as an input to calculate a behavior value. At the next time step t(i+1), the control program 15 is executed with a behavior value calculated at the immediately preceding time step ti as an input. In this way, the simulator 21 derives a time-series behavior value for each time step ti.

[0050] If the time-series behavior values ​​derived from the simulator 21 deviate from the target behavior values ​​indicated in the specifications, the development support tool 20 adjusts the control parameters based on the degree of deviation based on the user operation of the designer, and performs the above simulation using the control program 15 in which the adjusted control parameters are set. The development support tool 20 repeatedly executes the simulation while adjusting the control parameters until it is detected that the time-series behavior values ​​derived from the simulator 21 match the target behavior values. At this time, the development support tool 20 may adjust the model parameters based on the user operation, and execute the simulation using the adjusted model 16.

[0051] The linking unit 26 is an embodiment of a management means for managing the control program 15 by linking it to the model 16 and storing it as a pair 17. More specifically, when the development support tool 20 detects that the time-series behavior value derived from the simulator 21 matches the target behavior value, the linking unit 26 links the control program 15 in which the adjusted control parameters are set to the model 16 (or the model 16 in which the adjusted model parameters are set) to generate and store the pair 17.

[0052] By inputting user settings 19 (control target 19a, settings 19b, and control method 19c) into the information processing device 10 and operating the development support tool 20, the designer can obtain a control program 15 that controls the actual device to satisfy the specifications, and transfer this to a controller 51 in an online environment such as a factory production site.

[0053] In this way, the control program 15 is mostly adjusted in the offline environment provided by the development support tool 20, so that the adjustment time using the actual device in an online environment can be reduced.

[0054] Furthermore, managing the control program 15 and the model 16 as a pair 17 is useful in situations where the two are to be matched to the mechanical or physical characteristics of the control program 15 and the actual machine in an online environment.

[0055] More specifically, due to a change in the online environment, the control parameters of the control program 15 executed by the controller 51 are adjusted, or the mechanical or physical characteristics of the actual machine change. The designer adjusts the parameters of the control program 15 and the model 16 again in the offline environment so that the change in the online environment is reflected in the control program 15 and the model 16 in the offline environment. In such a scenario, the designer can easily identify the target of adjustment by managing the two as a pair 17. As a result, even when multiple control programs 15 are developed in the same offline environment, or when managing adjusted versions of the control program 15, the management of the pair 17 makes it easy to identify the target of adjustment.

[0056] A configuration for reflecting the above-mentioned changes in the online environment in the control program 15 and the model 16 in the offline environment will now be described.

[0057] In this configuration, in an online environment, a controller is made to execute a control program 15 that outputs a command value for controlling a drive device, and the drive device is controlled according to the command value. In an offline environment, the information processing apparatus 10 executes a controller emulation that calculates the behavior of the controller by executing the control program 15, and executes an actuator emulation that calculates the behavior value of the drive device by executing the model 16 using, as input, the command value output when the control program 15 is executed by the controller emulation. The information processing apparatus 10 collects the behavior values in the online environment indicating the behavior of the drive device when the control program 15 is being executed by the controller. Further, in the offline environment, the information processing apparatus 10 collects the behavior values in the offline environment calculated by the actuator emulation when the control program 15 is being executed in the controller emulation. The information processing apparatus 10 adjusts the model parameters set in the model 16 associated with the control program 15 based on the difference on the same time axis between the time-series behavior values collected in the online environment and the time-series behavior values collected in the offline environment, for example, the difference at the same time or the same moment. Thereby, the information processing apparatus 10 can maintain the model 16 associated with the control program 15 in a state that reflects the changes in the actual machine in the online environment.

[0058] The "same time" described above indicates, for example, the elapsed time since the information processing apparatus 10 started executing the control program 15 in the offline environment, that is, since the actuator emulation was started, and the elapsed time since the controller started executing the control program 15 and started controlling the drive device according to the command value in the online environment. Further, the above "same moment" indicates the common moment in both of these elapsed times.

[0059] Hereinafter, more specific application examples of the present embodiment will be described.

[0060] <B. Overall Module Configuration of the System> 1 is a diagram showing a schematic configuration of an information processing system 1 according to this embodiment. In the following, a packaging machine 400 described later is exemplified as the controlled object, and a servo motor that drives a rotary knife of the packaging machine 400 is exemplified as the driving device. Note that the controlled object is not limited to the packaging machine 400, and may be a moving table for a workpiece, a conveyor for transporting the workpiece, or the like.

[0061] 1, the information processing system 1 includes an FA system 50, an information processing device 10, and a display 109. The FA system 50 includes a controller 51, a driving device 55, and a first collection unit 60. The information processing device 10 includes a development support tool 20, a simulator 21, a visualizer 27, and a second collection unit 130. The development support tool 20 has an adjustment tool 123 for adjusting the control program 15 in which the control parameters 20B are set or the model 16 in which the model parameters 16A are set.

[0062] The controller 51 is network-connected to the driving devices 55 via an industrial field network, and controls the various driving devices 55 .

[0063] The controller 51 controls the driving device 55 by executing the control program 15 using the control parameters 20A. The driving device 55 is a device that directly or indirectly acts on a workpiece in a production process, and operates according to a command value from the controller 51 to rotate the rotary knife. More specifically, the driving device 55 includes a servo motor that is driven by PWM (Pulse Width Modulation) according to the command value. A measuring device such as a sensor associated with the driving device 55 measures the behavior of the servo motor that operates according to the command value and outputs a behavior value. The controller 51 executes an IO (Input Output) refresh for each control period, which includes a process of acquiring a behavior value indicating a behavior according to the command value as input data, and a process of calculating a command value based on the input data and outputting it to the driving device 55. The period for executing the IO refresh may be a predetermined period and is not limited to the control period.

[0064] The first collection unit 60 collects behavior values ​​D1 indicating the behavior of the moving machine 55 in synchronization with the control period. The first collection unit 60 may be various sensors including an encoder for detecting the behavior value D1 of the moving machine 55, or may be a collection program for collecting data. The behavior values ​​D1 include, for example, the position, speed, rotation speed, acceleration, angular velocity, angular acceleration, etc. of each part of the moving machine 55.

[0065] The simulator 21 includes a controller emulator 120, an actuator emulator 124, and a virtual time generator 122. The virtual time generator 122 outputs a virtual time for synchronously operating the controller emulator 120 and the actuator emulator 124. The controller emulator 120 and the actuator emulator 124 operate synchronously at a period based on a time step ti according to the virtual time. The controller emulator 120 is a program for controller emulation for calculating the behavior of the controller 51. The actuator emulator 124 is a program for actuator emulation for calculating the behavior of the moving device 55.

[0066] More specifically, for each time step ti, the actuator emulator 124 calculates a behavior value according to the arithmetic expression of the model 16 based on the command value from the controller emulator 120, and the controller emulator 120 executes the control program 15 of the control parameters 20B based on the behavior value from the actuator emulator 124 to output the command value to the actuator emulator 124. In this manner, the controller emulator 120 and the actuator emulator 124 exchange command values ​​and behavior values ​​while being synchronized. This exchange allows the simulator 21 to simulate an IO refresh of the FA system 50. In this embodiment, the cycle in which the controller emulator 120 and the actuator emulator 124 are synchronized is based on the control cycle, but is not limited to this.

[0067] The second collection unit 130 is a collection program for collecting data. The second collection unit 130 collects behavior values ​​D2 output by the actuator emulator 124 for each time step ti when a simulation is executed. The behavior values ​​D2 are, for example, the position, rotation speed, speed, acceleration, angular velocity, angular acceleration, etc., of each part of the moving machine 55 in the simulation.

[0068] In FIG. 1, the control parameters 20A and 20B are shown separately, but the two may indicate common parameters.

[0069] (b1. Visualization configuration) The visualizer 27 constitutes a visualization module that generates 3D (3-dimensions) drawing data for visualizing the movement of the controlled object in a three-dimensional virtual space and drawing the movement on the display 109 .

[0070] More specifically, the visualizer 27 generates drawing data for drawing an emulated movement of the rotary knife on the display 109 based on the trajectory data of the rotary knife of the packaging machine 400 and image data representing the packaging machine 400 having the rotary knife. The image data representing the packaging machine 400 having the rotary knife includes CAD data of the CAD set 139 specified by the control object 19a.

[0071] The visualizer 27 calculates three-dimensional coordinates P(x, y, z) and acquires trajectory data by performing calculations on command values (such as angular velocity representing the amount of rotation) from the controller emulator 120 using a predetermined function. In this way, the trajectory data includes information indicating the movement of the packaging machine 400 in the three-dimensional virtual space estimated by the simulation of the control target. The visualizer 27 generates drawing data for three-dimensionally drawing the movement of the packaging machine 400 in the three-dimensional virtual space according to the calculated trajectory data and the image data of the packaging machine 400, and displays an image on the display 109 based on the drawing data. The designer can confirm the results of the simulation from the rotational behavior of the rotary knife of the packaging machine 400 drawn on the display 109. Note that the visualizer 27 may calculate the above trajectory data using a predetermined function for the behavior values from the model 16.

[0072] <Configuration of the C.FA System 50> Referring to FIG. 3, the configuration of the packaging machine 400, which is the control target, will be described together with the configuration of the FA system 50. FIG. 3 is a diagram schematically showing the configuration of the FA system 50 having the control target according to the present embodiment. Referring to FIG. 3, the information processing system 1 includes the FA system 50 and the information processing apparatus 10. The FA system 50 includes, for example, a controller 51 configured to include a PLC, the packaging machine 400, and servo drivers 500A and 500B. The servo drivers 500A and 500B drive the servo motors 410 and 56 included in the packaging machine 400 according to command values from the controller 51, respectively. In FIG. 3, the drive devices of the control target (packaging machine 400) are configured to include the servo drivers 500A and 500B and the servo motors 410 and 56.

[0073] The information processing device 10 has a configuration equivalent to a computer such as a PC (Personal Computer), a tablet terminal, or a smartphone. The controller 51 and the information processing device 10 are connected to a field network NW1. For example, EtherNET (registered trademark) is adopted for the field network NW1. However, the field network NW1 is not limited to EtherNET, and any communication means may be adopted. For example, the controller 51 and the information processing device 10 may be directly connected by a signal line such as a Universal Serial Bus (USB).

[0074] The controller 51 and the servo drivers 500A and 500B are connected to the field network NW2 in a daisy chain. It is preferable to use a network that performs periodic communication and guarantees the arrival time of data for the field network NW2. Known examples of networks that perform periodic communication include EtherCAT (registered trademark), (registered trademark), DeviceNet (registered trademark), and CompoNet (registered trademark).

[0075] 3, packaging machine 400 is configured to include a plurality of mechanisms that operate in coordination with one another. Specifically, packaging machine 400 includes a conveying mechanism having a servo motor 56 associated with a conveying path that conveys packaging material 412 in the direction of arrow 413, a sensor 408 provided midway along the conveying path, and a cutting mechanism 406 that cuts packaging material 412 on the conveying path to generate individual packages 418.

[0076] In the conveying path, a roll-shaped packaging base material is sequentially sent out from a supply mechanism (not shown). In the conveying path, the workpiece 414 supplied from a line (not shown) is covered with the packaging base material, so that the packaging material 412 in which the workpiece 414 is enclosed is continuously supplied to the conveying path. The sensor 408 is configured to include, for example, a proximity switch. The sensor 408 is provided so as to be able to detect that the workpiece 414 has passed through a predetermined position on the conveying path. When the sensor 408 detects the passage of the workpiece 414, it outputs a trigger 402.

[0077] The cutting mechanism 406 includes a servo motor 410, 416, and an encoder 411. In the cutting mechanism 406, in accordance with the trigger 402 from the sensor 408, the servo motor 410 drives the rotary knife 416, so that the rotary knife 416 cuts and seals the packaging material 412 to sequentially generate individual packages 418. The encoder 411 measures the amount of rotation (direction of rotation, angle, number of rotations, etc.) of the servo motor 410 and outputs a measured value 401. In the present embodiment, the measured value 401 indicates, for example, the number of rotations per unit time. In the FA system 50 of FIG. 3, the controller 51 can acquire the measured value 401 as a response to a command value output by executing the control program 15.

[0078] <D. Control Program and Creation> FIG. 4 is a diagram schematically showing an example of the control program 15 according to the present embodiment. Referring to FIG. 4, a part of the control program 15 of the packaging machine 400 will be described. The control program 15 in FIG. 4 is described in ladder language including a conveyor FB60 for executing control arithmetic processing of the conveying mechanism of the packaging machine 400 and a cutter FB61 for executing control arithmetic processing of the cutting mechanism 406 of the packaging machine 400. The process of the information processing apparatus 10 creating the control program 15 as the control program creation tool 22 will be described.

[0079] The information processing device 10 searches for an FB set 138 identified by the target ID 1381 of the packaging machine 400 based on the control target 19a of the user settings 19. The searched FB set 138 includes a conveyor FB60 and a cutter FB61. The conveyor FB60 and the cutter FB61 each have an algorithm of a PID calculation 62 and an algorithm of a PID calculation 63. The conveyor FB60 is configured to receive a behavior value 64 (rotation speed) of the driving device 55 as an input, and to output a command value 66 (angular velocity) as a calculation result. The cutter FB61 is configured to receive a behavior value 67 (rotation speed) of the driving device 55 and an output of the block Trigger as an input, and to output a command value 69 (angular velocity) as a calculation result. The information processing device 10, as the control parameter setting unit 23, sets a PID parameter 65 and a PID parameter 68 for the conveyor FB60 and the cutter FB61, respectively, based on the control method 19c of the user settings 19. Further, based on the control method 19 c of the user settings 19 , a trigger 402 is set in addition to the PID parameters 68 in the cutting machine FB 61 .

[0080] The controller 51 executes the control program 15 of Fig. 4. More specifically, when executing the conveyor FB60, the controller 51 executes a PID calculation 62 based on a behavior value 64 indicating the rotation speed and a PID parameter 65 so as to converge the rotation speed to a target value, and outputs a command value 66 indicating an angular velocity as a result of the execution.

[0081] When a trigger 402 is output from the sensor 408, the block Trigger changes from an OFF state to an ON state. The cutting machine FB 61 receives the output of the block Trigger as an input parameter, and is activated in response to the change of the output from OFF to ON. The controller 51 executes the cutting machine FB 61 when it is in the activated state. More specifically, the controller 51 executes a PID calculation 63 based on a behavior value 67 indicating the rotation speed and a PID parameter 68 so as to converge the rotation speed to a target value, and outputs a command value 69 indicating an angular velocity as a result of the execution.

[0082] The controller 51 outputs the command value 66 of the conveyor FB60 to the servo driver 500B and outputs the command value 69 of the cutting machine FB61 to the servo driver 500A. The servo drivers 500A and 500B each have a PWM (Pulse Width Modulation) circuit (not shown). The servo driver 500A generates a PWM signal, which is an electrical signal having a pulse width based on the angular velocity indicated by the command value 66, by the PWM circuit and outputs it to the servo motor 56. The servo driver 500B generates a PWM signal, which is an electrical signal having a pulse width based on the angular velocity indicated by the command value 69, by the PWM circuit and outputs it to the servo motor 410. By periodically repeating the execution of the control program 15 in this way, the controller 51 can maintain the rotational speed of the drive device 55 at the target value.

[0083] Normally, the control program describes the parameters and input / output values used by the program using variable names. However, for the sake of explanation, the FB of the control program 15 in FIG. 4 uses the descriptions of the parameters and input / output values instead of variable names. Also, normally, the FB outputs the variable values of the state of the FB (execution completion state, execution state, execution interruption state, error state, etc. when the command value is output) and inputs the variable values of the start command. However, in FIG. 4, for the sake of explanation, the illustration of these variable values is omitted.

[0084] <E. Configuration for Creating a Control Program or Model> FIG. 5 is a diagram schematically showing an example of a UI for assisting in creating parameters according to the present embodiment. When the designer operates the development support tool 20 to create the control program 15 or the model 16, the development support tool 20 outputs guide information for parameter adjustment including information on the execution result of the simulator 21 to the UI screen 125 in FIG. 5.

[0085] 5, the UI screen 125 displayed on the display 109 displays, as guide information, a graph showing the time-series behavior value D2 output by the model 16 in an area 91, a code of the control program 15 in which the control parameters 20B are set in an area 92, and a 3D image showing the movement of the controlled object drawn by the visualizer 27 in an area 93. The UI screen 125 also includes, as guide information, a button 94 operated to instruct execution of a simulation, a button 95 operated to adjust (change) parameters to create the control program 15 or the model 16, and a button 96 operated to adjust parameters.

[0086] The adjustment tool 123 provides an environment for performing "estimation of adjustment amount" when creating a control program or a model. When the adjustment of parameters is completed by the adjustment tool 123, the control program 15 is almost complete, and the creation of the corresponding model 16 is also completed. In "estimation of adjustment amount", information on the adjustment amount is provided to the designer.

[0087] More specifically, the graph G4 in the area 91 in FIG. 9 indicates the target, and the graph G5 indicates the simulation value. The graph G4 indicates an ideal behavior that satisfies the specifications, that is, an ideal change in the time series of the rotation speed of the servo motor 410. In contrast, the graph G5 indicates a time series change in the behavior value output by the model 16 when the control program 15 and the model 16 are executed by the simulator 21. The graphs G4 and G5 are output in association with each other on the same time axis. When the simulation is executed, the behavior values ​​from the actuator emulator 124 are collected in time series by the second collection unit 130. The graph G5 is based on the collected time series behavior values. The same time axis described above indicates, for example, the elapsed time from when the information processing device 10 starts to execute the control program 15 in an offline environment and the elapsed time from when the information processing device 10 starts to ideally control the driving device according to the specifications.

[0088] Focusing on the rise time from the start of the behavior value (rotation speed) until it converges to the target TR, the rise time is t0 to t5 in the target graph G4. In contrast, the rise time is t0 to t7 in the graph G5, and there is a delay in the rise.

[0089] As an adjustment tool 123, in the "Estimation of adjustment amount" step, the information processing device 10 determines whether or not a parameter needs to be adjusted based on the data of the graph in area 91 and on the pattern represented by the trend of change in the difference between graphs G4 and G5, and provides information on an approximate amount of adjustment.

[0090] More specifically, the information processing device 10 detects the change trend of the difference by comparing the data of the graph G4 and the graph G5. The information processing device 10 compares the detected change trend with a plurality of predetermined change patterns to determine which change pattern the detected change trend matches. For example, the information processing device 10 determines that the detected change trend matches a rising delay pattern.

[0091] The information processing device 10 extracts the rise delay time, compares the rise delay time with a threshold, and determines whether or not a parameter related to the rise time needs to be adjusted based on the comparison result. For example, when it is determined that the delay time exceeds the threshold, the information processing device 10 searches an LUT (Look Up Table) for a parameter to be adjusted and an adjustment method for dealing with the delay time indicated by the difference to be reduced. Note that the method of identifying the parameter to be adjusted and the adjustment method is not limited to the LUT method, and may be an identification method using learning data by machine learning.

[0092] The information processing device 10 searches the LUT for parameters to be adjusted, which are parameters related to the rise time, for example, for the control parameters, I (integral value) among the PID parameters 68, and for the model parameters, "friction coefficient." In addition, as the adjustment amount, "reduce" both the I (integral value) parameter and the "friction coefficient" from their current values ​​is searched for.

[0093] The information processing device 10, as the adjustment tool 123, displays guide information for the adjustment amount on a button 96 on the UI screen 125. For example, the button 96 includes a current value of the friction coefficient as the parameter to be adjusted, and an arrow icon that guides the adjustment amount of the friction coefficient, i.e., making it smaller or larger than the current value. Of the arrow icons on the button 96, the information processing device 10 blinks a downward arrow icon indicating "make smaller."

[0094] The designer can adjust the value of the friction coefficient by operating button 96 to increase or decrease it. When the Create after Adjustment button 95 is operated, the friction coefficient after adjustment of button 96 is set as the model parameter 16A of the model 16, and when button 94 is operated, a simulation by the simulator 21 is started. The simulator 21 performs a simulation using the model 16 having the adjusted friction coefficient. The adjustment tool 123 updates the graph G5 of the area 91 based on the simulation result. The adjustment tool 123 performs the above-mentioned process of "estimating the amount of adjustment" based on a comparison between the updated graph G5 and the target graph G4.

[0095] In this way, the designer repeats the adjustment (change) of the parameters and the simulation using the control program 15 or the model 16 in which the adjusted parameters are set until the difference in rise delay converges to a predetermined value, and ends the adjustment when the difference converges. Based on the information on the parameter to be adjusted and the amount of adjustment of the button 96 provided by the adjustment tool 123, the designer can quickly adjust the rise time of the updated graph G5 in the area 91 to match the rise time of the target graph G4. Note that, although the friction coefficient is shown as the parameter to be adjusted in FIG. 5, the adjustment is not limited to this, and the parameter I (integral value) which is a control parameter may also be used.

[0096] Alternatively, without using the adjustment tool 123, the designer may search by trial and error from the graph of the area 91 for parameters to be adjusted and the amount of adjustment so that the difference (delay) in the rise times is reduced.

[0097] <Calculation and Visualization of Behavior Using the F Model> FIG. 6 is a diagram showing an example of the arithmetic expression 741 of the model 16 according to the present embodiment. When the simulator 21 is executed, for each time step ti based on the period according to the virtual time output by the virtual time generator 122, the actuator emulator 124 synchronizes with the controller emulator 120 and, based on the command value from the controller emulator 120, calculates a behavior value Y according to the arithmetic expression 741 in FIG. 6. When the simulator 21 is executed, the actuator emulator 124 calculates a behavior value according to the arithmetic expression of the model 16 based on the command value from the controller emulator 120.

[0098] The arithmetic expression 741 is configured by using, for example, the equations of a physical simulation model in order to calculate the behavior value of the servo motor 410 of the drive device of the packaging machine 400 which is the control target.

[0099] Referring to FIG. 6, the arithmetic expression 741 shows that the behavior value Y at the time step ti is calculated by the function F(X, A, B). As shown in the explanation 742, the parameter X of the function F represents the command value 69 (angular velocity) from the cutter FB61 of the control program 15, the parameter A represents the physical parameters of the servo motor 410, and the parameter B represents the mechanical parameters of the servo motor 410. Also, as shown in the initial value 743, the initial value X0 of the parameter X of the function F is calculated by the function FB(C, D). The parameter C represents the input parameters of the cutter FB61, and the parameter D represents the operation start command of the cutter FB61. In the present embodiment, the parameter C represents the PID parameter 68 and the initial value of the behavior value 67, and the parameter D represents the trigger 402.

[0100] When the simulator 21 is executed, the actuator emulator 124 calculates the behavior value Y according to the arithmetic expression 741 of the model 16. Thereby, for each time step ti, the behavior value Y of the servo motor 410, that is, the behavior value 67 (rotation speed) can be calculated.

[0101] Based on the time-series command values 66 and 69 according to the time step ti output from the controller emulator 120, the visualizer 27 calculates device behavior data including the time-series three-dimensional coordinates P(x, y, z) of the objects in the three-dimensional virtual space. More specifically, based on the command value 66 for each time step ti, the visualizer 27 generates device behavior data representing the operation of the transport mechanism (packaging material 412, workpiece 414, individual package 418) of the packaging machine 400, and based on the command value 69 for each time step ti, generates device behavior data representing the operation of the cutting mechanism (rotary knife 416).

[0102] Based on the device behavior data and the images of the CAD set 139, the visualizer 27 generates image data for visualizing the operation of the packaging machine 400, which is the control target in the three-dimensional virtual space. The image data is output to the display 109. As a result, an image showing the operation of the control target (packaging machine 400) based on the behavior values calculated by the simulator 21 is displayed on the display 109 as shown in the area 93 of FIG. 5.

[0103] In this embodiment, the visualizer 27 updates and displays the image of the device behavior data for each time step ti. The designer can set the update period of the image for the visualizer 27 via the UI. For example, by setting slow playback, fast forward, rewind, etc., the designer can visually confirm the movement of the control target at the desired speed.

[0104] <An example of the G.UI> An example of the UI tool provided by the information processing apparatus 10 is shown in FIGS. 7 and 8. FIG. 7 is a diagram showing an example of a UI for specifying a control target according to the present embodiment. FIG. 8 is a diagram showing an example of a UI for specifying model parameters according to the present embodiment. Referring to FIG. 7, in order to specify the control target 19a, the designer inputs an identifier 151 such as the name of the control target to the information processing apparatus 10, and specifies control parameter 152 of the motion of the drive device as the control method 19c. More specifically, the information processing apparatus 10 searches the storage unit for the FB set 138 of the target ID 1381 that matches the identifier 151, and displays candidates for the parameters to be set for each FB of the retrieved FB set 138. The designer can specify a desired parameter as the control parameter 152 from among the candidate parameters. Note that the candidates for the parameters to be set for each FB are stored in association with each FB set 138.

[0105] Referring to FIG. 8, in order to specify the setting 19b, the designer inputs the mechanical parameters 81 and physical parameters 82 of the drive device (servo motor 410) of the control target to the information processing apparatus 10. More specifically, size, operation direction, initial position, etc. are input to the mechanical parameters 81, and bearing friction coefficient, mass, density, etc. are input to the description 821 of the physical parameters 82.

[0106] <H. Adjustment Based on Output of Actual Machine> In the present embodiment, by adjusting the control parameter 20A or the model parameter 16A in the offline environment based on the behavior value acquired in the online environment, the control program 15 and the model 16 in the offline environment can be maintained to reflect the changes in the control program 15 or the actual machine in the online environment.

[0107] Here, as an example of a change in the control program 15 or the actual machine in an online environment, a case will be described in which the bearing or shaft of the servo motor 410 wears out due to long-term use, resulting in a change in the bearing friction coefficient. Note that the change is not limited to a physical characteristic, but may be a mechanical characteristic. Also, it is not limited to a change in the characteristics of the actual machine, but may be a change in the control parameters 20A.

[0108] FIG. 9 is a diagram showing an example of a configuration of adjustment based on the output of a real machine according to the present embodiment. With reference to FIG. 9, the information processing system 1 includes an FA system 50, an information processing device 10, and a storage device 113 as main components of the adjustment based on the output of the real machine. The FA system 50 includes a controller 51, a driving device 55, and a first collection unit 60. The information processing device 10 includes a controller emulator 120, an actuator emulator 124, a visualizer 27, a second collection unit 130, a calculation unit 131 that calculates a difference D3 between behavior values ​​D1 and D2, and an adjustment tool 123. The adjustment tool 123 has an adjustment amount determination unit 141 for determining an adjustment amount, an adjustment implementation unit 142 that implements adjustment with the determined adjustment amount, and an output unit 143 that outputs information related to the adjustment. The calculation unit 131 may be provided in the adjustment tool 123. The configuration other than the calculation unit 131 and the adjustment tool 123 is as described in FIG. 1, and therefore detailed description thereof will not be repeated.

[0109] The calculation unit 131 compares the time-series behavior value D1 collected by the first collection unit 60 with the time-series behavior value D2 collected by the second collection unit 130 on the same time axis, calculates the difference D3 between the behavior values ​​D1 and D2 based on the comparison result, and outputs it to the adjustment tool 123.

[0110] (h1. Model adjustment process) The information processing device 10, as the adjustment tool 123, executes an adjustment process to match the behavior value D2 from the model 16 with the behavior value D1 from the FA system 50. FIG. 10 is a diagram showing an example of a UI for the adjustment process according to the present embodiment. FIG. 10 shows user support information for adjustment, which includes a graph and guide information 103 of an adjustment amount. The guide information 103 outputs guide information for adjusting the model parameter 16A based on the magnitude of the difference between the behavior value D2 calculated and collected by the model 16 and the behavior value D1 collected from the actual machine at the same time or at the same time. The adjustment target may include the control parameter 20B.

[0111] The information processing device 10 performs the above-mentioned "estimation of the adjustment amount" to determine the parameters to be adjusted and the adjustment amount so that the difference D3 in Figure 9 calculated by the calculation unit 131 is small, i.e., so that the behavior value D2 calculated by the actuator emulator 124 matches (is consistent with) the behavior value D1 measured by the actual device.

[0112] More specifically, the information processing device 10, as the adjustment amount determination unit 141, outputs the behavior value D1 collected in time series by the first collection unit 60 and the behavior value D2 collected in time series by the second collection unit 130 in association with each other, as shown in Fig. 10. More specifically, as shown in Fig. 10, this association includes plotting the behavior value D1 collected in time series by the first collection unit 60 and the behavior value D2 collected in time series by the second collection unit 130 based on the collected time or time on a two-dimensional plane graph with the behavior value as the vertical axis and the time axis as the horizontal axis. As a result, the information processing device 10 plots the behavior value D1 of the time series for each control period and the behavior value D2 of the time series for each time step ti based on the collected time or time to calculate the graph of Fig. 10 showing the changes of the behavior values ​​D1 and D2. From the graph, the information processing device 10 calculates the rise time (times t0 to t4) required for the behavior value D1 of the real machine to converge to the target TR and the rise time (times t0 to t8) required for the behavior value D2 calculated by the model 16 to converge to the target TR, and calculates the rise delay as the difference D3 between the two times. From the graph, it can be inferred that the rise of the behavior value D1 of the real machine is earlier than the rise of the behavior value D2 by the difference D3, that is, the friction coefficient of the servo motor 410 of the real machine is smaller than the friction coefficient of the model parameter 16A.

[0113] The information processing device 10 creates guide information 103 having a parameter 1341 to be adjusted and an adjustment amount 1342 based on the "estimate of the adjustment amount", and outputs the guide information 103 to the display 109. More specifically, when the difference D3, which is the delay in the rise time, exceeds a predetermined threshold, the information processing device 10 determines that the parameter 1341 to be adjusted is the "friction coefficient". In addition, the adjustment amount 1342 is determined to be "reducing" the friction coefficient based on the occurrence of the difference D3 indicating the delay. Conversely, when the difference D3 does not occur and the rise time of the actual machine is slower, the adjustment amount determination unit 141 determines to "increase" the friction coefficient. In the case of a graph, the adjustment amount 1342 is displayed as "reducing" the friction coefficient in a blinking manner based on the occurrence of the difference D3 indicating the delay.

[0114] The information processing device 10, as the adjustment execution unit 142, adjusts the model parameters 16A based on a user operation via the UI. For example, the designer inputs an amount of adjustment to the information processing device 10 based on the difference D3 indicated by the graph or the guide information 103.

[0115] In the information processing device 10, the designer sets the adjusted model parameters 16A in the model 16, and starts the simulator 21. When the simulator 21 is started, the adjusted model 16 and the control program 15 linked to the model 16 are executed by the controller emulator 120 and the actuator emulator 124, respectively, and the second collection unit 130 collects the behavior value D2 as a result of the execution of the simulator 21.

[0116] The information processing device 10, as the adjustment tool 123, executes a process based on an “estimation of an adjustment amount” for matching the behavior value D2 from the adjusted model 16 to the behavior value D1 acquired from the FA system 50.

[0117] When the information processing device 10 detects that the difference D3 (rise delay time) satisfies a predetermined convergence condition, the information processing device 10 ends the model adjustment process. The convergence condition is satisfied, for example, when the difference D3 between the behavior values ​​D1 and D2 becomes smaller than a predetermined threshold value. Alternatively, the convergence condition may be satisfied when the number of adjustments exceeds a predetermined number of times.

[0118] As a parameter related to the rise time delay, for example, the I (integral value) parameter of the PID parameters 68 of the control parameters 20B may be adjusted instead of or together with the friction coefficient of the model parameters 16A.

[0119] The information processing apparatus 10 sets the adjusted model parameter 16A when the convergence condition is satisfied as the final set value for the model 16, or sets the adjusted control parameter 20B in the control program 15 associated with the model 16. After adjustment, the information processing apparatus 10 can calculate the behavior of the actual servo motor 410 more accurately by causing the simulator 21 to execute the control program 15 and the model 16. Note that, without using the adjustment tool 123, the designer may search for the parameters to be adjusted and the adjustment amounts through the UI tool from the graph in FIG. 10 by trial and error.

[0120] <I. Configuration of Information Processing Apparatus 10> FIG. 11 is a schematic diagram showing an example of the configuration of the information processing apparatus 10 according to the present embodiment. The configuration for providing the development environment according to the present embodiment will be described with reference to FIG. 11.

[0121] As main components, the information processing apparatus 10 in FIG. 11 includes a processor 102 that executes an operating system (OS) and various programs as described later, a main memory 104 that provides a work area for storing data necessary for program execution by the processor 102, an operation unit 106 that receives user operations on the information processing apparatus 10 such as a keyboard and a mouse, an output unit 108 that outputs processing results such as a display 109, various indicators, and a printer, a network interface 110 connected to various networks including the network NW1, an optical drive 112, a local communication interface 116 that communicates with an external device, and a storage 111. These components are connected so as to be able to communicate data via an internal bus 118 or the like.

[0122] The information processing apparatus 10 has an optical drive 112 and reads various programs from a computer-readable recording medium 114 including an optical recording medium (e.g., a DVD (Digital Versatile Disc)) that non-transitorily stores a computer-readable program, and installs them in the storage 111 or the like.

[0123] The various programs executed by the information processing device 10 may be installed via a computer-readable recording medium 114, or may be installed by downloading them via a network interface 110 from a server device (not shown) on the network.

[0124] The storage 111 is composed of, for example, a hard disk drive (HDD) or a flash solid state drive (SSD), and stores the programs executed by the processor 102. Specifically, the storage 111 stores a virtual time generation program 119 for realizing a virtual time generator 122, a development support program 121 for realizing a development support tool 20, model parameters 16A, a simulation program 126 for realizing a simulator 21, control parameters 20B, a UI program 129 for realizing a UI tool when executed, an adjustment program 132 for realizing an adjustment tool 123, a management program 134 for linking the control program 15 and the model 16 and managing them as a pair 17, a visualizer program 135 for drawing the behavior of the control object using drawing data 136, the pair 17, an FB set 138 for each control object, a CAD set 139 for each control object, and a basic model 16B.

[0125] When the visualizer program 135 is executed, it realizes the visualizer 27. The visualizer 27 generates rendering data 136 for rendering the movement of the object to be controlled on the display 109 based on the virtual space information 105 in the main memory 104. The virtual space information 105 represents the time-series 3D coordinates P(x, y, z) calculated using a predetermined function from the angular velocity indicated by the time-series command values 66 and 69 for each time step ti acquired during the execution of the simulator 21. The visualizer 27 generates rendering data 136 for three-dimensionally rendering an object image based on the CAD set 139 of the object to be controlled in a 3D virtual space based on the virtual space information 105 and outputs it to the display 109. As a result, an object is displayed on the display 109 according to the behavior values calculated by the simulation, and the movement of the machine to be controlled can be reproduced.

[0126] FIG. 11 shows an example of realizing a development environment with a single information processing apparatus 10, but a development environment may be realized by linking a plurality of information processing apparatuses. In this case, a part of the processing necessary to realize the development environment may be executed by the information processing apparatus 10, and the remaining processing may be executed by a cloud-based server or an on-premises server.

[0127] FIG. 11 shows an example in which a development environment is realized by the processor 102 executing one or more programs, but a part of the processing and functions necessary to realize the development environment may be implemented using circuits such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).

[0128] <J. Flowchart of Creation Process> FIG. 12 is a flowchart of the creation process according to the present embodiment. With reference to FIG. 12, the process of the processor 102 creating the control program 15 or the model 16 by executing the development support tool 20 will be described.

[0129] First, the processor 102 accepts user settings 19 including a control target 19a, settings 19b, and a control method 19c from a user operation via a UI tool (step S1).

[0130] The processor 102, acting as the control program creation tool 22 and the model creation tool 24, searches the storage 111 for the FB set 138 and the CAD set 139 corresponding to the object ID 1381 and the object ID 1391 indicating the control object 19a (step S3). As a result, the processor 102 determines the FB set 138 and the CAD set 139 corresponding to the control object 19a.

[0131] The processor 102, as the control parameter setting unit 23, sets the control parameters 20B based on the control method 19c for each FB of the determined FB set 138 (step S5), and also sets the model parameters 16A based on the settings 19b to the model 16 (step S7).

[0132] The processor 102, as the simulator 21, executes the control program 15 in which the control parameters 20B are set and the model 16 in which the model parameters 16A are set, and simulates the behavior of the controlled object (step S10).

[0133] When the processor 102 performs a simulation, the processor 102 performs a visualization process as the visualizer 27 to generate drawing data 136 based on command values ​​calculated by the simulation (step S11). The display 109 is driven based on the drawing data 136, and the display 109 draws the movement of the controlled object.

[0134] In the simulation, the processor 102, as the adjustment tool 123, repeatedly performs the simulation while changing (adjusting) the control parameters 20B or the model parameters 16A according to the above-mentioned "estimate of the adjustment amount" (step S12).

[0135] Processor 102 obtains control parameter 20B and model parameter 16A by simulation. As an associating unit 26, processor 102 creates and stores a pair 17 in which control program 15 with these obtained parameters set and model 16 are associated with each other (step S13).

[0136] Processor 102 builds control program 15 as a builder 18, and processor 102 transfers the built control program 15 to controller 51 (step S15). Thereby, processor 102 can transfer control program 15 to be transferred to controller 51 as a program having control parameter 20B preliminarily adjusted so as to be able to control the actual machine according to the specifications. When transferred, controller 51 treats control parameter 20B as control parameter 20A. In this way, in the online environment, since the user only needs to adjust the preliminarily adjusted control program 15, the burden related to the adjustment work can be reduced.

[0137] <K. Flowchart of adjustment process based on output of actual machine> FIG. 13 and FIG. 14 are flowcharts of an adjustment process based on the output of the actual machine according to the present embodiment. Processor 102 of information processing apparatus 10 implements an adjustment process based on the output of the actual machine as an adjustment tool 123. Here, for simplicity of explanation, the friction coefficient of parameter A of model 16 is adjusted, but the same applies even if it is control parameter 20B. The processes of FIGS. 13 and 14 will be described with reference to FIG. 9 as appropriate.

[0138] First, the processor 102 compares the difference D3 from the calculation unit 131 with a threshold value, and determines whether the model parameters 16A need to be adjusted based on the comparison result (step S20). For example, the delay time of the difference D3 is compared with a threshold value, and when the difference D3 is detected to exceed the threshold value based on the comparison result, it determines that the model parameters 16A need to be adjusted (YES in step S20), and proceeds to step S21. When the processor 102 detects that the difference D3 does not exceed the threshold value (NO in step S20), it repeats step S20 or ends the adjustment process.

[0139] In step S21, the processor 102 receives the behavior value D1 of the servo motor 410 of the FA system 50 and stores 1 to N control cycles (step S21). As a result, the processor 102 stores the behavior value D1 in time series. The processor 102 compares the project when the actual machine is in operation with the project in the offline environment and determines whether the comparison result indicates a match (step S23). More specifically, the processor 102 compares the control parameter 20A acquired from the controller 51 with the control parameter 20B in the offline environment and determines whether the values ​​of both parameters match based on the comparison result. When the processor 102 determines that the values ​​of both control parameters match (YES in step S23), it proceeds to step S27, but when it determines that they do not match (NO in step S23), the processor 102 matches the project in the offline environment with the project of the actual machine (step S25). More specifically, the processor 102 adjusts and changes the control parameters 20B in the offline environment so that they match (conform) to the control parameters 20A acquired from the online environment.

[0140] In step S27, the processor 102 determines whether a design change has been made to the actual machine at the production process site (step S27). More specifically, the processor 102 performs this determination based on a user operation received from a designer. Here, the design change of the actual machine includes a change or adjustment of mechanical characteristics such as the size and position of the servo motor 410.

[0141] When processor 102 determines that the design has been changed based on the user's operation (NO in step S27), it sets the mechanical parameters corresponding to the changed mechanical characteristics of the actual device based on the user's operation to model parameters 16A (step S29). More specifically, processor 102 changes parameter B of equation 741 of model 16 so as to indicate the mechanical parameters of size and position indicating the input mechanical characteristics.

[0142] The processor 102, as the adjustment tool 123, executes an adjustment process based on an "estimate of an adjustment amount" for matching the behavior value D2 from the adjusted model 16 with the behavior value D1 acquired from the FA system 50 (steps S31, S33, S35). More specifically, the processor 102 estimates (calculates) a parameter A such as a friction coefficient in the equation 741 of the model 16 (step S31). The process of step S31 will be described in detail later with reference to FIG. 14.

[0143] The processor 102 outputs guidance information including the result of the adjustment process (step S33). For example, the adjusted value of the friction coefficient is displayed on the display 109 as the result of the adjustment process.

[0144] The processor 102 receives a user operation by the designer and determines whether the received user operation indicates "OK" (step S35). If the processor 102 determines that the user operation does not indicate "OK" (NO in step S35), the processor 102 proceeds to step S31 and continues the parameter adjustment process.

[0145] On the other hand, when the processor 102 determines that the user operation indicates "OK" (YES in step S35), the processor 102 updates the model parameters 16A by rewriting the friction coefficient of the model parameters 16A to the adjusted friction coefficient (step S37). For example, when the designer determines from the graph in Fig. 10 that the behavior calculated by the model 16 is consistent with the behavior of the servo motor 410 of the actual machine, the designer inputs "OK" to the information processing device 10 as a user operation.

[0146] The parameter adjustment process (step S31) using the formal parameter set will be described with reference to Fig. 14. The formal parameter set includes parameter B including a friction coefficient and parameter A input in step S29. Here, the formal parameter set is updated by changing the friction coefficient to be adjusted, and a new formal parameter set is generated every time it is updated.

[0147] First, the processor 102 generates a formal parameter set of the model parameters 16A in the parameter adjustment process (step S311). At the start of the parameter adjustment process, an initial value is set for the friction coefficient, and thus the formal parameter set is generated.

[0148] The processor 102, as the simulator 21, repeatedly executes the control program 15 and the model 16 in which the formal parameter set generated in step S311 is set as model parameters for each time step ti, and generates a simulation result (step S313). The generated simulation result indicates a time-series behavior value D2 according to the time step ti.

[0149] The processor 102 determines whether the difference D3 between the time-series behavior value D2, which is the simulation result, and the time-series behavior value D1 of the actual machine stored in step S21 is sufficiently small (step S315). More specifically, for example, the difference D3 is compared with a threshold value, and based on the comparison result, it is determined whether the difference D3 is sufficiently small.

[0150] If it is determined that the difference D3 is not sufficiently small (NO in step S315), the process returns to step S311. In step S311, the processor 102 generates a new formal parameter set by changing the friction coefficient of the current formal parameter set. The processor 102 executes a simulation using the generated new formal parameter set (step S313). The processor 102 determines whether the difference D3 between the time-series behavior value D2 as the simulation result and the time-series behavior value D1 of the actual machine stored in step S29 is sufficiently small (step S315). In this manner, the processor 102 repeats the simulation and the generation of the formal parameter set based on the simulation result until the difference D3 becomes sufficiently small, that is, until an optimal formal parameter set is obtained.

[0151] When the processor 102 determines that the difference D3 is sufficiently small (YES in step S315), the processor 102 adopts the most recently generated formal parameter set as the model parameters 16A (step S317). More specifically, the processor 102 rewrites the model parameters 16A with the most recently generated formal parameter set. This allows the model parameters 16A in the offline environment to match the mechanical characteristics or physical characteristics of the actual device in the online environment.

[0152] According to the adjustment process of Figures 13 and 14, in an offline environment, the information processing device 10 can change (adjust) the control parameters 20B and the model parameters 16A to follow the changes in the control parameters 20A in the online environment and the changes in the mechanical and physical characteristics of the actual machine.

[0153] For the algorithm that searches for the optimal temporary parameter set in FIG. 14, various algorithms can be applied. Also, in step S315, although the difference D3 is used as the condition for ending the processing of the algorithm, the end determination condition is not limited to the condition using the difference D3. For example, the number of times the processing in steps S311 to S315 is repeated may be used as the end determination condition. In that case, the processor 102 of the information processing apparatus 10 saves the best temporary parameter set obtained in the process of repeating the processing, and adopts the best temporary parameter set as the optimal temporary parameter set.

[0154] <L. Program> By executing the program in the storage 111, the processor 102 of the information processing apparatus 10 provides the user with a development environment for the control program 15 or the model 16 in an offline environment.

[0155] The programs and data for realizing the development environment may be downloaded to the storage 111 via the network interface 110 or the local communication interface 116 and a communication line. Or, it may be downloaded to the storage 111 via the recording medium 114. The recording medium 114 is a medium that stores information such as programs by electrical, magnetic, optical, mechanical, or chemical actions so that a computer or other device, machine, etc. can read the information. The information processing apparatus 10 may acquire a program or data for realizing the development environment from this recording medium 114.

[0156] The program can be executed by one or more processors such as the processor 102, or by a combination of a processor and circuits such as an ASIC (Application Specific Integrated Circuit) and an FPGA (Field-Programmable Gate Array).

[0157] <M. Supplementary Note> The present embodiment as described above includes the following technical ideas. [Configuration 1] An information processing system, The information processing system is The control system includes a controller (51) that executes a control program (15) for a driving device (56, 410) that drives a controlled object and outputs a command value for controlling the driving device, and a simulator (21), The simulator comprises: a controller emulator (120) that simulates the behavior of the controller by executing the control program; an actuator emulator (124) that uses as input the command value output when the controller emulator executes the control program, and executes a model of the moving machine to calculate a behavior value of the moving machine, The information processing system further comprises: a first collection unit (60) that collects behavior values ​​indicating behavior of the movable machine when the control program is being executed by the controller; a second collection unit (130) that collects the calculated behavior values ​​in a simulation in which the control program is executed by the controller emulator and the behavior values ​​are calculated by the actuator emulator; and an adjustment unit (123) that adjusts a model parameter (16A) that is preset in the model based on a difference (D3) between the behavior value (D1) of the time series collected by the first collection unit and the behavior value (D2) of the time series collected by the second collection unit at the same time or at the same instant of time. [Configuration 2] The information processing system according to configuration 1, wherein the behavior value of the time series collected by the first collection unit and the behavior value of the time series collected by the second collection unit are output in association with each other on a time axis based on the time of collection. [Configuration 3] The information processing system of configuration 2, wherein the association includes plotting the behavior values ​​of the time series collected by the first collection unit and the behavior values ​​of the time series collected by the second collection unit on a two-dimensional plane with the behavior values ​​on the vertical axis and the time axis on the horizontal axis, based on the time at which they were collected. [Configuration 4] The information processing system according to any one of configurations 1 to 3, wherein the model parameters include parameters based on mechanical or physical characteristics of the driving device. [Configuration 5] In the simulation, 5. The information processing system according to any one of configurations 1 to 4, wherein the model executed by the actuator emulator includes a model in which the model parameters adjusted by the adjustment unit are set. [Configuration 6] the controller executes the control program based on a first control parameter using a behavior value of the movable device as an input; the controller emulator executes the control program based on a second control parameter using the behavior value calculated by the actuator emulator as an input; The adjustment unit further includes: 6. The information processing system of any one of configurations 1 to 5, wherein the second control parameter is adjusted to match the first control parameter, and then the model parameter is adjusted. [Configuration 7] The adjustment unit is 7. The information processing system according to any one of configurations 1 to 6, which outputs guide information (103) for adjusting the model parameters based on the difference at the same time or at the same instant of time. [Configuration 8] 8. The information processing system according to configuration 7, wherein the guide information includes an identifier (1341) of a model parameter to be adjusted and an adjustment amount (134) of the model parameter. [Configuration 9] 9. The information processing system according to configuration 8, wherein a model parameter set in the model is adjusted based on a model parameter to be adjusted and an adjustment amount of the model parameter designated by a user operation. [Configuration 10] The information processing system according to any one of configurations 1 to 9, wherein the simulator executes the simulation using a model in which adjusted model parameters are set each time the adjustment is performed by the adjustment unit until the difference satisfies a predetermined condition. [Configuration 11] causing the controller (51) to execute a control program (15) for outputting command values ​​for controlling a moving machine (56, 410) to be controlled, and controlling the moving machine in accordance with the command values; executing a controller emulation for calculating a behavior of the controller by executing the control program; executing actuator emulation for calculating a behavior value of a moving machine by executing a model of the moving machine using, as an input, the command value output when the control program is executed by the controller emulation; a first collection step of collecting a behavior value (D1) indicating a behavior of the movable device when the control program is being executed by the controller; a second collection step of collecting the behavior value (D2) calculated by the actuator emulation when the control program is executed in the controller emulation; and adjusting model parameters preset in the model based on a difference between the behavior values ​​of the time series collected by the first collection step and the behavior values ​​of the time series collected by the second collection step at the same time or at the same instant in time. [Configuration 12] 12. A program for causing a processor to execute the method according to claim 11.

[0158] The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, not the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]

[0159] 1 Information processing system, 10 Information processing device, 15 Control program, 16 Model, 16A Model parameters, 16B Basic model, 17 Pair, 18 Builder, 19 User settings, 19a Control target, 19b Settings, 19c Control method, 20 Development support tool, 20A, 20B, 152 Control parameters, 21 Simulator, 22 Control program creation tool, 23 Control parameter setting section, 24 Model creation tool, 25 Model parameter setting section, 26 Linking section, 27 Visualizer, 402 Trigger, 50 FA system, 51 Controller, 55 Drive equipment, 56, 410 Servo motor, 60 First collection section, 62, 63 PID calculation, 64, 67, D1, D2, Y Behavior value, 66, 69 Command value, 81 Mechanical parameters, 82 Physical parameters, 91, 92, 93 Area, 94, 95, 96 Button, 102 Processor, 103 Guide information, 104 Main memory, 105 Virtual space information, 106 Operation unit, 108 Output unit, 109 Display, 111 Storage, 114 Recording medium, 119 Virtual time generation program, 120 Controller emulator, 121 Development support program, 122 Virtual time generator, 123 Adjustment tool, 124 Actuator emulator, 125 Screen, 126 Simulation program, 130 Second collection unit, 131 Calculation unit, 132 Adjustment program, 134 Management program, 135 Visualizer program, 136 Drawing data, 138 FB set, 139 CAD set, 141 Adjustment amount determination unit, 142 Adjustment implementation unit, 143 Output unit, 400 Packaging machine, 401 Measurement value, 406 Cutting mechanism, 408 Sensor, 411 Encoder, 412 Packaging material, 414 Workpiece, 416 Rotary knife, 418 Individual package, 500A, 500B Servo driver, 741 Calculation formula, 1342 Adjustment amount, D3 Difference, G4, G5 Graph, 1381, 1391 Target ID, TR Target.

Claims

1. An information processing system, The information processing system includes: A controller that executes a control program for a driving device that drives a controlled object and outputs a command value for controlling the driving device; and a simulator. The simulator comprises: a controller emulator that simulates a behavior of the controller by executing the control program; an actuator emulator that uses as input the command value output when the control program is executed by the controller emulator, and executes a model of the moving machine to calculate a behavior value of the moving machine, The information processing system further comprises: a first collection unit that collects behavior values ​​indicating behavior of the movable device when the control program is being executed by the controller; a second collection unit that collects the calculated behavior values ​​in a simulation in which the control program is executed by the controller emulator and the behavior values ​​are calculated by the actuator emulator; an adjustment unit that adjusts a model parameter preset in the model based on a difference between the behavior value of the time series collected by the first collection unit and the behavior value of the time series collected by the second collection unit at the same time or at the same instant of time, The controller further executes the control program based on a first control parameter using a behavior value of the movable device as an input. the controller emulator further executes the control program based on a second control parameter using the behavior value calculated by the actuator emulator as an input; The adjustment unit further includes: The second control parameter is adjusted to match the first control parameter, and then the adjustment of the model parameters is performed.

2. 2. The information processing system according to claim 1, wherein the behavior values ​​of the time series collected by the first collection unit and the behavior values ​​of the time series collected by the second collection unit are output in association with each other on a time axis based on the time of collection.

3. 3. The information processing system of claim 2, wherein the association includes plotting the behavior values ​​of the time series collected by the first collection unit and the behavior values ​​of the time series collected by the second collection unit based on the time of collection on a two-dimensional plane with the behavior values ​​on the vertical axis and the time axis on the horizontal axis.

4. The information processing system according to claim 1 , wherein the model parameters include parameters based on mechanical or physical characteristics of the driving device.

5. In the simulation, 5. The information processing system according to claim 1, wherein the model executed by the actuator emulator includes a model in which the model parameters adjusted by the adjustment unit are set.

6. The adjustment unit is The information processing system according to claim 1 , further comprising: outputting guide information for adjusting the model parameters based on the difference at the same time or at the same instant of time.

7. The information processing system according to claim 6 , wherein the guide information includes an identifier of a model parameter to be adjusted and an adjustment amount of the model parameter.

8. 8. The information processing system according to claim 7, further comprising: adjusting the model parameters set in the model based on a model parameter to be adjusted and an adjustment amount of the model parameter designated by a user operation.

9. 9. The information processing system according to claim 1, wherein the simulator executes the simulation using a model in which adjusted model parameters are set each time the adjustment is performed by the adjustment unit until the difference satisfies a predetermined condition.

10. a control step of causing a controller to execute a control program that outputs command values ​​for controlling a movable device to be controlled, and controlling the movable device in accordance with the command values; executing a controller emulation for calculating a behavior of the controller by executing the control program; executing actuator emulation for calculating a behavior value of a moving machine by executing a model of the moving machine using, as an input, the command value output when the control program is executed by the controller emulation; a first collection step of collecting behavior values ​​indicating behavior of the movable machine when the control program is being executed by the controller; a second collection step of collecting the behavior values ​​calculated by the actuator emulation when the control program is executed in the controller emulation; adjusting model parameters preset in the model based on a difference between the behavior values ​​of the time series collected by the first collection step and the behavior values ​​of the time series collected by the second collection step at the same time or at the same instant of time; The control step includes a step of causing the controller to execute the control program based on a first control parameter using a behavior value of the movable device as an input, the step of executing the controller emulation includes a step of executing the control program based on a second control parameter using a behavior value calculated by the actuator emulation as an input; The adjusting step includes: The method comprising the step of adjusting the second control parameter to match the first control parameter and then performing an adjustment of the model parameters.

11. A program for causing a processor to execute the method according to claim 10.

Citation Information

Patent Citations

  • Information processing device, information processing method, and program

    JP2016012191A

  • Simulation device, simulation method, and simulation program

    JP2016042378A

  • Information processing system, information processing method, and information processing program

    WO2019202934A1