Tải bản đầy đủ (.pdf) (40 trang)

Thiết lập dự án SCADA trên WinCC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.35 MB, 40 trang )

Phan Duy Anh Ver.1
Chương 4:
THIẾT LẬP DỰ ÁN SCADA
TRÊN WinCC
Phan Duy Anh Ver.1
THIẾT LẬP DỰ ÁN SCADA TRÊN WinCC
Demo Project: Hệ thống trạm trộn (3)
Giống như hệ thống trạm trộn (2) ta đã thực hiện ở phần
trước, bây giờ bổ sung tính năng chạy tự động/bằng tay
(Auto/Manual). Chi tiết được mô tả như sau:
Phan Duy Anh Ver.1
THIẾT LẬP DỰ ÁN SCADA TRÊN WinCC
● Khi switch Auto/Manual chuyển sang vị trí Auto thì hệ thống tự
động hoạt động theo một chương trình cài sẵn: Ban đầu Valve
A mở để chất lỏng A vào bồn trong thời gian Ta, Sau đó đóng
Valve A, mở Vanlve B trong thời gian Tb. Khi hết thời gian này
thì đóng Valve B, bật Mixer hoạt động trong thời gian Tm. Sau
đó tắt Mixer và mở Valve C để thành phẩm ra ngoài trong
khoảng thời gian Tc. Kết thúc khoảng thời gian này, đóng Valve
C.
● Thời gian Ta, Tb, Tm hay Tc cho phép cài đặt bởi người vận
hành.
● Khi chạy tự động thì các buttons điều khiển bằng tay không còn
hiệu lực.
● Khi switch Auto/Manual chuyển sang vị trí Manual thì hệ thống
hoạt động ở chế độ bằng tay như trong phần 2 đã thực hiện.
Phan Duy Anh Ver.1
THIẾT LẬP DỰ ÁN SCADA TRÊN WinCC
Phan Duy Anh Ver.1
Chương 4:
THIẾT LẬP DỰ ÁN SCADA


TRÊN WinCC
Bài 9:
Visual Basic Script trên
WinCC
Phan Duy Anh Ver.1
Visual Basic Script trên WinCC
* Tổng quan
* Visual Basic Script
* Viết chương trình cho Project
Phan Duy Anh Ver.1
Tổng quan
● Ngôn ngữ lập trình được tích hợp kèm các phần mềm
SCADA để tăng thêm độ mềm dẻo khi kỹ sư dự án thực
hiện các yêu cầu phức tạp.
● WinCC ver 5. về trước chỉ hỗ trợ C Script, các phiên
bản sau này hỗ trợ tốt cả C Script (CS) và Visual Basic
Script (VBS).
● Hầu hết các phần mềm SCADA khác đều sử dụng VBS.
Phan Duy Anh Ver.1
Visual Basic Script trên WinCC
* Tổng quan
* Visual Basic Script
* Viết chương trình cho Project
Phan Duy Anh Ver.1
Visual Basic Script
● VBS được sử dụng trong WinCC để tăng tính linh hoạt
cho chương trình điều khiển giám sát bằng cách viết
code để tác động đến hệ thống.
● VBS có các khái niệm cần lưu ý:
+ Module

+ Procedure (thủ tục)
+ Action (hành động)
● Procedure: được dùng để chứa code, mỗi procedure
chỉ cần tạo một lần, sử dụng nhiều lần trong toàn bộ
project. Thay vì phải code nhiều lần, ta chỉ cần gọi
procudure liên quan. Với procedure, code sẽ tường
minh, và dễ kiểm soát.
Phan Duy Anh Ver.1
Visual Basic Script
● Các procedures có liên quan nhau thường được lưu
trong cùng một module.
● Module: hai loại standard module và project module
● Standard module: chứa các procedures toàn cục cho
các project. Các modules này được lưu trữ theo địa chỉ:
<WinCC installation directory>\ApLib\ScriptLibStd\<Module name>.bmo
● Project module: chứa các procedures riêng của
project. Các module này được lưu trữ theo địa chỉ:
<Project directory>\ScriptLib\<Module name>.bmo
Phan Duy Anh Ver.1
Visual Basic Script
Các procedures trong một standard module
Phan Duy Anh Ver.1
Visual Basic Script
● Trong procedures là các đoạn code chương trình được
viết để thực hiện một/những nhiệm vụ nào đó.
● Ví dụ: (xem thêm phần “VBS for creating Procedures
and Actions” trong file WinCC Help)
+ Đọc/Ghi giá trị Tag:
‘Định nghĩa một biến
Dim objTag

‘Gán biến này tới tag
Set objTag = HMIRuntime.Tags("Tag1")
‘Đọc giá trị của tag
objTag.Read
Phan Duy Anh Ver.1
Visual Basic Script
‘Tăng giá trị này lên 1 đơn vị
objTag.Value = objTag.Value + 1
‘Ghi giá trị này ra tag
objTag.Write
+ Chuyển màu nền của hình chữ nhật có tên Rectangle1 trong picture
thành màu đỏ:
‘Định nghĩa một biến
Dim objRectangle
‘Gán biến này thành đối tượng "Rectangle1“ trong picture
Set objRectangle = ScreenItems("Rectangle1")
‘Thay đổi màu nền của đối tượng thành màu đỏ
objRectangle.BackColor = RGB(255,0,0)
Phan Duy Anh Ver.1
Visual Basic Script
● Action: là hành động trong đó có chứa một hoặc nhiều
procedures và được kích hoạt bởi một sự kiện trigger
nhằm thực thi các đoạn code trong các procedures
chứa trong nó.
Phan Duy Anh Ver.1
Visual Basic Script
● Các sự kiện triggers dùng để kích hoạt action trong
VBS của WinCC gồm có: timer trigger và tag trigger.
● Timer trigger: thực thi một action tại một thời điểm cho
trước. Gồm hai loại: trigger có chu kỳ (cyclic) và trigger

không có chu kỳ (acyclic).
● Tag trigger: thực thi một action khi có sự thay đổi value
của tag.
Phan Duy Anh Ver.1
Visual Basic Script trên WinCC
* Tổng quan
* Visual Basic Script
* Viết chương trình cho Project
Phan Duy Anh Ver.1
Viết chương trình cho Project
● Trước tiên, cần thiết kế thêm cho Mixing_Station picture
như hình bên dưới.
Phan Duy Anh Ver.1
Viết chương trình cho Project
Switch Auto/Manual điều khiển tag Auto_Manual như hình.
Khi Switch ở Auto thì tag này có giá trị 1, khi switch ở Manual
thì tag này có giá trị 0.
Phan Duy Anh Ver.1
Viết chương trình cho Project
● Tạo thêm một picture có tên “Auto_Param” chẳn hạn có các
I/O fields ValveA, ValveB, ValveC, Mixer kết nối tương ứng
với các tags Time_Valve_A, Time_Valve_B, Time_Valve_C,
Time_Mixer qui định thời gian chạy tự động cho từng đối
tượng.
Phan Duy Anh Ver.1
Viết chương trình cho Project
● Trên picture Mixing_station tạo thêm một ‘picture window’ kết
nối đến picture ‘Auto_Param’.
Phan Duy Anh Ver.1
Viết chương trình cho Project

● Thêm button Config để hiện hay ẩn picture window này
Phan Duy Anh Ver.1
Viết chương trình cho Project
● Sau khi thiết kế hoàn thiện các trang picture, ta tiến hành viết
VBS cho chế độ tự động.
● Trên cửa sổ WinCC Explorer , click vào Global Script, mở
VBS-Editor.
Phan Duy Anh Ver.1
Viết chương trình cho Project
● Cửa sổ Global Script VBS xuất hiện
Phan Duy Anh Ver.1
Viết chương trình cho Project
● Trong tab ‘Project Modules’, tạo mới Module1.bmo. Trong
module1, tạo một procedure có tên Tag_setting chứa chương trình
tác động và trì hoãn cho một đối tượng tag:
'procedure set gia tri cua Tag len 1 trong 1 khoang thoi gian nhat dinh
Sub Tag_setting(Byval specified_amount_Tag, Byref Control_Tag)
'Khai bao thoi gian bat dau
Dim start_time
'Gan thoi gian hien tai
Start_time =Now()
'Set bit cua Tag
Control_Tag.value=1
Control_Tag.write
Phan Duy Anh Ver.1
Viết chương trình cho Project
'Doc value cua Tag chua khoang thoi gian
specified_amount_Tag.read(1)
'Neu hieu so giay cua thoi gian hien tai va thoi gian bat dau >
‘specified_amount thi gan 0 cho Tag

While ((Hour(Now())*3600 + Minute(Now())*60 + Second(Now()))-(Hour
(Start_time)*3600 + Minute(Start_time)*60 + Second(Start_time)))<=
(specified_amount_Tag.Value)
'khong lam gi ca, chi doi khoang thoi gian specified_amount ket thuc
Wend
'Neu hieu so giay cua thoi gian hien tai va thoi gian bat dau >
‘specified_amount thi gan 0 cho Tag
Control_Tag.value=0
Control_Tag.write
End Sub

×