KR20170127569A - Program diagnostic device, program diagnostic method, and program diagnostic program - Google Patents

Program diagnostic device, program diagnostic method, and program diagnostic program Download PDF

Info

Publication number
KR20170127569A
KR20170127569A KR1020177031427A KR20177031427A KR20170127569A KR 20170127569 A KR20170127569 A KR 20170127569A KR 1020177031427 A KR1020177031427 A KR 1020177031427A KR 20177031427 A KR20177031427 A KR 20177031427A KR 20170127569 A KR20170127569 A KR 20170127569A
Authority
KR
South Korea
Prior art keywords
command
search
condition
control program
unit
Prior art date
Application number
KR1020177031427A
Other languages
Korean (ko)
Other versions
KR101846140B1 (en
Inventor
다카유키 야마오카
슈지 다나카
Original Assignee
미쓰비시덴키 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미쓰비시덴키 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20170127569A publication Critical patent/KR20170127569A/en
Application granted granted Critical
Publication of KR101846140B1 publication Critical patent/KR101846140B1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0267Fault communication, e.g. human machine interface [HMI]
    • G05B23/0272Presentation of monitored results, e.g. selection of status reports to be displayed; Filtering information to the user
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14112Diagnostic, troubleshooting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Human Computer Interaction (AREA)

Abstract

동작 명령 및 조건 명령을 포함하는 제어 프로그램과, 명령의 명령명, 명령의 타입 및 명령의 처리의 내용을 포함하는 명령 사양 데이터와, 제어 프로그램에 대해서 실행되는 검색의 결과가 축적되는 검색 결과 데이터를 기억하는 기억부와, 타겟 변수를 설정하는 변수 설정부와, 타겟 변수의 값이 변화할 가능성이 있는 동작 명령을 검색하고, 타겟 변수명 및 검색된 동작 명령의 명령명, 명령의 타입 및 처리의 내용을 검색 결과 데이터에 기입하는 동작 검색부와, 동작 명령을 실행하는 조건을 판정하는 조건 명령을 검색하고, 검색된 조건 명령의 인수의 변수명 및 조건 명령의 명령명, 명령의 타입 및 처리의 내용을 검색 결과 데이터에 기입하고, 조건 명령의 인수를 새로운 타겟 변수로 설정하는 조건 검색부와, 동작 검색부 및 조건 검색부에 검색을 재차 실행시키는 검색 판정부와, 검색 결과 데이터의 내용을 일람 표시하는 일람 표시부를 구비한다. A control program including an operation command and a conditional instruction; command specification data including a command name of the command, a type of the command, and contents of processing of the command; and search result data in which the result of the search executed for the control program is stored A variable setting unit for setting a target variable, an operation command having a possibility that the value of the target variable may change, a target variable name, a command name of the retrieved operation command, a type of command, An operation search unit for searching for a conditional command for determining a condition for executing an operation command, a variable name of an argument of the retrieved conditional command, a command name of the conditional command, a type of command, A condition search unit for writing the search result data into the search result data and setting an argument of the conditional command as a new target variable; The primary search execution determination section, and provided with a list display list to display the contents of the search result data to.

Description

프로그램 진단 장치, 프로그램 진단 방법 및 프로그램 진단 프로그램Program diagnostic device, program diagnostic method, and program diagnostic program

본 발명은 제어 프로그램을 진단하는 프로그램 진단 장치, 프로그램 진단 방법 및 프로그램 진단 프로그램에 관한 것이다. The present invention relates to a program diagnostic apparatus for diagnosing a control program, a program diagnostic method, and a program diagnostic program.

FA(Factory Automation) 분야에서 기계를 제어하는 제어 시스템에서는, 제어 프로그램은 프로그램 언어로 기술(記述)된다. 프로그램 언어는 래더(Ladder, LD) 언어 또는 스트럭처드 텍스트(Structured Text, ST) 언어(IEC 61131-3, JIS B 3503:2012)가 예시된다. In a control system for controlling a machine in the field of factory automation (FA), a control program is described in a programming language. The programming language is ladder (LD) language or structured text (ST) language (IEC 61131-3, JIS B 3503: 2012).

제어 프로그램은 명령 및 변수를 포함한다. 제어 프로그램 내의 어느 변수의 값이, 상정하고 있는 값과 상이한 경우에, 그 원인을 조사하기 위해서는, 이하의 조작이 수동으로 행해지고 있었다. The control program includes commands and variables. In the case where the value of a certain variable in the control program is different from the assumed value, the following operation has been performed manually to investigate the cause thereof.

제1 조작은 제어 프로그램을 거슬러 올라가, 타겟 변수의 값을 변화시킬 가능성이 있는 지점 및 조건을 조사하는 조작이다. The first operation is an operation to go back to the control program and examine the points and conditions that are likely to change the value of the target variable.

제2 조작은 제어 프로그램을 시뮬레이션 실행하여, 제1 조작에서 조사한 지점에서 조건이 만족되는 것을 재현하는 조작이다. The second operation is an operation for simulating the control program to reproduce that the condition is satisfied at the point irradiated in the first operation.

제3 조작은 추가로 제어 프로그램을 거슬러 올라가, 제2 조작에서 재현한 조건을 만족하는 지점 및 조건을 조사하는 조작이다. The third operation is an operation of going back to the control program and examining the point and condition satisfying the condition reproduced in the second operation.

이후, 제2 조작 및 제3 조작을 반복하여, 근본이 되는 원인을 찾고 있었다.Thereafter, the second operation and the third operation were repeated to find the root cause.

그러나 수동으로 제어 프로그램을 거슬러 올라가 조사해 가는 것은, 시간 및 노력이 드므로, 변수의 값이 상정하고 있는 값과 상이한 것의 원인의 특정은 곤란했었다. However, since it is time and effort to go back and examine the control program manually, it was difficult to specify the cause of the difference of the value of the variable from the assumed value.

관련되는 기술로서, 하기의 특허 문헌 1에는, 출력 신호가 이상(異常) 접점으로 검지되었을 경우, 그 출력 신호로부터 래더 프로그램을 전의 스텝으로 돌아가, 1개 1개의 접점 상태를 확인하면서 결함 접점을 특정하는 커버리지 진단을 행하는, 래더 프로그램 진단 방법이 기재되어 있다(단락 0053).As a related art, Japanese Patent Application Laid-Open Publication No. 2001-34870 discloses a technique in which, when an output signal is detected as an abnormal contact, the ladder program is returned from the output signal to the previous step, A ladder program diagnostic method is disclosed (paragraph 0053).

또, 하기의 특허 문헌 2에는, 출력 명령부의 이상을 검색 키로 하여, 이 값을 조작 가능한 출력 명령부를 포함한 블록을 래더 프로그램 내의 모든 블록 중으로부터 발견하는 제1 과정과, 제1 과정에서 찾아 내진 블록의 조건 명령부의 논리 연산을 행하고, 이 조건 명령부의 논리 연산 결과에 대응하는 이 블록의 출력 명령부의 상태를 판정하여, 이 블록이 상기 이상한 출력 명령부의 상태를 실제로 조작하고 있는지 여부에 대한 정당성 판정을 행하는 제2 과정과, 제2 과정에서 블록이 정당한 경우에, 이 블록의 조건 명령부 중에서 그 출력 명령부의 상태를 조작 가능한 릴레이를 모두 찾는 제3 과정과, 제3 과정에서 찾아 내진 릴레이를 다음 검색 키로 하여 제1, 제2 및 제3 과정을 반복하는 제4 과정과, 제1 과정에서 해당하는 블록이 발견되지 않았을 경우에, 그 취지의 결과를 출력함과 아울러, 제3 과정에서 해당하는 릴레이가 발견되지 않았을 경우에 그 조건 명령부 내의 릴레이를 이상 원인으로 하는 결과를 출력하는 제5 과정을 가지는 래더 시퀀스 방식의 프로그램에 있어서의 이상에 대한 원인 지점 구명 방법이 기재되어 있다(제4 페이지 내지 제5 페이지).In the following Patent Document 2, a first step of finding a block including an output instruction section capable of manipulating the value of an output instruction section as a search key from among all the blocks in the ladder program, The state of the output instruction section of the block corresponding to the logical operation result of the condition instruction section is judged and the validity judgment as to whether this block actually manipulates the state of the abnormal output instruction section is made A third step of searching all the relays capable of manipulating the state of the output instruction section among the condition instruction sections of the block if the block is legitimate in the second step; A fourth step of repeating the first, second, and third processes with the key, and if the corresponding block is not found in the first process, And a fifth step of outputting a result of the output and outputting a result of the relay in the conditional instruction unit as an error cause when the corresponding relay is not found in the third step, in a ladder sequence type program (4th page to 5th page) are described.

또, 하기의 특허 문헌 3에는, 시퀀스도 취득부가 동작 상태의 시퀀스도를 취득하고, 선택부가 동작 시퀀스도 중 소망하는 심볼을 선택함으로써, 그 심볼에 관련되는 상류(上流)의 접속선을 접속선 검색부가 잇따라 검색하여, 동작 상태의 출력의 유무를 용이하게 얻을 수 있음과 아울러, 동작 상태가 변화하더라도, 그 데이터를 읽어들여 불량 부분의 검색을 차례로 행할 수 있는 시퀀스도 모니터가 기재되어 있다(요약서).In the following Patent Document 3, the sequence diagram of the sequence diagram acquisition section is obtained, and the selector selects the desired symbol among the operation sequence diagrams, and the upstream connection line associated with the symbol is selected as the connection line A sequence is also described in which a search section sequentially searches for a presence or absence of an output of an operation state and can search for a defective portion in succession even if the operation state changes, ).

특허 문헌 1: 일본 특개 2001-67122호 공보Patent Document 1: JP-A-2001-67122 특허 문헌 2: 일본 특개평 3-108005호 공보Patent Document 2: JP-A-3-108005 특허 문헌 3: 일본 특개평 9-305207호 공보Patent Document 3: JP-A-9-305207

그렇지만, 특허 문헌 1 내지 특허 문헌 3에 기재된 기술에서는, 유저는 문제의 원인이 된 접점을 알 수 있지만, 문제의 원인이 된 접점으로부터 문제가 발생한 접점까지의 사이의 명령을 알 수 없다. 따라서, 유저가 문제의 전체 형상(이미지)을 파악하는 것은, 곤란했다. However, in the techniques described in Patent Documents 1 to 3, the user can know the contact which is the cause of the problem, but can not know the command from the contact causing the problem to the contact where the problem occurred. Therefore, it is difficult for the user to grasp the entire shape (image) of the problem.

본 발명은 상기를 감안하여 이루어진 것으로서, 유저가 문제의 전체 형상을 파악하는 것을 용이하게 할 수 있는 프로그램 진단 장치를 얻는 것을 목적으로 한다. SUMMARY OF THE INVENTION 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 which enables a user to easily grasp the overall shape of a problem.

상술한 과제를 해결하여 목적을 달성하기 위해서, 본 발명은 인수(引數, argument)의 값을 변화시키는 동작 명령 및 동작 명령을 실행하는 조건을 판정하는 조건 명령을 포함하는 제어 프로그램과, 제어 프로그램에서 기술될 수 있는 명령의 명령명, 동작 명령 또는 조건 명령의 타입, 및 명령의 처리의 내용을 포함하는 명령 사양 데이터와, 제어 프로그램에 대해서 실행되는 검색의 결과가 축적되는 검색 결과 데이터를 기억하는 기억부를 구비한다. 본 발명은 타겟 변수를 설정하는 변수 설정부와, 타겟 변수의 값이 변화할 가능성이 있는 동작 명령을 제어 프로그램 중에서 검색하고, 검색된 동작 명령과 명령 사양 데이터를 대조하여, 타겟 변수명, 및 검색된 동작 명령의 명령명, 명령의 타입 및 처리의 내용을 검색 결과 데이터에 기입하는 동작 검색부와, 동작 검색부에서 검색된 동작 명령을 실행하는 조건을 판정하는 조건 명령을 제어 프로그램 중에서 검색하고, 검색된 조건 명령과 명령 사양 데이터를 대조하고, 검색된 조건 명령의 인수의 변수명, 및 검색된 조건 명령의 명령명, 명령의 타입 및 처리의 내용을 검색 결과 데이터에 기입하고, 검색된 조건 명령의 인수를 새로운 타겟 변수로 설정하는 조건 검색부와, 동작 검색부 및 조건 검색부에 검색을 재차 실행시키는 검색 판정부와, 검색 결과 데이터의 내용을 일람 표시하는 일람 표시부를 구비한다. In order to solve the above-described problems and to achieve the object, the present invention is characterized by comprising: a control program including an operation command for changing a value of an argument and a condition command for determining a condition for executing an operation command; The instruction specification data including the instruction name of the instruction, the type of the operation instruction or the condition instruction, and the content of the instruction process, and the search result data in which the result of the search executed for the control program is stored And a storage unit. The present invention includes a variable setting unit for setting a target variable, an operation command for which a value of a target variable is likely to change is searched in a control program, a target variable name and a searched operation An operation retrieval unit that writes the command name of the command, the type of the command, and the contents of the processing into the retrieval result data; and a conditional command that determines a condition for executing the operation command retrieved by the operation retrieval unit, And the command specification data, writes the variable name of the argument of the retrieved condition command, the command name of the retrieved condition command, the type of command and the contents of the processing to the retrieval result data, and sets the argument of the retrieved condition command as a new target variable A search condition determining unit for determining whether or not to search for a search result, And a list display unit for displaying a list of contents of the data.

본 발명에 따른 프로그램 진단 장치는, 유저가 문제의 전체 형상을 파악하는 것을 용이하게 할 수 있다고 하는 효과를 달성한다. The program diagnostic apparatus according to the present invention achieves the effect that the user can easily grasp the overall shape of the problem.

도 1은 실시 형태 1에 따른 제어 시스템의 구성을 나타내는 도면이다.
도 2는 실시 형태 1에 따른 제어 장치의 하드웨어 구성을 나타내는 도면이다.
도 3은 실시 형태 1에 따른 엔지니어링 툴의 하드웨어 구성을 나타내는 도면이다.
도 4는 실시 형태 1에 따른 엔지니어링 툴의 기능 블록을 나타내는 도면이다.
도 5는 실시 형태 1에 따른 엔지니어링 툴의 명령 사양 데이터를 나타내는 도면이다.
도 6은 실시 형태 1에 따른 엔지니어링 툴의 검색 횟수 데이터를 나타내는 도면이다.
도 7은 실시 형태 1에 따른 엔지니어링 툴의 검색 범위 데이터를 나타내는 도면이다.
도 8은 실시 형태 1에 따른 엔지니어링 툴의 검색 결과 데이터를 나타내는 도면이다.
도 9는 실시 형태 1에 따른 엔지니어링 툴의 프로젝트 데이터 작성 화면을 나타내는 도면이다.
도 10은 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다.
도 11은 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다.
도 12는 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다.
도 13은 실시 형태 1에 따른 엔지니어링 툴의 프로그램 진단 화면을 나타내는 도면이다.
도 14는 실시 형태 1에 따른 엔지니어링 툴의 검색 처리를 설명하는 도면이다.
도 15는 실시 형태 1에 따른 엔지니어링 툴의 검색 처리를 설명하는 도면이다.
도 16은 실시 형태 1에 따른 엔지니어링 툴의 검색 처리를 설명하는 도면이다.
도 17은 실시 형태 1에 따른 엔지니어링 툴의 프로그램 진단 화면을 나타내는 도면이다.
도 18은 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다.
도 19는 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다.
1 is a diagram showing a configuration of a control system according to a first embodiment.
2 is a diagram showing the hardware configuration of the control apparatus according to the first embodiment.
3 is a diagram showing the hardware configuration of the engineering tool according to the first embodiment.
4 is a functional block diagram of the engineering tool according to the first embodiment.
5 is a diagram showing command specification data of the engineering tool according to the first embodiment.
6 is a diagram showing search frequency data of the engineering tool according to the first embodiment.
7 is a diagram showing search range data of the engineering tool according to the first embodiment.
8 is a diagram showing search result data of the engineering tool according to the first embodiment.
9 is a diagram showing a project data creation screen of the engineering tool according to the first embodiment.
10 is a flowchart showing the processing of the engineering tool according to the first embodiment.
11 is a flowchart showing the processing of the engineering tool according to the first embodiment.
12 is a flowchart showing the processing of the engineering tool according to the first embodiment.
13 is a diagram showing a program diagnostic screen of the engineering tool according to the first embodiment.
14 is a diagram for explaining a search process of the engineering tool according to the first embodiment.
15 is a diagram for explaining search processing of the engineering tool according to the first embodiment.
16 is a diagram for explaining the search processing of the engineering tool according to the first embodiment.
17 is a diagram showing a program diagnostic screen of the engineering tool according to the first embodiment.
18 is a flowchart showing the processing of the engineering tool according to the first embodiment.
19 is a flowchart showing the processing of the engineering tool according to the first embodiment.

이하에, 본 발명의 실시 형태에 따른 프로그램 진단 장치, 프로그램 진단 방법 및 프로그램 진단 프로그램을 도면에 기초하여 상세하게 설명한다. 또한, 이 실시 형태에 의해 이 발명이 한정되는 것은 아니다. 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 present invention is not limited to these embodiments.

실시 형태 1.Embodiment 1

도 1은 본 발명의 실시 형태 1에 따른 제어 시스템의 구성을 나타내는 도면이다. 제어 시스템(1)은 엔지니어링 툴(2)과, 제어 장치(3)와, 기계(4 및 5)를 포함한다. 1 is a diagram showing a configuration of a control system according to Embodiment 1 of the present invention. The control system 1 includes an engineering tool 2, a control device 3, and machines 4 and 5.

엔지니어링 툴(2)은 제어 장치(3)에서 실행되는 제어 프로그램을 포함하는 프로젝트 데이터를 작성하여, 제어 장치(3)에 송신한다. 제어 장치(3)는 프로젝트 데이터에 포함되는 제어 프로그램을 실행함으로써, 기계(4 및 5)를 제어한다. 제어 장치(3)는 프로그래머블 컨트롤러(JIS B 3502:2011, programmable controllers(PLC))가 예시된다. The engineering tool 2 creates project data including a control program executed in the control device 3, and transmits the created project data 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 a programmable controller (JIS B 3502: 2011, programmable controllers (PLC)).

도 2는 실시 형태 1에 따른 제어 장치의 하드웨어 구성을 나타내는 도면이다. 제어 장치(3)는 메인 기판(3a)과, 서브 기판(3b 및 3c)을 포함한다. 2 is a diagram showing the hardware configuration of the control apparatus according to the first embodiment. The control device 3 includes a main substrate 3a and sub-substrates 3b and 3c.

메인 기판(3a)은 CPU(Central Processing Unit)(3a1)와, RAM(Random Access Memory)인 메모리(3a2)와, 통신 인터페이스(3a3)와, 버스 인터페이스(3a4)와, 기억부(3a5)를 포함한다. CPU(3a1), 메모리(3a2), 통신 인터페이스(3a3), 버스 인터페이스(3a4) 및 기억부(3a5)는, 내부 버스(B1)를 통해서 접속되어 있다. The main board 3a includes a CPU (Central Processing Unit) 3a1, a memory 3a2 as 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 the internal bus B1.

통신 인터페이스(3a3)는 엔지니어링 툴(2)과 통신을 행한다. The communication interface 3a3 communicates with the engineering tool 2.

