
입력, Program, 출력을 반복해서 Scan한다
Process Image, Scan Time, 빠른 Pulse를 놓치는 이유, High-speed Input과 Interrupt까지 실제 Troubleshooting 관점으로 정리한다.
PLC를 처음 사용할 때는 Input이 ON되면 Ladder의 Contact도 같은 순간 ON되고 Output Coil도 즉시 바뀐다고 생각하기 쉽다. 하지만 일반적인 PLC CPU는 정해진 순서로 Input을 읽고 Program을 실행한 뒤 Output을 갱신하는 Cycle을 반복한다.
이 구조를 이해하지 못하면 "Sensor LED는 분명 켜졌는데 PLC에서는 못 봤다", "Output Coil은 ON인데 실제 Terminal은 한 박자 늦는다" 같은 현상을 설명하기 어렵다.
1. Scan Cycle이란?
PLC CPU가 반복적으로 수행하는 한 번의 작업주기를 Scan Cycle이라고 한다. Siemens S7 계열 설명도 Input을 읽고, User Program을 실행하고, Communication과 Diagnostics를 처리한 뒤 Output을 갱신하는 반복구조로 설명한다.
CPU와 설정에 따라 실제 순서는 조금 다를 수 있지만 핵심은 Program이 Physical I/O를 매 Instruction마다 직접 읽는 것이 아니라 Process Image를 사용하는 경우가 많다는 점이다.
2. Process Image가 왜 필요한가?
Program 실행 중간에 Physical Input이 바뀌면 같은 Scan 안에서도 앞부분 Logic과 뒷부분 Logic이 서로 다른 Input 값을 볼 수 있다. Process Image는 Scan 시작 시 Input 상태를 Snapshot처럼 저장해 한 Cycle 동안 일관된 값을 사용하게 한다.
3. Scan Time은 일정한 숫자가 아닐 수 있다
User Program 실행시간, Communication Load, Interrupt, Diagnostics와 CPU Background Task에 따라 Scan Time은 Cycle마다 조금씩 달라질 수 있다.
그래서 평균 Scan Time만 보지 말고 Maximum Scan Time도 확인하는 것이 중요하다.
4. 10ms Scan이면 5ms Pulse는 놓칠 수 있다
Digital Input이 5ms만 ON되고 다음 Scan이 오기 전에 다시 OFF되면 CPU가 Process Image를 읽는 순간에는 OFF일 수 있다.
5. Input Filter가 Scan Time보다 더 큰 경우도 있다
산업용 PLC Digital Input에는 Noise를 줄이기 위한 Hardware 또는 Software Filter가 들어갈 수 있다. 예를 들어 Input Filter가 10ms면 3ms Pulse는 CPU Scan이 빨라도 사라질 수 있다.
따라서 빠른 Proximity Sensor나 Encoder Pulse를 일반 DI에 연결하기 전에 Input Filter와 Minimum Pulse Width를 확인한다.
6. 빠른 Signal은 High-speed Input을 사용한다
Encoder A/B, Photo Sensor Count, 짧은 Trigger처럼 Scan Cycle에 의존하면 안 되는 Signal은 High-speed Counter나 Hardware Capture를 사용하는 것이 일반적이다.
이 경우 Input Edge를 CPU Main Scan과 별개 Hardware에서 Count하고 Program에서는 누적값을 읽는다.
7. Interrupt는 일반 Scan을 중단하고 우선 실행할 수 있다
일부 PLC는 Hardware Interrupt, Time Interrupt, Cyclic Interrupt를 지원한다. 특정 Event가 발생하면 Main Program보다 우선해 지정된 Routine을 실행할 수 있다.
Interrupt 실행시간이 길어지면 Main Scan Jitter와 전체 CPU Load가 커진다. 정말 Timing이 필요한 Logic만 분리한다.
8. Output Coil이 ON되었다고 Terminal이 같은 순간 바뀌는 것은 아니다
일반 Process Image Output은 Program에서 Memory 값을 바꾸고 Scan 끝이나 지정된 Update Timing에 Physical Output으로 반영된다.
그래서 매우 빠른 Pulse Output은 일반 Ladder Coil 대신 PTO, PWM, High-speed Output 같은 Hardware 기능을 사용한다.
9. Program 순서도 한 Scan 안에서는 중요하다
같은 Memory Bit를 Program 앞부분에서 ON하고 뒷부분에서 OFF하면 최종값은 뒤 Logic에 의해 결정될 수 있다.
"PLC는 위에서 아래로 읽는다"는 설명은 단순하지만, 실제 Debug에서는 Duplicate Coil과 여러 Routine에서 같은 Tag를 쓰는지 확인해야 한다.
10. Timer도 Scan과 완전히 무관하지 않다
현대 PLC Timer는 System Clock 기반으로 동작하는 경우가 많아 단순히 Scan 횟수를 세는 것은 아니지만, Timer 조건을 평가하고 Output Logic을 실행하는 시점은 Scan과 관계가 있다.
정확한 1ms Event 처리가 필요하다면 일반 TON 하나에 기대기보다 PLC의 Task와 Interrupt 기능을 확인한다.
11. PLC-PC 통신에서도 Scan Time을 고려해야 한다
PC가 Modbus TCP로 Command를 10ms마다 보내더라도 PLC Program이 50ms Task에서 그 Data를 처리하면 실제 Command 반응은 그보다 느릴 수 있다.
반대로 PLC가 1ms Scan이라고 해서 Ethernet Packet이 항상 1ms 안에 처리되는 것도 아니다. Communication Task와 Network Stack이 별도로 동작할 수 있다.
12. Heartbeat Timeout도 Scan과 통신주기를 함께 본다
AMR PLC-PC Interface에서 Heartbeat를 설계할 때는 "1초 동안 Data가 안 오면 Fault" 같은 Timeout만 볼 것이 아니라 PLC Scan, PC Update Period, Network Jitter와 일시적인 CPU Load를 고려해야 한다.
Timeout을 너무 짧게 하면 정상상태에서도 False Fault가 나고, 너무 길면 실제 Communication Loss를 늦게 감지한다.
13. Sensor LED는 켜졌는데 PLC Input이 안 보일 때
| 가능 원인 | 확인 방법 |
|---|---|
| Pulse가 너무 짧음 | Oscilloscope 또는 Counter로 Pulse Width 측정 |
| Input Filter가 큼 | Module Parameter 확인 |
| NPN/PNP 배선 오류 | COM과 Current Path 확인 |
| Process Image 외 주소 | I/O Mapping과 Immediate Access 확인 |
| Program에서 덮어씀 | Cross Reference와 Duplicate Logic 확인 |
14. Scan Time을 줄이는 것보다 Task를 나누는 것이 좋을 때가 있다
모든 Logic을 1ms로 돌리면 CPU가 낭비된다. Safety와 Motion이 아닌 HMI, Logging, Communication Diagnostics는 느린 주기로도 충분할 수 있다.
빠른 Control과 Pulse Handling처럼 Timing이 중요한 Logic을 배치한다.
Human Interface와 통계, 상태표시는 느린 Cycle로 분리해 CPU Load를 줄인다.
15. Scan Time을 측정할 때 보는 값
- Current Scan Time
- Maximum Scan Time
- Task Period
- Input Filter Time
- Minimum Detectable Pulse
- Communication Update Period
- High-speed Counter 최대 Frequency
- Interrupt 실행시간
- Watchdog Time
- CPU Load
16. Troubleshooting은 Signal부터 CPU까지 시간축으로 본다
Sensor가 언제 ON되는지, Input Module이 언제 인식하는지, CPU가 언제 Process Image를 갱신하는지, Program이 언제 조건을 평가하는지, Output이 언제 Physical Terminal로 나가는지 순서대로 보면 원인이 보인다.
PLC Scan Time은 단순한 CPU 속도 숫자가 아니다. Input Filter, Process Image, Program Task, Communication과 Output Update가 합쳐져 실제 반응시간을 만든다. 짧은 Pulse와 정확한 Timing이 필요한 Signal은 일반 Scan Logic이 아니라 High-speed I/O나 Interrupt를 검토해야 한다.
같이 보면 좋은 TerryPack 글
'【회로-전장 실무】' 카테고리의 다른 글
| 【회로-전장 실무】 근접센서 종류와 차이 | 유도형, 정전용량형, 포토센서 선정 방법 (0) | 2026.10.19 |
|---|---|
| 【회로-전장 실무】 모터 전압과 전류의 차이 | 토크, RPM, 출력과 모터 선정 (0) | 2026.10.19 |
| 【회로-전장 실무】 MOSFET 선정 방법 | VDS, ID, RDS(on), Gate Charge, SOA 실무 (0) | 2026.10.16 |
| 【회로-전장 실무】 전류센서 측정 방법 | Shunt, Hall Sensor, Isolated Current Sensor 차이 (1) | 2026.10.11 |
| 【회로-전장 실무】 Flyback Diode, TVS, RC Snubber 차이 | Relay와 Solenoid 역기전력 보호 (0) | 2026.10.11 |