Program creation device and program creation method

The process information is obtained through the program creation device and the previous and subsequent processes are specified, which simplifies the creation of control programs that control multiple industrial equipment and realizes an efficient program creation process.

CN114691244BActive Publication Date: 2025-07-29YASKAWA DENKI KK
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202111605112.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-25
Filing Date
2021-12-24
Publication Date
2025-07-29
Estimated Expiration
2041-12-24

AI Technical Summary

Technical Problem

In the prior art, the process of creating control programs that control multiple industrial equipment is complex and difficult to simplify.

Method used

A program creation device is provided, which obtains each process information through the process information acquisition unit, and the designated screen display control unit displays a designated screen to specify the front and rear processes, and the control program creation unit creates a control program to enable each process to be executed in a designated order.

Benefits of technology

The process of creating control program to control multiple industrial equipment is simplified and efficiency is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114691244B_ABST
    Figure CN114691244B_ABST
Patent Text Reader

Abstract

The present invention relates to a program creation device and a program creation method. The problem of the present invention is to simplify the creation of a control program for controlling one or more industrial devices. The present invention provides a program creation device (30), and a process information acquisition unit (301) of the program creation device (30) acquires process information related to each of a plurality of processes executed by one or more industrial devices. A designated screen display control unit (302) displays a designated screen that designates at least one of a previous process and a subsequent process of each process based on the process information of each process. A control program creation unit (305) creates a control program for a control device that controls one or more industrial devices to execute each process in the order designated in the designated screen.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a program creation device, a program creation method, and a program. Background Art

[0002] Patent Document 1 describes a program creation device that creates a program for controlling a robot used in a cell. The program creation device creates a program, defines job blocks including internal state information and post-conditions for each job unit of the robot, and uses a process flow in which a plurality of job blocks are arranged in a desired order to cause the robot to perform operations in the desired order.

[0003] Prior Art Documents

[0004] Patent Documents

[0005] Patent Document 1: Japanese Unexamined Patent Application Publication No. 2011-238041. Summary of the Invention

[0006] Problems to be Solved by the Invention

[0007] A problem to be solved by the present disclosure is, for example, to simplify the creation of a control program for controlling one or more industrial devices.

[0008] Means for Solving the Problems

[0009] A program creation device according to an aspect of the present disclosure includes: a process information acquisition unit that acquires process information related to each of a plurality of processes performed by one or more industrial devices; a designation screen display control unit that displays a designation screen based on the process information of each process, the designation screen designating at least one of a previous process and a subsequent process of each process; and a control program creation unit that creates a control program for a control device that controls the one or more industrial devices such that each process is executed in the order designated in the designation screen.

[0010] Effects of the Invention

[0011] According to the present disclosure, for example, it is possible to simplify the creation of a control program for controlling one or more industrial devices. Brief Description of the Drawings

[0012] Figure 1 is a diagram showing an example of the overall configuration of a control system.

[0013] Figure 2 is a diagram showing an example of the order of processes in a control system.

[0014] Figure 3 is a diagram showing an example of a control program creation screen.

[0015] Figure 4 This is a diagram showing an example of a designation screen for the previous process designation mode.

[0016] Figure 5 This is a diagram showing an example of a designation screen for the subsequent process designation mode.

[0017] Figure 6 This is a diagram showing an example of a control program creation screen when the order of each process is designated.

[0018] Figure 7 This is a functional block diagram showing the functions implemented by the control system of the first embodiment.

[0019] Figure 8 This is a diagram showing an example of data storage in the equipment information database.

[0020] Figure 9 This is a diagram showing an example of data storage in the process information database DB2.

[0021] Figure 10 This is a diagram showing an example of the processing executed by the program creation device of the first embodiment.

[0022] Figure 11 This is a diagram showing an example of the processing executed by the program creation device of the first embodiment.

[0023] Figure 12 This is a diagram showing a part of the structure data included in the configuration file.

[0024] Figure 13 This is a diagram showing an example of the data stored in the main instruction, sub-instruction, and instruction data area.

[0025] Figure 14 This is a diagram showing an example of the change of variables when selecting and executing a job.

[0026] Figure 15 This is a diagram showing an example of a screen indicating program creation.

[0027] Figure 16 This is a diagram showing the situation of selecting a template from the screen indicating program creation.

[0028] Figure 17 This is a diagram showing an example of a screen indicating program creation when a template is selected.

[0029] Figure 18 This is a diagram showing an example of a screen indicating program creation when a template is further selected.

[0030] Figure 19 This is the functional block diagram of the second embodiment.

[0031] Figure 20 This is a diagram showing an example of a template database.

[0032] Figure 21 This is a diagram showing an example of the processing executed by the program creation device of the second embodiment.

[0033] Figure 22 This is a functional block diagram of a modification related to the first embodiment.

[0034] Figure 23 This is a functional block diagram of a modification related to the second embodiment. Detailed Embodiment

[0035] [1. First Embodiment]

[0036] Hereinafter, an example of the first embodiment of the program creation device according to the present invention will be described. In the first embodiment, a control system including the program creation device is taken as an example.

[0037] [1-1. Overall Structure of the Control System]

[0038] Figure 1 This is a diagram showing an example of the overall structure of the control system. As Figure 1 shown, the control system 1 includes a control device 10, industrial devices 20A and 20B, and a program creation device 30. Each device is communicably connected to each other through a general network such as Ethernet (registered trademark) or an industrial network (so-called field network). Hereinafter, when the industrial devices 20A and 20B are not distinguished, the trailing letter is omitted and only recorded as the industrial device 20.

[0039] The control device 10 is a computer that controls one or more industrial devices 20. The control device 10 can control any number of industrial devices 20. When the entire control system 1 is referred to as a unit, the control device 10 is sometimes referred to as a unit controller. The control device 10 may also be a device with other names such as a PLC (Programmable Logic Controller). The control device 10 includes a CPU 11, a storage unit 12, and a communication unit 13. The CPU 11 includes at least one processor. The CPU 11 is a type of circuitry. The storage unit 12 includes at least one of a volatile memory and a non-volatile memory. The communication unit 13 includes at least one of a communication interface for wired communication and a communication interface for wireless communication.

[0040] The industrial device 20 is a device that performs operations in place of a person. For example, the industrial device 20A is a robot controller that controls the robot 24, and the industrial device 20B is a processing device. The industrial device 20 can be of any type. For example, it can also be a motor controller, a motion controller, a servo amplifier, a numerical control device, a power conversion device, an inspection device, or a measuring device. The industrial device 20 includes a CPU 21, a storage unit 22, and a communication unit 23. The physical structures of the CPU 21, the storage unit 22, and the communication unit 23 can be the same as those of the CPU 11, the storage unit 12, and the communication unit 13, respectively. In addition, in the present embodiment, since the structures of the CPU 21A, etc. are not distinguished Figure 1 , the letters are omitted and only the like of the CPU 21 is described.

[0041] The program creation device 30 is a device operated by a user. For example, the program creation device 30 is a personal computer, a tablet terminal, or a smartphone. For example, the program creation device 30 includes a CPU 31, a storage unit 32, a communication unit 33, an operation unit 34, and a display unit 35. The physical structures of the CPU 31, the storage unit 32, and the communication unit 33 can be the same as those of the CPU 11, the storage unit 12, and the communication unit 13, respectively. The operation unit 34 is an input device such as a mouse or a keyboard. The display unit 35 is a liquid crystal display or an organic EL (Electro-Luminescence) display.

[0042] In addition, the programs and data stored in the storage units 12, 22, and 32 can be provided via a network. In addition, the hardware structures of the respective devices are not limited to the above examples, and various hardware can be applied. For example, it may also include a reading unit (for example, a memory card slot) that reads a computer-readable information storage medium, or an input / output unit (for example, a USB terminal) for connecting to an external device. At this time, the programs and data stored in the information storage medium can be provided via the reading unit or the input / output unit. In addition, for example, it may also include a circuit called an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0043] [1-2. Overview of the control system]

[0044] In the control system 1, for each of a plurality of objects, each of a plurality of processes is executed in a prescribed order. An object is an object to be operated on. An object is also referred to as a workpiece. The object can be any one of the finally produced product, intermediate product, raw material, or ingredient.

[0045] The object can be of any kind, such as semiconductors, electrical products, automobiles, food, beverages, pharmaceuticals, or daily necessities. The process is an operation on the object. The process can also be the operation of the industrial equipment 20.

[0046] Figure 2 It is a diagram showing an example of the order of processes in the control system 1. In the present embodiment, a case where the processes p1 to p7 are executed in the order shown for each of a plurality of objects will be described. In Figure 2 the example shown, the order of the processes p1 to p7 is indicated by three types of arrows: complete, timeout, and abort. Depending on the type of arrow, the execution conditions described below are distinguished. Hereinafter, when it is not necessary to particularly distinguish the processes p1 to p7, the symbols p1 to p7 are omitted. Figure 2 Each of the processes p1 to p7 can be of any kind, for example, loading of the object, movement (transportation), measurement, processing, cleaning, inspection, or unloading. Process p1 is the first process to be executed. Prescribed execution conditions are set in process p1. For example, when any execution condition such as turning on the power of the industrial equipment 20 or completion of all processes for the previous object is satisfied, process p1 starts.

[0047] The execution condition for process p2 is the completion of process p1. If process p1 is completed, process p2 starts. The execution conditions for processes p3 to p6 are each the completion of process p2. If process p2 is completed, processes p3 to p6 start respectively. Processes p3 to p6 are executed in parallel. When process p6 times out even after a certain period of time, process p2 is executed again. Therefore, the timeout of process p6 is one of the execution conditions for process p2.

[0048] The execution condition for process p7 is the completion of each of processes p3 to p6. Since process p7 is executed each time processes p3 to p6 are completed, process p7 is executed 4 times for a certain object. If process p7 is aborted midway, process p6 is executed again. Therefore, the abort of process p7 is one of the execution conditions for process p6.

[0049] When the process p7 for a certain object is completed, all processes for that object are completed. After that, for the next object, each of the processes p1 to p7 is executed in the same order. In addition, after all processes for a certain object are completed, instead of starting process p1 for the next object, the processes for a certain object and the processes for other objects can be executed in parallel at the same time.

[0050] The user creates a control program for the control device 10 so that it follows

[0051] the order shown in Figure 2The sequential execution processes p1 to p7 are performed. The control program is a program for controlling the entire control system 1 and is thus also referred to as a unit program. The control program defines Figure 2 the overall flow. The flow of each process is indicated to the industrial equipment 20 and is defined as an instruction program different from the control program. Alternatively, it may not be divided into a control program and an instruction program but integrated into one program.

[0052] Figure 2 The execution conditions of each process shown by the arrow of are defined as the control program. The control device 10 executes the control program and determines whether the execution conditions of each process are satisfied. When the execution condition of a certain process is satisfied, the control device executes an instruction program for sending an execution instruction for that process and sends the execution instruction for that process to the industrial equipment 20 that executes that process. When receiving the execution instruction, the industrial equipment 20 executes a process program that defines the specific actions of the process to be instructed to execute. Therefore, in the first embodiment, there are mainly three types of programs: the control program and the instruction program executed by the control device 10, and the process program executed by the industrial equipment 20.

