본문 바로가기
산업 자동화 기술(PLC편)/PLC프로그래밍

[PLC 프로그래밍 4편 ] PLC 명령어 종류와 사용법 총정리

by eins-solutionlab 2026. 8. 1.

PLC(Programmable Logic Controller)를 제대로 활용하기 위해서는 PLC 명령어를 이해하는 것이 가장 중요합니다.

입출력 배선만 연결한다고 자동화가 이루어지는 것이 아니라, 다양한 명령어를 이용하여 원하는 동작을 프로그램으로 구현해야 합니다.

이번 글에서는 PLC 프로그래밍에서 가장 많이 사용하는 기본 명령어와 그 역할을 알아보겠습니다.

PLC를 처음 배우는 입문자부터 실무를 준비하는 분들까지 쉽게 이해할 수 있도록 정리했습니다.

명령어는 PLC 제조사 마다 차이가 있으므로 LS산전의 XGK모델을 기반으로 설명을 하도록 하겠습니다.

PLC 명령어란?

PLC 명령어는 입력 신호를 분석하고 출력 장치를 제어하기 위한 프로그래밍 명령입니다.

쉽게 말해 컴퓨터의 프로그래밍 언어처럼 PLC도 다양한 명령어를 조합하여 자동화 설비를 제어합니다.

대부분의 PLC는 래더(Ladder Diagram) 방식으로 프로그램을 작성하며, 각 명령어는 접점(Contact)과 코일(Coil), 데이터 처리 명령 등으로 구성됩니다.

1. 접점(Contact) 명령어

접점이란 데이터 메모리에 저장되어 있는 비트의 상태 정보의 데이터를 읽어 그 상태를 좌측에서 우측으로 전달하는 프로그래밍 기호 입니다.

XGK PLC 프로그래밍에서 사용하는 접점의 종류는 평상시 열린 접점(a접점), 평상시 닫힌 접점(b접점), 양변환 검출 접점(P접점), 음변환 검출 접점(N접점)이 있으며, 각 접점의 동작 특성은 다음과 같습니다.

구분 기호 설명
평상시 열린 접점
데이터 메모리에 저장된 비트 데이터를 읽어 그 상태를 우측으로 전달 합니다.
평상시 닫힌 접점
데이터 메모리에 저장된 비트 데이터를 읽어 상태를 반전 시킨 후 그 상태를  우측으로 전달 합니다.
양변환 검출 접점
저장된 비트가 OFF에서 변경될때 1 스캔 동안 ON 상태를 우측으로 전달 합니다.
음 변환 검출 접점
저장된 비트가 ON에서 변경될때 1 스캔 동안 ON 상태를 우측으로 전달 합니다.

2. 출력(Coil) 명령어

코일 명령어는 연산의 결과가 비트로 출력될때, 출력된 연산 결과를 지정된 비트 메모리에 저장하는 프로그래밍 기호 입니다.

XGK PLC 프로그램에서 사용하는 코일의 종류는 코일, 역코일, 셋코일, 양변환 검출코일(P코일), 음변환 검출 코일(N코일)이 있으며, 각 코일의 동작 특성은 다음과 같습니다.

구분 기호 설명
코일
출력된 비트 결과를  지정된 메모리에 저장 합니다.
역코일
출력된 비트 결과를 반전하여 지정된 메모리에 저장 합니다.
셋코일
조건이 만족될때 지정된 비트 메모리를 ON 시키고, 조건이 해제 되더라도 지정된 비트를 다시   
OFF 시키지 않습니다.
리셋코일
조건이 만족될때 지정된 비트 메모리를 OFF시키고, 조건이 해제 되더라도 지정된 비트를 다시 
ON시키지 않습니다.
양변환 검출 코일
연산 결과가 OFF에서 ON으로 변경될때 1 스캔 시간 동안 ON 상태를 지정된 비트에 저장 합니다.
1 스캔 시간이 경과후 지정된 비트는  OFF 됩니다.
음변환 검출 코일
연산 결과가 ON에서 OFF로 변경될때 1 스캔 시간 동안 ON상태를 지정된 비트에 저장 합니다.
1 스캔 시간이 경과후 지정된 비트는 OFF됩니다.

3. 논리 연산 명령어

