KR20190095507A - 컨트롤러 - Google Patents

컨트롤러 Download PDF

Info

Publication number
KR20190095507A
KR20190095507A KR1020197022680A KR20197022680A KR20190095507A KR 20190095507 A KR20190095507 A KR 20190095507A KR 1020197022680 A KR1020197022680 A KR 1020197022680A KR 20197022680 A KR20197022680 A KR 20197022680A KR 20190095507 A KR20190095507 A KR 20190095507A
Authority
KR
South Korea
Prior art keywords
task
execution
priority
information
management table
Prior art date
Application number
KR1020197022680A
Other languages
English (en)
Other versions
KR102054832B1 (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 미쓰비시덴키 가부시키가이샤
Publication of KR20190095507A publication Critical patent/KR20190095507A/ko
Application granted granted Critical
Publication of KR102054832B1 publication Critical patent/KR102054832B1/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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • 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
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • 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
    • 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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/13Plc programming
    • G05B2219/13086Priority interrupt
    • 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/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25419Scheduling

Landscapes

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

Abstract

컨트롤러(1)는 태스크의 우선도의 정보를 포함하는 태스크 정보가 등록되는 태스크 실행 관리 테이블(12)과, 태스크 실행 관리 테이블(12)에 추가하는 새로운 태스크 정보를 취득하는 신규 태스크 취득부(16)와, 새로운 태스크 정보에 포함되는 우선도를 가우선도로 변경하고 새로운 태스크 정보를 태스크 실행 관리 테이블(12)에 가등록하는 가우선도 설정부(13)와, 가등록한 새로운 태스크 정보에 대응하는 태스크인 추가 태스크의 실행이 기존의 태스크의 실행에 주는 영향을 감시하는 태스크 실행 감시부(14)를 구비한다.

Description

컨트롤러
본 발명은 대상 기기를 제어하는 컨트롤러에 관한 것이다.
특허 문헌 1에는, 유저의 편리성을 향상시키는 것이 가능한 컨트롤러, 구체적으로는, 태스크의 우선도 및 실행 주기와 같은 프로그램의 실행 조건을 유저 프로그램의 실행 중에 변경 가능하게 한 컨트롤러가 개시되어 있다. 특허 문헌 1에 기재된 컨트롤러가 실행하는 유저 프로그램에는, 프로그램의 실행 조건을 변경하기 위한 명령을 포함할 수 있다. 즉, 특허 문헌 1에 기재된 컨트롤러는, 실행하는 유저 프로그램에 프로그램의 실행 조건을 변경하기 위한 명령이 포함되어 있는 경우, 태스크의 우선도 및 실행 주기 중 적어도 한쪽을 수정하고, 유저 프로그램을 실행한다. 컨트롤러는 태스크마다 규정된 실행 주기 내에 각 태스크를 완료시킬 필요가 있다.
특허 문헌 1: 일본 특개 2015-176191호 공보
생산 현장에 있어서 기기를 제어하는 컨트롤러는, 유저 프로그램의 실행 중, 즉 태스크를 실행하고 있는 도중에, 실행 중인 기존의 태스크와는 다른 태스크를 새롭게 실행하도록 설정이 변경되는 경우가 있다. 그렇지만, 기존의 태스크가, 추가된 태스크, 즉 새롭게 실행하도록 설정된 태스크의 영향을 받아 결함이 생길 가능성이 있다. 예를 들면, 컨트롤러가 우선도에 기초하여 태스크를 스케줄링하는 경우, 새롭게 실행하도록 추가되는 태스크보다도 우선도가 낮은 기존의 태스크의 실행 타이밍이 늦어져, 규정된 실행 주기 내에 태스크를 완료시킬 수 없게 될 가능성이 있다. 기존의 태스크를 규정된 실행 주기 내에 완료시킬 수 없게 되면, 생산 정지, 생산 효율 저하, 절삭 가공을 행하는 장치를 제어하는 경우에 가공 정밀도가 낮아진다고 하는 문제가 생긴다. 그 때문에, 실행할 태스크를 추가하는 경우에는, 기존의 태스크에 영향을 주지 않는지 여부를 사전에 확인하여, 영향을 주지 않는 것을 알았을 경우에 추가를 실시하는 것이 바람직하다. 이 경우의 기존의 태스크에 영향을 준다란, 실행하는 태스크의 추가에 의해서 1이상의 기존의 태스크를 정상으로 실행할 수 없게 되는 것, 구체적으로는, 규정된 실행 주기 내에 태스크를 종료시킬 수 없게 되는 것을 말한다. 덧붙여, 이하의 설명에 있어서는, 태스크의 실행을 종료시키는 기한을 데드라인이라고 칭하는 경우가 있다.
본 발명은 상기를 감안하여 이루어진 것으로서, 기존의 태스크로의 영향을 사전에 확인하고 나서 새로운 태스크를 실행하도록 설정을 변경하는 것이 가능한 컨트롤러를 얻는 것을 목적으로 한다.
상술한 과제를 해결하여, 목적을 달성하기 위해서, 본 발명에 따른 컨트롤러는, 태스크의 우선도의 정보를 포함하는 태스크 정보가 등록되는 태스크 실행 관리 테이블과, 태스크 실행 관리 테이블에 추가하는 새로운 태스크 정보를 취득하는 신규 태스크 취득부를 구비한다. 또, 컨트롤러는 새로운 태스크 정보에 포함되는 우선도를 가(假, temporary)우선도로 변경하여 새로운 태스크 정보를 태스크 실행 관리 테이블에 가등록하는 가우선도 설정부와, 가등록한 새로운 태스크 정보에 대응하는 태스크인 추가 태스크의 실행이 기존의 태스크의 실행에 주는 영향을 감시하는 태스크 실행 감시부를 구비한다.
본 발명에 의하면, 기존의 태스크로의 영향을 사전에 확인하고 나서 새로운 태스크를 실행하도록 설정을 변경하는 것이 가능한 컨트롤러를 얻을 수 있다고 하는 효과를 달성한다.
도 1은 본 발명의 실시 형태에 따른 컨트롤러의 하드웨어 구성을 나타내는 도면이다.
도 2는 컨트롤러의 기능 블록 구성의 일례를 나타내는 도면이다.
도 3은 태스크 실행 관리 테이블의 일례를 나타내는 도면이다.
도 4는 신규 태스크 추가 윈도우의 일례를 나타내는 도면이다.
도 5는 컨트롤러의 동작의 일례를 나타내는 순서도이다.
도 6은 가우선도 설정부의 동작의 일례를 나타내는 순서도이다.
도 7은 태스크 실행 감시부의 동작의 일례를 나타내는 순서도이다.
도 8은 태스크를 추가하기 전의 컨트롤러의 동작의 일례를 나타내는 도면이다.
도 9는 태스크를 추가하는 동작을 실행 중인 컨트롤러의 동작의 일례를 나타내는 도면이다.
도 10은 태스크를 추가한 후의 컨트롤러의 동작의 일례를 나타내는 도면이다.
이하에, 본 발명의 실시 형태에 따른 컨트롤러를 도면에 기초하여 상세하게 설명한다. 덧붙여, 이 실시 형태에 의해 이 발명이 한정되는 것은 아니다.
실시 형태.
도 1은 본 발명의 실시 형태에 따른 컨트롤러의 하드웨어 구성을 나타내는 도면이다. 컨트롤러(1)는 CPU(Central Processing Unit)(101), 메모리(102), 입출력 인터페이스(103) 및 필드 통신 인터페이스(104)로 구성된다. CPU(101)에는 메모리(102)가 접속되어 있다. 또, CPU(101)와, 입출력 인터페이스(103) 및 필드 통신 인터페이스(104)는 버스(105)로 접속되어 있다.
CPU(101)는 메모리(102)에 기억한 OS(Operating System) 및 유저 프로그램과 같은 프로그램을 실행한다. 입출력 인터페이스(103)는 도시를 생략한 제어 대상의 장치를 접속하는 인터페이스이다. 입출력 인터페이스(103)는 CPU(101)가 실행하는 프로그램에 따라 I/O(Input/Output) 제어용의 입출력을 행함으로써, 접속된 장치의 제어를 행한다. 또, 필드 통신 인터페이스(104)는 CPU(101)가 실행하는 프로그램에 따라서, 다른 컨트롤러나 정보 시스템과의 통신을 행한다.
도 2는 컨트롤러(1)의 기능 블록 구성의 일례를 나타내는 도면이다. 컨트롤러(1)는 스케쥴러(11)를 포함한 태스크 실행부(10), 태스크 실행 관리 테이블(12), 가우선도 설정부(13), 태스크 실행 감시부(14), 태스크 실행 상태 기억부(15) 및 신규 태스크 취득부(16)를 구비한다. 이들 기능 블록은, 리얼타임 OS 등인 OS(17)에 의해 실현된다. 즉, 컨트롤러(1)로서 동작하기 위한 프로그램이 리얼타임 OS 등인 OS(17)상에서 실행됨으로써, 상기의 각 기능 블록이 실현된다. 도 2에 나타낸 태스크(19)는, 상기의 각 기능 블록의 상위에서 동작하는 유저 프로그램 등의 태스크이다. 태스크란 컨트롤러(1)상의 프로그램 실행 단위이며, 다음에 실행하는 프로그램을 태스크 실행부(10)의 스케쥴러(11)가 선택할 때의 단위이다. 태스크는 일반적으로는 시스템 처리를 행하는 태스크와, 컨트롤러(1)의 유저가 독자적으로 작성하는 태스크가 있고, 1개 또는 복수 실행된다. 실행해야 할 태스크의 구성은, 컨트롤러(1)의 사양 및 용도에 따라서 다양하고, 특히 한정되지 않는다.
태스크 실행부(10)는 태스크 실행 관리 테이블(12)에 등록된 태스크 정보에 기초하여, 스케쥴러(11)로 태스크의 실행 순서를 결정하여, 태스크를 실행한다. 도 3은 태스크 실행 관리 테이블(12)의 일례를 나타내는 도면이다. 도 3에 나타낸 것처럼, 태스크 실행 관리 테이블(12)에 등록되는 태스크 정보는, 태스크의 명칭, 우선도 및 실행 주기로 구성된다. 도 3은 태스크 A의 태스크 정보, 태스크 B의 태스크 정보 및 태스크 C의 태스크 정보가 등록된 태스크 실행 관리 테이블(12)의 예를 나타내고 있다. 태스크 실행 관리 테이블(12)에 등록된 태스크 정보는, 태스크의 정지 중 뿐만이 아니라 실행 중에도 외부로부터의 재기입이 가능하고, 이것에 의해, 유저는 태스크의 실행 순서를 변경할 수 있다. 또, 태스크 실행 관리 테이블(12)에 태스크 정보를 등록함으로써, 등록한 태스크 정보에 대응하는 태스크가 스케줄링되고, 스케줄링에 따라서 실행되도록 할 수 있다. 또, 태스크 실행 관리 테이블(12)에 등록된 태스크 정보를 삭제함으로써, 삭제한 태스크 정보에 대응하는 태스크가 실행되지 않도록 할 수 있다.
태스크의 우선도는, 실행하는 태스크를 스케쥴러(11)가 선택하기 위한 지표이며, 스케쥴러(11)는 실행 가능한 태스크 중에서 가장 우선도가 높은 태스크를 선택한다. 태스크의 우선도는, 예를 들면 0에서 255까지 등의 복수의 단계가 있고, 이 값이 작은 태스크일수록 우선도가 높아, 우선하여 스케줄링된다. 스케쥴러(11)가 행하는 스케줄링은, 선점(preemptive) 가능한 스케줄링, 즉, 태스크의 실행 중에, 보다 우선도가 높은 태스크가 실행 가능한 상태가 되면, 실행 중인 태스크보다도 우선도가 높은 태스크의 실행으로 즉시 전환하는 방식의 스케줄링을 상정한다. 태스크 실행 관리 테이블(12)이 도 3에 나타낸 것인 경우, 태스크 A가 가장 우선도가 높고, 다음에 태스크 B의 우선도가 높다. 또, 태스크 A~C 중에서는 태스크 C의 우선도가 가장 낮다.
컨트롤러(1)의 태스크는, 예를 들면 일정 간격으로 피드백 제어를 행하는 태스크와 같이, 반복하여 실행되지 않으면 안 된다. 이 실행의 시간 간격, 즉 당해 태스크를 실행 가능하게 하고 나서, 다음에 같은 태스크를 실행 가능하게 할 때까지의 시간이, 도 3에 나타낸 실행 주기이다. 태스크의 실행 주기는, 당해 태스크에 요구되는 제어의 정밀도 등을 감안하여, 유저에 의해서 설정된다. 태스크 실행 관리 테이블(12)이 도 3에 나타낸 것인 경우, 태스크 A는 1s 마다 실행 가능한 상태가 된다. 마찬가지로, 태스크 B는 4s 마다 실행 가능한 상태가 되고, 태스크 C는 8s 마다 실행 가능한 상태가 된다.
덧붙여, 본 실시 형태에서는 태스크 실행부(10)가 스케쥴러(11)를 구비한 구성으로 하고 있지만, 스케쥴러(11)와 태스크 실행부(10)를 별개의 구성으로 해도 된다.
이어서, 컨트롤러(1)의 동작예, 구체적으로는, 복수의 태스크가 동작하고 있는 상태에서, 컨트롤러(1)의 유저가 새롭게 태스크를 추가하는 경우의 동작에 대해 설명한다. 추가하는 태스크에는, 유저에 의해서, 설정해야 할 우선도인 목표 우선도가 미리 정해진다. 유저는 추가하는 태스크의 처리의 내용을 감안하여, 태스크가 필요한 타이밍에 동작하도록, 목표 우선도를 정한다. 목표 우선도를 정하는 방법은 본 발명의 범위 밖이다.
컨트롤러(1)가 실행할 태스크를 추가하는 경우, 유저는 컨트롤러(1)의 설정을 행하기 위한 애플리케이션 소프트웨어인 엔지니어링 툴을 사용한다. 이 애플리케이션 소프트웨어는, 도 1에 나타낸 필드 통신 인터페이스(104)를 통해서 컨트롤러(1)에 접속된 퍼스널 컴퓨터로 실행된다.
컨트롤러(1)의 설정을 행하기 위한 엔지니어링 툴은, 컨트롤러(1)에 태스크 정보를 추가하는 동작의 개시를 지시하는 조작이 행해진 것을 검출하면, 도 4에 나타낸 신규 태스크 추가 윈도우(1000)를 표시한다. 신규 태스크 추가 윈도우(1000)는 추가 태스크의 설정 영역(1001)과, 우선도의 설정 영역(1002)과, 실행 주기의 지정 영역(1003)과, 태스크의 추가 동작의 개시 지시를 접수하는 실행 버튼(1004)과, 추가 결과를 표시하는 표시 영역(1005)을 포함한다. 추가 태스크의 설정 영역(1001)은 유저가 추가하려고 하는 태스크를, 예를 들면 당해 태스크의 엔트리 포인트명 또는 실행 파일명의 입력에 의해 유저가 지정하는 영역이다. 우선도의 설정 영역(1002)은 추가하는 태스크의 본래의 우선도를 유저가 지정하는 영역이다. 실행 주기의 지정 영역(1003)은 설정해야 할 실행 주기를 유저가 지정하는 영역이다.
유저는 추가 태스크의 설정 영역(1001), 우선도의 설정 영역(1002) 및 실행 주기의 지정 영역(1003)에 대해서 필요한 정보를 입력한다. 정보의 입력은 각 설정 영역에 포함되는 지정 버튼을 누름으로써 종료가 된다. 이 때, 엔지니어링 툴은 입력된 정보가 올바른지 여부를 판정하여, 정보가 올바르지 않은 경우에는 그 취지를 표시하는 등 하여 재입력을 촉구해도 된다. 입력된 정보가 올바르지 않은 경우란, 예를 들면, 지정 가능한 범위에 포함되지 않는 값의 우선도가 입력되었을 경우가 해당한다. 유저는 우선도의 설정 영역(1002) 및 실행 주기의 지정 영역(1003)에 대해서 필요한 정보의 입력이 완료되면, 실행 버튼(1004)을 누른다. 이 조작을 접수한 엔지니어링 툴은, 입력된 정보, 즉, 추가하는 태스크의 명칭, 우선도 및 실행 주기를 포함한 태스크 정보를 생성하여, 컨트롤러(1)를 향해서 송신한다. 이 결과, 컨트롤러(1)에서는, 후술하는 처리를 실행하여 태스크의 추가, 즉 엔지니어링 툴로부터 수신한 태스크 정보의 태스크 실행 관리 테이블(12)로의 추가가 행해진다. 덧붙여, 컨트롤러(1)에서는, 신규 태스크 취득부(16)가 엔지니어링 툴로부터 송신된 태스크 정보를 수신한다. 엔지니어링 툴은 태스크의 추가 처리의 결과가 컨트롤러(1)로부터 송신되어 오면, 추가 처리의 결과를 신규 태스크 추가 윈도우(1000)의 표시 영역(1005)에 표시한다.
컨트롤러(1)의 설명으로 돌아가, 컨트롤러(1)는 추가하는 태스크의 태스크 정보를 엔지니어링 툴로부터 수취하면, 도 5에 나타낸 절차를 실행한다. 도 5는 컨트롤러(1)의 동작의 일례를 나타내는 순서도이다. 보다 상세하게는, 도 5는 컨트롤러(1)가 엔지니어링 툴로부터 수취한 태스크 정보를 태스크 실행 관리 테이블(12)에 추가 등록하는 것이 가능한지 여부를 판정하고, 추가 등록이 가능한 경우에 태스크 정보를 등록하는 동작을 나타내는 순서도이다. 덧붙여, 「태스크 정보를 태스크 실행 관리 테이블(12)에 추가 등록하는 것이 가능」이란, 태스크 정보를 추가 등록함으로써 새로운 태스크를 실행하게 되어도, 모든 태스크를 정상으로 실행할 수 있는 경우를 말한다. 「모든 태스크」란, 태스크 정보를 추가 등록함으로써 새롭게 실행하게 되는 태스크, 및 그때까지 실행되고 있던 기존의 태스크를 합친 것이다. 「태스크를 정상으로 실행할 수 있다」란, 태스크를 개시하고 나서 종료할 때까지의 동작을, 태스크에 대응하는 태스크 정보에 포함되는 실행 주기 내에 완료할 수 있는 것을 말한다. 예를 들면, 도 3에 나타낸 태스크 A의 경우, 태스크 A가 실행 가능한 상태가 되고 나서 태스크 A가 종료될 때까지의 시간이 1s 이내이면, 태스크 A를 정상으로 실행할 수 있던 것이 된다.
추가하는 태스크의 태스크 정보를 컨트롤러(1)가 수취하면, 우선, 가우선도 설정부(13)가 추가하는 태스크의 가우선도를 결정한다(스텝 S1). 가우선도란, 엔지니어링 툴로부터 수취한 태스크 정보에 대응하는 태스크의 추가가 가능한지 여부를 판별하는 처리에서 사용하는 우선도이며, 가우선도 설정부(13)는 기존의 태스크의 실행 타이밍에 영향을 주지 않는 값을 가우선도로 결정한다. 이하, 추가하는 태스크를 추가 태스크라고 칭하고, 추가하는 태스크의 태스크 정보를 추가 태스크 정보라고 칭한다. 이 스텝 S1에 있어서, 가우선도 설정부(13)는, 도 6에 나타낸 절차로 가우선도를 결정한다.
도 6은 가우선도 설정부(13)의 동작의 일례를 나타내는 순서도이다. 가우선도 설정부(13)는 신규 태스크 취득부(16)를 통해서 엔지니어링 툴로부터 추가 태스크 정보를 수취하면, 우선, 태스크 실행 관리 테이블(12)로부터 모든 태스크의 우선도를 취득한다(스텝 S11). 즉, 가우선도 설정부(13)는 태스크 실행 관리 테이블(12)에 등록되어 있는 모든 태스크 정보로부터, 태스크 정보에 포함되어 있는 우선도를 취득한다. 가우선도 설정부(13)는, 다음에, 취득한 모든 태스크의 우선도 중의 가장 낮은 우선도보다도 낮아지도록, 추가 태스크의 가우선도를 결정한다(스텝 S12). 가우선도 설정부(13)는 취득한 우선도 중의 가장 낮은 우선도보다도 1만큼 낮아지도록, 추가 태스크의 가우선도를 결정하면 된다. 즉, 가우선도 설정부(13)는 취득한 우선도 중의 가장 낮은 우선도에 1을 가산한 것을 추가 태스크의 가우선도로 결정한다. 가우선도 설정부(13)는 취득한 우선도 중의 가장 낮은 우선도보다도 추가 태스크의 우선도가 낮은 경우, 추가 태스크의 우선도를 그대로 가우선도로 결정해도 된다.
도 5에 나타낸 순서도의 설명으로 돌아가, 가우선도 설정부(13)는, 다음에, 추가 태스크 정보에 포함되는 우선도를 스텝 S1에서 산출한 가우선도로 변경하여, 변경 후의 추가 태스크 정보를 태스크 실행 관리 테이블(12)에 가등록한다(스텝 S2).
다음에, 스케쥴러(11)가 태스크 실행 관리 테이블(12)에 가등록된 추가 태스크 정보에 대응하는 추가 태스크를 스케줄링한다(스텝 S3). 덧붙여, 스케쥴러(11)는 추가 태스크 이외의 기존의 태스크에 대해서도 스케줄링을 행한다. 그 후, 추가 태스크는 스케줄링 결과에 따라서 주기적으로 실행된다.
태스크 실행 감시부(14)는 추가 태스크의 실행 완료 타이밍을 감시하여, 감시 결과, 즉 추가 태스크의 실행 완료 타이밍의 정보를, 태스크 실행 상태 기억부(15)에 등록한다. 또, 태스크 실행 감시부(14)는 등록한 정보를 분석한다(스텝 S4). 이 스텝 S4에 있어서, 태스크 실행 감시부(14)는, 도 7에 나타낸 각 스텝의 처리를 실행하여, 태스크 실행 관리 테이블(12)에 가등록한 추가 태스크 정보를 정식으로 등록하는 것이 가능한지 여부를 판정한다.
도 7은 태스크 실행 감시부(14)의 동작의 일례를 나타내는 순서도이다. 태스크 실행 감시부(14)는, 우선, 태스크 실행 관리 테이블(12)에 가등록된 추가 태스크 정보에 기초하여, 추가 태스크의 데드라인을 산출한다(스텝 S21). 태스크 실행 감시부(14)는, 추가 태스크가 실행 가능해지는 타이밍에 실행 주기를 가산하여 데드라인을 산출한다. 가등록된 추가 태스크 정보에 포함되는 우선도는 다른 태스크 정보에 포함되는 어느 우선도보다도 낮기 때문에, 태스크 실행 감시부(14)는 태스크 실행 관리 테이블(12)에 등록된 태스크 정보 중, 어느 태스크 정보가 가등록된 추가 태스크 정보인지를 판별할 수 있다. 덧붙여, 태스크 실행 감시부(14)는 태스크 실행 관리 테이블(12)에 가등록된 추가 태스크 정보에 기초하여 추가 태스크의 데드라인을 산출하는 것이 아니라, 가우선도 설정부(13)로부터 출력되는 추가 태스크 정보에 기초하여 추가 태스크의 데드라인을 산출해도 된다.
태스크 실행 감시부(14)는, 다음에, 추가 태스크의 데드라인 달성을 판단하기까지 필요한 검증 횟수, 즉 추가 태스크의 실행 횟수(L)와, 만족해야 할 데드라인 달성 횟수의 기준치(M)를 결정한다(스텝 S22). 이것은, 추가 태스크의 실행 시간의 변동을 고려하여, 데드라인 달성을 통계적으로 적절히 판단하기 위함이다. 실행 횟수 L 및 기준치 M의 결정 방법으로서는, 예를 들면 추가 태스크의 실행 시간이 정규 분포에 기초하여 분포한다고 가정하고, 유저가 요구하는 신뢰도에 기초하여, 추가 태스크의 실행 횟수 L 및 데드라인 달성 횟수의 기준치 M을 산출하는 방법이 있다. 이 방법에서 필요한 실행 횟수 및 데드라인 달성 횟수를 결정하는 경우, 태스크 실행 감시부(14)는 유저가 요구하는 신뢰도의 정보를 미리 유지하고 있는 것으로 한다.
태스크 실행 감시부(14)는, 다음에, 태스크 실행부(10)로부터, 추가 태스크의 실행 완료 타이밍의 정보를 취득한다. 또, 취득한 정보를, 분석에 이용할 수 있도록, 태스크 실행 상태 기억부(15)에 등록한다(스텝 S23).
태스크 실행 감시부(14)는, 다음에, 태스크 실행 상태 기억부(15)에 등록한 정보의 수, 즉, 추가 태스크의 실행 완료 타이밍의 정보의 수(N)가, 상기의 스텝 S22에서 결정한 추가 태스크의 실행 횟수 L과 같게 됐는지 여부를 확인한다(스텝 S24). 태스크 실행 감시부(14)는 N=L이 아닌 경우(스텝 S24:No), 스텝 S23으로 돌아가, 추가 태스크의 실행 완료 타이밍의 정보를 취득하여 태스크 실행 상태 기억부(15)에 등록하는 처리를 재차 실행한다. 태스크 실행 감시부(14)는 N=L인 경우(스텝 S24:Yes), 추가 태스크의 데드라인 달성 횟수를 산출한다(스텝 S25). 태스크 실행 감시부(14)는, 스텝 S25에 있어서, 태스크 실행 상태 기억부(15)에 등록되어 있는 N개의 정보를 분석하여, 추가 태스크가 실행 가능해지고 나서 추가 태스크가 완료될 때까지의 길이가 데드라인 미만인 정보의 수를 산출하여, 그것을 데드라인 달성 횟수로 한다. 덧붙여, 태스크 실행 감시부(14)는 태스크 실행 관리 테이블(12)에 가등록되어 있는 추가 태스크의 실행 주기에 기초하여 추가 태스크가 실행 가능해지는 타이밍을 구한다.
태스크 실행 감시부(14)는, 다음에, 스텝 S25에서 산출한 데드라인 달성 횟수가 스텝 S22에서 결정한 데드라인 달성 횟수의 기준치 M 이상인지 여부를 확인한다(스텝 S26). 태스크 실행 감시부(14)는 M≤데드라인 달성 횟수인 경우(스텝 S26:Yes), 추가 태스크가 데드라인을 만족한다고 판단한다(스텝 S27). 추가 태스크가 데드라인을 만족하는 경우, 추가 태스크를 정식으로 추가했다고 하더라도 모든 태스크를 정상으로 실행할 수 있다, 즉, 모든 태스크가 태스크마다의 데드라인을 만족하게 된다. 한편, 데드라인 달성 횟수<M인 경우(스텝 S26:No), 태스크 실행 감시부(14)는, 추가 태스크가 데드라인을 만족하지 않는다고 판단한다(스텝 S28). 추가 태스크가 데드라인을 만족하지 않는 경우, 추가 태스크를 정식으로 추가하면, 정상으로 실행할 수 없는 태스크가 발생하는, 즉, 데드라인을 만족하지 않는 태스크가 발생하게 된다. 추가 태스크가 데드라인을 만족하지 않는 경우는 추가 태스크를 정식으로 추가하면 결함이 생기기 때문에, 추가 태스크를 정식으로 추가할 수 없다.
도 5에 나타낸 순서도의 설명으로 돌아가, 스텝 S4에 있어서의 태스크 실행 감시부(14)의 분석 결과가, 추가 태스크가 데드라인을 만족하는 것을 나타내고 있는 경우(스텝 S5:Yes), 가우선도 설정부(13)가 추가 태스크의 본래의 우선도를 태스크 실행 관리 테이블(12)에 등록한다(스텝 S6). 즉, 가우선도 설정부(13)는 상기의 스텝 S2에서 가등록한 추가 태스크 정보에 포함되어 있는 가우선도를, 가우선도로 변경하기 전의 본래의 우선도로 변경하고, 추가 태스크 정보를 태스크 실행 관리 테이블(12)에 정식으로 등록한다. 또, 가우선도 설정부(13)는 태스크를 추가한 것을 유저에게 통지하고(스텝 S7), 동작을 종료한다. 스텝 S7에 있어서, 가우선도 설정부(13)는 엔지니어링 툴로부터 수취한 태스크 정보에 대응하는 태스크를 추가한 것을, 신규 태스크 취득부(16)를 통해서 엔지니어링 툴에 통지하여, 엔지니어링 툴의 도 4에 나타낸 신규 태스크 추가 윈도우(1000)에 표시시킨다. 덧붙여, 엔지니어링 툴은 신규 태스크 추가 윈도우(1000)의 표시 영역(1005)에, 태스크를 추가한 것을 표시한다. 덧붙여, 가우선도 설정부(13)는 스텝 S6과 스텝 S7을 동시에 실행해도 되고 스텝 S7을 스텝 S6 보다도 먼저 실행해도 된다. 또, 스텝 S7의 유저로의 통지는 가우선도 설정부(13)는 아니고 태스크 실행 감시부(14)가 행하도록 해도 된다.
이것에 대해서, 스텝 S4에 있어서의 태스크 실행 감시부(14)의 분석 결과가, 추가 태스크가 데드라인을 만족하지 않는 것을 나타내고 있는 경우(스텝 S5:No), 가우선도 설정부(13)는 태스크를 추가할 수 없는 것을 유저에게 통지한다(스텝 S8). 스텝 S8에 있어서, 가우선도 설정부(13)는 엔지니어링 툴로부터 수취한 태스크 정보에 대응하는 태스크를 추가할 수 없는 것을, 신규 태스크 취득부(16)를 통해서 엔지니어링 툴에 통지하여, 엔지니어링 툴의 도 4에 나타낸 신규 태스크 추가 윈도우(1000)에 표시시킨다. 또, 가우선도 설정부(13)는, 스텝 S2에서 가등록한 추가 태스크 정보를 태스크 실행 관리 테이블(12)로부터 삭제하고(스텝 S9), 동작을 종료한다. 덧붙여, 가우선도 설정부(13)는 스텝 S8과 스텝 S9를 동시에 실행해도 되고, 스텝 S9를 스텝 S8 보다도 먼저 실행해도 된다. 또, 스텝 S8의 유저로의 통지는 가우선도 설정부(13)가 아니라 태스크 실행 감시부(14)가 행하도록 해도 된다.
이어서, 컨트롤러(1)가 도 5에 나타낸 동작을 실행하여 태스크를 추가하는 경우의 구체적인 예에 대해서, 도 8~도 10을 이용하여 설명한다. 도 8은 태스크를 추가하기 전의 컨트롤러(1)의 동작의 일례를 나타내는 도면이다. 도 9는 도 5에 나타낸 태스크를 추가하는 동작을 실행 중인 컨트롤러(1)의 동작의 일례를 나타내는 도면이다. 도 10은 태스크를 추가한 후의 컨트롤러(1)의 동작의 일례를 나타내는 도면이다. 덧붙여, 설명을 간단화하기 위해, 추가 태스크가 데드라인을 만족하는지 여부를 검증하는 횟수는 1로 한다.
도 8에 나타낸 동작예에서는, 도 3에 나타낸 내용의 태스크 실행 관리 테이블(12)에 따라서 태스크 A, B 및 C를 실행하고 있는 상황을 상정하고, 가로축을 시간축으로 하고, 각 시점에서 동작하고 있는 태스크를 나타내고 있다. 따라서, 태스크 A의 우선도가 가장 높고, 다음에 태스크 B의 우선도가 높고, 태스크 C의 우선도가 가장 낮다. 또, 각 태스크의 데드라인은, 태스크가 실행 가능한 상태가 되고 나서, 실행 주기가 경과할 때까지로 한다. 따라서, 태스크 A의 데드라인은 1s, 태스크 B의 데드라인은 4s, 태스크 C의 데드라인은 8s가 된다. 도 8의 최상단에 기재한 A~C는, 태스크 A~C가 실행 가능해지는 타이밍을 나타내고 있다. 도 8의 예에서는, 시각 t=0 및 8의 타이밍에서 태스크 A~C의 모두가 실행 가능해진다. 또, 도 3에 나타낸 것처럼, 태스크 A의 실행 주기는 1s이기 때문에, 1s가 경과할 때마다 태스크 A가 실행 가능해진다. 또, 태스크 B는 4s가 경과할 때마다 실행 가능해지고, 태스크 C는 8s가 경과할 때마다 실행 가능해진다. 덧붙여, 도 8의 하단에 나타낸 시각은, 태스크 A~C의 모두가 실행 가능해지는 시각을 기준으로 한 경과 시각을 나타내고 있다. 덧붙여, 시각 t=0에서 실행 가능해진 태스크 A의 데드라인은 시각 t=1이고, 시각 t=0에서 실행 가능해진 태스크 B의 데드라인은 시각 t=4이고, 시각 t=0에서 실행 가능해진 태스크 C의 데드라인은 시각 t=8이다. 또, 도 8의 좌측에 나타낸 태스크 A~C의 오른쪽 괄호 안에 기재되어 있는 수치는, 각 태스크의 실행 주기 및 우선도를 나타내고 있다. 또, 도 8에서는, 흰색으로 칠한 사각형과 검정색으로 칠한 사각형을 조합하여 1개의 태스크를 나타내고 있고, 검정색으로 칠한 사각형은 태스크의 완료를 나타낸다. 또, 사각형의 근처 또는 안에 기재한 수치는, 태스크를 개시하고 나서 종료할 때까지의 시간을 나타낸다. 도 9 및 도 10도 마찬가지이다.
도 8에 나타낸 상태에서는, 태스크 A~C의 모두가 태스크마다의 데드라인까지 실행할 수 있어, 문제없다. 즉, 태스크 A는 실행 가능한 상태가 되자마자 개시되어, 200ms가 경과한 시점에서 종료되기 때문에, 데드라인인 1s를 만족하고 있다. 태스크 B는, 실행 가능한 상태가 되면, 우선도가 높은 태스크 A가 종료되는 200ms가 경과하면 개시된다. 그 후, 태스크 B는 실행 가능한 상태가 되고 나서 1000ms가 경과한 시점에서 종료되기 때문에, 데드라인인 4s를 만족하고 있다. 또, 태스크 C는 실행 가능한 상태가 되면, 우선도가 높은 태스크 A 및 B가 종료되는 1000ms가 경과하고, 1000ms가 경과한 시점에서 재차 실행 가능한 상태가 된 태스크 A가 종료되는 200ms가 추가로 경과하면 개시된다. 그 후, 태스크 C는 실행 가능한 상태가 되고 나서 1600ms가 경과한 시점에서 종료되기 때문에, 데드라인인 8s를 만족하고 있다.
도 9는 실행 주기가 2s인 태스크 X를 추가 태스크로 하고, 추가 태스크 정보를 태스크 실행 관리 테이블(12)에 가등록한 후의 컨트롤러(1)의 동작 상태를 나타내고 있다. 이것은, 도 5에 나타낸 스텝 S1~S3을 실행한 후의 동작 상태에 상당한다. 덧붙여, 추가 태스크 X의 본래의 우선도는, 태스크 A의 우선도와 태스크 B의 우선도 사이의 51인 것으로 한다. 기존의 태스크 A~C 중, 태스크 C의 우선도가 가장 낮은 101이기 때문에, 추가 태스크 X의 가등록된 추가 태스크 정보에 포함되는 가우선도는 102로 되어 있다. 이 경우, 추가 태스크 X는 태스크 C가 완료된 후에 실행되지만, 추가 태스크 X가 실행 가능해지고 나서 추가 태스크 X가 완료될 때까지의 소요 시간은 실행 주기 2s 미만으로 되어 있어, 데드라인을 만족하고 있다. 즉, 도 5에 나타낸 스텝 S4에 있어서의 분석 결과가, 추가 태스크 X가 데드라인을 만족하고 있는 것을 나타낸다. 이 경우, 기존의 모든 태스크(태스크 A, B 및 C)는 태스크 X를 추가했다고 하더라도 데드라인을 만족하게 된다. 따라서, 컨트롤러(1)는 태스크 X의 추가에 의한 기존 태스크로의 영향은 없다고 판단한다. 여기서의 「태스크 X의 추가에 의한 기존 태스크로의 영향」이란, 태스크 X의 추가에 따라서 기존 태스크 중 적어도 1개가 데드라인을 만족할 수 없게 되는 것이다. 태스크 X를 추가했다고 하더라도 모든 기존 태스크가 데드라인을 만족하는 경우는 「태스크 X의 추가에 의한 기존 태스크로의 영향」이 없는 경우에 해당한다. 한편, 태스크 X를 추가하면 1개 이상의 기존 태스크가 데드라인을 만족하지 않게 되는 경우는 「태스크 X의 추가에 의한 기존 태스크로의 영향」이 있는 경우에 해당한다. 태스크 X의 추가에 의한 기존 태스크로의 영향이 없는 경우, 컨트롤러(1)는, 도 5에 나타낸 스텝 S6에 있어서, 추가 태스크 X의 태스크 정보에 포함되는 우선도를 가우선도 102로부터 본래의 우선도 51로 변경하여, 태스크 실행 관리 테이블(12)에 정식으로 등록한다. 이 결과, 컨트롤러(1)의 동작은, 도 10에 나타낸 것이 된다.
도 10에 나타낸 예에서는, 추가된 태스크 X에 이어서 태스크 B를 개시한 후, 600ms가 경과한 시점에서, 우선도가 높은 태스크 A가 실행 가능하게 된다. 그 때문에, 컨트롤러(1)는 태스크 B를 일단 중단함과 아울러 태스크 A를 실행하고, 태스크 A가 완료된 후, 중단된 태스크 B의 나머지를 실행한다. 태스크 B는 2회로 나누어 실행되게 되지만, 실행 가능한 상태가 되고 나서 완료될 때까지의 소요 시간은 데드라인인 4s 보다도 짧아, 데드라인을 만족하고 있기 때문에 문제는 없다. 또, 태스크 B에 이어서 실행하는 태스크 C도 데드라인 8s를 만족하고 있다.
이상과 같이, 본 실시 형태에 따른 컨트롤러(1)는 태스크의 스케줄링에 사용하는 태스크 정보가 등록된 태스크 실행 관리 테이블(12)을 유지하고, 태스크 실행 관리 테이블(12)에 등록하는 새로운 태스크 정보를 외부, 구체적으로는 엔지니어링 툴로부터 수취한 경우, 수취한 태스크 정보인 추가 태스크 정보에 포함되는 우선도를, 태스크 실행 관리 테이블(12)에 등록 완료된 기존의 태스크 정보에 포함되는 어느 우선도보다도 낮은 가우선도로 변경하고, 변경 후의 추가 태스크 정보를 태스크 실행 관리 테이블(12)에 가등록한다. 그리고, 컨트롤러(1)는 태스크 실행 관리 테이블(12)에 따라서 기존의 태스크 및 추가하는 태스크를 실행하여, 추가하는 태스크를 정상으로 완료시킬 수 있었을 경우, 태스크의 추가가 기존의 태스크에 영향을 주지 않는, 즉, 태스크를 추가한 후도 모든 태스크를 정상으로 완료시킬 수 있다고 판단한다. 덧붙여, 모든 태스크란, 추가한 태스크 및 기존의 태스크이다. 컨트롤러(1)는 추가하는 태스크를 정상으로 완료시킬 수 있었을 경우, 추가 태스크 정보에 포함되는 우선도를 가우선도로부터 원래의 우선도인 본래의 우선도로 변경하여, 태스크 실행 관리 테이블(12)에 정식으로 등록한다. 한편, 컨트롤러(1)는 추가하는 태스크를 정상으로 완료시킬 수 없는 경우, 가등록한 추가 태스크 정보를 태스크 실행 관리 테이블(12)로부터 삭제한다. 이것에 의해, 컨트롤러(1)는 기존의 태스크에 큰 영향을 주지 않는 것을 확인하고 나서 새로운 태스크를 실행하도록 설정을 변경할 수 있다. 따라서, 생산 현장 등에서 컨트롤러(1)가 기기를 제어하고 있는 상태에 있어서, 기존의 기기를 정상으로 제어하는 상태를 유지하면서 새로운 태스크를 추가하여 실행할 수 있다.
덧붙여, 상술한 실시 형태에서는, 컨트롤러(1)는 새로운 태스크 정보를 수취하면, 수취한 태스크 정보인 추가 태스크 정보에 포함되는 우선도를 가우선도로 변경하여 태스크 실행 관리 테이블(12)에 가등록하는 것으로 했지만, 이 절차로 한정되지 않는다. 컨트롤러(1)는 새로운 태스크 정보를 수취하면, 우선, 수취한 태스크 정보인 추가 태스크 정보를 태스크 실행 관리 테이블(12)에 가등록하고, 추가로, 가등록한 추가 태스크 정보에 포함되는 우선도를 가우선도로 변경하도록 해도 상관없다.
이상의 실시 형태에 나타낸 구성은, 본 발명의 내용의 일례를 나타내는 것이며, 다른 공지의 기술과 조합하는 것도 가능하고, 본 발명의 요지를 일탈하지 않는 범위에서, 구성의 일부를 생략, 변경하는 것도 가능하다.
1: 컨트롤러 10: 태스크 실행부
11: 스케쥴러 12: 태스크 실행 관리 테이블
13: 가우선도 설정부 14: 태스크 실행 감시부
15: 태스크 실행 상태 기억부 16: 신규 태스크 취득부
17: OS 19: 태스크
101: CPU 102: 메모리
103: 입출력 인터페이스 104: 필드 통신 인터페이스
105: 버스

Claims (5)

  1. 태스크의 우선도의 정보를 포함하는 태스크 정보가 등록되는 태스크 실행 관리 테이블과,
    상기 태스크 실행 관리 테이블에 추가하는 새로운 태스크 정보를 취득하는 신규 태스크 취득부와,
    상기 새로운 태스크 정보에 포함되는 우선도를 가우선도로 변경하여 상기 새로운 태스크 정보를 상기 태스크 실행 관리 테이블에 가등록하는 가우선도 설정부와,
    상기 가등록한 상기 새로운 태스크 정보에 대응하는 태스크인 추가 태스크의 실행이 기존의 태스크의 실행에 주는 영향을 감시하는 태스크 실행 감시부를 구비하는 것을 특징으로 하는 컨트롤러.
  2. 태스크의 우선도의 정보를 포함하는 태스크 정보가 등록되는 태스크 실행 관리 테이블과,
    상기 태스크 실행 관리 테이블에 추가하는 새로운 태스크 정보를 취득하는 신규 태스크 취득부와,
    상기 새로운 태스크 정보를 상기 태스크 실행 관리 테이블에 가등록하고, 추가로, 가등록한 태스크 정보에 포함되는 우선도를 가우선도로 변경하는 가우선도 설정부와,
    상기 우선도를 상기 가우선도로 변경한 후의 상기 가등록한 상기 새로운 태스크 정보에 대응하는 태스크인 추가 태스크의 실행이 기존의 태스크의 실행에 주는 영향을 감시하는 태스크 실행 감시부를 구비하는 것을 특징으로 하는 컨트롤러.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 태스크 실행 감시부는, 상기 추가 태스크가 미리 설정된 태스크의 실행 주기 내에 완료될 수 있었을 경우, 기존의 태스크의 실행에 영향을 주지 않는다고 판단하는 것을 특징으로 하는 컨트롤러.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 가우선도 설정부는, 상기 가우선도를, 상기 태스크 실행 관리 테이블에 등록된 기존의 태스크 정보에 포함되는 어느 우선도보다도 낮은 우선도로 결정하는 것을 특징으로 하는 컨트롤러.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
    상기 가우선도 설정부는, 상기 추가 태스크의 실행이 기존의 태스크의 실행에 영향을 주지 않는 경우, 상기 가등록한 태스크 정보에 포함되는 우선도를, 상기 가우선도로 변경하기 전의 본래의 우선도로 변경하고, 변경 후의 태스크 정보를 상기 태스크 실행 관리 테이블에 정식으로 등록하는 것을 특징으로 하는 컨트롤러.
KR1020197022680A 2017-09-26 2017-09-26 컨트롤러 KR102054832B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/034771 WO2019064348A1 (ja) 2017-09-26 2017-09-26 コントローラ

Publications (2)

Publication Number Publication Date
KR20190095507A true KR20190095507A (ko) 2019-08-14
KR102054832B1 KR102054832B1 (ko) 2019-12-12

Family

ID=65356130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197022680A KR102054832B1 (ko) 2017-09-26 2017-09-26 컨트롤러

Country Status (6)

Country Link
US (1) US20190384637A1 (ko)
JP (1) JP6469323B1 (ko)
KR (1) KR102054832B1 (ko)
CN (1) CN110291474B (ko)
DE (1) DE112017006764T5 (ko)
WO (1) WO2019064348A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175072A (zh) * 2019-05-28 2019-08-27 广州小鹏汽车科技有限公司 任务执行方法、系统及车辆
JP2021096498A (ja) * 2019-12-13 2021-06-24 ファナック株式会社 制御装置、及び制御方法
JP7464386B2 (ja) * 2019-12-20 2024-04-09 ファナック株式会社 制御装置、及び制御方法
JP7237245B2 (ja) * 2020-05-13 2023-03-10 三菱電機株式会社 スケジューリング方法、および、スケジューリングシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5136693B2 (ja) * 2011-01-31 2013-02-06 トヨタ自動車株式会社 安全制御装置および安全制御方法
JP2015176191A (ja) 2014-03-13 2015-10-05 オムロン株式会社 コントローラ
JP2016066139A (ja) * 2014-09-24 2016-04-28 日立オートモティブシステムズ株式会社 車両制御装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010800A (ja) * 1998-06-19 2000-01-14 Toshiba Corp 計算機システムに於けるスレッド制御装置、及び同システムに於けるスレッド制御方法
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US7171479B2 (en) * 2002-04-26 2007-01-30 International Business Machines Corporation Efficient delivery of boot code images from a network server
JP4074296B2 (ja) * 2005-03-25 2008-04-09 株式会社東芝 スケジューリング可能性判定方法、リアルタイムシステム及びプログラム
KR101644800B1 (ko) * 2010-01-07 2016-08-02 삼성전자주식회사 컴퓨팅 시스템 및 방법
US9960965B2 (en) * 2011-02-04 2018-05-01 Arris Enterprises Llc Stateless admission control
US9268609B2 (en) * 2013-04-30 2016-02-23 Hewlett Packard Enterprise Development Lp Application thread to cache assignment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5136693B2 (ja) * 2011-01-31 2013-02-06 トヨタ自動車株式会社 安全制御装置および安全制御方法
JP2015176191A (ja) 2014-03-13 2015-10-05 オムロン株式会社 コントローラ
JP2016066139A (ja) * 2014-09-24 2016-04-28 日立オートモティブシステムズ株式会社 車両制御装置

Also Published As

Publication number Publication date
CN110291474B (zh) 2020-07-03
WO2019064348A1 (ja) 2019-04-04
JP6469323B1 (ja) 2019-02-13
JPWO2019064348A1 (ja) 2019-11-14
US20190384637A1 (en) 2019-12-19
CN110291474A (zh) 2019-09-27
KR102054832B1 (ko) 2019-12-12
DE112017006764T5 (de) 2019-11-14

Similar Documents

Publication Publication Date Title
KR102054832B1 (ko) 컨트롤러
US20150268996A1 (en) Real-Time Multi-Task Scheduling Method and Apparatus
US9904279B2 (en) Numerical control device provided with programmed machining restart function
CN100382033C (zh) 计算机系统
WO2007144936A1 (ja) プログラマブルロジックコントローラの周辺装置およびプログラムの自動検証方法
JP2012194680A (ja) 制御装置、制御システム、ツール装置および収集指示プログラム
JP6102980B2 (ja) 分析システム
US10114363B2 (en) Numerical controller capable of partial correction of machining cycle
US20160154404A1 (en) Numerical controller having parameter setting support function relating to cycle time
CN109313430B (zh) 加工时间计算装置及加工时间计算方法
US9223573B2 (en) Data processing device and method of controlling the same
US11194314B2 (en) Numerical control device
JP2007102384A (ja) デバッグ装置
EP2207070A1 (en) Field control device and field control method
US10394214B2 (en) Numerical controller temporarily stopping for a program call and numerical control method thereof
US20230333539A1 (en) Response analysis device
CN110109743B (zh) 一种实时进程调度方法
JPH04326434A (ja) ジョブ実行予測精度向上制御方法
US20150316917A1 (en) Controller that outputs switchover notification signal upon switching of sequence program
JP2018195138A (ja) タスク制御装置及びタスク制御方法
JP3607283B2 (ja) 制御ソフトウェア実行システムの制御方法
CN108345494B (zh) 一种定时执行代码的方法及装置
JPS6353653A (ja) 試験プログラム用スケジユ−ラ
CN114327626A (zh) 可编程逻辑控制器控制方法、装置、设备与可读存储介质
JP2000207003A (ja) プログラマブルコントロ―ラ

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right