[0053] In addition, the instruction program can also be created using a template as in the second embodiment described later, but in the first embodiment, the creation method of the instruction program is not limited. For example, the user can also create the instruction program using ladder diagram language or robot language instead of using the template of the second embodiment. In this embodiment, seven instruction programs corresponding to the processes p1 to p7 are created in advance.

[0054] The user creates a control program to call the respective instruction programs of the processes p1 to p7 in the order of Figure 2 . In the first embodiment, an engineering tool for performing maintenance and the like of the industrial equipment 20 is installed in the program creation device 30, and the user uses the engineering tool to create a control program. For example, when the user operates the program creation device 30 and starts the engineering tool, a control program creation screen is displayed on the display unit 35.

[0055] Figure 3 is a diagram showing an example of the control program creation screen. As Figure 3 shown, the control program creation screen G1 is a user interface for creating a control program. In the first embodiment, the user can create a control program only by specifying the order of the processes without writing instructions using ladder diagram language or robot language. For example, as a method of specifying the order of the processes, there are a previous process specification mode and a subsequent process specification mode.

[0056] The previous process specification mode is a mode for specifying a previous process, which is another process executed before a certain process. That is, the previous process specification mode is a mode for specifying a previous process as an execution condition for a certain process. In the present embodiment, the case where the previous process is the previous process is described, but the previous process may also be two or more previous processes. It is also possible to specify multiple processes as the previous process.

[0057] The subsequent process specification mode is a mode for specifying a subsequent process, which is another process executed after a certain process. That is, the subsequent process specification mode is a mode for specifying a certain process (a process equivalent to the previous process from the perspective of the subsequent process) as an execution condition for the subsequent process. In the present embodiment, the case where the subsequent process is the subsequent process is described, but the subsequent process may also be two or more subsequent processes. It is also possible to specify multiple processes as the subsequent process.

[0058] The user can use one of the preferred previous process specification mode and subsequent process specification mode to specify the order of each process. The order of the processes specified by the user is displayed in the display area A10 of the control program creation screen G1. In Figure 3 the example, since the user has not specified anything, nothing is displayed in the display area A10. The user can switch between the previous process specification mode and the subsequent process specification mode by selecting the buttons B11 and B12. For example, when the user selects the button B11, a user interface for specifying the process order by the previous process specification mode, that is, a specification screen, is displayed on the display unit 35.

[0059] Figure 4 is a diagram showing an example of a specification screen for the previous process specification mode. As Figure 4 shown, input tables F20 to F24 and buttons B25 to B28 are displayed in the specification screen G2 of the previous process specification mode. Hereinafter, taking the case where the user specifies the previous process of process p2 as an example, the operation of the specification screen G2 of the previous process specification mode will be described. Process p2 is executed after process p1 is completed. Therefore, the user specifies the completion of process p1 as an execution condition for process p2. That is, the user specifies process p1 as the previous process of process p2.

[0060] First, for each of the input tables F20 to F22, the user specifies the process ID of process p2, the process block type indicating the type of process p2, and the name of process p2 as information for determining the process p2 for which the previous process is specified. In addition, when process p2 is specified in advance before the specification screen G2 is displayed, the input tables F20 to F22 may be grayed out so that the process ID, the process block type, and the name of the process cannot be specified.

[0061] The previous process of the user specifying process p2 for the input form F23. That is, the execution condition of the user specifying process p2 for the input form F23. For example, the user specifies the process ID of the previous process, i.e., process p1, for the input form F23A. In the input form F23A, the process IDs of other processes that are candidates for the previous process can also be displayed through a drop-down menu or the like. The user can specify the previous process from a drop-down menu or the like, or directly input the process ID of the previous process into the input form F23A.

[0062] In addition, for example, the user specifies the processing result of the previous process, i.e., process p1, for the input form F23B. The processing result is the state of the previous process. For example, the processing result indicates whether the previous process was completed normally. In this embodiment, there are multiple processing results. For example, there are three processing results: complete, timeout, and abort, as indicated by the arrows such as Figure 2 The processing results are not limited to the examples in this embodiment, and any processing results can exist. For example, there can also be processing results such as error, recovery, or interruption.

[0063] In the input form F23B, the processing results that are candidates can also be displayed through a drop-down menu or the like. The user can specify the processing result from a drop-down menu or the like, or directly input the processing result into the input form F23B. For example, the user specifies complete for the input form F23B. According to the above operations, the completion (complete) of process p1 is specified as the execution condition of process p2. That is, the order of process p1 and process p2 is specified.

[0064] The user can specify multiple conditions as execution conditions. The user can specify at least one of the AND condition and the OR condition for multiple conditions. For example, the user can specify other conditions as the AND condition for the input form F23C. The other conditions can also not be the processing results of processes. For example, they can also be conditions such as variable values unrelated to the processing results or signals of sensors. The user can select button B23D to add the AND condition. When button B23D is selected, input forms F23A to F23C for specifying the AND condition are added. An upper limit number can also be set for the AND conditions that the user can specify.

[0065] When the user wants to specify the OR condition, the user selects button B23E. When button B23E is selected, input forms F23A to F23C for specifying the OR condition are added. Since process p2 is also executed when process p6 times out, the user selects button B23E and specifies the process ID of the previous process, i.e., process p6, and the processing result of "timeout" as the OR condition. Thus, the execution condition of process p2 is the OR condition of the completion (complete) of process p1 and the timeout of process p6.

[0066] The user can specify an abort condition equivalent to abort for the input table F24. In the Figure 2 process, since the abort of process p2 is not considered, the user does not specify anything for the input table F24. For a process that considers abort, such as process p6, an abort condition is specified for the input table F24. The abort condition can be any condition, for example, it can be a specified variable value, a sensor signal, or a condition such as the state of an object.

[0067] The user can select button B25 to specify the processing type of process p2. The processing type is the type of process p2. In this embodiment, parallel processing and branch processing are prepared as the processing types. Parallel processing is a process that can be performed multiple times on a certain object. Branch processing is a process that is performed only once on a certain object. Since process p2 is not executed again as long as process p6 is not aborted, as Figure 4 shown, the user specifies parallel processing for process p2.

[0068] The user can select button B26 to specify whether there is a concentrated process for process p2. A concentrated process is a process with multiple previous processes. In this embodiment, an upper limit is set for the OR condition that the user can specify, and for the concentrated process, this upper limit is lifted. For example, in a process that is not a concentrated process, the upper limit is restricted to about 10, and for a concentrated process, the upper limit becomes about 50. In addition, instead of lifting the OR condition, the upper limit of the AND condition can be lifted. Or, an upper limit for the sum of the OR condition and the AND condition can be set, and this upper limit can also be lifted.

[0069] When the user selects button B27, the specification of the previous processes of process p2 can be completed. After that, the user can specify the previous processes of other processes p3 to p7 while maintaining the previous process specification mode. For example, the user specifies processes p2 and p7 as the previous processes of process p6, and specifies the completion of process p2 and the abort of process p7 under the OR condition. In addition, for example, the user specifies processes p3 to p6 as the previous processes of process p7, and specifies the completion of each of processes p3 to p6 under the OR condition. In addition, when the user selects button B28, the specified content is not stored but discarded.

[0070] The user can specify the execution conditions of all processes in the previous process specification mode. For example, as in process p7, when there are multiple processes p3 to p6 as previous processes, there are cases where it is easy to specify the process order in the subsequent process specification mode. For example, when the user selects button B12 on the control program creation screen G1, a user interface for specifying the process order in the subsequent process specification mode, that is, the specification screen G2, is displayed on the display unit 35.

[0071] Figure 5 This is a diagram showing an example of the designated screen G2 for the post-process designation mode. Hereinafter, an example will be described where the user designates the post-process of process p3 in the post-process designation mode. As Figure 5 shown, the layout of a part of the designated screen G2 for the post-process designation mode is the same as that of the designated screen G2 for the pre-process designation mode, and the part for designating the execution conditions is different.

[0072] The user's processing result for designating process p3 in the input form F23F. Since the post-process of process p3, i.e., process p7, is executed after process p3 is completed, the user designates "complete" for the input form F23F. The input form F23F can also display a drop-down menu, etc., in the same way as Figure 4 the input form F23B. The user designates the process ID of process p7, which is the only post-process that can identify process p3, in the input form F23G. The input form F2G can also display a drop-down menu, etc., in the same way as Figure 4 the input form F23A.

[0073] In addition, when the user designates the execution conditions for the post-process as the AND conditions, the user checks the check box B23H. The user designates the AND conditions for the input form F23. When there are two or more AND conditions, the user selects the button B23J to designate the AND conditions after the second one. In Figure 2 this process, since the execution conditions of the post-process of process p3, i.e., process p7, do not include the AND conditions, the user does not designate the AND conditions.

[0074] When there are two or more post-processes, the user can select the button B23K to add a post-process. For example, after process p3, when not only process p7 but also Figure 2 process p8, which does not exist in [], is executed, the user selects the button B23K to add process p8. If it is process p2, since there are four post-processes, i.e., processes p3 to p6, when the user designates the execution conditions of process p2 in the post-process designation mode, the user selects the button B23K to designate these four post-processes.

[0075] In addition, process p7 is executed when each of processes p3 to p6 is completed. Therefore, the user can designate process p7 as the post-process not only for process p3 but also for each of processes p4 to p6 from the designated screen G2 of the post-process designation mode. The user only needs to designate the execution conditions of each of processes p1 to p7 from the designated screen G2 of at least one of the pre-process designation mode and the post-process designation mode. The execution conditions designated by the user are reflected in the display area A10 of the control program creation screen G1.

[0076] Figure 6This is a diagram showing an example of a control program creation screen G1 when the order of each process is specified. As Figure 6 shown, in the display area A10 of the control program creation screen G1, the order of processes p1 to p7 specified by the user is displayed. For example, frames representing each of the processes p1 to p7 are displayed in a configuration corresponding to the order of each of the processes p1 to p7, and arrows connecting the frames are displayed to show the execution conditions of each of the processes p1 to p7.

[0077] When the user confirms that the processes p1 to p7 are in the desired order, the button B13 for creating a control program is selected. When the button B13 is selected, the program creation device 30 creates a control program to execute each of the processes p1 to p7 in the order displayed in the display area A10. A specific method for creating a control program according to the order specified by the user will be described later.

[0078] As described above, the program creation device 30 of the present embodiment uses at least one of the previous process specification mode and the subsequent process specification mode in the specification screen G2 to allow the user to specify the order of each process. If the user specifies the order of each process from the specification screen G2, a control program can be created without using ladder diagram language or robot language, etc., so the creation of the control program is simplified. Hereinafter, the details of the control system 1 of the present embodiment will be described.

[0079] [1-3. Functions Achieved by the First Embodiment]

[0080] Figure 7 This is a functional block diagram showing the functions achieved by the control system 1 of the first embodiment. In the present embodiment, the functions achieved by the control device 10, the industrial equipment 20, and the program creation device 30 will be described.

[0081] [1-3-1. Functions Achieved by the Control Device]

