Tín hiệu Interrupt trong PLC: Lập trình, Độ ưu tiên và Cách thực thi
PLC8 tháng 7, 2026· 8 phút đọc · 3 lượt xem

Tín hiệu Interrupt trong PLC: Lập trình, Độ ưu tiên và Cách thực thi

Tìm hiểu Interrupt trong PLC, nguyên lý hoạt động, độ ưu tiên, cách lập trình ISR và ứng dụng thực tế trên Siemens, Omron, Allen-Bradley và Mitsubishi.

1. Tìm hiểu tín hiệu Interrupt trong PLC

Interrupt (ngắt) trong PLC (Programmable Logic Controller) là một cơ chế cho phép tạm dừng quá trình quét (Scan) của chương trình chính để thực hiện một chương trình có mức ưu tiên cao hơn.

Thay vì phải chờ đến chu kỳ quét tiếp theo, PLC sẽ:

  • ngay lập tức chuyển sang chương trình xử lý Interrupt (Interrupt Service Routine – ISR),

  • thực hiện chương trình này cho đến khi hoàn thành,

  • sau đó quay trở lại đúng vị trí trong chương trình chính mà nó đã tạm dừng trước đó.

Điểm khác biệt quan trọng: Chương trình chính không dừng hoàn toàn, mà chỉ tạm dừng tác vụ (Task) đang được thực thi. Trạng thái của các tín hiệu I/O và dữ liệu trong bộ nhớ (Data Memory - DM) vẫn được giữ nguyên và có thể được thay đổi bởi chương trình Interrupt. Sau khi Interrupt kết thúc, chương trình chính tiếp tục chạy từ đúng vị trí đã bị gián đoạn.


2. Cách PLC thực thi Interrupt

Chu kỳ quét (Scan Cycle) của PLC thông thường diễn ra theo trình tự:

Đọc Input
      ↓
Thực thi chương trình
      ↓
Cập nhật Output

Khi xuất hiện điều kiện kích hoạt Interrupt (ví dụ: đầu vào tốc độ cao, lỗi phần cứng hoặc tín hiệu theo lịch), PLC sẽ thực hiện các bước sau:

  1. Hoàn thành lệnh hiện đang thực thi.

  2. Lưu lại Program Counter và trạng thái hiện tại.

  3. Chuyển đến chương trình Interrupt đã được gán.

  4. Thực thi toàn bộ chương trình Interrupt.

  5. Quay trở lại chương trình chính tại đúng vị trí đã tạm dừng.


3. Các loại Interrupt trên từng nền tảng PLC

Nền tảng

Loại Interrupt

Tài liệu tham khảo

Allen-Bradley ControlLogix

Event Task, Periodic Task

1756-RM003

Siemens S7-300/400

Organization Block (OB40–OB47)

19.4

Omron CJ2M

Task Interrupt (IN/INT)

W463

Mitsubishi FX Series

Interrupt Input (I000–I050)

SH(NA)-080036E

AutomationDirect DL06

Interrupt Subroutine (INT)

D0-DL06-M


4. Lập trình chương trình Interrupt

Chương trình Interrupt được lập trình giống như chương trình PLC thông thường bằng:

  • Ladder Logic

  • Structured Text (ST)

  • Function Block Diagram (FBD)

Điểm khác biệt chính gồm:

  • Điều kiện kích hoạt (Trigger): Được xác định bởi đầu vào phần cứng hoặc khoảng thời gian định kỳ.

  • Mức ưu tiên (Priority): Luôn cao hơn các Task chạy liên tục hoặc Task định kỳ.

  • Thời gian thực thi: Cần hoàn thành trong thời gian ngắn để tránh làm tăng thời gian Scan của PLC.


Ví dụ: Cấu hình Event Task trong Allen-Bradley RSLogix 5000

Các tham số cấu hình Event Task:

  • Trigger: Digital Input Point (Local:0:I.Data[0].0)

  • Priority: 1 (mức ưu tiên cao nhất trong dải từ 1 đến 15)

  • Watchdog: 10 ms (thời gian thực thi tối đa cho phép)

  • Action: Thực thi chương trình Ladder có tên ISR_HighSpeed


Ví dụ: Interrupt OB trên Siemens S7-300 (Structured Text)

// OB40: Hardware Interrupt tại Input I0.0
// Được kích hoạt khi xuất hiện cạnh lên

VAR_TEMP
   // Biến tạm
END_VAR

