[카테고리:] PLC 기초

PLC 기초 카테고리에서는 PLC 디바이스, 입출력 신호, 래더 로직, ST 언어, 스캔 동작, SET/RST, FOR-NEXT, 인덱스 레지스터처럼 자동제어 실무의 기본이 되는 내용을 정리합니다.

  • [실무] PLC 타이머(T)·카운터(C)는 비트일까 워드일까?

    PLC에서 비트(X, Y, M)와 워드(D)는 따로 배우지만, 실무에서는 이 둘의 성격이 섞인 디바이스를 더 자주 만납니다. 바로 타이머(T)카운터(C)입니다. “시간 재고 횟수 세는 거 아니야?”라고 간단히 생각했다가 로직이 꼬여 밤새는 경우가 생각보다 많습니다. 이 포스팅 보고 불필요한 삽질은 피합시다.

    [한 줄 직설] “타이머와 카운터는 껍데기는 비트(접점)인데, 속알맹이는 워드(데이터)인 녀석들입니다. 이 이중성을 이해해야 제어가 됩니다.”

    ※ 본 글은 미쓰비시 MELSEC Q/R 시리즈 및 GX Works2/3 기준입니다.

    1. T (타이머, Timer): “시간 지연용 디바이스”

    특정 조건이 만족된 후, 설정한 시간이 지나면 신호를 내보냅니다.

    • 비트(Bit)의 성격: 설정 시간이 다 되면 접점(T0)이 살아나서 다음 로직을 살립니다.
    • 워드(Word)의 성격: 현재 시간이 얼마나 흘렀는지 수치(T0의 현재값)로 보여줍니다.

    ※ 실무 포인트 타이머는 보통 코일에 OUT T0 K100처럼 설정합니다. K100은 10초(0.1초 단위 기준)입니다. 만약 0.01초 단위 고속 타이머가 필요하면 OUTH T0 K100처럼 명령어가 달라집니다. (고속 타이머는 CPU 설정에 따라 지원 여부가 다르므로 매뉴얼 확인이 필요합니다.)

    2. C (카운터, Counter): “숫자 세기용 디바이스”

    입력 신호가 들어온 횟수를 세어서 설정값에 도달하면 신호를 줍니다.

    • 비트(Bit)의 성격: 카운트가 다 차면 접점(C0)이 붙습니다.
    • 워드(Word)의 성격: 현재 몇 번 찍혔는지(C0의 현재값)를 데이터로 가지고 있습니다.

    ※ 실무 포인트

    카운터는 타이머와 달리 ‘리셋(RST)’이 필수입니다. 숫자가 다 차서 접점이 살고 나면, 강제로 RST C0를 해주지 않는 이상 다시 0으로 돌아가지 않습니다.


    💡 [현장 팁] T, C도 MOV가 됩니다

    T, C는 접점처럼 쓰지만 안에 수치값이 들어있습니다. 그래서 MOV T0 D100처럼 현재값을 읽거나 다른 디바이스로 넘기는 연산이 가능합니다. 단순히 켜고 끄는 게 아니라 ‘데이터’로 다루는 것이 핵심입니다.

    🔥 [실무 팁] T, C 쓸 때 가장 많이 하는 실수

    ① 타이머는 조건이 꺼지면 ‘0’으로 돌아갑니다

    타이머는 입력 조건이 꺼지는 순간 현재값이 0으로 초기화됩니다. 즉, 조건이 유지되어야만 시간이 누적됩니다. “9초까지 쟀는데 왜 안 켜지지?” 하고 찾는 경우, 중간에 입력 조건이 미세하게 끊기는 경우가 대부분입니다. 이럴 땐 유지력이 있는 적산 타이머(ST)를 검토해야 합니다.

    ② 카운터는 입력이 끊겨도 값을 유지합니다

    카운터는 타이머와 달리 입력이 끊겨도 현재값을 기억합니다. 리셋(RST)을 하기 전까지 값은 계속 남아 있습니다. 장비를 껐다 켰는데 카운터가 그대로라면 리셋 로직이 빠졌거나 래치(Latch) 영역 설정을 확인하십시오.

    ③ 터치(HMI)에서 설정값 관리하기

    T0 K100처럼 상수를 쓰면 현장에서 시간을 못 바꿉니다.

    ※ D100 같은 워드 디바이스 개념이 익숙하지 않다면 아래 글부터 먼저 보세요.

    👉 [실무] D·W·R·Z 데이터 구조와 용도 제대로 이해하기

    노트북 들고 설비 안으로 들어가야 하죠. T0 D100처럼 워드 디바이스(D)를 할당하면 터치스크린에서 작업자가 직접 시간을 수정할 수 있어 대응이 훨씬 편해집니다.


    💡 실무에서 자주 함께 쓰는 데이터 명령어

    타이머·카운터의 현재값은 MOV, BMOV, FMOV 같은 데이터 명령어와 함께 자주 사용됩니다. 예를 들어 현재 시간을 별도로 저장하거나, 여러 설정값을 한 번에 초기화할 수 있습니다. 각 명령어의 구체적인 활용법은 다음 글에서 자세히 다루겠습니다.

    결론: T/C는 접점으로 쓰고, 값으로 관리한다

    타이머와 카운터는 단순한 보조 기능이 아닙니다. 조건 판단용 접점이면서 동시에 데이터를 가진 핵심 디바이스입니다. 이 구조를 이해하면 이후 데이터 전송 명령어와 시퀀스 설계가 훨씬 쉬워집니다.


    [다음 포스팅 예고]

    타이머와 카운터가 값을 가진다는 건, 결국 그 데이터를 자유롭게 움직일 수 있다는 뜻입니다. 데이터를 복사하고, 채우고, 한 번에 옮기는 핵심 명령어 3대장을 알아보겠습니다.

    👉 [실무] MOV·BMOV·FMOV로 래더 줄이는 방법

  • [실무] SM·SD 잘못 건드리면 로직 충돌로 장비 멈춘다


    PLC 프로그래밍을 하다 보면 이런 순간이 반드시 옵니다. “이거 항상 ON 되어 있는 접점 없나?” “지금 에러 뭐 때문에 장비가 선 거야?”

    이때 사용하는 것이 바로 PLC가 미리 정의해 둔 특수 디바이스(SM, SD)입니다.

    [한 줄 직설] “SM/SD를 모르는 건 계기판 안 보고 운전하는 것과 같습니다. 장비 상태를 읽고 제어하는 가장 빠른 길입니다.”

    ※ 본 글은 미쓰비시 MELSEC Q/R 시리즈 및 GX Works2/3 기준입니다. 시리즈마다 번호가 다를 수 있으니 반드시 매뉴얼을 확인하십시오.

    (더 보기…)
  • [실무] D·W·R·Z 데이터 구조와 용도 제대로 이해하기

    비트 디바이스가 ON/OFF 신호를 담당했다면, 이번에 다룰 워드(Word) 디바이스는 수치와 데이터를 처리하는 ‘공장의 장부’입니다. 구형 모델부터 최신 기종까지 관통하는 워드 활용 핵심 원칙을 정리해 드립니다.

    [한 줄 직설]

    “비트가 스위치라면 워드는 숫자를 담는 바구니입니다. 바구니 크기(16bit)와 주소 체계만 정확히 이해해도 데이터 혼선을 크게 줄일 수 있습니다.”

    ※ 본 글은 미쓰비시 MELSEC Q/R 시리즈 및 GX Works2/3 기준이며, CPU 모델 및 파라미터 설정에 따라 동작이 달라질 수 있습니다.


    1. D (데이터 레지스터, Data Register): “가장 보편적인 만능 장부”

    PLC 내부에서 숫자를 저장할 때 가장 많이 사용하는 디바이스입니다.

    • 주요 역할: 생산 수량 관리, 타이머/카운터 설정값 변경, 서보 위치 데이터 저장
    • 데이터 구조: 기본 16비트(-32,768 ~ 32,767) 단위이며, 큰 숫자는 32비트(Double Word)로 묶어 처리합니다.
    • 실무 포인트: 파라미터에서 Latch Range(래치 범위)를 설정해야 전원 OFF 시에도 값이 유지됩니다. 설정을 누락하면 전원 재투입 시 ‘0’으로 초기화되니 주의가 필요합니다.
    • 참고: D레지스터 용량은 CPU 모델마다 다르므로 설계 전 가용 범위를 먼저 확인하십시오.

    2. W (링크 레지스터, Link Register): “통신 전용 공유 장부”

    네트워크(CC-Link, Ethernet 등)를 통해 다른 PLC, HMI(터치), PC와 데이터를 주고받을 때 주로 사용합니다.

    • 주요 역할: 장비 간 데이터 공유, 터치스크린 수치 표시
    • 특징: W 디바이스는 16진수(Hex) 주소를 사용합니다. W9 다음이 WA로 넘어가기 때문에, 이 규칙을 모르면 주소 할당이 밀려 데이터가 꼬이는 사고가 자주 발생합니다.

    3. R (파일 레지스터, File Register): “대용량 보존 장부”

    D레지스터 용량이 부족하거나 대규모 레시피 데이터를 보관할 때 유용합니다.

    • 주요 역할: 생산 이력(Log) 관리 및 모델별 레시피(Recipe) 저장
    • 비유: 제품 종류에 따라 바뀌는 설정값 세트(속도, 위치 등)를 미리 저장해두는 저장고와 같습니다.
    • 특징: 일반 메모리와 별도 영역을 사용하며, 전원 OFF 시에도 데이터 보존성이 우수한 편입니다.

    4. Z (인덱스 레지스터, Index Register): “주소 가변 포인터”

    상황에 따라 읽고 쓰는 주소를 가변적으로 바꿀 때 사용하는 보조 장치입니다.

    • 주요 역할: 배열(Array) 처리, 반복문 제어, 주소 간접 지정
    • 원리: Z가 5일 때, D100Z를 지정하면 실제로는 D(100+5) = D105를 가리키게 됩니다. 대량의 데이터를 효율적으로 관리할 때 필수적인 기능입니다.

    [실무 포인트] 워드 디바이스를 비트 단위로 활용하는 법

    PLC 시리즈 및 설정에 따라 워드 디바이스를 비트 단위로 쪼개어 제어할 수 있습니다.

    (참고 : [실무] X·Y·M·L·B 트러블 없이 구분하는 핵심 기준)

    • 표기법: [주소].[비트번호] (예: D0.0, D0.F, W10.5)
    • 장점:
      1. 통신 효율: 에러 16개를 D100.0~D100.F에 할당하면, 상위 시스템은 D100 워드 하나만 읽어도 16개 상태를 한 번에 파악할 수 있습니다.
      2. 리소스 절약: 내부 릴레이(M)가 부족할 때 남는 워드 영역을 비트 접점처럼 활용 가능합니다.
    • 주의사항: 동일 주소를 숫자 저장(MOV)과 비트 제어(SET/OUT)로 혼용하지 않도록 메모리 맵을 명확히 구분해야 사고를 막을 수 있습니다.

    💡 워드 디바이스 비교 가이드

    디바이스주소 체계전원 OFF 시 보존실무 핵심 용도
    D10진수파라미터 설정에 따름범용 데이터 저장, 비트 지정(D.n) 활용
    W16진수파라미터 설정에 따름통신 및 네트워크 데이터 공유 전용
    R10진수보존에 유리함대용량 레시피, 모델 정보 보관
    Z10진수초기화됨주소 간접 지정 (포인터 역할)

    결론: 데이터 구조가 정밀 제어의 시작입니다

    워드 디바이스의 특성을 정확히 이해하면 설계의 질이 달라집니다. 특히 16진수 주소 관리와 비트 지정 방식을 능숙하게 다루는 것이 실무 역량의 핵심입니다. 데이터를 제대로 제어하지 못하면 로직은 돌아가도 이력 관리와 정밀 제어 단계에서 반드시 한계에 부딪히게 됩니다.

    ※ 타이머(T)와 카운터(C)는 워드(현재값)와 비트(접점) 성격을 모두 갖춘 복합 디바이스입니다. 아래 글에서 실무 기준으로 따로 정리했습니다.

    👉 [실무] PLC 타이머(T)·카운터(C)는 비트일까 워드일까?

    [다음 포스팅 예고]

    SM, SD 같은 특수 디바이스를 잘못 설정하면 원인 파악이 어려운 오동작이나 장비 정지의 원인이 됩니다. 다음 글에서는 실제 현장 활용 기준을 잡아드리겠습니다.

    👉 [실무] SM·SD 잘못 건드리면 로직 충돌로 장비 멈춘다 (다음 글에서 다룹니다)