Tài liệu Tiểu luận Tìm hiểu lập trình WinCC cho hệ thống SCADA: Mở đầu
Trong tự động hóa người ta thường phải xậy dựng những hệ thống có tính tự động cao có khả năng tự động thực hiện các chức năng cơ bản như:
Điều khiển (Control)
Hiển thị (Display)
Cảnh báo (Alarm)
Lưu trữ (Archieve)
In ấn, thông báo (Report)
Và gọi là một hệ thống SCADA (Supervisory Control and Data Acquisition System - hệ thống điều khiển giám sát và thu thập dữ liệu)
Để xây dựng như vậy cần phải có những phần mềm chuyên dụng và ở Việt Nam hiện nay có một số phần mềm được sử dụng như WinCC, Fix-Intellution, Wonderware, Scitect, Plantscape(HoneyWell) ... Trong đó WinCC của Siemens được đánh giá cao nhất và thông dụng nhất.
WinCC (Windows Control Center) là một phần chuyên dụng để xây dựng giao diện điều khiển (Human Machine Interface), xử lí và lưu trữ dữ liệu cho một hệ thống SCADA trên nền Windows (WinNT, WinXP, WinVista 32bit ...). WinCC là sản phẩm mà Siemens đã thuê Microsoft xây dựng và hiện tại bản mới nhất là bản WinCC7.0. Và vì vậy mà WinCC đã thừa hưởng bí quyế...
20 trang |
Chia sẻ: hunglv | Lượt xem: 1633 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Tiểu luận Tìm hiểu lập trình WinCC cho hệ thống SCADA, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Mở đầu
Trong tự động hóa người ta thường phải xậy dựng những hệ thống có tính tự động cao có khả năng tự động thực hiện các chức năng cơ bản như:
Điều khiển (Control)
Hiển thị (Display)
Cảnh báo (Alarm)
Lưu trữ (Archieve)
In ấn, thông báo (Report)
Và gọi là một hệ thống SCADA (Supervisory Control and Data Acquisition System - hệ thống điều khiển giám sát và thu thập dữ liệu)
Để xây dựng như vậy cần phải có những phần mềm chuyên dụng và ở Việt Nam hiện nay có một số phần mềm được sử dụng như WinCC, Fix-Intellution, Wonderware, Scitect, Plantscape(HoneyWell) ... Trong đó WinCC của Siemens được đánh giá cao nhất và thông dụng nhất.
WinCC (Windows Control Center) là một phần chuyên dụng để xây dựng giao diện điều khiển (Human Machine Interface), xử lí và lưu trữ dữ liệu cho một hệ thống SCADA trên nền Windows (WinNT, WinXP, WinVista 32bit ...). WinCC là sản phẩm mà Siemens đã thuê Microsoft xây dựng và hiện tại bản mới nhất là bản WinCC7.0. Và vì vậy mà WinCC đã thừa hưởng bí quyết của Siemens - một công ty hàng đầu trong lĩnh vực tự động hóa quá trình và năng lực của Microsoft - công ty hangf ddaauf trong linhx vực phát triển phần mềm cho PC. WinCC có thể dễ dàng tích hợp trong các hệ thống có quy mô lớn nhỏ khác nhau và cả những hệ thống cấp cao như MES (Manufacturing Excution System - hệ thống quản lí việc thực hiện sản xuất) và ERP (Enterprise Resource Planning). Thực tế thì WinCC đã và đang được ứng dụng trên khắp các hệ thống của Siemens trên toàn cầu.
Các đặc điểm chính của WinCC:
WinCC sử dụng các công nghệ và phần mềm tiên tiến do Microsoft luôn là người dẫn đầu trong phát triển công nghệ phần mềm.
WinCC có thể mở rộng một hệ thống từ đơn giản đến phức tạp một cách linh hoạt, từ hệ thống với một máy tính giám sát tới hệ thống với nhiều máy tính giám sát hay hệ thống có tính phân tán với nhiều máy chủ
WinCC có hàng loạt các module phần mềm kèm theo giúp định hướng theo từng loại ứng dụng đã được phát triển sẵn để người dùng lựa chọn khi cần
Tích hợp trong các bộ WinCC thường có các hệ quản trị cơ sở dữ liệu ODBC/SQL như Sysbase SQL hay SQL Server (ví dụ SQL Server2005 trong WinCC 7). Và có thể dễ dàng truy cấp tới CSDL của hệ thống bằng ngôn ngữ SQL hoặc ODBC.
WinCC cũng được tích hợp các giao diện chuẩn như DDE và OLE ... dùng chuyển đổi các chương trình chạy trên nền Windows. Các tính năng khác như ActiveX control và OPC server cúng được tích hợp sẵn trong WinCC
Để lập trình sự kiện thì WinCC hỗ trợ ngôn ngữ lập trình chuẩn ANSI- C và VBScripts (WinCC 7)
Tất cả các module của WinCC giao diện mở cho giao diện lập trình dùng ngôn ngữ C (C-API: Application Programming Interface). Điều này có nghĩa là có thể tích hợp cả cấu hình của WinCC cà cả các hàm thực hiện (runtime) vào một chương trình của người sử dụng
Có thể cài đặt trực tuyến WinCC bằng việc dùng thuật sĩ cài đặt (Setup Wizards)
WinCC hỗ trợ đa ngôn ngữ như Anh, Pháp, Đức và thậm chí cả một số ngôn ngữ châu Á, Mĩ cũng được tích hợp làm ngôn ngữ sử dụng
WinCC hỗ trợ hầu hết các loại PLC do nó đã gắn sẵn các kênh truyền thông để giao tiếp các loại PLC của Siemens như S5,S7,505 cũng như thông qua các giao thức chung như Profibus DP, DDE hay OPC. Thêm vào đó các chuẩn thông tin khác cũng có sẵn hay được lựa chọn bổ sung
WinCC là phần tử SCADA trong hệ thống PCS7 của Siemens (là một hệ thống điều khiển quá trình, một giải pháp tự động hóa được tích hợp toàn diện).
Làm việc với WinCC
Trong phần này sẽ đi sâu vào cách làm việc cũng như các bước xây dựng một hệ thống với WinCC.
Nội dung bao gồm:
Giới thiệu giao diện làm việc
Quản lí các thẻ (Tags)
Thiết kế giao diện đồ họa điểu khiển cho một hệ thống tự động
Lập trình xử lí sự kiện cho các đối tượng
Thêm các điều khiển nâng cao khác
Giao diện làm việc
Khởi động:
Khởi động WinCC từ menu start như hình trên
Tạo mới một dự án: Chọn File->New một hộp thoại xuất hiện như hình dưới:
Chọn loại dự án muốn tạo hoặc mở một dự án có sẵn (‘Open an Existing Project’)
Giao diện làm việc:
Giao diện làm việc gồm: - Tag Manaagement: quản lí các tag (thẻ liên kết)
- Tructure tag: Cấu trúc, tổ chức các tag
- Graphics Designer: Thiết kế môi trường đò họa điều khiển
- Menu and toolbars: Tạo menu và thanh công cụ
- Alarm Logging: Tạo lịch trình hệ thống
- Report Designer: Thiết kế thông báo
- Global Script: Tạo các đoạn mã điều khiển hệ thống(VBS&C)
- .....
Quản lí Tags
Trong hệ thống SCADA để truyền thông số giữa các thiết bị phần cứng PLC (sensor, cảm biến, hệ thống vận hàng , kiểm tra ...) với WinCC thì WinCC đã dùng các Tag. Các Tag này có nhiệu vụ đồng bộ hóa các dữ liệu giữa thiết bị PLC và các thành phần điều khiển trong WinCC trong đó có giao diện đồ họa điều khiển.
Tag chứa các giá trị thực như là mức điền đầy của thùng nước, tình trạng các Van (đóng/mở)... hoặc là các giá trị tính toán cục bộ hay mô phỏng bên trong WinCC. Tương ứng với các Tag trong WinCC là các Tag quá trình trong PLC hoặc thiết bị mô phỏng. Có 2 loại Tag trong WinCC:
External Tag (Tag liên kết ngoài,Tag quá trình): Là các Tag do người dùng thiết lập để liên kết với PLC thông qua từng driver cụ thể cho mỗi loại PLC. Để tạo Tag loại này ta click phải chuột vào Link “Tag Management” chọn “Add new driver” sau đó chọn các PLC driver có sẵn kèm theo WinCC hoặc chọn một driver khác từ tệp tin có đuôi “.chn”.
Internal Tag (Tag cục bộ): Là Tag chứa các giá trị cục bộ trong WinCC để phục vụ tính toán, điều khiển trong giao diện đồ họa điều khiển. Để tạo một InternalTag ta chọn mục “Internal tags”, cửa sổ bên phải sẽ hiện ra các Tag cho bạn quản lí. Click phải chuột cào của sổ chọn “New Tag” nếu muốn tạo Tag mới hoặc “New Group” nếu muốn tạo nhóm các Tag. Nếu tạo Tag mới thì trong cửa sổ hiện ra yêu cầu nhập các thuộc tính cho Tag bao gồm: tên (Name), kiểu dữ liệu (DataType) và một số tùy chọn khác. Và tùy theo mục đích sử dụng Tag của mình mà có thể chọn kiểu dữ liệu thích hợp không gây dư thừa cũng như tràn bộ nhớ.
Thiết kế giao diện đồ họa điều khiển
Để tạo một giao diện điều khiển mới, trong thẻ Graphics Dessigner click phải chuột chon “New picture”. Chương trình sẽ tự động tạo file giao diện “NewPdl0.Pdl”, click phải chuột chon “Rename” để đổi tên. Để thiết kế giao diện nào thì double click vào file đó, một trình thiết kế giao diện đồ họa điều khiển (Graphics Dessigner) sẽ hiện ra:
Nét vẽ đối tượng
Các đối tượng đồ họa
Các lớp giao diện
Tọa độ chuột
Công cụ
Zoom
Bảng màu
Việc thiết kế giao diện điều khiển cho hệ thống đơn giản chỉ là gắp, thả, di chuyển, thay đổi thuộc tính. Tuy nhiên để có được hệ thống tối ưu thì phải có bước phân tích trước, tức là giải bài toán: hiển thị cái gì, thông số gì, ở đâu, tích chất của nó như thế nào ...
Sau khi tạo bộ mặt cho giao diện thì tiếp theo là phải thiết lập liên kết từ đối tượng đồ họa đến các Tag cho từng thông số cụ thể và thông qua các Tag tạo mối quan giữa các đối tượng đồ họa. Để làm tốt điêu này cũng cần có bước phân tích tốt trước đó.
Để thêm đối tượng đồ họa mới ta có thể gắp thả các đối tượng đồ họa cơ bản bên mục “Object Palette” hoặc trong thư viện bằng cách vào menu “View” chọn “Library” hoặc click vào biểu tượng “Display Library” trên thanh công cụ.
Trong cửa sổ Library ta chọn các nhóm đối tượng bên phải và các đối tượng trong nhóm sẽ hiển thị bên trái. Ta có thể cho hiển thị mẫu thu nhỏ các đối tượng hoặc theo danh sách
Danh sách
Hiển thị
Các bạn chỉ việc gắp thả đối tượng muốn vào màn hình thiết kế.
Bước tiếp theo là đặt thuộc tính thích hợp cho các đối tượng: Click phải vào đổi tượng chọn “Properties” chọn thẻ “Properties”. Trong bảng Object Properties có một các thông số của đối tượng như màu sắc, hình thức hiển thị, kích thước, vị trí... và liên kết đến các Tag, thông báo hiển thị hoặc liên kết với một hàm viết bằng C-Action hoặc VBS (kèm theo các liên kết là các giá trị thời gian cập nhật lại thông số cho đối tượng )
Sau khi đã tạo các đối tượng đồ họa thích hợp ta chuyển sang bước tiếp theo là viết các hàm xử lí sự kiện cho các đối tượng đồ họa thông qua các Tag và trạng thái đối tượng khác (trình bày phần tiếp).
Lập trình xử lí sự kiện cho các đối tượng
Để điều khiển các đối tượng đồ họa, người xây dựng hệ thống có thể sử dụng ngôn ngữ ANSI-C (C chuẩn) hoặc VBS (VB Script) xây dựng các hàm độc lập hoặc thông qua các sự kiện bị kích thích của các đối tượng đồ họa cũng như các Tag.
Để tạo hàm sử lí cho một đối tượng đồ họa ta chọn thẻ “Events” trong hộp thoại “Properties” (đã nêu trên). Ở khung bên phải là các hàm sự kiện được hỗ trợ cho đối tượng đồ họa này, click vào một đối tượng và khung bên phải hiển thị những hàm xử lí của nó (có hoặc không).
Bạn thêm hàm mới cho sự kiện đó bằng click phải chuột vào mục “Action” của sự kiện đó và chọn ngôn ngữ muốn làm việc, tiếp đó của sổ biên tập mã nguồn sẽ hiện ra cho bạn xử lí.
Trong cửa sổ biên tập mã sẽ có 2 khung, bên trái là các hàm cho hệ thống, hàm chuẩn và các hàm cục bộ, khung bên phải là nơi biên tập mã cho sự kiện hiện tại.
Thư vện hàm
Phạm vi hàm
Biên dịch
Tham số mặc định
Mặc định các tham số của hàm phải giữ nguyên, toàn bộ những câu lệnh điều khiển, lặp ... đều thực hiện trong thân hàm. Ví dụ đoạn mã sau:
#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, double value)
{
float TankValue;
TankValue=GetTagFloat("Tank"); //lấy giá trị của Tag tên là Tank kiểu float
if (GetTagBit("Vale1")){ //Ktra giá trị của Van số (Vale1) mở hay đóng(1/0)
if (TankValue<100){
SetTagFloat("Tank",TankValue+1); //Thiết lập giá trị cho Tank lên 1
}else{
SetTagBit("Vale1",0); //khóa van 1 bằng cách đặt giá trị là 0
}
}else{
if(TankValue<GetTagFloat("MinTank")&&GetTagBit("On")){
SetTagBit("Vale1",1);
SetTagFloat("Tank",TankValue+1);
}
}
}
(tham khảo thêm về ngôn ngữ ANSI-C)
Sau khi biên tập đoạn mã xong thì click vào công cụ có nhãn “Create Action” để biên dịch và tạo sự kiện.
Tạo các điều khiển khác
Trong phạm vi của đề tài em chỉ mới tìm hiểu việc lập trình trên WinCC và chưa tìm hiểu cách tạo các điều khiển khác nên xin phép không trình bày phần này.
Ví dụ xây dựng hệ thống cụ thể
Để minh họa em xin trình bày các bước xây dựng một hệ thống đơn giản và chỉ xây dựng ở mức giao diện điều khiển cơ bản: Hệ thống tưới nước tự động cho cây
Để xây dựng hệ thống trên nói riêng và hệ thống với WinCC nói chung thì cần thực hiện các bước sau:
Phân tích thiết kế
Thiết kế giao diện đồ họa điều khiển
Lập trình các sự kiện cho đối tượng
Tạo các bảng thông báo, bảng đánh giá, bản quy trình sản xuất ...
Kết nối thiết bị, chạy thử và đóng gói.
Phân tích thiết kế mô hình
Ta nhận thấy hệ thống tưới cây tự động có những đặc điểm sau:
Có sensor cảm ứng độ ẩm của đất (nơi trồng cây)
Có hệ thống vòi bơm nước và dẫn nước
Có bể chứa nước (trên cao) và thiết bị kiểm tra mức nước
Có 2 van: van trạng thái dẫn nước bể chứa và van cho phép dẫn nước tưới cây
Có công tắc nguồn cho cả hệ thống
Có các hiển thị về độ ẩm đất, mức nước trong bể, công suất bơm ...
Từ những đặc điểm trên ta cần một số Tag cục bộ và kiểu dữ liệu như sau:
Thiết kế giao diện điều khiển
Từ những phân tích trên ta xây giao diện đồ họa điều khiển cho hệ thống như sau:
Lập trình xử lí sự kiện cho các đối tượng
Mã nguồn xử lí sự kiện cho các đối tượng: công tắc nguồn, bể nước (mức nước trong bể), độ ẩm của đất thay đổi, thay đổi công suất bơm nước, tốc độ bốc hơi nước của đất...
Xin xem cụ thể trong mã nguồn hệ thống kèm theo tài liệu này.
Chạy thử và đóng gói
Kết quả chạy thử thành công !
Kết luận
Do lần đầu tiếp cận với kiến thức mới và việc số lượng tài liệu về vấn đề này còn ít nên không tránh khỏi những thiếu sót cả về cách thức lẫn nôi dung của bài tiểu luận này. Em mong thầy, cô chỉ day thêm cho em để có thể đạt được những thành công hơn cho những lần tiếp theo.
Các file đính kèm theo tài liệu này:
- Tiểu luận- Tìm hiểu lập trình WinCC cho hệ thống SCADA.doc