PLC BASICS · SCAN

PLC Scan Cycle: 입력을 읽고, 로직을 실행하고, 출력을 갱신하는 순서

PLC 로직이 “위에서 아래로 실행된다”는 말만으로는 부족합니다. 입력을 언제 읽고 출력을 언제 반영하는지까지 이해해야 같은 스캔 안에서 값이 왜 달라지는지 설명할 수 있습니다.

Scan CycleInput ImageProgramOutput

한 번의 Scan은 세 단계로 생각하면 쉽습니다

학습 관점에서는 입력 상태를 읽고 → 프로그램을 실행하고 → 출력 상태를 갱신하는 흐름으로 이해하면 좋습니다. 실제 CPU 내부 동작은 기종과 기능에 따라 더 복잡할 수 있지만, 이 모델만 알아도 대부분의 초급 로직 혼동을 설명할 수 있습니다.

One scan
1 · INPUT READ→2 · PROGRAM→3 · OUTPUT UPDATE→NEXT SCAN

프로그램 안에서도 명령 순서는 중요합니다

같은 D레지스터를 앞쪽 rung에서 MOV로 바꾸고 뒤쪽 rung에서 비교하면, 뒤쪽 비교는 이미 바뀐 값을 볼 수 있습니다. 그래서 “같은 조건인데 왜 결과가 달라졌지?”라는 문제는 실제로는 스캔 순서 문제인 경우가 많습니다.

물리 입력과 프로그램 내부 값은 같은 개념이 아닙니다

프로그램이 현재 스캔에서 참조하는 입력 상태와 현장에서 접점이 바뀌는 실제 순간 사이에는 경계가 있습니다. 빠른 신호가 일반 입력 Scan보다 짧다면 고속 입력이나 인터럽트 같은 별도 기능이 필요한 이유도 여기서 나옵니다.

디버깅할 때 볼 순서

  • 조건이 어느 rung에서 먼저 바뀌는지
  • 같은 M/D를 여러 곳에서 쓰는지
  • 출력 코일을 중복으로 쓰는지
  • 입력 신호 폭이 Scan보다 짧지 않은지
  • 온라인 모니터 표시가 실제 갱신 시점과 어떻게 관계되는지
ENGINEER DISCUSSION

현업에서는 어떻게 쓰시나요?

회로·인터록·주소·시운전 관점의 반론과 개선안을 남겨주세요. 모든 글과 답글은 승인 후 공개됩니다.

서버 rate limit · 승인제 · 공개 전 검토

엔지니어 토론을 불러오는 중…