KR100304607B1 - System for processing high-speed command for programmable logic controller - Google Patents

System for processing high-speed command for programmable logic controller Download PDF

Info

Publication number
KR100304607B1
KR100304607B1 KR1019940025982A KR19940025982A KR100304607B1 KR 100304607 B1 KR100304607 B1 KR 100304607B1 KR 1019940025982 A KR1019940025982 A KR 1019940025982A KR 19940025982 A KR19940025982 A KR 19940025982A KR 100304607 B1 KR100304607 B1 KR 100304607B1
Authority
KR
South Korea
Prior art keywords
data
user program
memory
high speed
speed command
Prior art date
Application number
KR1019940025982A
Other languages
Korean (ko)
Other versions
KR960015206A (en
Inventor
고삼석
Original Assignee
윤종용
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR1019940025982A priority Critical patent/KR100304607B1/en
Publication of KR960015206A publication Critical patent/KR960015206A/en
Application granted granted Critical
Publication of KR100304607B1 publication Critical patent/KR100304607B1/en

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/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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
    • 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/30181Instruction operation extension or modification

Landscapes

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

Abstract

PURPOSE: A system for processing a high-speed command for a programmable logic controller is provided to increase the processing speed by distinguishing a user program memory and a bus of a data memory, by performing a special accessing, thereby accessing the user program memory simultaneously with reading or writing the data to the data memory. CONSTITUTION: A CPU(21) is connected to a system memory(22) capable of processing a user program. A high-speed command processor(23) inputs and processes a command outputted from the CPU(21). The high-speed command processor(23) is respectively connected to the CPU(21) and the system memory(22). A data memory(25) stores input/output data. A user program memory(24) stores a user program. The data memory(25) and the user program memory(24) are respectively connected to special buses(27, 28) and the high-speed command processor(23). The high-speed command processor(23) is asynchronously operated with the CPU(21). In addition, the high-speed command processor(23) simultaneously accesses to the user program memory(24) and the data memory(25).

Description

프로그래머블 로직 콘트롤러용 고속 명령 처리 시스템High Speed Command Processing System for Programmable Logic Controller

제1도는 종래의 고속 명령 처리 시스템의 개략적인 블럭도이다.1 is a schematic block diagram of a conventional high speed command processing system.

제2도는 본 발명에 따른 프로그래머블 로직 콘트롤러용 고속 명령처리 시스템의 개략적인 블럭도이다.2 is a schematic block diagram of a high speed instruction processing system for a programmable logic controller according to the present invention.

제3도는 제2도에 도시된 고속 명령어 처리기의 본 발명에 의한 바람직한 일실시예의 블록도이다.3 is a block diagram of one preferred embodiment of the present invention of the high speed instruction processor shown in FIG.

제4도는 제1도에 도시된 종래의 고속 명령 처리 시스템의 단일 버스 구조에서의 명령어 처리를 설명하기 위한 그래프이다.4 is a graph for explaining instruction processing in a single bus structure of the conventional high speed instruction processing system shown in FIG.

제5도는 제2도에 도시된 본 발명에 따른 프로그래머블 로직 콘트롤러용 고속 명령 처리 시스템의 더블 버스구조에서의 명령어 처리를 설명하기 위한 그래프이다.FIG. 5 is a graph for explaining instruction processing in a double bus structure of the high speed instruction processing system for a programmable logic controller according to the present invention shown in FIG.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

11, 21 : CPU 12, 22 : 시스템 메모리(SR)11, 21: CPU 12, 22: System Memory (SR)

13, 23 : 고속명령어처리기(HLS) 14, 24 : 사용자프로그램메모리(IM)13, 23: high speed command processor (HLS) 14, 24: user program memory (IM)

15, 25 : 데이타메모리(DM) 26, 27, 28 : 버스15, 25: Data memory (DM) 26, 27, 28: Bus

23a : Inst FIFO부 23b : Data Path부23a: Inst FIFO part 23b: Data Path part

23c : IMPC부 23d : Micro Control부23c: IMPC part 23d: Micro control part

23e : ALU부 23f : Addr Latch부23e: ALU part 23f: Addr Latch part

본 발명은 프로그래머블 로직 콘트롤러(Programmable Logic Controller: 이하 PLC로 약칭함)용 고속 명령 처리 시스템에 관한 것으로서, 특히 사용자 프로그램 메모리와 데이타 메모리의 버스(bus)를 구별하여 별도의 엑세스(access)가 가능하도록 하여 데이타 메모리에 데이타를 읽기/쓰기(read/write)하는 동시에 사용자 프로그램 메모리를 엑세스함으로써 고속화를 가능하게 하는 PLC용 고속 명령 처리 시스템에 관한 것이다.The present invention relates to a high-speed command processing system for a programmable logic controller (hereinafter, abbreviated as PLC), and in particular to distinguish between a bus of a user program memory and a data memory to enable separate access. The present invention relates to a high speed instruction processing system for a PLC that enables high speed by accessing a user program memory while simultaneously reading / writing data to and from a data memory.

오늘날, PLC는 공장자동화 등을 위한 필수적인 장치로서 이용된다. 제어 대상이 되는 공정의 모터나 공정 밸브 등의 상태를 나타내는 출력과 이들의 상태를 감시하는 감지기 등의 입력을 PLC의 출력과 입력에 각각 할당한 후, 제어하려는 순서에 따라 사용자가 작성한 프로그램을 외부로부터 PLC에 인가하면 PLC는 소정의 제어 동작을 수행한다.Today, PLCs are used as essential devices for factory automation and the like. Outputs indicating the status of the process motor or process valve to be controlled and inputs such as detectors to monitor the status are assigned to the outputs and inputs of the PLC, respectively, and the user-written program is When applied to the PLC from the PLC performs a predetermined control operation.

그와 같은 PLC는 통상 연산을 위한 프로세서(CPU)와, 사용자 프로그램을 저장해 두는 메모리, 공정의 입력 및 출력에 관여하는 데이터를 저장하는 입출력(IO:Input Output) 메모리, 사용자 프로그램을 수행하고 처리하는 시스템 메모리, 고속 명령어 처리부 및 통신을 위한 주변장치로 구성되어 있다.Such PLCs typically have a processor (CPU) for operation, a memory for storing user programs, an input / output (IO) memory for storing data involved in the input and output of the process, and a user program for performing and processing. It consists of system memory, high speed command processor and peripherals for communication.

이하, 종래의 PLC용 고속 명령 처리 시스템의 구성 및 동작을 첨부한 도면을 참조하여 다음과 같이 설명한다.Hereinafter, with reference to the accompanying drawings, the configuration and operation of a conventional high-speed command processing system for a PLC will be described as follows.

제1도는 종래의 고속 명령 처리 시스템(10)의 블록도로서, 프로세서(CPU)(11), 시스템 메모리(SR : System Rom)(12), 고속 명령어 처리기(HLS : Hardware Logic Solver)(13), 사용자 프로그램 메모리(IM : Instruction Memory)(14) 및 입출력(IO : Input Output) 데이터 메모리(DM)(Data Memory)(15)로 구성된다. 제1도에 도시된 고속 명령어 처리기(13)는 사용자 프로그램 메모리(14)에 점선과 같이 연결될 수 있다.1 is a block diagram of a conventional high speed instruction processing system 10, which includes a processor (CPU) 11, a system memory (SR) 12, and a high speed instruction processor (HLS: hardware logic solver) 13 And a user program memory (IM) 14 and an input / output (IO) data memory (DM) 15. The high speed command processor 13 shown in FIG. 1 may be connected to the user program memory 14 as a dotted line.

제1도를 참조하면, 종래의 고속 명령 처리 시스템(10)에서, 사용자 프로그램을 수행하고 처리하는 시스템 메모리(12), 고속 명령어 처리기(13), 사용자 프로그램을 저장해 두는 사용자 프로그램 메모리(14) 및 공정의 입력 및 출력에 관여하는 IO 데이터를 저장하는 데이터 메모리(15)가 연산을 위한 CPU(11)에 각각 전기적으로 접속되어 있다.Referring to FIG. 1, in the conventional high speed command processing system 10, a system memory 12 for executing and processing a user program, a high speed command processor 13, a user program memory 14 for storing a user program, and The data memory 15 for storing IO data involved in the input and output of the process is electrically connected to the CPU 11 for calculation, respectively.

이와 같이 구성된 종래의 고속 명령 처리 시스템(10)에 있어서, 고속 명령어 처리기(13)는 사용자 프로그램을 사용자 프로그램 메모리(14)에서 독출한 후 데이터 메모리(15)로부터 해당 데이타를 읽어 처리하도록 되어 있다. 이와 같이, 고속 명령어 처리기(13)는 하나의 버스에 의해 사용자 프로그램 메모리(14) 및 데이터 메모리(15)에 나란히 접속되어 있으므로, 고속 명령어 처리기(13)는 어느 한 순간에 사용자 프로그램 메모리(14) 및 데이타 메모리(15)중 하나의 메모리만을 액세스할 수 있다.In the conventional high speed command processing system 10 configured as described above, the high speed command processor 13 reads the user program from the user program memory 14 and then reads the data from the data memory 15 and processes it. In this way, since the high speed command processor 13 is connected to the user program memory 14 and the data memory 15 side by side by one bus, the high speed command processor 13 is the user program memory 14 at any one time. And only one memory of the data memory 15 can be accessed.

이와 같이, 사용자 프로그램 메모리(14)와 데이터 메모리(15)는 단일의 버스를 사용하기 때문에, 종래의 고속 명령 처리 시스템(10)은 전술한 것처럼 한 순간에 하나의 메모리만 액세스할 수 있으므로, 종래의 고속 명령 처리 시스템(10)은 명령어 처리의 고속화에 한계성을 갖는다. 그리고, CPU(11)와 타이밍에 의존하여 CPU(11)의 버스속도에 따라 메모리(14 또는 15)를 액세스하는 속도가 제한되므로, 아무리 데이터 입/출력 속도가 빠른 사용자 프로그램 메모리(14)와 데이타 메모리(15)를 사용하더라도 명령어 처리 속도는 CPU의 기종과 그 CPU의 메모리 기입/독출 싸이클(cycle)에 한정될 수 밖에 없다. 또한, 고속 명령어 처리기(13)는 CPU의 상태(status) 신호를 사용하므로, 기종이 다른 CPU에 적용될 수 없으며, CPU변경 및 명령어 처리방식이 변경될 경우 시스템을 재설계해야 하는 등의 문제점을 갖는다.As described above, since the user program memory 14 and the data memory 15 use a single bus, the conventional high speed command processing system 10 can access only one memory at a time as described above. The high speed command processing system 10 has a limitation in speeding up command processing. In addition, since the speed of accessing the memory 14 or 15 is limited depending on the bus speed of the CPU 11 depending on the timing of the CPU 11 and the timing, the user program memory 14 and the data having the highest data input / output speeds can be obtained. Even if the memory 15 is used, the instruction processing speed can only be limited to the type of CPU and the memory write / read cycle of the CPU. In addition, since the high speed instruction processor 13 uses the status signal of the CPU, the model cannot be applied to other CPUs, and there is a problem of redesigning the system when the CPU change and the instruction processing method are changed. .

본 발명은 상기와 같은 문제점을 감안하여 창출된 것으로서, 프로그래머블 로직 콘트롤러에서, 사용자 프로그램 메모리와 데이터 메모리를 동시에 액세스할 수 있고, CPU의 타이밍에 의존함이없이 고속 명령어 처리기 스스로에 의해 메모리들을 액세스할 수 있는 PLC용 고속명령 처리 시스템을 제공함에 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and in the programmable logic controller, the user program memory and the data memory can be accessed simultaneously, and the memories can be accessed by the high speed instruction processor itself without depending on the timing of the CPU. It is an object of the present invention to provide a high-speed command processing system for PLC.

상기의 목적을 달성하기 위하여 본 발명에 따른 프로그래머블 로직 콘트롤러에 사용되는 고속 명령 처리 시스템은, 프로세서(CPU)와, 상기 CPU에 전기적으로 접속되며 사용자가 작성한 사용자 프로그램을 수행하고 처리하는 시스템 메모리와, 상기 시스템 메모리에 전기적으로 접속되며 상기 사용자 프로그램에 포함된 명령어를 처리하는 고속 명령어 처리기와, 상기 고속 명령어 처리기와 전기적으로 접속되며 상기 사용자 프로그램을 저장하는 사용자 프로그램 메모리 및 상기 고속 명령어 처리기와 전기적으로 접속되며 공정의 입력 및 출력에 관여하는 입출력 데이터를 저장하는 데이터 메모리로 이루어지고, 상기 사용자 프로그램 메모리와 상기 데이터 메모리는 각각 별개의 버스에 의해 상기 고속 명령어 처리기와 접속되며, 상기 고속 명령어 처리기는 상기 CPU와 비동기적으로 동작하여 상기 사용자 프로그램 메모리 및 상기 데이타 메모리를 최소응답속도까지 동시에 액세스할 수 있고, 상기 고속 명령어 처리기는, 상기 사용자 프로그램 메모리로부터 독출된 상기 사용자 프로그램을 저장하는 Inst FIFO부와, 상기 Inst FIFO로부터 출력되는 상기 사용자 프로그램을 상기 명령어와 연산 대상으로 나누고, 상기 연산 대상으로부터 참조 또는 쓰고자 하는 데이타 메모리의 어드레스를 계산하는 데이터 경로부와, 상기 사용자 프로그램 메모리의 어드레스를 보관하는 IMPC부와, 상기 데이터 경로부로부터 입력한 상기 명령어를 이용하여 모든 데이타 경로 및 콘트롤 신호들을 만들어 내고, 마이크로 연산자를 자체적으로 저장하는 Micro Control부와, 입력한 상기 명령어 및 상기 데이타 경로부에 의해 상기 데이타 메모리로부터 독출된 데이타를 상기 콘트롤 신호에 응답하여 논리연산을 수행하는 ALU부 및 어드레스와 데이타를 동시에 사용하는 핀을 갖는 상기 CPU로부터의 어드레스 및 데이터를 래치하기 위한 Addr Latch부로 이루어지고, 상기 Micor control부(23d)는 상기 마이크로 연산자를 이용하여 상기 모든 데이타 경로 및 상기 콘트롤 신호들을 만들 수 있는 것이 바람직하다.In order to achieve the above object, a high speed instruction processing system used in a programmable logic controller according to the present invention includes a processor (CPU), a system memory electrically executing and processing a user program created by a user, and electrically connected to the CPU; A high speed command processor electrically connected to the system memory and processing commands included in the user program, a high speed command processor electrically connected to the high speed command processor, and a user program memory electrically storing the user program and an high speed command processor And a data memory for storing input and output data related to the input and output of the process, wherein the user program memory and the data memory are each connected to the high speed command processor by a separate bus, and the high speed command processing is performed. The device operates asynchronously with the CPU to simultaneously access the user program memory and the data memory up to a minimum response speed. The high speed instruction processor includes an Inst FIFO unit for storing the user program read from the user program memory. And a data path unit for dividing the user program output from the Inst FIFO into the instruction and the operation target, and calculating an address of a data memory to be referred to or written from the operation target, and storing the address of the user program memory. The microcontrol unit generates all data paths and control signals using the IMPC unit, the command inputted from the data path unit, and stores the microoperator itself, and the input command and the data path unit. day An ALU unit for performing logic operation in response to the control signal and an addr latch unit for latching address and data from the CPU having a pin using an address and data at the same time, the Micor control It is preferable that section 23d can make all the data paths and the control signals using the micro operator.

이와 같이 사용자 프로그램 메모리와 데이터 메모리가 각각 별개의 버스에 의해 고속 명령어 처리기와 접속되어 있으므로, 고속 명령어 처리기는 동시에 메모리들을 액세스할 수 있어, PLC용 고속 명령 처리 시스템은 고속으로 동작할 수 있다. 또한, CPU의 타이밍에 의존함없이 고속 명령어 처리기 자체에 사용자 프로그램의 포인터를 가지고 있으므로, CPU 기종의 메모리 액세스 속도에 제한되지 않고 사용자 프로그램 메모리와 데이다 메모리의 최소 응답 시간까지 액세스 속도를 높임으로써 응답속도가 빠른 메모리를 사용할 경우 PLC용 고속 명령 처리 시스템은 처리속도를 더욱 증진시킬 수 있고, 시스템 운용이 한층 용이하도록 하는 장점을 갖는다.Since the user program memory and the data memory are each connected to the high speed command processor by separate buses, the high speed command processor can simultaneously access the memories, so that the high speed command processing system for the PLC can operate at high speed. In addition, since the high speed instruction processor itself has a pointer to the user program regardless of the timing of the CPU, the response speed is increased by increasing the access speed up to the minimum response time of the user program memory and the dada memory without being limited to the memory access speed of the CPU model. When using a fast memory, the high speed command processing system for PLC can further increase the processing speed and has an advantage of making the system easier to operate.

이하, 본 발명에 의한 PLC용 고속 명령 처리 시스템의 구성 및 동작을 첨부된 도면들을 참조하여 다음과 같이 설명한다.Hereinafter, the configuration and operation of a high speed command processing system for a PLC according to the present invention will be described as follows with reference to the accompanying drawings.

제2도는 본 발명에 의한 PLC용 고속 명령 처리 시스템(20)의 개략적인 블럭도로서, 프로세서(CPU)(21), 시스템 메모리(SR)(22), 고속 명령어 처리기(23), 사용자 프로그램 메모리(IM)(24) 및 데이터 메모리(DM)(25)로 구성된다.2 is a schematic block diagram of a high speed instruction processing system 20 for a PLC according to the present invention, and includes a processor (CPU) 21, a system memory (SR) 22, a high speed instruction processor 23, and a user program memory. (IM) 24 and data memory (DM) 25.

제2도를 참조하면, 본 발명에 따른 PLC용 고속 명령 처리 시스템(20)에서, 연산을 위한 CPU(21)는 사용자 프로그램을 수행하고 처리하는 시스템 메모리(22)와 버스(26)에 연결된다. 또한, CPU(21)로부터 출력되는 명령을 입력하여 처리하는 고속 명령어 처리기(23)가 버스(26)에 의해 CPU(21) 및 시스템 메모리(12:SR)와 각각 연결된다. 이 때, 종래의 PLC용 고속 명령 처리 시스템(10)과 달리 본 발명에 의한 PLC용 고속 명령 처리 시스템(20)에서, 공정의 입력 및 출력에 관여하는 입출력 데이터를 저장하는 데이터 메모리 (25:DM) 및 사용자 프로그램을 저장해 두는 사용자 프로그램 메모리(24:IM)는 제2도에 도시된 바와 같이 별개의 버스들(27 및 28)에 의해 고속 명령어 처리기(23)와 각각 연결된다. 따라서, 사용자 프로그램 메모리(24:IM)에서 사용자 프로그램을 읽는 동시에 데이터 메모리(25:DM)로부터 IO 데이타를 독출하여 참조하고 IO 데이터를 기입할 수도 있다. 나아가, 이와 같이 고속 명령어 처리기(23)가 두 개의 메모리들(24 및 25)을 동시에 엑세스하는 중첩 동작을 최대로 수행할 수 있도록 함으로써 명령어 처리시간을 한층 절감시킬 수 있다. 여기서, 고속 명령어 처리기(23)의 전술한 동작을 수행시키기 위한 기준 클락(clock)은 CPU(21)에 의존하지 않고, 고속 명령어 처리기(23) 자체의 클락을 이용한다. 그러므로, 고속 명령어 처리기(23)는 사용자 프로그램 메모리(24:IM) 및 데이터 메모리(25:DM)의 최소 응답 시간에 맞추어 CPU(21)와 비동기적으로 동작될 수 있으므로, 최대한 빨리 메모리들(24 및 25)을 액세스할 수 있다.Referring to FIG. 2, in the high speed instruction processing system 20 for a PLC according to the present invention, the CPU 21 for operation is connected to a system memory 22 and a bus 26 for performing and processing a user program. . In addition, a high speed instruction processor 23 for inputting and processing instructions output from the CPU 21 is connected to the CPU 21 and the system memories 12: SR by the bus 26, respectively. At this time, unlike the conventional high-speed command processing system 10 for PLC, in the high-speed command processing system 20 for PLC according to the present invention, a data memory (25: DM) storing input / output data related to input and output of a process. And the user program memory 24 (IM) storing the user program are connected to the high speed instruction processor 23 by separate buses 27 and 28, respectively, as shown in FIG. Therefore, at the same time as reading the user program from the user program memory 24: IM, the IO data can be read and referenced from the data memory 25: DM and the IO data can be written. Furthermore, the instruction processing time can be further reduced by allowing the high speed instruction processor 23 to perform the maximum overlapping operation of simultaneously accessing the two memories 24 and 25. Here, the reference clock for performing the above-described operation of the high speed instruction processor 23 uses the clock of the high speed instruction processor 23 itself without depending on the CPU 21. Therefore, the high speed instruction processor 23 can be operated asynchronously with the CPU 21 in accordance with the minimum response time of the user program memory 24: IM and the data memory 25: DM, so that the memories 24 as soon as possible. And 25).

