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

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

Info

Publication number
KR940002324B1
KR940002324B1 KR1019900005768A KR900005768A KR940002324B1 KR 940002324 B1 KR940002324 B1 KR 940002324B1 KR 1019900005768 A KR1019900005768 A KR 1019900005768A KR 900005768 A KR900005768 A KR 900005768A KR 940002324 B1 KR940002324 B1 KR 940002324B1
Authority
KR
South Korea
Prior art keywords
processing
board
program
processor
cpu
Prior art date
Application number
KR1019900005768A
Other languages
English (en)
Other versions
KR900016842A (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
Priority claimed from JP1104052A external-priority patent/JPH02281365A/ja
Priority claimed from JP1129707A external-priority patent/JPH02307151A/ja
Priority claimed from JP1275512A external-priority patent/JPH03136103A/ja
Priority claimed from JP1275513A external-priority patent/JPH03136105A/ja
Application filed by 요꾜가와덴기 가부시기가이샤, 야마나까 다까시 filed Critical 요꾜가와덴기 가부시기가이샤
Publication of KR900016842A publication Critical patent/KR900016842A/ko
Application granted granted Critical
Publication of KR940002324B1 publication Critical patent/KR940002324B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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/052Linking several PLC's
    • 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
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

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

내용 없음.

Description

프로그래머블 콘트롤러
제1도는 종래의 프로그래머블 콘트롤러를 도시한 블록도.
제2도는 본 발명에 따른 프로그래머블 콘트롤러의 제1실시예를 도시한 블록도.
제3도는 제2도에 도시한 장치의 동작을 설명하기 위한 프로그램 기억장치(3)의 내용을 도시한 다이어그램.
제4도는 본 발명의 프로그래머블 콘트롤러의 제2실시예를 도시한 블록도.
제5a 및 b도는 제4도에 도시한 장치의 동작을 도시한 다이어그램.
제6도는 제4도의 실시예의 구성의 일부를 변경한 장치를 도시한 블록도.
제7a 및 b도는 제6도에 도시한 장치의 동작을 도시한 다이어그램.
제8도는 본 발명의 프로그래머블 콘트롤러의 제3실시예를 도시한 블록도.
제9a 및 b도는 제8도에 도시한 제1 및 제2프로그램 기억영역(31),(32)의 내용을 도시한 다이어그램.
제10a 및 b도는 제8도의 실시예의 구성의 일부를 변경한 장치를 도시한 블록도.
제11도는 본 발명의 프로그래머블 콘트롤러의 프로세서 보드 및 I/O 보드의 배치를 도시한 다이어그램.
제12도는 본 발명의 프로그래머블 콘트롤러의 동작을 설명하기 위한 래더프로그램을 도시한 다이어그램.
제13도는 본 발명의 프로그래머블 콘트롤러의 프로세서 CPU(1) 및 BPU(2)의 동작을 설명하는데 도움을 주는 다이어그램.
제14도는 본 발명의 프로그래머블 콘트롤러를 사용하는 시스템을 도시한 도면.
제15도는 본 발명의 프로그래머블 콘트롤러의 기본 처리와 순서제어처리사이의 관계를 도시한 다이어그램.
제16도는 본 발명의 프로그래머블 콘트롤러에 관하여 호스트컴퓨터로부터 처리언어를 설정할 경우의 순서도.
제17도는 본 발명의 프로그래머블 콘트롤러의 표준 I/O 드라이버의 동작을 도시한 개념도.
제18도는 본 발명의 프로그래머블 콘트롤러의 표준 I/O 드라이버에 있어서 처리 정의 테이블을 작성하는 모드를 도시한 다이어그램.
제19도는 본 발명의 프로그래머블 콘트롤러의 표준 I/O 드라이버에 의하여 I/O 보드액세스 절차를 도시한 순서도.
제20도 및 제21도는 각각 본 발명의 프로그래머블 콘트롤러의 I/O 보드와 CPU 보드간의 데이터전송을 도시한 타임차트.
제22도는 본 발명의 프로그래머블 콘트롤러내에 내장된 비정상 기록모듈의 구조를 도시한 다이어그램.
제23도는 제22도에 도시한 비정상 기록모듈의 정보가 호스트컴퓨터의 CRT에 표시된 경우를 도시한 다이어그램.
제24도는 프로그래밍수단에 의해 출력된 각종 코멘트가 부가된 래더회로를 도시한 다이어그램.
제25도는 스텝번호를 상응하는 코멘트를 표시하는 기능과 본 발명의 프로그래밍 수단을 도시한 블록도.
제26도는 제25도에 관한 내부기능의 코멘트파일을 도시한 다이어그램.
제27도는 제25도에 관하여 내부기능회로/코멘트 대응테이블을 도시한 다이어그램.
제28도는 제25도의 기능에 기초한 프로그래밍 수단에 있어서의 CRT 화상표시의 전이를 도시한 다이어그램.
제29도는 본 발명의 프로그래머블 콘트롤러의 처리루틴을 도시한 차트.
제30도는 본 발명의 프로그래머블 콘트롤러에 있어서 래더회로프로그래밍시의 기능블록을 도시한 차트.
제31도는 래더회로의 작성을 도시한 다이어그램.
제32도는 래더회로의 신호이름의 어드레스에 대한 대응관계를 도시한 다이어그램.
제33도는 제32도의 래더회로의 신호명에 대한 상세어드레스의 배당을 도시한 다이어그램.
제34a 내지 c도는 각각, 블록당 작성된 래더프로그램을 도시한 다이어그램.
제35도는 일련의 순서제어프로그램이 소수개의 프로그래머블 콘트롤러에 의해 실행되는 경우를 도시한 다이어그램.
제36도는 제35도의 시스템을 제어하기 위한 기본프로그램의 일례를 도시한 다이어그램.
* 도면의 주요부분에 대한 부호의 설명
1 : 제1프로세서(CPU) 2 : 제2프로세서(BPU)
3 : 프로그램 기억장치(RAM 128 KB) 7 : 데이터 기억장치(RAM 64 KB)
8 : I/O 인터페이스(I/F) 10 : 통신버퍼(RAM 32 KB)
11 : 호스트 인터페이스 100~104 : CPU 보드
121 : 전력공급차단 검출회로 122 : 고온비정상 검출회로
123 : 소프트웨어 비정상검출회로 124 : 개입중단발생회로
125 : 정상처리 126 : 비정상 발생개입중단처리
127 : 보조기억부 b : 정보버스
bb : 호스트버스 C,C1,C2 : I/O 보드
CCT : 회로/코멘트 대응테이블 CF : 코멘트파일
ES : 실행권 절환처리부 F1,F2 : 어드레스 프레임
F3,F4 : 데이터프레임 F5 : 상태프레임
FD : 제어프레임 FRM*: 프레임신호
L : 제어선 M : 제어대상
SD : 표준 I/O 드라이버 STB*: 스트로빙신호
TBL : 처리 정의 테이블 T,TT : 타이머
본 발명은, 일반적으로 공장생산라인을 효율적으로 제어하기 위한 FA(공장자동화) 분야 또는 복합산업프로세스를 제어하기 위한 PA(프로세스 자동화)분야에 있어서 다양한 현장의 지능을 갖춘 기기로 정보를 입·출력하는, 순서제어 프로그램이 내장되어 있는 프로그래머블 콘트롤러에 관한 것이다.
본 발명은, 특히 1비트프로세서와 연합해서 순서제어프로그램 및 통상의 처리를 실행하는 절환방식의 개선에 관한 것이다. 이와 동시에, 사용자에 의해 임의로 설정된 기본프로세스, 즉, 기본처리에 대한 기능, 현장기기로의 신호의 송수신을행하기 위한 I/O 카드그룹에 대한 제어기능 및 내부에 설정된 순서제어프로그램의 프로그래밍 실행가능성의 개선에 관한 것이다.
일반적으로 프로그래머블 콘트롤러내의 CPU(중앙처리장치) 모드에는 제1프로세서로 역할하는 일반적인 범용프로세서(예를들면, 16비트 마이크로프로세서 68000등) 및 제2프로세서로 역할하는 수치 또는 논리의 산술연산만을 실행하기 위한 전용프로세서(예를들면, 68000계열 등)가 설비되어 있다. 이들 프로세서는 프로그램 기억장치내에 기억된 순서제어프로그램에 따라 절환되면서 동작한다.
제1도는 제1프로세서와 제2프로세서가 1개의 프로그램 기억장치를 번갈아 판독해서 동작하는 모듈의 일례를 도시한 것이다.
제1도에 도시된 모듈에서는, 일반적인 범용프로세서(예를들면, 16비트 마이크로프로세서 68000)로서 간주되는 제1프로세서인 CPU(1) 및 수치나 논리의 연산을 실행하기 위한 전용프로세서(예를들면 68000계열)로서 규정된 제2프로세서인 BPU(2)가 정보버스(b)를 통해 프로그램 기억장치(3)에 접속되어 있다. 단, 본 명세서에 있어서는 제2프로세서인 BPU(2)를 1비트 프로세서로 칭할 경우도 있다.
프로그램 기억장치(3)에는 CPU(1)용의 프로그램 명령으로서 기계어 명령이 격납되어 있고, CPU(1)는, 이 기계어 명령을 순차 판독해서 처리를 실행하고, 독출명령어 BPU(2)에 의해 실행되어야 할 경우에는, BPU(2)에 동작 및 데이터준비에 대한 지시를 행한다. 그후, 프로그램 기억장치(3)로부터 판독된 명령을 순차 BPU(2)에 공급하여 제어실행권을 부여한다.
이러한 종래의 프로그래머블 콘트롤러에서는, CPU(1)와 BPU(2)를 조합시켜 사용하므로, 프로그램 기억장치내에 기억된 기계어 명령을 미리 시스템의 설계단계에서 CPU(1) 및 BPU(2)로 각각 배분해야만 한다고 하는 설계상의 번잡성이 있었다.
한편, 최근, CPU(1)고유의 기계어 명령과는 독립적으로 설계된 해석형 명령(해석형 프로그램명령)이 자주 이용되고, 이 해석형 명령은 프로그램 기억장치(3)에 격납되는 경향이 있다.
이와 같은 해석형 명령을 사용하는 장치에 있어서는, CPU(1)에 의해 실행되는 명령외에 BPU(2)에 의해 수행되는 명령을 자유롭게 설정하는 것이 가능하며, CPU(1)를 설계하는 단계에서 CPU(1) 및 BPU(2)로 각각 명령을 배분할 필요가 없다. 또한, CPU(1) 또는 BPU(2)는 프로그램 기억장치(3)로부터 판독된 명령의 내용에 따라 지정되므로, 실용상의 효율을 증가시키고, 또, BPU(2)에 의해 수행될 명령을 확장하는 것이 가능하다.
그러나, 기계어 명령 및 해석형 명령을 사용하는 경우, BPU(2)가 동작할 때, CPU(1)가 순차 프로그램 기억장치(3)로부터 프로그램 명령을 판독하고 이들 명령을 BPU(2)에 공급하므로, 프로그램 전송에 쓸데없는 시간이 소비된다고 하는 문제가 있었다.
또, 해석형 명령을 사용할 경우에는, CPU(1)가 독출된 명령을 해석해야만 하며, 실행용의 프로세서를 결정해야만 한다. 특히 CPU(1)와 BPU(2)가 빈번히 절환되는 장치에서는 과도한 시간이 발생하고 있었다.
본 발명이 주목적은 전술한 문제를 해소하여, 프로세서인 CPU와 BPU와의 절환조작을 용이하게 하고, 또 전체처리속도의 고속화가 가능한 프로그래밍 콘트롤러를 제공하는 것이다.
본 발명의 일양상에 의하면, CPU 보드의 내부배치뿐만 아니라 범용연산처리, 정보처리, 제어동작, 호스트측과 접속된 컴퓨터 시스템과의 통신과 관련이 있는 기본프로그램 처리 및 순서제어프로그램처리의 효율을 개선시킬 수 있는 프로그래머블 콘트롤러가 제공된다.
본 발명의 다른 양상에 의하면, CPU 접속되어 현장기기로의 신호의 송수신을 행하는 I/O 카드그룹으로 데이터를 전송하는 기능을 향상시켜 고속으로 데이터를 확실하게 전송하는 것이 가능한 프로그래머블 콘트롤러가 제공된다.
본 발명의 또 다른 양상에 의하면, 순서제어프로그램의 작성을 단순화하고, 프로그래머블 콘트롤러 자체의 동작비정상 및 순서제어프로그램의 진행에 따른 비정상을 검출할 수 있는 프로그래머블 콘트롤러가 제공된다.
이하, 본 발명의 바람직한 실시예에 대해 첨부도면을 참조하면서 상세히 설명한다.
먼저, 제2도는 본 발명에 따른 프로그래머블 콘트롤러의 제1실시예의 블록도이다.
이 실시예의 특징적인 구성은, 정보버스(b)와는 별도로 제어선(L)을 설치해서 프로세서인 CPU(1)와 BPU(2)간에 신호를 송수신할 수 있도록 한 점에 있다.
상기 제어선을 이용해서 CPU(1) 및 BPU(2)는 서로 프로그램 기억장치(3)의 독출어드레스 및 기동신호를 통지한다. 단, 프로그램 기억장치(3)에는 전술한 해석형 명령뿐만 아니라 BPU(2)용의 순서 기본명령이 격납된다. 상술하면, 순서제어프로그램은 1비트 연산동작용으로 사용되는 동시에 기계어에 의해 작성된 순서 기본명령 및 수치와 데이터처리간의 비교용으로 사용되는 동시에 해석형식으로 작성된 순서응용명령으로 구성되며, 이 순서제어프로그램은 순서에 따라 프로그램 기억장치(3)에 격납된다.
이제부터는 프로그램 기억장치(3)의 내부구조를 나타내는 제3도의 블록도와 관련하여 그러한 장치의동작에 대해 중점을 두어 설명한다.
제3도에 있어서는, 응용명령 1 내지 4는 CPU(1)용의 명령(해석형 명령)으로 간주되는 반면에 기본명령 1 내지 4는 BPU(2)용의 명령(기계어)으로서 정의할 수 있다.
CPU(1)는 화살표 A로 표시된 순서에 따라 프로그램 기억장치(3)로부터 순차응용명령 1 및 2를 판독해석, 해석, 실행한다.
다음에, CPU(1)는 어드레스(X1)의 기본명령 1을 판독하고(화살표 B), 해석한다. 만약, 이 명령어 BPU(2)용의 명령으로서 판단되면, CPU(1)는 프로그램 기억장치(3)에 있어서의 기본명령 1의 어드레스(X1)를 제어선(L)을 거쳐 BPU(2)로 전송함과 동시에 BPU(2)를 기동한다.
그 결과, BPU(2)는 정보버스(b)의 사용권을 취득하며, 그후 CPU(1)로부터 수취한 프로그램 기억장치(3)의 어드레스(X1)에 따라 화살표 C로 표시한 바와같이 기본명령 1 내지 4를 실행한다.
이때, BPU(2)는, 종래 장치의 경우에 따라, CPU(1)를 거쳐 기본명령을 수취하는 것이 아니라, 프로그램 기억장치(3)로부터 직접 기본명령 1 내지 4를 자체에 의해 판독한다.
또, 기본명령은, BPU(2) 고유의 명령이므로, 실행시, BPU(2)는 해석동작을 행하지 않는다.
또한, BPU(2)가 어드레스(X2)의 응용명령 3을 판독하여, 이 명령이 CPU(1)에 의해 수행되어야만 한다고 판단하면(화살표 D), 이번에는 BPU(2)가 프로그램 기억장치(3)에 있어서의 응용명령 1의 어드레스(X2)를 제어선(L)를 거쳐 CPU(1)로 전송함으로써, CPU(1)를 기동한다.
이러한 공정에 의해, CPU(1)는 정보버스(b)의 사용권을 취득한 후 프로그램 기억장치(3)로부터 어드레스(X2)에 관하여 판독처리를 수행하여, 동작을 실행한다(화살표 E).
이와 같이, CPU(1) 및 BPU(2)는 제어선(L)을 거쳐 프로그램 기억장치(3)의 어드레스와 기동신호를 송수신하여 번갈아 동작하고, 특히, BPU(2)는 CPU(1)를 거치지 않고 프로그램 기억장치(3)로부터 직접 명령을 판독하므로, 이에 상당하는 만큼의 고속처리가 가능하게 된다.
전술한 바와같이, BPU(2)는 기본명령의 실행시에 해석동작을 필요로 하지않으므로, 이 기간은 생략할 수 있다.
제4도는 본 발명의 프로그래머블 콘트롤러의 제2실시예이다.
본 실시예에서는, CPU(1)는 제1정보버스(b1)를 거쳐 BPU(2)에 접속되고, BPU(2)는 제2정보버스(b2)를 거쳐 프로그램 기억장치(3)에 접속되어 있다. BPU(2)에는 프로그램 기억장치(3)쪽의 정보버스(b2)에 접속된 프로그램 명령수취회로(21), CPU(1)쪽의 정보버스(b1)에 접속된 프로그램 명령독출회로(22)및 CPU(1)에 대해서 "실행금지"를 나타내는 의사명령을 유지하는 의사명령발생회로(23)가 내장되어 있다. 또 프로그램 명령독출회로(22)는 프로그램 명령수취회로(21) 또는 의사명령발생회로(23)를 선택하는 절환회로(24)를 포함한다.
이 실시예에 있어서도, 제2도의 실시예와 마찬가지로, 프로그램 기억장치(3)는 해석형 명령 및 BPU(2)용의 기본명령을 기억한다.
이와 같이 구성된 본 발명의 장치의 동작을, 제5a 및 b도를 참조하여 설명한다.
제5a도는 CPU(1)가 명령을 실행하는 경우를 도시한 것이다.
BPU(2)는 어드레스(Y1)에서 판독된 명령 1이 CPU(1)용인 것으로 판단하고 BPU(2)내에서 절환회로(24)를 프로그램 명령수취회로(21)쪽으로 절환한다. 그래서, 이 독출명령 1은 프로그램 명령독출회로(22)로부터 BPU(2)를 거쳐 CPU(1)로 공급되어 이번에는 CPU(1)가 동작을 개시한다.
단, CPU(1)가 동작중인 경우에도, 프로그램 기억장치(3)에 관한 독출어드레스는 BPU(2)로부터 발생된다.
제5b도는 BPU(2)가 명령을 실행한 경우를 도시한 것이다.
BPU(2)는, 어드레스(Y2)에서 판독된 명령 2를 자체에서 처리하여야 할 명령인 것으로 판단하고, 절환회로(24)를 이용해서 의사명령회로(23)를 프로그램 명령독출회로(22)에 접속한다. 이것에 의해 BPU(2)는 그 자체에서 발생된 독출어드레스에 따라 프로그램 기억장치(3)로부터 명령을 판독한 후 그 명령을 실행하고, 반면에 CPU(1)는 BPU(2)로부터 부여되는 "실행금지"를 나타내는 의사명령 N에 따라 아무것도 실행하지 않는다.
이와 같이, 프로그램 기억장치(3)로부터 판독된 명령이 확실하게 CPU(1) 또는 BPU(2)로 부여됨으로써, 쓸데없이 시간을 낭비함이 없이 CPU(1)와 BPU(2)와의 절환이 원활하게 수행된다.
제4도에 도시한 예에서는, BPU(2)가 CPU(1)와 프로그램 기억장치(3)사이의 중간에 설치되어 있으나, CPU(1)내에 프로그램 명령수취회로(21), 프로그램 명령독출회로(22), 의사명령발생회로(23) 및 절환회로(24)에 상당하는 회로요소를 설치하여, BPU(2)를 그 중간에 설치시키도록 해도 마찬가지이다.
이 예에서는, 중간부에 설치한 프로세서가 프로그램 기억장치(3)에 대한 어드레스를 발생하는 역할을 하므로, 명령을 실행하는 프로세서가 절환된 후에도 프로그램의 진행 상황을 중간부의 프로세서가 항상 파악하고 있기 때문에, 프로그램 기억장치(3)에 대한 어드레스를 송수신하는 시간을 생략하는 것이 가능하다.
한편, 제6도는 제4도의 실시예에 있어서 CPU(1)쪽에서 발생된 어드레스를 프로그램 기억장치(3)로 보낼 수 있도록 구성된 장치를 도시한 것이다.
이 예에서는, BPU(2)에는 정보버스(b1)쪽으로 CPU(1)에 의해 발생된 어드레스를 수취하는 어드레스 판독회로(25), 정보버스(b2)로 프로그램 기억장치(3)의 독출어드레스를 부여하는 어드레스 송출회로(26) 및 절환회로(27)가 내장되어 있다. 또, 절환회로(27)는 어드레스 송출회로(26)를, 전용프로세서, 즉 BPU(2)의 내부에 설치된 어드레스 판독회로(25)나 어드레스 발생회로(28)에 접속하는 역할을 한다.
상기 실시예의 동작을 제7a도 및 b도와 관련하여 이하에 설명한다.
제7a도는 CPU(1)가 명령을 실행하는 경우를 나타낸다. BPU(2)내에 내장된 절환회로(24)는 프로그램 명령수취회로(21)에 접속되는 반면에, 절환회로(27)는 어드레스 판독회로(25)에 접속된다. 그래서, CPU(1)에서 발생된 어드레스(21)는 BPU(2)를 거쳐 프로그램 기억장치(3)로 송출되고, 이에 대응하는 명령 1이 BPU(2)를 거쳐 CPU(1)로 부여된다.
제7b도는 BPU(2)가 명령을 실행하는 경우를 나타낸다. BPU(2)내에 내장된 절환회로(24)는 의사명령 발생회로(23)에 접속되는 반면에, 절환회로(27)는 어드레스 발생회로(28)에 접속된다. 그래서, BPU(2)는 내부에서 발생된 어드레스(Y3)에 의해 명령 2를 판독해서 실행하는 반면, CPU(1)는 BPU(2)로부터 의사명령 N을 판독한 후 아무것도 실행하지 않는다.
제6도에 예시된 장치는, CPU(1)를 프로그램 기억장치(3)의 임의의 위치로 접근시킬 수 있고, 또한 점프명령등을 실행할 경우에 유리하다.
이와 같이 해서, 제4도 또는 제6도에 도시한 실시예에 있어서도, CPU(1) 및 BPU(2)는 프로그램 기억장치(3)로부터 판독된 명령에 따라 번갈아 동작하고, 특히 BPU(2)는 프로그램 기억장치(3)로부터 직접 명령을 판독하여, 이에 상당하는 만큼 고속처리를 실행할 수 있다.
또, 기본명령은 BPU(2) 고유의 명령으로 정의될 수 있기 때문에, BPU(2)에 의한 실행시에 해석할 필요가 없고, 따라서 이 기간은 생략이 가능하다.
제8도는 본 발명의 프로그래머블 콘트롤러의 제3실시예이다.
이 실시예에서, CPU(1)는 제1정보버스(b1)를 거쳐 응용명령만 격납하는 제1프로그램 기억영역(31)에 접속되어 있고, BPU(2)는 제2정보버스(b2)를 거쳐 기본명령만 격납하는 제2프로그램 기억영역(32)에 접속되어 있다. 또, 제1출력포트(41)는 제1정보버스(b1)에, 제2출력포트(42)는 제2정보버스(b2)에 접속되어 있다. 이들 출력포트(41) 및 (42)의 출력은 신호합성부(43)로 부여되고, 신호합성부(43)는 CPU(1) 및 BPU(2)에 동작개시 또는 동작정지를 지시한다.
제9a도 및 b도는 프로그램 기억영역(31), (32)의 내용을 도시한 것이다.
제1프로그램 기억영역(31)에는 응용명령 1~5와 BPU(2)에 동작개시를 지시하는 응용명령 OUT가 격납되고, 반면에 제2프로그램 기억영역(23)에는 기본명령 1~4와 CPU(1)에 동작개시를 지시하는 기본명령 OUT가 격납된다.
이와 같은 실시예의 동작에 중점을 두어 이하에 설명한다.
우선, CPU(1)가 동작하고 있는 것으로 가정한다.
이때, 신호합성부(43)는 CPU(1)에 동작지시를 행하고, BPU(2)에는 동작정지를 지시하고 있다. 그 결과, CPU(1)는 순차 제1프로그램 기억장치(31)로부터 응용명령 1, 2를 판독한 후 이들 명령을 실행한다. 이어서, CPU(1)는 BPU(2)에 동작을 지시하는 응용명령 OUT를 판독하여 이 명령을 제1출력포트(41)로 송출한다.
신호합성부(43)는 제1출력포트(41)로부터 판독처리를 실행하고 응용명령 OUT를 인식하며, 이때 CPU(1)는 동작정지지시를 받고, 반면에 BPU(2)로는 동작개시지시를 부여한다.
그 결과, 이번에는 BPU(2)가 동작을 지시하고, 제2프로그램 기억영역(32)으로부터 기본명령을 판독한 후 실행한다. 기본명령 2를 실행하고, 다음에 기본명령 OUT를 독출하면, 이 기본명령 OUT는 제2출력포트(42)로 송출된다.
신호합성부(43)는 제2출력포트(42)로부터 판독처리를 실행하고 기본명령 OUT를 인식한 후, BPU(2)에 동작정지지시를 보내고, CPU(1)로는 동작개시지시를 보낸다.
그 결과, CPU(1)는 재차 동작을 개시한다.
이와 같이, CPU(1)와 BPU(2)는 신호합성부(43)에 의해 원활하게 절환된다.
제10a도 및 b도는 제7도의 실시예와 거의 마찬가지이며, 여기에서는 출력포트(41), (42) 및 신호합성부(43)가 모두 1개의 정보버스(b)에 접속되어 있다.
이 예에 있어서, 프로그램 기억장치(3)의 구조는 제10b도에 도시한 바와 같이, 응용명령만을 격납하는 영역(A1)과 기본명령만을 격납하는 영역(A2)이 미리 설정되어 있다.
이 실시예의 동작은 제8도에 도시한 장치와 완전히 동일하다.
이상과 같이 해서, 제8도 또는 제10도에 도시한 실시예에 있어서도, 프로세서 CPU(1) 및 BPU(2)는 프로그램 기억영역(31), (32) 또는 프로그램 기억장치내의 영역(A1), (A2)으로부터 판독된 명령에 따라서 번갈아 동작한다. 특히, BPU(2)는 직접 전용명령, 즉 기본명령을 판독하고, 이에 상당하는 만큼 고속처리가 가능해진다.
기본명령은 BPU(2) 고유의 명령으로서 분류되기 때문에, BPU(2)에 의한 실행시에 해석동작을 필요로 하지 않으며, 그로 인하여 이 기간은 생략할 수 있다.
이상 설명한 본 발명에 의하면, 제11도는 각 회로소자를 이용해서 프로그래머블 콘트롤러를 실제로 구성한 예를 도시한 것이다.
제11도에서는, CPU(1), BPU(2) 및 프로그램 기억장치(3)가 CPU 보드(100)에 있어서 정보버스(b)에 접속되어 있다. 상술하면, CPU(1)는 예를들면 MC 68000 등의 마이크로프로세서이며 전체로서 CPU 보드(100)의 제어를 행한다. 이 CPU(1)는 개재해서 병렬로 접속되어 있다. CPU게이트 배열(5)은 타이밍신호의 출력제어용의 블록이므로, CPU(1)가 고효율로 동작을 실행하는 것을 가능하게 한다.
BPU(2)는, 1비트 처리명령으로 간주되는 순서기본명령을 고속에서 처리하기 위한 게이트배열로 구성되어 있으며, 명령버스(도시않함)를 거쳐 래더프로그램 등과 같은 순서제어프로그램을 기억하는 프로그램 기억장치(RAM 128 KB)(3)와 직접 접속되어 있다.
단, 정보버스(b)는 어드레스버스, 데이터버스 및 제어버스를 포함하고 있다.
ROM 256 KB(6)에는 전체 보드를 제어하기 위하여 CPU(1)에 의해 실행되어야 할 다양한 명령이 격납되어 있고, 데이터 기억장치(RAM 64 KB)(7)는 후에 언급될 기본 프로그램이 또한 격납되어 있는 CPU(1)의 동작영역이다.
I/O 인터페이스(8)는 I/O 버스(bb)를 개재해서 I/O 보드(C1) 및 (C12)와 접속되어 있다. 동 도면에 있어서는 단지 두개의 I/O 보드만이 접속되어 있으나, 이 I/O 보드의 수는 시스템 구조에 따라 증가시킬 수 있다.
정보버스(b)에는 타이머기능을 가지는 실시간 클록발생기(9), 통신용으로 사용되는 통신버퍼(RAM 32 KB)(10) 및 이 통신버퍼(10)와 접속된 동시에 호스트버스(B)에 대한 인터페이스로 역할하는 호스트 인터페이스(11)가 접속되어 있다. 또한, 프로그래밍 수단과 통신하는 RS 232 C 포트(12)도 접속되어 있다.
I/O 버스(bb)에는 2종류의 I/O 보드, 즉, 마이크로 프로세서를 내장하고 있는 범용레지스터/인터페이스형 I/O 보드(C1) 및 명령/인터페이스형 I/O 보드(C2)에 접속되어 있고, 이들 I/O 보드는 호스트 프로그래머블 콘트롤러로부터 명령을 송수신해서 통신을 실행한다.
마이크로 프로세서를 내장하고 있는 레지스터/인터페이스형 I/O 보드(C1)는 주로 버스(bb)에 대한 인터페이스(C11) 및 외부접촉에 대한 인터페이스(C12)로 구성되고, I/O 보드(C2)는 버스(bb)에 대한 인터페이스(C21), 마이크로컴퓨터(C22)(예를들면, 8비트 CPU), 데이터 기억장치(C23)(예를들면, RAM 8 KB) 및 외부에 대한 인터페이스(C24)로 구성된다.
CPU 보드(100)의 특성을 이하에 설명한다.
이 CPU 보드의 구조면에서의 특정은 BPU(2)가 정보버스(b)를 통하지 않고 명령버스(도시않함)만을 통하여 프로그램 기억장치(3)로 직접 접근을 실행하는 점이다. 또, 이하에 CPU 보드(100)의 기능에 대해서 제12도 및 제13도를 참조하여 설명한다.
제12도는 순서제어프로그램의 예로서 래더프로그램을 도시한 것이고, 제13도는 래더프로그램에 상당하는 일련의 프로그램 명령을 도시한 것이다.
순서제어의 개시시, CPU(1)는 BPU(2)를 작동시켜 프로그램 기억장치(3)로부터 일련의 프로그램을 판독한 후, 순서기본명령으로서 정의된 로드명령 "LD"로부터 처리를 시작한다.
이어서, BPU(2)는 AND명령, OR명령, OUT명령 및 LD명령을 실행한다.
만약 독출된 프로그램 명령이 CPU(1)에 의해 수행되어야 할 응용명령 1에 해당하면, CPU(1)는 BPU(2)로부터 어드레스버스 및 데이터버스의 점유권을 포함한 제어실행권을 인계받은 후, 응용명령 1을 실행한다. 응용명령 1의 처리완료시, CPU(1)는 BPU(2)에 그의 완료를 통지하고, BPU(2)는 다음 명령을 판독한다.
만약 다음 응용명령 2가 CPU(1)에 의해 실행되어야만 한다면, BPU(2)는 다시 한번 CPU(1)에 실행권을 인계한다. BPU(2)가 그 다음에 판독하는 프로그램 명령은 로드명령 "LD"이므로 BPU(2)는 그 자체에서 이 명령을 실행한다.
전술한 바와 같이, 순서기본명령을 실행하는 BPU(2)는 항상 일련의 프로그램 명령을 판독하고, 이때 독출명령이 CPU(1)에 의해 수행되어야 할 순서응용명령으로서 분류될 경우에는 제어실행권을 CPU(1)에 인계하며, 이 경우, 많은 순서기본명령이 일련의 프로그램 명령내에 존재하고, BPU(2)에 의한 처리속도도 증가된다. CPU(1)는, 명령을 실행한 후에, 단지 BPU(2)에 종료통지를 돌려준다.
BPU(2)에 의해 판독된 프로그램 명령이 시스템내에 정의되어 있지 않은 가짜 명령인 경우에는, BPU(2)는 프리세트되어, 이 가짜 명령의 형태에 해당하는 의사 명령을 CPU(1)에 공급한다. 이 의사명령은, CPU(1)가 살제로 가짜 명령을 실행하도록 함으로써 시스템상에 악영향을 주지 않도록 할 목적으로 설정되는 것이다.
CPU(1)가 이와 같이 해서 순서제어처리의 실행을 개시할 경우, BPU(2)는 프로그램 기억장치(3)로부터 프로그램 명령을 판독하여 명령을 실행시키기 시작한다. 그후, BPU(2)는, 프로그램 기억장치(3)로부터 직접 프로그램 명령을 판독하므로, CPU(1)가 프로그램 명령을 하나씩 판독하여, 제어실행권을 설정할 필요가 없다.
제14도는 CPU 보드 및 복수개의 I/O 보드로 이루어진 프로그래머블 콘트롤러가 공장자동화의 분야에 이용되는 예를 도시한 것이다.
제14도에 도시한 시스템에 있어서, 프로그래머블 콘트롤러(U1)는 기계부품가공시스템(S1)을 제어하고, 반면에 프로그래머블 콘트롤러(U2)는 기계부품조립시스템(S2)으로 신호를 출력함으로써 제어를 수행한다. 프로그래머블 콘트롤러(U1), (U2)는 버스(B)를 통하여 프린터(P)를 구비한 탁상용 컴퓨터(DTC)와 통신하여, 작동자에게 시스템의 상태를 통지한다. 단, 탁상용 컴퓨터(DTC)는 경우에 따라서 통신선(A)을 통하여 중간크기 또는 대형 크기의 호스트컴퓨터(MC)에 의하여 조종된다.
상술하면, 프로그래머블 콘트롤러(U1), (U2)는 시스템(S1), (S2)에 관하여 콘택트 I/O 처리, 모터구동/정지처리, 부품위치결정처리 및 램프점등/소등처리와 같은 순서제어동작을 실행한다.
이하, 상기 프로그래머블 콘트롤러(U1)에 중점을 두어 설명한다.
프로그래머블 콘트롤러(U1)는 제11도에 도시한 CPU 보드(100) 및 유닛간 슬롯에 끼워맞춤된 I/O 보드(C1), (C2)로 구성되고, 버스(I/O버스(bb))와 접속되어 있다. 부가되는 구성성분으로서는, 전력을 공급하기 위한 전원보드(PS) 및 다른 프로그래머블 콘트롤러(U2)와 통신하는 확장보드(EX)가 있다.
그러한 구조에 기초하여, 기계부품가공시스템(S1)에 적응하는 순서제어프로그램은 플그래머블 콘트롤러(U1)의 CPU 보드(100)내에 내장되어 있고, 그로 인하여 I/O 보드로부터 부여된 정보에 의거하여 순서연산동작이 실행된다. 또, 제어신호가 I/O 보드를 통하여 기계부품가공시스템(S1)으로 송출됨으로써, 소정의 순서동작을 실행한다.
전술한 순서제어 프로그램은 프로그램 작성수단으로 송출되고, 즉, 본 실시예에 있어서는, 래더프로그램이 탁상용 컴퓨터(DTC)의 CRT 화면상의 편집형식으로 CPU 보드(100)로 송출된다.
프로그래머블 콘트롤러(U2)는 프로그래머블 콘트롤러(U1)와 구조 및 동작이 상당히 동일하다.
CPU 보드(100)에 있어서의 프로그램처리 및 I/O 보드쪽의 프로그램처리에 대해 이하에 상술한다.
CPU(1)는 순서제어의 실행과 동시에, 다중데이터의 호스트컴퓨터와의 통신, 범용 연산동작, 정보처리 및 제어동작과 같은 상당히 일반적인 동작을 실행한다. 기본 언어(베이직언어)를 사용하여 작성된 기본 프로그램이 설정된다. 이 기본 프로그램의 실행과 순서제어프로그램의 실행간의 상관관계에 대하여 이하 설명한다.
제15도는 순서제어처리(SQ) 및 기본처리(BAS)의 병렬동작을 나타내는 개념도이다.
순서제어처리(SQ)는 제12도 및 제13도에 도시한 일련의 프로그램 명령을 실행하기 위한 것이고, 반면에 기본처리(BAS)는 전술한 바와 같은 사용자에 의해 임의로 작성된 데이터독출프로그램 또는 통신프로그램과 같은 기본프로그램과 관련이 있다. 실행권 절환처리부(ES), 타이머(T) 및 타스크스케쥴러(TS)는 CPU 보드(100)내부에 소프트웨어 방식으로 설정되는 기능이 있다. 타스크스케쥴러(TS)는 기본 프로그램에 있어서의 몇몇 처리에 관한 실행의 우선권을 결정하는 기능이 있다. 그러나, 이 기능은 본 발명의 동작과 직접 관련되는 것은 아니다.
단, 일반적으로 수백 또는 수천개의 순서제어프로그램 열이 제공되고, 1사이클의 실행시간이 제어될 시스템의 구조에 따라 상당히 다른 수십 ㎳ 또는 수백 ㎳가 소요된다는 점에 유의해야 한다.
이제, 타이머(T)에 10㎳가 프리세트되는 시스템이 준비되어 있는 것으로 가정한다.
순서제어처리(SQ)의 제1스텝은 로드명령 "LD"를 실행하는 것이다. 이어서 AND명령(AND), OR명령(OR) 및 출력명령(OUT)을 수행하며, 이때 10㎳가 소요된다. 그후, 개입중단신호로서 타임업 신호가 타이머(T)로부터 실행권 절환처리부(ES)로 송출되는 것으로 한다. CPU(1)는 개입중단신호를 입력하며, 이때 제어실행권은 BPU(2)에 여전히 유지되어 있다. 그 결과, CPU(1)는 이 타임업 개입중단신호를 수신할 수 없게 된다.
상기 순서제어처리는 더욱 진행하고, BPU(2)는 로드명령 "LD"를 실행한다.
다음에, CPU(1)는 제어실행권이 CPU(1)에 양도되고, 응용명령 1의 처리가 시작된 후에 비로소 10㎳ 타임업 개입중단신호를 수신한다. 그 결과, 실행권 절환처리부(ES)는 순서제어처리(SQ)로부터 기본처리(BAS)로 CPU(1)에 의해 실행되어야 할 처리를 절환하고, 그 결과 CPU(1)는 타스크스쥴러(TS)에 따라 기본처리(BAS)를 개시한다.
이때, 순서제어처리(SQ)의 실행은 정지된 상태를 유지한다.
그후, 타이머(T)는 타임업 상태로 되고, 10㎳ 개입중단신호가 발생된다. 이때, CPU(1)내의 실행권 절환처리부(ES)는 일시적으로 현재의 기본적인 진행상황을 데이터기억장치(7)로 보내고, 정지중인 순서제어처리(SQ)의 동작은 다시 시작된다.
순서제어처리(SQ)가 완료된 경우, 순서제어처리(SQ)는 10㎳당의 타임업 신호에 관계없이 그 완료통보를 실행권 절환처리부(ES)에 행하고, CPU(1)는 기본처리(BAS)를 시작한다.
전술한 바와 같이, 10㎳당의 기본처리(BAS) 및 순서제어처리(SQ)를 절환함으로써 동작이 실행되고, 그 결과, 순서제어처리(SQ) 및 기본처리(BAS)는 동시에 수행되었던 것처럼 외부에 보인다. 그러므로 다중처리의 실행이 가능하게 된다.
단, 타이머(T)에 설정되는 시간은 10㎳로 제한되지 않고 시스템의 구조에 따라 임의로 설정해도 된다.
반대로, 몇몇 시스템구조에서는 순서제어처리 및 기본처리의 병령동작이 불필요하다. 또, 순서제어처리 또는 기본처리는 시스템의 변형에 따라 불필요할 경우도 있다. 그 경우, CPU 보드(100)는 미리 제16도의 순서도에 따른 프로그램을 내장하고 있으며, 그 대응책은 다음과 같다.
전원이 ON상태가 된 경우 자기(自己)진단 동작을 수행한 후에, 호스트측으로부터 처리에 사용가능한 언어가 지정되었는지의 여부를 판단한다. 만약 사용언어가 순서언어(시퀀스 언어)라면, 데이터기억장치(7)에 순서언어를 처리하는데 필요한 시스템 테이블을 작성하고, 순서언어처리를 개시한다. 만약 기본언어(베이직 언어)가 지정되면 데이터기억장치(7)에 기본언어를 처리하는데 필요한 시스템 테이블을 작성하여, 기본언어처리를 개시한다. 또한 만약 순서언어와 기본언어가 모두 지정되면, 데이터기억장치(7)에 순서언어와 기본언어 양쪽을 처리하는데 필요한 시스템 테이블을 작성하고, 순서 및 기본언어처리를 개시한다.
이와 같이 해서, 프로그램을 설정하여 지정된 언어에 상당하는 시스템 테이블을 작성함으로써 호스트컴퓨터, 즉 탁상용 컴퓨터로부터 처리언어의 지정을 용이하게 한다.
다음에, CPU 보드(100)내에 세트되어 있고, 각종 유형의 I/O 보드에 대응할 수 있는 표준 I/O 드라이버에 대하여 중점을 두어 설명한다.
CPU 보드(100)에 있어서의 동작시스템(OS)은 CPU 보드(100)내에 설정된 기본프로그램 등의 사용자 프로그램(UP)으로부터 I/O 보드용의 액세스 요구(a1)를 수신하거나, 또는 I/O 보드로부터 CPU 보드(100)로의 개입중단 요구(a2)를 수신한다. 사용자 프로그램(UP)으로부터의 액세스 요구(a1)는 I/O 요구 수신 처리 ①의 개시를 촉구하고, 반면에 CPU 보드(100)의 개입중단 요구(a2)는 개입중단 요구 수신처리 ②의 개시를 촉구한다.
본 발명에 따른 표준 I/O 드라이버(SD)는 시스템의 기동시 각각의 슬롯에 끼워맞춤된 개별적인 I/O 보드에 관하여 처리정의 테이블(TBL 1),(TBL 2),…, (TBL n)을 형성한다. I/O 요구수신처리 ① 또는 개입중단 요구수신처리 ②가 발생될 경우, 액세스하기 위한 준비로서 처리정의 테이블(TBL)을 참조하기 시작한다.
처리의 개시시, 액세스 되어야 할 I/O 보드가 레지스터/인터페이스형으로 분류되는지 명령/인터페이스형으로 분류되는지의 여부를 판단한 후, 그의 주(主)처리를 실행한다. 레지스터/인터페이스형의 주처리 및 명령/인터페이스형의 주처리의 내용은 종래의 처리의 내용과 동일하다. 또 레지스터/인터페이스형 I/O 보드로서는 제11도에 도시한 통상의 I/O 보드(C)를 예로 들 수 있다. 명령/인터페이스형 I/O 보드로서는 제11도에 도시한 바와 같이 마이크로 프로세서를 내장하여 명령을 송수신하는 I/O 보드를 예로 들 수 있다.
I/O 요구수신처리 ① 및 개입중단 요구수신처리 ②에 공통인 동작은 공통처리 루틴으로서 그것을 프리세트하고, 공통 프로세스를 수행하는 동안 I/O 보드의 인터페이스의 유형에 무관하게 공통처리 루틴을 실행하는 것이다. 그외에, 특수처리 루틴을 준비하여, 표준처리와는 다른 처리를 요구하는 I/O 보드에 설정한다. 가동시에, 특허처리 루틴은 I/O 보드로부터 업로드를 실행함으로써 표준 I/O 드라이버(SD)와 연계해서 사용된다. 그러한 특수처리 루틴의 어드레스는 시스템의 가동시 처리정의 테이블(TBL)내에 설정된다.
다음에, 처리정의 테이블(TBL)의 형성 모드에 대해 제18도를 참조하면서 설명한다.
CPU 보드(100)의 첫번째 I/O 요구수신처리의 실행시, I/O 보드의 각종 정보 및 보드 ID를 판독함으로써 각각의 I/O 보드에 관하여 처리정의 테이블(TBL)을 형성한다.
첫째로, 채널의 수(포트의 수) 및 출력에 대한 필요 또는 불필요가 I/O 보드의 다중정보로부터 파라미터로서 설정된다.
만약 관계된 해당 보드가 명령/인터페이스형으로 분류된다면, 각각의 명령레지스터의 어드레스를 테이블내에 설정하고, 이어서, 각각의 버퍼의 어드레스를 테이블내에 설정한다. 만약 특수 처리가 필요하다면, 특수처리 루틴 어드레스를 테이블내에 설정한다.
만약 I/O 보드가 레지스터/인터페이스형으로 분류된다면, 각각의 레지스터 어드레스를 테이블내에 설정한다.
최종적으로, 테이블이 이미 작성되어 있는 플래그를 온상태로 절환하여 각종 요구처리를 실행한다.
시스템내에 설치된 각각의 I/O 보드에 관하여 전술한 동작을 수행함으로써, 표준 I/O 드라이버(SD)내에 처리정의 테이블(TBL)을 설정한다.
이하, 제19도의 순서도를 참조하여 처리정의 테이블(TBL)을 지니는 표준 I/O 드라이버(SD)의 액세스에 중점을 두어 설명한다.
액세스의 개시, 즉 데이터 전송준비처리의 개시시, CPU 보드(100)의 표준 I/O 드라이버(SD)는, 해당 I/O 보드의 처리정의 테이블(TBL)을 참조하여, 해당 I/O 보드의 채널수(포트수) 및 출력의 유무를 검사하고, 더 나아가 인터페이스의 유형을 식별한다.
만약 명령/인터페이스형으로 분류된다면, 처리정의 테이블(TBL)을 참조하면서, 출력버퍼 어드레스를 획득함으로써 데이터 변환을 실행한다. 이때, 출력버퍼로 출력된 데이터를 설정한다. 처리정의 테이블(TBL)을 다시 참조하면서, 명령레지스터 어드레스를 획득함으로써 출력명령을 설정하며, 그 상태는 I/O 보드로부터의 개입중단에 대한 대기상태이다. 개입중단을 받는 즉시, 복귀상태가 출력된.
만약 해당 I/O 보드가 레지스터/인터페이스형이라면, 처리정의 테이블(TBL)을 참조하면서 출력데이터 레지스터 어드레스를 획득함으로써 그것이 데이타 I/O 인터페이스(D1/O1/F)인지의 여부를 검사한다. 데이터 I/O 인터페이스인 경우, 1비트 데이터를 1어데이터로 변환하고, 마스크데이터를 설정한다. 그후, 출력데이터 레지스터에 데이터를 기록한다. 출력데이터 레지스터에 데이터를 기록하는 이 공정은 공통이다.
전술한 표준 I/O 드라이버(SD)를 설비하기 위하여, 시스템내에 다중 I/O 보드를 장착한다. 그러한 경우에도, I/O 보드마다 처리정의 테이블을 작성하고, 이 처리정의 테이블에 의거해서, I/O 보드에의 액세스를 실행하므로, I/O 보드당 드라이버를 설치할 필요가 없다. 단지 하나의 표준 I/O 드라이버를 사용함으로써, 실행에 있어서, 어떠한 쇠퇴도 유발하지 않고 모든 I/O 보드에의 액세스에 대응하는 것이 가능하다. 각종 I/O 보드는 단일한 표준 I/O 드라이버를 사용할 수 있고, 그 결과 I/O 드라이버를 발전시키는 후속공정의 수는 없다. 이것은 I/O 드라이버를 기억하기 위한 기억장치의 용량을 감소시킨다. 또한, I/O 보드의 인터페이스는 레지스터형 또는 명령형으로 표준화되고, 이로 인하여 사용자는 임의로 I/O 보드를 설계할 수 있는 동시에, 시스템내에 내장시킬 수 있다.
I/O 버스(bb)을 거쳐 CPU 보드(100)에 접속된 I/O 보드의 하드웨어식 데이터 전송모드에 대해 제20도 및 제21도를 참조하여 이하에 설명한다.
제11도의 블록도를 참조하면, 데이터 전송요구가 발생할 경우 I/O 버스(bb)내의 제어선에 스트로빙 신호(STB*)를 발생하기 위한 스트로빙 신호발생수단은, CPU 보드(100)의 I/O 버스(bb)내에 관한 I/O 인터페이스(8) 및 각각의 I/O 보드(C1),(C2)의 인터페이스(C11),(C21)에 설치된다. 특히, 데이터전송요구와 관련해서 전송프레임당 I/O 버스(bb)로 스트로빙신호(STB*)를 전송하기 위한 논리구조가 게이트 배열로 구성된 I/O 인터페이스(8) 및 인터페이스(C11),(C21)에 부가되어 있다.
제20도는 CPU 보드(100)의 데이터전송요구에 응해서 I/O 보드가 CPU 보드(100)로 데이터를 전송하는 경우를 도시한 타임차트이다.
데이터전송요구가 CPU 보드(100)로부터 발생될 경우, CPU 보드(100)는 제어프레임(F0) 및 스트로빙신호(STB*"L")를 I/O 버스(bb)로 전송한다. 제어프레임(F0)에는, 판독/기록의 식별실행과, 데이터크기(2바이트 또는 4바이트) 및 데이터의 종류(데이터 또는 제어신호)를 특정하는 전송모드비트 바이트에 기초하여 액세스를 가능하게 하는 바이트 가능비트가 설정된다. 이 제어프레임(F0)은 스트로빙신호(STB*"L")의 최초전이 에지(S0)에서 유효하다.
이어서, CPU 보드(100)는 각각 2바이트 프레임으로 구성된 어드레스프레임(F1), (F2)를 송출하는데, 이들은 256KB 어드레스공간을 보증한다. 또, 이들 어드레스프레임(F1), (F2)은 스트로빙신호(STB*"L")의 최후 전이 에지(S1), (S2)에서 유효하다.
이 지점까지의 기간(T1)의 동작은 CPU 보드(100) 부분쪽의 동작이다.
이들 프레임(F0), (F1), (F2)을 받은 I/O 보드는 상기 T1 기간동안에 보드자신이 선택되었는지의 여부를 판단한다. 만약 자신이 선택된다면, I/O 보드는 데이터 전송준비처리를 실행한다.
선택된 I/O 보드는 T3 기간동안에 I/O 버스(bb)상에 송신되어야 할 데이터프레임(F3), (F4)을 송출한다. 이 경우 데이터는 2바이트이다. 동시에, I/O 보드는 스트로빙신호(STB*"L")를 송출한다. 이들 데이터프레임(F3), (F4)은 스트로빙신호(STB*)의 최후 전이에지에서 유효하다.
최후로, I/O 보드는 스트로빙신호(STB*"L")와 함께 상태프레임(F5)을 송출한다. 1비트상태프레임(F5)은 해당 I/O 보드의 내부상태신호, 예를들면, 데이터정상전송, 에러상태 및 보드고장상태 등의 각종 상태를 실정하기 위한 신호로 간주해도 된다.
단, 프레임신호(FRM*)는 그의 최후전이 에지에서 최초의 프레임을, 또 최초전이 에지에서 최후의 프레임을 나타내며, 프레이밍에러를 검출하는데 이용된다. 데이터방향지정신호(DDIR)는 데이터 전송 사이클중에서 "H"기간에서 CPU 보드(100)로부터 I/O 보드쪽으로의 프레임전송을, 또한 "L"기간에서 I/O 보드로부터 CPU 보드로의 프레임전송을 나타내며, CPU 보드(100)와 I/O 보드사이의 데이터층돌을 방지하는데 이용된다. 이들 신호(FRM*), (DDIR*)는 I/O 버스(bb)의 제어선으로 전송된다.
제21도는 CPU 보드(100)로부터 I/O 보드로의 데이터전송을 실행할 경우의 타임차트를 도시한 것이다.
이 경우에는, T4 기간동안에 CPU 보드(100)로부터 제어프레임(F0), 어드레스프레임(F1), (F2) 및 데이터프레임(F3), (F4)을 스트로빙신호(STB*"L")와 함께 출력하고, T5 기간동안에 I/O 보드가 필요한 처리를 수행한 후, T6 기간동안에 I/O 보드는 상태프레임(F5) 및 스트로빙신호(STB*"L")를 반환한다.
제20도 및 제21도와 관련해서 설명한 데이터전송모드에 따르면, 전술한 바와 같이, 각각의 프레임이 송출될때마다 CPU 보드(100) 또는 I/O 보드는 스트로빙신호(STB*"L")를 전송하고, 그것으로 인하여 해당 프레임을 유효하게 한다. 그러므로, 프레임은 동기방식으로 전송된다. 제20도의 경우에, T1, T3 기간동안의 전송처리는, 전체로서 데이터전송사이클의 견지에서 비동기방식에 의거한다. 또 제21도의 경우에, T4, T6 기간동안의 전송처리는 비동기방식에 의거한다. 그러므로, 동기식 전송방법과 비동기식 전송방법이 혼합된 방법을 실행하는 것이 가능하다.
제22도는 프로그래머블 콘트롤러의 고장이력을 기록하기 위한 기능을 도시한 것이다. 프로그래머블 콘트롤러는 전력공급이 차단되는 것을 검출하기 위한 전력공급차단 검출회로(121), 내부온도의 비정상을 검출하기 위한 고온비정상 검출회로(122) 및 내부에서 실행되는 소프트웨어의 이탈을 검출하기 위한 소프트웨어 비정상 검출회로(123)등의 비정상 검출회로를 포함한다. 만약 비정상 검출신호가 이들 비정상회로중의 어느 하나로부터 발생된다면, 이 검출신호는 개입중단발생신호(124)로 입력됨으로써, CPU(1)에 개입중단을 형성한다.
개입중단신호를 받는 CPU(1)는 정상처리(125)로부터 비정상발생 개입중단처리(126)를 시작한다.
한편, CPU(1)는 타이머(TT)를 구비하여, 비정상발생 개입중단처리(126)를 개시할때 비정상이 존재하는 시각에 야기되는 비정상형태를 관련시킨다. 그후, CPU(1)는 일련의 시간내에 발생된 비정상을 배열시키는 반면에, 보조기억부(127)는 파일포맷에 이들 비정상을 기억한다. 보조기억부(127)는 데이터기억장치(7)의 사용을 포함한다.
만약 그 이후 호스트컴퓨터로부터 지정된다면, CPU(1)는 이력독출처리(128)를 시작하고, 보조기억부(127)의 내용을 판독하여 그 내용을 호스트쪽으로 전송한다. 이러한 구성에 의해 호스트측의 CRT 표시부 및 프린터를 사용함으로써, 제23도에 나타낸 테이블포맷으로 외부로 비정상발생 조건을 출력하는 것이 가능하게 된다. 또한 발생된 비정상, 발생시간 및 에러의 세버사항을 쉽게 분석할 수 있고, 에러에 대한 대응책도 얻을 수 있다.
이어서, 래더프로그램의 실행동안에 에러가 나타나는 래더회로 또는 본 발명의 프로그래머블 콘트롤러내 있어서의 소정의 래더회로에 대해 상세히 설명한다.
프로그래머블 콘트롤러는 예를들면 RS232C 및 RS422를 거쳐 프로그램작성수단과 접속된다. 전형적으로 제24도에 나타낸 바와 같이, 래더프로그램은 다양한 코멘트가 각각의 래더회로에 부가된 형태로 설정된다. 상술하면, 래더프로그램내에는, 제1단계에서 프로그램이름 "테스트", 제목 "시험동작회로", 래더회로의 스텝번호, 복수의 래더회로용의 회로코멘트 "긴급정지회로" 및 래더회로의 매라인에 상당하는 서브코멘트, "동작조건, 동작상태,…"가 설정되어 있다.
프로그래머블 콘트롤러는 내부에 전술한 래더프로그램을 기억하여 제어처리를 실행한다. 그러나, 만약 순서제어처리중에 비정상이 발생한다면, 고장장소를 특정하기 위해 프로그래밍 작성수단은 모든 프로그램스텝을 판독하여, CRT 표시화면상에 표시한다. 한편, 래더회로가 수천스텝을 가지고 있을 경우, 수십개의 라인으로 제한된 표시능력을 가진 CRT 표시화면상에 특정의 래더회로를 찾아낸다는 것은 곤란하다. 일반적으로 모든 래더회로는 인쇄출력되고, 프로그램리스트는 실제의 회로를 대응시킬 목적으로 그 장소에 적용된다. 그러나, 이 래더회로를 특정하는 방법의 실행가능성은 상당히 적다.
본 발명의 프로그래머블 콘트롤러에 있어서의 래더회로는 다음 방법으로 특정된다.
제25도는 프로그래밍 수단이 프로그래머블 콘트럴로의 CPU 보드(100)에 접속된 구성을 도시한 블록도이다. 설명을 간단히 하기 위하여, CPU 보드(100)에는, CPU(1), RS232C포트(10), RAM(7) 및 정보버스(b)만을 예시하였다. CPU 보드(100)의 RS232C포트(10)에 접속된 프로그래밍수단은 표시부(PTCRT), 키이보드(PTKB), 주기억장치(PTM1) 및 보조기억장치(PTM2)를 포함한다.
전술한 바와 같이, 래더회로는 프로그래머블 수단상의 순서제어에 따라 편집되고, 그 편집결과는 임시로 순서프로그램 영상파일(IMF)내에 기억된다. 작성된 래더프로그램은 RS232C포트(10)를 거쳐 RAM(7)으로 반송된다. 이때, 래더회로가 다양한 종류의 코멘트에 대응하는 회로/코멘트 대응테이블(CCT)에서는 래더프로그램과 함께 반송된다. 회로/코멘트 대응테이블(CCT)은 회로상의 코멘트위치(스텝번호)를 후술할 코멘트파일(CF)상의 코멘트위치에 대응시키기 위한 것이다. 이 회로/코멘트 대응테이블(CCT)에 의해, 마치 프로그램이 변형된 것처럼 래더회로와 그의 코멘트 사이의 위치상태를 기억할 수 있다.
이러한 구성에 의해, CPU(1)는 전송된 순서프로그램(SQP) 및 회로/코멘트 대응테이블(CCT)을 설정한다.
프로그래머블 수단측의 보조기억장치(PTM2)에는, 래더회로의 스텝번호와 이 래더회로에 첨가된 코멘트의 내용을 상호대응시키면서 기억하는 코멘트파일(CF)을 설정한다.
제26도는 코멘트파일(CF)의 내용을 도시한 것이고, 제27도는 회로/코멘트 대응 테이블(CCT)의 내용을 도시한 것이다. 코멘트파일(CF)은 프로그래밍수단에 설정되지 않고, CPU 보드(100)축의 RAM(7)에 설정된다. 그외에, 부가적으로, 스텝번호를 서브코멘트에 대응시키는 코멘트파일을 첨가해도 된다.
이하에 프로그래밍수단상의 래더회로의 특정장소를 찾기 위한 동작을 제28도를 참조하여 설명한다. 프로그래밍수단은 코멘트파일(CF)의 내용을 판독하고, 회로/코멘트 대응테이블(CCT)은 미리 준비하여 CRT 표시부상에 후속의 표시화면(S1), (S2), (S3) 및 (S4)을 표시한다.
프로그래밍수단의 CRT 표시부의 최초 화면은 회로모니터메뉴화면(S1)이고, 그 화면으로부터 회로코멘트 표시화면(S2)이 선택된다. 그후, 회로코멘트리스트가 CRT상의 리스트포맷에 표시된다. 회로코멘트 표시화면(S2)으로부터, 서브코멘트표시화면(S3)이 또한 선택되고, 그후, 회로코멘트에 내포된 모든 서브코멘트가 표시된다. 또, 회로표시화면(S4)이 서브코멘트에 대응해서 선택되면, 이 서브코멘트에 대응하는 래더회로가 표시된다.
즉, 제24도에 도시한 래더프로그팸으로부터 소정의 래더회로를 특정하기 위하여 회로코멘트의 리스트를 디스플레이함으로써 소정의 회로코멘트를 선택하고, 이 회로코멘트에 내포된 서브코멘트에 대응하는 래더회로를 지정함으로써 특정 래더회로를 CRT 표시화면상에 표시할 수 있다.
단, 회로표시화면(S4)은 회로모니터메뉴화면(S1) 또는 회로코멘트리스트(S2)로 부터 선택할 수 있다. 페이지 갱신스크롤링 및 페이지갱신 모니터링이 각각의 표시화면상에 실행될 수 있다.
이상 설명한 바와 같이, 본 발명의 프로그래머블 콘트롤러에 있어서는, 코멘트파일 및 회로/코멘트 대응테이블을 설정한 후 독출한다. 래더회로에 부가된 각종코멘트는 CRT 상에 단계적으로 표시하기에 앞서 래더회로와 관련이 있다. 그러므로, 소정의 래더회로를 즉시 검출하는 것이 가능하다.
이와 같은 구성에 의해 회로를 조정하거나 에러발생시 검색이 용이한 래더회로를 얻을 수 있다. 오류수정작업의 동작 및 래더프로그램작성의 개선에 중점을 두어 이하에 설명한다.
전형적으로, 래더프로그램을 채택하는 순서제어처리를 자기진단과 같은 공통처리, I/O 보드측의 I/O 레지스터의 I/O 갱신처리, 설정된 래더프로그램의 수행 및 호스트장치용의 서비스처리로 이루어진 처리루틴에 의하여 실행된다.
본 발명의 프로그래머블 콘트롤러에 기초하여, 제29도에 도시한 바와 같이, 공통처리후의 I/O 갱신처리는, 순서제어프로그램의 작성시 I/O 보드가 장착되어 있지 않은 경우, 프로그래밍 및 오류수정작업의 실행이 생략된다. 이러한 구성에 의해서, 오류수정동작은 I/O 보드가 없다면, 프로그래밍수단등의 오류수정기로부터의 지시에 따라 수행될 수 있다.
제30도는 본 발명의 프로그래머블 콘트롤러에 잇어서의 래더프로그램의 프로그래밍 기능을 도시한 개념도이다. 동도면에 있어서의 각각의 블록은 본 발명의 프로그래머블 콘트롤러의 소프트웨어기능 블록을 나타낸다.
제30도에서 개별적인 기능블록은 다음과 같이 작동한다.
회로편집기능블록(201)은 래더회로의 각각의 회로성분을 편집하는 것이고, 그 기능으로 인해서 프로그래머는, 래더회로를 지정하는 경우 디바이스이름과 같은 신호이름의 형태로 각각의 회로성분의 어드레스를 기술한다. 신호정의 기능블록(202)은 상기 어드레스와 각각의 회로성분의 신호이름과의 대응을 미리 설정하기 위한 테이블포맷을 설정하는 유닛으로서 역할한다. 컴파일기능블록(203)은, 실행포맷에 있어서의 프로그램을, 래더회로내의 신호의 이름, 그것에 상당하는 신호정의 기능블록(202)으로부터 주어지는 어드레스 및 어드레스자동발생기능블록(204)으로부터 주어지는 신호에 관하여 순서처리부, 즉 시퀀서시스템(205)으로 전송하는 작용을 한다. 어드레스자동발생기블록(204)은 신호정의 기능블록(202)으로부터 주어지는 신호이름에 상술한 어드레스를 자동적으로 할당하기 위한 기능블록이다.
이들 기능을 이용해서 래더프로그램을 작성하는 절차를 이하에 상술한다.
제31도에 도시된 래더회로는 프로그래밍수단과 회로편집기능블록(201)과의 협동에 의해 형성된다. 이때, 계전기부, 출력부동의 각기 다른 회로성분은 SW1 및 COIL1과 같은 신호이름의 형태로 설정된다. 그러나, 신호이름 SW1, COIL1, COIL2, IRL1, TIM1, CNT1 및 REG1은 신호정의 기능블록(202)내의 어드레스, X, X, Y, Y, I, T, C 및 D에 미리 대응하도록 배열되고, 여기서 X는 입력, Y는 출력, I는 내부계전기, T는 타이머, C는 카운터, D는 데이터레지스터를 나타내는 어드레스이다.
컴파일기능블록(203)내의 각각의 래더회로성분으로 설정되지 않은 상술한 어드레스는 어드레스자동발생기능블록(204)내에 자동적으로 할당된다. 구체적으로는, 상술한 어드레스 XXXX가 아니라 어드레스 X만 회로소자 SW1로 세트되고, 상술한 어드레스 X001이 지정된다. 이때, 상술한 어드레스는 래더회로성분의 신호이름에 부가된 가장 작은 번호번호 순차 설정된다. 그 결과가 제33도에 도시되어 있다. 즉, 어드레스 X001은 신호이름 SW1에 설정되고, 어드레스 X002는 신호이름 SW2에 설정된다.
컴파일 기능에 의해 얻어진 실행포맷프로그램에 따라, 순서제어부에서 처리가 실행되더라도, 오류수정작업은 I/O보드를 정착하지 않고 CPU 보드(100)만을 사용해서 실행될 수 있는데, 이는 I/O 갱생처리가, 처리루틴을 도시한 제29도의 차트에 나타난 바와 같이, I/O보드가 오류수정작업단계에서 장착되지 않았더라도 우회되기 때문이다. 이 오류수정작업결과에 의거해서, 상술한 어드레스는 필요시 부가된다.
그러므로, 신호이름은 각각의 래더회로성분의 어드레스를 몰라도 상술한 어드레스에 자동적으로 대응시킬 수 있고, 또, 순서제어프로그램의 설계를 용이하게 한다. 오류수정작업은 I/O보드없이 실행할 수 있고, 순서처리에 상당하는 계전기 보드의 설계를 완료하기 이전에 래더프로그램 동작을 확인할 수 있다.
본 발명의 프로그래머블 콘트롤러는 스텝당 블록을 분할함으로써 이하의 방법에 있어서 수천개의 스텝을 포함하는 프로그램에 관하여 프로그래밍을 실행한다. 제34a도 내지 c도는 프로그램밍모드를 도시한 것이다.
제34a 내지 c도는 래더프로그램의 일부로서 스텝1, 2, 5를 나타낸다.
본 발명에 있어서 새롭게 정의된 기동명령 "ACT PROG 1.2" 및 종료명령 "INACT PROG 1.1"는 스텝 1의 최종 서브스텝에 설정된다. 이러한 구성에 있어서, 스텝 1의 제어동작이 최종 서브스텝에 도달할 경우, 스텝 2의 블록래더프로그램 PROG 1.2는 스텝 1의 블록래더프로그램 PROG 1.1을 정지시킴으로써 기동되고, 그것에 의해서, 스텝 2의 제어동작이 시작된다.
블록래더프로그램 PROG 1.2의 최종 서브스텝에서는 스텝 3 내지 5의 블록래더프로그램 PROG 1.2의 정지명령 "INACT PROG 1.2" 및 병렬기동명령 "ACT PROG 1,3", "ACT PROG 2.1", "ACT PROG 3.1"이 설정된다. 이들 스텝 3 내지 5는 동시에 기동된다.
스텝 3 내지 4의 종료는 스텝 5에 모니터된다. 스텝 3, 4, 5의 종료를 검출할 경우, 동작은 스텝 1, 예를들면 정지명령 "INACT PROG 3.1"과 "ACT PROG 1.1"에 응하여 순서제어처리의 기동스텝으로 되돌아간다.
이와 같이 해서 래더프로그램의 기동명령 "ACT" 및 정지명령 "INACT"가 정의되므로, 일련의 수천개의 순서제어프로그램을 수개의 블록으로 분할함으로써 병렬로 프로그래밍을 실행할 수 있다. 또한, 래더프로그램은 서로에게 기동과 종료를 통지하고, 그것에 의하여 순서제어동작은 복수의 CPU보드내의 블록으로 분할한 래더프로그램을 설정함으로써 실행될 수 있다.
제35도는 실제제어선(L)상의 제어대상(M), 기본프로그램 처리가 설정되어 있는 CPU보드(101)와 래더프로그램처리만이 설정되어 있는 CPU보드(102) 내지 (104)와의 조합에 의해서 제어되는 예를 도시한 것이다.
단, 래더프로그램(LD1),(LD2)은 I/O보드 그룹(C10)이 접속된 CPU보드(102)내에 설정되고, 래더프로그램(LD3) 내지 (LD5)은 I/O보드 그룹(C20)이 접속된 CPU보드(104)내에 설정되어 있다.
제36도는 CPU보드(101)내에 설정된 기본프로그램의 예이다.
래더프로그램(LD1) 내지 (LD6)은 제어대상(M)에 관하여 일련의 순서제어프로그램으로서 정의되고, 이들 래더프로그램은 전술한 블록구조를 가지며, 독립하여 프로그램된다.
CPU보드(101)의 기본프로그램은 개개의 래더프로그램으로 기동명령을 내리고, 그의 종료명령을 받는 역할을 한다.
동작기동시, CPU보드(101)는 CPU보드(102)의 래더프로그램(LD1)에 이어 래더프로그램(LD2)을 작동시키고, 이들 프로그램이 종료된 후, 그때의 순서처리결과에 따라 CPU보드(103)의 래더프로그램(LD3) 또는 (LD4)을 실행한다. 프로그램(LD3) 또는 (LD4)을 완료한 직후, 이 스텝을 따라서 기본프로그램은 CPU보드(103)내에 내장된 래더프로그램(LD5)과 CPU보드(104)내에 내장된 래더프로그램(LD6) 양쪽을 병렬로 기동하는 기능을 한다.
상기 도시된 시스템에 기초하여, 일련의 순서제어동작이 블록으로 분할되어 있는 순서제어프로그램은 복수의 프로그래머블 콘트롤러에 의하여 조종되고 처리된다. 따라서, 고효율의 순서제어처리가 실행될 수 있다.
이상 설명한 바와 같이, 본 발명의 프로그래머블 콘트롤러는 변경할 경우 재설계가 용이한 시스템을 얻을 수 있꼬, 순서제어처리의 속도를 향상시킬 수 있다. 따라서 높은 처리효율을 나타내는 프로그래머블 콘트롤러를 실현할 수 있다.
이상 본 발명의 실시예를 첨부된 도면을 참조하면서 설명하였으나, 본 발명이 그러한 정확한 실시예로 제한되는 것으로 이해해서는 안된다. 본 발명의 정신이나 범위에서 벗어남이 없이, 본 기술분야에 종사하는 사람은 다양한 변화 또는 변형을 실행할 수 있다.

Claims (10)

  1. 제어대상에 관하여 다중정보를 송수신하기 위한 I/O보드 그룹과, 상기 I/O보드 그룹을 거쳐 상기 제어대상으로 제어신호를 부여하기 위한 프로세서 보드로 구성되고, 상기 프로세서 보드는, 순서제어프로그램 및 범용연산처리, 정보처리 또는 상기 순서제어프로그램을 기동하고 종료명령을 내리는 제어동작을 수행하는 기본프로그램에 있어서의 명령의 일부를 수행하는 동시에 전체를 제어하기 위한 프로세서와, 상기 순서제어프로그램이 격납되어 있는 프로그램 기억장치에 직접 접속되어, 상기 프로그램 기억장치로부터 순차 판독된 명령을 실행하는 동시에, 만약 상기 독출된 명령이 상기 프로세서에 의해 수행되어야 할 순서응용명령이라면 상기 명령을 상기 프로세서로 공급하는 1비트 프로세서와, 임시로 데이터를 기억하는 데이터 기억장치와, 자기 진단프로그램을 기억하는 고정기억장치와, 호스트 컴퓨터와의 통신동작에 관여하고 있는 통신 인터페이스와, 다중정보를 송수신하는 I/O보드와 접속되어 있는 I/O 버스에 상기 제어대상을 결합하기 위한 I/O 인터페이스와, 상기 프로세서, 상기 1비트 프로세서, 상기 데이터기억장치, 상기 고정기억장치, 상기 통신 인터페이스 및 상기 I/O 인터페이스를 상호 접속하고 있는 내부버스로 구성되어 있는 것을 특징으로 하는 프로그래머블 콘트롤러.
  2. 제1항에 있어서, 기동시에 상기 프로세서 보드에 설정된 I/O 드라이버는, 보드(ID), 상기 보드의 인터페이스유형, 채널수, 명령레지스터 어드레스와 버퍼어드레스 또는 데이터레지스터 어드레스 및 특수처리가 필요할 때 상기 특수처리를 지정하기 위한 어드레스를 판독함으로써 테이블 포맷으로 기억하기 위한 처리정의 테이블을 설정하고, 데이터 출력처리를 실행할 경우 상기 처리정의 테이블을 참조하는 것을 특징으로 하는 프로그래머블 콘트롤러.
  3. 제1항에 있어서, 상기 프로세서 보드 및 상기 I/O보드 그룹에 스트로빙신호발생수단을 설치함과 동시에, 데이터전송 사이클의 기동시, 데이터 전송을 요구하는 상기 보드는 매 프레임 전송당 스트로빙 신호를 송출하여, 해당 프레임을 유효하게 하며, 상기 데이터전송요구를 받은 상기 보드는 상태프레임 전송당 데이터프레임 및 상태프레임 또는 상기 스트로빙 신호를 송출하고, 이와 같이 해서, 상기 데이터전송 사이클이 종료되는 것을 특징으로 하는 프로그래머블 콘트롤러.
  4. 제1항에 있어서, 비정상 종류의 수에 대응하는 다수의 비정상 검출회로를 설치하고, 상기 프로세서는 개입중단 신호로서 비정상 검출신호를 수신하고, 테이블 포맷내에서 검출된 비정상의 내용 및 내부타이머기능에 의하여 주어지는 시간데이터를 기억하는 것을 특징으로 하는 프로그래머블 콘트롤러.
  5. 제1항에 있어서, 순서제어처리 루틴에 있어서의 I/O 갱신 처리를 생략하고, 상기 래더회로를 작성할 경우 신호이름을 상기 회로소자에 할당하여 프리세트된 신호이름 대 어드레스 대응 테이블에 따른 어드레스에 대응시키고, 상기 신호이름에 대응하는 상세 어드레스는 가장 작은 번호로 마크된 상기 어드레스로부터 상기 상세 어드레스가 컴파일시에 아직 할당되지 않은 상기 신호이름에 순차 설정되는 것을 특징으로 하는 프로그래머블 콘트롤러.
  6. 제1항에 있어서, 상기 래더프로그램을 프로그래밍할 경우 일련의 순서제어동작을 몇몇 스텝에 상당하는 블록으로 분할하고, 다음에 실행하여야 할 상기 블록을 특정하기 위한 명령 및 관련된 상기 블록의 처리의 중단을 특정하기 위한 명령을 각 상기 블록의 최종 서브스텝의 상기 래더회로에 설정하고, 상기 래더프로그램을 매 블록당 설정하여 행하는 것을 특징으로 하는 프로그래머블 콘트롤러.
  7. 제1항에 있어서, 래더언어내에 생성된 상기 래더프로그램내의 상기 래더회로에 부가된 코멘트를 관련된 상기 래더회로의 스텝번호에 대응시켜 상기 코멘트와 스텝번호를 기억하는 코멘트파일 및 관련된 상기 래더회로의 상기 스텝번호가 상기 코멘트파일내의 코멘트번호에 대응하는 회로/코멘트 테이블이 설정되어 있고, 상기 회로코멘트, 상기 스텝번호 및 상기 래더회로는 프로그래밍 수단으로부터 판독되는 것을 특징으로 하는 프로그래머블 콘트롤러.
  8. 제1항에 있어서, 주기적으로 실행되는 상기 순서제어프로그램에 의한 순서처리와 상기 기본프로그램에 의한 각종 기본처리를 절환함으로써 프로세서 처리를 실행하기 위하여, 상기 순서처리의 처리시간의 최대허용값을 지니는 동시에 각 시간에 상기 순서처리의 처리시간을 카운트하는 타이머와, 상기 타이머의 카운트값에 의하여 상기 기본처리의 상기 처리시간을 결정함으로써 상기 타이머내에 상기 처리시간의 값을 설정하고 상기 순서처리 및 상기 기본처리를 절환하는 실행권 절환처리부로 구성된 것을 특징으로 하는 프로그래머블 콘트롤러.
  9. 제1항에 있어서, 상기 프로세서는 지정된 언어에 따라서 동작하는 단일의 중앙처리장치이며, 적어도 1개 이상의 실행되어야 할 언어를 외부로부터 설정할 수 있는 설정수단과, 상기 설정수단에 의해 설정된 언어에 응해서 최적의 실행환경을 생성하는 생성수단으로 구성된 것을 특징으로 하는 프로그래머블 콘트롤러.
  10. 제1항에 있어서, 상기 프로세서 보드는 기본언어를 처리하기 위한 프로세서 보드와, 각각 순서언어처리 전용인 1개 이상의 블록형의 순서제어프로그램을 기억하기 위한 적어도 1개 이상의 순서언어처리 전용의 프로세서 보드로 구성된 동시에 상기 I/O보드 그룹은 상기 순서언어처리 전용인 상기 프로세서 보드의 하부쪽에 설치되어 있으며, 상기 기본언어를 처리하기 위한 프로세서 보드는 상기 순서언어처리 전용의 상기 프로세서 보드내의 상기 블록형의 순서제어프로그램의 각각에 개시 명령 및 종료명령을 통지하는 것을 특징으로 하는 프로그래머블 콘트롤러.
KR1019900005768A 1989-04-24 1990-04-24 프로그래머블 콘트롤러 KR940002324B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP1-104052 1989-04-24
JP1104052A JPH02281365A (ja) 1989-04-24 1989-04-24 情報処理装置
JP1129707A JPH02307151A (ja) 1989-05-23 1989-05-23 プロセッサ・システム
JP1-129707 1989-05-23
JP1-275513 1989-10-23
JP1-275512 1989-10-23
JP1275512A JPH03136103A (ja) 1989-10-23 1989-10-23 シーケンサ
JP1275513A JPH03136105A (ja) 1989-10-23 1989-10-23 ラダー・シーケンス制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1019930022821A Division KR940002339B1 (ko) 1989-04-24 1993-10-30 프로그래머블 콘트롤러

Publications (2)

Publication Number Publication Date
KR900016842A KR900016842A (ko) 1990-11-14
KR940002324B1 true KR940002324B1 (ko) 1994-03-23

Family

ID=27469177

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1019900005768A KR940002324B1 (ko) 1989-04-24 1990-04-24 프로그래머블 콘트롤러
KR1019930022821A KR940002339B1 (ko) 1989-04-24 1993-10-30 프로그래머블 콘트롤러

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1019930022821A KR940002339B1 (ko) 1989-04-24 1993-10-30 프로그래머블 콘트롤러

Country Status (7)

Country Link
US (1) US5553297A (ko)
KR (2) KR940002324B1 (ko)
CN (1) CN1046987A (ko)
DE (1) DE4011278A1 (ko)
FR (1) FR2646254B1 (ko)
GB (1) GB2232514B (ko)
NL (1) NL9000984A (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2848060B2 (ja) * 1991-10-24 1999-01-20 株式会社日立製作所 プログラマブルコントローラおよびシーケンス制御方法
JPH08123515A (ja) * 1994-10-25 1996-05-17 Fanuc Ltd シーケンス・プログラムの表示方式
JP3868541B2 (ja) * 1996-07-16 2007-01-17 東芝機械株式会社 ダイカスト機の制御装置
US20040194101A1 (en) * 1997-08-21 2004-09-30 Glanzer David A. Flexible function blocks
US6424872B1 (en) 1996-08-23 2002-07-23 Fieldbus Foundation Block oriented control system
US7146230B2 (en) * 1996-08-23 2006-12-05 Fieldbus Foundation Integrated fieldbus data server architecture
US5963446A (en) * 1996-08-27 1999-10-05 Steeplechase Software, Inc. Extended relay ladder logic for programmable logic controllers
JPH10240522A (ja) * 1997-02-26 1998-09-11 Matsushita Electric Works Ltd 演算装置
US6999824B2 (en) * 1997-08-21 2006-02-14 Fieldbus Foundation System and method for implementing safety instrumented systems in a fieldbus architecture
US6157970A (en) * 1997-09-24 2000-12-05 Intel Corporation Direct memory access system using time-multiplexing for transferring address, data, and control and a separate control line for serially transmitting encoded DMA channel number
US6104875A (en) * 1997-12-18 2000-08-15 Honeywell Inc. Method for field programming an industrial process transmitter
US6272398B1 (en) 1998-09-21 2001-08-07 Siebolt Hettinga Processor-based process control system with intuitive programming capabilities
DE19946096A1 (de) * 1999-09-27 2001-04-12 Mannesmann Vdo Ag Steuergerät, insbesondere für ein Kraftfahrzeug
JP2001265412A (ja) * 2000-03-15 2001-09-28 Omron Corp プログラマブルコントローラ
US20050240286A1 (en) * 2000-06-21 2005-10-27 Glanzer David A Block-oriented control system on high speed ethernet
US20040072478A1 (en) * 2000-12-29 2004-04-15 Walter Sticht Production management device for a manufacturing and/or assembling device
JP4783527B2 (ja) 2001-01-31 2011-09-28 株式会社ガイア・システム・ソリューション データ処理システム、データ処理装置およびその制御方法
JP4865960B2 (ja) 2001-06-25 2012-02-01 株式会社ガイア・システム・ソリューション データ処理装置およびその制御方法
US6993674B2 (en) 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
CA2522755A1 (en) 2003-04-16 2004-11-04 Drexel University Acoustic blood analyzer for assessing blood properties
EP1582948B1 (en) * 2004-03-31 2009-06-24 Omron Corporation Development aid device
KR20060076884A (ko) * 2004-12-29 2006-07-05 두산인프라코어 주식회사 수치제어장치의 소프트웨어 plc 접점 처리장치 및 방법
TWI279711B (en) 2005-08-19 2007-04-21 Mitac Technology Corp Dual-processor multimedia system, and method for fast activation of the multimedia system
JP2007156824A (ja) * 2005-12-05 2007-06-21 Nec Electronics Corp プロセッサシステム、タスク制御方法
US8676357B2 (en) * 2005-12-20 2014-03-18 Fieldbus Foundation System and method for implementing an extended safety instrumented system
US7489977B2 (en) * 2005-12-20 2009-02-10 Fieldbus Foundation System and method for implementing time synchronization monitoring and detection in a safety instrumented system
US20090083719A1 (en) * 2007-09-20 2009-03-26 Delta Electronics, Inc. Method of compiling machine code program for programmable logic controller
JP5155646B2 (ja) * 2007-12-13 2013-03-06 アイシン高丘株式会社 熱間プレス成形装置及び熱間プレス成形方法
US20090302588A1 (en) * 2008-06-05 2009-12-10 Autoliv Asp, Inc. Systems and methods for airbag tether release
WO2010014033A1 (en) * 2008-07-31 2010-02-04 Ge Healthcare Bio-Sciences Ab Separation device
JP5454783B2 (ja) * 2009-03-13 2014-03-26 オムロン株式会社 Plcのプログラミングにおける変数名の入力支援方法、plcのプログラミングにおける変数名の入力支援装置、及びコンピュータプログラム
US8688964B2 (en) * 2009-07-20 2014-04-01 Microchip Technology Incorporated Programmable exception processing latency
CN102096390B (zh) * 2011-01-30 2014-04-09 深圳市合信自动化技术有限公司 可编程逻辑控制器、组态程序编译器及方法
EP2537591B1 (de) * 2011-06-21 2014-06-18 Siemens Aktiengesellschaft Verfahren zur Gewinnung von nichtmagnetischen Erzen aus einer Erzpartikel-Magnetpartikel-Agglomerate enthaltenden Suspension
JP5702811B2 (ja) 2013-01-30 2015-04-15 ファナック株式会社 動作プログラム作成装置
CN103529749B (zh) * 2013-10-29 2017-07-25 威海麦科电气技术有限公司 一种plc可编程控制器的梯形图程序开发系统及方法
JP5937637B2 (ja) * 2014-04-30 2016-06-22 ファナック株式会社 シーケンスプログラムの切り替え時に、切り替え予告信号を出力する制御装置
CN105431789A (zh) * 2014-07-14 2016-03-23 三菱电机株式会社 Plc系统及运算式数据创建辅助装置
JP6122054B2 (ja) * 2015-03-13 2017-04-26 ファナック株式会社 ラダープログラムの分岐回路抽出表示機能を有するモニタ装置
JP6325500B2 (ja) * 2015-09-17 2018-05-16 ファナック株式会社 Cncの動作状況をコメント中に追加表示可能なラダー図モニタ装置
CN106762414B (zh) * 2016-11-23 2020-05-22 北京华电天仁电力控制技术有限公司 一种用于风力发电机组变桨控制系统的板式可编程控制器

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4303990A (en) * 1976-07-01 1981-12-01 Gulf & Western Industries, Inc. Programmable controller using microprocessor
JPS54114687A (en) * 1978-02-27 1979-09-06 Toyoda Mach Works Ltd Sequence controller
DE2932394A1 (de) * 1978-08-24 1980-02-28 Texas Instruments Inc Intelligente, programmierbare prozessteueranordnung
DE3236302A1 (de) * 1982-09-30 1984-04-05 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung
JPS59119405A (ja) * 1982-12-27 1984-07-10 Hitachi Ltd 複数台運転可能なシ−ケンスコントロ−ラ
DE3302929A1 (de) * 1983-01-28 1984-08-02 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung
DE3302940A1 (de) * 1983-01-28 1984-08-02 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung mit wort- und bitprozessor
JPS59172008A (ja) * 1983-03-22 1984-09-28 Mitsubishi Electric Corp 数値制御装置
US4750110A (en) * 1983-04-18 1988-06-07 Motorola, Inc. Method and apparatus for executing an instruction contingent upon a condition present in another data processor
DE3323824A1 (de) * 1983-07-01 1985-01-03 Siemens AG, 1000 Berlin und 8000 München Speicherprogrammierbare steuerung
EP0134386A2 (en) * 1983-08-05 1985-03-20 Ten X Technology, Inc. Method and apparatus for executing object code instructions compiled from a high-level language source
US4862351A (en) * 1983-09-01 1989-08-29 Unisys Corporation Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same
US4742443A (en) * 1985-03-28 1988-05-03 Allen-Bradley Company Programmable controller with function chart interpreter
US4942552A (en) * 1986-11-20 1990-07-17 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
US4972365A (en) * 1987-05-01 1990-11-20 Allen-Bradley Company, Inc. Executing downloaded user programs in a programmable controller
DE3720006A1 (de) * 1987-06-15 1988-12-29 Siemens Ag Datenverarbeitungsanlage mit einem bitprozessor und einem wortprozessor
US4858101A (en) * 1987-08-26 1989-08-15 Allen-Bradley Company, Inc. Programmable controller with parallel processors
US4937777A (en) * 1987-10-07 1990-06-26 Allen-Bradley Company, Inc. Programmable controller with multiple task processors
US5287548A (en) * 1988-02-29 1994-02-15 Allen-Bradley Company, Inc. Programmable controller having a stored program with both machine language instructions and source code data
US4985831A (en) * 1988-10-31 1991-01-15 Evans & Sutherland Computer Corp. Multiprocessor task scheduling system
US5068778A (en) * 1988-11-28 1991-11-26 Reliance Electric Industrial Company Industrial control system device
US5068821A (en) * 1989-03-27 1991-11-26 Ge Fanuc Automation North America, Inc. Bit processor with powers flow register switches control a function block processor for execution of the current command

Also Published As

Publication number Publication date
KR940002339B1 (ko) 1994-03-23
CN1046987A (zh) 1990-11-14
GB2232514A (en) 1990-12-12
FR2646254B1 (fr) 1996-10-31
GB2232514B (en) 1993-09-01
US5553297A (en) 1996-09-03
NL9000984A (nl) 1990-11-16
DE4011278A1 (de) 1990-10-25
GB9006947D0 (en) 1990-05-23
FR2646254A1 (fr) 1990-10-26
KR900016842A (ko) 1990-11-14

Similar Documents

Publication Publication Date Title
KR940002324B1 (ko) 프로그래머블 콘트롤러
US5551053A (en) System and Method for assigning addresses to I/O devices in a control network and for verifying the assigned address of the devices
EP1351108B1 (en) Method and apparatus for programming
US5675830A (en) Addressing scheme for control network having remote address request device
US7117049B2 (en) Industrial controller based on distributable technology objects
USRE40817E1 (en) Process control system including automatic sensing and automatic configuration of devices
US4751672A (en) Sequence control system employing a plurality of programmable logic controllers
JPH0561646B2 (ko)
CN110663222B (zh) 处理过程数据
JP2008282363A (ja) プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム
JP2002268707A (ja) コントローラ及びツール並びにそれらにより構成されるシステム
US20190056970A1 (en) Method for computer-aided coupling a processing module into a modular technical system and modular technical system
WO2020071639A1 (ko) 프로그램 개발 시스템 및 이를 이용한 개발 방법
US6711448B2 (en) Setting display apparatus for a programmable controller
JP4842541B2 (ja) 制御用表示装置、画面データ生成装置、並びに、それらのプログラムおよび記録媒体
JP2018200731A (ja) サポート装置およびサポートプログラム
US5949673A (en) Hybrid centralized and distributed industrial controller
GB2244828A (en) Programmable controller
JP2700562B2 (ja) 織機のトラブル診断装置
JP7374380B1 (ja) プログラマブルコントローラおよび製造システム
JPH03237502A (ja) プログラマブル・コントローラ
EP3531219B1 (en) Control system and functional unit
CN112272802B (zh) 支持装置以及记录介质
JPS5941214B2 (ja) 状態監視方式
WO2024024264A1 (ja) コントロールシステム及び方法

Legal Events

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

Payment date: 19970326

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee