Data processing equipment, data processing procedures and data processing program
The data processing facility automates the generation of manufacturing equipment programs in state transition and event control notations, addressing the challenge of lengthy development times by mirroring control processes, thus enhancing efficiency and maintainability.
Patent Information
- Application Number
- DE112023005576
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-03-17
- Publication Date
- 2025-12-04
AI Technical Summary
The complexity of manufacturing equipment programs, particularly those using IEC 61131-3 standard ladder logic, leads to increased development time due to the lack of established methods for easily describing programs in state transition and event control notations, necessitating developers to create all programs from scratch.
A data processing facility that includes a tax transaction data acquisition unit, first and second subprogram generation units, and a program generation unit to automatically generate programs using state transition and event control notations based on control operations, reducing development time by mirroring control processes.
This approach allows for the generation of programs that reflect control processes in a familiar format, thereby reducing development time while maintaining equipment maintainability.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical field
[0001] The present disclosure relates to the generation of a program. Background on the state of the art
[0002] The present disclosure mainly describes the generation of a control program (hereinafter referred to simply as the program) that is primarily used in manufacturing equipment, etc.
[0003] Manufacturing equipment is controlled by control units such as a PLC (Programmable Logic Controller). The specifics of a control system vary depending on the particular manufacturing equipment. Therefore, the developers of manufacturing equipment and / or devices for configuring the manufacturing equipment develop a program according to the control specifications available to them. The PLC program often uses a language primarily defined in the IEC 61131-3 standard, with ladder logic being the most common.
[0004] As the complexity of manufacturing equipment increases, so does the program volume of PLC programs, leading to a rise in development time. Technologies that support PLC program development are disclosed, for example, in patents 1 to 3. Reference list of patent literature Patent literature 1: JP 3426405 B Patent Literature 2: JP Hei5-173609 A Patent Literature 3: JP 2021-149853 A Summary of the invention: Technical problem
[0005] When a problem occurs in manufacturing equipment, the equipment maintenance personnel usually check the program to determine the cause. For example, they check the value of each variable in the program when the problem occurs. Therefore, the control equipment program must be written in such a way that it is easily understandable for people other than the program developers, while simultaneously functioning according to the required specifications.
[0006] In ladder logic programming languages, the state transition notation (Reference 1) and the step control notation (Reference 2) are sometimes used. Hereinafter, both will be referred to collectively as the state transition notation. Reference 1: Guidebook for collection of standard practices of sequence control programs using PLC, sequence, PLC, control, mechatronics / book, magazine, THE NIKKAN KOGYO SHINBUN, LTD. (nikkan.co.jp) Reference 2: Stepping control / Sequence control lesson (plckouza.com)
[0007] A program written in state transition notation, as in Fig. Figure 17 is configured by a state determination block and a control execution block. The state determination block is a code block that stores the progress status of sequential operations in variables according to the state changes. The control execution block is a code block that switches the output processing according to the current state.
[0008] In the example of Fig. The values of state variables M0 to M3 in the state determination block specify the states. Additionally, the values of condition variables X0, X1, and X2 indicate the success or failure of the transition condition. Then, the values of state variables M1 to M3 are sequentially set to ON when the values of condition variables X0, X1, and X2 are sequentially set to ON. When the value of state variable M3 is set to ON, all values of state variables M0 to M3 are set to OFF, and the processing returns to the initial state.
[0009] Meanwhile, the output variable Y10 in the control execution block specifies an output value for the control target. When the value of the state variable M1 is set to ON, the value of the output variable Y10 is set to ON. Conversely, when the value of the state variable M2 is set to ON, the value of the output variable Y10 is set to OFF.
[0010] Furthermore, event-driven notation (Reference 1) can be used as a similar notation method. A program written in event-driven notation, as shown in Fig. Figure 18, as shown by way of example, consists of a state determination block and a control execution block. In a program written in event-driven control notation, events that occur sequentially are determined, and the outputs are controlled depending on the results of the event determination.
[0011] The differences between state transition notation and event control notation are as follows.
[0012] In a program that uses state transition notation, all state variable values M0 to M3 are set to OFF after the final state is reached. In contrast, in a program that uses event-driven notation, the previous state is set to OFF when the state changes. In the example in Fig. 18. The value of state variable M0 is set to OFF when the value of state variable M1 is set to ON. Furthermore, the value of state variable M1 is set to OFF when the value of state variable M2 is set to ON. Additionally, the value of state variable M2 is set to ON when the value of state variable M3 is set to OFF. Finally, the value of state variable M3 is set to OFF when the value of state variable M0 is set to ON.
[0013] The state transition notation and the event control notation are used according to the purpose and application area of the manufacturing equipment, etc.
[0014] Currently, there is no established method to easily describe a program using the state transition notation and event control notation described above.
[0015] For this reason, developers who create programs must create all programs according to the control processes, which results in the problem of increased development working time.
[0016] The present disclosure primarily aims to solve this problem. More specifically, the present disclosure focuses on reducing the development time required to generate a program. Solution to the problem
[0017] According to one aspect of the present disclosure, a data processing facility is provided which includes: a tax transaction data acquisition unit to acquire tax transaction data indicating a tax transaction using a plurality of ordered conditions and a plurality of tax variables, each of which is associated with any of the plurality of conditions, and which are assigned a value depending on the success or failure of an associated condition, which is the associated condition; a first subprogram generation unit to sequentially select each condition from the multitude of conditions, and for each selected condition, which is the selected condition, to generate a first subprogram to set a value of a state variable of the selected condition based on the success or failure of the selected condition and a value of a state variable of a preceding condition, which is a condition with an order before the selected condition, according to the control operation; a second subprogram generation unit to sequentially select a respective control variable from the multitude of control variables, and for each selected control variable, which is the selected control variable, to generate a second subprogram to determine a value to be assigned to the selected control variable, based on a value of a state variable of the associated condition for the selected control variable, according to the control operation; and a program generation unit to generate a program that reflects the control process using the first subprogram and the second subprogram. Advantageous effects of the invention
[0018] According to the present disclosure, it is possible to generate a program that mirrors control processes, thereby reducing development time. Brief description of the drawings Fig. Figure 1 is a representation showing an example of a functional configuration of a data processing device according to a first embodiment; Fig. Figure 2 is a representation that shows an example of a hardware configuration of the data processing device according to the first embodiment; Fig. 3 is a representation which shows an example of controlling a control target according to the first embodiment; Fig. Figure 4 is a representation showing an example of control process data according to the first embodiment; Fig. Figure 5 is a representation showing an example of a control program according to the first embodiment; Fig. 6 is a flowchart that represents a workflow example of a program management unit according to the first embodiment; Fig. Figure 7 is a representation showing an example of part of the control program according to the first embodiment; Fig. Figure 8 is a representation showing an example of part of the control program according to the first embodiment; Fig. 9 is a representation showing an example of part of the control program according to the first embodiment; Fig. Figure 10 is a representation showing an example of a control program according to the second embodiment; Fig. Figure 11 is a representation showing an example of a control program according to the second embodiment; Fig. Figure 12 is a representation showing an example of a control program according to the third embodiment; Fig. 13 is a flowchart that represents a workflow example of a program management unit according to the third embodiment; Fig. Figure 14 is a representation showing an example of control process data according to the fourth embodiment; Fig. Figure 15 is a representation showing an example of a control program according to the fourth embodiment; Fig. 16 is a flowchart that represents a workflow example of a program management unit according to the fourth embodiment; Fig. Figure 17 is a representation showing an example of a control program in state transition notation; and Fig. Figure 18 is a representation showing an example of a control program in event transition notation. Description of embodiments
[0019] The following descriptions illustrate the embodiments. In the following explanation and the drawings of the embodiments, identical or equivalent parts are designated by the same reference numerals. First embodiment*** Configuration description ***
[0020] Fig. Figure 1 illustrates an example of a functional configuration of a data processing device 100 according to the present embodiment.
[0021] Fig. Figure 2 further illustrates an example of a hardware configuration of the data processing unit 100 according to the first embodiment.
[0022] The workflow of the data processing unit 100 corresponds to a data processing procedure. Furthermore, a program that implements the workflow of the data processing unit 100 corresponds to a data processing program.
[0023] The data processing unit 100 is a computer.
[0024] As in Fig. As shown in Figure 2, the data processing unit 100 comprises a processor 901, a main memory unit 902, an auxiliary memory unit 903 and a communication unit as hardware components.
[0025] In addition, the data processing facility comprises 100, as in Fig. Figure 1 shows a control transaction data acquisition unit 101, a program management unit 102, a display unit 103, and an operation unit 104 as a functional configuration. The functions of the control transaction data acquisition unit 101, the program management unit 102, the display unit 103, and the operation unit 104 are implemented, for example, by programs.
[0026] The auxiliary storage unit 903 stores programs for implementing the functions of the control process data acquisition unit 101, the program management unit 102, the display unit 103 and the operation unit 104.
[0027] These programs are loaded from the auxiliary memory unit 903 into the main memory unit 902. The processor 901 then executes these programs and performs the operations of the control operation data acquisition unit 101, the program management unit 102, the display unit 103, and the operation unit 104, which will be described later.
[0028] Fig. Figure 2 schematically shows a state in which the processor 901 executes the programs to realize the functions of the control process data acquisition unit 101, the program management unit 102, the display unit 103 and the operation unit 104.
[0029] In Fig. 1 acquires the tax transaction data acquisition unit 101 tax transaction data 200.
[0030] The tax transaction data 200 is data that describes the tax transaction. The tax transaction data 200 includes conditions 201 and tax processes 202. Details of the tax transaction data 200 are explained later.
[0031] The processing carried out by the tax transaction data acquisition unit 101 corresponds to a tax transaction data acquisition process.
[0032] The program management unit 102 analyzes the control operation data 200 to generate a control program 300. The control program 300 is a program that reflects the control operation described in the control operation data 200. The control program 300 comprises a state determination block 301 and a control execution block 302. Details of the control program 300 are explained later.
[0033] The program management unit 102 corresponds to a first subprogram generation unit, a second subprogram generation unit, and a program generation unit.
[0034] Furthermore, the processes carried out by the program management unit 102 correspond to a first subprogram generation process, a second subprogram generation process and a program generation process.
[0035] The display unit 103 shows the user of the data processing unit 100 various pieces of information. Additionally, the display unit 103 can also display the generated control program 300.
[0036] The display unit 104 accepts operations from the user of the data processing unit 100.
[0037] Operations Unit 104 corresponds to an order acquisition unit.
[0038] Next, the tax transaction data 200 will be explained.
[0039] The control process data 200 consists of conditions 201 and control processes 202. The control process data 200 comprises a multitude of conditions 201 and a multitude of control processes 202, and the multitude of conditions 201 are ordered. Each control process 202 is an assignment process of variable values to control variables, an arithmetic operation process, and the like. The control variable is a variable to which variable values are assigned for controlling a control target. The control variable can, for example, be an output variable. Each control variable is assigned to any one of the conditions from the multitude of conditions 201. Furthermore, variable values are assigned to each control variable according to the success or failure of the assigned conditions.The control process data 200 explains the control processes using the multitude of conditions 201 and the multitude of control processes 202 (assignment process of variable values to control variables).
[0040] Unless otherwise stated, the following assumes that the control variables are output variables.
[0041] The following section explains the tax transaction data 200 using specific examples.
[0042] Fig. Figure 3 shows a control process for an air pressure cylinder, which represents the control target.
[0043] Fig. Figure 4 also shows an example of the tax transaction data.
[0044] In the example in Fig. 3. When a start button is pressed, the value of the condition variable X0 is set to ON.
[0045] If the value of the condition variable X0 is set to ON, the value of the output variable Y10 is set to ON.
[0046] When the value of the output variable Y10 is set to ON, a piston inside the pneumatic cylinder begins to move forward on the instruction of a PLC.
[0047] When a sensor X1 reacts to the tip of the piston, the value of the condition variable X1 is set to ON.
[0048] When the value of the condition variable X1 is set to ON, the value of the output variable Y10 is set to OFF.
[0049] When the value of the output variable Y10 is set to OFF, the piston stops moving forward at the instruction of the PLC.
[0050] The output variable Y11 is then set to ON.
[0051] When the output variable Y11 is set to ON, the piston begins its backward movement at the instruction of the PLC.
[0052] When a sensor X2 reacts to the tip of the piston, the condition variable X2 is set to ON.
[0053] When the condition variable X2 is set to ON, the value of the output variable Y11 is set to OFF.
[0054] When the value of the output variable Y11 is set to OFF, the piston stops moving as instructed by the PLC.
[0055] In the example in Fig. 4. The control process is described in the form of a flowchart. In the example in Fig. 4. The conditions 201 are represented by determination objects (diamond-shaped objects). Furthermore, the control processes 202 are represented by processing objects (rectangular objects). The control process is then expressed by linking objects with arrows.
[0056] In other words, in the example of Fig. 4. Each of the “X0 == ON”, “X1 == ON”, and “X2 == ON” specified in the determination objects is a condition 201. Furthermore, each of “X0”, “X1”, and “X2” contained in conditions 201 is a condition variable. Additionally, each of “Y10 = ON”, “Y10 = OFF”, “Y11 = ON”, and “Y11 = OFF” specified in the processing objects is a control process 202. Each of “Y10” and “Y11” to which variable values (ON or OFF) are assigned in control process 202 is an output variable.
[0057] It should be noted that in the example of Fig. Step 4 describes in a single processing object (step T4) that "Y11 = ON" is executed after "Y10 = OFF". Alternatively, it may be possible to describe "Y10 = OFF" and "Y11 = ON" in separate processing objects and link these processing objects with arrows.
[0058] Similarly, it may be possible to describe a multitude of conditions linked by an AND operation in a single definition object, or to describe each condition in separate definition objects and link these definition objects with arrows. Furthermore, a multitude of conditions can be described using other methods.
[0059] For the tax transaction data 200, it is sufficient to simply represent the order of the conditions 201 and the tax processes 202. Therefore, the tax transaction data 200 can be generated in a structured language such as XML (Extensible Markup Language) instead of flowcharts. Furthermore, the tax transaction data 200 can be generated in a tabular form, such as a spreadsheet.
[0060] In the example of Fig. 4. Furthermore, a flowchart is created using the variables X0, Y10, etc., which specify the input and output addresses of the PLC; however, a flowchart can also be created using easily understandable names such as "Sensor A". In this case, the description "Sensor A == ON", etc., is used instead of "X0 == ON", etc. Additionally, it may be possible to generate the control program 300 by creating a correspondence table with names and input and output addresses that are used separately in flowcharts, and by converting the names into the input and output addresses using the correspondence table. Furthermore, if software in ladder logic corresponds to a program with variables, it may also be possible to generate the control program 300 by using names such as "Sensor A" as variable names.In this case, a correspondence table with variable names and input and output addresses is also created.
[0061] Next, the tax program 300, shown in Fig. 1, explained.
[0062] The control program 300 consists of a state determination block 301 and a control execution block 302.
[0063] Fig. Figure 5 shows an example of the tax program 300, which consists of the following: Fig. 4 tax process data shown generates 200.
[0064] State determination block 301 is a code block that stores the status of the progress of sequential operations in variables according to the state changes, as explained in the section on Fig. 17 explains, stores. Each code block in each line, above the dashed line in Fig. Figure 5 shows the state determination block 301. Each state determination block 301 corresponds to the first subprogram.
[0065] State determination block 302 is also a code block that controls the output process according to each state, as explained in the section on Fig. 17 explains, changes. Each code block in each line, below the dotted line in Fig. Figure 5 shows the control execution block 302. Each control execution block 302 corresponds to the second subprogram. *** Description of the working method ***
[0066] Next, a workflow example of the program management unit 102 according to the present embodiment will be presented with reference to Fig. 6 described.
[0067] The following example illustrates the generation of the in Fig. 5 tax program 300 shown from the in Fig. The operation of the program management unit 102 is described in section 4 of the control process data 200.
[0068] Fig. Figure 6 illustrates the operation after the tax transaction data acquisition unit 101 has acquired the tax transaction data 200 and has output the acquired tax transaction data 200 to the program management unit 102.
[0069] First, the program management unit defines 102 state variables that correspond to a respective condition, a start point and an end point (step S1).
[0070] In the example of Fig. In section 5, program management unit 102 defines the state variable M0 for the start point. Furthermore, program management unit 102 defines the state variable M1 for the condition "X0 == ON". Additionally, program management unit 102 defines the state variable M2 for the condition "X1 == ON". Furthermore, program management unit 102 defines the state variable M3 for the condition "X2 == ON". Finally, program management unit 102 defines the state variable M4 for the end point.
[0071] The program management unit 102 can name the state variables in the order defined in the control operation data 200 as described above. Alternatively, the user of the data processing unit 100 can, for example, specify variable names for the state variables in the control operation data 200.
[0072] Next, the program management unit 102 generates a code block (hereinafter referred to simply as the block) with respect to the starting point (step S2).
[0073] Each code block generated from steps S2 to S6 described below corresponds to state determination block 301 (the first subprogram).
[0074] In the example of Fig. In step 5, the program management unit 102 generates a code block with respect to the start point that sets the value of the state variable M0 at the start point to OFF only if the value of the state variable M4 at the end point is set to ON; otherwise, it sets the value of state variable M0 to ON. In this way, the value of state variable M0 is set to OFF if the value of state variable M4 is set to ON due to the code block with respect to the endpoint generated in step S6, which is described later. Subsequently, the values of the other state variables M1 through M4 are sequentially set to OFF. As a result, the processing returns to the initial condition (the values of all state variables are set to OFF).
[0075] In the example of Fig. 3. The determination of whether the piston is in the starting position is omitted as a means of determining the success or failure of the start condition. Instead, the determination of whether the piston is in the starting position can be included, and the program management unit 102 can insert a state variable to determine whether the piston is in the starting position into the code block with respect to the start point. Additionally, the program management unit 102 can generate a code block that determines whether the piston is in the starting position as the first condition.
[0076] Next, the program management unit 102 determines whether or not a condition exists under which the state determination block 301 is not generated (step S3).
[0077] If a condition exists under which state determination block 301 is not generated (YES in step S3), the process continues with step S4. If, however, state determination blocks 301 are generated for all conditions (NO in step S3), the process continues with step S6.
[0078] In step S4, the program management unit 102 selects the next condition.
[0079] More precisely, in step S4, immediately after step S2, the program management unit 102 selects the first condition in the control process data 200. If, in the meantime, the state determination block 301 has already been generated for any conditions, the program management unit 102 selects the next condition in the control process data 200 that is the target for generation in the state determination block 301 immediately preceding it.
[0080] It is assumed that the program management unit 102 selects the condition "X0 == ON" as the first condition in the control transaction data 200, as shown in Fig. 5 shown.
[0081] Next, according to the control process, the program management unit 102 generates a block (state determination block 301) that determines the value of the state variable (M1) of the selected state (“X0 == ON”) (step S5).
[0082] In particular, the program management unit 102 generates a code block to determine the value (ON / OFF) of the state variable (M1) of the selected condition based on the success or failure of the selected condition (“X0 == ON”), the value of the state variable (state variable M0 at the starting point) of a preceding condition with the order before the selected condition, the value of the state variable (M1) of the selected condition, and a condition under which the state variable (M1) of the selected condition is not satisfied.
[0083] In this case, program management unit 102 uses only the condition whose order immediately precedes the selected condition as the preceding condition. Program management unit 102 can use a condition with a different order than immediately preceding the selected condition, as well as the condition with the order immediately preceding the selected condition, provided it is the condition with the order preceding the selected condition.
[0084] The condition under which the state variable of the selected condition is not satisfied is a condition that causes the value of the state variable of the selected condition to be set to OFF. Furthermore, it is assumed here that the data processing device 100 or the control process data 200a has a definition according to which the condition under which the state variable of the selected condition is not satisfied consists of the value of the state variable of the immediately preceding condition being set to OFF. Therefore, in the example of Fig. 5 as a condition under which the state variable M1 is not satisfied, the value of the state variable M0, which is set to OFF, is used.
[0085] Program Management Unit 102 generates a block that causes the value of state variable M1 to be set to ON if the value of the immediately preceding state variable M0 is set to ON and the condition "X0 == ON" is true, and that causes the value of state variable M1 to be set to OFF if the value of the immediately preceding state variable M0 is set to OFF. It is important to note that in ladder logic, the variable on the right is set to OFF if the condition on the left is not true. Therefore, Program Management Unit 102 also generates a self-holding program based on state variable M1, so that the value of state variable M1 remains set to ON even if the value of condition variable X0 is set to OFF after state variable M1 has been set to ON.
[0086] The program management unit 102 also executes steps S3 to S5 for the condition “X1 == ON” and the condition “X2 == ON”, and generates a code block (state determination block 301) to set values of the state variables M2 and M3.
[0087] Since the generation of state determination block 301 for "X0 == ON" is described above as the first condition in the control operation data 200, the state variable M0 at the start point is used as the state variable of the preceding condition. When generating state determination block 301 for the condition "X1 == ON", the state variable M1 of the condition "X0 == ON" is used as the state variable of the preceding condition. Furthermore, when generating state determination block 301 for the condition "X2 == ON", the state variable M2 of the condition "X1 == ON" is used as the state variable of the preceding condition.
[0088] In the present embodiment, the state determination block 301 is described for simple conditions such as "X0 == ON". However, it is possible for the program management unit 102 to also generate a state determination block 301 for more complex conditions.
[0089] As a complex condition, it is possible to include a condition that determines whether the timer has expired in the control process data 200. If the condition determining whether the timer has expired is the selected condition, the program management unit 102 generates a state determination block 301 to set the value of the state variable of the selected condition based on both the success or failure of the selected conditions, depending on the result of the determination of whether the timer has expired, and the value of the state variable of the preceding condition.
[0090] As a further complex condition, it is possible to consider that a condition which includes logical operations of a multitude of subconditions is included in the control process data 200. If the condition which includes the logical operations of a multitude of subconditions is the selected condition, the program management unit 102 generates a state determination block 301 to determine the value of the state variable of the selected condition based on both the success or failure of the selected condition depending on the results of the logical operations of the multitude of subconditions, and the value of the state variable of the preceding condition.
[0091] At this point, the program management unit 102 can generate a code block solely for determining the condition and generate the state determination block 301 to set the value of the state variable based on the determination result of this code block. For example, suppose that a condition with a logical operation such as "(X10 == ON AND X11 == OFF) OR D0 >= 10" instead of "X0 == ON" in Fig. 4 is set. In this case, the program management unit 102 generates, as in Fig. Figure 7 shows a code block to determine the success or failure of the specified condition and to assign the result to a variable M99. Subsequently, the program management unit 102 generates a state determination block 301 to set the value of the state variable M1 based on the value of the variable M99.
[0092] In Fig. 6 generates the program management unit 102, as soon as state determination blocks 301 have been generated for all conditions (NO in step S3), a code block (the state determination block 301) with respect to the endpoint (step S6).
[0093] In the example of Fig. 5. The program management unit 102 generates a state determination block 301, in which the value of the state variable M4 in the endpoint is set to ON when the value of the immediately preceding state variable M3 is set to ON.
[0094] Setting the value of state variable M0 to ON sets the value of state variable M1 to OFF. Consequently, the values of state variables M1 through M4 are also sequentially set to OFF, and the process returns to the initial state (values of all state variables are set to OFF).
[0095] Next, the program management unit 102 generates a control execution block 302.
[0096] During the maintenance of manufacturing equipment, the reason for the evolution of each output variable to its current value must be easily identifiable. For this reason, code blocks for setting the values of output variables (especially bit-type variables) whose values change frequently are often written together for each output variable. For these reasons, the program management unit 102 generates this in the processing flow of Fig. 6 for each output variable, the control execution block 302. However, since there is no unique rule for the procedure for creating the control program 300, the program management unit 102 can generate a code block (control execution block 302) to set the values of the output variables according to their order of appearance in the control process data 200.
[0097] In Fig. Step 6 determines whether there are output variables for which the control execution block 302 is not generated (step S7).
[0098] If there are output variables for which control execution block 302 is not generated (YES in step S7), the process continues with step S8. If, however, control execution blocks 302 are generated for all output variables (NO in step S7), the process continues with step S10.
[0099] In step S8, the program management unit 102 selects the next output variable.
[0100] More precisely, the program management unit 102 selects the next output variable that follows the output variable that is the target for generation in the control execution block 302 immediately preceding it in the control process data 200.
[0101] Next, the program management unit 102 generates a code block (control execution block 302) to determine which value is to be assigned to the selected output variable (step S9).
[0102] More precisely, the program management unit 102 generates the control execution block 302 to determine the value to be assigned to the selected output variable, based on the value of the state variable of the associated condition to which the selected output variable corresponds.
[0103] As a concrete example, the workflow of program management unit 102 is described in step S9 when the output variable Y10 is selected in step S8.
[0104] In Fig. 4. The value of the output variable Y10 is set to ON (step T2) if the associated condition "X0 == ON" is met (YES in step T1). That is, the value of the output variable Y10 is set to ON if the value of the state variable M1 of the associated condition "X0 == ON" is set to ON. Fig. Meanwhile, in step T4, the value of output variable Y10 is set to ON if the associated condition "X1 == ON" is met (YES in step T3). That is, the value of output variable Y10 is set to OFF if the value of state variable M2 of the associated condition "X1 == ON" is set to ON. Program management unit 102 generates control execution block 302, which reflects these processes.
[0105] Furthermore, the description refers to the operation of the program management unit 102 in step S9 when the output variable Y11 is selected in step S8.
[0106] In Fig. In step T4, the value of the output variable Y11 is set to ON if the associated condition "X1 == ON" is met (YES in step T3). That is, the value of the output variable Y11 is set to ON when the value of the state variable M2 of the associated condition "X1 == ON" is set to ON. Fig. Meanwhile, in step T6, the value of output variable Y11 is set to ON if the associated condition "X2 == ON" is met (YES in step T5). That is, the value of output variable Y11 is set to ON when the value of state variable M3 of the associated condition "X2 == ON" is set to ON. Program management unit 102 generates control execution block 302, which reflects these processes.
[0107] Once the control execution blocks 302 are generated for all output variables (NO in step S7), the program management unit 102 combines all state determination blocks 301 and the control execution blocks 302, and generates a control program 300 that reflects the control operations of the control operation data 200 (step S10).
[0108] Previously, an example was explained in which the program management unit 102 generates the control execution block 302 in step S9, in which the output variable is set to ON and OFF once each. The program management unit 102 can also generate the control execution block 302 in which the values of the output variables change more frequently.
[0109] For example, suppose that the control transaction data 200 contains two or more condition sets, which are combinations of two or more conditions, and that two or more condition sets are assigned to the output variable. Furthermore, suppose that the aforementioned output variable is assigned conditions that are contained as assigned conditions in each of the two or more condition sets. Such an output variable is referred to here as a composite output variable. The composite output variable is an example of a composite control variable.
[0110] Assume that in such a case, the composite output variable is selected as the output variable. For each condition set associated with the composite output variable, the program management unit 102 generates the control execution block 302 to determine which value is to be assigned to the composite output variable, based on the combination of the values of the state variables of the associated conditions contained in the condition sets.
[0111] Specifically, let us assume that conditional sentences 1 to 3 are assigned to the composite output variable Y1.
[0112] Conditional set 1 contains condition 1 ("X1 == ON") and condition 2 ("X2 == OFF"). Conditional set 2 contains condition 3 ("X3 == ON") and condition 4 ("X4 == OFF"). Conditional set 3 contains condition 5 ("X5 == ON") and condition 6 ("X6 == OFF").
[0113] In this case, assume that the program management unit 102 sets M1 as the state variable for condition 1 ("X1 == ON") and M2 as the state variable for condition 2 ("X2 == OFF"). Furthermore, assume that the program management unit 102 sets M3 as the state variable for condition 3 ("X3 == ON") and M4 as the state variable for condition 4 ("X4 == OFF"). It is also assumed that the program management unit 102 sets M5 as the state variable for condition 5 ("X5 == ON") and M6 as the state variable for condition 6 ("X6 == OFF").
[0114] In such a case, the program management unit 102 generates a control execution block 302 for each condition set to determine the value to be assigned to the composite output variable Y1, based on the combination of the values of the state variables of the associated conditions contained in the condition sets, as shown in Fig. 8 shown.
[0115] Additionally, the program management unit 102 can generate a control execution block 302 to determine the value of the output variable, which takes an integer value rather than a 1-bit value.
[0116] For example, suppose that two or more conditions than the assigned conditions are assigned, and an output variable, whose value to be assigned when the assigned conditions are met varies depending on each assigned condition, is included in the control operation data 200. Such an output variable is referred to here as a change output variable. The change output variable is an example of a change output variable.
[0117] Assume that in such a case, the change output variable is selected as the output variable. The program management unit 102 generates a control execution block 302 to determine the value to be assigned to the change output variable, based on the value of the state variable of the condition associated with the change output variable.
[0118] Specifically, it is assumed here that the change output variable D10 is assigned to conditions 1 to 3. If condition 1 is met, the change output variable D10 is assigned the value 10. If condition 2 is also met, the change output variable D10 is assigned the value 20. If condition 3 is also met, the change output variable D10 is assigned the value 30.
[0119] In this case, the program management unit 102 sets the state variable M1 for condition 1, the state variable M2 for condition 2, and the state variable M3 for condition 3.
[0120] The control process data acquisition unit 101 generates a control execution block 302 to assign the value 10 to the change output variable D10 if the value of the state variable M1 is set to ON, to assign the value 20 to the change output variable D10 if the value of the state variable M2 is set to ON, and to assign the value 30 to the change output variable D10 if the value of the state variable M3 is set to ON. The program management unit 102 generates a control execution block 302 for each state variable (in Fig. 9 (represented as a MOV instruction), to change the value to be assigned to the change output variable D10, as for example in Fig. 9 shown.
[0121] Furthermore, the control process data 200, which is not limited to simple value changes, can define a process for calling another code block, such as a function block. In this case, the program management unit 102 generates a control execution block 302, which contains a control variable to call a function block when certain conditions are met. *** Description of the effect of the embodiment ***
[0122] According to the present embodiment, it is possible to generate a control program that reflects the control process using a state transition notation, thereby reducing development time.
[0123] In other words, in the present embodiment, a program developer only needs to create control process data containing descriptions of conditions and control processes corresponding to the success or failure of those conditions, and then a control program reflecting the control process can be generated in a familiar format (state transition notation). Therefore, the present embodiment allows for a reduction in the development time of control programs for manufacturing equipment while maintaining the maintainability of the manufacturing equipment. Second embodiment
[0124] In the first embodiment, an example of generating the control program 300 in a state transition notation was described. In the first embodiment, an example of generating the control program 300 in an event control notation is described.
[0125] The present embodiment primarily describes differences compared to the first embodiment.
[0126] Aspects not described below are the same as those of the first embodiment.
[0127] Fig. Figure 10 shows the control program 300 in an event control notation.
[0128] The following example describes how the program management unit 102 implements the in Fig. The tax program 300 shown generates 10 by processing the workflow of Fig. 6 on the tax transaction data 200 in Fig. 4 executes.
[0129] Furthermore, the following primarily describes the processes that differ from those of the first embodiment.
[0130] In step S5, the program management unit 102 generates a state determination block 301 to determine the value of the state variable of the selected condition based on the success or failure of the selected condition, the values of the state variables of the preceding conditions, and the values of the state variables of the conditions with the order following the selected condition.
[0131] Here, details of the operation of the program management unit 102 in step S5 are explained using an example for the generation of the state determination block 301 to set the state variable of the selected condition “X0 == ON”.
[0132] Here, the control process data 200 should have a definition according to which the condition under which the state variable of the selected condition is not satisfied is the value of the state variable of the condition which is immediately following the selected condition, which is set to ON.
[0133] Therefore, the program management unit 102 generates a state determination block 301, in which the value of the state variable M1 of the selected condition "X0 == ON" is set to OFF when the value of the state variable M2 of "X1 == ON", which is the condition immediately following the selected condition "X0 == ON", changes.
[0134] The state variable M0 of the condition (starting point) immediately preceding the selected condition "X0 == ON" is a condition that causes the value of the state variable M1 to be set to ON. However, the program management unit 102 generates the state determination block 301 in such a way that the state variable M0 does not become a condition that causes the value of the state variable M1 to be set to OFF, in contrast to the first embodiment (state transition notation).
[0135] In step S2, the program management unit 102 generates a state determination block 301, in which the value of the state variable M0 at the start point is set to ON if the values of the state variables M1 to M4 are not set to ON, in other words, are in their initial states, and similarly to the process of step S5, the value of the state variable M0 is set to OFF if the state variable M1 of the immediately following condition is set to ON.
[0136] It should be noted that in Fig. 10. To simplify the representation of the state determination block 301, the determination process for the state variable M1 is described redundantly. The program management unit 102 does not necessarily have to generate the unnecessary determination process for the state variable M1 on the left-hand side.
[0137] In event-driven control notation, the value of the state variable of the next condition is ON if the value of the state variable of the previous condition is OFF. Therefore, if the selected output variable is a bit-type variable, the program management unit 102 generates the control execution block 302 only with the state variable whose value is set to ON in step S9. In the example of Fig. 4. The value of the output variable Y10 is only set to ON if the value of the state variable M1 of the condition "X0 == ON" is set to ON. Furthermore, the value of the output variable Y11 is only set to ON if the value of the state variable M2 of the condition "X1 == ON" is set to ON. As in Fig. As shown in Figure 10, the program management unit 102 generates the control execution block 302 of the output variable Y10 and the control execution block 302 of the output variable Y11 in such a way that this control operation is mirrored.
[0138] As described above, according to the present embodiment, a control program that reflects the control process can be generated in event control notation, which enables a reduction in development time.
[0139] Furthermore, examples were described in the first and second embodiments in which the program management unit 102 generates the control program in ladder logic language. The program management unit 102 can also generate a control program in a language other than ladder logic language.
[0140] Fig. Figure 11 shows an example of the control program 300 in C language, which the program management unit 102 executes the processing flow of Fig. 6 on the tax transaction data 200 of Fig. 4 has been generated.
[0141] It should be noted that Fig. 11 code blocks are shown, which only reflect the conditions 201 and the control processes 202 defined by the control process data 200. In other words, in Fig. Section 11 omits the presentation of aspects such as the definition of variable names, etc.
[0142] The user of the data processing unit 100 can specify the type of control program 300 (the state determination block 301, the control execution block 302) generated by the program management unit 102. That is, the user can specify in which notation the control program 300 is to be generated, whether it be a state transition notation, an event control notation, a C language, etc.
[0143] For example, the user of the data processing unit 100 enters a command via an input / output unit 904, specifying the type of control program 300 in the operation unit 104. The operation unit 104 receives the command and informs the program management unit 102 of the type of control program 300.
[0144] The program management unit 102 generates the control program 300, which corresponds to the type communicated by the operation unit 104. In other words, if the user specifies the state transition notation as the type of control program 300, the program management unit 102 generates the control program 300 using the method described in the first embodiment. If, on the other hand, the user specifies the event control notation as the type of control program 300, the program management unit 102 generates the control program 300 using the method described in the second embodiment.
[0145] Furthermore, the user can make additional selections, such as whether to specify the conditions under which the state variable is not satisfied. The user can, for example, enter a command directive for such a selection in the operation unit 104. Alternatively, the user can make this type of selection in the control operation data 200. A user interface enabling such selections can also be provided in the display unit 103. The program management unit 102 generates the control program 300, which is aligned with the user's selection. Third embodiment
[0146] A control program that controls manufacturing equipment often needs to enable the initialization of states, the forced shutdown of the manufacturing equipment, the maintenance of variable values when problems occur, etc. Therefore, in the present embodiment, the program management unit 102 generates the control program 300 to meet these requirements.
[0147] The present embodiment primarily describes differences compared to the first embodiment.
[0148] Aspects not described below are similar to those in the first embodiment.
[0149] Fig. Figure 12 shows an example of the control program 300 in a state transition notation according to the present embodiment.
[0150] In Fig. 12 are compared to Fig. 5. Added the variables surrounded by dashed lines.
[0151] Especially in Fig. 12. All state variables are initialized when the value of variable M100 is set to ON. Furthermore, in Fig. 12. When the value of variable M101 is set to OFF, the values of all state variables are fixed, and state progression stops. Furthermore, when the value of variable M101 is set to OFF, the values of output variables Y10 and Y11 are also forced to OFF, and the piston stops working.
[0152] Fig. 13 is a flowchart that describes an example of the procedure when the program management unit 102 is in Fig. 12 displayed tax program 300 generated.
[0153] In Fig. 13 differ from step S100, step S21, step S51, step S61 and step S91 Fig. 6.
[0154] The following section will primarily explain these differences.
[0155] In step S100, the program management unit 102 defines variables for initializing state variables and for setting values for state variables.
[0156] In the example of Fig. Section 12 defines the program management unit 102 M100 as an initialization variable (hereinafter referred to as an initialization variable). Furthermore, the program management unit 102 defines M101 as a setting variable for state variables (hereinafter referred to as a setting variable).
[0157] The variable names for the initialization variable and the setting variable can be automatically assigned by the program management unit 102, or they can be specified beforehand by the user, for example, in the control operation data 200.
[0158] Furthermore, in the example of Fig. If the values of all state variables are uniformly fixed, the program management unit 102 sets only a single fixing variable. In contrast to this case, the program management unit 102 can set multiple fixing variables to partition the fixing range. For example, the user can specify the range in which the variable values in the control operation data 200 are fixed simultaneously. The program management unit 102 then sets the fixing variables for each user-specified range.
[0159] In step S21, a block (state determination block 301) is generated for the starting point in which the value of the state variable M0 is set to OFF when the value of the initialization variable M100 is set to ON. When the value of the state variable M0 is set to ON at the starting point, the values of the state variables M1 to M4 are sequentially set to OFF. This completes the initialization of all state variables.
[0160] Furthermore, the program management unit 102 inserts the locking variable 101 at the start point in the state determination block 301, so that the value of state variable M0 is not set to ON when the value of state variable M0 is set to OFF and locking variable M101 is set to OFF. In this way, the value of state variable M101 is not set to ON when the value of locking variable M0 is set to OFF. This makes it possible to stop the progress of the control process while maintaining the state.
[0161] In step S51, the program management unit 102 generates a block (state determination block 301) that prevents the state variables M1 to M3 from being set to ON when the values of the state variables M1 to M3 are set to OFF, and the value of the fixing variable M101 is set to OFF, as in step S21.
[0162] Similarly, in step S61, program management unit 102 generates a block (state determination block 301) that prevents the value of state variable M4 from being set to ON when the value of state variable M3 is set to OFF and the value of fix variable M101 is set to OFF. Furthermore, to leave subsequent processing unchanged, program management unit 102 ensures that the value of state variable M4 remains set to ON when the values of both state variables M3 and M4 are set to ON.
[0163] In step S91, the program management unit 102 generates a block (control execution block 302) that sets the values of output variables Y10 and Y11 to OFF when the value of the locking variable M101 is set to OFF. This allows the piston to be stopped regardless of the state in which the value of the locking variable M101 is set to OFF.
[0164] In the present embodiment, the example has been explained in which the program management unit 102 generates a block which forcibly sets the values of all output variables to OFF when the value of the fixing variable M101 is set to OFF.
[0165] Instead, the program management unit 102 can generate a control execution block 302, which forcibly sets only the values of the specified output variables to OFF. In this case, the user specifies the desired output variable, for example, in the control operation data 200. The program management unit 102 then generates the control execution block 302, which forcibly sets the value of the output variable specified in the control operation data 200 to OFF.
[0166] Furthermore, the program management unit 102 can generate a control execution block 302 that toggles an output variable whose value is forcibly set to OFF. In this case, the user specifies the toggling condition of the output variable, for example, in the control operation data 200. The program management unit 102 then generates the control execution block 302, which toggles the output variable, whose value is forcibly set to OFF, according to the toggling condition.
[0167] Additionally, the program management unit 102 can generate a control execution block 302 that forcibly changes the value of the output variable to a preset value, except for OFF. In this case, the user specifies the value of the output variable after the forcible change, for example, in the control operation data 200. The program management unit 102 then generates the control execution block 302, which forcibly changes the value of the output variable to the value specified in the control operation data 200.
[0168] In the present embodiment, the example in which the program management unit 102 uses the initialization variable and the setting variable has also been explained; however, the program management unit 102 can also use the other variables.
[0169] The program management unit 102 can always use such variables to generate the control program 300. Furthermore, the user can specify whether these variables should be used in the control operation data 200, and the program management unit 102 can generate the control program 300 using the variables according to the specification in the control operation data 200.
[0170] As described above, according to the present embodiment, it is possible to generate a control program capable of initializing states, forcibly stopping the operation of manufacturing equipment, maintaining the state of variables when problems occur, and so on. This reduces the development time of the control program. Fourth embodiment.
[0171] Regarding the control of the production equipment, the control can be changed depending on the conditions. In the present embodiment, the program management unit 102 generates a control program 300, taking such cases into account, which corresponds to the control process data 200 in which branches and merges are defined.
[0172] The present embodiment primarily describes differences compared to the first embodiment.
[0173] Aspects not described below are similar to those in the first embodiment.
[0174] Fig. Figure 14 shows an example of the control transaction data 200, which includes branching conditions and merging conditions.
[0175] Step T11 and step T12 in Fig. 14 are equal to step T1 and step T2 in Fig. 4.
[0176] In step T13 in Fig. Step T14: If it is determined that both the condition "X1 == ON" and the condition "X20 == ON" are met, the value of output variable Y10 is set to OFF, and the value of output variable Y11 is set to ON. Meanwhile, if it is determined that both the condition "X1 == ON" and the condition "X20 == OFF" are met, the value of output variable Y10 is set to OFF, and the value of output variable Y12 is set to ON.
[0177] If the condition “X2 == ON” is met, even if either step T14 or step T15 is executed (YES in step T16), the value of the output variable Y11 and the value of the output variable Y12 are set to OFF (step T17).
[0178] In Fig. 14. A branch occurs through “X1 == ON && X20 == ON” and “X1 == ON && X20 == OFF” in step T13, and these are branching conditions.
[0179] Furthermore, the branch is merged if the condition "X2 == ON" in step 16 is met. Therefore, the condition "X2 == ON" in Fig. 16 a merger condition.
[0180] Furthermore, a multitude of routes up to the branch generated by the branching conditions are referred to as branching routes. Fig. 14 is each of the routes from step T13 via step T14 to step T16 and the route from step T13 via step T15 to step T16 is a branching route.
[0181] Furthermore, the value of the output variable Y11 depends on whether the branching condition "X1 == ON && X20 == ON" is satisfied in step T14. Meanwhile, the value of the output variable Y11 depends on whether the merge condition "X2 == ON" is satisfied in step T17. Therefore, the branching condition "X1 == ON && X20 == ON" and the merge condition "X2 == ON" are associated conditions of the output variable Y11.
[0182] Similarly, the value of the output variable Y12 depends on the fulfillment of the branching condition "X1 == ON && X20 = OFF" in step T15. Meanwhile, the value of the output variable Y12 depends on the fulfillment of the merge condition "X2 == ON" in step T17. Therefore, the branching condition "X1 == ON && X20 == OFF" and the merge condition "X2 == ON" are associated conditions of the output variable Y12.
[0183] For output variables Y11 and Y12, the branching condition and the merge condition are the associated conditions and correspond to a synthesis output variable. The synthesis output variable is an example of a synthesis control variable.
[0184] Regarding the output variable Y10, the branching condition is "X1 == ON && X20 == ON" or "X1 == ON && X20 == OFF", while the synthesis condition "X2 == ON" is not. Therefore, the output variable Y10 does not correspond to the synthesis output variable.
[0185] Fig. Figure 15 shows an example of the control program 300 in a state transition notation, which consists of the following: Fig. The 14 tax transaction data shown generates 200.
[0186] The following process is described using the following: Fig. 16 described how the program management unit 102 did this in Fig. 15 tax programs 300 shown from the in Fig. 14 tax transaction data shown generates 200.
[0187] In Fig. 15 differ in step S11, step S52 and step S92 from Fig. 6.
[0188] The following section will primarily explain these steps.
[0189] In step S11, similar to step S1 in Fig. 6. State variables are defined for each condition, the start point, and the endpoint. In step S11, if the control operation data 200 contains a branch condition, the program management unit 102 defines a state variable that indicates the success or failure of the branch condition. Meanwhile, if the control operation data 200 contains a merge condition, the program management unit 102 defines a state variable that indicates the success or failure of the merge condition.
[0190] In the example of Fig. In section 15, program management unit 102 defines the state variable M0 for the start point. Furthermore, program management unit 102 defines the state variable M1 for the condition "X0 == ON". Additionally, program management unit 102 defines the state variable M2 for the branch condition "X1 == ON && X20 == ON". Furthermore, program management unit 102 defines the state variable M3 for the branch condition "X1 == ON && X20 == OFF". Additionally, program management unit 102 defines the state variable M4 for the merge condition "X2 == ON". Finally, program management unit 102 defines the state variable M5 for the endpoint.
[0191] In step S52, if the selected condition is a branch condition, the program management unit 102 generates a code block (state determination block 301) to set the value of the state variable of the branch condition (referred to as a selected branch condition), which is the selected condition, based on the success or failure of the selected branch condition, the value of the state variable of the preceding condition of the selected branch condition, and the value of the state variable of another branch condition.
[0192] More precisely, program management unit 102 generates state determination block 301, in which the state variable of the selected branch condition is set to ON if the selected branch condition is true, the value of the state variable of the condition immediately preceding the selected branch condition is ON, and the state variable of the other branch condition is OFF. In other words, program management unit 102 generates state determination block 301, in which the state variable of the selected branch condition is set to ON and the state variable of the other branch condition is set to OFF if the selected branch condition is true and the value of the state variable of the condition immediately preceding the selected branch condition is ON.
[0193] In Fig. 15, if the selected branching condition “X1 == ON && X20 == ON” is satisfied and the value of the state variable M1 of the immediately preceding condition is ON and the value of the state variable M3 of the other branching condition “X1 == ON && X20 == OFF” is OFF, the value of the state variable M2 of the selected branching condition “X1 == ON && X20 == ON” is set to ON.
[0194] This means that the program management unit 102 generates the state determination block 301, in which the value of the state variable M3 is not set to ON if the value of the state variable M2 was previously set to ON, and conversely, the value of the state variable M2 is not set to ON if the value of the state variable M3 was previously set to ON.
[0195] In Fig. 15. The success / failure determination process for the state variable M1 of the immediately preceding condition is split between the success / failure determination process for state variable M2 and the success / failure determination process for state variable M3. Alternatively, the program management unit 102 can generate the state determination block 301 to perform the success / failure determination process for state variable M1 separately in the success / failure determination process for state variable M2 and in the success / failure determination process for state variable M3.
[0196] Furthermore, in step S52, if the selected condition is a merge condition, the program management unit 102 generates a code block (state determination block 301) that sets the value of the merge condition's state variable based on the success or failure of the merge condition and the value of the state variable of the condition contained in the multitude of branch routes or the values of the state variables of the multitude of branch conditions.
[0197] More precisely, the program management unit 102 generates the state determination block 301, which sets the merge condition state variable to ON if the merge condition is satisfied and the value of the state variable of any condition contained in any of the plurality of branching routes prior to the merge, or the value of any state variable of the plurality of branching conditions, is ON.
[0198] In Fig. 15. If the merge condition "X2 == ON" is met and a value of state variable M2 and state variable M3 of the two branch conditions is ON, the value of state variable M4 of the merge condition is set to ON. In the control process data 200 of Fig. 14. There is no condition regarding any branching route. Therefore, in Fig. 15 The value of the state variable M4 of the merge condition “X2 == ON” is set to ON if the merge condition is satisfied and any value of the state variable M2 and the state variable M3 is set to ON.
[0199] Although Fig. As shown in example 14, where several branching routes are merged when a certain condition is met, the program management unit 102 also generates the state determination block 301 through a similar process in a case where several branching routes are merged in the control process.
[0200] Even in an example where the control process “Y13 = ON” occurs between step T14 and step T16 and further between step T15 and step T16 in Fig. 14 is specified, and the multitude of branching routes in the control process “Y13 = ON” are merged, the program management unit 102 generates the state determination block 301 through a similar process.
[0201] In step S92, the program management unit 102 generates a code block (control execution block 302) to determine the value to be assigned to the selected output variable according to the control operation, similar to the first embodiment.
[0202] In the present embodiment, if the selected control variable is a synthesis output variable, the program management unit 102 generates a code block (control execution block 302) to determine the value to be assigned to the synthesis output variable based on the value of the state variable of the branching condition (associated condition of the synthesis output variable) and the value of the state variable of the merge condition (associated condition of the synthesis output variable).
[0203] In a case where the selected output variable is not a synthesis output variable, the program management unit 102 generates the control execution block 302 in a similar manner to the first embodiment.
[0204] In the example in Fig. 15. The value of the output variable Y10, which is not a synthesis output variable, is set to ON if the state variable M1 of the condition "X0 == ON" is set to ON. Meanwhile, the value of the output variable Y10 is set to OFF if either the state variable M2 of the branching condition "X1 == ON && X20 == ON" or the state variable M3 of the branching condition "X1 == ON && X20 == OFF" is ON.
[0205] Furthermore, the value of output variable Y11, which is a synthesis output variable, is set to ON if the value of state variable M2 of the branching condition "X1 == ON && X20 == ON" is ON. Meanwhile, the value of output variable Y11 is set to OFF if state variable M4 of the merge condition "X2 == ON" is ON.
[0206] Furthermore, the value of output variable Y12, which is a synthesis output variable, is set to ON if the value of state variable M3 of the branching condition "X1 == ON && X20 == ON" is ON. Meanwhile, the value of output variable Y12 is set to OFF if state variable M4 of the merge condition "X2 == ON" is ON.
[0207] As described above, according to the present embodiment, a control program can be generated from control process data in which branches and merges are defined, thereby reducing the development time for the control program.
[0208] A first embodiment up to a fourth embodiment has been described above; however, any two or more of these embodiments can also be combined and implemented.
[0209] Alternatively, one of these embodiments can also be implemented partially.
[0210] Alternatively, two or more of these embodiments can also be implemented partially in combination.
[0211] Furthermore, the configurations and processes described in these embodiments can be modified as needed. ***Supplementary description of the hardware configuration***
[0212] Finally, a supplementary description of the hardware configuration of the data processing unit 100 follows.
[0213] The in Fig. The processor 901 shown is an IC (Integrated Circuit) that performs processing.
[0214] The 901 processor is a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or the like.
[0215] The in Fig. The main memory device 902 shown is a RAM (Random Access Memory).
[0216] The in Fig. 2. The auxiliary storage device 903 shown is a ROM (Read Only Memory), a flash memory, an HDD (Hard Disk Drive), or the like.
[0217] The in Fig. 2. The input / output device shown (904) is a mouse, a keyboard, a display, or the like.
[0218] The data processing unit 100 can be used in Fig. 2. Communication device not shown. The communication device is an electronic circuit that performs data communication processing. The communication device is, for example, a communication chip or a NIC (Network Interface Card).
[0219] In addition, the auxiliary storage device 903 stores an OS (Operating System).
[0220] At least part of the OS is run by the 901 processor.
[0221] While at least part of the OS is running, the processor 901 executes programs to implement the functions of the control operation data acquisition unit 101, the program management unit 102, the display unit 103 and the operation unit 104.
[0222] By running the OS through the 901 processor, task management, memory management, file management, communication control and the like are performed.
[0223] In addition, information, data, signal values and variable values indicating the results of processing by the control operation data acquisition unit 101, the program management unit 102, the display unit 103 and the operation unit 104 are stored in any of the main memory device 902, the auxiliary memory device 903, a register and a cache memory within the processor 901.
[0224] Furthermore, the programs for implementing the functions of the tax transaction data acquisition unit 101, the program management unit 102, the display unit 103, and the operation unit 104 may be stored on a portable recording medium such as a magnetic disk, a flexible disk, an optical disc, a compact disc, a Blu-ray disc (registered trademark), a DVD, or the like. It is also permissible to distribute a portable recording medium on which the programs for implementing the functions of the tax transaction data acquisition unit 101, the program management unit 102, the display unit 103, and the operation unit 104 are stored.
[0225] Furthermore, at least each “unit” of the control transaction data acquisition unit 101, the program management unit 102, the display unit 103 and the operation unit 104 can be replaced by “circuit”, “step”, “operation”, “process” or “circuit”.
[0226] Furthermore, 10 can be implemented by a processing circuit. The processing circuit could be, for example, a logic IC (integrated circuit), a GA (gate array), an ASIC (application-specific integrated circuit), or an FPGA (field-programmable gate array).
[0227] In this case, the control transaction data acquisition unit 101, the program management unit 102, the display unit 103 and the operation unit 104 are each implemented as part of the processing circuit.
[0228] In this specification, a general term for the processor and processing circuit is referred to as the "processing circuit".
[0229] This means that both the processor and the processing circuit are a concrete example of a "processing circuit". Reference symbol list
[0230] 100: Data processing unit; 101: Control operation data acquisition unit; 102: Program management unit; 103: Display unit; 104: Operation unit; 200: Control operation data; 201: Condition; 202: Control process; 300: Control program; 301: State determination block; 302: Control execution block; 901: Processor; 902: Main memory device; 903: Auxiliary memory device; 904: Input / output device QUOTES INCLUDED IN THE DESCRIPTION
[0000] This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited patent literature
[0000] JP 3426405
[0004] JP 5-173609 A
[0004] JP 2021-149853 A
[0004] Cited non-patent literature
[0000] Guidebook for collection of standard practices of sequence control programs using PLC, sequence, PLC, control, mechatronics / book, magazine, THE NIKKAN KOGYO SHINBUN, LTD. (nikkan.co.jp)
[0006]
Claims
[1] Data processing facility, comprising: a tax transaction data acquisition unit to acquire tax transaction data indicating a tax transaction using a plurality of ordered conditions and a plurality of tax variables, each of which is associated with any of the plurality of conditions, and which are assigned a value depending on the success or failure of an associated condition, which is the condition that is associated; a first subprogram generation unit to sequentially select each condition from the multitude of conditions, and for each selected condition, which is the selected condition, to generate a first subprogram to set a value of a state variable of the selected condition based on the success or failure of the selected condition and a value of a state variable of a preceding condition, which is a condition with an order before the selected condition, according to the control operation; a second subprogram generation unit to sequentially select a respective control variable from the multitude of control variables, and for each selected control variable, which is the selected control variable, to generate a second subprogram to determine a value to be assigned to the selected control variable, based on a value of a state variable of the associated condition for the selected control variable, according to the control operation; and a program generation unit to generate a program that reflects the control process using the first subprogram and the second subprogram. [2] Data processing device according to claim 1, wherein the first subprogram generation unit generates the first subprogram to determine the value of the state variable of the selected condition based on the success or failure of the selected condition and a value of a state variable of a condition with an order immediately preceding the selected condition. [3] Data processing device according to claim 1, wherein the first subprogram generation unit generates a state variable of a start point of the control process, and if a condition with an earliest order among the plurality of conditions is the selected condition, the first subprogram is generated to determine a value of a state variable of the condition with the earliest order which is the selected condition, based on success or failure of the condition with the earliest order which is the selected condition, and a value of the state variable of the start point. [4] Data processing device according to claim 3, wherein the first subprogram generation unit generates a state variable of an endpoint of the control process, and generates the first subprogram to set the value of the state variable of the start point based on a value of the state variable of the endpoint. [5] Data processing device according to claim 1, wherein the first subprogram generation unit generates the first subprogram to determine the value of the state variable of the selected condition based on the success or failure of the selected condition or the value of the state variable of the selected condition and the value of the state variable of the preceding condition. [6] Data processing device according to claim 1, wherein the control operation data acquisition unit acquires the control operation data in which a condition accompanying a logical operation of a plurality of subconditions is included in the plurality of conditions, and wherein if the condition accompanying the logical operation of the plurality of subconditions is the selected condition, the first subprogram generation unit generates the first subprogram to determine the value of the state variable of the selected condition based on the success or failure of the selected condition based on a result of the logical operation of the plurality of subconditions and the value of the state variable of the preceding condition. [7] Data processing device according to claim 1, wherein the control process data acquisition unit acquires the control process data in which a condition accompanying a determination as to whether a timer has expired is included in the plurality of conditions, and if the condition accompanying the determination as to whether the timer has expired is the selected condition, generates the first subprogram to set the value of the state variable of the selected condition based on success or failure of the selected condition based on a determination result as to whether the timer has expired, and the value of the state variable of the preceding condition. [8] Data processing device according to claim 1, wherein the control operation data acquisition unit acquires the control operation data in which a composite control variable, which is a control variable, is associated with two or more condition sets, each of which is a combination of two or more conditions, and in which one condition, which is contained in each of the two or more condition sets, is associated as the associated condition, is contained in the plurality of control variables, and wherein, if the composite control variable is the selected control variable, the second subprogram generation unit generates, for each of the two or more condition sets associated with the composite control variable, the second subprogram to determine a value, which is assigned to the composite control variable based on a combination of values of state variables of the associated condition contained in the condition sets,to be assigned. [9] Data processing device according to claim 1, wherein the control operation data acquisition unit acquires the control operation data in which a change control variable, which is a control variable to which two or more conditions are assigned as associated conditions, and to which a value is to be assigned when the associated conditions are satisfied, varies depending on the respective associated conditions, is contained in the plurality of control variables, and if the change control variable is the selected control variable, the second subprogram generation unit generates the second subprogram to change the value to be assigned to the change control variable based on values of state variables of the associated conditions for the change control variable. [10] Data processing device according to claim 1, wherein the first subprogram generation unit generates the first subprogram to determine the value of the state variable of the selected condition based on the success or failure of the selected condition, the value of the state variable of the preceding condition, and a value of a state variable of a condition of a subsequent order to the selected condition. [11] Data processing device according to claim 10, wherein the first subprogram generation unit generates the first subprogram to determine the value of the state variable of the selected condition based on success or failure of the selected condition, the value of the state variable of the preceding condition, and a value of a state variable of a condition of an order immediately following the selected condition. [12] Data processing device according to claim 1, wherein the first subprogram generation unit generates the first subprogram to initialize all state variables of the plurality of conditions. [13] Data processing device according to claim 1, wherein the first subprogram generation unit generates the first subprogram to set values of all state variables of the plurality of conditions, or a value of one state variable specified among the state variables of the plurality of conditions. [14] Data processing device according to claim 1, wherein the second subprogram generation unit generates the second subprogram to cause all values of the plurality of control variables or a value of a control variable specified among the plurality of control variables to be a predetermined value. [15] Data processing device according to claim 14, wherein, when the second subprogram is generated to cause the value of the control variable specified among the plurality of control variables to be the predetermined value, the second subprogram generation unit generates the second subprogram to change the control variable for which it is caused to be the predetermined value. [16] Data processing device according to claim 1, wherein the control operation data acquisition unit acquires the control operation data in which a plurality of branching conditions generating a plurality of branching routes and a merge condition under which the plurality of branching routes are merged are included in the plurality of conditions, and a synthesis control variable, which is a control variable to which any one of the plurality of branching conditions and the merge condition is assigned as the associated condition, are included in the plurality of control variables. If any of the multiple branch conditions is the selected condition, the first subprogram generation unit generates the first subprogram to set a value of a state variable of the branch condition that is the selected condition, based on the success or failure of the branch condition that is the selected condition, the value of the state variable of the preceding condition of the branch condition that is the selected condition, and a value of a state variable of a branch condition other than the branch condition that is the selected condition. If the merge condition is the selected condition, the first subprogram generation unit generates the first subprogram to set a value of a state variable of the merge condition, which is the selected condition, based on the success or failure of the merge condition, which is the selected condition, and a value of a state variable of a condition contained in the plurality of branch routes, or a value of a state variable of the plurality of branch conditions, and If the synthesis control variable is the selected control variable, the second subprogram generation unit generates a second program to determine a value to be assigned to the synthesis control variable, which is the selected control variable, based on the value of the state variable of the branching condition and the value of the state variable of the merge condition, which is the assigned condition for the synthesis control variable, which is the selected control variable. [17] Data processing device according to claim 1, further comprising an instruction acquisition unit for acquiring an instruction to specify a program type of the first subprogram and the second subprogram, wherein the first subprogram generation unit generates the first subprogram that conforms to the program type specified by the instruction, and wherein the second subprogram generation unit generates the second subprogram that conforms to the program type specified by the instruction. [18] Data processing procedures, in full: by a computer, acquiring tax transaction data specifying a tax transaction, using a multitude of ordered conditions and a multitude of tax variables, each of which is assigned to any of the multitude of conditions, and to which a value is assigned depending on the success or failure of an assigned condition, which is the assigned condition; by the computer, sequentially selecting each condition from the multitude of conditions, and generating, for each selected condition, which is the selected condition, a first subprogram to determine a value of a state variable of the selected condition based on the success or failure of the selected condition and a value of a state variable of a preceding condition, which is a condition with an order before the selected condition, according to the control process; by the computer, sequentially selecting a respective control variable from the multitude of control variables, and generating, for each selected control variable, which is the selected control variable, a second subprogram to determine a value to be assigned to the selected control variable, based on a value of a state variable of the associated condition for the selected control variable, according to the control operation; and by the computer, generating a program that mirrors the control process, using the first subprogram and the second subprogram. [19] Data processing program that causes a computer to execute: a tax transaction data acquisition process to acquire tax transaction data indicating a tax transaction using a plurality of ordered conditions and a plurality of tax variables, each of which is associated with any of the plurality of conditions, and which are assigned a value depending on the success or failure of an associated condition, which is the condition that is associated; a first subprogram generation process to sequentially select a particular condition from the multitude of conditions, and for each selected condition, which is the selected condition, to generate a first subprogram to set a value of a state variable of the selected condition based on the success or failure of the selected condition and a value of a state variable of a preceding condition, which is a condition with an order before the selected condition, according to the control operation; a second subprogram generation process to sequentially select a respective control variable from the multitude of control variables, and for each selected control variable, which is the selected control variable, to generate a second subprogram to determine a value to be assigned to the selected control variable, based on a value of a state variable of the associated condition for the selected control variable, according to the control operation; and a program generation process to generate a program that mirrors the control process using the first subprogram and the second subprogram.
Citation Information
Patent Citations
JP002011039612A
JP000003426405B2