KR102492399B1 - 감시제어장치 - Google Patents

감시제어장치 Download PDF

Info

Publication number
KR102492399B1
KR102492399B1 KR1020160095641A KR20160095641A KR102492399B1 KR 102492399 B1 KR102492399 B1 KR 102492399B1 KR 1020160095641 A KR1020160095641 A KR 1020160095641A KR 20160095641 A KR20160095641 A KR 20160095641A KR 102492399 B1 KR102492399 B1 KR 102492399B1
Authority
KR
South Korea
Prior art keywords
task
global variable
period
main
sub
Prior art date
Application number
KR1020160095641A
Other languages
English (en)
Other versions
KR20180012600A (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 KR1020160095641A priority Critical patent/KR102492399B1/ko
Publication of KR20180012600A publication Critical patent/KR20180012600A/ko
Application granted granted Critical
Publication of KR102492399B1 publication Critical patent/KR102492399B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

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

Abstract

본 발명은 소정의 주태스크 주기에서 주태스크를 먼저 수행하고, 상기 주태스크 주기 중 상기 주태스크를 수행하고 남는 여분기간 동안 부태스크를 수행하는 태스크 수행부, 상기 태스크 수행부에 글로벌변수에 저장된 정보를 제공하고, 상기 태스크 수행부에 의한 태스크 수행 결과에 따라 상기 글로벌변수를 업데이트하는 글로벌변수 관리부를 포함하는 감시제어장치를 제공한다. 상기 태스크 수행부는 상기 주태스크에 의해 유예된 상태의 부태스크가 존재하는 경우, 상기 소정의 주태스크 주기의 상기 여분기간 동안 상기 글로벌변수에 저장된 정보를 배제한 상태에서 상기 유예된 부태스크를 수행하고, 상기 부태스크를 수행 완료하기 전에 상기 소정의 주태스크 주기가 종료되면 상기 수행중인 부태스크를 유예한다.

Description

감시제어장치 {APPARATUS FOR MONITORING AND CONTROLLING}
본 발명은 태스크 단위로 이루어진 프로그램을 실현하기 위하여 태스크들을 수행하는 감시제어장치에 관한 것이다.
감시제어장치는 다수의 대상기기를 일괄적으로 감시 및 제어함으로써, 다수의 대상기기를 포함하는 작업 공정을 자동화하기 위한 것이다. 이러한 감시제어장치로는 PLC(Programmable Logic Controller) 및 DCS(Distributed Control System)가 있다. 그리고, 감시제어장치에 의해 감시 및 제어되는 다수의 대상기기로는 세이프티 기기, 비전 시스템, 모션 기기, 입출력 기기 및 통신기기 등이 있다.
감시제어장치는 사용자가 지정한 프로그램에 따라 다수의 대상기기를 감시 및 제어하는데, 이때 각 프로그램은 태스크 단위로 이루어진다. 즉, 감시제어장치는 복수의 태스크를 순차적으로 수행함으로써, 프로그램을 실현한다.
태스크들은 각각의 우선순위에 따라 주태스크와 부태스크로 구분될 수 있다. 예시적으로, 주태스크는 대상기기의 제어에 관한 것이고, 부태스크는 대상기기에 대한 감시에 관한 것일 수 있다.
감시제어장치는 태스크 수행 효율을 증가시키기 위해, 각 주태스크 주기에서 주태스크를 먼저 수행한 후, 나머지 여분기간 동안 부태스크를 수행할 수 있다. 그리고, 이번 주태스크 주기가 종료되면, 다음 주태스크 주기에 대응하는 주태스크를 수행하기 위해, 수행 완료되지 않은 상태의 부태스크를 유예한다.
그리고, 감시제어장치에 의해 실현되는 프로그램에 포함된 변수 중 일부는 주태스크와 부태스크 모두 접근 가능한 글로벌변수(global variable; 전역변수)일 수 있다. 즉, 주태스크 및 부태스크 각각은 글로벌변수에 저장된 정보를 참조하여 수행될 수 있고, 주태스크 및 부태스크 각각의 수행 완료에 따른 결과값으로 글로벌변수가 업데이트된다.
그런데, 각 주태스크는 실행 우선순위가 높으므로, 다른 태스크의 영향을 받지 않기 때문에, 주태스크의 수행을 시작할 때 참조된 글로벌변수의 정보가 수행이 완료될 때까지 그대로 유지된다. 따라서, 주태스크에 참조되는 글로벌변수의 정보는 동시성을 유지할 수 있다.
그러나, 우선순위가 상대적으로 낮은 부태스크는 하나의 부태스크 주기 내에서 분할되어 수행된다. 즉, 부태스크는 주태스크의 수행 완료 후부터 다음 주태스크의 수행 시작 시까지의 여분기간에 수행되었다가, 다음 주태스크의 수행이 시작되면 부태스크의 수행은 유예되고, 다음 주태스크의 수행이 완료되면 유예된 부태스크의 수행이 재개된다.
그런데, 종래 기술에 따르면, 주태스크의 수행 완료에 따른 결과값으로 글로벌변수가 업데이트되고, 주태스크의 수행 완료 후에 개시되는 부태스크의 수행 시 글로벌변수의 정보를 다시 참조한다. 이에 따라, 유예전 부태스크에 참조된 글로벌변수의 정보와, 유예 후 수행 재개된 부태스크에 참조되는 글로벌변수의 정보가 서로 상이해진다. 그러므로, 주태스크에 의해 유예되는 부태스크는 동시성을 상실한 글로벌변수의 정보를 참조하여 수행되는 문제점이 있다. 그로 인해, 부태스크의 수행 결과가 사용자의 설계와 상이해짐으로써, 감시제어장치의 제어확정성 및 신뢰도가 저하되는 문제점이 있다.
또한, 종래기술에 따르면, 유예된 부태스크의 수행이 종료되기 전이라도, 부태스크에서 유예 상태로 들어가기 전에 발생된 글로벌변수의 연산결과(이하, "부결과값"이라 함)가 글로벌변수에 반영된다. 즉, 부태스크가 수행 완료되지 않고 유예된 상태에서 생성되는 불완전한 결과값으로 글로벌변수가 업데이트된다. 이에 따라, 유예된 부태스크 이후에 수행되는 주태스크는 불완전한 결과값으로 업데이트된 글로벌변수의 정보를 참조한다. 그로 인해, 주태스크의 수행 결과가 사용자의 설계와 상이해짐으로써, 주태스크의 수행 결과에 대한 신뢰도가 저하되므로, 감시제어장치의 제어확정성 및 신뢰도가 저하되는 문제점이 있다.
본 발명은 주태스크에 의해 유예되는 부태스크를 수행 시에도, 동시성이 유지된 글로벌변수의 정보를 참조할 수 있어, 부태스크의 수행 결과에 대한 신뢰도가 향상될 수 있는 태스크 수행방법 및 이를 실시하는 감시제어장치를 제공한다.
그리고, 본 발명은 유예된 부태스크에 의해 업데이트된 글로벌변수로 인해 주태스크의 수행 결과에 대한 신뢰도가 저하되는 것을 방지할 수 있는 태스크 수행방법 및 이를 실시하는 감시제어장치를 제공한다.
이로써, 본 발명은 감시제어장치의 제어 확정성과 신뢰도를 향상할 수 있는 태스크 수행방법 및 이를 실시하는 감시제어장치를 제공한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
이와 같은 과제를 해결하기 위하여, 본 발명은 소정의 주태스크 주기에서 주태스크를 먼저 수행하고, 상기 주태스크 주기 중 상기 주태스크를 수행하고 남는 여분기간 동안 부태스크를 수행하는 태스크 수행부, 상기 태스크 수행부에 글로벌변수에 저장된 정보를 제공하고, 상기 태스크 수행부에 의한 태스크 수행 결과에 따라 상기 글로벌변수를 업데이트하는 글로벌변수 관리부를 포함하는 감시제어장치를 제공한다.
여기서, 상기 태스크 수행부는 상기 주태스크에 의해 유예된 상태의 부태스크가 존재하는 경우, 상기 소정의 주태스크 주기의 상기 여분기간 동안 상기 글로벌변수에 저장된 정보를 배제한 상태에서 상기 유예된 부태스크를 수행하고, 상기 부태스크를 수행 완료하기 전에 상기 소정의 주태스크 주기가 종료되면 상기 수행중인 부태스크를 유예한다.
그리고, 상기 태스크 수행부는 상기 소정의 주태스크 주기에서, 상기 글로벌변수에 저장된 정보에 기초하여 상기 주태스크를 수행하고, 상기 주태스크를 수행 완료하여 주결과값을 생성하며, 상기 주결과값을 상기 글로벌변수 관리부에 전달하고, 상기 글로벌변수 관리부는 상기 전달된 주결과값으로 상기 글로벌변수를 업데이트한다.
상기 태스크 수행부는 상기 주태스크에 의해 유예된 상태의 부태스크가 존재하지 않는 경우, 상기 소정의 주태스크 주기의 상기 여분기간 동안 상기 글로벌변수에 저장된 정보에 기초하여 상기 부태스크의 수행을 시작한다.
상기 태스크 수행부는 상기 소정의 주태스크 주기의 상기 여분기간 동안 상기 부태스크를 수행 완료하여 상기 글로벌변수에 대응하는 부결과값을 생성하는 경우, 상기 부결과값을 상기 글로벌변수 관리부에 전달하고, 상기 글로벌변수 관리부는 상기 전달된 부결과값으로 상기 글로벌변수를 업데이트한다.
상기 태스크 수행부는 상기 수행중인 부태스크를 유예하는 경우, 상기 부태스크에 의해 상기 글로벌변수에 대응하고 상기 글로벌변수에 저장된 정보와 상이한 유예결과값을 상기 글로벌변수 관리부에 전달하지 않는다.
상기 태스크 수행부는 상기 글로벌변수에 대한 변경 권한을 소유하는 주태스크를 수행하는 경우, 상기 글로벌변수에 대응하고 상기 글로벌변수에 저장된 정보와 상이한 중간결과값이 생성되면, 상기 중간결과값을 상기 글로벌변수 관리부에 전달하고, 상기 글로벌변수 관리부는 상기 전달된 중간결과값으로 상기 글로벌변수를 업데이트한다.
전술한 바와 같은 감시제어장치는 글로벌변수에 저장된 정보를 배제한 상태에서 유예된 부태스크를 수행한다. 그러므로, 주태스크에 의해 유예되는 부태스크를 수행 시에도, 동시성이 유지된 글로벌변수의 정보를 참조할 수 있는 장점이 있다. 이로써, 부태스크의 수행 결과에 대한 신뢰도가 향상될 수 있으므로, 감시제어장치의 제어 확정성과 신뢰도가 향상될 수 있다.
그리고, 전술한 바와 같은 감시제어장치에 따르면, 유예된 부태스크에 의해 글로벌변수에 저장된 정보와 상이한 결과값이 발생되더라도, 유예된 부태스크에 의한 결과값으로 글로벌변수를 업데이트하는 것이 배제된다. 이로써, 유예된 부태스크에 따른 불완전한 결과값으로 업데이트된 글로벌변수로 인해, 주태스크의 수행 결과에 대한 신뢰도가 저하되는 것이 방지될 수 있다. 그러므로, 감시제어장치의 제어 확정성과 신뢰도가 향상될 수 있다.
도 1은 본 발명의 일 실시예에 따른 감시제어장치를 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 도 1에 도시한 감시제어장치의 태스크 수행부가 태스크를 수행하는 방법을 나타낸 순서도이다.
도 3은 도 2의 태스크 수행방법을 설명하기 위한 일 예시이다.
도 4는 본 발명의 다른 일 실시예에 따른 태스크 수행방법을 설명하기 위한 일 예시이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.
이하, 본 발명의 각 실시예에 따른 태스크 수행방법에 대해 첨부한 도면을 참고로 하여 상세히 설명한다.
먼저, 도 1을 참조하여 본 발명의 일 실시예에 따른 감시제어장치에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 감시제어장치를 나타낸 블록도이다.
도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 감시제어장치(100)는 각 주태스크주기 및 각 부태스크주기에 대응하는 태스크를 수행하는 태스크 수행부(110), 태스크 수행부(110)에 주태스크를 제공하는 주태스크 공급부(120), 태스크 수행부(110)에 부태스크를 제공하는 부태스크 공급부(121) 및 태스크 수행부(110)에 글로벌변수에 저장된 정보를 제공하고 태스크 수행부(110)에 의한 태스크 수행 결과에 따라 글로벌변수를 업데이트하는 글로벌변수 관리부(130)를 포함한다.
태스크 수행부(110)는 각 주태스크 주기에서, 주태스크 공급부(120)로부터 제공되는 주태스크를 먼저 수행하고, 이후 남는 여분기간 동안 부태스크 공급부(121)로부터 제공되는 부태스크를 나누어 수행한다.
구체적으로, 태스크 수행부(110)는 현재 주태스크 주기가 시작되는 시점에 주태스크를 수행하고, 주태스크를 수행 완료한 후부터 각 주태스크 주기가 종료되는 시점 이전까지의 여분기간 동안 부태스크를 수행한다. 이어서, 태스크 수행부(110)는 다음 주태스크 주기가 시작되는 시점에 주태스크를 수행하기 위하여, 수행중인 부태스크를 유예한다. 그리고, 태스크 수행부(110)는 다음 주태스크 주기에 대응하는 주태스크를 수행 완료한 후부터 유예된 부태스크를 이어서 수행한다.
또한, 태스크 수행부(110)는 글로벌변수 관리부(130)로부터 제공되는 글로벌변수의 정보에 기초하여 주태스크 및 부태스크 각각을 수행한다. 그리고, 태스크 수행부(110)는 주태스크 및 부태스크 각각의 수행 완료 후에 글로벌변수를 태스크 수행 결과로 업데이트할 것을 글로벌변수 관리부(130)에 요청한다.
주태스크 공급부(120)는 프로그램을 구성하는 다수의 태스크 중 우선순위가 비교적 높은 주태스크를 선별하여 태스크 수행부(110)에 공급한다.
그리고, 부태스크 공급부(121)는 다수의 태스크 중 우선순위가 비교적 낮은 부태스크를 선별하여 태스크 수행부(110)에 공급한다.
예시적으로, 주태스크는 대상기기의 제어에 관한 작업일 수 있고, 부태스크는 대상기기의 상태를 감시 또는 표시하는 작업에 관한 것일 수 있다. 즉, 대상기기를 온오프하는 작업, 턴온 상태의 대상기기에 초기 구동전류를 공급하는 작업 및 대상기기의 구동전류를 가변하는 작업 등은 주태스크일 수 있다. 그리고, 대상기기가 턴온상태인지 여부를 체크하는 작업, 대상기기의 구동전류를 체크하는 작업 및 대상기기의 구동 상태를 사용자에게 표시하는 작업 등은 대상기기의 구동에 직접적인 연관성이 낮으므로, 우선순위가 비교적 낮은 부태스크로 분류될 수 있다.
글로벌변수 관리부(130)는 태스크 수행부(110)에서 태스크를 수행하기 전에 태스크 수행부(110)의 요청에 따라 글로벌변수에 저장된 정보를 제공한다. 그리고, 글로벌변수 관리부(130)는 태스크를 수행 완료한 후에 태스크 수행부(110)의 요청에 따라 태스크 수행 결과에 따른 정보로 글로벌변수를 업데이트한다.
구체적으로, 태스크 수행부(110)는 소정의 주태스크 주기에서 주태스크를 먼저 수행하고, 주태스크 주기 중 주태스크를 수행하고 남는 여분기간 동안 부태스크를 수행한다.
즉, 태스크 수행부(110)는 소정의 주태스크 주기 중 실행기간 동안 글로벌변수에 저장된 정보에 기초하여 주태스크를 수행하고, 그로 인해 주태스크를 수행 완료하여 주결과값을 생성한다. 그리고, 태스크 수행부(110)는 주결과값을 글로벌변수 관리부(130)로 전달하고, 글로벌변수 관리부(130)는 전달된 주결과값으로 글로벌변수를 업데이트한다.
그리고, 태스크 수행부(110)는 소정의 주태스크 주기에서 주태스크에 의해 유예된 상태의 부태스크가 존재하는 경우, 실행기간을 제외한 나머지인 여분기간 동안 글로벌변수에 저장된 정보를 배제한 상태에서 유예된 부태스크를 수행한다.
즉, 소정의 부태스크 주기 중 첫번째에 배치된 주태스크 주기가 아닌 경우, 이전 주태스크 주기의 여분기간동안 수행되었다가 이번 주태스크 주기의 시작 시에 유예된 부태스크가 존재하므로, 태스크 수행부(110)는 여분기간 동안 유예된 부태스크를 이어서 수행한다.
그리고, 주태스크 주기가 종료되기 전에 부태스크를 수행 완료하여 부결과값을 생성하면, 태스크 수행부(110)는 부결과값을 글로벌변수 관리부(130)로 전달하고, 글로벌변수 관리부(130)는 부결과값으로 글로벌변수를 업데이트한다.
반면, 부태스크를 수행 완료하기 전에, 주태스크 주기가 종료되면, 태스크 수행부(110)는 수행중인 부태스크를 유예한다. 그리고, 유예된 부태스크에 의해 글로벌변수에 대응하고 글로벌변수에 저장된 정보와 상이한 유예결과값이 생성되더라도, 태스크 수행부(110)는 유예결과값을 글로벌변수 관리부(130)로 전달하지 않는다. 이에, 글로벌변수가 부태스크의 유예결과값으로 업데이트되는 것이 배제된다.
또한, 소정의 주태스크 주기에서 주태스크에 의해 유예된 상태의 부태스크가 존재하지 않는 경우, 태스크 수행부(110)는 여분기간 동안 글로벌변수에 저장된 정보에 기초하여 부태스크의 수행을 시작한다.
즉, 소정의 부태스크 주기 중 첫번째에 배치된 주태스크 주기인 경우, 부태스크는 이전 주태스크 주기의 여분기간동안 수행 완료되므로, 태스크 수행부(110)는 새로운 부태스크의 수행을 시작한다.
이러한 본 발명의 일 실시예에 따른 감시제어장치(100)는 부태스크에 반영되는 글로벌변수의 정보가 동시성을 유지할 수 있도록, 다음과 같이 태스크들을 수행한다.
도 2는 본 발명의 일 실시예에 따른 도 1에 도시한 감시제어장치의 태스크 수행부가 태스크를 수행하는 방법을 나타낸 순서도이고, 도 3은 도 2의 태스크 수행방법을 설명하기 위한 일 예시이다.
도 2는 어느 하나의 부태스크 주기에 대응하는 태스크 수행방법을 나타낸 순서도이다. 여기서, 어느 하나의 부태스크 주기는 주태스크 주기의 정수배로 설정된다.
즉, 부태스크 주기가 주태스크 주기의 n배(여기서, n은 1 이상의 자연수)인 경우, 감시제어장치(100)의 태스크 수행부(110)는 하나의 부태스크 주기 동안 n개의 주태스크와, 한 개의 부태스크를 수행한다. 이때, 부태스크 주기와 주태스크 주기 각각은 사용자의 설계에 따라 특정된다. 그리고, 주태스크 주기는 주태스크를 수행 시작한 시점부터 수행 완료한 시점까지의 실행기간보다 길게 특정된다. 즉, 주태스크 주기 중 일부는 주태스크의 수행을 위한 실행기간이고, 실행기간을 제외한 나머지는 부태스크를 분할 수행하기 위한 여분기간이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 태스크 수행방법은 부태스크 주기 및 주태스크 주기가 시작된 이후에(S11, S12), 글로벌변수에 저장된 정보에 기초하여 주태스크를 수행하고(S13), 주태스크를 수행 완료하여 글로벌변수에 대응하는 주결과값을 생성하는 단계(S20), 글로벌변수를 주결과값으로 업데이트하는 단계(S30), 주태스크에 의해 유예된 부태스크가 존재하는 경우(S40), 글로벌변수에 저장된 정보를 배제한 상태에서 유예된 부태스크를 수행하는 단계(S41) 및 부태스크가 수행 완료되지 않은 상태(S50)에서, 주태스크 주기가 종료되면 부태스크를 유예하는 단계(S51)를 포함한다.
이때, 부태스크를 유예하는 단계(S51)에서, 유예된 부태스크에 의해 글로벌변수에 대응하고 글로벌변수에 저장된 정보와 상이한 유예결과값이 생성된 경우, 유예결과값으로 글로벌변수를 업데이트하는 것을 배제한다.
그리고, 태스크 수행방법은, 주결과값으로 글로벌변수를 업데이트하는 단계(S30) 이후에, 주태스크에 의해 유예된 부태스크가 존재하지 않는 경우(S40), 글로벌변수에 저장된 정보에 기초하여 부태스크의 수행을 시작하는 단계(S42)를 더 포함한다.
또한, 태스크 수행방법은 주태스크 주기가 종료되는 단계(S51) 이전에, 부태스크를 수행 완료하여 글로벌변수에 대응하는 부결과값을 생성하는 단계(S50), 및 부결과값으로 글로벌변수를 업데이트하는 단계(S52)를 더 포함한다.
이어서, 태스크 수행방법은 부태스크 주기가 종료되는 단계(S14)를 더 포함한다.
일 예로, 도 3에 도시한 바와 같이, 각 부태스크 주기가 주태스크 주기의 3배인 경우를 가정하여, n-1번째 부태스크 주기와 n+1번째 부태스크 주기 사이의 n번째 부태스크 주기에서의 태스크 수행방법에 대해 설명한다.
n-1번째 부태스크 주기의 종료 시에(S14), n-1번째 부태스크를 수행 완료하여, 그에 따른 결과값(RP, RP; Result_previously, 이하 "이전결과값"이라 함)으로 글로벌변수(GV; Global Variable)를 업데이트한다. (S52)
n-1번째 부태스크 주기의 종료된 이후(S14), n번째 부태스크 주기가 시작되고 (S11), 제 1 주태스크 주기가 시작된다. (S12)
이에, 제 1 주태스크 주기 중 일부인 실행기간(PT1, PT; Performing Term) 동안, 글로벌변수(GV)에 저장된 정보, 즉 이전결과값(RP)에 기초하여, 제 1 주태스크 주기에 대응하는 제 1 주태스크를 수행한다. (S13)
제 1 주태스크를 수행 완료하고, 글로벌변수(GV)에 대응하는 제 1 결과값(R1)을 생성한다. (S20) 이때, 제 1 결과값(R1)이 글로벌변수(GV)에 저장된 정보와 상이하면, 제 1 결과값(R1)으로 글로벌변수(GV)를 업데이트한다. (S30)
제 1 주태스크는 n번째 부태스크 주기 중 첫번째로 수행되는 주태스크로서, 제 1 주태스크를 수행하기 의해 유예된 부태스크가 존재하지 않는다. 이에, 유예된 부태스크가 존재하지 않음을 확인하면(S40), 글로벌변수(GV)에 저장된 정보, 즉 제 1 결과값(R1)에 기초하여 n번째 부태스크 주기에 대응하는 n번째 부태스크를 수행 시작한다. (S42)
즉, 제 1 주태스크 주기의 실행기간(PT1)을 제외한 나머지 여분기간(RT1, RT; Reminder Term) 동안, 글로벌변수(GV)에 저장된 정보에 기초하여 n번째 부태스크(ST(n)) 중 초기의 일부 영역(ST_F)을 수행한다.
이때, n번째 부태스크(ST(n))가 수행 완료되지 않은 상태에서(S50), 제 1 주태스크 주기가 종료된다. 이에, 제 2 주태스크 주기에 대응하는 제 2 주태스크를 수행하기 위해, n번째 부태스크(ST(n))는 초기의 일부 영역(ST_F)만이 수행된 상태로 유예된다. (S51)
여기서, n번째 부태스크(ST(n)) 중 초기의 일부 영역(ST_F)이 수행됨에 따라, 글로벌변수(GV)에 저장된 정보와 상이한 유예결과값이 발생되더라도, 유예결과값으로 글로벌변수(GV)를 업데이트하는 것은 배제된다.
이어서, 제 2 주태스크 주기가 시작된다. (S12) 이에, 제 2 주태스크 주기 중 실행기간(PT2) 동안, 글로벌변수(GV)에 저장된 정보, 즉 제 1 결과값(R1)에 기초하여 제 2 주태스크 주기에 대응하는 제 2 주태스크를 수행한다. (S13)
제 2 주태스크를 수행 완료하여 글로벌변수(GV)에 저장된 정보와 상이한 제 2 결과값(R2)가 생성되면(S20), 제 2 주태스크의 수행 완료에 따른 제 2 결과값(R2)으로 글로벌변수(GV)를 업데이트한다. (S30)
그리고, 제 2 주태스크(MT2)를 수행하기 위해, 초기의 일부 영역(ST_F)만이 수행된 상태로 유예된 부태스크(ST(n))가 존재하는 것을 확인한다. (S40) 이에, 제 2 주태스크 주기 중 여분기간(RT2) 동안 글로벌변수(GV)에 저장된 정보를 배제한 상태에서 유예된 n번째 부태스크(ST(n))를 이어서 수행한다. (S41)
이후, 제 2 주태스크 주기 중 여분기간(RT2) 동안, 유예된 n번째 부태스크(ST(n)) 중 중기의 일부 영역(ST_M)까지 수행된다. 이 상태에서, 제 2 주태스크 주기가 종료된다.
다음, 제 3 주태스크 주기(MTP3)에 대응하는 제 3 태스크(MT3)를 수행하기 위해, n번째 부태스크(ST(n))는 중기의 일부 영역(ST(n)_M)까지 수행된 상태로 유예된다. (S51)
여기서, n번째 부태스크(ST(n)) 중 중기의 일부 영역(ST(n)_M)이 수행됨에 따라, 글로벌변수(GV)에 저장된 정보와 상이한 유예결과값이 발생되더라도, 유예결과값으로 글로벌변수(GV)를 업데이트하는 것은 배제된다.
이어서, 제 3 주태스크 주기가 시작되고 (S12), 제 3 주태스크 주기 중 실행기간(PT3) 동안, 글로벌변수(GV)에 저장된 정보, 즉 제 2 결과값(R2)에 기초하여 제 3 주태스크 주기에 대응하는 제 3 주태스크를 수행한다. (S13)
제 3 주태스크가 수행 완료하면, 제 3 주태스크의 수행 완료에 따른 제 3 결과값(R3)으로 글로벌변수(GV)를 업데이트한다. (S30)
제 3 주태스크를 수행하기 위해, 중기의 일부 영역(ST_M)까지 수행된 상태로 유예된 부태스크(ST(n))가 존재하므로(S40), 제 3 주태스크 주기 중 여분기간(RT3) 동안 글로벌변수(GV)에 저장된 정보를 배제한 상태에서 유예된 n번째 부태스크(ST(n))를 이어서 수행한다. (S41)
이때, 제 3 주태스크 주기가 종료되기 전에(S51), n번째 부태스크(ST(n))가 최종 영역(ST_L)까지 수행 완료하여, 제 4 결과값(R4)를 생성한다. (S50) 이에, n 번째 부태스크(ST(n))의 수행 완료에 따른 제 4 결과값(R4)으로 글로벌변수(GV)를 업데이트한다. (S52)
이후, n번째 부태스크 주기(STP(n))가 종료되고(S14), n+1번째 부태스크 주기가 시작된다. (S11) 이에, 글로벌변수(GV)에 저장된 정보, 즉 제 4 결과값(R4)에 기초하여, n+1번째 부태스크 주기 중 제 1 주태스크 주기에 대응하는 제 1 주태스크를 수행한다. (S13)
이상과 같이, 본 발명의 일 실시예에 따른 태스크 수행방법은 주태스크(MT)의 수행 완료에 따른 주결과값(R1, R2, R3)으로 글로벌변수(GV)를 업데이트하는 단계(S30)와, 주태스크(MT)를 수행하기 위해 유예된 부태스크(ST)가 존재하는 경우(S40), 글로벌변수(GV)에 저장된 정보를 배제한 상태에서 유예된 부태스크(ST)를 수행하는 단계(S41)를 포함한다.
이와 같이, 부태스크(ST)는 수행 시작 시에만 글로벌변수(GV)의 정보를 참조하고, 유예된 부태스크(ST)를 수행 재개 시에는, 글로벌변수(GV)를 참조하지 않는다. 이로써, 부태스크(ST)가 동시성이 유지된 글로벌변수(GV)의 정보를 참조하여 수행될 수 있다. 이에 따라, 부태스크(ST)의 수행 결과가 사용자의 설계로부터 예측되는 결과와 동일 또는 유사해짐으로써, 부태스크(ST)의 수행 결과에 대한 신뢰도가 향상될 수 있다.
그리고, 본 발명의 일 실시예에 따르면, 주태스크 주기가 종료되어 부태스크(ST)를 유예 시에, 유예된 부태스크(ST)에 따른 유예결과값으로 글로벌변수(GV)를 업데이트하지 않는다. 반면, 부태스크(ST)가 수행 완료되면, 부태스크(ST)의 수행 완료에 따른 부결과값으로 글로벌변수(GV)를 업데이트한다. (S52)
즉, 주태스크(MT)의 수행 완료에 따른 주결과값으로 글로벌변수(GV)를 업데이트하는 것과 마찬가지로, 부태스크(ST)의 수행 완료에 따른 부결과값으로만 글로벌변수(GV)를 업데이트하고, 유예된 부태스크(ST)에 의한 유예결과값으로 글로벌변수(GV)를 업데이트하는 것은 차단된다. 이로써, 유예된 부태스크(ST) 이후에 개시되는 주태스크(MT)의 수행 시, 불완전한 유예결과값으로 업데이트된 글로벌변수(GV)를 참조하지 않으므로, 주태스크(MT)의 수행 결과에 대한 신뢰도가 향상될 수 있다.
따라서, 본 발명의 일 실시예에 따른 태스크 수행방법은 감시제어장치의 제어 확정성과 신뢰도를 향상시킬 수 있다.
한편, 본 발명의 일 실시예에 따른 태스크 수행방법은 주태스크의 수행 완료에 따른 결과값 또는 부태스크의 수행 완료에 따른 결과값으로 글로벌변수(GV)를 업데이트한다.
이와 달리, 주태스크 중 사용자의 설계에 의해 실시간성을 높일 필요가 있는 어느 하나가 글로벌변수에 대한 변경 권한을 소유하도록 지정될 수 있다. 그리고, 이와 같이 지정된 주태스크를 수행 중에, 글로벌변수(GV)에 저장된 정보와 상이한 결과값을 생성 시마다, 글로벌변수(GV)를 업데이트한다.
도 4는 본 발명의 다른 일 실시예에 따른 태스크 수행방법을 설명하기 위한 일 예시이다.
도 4에 도시한 바와 같이, 본 발명의 다른 일 실시예에 따른 태스크 수행 방법은 글로벌변수에 대한 변경 권한을 소유하도록 지정된 제 1 주태스크(S_MT1)를 수행 중에 글로벌변수(GV)에 저장된 정보와 상이한 중간결과값(MR1, MR2)이 발생 시마다, 글로벌변수(GV)를 업데이트하는 점을 제외하면, 도 3에 도시된 바와 동일하므로, 이하에서 중복 설명을 생략한다.
본 발명의 다른 일 실시예에 따르면, 하나의 부태스크 주기(STP(n)) 동안 수행되는 복수의 주태스크 중 사용자의 설계에 의해 어느 하나의 주태스크(도 4에서 제 1 주태스크(S_MT1)임)가 글로벌변수에 대한 변경 권한을 소유하는 것으로 지정된다.
그리고, 태스크 수행부(도 1의 110)는 글로벌변수에 대한 변경 권한을 소유하는 제 1 주태스크(S_MT1)를 수행하는 경우, 제 1 주태스크(S_MT1)를 수행 완료 하기 이전이라도, 글로벌변수에 대응하고 글로벌변수에 저장된 정보와 상이한 중간결과값이 생성되면, 중간결과값을 글로벌변수 관리부(도 1의 130)로 전달한다. 이에, 글로벌변수 관리부(130)는 전달된 중간결과값으로 글로벌변수를 업데이트한다.
구체적으로, 도 4의 도시와 같이, 제 1 주태스크 주기(MTP1) 중 실행기간(PT1) 동안 글로벌변수에 대한 변경 권한을 소유하는 제 1 주태스크(S_MT1)의 수행 중에, 글로벌변수(GV)에 저장된 정보와 상이한 제 1 중간결과값(MR1)이 발생하면, 제 1 중간결과값(MR1)으로 글로벌변수(GV)를 업데이트한다. 이후 다시 글로벌변수(GV)에 저장된 정보, 즉 제 1 중간결과값(MR1)과 상이한 제 2 중간결과값(MR1)이 발생하면, 제 2 중간결과값(MR2)으로 글로벌변수(GV)를 업데이트한다. 이어서, 지정된 제 1 주태스크(S_MT1)의 수행 완료 시에, 다시 글로벌변수(GV)에 저장된 정보, 즉 제 2 중간결과값(MR2)과 상이한 최종결과값(FR)이 발생하면, 최종결과값(FR)으로 글로벌변수(GV)를 업데이트한다.
이와 같은 태스크 수행방법은, 다른 주태스크에 비해, 실시간성을 높일 필요가 있는 주태스크를 수행해야 하는 경우에도 적용 가능해질 수 있으므로, 적용 범위가 넓어질 수 있다.
전술한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100: 감시제어장치 110: 태스크 수행부
130: 글로벌변수 관리부 STP: 부태스크 주기
MTP: 주태스크 주기 PT: 실행기간
RT: 여분기간 MT: 주태스크
ST: 부태스크 GV: 글로벌변수
RP, R1, R2, R3, R4: 결과값

Claims (6)

  1. 부태스크 주기 동안, 소정의 주태스크 주기에서 주태스크를 먼저 수행하고, 상기 주태스크 주기 중 상기 주태스크를 수행하고 남는 여분기간 동안 부태스크를 수행하는, 상기 부태스크 주기 내에 복수의 상기 주태스크 주기가 설정되는 태스크 수행부;
    상기 태스크 수행부에 글로벌변수에 저장된 정보를 제공하고, 상기 태스크 수행부에 의한 태스크 수행 결과에 따라 상기 글로벌변수를 업데이트하는 글로벌변수 관리부를 포함하고,
    상기 태스크 수행부는 상기 부태스크 주기의 시작 시에 첫 번째로 수행되는 주태스크 주기에서 상기 부태스크를 수행 시, 상기 글로벌변수에 저장된 정보에 기초하여 상기 부태스크를 수행하고, 상기 부태스크를 수행 완료하기 전에 상기 주태스크 주기가 종료되면 상기 부태스크를 유예하고, 상기 글로벌변수의 업데이트를 배제시키며,
    상기 태스크 수행부는 두 번째로 수행되는 주태스크 주기에서 상기 부태스크를 수행 시, 상기 주태스크에 의해 유예된 상태의 부태스크가 존재하는 경우, 상기 여분기간 동안 상기 글로벌변수에 저장된 정보를 배제한 상태에서 상기 유예된 부태스크를 수행하고, 상기 부태스크를 수행 완료하기 전에 상기 소정의 주태스크 주기가 종료되면 상기 수행중인 부태스크를 유예하고, 상기 글로벌변수의 업데이트를 배제시키며,
    상기 태스크 수행부는 상기 부태스크 주기의 종료 시에 마지막 번째로 수행되는 주태스크 주기에서 상기 유예된 부태스크가 있는 경우 상기 유예된 부태스크를 수행 완료하여 부결과값을 생성하고, 상기 부결과값으로 상기 글로벌변수를 업데이트시키는 감시제어장치.
  2. 제 1 항에 있어서,
    상기 태스크 수행부는
    상기 소정의 주태스크 주기에서, 상기 글로벌변수에 저장된 정보에 기초하여 상기 주태스크를 수행하고, 상기 주태스크를 수행 완료하여 주결과값을 생성하며, 상기 주결과값을 상기 글로벌변수 관리부에 전달하고,
    상기 글로벌변수 관리부는 상기 전달된 주결과값으로 상기 글로벌변수를 업데이트하는 감시제어장치.
  3. 제 1 항에 있어서,
    상기 태스크 수행부는 상기 주태스크에 의해 유예된 상태의 부태스크가 존재하지 않는 경우, 상기 소정의 주태스크 주기의 상기 여분기간 동안 상기 글로벌변수에 저장된 정보에 기초하여 상기 부태스크의 수행을 시작하는 감시제어장치.
  4. 제 1 항에 있어서,
    상기 태스크 수행부는 상기 소정의 주태스크 주기의 상기 여분기간 동안 상기 부태스크를 수행 완료하여 상기 글로벌변수에 대응하는 부결과값을 생성하는 경우, 상기 부결과값을 상기 글로벌변수 관리부에 전달하고,
    상기 글로벌변수 관리부는 상기 전달된 부결과값으로 상기 글로벌변수를 업데이트하는 감시제어장치.
  5. 제 1 항에 있어서,
    상기 태스크 수행부는 상기 수행중인 부태스크를 유예하는 경우, 상기 부태스크에 의해 상기 글로벌변수에 대응하고 상기 글로벌변수에 저장된 정보와 상이한 유예결과값을 상기 글로벌변수 관리부에 전달하지 않는 감시제어장치.
  6. 제 1 항에 있어서,
    상기 태스크 수행부는 상기 글로벌변수에 대한 변경 권한을 소유하는 주태스크를 수행하는 경우, 상기 글로벌변수에 대응하고 상기 글로벌변수에 저장된 정보와 상이한 중간결과값이 생성되면, 상기 중간결과값을 상기 글로벌변수 관리부에 전달하고,
    상기 글로벌변수 관리부는 상기 전달된 중간결과값으로 상기 글로벌변수를 업데이트하는 감시제어장치.
KR1020160095641A 2016-07-27 2016-07-27 감시제어장치 KR102492399B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160095641A KR102492399B1 (ko) 2016-07-27 2016-07-27 감시제어장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160095641A KR102492399B1 (ko) 2016-07-27 2016-07-27 감시제어장치

Publications (2)

Publication Number Publication Date
KR20180012600A KR20180012600A (ko) 2018-02-06
KR102492399B1 true KR102492399B1 (ko) 2023-01-26

Family

ID=61228196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160095641A KR102492399B1 (ko) 2016-07-27 2016-07-27 감시제어장치

Country Status (1)

Country Link
KR (1) KR102492399B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115061794A (zh) * 2020-09-29 2022-09-16 展讯通信(上海)有限公司 调度任务及训练神经网络模型的方法、装置、终端和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099434A (ja) 2000-09-25 2002-04-05 Matsushita Electric Ind Co Ltd 制御装置
JP2002149421A (ja) * 2000-11-15 2002-05-24 Denso Corp 情報処理装置
JP2008226023A (ja) 2007-03-14 2008-09-25 Kansai Electric Power Co Inc:The ジョブ割当装置、及びジョブ割当方法
JP2012108582A (ja) * 2010-11-15 2012-06-07 Denso Corp 情報処理装置
JP2012194683A (ja) 2011-03-15 2012-10-11 Omron Corp 制御装置およびシステムプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099434A (ja) 2000-09-25 2002-04-05 Matsushita Electric Ind Co Ltd 制御装置
JP2002149421A (ja) * 2000-11-15 2002-05-24 Denso Corp 情報処理装置
JP2008226023A (ja) 2007-03-14 2008-09-25 Kansai Electric Power Co Inc:The ジョブ割当装置、及びジョブ割当方法
JP2012108582A (ja) * 2010-11-15 2012-06-07 Denso Corp 情報処理装置
JP2012194683A (ja) 2011-03-15 2012-10-11 Omron Corp 制御装置およびシステムプログラム

Also Published As

Publication number Publication date
KR20180012600A (ko) 2018-02-06

Similar Documents

Publication Publication Date Title
JP4715758B2 (ja) 仮想計算機システムのプロセッサキャッピング方法
CN111240935B (zh) 一种自动化智能运维系统及运维方法
CN106325992A (zh) 一种计算分布式环境长任务进度的方法
KR102492399B1 (ko) 감시제어장치
CN112000453A (zh) 一种流计算系统的调度方法和系统
JP5669987B1 (ja) 制御装置、開発装置、および開発プログラム
EP0880094B1 (en) Control system
US9389604B2 (en) Method and system for the dynamic allocation of program functions in distributed control systems
US20170132030A1 (en) Virtual machine system, control method thereof, and control program recording medium thereof
US20050050541A1 (en) Method of and apparatus for task control, and computer product
US9128757B2 (en) Method and lightweight mechanism for mixed-critical applications
CN112823337A (zh) 用于数据处理的方法和可编程的控制装置
US11934182B2 (en) Method for computer-supported simulation of operation of a machine working in an automated manner
JP6981290B2 (ja) スレーブ装置、制御システム、レスポンスデータの通信方法、および、レスポンスデータの通信プログラム
US9557727B2 (en) Program creation device and programmable logic controller
JP2008234276A (ja) ジョブスケジュールの運用テストシステム
CN110971660B (zh) 多服务器控制方法及装置
CN112231087A (zh) 任务调度方法、装置、设备及存储介质
Petronijević et al. Integrated process planning and scheduling using multi-agent methodology
CN106325217B (zh) 具有学习存储器切换功能的伺服控制系统
JP6812727B2 (ja) 安全制御ユニット、安全制御方法、安全制御プログラム
CN111565148B (zh) 一种段路由控制方法、段路由节点及控制器
WO2018061537A1 (ja) 制御ユニット、データリフレッシュ方法、データリフレッシュプログラム
US20220171361A1 (en) Control system, relay device, and relay program
CN113985826B (zh) 面向多运算周期的实时值加载方法和系统、设备及存储介质

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