Abstract: Provided are: a storage unit for storing a control program that includes operation commands and condition commands command specification data that include the command names command types and details of command processes and search result data in which the results of searches executed on the control program are stored; a variable setting unit for setting target variables; an operation search unit for searching operation commands for which the values of the target variables can change and writing into the search result data the target variable names as well as the command names command types and details of processes of the searched operation commands; a condition search unit for searching for condition commands that determine the conditions for implementing an operation command writing into the search result data the variable names of the parameters of the searched condition commands and the command names command types and details of processes of the condition commands and setting the parameters of the condition commands to new target variables; a search determination unit for causing the operation search unit and the condition search unit to redo a search; and a list display unit for displaying in a list the details of the search result data.
FORM 2
THE PATENTS ACT, 1970 (39 of 1970)
& THE PATENTS RULES, 2003
COMPLETE SPECIFICATION [See section 10, Rule 13]
PROGRAM DIAGNOSIS DEVICE, PROGRAM DIAGNOSIS METHOD AND PROGRAM DIAGNOSIS PROGRAM;
MITSUBISHI ELECTRIC
CORPORATION, A CORPORATION ORGANISED AND EXISTING UNDER THE LAWS OF JAPAN, WHOSE ADDRESS IS 7-3, MARUNOUCHI 2-CHOME, CHIYODA-KU, TOKYO 100-8310, JAPAN
THE FOLLOWING SPECIFICATION PARTICULARLY DESCRIBES THE INVENTION AND THE MANNER IN WHICH IT IS TO BE PERFORMED.
DESCRIPTION
Field
[0001] The present invention relates to a program, diagnostic apparatus for diagnosing a control program, a program diagnostic method, and a program diagnostic program.
Background
[0002] In a control system for controlling a machine in a factory automation (FA) field, a control program is written in a program language. The program language is exemplified by a ladder (LD) language or a structured text (ST) language (IEC 61131-3, JIS B 3503: 2012). [0003] The control program includes commands and variables. When a value of a certain variable in the control program is different from an assumed value, the following operations have been manually performed in order to investigate a cause thereof.
[0004] A first operation is an operation of tracing the control program retrospectively and checking locations and conditions which possibly change the value of the target variable.
[0005] A second operation is an operation of performing a simulation run of the control program and reproducing that the condition is satisfied at the location checked by the first operation.
[0006] A third operation is an operation of further tracing the control program retrospectively and checking locations and conditions satisfying the condition reproduced by the second operation.
[0007] Thereafter, the second operation and the third operation have been repeated to find the underlying cause. [0008] However,. since it takes time and effort to manually check the control program retrospectively, it has been difficult to identify the cause of the fact that the value of the variable is different from the assumed value. [0009] As a related technology, a ladder program diagnostic method is described in Patent Literature 1 described below (paragraph 0053). In the method, when it is detected that an output signal is an abnormal contact, a coverage diagnosis is performed in which the ladder program is checked retrospectively from the output signal to the preceding steps to identify a defective contact while checking a state of each contact one by one. [0010] In addition, a method for investigating a location as a cause of an abnormality in a ladder sequence program is described in Patent Literature 2 described below (pages 4 to 5). The method includes: a first process of, using an abnormality of an output command unit as a search key, finding out a block including an output command unit capable of manipulating a value thereof from among all blocks in the ladder program; a second process of performing a logic operation on a condition command unit of the block located in the first process, determining a state of the output command unit of the block corresponding to a result of the logical operation of the condition command unit, and determining validity as to whether the block truly manipulates the state of the abnormal output command unit; a third process of locating all relays capable of manipulating the state of the output command unit in the condition command unit of the block when the block is valid in the second process; a fourth process of repeating the first, second and third processes using the relay located
in the third process as a next search key; and a fifth process of, when a corresponding block is not found in the first process, outputting a result indicating that such a block is not found, and when a corresponding relay is not found in the third process, outputting a result indicating that the relay in the condition command unit is a cause of the abnormality.
[0011] Also, a sequence diagram monitor is described in Patent Literature 3 described below (abstract). In the sequence diagram monitor, a sequence diagram acquisition unit acquires a sequence diagram of an operation state, and a selection unit selects a desired symbol in an operation sequence diagram, and thereby a connection line search unit successively searches upstream connection lines related to the symbol, which makes it possible to easily obtain whether there has been an output of the operation state. In addition, even when the operation state is changed, the sequence diagram monitor is capable of reading and sequentially searching data thereof to retrieve a faulty portion.
Citation List
Patent Literature
[0012] Patent Literature 1: Japanese Patent Application
Laid-Open Publication No. 2001-67122
Patent Literature 2: Japanese Patent Application Laid-Open Publication No. H03-108005
Patent Literature 3: Japanese Patent Application Laid-Open Publication No. H09-305207
Summary
Technical Problem
[0013] However, with the technologies described in
Patent Literatures 1 to 3, although a user can learn a contact which caused a problem, the user cannot learn commands between the contact which caused the problem and a contact where the problem occurred. Therefore, it has been difficult for the user to grasp an overall picture of the problem.
[0014] The present invention has been made in view of the above, and an object thereof is to obtain a program diagnostic apparatus which makes it possible for a user to easily grasp an overall picture of a problem.
Solution to Problem
[0015] In order to solve the above-mentioned problem and achieve the object, the present invention includes a storage unit which stores: a control program which includes an operation command for changing a value of an argument and a condition command for determining a condition for executing the operation command; command specification data which includes command names of commands describable in the control program, a type of the operation command or the condition command, and contents of processes of commands; and search result data in which a result of a search executed for the control program is accumulated. The present invention includes: a variable setting unit which sets a target variable; an operation search unit which searches the control program to retrieve the operation command which possibly changes a value of the target variable, collates the retrieved operation command with the command specification data, and writes a name of the target variable, as-well as a command name, a command type, and contents of a process of the retrieved operation command into the search result data; a condition search unit which searches the control program to retrieve the condition
command for determining a condition for executing the operation command retrieved by the operation search unit, collates the retrieved condition command with the command specification data, writes a variable name of an argument of the retrieved condition command, as well as a command name, a command type, and contents of a process of the retrieved condition command into the search result data, and sets the argument of the retrieved condition command as a new target variable; a search determination unit which causes the operation search unit and the condition search unit to execute the search again; and a list display unit which displays a list of contents of the search result data.
Advantageous Effects of Invention
[0016] The program diagnostic apparatus according to the present invention achieves an effect of easily grasping an overall picture of a problem by a user.
Brief Description of Drawings
[0017] FIG. 1 is a diagram illustrating a configuration
of a control system according to a first embodiment.
FIG. 2 is a diagram illustrating a hardware configuration of a control device according to the first embodiment.
FIG. 3 is a diagram illustrating a hardware configuration of an engineering tool according to the first embodiment.
FIG. 4 is a diagram illustrating functional blocks of the engineering tool according to the first embodiment.
FIG. 5 is a diagram illustrating command specification data of the engineering tool according to the first embodiment.
FIG. 6 is a diagram illustrating search frequency data
of the engineering tool according to the first embodiment.
FIG. 7 is a diagram illustrating search range data of the engineering tool according to the first embodiment.
FIG. 8 is a diagram illustrating search result data of the engineering tool according to the first embodiment.
FIG. 9 is a view illustrating a project data creation screen of the engineering tool according to the first embodiment.
FIG. 10 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
FIG. 11 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
FIG. 12 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
FIG. 13 is a view illustrating a program diagnostic screen of the engineering tool according to the first embodiment.
FIG. 14 is a diagram for explaining a search process of the engineering tool according to the first embodiment.
FIG. 15 is a diagram for explaining a search process of the engineering tool according to the first embodiment.
FIG. 16 is a diagram for explaining a search process of the engineering tool according to the first embodiment.
FIG. 17 is a view illustrating a program diagnostic screen of the engineering tool according to the first embodiment.
FIG. 18 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
FIG. 19 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
Description of Embodiments
[0018] Hereinafter, a program diagnostic apparatus, a
program diagnostic method, and a program diagnostic program according to an embodiment of the present invention will be described in detail with reference to the drawings. The invention is not limited to the embodiment. [0019] First Embodiment.
FIG. 1 is a diagram illustrating a configuration of a control system according to a first embodiment of the present invention. The control system 1 includes an engineering tool 2, a control device 3, and machines 4 and 5.
[0020] The engineering tool 2 creates project data including a control program executed by the control device 3 and transmits the project data to the control device 3. The control device 3 controls the machines 4 and 5 by executing the control program included in the project data. The control device 3 is exemplified by a programmable controller (JIS B 3502: 2011, programmable controllers (PLC)).
[0021] 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 substrate 3a and sub-substrates 3b and 3c.
[0022] The main substrate 3a includes a central processing unit (CPU) 3al, a memory 3a2 which is a random access memory (RAM), a communication interface 3a3, a bus interface 3a4, and a storage unit 3a5. The CPU 3al, the memory 3a2, the communication interface 3a3, the bus interface 3a4, and the storage unit 3a5 are connected via an internal bus Bl.
[0023] The communication interface 3a3 communicates with the engineering tool 2.
[0024] The bus interface 3a4 is a bus bridge circuit which connects the internal bus Bl and an expansion bus B2.
The sub-substrates 3b and 3c are connected to the main substrate 3a via the expansion bus B2. The sub-substrate 3b is connected to the machine 4. The sub-substrate 3c is connected to the machine 5.
[0025] The storage unit 3a5 stores the project data 24a received from the engineering tool 2. The storage unit 3a5 is exemplified by a solid state drive (SSD) or a hard disk drive (HDD).
[0026] The project data 24a includes a control program 24al, a control parameter 24a2, a device memory 24a3, and connection information 24a4. The control program 24al includes an operation command for changing a value of an argument and a condition command for determining a condition for executing the operation command. The control parameter 24a2 is referred to at the time of execution of the control program 24al. The device memory 24a3 defines a work area in the memory 3a2. The connection information 24a4 defines a connection relation between the sub-substrate 3b and the machine 4 and a connection relation between the sub-substrate 3c and the machine 5. [0027] The control program 24al includes a MAIN program 24ala and a SUB program 24alb. In the first embodiment, it is assumed that the control program 24al is described in a ladder language, but the present invention is not limited thereto. Another language in which the control program 24al is described is exemplified by a structured text language.
[0028] In the memory 3a2, a plurality of devices defined by the device memory 24a3 is reserved. In the first embodiment, each of the devices in the memory 3a2 corresponds to a variable of the control program 24al. [0029] 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 achieved by using a computer. The computer includes a CPU 21, a RAM 22, a read only memory (ROM) 23, a storage unit 24, an input unit 25, a display unit 26, and a communication interface 27. The CPU 21, the RAM 22, the ROM 23, the storage unit 24, the input unit 25, the display unit 26, and the communication interface 27 are connected via a bus B.
[0030] The CPU 21 executes a program stored in the ROM 23 and the storage unit 24 using the RAM 22 as a work area. The program stored in the ROM 23 is exemplified by a basic input/output system (BIOS) or a unified extensible firmware interface (UEFI). 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.
[0031] The input unit 25 receives an operation input from a user. The input unit 25 is exemplified by a keyboard or a mouse. The display unit 26 displays characters and images. The display unit 2 6 is exemplified by a liquid crystal display device. The communication interface 27 communicates with the control device 3. [0032] FIG. 4 is a diagram illustrating functional blocks of the engineering tool according to the first embodiment. The storage unit 24 stores the project data 24a.
[0033] The project data 24a includes the control program 24al, the control parameter 24a2, the device memory 24a3, and the connection information 24a4. The control program 24al includes an operation command for changing a value of an argument and a condition command for determining a condition for executing the operation command. The control parameter 24a2 is referred to at the time of execution of
the control program 24al. The device memory 24a3 defines a work area in the memory 3a2 of the control device 3. The connection information 24a4 defines a connection relation between the sub-substrate 3b of the control device 3 and the machine 4 as well as a connection relation between the sub-substrate 3c of the control device 3 and the machine 5. [0034] The storage unit 24 stores command specification data 24b which includes command names of all commands describable in the control program 24al, a type of the operation command or the condition command, and contents of processes of the commands.
[0035] In the first embodiment, the control program 24al is described in the ladder language. Therefore, the command specification data 24b includes the command names of all commands in the ladder language, the type of the operation command or the condition command, and the contents of the processes of the commands. [0036] FIG. 5 is a diagram illustrating the command specification data of the engineering tool according to the first embodiment. The command specification data 24b includes a command name item 24bl, a command type item 24b2, an explanation item 24b3, and a remark item 24b4. [0037] A line 51 of the command specification data 24b includes information on a "LD" (load) command. In a command name item of the line 51, a command name "LD" is described. Since the LD command is a condition command, a command type "condition" is described in a command type item of the line 51.
[0038] In an explanation item of the line 51, an explanation of an operation of the "LD" command is described. Since the "LD" command is a command to determine whether a first argument is ON, an explanation "# 1 is ON" is described in the explanation item of the line
51.
[0039] In a remark item of the line 51, a data type of
the first argument of the "LD" command is described. Since
the first argument of the "LD" command is of a bit type, a
remark "bit variable" is described in the remark item of
the line 51.
[0040] A line 52 of the command specification data 24b
includes information on an "OUT" command. In a command
name item of the line 52, a command name "OUT" is described.
Since the OUT command is an operation command, a command
type "operation" is described in a command type item of the
line 52.
[0041] In an explanation item of the line 52, an
explanation of an operation of the "OUT" command is
described. Since the "OUT" command is a command to turn ON
the first argument, an explanation ."Turn # 1 ON" is
described in the explanation item of the line 52.
[0042] In a remark item of the line 52, a data type of
the first argument of the "OUT" command is described.
Since the first argument of the "OUT" command is of a bit
type, a remark "bit variable" is described in the remark
item of the line 52.
[0043] A line 53 of the command specification data 24b
includes information on an "=" (equal) command. In a
command name item of the line 53, a command name "=" is
described. Since the "=" command is a condition command, a
command type "condition" is described in a command type
item of the line 53.
[0044] In an explanation item of the line 53, an
explanation of an operation of the "=" command is described.
Since the "=" command is a command to determine whether the
first argument and the second argument are equal to each
other, an explanation "# 1 is equal to # 2" is described in
the explanation item of the line 53.
[0045] In a remark item of the line 53, a data type of
the first argument and the second argument of the "="
command is described. Since the first argument and the
second argument of the "=" command are of a word-type, a
remark "word variable" is described in the remark item of
the line 53.
[0046] A line 54 of the command specification data 24b
includes information on a "MOV" (move) command. In a
command name item of the line 54, a command name "MOV" is
described. Since the "MOV" command is a condition command,
a command type "operation" is described in a command type
item of the line 54.
[0047] In an explanation item of the line 54, an
explanation of an operation of the "MOV" command is
described. Since the "MOV" command is a command to
transfer a value of the first argument to the second
argument, an explanation "# 1 is transferred to # 2" is
described in the explanation item of the line 54.
[0048] In a remark item of the line 54, a data type of
the first argument and the second argument of the "MOV"
command is described. Since the first argument and the
second argument of the "MOV" command are of a word-type,
the remark "word variable" is described in the remark item
of the line 54.
[0049] In FIG. 5, four lines 51, 52, 53 and 54
respectively relating to four commands are illustrated.
However, in reality, the command specification data 24b
includes a plurality of lines relating to all commands
described in the ladder language.
[0050] Referring again to FIG. 4, the storage unit 24
stores search termination condition data 24c in which a
termination condition of a search executed for the control
program 24al is described. The search termination condition data 24c includes search frequency data 24cl and search range data 24c2.
[0051] FIG. 6 is a diagram illustrating the search frequency data of the engineering tool according to the first embodiment. "10" is described in the search frequency data 24cl. As a result, the search executed for the control program 24a is terminated at 10 times at most. [0052] FIG. 7 is a diagram illustrating the search range data of the engineering tool according to the first embodiment. The search range data 24c2 includes an item of a first step number in a range and an item of a last step. number in the range. "1" is described in the item of the first step number in the range. "100" is described in the item of the last step number in the range. As a result, the search executed for the control program 24al is limited to the range of from the step number 1 to the step number 100, and is terminated when departing from this range. [0053] Referring again to FIG. 4, the storage unit 24 stores search result data 24d in which results of the search executed for the control program 24al are accumulated.
[0054] FIG. 8 is a diagram illustrating the search result data of the engineering tool according to the first embodiment. The search result data 24d includes a variable name item 24dl, a command name item 24d2, a command type item 24d3, an explanation item 24d4, a program name item 24d5, and a step number item 24d6.
[0055] Lines 61, 62, 63 and 64 of the search result data 24d will be described in a description of an operation of the engineering tool 2.
[0056] Referring again to FIG. 4, the storage unit 24 stores execution data 24e in which values of all variables
used in the control program 24al, at a predetermined point in time, are accumulated. That is, in the execution data 24e, the values of all variables at a plurality of different points in time are accumulated.
[0057] The search result data 24d will be described in the description of the operation of the engineering tool 2.
[0058] The CPU 21 executes an engineering tool program stored in the storage unit 24. As a result, an engineering tool unit 21a including a project data creation unit 21al and a program diagnostic unit 21a2 is achieved.
[0059] The project data creation unit 21al creates and transmits project data 24a to the control device 3.
[0060] FIG. 9 is a view illustrating a project data creation screen of the engineering tool according to the first. embodiment. The project data creation unit 21al causes the display unit 26 to display the project data creation screen 30.
[0061] The project data creation screen 30 has a control program creation field 30a. In FIG. 9, a MAIN program 24ala is created in the control program creation field 30a.
[0062] The MAIN program 24ala includes lines 41, 42, 43, 44, 45 and 46.
[0063] The line 41 includes a condition command 41a and an operation command 41b. The condition command 41a is "LD M0". "M0" therein is a variable. In the first embodiment, a combination of the letter "M" and a numerical value represents a bit-type variable.
[0064] The operation command 41b is "INC DO". "DO" therein is a variable. In the first embodiment, a combination of the letter "D" and a numerical value represents a word-type variable. An "INC" (increment) command is a command to increase the first argument by 1. That is, the operation command 41b is a command to increase
the variable "DO" by 1.
[0065] The line 42 includes a condition command 42a and an operation command 42b. The condition command 42a is "LD M100". "M100" therein is a variable.
[0066] The operation command 42b is "MOV DO D10". "D10" therein is a variable. A "MOV" command is a command to transfer a value of the first argument to the second argument. That is, the operation command 42b is a command to transfer the value of the variable "DO" to the variable "D10".
[0067] The line 43 includes a condition command 43a and an operation command 43b. The condition command 43a is "LD M200". "M200" therein is a variable.
[0068] The operation command 43b is "OUT Y0". "Y0" therein is a variable. In the first embodiment, the combination of the letter "Y" and a numerical value represents a bit-type variable. That is, the operation command 43b is a command to turn the variable "Y0" ON. [0069] The line 44 includes a condition command 44a and an operation command 44b. The condition command 44a is "= D10 K10000". "K10000" therein is a constant "10000". That is, the condition command 44a is a command to determine whether a value of the variable "D10" is equal to the constant "10000".
[0070] The operation command 44b is "MOV K15 D20". "K15" and "D20" therein are a constant "15" and a variable, respectively. That is, the operation command 44b is a command to transfer the constant "15" to the variable "D20". [0071] The line 45 includes a condition command 45a and an operation command 45b. The condition command 45a is the OR (logical sum) of "LD M10", "LD M1l", and "LD M12". "M10", "M1l", and "M12" therein are variables. That is, the condition command 45a is a command to determine the
logical sum of a value of the variable "M10", a value of the variable "M1l", and a value of the variable "M12". [0072] The operation command 45b is "MOV D20 D30". "D30" therein is a variable. That is, the operation command 45b is a command to transfer a value of the variable "D20" to the variable "D30". [0073] .The line 46 is a termination command. [0074] Referring again to FIG. 4, the program diagnostic unit 21a2 includes a variable setting unit 21a2a for setting target variables. The variable setting unit 21a2a can receive a variable input by the user to the input unit 25 and set the variable as a target variable. Alternatively, the variable setting unit 21a2a can receive a variable in which a problem has occurred from the control device 3 and set the variable as a target variable. [0075] The program diagnostic unit 21a2 includes an operation search unit 21a2b which searches the control program 24al to retrieve an operation command which possibly changes a value of a target variable, collates the retrieved operation command with the command specification data 24b, and writes a name of the target variable, as well as a command name, a command type, and contents of a process of the retrieved operation command into the search result data 24d.
[0076] The program diagnostic unit 21a2 includes a condition search unit 21a2c which searches the control program 24al to retrieve a condition command for determining a condition for executing the operation command retrieved by the operation search unit 21a2b, collates the retrieved condition command with the command specification data 24b, writes a variable name of an argument of the retrieved condition command, as well as a command name, a command type, and contents of a process of the retrieved
condition command into the search result data 24d, and sets
the argument of the retrieved condition command as a new
target variable.
[0077] The program diagnostic unit 21a2 includes a
search determination unit 21a2d which causes the operation
search unit 21a2b and the condition search unit 21a2c to
execute the search again.
[0078] The program diagnostic unit 21a2 includes a list
display unit 21a2e which" displays a list of contents of the
search result data 24d.
[0079] The program diagnostic unit 21a2 includes a
scanning unit 21a2f which scans the memory 3a2 of the
control device 3 at a predetermined point in time to
thereby acquire values of all variables used in the control
program 24al and write the values into the execution data
24e.
[0080] Examples of the predetermined point in time
include the following.
[0081] A first example thereof is every time point when
a certain period of time elapses. As such a certain period
of time, one second is exemplified. As a result, values of
all variables at every time point when a certain period of
time elapses are accumulated in the execution data 24e.
[0082] A second example thereof is a time point when a
notification that a problem has occurred is received from
the control device 3. As a result, values of all variables
when a problem has occurred in the control device 3 are
accumulated in the execution data 24e.
[0083] A third example thereof is a time point when the
user inputs an instruction to execute scanning to the input
unit 25. As a result, values of all variables at a point
in time desired by the user are accumulated in the
execution data 24e.
[0084] FIG. 10 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
[0085] The scanning unit 21a2f executes the process illustrated in FIG. 10 at a predetermined point in time.
[0086] In step S10, the scanning unit 21a2f scans the memory 3a2 of the control device 3 to thereby acquire the values of all variables used in the control program 24al.
[0087] In step S12, the scanning unit 21a2f writes the values of all variables acquired in step S10 into the execution data 24e, and ends the process.
[0088] Referring again to FIG. 4, the program diagnostic unit 21a2 includes a simulation unit 21a2g which performs a simulation run of the control program 24al to thereby calculate the values of all variables used in the control program 24al and write the values into the execution data 24e.
[0089] As a result, the values of all variables used in the control program 24al are accumulated in the execution data 24e without operating the control device 3. Therefore, the program diagnostic unit 21a2 can diagnose a problem of the control program 24al without operating the control device 3.
[0090] FIG. 11 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
[0091] The simulation unit 21a2g executes the process illustrated in FIG. 11 when the user inputs an instruction to perform a simulation run to the input unit 25.
[0092] In step S20, the simulation unit 21a2g performs the simulation run of the control program 24al to thereby calculate the values of all variables used in the control program 24al.
[0093] In 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.
[0094] FIG. 12 is a flowchart illustrating a process of the engineering tool according to the first embodiment. [0095.] In step S100, the variable setting unit 21a2a sets a target variable.
[0096] FIG. 13 is a view illustrating a program diagnostic screen of the engineering tool according to the first embodiment. The variable setting unit 21a2a causes the display unit 26 to display the program diagnostic screen 70.
[0097] The program diagnostic screen 70 has a variable setting field 71. In FIG. 13, a variable "D20" is set as a target variable 72 in the variable setting field 71. [0098] The variable setting unit 21a2a can receive a variable input by the user to the input unit 25 and set the . variable as the target variable 72. Alternatively, the variable setting unit 21a2a can receive a variable in which a problem has occurred from the control device 3 and set the variable as the target variable 72.
[0099] Referring again to FIG. 12, in step. S102, the operation search unit 21a2b searches the control program 24al to retrieve an operation command in which the target variable 72 is described as an argument.
[0100] The operation search unit 21a2b can search the control program 24al to retrieve the operation command by collating a command in the control program 24al with the command specification data 24b to thereby acquire a command type of the command.
[0101] There may be a plurality of locations as the results of the search by the operation search unit 21a2b. [0102] FIG. 14 is a diagram for explaining a search process of the engineering tool according to the first embodiment.
[0103] In FIG. 14, a value described under each variable is a value of each variable at a certain point in time and is a value accumulated in the execution data 24e. [0104] If using, for the search, the values of all variables scanned when receiving the notification from the control device 3 that a problem has occurred, the program diagnostic unit 21a2 can diagnose the control program 24al based on the values of all variables at a point in time when the problem has occurred in the control device 3. As a result, the program diagnostic unit 21a2 can diagnose the problem of the control program 24al at the point in time when the problem has occurred in the control device 3. [0105] If using, for the search, the values of all variables at a point in time prior to the reception of the notification from the control device 3 that the problem has occurred, the program diagnostic unit 21a2 can diagnose the control program 24al based on the values of all variables at the point in time prior to the occurrence of the problem in the control device 3. As a result, the program diagnostic unit 21a2 can diagnose the problem of the control program 24al at the point in time prior to the occurrence of the problem in the control device 3. [0106] The variable "D20" set as the target variable 72 is described in a second argument 44bl of the operation command 4 4b.
[0107] In step S102, the operation search unit 21a2b finds that the variable "D20" set as the target variable 72 is described in the second argument 44bl of the operation command 44b. Then, the operation search unit 21a2b acquires a command type "operation" of a command name "MOV" by collating the command name "MOV" of the operation command 44b with the command specification data 24b. Therefore, the operation search unit 21a2b can search the
control program 24al to retrieve the operation command 44b. [0108] The operation search unit 21a2b may acquire the operation command by graphically analyzing the control program 24al instead of collating the command name with the command specification data 24b.
[0109] Specifically, when two commands are described in one line, as in the lines 41, 42, 43, and 44 of the control program 24al illustrated in FIG. 9, the operation search unit 21a2b may acquire a right-side command of the two commands, that is, a command on a downstream side of the control program 24al as an operation command. [0110] Alternatively, when more than two commands are described in one line as in the line 45 of the control program 24al illustrated in FIG. 9, the operation search unit 21a2b first finds a point 45al where a plurality of commands is wired-OR connected. Then, the operation search unit 21a2b may acquire the command 45b on a right side of the point 45al, that is, on the downstream side of the control program 24al as an operation command. [0111] As a result, the operation search unit 21a2b can search the control program 24al to retrieve the operation command without collating the command name with the command specification data 24b.
[0112] Referring again to FIG. 12, in step S104, the operation search unit 21a2b searches the operation commands retrieved in step S102 to retrieve an operation command which possibly changes the value of the target variable. [0113] The variable "D20" set as the target variable 72 is described in the second argument 44bl of the operation command 44b. The command name "MOV" of the operation command 44b is a command to transfer a value of the first argument to the second argument. [0114] Therefore, in step S104, the operation search
unit 21a2b can search the control program 24al to retrieve the operation command 44b which possibly changes the value of the variable "D20" set as the target variable 72. [0115] In step S106, the operation search unit 21a2b collates the operation command retrieved 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.
[0116] Referring again to FIG. 8, the operation search unit 21a2b creates the line 61 in step S106. Then, the operation search unit 21a2b writes a variable name "D20", the command name "MOV", and the command type "operation" into the items 24dl, 24d2 and 24d3 of the line 61, respectively.
[0117] The operation search unit 21a2b collates the operation command 44b retrieved in step S104 with the explanation item 24b3 of the command specification data 24b. A first argument of the operation command 44b is the constant "K15" and a second argument is the variable "D20". Therefore, the operation search unit 21a2b creates an explanation "K15 is transferred to D20" and writes the explanation into the item 24d4 of the line 61. [0118] In addition, the operation search unit 21a2b writes a program name "MAIN", the program including the operation command 44b, into the item 24d5 of the line 61. [0119] The operation command 44b is an eleventh step of the MAIN program 24ala. Therefore, the operation command unit 21a2b writes the step number "11" into the item 24d6 of the line 61.
[0120] Referring again to FIG. 12, in step S108, the condition search unit 21a2c searches the control program 24al to retrieve a condition command for determining a condition for executing the operation command retrieved by
the operation search unit 21a2b.
[0121] The condition search unit 21a2c can search the
control program 24al to retrieve the condition command.by
collating a command in the control program 24al with the
command specification data 24b to thereby acquire a command
type of the command.
[0122] There may be a plurality of locations as the
results of the search by the condition search unit 21a2c.
[0123] The condition search unit 21a2c may acquire the
operation command by graphically analyzing the control
program 24al instead of collating the command name with the
command specification data 24b.
[0124] Specifically, when two commands are described in
one line, as in the lines 41, 42, 43, and 44 of the control
program 24al illustrated in FIG. 9, the condition search
unit 21a2c may acquire a left-side command of the two
commands, that is, a command on an upstream side of the
control program 24al as an operation command.
[0125] Alternatively, when more than two commands are
described in one line as in the line 45 of the control
program 24al illustrated in 'FIG. 9, the operation search
unit 21a2b first finds the point 45al where a plurality of
commands is wired-OR connected. Then, the operation search
unit 21a2b may acquire the command 45a on the left side of
the point 45al, that is, on the upstream side of the
control program 24al as an operation command.
[0126] As a result, the condition search unit 21a2c can
search the control program 24al to retrieve the condition
command without collating the command name with the command
specification data 24b.
[0127] Referring again to FIG. 14, the condition command
44a is described on a left side of the operation command
44b in the drawing, that is, on an upstream side of the
MAIN program 24ala.
[0128] Therefore, in step S108, the condition search unit 21a2c can search the control program 24al to retrieve the condition command 44a for determining a condition for executing the operation command 44b.
[0129] Referring again to FIG. 12, in step S110, the condition search unit 21a2c collates the condition command retrieved in step S108 with the command specification data 24b, and writes information based on the search result in step S108 into the search result data 24d. [0130] Referring again to FIG. 8, the condition search unit 21a2c creates the line 62 in step S110. Then, the condition search unit 21a2c writes a variable name "D10", a command name "=" and a command type "condition" into the items 24dl, 24d2 and 24d3 of the line 62, respectively. [0131] The condition search unit 21a2c collates the condition command 44a retrieved in step S108 with the explanation item 24b3 of the command specification data 24b. A first argument of the condition command 44a is the variable "D10", and a second argument is the constant "K10000". Therefore, the condition search unit 21a2c creates an explanation "D10 is equal to K10000" and writes the explanation into the item 24d4 of the line 62. [0132] In addition, the condition search unit 21a2c writes a program name "MAIN", the program including the condition command 44a, into the item 24d5 of the line 62. [0133] The condition command 44a is an eighth step of the MAIN program 24ala. Therefore, the condition command unit 21a2c writes the step number "8" into the item 24d6 of the line 62.
[0134] Referring again to FIG. 12, in step S112, the condition search unit 21a2c sets an argument of the condition command retrieved in step S110 as a new target
variable 72.
[0135] There may be a plurality of new target variables 72 set by the condition search unit 21a2c. If the control program 24al cannot be retrospectively traced any further, the condition search unit 21a2c does not set a new target variable 72.
[0136] FIG. 15 is a diagram for explaining a search process of the engineering tool according to the first embodiment.
[0137] As illustrated in FIG. 15, the condition command 44a includes the first argument 44al "D10" and the second argument "K10000". However, the second argument "K10000" is a constant, not a variable. Therefore, in step S112, the condition search unit 21a2c sets the first argument 44al "D10" as the new target variable 72. [0138] Referring again to FIG. 12, the search determination unit 21a2d determines in step S114 whether a search termination condition is satisfied. The search termination condition is exemplified as follows. [0139] A first example thereof is a case where the new target variable 72 has not been set in step S112. That is, this is the case where the control program 24al cannot be retrospectively traced any further.
[0140] A second example thereof is a case where the number of times of repetition of the search performed in from step S102 to step S112 by the operation search unit 21a2b and the condition search unit 21a2c has reached the number described in the search frequency data 24cl. [0141] As a result, the program diagnostic unit 21a2 achieves an effect of ensuring termination of the search by suppressing non-termination of the search, that is, ensuring a search termination property. Furthermore, since the program diagnostic unit 21a2 can limit a search range
even when the size of the control program 24al is large, the program diagnostic unit 21a2 achieves an effect of suppressing man-hour in identifying a cause of a problem of the control program 24al.
[0142] A third example thereof is a case where the new target variable 72 set in step S112 by the condition search unit 21a2c falls outside the range of the step numbers described in the search range data 24c2. [0143] As a result, the program diagnostic unit 21a2 achieves an effect of ensuring the search termination property. Furthermore, since the program diagnostic unit 21a2 can limit a search range even when the size of the control program 24al is large, the program diagnostic unit 21a2 achieves an effect of suppressing man-hour in identifying the cause of the problem of the control program 24al.
[0144] The search determination unit 21a2d can'determine the OR (logical sum) of a plurality of search termination conditions.
[0145] When the search determination unit 21a2d determines in step S114 that the search condition is not satisfied (No), the search determination unit 21a2d advances the process to step S102.
[0146] FIG. 16 is a diagram for explaining a search process of the engineering tool according to the first embodiment.
[0147] As illustrated in FIG. 16, the operation command 42b includes a first argument "DO" and a second argument 42bl "D10".
[0148] In step S102 and step S104, the operation search unit 21a2b finds that the variable "D10" set as the target variable 72 is described in the second argument 42bl of the operation command 42b. Then, the operation search unit
21a2b acquires the command type "operation" of the command name "MOV" by collating the command name "MOV" of the operation command 42b with the command specification data 24b. Therefore, the operation search unit 21a2b can search the control program 24al to retrieve the operation command 42b.
[0149] Referring again to FIG.. 8, the operation search unit 21a2b creates the line 63 in step S106. Then, the operation search unit 21a2b writes a variable name "DO", the command name "MOV", and the command type "operation" into the items 24dl, 24d2 and 24d3 of the line 63, respectively.
[0150] The operation search unit 21a2b collates the operation command 42b retrieved in step S104 with the explanation item 24b3 of the command specification data 24b. The first argument of the operation command 42b is the variable "DO", and the second argument is the variable "D10". Therefore, the operation search unit 21a2b creates an explanation "DO is transferred to D10" and writes the explanation into the item 24d4 of the line 63. [0151] In addition, the operation search unit 21a2b writes the program name "MAIN", the program including the operation command 42b, into the item 24d5 of the line 63. [0152] The operation command 42b is a fourth step of the MAIN program 24ala. Therefore, the operation command unit 21a2b writes the step number "4" into the item 24d6 of the line 63.
[0153] A condition command 42a is described on a left side of the operation command 42b in the drawing, that is, on the upstream side of the MAIN program 24ala. [0154] Therefore, in step S108, the condition search unit 21a2c can search the control program 24al to retrieve the condition command 42a for determining a condition for
executing the operation command 42b.
[0155] In step S110, the condition search unit 21a2c collates the condition command retrieved in step S108 with the command specification data 24b, and writes information based on the search result in step S108 into the search result data 24d.
[0156] Referring again to FIG. 8, the condition search unit 21a2c creates the line 64 in step S110. Then, the condition search unit 21a2c writes a variable name "M100", a command name "LD", and the command type "condition" into the items 24dl, 24d2 and 24d3 of the line 64, respectively. [0157] The condition search unit 21a2c collates the condition command 42a retrieved in step S108 with the explanation item 24b3 of the command specification data 24b. A first argument of the condition command 42a is the variable "M100". Therefore, the condition search unit 21a2c creates an explanation "M100 is ON" and writes the explanation into the item 24d4 of the line 64. [0158] In addition, the condition search unit 21a2c writes the program name "MAIN", the program including the condition command 42a, into the item 24d5 of the line 64. [0159] The condition command 42a is a third step of the MAIN program 2 4ala. Therefore, the condition command unit 21a2c writes the step number "3" into the item 24d6 of the line 64.
[0160] The condition command 42a includes the first argument "M100". Therefore, in step S112, the condition search unit 21a2c sets the first argument "M100" as the new target variable 72.
[0161] Referring again to FIG. 12, when the search determination unit 21a2d determines in step S114 that the search condition is satisfied (Yes), the search determination unit 21a2d advances the process to step S116.
[0162] Referring again to FIG. 16, the operation command including the target variable 72 "M100" does not exist in the control program 24al.
[0163] Therefore, the search determination unit 21a2d determines in step S114 that the search condition is satisfied (Yes) and advances the process to step S116. [0164] Referring again to FIG. 12, the list display unit 21a2e displays a list of contents of the search result data 24d on the display unit 26 in step S116. [0165] FIG. 17 is a view illustrating a program diagnostic 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 a list display field 80 of the program diagnostic screen 70. [0166] The list display field 80 has 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 a explanation item 86.
[0167] The list display unit 21a2e displays the contents of the lines 61, 62, 63 and 64 of the search result data 24d in the lines 91, 92, 93 and 94, respectively.-[0168] In the manner as described above, the program diagnostic unit 21a2 can display a list of not only the contents of the command which caused the problem being displayed in the line 94, and the contents of the command in which the problem has occurred being displayed in the line 91, but also the contents of the commands involved in between the command which caused the problem and the command in which the problem has occurred, which are displayed in the line 93 and the line 92. [0169] As a result, the program diagnostic unit 21a2 achieves an effect of easily grasping, by the user, an overall picture between the command which caused the
problem and the command in which the problem has occurred.
[0170] FIG. 18 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
[0171] When the line 91, 92, 93 or 94 is selected in step S200, 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.
[0172] As a result, the program diagnostic unit 21a2 achieves an effect of immediately confirming a desired command by the user.
[0173] The list display field 80 includes.a filtering condition input field 81a to which a filtering condition of a program name is input, a filtering condition input field 82a to which a filtering condition of a step number is input, a filtering condition input field 83a to which a filtering condition of a variable name is input, a filtering condition input field 84a to which a filtering condition of a command name is input, a filtering condition input field 85a to which a filtering condition of a command type is input, and a filtering condition input field 8 6a to which a filtering condition of an explanation is input.
[0174] FIG. 19 is a flowchart illustrating a process of the engineering tool according to the first embodiment.
[0175] When a command name is input to the filtering condition input field 84a in step S202, the list display unit 21a2e displays a list of lines satisfying the input filtering condition among the lines 91, 92, 93, and 94 of the search result data 24d. For example, when "MOV" is input to the filtering condition input field 84a, the list display unit 21a2e displays the lines 91 and 93 only.
[0176] As a result, the program diagnostic unit 21a2 achieves an effect of suppressing man-hour in identifying the cause of the problem by narrowing down the commands
related to the problem by the user.
[0177] By collating a command name with the command specification data 24b, the operation search unit 21a2b can acquire the command type "operation" of the command name. [0178] As a result, the operation search unit 21a2b can search the' control program 24al to retrieve the operation. command.
[0179] By collating a command name with the command specification data 24b, the condition search unit 21a2c can acquire the command type "condition" of the command name. [0180] As a result, the condition search unit 21a2c can search the control program 24al to retrieve the condition command.
[0181] The storage unit 24 stores the search termination condition data 24c in which the termination condition of the search executed for the control program 24al is described. When the search determination unit 21a2d determines that the search satisfies the termination condition, the search determination unit 21a2d terminates the search by the operation search unit 21a2b and the condition search unit 21a2c.
[0182] As a result, the program diagnostic unit 21a2 achieves an effect of ensuring the search termination property. In addition, even when the size of the control program 24al is large, the search determination unit 21a2d can limit a search range. Therefore, the program diagnostic unit 21a2 achieves an effect of suppressing man-hour in identifying the cause of the problem of the control program 24al.
[0183] The storage unit 24 also stores execution data 24e in which values of all variables used in the control program 24al at a predetermined point in time are accumulated.
[0184] The scanning unit 21a2f scans the memory 3a2 of the control device 3 at a predetermined point in time to thereby acquire the values of all variables used in the control program 24al and write the values into the execution data 24e.
[0185] As a result, if using, for the search, the values of all variables scanned when receiving the notification from the control device 3 that a problem has occurred, the program diagnostic unit 21a2 can diagnose the control program 24al based on the values of all variables at a point in time when the problem has occurred in the control device 3. As a result, the program diagnostic unit 21a2 can diagnose the problem of the control program 24al at the point in time when the problem has occurred in the control device 3.
0186] Furthermore, if using, for the search, the values of all variables at a time point prior to the reception of the notification from the control device 3 that the problem has occurred, the program diagnostic unit 21a2 can diagnose the control program 24al based on the values of all variables at the point in time prior to the occurrence of the problem in the control device 3. As a result, the program diagnostic unit 21a2 can diagnose the problem of the control program 24al at the point in time prior to the occurrence of the problem in the control device 3. [0187] The simulation unit 21a2g performs a simulation run of the control program 24al to thereby calculate the values of all variables used in the control program 24al and write the values into the execution data 24e. [0188] As a result, the program diagnostic unit 21a2 can diagnose the problem of the control program 24al without operating the control device 3. [0189] The configuration described in the embodiment
above indicates one example of the content of the present invention and can be combined with other known technology, and a part thereof can be omitted or modified without departing from the gist of the present invention.
Reference Signs List
[0190] 1 control system, 2 engineering tool, 3 control device, 4, 5 machine, 21 CPU, 21al project data creation unit, 21a2 program diagnostic unit, 21a2a variable setting unit, 21a2b operation search unit, 21a2c condition search unit, 21a2d search determination unit, 21a2e list display unit, 21a2f scanning unit, 21a2g simulation unit, 24 storage unit, 24a project data, 24al control program, 24b command specification data, 24c search termination condition data, 2.4d. search result data, 24e execution data.
We Claim :
1. A program diagnostic apparatus comprising:
a storage unit to store a control program that includes an operation command for changing a value of an argument and a condition command for determining a condition for executing the operation command, command specification data that includes command names of commands describable in the control program, a type of the operation command or the condition command, and contents of processes of commands, and search result data in which a result of a search executed for the control program is accumulated;
a variable setting unit to set a target variable;
an operation search unit to search the control program to retrieve the operation command that possibly changes a value of the target variable, collate the retrieved operation command with the command specification data, and write a name of the target variable, as well as a command name, a command type, and contents of a process of the retrieved operation command into the search result data;
a condition search unit to search the control program to retrieve the condition command for determining a condition for executing the operation command retrieved by the operation search unit, collate the retrieved condition command with the command specification data, write a variable name of an argument of the retrieved condition command, as well as a command name, a command type, and contents of a process of the retrieved condition command into the search result data, and set the argument of the retrieved condition command as a new target variable;
a search determination unit to cause the operation search unit and the condition search unit to execute the search again; and
a list display unit to display a list of contents of
the search result data.
2. The program diagnostic apparatus according to claim 1, wherein the operation search unit searches the control program to retrieve the operation command by collating a command in the control program with the command specification data to acquire a command type of the command.
3. The program diagnostic apparatus according to claim 1, wherein the condition search unit searches the control program to retrieve the condition command by collating a command in the- control program with the command specification data to acquire a command type of the command.
4. The program diagnostic apparatus according to claim 1, wherein
the storage unit further stores search termination condition data in which a termination condition of a search executed for the control program is described, and
when the search determination unit determines that a search executed by the operation search unit and the condition search unit satisfies the termination condition, the search determination unit terminates the search by the operation search unit and the condition search unit, and when the search determination unit determines that a search executed by the operation search unit and the condition search unit does not satisfy the termination condition, the search determination unit causes the operation search unit and the condition search unit to execute the search again.
5. The program diagnostic apparatus according to claim 4,
wherein the search termination condition data is data of
frequency of search by the operation search unit and the
condition search unit or data of a search range of the control program.
6. The program diagnostic apparatus according to claim 1, wherein when a filtering condition of a variable name, or a command name, a command type, or contents of a process of a retrieved condition command is input, the list display unit displays a list of contents of data satisfying the filtering condition among the search result data.
7. The program diagnostic apparatus according to claim 1, wherein
the storage unit further stores execution data in which values of all variables used in the control program, at a predetermined point in time, are accumulated, and
the apparatus further comprises a scanning unit to acquire values of all variables used in the control program by scanning, at the predetermined point in time, a memory of a control device that executes the control program, and write the values into the execution data.
8. The program diagnostic apparatus according to claim 7, further comprising a simulation unit to. calculate values of all variables used in the control program by performing a simulation run of the control program, and write the values into the execution data.
9. A program diagnostic method executed by a program diagnostic apparatus comprising a storage unit to store a control program that includes an operation command for changing a value of an argument and a condition command for determining a condition for executing the operation command, command specification data that includes command names of
commands describable in the control program, a type of the operation command or the condition command, and contents of processes of commands, and search result data in which a result of a search executed for the control program is recorded, the method comprising:
a variable setting step of setting a target variable;
an operation search step of searching the control
program to retrieve the operation command that possibly
changes a value of the target variable, collating the
retrieved operation command with the command specification
data, and writing a name of the target variable, as well as
a command name, a command type, and contents of a process
of the retrieved operation command into the search result
data;
a condition search step of searching the control program to retrieve the condition command for determining a condition for executing the operation command retrieved in the operation search step, collating the retrieved condition command with the command specification data, writing a variable name of an argument of the retrieved condition command, as well as a command name, a command type, and contents of a process of the retrieved condition command into the search result data, and setting the argument of the retrieved condition command as a new target variable;
a search determination step of causing the search to be executed again in the operation search step and the condition search step; and
a list display step of displaying a list of contents of the search result data.
10. A program diagnostic program executed by a program diagnostic apparatus comprising a storage unit to store a
control program that includes an operation command for changing a value of an argument and a condition command for determining a condition for executing the operation command, command specification data that includes command names of commands describable in the control program, a type of the operation command or the condition command, and contents of processes of commands, and search result data in which a result of a search executed for the control program is recorded, the program comprising:
a variable setting step of setting a target variable;
an operation search step of searching the control program to retrieve the operation command that possibly changes a value of the target variable, collating the retrieved operation command with the command specification data, and writing a name of the target variable, as well as a command name, a command type, and contents of a process of the retrieved operation command into the search result data;
a condition search step of searching the control program to retrieve the condition command for determining a condition for executing the operation command retrieved in the operation search step, collating the retrieved condition command with the command specification data, writing a variable name of an argument of the retrieved condition command, as well as a command name, a command type, and contents of a process of the retrieved condition command into the search result data, and setting the argument of the retrieved condition command as a new target variable;
a search determination step of causing the search to be executed again in the operation search step and the condition search step; and
a list display step of displaying a list of contents of the search result data.
| # | Name | Date |
|---|---|---|
| 1 | 201727029578-IntimationOfGrant28-11-2023.pdf | 2023-11-28 |
| 1 | 201727029578-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [21-08-2017(online)].pdf | 2017-08-21 |
| 2 | 201727029578-PatentCertificate28-11-2023.pdf | 2023-11-28 |
| 2 | 201727029578-STATEMENT OF UNDERTAKING (FORM 3) [21-08-2017(online)].pdf | 2017-08-21 |
| 3 | 201727029578-Response to office action [19-09-2022(online)].pdf | 2022-09-19 |
| 3 | 201727029578-REQUEST FOR EXAMINATION (FORM-18) [21-08-2017(online)].pdf | 2017-08-21 |
| 4 | 201727029578-FORM 18 [21-08-2017(online)].pdf | 2017-08-21 |
| 4 | 201727029578-ABSTRACT [20-12-2019(online)].pdf | 2019-12-20 |
| 5 | 201727029578-FORM 1 [21-08-2017(online)].pdf | 2017-08-21 |
| 5 | 201727029578-CLAIMS [20-12-2019(online)].pdf | 2019-12-20 |
| 6 | 201727029578-FIGURE OF ABSTRACT [21-08-2017(online)].pdf | 2017-08-21 |
| 6 | 201727029578-COMPLETE SPECIFICATION [20-12-2019(online)].pdf | 2019-12-20 |
| 7 | 201727029578-DRAWINGS [21-08-2017(online)].pdf | 2017-08-21 |
| 7 | 201727029578-DRAWING [20-12-2019(online)].pdf | 2019-12-20 |
| 8 | 201727029578-FER_SER_REPLY [20-12-2019(online)].pdf | 2019-12-20 |
| 8 | 201727029578-DECLARATION OF INVENTORSHIP (FORM 5) [21-08-2017(online)].pdf | 2017-08-21 |
| 9 | 201727029578-COMPLETE SPECIFICATION [21-08-2017(online)].pdf | 2017-08-21 |
| 9 | 201727029578-OTHERS [20-12-2019(online)].pdf | 2019-12-20 |
| 10 | 201727029578-FORM 3 [18-12-2019(online)].pdf | 2019-12-18 |
| 10 | 201727029578-MARKED COPIES OF AMENDEMENTS [29-08-2017(online)].pdf | 2017-08-29 |
| 11 | 201727029578-AMMENDED DOCUMENTS [29-08-2017(online)].pdf | 2017-08-29 |
| 11 | 201727029578-Information under section 8(2) (MANDATORY) [18-12-2019(online)].pdf | 2019-12-18 |
| 12 | 201727029578-Amendment Of Application Before Grant - Form 13 [29-08-2017(online)].pdf | 2017-08-29 |
| 12 | 201727029578-FER.pdf | 2019-09-30 |
| 13 | 201727029578-FORM 3 [18-09-2019(online)].pdf | 2019-09-18 |
| 13 | 201727029578-Proof of Right (MANDATORY) [25-09-2017(online)].pdf | 2017-09-25 |
| 14 | 201727029578-FORM 3 [28-03-2019(online)].pdf | 2019-03-28 |
| 14 | 201727029578-FORM-26 [25-09-2017(online)].pdf | 2017-09-25 |
| 15 | 201727029578-ORIGINAL UNDER RULE 6 (1A)-FORM 1-051017.pdf | 2018-08-11 |
| 15 | 201727029578-ORIGINAL UNDER RULE 6 (1A)-FORM 26-05-10-2017.pdf | 2017-10-05 |
| 16 | 201727029578-FORM 3 [03-02-2018(online)].pdf | 2018-02-03 |
| 16 | 201727029578.pdf | 2018-08-11 |
| 17 | ABSTRACT.jpg | 2018-08-11 |
| 17 | 201727029578-FORM 3 [14-02-2018(online)].pdf | 2018-02-14 |
| 18 | 201727029578-FORM 3 [14-02-2018(online)].pdf | 2018-02-14 |
| 18 | ABSTRACT.jpg | 2018-08-11 |
| 19 | 201727029578-FORM 3 [03-02-2018(online)].pdf | 2018-02-03 |
| 19 | 201727029578.pdf | 2018-08-11 |
| 20 | 201727029578-ORIGINAL UNDER RULE 6 (1A)-FORM 1-051017.pdf | 2018-08-11 |
| 20 | 201727029578-ORIGINAL UNDER RULE 6 (1A)-FORM 26-05-10-2017.pdf | 2017-10-05 |
| 21 | 201727029578-FORM 3 [28-03-2019(online)].pdf | 2019-03-28 |
| 21 | 201727029578-FORM-26 [25-09-2017(online)].pdf | 2017-09-25 |
| 22 | 201727029578-FORM 3 [18-09-2019(online)].pdf | 2019-09-18 |
| 22 | 201727029578-Proof of Right (MANDATORY) [25-09-2017(online)].pdf | 2017-09-25 |
| 23 | 201727029578-Amendment Of Application Before Grant - Form 13 [29-08-2017(online)].pdf | 2017-08-29 |
| 23 | 201727029578-FER.pdf | 2019-09-30 |
| 24 | 201727029578-Information under section 8(2) (MANDATORY) [18-12-2019(online)].pdf | 2019-12-18 |
| 24 | 201727029578-AMMENDED DOCUMENTS [29-08-2017(online)].pdf | 2017-08-29 |
| 25 | 201727029578-FORM 3 [18-12-2019(online)].pdf | 2019-12-18 |
| 25 | 201727029578-MARKED COPIES OF AMENDEMENTS [29-08-2017(online)].pdf | 2017-08-29 |
| 26 | 201727029578-COMPLETE SPECIFICATION [21-08-2017(online)].pdf | 2017-08-21 |
| 26 | 201727029578-OTHERS [20-12-2019(online)].pdf | 2019-12-20 |
| 27 | 201727029578-DECLARATION OF INVENTORSHIP (FORM 5) [21-08-2017(online)].pdf | 2017-08-21 |
| 27 | 201727029578-FER_SER_REPLY [20-12-2019(online)].pdf | 2019-12-20 |
| 28 | 201727029578-DRAWING [20-12-2019(online)].pdf | 2019-12-20 |
| 28 | 201727029578-DRAWINGS [21-08-2017(online)].pdf | 2017-08-21 |
| 29 | 201727029578-COMPLETE SPECIFICATION [20-12-2019(online)].pdf | 2019-12-20 |
| 29 | 201727029578-FIGURE OF ABSTRACT [21-08-2017(online)].pdf | 2017-08-21 |
| 30 | 201727029578-CLAIMS [20-12-2019(online)].pdf | 2019-12-20 |
| 30 | 201727029578-FORM 1 [21-08-2017(online)].pdf | 2017-08-21 |
| 31 | 201727029578-FORM 18 [21-08-2017(online)].pdf | 2017-08-21 |
| 31 | 201727029578-ABSTRACT [20-12-2019(online)].pdf | 2019-12-20 |
| 32 | 201727029578-Response to office action [19-09-2022(online)].pdf | 2022-09-19 |
| 32 | 201727029578-REQUEST FOR EXAMINATION (FORM-18) [21-08-2017(online)].pdf | 2017-08-21 |
| 33 | 201727029578-STATEMENT OF UNDERTAKING (FORM 3) [21-08-2017(online)].pdf | 2017-08-21 |
| 33 | 201727029578-PatentCertificate28-11-2023.pdf | 2023-11-28 |
| 34 | 201727029578-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [21-08-2017(online)].pdf | 2017-08-21 |
| 34 | 201727029578-IntimationOfGrant28-11-2023.pdf | 2023-11-28 |
| 1 | SearchTPO_27-09-2019.pdf |