KR100258893B1 - 단일 중앙처리부를 이용한 수치제어장치의 구현방법 - Google Patents

단일 중앙처리부를 이용한 수치제어장치의 구현방법 Download PDF

Info

Publication number
KR100258893B1
KR100258893B1 KR1019980011531A KR19980011531A KR100258893B1 KR 100258893 B1 KR100258893 B1 KR 100258893B1 KR 1019980011531 A KR1019980011531 A KR 1019980011531A KR 19980011531 A KR19980011531 A KR 19980011531A KR 100258893 B1 KR100258893 B1 KR 100258893B1
Authority
KR
South Korea
Prior art keywords
task
machine
numerical control
script file
control device
Prior art date
Application number
KR1019980011531A
Other languages
English (en)
Other versions
KR19990079125A (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 KR1019980011531A priority Critical patent/KR100258893B1/ko
Publication of KR19990079125A publication Critical patent/KR19990079125A/ko
Application granted granted Critical
Publication of KR100258893B1 publication Critical patent/KR100258893B1/ko

Links

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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4147Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using a programmable interface controller [PIC]
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • 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

Abstract

본 발명은 단일 중앙처리부를 이용한 수치제어장치의 구현방법( Design Method for Numerical controller with a single CPU )에 관한 것으로, 기계의 작동상태를 표시하고 사용자의 조작을 지원하여 사용자와 기계와의 인터페이스를 수행하는 인간-기계 인터페이스 작업단계; 상기 인간-기계 인터페이스 작업단계로부터 데이터를 입력받아 프로그램의 번역을 수행하는 베이시스(Basis)작업단계; 상기 베이시스(Basis)작업단계로부터 데이터를 입력받아 실제 운동 궤적을 생성하는 서보 작업단계; 상기 서보제어 작업단계로부터 데이터를 입력받아 운동제어를 수행하는 위치제어 작업단계; 상기의 인간-기계 인터페이스 작업단계에서 입력된 데이터와 기계로부터의 입출력 데이터를 받아 논리제어를 수행하는 논리 제어단계 등 수치제어장치를 구성하는 각각의 독립된 작업들을 실시간 다중처리(RT-OS) 환경하에서 독립된 스래드(Thread)로 구성, 전체 시스템 구성에 소요되는 하드웨어적 비용을 절감할 수 있는 효과가 있다.

Description

단일 중앙처리부를 이용한 수치제어장치의 구현방법
본 발명은 단일 중앙처리부를 이용한 수치제어장치의 구현방법에 관한 것으로서, 특히 전체시스템 구성요소들의 각 기능을 태스크(Task)형태로 소프트웨어화하여 단일 중앙처리장치에서 제어하는 수치제어장치의 구현방법에 관한 것이다.
최근 수치제어장치는 중앙처리장치(이하, CPU라 함)의 고속, 고성능화 및 실시간 운영체제(RT-OS)의 발달로 PC를 이용 새로운 형태로 구현되고 있다.
즉, 별도의 CPU 및 하드웨어로 구현한 MMI 처리기, 명령 해석기, 보간기, 위치 제어기, PLC 처리기로 구성된 기존의 수치제어장치와는 달리, 실시간 환경하에서 많은 프로그램의 다중작업(Multi-tasking)처리가 용이해짐에 따라 하나의 CPU로써 상기의 기능을 태스크의 형태로 소프트웨어적으로 구현하기 위한 시도가 계속 이루어지고 있다.
도 1에 도시된 바와 같이, 일반적인 수치제어장치는 기계의 작동상태를 표시하고 사용자의 조작을 지원하여 사용자와 기계와의 인터페이스 환경을 제공하는 인간-기계 인터페이스(Man-Machine Interface, 이하 MMI라 함, 10)와, 상기 MMI(10)를 통해 사용자가 입력한 데이터와 기계의 작동상태를 입력받은 데이터를 프로그램하여 제어하는 프로그램가능 논리 제어기(Programmable logic controller, 이하 PLC라 함, 20)와, 실제 운동제어를 수행하는 서보기구(30)로 구성되어 있었다.
상기와 같이 구성된 일반적인 수치제어장치의 동작을 설명하면 다음과 같다.
상기 MMI(10)를 통해 사용자가 제어입력신호를 인가하고, 상기 제어입력신호의 인가에 의해 실행프로그램을 동작시킨다. 기계의 작동상태를 상기 MMI(10)를 통해 표시한다.
상기 MMI(10)를 통해 입력된 데이터와 기계의 동작상태 데이터를 상기 PLC(20)에서 입력받아 제어한다.
상기 MMI(10)로부터의 실행프로그램에 따라 서보기구(30)가 동작하여 작업을 수행한다.
상기 MMI(10), PLC(20), 서보기구(30)에 있는 각각의 프로세서는 각각의 독립된 작업을 수행하며, 상기 각각의 독립된 프로세서는 Bus-level을 이용하여 서로 통신하거나 다중처리작업시 여러개의 프로세서가 하나의 공유기억장치(Shard-memory)를 이용하여 서로 통신함으로써 실시간 환경하에서의 각각의 프로세서간의 조화로운 동작을 실현시킨다.
그러나, 종래의 수치제어장치의 구현방법은 상기 MMI(10), PLC(20), 서보기구(30) 각각에 연산기능 및 통신기능을 부여하여야 함으로써 제품의 가격을 낮추는데 그 한계가 있었다.
또한, 종래의 수치제어장치는 하드웨어적으로 구성되어 있어서 새로운 기능이 추가될 경우 시스템 전체를 다시 구성해야 하는 문제점이 있었다.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위하여 안출된 것으로서, 그 목적은 서보제어 태스크, PLC 태스크, MMI 태스크 및 위치제어 태스크와 베이시스(Basis) 태스크등을 실시간 운영체제하의 독립 스레드(Thread)로 설계하여 단일 CPU를 이용하여 구현함으로써 하드웨어적인 면에서 비용을 절감할 수 있는 수치제어장치의 구현방법을 제공하는데 있다.
본 발명의 다른 목적은 상기 수치제어장치를 구성하는 태스크들을 소프트웨어적으로 구성함으로써 시스템 변화시 쉽게 최적화할 수 있는 수치제어장치의 구현방법을 제공하는데 있다.
도 1은 일반적인 수치제어장치의 구성을 간략히 나타낸 제어회로블럭도,
도 2는 본 발명에 의한 수치제어장치의 각 태스크를 포함한 제어회로블럭도,
도 3은 본 발명의 제 1 실시예에 의한 수치제어장치의 시스템구성의 초기화루틴의 흐름도,
도 4는 본 발명의 제 2 실시예에 의한 시간대별 각 태스크의 중앙처리장치(CPU) 점유분포도,
도 5는 본 발명의 제 3 실시예에 의한 모듈 헤더(Module header)를 이용한 루프 드라이버(Loop-driver)의 구성도.
〈도면의 주요 부분에 관한 부호의 설명〉
100 : 인간-기계 인터페이스 (MMI) 200 : 메모리
500 : 인터페이스 보드 510 : 아날로그&디지탈 인터페이스
520 : 아날로그&디지탈 입출력장치
530 : 버퍼메모리 600 : 주변장치
700 : 구동부 800 : 모터
900 : 중앙처리장치(CPU)
상기 목적을 해결하기 위한 본 발명의 수치제어장치의 제어방법에 관한 제 1 특징은, 기계의 작동상태를 표시하고 사용자의 조작을 지원하여 사용자와 기계와의 인터페이스를 수행하는 인간-기계 인터페이스 작업단계와, 상기 인간-기계 인터페이스 작업단계로부터 데이터를 입력받아 프로그램의 번역을 수행하고 기계의 보간을 수행하는 베이시스(Basis)작업단계와, 상기 베이시스(Basis)작업단계로부터 데이터를 입력받아 실제 운동 궤적의 생성을 수행하는 서보제어 작업단계와, 상기 서보제어 작업단계로부터 데이터를 입력받아 위치제어와 전체시스템의 작업계획을 수행하는 위치제어 작업단계와, 상기 인간-기계 인터페이스 작업단계에서 입력된 데이터와 기계로부터 출력된 제어입력데이터를 받아 제어프로그램을 작성하여 상기 서보제어 작업단계의 제어를 수행하는 프로그램가능 논리제어 작업단계로 이루어진다.
상기 목적을 해결하기 위한 본 발명의 수치제어장치의 제어방법에 관한 제 2 특징은, 수치제어장치가 가동됨과 동시에 시스템 스크립트화일(Script File)을 읽어들이는 스크립트화일 판독단계와, 상기 스크립트화일 판독단계후 시스템 인터럽트와 버퍼메모리등을 체크하여 하드웨어를 초기화하는 하드웨어 초기화단계와, 상기 하드웨어 초기화단계후 각 위치제어 태스크, 서보제어 태스크, 프로그램가능 논리제어 태스크, 베이시스 태스크를 차례로 생성시키는 태스크 생성단계와, 상기 태스크 생성단계후 입/출력 스크립트 화일을 읽어들이는 입/출력 스크립트 파일 판독단계와, 상기 입/출력 스크립트 파일 판독단계후 실행 모듈들을 로드시키고 루틴 테이블들을 삽입시키는 루틴 테이블 삽입단계와, 상기의 초기화과정이 성공적인가를 판별하여 상기 판별 결과 상기 초기화 과정이 성공적이라고 판별되면 모든 태스크가 주기적으로 실행되는 태스크 실행단계로 이루어진다.
상기 목적을 해결하기 위한 본 발명의 수치제어장치의 제어방법에 관한 제 3 특징은, 사용자가 각 태스크에 임의로 수행빈도를 설정하는 수행빈도 설정단계와, 상기 수행빈도가 설정회수가 실행되었는가를 판별하는 수행빈도 회수 판별단계와, 설정된 회수가 실행된 경우에는 다른 태스크로 제어수단의 사용권을 이양하는 이양단계로 이루어진다.
상기 목적을 해결하기 위한 본 발명의 수치제어장치의 제어방법에 관한 제 4 특징은, 각 태스크의 데이터 시그먼트(segment)에 루틴테이블을 정의하고 상기 정의된 루틴 테이블에 시스템 붙업(Boot-up)시 각 루틴의 우선순위에 따라 루틴 테이블을 작성하여, 정상적인 시스템 붙업시 루틴 테이블을 이용한 주기적인 수치제어 루틴들을 실행한다.
이하, 본 발명의 실시예를 참조된 도면을 참조하여 설명하면 다음과 같다.
도 2는 수치제어장치의 각 태스크를 나타낸 즉, 소프트웨어적으로 표현된 수치제어장치의 개략적인 구성을 보인 시스템 구성도이다.
인간-기계 인터페이스(이하 MMI라 함, 100)는 기계의 상태를 표시하고 사용자의 조작을 지원하여 사용자와 기계와의 인터페이스를 제공하는 MMI 태스크(110)의 처리를 담당하고 있다. 상기 MMI는 윈도우(WINDOW) 운영체제하에 작동되고 있다.
상기 MMI(100)로부터 입력되는 데이터를 기억시킴과 동시에 외부로부터 입력된 데이터를 저장하는 메모리(200)는 컴퓨터에 의한 수치를 처리하는 CNC(Computerized numerical control)작업(300)과, 상기 MMI와 기계로부터 입력된 데이터를 제어하여 처리하는 PLC 작업(400)이 저장되어 있다.
상기 CNC 작업(300)은 인터페이스 보드(500)상에 있는 외부 실시간 클럭(Real time clock)이 정해진 샘플링시간마다 인터럽트를 발생시키면 매 샘플링 시간마다 위치제어와 전체스케쥴링을 수행하는 위치제어 태스크(310)와, 상기 위치제어 태스크(310)의 스케쥴링에 의해 제어되어 운동 궤적의 생성을 수행하는 서보제어 태스크(320)와, 상기 MMI 인터페이스 및 보간을 수행하는 베이시스(Basis) 태스크(320)로 이루어져 있다.
상기 PLC 작업(400)은 상기 MMI(100)로부터 데이터 입력과 기계로부터의 입출력 신호에 의하여 기계를 운전하는 PLC 태스크(410)로 이루어져 있다.
또한, 상기 메모리(200)에는 실시간 운영체제(RT-OS)가 이식되어 있다(미도시).
사용자와 기계와의 인터페이스를 제공하는 인터페이스 보드(500)에는 디지털 및 아날로그신호를 입출력하는 디지털 & 아날로그 입출력장치(520)와, 상기 디지털 & 아날로그 입출력장치(520)를 통해 입출력되는 신호를 변환하는 A/D, D/A 변환장치(510)와, 상기 입출력신호를 일시저장시킴과 동시에 고속으로 안전하게 전송하기 위한 버퍼메모리(VMI, 530)로 구성되어 있다.
주변장치(600)는 OP-PANEL과, Bus를 통해 인터페이스시킴으로써 각종 데이터를 백업시킬 수 있는 보조기억장치인 HDD(Hard disk driver)와 FDD(Floppy disk driver)와, 사용자 인터페이스 화면이 출력되는 VGA 등으로 구성되어 있다.
디지털 및 아날로그신호를 입출력하는 디지털 & 아날로그 입출력장치(520)를 통해 출력된 제어신호에 의해 구동되는 구동장치(700)가 상기 인터페이스 보드와 접속되어 있다.
상기 구동장치(700)의 구동신호에 의해 동작하는 모터(800)가 상기 구동장치와 접속되어 있다.
상기 메모리(200)와 상기 인터페이스 보드(500)와 상기 주변장치(600)는 Bus선을 통해 제어프로그램 및 각종 테이터를 처리하는 CPU(900)와 접속되어 있다.
상기와 같이 구성된 본 발명의 수치제어장치의 동작에 대해 제1 실시예를 통해 상세히 설명하면 다음과 같다.
도 3은 제 1 실시예에 의한 소프트웨어적인 공작 기계용 수치제어장치의 시스템구성이 이루어지는 과정을 나타낸 흐름도로서 구성용 스크립트 화일(Script file)을 이용하여 전체 시스템을 구성하는 방법이다.
단계 S1에서 상기 수치제어장치가 가동되면 전체시스템을 구성하기 위한 시스템 스크립트 화일을 읽어들인다.
단계 S2에서는 시스템 인터럽트와 버퍼 메모리(530) 등을 체크하는 하드웨어 초기화작업이 진행된다.
단계 S3에서 위치제어 태스크(310), 서보제어 태스크(320), PLC 태스크(410), 베이시스 태스크(330)를 차례로 생성시킨다.
단계 S4에서 상기 각 태스크의 생성후 입/출력 스크립트 화일을 읽어들인다.
단계 S5에서 상기 각 태스크의 실행 모듈들을 로드시키고 프로그램 실행을 위한 루틴 테이블들을 삽입한다.
단계 S6에서 상기의 초기화과정이 성공적인가를 판별하여 상기 판별 결과 초기화 과정이 성공적일 경우에는(예) 단계 S7로 진행한다.
단계 S7에서 각각의 모든 태스크는 주기적으로 실행되고 상기 모든 태스크가 완료되면 붙업(Boot-up) 처리를 종료한다.
한편, 단계 S6에서 초기화 과정이 성공적이지 않을 경우에는(아니오) 단계 S8로 진행한다.
단계 S8에서 붙업(Boot-up)을 중단하고 운영체제(Operating system)제어모드로 진행한다.
도 4는 제 2 실시예로서, 도 3에서 생성된 각 태스크들이 실행될 때의 타이밍 예를 도시한 것으로서 각각의 태스크마다 실시간 운영체제가 제공하는 기본적인 태스크 스위칭외에 임의의 수행 간격을 할당하도록 하는 방법이다.
상기의 소프트 수치제어장치 구현 방법에서 각 태스크의 주기적인 수행시간은 적용될 제어대상 혹은 사용되는 CPU(900)의 성능에 따라 변화될 수 있으므로 사용자가 임의로 개별 태스크의 수행빈도를 정할 수 있는 방법이다.
도 4에서 각 태스크들의 실선부분은 CPU(900)를 점한 상태 즉, 실행되는 상태를 나타낸다.
위치제어 태스크(310)는 그 처리작업의 중요도에 의해 가장 우선순위를 높게 배정했고, 타이머에 의해 주기적으로 발생되는 기준 인터럽트신호에 의해 실행기동되며, 실행이 완료되면 다음으로 우선순위가 높게 배정된 서보제어 태스크(320)로 CPU(700)의 사용권을 이양하게 된다.
본 제 2 실시예에서 서보제어 태스크(320)의 주기는 위치제어 태스크(310) 주기의 2배로 하였다.
위치제어 태스크(310)가 매 두 번 실행될 때 서보제어 태스크(320)가 한 번 실행되는 이유는 위치제어 태스크(310)가 서보제어 태스크(320)에서 보간된 위치정보를 가지고 위치제어 태스크(310) 내에서 자체의 보간을 수행하기 때문이다.
만약 위치제어 태스크(310)와 서보제어 태스크(320)의 주기가 같다면 위치제어 태스크(310)는 보간을 수행하지 않는다.
마찬가지로 서보제어 태스크(320)의 실행이 완료되면 다음으로 우선순위가 높게 배정된 PLC 태스크(410)로 CPU(900)의 사용권을 이양하게 된다.
이때, PLC 태스크(410)의 실행이 완료되기 전에 우선순위가 더 높이 배정되어 있는 위치제어 태스크(310)나 서보제어 태스크(320)가 CPU(900)를 점하려 하면 PLC 태스크(410)의 실행을 중지하고 CPU(900)사용권을 이양하게 된다.
상기의 동작원리는 복수의 태스크들은 처리의 긴급성 및 중요성에 따라 설계시 정해진 우선순위와 주기성 그리고 사용자에 의해서 설정된 주기에 의해 실행되도록 실시간 운영체제하에 작업을 처리하는 이유에서이다.
우선순위가 가장 낮게 배정된 MMC 태스크(110)는 주기성을 갖지 않게 설정되어 주기적으로 실행되는 우선순위 태스크들이 실행되고 남은 시간에 CPU(900) 사용권을 이양받아 실행된다.
이와 같이 소프트웨어적인 수치제어장치의 구현 방법의 동작을 설명하면 다음과 같다.
태스크 수행빈도를 임의로 제어하기 위해 다음의 변수들을 사용한다.
Task_Status : 태스크의 상태를 나타낸 표시.
이전의 수행이 완료된 상태이면 Idle(=0)값을 가짐.
이전의 수행이 완료되지 않은 상태이면 Busy(=1)값을 가짐.
Task_Set_Counter : 태스크의 수행 빈도 설정.
=Task_Loop_Time % Position_Sampling_Time
Task_Actual_Counter : 매 태스크 완료시 증가.
Position_Task()
{
[운동제어에 관련된 인스트럭션;]
Task1_Actual_Count = Task1_Actual_Count % Task1_Set_Counter;
if(Task1_Actual_Count = = 0)
{
if(Task1_Status = = Busy)
return Busy
else
[Send semaphore to activate Task1;]
}
Task2_Actual_Count = Task2_Actual_Count % Task2_Set_Counter;
if(Task2_Actual_Count = = 0)
{
if(Task2_Status = = Busy)
return Busy
else
[Send semaphore to activate Task2;]
}
..............
}
상기와 같이 구성된 코드(Code)를 해석하면 다음과 같다.
예를 들어 인터럽트 태스크로 설계된 위치제어 태스크의 샘플링 시간이 1(ms)이고, 태스크1의 태스크 루프 타임(Task_Loop_Time)을 4(ms)로 설정한 경우 Task_Set_Counter는 4가 되고, 이는 시스템 동작시 위치제어 태스크의 매 4회 수행시 테스크1이 한번 수행됨을 의미한다.
태스크2도 상기와 같이 위치제어 태스크(310)가 매 인터럽트 발생시 일련의 자기 작업을 수행하고 난 후 CPU(900)의 사용권을 기다리는 다른 태스크에 쇄정신호(Semaphore)를 이용하여 CPU(900)의 사용권을 넘겨주는 일련의 과정을 진행한다.
여기서 각 태스크의 실행주기는 사용자측에서 설정할 때 그 특성상 가능한 짧게 설정할수록 높은 제어성능을 보장받을 수 있다.
도 5는 제 3 실시예를 의한 모듈 헤더(Module header)를 이용한 루프 드라이버(Loop-driver)의 구성을 나타낸 블록도로서 일반적으로 NC Kernel이라 불리우는 기능 모듈들을 자동적으로 관리하고 순차적으로 수행시키도록 만들어주는 방법이다.
여기서 정의된 기능 모듈 헤더는 특별히 고안된 시스템 유틸리티 프로그램에 의하여 목적파일의 Compiler specific funtion header를 대치하도록 한다. 따라서 모든 기능 모듈들은 앞부분에 16Byte의 모듈 헤더와 잇따르는 모듈 코드절(Module code section)으로 구성된다.
다음의 Table 1은 각 기능마다 정의된 모듈 헤더의 기본 골격이다.
Table. 1
Identity Type Module priority Pointer to module entry Module length Version Dummy1 Dummy2
1 Byte 1 Byte 2 Byte 6 Byte 2 Byte 1 Byte 1 Byte 2 Byte
Identity : 모듈 파일 헤더(Module file header)의 식별
Type : 모듈 파일의 타입
0 × 11 베이시스 태스크를 위한 CNC 모듈
0 × 12 서보제어 태스크를 위한 CNC 모듈
0 × 14 위치제어 태스크를 위한 CNC 모듈
0 × 1F CNC 인터럽트 루틴
0 × 20 PLC 모듈
0 × 2F PLC 인터럽트 루틴
Module priority : 루틴 테이블에 있는 슬롯 번호를 연속적으로 지정
Pointer to module entry : Offset시 코드의 주소를 부름
Module length : 모듈 헤더가 포함하고 있는 모듈의 길이
Dummy 1 : 0 × FF시 앞으로의 사용을 예약
Dummy 2 : 0 × FFFF시 앞으로의 사용을 예약
이들 기능 모듈들은 시스템 붙업(Boot-up)시 각 태스크에 할당된 메모리 시그먼트(Memory segment)상에 실행순서에 상관없이 로드된다. 이미 기존의 동일한 기능 모듈이 보조기억장치(Secondary storage)에 한 개 이상 존재할 경우 시스템소프트웨어는 메모리 시그먼트에 로드된 기능 모듈의 모듈 헤더를 이용하여 최신 버젼(Version)이 로드되도록 한다.
이와 같이 소프트웨어적인 수치제어장치의 구현 방법의 동작을 설명하면 다음과 같다.
이들 메모리 시그먼트상에 로드된 기능 모듈들을 할당된 우선순위에 따라 순차적으로 수행시키기 위하여, 각 태스크의 데이터 시그먼트(Data segment)에 루틴 테이블(Routine table)을 정의한다.
상기 루틴 테이블이 정의되면 시스템 붙업(Boot-up)시 시스템 소프트웨어로 하여금 소속 태스크 및 루틴 테이블을 작성하도록 한다.
각 태스크마다 루틴 테이블이 완성되면 루틴 테이블을 이용 수치제어 루틴들이 순차적, 주기적으로 수행된다.
상술한 바와 같이, 본 발명에 의하면 내장된 작동제어기(Embeded motion controller)를 단순 아날로그 인터페이스 보드나 디지털 인터페이스 보드로 대치하고 상기 내장된 작동제어기의 기능과 MMI 기능을 단일 CPU가 모두 처리함으로써 하드웨어적으로 비용을 절감할 수 있는 효과가 있다.
상기 수치제어장치를 소프트웨어적으로 구성함으로써 응용대상의 변화에 따라 시스템을 동적으로 최적화 하기가 용이하다.

Claims (4)

  1. 단일 CPU를 이용하여 실시간 다중처리 환경에서 NC를 구성하는 각 부분을 독립 스래드(Thread)로 구성하여 소프트웨어적으로 수치제어장치를 구현하는데 있어서,
    기계의 작동상태를 표시하고 사용자의 조작을 지원하여 사용자와 기계와의 인터페이스를 수행하는 인간-기계 인터페이스 작업단계,
    상기 인간-기계 인터페이스 작업단계로부터 데이터를 입력받아 프로그램의 번역을 수행하고 기계의 보간을 수행하는 베이시스(Basis)작업단계,
    상기 베이시스(Basis)작업단계로부터 데이터를 입력받아 실제 운동 궤적의 생성을 수행하는 서보제어 작업단계,
    상기 서보제어 작업단계로부터 데이터를 입력받아 위치제어와 전체시스템의 작업계획을 수행하는 위치제어 작업단계,
    상기 인간-기계 인터페이스 작업단계에서 입력된 데이터와 기계로부터 입출력 신호를 받아 기계를 운전하는 논리제어 작업단계로 분리한 것을 특징으로 하는 수치제어장치의 구현방법.
  2. 전체시스템을 정의하는 구성용 스크립트화일을 이용하여 수치제어장치를 붙업(Boot-up)시 동적으로 구성하는 방법에 있어서,
    수치제어장치가 가동됨과 동시에 시스템 스크립트화일(Script File)을 읽어들이는 스크립트화일 판독단계와,
    상기 스크립트화일 판독단계후 시스템 인터럽트와 버퍼메모리등을 체크하여 하드웨어를 초기화하는 하드웨어 초기화단계와,
    상기 하드웨어 초기화단계후 각 위치제어 태스크, 서보제어 태스크, 프로그램가능 논리제어 태스크, 베이시스 태스크를 차례로 생성시키는 태스크 생성단계와,
    상기 태스크 생성단계후 입/출력 스크립트 화일을 읽어들이는 입/출력 스크립트 파일 판독단계와,
    상기 입/출력 스크립트 파일 판독단계후 실행 모듈들을 로드시키고 루틴 테이블들을 삽입시키는 루틴 테이블 삽입단계와,
    상기의 초기화과정이 성공적인가를 판별하여 상기 판별 결과 상기 초기화 과정이 성공적이라고 판별되면 모든 태스크가 주기적으로 실행되는 태스크 실행단계로 이루어진 것을 특징으로 하는 수치제어장치의 구현방법.
  3. 제 2 항에 있어서,
    사용자에 의해 태스크의 실행주기를 임의로 제어할 수 있도록 하는 것을 특징으로 하는 수치제어장치의 구현방법.
  4. 제 2 항에 있어서,
    테이블에 정의된 모듈 헤더(header)를 이용하여 가 태스크에 정의된 루틴 테이블을 작성하고, 시스템 작동시 루틴 테이블을 이용하여 수치제어 루틴들을 순차적, 지속적으로 구동시키는 것을 특징으로 하는 수치제어장치의 구현방법.
KR1019980011531A 1998-04-01 1998-04-01 단일 중앙처리부를 이용한 수치제어장치의 구현방법 KR100258893B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980011531A KR100258893B1 (ko) 1998-04-01 1998-04-01 단일 중앙처리부를 이용한 수치제어장치의 구현방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980011531A KR100258893B1 (ko) 1998-04-01 1998-04-01 단일 중앙처리부를 이용한 수치제어장치의 구현방법

Publications (2)

Publication Number Publication Date
KR19990079125A KR19990079125A (ko) 1999-11-05
KR100258893B1 true KR100258893B1 (ko) 2000-06-15

Family

ID=19535736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980011531A KR100258893B1 (ko) 1998-04-01 1998-04-01 단일 중앙처리부를 이용한 수치제어장치의 구현방법

Country Status (1)

Country Link
KR (1) KR100258893B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101283026B1 (ko) * 2007-10-09 2013-07-05 현대자동차주식회사 통합 제어시스템의 실시간 제어장치 및 방법

Also Published As

Publication number Publication date
KR19990079125A (ko) 1999-11-05

Similar Documents

Publication Publication Date Title
US6823517B1 (en) Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level
KR0147063B1 (ko) 저전력 모드를 갖는 디지탈 전산 시스템
US4109311A (en) Instruction execution modification mechanism for time slice controlled data processors
US3651482A (en) Interlocking data subprocessors
GB2177826A (en) Programmable controller
GB2038035A (en) Multiprocessor numerical control system
US4005391A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
JPH05274276A (ja) ディジタル信号処理システム
EP0637802A2 (en) Interrupt vector method and apparatus
US9152454B2 (en) Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device
EP0426331B1 (en) Programmable interrupt controller and method
US4627025A (en) Memory programmable controller with word and bit processors
US4047245A (en) Indirect memory addressing
US5068821A (en) Bit processor with powers flow register switches control a function block processor for execution of the current command
EP0766156A1 (en) Programmable logic controller
KR100258893B1 (ko) 단일 중앙처리부를 이용한 수치제어장치의 구현방법
JPS5911921B2 (ja) 数値制御装置
EP0445288A1 (en) Operation processing unit
WO1998009225A1 (en) Real time software system
US20230236901A1 (en) Safe critical section operations for virtual machines with virtual central processing unit overcommit
US20240134815A1 (en) Systems and methods for graphically programming an application with external integrated circuits
KR100254779B1 (ko) 피엘씨시스템에서의다중타스크고속수행장치
JPH03288906A (ja) Pcの命令実行方式
JPH06324861A (ja) Cpu制御システム及び制御方法
JPH02214938A (ja) データ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee