PLC Engineer's Field Notes

Practical solutions for industrial automation


[실무] 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로 래더 줄이는 방법