Xử lý sự kiện ngoài chu kỳ quét
Sản phẩm mang mã 6ES7312-5BF04-0AB0 là bộ điều khiển CPU 312C thuộc dòng SIMATIC S7-300 của Siemens.
Chương trình thông thường chạy tuần tự theo vòng lặp, nhưng có những sự kiện không thể chờ tới lượt, và bộ điều khiển cung cấp cơ chế riêng cho chúng.
Vấn đề với cách xử lý tuần tự
Trong mỗi vòng, bộ điều khiển đọc ngõ vào một lần, chạy hết chương trình, rồi mới cập nhật ngõ ra.
Nếu một sự kiện quan trọng xảy ra ngay sau khi vừa đọc xong, nó phải chờ tới vòng sau mới được xử lý.
Trong trường hợp xấu nhất, độ trễ bằng gần hai lần độ dài một vòng, và con số đó dài ra khi chương trình phình to theo năm tháng.
Cơ chế ngắt hoạt động ra sao
Nguyên tắc là khi một sự kiện đã đăng ký xảy ra, bộ điều khiển tạm dừng chương trình chính giữa chừng, chạy một khối xử lý riêng, rồi quay lại chỗ vừa dừng.
Nhờ vậy thời gian đáp ứng không phụ thuộc vào độ dài chương trình chính.
Các loại sự kiện thường dùng gồm: một tín hiệu vào chuyển trạng thái, một mốc thời gian định kỳ, hoặc một lỗi hệ thống cần xử lý ngay.
Ba nguyên tắc khi viết khối xử lý ngắt
Nguyên tắc thứ nhất là giữ khối càng ngắn càng tốt. Trong lúc nó chạy, chương trình chính bị treo, nên một khối dài sẽ làm chu kỳ quét chung dài ra bất thường.
Nguyên tắc thứ hai là không đặt các phép tính nặng hoặc các thao tác truyền thông trong khối ngắt.
Nguyên tắc thứ ba là cẩn thận với dữ liệu dùng chung. Nếu khối ngắt sửa một biến mà chương trình chính đang đọc dở, kết quả có thể không nhất quán.
Đây là loại lỗi rất khó tái hiện vì nó chỉ xảy ra khi ngắt rơi đúng vào một thời điểm cụ thể, nên phải phòng ngừa bằng cách thiết kế thay vì tìm ra bằng thử nghiệm.
Điều kiện cung cấp
Sản phẩm mới 100 phần trăm, bảo hành theo chính sách chính hãng, xuất hóa đơn VAT và cung cấp CO/CQ khi hồ sơ dự án yêu cầu. Anh chị mô tả yêu cầu về thời gian đáp ứng để nhân viên tư vấn hỗ trợ. Dự án xin gửi danh mục qua Vietautomation.com.









