KR102258103B1 - Method for generating control program automatically and computing device for performing the method - Google Patents

Method for generating control program automatically and computing device for performing the method Download PDF

Info

Publication number
KR102258103B1
KR102258103B1 KR1020200096787A KR20200096787A KR102258103B1 KR 102258103 B1 KR102258103 B1 KR 102258103B1 KR 1020200096787 A KR1020200096787 A KR 1020200096787A KR 20200096787 A KR20200096787 A KR 20200096787A KR 102258103 B1 KR102258103 B1 KR 102258103B1
Authority
KR
South Korea
Prior art keywords
state
control program
result
action
robot
Prior art date
Application number
KR1020200096787A
Other languages
Korean (ko)
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 주식회사 듀얼아이엔씨
Priority to KR1020200096787A priority Critical patent/KR102258103B1/en
Application granted granted Critical
Publication of KR102258103B1 publication Critical patent/KR102258103B1/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
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview

Landscapes

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

Abstract

Disclosed are a method for automatically generating a control program and a computing device for performing the method. The method for automatically generating the control program may comprise: a step of identifying a state of a device; a step of obtaining an arrangement result for the state of the device; and a step of generating the control program for controlling the device based on the arrangement result for the state of the device.

Description

제어 프로그램 자동 생성 방법 및 상기 방법을 수행하는 컴퓨팅 장치 {METHOD FOR GENERATING CONTROL PROGRAM AUTOMATICALLY AND COMPUTING DEVICE FOR PERFORMING THE METHOD}A method of automatically generating a control program, and a computing device that performs the method.

본 발명은 제어 프로그램 자동 생성 방법 및 상기 방법을 수행하는 컴퓨팅 장치에 관한 것으로, 보다 구체적으로는 디바이스를 제어하기 위한 제어 프로그램을 인과 모델을 기반으로 자동적으로 생성하는 방법 및 상기 방법을 수행하는 컴퓨팅 장치에 관한 것이다.The present invention relates to a method for automatically generating a control program and a computing device for performing the method, and more specifically, a method for automatically generating a control program for controlling a device based on a causal model, and a computing device for performing the method It is about.

공장과 같은 다양한 디바이스가 존재하는 경우, 디바이스들의 동작에 따라 특정 업무를 수행하는 경우 디바이스를 제어하는 것이 요구된다. 이와 같은 디바이스를 제어하는 제어 프로그램을 생성하기 위해, 사용자는 수많은 입출력(I/O) 정보로부터 디바이스들 간의 동작 순서를 정의하고, 이를 기반으로 복잡한 제어 프로그램을 생성해야 한다.When various devices such as a factory exist, it is required to control the device when performing a specific task according to the operation of the devices. In order to create a control program that controls such a device, a user must define an operation sequence between devices from a number of input/output (I/O) information, and create a complex control program based on this.

특히, 사용자는 여러 디바이스들 간의 동작 순서나 동작 타이밍을 정확하게 인지하기 어렵다. 그리고, 사용자가 디바이스들 간의 동작 순서나 동작 타이밍을 알고 있다고 하더라도, 특정 업무에 참여하는 디바이스들 각각을 제어하기 위한 제어 프로그램을 생성하고, 제어 프로그램에 문제가 있는 경우 어디에 문제가 있는지 파악하기는 매우 어려운 문제가 있다.In particular, it is difficult for a user to accurately recognize an operation order or operation timing between various devices. And, even if the user knows the order or timing of operations between devices, it is very difficult to create a control program to control each of the devices participating in a specific task, and if there is a problem with the control program, it is very difficult to determine where the problem is. There is a difficult problem.

본 발명은 모델링을 통하여 디바이스의 상태를 사용자가 용이하게 배치하고, 디바이스의 상태에 따라 자동으로 디바이스를 위한 제어 프로그램을 생성할 수 있는 방법 및 장치를 제공한다.The present invention provides a method and apparatus for allowing a user to easily arrange a device state through modeling and automatically generate a control program for a device according to the device state.

본 발명은 디바이스들로 이루어진 시스템을 구축하기 위해 사용자가 디바이스들 간의 동작 순서를 고려한 디바이스의 상태를 배치하고 설정하는 모델링을 수행함으로, 자동으로 디바이스를 제어하기 위한 제어 프로그램을 생성하는 방법 및 장치를 제공한다.The present invention provides a method and apparatus for automatically generating a control program for controlling devices by performing modeling in which a user arranges and sets a device state in consideration of an operation order between devices in order to build a system consisting of devices. to provide.

본 발명의 일실시예에 따른 컴퓨팅 장치에 의해 수행되는 제어 프로그램 자동 생성 방법은 디바이스의 상태를 식별하는 단계; 상기 디바이스의 상태에 대한 배치 결과를 획득하는 단계; 및 상기 디바이스의 상태에 대한 배치 결과에 기초하여 상기 디바이스를 제어하기 위한 제어 프로그램을 생성하는 단계를 포함할 수 있다.A method for automatically generating a control program performed by a computing device according to an embodiment of the present invention includes the steps of: identifying a state of a device; Obtaining an arrangement result for the state of the device; And generating a control program for controlling the device based on a result of the arrangement of the state of the device.

상기 디바이스의 상태는, 상기 디바이스의 액션에 대응하며, 상기 디바이스의 액션의 원인은, 상기 디바이스와 동일하거나 다른 디바이스에 대한 이전 단계의 상태일 수 있다.The state of the device corresponds to an action of the device, and the cause of the action of the device may be a state of a previous step for a device that is the same as or different from the device.

상기 디바이스의 상태에 대한 배치 결과는, 상기 디바이스의 상태를 특정 공정에 따라 순차적으로 연결한 결과이고, 상기 제어 프로그램 자동 생성 방법을 수행하는 프로그램이 제공하는 인터페이스를 통해 외부에서 입력된 조작에 따라 결정될 수 있다.The arrangement result of the state of the device is a result of sequentially connecting the state of the device according to a specific process, and may be determined according to an operation input from the outside through an interface provided by a program that performs the method of automatically generating the control program. I can.

상기 디바이스의 상태는, 상기 디바이스의 상태를 시각적으로 구별되기 위한 식별자로 인터페이스에 표시될 수 있다.The state of the device may be displayed on the interface as an identifier for visually distinguishing the state of the device.

상기 제어 프로그램은, 상기 컴퓨팅 장치 또는 상기 컴퓨팅 장치와 다른 별도의 제어 장치에서 수행되는 제어 시퀀스 또는 제어 로직을 포함할 수 있다.The control program may include a control sequence or control logic performed by the computing device or a control device separate from the computing device.

상기 디바이스의 상태에 대한 배치 결과에서, 디바이스들 각각의 최종 상태는 디바이스들 각각의 초기 상태로 설정될 수 있다.In the arrangement result for the state of the device, the final state of each of the devices may be set to the initial state of each of the devices.

상기 디바이스의 상태에 대한 배치 결과에서, 이전 단계의 상태는 다음 단계의 상태에 대응하는 액션의 원인이 될 수 있다.In the arrangement result of the state of the device, the state of the previous step may be a cause of an action corresponding to the state of the next step.

상기 디바이스의 상태에 대한 배치 결과에서, 특정 단계에서 2개 이상의 상태가 배치되는 경우 2개 이상의 상태는 다음 단계의 상태로 전환되기 위한 AND 조건 또는 OR 조건으로 설정될 수 있다.In the arrangement result of the state of the device, when two or more states are arranged in a specific step, the two or more states may be set as an AND condition or an OR condition for switching to the state of the next step.

본 발명의 일실시예에 따른 제어 프로그램 자동 생성 방법을 수행하는 컴퓨팅 장치는 제어 프로그램 자동 생성 방법에 대응하는 프로그램을 실행하고, 상기 프로그램은, 디바이스의 상태를 식별하고, 상기 디바이스의 상태에 대한 배치 결과를 획득하며, 상기 디바이스의 상태에 대한 배치 결과에 기초하여 상기 디바이스를 제어하기 위한 제어 프로그램을 생성하는 과정을 처리할 수 있다.A computing device that performs a method for automatically generating a control program according to an embodiment of the present invention executes a program corresponding to the method for automatically generating a control program, and the program identifies the state of the device and arranges the state of the device. The result is obtained, and a process of generating a control program for controlling the device based on a result of the arrangement of the device state may be processed.

상기 디바이스의 상태는, 상기 디바이스의 액션에 대응하며, 상기 디바이스의 액션의 원인은, 상기 디바이스와 동일하거나 다른 디바이스에 대한 이전 단계의 상태일 수 있다.The state of the device corresponds to an action of the device, and the cause of the action of the device may be a state of a previous step for a device that is the same as or different from the device.

상기 디바이스의 상태에 대한 배치 결과는, 상기 디바이스의 상태를 특정 공정에 따라 순차적으로 연결한 결과이고, 상기 제어 프로그램 자동 생성 방법을 수행하는 프로그램이 제공하는 인터페이스를 통해 외부에서 입력된 조작에 따라 결정될 수 있다.The arrangement result of the state of the device is a result of sequentially connecting the state of the device according to a specific process, and may be determined according to an operation input from the outside through an interface provided by a program that performs the method for automatically generating the control program. I can.

상기 디바이스의 상태는, 상기 디바이스의 상태를 시각적으로 구별되기 위한 식별자로 인터페이스에 표시될 수 있다.The state of the device may be displayed on the interface as an identifier for visually distinguishing the state of the device.

상기 제어 프로그램은, 상기 컴퓨팅 장치 또는 상기 컴퓨팅 장치와 다른 별도의 제어 장치에서 수행되는 제어 시퀀스 또는 제어 로직을 포함할 수 있다.The control program may include a control sequence or control logic performed by the computing device or a control device separate from the computing device.

상기 디바이스의 상태에 대한 배치 결과에서, 디바이스들 각각의 최종 상태는 디바이스들 각각의 초기 상태 또는 초기 상태와 다른 상태로 설정될 수 있다.In the arrangement result of the state of the device, the final state of each of the devices may be set to an initial state of each of the devices or to a state different from the initial state.

상기 디바이스의 상태에 대한 배치 결과에서, 이전 단계의 상태는 다음 단계의 상태에 대응하는 액션의 원인이 될 수 있다.In the arrangement result of the state of the device, the state of the previous step may be a cause of an action corresponding to the state of the next step.

상기 디바이스의 상태에 대한 배치 결과에서, 특정 단계에서 2개 이상의 상태가 배치되는 경우 2개 이상의 상태는 다음 단계의 상태로 전환되기 위한 AND 조건 또는 OR 조건으로 설정될 수 있다.In the arrangement result of the state of the device, when two or more states are arranged in a specific step, the two or more states may be set as an AND condition or an OR condition for switching to the state of the next step.

본 발명의 일실시예에 따르면, 디바이스의 상태를 사용자가 용이하게 배치하고, 디바이스의 상태에 따라 자동으로 디바이스를 위한 제어 프로그램을 생성할 수 있다.According to an embodiment of the present invention, a user can easily arrange a device state, and automatically generate a control program for the device according to the device state.

본 발명의 일실시예에 따르면, 디바이스들로 이루어진 시스템을 구축하기 위해 사용자가 디바이스들 간의 동작 순서를 고려한 디바이스의 상태를 배치하고 설정하면, 자동으로 디바이스를 제어하기 위한 제어 프로그램을 생성할 수 있다.According to an embodiment of the present invention, when a user arranges and sets a device state in consideration of an operation order between devices in order to build a system consisting of devices, a control program for automatically controlling the device may be generated. .

도 1은 본 발명의 일실시예에 따른 제어 프로그램 자동 생성 방법을 수행하기 위한 컴퓨팅 장치 및 제어 프로그램에 따라 동작하는 디바이스를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 디바이스의 상태를 설명하는 도면이다.
도 3은 본 발명의 일실시예에 따라 제어 프로그램 자동 생성 방법의 플로우차트를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따라 프로그램에서 디바이스의 상태를 정의하는 과정을 나타내는 인터페이스 화면이다.
도 5는 본 발명의 일실시예에 따라 디바이스의 상태를 배치하는 과정을 나타내는 인터페이스 화면이다.
도 6은 본 발명의 일실시예에 따라 디바이스의 상태에 대한 배치 결과에 따라 제어 프로그램을 생성하는 과정을 나타내는 인터페이스 화면이다.
도 7은 본 발명의 일실시예에 따라 디바이스의 상태에 대한 배치 결과에 따라 생성된 제어 프로그램에 기초하여 디바이스의 시뮬레이션을 수행하는 과정을 나타내는 인터페이스 화면이다.
도 8은 본 발명의 일실시예에 따라 디바이스의 상태와 디바이스의 상태에 대한 배치 결과의 제1예를 도시한 도면이다.
도 9는 도 8에 도시된 디바이스의 상태에 대한 배치 결과에 따라 제어 프로그램을 생성하는 제1예를 도시한 도면이다.
도 10은 도 8에 도시된 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하는 과정을 타이밍 다이어그램으로 표현한 제1예를 도시한 도면이다.
도 11은 본 발명의 일실시예에 따라 디바이스의 상태와 디바이스의 상태에 대한 배치 결과의 제2예를 도시한 도면이다.
도 12는 도 11에 도시된 디바이스의 상태에 대한 배치 결과에 따라 제어 프로그램을 생성하는 제2예를 도시한 도면이다.
도 13은 도 11에 도시된 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하는 과정을 타이밍 다이어그램으로 표현한 제2예를 도시한 도면이다.
1 is a diagram illustrating a computing device for performing a method for automatically generating a control program according to an embodiment of the present invention and a device operating according to a control program.
2 is a diagram illustrating a state of a device according to an embodiment of the present invention.
3 is a flowchart illustrating a method of automatically generating a control program according to an embodiment of the present invention.
4 is an interface screen showing a process of defining a device state in a program according to an embodiment of the present invention.
5 is an interface screen showing a process of arranging device states according to an embodiment of the present invention.
6 is an interface screen showing a process of generating a control program according to an arrangement result of a device state according to an embodiment of the present invention.
7 is an interface screen showing a process of performing a simulation of a device based on a control program generated according to a result of an arrangement of a device state according to an embodiment of the present invention.
8 is a diagram illustrating a first example of a device state and an arrangement result of the device state according to an embodiment of the present invention.
9 is a diagram illustrating a first example of generating a control program according to an arrangement result of a device state shown in FIG. 8.
FIG. 10 is a diagram illustrating a first example in which a process of controlling a device according to a result of an arrangement of a device state illustrated in FIG. 8 is expressed as a timing diagram.
11 is a diagram illustrating a second example of a device state and an arrangement result of the device state according to an embodiment of the present invention.
FIG. 12 is a diagram illustrating a second example of generating a control program according to an arrangement result of a device state shown in FIG. 11.
FIG. 13 is a diagram illustrating a second example in which a process of controlling a device according to an arrangement result of a device state illustrated in FIG. 11 is expressed as a timing diagram.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. The same reference numerals shown in each drawing indicate the same members.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various changes may be made to the embodiments described below. The embodiments described below are not intended to be limited to the embodiments, and should be understood to include all changes, equivalents, and substitutes thereto.

제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but these terms should be understood only for the purpose of distinguishing one component from other components. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to describe specific embodiments, and are not intended to limit the embodiments. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present application. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 제어 프로그램 자동 생성 방법을 수행하기 위한 컴퓨팅 장치 및 제어 프로그램에 따라 동작하는 디바이스를 도시한 도면이다.1 is a diagram illustrating a computing device for performing a method for automatically generating a control program according to an embodiment of the present invention and a device operating according to a control program.

도 1을 참고하면, 컴퓨팅 장치(101)는 제어 프로그램 자동 생성 방법을 수행할 수 있다. 제어 프로그램 자동 생성 방법은 프로그램으로 구현될 수 있다. 프로그램의 화면에 표시되는 인터페이스를 통해 사용자가 프로그램에 요청을 입력하거나 또는 제어 프로그램 자동 생성 방법에 대응하는 프로그램의 처리 결과가 출력될 수 있다.Referring to FIG. 1, the computing device 101 may perform a method of automatically generating a control program. The method of automatically generating a control program may be implemented as a program. Through an interface displayed on the screen of the program, a user may input a request to the program or a processing result of a program corresponding to the method of automatically generating a control program may be output.

본 발명의 일실시예에 따르면, 컴퓨팅 장치(101)는 프로그램의 인터페이스를 통해 특정 공간에서 시스템(102)의 공정에 참여하는 디바이스들(103, 104)의 상태를 시각적으로 표시하고, 공정의 순서에 따라 디바이스들(103, 104)들의 상태를 배치할 수 있도록 한다. 그리고, 컴퓨팅 장치(101)는 디바이스들(103, 104)의 상태에 대한 배치 결과로부터 디바이스들(103, 104)을 제어하기 위한 제어 프로그램을 생성할 수 있다. According to an embodiment of the present invention, the computing device 101 visually displays the states of the devices 103 and 104 participating in the process of the system 102 in a specific space through the interface of the program, and the order of the process It is possible to arrange the states of the devices 103 and 104 according to the following. In addition, the computing device 101 may generate a control program for controlling the devices 103 and 104 from a result of the arrangement of the states of the devices 103 and 104.

디바이스(103, 104)는 액션(action)에 따라 매번 동일한 결과를 생성하는 최소 입력 및 출력으로 구성되는 독립적인 객체(object)를 의미한다. 여기서, 액션(action)은 외부 명령에 의한 행동(behavior)을 의미한다. 그리고, 상태(state)는 액션의 결과로 결정된다. 관계는 액션과 상태 간의 연결을 의미한다.The devices 103 and 104 refer to independent objects composed of minimum inputs and outputs that generate the same result each time according to an action. Here, action means an action by an external command. And, the state is determined as a result of the action. Relationship refers to the connection between action and state.

본 발명에서 공정에 참여하는 디바이스들(103, 104)는 2개 이상이라고 가정한다. 그리고, 디바이스들(103, 104) 각각의 상태들이 전환됨으로써 공정이 진행된다. 이하에서는, 디바이스의 상태와 디바이스의 상태를 배치하는 과정에 대해 좀더 구체적으로 설명하기로 한다.In the present invention, it is assumed that there are two or more devices 103 and 104 participating in the process. Then, the process proceeds by switching states of each of the devices 103 and 104. Hereinafter, the state of the device and the process of arranging the state of the device will be described in more detail.

도 2는 본 발명의 일실시예에 따른 디바이스의 상태를 설명하는 도면이다.2 is a diagram illustrating a state of a device according to an embodiment of the present invention.

도 2를 참고하면, 디바이스 1(201)과 디바이스 2(202)에 대한 상태가 설명된다. 여기서, 각각의 디바이스에 대해 복수의 상태가 설정될 수 있다. 그리고, 상태는 액션과 연결될 수 있다. 디바이스가 액션을 수행하면, 디바이스는 액션에 대응하는 상태로 전환될 수 있다. 예를 들어, 상태 a가 Put 상태이고, 액션 a가 putting인 경우, 디바이스 1(201)는 putting 액션을 수행함으로써 Put 상태가 될 수 있다. Referring to FIG. 2, states of device 1 201 and device 2 202 are described. Here, a plurality of states may be set for each device. And, the state can be linked to the action. When the device performs an action, the device may be converted to a state corresponding to the action. For example, if the state a is in the Put state and the action a is in the putting state, the device 1 201 can be put into the Put state by performing the putting action.