BEGIN

   // Logic bộ đếm tốc độ cao

   MW10 := MW10 + 1;

   // Bật Output ngay lập tức

   Q4.0 := TRUE;

   // Xác nhận Interrupt

   L 0;
   T PEEK(16#000,0);

END_ORGANIZATION_BLOCK

5. Thứ tự ưu tiên của các Task

Trong PLC hiện đại, các Task được thực hiện theo thứ tự ưu tiên như sau:

  1. Safety Task (PES)

Ưu tiên cao nhất.

Luôn phải được thực hiện trước mọi Task khác.


  1. Interrupt/Event Task

Được kích hoạt bởi các điều kiện đặc biệt.

Mức ưu tiên thường nằm trong khoảng 1–15.


  1. Periodic Task

Được thực hiện theo chu kỳ cố định.

Ví dụ:

  • mỗi 10 ms

  • mỗi 100 ms


  1. Continuous Task

Là chương trình quét thông thường của PLC.

Đây là Task có mức ưu tiên thấp nhất.

Lưu ý quan trọng: Trên PLC ControlLogixCompactLogix, tham số Watchdog quy định thời gian thực thi tối đa của một Task Interrupt. Nếu vượt quá giới hạn này, PLC sẽ ghi nhận lỗi Fault Code 16#0201. Khi có thể, nên giữ thời gian thực thi của Interrupt dưới 1 ms.


6. Các ứng dụng phổ biến

Ứng dụng

Vai trò của Interrupt

Bộ đếm tốc độ cao

Đếm xung Encoder có tần số vượt quá tốc độ Scan của PLC

Điều khiển chuyển động

Phát hiện Home Switch, Limit Switch hoặc vị trí đã đạt

Hệ thống an toàn

Xử lý nút Emergency Stop hoặc Light Curtain

Lỗi quan trọng

Quá nhiệt động cơ, van xả áp khẩn cấp

Truyền thông

Xử lý khi bộ đệm nhận dữ liệu đã sẵn sàng


7. Các nguyên tắc thiết kế

  • Giữ chương trình Interrupt càng ngắn càng tốt. Chỉ nên đặt các lệnh tối thiểu, ví dụ ghi cờ (Flag), sau đó xử lý chi tiết trong Periodic Task.

  • Tránh sử dụng các lệnh có thời gian thực thi dài như:

    • WAIT

    • MSG

    • hoặc các lệnh chờ khác.

  • Khi nhiều Task cùng sử dụng chung dữ liệu, nên sử dụng Semaphore Flag hoặc cơ chế đồng bộ để tránh xung đột.

  • Thiết lập giá trị Watchdog phù hợp để cân bằng giữa khả năng bảo vệ và thời gian thực thi.

  • Luôn kiểm tra chương trình khi hệ thống hoạt động ở tải lớn nhằm đảm bảo Interrupt vẫn phản hồi đúng với tốc độ cập nhật I/O cao nhất.


8. Khắc phục các lỗi thường gặp

Hiện tượng

Nguyên nhân

Cách khắc phục

Chương trình hoạt động không ổn định

ISR và chương trình chính cùng ghi vào một Tag

Sử dụng Tag riêng cho ISR hoặc xử lý dữ liệu chung trong Periodic Task

Thời gian Scan tăng bất thường

ISR thực hiện quá nhiều lệnh

Giảm logic trong ISR và chuyển phần xử lý sang Periodic Task

Bỏ lỡ Interrupt

Interrupt mới xuất hiện khi ISR trước vẫn đang chạy

Tăng mức ưu tiên hoặc thiết kế ISR không tái nhập (Non-Reentrant)

Lỗi 16#0201

Watchdog vượt quá thời gian cho phép

Tăng giá trị Watchdog hoặc tối ưu thời gian thực thi ISR


9. Tóm tắt

Interrupt trong PLC cho phép hệ thống phản hồi nhanh chóng và có tính xác định (Deterministic) đối với các sự kiện quan trọng mà không cần chương trình chính liên tục kiểm tra điều kiện.

Khi Interrupt xảy ra:

  • Chương trình chính chỉ tạm dừng, không bị kết thúc.

  • Sau khi ISR hoàn thành, PLC tiếp tục chạy từ đúng vị trí đã bị gián đoạn.

  • Toàn bộ trạng thái của I/O và dữ liệu trong bộ nhớ vẫn được giữ nguyên, đồng thời phản ánh mọi thay đổi mà chương trình Interrupt đã thực hiện.

Chưa biết chọn UPS công suất bao nhiêu?
Nhập danh sách thiết bị, công cụ sẽ tính tự động và gợi ý model phù hợp.
Tính công suất miễn phí

Cần tư vấn giải pháp UPS?

UPSsmart hỗ trợ tư vấn miễn phí, không ràng buộc.