KR100502455B1 - 프로그래머블 컨트롤러 - Google Patents

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

Info

Publication number
KR100502455B1
KR100502455B1 KR10-2002-7016489A KR20027016489A KR100502455B1 KR 100502455 B1 KR100502455 B1 KR 100502455B1 KR 20027016489 A KR20027016489 A KR 20027016489A KR 100502455 B1 KR100502455 B1 KR 100502455B1
Authority
KR
South Korea
Prior art keywords
instruction
ram
execution
read
device information
Prior art date
Application number
KR10-2002-7016489A
Other languages
English (en)
Other versions
KR20030007851A (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 KR20030007851A publication Critical patent/KR20030007851A/ko
Application granted granted Critical
Publication of KR100502455B1 publication Critical patent/KR100502455B1/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/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

파이프라인 레지스터(21d)에 저장된 명령코드를 디코드회로(22a)에서 디코드할 때 디바이스 어드레스를 디코드함으로서, RAM(11)과 RAM(12)의 디바이스정보의 어느 쪽을 사용하는지를 판단하고, 디바이스 어드레스가 RAM(12)의 영역을 지정하고 있을 때는 RAM(11)을 지정하고 있을 때와는 달리 디코드회로(22a)에서 파이프라인 처리정지수가 0인 것을 표시하는 신호가 출력되므로 파이프라인 레지스터부(21)는 파이프라인 정지신호를 1로 하지 않으므로 RAM(11)으로부터의 명령코드의 리드와 파이프라인 처리가 중단되지 않는다. 이 결과 고속의 연산처리를 실행할 수 있는 구성과, 소형/저가격인 구성을 동일한 하드웨어로 실현할 수가 있다.

Description

프로그래머블 컨트롤러{PROGAMMABLE CONTROLLER}
본 발명은 시퀸스 프로그램과 시퀀스 연산에 사용하는 디바이스정보와 마이크로 프로세서의 태스크정보를 저장하는 제1의 기억수단과, 상기 디바이스정보를 저장하는 제2의 기억수단과, 제1의 기억수단에서 순차 시퀀스 프로그램을 판독해서 래치하는 파이프라인 레지스터를 적어도 구비하고, 시퀀스 프로그램의 파이프라인 처리를 하는 프로그래머블 컨트롤러에 관해 특히, 고속의 연산처리를 실행할 수 있는 구성과, 소형/저가격의 구성을 동일한 하드웨어로 실현할 수 있는 프로그래머블 컨트롤러에 관한 것이다.
프로그래머블 컨트롤러는 RAM등의 시퀀스 프로그램 저장부에 저장된 시퀀스 프로그램을 순차 판독해서 판독한 시퀀스 프로그램에 따라 연산을 실행하는 것이고, 시퀀스 프로그램에 의해서는 연산 실행 때에 디바이스정보의 리드/라이트를 실행한다.
도 16은 종래의 일반적인 프로그래머블 컨트롤러의 구성을 표시하는 블록도이다. 47은 시퀀스 프로그램에 따라 시퀀스 연산을 하는 CPU이고, 49는 시퀀스 프로그램과 시퀀스 연산에서 사용하는 디바이스정보를 저장하는 RAM이고, 48은 CPU의 시스템정보가 저장되어 있는 ROM이다.
도 16에 표시하는 프로그래머블 컨트롤러는 시퀀스 프로그램을 저장하는 RAM과, 디바이스정보를 저장하는 RAM이 같은 것이므로 시퀀스 프로그램의 리드와 디바이스정보의 리드/라이트를 동시에 실행할 수는 없다. 이 때문에 디바이스정보의 리드/라이트를 실행하는 경우에는 시퀀스 프로그램의 리드를 중단해야 하므로 처리시간이 연장되어 버린다는 문제가 있다. 또, 한쪽에서 이런 프로그래머블 컨트롤러는 그 구성이 단순하고 부품수도 적으므로 저가격이고 소형인 하드웨어를 실현할 수 있다는 이점이 있다.
다음은 일본국 특개평 10 - 198409호 공보에 개시된 프로그래머블 컨트롤러에 대해 설명한다. 이 선행기술에서는 시퀀스 프로그램을 저장하는 RAM과 디바이스정보를 저장하는 RAM을 분리시킴으로서, 양쪽의 RAM에 동시에 액세스할 수 있도록 구성함으로서 처리의 고속화를 도모하고 있다.
도 17은 상기 선행기술의 프로그래머블 컨트롤러의 구성을 표시하는 불록도이다. 50은 시퀀스 프로그램에 따라 시퀀스 연산을 하는 CPU이고, 52는 시퀀스 프로그램을 저장하는 시퀀스 프로그램 RAM이고, 53은 시퀀스 연산에서 사용하는 입력정보와, 출력정보를 저장하는 디바이스 RAM이고, 51은 CPU의 시스템정보가 저장되어 있는 ROM이다.
이 구성에서, 시퀀스 프로그램을 저장하는 RAM과 디바이스정보를 저장하는 RAM이 분리되어 있으므로 CPU가 시퀀스 프로그램을 순차 리드하고 있을 때에 디바이스정보의 리드/라이트를 동시에 실행할 수가 있다. 따라서, 시퀀스 프로그램에 따라 디바이스정보를 리드/라이트해서 연산처리하는 경우에 시퀀스 프로그램의 리드와 디바이스정보의 리드/라이트가 병렬 처리할 수 있다. 따라서, 시퀀스 프로그램의 리드를 중단시키지 않고 디바이스정보의 리드/라이트가 가능하므로 연산처리를 고속으로 실시할 수가 있다. 그 반면, 전술한 종래기술의 프로그래머블 컨트롤러 보다도 RAM이 많아지고, 데이터버스의 개수도 많아지므로 하드웨어가 고가격, 대형화한다는 문제가 있다.
이와 같이 종래의 프로그래머블 컨트롤러에는 (1) 시퀀스 프로그램과 디바이스정보를 같은 RAM에 저장하는 것과, (2) 시퀀스 프로그램과 디바이스정보를 별개의 RAM에 저장하는 것이 있고, 각각 일장일단이 있으나. 저가격이고 소형의 구성과 고속연산의 구성을 동일한 하드웨어로 실현할 수는 없다. 따라서, 저가격이고 소형의 구성과 고속연산의 프로그래머블 컨트롤러의 2개가 필요한 경우에는 2종류의 하드웨어가 필요하게 된다.
따라서, 본 발명은 시퀀스 프로그램을 저장하는 RAM과 디바이스정보를 저장하는 RAM을 공유화해서 사용하는 RAM을 감소시킴으로서, 저가격화나 소형화를 실현하는 구성과, RAM을 2개 사용해 각각 시퀀스 프로그램을 저장하는 RAM과, 디바이스정보를 저장하는 RAM으로 사용하고, 시퀀스 프로그램의 리드와 디바이스정보 리드/라이트의 처리를 병렬로 실시함으로서 고속처리를 실현하는 구성을 동일한 하드웨어로 실현할 수가 있는 프로그래머블 컨트롤러를 제공하는 것을 목적으로 하고 있다.
(발명의 개시)
본 발명에 관한 프로그래머블 컨트롤러는 시퀀스 프로그램과 시퀀스 연산에 사용하는 디바이스정보와 마이크로 프로세서의 태스크정보를 저장하는 제1의 기억수단과, 상기 디바이스정보를 저장하는 제2의 기억수단과, 상기 제1의 기억수단에서 순차 시퀀스 프로그램을 판독해 래치하는 파이프라인 레지스터를 적어도 구비하고, 상기 시퀀스 프로그램의 파이프라인 처리를 하는 프로그래머블 컨트롤러로서, 상기 시퀀스 프로그램에 의해 상기 디바이스정보를 상기 제1의 기억수단 또는 제2의 기억수단의 어느 것인가에 리드/라이트 하는가를 선택하는 선택수단과, 상기 제1의 기억수단에 상기 디바이스정보를 리드/라이트 하는 시퀀스 프로그램이 입력된 경우는 디바이스정보의 리드/라이트시에 파이프라인 처리를 중단하는 동시에 이 디바이스정보의 리드 /라이트가 완료할 때까지 상기 시퀀스 프로그램의 리드를 금지하고, 상기 제2의 기억수단에 상기 디바이스정보를 리드/라이트하는 시퀀스 프로그램이 입력된 경우에는 상기 디바이스정보의 리드/라이트와 시퀀스 프로그램의 리드를 동시에 할 수 있도록 제어하는 제어수단을 구비한 것을 특징으로 한다.
본 발명에 의하면, 시퀀스 프로그램에 의해 디바이스정보를 제1의 기억수단 또는 제2의 기억수단의 어느 것인가에 리드/라이트 하는가를 선택하고. 제1의 기억수단에 리드/라이트하는 시퀀스 프로그램이 입력된 경우에는 디바이스정보의 리드/라이트시에 파이프라인 처리를 중단하는 동시에 이 디바이스정보의 리드/라이트가 완료할 때까지 시퀀스 프로그램의 리드를 금지하고, 제2의 기억수단에 리드/라이트하는 시퀀스 프로그램이 입력된 경우에는 디바이스정보의 리드/라이트와 시퀀스 프로그램의 리드를 동시에 할 수 있도록 제어하는 것으로 하였기 때문에 디바이스 어드레스를 변경하는 것만으로 명령코드의 리드와 디바이스정보의 리드/라이트와 동시에 실시 가능한 고속의 구성과 명령코드와 디바이스정보를 저장하는 메모리를 공유화해서 메모리의 사용수를 감소시켜 소형화, 저가격화에 대해 우수한 구성을 같는 하드웨어에서 골라서 사용할 수가 있다.
다음의 발명에 관한 프로그래머블 컨트롤러는 상기한 발명에서 상기 파이프라인 레지스터는 상기 제1의 기억수단으로부터 하나의 시퀀스 프로그램의 데이터를 모두 리드했을 때에 이 데이터를 정리해서 저장하는 레지스터이고, 상기 제어수단은 상기 하나의 시퀀스 프로그램의 데이터의 리드가 완료할 때까지 상기 제1의 기억수단에서 디바이스정보의 리드/라이트를 실행하지 않도록 제어하는 것을 특징으로 한다.
본 발명에 의하면, 파이프라인 레지스터는 제1의 기억수단으로부터 하나의 시퀀스 프로그램의 데이터를 모두 리드했을 때에 이 데이터를 정리해서 저장하는 레지스터이고, 하나의 시퀀스 프로그램의 데이터의 리드가 완료할 때까지 제1의 기억수단에서 디바이스정보의 리드/라이트를 실행하지 않도록 제어하도록 하였으므로 하나의 시퀀스 프로그램의 데이터를 다수로 나누어 리드하는 경우에도 적용할 수가 있다.
다음의 발명에 관한 프로그래머블 컨트롤러는 상기한 발명에서 이전(以前) 스캔에서의 명령의 실행/비실행을 표시하는 비트를 시퀀스 프로그램과 함께 저장하는 제3의 기억수단을 추가로 구비한 것을 특징으로 한다.
본 발명에 의하면, 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트를 시퀀스 프로그램과 함께 저장하는 제3의 기억수단을 설치하는 것으로 하였으므로 이전 스캔에서의 명령의 실행/비실행을 이용해서 명령 디코드부에서 명령에 실행/비실행을 판단할 수가 있다.
다음의 발명에 관한 프로그래머블 컨트롤러는 상기한 발명에서 상기 제어수단은 상기 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점의 상태의 온/오프에 의해 실행조건이 성립한 경우에는 상기 제1의 기억수단 및 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않을 경우에는 상기 제1의 기억수단 및 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않도록 제어하는 것을 특징으로 한다.
본 발명에 의하면, 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점의 상태의 온/오프에 의해 실행조건이 성립한 경우에는 제1의 기억수단 및 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않는 경우에는 제1의 기억수단 및 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않도록 제어하도록 하였으므로 접점의 온/오프에 의해 명령디코드부에서의 명령의 실행/비실행을 판단하고 비실행시에는 메모리에 대해 연산결과를 리드/라이트하지 않도록 해서 비실행시의 처리시간을 짧게 할 수가 있다.
다음의 발명에 관한 프로그래머블 컨트롤러는 상기한 발명에서 상기 제어수단은 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔으로 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 상기 제1의 기억수단 또는 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않는 경우에는 상기 제1의 기억수단 또는 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않도록 제어하는 것을 특징으로 한다.
본 발명에 의하면, 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔으로 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 제1의 기억수단 또는 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않는 경우에는 제1의 기억수단 또는 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않도록 제어하도록 하였으므로 접점의 온/오프와 전회 스캔시의 명령의 실행/비실행 정보에 의해 명령 디코드부에서 명령의 실행/비실행을 판단하고, 비실행시에는 메모리에 대해 연산결과를 리드/라이트하지 않도록 하고, 비실행시의 처리시간을 짧게 할 수가 있다.
다음의 발명에 관한 프로그래머블 컨트롤러는 상기한 발명에서 상기 제어수단은 직전의 시퀀스 프로그램의 접점의 상태가 변환한 스캔에서 실행되는 명령이 입력되었을 때에 상기 제3의 기억수단에 접점상태를 저장하는 것을 특징으로 한다.
본 발명에 의하면, 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔으로 실행되는 명령이 입력되었을 때에 제3의 기억수단에 접점상태를 저장하는 것을 특징으로 한다.
본 발명에 의하면 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔으로 실행되는 명령이 입력되었을 때에 제3의 기억수단에 접점상태를 저장하기로 하였으므로 직전의 시퀀스 프로그램의 접점상태가 변화한 스캔에서 실행되는 명령을 H/W로 고속으로 연산시킬 수가 있다.
다음의 발명에 관한 프로그래머블 컨트롤러는 상기한 발명에서 상기 제어수단은 상기 시퀀스 프로그램에 따라 파이프라인 처리를 실행중에 상기 마이크로 프로세서에 의해 상기 제1의 기억수단 또는 상기 제2의 기억수단에 대해 상기 디바이스정보를 리드/라이트하는 경우에는 상기 파이프라인 처리를 정지하는 동시에 상기 마이크로 프로세서에 의해 상기 제1의 기억수단 또는 상기 제2의 기억수단에 대한 리드/라이트를 개시하도록 제어하는 것을 특징으로 한다.
본 발명에 의하면, 시퀀스 프로그램에 따라 파이프라인 처리를 실행중에 상기 마이크로 프로세서에 의해 제1의 기억수단 또는 제2의 기억수단에 디바이스정보를 대해 리드/라이트를 하는 경우에는 파이프라인 처리를 정지하는 동시에 마이크로 프로세서에 의해 제1의 기억수단 또는 제2의 기억수단에 대한 리드/라이트를 개시하도록 제어하는 것으로 하였으므로 CPU가 RAM에 리드/라이트할 때에 리드/라이트요구를 출력하는 것만으로 파이프라인 처리를 정지해서 리드/라이트를 실행할 수 있으므로 처리가 고속이 된다. 또, CPU에 인터럽트가 발생했을 때에 태스크정보를 회피시키기 위한 전용의 RAM이 필요가 없게 되며, 저가격화 및 소형화를 도모할 수 있다.
다음의 발명에 관한 프로그래머블 컨트롤러는 상기한 발명에서 상기 제어수단은 S/W명령의 연산을 할때에 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 파이프라인 처리를 정지해서 상기 마이크로 프로세서에 의해 상기 S/W명령을 실행하고 실행조건이 성립하지 않는 경우에는 상기 마이크로 프로세서에 의한 상기 S/W명령을 실행하지 않도록 제어하는 것을 특징으로 한다.
본 발명에 의하면, S/W명령의 연산을 할때 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 파이프라인 처리를 정지해서 마이크로 프로세서에 의해 S/W명령을 실행하고, 실행조건이 성립하지 않는 경우에는 마이크로 프로세서에 의한 S/W명령을 실행하지 않도록 제어하도록 하였으므로 실행할 필요가 없는 S/W명령을 H/W에 의해 판단하고, 마이크로 프로세서가 쓸데없는 연산을 하지 않아도 되므로 S/W명령의 연산처리를 고속으로 실행할 수가 있다.
도 1은 이 실시의 형태에 관한 프로그래머블 컨트롤러의 구성을 표시한 블록도,
도 2는 명령코드의 구성을 설명하기 위한 설명도,
도 3은 메모리제어부에 의한 RAM의 액세스의 제어를 설명하기 위한 설명도,
도 4는 RAM(11)에 명령코드가 저장되는 형태와 RAM(13)에 각 명령의 이전 스캔에서의 명령의 실행/비실행 상태가 저장되는 형태를 표시하는 도면,
도 5는 프로그래머블 컨트롤러 기동후의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에의 전송이 되는 점을 설명하기 위한 설명도,
도 6은 명령에서 사용하는 디바이스 할당의 예를 표시하는 도면,
도 7은 RAM(11)에 저장되어 있는 명령코드를 표시하는 도면,
도 8은 RAM(12)의 영역에 할당되어 있는 디바이스를 사용한 경우에 도 7의 명령을 실행했을 때의 타이밍차트,
도 9는 RAM(11)의 영역에 할당되어 있는 디바이스를 사용한 경우에 도 7의 명령을 실행했을 때에 타이밍차트,
도 10은 RAM(11)의 영역에 할당되어 있는 디바이스를 사용해서 도 7의 명령을 실행했을 때 H/W명령①에서 리드하는 디바이스정보가 OFF 즉 0이 되는 타이밍차트,
도 11은 RAM(11)에 저장되어 있는 명령코드를 표시한 도면,
도 12는 접점상태 기억부(24)에 저장된 접접상태가 OFF에서 ON으로 변화한 스캔으로 RAM(12)의 영역에 할당되어 있는 디바이스를 사용해서 도 11의 명령을 실행했을 때의 타이밍차트,
도 13은 파이프라인 처리중에 예를 들면 CPU(31)에 인터럽트가 발생하고, CPU(31)가 RAM(11)에 대해 태스크정보의 라이트를 했을 때의 타이밍차트,
도 14는 S/W명령의 실행조건이 성립했을 때의 파이프라인 처리를 표시하는 도면,
도 15는 S/W명령의 실행조건이 성립하지 않았을 때의 파이프라인 처리를 설명하기 위한 설명도,
도 16은 종래의 일반적인 프로그래머블 컨트롤러의 구성을 표시하는 블록도,
도 17은 선행기술의 프로그래머블 컨트롤러의 구성을 표시하는 블록도.
(발명을 실시하기 위한 최량의 형태)
아래에 첨부한 도면을 참조해서 본 발명에 관한 프로그래머블 컨트롤러의 바람직한 실시의 형태에 대해 설명한다.
도 1은 본 발명에 관한 프로그래머블 컨트롤러의 구성을 표시하는 블록도이다. 도 1에 표시한 바와 같이 이 프로그래머블 컨트롤러는 메모리 인터페이스부 (10)(이하「메모리 I/F부」라 함)와 하드웨어(H/W)에서 연산하는 명령을 처리하는 H/W명령연산처리부(20)와 소프트웨어(S/W)로 연산하는 명령을 처리하는 S/W명령연산처리부(30)로 된다.
우선, 메모리 I/F부(10)의 구성에 대해 설명한다.
11은 시퀀스 프로그램과 시퀀스 연산에 사용하는 디바이스정보를 저장하는 동시에 CPU가 테스크정보를 저장하는 RAM이고, 12는 시퀀스 연산에 사용하는 디바이스정보만을 저장하는 RAM이고, 13은 이전(以前) 스캔에서의 명령의 실행/비실행 상태를 저장하는 RAM이다.
14는 H/W명령연산처리부(20)로부터의 RAM(11), RAM(12), RAM(13)에의 리드/라이트와 S/W명령연산처리부(30)로부터의 RAM(11), RAM(12), RAM(13)에의 리드/라이트를 제어하는 메모리제어부이고, 15는 H/W명령연산처리부(20)의 동작의 기준클록(도시않음)마다에 순차 인크리먼트되는 프로그램카운터이다.
다음, H/W명령연산처리부(20)의 구성에 대해 설명한다.
21a는 파이프라인 처리의 기동(1)/정지(0)를 하는 레지스터이고, 21b는 RAM에 저장되어 있는 명령코드의 하위 데이터를 순차 리드하고, 일시적으로 보존하는 파이프라인 레지스터(파이프라인 레지스터(0))이다.
21c는 파이프라인 레지스터(21b)에 보존된 명령코드의 하위 데이터와 RAM (11)에 저장되어 있는 명령코드의 상위 데이터와 RAM(13)의 이전 스캔에서의 실행/비실행 상태(1비트)를 순차로 리드해서 명령코드 +1비트의 데이터를 보존하는 파이프라인 레지스터(파이프라인 레지스터(1))이고, 21d는 파이프라인 레지스터(21c)의 내용을 전송하는 파이프라인 레지스터(파이프라인 레지스터(2))이고, 21e는 파이프라인 레지스터(21d)의 내용을 전송하는 파이프라인 레지스터(파이프라인 레지스터 (3))이다.
21f는 파이프라인 처리상태를 표시하는 스테이트 레지스터(예를 들면 0 : 파이프라인 처리정지중, 1 : 파이프라인 처리실행중, 2 : S/W명령 실행으로 파이프라인 처리정지중)이고, 22a는 파이프라인 레지스터(21d)에 저장되어 있는 데이터를 디코드하는 디코드회로이다.
22b는 디코드회로(22a)가 디코드한 내용을 보존하는 디코드정보 보존레지스터(디코드정보 보존레지스터(1))이고, 22c는 디코드정보 보존레지스터(22b)의 내용을 보존하는 디코드정보 보존레지스터(디코드정보 보존레지스터(2))이다.
23은 RAM(11) 또는 RAM(12)에서 리드한 디바이스정보를 일시적으로 저장해 두는 입력레지스터이고, 24는 접점의 상태를 보존하는 접점상태기억부이고, 25는 RAM(11), RAM(12)의 H/W명령 처리시에 사용하는 디바이스정보의 리드/라이트의 요구와 파이프라인 정지요구와 이전 스캔에서의 명령의 실행/비실행 상태 라이트요구를 제어하는 H/W명령연산제어부이다.
26은 디코드정보 보존데이터(22b), 디코드정보 보존레지스터(22c)의 디코드정보에 따라 비트연산 및 워드연산(산출연산, 논리연산, 전송)을 하는 H/W명령연산부이고, 26은 RAM(11) 및 RAM(12)에서 리드한 워드연산 데이터를 저장하는 H/W연산데이터저장부이다.
다음에 S/W명령연산처리부(30)의 구성을 설명한다. 31은 RAM(11)에 기록된 시퀀스 명령이 S/W로 연산하는 명령이 있던 경우에 이 명령을 처리하는 CPU이고, 32는 CPU(31)의 처리내용이 기술되어 있는 시스템 ROM이다.
다음은 명령코드의 구성에 대해 설명한다. 도 2는 명령코드의 구성을 설명하기 위한 설명도이다. 동도면에서 표시한 바와 같이 하위 J비트는 디바이스정보가 저장되어 있는 어드레스(이하 「디바이스 어드레스」라고 한다)를 표시하고 있고, 이 디바이스 어드레스에 의해 디바이스정보의 리드/라이트에 사용하는 RAM이 지정된다.
또, 상위 K비트는 명령의 종별을 표시하고 있고, 도면중에 표시한 바와 같이 명령코드중의 S/W명령과 H/W명령을 구별하는 비트의 값이 0인 경우에는 H/W명령이 되고, 1의 경우에는 S/W명령이 된다.
디바이스 어드레스가 RAM(11)을 지정하고 있을 때는 RAM(11)으로부터의 명령코드의 리드를 중단시켜서 이 RAM(11)에서 디바이스정보를 리드한다.
이 기능에 대해 도 3을 사용해서 설명한다.
도 3은 메모리제어부(14)에 의한 RAM(11)의 액세스의 제어를 설명하기 위한 설명도이다. 기동레지스터(21a)가 0인 동안은 메모리제어부(14)는 RAM(11)의 데이터버스와 CPU(31)의 데이터버스를 연결한다. 기동레지스터가 1인 동안은 메모리제어부(14)는 파이프라인 레지스터부(21)와 RAM(11)의 데이터버스를 연결하고, 순차 RAM(11)의 명령코드를 리드한다.
그러나, 파이프라인 레지스터부(21)에서 출력되는 파이프라인 정지신호가 1인 동안에는 메모리제어부(14)내의 명령코드의 리드신호가 마스크되므로 RAM(11)의 명령코드의 리드가 중단된다.
H/W명령제어부(25)에서 RAM(11)에 대한 리드요구가 출력되면, 입력레지스터 (23)와 RAM(11)의 데이터버스를 연결하고, RAM(11)에서 디바이스정보가 리드되어 입력레지스터(23)에 저장된다. H/W명령제어부(25)로부터 RAM(11)에 대한 라이트요구가 출력되면, H/W명령연산부(26)와 RAM(11)의 데이터버스를 연결하고, RAM(11)에 연산결과를 라이트한다.
따라서, 프로그래머블 컨트롤러를 기동해서 명령코드를 리드하고 있을 때에 H/W명령에 의한 RAM(11)에 대한 디바이스정보의 리드/라이트가 발생한 경우에는 디바이스정보의 리드/라이트가 우선되고, 디바이스정보의 리드/라이트가 실행한다.
도 4는 RAM(11)에 명령코드가 저장되는 상태와 RAM(13)에 각 명령 이전 스캔에서의 명령의 실행/비실행 상태가 저장되는 형태를 표시한 도면이다. 동도면에 표시한 바와 같이 명령코드는 하위 데이터와 상위 데이터로 나누어서 RAM(11)에 저장되고 있다. H/W명령①의 명령코드는 RAM(11)의 2n번지와 2n+1번지에 저장되어 있다. 또, H/W명령①의 이전 스캔에서의 명령의 실행/비실행 상태는 RAM(13)의 n번지에 저장되어 있다.
프로그래머블 컨트롤러를 기동하면, 도 1의 시스템 ROM(32)에 기록되어 있는 내용(도시않음)에 따라 CPU(31)는 각종 레지스터의 설정 등을 한 후 기동레지스터 (21a)를 기동 즉 1로 한다. 기동레지스터(21a)가 1이 되면 파이프라인 레지스터부 (21)에서 출력되어 있는 파이프라인 정지신호가 0이 되고, 프로그램 카운터(15)가 카운트를 개시한다.
메모리제어부(14)는 파이프라인 레지스터부(21)와 RAM(11)의 데이터버스를 연결하고, 프로그램 카운터(15)가 표시하는 어드레스로부터 순차 명령코드를 리드한다. 이전 스캔에서의 명령의 실행/비실행 상태를 저장하고 있는 어드레스는 프로그램 카운터(15)의 값을 1비트 우시프트로 해서 생성한다.
도 5는 프로그래머블 컨트롤러 기동후의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되는 점을 설명하기 위한 설명도이다. 메모리제어부(14)는 도 4에 표시한 RAM(11)의 2n번지(프로그램 카운터(15)의 값)의 H/W명령①의 명령코드의 하위 데이터를 리드해서 파이프라인 레지스터 (21b)에 저장한다. RAM(11)의 2n번지를 리드한 후 프로그램 카운터(15)의 값은 인크리먼트되어 2n+1이 된다.
다음, 메모리제어부(14)는 RAM(11)의 2n+1번지의 H/W명령①의 명령코드의 상위 데이터와 RAM(13)의 n번지(프로그램 카운터(15)의 값을 1비트 우시프트 한 값)의 H/W명령①의 이전 스캔에서의 실행/비실행 상태를 리드해서 파이프라인 레지스터 (21b)에 저장된 H/W명령①의 명령코드 하위 데이터와 함께 파이프라인 레지스터 (21c)에 저장한다. 이때, 프로그램 카운터(15)의 값이 인크리먼트되어 2n+2가 된다. 이하. 같은 순서로 H/W명령②, S/W명령①의 순으로 파이프라인 레지스터(21c)에 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 저장된다.
다음, 도 1을 사용해서 파이프라인 레지스터(21c)에 전송된 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태의 파이프라인 처리에 대해서 설명을 한다. 메모리제어부(14)에서는 프로그램 카운터(15)의 최하위 비트의 값이 0이었을 때는 1이 되고, 1이었던 경우에는 0이 되는 신호(이하, 「홀수/짝수 판정신호」라 한다)가 생성되고, 파이프라인 레지스터부(21)에 출력된다. 즉, 홀수/짝수 판정신호는 명령코드 하위 데이터 리드시는 1이고, 명령코드 상위 데이터 리드시는 0이다.
홀수/짝수 판정신호가 1에서 0이 될 때 파이프라인 레지스터(21c)의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 전송된다. 또, 홀수/짝수 판정신호가 0에서 1이 될 때 파이프라인 레지스터(21d)의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21e)에 전송된다. 파이프라인 레지스터부(21)에서 메모리제어부(14)에 파이프라인 정지신호가 출력되면, 프로그램 카운터(15)가 인크리먼트를 실행하지 않는 구성으로 되어 있으므로 홀수/짝수 판정신호도 변화하지 않게 된다.
홀수/짝수신호가 변화하지 않으면, 파이프라인 레지스터(21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)의 내용은 갱신되지 않으므로 파이프라인 처리가 중단된 것이 된다. 파이프라인 레지스터(21d)에 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 저장되면, 명령코드중의 S/W와 H/W명령을 구별하는 비트로 H/W명령인가 S/W명령인가를 판단한다.
명령코드중의 S/W명령과, H/W명령을 구별하는 비트가 1(S/W명령)인 경우 파이프라인 레지스터부(21)내에서 이전 스캔에서의 명령의 실행/비실행 상태와 접점상태 기억부(24)의 접점상태에서 S/W명령의 실행조건을 판정하고, 실행조건이 성립하면 기동레지스터(21a)를 정지 즉 0으로 한다. 기동레지스터(21a)가 0의 사이는 파이프라인 정지신호가 1개로 되므로 파이프라인 처리는 정지한 것이 된다.
파이프라인 레지스터부(21)는 파이프라인 처리 정지후에 스테이트 레지스터 (21f)를 1에서 2로 한다. CPU(31)은 스테이트 레지스터(21f)를 감시하고, 스테이트 레지스터(21f)가 2인 것을 확인하면, S/W명령의 연산처리를 실행한다. S/W명령 실행 후 CPU(31)는 기동레지스터(21a)를 기동 즉 1로 해서 정지하고 있던 파이프라인 처리를 기동시킨다. 여기서, 기동 레지스터(21a)가 1이 되면 스테이트 레지스터 (21f)도 2에서 1이 된다.
디코드회로(22a)는 파이프라인 레지스터(21d)의 명령코드를 디코드 한다. 전술한 디바이스 어드레스 코드회로(22a)로 디코드함으로서, 시퀀스 명령으로 사용하는 디바이스정보를 저장하고 있는 RAM이 RAM(11)인지 RAM(12)인지를 판단한다.
도 6은 명령으로 사용하는 디바이스 할수의 예를 표시하는 도면이다. 디바이스 어드레스의 A번지 ~ B번지는 RAM(11)의 영역이고, C번지 ~ D번지는 RAM(12)의 영역이다. 예를 들면, 도 6과 같이 디바이스 WO가 RAM(11)의 영역에 할당되어 있고 디바이스 D0가 RAM(12)의 영역에 할당되어 있었다고 하면, 사용자가 시퀀스 프로그램을 작성할 때 디바이스 WO를 사용하면 디바이스 어드레스로서 E번지가 RAM(11)에 기록된다.
마찬가지로 디바이스 D0를 사용하면 디바이스 어드레스로서 F번지 RAM(11)에 기록된다. 따라서, 사용자가 프로그램을 작성할 때에 고속처리가 필요한 경우에는 디바이스 DO를 사용하고, 고속처리가 필요하지 않을 때에는 디바이스 WO를 사용하는 것이 가능하다.
디코드회로(22a)는 디바이스 어드레스가 RAM(11)을 지정하고 있었던 경우는(상기의 예에서는 A번지 ~ B번지) RAM(11)의 디바이스정보를 사용한 경우의 연산에 필요한 파이프라인 처리의 정지수와 RAM(11)에 대한 디바이스정보의 리드/ 라이트의 유무 및 명령종별이 디코드정보로서 디코드정보 보존레지스터(22b)에 저장한다. 이 경우는 전술한 바와 같이 디바이스정보를 리드/라이트할 때는 명령코드의 리드가 안되므로 명령코드의 리드와 파이프라인 처리를 중단시키지 않으면 안된다.
따라서, RAM(11)에 대해 디바이스정보의 리드/라이트가 있는 경우에는 파이프라인 정지수가 최저라도 1이 된다. 한쪽에서 디바이스 어드레스가 RAM(12)를 지정했을 때는(상기의 예에서는 C번지 ~ D번지) RAM(12)의 디바이스정보를 사용한 경우의 연산에 필요한 파이프라인 처리의 정지수와 RAM(12)에 대한 디바이스정보의 리드/라이트의 유무 및 명령종별이 디코드 정보로서 디코드정보 보존레지스터(22b)에 저장된다.
디코드정보 보존레지스터(22b)에 디코드정보가 저장되면, 디코드정보 보존 레지스터(22b)로부터 디코드정보가 H/W명령연산제어부(25)에 출력된다. 디바이스 어드레스가 RAM(11)을 지정하고 있는 경우는 H/W명령연산제어부(25)가 RAM(11)에 대한 디바이스정보 리드/라이트요구를 메모리제어부(14)에 출력하고, 파이프라인 정지요구를 파이프라인 레지스터부(21)에 출력한다.
파이프라인 레지스터부(21)는 H/W명령연산제어부(25)에서 파이프라인 정지요구를 받으면, 파이프라인 정지신호를 1로 해서 파이프라인 처리를 중단시킨다. 메모리제어부(14)는 파이프라인 정지신호가 1이 됨으로서, 명령코드의 리드신호를 마스크하고, 프로그램 카운터(15)의 인크리먼트를 실행하지 않는다.
또, 메모리제어부(14)는 H/W명령 연산제어부(25)에서 RAM(11)에 대한 디바이스정보의 리드/라이트요구를 받음으로서, 입력레지스터(23) 또는 H/W명령연산부 (26)와 RAM(11)의 데이터버스를 연결하고, 시퀀스 명령에 의한 RAM(11)에 대한 디바이스정보의 리드/라이트를 실시한다.
한편, 디바이스 어드레스가 RAM(12)를 지정하고 있었던 경우는 H/W명령연산 제어부(25)는 RAM(12)에 대한 리드/라이트요구를 메모리제어부(14)에 출력한다. 메모리제어부(14)는 H/W명령연산제어부(25)로부터 RAM(12)에 대한 리드/라이트요구를 받으면, RAM(11)에서 명령코드의 리드를 실시하면서 시퀀스 명령에 의한 RAM(12)에 대한 디바이스정보의 리드/라이트를 실시한다
디코드정보 보존레지스터(22c)에 디코드정보가 저장되면, 디코드정보 보존레지스터(22c)의 명령종별 신호가 H/W명령연산부(26)에 출력되고, 리드된 디바이스정보를 연산하고, 연산결과를 접점상태기억부(24)나 RAM(11), RAM(12)에 저장한다.
도 7은 RAM(11)에 저장되어 있는 명령코드를 표시하는 도면이다. H/W명령①은 RAM(11) 또는 RAM(12)에 저장된 디바이스정보를 리드하고, 연산결과를 접점상태 기억부(24)에 저장하는 접점명령이다. H/W명령②는 접점상태기억부(24)에 저장된 접점정보에 관계없이 RAM(11) 또는 RAM(12)에 저장된 디바이스정보를 리드해서 H/W연산데이터저장부(27)에 리드한 디바이스정보를 저장하는 데이터로드명령이다.
H/W명령③은 접점상태기억부(24)에 저장된 접점정보가 ON 즉 1이면, H/W연산 데이터저장부(27)에 저장되어 있는 연산 데이터를 H/W명령연산부(26)에서 연산해서 연산결과를 RAM(11) 또는 RAM(12)의 디바이스에 되돌려 기록하는 명령이다.
도 8은 RAM(12)의 영역에 할당되어 있는 디바이스를 사용한 경우에 도 7의 명령을 실행했을 때의 타이밍차트이다(디바이스 어드레스가 RAM(12)를 지정하고 있는 경우). 이하, 도 1, 도 7 및 도 8을 사용해서 디바이스 어드레스가 RAM(12)의 영역을 지정하고 있을 때의 동작을 설명한다.
T1 및 T2의 기간에서는 전술한 바와 같이 파이프라인 처리가 기동된 후 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 저장될 때까지를 표시하고 있다. 이 T1의 기간에서는 RAM(11)의 2n번지에서 H/W명령①의 명령코드의 하위 데이터가 리드하고, T2의 기간에서는 RAM(11)의 2n+1번지에서 H/W명령①의 명령코드의 상위 데이터가 리드된다.
T3의 기간은 프로그램 카운터(15)의 값이 2n+2가 되고, 파이프라인 레지스터 (21c)에 H/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 저장된 후를 표시한 것이다. 이 기간에서는 RAM(11)의 2n+2번지의 H/W명령②의 명령코드의 하위 데이터가 리드된다.
T4의 기간은 프로그램 카운터(15)의 값이 2n+3이 되고, 홀수/짝수 판정신호가 1에서 0이 된 점에서 파이프라인 레지스터(21c)의 H/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장된 후를 표시한 것이다. 이 기간에서 디코드회로(22a)에서 H/W명령①의 명령코드가 디코드된다. 디코드회로(22a)의 디코드에 의해 H/W명령①을 표시하는 명령종별 신호가 생성된다.
또, 디바이스 어드레스가 RAM(12)를 지정하고 있으므로 H/W명령①의 RAM(12)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 0인 것을 표시하는 신호가 생성된다. 또, 이 기간에 RAM(11)의 2n+3번지의 H/W명령②의 명령코드의 상위 데이터가 리드된다.
T5의 기간은 프로그램 카운터(15)의 값이 2n+4가 되고, H/W명령②의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되고, 홀수/짝수 판정신호가 0에서 1이 된 점에서 파이프라인 레지스터(21d)의 H/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터 (21e)에 저장되고, 디코드회로(22a)의 H/W명령①의 디코드정보가 디코드정보 보존레지스터(22b)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22b)에 H/W명령①의 디코드정보가 전송되면, H/W명령①의 RAM(12)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 0인 것을 표시하는 신호가 H/W명령 연산제어부(25)에 출력된다. 디코드정보 보존레지스터 (22b)로부터 파이프라인 처리정지수가 0인 것을 표시하는 신호가 H/W명령 연산제어부(25)에 출력되었으므로 파이프라인 정지요구는 1이 되지 않고 파이프라인 처리는 중단되지 않는다.
또, H/W명령 연산제어부(25)는 RAM(12)에 대해 디바이스정보의 리드요구를 메모리제어부(14)에 출력하고 메모리제어부(14)는 RAM(12)에서 디바이스정보를 리드해서 입력레지스터(23)에 저장한다. 이 기간에서 RAM(11)의 2n+4번지의 H/W명령③의 명령코드의 하위 데이터가 리드된다.
T6의 기간은 프로그램 카운터(15)의 값이 2n+5가 되고, 홀수/짝수 판정신호가 1에서 0이 되었을 때 파이프라인 레지스터(21c)의 H/W명령②의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장되고, 디코드정보 보존레지스터(22b)의 H/W명령①의 디코드정보가 디코드정보 보존레지스터 (22c)에 전송된 후를 표시한 것이다.
디코드정보 보존레지스터(22c)에 H/W명령①의 디코드정보가 전송되면, H/W명령①을 표시하는 명령종별 신호가 H/W명령연산부(26)에 출력되고, T5의 기간에서 입력레지스터(23)에 저장된 디바이스정보를 연산해서 접점상태기억부(24)에 연산결과를 저장한다.
도 8은 리드한 디바이스정보가 ON 즉 1이었던 경우이고, 이 경우는 접점상태 기억부(24)에는 ON 즉 1이 저장된다. 이 기간에 디코드회로(22a)에서 H/W명령②의 명령코드가 디코드된다. 디코드회로(22a)의 디코드에 의해 H/W명령②을 표시하는 명령종별 신호가 생성된다.
또, 디바이스 어드레스가 RAM(12)을 지정하고 있으므로 H/W명령②의 RAM(12)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 0인 것을 표시하는 신호가 생성된다. 또, 이 기간에 RAM(11)의 2n+5번지의 H/W명령③의 명령코드의 상위 데이터가 리드된다
T7의 기간은 프로그램 카운터(15)의 값이 2n+6이 되고, H/W명령③의 명령코드와 이전 스캔에서의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되고, 홀수/짝수 판정신호가 0에서 1이 되었을 때 파이프라인 레지스터(21d)의 H/W명령②의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21e)에 저장되고, 디코드회로(22a)의 H/W명령②의 디코드정보가 디코드정보 보존레지스터 (22b)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22b)에 H/W명령②의 디코드정보가 전송되면, H/W명령②의 RAM(12)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 0인 것을 표시하는 신호가 H/W명령연산제어부(25)에 출력된다. 디코드정보 보존레지스터 (22b)에서 파이프라인 처리정지수가 0인 것을 표시하는 신호가 H/W명령연산제어부 (25)에 출력되었으므로 파이프라인 정지요구는 1이 안되고, 파이프라인 처리는 중단되지 않는다.
H/W명령연산제어부(25)는 RAM(12)에 대해 디바이스정보의 리드요구를 메모리제어부(14)에 출력하고, 메모리제어부(14)는 RAM(12)에서 디바이스정보를 리드해서 입력레지스터(23)에 저장한다. 또, 이 기간에서 RAM(11)의 2n+6번지의 H/W명령④의 명령코드의 하위 데이터가 리드된다.
T8의 기간은 프로그램 카운터(15)의 값이 2n+7이 되고, 파이프라인 레지스터 (21c)의 H/W명령③의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장되고, 디코드정보 보존레지스터(22b)의 H/W명령②의 디코드정보가 디코드정보 보존레지스터(22c)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22c)에 H/W명령②의 디코드정보가 전송되면, H/W명령②을 표시하는 명령종별 신호가 H/W명령연산부(26)에 출력되고, T7의 기간에서 입력레지스터(23)에 저장한 디바이스정보를 H/W연산데이터저장부(27)에 저장한다. 이 기간에서 디코드회로(22a)에서 H/W명령③의 명령코드가 디코드된다. 디코드회로 (22a)의 디코드에 의해 H/W명령③을 표시하는 명령종별 신호가 생성된다.
또, 디바이스 어드레스가 RAM(12)를 지정하고, 또 접점상태기억부(24)에 저장된 접점상태가 ON 즉 1이므로 H/W명령③의 실행조건이 성립되고, H/W명령③의 RAM(12)에 대한 디바이스정보 라이트요구와 파이프라인 처리정지수가 0인 것을 표시하는 신호가 생성된다. 이 기간에서 RAM(11)의 2n+7번지의 H/W명령④의 명령코드의 상위 데이터가 리드된다.
T9의 기간은 프로그램 카운터(15)의 값이 2n+8이 되고, H/W명령④의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되고, 홀수/짝수 판정신호가 0에서 1이 되었을 때 파이프라인 레지스터(21d)의 H/W명령③의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터 (21e)에 저장되고, 디코드회로(22a)의 H/W명령③의 디코드정보가 디코드정보 보존레지스터(22b)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22b)에 H/W명령③의 디코드정보가 전송되면, H/W명령 연산부(26)에 H/W명령③을 표시하는 명령종별 신호가 출력되고, T8의 기간에서 H/W연산데이터저장부(27)에 저장된 디바이스정보를 H/W명령연산부(26)에서 연산한다. 이 기간에서 RAM(11)의 2n+8번지의 H/W명령⑤의 명령코드의 하위 데이터가 리드된다.
T10의 기간은 프로그램 카운터(15)의 값이 2n+9가 되고, 홀수/짝수 판정신호가 1에서 0이 된 곳에서 파이프라인 레지스터(21c)의 H/W명령④의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장되고, 디코드정보 보존레지스터(22b)의 H/W명령③의 디코드정보가 디코드정보 보존레지스터 (22c)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22c)에 H/W명령③의 디코드정보가 전송되면, H/W명령③을 표시하는 명령종별 신호가 H/W명령연산부(26)에 출력되고, H/W명령연산부 (26)는 T9의 기간에서 연산한 데이터를 메모리제어부(14)에 대해 출력한다. H/W명령연산제어부(25)는 이 기간에서 메모리제어부(14)에 RAM(12)에 대한 라이트요구를 출력하고, 메모리제어부(14)는 RAM(12)에 대해 H/W명령③의 연산결과를 기록한다. 또, 이 기간에서 디코드회로(22a)에서 H/W명령④의 명령코드가 디코드된다. 이 기간에서 RAM(11)의 2n+9번지의 H/W명령⑤의 명령코드의 상위 데이터가 리드된다.
도 9는 RAM(11)의 영역에 할당되어 있는 디바이스를 사용한 경우에 도 7의 명령을 실행했을 때의 타이밍차트이다(디바이스 어드레스가 RAM(11)을 지정한 경우). 이하, 도 1, 도 7 및 도 9를 사용해서 디바이스 어드레스가 RAM(11)의 영역을 지정하고 있던 경우의 동작을 설명한다.
T1 및 T2의 기간에서는 전술한 바와 같이 파이프라인 처리가 기동된 후 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 저장될 때까지를 표시하고 있다. T1의 기간에서는 RAM(11)의 2n번지에서 H/W명령①의 명령디코드의 하위 데이터가 리드되고, T2의 기간에서는 RAM(11)의 2n+1번지에서 H/W명령①의 명령코드의 상위 데이터가 리드된다.
T3의 기간은 프로그램 카운터(15)의 값이 2n+2가 되고, 파이프라인 레지스터 (21)에 H/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 저장된 후를 표시하는 것이다. 이 기간에서는 RAM(11)의 2n+2번지의 H/W명령②의 명령코드의 하위 데이터가 리드된다.
T4의 기간은 프로그램 카운터(15)의 값이 2n+3이 되고, 홀수/짝수 판정신호가 1에서 0이 되었을 때 파이프라인 레지스터(21c)의 명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장된 후를 표시하는 것이다. 이 기간에서 디코드회로(22a)에서 H/W명령①의 명령코드가 디코드된다. 디코드회로(22a)의 디코드에 의해 H/W명령①을 표시하는 명령종별 신호가 생성된다.
또, 디바이스 어드레스가 RAM(11)을 지정하고 있기 때문에 H/W명령①의 RAM(11)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 1인 것을 표시하는 신호가 생성된다. 또, 이 기간에서 RAM(11)의 2n+3번지의 H/W명령②의 명령코드의 상위 데이터가 리드된다.
T5의 기간은 프로그램 카운터(15)의 값이 2n+4가 되고, H/W명령②의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되고, 홀수/짝수 판정신호가 0에서 1이 된 곳에서 파이프라인 레지스터(21d)의 H/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터 (21e)에 저장되고, 디코드회로(22a)의 H/W명령①의 디코드정보 보존레지스터(22b)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22b)에 H/W명령①의 디코드 정보가 전송되면, H/W명령①의 RAM(11)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 1인 것을 표시하는 신호가 H/W명령연산제어부(25)에 출력된다. H/W명령연산제어부(25)는 RAM(11)에 대한 디바이스정보 리드요구를 메모리제어부(14)에 출력하고, 파이프라인 정지요구를 1로 한다.
파이프라인 레지스터부(21)는 파이프라인 정지요구가 1이므로 파이프라인 정지신호를 1로 한다. 메모리제어부(14)는 파이프라인 정지신호가 1이므로 명령코드의 리드신호를 마스크하고, 프로그램 카운터(15)의 인크리먼트를 실행하지 않는다. 또, 홀수/짝수 판정신호도 1인채로 변화하지 않는다.
메모리제어부(14)는 H/W명령연산제어부(25)에서 RAM(11)에 리드/라이트요구를 받으면, 입력레지스터(23)와 RAM(11)의 데어터 버스를 연결하고, RAM(11)에서 디바이스정보를 리드해서 입력레지스터(23)에 저장한다. 또, 파이프라인 레지스터부(21)에서는 홀수/짝수 판정신호가 1인채로 변화하지 않으므로 파이프라인 레지스터(21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)는 갱신되지 않는다.
파이프라인 정지요구는 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21e)에 전송된 타이밍에서 1이 된다. 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21e)에 전송되는 것은 홀수/짝수 판정신호가 0에서 1로 되었을 때이다. 즉, 반드시 명령코드의 상위 데이터가 리드된 후에 파이프라인 정지요구가 1이 되고, 파이프라인 처리가 정지하도록 되어 있고, 하나의 명령코드를 리드해서 끝날 때까지는 파이프라인 처리는 중단하지 않는다.
T6의 기간은 프로그램 카운터(15)의 값은 2n+4이고, 파이프라인 레지스터 (21c), 파이프라인 레지스터(21b), 파이프라인 레지스터(21e)의 내용은 T5의 기간에서 변화하고 있지 않다. 단, 디코드정보 보존레지스터(22b)의 H/W명령①의 디코드정보는 디코드정보 보존레지스터(22c)에 전송되어 있다.
디코드정보 보존레지스터(22c)에 H/W명령①의 디코드정보가 전송되면, H/W명령①의 명령종별 신호가 H/W명령연산부(26)에 출력되고, T5의 기간에서 입력레지스터(23)에 저장된 디바이스 정보의 연산을 하고, 접점상태기억부(24)에 연산결과를 저장한다.
도 9는 리드한 디바이스 정보가 ON 즉 1이었던 경우이고, 이때는 접점상태기억부(24)에는 ON 즉 1이 저장된다. 또, 이 기간에서 RAM(11)의 2n+4번지의 H/W명령③의 명령코드의 하위 데이터가 리드된다.
T7의 기간은 프로그램 카운터(15)의 값이 2n+5가 되고, 홀수/짝수 판정신호가 1에서 0이 된 점에서 파이프라인 레지스터(21c)의 H/W명령②의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장된 후를 표시하는 것이다. 이 기간에서 디코드회로(22a)에서 H/W명령②의 명령코드가 디코드되고, H/W명령②를 표시하는 명령종별 신호가 생성된다. 또, 디바이스 어드레스가 RAM(11)을 지정하고 있으므로 H/W명령②의 RAM(11)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 1인 것을 표시하는 신호가 생성된다. 이 기간에서 RAM (11)의 2n+5번지의 H/W명령③의 명령코드의 상위 데이터가 리드된다.
T8의 기간은 프로그램 카운터(15)의 값이 2n+6이 되고, H/W명령③의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되고, 홀수/짝수 판정신호가 0에서 1이 된 점에서 파이프라인 레지스터(21d)의 H/W명령②의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터 (21e)에 저장되고, 디코드회로(22a)의 H/W명령②의 디코드정보가 디코드정보 보존레지스터(22b)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22b)에 H/W명령②의 디코드정보가 전송되면, H/W명령②의 RAM(11)에 대한 디바이스정보 리드요구와 파이프라인 처리정지수가 1인 것을 표시하는 신호가 H/W명령연산제어부(25)에 출력된다. H/W명령연산제어부(25)는 RAM(11)에 대해서의 디바이스정보 리드요구를 메모리제어부(14)에 출력하고, 파이프라인 정지요구를 1로 한다.
파이프라인 레지스터부(21)는 파이프라인 정지요구가 1이므로 파이프라인 정지신호를 1로 한다. 메모리제어부(14)는 파이프라인 정지신호가 1이므로 명령코드의 리드신호를 마스크하고, 프로그램 카운터(15)의 인크리먼트를 실행하지 않는다. 또, 파이프라인 레지스터부(21)에서는 홀수/짝수 판정신호가 1인채로 변화하지 않으므로 파이프라인 레지스터(21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)는 갱신되지 않는다.
메모리제어부(14)는 H/W명령연산제어부(25)로부터의 RAM(11)에 대한 디바이스정보 리드요구에 의해 입력레지스터와 RAM(11)의 데이터버스를 연결하고, RAM (11)에서 디바이스정보를 리드해서 입력레지스터(23)에 저장한다.
T9의 기간은 프로그램 카운터(15)의 값이 2n+6이고, 파이프라인 레지스터 (21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)의 내용은 T8의 기간으로부터 변화하고 있지 않다. 단, 디코드정보 보존레지스터(22b)의 H/W명령②의 디코드정보는 디코드정보 보존레지스터(22c)에 전송되어 있다.
디코드정보 보존레지스터(22c)에 H/W명령②의 디코드정보가 전송되면, H/W명령②의 명령종별 신호가 H/W명령연산부(26)에 출력되고, T8의 기간에서 입력레지스터(23)에 저장된 디바이스정보를 H/W연산데이터저장부(27)에 저장된다. 이 기간에서 RAM(11)의 2n+6번지의 H/W명령④의 명령코드의 하위 데이터가 리드된다.
T10의 기간은 프로그램 카운터(15)의 값이 2n+7이 되고, 홀수/짝수 판정신호가 1에서 0이 된 시점에서 파이프라인 레지스터(21c)의 H/W명령③의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장된 후를 표시한 것이다. 이 기간에서 디코드회로(22a)에서 H/W명령③의 명령코드가 디코드된다. 디코드회로(22a)의 디코드에 의해 H/W명령③의 명령종별 신호가 생성된다.
또, 디바이스 어드레스가 RAM(11)을 지정하고, 또 접점상태기억부(24)에 저장된 접점상태가 ON 즉 1이므로 H/W명령③의 실행조건이 성립되고, RAM(11)에 대한 디바이스정보의 라이트요구와 파이프라인 처리정지수가 2인 것을 표시하는 신호가 생성된다. 이 기간에서 RAM(11)의 2n+7번지의 H/W명령④의 명령코드의 상위 데이터가 리드된다.
T11의 기간은 프로그램 카운터(15)의 값이 2n+8이 되고, H/W명령④의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되고, 홀수/짝수 판정신호가 0에서 1로 된 시점에서 파이프라인 레지스터(21d)의 H/W명령③의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21e)에 저장되고, 디코드회로(22a)의 H/W명령③의 디코드정보가 디코드정보 보존레지스터(22b)에 전송된 후를 표시한 것이다.
디코드정보 보존레지스터(22b)에 H/W명령③의 디코드정보가 전송되면, H/W명령연산부(26)에 H/W명령③의 명령종별 신호가 출력되고, T10의 기간에서 H/W연산데이터저장부(27)에 저장된 디바이스정보를 H/W명령연산부(26)에서 연산한다. 또, 디코드정보 보존레지스터(22b)로부터 RAM(11)에 대한 디바이스정보의 라이트요구와 파이프라인 처리정지수가 2인 것을 표시하는 신호가 H/W명령연산제어부(25)에 출력된다.
H/W명령연산제어부(25)는 디코드정보 보존레지스터(22b)로부터 파이프라인 처리정지수가 2인 것을 표시하는 신호를 받았으므로 파이프라인 정지요구를 1로 한다. 파이프라인 레지스터부(21)는 파이프라인 정지요구가 1이므로 파이프라인 정지신호를 1로 한다. 파이프라인 정지신호가 1이 되므로 메모리제어부(14)에서 명령코드의 리드신호가 마스크되고, 프로그램 카운터(15)의 인크리먼트가 실행되지 않는다.
또, 파이프라인 레지스터부(21)에서는 홀수/짝수 판정신호가 1인 상태로 변화하지 않으므로 파이프라인 레지스터(21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)는 갱신되지 않는다. 이 기간에서는 파이프라인 정지신호가 1이고, 명령코드의 리드신호가 마스크되어 있으므로 명령코드의 리드는 실행되지 않는다. 또, H/W명령연산제어부(25)로부터 RAM(11)에 대한 리드/라이트요구도 출력되지 않으므로 RAM(11)에 대한 액서스는 없다.
T12의 기간은 프로그램 카운터(15)의 값은 2n+8이고, 파이프라인 레지스터 (21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)의 내용은 T11의 기간에서 변화하지 않고 있다. 단, 디코드정보 보존레지스터(22b)의 H/W명령③의 디코드정보는 디코드정보 보존레지스터(22c)에 전송되고 있다. 디코드정보 보존레지스터(22c)에 H/W명령③의 디코드정보가 전송되면, H/W명령③의 명령종별 신호가 H/W명령연산부(26)에 출력되고, T11의 기간에서 연산한 데이터를 메모리제어부(14)에 대해 출력한다. T11의 기간에서 디코드정보 보존레지스터(22b)로부터 파이프라인 처리정지수가 2인 것을 표시하는 신호가 출력되었으므로 T12의 기간에서도 파이프라인 정지요구는 1이다.
따라서, 파이프라인 레지스터부(21)는 파이프라인 정지신호를 T12의 기간에서도 1로 한다. 파이프라인 정지신호가 1이므로 메모리제어부(14)에서 명령코드의 리드신호가 마스크되고, 프로그램 카운터(15)의 인크리먼트가 실행되지 않는다.
또, 파이프라인 레지스터부(21)에서는 홀수/짝수 판정신호가 1인채로 변화하지 않으므로 파이프라인 레지스터(21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)는 갱신되지 않는다. T11의 기간에서 디코드정보 보존레지스터(22b)에서 RAM(11)에 대한 라이트요구를 받았으므로 이 기간에서 H/W명령연산제어부(25)는 메모리제어부(14)에 RAM(11)에 대한 라이트요구를 출력하고, 메모리제어부(14)는 H/W명령연산부(26)와 RAM(11)의 데이터버스를 연결하고, RAM(11)에 대해 H/W명령③의 연산결과를 라이트한다.
전술한 바와 같이 파이프라인 레지스터(21d)에 저장된 명령코드를 디코드회로(22a)에서 디코드할 때에 디바이스 어드레스를 디코드함으로서 RAM(11)과 RAM (12)의 디바이스 정보중 어느 것을 사용하는가를 판단하고 있다. 디바이스 어드레스가 RAM(12)의 영역을 지정하고 있는 경우는 RAM(11)을 지정하고 있을 때와는 달리 디코드회로(22a)에서 파이프라인 처리정지수가 0인 것을 표시하는 신호가 출력되므로 파이프라인 레지스터부(21)는 파이프라인 정지신호를 1로 하지 않는다. 파이프라인 정지신호가 1이 안되므로 RAM(11)에서의 명령코드의 리드와 파이프라인 처리가 중단되지 않는다. 따라서, RAM(11)으로부터의 명령코드의 리드와 RAM(12)으로부터의 디바이스정보의 리드/라이트를 동시에 실시할 수 있고, 연산처리를 고속으로 실행하는 것이 가능하다.
한편, 디바이스 어드레스가 RAM(11)의 영역을 지정하고 있는 경우는 명령코드의 리드와 디바이스정보의 리드/라이트를 함께 RAM(11)에서 실시하므로 디바이스정보의 리드/라이트시에는 파이프라인 정지신호를 1로 해서 명령코드의 리드와 파이프라인 처리를 중단시켜야만 한다. 그러나, RAM(12)을 사용하지 않으므로 RAM (12)를 실장하지 않고 소형화, 저가격화를 도모하는 것이 가능하다. 또, 본 실시의 형태에서는 디바이스 어드레스를 변경함으로서, 동일한 하드웨어에서 상기 2종류의 구성을 사용하는데 분별해서 사용할 수 있다.
또, 본 실시의 형태에서는 RAM(11)과 RAM(12)의 경계의 어드레스는 고정으로 하였으나, 예를 들면 RAM(11)과 RAM(12)의 경계의 어드레스를 레지스터에 의해 전환하도록 해서 RAM(11)과 RAM(12)의 용량을 가변으로 해도 된다. 또, 두번의 리드로 하나의 명령코드를 리드하고 있으나, 명령코드를 한번에 리드할 수 있도록 해서 명령코드의 리드사이클을 감소시켜 고속화를 실시한 구성에서도 상기한 기능은 실현가능하다.
도 10은 RAM(11)의 영역에 할당되어 있는 디바이스를 사용해서 도 7의 명령을 실행했을 때 H/W명령①로 리드하는 디바이스정보가 OFF 즉 0인 경우의 타이밍차트이다. 이하, 도 7의 명령이 RAM(11)의 디바이스정보를 사용해서 실행했을 때에 H/W명령①로 리드하는 디바이스정보가 OFF인 경우의 동작을 도 1, 도 7 및 도 10을 사용해서 설명한다.
T1의 기간에서 T9까지의 동작은 전술한 도 9의 동작과 동일하다. 단, T10기간에서 H/W명령③이 디코드회로(22a)에서 디코드될 때에 접점상태기억부(24)의 접점상태가 OFF 즉 0이므로 H/W명령③의 실행조건이 성립되지 않으므로 H/W명령③은 비실행이 되고, 디코드정보로서 디코드회로(22a)에서 파이프라인 처리정지수가 0인 것을 표시하는 신호가 출력되고, RAM(11)에 대한 라이트요구는 출력되지 않는다.
이 경우, 연산결과를 RAM(11)에 라이트하지 않으므로 H/W명령③을 실행하지 않는 것과 같은 결과가 된다. 또, 디코드정보 보존레지스터(22b)로부터 파이프라인 처리정지수가 0인 것을 표시하는 신호가 출력되므로 H/W연산제어부(25)가 파이프라인 정지요구를 1로 하지 않으므로 파이프라인 정지신호가 1이 되지 않고, 메모리제어부(14)에서 명령코드의 리드신호가 마스크되지 않으므로 명령코드의 리드가 중단되지 않고, 명령 실행시보다 처리가 고속으로 된다.
전술한 바와 같이 접점상태기억부(24)에 저장된 접점상태에 의해 디코드회로 (22a)에서 명령의 실행/비실행을 판단하고, 디코드정보로서 디바이스정보의 리드/라이트요구를 메모리제어부에 출력하지 않으므로 실행조건이 성립되었을 때는 디바이스정보의 리드/라이트를 실시하나, 실행조건이 성립하지 않았을 때는 디바이스정보의 리드/라이트를 실시하지 않는다. 실행할 필요가 없는 명령의 디바이스정보의 리드/라이트를 하지 않도록 함으로서, 명령이 비실행시의 연산처리 시간을 고속화하는 효과가 있다.
도 11은 RAM(11)에 저장되어 있는 명령코드를 표시한 것이다. H/W명령①은 RAM(11) 또는 RAM(12)에 저장된 디바이스정보를 리드하고, 연산결과를 접점상태기억부(24)에 저장하는 접점명령이다. H/W명령②는 접점상태기억부(24)에 저장된 접점정보에 관계없고, RAM(11) 또는 RAM(12)에 저장된 디바이스정보를 리드해서 H/W연산데이터저장부(27)에 리드한 디바이스정보를 저장하는 데이터 로드명령이다.
H/W명령⑥은 접점상태기억부(15)의 접점상태와 RAM(13)의 이전 스캔에서의 명령의 실행/비실행 상태에서 실행/비실행을 판단해서(이전 스캔에서의 명령의 실행/비실행 상태가 OFF(0)이고 접점상태가 ON(1)일 때 실행조건 성립), 실행조건이 성립했을 때는 H/W연산데이터저장부(27)에 저장되어 있는 연산데이터를 H/W명령연산부 (26)에서 연산해서 연산결과를 RAM(11) 또는 RAM(12)의 디바이스로 되돌려 쓰는 명령이다.
도 12는 접점상태기억부(24)에 저장된 접점상태가 OFF(0)에서 ON(1)으로 변화한 스캔에서 RAM(12)의 영역에 할당되어 있는 디바이스를 사용해서 도 11의 명령을 실행했을 때의 타이밍차트이다(디바이스 어드레스가 RAM(12)을 지정하고 있는 경우). 이하, H/W명령⑥의 동작설명을 도 1, 도 11 및 도 12를 사용해서 실시한다.
T8의 기간은 프로그램 카운터(15)의 값이 2n+7이 되고, 홀수/짝수 판정신호가 1에서 0이 되었을 때 파이프라인 레지스터(21c)의 H/W명령⑥의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장되고, 디코드정보 보존레지스터(22b)의 H/W명령②의 디코드정보가 디코드정보 보존레지스터 (22c)에 전송된 후를 표시하는 것이다. 이 기간에서 디코드회로(22a)에서 H/W명령⑥의 명령코드가 디코드된다.
접점상태기억부(24)에 저장된 접점상태가 ON 즉 1이고, 명령코드를 파이프라인 레지스터(21c)로 전송할 때 RAM(13)의 n+2번지로부터 리드한 전번 스캔에서의 실행/비실행 상태가 비실행 즉 0이므로 H/W명령⑥의 실행조건이 성립하고, 또 디바이스 어드레스가 RAM(12)을 지정하고 있으므로 RAM(12)에 대한 라이트요구와 파이프라인 처리정지수가 1인 것을 표시하는 신호와 이전 스캔에서의 명령의 실행/비실행 상태 라이트요구를 출력한다. 이 기간에서 RAM(11)의 2n+7번지의 H/W명령④의 명령코드의 상위 데이터가 리드된다.
T9의 기간은 프로그램 카운터(15)의 값이 2n+8이 되고, H/W명령④의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21c)에 전송되고, 홀수/짝수 판정신호가 0에서 1이 된 시점에서 파이프라인 레지스터(21d)의 H/W명령⑥의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터 (21e)에 저장되고, 디코드회로(22a)의 H/W명령⑥의 디코드정보가 디코드정보 보존레지스터(22b)에 전송된 후를 표시하는 것이다.
디코드정보 보존레지스터(22b)에 H/W명령⑥의 디코드정보가 전송되면, H/W명령연산부(26)에 H/W명령⑥의 명령종별 신호가 출력되고, T8의 기간에서 H/W연산데이터저장부(27)에 저장된 디바이스정보를 H/W명령연산부(26)에서 연산한다.
또, H/W명령연산제어부(25)는 디코드정보 보존레지스터(22b)에서 파이프라인 처리정지수가 1인 것을 표시하는 신호가 출력되었으므로 파이프라인 정지요구를 1로 한다. 파이프라인 레지스터부(21)는 파이프라인 정지요구가 1이므로 파이프라인 정지신호를 1로 한다. 파이프라인 정지신호가 1이 되기 위해 메모리제어부(14)에서 명령코드의 리드신호가 마스크되고, 프로그램 카운터의 인크리먼트가 실행되지 않는다.
또, 파이프라인 레지스터부(21)에서는 홀수/짝수 판정신호가 1인 채로 변화하지 않으므로 파이프라인 레지스터(21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)는 갱신되지 않는다.
T10의 기간은 프로그램 카운터(15)의 값은 2n+8이 되고, 파이프라인 레지스터 (21c), 파이프라인 레지스터(21d), 파이프라인 레지스터(21e)의 내용은 T9의 기간에서 변화하고 있지 않다. 또, 디코드정보 보존레지스터(22b)의 H/W명령⑥의 디코드정보가 디코드정보 보존레지스터(22c)에 전송되어 있다. 디코드정보 보존레지스터(22c)에 H/W명령⑥의 디코드정보가 전송되면, H/W명령⑥의 명령종별 신호가 H/W명령연산부(26)에 출력되고, T9의 기간에서 연산한 데이터를 메모리제어부(14)에 대해 출력한다.
H/W명령연산제어부(25)는 이 기간에서 메모리제어부(14)에 RAM(12)에 대해 H/W명령⑥의 연산결과를 라이트한다. 동시에, H/W명령연산제어부(25)는 이전 스캔에서의 실행/비실행 상태 라이트요구를 메모리제어부(14)에 출력한다.
이전 스캔에서의 실행/비실행 상태 라이트요구가 없는 경우는 RAM(13)에 대한 어드레스는 프로그램 카운터(15)의 값을 우(右)시프트시켜 생성하고 있다. 그러나, 이전 스캔에서의 실행/비실행 상태 라이트요구가 출력된 경우는 RAM(13)의 H/W명령⑥의 어드레스(프로그램 카운터(15)의 값을 우시프트시킨 값에서 -2해서 생성한다)에 접점상태기억부(24)에 저장되어 있는 접점상태를 라이트한다. 또, 이 기간에서 RAM (11)에서 H/W명령⑤의 명령코드 하위 데이터가 리드된다.
T11의 기간은 프로그램 카운터(15)의 값이 2n+9가 되고, 홀수/짝수 판정신호가 1에서 0이 되었을 때 파이프라인 레지스터(21c)의 H/W명령④의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장된 후를 표시하는 것이다. 이 기간에서는 RAM(11)의 2n+9번지에서 H/W명령⑤의 명령코드 상위 데이터가 리드된다.
또, 메모리제어부(14)는 H/W명령연산제어부(25)에서 이전 스캔에서의 실행/비실행 상태 라이트요구가 없으므로 RAM(13)에 대한 어드레스는 프로그램 카운터(15)의 값을 우시프트해서 생성하고, RAM(13)의 n+4번지에서 이전 스캔에서의 실행/비실행 상태를 리드한다.
H/W명령⑥의 실행조건이 성립하지 않는 경우는 RAM(11) 또는 RAM(12)에 대해 디바이스정보의 라이트를 하지 않는다. 단, 파이프라인 정지신호를 1로 해서 파이프라인 처리를 중단시켜 RAM(13)에 접점상태를 저장하는 동작은 한다.
상기와 같이 명령처리시에 RAM(13)의 어드레스를 프로그램 카운터(15)의 값을 우시프트시켜서 -2로 해서 생성하고, 접점상태기억부(24)의 접점상태를 저장하고, 다음 스캔에서의 접점상태와 함께 명령의 실행/비실행의 판단에 사용함으로서, 접점상태가 변화한 명령을 H/W에 의해 효율적으로 또 고속으로 연산할 수가 있다.
또, 접점상태기억부(15)의 접점상태와 RAM(13)의 이전 스캔에서의 명령의 실행/비실행 상태에 의해 디코드회로(22a)에서 명령의 실행/비실행을 판단하고, 디코드정보로서 리드/라이트요구를 메모리제어부에 출력하지 않으므로 실행시는 디바이스정보의 리드/라이트를 실시하나, 비실행시는 디바이스정보의 리드/라이트를 실시하지 않는다. 따라서, 비실행시의 연산처리시간을 고속화하는 효과가 있다.
도 13은 파이프라인 처리중에 예를 들면 CPU(31)에 인터럽트가 발생하고, CPU(31)가 RAM(11)에 대해 태스크정보의 라이트를 실시한 경우의 타이밍차트이다. CPU(31)가 RAM(11)에 태스크정보를 라이트하려고 하면, CPU(31)는 라이트신호를 메모리제어부(14)에 출력한다.
메모리제어부(14)는 기동레지스터가 1(파이프라인 처리기동중)이므로 RAM (11)과 파이프라인 레지스터부(21)의 데이터버스를 연결하고 있다. 따라서 CPU (31)에서 RAM(11)에 대해 라이트가 안되므로 메모리제어부(14)는 CPU 웨이트신호를 CPU(31)에 출력한다.
한편, 파이프라인 레지스터부(21)는 CPU(31)에서 라이트신호를 받으면, 명령코드의 상위 데이터를 리드한 후 파이프라인 처리를 정지시킨다. 또, 파이프라인 처리가 정지되었을 때 파이프라인 레지스터(21d)에 저장되어 있는 명령(H/W명령②)까지 처리를 한다.
H/W명령② 완료 후 메모리제어부(14)가 RAM(11)과 CPU(31)의 데이터버스를 연결하고, CPU(31)의 태스크정보가 RAM(11)에 라이트된다. CPU(31)의 처리가 완료되고 다시 파이프라인 처리를 개시시킬 때는 CPU(31)에서 기동레지스터(21a)에 1을 라이트하면 된다. 이 수단에 의해 CPU(31)가 리드/라이트할 때에 라이트요구를 출력하는 것만으로 파이프라인 처리가 정지되고, 태스크정보가 퇴피가능하므로 처리가 고속으로 된다.
도 14는 S/W명령의 실행조건이 성립했을 때의 파이프라인 처리를 표시한 것이다. 이하, S/W명령의 명령코드가 입력되어 실행조건이 성립했을 때의 파이프라인 처리를 도 1, 도 14를 사용해서 설명한다.
T6의 기간은 프로그램 카운터(15)의 값이 2n+5가 되고, 홀수/짝수 판정신호가 1에서 0이 되었을 때 파이프라인 레지스터(21c)의 S/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장된 후를 표시한 것이다.
파이프라인 레지스터(21d)에 S/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 저장되면, 명령코드중의 S/W명령과 H/W명령을 구별하는 비트가 1(S/W명령)이므로 파이프라인 레지스터부(21)내에서 이전 스캔에서의 명령의 실행/비실행 상태와 접점상태기억부(24)의 접점상태에서 S/W명령의 실행조건을 판정한다.
T7의 기간에서 파이프라인 레지스터부(21)는 S/W명령①의 실행조건이 성립되면, 기동레지스터(21a)를 0으로 해서 파이프라인 처리를 정지시킨다. 파이프라인 레지스터부(21)는 기동레지스터(21a)가 0이 되었으면 스테이트 레지스터에 2(S/W명령 실행으로 파이프라인 처리 정지중)를 세트한다. 또, 메모리제어부(14)에 대해 이전 스캔에서의 명령의 실행/비실행 상태 라이트요구를 출력한다.
이전 스캔에서의 명령의 실행/비실행 상태 라이트요구에 의해 메모리제어부(14)는 RAM(13)의 S/W명령①의 이전 스캔에서의 명령의 실행/비실행 상태가 저장되어 있는 어드레스에(프로그램 카운터(15)의 값을 우시프트시킨 값을 -2로 한 어드레스) 접점상태기억부(24)에 저장되어 있는 접점상태를 라이트한다.
CPU(31)는 스테이트 레지스터(21f)를 감시하고 있고, 스테이트 레지스터 (21f)에 2가 세트된 것을 확인하였으면, S/W명령의 연산을 개시한다. S/W명령의 연산이 종료하였으면, CPU(31)는 기동레지스터(21a)에 1을 라이트해서 파이프라인 처리를 재개시킨다.
도 15는 S/W명령의 실행조건이 성립하지 않았을 때의 파이프라인 처리를 설명하기 위한 설명도이다. 이하, S/W명령의 명령코드가 입력되어 실행조건이 성립되지 않았을 때의 파이프라인 처리에 대해 도 1 및 도 15를 사용해서 설명한다.
T6의 기간은 프로그램 카운터(15)의 값이 2n+5가 되고, 홀수/짝수 판정신호가 1에서 0이 된 시점에서 파이프라인 레지스터(21c)의 S/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 파이프라인 레지스터(21d)에 저장된 후를 표시하는 것이다.
파이프라인 레지스터(21d)에 S/W명령①의 명령코드와 이전 스캔에서의 명령의 실행/비실행 상태가 저장되면, 명령코드중의 S/W명령과 H/W명령을 구별하는 비트가 1(S/W명령)이므로 파이프라인 레지스터부(21)내에서 이전 스캔에서의 명령의 실행/비실행 상태와 접점상태기억부(24)의 접점상태에서 S/W명령의 실행조건을 판정한다.
T7의 기간에서 S/W명령①의 실행조건이 성립하지 않았을 때는 실행조건이 성립한 때와 같이 RAM(13)에 접점상태기억부(24)의 접점상태를 라이트하나, 다음의 T8의 기간에서는 파이프라인 정지신호는 해제된다. 또, 기동레지스터(21a)는 1의 상태 그대로이다.
전술한 바와 같이 S/W명령의 실행조건이 성립한 경우에는 파이프라인 처리를 정지시켜 CPU로 S/W명령의 연산을 실행하고, 실행 후에 기동레지스터에 1을 라이트해서 파이프라인 처리를 재개시킨다. 한편, 실행조건이 성립하지 않는 경우는 RAM (13)에 대해 접점상태의 라이트만을 하고, CPU(31)는 S/W명령의 처리를 실행하지 않고 파이프라인 처리를 계속한다.
이 때문에 실행할 필요가 없는 S/W명령을 H/W에 의해 판단하고, CPU(31)가 필요없는 연산을 하지 않아도 되므로 S/W명령의 연산처리가 고속으로 된다. 또, 본 실시의 형태에서는 2회의 리드로 하나의 명령코드를 리드하고 있으나, 명령코드를 1회로 리드할 수 있도록 하여 명령코드의 리드사이클을 감소해서 실시한 구성에서도 상기한 기능은 실현가능하다.
상술한 바와 같이 본 발명에 의하면, 시퀀스 프로그램에 의해 디바이스정보를 제1의 기억수단 또는 제2의 기억수단의 어느 것에 리드/라이트 하는가를 선택하고, 제1의 기억수단에 리드/라이트하는 시퀀스 프로그램이 입력된 경우는 디바이스정보의 리드/라이트시에 파이프라인 처리를 중단하는 동시에, 이 디바이스정보의 리드/라이트가 완료될 때까지 시퀀스 프로그램의 리드를 금지하고, 제2의 기억수단에 리드/라이트하는 시퀀스 프로그램이 입력된 경우에는 디바이스정보의 리드/라이트와 시퀀스 프로그램의 리드를 동시에 하도록 제어하게 구성하였으므로 디바이스 어드레스를 변경하는 것만으로 명령코드의 리드와 디바이스정보의 리드/라이트가 동시에 실시가능한 고속의 구성과, 명령코드와 디바이스정보를 저장하는 메모리를 공유화해서 메모리의 사용수를 감소시켜 소형화, 저가격화에 우수한 구성을 동일한 하드웨어로 선택 사용할 수가 있다.
다음의 발명에 의하면, 파이프라인 레지스터는 제1의 기억수단에서 하나의 시퀀스 프로그램의 데이터를 모두 리드했을 때에 이 데이터를 정지해서 저장하는 레지스터이고, 하나의 시퀀스 프로그램의 데이터의 리드가 완료될 때까지 제1의 기억수단에서 디바이스정보의 리드/라이트를 실행하지 않게 제어하도록 구성하였으므로 하나의 시퀀스 프로그램의 데이터를 여러번으로 나누어 리드하는 경우에도 적용할 수가 있다.
다음의 발명에 의하면, 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트를 시퀀스 프로그램과 함께 저장하는 제3의 기억수단을 설치하도록 구성하였으므로 이전 스캔에서의 명령의 실행/비실행을 판단할 수가 있다.
다음의 발명에 의하면, 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점의 상태의 온/오프에 의해 실행조건이 성립한 경우에는 제1의 기억수단 또는 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않은 경우에는 제1의 기억수단 또는 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않게 제어하도록 구성하였으므로 접점의 온/오프에 의해 명령디코드부에서의 명령의 실행/비실행을 판단하고, 비실행시에는 메모리에 대해 연산결과를 리드/라이트하지 않도록 하고, 비실행시의 처리시간을 짧게 할 수가 있다.
다음의 발명에 의하면, 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔으로 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 제1의 기억수단 또는 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않은 경우에는 제1의 기억수단 또는 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않게 제어하도록 구성하였으므로 접점의 온/오프와 전회 스캔시의 명령의 실행/비실행 정보에 의해 명령디코드부에서 명령의 실행/비실행을 판단하고, 비실행시에는 메모리에 대해 연산결과를 리드/라이트하지 않도록 하고, 비실행시의 처리시간을 짧게 할 수가 있다.
다음의 발명에 의하면, 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔으로 실행되는 명령이 입력되었을 때에 제3의 기억수단에 접점상태를 저장하도록 구성하였으므로 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔으로 실행되는 명령을 H/W로 고속으로 연산시킬 수가 있다.
다음의 발명에 의하면, 시퀀스 프로그램에 따라 파이프라인 처리를 실행중에 상기 마이크로 프로세서에 의해 제1의 기억수단 또는 제2의 기억수단에 대해 리드/라이트를 하는 경우에는 파이프라인 처리를 정지하는 동시에 마이크로 프로세서에 의해 제1의 기억수단 또는 제2의 기억수단에 대한 리드/라이트를 개시하게 제어하도록 구성하였으므로 CPU가 RAM에 리드/라이트할 때에 리드/라이트요구를 출력하는 것만으로 파이프라인 처리를 정지해서 리드/라이트를 실행할 수 있으므로 처리가 고속으로 된다. 또, CPU에 인터럽트가 발생했을 때에 태스크정보를 퇴피시키기 위한 전용의 RAM이 필요없게 되어 저가격화 및 소형화를 도모할 수 있다.
다음의 발명에 의하면, S/W명령의 연산을 할 때에 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 파이프라인 처리를 정지해서 마이크로 프로세서에 의해 S/W를 실행하고, 실행조건이 성립하지 않는 경우에는 마이크로 프로세서에 의한 S/W명령을 실행하지 않도록 제어하는 것으로 하였으므로 실행할 필요가 없는 S/W명령을 H/W에 의해 판단하고, CPU가 여분한 연산을 하지 않아도 되므로 S/W명령의 연산처리를 고속으로 실행할 수가 있다.
이상과 같이 본 발명에 관한 프로그래머블 컨트롤러는 시퀀스 프로그램의 파이프라인 처리의 실행에 적합하고, 동일한 하드웨어에 의해 저가격화나 소형화와 고속처리를 함께 실현하는데 유익하다.

Claims (7)

  1. 시퀀스 프로그램, 시퀀스 연산에 사용하는 디바이스정보 및 마이크로 프로세서의 태스크정보를 저장하는 제1의 기억수단과 상기 디바이스정보를 저장하는 제2의 기억수단과, 상기 제1의 기억수단에서 순차 시퀀스 프로그램을 판독해서 래치하는 파이프라인 레지스터를 적어도 구비하고,
    상기 시퀀스 프로그램의 파이프라인 처리를 실시하는 프로그래머블 컨트롤러로서,
    상기 시퀀스 프로그램에 의해 상기 디바이스정보를 상기 제1의 기억수단 또는 제2의 기억수단 중 어느 하나에 리드/라이트 하는가를 선택하는 선택수단과;
    상기 제1의 기억수단에 상기 디바이스정보를 리드/라이트하는 시퀀스 프로그램이 입력된 경우에는 디바이스정보의 리드/라이트시에 파이프라인 처리를 중단하는 동시에 이 디바이스정보의 리드/라이트가 완료할 때까지 상기 시퀀스 프로그램의 리드를 금지하고, 상기 제2의 기억수단에 상기 디바이스 정보를 리드/라이트하는 시퀀스 프로그램이 입력된 경우에는 상기 디바이스정보의 리드/라이트와 시퀀스 프로그램의 리드를 동시에 실시하도록 제어하는 제어수단
    을 구비한 것을 특징으로 하는 프로그래머블 컨트롤러.
  2. 제1항에 있어서,
    상기 파이프라인 레지스터는 상기 제1의 기억수단에서 하나의 시퀀스 프로그램의 데이터를 모두 리드했을 때에 이 데이터를 정리해서 저장하는 레지스터이고,
    상기 제어수단은 상기 하나의 시퀀스 프로그램의 데이터의 리드가 완료할 때까지 상기 제1의 기억수단에서 디바이스정보의 리드/라이트를 실행하지 않도록 제어하는 것을 특징으로 하는 프로그래머블 컨트롤러.
  3. 제1항에 있어서,
    이전 스캔에서의 명령의 실행/비실행을 표시하는 비트를 시퀀스 프로그램과 함께 저장하는 제3의 기억수단을 추가로 구비한 것을 특징으로 하는 프로그래머블 컨트롤러.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제어수단은 상기 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점상태의 온/오프에 의해 실행조건이 성립한 경우에는 상기 제1의 기억수단 또는 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않는 경우에는 상기 제1의 기억수단 및 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않도록 제어하는 것을 특징으로 하는 프로그래머블 컨트롤러.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제어수단은 직전의 시퀀스 프로그램의 접점의 상태가 변화한 스캔에서 디바이스정보의 리드/라이트를 실행하는 명령이 입력되었을 때에 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 상기 제1의 기억수단 또는 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하고, 실행조건이 성립하지 않는 경우에는 상기 제1의 기억수단 및 상기 제2의 기억수단에 디바이스정보의 리드/라이트를 실행하지 않도록 제어하는 것을 특징으로 하는 프로그래머블 컨트롤러.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제어수단은, 상기 시퀀스 프로그램에 따른 파이프라인 처리의 실행중에, 상기 마이크로 프로세서에 의해 상기 제1의 기억수단 또는 상기 제2의 기억수단에 대해 상기 디바이스정보를 리드/라이트하는 경우에는 상기 파이프라인 처리를 정지하는 동시에, 상기 마이크로 프로세서에 의해 상기 제1의 기억수단 또는 제2의 기억수단에 대한 리드/라이트를 개시하도록 제어하는 것을 특징으로 하는 프로그래머블 컨트롤러.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제어수단은 S/W명령의 연산을 할 때에 직전의 시퀀스 프로그램의 접점의 상태와 이전 스캔에서의 명령의 실행/비실행을 표시하는 비트의 온/오프에 의해 실행조건이 성립한 경우에는 파이프라인 처리를 정지해서 상기 마이크로 프로세서에 의해 상기 S/W명령을 실행하고, 실행조건이 성립하지 않을 때는 상기 마이크로 프로세서에 의한 상기 S/W명령을 실시하지 않도록 제어하는 것을 특징으로 하는 프로그래머블 컨트롤러.
KR10-2002-7016489A 2001-04-09 2001-11-21 프로그래머블 컨트롤러 KR100502455B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001110063A JP4451010B2 (ja) 2001-04-09 2001-04-09 プログラマブルコントローラ
JPJP-P-2001-00110063 2001-04-09
PCT/JP2001/010179 WO2002084421A1 (en) 2001-04-09 2001-11-21 Programmable controller

Publications (2)

Publication Number Publication Date
KR20030007851A KR20030007851A (ko) 2003-01-23
KR100502455B1 true KR100502455B1 (ko) 2005-07-20

Family

ID=18961906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7016489A KR100502455B1 (ko) 2001-04-09 2001-11-21 프로그래머블 컨트롤러

Country Status (5)

Country Link
US (1) US7076641B2 (ko)
JP (1) JP4451010B2 (ko)
KR (1) KR100502455B1 (ko)
DE (1) DE10196152B3 (ko)
WO (1) WO2002084421A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7402168B2 (en) * 2005-04-11 2008-07-22 Xtent, Inc. Custom-length stent delivery system with independently operable expansion elements
JP4640989B2 (ja) * 2006-01-12 2011-03-02 株式会社リコー 画像処理装置及び画像処理制御方法
JP4507125B2 (ja) * 2007-09-10 2010-07-21 三菱電機株式会社 プログラマブルコントローラ
KR102250856B1 (ko) * 2014-04-30 2021-05-11 삼성전자주식회사 터치 입력 검출 방법, 터치 입력 감지 장치, 및 좌표 표시 장치
US11020698B2 (en) 2015-12-11 2021-06-01 Cummins Filtration Ip, Inc. Filter with variable cross-section axial seal

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2752076B2 (ja) * 1988-02-23 1998-05-18 株式会社東芝 プログラマブル・コントローラ
DE4003507A1 (de) * 1990-02-06 1991-08-08 Bosch Gmbh Robert Digitales steuergeraet, insbesondere zuend- und/oder einspritzsteuergeraet fuer kraftfahrzeuge
JPH0792902A (ja) * 1993-09-20 1995-04-07 Hitachi Ltd プログラマブルコントローラ
US5724566A (en) * 1994-01-11 1998-03-03 Texas Instruments Incorporated Pipelined data processing including interrupts
DE9408298U1 (de) * 1994-05-20 1994-07-21 Pietzsch, Rüdiger, 52223 Stolberg Controller-Board
DE19500453A1 (de) * 1994-06-16 1995-12-21 Bosch Gmbh Robert Verfahren zur Optimierung von Daten und/oder Programmteilen für programmierte Steuergeräte und Steuergerät
JP3225757B2 (ja) * 1994-10-24 2001-11-05 三菱電機株式会社 プログラマブルコントローラ
DE4443326A1 (de) * 1994-12-06 1996-06-13 Merk Gmbh Telefonbau Fried Speicheranordnung einer Steuereinrichtung mit einem Mikroprozessor
JPH0923307A (ja) 1995-07-04 1997-01-21 Fuji Xerox Co Ltd 画像記録装置
JPH0922307A (ja) * 1995-07-07 1997-01-21 Meidensha Corp シーケンサ
JP3646445B2 (ja) * 1997-01-13 2005-05-11 株式会社明電舎 プログラマブルコントローラ
US6021459A (en) * 1997-04-23 2000-02-01 Micron Technology, Inc. Memory system having flexible bus structure and method
GB2329049B (en) * 1997-09-09 2002-09-11 Advanced Risc Mach Ltd Apparatus and method for identifying exceptions when debugging software
DE19831405A1 (de) * 1998-07-13 2000-01-20 Siemens Ag Steuerungssystem mit einem Personalcomputer
SE512773C2 (sv) * 1998-10-28 2000-05-08 Imsys Ab Metod och anordning för kontroll/access av DRAM-minnen
WO2000073863A1 (en) * 1999-05-28 2000-12-07 Mitsubishi Denki Kabushiki Kaisha Programmable controller

