KR20110012342A - Method of designing programmable logic controller ladder logic and generating ladder code - Google Patents

Method of designing programmable logic controller ladder logic and generating ladder code Download PDF

Info

Publication number
KR20110012342A
KR20110012342A KR1020090070027A KR20090070027A KR20110012342A KR 20110012342 A KR20110012342 A KR 20110012342A KR 1020090070027 A KR1020090070027 A KR 1020090070027A KR 20090070027 A KR20090070027 A KR 20090070027A KR 20110012342 A KR20110012342 A KR 20110012342A
Authority
KR
South Korea
Prior art keywords
ladder
logic
type
iou
transition
Prior art date
Application number
KR1020090070027A
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 KR1020090070027A priority Critical patent/KR20110012342A/en
Priority to PCT/KR2010/000380 priority patent/WO2011013884A1/en
Publication of KR20110012342A publication Critical patent/KR20110012342A/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
    • G05B19/056Programming the PLC
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/02Detecting, measuring or recording pulse, heart rate, blood pressure or blood flow; Combined pulse/heart-rate/blood pressure determination; Evaluating a cardiovascular condition not otherwise provided for, e.g. using combinations of techniques provided for in this group with electrocardiography or electroauscultation; Heart catheters for measuring blood pressure
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/13Plc programming
    • G05B2219/13023Convert natural language, graphic to coded states, input
    • 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/13Plc programming
    • G05B2219/13128Relay ladder diagram, RLL RLD KOP
    • 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/13Plc programming
    • G05B2219/13145Graphical input of network of symbols, simulation on screen, translate to machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Public Health (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Pathology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Veterinary Medicine (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physiology (AREA)
  • Cardiology (AREA)
  • Programmable Controllers (AREA)

Abstract

PURPOSE: A method of designing a programmable logic controller ladder logic and a generating ladder code is provided to verify the logic error of a ladder code by simulating the change of state of an output coil according to the change of state of a specific input contact point. CONSTITUTION: An active diagram editor(110) designs an PLC control logic. A ladder diagram generator(120) reads an AD-XML. The ladder diagram generator generates XML format. A ladder diagram editor(130) visualizes the generated LD-XML format. An I/O port simulator(140) detects the logical error of a ladder code.

Description

PLC 래더 로직 설계 및 래더 코드 생성방법{METHOD OF DESIGNING PROGRAMMABLE LOGIC CONTROLLER LADDER LOGIC AND GENERATING LADDER CODE}PCL Ladder Logic Design and Ladder Code Generation Method {METHOD OF DESIGNING PROGRAMMABLE LOGIC CONTROLLER LADDER LOGIC AND GENERATING LADDER CODE}

본 발명은 PLC(Programmable Logic Controller) 래더 로직 설계 및 래더 코드 생성방법 에 관한 것으로, 더욱 상세하게는 UML(Unified Modeling Language) 활동 다이어그램을 통해 제조 시스템의 제어 로직을 설계하고, 상기 설계된 상기 제어 로직을 기반으로 래더 코드(Ladder Code)를 생성한 후, 상기 생성된 상기 래더 코드의 특정 입력 접점의 상태 변화에 따른 출력 코일의 상태 변화를 시뮬레이션하여 상기 래더 코드의 로직 오류를 검증하는 PLC 래더 로직 설계 및 래더 코드 생성방법에 관한 것이다.The present invention relates to a programmable logic controller (PLC) ladder logic design and ladder code generation method, and more particularly, to design control logic of a manufacturing system through a UML (Unified Modeling Language) activity diagram, and to control the designed control logic. After generating a ladder code (Ladder Code) based on the PLC ladder logic design to verify the logic error of the ladder code by simulating the state change of the output coil according to the state change of the specific input contact of the generated ladder code and It relates to a ladder code generation method.

기업 환경의 세계화가 급속히 진행되면서 대부분의 기업들은 생존을 위해 비용중심에서 시간중심으로, 제품중심에서 고객중심으로, 규모중심에서 민첩성중심으로 조직 구조를 변화시키려 노력하고 있으며, 이 과정에서 공장 자동화는 생존 전략의 핵심 수단으로 자리잡고 있다.With the rapid globalization of the corporate environment, most companies are striving to change their organizational structures from cost to time, product to customer, and scale to agility for survival. It is a key means of survival strategy.

최근들어 기업의 자동화 수준이 고도화됨에 따라 공정 제어 방법과 물류 흐름은 더욱 복잡해지고 있으며 이에 따라 전체 시스템을 제어하는 제어기 로직 프로 그래밍의 신뢰성과 생산성이 중용한 과제로 부각되고 있다. 현재 대부분의 자동화 제조 시스템 제어기로는 PLC(Programmable Logic Controller)가 채택되고 있으며 제어 로직은 주로 래더 다이어그램(LD: Ladder Diagram)을 이용하여 작성된다.Recently, as the level of automation in the enterprise is advanced, the process control method and the logistics flow become more complicated. Therefore, the reliability and productivity of the controller logic programming that controls the entire system are emerging as important tasks. Currently, PLC (Programmable Logic Controller) is adopted as most automated manufacturing system controller, and control logic is mainly written using ladder diagram (LD).

현재 생산 현장에서 널리 사용되는 PLC 래더 코드 작성 과정은 크게 두가지 문제점을 가지고 있다. 첫째, 체계적인 프로그램 설계 및 개발 프로세스 방법론의 적용이 미흡한 상태이며 프로그래머의 경험에 크게 의존하는 경향이 강하다. 즉, 일반 배치도, 공압 회로도, 타임 테이블 등이 포함되어 있는 기계 도면과 공법 관련 도면, 설비 사양서를 참고하여 작성자 본인만 알아볼 수 있는 방법으로 문서화 하거나 문서화 없이 코드를 직접 작성하는 경우가 빈번하게 발생한다.PLC ladder code writing process, which is widely used in production, has two problems. First, there is a lack of systematic program design and development process methodologies, and there is a strong tendency to rely heavily on programmer experience. In other words, it is common to refer to mechanical drawings, engineering drawings, and equipment specifications including general layout, pneumatic circuit diagrams, time tables, etc. in a way that only the author can understand, or write the code directly without documentation. .

둘째, PLC 래더 다이어그램은 프로그램 작성 시에 발생하는 논리적인 오류를 검증하기 힘든 구조를 갖고 있다. PLC 래더 다이어그램은 전체 시스템에 대한 부분적인 시야만을 제공하기 때문에 구성 요소간의 상호 작용을 한 눈에 파악하기 어렵다는 제약을 가지고 있다. 구체적으로 설명하면, 래더 다이어그램은 특정 렁(lung)에서 발생하는 입력과 출력의 상태 변화가 다른 렁에 어떤 영향을 주는지 파악하기 어려운 구조를 갖고 있기 때문에 코드를 신규로 작성하거나 코드를 변경할 때 발생할 수 있는 로직 오류를 검증하기 어렵다.Second, the PLC ladder diagram has a structure that is difficult to verify the logical error that occurs when programming. PLC ladder diagrams provide only a partial view of the entire system, which makes it difficult to see the interactions between components at a glance. Specifically, ladder diagrams have a structure that makes it difficult to see how changes in state of inputs and outputs in one rung affect other rungs, which can occur when new code or code changes are made. Logic errors are difficult to verify.

이러한 문제 중에서 체계적 개발 프로세스 정착을 위해서는 래더 코드 개발 과정에서 사용될 수 있는 적절한 제어 로직 설계 도구의 도입이 필수적이다. 그리고 신규 코드 작성시 발생할 수 있는 논리적인 오류를 해결하기 위해서는 바로 코딩을 할 것이 아니라 설계된 제어 로직을 기반으로 래더 코드를 자동으로 생성하는 것이 바람직하다. 또한 공정 제어 방법이나 물류 흐름이 변경되었을 때 래더 코드를 직접 수정하지 않고 설계된 제어 로직을 수정하여 래더 코드를 재생성하는 방법 로직 오류의 가능성을 줄여줄 수 있다.Among these issues, in order to settle the systematic development process, it is essential to introduce an appropriate control logic design tool that can be used in the ladder code development process. And in order to solve the logical errors that may occur when writing new code, it is desirable to automatically generate ladder code based on the designed control logic rather than coding. You can also reduce the likelihood of logic errors by modifying the designed control logic instead of directly modifying the ladder code when process control methods or logistics flows change.

이에 따라, 제어 로직의 체계적 설계를 위하여 객체지향 모델링 도구인 UML(Unified Modeling Language)의 활동 다이어그램(AD: Activity Diagram)을 확장한 설계 도구를 이용하고, 설계된 제어 로직을 기반으로 래더 코드를 자동으로 생성하는 방법과 도구를 개발함으로써 종래의 PLC 래더 프로그래밍 과정의 문제점을 해결할 수 있는 기술의 개발이 요구되고 있다.Accordingly, for the systematic design of control logic, the design tool that extends the activity diagram (AD) of UML (Unified Modeling Language), an object-oriented modeling tool, is used and the ladder code is automatically generated based on the designed control logic. By developing a method and a tool for generating, there is a demand for the development of a technology that can solve the problems of the conventional PLC ladder programming process.

본 발명은 상기와 같은 종래 기술을 개선하기 위해 안출된 것으로서, UML(Unified Modeling Language) 활동 다이어그램을 통해 제조 시스템의 제어 로직을 설계하고, 상기 설계된 상기 제어 로직을 기반으로 래더 코드(Ladder Code)를 생성한 후, 상기 생성된 상기 래더 코드의 특정 입력 접점의 상태 변화에 따른 출력 코일의 상태 변화를 시뮬레이션하여 상기 래더 코드의 로직 오류를 검증하는 PLC(Programmable Logic Controller) 래더 로직 설계 및 래더 코드 생성방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to improve the prior art as described above. The control logic of a manufacturing system is designed through a Unified Modeling Language (UML) activity diagram, and a ladder code is generated based on the designed control logic. Programmable logic controller (PLC) ladder logic design and ladder code generation method for generating a logic error of the ladder code by simulating a state change of an output coil according to a state change of a specific input contact of the generated ladder code after generating The purpose is to provide.

상기의 목적을 이루고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일실시예에 따른 PLC(Programmable Logic Controller) 래더 로직 설계 및 래더 코드 생성방법은, UML(Unified Modeling Language) 활동 다이어그램을 통해 제조 시스템의 제어 로직을 설계하는 단계; 상기 설계된 상기 제어 로직을 기반으로 래더 코드(Ladder Code)를 생성하는 단계; 및 상기 생성된 상기 래더 코드의 특정 입력 접점의 상태 변화에 따른 출력 코일의 상태 변화를 시뮬레이션하여 상기 래더 코드의 로직 오류를 검증하는 단계를 포함한다.In order to achieve the above object and to solve the problems of the prior art, a programmable logic controller (PLC) ladder logic design and ladder code generation method according to an embodiment of the present invention, a manufacturing system through a UML (Unified Modeling Language) activity diagram Designing the control logic of the; Generating a ladder code based on the designed control logic; And verifying a logic error of the ladder code by simulating a state change of an output coil according to a state change of a specific input contact of the generated ladder code.

본 발명의 PLC 래더 로직 설계 및 래더 코드 생성방법에 따르면, 사용하기 쉬운 UML 활동 다이어그램을 통해 프로그램하기 어려운 래더 코드를 자동생성함으 로써, 래더 프로그램의 논리적 오류의 발생 가능성을 최소화할 수 있는 효과를 얻을 수 있다.According to the PLC ladder logic design and ladder code generation method of the present invention, by automatically generating ladder code that is difficult to program through an easy-to-use UML activity diagram, it is possible to minimize the possibility of occurrence of logical errors in the ladder program. Can be.

또한, 본 발명의 PLC 래더 로직 설계 및 래더 코드 생성방법에 따르면, 설계를 변경한 후에 래더 코드를 자동 생성함으로써, 코드 직접 변경 시에 발생할 수 있는 논리적 오류를 최소화하고 검증 시간을 단축하며 시스템의 체계적인 변경 관리를 가능하게 하는 효과를 얻을 수 있다.In addition, according to the PLC ladder logic design and ladder code generation method of the present invention, by automatically generating the ladder code after changing the design, to minimize the logical errors that can occur when the code changes directly, to shorten the verification time and systematic The effect of enabling change management can be obtained.

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

도 1은 본 발명의 일실시예에 따른 PLC 래더 코드 생성도구의 구성을 도시한 블록도이다. 1 is a block diagram showing the configuration of a PLC ladder code generation tool according to an embodiment of the present invention.

본 발명의 일실시예에 따른 PLC 래더 코드 생성장치(100)는 활동 다이어그램 편집기(110), 래더 다이어그램 생성기(120), 래더 다이어그램 편집기(130), 및 입출력 포트 시뮬레이션기(140)를 포함한다. PLC ladder code generating apparatus 100 according to an embodiment of the present invention includes an activity diagram editor 110, ladder diagram generator 120, ladder diagram editor 130, and input and output port simulator 140.

활동 다이어그램 편집기(110)는 PLC 제어 로직을 설계한다. 활동 다이어그램 편집기(110)는 자동화 제조 시스템의 공정 흐름을 분석하여 제어 로직을 설계한다. 활동 다이어그램의 형태로 작성된 제어 로직은 AD-XML이라 불리는 XML 포맷으로 저장될 수 있다. Activity diagram editor 110 designs the PLC control logic. Activity diagram editor 110 analyzes the process flow of an automated manufacturing system to design control logic. Control logic written in the form of activity diagrams can be stored in an XML format called AD-XML.

래더 다이어그램 생성기(120)는 AD-XML을 읽어 래더 코드 표현 형식인 LD-XML이라 불리는 XML 포맷을 생성한다. LD-XML은 PLCopen 그룹의 TC-6XML 포맷을 확장하였는데, 이 포맷은 IEC 61131-3PLC 코드의 표준 저장 방식이다. 즉, 그래픽 래더 코드의 정확한 좌표를 표현하기 위해 기존 위치 엘리먼트의 속성에 래더 라인의 행과 열을 표현하는 정보가 추가될 수 있다. 상기 생성된 LD-XML 포맷은 래더 다이어그램 편집기(130)를 통해 그래픽 래더 다이어그램으로 시각화될 수 있다. 입출력 포트 시뮬레이션기(140)는 상기 작성된 래더 코드의 논리적인 오류를 검출하기 위해 입/출력 포트 단위의 시뮬레이션을 수행할 수 있다.The ladder diagram generator 120 reads AD-XML and generates an XML format called LD-XML, which is a ladder code representation format. LD-XML extends the TC-6XML format of the PLCopen group, which is a standard storage method for IEC 61131-3PLC codes. That is, in order to express the exact coordinates of the graphic ladder code, information representing the rows and columns of the ladder line may be added to the attribute of the existing position element. The generated LD-XML format may be visualized as a graphic ladder diagram through the ladder diagram editor 130. The input / output port simulator 140 may perform input / output port simulation to detect a logical error of the created ladder code.

도 2는 본 발명의 일실시예에 따른 PLC 래더 로직 설계 및 PLC 래더 코드 생성방법의 흐름을 도시한 순서도이다.2 is a flow chart showing the flow of the PLC ladder logic design and PLC ladder code generation method according to an embodiment of the present invention.

본 발명의 일실시예에 따른 PLC 래더 로직 설계 및 PLC 래더 코드 생성방법은, UML(Unified Modeling Language) 활동 다이어그램(AD: Activity Diagram)을 이용하여 제조 시스템의 제어 로직을 설계하는 단계(210), 상기 제어 로직의 설계 결과를 기반으로 래더 코드를 자동 생성하는 단계(220), 및 특정 입력 접점의 상태 변화에 의한 출력 코일의 상태 변화를 시뮬레이션하여 상기 생성된 상기 래더 코드의 로직 오류를 검증하는 단계(230)를 포함한다. PLC ladder logic design and PLC ladder code generation method according to an embodiment of the present invention, step (210) of designing the control logic of the manufacturing system using a Unified Modeling Language (UML) Activity Diagram (AD), Automatically generating a ladder code based on a design result of the control logic (220), and verifying a logic error of the generated ladder code by simulating a state change of an output coil due to a state change of a specific input contact point 230.

UML 다이어그램 중에서 활동 다이어그램(AD: Activity Diagram)은 플로챠트와 유사한 구조를 가지고 있고, 병렬 제어 흐름을 포함한 다양한 제어 플로를 표현할 수 있어 래더 로직의 설계 도구로 적합하다. 즉, 자동화 제조 시스템을 모델링 하기 위한 다양한 설계 도구 중에서 플로챠트 방식은 순차적인 로직을 잘 표현할 수 있고 직관적인 이해가 쉬우나 일반적인 플로챠트는 병렬적 합류나 분기와 같은 제어 플로를 표현할 수 없다는 단점이 있는 반면, 상기 활동 다이어그램(AD: Activity Diagram)은 플로챠트와 유사한 구조를 가지면서 병렬 제어 흐름을 포함하 는 다양한 제어 로직 플로를 표현할 수 있다는 장점이 있다.Among the UML diagrams, an activity diagram (AD) has a structure similar to a flowchart and can represent various control flows including a parallel control flow, which is suitable as a ladder logic design tool. In other words, among various design tools for modeling an automated manufacturing system, the flowchart method can express sequential logic well and is easy to understand intuitively, but the general flowchart cannot express control flow such as parallel confluence or branching. On the other hand, the Activity Diagram (AD) has an advantage that it can express various control logic flows including parallel control flows while having a structure similar to a flowchart.

래더 다이어그램은 AND, OR, NOT 로직의 조합으로 구성된다. AND는 AND-Join과 AND-Split으로, OR는 OR-Join으로, NOT는 폐접점(Normally Closed Contact)과 역코일(Negated Coil)로 세분화될 수 있다. The ladder diagram consists of a combination of AND, OR, and NOT logic. AND can be subdivided into AND-Join and AND-Split, OR into OR-Join, and NOT into normally closed contact and negative coil.

도 3에 도시된 바와 같이, 상기 활동 다이어그램은 래더 로직에서 필요로 하는 로직 중에서 AND 로직 및 OR 로직은 표현 가능하나, NOT 로직의 표현은 불가능하다. 따라서, 상기 활동 다이어그램을 래더 코드 생성을 위한 설계 도구로 활용하기 위해서는 NOT 로직의 표현이 가능하도록 모델링 기능을 확장할 필요가 있다.As shown in FIG. 3, the activity diagram may represent AND logic and OR logic among logics required by ladder logic, but not logic. Therefore, in order to use the activity diagram as a design tool for generating ladder code, it is necessary to extend the modeling function to express the NOT logic.

본 발명의 일실시예에 따르면, NOT 로직을 표현하기 위해 상기 활동 다이어그램의 구성 요소 중의 하나인 트랜지션을 도 4에 도시된 바와 같이 세 가지 유형으로 확장할 수 있다. 즉, 상기 활동 다이어그램의 트랜지션은 일반적인 로직 흐름을 나타내는 일반 트랜지션(Normal Transition), 폐접점을 표현하기 위한 역입력 트랜지션(Not Transition-IN), 및 역코일을 표현하기 위한 역출력 트랜지션(Not Transition-OUT)으로 확장될 수 있다.According to an embodiment of the present invention, a transition, which is one of the components of the activity diagram, may be extended to three types as shown in FIG. 4 to express NOT logic. In other words, the transition of the activity diagram includes a normal transition representing a general logic flow, a non-transition transition representing a closed contact point, and a not output transition representing a reverse coil. OUT).

도 5는 본 발명의 일실시예에 따른 활동 다이어그램으로 설계한 제어 로직을 도시한 도면이다. 도 6은 도 5를 래더 다이어그램으로 변환한 도면이다.5 is a diagram illustrating control logic designed with an activity diagram according to an embodiment of the present invention. FIG. 6 is a diagram of FIG. 5 converted to a ladder diagram.

도 5의 제어 로직은 "IF (A=on .AND. B=on) .OR. (C=NOT on), THEN (D-=on)."와 같다. 즉, 본 발명의 일실시예에 따르면, A 및 B가 동시에 ON 된다는 조건은 AND-Join(AJ)으로 표현될 수 있고, AND-Join이 되거나 C가 OFF가 될 때 D가 ON된다는 조건은 OR-Join(OJ)로 표현될 수 있다. C가 OFF이면 D가 ON되는 것은 폐 접점의 경우로서 역입력 트랜지션을 통해 표현될 수 있다.The control logic of FIG. 5 is equivalent to "IF (A = on.AND.B = on) .OR. (C = NOT on), THEN (D- = on)." That is, according to an embodiment of the present invention, the condition that A and B are simultaneously turned on may be represented by AND-Join (AJ), and the condition that D is turned on when AND-Join or C is OFF is OR It can be expressed as Join (OJ). If C is OFF, the ON of D may be expressed through a reverse input transition in the case of a closed contact.

UML 활동 다이어그램을 통해 래더 코드를 자동 생성하기 위해서는 각 구성 요소 간의 매핑 관계가 사전에 정의되어야 한다. IEC 61131-3 표준에 정의된 래더 다이어그램의 구성 요소는 접점(contact), 코일(coil), 파워플로(power flow), 파워레일(power rail), 및 기능 블록(function block)이다. In order to automatically generate ladder code through UML activity diagrams, the mapping relationship between each component must be defined in advance. The components of the ladder diagram defined in the IEC 61131-3 standard are contacts, coils, power flow, power rails, and function blocks.

상기 접점(contact)은 개접점(normally open) 및 폐접점을 포함하고, 상기 코일(coil)은 일반코일 및 역코일을 포함하며, 상기 파워플로(power flow)는 수평 파워플로 및 수직 파워플로를 포함하고, 상기 파워레일(power rail)은 좌측 파워레일 및 우측 파워레일을 포함한다.The contact includes a normally open and a closed contact, the coil includes a general coil and an inverted coil, and the power flow includes a horizontal power flow and a vertical power flow. The power rail includes a left power rail and a right power rail.

상기 래더 다이어그램은 PLC 제작업체마다 구성 요소가 다소 다르게 구현될 수 있는데, 본 발명에서는 IEC 61131-3 표준에 정의된 구성 요소만으로 상기 래더 다이어그램의 구성 요소가 구현되는 경우를 예로 들어 설명한다. 상기 래더 다이어그램의 각 구성 요소의 그래픽 표현은 도 6에 도시된 바와 같다.The ladder diagram may be implemented in a somewhat different configuration for each PLC manufacturer, the present invention will be described by taking an example in which the components of the ladder diagram is implemented by only the components defined in the IEC 61131-3 standard. The graphical representation of each component of the ladder diagram is as shown in FIG.

상기 활동 다이어그램의 구성 요소는 활동 요소 및 트랜지션 요소로 구분될 수 있다. 상기 활동 요소는 시작활동, 정지활동, 일반활동, 특수활동, 및 블록활동으로 구성될 수 있다. 상기 일반활동 및 상기 특수활동은 사용되는 상태에 따라 입력 및 출력으로 구성될 수 있다. 상기 특수활동은 자동화 제어에 주로 사용되는 카운터 및 타이머를 쉽게 사용하기 위해 추가로 정의될 수 있고, 상기 블록활동은 로직을 계층적으로 표현하기 위한 것이다.Components of the activity diagram may be divided into activity elements and transition elements. The activity element may consist of start activity, stop activity, general activity, special activity, and block activity. The general activity and the special activity may be composed of inputs and outputs depending on the state used. The special activity may be further defined to easily use counters and timers which are mainly used for automation control, and the block activities are intended to express logic hierarchically.

상기 트랜지션 요소는 제어 로직을 표현하기 위하여 일반 트랜지션, NOT 트 랜지션, 로직 플로 트랜지션으로 구성될 수 있다. 상기 NOT 트랜지션은 폐접점 및 역코일을 표현하는 역입력 트랜지션과 역출력 트랜지션으로 구성될 수 있다. 상기 로직 플로 트랜지션은 로직 흐름의 병렬/순차와 합류/분기 여부에 따라 OR-Join, AND-Join, AND-Split로 구성될 수 있다. 상기 활동 다이어그램의 각 요소의 그래픽 표현은 도 5에 도시된 바와 같다. The transition element may be composed of a general transition, a NOT transition, and a logic flow transition to express control logic. The NOT transition may include a reverse input transition and a reverse output transition representing a closed contact and a reverse coil. The logic flow transition may be composed of OR-Join, AND-Join, and AND-Split depending on whether the logic flow is parallel / sequential and joined / branched. The graphical representation of each element of the activity diagram is as shown in FIG. 5.

도 7은 본 발명의 일실시예에 따른 활동 다이어그램 및 래더 다이어그램 구성 요소 간의 매핑 관계를 도시한 도면이다.7 is a diagram illustrating a mapping relationship between activity diagram and ladder diagram elements according to an embodiment of the present invention.

도 7에서 정의되는 매핑 관계를 통해 활동 다이어그램을 판독하여 래더 다디어그램으로 자동 변환하기 위해서는 상기 활동 다이어그램을 래더 다이어그램의 렁(lung)에 해당하는 단위로 분해해야 한다. 상기 렁(lung)은 AND, OR, NOT 로직에 의해 조합되는 입력부 및 출력부를 포함하는 래더 프로그램의 기본 단위이다. 이와 같이 래더 다이어그램 변환을 위한 렁에 상응하는 활동 다이어그램의 기본 단위를 IOU(Input Output Unit)이라 하고, 렁과 일대일 교환 가능한 변환 단위로 삼을 수 있다. 활동 다이어그램을 통해 래더 코드를 자동 생성하는 절차는 4단계로 구분될 수 있다.In order to automatically read the activity diagram through the mapping relationship defined in FIG. 7 and convert the activity diagram into a ladder diagram, it is necessary to decompose the activity diagram into units corresponding to rungs of the ladder diagram. The rung is a basic unit of a ladder program including an input unit and an output unit combined by AND, OR, and NOT logic. As such, the basic unit of the activity diagram corresponding to the rung for converting the ladder diagram is referred to as an input output unit (IOU), and may be used as a conversion unit that can be exchanged with the rung one to one. The procedure for automatically generating ladder code through an activity diagram can be divided into four steps.

제1 단계에서는 그래픽하게 활동 다이어그램을 작성한 후에, 이를 XML 구조로 저장할 수 있다. 이를 위한 XML 스키마를 AD-XML이라 한다. 제2 단계에서는 AD-XML로 표현되는 활동 다이어그램을 IOU 단위로 분해하고, IOU-테이블이라는 2차원 테이블 구조로 저장한다. IOU-테이블은 입력 활동열, 트랜지션 열 및 출력 활동 열로 구성된다. 제3 단계에서는 변환을 위해 IOU의 유형을 크게 5가지로 분류 하며, IOU-테이블을 읽어서 식별되는 각 IOU 별로 소속 유향을 결정할 수 있다. 제4 단계에서는 각 유형별로 마련되는 변환 규칙과 기정의된 매핑 관계를 통해 래더 코드를 자동 생성할 수 있다. 이하에서는 상기 제1 단계 내지 제4 단계에 대하여 상세히 설명한다.In the first step, you can graphically create an activity diagram and then save it as an XML structure. The XML schema for this is called AD-XML. In the second step, the activity diagram expressed in AD-XML is decomposed into IOU units and stored in a two-dimensional table structure called an IOU-table. The IOU-table consists of input activity columns, transition columns and output activity columns. In the third step, IOUs are classified into five types of IOUs for conversion, and the direction of membership can be determined for each identified IOU by reading the IOU-table. In the fourth step, ladder code can be automatically generated through conversion rules provided for each type and predefined mapping relationships. Hereinafter, the first to fourth steps will be described in detail.

제1 단계는 활동 다이어그램의 작성 및 저장 단계이다. 래더 코드의 자동 생성을 위해 그래픽으로 표현되는 활동 다이어그램을 컴퓨터가 처리 가능한 자료 구조로 변환하여 저장할 필요가 있다. AD-XML은 활동 엘리먼트와 트랜지션 엘리먼트 두 가지로 구성된다. 모든 활동 엘리먼트는 공통적으로 이름(name) 속성을 가지며, 특수 활동 엘리먼트는 추가적으로 기능(function)과 초기 값 속성을 갖는다. 블럭 활동은 속성은 없으며 다른 엘리먼트를 하위 엘리먼트로 갖는다. 모든 트랜지션 엘리먼트는 공통적으로 출발, 도착 속성을 가지며, 로직 플로 트랜지션 엘리먼트는 추가적으로 로직 플로 유형 속성을 갖는다The first step is the creation and storage of the activity diagram. For the automatic generation of ladder code, it is necessary to convert and store graphically represented activity diagrams into computer-processable data structures. AD-XML consists of two elements: activity elements and transition elements. All activity elements have a name attribute in common, and special activity elements additionally have function and initial value attributes. Block activities have no attributes and have other elements as child elements. All transition elements have start and destination attributes in common, and logic flow transition elements additionally have logic flow type attributes.

제2 단계는 활동 다이어그램을 IOU로 분해하는 단계이다. IOU는 래더 다이어그램의 기본 단위인 렁에 대응하는데 입력 활동과 출력 활동 및 이들의 관계인 트랜지션의 조합으로 구성된다. 활동 다이어그램을 IOU 단위로 분해하는 방법은 다이어그램 내에서 오직 활동만을 입력과 출력으로 갖는 부분 집합들을 찾아내는 것이다. 즉, AD-XML에서 특정한 트랜지션을 기준으로 출발/도착 대상이 되는 활동들을 찾아서 묶은 단위가 IOU이다. 도 8은 본 발명의 일실시예에 따라 IOU로 분해된 활동 다이어그램의 예를 도시한 도면이다. 본 발명의 일실시예에 따르면, 하나의 활동 다이어그램이 다섯 개의 IOU로 분해될 수 있다.The second step is to break down the activity diagram into IOUs. The IOU corresponds to the rung, the basic unit of the ladder diagram, which consists of a combination of input and output activities and their relationships. The way to decompose an activity diagram into units of IOUs is to find subsets within the diagram that have only activity as input and output. In other words, IOU is a unit that finds and binds activities to be started / arrived based on a specific transition in AD-XML. 8 is a diagram illustrating an example of an activity diagram broken down into IOUs in accordance with one embodiment of the present invention. According to one embodiment of the invention, one activity diagram may be broken down into five IOUs.

본 발명의 일실시예에 따른 IOU-테이블 생성 방법은 다음과 같다. 우선, AD-XML로 저장된 활동 다이어그램의 각 트랜지션에서 오직 활동 엘리먼트만을 출발과 도착 속성 값으로 가지는 단일 트랜지션을 식별한다. 이후, 식별 과정에서 특정 트랜지션의 출발과 도착 속성 값으로 트랜지션 엘리먼트가 포함되면, 두 트랜지션을 묶어서 하나의 그룹화 트랜지션이라 한다. 이후, 단일 트랜지션(또는 그룹화 트랜지션)과 이에 연결된 입력 및 출력 활동의 3 가지를 구성 요소로 하는 IOU-테이블을 생성할 수 있다. A method of generating an IOU-table according to an embodiment of the present invention is as follows. First, in each transition of the activity diagram stored in AD-XML, we identify a single transition with only the activity element as the start and destination attribute values. Subsequently, when the transition element is included as the start and arrival attribute values of a specific transition in the identification process, the two transitions are collectively referred to as a grouping transition. Thereafter, an IOU-table can be created that consists of three components: a single transition (or a grouping transition) and the input and output activities connected to it.

표 1은 도 8의 활동 다이어그램을 ⓐ-ⓕ 트랜지션 중심으로 IOU를 생성한 결과를 나타내고 있다. 예를 들어, 행 4는 로직 플로 트랜지션 ⓓ-OJ와 또 다른 로직 플로트랜지션 ⓔ-AJ가 연속되는 경우로서 그룹화될 수 있고, B, E, D가 입력 활동이 되고 E가 출력 활동이 될 수 있다.Table 1 shows the result of generating an IOU based on the activity diagram of FIG. 8 in the ⓐ-ⓕ transition. For example, row 4 may be grouped as a case where the logic flow transitions ⓓ-OJ and another logic flow transition ⓔ-AJ are contiguous, where B, E, and D may be input activities and E may be an output activity. .

Figure 112009046901665-PAT00001
Figure 112009046901665-PAT00001

제3 단계는 IOU 유형의 결정 단계이다. 식별된 각 IOU는 해당되는 렁의 특성에 따라 도 9에 도시된 바과 같이 5가지 유형으로 구분된다. IOU는 크게 래더 다이어그램의 기본 구성 요소로 이루어진 단일 유형(Simple Type)과 단일 유형의 조합으로 표현할 수 있는 복합 유형(Complex Type)으로 구분될 수 있다.The third step is the determination of the type of IOU. Each identified IOU is classified into five types according to the characteristics of the corresponding rung as shown in FIG. 9. IOUs can be broadly divided into a single type consisting of the basic components of the ladder diagram and a complex type that can be expressed as a combination of a single type.

단일 유형은 매핑되는 렁 구조에 따라 유형-1에서 유형-4로 분화될 수 있다. 유형-1은 시작 활동이나 정지 활동을 포함한 IOU로 래더 다이어그램의 좌측/우측 파워레일로 변환될 수 있다. 유형-2는 가장 기본적인 IOU로 단일 점접과 단일코일로 구성된 렁으로 변환될 수 있다. 유형-3은 로직 플로트랜지션을 포함하는 IOU로써 병렬/순차, 합류/분기에 따른 로직 플로의 성격에 따라 유형-3-1(OR-Join), 유형-3-2 (AND-Join), 유형-3-3(AND-Split)으로 세분화 될 수 있다. 유형-4는 타이머나 카운터와 같은 기능 블럭을 포함하는 IOU로써, 입력으로 사용 될 때는 일반적인 접점으로 변환되고 출력으로 사용 될 때는 블록 형식으로 변환될 수 있다.A single type can be differentiated from type-1 to type-4 depending on the rung structure being mapped. Type 1 can be converted to the left / right power rails of the ladder diagram as an IOU with start or stop activity. Type 2 is the most basic IOU and can be converted to a rung consisting of a single point of contact and a single coil. Type-3 is an IOU that contains logic flow transitions. Type-3-1 (OR-Join), Type-3-2 (AND-Join), Type depending on the nature of the logic flow in parallel / sequential, confluence / branch. Can be subdivided into -3-3 (AND-Split). Type-4 is an IOU that contains functional blocks such as timers and counters, which can be converted to normal contacts when used as inputs and block types when used as outputs.

복합 유형은 다수의 로직 플로 트랜지션이 연속되는 경우이며, 이 경우에는 하나의 활동에 대한 선행 활동과 후행 활동을 한 번에 파악하기 어려우므로 다단계의 변환 과정이 필요하다. 우선, 로직 플로 트랜지션을 기준으로 입/출력 활동들을 하나로 그룹화 한 후에 이를 하나의 블록 활동으로 정의하여 매핑 과정을 시행한다. 그 후, 블록 활동에 들어 있는 각 요소들을 다시 단일 유형으로 매핑한다. 복합 유형의 경우, Join이 선행될 경우와 Split이 선행될 경우에 따라 그룹화 방법이 달라지므로 5-1유형(Join 선행)과 5-2유형(Split 선행)으로 세분화될 수 있다.Complex types are cases where multiple logic flow transitions are contiguous, in which case it is difficult to know the preceding and succeeding activities for one activity at a time, requiring a multi-step transformation process. First, I / O activities are grouped together based on logic flow transitions, and then defined as a block activity to implement the mapping process. Then, each element in the block activity is mapped back to a single type. In the case of a complex type, the grouping method is different depending on the case where Join is preceded and when Split is preceded, and thus it can be divided into 5-1 type (Join leading) and 5-2 type (Split leading).

도 10에 도시된 바와 같이, IOU-테이블이 생성된 후에 각 IOU의 유형은 다음과 같이 결정될 수 있다. As shown in FIG. 10, after the IOU-table is created, the type of each IOU may be determined as follows.

IOU-테이블 각 행의 트랜지션 열에서 소속된 트랜지션의 개수를 검색 한다. 상기 검색결과 트랜지션의 개수가 2개 이상일 경우 복합 유형으로 판단하여 IOU의 유형을 <유형 5>로 결정할 수 있다. 또한, 입력 및 출력 활동 열에서 기능 블럭이 포함되어 있는지를 검색한다. 상기 검색결과 상기 기능 블록이 포함되어 있는 경우, IOU의 유형을 <유형 4>로 결정할 수 있다. 또한, 입/출력 활동 열에 시작/정지 활동이 포함되어 있을 경우, IOU의 유형을 <유형 1>로 결정할 수 있다. Retrieve the number of transitions belonging to the transition column of each row of the IOU-table. If the number of transitions of the search result is two or more, it may be determined as a complex type and the type of IOU may be determined as <type 5>. It also searches for a function block in the input and output activity columns. If the search result includes the functional block, the type of IOU may be determined as <type 4>. In addition, if the I / O activity column contains start / stop activity, you can determine the type of IOU as <type 1>.

또한, 입력 활동의 개수가 출력 활동의 개수보다 많을 경우, 합류 로직으로 판단하여 도 10에 도시된 조건 (7)로 분기한다. 입력 및 출력 활동의 개수가 같은 경우 조건 (6)으로 분기하고, 그렇지 않은 경우 분기 로직으로 판단하여 IOU의 유형을 <유형 3-3>으로 결정한다. 또한, 입력 및 출력 활동의 개수가 하나만 존재하는 경우, 기본적인 IOU로 판단하여 <유형 2>로 결정하고, 그렇지 않은 경우 복합 유형으로 판단하여 IOU의 유형을 <유형 5>로 결정할 수 있다. 또한, 합류 로직 플로 트랜지션이 OR 로직이라면 IOU의 유형을 <유형 3-1>로 결정하고, 그렇지 않은 경우 AND 로직으로 판단하여 IOU의 유형을 <유형 3-2>로 결정할 수 있다.In addition, when the number of input activities is greater than the number of output activities, it is determined by the joining logic and branches to condition (7) shown in FIG. If the number of input and output activities is the same, branch to condition (6), otherwise determine to branch logic to determine the type of IOU as <type 3-3>. In addition, if there is only one number of input and output activities, it may be determined as a basic IOU and determined as <type 2>. Otherwise, it may be determined as a complex type and the type of an IOU may be determined as <type 5>. In addition, if the join logic flow transition is OR logic, the type of the IOU may be determined as <type 3-1>. Otherwise, the type of the IOU may be determined as <type 3-2>.

제4 단계는 레더 코드 자동생성 단계이다. 래더 코드 자동 생성은 도 7에 도시된 구성 요소 간의 매핑 관계와 도 9에 도시된 IOU-테이블의 각 행에 대한 5가지 유형별 래더 패턴 변환 방법을 통해 변환 가능하다. 단일 유형의 경우, IOU-테이블의 입력 활동은 렁의 입력부, 출력 활동은 출력부, 트랜지션은 입력부와 출력부간의 로직으로 변환하여 래더 코드를 생성할 수 있다.The fourth step is automatic ladder code generation. The automatic generation of the ladder code can be converted through the mapping relationship between the components shown in FIG. 7 and the five types of ladder pattern conversion methods for each row of the IOU-table shown in FIG. 9. For a single type, ladder code can be generated by converting the input activity of the IOU-table into the input of the rung, the output activity into the output, and the transition into logic between the input and the output.

하지만, 복합 유형은 추가적인 변환 단계가 필요하다. 즉, 그룹화를 통해서 복합 유형을 단일 유형으로 바꾸고 래더 코드를 자동 생성한 후 그룹화를 해제하여 그룹 내의 요소들을 다시 기본 래더 요소로 변환하는 계층적 변환 방법이 사용될 수 있다.However, complex types require additional conversion steps. In other words, a hierarchical conversion method may be used in which a complex type is changed to a single type through grouping, automatic generation of ladder code, and then degrouped to convert elements in the group into basic ladder elements.

복합 유형 중에서 Join 선행 유형 <5-1>은 로직 플로 트랜지션인 AND-Join 또는 OR-Join이 선행 트랜지션으로 사용되어 다른 로직 플로 트랜지션에 연결되는 경우이다. 이러한 경우에는 일단 후행 트랜지션에 대한 IOU를 구성하기 위해 선행 트랜지션에 연결된 모든 활동들을 포함하는 하나의 그룹을 만들 수 있다.Among the complex types, Join preceding type <5-1> is a case where a logic flow transition AND-Join or OR-Join is used as a preceding transition and connected to another logic flow transition. In this case, you can create a group that contains all the activities linked to the preceding transition once to form the IOU for the trailing transition.

도 11은 본 발명의 일실시예에 따른 Join 선행 복합 유형의 그룹화 방법을 도시한 도면이다. 도 11의 예제 활동 다이어그램은 연속되는 3개의 로직 플로 트랜지션(AJ, OJ, AS)과 6개의 활동으로 구성되어 있다. 그룹화는 연속되는 2개의 로직 플로 트랜지션을 대상으로 하는데, 도 11의 ⓐ와 같이 AJ와 OJ, 그리고 OJ와 AS가 그룹화의 대상이 될 수 있다. 즉, 두 번의 그룹화 과정이 필요하다. 우선 AJ와 OJ의 경우 AJ는 선행 트랜지션이고 OJ는 후행 트랜지션이다. 선행 트랜지션인 AJ에 연결된 활동 A와 B를 도 11 ⓐ의 GR1과 같이 그룹화 할 수 있다. 11 is a diagram illustrating a grouping method of a join preceding complex type according to an embodiment of the present invention. The example activity diagram of FIG. 11 consists of three consecutive logic flow transitions (AJ, OJ, AS) and six activities. Grouping targets two consecutive logic flow transitions. AJ and OJ, and OJ and AS may be the grouping targets as shown in FIG. 11. In other words, two grouping processes are required. First, in the case of AJ and OJ, AJ is the leading transition and OJ is the trailing transition. Activities A and B connected to the preceding transition AJ may be grouped as GR1 of FIG. 11.

하지만 1차 그룹화 결과가 아직도 복합 유형을 포함하므로 2차 그룹화가 필요하다. 2차 그룹화 대상이 되는 트랜지션은 OJ와 AS이다. OJ에 연결된 모든 활동이 후행하는 AS의 입력이 되기 위해 도 11의 ⓑ의 GR2와 같이 그룹화 한다. 2단계 그룹화 과정을 통해 도 11의 ⓒ와 같이 복합 유형을 단일 유형의 일종인 <유형3-3>으로 변환할 수 있다. 단일 유형으로 표현된 IOU는 도 11의 ⓓ와 같이 입력부가 GR2로 그룹화된 접점이고 출력부가 코일 E와 F가 되며 이들의 연결관계가 AND-Split인 렁을 생성한다. 생성된 렁의 그룹화된 구성 요소를 도 11의 ⓔ,ⓕ와 같이 그룹화를 단계적으로 해제하여 래더 코드를 완성한다.However, secondary grouping is needed because the primary grouping result still contains complex types. Transitions subject to secondary grouping are OJ and AS. All activities connected to the OJ are grouped as GR2 in ⓑ of FIG. Through the two-step grouping process, a complex type may be converted into a type <type-3-3> as shown in ⓒ of FIG. 11. The IOU expressed as a single type generates a rung whose inputs are grouped into GR2, the outputs are coils E and F, and their connection relationship is AND-Split, as shown in ⓓ of FIG. The grouped components of the generated rungs are released in stages as shown in ⓔ, ⓕ in FIG. 11 to complete the ladder code.

Split 선행 유형 <5-2>는 로직 플로 트랜지션인 AND-Split이 입력으로 다른 로직 플로 트랜지션에 연결되는 경우로 도 12와 같은 경우이다. 이 경우에는 도 12의 ⓐ와 같이 선행 트랜지션에 대한 IOU를 구성하기 위해 후행 트랜지션에 연결된 모든 활동을 포함하는 그룹을 만든다. 그룹화 과정을 통해 도 12의 ⓑ와 같이 복합 유형을 단일 유형의 일종인 <유형3-3>으로 변환한다. 이 후는 Join 선행의 경우와 동일하게 도 11의 ⓒ, ⓓ와 같이 렁을 생성하고 그룹화를 해제하여 단계적으로 래더 코드를 완성할 수 있다.Split preceding type <5-2> is a case in which a logic flow transition AND-Split is connected to another logic flow transition as an input, as shown in FIG. 12. In this case, as shown in ⓐ of FIG. 12, a group including all activities connected to the subsequent transition is created to form an IOU for the preceding transition. Through the grouping process, the complex type is converted into a single type <type 3-3> as shown in ⓑ of FIG. 12. Thereafter, as in the case of join joining, it is possible to complete the ladder code step by step by generating a rung and releasing grouping as shown in ⓒ and ⓓ of FIG. 11.

도 13은 본 발명의 일실시예에 따른 사례 대상 시스템으로 불량품의 식별/추출과 양품의 분류(금속제품/비금속제품) 및 계수를 수행하는 컨베이어 기반 물류 핸들링 시스템의 구조를 도시하고 있다. FIG. 13 illustrates a structure of a conveyor-based logistics handling system for performing identification / extraction of defective items and classification of non-defective products (metal products / non-metal products) and counting as a case object system according to an embodiment of the present invention.

이 중에서 불량품 추출 기능을 자세히 살펴보면, 제품은 일정한 간격으로 컨베이어를 따라 흐르다가 양품/불량품을 식별하는 위치에 도착하면 2개의 광센서에 의해 불량품을 식별한다. 양품/불량품은 제품의 높이에 따라 구분하는데 정해진 규격보다 낮거나 높은 제품은 불량품이 된다.If we take a closer look at the defect extraction function, the product flows along the conveyor at regular intervals, and when it arrives at the position for identifying good or bad, two light sensors identify the bad. Good or bad products are classified according to the height of the product. Products lower or higher than the specified standard will be defective.

즉, 동일한 지점에 설치되어 있는 '높은 위치 센서'(High_Sensor)와 '낮은 위치 센서'(Low_Sensor) 중에서 '낮은 위치 센서'만 감지한 제품이 양품으로 판정된다. 나머지 경우는 불량으로 판정된다. 불량으로 판정된 제품은 추출 실린더(Extract_Cyd)에 의해 추출된다. 불량품을 판정하기 위해서는 두 가지 위치 센서의 상태를 관리하여야 하므로 '높은 위치 메모리'(High_Memory)와 '낮은 위치 메모리'(Low_Memory) 변수를 사용한다. 이 사례에서는 불량품을 추출하기 위해 '추출 위치 센서'(Extract_Sensor)와 메모리 변수의 초기화를 위해 '양품감지 근접스위치'(Ok_Limit Switch)를 사용한다. 불량품 추출 시나리오을 표현한 제어 로직은 다음과 같다:That is, a product that detects only the 'low position sensor' among the 'high position sensor' and 'low position sensor' installed at the same point is determined as good. In other cases, it is determined to be defective. The product determined to be defective is extracted by the extraction cylinder Extract_Cyd. In order to determine the defective product, the state of the two position sensors must be managed, so the variables of 'High_Memory' and 'Low_Memory' are used. In this case, we use 'Extract_Sensor' to extract the defective product and 'Ok_Limit Switch' to initialize the memory variable. The control logic representing the reject extraction scenario is as follows:

1) IF (((High_Sensor=on) .or. (High_Memory=set)) .and. (Extract_Cyd=NOT on)) THEN (High_ Memory= set).1) IF (((High_Sensor = on) .or. (High_Memory = set)) .and. (Extract_Cyd = NOT on)) THEN (High_ Memory = set).