이 때, 디바이스가 액션을 수행하기 위해서는 특정 조건이 만족될 필요가 있다. 예를 들어, 디바이스 1(201)의 상태 b가 되기 전에 디바이스 2(202)의 상태 x가 되는 것을 전제로 할 수 있다. 즉, 특정 디바이스의 상태는 다른 디바이스의 상태가 되어야 진행될 수 있다. 또는 특정 디바이스의 다음 상태는 자신이 현재 상태가 특정 상태가 되어야 전환될 수 있다. 이와 같이, 디바이스의 상태들은 서로 연결되어 특정 공정을 구성할 수 있다.At this time, a specific condition needs to be satisfied in order for the device to perform an action. For example, it may be assumed that the state x of the device 2 202 becomes the state x before the state b of the device 1 201 becomes. In other words, the state of a specific device can be performed only when the state of another device is set. Alternatively, the next state of a specific device can be switched only when its current state becomes a specific state. In this way, the states of the devices can be connected to each other to configure a specific process.

본 발명은 사용자가 특정 공정에 참여하는 물리적인 디바이스들의 동작을 제어하기 위해 바로 제어 프로그램을 생성하는 것이 아니라, 디바이스에 적용 가능한 상태들을 특정 공정의 순서에 따라 간단한 동작만으로 배치하도록 하고, 디바이스의 상태에 대한 배치 결과에 따라 자동으로 제어 프로그램을 생성함으로써 매우 복잡한 제어 프로그램의 생성 과정을 쉽게 처리할 수 있도록 한다.In the present invention, the user does not directly create a control program to control the operation of physical devices participating in a specific process, but arranges the states applicable to the device only by simple operations according to the order of the specific process, and the state of the device By automatically generating a control program according to the result of the arrangement of the control program, the process of creating a very complex control program can be easily handled.

도 3은 본 발명의 일실시예에 따라 제어 프로그램 자동 생성 방법의 플로우차트를 도시한 도면이다.3 is a flowchart illustrating a method of automatically generating a control program according to an embodiment of the present invention.

단계(301)에서, 컴퓨팅 장치는 디바이스의 상태를 식별할 수 있다. 이를 위해, 컴퓨팅 장치는 제어 프로그램 자동 생성 방법에 대응하는 프로그램을 실행하고, 프로그램에서 제공하는 인터페이스를 통해 사용자가 디바이스의 상태를 정의하도록 할 수 있다. 그러면, 사용자가 프로그램이 제공하는 인터페이스에서 디바이스에 대해 복수의 상태를 정의하면. 컴퓨팅 장치는 디바이스의 상태를 식별할 수 있다.In step 301, the computing device may identify the state of the device. To this end, the computing device may execute a program corresponding to the method of automatically generating a control program, and allow a user to define a state of the device through an interface provided by the program. Then, if the user defines multiple states for the device in the interface provided by the program. The computing device can identify the state of the device.

단계(302)에서, 컴퓨팅 장치는 디바이스의 상태에 대한 배치 결과를 획득할 수 있다. 컴퓨팅 장치에서 수행되는 프로그램은 사용자가 디바이스에 대해 정의된 복수의 상태들을 도형이나 기호 등과 같은 식별자로 시각화하여 제공할 수 있다. 그러면, 사용자는 디바이스들 간의 상호 작용을 통해 진행되는 특정 공정을 고려하여 사전에 정의된 상태들을 공정의 순서에 따라 프로그램이 제공하는 인터페이스에서 배치할 수 할 수 있다. In step 302, the computing device may obtain a placement result for the state of the device. A program executed in the computing device may visualize and provide a plurality of states defined for the device by a user as an identifier such as a figure or symbol. Then, the user may arrange pre-defined states in the interface provided by the program according to the order of the process in consideration of a specific process proceeding through interactions between devices.

이 때, 디바이스의 상태를 공정의 순서에 따라 배치하는 것은 특정 상태에 대응하는 식별자(ex. 도형, 아이콘 등)를 사용자가 공정의 순서에 따라 배치하는 것을 의미한다. 그리고, 디바이스의 상태를 식별자와 같이 시각화된 형태로 표현하고, 이를 공정에 따라 배치하는 과정은 물리적인 디바이스들의 상호 작용을 통해 동작하는 과정을 가상의 공간인 컴퓨팅 장치의 인터페이스 상에서 모델링하는 것을 의미한다. 그러면, 컴퓨팅 장치는 인터페이스에서 사용자의 조작에 따라 설정된 디바이스의 상태에 대한 배치 결과를 획득할 수 있다. In this case, arranging the state of the device according to the order of the process means that the user arranges the identifier (eg, figure, icon, etc.) corresponding to the specific state according to the order of the process. In addition, the process of expressing the state of the device in a visualized form like an identifier and arranging it according to the process means modeling the process of operating through the interaction of physical devices on the interface of the computing device, which is a virtual space. . Then, the computing device may obtain an arrangement result for the state of the device set according to the user's manipulation in the interface.

단계(303)에서, 컴퓨팅 장치는 디바이스의 상태에 대한 배치 결과에 기초하여 제어 프로그램을 생성할 수 있다. 이 때, 제어 프로그램은 PLC(Programmable Logic Controller)와 같이 별도의 제어 장치가 디바이스들을 제어하거나 또는 컴퓨팅 장치가 직접 디바이스들을 제어하기 위한 데이터를 의미할 수 있다. 일례로, 제어 프로그램은 레더 다이어그램(ladder diagram), SFC(Sequential Function Chart), FBD(Function Block Diagram) 등과 같은 언어로 표현될 수 있다.In step 303, the computing device may generate a control program based on a result of the arrangement of the state of the device. In this case, the control program may mean data for a separate control device to control devices, such as a programmable logic controller (PLC), or for a computing device to directly control devices. For example, the control program may be expressed in a language such as a ladder diagram, a sequential function chart (SFC), a function block diagram (FBD), or the like.

도 4는 본 발명의 일실시예에 따라 프로그램에서 디바이스의 상태를 정의하는 과정을 나타내는 인터페이스 화면이다.4 is an interface screen showing a process of defining a device state in a program according to an embodiment of the present invention.

도 4를 참고하면, 제어 프로그램 자동 생성 방법을 실행하는 프로그램이 제공하는 인터페이스 화면이 도시된다. 인터페이스 화면은 적어도 하나의 영역들로 구분될 수 있다. 이 중에 어느 하나의 영역에서, 특정 공정에 참여하는 복수의 디바이스들 각각의 상태가 정의될 수 있다. 디바이스별로 2개 이상의 상태가 정의될 수 있다. 디바이스별로 상태를 구분하기 위해, 상태가 시각적으로 표현된 식별자(ex. 도형, 아이콘 등)으로 표현될 수 있으며, 디바이스마다 서로 다른 형태로 설정될 수 있다. 또는 상태는 디바이스와 특정 액션에 대응하는 텍스트 형태로 표현될 수 있다.Referring to FIG. 4, an interface screen provided by a program that executes a method for automatically generating a control program is shown. The interface screen may be divided into at least one area. In any one of these areas, a state of each of a plurality of devices participating in a specific process may be defined. Two or more states can be defined for each device. In order to classify the state for each device, the state may be expressed as a visually expressed identifier (eg, figure, icon, etc.), and may be set in different forms for each device. Alternatively, the state may be expressed in a text format corresponding to a device and a specific action.

디바이스의 상태는 디바이스에서 수행 가능한 액션과 연관되어 정의될 수 있다. 디바이스의 상태는 사용자에 의해 편집될 수 있으며, 사용자의 요청에 따라 추가 또는 삭제될 수 있다. 또는 디바이스의 상태는 라이브러리 등으로부터 획득될 수도 있다.The state of the device may be defined in association with an action that can be performed on the device. The state of the device can be edited by the user, and can be added or deleted at the request of the user. Alternatively, the state of the device may be obtained from a library or the like.

도 5는 본 발명의 일실시예에 따라 디바이스의 상태를 배치하는 과정을 나타내는 인터페이스 화면이다.5 is an interface screen showing a process of arranging device states according to an embodiment of the present invention.

도 5를 참고하면, 제어 프로그램 자동 생성 방법을 실행하는 프로그램이 제공하는 인터페이스 화면이 도시된다. 인터페이스 화면은 적어도 하나의 영역들로 구분될 수 있다. 도 5에서 인터페이스 영역 2에서는 도 4에서 설명한 디바이스들 각각에 대해 정의된 상태들이 표시된다.Referring to FIG. 5, an interface screen provided by a program that executes a method for automatically generating a control program is shown. The interface screen may be divided into at least one area. In the interface area 2 of FIG. 5, states defined for each of the devices described in FIG. 4 are displayed.

그리고, 인터페이스 영역 1에서는 디바이스들 각각의 상태를 특정 공정의 순서에 따라 배치된 결과가 표시된다. 여기서, 디바이스의 상태에 대한 배치 결과는 인과 모델로 표현된다. 사용자의 조작에 따라 인터페이스 영역 1에 표시된 디바이스의 상태들을 드래그하거나 선택함으로써 사용자가 인지하고 있는 특정 공정의 진행에 따라 참여하는 디바이스의 상태를 배치할 수 있다.In addition, in the interface area 1, a result of arranging the states of each of the devices according to the order of a specific process is displayed. Here, the arrangement result for the state of the device is expressed as a causal model. By dragging or selecting the states of the devices displayed in the interface area 1 according to the user's manipulation, the state of the participating devices may be arranged according to the progress of a specific process recognized by the user.

