
Ở trong bài viết hôm trước chúng ta đã cùng nhau tìm hiểu các khối chương trình trong TIA Portal
Trong lập trình PLC của Siemens, Organization Blocks (OB) là các khối chương trình đặc biệt, được hệ điều hành của CPU tự động gọi khi xảy ra một sự kiện xác định trong hệ thống. OB đóng vai trò như điểm khởi đầu để thực hiện chương trình người dùng tương ứng với từng loại sự kiện – chẳng hạn như chu kỳ quét, ngắt thời gian, lỗi phần cứng, hoặc khởi động hệ thống.
Mỗi OB đảm nhiệm xử lý cho một loại sự kiện riêng biệt, và chỉ được hệ điều hành PLC gọi tự động khi sự kiện đó xảy ra. Lập trình viên không thể gọi trực tiếp OB từ chương trình, và các khối OB không thể gọi lẫn nhau. Đồng thời, các khối chương trình khác như Function Block (FB) hoặc Function (FC) cũng không thể gọi OB.
Thứ tự và điều kiện thực thi OB được hệ điều hành điều phối dựa trên mức ưu tiên sự kiện. Ví dụ, khi CPU đang thực thi một OB có mức ưu tiên thấp (như OB1 – chu kỳ chính), nếu có một ngắt thời gian hay lỗi phần cứng xảy ra, hệ thống sẽ tạm ngưng OB đang chạy và chuyển sang thực thi OB có ưu tiên cao hơn (ví dụ OB35 hoặc OB82).
Do đó, việc hiểu rõ vai trò, cách thức gọi và thứ tự ưu tiên của các OB là rất quan trọng để xây dựng một chương trình có cấu trúc rõ ràng, xử lý đúng sự kiện, và đảm bảo tính ổn định cho hệ thống điều khiển.

Như hình trên cho thấy, các khối tổ chức (Organization Blocks – OB) trong PLC Siemens được hệ điều hành tự động gọi để xử lý các sự kiện khác nhau như: Program Cycle (Chu kỳ chương trình), Startup (Khởi động hệ thống), Time Delay Interrupt (Ngắt theo thời gian định kỳ), Cyclic Interrupt (Ngắt lặp lại theo chu kỳ), Hardware Interrupt (Ngắt phần cứng), Time Error Interrupt (Ngắt do quá thời gian thực thi), Diagnostic Error Interrupt (Ngắt lỗi chẩn đoán thiết bị), Pull or Plug of Modules (Cắm/rút module khi đang chạy), Rack or Station Failure (Mất kết nối rack hoặc trạm I/O), Programming Error (Lỗi lập trình), I/O Access Error (Lỗi truy cập thiết bị vào/ra), Time of Day (Ngắt theo thời gian thực), MC-Interpolator (Nội suy chuyển động), MC-Servo (Điều khiển servo), MC-PreServo (Tiền xử lý servo), MC-PostServo (Hậu xử lý servo), MC-PreInterpolator (Tiền xử lý nội suy), Synchronous Cycle (Chu kỳ đồng bộ chuyển động), Status (Ngắt trạng thái hệ thống), và Update Profile (Cập nhật hồ sơ điều khiển).
Sau đây là bảng mô tả các khối trên theo số lượng, mức độ ưu tiên
Khối tổ chức (OB) | Số lượng | Mức ưu tiên |
---|---|---|
Program Cycle | Multiple | 1 |
Startup | Multiple | 1 |
Time-delay Interrupts | 4 (mỗi OB ứng với 1 sự kiện) | 3 |
Cyclic Interrupts | 4 (mỗi OB ứng với 1 sự kiện) | 8 |
Hardware Interrupts | 50 (1 OB tương ứng với 1 sự kiện, tuy nhiên người dùng có thể gọi cùng 1 OB cho nhiều sự kiện khác nhau). | 18 |
Time Error Interrupts | 1 | 22 – 26 |
Diagnostic Error Interrupts | 1 | 5 |
Pull or Plug of Modules | 1 | 6 |
Rack or Station Failure | 1 | 6 |
Time of Day | Multiple | 2 |
Status | 1 | 4 |
Update | 1 | 4 |
Profile | 1 | 4 |
Từ danh sách trên, có thể thấy các khối OB được phân thành nhiều nhóm, mỗi nhóm đảm nhiệm xử lý một loại sự kiện cụ thể trong hệ thống điều khiển. Để giúp các bạn dễ theo dõi và nắm bắt nội dung, chúng ta sẽ chia thành từng bài viết nhỏ, trong đó mỗi bài sẽ tập trung mô tả chi tiết một nhóm OB. Mời các bạn cùng đón xem loạt bài viết tiếp theo (các bạn có thể tìm nhanh tại thẻ: OB – Organization Blocks)