버스 인터페이스(3a4)는 내부 버스(B1)와 확장 버스(B2)를 연결하는 버스 브릿지 회로이다. 서브 기판(3b 및 3c)은 확장 버스(B2)를 통해서, 메인 기판(3a)에 접속되어 있다. 서브 기판(3b)은 기계(4)에 접속되어 있다. 서브 기판(3c)은 기계(5)에 접속되어 있다.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 3b is connected to the machine 4. [ The sub-substrate 3c is connected to the machine 5.

기억부(3a5)는 엔지니어링 툴(2)로부터 수신한 프로젝트 데이터(24a)를 기억한다. 기억부(3a5)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)가 예시된다. The storage unit 3a5 stores the project data 24a received from the engineering tool 2. [ An SSD (Solid State Drive) or an HDD (Hard Disk Drive) is exemplified as the storage unit 3a5.

프로젝트 데이터(24a)는 인수의 값을 변화시키는 동작 명령 및 동작 명령을 실행하는 조건을 판정하는 조건 명령을 포함하는 제어 프로그램(24a1)과, 제어 프로그램(24a1)의 실행시에 참조되는 제어 파라미터(24a2)와, 메모리(3a2) 내의 작업 영역을 규정하는 디바이스 메모리(24a3)와, 서브 기판(3b)과 기계(4)의 접속 관계 및 서브 기판(3c)과 기계(5)의 접속 관계를 규정하는 접속 정보(24a4)를 포함한다. The project data 24a includes a control program 24a1 including an operation command for changing the value of the argument and a condition command for determining a condition for executing the operation command and a control parameter 24a1 for referring to the control parameter 24a1 A device memory 24a3 that defines a working area in the memory 3a2 and 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 And the connection information 24a4.

제어 프로그램(24a1)은 MAIN(메인) 프로그램(24a1a)과, SUB(서브) 프로그램(24a1b)을 포함한다. 실시 형태 1에서는, 제어 프로그램(24a1)은 래더 언어로 기술되어 있는 것으로 하지만, 이것으로 한정되지 않는다. 제어 프로그램(24a1)이 기술되는 다른 언어는, 스트럭처드 텍스트 언어가 예시된다. The control program 24a1 includes a MAIN program 24a1a and a SUB (sub) program 24a1b. In Embodiment 1, the control program 24a1 is described in a ladder language, but is not limited thereto. Another language in which the control program 24a1 is described is a structured text language.

메모리(3a2) 내에는, 디바이스 메모리(24a3)로 규정되는 복수의 디바이스가 확보된다. 실시 형태 1에서는, 메모리(3a2) 내의 복수의 디바이스의 각각은, 제어 프로그램(24a1)의 변수에 대응한다. In the memory 3a2, a plurality of devices defined by the device memory 24a3 are secured. In Embodiment 1, each of a plurality of devices in the memory 3a2 corresponds to a variable of the control program 24a1.

도 3은 실시 형태 1에 따른 엔지니어링 툴의 하드웨어 구성을 나타내는 도면이다. 실시 형태 1에 따른 엔지니어링 툴(2)은 컴퓨터를 이용하여 실현 가능하다. 컴퓨터는 CPU(21)와, RAM(22)과, ROM(Read Only Memory)(23)과, 기억부(24)와, 입력부(25)와, 표시부(26)와, 통신 인터페이스(27)를 포함한다. CPU(21), RAM(22), ROM(23), 기억부(24), 입력부(25), 표시부(26) 및 통신 인터페이스(27)는 버스(B)를 통해서 접속되어 있다. 3 is a diagram showing the hardware configuration of the engineering tool according to the first embodiment. The engineering tool 2 according to the first embodiment can be realized by 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, 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. [

CPU(21)는 RAM(22)을 작업 영역으로서 사용하면서, ROM(23) 및 기억부(24)에 기억되어 있는 프로그램을 실행한다. ROM(23)에 기억되어 있는 프로그램은, BIOS(Basic Input/Output System) 또는 UEFI(Unified Extensible Firmware Interface)가 예시된다. 기억부(24)에 기억되어 있는 프로그램은, 오퍼레이팅 시스템 프로그램 및 엔지니어링 툴 프로그램이 예시된다. 기억부(24)는 SSD 또는 HDD가 예시된다. The CPU 21 executes the program stored in the ROM 23 and the storage unit 24 while using the RAM 22 as a work area. A program stored in the ROM 23 is a BIOS (Basic Input / Output System) or a UEFI (Unified Extensible Firmware Interface). Examples of the programs stored in the storage unit 24 are an operating system program and an engineering tool program. The storage unit 24 is an SSD or an HDD.

입력부(25)는 유저로부터의 조작 입력을 접수한다. 입력부(25)는 키보드 또는 마우스가 예시된다. 표시부(26)는 문자 및 화상을 표시한다. 표시부(26)는 액정 표시 장치가 예시된다. 통신 인터페이스(27)는 제어 장치(3)와 통신을 행한다. The input unit 25 accepts an operation input from the user. The input unit 25 may be a keyboard or a mouse. The display section 26 displays characters and images. The display section 26 is a liquid crystal display device. The communication interface 27 communicates with the control device 3.

도 4는 실시 형태 1에 따른 엔지니어링 툴의 기능 블록을 나타내는 도면이다. 기억부(24)는 프로젝트 데이터(24a)를 기억한다.4 is a functional block diagram of the engineering tool according to the first embodiment. The storage unit 24 stores the project data 24a.

프로젝트 데이터(24a)는 인수의 값을 변화시키는 동작 명령 및 동작 명령을 실행하는 조건을 판정하는 조건 명령을 포함하는 제어 프로그램(24a1)과, 제어 프로그램(24a1)의 실행시에 참조되는 제어 파라미터(24a2)와, 제어 장치(3)의 메모리(3a2) 내의 작업 영역을 규정하는 디바이스 메모리(24a3)와, 제어 장치(3)의 서브 기판(3b)과 기계(4)의 접속 관계 및 제어 장치(3)의 서브 기판(3c)과 기계(5)의 접속 관계를 규정하는 접속 정보(24a4)를 포함한다. The project data 24a includes a control program 24a1 including an operation command for changing the value of the argument and a condition command for determining a condition for executing the operation command and a control parameter 24a1 for referring to the control parameter 24a1 A device memory 24a3 for defining a working area in the memory 3a2 of the control device 3 and a connection relationship between the sub-substrate 3b and the machine 4 of the control device 3, 3 and the connection information 24a4 defining the connection relationship between the sub-board 3c and the machine 5. [

기억부(24)는 제어 프로그램(24a1)에서 기술될 수 있는 모든 명령의 명령명, 동작 명령 또는 조건 명령의 타입 및 명령의 처리의 내용을 포함하는 명령 사양 데이터(24b)를 기억한다. The storage section 24 stores the command specification data 24b including the command name, the operation command or the type of the condition command and the contents of the processing of the command of all the commands that can be described in the control program 24a1.

실시 형태 1에서는, 제어 프로그램(24a1)은 래더 언어로 기술되어 있다. 따라서, 명령 사양 데이터(24b)는 래더 언어의 모든 명령의 명령명, 동작 명령 또는 조건 명령의 타입 및 명령의 처리의 내용을 포함한다. In the first embodiment, the control program 24a1 is described in a ladder language. Therefore, the instruction specification data 24b includes the command name, the operation command or the type of the conditional instruction and the content of the instruction processing of all the instructions in the ladder language.

도 5는 실시 형태 1에 따른 엔지니어링 툴의 명령 사양 데이터를 나타내는 도면이다. 명령 사양 데이터(24b)는 명령명의 항목(24b1)과, 명령 타입의 항목(24b2)과, 설명문의 항목(24b3)과, 비고의 항목(24b4)을 포함한다. 5 is a diagram showing command specification data of the engineering tool according to the first embodiment. The command specification data 24b includes an instruction name item 24b1, an instruction type item 24b2, a description inquiry item 24b3, and a note item 24b4.

명령 사양 데이터(24b)의 행(51)은 「LD」(로드) 명령에 관한 정보를 포함한다. 행(51)의 명령명의 항목에는 명령명 「LD」가 기술되어 있다. 행(51)의 명령 타입의 항목에는, LD 명령이 조건 명령이므로, 명령 타입 「조건」이 기술되어 있다. A row 51 of the command specification data 24b contains information about the " LD " (load) command. The command name " LD " is described in the item of the command name of the line 51. [ The command type "condition" is described in the item of the command type of the row 51 because the LD command is a conditional command.

행(51)의 설명문의 항목에는, 「LD」명령에 대한 동작 설명이 기술되어 있다. 「LD」명령은 제1 인수가 ON(온)되어 있는지 여부를 판정하는 명령이므로, 행(51)의 설명문의 항목에는, 설명문 「#1이 ON되어 있음」이 기술되어 있다. The description of the operation of the " LD " command is described in the description of the line 51 item. Quot; # 1 is ON " is described in the item of description of the line 51 since the " LD " command is an instruction to determine whether or not the first argument is ON (ON).

행(51)의 비고의 항목에는, 「LD」명령의 제1 인수의 데이터형이 기술되어 있다. 「LD」명령의 제1 인수는 비트형이므로, 행(51)의 비고의 항목에는, 비고 「비트 변수」가 기술되어 있다. The data type of the first argument of the " LD " instruction is described in the column of the note in the row 51. [ Since the first argument of the " LD " instruction is of bit type, a note "bit variable" is described in the column of the note in the row 51. [

명령 사양 데이터(24b)의 행(52)은 「OUT」(아웃) 명령에 관한 정보를 포함한다. 행(52)의 명령명의 항목에는 명령명 「OUT」이 기술되어 있다. 행(52)의 명령 타입의 항목에는, OUT 명령이 동작 명령이므로, 명령 타입 「동작」이 기술되어 있다. A row 52 of the command specification data 24b contains information about an " OUT " (out) command. The command name " OUT " is described in the item of the command name in the line 52. [ Since the OUT command is an operation command in the item of the command type in the line 52, the command type " operation " is described.

행(52)의 설명문의 항목에는 「OUT」명령에 대한 동작 설명이 기술되어 있다. 「OUT」명령은 제1 인수를 ON(온)시키는 명령이므로, 행(52)의 설명문의 항목에는, 설명문 「#1을 ON시킴」이 기술되어 있다. The description of the operation of the " OUT " command is described in the explanation of the line 52. Since the " OUT " command is an instruction to turn on the first argument, the comment statement " ON # 1 "

행(52)의 비고의 항목에는, 「OUT」명령의 제1 인수의 데이터형(型)이 기술되어 있다. 「OUT」명령의 제1 인수는 비트형이므로, 행(52)의 비고의 항목에는, 비고 「비트 변수」가 기술되어 있다.The data type of the first argument of the " OUT " command is described in the column of the note in the row 52. [ Since the first argument of the " OUT " command is of the bit type, the note item of the row 52 describes the note " bit variable ".

명령 사양 데이터(24b)의 행(53)은 「=」(equal) 명령에 관한 정보를 포함한다. 행(53)의 명령명의 항목에는 명령명 「=」이 기술되어 있다. 행(53)의 명령 타입의 항목에는, 「=」명령이 조건 명령이므로, 명령 타입 「조건」이 기술되어 있다. A row 53 of the command specification data 24b contains information about an " = " (equal) command. The command name " = " is described in the item of the command name in the line 53. [ The command type "condition" is described in the item of the command type of the line 53 because the "=" command is a conditional command.

행(53)의 설명문의 항목에는 「=」명령에 대한 동작 설명이 기술되어 있다. 「=」명령은 제1 인수와 제2 인수가 같은지 여부를 판정하는 명령이므로, 행(53)의 설명문의 항목에는, 설명문 「#1이 #2와 같음」이 기술되어 있다. The description of the operation of the "=" command is described in the description of the line 53 item. Since the command "=" is an instruction to judge whether the first argument and the second argument are the same, the comment statement "# 1 is the same as # 2" is described in the description line item of the line 53.

행(53)의 비고의 항목에는, 「=」명령의 제1 인수 및 제2 인수의 데이터형이 기술되어 있다. 「=」명령의 제1 인수 및 제2 인수는 워드형이므로, 행(53)의 비고의 항목에는, 비고 「워드 변수」가 기술되어 있다. The data type of the first argument and the second argument of the " = " command are described in the column of the note in the line 53. [ Since the first argument and the second argument of the " = " command are of the word type, a remarks " word variable "

명령 사양 데이터(24b)의 행(54)은 「MOV」(무브) 명령에 관한 정보를 포함한다. 행(54)의 명령명의 항목에는, 명령명 「MOV」가 기술되어 있다. 행(54)의 명령 타입의 항목에는, 「MOV」명령이 조건 명령이므로, 명령 타입 「동작」이 기술되어 있다. A row 54 of the command specification data 24b contains information about the " MOV " (MOVE) command. The command name " MOV " is described in the item of the command name in the line 54. [ Since the "MOV" instruction is a conditional instruction, the instruction type "operation" is described in the item of the instruction type of the row 54.

행(54)의 설명문의 항목에는, 「MOV」명령에 대한 동작 설명이 기술되어 있다. 「MOV」명령은 제1 인수의 값을 제2 인수에 전송하는 명령이므로, 행(54)의 설명문의 항목에는, 설명문 「#1이 #2에 전송됨」이 기술되어 있다. The description of the operation of the "MOV" command is described in the description of the line 54. Since the "MOV" command is a command for transferring the value of the first argument to the second argument, the comment statement "# 1 is sent to # 2" is described in the description of the line 54.

행(54)의 비고의 항목에는, 「MOV」명령의 제1 인수 및 제2 인수의 데이터형이 기술되어 있다. 「MOV」명령의 제1 인수 및 제2 인수는 워드형이므로, 행(54)의 비고의 항목에는, 비고 「워드 변수」가 기술되어 있다. The data type of the first argument and the second argument of the " MOV " command is described in the column of the note in the line 54. [ Since the first argument and the second argument of the " MOV " command are of the word type, the word "word variable" is described in the column of the note in the line 54.

도 5에서는, 4개의 명령에 관한 4개의 행(51, 52, 53 및 54)을 나타낸다. 그러나 실제로는, 명령 사양 데이터(24b)는 래더 언어로 기술되는 모든 명령에 관한 복수의 행을 포함한다. 5 shows four rows 51, 52, 53 and 54 for four instructions. In practice, however, the command specification data 24b includes a plurality of lines for all instructions described in the ladder language.

다시 도 4를 참조하면, 기억부(24)는 제어 프로그램(24a1)에 대해서 실행되는 검색의 종료 조건이 기술된 검색 종료 조건 데이터(24c)를 기억한다. 검색 종료 조건 데이터(24c)는 검색 횟수 데이터(24c1)와, 검색 범위 데이터(24c2)를 포함한다. Referring again to FIG. 4, the storage unit 24 stores the search termination condition data 24c describing the termination condition of the search executed for the control program 24a1. The search termination condition data 24c includes the search number data 24c1 and the search range data 24c2.

도 6은 실시 형태 1에 따른 엔지니어링 툴의 검색 횟수 데이터를 나타내는 도면이다. 검색 횟수 데이터(24c1)에는 「10」이 기술되어 있다. 이것에 의해, 제어 프로그램(24a)에 대해서 실행되는 검색은, 최대 10회까지에서 종료한다. 6 is a diagram showing search frequency data of the engineering tool according to the first embodiment. &Quot; 10 " is described in the search count data 24c1. As a result, the search executed for the control program 24a ends at a maximum of 10 times.

도 7은 실시 형태 1에 따른 엔지니어링 툴의 검색 범위 데이터를 나타내는 도면이다. 검색 범위 데이터(24c2)는 범위 선두 스텝 번호의 항목과, 범위 말미 스텝 번호의 항목을 포함한다. 범위 선두 스텝 번호의 항목에는, 「1」이 기술되어 있다. 범위 말미 스텝 번호의 항목에는, 「100」이 기술되어 있다. 이것에 의해, 제어 프로그램(24a1)에 대해서 실행되는 검색은, 스텝 번호 1 내지 스텝 번호 100까지의 범위로 한정되며, 이 범위로부터 벗어나면 종료된다. 7 is a diagram showing search range data of the engineering tool according to the first embodiment. The search range data 24c2 includes an item of the range leading step number and an item of the range end step number. &Quot; 1 " is described in the item of the range leading step number. &Quot; 100 " is described in the item of the step end step number. Thus, the search performed for the control program 24a1 is limited to the range from the step No. 1 to the step No. 100, and is terminated when the range is out of the range.

다시 도 4를 참조하면, 기억부(24)는 제어 프로그램(24a1)에 대해서 실행되는 검색의 결과가 축적되는 검색 결과 데이터(24d)를 기억한다. Referring again to FIG. 4, the storage unit 24 stores search result data 24d in which the results of search executed for the control program 24a1 are stored.

도 8은 실시 형태 1에 따른 엔지니어링 툴의 검색 결과 데이터를 나타내는 도면이다. 검색 결과 데이터(24d)는 변수명의 항목(24d1)과, 명령명의 항목(24d2)과, 명령 타입의 항목(24d3)과, 설명문의 항목(24d4)과, 프로그램명의 항목(24d5)과, 스텝 번호의 항목(24d6)을 포함한다. 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, a description inquiry item 24d4, a program name item 24d5, (24d6) of < / RTI >

검색 결과 데이터(24d)의 행(61, 62, 63 및 64)에 대해서는, 엔지니어링 툴(2)의 동작의 설명 중에서 설명한다. 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.

다시 도 4를 참조하면, 기억부(24)는 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 미리 정해진 타이밍에서의 값이 축적되는 실행 데이터(24e)를 기억한다. 즉, 실행 데이터(24e)는 복수의 상이한 타이밍에서의 모든 변수의 값이 축적된다. Referring again to FIG. 4, the storage unit 24 stores execution data 24e in which values at predetermined timing of all the variables used in the control program 24a1 are stored. That is, the execution data 24e accumulates the values of all variables at a plurality of different timings.

검색 결과 데이터(24d)에 대해서는, 엔지니어링 툴(2)의 동작의 설명 중에서 설명한다. The search result data 24d will be described in the description of the operation of the engineering tool 2.

CPU(21)는 기억부(24)에 기억된 엔지니어링 툴 프로그램을 실행한다. 이것에 의해, 프로젝트 데이터 작성부(21a1) 및 프로그램 진단부(21a2)를 포함하는 엔지니어링 툴부(21a)가 실현된다. 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.

프로젝트 데이터 작성부(21a1)는 프로젝트 데이터(24a)를 작성하여, 제어 장치(3)에 송신한다.The project data creating unit 21a1 creates the project data 24a and transmits it to the control device 3. [

도 9는 실시 형태 1에 따른 엔지니어링 툴의 프로젝트 데이터 작성 화면을 나타내는 도면이다. 프로젝트 데이터 작성부(21a1)는 프로젝트 데이터 작성 화면(30)을 표시부(26)에 표시시킨다. 9 is a diagram showing a project data creation screen of the engineering tool according to the first embodiment. The project data creating unit 21a1 displays the project data creating screen 30 on the display unit 26. [

프로젝트 데이터 작성 화면(30)은 제어 프로그램 작성란(30a)을 가진다. 도 9에서는, 제어 프로그램 작성란(30a) 내에, MAIN 프로그램(24a1a)이 작성되어 있다. The project data creation screen 30 has a control program creation column 30a. In Fig. 9, a MAIN program 24a1a is created in the control program creation column 30a.

MAIN 프로그램(24a1a)은 행(41, 42, 43, 44, 45 및 46)을 포함한다. The MAIN program 24a1a includes rows 41, 42, 43, 44, 45, and 46.

행(41)은 조건 명령(41a)과, 동작 명령(41b)을 포함한다. 조건 명령(41a)은 「LD M0」이다. 이 중의 「M0」는 변수이다. 실시 형태 1에 있어서, 영문자 「M」과 수치의 결합은, 비트형의 변수를 나타낸다. The row 41 includes a conditional instruction 41a and an operation instruction 41b. The conditional instruction 41a is " LD M0 ". &Quot; M0 " is a variable. In Embodiment 1, the combination of the alphabetical letter " M " and the numerical value indicates a bit type variable.

동작 명령(41b)은 「INC D0」이다. 이 중의 「D0」는 변수이다. 실시 형태 1에 있어서, 영문자 「D」와 수치의 결합은, 워드형의 변수를 나타낸다. 「INC」(인크리먼트(increment)) 명령은, 제1 인수를 1 증가시키는 명령이다. 즉, 동작 명령(41b)은 변수 「D0」를 1 증가시키는 명령이다. The operation command 41b is " INC D0 ". Of these, "D0" is a variable. In Embodiment 1, the combination of the alphabetic character " D " and the numerical value indicates a variable of the word type. The " INC " (increment) instruction is an instruction to increment the first argument by 1. That is, the operation command 41b is an instruction for incrementing the variable " D0 "

행(42)은 조건 명령(42a)과, 동작 명령(42b)을 포함한다. 조건 명령(42a)은 「LD M100」이다. 이 중의 「M100」은 변수이다. Row 42 includes conditional instruction 42a and operation instruction 42b. The conditional instruction 42a is " LD M100 ". Of these, "M100" is a variable.

동작 명령(42b)은 「MOV D0 D10」이다. 이 중의 「D10」은 변수이다. 「MOV」명령은 제1 인수의 값을 제2 인수에 전송하는 명령이다. 즉, 동작 명령(42b)은 변수 「D0」의 값을 변수 「D10」에 전송하는 명령이다. The operation command 42b is " MOV D0 D10 ". &Quot; D10 " The " MOV " command is a command to transfer the value of the first argument to the second argument. That is, the operation command 42b is a command for transferring the value of the variable " D0 " to the variable " D10 ".

행(43)은 조건 명령(43a)과, 동작 명령(43b)을 포함한다. 조건 명령(43a)은 「LD M200」이다. 이 중의 「M200」은 변수이다. The row 43 includes a conditional instruction 43a and an operation instruction 43b. The conditional instruction 43a is " LD M200 ". Of these, "M200" is a variable.

동작 명령(43b)은 「OUT Y0」이다. 이 중의 「Y0」는 변수이다. 실시 형태 1에 있어서, 영문자 「Y」와 수치의 결합은, 비트형의 변수를 나타낸다. 즉, 동작 명령(43b)은 변수 「Y0」를 ON으로 하는 명령이다. The operation command 43b is " OUT Y0 ". Of these, "Y0" is a variable. In Embodiment 1, the combination of the alphabetic character " Y " and the numerical value indicates a bit type variable. That is, the operation command 43b is an instruction to turn on the variable " Y0 ".

행(44)은 조건 명령(44a)과, 동작 명령(44b)을 포함한다. 조건 명령(44a)은 「=D10 K10000」이다. 이 중의 「K10000」은 상수 「10000」이다. 즉, 조건 명령(44a)은 변수 「D10」의 값과 상수 「10000」이 같은지 여부를 판정하는 명령이다. The row 44 includes a conditional instruction 44a and an operation instruction 44b. The conditional instruction 44a is " = D10 K10000 ". &Quot; K10000 " is a constant " 10000 ". That is, the conditional instruction 44a is a command for judging whether the value of the variable " D10 " is equal to the constant " 10000 ".

동작 명령(44b)은 「MOV K15 D20」이다. 이 중의 「K15」는 상수 「15」이고, 「D20」은 변수이다. 즉, 동작 명령(44b)은 상수 「15」를 변수 「D20」에 전송하는 명령이다. The operation command 44b is " MOV K15 D20 ". Among them, "K15" is a constant "15" and "D20" is a variable. That is, the operation command 44b is a command for transmitting the constant " 15 " to the variable " D20 ".

행(45)은 조건 명령(45a)과, 동작 명령(45b)을 포함한다. 조건 명령(45a)은 「LD M10」과, 「LD M11」과, 「LD M12」의 OR(논리합)이다. 이 중의 「M10」, 「M11」 및 「M12」는 변수이다. 즉, 조건 명령(45a)은 변수 「M10」의 값과, 변수 「M11」의 값과, 변수 「M12」의 값의 논리합을 판정하는 명령이다. Row 45 includes conditional instruction 45a and operation instruction 45b. The conditional instruction 45a is OR (logical sum) of "LD M10", "LD M11" and "LD M12". Among these, "M10", "M11" and "M12" are variables. That is, the conditional instruction 45a is a command 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".

동작 명령(45b)은 「MOV D20 D30」이다. 이 중의 「D30」은 변수이다. 즉, 동작 명령(45b)은 변수 「D20」의 값을 변수 「D30」에 전송하는 명령이다. The operation command 45b is " MOV D20 D30 ". The "D30" of these is a variable. That is, the operation command 45b is an instruction to transfer the value of the variable " D20 " to the variable " D30 ".

행(46)은 종료 명령이다. Line 46 is a termination command.

다시 도 4를 참조하면, 프로그램 진단부(21a2)는 타겟 변수를 설정하는 변수 설정부(21a2a)를 포함한다. 변수 설정부(21a2a)는 유저가 입력부(25)에 입력한 변수를 수취(受取)하여, 타겟 변수로 설정할 수 있다. 또, 변수 설정부(21a2a)는 문제가 발생한 변수를 제어 장치(3)로부터 수취하여, 타겟 변수로 설정할 수 있다.Referring again to FIG. 4, the program diagnosis unit 21a2 includes a variable setting unit 21a2a for setting a target variable. The variable setting unit 21a2a can receive the variable input by the user into the input unit 25 and set it as a target variable. In addition, the variable setting unit 21a2a can receive the variable in question from the control device 3 and set it as the target variable.

프로그램 진단부(21a2)는 타겟 변수의 값이 변화할 가능성이 있는 동작 명령을 제어 프로그램(24a1) 중에서 검색하고, 검색된 동작 명령과 명령 사양 데이터(24b)를 대조하여, 타겟 변수명 및 검색된 동작 명령의 명령명, 명령의 타입 및 처리의 내용을 검색 결과 데이터(24d)에 기입하는 동작 검색부(21a2b)를 포함한다. 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 retrieved operation command with the command specification data 24b, And an operation retrieving unit 21a2b for writing the command name, the type of command, and the content of the processing in the retrieval result data 24d.

프로그램 진단부(21a2)는 동작 검색부(21a2b)에서 검색된 동작 명령을 실행하는 조건을 판정하는 조건 명령을 제어 프로그램(24a1) 중에서 검색하고, 검색된 조건 명령과 명령 사양 데이터(24b)를 대조하여, 검색된 조건 명령의 인수의 변수명 및 검색된 조건 명령의 명령명, 명령의 타입 및 처리의 내용을 검색 결과 데이터(24d)에 기입하고, 검색된 조건 명령의 인수를 새로운 타겟 변수로 설정하는 조건 검색부(21a2c)를 포함한다. The program diagnosis unit 21a2 searches the control program 24a1 for a conditional command for determining a condition for executing the operation command retrieved from the operation retrieving unit 21a2b, collates the retrieved conditional command with the command specification data 24b, A condition search unit (not shown) for writing the variable name of the argument of the retrieved condition command, the command name of the retrieved condition command, the type of command and the contents of the processing in the retrieval result data 24d and setting the argument of the retrieved condition command as a new target variable 21a2c.

프로그램 진단부(21a2)는 동작 검색부(21a2b) 및 조건 검색부(21a2c)에 검색을 재차 실행시키는 검색 판정부(21a2d)를 포함한다. 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.

프로그램 진단부(21a2)는 검색 결과 데이터(24d)의 내용을 일람 표시하는 일람 표시부(21a2e)를 포함한다. The program diagnosis unit 21a2 includes a list display unit 21a2e for listing the contents of the search result data 24d.

프로그램 진단부(21a2)는 미리 정해진 타이밍에서, 제어 장치(3)의 메모리(3a2)를 스캔함으로써, 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 값을 취득하여, 실행 데이터(24e)에 기입하는 스캔부(21a2f)를 포함한다. The program diagnosis unit 21a2 scans the memory 3a2 of the control device 3 at a predetermined timing to acquire the values of all the variables used in the control program 24a1 and write the values of the variables used in the control program 24a1 into the execution data 24e And a scanning unit 21a2f.

미리 정해진 타이밍은, 이하가 예시된다. The predetermined timing is as follows.

제1 예는 일정한 시간 경과 마다이다. 일정한 시간은, 1초가 예시된다. 이것에 의해, 실행 데이터(24e)에는 일정한 시간 경과 마다의 모든 변수의 값이 축적된다. The first example is a constant time lapse. For a given time, one second is exemplified. As a result, the values of all the variables are stored in the execution data 24e every predetermined period of time.

제2 예는 제어 장치(3)로부터 문제가 발생했다는 취지의 통지를 수신했을 때이다. 이것에 의해, 실행 데이터(24e)에는 제어 장치(3)에서 문제가 발생했을 때의 모든 변수의 값이 축적된다. The second example is when the control device 3 receives a notification that a problem has occurred. Thus, in the execution data 24e, values of all variables when a problem occurs in the control device 3 are accumulated.

제3 예는 유저가 입력부(25)에 스캔을 실행하는 취지의 지시를 입력했을 때이다. 이것에 의해, 실행 데이터(24e)에는, 유저가 소망하는 타이밍에서의 모든 변수의 값이 축적된다.The third example is when the user inputs an instruction to execute the scan to the input unit 25. As a result, values of all variables at the timing desired by the user are accumulated in the execution data 24e.

도 10은 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다. 10 is a flowchart showing the processing of the engineering tool according to the first embodiment.

스캔부(21a2f)는 미리 정해진 타이밍에서, 도 10에 나타내는 처리를 실행한다. The scanning unit 21a2f executes the processing shown in Fig. 10 at a predetermined timing.

스캔부(21a2f)는, 스텝 S10에 있어서, 제어 장치(3)의 메모리(3a2)를 스캔함으로써, 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 값을 취득한다. In step S10, the scanning unit 21a2f scans the memory 3a2 of the control device 3 to obtain the values of all variables used in the control program 24a1.

스캔부(21a2f)는, 스텝 S12에 있어서, 스텝 S10에서 취득한 모든 변수의 값을 실행 데이터(24e)에 기입하고, 처리를 종료한다. In step S12, the scanning unit 21a2f writes the values of all the variables obtained in step S10 into the execution data 24e, and ends the processing.

다시 도 4를 참조하면, 프로그램 진단부(21a2)는 제어 프로그램(24a1)을 시뮬레이션 실행함으로써, 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 값을 산출하여, 실행 데이터(24e)에 기입하는 시뮬레이션부(21a2g)를 포함한다. Referring again to FIG. 4, the program diagnosis unit 21a2 calculates the values of all variables used in the control program 24a1 by executing the control program 24a1 by simulation, and writes the values of the variables in the execution data 24e (21a2g).

이것에 의해, 실행 데이터(24e)에는 제어 장치(3)를 동작시키지 않더라도, 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 값이 축적된다. 따라서, 프로그램 진단부(21a2)는 제어 장치(3)를 동작시키지 않더라도, 제어 프로그램(24a1)의 문제를 진단할 수 있다. As a result, the values of all the variables used in the control program 24a1 are stored in the execution data 24e even if the control device 3 is not operated. Therefore, the program diagnosis unit 21a2 can diagnose the problem of the control program 24a1 without operating the control device 3. [

도 11은 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다.11 is a flowchart showing the processing of the engineering tool according to the first embodiment.

시뮬레이션부(21a2g)는 유저가 입력부(25)에 시뮬레이션 실행하는 취지의 지시를 입력하면, 도 11에 나타내는 처리를 실행한다. The simulation unit 21a2g executes the process shown in Fig. 11 when the user inputs an instruction to execute the simulation on the input unit 25. Fig.

시뮬레이션부(21a2g)는, 스텝 S20에 있어서, 제어 프로그램(24a1)을 시뮬레이션 실행함으로써, 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 값을 산출한다. The simulation unit 21a2g calculates the values of all the variables used in the control program 24a1 by executing the control program 24a1 by simulation in step S20.

시뮬레이션부(21a2g)는, 스텝 S22에 있어서, 스텝 S20에서 산출한 모든 변수의 값을 실행 데이터(24e)에 기입하고, 처리를 종료한다. In step S22, the simulation unit 21a2g writes the values of all the variables calculated in step S20 into the execution data 24e, and ends the processing.

도 12는 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다. 12 is a flowchart showing the processing of the engineering tool according to the first embodiment.

변수 설정부(21a2a)는, 스텝 S100에 있어서, 타겟 변수를 설정한다. The variable setting unit 21a2a sets the target variable in step S100.

도 13은 실시 형태 1에 따른 엔지니어링 툴의 프로그램 진단 화면을 나타내는 도면이다. 변수 설정부(21a2a)는 프로그램 진단 화면(70)을 표시부(26)에 표시시킨다. 13 is a diagram showing a program diagnostic 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. [

프로그램 진단 화면(70)은 변수 설정란(71)을 가진다. 도 13에서는 변수 설정란(71) 내에서, 변수 「D20」이 타겟 변수(72)로 설정되어 있다. The program diagnostic screen 70 has a variable setting field 71. In Fig. 13, the variable " D20 " is set to the target variable 72 in the variable setting column 71. [

변수 설정부(21a2a)는 유저가 입력부(25)에 입력한 변수를 수취하여, 타겟 변수(72)로 설정할 수 있다. 또, 변수 설정부(21a2a)는 문제가 발생한 변수를 제어 장치(3)로부터 수취하여, 타겟 변수(72)로 설정할 수 있다.The variable setting unit 21a2a can receive the variable input by the user into the input unit 25 and set it to the target variable 72. [ The variable setting unit 21a2a can receive the variable in question from the control device 3 and set the parameter in the target variable 72. [

다시 도 12를 참조하면, 동작 검색부(21a2b)는, 스텝 S102에 있어서, 타겟 변수(72)가 인수에 기술되어 있는 동작 명령을, 제어 프로그램(24a1) 중에서 검색한다. Referring again to Fig. 12, the motion search section 21a2b searches the control program 24a1 for the motion command described in the argument in the target variable 72 in step S102.

동작 검색부(21a2b)는 제어 프로그램(24a1) 중의 명령과 명령 사양 데이터(24b)를 대조하여 당해 명령의 명령 타입을 취득함으로써, 동작 명령을 제어 프로그램(24a1) 중에서 검색할 수 있다. The operation retrieving unit 21a2b can retrieve an operation command from the control program 24a1 by obtaining the command type of the command by collating the command in the control program 24a1 with the command specification data 24b.

동작 검색부(21a2b)에 의한 검색 결과는, 복수 지점이어도 된다. The search result by the motion search section 21a2b may be a plurality of points.

도 14는 실시 형태 1에 따른 엔지니어링 툴의 검색 처리를 설명하는 도면이다. 14 is a diagram for explaining a search process of the engineering tool according to the first embodiment.

도 14에 있어서, 각 변수의 하단에 기술되어 있는 값은, 어느 타이밍에서의 각 변수의 값으로, 실행 데이터(24e)에 축적되어 있는 값이다. In Fig. 14, the values described at the bottom of each variable are the values of the respective variables at any timing, and are the values stored in the execution data 24e.

프로그램 진단부(21a2)는 제어 장치(3)로부터 문제가 발생했다는 취지의 통지를 수신했을 때 스캔한 모든 변수의 값을 검색에 사용하는 것으로 하면, 제어 장치(3)에서 문제가 발생한 타이밍에서의 모든 변수의 값에 기초하여, 제어 프로그램(24a1)의 진단을 행할 수 있다. 이것에 의해, 프로그램 진단부(21a2)는 제어 장치(3)에서 문제가 발생한 타이밍에서의, 제어 프로그램(24a1)의 문제를 진단할 수 있다. Assuming that the program diagnostic unit 21a2 uses the values of all scanned variables when it receives a notification of the occurrence of a problem from the control unit 3, The control program 24a1 can be diagnosed based on the values of all the variables. Thereby, the program diagnosis section 21a2 can diagnose the problem of the control program 24a1 at the timing at which the problem occurred in the control device 3. [

프로그램 진단부(21a2)는 제어 장치(3)로부터 문제가 발생했다는 취지의 통지를 수신했을 때보다 전(前)에서의 모든 변수의 값을 검색에 사용하는 것으로 하면, 제어 장치(3)에서 문제가 발생했을 때보다 전의 타이밍에서의 모든 변수의 값에 기초하여, 제어 프로그램(24a1)의 진단을 행할 수 있다. 이것에 의해, 프로그램 진단부(21a2)는 제어 장치(3)에서 문제가 발생했을 때보다 전의 타이밍에서의, 제어 프로그램(24a1)의 문제를 진단할 수 있다. Assuming that the program diagnostic unit 21a2 uses the values of all the variables in the former time than when the notification of the occurrence of the problem is received from the control device 3, The diagnosis of the control program 24a1 can be performed based on the values of all the variables at the timing before the occurrence of the failure. As a result, the program diagnosis unit 21a2 can diagnose the problem of the control program 24a1 at the timing before the occurrence of a problem in the control apparatus 3.

타겟 변수(72)로 설정된 변수 「D20」은, 동작 명령(44b)의 제2 인수(44b1)에 기술되어 있다. The variable " D20 " set to the target variable 72 is described in the second argument 44b1 of the operation command 44b.

동작 검색부(21a2b)는, 스텝 S102에 있어서, 타겟 변수(72)로 설정된 변수 「D20」이 동작 명령(44b)의 제2 인수(44b1)에 기술되어 있는 것을 찾아낸다. 그리고 동작 검색부(21a2b)는 동작 명령(44b)의 명령명 「MOV」와 명령 사양 데이터(24b)를 대조함으로써, 명령명 「MOV」의 명령 타입 「동작」을 취득한다. 따라서, 동작 검색부(21a2b)는 동작 명령(44b)을 제어 프로그램(24a1) 중에서 검색할 수 있다. The motion search section 21a2b finds that the variable "D20" set in the target variable 72 is described in the second argument 44b1 of the motion command 44b in step S102. The operation retrieving unit 21a2b obtains the command type "operation" of the command name "MOV" by collating the command name "MOV" of the operation command 44b with the command specification data 24b. Therefore, the operation retrieving unit 21a2b can retrieve the operation instruction 44b from the control program 24a1.

또한, 동작 검색부(21a2b)는 명령명과 명령 사양 데이터(24b)를 대조하는 것을 대신하여, 제어 프로그램(24a1)을 도형적으로 해석함으로써, 동작 명령을 취득하는 것으로 해도 된다. The operation retrieving unit 21a2b may also obtain the operation command by graphically analyzing the control program 24a1 instead of checking the command name and the command specification data 24b.

구체적으로는, 동작 검색부(21a2b)는, 도 9에 나타내는 제어 프로그램(24a1)의 행(41, 42, 43 및 44)과 같이, 1개의 행에 2개의 명령이 기술되어 있는 경우에는, 2개의 명령 중의 우측, 즉 제어 프로그램(24a1)의 하류측의 명령을 동작 명령으로서 취득해도 된다. Specifically, when two instructions are described in one row, as in the rows 41, 42, 43 and 44 of the control program 24a1 shown in Fig. 9, the motion search section 21a2b sets 2 The command of the right side of the command, that is, the command of the downstream side of the control program 24a1 may be acquired as an operation command.

또, 동작 검색부(21a2b)는, 도 9에 나타내는 제어 프로그램(24a1)의 행(45)과 같이, 1개의 행에 2개 보다 많은 명령이 기술되어 있는 경우에는, 우선, 복수의 명령이 와이어드 OR 접속되어 있는 점(45a1)을 찾아낸다. 그리고 동작 검색부(21a2b)는 점(45a1)보다 우측, 즉 제어 프로그램(24a1)의 하류측의 명령(45b)을 동작 명령으로서 취득해도 된다. When more than two instructions are described in one row, as in the row 45 of the control program 24a1 shown in Fig. 9, the motion search section 21a2b first determines whether the plurality of instructions are to be wired And finds the point 45a1 to which an OR connection is made. The motion search section 21a2b may acquire the instruction 45b on the right side of the point 45a1, that is, on the downstream side of the control program 24a1 as an operation command.

이것에 의해, 동작 검색부(21a2b)는 명령명과 명령 사양 데이터(24b)를 대조하는 일 없이, 동작 명령을 제어 프로그램(24a1) 중에서 검색할 수 있다. Thereby, the motion search section 21a2b can search for the motion command from the control program 24a1 without collating the command name and the command specification data 24b.

다시 도 12를 참조하면, 동작 검색부(21a2b)는, 스텝 S104에 있어서, 스텝 S102에서 검색한 동작 명령 중에서, 타겟 변수의 값이 변화할 가능성이 있는 동작 명령을 검색한다. Referring again to Fig. 12, in step S104, the motion search section 21a2b searches among the motion commands searched in step S102 for motion commands likely to change the value of the target variable.

타겟 변수(72)로 설정된 변수 「D20」은, 동작 명령(44b)의 제2 인수(44b1)에 기술되어 있다. 동작 명령(44b)의 명령명 「MOV」는, 제1 인수의 값을 제2 인수에 전송하는 명령이다. The variable " D20 " set to the target variable 72 is described in the second argument 44b1 of the operation command 44b. The command name " MOV " of the operation command 44b is an instruction to transfer the value of the first argument to the second argument.

따라서, 동작 검색부(21a2b)는, 스텝 S104에 있어서, 타겟 변수(72)로 설정된 변수 「D20」의 값이 변화할 가능성이 있는 동작 명령(44b)을 제어 프로그램(24a1) 중에서 검색할 수 있다. Therefore, the operation retrieving unit 21a2b can search the control program 24a1 for the operation command 44b in which the value of the variable " D20 " set in the target variable 72 may change in step S104 .

동작 검색부(21a2b)는, 스텝 S106에 있어서, 스텝 S104에서 검색된 동작 명령과 명령 사양 데이터(24b)를 대조하여, 스텝 S104에서의 검색 결과에 기초한 정보를, 검색 결과 데이터(24d)에 기입한다. In step S106, the motion search unit 21a2b collates the motion command searched in step S104 with the command specification data 24b, and writes the information based on the search result in step S104 in the search result data 24d .

다시 도 8을 참조하면, 동작 검색부(21a2b)는, 스텝 S106에 있어서, 행(61)을 작성한다. 그리고 동작 검색부(21a2b)는 변수명 「D20」, 명령명 「MOV」 및 명령 타입 「동작」을, 행(61)의 항목(24d1, 24d2 및 24d3)에 기입한다. Referring back to Fig. 8, the motion search section 21a2b creates a row (61) in step S106. The operation retrieving unit 21a2b writes the variable name "D20", the command name "MOV" and the command type "operation" in the items (24d1, 24d2, and 24d3)

또, 동작 검색부(21a2b)는 스텝 S104에서 검색된 동작 명령(44b)과 명령 사양 데이터(24b)의 설명문의 항목(24b3)을 대조한다. 동작 명령(44b)의 제1 인수는 상수 「K15」이고, 제2 인수는 변수 「D20」이다. 따라서, 동작 검색부(21a2b)는 설명문 「K15가 D20에 전송됨」을 작성하여, 행(61)의 항목(24d4)에 기입한다. The operation retrieving unit 21a2b collates the operation instruction 44b retrieved in step S104 with the description inquiry item 24b3 of the instruction specification data 24b. The first argument of the operation instruction 44b is the constant " K15 ", and the second argument is the variable " D20 ". Therefore, the operation retrieving unit 21a2b creates a comment sentence " K15 is sent to D20 " and writes it in the item 24d4 of the line 61. [

또, 동작 검색부(21a2b)는 동작 명령(44b)이 포함되어 있는 프로그램명 「MAIN」을, 행(61)의 항목(24d5)에 기입한다. The operation retrieving unit 21a2b writes the program name " MAIN " including the operation command 44b in the item 24d5 of the line 61. [

또, 동작 명령(44b)은 MAIN 프로그램(24a1a)의 제11 스텝째이다. 따라서, 동작 명령부(21a2b)는 스텝 번호 「11」을 행(61)의 항목(24d6)에 기입한다. The operation command 44b is the eleventh 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. [

다시 도 12를 참조하면, 조건 검색부(21a2c)는, 스텝 S108에 있어서, 동작 검색부(21a2b)에 의해서 검색된 동작 명령을 실행하는 조건을 판정하는 조건 명령을, 제어 프로그램(24a1) 중에서 검색한다. Referring again to Fig. 12, the condition retrieval unit 21a2c retrieves, from the control program 24a1, a conditional command for determining a condition for executing the operation command retrieved by the operation retrieval unit 21a2b in step S108 .

조건 검색부(21a2c)는 제어 프로그램(24a1) 중의 명령과 명령 사양 데이터(24b)를 대조하여 당해 명령의 명령 타입을 취득함으로써, 조건 명령을 제어 프로그램(24a1) 중에서 검색할 수 있다. The condition retrieval unit 21a2c can retrieve the conditional instruction from the control program 24a1 by collating the instruction in the control program 24a1 with the instruction specification data 24b and acquiring the instruction type of the instruction.

조건 검색부(21a2c)에 의한 검색 결과는, 복수 지점이어도 된다. The search result by the condition searching unit 21a2c may be a plurality of points.

또한, 조건 검색부(21a2c)는 명령명과 명령 사양 데이터(24b)를 대조하는 것을 대신하여, 제어 프로그램(24a1)을 도형적으로 해석함으로써, 동작 명령을 취득하는 것으로 해도 된다. Further, the condition retrieving unit 21a2c may acquire the operation command by graphically analyzing the control program 24a1 instead of checking the command name and the command specification data 24b.

구체적으로는, 조건 검색부(21a2c)는, 도 9에 나타내는 제어 프로그램(24a1)의 행(41, 42, 43 및 44)과 같이, 1개의 행에 2개의 명령이 기술되어 있는 경우에는, 2개의 명령 중의 좌측, 즉 제어 프로그램(24a1)의 상류측의 명령을 동작 명령으로서 취득해도 된다.Concretely, when two instructions are described in one row, as in the rows 41, 42, 43 and 44 of the control program 24a1 shown in Fig. 9, the condition retrieving unit 21a2c sets 2 The command on the left side of the command, that is, the command on the upstream side of the control program 24a1, may be acquired as an operation command.

또, 동작 검색부(21a2b)는, 도 9에 나타내는 제어 프로그램(24a1)의 행(45)과 같이, 1개의 행에 2개보다 많은 명령이 기술되어 있는 경우에는, 우선, 복수의 명령이 와이어드 OR 접속되어 있는 점(45a1)을 찾아낸다. 그리고 동작 검색부(21a2b)는 점(45a1)보다 좌측, 즉 제어 프로그램(24a1)의 상류측의 명령(45a)을 동작 명령으로서 취득해도 된다. When more than two instructions are described in one row, as in the row 45 of the control program 24a1 shown in Fig. 9, the motion search section 21a2b first determines whether the plurality of instructions are to be wired And finds the point 45a1 to which an OR connection is made. The motion search section 21a2b may acquire the instruction 45a on the left side of the point 45a1, that is, on the upstream side of the control program 24a1 as an operation command.

이것에 의해, 조건 검색부(21a2c)는 명령명과 명령 사양 데이터(24b)를 대조하는 일 없이, 조건 명령을 제어 프로그램(24a1) 중에서 검색할 수 있다. Thereby, the condition retrieving unit 21a2c can retrieve the conditional instruction from the control program 24a1 without collating the instruction name and the instruction specification data 24b.

다시 도 14를 참조하면, 동작 명령(44b)의 도면 중 좌측, 즉 MAIN 프로그램(24a1a)의 상류측에는, 조건 명령(44a)이 기술되어 있다. Referring again to Fig. 14, a conditional instruction 44a is described on the left side of the operation command 44b, that is, on the upstream side of the MAIN program 24a1a.

따라서, 조건 검색부(21a2c)는, 스텝 S108에 있어서, 동작 명령(44b)을 실행하는 조건을 판정하는 조건 명령(44a)을, 제어 프로그램(24a1) 중에서 검색할 수 있다. Therefore, the condition searching unit 21a2c can search the control program 24a1 for the conditional instruction 44a for determining the condition for executing the operation command 44b in step S108.

다시 도 12를 참조하면, 조건 검색부(21a2c)는, 스텝 S110에 있어서, 스텝 S108에서 검색된 조건 명령과 명령 사양 데이터(24b)를 대조하여, 스텝 S108에서의 검색 결과에 기초한 정보를, 검색 결과 데이터(24d)에 기입한다. 12, the condition retrieval unit 21a2c collates the conditional command retrieved in step S108 with the command specification data 24b in step S110, and stores information based on the retrieval result in step S108 in the retrieval result And writes it into the data 24d.

다시 도 8을 참조하면, 조건 검색부(21a2c)는, 스텝 S110에 있어서, 행(62)을 작성한다. 그리고 조건 검색부(21a2c)는, 변수명 「D10」, 명령명 「=」 및 명령 타입 「조건」을, 행(62)의 항목(24d1, 24d2 및 24d3)에 기입한다. Referring back to Fig. 8, the condition retrieval unit 21a2c creates a line 62 in step S110. The condition retrieving unit 21a2c then writes the variable name "D10", the command name "=" and the command type "condition" in the items (24d1, 24d2, and 24d3)

또, 조건 검색부(21a2c)는, 스텝 S108에서 검색된 조건 명령(44a)과 명령 사양 데이터(24b)의 설명문의 항목(24b3)을 대조한다. 조건 명령(44a)의 제1 인수는 변수 「D10」이고, 제2 인수는 상수 「K10000」이다. 따라서, 조건 검색부(21a2c)는 설명문 「D10이 K10000와 같음」을 작성하여, 행(62)의 항목(24d4)에 기입한다. The condition retrieval unit 21a2c collates the conditional instruction 44a retrieved in step S108 with the explanation inquiry item 24b3 of the instruction specification data 24b. The first argument of the conditional instruction 44a is the variable " D10 ", and the second argument is the constant " K10000 ". Therefore, the condition retrieval unit 21a2c creates the comment "D10 equals K10000" and writes it in the item 24d4 of the line 62. [

또, 조건 검색부(21a2c)는 조건 명령(44a)이 포함되어 있는 프로그램명 「MAIN」을, 행(62)의 항목(24d5)에 기입한다. The condition retrieving unit 21a2c writes the program name " MAIN " including the conditional instruction 44a in the item 24d5 of the line 62. [

또, 조건 명령(44a)은 MAIN 프로그램(24a1a)의 제8 스텝째이다. 따라서, 조건 명령부(21a2c)는, 스텝 번호 「8」을, 행(62)의 항목(24d6)에 기입한다. The conditional instruction 44a is the eighth step of the MAIN program 24a1a. Therefore, the conditional instruction unit 21a2c writes the step number " 8 " in the item 24d6 of the row 62. [

다시 도 12를 참조하면, 조건 검색부(21a2c)는, 스텝 S112에 있어서, 스텝 S110에서 검색된 조건 명령의 인수를, 새로운 타겟 변수(72)로 설정한다. Referring again to FIG. 12, the condition retrieval unit 21a2c sets the argument of the conditional command retrieved in step S110 as a new target variable 72 in step S112.

조건 검색부(21a2c)에 의해서 설정되는 새로운 타겟 변수(72)는, 복수여도 된다. 또, 조건 검색부(21a2c)는, 제어 프로그램(24a1)을 그 이상 거슬러 올가갈 수 없는 경우는, 새로운 타겟 변수(72)를 설정하지 않는다. A plurality of new target variables 72 set by the condition search unit 21a2c may be used. The condition retrieval unit 21a2c does not set a new target variable 72 when the control program 24a1 can not go any further backwards.

도 15는 실시 형태 1에 따른 엔지니어링 툴의 검색 처리를 설명하는 도면이다. 15 is a diagram for explaining search processing of the engineering tool according to the first embodiment.

도 15에 나타내는 것처럼, 조건 명령(44a)은 제1 인수(44a1) 「D10」과, 제2 인수 「K10000」을 포함하고 있다. 그러나 제2 인수 「K10000」는 상수이고, 변수는 아니다. 이에, 조건 검색부(21a2c)는, 스텝 S112에 있어서, 제1 인수(44a1) 「D10」을, 새로운 타겟 변수(72)로 설정한다. As shown in Fig. 15, the conditional instruction 44a includes the first argument 44a1 "D10" and the second argument "K10000". However, the second argument " K10000 " is a constant and not a variable. Thus, the condition retrieving unit 21a2c sets the first argument 44a1 "D10" as a new target variable 72 in step S112.

다시 도 12를 참조하면, 검색 판정부(21a2d)는, 스텝 S114에 있어서, 검색 종료 조건이 만족되었는지 여부를 판정한다. 검색 종료 조건은, 이하가 예시된다. Referring again to Fig. 12, the search judgment unit 21a2d judges whether or not the search end condition is satisfied in step S114. The search termination conditions are as follows.

제1 예는, 스텝 S112에서 새로운 타겟 변수(72)가 설정되지 않았을 경우이다. 즉, 제어 프로그램(24a1)을 그 이상 거슬러 올가갈 수 없는 경우이다. The first example is a case where a new target variable 72 is not set in step S112. That is, the control program 24a1 can not go back more than that.

제2 예는, 동작 검색부(21a2b) 및 조건 검색부(21a2c)에 의한 스텝 S102부터 스텝 S112까지의 검색의 반복 횟수가, 검색 횟수 데이터(24c1)에 기술된 횟수에 도달했을 경우이다. The second example is the case where the number of repetitions of retrieval from step S102 to step S112 by the operation retrieval section 21a2b and the condition retrieval section 21a2c reaches the number of times described in the retrieval number data 24c1.

이것에 의해, 프로그램 진단부(21a2)는 검색이 종료되지 않는 것을 억제하여 검색이 정지하는 것을 확보할 수 있는, 즉 검색의 정지성을 확보할 수 있다고 하는 효과를 달성한다. 또, 프로그램 진단부(21a2)는, 제어 프로그램(24a1)의 규모가 큰 경우라도, 검색 범위를 한정할 수 있으므로, 제어 프로그램(24a1)의 문제의 원인을 특정하는 공정수를 억제할 수 있는 효과를 달성한다. Thereby, the program diagnosis unit 21a2 achieves the effect that it is possible to prevent the search from being terminated and to ensure that the search is stopped, that is, to ensure the stopping 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 the effect of suppressing the number of steps for specifying the cause of the problem of the control program 24a1 .

제3 예는, 조건 검색부(21a2c)에 의해 스텝 S112에서 설정된 새로운 타겟 변수(72)가, 검색 범위 데이터(24c2)에 기술된 스텝 번호의 범위 외가 되었을 경우이다. The third example is the case where the new target variable 72 set in step S112 by the condition searching unit 21a2c is out of the range of the step number described in the search range data 24c2.

이것에 의해, 프로그램 진단부(21a2)는 검색의 정지성이 확보된다고 하는 효과를 달성한다. 또, 프로그램 진단부(21a2)는 제어 프로그램(24a1)의 규모가 큰 경우라도, 검색 범위를 한정할 수 있으므로, 제어 프로그램(24a1)의 문제의 원인을 특정하는 공정수를 억제할 수 있는 효과를 달성한다. Thereby, the program diagnosis unit 21a2 achieves the effect that the stoppability of retrieval is ensured. The program diagnosis unit 21a2 can limit the search range even when the control program 24a1 has a large scale, and thus can reduce the number of steps for specifying the cause of the problem of the control program 24a1 .

검색 판정부(21a2d)는 복수의 검색 종료 조건의 OR(논리합)를 판정할 수 있다. The search determination unit 21a2d can determine the OR (logical sum) of a plurality of search termination conditions.

검색 판정부(21a2d)는, 스텝 S114에 있어서, 검색 조건이 만족되어 있지 않다고 판정하면(No), 처리를 스텝 S102로 진행한다. If the search condition determining unit 21a2d determines in step S114 that the search condition is not satisfied (No), the process proceeds to step S102.

도 16은 실시 형태 1에 따른 엔지니어링 툴의 검색 처리를 설명하는 도면이다. 16 is a diagram for explaining the search processing of the engineering tool according to the first embodiment.

도 16에 나타내는 것처럼, 동작 명령(42b)은 제1 인수 「D0」와, 제2 인수(42b1)「D10」을 포함하고 있다. As shown in Fig. 16, the operation command 42b includes a first argument " D0 " and a second argument 42b1 " D10 ".

동작 검색부(21a2b)는, 스텝 S102 및 스텝 S104에 있어서, 타겟 변수(72)로 설정된 변수 「D10」이 동작 명령(42b)의 제2 인수(42b1)에 기술되어 있는 것을 찾아낸다. 그리고 동작 검색부(21a2b)는 동작 명령(42b)의 명령명 「MOV」와 명령 사양 데이터(24b)를 대조함으로써, 명령명 「MOV」의 명령 타입 「동작」을 취득한다. 따라서, 동작 검색부(21a2b)는 동작 명령(42b)을 제어 프로그램(24a1) 중에서 검색할 수 있다. The motion search section 21a2b finds that the variable "D10" set in the target variable 72 is described in the second argument 42b1 of the motion command 42b in step S102 and step S104. The operation retrieving unit 21a2b obtains 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 retrieving unit 21a2b can retrieve the operation instruction 42b from the control program 24a1.

다시 도 8을 참조하면, 동작 검색부(21a2b)는, 스텝 S106에 있어서, 행(63)을 작성한다. 그리고 동작 검색부(21a2b)는 변수명 「D0」, 명령명 「MOV」 및 명령 타입 「동작」을, 행(63)의 항목(24d1, 24d2 및 24d3)에 기입한다. Referring back to Fig. 8, the motion search section 21a2b creates a row (63) in step S106. The operation retrieving unit 21a2b writes the variable name "D0", the command name "MOV" and the command type "operation" in the items (24d1, 24d2 and 24d3) of the row (63).

또, 동작 검색부(21a2b)는, 스텝 S104에서 검색된 동작 명령(42b)과 명령 사양 데이터(24b)의 설명문의 항목(24b3)을 대조한다. 동작 명령(42b)의 제1 인수는 변수 「D0」이고, 제2 인수는 변수 「D10」이다. 따라서, 동작 검색부(21a2b)는 설명문 「D0가 D10에 전송됨」을 작성하여, 행(63)의 항목(24d4)에 기입한다. The operation retrieving unit 21a2b collates the operation instruction 42b retrieved in step S104 with the explanation instruction item 24b3 of the instruction specification data 24b. The first argument of the operation command 42b is the variable " D0 ", and the second argument is the variable " D10 ". Therefore, the operation retrieving unit 21a2b creates the comment "D0 is sent to D10" and writes it in the item 24d4 of the line 63. [

또, 동작 검색부(21a2b)는 동작 명령(42b)이 포함되어 있는 프로그램명 「MAIN」을, 행(63)의 항목(24d5)에 기입한다.The operation retrieving unit 21a2b writes the program name " MAIN " including the operation command 42b in the item 24d5 of the line 63. [

또, 동작 명령(42b)은 MAIN 프로그램(24a1a)의 제4 스텝째이다. 따라서, 동작 명령부(21a2b)는 스텝 번호 「4」를, 행(63)의 항목(24d6)에 기입한다. The operation command 42b is the fourth step of the MAIN program 24a1a. Therefore, the operation command unit 21a2b writes the step number " 4 " in the item 24d6 of the line 63. [

동작 명령(42b)의 도면 중 좌측, 즉 MAIN 프로그램(24a1a)의 상류측에는, 조건 명령(42a)이 기술되어 있다. On the left side of the operation command 42b, that is, on the upstream side of the MAIN program 24a1a, a conditional instruction 42a is described.

따라서, 조건 검색부(21a2c)는, 스텝 S108에 있어서, 동작 명령(42b)을 실행하는 조건을 판정하는 조건 명령(42a)을, 제어 프로그램(24a1) 중에서 검색할 수 있다. Therefore, the condition searching unit 21a2c can search the control program 24a1 for the conditional instruction 42a for determining the condition for executing the operation command 42b in step S108.

조건 검색부(21a2c)는, 스텝 S110에 있어서, 스텝 S108에서 검색된 조건 명령과 명령 사양 데이터(24b)를 대조하여, 스텝 S108에서의 검색 결과에 기초한 정보를, 검색 결과 데이터(24d)에 기입한다. In step S110, the condition retrieval unit 21a2c collates the conditional command retrieved in step S108 with the command specification data 24b, and writes the information based on the retrieval result in step S108 in the retrieval result data 24d .

다시 도 8을 참조하면, 조건 검색부(21a2c)는, 스텝 S110에 있어서, 행(64)을 작성한다. 그리고 조건 검색부(21a2c)는 변수명 「M100」, 명령명 「LD」 및 명령 타입 「조건」을, 행(64)의 항목(24d1, 24d2 및 24d3)에 기입한다. Referring back to Fig. 8, the condition retrieving unit 21a2c creates a line 64 in step S110. Then, the condition retrieval unit 21a2c writes the variable name "M100", the command name "LD" and the command type "condition" in the items (24d1, 24d2, and 24d3)

또, 조건 검색부(21a2c)는, 스텝 S108에서 검색된 조건 명령(42a)과 명령 사양 데이터(24b)의 설명문의 항목(24b3)을 대조한다. 조건 명령(42a)의 제1 인수는, 변수 「M100」이다. 따라서, 조건 검색부(21a2c)는 설명문 「M100이 ON되어 있다」를 작성하여, 행(64)의 항목(24d4)에 기입한다. The condition retrieval unit 21a2c collates the conditional instruction 42a retrieved in step S108 with the explanation inquiry item 24b3 of the instruction specification data 24b. The first argument of the conditional instruction 42a is the variable " M100 ". Therefore, the condition retrieval unit 21a2c creates a comment message " M100 is ON ", and writes it in the item 24d4 of the row 64. [

또, 조건 검색부(21a2c)는 조건 명령(42a)이 포함되어 있는 프로그램명 「MAIN」을, 행(64)의 항목(24d5)에 기입한다. The condition retrieving unit 21a2c writes the program name " MAIN " including the conditional instruction 42a in the item 24d5 of the line 64. [

또, 조건 명령(42a)은 MAIN 프로그램(24a1a)의 제3 스텝째이다. 따라서, 조건 명령부(21a2c)는 스텝 번호 「3」을, 행(64)의 항목(24d6)에 기입한다. The conditional instruction 42a is the third step of the MAIN program 24a1a. Therefore, the conditional instruction unit 21a2c writes the step number " 3 " in the item 24d6 of the line 64. [

조건 명령(42a)은 제1 인수 「M100」을 포함하고 있다. 이에, 조건 검색부(21a2c)는, 스텝 S112에 있어서, 제1 인수 「M100」을, 새로운 타겟 변수(72)로 설정한다. The conditional instruction 42a includes the first argument " M100 ". Thus, the condition retrieving unit 21a2c sets the first argument " M100 " to the new target variable 72 in step S112.

다시 도 12를 참조하면, 검색 판정부(21a2d)는, 스텝 S114에 있어서, 검색 조건이 만족되어 있다고 판정하면(Yes), 처리를 스텝 S116으로 진행한다. Referring again to Fig. 12, if the search condition determining unit 21a2d determines in step S114 that the search condition is satisfied (Yes), the process proceeds to step S116.

다시 도 16을 참조하면, 타겟 변수(72) 「M100」을 포함하는 동작 명령은 제어 프로그램(24a1) 내에 존재하지 않는다. Referring again to Fig. 16, an operation command including the target variable 72 " M100 " is not present in the control program 24a1.

따라서, 검색 판정부(21a2d)는, 스텝 S114에서 검색 조건이 만족되어 있다고 판정하고(Yes), 처리를 스텝 S116으로 진행한다. Therefore, the search determination unit 21a2d determines that the search condition is satisfied in step S114 (Yes), and proceeds to step S116.

다시 도 12를 참조하면, 일람 표시부(21a2e)는, 스텝 S116에 있어서, 검색 결과 데이터(24d)의 내용을 표시부(26)에 일람 표시한다. Referring again to Fig. 12, the list display section 21a2e displays the content of the search result data 24d on the display section 26 in step S116.

도 17은 실시 형태 1에 따른 엔지니어링 툴의 프로그램 진단 화면을 나타내는 도면이다. 일람 표시부(21a2e)는, 검색 결과 데이터(24d)의 내용을, 프로그램 진단 화면(70)의 일람 표시란(80) 내에 일람 표시한다. 17 is a diagram showing a program diagnostic screen of the engineering tool according to the first embodiment. The list display section 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. [

일람 표시란(80)은 프로그램명의 항목(81)과, 스텝 번호의 항목(82)과, 변수명의 항목(83)과, 명령명의 항목(84)과, 명령 타입의 항목(85)과, 설명문의 항목(86)을 가진다. The list display field 80 includes a program name item 81, a step number item 82, a variable name item 83, an instruction name item 84, a command type item 85, And an inquiry item (86).

일람 표시부(21a2e)는 행(91, 92, 93 및 94) 내에, 검색 결과 데이터(24d)의 행(61, 62, 63 및 64)의 내용을 각각 표시한다. The list display section 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.

이와 같이, 프로그램 진단부(21a2)는 행(94) 내에 표시되어 있는, 문제의 원인이 된 명령의 내용 및 행(91) 내에 표시되어 있는, 문제가 발생한 명령의 내용 만이 아니라, 행(93) 및 행(92) 내에 표시되어 있는, 문제의 원인이 된 명령과 문제가 발생한 명령의 사이에 관여하는 명령의 내용도 함께, 일람 표시할 수 있다. In this manner, the program diagnosis unit 21a2 not only displays the contents of the command causing the problem and the contents of the command in which the problem has occurred, which are displayed in the row 91, displayed in the row 94, And the contents of the commands involved in the command between the command causing the trouble and the command having the problem, which are displayed in the line 92, can be displayed together.

이것에 의해, 프로그램 진단부(21a2)는 유저가 문제의 원인이 된 명령과 문제가 발생한 명령 사이의 전체 형상을 파악하는 것을 용이하게 할 수 있다고 하는 효과를 달성한다. Thereby, the program diagnosis unit 21a2 achieves the effect that the user can easily grasp the overall shape between the command causing the problem and the command in which the problem has occurred.

도 18은 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다. 18 is a flowchart showing the processing of the engineering tool according to the first embodiment.

일람 표시부(21a2e)는, 스텝 S200에 있어서, 행(91, 92, 93 또는 94)이 선택되면, 선택된 행의 항목(82a) 내의 스텝 번호에 해당하는 명령(44b, 44a, 42b 또는 42a)을 표시한다. The list display unit 21a2e displays the instruction 44b, 44a, 42b, or 42a corresponding to the step number in the item 82a of the selected row when the row 91, 92, 93 or 94 is selected in step S200 Display.

이것에 의해, 프로그램 진단부(21a2)는 유저가 원하는 명령을 즉시 확인할 수 있다고 하는 효과를 달성한다. Thereby, the program diagnosis unit 21a2 achieves the effect that the user can immediately check the desired command.

또, 일람 표시란(80)은 프로그램명의 필터 조건을 입력하기 위한 필터 조건 입력란(81a)과, 스텝 번호의 필터 조건을 입력하기 위한 필터 조건 입력란(82a)과, 변수명의 필터 조건을 입력하기 위한 필터 조건 입력란(83a)과, 명령명의 필터 조건을 입력하기 위한 필터 조건 입력란(84a)과, 명령 타입의 필터 조건을 입력하기 위한 필터 조건 입력란(85a)과, 설명문의 필터 조건을 입력하기 위한 필터 조건 입력란(86a)을 가진다. The list display field 80 includes a filter condition input field 81a for inputting the filter condition of the program name, a filter condition input field 82a for inputting the filter condition of the step number, A filter condition input field 83a for inputting a filter condition of an instruction name, a filter condition input field 85a for inputting a filter condition of a command type, And a condition input field 86a.

도 19는 실시 형태 1에 따른 엔지니어링 툴의 처리를 나타내는 순서도이다. 19 is a flowchart showing the processing of the engineering tool according to the first embodiment.

일람 표시부(21a2e)는, 스텝 S202에 있어서, 필터 조건 입력란(84a)에 명령명이 입력되면, 검색 결과 데이터(24d)의 행(91, 92, 93 및 94) 중에서 입력된 필터 조건에 합치(合致)하는 행을 일람 표시한다. 예를 들면, 필터 조건 입력란(84a)에 「MOV」가 입력되면, 일람 표시부(21a2e)는 행(91 및 93)만을 표시한다. The list display unit 21a2e displays a list of the filter conditions entered in the filter condition input field 84a in accordance with the filter conditions entered in the rows 91, 92, 93, and 94 of the search result data 24d ) Are displayed in a list. For example, when " MOV " is inputted to the filter condition input field 84a, the list display section 21a2e displays only the rows 91 and 93.

이것에 의해, 프로그램 진단부(21a2)는 유저가 문제에 관계되는 명령의 범위를 좁힘으로써 문제의 원인을 특정하는 공정수를 억제할 수 있는 효과를 달성한다. Thereby, the program diagnosis unit 21a2 achieves the effect that the user can reduce the number of steps for specifying the cause of the problem by narrowing the range of the command related to the problem.

또, 동작 검색부(21a2b)는 명령명과 명령 사양 데이터(24b)를 대조함으로써, 명령명의 명령 타입 「동작」을 취득할 수 있다. Also, the operation retrieving unit 21a2b can obtain the instruction type "operation" of the instruction name by collating the instruction name and the instruction specification data 24b.

이것에 의해, 동작 검색부(21a2b)는 동작 명령을 제어 프로그램(24a1) 중에서 검색할 수 있다. Thereby, the motion search section 21a2b can search for the motion command from the control program 24a1.

또, 조건 검색부(21a2c)는 명령명과 명령 사양 데이터(24b)를 대조함으로써, 명령명의 명령 타입 「조건」을 취득할 수 있다. The condition retrieval unit 21a2c can obtain the command type "condition" of the command name by collating the command name with the command specification data 24b.

이것에 의해, 조건 검색부(21a2c)는 조건 명령을 제어 프로그램(24a1) 중에서 검색할 수 있다. Thereby, the condition retrieval unit 21a2c can retrieve the conditional instruction from the control program 24a1.

또, 기억부(24)는 제어 프로그램(24a1)에 대해서 실행되는 검색의 종료 조건이 기술된 검색 종료 조건 데이터(24c)를 기억한다. 그리고 검색 판정부(21a2d)는 검색이 종료 조건을 만족하고 있다고 판정하면, 동작 검색부(21a2b) 및 조건 검색부(21a2c)에 의한 검색을 종료시킨다. The storage unit 24 stores the search termination condition data 24c describing the termination condition of the search executed for the control program 24a1. If the search judgment unit 21a2d judges that the search satisfies the termination condition, the search judgment unit 21a2d terminates the search by the action search unit 21a2b and the condition search unit 21a2c.

이것에 의해, 프로그램 진단부(21a2)는 검색의 정지성이 확보된다고 하는 효과를 달성한다. 또, 검색 판정부(21a2d)는 제어 프로그램(24a1)의 규모가 큰 경우라도, 검색 범위를 한정할 수 있다. 따라서, 프로그램 진단부(21a2)는 제어 프로그램(24a1)의 문제의 원인을 특정하는 공정수를 억제할 수 있는 효과를 달성한다. Thereby, the program diagnosis unit 21a2 achieves the effect that the stoppability of retrieval is ensured. In addition, the search determination unit 21a2d can limit the search range even when the control program 24a1 has a large scale. Therefore, the program diagnosis unit 21a2 achieves the effect of suppressing the number of steps for specifying the cause of the problem of the control program 24a1.

또, 기억부(24)는 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 미리 정해진 타이밍에서의 값이 축적되는 실행 데이터(24e)를 기억한다.The storage unit 24 stores execution data 24e in which values at predetermined timing of all the variables used in the control program 24a1 are accumulated.

스캔부(21a2f)는, 미리 정해진 타이밍에서, 제어 장치(3)의 메모리(3a2)를 스캔함으로써, 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 값을 취득하여, 실행 데이터(24e)에 기입한다. The scanning unit 21a2f scans the memory 3a2 of the control device 3 at a predetermined timing to acquire the values of all the variables used in the control program 24a1 and writes them into the execution data 24e .

이것에 의해, 프로그램 진단부(21a2)는 제어 장치(3)로부터 문제가 발생했다는 취지의 통지를 수신했을 때 스캔한 모든 변수의 값을 검색에 사용하는 것으로 하면, 제어 장치(3)에서 문제가 발생한 타이밍에서의 모든 변수의 값에 기초하여, 제어 프로그램(24a1)의 진단을 행할 수 있다. 이것에 의해, 프로그램 진단부(21a2)는 제어 장치(3)에서 문제가 발생한 타이밍에서의, 제어 프로그램(24a1)의 문제를 진단할 수 있다. Thus, if the program diagnosis unit 21a2 uses the values of all the scanned variables when it receives a notification of the occurrence of a problem from the control unit 3, the control unit 3 The control program 24a1 can be diagnosed on the basis of the values of all the variables at the timing at which it occurred. Thereby, the program diagnosis section 21a2 can diagnose the problem of the control program 24a1 at the timing at which the problem occurred in the control device 3. [

또, 프로그램 진단부(21a2)는 제어 장치(3)로부터 문제가 발생했다는 취지의 통지를 수신했을 때보다 전에서의 모든 변수의 값을 검색에 사용하는 것으로 하면, 제어 장치(3)에서 문제가 발생했을 때보다 전의 타이밍에서의 모든 변수의 값에 기초하여, 제어 프로그램(24a1)의 진단을 행할 수 있다. 이것에 의해, 프로그램 진단부(21a2)는 제어 장치(3)에서 문제가 발생했을 때보다 전의 타이밍에서의, 제어 프로그램(24a1)의 문제를 진단할 수 있다. If the program diagnosis unit 21a2 uses all the values of the variables in the former than the time when the notice of the occurrence of the problem is received from the control unit 3, The control program 24a1 can be diagnosed on the basis of the values of all the variables at the previous timing than when it occurred. As a result, the program diagnosis unit 21a2 can diagnose the problem of the control program 24a1 at the timing before the occurrence of a problem in the control apparatus 3.

또, 시뮬레이션부(21a2g)는 제어 프로그램(24a1)을 시뮬레이션 실행함으로써, 제어 프로그램(24a1)에서 사용되고 있는 모든 변수의 값을 산출하여, 실행 데이터(24e)에 기입한다. The simulation unit 21a2g calculates the values of all the variables used in the control program 24a1 by executing the control program 24a1 by simulation and writes the values of the variables in the execution data 24e.

이것에 의해, 프로그램 진단부(21a2)는 제어 장치(3)를 동작시키지 않더라도, 제어 프로그램(24a1)의 문제를 진단할 수 있다. Thereby, the program diagnosis section 21a2 can diagnose the problem of the control program 24a1 without operating the control device 3. [

이상의 실시 형태에 나타낸 구성은, 본 발명의 내용의 일례를 나타내는 것이고, 다른 공지의 기술과 조합하는 것도 가능하고, 본 발명의 요지를 일탈하지 않는 범위에서, 구성의 일부를 생략, 변경하는 것도 가능하다. The configuration shown in the above embodiments represents one example of the content of the present invention and can be combined with other known technologies and a part of the configuration can be omitted or changed without departing from the gist of the present invention Do.

1: 제어 시스템 2: 엔지니어링 툴
3: 제어 장치 4, 5: 기계
21: CPU 21a1: 프로젝트 데이터 작성부
21a2: 프로그램 진단부 21a2a: 변수 설정부
21a2b: 동작 검색부 21a2c: 조건 검색부
21a2d: 검색 판정부 21a2e: 일람 표시부
21a2f: 스캔부 21a2g: 시뮬레이션부
24: 기억부 24a: 프로젝트 데이터
24a1: 제어 프로그램 24b: 명령 사양 데이터
24c: 검색 종료 조건 데이터 24d: 검색 결과 데이터
24e: 실행 데이터
1: Control system 2: Engineering tool
3: Control device 4, 5: Machine
21: CPU 21a1: Project data creation unit
21a2: Program diagnosis section 21a2a: Variable setting section
21a2b: motion search unit 21a2c: condition search unit
21a2d: search judgment unit 21a2e: list display unit
21a2f: Scan section 21a2g: Simulation section
24: storage section 24a: project data
24a1: Control program 24b: Command specification data
24c: search end condition data 24d: search result data
24e: Execution data

Claims (10)

인수의 값을 변화시키는 동작 명령 및 상기 동작 명령을 실행하는 조건을 판정하는 조건 명령을 포함하는 제어 프로그램과, 상기 제어 프로그램에서 기술될 수 있는 명령의 명령명, 상기 동작 명령 또는 상기 조건 명령의 타입 및 명령의 처리의 내용을 포함하는 명령 사양 데이터와, 상기 제어 프로그램에 대해서 실행되는 검색의 결과가 축적되는 검색 결과 데이터를 기억하는 기억부와,
타겟 변수를 설정하는 변수 설정부와,
상기 타겟 변수의 값이 변화할 가능성이 있는 상기 동작 명령을 상기 제어 프로그램 중에서 검색하고, 검색된 상기 동작 명령과 상기 명령 사양 데이터를 대조하여, 상기 타겟 변수명 및 검색된 상기 동작 명령의 명령명, 명령의 타입 및 처리의 내용을 상기 검색 결과 데이터에 기입하는 동작 검색부와,
상기 동작 검색부에서 검색된 상기 동작 명령을 실행하는 조건을 판정하는 상기 조건 명령을 상기 제어 프로그램 중에서 검색하고, 검색된 상기 조건 명령과 상기 명령 사양 데이터를 대조하여, 검색된 상기 조건 명령의 인수의 변수명 및 검색된 상기 조건 명령의 명령명, 명령의 타입 및 처리의 내용을 상기 검색 결과 데이터에 기입하고, 검색된 상기 조건 명령의 인수를 새로운 타겟 변수로 설정하는 조건 검색부와,
상기 동작 검색부 및 상기 조건 검색부에 검색을 재차 실행시키는 검색 판정부와,
상기 검색 결과 데이터의 내용을 일람 표시하는 일람 표시부를 구비하는 것을 특징으로 하는 프로그램 진단 장치.
A control program that includes an operation command for changing a value of an argument and a conditional command for determining a condition for executing the operation command; And storage means for storing search result data in which a result of search executed for the control program is accumulated;
A variable setting unit for setting a target variable,
Searching the control program for the operation command which is likely to change the value of the target variable, verifying the retrieved operation command with the command specification data, and comparing the target variable name and the command name of the retrieved operation command, An operation search unit for writing the contents of the type and the process into the search result data,
Searching the control program for a condition command for determining a condition for executing the operation command retrieved by the operation retrieving unit, collating the retrieved condition command with the command specification data, A condition search unit that writes the command name, the command type, and the process contents of the conditional command searched in the search result data, and sets an argument of the searched conditional command as a new target variable;
A search determination unit that causes the operation search unit and the condition search unit to execute the search again,
And a list display unit for displaying a list of the contents of the search result data.
청구항 1에 있어서,
상기 동작 검색부는, 상기 제어 프로그램 중의 명령과 상기 명령 사양 데이터를 대조하여 당해 명령의 명령 타입을 취득함으로써, 상기 동작 명령을 상기 제어 프로그램 중에서 검색하는 것을 특징으로 하는 프로그램 진단 장치.
The method according to claim 1,
Wherein the operation searching unit searches the control program for the operation command by collating the command in the control program with the command specification data to acquire the command type of the command.
청구항 1에 있어서,
상기 조건 검색부는, 상기 제어 프로그램 중의 명령과 상기 명령 사양 데이터를 대조하여 당해 명령의 명령 타입을 취득함으로써, 상기 조건 명령을 상기 제어 프로그램 중에서 검색하는 것을 특징으로 하는 프로그램 진단 장치.
The method according to claim 1,
Wherein the condition searching unit searches the control program for the condition command by collating an instruction in the control program with the instruction specification data to acquire the instruction type of the instruction.
청구항 1에 있어서,
상기 기억부는 상기 제어 프로그램에 대해서 실행되는 검색의 종료 조건이 기술된 검색 종료 조건 데이터를 추가로 기억하고,
상기 검색 판정부는, 상기 동작 검색부 및 상기 조건 검색부에 의해서 실행된 검색이 상기 종료 조건을 만족하고 있다고 판정하면, 상기 동작 검색부 및 상기 조건 검색부에 의한 검색을 종료시키고, 상기 동작 검색부 및 상기 조건 검색부에 의해서 실행된 검색이 상기 종료 조건을 만족하고 있지 않다고 판정하면, 상기 동작 검색부 및 상기 조건 검색부에 검색을 재차 실행시키는 것을 특징으로 하는 프로그램 진단 장치.
The method according to claim 1,
Wherein the storage unit further stores search termination condition data describing an end condition of search executed for the control program,
Wherein the search and determination unit terminates the search by the operation search unit and the condition search unit when it is determined that the search performed by the operation search unit and the condition search unit satisfies the end condition, And a program diagnostic apparatus for executing a search in the operation search section and the condition search section again when it is determined that the search executed by the condition search section does not satisfy the termination condition.
청구항 4에 있어서,
상기 검색 종료 조건 데이터는, 상기 동작 검색부 및 상기 조건 검색부에 의한 검색 횟수의 데이터 또는 상기 제어 프로그램의 검색 범위의 데이터인 것을 특징으로 하는 프로그램 진단 장치.
The method of claim 4,
Wherein the search termination condition data is data of the number of searches by the operation search unit and the condition search unit or data of a search range of the control program.
청구항 1에 있어서,
상기 일람 표시부는 변수명, 또는 검색된 조건 명령의 명령명, 명령의 타입 혹은 처리의 내용의 필터 조건이 입력되면, 상기 검색 결과 데이터 중에서 상기 필터 조건에 합치하는 데이터의 내용을 일람 표시하는 것을 특징으로 하는 프로그램 진단 장치.
The method according to claim 1,
Wherein the list display unit displays a list of contents of data matching the filter condition among the search result data when a variable name or a command name of a searched condition command, a command type, Program diagnostic device.
청구항 1에 있어서,
상기 기억부는 상기 제어 프로그램에서 사용되고 있는 모든 변수의 미리 정해진 타이밍에서의 값이 축적되는 실행 데이터를 추가로 기억하고,
상기 미리 정해진 타이밍에서, 상기 제어 프로그램을 실행하는 제어 장치의 메모리를 스캔함으로써, 상기 제어 프로그램에서 사용되고 있는 모든 변수의 값을 취득하여, 상기 실행 데이터에 기입하는 스캔부를 추가로 구비하는 것을 특징으로 하는 프로그램 진단 장치.
The method according to claim 1,
Wherein the storage further stores execution data in which values at predetermined timings of all variables used in the control program are stored,
Further comprising a scan unit that scans a memory of a control device that executes the control program to acquire values of all variables used in the control program and write the values of the variables in the execution data at the predetermined timing Program diagnostic device.
청구항 7에 있어서,
상기 제어 프로그램을 시뮬레이션 실행함으로써, 상기 제어 프로그램에서 사용되고 있는 모든 변수의 값을 산출하여, 상기 실행 데이터에 기입하는 시뮬레이션부를 추가로 구비하는 것을 특징으로 하는 프로그램 진단 장치.
The method of claim 7,
Further comprising a simulation unit for calculating the value of all variables used in said control program by executing said control program by simulation and writing said value to said execution data.
인수의 값을 변화시키는 동작 명령 및 상기 동작 명령을 실행하는 조건을 판정하는 조건 명령을 포함하는 제어 프로그램과, 상기 제어 프로그램에서 기술될 수 있는 명령의 명령명, 상기 동작 명령 또는 상기 조건 명령의 타입 및 명령의 처리의 내용을 포함하는 명령 사양 데이터와, 상기 제어 프로그램에 대해서 실행되는 검색의 결과가 기록되는 검색 결과 데이터를 기억하는 기억부를 구비하는 프로그램 진단 장치에서 실행되는 방법으로서,
타겟 변수를 설정하는 변수 설정 공정과,
상기 타겟 변수의 값이 변화할 가능성이 있는 상기 동작 명령을 상기 제어 프로그램 중에서 검색하고, 검색된 상기 동작 명령과 상기 명령 사양 데이터를 대조하여, 상기 타겟 변수명 및 검색된 상기 동작 명령의 명령명, 명령의 타입 및 처리의 내용을 상기 검색 결과 데이터에 기입하는 동작 검색 공정과,
상기 동작 검색 공정에서 검색된 상기 동작 명령을 실행하는 조건을 판정하는 상기 조건 명령을 상기 제어 프로그램 중에서 검색하고, 검색된 상기 조건 명령과 상기 명령 사양 데이터를 대조하여, 검색된 상기 조건 명령의 인수의 변수명 및 검색된 상기 조건 명령의 명령명, 명령의 타입 및 처리의 내용을 상기 검색 결과 데이터에 기입하고, 검색된 상기 조건 명령의 인수를 새로운 타겟 변수로 설정하는 조건 검색 공정과,
상기 동작 검색 공정 및 상기 조건 검색 공정에 검색을 재차 실행시키는 검색 판정 공정과,
상기 검색 결과 데이터의 내용을 일람 표시하는 일람 표시 공정을 구비하는 것을 특징으로 하는 프로그램 진단 방법.
A control program that includes an operation command for changing a value of an argument and a conditional command for determining a condition for executing the operation command; And a storage unit for storing instruction specification data including contents of processing of instructions and search result data in which a result of a search executed for the control program is recorded,
A variable setting step of setting a target variable,
Searching the control program for the operation command which is likely to change the value of the target variable, verifying the retrieved operation command with the command specification data, and comparing the target variable name and the command name of the retrieved operation command, Type and processing contents into the search result data;
Searching the control program for a condition instruction for determining a condition for executing the operation command retrieved in the operation retrieving step, collating the retrieved condition command with the command specification data, A condition search step of writing the command name, the type of command and the contents of the search of the retrieved conditional command into the retrieval result data, and setting an argument of the retrieved conditional command as a new target variable;
A search determining step of performing the search again in the operation searching step and the condition searching step;
And a list display step of displaying a list of the contents of the search result data.
인수의 값을 변화시키는 동작 명령 및 상기 동작 명령을 실행하는 조건을 판정하는 조건 명령을 포함하는 제어 프로그램과, 상기 제어 프로그램에서 기술될 수 있는 명령의 명령명, 상기 동작 명령 또는 상기 조건 명령의 타입 및 명령의 처리의 내용을 포함하는 명령 사양 데이터와, 상기 제어 프로그램에 대해서 실행되는 검색의 결과가 기록되는 검색 결과 데이터를 기억하는 기억부를 구비하는 프로그램 진단 장치에서 실행되는 프로그램으로서,
타겟 변수를 설정하는 변수 설정 공정과,
상기 타겟 변수의 값이 변화할 가능성이 있는 상기 동작 명령을 상기 제어 프로그램 중에서 검색하고, 검색된 상기 동작 명령과 상기 명령 사양 데이터를 대조하여, 상기 타겟 변수명 및 검색된 상기 동작 명령의 명령명, 명령의 타입 및 처리의 내용을 상기 검색 결과 데이터에 기입하는 동작 검색 공정과,
상기 동작 검색 공정에서 검색된 상기 동작 명령을 실행하는 조건을 판정하는 상기 조건 명령을 상기 제어 프로그램 중에서 검색하고, 검색된 상기 조건 명령과 상기 명령 사양 데이터를 대조하여, 검색된 상기 조건 명령의 인수의 변수명 및 검색된 상기 조건 명령의 명령명, 명령의 타입 및 처리의 내용을 상기 검색 결과 데이터에 기입하고, 검색된 상기 조건 명령의 인수를 새로운 타겟 변수로 설정하는 조건 검색 공정과,
상기 동작 검색 공정 및 상기 조건 검색 공정에 검색을 재차 실행시키는 검색 판정 공정과,
상기 검색 결과 데이터의 내용을 일람 표시하는 일람 표시 공정을 구비하는 것을 특징으로 하는 프로그램 진단 프로그램.
A control program that includes an operation command for changing a value of an argument and a conditional command for determining a condition for executing the operation command; And a storage unit for storing search result data in which a result of search executed for the control program is recorded, the program comprising:
A variable setting step of setting a target variable,
Searching the control program for the operation command which is likely to change the value of the target variable, verifying the retrieved operation command with the command specification data, and comparing the target variable name and the command name of the retrieved operation command, Type and processing contents into the search result data;
Searching the control program for a condition instruction for determining a condition for executing the operation command retrieved in the operation retrieving step, collating the retrieved condition command with the command specification data, A condition search step of writing the command name, the type of command and the contents of the search of the retrieved conditional command into the retrieval result data, and setting an argument of the retrieved conditional command as a new target variable;
A search determining step of performing the search again in the operation searching step and the condition searching step;
And a list display step of displaying contents of the search result data in a list.
KR1020177031427A 2015-04-16 2015-04-16 Program diagnostic device, program diagnostic method, and program diagnostic program KR101846140B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/061757 WO2016166876A1 (en) 2015-04-16 2015-04-16 Program diagnosis device, program diagnosis method and program diagnosis program

Publications (2)

Publication Number Publication Date
KR20170127569A true KR20170127569A (en) 2017-11-21
KR101846140B1 KR101846140B1 (en) 2018-04-05

Family

ID=57126471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031427A KR101846140B1 (en) 2015-04-16 2015-04-16 Program diagnostic device, program diagnostic method, and program diagnostic program

Country Status (4)

Country Link
JP (1) JP6076565B1 (en)
KR (1) KR101846140B1 (en)
CN (1) CN107533322B (en)
WO (1) WO2016166876A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019003313A1 (en) * 2017-06-27 2019-01-03 三菱電機株式会社 Debugging device
JPWO2020166004A1 (en) * 2019-02-14 2021-02-18 三菱電機株式会社 Control systems, programmable logic controllers, methods, and programs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2923997B2 (en) * 1989-09-21 1999-07-26 ソニー株式会社 Finding the cause of an error in a ladder sequence program
JP4242361B2 (en) 2004-03-31 2009-03-25 オムロン株式会社 Development support equipment
US7272450B2 (en) * 2004-03-31 2007-09-18 Omron Corporation Development aid device
JP5500896B2 (en) * 2009-07-27 2014-05-21 株式会社キーエンス Program creation support apparatus, program creation support method, and computer program
JP5506822B2 (en) * 2009-12-28 2014-05-28 三菱電機株式会社 Program creation support device
CN104204975B (en) * 2012-03-26 2016-10-12 三菱电机株式会社 Sequencer debugging auxiliary device

Also Published As

Publication number Publication date
WO2016166876A1 (en) 2016-10-20
KR101846140B1 (en) 2018-04-05
CN107533322A (en) 2018-01-02
JPWO2016166876A1 (en) 2017-04-27
JP6076565B1 (en) 2017-02-08
CN107533322B (en) 2019-04-19

Similar Documents

Publication Publication Date Title
US10915419B2 (en) Industrial control system, and assistance apparatus, control assist method, and program thereof
JP6430037B2 (en) Debugging support apparatus and debugging support method
US8074182B2 (en) Work procedure display method and system, production process management method and system, and computer program of the same
KR101846140B1 (en) Program diagnostic device, program diagnostic method, and program diagnostic program
JP6150953B2 (en) Debugging device, debugging method, and debugging program
JP2009122936A (en) Sequence program monitor device equipped with display function for abnormality research and programmable controller
TW201706739A (en) Programmable logic controller, engineering tool and engineering tool program
JP6989464B2 (en) Software generation method and software generation system
CN114787735A (en) Prediction system, information processing device, and information processing program
KR20130100335A (en) System design device
US9122772B2 (en) Method for analyzing message archives and corresponding computer program
KR101716480B1 (en) Apparatus for inputting test-case using gui
KR100650840B1 (en) Testing device and programming tool
KR101303866B1 (en) Method of monitoring substrate processing apparatus
JP6840294B1 (en) Programmable display, control system and analysis method
JP7524784B2 (en) Information processing device, control system, and report output method
JPH08179966A (en) Program test device
JP2005275713A (en) Maintenance information management system
US20210350296A1 (en) Productivity improvement support system and productivity improvement support method
JP7044086B2 (en) Control systems, control methods, and control programs
JP6003281B2 (en) Quality evaluation system and quality evaluation method for products
JP2023107534A (en) Support system, support method and program
JP2005100027A (en) The failure information display device of the programmable controller has a content that is divided into detailed information about the relevant failure according to user-defined attributes in the failure details display section, each time this attribute is selected. A fault information display device for a programmable controller, which is displayed on the screen.
JPH11296358A (en) Signal analysis support device
JP2019153232A (en) Operation management device

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
PA0105 International application

Patent event date: 20171030

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20171030

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20180314

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20180330

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20180330

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20210325

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20220222

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20230222

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20240220

Start annual number: 7

End annual number: 7