제3도는 제2도에 도시된 고속 명령어 처리기(23)의 본 발명에 의한 바람직한 일실시예의 블록도로서, 명령(Inst: Instruction) 선입력선출력(FIFO: First Input First Output)부(23a), 데이터 경로(Data Path)부(23b), 프로그램 카운터(IMPC: Instruction MeMory Program Counter)(23c), 마이크로 제어(Micro Control)부(23d), 논리 연산부(ALU: Arithmetic & Logic Unit)(23e) 및 어드레스(Addr: Address) 래치 (Latch)부(23f)로 구성된다.FIG. 3 is a block diagram of a preferred embodiment of the high speed instruction processor 23 shown in FIG. 2 according to the present invention. Inst (Inst) First Input First Output (FIFO) unit 23a , Data Path 23b, Instruction MeMory Program Counter 23c, Micro Control 23d, Arithmetic & Logic Unit ALU 23e And an address (Addr: Address) latch portion 23f.

제3도에 도시된 Inst FIFO(23a)는 사용자가 작성한 사용자 프로그램을 사용자 프로그램 메모리(24)로부터 입력하여 저장하고, 저장한 사용자 프로그램을 데이터 경로부(23b)로 출력한다. 이를 위해, Inst FIFO부(23a)는 FIFO로 구성되어 있으며, 실제로 사용자 프로그램 메모리(24)에서 사용자 프로그램을 독출할 필요가 없는 싸이클에서도 계속적으로 사용자 프로그램 메모리(24)로부터 사용자 프로그램을 독출하여 저장함으로써, 앞으로 처리할 사용자 프로그램을 쌓아두는 역할을 한다. 이 때, 먼저 읽혀진 사용자 프로그램은 먼저 수행되고, 사용자 프로그램에는 후술되는 바와 같이 명령어에 대한 정보가 포함되어 있다.The Inst FIFO 23a shown in FIG. 3 inputs and stores a user program created by the user from the user program memory 24, and outputs the stored user program to the data path unit 23b. To this end, the Inst FIFO section 23a is configured as a FIFO, and by continuously reading and storing the user program from the user program memory 24 even in a cycle in which the user program memory 24 does not actually need to be read. This is to build up user programs for future processing. At this time, the user program read first is performed first, and the user program includes information on a command as described below.

Data Path부(23b)는 Inst FIFO(23a)로부터 출력되는 사용자 프로그램을 명령어 부분과 연산 대상(operand) 부분으로 나누고, 연산 대상 부분으로부터 참조 또는 쓰고자하는 데이타 메모리(25)의 어드레스를 계산해내고 ALU(23e)에서 계산된 데이타의 유통 경로를 보여준다. 이를 위해, Data Path부(23b)는 디코더(31), 어드레스 전달부들(32 및 35), 명령(Inst) 래치(33), 어드레스 발생부(34) 및 버퍼(36)로 구성된다.The data path section 23b divides the user program output from the inst FIFO 23a into an instruction section and an operand section, calculates an address of the data memory 25 to be referred to or written from the computation target section, and then ALU. The distribution route of the data calculated in (23e) is shown. To this end, the data path unit 23b includes a decoder 31, address transfer units 32 and 35, an instruction latch 33, an address generator 34, and a buffer 36.

디코더(decoder)(31)는 사용자 프로그램을 실제 명령어와 참조하는 데이타 메모리(25)의 어드레스로 나누어 주는 역할을 한다. 이 때, 디코더(31)는 분리된 실제 명령어를 명령 래치(33)로 출력하고, 데이타 메모리(25)의 어드레스는 어드레스 전달부(32)를 통해 어드레스 발생부(34)로 출력한다. 그러므로, 어드레스 발생부(34)는 실제 참조하고자 하는 절대적인 데이타 메모리(25)의 어드레스를 계산해 낸다. 어드레스 전달부(35)(DM addr)는 어드레스 발생부(34)로부터 입력한 계산된 어드레스를 데이터 메모리(25)로 전달하는 역할을 한다. 버퍼(buffer)(36)는 ALU(23e)에서 계산된 데이타를 데이터 메모리(25)에 보내기 전에 보관하거나 또는 데이터 메모리(25)로부터 독출된 데이타를 ALU(23e)로 출력하기 전에 보관하는 역할을 한다.The decoder 31 divides a user program into an actual instruction and an address of the data memory 25 to which the reference refers. At this time, the decoder 31 outputs the separated actual instruction to the instruction latch 33, and outputs the address of the data memory 25 to the address generator 34 through the address transfer section 32. Therefore, the address generator 34 calculates the address of the absolute data memory 25 to be actually referred to. The address transfer unit 35 (DM addr) serves to transfer the calculated address input from the address generator 34 to the data memory 25. The buffer 36 stores the data calculated in the ALU 23e before sending it to the data memory 25 or storing the data read out from the data memory 25 before outputting it to the ALU 23e. do.

IMPC부(23c)는 IMPC(IM Program Counter)의 일반적인 동작으로부터 알 수 있듯이 IM, 즉 사용자 프로그램 메모리(24)로부터 데이타를 독출하기 위해 사용될 어드레스를 보관하는 역할을 한다.The IMPC unit 23c serves to store an IM, i.e., an address to be used for reading data from the user program memory 24, as can be seen from the general operation of the IM Program Counter (IMPC).

Micro Control부(23d)는 명령 래치(33)로부터 입력한 실제 명령어를 이용하여 모든 데이타 경로 및 콘트롤 신호들을 만들어 내는 역할을 한다. 이를 위해, Micro Control부(23d)는 콘트롤 및 타이밍(control & timing)부(37) 및 마이크로 연산자(Micro OP Code)부(38)로 구성된다. 콘트롤 및 타이밍부(37)는 모든 데이타 경로와 콘트롤 신호들을 생성하는 역할을 하고, 마이크로 연산자부(38)는 시간에 따라 해야할 일련의 일들을 보관하는 역할을 하며 마이크로 연산자 롬(Micro Operation Code ROM)으로 구현될 수 있다. 즉, 마이크로 연산자부(38)는 자체적으로 마이크로 연산자를 저장하고, 저장된 마이크로 연산자를 이용하여 모든 데이타 경로 및 콘트롤 신호들을 생성할 수 있다. 그러므로, 마이크로 연산자(Micro OP Code)를 작성함으로써 모든 제어를 실현할 수 있기 때문에 Micro Control부(23d)는 CPU(21)가 명령어를 변경해도 PLC용 고속 명령 처리 시스템이 쉽게 적용될 수 있도록 한다.The micro control unit 23d serves to generate all data paths and control signals using the actual command input from the command latch 33. To this end, the micro control unit 23d is composed of a control & timing unit 37 and a micro operator (Micro OP Code) unit 38. The control and timing section 37 is responsible for generating all data paths and control signals, and the micro operator section 38 is responsible for storing a series of tasks to be performed over time, and the Micro Operation Code ROM. It can be implemented as. That is, the micro operator 38 may store the micro operator by itself and generate all data paths and control signals using the stored micro operator. Therefore, since all the control can be realized by creating a micro operator (Micro OP Code), the Micro Control unit 23d allows the high speed instruction processing system for PLC to be easily applied even if the CPU 21 changes the instruction.

ALU부(23e)는 읽혀진 명령어와 데이타를 가지고 Micro Control부(23d)로부터 출력되는 콘트롤 신호에 응답하여 실제 연산을 수행하는 부분이다. 이 때, ALU부(23e)는 처리할 데이타가 명령어 자체에 포함된 경우도 있기 때문에 데이타 경로부(23b)의 어드레스 발생부(34)로부터 데이타를 받을 수도 있고, 데이터 메모리(25)로부터 버퍼(36)를 통해 데이타를 받을 수도 있다.The ALU unit 23e is a part that performs the actual operation in response to the control signal output from the micro control unit 23d with the read command and data. At this time, the ALU unit 23e may receive data from the address generator 34 of the data path unit 23b because the data to be processed may be included in the instruction itself. You can also receive data through

Addr Latch부(23f)는 어드레스(ADDR)와 데이타(DATA)를 동시에 사용하는 핀을 갖는 CPU(21)로부터 입력한 어드레스/데이타(ADDR/DATA)를 래치(latch)하는 역할을 수행한다.The Addr Latch section 23f latches the address / data ADDR / DATA input from the CPU 21 having a pin that simultaneously uses the address ADDR and the data DATA.

한편, CPU 인터페이스(Interface)(29)는 CPU(21)와 HLS(23)를 인터페이스하기 위한 부분으로서, CPU(21)와 HLS(23) 사이에서 통상의 어드레스/데이타(ADDR/DATA), 어드레스 래치 신호(ALE:Address Latch Enable signal), 독출(Read)신호(/RD) 및 기입(Write)신호(/WR)를 인터페이스시킨다. 여기서, CPU(21)와 고속 명령어 처리기(23)는 비동기로 동작하므로 이를 중개하기 위해, CPU(21)는 고속 명령어 처리동작을 위해서 런 플래그(RunFlag)라는 신호를 HLS(23)로 출력한다. 이 때, CPU(21)에서 제어할 수 있는 신호와 고속 명령어 처리기(HLS)(23) 자체가 처리할 수 없는 복잡한 명령어인 경우, CPU 인터페이스(29)는 CPU(21)를 불러 처리를 요구하는 Inst App(Instruction Application, 즉 복잡한 응용명령)이라는 신호를 HLS(23)로부터 받아서 CPU(21)로 출력시켜준다. 고속 명령어 처리기(23)에서 이용되는 기준 클락(30)은 CPU(21)에서 사용되는 클락이 아니라 고속 명령어 처리기(23) 자체의 클락으로서, 마이크로 콘트롤부(23d)의 기준 클락이 된다.Meanwhile, the CPU interface 29 is a part for interfacing the CPU 21 and the HLS 23. The CPU interface 29 includes an ordinary address / data (ADDR / DATA) and an address between the CPU 21 and the HLS 23. The latch signal (ALE: Address Latch Enable signal), the read signal / RD, and the write signal / WR are interfaced. Since the CPU 21 and the high speed instruction processor 23 operate asynchronously, the CPU 21 outputs a signal called a run flag (RunFlag) to the HLS 23 for the high speed instruction processing operation. At this time, in the case of signals that can be controlled by the CPU 21 and complicated instructions that the high speed instruction processor (HLS) 23 itself cannot process, the CPU interface 29 calls the CPU 21 to request processing. It receives an Inst App (Instruction Application) signal from the HLS 23 and outputs it to the CPU 21. The reference clock 30 used in the high speed instruction processor 23 is not a clock used in the CPU 21 but a clock of the high speed instruction processor 23 itself, and serves as a reference clock of the microcontroller 23d.