[0082] As Figure 7 shown, the control device 10 includes a data storage unit 100 and an industrial equipment control unit 101. The data storage unit 100 is mainly implemented by the storage unit 12. The industrial equipment control unit 101 is mainly implemented by the CPU 11.

[0083] [Data Storage Unit]

[0084] The data storage unit 100 stores the data required for controlling the industrial equipment 20. For example, the data storage unit 100 stores the control program created by the control program creation unit 305 and the pre-created instruction program. Additionally, for example, the data storage unit 100 stores variables that are referred to and / or modified by at least one of the control program and the instruction program. These variables are used to control the process. The start variable and the end variable described later are examples of such variables. The main instructions and the like described in the second embodiment later are also examples of such variables. The detailed usage method of the variables will be described later.

[0085] In addition, the data storage unit 100 may also store the same variables as those stored in the data storage unit 200 of the industrial equipment 20. In this case, the variables in the data storage unit 100 and the variables in the data storage unit 200 are variables with acquisition matching. The matching of the variables can be acquired periodically or irregularly. The variables are not limited to those related to the control of the process, and can be various variables such as variables representing physical quantities detected by sensors.

[0086] [Industrial Equipment Control Unit]

[0087] The industrial equipment control unit 101 controls the industrial equipment 20 based on the control program so that each process is executed in a prescribed order. For example, the industrial equipment control unit 101 sends execution instructions for each process from the control device 10 to one or more industrial equipment 20 based on the control program. In the present embodiment, the industrial equipment control unit 101 causes the industrial equipment 20 to execute the process by changing the variables corresponding to each process. Therefore, the execution instruction for the process can be an instruction to change the variable.

[0088] For example, in each process, a start variable for starting the process and an end variable indicating whether the process has ended (been completed) are determined. The start variable and the end variable for each process are stored in the industrial equipment 20 that executes the process. Variables identical to the start variable and the end variable stored in the industrial equipment 20 are stored in the data storage unit 100, and matching is obtained between them. The industrial equipment control unit 101 causes the industrial equipment 20 to execute each process by controlling the start variable and the end variable of each process.

[0089] If it is Figure 2 an example, the industrial equipment control unit 101 executes the control program and determines whether the execution condition for process p1 is satisfied. When the industrial equipment control unit 101 determines that the execution condition for process p1 is satisfied, it calls the instruction program corresponding to process p1 and sends an execution instruction for process p1 to the industrial equipment 20 that executes process p1. This execution instruction is an instruction to change the start variable for process p1 from a first value (e.g., 0) to a second value (e.g., 1).

[0090] For example, the industrial equipment control unit 101 may also change the start variable corresponding to process p1 stored in the data storage unit 100 to a second value, and send an execution instruction indicating the acquisition of the matching of the start variable to the industrial equipment 20 that executes process p1. When the industrial equipment 20 receives the execution instruction, the process execution unit 201 described later changes the start variable of process p1 to the second value. If the process execution unit 201 detects that the start variable of process p1 has been changed to the second value, it executes the process program of process p1 and starts process p1.

[0091] If the process execution unit 201 executes to the last part of the process program of process p1, it changes the end variable of process p1 from the first value (e.g., 0) to the second value (e.g., 1). The process execution unit 201 sends a response indicating that the end variable of process p1 has become the second value to the control device 10. When the control device 10 receives the response, the industrial equipment control unit 101 changes the end variable of process p1 stored in the data storage unit 100 to the second value.

[0092] If the industrial equipment control unit 101 detects that the end variable of process p1 has been changed to the second value, it determines that the execution condition of process p2 is satisfied and calls the instruction program corresponding to process p2. Hereinafter, in the same manner, the industrial equipment control unit 10 controls the start variable and the end variable of each process until the last process p7 is completed.

[0093] In addition, in the present embodiment, since timeout and suspension are also specified as execution conditions, there may also be a timeout variable indicating timeout and a suspension variable indicating suspension. At this time, similar to the start variable and the end variable, the industrial equipment control unit 101 only needs to detect timeout and suspension by referring to the timeout variable and the suspension variable.

[0094] For example, in process p2, since the timeout of process p6 also becomes an execution condition, the industrial equipment control unit 101 refers to the timeout variable of process p6 and detects the timeout of process p6. If the industrial equipment control unit 101 detects the timeout of process p6, it determines that the execution condition of process p2 is satisfied and calls the instruction program corresponding to process p2. In addition, for example, in process p6, since the suspension of process p7 also becomes an execution condition, the industrial equipment control unit 101 refers to the suspension variable of process p7 and detects the suspension of process p7. If the industrial equipment control unit 101 detects the suspension of process p7, it determines that the execution condition of process p6 is satisfied and calls the instruction program corresponding to process p6.

[0095] In addition, the control method of the industrial equipment 20 itself can utilize various methods, not limited to the method of using variables. For example, the industrial equipment control unit 101 can also control the industrial equipment 20 by sending an instruction indicating the process to be executed to the industrial equipment 20. The industrial equipment 20 only needs to determine the process to be executed by referring to the received instruction, and start the process by executing the process program of the process.

[0096] [Function realized by industrial equipment]

[0097] In the industrial equipment 20, a data storage unit 200 and a process execution unit 201 are realized. The data storage unit 200 is mainly realized by the storage unit 22. The process execution unit 201 is mainly realized by the CPU 21 respectively. Figure 1 The industrial equipment 20A and 20B shown each have the same functions, so only the industrial equipment 20 is described for illustration.

[0098] [Data storage unit]

[0099] The data storage unit 200 stores the data required to execute the process. For example, the data storage unit 200 stores the process program. A process program is prepared for each process. Each action in the process is defined in the process program. In addition, for example, the data storage unit 200 stores at least one of the variables referred to and changed by the process program. The variables include the variables that become the execution conditions of the process program. For example, for each process (each process program), a start variable and an end variable are prepared. As described above, the execution of the process program is not controlled by variables, and can also be controlled by an instruction from the control device 10.

[0100] [Process execution unit]

[0101] The process execution unit 201 executes the process based on the process program. When the process execution unit 201 receives an execution instruction for a certain process from the control device 10, it executes the process program of the process to start the process. In this embodiment, since a start variable and an end variable are prepared for each process program, the process execution unit 201 determines whether the start variable changes from the first value to the second value. The processing after the process execution unit 201 detects that the start variable has become the second value is as described above. The start variable and the end variable that have become the second value return to the first value at a specified timing.

[0102] The process execution unit 201 may also execute the processes that it should execute based on execution conditions different from the execution instructions received from the control device 10. That is, even if an execution instruction for a process is received from the control device 10, the process execution unit 201 may not execute the process as long as other execution conditions are not satisfied. The other execution conditions may be any conditions that the industrial equipment 20 can determine. For example, there is no congestion of the object, no error occurs, or the other industrial equipment 20 is in a specified state. The other execution conditions are judged based on the detection signals of the sensors connected to the industrial equipment 20 or the communication content with other industrial equipment 20. The sensors can be of any type. For example, they can be torque sensors, vision sensors, motor encoders, temperature sensors, grip sensors, or temperature sensors, etc.

[0103] [Function realized by the program creation device]

[0104] As Figure 7 shown, the program creation device 30 includes a data storage unit 300, a reception unit 303, a condition addition unit 304, a process information acquisition unit 301, a designated screen display control unit 302, and a control program creation unit 305. The data storage unit 300 is mainly implemented by the storage unit 32. The reception unit 303, the condition addition unit 304, the process information acquisition unit 301, the designated screen display control unit 302, and the control program creation unit 305 are mainly implemented by the CPU 31 respectively.

[0105] [Data storage unit]

[0106] The data storage unit 300 stores the data required for the settings in the control system 1. For example, the data storage unit 300 stores the device information database DB1 and the process information database DB2.

[0107] Figure 8 is a diagram showing an example of data storage in the device information database DB1. As Figure 8 shown, the device information database DB1 is a database that stores device information related to the industrial equipment 20 that is the control object of the control device 10. For example, the unit name, the name, type, register range, communication settings, and control program information of the industrial equipment 20 are stored in the device information database DB1. When there are multiple units, this information is stored for each unit.

[0108] The user uses an engineering tool to create device information as settings for each industrial device 20. For example, the user specifies the name, type, register range, and communication settings of the industrial device 20 that is to be the control target of the control device 10 from the engineering tool. These specified contents are stored in the device information database DB1. The control program information is information related to the control program created by the control program creation unit 305, such as the file name of the control program, or information on the associated instruction program, etc.

[0109] In the present embodiment, for each industrial device 20, a register range for controlling the industrial device 20 is determined. For example, in order to control the industrial device 20A, registers numbered from 0 to 4999 in the control device 10 are used, and in order to control the industrial device 20B, registers numbered from 5000 to 12000 in the control device 10 are used. In this way, a register range dedicated to each industrial device 20 is set. For example, as the register range, the starting register number and the ending register number are stored. In addition, the register is a storage area of the memory in the control device 10.

[0110] Figure 9 It is a diagram showing an example of data storage in the process information database DB2. As Figure 9 shown, the process information database DB2 stores process information related to the processes executed by each industrial device 20. For example, in the process information database DB2, variable information related to process ID, process name, name of the industrial device 20, order of executing the process, execution conditions of the process, instruction program information, process program information, and variables such as start variables and end variables is stored.

[0111] The user uses an engineering tool to create process information as settings for each process. For example, the user specifies the process ID and name of the process executed by each industrial device 20 from the engineering tool. These specified contents are stored in the device information database DB1.

[0112] The order and execution conditions stored in the process information database DB2 store the contents specified by the designation screen G2 in the previous process designation mode or the subsequent process designation mode. In Figure 9 it, the execution conditions displayed by each mode are shown, but they can also be mutually transformed, or only one execution condition can be stored. In addition, although omitted in Figure 9 it, information such as abort conditions, process types, and the presence or absence of centralized processes can also be stored in the process information database DB2.

[0113] The instruction program information is information related to the instruction program created by the user. For example, it is the file name of the instruction program, the name of the industrial device 20 of the instruction object, and comments, etc. The process program information is information related to the process program created by the user. For example, it is the file name of the process program, the name of the industrial device 20 that executes the process program, and comments, etc. The variable information is information related to the variables used in each process. For example, information such as the start variable and end variable of each process is saved as variable information.

[0114] In addition, the data stored in the data storage unit 300 is not limited to the above examples. For example, the data storage unit 300 stores engineering tools. The engineering tools are used for various purposes such as the creation of various programs, the setting of parameters, the communication setting between devices, the definition of registers, or the definition of variables. Additionally, for example, the data storage unit 300 can also store the programs created by the user using the engineering tools and the backups of the parameters.

[0115] [Process Information Acquisition Unit]

[0116] The process information acquisition unit 301 acquires process information related to each of a plurality of processes executed by one or more industrial devices 20. In the present embodiment, since the process information is stored in the process information database DB2, the process information acquisition unit 301 acquires the process information stored in the process information database DB2. For example, the process information acquisition unit 301 acquires the process information of the process designated as the previous process or the subsequent process in the designated screen G2. The process information may also be included in a database other than the process information database DB2. Additionally, the process information may be stored in a computer other than the program creation device 30.