즉, 프로그램은 인터페이스를 통해 사용자가 디바이스별로 정의된 상태들을 특정 공정에 따라 배열하는 간단한 동작만 요구할 수 있다. 이렇게 배치된 디바이스의 상태들의 순서는 사용자의 조작에 따라 수정될 수 있다. 또는 공정이 변경됨에 따라 디바이스의 상태가 추가되거나 수정될 수 있다.That is, the program can only request a simple operation in which the user arranges the states defined for each device according to a specific process through the interface. The order of the states of the devices arranged in this way can be modified according to the user's manipulation. Alternatively, as the process changes, the state of the device may be added or modified.

도 5에 도시된 바와 같이, 디바이스별로 정의된 상태가 구분될 수 있도록 서로 다른 형태로 시각화될 수 있다. 예를 들어, 디바이스 1의 상태들은 사각형으로 표시되고, 디바이스 2의 상태들은 원형으로 표시될 수 있다. 디바이스의 상태들은 색깔, 크기, 형태, 텍스트 등 다양한 식별 방식에 따라 구분될 수 있다.As shown in FIG. 5, the states defined for each device may be visualized in different forms so that they can be distinguished. For example, states of device 1 may be represented by a square, and states of device 2 may be represented by a circle. Device states can be classified according to various identification methods such as color, size, shape, and text.

그리고, 디바이스의 상태는 시퀀스 형태에 따라 단계별로 배치될 수 있다. 이전 단계의 액션은 다음 단계의 상태로 전환되는 원인(cause)이 된다. 다시 말하면, 이전 단계의 액션이 수행됨으로써 다음 단계의 상태가 결과로 도출된다. 즉, 도 6에 도시된 바와 같이 시퀀스 형태로 배치되는 상태들 간에는 인과(cause and effect) 모델 형태로 표현된다. 또는, 이전 단계의 상태는 다음 단계의 액션에 대한 원인이 된다. 다시 말하면, 이전 단계의 상태가 되어야 다음 단계의 액션이 수행되며, 다음 단계의 액션이 수행됨으로써 수행된 액션에 맞게 다음 단계의 상태로 전환된다.In addition, the state of the device may be arranged in stages according to the sequence type. The action of the previous step causes the transition to the state of the next step. In other words, the action of the previous step is performed, resulting in the state of the next step. That is, as shown in FIG. 6, states that are arranged in a sequence form are expressed in the form of a cause and effect model. Or, the state of the previous step is the cause of the action of the next step. In other words, the action of the next step is performed only when the state of the previous step is performed, and the state of the next step is converted to the state of the next step according to the performed action by performing the action of the next step.

하나의 단계에서는 하나 또는 복수의 상태들이 배치될 수 있으며, 각 단계에서 설정되는 상태는 다음 단계의 상태로 천이되기 위해 AND 조건으로 설정된다. 예를 들어, 2단계에서 상태 A, 상태 B가 배치되고, 3단계에서 상태 C가 배치되는 경우, 상태 C는 상태 A 및 상태 B가 모두 만족되어야 전환될 수 있다.One or more states may be arranged in one step, and the state set in each step is set as an AND condition to transition to the state of the next step. For example, when state A and state B are disposed in step 2 and state C is disposed in step 3, state C can be switched only when both states A and B are satisfied.

또는 하나의 단계에서는 하나 또는 복수의 상태들이 배치될 수 있으며, 각 단계에서 설정되는 상태는 다음 단계의 상태로 천이되기 위해 OR 조건으로 설정될 수 있다. OR 조건으로 설정되는 경우, OR 조건에 대응하는 상태들로부터 분기되어 각각의 개별적인 모델이 생성되며, 각각의 모델별로 제어 프로그램이 생성될 수 있다.Alternatively, one or more states may be arranged in one step, and a state set in each step may be set as an OR condition to transition to a state of the next step. When the OR condition is set, each individual model is generated by branching from states corresponding to the OR condition, and a control program may be generated for each model.

인과 모델에서 디바이스들 각각의 최종 상태는 디바이스들 각각의 초기 상태로 된다. 예를 들어, 인과 모델에서 디바이스 1의 초기 상태가 상태 b이고, 디바이스 2의 초기 상태가 상태 y인 경우, 인과 모델에 포함된 디바이스 1의 상태들 중 가장 최종 상태는 상태 b가 되어야 하고, 디바이스 2의 상태들 중 가장 최종 상태는 상태 y가 되어야 한다.In the causal model, the final state of each of the devices becomes the initial state of each of the devices. For example, in the causal model, if the initial state of device 1 is state b and the initial state of device 2 is state y, the most final state of the states of device 1 included in the causal model should be state b, and device Of the 2 states, the final state should be state y.

도 6은 본 발명의 일실시예에 따라 디바이스의 상태에 대한 배치 결과에 따라 제어 프로그램을 생성하는 과정을 나타내는 인터페이스 화면이다.6 is an interface screen showing a process of generating a control program according to an arrangement result of a device state according to an embodiment of the present invention.

도 6을 참고하면, 프로그램의 인터페이스 화면에서 인터페이스 영역 2에 도 5에서 설명한 디바이스의 상태에 대한 배치 결과가 표시된다. 그리고, 인터페이스 영역 1에는, 디바이스의 상태에 대한 배치 결과에 따라 프로그램이 자동으로 PLC 등에서 실행되는 시퀀스 형태의 제어 프로그램이 표시된다. 제어 프로그램은 도 5에서 사용자가 배치한 상태들을 배치하는 것만으로도 데이터를 자동으로 쉽게 획득할 수 있다.Referring to FIG. 6, the arrangement result of the device state described in FIG. 5 is displayed in the interface area 2 on the interface screen of the program. Further, in the interface area 1, a control program in the form of a sequence in which the program is automatically executed in a PLC or the like according to the result of the arrangement of the device state is displayed. The control program can easily obtain data automatically simply by arranging the states arranged by the user in FIG. 5.

본 발명의 일실시예에 따르면, 특정 시스템을 구동하기 위해, 시스템을 구성하는 디바이스들 각각의 순서와 논리를 고려하고, 디바이스의 입력과 출력에 따라 시스템을 통해 구현하고자 하는 공정을 프로그래밍하는 기존의 과정과 다르게 시스템을 구성하는 디바이스들 각각의 상태를 간단한 과정을 통해 공정의 순서에 따라 배치하는 것만으로도 시스템을 시각적으로 모델링할 수 있다. According to an embodiment of the present invention, in order to drive a specific system, a conventional process that considers the order and logic of each device constituting the system, and programs a process to be implemented through the system according to the input and output of the device. Unlike the process, the system can be visually modeled simply by arranging the states of each of the devices constituting the system according to the order of the process through a simple process.

또한, 시스템을 디바이스의 상태를 배열하는 것만으로도 모델링하고, 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하기 위한 제어 프로그램을 자동으로 생성할 수 있다. 본 발명에 따라 제공되는 제어 프로그램 자동 생성 방법이 실행되는 프로그램은 실제로 매우 복잡한 연결 관계에 따라 디바이스를 위한 제어 프로그램을 PLC 프로그램을 바로 작성하지 않고, 시각적으로 표현된 디바이스의 상태를 배치하는 것만으로도 쉽게 생성할 수 있도록 한다.In addition, the system can be modeled by simply arranging the states of the devices, and a control program for controlling the devices can be automatically generated according to the result of the arrangement of the states of the devices. The program in which the method for automatically generating the control program provided according to the present invention is executed does not actually create a PLC program for a device according to a very complex connection relationship, but simply by arranging the state of the device visually expressed. Make it easy to create.

도 7은 본 발명의 일실시예에 따라 디바이스의 상태에 대한 배치 결과에 따라 생성된 제어 프로그램에 기초하여 디바이스의 시뮬레이션을 수행하는 과정을 나타내는 인터페이스 화면이다.7 is an interface screen showing a process of performing a simulation of a device based on a control program generated according to a result of an arrangement of a device state according to an embodiment of the present invention.

도 7에서, 인터페이스 영역 1은 도 5에서 결정된 디바이스의 상태에 대한 배치 결과가 표시된다. 그리고, 인터페이스 영역 2는 배치 결과를 구성하는 디바이스들의 상태에 대한 전환 시점을 나타내는 타이밍 다이어그램을 나타낸다.In FIG. 7, an arrangement result of the device state determined in FIG. 5 is displayed in the interface area 1. In addition, the interface area 2 shows a timing diagram indicating the timing of switching to the states of the devices constituting the arrangement result.

본 발명의 일실시예에 따르면, 실제로 (또는 물리적으로) 디바이스가 설치되어 디바이스가 제대로 동작하는지를 가상의 영역에서 시뮬레이션할 수 있다. 즉, 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하기 위한 제어 프로그램이 생성되고, 제어 프로그램에 따라 컴퓨터 장치에서 구현된 인과 모델에 대응하는 가상의 시스템을 시뮬레이션함으로써 실제로 디바이스가 설치되지 않더라도 디바이스의 동작 상황을 확인할 수 있다.According to an embodiment of the present invention, it is possible to simulate in a virtual area whether the device is actually (or physically) installed and operates properly. That is, a control program for controlling the device is generated according to the arrangement result of the device state, and a virtual system corresponding to the causal model implemented in the computer device is simulated according to the control program. You can check the operation status.

도 8은 본 발명의 일실시예에 따라 디바이스의 상태와 디바이스의 상태에 대한 배치 결과의 제1예를 도시한 도면이다.8 is a diagram illustrating a first example of a device state and an arrangement result of the device state according to an embodiment of the present invention.

도 8에서 시스템(801)은 2개의 로봇들이 동작하는 공정을 수행하는 것을 의미한다. 로봇 1은 HOME 상태와 PUT 상태가 정의되고, 로봇 2는 SET 상태, DRAW 상태, CHECK 상태가 각각 정의될 수 있다. 도 8에서 로봇 1과 로봇 2가 각각 상호 작용하여 시스템(801)에서 구현하고자 하는 공정이 진행된다.In FIG. 8, the system 801 refers to performing a process in which two robots operate. The HOME state and the PUT state are defined for Robot 1, and the SET state, DRAW state, and CHECK state can be defined for Robot 2, respectively. In FIG. 8, the robot 1 and the robot 2 interact with each other to perform a process to be implemented in the system 801.

이와 같은 공정을 가상으로 표현한 것이 가상의 인과 모델(802)이다. 인과 모델(802)은 앞서 설명한 디바이스들의 상태에 대한 배치 결과를 의미한다. 시스템(801)에서 구현하고자 하는 공정은 시스템(801)에 대해 외부 트리거링이 발생되면, 로봇 1의 PUT 상태, 로봇 2의 SET 상태, 로봇 1의 HOME 상태, 로봇 2의 DRAW 상태, 로봇 2의 CHECK 상태의 순서로 전환되면서 진행된다. 이 때, 외부 트리거링이 발생되면 로봇 1의 Putting 액션이 수행되고, 로봇 1의 Putting 액션이 수행된 결과에 따라 로봇 1은 PUT 상태가 된다. 즉, 디바이스의 상태는 디바이스의 상태에 대응하는 액션이 수행된 결과를 의미한다. 다른 말로, 이전 상태는 다음 상태의 액션이 실행되기 위한 조건으로 다음 상태의 액션에 대한 원인(cause)이 된다.A virtual causal model 802 is a virtual representation of such a process. The causal model 802 refers to an arrangement result of the states of the devices described above. The process to be implemented in the system 801 is the PUT status of the robot 1, the SET status of the robot 2, the HOME status of the robot 1, the DRAW status of the robot 2, and the check of the robot 2 when external triggering occurs for the system 801. It proceeds by transitioning to the order of states. At this time, when external triggering occurs, Robot 1's Putting action is performed, and Robot 1 is put into a PUT state according to the result of Robot 1's Putting action. That is, the state of the device means the result of performing an action corresponding to the state of the device. In other words, the previous state is a condition for executing the action of the next state and becomes a cause for the action of the next state.

도 8에서, 로봇 1의 Putting 액션의 원인은 외부 트리거링이다. 그리고, 시스템(801)에서, 로봇 2에서 수행되는 Setting 액션의 원인은 로봇 1의 PUT 상태이고, 로봇 1의 Homing 액션의 원인은 로봇 2의 SET 상태이다. 그리고, 로봇 2의 Drawing 액션의 원인은 로봇 1의 HOME 상태이며, 로봇 2의 Checking 액션의 원인은 로봇 2의 DRAW 상태이다.In Fig. 8, the cause of the Putting action of Robot 1 is external triggering. And, in the system 801, the cause of the setting action performed by the robot 2 is the PUT state of the robot 1, and the cause of the homing action of the robot 1 is the SET state of the robot 2. The cause of the drawing action of Robot 2 is the HOME state of Robot 1, and the cause of the Checking action of Robot 2 is the DRAW state of Robot 2.

도 9는 도 8에 도시된 디바이스의 상태에 대한 배치 결과에 따라 제어 프로그램을 생성하는 제1예를 도시한 도면이다.9 is a diagram illustrating a first example of generating a control program according to an arrangement result of a device state shown in FIG. 8.

도 9에 따르면, 컴퓨팅 장치는 도 8에 도시된 디바이스의 상태에 대한 배치 결과인 인과 모델(901)로부터 자동으로 디바이스를 제어하기 위한 제어 프로그램(902)가 생성될 수 있다. 도 9의 경우, 제어 프로그램(902)는 PLC와 같이 디바이스를 제어하기 위한 장치에 적용되는 제어 로직과 같은 시퀀스 프로그램(ex. Ladder diagram)을 의미한다. 이 때, 제어 프로그램은 원인이 입력이고, 결과가 출력인 모델로 구현될 수 있다. 즉, 이전 단계의 상태가 원인으로 입력이 되고, 현재 단계의 상태에 대응하는 액션이 결과로서 출력이 된다. 제어 프로그램(902)는 입력과 출력 간의 관계를 표현한 시퀀스를 의미할 수 있다. 여기서, 이전 단계의 상태는 현재 단계의 액션을 수행하는 디바이스와 동일하거나 또는 다른 디바이스의 상태가 될 수 있다.Referring to FIG. 9, the computing device may generate a control program 902 for automatically controlling the device from a causal model 901 that is a result of the arrangement of the state of the device illustrated in FIG. 8. In the case of FIG. 9, the control program 902 refers to a sequence program (ex. Ladder diagram) such as control logic applied to an apparatus for controlling a device such as a PLC. In this case, the control program may be implemented as a model in which the cause is the input and the result is the output. That is, the state of the previous step is input as the cause, and the action corresponding to the state of the current step is output as a result. The control program 902 may mean a sequence expressing a relationship between an input and an output. Here, the state of the previous step may be the same as the device performing the action of the current step or may be a state of a different device.

본 발명에 의하면, 사용자가 디바이스의 동작을 표현하는 디바이스의 입력과 출력을 고려하여 복잡한 시퀀스 프로그램을 작성하지 않더라도, 디바이스의 상태를 공정의 순서에 따라 프로그램의 인터페이스에 시각적으로 배치하는 것만으로 시퀀스 프로그램을 자동으로 생성할 수 있는 사용자 편의성이 제공된다.According to the present invention, even if a user does not create a complex sequence program in consideration of the input and output of the device that expresses the operation of the device, the sequence program is merely visually arranged in the interface of the program according to the order of the process. User convenience is provided that can automatically generate a file.

도 10은 도 8에 도시된 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하는 과정을 타이밍 다이어그램으로 표현한 제1예를 도시한 도면이다.FIG. 10 is a diagram illustrating a first example in which a process of controlling a device according to a result of an arrangement of a device state illustrated in FIG. 8 is expressed as a timing diagram.

도 10에 도시된 인과 모델(1001)은 앞서 설명한 디바이스의 상태에 대한 배치 결과를 나타낸다. 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하기 위한 제어 프로그램이 컴퓨팅 장치에 의해 자동으로 생성될 수 있다. 그러면, 제어 프로그램을 이용하여 가상으로 디바이스가 제대로 동작하는 지를 시뮬레이션할 수 있고, 시뮬레이션은 도 10에 도시된 타이밍 다이어그램(1002)를 통해 실제로(물리적으로) 특정 공간에 디바이스들이 설치되지 않더라도 컴퓨팅 장치에서 가상으로 구현 가능하다.The causal model 1001 shown in FIG. 10 represents the result of the arrangement of the state of the device described above. A control program for controlling the device may be automatically generated by the computing device according to a result of the arrangement of the state of the device. Then, using the control program, it is possible to virtually simulate whether the device is properly operating, and the simulation is performed in the computing device even if the devices are not actually (physically) installed in a specific space through the timing diagram 1002 shown in FIG. It can be implemented virtually.

타이밍 다이어그램(1002)에 의하면, 로봇 1의 초기 상태가 "HOME"이고, 로봇 2의 초기 상태는 "CHECK"이다. 외부 트리거링이 발생되면, 로봇 1의 Putting 액션이 T1 시간 구간동안 수행되며, putting 액션의 수행 결과 로봇 1은 HOME 상태에서 PUT 상태로 전환된다. 로봇 1의 PUT 상태는 로봇 2의 Setting 액션의 원인이 된다. 앞서 설명한 바와 같이, 인과 모델에서 이전 단계의 상태는 다음 단계의 상태로 전환하기 위한 액션의 원인이 될 수 있다.According to the timing diagram 1002, the initial state of the robot 1 is "HOME", and the initial state of the robot 2 is "CHECK". When external triggering occurs, Robot 1's Putting action is performed during the time period T1, and as a result of the putting action, Robot 1 is converted from the HOME state to the PUT state. Robot 1's PUT status is the cause of Robot 2's Setting action. As described above, in the causal model, the state of the previous step may be the cause of the action to switch to the state of the next step.

로봇 2의 Setting 액션이 수행되면, 로봇 2는 SET 상태가 된다. 그리고, 로봇 2의 SET 상태는 로봇 1의 Homing 액션의 원인이 된다. 로봇 1의 Homing 액션이 수행되면, 로봇 1은 HOME 상태가 된다. 이 때, 로봇 1에 대해 FLAG 1가 설정될 수 있다. 여기서, 로봇 1에 설정된 FLAG 1는 로봇 1의 HOME 상태가 로봇 1의 초기 상태가 아니라 로봇 2의 SET 상태에 따라 로봇 1의 Homing 액션이 수행됨으로써 전환되었다는 것을 의미한다.When the Setting action of Robot 2 is performed, Robot 2 is in the SET state. And, the SET state of Robot 2 is the cause of the Homing action of Robot 1. When Robot 1's Homing action is executed, Robot 1 goes to the HOME state. At this time, FLAG 1 may be set for robot 1. Here, FLAG 1 set in Robot 1 means that the HOME state of Robot 1 is changed by performing the Homing action of Robot 1 according to the SET state of Robot 2, not the initial state of Robot 1.

이 경우, 로봇 2의 Drawing 액션은 로봇 1의 HOME 상태 뿐만 아니라 로봇 1에 대한 FLAG 1이 존재하여야 수행될 수 있다. 로봇 2의 Drawing 액션이 수행된 결과 로봇 2는 DRAW 상태가 된다. 로봇 2의 DRAW 상태는 로봇 2의 Checking 액션의 원인이 된다. 이 경우, 로봇 2의 Checking 액션은 로봇 1의 상태가 아닌 동일한 디바이스인 로봇 2의 DRAW 상태에 따라 수행된다. 즉, 특정 디바이스에서 수행되는 액션의 원인이 동일한 디바이스의 이전 상태인 경우, FLAG가 설정될 수 있다. 이 경우, 로봇 2의 Checking 액션의 원인은 로봇 2의 DRAW 상태와 로봇 2의 DRAW 상태에 설정된 FLAG 2이다. 다시 말해서, 로봇 2의 DRAW 상태와 FLAG2가 설정되어야 로봇 2의 checking 액션이 수행된다. 로봇 2의 Checking 액션의 수행결과, 로봇 2는 CHECK 상태가 된다.In this case, the drawing action of robot 2 can be performed only when there is FLAG 1 for robot 1 as well as the HOME state of robot 1. As a result of the drawing action of Robot 2, Robot 2 enters the DRAW state. Robot 2's DRAW status is the cause of Robot 2's Checking action. In this case, the checking action of Robot 2 is performed according to the DRAW state of Robot 2, which is the same device, not the state of Robot 1. That is, if the cause of an action performed by a specific device is a previous state of the same device, FLAG may be set. In this case, the cause of the checking action of Robot 2 is FLAG 2 set in the DRAW state of Robot 2 and the DRAW state of Robot 2. In other words, Robot 2's checking action is performed only when the DRAW status and FLAG2 of Robot 2 are set. As a result of performing the Checking action of Robot 2, Robot 2 enters the CHECK state.

본 발명의 일실시예에 따르면, 인과 모델(1301)에서 디바이스들 각각의 최종 상태는 디바이스들 각각의 초기 상태로 된다. 예를 들어, 로봇 1의 초기 상태는 HOME 상태인데, 인과 모델(1301)에서 로봇 1의 최종 상태도 HOME 상태가 된다. 마찬가지로, 로봇 2의 초기 상태는 CHECK 상태인데, 인과 모델(1301)에서 로봇 2의 최종 상태도 로봇 2의 초기 상태인 CHECK 상태가 된다.According to an embodiment of the present invention, the final state of each of the devices in the causal model 1301 becomes the initial state of each of the devices. For example, the initial state of the robot 1 is the HOME state, and the final state of the robot 1 in the causal model 1301 also becomes the HOME state. Similarly, the initial state of the robot 2 is a CHECK state, and the final state of the robot 2 in the causal model 1301 also becomes the CHECK state, which is the initial state of the robot 2.

도 11은 본 발명의 일실시예에 따라 디바이스의 상태와 디바이스의 상태에 대한 배치 결과의 제2예를 도시한 도면이다.11 is a diagram illustrating a second example of a device state and an arrangement result of the device state according to an embodiment of the present invention.

도 11에서 시스템(1101)은 2개의 로봇들이 동작하는 공정을 수행하는 것을 의미한다. 로봇 1은 HOME 상태와 PUT 상태가 정의되고, 로봇 2는 SET 상태, DRAW 상태가 각각 정의될 수 있다. 도 11에서 로봇 1과 로봇 2가 각각 상호 작용하여 시스템(1101)에서 구현하고자 하는 공정이 진행된다.In FIG. 11, the system 1101 refers to performing a process in which two robots operate. The HOME state and the PUT state are defined for Robot 1, and the SET state and DRAW state may be defined for Robot 2, respectively. In FIG. 11, the robot 1 and the robot 2 interact with each other to perform a process to be implemented in the system 1101.

이와 같은 공정을 가상으로 표현한 것이 가상의 인과 모델(1102)이다. 인과 모델(1102)은 앞서 설명한 디바이스들의 상태에 대한 배치 결과를 의미한다. 시스템(1101)에서 구현하고자 하는 공정은 시스템(1101)에 대해 외부 트리거링이 발생되면, 로봇 1의 PUT 상태, 로봇 2의 SET 상태, 로봇 2의 DRAW 상태, 로봇 1의 HOME 상태의 순서로 전환되면서 진행된다. 이 때, 로봇 1의 PUT 상태는 외부 트리거링이 발생되면 로봇 1의 Putting 액션이 수행되고, 로봇 1의 Putting 액션이 수행된 결과에 따라 로봇 1은 PUT 상태가 된다. 즉, 디바이스의 상태는 디바이스의 상태에 대응하는 액션이 수행된 결과를 의미한다. 다른 말로, 이전 상태는 다음 상태의 액션이 실행되기 위한 조건으로 다음 상태의 액션에 대한 원인(cause)이 된다.A virtual causal model 1102 is a virtual representation of such a process. The causal model 1102 refers to an arrangement result of the states of the devices described above. The process to be implemented in the system 1101 is changed in the order of the PUT state of the robot 1, the SET state of the robot 2, the DRAW state of the robot 2, and the HOME state of the robot 1 when external triggering occurs for the system 1101. It goes on. At this time, in the PUT state of Robot 1, when external triggering occurs, the Putting action of Robot 1 is performed, and the Putting action of Robot 1 becomes the PUT state according to the result. That is, the state of the device means the result of performing an action corresponding to the state of the device. In other words, the previous state is a condition for executing the action of the next state and becomes a cause for the action of the next state.

도 11에서, 로봇 1의 Putting 액션의 원인은 외부 트리거링이다. 그리고, 시스템(1101)에서, 로봇 2에서 수행되는 Setting 액션의 원인은 로봇 1의 PUT 상태이고, 로봇 2의 Drawing 액션의 원인은 로봇 2의 SET 상태이다. 그리고, 로봇 2의 Drawing 액션의 원인은 로봇 2의 SET 상태이고, 로봇 1의 Homing 액션의 원인은 로봇 2의 DRAW 상태이다.In Fig. 11, the cause of the Putting action of Robot 1 is external triggering. And, in the system 1101, the cause of the setting action performed by the robot 2 is the PUT state of the robot 1, and the cause of the drawing action of the robot 2 is the SET state of the robot 2. The cause of the drawing action of robot 2 is the SET state of robot 2, and the cause of the homing action of robot 1 is the DRAW state of robot 2.

도 12는 도 11에 도시된 디바이스의 상태에 대한 배치 결과에 따라 제어 프로그램을 생성하는 제2예를 도시한 도면이다.FIG. 12 is a diagram illustrating a second example of generating a control program according to an arrangement result of a device state shown in FIG. 11.

도 12에 따르면, 컴퓨팅 장치는 도 11에 도시된 디바이스의 상태에 대한 배치 결과인 인과 모델(1201)로부터 자동으로 디바이스를 제어하기 위한 제어 프로그램(1202)가 생성될 수 있다. 도 12의 경우, 제어 프로그램(1202)는 PLC와 같이 디바이스를 제어하기 위한 장치에 적용되는 제어 로직과 같은 시퀀스 프로그램(ex. Ladder diagram)을 의미한다. 즉, 이전 단계의 상태가 원인으로 입력이 되고, 현재 단계의 상태에 대응하는 액션이 결과로서 출력이 된다. 제어 프로그램(1202)는 입력과 출력 간의 관계를 표현한 시퀀스를 의미할 수 있다. 여기서, 이전 단계의 상태는 현재 단계의 액션을 수행하는 디바이스와 동일하거나 또는 다른 디바이스의 상태가 될 수 있다.Referring to FIG. 12, the computing device may generate a control program 1202 for automatically controlling the device from a causal model 1201, which is a result of the arrangement of the state of the device illustrated in FIG. 11. In the case of FIG. 12, the control program 1202 refers to a sequence program (ex. Ladder diagram) such as control logic applied to an apparatus for controlling a device such as a PLC. That is, the state of the previous step is input as the cause, and the action corresponding to the state of the current step is output as a result. The control program 1202 may mean a sequence expressing a relationship between an input and an output. Here, the state of the previous step may be the same as the device performing the action of the current step or may be a state of a different device.

본 발명에 의하면, 사용자가 디바이스의 동작을 표현하는 디바이스의 입력과 출력을 고려하여 복잡한 시퀀스 프로그램을 작성하지 않더라도, 디바이스의 상태를 공정의 순서에 따라 프로그램의 인터페이스에 시각적으로 배치하는 것만으로 시퀀스 프로그램을 자동으로 생성할 수 있는 사용자 편의성이 제공된다.According to the present invention, even if a user does not create a complex sequence program in consideration of the input and output of the device that expresses the operation of the device, the sequence program is merely visually arranged in the interface of the program according to the order of the process. User convenience is provided that can automatically generate a file.

도 13은 도 11에 도시된 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하는 과정을 타이밍 다이어그램으로 표현한 제2예를 도시한 도면이다.FIG. 13 is a diagram illustrating a second example in which a process of controlling a device according to an arrangement result of the state of the device shown in FIG. 11 is expressed as a timing diagram.

도 13에 도시된 인과 모델(1301)은 앞서 설명한 디바이스의 상태에 대한 배치 결과를 나타낸다. 디바이스의 상태에 대한 배치 결과에 따라 디바이스를 제어하기 위한 제어 프로그램이 컴퓨팅 장치에 의해 자동으로 생성될 수 있다. 그러면, 제어 프로그램을 이용하여 가상으로 디바이스가 제대로 동작하는 지를 시뮬레이션할 수 있고, 시뮬레이션은 도 13에 도시된 타이밍 다이어그램(1302)를 통해 실제로(물리적으로) 특정 공간에 디바이스들이 설치되지 않더라도 컴퓨팅 장치에서 가상으로 구현 가능하다.The causal model 1301 shown in FIG. 13 represents the result of the arrangement of the state of the device described above. A control program for controlling the device may be automatically generated by the computing device according to a result of the arrangement of the state of the device. Then, using the control program, it is possible to virtually simulate whether the device is properly operating, and the simulation is performed in the computing device even if the devices are not actually (physically) installed in a specific space through the timing diagram 1302 shown in FIG. It can be implemented virtually.

타이밍 다이어그램(1302)에 의하면, 로봇 1의 초기 상태가 "HOME"이고, 로봇 2의 초기 상태는 "DRAW"이다. 외부 트리거링이 발생되면, 로봇 1의 Putting 액션이 T1 시간 구간동안 수행되며, putting 액션의 수행 결과 로봇 1은 HOME 상태에서 PUT 상태로 전환된다. 로봇 1의 PUT 상태는 로봇 2의 Setting 액션의 원인이 된다. 앞서 설명한 바와 같이, 인과 모델에서 이전 단계의 상태는 다음 단계의 상태로 전환하기 위한 액션의 원인이 될 수 있다.According to the timing diagram 1302, the initial state of the robot 1 is "HOME", and the initial state of the robot 2 is "DRAW". When external triggering occurs, Robot 1's Putting action is performed during the time period T1, and as a result of the putting action, Robot 1 is converted from the HOME state to the PUT state. Robot 1's PUT status is the cause of Robot 2's Setting action. As described above, in the causal model, the state of the previous step may be the cause of the action to switch to the state of the next step.

로봇 2의 Setting 액션이 수행되면, 로봇 2는 SET 상태가 된다. 그리고, 로봇 2의 SET 상태는 로봇 2의 Drawing 액션의 원인이 된다. 이 때, 동일한 디바이스의 이전 상태가 동일한 디바이스의 다음 상태에 대응하는 액션의 원인이라면, FLAG가 설정될 수 있다. 즉, FLAG 1은 로봇 2의 SET 상태가 로봇 2이 수행하는 Drawing 액션의 원인이라는 것을 나타내기 위해 이용된다.When the Setting action of Robot 2 is performed, Robot 2 is in the SET state. And, the SET state of Robot 2 is the cause of Robot 2's drawing action. In this case, if the previous state of the same device is the cause of an action corresponding to the next state of the same device, FLAG may be set. In other words, FLAG 1 is used to indicate that the SET state of robot 2 is the cause of the drawing action that robot 2 performs.

이 경우, 로봇 2의 Drawing 액션은 로봇 2의 SET 상태 뿐만 아니라 로봇 2에 대한 FLAG 1이 존재하여야 수행될 수 있다. 로봇 2의 Drawing 액션이 수행된 결과 로봇 2는 DRAW 상태가 된다. 로봇 2의 DRAW 상태는 로봇 1의 Homing 액션의 원인이 된다. In this case, the drawing action of robot 2 can be performed only when FLAG 1 for robot 2 is present as well as the SET state of robot 2. As a result of the drawing action of Robot 2, Robot 2 enters the DRAW state. Robot 2's DRAW state is the cause of Robot 1's Homing action.

이 경우, 로봇 1의 Homing 액션은 로봇 2의 DRAW 상태가 되어야 수행되는데, 로봇 2의 초기 상태도 DRAW 상태이다. 이 경우, 로봇 2의 DRAW 상태가 초기 상태가 아닌 로봇 2의 SET 상태 이후에 발생되는 것을 나타내기 위해 FLAG 2가 설정될 수 있다. 다시 말해서, FLAG 2는 로봇 2의 DRAW 상태가 초기 상태가 아니고 동일한 디바이스 또는 다른 디바이스의 이전 상태가 원인이 되어 액션이 수행된 결과를 나타내기 위해 사용된다.In this case, the homing action of robot 1 is performed only when robot 2 is in the DRAW state, and the initial state of robot 2 is also in the DRAW state. In this case, FLAG 2 may be set to indicate that the DRAW state of the robot 2 is generated after the SET state of the robot 2 rather than the initial state. In other words, FLAG 2 is used to indicate the result of the action performed because the DRAW state of the robot 2 is not the initial state, but the previous state of the same device or another device is the cause.

이 경우, 로봇 1의 Homing 액션의 원인은 로봇 2의 DRAW 상태와 로봇 2의 DRAW 상태에 설정된 FLAG 2이다. 다시 말해서, 로봇 2의 DRAW 상태와 FLAG2가 설정되어야 로봇 1의 Homing 액션이 수행된다. 로봇 1의 Homing 액션의 수행결과, 로봇 1은 HOME 상태가 된다.In this case, the cause of the homing action of Robot 1 is FLAG 2 set in the DRAW state of Robot 2 and the DRAW state of Robot 2. In other words, the Homing action of Robot 1 is performed only when the DRAW state of Robot 2 and FLAG2 are set. As a result of the Homing action of Robot 1, Robot 1 is in the HOME state.

본 발명의 일실시예에 따르면, 인과 모델(1301)에서 디바이스들 각각의 최종 상태는 디바이스들 각각의 초기 상태로 된다. 예를 들어, 로봇 1의 초기 상태는 HOME 상태인데, 인과 모델(1301)에서 로봇 1의 최종 상태도 HOME 상태가 된다. 마찬가지로, 로봇 2의 초기 상태는 DRAW 상태인데, 인과 모델(1301)에서 로봇 2의 최종 상태도 로봇 2의 초기 상태인 DRAW 상태가 된다.According to an embodiment of the present invention, the final state of each of the devices in the causal model 1301 becomes the initial state of each of the devices. For example, the initial state of the robot 1 is the HOME state, and the final state of the robot 1 in the causal model 1301 also becomes the HOME state. Similarly, the initial state of the robot 2 is the DRAW state, and the final state of the robot 2 in the causal model 1301 also becomes the DRAW state, which is the initial state of the robot 2.

한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.Meanwhile, the method according to the present invention is written as a program that can be executed on a computer and can be implemented in various recording media, such as a magnetic storage medium, an optical reading medium, and a digital storage medium.

본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or combinations thereof. Implementations may include a data processing device, e.g., a programmable processor, a computer, or a computer program product, i.e. an information carrier, e.g., machine-readable storage, for processing by or controlling the operation of multiple computers. It may be implemented as a computer program tangibly embodied in an apparatus (computer readable medium) or a radio signal. Computer programs such as the above-described computer program(s) may be recorded in any type of programming language, including compiled or interpreted languages, and as a standalone program or in a module, component, subroutine, or computing environment. It can be deployed in any form, including as other units suitable for the use of. A computer program can be deployed to be processed on one computer or multiple computers at one site or to be distributed across multiple sites and interconnected by a communication network.

컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.Processors suitable for processing a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. In general, the processor will receive instructions and data from read-only memory or random access memory or both. Elements of the computer may include at least one processor that executes instructions and one or more memory devices that store instructions and data. In general, a computer may include one or more mass storage devices that store data, such as magnetic, magnetic-optical disks, or optical disks, or receive data from or transmit data to them, or both. It can also be combined so as to be. Information carriers suitable for embodying computer program instructions and data are, for example, semiconductor memory devices, for example, magnetic media such as hard disks, floppy disks and magnetic tapes, Compact Disk Read Only Memory (CD-ROM). ), Optical Media such as DVD (Digital Video Disk), Magnetic-Optical Media such as Floptical Disk, ROM (Read Only Memory), RAM (RAM) , Random Access Memory), flash memory, EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), and the like. The processor and memory may be supplemented by or included in a special purpose logic circuit structure.

또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.Further, the computer-readable medium may be any available medium that can be accessed by a computer, and may include both a computer storage medium and a transmission medium.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While this specification includes details of a number of specific implementations, these should not be construed as limiting to the scope of any invention or claimable, but rather as a description of features that may be peculiar to a particular embodiment of a particular invention. It must be understood. Certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable sub-combination. Furthermore, although features operate in a particular combination and may be initially described as so claimed, one or more features from a claimed combination may in some cases be excluded from the combination, and the claimed combination may be a sub-combination. Or sub-combination variations.

마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.Likewise, although operations are depicted in the drawings in a specific order, it should not be understood that such operations must be performed in that particular order or sequential order shown, or that all illustrated operations must be performed in order to obtain a desired result. In certain cases, multitasking and parallel processing can be advantageous. In addition, separation of the various device components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and the program components and devices described are generally integrated together into a single software product or packaged in multiple software products. It should be understood that you can.

한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.On the other hand, the embodiments of the present invention disclosed in the specification and drawings are only presented specific examples to aid understanding, and are not intended to limit the scope of the present invention. It is apparent to those of ordinary skill in the art that other modified examples based on the technical idea of the present invention may be implemented in addition to the embodiments disclosed herein.

101: 컴퓨팅 장치
102: 시스템
101: computing device
102: system

Claims (17)