2) IF (((Low_Sensor=on) .or. (Low_Memory=set)) .and. (Extract_Cyd=NOT on) .and. (OK_LimitSwitch=NOT on)) THEN (Low_Memory=set).2) IF (((Low_Sensor = on) .or. (Low_Memory = set)) .and. (Extract_Cyd = NOT on) .and. (OK_LimitSwitch = NOT on)) THEN (Low_Memory = set).

3) IF (Extract_Cyd=on) .and. ((High_Memory = set .and. Low_Memory=set) .or. (High_Memory=NOT set .and. Low_Memory=NOT set)) THEN (Extract_Cyd=on).3) IF (Extract_Cyd = on) .and. ((High_Memory = set .and. Low_Memory = set) .or. (High_Memory = NOT set .and. Low_Memory = NOT set)) THEN (Extract_Cyd = on).

도 14는 본 발명의 일실시예에 따라 불량품 추출 시나리오의 제어 로직을 활동 다이어그램으로 설계한 도면이다. 이러한 방법으로 설계된 제어로직을 기반으로 자동생성 기능을 이용하면 도 15와 같은 래더 로직이 생성될 수 있다.14 is a diagram illustrating an activity diagram of control logic of a defective article extraction scenario according to an embodiment of the present invention. Using the automatic generation function based on the control logic designed in this way, ladder logic as shown in FIG. 15 may be generated.

