KR20110077288A - System for providing programable logic controller software development environment - Google Patents

System for providing programable logic controller software development environment Download PDF

Info

Publication number
KR20110077288A
KR20110077288A KR1020090133811A KR20090133811A KR20110077288A KR 20110077288 A KR20110077288 A KR 20110077288A KR 1020090133811 A KR1020090133811 A KR 1020090133811A KR 20090133811 A KR20090133811 A KR 20090133811A KR 20110077288 A KR20110077288 A KR 20110077288A
Authority
KR
South Korea
Prior art keywords
module
data
plc
plc software
modules
Prior art date
Application number
KR1020090133811A
Other languages
Korean (ko)
Other versions
KR101085114B1 (en
Inventor
김용수
강교철
양진석
이종현
박영복
Original Assignee
주식회사 포스코
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 포스코 filed Critical 주식회사 포스코
Priority to KR1020090133811A priority Critical patent/KR101085114B1/en
Publication of KR20110077288A publication Critical patent/KR20110077288A/en
Application granted granted Critical
Publication of KR101085114B1 publication Critical patent/KR101085114B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE: A PLC software development environment providing system is provided to modularize a PLC software in an object-oriented point of view, segment a module in a top-down mode, remove inter-module dependence to develop software with improved legibility and reusability and make the software resources. CONSTITUTION: A module generating unit generates a module used for a PLC(Programmable Logic Controller) software. An architecture configuration unit layers modules comprising the PLC software. A data model generating unit processes data used in each module and generates a data model having a structure in which the access of other modules except for a corresponding module is restricted. A storage unit(200) stores the module and the data model generated by a PLC software machine(100).

Description

피엘씨 소프트웨어 개발환경 제공 시스템{SYSTEM FOR PROVIDING PROGRAMABLE LOGIC CONTROLLER SOFTWARE DEVELOPMENT ENVIRONMENT}PLC software development environment providing system {SYSTEM FOR PROVIDING PROGRAMABLE LOGIC CONTROLLER SOFTWARE DEVELOPMENT ENVIRONMENT}

본 발명은 피엘씨(PLC, Programmable Logic Controller) 소프트웨어 개발환경 제공 시스템에 관한 것으로, 보다 상세하게는 판독성, 재사용성 및 유지보수성이 우수한 PLC 소프트웨어의 개발을 지원하기 위한 피엘씨 소프트웨어 개발환경 제공 시스템에 관한 것이다.The present invention relates to a system for providing a programmable logic controller (PLC) software development environment, and more particularly, to a system for providing a PLC software development environment for supporting the development of PLC software having excellent readability, reusability, and maintainability. It is about.

일반적으로, 프로그램 가능한 논리 제어기(Programmable Logic Controller, 이하, 'PLC'라 한다)는 디지털 또는 아날로그 입출력모듈을 통하여 릴레이, 타이머, 카운터 등의 기능을 활용하여 시퀀스 제어(sequence control)를 기본 기능으로 하고, 데이터 연산, 산술 연산 및 데이터 전송 등이 기능 추가로 피드백 제어(feedback control)도 가능하도록 PLM(Programmable Logic Memory)을 사용하여 여러 종류의 기계 설비를 직접 제어하는 디지털 전자장치로서, 철강제조 현장에서 제품 생산 및 공장 자동화 등에 필수적으로 사용되는 핵심장치이다. In general, a programmable logic controller (PLC) is a basic function that utilizes functions such as relays, timers, and counters through digital or analog I / O modules. It is a digital electronic device that directly controls various kinds of mechanical equipment by using PLM (Programmable Logic Memory) to enable feedback control with additional functions such as data operation, arithmetic operation and data transmission. It is a core device that is essential to product production and factory automation.

PLC의 프로그램 언어로는, LD(Ladder Diagram), FBD(Function Block Diagram), IL(Instruction List), ST(Sturcture Text), SFC(Sequential Function Charts) 등이 있다.PLC programming languages include LD (Ladder Diagram), Function Block Diagram (FBD), Instruction List (IL), Structure Text (ST), Sequential Function Charts (SFC), and the like.

일반적인 프로그램의 구조 및 제어로직처리 방법은 입력 데이터 읽기 과정을 통해 입력의 상태를 PLC의 CPU가 인식하고 인식된 정보를 조건 또는 데이터로 이용하여 프로그램 처음부터 마지막까지 순차적으로 연산을 실행하고 출력 데이터 쓰기를 실행한다.In general program structure and control logic processing method, the input CPU reads the status of input through the process of reading input data, and executes the operation sequentially from the beginning to the end of the program using the recognized information as the condition or data and writes the output data. Run

일반적으로 철강 공정의 PLC는, 도 1에 도시된 바와 같이, 입력 모듈을 통해 데이터가 입력되면 시스템 상태 점검 모듈에서 시스템의 상태를 진단하여 비정상 상태이면 에러처리를 하고 정상 상태이면 설비 제어 모듈에서 현장 설비 제어를 위한 로직을 처리한다. 설비 제어 모듈은 제어 대상 설비별로 설비 상태 점검, 각종 제어 모드 결정 및 연산을 수행하고, 대상 구동기 제어를 위한 로직을 처리한다. 그리고, 모든 설비에 대한 제어 모듈이 수행된 후에는 데이터 쓰기를 통해 신호를 출력하게 된다.In general, the PLC of the steel process, as shown in Figure 1, when the data is input through the input module, the system status check module diagnoses the state of the system to handle the error if the abnormal state and in the facility control module if the normal state Process logic for facility control. The facility control module performs facility status checks, various control modes, and calculations for each facility to be controlled, and processes logic for controlling the target driver. After the control module for all the facilities is performed, a signal is output through data writing.

그러나, 철강 공정에는 다양한 기종의 PLC가 도입되고 있으며, PLC 소프트웨어는 하드웨어 및 개발 환경에 영향을 많이 받으므로 유사 공정간 PLC 소프트웨어에도 많은 차이가 발생하고, 개발자의 차이로 인해 유사 공정간 PLC 소프트웨어도 상이하게 된다. 이로 인해, 설비 개선, 신강종 개발시 PLC 소프트웨어 변경에 많은 인력과 시간이 소요되며 PLC 소프트웨어의 유지보수성도 저하된다. 그리고, 제어 코드의 수정은 직접 관련된 작업자가 동반되지 않는 한 기존 정보를 재사용 및 수정하는 것이 매우 어려운 것이 현실이다. 또한, 외부 환경의 작은 변화에 따라서 동일한 기능을 수행하더라도 PLC 소프트웨어 모듈간 상호 호환되지 못하고, 불필요 한 중복 개발로 비용과 시간이 소모되고, PLC 소프트웨어 모듈간 공통된 구조가 마련되어 있지 않아 PLC 소프트웨어의 자산화가 어렵고, PLC 소프트웨어 코드의 판독성이 낮다.However, various types of PLCs are introduced in the steel process, and since PLC software is affected by hardware and development environment, there are many differences in PLC software between similar processes. Will be different. As a result, it requires a lot of manpower and time to improve facilities and change PLC software when developing new steel grades, and also reduce the maintainability of PLC software. In addition, the modification of the control code is a reality that it is very difficult to reuse and modify the existing information unless a directly related worker is accompanied. In addition, even if the same function is performed according to a small change in the external environment, PLC software modules are not compatible with each other, unnecessary redundancy is developed, cost and time are consumed, and PLC software modules have no common structure. Difficult, low readability of PLC software code.

종래의 PCL 소프트웨어는 제어에 필요한 데이터를 관리하고 모듈들 사이의 데이터 전달을 위한 방법으로 PLC 소프트웨어에서 일반적으로 사용되는 전역 메모리를 사용한다.Conventional PCL software uses the global memory commonly used in PLC software as a method for managing the data required for control and for transferring data between modules.

도 2는 PLC 소프트웨어의 일반적인 데이터 관리 구조를 나타낸 블록도로, 전역 메모리에 대한 편리한 접근성 때문에 개발자들은 최적화된 프로그램을 작성할 수 있지만, 적절한 제한과 규칙없이 사용함으로써 모듈들 사이에는 높은 결합성(coupling)이 발생한다. 높은 결합성은 프로그램의 유지ㆍ보수성을 낮추고, 판독성 및 재사용성을 저해하는 요인으로 작용한다.Fig. 2 is a block diagram showing the general data management structure of PLC software. Because of the convenient accessibility to global memory, developers can write optimized programs, but without appropriate restrictions and rules, there is a high coupling between modules. Occurs. High coupling reduces the maintenance and maintainability of the program, and acts as a deterrent to readability and reusability.

전역 메모리를 사용하는 데이터 관리 구조를 바탕으로 프로그램의 판독성을 향상시키기 위하여 프로그램을 구성하는 모듈은, 도 3에 도시된 바와 같이, 각 모듈에 사용되는 변수를 저장하기 위해 대응되는 물리적 또는 논리적 저장소를 가지고 있다. 예를 들어, 도 3에서 모듈1은 자신의 구현에 사용될 변수를 저장하기 위한 메모리 블록1의 지역저장소를 할당한다. 도 3과 같은 대응관계를 유지함으로써 개발자는 프로그램에 사용되는 메모리 블럭의 이름을 이용하여 메모리 번지의 의미를 추적할 수 있다. 메모리 번지 주소와 함께 각 메모리 번지에 부여되는 심볼 이름은 개발자에게 더욱 높은 판독성을 제공해 준다. Modules constituting the program to improve the readability of the program based on the data management structure using the global memory, as shown in FIG. 3, have a corresponding physical or logical storage to store variables used in each module. Have. For example, in Figure 3 module 1 allocates a local repository of memory block 1 to store variables to be used in its implementation. By maintaining the correspondence as shown in FIG. 3, the developer can track the meaning of the memory address using the name of the memory block used in the program. The symbol names given to each memory address along with the memory address address provide developers with higher readability.

하지만, 여전히 하나의 모듈에서 자신의 저장소 이외의 다른 저장소에 존재 하는 데이터를 어떤 제약 없이 접근할 수 있기 때문에, 판독성, 재사용성, 유지보수성의 문제를 근본적으로 해결할 수 없다.However, since a module can still access data existing in a storage other than its own storage without any limitation, it cannot fundamentally solve the problems of readability, reusability, and maintainability.

본 발명은, PLC 개발 환경의 차이, PLC 소프트웨어 개발자의 선호도, 외부 환경 변화 등에 따라서 다르게 개발되는 PLC 소프트웨어를 객체지향적 관점에서 모듈화하고 탑-다운(top-down) 방식으로 모듈을 세분화하고 모듈간 의존성을 제거하여 판독성, 재사용성이 향상된 소프트웨어를 개발하여 자원화하고 이를 기반으로 신규한 소프트웨어 개발 및 소프트웨어 유지보수작업을 수행할 수 있는 환경을 제공함으로써 소프트웨어 개발시간 및 유지보수작업 시간을 단축시킬 수 있고, 소프트웨어의 유지보수성을 향상시킬 수 있는 피엘씨 소프트웨어 개발환경 제공 시스템을 제공하는데, 그 목적이 있다.According to the present invention, PLC software, which is developed differently according to differences in PLC development environment, preference of PLC software developer, external environment, etc., can be modularized in an object-oriented perspective, and the modules are subdivided in a top-down manner, and the dependencies between modules are used. It can reduce the software development time and maintenance time by providing the environment to develop and resource the software with improved readability and reusability, and to perform new software development and software maintenance work based on it. The purpose of the present invention is to provide a PRC software development environment providing system that can improve the maintainability of the software.

본 발명의 일 태양에 따른 피엘씨 소프트웨어 개발환경 제공 시스템은, PLC 소프트웨어에 사용되는 모듈을 생성하는 모듈 생성부, PLC 소프트웨어를 구성하는 모듈들을 계층화하는 아키텍처 구성부 및 각 모듈에서 사용하는 데이터를 가공하여 해당 모듈 이외의 다른 모듈의 접근이 제한된 구조의 데이터 모델을 생성하는 데이터 모델 생성부를 포함하는 PLC 소프트웨어 작성기와, 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈 및 데이터 모델을 저장하는 저장소를 포함하는 것을 특징으로 한다.The PLC software development environment providing system according to an aspect of the present invention includes a module generation unit for generating a module used for PLC software, an architecture configuration unit for layering modules constituting PLC software, and processing data used in each module. And a PLC software writer including a data model generator for generating a data model of a structure in which access of other modules other than the corresponding module is restricted, and a storage for storing the module and the data model generated by the PLC software writer. It is done.

상기 모듈 생성부는, 모듈에 할당된 프로그램과 타스크 및 각 모듈의 세부 설계를 입력하는 환경을 제공하고 상기 제공에 대응하여 입력되는 내용을 토대로 모듈을 생성하는 것을 특징으로 한다. The module generation unit may provide an environment for inputting a program and a task assigned to the module and a detailed design of each module, and generate a module based on the input contents corresponding to the provision.

상기 아키텍처 생성부는, HMI 계층, 설비 관리자 계층, 라이브러리 계층, 네트워크 관리자 계층 및 시스템 함수 계층으로 구성되는 PLC 소프트웨어 프레임워크를 제공하며, 상기 PLC 소프트웨어 프레임워크를 기반으로 PLC 소프트웨어를 구성하는 모듈들을 계층화하는 것을 특징으로 한다. The architecture generating unit provides a PLC software framework including an HMI layer, a facility manager layer, a library layer, a network manager layer, and a system function layer, and layeres modules constituting PLC software based on the PLC software framework. It is characterized by.

상기 HMI 계층은, 프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 인터페이스를 담당하는 모듈을 포함하는 것을 특징으로 한다.The HMI layer may include a module that manages an interface between a program logic controller (PLC) and a facility to be controlled.

상기 설비 관리자 계층은, 제어 대상 설비의 움직임 제어를 담당하는 모듈을 포함하는 것을 특징으로 한다. The facility manager hierarchy is characterized in that it comprises a module in charge of the movement control of the facility to be controlled.

상기 라이브러리 계층은, 제어 대상 설비의 동작 시퀀스 제어 및 데이터 처리를 담당하는 모듈을 포함하는 것을 특징으로 한다. The library layer may include a module in charge of controlling an operation sequence and data processing of a facility to be controlled.

상기 네트워크 관리자 계층은, 프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 통신을 담당하는 모듈을 포함하는 것을 특징으로 한다. The network manager layer may include a module that is in charge of communication between a program logic controller (PLC) and a facility to be controlled.

상기 데이터 모델 생성부는, 각 모듈에서 사용하는 데이터를 입출력 데이터와, 다른 모듈에서 사용하는 해당 모듈의 데이터인 참조 데이터와 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터로 구분하고, 입출력 데이터 및 인터페이스 데이터를 해당 모듈로 복사하여 해당 모듈에 존재하는 참조 데이터와 함께 데이터 모델을 구성하는 것을 특징으로 한다. The data model generation unit divides data used in each module into input / output data, reference data which is data of a corresponding module used in another module, and interface data which is data of another module used in the corresponding module. Copy the data to the module and configure the data model together with the reference data existing in the module.

상기 저장소는, 상기 데이터 모델을 해당 데이터 모델에 접근이 허용된 해당 모듈에 맵핑시키어 저장하는 것을 특징으로 한다.The storage may store the data model by mapping the data model to a corresponding module that is allowed to access the data model.

상기 피엘씨 소프트웨어 개발환경 제공 시스템은 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈들을 상기 저장소에 저장하고 상기 저장소에 저장된 모듈을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 모듈 자산 관리기와, 상기 PLC 소프트웨어 작성기를 통해 생성된 데이터 모델을 상기 저장소에 저장하고 상기 저장소에 저장된 데이터 모델을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 데이터 모델 자산 관리기와, 상기 제어 대상이 되는 설비의 운영조건을 저장하는 운영조건 자산 관리기와, 사용자에 의해 작성된 늦은 결합 조건식들에 대해서 사용자가 운영조건을 설정하거나 상기 자산 관리기에 저장된 운영조건을 선택하면 선택된 운영조건을 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈과 결합하여 완전한 모듈을 생성하는 모듈-운영 조건 결합기를 더 포함하는 것을 특징으로 한다.The PLC software development environment providing system includes a module asset manager configured to store modules generated by the PLC software writer in the repository and to load modules stored in the repository to the PLC software writer, and the PLC software writer. A data model asset manager for storing a data model generated through the storage and retrieving the data model stored in the storage to the PLC software creator, and an operating condition asset manager for storing operating conditions of the equipment to be controlled And, when the user sets an operating condition or selects an operating condition stored in the asset manager for late combined conditional expressions written by the user, the selected operating condition is combined with a module generated by the PLC software writer to form a complete module. And further comprising a coupler operating conditions - St. module.

본 발명에 따르면, PLC 소프트웨어를 객체지향적 관점에서 모듈화하고 모듈을 탑-다운 방식으로 세분화하고 모듈 사이의 관계를 구조화할 수 있으므로 PLC 소프트웨어의 판독성 및 유지보수성이 향상된다.According to the present invention, the PLC software can be modularized from an object-oriented perspective, the modules can be broken down in a top-down manner, and the relationships between the modules can be structured, thereby improving the readability and maintainability of the PLC software.

본 발명에 따르면, 모듈간 인터페이스 방법을 통해 모듈간 의존성이 제거되어 소프트웨어 모듈의 호환성 및 재사용성이 증대되므로, 종래에 수정이 어려웠던 PLC 소프트웨어의 수정이 용이하고, PLC 소프트웨어의 자산화가 가능해져 소프트웨어 개발시간 및 소프트웨어 유지보수작업시간이 단축된다. According to the present invention, since the dependency between modules is removed through the inter-module interface method, the compatibility and reusability of the software module is increased, so that it is easy to modify the PLC software, which has been difficult to modify in the past, and the asset development of the PLC software becomes possible. Reduced time and software maintenance work.

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

도 4는 본 발명에 따른 PLC 소프트웨어 개발 환경 제공 시스템을 나타낸 블록도이다. 4 is a block diagram showing a system for providing a PLC software development environment according to the present invention.

본 발명에 따른 시스템은, PLC 소프트웨어 작성기(100) 및 저장소(200)를 포함한다.The system according to the invention comprises a PLC software writer 100 and a repository 200.

그 외에, 모듈 자산관리기(300), 데이터 모델 자산관리기(400), 운영조건 자산관리기(500) 및 모듈-운영조건 결합기(600)를 포함한다. In addition, it includes a module asset manager 300, data model asset manager 400, operating condition asset manager 500 and module-operation condition combiner 600.

도 4에 도시된 시스템의 구성요소 중에서, PLC 소프트웨어 작성기(100), 모듈 자산관리기(300), 데이터 모델 자산관리기(400), 운영조건 자산관리기(500) 및 모듈-운영조건 결합기(600)는 하나의 컴퓨터 또는 네트워크로 연결된 다수의 컴퓨터에서 실행될 수 있는 소프트웨어로 구현될 수 있다.Among the components of the system shown in FIG. 4, the PLC software builder 100, the module asset manager 300, the data model asset manager 400, the operating condition asset manager 500, and the module-operating condition combiner 600 are described. It may be implemented in software that can be executed in one computer or a plurality of computers connected through a network.

본 발명에 따른 PLC 소프트웨어 개발환경 제공 시스템을 구성하는 각 모듈을보다 상세히 설명하면 다음과 같다.Each module constituting the PLC software development environment providing system according to the present invention will be described in detail as follows.

본 실시예에서, 저장소(200)는 PLC 소프트웨어에 사용되는 모듈들 및 데이터 모델들을 저장한다. In this embodiment, the repository 200 stores modules and data models used in the PLC software.

자세히 도시하지 않았지만, 저장소(200)는 상기 모듈들을 HMI 계층, 설비 관리자 계층, 라이브러리 및 네트워크 관리자 계층, 시스템 함수 계층의 4개의 계층으로 구분하여 저장한다.Although not shown in detail, the storage 200 divides the modules into four layers of an HMI layer, a facility manager layer, a library and network manager layer, and a system function layer.

HMI 계층에는 PLC와 제어 대상 설비간 인터페이스를 담당하는 모듈이 저장되 고, 설비 관리자 계층에는 동작 제어를 담당하는 모듈이 저장된다. 라이브러리 계층에는 시퀀스 제어 및 데이터 처리를 담당하는 모듈이 저장되고, 네트워크 관리자 계층에는 통신을 담당하는 모듈이 저장된다. 그리고, 시스템 함수 계층에는 시스템 함수에 해당하는 모듈이 저장된다.The HMI layer stores the modules that are in charge of the interface between the PLC and the equipment to be controlled, and the module that controls operations is stored in the facility manager layer. The module responsible for sequence control and data processing is stored in the library layer, and the module responsible for communication is stored in the network manager layer. In addition, the module corresponding to the system function is stored in the system function hierarchy.

데이터 모델들은 모듈들과 일대일의 맵핑 관계를 유지한 채로 저장소(200)에 저장된다. 특정 모듈에 매핑된 데이터 모델은 입출력 데이터인 PLC 입출력 데이터, 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터, 해당 모듈의 수행 결과를 다른 모듈에서 사용하는 데이터를 모아 놓은 참조 데이터로 구성된다. 데이터 모델이 이러한 구조를 가짐으로써, 해당 모듈 이외의 다른 모듈의 접근이 제한된다. 즉, 데이터 모델을 통해 데이터를 모듈 내부로 숨길 수 있게 된다.The data models are stored in storage 200 while maintaining a one-to-one mapping relationship with the modules. The data model mapped to a specific module is composed of PLC I / O data which is input / output data, interface data which is data of another module used in the corresponding module, and reference data that collects data used by other modules as the result of the module execution. This structure of the data model restricts access to modules other than those modules. In other words, the data model allows data to be hidden inside the module.

저장소(200)에 저장된 모듈들 및 데이터 모델들은 이전 PLC 소프트웨어 개발시 PLC 소프트웨어 작성기(100)를 통해 생성되어 자산화된 것으로, 이후에 PLC 소프트웨어를 개발하는 과정에서 재사용된다.Modules and data models stored in the repository 200 are generated and assetd by the PLC software writer 100 during previous PLC software development, and are subsequently reused in the process of developing the PLC software.

PLC 소프트웨어 작성기(100)는 모듈 및 데이터 모델들을 생성하고, 저장소(200)에 저장된 모듈들 및 데이터 모델들을 사용하여 새로운 PLC 소프트웨어를 작성하는 환경을 제공한다. The PLC software builder 100 provides an environment for generating modules and data models and for writing new PLC software using the modules and data models stored in the repository 200.

본 실시예에서, PLC 소프트웨어 작성기(100)는, 아키텍처 구성부, 모듈 생성부 및 데이터 모델 생성부를 포함한다. In the present embodiment, the PLC software builder 100 includes an architecture constructing unit, a module generating unit, and a data model generating unit.

아키텍처 구성부는 HMI 계층, 설비 관리자 계층, 라이브러리 계층, 네트워크 관리자 계층 및 시스템 함수 계층으로 구성되는 PLC 소프트웨어 프레임워크를 제공 하고, PLC 소프트웨어 프레임워크를 기반으로 PLC 소프트웨어를 구성하는 모듈들을 계층화한다.The architecture component provides PLC software framework composed of HMI layer, facility manager layer, library layer, network manager layer and system function layer, and layer the modules that make up PLC software based on PLC software framework.

아키텍처 구성부는 저장소(200)에 저장된 모듈을 불러와 그대로 사용하거나, 필요에 따라서 모듈 생성부를 통하여 생성된 모듈을 사용한다.The architecture component loads a module stored in the storage 200 and uses the module as it is, or uses a module generated through the module generator as necessary.

도 5는 본 발명에 따른 PLC 소프트웨어의 아키텍처를 나타낸 도면으로, 본 발명에 따른 PLC 소프트웨어는 시스템 함수 계층, 라이브러리 및 네트워크 관리자 계층, 설비 관리자 계층, HMI 계층의 4개의 계층으로 구성된다. 5 is a diagram showing the architecture of the PLC software according to the present invention. The PLC software according to the present invention is composed of four layers: a system function layer, a library and network manager layer, a facility manager layer, and an HMI layer.

시스템 함수 계층은 PLC 벤더(vender)에서 제공하는 기본적인 시스템 함수로 구성된다. 이 계층의 모듈들은 PLC 벤더에 종속적이기 때문에 공장 시스템을 구성하는 대상 PLC가 변경될 때마다 달라진다. 이러한 시스템 함수를 별도의 계층으로 완전히 독립시킴으로써 나머지 상위 계층의 모듈들이 PLC 종류에 영향을 받지 않도록 한다.The system function hierarchy consists of the basic system functions provided by the PLC vendor. Modules in this layer are dependent on the PLC vendor, so they change every time the target PLC that makes up the plant system changes. By completely independence of these system functions into a separate layer, the modules of the upper layer are not affected by PLC type.

라이브러리 계층과 네트워크 관리자 계층은, 동일한 계층에 존재하며, 벤더에 의해 제공되는 시스템 함수를 이용하여 구현된다. The library layer and network manager layer reside in the same layer and are implemented using system functions provided by the vendor.

라이브러리 계층에 있는 모듈은 네트워크 관리자 계층에 있는 모듈을 사용할 수 있도록 구현하여 라이브러리 계층 내의 장ㅊ를 담당하는 모듈이 하드웨어로 신호를 전달할 때 다양한 통신 방법을 사용할 수 있도록 지원한다. 왜냐하면, 라이브러리 계층 내의 장치를 담당하는 모듈들이 실제 하드웨어로 신호를 전달할 때 다양한 통신 방법을 사용하기 때문이다.Modules in the library layer enable the modules in the network manager layer to be used so that modules in the library layer can use a variety of communication methods when signaling to hardware. This is because the modules in charge of the devices in the library layer use various communication methods when transmitting signals to actual hardware.

라이브러리 계층에는 제어의 대상이 되는 액츄레이터(actuator) 제어 모듈, 출력장치 제어 모듈, 수치 계산 알고리즘 모듈이 존재한다. 네트워크 관리자 계층은 통신과 관련된 모듈이 존재한다. 네트워크 관리자 계층의 모듈은 공장에서 사용된느 모든 프로토콜을 지원할 수 있도록 구현한다.In the library hierarchy, there are an actuator control module, an output device control module, and a numerical calculation algorithm module to be controlled. The network manager layer contains modules related to communication. Modules in the network manager layer are implemented to support all protocols used in the factory.

라이브러리 계층 및 네트워크 관리자 계층은 설비의 제어를 담당하는 상위 계층의 모듈들이 벤더로부터 독립할 수 있도록 지원함으로써 PLC 응용 소프트웨어의 재사용에 중요한 역할을 한다. 라이브러리나 네트워크 관리자 역할을 담당하는 모듈들은 개발환경에 따라서 구현이 각각 이루어져서 관리가 되어야 한다. 예를 들어, 지멘스 S7환경에서 네트워크 통신을 담당하는 컴포넌트가 구현되어 있다고 하더라도 LS 산전 GLOFA 개발환경에서는 GOLFA에서 제공하는 시스템 함수를 이용하여 새롭게 구현되어야 한다. The library layer and network manager layer play an important role in the reuse of PLC application software by enabling the upper-level modules responsible for controlling the facility to be vendor independent. Modules that act as libraries or network administrators should be managed according to their development environment. For example, even though a component that is responsible for network communication is implemented in the Siemens S7 environment, the LSIS GLOFA development environment must be newly implemented using system functions provided by GOLFA.

종래의 소프트웨어 재사용을 위해 개발된 모듈은 대부분 이 계층에 속하는 모듈이다. 그러나, 직접적인 설비의 움직임을 제어하는 드라이버 역할을 수행하는 모듈 역시 개발자에 따라서 다양한 스타일로 발전되므로 좀 더 소프트웨어 재사용이 효율적인 모듈을 개발하기 위해서는 모든 공장들 전체적인 분석을 통해 도출될 수 있는 차이점과 공통점을 이용하여 모듈화를 진행하는 것이 필요하다.Most of the modules developed for the conventional software reuse belong to this layer. However, the module that acts as a driver to control the movement of the facility directly develops in various styles according to the developer. Therefore, in order to develop more efficient software reuse modules, the differences and commonalities that can be derived through analysis of all factories can be identified. It is necessary to proceed with the modularization.

설비관리자 계층에 속하는 모듈들은 실제 공장을 구성하는 설비들의 제어를 담당하며, 설비제어, 데이터 처리, 외부시스템 인터페이스를 위해서 라이브러리 계층에 구성된 모듈을 사용한다. 순차제어와 데이터 처리를 담당하는 부분이 이 계층의 모듈에 포함되어 있으며, 시스템의 요구사항에 따라서 가장 많이 변화되는 부분이다. 주변 환경의 변화에 영향을 받는 부분을 최소화시키기 위해서는 모듈 화(modularuzation)와 함께 정보 숨김(information hiding)이 반드시 적용되어야 한다. The modules belonging to the facility manager hierarchy are in charge of the control of the facilities constituting the actual plant and use the modules configured in the library hierarchy for facility control, data processing, and external system interface. The part responsible for sequential control and data processing is included in the module of this layer, and it is the part that changes most according to the requirements of the system. In order to minimize the influence of changes in the surrounding environment, information hiding must be applied together with modularization.

제어 결과를 설비로 전달하는 작업을 라이브러리 계층에 존재하는 모듈이 담당하기 때문에, 설비관리자 계층은 순차 제어와 데이터 처리 작업을 집중적으로 수행한다.Since the module in the library hierarchy is responsible for delivering control results to the facility, the facility manager layer concentrates on sequential control and data processing.

최상위 계층에는 시스템의 장치와의 인터페이스를 담당하는 HMI 계층이 존재한다. PLC 소프트웨어는 설비제어와 관련된 모듈에 HMI와의 인터페이스 처리를 위한 부분이 포함되어 HMI에 대한 요구사항의 변경에 모듈이 직접적인 영향을 받게 된다. HMI는 공장 조업자의 다양한 요구에 따라 변화가 많은 부분이므로 반드시 독립적인 모듈로 분리가 되어야 한다.At the top level is the HMI layer, which is responsible for interfacing with devices in the system. The PLC software includes a module for handling the interface with the HMI in the module related to the equipment control, so that the module is directly affected by changing the requirements for the HMI. The HMI has a lot of change according to various needs of the factory operator, so it must be separated into independent modules.

도 4를 다시 참조하면, 모듈 생성부는 PLC 소프트웨어를 구성하는 모듈들에 대하여 각 모듈이 할당된 프로그램(program) 및 타스크(task), 해당 모듈의 세부 디자인인 하위 컴포넌트(component), 모듈이 수행해야 하는 서비스인 핸들러(hanler), 컴포넌트와 핸들러의 제어를 담당하는 코디네이터(coordinator) 및 컨트롤러(controller)를 편집할 수 있는 환경을 제공하고, 상기 제공에 대응하여 입력되는 내용을 토대로 모듈을 생성한다. Referring back to FIG. 4, the module generation unit must be performed by a program and a task to which each module is assigned, and a subcomponent that is a detailed design of the module, for the modules constituting the PLC software. Provides an environment for editing the handler (hanler), the component and the coordinator responsible for the control of the service and the controller and the controller (controller), and generates a module based on the input contents corresponding to the provision.

모듈 생성부는 편집기를 이용하여 저장소(200)로부터 모듈을 불러와 편집하거나 기존의 STL(Standard Template Library) 형식의 PLC 코드(Legacy PLC code)를 편집하여 새로운 모듈을 생성한다. The module generator generates a new module by loading and editing a module from the storage 200 using an editor or by editing a PLC code of an existing Standard Template Library (STL) format.

편집기는 모듈의 타입에 따라서 스테이트 차트(state chart), 플로우 차 트(flow chart) 등과 같은 다이어그램 형태의 그래픽 편집환경을 제공하기도 하고, 텍스트 편집환경을 제공하기도 한다. 텍스트 편집환경에서는 기존의 STL(Standard Template Library) 형식의 PLC 코드(Legacy PLC code)을 불러와서 사용할 수도 있다.Depending on the type of module, the editor may provide a graphical editing environment in the form of diagrams such as state charts and flow charts, and may also provide a text editing environment. In text editing environment, existing PLC code of standard template library (STL) format can be loaded and used.

도 6은 PLC 소프트웨어를 구성하는 모듈 사이의 관계를 나타내는 메타모델이다. 6 is a metamodel showing a relationship between modules constituting PLC software.

도 6을 참조하면, 하나의 소프트웨어는 하나 이상의 타스크(task)로 구성될 수 있다. 하나의 타스크는 n개의 프로그램(program)이 존재할 수 있지만, 일반적으로 하나의 타스크에는 하나의 프로그램이 존재한다. 프로그램인 프로그램 전체를 관장할 수 있는 코디네이터(coordinator)를 가진다. 코디네이터는 공장의 운전 모드를 관리하기 위해 사용된다. Referring to FIG. 6, one software may be composed of one or more tasks. One task may have n programs, but generally one program exists in one task. It has a coordinator that manages the entire program. The coordinator is used to manage the operation mode of the factory.

그리고, 프로그램은 n개의 컴포넌트(componemt)로 구성될 수 있다. 본 발명의 HMI 계층 및 설비 관리 계층에 속하는 모듈은 컴포넌트와 대응된다. In addition, the program may be composed of n components. Modules belonging to the HMI layer and the facility management layer of the present invention correspond to components.

컴포넌트는 다시 여러 개의 하위 컴포넌트 및 n개의 핸들러(handler)로 구성될 수 있다. 핸들러는 모듈이 수행해야 하는 서비스, 즉 동작(operation)을 기준으로 분류된다. 예를 들어, 철강 연주 공장에서 레들 터렛(ladle turret)이 하나의 컴포넌트로 구성되어 있다면 레들 터렛의 회전과 암(arm)의 승강동작은 각각 핸들러가 담당을 하게 된다. 마지막으로, 핸들러는 1개의 코디네이터와 n개의 컨트롤러(controller) 및 프로세서(processor)로 구성된다. 핸들러에서 사용하는 코디네이터는 좀 더 지역적인 요소로, 동작의 운영모드를 관리한다. 각각의 운영모드에 따라서 대응되는 컨트롤러의 개수가 결정된다. 예를 들어, 자동과 수동 모드로 운영을 할 경우 핸들러는 자동모드와 수동모드를 위한 컨트롤러를 포함하고 있어야 한다. 모드와 관련된 컨트롤러와 관계없이 출력 또는 구동기를 위한 컨트롤러가 존재한다. 컨트롤러의 개수는 동작을 위해서 제어해야 하는 출력의 개수에 따라 결정된다. PLC 소프트웨어를 구성하는 마지막 요소인 프로세서는 피드백 또는 데이터 처리를 담당한다. 예를 들어, 핸들러가 위치제어를 위한 인코더가 필요하다면, 인코더와 관련된 내용은 프로세서에서 처리하게 된다. A component can in turn be composed of several subcomponents and n handlers. Handlers are classified based on the services they need to perform, that is, operations. For example, if a ladle turret consists of one component in a steel mill, the handler is responsible for rotating the ladle turret and lifting the arm. Finally, the handler consists of one coordinator, n controllers, and a processor. The coordinator used by the handler is a more local element, managing the mode of operation of the operation. The number of controllers corresponding to each operation mode is determined. For example, when operating in automatic and manual modes, the handler must include controllers for automatic and manual modes. Regardless of the controller associated with the mode, there is a controller for the output or driver. The number of controllers depends on the number of outputs that must be controlled for operation. The final component of the PLC software, the processor, is responsible for feedback or data processing. For example, if the handler needs an encoder for position control, the processor-related content is handled by the processor.

도 7은 본 발명에 따른 메타 모델을 반영하여 연주공정의 래들 터렛의 제어 소프트웨어를 설계한 구조도의 일예이다. Figure 7 is an example of the structure of the control software of the ladle turret of the playing process reflecting the meta-model according to the present invention.

도 4를 다시 참조하면, PLC 소프트웨어 작성기(100)의 데이터 모델 생성부는 각 모듈에서 사용하는 데이터를 가공하여 해당 모듈 이외의 다른 모듈의 접근이 제한된 구조의 데이터 모델을 생성한다.Referring back to FIG. 4, the data model generator of the PLC software writer 100 processes data used in each module to generate a data model of a structure in which access of other modules other than the corresponding module is restricted.

구체적으로, 출력 데이터에 영향을 많이 받는 PLC 소프트웨어의 경우, 모듈 내부에서 입출력 데이터의 물리적 주소를 직접적으로 사용하기 때문에 입출력 변화에 영향을 많이 받는다. 이는 PLC 소프트웨어 분석가가 모듈에 집중하지 못하도록 만드는 요인으로 작용한다.Specifically, in the case of PLC software that is heavily influenced by the output data, since the physical address of the input / output data is directly used inside the module, it is affected by the input / output change. This prevents PLC software analysts from focusing on modules.

이러한 문제점을 해결하기 위해서, 데이터 모델 생성부는 도 8에 도시된 바와 같이, 각 모듈에서 사용하는 데이터를 입출력 데이터인 PLC 입출력 데이터, 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터, 해당 모듈의 수행 결과를 다른 모듈에서 사용하는 데이터를 모아 놓은 참조 데이터로 구분하고, PLC 입출력 데이터와 인터페이스 데이터를 모듈 내부로 복사하여 모듈 내부에 존재하는 참조 데이터와 함께 데이터 모델을 구성한다.In order to solve such a problem, as illustrated in FIG. 8, the data model generation unit performs PLC I / O data, which is input / output data, data used by each module, interface data, which is data of another module used by the corresponding module, and performs the module. The result is divided into reference data that collects data used by other modules, and the PLC I / O data and interface data are copied into the module to form a data model with the reference data existing in the module.

상기 PLC 입출력 데이터, 인터페이스 데이터 및 참조 데이터는 각각 해당 모듈에 할당된 저장소(200) 내의 입출력 데이터 영역, 인터페이스 데이터 영역 및 참조 데이터 영역에 저장된다. The PLC input / output data, interface data, and reference data are stored in the input / output data area, the interface data area, and the reference data area in the storage 200 allocated to the corresponding module, respectively.

PLC 입출력 데이터와 인터페이스 데이터를 모듈과 대응되는 저장소(200)로 복사하여 지역화시킴으로써, 개발자는 외부 입출력 데이터의 물리적 주소변경을 신경 쓰지 않고 저장소(200)의 주소값만을 이용하여 내부에 필요한 로직에 집중하여 소프트웨어를 개발할 수 있다. 차후, 외부 모듈의 참조 데이터에 변화가 있다면, 해당 모듈의 데이터 인터페이스 또는 입출력에 해당하는 부분만 수정함으로써 외부 변화에 대응할 수 있게 된다. 즉, 데이터가 모듈 내부로 지역화되므로 모듈의 재사용이 가능하다.By copying the PLC I / O data and interface data to the storage 200 corresponding to the module and localizing it, the developer concentrates on the logic necessary internally using only the address value of the storage 200 without worrying about the physical address change of the external input / output data. To develop software. Subsequently, if there is a change in the reference data of the external module, it is possible to respond to the external change by modifying only the part corresponding to the data interface or input / output of the module. In other words, the data is localized inside the module, allowing reuse of the module.

도 8과 같은 방법은 데이터 숨김을 구현하는데 유용하다. 그러나, 다른 모듈의 데이터를 복사하기 때문에 사용되는 메모리 용량이 종래의 2배가 된다. 이에 따라, 메모리 용량 문제로 PLC 구현에 제약이 될 수 있다.8 is useful for implementing data hiding. However, since the data of another module is copied, the memory capacity used is twice as conventional. Accordingly, the memory capacity problem may limit the implementation of the PLC.

데이터 숨김을 그대로 지원하면서 이러한 용량적 한계를 극복하기 위한 방법으로, 데이터 모델 생성부는, 도 9에 도시된 방법에 따라서 설계와 구현을 구분하는 환경을 제공할 수도 있다.As a method for overcoming such capacitive limitations while supporting data hiding as it is, the data model generator may provide an environment in which design and implementation are divided according to the method illustrated in FIG. 9.

도 9를 참조하면, 설계에서는 하나의 모듈이 수행하는 참조 데이터를 내부 저장소의 주소로 맵핑을 시킨 후, 실제 소프트웨어가 PLC 다운되기 이전에 맵핑 데 이블을 이용하여 내부 저장소로 연결된 주소를 실제 참조 주소로 변경시키는 것이다. 즉, 전처리 과정을 통해서 실제 컴파일 과정 이전에 내부 저장소 주소를 실제 주소값으로 변경시킴으로써 메모리 용량 증가 문제를 해결하는 것이다. Referring to FIG. 9, in the design, after mapping reference data performed by one module to an address of an internal storage, an actual reference address is mapped to an address connected to the internal storage using a mapping table before the actual software is PLC down. To change. In other words, the preprocessing process solves the problem of increasing the memory capacity by changing the internal storage address to the actual address value before the actual compilation process.

이 방법에서는 설계 단계에서 실제 주소와 내부 저장소 주소에 대한 맵핑 데이블만 별도로 유지하면 된다.In this method, you only need to keep separate mapping tables for physical addresses and internal storage addresses during the design phase.

본 실시예에서, 모듈 자산관리기(300)는 PLC 소프트웨어 작성기(100)에서 생성된 모듈을 저장소(200)에 저장하거나, 저장소(200)에 저장된 모듈을 특정 검색조건에 따라서 PLC 소프트웨어 작성기(100)로 불러오는 기능을 수행한다. In the present embodiment, the module asset manager 300 stores the module generated by the PLC software writer 100 in the storage 200, or stores the module stored in the storage 200 according to a specific search condition. Perform the function called.

본 실시예에서, 데이터 모델 자산 관리기(400)는 PLC 소프트웨어 작성기(100)에서 생성된 데이터 모델을 저장소(400)에 등록하거나, 모듈 자산관리기(300)가 저장소(400)에 저장된 모듈을 PLC 소프트웨어 작성기(100)로 불러들일 때 해당 모듈에 맵핑된 데이터 모델을 저장소(400)에서 PLC 소프트웨어 작성기(100)로 불러오는 기능을 수행한다. In this embodiment, the data model asset manager 400 registers the data model generated by the PLC software builder 100 in the repository 400, or the module asset manager 300 stores the module stored in the repository 400 in the PLC software. When importing into the builder 100, the data model mapped to the corresponding module is loaded from the repository 400 to the PLC software builder 100.

본 실시예에서, 모듈-운영 조건 결합기(500)는 PLC 소프트웨어 작성기(100)의 모듈 편집기에서 모듈을 편집할 때 사용자에 의해서 작성된 늦은 결합 조건식(Lazy binding)들에 대해서 사용자가 설정한 또는 운영조건 자산 관리기(600)에 저장된 운영조건을 선택하면 그 정보를 이용하여 완전한 모듈을 생성해 주는 역할을 수행한다. In this embodiment, the module-operation condition combiner 500 sets or operates conditions set by the user for lazy bindings created by the user when editing the module in the module editor of the PLC software writer 100. Selecting the operating conditions stored in the asset manager 600 serves to create a complete module using the information.

늦은 결합 조건식 기법이 예를 들면 다음과 같다.The late binding conditional technique is for example:

COND1 = $CONDITION$COND1 = $ CONDITION $

위의 예에서 COND1은 조건의 결과인 참/거짓을 저장하는 변수이지만, $CONDITION$을 통해서 어떤 조건인지 알 수가 없다. 하지만, 이 조건식이 모듈-운영 조건 결합기(500)에 저장된 운영조건을 이용하여 다음과 같이 변경될 수 있다.In the above example, COND1 is a variable that stores true / false that is the result of the condition, but $ CONDITION $ does not know what the condition is. However, this conditional expression may be changed as follows using the operating condition stored in the module-operating condition combiner 500.

COND1 = A and B and CCOND1 = A and B and C

또는 or

COND1 = A and B and (C or D)COND1 = A and B and (C or D)

이렇게 조건을 제품 생성시 결과 변수에 연결시킴으로써, PLC 프로그램의 복잡성을 감소시키고, 설계 중심의 응용소프트웨어 개발을 유도할 수 있다.By linking conditions to result variables when creating products, you can reduce the complexity of PLC programs and drive design-driven application software development.

본 실시예에서, 운영조건 자산관리기(600)는 사용자가 설정한 운영조건을 저장하는 기능을 수행한다. In this embodiment, the operating condition asset manager 600 performs a function of storing the operating condition set by the user.

이상에서 설명한 PLC 소프트웨어 개발환경 제공 시스템이 구체적으로 어떠한 기능을 지원하는지 (1)모듈 개발, (2)PLC 소프트웨어 개발, (2)PLC 프로그램 유지보수의 관점에서 바라본 실시예를 통해서 살펴보도록 한다.The above-described examples will be described in terms of (1) module development, (2) PLC software development, and (2) PLC program maintenance.

(1) 모듈 개발(1) module development

PLC 소프트웨어 작성기(100)의 모듈 생성부는 저장소(200)로부터의 모듈 또는 기존 STL 형식의 PLC 코드를 편집기를 이용하여 편집하는 환경을 제공한다. The module generator of the PLC software writer 100 provides an environment for editing a module from the storage 200 or PLC code of an existing STL format using an editor.

편집기는 편집되는 모듈의 타입에 따라서 스테이트 차트(state chart), 플로우 차트(flow chart) 등과 같은 다이어그램 형태의 그래픽 편집환경을 제공하기도 하고, 텍스트 편집환경을 제공하기도 한다. The editor may provide a graphical editing environment in the form of diagrams such as state charts, flow charts, etc., depending on the type of module being edited, or may provide a text editing environment.

이렇게 만들어진 모듈은 이후 PLC 소프트웨어 개발시 재사용될 수 있도록 저 장소(200)에 저장된다.The module thus created is then stored in storage 200 for reuse in PLC software development.

(2)PLC 소프트웨어 개발(2) PLC software development

PLC 소프트웨어 작성기(100)는 HMI 계층, 설비 관리자 계층, 라이브러리/네트워크 관리자 계층, 시스템 함수 계층 순으로 하향식(top-down)으로 계층화된 구조의 PLC 소프트웨어를 작성하기 위한 환경을 제공하며, 상기 제공에 대응하여 사용자가 저장소(200) 내의 모듈 또는 모듈 생성부에서 생성된 모듈을 선택하면 PLC 소프트웨어의 생성을 위하여 선택된 모듈들을 매크로 처리(macro processing) 작업을 수행한다. 즉, 사용자가 선택한 모듈들을 매크로 처리함으로써, 선택된 모듈들을 구현하는 코드만 적용하여 완성된 PLC 소프트웨어를 생성하는 것이다. The PLC software builder 100 provides an environment for writing PLC software in a top-down hierarchical structure in the following order: HMI layer, facility manager layer, library / network manager layer, and system function layer. In response, when a user selects a module generated in the storage 200 or a module generated by the module generator, macro processing of the selected modules for generation of the PLC software is performed. In other words, by macro-processing the modules selected by the user, only the code for implementing the selected modules is applied to generate the completed PLC software.

(2)PLC 소프트웨어 유지보수(2) PLC software maintenance

PLC 소프트웨어에 에러가 발생된 경우 다음과 같은 방법을 통해서 수정할 수 있다.If an error occurs in the PLC software, you can correct it in the following way.

먼저, 모듈 자체에 수정이 필요한 경우, PLC 소프트웨어 작성기(100)의 모듈 생성부는 모듈을 수정하며, 이렇게 수정된 모듈을 저장소(200)에 저장하고, 수정된 모듈을 이용하여 아키텍처 구성부에서 PLC 소프트웨어를 다시 생성한다.First, when the module itself needs to be modified, the module generator of the PLC software builder 100 modifies the module, stores the modified module in the storage 200, and uses the modified module to generate PLC software in the architecture component. Regenerate

다음으로, 모듈의 수정이 필요하지 않는 경우에는, 데이터 모델에 수정이 필요한 지를 고려한다. 데이터 모델에 수정이 필요한 경우에는 PLC 소프트웨어 작성기(100)의 데이터 모델 생성부에서 데이터 모델을 수정하여 저장소(200)에 저장하고, 수정된 데이터 모델을 이용하여 아키텍처 구성부에서 PLC 소프트웨어를 다시 생성한다.Next, if you do not need to modify the module, consider whether you need to modify the data model. When the data model needs modification, the data model generator of the PLC software writer 100 modifies the data model and stores the data model in the storage 200. The PLC software is regenerated by the architecture component using the modified data model. .

마지막으로, 모듈 및 데이터 모델의 수정이 필요하지 않는 경우에는, 아키텍처 구성부에서 PLC 소프트웨어에 포함된 모듈들의 계층적 구조를 수정한다. Finally, if no modification of the module and data model is required, the architecture component modifies the hierarchical structure of the modules included in the PLC software.

본 발명에 따르면, PLC 소프트웨어를 객체지향적 관점에서 모듈화하고 모듈을 탑-다운 방식으로 세분화하고 모듈 사이의 관계를 구조화할 수 있으므로 PLC 소프트웨어의 판독성 및 유지보수성이 향상된다. 또한, 모듈간 인터페이스 방법을 통해 모듈간 의존성이 제거되어 소프트웨어 모듈의 호환성 및 재사용성이 증대되므로, 종래에 수정이 어려웠던 PLC 소프트웨어의 수정이 용이하고, PLC 소프트웨어의 자산화가 가능해져 소프트웨어 개발시간 및 소프트웨어 유지보수작업시간이 단축된다. According to the present invention, the PLC software can be modularized from an object-oriented perspective, the modules can be broken down in a top-down manner, and the relationships between the modules can be structured, thereby improving the readability and maintainability of the PLC software. In addition, since interdependencies between modules are removed through the interface method between modules, the compatibility and reusability of software modules are increased. Therefore, it is easy to modify PLC software, which is difficult to modify in the past, and it becomes possible to capitalize PLC software. Maintenance work time is reduced.

이상, 전술한 본 발명의 실시예들에서는 특정 실시예에 관련하고 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니며, 이하의 특허청구의 범위는 본 발명의 정신과 분야를 이탈하지 않는 한도 내에서 본 발명이 다양하게 개조 및 변형될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자가 용이하게 알 수 있다.In the above-described embodiments of the present invention, the present invention has been described and described with reference to specific embodiments, but the present invention is not limited thereto, and the scope of the following claims is not limited to the scope of the present invention. It will be readily apparent to those skilled in the art that the present invention may be variously modified and modified.

도 1은 PLC 소프트웨어의 일반적인 실행 처리 순서도이다.1 is a general execution process flowchart of the PLC software.

도 2는 PLC 소프트웨어의 일반적인 데이터 관리 구조를 나타낸 블록도이다.2 is a block diagram showing a general data management structure of the PLC software.

도 3은 종래 기술에 따른 데이터 관리 구조를 설명하기 위한 블록도이다.3 is a block diagram illustrating a data management structure according to the prior art.

도 4는 본 발명에 따른 PLC 소프트웨어 개발 환경을 제공하는 시스템을 나타낸 블록도이다. 4 is a block diagram illustrating a system for providing a PLC software development environment according to the present invention.

도 5는 본 발명에 따른 PLC 소프트웨어 아키텍처를 나타낸 블록도이다.5 is a block diagram illustrating a PLC software architecture in accordance with the present invention.

도 6은 본 발명에 따른 PLC 소프트웨어 메타모델을 나타낸 블록도이다.6 is a block diagram illustrating a PLC software metamodel according to the present invention.

도 7은 본 발명에 따른 PLC 소프트웨어 메타 모델을 토대로 하여 구성된 래들 터렛 제어 모듈을 나타낸 블록도이다.7 is a block diagram illustrating a ladle turret control module constructed based on a PLC software metamodel according to the present invention.

도 8은 본 발명에 따른 데이터 관리 구조의 일실시 형태를 설명하기 위한 블록도이다.8 is a block diagram for explaining an embodiment of a data management structure according to the present invention.

도 9는 본 발명에 따른 데이터 관리 구조의 다른 실시 형태를 설명하기 위한 블록도이다. 9 is a block diagram for explaining another embodiment of a data management structure according to the present invention.

Claims (10)

PLC 소프트웨어에 사용되는 모듈을 생성하는 모듈 생성부와, PLC 소프트웨어를 구성하는 모듈들을 계층화하는 아키텍처 구성부와, 각 모듈에서 사용하는 데이터를 가공하여 해당 모듈 이외의 다른 모듈의 접근이 제한된 구조의 데이터 모델을 생성하는 데이터 모델 생성부를 포함하는 PLC 소프트웨어 작성기;및 Module generation unit for creating modules used in PLC software, architecture configuration unit for layering modules constituting PLC software, and data of each structure that process data used in each module to restrict access of modules other than the corresponding module PLC software creator including a data model generator for generating a model; And 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈 및 데이터 모델을 저장하는 저장소;A repository for storing modules and data models generated by the PLC software writer; 를 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.PLC software development environment providing system comprising a. 제 1항에 있어서, The method of claim 1, 상기 모듈 생성부는, The module generation unit, 모듈에 할당된 프로그램과 타스크 및 각 모듈의 세부 설계를 입력하는 환경을 제공하고 상기 제공에 대응하여 입력되는 내용을 토대로 모듈을 생성하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.A PLC software development environment providing system, comprising: providing an environment for inputting a program and a task assigned to the module and a detailed design of each module, and generating a module based on the input contents corresponding to the provision. 제 1항에 있어서, The method of claim 1, 상기 아키텍처 생성부는, HMI 계층, 설비 관리자 계층, 라이브러리 계층, 네트워크 관리자 계층 및 시스템 함수 계층으로 구성되는 PLC 소프트웨어 프레임워크를 제공하며, 상기 PLC 소프트웨어 프레임워크를 기반으로 PLC 소프트웨어를 구성 하는 모듈들을 계층화하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.The architecture generating unit provides a PLC software framework including an HMI layer, a facility manager layer, a library layer, a network manager layer, and a system function layer, and layeres modules constituting PLC software based on the PLC software framework. PLC software development environment providing system, characterized in that. 제 3항에 있어서, The method of claim 3, 상기 HMI 계층은,The HMI layer is 프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 인터페이스를 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.PLC software development environment providing system comprising a module that manages the interface between the programmable logic controller (PLC) and the control target equipment. 제 3항에 있어서, The method of claim 3, 상기 설비 관리자 계층은, The facility manager hierarchy, 제어 대상 설비의 움직임 제어를 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.PLC software development environment providing system comprising a module for controlling the movement of the control target equipment. 제 3항에 있어서, The method of claim 3, 상기 라이브러리 계층은,The library layer is, 제어 대상 설비의 동작 시퀀스 제어 및 데이터 처리를 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.PLC software development environment providing system comprising a module for controlling the operation sequence and data processing of the equipment to be controlled. 제 3항에 있어서, The method of claim 3, 상기 네트워크 관리자 계층은, The network manager layer, 프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 통신을 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.PLC software development environment providing system comprising a module responsible for communication between a programmable logic controller (PLC) and the control target equipment. 제 1항에 있어서,The method of claim 1, 상기 데이터 모델 생성부는, The data model generation unit, 각 모듈에서 사용하는 데이터를 입출력 데이터, 다른 모듈에서 사용하는 해당 모듈의 데이터인 참조 데이터, 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터로 구분하고, 입출력 데이터 및 인터페이스 데이터를 해당 모듈로 복사하여 해당 모듈에 존재하는 참조 데이터와 함께 데이터 모델을 구성하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.The data used in each module is divided into I / O data, reference data that is the data of the corresponding module used in other modules, and interface data that is the data of other modules used in the corresponding module, and I / O data and interface data are copied to the corresponding module. PLC software development environment providing system, characterized in that the data model is configured with the reference data present in the module. 제 1항에 있어서,The method of claim 1, 상기 저장소는, The reservoir is 상기 데이터 모델을 해당 데이터 모델에 접근이 허용된 해당 모듈에 맵핑시키어 저장하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.The PLC software development environment providing system, characterized in that for storing the data model mapped to the module that is allowed to access the data model. 제 1항에 있어서,The method of claim 1, 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈들을 상기 저장소에 저장하고 상기 저장소에 저장된 모듈을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 모듈 자산 관리기;A module asset manager configured to store modules generated by the PLC software writer in the storage and to load modules stored in the storage to the PLC software writer; 상기 PLC 소프트웨어 작성기를 통해 생성된 데이터 모델을 상기 저장소에 저장하고 상기 저장소에 저장된 데이터 모델을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 데이터 모델 자산 관리기;A data model asset manager configured to store a data model generated by the PLC software writer in the storage and to load a data model stored in the storage to the PLC software writer; 상기 제어 대상이 되는 설비의 운영조건을 저장하는 운영조건 자산 관리기; 및An operating condition asset manager for storing operating conditions of the facility to be controlled; And 사용자에 의해 작성된 늦은 결합 조건식들에 대해서 사용자가 운영조건을 설정하거나 상기 자산 관리기에 저장된 운영조건을 선택하면 선택된 운영조건을 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈과 결합하여 완전한 모듈을 생성하는 모듈-운영 조건 결합기;A module that generates a complete module by combining the selected operating condition with the module generated by the PLC software writer when the user sets an operating condition or selects an operating condition stored in the asset manager for late combined conditional expressions written by the user. Operating condition combiner; 를 더 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.PLC software development environment providing system further comprising a.
KR1020090133811A 2009-12-30 2009-12-30 System for providing programable logic controller software development environment KR101085114B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090133811A KR101085114B1 (en) 2009-12-30 2009-12-30 System for providing programable logic controller software development environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090133811A KR101085114B1 (en) 2009-12-30 2009-12-30 System for providing programable logic controller software development environment

Publications (2)

Publication Number Publication Date
KR20110077288A true KR20110077288A (en) 2011-07-07
KR101085114B1 KR101085114B1 (en) 2011-11-18

Family

ID=44916887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090133811A KR101085114B1 (en) 2009-12-30 2009-12-30 System for providing programable logic controller software development environment

Country Status (1)

Country Link
KR (1) KR101085114B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113495752A (en) * 2020-04-03 2021-10-12 中国科学院沈阳自动化研究所 Method and system for quickly reconstructing codes after process change

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160106987A (en) 2015-03-03 2016-09-13 부산대학교 산학협력단 Integrated PLC/HMI system using SCADA

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7881812B2 (en) * 2005-09-29 2011-02-01 Rockwell Automation Technologies, Inc. Editing and configuring device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113495752A (en) * 2020-04-03 2021-10-12 中国科学院沈阳自动化研究所 Method and system for quickly reconstructing codes after process change
CN113495752B (en) * 2020-04-03 2024-04-30 中国科学院沈阳自动化研究所 Method and system for quickly reconstructing codes based on process change

Also Published As

Publication number Publication date
KR101085114B1 (en) 2011-11-18

Similar Documents

Publication Publication Date Title
US11681502B2 (en) Industrial automation domain-specific language programming paradigm
Drath et al. AutomationML-the glue for seamless automation engineering
US9235381B2 (en) Method and device for the programming and configuration of a programmable logic controller
EP2169547B1 (en) Compilation model for programmable logic controllers (PLC).
EP1580630B1 (en) Controller with agent functionality
US8464227B2 (en) Process control script development and execution facility supporting multiple user-side programming languages
US7881812B2 (en) Editing and configuring device
US7640291B2 (en) Agent-equipped controller having data table interface between agent-type programming and non-agent-type programming
US7581226B2 (en) Software application software architecture and method for the construction of software applications especially for measuring systems
US11733977B2 (en) Graphical and text based co-design editor for industrial automation projects
CN100549882C (en) Establishment and/or execution are used for the apparatus and method of the program of industrial automation system
Müller Using S-BPM for PLC code generation and extension of subject-oriented methodology to all layers of modern control systems
US20010037362A1 (en) Automation system for solving a technical-process task and corresponding method
KR101085114B1 (en) System for providing programable logic controller software development environment
CN108121285A (en) Application software collaboration Compilation Method and device based on continuous function figure
Parant et al. Model-based engineering for designing cyber-physical systems from product specifications
Zaeh et al. Model-driven development of PLC software for machine tools
CN113534744A (en) Software architecture and hardware architecture for forming numerical control system
EP1577724B1 (en) Agent program environment
Martin et al. Integrated design of Human-Machine Interfaces for production plants
Lehner et al. A pattern catalog for augmenting Digital Twin models with behavior
Beisheim et al. Using AutomationML and graph-based design languages for automatic generation of digital twins of cyber-physical systems
US11972257B2 (en) Industrial automation system topology with point to point business rule integration
US20240103852A1 (en) Presentation design dynamic generation from data model server
EP4307104A1 (en) Extensible profiles for industrial controller devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141110

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160920

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee