KR20220140167A - Plc의 태스크 운용 장치 - Google Patents

Plc의 태스크 운용 장치 Download PDF

Info

Publication number
KR20220140167A
KR20220140167A KR1020210046328A KR20210046328A KR20220140167A KR 20220140167 A KR20220140167 A KR 20220140167A KR 1020210046328 A KR1020210046328 A KR 1020210046328A KR 20210046328 A KR20210046328 A KR 20210046328A KR 20220140167 A KR20220140167 A KR 20220140167A
Authority
KR
South Korea
Prior art keywords
task
data exchange
user program
plc
input
Prior art date
Application number
KR1020210046328A
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 KR1020210046328A priority Critical patent/KR20220140167A/ko
Publication of KR20220140167A publication Critical patent/KR20220140167A/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/11Plc I-O input output
    • G05B2219/1149I-o in groups, serviced according to critical inputs, tasks matched to I-O
    • 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/13065Tasks for executing several programs asynchronously
    • 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/13068Program divided in operation blocks, groups, tasks each executed
    • 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/15Plc structure of the system
    • G05B2219/15081Period length ratio between application and communication task is settable

Landscapes

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

Abstract

본 발명은, PLC(Programmable Logic Controller) 내부에 위치한 변수 및 상기 PLC 외부의 데이터를 저장하는 변수 메모리와, 변수 메모리 및 외부의 입출력 장치 간의 데이터를 교환하는 작업들로 이루어진 입출력 데이터 교환 태스크와, 변수 메모리 및 외부의 통신 장치 간의 데이터를 교환하는 작업들로 이루어진 통신 데이터 교환 태스크와, 변수 메모리에 저장된 외부의 데이터에 접근하며 사용자 프로그램을 수행하는 작업들로 이루어진 사용자 프로그램 수행 태스크와, 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 사용자 프로그램 수행 태스크의 실행 시점을 관리하는 태스크 관리자를 포함하는 PLC의 태스크 운용 장치를 제공한다.

Description

PLC의 태스크 운용 장치{APPARATUS FOR OPERATING TASK OF PROGRAMMABLE LOGIC CONTROLLER}
본 발명은 PLC의 태스크 운용 장치에 관한 것이다.
PLC(Programmable Logic Controller)는 산업 플랜트의 자동 제어 및 감시에 사용하는 제어 장치로서, 연결된 외부 장치로부터의 입력 조건을 사용자의 프로그램에 따라서 논리 연산하여 출력상태를 내보냄으로써 외부 장치를 제어한다.
PLC의 일련의 처리 흐름의 기본 단위는 스캔(SCAN)이라 한다. 구체적으로, 스캔은 외부의 입출력 장치와 데이터 교환을 위한 입출력 작업, 외부의 통신 장치와 데이터 교환을 위한 통신 작업, 사용자 프로그램을 수행하는 작업으로 구성된다.
종래의 PLC에서 이러한 일련의 작업은 1개의 스캔 태스크 내에서 순서대로 호출되는 서브루틴의 형태로서 구현되며, 최근에는 사용자 프로그램을 수행하는 작업을 다수 개의 태스크로 구성하고 시분할에 기반한 멀티 태스킹을 지원하는 방법이 구현되고 있다. 반면에 입출력 장치 및 통신 장치의 경우 유한한 하드웨어 자원이기 때문에 사용자 프로그램과 달리 시분할에 기반한 멀티 태스킹 적용이 현실적으로 불가하기 때문에 스캔 태스크에 포함하여 처리하고 있다.
종래의 PLC는 외부와 데이터 교환을 처리하는 입출력 데이터 교환 부분과 통신 데이터 교환 부분이 스캔 태스크에 서브루틴으로서 포함되어 순차 처리되기 때문에 사용자 프로그램 수행 태스크와 PLC 외부 입출력 처리 간의 지연이 발생하는 문제점이 있다.
또한, 스캔 태스크의 사용자 프로그램이 처리되는 시간에 따라 후속 처리되는 통신 데이터 교환 서브루틴의 실행 시작 시간이 변하게 되어 통신 데이터 교환 시점에 대한 확정성이 열화되는 문제점이 있다.
본 발명은, 입출력 데이터 교환 및 통신 데이터 교환을 사용자 프로그램 수행 태스크의 실행에 종속시키는 동시에 별도의 입출력 데이터 교환 및 통신 데이터 교환 주기를 각각 설정하여 사용자 프로그램 수행 태스크와 종속관계 없이 독립적으로 수행할 수 있는 PLC의 태스크 운용 장치를 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이러한 과제를 해결하기 위해, 본 발명은, PLC(Programmable Logic Controller) 내부에 위치한 변수 및 상기 PLC 외부의 데이터를 저장하는 변수 메모리와, 변수 메모리 및 외부의 입출력 장치 간의 데이터를 교환하는 작업들로 이루어진 입출력 데이터 교환 태스크와, 변수 메모리 및 외부의 통신 장치 간의 데이터를 교환하는 작업들로 이루어진 통신 데이터 교환 태스크와, 변수 메모리에 저장된 외부의 데이터에 접근하며 사용자 프로그램을 수행하는 작업들로 이루어진 사용자 프로그램 수행 태스크와, 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 사용자 프로그램 수행 태스크의 실행 시점을 관리하는 태스크 관리자를 포함하는 PLC의 태스크 운용 장치를 제공한다.
여기서, 사용자 프로그램 수행 태스크는 복수 개로 이루어질 수 있다.
또한, 입출력 데이터 교환 태스크는, 복수의 사용자 프로그램 수행 태스크 중 어느 하나에 종속되어 작업을 수행하는 종속 모드 및 별도의 실행 주기로 복수의 사용자 프로그램 수행 태스크에 독립되어 작업을 수행하는 독립 모드로 이루어질 수 있다.
또한, 통신 데이터 교환 태스크는, 복수의 사용자 프로그램 수행 태스크 중 어느 하나에 종속되어 작업을 수행하는 종속 모드 및 별도의 실행 주기로 복수의 사용자 프로그램 수행 태스크에 독립되어 작업을 수행하는 독립 모드로 이루어질 수 있다.
또한, 태스크 관리자는, 태스크 관리 파라미터를 기초로 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 복수의 사용자 프로그램 수행 태스크의 실행 시점을 관리할 수 있다.
또한, 태스크 관리 파라미터는, 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 복수의 사용자 프로그램 수행 태스크의 실행주기와, 입출력 데이터 교환 태스크 및 통신 데이터 교환 태스크의 종속 정보를 저장할 수 있다.
또한, 복수의 사용자 프로그램 수행 태스크는 시분할에 기반하여 멀티 태스킹 처리될 수 있다.
또한, 태스크 관리자는, 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 복수의 사용자 프로그램 수행 태스크에 각각 스케줄링 이벤트를 송신하여 태스크 실행 시점을 관리할 수 있다.
또한, 입출력 데이터 교환 태스크 및 통신 데이터 교환 태스크는 복수 개로 이루어질 수 있다.
또한, 태스크 관리자는, 복수의 사용자 프로그램 수행 태스크와, 복수의 사용자 프로그램 수행 태스크에 종속된 복수의 상기 입출력 데이터 교환 태스크 및 통신 데이터 교환 태스크를 스케줄링 하기 위한 인덱스를 관리할 수 있다.
본 발명에 따르면, 사용자 프로그램과 입출력 데이터 교환 및 통신 데이터 교환에 대한 스케줄링의 자유도를 개선할 수 있고, 이를 통해 사용자는 입출력 데이터 교환 및 통신 데이터 교환을 사용자 프로그램 수행 태스크의 실행에 종속시킬 수 있는 동시에 별도의 입출력 데이터 교환 및 통신 데이터 교환 주기를 각각 설정하여 사용자 프로그램 수행 태스크와 종속관계 없이 독립적인 수행을 시킬 수 있다.
이를 통해, 본 발명은, 사용자 프로그램의 실행과 이에 따른 PLC 외부로의 데이터 갱신 시점의 불일치와 이에 따른 사용자 프로그램 수행 태스크 내의 사용자 프로그램이 현재 시점이 아닌 입력 지연 만큼의 이전 입력 데이터를 사용하여 제어 연산되는 것과 제어 연산 결과가 출력 지연 시간 이후에 PLC 외부로 반영되는 것을 방지할 수 있다.
또한, 본 발명은, 종래의 PLC의 스캔 태스크에 속한 프로그램 처리되는 시간에 따라 후속 처리되는 통신 데이터 교환 서브루틴의 실행 시작 시간이 변하게 되어 통신 데이터 교환 시점에 대한 확정성이 열화되는 것을 방지할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당해 기술분야에 있어서의 통상의 지식을 가진 자가 명확하게 이해할 수 있을 것이다.
도 1은 종래의 PLC의 주요 구성 및 처리 흐름을 나타낸 블록도이다.
도 2는 종래의 사용자 프로그램 수행 태스크의 시지연 요소를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 PLC의 주요 구성 및 처리 흐름을 나타낸 블록도이다.
도 4는 도 3에서 확장된 형태의 실시예를 나타낸 블록도이다.
도 5는 본 발명의 실시예에 따른 PLC의 각 태스크들의 처리 로직을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 PLC의 태스크 관리 파라미터의 구성도이다.
도 7은 도 6의 태스크 관리 파라미터에 따른 태스크 관리자의 처리 로직의 순서도이다.
본 발명의 구성 및 효과를 충분히 이해하기 위하여, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예들을 설명한다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라, 여러 가지 형태로 구현될 수 있고 다양한 변경을 가할 수 있다. 단지, 본 실시예에 대한 설명은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위하여 제공되는 것이다. 첨부된 도면에서 구성요소는 설명의 편의를 위하여 그 크기를 실제보다 확대하여 도시한 것이며, 각 구성요소의 비율은 과장되거나 축소될 수 있다.
'제1', '제2' 등의 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 상기 구성요소는 위 용어에 의해 한정되어서는 안 된다. 위 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 수 있다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 '제1구성요소'는 '제2구성요소'로 명명될 수 있고, 유사하게 '제2구성요소'도 '제1구성요소'로 명명될 수 있다. 또한, 단수의 표현은 문맥상 명백하게 다르게 표현하지 않는 한, 복수의 표현을 포함한다. 본 발명의 실시예에서 사용되는 용어는 다르게 정의되지 않는 한, 해당 기술분야에서 통상의 지식을 가진 자에게 통상적으로 알려진 의미로 해석될 수 있다.
도 1은 종래의 PLC의 주요 구성 및 처리 흐름을 나타낸 블록도이다.
이하, 도 1을 참조하여 종래의 PLC의 주요 구성을 설명하겠다.
PLC(Programmable Logic Controller)(10)는 사용자가 작성한 사용자 프로그램으로 산업 플랜트의 자동 제어 및 감시에 사용하는 제어 장치를 말한다.
PLC(10)는 스캔(SCAN) 태스크(20), 사용자 프로그램 수행 태스크(30), 변수 메모리(60) 및 틱(TICK) 타이머(70)를 포함하여 구성될 수 있다.
스캔 태스크(20)는 입력 조건을 사용자 프로그램에 따라서 논리 처리하여 출력 상태를 내보냄으로써 연결된 외부 장치를 제어하는 PLC(10)의 일련의 처리 흐름의 기본 단위이다.
구체적으로, 스캔 태스크(20)는 입출력 장치(40)와 데이터 교환을 위한 입출력 데이터 교환 서브루틴(21), 통신 장치(50)와 데이터 교환을 위한 통신 데이터 교환 서브루틴(22) 및 사용자 프로그램을 수행하는 사용자 프로그램 서브루틴(23)을 순차적으로 호출하여 반복 수행한다.
여기서, 스캔 태스크(20)는 일정한 주기 없이 연속적으로 순차 실행되는 일반 스캔 모드와 고정된 주기로 순차 실행되는 고정주기 스캔 모드로 선택하여 운용 할 수 있다.
입출력 장치(40)는 PLC(10)와 연결되어 디지털 또는 아날로그 형태의 전기 신호를 PLC(10)와 주고 받는 외부 장치로서, PLC(10)에 전기 신호를 입력시키기 위한 입력장치와 PLC(10)의 연산 결과를 출력하는 출력장치로 구성된다.
입출력 데이터 교환 서브루틴(21)은 PLC(10) 내부의 변수 메모리(60)와 입출력 장치(40) 간의 데이터 교환을 하는 작업들로 이루어진 서브루틴이며, 스캔 태스크(20)가 호출한다.
사용자 프로그램 수행 서브루틴(22)은 PLC 내부(10)에 위치한 사용자가 작성한 사용자 프로그램을 수행하는 작업들로 이루어진 서브루틴이며, 스캔 태스크(20)가 호출한다. 여기서, 사용자 프로그램은 PLC(10) 외부의 데이터를 변수 메모리(60)를 통해 접근한다.
변수 메모리(60)는 PLC(10) 내부에 위치한 변수 및 PLC(10) 외부의 데이터를 저장하는 용도의 메모리로서, 사용자 프로그램에서 내부적으로 사용하는 변수, 입출력 장치와 교환되는 변수 및 통신 장치와 교환되는 변수로 구성된다.
통신 장치(50)는 PLC(10)와 연결되는 외부 통신 기기이며, 통신 데이터 교환 서브루틴(23)은 PLC(10) 내부의 변수 메모리(60)와 통신 장치(50) 간의 데이터 교환을 하는 작업들로 이루어진 서브루틴이며, 스캔 태스크(20)가 호출한다.
사용자 프로그램 수행 태스크(30)는 스캔 태스크(20)와 별개로 PLC(10) 내부에 위치한 사용자가 작성한 사용자 프로그램을 수행하는 작업들로 이루어진 태스크이며, 스캔 태스크(20)와 시분할에 기반하여 멀티 태스킹 처리될 수 있다.
틱(TICK) 타이머(70)는 사용자 프로그램 수행 태스크(30)가 실행될 주기 마다 틱(TICK) 이벤트를 생성하기 위한 타이머이다. 여기서, 틱 이벤트는 사용자 프로그램 수행 태스크(30)의 실행을 알리기 위해 틱 타이머(70)가 생성하는 이벤트이다.
사용자 프로그램 수행 태스크(30)는 설정된 주기마다 틱(TICK) 타이머(70)가 생성한 틱(TICK) 이벤트를 받을 때 마다 실행될 수 있다.
이하, 도 1을 참조하여 종래의 PLC의 처리 흐름을 설명하겠다.
PLC(10)가 운전을 시작하면 PLC(10)의 일련의 처리 흐름의 기본 단위인 스캔 처리를 스캔 태스크(20)를 반복하여 수행한다.
구체적으로, 스캔 태스크(20)는 입출력 장치(40)와 변수 메모리(60)간의 데이터를 교환하는 입출력 데이터 교환 서브루틴(21)을 호출한 다음 PLC(10) 내부에 위치한 사용자가 작성한 사용자 프로그램을 수행하는 사용자 프로그램 수행 서브루틴(22)을 호출하며, 이어서 통신 장치(50)와 변수 메모리(60)간의 데이터를 교환하는 통신 데이터 교환 서브루틴(23)을 호출한다. 그리고, 이들 호출은 순차적으로 이루어진다.
사용자 프로그램은 PLC(10) 외부의 입출력 장치(40) 및 통신 장치(50)의 데이터를 입출력 데이터 교환 서브루틴(21)과 통신 데이터 교환 서브루틴(23)이 업데이트한 변수 메모리(60)를 사용한다.
스캔 태스크(20)는 일정한 주기를 갖지 않고 연속적으로 순차 실행되는 일반 스캔 모드와 고정된 주기로 순차 실행되는 고정주기 스캔 모드를 선택하여 운용 할 수 있다.
입출력 장치(40) 및 통신 장치(50)는 유한한 하드웨어 영역의 자원이기 때문에 시분할에 기반한 멀티 태스킹 적용이 현실적으로 불가한데 반해, 사용자 프로그램 수행은 소프트웨어의 영역이기 때문에, 스캔 태스크(20)의 사용자 프로그램 수행 서브루틴(22)과는 별도로 사용자 프로그램을 수행하는 작업을 복수 개의 태스크로 구성한 사용자 프로그램 수행 태스크(30)를 두고 시분할에 기반하여 멀티 태스킹을 지원할 수 있다.
여기서, 사용자 프로그램 수행 태스크(30)는 설정된 주기마다 틱 타이머(70)가 생성한 틱 이벤트를 받을 때 마다 실행된다.
이들 스캔 태스크(20)와 사용자 프로그램 수행 태스크(30)는, 각 태스크 별로 수행 주기와 우선 순위를 설정할 수 있으며, 사용자는 사용자 프로그램 영역에 한하여 이러한 속성을 적용하여 최적화된 프로그램을 구성할 수 있도록 할 수 있다.
도 2는 종래의 사용자 프로그램 수행 태스크의 시지연 요소를 설명하기 위한 블록도이다.
도 2를 참조하면, 사용자 프로그램은 PLC(10) 외부의 데이터 입력을 통해 연산을 수행하고 연산 결과를 PLC(10) 외부에 출력함으로써 의도된 제어를 수행한다. 즉, 종래의 태스크 운용방법은 스캔 태스크(20)에 PLC(10) 외부의 데이터를 변수 메모리(60)와 교환하는 입출력 데이터 교환 서브루틴(21a)과 통신 데이터 교환 서브루틴(23a)을 포함하여 운용 된다.
그러나, 유한한 하드웨어 영역의 자원인 입출력 장치(40) 및 통신 장치(50)와는 달리 사용자 프로그램은 소프트웨어의 영역이기 때문에 스캔 태스크(20)에 속한 사용자 프로그램 외에 별도의 사용자 프로그램 수행 태스크(30)를 두고 복수의 사용자 프로그램(30)을 시분할에 기반하여 멀티 태스킹을 지원한다.
스캔 태스크(20)와 사용자 프로그램 수행 태스크(30)는 각 태스크 별로 수행 주기와 우선순위를 설정할 수 있으며, 사용자는 사용자 프로그램 영역에 한하여 이러한 속성을 적용하여 최적화된 프로그램을 구성할 수 있다. 즉, 사용자 프로그램이 PLC(10) 외부 데이터를 접근하기 위해 사용하는 변수 메모리(60)를 업데이트하는 입출력 데이터 교환 서브루틴(21a)과 통신 데이터 교환 서브루틴(23a)은 스캔 태스크(20)에 포함되어 수행됨으로써, 별도의 수행 환경을 설정할 수 없다.
이러한 종래의 태스크 운용방법에서 스캔 태스크(20)에 속하지 않고 사용자 프로그램 수행 태스크(30)에 속한 사용자 프로그램이 PLC(10) 외부의 데이터를 취하는 방법은 스캔 태스크(20)에 포함된 입출력 데이터 교환 서브루틴(21a)과 통신 데이터 교환 서브루틴(23a)에 의해 업데이트된 변수 메모리를 사용하는 것이다.
즉, 사용자 프로그램 수행 태스크(30)에 속한 사용자 프로그램이 사용하는 PLC(10) 외부 데이터의 업데이트는 스캔 태스크(20)에 의해 이루어지는 것으로서, 사용자 프로그램의 실행과 이에 따른 PLC(10) 외부로의 데이터 업데이트 시점이 불일치되는 문제점이 있다.
이러한 이유로 스캔 태스크(20)와 사용자 프로그램 수행 태스크(30) 간의 실행 환경에 따라서 사용자 프로그램 수행 태스크(30) 내의 사용자 프로그램은 현재 시점이 아닌 입력 지연만큼의 이전 입력 데이터를 사용하여 제어 연산을 수행하며, 제어 연산 결과는 출력 지연 시간 이후에 PLC(10) 외부로 반영되는 문제점이 있다.
아울러, 스캔 태스크(20)에 속한 프로그램 처리되는 시간에 따라 후속 처리되는 통신 데이터 교환 서브루틴(23a)의 실행 시작 시간이 변하게 되어 통신 데이터 교환 시점에 대한 확정성이 열화되는 문제점도 있다. 이러한 문제점은 PLC(10) 외부와 데이터 교환을 처리하는 입출력 데이터 교환 부분과 통신 데이터 교환 부분이 스캔 태스크(20)에 서브루틴으로서 포함되어 순차 처리되기 때문이다.
도 3은 본 발명의 실시예에 따른 PLC의 주요 구성 및 처리 흐름을 나타낸 블록도이고, 도 4는 도 3에서 확장된 형태의 실시예를 나타낸 블록도이다.
이하, 도 3 및 도 4를 참조하여 본 발명의 실시예에 따른 PLC의 주요 구성을 설명하겠다.
PLC(Programmable Logic Controller)(100)는 사용자가 작성한 사용자 프로그램으로 산업 플랜트의 자동 제어 및 감시에 사용하는 제어 장치를 말한다.
PLC(100)는 입출력 데이터 교환 태스크(121), 통신 데이터 교환 태스크(123), 사용자 프로그램 수행 태스크(130), 변수 메모리(160), 틱(TICK) 타이머(170), 태스크 관리자(180) 및 태스크 관리 파라미터(190)를 포함하여 구성될 수 있다.
입출력 장치(140)는 PLC(100)와 연결되어 디지털 또는 아날로그 형태의 전기 신호를 PLC(100)와 주고 받는 외부 장치로서, PLC(100)에 전기 신호를 입력시키기 위한 입력장치와 PLC(100)의 연산 결과를 출력하는 출력장치로 구성된다.
입출력 데이터 교환 태스크(121)은 PLC(100) 내부의 변수 메모리(160)와 입출력 장치(140) 간의 데이터 교환을 하는 작업들로 이루어진 태스크이며, 사용자 프로그램 수행 태스크(130) 중 하나에 종속 시켜 수행하는 종속 모드와 별도의 실행 주기로 사용자 프로그램 수행 태스크(130)에 종속 관계없이 독립적으로 수행되는 독립 모드로 이루어진다.
변수 메모리(160)는 PLC(100) 내부에 위치한 변수 및 PLC(100) 외부의 데이터를 저장하는 용도의 메모리로서, 사용자 프로그램에서 내부적으로 사용하는 변수, 입출력 장치(140)와 교환되는 변수 및 통신 장치(150)와 교환되는 변수로 구성된다.
사용자 프로그램 수행 태스크(130)는 PLC 내부(100)에 위치한 사용자가 작성한 사용자 프로그램을 수행하는 작업들로 이루어진 태스크이다. 여기서, 사용자 프로그램은 PLC(100) 외부의 데이터를 변수 메모리(160)를 통해 접근한다.
사용자 프로그램 수행 태스크(130)는 복수 개의 태스크로 이루어지며, 전체 태스크들은 시분할에 기반하여 멀티 태스킹 처리될 수 있다.
사용자 프로그램 수행 태스크(130)는 설정된 주기마다 태스크 관리자(180)가 생성한 스케줄링 이벤트를 받을 때 마다 실행된다.
통신 장치(150)는 PLC(100)와 연결되는 외부 통신 기기이다. 그리고, 통신 데이터 교환 태스크(123)는 PLC(100) 내부의 변수 메모리(160)와 통신 장치(150) 간의 데이터 교환을 하는 작업들로 이루어진 태스크이며, 사용자 프로그램 수행 태스크(130) 중 하나에 종속 시켜 수행하는 종속 모드와 별도의 실행 주기로 사용자 프로그램 수행 태스크(130)에 종속 관계없이 독립적으로 수행되는 독립 모드로 이루어진다.
태스크 관리 파라미터(190)는, 각 태스크들(121, 123, 130)의 실행주기, 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)의 종속 정보 등의 관리 정보를 저장하며, PC(Personal Computer) 등에 설치된 PADT(Program and Debugging Tool)(200)에 의해 설정될 수 있다.
여기서, 종속 정보는, 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)가 사용자 프로그램 수행 태스크(130)에 종속되는지 여부에 관한 정보와, 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)가 사용자 프로그램 수행 태스크(130)에 종속되는 경우 복수의 사용자 프로그램 수행 태스크(130)들 중 종속 대상이 되는 사용자 프로그램 수행 태스크(130)에 관한 정보를 의미한다.
예를 들어, 종속 정보는, 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)가 사용자 프로그램 수행 태스크(130)에 종속되지 않는 독립 모드인 경우 0의 값을 가지며, 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)가 사용자 프로그램 수행 태스크(130)에 종속되는 종속 모드인 경우 종속 대상이 되는 사용자 프로그램 수행 태스크(130)의 번호를 갖는다. 여기서, 사용자 프로그램 수행 태스크(130)의 번호는 복수의 사용자 프로그램 수행 태스크(130)들에 대해 1부터 시작하여 순차적으로 넘버링될 수 있다.
태스크 관리자(180)는 태스크 관리 파라미터(190)의 내용을 바탕으로, 각 태스크들(121, 123, 130)의 실행 시점마다 스케줄링 이벤트를 보냄으로써 태스크들(121, 123, 130)의 실행을 관리한다. 여기서, 스케줄링 이벤트는 태스크의 실행을 알리기 위해 태스크 관리자(180)가 생성하는 이벤트이다.
PADT(200)는, PC에 설치된 PLC(100) 관리(프로그램 및 디버깅)를 위한 소프트웨어로서, 사용자는 태스크들(121, 123, 130)의 실행 방법을 PADT(200)를 통해 태스크 관리 파라미터(190)에 저장할 수 있다.
틱(TICK) 타이머(170)는 태스크 관리자(180)가 태스크들(121, 123, 130)의 스케줄링을 하기 위해 빠른 주기의 틱(TICK) 이벤트를 생성하기 위한 타이머이다. 여기서, 틱 이벤트는 태스크 관리자(180)가 태스크들(121, 123, 130)의 스케줄링을 하기 위해 틱 타이머(170)가 생성하는 이벤트이다.
본 발명의 실시예에 따른 PLC(100)는 종래 대비 스캔 태스크(20)가 제거되고 입출력 데이터 교환 서브루틴(21)과 통신 데이터 교환 서브루틴(23)이 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)로 변경된 것이며, 태스크 관리 파라미터(190), 태스크 관리자(180)가 추가된 것이다.
도 4를 참조하면, 본 발명의 구성요소 중 유한한 하드웨어 영역의 자원인 입출력 장치(140) 및 통신 장치(150)는 여건에 따라 추가될 수 있으며, 이에 대한 데이터 교환을 처리하기 위한 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)는 입출력 장치(140) 및 통신 장치(150)가 추가된 만큼 확장 될 수 있다.
이에 따라 추가된 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)를 스케줄링할 수 있도록 태스크 관리 파라미터(190) 및 태스크 관리자(180)의 인덱스(181)와 처리 로직, 그리고 스케줄링 이벤트는 확장될 수 있다.
여기서, 인덱스(180)는 태스크 관리자(180)가 사용자 프로그램 수행 태스크(130)과 사용자 프로그램 수행 태스크(130)에 종속된 입출력 교환 태스크(121) 및 통신 데이터 교환 태스크(123)를 스케줄링하기 위해 사용되는 변수를 의미한다.
도 5는 본 발명의 실시예에 따른 PLC의 각 태스크들의 처리 로직을 설명하기 위한 순서도이다.
도 5를 참조하면, 입출력 데이터 교환 태스크(121)(a), 사용자 프로그램 수행 태스크(130)(b) 및 통신 데이터 교환 태스크(123)(c)는 모두 스케줄링 이벤트를 수신했는지 판단하며(S11, S21, S31), 모두 스케줄링 이벤트를 수신하기 전까지는 포함된 임무를 수행하지 않고 대기해 있으며, 스케줄링 이벤트를 수신하면 각 태스크(121, 130, 123)들은 임무를 각각 수행한다(S12, S22, S32). 즉, 입출력 데이터 교환 태스크(121)는 입출력 데이터 교환을 수행하고(S12), 사용자 프로그램 수행 태스크(130)는 사용자 프로그램을 수행하고(S22), 통신 데이터 교환 태스크(123)는 통신 데이터 교환을 수행한다(S32).
여기서, 틱(TICK) 타이머(170)가 보내는 매 틱(TICK) 이벤트를 태스크 관리자(180)가 수신할 때마다 태스크 관리 처리 로직이 수행되어 적절한 조건에서 입출력 데이터 교환 태스크(121), 통신 데이터 교환 태스크(123), 사용자 프로그램 수행 태스크(130)에 스케줄링 이벤트를 보내는 것으로서 전체적인 태스크의 스케줄링이 이루어지게 된다.
종래의 PLC(10)는 입출력 데이터 교환과 통신 데이터 교환 처리 부분을 서브루틴의 형태로 스캔 태스크(20)에서 호출하는 것으로 구현하였기 때문에 이들의 실행은 스캔 태스크(20)의 실행 시점에 무조건 종속되었다.
그러나, 본 발명의 PLC(100)는 입출력 데이터 교환과 통신 데이터 교환 처리 부분을 서브루틴이 아닌 태스크의 형태로 구현하여 자체 실행이 가능한 방식으로 구현함으로써 스캔 태스크(20)와의 종속 관계를 제거하였다. 또한, 스캔 태스크(20) 내부에 포함된 입출력 데이터 교환과 통신 데이터 교환 처리 서브루틴이 분리되면서 스캔 태스크(20)는 사용자 프로그램 수행 서브루틴(22)만 남게 되었고, 이는 사용자 프로그램 수행 태스크(30)와 차이점이 없으므로 결과적으로 종래의 스캔 태스크(20)는 사용자 프로그램 수행 태스크(30)에 흡수 통합되어 제거된다.
입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)는 종래와 유사한 사용자 프로그램 수행 태스크(130) 중 하나에 종속 시켜 수행하는 종속 모드 외에 별도의 실행 주기로 사용자 프로그램 수행 태스크(130)에 종속 관계없이 수행되는 독립 모드를 추가 지원한다. 모드의 선택은 PADT(200)를 통해 사용자가 설정하며 이에 대한 설정 정보는 PLC(100) 내부의 태스크 관리 파라미터(190)에 저장된다.
도 6은 본 발명의 실시예에 따른 PLC의 태스크 관리 파라미터의 구성도이고, 도 7은 도 6의 태스크 관리 파라미터에 따른 태스크 관리자의 처리 로직의 순서도이다.
구체적으로, 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)의 사용자 프로그램 수행 태스크(130)에 종속 여부 및 종속 대상이 되는 사용자 프로그램 수행 태스크(130) 정보는 태스크 관리 파라미터(190) 중 입출력 데이터 교환 태스크(121)의 종속 정보와 통신 데이터 교환 태스크(123)의 종속 정보에 위치한다. 이들은 독립 모드인 경우 0의 값을 갖고 종속 모드인 경우 종속 대상이 되는 사용자 프로그램 수행 태스크 번호(1부터 시작)를 갖는다. 또한, 독립 모드인 경우에 입출력 데이터 교환 태스크(121)와 통신 데이터 교환 태스크(123)의 실행 주기 정보는 태스크 관리 파라미터(190)의 입출력 데이터 교환 태스크(121)의 실행 주기와 통신 데이터 교환 태스크(123)의 실행 주기에 저장된다. 종속모드에서는 입출력 데이터 교환 태스크(121)의 실행 주기와 통신 데이터 교환 태스크(123)의 실행 주기는 무시된다.
아울러 사용자가 구성한 사용자 프로그램 수행 태스크(130)의 총 개수는 태스크 관리 파라미터(190)의 사용자 프로그램 수행 태스크(130)의 총 개수에 저장되고 사용자 프로그램 수행 태스크(130) 별 실행주기는 사용자 프로그램 수행 태스크(130)의 실행주기에 저장된다.
이와 같이 사용자는 PADT(200)를 통해 태스크 운용에 대한 기초 정보를 PLC(100) 내의 태스크 관리 파라미터(190)에 설정하며 태스크 관리자(180)는 태스크 관리 파라미터(190)를 참조하여 처리 논리에 따라 입출력 데이터 교환 태스크(121), 통신 데이터 교환 태스크(123), 사용자 프로그램 수행 태스크(130)에 스케줄링 이벤트를 보낸다.
도 6 및 도 7을 참조하면, 먼저, 태스크 관리자(180)는 인덱스(181) 1을 시작으로(S110), 틱 이벤트를 수신 받았는지 확인한다(S120). 틱 이벤트를 수신 받으면, 입출력 데이터 교환 태스크(121)의 종속 정보(A)를 확인하고 입출력 데이터 교환 태스크(121)의 실행 주기(C)를 확인하여(S130), 종속 정보(A)가 독립모드(A=0)이고, 입출력 데이터 교환 태스크(121)의 실행 주기(C)인 경우 입출력 데이터 교환 태스크(121)로 이벤트를 송신하고(S140), 그렇지 않으면 다음 단계로 넘어간다.
다음, 태스크 관리자(180)는 통신 데이터 교환 태스크(123)의 종속 정보(B)를 확인하고 통신 데이터 교환 태스크(123)의 실행 주기(D)인지 확인하여(S150), 종속 정보(B)가 독립모드(B=0)이고, 통신 데이터 교환 태스크(123)의 실행 주기(D)인 경우 통신 데이터 교환 태스크(123)로 이벤트를 송신하고(S160), 그렇지 않으면 다음 단계로 넘어간다.
다음, 입출력 데이터 교환 태스크(121)의 종속 정보(A)가 종속모드(A≠0)이고, 통신 데이터 교환 태스크(123)의 종속 정보(B)가 종속모드(B≠0)이면, 태스크 관리자(180)는 N(여기서, N은 2 이상의 정수)번째 사용자 프로그램 수행 태스크(130)의 실행 주기(F)인지 확인한다(S210). 이 때, N(여기서, N은 2 이상의 정수)번째 사용자 프로그램 수행 태스크(130)의 실행 주기(F)이면 입출력 데이터 교환 태스크(121)의 종속 정보(A)가 사용자 프로그램 수행 태스크(130)의 인덱스에 해당하는지 확인한다(S220). 이 때, 종속 정보(A)가 사용자 프로그램 수행 태스크(130)의 인덱스에 해당하면, 입출력 데이터 교환 태스크(121)로 이벤트 송신한 후(S230), 인덱스에 해당하는 사용자 프로그램 수행 태스크(130)로 이벤트를 송신한다(S240). 만약, 종속 정보(A)가 사용자 프로그램 수행 태스크(130)의 인덱스에 해당하지 않으면, 입출력 데이터 교환 태스크(121)로 이벤트 송신하지 않고, 인덱스에 해당하는 사용자 프로그램 수행 태스크(130)로 이벤트를 송신한다(S240).
다음, 통신 데이터 교환 태스크(123)의 종속 정보(B)가 사용자 프로그램 수행 태스크(130)의 인덱스에 해당하는지 확인한다(S250). 이 때, 종속 정보(B)가 사용자 프로그램 수행 태스크(130)의 인덱스에 해당하면, 통신 데이터 교환 태스크(121)로 이벤트 송신한 후(S260), 인덱스를 1씩 증가한다(S270). 만약, 종속 정보(B)가 사용자 프로그램 수행 태스크(130)의 인덱스에 해당하지 않으면, 입출력 데이터 교환 태스크(121)로 이벤트 송신하지 않고, 인덱스를 1씩 증가한다(S270).
다음, 인덱스가 사용자 프로그램 수행 태스크의 총 개수(E)를 초과하는지 판단한다(S280). 이 때, 인덱스가 사용자 프로그램 수행 태스크의 총 개수(E)를 초과하면 다시 맨 처음 단계(S110)로 되돌아가고, 인덱스가 사용자 프로그램 수행 태스크의 총 개수(E) 이하이면 S210 단계로 되돌아 간다.
본 발명의 PLC(100)는 종래의 PLC(10)과 다르게 PLC(100) 사용자에게 사용자 프로그램과 입출력 데이터 교환 및 통신 데이터 교환에 대한 스케줄링의 자유도를 개선하였다. 이를 통해 PLC(100) 사용자는 입출력 데이터 교환 및 통신 데이터 교환을 지정한 사용자 프로그램 수행 태스크(130)의 실행에 종속시킬 수 있는 동시에 별도의 입출력 데이터 교환 및 통신 데이터 교환 주기를 각각 설정하여 사용자 프로그램 수행 태스크(130)와 종속관계 없이 독립적으로 수행 시킬 수 있다.
이에 따라, 사용자 프로그램의 실행과 이에 따른 PLC(100) 외부로의 데이터 갱신 시점의 불일치와 이에 따른 사용자 프로그램 수행 태스크(130) 내의 사용자 프로그램이 현재 시점이 아닌 입력 지연 만큼의 이전 입력 데이터를 사용하여 제어 연산되는 것과 제어 연산 결과가 출력 지연 시간 이후에 PLC(100) 외부로 반영되는 것을 방지할 수 있다.
아울러, 종래의 PLC(10)의 스캔 태스크(20)에 속한 프로그램 처리되는 시간에 따라 후속 처리되는 통신 데이터 교환 서브루틴(23)의 실행 시작 시간이 변하게 되어 통신 데이터 교환 시점에 대한 확정성이 열화되는 것을 방지할 수 있다.
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 청구범위에 의해서 정해져야 할 것이다.
100: PLC
121: 입출력 데이터 교환 태스크
123: 통신 데이터 교환 태스크
130: 사용자 프로그램 수행 태스크
140: 입출력 장치
150: 통신 장치
160: 변수 메모리
180: 태스크 관리자
190: 태스크 관리 파라미터

Claims (10)

  1. PLC(Programmable Logic Controller) 내부에 위치한 변수 및 상기 PLC 외부의 데이터를 저장하는 변수 메모리;
    상기 변수 메모리 및 외부의 입출력 장치 간의 데이터를 교환하는 작업들로 이루어진 입출력 데이터 교환 태스크;
    상기 변수 메모리 및 외부의 통신 장치 간의 데이터를 교환하는 작업들로 이루어진 통신 데이터 교환 태스크;
    상기 변수 메모리에 저장된 상기 외부의 데이터에 접근하며 사용자 프로그램을 수행하는 작업들로 이루어진 사용자 프로그램 수행 태스크; 및
    상기 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 사용자 프로그램 수행 태스크의 실행 시점을 관리하는 태스크 관리자
    를 포함하는 PLC의 태스크 운용 장치.
  2. 제 1 항에 있어서,
    상기 사용자 프로그램 수행 태스크는
    복수 개로 이루어지는
    PLC의 태스크 운용 장치.
  3. 제 2 항에 있어서,
    상기 입출력 데이터 교환 태스크는
    상기 복수의 사용자 프로그램 수행 태스크 중 어느 하나에 종속되어 작업을 수행하는 종속 모드 및 별도의 실행 주기로 상기 복수의 사용자 프로그램 수행 태스크에 독립되어 작업을 수행하는 독립 모드로 이루어지는
    PLC의 태스크 운용 장치.
  4. 제 2 항에 있어서,
    상기 통신 데이터 교환 태스크는
    상기 복수의 사용자 프로그램 수행 태스크 중 어느 하나에 종속되어 작업을 수행하는 종속 모드 및 별도의 실행 주기로 상기 복수의 사용자 프로그램 수행 태스크에 독립되어 작업을 수행하는 독립 모드로 이루어지는
    PLC의 태스크 운용 장치.
  5. 제 2 항에 있어서,
    상기 태스크 관리자는
    태스크 관리 파라미터를 기초로 상기 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 복수의 사용자 프로그램 수행 태스크의 실행 시점을 관리하는
    PLC의 태스크 운용 장치.
  6. 제 5 항에 있어서,
    상기 태스크 관리 파라미터는
    상기 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 복수의 사용자 프로그램 수행 태스크의 실행주기와, 상기 입출력 데이터 교환 태스크 및 통신 데이터 교환 태스크의 종속 정보를 저장하는
    PLC의 태스크 운용 장치.
  7. 제 2 항에 있어서,
    상기 복수의 사용자 프로그램 수행 태스크는
    시분할에 기반하여 멀티 태스킹 처리되는
    PLC의 태스크 운용 장치.
  8. 제 2 항에 있어서,
    상기 태스크 관리자는
    상기 입출력 데이터 교환 태스크, 통신 데이터 교환 태스크 및 복수의 사용자 프로그램 수행 태스크에 각각 스케줄링 이벤트를 송신하여 태스크 실행 시점을 관리하는
    PLC의 태스크 운용 장치.
  9. 제 2 항에 있어서,
    상기 입출력 데이터 교환 태스크 및 통신 데이터 교환 태스크는 복수 개로 이루어지는
    PLC의 태스크 운용 장치.
  10. 제 9 항에 있어서,
    상기 태스크 관리자는
    상기 복수의 사용자 프로그램 수행 태스크와, 상기 복수의 사용자 프로그램 수행 태스크에 종속된 상기 복수의 상기 입출력 데이터 교환 태스크 및 통신 데이터 교환 태스크를 스케줄링 하기 위한 인덱스를 관리하는
    PLC의 태스크 운용 장치.

KR1020210046328A 2021-04-09 2021-04-09 Plc의 태스크 운용 장치 KR20220140167A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210046328A KR20220140167A (ko) 2021-04-09 2021-04-09 Plc의 태스크 운용 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210046328A KR20220140167A (ko) 2021-04-09 2021-04-09 Plc의 태스크 운용 장치

Publications (1)

Publication Number Publication Date
KR20220140167A true KR20220140167A (ko) 2022-10-18

Family

ID=83803480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210046328A KR20220140167A (ko) 2021-04-09 2021-04-09 Plc의 태스크 운용 장치

Country Status (1)

Country Link
KR (1) KR20220140167A (ko)

Similar Documents

Publication Publication Date Title
Jensen Asynchronous decentralized realtime computer systems
US8346378B2 (en) Programmable controller
US9336051B2 (en) Programmable controller with multiple processors using a scanning architecture
CN105629926B (zh) 用于工业控制器的输入/输出模块和方法
WO2016130873A1 (en) Extending a programmable logic controller with apps
CN105190556B (zh) 实时多任务系统及其执行方法
WO2018206994A1 (en) Method of managing resource providing in a computers cluster running jobs
US10180674B2 (en) Controller and control system
Dai et al. A dual-mode strategy for performance-maximisation and resource-efficient CPS design
US20090106755A1 (en) Programmable Controller with Multiple Processors Using Scanning and Data Acquisition Architectures
Roy et al. GoodSpread: Criticality-aware static scheduling of CPS with multi-QoS resources
CN109597687A (zh) 数据同步的资源分配方法、装置、存储介质和电子设备
KR20220140167A (ko) Plc의 태스크 운용 장치
Cervin et al. Control loop timing analysis using TrueTime and Jitterbug
US20180074470A1 (en) Apparatus and method for generating program
JP2018084994A (ja) コントロールシステム及びコントロール方法
JPWO2015140910A1 (ja) プログラマブルロジックコントローラ
EP3865959A1 (en) Control device
EP1367469B1 (en) Controller for machine
CN112364001A (zh) 多维空间大数据的清洗方法、装置、计算机设备及介质
CN111052683B (zh) 网络系统
JP2002006944A (ja) 制御機能付き表示器
JP4547469B2 (ja) 複数の演算装置によるシーケンス処理実行装置
CN110908805A (zh) 一种信息分发方法、机器人及存储介质
Querol et al. Evaluation of closed loop control applications using different event management strategies under IEC 61499