WO2016166876A1 - プログラム診断装置、プログラム診断方法及びプログラム診断プログラム - Google Patents
プログラム診断装置、プログラム診断方法及びプログラム診断プログラム Download PDFInfo
- Publication number
- WO2016166876A1 WO2016166876A1 PCT/JP2015/061757 JP2015061757W WO2016166876A1 WO 2016166876 A1 WO2016166876 A1 WO 2016166876A1 JP 2015061757 W JP2015061757 W JP 2015061757W WO 2016166876 A1 WO2016166876 A1 WO 2016166876A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instruction
- search
- condition
- control program
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
Definitions
- the present invention relates to a program diagnostic apparatus, a program diagnostic method, and a program diagnostic program for diagnosing a control program.
- control program In a control system that controls a machine in the FA (Factory Automation) field, the control program is described in a program language.
- the programming language is exemplified by a ladder (Ladder, LD) language or a structured text (Structured Text, ST) language (IEC 61131-3, JIS B 3503: 2012).
- the control program includes instructions and variables. In order to investigate the cause when the value of a certain variable in the control program is different from the expected value, the following operation was performed manually.
- the first operation is an operation that goes back through the control program and examines the location and conditions that may change the value of the target variable.
- the second operation is an operation to reproduce that the condition is satisfied at the location examined in the first operation by executing a simulation of the control program.
- the third operation is an operation to go back further in the control program and check the location and conditions that satisfy the conditions reproduced in the second operation.
- a first process of finding a block including an output command part capable of operating this value from all blocks in the ladder program using an abnormality in the output command part as a search key The logical operation of the conditional instruction part of the block found in the first process is performed, the state of the output instruction part of this block corresponding to the logical operation result of this conditional instruction part is determined, and this block outputs the abnormal output
- the sequence diagram acquisition unit acquires a sequence diagram of an operation state, and the selection unit selects a desired symbol in the operation sequence diagram, so that an upstream connection related to the symbol is obtained.
- the connection line search unit searches for the line, and it is possible to easily obtain the presence or absence of the output of the operation state, and even if the operation state changes, the data is read and the defective part is sequentially searched. Possible sequence diagram monitors are described (summary).
- JP 2001-67122 A Japanese Patent Laid-Open No. 3-108005 JP-A-9-305207
- the present invention has been made in view of the above, and an object of the present invention is to obtain a program diagnostic apparatus that can make it easy for a user to grasp the overall image of a problem.
- the present invention can be described by a control program including an operation instruction for changing an argument value and a condition instruction for determining a condition for executing the operation instruction, and the control program Stores instruction specification data including the instruction name of the instruction, the type of operation instruction or conditional instruction, and the processing contents of the instruction, and search result data in which search results executed for the control program are accumulated.
- a storage unit is provided.
- the present invention searches a control program for a variable setting unit that sets a target variable, an operation instruction that may change the value of the target variable, and obtains the searched operation instruction and instruction specification data.
- a condition for executing the operation command searched by the operation search unit and the operation search unit that collates and writes the target variable name, the command name of the searched operation command, the type of the command, and the processing content to the search result data
- the conditional instruction for determining the condition is searched from the control program, the searched conditional instruction is compared with the instruction specification data, the variable name of the argument of the searched conditional instruction, and the instruction name of the searched conditional instruction Writes the command type and processing contents to the search result data, sets the argument of the searched conditional command to a new target variable, searches the operation search unit and the condition search unit It comprises a search determination unit to be executed again, and the list display unit for displaying a list of contents of the search result data.
- the program diagnostic apparatus has an effect that it is easy for the user to grasp the whole picture of the problem.
- FIG. The figure which shows the structure of the control system concerning Embodiment 1.
- FIG. The figure which shows the hardware constitutions of the control apparatus concerning Embodiment 1.
- FIG. 1 is a diagram illustrating a configuration of a control system according to the first embodiment of the present invention.
- the control system 1 includes an engineering tool 2, a control device 3, and machines 4 and 5.
- the engineering tool 2 creates project data including a control program executed by the control device 3 and transmits it to the control device 3.
- the control device 3 controls the machines 4 and 5 by executing a control program included in the project data.
- the control device 3 is exemplified by programmable controllers (JIS B 3502: 2011, programmable controllers (PLC)).
- FIG. 2 is a diagram illustrating a hardware configuration of the control device according to the first embodiment.
- the control device 3 includes a main board 3a and sub boards 3b and 3c.
- the main board 3a includes a CPU (Central Processing Unit) 3a1, a memory 3a2 which is a RAM (Random Access Memory), a communication interface 3a3, a bus interface 3a4, and a storage unit 3a5.
- the CPU 3a1, the memory 3a2, the communication interface 3a3, the bus interface 3a4, and the storage unit 3a5 are connected via an internal bus B1.
- the communication interface 3a3 communicates with the engineering tool 2.
- the bus interface 3a4 is a bus bridge circuit that connects the internal bus B1 and the expansion bus B2.
- the sub boards 3b and 3c are connected to the main board 3a via the expansion bus B2.
- the sub board 3 b is connected to the machine 4.
- the sub board 3 c is connected to the machine 5.
- the storage unit 3a5 stores the project data 24a received from the engineering tool 2.
- the storage unit 3a5 is exemplified by SSD (Solid State Drive) or HDD (Hard Disk Drive).
- the project data 24a includes an operation instruction that changes the value of an argument and a control program 24a1 that includes a condition instruction that determines a condition for executing the operation instruction, a control parameter 24a2 that is referred to when the control program 24a1 is executed, and a memory 3a2 It includes a device memory 24a3 that defines a work area, and connection information 24a4 that defines a connection relationship between the sub-board 3b and the machine 4 and a connection relationship between the sub-board 3c and the machine 5.
- the control program 24a1 includes a MAIN (main) program 24a1a and a SUB (sub) program 24a1b.
- the control program 24a1 is described in a ladder language, but the present invention is not limited to this.
- a structured text language is exemplified.
- each of the plurality of devices in the memory 3a2 corresponds to a variable of the control program 24a1.
- FIG. 3 is a diagram illustrating a hardware configuration of the engineering tool according to the first embodiment.
- the engineering tool 2 according to the first embodiment can be realized using a computer.
- the computer includes a CPU 21, a RAM 22, a ROM (Read Only Memory) 23, a storage unit 24, an input unit 25, a display unit 26, and a communication interface 27.
- the CPU 21, RAM 22, ROM 23, storage unit 24, input unit 25, display unit 26, and communication interface 27 are connected via a bus B.
- the CPU 21 executes programs stored in the ROM 23 and the storage unit 24 while using the RAM 22 as a work area.
- Examples of the program stored in the ROM 23 include BIOS (Basic Input / Output System) or UEFI (Unified Extensible Firmware Interface).
- Examples of the program stored in the storage unit 24 include an operating system program and an engineering tool program.
- the storage unit 24 is exemplified by an SSD or an HDD.
- the input unit 25 receives an operation input from the user.
- the input unit 25 is exemplified by a keyboard or a mouse.
- the display unit 26 displays characters and images.
- the display unit 26 is exemplified by a liquid crystal display device.
- the communication interface 27 communicates with the control device 3.
- FIG. 4 is a diagram illustrating functional blocks of the engineering tool according to the first embodiment.
- the storage unit 24 stores project data 24a.
- the project data 24a includes an operation instruction for changing the value of an argument and a control program 24a1 including a condition instruction for determining a condition for executing the operation instruction, a control parameter 24a2 referred to when the control program 24a1 is executed, A device memory 24a3 that defines a work area in the memory 3a2, a connection relationship between the sub-board 3b of the control device 3 and the machine 4, and connection information 24a4 that defines a connection relationship between the sub-board 3c of the control device 3 and the machine 5; ,including.
- the storage unit 24 stores instruction specification data 24b including instruction names of all instructions that can be described in the control program 24a1, types of operation instructions or conditional instructions, and instruction processing contents.
- the control program 24a1 is described in a ladder language. Therefore, the instruction specification data 24b includes instruction names of all instructions in the ladder language, types of operation instructions or conditional instructions, and instruction processing contents.
- FIG. 5 is a diagram showing instruction specification data of the engineering tool according to the first embodiment.
- the instruction specification data 24b includes an instruction name item 24b1, an instruction type item 24b2, an explanatory note item 24b3, and a remarks item 24b4.
- the line 51 of the instruction specification data 24b includes information related to the “LD” (load) instruction.
- the command name “LD” is described in the command name item in the row 51. Since the LD instruction is a conditional instruction, the instruction type “condition” is described in the instruction type item in the row 51.
- the description of the operation of the “LD” instruction is described in the item of the description in the line 51. Since the “LD” command is a command for determining whether or not the first argument is ON, the description “# 1 is ON” is described in the description item of the row 51. ing.
- the line 52 of the instruction specification data 24b includes information related to the “OUT” instruction.
- the command name “OUT” is described in the command name item in the line 52.
- the command type “operation” is described in the command name item in the line 52.
- the line 54 of the instruction specification data 24b includes information regarding the “MOV” (move) instruction.
- the command name “MOV” is described in the command name item on the line 54. Since the “MOV” instruction is a conditional instruction, the instruction type “operation” is described in the instruction type item of the line 54.
- FIG. 5 shows four lines 51, 52, 53, and 54 related to four instructions.
- the instruction specification data 24b includes a plurality of lines relating to all instructions described in the ladder language.
- the storage unit 24 stores search end condition data 24c in which a search end condition to be executed for the control program 24a1 is described.
- the search end condition data 24c includes search count data 24c1 and search range data 24c2.
- FIG. 6 is a diagram showing search frequency data of the engineering tool according to the first embodiment. “10” is described in the search count data 24c1. Thereby, the search performed with respect to the control program 24a is completed up to 10 times.
- FIG. 7 is a diagram showing search range data of the engineering tool according to the first embodiment.
- the search range data 24c2 includes a range start step number item and a range end step number item. “1” is described in the item of the range top step number. In the range end step number item, “100” is described. As a result, the search executed for the control program 24a1 is limited to the range from step number 1 to step number 100, and ends when it falls outside this range.
- the storage unit 24 stores search result data 24d in which search results executed for the control program 24a1 are accumulated.
- FIG. 8 is a diagram showing search result data of the engineering tool according to the first embodiment.
- the search result data 24d includes a variable name item 24d1, an instruction name item 24d2, an instruction type item 24d3, an explanatory text item 24d4, a program name item 24d5, and a step number item 24d6. .
- the rows 61, 62, 63 and 64 of the search result data 24d will be described in the description of the operation of the engineering tool 2.
- the storage unit 24 stores the execution data 24e in which the values at the predetermined timing of all variables used in the control program 24a1 are stored. That is, the execution data 24e stores the values of all variables at a plurality of different timings.
- the search result data 24d will be described in the description of the operation of the engineering tool 2.
- the CPU 21 executes the engineering tool program stored in the storage unit 24. Thereby, the engineering tool part 21a including the project data creation part 21a1 and the program diagnosis part 21a2 is realized.
- the project data creation unit 21a1 creates project data 24a and transmits it to the control device 3.
- FIG. 9 is a diagram showing a project data creation screen of the engineering tool according to the first embodiment.
- the project data creation unit 21a1 displays the project data creation screen 30 on the display unit 26.
- the project data creation screen 30 has a control program creation field 30a.
- a MAIN program 24a1a is created in the control program creation field 30a.
- the MAIN program 24a1a includes lines 41, 42, 43, 44, 45 and 46.
- the line 41 includes a conditional instruction 41a and an operation instruction 41b.
- the conditional instruction 41a is “LD M0”.
- M0 is a variable.
- the combination of the letter “M” and a numerical value represents a bit type variable.
- the operation command 41b is “INC D0”. Among these, “D0” is a variable. In the first embodiment, the combination of the letter “D” and the numerical value represents a word type variable.
- the “INC” (increment) instruction is an instruction for incrementing the first argument by one. That is, the operation command 41b is a command for incrementing the variable “D0” by one.
- the line 42 includes a condition command 42a and an operation command 42b.
- the conditional instruction 42a is “LD M100”. Among these, “M100” is a variable.
- the operation command 42b is “MOV D0 D10”.
- “D10” is a variable.
- the “MOV” instruction is an instruction for transferring the value of the first argument to the second argument. That is, the operation instruction 42b is an instruction for transferring the value of the variable “D0” to the variable “D10”.
- the line 43 includes a conditional instruction 43a and an operation instruction 43b.
- the condition instruction 43a is “LD M200”. Among these, “M200” is a variable.
- the operation command 43b is “OUT Y0”.
- “Y0” is a variable.
- the combination of the letter “Y” and a numerical value represents a bit type variable. That is, the operation command 43b is a command for turning on the variable “Y0”.
- the line 44 includes a condition command 44a and an operation command 44b.
- the operation command 44b is “MOV K15 D20”. Among these, “K15” is a constant “15”, and “D20” is a variable. That is, the operation command 44b is a command for transferring the constant “15” to the variable “D20”.
- the line 45 includes a conditional instruction 45a and an operation instruction 45b.
- the conditional instruction 45a is an OR (logical sum) of “LD M10”, “LD M11”, and “LD M12”.
- “M10”, “M11”, and “M12” are variables. That is, the conditional instruction 45a is an instruction for determining the logical sum of the value of the variable “M10”, the value of the variable “M11”, and the value of the variable “M12”.
- the operation command 45b is “MOV D20 D30”.
- “D30” is a variable. That is, the operation instruction 45b is an instruction for transferring the value of the variable “D20” to the variable “D30”.
- Line 46 is an end command.
- the program diagnosis unit 21a2 includes a variable setting unit 21a2a for setting a target variable.
- the variable setting unit 21a2a can receive a variable input by the user to the input unit 25 and set it as a target variable. Further, the variable setting unit 21a2a can receive a variable in which a problem has occurred from the control device 3 and set it as a target variable.
- the program diagnosis unit 21a2 searches the control program 24a1 for an operation command that may change the value of the target variable, collates the searched operation command with the command specification data 24b, and sets the target variable name. And an operation search unit 21a2b that writes the instruction name, instruction type, and processing content of the searched operation instruction in the search result data 24d.
- the program diagnosis unit 21a2 searches the control program 24a1 for a condition command for determining a condition for executing the operation command searched by the operation search unit 21a2b, and compares the searched condition command with the command specification data 24b. ,
- the variable name of the argument of the searched conditional instruction, the instruction name of the searched conditional instruction, the type of instruction, and the contents of the process are written in the search result data 24d, and the argument of the searched conditional instruction is set to the new target It includes a condition search unit 21a2c that is set to a variable.
- the program diagnosis unit 21a2 includes a search determination unit 21a2d that causes the operation search unit 21a2b and the condition search unit 21a2c to execute the search again.
- the program diagnosis unit 21a2 includes a list display unit 21a2e that displays a list of contents of the search result data 24d.
- the program diagnosis unit 21a2 scans the memory 3a2 of the control device 3 at a predetermined timing, thereby acquiring values of all variables used in the control program 24a1, and writing the scan unit 21a2f to the execution data 24e. Including.
- the predetermined timing is exemplified as follows.
- the first example is every certain time.
- the fixed time is exemplified by 1 second.
- the values of all the variables are accumulated in the execution data 24e every certain time.
- a second example is when a notification indicating that a problem has occurred has been received from the control device 3.
- the values of all variables when a problem occurs in the control device 3 are accumulated in the execution data 24e.
- the third example is when the user inputs an instruction to execute scanning to the input unit 25. As a result, the values of all variables at the timing desired by the user are accumulated in the execution data 24e.
- FIG. 10 is a flowchart showing processing of the engineering tool according to the first embodiment.
- the scanning unit 21a2f executes the process shown in FIG. 10 at a predetermined timing.
- step S10 the scan unit 21a2f scans the memory 3a2 of the control device 3 to obtain the values of all variables used in the control program 24a1.
- step S12 the scan unit 21a2f writes the values of all variables acquired in step S10 into the execution data 24e, and ends the process.
- the program diagnosis unit 21a2 includes a simulation unit 21a2g that calculates the values of all variables used in the control program 24a1 by executing the simulation of the control program 24a1, and writes the values in the execution data 24e.
- the program diagnosis unit 21a2 can diagnose the problem of the control program 24a1 without operating the control device 3.
- FIG. 11 is a flowchart showing processing of the engineering tool according to the first embodiment.
- the simulation unit 21a2g executes the process shown in FIG. 11 when the user inputs an instruction to execute the simulation to the input unit 25.
- the simulation unit 21a2g calculates the values of all variables used in the control program 24a1 by executing the simulation of the control program 24a1 in step S20.
- step S22 the simulation unit 21a2g writes the values of all variables calculated in step S20 into the execution data 24e, and ends the process.
- FIG. 12 is a flowchart showing processing of the engineering tool according to the first embodiment.
- the variable setting unit 21a2a sets a target variable in step S100.
- FIG. 13 is a diagram showing a program diagnosis screen of the engineering tool according to the first embodiment.
- the variable setting unit 21a2a displays the program diagnosis screen 70 on the display unit 26.
- the program diagnosis screen 70 has a variable setting column 71.
- the variable “D20” is set as the target variable 72 in the variable setting column 71.
- the variable setting unit 21a2a can receive a variable input by the user to the input unit 25 and set it as the target variable 72. Further, the variable setting unit 21a2a can receive the variable in which the problem has occurred from the control device 3 and set it as the target variable 72.
- step S102 the motion search unit 21a2b searches the control program 24a1 for a motion command in which the target variable 72 is described as an argument.
- the operation retrieval unit 21a2b can retrieve an operation instruction from the control program 24a1 by acquiring the instruction type of the instruction by comparing the instruction in the control program 24a1 with the instruction specification data 24b.
- FIG. 14 is a diagram for explaining the search process of the engineering tool according to the first embodiment.
- the values described in the lower part of each variable are values of each variable at a certain timing, and are values accumulated in the execution data 24e.
- the program diagnosis unit 21a2 uses the values of all the variables scanned when receiving a notification from the control device 3 that a problem has occurred, the program diagnosis unit 21a2 Based on the value of the variable, the control program 24a1 can be diagnosed. Thereby, the program diagnosis part 21a2 can diagnose the problem of the control program 24a1 at the timing when the problem occurs in the control device 3.
- the program diagnosis unit 21a2 may The control program 24a1 can be diagnosed on the basis of the values of all variables at the timing. Thereby, the program diagnosis part 21a2 can diagnose the problem of the control program 24a1 at the timing before the time when the problem occurs in the control device 3.
- variable “D20” set in the target variable 72 is described in the second argument 44b1 of the operation command 44b.
- step S102 the motion search unit 21a2b finds out that the variable “D20” set in the target variable 72 is described in the second argument 44b1 of the motion command 44b. Then, the motion search unit 21a2b acquires the command type “motion” of the command name “MOV” by collating the command name “MOV” of the motion command 44b with the command specification data 24b. Therefore, the motion search unit 21a2b can search for the motion command 44b from the control program 24a1.
- motion search unit 21a2b may obtain the motion command by graphically analyzing the control program 24a1 instead of collating the command name with the command specification data 24b.
- the operation search unit 21a2b has two instructions when two instructions are described in one line, such as lines 41, 42, 43, and 44 of the control program 24a1 shown in FIG.
- the instruction on the right side, that is, the downstream side of the control program 24a1 may be acquired as the operation instruction.
- the operation search unit 21a2b first connects a plurality of instructions to a wired OR connection.
- the point 45a1 that has been set is found.
- the motion search unit 21a2b may acquire the command 45b on the right side of the point 45a1, that is, on the downstream side of the control program 24a1, as the motion command.
- the motion search unit 21a2b can search for the motion command from the control program 24a1 without collating the command name with the command specification data 24b.
- step S104 the motion search unit 21a2b searches for a motion command in which the value of the target variable may change among the motion commands searched in step S102.
- variable “D20” set in the target variable 72 is described in the second argument 44b1 of the operation command 44b.
- the instruction name “MOV” of the operation instruction 44b is an instruction that transfers the value of the first argument to the second argument.
- step S104 the motion search unit 21a2b can search the control program 24a1 for the motion command 44b in which the value of the variable “D20” set in the target variable 72 may change.
- step S106 the motion search unit 21a2b collates the motion command searched in step S104 with the command specification data 24b, and writes information based on the search result in step S104 into the search result data 24d.
- the motion search unit 21a2b creates a row 61 in step S106. Then, the motion search unit 21a2b writes the variable name “D20”, the command name “MOV”, and the command type “motion” in the items 24d1, 24d2, and 24d3 in the row 61.
- the motion search unit 21a2b collates the motion command 44b retrieved in step S104 with the explanatory text item 24b3 of the command specification data 24b.
- the first argument of the operation instruction 44b is a constant “K15”, and the second argument is a variable “D20”. Therefore, the motion search unit 21a2b creates an explanatory note “K15 is transferred to D20” and writes it in the item 24d4 of the row 61.
- the motion search unit 21a2b writes the program name “MAIN” including the motion command 44b in the item 24d5 in the row 61.
- the operation command 44b is the 11th step of the MAIN program 24a1a. Therefore, the operation command unit 21a2b writes the step number “11” in the item 24d6 of the row 61.
- the condition search unit 21a2c searches the control program 24a1 for a condition command for determining a condition for executing the motion command searched by the motion search unit 21a2b.
- the condition retrieval unit 21a2c can retrieve a condition instruction from the control program 24a1 by acquiring the instruction type of the instruction by comparing the instruction in the control program 24a1 with the instruction specification data 24b.
- the search result by the condition search unit 21a2c may have a plurality of locations.
- condition search unit 21a2c may acquire an operation command by analyzing the control program 24a1 graphically instead of collating the command name with the command specification data 24b.
- condition search unit 21a2c performs two instructions when two instructions are described in one line as in lines 41, 42, 43, and 44 of the control program 24a1 shown in FIG.
- the instruction on the left side, that is, the upstream side of the control program 24a1 may be acquired as an operation instruction.
- the operation search unit 21a2b first connects a plurality of instructions to a wired OR connection. The point 45a1 that has been set is found. Then, the motion search unit 21a2b may acquire the command 45a on the left side of the point 45a1, that is, on the upstream side of the control program 24a1, as the motion command.
- condition retrieval unit 21a2c can retrieve the condition instruction from the control program 24a1 without collating the instruction name with the instruction specification data 24b.
- conditional instruction 44a is described on the left side of the operation instruction 44b, that is, on the upstream side of the MAIN program 24a1a.
- step S108 the condition search unit 21a2c can search the control program 24a1 for the condition command 44a for determining the condition for executing the operation command 44b.
- step S110 the condition search unit 21a2c collates the condition instruction searched in step S108 with the instruction specification data 24b, and obtains information based on the search result in step S108 as search result data 24d. Write to.
- condition search unit 21a2c collates the condition command 44a searched in step S108 with the explanatory text item 24b3 of the command specification data 24b.
- the first argument of the conditional instruction 44a is a variable “D10”, and the second argument is a constant “K10000”. Therefore, the condition search unit 21a2c creates an explanatory note “D10 is equal to K10000” and writes it in the item 24d4 of the line 62.
- condition search unit 21a2c writes the program name “MAIN” including the condition command 44a in the item 24d5 of the line 62.
- conditional instruction 44a is the eighth step of the MAIN program 24a1a. Therefore, the condition command part 21a2c writes the step number “8” in the item 24d6 of the line 62.
- step S112 the condition search unit 21a2c sets the argument of the condition instruction searched in step S110 as a new target variable 72.
- condition search unit 21a2c There may be a plurality of new target variables 72 set by the condition search unit 21a2c.
- the condition search unit 21a2c does not set a new target variable 72 when the control program 24a1 cannot be traced further.
- FIG. 15 is a diagram for explaining the search process of the engineering tool according to the first embodiment.
- conditional instruction 44a includes a first argument 44a1 “D10” and a second argument “K10000”.
- the second argument “K10000” is a constant and not a variable. Therefore, the condition search unit 21a2c sets the first argument 44a1 “D10” to the new target variable 72 in step S112.
- the search determination unit 21a2d determines whether or not the search end condition is satisfied in step S114.
- the search termination condition is exemplified as follows.
- the first example is a case where a new target variable 72 is not set in step S112. That is, it is a case where the control program 24a1 cannot be traced further.
- a second example is a case where the number of repetitions of the search from step S102 to step S112 by the action search unit 21a2b and the condition search unit 21a2c reaches the number described in the search count data 24c1.
- the program diagnosis unit 21a2 can prevent the search from being finished and can ensure that the search is stopped, that is, it is possible to ensure the stop of the search.
- the program diagnosis unit 21a2 can limit the search range even when the scale of the control program 24a1 is large, so that it is possible to reduce the man-hours for identifying the cause of the problem of the control program 24a1.
- a third example is a case where the new target variable 72 set in step S112 by the condition search unit 21a2c is outside the range of the step number described in the search range data 24c2.
- the program diagnosis unit 21a2 has an effect of ensuring search stoppage.
- the program diagnosis unit 21a2 can limit the search range even when the scale of the control program 24a1 is large, so that it is possible to reduce the man-hours for identifying the cause of the problem of the control program 24a1.
- the search determination unit 21a2d can determine an OR (logical sum) of a plurality of search end conditions.
- step S114 determines in step S114 that the search condition is not satisfied (No) If the search determination unit 21a2d determines in step S114 that the search condition is not satisfied (No), the process proceeds to step S102.
- FIG. 16 is a diagram for explaining the search process of the engineering tool according to the first embodiment.
- the operation command 42b includes a first argument “D0” and a second argument 42b1 “D10”.
- step S102 and step S104 the motion search unit 21a2b finds out that the variable “D10” set in the target variable 72 is described in the second argument 42b1 of the motion command 42b. Then, the motion search unit 21a2b acquires the command type “motion” of the command name “MOV” by collating the command name “MOV” of the motion command 42b with the command specification data 24b. Accordingly, the motion search unit 21a2b can search the control program 24a1 for the motion command 42b.
- the motion search unit 21a2b creates a row 63 in step S106. Then, the motion search unit 21a2b writes the variable name “D0”, the command name “MOV”, and the command type “motion” in the items 24d1, 24d2, and 24d3 in the row 63.
- the motion search unit 21a2b collates the motion command 42b retrieved in step S104 with the explanatory text item 24b3 of the command specification data 24b.
- the first argument of the operation instruction 42b is a variable “D0”, and the second argument is a variable “D10”. Therefore, the motion search unit 21a2b creates an explanatory note “D0 is transferred to D10” and writes it in the item 24d4 of the row 63.
- the motion search unit 21a2b writes the program name “MAIN” including the motion command 42b in the item 24d5 in the row 63.
- the operation command 42b is the fourth step of the MAIN program 24a1a. Accordingly, the operation command unit 21a2b writes the step number “4” in the item 24d6 of the row 63.
- conditional instruction 42a is described on the left side of the operation instruction 42b, that is, on the upstream side of the MAIN program 24a1a.
- step S108 the condition search unit 21a2c can search the control program 24a1 for a condition command 42a for determining a condition for executing the operation command 42b.
- step S110 the condition search unit 21a2c collates the condition instruction searched in step S108 with the instruction specification data 24b, and writes information based on the search result in step S108 into the search result data 24d.
- condition search unit 21a2c creates a row 64 in step S110. Then, the condition search unit 21a2c writes the variable name “M100”, the instruction name “LD”, and the instruction type “condition” in the items 24d1, 24d2, and 24d3 in the row 64.
- condition search unit 21a2c collates the condition command 42a searched in step S108 with the explanatory text item 24b3 of the command specification data 24b.
- the first argument of the conditional instruction 42a is a variable “M100”. Therefore, the condition search unit 21a2c creates an explanatory note “M100 is ON” and writes it in the item 24d4 in the row 64.
- condition search unit 21a2c writes the program name “MAIN” including the condition instruction 42a in the item 24d5 in the row 64.
- the conditional instruction 42a is the third step of the MAIN program 24a1a. Therefore, the condition command part 21a2c writes the step number “3” in the item 24d6 of the row 64.
- condition search unit 21a2c sets the first argument “M100” to the new target variable 72 in step S112.
- step S114 determines in step S114 that the search condition is satisfied (Yes)
- the process proceeds to step S116.
- the search determination unit 21a2d determines that the search condition is satisfied in step S114 (Yes), and advances the process to step S116.
- the list display unit 21a2e displays the contents of the search result data 24d as a list on the display unit 26 in step S116.
- FIG. 17 is a diagram showing a program diagnosis screen of the engineering tool according to the first embodiment.
- the list display unit 21a2e displays a list of the contents of the search result data 24d in the list display field 80 of the program diagnosis screen 70.
- the list display field 80 includes a program name item 81, a step number item 82, a variable name item 83, a command name item 84, a command type item 85, and an explanatory text item 86. .
- the list display unit 21a2e displays the contents of the rows 61, 62, 63, and 64 of the search result data 24d in the rows 91, 92, 93, and 94, respectively.
- the program diagnosis unit 21a2 displays not only the contents of the instruction causing the problem displayed in the line 94 and the contents of the instruction causing the problem displayed in the line 91, but also the line
- the contents of the instructions related to the instruction causing the problem and the instruction causing the problem displayed in the line 93 and the line 92 can also be displayed in a list.
- the program diagnosis unit 21a2 has an effect that the user can easily grasp the whole image between the instruction that caused the problem and the instruction that caused the problem.
- FIG. 18 is a flowchart showing processing of the engineering tool according to the first embodiment.
- the list display unit 21a2e displays the command 44b, 44a, 42b, or 42a corresponding to the step number in the item 82a of the selected line.
- the program diagnostic unit 21a2 has an effect that the user can immediately confirm a desired command.
- the list display column 80 inputs a filter condition input column 81a for inputting a filter condition for a program name, a filter condition input column 82a for inputting a filter condition for a step number, and a filter condition for a variable name.
- Filter condition input field 83a for inputting Filter condition input field 84a for inputting the filter condition of the instruction name
- Filter condition input field 85a for inputting the filter condition of the instruction type
- the filter condition of the explanatory text A filter condition input field 86a.
- FIG. 19 is a flowchart showing processing of the engineering tool according to the first embodiment.
- the list display unit 21a2e When an instruction name is input to the filter condition input field 84a in step S202, the list display unit 21a2e lists lines that match the filter condition input in the lines 91, 92, 93, and 94 of the search result data 24d. indicate. For example, when “MOV” is input to the filter condition input field 84a, the list display unit 21a2e displays only the lines 91 and 93.
- the program diagnosis unit 21a2 has an effect that the user can reduce the man-hours for specifying the cause of the problem by narrowing down the commands related to the problem.
- the operation search unit 21a2b can acquire the instruction type “operation” of the instruction name by collating the instruction name with the instruction specification data 24b.
- the operation search unit 21a2b can search the operation program from the control program 24a1.
- condition search unit 21a2c can acquire the instruction type “condition” of the instruction name by collating the instruction name with the instruction specification data 24b.
- condition retrieval unit 21a2c can retrieve the condition instruction from the control program 24a1.
- the storage unit 24 stores search end condition data 24c in which a search end condition executed for the control program 24a1 is described.
- the search determination unit 21a2d determines that the search satisfies the end condition, the search determination unit 21a2d ends the search by the operation search unit 21a2b and the condition search unit 21a2c.
- the program diagnosis unit 21a2 has an effect of ensuring search stoppage.
- the search determination unit 21a2d can limit the search range even when the scale of the control program 24a1 is large. Therefore, the program diagnosis unit 21a2 has an effect of suppressing the man-hour for specifying the cause of the problem of the control program 24a1.
- the storage unit 24 stores execution data 24e in which values at predetermined timings of all variables used in the control program 24a1 are accumulated.
- the scan unit 21a2f scans the memory 3a2 of the control device 3 at a predetermined timing, thereby acquiring the values of all variables used in the control program 24a1 and writing them in the execution data 24e.
- the program diagnosis unit 21a2 uses the values of all the variables scanned when it receives notification from the control device 3 that a problem has occurred, the timing at which the problem occurs in the control device 3.
- the control program 24a1 can be diagnosed based on the values of all the variables.
- the program diagnosis part 21a2 can diagnose the problem of the control program 24a1 at the timing when the problem occurs in the control device 3.
- the program diagnosis unit 21a2 uses the values of all variables before the time when the notification that the problem has occurred from the control device 3 is received for the search, the program diagnosis unit 21a2
- the control program 24a1 can be diagnosed based on the values of all variables at earlier timings. Thereby, the program diagnosis part 21a2 can diagnose the problem of the control program 24a1 at the timing before the time when the problem occurs in the control device 3.
- the simulation unit 21a2g calculates the values of all variables used in the control program 24a1 by executing the simulation of the control program 24a1, and writes the values in the execution data 24e.
- the program diagnosis unit 21a2 can diagnose the problem of the control program 24a1 without operating the control device 3.
- the configuration described in the above embodiment shows an example of the contents of the present invention, and can be combined with another known technique, and can be combined with other configurations without departing from the gist of the present invention. It is also possible to omit or change the part.
- control system 2 engineering tool, 3 control device, 4, 5 machine, 21 CPU, 21a1, project data creation unit, 21a2 program diagnosis unit, 21a2a variable setting unit, 21a2b operation search unit, 21a2c condition search unit, 21a2d search determination unit 21a2e list display section, 21a2f scan section, 21a2g simulation section, 24 storage section, 24a project data, 24a1 control program, 24b instruction specification data, 24c search end condition data, 24d search result data, 24e execution data.
Abstract
Description
図1は、本発明の実施の形態1にかかる制御システムの構成を示す図である。制御システム1は、エンジニアリングツール2と、制御装置3と、機械4及び5と、を含む。
Claims (10)
- 引数の値を変化させる動作命令及び前記動作命令を実行する条件を判定する条件命令を含む制御プログラムと、前記制御プログラムで記述され得る命令の命令名、前記動作命令又は前記条件命令の種別、並びに、命令の処理の内容を含む命令仕様データと、前記制御プログラムに対して実行される検索の結果が蓄積される検索結果データと、を記憶する記憶部と、
ターゲットの変数を設定する変数設定部と、
前記ターゲットの変数の値が変化する可能性がある前記動作命令を前記制御プログラムの中から検索して、検索された前記動作命令と前記命令仕様データとを照合し、前記ターゲットの変数名、並びに、検索された前記動作命令の命令名、命令の種別及び処理の内容を前記検索結果データに書き込む動作検索部と、
前記動作検索部で検索された前記動作命令を実行する条件を判定する前記条件命令を前記制御プログラムの中から検索して、検索された前記条件命令と前記命令仕様データとを照合し、検索された前記条件命令の引数の変数名、並びに、検索された前記条件命令の命令名、命令の種別及び処理の内容を前記検索結果データに書き込み、検索された前記条件命令の引数を新たなターゲットの変数に設定する条件検索部と、
前記動作検索部及び前記条件検索部に検索を再度実行させる検索判定部と、
前記検索結果データの内容を一覧表示する一覧表示部と、
を備えることを特徴とするプログラム診断装置。 - 前記動作検索部は、前記制御プログラムの中の命令と前記命令仕様データとを照合することで当該命令の命令種別を取得することにより、前記動作命令を前記制御プログラムの中から検索することを特徴とする請求項1に記載のプログラム診断装置。
- 前記条件検索部は、前記制御プログラムの中の命令と前記命令仕様データとを照合することで当該命令の命令種別を取得することにより、前記条件命令を前記制御プログラムの中から検索することを特徴とする請求項1に記載のプログラム診断装置。
- 前記記憶部は、前記制御プログラムに対して実行される検索の終了条件が記述された検索終了条件データを更に記憶し、
前記検索判定部は、前記動作検索部及び前記条件検索部によって実行された検索が前記終了条件を満たしていると判定したら、前記動作検索部及び前記条件検索部による検索を終了させ、前記動作検索部及び前記条件検索部によって実行された検索が前記終了条件を満たしていないと判定したら、前記動作検索部及び前記条件検索部に検索を再度実行させることを特徴とする請求項1に記載のプログラム診断装置。 - 前記検索終了条件データは、前記動作検索部及び前記条件検索部による検索回数のデータ又は前記制御プログラムの検索範囲のデータであることを特徴とする請求項4に記載のプログラム診断装置。
- 前記一覧表示部は、変数名、又は、検索された条件命令の命令名、命令の種別若しくは処理の内容のフィルタ条件が入力されたら、前記検索結果データの中で前記フィルタ条件に合致するデータの内容を一覧表示することを特徴とする請求項1に記載のプログラム診断装置。
- 前記記憶部は、前記制御プログラムで使用されている全変数の予め定められたタイミングでの値が蓄積される実行データを更に記憶し、
前記予め定められたタイミングで、前記制御プログラムを実行する制御装置のメモリをスキャンすることにより、前記制御プログラムで使用されている全変数の値を取得し、前記実行データに書き込むスキャン部を更に備えることを特徴とする請求項1に記載のプログラム診断装置。 - 前記制御プログラムをシミュレーション実行することにより、前記制御プログラムで使用されている全変数の値を算出し、前記実行データに書き込むシミュレーション部を更に備えることを特徴とする請求項7に記載のプログラム診断装置。
- 引数の値を変化させる動作命令及び前記動作命令を実行する条件を判定する条件命令を含む制御プログラムと、前記制御プログラムで記述され得る命令の命令名、前記動作命令又は前記条件命令の種別、並びに、命令の処理の内容を含む命令仕様データと、前記制御プログラムに対して実行される検索の結果が記録される検索結果データと、を記憶する記憶部を備えるプログラム診断装置で実行される方法であって、
ターゲットの変数を設定する変数設定工程と、
前記ターゲットの変数の値が変化する可能性がある前記動作命令を前記制御プログラムの中から検索して、検索された前記動作命令と前記命令仕様データとを照合し、前記ターゲットの変数名、並びに、検索された前記動作命令の命令名、命令の種別及び処理の内容を前記検索結果データに書き込む動作検索工程と、
前記動作検索工程で検索された前記動作命令を実行する条件を判定する前記条件命令を前記制御プログラムの中から検索して、検索された前記条件命令と前記命令仕様データとを照合し、検索された前記条件命令の引数の変数名、並びに、検索された前記条件命令の命令名、命令の種別及び処理の内容を前記検索結果データに書き込み、検索された前記条件命令の引数を新たなターゲットの変数に設定する条件検索工程と、
前記動作検索工程及び前記条件検索工程に検索を再度実行させる検索判定工程と、
前記検索結果データの内容を一覧表示する一覧表示工程と、
を備えることを特徴とするプログラム診断方法。 - 引数の値を変化させる動作命令及び前記動作命令を実行する条件を判定する条件命令を含む制御プログラムと、前記制御プログラムで記述され得る命令の命令名、前記動作命令又は前記条件命令の種別、並びに、命令の処理の内容を含む命令仕様データと、前記制御プログラムに対して実行される検索の結果が記録される検索結果データと、を記憶する記憶部を備えるプログラム診断装置で実行されるプログラムであって、
ターゲットの変数を設定する変数設定工程と、
前記ターゲットの変数の値が変化する可能性がある前記動作命令を前記制御プログラムの中から検索して、検索された前記動作命令と前記命令仕様データとを照合し、前記ターゲットの変数名、並びに、検索された前記動作命令の命令名、命令の種別及び処理の内容を前記検索結果データに書き込む動作検索工程と、
前記動作検索工程で検索された前記動作命令を実行する条件を判定する前記条件命令を前記制御プログラムの中から検索して、検索された前記条件命令と前記命令仕様データとを照合し、検索された前記条件命令の引数の変数名、並びに、検索された前記条件命令の命令名、命令の種別及び処理の内容を前記検索結果データに書き込み、検索された前記条件命令の引数を新たなターゲットの変数に設定する条件検索工程と、
前記動作検索工程及び前記条件検索工程に検索を再度実行させる検索判定工程と、
前記検索結果データの内容を一覧表示する一覧表示工程と、
を備えることを特徴とするプログラム診断プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020177031427A KR101846140B1 (ko) | 2015-04-16 | 2015-04-16 | 프로그램 진단 장치, 프로그램 진단 방법 및 프로그램 진단 프로그램 |
JP2016555855A JP6076565B1 (ja) | 2015-04-16 | 2015-04-16 | プログラム診断装置、プログラム診断方法及びプログラム診断プログラム |
CN201580078870.3A CN107533322B (zh) | 2015-04-16 | 2015-04-16 | 程序诊断装置及程序诊断方法 |
PCT/JP2015/061757 WO2016166876A1 (ja) | 2015-04-16 | 2015-04-16 | プログラム診断装置、プログラム診断方法及びプログラム診断プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/061757 WO2016166876A1 (ja) | 2015-04-16 | 2015-04-16 | プログラム診断装置、プログラム診断方法及びプログラム診断プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016166876A1 true WO2016166876A1 (ja) | 2016-10-20 |
Family
ID=57126471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/061757 WO2016166876A1 (ja) | 2015-04-16 | 2015-04-16 | プログラム診断装置、プログラム診断方法及びプログラム診断プログラム |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6076565B1 (ja) |
KR (1) | KR101846140B1 (ja) |
CN (1) | CN107533322B (ja) |
WO (1) | WO2016166876A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109791398A (zh) * | 2017-06-27 | 2019-05-21 | 三菱电机株式会社 | 调试装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2020166004A1 (ja) * | 2019-02-14 | 2021-02-18 | 三菱電機株式会社 | 制御システム、プログラマブルロジックコントローラ、方法、及びプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03108005A (ja) * | 1989-09-21 | 1991-05-08 | Sony Corp | ラダーシーケンス方式のプログラムにおける異常の原因箇所究明方法 |
JP2005316986A (ja) * | 2004-03-31 | 2005-11-10 | Omron Corp | 開発支援装置およびアウトライン情報生成プログラムならびにアウトライン情報生成方法 |
JP2011028552A (ja) * | 2009-07-27 | 2011-02-10 | Keyence Corp | プログラム作成支援装置、プログラム作成支援方法及びコンピュータプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272450B2 (en) * | 2004-03-31 | 2007-09-18 | Omron Corporation | Development aid device |
WO2011080945A1 (ja) * | 2009-12-28 | 2011-07-07 | 三菱電機株式会社 | プログラム作成支援装置 |
CN104204975B (zh) * | 2012-03-26 | 2016-10-12 | 三菱电机株式会社 | 定序程序调试辅助装置 |
-
2015
- 2015-04-16 WO PCT/JP2015/061757 patent/WO2016166876A1/ja active Application Filing
- 2015-04-16 KR KR1020177031427A patent/KR101846140B1/ko active IP Right Grant
- 2015-04-16 CN CN201580078870.3A patent/CN107533322B/zh active Active
- 2015-04-16 JP JP2016555855A patent/JP6076565B1/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03108005A (ja) * | 1989-09-21 | 1991-05-08 | Sony Corp | ラダーシーケンス方式のプログラムにおける異常の原因箇所究明方法 |
JP2005316986A (ja) * | 2004-03-31 | 2005-11-10 | Omron Corp | 開発支援装置およびアウトライン情報生成プログラムならびにアウトライン情報生成方法 |
JP2011028552A (ja) * | 2009-07-27 | 2011-02-10 | Keyence Corp | プログラム作成支援装置、プログラム作成支援方法及びコンピュータプログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109791398A (zh) * | 2017-06-27 | 2019-05-21 | 三菱电机株式会社 | 调试装置 |
CN109791398B (zh) * | 2017-06-27 | 2020-12-18 | 三菱电机株式会社 | 调试装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107533322B (zh) | 2019-04-19 |
JPWO2016166876A1 (ja) | 2017-04-27 |
KR101846140B1 (ko) | 2018-04-05 |
KR20170127569A (ko) | 2017-11-21 |
CN107533322A (zh) | 2018-01-02 |
JP6076565B1 (ja) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6359235B2 (ja) | プロセス制御の検索結果を管理するための方法および装置 | |
US10915419B2 (en) | Industrial control system, and assistance apparatus, control assist method, and program thereof | |
JP6430037B2 (ja) | デバッグ支援装置およびデバッグ支援方法 | |
US20190012622A1 (en) | Computer-readable recording medium for visualization of manufacturing-process, method of visualizing manufacturing process, and manufacturing-process visualizing system | |
US8656358B2 (en) | Plant control system and interlock factor specifying method | |
JP6076565B1 (ja) | プログラム診断装置、プログラム診断方法及びプログラム診断プログラム | |
US10846067B2 (en) | Software generation method and software generation system | |
JP2009122936A (ja) | 異常調査用表示機能を備えたシーケンスプログラムモニタ装置およびプログラマブルコントローラ | |
JP2008225683A (ja) | 画面操作システムおよびプログラム | |
JP4928471B2 (ja) | プラント制御システム | |
JPH11224211A (ja) | ソフトウェア検査支援装置 | |
WO2020230241A1 (ja) | テスト装置、テスト方法及びプログラム | |
JPH08179966A (ja) | プログラムテスト装置 | |
JP6840294B1 (ja) | プログラマブル表示器、制御システムおよび解析方法 | |
JP7385147B2 (ja) | 検査スケジュール作成装置及び検査スケジュール作成用プログラム | |
WO2020189142A1 (ja) | 制御システム、制御方法、および制御プログラム | |
US20220309842A1 (en) | Abnormality diagnosis device | |
JP2005275713A (ja) | 保守情報管理システム | |
JP2009134518A (ja) | 試験プログラムの検証方法及びその検証システム | |
AU2011202744B2 (en) | Plant control system and method of specifying primary-factor for interlock | |
JP6003281B2 (ja) | 製品に対する品質評価システム及び品質評価方法 | |
JP2023107534A (ja) | 支援システム、支援方法およびプログラム | |
JP2019125134A (ja) | 検証支援プログラム、検証支援方法、および情報処理装置 | |
JP2009076821A (ja) | 検査式作成支援システム、検査式作成支援方法、および検査式作成支援プログラム | |
KR20120040370A (ko) | 기판 처리 장치의 모니터링 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2016555855 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15889214 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20177031427 Country of ref document: KR Kind code of ref document: A |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15889214 Country of ref document: EP Kind code of ref document: A1 |