PLC의 가장 기본적인 기능은 센서, 스위치 등의 디지털 입력 신호에 따라 PLC 디지털 출력 모듈의 접점을 ON/OFF 시킴으로써

출력 모듈에 연결된 부하를 구동 시키는 전원을 공급 또는 차단함으로써 부하를 구동 또는 정지시키는 것입니다.

부하를 구동 또는 정지 시키는 것은 1개의 입력 신호에 의해 제어되는 경우도 있지만 여러개의 입력 신호의 조합에 의해 제어되는

경우가 많습니다. 여러 개의 입력 신호에 의해 1개의 부하가 구동될때 각 입력 신호의 논리 연산에 의해 부하는 구동 또는 정지를 하게 됩니다.

여기에서는 PLC가 기본적으로 제공하는 비트 신호의 논리 연산에 대해 설명 합니다.

PLC는 두 개의 비트 디바이스의 상태를 읽어 논리 연산을 수행하고 그결과와 그 다음 디바이스의 상태와의 논리 연산을 수행 합니다.

3.1 논리곱(AND)연산 

논리곱(AND) 연산은 두개의 비트 디바이스의 상태를 읽어 그 중 1개의 비트 디바이스라도 0의 상태(OFF)를 가지면

0 을 출력하고, 두개의 비트 디바이스 모두 1의 상태(ON)이면 1을 출력하는 논리 연산 입니다.

즉 두 비트 디바이스의 상태에 따라 다음과 같은 결과를 출력 합니다.

 0 & 0 = 0,   0 & 1 = 0 , 1 & 0 = 0, 1 & 1 = 1

PLC에서 논리곱(AND)연산은 비트 디바이스의 수평적 연결로 이루어 지며, 조건 모두가 만족 되었을때 라는 의미가 있습니다.

 

예제) P00000, P00001 두개의 스위치가 모두 ON되었을때 P00020 LED를 ON 시키고, 두개의스위치 중 1개라도 OFF되면 LED가 OFF됩니다.

3.2 논리합(OR)연산

논리합(OR) 연산은 두개의 비트 디바이스의 상태를 읽어 그 중 1개의 디바이스라도 1의 상태(ON)이면 1을 출력하고, 두개의 비트 디바이스 모두 0의 상태(OFF)이면  0을 출력하는 논리 연산 입니다.

즉 두 비트 디바이스에 따라 다음과 같이 결과를 출력 합니다.

0 || 0 = 0, 0 || 1 = 1, 1 || 0 = 1, 1 || 1 = 1

PLC에서 논리합(OR)연산은 비트 디바이스의 수직적 연결로 이루어지며, 여러 조건 중 1개의 조건이라도 만족 되었을때 라는 의미가 있습니다.

 

예제1) P00002, P00003 두개의 스위치중 1개의 스위치라도 ON 되면 P00021 LED를 ON 시키고, 두개의 스위치가 모두 OFF 이면 LED가 OFF됩니다.

 

예제2) 논리합(OR) 과 논리곱(AND)를 이용하여 P00004 와 P00005 스위치의 XOR연산 결과를 P00022 LED로

표시 합니다. XOR연산은 두비트의 데이터가 동일하면 0, 서로 다르면 1의 결과를 출력하는 논리 연산 입니다.

실용 예제) 고수위, 중수위,저수위 3개의 센서가 부착된 탱크에 두대의 펌프를 이용하여 수위를 고수위 ~ 저수위 사이를 유지 합니다. 저수위 센서만 감지 되었을때 두 대의 펌프 모두 가동을 하고, 중 수위센서가 감지되면 1대의 펌프만 가동하며 고수위 센서 감지되면 두대의  펌프 모두 정지 합니다.

 

4. 기본 명령어

[ 전송 ]

여러개의 출력 접점을 제어할때 MOV 명령어를 사용할 경우 보다 빠르고 쉽게 프로그래밍 할수 있습니다.

5. 타이머(TIMER) 명령어

시퀸스 프로그램 중 지정된 시간 이상의 시간 동안 조건 만족을 유지할때 어떤 동작을 수행해야 하는 경우 등 시간 지연 요소가 필요할 경우 사용하는 프로그램 요소가 타이머 입니다.

대표적인 종류

  • ON Delay Timer
  • OFF Delay Timer
  • Retentive Timer

