KR20120095513A - Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템 - Google Patents

Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템 Download PDF

Info

Publication number
KR20120095513A
KR20120095513A KR1020110014872A KR20110014872A KR20120095513A KR 20120095513 A KR20120095513 A KR 20120095513A KR 1020110014872 A KR1020110014872 A KR 1020110014872A KR 20110014872 A KR20110014872 A KR 20110014872A KR 20120095513 A KR20120095513 A KR 20120095513A
Authority
KR
South Korea
Prior art keywords
code
general
program
xml
xml interface
Prior art date
Application number
KR1020110014872A
Other languages
English (en)
Other versions
KR101243437B1 (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 KR1020110014872A priority Critical patent/KR101243437B1/ko
Publication of KR20120095513A publication Critical patent/KR20120095513A/ko
Application granted granted Critical
Publication of KR101243437B1 publication Critical patent/KR101243437B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/423Preprocessors

Landscapes

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

Abstract

본 발명에 따른 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법은 IEC 61131-3에 따른 펑션 블록 다이어그램 언어를 사용하여 PLCopen 코드가 작성되는 S1 단계, S1 단계의 PLCopen 코드가 XML 요소 테이블에 구성요소 별로 저장되는 S2 단계, S2 단계에서 XML 요소 테이블을 이용하여 XML 인터페이스가 생성되는 S3 단계 및 S3 단계에서 생성된 XML 인터페이스를 이용하여 범용 프로그램 코드가 생성되는 S4 단계를 포함한다.
전용 PLC 컨트롤러에서만 동작하는 PLCopen 프로그램이 범용 PC에서 동작 가능하므로, 프로그램 재사용성 및 유연성이 높아진다.

Description

PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템{METHOD AND FRAMEWORK SYSTEM FOR CONVERTING PLC BASED CONTROL CODE TO A GENERAL PROGRAM CODE USING XML INTERFACE}
본 발명은 PLC 기반 제어 코드를 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템에 관한 것이다. 특히 본 발명은 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 C++과 같은 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템에 관한 것이다.
PLCopen은 공정자동화 및 실시간 로봇제어 분야에 널리 사용하고 있는 하드웨어 제어 언어이다. PLCopen 기반의 제어 프로그램은 전용 PLC 컨트롤러에 탑재되어 동작하게 되는데, 이는 프로그램 재사용성, 유연성, 호환성 부분에 심각한 문제를 야기한다.
일반적으로 사용되는 범용 PC에서 PLC 기반 코드를 작동시킬 수 있다면, 이를 통해 오류 분석 및 해석 처리에 매우 유용하기 때문에, PLC 기반 코드를 범용 PC 코드로 변환하는 방법에 대한 필요성이 요구된다.
본 발명에 따른 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템은 다음과 같은 해결과제를 목적으로 한다.
첫째, PLC 기반 제어 코드를 C++과 같은 범용 프로그램 코드로 변환하고자 한다.
둘째, 그래픽 기반의 PLCopen 언어인 Function Block Diagram을 분석하여 XML 인터페이스로 나타내고자 한다.
셋째, 생성된 XML 인터페이스를 기반으로 범용 PC에서 동작 가능한 C++과 같은 범용 프로그램 코드를 생성하고자 한다.
넷째, IEC 61131-3에 따른 Function Block Diagram 언어로 처리하기 힘든 문제점은 C언어 기반의 텍스트 코드를 제공하여 오류분석 및 데이터 신뢰성을 높이고자 한다.
본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
본 발명에 따른 PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법은 IEC 61131-3에 따른 펑션 블록 다이어그램 언어를 사용하여 PLCopen 코드가 작성되는 S1 단계, S1 단계의 PLCopen 코드가 XML 요소 테이블에 구성요소 별로 저장되는 S2 단계, S2 단계에서 XML 요소 테이블을 이용하여 XML 인터페이스가 생성되는 S3 단계 및 S3 단계에서 생성된 XML 인터페이스를 이용하여 범용 프로그램 코드가 생성되는 S4 단계를 포함한다.
본 발명에 따른 S2 단계에서 분류되어 저장되는 구성요소는 시스템구성요소, 리소스요소 및 프로그램요소를 포함하는 것을 특징으로 한다.
본 발명에 따른 시스템구성요소는 PLCopen 코드 식별을 위한 고유ID, 코드 이름 및 저장 경로를 포함하는 기본 프로그램 정보인 것을 특징으로 한다.
본 발명에 따른 리소스요소는 PLCopen 코드에 사용자 정의 구성요소가 추가된 경우, 추가된 사용자 정의 구성요소를 참조하기 위한 것을 특징으로 한다.
본 발명에 따른 프로그램요소는 PLCopen 코드의 제어동작을 정의하는 요소로서, 독립적인 스레드로 동작하는 구성요소인 것을 특징으로 한다.
본 발명에 따른 S3 단계는 XML 요소 테이블에 저장된 구성요소에 속성정보 및 속성값을 할당하는 S3-1 단계 및 할당이 완료된 XML 요소 테이블을 이용하여 구성요소 별 XML 인터페이스를 생성하는 S3-2 단계를 포함한다.
본 발명에 따른 S4 단계는 S3 단계에서 생성된 XML 인터페이스의 정보를 공통요소테이블에 시스템구성요소, 리소스요소, 프로그램요소 및 fBs 요소 순서대로 저장되는 S4-1 단계, fBs 요소에 정의된 입출력 인터페이스를 이용하여 입출력 코드가 생성되는 S4-2 단계, fBs 요소가 갖는 기능과 범용 프로그램 언어를 사전에 매칭한 분류자(classifier)를 이용하여, S4-2 단계의 fBs 요소의 기능을 수행하는 범용 프로그램 언어 코드를 검출하는 S4-3 단계 및 S4-2 단계의 입출력 코드와 S4-3 단계에서 검출된 범용 프로그램 언어 코드를 병합하여 범용 PC에서 동작하는 범용 프로그램 언어 코드를 생성하는 S4-4 단계를 포함한다.
본 발명에 따른 fBS 요소는 PLC 프로그램을 구성하는 펑션 블록 정보를 나타내는 요소로서, 펑션 블록의 이름, 식별 ID 및 참조 경로 정보를 포함하는 것을 특징으로 한다.
본 발명에 따른 PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템은 IEC 61131-3에 따른 펑션 블록 다이어그램 언어를 사용하여 PLCopen 코드가 생성되는 PLCopen 코드 생성부, PLCopen 코드 생성부에서 생성된 PLCopen 코드를 이용하여 XML 인터페이스가 생성되는 XML 인터페이스 생성부 및 XML 인터페이스 생성부에서 생성된 XML 인터페이스를 이용하여 범용 프로그램 코드를 생성하는 범용 코드 생성부를 포함한다.
본 발명에 따른 XML 인터페이스 생성부는 PLCopen 코드의 구성요소를 분류하는 구성요소 분류부, 구성요소 분류부에서 분류된 PLCopen 코드의 구성요소가 저장되는 XML 요소 테이블부,
XML 요소 테이블에 저장된 구성요소에 속성정보 및 속성값을 할당하는 속성 할당부 및 속성 할당부에서 속성정보 및 속성값이 할당이 완료된 XML 요소 테이블을 XML 인터페이스로 변환하는 인터페이스 변환부를 포함한다.
본 발명에 따른 구성요소 분류부는 시스템구성요소, 리소스요소 및 프로그램요소의 종류에 따라 분류하는 것을 특징으로 한다.
본 발명에 따른 범용 코드 생성부는 XML 인터페이스의 정보를 시스템구성요소, 리소스요소, 프로그램요소 및 fBs 요소 순서대로 저장하는 공통요소테이블 생성부, fBs 요소에 정의된 입출력 인터페이스를 이용하여 입출력 코드를 생성하는 입출력 코드 생성부, 모든 fBs 요소에 대하여 동일한 기능을 수행하는 범용 프로그램 언어를 사전에 매칭한 분류자(classifier)부, 분류자(classifier)부를 이용하여 공통요소테이블 생성부에 저장된 fBs 요소에 대응되는 범용 프로그램 언어를 검출하는 범용 언어 검출부 및 입출력 코드 생성부에서 생성한 입출력 코드와 범용 언어 검출부에서 검출한 범용 프로그램 언어를 병합하여 범용 프로그램 언어 코드를 생성하는 병합부를 포함한다.
본 발명에 따른 fBS 요소는 PLC 프로그램을 구성하는 펑션 블록 정보를 나타내는 요소로서, 펑션 블록의 이름, 식별 ID 및 참조 경로 정보를 포함한다.
본 발명은 PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.
본 발명에 따른 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템은 다음과 같은 효과를 갖는다.
첫째, 전용 PLC 컨트롤러에서만 동작하는 PLCopen 프로그램이 범용 PC에서 동작 가능하므로, 프로그램 재사용성 및 유연성이 높아진다.
둘째, XML 인터페이스로 저장한 PLCopen 프로그램 정보는 PLCopen 표준 IEC 61131-3을 준수하는 다른 분석 및 제어 프로그램에 재사용 가능하다.
셋째, IEC 61131-3에 따른 Function Block Diagram 언어로 처리하기 힘든 오류분석이 가능하므로, 데이터 신뢰성이 향상된다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
도 1은 본 발명에 따른 PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법의 개략적인 순서를 도시한 순서도이다.
도 2는 XML 요소를 분류하기 위해 정의한 요소 분류 기준을 도시한 블록도이다.
도 3은 XML 인터페이스를 이용하여 범용 프로그램 코드가 생성되는 S4 단계에 대한 순서도이다.
도 4는 XML 인터페이스 파일에 저장된 정보를 C++ 코드로 변환하는 과정을 도시한 블록도이다.
도 5는 본 발명에 따른 XML 인터페이스 기반의 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템의 구성을 도시한 블록도이다.
도 6은 본 발명의 프레임워크 시스템의 동작을 개략적으로 도시한 구조도이다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
이하에서는 도면을 참조하면서 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템에 관하여 구체적으로 설명하겠다.
도 1은 본 발명에 따른 PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법의 개략적인 순서를 도시한 순서도이다.
본 발명에 따른 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법은 IEC 61131-3에 따른 펑션 블록 다이어그램 언어를 사용하여 PLCopen 코드가 작성되는 S1 단계, S1 단계의 PLCopen 코드가 XML 요소 테이블에 구성요소 별로 저장되는 S2 단계, S2 단계에서 XML 요소 테이블을 이용하여 XML 인터페이스가 생성되는 S3 단계 및 S3 단계에서 생성된 XML 인터페이스를 이용하여 범용 프로그램 코드가 생성되는 S4 단계를 포함한다.
S1 단계는 사용자 또는 시스템을 통해 특정한 PLCopen 코드가 작성되는 단계를 말한다. S2 및 S3 단계는 그래픽 기반의 PLCopen 언어인 Function Block Diagram을 분석하여 XML 인터페이스로 나타내기 위한 단계이다.
S2 단계에서 분류되어 저장되는 구성요소는 시스템구성요소, 리소스요소 및 프로그램요소를 포함한다. 도 2는 XML 요소를 분류하기 위해 정의한 요소 분류 기준을 도시한 블록도이다. 이하 괄호 안의 영문표기는 도 2에 표시된 내용과 동일한 것이다.
라이브러리요소(libraryelement)는 전체 프로그램 정보를 나타내는 구성요소로서 시스템구성요소(systemConfiguration), 리소스요소(Resource) 및 프로그램요소(Program)의 3가지 하위 요소(element)를 갖는다.
시스템구성요소는 프로그램 식별을 위한 고유 ID값과 프로그램 이름, 저장 경로와 같은 기본적인 프로그램 설정 정보를 갖는다. 프로그램요소는 실질적인 제어동작을 정의한 요소로서, 독립적인 스레드로 동작하는 프로그램 구성요소들을 정의한다. 리소스요소는 사용자 정의 구성요소를 추가한 경우, 이를 참조하기 위하여 사용하는 요소이다.
프로그램요소는 fBs 요소(fBs), 인터페이스요소(interface), 데이터연결요소(data connections), 이벤트연결요소(event connections), 사용자변수요소(vardeclarations) 등의 하위 요소를 갖는다.
fBs 요소는 Program을 구성하는 Function block 정보를 나타내는 요소이다. Function block의 이름, 식별 ID, 참조 경로의 정보가 attribute형태로 기록되어 있다.
인터페이스요소는 프로그램요소의 입출력 정보를 나타낸다. 이벤트 입출력 정보와 데이터 입출력 정보로 나누어진다.
데이터연결요소는 프로그램요소가 다른 프로그램요소 또는 Function block 요소들과의 데이터 연결 관계를 갖는 경우, 이 연결관계를 나타내기 위한 요소이다. 다른 프로그램요소 또는 Function block 요소에서 데이터가 입출력으로 프로그램에 들어오는 경우, 해당 경로를 상세하게 나타낸다.
이벤트연결요소는 프로그램요소가 다른 프로그램요소 또는 Function block 요소들과의 이벤트 연결 관계를 갖는 경우, 이를 나타내기 위한 요소이다. 다른 프로그램요소 또는 Function block 요소에서 이벤트가 입출력으로 프로그램에 들어오는 경우, 해당 경로를 상세하게 나타낸다.
사용자변수요소는 별도의 사용자 정의 변수를 프로그램요소에 추가한 경우, 이를 나타내기 위한 요소이다. 변수의 이름, 값, 식별자 정보 등이 저장된다.
각각의 fBs 요소는 서로 다른 fBs 요소들과 프로세스 연결 관계를 가질 있다. 이를 표현하기 위하여 fBs 요소는 별도의 인터페이스, 데이터연결, 이벤트연결 하위요소를 갖는다.
fBs 하위 인터페이스요소는 fBs 요소의 입출력 정보를 나타낸다. 이벤트 입출력 정보와 데이터 입출력 정보로 나누어진다.
fBs 하위 데이터연결요소는 fBs 요소가 다른 fBs 요소들과의 데이터 연결 관계를 갖는 경우, 이를 나타내기 위한 요소이다. 다른 fBs 요소에서 데이터가 입출력으로 프로그램에 들어오는 경우, 해당 경로를 상세하게 나타낸다.
fBs 하위 이벤트연결요소는 fBs 요소가 다른 fBs 요소들과의 이벤트 연결 관계를 갖는 경우, 이를 나타내기 위한 요소이다. 다른 fBs 요소에서 이벤트가 입출력으로 프로그램에 들어오는 경우, 해당 경로를 상세하게 나타낸다.
S3 단계는 XML 요소 테이블에 저장된 구성요소에 속성정보 및 속성값을 할당하는 S3-1 단계 및 할당이 완료된 XML 요소 테이블을 이용하여 구성요소 별 XML 인터페이스를 생성하는 S3-2 단계를 포함한다.
전술한 바와 같이 분류되는 구성요소 형식으로 저장된 XML 요소 table 정보를 사용하여, XML 인터페이스를 파일로 생성하는 것이 바람직하다.
도 3은 XML 인터페이스를 이용하여 범용 프로그램 코드가 생성되는 S4 단계에 대한 순서도이다.
S4 단계는 S3 단계에서 생성된 XML 인터페이스의 정보를 공통요소테이블에 시스템구성요소, 리소스요소, 프로그램요소 및 fBs 요소 순서대로 저장되는 S4-1 단계, fBs 요소에 정의된 입출력 인터페이스를 이용하여 입출력 코드가 생성되는 S4-2 단계, fBs 요소가 갖는 기능과 범용 프로그램 언어를 사전에 매칭한 분류자(classifier)를 이용하여, S4-2 단계의 fBs 요소의 기능을 수행하는 범용 프로그램 언어 코드를 검출하는 S4-3 단계 및 S4-2 단계의 입출력 코드와 S4-3 단계에서 검출된 범용 프로그램 언어 코드를 병합하여 범용 PC에서 동작하는 범용 프로그램 언어 코드를 생성하는 S4-4 단계를 포함한다.
도 4는 XML 인터페이스 파일에 저장된 정보를 C++ 코드로 변환하는 과정을 도시한 블록도이다. XML 인터페이스가 파일 형태로 저장된 후 사용되는 것으로 설명한다.
XML 인터페이스 파일의 정보를 공통 요소 테이블(Common Element table)에 상위 요소부터 시작하여 분류 저장한다. Interface analysis 부분은 상위 요소를 분류하는 부분이다. 1차적으로 시스템구성요소 정보가 저장되고, 2차적으로 리소스요소 정보가 저장된다. 3차적으로, 독립적인 스레드로 동작하는 프로그램요소 정보가 저장되고, 4차적으로 프로그램을 구성하는 fBs 요소 정보들이 저장된다.
공통 요소 테이블에는 C++ 코드를 구성하기 위한 정보만 저장한다. vardeclarations 부분은 fBs 요소에서 정의한 입출력 인터페이스를 사용하여, 입출력 코드를 생성하는 부분이다. 다른 fBs 요소들과 연결 관계를 갖는 경우 vardeclarations 부분에 이를 나타낸다.
사전 정의 요소(Pre define elements)부분은 fBs가 갖는 고유의 기능을 C++ 코드로 정의해 놓은 곳이다. fBs를 식별하는 ID값으로 해당 fBs가 어떤 기능을 하는지 파악한다. 기능이 파악된 fBs는 미리 정의해둔 C++ 코드를 불러와 vardeclarations 부분에 정의한 입출력 정보들과 병합된다. 합쳐진 C++ 코드는 범용 PC에서 컴파일 및 실행 가능한 프로그램 코드로 동작한다.
이하 본 발명에 따른 XML 인터페이스 기반의 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템에 대해 설명하고자 한다. 전술한 PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법과 동일한 부분에 대해서는 간략하게 설명하기로 한다.
도 5는 본 발명에 따른 XML 인터페이스 기반의 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템(100)의 구성을 도시한 블록도이다.
본 발명에 따른 XML 인터페이스 기반의 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템은 IEC 61131-3에 따른 펑션 블록 다이어그램 언어를 사용하여 PLCopen 코드가 생성되는 PLCopen 코드 생성부(110), PLCopen 코드 생성부에서 생성된 PLCopen 코드를 이용하여 XML 인터페이스가 생성되는 XML 인터페이스 생성부(120) 및 XML 인터페이스 생성부에서 생성된 XML 인터페이스를 이용하여 범용 프로그램 코드를 생성하는 범용 코드 생성부(130)를 포함한다.
XML 인터페이스 생성부(120)는 PLCopen 코드의 구성요소를 분류하는 구성요소 분류부(121), 구성요소 분류부에서 분류된 PLCopen 코드의 구성요소가 저장되는 XML 요소 테이블부(122), XML 요소 테이블부(122)에 저장된 구성요소에 속성정보 및 속성값을 할당하는 속성 할당부(123) 및 속성 할당부(123)에서 속성정보 및 속성값이 할당이 완료된 XML 요소 테이블을 XML 인터페이스로 변환하는 인터페이스 변환부(124)를 포함한다.
구성요소 분류부(121)는 시스템구성요소, 리소스요소 및 프로그램요소의 종류에 따라 분류하는 것을 특징으로 한다.
범용 코드 생성부(130)는 XML 인터페이스의 정보를 시스템구성요소, 리소스요소, 프로그램요소 및 fBs 요소 순서대로 저장하는 공통요소테이블 생성부(131), fBs 요소에 정의된 입출력 인터페이스를 이용하여 입출력 코드를 생성하는 입출력 코드 생성부(132), 모든 fBs 요소에 대하여 동일한 기능을 수행하는 범용 프로그램 언어를 사전에 매칭한 분류자(classifier)부(133), 분류자부(133)를 이용하여 공통요소테이블 생성부에 저장된 fBs 요소에 대응되는 범용 프로그램 언어를 검출하는 범용 언어 검출부(134) 및 입출력 코드 생성부(132)에서 생성한 입출력 코드와 범용 언어 검출부(134)에서 검출한 범용 프로그램 언어를 병합하여 범용 프로그램 언어 코드를 생성하는 병합부(135)를 포함한다.
도 6은 본 발명의 프레임워크의 동작을 개략적으로 도시한 구조도이다. XML 인터페이스 생성부(120) 중 XML 요소 테이블부(122)가 도시되어 있고, 인터페이스 변환부(124)가 변환한 최종 XML 인터페이스가 도시되어 있다. 도 6에서는 C++ 코드로 변환되는 구성이 도시된다.
그래픽 모델링(Graphic modeling)에서 작성된 그래픽 코드를 XML 요소로 분류하기 위해 정의된 분류기준에 맞춰서 XML 요소 테이블부(122)에 정보를 저장한다. XML 요소 테이블부(122)에 저장된 구성 요소들은 PLCopen 제어코드를 구성하는 각각의 객체들이다. 생성한 XML 요소 테이블을 사용하여, 각 요소에 필요한 속성정보들을 구성하고, 속성정보들에게 값을 할당한다. 속성정보 구성 및 속성 값 할당이 완료된 XML 요소 테이블을 포함한 XML 요소 테이블부(122)를 사용하여 XML 인터페이스를 구성한다. 구성한 XML 인터페이스를 기반으로 범용 코드 생성부(XMLgenerator)가 C++ 코드를 생성한다.
본 발명의 또 다른 측면은 전술한 PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법을 컴퓨터에서 실행시키기 위한 프로그램이다. 프로그램을 컴퓨터에서 실행하기 위해, PLC 기반 제어 프로그램을 XML 인터페이스 기반의 범용 프로그램 코드로 변환하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.
본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.
100 : 프레임워크 시스템 110 : PLCopen 코드 생성부
120 : XML 인터페이스 생성부 121 : 구성요소 분류부
122 : XML 요소 테이블부 123 : 속성 할당부
124 : 인터페이스 변환부 130 : 범용 코드 생성부
131 : 공통요소테이블 생성부 132 : 입출력 코드 생성부
133 : 분류자부 134 : 범용 언어 검출부
135 : 병합부

Claims (14)

  1. IEC 61131-3에 따른 펑션 블록 다이어그램 언어를 사용하여 PLCopen 코드가 작성되는 S1 단계;
    상기 S1 단계의 PLCopen 코드가 XML 요소 테이블에 구성요소 별로 저장되는 S2 단계;
    상기 S2 단계에서 XML 요소 테이블을 이용하여 XML 인터페이스가 생성되는 S3 단계; 및
    상기 S3 단계에서 생성된 XML 인터페이스를 이용하여 범용 프로그램 코드가 생성되는 S4 단계를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  2. 제1항에 있어서,
    상기 S2 단계에서 분류되어 저장되는 구성요소는 시스템구성요소, 리소스요소 및 프로그램요소를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  3. 제2항에 있어서,
    상기 시스템구성요소는 PLCopen 코드 식별을 위한 고유ID, 코드 이름 및 저장 경로를 포함하는 기본 프로그램 정보인 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  4. 제2항에 있어서,
    상기 리소스요소는 PLCopen 코드에 사용자 정의 구성요소가 추가된 경우, 추가된 사용자 정의 구성요소를 참조하기 위한 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  5. 제2항에 있어서,
    상기 프로그램요소는 PLCopen 코드의 제어동작을 정의하는 요소로서, 독립적인 스레드로 동작하는 구성요소인 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  6. 제1항에 있어서,
    상기 S3 단계는 상기 XML 요소 테이블에 저장된 구성요소에 속성정보 및 속성값을 할당하는 S3-1 단계; 및
    상기 할당이 완료된 XML 요소 테이블을 이용하여 구성요소 별 XML 인터페이스를 생성하는 S3-2 단계를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  7. 제1항에 있어서,
    상기 S4 단계는
    상기 S3 단계에서 생성된 XML 인터페이스의 정보를 공통요소테이블에 시스템구성요소, 리소스요소, 프로그램요소 및 fBs 요소 순서대로 저장되는 S4-1 단계;
    상기 fBs 요소에 정의된 입출력 인터페이스를 이용하여 입출력 코드가 생성되는 S4-2 단계;
    fBs 요소가 갖는 기능과 범용 프로그램 언어를 사전에 매칭한 분류자(classifier)를 이용하여, S4-2 단계의 fBs 요소의 기능을 수행하는 범용 프로그램 언어 코드를 검출하는 S4-3 단계; 및
    상기 S4-2 단계의 입출력 코드와 상기 S4-3 단계에서 검출된 범용 프로그램 언어 코드를 병합하여 범용 PC에서 동작하는 범용 프로그램 언어 코드를 생성하는 S4-4 단계를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  8. 제7항에 있어서,
    상기 fBS 요소는 PLC 프로그램을 구성하는 펑션 블록 정보를 나타내는 요소로서, 펑션 블록의 이름, 식별 ID 및 참조 경로 정보를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법.
  9. IEC 61131-3에 따른 펑션 블록 다이어그램 언어를 사용하여 PLCopen 코드가 생성되는 PLCopen 코드 생성부;
    상기 PLCopen 코드 생성부에서 생성된 PLCopen 코드를 이용하여 XML 인터페이스가 생성되는 XML 인터페이스 생성부; 및
    상기 XML 인터페이스 생성부에서 생성된 XML 인터페이스를 이용하여 범용 프로그램 코드를 생성하는 범용 코드 생성부를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템.
  10. 제9항에 있어서,
    상기 XML 인터페이스 생성부는
    PLCopen 코드의 구성요소를 분류하는 구성요소 분류부;
    상기 구성요소 분류부에서 분류된 PLCopen 코드의 구성요소가 저장되는 XML 요소 테이블부;
    상기 XML 요소 테이블에 저장된 구성요소에 속성정보 및 속성값을 할당하는 속성 할당부; 및
    상기 속성 할당부에서 속성정보 및 속성값이 할당이 완료된 XML 요소 테이블을 XML 인터페이스로 변환하는 인터페이스 변환부를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템.
  11. 제10항에 있어서,
    상기 구성요소 분류부는 시스템구성요소, 리소스요소 및 프로그램요소의 종류에 따라 분류하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템.
  12. 제9항에 있어서,
    상기 범용 코드 생성부는
    XML 인터페이스의 정보를 시스템구성요소, 리소스요소, 프로그램요소 및 fBs 요소 순서대로 저장하는 공통요소테이블 생성부;
    상기 fBs 요소에 정의된 입출력 인터페이스를 이용하여 입출력 코드를 생성하는 입출력 코드 생성부;
    모든 fBs 요소에 대하여 동일한 기능을 수행하는 범용 프로그램 언어를 사전에 매칭한 분류자(classifier)부;
    상기 분류자(classifier)부를 이용하여 상기 공통요소테이블 생성부에 저장된 fBs 요소에 대응되는 범용 프로그램 언어를 검출하는 범용 언어 검출부; 및
    상기 입출력 코드 생성부에서 생성한 입출력 코드와 상기 범용 언어 검출부에서 검출한 범용 프로그램 언어를 병합하여 범용 프로그램 언어 코드를 생성하는 병합부를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템.
  13. 제12항에 있어서,
    상기 fBS 요소는 PLC 프로그램을 구성하는 펑션 블록 정보를 나타내는 요소로서, 펑션 블록의 이름, 식별 ID 및 참조 경로 정보를 포함하는 것을 특징으로 하는 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하기 위한 프레임워크 시스템.
  14. 제1항 내지 제8항 중 어느 한 항에 따른 PLC 기반 제어 코드를 XML 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020110014872A 2011-02-21 2011-02-21 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템 KR101243437B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110014872A KR101243437B1 (ko) 2011-02-21 2011-02-21 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110014872A KR101243437B1 (ko) 2011-02-21 2011-02-21 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템

Publications (2)

Publication Number Publication Date
KR20120095513A true KR20120095513A (ko) 2012-08-29
KR101243437B1 KR101243437B1 (ko) 2013-03-13

Family

ID=46885931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110014872A KR101243437B1 (ko) 2011-02-21 2011-02-21 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템

Country Status (1)

Country Link
KR (1) KR101243437B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101627769B1 (ko) * 2015-12-17 2016-06-08 주식회사 유디엠텍 Plc 제어 프로그램의 공용형식 변환장치 및 방법
WO2017018670A1 (ko) * 2015-07-29 2017-02-02 주식회사 유디엠텍 이기종 plc 설비정보를 동일 포맷의 모듈로 생성하는 방법
WO2018030831A1 (ko) * 2016-08-12 2018-02-15 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
CN109643100A (zh) * 2016-08-12 2019-04-16 乌德姆泰克公司 用于将plc控制程序转换为结构化数据的设备和方法
CN110221824A (zh) * 2019-06-03 2019-09-10 精硕科技(北京)股份有限公司 组件的生成方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102509859B1 (ko) * 2021-04-21 2023-03-24 주식회사 유디엠텍 Plc 래더정보로부터 공용 명령어정보를 추출하는 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099312A (ja) * 2000-09-22 2002-04-05 Mitsubishi Electric Corp プログラマブルコントローラおよび制御プログラム開発支援装置
US20090083719A1 (en) 2007-09-20 2009-03-26 Delta Electronics, Inc. Method of compiling machine code program for programmable logic controller
KR20100063957A (ko) * 2008-12-04 2010-06-14 컴파일테크놀로지(주) 임베디드 컨트롤 방법
JP5262765B2 (ja) * 2009-01-29 2013-08-14 株式会社明電舎 Plcのプログラム変換ツール

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017018670A1 (ko) * 2015-07-29 2017-02-02 주식회사 유디엠텍 이기종 plc 설비정보를 동일 포맷의 모듈로 생성하는 방법
KR101627769B1 (ko) * 2015-12-17 2016-06-08 주식회사 유디엠텍 Plc 제어 프로그램의 공용형식 변환장치 및 방법
WO2017104934A1 (ko) * 2015-12-17 2017-06-22 주식회사 유디엠텍 Plc 제어 프로그램의 공용형식 변환장치 및 방법
WO2018030831A1 (ko) * 2016-08-12 2018-02-15 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
CN109643100A (zh) * 2016-08-12 2019-04-16 乌德姆泰克公司 用于将plc控制程序转换为结构化数据的设备和方法
CN109643100B (zh) * 2016-08-12 2021-07-20 乌德姆泰克公司 用于将plc控制程序转换为结构化数据的设备和方法
CN110221824A (zh) * 2019-06-03 2019-09-10 精硕科技(北京)股份有限公司 组件的生成方法和装置
CN110221824B (zh) * 2019-06-03 2024-03-22 北京秒针人工智能科技有限公司 组件的生成方法和装置

Also Published As

Publication number Publication date
KR101243437B1 (ko) 2013-03-13

Similar Documents

Publication Publication Date Title
KR101243437B1 (ko) Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템
CN104778124A (zh) 一种软件应用自动化测试方法
CN104317589A (zh) 一种用于加载动态链接库的代码自动生成方法及装置
CN105808799A (zh) 一种rtx环境下通用测试软件及其测试方法
JP7031627B2 (ja) 解析装置、解析方法、及び解析プログラム
CN113590104B (zh) 实现图形化无代码软件开发平台及方法
CN101901148A (zh) 基于autosar标准的ecu参数配置界面生成方法
Zaraket et al. Guicop: Specification-based gui testing
CN111414170A (zh) 一种可视化编排测试过程的装置及方法
Hopsu et al. On portability of IEC 61499 compliant structures and systems
CN106293687A (zh) 一种打包流程的控制方法,及装置
Aho et al. Dynamic reverse engineering of GUI models for testing
KR101216916B1 (ko) Fbn 기반의 plc 코드를 범용 프로그램 코드로 변환하는 방법 및 시스템
JP7338922B2 (ja) 異種埋め込み型の表形式化動作プロセスの処理および実行方法および装置
WO2023044631A1 (en) A device, system, method and storage medium for ai application deployment
CN110851516B (zh) 主机运控系统及方法
CN114036055A (zh) 一种xmind测试用例与jmeter脚本互转的系统
WO2008015110A2 (en) Methods, apparatus and computer programs for modelling computer programs
CN114509986B (zh) 一种基于xml文件的跨平台HMI组态配置系统和方法
Dorninger et al. Automated reengineering of industrial HMI screens by static analysis
JP5948926B2 (ja) オブジェクト指向プログラム生成装置、プログラム
JP7063291B2 (ja) 解析装置、解析方法、及び解析プログラム
KR102509859B1 (ko) Plc 래더정보로부터 공용 명령어정보를 추출하는 장치 및 방법
Hanák Advanced PLC programming methods
JP7188198B2 (ja) グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム

Legal Events

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

Payment date: 20160113

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181206

Year of fee payment: 6

R401 Registration of restoration
LAPS Lapse due to unpaid annual fee