KR940005814B1 - 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법 - Google Patents

프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법 Download PDF

Info

Publication number
KR940005814B1
KR940005814B1 KR1019910016136A KR910016136A KR940005814B1 KR 940005814 B1 KR940005814 B1 KR 940005814B1 KR 1019910016136 A KR1019910016136 A KR 1019910016136A KR 910016136 A KR910016136 A KR 910016136A KR 940005814 B1 KR940005814 B1 KR 940005814B1
Authority
KR
South Korea
Prior art keywords
code
user program
counter
error
jump
Prior art date
Application number
KR1019910016136A
Other languages
English (en)
Other versions
KR930006523A (ko
Inventor
김종배
Original Assignee
금성기전 주식회사
김회수
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 금성기전 주식회사, 김회수 filed Critical 금성기전 주식회사
Priority to KR1019910016136A priority Critical patent/KR940005814B1/ko
Publication of KR930006523A publication Critical patent/KR930006523A/ko
Application granted granted Critical
Publication of KR940005814B1 publication Critical patent/KR940005814B1/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

Landscapes

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

Abstract

내용 없음.

Description

프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법
제1도는 종래의 유저 프로그램 체크 방법의 흐름도.
제2도는 본 발명의 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법.
제3도는 프로그래머블 로직 콘트롤러의 유저 프로그램 구성도.
제4도는 듀얼 코일 에러 체크의 흐름도.
제5도는 타이머, 카운터 코드의 체크에 대한 흐름도.
제6도는 점프 테이블의 작성 흐름도.
제7도는 콜 코드 체크에 대한 흐름도.
본 발명은 프로그래머블 로직 콘트롤러(이하 PLC라 칭한다)에 관한 것으로, 특히 PLC 유저 프로그램에서 각종 에러를 검출하고 동작시 사용될 정보 테이블을 생성하여 PLC 동작의 효율성이 증대되도록 하는데 적당하도록 한 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법에 관한 것이다.
일반적으로 사용되고 있는 PLC 제어 알고리즘은 제1도에 도시한 바와같은 명령 리드(Read)부, 엔드 코드 체크(End Code Check)부, 유저 프로그램 카운터값과, 라스트 유저 프로그램 어드레스 비교부로 구성된다.
한편, 종래에는 파워의 온시와 PLC의 동작 모드가 런(Run)일 때 상기 제1도에서와 같이 먼저 유저 프로그램이 스타트 어드레스를 유저 프로그램 카운터(이하 UPC라 칭한다)에 로딩하고 해당 UPC의 명령 코드를 읽어서 체크를 하며 또한 엔드 명령인가를 체크한다. 그러나 만일 명령 코드의 에러가 발생하면 에러를 표시하고 유저 프로그램의 수행을 정지한다. 에러가 아닌 경우에는 명령을 수행하고 다음 명령의 해당 UPC가 유저 프로그램의 마지막 어드레스보다 크거나 같은가를 체크하고 만일 크거나 같은 경우에는 이전에 엔드 명령의 유무를 체크하여 있었을 경우에는 프로그램의 런(Run)을 반복하여 수행하고, 없었을 경우는 미싱 엔드 에러(Missing End Error)를 표시한다. 그리고 UPC가 유저 프로그램의 마지막 어드레스보다 작을 경우에는 해당 UPC의 명령 코드를 읽어서 상기의 과정을 반복한다.
그러나 상기와 같은 유저 프로그램의 체크는 파워 온시와, PLC의 동작 모드가 런에서 각 명령 실행시 행해지며 명령 코드의 에러 및 미싱 엔드 에러만을 검출하였다. 따라서 유저 프로그램에 에러가 있을 경우 에러가 검출될 때까지 명령을 실행하는 모순 및 명령 코드 에러 이외에 PLC가 동작중에 발생할 수 있는 에러 및 경고의 메세지가 없다.
이에 따라 본 발명은 상기와 같은 종래 유저 프로그램의 체크 방법에 따르는 결함을 감안하여 PLC 유저 프로그램에서 명령 코드 에러, 듀얼 코일 에러(Dual Coil Error)등을 검출하여 유저에서 PLC가 동작중 발생할 수 있는 에러 및 경고 메세지를 검출 및 제공하며 PLC가 프로그램 모드에서 유저 프로그램을 체크할 수 있게 함으로써 불필요한 명령의 수행을 방지하고 런중에 사용할 점프, 콜(Call), 타이머(Timer), 카운터 정보 테이블(Table)를 작성하여 동작의 효율을 증진하도록 창안한 것으로 이를 상세히 설명하면 다음과 같다.
제3도는 PLC 유저 프로그램을 나타내며 프로그램 체크의 동작은 다음과 같다.
먼저 UPC에 스타트 어드레스인 "0"을 로딩하고 해당 어드레스에 명령 코드를 읽어서 제2도와 같은 흐름으로 체크를 하는데 명령 코드에 에러가 있으면 이를 표시한 후 다음 명령 코드를 읽기 위해 어드레스를 증가시키며 만일 어드레스가 최종 어드레스이면 엔드 명령이 있는가를 조사하여 있으면 유저 프로그램의 체킹 과정을 종료하고 없으면 엔드 표시가 빠져 있음을 표시하고 종료하게 된다.
한편, 명령 코드가 듀얼 에러이면 이를 표시한 후에 상기의 과정을 수행하고 만일 명령 코드가 점프 콜 에러이면 점프 콜 테이블을 작성한 후 상기 과정을 수행하며 타이머 카운터 에러이면 타이머 카운터의 정보 테이블을 작성한 후 상기의 과정을 분기하고 명령 코드를 체크한 결과 엔드 코드 에러이면 엔드 코드를 삽입함과 아울러 UPC에 다음 명령에 대한 어드레스를 로딩하고 마지막 어드레스를 만날 때까지 상기의 에러 체크 과정을 반복한다.
예를 들어, UPC가 51에서 점프 명령을 만나면 점프 테이블을 작성하기 위해 동일한 점프 번호를 갖는 JME를 찾아 점프 테이블의 점프 번호 번째 즉, "0"번째에 "150"을 라이트(write)한다. 또 UPC가 "171"일 때 명령은 "OUT Y000"이며 이는 UPC 161과 같은 출력 명령인 "OUT Y000"이므로 이때에 는 듀얼 코일 에러를 검출하고 에러 표시를 한다.
UPC가 "181" 혹은 "202"에서는 타이머, 카운터 명령이 검출되어 타이머 카운터 정보 테이블을 작성하게 되며 UPC가 "250"에서는 "CALL 0"명령을 만나서 "서브루틴 0"을 찾아 콜 테이블의 "0"번째서 "4000"을 라이트(WRITE)하게 된다.
만일 UPC "300"의 엔드 명령이 없다면 미스 엔드 에러(Miss END Error)를 발생하며 UPC "500"의 RET 명령이 없다면 NO RET 즉, 로직 에러를 검출하게 된다.
한편, 제4도는 듀얼 코일 에러의 체크에 대한 루틴으로서 코드가 "OUT"이면 다시 이전에 동일한 "OUT"를 사용하였는가를 조사하여 동일 "OUT"를 사용하였으면 듀얼 코일 에러를 처리하고, 사용하지 않았으면 "OUT"사용 싸인을 세트한다.
또한 제5도는 타이머, 카운터 코드의 체크 루틴으로서 타이머, 카운터 코드 체크는 타이머 코드일 경우, 타이머 넘버를 분리하고 해당 타이머의 정보를 작성하며, 카운터 코드이면 카운터 넘버를 분리하고 해당 카운터의 정보를 작성한다.
그리고 제6도는 점프 코드의 체크 루틴으로서 코드가 점프 코드인지를 조사하여 점프 코드이면 점프 넘버를 분리하고 해당 넘버의 점프 테이블에 싸인을 하고 JME 코드이면 JMP 넘버를 분리하고 동일 넘버의 점프를 만나면 해당 프로그램 카운터의 값을 점프 테이블에 기입하며, 제7도는 콜 코드의 체크에 대한 루틴으로서 콜 코드 체크는 콜 코드인지 체크하여 콜 코드이면 콜 넘버를 분리하고 해당 넘버의 콜 테이블에 싸인을 하고 다음 명령의 유저 프로그램 카운터의 값을 스택에 저장하며 서브루틴 코드이면 다시 "END"코드가 있는가를 조사하여 있으면 서브루틴 넘버를 분리하고나서 동일 넘버의 콜을 만나면 해당 유저 프로그램 카운터의 값을 콜 테이블에 저장하며 "END"코드가 없으면 로직 에러 처리를 하며, 명령 코드가 "RET"코드이고 서브루틴이 있으면 서브루틴에 대한 싸인을 제거하고 없으면 로직 에러로 처리한다.
따라서 유저가 PLC 프로그램을 작성한 후 실행하기 전에 프로그램을 체크함으로써 유저 프로그램에 에러가 있을 경우 에러가 검출될 때까지의 불필요한 명령의 수행을 방지할 수 있으며, 유저 프로그램중에서 JUMP, CALL 명령을 수행할 때 점프할 유저 프로그램의 어드레스를 점프 테이블에 콜(CALL)할 서브루틴의 어드레스를 콜 테이블에 작성하고 또한 256개의 타이머 및 카운터의 사용 여부에 대한 정보를 작성함으로써 실제 런(RUN)중에 점프 테이블, 콜 테이블을 참조하고 다이렉트 어드레싱을 가능하게 할뿐만이 아니라 각각 256개의 타이머, 카운터 중에서 사용한 것만을 실행케 하여 PLC의 스캔 타임을 줄이고 동작의 효율성을 증진시킨다.

Claims (5)

  1. 유저 프로그램의 시작 주소를 유저 프로그램 카운터에 로딩하고 해당 어드레스의 명령코드를 읽어서 이를 체크하여 만일 명령 에러 또는 듀얼 코일 에러이면 명령에러 또는 듀얼 코일 에러임을 표시하고, 명령 코드가 점프, 콜 코드이면 점프, 콜 테이블을 작성하고 타이머 카운터 코드이면 타이머 카운트 정보 테이블을 작성하고, 엔드 코드이면 엔드 코드가 있다는 플랙을 세팅하며, 상기의 체크과정이 완료되면 유저 프로그램 카운터의 다음 명령의 어드레스를 로딩하고 그 어드레스가 마지막 어드레스이면 다시 엔드 코드가 있는지를 조사하여 있으면 유저 프로그램 체크 과정을 종료하고 없으면 "END"가 빠져있음을 표시한 후 유저 프로그램 체크 과정을 종료하며, 유저 프로그램 카운터의 어드레스가 마지막 어드레스보다 적으면 상기 유저 프로그램 카운터가 지정하는 어드레스를 읽어서 코드를 해석하는 상기의 과정을 반복하는 것을 특징으로 하는 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법.
  2. 제1항에 있어서, 상기 듀얼 코일 에러의 체크는 코드가 "OUT"이면 다시 이전에 동일한 "OUT"를 사용하였는가를 조사하여 동일 "OUT"를 사용하였으면 듀얼 코일 에러를 처리하고, 사용하지 않았으면 "OUT"사용 싸인을 세트하는 것을 특징으로 하는 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법.
  3. 제1항에 있어서, 상기 타이머, 카운터 코드 체크는 타이머 코드일 경우 타이머 넘버를 분리하고 해당 타이머의 정보를 작성하며, 카운터 코드이면 카운터 넘버를 분리하고 해당 카운터의 정보를 작성하는 것을 특징으로 하는 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법.
  4. 제1항에 있어서, 상기 점프 코드 체크 루틴은 코드가 점프 코드인지를 조사하여 점프 코드이면 점프 넘버를 분리하고 해당 넘버의 점프 테이블에 싸인을 하고 JME 코드이면 JMP 넘버를 분리하고 동일 넘버의 점프를 만나면 해당 프로그램 카운터의 값을 점프 테이블에 기입하는 것을 특징으로 하는 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법.
  5. 제1항에 있어서, 콜 코드 체크는 콜 코드인지 체크하여 콜 코드이면 콜 넘버를 분리하고 해당 넘버의 콜 테이블에 싸인을 하고 다음 명령의 유저 프로그램 카운터의 값을 스택에 저장하며 서브루틴 코드이면 다시 "END"코드가 있는가를 조사하여 있으면 서브루틴 넘버를 분리하고나서 동일 넘버의 콜을 만나면 해당 유저 프로그램 카운터의 값을 콜 테이블에 저장하며 "END"코드가 없으면 로직 에러 처리를 하며, 명령 코드가 "RET"코드이고 서브루틴이 있으면 서브루틴에 대한 싸인을 제거하고 없으면 로직 에러로 처리하는 것을 특징으로 하는 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법.
KR1019910016136A 1991-09-16 1991-09-16 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법 KR940005814B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019910016136A KR940005814B1 (ko) 1991-09-16 1991-09-16 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019910016136A KR940005814B1 (ko) 1991-09-16 1991-09-16 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법

Publications (2)

Publication Number Publication Date
KR930006523A KR930006523A (ko) 1993-04-21
KR940005814B1 true KR940005814B1 (ko) 1994-06-23

Family

ID=19319997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910016136A KR940005814B1 (ko) 1991-09-16 1991-09-16 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법

Country Status (1)

Country Link
KR (1) KR940005814B1 (ko)

Also Published As

Publication number Publication date
KR930006523A (ko) 1993-04-21

Similar Documents

Publication Publication Date Title
KR940005814B1 (ko) 프로그래머블 로직 콘트롤러의 유저 프로그램 체크 방법
KR20080030319A (ko) 컴퓨터시스템 및 그 제어방법
JPH05297911A (ja) シーケンスコントローラ用シーケンス制御回路
JPS5826043B2 (ja) プロセツサのリセツト方式
KR0160681B1 (ko) 로봇 제어방법
JPS63217433A (ja) プログラム実行制御方式
JPH04178734A (ja) プログラム言語処理装置
JP3494350B2 (ja) プログラマブルコントローラ
JPS63101966A (ja) ベクトル処理装置
JPH0353348A (ja) マイクロプログラムのデバッグ方式
JPS6072029A (ja) 命令処理方式
JPS63163543A (ja) 情報処理装置
JPS59218555A (ja) マイクロプログラム制御装置
JPH04205144A (ja) マイクロプロセッサ
JPS63292338A (ja) 最適化プログラムデバツグ方式
JPS6225341A (ja) デバツグ装置
JPH01222327A (ja) プログラム実行制御方式
JPH02242442A (ja) プログラムデバッグ方式
JPH01260537A (ja) 機器制御プロセッサ回路
JPS5935241A (ja) 割込み制御方式
JPH03219303A (ja) 数値制御装置
JPS62256137A (ja) コンパイラの初期値設定方式
JPH04332050A (ja) 再起動時中断点からの再開可能なデバガ
JPS6462701A (en) Programmable controller
JPH02103604A (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
A201 Request for examination
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: 20110328

Year of fee payment: 18

EXPY Expiration of term