[0117] [Designated Screen Display Control Unit]

[0118] The designated screen display control unit 302 displays a designated screen G2 that designates at least one of the previous process and the subsequent process of each process based on the process information of each process. In the present embodiment, the case where the designated screen display control unit 302 displays both the designated screen G2 in the previous process designation mode and the designated screen G2 in the subsequent process designation mode is described, but the designated screen display control unit 302 may also display only either the designated screen G2 in the previous process designation mode or the designated screen G2 in the subsequent process designation mode.

[0119] For example, the designated screen display control unit 302 switches between the previous process designation mode and the subsequent process designation mode based on a switching operation. In the present embodiment, the case where the selection buttons B11 and B12 correspond to the switching operation is described, but the switching operation can be any operation. For example, the switching operation may also be pressing a predetermined key on the keyboard, selecting a predetermined item from the menu on the screen, or selecting a predetermined icon.

[0120] The previous process designation mode is a state in which designations from the previous process are accepted. In the present embodiment, the state of the designation screen G2 shown Figure 4 is equivalent to the previous process designation mode. The subsequent process designation mode is a state in which designations from the subsequent process are accepted. In the present embodiment, the state of the designation screen G2 shown Figure 5 is equivalent to the subsequent process designation mode.

[0121] The switching of the mode means changing the mode. That is, changing from the previous process designation mode to the subsequent process designation mode and changing from the subsequent process designation mode to the previous process designation mode are each equivalent to the switching of the mode. The designation screen display control unit 302 may also display both the designation screen G2 of the previous process designation mode and the designation screen G2 of the subsequent process designation mode without switching the mode. The designation screen display control unit 302 may also display the designation screen G2 that accepts designations from both the previous process and the subsequent process without specifically distinguishing the modes.

[0122] For example, in the designation screen G2, the identification information and processing results of the previous process are designated as the execution conditions for each process. The identification information of the process may be any information that can identify the process, such as a process ID or the name of the process. In the present embodiment, the identification information of the process can be designated from the input tables F20 and F22, and the processing results can be designated from the input tables F23B and F23F. In addition, the identification information and processing results of the previous process can be designated using any interface other than the input tables. For example, check boxes, radio buttons, or drop-down menus may also be used. The same applies to other information, and the interface that accepts the user's designation is not limited to the examples in the present embodiment.

[0123] For example, in the designation screen G2 of the previous process designation mode, the identification information, processing results, and combination conditions of each of a plurality of previous processes are designated as the execution conditions. The combination conditions are the combination methods of a plurality of previous processes and are AND conditions or OR conditions. In the present embodiment, the combination conditions are designated from the input table F23C and the buttons B23D and B23E. For example, when the user designates the execution conditions for process p7 in the previous process designation mode, by operating the input tables F23A, F23, and the button B23E, the process IDs and processing results of the previous processes, i.e., processes p3 to p6, are designated under an OR condition. It is not necessary to connect all of the plurality of previous processes through AND conditions or OR conditions, and AND conditions and OR conditions can also be mixed.

[0124] For example, in the designation screen G2 of the post-process designation mode, the processing result of each process and the identification information of the subsequent process of that process are designated as the execution conditions for the subsequent process. In the present embodiment, the processing result of each process is designated from the input table F23F, and the identification information of the subsequent process is designated from the input table F23G. For example, when the user designates the subsequent process of process p3 in the post-process designation mode, the processing result of process p3 is designated in the input table F23F, and the subsequent process, i.e., process p7, is designated in the input table F23G.

[0125] For example, in the designation screen G2 of the post-process designation mode, the processing result of each process, the processing result of other processes, the combined conditions of that process and that other process, and the identification information of the subsequent process are designated as the execution conditions. In the present embodiment, the processing result of other processes and the combined conditions are designated from the input table F23I and the button B23J. When the input format F23I or the button B23J is selected, although it is a designation of an AND condition, a designation of an OR condition can also be accepted. For example, when process p11 is to be executed after both of processes p9 and p10 are completed, the user designates the completion of process p9 and the completion of process p10 under the AND condition, and designates process p11 as the subsequent process by operating the input tables F23F, F23G and the input table F23I or the button B23J.

[0126] For example, in the designation screen G2 of the post-process designation mode, the processing result of each process and the identification information of each of the multiple subsequent processes of that process are designated as the execution conditions for each subsequent process. In the present embodiment, when the button B23K is selected, other subsequent processes can be added to become a state of multiple subsequent processes. For example, when the user designates the subsequent process of process p2 in the post-process designation mode, after designating process p3 as one of the subsequent processes by operating the input table F23G, the button B23K is selected, and processes p4 to p6 are added as subsequent processes.

[0127] For example, in the designation screen G2, as the processing type of each process, parallel processing or branch processing can be designated. In the present embodiment, the user designates the processing type by operating the button B25. Additionally, for example, in the designation screen G2, it can be designated whether each process is a centralized process. In the present embodiment, the user designates the presence or absence of a centralized process by operating the button B25. The processing type and the centralized process can also be designated only through either the pre-process designation mode or the post-process designation mode.

[0128] [Receiving Department]

[0129] The receiving unit 303 receives various operations from the user. For example, the receiving unit 303 receives a switching operation between a previous process specifying mode for specifying a previous process in the specified screen G2 and a subsequent process specifying mode for specifying a subsequent process in the specified screen G2. In the present embodiment, the receiving unit 303 creates buttons B11 and B12 of the screen G1 through receiving a selection control program and receives the switching operation. As described above, the switching operation can be any other operation.

[0130] The receiving unit 303 can not only receive the switching operation, but also receive various operations on the specified screen G2. For example, the receiving unit 303 receives an operation for specifying the process order. This operation is not limited to the operations on Figures 3 to 6 each screen, and can be any operation. For example, it can be an operation of rearranging or connecting in sequence the icons representing each process, or an operation of inputting a numerical value representing the order of each process.

[0131] [Condition adding unit]

[0132] When a centralized process is specified, the condition adding unit 304 increases the number of combined conditions that can be specified in the centralized process. As described with reference to Figure 5 above, for the process in which the centralized process is specified from the button B26, the condition adding unit 304 increases the number of OR conditions that can be specified from a first value (for example, 10) to a second value (for example, 50). The register range used can be changed as a variable according to the number of OR conditions that can be specified. In addition, the condition adding unit 304 can also increase the number of AND conditions that can be specified instead of increasing the OR conditions that can be specified.

[0133] [Control program creating unit]

[0134] The control program creating unit 305 creates a control program for the control device 10 that controls one or more industrial devices 20 to execute each process in the order specified in the specified screen G2. When the execution conditions specified for each process are satisfied, the control program creating unit 305 creates a control program to send an execution instruction for the process to the industrial device 20 that executes the process. The creation program for creating the control program according to the execution conditions specified for each process is pre - included in the engineering tool.

[0135] The control program creation unit 305 creates a control program using a creation program, and defines the order and execution order stored in the process information database DB2 within the control program. For example, when using ladder diagram language, the control program creation unit 305 configures circuits such as coils for starting each process in order to achieve the specified order in each process, and sets the execution conditions specified in that process as the conditions for the circuit to turn off, thereby creating a control program. The circuit for starting each process may also be a circuit for calling an instruction program corresponding to that process. Any circuit capable of showing conditional branches can be used as the execution condition.

[0136] In addition, for example, when using robot language, the control program creation unit 305 describes codes for starting each process in order to achieve the specified order in each process, and sets the execution conditions specified for the process corresponding to the code as the conditional branches for executing the code, thereby creating a control program. The code for starting each process may also be an instruction for calling an instruction program corresponding to that process.

[0137] In this embodiment, one or more industrial devices 20 store start variables for starting the processes they should execute, and each process is started when the corresponding start variable reaches a specified value. The control program creation unit 305 creates a control program to change the start variables of each process to the specified values in the specified order on the specified screen G2. Since the control of the variables is performed by an instruction program, the control program creation unit 305 creates a control program to call an instruction program for changing the start variables of each process to a second value in a specified order.

[0138] For example, the control program creation unit 305 creates a control program based on the identification information and processing results of the previous process specified on the specified screen G2 in the previous process specification mode. The control program creation unit 305 creates a control program such that the execution instruction of the process specified as the previous process on the specified screen G2 in the previous process specification mode is sent when it becomes the processing result specified in the specified previous process. In this control program, the processing result specified as the previous process is determined as the conditional branch for the process of sending the execution instruction of the specified previous process.

[0139] In addition, any conditional branch such as ladder diagram language or robot language can be used for the conditional branch itself. In the creation program, instructions for automatically describing the circuit or code of the conditional branch are defined. The control program creation unit 305 outputs a file describing the circuit or code of the conditional branch as a control program according to the creation program. The same applies to the conditional branches to be described below.

[0140] For example, the control program creation unit 305 creates a control program based on the identification information, processing results, and combination conditions of each previous process specified in the specified screen G2 in the previous process specification mode. The control program creation unit 305 creates a control program such that an execution instruction for the processes of multiple previous processes specified in the specified screen G2 in the previous process specification mode is sent when the combination conditions of the processing results specified in each of the specified previous processes are satisfied. In this control program, as a conditional branch of the process of sending the execution instruction for the processes specified by multiple previous processes, it is determined that the processing results of each previous process become the specified combination conditions.

[0141] For example, the control program creation unit 305 creates a control program based on the processing results and the identification information of the subsequent process specified in the specified screen G2 in the subsequent process specification mode. The control program creation unit 305 creates a control program to send an execution instruction for the specified subsequent process when the process of the subsequent process specified in the specified screen G2 in the subsequent process specification mode becomes the specified processing result. In this control program, as a conditional branch of the process of sending the execution instruction for the subsequent process, it is determined that the process of the specified subsequent process becomes the specified processing result. Similar to the case where a previous process is specified, the control program creation unit 305 outputs a file describing the circuit or code of the conditional branch as a control program according to the creation program.

[0142] For example, the control program creation unit 305 creates a control program based on the processing results of each process, the processing results of other processes, the combination conditions, and the identification information of the subsequent process specified in the specified screen G2 in the subsequent process specification mode. The control program creation unit 305 creates a control program such that an execution instruction for the subsequent process with multiple processes specified in the specified screen G2 in the subsequent process specification mode is sent when the combination conditions of the processing results specified in each of the specified processes are satisfied. In this control program, as a conditional branch of the process of sending the execution instruction for the subsequent process with multiple processes specified, it is determined that the processing results of each previous process become the specified combination conditions.

[0143] For example, the control program creation unit 305 creates a control program based on the processing results and the identification information of each subsequent process specified in the specified screen G2 in the subsequent process specification mode. The control program creation unit 305 creates a control program such that an execution instruction for each of the specified subsequent processes is sent when the processes of multiple subsequent processes specified in the specified screen G2 in the subsequent process specification mode become the specified processing result. In this control program, as a conditional branch of the process of sending the execution instruction for each subsequent process, it is determined that the processes of multiple subsequent processes specified become the specified processing conditions.