상기 생성된 래더 다이어그램이 불량품 추출 시나리오를 정확하게 표현하고 있으며 논리적 오류가 없는지를 검증하기 위해 시뮬레이션이 필요하다. 개발된 시스템에서는 "GM-Win"과 같은 상업용 PLC 코드 생성 프로그램에서 많이 사용되는 입력 접점에 대한 출력 코일 값의 변화에 대한 시뮬레이션 기능을 제공한다. Simulation is required to verify that the generated ladder diagram accurately represents the reject extraction scenario and that there are no logical errors. The developed system provides a simulation function for changes in output coil values for input contacts commonly used in commercial PLC code generation programs such as "GM-Win".

도 15에서는 생성된 코드에 대해 특정 입력 포트의 ON-OFF 상태 변화에 대한 출력 포트들의 변화를 통한 시뮬레이션 과정을 나타내고 있다. 상기 시뮬레이션 과정에서 입력포트의 ON은 사각형 점으로, 출력 포트의 ON은 원형 점으로 나타나고 있다. 사례 시스템에 대한 입/출력 포트 시뮬레이션의 결과 자동 생성된 래더 코드는 실무자가 현장에서 작성하는 방식과 흡사한 오류 없는 코드가 생성됨을 확인할 수 있다.FIG. 15 illustrates a simulation process through change of output ports to ON-OFF state change of a specific input port for the generated code. In the simulation process, the ON of the input port is represented by a square point, and the ON of the output port is represented by a circular point. Ladder code generated automatically as a result of the input / output port simulation for the case system can be verified to produce error-free code similar to the way the practitioner writes in the field.

