PLC Interrupt란?|Scan과 별도로 긴급 작업을 처리하는 원리
PLC Interrupt는 일반 Scan Cycle과 별도로 긴급한 제어 작업을 우선 처리하는 기능입니다. 인터럽트 발생 원리부터 주기·입력 Interrupt, 일반 프로그램과의 차이, 사용 시 주의사항까지 쉽게 알아봅니다.
PLC는 일반적으로 입력 상태를 확인하고 프로그램을 실행한 뒤 출력을 갱신하는 과정을 반복합니다. 이를 **Scan Cycle(스캔 사이클)**이라고 합니다.
하지만 모든 제어를 일반적인 Scan 순서에만 의존할 수 있는 것은 아닙니다. 고속 센서의 짧은 신호를 즉시 처리하거나 일정한 시간 간격으로 특정 연산을 실행해야 하는 경우처럼 현재 실행 중인 프로그램보다 우선적으로 처리해야 하는 작업이 발생할 수 있습니다.
이때 사용하는 기능이 **PLC Interrupt(인터럽트)**입니다.
Interrupt는 설정된 조건이나 이벤트가 발생했을 때 일반 프로그램의 실행 흐름을 잠시 중단하고 미리 지정한 프로그램을 우선 실행한 뒤 다시 원래 프로그램으로 돌아가는 방식입니다.
PLC Interrupt란 무엇이며 왜 필요할까?
PLC Interrupt란 일반 프로그램의 Scan 순서와 별도로 특정 조건이 발생했을 때 지정된 프로그램을 우선 실행하도록 하는 기능입니다.
PLC는 기본적으로 프로그램을 위에서 아래 방향으로 순차적으로 처리합니다. 프로그램 마지막까지 실행하면 다시 입력 상태를 확인하고 같은 과정을 반복합니다.
예를 들어 PLC의 한 번의 Scan에 10ms가 필요하다고 가정해 보겠습니다.
일반 프로그램만 사용한다면 특정 입력이 발생하더라도 PLC가 해당 입력을 확인하는 시점까지 어느 정도 시간이 필요할 수 있습니다.
특히 입력 신호가 매우 짧게 발생했다가 사라진다면 일반적인 Scan 방식만으로는 원하는 방식으로 처리하기 어려운 상황도 생길 수 있습니다.
Interrupt는 이러한 문제를 보완하는 데 사용됩니다.
설정된 Interrupt 조건이 발생하면 PLC는 일반 프로그램 실행 도중이라도 해당 이벤트를 확인하고 지정된 Interrupt Program 또는 Interrupt Routine을 우선 처리할 수 있습니다.
따라서 Interrupt의 핵심은 단순히 프로그램을 빠르게 실행하는 것이 아니라 특정 이벤트에 대한 응답 시점을 일반 Scan보다 정밀하게 관리하는 것이라고 이해하면 좋습니다.
다만 실제 Interrupt 지원 방식과 응답시간, 우선순위 구조는 PLC 제조사와 CPU 모델에 따라 달라질 수 있습니다.
PLC Scan과 Interrupt는 어떻게 다를까?
PLC Interrupt를 이해하려면 일반적인 Scan Cycle과 비교하는 것이 가장 쉽습니다.
일반적인 PLC의 프로그램 처리는 개념적으로 다음과 같이 생각할 수 있습니다.
입력 확인 → 사용자 프로그램 실행 → 출력 처리 → 시스템 처리 → 다음 Scan
PLC는 이러한 과정을 매우 빠른 속도로 반복합니다.
일반 프로그램은 기본적으로 Scan 순서에 따라 실행되므로 어떤 명령이 실행되는 시점도 전체 Scan Cycle의 영향을 받습니다.
반면 Interrupt는 특정 이벤트를 기준으로 실행됩니다.
예를 들어 일반 프로그램을 실행하고 있는 도중 Interrupt 조건이 발생하면 현재 실행 상태를 보존한 뒤 Interrupt Routine으로 이동합니다.
Interrupt 프로그램이 끝나면 이전에 실행하던 프로그램으로 돌아가 남은 작업을 계속 처리하는 방식입니다.
| 구분 | 일반 Scan Program | Interrupt Program |
|---|---|---|
| 실행 기준 | 반복적인 Scan Cycle | 지정된 이벤트 또는 조건 |
| 실행 방식 | 정해진 순서대로 반복 | 조건 발생 시 우선 실행 |
| 주요 목적 | 일반적인 설비 제어 | 시간 민감 작업 처리 |
| 실행 빈도 | Scan마다 실행 | Interrupt 발생 시 실행 |
| 프로그램 설계 | 전체 제어 로직 중심 | 필요한 작업 중심으로 간결하게 구성 |
여기서 주의할 점은 Interrupt가 모든 프로그램보다 무조건 즉시 실행된다고 단순화해서는 안 된다는 것입니다.
CPU가 처리하고 있는 명령과 Interrupt 허용 상태, Interrupt 우선순위 등에 따라 실제 응답에는 일정한 지연이 발생할 수 있습니다.
따라서 매우 정밀한 고속제어가 필요한 경우에는 사용하는 PLC의 CPU 사양과 제조사 매뉴얼에서 Interrupt 응답시간을 확인해야 합니다.
PLC Interrupt에는 어떤 종류가 있을까?
PLC에서 제공하는 Interrupt 종류는 제조사와 CPU에 따라 다르지만 원리를 이해하기 위해 대표적인 형태를 구분하면 다음과 같습니다.
입력 Interrupt
특정 입력 신호가 발생했을 때 Interrupt Program을 실행하는 방식입니다.
예를 들어 센서 신호의 상승 또는 하강과 같은 특정 입력 변화를 이벤트로 설정할 수 있습니다.
일반적인 입력 처리보다 빠른 응답이 필요한 경우 활용할 수 있으며 고속으로 이동하는 물체의 감지나 특정 위치 신호 처리 등에 사용될 수 있습니다.
다만 일반 디지털 입력 모듈 자체의 응답속도에도 한계가 있기 때문에 매우 짧은 펄스를 처리해야 한다면 고속 입력이나 고속카운터 등 별도의 기능을 함께 검토해야 합니다.
주기 Interrupt
설정한 시간 간격마다 특정 프로그램을 실행하는 방식입니다.
예를 들어 일정한 주기로 데이터를 계산하거나 제어값을 갱신해야 하는 경우 활용할 수 있습니다.
일반 Scan Time은 프로그램의 실행 상태 등에 따라 어느 정도 달라질 수 있기 때문에 일정한 시간 간격이 중요한 연산에서는 주기 Interrupt가 유용할 수 있습니다.
통신 및 이벤트 Interrupt
PLC에 따라 통신 데이터 수신이나 특정 시스템 이벤트가 발생했을 때 Interrupt를 실행할 수 있는 기능을 제공하기도 합니다.
단, 이러한 기능의 명칭과 지원 범위는 제조사마다 상당한 차이가 있습니다.
따라서 실제 프로그램을 작성할 때는 사용하는 PLC의 Programming Manual에서 지원되는 Interrupt 종류를 확인해야 합니다.
PLC Interrupt는 어떤 순서로 실행될까?
Interrupt의 동작을 간단한 상황으로 살펴보겠습니다.
PLC가 Main Program의 A, B, C, D 작업을 순서대로 실행하고 있다고 가정해 보겠습니다.
현재 B 작업을 처리하는 동안 설정된 Interrupt 조건이 발생했습니다.
개념적인 실행 흐름은 다음과 같습니다.
Main Program 실행 → Interrupt 발생 → 현재 실행 상태 보존 → Interrupt Program 실행 → Interrupt 종료 → 기존 Main Program으로 복귀 → 남은 프로그램 실행
즉 Interrupt가 발생했다고 해서 기존 프로그램이 처음부터 다시 실행되는 것은 아닙니다.
CPU는 필요한 실행 정보를 보존하고 Interrupt 처리가 완료된 후 원래 실행 흐름으로 복귀합니다.
이러한 구조 덕분에 일반 제어 프로그램을 계속 실행하면서도 시간적으로 중요한 작업을 별도로 처리할 수 있습니다.
하지만 Interrupt가 너무 자주 발생하면 문제가 생길 수 있습니다.
CPU는 Interrupt가 발생할 때마다 일반 프로그램을 잠시 멈추고 Interrupt Routine을 처리해야 합니다. Interrupt 실행시간이 지나치게 길거나 발생 빈도가 너무 높으면 Main Program을 처리할 시간이 줄어들 수 있습니다.
따라서 Interrupt Program은 일반적으로 필요한 작업만 수행하도록 짧고 명확하게 구성하는 것이 중요합니다.
PLC Interrupt를 사용할 때 무엇을 주의해야 할까?
Interrupt는 유용하지만 무조건 많이 사용하는 것이 좋은 프로그램 설계는 아닙니다.
첫 번째로 확인할 것은 Interrupt Program의 실행시간입니다.
Interrupt Routine 안에 복잡한 연산이나 시간이 오래 걸리는 작업을 지나치게 많이 넣으면 일반 프로그램의 Scan Time에 영향을 줄 수 있습니다.
두 번째는 공유 데이터 처리입니다.
Main Program과 Interrupt Program이 동일한 데이터나 Device를 변경한다면 실행 시점에 따라 예상하지 못한 결과가 발생할 가능성이 있습니다.
예를 들어 Main Program이 특정 데이터를 계산하는 도중 Interrupt Program에서 같은 데이터를 변경한다면 프로그램의 의도와 다른 값이 만들어질 수 있습니다.
따라서 Interrupt와 Main Program이 공유하는 데이터는 명확하게 구분하고 필요한 경우 제조사가 제공하는 데이터 보호 방법을 검토해야 합니다.
세 번째는 Interrupt 우선순위입니다.
여러 Interrupt가 동시에 또는 연속해서 발생할 수 있는 PLC에서는 우선순위가 어떻게 처리되는지 확인해야 합니다. 일부 PLC는 Interrupt의 중첩을 지원하기도 하고 제한하기도 합니다.
마지막으로 Interrupt를 비상정지와 동일한 개념으로 이해해서는 안 됩니다.
사람이나 설비의 안전을 위한 Emergency Stop 기능은 관련 안전 요구사항과 Safety PLC, 안전회로 등을 고려하여 별도로 설계해야 합니다. 일반 PLC의 Interrupt Program만으로 안전 기능을 대신한다고 생각해서는 안 됩니다.
PLC Interrupt 핵심 정리
PLC의 기본 동작은 Scan Cycle을 기반으로 하지만 모든 제어 작업을 동일한 Scan 순서로 처리하는 것이 효율적인 것은 아닙니다.
Interrupt는 특정 입력이나 시간, 이벤트가 발생했을 때 일반 Scan 흐름보다 우선하여 지정된 프로그램을 처리하고 다시 원래 프로그램으로 복귀하는 기능입니다.
고속 입력 처리나 일정한 주기의 연산처럼 실행 시점이 중요한 작업에서 유용하지만 Interrupt Routine이 길어지거나 지나치게 자주 발생하면 Main Program의 Scan에도 영향을 줄 수 있습니다.
따라서 실제 설비에 적용할 때는 Interrupt가 필요할 정도로 시간에 민감한 작업인가 → 사용하는 CPU가 해당 Interrupt를 지원하는가 → 응답시간과 우선순위는 어떻게 되는가 → Interrupt Routine을 얼마나 짧게 구성할 수 있는가를 순서대로 검토하는 것이 좋습니다.
PLC Interrupt를 제대로 이해하려면 다음 단계로 PLC Scan Time, PLC Watchdog Timer, PLC High-Speed Counter를 함께 공부하면 PLC가 프로그램을 어떤 시간 구조로 처리하는지 이해하기 쉬워집니다.




댓글 0
첫 댓글을 남겨보세요.