KR20110077288A - 피엘씨 소프트웨어 개발환경 제공 시스템 - Google Patents

피엘씨 소프트웨어 개발환경 제공 시스템 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
English (en)
Other versions
KR101085114B1 (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 KR1020090133811A priority Critical patent/KR101085114B1/ko
Publication of KR20110077288A publication Critical patent/KR20110077288A/ko
Application granted granted Critical
Publication of KR101085114B1 publication Critical patent/KR101085114B1/ko

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

본 발명은 우수한 판독성, 재사용성 및 유지보수성을 갖는 피엘씨(PLC, Programable Logic COntroller) 소프트웨어의 개발을 지원하기 위한 시스템을 개시한다. 개시된 시스템은, PLC 소프트웨어에 사용되는 모듈을 생성하는 모듈 생성부, PLC 소프트웨어를 구성하는 모듈들을 계층화하는 아키텍처 구성부 및 각 모듈에서 사용하는 데이터를 가공하여 해당 모듈 이외의 다른 모듈의 접근이 제한된 구조의 데이터 모델을 생성하는 데이터 모델 생성부를 포함하는 PLC 소프트웨어 작성기와, 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈 및 데이터 모델을 저장하는 저장소를 포함하는 것을 특징으로 한다.

Description

피엘씨 소프트웨어 개발환경 제공 시스템{SYSTEM FOR PROVIDING PROGRAMABLE LOGIC CONTROLLER SOFTWARE DEVELOPMENT ENVIRONMENT}
본 발명은 피엘씨(PLC, Programmable Logic Controller) 소프트웨어 개발환경 제공 시스템에 관한 것으로, 보다 상세하게는 판독성, 재사용성 및 유지보수성이 우수한 PLC 소프트웨어의 개발을 지원하기 위한 피엘씨 소프트웨어 개발환경 제공 시스템에 관한 것이다.
일반적으로, 프로그램 가능한 논리 제어기(Programmable Logic Controller, 이하, 'PLC'라 한다)는 디지털 또는 아날로그 입출력모듈을 통하여 릴레이, 타이머, 카운터 등의 기능을 활용하여 시퀀스 제어(sequence control)를 기본 기능으로 하고, 데이터 연산, 산술 연산 및 데이터 전송 등이 기능 추가로 피드백 제어(feedback control)도 가능하도록 PLM(Programmable Logic Memory)을 사용하여 여러 종류의 기계 설비를 직접 제어하는 디지털 전자장치로서, 철강제조 현장에서 제품 생산 및 공장 자동화 등에 필수적으로 사용되는 핵심장치이다.
PLC의 프로그램 언어로는, LD(Ladder Diagram), FBD(Function Block Diagram), IL(Instruction List), ST(Sturcture Text), SFC(Sequential Function Charts) 등이 있다.
일반적인 프로그램의 구조 및 제어로직처리 방법은 입력 데이터 읽기 과정을 통해 입력의 상태를 PLC의 CPU가 인식하고 인식된 정보를 조건 또는 데이터로 이용하여 프로그램 처음부터 마지막까지 순차적으로 연산을 실행하고 출력 데이터 쓰기를 실행한다.
일반적으로 철강 공정의 PLC는, 도 1에 도시된 바와 같이, 입력 모듈을 통해 데이터가 입력되면 시스템 상태 점검 모듈에서 시스템의 상태를 진단하여 비정상 상태이면 에러처리를 하고 정상 상태이면 설비 제어 모듈에서 현장 설비 제어를 위한 로직을 처리한다. 설비 제어 모듈은 제어 대상 설비별로 설비 상태 점검, 각종 제어 모드 결정 및 연산을 수행하고, 대상 구동기 제어를 위한 로직을 처리한다. 그리고, 모든 설비에 대한 제어 모듈이 수행된 후에는 데이터 쓰기를 통해 신호를 출력하게 된다.
그러나, 철강 공정에는 다양한 기종의 PLC가 도입되고 있으며, PLC 소프트웨어는 하드웨어 및 개발 환경에 영향을 많이 받으므로 유사 공정간 PLC 소프트웨어에도 많은 차이가 발생하고, 개발자의 차이로 인해 유사 공정간 PLC 소프트웨어도 상이하게 된다. 이로 인해, 설비 개선, 신강종 개발시 PLC 소프트웨어 변경에 많은 인력과 시간이 소요되며 PLC 소프트웨어의 유지보수성도 저하된다. 그리고, 제어 코드의 수정은 직접 관련된 작업자가 동반되지 않는 한 기존 정보를 재사용 및 수정하는 것이 매우 어려운 것이 현실이다. 또한, 외부 환경의 작은 변화에 따라서 동일한 기능을 수행하더라도 PLC 소프트웨어 모듈간 상호 호환되지 못하고, 불필요 한 중복 개발로 비용과 시간이 소모되고, PLC 소프트웨어 모듈간 공통된 구조가 마련되어 있지 않아 PLC 소프트웨어의 자산화가 어렵고, PLC 소프트웨어 코드의 판독성이 낮다.
종래의 PCL 소프트웨어는 제어에 필요한 데이터를 관리하고 모듈들 사이의 데이터 전달을 위한 방법으로 PLC 소프트웨어에서 일반적으로 사용되는 전역 메모리를 사용한다.
도 2는 PLC 소프트웨어의 일반적인 데이터 관리 구조를 나타낸 블록도로, 전역 메모리에 대한 편리한 접근성 때문에 개발자들은 최적화된 프로그램을 작성할 수 있지만, 적절한 제한과 규칙없이 사용함으로써 모듈들 사이에는 높은 결합성(coupling)이 발생한다. 높은 결합성은 프로그램의 유지ㆍ보수성을 낮추고, 판독성 및 재사용성을 저해하는 요인으로 작용한다.
전역 메모리를 사용하는 데이터 관리 구조를 바탕으로 프로그램의 판독성을 향상시키기 위하여 프로그램을 구성하는 모듈은, 도 3에 도시된 바와 같이, 각 모듈에 사용되는 변수를 저장하기 위해 대응되는 물리적 또는 논리적 저장소를 가지고 있다. 예를 들어, 도 3에서 모듈1은 자신의 구현에 사용될 변수를 저장하기 위한 메모리 블록1의 지역저장소를 할당한다. 도 3과 같은 대응관계를 유지함으로써 개발자는 프로그램에 사용되는 메모리 블럭의 이름을 이용하여 메모리 번지의 의미를 추적할 수 있다. 메모리 번지 주소와 함께 각 메모리 번지에 부여되는 심볼 이름은 개발자에게 더욱 높은 판독성을 제공해 준다.
하지만, 여전히 하나의 모듈에서 자신의 저장소 이외의 다른 저장소에 존재 하는 데이터를 어떤 제약 없이 접근할 수 있기 때문에, 판독성, 재사용성, 유지보수성의 문제를 근본적으로 해결할 수 없다.
본 발명은, PLC 개발 환경의 차이, PLC 소프트웨어 개발자의 선호도, 외부 환경 변화 등에 따라서 다르게 개발되는 PLC 소프트웨어를 객체지향적 관점에서 모듈화하고 탑-다운(top-down) 방식으로 모듈을 세분화하고 모듈간 의존성을 제거하여 판독성, 재사용성이 향상된 소프트웨어를 개발하여 자원화하고 이를 기반으로 신규한 소프트웨어 개발 및 소프트웨어 유지보수작업을 수행할 수 있는 환경을 제공함으로써 소프트웨어 개발시간 및 유지보수작업 시간을 단축시킬 수 있고, 소프트웨어의 유지보수성을 향상시킬 수 있는 피엘씨 소프트웨어 개발환경 제공 시스템을 제공하는데, 그 목적이 있다.
본 발명의 일 태양에 따른 피엘씨 소프트웨어 개발환경 제공 시스템은, PLC 소프트웨어에 사용되는 모듈을 생성하는 모듈 생성부, PLC 소프트웨어를 구성하는 모듈들을 계층화하는 아키텍처 구성부 및 각 모듈에서 사용하는 데이터를 가공하여 해당 모듈 이외의 다른 모듈의 접근이 제한된 구조의 데이터 모델을 생성하는 데이터 모델 생성부를 포함하는 PLC 소프트웨어 작성기와, 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈 및 데이터 모델을 저장하는 저장소를 포함하는 것을 특징으로 한다.
상기 모듈 생성부는, 모듈에 할당된 프로그램과 타스크 및 각 모듈의 세부 설계를 입력하는 환경을 제공하고 상기 제공에 대응하여 입력되는 내용을 토대로 모듈을 생성하는 것을 특징으로 한다.
상기 아키텍처 생성부는, HMI 계층, 설비 관리자 계층, 라이브러리 계층, 네트워크 관리자 계층 및 시스템 함수 계층으로 구성되는 PLC 소프트웨어 프레임워크를 제공하며, 상기 PLC 소프트웨어 프레임워크를 기반으로 PLC 소프트웨어를 구성하는 모듈들을 계층화하는 것을 특징으로 한다.
상기 HMI 계층은, 프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 인터페이스를 담당하는 모듈을 포함하는 것을 특징으로 한다.
상기 설비 관리자 계층은, 제어 대상 설비의 움직임 제어를 담당하는 모듈을 포함하는 것을 특징으로 한다.
상기 라이브러리 계층은, 제어 대상 설비의 동작 시퀀스 제어 및 데이터 처리를 담당하는 모듈을 포함하는 것을 특징으로 한다.
상기 네트워크 관리자 계층은, 프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 통신을 담당하는 모듈을 포함하는 것을 특징으로 한다.
상기 데이터 모델 생성부는, 각 모듈에서 사용하는 데이터를 입출력 데이터와, 다른 모듈에서 사용하는 해당 모듈의 데이터인 참조 데이터와 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터로 구분하고, 입출력 데이터 및 인터페이스 데이터를 해당 모듈로 복사하여 해당 모듈에 존재하는 참조 데이터와 함께 데이터 모델을 구성하는 것을 특징으로 한다.
상기 저장소는, 상기 데이터 모델을 해당 데이터 모델에 접근이 허용된 해당 모듈에 맵핑시키어 저장하는 것을 특징으로 한다.
상기 피엘씨 소프트웨어 개발환경 제공 시스템은 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈들을 상기 저장소에 저장하고 상기 저장소에 저장된 모듈을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 모듈 자산 관리기와, 상기 PLC 소프트웨어 작성기를 통해 생성된 데이터 모델을 상기 저장소에 저장하고 상기 저장소에 저장된 데이터 모델을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 데이터 모델 자산 관리기와, 상기 제어 대상이 되는 설비의 운영조건을 저장하는 운영조건 자산 관리기와, 사용자에 의해 작성된 늦은 결합 조건식들에 대해서 사용자가 운영조건을 설정하거나 상기 자산 관리기에 저장된 운영조건을 선택하면 선택된 운영조건을 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈과 결합하여 완전한 모듈을 생성하는 모듈-운영 조건 결합기를 더 포함하는 것을 특징으로 한다.
본 발명에 따르면, PLC 소프트웨어를 객체지향적 관점에서 모듈화하고 모듈을 탑-다운 방식으로 세분화하고 모듈 사이의 관계를 구조화할 수 있으므로 PLC 소프트웨어의 판독성 및 유지보수성이 향상된다.
본 발명에 따르면, 모듈간 인터페이스 방법을 통해 모듈간 의존성이 제거되어 소프트웨어 모듈의 호환성 및 재사용성이 증대되므로, 종래에 수정이 어려웠던 PLC 소프트웨어의 수정이 용이하고, PLC 소프트웨어의 자산화가 가능해져 소프트웨어 개발시간 및 소프트웨어 유지보수작업시간이 단축된다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하도록 한다.
도 4는 본 발명에 따른 PLC 소프트웨어 개발 환경 제공 시스템을 나타낸 블록도이다.
본 발명에 따른 시스템은, PLC 소프트웨어 작성기(100) 및 저장소(200)를 포함한다.
그 외에, 모듈 자산관리기(300), 데이터 모델 자산관리기(400), 운영조건 자산관리기(500) 및 모듈-운영조건 결합기(600)를 포함한다.
도 4에 도시된 시스템의 구성요소 중에서, PLC 소프트웨어 작성기(100), 모듈 자산관리기(300), 데이터 모델 자산관리기(400), 운영조건 자산관리기(500) 및 모듈-운영조건 결합기(600)는 하나의 컴퓨터 또는 네트워크로 연결된 다수의 컴퓨터에서 실행될 수 있는 소프트웨어로 구현될 수 있다.
본 발명에 따른 PLC 소프트웨어 개발환경 제공 시스템을 구성하는 각 모듈을보다 상세히 설명하면 다음과 같다.
본 실시예에서, 저장소(200)는 PLC 소프트웨어에 사용되는 모듈들 및 데이터 모델들을 저장한다.
자세히 도시하지 않았지만, 저장소(200)는 상기 모듈들을 HMI 계층, 설비 관리자 계층, 라이브러리 및 네트워크 관리자 계층, 시스템 함수 계층의 4개의 계층으로 구분하여 저장한다.
HMI 계층에는 PLC와 제어 대상 설비간 인터페이스를 담당하는 모듈이 저장되 고, 설비 관리자 계층에는 동작 제어를 담당하는 모듈이 저장된다. 라이브러리 계층에는 시퀀스 제어 및 데이터 처리를 담당하는 모듈이 저장되고, 네트워크 관리자 계층에는 통신을 담당하는 모듈이 저장된다. 그리고, 시스템 함수 계층에는 시스템 함수에 해당하는 모듈이 저장된다.
데이터 모델들은 모듈들과 일대일의 맵핑 관계를 유지한 채로 저장소(200)에 저장된다. 특정 모듈에 매핑된 데이터 모델은 입출력 데이터인 PLC 입출력 데이터, 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터, 해당 모듈의 수행 결과를 다른 모듈에서 사용하는 데이터를 모아 놓은 참조 데이터로 구성된다. 데이터 모델이 이러한 구조를 가짐으로써, 해당 모듈 이외의 다른 모듈의 접근이 제한된다. 즉, 데이터 모델을 통해 데이터를 모듈 내부로 숨길 수 있게 된다.
저장소(200)에 저장된 모듈들 및 데이터 모델들은 이전 PLC 소프트웨어 개발시 PLC 소프트웨어 작성기(100)를 통해 생성되어 자산화된 것으로, 이후에 PLC 소프트웨어를 개발하는 과정에서 재사용된다.
PLC 소프트웨어 작성기(100)는 모듈 및 데이터 모델들을 생성하고, 저장소(200)에 저장된 모듈들 및 데이터 모델들을 사용하여 새로운 PLC 소프트웨어를 작성하는 환경을 제공한다.
본 실시예에서, PLC 소프트웨어 작성기(100)는, 아키텍처 구성부, 모듈 생성부 및 데이터 모델 생성부를 포함한다.
아키텍처 구성부는 HMI 계층, 설비 관리자 계층, 라이브러리 계층, 네트워크 관리자 계층 및 시스템 함수 계층으로 구성되는 PLC 소프트웨어 프레임워크를 제공 하고, PLC 소프트웨어 프레임워크를 기반으로 PLC 소프트웨어를 구성하는 모듈들을 계층화한다.
아키텍처 구성부는 저장소(200)에 저장된 모듈을 불러와 그대로 사용하거나, 필요에 따라서 모듈 생성부를 통하여 생성된 모듈을 사용한다.
도 5는 본 발명에 따른 PLC 소프트웨어의 아키텍처를 나타낸 도면으로, 본 발명에 따른 PLC 소프트웨어는 시스템 함수 계층, 라이브러리 및 네트워크 관리자 계층, 설비 관리자 계층, HMI 계층의 4개의 계층으로 구성된다.
시스템 함수 계층은 PLC 벤더(vender)에서 제공하는 기본적인 시스템 함수로 구성된다. 이 계층의 모듈들은 PLC 벤더에 종속적이기 때문에 공장 시스템을 구성하는 대상 PLC가 변경될 때마다 달라진다. 이러한 시스템 함수를 별도의 계층으로 완전히 독립시킴으로써 나머지 상위 계층의 모듈들이 PLC 종류에 영향을 받지 않도록 한다.
라이브러리 계층과 네트워크 관리자 계층은, 동일한 계층에 존재하며, 벤더에 의해 제공되는 시스템 함수를 이용하여 구현된다.
라이브러리 계층에 있는 모듈은 네트워크 관리자 계층에 있는 모듈을 사용할 수 있도록 구현하여 라이브러리 계층 내의 장ㅊ를 담당하는 모듈이 하드웨어로 신호를 전달할 때 다양한 통신 방법을 사용할 수 있도록 지원한다. 왜냐하면, 라이브러리 계층 내의 장치를 담당하는 모듈들이 실제 하드웨어로 신호를 전달할 때 다양한 통신 방법을 사용하기 때문이다.
라이브러리 계층에는 제어의 대상이 되는 액츄레이터(actuator) 제어 모듈, 출력장치 제어 모듈, 수치 계산 알고리즘 모듈이 존재한다. 네트워크 관리자 계층은 통신과 관련된 모듈이 존재한다. 네트워크 관리자 계층의 모듈은 공장에서 사용된느 모든 프로토콜을 지원할 수 있도록 구현한다.
라이브러리 계층 및 네트워크 관리자 계층은 설비의 제어를 담당하는 상위 계층의 모듈들이 벤더로부터 독립할 수 있도록 지원함으로써 PLC 응용 소프트웨어의 재사용에 중요한 역할을 한다. 라이브러리나 네트워크 관리자 역할을 담당하는 모듈들은 개발환경에 따라서 구현이 각각 이루어져서 관리가 되어야 한다. 예를 들어, 지멘스 S7환경에서 네트워크 통신을 담당하는 컴포넌트가 구현되어 있다고 하더라도 LS 산전 GLOFA 개발환경에서는 GOLFA에서 제공하는 시스템 함수를 이용하여 새롭게 구현되어야 한다.
종래의 소프트웨어 재사용을 위해 개발된 모듈은 대부분 이 계층에 속하는 모듈이다. 그러나, 직접적인 설비의 움직임을 제어하는 드라이버 역할을 수행하는 모듈 역시 개발자에 따라서 다양한 스타일로 발전되므로 좀 더 소프트웨어 재사용이 효율적인 모듈을 개발하기 위해서는 모든 공장들 전체적인 분석을 통해 도출될 수 있는 차이점과 공통점을 이용하여 모듈화를 진행하는 것이 필요하다.
설비관리자 계층에 속하는 모듈들은 실제 공장을 구성하는 설비들의 제어를 담당하며, 설비제어, 데이터 처리, 외부시스템 인터페이스를 위해서 라이브러리 계층에 구성된 모듈을 사용한다. 순차제어와 데이터 처리를 담당하는 부분이 이 계층의 모듈에 포함되어 있으며, 시스템의 요구사항에 따라서 가장 많이 변화되는 부분이다. 주변 환경의 변화에 영향을 받는 부분을 최소화시키기 위해서는 모듈 화(modularuzation)와 함께 정보 숨김(information hiding)이 반드시 적용되어야 한다.
제어 결과를 설비로 전달하는 작업을 라이브러리 계층에 존재하는 모듈이 담당하기 때문에, 설비관리자 계층은 순차 제어와 데이터 처리 작업을 집중적으로 수행한다.
최상위 계층에는 시스템의 장치와의 인터페이스를 담당하는 HMI 계층이 존재한다. PLC 소프트웨어는 설비제어와 관련된 모듈에 HMI와의 인터페이스 처리를 위한 부분이 포함되어 HMI에 대한 요구사항의 변경에 모듈이 직접적인 영향을 받게 된다. HMI는 공장 조업자의 다양한 요구에 따라 변화가 많은 부분이므로 반드시 독립적인 모듈로 분리가 되어야 한다.
도 4를 다시 참조하면, 모듈 생성부는 PLC 소프트웨어를 구성하는 모듈들에 대하여 각 모듈이 할당된 프로그램(program) 및 타스크(task), 해당 모듈의 세부 디자인인 하위 컴포넌트(component), 모듈이 수행해야 하는 서비스인 핸들러(hanler), 컴포넌트와 핸들러의 제어를 담당하는 코디네이터(coordinator) 및 컨트롤러(controller)를 편집할 수 있는 환경을 제공하고, 상기 제공에 대응하여 입력되는 내용을 토대로 모듈을 생성한다.
모듈 생성부는 편집기를 이용하여 저장소(200)로부터 모듈을 불러와 편집하거나 기존의 STL(Standard Template Library) 형식의 PLC 코드(Legacy PLC code)를 편집하여 새로운 모듈을 생성한다.
편집기는 모듈의 타입에 따라서 스테이트 차트(state chart), 플로우 차 트(flow chart) 등과 같은 다이어그램 형태의 그래픽 편집환경을 제공하기도 하고, 텍스트 편집환경을 제공하기도 한다. 텍스트 편집환경에서는 기존의 STL(Standard Template Library) 형식의 PLC 코드(Legacy PLC code)을 불러와서 사용할 수도 있다.
도 6은 PLC 소프트웨어를 구성하는 모듈 사이의 관계를 나타내는 메타모델이다.
도 6을 참조하면, 하나의 소프트웨어는 하나 이상의 타스크(task)로 구성될 수 있다. 하나의 타스크는 n개의 프로그램(program)이 존재할 수 있지만, 일반적으로 하나의 타스크에는 하나의 프로그램이 존재한다. 프로그램인 프로그램 전체를 관장할 수 있는 코디네이터(coordinator)를 가진다. 코디네이터는 공장의 운전 모드를 관리하기 위해 사용된다.
그리고, 프로그램은 n개의 컴포넌트(componemt)로 구성될 수 있다. 본 발명의 HMI 계층 및 설비 관리 계층에 속하는 모듈은 컴포넌트와 대응된다.
컴포넌트는 다시 여러 개의 하위 컴포넌트 및 n개의 핸들러(handler)로 구성될 수 있다. 핸들러는 모듈이 수행해야 하는 서비스, 즉 동작(operation)을 기준으로 분류된다. 예를 들어, 철강 연주 공장에서 레들 터렛(ladle turret)이 하나의 컴포넌트로 구성되어 있다면 레들 터렛의 회전과 암(arm)의 승강동작은 각각 핸들러가 담당을 하게 된다. 마지막으로, 핸들러는 1개의 코디네이터와 n개의 컨트롤러(controller) 및 프로세서(processor)로 구성된다. 핸들러에서 사용하는 코디네이터는 좀 더 지역적인 요소로, 동작의 운영모드를 관리한다. 각각의 운영모드에 따라서 대응되는 컨트롤러의 개수가 결정된다. 예를 들어, 자동과 수동 모드로 운영을 할 경우 핸들러는 자동모드와 수동모드를 위한 컨트롤러를 포함하고 있어야 한다. 모드와 관련된 컨트롤러와 관계없이 출력 또는 구동기를 위한 컨트롤러가 존재한다. 컨트롤러의 개수는 동작을 위해서 제어해야 하는 출력의 개수에 따라 결정된다. PLC 소프트웨어를 구성하는 마지막 요소인 프로세서는 피드백 또는 데이터 처리를 담당한다. 예를 들어, 핸들러가 위치제어를 위한 인코더가 필요하다면, 인코더와 관련된 내용은 프로세서에서 처리하게 된다.
도 7은 본 발명에 따른 메타 모델을 반영하여 연주공정의 래들 터렛의 제어 소프트웨어를 설계한 구조도의 일예이다.
도 4를 다시 참조하면, PLC 소프트웨어 작성기(100)의 데이터 모델 생성부는 각 모듈에서 사용하는 데이터를 가공하여 해당 모듈 이외의 다른 모듈의 접근이 제한된 구조의 데이터 모델을 생성한다.
구체적으로, 출력 데이터에 영향을 많이 받는 PLC 소프트웨어의 경우, 모듈 내부에서 입출력 데이터의 물리적 주소를 직접적으로 사용하기 때문에 입출력 변화에 영향을 많이 받는다. 이는 PLC 소프트웨어 분석가가 모듈에 집중하지 못하도록 만드는 요인으로 작용한다.
이러한 문제점을 해결하기 위해서, 데이터 모델 생성부는 도 8에 도시된 바와 같이, 각 모듈에서 사용하는 데이터를 입출력 데이터인 PLC 입출력 데이터, 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터, 해당 모듈의 수행 결과를 다른 모듈에서 사용하는 데이터를 모아 놓은 참조 데이터로 구분하고, PLC 입출력 데이터와 인터페이스 데이터를 모듈 내부로 복사하여 모듈 내부에 존재하는 참조 데이터와 함께 데이터 모델을 구성한다.
상기 PLC 입출력 데이터, 인터페이스 데이터 및 참조 데이터는 각각 해당 모듈에 할당된 저장소(200) 내의 입출력 데이터 영역, 인터페이스 데이터 영역 및 참조 데이터 영역에 저장된다.
PLC 입출력 데이터와 인터페이스 데이터를 모듈과 대응되는 저장소(200)로 복사하여 지역화시킴으로써, 개발자는 외부 입출력 데이터의 물리적 주소변경을 신경 쓰지 않고 저장소(200)의 주소값만을 이용하여 내부에 필요한 로직에 집중하여 소프트웨어를 개발할 수 있다. 차후, 외부 모듈의 참조 데이터에 변화가 있다면, 해당 모듈의 데이터 인터페이스 또는 입출력에 해당하는 부분만 수정함으로써 외부 변화에 대응할 수 있게 된다. 즉, 데이터가 모듈 내부로 지역화되므로 모듈의 재사용이 가능하다.
도 8과 같은 방법은 데이터 숨김을 구현하는데 유용하다. 그러나, 다른 모듈의 데이터를 복사하기 때문에 사용되는 메모리 용량이 종래의 2배가 된다. 이에 따라, 메모리 용량 문제로 PLC 구현에 제약이 될 수 있다.
데이터 숨김을 그대로 지원하면서 이러한 용량적 한계를 극복하기 위한 방법으로, 데이터 모델 생성부는, 도 9에 도시된 방법에 따라서 설계와 구현을 구분하는 환경을 제공할 수도 있다.
도 9를 참조하면, 설계에서는 하나의 모듈이 수행하는 참조 데이터를 내부 저장소의 주소로 맵핑을 시킨 후, 실제 소프트웨어가 PLC 다운되기 이전에 맵핑 데 이블을 이용하여 내부 저장소로 연결된 주소를 실제 참조 주소로 변경시키는 것이다. 즉, 전처리 과정을 통해서 실제 컴파일 과정 이전에 내부 저장소 주소를 실제 주소값으로 변경시킴으로써 메모리 용량 증가 문제를 해결하는 것이다.
이 방법에서는 설계 단계에서 실제 주소와 내부 저장소 주소에 대한 맵핑 데이블만 별도로 유지하면 된다.
본 실시예에서, 모듈 자산관리기(300)는 PLC 소프트웨어 작성기(100)에서 생성된 모듈을 저장소(200)에 저장하거나, 저장소(200)에 저장된 모듈을 특정 검색조건에 따라서 PLC 소프트웨어 작성기(100)로 불러오는 기능을 수행한다.
본 실시예에서, 데이터 모델 자산 관리기(400)는 PLC 소프트웨어 작성기(100)에서 생성된 데이터 모델을 저장소(400)에 등록하거나, 모듈 자산관리기(300)가 저장소(400)에 저장된 모듈을 PLC 소프트웨어 작성기(100)로 불러들일 때 해당 모듈에 맵핑된 데이터 모델을 저장소(400)에서 PLC 소프트웨어 작성기(100)로 불러오는 기능을 수행한다.
본 실시예에서, 모듈-운영 조건 결합기(500)는 PLC 소프트웨어 작성기(100)의 모듈 편집기에서 모듈을 편집할 때 사용자에 의해서 작성된 늦은 결합 조건식(Lazy binding)들에 대해서 사용자가 설정한 또는 운영조건 자산 관리기(600)에 저장된 운영조건을 선택하면 그 정보를 이용하여 완전한 모듈을 생성해 주는 역할을 수행한다.
늦은 결합 조건식 기법이 예를 들면 다음과 같다.
COND1 = $CONDITION$
위의 예에서 COND1은 조건의 결과인 참/거짓을 저장하는 변수이지만, $CONDITION$을 통해서 어떤 조건인지 알 수가 없다. 하지만, 이 조건식이 모듈-운영 조건 결합기(500)에 저장된 운영조건을 이용하여 다음과 같이 변경될 수 있다.
COND1 = A and B and C
또는
COND1 = A and B and (C or D)
이렇게 조건을 제품 생성시 결과 변수에 연결시킴으로써, PLC 프로그램의 복잡성을 감소시키고, 설계 중심의 응용소프트웨어 개발을 유도할 수 있다.
본 실시예에서, 운영조건 자산관리기(600)는 사용자가 설정한 운영조건을 저장하는 기능을 수행한다.
이상에서 설명한 PLC 소프트웨어 개발환경 제공 시스템이 구체적으로 어떠한 기능을 지원하는지 (1)모듈 개발, (2)PLC 소프트웨어 개발, (2)PLC 프로그램 유지보수의 관점에서 바라본 실시예를 통해서 살펴보도록 한다.
(1) 모듈 개발
PLC 소프트웨어 작성기(100)의 모듈 생성부는 저장소(200)로부터의 모듈 또는 기존 STL 형식의 PLC 코드를 편집기를 이용하여 편집하는 환경을 제공한다.
편집기는 편집되는 모듈의 타입에 따라서 스테이트 차트(state chart), 플로우 차트(flow chart) 등과 같은 다이어그램 형태의 그래픽 편집환경을 제공하기도 하고, 텍스트 편집환경을 제공하기도 한다.
이렇게 만들어진 모듈은 이후 PLC 소프트웨어 개발시 재사용될 수 있도록 저 장소(200)에 저장된다.
(2)PLC 소프트웨어 개발
PLC 소프트웨어 작성기(100)는 HMI 계층, 설비 관리자 계층, 라이브러리/네트워크 관리자 계층, 시스템 함수 계층 순으로 하향식(top-down)으로 계층화된 구조의 PLC 소프트웨어를 작성하기 위한 환경을 제공하며, 상기 제공에 대응하여 사용자가 저장소(200) 내의 모듈 또는 모듈 생성부에서 생성된 모듈을 선택하면 PLC 소프트웨어의 생성을 위하여 선택된 모듈들을 매크로 처리(macro processing) 작업을 수행한다. 즉, 사용자가 선택한 모듈들을 매크로 처리함으로써, 선택된 모듈들을 구현하는 코드만 적용하여 완성된 PLC 소프트웨어를 생성하는 것이다.
(2)PLC 소프트웨어 유지보수
PLC 소프트웨어에 에러가 발생된 경우 다음과 같은 방법을 통해서 수정할 수 있다.
먼저, 모듈 자체에 수정이 필요한 경우, PLC 소프트웨어 작성기(100)의 모듈 생성부는 모듈을 수정하며, 이렇게 수정된 모듈을 저장소(200)에 저장하고, 수정된 모듈을 이용하여 아키텍처 구성부에서 PLC 소프트웨어를 다시 생성한다.
다음으로, 모듈의 수정이 필요하지 않는 경우에는, 데이터 모델에 수정이 필요한 지를 고려한다. 데이터 모델에 수정이 필요한 경우에는 PLC 소프트웨어 작성기(100)의 데이터 모델 생성부에서 데이터 모델을 수정하여 저장소(200)에 저장하고, 수정된 데이터 모델을 이용하여 아키텍처 구성부에서 PLC 소프트웨어를 다시 생성한다.
마지막으로, 모듈 및 데이터 모델의 수정이 필요하지 않는 경우에는, 아키텍처 구성부에서 PLC 소프트웨어에 포함된 모듈들의 계층적 구조를 수정한다.
본 발명에 따르면, PLC 소프트웨어를 객체지향적 관점에서 모듈화하고 모듈을 탑-다운 방식으로 세분화하고 모듈 사이의 관계를 구조화할 수 있으므로 PLC 소프트웨어의 판독성 및 유지보수성이 향상된다. 또한, 모듈간 인터페이스 방법을 통해 모듈간 의존성이 제거되어 소프트웨어 모듈의 호환성 및 재사용성이 증대되므로, 종래에 수정이 어려웠던 PLC 소프트웨어의 수정이 용이하고, PLC 소프트웨어의 자산화가 가능해져 소프트웨어 개발시간 및 소프트웨어 유지보수작업시간이 단축된다.
이상, 전술한 본 발명의 실시예들에서는 특정 실시예에 관련하고 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니며, 이하의 특허청구의 범위는 본 발명의 정신과 분야를 이탈하지 않는 한도 내에서 본 발명이 다양하게 개조 및 변형될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자가 용이하게 알 수 있다.
도 1은 PLC 소프트웨어의 일반적인 실행 처리 순서도이다.
도 2는 PLC 소프트웨어의 일반적인 데이터 관리 구조를 나타낸 블록도이다.
도 3은 종래 기술에 따른 데이터 관리 구조를 설명하기 위한 블록도이다.
도 4는 본 발명에 따른 PLC 소프트웨어 개발 환경을 제공하는 시스템을 나타낸 블록도이다.
도 5는 본 발명에 따른 PLC 소프트웨어 아키텍처를 나타낸 블록도이다.
도 6은 본 발명에 따른 PLC 소프트웨어 메타모델을 나타낸 블록도이다.
도 7은 본 발명에 따른 PLC 소프트웨어 메타 모델을 토대로 하여 구성된 래들 터렛 제어 모듈을 나타낸 블록도이다.
도 8은 본 발명에 따른 데이터 관리 구조의 일실시 형태를 설명하기 위한 블록도이다.
도 9는 본 발명에 따른 데이터 관리 구조의 다른 실시 형태를 설명하기 위한 블록도이다.

Claims (10)

  1. PLC 소프트웨어에 사용되는 모듈을 생성하는 모듈 생성부와, PLC 소프트웨어를 구성하는 모듈들을 계층화하는 아키텍처 구성부와, 각 모듈에서 사용하는 데이터를 가공하여 해당 모듈 이외의 다른 모듈의 접근이 제한된 구조의 데이터 모델을 생성하는 데이터 모델 생성부를 포함하는 PLC 소프트웨어 작성기;및
    상기 PLC 소프트웨어 작성기를 통해 생성된 모듈 및 데이터 모델을 저장하는 저장소;
    를 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  2. 제 1항에 있어서,
    상기 모듈 생성부는,
    모듈에 할당된 프로그램과 타스크 및 각 모듈의 세부 설계를 입력하는 환경을 제공하고 상기 제공에 대응하여 입력되는 내용을 토대로 모듈을 생성하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  3. 제 1항에 있어서,
    상기 아키텍처 생성부는, HMI 계층, 설비 관리자 계층, 라이브러리 계층, 네트워크 관리자 계층 및 시스템 함수 계층으로 구성되는 PLC 소프트웨어 프레임워크를 제공하며, 상기 PLC 소프트웨어 프레임워크를 기반으로 PLC 소프트웨어를 구성 하는 모듈들을 계층화하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  4. 제 3항에 있어서,
    상기 HMI 계층은,
    프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 인터페이스를 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  5. 제 3항에 있어서,
    상기 설비 관리자 계층은,
    제어 대상 설비의 움직임 제어를 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  6. 제 3항에 있어서,
    상기 라이브러리 계층은,
    제어 대상 설비의 동작 시퀀스 제어 및 데이터 처리를 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  7. 제 3항에 있어서,
    상기 네트워크 관리자 계층은,
    프로그램 로직 컨트롤러(PLC)와 제어 대상 설비간 통신을 담당하는 모듈을 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  8. 제 1항에 있어서,
    상기 데이터 모델 생성부는,
    각 모듈에서 사용하는 데이터를 입출력 데이터, 다른 모듈에서 사용하는 해당 모듈의 데이터인 참조 데이터, 해당 모듈에서 사용하는 다른 모듈의 데이터인 인터페이스 데이터로 구분하고, 입출력 데이터 및 인터페이스 데이터를 해당 모듈로 복사하여 해당 모듈에 존재하는 참조 데이터와 함께 데이터 모델을 구성하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  9. 제 1항에 있어서,
    상기 저장소는,
    상기 데이터 모델을 해당 데이터 모델에 접근이 허용된 해당 모듈에 맵핑시키어 저장하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
  10. 제 1항에 있어서,
    상기 PLC 소프트웨어 작성기를 통해 생성된 모듈들을 상기 저장소에 저장하고 상기 저장소에 저장된 모듈을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 모듈 자산 관리기;
    상기 PLC 소프트웨어 작성기를 통해 생성된 데이터 모델을 상기 저장소에 저장하고 상기 저장소에 저장된 데이터 모델을 상기 PLC 소프트웨어 작성기로 불러오는 기능을 수행하는 데이터 모델 자산 관리기;
    상기 제어 대상이 되는 설비의 운영조건을 저장하는 운영조건 자산 관리기; 및
    사용자에 의해 작성된 늦은 결합 조건식들에 대해서 사용자가 운영조건을 설정하거나 상기 자산 관리기에 저장된 운영조건을 선택하면 선택된 운영조건을 상기 PLC 소프트웨어 작성기를 통해 생성된 모듈과 결합하여 완전한 모듈을 생성하는 모듈-운영 조건 결합기;
    를 더 포함하는 것을 특징으로 하는 피엘씨 소프트웨어 개발환경 제공 시스템.
KR1020090133811A 2009-12-30 2009-12-30 피엘씨 소프트웨어 개발환경 제공 시스템 KR101085114B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090133811A KR101085114B1 (ko) 2009-12-30 2009-12-30 피엘씨 소프트웨어 개발환경 제공 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090133811A KR101085114B1 (ko) 2009-12-30 2009-12-30 피엘씨 소프트웨어 개발환경 제공 시스템

Publications (2)

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

Family

ID=44916887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090133811A KR101085114B1 (ko) 2009-12-30 2009-12-30 피엘씨 소프트웨어 개발환경 제공 시스템

Country Status (1)

Country Link
KR (1) KR101085114B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113495752A (zh) * 2020-04-03 2021-10-12 中国科学院沈阳自动化研究所 一种基于工艺变更后代码快速重构的方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160106987A (ko) 2015-03-03 2016-09-13 부산대학교 산학협력단 Scada를 이용한 plc/hmi 통합 시스템

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 (zh) * 2020-04-03 2021-10-12 中国科学院沈阳自动化研究所 一种基于工艺变更后代码快速重构的方法及系统
CN113495752B (zh) * 2020-04-03 2024-04-30 中国科学院沈阳自动化研究所 一种基于工艺变更后代码快速重构的方法及系统

Also Published As

Publication number Publication date
KR101085114B1 (ko) 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
US7657404B2 (en) Engineering method and system for industrial automation systems
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 (zh) 编制和/或执行用于工业自动化系统的程序的装置和方法
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 (ko) 피엘씨 소프트웨어 개발환경 제공 시스템
CN108121285A (zh) 基于连续功能图的应用软件协同编译方法及装置
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 (zh) 用于构成数控系统的软件架构和硬件架构
EP1577724B1 (en) Agent program environment
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
US20080127081A1 (en) Method of Exchanging Data and Control Methods Between Software Components and Re-Useable Software Components
EP4307104A1 (en) Extensible profiles for industrial controller devices
US20240103850A1 (en) Presentation design to background service binding

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