KR102063966B1 - Plc 명령어 컴파일 최적화 방법 - Google Patents

Plc 명령어 컴파일 최적화 방법 Download PDF

Info

Publication number
KR102063966B1
KR102063966B1 KR1020150146850A KR20150146850A KR102063966B1 KR 102063966 B1 KR102063966 B1 KR 102063966B1 KR 1020150146850 A KR1020150146850 A KR 1020150146850A KR 20150146850 A KR20150146850 A KR 20150146850A KR 102063966 B1 KR102063966 B1 KR 102063966B1
Authority
KR
South Korea
Prior art keywords
compilation
instruction
processing
plc
command
Prior art date
Application number
KR1020150146850A
Other languages
English (en)
Other versions
KR20170046864A (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 KR1020150146850A priority Critical patent/KR102063966B1/ko
Priority to ES16192816T priority patent/ES2772675T3/es
Priority to EP16192816.3A priority patent/EP3159792B1/en
Priority to CN201610916790.7A priority patent/CN107024900B/zh
Priority to US15/331,523 priority patent/US10445074B2/en
Priority to JP2016206507A priority patent/JP2017079069A/ja
Publication of KR20170046864A publication Critical patent/KR20170046864A/ko
Application granted granted Critical
Publication of KR102063966B1 publication Critical patent/KR102063966B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • 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/13004Programming 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
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13119Compiler

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

PLC(Programmable Logic Controller) 명령어 컴파일 방법으로서, 상기 PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 선택된 하나의 컴파일 처리 방식을 판단하는 단계; 및 상기 선택된 컴파일 처리 방식에 따라 속도 또는 사이즈에 최적화된 명령어 컴파일을 수행하는 단계를 포함하는 PLC 명령어 컴파일 최적화 방법이 제공된다.

Description

PLC 명령어 컴파일 최적화 방법{OPTIMIZATION METHOD FOR COMPILING PROGRAMMABLE LOGIC CONTROLLER COMMAND}
본 발명은 PLC(Programmable Logic Controller) 명령어 컴파일 최적화 방법에 관한 것으로, 상세하게는 PADT(Programming And Debugging Tool) 컴파일러에서 수행되는 PLC 명령어 컴파일 처리 방식을 개선하여 사용자의 환경에 따라 속도 옵션 또는 사이즈 옵션을 선택하여 속도 최적화된 컴파일 처리 방식에 의해 명령어를 컴파일하거나 사이즈 최적화된 컴파일 처리방식에 의해 명령어 컴파일을 하여 사용자 프로그램을 최적화하는 PLC 명령어 컴파일 최적화 방법에 관한 것이다.
산업현장의 공장자동화시스템 등에서는 PLC(Programmable Logic Controller)와 같은 통합 제어 장치가 사용된다. PLC에는 기본유닛인 범용 MPU(Main Processing Unit)가 탑재되어 있으며, 범용 MPU는 사용자가 PADT(Programming And Debugging Tool)를 통해 작성한 프로그램을 PLC가 인식할 수 있는 코드로 변환하는 컴파일링 과정을 수행하게 된다.
따라서, PLC를 구동하기 위해서는 사용자가 PADT(Programming and Debugging Tool)를 활용해 작성한 프로그램을 컴파일하여 MPU가 인식할 수 있도록 변환해야 한다.
PADT는 프로그램 작성, 편집 및 디버그 기능을 수행하는 소프트웨어이다. PADT는 사용자가 작성한 프로젝트의 명령어를 PLC가 이해할 수 있도록 컴파일 한 뒤 PLC에 다운로드하는 기능을 수행한다.
이때 명령어는 PADT에서 다양한 방법으로 컴파일하는데 이를 처리하는 방법에 따라 실행속도나 수정 용이성 같은 여러 가지 차이점이 생긴다.
한편, 명령어 처리속도와 프로그램 용량은 PLC 성능의 가장 중요한 팩터이다. 처리 속도가 빠르면 생산성을 높일 수 있고, 프로그램 용량이 크면 더 많은 입출력을 제어할 수 있다.
종래 기술의 PLC는 고정된 명령어 처리속도와 프로그램 용량을 지원하여 시스템 특성에 맞게 유연하게 처리속도와 프로그램 용량을 변경할 수 없다.
실제 사용 중 명령어 처리속도가 느리거나, 프로그램 사이즈가 부족한 경우 PLC를 상위 기종으로 변경하거나 시스템을 변경해야 하는 문제점이 있다.
본 발명이 해결하고자 하는 과제는, PADT(Programming And Debugging Tool) 컴파일러에서 수행되는 PLC 명령어 컴파일 처리 방식을 개선하여 사용자의 환경에 따라 속도 옵션 또는 사이즈 옵션을 선택하여 속도 최적화된 컴파일 처리 방식에 의해 명령어를 컴파일하거나 사이즈 최적화된 컴파일 처리방식에 의해 명령어 컴파일을 하여 사용자 프로그램을 최적화하는 PLC 명령어 컴파일 최적화 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 제안되는 실시 예가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일측면에 의하면,PLC(Programmable Logic Controller) 명령어 컴파일 방법으로서, 상기 PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 선택된 하나의 컴파일 처리 방식을 판단하는 단계; 및 상기 선택된 컴파일 처리 방식에 따라 속도 또는 사이즈에 최적화된 명령어 컴파일을 수행하는 단계를 포함하는 PLC 명령어 컴파일 최적화 방법이 제공된다.
상기 명령어 컴파일을 수행하는 단계는, 상기 판단 결과, 선택된 컴파일 처리 방식이 속도인 경우 설정된 기준의 간단한 명령어 처리인지 판단하는 단계; 판단 결과 상기 간단한 명령어 처리인 경우 직접 컴파일 처리 방식에 의해 어셈블러 언어로 명령어 컴파일을 수행하는 단계; 및 상기 간단한 명령어 처리가 아닌 경우 속도에 최적화된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인하고 명령어 처리 함수로 이동하고, 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리하도록 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계를 포함할 수 있다.
상기 명령어 컴파일을 수행하는 단계는, 상기 판단 결과, 선택된 컴파일 처리 방식이 사이즈인 경우, 사이즈에 최적화된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인하고 명령어 처리 함수로 이동하고, 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리하도록 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계를 포함할 수 있다.
상기 명령어 컴파일을 수행하는 단계는, 상기 판단 결과, 선택된 컴파일 처리 방식이 디폴트인 경우 설정된 기준의 간단한 명령어 처리인지 판단하는 단계; 판단 결과 상기 간단한 명령어 처리인 경우 직접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계; 및 상기 간단한 명령어 처리가 아닌 경우 디폴트로 설정된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인하고 명령어 처리 함수로 이동하고, 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리하도록 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계를 포함할 수 있다.
상기 하나의 컴파일 처리 방식을 판단하는 단계는, 속도에 상응하는 제1 선택 박스, 사이즈에 상응하는 제2 선택 박스를 제공하는 단계; 및 상기 제1 선택 박스에 대한 입력이 있으면 속도가 선택된 것으로 판단하고, 상기 제2 선택 박스에 입력이 있으면 사이즈가 선택된 것으로 판단하고, 상기 제1 선택 박스 및 상기 제2 선택 박스에 어떠한 입력도 없으면 디폴트가 선택된 것으로 판단할 수 있다.
상기 PLC 명령어 컴파일 최적화 방법은 프로그램 사이즈 또는 PLC내의 잔여 데이터 저장 용량에 기반하여 명령어에 대한 복수의 컴파일 처리 방식중에서 하나의 컴파일 처리 방식을 자동으로 선택하여 설정할 수 있다.
상기 하나의 컴파일 처리 방식을 자동으로 선택하여 설정하는 단계는, 정상 상황에서는 속도를 컴파일 처리 방식으로 선택하고, 프로그램 사이즈가 기준 사이즈를 초과하면 사이즈를 컴파일 처리 방식으로 선택하여 설정할 수 있다.
상기 하나의 컴파일 처리 방식을 자동으로 선택하여 설정하는 단계는, 정상 상황에서는 속도를 컴파일 처리 방식으로 선택하고, PLC내의 잔여 데이터 저장 용량이 기준 용량이하가 되면 사이즈를 컴파일 처리 방식으로 선택하여 설정할 수 있다.
본 발명에 의하면, PADT(Programming And Debugging Tool) 컴파일러에서 명령어 컴파일 처리 방식을 개선하여 사용자 상황에 따라 속도 옵션 또는 사이즈 옵션을 선택하여 속도 최적화된 컴파일 처리 방식에 의해 명령어를 컴파일하거나 사이즈 최적화된 컴파일 처리방식에 의해 명령어 컴파일을 함으로써 사용자 프로그램을 최적화할 수 있다.
또한 본 발명에 의하면, PLC 프로그램의 최적화 컴파일 방법으로 사용자가 컴파일 방식을 선택하게 함으로써 다양한 시스템에 유연하게 대응할 수 있다.
예를 들어 속도 옵션을 선택한 경우 속도에 최적화된 컴파일 방법을 제공하여 다양한 방법으로 속도를 높일 수 있다. 반대로 사이즈 옵션을 선택한 경우 프로그램 저장 용량 효율을 높일 수 있도록 사이즈를 최적화하고 아무런 선택이 없는 경우에는 기본 오브젝트 코드를 사용하여 컴파일할 수 있다.
도 1은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 사용자 코드를 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 개발자 코드를 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 명령어 처리를 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시에 따른 PLC 명령어 컴파일 최적화를 위해 컴파일 처리 방식을 설정하는 것을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 오브젝트 파일을 생성하는 것을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 직접 컴파일을 설명하기 위한 도면이다.
도 9는 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 간접 컴파일을 설명하기 위한 도면이다.
도 10은 본 발명의 다른 일실시예에 따른 PLC 명령어 컴파일 최적화 방법을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 사용자 코드를 설명하기 위한 도면이다.
도 1을 참조하면, 사용자가 PADT(Programming and Debugging Tool)를 활용해 프로그램(1)을 작성한다.
도 2는 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 개발자 코드를 설명하기 위한 도면이다.
도 2를 참조하면, 개발자가 소스 편집 툴을 이용해 명령어 처리 함수 코드(2)를 작성한다. 명령어 처리 함수 코드(2)는 예를 들어 void move(void)가 될 수 있다. 개발자에 의해 작성된 명령어 처리 함수 코드(2)는 MPU 전용 컴파일러(3)에 의해 바이너리 형식의 오브젝트 코드(4)로 만들어 진다. MPU 전용 컴파일러(3)는 C언어 또는 C++ 컴파일러가 될 수 있다.
컴파일된 바이너리 형식의 오브젝트 코드(4)는 명령어 처리 함수를 저장하고 있다. 이 오브젝트 코드(4)를 이용하여 명령어별로 시작 주소와 크기를 추출하여 명령어 맵 테이블을 만든다.
도 3은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법에서 명령어 처리를 설명하기 위한 도면이다.
도 3을 참조하면, 사용자가 PADT로 MOVE 명령어를 사용하는 경우에 처리되는 과정을 볼 수 있다. PADT 컴파일러(5)는 기본적으로 사용자가 작성한 프로그램을 PLC가 동작하기 위한 형식으로 변환할 수 있다. 명령어를 수행하기 위해서는 명령에 따라 처리 함수를 작성해야 한다.
사용자에 의해 PADT에서 MOVE 명령어(6)가 작성되면 프로그램(7)의 처리중에 MOVE 명령어가 호출이 될 수 있다(8).
MOVE 명령어 호출되면 명령어 맵 테이블(9)에서 바이너리 파일(10)에 저장된 MOVE 명령어의 주소를 확인하고(11) 해당 명령어 처리 함수 코드가 저장되어 있는 바이너리 파일(10)로 이동한다(12). 그리고, MOVE 명령어 처리 함수 코드를 컴파일 영역에 삽입한다(13). 이렇게 컴파일 처리가 끝나면 PLC 구동 파일(14)이 만들어진다.
도 4는 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법을 설명하기 위한 도면이다. 도 5는 본 발명의 일실시에 따른 PLC 명령어 컴파일 최적화를 위해 컴파일 처리 방식을 설정하는 것을 설명하기 위한 도면이다.
도 4를 참조하면, PADT의 래더 프로그램을 이용하여 PLC에서 실행된 프로그램 코드가 작성된다(S100).
이후, PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 하나의 컴파일 처리 방식이 설정된다(S200).
예를 들어, 사용자로 하여금 속도 옵션 및 사이즈 옵션을 체크 또는 해제할 수 있도록 하여 컴파일 최적화 방식을 설정할 수 있다. 이때 별도의 옵션을 선택하지 않은 경우 기본 오브젝트 코드를 사용하는 컴파일을 진행하도록 설정될 수 있다. 사이즈 옵션을 선택한 경우 사이즈에 최적화하여 컴파일을 진행하도록 설정될 수 있다.
도 5를 참조하면, 속도 옵션 또는 사이즈 옵션을 선택하기 위한 선택 박스(10)를 볼 수 있다. 선택 박스(10)에는 속도 옵션에 상응하는 제1 선택 박스(11), 사이즈 옵션에 상응하는 제2 선택 박스(12)를 제공될 수 있다. 여기에서 제1 선택 박스(11)에 대한 입력이 있으면 속도 옵션이 선택된 것으로 판단된다. 제2 선택 박스(12)에 입력이 있으면 사이즈 옵션이 선택된 것으로 판단된다. 그러나, 제1 선택 박스(11) 및 제2 선택 박스(12)에 어떠한 입력도 없으면 디폴트 옵션이 선택된 것으로 판단된다.
PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 선택된 하나의 컴파일 처리 방식에 따라 명령어 컴파일을 수행하여 PLC 구동 파일을 생성한다(S300).
이를 위해 PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 선택된 하나의 컴파일 처리 방식이 판단된다.
도 6을 참조하면, 선택된 컴파일 처리 방식이 속도인 경우 MPU 전용 컴파일러는 속도에 최적화된 바이너리 파일 형식의 오브젝트 코드를 생성한다.
판단 결과, 선택된 컴파일 처리 방식이 사이즈인 경우 MPU 전용 컴파일러는 사이즈 최적화된 바이너리 형식의 오브젝트 코드를 생성한다.
판단 결과, 선택된 컴파일 처리 방식이 디폴트인 경우 디폴트로 설정된 바이너리 형식의 오브젝트 코드를 생성한다.
이후 명령어의 처리시에 PADT 컴파일러는 사용자가 작성한 프로그램을 PLC가 동작하기 위한 형식으로 변환할 수 있다.
즉, PADT 컴파일러는 선택된 컴파일 처리 방식이 속도인 경우 속도에 최적화된 오브젝트 코드를 이용하여 속도에 최적화된 명령어 컴파일을 수행하여 PLC 구동 파일을 만든다. 한편, 선택된 컴파일 처리 방식이 사이즈인 경우 사이즈에 최적화된 오브젝트 코드를 이용하여 사이즈에 최적화된 명령어 컴파일을 수행하여 PLC 구동 파일을 만든다. 한편, 선택된 컴파일 처리 방식이 디폴트인 경우 디폴트로 설정된 오브젝트 코드를 이용하여 명령어 컴파일을 수행하여 PLC 구동 파일을 만든다.
이렇게 생성된 PLC 구동 파일이 PLC로 다운로드된다(S400)
도 7은 본 발명의 일실시예에 따른 PLC 명령어 컴파일 최적화 방법을 설명하기 위한 도면이다.
도 7을 참조하면, PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 선택된 하나의 컴파일 처리 방식이 판단된다(S301).
S301의 판단 결과, 선택된 컴파일 처리 방식이 속도인 경우 설정된 기준의 간단한 명령어 처리인지 판단된다(S302). 여기에서 간단한 명령어 처리인지 판단하는 기준은 직접 컴파일이 가능한 명령어에 해당하는지 여부이다. 직접 컴파일이 가능하면 간단한 명령어에 해당된다.
이와 같이, 속도 옵션이 선택된 경우 PADT 컴파일러에서는 사용중인 명령어를 확인하여 해당 명령어가 직접 컴파일 방식 또는 간접 컴파일 방식중에서 직접 컴파일이 가능한 명령어인지 판단한다.
예를 들어, 하나의 명령어 코드가 엄청나게 크고 복잡한 경우에는 CPU내에 C코드로 작성되어 있기 때문에 직접 컴파일이 불가능하다. 따라서, 직접 컴파일이 가능한 명령어인지 판단한 결과, 직접 컴파일이 가능한 명령어인 경우에는 속도에 최적화된 어셈블러 언어로 직접 컴파일을 수행한다. 그러나, 판단 결과 직접 컴파일이 불가능한 명령어의 경우에는 C 코드로 작성된 명령어 수행 루틴을 속도 옵션으로 컴파일하게 된다.
여기에서, 직접 컴파일은 도 8에 도시된 바와 같이 PADT에서 명령어를 처리하고 저장하는 컴파일 처리 방식이다. 사용자가 임의의 명령어를 작성하면 컴파일시에 해당 명령어 처리에 관한 모든 코드를 PLC 컴파일 영역에 쓰기 한다. 그리고, 프로그램 처리중에 사용한 명령어가 있을 경우 컴파일 영역에는 해당 실행 코드가 저장되어 있음에 따라 별도의 함수 호출없이 해당 명령어를 처리할 수 있다.
한편, 간접 컴파일은 도 9에 도시된 바와 같이 사용자가 래더 프로그램으로 임의의 명령어를 작성하면 PADT에서 컴파일을 수행하면서 명령어를 확인한다. PADT에 저장된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인하여 명령어 처리 함수로 이동한다. 그리고 해당 명령어의 처리에 필요한 명령어 처리 함수를 PLC의 컴파일 영역 끝부분에 복사한다. 따라서, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어 처리가 이루어질 수 있다.
S302의 판단 결과, 간단한 명령어 처리인 경우 직접 컴파일 처리 방식에 의해 어셈블러 언어로 명령어 컴파일이 수행된다(S303).
한편, S302의 판단 결과, 간단한 명령어 처리가 아닌 경우 속도에 최적화된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인한다(S304). 명령어의 주소에 기반하여 명령어 처리 함수로 이동하고(S305), 해당 명령어의 처리에 필요한 명령어 처리 함수를 컴파일 영역으로 복사하여 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행한다(S306). 이에 따라, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리할 수 있게 된다.
한편, S301의 판단 결과, 선택된 컴파일 처리 방식이 사이즈인 경우, 사이즈에 최적화된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인한다(S307). 명령어의 주소에 기반하여 명령어 처리 함수로 이동하고(S308), 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행한다(S309). 이에 따라, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리할 수 있게 된다.
이와 같이, 선택된 컴파일 처리 방식이 사이즈인 경우, PADT 컴파일러에서는 사용중인 명령어에 대하여 간접 컴파일을 수행한다. 간접 컴파일 처리 방식은 동일한 명령어에 대하여 최초 한번만 실행 루틴을 복사하기 때문에 전체적인 프로그램 용량을 줄이는데 용이하다. 또한 간접 컴파일 수행 시 C 코드로 작성된 명령어 수행 루틴을 사이즈 옵션으로 컴파일하여 프로그램 용량을 최소로 줄일 수 있다.
한편, S301의 판단 결과, 선택된 컴파일 처리 방식이 디폴트인 경우 설정된 기준의 간단한 명령어 처리인지 판단한다(S310).
S310의 판단 결과 간단한 명령어 처리인 경우 직접 컴파일 처리 방식에 의해 명령어 컴파일을 수행한다(S311).
한편, S310의 판단 결과, 간단한 명령어 처리가 아닌 경우 디폴트로 설정된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인한다(S312). 명령어 주소에 기반하여 명령어 처리 함수로 이동하고(S313), 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행한다(S314). 이에 따라, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리할 수 있게 된다.
이와 같이, 사용자는 시스템 환경에 맞게 명령어의 컴파일 방식을 선택할 수 있다. 속도 옵션을 선택한 경우 PLC 프로그램은 처리 속도를 최적화하는 방향으로 컴파일 되어 종래 기술 대비 약 30% 향상된 속도로 제어가 가능하다. 또한 사이즈 옵션을 선택한 경우 기존 프로그램 용량 대비 약 30% 프로그램 용량을 늘려 사용할 수 있다. 따라서, 이 기술을 적용한 PLC를 사용하는 경우 커버할 수 있는 처리 속도와 프로그램 용량이 유연하여 다양한 시스템 대응이 가능하다.
본 발명에 의하면, PLC 프로그램의 최적화 컴파일 방법으로 사용자가 컴파일 방법을 선택하게 함으로써 다양한 시스템에 유연하게 대응할 수 있다.
도 10은 본 발명의 다른 일실시예에 따른 PLC 명령어 컴파일 최적화 방법을 설명하기 위한 도면이다.
도 10을 참조하면, PADT의 래더 프로그램을 이용하여 PLC에서 실행된 프로그램 코드를 작성된다(S510).
프로그램 사이즈 또는 PLC내의 잔여 데이터 저장 용량에 기반하여 PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 하나의 컴파일 처리 방식이 하나의 컴파일 처리 방식을 자동으로 선택하도록 설정된다(S520)
예를 들어, 하나의 컴파일 처리 방식을 자동으로 선택하여 설정하기 위해, 정상 상황에서는 속도를 컴파일 처리 방식으로 선택하고, 프로그램 사이즈가 기준 사이즈를 초과하면 사이즈를 컴파일 처리 방식으로 선택하여 설정될 수 있다.
또 다른 예로는, 하나의 컴파일 처리 방식을 자동으로 선택하여 설정하기 위해, 정상 상황에서는 속도를 컴파일 처리 방식으로 선택하고, PLC내의 잔여 데이터 저장 용량이 기준 용량이하가 되면 사이즈를 컴파일 처리 방식으로 선택하여 설정할 수 있다.
PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 자동으로 설정되어 선택된 하나의 컴파일 처리 방식에 따라 명령어 컴파일을 수행하여 PLC 구동 파일을 생성한다(S530).
이를 위해 PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 선택된 하나의 컴파일 처리 방식이 판단된다.
판단 결과, 선택된 컴파일 처리 방식이 속도인 경우 속도에 최적화된 명령어 컴파일을 수행한다. 판단결과, 선택된 컴파일 처리 방식이 사이즈인 경우 사이즈에 최적화된 명령어 컴파일을 수행한다. 판단결과, 선택된 컴파일 처리 방식이 디폴트인 경우 디폴트로 설정된 명령어 컴파일을 수행하여 오브젝트 코드를 생성하여 PLC 구동 파일이 만들어진다. 생성된 PLC 구동 파일이 PLC로 다운로드된다(S540)
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.

Claims (8)

  1. PLC(Programmable Logic Controller) 명령어 컴파일 방법으로서,
    상기 PLC에서 실행될 프로그램내에 포함된 명령어에 대한 복수의 컴파일 처리 방식중에서 선택된 하나의 컴파일 처리 방식을 판단하는 단계; 및
    상기 선택된 컴파일 처리 방식에 따라 속도 또는 사이즈에 최적화된 명령어 컴파일을 수행하는 단계를 포함하고,
    상기 명령어 컴파일을 수행하는 단계는,
    상기 판단 결과, 선택된 컴파일 처리 방식이 속도인 경우 설정된 기준의 간단한 명령어 처리인지 판단하는 단계;
    판단 결과 상기 간단한 명령어 처리인 경우 직접 컴파일 처리 방식에 의해 어셈블러 언어로 명령어 컴파일을 수행하는 단계; 및
    상기 간단한 명령어 처리가 아닌 경우 속도에 최적화된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인하고 명령어 처리 함수로 이동하고, 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리하도록 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계를 포함하고,
    상기 판단 결과, 선택된 컴파일 처리 방식이 사이즈인 경우, 사이즈에 최적화된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인하고 명령어 처리 함수로 이동하고, 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리하도록 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계를 포함하는 PLC 명령어 컴파일 최적화 방법.
  2. 삭제
  3. 삭제
  4. 제1 항에 있어서, 상기 명령어 컴파일을 수행하는 단계는,
    상기 판단 결과, 선택된 컴파일 처리 방식이 디폴트인 경우 설정된 기준의 간단한 명령어 처리인지 판단하는 단계;
    판단 결과 상기 간단한 명령어 처리인 경우 직접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계; 및
    상기 간단한 명령어 처리가 아닌 경우 디폴트로 설정된 명령어 맵 테이블에서 바이너리 파일에 저장된 명령어의 주소를 확인하고 명령어 처리 함수로 이동하고, 해당 명령어의 처리에 필요한 함수를 컴파일 영역으로 복사하여, PLC 구동시에 명령어 주소를 확인하고 저장된 함수를 호출하여 명령어를 처리하도록 간접 컴파일 처리 방식에 의해 명령어 컴파일을 수행하는 단계를 포함하는 PLC 명령어 컴파일 최적화 방법.
  5. 제1 항에 있어서, 상기 하나의 컴파일 처리 방식을 판단하는 단계는,
    속도에 상응하는 제1 선택 박스, 사이즈에 상응하는 제2 선택 박스를 제공하는 단계; 및
    상기 제1 선택 박스에 대한 입력이 있으면 속도가 선택된 것으로 판단하고, 상기 제2 선택 박스에 입력이 있으면 사이즈가 선택된 것으로 판단하고, 상기 제1 선택 박스 및 상기 제2 선택 박스에 어떠한 입력도 없으면 디폴트가 선택된 것으로 판단하는 PLC 명령어 컴파일 최적화 방법.
  6. 제1 항에 있어서,
    프로그램 사이즈 또는 PLC내의 잔여 데이터 저장 용량에 기반하여 명령어에 대한 복수의 컴파일 처리 방식중에서 하나의 컴파일 처리 방식을 자동으로 선택하여 설정하는 단계를 더 포함하는 PLC 명령어 컴파일 최적화 방법.
  7. 제6 항에 있어서, 상기 하나의 컴파일 처리 방식을 자동으로 선택하여 설정하는 단계는,
    정상 상황에서는 속도를 컴파일 처리 방식으로 선택하고, 프로그램 사이즈가 기준 사이즈를 초과하면 사이즈를 컴파일 처리 방식으로 선택하여 설정하는 PLC 명령어 컴파일 최적화 방법.
  8. 제6 항에 있어서, 상기 하나의 컴파일 처리 방식을 자동으로 선택하여 설정하는 단계는,
    정상 상황에서는 속도를 컴파일 처리 방식으로 선택하고, PLC내의 잔여 데이터 저장 용량이 기준 용량이하가 되면 사이즈를 컴파일 처리 방식으로 선택하여 설정하는 PLC 명령어 컴파일 최적화 방법.
KR1020150146850A 2015-10-21 2015-10-21 Plc 명령어 컴파일 최적화 방법 KR102063966B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020150146850A KR102063966B1 (ko) 2015-10-21 2015-10-21 Plc 명령어 컴파일 최적화 방법
ES16192816T ES2772675T3 (es) 2015-10-21 2016-10-07 Método de compilación óptima de un comando de PLC
EP16192816.3A EP3159792B1 (en) 2015-10-21 2016-10-07 Method of optimally compiling plc command
CN201610916790.7A CN107024900B (zh) 2015-10-21 2016-10-20 最优编译plc命令的方法
US15/331,523 US10445074B2 (en) 2015-10-21 2016-10-21 Method of optimally compiling PLC command
JP2016206507A JP2017079069A (ja) 2015-10-21 2016-10-21 Plc命令語コンパイルの最適化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150146850A KR102063966B1 (ko) 2015-10-21 2015-10-21 Plc 명령어 컴파일 최적화 방법

Publications (2)

Publication Number Publication Date
KR20170046864A KR20170046864A (ko) 2017-05-04
KR102063966B1 true KR102063966B1 (ko) 2020-01-09

Family

ID=57113187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150146850A KR102063966B1 (ko) 2015-10-21 2015-10-21 Plc 명령어 컴파일 최적화 방법

Country Status (6)

Country Link
US (1) US10445074B2 (ko)
EP (1) EP3159792B1 (ko)
JP (1) JP2017079069A (ko)
KR (1) KR102063966B1 (ko)
CN (1) CN107024900B (ko)
ES (1) ES2772675T3 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108874470B (zh) * 2017-05-11 2023-04-07 腾讯科技(深圳)有限公司 一种信息处理方法及服务器、计算机存储介质
CN108932125B (zh) * 2018-07-19 2021-06-22 闫伟 可编程逻辑控制器的控制方法
CN111026402B (zh) * 2019-12-09 2023-05-12 贵阳永青仪电科技有限公司 一种编译型plc代码执行效率优选方法
KR20210101770A (ko) * 2020-02-11 2021-08-19 엘에스일렉트릭(주) 복수 프로그래밍 언어 지원을 위한 plc 제어방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131889A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd オブジェクトプログラム生成方法
JP2007334469A (ja) 2006-06-13 2007-12-27 Hitachi Industrial Equipment Systems Co Ltd プログラマブルコントローラ及びこれを用いた機器制御方法
JP2009223590A (ja) * 2008-03-15 2009-10-01 Omron Corp プログラム開発支援装置の動作仕様管理方法

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287548A (en) * 1988-02-29 1994-02-15 Allen-Bradley Company, Inc. Programmable controller having a stored program with both machine language instructions and source code data
JPH02133825A (ja) * 1988-11-15 1990-05-23 Nec Corp コンパイル方式
GB2233128B (en) * 1989-05-01 1993-12-01 Honda Motor Co Ltd Method of and apparatus for generating control program
US5285376A (en) * 1991-10-24 1994-02-08 Allen-Bradley Company, Inc. Fuzzy logic ladder diagram program for a machine or process controller
JP3171363B2 (ja) * 1994-06-14 2001-05-28 富士電機株式会社 プログラミング装置
DE19712946A1 (de) * 1996-05-30 1997-12-04 Ibm Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells
US5940622A (en) * 1996-12-11 1999-08-17 Ncr Corporation Systems and methods for code replicating for optimized execution time
JPH1195813A (ja) * 1997-09-19 1999-04-09 Fuji Electric Co Ltd プログラマブルコントローラ
JP4027482B2 (ja) * 1997-12-24 2007-12-26 富士通株式会社 暗号復元を行う翻訳装置およびその方法
JP3284956B2 (ja) * 1998-01-26 2002-05-27 日本電気株式会社 プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体
KR19990080902A (ko) 1998-04-23 1999-11-15 박준일 피엘시용 제어코드 프로그래밍 시스템
US6922829B2 (en) * 1999-10-12 2005-07-26 Texas Instruments Incorporated Method of generating profile-optimized code
AU2001247743A1 (en) * 2000-03-24 2001-10-08 Siemens Energy & Automation, Inc. Industrial automation system graphical programming language storage and transmission
US7412369B1 (en) * 2000-06-09 2008-08-12 Stmicroelectronics, Inc. System and method for designing and optimizing the memory of an embedded processing system
US6986130B1 (en) * 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
JP3801545B2 (ja) * 2002-08-02 2006-07-26 松下電器産業株式会社 コンパイラ用プログラム、コンパイラ装置及びコンパイル方法
JP4934267B2 (ja) * 2003-10-17 2012-05-16 パナソニック株式会社 コンパイラ装置
JP4366575B2 (ja) 2003-11-05 2009-11-18 オムロン株式会社 ツール
US7710988B1 (en) * 2005-03-11 2010-05-04 Xambala Corporation Method and system for non-deterministic finite automaton filtering
US20060236310A1 (en) * 2005-04-19 2006-10-19 Domeika Max J Methods and apparatus to iteratively compile software to meet user-defined criteria
US20080005473A1 (en) * 2006-06-30 2008-01-03 Tong Chen Compiler assisted re-configurable software implemented cache
US8087012B2 (en) * 2007-08-21 2011-12-27 International Business Machines Corporation Eliminating maximum/minimum operations in loop bounds
JP5025562B2 (ja) * 2008-05-26 2012-09-12 三菱電機株式会社 プログラマブルコントローラシステム
US20100125838A1 (en) * 2008-11-19 2010-05-20 Nokia Corporation Method and Apparatus for Optimizing a Program
EP2553571B1 (en) * 2010-03-31 2020-12-23 Irdeto B.V. A system and method for encapsulating and enabling protection through diverse variations in software libraries
US8762964B2 (en) * 2010-12-17 2014-06-24 Cisco Technology, Inc. Optimizing symbol manipulation language-based executable applications for distributed execution
CN102566483A (zh) * 2010-12-21 2012-07-11 鸿富锦精密工业(深圳)有限公司 可编程逻辑控制***
US8504176B2 (en) * 2011-03-15 2013-08-06 Omron Corporation CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC
EP2541348B1 (de) * 2011-06-28 2017-03-22 Siemens Aktiengesellschaft Verfahren und Programmiersystem zur Programmierung einer Automatisierungskomponente
CN102393670A (zh) * 2011-10-24 2012-03-28 杭州电子科技大学 一种梯形图内嵌高级语言进行混合编程的实现方法
US9134980B1 (en) * 2012-05-01 2015-09-15 Amazon Technologies, Inc. Compiler optimization in a computing environment
KR20130132340A (ko) 2012-05-25 2013-12-04 김민규 마이콤용 프로그래밍 장치
CN102750177B (zh) * 2012-06-19 2014-12-31 武汉凌控自动化技术有限公司 一种使用编译器的脚本实现方法
KR101398718B1 (ko) * 2012-06-29 2014-05-27 엘에스산전 주식회사 명령어 처리 장치 및 방법
TWI489232B (zh) * 2012-11-14 2015-06-21 Inst Information Industry 遠端監控系統及方法及其記錄媒體
CN103914018A (zh) 2012-12-31 2014-07-09 施耐德电器工业公司 可编程控制器的编程辅助***及方法
JP2015125713A (ja) 2013-12-27 2015-07-06 富士電機株式会社 プログラマブルコントローラ・システム、その支援装置、プログラマブルコントローラ、プログラム
US9286089B2 (en) * 2014-01-24 2016-03-15 International Business Machines Corporation Just-in time expensive compilation hints
JP2015194881A (ja) * 2014-03-31 2015-11-05 富士通株式会社 コンパイル装置、コンパイラプログラム、コンパイル方法
US9626155B2 (en) * 2015-04-28 2017-04-18 Qualcomm Incorporated Determining recommended optimization strategies for software development
JP6572610B2 (ja) * 2015-04-28 2019-09-11 富士通株式会社 情報処理装置、コンパイル方法およびコンパイルプログラム
US10409570B2 (en) * 2016-10-19 2019-09-10 Nxp Usa, Inc. Feedback directed program stack optimization

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131889A (ja) * 2001-10-25 2003-05-09 Hitachi Ltd オブジェクトプログラム生成方法
JP2007334469A (ja) 2006-06-13 2007-12-27 Hitachi Industrial Equipment Systems Co Ltd プログラマブルコントローラ及びこれを用いた機器制御方法
JP2009223590A (ja) * 2008-03-15 2009-10-01 Omron Corp プログラム開発支援装置の動作仕様管理方法

Also Published As

Publication number Publication date
CN107024900B (zh) 2020-06-19
US10445074B2 (en) 2019-10-15
EP3159792B1 (en) 2019-11-27
JP2017079069A (ja) 2017-04-27
CN107024900A (zh) 2017-08-08
US20170115972A1 (en) 2017-04-27
EP3159792A1 (en) 2017-04-26
KR20170046864A (ko) 2017-05-04
ES2772675T3 (es) 2020-07-08

Similar Documents

Publication Publication Date Title
KR102063966B1 (ko) Plc 명령어 컴파일 최적화 방법
US10295985B2 (en) Program processing apparatus and program
CN106648681A (zh) 一种可编程语言编译装载***及方法
US20190196798A1 (en) Executable program creation device, executable program creation method, and executable program creation program
EP2947526B1 (en) Apparatus for program management of programmable logic controller
JP2009146229A (ja) プログラマブルコントローラシステム
CN110554861B (zh) 具有编译和读取-评估-打印-循环操作的软件开发环境
JP2009157533A (ja) プログラマブルコントローラシステム
JP2017094402A (ja) 工具カタログデータベースと連携する数値制御システム
CN103744331A (zh) 教育机器人、其控制器及控制器的编程方法
JP2013084112A (ja) プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法
KR101398718B1 (ko) 명령어 처리 장치 및 방법
KR102091134B1 (ko) Plc의 브랜치 명령어 처리 방법
JP6541902B1 (ja) プログラム管理システム、プログラミング支援装置、プログラム管理方法、およびプログラミング支援プログラム
JP5619331B1 (ja) プログラミング装置及び実行コード生成方法
US10994381B2 (en) Controller, data generation device, control method, and control program
JP2009086898A (ja) プログラム可能な論理制御装置用マシーンコード・プログラムのコンパイル法
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
JP2009064207A (ja) コンパイル装置
JP6901430B2 (ja) 制御装置及び編集装置
US20180329396A1 (en) Support device, control method of support device, and non-transitory computer-readable recording medium
CN113986321A (zh) 一种plc设备的升级方法、装置、设备及存储介质
KR20230081282A (ko) 확장형 모터 제어 장치 개발 지원 시스템 및 방법
JPS63318605A (ja) Ncパ−トプログラム生成装置
US20160313718A1 (en) Method and controller for flexible process control

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