CHƯƠNG VI LẬP TRÌNH CÁC PHÉP TOÁN SO SÁNH
CHƯƠNG 7: LẬP TRÌNH XỬ LÝ TÍN HIỆU ANALOG
7.2. LẬP TRÌNH XỬ LÝ TÍN HIỆU ANALOG
7.2.1. Lập trình xử lý tín hiệu Analog input
7.2.1.1. Lập trình xử lý tín hiệu dòng/áp
- Chúng ta sử dụng kết hợp 2 tập lệnh NORM_X và SCALE_X tương ứng với công thức (*)
a. Lệnh NORM_X
`
- Công thức toán học của lệnh NORM_X
Hình 7.3.Đồ thị biểu diễn hoạt động của lệnh Norm_X
- Người dùng có thể sử dụng lệnh Normalize để chuyển đổi giá trị đầu vào nằm trong giới hạn [Min, Max] với ngõ ra thay đổi tuyến tính trong giới hạn [0.0, 1.0]
OUT = (VALUE – MIN) / (MAX – MIN)
- Tham số của lệnh Norm_X Tham số Khai
báo
Kiểu dữ
liệu Vùng nhớ Miêu tả
EN IN BOOL I, Q, M,D, L Ngõ vào cho phép hoạt động ENO OUT BOOL Q, M,D, L Ngõ ra cho phép hoạt động MIN(1) IN INT, R I, Q, M,D, L
hay hằng số Giới hạn dưới của Value VALUE(1) IN INT, R I, Q, M,D, L
hay hằng số Giá trị Value đưa vào MAX(1) IN INT, R I, Q, M,D, L
hay hằng số Giới hạn trên của Value OUT OUT R Q, M,D, L Kết quả trả về nằm trong giới
hạn [0.0, 1.0]
(1) Các tham số này giống nhau về kiểu dữ liệu do đó phải khai báo giống nhau.
b. Lệnh SCALE_X
- Công thức toán học của lệnh SCALE_X
Hình 7.3.Đồ thị biểu diễn hoạt động của lệnh Scale_X
- Tham số của lệnh Scale_X
- Người dùng có thể sử dụng lệnh SCALE_X để chuyển đổi giá trị sang một tầm giá trị mới phù hợp với yêu cầu sử dụng. Khi lệch SCALE_X được thực hiện thì giá trị VALUE sẽ được chuyển đổi nằm trong giới hạn [MIN, MAX] và được lưu trữ vào vùng nhớ OUT.
OUT = [VALUE * (MAX – MIN) / + MIN
Tham số Khai báo
Kiểu dữ
liệu Vùng nhớ Miêu tả
EN IN BOOL I, Q, M,D, L Ngõ vào cho phép hoạt động ENO OUT BOOL Q, M,D, L Ngõ ra cho phép hoạt động
MIN IN INT, R I, Q, M,D, L
hay hằng số Giới hạn dưới của Value
VALUE IN R I, Q, M,D, L
hay hằng số Giá trị Value đưa vào
MAX IN INT, R I, Q, M,D, L
hay hằng số Giới hạn trên của Value OUT OUT INT, R Q, M,D, L Kết quả trả về nằm trong giới
hạn [MIN, MAX]
c. Ứng dụng lệnh NORM_X và lệnh SCALE_E để đọc tín hiệu Analog
- Và dựa theo công thức của lệnh NORM_X và lệnh SCALE_X thì chúng ta có thể kết hợp hai lệnh trên để tạo ra công thức xử lý tín hiệu Analog như sau:
* Đặt vấn đề:
- Thực hiện lập trình giám sát mức nước trong bồn (Tank level) với những yêu cầu về cấu hình như sau:
+ Một cảm biến như siêu âm đo mức nước trong bồn trả về điện áp với tín hiệu 0V tương ứng với 100 lít nước và 10V tương ứng với 1000 lít.
+ Cảm biến này được kết nối với ngõ vào Analog đầu tiên (AI0) tích hợp sẵn trên CPU S7-1200.
+ Lập trình PLC thực hiện giám sát bồn nước và báo và báo hiển thị giá trị mức cao là 990 lít và báo hiển thị giá trị mức thấp là 110 lít.
* Hướng dẫn thực hiện:
Bước 1: Khởi tạo Project với tên ANALOG với CPU 1214C.
Bước 2: Cấu hình phần cứng CPU 1214C để kiểm tra địa chỉ và cấu hình hoạt động cho các kênh Analog theo yêu cầu bài toán thực tế: Device → ANALOG → Device configuration → Device View → CPU... → Properties → AI2 → Analog Input.
Normal_X Scale_X
AIW W
Giá trị thực tế
Bước 3: Tạo Tag để giám sát biến trạng thái của các tín hiệu: PLC tags → Add new tag table → chọn Tag table và đặt tên là Analog Tag.
Bước 4: Lập trình PLC S7-1200 đọc tín hiệu Analog trả về từ cảm biến.
- Giá trị với các ngõ Analog input tích hợp trên CPU S7-1200 có hệ số [K1, K2] sẽ là [0, 27648] được đưa vào [MIN, MAX] trong hàm Norm_X.
- Giá trị [MIN, MAX] trong hàm Scale_X là giá trị cận trên và cận dưới của đơn vị kỹ thuật tương ứng với giá trị [Lo_Lim, Hi_Lim], và kiểu dữ liệu số thực (Real).
+ Giá trị cảm biến trả về từ 0-10V thì ta có thể khai báo là Min = 0.0 và Max = 10.0
+ Hoặc chúng ta có thể khai báo theo tỉ lệ % của hệ thống là Min = 0.0 và Max = 100.0
- Để thuận tiện cho việc so sánh giá trị về số lít nước trong bồn cho nên chúng ta sẽ chọn [Lo_Lim, Hi_Lim] = [100.0, 1000.0].
Bước 5: Lập trình PLC S7-1200 thực hiện báo trạng thái theo yêu cầu: báo hiển thị giá trị mức cao là 990 lít và báo hiển thị mức thấp là 110 lít.