PLC 제조사마다 사용 방법은 조금씩 다르지만 기본 개념은 동일합니다.

타이머는 조건이 만족된 후 타이머 동작 특성에 따라 시간 지연 후 타이머 접점을 제어 하게 됩니다.

이후 타이머 접점을 이용하여 시퀸스 프로그램을 작성 하면 됩니다.

 

예제1) 설정값을 10으로 설정한 경우 P00000 입력 접점이 1초 이상 ON을 유지할 경우 P00020 출력 접점이 ON 되며 P00000 입력 접점이 OFF될때 P00020 출력 접점이 OFF 됩니다.

(참고로 타이머 설정값 1초는 10 으로  합니다.)

예제2) 타이머를 리셋 할때 아래와 같이 리셋코일-(R)-을 이용하여 타이머를 리셋 합니다.

타이머의 동작 특성

TON(ON Delay Timer)는 조건이 만족된  후 설정된 시간 이상 조건이 유지될때 타이머의 접점이 ON 되는 타이머로 세부 동작 사항은 다음과 같습니다.

  • 타이머의 기동 조건이 만족되면 현재값을 설정 시간 단위로 1씩 증가 시키며 현재값=설정값이 될때 타이머 접점이 ON됩니다.
  • 타이머 동작 중 기동 조건이 해제되면 현재값 = 0 이 됩니다.
  • 타이머 접점이 ON 된 상태에서 기종 조건이 해제되면 타이머 접점이 OFF 됩니다.
  • 타이며를 리셋 하면 현재값 = 0 이되며, 타이머 접점이 ON 되어 있는경우 접점은 OFF 됩니다.

TOFF(OFF Delay Timer)는 조건이 만족될때 타이머 접점이 ON되고 조건이 OFF된후 설정된 시간동안 접점이 ON 상태를 유지하는 타이머로 세부 동작 사항은 다움과 같습니다.

  • 타이머의 기동 조건이 만족되면 현재값 = 설정값이 되고 타이머 접점은 ON됩니다.
  • 타이머의 기동 조건이 해제되면 현재값을 설정 시간 단위로 1씩 감소 시키고 현재값이 0이 될때 타이머의 접점은 OFF 됩니다.
  • 타이머의 현재값이 감소하고 있는 상태에서 다시 기종 조건이 만족되면 현재값 = 설정값이 되고 접점은 ON됩니다.
  • 타이머를 리셋하면 현재값 = 0 이되면 타이머 접점이  ON되어 있는 경우 접점은 OFF 됩니다.

 

5. 카운터(COUNTER) 명령어

카운터는 조건의 만족 회수를 계수하는 프로그램 요소 입니다. 즉 조건이 만족될때 현재값을 1씩 증가 또는 감소 시켜 조건이 만족되는 회수를 누적 합니다.

XGK PLC에는 2,048개의 카운터가 있으며 기능별로 CTU, CTD,CTUD,CTR등 4종의 카운터가 있으며 1개의 카운터는 최대 65,535까지 계수 할수 있습니다.

예제1) 리셋코일( ---(R)--  ) 을 이용하여 카운터를 리셋하는 프로그램을 작성하고 카운터 접점을 이용한 프로그램을 작성 합니다.

P00000입력점점을 10번 ON 시키면 P00020 LED가 ON되며 P00001입력 접점을 ON시키면 카운터가 리셋 됩니다.

(단, 카운터는 CTU를 사용합니다.)

 

예제2) CTUD카운터 접점을 이용하고 리셋코일을 이용하여 카운터를 리셋하는 프로그램을 작성 합니다.

카운터의 동작 특성

CTU(UP Counter) UP Counter의 초기 현재값 = 0 입니다. 카운터의 동작 조건에 상승 에지가 발생(OFF→ON)할때 마다 카운터의 현재값이 1씩 증가되고 카운터의 현재값 = 설정값이 될때 카운터의 접점이 ON되는 카운터 입니다.

  • 카운터의 초기 현재값 = 0 이며 동작 조건에 상승 에지가 발생하면 현재값이 1 증가 됩니다.
  • 카운터의 현재값 = 설정값이 될때 카운터의 접점이 ON됩니다.
  • 카운터의 접점이 ON된 상태에서 동작 조건에 상승 에지가 발생하면 현재값은 1 증가 되고 접점은 ON 상태를 유지 합니다.
  • 카운터의 현재값이 65,535인 상태에서 동작 조건에 상승 에지가 발생해도 현재값은 변경되지 않습니다.
  • 카운터를 리셋하면 현재값 =0 이되며 카운터의 접점이 ON되어 있는 경우 접점은 OFF 됩니다.
  • 카운터의 현재값을 강제로 변경시킬경우 접점 상태는 변경되지 않습니다.

 

CTUD( UP/DOWN Counter) 카운터의 초기 현재값 = 0 입니다.

CYUD의 동작 조건은 상시 ON(F00099)로 사용해야 하며 명령어 편집 시 증가(UP) 및 감소(DOWN) 계수의 조건을 설정 합니다.

증가 계수의 조건에 상승 에지가 발생(OFF→ ON)할때 카운터의 현재값이 1씩 증가 되고 감소 계수의 조건에 상승 에지가 발생(OFF→ ON)할때 카운터의 현재값이 1씩 감소 됩니다.

  • 카운터의 초기 설정값 = 0 입니다.
  • 증가 계수 조건에 상승 에지가 발생하면 현재값이 1증가되고 감소 계수 조건에 상승 에지가 발생하면 현재값이 1감소 됩니다.
  • 카운터의 현재값 = 설정값이 될때 카운터의 접점이 ON 됩니다.
  • 카운터의 접점이 ON된 상태에서 중가 계수 조건에 상승 에지가 발생하면 현재값이 1 증가 되고 접점은 ON상태를 유지 합니다.
  • 카운터의 현재값 = 65,535인 상태에서 증가 계수 조건에 상승 에지가 발생해도 현재값이 변화 되지 않습니다.
  • 카운터의 현재값 = 0 인 상태에서 감소 계수의 조건에 상승 에지가 발생할때 현재값은 변화 되지 않습니다.
  • 카운터를 리셋 하면 현재값 = 0 이 되며 카운터의 접점이 ON 되어 있는 경우 접점은 OFF 됩니다.
  • 카운터의 현재값을 강제로 변경시킬 경우 접점 상태는 변경되지 않습니다.

6. 비교(Compare) 명령어

데이터 값을 비교하는 명령입니다.

대표적으로

  • 같다(=)
  • 크다(>)
  • 작다(<)

조건을 비교하여 다음 동작을 수행합니다.

예를 들어 온도가 80℃ 이상이면 냉각팬을 작동시키거나 압력이 기준값보다 높으면 경보를 발생시키는 제어에 사용됩니다.

 

8. 산술 연산 명령어

PLC도 계산이 가능합니다.

대표적인 연산은

  • ADD(더하기)
  • SUB(빼기)
  • MUL(곱하기)
  • DIV(나누기)

입니다.

생산량 계산, 속도 계산, 평균값 계산 등 다양한 자동화 시스템에서 활용됩니다.

PLC 명령어를 배우는 순서

PLC를 처음 공부한다면 다음 순서를 추천합니다.

  1. A접점 / B접점
  2. 출력(Coil)
  3. 자기유지(SET / RST)
  4. 타이머(TIMER)
  5. 카운터(COUNTER)
  6. 비교 명령
  7. 데이터 이동(MOV)
  8. 산술 연산

이 순서대로 학습하면 대부분의 자동화 프로그램을 이해할 수 있습니다.

마무리

PLC 프로그래밍은 다양한 명령어를 조합하여 원하는 자동화 기능을 구현하는 과정입니다. 처음에는 명령어가 많아 어렵게 느껴질 수 있지만, 기본 명령어만 익혀도 대부분의 산업 현장에서 사용하는 프로그램을 이해할 수 있습니다.

특히 접점, ​출력, ​타이머, ​카운터, SET/RST 명령은 PLC의 핵심이라고 할 수 있으며, 이를 충분히 연습하면 보다 복잡한 제어 프로그램도 쉽게 작성할 수 있습니다.

다음 편에서는 실제 현장에서 자주 사용하는 PLC 자기유지(Self Holding) 회로와 인터록(Interlock) 회로 작성 방법​을 예제를 통해 자세히 알아보겠습니다.