Information processing device, method and program
The information processing device facilitates the easy acquisition and management of control programs and models for controlled objects by incorporating user input, program creation, model setting, and simulation, addressing the challenge of diverse production site requirements.
Patent Information
- Application Number
- JP2021039409
- 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
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.
An information processing device that includes an operation receiving unit for user input, a program creation unit to create control programs based on user-specified control methods, a model creation unit to set model parameters, and a simulator to execute and adjust these programs and models, allowing easy acquisition and management of control programs and models for controlled objects.
Enables the easy creation and management of control programs and models for controlled objects, reducing the time required for development and adjustment, and ensuring accurate simulation and parameter adjustment to meet specified behavior targets.
Smart Images

Figure 0007600788000001 
Figure 0007600788000002 
Figure 0007600788000003
Abstract
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 device according to the present disclosure includes an operation receiving means for receiving user operations on the information processing device, a storage means for storing, for each of a plurality of control objects, one or more program elements for controlling a moving device that drives the control object, a program creation means for searching the storage means for one or more program elements corresponding to the control object specified by user operation and setting control parameters based on a method of controlling the moving device specified by user operation to the one or more searched program elements to create a control program, and a management means for linking the control program created by the program creation means to a model for calculating the behavior of the moving device of the control object specified by user operation and managing it.
[0008] According to the above disclosure, a control program is created based on a control target and a control method specified by a user, and the created control program is linked to a model and managed. This allows a user to easily obtain a control program for a control target and a model of a movable device for the control target by specifying the control target and the control method.
[0009] In the above disclosure, the information processing device further includes a model creating means for setting, in the model, model parameters based on mechanical characteristics or physical characteristics of the movable device set by a user operation.
[0010] According to the above disclosure, the information processing device can create a model having model parameters based on the user settings by accepting the user settings, thereby reducing the time required for creation.
[0011] In the above disclosure, the information processing device further includes a simulator that executes a simulation to calculate the behavior of a moving machine and a controller that controls the moving machine, and the simulation includes a process of executing a control program and outputting a command value for controlling the moving machine, and a process of executing a model using the command value as input and calculating a behavior value that indicates the behavior of the moving machine, and the simulator executes the control program using the behavior value calculated by the model as input, and further includes a collection means that collects the behavior values while the simulation is being executed, and a means for outputting the behavior values collected by the collection means and a target behavior value associated with the behavior value.
[0012] According to the above disclosure, the information processing device can present to the user the behavior of the moving machine calculated through simulation in association with the target behavior.
[0013] In the above disclosure, the information processing device further includes an adjustment means that outputs guide information for adjusting the control parameters or model parameters based on the magnitude of the difference between the collected behavior values and the target behavior values.
[0014] According to the above disclosure, the information processing device can present guide information for adjusting parameters to the user.
[0015] In the above disclosure, the guide information includes an identifier of a parameter to be adjusted and an adjustment amount of the parameter that reduces the above difference.
[0016] According to the above disclosure, the information processing device can provide a user with a guide for adjustment by presenting parameters to be adjusted and the amounts of adjustment thereto through guide information.
[0017] In the above disclosure, the information processing device performs an adjustment process to adjust control parameters set in a control program or model parameters set in a model, based on the parameters to be adjusted and the adjustment amounts of the parameters specified by user operation.
[0018] According to the above disclosure, the information processing device can reset the adjusted parameters in the control program or model.
[0019] In the above disclosure, the simulator executes the above simulation each time the above adjustment process is performed until the above difference converges to a predetermined value.
[0020] According to the above disclosure, the information processing device repeatedly performs a simulation with the adjusted parameters until the difference converges. Therefore, when the difference converges, the parameter adjustment and the simulation are automatically stopped, so that the time required for the adjustment is shortened.
[0021] According to another aspect of the present disclosure, the method includes a step of accepting a user operation, a step of creating a control program by setting control parameters based on a manner of controlling the moving equipment specified by the user operation to one or more program elements for controlling a moving equipment that drives a control object specified by the user operation, and a step of managing the control program created in the creating step by linking it to a model for calculating the behavior of the moving equipment corresponding to the control object specified by the user operation.
[0022] According to the above disclosure, when the method is performed, a control program is created based on a control target and a control method specified by the user, and the created control program is linked to a model and managed. In this way, the user can easily obtain the control program for the control target and the model of the movable device of the control target by specifying the control target and the control method.
[0023] According to yet another aspect of the present disclosure, there is provided a program for causing a processor to execute the above-described method.
[0024] In the above disclosure, when the processor executes a program, a control program is created based on the control target and the control method specified by the user, and the created control program is linked to a model and managed. This allows the user to easily obtain the control program for the control target and the model of the movable device of the control target by specifying the control target and the control method. Effect of the Invention
[0025] 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]
[0026] [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] FIG. 2 is a diagram illustrating an example of a control program 15 according to the present embodiment. [Diagram 5] 10 is a diagram illustrating an example of a UI for supporting parameter creation according to the present embodiment. FIG. [Figure 6] FIG. 7 is a diagram showing an example of an arithmetic expression 741 of a model 16 according to the present embodiment. [Figure 7] FIG. 11 is a diagram showing an example of a UI for specifying a control target according to the present embodiment. [Figure 8] FIG. 13 is a diagram illustrating an example of a UI for designating model parameters according to the present embodiment. [Figure 9] FIG. 13 is a diagram showing an example of a configuration for adjustment based on an output of an actual machine according to the present embodiment; [Figure 10] FIG. 11 is a diagram showing an example of a UI for adjustment processing according to the present embodiment. [Figure 11] FIG. 1 is a schematic diagram showing an example of a configuration of an information processing device 10 according to the present embodiment. [Figure 12] This is a flowchart of the creation process according to the present embodiment. [Figure 13] This is a flowchart of the adjustment process based on the output of the actual machine according to the present embodiment. [Figure 14] This is a flowchart of the adjustment process based on the output of the actual machine according to the present embodiment.
Embodiments for Carrying Out the Invention
[0027] 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.
[0028] <A. Application Example> An application example of the present invention will be described. The information processing apparatus 10 according to the present embodiment provides an environment for developing a control program 15 for driving a machine that is a control target provided in a production process (hereinafter also referred to as an actual machine) and a model 16 of the driving device.
[0029] FIG. 2 is a diagram schematically showing an example of the development environment according to the present embodiment. The information processing apparatus 10 includes a development support tool 20 for developing the control program 15 and the model 16 based on the user settings 19 using the 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. The designer can operate the development support tool 20 and the builder 18 by operating the UI tool provided by the information processing apparatus 10.
[0030] The information processing apparatus 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 the PLC. The controller is a concept referring to all control devices that control the actual machine.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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".
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] Furthermore, managing the control program 15 and the model 16 as a pair 17 is useful in situations where both are to be matched to the mechanical or physical characteristics of the control program 15 and the actual machine in an online environment.
[0049] 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.
[0050] 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.
[0051] In this configuration, in an online environment, the controller is caused 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 an 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. Also, 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.
[0052] 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 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. Also, the above "same moment" indicates the common moment in both of these elapsed times.
[0053] Hereinafter, more specific application examples of the present embodiment will be described.
[0054] <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.
[0055] 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.
[0056] The controller 51 is network-connected to the driving devices 55 via an industrial field network, and controls the various driving devices 55 .
[0057] 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.
[0058] 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.
[0059] 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 calculating the behavior of the controller 51. The actuator emulator 124 is a program for calculating the behavior of the moving device 55.
[0060] 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.
[0061] 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.
[0062] In FIG. 1, the control parameters 20A and 20B are shown separately, but the two may indicate common parameters.
[0063] (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 .
[0064] 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.
[0065] 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. Thus, 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 rendering 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 function predetermined for the behavior values from the model 16.
[0066] <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, a packaging machine 400, and servo drivers 500A and 500B. The servo drivers 500A and 500B drive the servo motors 410 and 56 of 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) include the servo drivers 500A and 500B and the servo motors 410 and 56.
[0067] 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).
[0068] 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).
[0069] 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.
[0070] In the conveying path, a roll-shaped packaging base material is sequentially sent out from a supply mechanism (not shown). In the conveying path, a workpiece 414 supplied from a line (not shown) is covered with the packaging base material, so that a 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 in the conveying path. When the sensor 408 detects the passage of the workpiece 414, it outputs a trigger 402.
[0071] The cutting mechanism 406 includes a servo motor 410, 416, and an encoder 411. In the cutting mechanism 406, according to 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 rotation amount (rotation direction, angle, rotation speed, etc.) of the servo motor 410 and outputs a measured value 401. In the present embodiment, the measured value 401 indicates, for example, the rotation speed 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.
[0072] <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 the control arithmetic processing of the conveying mechanism of the packaging machine 400 and a cutter FB61 for executing the control arithmetic processing of the cutting mechanism 406 of the packaging machine 400. The process of the information processing device 10 creating the control program 15 as the control program creation tool 22 will be described.
[0073] 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 .
[0074] 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.
[0075] 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.
[0076] 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.
[0077] Normally, a 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, an FB outputs the variable values of the state of the FB (such as the execution completion state, execution state, execution interruption state, error state, etc. when a 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.
[0078] <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.
[0079] 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.
[0080] 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.
[0081] 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.
[0082] Focusing on the rise time until the behavior value (rotation speed) 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.
[0083] 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.
[0084] 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.
[0085] 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.
[0086] 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.
[0087] 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."
[0088] 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.
[0089] 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.
[0090] 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.
[0091] <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.
[0092] The arithmetic expression 741 is configured by using, for example, the equation 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.
[0093] 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 parameter 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.
[0094] 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.
[0095] The visualizer 27 calculates device behavior data including the time-series 3D coordinates P(x, y, z) of the objects in the 3D virtual space based on the time-series command values 66 and 69 output from the controller emulator 120 according to the time step ti. More specifically, 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 based on the command value 66 for each time step ti, and generates device behavior data representing the operation of the cutting mechanism (rotary knife 416) based on the command value 69 for each time step ti.
[0096] The visualizer 27 generates image data for visualizing the operation of the packaging machine 400 to be controlled in the 3D virtual space based on the device behavior data and the image of the CAD set 139. 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 value calculated by the simulator 21 is displayed on the display 109 as shown in the area 93 of FIG. 5.
[0097] 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, the designer can visually confirm the movement of the control target at a desired speed by setting slow playback, fast forward, rewind, etc.
[0098] <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 designating a control target according to the present embodiment. FIG. 8 is a diagram showing an example of a UI for designating model parameters according to the present embodiment. Referring to FIG. 7, in order to designate 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 designates 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 designate 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.
[0099] Referring to FIG. 8, in order to designate 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.
[0100] <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.
[0101] 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.
[0102] 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.
[0103] 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.
[0104] (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.
[0105] 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.
[0106] 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.
[0107] 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.
[0108] 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.
[0109] 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.
[0110] 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.
[0111] 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.
[0112] 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.
[0113] The information processing apparatus 10 sets the adjusted model parameter 16A when the convergence condition is satisfied as the final setting 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 more accurately calculate the behavior of the actual servo motor 410 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 also search for the parameters to be adjusted and the adjustment amount through trial and error from the graph in FIG. 10 via the UI tool.
[0114] <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.
[0115] As shown in FIG. 11, the main components of the information processing apparatus 10 include 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.
[0116] 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-transiently stores a computer-readable program, and installs them in the storage 111 or the like.
[0117] 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.
[0118] 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.
[0119] 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 indicates 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 value calculated by the simulation, and the movement of the machine to be controlled can be reproduced.
[0120] 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 for realizing 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.
[0121] FIG. 11 shows an example in which the development environment is realized by the processor 102 executing one or more programs, but a part of the processing and functions necessary for realizing the development environment may be implemented using a circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).
[0122] <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 creating the control program 15 or the model 16 by the processor 102 executing the development support tool 20 will be described.
[0123] 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).
[0124] 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.
[0125] 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).
[0126] 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).
[0127] 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.
[0128] 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).
[0129] Processor 102 acquires control parameter 20B and model parameter 16A through simulation. As an association unit 26, processor 102 creates and stores a pair 17 that associates control program 15 with model 16, in which these acquired parameters are set (step S13).
[0130] 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. Thus, in an 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.
[0131] <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.
[0132] 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.
[0133] 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 or changes the control parameters 20B in the offline environment so that they match (conform) to the control parameters 20A acquired from the online environment.
[0134] 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.
[0135] 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.
[0136] 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.
[0137] 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.
[0138] 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.
[0139] 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.
[0140] 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.
[0141] 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.
[0142] 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.
[0143] 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.
[0144] 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.
[0145] 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.
[0146] 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.
[0147] 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.
[0148] <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.
[0149] 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 accumulates information such as programs by an electrical, magnetic, optical, mechanical, or chemical action so that information such as programs recorded in a computer or other devices, machines, etc. can be read. The information processing apparatus 10 may acquire a program or data for realizing the development environment from this recording medium 114.
[0150] 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).
[0151] <M. Supplementary Note> The present embodiment as described above includes the following technical ideas. [Configuration 1] An information processing device (10), an operation receiving means (106) for receiving a user operation on the information processing device; a storage means (111) for storing, for each of a plurality of control objects, one or more program elements (FB) for controlling a drive (55) that drives the control object; a program creating means (22) for searching the storage means for one or more program elements corresponding to a control target (19a) designated by the user operation, and for creating a control program (15) by setting control parameters (20B) based on a control method (19c) for the movable device designated by the user operation for the one or more program elements searched for; and a management means (26) that manages the control program created by the program creation means by linking it to a model (16) for calculating the behavior of the movable device to be controlled, the movable device being specified by the user operation. [Configuration 2] 2. The information processing apparatus according to configuration 1, further comprising a model creating means (24) for setting, in the model, model parameters (16A) based on mechanical characteristics or physical characteristics of the movable machine set by the user operation. [Configuration 3] The system further includes a simulator (21) that executes a simulation to calculate behaviors of the driving device and a controller (51) that controls the driving device, The simulation A process (120) of executing the control program and outputting a command value for controlling the moving machine; and a process (124) of executing the model using the command value as an input and calculating a behavior value indicating a behavior of the moving machine, wherein the simulator executes the control program using the behavior value calculated by the model as an input, a collection means (130) for collecting said performance values as said simulation is being performed; 3. The information processing apparatus according to configuration 2, further comprising: a means for outputting the behavior value (G5) collected by the collecting means and a target behavior value (G4) associated with the behavior value. [Configuration 4] The information processing device according to configuration 3, further comprising an adjustment means (123) for outputting guide information (96) for adjusting the control parameters or the model parameters based on a magnitude of a difference between the collected behavior values and the target behavior values. [Configuration 5] 5. The information processing device according to configuration 4, wherein the guide information includes an identifier of a parameter to be adjusted and an adjustment amount of the parameter that reduces the difference. [Configuration 6] The information processing device according to configuration 5, wherein an adjustment process (S12) is performed to adjust the control parameters set in the control program or the model parameters set in the model, based on the parameters to be adjusted and the adjustment amounts of the parameters specified by the user operation. [Configuration 7] 7. The information processing apparatus according to configuration 6, wherein the simulator executes the simulation each time the adjustment process is performed until the difference converges to a predetermined value. [Configuration 8] A step (S1) of accepting a user operation; creating a control program by setting control parameters based on a control method for a movable device specified by a user operation to one or more program elements for controlling the movable device that drives the control target specified by the user operation (S3, S5, S10); and managing the control program created in the creating step by linking it to a model for calculating the behavior of the movable device corresponding to the control object specified by the user operation (S13). [Configuration 9] A program for causing a processor (102) to execute the method according to configuration 8.
[0152] 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]
[0153] 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 device, an operation receiving means for receiving a user operation on the information processing device; a storage means for storing, for each of a plurality of control objects, one or more program elements for controlling a drive device that drives the control object; a program creating means for searching the storage means for one or more program elements corresponding to a control target specified by the user operation, and for creating a control program by setting control parameters based on a method of controlling the movable device specified by the user operation for the one or more program elements found; a management means for managing the control program created by the program creation means in association with a model for calculating a behavior of the movable machine to be controlled, the model being specified by the user operation; The information processing device, wherein the control method includes specification values for control indicated by specification data of the driving device, and converts the specification values into the control parameters using a conversion formula.
2. The information processing apparatus according to claim 1 , further comprising a model creating means for setting, in the model, model parameters based on mechanical characteristics or physical characteristics of the movable device set by the user operation.
3. A simulator that executes a simulation to calculate behaviors of the movable device and a controller that controls the movable device, The simulation A process of executing the control program and outputting a command value for controlling the movable device; a process of executing the model using the command value as an input and calculating a behavior value indicating a behavior of the movable machine, wherein the simulator executes the control program using the behavior value calculated by the model as an input, a collection means for collecting the behavior values while the simulation is running; The information processing apparatus according to claim 2 , further comprising: means for outputting the behavior values collected by said collection means and a target behavior value in association with said behavior values.
4. An information processing device, an operation receiving means for receiving a user operation on the information processing device; a storage means for storing, for each of a plurality of control objects, one or more program elements for controlling a drive device that drives the control object; a program creating means for searching the storage means for one or more program elements corresponding to a control target specified by the user operation, and for creating a control program by setting control parameters based on a method of controlling the movable device specified by the user operation for the one or more program elements found; a management means for managing the control program created by the program creation means by linking the control program to a model for calculating a behavior of the movable device to be controlled, the model being specified by the user operation; a model creating means for setting, in the model, model parameters based on mechanical characteristics or physical characteristics of the movable device set by the user operation; a simulator that executes a simulation to calculate behaviors of the movable device and a controller that controls the movable device, The simulation A process of executing the control program and outputting a command value for controlling the movable device; a process of executing the model using the command value as an input and calculating a behavior value indicating a behavior of the movable machine, wherein the simulator executes the control program using the behavior value calculated by the model as an input, The information processing device includes: a collection means for collecting the behavior values while the simulation is running; An information processing apparatus comprising: a means for outputting the behavior values collected by the collecting means and a target behavior value associated with the behavior values.
5. 5. The information processing device according to claim 3, further comprising an adjustment means for outputting guide information for adjusting the control parameters or the model parameters based on a magnitude of a difference between the collected behavior values and the target behavior values.
6. The information processing apparatus according to claim 5 , wherein the guide information includes an identifier of a parameter to be adjusted and an amount of adjustment of the parameter that reduces the difference.
7. The information processing device according to claim 6 , further comprising: an adjustment process for adjusting the control parameters set in the control program or the model parameters set in the model, based on the parameters to be adjusted and the adjustment amounts of the parameters specified by the user operation.
8. The information processing apparatus according to claim 7 , wherein the simulator executes the simulation each time the adjustment process is performed until the difference converges to a predetermined value.
9. A method comprising: Receiving a user operation; creating a control program by setting control parameters based on a control method for a movable device specified by a user operation to one or more program elements for controlling the movable device that drives the control target specified by the user operation; and managing the control program created in the creating step by linking the control program to a model for calculating a behavior of the movable machine corresponding to a control target designated by the user operation, the control method includes a specification value for control indicated by the specification data of the driving device, The method comprises: The method comprising converting the specification value to the control parameter using a conversion formula.
10. A method comprising: Receiving a user operation; creating a control program by setting control parameters based on a control method for a movable device specified by a user operation to one or more program elements for controlling the movable device that drives the control target specified by the user operation; managing the control program created in the creating step by linking it to a model for calculating a behavior of the movable machine corresponding to a control target designated by the user operation; setting model parameters in the model based on mechanical or physical characteristics of the movable device set by the user operation; executing a simulation to calculate behaviors of the moving machine and a controller that controls the moving machine; The simulation A process of executing the control program and outputting a command value for controlling the movable device; a process of executing the model using the command value as an input and calculating a behavior value indicating a behavior of the movable machine, wherein the step of executing the simulation includes a step of executing the control program using the behavior value calculated by the model as an input, The method comprises: collecting the performance values as the simulation is running; A method comprising the step of outputting the behavior values collected in the collecting step and a target behavior value associated with the behavior values.
11. A program for causing a processor to execute the method according to claim 9 or 10.
Citation Information
Patent Citations
Program management device
JP2007128456A
Simulation device, simulation method, and simulation program
JP2016042378A
Programming device
JP2017220142A
Program generation device, control method for program generation device, control program, and recording medium
JP2020057332A
Programming assistance device, programming assistance method, and program
WO2019186820A1