제4도 및 제5도들은 명령어 처리를 설명하기 위한 그래프들로서, 제4도는 종래의 고속 명령 처리 시스템(10)의 단일 버스 구조에서의 명령어 처리를 설명하기 위한 그래프이고, 제5도는 본 발명에 따른 PLC용 고속 명령 처리 시스템(20)의 더블 버스 구조에서의 명령어 처리를 설명하기 위한 그래프이다.4 and 5 are graphs for explaining instruction processing, and FIG. 4 is a graph for explaining instruction processing in a single bus structure of a conventional high speed instruction processing system 10, and FIG. It is a graph for explaining command processing in the double bus structure of the high speed command processing system 20 for PLC according to the present invention.

먼저 제4도를 참조하면, 41은 STR RO의 수행을 나타낸 것이다. 여기서, STR은 처음 시작을 나타내는 명령어로서, RO에 해당하는 입출력 데이터를 데이터 메모리(25)로부터 독출하여 처리하는 명령어이며, 2바이트(byte)로 된 명령어 구조를 가진다. STR이 8비트 구조라면, 사용자 프로그램 메모리(24)를 두 번 엑세스하여 STR RO라는 명령어를 독출해내고, 다시 RO라는 입출력 데이터에 해당하는 상태를 데이터 메모리(25)로부터 독출해온다. 예컨대, 사용자 프로그램 메모리(IM)(24)를 2회 액세스하고, 데이터 메모리(DM)(25)를 1회 액세스하기 위해서, 3번의 버스 싸이클이 필요하게 된다 42는 OUT RO[여기서, OUT RO는 앞에서 계산된 결과에 의해 RO가 속한 그룹의 1바이트(byte)를 읽어내고 RO에 해당하는 비트(bit)만을 수정하여 기입(write)을 하는 명령어로서, 2바이트(byte) 명령어 구조를 가진다.]의 실행 사용자 프로그램 메모리(IM)(24)를 2회 액세스하고 데이터 메모리(DM)(25)를 2회(Read, Write) 액세스하기 위해, 4번의 버스 싸이클이 소요된다. 43은 사용자 프로그램 메모리(IM)(24)를 6회 액세스하고, 데이터 메모리(DM)(25)를 6회 액세스하기 위해, 12번의 버스 싸이클이 소요된다.Referring first to Figure 4, 41 represents the performance of the STR RO. Here, STR is a command indicating the first start, and is a command for reading and processing input / output data corresponding to RO from the data memory 25 and has a command structure of 2 bytes. If the STR is an 8-bit structure, the user program memory 24 is accessed twice to read out an instruction called STR RO and again read out a state corresponding to input / output data called RO from the data memory 25. For example, three bus cycles are required to access the user program memory (IM) 24 twice and to access the data memory (DM) 25 once. Reads one byte of the group to which the RO belongs and writes by modifying only the bit corresponding to the RO based on the result calculated above. It has a two-byte instruction structure.] Four bus cycles are required to access the user program memory (IM) 24 twice and the data memory (DM) 25 twice (Read, Write). 43 requires 12 bus cycles to access the user program memory (IM) 24 six times and to access the data memory (DM) 25 six times.

제4도 및 제5도들에 도시된 RLC WO W1는, 6바이트로 된 명령어 코드를 가지고 W0에 해당하는 데이터를 W1에 해당하는 데이터만큼 오른쪽으로 회전(Right Rotation)시키는 명령어로서, 사용자 프로그램 메모리(24)를 6회 엑세스하여 데이타를 독출해내야 한다. 여기서, W0 및 W1이 워드 길이의 데이터를 표시한다고 하면, W0를 독출하기 위해서는 사용자 프로그램 메모리(24)를 두 번 엑세스하여야 하고, W1을 읽으려면 다시 사용자 프로그램 메모리(24)를 두 번 엑세스하여야 하고, 계산된 W0를 다시 기입하기 위해서는 사용자 프로그램 메모리(24)를 두 번 엑세스하여야 한다.RLC WO W1 shown in FIGS. 4 and 5 is a command that rotates the data corresponding to W0 to the right by the data corresponding to W1 with an instruction code of 6 bytes, and user program memory. You must access (24) six times to read the data. Here, if W0 and W1 represent word length data, the user program memory 24 must be accessed twice to read W0, and the user program memory 24 must be accessed twice to read W1. In order to rewrite the calculated W0, the user program memory 24 must be accessed twice.

한편, 제5도를 참조하면, 51의 STR RO의 경우 제4도의 41과는 달리 사용자 프로그램 메모리(IM)(24)의 버스(28)와 데이터 메모리 (DM)(25)의 버스(27)를 동시에 액세스함으로써 2번의 버스 싸이클로 실행됨을 알 수 있다. 52의 경우에는 제4도의 42와 같은 OUT RO의 명령을 수행함에 있어서 2번의 버스 싸이클로 실행된다. 그리고, 53의 경우에는 제4도의 43과 같은 RLC WO Wl명령을 수행함에 있어 6번의 버스 싸이클만이 소요된다.Meanwhile, referring to FIG. 5, in the case of STR RO of 51, the bus 28 of the user program memory (IM) 24 and the bus 27 of the data memory (DM) 25 are different from 41 of FIG. 4. It can be seen that it is executed in two bus cycles by accessing at the same time. In the case of 52, two bus cycles are executed in executing an OUT RO command such as 42 in FIG. In case of 53, only 6 bus cycles are required to execute the RLC WO Wl command as shown in FIG.

결과적으로, 본 발명의 PLC용 고속 명령 처리 시스템(20)의 명령어 처리는 종래의 고속 명령 처리 시스템(10)의 명령어 처리보다 반감된 시간에서 가능하다는 것을 알 수 있다.As a result, it can be seen that the instruction processing of the high speed command processing system 20 for PLC of the present invention is possible at half the time than the instruction processing of the conventional high speed command processing system 10.

이상의 설명에서와 같이 본 발명에 따른 PLC용 고속 명령 처리 시스템은 사용자 프로그램 메모리(24)와 데이터 메모리(25)의 버스를 구별하여 별도의 액세스가 가능하도록 구성되어 있기 때문에 데이터 메모리(25)에 데이터를 기입/독출하는 동시에 사용자 프로그램 메모리(24)를 엑세스할 수 있어 명령어 처리에 있어 고속화가 가능하고, CPU(21)의 타이밍에 의존하지 않고 고속 명령어 처리기(23) 자체에 사용자 프로그램의 포인터를 가지고 있으므로 CPU 기종에 따른 메모리 액세스 속도에 제한을 받지 않고 사용자 프로그램 메모리(24)와 데이터 메모리(25)의 최소응답시간까지 액세스 속도를 높일 수 있어 응답속도가 빠른 메모리를 사용할 경우 한층 더 처리속도를 증진시킬 수 있다. 뿐만 아니라, 고속 명령어 처리기(23)내에 자체의 마이크로 연산자(Micro OP Code)가 내장되어 있어 CPU(21)에서 명령어 처리 방식의 변경이나 명령어의 추가가 있는 경우에도 자체의 마이크로 연산자만을 수정하면되므로 시스템 운용이 한층 용이하도록 하는 장점을 갖는다.As described above, the high-speed command processing system for PLC according to the present invention is configured to enable separate access by distinguishing the buses of the user program memory 24 and the data memory 25 so that the data is stored in the data memory 25. The user program memory 24 can be accessed and the user program memory 24 can be accessed at the same time, thereby speeding up the instruction processing, and a pointer of the user program is sent to the high speed instruction processor 23 itself without depending on the timing of the CPU 21. As a result, the access speed can be increased up to the minimum response time of the user program memory 24 and the data memory 25 without being limited by the memory access speed according to the CPU model. Can be promoted. In addition, since the micro-operator (Micro OP Code) is built in the high-speed instruction processor 23, even if there is a change in the instruction processing method or addition of instructions in the CPU 21, only the micro-operator of the system needs to be modified. It has the advantage of making the operation easier.

Claims (1)

프로그래머블 로직 콘트롤러에 사용되는 고속 명령 처리 시스템에 있어서, 프로세서(CPU); 상기 CPU에 전기적으로 접속되며 사용자가 작성한 사용자 프로그램을 수행하고 처리하는 시스템 메모리; 상기 시스템 메모리에 전기적으로 접속되며 상기 사용자 프로그램에 포함된 명령어를 처리하는 고속 명령어 처리기; 상기 고속 명령어 처리기와 전기적으로 접속되며 상기 사용자 프로그램을 저장하는 사용자 프로그램 메모리; 및 상기 고속 명령어 처리기와 전기적으로 접속되며 공정의 입력 및 출력에 관여하는 입출력 데이터를 저장하는 데이터 메모리를 구비하고, 상기 사용자 프로그램 메모리와 상기 데이터 메모리는 각각 별개의 버스에 의해 상기 고속 명령어 처리기와 접속되며, 상기 고속 명령어 처리기는 상기 CPU와 비동기적으로 동작하여 상기 사용자 프로그램 메모리 및 상기 데이타 메모리를 최소응답속도까지 동시에 액세스할 수 있고, 상기 고속 명령어 처리기는, 상기 사용자 프로그램 메모리(24)로부터 독출된 상기 사용자 프로그램을 저장하는 Inst FIFO부(23a); 상기 Inst FIFO(23a)로부터 출력되는 상기 사용자 프로그램을 상기 명령어와 연산 대상으로 나누고, 상기 연산 대상으로부터 참조 또는 쓰고자하는 데이타 메모리(25)의 어드레스를 계산하는 데이터 경로부; 상기 사용자 프로그램 메모리(24)의 어드레스를 보관하는 IMPC부(23c); 상기 데이터 경로부로부터 입력한 상기 명령어를 이용하여 모든 데이타 경로 및 콘트롤 신호들을 만들어 내고, 마이크로 연산자를 자체적으로 저장하는 Micro Control부(23d); 입력한 상기 명령어 및 상기 데이타 경로부에 의해 상기 데이타 메모리(25)로부터 독출된 데이타를 상기 콘트롤 신호에 응답하여 논리 연산을 수행하는 ALU부(23e); 및 어드레스와 데이타를 동시에 사용하는 핀을 갖는 상기 CPU로부터의 어드레스 및 데이터를 래치하기 위한 Addr Latch부(23f)를 구비하고, 상기 Micor control부(23d)는 상기 마이크로 연산자를 이용하여 상기 모든 데이타 경로 및 상기 콘트롤 신호들을 만들 수 있는 것을 특징으로 하는 PLC용 고속 명령 처리 시스템.A high speed instruction processing system for a programmable logic controller, comprising: a processor (CPU); A system memory electrically connected to the CPU for executing and processing a user program written by a user; A high speed command processor electrically connected to the system memory and processing commands included in the user program; A user program memory electrically connected to the high speed command processor and storing the user program; And a data memory electrically connected to the high speed command processor and storing input / output data related to an input and an output of a process, wherein the user program memory and the data memory are respectively connected to the high speed command processor by a separate bus. The high speed command processor may operate asynchronously with the CPU to simultaneously access the user program memory and the data memory up to a minimum response speed, and the high speed command processor may read the user program memory 24 from the user program memory 24. An Inst FIFO unit 23a for storing the user program; A data path unit for dividing the user program output from the Inst FIFO 23a into the command and the calculation target, and calculating an address of the data memory 25 to be referred to or written from the calculation target; An IMPC unit 23c which stores an address of the user program memory 24; A micro control unit 23d for generating all data paths and control signals using the command inputted from the data path unit, and storing the micro operator by itself; An ALU unit 23e for performing a logical operation on the input data and the data read out from the data memory 25 by the data path unit in response to the control signal; And an Addr Latch section 23f for latching address and data from the CPU having a pin that simultaneously uses address and data, wherein the Micor control section 23d uses all the data paths using the micro operator. And high speed command processing system for producing said control signals.
KR1019940025982A 1994-10-11 1994-10-11 System for processing high-speed command for programmable logic controller KR100304607B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940025982A KR100304607B1 (en) 1994-10-11 1994-10-11 System for processing high-speed command for programmable logic controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940025982A KR100304607B1 (en) 1994-10-11 1994-10-11 System for processing high-speed command for programmable logic controller

Publications (2)

Publication Number Publication Date
KR960015206A KR960015206A (en) 1996-05-22
KR100304607B1 true KR100304607B1 (en) 2001-11-22

Family

ID=37529921

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940025982A KR100304607B1 (en) 1994-10-11 1994-10-11 System for processing high-speed command for programmable logic controller

Country Status (1)

Country Link
KR (1) KR100304607B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2824650A1 (en) * 2001-05-10 2002-11-15 Koninkl Philips Electronics Nv DATA PROCESSING SYSTEM AND METHOD FOR DISTRIBUTING ACCESS TO MEMORIES

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648068A (en) * 1983-01-28 1987-03-03 Siemens Aktiengesellschaft Memory-programmable controller
KR900006854A (en) * 1988-10-05 1990-05-09 아오이 죠이찌 Programmable Controller

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648068A (en) * 1983-01-28 1987-03-03 Siemens Aktiengesellschaft Memory-programmable controller
KR900006854A (en) * 1988-10-05 1990-05-09 아오이 죠이찌 Programmable Controller

Also Published As

Publication number Publication date
KR960015206A (en) 1996-05-22

Similar Documents

Publication Publication Date Title
US6212625B1 (en) General purpose dynamically programmable state engine for executing finite state machines
US5594917A (en) High speed programmable logic controller
US4005391A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
US20040193840A1 (en) Active memory command engine and method
EP0267613A2 (en) Micro processor capable of being connected with coprocessor
JPS6015708A (en) Stored program type controller
US5301338A (en) System including central processing unit
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor
KR100304607B1 (en) System for processing high-speed command for programmable logic controller
US5692163A (en) Process system which generates sets of output data from sets of predetermined input data with duplicate data
JPH0363092B2 (en)
KR940000980A (en) High Speed Ladder Instruction Processing Device for Programmable Logic Controller
EP0136699B1 (en) Programmable controller
JPS594049B2 (en) computer equipment
US5734900A (en) Information handling system including efficient power on initialization
JP2619425B2 (en) Sequence controller
US20010014938A1 (en) Microprocessor
JPS5821300B2 (en) Memory address information
JP2000029508A (en) Programmable controller
US5864691A (en) Central processing unit with a selector that bypasses circuits where processing is not required
KR0163726B1 (en) Multi-ram-break-condition set circuit using external memory
JPS61161509A (en) System and device for operating high speed sequence
KR20010011683A (en) Central Processing Unit
JPH0319570B2 (en)
JP2694758B2 (en) Bit field controller

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20120710

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140715

Year of fee payment: 14

EXPY Expiration of term