- Khối các module đầu vào/ra : +Khối các module đầu vào :
Chương 5: Điều khiển độ pH trong khu bể trung hòa
5.3.2.3. Phần mềm điều khiển tự động trên PL C:
Chương trình trên PLC gồm các đối tượng và các module điều khiển tương ứng với các đối tượng và các công đoạn xử lý nước thải CN có trong dây chuyền công nghệ đã lựa chọn và một số module chức năng khác.
Các đối tượng cần giám sát, điều khiển - Hệ thống có hai loại đối tượng chính sau: + Đầu đo.
+ Thiết bị chấp hành (động cơ, máy bơm, van điện).
Mỗi đối tượng có vùng dữ liệu thuộc tính để lưu các thông tin cấu hình, trạng thái điều khiển và có các phương thức để tương tác .
Chương trình điều khiển được viết trên ngôn ngữ SIMATIC S7-SCL V5.1 SP5 trong môi trường phát triển STEP7 V5.2 trên hệ điều hành Windows2000 cho dòng PLC SIMATIC S7-3000/400. Ngôn ngữ này không hỗ trợ lập trình hướng đối tượng nên khi xây dựng chương trình cần chú ý một vài điểm sau:
- Tập các thuộc tính của đối tượng được lưu trữ trong khối DB theo kiểu UDT có cấu trúc (STRUCT) gồm các trường, mỗi trường là một thuộc tính. Do dữ liệu thuộc tính nằm trong DB nên có thể được truy nhập từ mọi nơi. Điều này hạn chế tính bao đóng của đối tượng. Tuy nhiên khi lập trình ta có thể quy định để tránh các cập nhật có thể gây ra lỗi cho đối tượng. Như vậy vùng dữ liệu cho đối tượng được định nghĩa từ trước và cố định trong suốt chương trình.
- Trong tự nhiên phương thức được hiểu như cách thức mà đối tượng giao tiếp với môi trường bên ngoài hay nói cách khác là phản ứng của đối tượng khi có một tác động từ bên ngoài. Trong SCL phương thức được xây dựng như các hàm với đầu vào/ra là
thuộc tính của chính đối tượng. Như vậy đối tượng tương tác với bên ngoài nhờ các phương thức và thông qua vùng thuộc tính của mình.
* Dưới đây liệt kê các phương thức và các thuộc tính của các đối tượng:
- Các thuộc tính của đối tượng đầu đo được đặt trong UDT1. Để tạo ra một khối UDT (Uer Data-Type) ta chỉ cần viết mã nguồn SCL một cấu trúc của kiểu dữ liệu UDT thì chương trình dịch sẽ tự sinh ra một UDT. Ở đây các giá trị Valid, Invalid chỉ với mục đích kiểm tra xem sensor có cho các giá trị thực hay không, chúng là các giá trị vô nghĩa.
Những cảm biến thông minh như YSI, có thể biết được lỗi đầu đo, nhờ đó module trao đổi dữ liệu với thiết bị cấp trường sẽ ghi 1 vào trường INOUT_B_FAULT khi thấy lỗi và ghi -1000001 vào IN_CUR_VAL, sau đó các phương thức điều khiển sẽ đọc từ trường này ra để xử lý, do đó có kiểu INOUT. Trường IN_B_ACTIVE được người vận hành ghi vào khi cấu hình hệ thống để kích hoạt SENSOR. Nếu IN_B_ACTIVE = 0 thì không cho cảnh báo/báo động. Chú ý: Hai trường IN_CUR_VAL và IN_OUT_FAULT được module Trao đổi dữ liệu với thiết bị cấp trường ghi vào liên tục nên các phương thức (trừ INIT) của SENSOR không được phép ghi vào đây để tránh xung đột. Các cảm biến đã được quy định tên theo thông số đo và đánh chỉ số. Theo đó sẽ quy định các vùng nhớ tương ứng cho từng cảm biến
Bảng 1 : Quy định vùng nhớ cho các cảm biến
-Thuộc tính của đối tượng điều khiển (DEVICE)
Trong thuộc tính của thiết bị điều khiển có 2 TIMER để phát hiện lỗi khi thời gian đáp ứng vượt quá giới hạn tương ứng khi bật/tắt (Bảng 2).
Bảng 2: Thuộc tính của đối tượng chấp hành
Các thiết bị đã được quy định tên và đánh số.Theo đó sẽ quy định các vùng nhớ tương ứng cho từng thiết bị.
- Thuộc tính của đối tượng công đoạn(STAGE)
Đối tượng này sẽ được tổng hợp từ các đối tượng sẵn có như SENSOR ,DEVICE…. SENSOR[ ] CẢM BIẾN SENSOR[1…8 ] T1…T8 SENSOR[9…20 ] PH1…PH12 SENSOR[21…28 ] FL1…FL3 SENSOR[32…60 ] LV1…LV29 SENSOR[61…69 ] Tub1…Tub9 SENSOR[70 ] Cl 1 SENSOR[71…100 ] Dự trữ
Bảng 3: Thuộc tính của đối tượng công đọan (STAGE)
Thông tin của tất cả công đọan điều khiển được lưu trong mảng STAGE [](DB3) và được quy định như trong bảng 4
Bảng 4: Quy định vùng nhớ công đọan điều khiển STAGE
STAGE [ ] CÔNG ĐỌAN XỬ LÝ (STAGE) STAGE [1 ] Khu đầu vào và song chắn rác STAGE [ 2] Khu bể lắng cắt ngang
STAGE [3 ] Khu bể điều hòa STAGE [4 ] Khu bể trung hòa STAGE [ 5] Khu bể lắng đứng đợt 1 STAGE [ 6] Khu bể Aeroten
STAGE [7 ] Khu bể lắng đứng đợt 2 STAGE [8] Nhà khử trùng và đầu ra STAGE [9 ] Khu bể nén bùn
STAGE [10 ] Dây chuyền làm khô bùn
- Thuộc tính của đối tượng TANK :
Bảng 5:Khối dữ liệu chứa mảng các Tank
- Một số vùng nhớ dung chung :
TIMER rất hay được sử dụng trong điều khiển nên tạo riêng một số vùng nhớ : UDT_TIMER (UDT4) và mảng COMMON_TIMER[](DB4) Bảng 6:
Bảng 6: Thuộc tính Timer-UDT_TIMER
- Phương thức của đối tượng : Các đối tượng đó là các sensors các thiết bị đều có các thuộc tính như trên và chúng đều được lưu vào mảng chứa các phần tử đối tượng đó đều có các phương thức giao tiếp với môi trường bên ngoài.Các phương thức đó được liệt kê trong bảng 7 sau :
Đối tượng
Ký hiêu phương thức Chú giải
Đầu đo
INIT_SENSOR Khởi tạo các giá trị ban đầu PREWARN_SENSOR Cảnh báo vượt ngưỡng WARNING_SENSOR Báo động vượt ngưỡng CHK_FAULT_SENSOR Kiểm tra lỗi đầu đo
RS_DEF_CFG_SENSOR Khởi tạo lại các cấu hình ngầm định Thiết
bị chấp hành
INIT_DEVICE Khởi tạo lại các giá trị ban đầu CHK_RESPONSE_DEVICE Kiểm tra lỗi thiết bị
RESET_DEVICE Khởi tạo lại cấu hình ngầm định
Chương trình điều khiển độ pH trong bể trung hòa viết bằng ngôn ngữ SCL được trình bay như trong phần phụ lục.