KR20190096499A - 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 cpu모듈 - Google Patents

프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 cpu모듈 Download PDF

Info

Publication number
KR20190096499A
KR20190096499A KR1020180016030A KR20180016030A KR20190096499A KR 20190096499 A KR20190096499 A KR 20190096499A KR 1020180016030 A KR1020180016030 A KR 1020180016030A KR 20180016030 A KR20180016030 A KR 20180016030A KR 20190096499 A KR20190096499 A KR 20190096499A
Authority
KR
South Korea
Prior art keywords
program
code
subroutine
unit
editing
Prior art date
Application number
KR1020180016030A
Other languages
English (en)
Other versions
KR102095224B1 (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 KR1020180016030A priority Critical patent/KR102095224B1/ko
Publication of KR20190096499A publication Critical patent/KR20190096499A/ko
Application granted granted Critical
Publication of KR102095224B1 publication Critical patent/KR102095224B1/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
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13028Convert plc type program in pc type program for running in pc environment
    • 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/13056Edit conversion, jump table interactively

Landscapes

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

Abstract

본 발명은 PLC시스템의 프로그램 제공 장치에 있어서, 서로 다른 프로그래밍 언어에 대응하는 복수의 편집부, 상기 복수의 편집부 중 어느 하나에 의한 메인코드와 적어도 하나의 서브루틴코드로 이루어진 프로그램블록이 하나 이상 조합된 프로그램을 제공하는 프로그램제공부, 및 상기 적어도 하나의 서브루틴코드에 대한 리스트를 제공하는 서브루틴리스트제공부를 포함하는 프로그램 제공 장치를 제공한다.

Description

프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 CPU모듈{APPARATUS FOR PROVIDING PROGRAM AND CPU MODULE PROCESSING EXECUTION OF THE PROGRAM OF THE SAME}
본 발명은 PLC시스템의 프로그램 제공 장치 및 CPU모듈에 관한 것으로, 감시기능 및 제어기능을 구현하기 위한 프로그램을 제공하는 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 CPU모듈에 관한 것이다.
최근 자동화 설비를 구현함에 있어서, 각 공정을 수행하는 제어대상기기들을 공정의 순서에 따라 순차적으로 연결하기 위한 릴레이 및 카운터 등은 PLC시스템으로 대체되고 있다.
PLC시스템은 사용자에 의해 설정된 공정 순서에 따라 제어대상기기들의 순차 구동을 제어하는 장비이다. 이러한 PLC시스템을 이용하여 자동화 설비를 구현하면, 공정의 순서 변경, 추가 및 삭제가 용이해질 수 있는 장점이 있다.
일반적으로 PLC시스템은 제어대상기기들의 순차 구동을 제어 및 감시하기 위한 각종 기능들을 구현하기 위한 프로그램을 제공하는 프로그램 제공 장치와, 프로그램을 실행하는 CPU장치를 포함한다.
PLC시스템의 프로그램은 2회 이상 반복되는 기능을 포함할 수 있다. 이에 관련하여, PLC프로그래밍에 관련한 규격인 IEC 61131-3은 사용자 펑션 및 사용자 펑션블록을 설정한다. 즉, 프로그램의 메인코드는 자주 사용되는 기능(또는 연산)에 관한 사용자 펑션(또는 사용자 펑션블록)을 호출하는 명령어를 포함할 수 있다. 이와 같이 하면, 반복적으로 배치되는 기능(또는 연산)을 일일이 코드로 작성하는 것에 비해, 프로그램의 복잡도 및 오류가 감소될 수 있다.
그러나, 사용자 펑션(또는 사용자 펑션블록)의 변수 설정은 메인코드와 별개로 실시된다. 이에, 사용자 펑션(또는 사용자 펑션블록)이 호출되려면, 메인코드에 따른 변수를 사용자 펑션(또는 사용자 펑션블록)의 입력파라미터로 전달하고, 사용자 펑션(또는 사용자 펑션블록)의 출력파라미터를 메인코드로 전달하는 과정이 필수적이다.
이러한 입력파라미터 및 출력파라미터의 전달 과정에 의한 지연시간이 발생되므로, 프로그램의 실행 기간이 단축되는 데에 한계가 있는 문제점이 있다.
본 발명은 프로그램의 실행 기간이 단축될 수 있는 프로그램 제공 장치 및 그에 의한 프로그램을 실행하는 CPU모듈을 제공한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
이와 같은 과제를 해결하기 위하여, 본 발명의 일 예시는 PLC시스템의 프로그램 제공 장치에 있어서, 서로 다른 프로그래밍 언어에 대응하는 복수의 편집부, 상기 복수의 편집부 중 어느 하나에 의한 메인코드와 적어도 하나의 서브루틴코드로 이루어진 프로그램블록이 하나 이상 조합된 프로그램을 제공하는 프로그램제공부, 및 상기 적어도 하나의 서브루틴코드에 대한 리스트를 제공하는 서브루틴리스트제공부를 포함하는 프로그램 제공 장치를 제공한다.
상기 각 서브루틴코드는 소정의 명령어에 기초하여 상기 각 프로그램블록의 메인코드에 2회 이상 호출된다.
상기 각 프로그램블록의 메인코드는 상기 메인코드와 동일한 프로그램블록에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함한다.
또는, 상기 각 프로그램블록의 메인코드는 상기 메인코드와 상이한 프로그램블록에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함한다.
상기 서브루틴리스트제공부는 상기 복수의 편집부 중 어느 하나에 의해 상기 메인코드가 작성되는 동안 상기 서브루틴리스트를 제공한다.
상기 복수의 편집부 중 어느 하나에 의해 새로운 서브루틴코드가 작성되면, 상기 서브루틴리스트제공부는 상기 어느 하나의 편집부의 알림에 기초하여 상기 서브루틴리스트를 갱신한다.
상기 복수의 편집부는 LD(Ladder Diagram) 언어 기반의 코드 편집기능을 제공하는 LD편집부, ST(Structures Text) 언어 기반의 코드 편집기능을 제공하는 ST편집부, 및 IL(Instruction List) 언어 기반의 코드 편집기능을 제공하는 IL편집부를 포함한다.
그리고, 본 발명의 다른 일 예시는 상기 프로그램 제공 장치에 의한 프로그램의 실행을 처리하는 CPU부, 및 상기 CPU부의 처리에 필요한 데이터들을 보유하는 메모리부를 포함하는 CPU모듈을 더 제공한다.
상기 메모리부는 운영 프로그램과 연산 및 제어 기능에 관한 라이브러리를 보유하는 OS ROM 영역, 상기 프로그램 제공 장치에 의해 제공되는 기계어 상태의 프로그램을 보유하는 프로그램 영역, 상기 프로그램 제공 장치에 의해 제공되는 프로그래밍 언어 상태의 프로그램을 보유하는 업로드 영역 및 상기 CPU부의 입출력 데이터와 상기 CPU부에 의한 연산 결과를 보유하는 데이터 영역을 포함한다. 여기서, 상기 OS ROM 영역은 상기 프로그램 제공 장치의 상기 서브루틴리스트제공부에 의한 상기 서브루틴리스트를 보유한다.
상기 CPU부는 상기 메모리부의 상기 OS ROM 영역에 보유된 서브루틴리스트에 기초하여, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램이 서브루틴코드를 포함하는 형태임을 감지한다. 그리고, 상기 CPU부는 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램에 포함되는 각 프로그램 블록의 메인코드를 실행하는 중에 상기 서브루틴코드를 호출하는 명령어를 감지하면, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램 중 상기 명령어에 대응하는 어느 하나의 서브루틴코드를 실행한다.
전술한 바와 같은 프로그램 제공 장치는 서로 다른 프로그래밍 언어에 대응하는 복수의 편집부와, 복수의 편집부 중 어느 하나에 의한 메인코드와 적어도 하나의 서브루틴코드로 이루어진 프로그램블록이 하나 이상 조합된 프로그램을 제공하는 프로그램제공부를 포함한다. 여기서, 각 서브루틴코드는 소정의 명령어에 기초하여 각 프로그램블록의 메인코드에 2회 이상 호출된다.
즉, 서브루틴코드는 메인코드와 마찬가지로 복수의 편집부 중 어느 하나에 의해 생성되고, 메인코드에 반복적으로 배치되는 기능에 대응한다.
이러한 서브루틴코드로 인해, 사용자 펑션 또는 사용자 펑션블록을 배제하면서도, 메인코드에 반복적으로 배치되는 기능으로 인한 프로그램의 복잡도 및 오류 증가가 방지될 수 있다. 또한, 사용자 펑션 또는 사용자 펑션블록의 호출에 따른 지연시간이 방지될 수 있으므로, 프로그램의 실행 기간이 단축될 수 있다.
도 1은 본 발명의 일 실시예에 따른 PLC시스템을 나타낸 도면이다.
도 2는 도 1의 CPU모듈을 나타낸 도면이다.
도 3은 도 1의 주변기기모듈 중 프로그램 제공 장치를 나타낸 도면이다.
도 4는 도 3의 프로그램 제공 장치에 의한 어느 하나의 프로그램블록에 대한 예시를 나타낸 도면이다.
도 5는 사용자 펑션을 호출하는 예시를 나타낸 도면이다.
도 6은 도 3의 LD편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.
도 7은 도 3의 IL편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.
도 8은 도 3의 ST편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.
이하, 본 발명의 일 실시예에 따른 프로그램 제공 장치에 대해 첨부한 도면을 참고로 하여 상세히 설명한다.
먼저, 도 1 및 도 2를 참조하여, 본 발명의 일 실시예에 따른 프로그램 제공 장치를 포함한 PLC시스템에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 PLC시스템을 나타낸 도면이다. 도 2는 도 1의 CPU모듈을 나타낸 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 PLC시스템(10)은 주변기기모듈(11), CPU모듈(12), 전원모듈(13) 및 입출력모듈(14)을 포함할 수 있다.
CPU모듈(12)은 프로그램 실행을 위한 연산을 수행하고, 연산 결과를 메모리에 저장한다. 그리고, CPU모듈(12)은 각종 통신 기능 및 시스템 전체를 제어하는 기능을 포함할 수 있다.
전원모듈(13)은 각 모듈(11, 12, 14)의 구동을 위한 전원을 공급한다.
주변기기모듈(11)은 사용자 프로그램을 작성하고, 각종 연산 결과 및 상태를 모니터링한다.
입출력모듈(14)은 외부입력장치로부터 데이터를 입력 받고, CPU모듈(12)에 의한 연산데이터 또는 수집된 데이터를 출력한다.
도 2에 도시된 바와 같이, CPU모듈(12)은 PLC 시스템의 프로그램에 대응하는 각종 연산 기능과 제어 기능의 실행을 처리하는 CPU부(121) 및 CPU부(121)의 처리에 필요한 데이터들을 보유하는 메모리부(122)를 포함한다. 그리고, CPU모듈(12)은 데이터 백업을 실행하고 리셋신호를 공급하는 주변회로부(123)를 더 포함할 수 있다.
메모리부(122)는 운영 프로그램과 연산 및 제어 기능에 관한 라이브러리 등을 보유하는 OS ROM 영역(122a), 주변기기모듈(11) 중 프로그램 제공 장치(도 3의 11')에 의해 제공되고 기계어 상태의 PLC 시스템의 프로그램을 보유하는 프로그램 영역(122b), 프로그램 제공 장치(도 3의 11')에 의한 프로그래밍 언어 상태의 사용자 프로그램을 보유하는 업로드 영역(122c) 및 CPU부(12)의 입출력 데이터와 CPU부(12)에 의한 각종 연산 결과를 보유하는 데이터 영역(122d)을 포함한다.
다음, 도 3 내지 도 8을 참조하여, 본 발명의 일 실시예에 따른 도 1의 주변기기모듈(11) 중 CPU모듈(12)에 사용자 프로그램을 제공하는 프로그램 제공 장치에 대해 설명한다.
도 3은 도 1의 주변기기모듈 중 프로그램 제공 장치를 나타낸 도면이다. 도 4는 도 3의 프로그램 제공 장치에 의한 어느 하나의 프로그램블록에 대한 예시를 나타낸 도면이다.
도 5는 사용자 펑션을 호출하는 예시를 나타낸 도면이다.
도 6은 도 3의 LD편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다. 도 7은 도 3의 IL편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다. 도 8은 도 3의 ST편집부에 의한 프로그램블록의 서브루틴코드 및 이를 호출하는 메인코드의 명령어에 대한 일 예시를 나타낸 도면이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 프로그램 제공 장치(11')는 복수의 편집부(111), 프로그램제공부(112), 서브루틴리스트제공부(113) 및 컴파일부(114)를 포함한다.
복수의 편집부(111)는 IEC 61131-3에 의해 정의된 복수의 서로 다른 프로그래밍 언어에 대응한다.
예시적으로, 복수의 편집부(111)는 LD(Ladder Diagram) 언어 기반의 코드 편집기능을제공하는 LD편집부(111a), ST(Structures Text)언어 기반의 코드 편집기능을 제공하는 ST편집부(111b) 및 IL(Instruction List) 언어 기반의 코드 편집기능을 제공하는 IL편집부(111c)를 포함할 수 있다.
또는, 복수의 편집부(111)는 FBD(Function Block Diagram)언어 기반의 코드 편집기능을 제공하는 FBD편집부(111d) 및 SFC(Sequential Function Chart)언어 기반의 코드 편집기능을 제공하는 SFC편집부(111e)를 더 포함할 수 있다.
또는, 복수의 편집부(111)는 IEC 61131-3에 의해 정의되지 않았으나 PLC 프로그램 작성에 적용될 수 있는 다른 프로그래밍 언어 기반의 코드 편집기능을 더 포함할 수도 있다.
본 발명의 일 실시예에 따르면, LD편집부(111a),ST편집부(111b) 및IL편집부(111c) 중 어느 하나에 의한 프로그램블록은 적어도 하나의 서브루틴코드를 포함할 수 있다. 즉, FBD편집부(111d) 및SFC편집부(111e) 중 어느 하나에 의한 프로그램블록은 서브루틴코드를 포함하지 않을 수 있다.
프로그램제공부(112)는 복수의 편집부(111) 중 어느 하나에 의한 프로그램블록이 하나 이상 조합된 프로그램을 제공한다. 여기서, 각 프로그램블록은 복수의 편집부(111) 중 어느 하나에 의해 작성되고, 메인코드와 적어도 하나의 서브루틴코드로 이루어진다.
일 예로, 도 4에 도시된 바와 같이, 어느 하나의 편집부(111)에 의해 작성된 프로그램블록(PB)은 메인코드가 배치되는 메인코드영역(MCA)과, 적어도 하나의 서브루틴코드가 배치되는 서브루틴코드영역(SCA)을 포함할 수 있다. 여기서, 서브루틴코드영역(SCA)은 메인코드영역(MCA)의 후단에 배치될 수 있다. 즉, 메인코드의 종료 명령어 이후에, 서브루틴코드가 배치될 수 있다.
각 서브루틴코드는 소정의 명령어에 기초하여 각 프로그램블록의 메인코드에 2회 이상 반복하여 호출되는 기능(또는 연산)을 지칭한다. 서브루틴코드의 호출에 대해서는 도 5 내지 도 8을 참조하여 이하에서 상세히 설명하기로 한다.
더불어, 어느 하나의 프로그램은 서로 다른 언어 기반으로 작성된 둘 이상의 프로그램블록을 포함할 수 있다.
이때, 각 프로그램블록의 메인코드는 메인코드와 동일한 프로그램블록 내에서 메인코드의 후단에 배치된 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함할 수 있다. 즉, 메인코드는 그와 동일한 프로그래밍 언어로 작성된 서브루틴코드를 호출할 수 있다.
또는, 각 프로그램블록의 메인코드는 메인코드와 상이한 프로그램블록 내에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함할 수도 있다. 즉, 메인코드는 그와 상이한 프로그래밍 언어로 작성된 서브루틴코드를 호출할 수도 있다.
이를 위해, 프로그램 제공 장치(11')는 서브루틴리스트제공부(113)를 포함한다.
서브루틴리스트제공부(113)는 각 프로그램블록에 배치된 적어도 하나의 서브루틴코드에 대한 리스트를 제공한다.
일 예로, 각 편집부(111)에서 새로운 서브루틴코드가 작성되면, 서브루틴리스트제공부(113)는 각 편집부(111)의 알림에 기초하여 서브루틴리스트를 갱신한다.
그리고, 서브루틴리스트제공부(113)는 어느 하나의 편집부(111)에서 코드가 작성되는 동안, 서브루틴리스트를 제공한다. 이에, 프로그램 작성 관리자는 서브루틴리스트에 기초하여 메인코드에 호출할 서브루틴을 용이하게 선택할 수 있다. 이에 따라, 프로그램 작성 용이성이 향상될 수 있다.
컴파일부(114)는 프로그램제공부(112)에 의한 프로그램을 기계어로 변환한다.
그리고, 프로그램 제공 장치(11')의 컴파일부(114)는 기계어로 변환된 프로그램을 PLC시스템의 CPU모듈(도 1의 12)에 제공한다. 이에, 기계어로 변환된 프로그램이 CPU모듈(12)의 메모리부(122) 중 프로그램영역(122b)에 배치된다.
더불어, 프로그램 제공 장치(11')의 프로그램제공부(112)는 적어도 하나의 프로그래밍언어로 작성된 프로그램을 CPU모듈(12)에 제공한다. 이에, 프로그래밍 언어 상태의 프로그램이 CPU모듈(12)의 메모리부(122) 중 업로드영역(122c)에 배치될 수 있다.
여기서, 프로그램영역(122b) 및 업로드영역(112c) 각각에 전달되는 프로그램은 적어도 하나의 프로그램블록을 포함하고, 적어도 하나의 프로그램블록 중 적어도 어느 하나는 서브루틴코드영역(도 4의 SCA)을 포함한다. 즉, 프로그래밍 언어 상태의 서브루틴코드는, 메인코드와 마찬가지로, 프로그램영역(122b) 및 업로드영역(112c) 각각에 보유된다.
또한, 프로그램 제공 장치(11')의 서브루틴리스트제공부(113)는 서브루틴리스트를 CPU모듈(12)에 제공한다. 이에, 서브루틴리스트가 CPU모듈(12)의 메모리부(122) 중 OS ROM영역(122a)에 배치될 수 있다. 이로써, 시스템 관리자 및 CPU모듈(12)은 해당 프로그램이 서브루틴코드를 포함하는 형태임을 용이하게 감지할 수 있다.
즉, 메인코드 및 서브루틴코드를 포함하는 형태의 프로그램이 CPU모듈(12)에 전달된 경우, CPU부(121)는 OS ROM영역(122a)에 보유된 서브루틴리스트에 기초하여 메모리부(122)의 프로그램 영역(122b)에 보유된 프로그램이 서브루틴코드를 포함하는 형태임을 감지할 수 있다.
그리고, CPU부(121)는 메모리부(122)의 프로그램 영역(122b)에 보유된 프로그램에 포함되는 적어도 하나의 프로그램블록을 실행한다. 이와 같이 각 프로그램블록의 메인코드를 실행하는 중에 서브루틴코드를 호출하는 명령어를 감지하면, CPU부(121)는 메모리부(122)의 프로그램 영역(122b)에 보유된 프로그램 중 명령어에 대응하는 어느 하나의 서브루틴코드를 실행한다.
또한, 프로그래밍 언어 상태의 프로그램이 CPU모듈(12)의 메모리부(122) 중 업로드영역(122c)에 보유되고, 서브루틴리스트제공부(113)에 의한 서브루틴리스트가 메모리부(122) 중 OS ROM영역(122a)에 보유됨으로써, 시스템 관리자가 프로그램을 수정 또는 재편집하거나 프로그램의 코드를 재활용하는 것이 용이해질 수 있다.
도 5에 도시된 바와 같이, LD프로그래밍 언어로 작성된 프로그램의 메인코드(LD 프로그램; 도 5의 좌측)가 사용자 펑션(CC; 도 5의 우측)을 호출하는 명령어를 포함할 수 있다. 이 경우,사용자 펑션(CC)은 규격에 따라 LD 프로그램과 상이하게 선언된 변수로 작성되어 있으므로, LD 프로그램의 실행 시, 사용자 펑션(CC)에 입력 파라미터를 전달하고, 사용자 펑션(CC)의 연산에 따른 출력 파라미터를 수신하는 과정이 필수적이다.그로 인해, 파라미터의 전달에 따른 지연시간이 필수불가결하므로, 프로그램의 실행 기간을 단축시키기 어려운 문제점이 있다.
반면, 본 발명의 일 실시예에 따른 프로그램블록의 메인코드는 그와 동일하게 선언된 변수로 작성된 서브루틴코드를 호출한다. 이에 따라, 프로그램의 실행 시, 메인코드와 호출된 서브루틴코드 간에 파라미터의 전달이 불필요하므로, 사용자 펑션을 이용하는 경우에 비해 프로그램의 실행 기간이 단축될 수 있다.
도 6에 도시된 바와 같이, LD 프로그래밍 언어로 작성된 프로그램블록에 있어서, 메인코드의 종료점을 지칭하는 명령어(END) 이후에, 서브루틴코드의 개시점과 명칭(name)을 지칭하는 명령어(SBRT서브루틴명칭)가 배치될 수 있다. 이어서, 서브루틴코드의 연산이 작성된다음, 서브루틴코드의 종료점을 지칭하는 명령어(RET)가 배치될 수 있다.
그리고, 메인코드는 소정의 서브루틴코드를 호출하기 위해 "CALL 서브루틴 명칭"의 명령어를 포함할 수 있다. 이때, 서브루틴 명칭은 서브루틴리스트제공부(113)에 의한 서브루틴리스트에 기초하여 선택될 수 있다.
또는, 도 7에 도시된 바와 같이, IL 프로그래밍 언어로 작성된 프로그램 블록에 있어서, 메인코드의 종료점을 지칭하는 명령어(END) 이후에 서브루틴코드의 개시점과 명칭을 지칭하는 명령어(SBRT 서브루틴명칭)가 배치될 수 있다. 이어서, 서브루틴코드의 연산이 작성된 다음, 서브루틴코드의 종료점을 지칭하는 명령어(RET)가 배치될 수 있다.
그리고, 메인코드는 소정의 서브루틴코드를 호출하기 위해 "CALL 서브루틴 명칭"의 명령어를 포함할 수 있다.
또는, 도 8에 도시된 바와 같이, ST 프로그래밍 언어로 작성된 프로그램 블록에 있어서, 메인코드의 종료점을 지칭하는 명령어(END_PROGRAM) 이후에, 서브루틴코드의 개시점과 명칭을 지칭하는 명령어(SBRT 서브루틴명칭)이 배치될 수 있다. 이어서, 서브루틴코드의 연산이 작성된 다음, 서브루틴코드의 종료점을 지칭하는 명령어(END_SBRT)가 배치될 수 있다.
그리고, 메인코드는 소정의 서브루틴코드를 호출하기 위해 "CALL 서브루틴 명칭"의 명령어를 포함할 수 있다.
전술한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
10: PLC시스템
11': 프로그램 제공 장치
PB: 프로그램블록
MCA: 메인코드영역
SCA: 서브루틴코드영역

Claims (13)

  1. PLC시스템의 프로그램 제공 장치에 있어서,
    서로 다른 프로그래밍 언어에 대응하는 복수의 편집부;
    상기 복수의 편집부 중 어느 하나에 의한 메인코드와 적어도 하나의 서브루틴코드로 이루어진 프로그램블록이 하나 이상 조합된 프로그램을 제공하는 프로그램제공부; 및
    상기 적어도 하나의 서브루틴코드에 대한 서브루틴리스트를 제공하는 서브루틴리스트제공부를 포함하는 프로그램 제공 장치.
  2. 제 1 항에 있어서,
    상기 각 서브루틴코드는 소정의 명령어에 기초하여 상기 각 프로그램블록의 메인코드에 2회 이상 호출되는 프로그램 제공 장치.
  3. 제 1 항에 있어서,
    상기 각 프로그램블록의 메인코드는 상기 메인코드와 동일한 프로그램블록에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함하는 프로그램 제공 장치.
  4. 제 1 항에 있어서,
    상기 각 프로그램블록의 메인코드는 상기 메인코드와 상이한 프로그램블록에 배치되는 적어도 하나의 서브루틴코드 중 적어도 어느 하나를 호출하는 명령어를 포함하는 프로그램 제공 장치.
  5. 제 1 항에 있어서,
    상기 서브루틴리스트제공부는 상기 복수의 편집부 중 어느 하나에 의해 상기 메인코드가 작성되는 동안 상기 서브루틴리스트를 제공하는 프로그램 제공 장치.
  6. 제 1 항에 있어서,
    상기 복수의 편집부 중 어느 하나에 의해 새로운 서브루틴코드가 작성되면, 상기 서브루틴리스트제공부는 상기 어느 하나의 편집부의 알림에 기초하여 상기 서브루틴리스트를 갱신하는 프로그램 제공 장치.
  7. 제 1 항에 있어서,
    상기 복수의 편집부는
    LD(Ladder Diagram) 언어 기반의 코드 편집기능을 제공하는 LD편집부;
    ST(Structures Text) 언어 기반의 코드 편집기능을 제공하는 ST편집부; 및
    IL(Instruction List) 언어 기반의 코드 편집기능을 제공하는 IL편집부를 포함하는 프로그램 제공 장치.
  8. 제 5 항에 있어서,
    상기 복수의 편집부는
    FBD(Function Block Diagram) 언어 기반의 코드 편집기능을 제공하는 FBD편집부; 및
    SFC(Sequential Function Chart) 언어 기반의 코드 편집기능을 제공하는 SFC편집부를 더 포함하는 프로그램 제공 장치.
  9. 제 6 항에 있어서,
    상기 프로그램제공부의 프로그램을 기계어로 변환하는 컴파일부를 더 포함하는 프로그램 제공 장치.
  10. 제 7 항에 있어서,
    상기 컴파일부는 상기 기계어로 변환된 프로그램을 상기 PLC시스템에 구비된 CPU모듈의 메모리부의 프로그램영역에 제공하고,
    상기 프로그램제공부는 상기 프로그램을 상기 CPU모듈의 메모리부의 업로드영역에 제공하며,
    상기 서브루틴리스트제공부는 상기 서브루틴리스트를 상기 CPU모듈의 메모리부의 OS ROM 영역에 제공하는 프로그램 제공 장치.
  11. 제 1 항 내지 제 9 항 중 어느 한 항에 따른 프로그램 제공 장치에 의한 프로그램의 실행을 처리하는 CPU부; 및
    상기 CPU부의 처리에 필요한 데이터들을 보유하는 메모리부를 포함하는 CPU모듈.
  12. 제 11 항에 있어서,
    상기 메모리부는
    운영 프로그램과 연산 및 제어 기능에 관한 라이브러리를 보유하는 OS ROM 영역;
    상기 프로그램 제공 장치에 의해 제공되는 기계어 상태의 프로그램을 보유하는 프로그램 영역;
    상기 프로그램 제공 장치에 의해 제공되는 프로그래밍 언어 상태의 프로그램을 보유하는 업로드 영역; 및
    상기 CPU부의 입출력 데이터와 상기 CPU부에 의한 연산 결과를 보유하는 데이터 영역을 포함하고,
    상기 OS ROM 영역은 상기 프로그램 제공 장치의 상기 서브루틴리스트제공부에 의한 상기 서브루틴리스트를 보유하는 CPU모듈.
  13. 제 12 항에 있어서,
    상기 CPU부는
    상기 메모리부의 상기 OS ROM 영역에 보유된 서브루틴리스트에 기초하여, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램이 서브루틴코드를 포함하는 형태임을 감지하고,
    상기 메모리부의 상기 프로그램 영역에 보유된 프로그램에 포함되는 각 프로그램 블록의 메인코드를 실행하는 중에 상기 서브루틴코드를 호출하는 명령어를 감지하면, 상기 메모리부의 상기 프로그램 영역에 보유된 프로그램 중 상기 명령어에 대응하는 어느 하나의 서브루틴코드를 실행하는 CPU모듈.
KR1020180016030A 2018-02-09 2018-02-09 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 cpu모듈 KR102095224B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180016030A KR102095224B1 (ko) 2018-02-09 2018-02-09 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 cpu모듈

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180016030A KR102095224B1 (ko) 2018-02-09 2018-02-09 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 cpu모듈

Publications (2)

Publication Number Publication Date
KR20190096499A true KR20190096499A (ko) 2019-08-20
KR102095224B1 KR102095224B1 (ko) 2020-03-31

Family

ID=67807453

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180016030A KR102095224B1 (ko) 2018-02-09 2018-02-09 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 cpu모듈

Country Status (1)

Country Link
KR (1) KR102095224B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950006585B1 (ko) * 1986-02-19 1995-06-19 가부시키가이샤 히타치세이사쿠쇼 마이크로프로그램 제어장치 및 그 제어방법
JP2004005389A (ja) * 2002-01-10 2004-01-08 Omron Corp ユニット及びplc並びにユーザプログラムの処理方法
JP2005141564A (ja) * 2003-11-07 2005-06-02 Digital Electronics Corp エディタ装置、コンピュータをエディタ装置として機能させるためのプログラムおよび記録媒体
JP2009009314A (ja) * 2007-06-27 2009-01-15 Digital Electronics Corp エディタ装置、エディタプログラムおよびそれを記録した記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950006585B1 (ko) * 1986-02-19 1995-06-19 가부시키가이샤 히타치세이사쿠쇼 마이크로프로그램 제어장치 및 그 제어방법
JP2004005389A (ja) * 2002-01-10 2004-01-08 Omron Corp ユニット及びplc並びにユーザプログラムの処理方法
JP2005141564A (ja) * 2003-11-07 2005-06-02 Digital Electronics Corp エディタ装置、コンピュータをエディタ装置として機能させるためのプログラムおよび記録媒体
JP2009009314A (ja) * 2007-06-27 2009-01-15 Digital Electronics Corp エディタ装置、エディタプログラムおよびそれを記録した記録媒体

Also Published As

Publication number Publication date
KR102095224B1 (ko) 2020-03-31

Similar Documents

Publication Publication Date Title
CN112416318B (zh) 微服务开发方法、装置、存储介质及电子设备
US20090013313A1 (en) Debug device, debug method, and program
CN107203401A (zh) 一种前端项目构建方法、装置及系统
US20190196798A1 (en) Executable program creation device, executable program creation method, and executable program creation program
CN111078265B (zh) 一种基于jenkins的web项目更新补丁生成方法
CN111142466B (zh) 工程装置、工程装置的控制方法和存储介质
CN104391754A (zh) 一种任务异常的处理方法及装置
JP2009157533A (ja) プログラマブルコントローラシステム
WO2018096717A1 (ja) コントロールシステム及びコントロール方法
KR102095224B1 (ko) 프로그램 제공 장치 및 그에 의한 프로그램의 실행을 처리하는 cpu모듈
CN112486492A (zh) 页面生成方法、装置、存储介质及电子设备
CN107341024B (zh) 系统升级方法和系统升级装置
US20200278917A1 (en) Sequence program processor used for tracing of sequence program
KR20190114510A (ko) Plc의 브랜치 명령어 처리 방법
CN114281404B (zh) 一种工控机算法代码的移植方法及装置
JP6318214B2 (ja) 汎用マイクロプロセッサを用いたplcのデバッグ方法
CN105893238A (zh) 一种代码调试方法及装置
US5963725A (en) Simulation system and method for microcomputer program
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
KR20210048045A (ko) 비행일지 자동 작성 시스템
JP2005310056A (ja) プログラム実行制御方式
CN109669721B (zh) 一种可二次开发软件的方法
WO2022185670A1 (ja) 開発支援装置、開発支援装置の制御方法、情報処理プログラム、および記録媒体
US11287789B2 (en) Program development support device, program development support system, program development support method, and non-transitory computer-readable recording medium
WO2023119519A1 (ja) Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム

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