본 발명에 따른 PLC 래더 로직 설계 및 래더 코드 생성방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.PLC ladder logic design and ladder code generation method according to the present invention can be implemented in the form of program instructions that can be executed by various computer means can be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. The medium may be a transmission medium such as an optical or metal line, a wave guide, or the like, including a carrier wave for transmitting a signal designating a program command, a data structure, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above-described embodiments, which can be variously modified and modified by those skilled in the art to which the present invention pertains. Modifications are possible. Accordingly, the spirit of the present invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications thereof will belong to the scope of the present invention.

도 1은 본 발명의 일실시예에 따른 PLC 래더 코드 생성도구의 구성을 도시한 블록도.1 is a block diagram showing the configuration of a PLC ladder code generation tool according to an embodiment of the present invention.

도 2는 본 발명의 일실시예에 따른 PLC 래더 로직 설계 및 PLC 래더 코드 생성방법의 흐름을 도시한 순서도.2 is a flow chart showing the flow of the PLC ladder logic design and PLC ladder code generation method according to an embodiment of the present invention.

도 3은 본 발명의 일실시예에 따라 컨트롤 플로우에 대한 래더 다이어그램 및 활동 다이어그램을 비교한 도면.3 is a comparison of a ladder diagram and an activity diagram for a control flow in accordance with one embodiment of the present invention.

도 4는 본 발명의 일실시예에 따른 활동 다이어그램의 트랜지션의 유형을 도시한 도면.4 illustrates the types of transitions in an activity diagram in accordance with one embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 활동 다이어그램으로 설계한 제어 로직을 도시한 도면. FIG. 5 illustrates control logic designed with activity diagrams in accordance with one embodiment of the present invention. FIG.

도 6은 도 5를 래더 다이어그램으로 변환한 도면.FIG. 6 is a diagram of FIG. 5 converted to a ladder diagram. FIG.

도 7은 본 발명의 일실시예에 따른 활동 다이어그램 및 래더 다이어그램 구성 요소 간의 매핑 관계를 도시한 도면.FIG. 7 illustrates a mapping relationship between activity diagram and ladder diagram components in accordance with one embodiment of the present invention. FIG.

도 8은 본 발명의 일실시예에 따라 IOU로 분해된 활동 다이어그램의 예를 도시한 도면.8 shows an example of an activity diagram broken down into IOUs in accordance with one embodiment of the present invention.

도 9는 본 발명의 일실시예에 따른 IOU의 유형을 도시한 도면.9 illustrates the types of IOUs in accordance with an embodiment of the present invention.

도 10은 본 발명의 일실시예에 따른 IOU 유형의 결정 방법의 흐름을 도시한 순서도.10 is a flowchart illustrating a flow of a method of determining an IOU type according to an embodiment of the present invention.

