b) Những khốiOB đặc biệt
3.5.1.4. Ngắt tại một thời điểm định trước (Time-of-day Interrupts)
Sử dụng ngắt tại một thời điểm định trước (ngắt thời gian trong ngày) khi muốn xử lý một chương trình tại một thời điểm xác định, hoặc chỉ một lần, hay hàng ngày. OB10 đến OB17 được sử dụng cho mục đích này. Mỗi loại CPU sử dụng một hay nhiều khối. Một ngắt thời điểm chỉ cĩ thể được tạo ra chính xác khi đồng hồ thời gian thực được điều chỉnh đúng.
a) Cài đặt ngắt thời điểm trong CPU
Ngắt thời điểm được cài đặt trong cấu hình phần cứng HW Config. Mục “Time Of Day Interrupts” trong hộp thoại “ Object Properties” liệt kê các OB cĩ giá trị cho mục đích này của CPU. Cĩ thể đặt cấp độ ưu tiên xử lý, thực hiện và khởi động điểm thời gian. Ngắt thời điểm được khởi động tự động với option “Active” khi CPU ở chế độ RUN.
Ngắt thời điểm cĩ thể được xử lý bởi một trong hai cách:
- Một lần: Khối tổ chức tương ứng được gọi một lần tại thời điểm đã đặt - Theo chu kỳ: Khối tổ chức tương ứng được khởi động hàng giờ, hàng
ngày, hàng tuần, hàng tháng, hàng năm.
Đối với các OB ngắt được sử dụng cũng như đối với cấp độ ưu tiên của nĩ phải được dành riêng ít nhất 20 byte ở dữ liệu cục bộ tạm thời ở mục “Memory” trong hộp thoại “Object Properties” của CPU. Phải chú ý rằng ngắt tại một thời điểm đã đặt cấu hình phải tồn tại trong chương trình, nếu khơng thì CPU sẽ gọi OB báo lỗi OB85 (xử lý lỗi chương trình) hoặc chuyển CPU về trạng thái STOP. b) Xử lý ngắt thời điểm với Nhĩm lệnh chức năng hệ thống
Để khởi động ngắt thời gian trong ngày, trước tiên phải đặt chỉnh thời gian khởi động và sau đĩ kích hoạt ngắt thời gian trong ngày. Cả hai khả năng này cĩ thể được tách ra và thực hiện ở HW Config và với Nhĩm lệnh chức năng hệ thống. Với hàm SFC 28 SET_TINT, đặt điểm thời gian khởi động và chu kỳ của ngắt thời gian trong ngày; Với hàm SFC 30 ACT_TINT, ta khởi động ngắt thời gian trong ngày.
Cĩ thể sử dụng hàm SFC 31 QRY_TINT để hỏi tình trạng của ngắt thời gian trong ngày. Hàm SFC 29 CAN_TINT hủy bỏ ngắt thời gian trong ngày đang hoạt động. Nếu muốn sử dụng lại ngắt thời gian trong ngày đã được hủy bỏ thì phải đặt thời gian phục hồi với SFC 28 SET_TINT và kích hoạt ngắt thời gian trong ngày với SFC 30 ACT_TINT. Ngắt thời gian trong ngày chỉđược thực hiện khi CPU ở chế độ RUN. Trong quá trình khởi động, ngắt thời gian trong ngày khơng được khởi động cho đến khi CPU đi vào chế độ RUN.
Bạn cĩ thể sử dụng Nhĩm lệnh chức năng hệ thống ssau đây để ảnh hưởng đến ngắt thời gian trong ngày: SFC 39DISS_IRT (khĩa ngắt), SFC 40 EN_INT (mở ngắt đã bị chặn), SFC 41 DIS_AIRT (trì hỗn ngắt) và SFC 42 EN_AIRT (bỏ trì hỗn).