[0144] For example, the control program creation unit 305 creates a control program based on the processing type of each process specified in the specified screen G2. When the control program creation unit 305 creates a control program to specify that a certain process is to be processed in parallel, the execution times of that process are not restricted. When the control program creation unit 305 creates a control program to specify that a certain process is to be processed by branching, the execution times of that process are restricted to a specified number of times (for example, once).

[0145] In addition, for example, when a concentration process is specified, the control program creation unit 305 creates a control program based on the added combination conditions. For processes for which a concentration process is not specified, the control program creation unit 305 creates a control program based on the combination conditions specified within a specified upper limit number range. For processes for which a concentration process is specified, the control program creation unit 305 creates a control program based on the combination conditions specified within the released upper limit number range.

[0146] [1-4. Processing performed in the first embodiment]

[0147] Figure 10 and Figure 11 is a diagram showing an example of the processing executed by the program creation device 30 of the first embodiment. Figure 10 and Figure 11 the processing shown is executed by the CPU 31 starting the engineering tool stored in the storage unit 32. Figure 10 and Figure 11 the processing shown is Figure 7 an example of the processing executed by the functional blocks shown. In addition, when executing the processing described below, it is assumed that an equipment information database DB1 and a process information database DB2 are generated.

[0148] As Figure 10 shown, the program creation device 30 starts the engineering tool and causes the display unit 35 to display the control program creation screen G1 (S100). The program creation device 30 determines the user's operation based on the detection signal of the operation unit 34 (S101). In S101, any one of the acceptance buttons B11 to B13 is selected.

[0149] When the user selects the button B11 (S101: B11), the program creation device 30 causes the display unit 35 to display the specified screen G2 in the previous process specification mode based on the process information database DB2 (S102). In S102, the program creation device 30 determines the process ID displayed in the drop-down menu of the input form F23A based on the process information stored in the process information database DB2. When the user has previously specified the process ID of a process, the process information corresponding to the specified process can also be displayed in each of the input forms F20 to F22.

[0150] The program creation device 30 determines the user's operation based on the detection signal of the operation unit 34 (S103). In S103, operations on the input tables F20 to F22, operations on the input table F23, operations on the input table F24, and operations on the buttons B25 to B28 are accepted.

[0151] When an operation on the input tables F20 to F22 is accepted (S103: F20 to F22), the program creation device 30 causes the input tables F20, etc. to display the designated process ID, etc. (S104). When an operation on the input table F23 is accepted (S103: F23), the program creation device 30 sets the execution conditions for the process specifying the previous process (S105). The method for the user to specify the execution conditions is as described above.

[0152] When an operation on the input table F24 is accepted (S103: F24), the program creation device 30 sets the abort conditions for the process specifying the previous process (S106). When an operation on the button B25 is accepted (S103: B25), the program creation device 30 sets the processing type of parallel processing or branch processing (S107). When an operation on the button B26 is accepted (S103: B26), the program creation device 30 sets whether there is a concentrated process (S108).

[0153] When an operation on the button B27 is accepted (S103: B27), the program creation device 30 saves the execution conditions in the process information database DB2 (S109) and returns to the process of S100. When an operation on the button B28 is accepted (S103: B28), the program creation device 30 discards the user's specified content (S110) and returns to the process of S100.

[0154] In S101, when the user selects the button B12 (S101: B11), the process transfers to Figure 11 , and the program creation device 30 causes the display unit 35 to display the designated screen G2 in the post-process specification mode (S111). The program creation device 30 determines the user's operation based on the detection signal of the operation unit 34 (S112). In S112, operations on the input tables F20 to F22, operations on the input table F23, operations on the input table F24, and operations on the buttons B25 to B28 are accepted. The processes of S113 to S119 executed when each operation is accepted are the same as the processes of S104 to S110 respectively, but the details of the process of S114 are different from the process of S105. The difference between the setting of the execution conditions in the post-process specification mode in S114 and the setting of the execution conditions in the pre-process specification mode in S105 is as described above.

[0155] In S101, when the user selects button B13 (S101: B13), the program creation device 30 creates a control program to execute each process in the specified order in the specified screen G2 (S120), and this process ends.

[0156] According to the program creation device 30 of the first embodiment, if at least one of the previous process and the subsequent process of each process is specified by the user in the specified screen G2, a control program for the control device 10 is created to execute each process in the order specified in the specified screen G2. Therefore, for example, the user does not need to perform programming using ladder diagrams or the like, and the creation of the control program can be simplified. For example, if the user specifies the previous process B as the execution condition for a certain process A in the specified screen G2, a control program is created such that process A is executed after the previous process B, so the creation of the control program can be simplified. Additionally, for example, if the user specifies that the subsequent process D is to be executed after a certain process C in the specified screen G2, a control program is created such that the subsequent process D is executed after process C (specifying process C as the execution condition for the subsequent process D, that is, process C is the previous process for the subsequent process D), so the creation of the control program can be simplified.

[0157] Furthermore, the program creation device 30 creates a control program based on the identification information and processing results of the previous processes specified in the specified screen G2, so that the user only needs to specify this information in the specified screen G2, and thus the creation of the control program can be simplified. For example, when the execution condition is a logical AND condition of the processing results of multiple previous processes for a certain process, it is easier to visualize the execution condition by specifying the previous processes compared to specifying the subsequent process. In such a case, it is particularly effective.

[0158] Moreover, the program creation device 30 creates a control program based on the identification information, processing results, and combined conditions of each of the multiple previous processes specified in the specified screen G2. Thus, even when the execution condition for a certain process is that the processing results of multiple previous processes are conditional, the creation of the control program can be simplified.

[0159] In addition, the program creation device 30 creates a control program based on the processing results of each process specified in the specified screen G2 and the identification information of the subsequent process of this process, so that the user only needs to specify this information in the specified screen G2, and thus the creation of the control program can be simplified. For example, when a specific process is to be executed collectively after each of multiple processes has been executed, it is easier to visualize the execution condition by specifying the subsequent process compared to specifying the previous process. In such a case, it is particularly effective.

[0160] In addition, the program creation device 30 creates a control program based on the processing results of each process specified in the specified screen G2, the processing results of other processes, combination conditions, and the identification information of subsequent processes. Thus, it is only necessary for the user to specify this information in the specified screen G2, so the creation of the control program can be simplified.

[0161] In addition, the program creation device 30 creates a control program based on the processing results of each process specified in the specified screen G2 and the identification information of each of the multiple subsequent processes of this process. Thus, it is only necessary for the user to specify this information in the specified screen G2, so the creation of the control program can be simplified.

[0162] In addition, the program creation device 30 can switch between the previous process specification mode and the subsequent process specification mode through a switching operation, so a user-friendly interface can be provided.

[0163] In addition, the program creation device 30 creates a program based on the processing type of each process specified in the specified screen G2. Thus, a program that can correspond to various processing types can be created, and a user-friendly interface can be provided.

[0164] In addition, by increasing the number of combinable conditions that can be specified in the concentration process, the program creation device 30 can specify more combinable conditions for the concentration process. In addition, if more combinable conditions can be specified for all processes, the register consumption increases, but by ensuring registers only in necessary processes, the register consumption can be suppressed.

[0165] In addition, the program creation device 30 can simplify the creation of a program when each process has execution conditions different from those of the control device 10.

[0166] In addition, the program creation device 30 can simplify the creation of a program when each process starts when the corresponding start variable becomes a specified value.

[0167] [2. Second Embodiment]

[0168] Next, the second embodiment will be described. In the first embodiment, a method for simplifying the creation of a control program was described, but in the second embodiment, a method for simplifying the creation of an instruction program will be described. The control program can also be created as in the first embodiment, but in the second embodiment, it is independent of the method for creating the control program. For example, the user can also create a control program using ladder diagram language or robot language instead of using the method in the second embodiment. In the second embodiment described below, the description of the same components as in the first embodiment will be omitted.

[0169] [2-1. Outline of the Second Embodiment]

[0170] The program creation device 30 of the second embodiment creates an instruction program for instructing an industrial device, i.e., the control device 10, to instruct a specified action to another industrial device 20. Since the control device 10 is a type of industrial device, from the perspective of the control device 10, Figure 1 the industrial device 20 can be referred to as another industrial device. In the following description, although not described as other industrial devices 20, the part described only as the industrial device 20 can be replaced with other industrial devices 20.

[0171] The process described in the first embodiment is an example of a specified action. The specified action is not limited to a process, as long as it is an action that the industrial device 20 can execute. The action is not limited to physical processing such as the movement of the robot 24, and can also be software processing executed inside the industrial device 20. For example, the specified action can also be the preparation of a process, the output of the execution result of a process, or the analysis of the execution result of a process. The specified action can also be referred to as an operation or a task.

[0172] In the second embodiment, a configuration file is prepared as an interface for connecting the control device 10 and the industrial device 20. The configuration file can be the same as the communication protocol and defines the communication process and the form of data. Based on the configuration file, the control device 10 sends an instruction for executing a specified action to the industrial device 20. The industrial device 20 understands the received instruction based on the configuration file and executes the specified action. The response of the industrial device 20 to the control device 10 is also executed according to the configuration file. The configuration file is included in the engineering tool.

[0173] A configuration file that is common regardless of the type of industrial device 20 can be prepared, or a configuration file corresponding to the type of industrial device 20 can be prepared. In the second embodiment, the case where a configuration file is prepared only for the robot controller is described, but a configuration file can also be prepared for other types of industrial devices 20. Therefore, in the second embodiment, the control device 10 controls the industrial device 20A according to the configuration file. When the control device 10 controls the industrial device 20B, this configuration file is not used.

[0174] Similar to the first embodiment, in the registers of the control device 10, a part of the register range is allocated for controlling the industrial device 20. The register range allocated for controlling the industrial device 20A is defined as the configuration file. That is, the configuration file contains structure data that defines what is stored where in the register. In this embodiment, the part of the structure data included in the configuration file that is mainly used to indicate a specified action is described.

[0175] Figure 12 is a diagram showing a part of the structure data included in the configuration file. AsFigure 12 As shown, a register system in a configuration file is defined in the structure data. In addition, for example, in the structure data, the relationship between the offset of the register number included in the register range and the information stored in the register number is shown. The offset is the register number based on the starting register number. That is, the offset is the register number counted from the starting register number or the relative register number with respect to the starting register number.

[0176] For example, the register range for controlling the industrial device 20A is the address obtained from the starting register number specified for the industrial device 20A up to the last register number plus the offset defined in the structure data. For example, if the offsets from 0 to 4259 are defined in the structure data and the starting register number specified for the industrial device 20A is 5000, the address range for control allocated to the industrial device 20A is from 5000 to 9259.

[0177] In Figure 12 the example of, the instruction request ID is stored in the offsets from 1115 to 1116. The instruction request ID is an example of the request information. In this embodiment, it is illustrated that the part of the instruction request ID can be replaced with the request information. The request information is the information for requesting the industrial device 20 to execute an instruction. The instruction sent to the industrial device 20 is executed when the request information is updated. That is, even if some instruction is sent to the industrial device 20, the execution of the instruction is waited for until the request information is updated. In this embodiment, the case where the instruction request ID is a numerical value and is updated by incrementing is described, but the request information can be in any form other than an ID.

