Control program generation program, control program generation device, and control program generation method
The control program generation system automates the connection of function blocks and parameter setting, addressing the high burden of creating control programs in FA systems by reducing manual input and accelerating the development process.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- MITSUBISHI ELECTRIC CORP
- Filing Date
- 2025-07-09
- Publication Date
- 2026-05-07
AI Technical Summary
The burden of creating control programs for control systems in Factory Automation (FA) remains high, despite existing technologies that assist in reducing this burden, as users still need to set arguments for function blocks and write control programs manually.
A control program generation system that includes a computer-based device with a package management system, display control, and generation unit to automatically generate control programs by connecting function blocks and setting parameter values, reducing manual input through a user interface.
Significantly reduces the effort required to create control programs by automating the connection of function blocks and setting initial parameter values, thereby lowering the overall programming burden and enabling faster development of control functions.
Smart Images

Figure 0007855155000001 
Figure 0007855155000002 
Figure 0007855155000003
Abstract
Description
Technical Field
[0004] , , , , , , , , , , ,
[0005] , , , , , , ,
[0003]
[0001] The present disclosure relates to a control program generation program, a control program generation device, and a control program generation method.
Background Art
[0002] In the field of FA (Factory Automation), a control system is constructed in which a control device controls various devices. This type of control device realizes the control defined in the control program by executing the control program. The control program that defines the control content is usually created by developers, designers, and other users. In recent years, the scale of control systems has been increasing, and the burden of creating control programs has been growing. Therefore, technologies for assisting in creating control programs have been proposed (see, for example, Patent Document 1).
[0003] Patent Document 1 describes a technique for providing a guidance display that associates the functions included in a function block that groups a series of processes including a plurality of functions into one, with the function descriptions. According to the technique of Patent Document 1, even a user who is not familiar with programming a control system can reduce the burden of creating a program by referring to the guidance display.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
[0006] This disclosure aims to further reduce the burden of creating control programs. [Means for solving the problem]
[0007] To achieve the above objective, the control program generation program of the present disclosure functions as follows: a computer, a storage means for storing a package which is a package corresponding to each of a plurality of control functions performed by a control device that controls a device, and which includes configuration information that shows the configuration of a control program executed by the control device to realize the control function in a format in which the inputs and outputs of a plurality of program components including predetermined function blocks are connected to each other, and input support information for supporting the input of parameter values of the control program; a receiving means for receiving the selection of one of the control functions from a list of a plurality of control functions via a user interface; a display control means for generating an input screen from the input support information contained in the selection package which is the package corresponding to the selected control function, and displaying the input screen on the user interface; and a generation means for generating a control program that realizes the selected control function by connecting the inputs and outputs of a plurality of program components shown by the configuration information according to the configuration information, and setting the parameter values entered on the input screen as the initial values of the inputs of the program components. The control program is a motion program for controlling the operation of a motor, which is a piece of equipment, and the parameter values include identification information of the motor's axis, which is the object being controlled. . [Effects of the Invention]
[0008] According to this disclosure, the burden of creating control programs can be further reduced. [Brief explanation of the drawing]
[0009] [Figure 1] Diagram showing the configuration of the support system according to Embodiment 1 [Figure 2] A diagram showing the hardware configuration of the program generation device according to Embodiment 1. [Figure 3] A diagram showing the functional configuration of the program generation device according to Embodiment 1. [Figure 4] A diagram illustrating the generation of a control program according to Embodiment 1. [Figure 5] Flowchart showing the control program generation process according to Embodiment 1 [Figure 6] A diagram showing an example of a list of control functions according to Embodiment 1. [Figure 7] Figure 1 shows an example of an input screen according to Embodiment 1. [Figure 8] Figure 2 shows an example of the input screen according to Embodiment 1. [Figure 9] Figure 3 shows an example of an input screen according to Embodiment 1. [Figure 10] Figure 4 shows an example of the input screen according to Embodiment 1. [Figure 11] Figure 5 shows an example of an input screen according to Embodiment 1. [Figure 12] Figure 6 shows an example of an input screen according to Embodiment 1. [Figure 13] Figure 7 shows an example of an input screen according to Embodiment 1. [Figure 14] Figure 8 shows an example of an input screen according to Embodiment 1. [Figure 15] A diagram showing an example of a control program according to Embodiment 1. [Figure 16] Figure 1 shows an example of an auxiliary program according to Embodiment 1. [Figure 17] Figure 2 shows an example of an auxiliary program according to Embodiment 1. [Figure 18]Figure 3 showing an example of the auxiliary program according to Embodiment 1 [Figure 19] Figure showing the functional configuration of the program generation device according to Embodiment 2 [Figure 20] Flowchart showing the control program generation process according to Embodiment 2 [Figure 21] Figure showing an example of the editing instruction according to Embodiment 2 [Figure 22] Figure showing the functional configuration of the program generation device according to Embodiment 3 [Figure 23] Figure showing the first part of the control program according to the modification example [Figure 24] Figure showing the second part of the control program according to the modification example [Figure 25] Figure showing the third part of the control program according to the modification example [Figure 26] Figure showing the fourth part of the control program according to the modification example [Figure 27] Figure showing the fifth part of the control program according to the modification example [Figure 28] Figure showing an example of the first auxiliary program according to the modification example [Figure 29] Figure showing the first part of the second auxiliary program according to the modification example [Figure 30] Figure showing the second part of the second auxiliary program according to the modification example [Figure 31] Figure showing the third part of the second auxiliary program according to the modification example [Figure 32] Figure showing the fourth part of the second auxiliary program according to the modification example [Figure 33] Figure showing the fifth part of the second auxiliary program according to the modification example [Figure 34] Figure showing the sixth part of the second auxiliary program according to the modification example [Figure 35] Figure showing the seventh part of the second auxiliary program according to the modification example [Figure 36] Figure showing the eighth part of the second auxiliary program according to the modification example [Figure 37] Figure showing an example of the input screen according to the modification example [Modes for carrying out the invention]
[0010] The support system according to the embodiment of this disclosure will be described in detail below with reference to the drawings.
[0011] Embodiment 1. As shown in Figure 1, the support system 1000 according to this embodiment is a system that supports the operation of a control system including a PLC 21 and a motion controller 22 in a facility 1001, such as a factory or plant, by generating at least one of a control program 41, which is a sequence program executed by a PLC (Programmable Logic Controller) 21, and a control program 42, which is a motion program executed by a motion controller 22. User U1 operates the program generation device 10 to cause the program generation device 10 to generate the control programs 41 and 42. The generated control programs 41 and 42 are written to the PLC 21 and the motion controller 22.
[0012] The PLC21 is a control device that controls the controlled device 211 by executing a control program 41. The controlled device 211 is, for example, a sensor, motor, actuator, robot, machine tool, or other FA equipment. The PLC21 and the controlled device 211 communicate with each other, for example, via signal lines that transmit current signals or voltage signals, or via an industrial network.
[0013] The motion controller 22 controls the shaft 221a of the motor 221 via the drive unit 22a by executing a control program 42. Specifically, the motion controller 22 sends a signal to the drive unit 22a, and the drive unit 22a supplies power to the motor 221 according to this signal, causing the shaft 221a to rotate. The direction of rotation, speed, and torque of the shaft 221a are defined by the signal sent from the motion controller 22. The motion controller 22 and the drive unit 22a are connected by a signal line, and the drive unit 22a and the motor 221 are connected by a power line.
[0014] In Figure 1, one axis 221a of the motor 221 is typically shown, but the motor 221 may have multiple axes 221a. Furthermore, the motion controller 22 may control multiple motors 221. In addition, in Figure 1, the motion controller 22 is shown as a device located below the PLC 21. A device below the PLC 21 is, for example, one unit constituting a building block type PLC 21, or a device connected to the I / O (Input / Output) terminals of the PLC 21. However, the motion controller 22 is not limited to being a device below the PLC 21 and may be a device independent of the PLC 21.
[0015] The PLC 21 and motion controller 22 are examples of control devices that control equipment, respectively, while the controlled device 211 and motor 221 are examples of equipment controlled by the control devices. The following description will focus on an example in which the program generation device 10 generates a control program 42 to be executed by the motion controller 22. The control program 42, which is a motion program, is an example of a motion program for controlling the operation of a motor.
[0016] The program generation device 10 is a computer such as an industrial PC (Personal Computer), a tablet terminal, or a smartphone. The program generation device 10 has the hardware configuration shown in Figure 2. In detail, the program generation device 10 includes a processor 101, a main memory unit 102, an auxiliary memory unit 103, an input unit 104, an output unit 105, and a communication unit 106. The main memory unit 102, auxiliary memory unit 103, input unit 104, output unit 105, and communication unit 106 are all connected to the processor 101 via an internal bus 107.
[0017] The processor 101 includes a CPU (Central Processing Unit) or MPU (Micro Processing Unit) as a processing circuit. The processor 101 performs various functions and processes described later by executing a program P1 stored in the auxiliary storage unit 103. Program P1 is an example of a control program generation program.
[0018] The main memory unit 102 includes RAM (Random Access Memory). Program P1 is loaded into the main memory unit 102 from the auxiliary memory unit 103. The main memory unit 102 is then used as a working area for the processor 101.
[0019] The auxiliary storage unit 103 includes semiconductor flash memory and non-volatile memory such as an HDD (Hard Disk Drive). In addition to program P1, the auxiliary storage unit 103 stores various data used in the processing of the processor 101. The auxiliary storage unit 103 supplies data to be used by the processor 101 according to the instructions of the processor 101. The auxiliary storage unit 103 also stores data supplied from the processor 101.
[0020] The input unit 104 includes input components such as hardware switches, input keys, a keyboard, and a pointing device. The input unit 104 acquires information entered by the user of the program generation device 10 and notifies the processor 101 of the acquired information.
[0021] The output unit 105 includes output components such as an LED (Light Emitting Diode), an LCD (Liquid Crystal Display), and a speaker. The output unit 105 presents various information to the user according to instructions from the processor 101. The LCD of the output unit 105 and the pointing device of the input unit 104 may be integrated as a touchscreen.
[0022] The communication unit 106 includes a communication interface circuit for communicating with an external device. The communication unit 106 receives a signal from an external source and outputs the data indicated by this signal to the processor 101. The communication unit 106 also transmits a signal indicating the data output from the processor 101 to the external device.
[0023] The aforementioned hardware configuration works in cooperation to enable the program generation device 10 to perform various functions, including the generation of the control program 42. The program generation device 10 generates the control program 42 as a wizard function of an engineering tool for editing the control program 41 by user U1 and writing it to the PLC 21. In detail, as shown in Figure 3, the program generation device 10 has the following functions: a management unit 11 that manages the package 50 for implementing the control functions of the motion controller; a storage unit 12 that stores the package 50 corresponding to each of the multiple control functions; a display control unit 13 that controls the information displayed on the UI unit 14; a UI unit 14 that exchanges information with user U1; a reception unit 15 that receives information from user U1; a determination unit 16 that determines the information received from user U1; and a generation unit 17 that generates the control program 42 from the information received from user U1 and the package 50. Note that the arrows in Figure 3 indicate the main information paths between each functional unit, and information may be transmitted through paths not shown in Figure 3.
[0024] The management unit 11 is primarily implemented by the processor 101. The management unit 11 adds new packages 50 received from user U1 via the reception unit 15 to the storage unit 12. The management unit 11 also deletes any packages 50 stored in the storage unit 12 according to instructions received from user U1 via the reception unit 15. The management unit 11 is a management means for managing packages and is an example of a management means for adding or deleting packages according to user instructions.
[0025] The storage unit 12 is primarily implemented by at least one of the main storage unit 102 and the auxiliary storage unit 103. Figure 3 illustrates that the storage unit 12 stores package 50a for control function A, package 50b for control function B, and other packages 50. Packages 50a and 50b are packages 50 from a plurality of packages 50 that correspond to control functions A and B, respectively.
[0026] Each package 50 includes configuration information 51 that shows the structure of the control program 42, and input support information 52 to assist in inputting parameter values for the control program 42. As shown in Figure 4, the configuration information 51 shows the structure of the control program 42 to be generated in the form of connecting the inputs and outputs of the function block 511 and program components 512~519, 5110~5114 to each other. For example, the output of program component 512, which is an normally open contact, is connected to the input of program component 513, which is also an normally open contact. Program component 512 is assigned the label "G_bSt" and has the comment "start flag", and program component 513 is assigned the label "G_bHmDn" and has the comment "completion signal". Furthermore, the output of program component 513 is connected to the input of program component 514, which is a SET instruction, and this program component 514 is a SET instruction for the label "bEx".
[0027] Note that, among each label, the "G_" at the beginning indicates that it is a global label, and "b" indicates that it is a bit device. Also, "St" is an abbreviation for Start, "Hm" is an abbreviation for Home or Homing, which corresponds to returning to the origin, "Dn" is an abbreviation for Done, which indicates completion, and "Ex" is an abbreviation for Execute, which indicates activation.
[0028] Furthermore, the program components indicated by the configuration information 51 include a function block 511. A function block is a componentized version of a circuit block that can be repeatedly used within a sequence program, making it reusable within the sequence program. By using function blocks, program development can be made more efficient, programming errors can be reduced, and program quality can be improved. In other words, the configuration information 51 shows the definition of the function block 511 included in the control program 42 to be generated.
[0029] Function block 511 in Figure 4 is a function block called "MC_MvAbs" and is given the instance name "MC_MvAbs_1". Here, "MC" stands for motion control, Mv is an abbreviation for Move, which represents positioning, and Abs is an abbreviation for Absolute, which means absolute value.
[0030] Function block 511 has more than nine input terminals and seven output terminals, as shown in Figure 4. Among the strings shown for the input terminals in Figure 4, "DUT" indicates a structure as a data type, "B" indicates a BOOL type, "L" indicates a floating-point type, and "W" indicates a word type. Also, "Cont" is an abbreviation for Continuous, "Pos" is an abbreviation for Position, "Vel" is an abbreviation for Velocity, "Acc" is an abbreviation for Acceleration, "Dec" is an abbreviation for Deceleration, and "Dir" is an abbreviation for Direction. Among the strings shown for the output terminals, "UW" means an unsigned integer type. Also, "Abt" is an abbreviation for Aborted, and "Err" is an abbreviation for Error.
[0031] As explained using program components 512-514, configuration information 51 indicates the connections of program components and the values of parameters that should be set for those program components. However, configuration information 51 does not specify the values of some parameters, as exemplified by program components 515 and 518. In Figure 4, parameters not specified in configuration information 51 are shown as "axis name" and parameters with numbers from "1" to "7". For parameter values not specified in configuration information 51, input from user U1 is received separately, and the control program 42 is generated by combining the received parameter values with the configuration information 51. The axis name is an example of identification information for the axis of the motor to be controlled.
[0032] Returning to Figure 3, the memory unit 12 corresponds to an example of a storage means that stores a package corresponding to each of the multiple control functions performed by the control device that controls the device. This package includes configuration information that shows the configuration of a control program executed by the control device to realize the control function in a format in which the inputs and outputs of multiple program components, including predetermined function blocks, are connected to each other, and input support information for assisting in the input of parameter values for the control program.
[0033] The display control unit 13 is primarily implemented by the processor 101. The display control unit 13 controls the UI unit 14 to present information to the user U1 and display a screen prompting the user U1 to input information. The information presented to the user U1 includes, for example, a list of control functions corresponding to the package 50 stored in the memory unit 12, and an explanation of the control functions and parameter values used when generating the control program 42. The information that the user U1 is prompted to input includes instructions to add or delete the package 50, selection of a control function from among multiple control functions that corresponds to the control program 42 to be generated, and parameter values for generating the control program 42.
[0034] The UI unit 14 is primarily implemented by the input unit 104 and the output unit 105. The UI unit 14 corresponds to an example of a user interface that intervenes in the reception of information by the reception means, and corresponds to an example of a user interface in which information is displayed by the display control means.
[0035] The reception unit 15 is primarily implemented by the processor 101. The information received by the reception unit 15 from the user U1 via the UI unit 14 includes, for example, instructions to add or delete packages 50, selection of control functions, and parameter values. The reception unit 15 is an example of a reception means that receives instructions to add a new package to the storage means or delete a package stored in the storage means via the user interface, and is also an example of a reception means that receives the selection of one of several control functions from a list of control functions via the user interface.
[0036] The determination unit 16 is primarily implemented by the processor 101. The determination unit 16 determines whether the parameter value entered by user U1 is suitable for generating the control program 42. For example, the determination unit 16 determines whether the data type of the value entered as the parameter value indicated as "2" in Figure 4 matches the floating-point type, which is the data type to be entered into the function block 511. Alternatively, configuration information 51 or input support information 52 may indicate conditions for the parameter value, and the determination unit 16 may determine whether a parameter value satisfying those conditions has been entered. The conditions may be, for example, a range of parameter values to be entered.
[0037] The generation unit 17 is primarily implemented by the processor 101. The generation unit 17 generates a control program 42 from parameter values determined to be appropriate by the determination unit 16 and configuration information 51 of the package 50 read from the storage unit 12. In detail, the generation unit 17 connects the inputs and outputs of the program components indicated by the configuration information 51 according to the configuration information 51, and sets the parameter values received from the user U1 as initial values for the inputs of the program components, as shown in Figure 4. The generation unit 17 then incorporates the generated control program 42 into the project data 400 handled by the engineering tool. The generation unit 17 is an example of a generation means that generates a control program that realizes a selected control function by connecting the inputs and outputs of multiple program components indicated by the configuration information according to the configuration information and setting the parameter values entered on the input screen as initial values for the inputs of the program components.
[0038] Next, the processing flow executed by the program generation device 10 will be explained using Figures 5 to 18.
[0039] As shown in Figure 5, in the control program generation process, the reception unit 15 determines whether or not the user U1 has performed the operation to display the control function selection screen on the engineering tool (step S1). If it is determined that the display operation has not been performed (step S1; No), step S1 is repeated and the unit waits until the display operation is performed.
[0040] On the other hand, if it is determined that a display operation has been performed (Step S1; Yes), the display control unit 13 loads all available packages 50 stored in the storage unit 12 and displays a list of control functions corresponding to the loaded packages 50 on the UI unit 14 as a selection screen for selecting a control function (Step S2). For example, as shown in Figure 6, the display control unit 13 displays buttons corresponding to each control function on the left side and displays the name of the control function and related information for the button where the cursor is overlapping on the right side. In the example in Figure 6, the information related to the control function includes a description and image of the control function. The information related to the control function may also be included in the input support information 52 of each package 50.
[0041] The display control unit 13 may load only some of the packages 50 stored in the storage unit 12, rather than loading all of them. For example, the display control unit 13 may load multiple packages 50 specified by user U1, or multiple packages 50 that match the conditions specified by user U1, and display a selection screen. Alternatively, if user U1 specifies only one package 50, the display of the selection screen may be omitted.
[0042] Returning to Figure 5, following step S2, the reception unit 15 determines whether any control function has been selected (step S3). For example, on the screen in Figure 6, it is determined whether any button has been selected and become active, and whether the "Next" button in the lower right corner has been pressed. The control function corresponding to the active button is determined as the result of the selection. If it is determined that no control function has been selected (step S3; No), the reception unit 15 repeats the determination in step S3 and waits until any control function is selected.
[0043] On the other hand, if it is determined that any control function has been selected (step S3; Yes), the display control unit 13 displays a parameter value input screen on the UI unit 14 using the input support information 52 of the package 50 corresponding to the selected control function (step S4). The display control unit 13 is an example of a display control means that generates an input screen from the input support information contained in the selected package, which is the package corresponding to the selected control function, and displays the input screen on the user interface.
[0044] The input screen generated based on the input support information 52 has multiple pages, each with a predetermined display order for each package 50. Each page displays the parameter items necessary for generating the control program 42 and their descriptions. User U1 opens the pages in order and sets the parameter values for each parameter item while referring to the descriptions displayed on each page. The descriptions may also be displayed in an explanation screen shown as a sub-window. In this way, the setting items related to the control program 42 that user U1 requests to implement and their descriptions are displayed, allowing user U1 to generate the control program 42 while confirming the necessary settings for the control program 42.
[0045] For example, if a control function that is a single-axis positioning function is selected in the list illustrated in Figure 6, the display control unit 13 first displays a description of the control function, as shown in Figure 7. The single-axis positioning function is a function that moves an object, such as a workpiece, from a starting position to a target position and stops it by operating a single axis. The screen in Figure 7 displays a description of the single-axis positioning function itself, and shows the auxiliary programs, labels, and destinations for adding axis data corresponding to the axis, which are generated together with the control program 42 and added to the project data 400. Hereafter, axis data may be simply referred to as axis.
[0046] On the next page, as shown in Figure 8, user U1 selects whether to create a new axis or use an existing one to be handled in the control program 42. If a new axis is created, user U1 sets the name of the axis. In Figure 8, "Ax" in the set name is an abbreviation for Axis. The axis specified by user U1 is set as the parameter value "Axis Name" in Figure 4. Furthermore, on the screen in Figure 8, user U1 uses the electronic gear setting function to set parameter values related to the axis, such as the axis position command unit, the driver unit conversion numerator, and the driver unit conversion denominator.
[0047] The next page is the settings screen for the control program 42, as shown in Figure 9. On this settings screen, user U1 sets the type of programming language, whether or not to generate auxiliary programs and the names of the auxiliary programs to be generated, the name of the control program 42, and the name of the global label list where the global labels used by the control program 42 are stored. One of the programming languages can be selected from ladder, ST (Structured Text), and FBD / LD (Function Block Diagram / Ladder Diagram). The auxiliary programs are the servo start control program, the servo ON program, and the home position return program, which are operation preparation programs. In Figure 9, "Svo" in the names of the auxiliary programs is an abbreviation for Servo, and "Ex" is an abbreviation for Execute.
[0048] Furthermore, when this settings screen is displayed, the function block specified by the configuration information 51 is shown as the type of positioning function block to be used in the control program 42, but user U1 may change this function block. In Figure 9, "FB" means function block. Global labels whose names are set in the global label list settings field are automatically generated, stored in the global label list of the project data 400, and used by the control program 42. In the global label list settings, the user only needs to set the global label list data name and does not need to add or delete global labels. When the cursor is over a display component such as a text box, pull-down list, or checkbox, a description of that display component is displayed in the description field at the bottom of the settings screen.
[0049] The next page, as shown in Figure 10, is a screen for setting the details of the control program 42. On this page, with the "Positioning FB Arguments" tab selected, user U1 sets the parameter values that will be treated as initial values for the function block inputs. Also, with the "Local Labels" tab selected, information about the local labels indicated by the configuration information 51 is displayed, as shown in Figure 11. By pressing the "FB Description" button in Figure 10, user U1 can refer to a detailed description of the function block, as exemplified in Figures 12 and 13. Furthermore, a preview of the control program 42 is displayed at the bottom of the screen in Figure 10, and user U1 can determine the definition and purpose of the labels used in the control program 42 from this preview. In this way, information about the control program 42 to be generated and each parameter is displayed on the UI unit 14 screen, so user U1 can understand the configuration of the control program 42 that realizes the control function and the points to be noted when creating it.
[0050] The next page, as shown in Figure 14, is a screen for confirming the settings made by user U1. This page displays the generated control program 42, auxiliary programs, label definitions, and entered parameter values, and prompts user U1 for confirmation. When the "Next" button in the lower right corner of this screen is pressed, user U1 completes the input of parameter values.
[0051] Returning to Figure 5, following step S4, the reception unit 15 determines whether or not the input of the parameter values has been completed (step S5). If it is determined that the input of the parameter values has not been completed (step S5; No), the reception unit 15 repeats the determination in step S5 and waits until the input of the parameter values is completed.
[0052] On the other hand, if it is determined that the input of parameter values has been completed (Step S5; Yes), the determination unit 16 checks the parameter values and determines whether the check result is normal or not (Step S6). If it is determined that the check result is not normal (Step S6; No), the user U1 is notified of the parameter setting item that was determined to be abnormal and is prompted to review the setting.
[0053] On the other hand, if the check result is determined to be normal (step S6; Yes), the generation unit 17 generates the control program 42 and the auxiliary programs that have been specified to be generated, and reflects them in the project data 400 (step S7). Specifically, the generation unit 17 generates the single-axis positioning control program 42 as exemplified in Figure 15, the auxiliary program for starting single-axis positioning control as exemplified in Figure 16, the servo ON auxiliary program as exemplified in Figure 17, and the home position return auxiliary program as exemplified in Figure 18. "E0" in the programs in Figures 15 to 18 indicates that the parameter value input by user U1 is set. After that, the program generation process in Figure 5 is completed.
[0054] As can be seen from Figures 15-18, the generated control program 42 and auxiliary programs are generated with initial values input to all terminals of the program components that make up these programs and with all terminal connections completed. User U1 may, if necessary, modify or correct the generated programs and the data including their variables using the editing function of the engineering tool.
[0055] As described above, the program generation device 10 according to this embodiment connects the input and output of program components indicated by the configuration information 51 according to the configuration information 51, and sets the parameter values entered on the input screen as the initial values for the input of the program components, thereby generating a control program 42 that realizes the control function selected by the user U1. Therefore, by entering the parameter values prompted for input on the input screen, the user U1 can obtain a control program 42 that is complete enough to be compiled or built. Accordingly, the programming effort of the user U1 using the engineering tool can be reduced, and the burden of creating the control program 42 can be further reduced compared to conventional methods.
[0056] Furthermore, by adding or deleting packages 50 stored in the memory unit 12, the control program 42 that can be generated can be arbitrarily modified without modifying the engineering tool itself. Therefore, providers of new control functions can provide them by distributing packages 50 without waiting for the release of the engineering tool. Consequently, the period for providing new control functions can be shortened.
[0057] Furthermore, the program generation device 10 generates not only motion programs that directly implement the selected control functions, but also sequence programs that are executed auxiliaryly in conjunction with the execution of the motion programs. This reduces the effort required for the user U1 of the engineering tool to create auxiliary programs.
[0058] Furthermore, as shown in Figure 7, the input screen includes an explanatory display screen that shows explanations regarding the control program to be generated and each parameter value. Therefore, it is expected that the user U1 of the engineering tool will acquire the necessary knowledge for generating the control program 42 and set appropriate parameter values.
[0059] Embodiment 2. Next, Embodiment 2 will be described, focusing on the differences from Embodiment 1 described above. Note that the same or equivalent components as in Embodiment 1 will be referred to by the same reference numerals. This embodiment differs from Embodiment 1 in that generation history information 60 showing the generation history of the control program 42 is created, and this generation history information 60 is used when modifying the control program 42.
[0060] As shown in Figure 19, the generation unit 17 of the program generation device 10 according to this embodiment generates generation history information 60, which shows the history of the package used for generation and the parameter values set by user U1, when generating the control program 42, and stores it in the storage unit 12. Subsequently, when the control program 42 is regenerated, modified, or changed, the display control unit 13 restores the previously set parameter values from the generation history information 60 and displays the restored parameter values on the input screen.
[0061] As shown in Figure 20, the program generation device 10 performs steps S1 to S3 similar to those in Embodiment 1. If the determination in step S3 is affirmative (step S3; Yes), the display control unit 13 reads the generation history information 60 corresponding to the selected control function from the storage unit 12 (step S3a). If no generation history information 60 exists, step S3a may be omitted.
[0062] Next, the display control unit 13 displays a parameter value input screen as shown in Figures 6 to 14, based on the input support information 52 of the package 50 corresponding to the selected control function, and further displays the restored parameter value based on the generation history information 60 on this input screen (step S4a). For example, when user U1 places the cursor over the parameter value input form shown in Figure 10 and clicks, the display control unit 13 asks user U1 whether to read past parameter values based on the generation history information 60. If user U1 responds that they want to read past parameter values, the display control unit 13 restores the values in the input form by changing them to past parameter values.
[0063] As explained above, when user U1 modifies a previously generated control program 42, they can restore and reuse parameter values that have already been entered. This makes it easier to modify previously generated control programs 42 and reduces the debugging effort required for user U1 of the engineering tool.
[0064] Although an example has been described in which the generation unit 17 generates generation history information 60 independently of the control program 42, the system is not limited to this example. For example, since an already generated control program 42 contains the set parameter values, the previously generated control program 42 itself may be treated as generation history information 60. The display control unit 13 may analyze a previously generated control program 42 and restore the parameter values that were set when the control program 42 was generated.
[0065] Furthermore, in the example in Figure 20, the parameter values were restored when generating the control program 42 after selecting a control function from the list of control functions, but this is not the only way. For example, as shown in Figure 21, user U1 may start the process from step S3a in Figure 20 by selecting "Wizard function" from the submenu for editing the function block using the editing function of the engineering tool.
[0066] The reception unit 15 corresponds to an example of reception means that receives an editing instruction to start editing the generated control program. The display control unit 13 corresponds to an example of display control means that, upon receiving an editing instruction, restores the input screen including parameter values from the generation history information of the control program to be edited and displays it on the user interface.
[0067] Embodiment 3. Next, Embodiment 3 will be described, focusing on the differences from Embodiment 1 described above. Note that the same or equivalent components as in Embodiment 1 will be referred to by the same reference numerals. In Embodiments 1 and 2, the user U1 set the parameter values, but if these parameter values are incorrect, the device may not be able to operate normally. Even if the conditions for the parameter values are included in package 50 to ensure normal operation, the control systems on which the control program 42 generated from package 50 is operated are diverse. For example, interference between devices installed in actual sites is difficult to deal with using the conditions specified in package 50. For this reason, it is necessary to determine appropriate parameter values corresponding to the control system. The following describes a form in which the parameter values are determined to some extent automatically.
[0068] As shown in Figure 22, the program generation device 10 according to this embodiment includes an acquisition unit 18 that acquires information about the control system, and a setting value determination unit 19 that determines setting values, which are parameter values to be set in the control program 42, based on the information acquired by the acquisition unit 18 and a pre-learned model 191.
[0069] The acquisition unit 18 is primarily realized through the cooperation of the processor 101 and the input unit 104. The acquisition unit 18 acquires the specifications of the motion controller 22 and the requirements specifications of the control system as system information indicating the configuration of the control system. The acquisition of information by the acquisition unit 18 may be by receiving information input by the user U1, or by reading information from an external server or a removable recording medium at an address specified by the user U1.
[0070] The setting value determination unit 19 obtains setting values output from the model 191 by inputting input information obtained by analyzing the system information acquired by the acquisition unit 18 into the model 191. The model 191 may be a so-called generative AI (Artificial Intelligence) trained by deep learning. The input information may be a prompt for the generative AI, which is an LLM (Large Language Model).
[0071] The display control unit 13 displays the setting value determined by the setting value determination unit 19 as the initial value on the parameter value input screen. User U1 may use the displayed setting value as is, or may modify this setting value.
[0072] As explained above, the program generation device 10 determines appropriate parameter values from system information related to the control system. Therefore, if user U1 provides system information, they can obtain appropriate parameter values to be entered on the input screen. Consequently, the programming efficiency of the engineering tool by user U1 can be improved.
[0073] The acquisition unit 18 corresponds to an example of an acquisition means for acquiring system information relating to a control system including a control device and equipment. The setting value determination unit 19 corresponds to an example of a setting value determination means for determining setting values, which are parameter values for executing a control program, by applying a pre-learned model to a plurality of program components indicated by the system information and configuration information.
[0074] While embodiments of this disclosure have been described above, this disclosure is not limited to the embodiments described above.
[0075] For example, although the explanation focused on an example where the control program 42 contains only one function block, it is not limited to this, and the control program 42 may contain two or more function blocks. By using multiple function blocks, user U1 can generate a relatively complex control program 42 in a single operation. This reduces the programming effort required by user U1.
[0076] In the above embodiment, an example was described in which a control program 42 that realizes a single-axis positioning function is generated. However, a control program 42 that realizes a control function more complex than a single-axis positioning function may also be generated. Figures 23 to 26 illustrate a control program 42 and an auxiliary program that realize a synchronization function in which the input axis as the main axis and the output axis as the slave axis operate synchronously using gears and a cam table.
[0077] This synchronization function uses five axis data sets: the actual drive axes "Ax1" and "Ax2," the virtual drive axis "ViAx1," and the virtual linked axes "LkAx1" and "LkAx2." "Vi" is an abbreviation for Virtual, and "Lk" is an abbreviation for Link. Unlike the single-axis positioning function, the synchronization function uses waveform data, such as calculation profiles, in addition to axis data for control.
[0078] There are two types of servo ON functions: "MCv_AllPower," which turns on the servos of all axes, and "MC_Power," which turns on the servos of each axis individually. However, when using MCv_AllPower, the servo ON program is the same regardless of whether it is single-axis positioning control or synchronous control. For this reason, an example of a ladder program for servo ON in synchronous control is omitted.
[0079] The ladder program shown in Figures 23-27 is an example of an auxiliary program for returning to the origin for synchronization. As can be seen from Figures 23-27, the more axis data used, the larger the scale of the origin return program becomes, and the greater the burden on user U1 when creating it manually. In contrast, generating the auxiliary program for returning to the origin using the program generation device 10 can significantly reduce the workload.
[0080] The ladder program in Figure 28 is an example of an auxiliary program for initiating synchronous control. Compared to the single-axis positioning function, the label variables used and the program comments are different.
[0081] The ladder program shown in Figures 29-36 is an example of a control program 42 that implements synchronization functionality. Similar to homing, the program size increases as the amount of axis data used increases, but the program generation device 10 can significantly reduce the workload.
[0082] As shown in Figures 23-36, the number of function blocks used increases as the scale of the control system increases. When multiple function blocks are used, the output of one function block may be used as an input to another function block. Here, if the user can specify which function block's output to use according to the actual use case as a parameter input to the function block, the control program can be easily generated. For this reason, the parameter values specified by the user may include the specification of the connection destinations of the input / output terminals between at least two function blocks.
[0083] Figure 37 shows an example where the user specifies the input and output of a function block. Specifically, the user has specified the output "Done" of the function block "MC_MvRelative_1" as the first input variable "Ex" of the function block "MC_MvRelative_2" in Figure 37. As a result, a program with labels set is generated, as shown in Figure 34. Note that Figure 33 shows that the second output of the function block "MC_MvRelative_1" is "Done".
[0084] Furthermore, although an example in which the program generation device 10 includes a UI unit 14 has been described, it is not limited to this. The program generation device 10 may be configured without the UI unit 14, and the reception unit 15 and the display control unit 13 may exchange information with the user U1 via an external UI device.
[0085] The functions of the program generation device 10 according to the above-described embodiment can be realized by dedicated hardware or by a normal computer system.
[0086] For example, a device that performs the above-mentioned processing can be configured by distributing program P1 on a computer-readable recording medium such as a flexible disk, CD-ROM (Compact Disk Read-Only Memory), DVD (Digital Versatile Disk), or MO (Magneto-Optical disk), and then installing program P1 on a computer.
[0087] Alternatively, program P1 may be stored on a disk drive of a server device on a communication network such as the Internet, and then downloaded to a computer, for example, by superimposing it onto a carrier wave.
[0088] Furthermore, the above-mentioned process can also be achieved by launching and executing program P1 while transferring it over a network such as the Internet.
[0089] Furthermore, the above-described process can also be achieved by having all or part of program P1 run on a server device, and by having a computer send and receive information about the process via a communication network while executing program P1.
[0090] Furthermore, if the above-mentioned functions are implemented by the OS (Operating System) or through collaboration between the OS and the application, only the parts other than the OS may be stored and distributed on a medium, or they may be downloaded to a computer.
[0091] Furthermore, the means for realizing the functions of the program generation device 10 are not limited to software; some or all of them may be realized by dedicated hardware or circuits.
[0092] This disclosure allows for various embodiments and modifications without departing from the broad spirit and scope of this disclosure. Furthermore, the embodiments described above are for illustrative purposes only and do not limit the scope of this disclosure. In other words, the scope of this disclosure is indicated by the claims, not by the embodiments. Various modifications made within the scope of the claims and the equivalent significance of the disclosure are considered to be within the scope of this disclosure. [Industrial applicability]
[0093] This disclosure is suitable for generating programs that will be executed in factory automation (FA) settings. [Explanation of symbols]
[0094] 10 Program generation device, 11 Management unit, 12 Storage unit, 13 Display control unit, 14 UI unit, 15 Reception unit, 16 Judgment unit, 17 Generation unit, 18 Acquisition unit, 19 Setting value determination unit, 21 PLC, 22 Motion controller, 22a Drive unit, 41, 42 Control program, 50, 50a, 50b Package, 51 Configuration information, 52 Input support information, 60 Generation history information, 101 Processor, 102 Main memory unit, 103 Auxiliary memory unit, 104 Input unit, 105 Output unit, 106 Communication unit, 107 Internal bus, 191 Model, 211 Controlled device, 221 Motor, 221a Axis, 400 Project data, 511 Function block, 512~519, 5110~5114 Program components, 1000 Support system, 1001 Facility, P1 Program, U1 user.
Claims
1. Computers, A package corresponding to each of a plurality of control functions performed by a control device that controls a device, wherein the package includes configuration information that shows the configuration of a control program executed by the control device to realize the control function in a format in which the inputs and outputs of a plurality of program components including a predetermined function block are connected to each other, and input support information for supporting the input of parameter values of the control program, and a storage means for storing the package. A receiving means that accepts the selection of any of the control functions from the list of the plurality of control functions via a user interface. Display control means for generating an input screen from the input support information contained in the selected package, which is the package corresponding to the selected control function, and displaying the input screen on the user interface. A generation means that generates a control program that realizes the selected control function by connecting the inputs and outputs of the plurality of program components indicated by the configuration information in accordance with the configuration information, and setting the parameter values entered on the input screen as initial values for the input of the program components, To make it function as, The control program is a motion program for controlling the operation of the motor, which is the device, The parameter value includes identification information of the shaft of the motor that is the object of control. Control program generation program.
2. The generation means generates the motion program and the sequence program that is executed in conjunction with the execution of the motion program. A control program generation program according to claim 1.
3. The control program includes two function blocks as program components, The parameter value includes specifying the connection destination of the input / output terminals between the two function blocks. A control program generation program according to claim 1.
4. The aforementioned computer is further made to function as a management means for managing the aforementioned package, The receiving means receives instructions via the user interface to add a new package to the storage means or to delete a package stored in the storage means. The management means adds or removes the package in accordance with the instructions. A control program generation program according to claim 1.
5. The generation means generates generation history information indicating the package used to generate the control program and the parameter values entered in the input screen when generating the control program. The receiving means receives an editing instruction to start editing the generated control program, When the display control means receives the editing instruction, it restores the input screen, including the parameter values, from the generation history information of the control program to be edited and displays it on the user interface. A control program generation program according to claim 1.
6. A computer, A package corresponding to each of a plurality of control functions performed by a control device that controls a device, wherein the package includes configuration information that shows the configuration of a control program executed by the control device to realize the control function in a format in which the inputs and outputs of a plurality of program components including a predetermined function block are connected to each other, and input support information for supporting the input of parameter values of the control program, and a storage means for storing the package. A receiving means that accepts the selection of any of the control functions from the list of the plurality of control functions via a user interface. Display control means for generating an input screen from the input support information contained in the selected package, which is the package corresponding to the selected control function, and displaying the input screen on the user interface. A generation means that generates a control program that realizes the selected control function by connecting the inputs and outputs of the plurality of program components indicated by the configuration information in accordance with the configuration information, and setting the parameter values entered on the input screen as initial values for the input of the program components, Acquisition means for acquiring system information relating to the control system including the control device and the equipment, Setting value determination means that determines setting values, which are parameter values for executing the control program, by applying a pre-learned model to a plurality of program components indicated by the system information and the configuration information. To make it function as, The generation means generates the control program by setting the parameter values entered on the input screen and the setting values determined by the setting value determination means as initial values for the input of the program component. Control program generation program.
7. The input support information includes a description of the control program to be generated and the parameter values, The display control means causes the user interface to display an explanatory display screen that displays the explanation. A control program generation program according to any one of claims 1 to 6.
8. A package corresponding to each of a plurality of control functions performed by a control device that controls a device, comprising: configuration information indicating the configuration of a control program executed by the control device to realize the control function in a format in which the inputs and outputs of a plurality of program components including predetermined function blocks are connected to each other; and input support information for supporting the input of parameter values of the control program, a storage means for storing the package, A receiving means that accepts the selection of any of the control functions from the list of the plurality of control functions via a user interface, A display control means that generates an input screen from the input support information contained in the selected package, which is the package corresponding to the selected control function, and displays the input screen on the user interface, A generation means for generating a control program that realizes the selected control function by connecting the inputs and outputs of the plurality of program components indicated by the configuration information according to the configuration information, and setting the parameter values entered on the input screen as initial values for the inputs of the program components, Equipped with, The control program is a motion program for controlling the operation of the motor, which is the device, The parameter value includes identification information of the shaft of the motor that is the object of control. Control program generation device.
9. A package corresponding to each of a plurality of control functions performed by a control device that controls a device, comprising: configuration information indicating the configuration of a control program executed by the control device to realize the control function in a format in which the inputs and outputs of a plurality of program components including a predetermined function block are connected to each other; and input support information for supporting the input of parameter values of the control program, storage means for storing the package, A receiving means that accepts the selection of any of the control functions from the list of the plurality of control functions via a user interface, A display control means that generates an input screen from the input support information contained in the selected package, which is the package corresponding to the selected control function, and displays the input screen on the user interface, A generation means for generating a control program that realizes the selected control function by connecting the inputs and outputs of the plurality of program components indicated by the configuration information according to the configuration information, and setting the parameter values entered on the input screen as initial values for the inputs of the program components, An acquisition means for acquiring system information relating to the control system including the control device and the equipment, A setting value determination means determines a setting value which is a parameter value for executing the control program by applying a pre-learned model to a plurality of program components indicated by the system information and the configuration information, Equipped with, The generation means generates the control program by setting the parameter values entered on the input screen and the setting values determined by the setting value determination means as initial values for the input of the program component. Control program generation device.
10. The reception means receives, via a user interface, the selection of one of the control functions from a list of multiple control functions performed by the control device that controls the equipment. The display control means generates an input screen from the input support information contained in the selected package, which is the package corresponding to the selected control function, among the packages corresponding to each of the plurality of control functions, and which includes configuration information that shows the configuration of a control program executed by the control device to realize the control function in a form that connects the inputs and outputs of a plurality of program components including predetermined function blocks to each other, and input support information for supporting the input of parameter values of the control program, and displays the input screen on the user interface. The generation means generates the control program that realizes the selected control function by connecting the inputs and outputs of the plurality of program components indicated by the configuration information according to the configuration information, and by setting the parameter values entered on the input screen as initial values for the inputs of the program components. This includes, The control program is a motion program for controlling the operation of the motor, which is the device, The parameter value includes identification information of the shaft of the motor that is the object of control. A method for generating a control program.
11. The receiving means receives, via a user interface, the selection of one of the control functions from a list of control functions performed by a control device that controls the equipment. The display control means generates an input screen from the input support information contained in the selected package, which is the package corresponding to the selected control function, among the packages corresponding to each of the plurality of control functions, and which includes configuration information that shows the configuration of a control program executed by the control device to realize the control function in a form that connects the inputs and outputs of a plurality of program components including predetermined function blocks to each other, and input support information for supporting the input of parameter values of the control program, and displays the input screen on the user interface. The generation means connects the inputs and outputs of the plurality of program components indicated by the configuration information according to the configuration information, and sets the parameter values entered on the input screen as initial values for the inputs of the program components, thereby generating the control program that realizes the selected control function. The acquisition means acquires system information relating to the control system including the control device and the equipment, The setting value determination means determines the setting value, which is the parameter value for executing the control program, by applying a pre-learned model to a plurality of program components indicated by the system information and the configuration information. This includes, The generation means generates the control program by setting the parameter values entered on the input screen and the setting values determined by the setting value determination means as initial values for the input of the program component. A method for generating a control program.
Citation Information
Patent Citations
Program development support device
JP1994083601A
Program creation support device and program execution device
JP2008204237A
Process control composing method, process control composing system, and software system
JP2018092674A
Program creation method, program creation assistance device, and programmable controller
WO2021192646A1