컴퓨팅 장치에 의해 수행되는 제어 프로그램 자동 생성 방법에 있어서,
디바이스의 상태를 식별하는 단계;
상기 디바이스의 상태에 대한 배치 결과로 표현되는 인과 모델을 결정하는 단계; 및
상기 디바이스의 상태에 대한 배치 결과로 표현되는 인과 모델에 기초하여 상기 디바이스를 제어하기 위한 제어 프로그램을 생성하는 단계
를 포함하고,
상기 인과 모델은,
제어 프로그램 자동 생성 방법을 수행하는 프로그램이 제공하는 인터페이스의 화면을 통해 복수의 디바이스들 각각의 상태들이 외부 입력에 의해 시퀀스 형태로 연결됨으로써 결정되고,
상기 디바이스의 상태는, 디바이스의 액션의 결과로 결정되며, 상기 인과 모델에서 현재 단계의 상태에서 다음 단계의 상태로의 전환은 다음 단계의 상태에 대응하는 액션이 수행됨에 따라 처리되고,
상기 인과 모델에서 복수의 디바이스들 각각의 최종 상태는, 상기 복수의 디바이스들 각각의 초기 상태로 설정되는 제어 프로그램 자동 생성 방법.
In the method for automatically generating a control program performed by a computing device,
Identifying a state of the device;
Determining a causal model expressed as a result of the arrangement of the state of the device; And
Generating a control program for controlling the device based on a causal model expressed as a result of the arrangement of the device state
Including,
The causal model,
It is determined by connecting the states of each of the plurality of devices in a sequence form by an external input through the screen of the interface provided by the program that performs the automatic control program generation method,
The state of the device is determined as a result of the action of the device, and the transition from the state of the current step to the state of the next step in the causal model is processed as an action corresponding to the state of the next step is performed,
In the causal model, a final state of each of the plurality of devices is set to an initial state of each of the plurality of devices.
제1항에 있어서,
상기 디바이스의 상태는, 상기 디바이스의 액션에 대응하며,
상기 디바이스의 액션의 원인은, 상기 디바이스와 동일하거나 다른 디바이스에 대한 이전 단계의 상태인 제어 프로그램 자동 생성 방법.
The method of claim 1,
The state of the device corresponds to the action of the device,
A method of automatically generating a control program in which the cause of the action of the device is a state of a previous step for a device that is the same as or different from the device.
제1항에 있어서,
상기 디바이스의 상태에 대한 배치 결과는,
상기 디바이스의 상태를 특정 공정에 따라 순차적으로 연결한 결과인 제어 프로그램 자동 생성 방법.
The method of claim 1,
The placement result for the state of the device is,
A method of automatically generating a control program that is a result of sequentially connecting the state of the device according to a specific process.
제1항에 있어서,
상기 디바이스의 상태는, 상기 디바이스의 상태를 시각적으로 구별되기 위한 식별자로 인터페이스에 표시되는 제어 프로그램 자동 생성 방법.
The method of claim 1,
The state of the device is displayed on an interface as an identifier for visually distinguishing the state of the device.
제1항에 있어서,
상기 제어 프로그램은,
상기 컴퓨팅 장치 또는 상기 컴퓨팅 장치와 다른 별도의 제어 장치에서 수행되는 제어 시퀀스 또는 제어 로직을 포함하는 제어 프로그램 자동 생성 방법.
The method of claim 1,
The control program,
A method of automatically generating a control program including a control sequence or control logic performed by the computing device or a control device separate from the computing device.
삭제delete 삭제delete 제1항에 있어서,
상기 디바이스의 상태에 대한 배치 결과에서, 특정 단계에서 2개 이상의 상태가 배치되는 경우 2개 이상의 상태는 다음 단계의 상태로 전환되기 위한 AND 조건 또는 OR 조건으로 설정되는 제어 프로그램 자동 생성 방법.
The method of claim 1,
In the arrangement result of the state of the device, when two or more states are arranged in a specific step, the two or more states are set as an AND condition or an OR condition for switching to a state of the next step.
제어 프로그램 자동 생성 방법을 수행하는 컴퓨팅 장치에 있어서,
상기 컴퓨팅 장치는 제어 프로그램 자동 생성 방법에 대응하는 프로그램을 실행하고,
상기 프로그램은, 디바이스의 상태를 식별하고, 상기 디바이스의 상태에 대한 배치 결과로 표현되는 인과 모델을 결정하며, 상기 디바이스의 상태에 대한 배치 결과로 표현되는 인과 모델에 기초하여 상기 디바이스를 제어하기 위한 제어 프로그램을 생성하는 과정을 처리하고,
상기 인과 모델은,
제어 프로그램 자동 생성 방법을 수행하는 프로그램이 제공하는 인터페이스의 화면을 통해 복수의 디바이스들 각각의 상태들이 외부 입력에 의해 시퀀스 형태로 연결됨으로써 결정되고,
상기 디바이스의 상태는, 디바이스의 액션의 결과로 결정되며, 상기 인과 모델에서 현재 단계의 상태에서 다음 단계의 상태로의 전환은 다음 단계의 상태에 대응하는 액션이 수행됨에 따라 처리되고,
상기 인과 모델에서 복수의 디바이스들 각각의 최종 상태는, 상기 복수의 디바이스들 각각의 초기 상태로 설정되는 컴퓨팅 장치.
In the computing device that performs the method for automatically generating a control program,
The computing device executes a program corresponding to the method for automatically generating a control program,
The program identifies a state of the device, determines a causal model expressed as a result of the arrangement of the state of the device, and controls the device based on a causal model expressed as a result of the arrangement of the state of the device. Handles the process of creating a control program,
The causal model,
It is determined by connecting the states of each of the plurality of devices in a sequence form by an external input through the screen of the interface provided by the program that performs the automatic control program generation method,
The state of the device is determined as a result of the action of the device, and the transition from the state of the current step to the state of the next step in the causal model is processed as an action corresponding to the state of the next step is performed,
In the causal model, a final state of each of the plurality of devices is set to an initial state of each of the plurality of devices.
제9항에 있어서,
상기 디바이스의 상태는, 상기 디바이스의 액션에 대응하며,
상기 디바이스의 액션의 원인은, 상기 디바이스와 동일하거나 다른 디바이스에 대한 이전 단계의 상태인 컴퓨팅 장치.
The method of claim 9,
The state of the device corresponds to the action of the device,
The cause of the action of the device is a state of a previous step with respect to a device that is the same as or different from that of the device.
제9항에 있어서,
상기 디바이스의 상태에 대한 배치 결과는,
상기 디바이스의 상태를 특정 공정에 따라 순차적으로 연결한 결과인 컴퓨팅 장치.
The method of claim 9,
The placement result for the state of the device is,
A computing device that is a result of sequentially connecting the state of the device according to a specific process.
제9항에 있어서,
상기 디바이스의 상태는, 상기 디바이스의 상태를 시각적으로 구별되기 위한 식별자로 인터페이스에 표시되는 컴퓨팅 장치.
The method of claim 9,
The state of the device is displayed on an interface as an identifier for visually distinguishing the state of the device.
제9항에 있어서,
상기 제어 프로그램은,
상기 컴퓨팅 장치 또는 상기 컴퓨팅 장치와 다른 별도의 제어 장치에서 수행되는 제어 시퀀스 또는 제어 로직을 포함하는 컴퓨팅 장치.
The method of claim 9,
The control program,
A computing device comprising a control sequence or control logic performed by the computing device or a control device separate from the computing device.
삭제delete 삭제delete 제9항에 있어서,
상기 디바이스의 상태에 대한 배치 결과에서, 특정 단계에서 2개 이상의 상태가 배치되는 경우 2개 이상의 상태는 다음 단계의 상태로 전환되기 위한 AND 조건 또는 OR 조건으로 설정되는 컴퓨팅 장치.
The method of claim 9,
In the arrangement result of the state of the device, when two or more states are arranged in a specific step, the two or more states are set as an AND condition or an OR condition for switching to a state of a next step.
제1항 내지 제5항 및 제8항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium on which a program for executing the method of any one of claims 1 to 5 and 8 is recorded.
KR1020200096787A 2020-08-03 2020-08-03 Method for generating control program automatically and computing device for performing the method KR102258103B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200096787A KR102258103B1 (en) 2020-08-03 2020-08-03 Method for generating control program automatically and computing device for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200096787A KR102258103B1 (en) 2020-08-03 2020-08-03 Method for generating control program automatically and computing device for performing the method

Publications (1)

Publication Number Publication Date
KR102258103B1 true KR102258103B1 (en) 2021-05-31

Family

ID=76150418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200096787A KR102258103B1 (en) 2020-08-03 2020-08-03 Method for generating control program automatically and computing device for performing the method

Country Status (1)

Country Link
KR (1) KR102258103B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102409623B1 (en) * 2021-07-16 2022-06-22 주식회사 듀얼아이엔씨 Modeling method for target system and computing device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018192569A (en) * 2017-05-18 2018-12-06 ファナック株式会社 Programming device and robot control method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018192569A (en) * 2017-05-18 2018-12-06 ファナック株式会社 Programming device and robot control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102409623B1 (en) * 2021-07-16 2022-06-22 주식회사 듀얼아이엔씨 Modeling method for target system and computing device

Similar Documents

Publication Publication Date Title
US9754059B2 (en) Graphical design verification environment generator
JP6289751B2 (en) Program generating apparatus, program generating method, and program generating program
US9176490B2 (en) Control program generation device, control program generation program, and control program generation method
CN105143895B (en) Test class precompiled header is automatically generated from interactive graphical user interface
CN112558954A (en) Information extraction method, device, medium and electronic equipment combining RPA and AI
US20110185332A1 (en) Model based simulation and optimization methodology for design checking
KR102258103B1 (en) Method for generating control program automatically and computing device for performing the method
CN110941934A (en) FPGA prototype verification development board segmentation simulation system, method, medium and terminal
US11347382B2 (en) Method of automatically switching mode of work screen of digital content authoring tool
KR102245480B1 (en) Method for generate a deep learning model using layer blocks
WO2021140176A1 (en) Method and system for managing engineering workflow in a cloud computing environment
JP5521889B2 (en) Automatic program generator
US8443314B1 (en) Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL
KR102325612B1 (en) Method, apparatus, device, and medium for implementing simulator
US10853532B2 (en) Graphical modeling for accessing dynamic system states across different components
JP7208441B1 (en) FA control test support program, FA control test support device, FA control test support method and FA control test support system
US20220147025A1 (en) Configuring modular industrial plants
EP3655871A1 (en) Method and system for simulating a robotic program of an industrial robot
CN115756996B (en) Chip testing method, device and equipment and readable storage medium
US20230237249A1 (en) Method and system for generating an automation engineering project in a technical installation using multidisciplinary approach
US20230350392A1 (en) Method and system for seamless transition of runtime system from controller device to digitalization platform
WO2023031649A1 (en) A method and a system for enabling a user to review simulation data of an industrial environment
JP3224068B2 (en) Programmable controller
EP4315038A1 (en) Overlays for software and hardware verification
KR20230048666A (en) Workload pipeline specification method for machine learning model development and cloud applying the same

Legal Events

Date Code Title Description
GRNT Written decision to grant