[0178] The main instruction is stored in the offset 1117. The main instruction is the information indicating the function requested by the industrial device 20 among the multiple functions that the industrial device 20 has. In this embodiment, three functions are prepared: the robot control function for controlling the robot 24, the monitoring function for monitoring the actions of the robot 24, and the collection function for collecting data related to the actions of the robot 24. The main instruction is a value indicating any one of them. In addition, the industrial device 20 may have only a single function. In this case, the main instruction can be omitted.

[0179] The sub-instruction is stored in the offset 1118. The sub-instruction is the information indicating the action requested by the industrial device 20 among the multiple actions that the industrial device 20 can execute. In this embodiment, multiple actions are prepared for each function indicated by the main instruction. The sub-instruction indicates any one of the multiple actions prepared for the function indicated by the main instruction. That is, in this embodiment, the specific action executed by the industrial device 20 is determined by the combination of the main instruction and the sub-instruction.

[0180] The offset numbers from 1119 to 1600 are ensured to be the instruction data area. Details of the actions requested by the industrial equipment 20 are stored in the instruction data area. For example, if it is an instruction for job selection, the job name and the start part of the job are stored in the instruction data area. In addition to this, data such as parameters required for the execution of the job can also be stored in the instruction data area. Also, for example, if it is an instruction for power control, data indicating whether to turn on or off the power is stored in the instruction data area. The same applies to other instructions. As needed, data representing the details of the instruction can be stored in the instruction data.

[0181] Figure 13 It is a diagram showing an example of the main instruction, sub-instruction, and data stored in the instruction data area. Figure 13 The relationship shown is also defined as a profile. In Figure 13 the example, a main instruction of "1" means the robot control function. A main instruction of "2" means the monitoring function. A main instruction of "3" means the collection function. For each value of these three main instructions, sub-instructions representing the details of the processing in each function are defined. In the sub-instructions, the specific processing contents in the function represented by the corresponding main instruction are shown.

[0182] For example, if it is a main instruction for the robot control function, sub-instructions for the reset of the alarm, power control, selection of the process program, mode switching, execution of the process program, and robot movement to the target position are prepared. In addition, the sub-instructions for the robot control function are not limited to Figure 13 the example. For example, sub-instructions such as holding stop, locking of the HMI, cycle change, and robot movement specifying the pulses of each axis, or sub-instructions equivalent to instructions such as MOVE or WAIT in the robot language can also be prepared. Similarly for the main instructions of the monitoring function and the collection function, sub-instructions corresponding to these functions are prepared.

[0183] As Figure 13 shown, the data stored in the instruction data area is different depending on the combination of the main instruction and the sub-instruction. In the instruction data area, data defining which register number to refer to (what data is stored in which register number) is stored in each of the control device 10 and the industrial equipment 20A.

[0184] For example, "job selection" represented by the combination of the main instruction "1" and the sub-instruction "3" saves the name of the job in the register with the specified register number in the instruction data area because it is necessary to determine the job of the selection target. During the execution process, the process program is equivalent to the job. When starting the execution in the middle of the job, the start part of the job is saved in the register with the specified register number in the instruction data area. As in the case of "job execution" represented by the combination of the main instruction "1" and the sub-instruction "5", there is also a case where the instruction data area is not used.

[0185] Figure 14 It is a diagram showing an example of the change of variables when selecting and executing a job. In Figure 14 it shows the change of the instruction request ID, the main instruction, the sub-instruction, and the instruction data area in the register range of the control device 10 assigned to the control of the industrial device 20A. In Figure 14 the example of, before the execution of the control program, as the initial state, the instruction request ID is "0" and no data is saved in other areas.

[0186] When the control program starts, in order to make the industrial device 20 perform job selection, the value representing the robot control function (for example, 1) is written as the main instruction, and the value representing the process program selection (for example, 3) is written as the sub-instruction. After ensuring that the name of the job (in Figure 14 it is "job AAA". When the process program is equivalent to the job, it is the name of the process program) and the start part of the job (in Figure 14 it is the third line) are written in the register as the instruction data area. When the above writing is completed, the instruction request ID is incremented in order to make the industrial device 20 select the process program.

[0187] The control device 10 sends the data equivalent to the above register range to the industrial device 20. When the industrial device 20 receives the transmitted data, it judges whether the instruction request ID increases. Among them, since the instruction request ID increases from "0" to "1", the main instruction and the sub-instruction are executed, and the job represented by the program name is read. When the start part is specified, the industrial device 20 reads the job after its start part. At this time point, the read job has not been executed yet.

[0188] The control device 10 receives the response representing the execution results of the main instruction and the sub-instruction from the industrial device 20. The control device 10 receives the response and confirms the rationality of the execution result. If the rationality is confirmed, then in order to instruct the industrial device 20 to execute the job, the value representing the robot control function (for example, 1) is written as the main instruction, and the value representing the job execution (for example, 5) is written as the sub-instruction. In the register ensured as the instruction data area, no data is written and the instruction request ID is incremented.

[0189] The control device 10 sends data equivalent to the above register range to the industrial device 20. When the industrial device 20 receives the sent data, it determines whether the instruction request ID is incremented. Among them, since the instruction request ID is incremented from "1" to "2", the main instruction and the sub-instruction are executed, and the process program after the reading is executed.

[0190] As described above, in the second embodiment, the control device 10 uses the instruction request ID, the main instruction, the sub-instruction, and the instruction data area to cause the industrial device 20 to perform a specified operation. Since the instruction from the control device 10 to the industrial device 20 is given according to the configuration file, a certain degree of format is determined. Therefore, for the ladder diagram and other circuits when creating the instruction program, a certain degree of format is also determined. In other words, in the process of sending instructions using the main instruction and the sub-instruction, no matter which user creates the instruction program, the possibility of describing the same circuit or code is relatively high.

[0191] Therefore, in this embodiment, a template of the instruction program is prepared in advance, and the template can be used when the user creates the instruction program. For example, when the user starts the engineering tool installed in the program creation device 30, a user interface for creating the instruction program, that is, an instruction program creation screen, is displayed on the display unit 35.

[0192] Figure 15 It is a diagram showing an example of the instruction program creation screen. As Figure 15 shown, a list L30 of the processes executed by the industrial device 20A, which is the destination of the instruction sent by the instruction program, is displayed on the instruction program creation screen G3. In the Figure 15 example, Figure 2 processes p1 to p3 and p6 to p7 among the processes p1 to p7 are executed by the industrial device 20A. In the second embodiment, a template can be used to create an instruction program for instructing each process. Hereinafter, the case of creating an instruction program for instructing process p2 will be described as an example.

[0193] For example, when executing process p2, it is necessary to select the process program and execute the process program. In this case, the user needs to operate the register through the Figure 14 described process. The user can use the template to create an instruction program for performing such register operations. For example, the user creates an instruction program for process p2 by using a template that defines the selection order of the process program as an example of the operation and a template that defines the execution order of the process program.

[0194] Figure 16 It is a diagram showing the situation of selecting a template from the instruction program creation screen G3. When the user selects process p2 from the list L30 on the instruction program creation screen G3 and clicks the button B31, as Figure 16As shown, a list L33 of display templates. In the list L33, for each action that the industrial equipment 20 can perform, selectable templates are displayed.

[0195] In this embodiment, actions are mainly indicated by main instructions and sub-instructions. Therefore, as Figure 16 shown, in the list L33, templates are displayed for each combination of main instructions and sub-instructions. When executing the process p2, it is first necessary to select a process program. Therefore, the user selects a template for job selection from the list L33 and selects the button B34. In addition, when the user selects the button B35, an instruction program can be created without using a template.

[0196] Figure 17 is a diagram showing an example of an instruction program creation screen G3 when a template is selected. As Figure 17 shown, in the instruction program creation screen G3, a ladder diagram for creating an instruction program for the process p2 is displayed in the editing area A36. In Figure 17 the example, the template for job selection selected by the user is expanded in the editing area A36. The template contains an instruction that sets the main instruction ( Figure 17 the variable “MainCmd” in Figure 17 ) to “1”, an instruction that sets the sub-instruction ( Figure 17 the variable “SubCmd” in Figure 17 ) to “3”, an instruction that specifies the name of a certain process program in the instruction data area ( Figure 17 the variable “CmdDataArea” in Figure 17 ), and an instruction that increments the instruction request ID ( Figure 17 the variable “CmdReqid” in Figure 17 ).

[0197] The user can edit the circuit of the ladder diagram shown in the template. For example, in the template, since the name of the process program is not described, the user describes the name of the process program (for example, a name like p2). In this way, by using the template, the user can create a ladder diagram for selecting a process program by only describing the name of the process program. When the user selects the button B37, the list L33 is displayed again. The user selects a template for job execution from the list L33.

[0198] Figure 18 is a diagram showing an example of an instruction program creation screen G3 when a template is further selected. As Figure 18 shown, the template for job execution selected by the user is expanded in the editing area A36. The template contains an instruction that sets the main instruction to “1”, an instruction that sets the sub-instruction to “5”, and an instruction that increments the instruction request ID. As described above, since nothing can be saved in the instruction area, the user can complete the creation of the ladder diagram for the process p2 only by expanding the template. In this way, even when multiple templates are required, the user can create a ladder diagram by continuously expanding the templates.

[0199] As described above, the program creation device 30 of the present embodiment causes a template corresponding to the action selected by the user to be displayed on the instruction program creation screen G3. Since the user can use the template to create an instruction program, the creation of the instruction program can be simplified. Hereinafter, the details of the control system 1 of the present embodiment will be described.

[0200] [2-2. Functions Implemented in the Second Embodiment]

[0201] Figure 19 is a functional block diagram of the second embodiment. As Figure 19 shown, in the program creation device 30 of the second embodiment, a data storage unit 300, a process information acquisition unit 301, a designated screen display control unit 302, a control program creation unit 305, a template acquisition unit 306, a creation screen display control unit 307, and an instruction program creation unit 308 are implemented. The template acquisition unit 306, the creation screen display control unit 307, and the instruction program creation unit 308 are mainly implemented by the CPU 31 respectively.

[0202] In addition, the program creation device 30 may also include the reception unit 303 and the condition addition unit 304 described in the first embodiment. The functions of the control device 10 and the industrial equipment 20 may be the same as those in the first embodiment. However, in the second embodiment, processing using the instruction request ID, main instruction, sub instruction, and instruction data area as Figures 12 to 14 described is performed between the industrial equipment control unit 101 and the process execution unit 201.

[0203] [Data Storage Unit]

[0204] The data storage unit 300 of the second embodiment stores data required for creating an instruction program. For example, the data storage unit 300 stores a template database DB3. In addition, other data stored in the data storage unit may be the same as that in the first embodiment. The data storage unit of the second embodiment may not store the data described in the first embodiment.

[0205] Figure 20 is a diagram showing an example of the template database DB3. As Figure 20 shown, the template database DB3 is a database that stores templates corresponding to each of a plurality of actions executable by the industrial equipment 20. For example, main instructions, sub instructions, and templates are stored in the template database DB3. In addition, the template can be created by any language such as ladder diagram language or robot language. The data format of the template only needs to conform to the format of these languages.

