Top Banner
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ết Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 1 of 25
25

WinCC

Apr 13, 2017

Download

Technology

freeloadtailieu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: WinCC

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ế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.

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 1 of 20

Page 2: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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).

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 2 of 20

Page 3: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 3 of 20

Page 4: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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’)

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 4 of 20

Page 5: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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)

- .....

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 5 of 20

Page 6: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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”.

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 6 of 20

Page 7: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

- 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ớ.

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 7 of 20

Page 8: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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:

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 8 of 20

Bảng màu

Công cụ

Các lớp giao diện

Zoom

Tọa độ chuột

Các đối tượng đồ họa

Nét vẽ đối tượng

Page 9: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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

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

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 9 of 20

Hiển thị

Danh sách

Page 10: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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).

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 10 of 20

Page 11: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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í.

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 11 of 20

Page 12: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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.

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:

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 12 of 20

Tham số mặc định

Biên dịch

Thư vện hàm

Phạm vi hàm

Page 13: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

#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 floatif (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.

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 13 of 20

Page 14: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

Tạo các điều khiển khác

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 14 of 20

Page 15: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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ể

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 15 of 20

Page 16: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

Để 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

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 16 of 20

Page 17: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 17 of 20

Page 18: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 18 of 20

Page 19: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 19 of 20

Page 20: WinCC

Tiểu luận: Tìm hiểu Lập trình WinCC cho hệ thống SCADA

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.

Sinh Viên: Lê Đình Trường-Tink10b-ĐH Hồng Đức. Page 20 of 20