KR101627769B1 - Plc 제어 프로그램의 공용형식 변환장치 및 방법 - Google Patents

Plc 제어 프로그램의 공용형식 변환장치 및 방법 Download PDF

Info

Publication number
KR101627769B1
KR101627769B1 KR1020150181242A KR20150181242A KR101627769B1 KR 101627769 B1 KR101627769 B1 KR 101627769B1 KR 1020150181242 A KR1020150181242 A KR 1020150181242A KR 20150181242 A KR20150181242 A KR 20150181242A KR 101627769 B1 KR101627769 B1 KR 101627769B1
Authority
KR
South Korea
Prior art keywords
common
instruction
plc control
control program
block
Prior art date
Application number
KR1020150181242A
Other languages
English (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 KR1020150181242A priority Critical patent/KR101627769B1/ko
Application granted granted Critical
Publication of KR101627769B1 publication Critical patent/KR101627769B1/ko
Priority to US16/063,383 priority patent/US20180373218A1/en
Priority to PCT/KR2016/009490 priority patent/WO2017104934A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13152Modification of program

Landscapes

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

Abstract

PLC 제어프로그램의 공용형식 변환장치 및 방법이 개시된다. 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치는, 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 공용 명령어 라이브러리 구축부; 와 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 공용형식 변환부를 포함한다.

Description

PLC 제어 프로그램의 공용형식 변환장치 및 방법{APPARATUS AND METHOD OF TRANSFORMING TEXT TYPE OF PLC CONTROL PROGRAM INTO COMMON TYPE OF PLC CONTROL PROGRAM}
본 발명은 PLC(Programmable Logic Controller) 제어 프로그램의 공용형식 변환장치 및 방법에 관한 것으로, 더욱 자세하게는 PLC 제조사 별로 서로 다른 텍스트 형식을 갖는 PLC 제어 프로그램을 공용형식(common type)의 PLC 제어 프로그램으로 변환하는 PLC 제어 프로그램의 공용형식 변환장치 및 방법에 관한 것이다.
PLC(Programmable Logic Controller)는 자동화 산업의 공정제어를 위한 안정성이 보장된 제어장치로써, 다품종 소량생산으로 인한 현장의 잦은 시스템 변경에 대응하기 위해 프로그램이 가능하며 소규모이고 시스템 변경에 비교적 자유로운 제어기의 필요성에서부터 개발되었다.
PLC를 동작하기 위한 프로그래밍 언어에는 LD(Ladder Diagram), FBD(Function Block Diagram), ST(Structured Text), IL(Instruction List), SFC(Sequential Function Chart), CFC(Continuous Function Chart) 등이 있으며, 국제 규격 IEC 61131-3에 규정되어 있다.
PLC 제어 프로그램의 구조는 크게 PLC의 접점에 대한 정보를 담고 있는 태그 정보와 구동되는 PLC 프로그램에 대한 정보를 담고 있는 로직 정보로 구분할 수 있다. 이 중 로직 정보는 자동화 공정을 운영하는데 있어서 가장 기본이 되는 요소로써 설비/공정/라인 제어를 위한 시퀀스(sequence)와 조건 등에 대한 정보를 모두 포함하고 있어서, 최근 공정 운영 최적화 방법에 대한 관심이 높아지고 있는 상황에서, 공정 운영 분석을 위한 핵심 정보로 사용될 수 있다.
PLC 제어 프로그램의 제어 로직은 다양한 PLC 프로그래밍 언어들 중 언어의 직관성과 단순함으로 인하여 산업 현장 대부분에서 LD로 프로그래밍 되고 있다. LD는 스텝(step) 별로 출력을 위한 접점(Contact)들을 AND, OR구조로 배치하고 다양한 산술, 함수 등을 사용하여 공정제어를 위한 시퀀스와 조건 등의 작성이 이루어지도록 한다.
LD로 작성된 PLC 제어 프로그램은 처리 및 분석을 위해서 텍스트(Text) 기반의 PLC 제어 프로그램으로 변환된다. 텍스트 기반의 PLC 제어 프로그램의 형태는 PLC 제조사 별로 상이하다. PLC 제조사인 미쯔비시(MITSUBISHI)와 LS 산전의 경우 IL을 이용하여 PLC 제어 프로그램의 제어 로직을 텍스트로 표현하며, 지멘스(SIEMENS)사의 경우 STL로 PLC 제어 프로그램의 제어 로직을 텍스트로 표현하며, Rockwell 사의 경우 자사의 플랫폼에 따라 PLC 제어 프로그램의 제어 로직을 텍스트로 표현한다.
사용자는 PLC 제조사마다 제공하는 PLC 프로그래밍 소프트웨어를 이용하여 LD로 작성된 PLC 제어프로그램의 제어 로직을 직관적으로 또는 쉽게 이해할 수 있다.
공정 운영 분석을 위해 추출해내는 텍스트 기반의 PLC 제어 프로그램의 제어 로직의 경우 LD의 형태가 아닌 PLC 제조사별로 상이한 구조를 갖기 때문에, 사용자는 각 PLC 제조사별 PLC 제어프로그램의 제어 로직을 분석하기 위해서 각 PLC 제조사별 PLC 제어프로그램의 제어 로직의 표현방법을 파악하고 있어야 한다.
하지만 사용자가 각 PLC 제조사별 PLC 제어프로그램의 제어 로직의 표현 방법을 모두 파악 또는 습득하기 위해서 많은 노력과 시간을 투자하여야 한다는 문제점이 발생한다.
본 발명과 관련된 선행문헌으로는 대한민국 등록특허 제10-0931004호(등록일: 2009년 12월 02일)가 있다.
사용자가 PLC 제조사별로 PLC 제어프로그램의 제어 로직의 표현 방법을 모두 파악 또는 습득하지 않아도 PLC 제어프로그램을 공용형식으로 변환하여 PLC 제어프로그램의 제어 로직을 용이하게 분석할 수 있도록 한 PLC 제어프로그램의 공용형식변환장치 및 방법이 제안된다.
본 발명의 해결 과제는 이상에서 언급한 해결 과제로 제한되지 않으며, 언급되지 않은 또 다른 해결 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따른 PLC 제어프로그램의 공용형식 변환장치는, 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 공용 명령어 라이브러리 구축부; 와 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 공용형식 변환부를 포함한다.
상기 공용명령어 생성 알고리즘은, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 제1단계; 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 제2단계; 및 기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성하며, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용 명령어에 삽입하는 제3단계를 포함한다.
상기 제3단계는, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 제3단계는, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 제3단계는, 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 제3단계는, 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현될 수 있다.
상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작될 수 있다.
상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현될 수 있다.
상기 공용형식 변환부는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 IL 오브젝트 생성부; 블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 IL 블록 생성부; 상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 공용블록 변환부; 및 결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 결합관계 표현부를 포함하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환할 수 있다.
본 발명의 다른 실시예에 따른 PLC 제어프로그램의 공용형식 변환방법은, 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 단계; 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로의 변환 요청에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 확장자 및 데이터 구조를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환 가능한지를 확인하는 단계; 및 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계를 포함한다.
상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 단계; 블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 단계; 상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 단계; 및 결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 단계를 포함하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환할 수 있다.
본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치 및 방법에 따르면, 사용자가 PLC 제조사별로 PLC 제어프로그램의 제어 로직의 표현 방법을 모두 파악 또는 습득하지 않아도 PLC 제어프로그램을 공용형식으로 변환하여 PLC 제어프로그램의 제어 로직을 용이하게 분석할 수 있도록 해준다.
도 1은 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치를 나타낸 블록 구성도이다.
도 2는 공용명령어에 대한 XML 파일 형식에 대한 예시를 나타낸 도면이다.
도 3은 공용형식 변환부의 블록 구성도를 나타낸 도면이다.
도 4는 미츠비시 Developer의 Column이 4개(StepNumber, Note, Command, Operand의 순으로)인 데이터 구조를 나타낸 도면이다.
도 5는 공용형식 변환 불가능 케이스를 나타낸 도면이다.
도 6은 LD 구조의 미츠비시 PLC 프로그램에 대한 텍스트 기반의 미츠비시 PLC 제어프로그램을 예시한 도면이다.
도 7은 IL 오브젝트들을 예시한 도면이다.
도 8은 IL 블록들을 예시한 도면이다.
도 9는 도 8에 도시된 공용블록들에 대해서 결합 명령어 OR을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 10은 도 9에서 공용블록들에 대해서 결합명령어 OR를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ANB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 11은 도 10에서 공용블록들에 대해서 결합명령어 ANB를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ORB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 12는 도 8에 도시된 공용블록들에 대해서 OR, ANB, ORB를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 13은 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS를 적용한 결과를 나타낸 도면이다.
도 14는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MRD를 적용한 결과를 나타낸 도면이다.
도 15는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPP를 적용한 결과를 나타낸 도면이다.
도 16은 도 12에 도시된 공용블록들에 대해서 MPS, MRD, MPP를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 17은 도 8에 도시된 공용블록들에 대해서, 입력부에 사용된 결합명령어와 출력부에 사용되는 결합명령어를 적용하여 나타나는 공용블록들을 병합한 결과를 나타낸 도면이다.
도 18은 본 발명의 실시예에 따른 PLC 제어 프로그램의 공용형식 변환방법에 대한 흐름도이다.
도 19는 도 18에 도시된 단계 S50의 구체적인 수행 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다. 
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는"포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다. 
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열을 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 본 발명의 실시예들은 본 발명의 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에 있어서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면 제조상 초래되는 형상의 변화를 포함하여야 한다.
도 1은 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치를 나타낸 블록 구성도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치는(10)는 구축부(11), 저장부(12) 및 공용형식 변환부(13)를 포함한다.
구축부(11)는 공용명령어 생성알고리즘에 따라, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하여 저장부(12)에 저장한다.
이러한 공용 명령어 라이브러리의 구축이 원활하게 이루어지기 위해서, 먼저 공용 명령어 라이브러리의 구축 시작 전에 PLC 제조사별로 PLC 제어프로그램에서 사용되는 명령어 정보 및 이에 대응되는 공용명령어 정보가 이미 구축부(11)에 저장 또는 입력이 완료되어 있는 것이 바람직하다.
이렇게 PLC 제조사별 PLC 제어프로그램에서 사용되는 명령어들이 준비된 상태가 되면, 구축부(11)는 공용명령어 생성 알고리즘에 따라 공용 명령어 라이브러리를 구축한다.
이때, 공용 명령어 생성 알고리즘은, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하기 위해서 제1단계, 제2단계 및 제3단계를 순차적으로 수행하는 알고리즘이다.
제1단계는 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 단계이다.
예를 들어, 표시상 '같다'라는 명령어에 대해서 미츠비스(Mitsubishi) 사의 경우 'OR='로 표시되고, AB사의 경우 'EQU'로 표시되고, 지멘스(Siemens)사의 경우 '==I'로 표시되고, LS 산전의 경우 'OR='로 표시된다. 따라서 제1단계에서 '같다' 명령어 그룹에는, 미츠비시(Mitsubishi) 사의 경우 'OR=', AB사의 경우 'EQU', 지멘스(Siemens)사의 경우 '==I', LS 산전의 경우 'OR='이 포함될 수 있다.
이후 제2단계는 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 단계이다.
예를 들어, 제2단계에서는 '같다' 명령어 그룹에 속한, 'OR=', 'EQU', '==I', 'OR='이 모두 동일기능인가의 확인이 이루어지게 되는 것이다.
제3단계는 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인지 아니면 그렇지 않은 경우에 따라서 공용 명령어를 다른 방식으로 생성하는 단계이다.
먼저, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성된다.
예를 들어, '같다' 명령어 그룹에 속한, 'OR=', 'EQU', '==I', 'OR='의 경우 모두 동일 기능을 가지므로, '같다'를 표시하는 사전상 단어인 'EQUAL'을 상기 동일 기능인 갖는 명령어들에 대한 공용명령어로 생성할 수 있다. 사전상 단어인 'EQUAL'만을 공용명령어로 하는 것에 국한되지 않는다.
그리고 상기 동일 기능을 갖는 명령어들에 대한 공용명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용명령어에 삽입할 수 있다. 이러한 명령어의 파라미터를 한정하는 한정자, 즉 D(Double), BK(Block), U(Unsigned), G(Group), R(Real), L(Long), 4(4bit), 8(8Bit), $(String), C(Complement) 들 중 어느 하나가 해당 명령어에 포함된 경우, 해당 명령어의 공용명령어에 파라미터 한정자가 접두사로 삽입될 수 있다. 그러나 파라미터 한정자가 삽입되는 위치는 이에 한정되지 않는다.
예를 들어, '같다'에 대한 AB사의 명령어 'DEQU'는 명령어 'EQU'에 파라미터 한정자 D(Double)가 붙은 명령어이다. 'D'는 명령어 'EQU'의 파라미터 크기를 한정한다. 'EQU' 명령어는 1 Word(16bit)를 처리하는 명령어인데, 'DEQU'는 2 Word(32bit)를 처리하는 명령어이다. 이와 같이 명령어 파라미터(parameter)를 한정 짓는 파라미터 한정자는 공용명령어의 접두사로 삽입될 수 있다.
그리고 상기 동일 기능을 갖는 명령어들에 대한 공용명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용명령어에 삽입할 수 있다. 이러한 명령어의 동작을 한정하는 동작 한정자, 즉 P(Postive Pulse), N(Negative Pulse) 들 중 어느 하나가 해당 명령어에 포함된 경우, 해당 명령어의 공용명령어에 동작 한정자가 접미사로 삽입될 수 있다. 그러나 동작 한정자가 삽입되는 위치는 이에 한정되지 않는다.
예를 들어, 미츠비시 사의 'ANDP' 명령어는 어드레스(address)의 값이 On 되면 On이 되는 기능을 가진 접점인 'AND'를 양(Positvie)의 펄스(Pulse) 형태로 변환하는 동작 한정자인 'P(Positive pulse)'를 포함한다. 따라서 'ANDP'에 대한 공용명령어인 'XICP'는 'AND'에 대한 공용명령어인 'XIC(eXamine If Closed)'에 동작 한정자인 'P'를 접미사로 붙여서 생성될 수 있다.
한편, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용명령어에 삽입할 수 있다.
예를 들어, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않는 경우로는, 명령어 'LIMIT' 등을 들 수 있다. 명령어 'LIMIT'는 미츠비시 사, LS 산전, AB 사의 PLC 제어 프로그램에서 표시상 동일하게 사용되고 있으나 동일한 기능을 갖지 않고 있다. 'LIMIT' 명령어는 지멘스 사의 PLC 제어 프로그램에서 사용되지 않는 명령어이다.
따라서 명령어 'LIMIT'에 대한 공용 명령어는 사전상 단어인 'LIMIT'로 생성될 수 있다. 명령어 'LIMIT'는 PLC 제조사마다 모두 동일 기능을 하지 않으므로, 공용명령어 'LIMIT'에 각 PLC의 제조사 명칭을 삽입할 수 있다. 실시예로, 미츠비시 사의 경우 'm', 지멘스 사의 경우 's', AB 사의 경우 'ab', LS 산전의 경우 'ls'를 공용명령어 'LIMIT'의 접두사로 삽입할 수 있다. 즉 미츠비시 사의 경우 'mLIMIT'가 되고 지멘스 사의 경우 'sLIMIT'가 되고 AB 사의 경우 'abLIMIT'가 되고 LS 산전의 경우 'lsLIMIT'가 될 수 있다.
그리고 상기 동일 기능을 갖지 않는 명령어들에 대한 공용명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용명령어에 삽입할 수 있다.
예를 들어, AB사의 명령어 'DLIMIT'는 명령어 'LIMIT'에 파라미터 한정자 D(Double)가 붙은 명령어이다. 'D'는 명령어 'LIMIT'의 파라미터 크기를 한정한다. 'LIMIT' 명령어는 1 Word(16bit)를 처리하는 명령어인데, 'DLIMIT'는 2 Word(32bit)를 처리하는 명령어이다. 이와 같이 명령어 파라미터(parameter)를 한정 짓는 파라미터 한정자는 공용명령어에 삽입될 수 있는데, PLC 제조사를 나타내는 접두사, 예를 들어 AB사를 나타내는 'ab'가 나온 후 배치될 수 있다. 결국 AB사의 명령어 'DLIMIT'에 대한 공용명령어는 'abDLIMIT'일 수 있다.
그리고, 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입할 수 있다. 예를 들어, 미츠비시 사의 ‘LIMITP’명령어는 명령어 ‘LIMIT’에 양(Positive)의 펄스(Pulse) 형태로 변환하는 동작 한정자인 ‘P(Postive Pulse)’를 포함한다. 이와 같이 명령어의 동작을 한정 짓는 동작 한정자는 공용 명령어에 접미사로 삽입될 수 있다. 결국 미츠비시 사의 명령어 ‘LIMITP’에 대한 공용 명령어는 ‘mLIMITP’일 수 있다.
이렇게 1단계 내지 3단계를 순차적으로 수행하면서 생성된 공용명령어를 XML(eXtensible Markup Language) 파일 형식으로 변환하여 공용명령어 라이브러리를 저장부(12)에 구축할 수 있다.
이러한 공용명령어에 대한 XML 파일 형식에 대한 예시가 도 2에 도시되어 있다. 도 2를 참조하면, 공용명령어에 대한 XML 파일은 공용명령어(Instructio Name) 'XIC', 'XICP' 및 'XICF' 각각 마다 대응되는 명령어를 PLC 제조사별로 포함한다.
예를 들어, 공용명령어 'XIC'에 대해서, AB 사의 경우 명령어 'XIC'가 대응되고, 미츠비시 사의 경우 'LD', 'AND', 'OR'가 각각 대응되고, 지멘스 사의 경우 'A', 'O'가 대응되고, LS 산전의 경우 'LOAD', 'AND', 'OR'가 대응될 수 있다.
이와 같은 과정을 통해서 공용명령어 라이브러리가 구축된 후, 공용형식으로의 변환 요청이 있는 경우, 도 3에 도시된 공용형식 변환부(13)의 동작에 대해서 살펴보기로 한다.
공용형식 변환부(13)는 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환한다.
이러한 공용형식 변환부(13)는 도 3에 도시된 바와 같이, IL 오브젝트 생성부(14), IL 블록 생성부(15), 공용 블록 변환부(16) 및 결합관계 표현부(17)를 포함하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환한다.
IL 오브젝트 생성부(14)는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능한가를 확인한다.
이때 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로 변환가능 여부는 상기 임의의 텍스트 기반의 PLC 제어프로그램의 파일 확장자, 데이터 구조 중 적어도 하나를 이용하여 판단될 수 있다.
실시예로, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로 변환가능 여부는 1차적으로 상기 임의의 텍스트 기반의 PLC 제어프로그램의 파일 확장자를 확인한다.
상기 확인된 파일 확장자가 설정된 파일 확장자에 해당 되면 2차적으로 상기 임의의 텍스트 기반의 PLC 제어프로그램의 데이터 구조가 설정된 데이터 구조에 해당되는가를 확인한다.
확인결과 상기 임의의 텍스트 기반의 PLC 제어프로그램의 데이터 구조가 설정된 데이터 구조에 해당 되면 상기 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능한 것으로 판단될 수 있다.
이때 설정된 데이터 구조는 PLC 제조사별 PLC 제어 프로그램마다 상이하며, Column의 개수일 수 있다. 예를 들어, LS 산전의 경우 Column이 2개인 데이터 구조를 가지며, 미츠비시 Developer의 경우 도 4에 도시된 바와 같이 Column이 4개(StepNumber, Note, Command, Operand의 순으로)인 데이터 구조를 가지며, 미츠비시 Works2의 경우 Column이 11개인 데이터 구조를 가지며, 미츠비시 Works3의 경우 Column이 20개 이상인 데이터 구조를 가질 수 있다.
이러한 설정된 데이터 구조가 아닌 데이터 구조를 갖는 경우는 임의의 텍스트 기반의 PLC 제어프로그램은 공용형식의 PLC 제어프로그램으로 변환될 수 없다.
이에 대한 예시가 도 5에 도시되어 있다.
도 5를 참조하면, 공용형식 변환 불가능 케이스는 AB 사의 ST(Structured Text)라는 로직이다. 이 로직이 공용형식으로 변환이 불가능한 이유는 사용자로부터 .NET 기반의 프로그램(program) 코드와 같은 방식으로 자유로운 형식으로 입력되기 때문에 규칙성을 찾기 어렵기 때문이다. 예를 들어 For문이 몇 번 사용될지, 중첩해서 쓰일지 아니면 따로따로 쓰일지에 대해서 사용자마다 다 다르기 때문이다.
그리고, 공용형식 변환 불가능 케이스는 temp라는 내부변수에 대한 정의를 사용자가 마음대로 할 수 있으며 내부 변수의 주소가 PLC 메모리의 특정 영역을 할당하고 있지 않고 있기 때문에, 공용형식으로 변환이 불가능하다.
이러한 공용형식으로 변환가능한 것으로 확인된 임의의 텍스트 기반의 PLC 제어프로그램에 대한 예시가 도 6에 도시되어 있다.
도 6을 참조하면, LD 구조의 미츠비시 PLC 프로그램에 대한 텍스트 기반의 미츠비시 PLC 제어프로그램이 도시되어 있다.
텍스트 기반의 미츠비시 PLC 제어프로그램은 3개의 Column으로 구성되어 있다.
이하에서는 도 6에 도시된 텍스트 기반의 미츠비시 PLC 제어프로그램을 참조로 하여 공용형식의 PLC 제어프로그램으로 변환되는 과정을 설명한다.
IL 오브젝트 생성부(14)는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성한다. 즉 본 발명의 전체에서 사용되는 IL 오브젝트는 접점과 동일한 의미로 사용된다.
이때 명령어는 도 6을 참조하면 LD, ANI, AND, LDI, LD=, ORD=, ANB, ORB, MPS, AND, +, MRD, OUT, MPP, LIMIT 등을 나타내며, 태그는 X1, X2, X3, D100, D101, M0, D200, D201, D202, M1, Y0, K30, D210 등을 나타낸다. 태그는 예를 들어 D200에서와 같이 데이터 타입(data type) 'D'와 어드레스(address) '200'을 가지고 있어서, 실제로 PLC 하드웨어의 메모리 주소 값을 나타낸다.
도 6에 도시된 텍스트 기반의 미츠비시 PLC 제어프로그램에 대한 IP 오브젝트 생성부(14)의 수행결과에 따라 생성된 IL 오브젝트들을 나타낸 도면이 도 7에 도시되어 있다.
도 7을 참조하면, IL 오브젝트들은 도 6에 도시된 텍스트 기반의 미츠비시 PLC 제어프로그램의 제어 로직 순서에 따라 배열되고 있음을 확인할 수 있다. 즉 IL 오브젝트들의 순서는 텍스트 기반의 미츠비시 PLC 제어프로그램의 제어 로직 순서와 같다.
구체적으로 IL 오브젝트들의 순서를 명령어(Command)의 순서로 나열하면, 'LD' -> 'ANI' -> 'AND' -> 'LDI' -> 'LD=' -> 'ORD=' -> 'ANB' -> 'ORB' -> 'MPS' -> 'AND' -> '+' -> 'MRD' -> 'AND' -> 'MPP' -> 'LIMIT'이다.
IL 블록 생성부(15)는, 블록(Block) 명령어를 이용하여, IL 오브젝트 생성부(14)에서 생성된 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성한다.
이때 블록 명령어는 LD, ANB, OR, ORB, MPP, MRD, MPS를 포함한다.
LD는 Load의 약어로 제어 로직 상의 접점이 로드(load)되어 있다는 것을 나타낸다. LD로 인해서 PLC 프로그램의 제어 로직의 블록들이 계속 생성될 수 있다.
ANB는 AND Block의 의미로써 AND 명령어의 앞에 생성된 2개의 블록이 서로 AND 관계에 있다는 것을 나타낸다.
OR는 OR 명령어 앞의 심볼(symbol)과 OR 명령어의 심볼이 서로 OR 관계에 있다는 것을 나타낸다.
ORB는 OR Block의 의미로써 ORB 명령어의 앞에 생성된 2개의 블록이 서로 OR 관계에 있다는 것을 나타낸다.
MPS는 Multi Point Start의 의미로써 여러 개의 출력(Output) 접점이 나타날 때 첫 번째 출력(Output) 접점과 그 출력 접점과 관계가 있는 접점들의 가장 앞쪽에 쓰여 진다.
MRD는 Multi Read Down의 의미로써 3개 이상의 출력 접점이 나타날 때 사용된다.
MPP는 Multi Point Period의 의미로써 여러 개의 출력 접점이 나타날 때 가장 마지막 출력 접점과 그 출력 접점과 관계가 있는 접점들의 가장 앞쪽에 쓰여 진다.
이때 블록 명령어 중 OR, ORB, ANB, MPS, MRD, MPP는 결합관계 표현부(17)에서 사용되는 결합 명령어이다. 이 중 OR 명령어를 제외한 결합 명령어는 IL 오브젝트로 표현될 시에 명령어만을 포함하여 각 블록 간의 결합 관계만을 표현한다. 따라서 블록 간의 관계를 나타내는 블록 결합 명령어이기 때문에 공용 블록으로의 변환부(16)의 실행 시 해당 블록 결합 명령어를 포함한 IL 오브젝트의 명령어를 공용 명령어로 변환하지 않는다.
IL 블록 생성부(15)는 도 7에 예시된 바와 같이 제어 로직 순으로 배열된 IL 오브젝트들을 이동하면서 IL 오브젝트들에 블록 명령어가 포함되어 있는가를 확인하고, 블록 명령어가 포함되어 있으면 새로운 IL 블록을 생성한다. 한편, 블록 명령어가 포함되어 있지 않으면 새로운 블록 명령어가 나타나기 전까지 앞서 생성된 IL 블록에 순차적으로 IL 오브젝트를 포함 시킨다.
이러한 IL 블록 생성과정을 거쳐서 생성된 IL 블록들이 도 8에 도시되어 있다.
도 8을 참조하면, 상기 생성된 IL 블록들은 모두 9개로 이루어져 있다.
1번 IL 블록은 블록 명령어 'LD'에 의해서 생성되며, 3개의 IL 오브젝트 즉 명령어 LD인 IL 오브젝트, 명령어 ANI인 IL 오브젝트, 명령어 AND인 IL 오브젝트를 포함한다.
이때 LD는 Load의 뜻으로 해당 태그 X1을 제어 로직 상에 로드(load)시킨다는 것을 나타낸다. 실제로 PLC 하드웨어의 메모리의 어드레스 X1이 ON되면 해당 접점은 ON 된다.
2번 IL 블록은 블록 명령어 'LDI'에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 LDI인 IL 오브젝트를 포함한다.
이때 LDI는 Load Inverse를 의미하는 것으로써, 태그 X1을 제어 로직 상에 로드(load) 시킨다는 것을 나타낸다. Inverse의 의미를 담고 있으므로 태그 X1이 OFF 되었을 때 해당 접점이 ON 된다.
3번 IL 블록은 블록 명령어 'LD='에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'LD='인 IL 오브젝트를 포함한다.
이때 'LD='는 '같다'의 의미의 접점을 제어 로직 상에 로드(load)시킨다는 것을 나타낸다. 접점이 포함하고 있는 D100, D101 어드레스의 값이 동일하면 해당 접점이 ON 된다.
4번 IL 블록은 블록 명령어 'ORD='에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'ORD='인 IL 오브젝트를 포함한다.
이때 'ORD='는 '같다'의 의미의 접점이 앞선 심볼과 OR 관계에 놓여있는 것을 나타낸다. ORD는 OR 뒤에 'D'가 붙었으므로 32bit(Double word)를 비교하는 명령어이다. 따라서 'ORD='는 태그 D100, D100 어드레스의 값을 32bit로 비교하는 명령어이다.
5번 IL 블록은 블록 명령어 'ANB'에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'ANB'인 IL 오브젝트를 포함한다.
6번 IL 블록은 블록 명령어 'ORB'에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'ORB'인 IL 오브젝트를 포함한다.
7번 IL 블록은 블록 명령어 'MPS'에 의해서 생성되며, 3개의 IL 오브젝트 즉 명령어 'MPS'인 IL 오브젝트, 명령어 'AND'인 IL 오브젝트, 명령어 '+'인 IL 오브젝트를 포함한다.
이때 명령어 '+'는 더하기(add)의 의미를 가지며 접점이 포함하고 있는 3개의 어드레스의 값 중 앞선 2개 어드레스의 값을 더하여 마지막 어드레스에 저장하라는 명령어이다.
8번 IL 블록은 블록 명령어 'MRD'에 의해서 생성되며, 3개의 IL 오브젝트 즉 명령어 'MRD'인 IL 오브젝트, 명령어 'AND'인 IL 오브젝트, 명령어 OUT인 오브젝트를 포함한다.
9번 IL 블록은 블록 명령어 'MPP'에 의해서 생성되며, 2개의 IL 오브젝트 즉 명령어 'MPP'인 IL 오브젝트, 명령어 'LIMIT'인 IL 오브젝트를 포함한다.
공용 블록 변환부(16)는 상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환한다.
이러한 공용 블록 변환부(16)의 동작에 대해서 도 8에 도시된 IL 블록들을 참조하여 살펴보기로 한다.
공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여 IL 블록 내의 명령어를 공용명령어로 변환해서, 도 8에 도시된 9개의 IL 블록을 각각 공용 블록으로 변환한다.
먼저, 1번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'LD'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환하고, 명령어 'ANI'인 IL 오브젝트를 공용명령어 'XIO'인 공용 오브젝트로 변환하고, 명령어 'AND'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환함으로써, 1번 IL 블록을 1번 공용 블록으로 변환한다. 따라서 1번 공용 블록의 공용형식은 'XIC(X1)XIO(X2)XIC(X3)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LD'에 대한 공용명령어 'XIC', 명령어 'ANI'에 대한 공용명령어 'XIO', 명령어 'AND'에 대한 공용명령어 'XIC'가 대응되어 있어야 한다.
2번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'LDI'인 IL 오브젝트를 공용명령어 'XIO'인 공용 오브젝트로 변환함으로써, 2번 IL 블록을 2번 공용 블록으로 변환한다. 따라서 2번 공용 블록의 공용형식은 'XIO(X1)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LDI'에 대한 공용명령어 'XIO'가 대응되어 있어야 한다.
3번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'LD='인 IL 오브젝트를 공용명령어 'EQUAL'인 공용 오브젝트로 변환함으로써, 3번 IL 블록을 3번 공용 블록으로 변환한다. 따라서 3번 공용 블록의 공용형식은 'EQUAL(D100,D101)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LD='에 대한 공용명령어 'EQUAL'가 대응되어 있어야 한다.
4번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'ORD='인 IL 오브젝트를 공용명령어 'DEQUAL'인 공용 오브젝트로 변환함으로써, 4번 IL 블록을 4번 공용 블록으로 변환한다. 따라서 4번 공용 블록의 공용형식은 'DEQUAL(D100,D101)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'ORD='에 대한 공용명령어 'DEQUAL'가 대응되어 있어야 한다.
한편, 결합 명령어를 포함하는 IL 오브젝트의 경우 결합 명령어에 대한 공용명령어로 변환하지 않고서 공용 오브젝트로 변환함으로써, 결합 명령어를 포함한 IL 오브젝트를 공용블록으로 변환할 수 있다.
블록 명령어 중 OR, ORB, ANB, MPS, MRD, MPP는 결합관계 표현부(17)에서 사용되는 결합 명령어이다. 이 중 OR 명령어를 제외한 결합 명령어는 IL 오브젝트로 표현될 시에 명령어만을 포함하여 각 블록 간의 결합 관계만을 표현한다. 따라서 블록 간의 관계를 나타내는 블록 결합 명령어이기 때문에 공용 블록으로의 변환부(16)의 실행 시 해당 블록 결합 명령어를 포함한 IL 오브젝트의 명령어를 공용 명령어로 변환하지 않는다. 따라서 공용 명령어로 변환되지 않은 IL 오브젝트의 명령어는 공용 오브젝트로의 변환 시 명령어 부분이 공백으로 처리되어 표현되지 않는다.
즉 도 8의 예시에서는 5번 IL 블록, 6번 IL 블록, 7번 IL 블록, 8번 IL 블록 및 9번 IL 블록에서 블록 결합 명령어를 포함하는 IL 오브젝트들의 경우 명령어를 공용명령어로의 변환이 이루어지지 않아 공용 블록의 공용형식이 표시되지 않는다.
5번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 블록 결합 명령어 'ANB'인 IL 오브젝트를 공용명령어로 변환하지 않고 5번 IL 블록을 5번 공용 블록으로 변환한다. 5번 공용 블록의 공용형식은 표현되지 않는다.
6번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 블록 결합 명령어 'ORB'인 IL 오브젝트를 공용명령어로 변환하지 않고 6번 IL 블록을 6번 공용 블록으로 변환한다. 6번 공용 블록의 공용형식은 표현되지 않는다.
7번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 블록 결합 명령어 'MPS'인 IL 오브젝트를 공용명령어로 변환하지 않고, 명령어 'AND'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환하고, 명령어 '+'인 IL 오브젝트를 공용명령어 'ADD'인 공용 오브젝트로 변환함으로써, 7번 IL 블록을 7번 공용 블록으로 변환한다. 따라서 7번 공용 블록의 공용형식은 'XIC(M0)ADD(D200,D201,D202)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'AND'에 대한 공용명령어 'XIC', 명령어 '+'에 대한 공용명령어 'ADD'가 대응되어 있어야 한다.
8번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'MRD'인 IL 오브젝트를 공용명령어 'MRD'인 공용 오브젝트로 변환하고, 명령어 'AND'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환하고, 명령어 'OUT'인 IL 오브젝트를 공용명령어 'OUT'인 공용 오브젝트로 변환함으로써, 8번 IL 블록을 8번 공용 블록으로 변환한다. 따라서 8번 공용 블록의 공용형식은 'XIC(M1)OUT(Y0)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'AND'에 대한 공용명령어 'XIC', 명령어 'OUT'에 대한 공용명령어 'OUT'가 대응되어 있어야 한다.
9번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'MPP'인 IL 오브젝트를 공용명령어 'MPP'인 공용 오브젝트로 변환하고, 명령어 'LIMIT'인 IL 오브젝트를 공용명령어 'mLIMIT'인 공용 오브젝트로 변환함으로써, 9번 IL 블록을 9번 공용 블록으로 변환한다. 따라서 9번 공용 블록의 공용형식은 'mLIMIT(D200,D202,K30,D210)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LIMIT'에 대한 미츠비시 사의 공용명령어 'mLIMIT'가 대응되어 있어야 한다.
이렇게 IL 블록들을 공용 블록들로 변환하는 과정이 완료되면, 공용 블록들 간의 결합관계를 표현함으로써, 최종적으로 임의의 텍스트 기반의 PLC 제어프로그램을 공용형식의 PLC 제어프로그램을 변환한다.
이때, 상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현될 수 있다. 상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작될 수 있다.
상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현될 수 있다. 이때 기호 "[", "]"는 결합점을 나타내며, 기호 "," 는 분기점을 나타낸다.
이하에서, 공용블록들 간의 결합관계 표현은 도 2에 도시된 결합관계 표현부(17)에 의해서 수행될 수 있다.
결합관계 표현부(17)는, 결합 명령어를 이용하여 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현한다.
이때 결합명령어는 OR, ORB, ANB, MPP, MPS, MRD를 포함할 수 있다. 입력부(조건부)에 사용되는 결합 명령어는 OR, ANB, ORB이고, 출력부에 사용되는 결합 명령어는 MPS, MRD, MPP이다.
이러한 결합명령어를 이용하여 결합관계 표현부(17)는 공용형식으로 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다. 이를 위해서 결합관계 표현부(17)는 입력부(조건부)에 사용되는 결합 명령어에 따라 공용형식으로 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하고, 이후 출력부에 사용되는 결합 명령어에 따라 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다.
본 발명의 실시예에서는 입력부에 사용되는 결합명령어를 OR->ANB->ORB 순서로 공용형식으로 표현된 공용블록들에 적용하여, 공용형식으로 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다. 입력부에 사용되는 결합명령어를 OR->ANB->ORB 순서로 공용형식으로 표현된 공용블록들에 적용하는 것은 하나의 실시예에 불과하며 이에 한정되지 않는다.
그리고 출력부에 사용되는 결합 명령어를 MPS->MRD->MPP 순서로 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들에 적용하여, 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다. 출력부에 사용되는 결합 명령어를 MPS->MRD->MPP 순서로 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들에 적용하는 것은 하나의 실시예에 불과하며 이에 한정되지 않는다.
이에 대해서 도 9 내지 도 17을 참조하여 살펴보기로 한다.
도 9는 도 8에 도시된 공용블록들에 대해서 결합 명령어 OR을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 9를 참조하면, 결합관계 표현부(17)는 도 8에 도시된 공용블록들에 결합 명령어 OR를 포함한 공용 블록이 있는가를 확인하고, 결합 명령어 OR를 포함한 공용블록이 있으면 결합 명령어 OR이 포함된 공용블록과 바로 앞 공용블록의 2개 공용블록 간의 결합관계를 기호 "[", "]" 및 ","를 이용하여 표현한다.
도 9에서는 결합명령어 OR를 포함한 4번 공용블록과 3번 공용블록 간의 결합관계를 기호 "[", "]" 및 ","를 이용하여 표현한다.
이에 대해서 좀 더 구체적으로 살펴보기로 한다. 먼저 결합명령어 OR를 포함한 4번 공용블록 앞의 3번 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다(S1).
이후 결합명령어 OR를 포함한 4번 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다(S2).
결합명령어 OR를 포함한 4번 공용블록 뒤의 5번 공용블록이 결합명령어 OR를 포함하고 있는지를 확인하고, 5번 공용블록이 결합명령어 OR를 포함하고 있지 않으면 4번 공용블록의 공용형식 표현의 가장 마지막에 "]"를 삽입하며, 5번 공용블록이 결합명령어 OR를 포함하는 경우 4번 공용블록의 공용형식 표현의 가장 마지막에 ","를 삽입한다(S3).
이후 3번 공용블록과 4번 공용블록 중 번호가 더 늦은 공용블록 즉 4번 공용블록의 공용형식 표현에 3번 공용블록의 공용형식 표현을 병합(merge)한다(S4).
도 10은 도 9에서 공용블록들에 대해서 결합명령어 OR를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ANB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 10을 참조하면, 결합관계 표현부(17)는 도 9에서 공용블록들에 대해서 결합명령어 OR를 적용한 후 이후의 공용블록들에 결합 명령어 ANB를 포함한 공용 블록이 있는가를 확인하고, 결합 명령어 ANB를 포함한 공용블록이 있으면 결합 명령어 ANB가 포함된 공용블록 앞에 나온 2개의 공용블록을 차례로 병합(merge)한다(S5).
즉 결합관계 표현부(17)는 결합명령어 ANB를 포함한 5번 공용블록 앞에 나온 2번 공용블록과 4번 공용블록의 공용형식 표현을 5번 공용블록의 공용형식 표현에 병합한다.
이렇게 병합된 공용형식은 'XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]이다.
이후 결합관계 표현부(17)는 2번 공용블록 및 4번 공용블록이 병합된 5번 공용블록에서 결합명령어 ANB를 포함한 공용 오브젝트를 삭제한다(S6).
도 11은 도 10에서 공용블록들에 대해서 결합명령어 ANB를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ORB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 11을 참조하면, 결합관계 표현부(17)는 도 10에서 공용블록들에 대해서 결합명령어 ANB를 적용한 후 이후의 공용블록들에 결합 명령어 ORB를 포함한 공용 블록이 있는가를 확인하고, 결합 명령어 ORB를 포함한 공용블록이 있으면 결합 명령어 ORB가 포함된 공용블록과 결합명령어 ORB를 포함한 공용블록 앞의 비어있지 않은 2개의 공용블록을 사용하여 공용블록들에 대한 결합관계를 표현한다.
즉 결합관계 표현부(17)는 결합명령어 ORB를 포함한 6번 공용블록 앞의 비어있지 않은 2개의 공용블록 중 첫 번째 공용블록인 1번 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다(S7).
결합관계 표현부(17)는 결합명령어 ORB를 포함한 6번 공용블록 앞의 비어있지 않은 2개의 공용블록 중 첫 번째 공용블록인 5번 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다(S8).
결합관계 표현부(17)는 결합명령어 ORB를 포함한 6번 공용블록 뒤의 공용블록에 결합명령어 OR를 포함한 공용블록 및 결합명령어 ORB를 포함한 공용블록이 존재하는가를 확인하고 존재하지 않을 때만 현재 결합명령어 ORB를 포함한 6번 공용블록의 공용형식의 표현에 "]"를 삽입한다(S9).
결합관계 표현부(17)는 1번 공용블록, 5번 공용블록 및 6번 공용블록 중 가장 번호가 늦은 6번 공용블록에 1번 공용블록과 5번 공용블록을 병합하고 병합된 6번 공용블록에서 결합명령어 ORB를 포함한 공용 오브젝트를 삭제한다(S10).
이렇게 병합된 공용형식은,
'[XIC(X1)XIO(X2)XIC(X3),XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]]'이다.
도 12는 도 8에 도시된 공용블록들에 대해서 OR, ANB, ORB를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 12를 참조하면, 도 8에 도시된 공용블록들에 대해서 입력부에 사용되는 결합명령어 OR, ANB 및 ORB를 순차적으로 적용하여, 1번 공용블록 내지 5번 공용블록이 6번 공용블록에 병합되어 있음을 확인할 수 있다.
1번 공용블록 내지 6번 공용블록 간의 결합관계를 표현하는 공용형식이 '[XIC(X1)XIO(X2)XIC(X3),XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]]'임을 확인할 수 있다.
도 13은 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS를 적용한 결과를 나타낸 도면이다.
도 13을 참조하면, 결합관계 표현부(17)는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS를 포함한 공용블록이 있는가를 확인하고, 결합명령어 MPS를 포함한 공용블록이 있으면 해당 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다(S11).
즉 결합관계 표현부(17)는 결합명령어 MPS를 포함한 7번 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다,
따라서 7번 공용블록의 공용형식은 '[XIC(M0)ADD(D200,D201,D202)'이 된다.
도 14는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MRD를 적용한 결과를 나타낸 도면이다.
도 14를 참조하면, 결합관계 표현부(17)는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MRD를 포함한 공용블록이 있는가를 확인하고, 결합명령어 MRD를 포함한 공용블록이 있으면 해당 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다(S12).
즉 결합관계 표현부(17)는 결합명령어 MRD를 포함한 8번 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다.
따라서 8번 공용블록의 공용형식은 ',XIC(M1)OUT(Y0)'이 된다.
도 15는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPP를 적용한 결과를 나타낸 도면이다.
도 15를 참조하면, 결합관계 표현부(17)는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPP를 포함한 공용블록이 있는가를 확인하고, 결합명령어 MPP를 포함한 공용블록이 있으면 해당 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입하고 해당 공용블록의 공용형식 표현의 가장 뒤에 "]"를 삽입한다(S13).
즉 결합관계 표현부(17)는 결합명령어 MPPfmf 포함한 9번 공용블록의 공용형식 표현의 가장 앞에 ",", 가장 뒤에 "]"를 삽입한다.
따라서 9번 공용블록의 공용형식은 ',mLIMIT(D200,D202,K30,D210)]'이 된다.
도 16은 도 12에 도시된 공용블록들에 대해서 MPS, MRD, MPP를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 16을 참조하면, 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS, MRD, MPP를 적용하여, 출력부에 해당하는 7번 공용블록 내지 9번 공용블록의 공용형식 표현에 결합관계를 표시하기 위한 기호들이 삽입되어 있음을 확인할 수 있다.
7번 공용블록의 공용형식은 '[XIC(M0)ADD(D200,D201,D202)'이고, 8번 공용블록의 공용형식은 ',XIC(M1)OUT(Y0)'이고, 9번 공용블록의 공용형식은 ',mLIMIT(D200,D202,K30,D210)]'임을 확인할 수 있다.
이렇게 도 8에 도시된 공용블록들에 대해서, 입력부에 사용된 결합명령어와 출력부에 사용되는 결합명령어를 적용하여 나타나는 공용블록들을 병합한 결과가 도 17에 도시되어 있다.
도 17을 참조하면, 도 8에 도시된 공용블록들에 대해서, 입력부에 사용된 결합명령어와 출력부에 사용되는 결합명령어를 적용하여 나타나는 공용블록들을 병합한 결과는,
'[XIC(X1)XIO(X2)XIC(X3),XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]][XIC(M0)ADD(D200,D201,D202),XIC(M1)OUT(Y0),mLIMIT(D200,D202,K30,D210)]'임을 확인할 수 있다.
도 18은 본 발명의 실시예에 따른 PLC 제어 프로그램의 공용형식 변환방법에 대한 흐름도이다.
본 발명의 실시예에 따른 PLC 제어 프로그램의 공용형식 변환방법은, 도 1에 도시된 공용형식 변환장치(10)에 의해서 수행될 수 있으나, 이에 한정되지 않는다.
도 18을 참조하면, 공용형식 변환장치(10)의 구축부(11)는 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축한다(S20).
공용형식 변환장치(10)의 공용형식 변환부(13)는 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로의 변환 요청에 따라(S30), 상기 임의의 텍스트 기반의 PLC 제어프로그램의 확장자 및 데이터 구조를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환 가능한지를 확인한다(S40).
확인결과, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 공용형식 변환부(13)는 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환한다(S50).
한편 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램에 변환할 수 없는 경우, 공용형식 변환부(13)는 공용형식 변환 불가능 메시지를 발생하여 공용형식 변환 요청자(요청자의 단말기)에 전송한다(S60).
도 19에 도시된 공용형식 변환부(13)에 의해서 수행되는 임의의 텍스트 기반의 PLC 제어프로그램에 대한 공용형식으로의 변환방법은, 도 3에 도시된 바와 같이 공용형식 변환부(13)에 포함된 IL 오브젝트 생성부(14), IL 블록 생성부(15), 공용 블록 변환부(16) 및 결합관계 표현부(17)에 의해서 이루어질 수 있다.
도 19를 참조하면, IL 오브젝트 생성부(14)는 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성한다(S71).
IL 블록 생성부(15)는 블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성한다. 이는 도 19에서 단계 S72 내지 S76에 해당될 수 있다.
즉 IL 블록 생성부(15)는 IL 오브젝트 리스트에서 순차적으로 IL 오브젝트를 추출하고(S72), RUNG의 마지막 IL 오브젝트가 될 때까지(S73) IL 오브젝트에 블록 명령어에 'LD, AND, OR, ORB, MPP, MRD, MPS'가 포함되어 있는가를 확인하고(S74), 포함되어 있으면 새로운 IL 블록을 생성하고(S75) 포함되어 있지 않으면 가장 최근에 생성된 IL 블록에 IL 오브젝트를 삽입하는 단계(S76)을 반복한다.
공용블록 변환부(16)는 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환한다(S77).
결합관계 표현부(17)는 결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현한다. 이는 도 19에서 단계 S78 내지 단계 S90에 의해서 수행될 수 있다.
즉 결합관계 표현부(17)는 도 8에 도시된 공용블록들을 순차적으로 추출하며(S78), 추출된 공용블록이 마지막 공용블록인가를 확인한다(S79).
추출된 공용블록이 마지막 공용블록이 아니면 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 ORB 또는 OR이 포함되어 있는가를 확인한다(S80). 포함되어 있으면 앞선 2개의 공용블록에 "[", ",", "]"을 삽입한다(S81).
추출된 공용블록에 결합명령어 ORB 또는 OR이 포함되어 있지 않으면 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 ANB가 포함되어 있는가를 확인한다(S82). 포함되어 있으면 추출된 공용블록의 앞선 2개의 공용블록을 붙인다(S83).
추출된 공용블록에 결합명령어 ANB가 포함되어 있지 않으면 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 MPS가 포함되어 있는가를 확인한다. 포함되어 있으면 해당하는 공용블록의 앞쪽에 "["을 삽입한다(S85).
추출된 공용블록에 결합명령어 MPS가 포함되어 있지 않으면, 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 MRD가 포함되어 있는가를 확인한다(S86). 포함되어 있으면 해당하는 공용블록의 앞쪽에 ","을 삽입한다(S87).
추출된 공용블록에 결합명령어 MRD가 포함되어 있지 않으면, 결합관계 표현부(17)은 추출된 공용블록에 결합명령어 MPP가 포함되어 있는 것으로 판단하여, 해당 공용블록의 앞쪽에 ","을 삽입하고 뒤쪽에 "]"을 삽입한다(S88).
한편, 단계 S79에서 추출된 공용블록이 마지막 공용블록이면, 결합관계 표현부(17)는 공용형식에 결합관계가 표시된 공용블록들을 순차적으로 병합하고(S89), 이렇게 병합된 공용블록들 간의 결합관계가 표시된 공용형식을 출력한다(S90).
이제까지 본 발명에 대하여 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허청구범위에 기재된 내용 및 그와 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
1 : PLC
2 : PLC 제어프로그램
10 : 공용형식 변환장치
11 : 구축부
12 : 저장부
13 : 공용형식 변환부
14 : IL 오브젝트 생성부
15 : IL 블록 생성부
16 : 공용블록 변환부
17 : 결합관계 표현부

Claims (16)

  1. 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 공용 명령어 라이브러리 구축부; 와
    공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 공용형식 변환부를 포함하며,
    상기 공용명령어 생성 알고리즘은,
    서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 제1단계;
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 제2단계; 및
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성하며,
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용 명령어에 삽입하는 제3단계를 포함하는, PLC 제어프로그램의 공용형식 변환장치.
  2. 삭제
  3. 청구항 1에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  4. 청구항 1에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  5. 청구항 1에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  6. 청구항 1에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  7. 청구항 1에 있어서,
    상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현되며,
    상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작되며,
    상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현되는, PLC 제어프로그램의 공용형식 변환장치.
  8. 청구항 7에 있어서,
    상기 공용형식 변환부는,
    공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 IL 오브젝트 생성부;
    블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 IL 블록 생성부;
    상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 공용블록 변환부; 및
    결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 결합관계 표현부를 포함하여,
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 PLC 제어프로그램의 공용형식 변환장치.
  9. 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 단계;
    임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로의 변환 요청에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 확장자 및 데이터 구조를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환 가능한지를 확인하는 단계; 및
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계를 포함하며,
    상기 공용명령어 생성 알고리즘은,
    서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 제1단계;
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 제2단계; 및
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성하며,
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용 명령어에 삽입하는 제3단계를 포함하는, PLC 제어프로그램의 공용형식 변환방법.
  10. 삭제
  11. 청구항 9에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  12. 청구항 9에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  13. 청구항 9에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  14. 청구항 9에 있어서,
    상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  15. 청구항 9에 있어서,
    상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현되며,
    상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작되며,
    상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현되는, PLC 제어프로그램의 공용형식 변환방법.
  16. 청구항 15에 있어서,
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계는,
    공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 단계;
    블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 단계;
    상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 단계; 및
    결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 단계를 포함하여,
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 PLC 제어프로그램의 공용형식 변환방법.
KR1020150181242A 2015-12-17 2015-12-17 Plc 제어 프로그램의 공용형식 변환장치 및 방법 KR101627769B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150181242A KR101627769B1 (ko) 2015-12-17 2015-12-17 Plc 제어 프로그램의 공용형식 변환장치 및 방법
US16/063,383 US20180373218A1 (en) 2015-12-17 2016-08-26 Device and method for common type conversion of plc control program
PCT/KR2016/009490 WO2017104934A1 (ko) 2015-12-17 2016-08-26 Plc 제어 프로그램의 공용형식 변환장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150181242A KR101627769B1 (ko) 2015-12-17 2015-12-17 Plc 제어 프로그램의 공용형식 변환장치 및 방법

Publications (1)

Publication Number Publication Date
KR101627769B1 true KR101627769B1 (ko) 2016-06-08

Family

ID=56193949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150181242A KR101627769B1 (ko) 2015-12-17 2015-12-17 Plc 제어 프로그램의 공용형식 변환장치 및 방법

Country Status (3)

Country Link
US (1) US20180373218A1 (ko)
KR (1) KR101627769B1 (ko)
WO (1) WO2017104934A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018030831A1 (ko) * 2016-08-12 2018-02-15 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
KR20180019001A (ko) * 2016-08-12 2018-02-22 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
KR20220145096A (ko) * 2021-04-21 2022-10-28 주식회사 유디엠텍 Plc 래더정보로부터 공용 명령어정보를 추출하는 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6827340B2 (ja) * 2017-02-17 2021-02-10 三菱重工エンジニアリング株式会社 ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム
US11063916B1 (en) * 2017-08-01 2021-07-13 Amazon Technologies, Inc. Facility control service
CN113220336A (zh) * 2020-01-21 2021-08-06 腾讯科技(深圳)有限公司 代码处理方法、装置、介质及电子设备
CN114397856B (zh) * 2022-03-25 2022-07-19 浙江中控研究院有限公司 一种将cfc语言程序应用于龙芯平台的转换方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100904557B1 (ko) * 2008-11-20 2009-06-25 주식회사 이글루시큐리티 이기종 방화벽 통합관리시스템 및 방법
KR100931004B1 (ko) 2008-11-27 2009-12-10 (주)미도지리정보 지리정보 및 지형정보에 따른 데이터의 오차 여부를 확인 및 갱신해서 수치지도의 정밀성을 향상시킨 수치지도 제작시스템
KR20120095512A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Fbn 기반의 plc 코드를 범용 프로그램 코드로 변환하는 방법 및 시스템
KR20120095513A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100523483B1 (ko) * 2002-10-24 2005-10-24 한국전자통신연구원 네트워크에서의 유해 트래픽 탐지 및 대응 시스템 및 방법
JP2010020635A (ja) * 2008-07-11 2010-01-28 Nippon Reliance Kk プログラミング言語変換装置、変換方法及び変換プログラム
US8255875B2 (en) * 2008-09-30 2012-08-28 Rockwell Automation Technologies, Inc. Application builder for industrial automation
US10360316B2 (en) * 2012-12-21 2019-07-23 Rockwell Automation Technologies, Inc. Integration of simulation of a machine for industrial automation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100904557B1 (ko) * 2008-11-20 2009-06-25 주식회사 이글루시큐리티 이기종 방화벽 통합관리시스템 및 방법
KR100931004B1 (ko) 2008-11-27 2009-12-10 (주)미도지리정보 지리정보 및 지형정보에 따른 데이터의 오차 여부를 확인 및 갱신해서 수치지도의 정밀성을 향상시킨 수치지도 제작시스템
KR20120095512A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Fbn 기반의 plc 코드를 범용 프로그램 코드로 변환하는 방법 및 시스템
KR20120095513A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018030831A1 (ko) * 2016-08-12 2018-02-15 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
KR20180019001A (ko) * 2016-08-12 2018-02-22 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
CN109643100A (zh) * 2016-08-12 2019-04-16 乌德姆泰克公司 用于将plc控制程序转换为结构化数据的设备和方法
KR102004456B1 (ko) * 2016-08-12 2019-07-30 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
CN109643100B (zh) * 2016-08-12 2021-07-20 乌德姆泰克公司 用于将plc控制程序转换为结构化数据的设备和方法
KR20220145096A (ko) * 2021-04-21 2022-10-28 주식회사 유디엠텍 Plc 래더정보로부터 공용 명령어정보를 추출하는 장치 및 방법
KR102509859B1 (ko) 2021-04-21 2023-03-24 주식회사 유디엠텍 Plc 래더정보로부터 공용 명령어정보를 추출하는 장치 및 방법

Also Published As

Publication number Publication date
WO2017104934A1 (ko) 2017-06-22
US20180373218A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
KR101627769B1 (ko) Plc 제어 프로그램의 공용형식 변환장치 및 방법
US10606562B2 (en) Method and system for generating PLC code with a connectivity model
KR101885089B1 (ko) 건축 bim 설계 파일의 엑셀 파일 전환 방법
CN102426519B (zh) 基于关联数据的bpel模板和服务的复用方法及其系统
US8032232B2 (en) Natively retaining project documentation in a controller
CN106648662B (zh) 基于工程造价计算描述语言bcl的报表生成装置及生成方法
CN110262794B (zh) 一种基于规范与描述语言的aadl功能行为拓展方法及工具
KR102004456B1 (ko) Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
US20120304148A1 (en) Visual comparison display of software
CN108228455B (zh) 一种软件控制危险分析方法
KR101772785B1 (ko) 프로그램 그래프 표시 장치, 프로그램 그래프 표시 방법 및 프로그램 그래프 표시 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN109522005A (zh) 跨平台图形化程序设计方法
WO2021040727A1 (en) Plc code generation with a knowledge graph
KR101566358B1 (ko) 자동화 공정 이상상태 알림 시스템 및 방법
Younis et al. UML-based approach for the re-engineering of PLC programs
US11188307B2 (en) Modelizing resources and external data of a program for procedural language coding
KR102054756B1 (ko) 조선해양분야의 국제표준 규격제품에 대한 3차원 모델 라이브러리 설계 최적화 방법
Ortner-Pichler et al. Improving geometry manipulation capabilities of Knowledge-based Engineering applications by the versatile integration of 3D-CAD systems
CN111581815B (zh) 一种基于xml的工艺模型本体构建方法
CN110377934B (zh) 船用机电产品的设计计算方法及装置
EP3748518A1 (en) Designing and building an automation system to perform rule-based transformations on complex technical systems
Aicher et al. Consistent engineering information model for mechatronic components in production automation engineering
CN112534368A (zh) 图表显示装置、图表显示方法以及图表显示程序
CN108133002A (zh) 工控软件数据库生成系统
US20220342376A1 (en) Apparatus and method for extracting common command information from plc ladder information

Legal Events

Date Code Title Description
GRNT Written decision to grant