[0206] The template can be created by the user as in the following modification examples, but in the second embodiment, the template is prepared in advance. For example, the template is prepared by a company that provides engineering tools. In the template for a certain action, it includes: an instruction for saving the main instruction corresponding to the action in the register for saving the main instruction; and an instruction for saving the sub-instruction corresponding to the action in the register for saving the sub-instruction.

[0207] In the template for an action that requires saving certain information in the instruction data area, it includes an instruction for saving the necessary information in a specified register number in the instruction data area. The information to be saved in the instruction data area should be specified by the user. Where to specify this information in the template should also be included in the template as a comment. In this embodiment, in order to execute the instruction from the control device 10, it is necessary to update the instruction request ID, so each template includes an instruction for updating the instruction request ID.

[0208] In addition, it is not necessary to prepare a template for each combination of the main instruction and the sub-instruction. For example, when the main instruction and the sub-instruction are not used, it is also possible to prepare templates for each action (process) such as loading, measuring, and machining. In this case, the basic sequence for indicating these actions is described in the template. If the name of the operation for indicating the action is predetermined, the name of the operation can also be included in the template. The template can include a string representing the instruction for indicating the action.

[0209] [Template acquisition unit]

[0210] The template acquisition unit 306 acquires the template corresponding to each of the multiple actions. In this embodiment, since the template is stored in the template database DB3, the template acquisition unit 306 acquires the template stored in the template database DB3. For example, the template acquisition unit 306 acquires the template corresponding to the action selected in the instruction creation screen G3. The template can also be included in a database other than the template database DB3. In addition, the template can also be stored in a computer other than the program creation device 30.

[0211] In this embodiment, a part of the register range of the registers of the control device 10 is allocated for the control of the industrial device 20. Therefore, the control device 10 saves the instruction for the industrial device 20 in a specified register included in the register range and sends the saved instruction to the industrial device 20. In each template, the specified register includes information for saving the action information that can identify the corresponding action as an instruction. This information can be in any form. For example, if it is ladder diagram language, it is a circuit such as a coil, and if it is robot language, it can be an instruction. In addition, for example, this information can include a numerical value representing the register address or can include text representing supplementary explanations.

[0212] In a prescribed register, a main instruction that indicates one of the multiple functions of the industrial device 20 and a sub-instruction that requests an operation within that function are saved as indications. In each template, the prescribed register contains information for saving the main instruction and the sub-instruction as operation information. This information includes the register address corresponding to the main instruction, the specific value of the main instruction, the register address corresponding to the sub-instruction, and the specific value of the sub-instruction. In addition, for example, this information may also include text representing supplementary explanations.

[0213] In the area corresponding to the combination of the main instruction and the sub-instruction in the prescribed register, detailed information related to the details of the operation corresponding to the sub-instruction is saved. In the template for the operation that requires detailed information, there is information for saving the detailed information related to the details of this operation in the area. This detailed information includes the register address corresponding to the instruction data area and the specific information to be saved in the instruction data area. In addition to this, for example, this detailed information may also include text representing supplementary explanations.

[0214] An instruction request ID for requesting an execution indication is saved in a prescribed register. When the request information is updated, the industrial device 20 executes the indication. In each template, there is information for updating the instruction request ID saved in the prescribed register. This information includes an instruction for incrementing the instruction request ID. In addition, for example, this information may also include text representing supplementary explanations.

[0215] The industrial device 20 saves the indication received from the control device 10 in its own prescribed register, and refers to the indication saved in the prescribed register to execute the operation corresponding to the indication. Therefore, in each template, there can also be information for saving the indication to the industrial device 20 in the prescribed register of the industrial device 20. That is, since the main instruction and the sub-instruction are saved in the prescribed register of the industrial device 20, the template contains information for saving the indication of this content.

[0216] Among the multiple operations, there are an operation selection operation for selecting the operation to be executed by the industrial device 20 and an operation start operation for starting the operation selected by the operation selection operation. In the templates for each of the multiple operations, there are a template corresponding to the operation selection operation and a template corresponding to the operation start operation. A process program is an example of an operation. An operation only needs to be a unit of a certain operation and can also be an operation other than a process program.

[0217] The control device 10 can control each of a plurality of industrial devices 20 of different types, and the template acquisition unit 306 acquires a template corresponding to the selected type among the plurality of types that the control device 10 can control. In the present embodiment, since a template is prepared for the robot controller, when the industrial device 20 for creating the instruction program is the robot controller, the template acquisition unit 306 acquires the template. In the case where templates are also prepared for other types of industrial devices 20 such as processing devices, the template acquisition unit 306 may acquire a template corresponding to the type of the industrial device 20 for creating the instruction program.

[0218] [Creation screen display control unit]

[0219] The creation screen display control unit 307 causes the instruction program creation screen G3 to display a template corresponding to the action selected from among the plurality of actions. The creation screen display control unit 307 causes the editing area A36 of the instruction program creation screen G3 to display a template corresponding to the action selected by the user. The editing area A36 is an area for performing editing such as ladder diagram editing or coding, and is a part equivalent to the editor of the instruction program. The user can perform arbitrary editing on the template expanded in the editing area A36. Editing means adding, deleting, or changing descriptions such as circuits or codes.

[0220] [Instruction program creation unit]

[0221] The instruction program creation unit 308 creates an instruction program for instructing the selected action based on the operation performed on the template displayed on the instruction program creation screen G3. When the template is not edited, the instruction program creation unit 308 directly creates an instruction program from the template, and when the template is edited, it creates an instruction program based on the edited content. The method of creating an instruction program based on a ladder diagram or code itself can use a known method. If it is a language that requires conversion such as compilation, the instruction program can be created through conversion such as compilation.

[0222] In the present embodiment, the industrial device 20A is a robot controller, and the robot controller can execute each of a plurality of actions based on each of a plurality of robot programs created in the first language and stored in itself. Each template is described in the second language, and the instruction program creation unit 308 creates an instruction program in the second language. In the present embodiment, the first language is a robot language, and the second language is a ladder diagram language. The first language and the second language can be any languages, and are not limited to the examples of the present embodiment.

[0223] [Recording unit]

[0224] Each operation is a process executed by the industrial equipment 20. The recording unit 309 associates the instruction program with the process information related to the corresponding process and records it in the data storage unit 300. As described in the first embodiment, process information such as information related to the instruction program corresponding to a certain process is stored in the process information database DB2. Therefore, the recording unit 309 associates the information related to the instruction program created by the instruction program creation unit 308 with process information such as the process ID related to the corresponding process and stores it in the process information database DB2.

[0225] [Specified Screen Display Control Unit / Control Program Creation Unit]

[0226] The specified screen display control unit 302 displays a specified screen G2 that specifies at least one of the previous process and the subsequent process of each process based on the process information. The control program creation unit 305 creates a control program for the control device 10 to call the instruction programs corresponding to the respective processes in the order specified in the specified screen. The functions of the specified screen display control unit 302 and the control program creation unit 305 can be the same as those in the first embodiment. In order to display the specified screen G2, the process information acquisition unit 301 may also be included in the program creation device 30.

[0227] [2-3. Processing Performed in the Second Embodiment]

[0228] Figure 21 It is a diagram showing an example of the processing executed by the program creation device 30 of the second embodiment. Figure 21 The shown processing is executed by the CPU 31 starting the engineering tool stored in the storage unit 32. Figure 21 The shown processing is an example of the processing executed by Figure 19 the shown functional blocks. In addition, when the following-described processing is executed, it is assumed that the equipment information database DB1 and the process information database DB2 are generated.

[0229] As Figure 21 shown, the program creation device 30 starts the engineering tool and causes the display unit 35 to display the instruction program creation screen G3 (S200). The program creation device 30 determines the user's operation based on the detection signal of the operation unit 34 (S201). In S201, an operation of accepting the process of the selection list L30 and selecting the button B31, or an operation of selecting the button B32 is accepted.

[0230] When the user selects a process from the list L30 and selects the button B31 (S201; L30, B31), the program creation device 30 displays a list L33 of templates corresponding to each of the multiple actions (S202), and accepts the selection of the action to expand the template (S203). The program creation device 30 displays an editing area A36 for creating an instruction program for the selected process (S204).

[0231] The program creation device 30 determines the user's operation based on the detection signal of the operation unit 34 (S205). In S205, an operation on the editing area A36 or a selection of one of the buttons B37 to B36 is accepted. When the user operates on the editing area A36 (S205: A36), the program creation device 30 edits the ladder diagram based on the user's operation (S206).

[0232] When the user selects the button B37 (S205: B37), the program creation device 30 displays a list L33 of templates corresponding to each of the multiple actions (S207), and accepts the selection of the action to expand the template (S208). The program creation device 30 expands the template of the selected action in the editing area A36 (S209), and returns to the process of S205.

[0233] When the button B35 is selected (S205: B38), the program creation device 30 creates an instruction program corresponding to the ladder diagram displayed in the editing area A36 (S210). When the button B36 is selected (S205: B36), the program creation device 30 discards the ladder diagram displayed in the editing area A36 (S211), and returns to the process of S200. In S201, when the button B32 is selected (S201: B32), this process ends.

[0234] According to the program creation device 30 of the second embodiment, on the instruction program creation screen G3, the template corresponding to the selected action among the templates corresponding to each of the multiple actions is displayed. Based on the operation of the displayed template, by creating an instruction program for instructing the selected action, the user does not need to program from scratch using a language such as a ladder diagram, and can simplify the creation of the instruction program. For example, when programming the control device 10 that controls the robot controller, there may be a situation where the language on the robot controller side is different from the language on the control device 10 side. Most users are used to the language on the robot controller side and are not used to the language on the control device 10 side. In such a case, by preparing templates for each action that the robot controller can execute, even users who are not used to the language on the control device 10 side can easily create an instruction program. It can effectively assist users who are not used to the language on the control device 10 side in creating an instruction program.

[0235] In addition, there is a case where the program creation device 30 determines a configuration file as an interface with the control device 10 through the industrial device 20. In the configuration file, the steps required to make the industrial device 20 perform the desired operation are determined to a certain extent. For example, when steps such as saving an instruction in a specified register and sending the instruction are defined in the configuration file, by including in each template information for saving action information that can identify the corresponding action as an instruction in the specified register, the creation of the instruction program can be more simplified.

[0236] In addition, the program creation device 30 can more simplify the creation of the instruction program by including in the template information for saving the main instruction and the sub-instruction as action information in the specified register.

[0237] In addition, when the program creation device 30 needs to set detailed information related to the details of the action in a specified area according to the sub-instruction, in such a case, by including in the template information for storing the detailed information in the specified area, the creation of the instruction program can also be more simplified.

[0238] In addition, when the program creation device 30 executes an instruction from the industrial device and updates of the request information are conditional, by including in the template information for updating the request information, the creation of the instruction program can be more simplified.

[0239] In addition, there is a case where the program creation device 30 determines a configuration file as an interface with the control device 10 through the industrial device. In the configuration file, the steps required to make the industrial device 20 perform the desired operation are determined to a certain extent. For example, when an instruction is stored in a specified register of the industrial device 20 and the industrial device 20 executes an action by referring to this register, by including in each template information for saving information related to the corresponding action in the specified register, the creation of the instruction program can be more simplified.

[0240] In addition, when the industrial device executes a job selection action and a job start action respectively, the program creation device 30 can more simplify the creation of the instruction program by preparing respective templates.

[0241] In addition, when the industrial device can control each of multiple types of devices, the program creation device 30 can provide a template corresponding to the type of device that the user wants to set by acquiring and displaying a template corresponding to the selected type.

[0242] In addition, even if the user is not accustomed to the second language, the program creation device 30 can easily create a program using the template.

[0243] In addition, the program creation device 30 can simplify the creation of the control program in the same manner as in the first embodiment by including a control program creation unit 305 and the like.

[0244] [3. Variation Example]

[0245] Furthermore, the present invention is not limited to the embodiments described above. Appropriate modifications can be made without departing from the gist of the present invention.

[0246] [3-1. Variation Example of the First Embodiment]

[0247] Figure 22 is a functional block diagram of a variation example related to the first embodiment. As Figure 22 shown, a determination unit is implemented. The determination unit 310 is mainly implemented by the CPU 31. Based on the execution conditions of each process, the determination unit 310 determines which one of the previous process designation mode for designating the previous process in the designated screen G2 and the subsequent process designation mode for designating the subsequent process in the designated screen G2 is to be set. That is, the determination unit 310 selects either the previous process designation mode or the subsequent process designation mode based on the execution conditions of each process.

[0248] The relationship between the execution conditions and the previous process designation mode or the subsequent process designation mode is predefined in the data storage unit 300. The determination unit 310 sets the mode associated with the execution conditions of a certain process among these two modes. For example, if a process designates multiple previous processes as execution conditions, the subsequent process designation mode is easier to edit, so the determination unit 310 determines the process with this execution condition as the subsequent process designation mode. Additionally, for example, if a process designates one previous process as an execution condition, the previous process designation mode is easier to edit, so the determination unit 310 determines the process with this execution condition as the previous process designation mode. The designated screen display control unit 302 displays the designated screen G2 based on the set mode.

[0249] According to the above variation example, by determining which one of the previous process designation mode and the subsequent process designation mode is to be set based on the execution conditions of each process, a user-friendly interface can be provided. For example, if the current execution conditions of a certain process are conditions where the previous process designation mode is more easily visualized, the previous process designation mode is set, and if the current execution conditions of a certain process are conditions where the subsequent process designation mode is more easily visualized, the subsequent process designation mode is set. In this way, different modes can be used according to the process.

[0250] [3-2. Variation Example of the Second Embodiment]

[0251] (2-1) The template can be in text format or changed to ladder diagram format when instructing the program to create the screen G3 display. The text format is an example of the first format. The ladder format is an example of the second format. That is, the data in the first format is a text file with an extension such as ".txt". The data in the second format is a ladder diagram file with an extension such as ".cxp". The first format and the second format can be any data formats that can be converted into each other, not limited to the examples of this embodiment. For example, the first format can also be csv format, and the second format can also be robot language format.

[0252] The screen display control unit 307 converts the text format data into the display mode of ladder diagram format data and displays the obtained template on the instruction program creation screen G3. Since the template is created as text format data, the instruction program creation unit 308 only needs to use a known application program that converts text format data into ladder diagram format data to create the instruction program. Similarly, when using formats other than text format and ladder diagram format, the first format and the second format only need to be transformed through known applications.

[0253] According to the modification example (2-1), the program creation device 30 can use an application that converts text format data into ladder diagram format data to create an instruction program.

[0254] (2-2) Figure 23 It is a functional block diagram of a modification example related to the second embodiment. As Figure 23 shown, a template creation unit 311 is implemented. The template creation unit is mainly implemented by the CPU 31. The template creation unit 311 creates templates corresponding to each action. The user specifies the action for creating a template and uses an editor such as ladder diagram language or robot language to create the template. The template creation unit 311 obtains the ladder diagram or code based on the user's operation and saves the ladder diagram or code as a template in the template database. The template acquisition unit 306 acquires the template created by the template creation unit.

[0255] According to the modification example (2-2), by enabling the user to create a template, the best template corresponding to the user can be provided.

[0256] [3-3. Other modification examples]

[0257] In addition, for example, the first embodiment and the second embodiment can be combined, or the above modification examples can be combined.

[0258] In addition, for example, each of the functions described above may be implemented by any device in the control system 1. For example, the robot controller is equivalent to the control device, and the functions already described included in the control device 10 may also be implemented by the robot controller. In addition, for example, the functions already described included in the control device 10 may also be shared by multiple devices.

[0259] In addition, the embodiments described above are shown as specific examples, and the invention disclosed in this specification is not limited to the structures of these specific embodiments and the data storage examples themselves. Those skilled in the art can also make various modifications to these disclosed embodiments. For example, they can change the shape, quantity, data structure, and execution order of the processing of the physical structure. It should be understood that the technical scope disclosed in this specification also includes such modifications.

[0260] Reference Signs

[0261] 1: Control system

[0262] 10: Control device

[0263] 20: Industrial equipment

[0264] 24: Robot

[0265] 30: Program creation device

[0266] 11, 21, 31: CPU

[0267] 12, 22, 32: Storage unit

[0268] 13, 23, 33: Communication unit

[0269] 24: Robot

[0270] 34: Operation unit

[0271] 35: Display unit

[0272] G1: Control program creation screen

[0273] G2: Designation screen

[0274] G3: Instruction program creation screen

[0275] p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11: Processes

[0276] 100: Data storage unit

[0277] 101: Industrial equipment control unit

[0278] 200: Data storage unit

[0279] 201: Process Execution Department

[0280] 300: Data Storage Department

[0281] 301: Process Information Acquisition Department

[0282] 302: Specified Screen Display Control Department

[0283] 303: Receiving Department

[0284] 304: Condition Adding Department

[0285] 305: Control Program Creation Department

[0286] 306: Template Acquisition Department

[0287] 307: Creation Screen Display Control Department

[0288] 308: Instruction Program Creation Department

[0289] 309: Recording Department

[0290] 310: Determination Department

[0291] 311: Template Creation Department

[0292] A10: Display Area

[0293] A36: Editing Area

[0294] B11, B12, B13, B23D, B23E, B23J, B23K, B25, B26, B27, B28, B31, B32, B34, B35, B36, B37: Buttons

[0295] B23H: Checkbox

[0296] DB1: Equipment Information Database

[0297] DB2: Process Information Database

[0298] DB3: Template Database

[0299] F20, F23, F23A, F23B, F23C, F23F, F23G, F23I, F24: Input Tables

[0300] L30, L33: Lists

Claims

1. A program creation device, comprising: A process information acquisition unit that acquires process information related to each of a plurality of processes performed by one or more industrial devices; A designated screen display control unit that displays a designated screen based on the process information of each process, the designated screen designating at least one of the previous process and the subsequent process of each process; And An acceptance unit that accepts a switching operation between a previous process designation mode and a subsequent process designation mode, the previous process designation mode being a mode in which at least one of the previous processes is designated in the designated screen, and the subsequent process designation mode being a mode in which at least one of the subsequent processes is designated in the designated screen, The designated screen display control unit switches the previous process designation mode and the subsequent process designation mode based on the switching operation, The program creation device further includes a control program creation unit that creates a control program for a control device that controls the one or more industrial devices so that each process is executed in the order designated in the designated screen.

2. The program creation device according to claim 1, wherein, In the designated screen, the identification information and processing result of the previous process are designated as the execution conditions for each process, The control program creation unit creates the control program based on the identification information and the processing result designated in the designated screen.

3. The program creation device according to claim 2, wherein, In the designated screen, the identification information, processing result, and combination conditions of each of a plurality of previous processes are designated as the execution conditions, The control program creation unit creates the control program based on the identification information, the processing result, and the combination conditions of each previous process designated in the designated screen.

4. The program creation device according to any one of claims 1 to 3, wherein, In the designated screen, the processing result of each process and the identification information of the subsequent process of that process are designated as the execution conditions for the subsequent process, The control program creation unit creates the control program based on the processing result of each process and the identification information of the subsequent process designated in the designated screen.

5. The program creation device according to claim 4, wherein, In the designated screen, the processing result of each process, the processing result of other processes, the combination conditions between each of these processes and the other processes, and the identification information of the subsequent process are designated as the execution conditions, The control program creation unit creates the control program based on the processing result of each process, the processing result of other processes, the combination conditions between each process and the other processes, and the identification information of the subsequent process designated in the designated screen.

6. The program creation device according to claim 4, wherein, In the designated screen, the processing result of each process and the identification information of each of a plurality of subsequent processes of that process are designated as the execution conditions for each subsequent process, The control program creation unit creates the control program based on the processing result of each process and the identification information of each subsequent process designated in the designated screen.

7. The program creation device according to any one of claims 1 to 3, wherein, In the specified screen, it is possible to specify parallel processing or branch processing as the processing type of each process. The control program creation unit creates the control program based on the processing type of each process specified in the specified screen.

8. The program creation device according to any one of claims 1 to 3, wherein in the specified screen, it is possible to specify whether each process is a centralized process. The program creation device further includes a condition addition unit that, when the centralized process is specified, increases the number of combined conditions that can be specified in the centralized process. When the centralized process is specified, the control program creation unit creates the control program based on the increased combined conditions.

9. The program creation device according to any one of claims 1 to 3, wherein the program creation device further includes a determination unit that determines which of the pre-process specification mode and the post-process specification mode is set based on the execution conditions of each process. The pre-process specification mode is a mode in which the pre-process is specified in the specified screen, and the post-process specification mode is a mode in which the post-process is specified in the specified screen. The specified screen display control unit displays the specified screen based on the set mode.

10. The program creation device according to any one of claims 1 to 3, wherein the control device sends an execution instruction for each process to the one or more industrial devices based on the control program. The one or more industrial devices execute the processes they should execute based on execution conditions different from receiving the execution instruction from the control device.

11. The program creation device according to any one of claims 1 to 3, wherein the one or more industrial devices store start variables for starting the processes they should execute. Each process is started when the corresponding start variable reaches a specified value. The control program creation unit creates the control program so that the start variables of each process are changed to the specified values in the order specified in the specified screen.

12. A program creation method, comprising: acquiring process information related to each of a plurality of processes executed by one or more industrial devices; displaying a specified screen based on the process information of each process, the specified screen specifying at least one of the pre-process and the post-process of each process; accepting a switching operation between a pre-process specification mode and a post-process specification mode, the pre-process specification mode being a mode in which at least one of the pre-processes is specified in the specified screen, and the post-process specification mode being a mode in which at least one of the post-processes is specified in the specified screen; and switching the pre-process specification mode and the post-process specification mode based on the switching operation. The program creation method further includes creating a control program for a control device that controls the one or more industrial devices so that each process is executed in the order specified in the specified screen.

Citation Information

Patent Citations

  • Programming apparatus and programming method

    JP2011238041A

  • Generating device and controller for order sequence program

    JP1997073307A

  • Program creation device, program creation method, and program

    JP6761158B1