도 11은 본 발명의 일실시예에 따른 Join 선행 복합 유형의 그룹화 방법을 도시한 도면.FIG. 11 is a diagram illustrating a grouping method of a join preceding complex type according to an embodiment of the present invention. FIG.

도 12는 본 발명의 일실시예에 따른 Split 선행 복합 유형의 그룹화 방법을 도시한 도면.12 illustrates a grouping method of Split preceding complex types according to an embodiment of the present invention.

도 13은 본 발명의 일실시예에 따른 사례 대상 시스템으로 불량품의 식별/추출과 양품의 분류(금속제품/비금속제품) 및 계수를 수행하는 컨베이어 기반 물로 핸들링 시스템의 구조를 도시한 도면.FIG. 13 is a view illustrating a structure of a handling system with a conveyor-based water that performs identification / extraction of defective items and classification of non-defective products (metal products / non-metal products) and counting as a case object system according to an embodiment of the present invention.

도 14는 본 발명의 일실시예에 따라 불량품 추출 시나리오의 제어 로직을 활동 다이어그램으로 설계한 도면.14 is a diagram illustrating an activity diagram of control logic of a defective article extraction scenario according to an embodiment of the present invention.

도 15는 본 발명의 일실시예에 따라 생성된 코드에 대해 특정 입력 포트의 ON-OFF 상태 변화에 대한 출력 포트들의 변화를 통한 시뮬레이션 과정을 도시한 도면.FIG. 15 is a diagram illustrating a simulation process through change of output ports for ON-OFF state change of a specific input port for a code generated according to one embodiment of the present invention. FIG.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100: 래더 코드 생성장치100: ladder code generator

110: 활동 다이어그램 편집기110: Activity Diagram Editor

120: 래더 다이어그램 생성기120: ladder diagram generator

130: 래더 다이어그램 편집기130: ladder diagram editor

140: 입출력 포트 시뮬레이션기140: I / O port simulator

Claims (7)

UML(Unified Modeling Language) 활동 다이어그램을 통해 제조 시스템의 제어 로직을 설계하는 단계;Designing control logic of the manufacturing system via a Unified Modeling Language (UML) activity diagram; 상기 설계된 상기 제어 로직을 기반으로 래더 코드(Ladder Code)를 생성하는 단계; 및Generating a ladder code based on the designed control logic; And 상기 생성된 상기 래더 코드의 특정 입력 접점의 상태 변화에 따른 출력 코일의 상태 변화를 시뮬레이션하여 상기 래더 코드의 로직 오류를 검증하는 단계Verifying a logic error of the ladder code by simulating a state change of an output coil according to a state change of a specific input contact of the generated ladder code 를 포함하는 것을 특징으로 하는 PLC(Programmable Logic Controller) 래더 로직 설계 및 래더 코드 생성방법.Programmable Logic Controller (PLC) ladder logic design and ladder code generation method comprising a. 제1항에 있어서,The method of claim 1, 상기 UML 활동 다이어그램의 트랜지션은, 일반 트랜지션(Normal Transition), NOT 트랜지션, 및 로직 플로 트랜지션을 포함하고, 상기 NOT 트랜지션은 폐접점을 표현하는 역입력 트랜지션(Not Transition-IN), 및 역코일을 표현하는 역출력 트랜지션(Not Transition-OUT)를 포함하며, 상기 로직 플로 트랜지션은 로직 흐름의 병렬/순차 및 합류/분기에 따라 분류되는 OR-Join, AND-Join, 및 AND-Split를 포함하는 것을 특징으로 하는 PLC 래더 로직 설계 및 래더 코드 생성방법.The transition of the UML activity diagram includes a normal transition, a NOT transition, and a logic flow transition, wherein the NOT transition represents a Not Transition-IN representing a closed contact, and a reverse coil. And a Not-Transition-OUT, wherein the logic flow transition includes OR-Join, AND-Join, and AND-Split classified according to parallel / sequential and confluence / branch of logic flow. PLC ladder logic design and ladder code generation method. 제1항에 있어서,The method of claim 1, 상기 설계된 상기 제어 로직을 기반으로 래더 코드(Ladder Code)를 생성하는 단계는,Generating a ladder code (Ladder Code) based on the designed control logic, 그래픽으로 표현되는 활동 다이어그램을 AD-XML을 통해 XML 구조로 저장하는 단계;Storing the activity diagram represented graphically as an XML structure through AD-XML; 상기 AD-XML로 표현되는 상기 활동 다이어그램을 IOU(Input Output Unit) 단위로 분해하고, 2차원 테이블로 구현되는 IOU-테이블을 통해 상기 활동 다이어그램이 분해된 상기 IOU를 저장하는 단계;Decomposing the activity diagram expressed in the AD-XML into an input output unit (IOU) unit and storing the IOU in which the activity diagram is decomposed through an IOU-table implemented as a two-dimensional table; 상기 IOU-테이블을 통해 저장된 상기 각 IOU의 유형을 해당되는 렁(lung)의 특성에 따라 결정하는 단계; 및Determining the type of each IOU stored through the IOU-table according to the characteristics of a corresponding rung; And 상기 각 IOU의 유형에 따라 래더 코드를 생성하는 단계Generating a ladder code according to the type of each IOU 를 포함하는 것을 특징으로 하는 PLC 래더 로직 설계 및 래더 코드 생성방법.PLC ladder logic design and ladder code generation method comprising a. 제3항에 있어서,The method of claim 3, 상기 IOU의 유형은 단일 유형(Simple Type) 및 복합 유형(Complex Type)을 포함하고, 상기 단일 유형은 시작활동이나 정지활동을 포함하는 제1 단일유형, 단일 접점과 단일 코드로 구성된 렁으로 변환되는 제2 단일유형, 로직 플로 트랜지션을 포함하는 제3 단일유형, 타이머나 카운터 등의 기능 블록을 포함하는 제4 단일유형을 포함하며, 상기 복합 유형은 Join이 선행되는 제1 복합유형 및 Split가 선행되는 제2 복합유형을 포함하는 것을 특징으로 하는 PLC 래더 로직 설계 및 래더 코드 생성방법.The type of IOU includes a single type and a complex type, wherein the single type is converted into a rung consisting of a first single type, a single point of contact and a single code including start or stop activities. A second single type, a third single type including a logic flow transition, a fourth single type including a functional block such as a timer or a counter, wherein the complex type is preceded by a first complex type and a Split preceded by a Join PLC ladder logic design and ladder code generation method comprising a second complex type. 제3항에 있어서,The method of claim 3, 상기 각 IOU의 유형에 따라 래더 코드를 생성하는 단계는,Generating ladder code according to the type of each IOU, 상기 IOU의 유형이 단일 유형인 경우, 상기 IOU-테이블의 입력 활동을 렁의 입력부, 출력 활동은 출력부, 트랜지션은 상기 입력부 및 상기 출력부 간의 로직으로 변환하여 상기 래더 코드를 생성하는 단계Generating the ladder code by converting the input activity of the IOU-table into an input unit of a rung, an output activity to an output unit, and a transition to logic between the input unit and the output unit when the type of the IOU is a single type 를 포함하는 것을 특징으로 하는 PLC 래더 로직 설계 및 래더 코드 생성방법.PLC ladder logic design and ladder code generation method comprising a. 제3항에 있어서,The method of claim 3, 상기 각 IOU의 유형에 따라 래더 코드를 생성하는 단계는,Generating ladder code according to the type of each IOU, 상기 IOU의 유형이 복합 유형인 경우, 그룹화를 통해 상기 복합 유형을 단일 유형으로 변환하는 단계; 및If the type of the IOU is a complex type, converting the complex type into a single type through grouping; And 래더 코드를 생성한 후 그룹화를 해제하여 그룹 내의 요소들을 기본 래더 요소로 변환하는 단계After generating the ladder code, ungrouping to convert the elements in the group to the default ladder element. 를 포함하는 것을 특징으로 하는 PLC 래더 로직 설계 및 래더 코드 생성방법.PLC ladder logic design and ladder code generation method comprising a. 제1항 내지 제6항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록 한 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 6.
KR1020090070027A 2009-07-30 2009-07-30 Method of designing programmable logic controller ladder logic and generating ladder code KR20110012342A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090070027A KR20110012342A (en) 2009-07-30 2009-07-30 Method of designing programmable logic controller ladder logic and generating ladder code
PCT/KR2010/000380 WO2011013884A1 (en) 2009-07-30 2010-01-21 Plc ladder logic layout and ladder code generation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090070027A KR20110012342A (en) 2009-07-30 2009-07-30 Method of designing programmable logic controller ladder logic and generating ladder code

Publications (1)

Publication Number Publication Date
KR20110012342A true KR20110012342A (en) 2011-02-09

Family

ID=43529518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090070027A KR20110012342A (en) 2009-07-30 2009-07-30 Method of designing programmable logic controller ladder logic and generating ladder code

Country Status (2)

Country Link
KR (1) KR20110012342A (en)
WO (1) WO2011013884A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650861A (en) * 2012-05-04 2012-08-29 深圳市矩形科技有限公司 PLC ladder diagram code hardware problem solving method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238444B (en) * 2014-09-30 2017-01-11 郑州众智科技股份有限公司 Generator set controller based PLC (programmable logic controller) ladder diagram generation method
US20180095447A1 (en) * 2016-09-30 2018-04-05 Omron Corporation Program development supporting apparatus, program development supporting method, and program development supporting program
CN109245848B (en) * 2017-07-10 2021-03-16 中兴通讯股份有限公司 Ladder code decoding method and ladder code decoding device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266417A (en) * 1993-03-11 1994-09-22 Natl Aerospace Lab Work plan determining system
JP3426405B2 (en) * 1994-06-28 2003-07-14 株式会社神戸製鋼所 Sequence program creation device
KR100211962B1 (en) * 1996-12-11 1999-08-02 정선종 Mono input/output sequence generating method
KR100428890B1 (en) * 2001-12-21 2004-04-29 주식회사 포스코 Method for Drafting Ladder Diagram Using Petri Net

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102650861A (en) * 2012-05-04 2012-08-29 深圳市矩形科技有限公司 PLC ladder diagram code hardware problem solving method
CN102650861B (en) * 2012-05-04 2015-04-15 深圳市矩形科技有限公司 PLC ladder diagram code hardware problem solving method

Also Published As

Publication number Publication date
WO2011013884A1 (en) 2011-02-03

Similar Documents

Publication Publication Date Title
CN104166942B (en) Trans-regional supply district searching method and its system based on CIM
US10496046B2 (en) Systems and methods for optimizing control systems for a process environment
US20050278670A1 (en) Mechanical-electrical template based method and apparatus
CN102508654A (en) Method for designing ladder diagram editing software of embedded PLC (Programmable Logic Controller)
CN105279089B (en) A kind of method and device for obtaining page elements
KR20110012342A (en) Method of designing programmable logic controller ladder logic and generating ladder code
Tichy et al. Multiagent technology for fault tolerance and flexible control
CN112487648B (en) Multi-dimensional structured data creation method based on aerospace product features
Jee et al. FBDVerifier: Interactive and visual analysis of counter-example in formal verification of function block diagram
US10346584B2 (en) Method for generating plant topology model data
Koltun et al. Automated generation of modular PLC control software from P&ID diagrams in process industry
Koziolek et al. Industrial plant topology models to facilitate automation engineering
CN102520953A (en) Page generating method based on BPMN (business process modeling notation) and device
CN103885810A (en) Gerber file compiler based on regular expressions
JP2020537358A (en) Component polarity detection methods, systems, computer-readable storage media and devices
Mordinyi et al. Investigating model slicing capabilities on integrated plant models with AutomationML
Jeon et al. Development of a system for visualization of the plant 3D design data based on ISO 15926
Lüder et al. Lossless exchange of graph based structure information of production systems by AutomationML
CN114089709B (en) Cross-domain multi-scale digital twin body construction method
US10902170B2 (en) Method for computer assisted planning of a technical system
CN102508691A (en) Graphic language program ordered decomposition method and ordered decomposer
Lüder et al. Data exchange toward plc programming and virtual commissioning: Is automationml an appropriate data exchange format?
Lüder et al. Lossless exchange of automation project configuration data
Lüder et al. Validation of behavior specifications of production systems within different phases of the engineering process
CN111221835B (en) Data processing method and device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
SUBM Surrender of laid-open application requested