KR100218219B1 - 프로그래머블 콘트롤러 - Google Patents

프로그래머블 콘트롤러 Download PDF

Info

Publication number
KR100218219B1
KR100218219B1 KR1019950036842A KR19950036842A KR100218219B1 KR 100218219 B1 KR100218219 B1 KR 100218219B1 KR 1019950036842 A KR1019950036842 A KR 1019950036842A KR 19950036842 A KR19950036842 A KR 19950036842A KR 100218219 B1 KR100218219 B1 KR 100218219B1
Authority
KR
South Korea
Prior art keywords
processing
program
external peripheral
interrupt
peripheral device
Prior art date
Application number
KR1019950036842A
Other languages
English (en)
Other versions
KR960015123A (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 KR960015123A publication Critical patent/KR960015123A/ko
Application granted granted Critical
Publication of KR100218219B1 publication Critical patent/KR100218219B1/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
    • 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/058Safety, monitoring
    • 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/14Plc safety
    • G05B2219/14002Independent processor, coprocessor monitors 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/14Plc safety
    • G05B2219/14041Influence of execution of interrupts
    • 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/14Plc safety
    • G05B2219/14042Process time

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

시스템 ROM은 CPU유닛의 내부동작 상태를 계측하는 제어프로그램을 기억하고, 또 데이터 RAM은 CPU유닛의 계측된 내부동작 상태를 기억한다.
내부 동작 계측 제어 프로그램은 CPU유닛의 내부 동작 상태를 외부 주변기기로부터의 모니터처리요구에 따라 계측될 수 있도록, 또 그 계측결과는 외부주변기기에 보내질 수 있도록하며, 이렇게하므로서 외부주변기기로 하여금 CPU유닛의 내부동작 상태를 모니터할 수 있게끔 한다.

Description

프로그래머블 콘트롤러
제1도는 본 발명의 1실시예에 의한 PC의 구성도.
제2도는 제1도에 나타낸 PC의 프로그램의 전체 구성도.
제3도는 제1도에 나타낸 PC의 CPU유닛(1A)에 있어서의 외부주변기기와의 교신처리를 나타내는 플로차트.
제4도는 본 발명의 실시예 1에 있어서 측정하는 디바이스의 상태변화를 나타내는 설명도.
제5도는 제1도에 나타낸 PC의 CPU유닛의 데이터 RAM의 구성도.
제6도는 본 발명의 실시예 1에 있어서의 디바이스 코드를 나타내는 설명도.
제7도는 본 발명의 실시예 1에 있어서의 측정조건 코드를 나타내는 설명도.
제8도는 본 발명의 실시예 1에 있어서의 디바이스간격 계측 프래그 전이(轉移)의 설명도.
제9도는 본 발명의 실시예 1에 있어서의 사용자의 조작과 외부주변기기의 처리를 나타내는 플로차트.
제10도는 본 발명의 실시예 1에 있어서의 외부주변기기의 설정화면의 한 예를 나타내는 도면.
제11도는 본 발명의 실시예 1에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제12도는 본 발명의 실시예 1에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제13도는 본 발명의 실시예 1에 있어서의 외부주변기기로부터의 디바이스간격측정요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제14도는 본 발명의 실시예 1에 있어서의 외부주변기기로부터의 디바이스간격판독요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제15도는 본 발명의 실시예 1에 있어서의 데이터 비교회로로부터의 인터럽트 처리를 나타내는 플로차트.
제16도는 본 발명의 실시예 1에 있어서의 외부주변기기에서의 측정결과의 표시화면예를 나타내는 도면.
제17도는 제1도에 나타낸 PC의 일반적 시퀀스프로그램 예를 나타내는 도면.
제18도는 본 발명의 실시예 2에 있어서의 사용자의 조작과 외부주변기기의 처리를 나타내는 플로차트.
제19도는 본 발명의 실시예 2에 있어서의 처리시간측정의 외부주변기기에서의 설정화면 예를 나타내는 도면.
제20도는 본 발명의 실시예 2에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제21도는 본 발명의 실시예 2에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제22도는 본 발명의 실시예 2에 있어서의 외부주변기기로부터의 시퀀스 지정구간처리시간 측정요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제23도는 본 발명의 실실예 2에 있어서의 외부주변기기로부터의 시퀀스 지정구간처리시간 판독요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제24도는 본 발명의 실시예 2에 있어서의 어드레스 비교회로로부터의 인터럽트처리를 나타내는 플로차트.
제25도는 본 발명의 실시예 2에 있어서의 측정결과의 외부주변기기에서의 표시화면의 한 예를 나타내는 도면.
제26도는 본 발명의 실시예 3에 있어서의 사용자의 조작과 외부주변기기의 처리를 나타내는 플로차트.
제27도는 본 발명의 실시예 3에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제28도는 본 발명의 실시예 3에 있어서의 인터럽트프로그램 누적실행시간 판독요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제29도는 본 발명의 실시예 3에 있어서의 측정결과의 외부주변기기에서의 표시화면 예를 나타내는 도면.
제30도는 본 발명의 실시예 4에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환도는 데이터의 구성도.
제31도는 본 발명의 실시예 4에 있어서의 외부주변기기로부터의 END처리 시간 판도요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제32도는 본 발명의 실시예 4에 있어서의 계측결과의 외부주변기기에서의 표시화면의 한 예를 나타내는 도면.
제33도는 본 발명의 실시예 5에 있어서의 특수유닛서비스처리를 나타내는 플로차트.
제34도는 본 발명의 실시예 5에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제35도는 본 발명의 실시예 5에 있어서의 외부주변기기로부터의 특수유닛서비스 처리시간 판독요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제36도는 본 발명의 실시예 5에 있어서의 측정결과의 외부주변기기에서의 표시화면의 한 예를 나타내는 도면.
제37도는 본 발명의 실시예 6에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제38도는 본 발명의 실시예 6에 있어서의 인터럽트프로그램 실행회수 판독처리를 나타내는 플로차트.
제39도는 본 발명의 실시예 7에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제40도는 본 발명의 실시예 7에 있어서의 외부주변기기로부터의 특수유닛서비스 처리실행회수 판독요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제41도는 본 발명의 실시예 8에 있어서의 외부주변기기와 CPU와의 사이에서 교환되는 데이터의 구성도.
제42도는 본 발명의 실시예 8에 있어서의 외부주변기기로부터의 인터럽트프로그램 기동간격 시간판독요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제43도는 본 발명의 실시예 9에 있어서의 외부주변기기와 CPU유닛과의 사이에서 교환되는 데이터의 구성도.
제44도는 본 발명의 실시예 9에 있어서의 외부주변기기로부터의 특수유닛서비스 처리실행간격 시간판독요구에 대한 CPU유닛의 처리를 나타내는 플로차트.
제45도는 종래의 프로그래머블 콘트롤러의 블록 구성도.
제46도는 종래의 프로그램 전체 구성을 나타내는 도면.
제47도는 종래의 PC의 처리를 나타내는 일반적 플로차트.
제48도는 종래의 메인프로그램 및 인터럽트프로그램처리를 나타내는 설명도.
제49도는 종래의 디바이스간격측정의 시퀀스프로그램 예를 나타내는 도면.
제50도는 종래의 인터럽트프로그램 실행시간측정의 시퀀스프로그램 예를 나타내는 도면.
제51도는 종래의 END처리시간측정의 시퀀스프로그램 예를 나타내는 도면.
제52도는 종래의 인터럽트프로그램 실행회수계측의 시퀀스프로그램 예를 나타내는 도면.
제53도는 종래의 인터럽트 실행간격계측의 시퀀스프로그램 예를 나타내는 도면.
제54도는 종래의 특수유닛서비스 처리실행간격측정의 시퀀스프로그램 예를 나타내는 도면.
본 발명은 산업기기등에서 사용되는 프로그래머블 콘트롤러에 있어서 외부주변기기로부터 CPU유닛의 동작상태를 모니터하게 한 프로그래머블 콘트롤러에 관한 것이다.
종래부터 산업기계등의 제어용 기기로서 시퀀스제어장치가 널리 이용되고 있다.
여기서 말하는 시퀀스제어장치라 함은 산업기계등에 있어서 하나의 제어동작의 종료를 확인하고 그 결과에 따라 다음의 동작을 선정하는 등 사전에 정해진 순서에 따라 제어의 각 단계를 차례차례 진행하여 제어(시퀀스제어)하는 제어기기이다.
근년의 시퀀스제어장치는 프로그램의 변경의 가능한 프로그래머블 콘트롤러(이하 PC라고 칭함)가 주류이며, 그 제어내용도 매년 고급화를 거듭하고 있다.
근년에는 PC에 외부주변기기를 접속하여 리얼타임으로 PC가 제어하고 있는 제어대상 외부기기의 입출력신호의 ON, OFF상태 또는 CPU유닛이 내부에서 기억하고 있는 수치데이터등의 정보를 퍼스널컴퓨터등의 외부주변기기의 CRT화변상에서 모니터하는 것도 가능해졌다.
그러나, 종래의 PC에서는 주요기능이 제어대상 외부기기의 입출력신호가 ON하고 있는가 OFF하고 있는가의 상태들을 모니터하는 것이다.
그러나, 시퀀스프로그램이 프로그래머에 의해 디버그될 때 요구되는 입출력신호의 ON시간 또는 입출력신호를 수신하는 타이밍등의 내부동작상태를 알기위해서는 사용자가 디버그용 시퀀스프로그램을 본래의 시퀀스프로그램에 추가하여 동작시켜, CPU유닛 내부에 기억하고 있는 수치데이터로 대치한다.
이에 따라 대치된 수치데이터는 외부주변기기로 모니터될 수 있거나 또는 로직애나라이저등의 계측기기를 외부에 접속하여 측정될 수 있다.
제45도는 이 종류의 PC의 종래의 구성도이다.
제45도에 있어서, 1은 PC의 제어 중심이 되는 CPU유닛, 2는 모니터결과를 표시하는 외부주변기기, 3은 입출력유닛이며, 리밋 스위치(4a), 램프(4b), 밸브조절기(4c)등의 제어대상 외부기기에 대해서 입력신호를 수신하든가 또는 출력신호를 송출하는 유닛이다.
5는 특수기능유닛이며, 컴퓨터(6)등과 교신하는 기능을 갖는 유닛이다.
10에서부터 19와 21은 CPU유닛(1)의 내부에 있는 각종 유닛을 나타낸다.
10은 시스템 ROM(12)에 기억된 시스템 프로그램을 실행하는 CPU, 11은 시퀀스프로그램을 기억하는 시퀀스프로그램 메모리, 13은 CPU(10)이 실행 중에 일시적으로 데이터를 기억하기 위한 데이터 RAM, 14는 외부주변기기(2)와 교신하기 위한 주변 I/F(인터페이스), 15는 입출력유닛(3)과 신호를 송수신하기 위한 입출력포트, 16은 시퀀스프로그램에서 사용되는 입출력신호의 상태 또는 타이머의 현재위치등의 수치데이터를 기억하는 디바이스메모리, 17은 입출력신호의 1부를 인터럽트신호로서 발생하는 인터럽트 발생회로이다.
18은 시퀀스프로그램메모리(11)을 항상 모니터하며, 사전에 설정된 어드레스가 지정된 어드레스와 일치한 경우에 CPU(10)에 인터럽트를 발생하는 어드레스 비교회로이다.
19는 디바이스메모리(16)을 항상 모니터하며, 사전에 설정된 어드레스의 내용이 지정된 데이터와 일치한 경우에 CPU(10)에 인터럽트를 발생하는 데이터비교회로이다.
데이터비교회로(19)의 구성은 일본국 특개평 3-244003호 및 4-151702호에 기재되어 있는 것과 동일한 것이며 그 상세한 설명은 생략한다.
20은 시퀀스프로그램의 디버그처리하는 동안 출력신호를 모니터하여 PC의 동작상태를 관찰하기 위한 측정기기로서의 로직애나라이서이다.
특수기능유닛(5)와 시퀀스프로그램메모리(11)과 시스템 ROM(12)과 데이터 RAM(13)과 주변 I/F(14)와 입출력포트(15)와 디바이스메모리(16)와 인터럽트발생회로(17)와 어드레스비교회로(18)와 데이터비교회로(19)는 어드레스신호선 또는 데이터신호선등의 각종 신호선(10a)에 통하여 CPU(10)와 연결되어 있으며, CPU(10)는 각종 신호선(10a)를 경유하여 시퀀스프로그램메모리(11)등에 대해서 데이터를 판독 또는 입력한다.
다음에 제45도에서 나타낸 시퀀스프로그램메모리(11)에 기억되는 시퀀스프로그램의 구성에 대해서 제46도에 나타내어 설명한다.
제46도에 있어서, 511은 상시 실행되는 메인 시퀀스프로그램이며, 512는 인터럽트발생회로(17)로부터 인터럽트가 발생했을 때만 실행되는 인터럽트시퀀스프로그램이다.
513은 메인 시퀀스프로그램(11)의 종료를 나타내는 FEND명령, 514는 인터럽트시퀀스프로그램(512)의 개시를 나타내는 인터럽트 포인터, 515는 인터럽트프로그램의 종료를 나타내는 IRET명령이다.
또 제47도의 521, 524는 메인 시퀀스프로그램(511) 및 인터럽트시퀀스프로그램(512)에 기술되는 명령이며, 제45도의 제어대상외부기기의 상태를 판독하기도 하고 또 상태를 변화시키기도 한다.
제어대상 외부기기는 이들 명령(521)~(524)에 따라 디바이스에 의해 표현된다.
예컨대 명령(521)에 있는 후술하는 제49도의 XO라는 기호는 제어대상 외부기기로부터의 입력신호를 의미한다.
디바이스에는 입출력신호와 같이 ON/OFF의 상태를 기억하는 비트디바이스 또는 수치데이터를 기억하는 워드디바이스, 타이머 디바이스등에 있으며 이것들의 상태는 제45도의 디바이스메모리(16)에 기억된다.
여기에서 제46도에서 표시한 시퀀스프로그램을 실행하기 위해서 제45도에서 나타내는 CPU유닛(1)의 일반적인 실행처리의 한 예를 제47도에 나타내고 설명한다.
제47도에 있어서, CPU유닛(1)은 우선 처음에 스텝(521)에서 메인프로그램의 실행을 개시한다.
다음에 시퀀스제어를 실행하는 시퀀스처리의 스텝(522)으로 진행하며, 스텝(5221)에서 소정의 시퀀스프로그램에 기준하여 시퀀스프로그램의 개시스텝을 메인시퀀스프로그램의 선두 스텝 즉 0스텝에 세트하고, 다음의 스텝(5222)에서 개시스텝인 0스텝으로부터 FEND명령의 스텝까지 실행한다.
REND명령을 실행하면, 다음의 END처리스텝(523)으로 진행하고, 이 스텝(523)에서는 외부주변기기(2)와의 교신처리스텝(5231)과 특수유닛서비스 처리스텝(5232)와 입출력신호를 디바이스메모리(16)에 기억된 값에 따라 출력 또는 입력하는 처리등의 그외의 END처리스텝(5233)을 실행한다.
여기서 일련의 END처리스텝(523)이 완료되면 처음의 스텝(522)에 되돌아와 제45도의 CPU유닛(1)은 상술한 처리를 반복실행한다.
이와 같이 CPU유닛(1)은 스텝(522),(523)을 반복하여 실행처리하는 것으로 이 반복되는 1회의 처리를 본 발명에서는 주사(走査)라 말한다.
또, 스텝(524)이하는 이와 같은 반복의 실행중에 CPU(10)에 인터럽트발생회로(17)으로부터 인터럽트신호가 입력된 경우에 실행하는 인터럽트프로그램실행의 흐름에 대하여 나타낸 것이다.
인터럽트프로그램이 스텝(524)에서 개시되면 스텝(5241)에 의해 현재 실행하고 있는 메인프로그램측의 실행스텝을 생략하고 다음에 스텝(5242)에서 개시스텝을 인터럽트프로그램의 선두스텝 즉, IO의 스텝으로 세트하며 스텝(5243)로 IRET명령까지 실행한 후, 스텝(5244)에서 메인프로그램의 실행스템을 세트하여 인터럽트프로그램을 종료하고 종료스텝(5245)로부터 본래의 메인프로그램으로 복귀한다.
이와 같이 제45도의 CPU유닛은 제47도에 나타내는 바와 같이 메인프로그램의 스텝(522),(523)을 반복 실행하여 인터럽트 처리요구가 발생하면 그때마다 인터럽트프로그램의 스텝(524)를 실행한 후에 메인프로그램으로 복귀하는 것이다.
여기서, 제47도를 참조하여 제45도에 표시한 CPU유닛(1)에 의해 제47도에서 표시한 처리의 타임차트를 설명한다.
제48도에 있어서, 531는 제47도에서 표시한 시퀀스처리(522)에 요하는 시퀀스처리시간이며, 이 속에는 제47도의 인터럽트처리(524)의 인터럽트시간(533)를 포함한다.
532는 제47도에서 나타낸 END처리(523)에 요하는 END처리시간이며, 이 END처리시간(532)은 제47도의 외부주변기기(2)와의 교신처리(5231)의 교신처리시간(534)과 특수기능유닛(5)의 서비스처리(5232)의 서비스처리시간(535)과 기타의 END처리(5233)의 기타의 END처리시간(536)을 합한 시간이다.
여기서 1회의 주사동작에 요하는 시간 즉 시퀀스처리시간(531)과 END처리시간(532)을 합한 시간을 본 발명에서는 주사시간이라 한다.
즉, 제48도에 있어서 처음의 주사시간의 시퀀스처리시간(531a)에는 인터럽트처리시간(533a),(533b)이 포함되면 END처리시간(532a)에는 교신처리시간(536a)이 포함되어 있다.
마찬가지로 다음의 주사시간을 구성하는 시퀀스처리시간(531b)와 END처리시간(532b)에도 그때의 처리내용에 따라 각종(533c),(533d),(534b),(535b),(536b)가 포함되어 있다.
이상에서 기술한 바와 같이 종래의 제45도에 나타내는 CPU유닛(1)의 제어는 제47도에 나타내는 것 같이 반복처리동작을 실행하고 있다.
이 경우, 예컨대 컴퓨터(6)가 CPU유닛(1)으로 처리요구를 냈을 때는 특수기능유닛(5)을 통하여 CPU유닛(1)은 특수기능유닛(5)로부터의 처리요구를 인식하고 처리를 시행하여 그 처리결과를 특수기능유닛(5)에 공급한다.
이 특수기능유닛(5)로부터의 요구에 대응하여 제47도의 처리(5232)는 END처리(523)중에 시행되기 때문에 특수기능유닛(5)로부터의 요구가 있을 때는 일시적으로 END처리시간(532)이 증가한 것으로 된다.
또 인터럽트프로그램의 실행처리(524)도 제45도의 인터럽트발생회로(17)로부터 인터럽트가 발생되었을 때 처리되기 때문에 인터럽트프로그램이 실행되는 타이밍이나 실행회수는 일정치 않고, 제48도의 시퀀스처리시간(531)은 인터럽트의 유무에 따라 증감한다.
따라서, CPU유닛(1)에 의해 시행되는 처리시간은 제48도에 표시한 시퀀스처리시간(531)과 END처리시간(532)으로 구성되는 모든 주사에서일정치 않고 입력신호의 입력타이밍과출력신호의 출력타이밍은 대단히 복잡하게 되어 있다.
이와 같이 사용자가 PC에 의한 제어로 불편이 있는 경우 불편한 제어이유를 조사하기 위해 CPU유닛(1)의 제어상태를 아는 것은 불가피해지고 있다.
제45도 및 제49도를 참조하여 디바이스상태의 변화시간을 계측하는 방법을 설명한다.
즉 CPU유닛(1)의 제어상태의 하나는 예컨대, 어떤 입력신호를 표시하는 비트디바이스 XO의 상태가 ON로 되어 있는 동안의 지속시간이다.
제49도는 입력신호를 표시하는비트디바이스의 상태가 ON으로 되는 동안의 지속시간을 계측하는데 사용되는 시퀀스프로그램의 한 예를 표시한다.
여기서 비트디바이스 XO는 예컨대 제45도에 있어서의 리미트 스위치(4a)등의 입력신호이다.
제49도에 있어서 541부터 543은 각각 명령의 심벌을 표시하고 541은 비트 디바이스 XO가 ON상태로 도통하는 로드명령, 542는 비트디바이스 XO가 OFF상태일 때 도통하는 로드부정명령, 543은 도통상태에서 시간계측을 개시하여 타이머디바이스 TO에 경과시간을 기억하는 타이머명령이며 K100는 1초까지의 시간을 계측하는 것을 나타내고 있다.
544는 도통상태의 상승부가 검출될 때 타이머디바이스 TO의 내용을 워드디바이스 DO에 기억하는 전송펄스명령이다.
다음에 제49도에 표시한 시퀀스프로그램의 동작을 이하에 설명한다.
즉. 비트디바이스 XO가 ON으로 될 때 로드명령(541)은 타이머명령(543)이 작동하도록 도통도어 타이머 디바이스 TO의 내용이 순차로 10msec초마다에 1이 가산되지만 비트디바이스 XO가 OFF되면 로드부정명령(542)은 도통되어 전송펄스명령(544)에 응답하여 타이머 디바이스 TO의 내용이 디바이스 DO에 기억되는 것과 동시에 로드명령(541)이 비도통으로 되어 타이머명령(543)의 동작이 정지하고 타이머 디바이스 TO의 내용이 0으로 된다.
이 시퀀스프로그램의 사용자는 메인 시퀀스프로그램에 추가하여, CPU유닛(1)을 동작시킴으로서 비트디바이스 XO가 ON하고 있는 사이의 시간이 항상 디바이스 DO에 기억되므로 외부주변기기(2)에 의해 디바이스 DO의 디바이스상태를 모니터하는 동안 상태변화의 간격을 검출할 수가 있다.
그러나 이 방법에 따라 CPU유닛(1)의 메인 프로그램의 반복처리마다에 제49도의 시퀀스프로그램이 실행되기 때문에 제48도에서 설명한 CPU유닛(1)의 반복처리시간 즉, 1주사시간분의 오차가 발생할 가능성이 있다.
더욱 정확히 측정하자면 직접 입력신호를 제45도에 표시하는 로직애나라이저(20)으로 측정할 필요가 있었다.
다음에 CPU유닛(1)의 제어상태의 다른 하나인 시퀀스프로그램의 지정구간의 처리시간을 측정하는 방법에 대해서 설명한다.
시퀀스처리 실행중에 메인 시퀀스프로그램의 제1스텝으로부터 어떤 지정된 스텝까지의 처리시간을 측정하는 수단은 일본국 특개평 5-189277호에 표시되어 있다.
그래서 시퀀스처리실행중에 메인 시퀀스프로그램의 어떤 지정된 구간, 예컨대 100스텝에서 200스텝까지의 시퀀스프로그램을 실행하는 처리시간을 측정하자면 상기 수단을 사용하여 지정구간의 개시스텝까지 즉 0스텝으로부터 100스텝까지의 실행처리시간과 종료스텝까지, 즉 0스텝으로부터 200스텝까지의 실행처리시간을 측정하고 후자의 종료스텝까지의 실행처리시간으로부터 전자의 개시스텝까지의 실행처리시간을 감산하므로서 지정시간 즉 100스텝으로부터 200스텝까지 시퀀스프로그램을 실행하는 처리시간을 산출하여 측정할 수가 있었다.
다음에 CPU유닛(1)에 의해 다른 하나의 제어상태에 대응하는 인터럽트시퀀스프로그램의 시행시간을 계측하는 방법에 대해서 제45도와 제47도와 제50도를 사용하여 설명한다.
제50도는 인터럽트시퀀스프로그램(554)의 처리시간을 계측하는 시퀀스프로그램의 한 예이다.
이 도면에서 551은 인터럽트시퀀스프로그램(554)의 선두를 나타내는 포인터 IO, 552는 비트디바이스(M9036)이 ON상태일 때 도통하는 로드명령, 553과 557은 도통상태에서 비트디바이스 YO를 ON하고 비도통상태에서 비트디바이스 YO를 ON하고 비도통상태에서 비트디바이스 YO가 OFF로 되도록 하는 출력명령, 555는 비트디바이스(M9036)에 OFF상태에서 도통하는 로드부정명령, 558은 인터럽트시퀀스프로그램의 종료를 나타내는 IRET명령이다.
여기서 제50도에 나타내는 시퀀스프로그램의 동작을 설명한다.
즉, 제47도의 인터럽트프로그램 실행의 스텝(524)가 실행될 때 제50도의 인터럽트시퀀스프로그램(554)의 처음에 있는 로드명령(552)으로 항상 ON인 비트디바이스(M9036)의 상태에 의해 도통하고 출력명령(553)에 의해 비트디바이스(YO)를 ON한다.
비트디바이스(YO)는 예컨대 램프(4b)등의 출력신호이다.
계속해서 본래의 인터럽트시퀀스프로그램(554)을 실행하고 인터럽트시퀀스프로그램의 바로 앞에 있는 로드부정명령(555)은 비도통으로 되어 비트디바이스(YO)를 OFF한다.
그리고 IRET명령(558)에 의해 인터럽트시퀀스프로그램(554)를 종료한다.
따라서 이 시퀀스프로그램을 CPU유닛(1)에 의해 동작되도록 사용자는 인터럽트시퀀스프로그램에 츠가하여 인터럽트프로그램이 실행되고 있는 동안 비트디바이스(YO)를 ON상태로 하고 있으며, 이 디바이스(YO)에 대응하는 출력신호는 제45도의 외부측정기기로서의 로직애나라이저(20)을 사용하여 측정하므로서 인터럽트프로그램의 실행시간을 알 수 있었다.
다음에 CPU유닛(1)의 다른 제어상태의 하나인 END처리의 실행시간을 계측하는 방법에 대해서 제45도 및 제47도 및 제51도를 사용하여 설명한다.
제51도는 END처리에 요하는 시간을 측정하기 위해서의 시퀀스프로그램의 1예이다.
제51도에 있어서 564는 본래 동작해야할 메인시퀀스프로그램(562)의 비트디바이스(M9036)가 OFF상태일 때 도통하는 로드부정명령, 563과 567은 도통상태에서 비트디바이스(YO)를 ON하고 비도통상태에서 비트디바이스(YO)를 OFF하는 출력명령, 565는 비트디바이스(M9036)가 ON상태일때 도통하는 로드명령, 568은 메인 시퀀스프로그램의 종료를 표시하는 FEND명령이다.
여기서 제51도에 나타내는 시퀀스프로그램의 동작을 이하 도면에 표시하여 설명한다.
즉 제47도의 시퀀스처리가 실행될 때 제51도의 메인시퀀스프로그램(564)의 처음에 있는 로드부정명령(562)으로 항시 ON인 비트디바이스(M9036)의 상태에 따라 비도통으로 되어 출력명령(553)으로 비트디바이스(YO)를 OFF한다.
계속해서 메인시퀀스프로그램(564)이 실행되고 메인시퀀스프로그램의 직전에 있는 로드명령(565)는 도통상태로 되어 비트디바이스(YO)를 ON한다.
그리고 FEND명령(568)에 응답하여 메인시퀀스프로그램(564)를 종료한다.
그후 처리는 제47도의 END처리의 스텝(523)으로 진행하고 스텝(522)에서 재차 시퀀스처리를 실행하여 같은 방법으로 비트디바이스(YO)를 OFF하여 ON한다.
이 반복에 의하여 메인시퀀스프로그램(564)이 실행하고 있는 사이는 디바이스(YO)는 OFF하고 있으며, 디바이스(YO)가 ON하고 있는 사이는 END처리를 하고 있는 것으로 된다.
따라서, 이 시퀀스프로그램을 사용자는 CPU유닛(1)에 의해 동작되도록 메인시퀀스프로그램에 추가한다.
이 비트디바이스(YO)에 대응하는 출력신호는 제45도의 외부측정기기로서의 로직애나라이저(20)을 사용하여 측정하므로서 END처리의 실행시간 및 시퀀스처리의 실행시간을 측정할 수 있다.
다음에 CPU유닛(1)의 다른 제어상태의 하나인 특수유닛서비스 처리시간을 계측하는 방법에 대해서 설명한다.
특수유닛서비스 처리시간을 계측하는 방법은 앞에서 기술한 바와 같이 제51도의 END처리의 실행시간을 측정하는 방법을 사용한다.
우선 제45도의 특수기능유닛으로부터의 요구가 없는 상태에서 제47도의 END처리(523)의 처리시간을 측정한다.
다음에 특수기능유닛(5)로부터 요구가 있는 상태에서 마찬가지로 END처리(523)의 처리시간을 측정한다.
그리고 특수기능유닛(5)로부터 요구가 없을 때 측정된 END처리시간을 특수기능유닛(5)로부터의 요구가 있을때의 END처리(513)의 처리시간에서 감산함으로써 특수능유닛(5)로부터의 요구에 대한 END처리(513)의 처리시간을 구할 수 있다.
다음에 CPU유닛(1)의 다른 제어상태의 하나에 대응하는 일정시간내에 인터럽트시퀀스프로그램이 실행되는 빈도를 조사하는 방법에 대해서 제52도를 사용하여 설명한다.
제52도는 인터럽트시퀀스프로그램의 실행회수측정의 시퀀스프로그램의 1예이다.
제52도에 있어서 571과 577은 비트디바이스(M9036)가 ON상태에서 도통하는 로드명령, 572과 576은 도통상태에서 비트 디바이스(MO)에 출력하는 출력명령, 573은 도통상태에서 정수(0)을 워드디바이스(DO)의 내용으로 기억하는 전송명령, 574는 본래의 메인시퀀스프로그램, 575는 비트디바이스(M9036)가 OFF상태에서 도통하는 로드부정, 578은 도통상태에서 워드디바이스(D1)의 내용으로 워드디바이스(D0)의 내용을 기억하는 전송명령, 579는 메인시퀀스프로그램(574)의 종료를 나타내는 FEND명령, 5710는 인터럽트시퀀스프로그램(5711)의 선두를 나타내는 포인터 IO, 5711은 본래의 인터럽트시퀀스프로그램, 5712는 비트디바이스(MO)가 ON상태에서 도통하는 로드명령, 5713은 도통상태에서 워드디바이스(DO)의 내용에 1을 가산하는 가산명령, 5714는 인터럽트시퀀스프로그램의 종료를 표시하는 IRET명령이다.
이 제52도에서 표시하는 예에서는 메인시퀀스프로그램이 1회 실행되는 동안의 시간간격내에서 인터럽트포인터(IO)(5710)이후의 인터럽트시퀀스프로그램(5711)이 몇회 실행되었는가를 측정하고 있다.
이 시퀀스프로그램은 이하와 같이 동작한다.
우선 처음에 로드명령(571)과 출력명령(572)에 의해 비트디바이스(MO)가 ON하고 전송명령(573)에 의해 워드디바이스(DO)의 내용을 0으로 한다.
계속해서 본래의 메인시퀀스프로그램(574)를 실행하고, 로드부정명령(575)과 출력명령(576)에 의해 비트디바이스(MO)를 OFF한다.
상기의 동작중에 인터럽트처리로서 인터럽트 포인터(IO)(5710)이후의 인터럽트시퀀스프로그램(5711)이 실행되면 로드명령(5712)과 가산명령(5713)에 의해 비트디바이스(MO)가 ON하고 있으면 워드디바이스(DO)의 내용에 1이 가산되어 IRET명령(5714)에 응답하여 인터럽트시퀀스프로그램(5711)의 실행을 종료한다.
따라서 메인시퀀스프로그램(574)이 실행하고 있는 동안은 비트디바이스(MO)가 ON하고 있으므로 그 ON하고 있는 동안에 실행된 인터럽트 포인터(IO)(5710)이후의 인터럽트시퀀스프로그램(5711)의 회수가 워드디바이스(DO)의 내용에 기억되어 있는 것으로 된다.
이 값을 로드명령(577)과 전송명령(578)에 응답하여 워드디바이스(D1)의 내용으로 전송한다.
따라서 이 시퀀스프로그램을 사용자는 CPU유닛(1)에 의해 동작되는 시퀀스프로그램에 추가하고 이 워드디바이스(D1)의 내용을 외부주변기기(2)를 사용해서 모니터하므로서 메인시퀀스프로그램이 1회 실행하는 사이에 인터럽트 포인터(IO)(5710)이후의 인터럽트 시퀀스프로그램이 몇회 실행되었는가를 알 수 있었다.
다음에 특수유닛(5)으로부터의 처리요구에 응답하는 서비스처리실행회수의 계측은 시퀀스프로그램 추가등에서는 불가능하였다.
다음에 CPU유닛(1)의 다른 제어상태의 하나인 인터럽트 시퀀스프로그램의 실행개시의 시간간격측정에 대한 측정방법에 대하여 제45도는 및 제47도 및 제53도를 사용하여 설명한다.
제53도는 인터럽트 시퀀스프로그램의 실행개시의 시간간격을 계측하는 시퀀스프로그램의 1예이다.
여기서 581은 인터럽트프로그램의 선두를 나타내는 포인터(IO), 582는 비트디바이스(M9036)이 ON상태에서 도통하는 로드명령, 583은 도통상태에서 워드디바이스(D9022)의 내용을 워드디바이스(D0)에 기억하는 전송명령, 584는 도통상태에서 워드디바이스(DO)의 내용으로부터 워드디바이스(D1)의 내용을 감산하여 워드디바이스(D2)에 기억하는 감산명령, 585는 도통상태에서 워드디바이스(DO)의 내용을 워드디바이스(D1)에 기억하는 전송명령, 586은 원래의 인터럽트시퀀스프로그램, 587은 전송프로그램(586)의 종료를 나타내는 IRET명령이다.
또 전송명령(583)에 응답하여 전송원으로 되는 워드디바이스(D9022)의 내용은 CPU(10)에 의해 1초마다에 1을 가산하는 것이다.
이 제53도에 표시하는 시퀀스프로그램의 동작을 이하에 설명한다.
즉, 로드명령(582)과 전송명령(583)에 응답하여 이 시점에서의 카운터의 카운치에 대응하는 워드디바이스(D9022)의 내용을 워드디바이스(DO)에 기억시킨다.
그리고 감산명령(584)에 따라 전회의 인터럽트에서의 카운트치가 기억되어 있는 워드디바이스(D1)의 내용을 워드디바이스(DO)의 내용으로부터 감산하여 그결과를 워드디바이스(D2)에 기억시킨다.
585는 도전상태에서 워드디바이스(D1)에 워드디바이스(DO)의 내용을 기억하는 전송명령, 586은 본래의 인터럽트시퀀스프로그램, 587은 인터럽트시퀀스프로그램(586)의 종료를 표시하는 IRET명령이다.
전송명령(583)에 응답하여 전송원으로 되는 워드디바이스(D9022)의 내용은 1초마다 CPU(10)에 의해 1을 가산하는 것이다.
제53도에 표시하는 시퀀스프로그램의 동작을 이하에 설명한다.
로드명령(582)과 전송명령(583)에 응답하여 이 시점에서의 카운터의 타운트치에 대응하는 워드디바이스(D9022)의 내용을 워드디바이스(DO)에 기억시킨다.
그리고 감산명령(584)에 따라 전회의 인터럽트시의 카운트치가 기억되어 있는 워드디바이스(D1)의 내용을 워드디바이스(DO)의 내용으로부터 감산하여, 그결과를 워드디바이스(D2)에 기억시킨다.
그리고 전송명령(585)에 응답하여 기억된 워드디바이스(DO)의 내용을 다음의 인터럽트시에 사용하기 위해 워드디바이스(D1)에 기억한다.
이 시퀀스프로그램을 사용자는 CPU유닛에 의해 동작하도록 인터럽트시퀀스프로그램에 추가하여 인터럽트 포인터(IO)이후의 인터럽트시퀀스프로그램을 실행할 때마다 워드디바이스(D2)에 기억시킨다.
따라서, 인터럽트시퀀스프로그램(587)의 실행개시의 간격시간은 외부주변기기(2)에 의해 워드디바이스(D2)의 내용을 모니터하므로서 얻을 수 있다.
다음에 CPU유닛(1)의 다른 제어상태의 하나에 대응하는 특수기능유닛(5)로부터의 요구가 있는 경우, 처리동작을 실행하는 간격의 측정방법에 대하여 제45도 및 제54도를 사용하여 설명한다.
제54도는 제45도의 특수기능유닛(5)로부터의 요구가 있는 경우, 처리동작의 실행간격의 시간을 계측하는 시퀀스프로그램의 1예이다.
여기서 592는 비트디바이스(YIE)가 ON상태에서 도통하는 로드명령, 593은 도통상태의 상승부가 검출될 때 워드디바이스의 내용을 워드디바이스(DO)에 기억시키는 전송펄스명령, 594는 도통상태의 상승부가 검출될 때 워드디바이스(DO)의 내용으로부터 워드디바이스(D1)의 내용을 감산하여 감산결과를 워드디바이스(D2)에 기억시키는 감산펄스명령, 595는 도통상태의 상승부분이 검출될 때 워드디바이스(DO)의 내용을 워드디바이스(D1)에 기억시키는 전송펄스명령, 596은 본래의 인터럽트시퀀스프로그램, 597는 인터럽트시퀀스프로그램(596)의 종료를 나타내는 IRET명령이다.
여기서 로드명령(592)의 비트디바이스(YIE)는 특수기능유닛(5)로부터의 요구시 ON하는 비트디바이스이며, 전송펄스명령(593)의 전송원으로 되는 워드디바이스(D9022)의 내용은 CPU(10)가 1초마다 1을 가산하는 것이다.
이 제54도에 표시하는 시퀀스프로그램의 동작을 이하에 설명한다.
즉, 로드명령(592)과 전송펄스명령(593)에 응답하여 제45도의 특수기능유닛(5)로부터의 요구가 있었을 경우 그 시점에서의 카운터치인 워드디바이스(D9022)의 내용을 워드디바이스(DO)에 기억시킨다.
그리고 감산펄스명령(594)에 따라 전회의 특수기능유닛(5)로부터의 요구가 있었던 시점에서의 카운터치가 기억되어 있는 워드디바이스(D1)의 내용을 워드디바이스(DO)로부터 감산하여 그 결과를 워드디바이스(D2)에 기억시킨다.
그리고 전송펄스명령(595)에 응답하여 워드디바이스(D1)에 기억된 내용을 다음에 특수기능유닛(5)로부터의 다른 요구가 있을 때 사용하기 위하여 워드디바이스(D1)에 기억한다.
따라서 이 시퀀스프로그램은 CPU유닛(1)에 의해 작동되도록 사용자는 메인시퀀스프로그램에 추가하여 특수기능유닛(5)로부터의 요구가 있는 경우 이 시퀀스프로그램(596)이 실행되며 워드디바이스(D2)에 1sec단위의 특수기능유닛(5)로부터의 요구의 간격시간이 기억되므로 외부주변기기(2)에 의해 워드디바이스(D2)의 내용을 모니터하여 특수기능유닛(5)로부터의 요구하는 간격의 시간을 알수 있었다.
프로그래머블 콘트롤러는 모터 또는 로봇등의 고속으로 동작하는 기계를 직접 제어하기 때문에, 신호의 섬세한 타이밍을 검출하는 것은 대단히 중요하다.
또 현지에서 동작에 이상이 생겼을 경우, 즉시로 원인을 조사할 필요가 있다.
그러나 이상 설명한 바와 같이 종래의 방식에 의하면 타이밍을 검출하기 위한 시퀀스프로그램을 추가할 필요가 있으며 이미 가동중의 시스템의 프로그램변경은 실용상 바람직하지 못하다.
또 프로그래머에 의해 시퀀스프로그램이 디버그될 때 유효한 내부동작상태를 알기 위하여 디버그용 시퀀스프로그램을 추가하여 동작시키기 때문에 쉽지않고 또 CPU의 동작조건이 서로 다르게 될 가능성도 있다.
또 외부계측기기를 사용하는 방법에서는 외부계측기기가 필요하다는 문제가 있었다.
또 일정시간내에서의 특수유닛(5)으로부터의 처리요구의 실행회수의 계측은 불가능하기 때문에 PC의 동작상태를 상세히 알지 못한다는 문제점이 있었다.
또 특수기능유닛(5)로부터의 요구에 응답하여 CPU유닛(1)의 처리에 요하는 시간을 측정하는 것은 사용자가 시간측정 시퀀스프로그램을 작성하면 가능하다.
이 경우 특수유닛(5)으로부터의 가동신호는 시퀀스프로그램의 END처리시에 CPU유닛(1)에 입력되므로 실제의 기동간격시간에 대한 정밀도는 불량하며 사용자의 프로그래밍작업이 번잡하게 된다는 불편함이 있었다.
또 제45도의 데이터비교회로(19)는 일본국 특개평 3-244003호 및 4-141702호에 나타나 있지만, 디바이스 메모리의 내요잉 지정된 상태일 때, 운전을 정지하기도 하고 데이터의 로킹을 하기 위해서만 사용되고 있으며 온라인상태에서 시간간격을 검출하는 용도에는 사용하지 못했다.
또 시퀀스 처리실행중에 시퀀스프로그램의 어떤 지정구간의 처리시간을 측정하기 위해서는 시퀀스 처리실행중에 지정구간의 개시스텝과 종료스텝의 2개소에서 인터럽트를 발생시키므로서 처리시간을 측정하기 때문에 임의의 스텝에서 인터럽트를 발생시키기 위해서는 제45도의 어드레스비교회로(18)가 2개이상 필요하다는 문제점이 있었다.
다음에 인터럽트프로그램의 실행시간에 관해서 근년에는 고속제어기기가 마련되고 인터럽트프로그램은 고속특성을 요구하는 높은 우선순위의 처리로서 사용하는 경우가 번번이 있으며, 메인프로그램전체의 제어성능과 인터럽트프로그램의 성능의 균형을 취하는 것은 시스템 설계상 대단히 중요하다.
그러나, 종래의 메인프로그램의 주사시간과 인터럽트프로그램의 실시시간의 합계를 주사시간으로 해서 검출하였으므로 주사시간이 예상되는 시간을 넘었을 때에 메인프로그램 자체에 의해 시간이 소요되었는지 인터럽트프로그램의 시간이 영향을 했는지를 판단하기가 곤란하였다.
또 사용자가 인터럽트프로그램의 기동간격을 제53도와 같은 프로그래밍래더프로그램(ladder program)을 삽입할 필요가 있으며 인터럽트프로그램의 수가 많아졌을 경우, 사용자의 프로그래밍작업이 번잡해진다는 문제점이 있었다.
나아가, 이것들의 처리를 래더프로그램상에서 하기 때문에 실제의 인터럽트 프로그램의 처리시간이 길어져 버린다는 결점도 있었다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것이다.
본 발명에 의하면 프로그래머블 콘트롤러는 CPU의 내부동작상태를 계측하는 제어프로그램을 기억하는 제어프로그램기억유닛로 계측된 CPU유닛의 내부동작상태를 기억하는 내부동작상태 기억유닛로 구성되고 내부동자계측 제어프로그램은 외부주변기기로부터의 처리요구에 응답하여 CPU유닛의 내부동작상태를 계측할 수 있도록 한다.
계측결과는 외부주변기기로 보내지므로서 외부주변기기는 CPU유닛의 내부동작상태를 모니터를 하도록 한다.
프로그래머블 콘트롤러는 지정된 장치의 상태를 모니터하고 지정된 장치가 지정된 상태일 때 순시에 CPU로 인터럽트신호를 보내는 인터럽트 발생회로와 지정된 장치의 ON 또는 OFF간격을 계측하는 수단과 외부주변기기의 시간측정기억 유닛의 데이터를 표시하는 수단으로 구성되므로서 지정된 장치는 그 상태를 변화시킬 때까지의 시간을 사용자 프로그램을 사용하지 않고 계측할 수 있다.
또, 프로그래머블 콘트롤러는 시퀀스프로그램의 지정된 부분의 처리시간을 계측하는 수단을 더 구성함으로서 처리시간의 계측결과는 외부주변기기에 의해 모니터될 수 있다.
따라서, 지정된 부분의 처리시간은 하나의 어드레스 비교호로를 사용하여 계측할 수 있다.
프로그래머블 콘트롤러는 인터럽트프로그램이 시퀀스프로그램의 1주사내에서 시행되는 동안 누적 실행기간의 시간을 계측하는 수단과 계측된 인터럽트프로그램의 누적실행시간을 기억하는 인터럽트누적기억유닛과 외부주변기기에 인터럽트누적기억유닛의 데이터를 표시하는 수단으로 구성됨으로써 주사시간에서 인터럽트프로그램의 실행시간의 영향이 계측될 수 있다.
프로그래머블 콘트롤러는 END처리의 처리시간을 계측하는 수단을 더 구성함으로써 처리시간의 계측결과는 외부주변기기에 의해 모니터될 수 있고 사용자는 시퀀스프로그램을 변경시킬 필요가 없다.
프로그래머블 콘트롤러는 특수기능유닛으로부터의 처리요구에 응답하여 서비스프로그램이 시행되는 동안의 처리시간을 계측하는 수단을 더 구성함으로써 처리시간의 계측결과는 외부주변기기에 의해 모니터될 수 있고 사용자는 시퀀스프로그램을 변경시킬 필요가 없다.
프로그래머블 콘트롤러는 외부인터럽트신호에 의해 작동되는 인터럽트프로그램의 시행회수를 계측하는 수단을 더 구성하므로서 시행회수의 계측결과는 외부주변기기에 의해 모니터될 수 있고 사용자는 시퀀스프로그램을 변경할 필요가 없다.
프로그래머블 콘트롤러는 특수기능유닛으로부터의 처리욕에 응답하여 서비스프로그램의 시행회수를 계측하는 수단을 더 구성함으로써 시행회수의 측정결과는 외부주변기기에 의해 모니터될 수 있다.
서비스프로그램의 시행회수는 일반적으로 사용자측에서 측정될 수 없다.
프로그래머블 콘트롤러는 외부인터럽트신호에 응답하여 작동하는 인터럽트프로그램의 작동간격을 측정하는 수단을 더 구성함으로서 작동간격의 측정결과는 외부주변기기에 의해 모니터될 수 있고 사용자는 시퀀스프로그램을 변경할 필요가 없다.
또, 프로그래머블 콘트롤러는 외부주변기기와 특수기능유닛으로부터의 처리요구에 대한 서비스처리의 실행간격시간을 계측하는 수단을 더 구성함으로써 시간간격의 측정결과는 외부주변기기에 의해 모니터될 수 있다.
사용자는 시퀀스프로그램을 변경할 필요가 없다.
[실시예 1]
본 발명의 1실시예를 제1~17도로부터 설명한다.
제1도는 본 발명의 1실시예에 따른 개략구성을 나타내는 블록도면이며, 도면에서 기호(1A)는 본 발명에 따른 PC의 CPU유닛, 기호 2A는 본 발명에 따른 모니터결과를 표시하는 퍼스널컴퓨터등의 외부주변기기, 참조번호 (3)~(11)과 (14)~(19)와 (12A)는 제45도에 표시하는 종래의 기술과 동일의 것을 표시하며, 기호(12A)는 PC의 동작상태를 데이터로서 기억하는 처리를 하게 변경된 본 PC의 시스템프로그램을 기억하는 시스템ROM, 기호13A는 PC의 동작상태를 데이터로서 기억하는 데이터RAM이다.
다음에 제2도는 제1도에 표시한 시스템 ROM(12A)에 기억된 본 발명에 의한 CPU유닛(1A)이 실행처리의 1예를 나타낸 것이며, 이 처리는 제47도에 표시한 종래의 CPU유닛(1)의 실행처리에 대해서 본 발명의 1실시예에 의해 CPU유닛(1A)의 내부동작상태를 데이터로서 기억하기 위하여 처리(2011)~처리(2017)과 처리(2041)~처리(2044)를 추가하고, END처리(203)중에서 외부주변기기(2A)와의 교신처리(2031)와 특수유니서비스처리(2032)를 변경한 것이다.
또 제2도에 있어서 변경된 외부주변기기(2A)와의 교신처리(2031)의 처리내용을 제3도에 나타낸다.
제3도에 있어서 처리(304)~처리(314)는 본 발명의 실시예에 의해 추가된 처리이다.
또 제2도에 있어서 변경된 특수기능유닛(5)으로부터의 요구에 대해서 내부처리를 실행하는 특수유닛서비스처리(2032)의 처리내용을 제33도에 나타낸다.
제33도에 있어서 처리스텝(3302)~처리(3304)와 처리(3306)은 본 발명의 1실시에에 의해 추가된 것이다.
여기서, 제2도에 표시하는 CPU유닛(1A)의 실행처리의 개요를 제1~3도와 제33도를 사용해서 설명한다.
제2도에 있어서 CPU유닛(1A)은 우선 처음에 스텝(201)로 메인프로그램의 실행을 개시하고 스텝(2011)~스텝(2015)로 데이터 RAM(13A)에 보존된 CPU유닛(1A)의 내부동작상태를 모니터하기 위해서 데이터를 기억하는 구역을 초기화한다.
이 스텝(2011)~스텝(2015)의 동작에 대해서는 이후의 실시예에서 설명한다.
다음에 스텝(202)에서 시퀀스제어를 하기 위해서 시퀀스처리의 실행을 하여 종래의 방법과 마찬가지로 (5221)에서 미리 정해진 시퀀스프로그램에 기준하여 개시스텝을 메인시퀀스프로그램의 0스텝에 세트하고 다음의 스텝(5222)에 의해 개시스텝인 0스텝으로부터 FEND명령의 스텝까지를 실행한다.
FEND명령을 실행하면 다음에 스텝(2016)과 END처리의 스텝(203)과 스텝(2017)을 실시한다.
여기서 스텝(2016)과 스텝(2017)은 CPU유닛(1A)의 내부동작상태의 하나인 END처리(203)의 처리시간을 계측하기 위한 처리이며 그 동작은 이후의 실시예에서 설명한다.
또 END처리의 스텝(203)에서는 외부주변기기(2A)와의 교신처리(2031)와 특수유닛서비스처리(2032)와 입출력신호를 디바이스메모리(16)에 기억된 값에 응답해서 입력신호의 입력 또는 출력을 하는 처리등의 END처리(5233)를 실행한다.
여기서 외부주변기기(2A)와의 교신처리(2031)에서는 제3도에 나타내는 처리가 시행된다.
즉, 외부주변기기(2A)로부터의 요구데이터를 수신한 CPU유닛(1A)는 스텝(301)에서 요구데이터에 포함되는 요구코드의 값을 판단하여 그 판단결과로서 각종 요구에 대응한 처리의 스텝(302)~스텝(314)으로 분기한다.
예컨대 요구코드가 1이라는 값이라면 그 값이 나타내는 시퀀스프로그램판독처리의 스텝(302)으로 분기하여 실행한다.
또 요구코드가 2라는 값이라면 이 값이 나타내는 디바이스판독처리의 스텝(303)으로 분기하여 실시한다.
이외에도 요구코드의 3~13에 대응하는 처리스텝(304)~(3014)는 본 발명의 1실시예에 의해 추가된 처리이며 이후의 실시예에서 설명한다.
요구코드에 대응하는 처리의 실행이 종료하면 종료스텝(315)에서 외부주변기기(2A)와의 교신처리를 종료한다.
상술한 바와 같이 외부주변기기(2A)와의 제2도의 교신처리(2031)를 종료하면 다음에 특수유닛서비스처리(2032)로 진행한다.
이 특수유닛서비스처리(2032)에서는 제33도에 나타내는 처리를 실행한다.
즉, 스텝(3300)에서 개시하고 스텝(3301)에서 제1도의 특수기능유닛(5)으로부터의 처리요구가 있는가를 판단하여 처리요구가 없으면 종료스텝(3307)에로 분기하며 처리요구가 있으면 다음의 스텝(3302)~스텝(3304)을 실행한 후 다음의 스텝(3305)에서 특수기능유닛(5)으로부터의 처리요구에 대한 서비스실행처리를 실행하고 다음의 스텝(3306)을 실행하여 다음의 종료스텝(3307)에서 특수유닛서비스처리(2032)를 종료한다.
여기서 스텝(3302)~스텝(3304)와 스텝(3306)은 CPU유닛(1A)의 내부동작상태의 하나인 특수유닛서비스처리(2032)의 처리시간등을 계측하기 위한 처리이며 그 동작에 대해서는이후의 실시예에서 설명한다.
특수유닛서비스처리(2032)를 종료하면 다음의 기타의 END처리 스텝(5233)을 실행하여 END처리(203)의 실행을 종료한다.
제2도의 END 처리(203)를 종료하고, 스텝(2017)까지의 실행을 종료하면, 스텝(2014)에 복귀하여, 제1도의 CPU유닛(1A)은 재차 처리를 반복하게 된다.
이와같이 CPU유닛(1A)은 스텝(2014)로부터 스텝(2017)까지를 반복하여 실행처리하는 것이다.
이 반복 실행중에, 제1도의 CPU(10)에 제1도의 인터럽트발생회로(17)로부터 인터럽트신호가 들어온 경우, 제2도의 스텝(204)에 표시하는 인터럽트프로그램 실행처리가 개시된다.
이 인터럽트프로그램실행처리(204)에서는 스텝(2041)~처리(2043)에서 인터럽트프로그램실행처리의 처리상태를 계측하기 위한 처리를 하여, 다음에 스텝(524)으로 진행한다.
다음의 스텝(5241)~스텝(5244)은 제47도에 표시하는 종래의 인터럽트프로그램 실행처리(524)와 마찬가지로, 스텝(5241)에서 실행중의 메인시켄스프로그램의 스텝을 기억하고, 스텝(5242)에서 개시스텝에 인터럽트프로그래므의 선두스텝을 세트하며, 스텝(5243)에서 IREF명령까지를 실행하고, 스텝(5244)에서 기억한 메인프로그램의 스텝을 복귀하여, 개시스템에 세트한다.
다음에 스텝(2044)에서 인터럽트프로그램을 실행처리의 처리상태를 계측하기위한 처리를 하고, 다음에 스텝(2045)에서 인터럽트프로그램실행을 종료하여 본래의 메인프로그램으로 복귀한다.
이와같이 제1도의 CPU유닛(1A)은 제2도에 표시하는 것 같이 정상조건하에서 스텝(2014)으로부터 스텝(2017)까지를 반복하여 실행하고, 인터럽트처리요구가 발생하면 그때마다 인터럽트프로그램의 실행처리(204)를 실행하고, 그후 메인프로그램으로 복귀하는 것이다.
다음에 디바이스의 ON, OFF의 정의에 대해서 제4도를 사용하여 설명한다.
제4도에 있어서 비트디바이스 XO(401)는 입출력유닛으로부터의 입력신호를 나타내며, 처음의 OFF의 상태로부터, 시간의 경과와 더불어 어떤시간(402)에서 OFF로부터 ON으로 변화하여 ON상태로 되고, (405)에서 표시한 시간이 경과한후, 어느시간(403)에서 ON으로부터 OFF로 변화하여 OFF상태로 된다.
(406)으로 표시한 시간이 경과한 후 시간(404)에서 비트디바이스(XO)는 OFF에서 ON으로 재차 변화하여 ON상태로 된다.
본 발명에서 말하는 바의 디바이스간격이란, 디바이스(401)가 ON상태로 되어 있는 시간(405) 또는 OFF상태로 되어 있는 시간(406)을 말한다.
다음에 제1도에 표시한 데이터 RAM(13A)의 상세한 구성에 대하여 제5도에 표시하고 설명한다.
제5도에 있어서, 501는 디바이스간격을 측정하기 위한 데이터를 기억하는 구역이며, 5011은 계측의 대상으로 되는 디바이스를 식별하기 위해서 사용되는 코드를 기억하는 디바이스코드구역, 5012는 디바이스가 소정의 상태일때에 시간측정을 하는가 여부를 나타내는 데 사용되는 코드를 기억하는 계측조건구역, 5013은 디바이스간격의 처리가 어느 상태에 있는가를 나타내는 코드를 기억하는 디바이스간격계측프래그구역, 5014는 디바이스간격의 계측을 개시한 시간을 기억하는 개시시간구역, 5015는 계측한 디바이스간격을 기억하는 디바이스간격계측결과구역이다.
또, 502는 시퀀스프로그램의 지정구간의 처리시간을 계측하기 위한 데이터를 기억하는 구억이며, 5021은 지정구간의 기시스템을 기억하는 개시스텝구역, 5022는 지정구간의 종료스텝을 기억하는 종료스텝구역, 5024는 지정구간의 계측을 개시한 시간을 기억하는 개시시간구역, 5025는 계측한 지정구간의 처리시간을 기억하는 지정구간처리시간 구역이다.
또, 503은 인터럽트프로그램의 누적실행시간을 계측하기 위한 데이터를 기억하는 구역이다.
5031은 인터럽트프로그램을 실행한 때의 개시시간을 기억하는 인터럽트프로그램개시시간구역, 5032는 인터럽트프로그래므의 누적실행시간을 기억하는 인터럽트프로그램의 누적실행시간구역이다.
또, 504는 END처리의 처리시간을 계측하기 위한 데이터를 기억하는 구역이며, 5041은 END처리의 개시시간을 기억하는 END처리 개시시간구역, 5042는 END처리시간의 계측결과를 기억하는 END처리시간구역이다.
또, 505는 특수유닛서비스처리의 처리시간을 계측하기 위한 데이터를 기억하는 구역이며, 5051은 특수유닛서비스처리의 처리시간을 계측한 결과를 기억하는 특수유닛서비시츠러시간구역이다.
또, 506은 인터럽트프로그램의 실행회수를 기억하기 위한 인터럽트프로그램실행회수 구역이다.
또, 507은 특수유닛서비스처리의 실행회수를 기억하기 위한 특수유닛서비스처리실행회수 구역이다.
또, 508은 인터럽트프로그램의 기동간격시간을 기억하기 위한 인터럽트프로그램기동간격시간 구역이다.
또, 509는 특수유닛서비스처리의 실행간격시간을 기억하기 위한 특수유닛서비스 처리실행간격시간 구역이다.
여기에서 본 발명의 1실시예인 디바이스간격의 계측에 사용되는 제5도의 디바이스코드구역(5011)의 내용에 대해서 제6도에 설명한다.
이 디바이스에 대응한 값이 기억되며, 그 값은 제6도에 나타내는 것같이, 비트디바이스(X0~X999)는 0~999, 비트디바이스(Y0~Y999)는 1000~1999와 같이 모든 디바이스에 대해서 이련번호로 할당되어, 어느 디바이스의 몇번째인가를 식별할 수 있게 되어 있다.
또, 디바이스간격의 계측에 사용되는 제5도의 디바이스간격계측프래그구역(5012)의 내용에 대해서는, 제7도에 나타내는 것같이, 계측조건에 ON상태가 지정된 경우에는 1, OFF상태가 지정된 경우에는 0이 기억된다.
또, 제8도는 제5도의 디바이스간격계측프래그구역(5013)의 내용의 천이(transition)을 나타낸 것이며, 여기에서는 상태(801)에 있어서 외부주변기기(2A)로부터으 계측요구가 있었을 경우는 0, 상태(802)에 있어서 CPU유닛(1A)으로 계측이 개시된 경우는 1, 상태(803)에 있어서 CPU유닛(1A)으로 계측이 완료한 경우는 2의 값이 기억된다.
제9도는 이 발명의 1실시예에 의한 디바이스간격의 계측의 수순을 설명하기 위한 플로차트이며, 스텝(901)과 스텝(910)은 사용자가 외부주변기기(2A)에 대해서 하는 조작, 스텝(902)으로부터 스텝(909)까지는 외부주변기기(2A)의 처리 내용을 표시하고 있다.
이외에도, 그 동작은 이하에서 상세히 설명한다.
우선 처음에 이 발명의 1실시예의 CPU유닛(1A)의 내부도작상태의 하나인 디바이스간격을 계측하는 경우의 동작에 대하여 제1~제17도를 사용하여 설명한다.
제9도에 있어서, 스텝(900)에서 디바이스간격의 계측이 개시되면, 스텝(901)에서 제1도에 나타내는 외부주변기기(2A)에 있어서, 제10도에 나타내는 화면이 표시되어 있는 상태에서, 사용자는 키보드(2a)로부터 계측의 대상으로 되는 디바이스명칭과, 계측조건을 입력한다.
제10도는 디바이스간격의 계측을 하는 경우에 외부주변기기(2A)에 표시되는 화면의 예이며, 제10도에 있어서 (1001)은 계측의 대상으로되는 디바이스명칭을 입력하는 구역, 1002는 계측조건을 입력하는 구역이다.
여기서, 계측조건에는 ON상태의 시간을 측정하는 경우는 ON시간, 또, OFF상태의 시간을 측정하는 경우는 OFF시간 어느 쪽인가를 선택하여 입력할 수가 있다.
이 제10도의 예에서는 계측대상의 디바이스에 대해서 사용자는 X0라 입력하고, 계측조건에 대해서 사용자는 ON시간을 입력하고 있으며, 사용자는비트디바이스 X0가 ON하고 있는 사이의 시간을 계측하도록 지시하고 있는 것을 나타내고있다.
이상의 입력이 끝나면 외부주변기기(2A)는 스텝(902)에서 입력된 데이터에 기준하여 제11도에 표시하는 요구데이터(1101)를 작성한다.
여기서 제11도는 제10도에 표시하는 것같은 설정을 외부주변기기(2A)에서 설정한 후, 외부주변기기(2A)와 CPU유닛(1A)과의 사이에서 교환하는 데이터의 구성을 나타내는 것이며, 1101은 외부주변기기(2A)로부터 CPU유닛(1A)로 보내지는 요구데이터의 구성이며, 11011은 디바이스간격의 계측을 지시하는 요구코드, 11012는 계측될 디바이스코드를 나타낸다.
11013은 계측조건을 나타내는 코드, 1102는 요구데이터(1101)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 응답데이터의 구성이다.
제11도의 예에서는 요구코드(11011)는 디바이스간격 측정요구를 표시하는 값 3, 디바이스코드(11012)는 제6도에 표시하는 바와 같이 0, 측정조건(11013)은 제7도에 표시하는 것같이 1로된다.
다음에 스텝(903)에서 이 요구데이터(1101)를 CPU유닛(1A)에 송신하여, 스텝(904)에서 CPU유닛 (1A)으로 부터의 응답데이터를 수신할 때까지 대기상태로된다.
여기에서 외부주변기기(2A)로부터의 요구데이터(1101)을 수신할 때의 CPU(1A)의 동작을 제1도~제3도와 제13도에 표시하는 플로차트에 의해 설명한다.
우선, 제2도에 표시하는 메인프로그램 실행처리(201)을 하고 있는 제1도의 CPU유닛(1A)은, 제2도의 외부주변기기(2A)와의 교신처리(2031)에 있어서, 제11도의 요구데이터(1101)를 수신하고, 제3도에 표시하는 처리(301)로 요구코드(11011)에 따라 디바이스간격계측은 요구처리(304)로 분기한다.
이 처리(304)에서는, 제13도에 나타내는 처리가 실행되며, 디바이스간격의 계측을 하기 위해서 초기설정이 행해진다.
제13도에 나타내는 처리는 우선, 스텝(1301)에서 처리를 개시하고, 처리(13011)에서 제11도의 디바이스코드(11012)를 제5도의 데이터 RAM(13A)의 디바이스코드구역(5011)에, 제11도의 계측조건(11013)을 제5도의 데이터 RAM(13)의 계측조건구역(5012)에 각각 기억하고, 처리(13012)에서 제5도의 데이터 RAM(13A)으 디바이스간격계측프래그구역(5013), 제8도에 나타낸 바와같이 디바이스간격 계측요구가 있었다는 것을 나타내는 값(0)을 기억한다.
다음에 처리(13013)로, 제11도의 계측조건(11013)이 ON 또는 OFF상태인가를 판단하여, ON상태일 때, 처리(13013)으로 분기하고, OFF상태일 때 처리(13015)로 분기한다.
제10도의 에에서는 계측조건은 ON일 때 이므로, 처리(13014)로 분기하고, 여기에서는 제11도의 디바이스크드(1102)에 의해 지정된 디바이스가 OFF로부터 ON으로 변화하였을 때에 디바이스간격의 계측을 개시하기 때문에 제15도의 데이터비교회로(19)의 검출조건을 OFF→ON으로 한다.
또, 제11도의 계측조건(11013)이 OFF이면, 처리(13013)으로부터 처리(13015)로 분기하며, 처리(13015)에서 제11도의 디바이스코드(11012)로 지정된디바이스가 ON에서 OFF로 변화한때에 디바이스간격의 계측을 개시하기 때문에 제1도의 데이터비교회로(19)의 검출조건이 ON→OFF로 한다.
처리(13014) 및 처리(13015)의 어느쪽으로 분기한 경우도, 다음에 처리(13016)로 진행하며, 여기서 제1도의 데이터비교회로(19)에 제11도의 디바이스코드(11012)를 세트하고, 최후에 처리(13017)에서 CPU유닛(1A)이 디바이스간격계측요구처리를 완료한 것을 나타내는 응답데이터(1102)를 작성하고, 외부주변기기(2A)에 송신하여 스텝(13018)에서 완료한다.
이상의 처리를 한후, 계속해서 CPU유닛(1A)은 제2도에 나타내는 특수유닛서비스처리(2032)를 실행하고, 종래 시스템과 같은 방법으로 시퀀스처리(202)와 END처리(203)를 반복해서 실행한다.
이 반복실행중에 제11도의 디바이스코드(11012)에 의해 지정된 디바이스의 상태가 제1도의 데이터비교회로(19)의 검출조건에 세트된 상태로 변화된때, 데이터비교회로(19)는 제1도의 CPU(10)에 대하여 인터럽트신호를 송출하도록 되어 있으며, 이 인터럽트신호를 수신하였을 때, CPU(10)는 메인프로그램의 실행을 중단하고, 제15도에 나타내는 인터럽트처리(1501)로 이행한다.
제15도는 디바이스간격의 측정하는 동안에 제1도의 데이터비교회로(19)로부터 발생한 인터럽트의 처리동작을 나타낸 것이다.
인터럽트처리(1501)에서는 처리(15011)에서 제5도의 디바이스간격계측프래그구역(5013)의 내용이 0인지 아닌지 여부를 체크한다.
현재의 내용이 0이기 때문에, 다음의 처리(15012)로 분기한다.
처리(15012)에서, 제1도에 나타내는 내부타이머(21A)의 현재의 값을 개시시간구역(5014)에 기억하고, 다음의 처리(15013)에서 제1도의 데이터비교회로(19)에 세트한 검출조건의 반전조건, 즉 OFF→ON이면 ON→OFF를 ON→OFF이면 OFF→ON을 검출조건으로 하여 데이터비교회로(19)에 세트하고, 처리(15014)로 제5도의 디바이스간격계측 프래그구역(5013)에 계측개시를 나타내는 값인 1을 기억하고, 인터럽트처리를 종료한다.
이와같이 인터럽트처리(1501)가 종료되면, CPU(10)는 제2도의 메인프로그램실행처리(201)를 중단한 스텝으로부터 메인프로그램실행을 재개한다.
그후, 제5도의 디바이스크드(5012)로 지정되는 디바이스의 상태가 변화될때, 제1도의 데이터비교회로(19)는 인터럽트 신호를 발생하며, 이것에 의해 CPU(10)의 메인프로그램의 실행을 중단하고 인터럽트처리(1501)로 진행한다.
제15도의 인터럽트처리(1501)에서는 제5도의 디바이스간격계측프래그(5013)의 내용이 1이기 때문에, 처리(15011)에서 처리동작을 중단하고 처리(15015)로 분기한다.
이 스텝에서 제5도의 개시시간구역(5015)에 기억한 값은 제1도에 나타내는 내부타이머(21A)의 현재의 값으로부터 간산되고, 감산결과는 제5도의 디바이스간격계측결과구역(5015)에 기억된다.
예컨데, 감산한 결과 얻어진 시간이 30msec이면, 제5도의 디바이스간격계측결과구역(5015)에는 30이라는 값이 기억된다.
최후에, 처리(15016)에서 제5도의 디바이스간격계측프래그(5013)에 기억된 계측완료를 나타내는 값(2)을 기억하며, 스텝(15017)에서 인터럽트처리를 완료한다.
이상의 일련의 처리를 전부 완료하므로서, CPU유닛(1A)은 디바이스간격의 계측을 완료한 것으로 된다.
한편, 외부주변기기(2A)가, 제11도에 나타내는 응답데이터(1102)를 수신하면, 제9도의 스텝(905)에서 디바이스간격의 계측결과를 판독한다.
외부주변기기(2A)는 제12도에 나타내는 요구데이터(1201)를 작성하고, 스텝(906)에서 이 요구데이터(1201)를 CPU유닛(1A)에 송신하며, 스텝(907)에서 CPU유닛(1A)으로부터의 응답데이터를 수신할 때까지 대기상태로 된다.
제12도는 제11도에 나타내는 요구데이터(1201)를 외부주변기기(2A)로부터 수신한 후, CPU유닛(1A)에 송신하는 데이터의 구조를 나타낸 것이다.
1201은 CPU유닛(1A)으로부터 요구데이터에 응답하여 외부주변기기(2A)로 보내지는 계측완료를 나타내는 응답데이터의 구성이며, 이 응답데이터는 계측완료와 디바이스간격의 계측결과(12021)를 나타내는 1의 값에 의해 정해진다.
1203은 요구데이터(1201)에 응답하여 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 디바이스 간격측정중을 나타내는 응답데이터의 구성이며, 측정중을 나타내는 값이 0으로 구성된다.
외부주변기기(2A)로부터의 요구데이터(1201)를 수신하였을 때의 CPU유닛(1A)의 동작을 제1도~제3도 및 제14도에 나타내는 플로차트로 설명한다.
제14도는 디바이스간격을 계측하기 위해서 제3도에 있어서 추가된 디바이스간격시간 판독처리(305)의 플로차트이며, 이 플로차트는 제12도에 표시된 요구데이터(1201)가 보내진 경우의 CPU유닛(1A)의 처리를 나타낸 것이다.
우선 CPU유닛(1A)은, 제2도에 나타내는 외부주변기기와의 교신처리(2031)에 있어서 제12도의 요구코드(1201)에 따라서 디바이스 간격시간 판독처리(305)로 분기한다.
이 처리(305)에서는, 제14도에 나타내는 처리는 스텝(1401)에서 실행되도록 개시되고, 처리(14011)에서 제5도의 디바이스간격계측프래그구역(5013)의 내용이 2와 같은지 아닌지를 체크하여, 즉 디바이스 간격의 계측이 완료된다.
만일, YES이면 처리(14012)에서 제5도의 디바이스간격 계측결과구역(5015)로부터 값을 판독하고, 처리(14013)에서 계측완료를 나타내는 제12도의 응답데이터(1202)를 작성하여, 외부주변기기(2A)에 송신한다.
예컨데 제5도의 디바이스 간격계측결과구역(5015)에 기억된 값이 30이라면, 응답데이터(1202)의 디바이스간격시간(12021)은 30이라는 값이 송신된다.
또, 디바이스간격의 계측이 완료되고 있지 않다면, 처리(14011)로부터 처리(14014)로 분기하며, 측정중을 나타내는 제12도의 응답데이터(1203)를 작성하여, 외부주변기기(2A)로 송신하고, 스텝(14015)에서 종료한다.
한편, 외부주변기기(2A)에서는 제9도의 스텝(908)에서 CPU유닛(1A)으로부터 수신한 응답데이터가 제12도에 나타내는 계측완료의 응답데이터(1202)인가, 즉 응답데이터의 선두가 1이라는 값인가를 체크하며, 만일 YES이면, 스텝(909)에서 응답데이터(1202)에 포함되는 디바이스간격계측결과(12021)를 제16도에서 표시되는 것같은 화면상의 계측결과 표시구역(1601)에 표시하고, 스텝(910)에서 사용자는 외부주변기기(2A)의 화면으로부터 디바이스간격의 계측결과를 판독할 수 있다.
또, 제9도의 스텝(908)에서 제12도에 표시하는 계측중의 응답데이터(1203)를 수신했다고 판단한 경우는 계츨완료의 응답데이터(1202)가 수신될 때까지 요구데이터(1201)를 CPU유닛(1A)에 재차 송신하며 응답데이터(1202)가 수신될 때까지의 처리를 반복한다.
이상에서 설명한 바와같이 본 발명에 의한 실시예 1에서는, 디바이스 간격을 계측하는 처리를 사전에 준비하고, CPU유닛(1A)의 시스템 ROM(12A)에 기억해 놓는다.
따라서, 사용자는 디바이스 간격계측용의 시퀀스프로그램을 추가하는 것과 같은 번거로운 조작을 하는 일 없이 신속하게 디바이스간격을 계측할 수가 있다.
[실시예 2]
다음에 CPU유닛(1A)의 내부상태의 1예인, 시퀀스프로그램의 지정구간의 처리시간을 계측하는 방법에 대해서 제1도~제3도와 제5도와 제17도~제25도에 의해 설명한다.
제17도는 제1도의 시퀀스프로그램메모리(11)에 기억되는 시퀀스프로그램을 리스트에 의해 나타낸 하나의 예이며, 도면에 있어서 좌측이 스텝(1701)이면, 그 우측이 프로그램의 각 스텝(1701)마다에 기술된 시퀀스프로그램의 명령(1702)이다.
이 실시예에서는 제17도에 표시한 시퀀스프로그램의 스텝(1701)의 100에서 150까지를 계측하는 예를 나타낸다.
제18도는 이 발명의 실시예 2에 의한 지정구간의 처리시간 계측의 수순을 설명하기 위한 플로차트이며, 스텝(1801)과 스텝(1810)은 외부주변기기(2A)에 대한 사용자의 조작을 나타내며, 스텝(1802)으로부터 (1809)까지는 외부주변기기(2A)의 처리내용을 표시하고 있다.
이하 그 상세한 설명을 한다.
다음에 이 발명의 1실시에의 시퀀스프로그램의 지정구간 처리시간을 계측하는 경우의 동작에 대해서 제18도의 플로차트에 따라 제1도~제3도 및 제5도 및 제17도~제25도를 사용하여 설명한다.
제17도에 나타내는 시퀀스프로그램은 제2도의 시퀀스처리(202)에 있어서 0스텝으로부터 FEND명령이 있는 1000스텝까지 순차 실행된다.
여기서 시퀀스프로그램의 100스텝으로부터 150스텝까지를 실행한 때의 처리시간을 계측하고 싶은 경우, 제18도의 스텝(1800)에서 개시하며, 스텝(1801)에서, 제1도의 외부주변기기(2A)에 있어서, 제19도에 표시하는 화면이 표시되어있는 상태에서 사용자는 키보드(2a)를 통하여 계측하도록 지정구간의 개시스텝과 종료스텝을 입력한다.
여기서 제19도는 지정구간의 처리시간을 계측하는 경우에 외부주변기기(2A)에 표시되는 화면예이며, 도면에 있어서 1901은 계측하는 지정구간의 종료스텝을 입력하는 구역, 1902는 지정구간의 종료스텝을 입력하는 구역이다.
이 제19도의 예에서는 사용자는 개시스텝에 100, 그리고 종료스텝에 150을 입력시키고 있으며, 제17도의시퀀스프로그램의 100스텝으로부터 150스텝까지의 처리시간의 계측을 지시하고 있는 것을 가르키고 있다.
이상의 입력이 끝나면, 다음의 스텝(1802)으로 진행하고, 이 스텝에서 제1도의 외부주변기기(2A)는, 입력된 데이터에 기준하여 제20도에 표시하는 요구데이터(2001)를 작성한다.
여기서 제20도는 제19도와 같은 데이터설정을 외부주변기기(2A)에서 한후, 외부주변기기(2A)와 CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 표시하는 것이며, 2001은 외부주변기기(2A)로부터 CPU유닛(1A)에 보내지는 요구데이터의 구성이며, 20011은 지정구간의 계측을 지시하는 요구코드, 20012는 지정구간의 개시스텝, 20013은 지정구간의 종료스텝이다.
20012는 요구데이터(2001)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)로 송신되는 응답데이터의 구성이다.
제19도의 예에서는 요구코드(20011)는 지정구간처리시간측정요구를 나타내는 값인 5, 개시스텝(20012)은 100, 종료스텝(20013)은 150으로 된다.
다음 스텝(1803)에서 이 요구데이터(2001)를 CPU유닛(1A)에 송신하고, 스텝(1804)에서 CPU유닛(1A)으로 부터의 응답을 수신할 때까지 대기상태로 된다.
여기서, 외부주변기기(2A)로부터의 요구데이터(2001)를 수신할 때의 CPU유닛(1A)의 동작을 제1도~제3도와 제22도에 표시하는 플로차트에 의해 설명한다.
우선, 제2도에 표시하는 메인프로그램실행처리(201)를 하고 있는 CPU유닛(1A)은, 외부주변기기(2A)와의 교신처리(2031)에 있어서, 요구데이터(2001)를 수신하여, 제3도에 표시하는 처리(301)에서 요구코드(2001)에 따라 지정구간 처리시간 계측요구처리(306)로 분기한다.
이 처리(306)에서는 제22도의 스텝(2201)에서 그 처리가 개시실행된다.
우선, 처리 (22011)에서 제20도의 개시스텝(20012)를 제5도의 데이터 RAM(13A)의 개시스텝구역(5021)에 제20도의 종료스텝(20013)을 제5도의 데이터 RAM(13A)의 종료스텝구역(5022)에 각각 기억하고 처리(22012)에서, 제5도의 데이터 RAM(13A)의 지정구간 계획 프래그구역(5023)에 지정구간의 처리시간 계측요구가 있었다는 것을 표시하는 값 0을 기억한다.
다음에 처리(22013)에서, 제1도의 어드레스비교회로(18)에, 제5도의 개시스텝구역(5021)의 값인 100을 세트하고, 최후에 처리(22014)로 CPU유닛(1A)이 지정구간의 처리시간게측요구처리를 완료한 것을 나타내는 응답데이터(2002)를 작성하여 외부주변기기(2A)에 송신하고 스텝(22015)에서 종료한다.
이상의 처리를 한 후, CPU유닛(1A)은 계속하여 제2도에 표시하는 특수유닛서비스처리(2032)를 실행하고 그후 시퀀스처리(202)를 재차 실행한다.
이 시퀀스처리(202)를 실행중에 제20도의 개시스텝(20012)으로 지정의 스텝, 즉 100스텝째의 명령을 실행하려고 하면, 제1도의 어드레스비교회로(18)는 CPU(10)에 대하여 인터럽트신호를 송출하도록 되어있으며, 이 인터럽트 신호를 받았을 때, CPU(10)느 제2도의 시퀀스처리(202)의 실행을 중단하고, 제24도에 표시하는 인터럽트처리(2401)로 이행한다.
인터럽트처리(2401)에서는 우선, 처리(24011)로 제5도의 지정구간계측프레그구역(5023)의 내용이 0인지 아닌지를 체크하고, 현재의 내용이 0이기 때문에, 처리(24012)로 분기한다.
다음에 처리(24012)로 제1도에 표시하는 내부타이머(21A)의 현재의 값을 제5도의 개시시간구역(5024)에 기억하고, 처리(24013)로 제5도의 종료스텝구역(5024)에 기억하며, 처리(24013)로, 제5도의 종료스텝구역(5022)에서 기억된 값(150)에 1을 가산한 값(151)을 제1도의 어드레스비교회로(18)에 세트한다.
여기서, 종료스텝에 1을 가하는 것은 150스텝까지 실행하고 다음의 151스텝을 실행하는 직전에서 처리시간을 측정하기 위해서이다.
그리고, 처리(24014)로, 제5도의 지정구간 계측프래그구역(5023)에 계측개시를 표시하는 값1을 기억하고, 인터럽트처리를 스텝(24018)에서 종료한다.
인터럽트처리(2401)가 종료하면, CPU(10)는 제2도의 시퀀스처리(202)를 중단한 스텝에서 메인프로그램의 실행을 재개한다.
그후, 제1도의 어드레스배교회로(18)에 세트된 스텝, 즉 종료스텝 +1의 151스텝을 실행하려고 하면, 제1도의 어드레스비교회로(18)에 인터럽트신호를 발생하고, 이것에 의해 CPU(10)는 시퀀스처리(202)의 실행을 중단하고 인터럽트처리(2401)로 이행한다.
인터럽트처리(2401)에서는 이번에는 제5도의 지정구간계측프래그(5023)의 내용이 1이기 때문에, 처리(24011)의 판단으로, 처리(24015)로 분기하며, 내부타이머(21A)의 현재의 값으로부터 제5도의 개시시간구역(5024)에 기억된 값을 감산하며, 그 결과를 제5도의 지정구간처리시간구역(5025)에 기억한다.
예컨데, 감산한 결과 얻어진 시간이 8msec이라면, 제5도의 지정구간처리시간구역(5025)에는 8이라는 값이 기억된다.
최후에, 처리(24016)로 제5도의 지정구간 계측프래그(5023)에 계측완료를 표시하는 값 2를 기억하고, 인터럽트처리를 스텝(24018)에서 종료한다.
이상의 일련의 처리를 전부 완료하고나면, CPU유닛(1A)은 지정구간의 처리시간계측을 완료한 것으로 된다.
한편, 외부주변기기(2A)는 제20도의 응답데이터(2002)를 수신하며, 다음에 제18도의 스텝(1805)에서 지정구간의 처리시간의 계측결과를 판독하기 위해, 제21도에 표시하는 요구데이터(2101)를 작성하여, 스텝(1806)에서 요구데이터(2101)를 작성하여, 스텝(1806)에서 요구데이터(2101)을 CPU유닛(1A)으로부터의 응답데이터로서 수신할 때까지 대기상태로 된다.
이외에도 제21도는 외부주변기기(2A)가 제20도에 표시하는 응답데이터(2002)를 수신한 후에 CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 표시하는 것이며, 2101은 외부주변기기(2A)로부터 CPU유닛(1A)으로 보내지는 요구데이터의 구성이며, 21011은 지정구간의 처리시간 계측결과를 판독하는 것을 지시하는 요구코트이다.
2102는 요구데이터(2101)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 측정완료를 나타내는 응답데이터의 구성이며, 21021은 지정구간 처리시간의 측정결과이다.
2013은 요구데이터(2101)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 지정구간 처리시간 계측중을 나타내는 응답데이터의 구성이다.
외부주변기기(2A)로 부터의 요구데이터(2101)를 수신할 때의 CPU유닛(1A)의 동작을 제1도~제3도 및 제23도에 표시하는 플로차트에 의해 설명한다.
우선, CPU유닛(1A)은 제2도에 표시하는 외부주변기기와의 교신처리(2031)에 있어서 제20도의 요구데이터(2001)을 수신하여, 제3도에 나타내는 처리(301)에서 요구코드(21011)에 따라, 제3도에 표시하는 지정구간처리시간판독처리(307)로 분기한다.
이 처리(307)에서는 제23도의 (2301)에 표시하는 처리가 실행되며, 처리(23011)에서 제5도의 지정구간계측프래그구역(5023)의 내용(2)이, 즉 지정구간의 처리시간의 계측이 완료해 있는가를 체크하고 만일 그렇다면 처리(23012)에서 제5도의 지정구간 처리시간구역(5025)로부터 값을 판독하에 처리(23013)에서 계측완료를 나타내는 제21도의 응답데이터(2102)를 작성하여, 외부주변기기(2A)에 송신한다.
예컨데, 지정구간처리시간구역(5025)에 기억된 값이 8이라면, 제21도의 응답데이터(2102)의 지정구간처리시간(21021)은 8이라는 값이 송신된다.
또, 지정구간의 처리시간의 계측이 완료하고 있지 않으면, 처리(23011)로부터 처리(23014)로 분기하며, 측정중을 나타내는 제21도의 응답데이터(2103)를 작성하며, 외부주변기기(2A)에 송신하여 스텝(23015)에서 종료한다.
한편, 외부주변기기(2A)에서는 스텝(1808)에서 CPU유닛(1A)으로부터 수신한 응답데이터가 측정완료의 제21도의 응답데이터(2102)인가를 판단하고, 만일 그렇다면, 스텝(1809)에서 응답데이터(2102)에 포함되는 지정구간의 처리시간(2102)을 제25도에서 표시되는 것과같은 화면상의 계측결과 표시구역(2501)에 표시하고 스텝(1810)에서 사용자는 외부 주변기기(2A)의 화면으로부터 지정구간의 처리시간의 게측결과를 알 수 있으며, 스텝(1811)으로 종료하는것이 된다.
또, 제21도의 계측중의 응답데이터(2103)를 수신한 경우는 요구데이터(2101)를 CPU유닛(1A)에 재차 송신하고, 계측완료의 응답데이터(2102)가 수신될때까지의 처리를 반복한다.
이상에서 설명한 바와같이 본 발명에 의한 실시예 2에서는, 시퀀스프로그램의 지정구간의 처리시간을 계측하는 처리를 사전에 준비하고, CPU유닛(1A)의 시스템 ROM(12A)에 기억하므로서 사용자는 시퀀스프로그램의 지정구간측정용의 프로그램을 추가한다는 번거로운 조작을 하는 일 없고, 신속히 지정구간의 처리시간을 계측할 수가 있다.
또, 종래에는 어드레스비교회로(18)를 2개 사용하므로서, 지정구간의 계측을 하고 있었으나, 이 실시예에서는 어드레스비교회로 1개로 실현할 수 있으며 PC의 H/W를 단순 또한 염가로 제작할 수 있다.
[실시예 3]
제1도~제3도 및 제5도 및 제26도~제29도를 참조하여 인터럽트프로그램의 누적실행시간을 측정하는 방법에 관해서 설명하며, 이는 CPU유닛(1A)의 내부상태의 1예이다.
제26도는 본 발명의 실시예 3에 의한 인터럽트프로그램의 누적실행시간계측의 수단을 설명하기 위한 플로차트이며, 스텝(2601)과 스텝(2606)은 사용자가외부주변기기(2A)에 대해서 하는 조작, 스텝(2602)로부터 스텝(2605)까지는 외부 주변기기(2A)의 처리내용을 나타내고 있다.
이하, 그 상세한 설명을 한다.
본 발명의 1실시예의 인터럽트프로그램의 누적실행시간을 계측하는 경우의 동작에 대해서 제1도, 제2도 및 제5도를 사용해서 설명한다.
우선 제1도의 CPU유닛(1A)은 제2도에 있어서, 메인프로그램실행처리(201)를 개시하고, 시퀀스처리(202)를 실행하기 전에 처리(2014)에서 제5도의 데이터 RAM(13A)의 인터럽트프로그램 누적시간구역(5032)에 0을 기억한다.
그리고, 시퀀스처리(202)를 실행중에 인터럽트 요인이 발생하면 인터럽트프로그램실행처리(204)를 실행하고 처리(2043)에서 제5도의 데이터 RAM(13A)의 인터럽트프로그램개시시간구역(5031)에 현재의 내부타이머(21A)의 값을 기억한다.
그리고, 종래의 인터럽트프로그램실행처리(5141)~(5144)를 한 후, 처리(2044)에서 제1도의 내부타이머(21A)의 현재치로부터, 제5도의 인터럽트프로그램처리개시시간구역(5031)에 기억된 값을 감산하여, 제5도의 인터럽트프로그램누적시간구역(5032)에 기억되는 값에 가산하며, 그 결과를 제5도의 인터럽트프로그램의 누적실행 시간구역(5032)에 기억한다.
이상의 처리를 하므로서, 제2도의 시퀀스처리(202)를 실행 중, 인터럽트프로그램이 실행될 때마다, 1회의 인터럽트프로그램(204)의 처리시간이 제5도의 인터럽트프로그램(204)의 누적실행시간 구역(5032)에 가산되어 가며 시퀀스처리(202)의 실행이 끝났을 때 제5도의 인터럽트프로그램(204)의 누적실행시간 구역(5032)에는 인터럽트 프로그램의 합계처리시간이 기억되어, 이것으로인해 CPU유닛(1A)은 1회의 시퀀스처리중에 실행한 인터럽트프로그램(204)의 누적실행시간의 계측을 완료한 것으로 된다.
그리하여, CPU유닛(1A)이 계측한 인터럽트 프로그램(204)의 누적실행시간을 사용자가 판독하기 위한 동작을 제26도에 따라서 설명한다.
우선, 스텝(2600)으로 개시하고, 스텝(2601)에서 사용자는 외부주변기기(2A)의 키보드(2a)를 통하여 인터럽트프로그램의 누적실행시간의 모니터를 외부주변기기(2A)에 지시한다.
이 지시를 받은 외부주변기기(2A)는 스텝(2602)에서 인터럽트프로그램의 누적실행시간을 CPU유닛(1A)으로부터 판독하기 위해 제27도에 나타내는 요구데이터(2701)를 작성하여, 스텝(2603)에서 요구데이터(2701)를 CPU유닛(1A)에 송신하고, 스텝(2604)에서 CPU유닛(1A)으로부터의 응답데이터를 수신할 때까지 기다린다.
또, 제27도는 외부주변기기(2A)가 CPU유닛(1A)으로부터 인터럽트프로그램의 누적실행시간의 계측결과를 판독하기 위해서 CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 나타내는 것이며, 2701은 외부주변기기(2A)로부터 CPU유닛(1A)로 보내지는 요구데이터의 구성이며, 27011은 인터럽트프로그램의 누적실행시간의 판독을 지시하는 요구코드이다.
2702는 요구데이터(2701)에 대해서, CPU유닛(1A)으로부터외부주변기기(2A)에 보내지는 응답데이터의 구성이며, 27021은 인터럽트프로그램의 누적실행시간의 측정결과이다.
여기서 외부주변기기(2A)로부터의 요구데이터(2701)를 수신하였을 때의 CPU유닛(1A)의 동작을 제1도~제3도 및 제5도 및 제28도에 나타내는 플로차트에 의해서 설명한다.
제28도는 인터럽트프로그램의 누적실행시간을 계측하기 위해, 제3도에 있어서 추가된 인터러트프로그램 누적실행시간판독처리(308)의 플로차트이며, 제27도에 표시되는 요구데이터(2701)가 송신된 경우의 CPU유닛(1A)의 처리를 표시한 것이다.
우선, CPU유닛(1A)은 제2도에 표시한 외부주변기기(2A)와의 교신처리(2031)에 있어서 제27도의 요구데이터(2701)를 수신하고, 제3도에 표시하는 처리(301)에서 요구코드(25011)에 따라, 인터럽트프로그램의 누적실행시간판독처리(308)로 분기한다.
이 처리(308)에서는 제28도에 나타내는 처리(2800)가 실행되며, 처리(2801)에서 제5도의 인터럽트프로그램의 누적실행시간구역(5032)로부터의 값을 판독하고, 처리(2802)에서 제27도에 표시하는 응답데이터(2702)를 작성하여 외부주변기기(2A)에 송신한다.
예컨데, 인터럽트프로그램의 누적실행시간이 5msec이면, 제5도의 인터럽트프로그램누적실행시간구역(5032)에는 5라는 값이 기억되어 있으며, 응답데이터(2702)의 인터럽트프로그램누적실행시간(27021)은 5라는 값이 송신되며 스텝(2803)에서 종료한다.
한편, 외부주변기기(2A)에서는 CPU유닛(1A) 으로부터 제27도의 응답데이터(2702)를 수신하면, 제26도의 스텝(2605)에서 응답데이터(2702)로 표시되는 인터럽트프로그램의 누적실행시간을 제29도에서 표시되는 것과같은 화면상의 인터럽트프로그램의 누적실행시간계측결과 표시구역(2901)에 표시하고, 다음의 스텝(2606)에서 사용자는 외부주변기기(2A)의 화면으로부터, 인터럽트프로그램의 누적실행시간의 계측결과를 알 수 있다.
이상에서 설명한 바와같이 본 발명에 의한 실시예 3에서는 인터럽트프로그램의 누적실행시간을 계측하는 처리를 사전에 준비하여, CPU유닛(1A)의 시스템 ROM(12A)에 기억하므로서 사용자느 인터럽트프로그램누적실행시간계측용의 프로그램을 추가한다는 등과 같은 번잡한 조작을 하는 일 없이, 신속하게 인터럽트프로그램의 누적실행시간을 계측할 수가 있다.
[실시예 4]
다음에, 이 발명의 1실시예의 CPU유닛(1A) 의 내부상태의 하나인 END처리의 처리시간을 계측하는 경우의 방법과 동작에 대해서 제1도~제3도 및 제5도 및 제30도~제32도를 가지고 설명한다.
우선, 제1도의 CPU유닛(1A)에서, END처리의 처리시간을 게측하자면, 실시예 3에 표시하는 1회의 인터럽트 프로그램의 처리시간의 계측과 동일한 방법에 의해 실현할 수 있다.
즉, 제2도에 있어서 END처리(203)를 실행하기 전에, 처리(2016)에서, 제5도의 데이터 RAM(13A)의 END처리개시시간구역(5041)에 제1도의 내부타이머(21A)의 현재치를 기억하고, END처리(203)를 실행후, 처리(2017)에서 제1도의 내부타이며(21A)의 현재치로부터 제5도의 END처리시간구역(5041)의 내용을 감산하여, 그 결과를 제5도의 데이터 RAM(13A)의 END처리시간구역(5042)에 기억한다.
예컨데, 감산결과 얻어진 END처리시간이 5msec이라면, 제5도의 END처리시간구역(5042)에는 5라는 값이 기억된다.
이상의 처리를 완료하고, CPU유닛(1A)은 1회의 END처리시간의 계측을 완료한 것으로 된다.
이 계측결과를 사용자가 판독하기 위한 처리에 대해서도 실시예 3과 마찬가지로, 사용자가 제2도의 주변기기(2A)의 키보드(2a)를 통하여 END처리시간의 모니터를 외부주변기기(2A)에 지시하므로서, 외부주변기기(2A)는 제30도에 표시하는 END처리시간을 판독하는 요구데이터(3001)를 CPU유닛(1A)에 송신한다.
여기서 제30도는 제1도의 외부주변기기(2A)가 CPU유닛(1A)에서 계측한 END 처리시간의 계측결과를 판독하기 위해, CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 표시하는 것이며, 3001은 외부주변기기(2A)로부터 CPU유닛(1A)으로 보내지는 요구데이터의 구성이며, 30011은 END처리시간의 판독을 지시하는 요구코드이다.
3002는 데이터(3001)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 응답데이터의 구성이며, 30021은 END처리시간의 계측결과이다.
CPU유닛(1A)은 제2도에 표시하는 외부주변기기와의 교신처리(2031)로서 제30도의 요구데이터(3001)를 수신하고, 제3도에 표시하는 처리(301)로 요구코드(30011)에 의해 END처리시간 판독처리(309)로 분기한다.
처리(309)에서는, 제31도에 표시하는 처리(3100)가 실행되며, 처리(3101)에서는 제5도의 데이터 RAM(13A)의 END처리시간구역(5042)로부터 계측결과를 판독하고, 처리(3102)에서 판독한 계측결과로부터 응답데이터(3002)를 작성하며, 작성한 응답데이터(3002)를 제2도의 외부주변기기(2A)로 송신하고, 스텝(3103)에서 종료한다.
예컨데, 계측한 END처리시간이 5msec이라면, 응답데이터(3002)의 END처리시간(3002)은 5라는 값이 송신된다.
한편, 이 응답데이터(3002)를 수신한 제2도의 외부주변기기(2A)는 응답데이터(3002)의 END처리시간(30021)을 제32도에 표시하는 것과같은 화면의 END처리시간표시구역(3201)에 표시하며 사용자는 외부주변기기(2A)에 화면으로부터 END처리시간의 게측결과를 알 수가 있다.
이상에서 설명한 것과같이, 본 발명에 의한 실시예 4에서는, 제2도의 END처리(203)의 시간을 계측하는 처리를 사전에 준비하여, CPU유닛(1A)의 시스템 ROM(12A)에 기억하므로서 사용자는 END처리계측용의 시퀀스프로그램을 추가할 필요가 없고, 또 외부주변기기(2A)에 의해 END처리시간의 모니터가 가능하게 되기 때문에 외부 측정기기로서 로직애나라이저(20)를 준비할 필요가 없고, 신속하게 END처리시간을 계측할 수가 있다.
[실시예 5]
다음에 본 발명의 1실시예의 CPU유닛(1A)의 내부동작상태의 하나인 제2도의 특수유닛서비스처리(2032)의 처리시간을 측정하는 경우의 동작에 대해서, 제1도~제3도 및 제5도 및 제33도~제36도에 의해 설명한다.
우선, 제1도의 CPU유닛(1A)으로 특수유닛서비스처리의 처리시간을 계측하자면, 실시예 3에 표시하는 1회의 인터럽트프로그램의 처리시간의 계측과 마찬가지 방법에 의해 실현할 수 있다.
즉, 제2도의 특수유닛서비스처리(2032)에 있어서, 제33도에 표시하는 처리(3301)에서 제1도의 특수기능유닛(5)으로부터 처리요구가 있는가를 체크하고 요구가 있을 경우는 처리(3304)에서 제5도의 데이터 RAM(13A)의 특수유닛서비스처리개시시간구역(5051)에 제1도의 내부타이머(21A)의 현재치를 기억하고, 처리(3305)에서 제1도의 특수기능 유닛(5)으로부터의 처리요구에 응답하여 서비스의 실제처리를 실행하고, 처리(3306)에서 제1도의 내부타이머(21A)의 현재치로부터 제5도의 특수유닛서비스처리 개시시간구역(5051)의 내용을 감산하여, 그 결과를 제5도의데이터 RAM(13A)의 특수유닛 서비스처리시간구역(5052)에 기억한다.
예컨데, 어떤 특수유닛으로부터의 처리요구에 대해서 계측한 처리시간이 1msec였을 경우, 제5도의 특수유닛 서비스처리시간구역(5052)에는 1이라는 값이 기억된다.
이상의 처리를 완료하고, CPU유닛(1A)은 1회의 특수유닛서비스처리시간의 계측을 완료한 것으로 된다.
이 계측결과를 사용자가 판독하기 위한 처리에 대해서도, 실시예 3과 마찬가지로 사용자가 제1도의 외부주변기기(2A)의 키보드(2a)를 통하여 특수유닛서비스처리시간의 모니터를 외부주변기기(2A)에 지시하므로서, 외부주변기기(2A)가 특수유닛서비스처리시간을 판독하기 위해서 제34도에 표시하는 요구데이터(3401)를 CPU유닛(1A)에 송신한다.
여기서, 제34도는 외부주변기기(2A)가 CPU유닛(1A)으로부터 특수유닛 서비스처리시간의 계측결과를 판독하기 위해서, CPU 유닛(1A)과의 사이에서 교환되는 데이터의 구성을 표시하는 것이며, 3401은 외부주변기기(2A)로부터 CPU유닛(1A)으로 보내지는 요구데이터의 구성이며, 34011은 특수유닛서비스처리시간의 계측결과 판독을 지시하는 요구코드이다.
3402는 요구데이터(3401)에 대해 CPU유닛(1A)으로부터 외부주변기기(2A)에 보내지는 응답데이터의 구성이며, 34021은 특수유닛 서비스처리시간의 계측결과이다.
다음에, CPU유닛(1A)은 제2도에 표시하는 외부주변기기와의 교신처리(2031)로, 요구데이터(3401)의 요구코드(34011)에 의해 특수유닛서비스처리시간 판독처리(310)로 분기한다.
처리(310)에서는 제35도에서 표시되는 처리(3500)가 실행되며, 처리(3501)로, 제5도의 데이터 RAM(13A)의 특수유닛 서비스처리시간구역(5052)으로부터 계측결과를 판독하고, 처리(3502)에서 판독계측결과로부터 제34도에 표시하는 응답데이터(3402)를 작성하며, 작성한 응답데이터(3402)를 오부주변기기(2A)에 송신한다.
예컨데, 계측한 특수유닛 서비스처리시간이 1msec이면, 응답데이터(3402)의 특수유닛서비스처리시간(34021)은, 1이라는 값이 송신되며, 스텝(3503)에서 종료한다.
이 응답데이터(3402)를 수신한 제1도의 외부주변기기(2A)는, 특수유닛서비스처리시간(34021)을 제36도에 표시하는 것과같은 화면의 특수유닛 서비스처리시간구역(3601)에 표시하고, 사용자는 외부주변기기(2A)의 화면으로부터 계측결과를 알수가 있다.
이외에도, 제36도에 있어서, 특수유닛서비스처리의 합계실행외수표시구역(3602)과, 특수유닛서비스처리의 실행간격표시구역(3603)은, 이 발명의 다른 실시예에 의한 CPU유닛(1A)의 내부상태의 계측결과를 표시하는 구역이며, 상세한 것은 이후의 실시예에서 설명한다.
이상에서 설명한 바와같이, 본 발명에 의한 실시예 5에서는 특수유닛 서비스처리(2032)의 시간을 계측하는 처리를 사전에 준비하고, CPU유닛(1A)의 시스템 RON(12A)에 기억하므로서, 사용자는 특수유닛 서비스처리시간 계측용의 시퀀스프로그램을 추가할 필요가 없고, 또 종래와 같이 특수기능유닛(5)으로부터의 처리요구를 하지 않은 경우의 END처리시간과, 특수기능유닛(5)으로부터의 처리요구가 있는 경우의 END처리시간을 계측하여, 특수유닛서비스처리시간을 산출하는 등의 번거러운 조작을 할 필요가 없기 때문에 신속 그리고 쉽게 특수유닛 서비스처리시간을 계측할 수가 없다.
[실시예 6]
다음에 본 발명의 1실시예의 CPU유닛(1A)의 내부동작상태의 하나인 인터럽트프로그램의 실행회수를 게측하는 경우의 동작에 대하여 제1도~제3도 및 제29도 및 제37도~제38도를 사용하여 설명한다.
우선, CPU유닛(1A)은 제2도의 메인프로그램실행처리(201)에 있어서, 처리(2015)에서 제5도의 데이터 RAM(13A)의 인터럽트프로그램 실행회수구역(506)에 0을 기억하고, 시퀀스처리(202)를 실행중에 제1도의 인터럽트발생회로로부터 인터럽트신호가 CPU(10)로 보내지면, 제2도의 시퀀스처리(202)를 중단하고, 인터럽트프로그램실행처리(204)를 실행한다.
인터럽트프로그램실행처리(204)에서는, 처리(2041)에서 제5도의 인터럽트프로그램 시행회수구역의 내용에 1을 가산하고, 종래의 인터럽트프로그램실행처리(5141~5144)를 실행할 후 스텝(5145)에서 인터럽트프로그램실행처리(204)를 종료하며, 시퀀스처리(202)를 중단한 스텝으로부터 다시 처리를 실행한다.
이상의 처리를 한 결과, 시퀀스처리(202)를 수행중 인터럽트프로그램이 실행될 때마다, 제5도의 데이터 RAM(13A)의 인터럽트프로그램 실행회수구역(506)의 내용은 1씩 가산되어 가며 시퀀스처리(202)의 실행이 끝났을 때에는, 제5도의 인터럽트프로그램실행회수구역(506)에는 인터럽트프로그램의 합계 실행회수가 기억되며, 이것으로서 CPU유닛(1A)은 1회의 시퀀스처리중에 실행한 인터럽트의 실행회수의 계측을 완료한 것으로 된다.
다음에 CPU유닛(1A)으로 계측한 인터럽트프로그램의 실행회수의 계측결과를 사용자가 판독하기 위한 처리에 대해서는 실시예 3과 마찬가지로 사용자가 제2의 외부주변기기(2A)의 키보드(2a)를 통하여 인터럽트프로그램시행회수의 모니터를 외부주변기기(2A)에 지시하므로서, 외부주변기기(2A)는 인터럽트프로그램 실행회수를 판독하기 위해 CPU유닛(1A)에 송신한다.
여기서, 제37도는 외부주변기기(2A)가 CPU유닛(1A)으로부터 인터럽트프로그램의 실행회수의 측정결과를 판독하기 위해, CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 나타내는 것이며, 3701은 외부주변기기(2A)로부터 CPU유닛(1A)으로 보내지는 요구데이터의 구성이며, 37011은 인터럽트프로그램의 실행회수의 계측결과판독을 지시하는 요구코드이다.
3702는, 요구데이터(3701)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 응답데이터의 구성이며, (37021)는 인터럽트프로그램 실행회수의 계측결과이다.
한편, CPU유닛(1A)은 제2도에 표시하는 외부주변기기와의 교신처리(2031)에서 제37도의 요구데이터(3701)을 수신하고, 제3도에 표시하는 처리(301)에서 요구데이터(3701)의 요구코드(37011)에 의해 인터럽트프로그램 실행회수판독처리(311)로 분기하며, 처리(311)에서는 제38도에서 표시되는 처리(3800)가 실행된다.
이 처리(3800)에서는 우선 처리(3801)에서 제5도의 데이터 RAM(13A)의 인터럽트프로그램 실행회수구역(506)으로부터 계측결과를 판독하고, 처리(3802)에서 판독한 계측결과로부터 제37도의 응답데이터(3702)를 작성하며, 작성한 응답데이터(3702)를 외부주변기기(2A)를 송신하고, 스텝(2803)에서 종료한다.
예컨데, 인터럽트프로그램의 실행회수가 3회라면, 응답데이터(3702)의 인터럽트프로그램 실행회수(37021)는 3이란 값을 송신한다.
이 응답데이터(3702)를 수신한 제1도의 외부주변기기(2A)가 인터럽트프로그램 실행회수(37021)를, 제29도에 표시하는 것같은 화면의 인터럽트프로그램 실행회수구역(2902)에 표시하고, 사용자는 외부주변기기(2A)의 화면으로부터 인터럽트프로그램의 실행회수를 알 수가 있다.
이상에서설명한 바와같이 본 발명에 의한 실시예 6에서는, 인터럽트프로그램 실행회수의 계측처리를 사전에 준비하고, CPU유닛(1A)의 시스템 ROM(12A)에 기억해 놓으므로서, 사용자는 인터럽트프로그램 계측용의 시퀀스프로그램을 추가할 필요가 없고, 신속하게 인터럽트프로그램의 실행회수를 계측할 수가 있다.
[실시예 7]
다음에 제1도의 CPU유닛(1A)은, 제2도의 메인프로그램실행처리(201)의 실행을 개시하고, 스텝(2013)에서 제5도의 데이터 RAM(13A)의 특수유닛서비스처리실행회수구역(507)에 0을 기억한다.
그리고, 특수유닛서비스처리(2032)에 있어서, 제33도에 표시하는 처리(3300)를 실행하고, 다음의 처리(3301)로 특수유닛으로 부터의 처리요구가 있는가를 체크하여, 처리요구가 있었을 경우, 다음의 처리(3302)에서 제5도의 특수 유닛서비스처리 실행회수구역(507)의 내용에 1을 가산한다.
이것에 의해, 제2도의 메인프로그램실행처리(201)를 실행 중 특수유닛서비스처리(2032)에서 제1도의 특수기능유닛(50)으로 부터의 요구에 대한 제33도의 특수유닛서비스 실행처리(3305)가 실행될때마다 제5도의 특수유닛서비스처리 실행회수구역(507)의 내용이 1씩 가산되어 가며, 제1도의 CPU유닛(1A)은 특수유닛서비스처리의 실행회수를 계측할 수가 있다.
이상의 처리에 의해, CPU유닛(1A)이 계측한 특수유닛서비스처리의 실행회수를 사용자가 판독하기 위한 처리에 대해서는 실시예 3과 마찬가지로, 사용자가 제1도의 외부주변기기(2A)의 키보드(2a)를 통하여 특수유닛서비스처리 실행회수의 모니터를 외부주변기기(2A)에 지시하므로서, 외부주변기기(2A)가 특수유닛서비스처리 실행회수를 판독하기 위해 제39도에 표시하는 요구데이터(3901)를 CPU유닛(1A)에 송신한다.
여기서, 제39도는 외부주변기기(2A)가 CPU유닛(1A)으로부터 특수유닛서비스 처리의 실행회수의 계측결과를 판독하기 위해서 CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 표시한 것이며, 39011은 특수유닛서비스처리의 실행회수판독을 지시하는 요구데이터이다.
3902는 요구데이터(3901)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 응답데이터의 구성이며, 39011은 특수유닛서비스처리 실행회수의 측정결과이다.
한편, CPU유닛(1A)은 제2도에 표시하는 외부주변기기와의 교신처리(2301)에서 요구데이터(3901)를 수신하고, 제3도에 표시하는 처리(301)로 요구데이터(3901)의 요구코드(39011)에 의해 특수유닛서비스처리시간판독처리(311)로 분기하며, 처리(311)에서는 제40도에 표시되는 처리(4000)가 실행된다.
이 처리(4000)에서는 먼저 처리(4001)에서 제5도의 데이터 RAM(13A)의 특수유닛 서비스처리시간구역(5052)으로부터 계측결과를 판독하고, 다음에 처리(4002)에서 판독한 계측력과로부터 제39도에서 표시하는 응답데이터(3902)를 작성하고 작성한 응답데이터(3902)를 제1도의 외부주변기기(2A)에 송신하여 스텝(4003)에서 종료한다.
예컨데, 계측한 특수유닛서비스처리의 실행회수가 5회라면, 응답데이터(3902)의 특수유닛서비스처리 실행회수(39021)는 5라는 값이 숭신된다.
이 응답데이터(3902)를 수신한 외부주변기기(2A)는, 특수유닛서비스처리 실행회수(39021)를 제36도에 표시하는 것과같은 화면의 특수유닛서비스처리 실행회수구역(3602)에 표시하며, 사용자는 특수유닛서비스처리시간을 알 수가 있다.
이상에서 설명한 바와같이, 본 발명에 의한 실시예 7에서는 특수유닛서비스처리의 실행회수를 계측하는 처리를 사전준비하여 CPU유닛(1A)의 시스템 ROM(12A)에 기억하므로서, 사용자는 종래 불가능하였든 특수유닛서비스 실행회수를 계측할 수가 있다.
[실시예 8]
다음에, 본 발명의 1실시예의 CPU유닛(1A)의 내부동작상태의 하나인 인터럽트프로그램의 기동간격시간을 계측하는 경우의 동작에 대해서, 제1도~제3도 및 제5도, 제29도및 제41도~제42도에 의해 설명한다.
우선, CPU유닛(1A)은, 제2도의 메인프로그램실행처리(201)를 개시하며, 처리(2011)에서 제5도의 데이터 RAM(13A)의 인터럽트프로그램 개시시간구역(5031)에 내부타이머(21A)의 현재치를 기억하고, 다음의 스텝(202)으로 진행하여 시퀀스처리를 실행한다.
그리고, 시퀀스처리(202)를 실행중에 제1도의 인터럽트발생회로(17)로분터 인터럽트신호가 CPU(10)에 보내지면 CPU(10)는 제2도의 시퀀스처리(202)를 중단하고, 인터럽트프로그램 실행처리(204)를 실행하며, 처리(2042)에서 내부타이머(21A)의 현재치로부터 제5도의 데이터 RAM(13A)의 인터럽트프로그램 개시시간구역에 기억한 값을 감산하여 그 결과를 제5도의 데이터 RAM(13A)의 인터럽트프로그램 기동간격시간구역(508)에 기억하고, 다음의 처리(2043)에서 내부타이머(21A)의 현재치를 제5도의 인더럽트프로그램 개시시간구역(5031)에 기억한다.
이상의 처리를 하므로서 인터럽트프로그램(204)이 실행되었으므로 다음의 인터럽트프로그램(204)이 실행될 때까지 인터럽트프로그램 기동간격시간을 계측할 수가 있다.
다음은 이상에서 설명한 CPU유닛(1A)이 계측한 인터럽트프로그램의 기동간격시간의 계측결과를 사용자가 판독하기 위한 처리에 대해서는 실시예 3과 마찬가지로 사용자가 제2도의 외부주변기기(2A)의 키보다(2a)를 통하여 인터럽트프로그램 기동간격시간의 모니터를 외부주변기기(2A)에 지시하므로서, 외부주변기기(2A)가 인터럽트프로그램 기동간격시간을 판독하기 위해 제41도에 표시한 요구데이터(4101)를 CPU유닛(1A)에 송신한다
여기서, 제41도는 외부주변기기(2A)가 CPU유닛(1A)로부터 인터럽트프로그램의 기동간격시간의 계측결과를 판독하기 위해서, CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 표시하는 것이며, 4101은 외부주변기기(2A)로부터 CPU유닛(1A)으로 보내지는 요구데이터의 구성이며, 41011은 인터럽트프로그램이 기동간격시간 판독을 지시하는 요구코드이다.
4102는 요구데이터(4101)에 대해서 CPU유닛(1A)으로부터 외부주변기기(2A)에 보내지는 응답데이터의 구성이며, 41021은 인터럽트프로그램 기동간격시간의 측정결과이다.
한편, CPU유닛(1A)은 제2도에 표시하는 외부주변기기와의 교신처리(2301)에서 요구데이터(4101)를 수신하고, 제3도에 표시하는 처리(301)에서 요구데이터(4101)의 요구코드(41011)에 의해 특수유닛서비스처리시간 판독처리(312)로 분기하며, 처리(312)에서는 제42도에서 표시되는 처리(4200)가 실행된다.
이 처리(4200)에서는, 우선 처리(4201)에서 제5도의데이터 RAM(13A)의 인터럽트프로그램 기동간격시간구역(508)으로부터 계측결과를 판독하며, 다음에 처리(4202)에서 판독한 계측결과로부터 제41도에 표시하는 응답데이터(4102)를 작성하고, 작성한 응답데이터(4102)를 외부주변기기(2A)에 송신하며, 스텝(4203)으로 종료한다.
예컨데, 계측한 인터럽트프로그램 기동간격시간이 2msec이라면, 응답데이터(4102)의 인터럽트프로그램 기동간격시간(41021)은 2라는 값이 송신된다.
이 응답데이터(4102)를 수신한 외부주변기기(2A)는 응답데이터(4102)의 인터럽트프로그램 기동간격시간(41021)을 제29도에 표시하는 것과같이 화면의 인터럽트프로그램 기동간격시간구역(2903)에 표시하며 사용자는 외부주변기기(2A)의 화면으로부터 인터럽트프로그램의 기동간격시간을 알 수가 있다.
이상에서 설명한 바와같이, 본 발명에 의한 실시예 8에서는 인터럽트프로그램의 기동간격시간을 계측하는 처리를 사전에 준비하고, CPU유닛(1A)의 시스템 ROM(12A)에 기억하므로서 사용자는 인터럽트프로그램의 기동간격시간 계측용의 시퀀스프로그램을 추가함이 없이 신속하게 인터럽트프로그램의 기동간격시간을 계측할 수가 있다.
[실시예 9]
다음에, 본 발명의 1실시예의 CPU유닛(1A)의 내부동작 상태의 하나인 특수유닛서비스처리의 실행간격시간을 계측하는 경우의 동작에 대해서, 제1도~제3도 및 제5도 및 제43도~제44도로부터 설명한다.
우선, 제1도의 CPU유닛(1A)에서, 제2도의 특수유닛서비스처리(2032)의 실행간격시간의 계측을 하는 데, 이 계측방법에대해서는 실시예 8에 표시하는 인터럽트프로그램의 실행간격시간의 게측과 마찬가지 방법으로 실현할 수가 있다.
즉, CPU유닛(1A)은 제2도의 메인프로그램실행처리(201)를 실행하여 그중의 처리(2012)에 있어서 제5도의데이터 RAM(13A)의 특수유닛서비스처리 실행개시구역(5051)에 제1도의 내부타이머(21A)의 현재치를 기억해 놓고, 다음에 제2도의 특수유닛서비스처리(2032)에 있어서, 제33도에서 표시하는 처리(3300)를 실행한다.
처리(3300)에서는, 처리(3301)에서 특수유닛으로부터의 처리요구가 있는가를 체크하고, 처리요구가 있을 경우는 다음의 처리(3303)에서 제1도의 내부타이머(21A)의 현재치로부터 제5도의 특수유닛서비스처리 개시시간구역(5051)에 기억된 값을 감산하고, 그 겨로가를 제5도의 특수유닛서비스처리 실행간격시간구역(509)에 기억하며, 다음의 처리(3304)에서 제5도의 특수유닛서비스처리 개시시간구역(5051)에 제1도의 내부타이머(21A)의 현재치를 기억하고, 다음의 처리(3305)에서 제1도의 특수기능유닛(5)으로부터의 처리요구에 대한 서비스실행처리(3305)를 실행한다.
이상의 동작에 의해, 제33도의 특수유닛서비스실행처리(3305)가 실행되고나서, 다음에 특수유닛서비스실행처리(3305)가 실행될 때까지의 특수유닛서비스 처리실행간격시간을 계측할 수가 있다.
다음은 이상에서 설명한 CPU유닛(1A)이 계측한 특수유닛서비스처리의 실행간격시간을 사용자가 판독하기 위한 처리에 대해서는 실시예 3과 마찬가지로 사용자가 제1도의 외부주변기기(2A)의 키보드(2a)를 통하여 특수유닛서비스처리실행간격시간의 모니터를 외부주변기기(2A)에 지시하므로서, 외부주변기기(2A)가 특수유닛서비스처리 실행간격시간을 판독하기 위해 제43도에 표시하는 요구데이터(4301)를 CPU유닛(1A)에 송신한다.
여기서, 제43도는 외부주변기기(2A)가 CPU유닛(1A)으로부터 특수유닛서비스 처리의 실행간격시간의 계측결과를 파독하기 위하여, CPU유닛(1A)과의 사이에서 교환되는 데이터의 구성을 나타내는 것으로 4101은 외부주변기기(2A)로부터 CPU유닛(1A)으로 보내지는 요구데이터의 구성이며, 41011은 특수유닛서비스처리의 실행간격시간판독을 지시하는 요구코드이다.
4102는 요구데이터(4101)에 대해 CPU유닛(1A)으로부터 외부주변기기(2A)로 보내지는 응답데이터의 구성이며, 41021은 특수유닛서비스처리 실행간격시간의 계측결과이다
한편, CPU유닛(1A)은 제2도에 표시하는 외부주변기기와의 교신처리(2301)에서 요구데이터(4301)를 수신하고, 제3도에 표시하는 처리(301)에서 요구코드(43011)에 의해 특수유닛서비스처리시간 판독처리(313)로 분기하고, 처리(313)에서는 제44도에서 표시되는 처리(4400)가 실현된다.
이 처리(4400)에서는 우선 처리(4401)로 제54도의 데이터 RAM(13A)의 특수유닛서비스처리 실행간격시간구역(509)으로부터 측정결과를 판독하고, 다음의 처리(4402)에서 판독한 계측결과로부터 응답데이터(4302)를 작성하며, 작성한 응답데이터(4302)를 외부주변기기(2A)로 송신하고 스텝(4403)에서 종료한다.
예컨데, 계측한 특수유닛서비스처리 기동간격시간이 20msec이라면, 응답데이터(4302)의 특수유닛서비스처리 기동간격시간(43021)은 20이라는 값이 송신된다.
이 응답데이터(4302)를 수신한 외부주변기기(2A)가 응답데이터(4302)의 특수유닛서비스처리 기동간격시간(43021)을 제36도에 표시하는 것과같은 화면의 특수유닛서비스처리 기동간격시간 (3603)에 표시하고 사용자는 외부주변기기(2A)의 화면으로부터 특수유닛서비스처리의 실행간격시간을 알 수 있게 된다.
이상에서 설명한 바와같이, 본 발명에 의한 실시예 9에서는 제2도의 특수유닛서비스처리(2032)의 기동간격시간을 계측하는 처리를 사전 준비하고, CPU유닛(1A)의 시스템 ROM(12A)에 기억하므로서, 사용자는 특수유닛서비스처리(2032)의 기동간격시간계측용의 시퀀스프로그램을 추가할 필요가 없고, 또 종래의 게측용 시퀀스프로그램보다도 정확하게 계측할 수가 있으며, 사용자는 특수유닛서비스처리(2032)의 기동간격시간을 신속 또한 정확하게 계측할 수가 있다.
이상은 본 발명에 의한 하나의 실시예이나, 이 실시예로 설명한 방법을 응용하므로서 실현할 수 있는 것으로서는 제2도의외부주변기기(2A)와의 교신처리(2031)의 처리시간의 계측이 있으며, 이 구체적수단에 대해서는 위에 기술한 실시예와 대략 동일하므로 그 설명을 생략한다.
또, 본 발명의 실시예에서는 CPU유닛(1A)의 내부동작상태에 관한 데이터를 기억해 놓는 구역을 제1도의 데이터 RAM(13A)에 확보했지만 데이터를 기억하는 구역을, 예컨데 제1도의 디바이스메모리(16)에 확보하면, 시퀀스프로그램으로부터 워드 디바이스로 CPU유닛(1A)의 내부동작 상태를 취급할 수가 있게 된다.
또, 제1도의 외부주변기기(2A)는 CPU유닛(1A)과 교신하는 수단과, CPU유닛(1A)의 내부동작상태를 표시하는 수단과, 사용자의 지시를 입수하는 수단인 키보드(2a)를 갖는 기기이면 되며, 예컨데 범용퍼스널컴퓨터 또는 CPU유닛(1A)의 내부동작상태를 모니터하는 전용의 장치등을 생각할 수 있다.
또, 본 발명에 의한 CPU유닛(1A)의 내부동작상태를 모니터하기 위해서의 시스템프로그램을 기억하는 매체는 제1도의 시스템 RON(12A)와 같은 ROM에 한정하지 않고, RAM또는 기타의 기억매체라도 좋다.
이상과 같이 본 발명에 의하며, CPU유닛의 내부동작 상태를 데이터기억부에 기억하고, 외부주변기기로부터 CPU유닛의 내부동작상태의 모니터를 하도록 하였으므로 사용자는 종래와 같이 시퀀스프로그램을 추가하는 번거로운 조작을 하는 일 없이 CPU유닛이 내부동작 상태를 알 수가 있다.
또, 특정의 디바이스의 상태변화까지의 시간의 계측거리를 CPU유닛에 넣으므로서, 사용자는 시간계측 때문에 시스템을 가동시키는데 불필요한 시퀀스프로그램을 추가하는일 없이 계측을 할 수가 있으며, 시퀀스프로그램용량을 최소한으로 억제할 수 있다.
또, 본 발명에 의해서 계측한 디바이스의 상태변화까지의 시간은 사용자가 시스템의 미소한 타이밍의 조정을 하는데 큰 지침이 된다.
또, 시퀀스프로그램의 지정구간의 처리에 요하는 시간을 어드레스비교회로 1개를 사용해서 측정하여, 이것을 외부표시기기에 표시하는 것을 가능케한 것으로 종래의 PC에 비해서 간단한 회로이고, 상기 지정구간의 측정을 할 수 있으며, 또 사용자는 시간측정용의 프로그램을 작성하든가 측정기기를 사용하든가 하는 일 없이, 쉽게 상기 지정구간의 처리에 요하는 시간을 측정할 수가 있다.
또, 1주사사이에 실행된 인터럽트프로그램의 누적실행시간의 계측처리를 CPU유닛에 넣으므로서 실제로 시스템을 가동시키는데 있어서는 불필요한 시퀀스프로그램을 추가하는 일 없이 계측을 할 수 있다.
또, 본 발명에 따라 메이프로그램에 계측용프로그램을 추가하므로서, 생기는 시간의 오차가 없어지기 때문에, 종래 계속방법보다도 정확한 인터럽트프로그램의 누적 실행시간을 계측할 수가 있으며, 사용자는 인터럽트프로그램 전의 주사시간에 응답하는 영향에 따라 메인프로그램과 인터럽트프로그램사이의 부하 조정을 종래보다도 정확하게 하는 것이 가능해진다.
또, END처리에 요한 시간을 측정하기 위한 처리를 CPU유닛에 넣어, CPU유닛이 측정한 결과를 외부표시기기에 표시하므로서, 사용자는 실제로 시스템을 가동시키는데는 불필요한 시간측정욕의 프로그램을 작성한다든가 측정기기를 사용한다든가 하는 번잡한 조작을 하는 일 없이 쉽게 END처리에 요하는시간을 측정할 수가 있다.
또, 특수기능유닛으로부터의 요구에 응답하는 서비스처리에 요하는 시간을 계측하기 위한 처리를 CPU유닛에 넣어, CPU유닛이 계측한 결과를 외부표시기기에 표시하므로서, 사용자는 실제로 시스템을 가동시키는 데 있어서는 불필요한 시간측정용의 프로그램을 작성하거나, 측정기기를 사용하는 번거로운 조작을 하는 일 없이 쉽게 상기의 서비스처리에 요하는 시간을 측정할 수가 있다.
또, 인터럽트프로그램의 실행회수를 계측하는 처리를 CPU유닛에 넣어, 그 결과를 외부표시기에 표시하므로서, 사용자는 실제로 시스템을 가동시키는 데 있어서는 불필요한 실행회수계측용의 프로그램을 작성함이 없이 계측을 할 수가 있다.
또, 특수기기유닛으로부터의 처리요구에 대한 서비스처리의 실행회수를 계측하기 위한 처리를 CPU유닛에 넣어 그 결과를 외부표시기에 표시하므로서, 사용자는 PC와특수기기유닛과의 교신상태를 파악하는 것이 가능하게 되고, 시스템의 동작불량이 일어났을 경우, 계측한 상기 서비스처리의 실행회수와 특수기능유닛에 접속된 컴퓨터로부터의 처리요구를 송신하는 회수를 비교하므로서 불량원인의 식별작업등이 쉬워진다.
또, 인터럽트프로그램의 기동간격시간을 계측하는 처리를 CPU유닛에 넣어, 그 계측결과를 외부주변기기에 표시하므로서 사용자는 실제로 시스템을 가동시키는 데는 불필요한 기동간격시간 계측용의 프로그램을 작성하는 일이 없이 계측할 수가 있다.
또, 특수기능유닛으로 부터의 처리요구에 대한 서비스처리의 가동간격시간을 계측하는 처리를 CPU유닛에 넣어 그 계측결과를 외부주변기기에 표시하므로서 사용자는 상기 서비스처리의 가동간격시간을 실제로 시스템 가동시키는데 불필요한 계측용의 프로그램을 작성하는 일이 없이 계측할 수가 있다.

Claims (10)

  1. 기억된 시퀀스프로그램에 따라 산업 기기 등의 제어 대상 기기를 제어하는 프로그래머블 컨트롤러에 있어서, CPU유닛과; 통신에 의해 외부 주변기기로 부터 처리 요구를 받는 수단과 CPU유닛으로부터 외부 주변기기로의 처리 응답을 송신하는 수단을 갖는 인터페이스와 CPU유닛을 동작시키는 시퀀스프로그램과 제어프로그램을 처리하기 위해, CPU유닛에 설치 되여 있는 CPU와, 시퀀스프로그램을 기억하는 시퀀스프로그램 기억유닛과, CPU유닛의 내부 동작 상태를 계측하는 제어프로그램을 포함하는 제어 프로그램을 기억하는 제어프로그램 기억유닛과 CPU의 처리에 사용되는 데이터를 기억하는 데이터 기억 유닛과, 계측된 CPU유닛의 내부 동작 상태를 기억하는 내부 동작 상태 기억 유닛을 구비하고 내부 동작 계측 제어프로그램은 CPU유닛의 내부 동작 상태를 외부 주변기기로부터의 모니터 처리 요구에 응답해서 측정되도록 할 수 있고 또 측정 결과는 외부 주변기기로 송출하여 외부 주변기기로서 CPU유닛의 내부 동작 상태를 모니터하도록 하는 것을 특징으로 하는 프로그래머블 콘트롤러.
  2. 제1항에 있어서, 지정된 기기의 상태를 모니터하고, 지정된 기기가 지정된 상태로 된 시점에서 인터럽트 신호를 CPU에 송신하는 인터럽트 발생 회로와, 지정된 기기의 ON/OFF간격을 계측하는 수단과, 지정된 기기의 계측된 ON/OFF간격을 기억하는 시간 계측 기억유닛과, 외부 주변기기 상에 시간 계측 기억유닛의 데이터를 표시하는 수단을 더 구비하고 지시기기가 그 상태의 변화를 계측할 때까지의 시간을 계측 가능하게 한 것을 특징으로 하는 프로그래머블 콘트롤러.
  3. 제1항에 있어서, 시퀀스프로그램의 지정부의 처리 시간을 계측하는 수단을 더 구비하고 처리 시간의 계측 결과는 외부 주변기기로 모니터될 수 있는 것을 특징으로 하는 프로그래머블 콘트롤러.
  4. 제1항에 있어서, 인터럽트프로그램이 시퀀스프로그램의 1주사중에 처리되는 동안 누적 처리시간을 측정하는 수단과, 인터럽트프로그램의 누적 처리 ㅅ간을 기억하는 인터럽트누적기억유닛과, 외부 주변기기에 인터럽트누적기억유닛의 데이터를 표시하는 수단을 더 구비하고 주사시간에서 인터럽트프로그램의 처리 시간의 영향을 계측할 수 있는 것을 특징으로 하는 프로그래머블 콘트롤러.
  5. 제1항에 있어서, END처리의 처리 시간을 계측하는 수단을 더 구비하고 처리 시간의 계측 결과는 외부 주변기기로 모니터 될 수 있는 것을 특징으로 하는 프로그래머블 콘트롤러.
  6. 제1항에 있어서, 서비스프로그램이 특수기능유닛으로부터의 처리 요구에 응답하여 실행되는 동안 처리 시간을 계측하는 수단을 더 구비하고, 처리시간의 계측 결과는 외부 주변기기로 모니터 될 수 있는 것을 특징으로 하는 프로그래머블 콘트롤러.
  7. 제1항에 있어서, 외부인터럽트신호에 의해 동작하는 인터럽트프로그램의 실행 회수를 계측하는 수단을 더 구비하고 실행 회수의 계측 결과는 외부 주변기기 의해 모니터 될수 있음을 특징으로 하는 프로그래머블 콘트롤러.
  8. 제1항에 있어서, 특수기능유닛으로부터의 처리 요구에 응답하여 서비스프로그램실행호수를 계측하는 수단을 더 구비하고 실행 기간 회수의 계측 결과는 외부 주변기기의해 모니터 될 수 있음을 특징으로 하는 프로그래머블 콘트롤러.
  9. 제1항에 있어서, 외부인터럽트신호에 응답하여 작동하는 인터럽트프로그램의 작동 간격을 계측하는 수단을 더 구비하고 작동 간격의 계측 결과는 외부 주변기기 의해 모니터 될 수 있음을 특징으로 하는 프로그래머블 콘트롤러.
  10. 제1항에 있어서, 외부주변기기로부터의 각종 처리 요구와 특수기능유닛과의 사이의 간격을 계측하는 수단을 더 구비하고 간격의 측정 결과는 외부 주변기기 의해 모니터 될수 있음을 특징으로 하는 프로그래머블 콘트롤러.
KR1019950036842A 1994-10-24 1995-10-24 프로그래머블 콘트롤러 KR100218219B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP94-258056 1994-10-24
JP25805694A JP3225757B2 (ja) 1994-10-24 1994-10-24 プログラマブルコントローラ

Publications (2)

Publication Number Publication Date
KR960015123A KR960015123A (ko) 1996-05-22
KR100218219B1 true KR100218219B1 (ko) 1999-09-01

Family

ID=17314928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950036842A KR100218219B1 (ko) 1994-10-24 1995-10-24 프로그래머블 콘트롤러

Country Status (4)

Country Link
US (1) US5889669A (ko)
JP (1) JP3225757B2 (ko)
KR (1) KR100218219B1 (ko)
DE (1) DE19539353A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4152079B2 (ja) * 1999-05-25 2008-09-17 三菱電機株式会社 プログラマブルコントローラの周辺装置
JP4451010B2 (ja) * 2001-04-09 2010-04-14 三菱電機株式会社 プログラマブルコントローラ
US6912695B2 (en) 2001-09-13 2005-06-28 Pixia Corp. Data storage and retrieval system and method
WO2003023757A1 (en) * 2001-09-13 2003-03-20 Pixia Corp. Image display system
US20040187108A1 (en) * 2003-02-21 2004-09-23 Knowles W. Jeffrey Method of scheduling and event processing in computer operating system
US7243174B2 (en) * 2003-06-24 2007-07-10 Emerson Electric Co. System and method for communicating with an appliance through an optical interface using a control panel indicator
US7278066B2 (en) * 2003-10-22 2007-10-02 Honeywell International Inc Automatic fieldbus device load-mode identification
DE102004015877A1 (de) * 2004-03-31 2005-10-27 Siemens Ag Verfahren zum Betrieb eines Automatisierungsgerätes
EP1619566A1 (de) * 2004-07-23 2006-01-25 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgerätes
JP4485326B2 (ja) * 2004-11-05 2010-06-23 株式会社デジタル プログラマブル表示器、表示制御プログラムおよびそのプログラムを記録した記録媒体
US7262572B2 (en) * 2005-05-24 2007-08-28 The Chamberlain Group, Inc. System and method for providing a macro for a barrier operator
JP4890545B2 (ja) * 2006-06-13 2012-03-07 三菱電機株式会社 プログラマブルロジックコントローラの周辺装置
US8290346B2 (en) * 2008-09-25 2012-10-16 Pixia Corp. Large format video archival, storage, and retrieval system and method
US20110055838A1 (en) * 2009-08-28 2011-03-03 Moyes William A Optimized thread scheduling via hardware performance monitoring
US8411970B2 (en) 2010-03-16 2013-04-02 Pixia Corp. Method and system for determining statistical data for image pixels having a higher bit depth per band
US9407876B1 (en) 2010-09-14 2016-08-02 Pixia Corp. Method and system for encoding and decoding multiple wide-area surveillance area-of-interest video codestreams
US8949913B1 (en) 2010-09-16 2015-02-03 Pixia Corp. Method of making a video stream from a plurality of viewports within large format imagery
US10268179B2 (en) * 2014-04-15 2019-04-23 Fuji Corporation NC machine tool
WO2018164678A1 (en) * 2017-03-08 2018-09-13 Hewlett-Packard Development Company, L.P. Peripheral output devices
WO2023243012A1 (ja) * 2022-06-15 2023-12-21 三菱電機株式会社 制御システム、プログラマブルロジックコントローラ、可視化方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2526688B2 (ja) * 1990-02-22 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラおよびシ―ケンスプログラムの部分実行方法
JPH04151702A (ja) * 1990-09-19 1992-05-25 Mitsubishi Electric Corp プログラマブルコントローラ
JPH05189277A (ja) * 1992-01-09 1993-07-30 Yaskawa Electric Corp プログラマブルコントローラのプログラム実行時間測定装置

Also Published As

Publication number Publication date
KR960015123A (ko) 1996-05-22
US5889669A (en) 1999-03-30
DE19539353A1 (de) 1996-05-02
JPH08123514A (ja) 1996-05-17
JP3225757B2 (ja) 2001-11-05

Similar Documents

Publication Publication Date Title
KR100218219B1 (ko) 프로그래머블 콘트롤러
KR960010919B1 (ko) 데이타 프로세서
KR100789330B1 (ko) 시퀀셜 기능 차트식 프로그래머블 컨트롤러에 있어서의감시장치
JP5507587B2 (ja) 補助指令の実行機能を有する数値制御装置
KR20020006816A (ko) 가전 기기의 원격 자가 진단 장치 및 방법
JP2001005504A (ja) モーションコントローラおよびモーションコントローラ用周辺装置
CN114770222B (zh) 数控机床及其回转轴螺距误差检测方法
JP2006323726A (ja) モニタプログラムおよびリアルタイムトレースシステム
JPH083725B2 (ja) シ−ケンスコントロ−ラの異常診断装置
JPH0863216A (ja) 加工時間測定方式
JPH0415707A (ja) ロジックアナライズ機能を有するプログラマブルコントローラ
US11281179B2 (en) Tracing apparatus
JPS6014376B2 (ja) 試験装置
KR0136342B1 (ko) 전문가 시스템을 이용한 검사조정장치 및 그고장진단 방법
JP4569011B2 (ja) プログラマブルコントローラ及びその周辺装置
JPH09198275A (ja) コンピュータ性能向上推奨システム
JPS59205613A (ja) シ−ケンスモニタ装置
JP3734379B2 (ja) 表示パネル
JPH0250206A (ja) Faコントローラの故障診断装置
Butterworth et al. Development and application of integrated calibration software for the HP laser interferometer
JPH1040133A (ja) ソフトウェアシミュレータ
KR940010468B1 (ko) 팩스의 진단 보수장치
JPH0580816A (ja) ライン制御回路の評価装置
JPS6215606A (ja) プログラマブルコントロ−ラの実行速度確認方法
JPH02272947A (ja) 障害監視方式

Legal Events

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