Also Published As

Publication number Publication date
US20040024935A1 (en) 2004-02-05
WO2002084421A1 (en) 2002-10-24
DE10196152B3 (de) 2014-11-20
JP4451010B2 (ja) 2010-04-14
KR20030007851A (ko) 2003-01-23
DE10196152T1 (de) 2003-03-13
JP2002312005A (ja) 2002-10-25
US7076641B2 (en) 2006-07-11

Similar Documents

Publication Publication Date Title
US20050188137A1 (en) Matrix type bus connection system and power reduction method therefor
US6915413B2 (en) Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein
KR20030055148A (ko) 리드/모디파이/라이트 유닛을 갖는 시스템
JP2002073331A (ja) データ処理装置
KR100502455B1 (ko) 프로그래머블 컨트롤러
US4628449A (en) Vector interrupt system and method
US7870311B2 (en) Preemptive packet flow controller
US20100318707A1 (en) External device access apparatus, control method thereof, and system lsi
US6883041B2 (en) Direct memory access device
JP2005332370A (ja) 制御装置
JP2006202271A (ja) ストリームプロセッサ及び情報処理装置
JPH0612107A (ja) シーケンス演算プロセッサおよびシーケンス演算処理装置
US6795911B1 (en) Computing device having instructions which access either a permanently fixed default memory bank or a memory bank specified by an immediately preceding bank selection instruction
JP2007200106A (ja) データ処理装置、制御方法、及びプログラム
US5828861A (en) System and method for reducing the critical path in memory control unit and input/output control unit operations
KR100396189B1 (ko) 디지털신호 처리장치 및 그 제어방법
JP3446603B2 (ja) 情報処理装置及びパイプライン処理方法
JP2689914B2 (ja) 情報処理装置
JP2002268876A (ja) パイプライン処理方法、及び情報処理装置
US5864691A (en) Central processing unit with a selector that bypasses circuits where processing is not required
JP2000029508A (ja) プログラマブルコントローラ
JP3785807B2 (ja) 制御装置
JP2002278753A (ja) データ処理システム
KR19980083128A (ko) 피엘씨 시스템에서의 다중 타스크 고속 수행장치
JP2001084143A (ja) 情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130621

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140626

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150619

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160617

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee