Theo tạp chí TĐHNN. Tác giả TS: Hoàng Minh Sơn.
Trước tiên, tôi muốn đưa ra hai ví dụ minh họa đơn giản để trả lời câu hỏi về sự liên quan giữa một giải pháp điều khiển với cái gọi là xử lý thời gian thực.
Ví dụ thứ nhất, từ lý thuyết điều khiển tự động, ta đã hiểu rõ thuật toán điều chỉnh PID. Câu hỏi đặt ra là phải lập trình như thế nào để cài đặt thuật toán trên nền một hệ vi xử lý, hoặc chỉ đơn thuần mô phỏng thời gian thực trên máy tính cá nhân? Nếu ta cứ bỏ qua các chi tiết như gián đoạn hóa, lọc nhiễu, chuẩn hóa vào/ra và chống reset-windup, thì vẫn có hàng loạt các câu hỏi khác cần phải trả lời:
* Làm thế nào để tạo các chu kỳ trích mẫu hay chu kỳ điều khiển một cách chính xác (ví dụ 0.01s hoặc 0.5s) trong chương trình theo đúng yêu cầu của lý thuyết điều khiển số?
* Ngay cả khi ta đã biết sử dụng các ngắt thời gian để tạo chu kỳ trích mẫu, nhưng nếu phải thực hiện nhiều vòng điều chỉnh PID với chu kỳ trích mẫu khác nhau thì giải pháp sẽ phải thế nào? Khi nào và làm thế nào để một vi xử lý có thể đáp ứng đồng thời yêu cầu thực hiện nhiều thuật toán điều chỉnh? Thêm vào đó, nếu một số sự kiện khác xảy ra cần xử lý ngay thì việc tổ chức thực hiện trong chương trình ra sao?
* Khi một vòng điều chỉnh không được đáp ứng về yêu cầu thời gian (chu kỳ trích mẫu không chính xác, thời điểm đưa ra kết quả tính toán chậm hơn thời điểm trích mẫu tiếp theo), thì chất lượng điều khiển sẽ bị ảnh hưởng như thế nào?
Rõ ràng, việc đưa ra lời giải đáp cho những câu hỏi trên không đơn thuần chỉ dựa vào những kiến thức của lý thuyết điều khiển, mà liên quan nhiều hơn tới cơ chế xử lý thông tin trong thiết bị điều khiển. Đó là cơ chế xử lý thời gian thực, một nội dung mang tính chất nền tảng cho mọi thiết bị điều khiển.
Ví dụ thứ hai, giả sử một công ty nào đó muốn tự phát triển một hệ điều khiển (PLC, DCS hay gì đó) trong nước. Ngoài các kiến thức và hiểu biết về cấu trúc phần cứng, thiết kế vi mạch, ngôn ngữ lập trình phần mềm và lý thuyết điều khiển, hàng loạt các vấn đề khác cần phải được làm rõ:
* PLC hay DCS là một hệ điều khiển chia sẻ, có nghĩa là nó đảm nhiệm nhiều “tác vụ” đồng thời. Việc quản lý và thực thi “đồng thời” một số lượng không nhỏ các “tác vụ” như vậy được thực hiện theo cơ chế nào để đáp ứng được các yêu cầu về thời gian do người sử dụng định nghĩa? Làm thế nào để giữa các tác vụ đó không chanh chấp sử dụng bộ nhớ, cổng vào/ra, timer,...
* Làm thế nào để lập trình sử dụng bộ nhớ, sử dụng các cổng vào/ra, và giao tiếp với các thiết bị trong mạng được thuận tiện? Làm thế nào để có thể hỗ trợ người sử dụng truyền nạp cấu hình phần cứng và chương trình ứng dụng, thậm chí từng phần chương trình xuống bộ điều khiển một cách dễ dàng?
* Cơ chế cảnh giới, giám sát lỗi bộ nhớ, lỗi các cổng vào ra và lỗi các module được thực hiện như thế nào để nó độc lập với các chương trình ứng dụng.
Câu trả lời chung cho các câu hỏi trên là sự cần thiết phải phát triển một hệ điều hành thời gian thực. Có thể nói, cơ chế xử lý thời gian thực trong mỗi bộ điều khiển công nghiệp như trong các hệ PLC hoặc DCS là do một hệ điều hành thời gian thực đảm nhiệm.
( Còn nữa )
Trước tiên, tôi muốn đưa ra hai ví dụ minh họa đơn giản để trả lời câu hỏi về sự liên quan giữa một giải pháp điều khiển với cái gọi là xử lý thời gian thực.
Ví dụ thứ nhất, từ lý thuyết điều khiển tự động, ta đã hiểu rõ thuật toán điều chỉnh PID. Câu hỏi đặt ra là phải lập trình như thế nào để cài đặt thuật toán trên nền một hệ vi xử lý, hoặc chỉ đơn thuần mô phỏng thời gian thực trên máy tính cá nhân? Nếu ta cứ bỏ qua các chi tiết như gián đoạn hóa, lọc nhiễu, chuẩn hóa vào/ra và chống reset-windup, thì vẫn có hàng loạt các câu hỏi khác cần phải trả lời:
* Làm thế nào để tạo các chu kỳ trích mẫu hay chu kỳ điều khiển một cách chính xác (ví dụ 0.01s hoặc 0.5s) trong chương trình theo đúng yêu cầu của lý thuyết điều khiển số?
* Ngay cả khi ta đã biết sử dụng các ngắt thời gian để tạo chu kỳ trích mẫu, nhưng nếu phải thực hiện nhiều vòng điều chỉnh PID với chu kỳ trích mẫu khác nhau thì giải pháp sẽ phải thế nào? Khi nào và làm thế nào để một vi xử lý có thể đáp ứng đồng thời yêu cầu thực hiện nhiều thuật toán điều chỉnh? Thêm vào đó, nếu một số sự kiện khác xảy ra cần xử lý ngay thì việc tổ chức thực hiện trong chương trình ra sao?
* Khi một vòng điều chỉnh không được đáp ứng về yêu cầu thời gian (chu kỳ trích mẫu không chính xác, thời điểm đưa ra kết quả tính toán chậm hơn thời điểm trích mẫu tiếp theo), thì chất lượng điều khiển sẽ bị ảnh hưởng như thế nào?
Rõ ràng, việc đưa ra lời giải đáp cho những câu hỏi trên không đơn thuần chỉ dựa vào những kiến thức của lý thuyết điều khiển, mà liên quan nhiều hơn tới cơ chế xử lý thông tin trong thiết bị điều khiển. Đó là cơ chế xử lý thời gian thực, một nội dung mang tính chất nền tảng cho mọi thiết bị điều khiển.
Ví dụ thứ hai, giả sử một công ty nào đó muốn tự phát triển một hệ điều khiển (PLC, DCS hay gì đó) trong nước. Ngoài các kiến thức và hiểu biết về cấu trúc phần cứng, thiết kế vi mạch, ngôn ngữ lập trình phần mềm và lý thuyết điều khiển, hàng loạt các vấn đề khác cần phải được làm rõ:
* PLC hay DCS là một hệ điều khiển chia sẻ, có nghĩa là nó đảm nhiệm nhiều “tác vụ” đồng thời. Việc quản lý và thực thi “đồng thời” một số lượng không nhỏ các “tác vụ” như vậy được thực hiện theo cơ chế nào để đáp ứng được các yêu cầu về thời gian do người sử dụng định nghĩa? Làm thế nào để giữa các tác vụ đó không chanh chấp sử dụng bộ nhớ, cổng vào/ra, timer,...
* Làm thế nào để lập trình sử dụng bộ nhớ, sử dụng các cổng vào/ra, và giao tiếp với các thiết bị trong mạng được thuận tiện? Làm thế nào để có thể hỗ trợ người sử dụng truyền nạp cấu hình phần cứng và chương trình ứng dụng, thậm chí từng phần chương trình xuống bộ điều khiển một cách dễ dàng?
* Cơ chế cảnh giới, giám sát lỗi bộ nhớ, lỗi các cổng vào ra và lỗi các module được thực hiện như thế nào để nó độc lập với các chương trình ứng dụng.
Câu trả lời chung cho các câu hỏi trên là sự cần thiết phải phát triển một hệ điều hành thời gian thực. Có thể nói, cơ chế xử lý thời gian thực trong mỗi bộ điều khiển công nghiệp như trong các hệ PLC hoặc DCS là do một hệ điều hành thời gian thực đảm nhiệm.
( Còn nữa )
Comment