You are on page 1of 40

Chng 4: THIT LP D N SCADA TRN WinCC

Phan Duy Anh Ver.1

THIT LP D N SCADA TRN WinCC

Demo Project: H thng trm trn (3) Ging nh h thng trm trn (2) ta thc hin phn trc, by gi b sung tnh nng chy t ng/bng tay (Auto/Manual). Chi tit c m t nh sau:

Phan Duy Anh Ver.1

THIT LP D N SCADA TRN WinCC


Khi switch Auto/Manual chuyn sang v tr Auto th h thng t ng hot ng theo mt chng trnh ci sn: Ban u Valve A m cht lng A vo bn trong thi gian Ta, Sau ng Valve A, m Vanlve B trong thi gian Tb. Khi ht thi gian ny th ng Valve B, bt Mixer hot ng trong thi gian Tm. Sau tt Mixer v m Valve C thnh phm ra ngoi trong khong thi gian Tc. Kt thc khong thi gian ny, ng Valve C. Thi gian Ta, Tb, Tm hay Tc cho php ci t bi ngi vn hnh. Khi chy t ng th cc buttons iu khin bng tay khng cn hiu lc. Khi switch Auto/Manual chuyn sang v tr Manual th h thng hot ng ch bng tay nh trong phn 2 thc hin.
Phan Duy Anh Ver.1

THIT LP D N SCADA TRN WinCC

Phan Duy Anh Ver.1

Chng 4:

THIT LP D N SCADA TRN WinCC


Bi 9:

Visual Basic Script trn WinCC


Phan Duy Anh Ver.1

Visual Basic Script trn WinCC


* Tng quan * Visual Basic Script * Vit chng trnh cho Project

Phan Duy Anh Ver.1

Tng quan

Ngn ng lp trnh c tch hp km cc phn mm SCADA tng thm mm do khi k s d n thc hin cc yu cu phc tp. WinCC ver 5. v trc ch h tr C Script, cc phin bn sau ny h tr tt c C Script (CS) v Visual Basic Script (VBS). Hu ht cc phn mm SCADA khc u s dng VBS.

Phan Duy Anh Ver.1

Visual Basic Script trn WinCC


* Tng quan * Visual Basic Script * Vit chng trnh cho Project

Phan Duy Anh Ver.1

Visual Basic Script


VBS c s dng trong WinCC tng tnh linh hot cho chng trnh iu khin gim st bng cch vit code tc ng n h thng. VBS c cc khi nim cn lu : + Module + Procedure (th tc) + Action (hnh ng) Procedure: c dng cha code, mi procedure ch cn to mt ln, s dng nhiu ln trong ton b project. Thay v phi code nhiu ln, ta ch cn gi procudure lin quan. Vi procedure, code s tng minh, v d kim sot.

Phan Duy Anh Ver.1

Visual Basic Script


Cc procedures c lin quan nhau thng c lu trong cng mt module. Module: hai loi standard module v project module Standard module: cha cc procedures ton cc cho cc project. Cc modules ny c lu tr theo a ch:
<WinCC installation directory>\ApLib\ScriptLibStd\<Module name>.bmo

Project module: cha cc procedures ring ca project. Cc module ny c lu tr theo a ch:


<Project directory>\ScriptLib\<Module name>.bmo

Phan Duy Anh Ver.1

Visual Basic Script

Cc procedures trong mt standard module


Phan Duy Anh Ver.1

Visual Basic Script


Trong procedures l cc on code chng trnh c vit thc hin mt/nhng nhim v no . V d: (xem thm phn VBS for creating Procedures and Actions trong file WinCC Help)
+ c/Ghi gi tr Tag:
nh ngha mt bin Dim objTag Gn bin ny ti tag Set objTag = HMIRuntime.Tags("Tag1") c gi tr ca tag objTag.Read

Phan Duy Anh Ver.1

Visual Basic Script


Tng gi tr ny ln 1 n v objTag.Value = objTag.Value + 1 Ghi gi tr ny ra tag objTag.Write

+ Chuyn mu nn ca hnh ch nht c tn Rectangle1 trong picture thnh mu :


nh ngha mt bin Dim objRectangle Gn bin ny thnh i tng "Rectangle1 trong picture Set objRectangle = ScreenItems("Rectangle1") Thay i mu nn ca i tng thnh mu objRectangle.BackColor = RGB(255,0,0)

Phan Duy Anh Ver.1

Visual Basic Script


Action: l hnh ng trong c cha mt hoc nhiu procedures v c kch hot bi mt s kin trigger nhm thc thi cc on code trong cc procedures cha trong n.

Phan Duy Anh Ver.1

Visual Basic Script


Cc s kin triggers dng kch hot action trong VBS ca WinCC gm c: timer trigger v tag trigger. Timer trigger: thc thi mt action ti mt thi im cho trc. Gm hai loi: trigger c chu k (cyclic) v trigger khng c chu k (acyclic). Tag trigger: thc thi mt action khi c s thay i value ca tag.

Phan Duy Anh Ver.1

Visual Basic Script trn WinCC


* Tng quan * Visual Basic Script * Vit chng trnh cho Project

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Trc tin, cn thit k thm cho Mixing_Station picture nh hnh bn di.

Phan Duy Anh Ver.1

Vit chng trnh cho Project

Switch Auto/Manual iu khin tag Auto_Manual nh hnh. Khi Switch Auto th tag ny c gi tr 1, khi switch Manual th tag ny c gi tr 0.
Phan Duy Anh Ver.1

Vit chng trnh cho Project


To thm mt picture c tn Auto_Param chn hn c cc I/O fields ValveA, ValveB, ValveC, Mixer kt ni tng ng vi cc tags Time_Valve_A, Time_Valve_B, Time_Valve_C, Time_Mixer qui nh thi gian chy t ng cho tng i tng.

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Trn picture Mixing_station to thm mt picture window kt ni n picture Auto_Param.

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Thm button Config hin hay n picture window ny

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Sau khi thit k hon thin cc trang picture, ta tin hnh vit VBS cho ch t ng. Trn ca s WinCC Explorer , click vo Global Script, m VBS-Editor.

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Ca s Global Script VBS xut hin

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Trong tab Project Modules, to mi Module1.bmo. Trong module1, to mt procedure c tn Tag_setting cha chng trnh tc ng v tr hon cho mt i tng 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

Vit chng trnh 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

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Trong Tab Action, to mi mt action1.bac, l hnh ng chy t ng khi chuyn sang Auto mode:
Option Explicit Function action 'Khai bao 'Cac bien chua trang thai cac valves, mixer Dim auto 'Gan cac bien voi cac Tag tuong ung Set auto= HMIRuntime.Tags("Auto_manual") auto.Read 'Neu Tag auto chuyen tu 0->1 thi chay tu dong If auto.Value Then

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Dim Valve_A Dim Valve_B Dim Valve_C Dim Mixer 'Cac bien chua thoi gian trong cac tags thoi gian Dim Time_VA Dim Time_VB Dim Time_VC Dim Time_M 'Gan cac bien voi cac Tag tuong ung Set Valve_A= HMIRuntime.Tags("Valve_A") Set Valve_B= HMIRuntime.Tags("Valve_B") Set Valve_C= HMIRuntime.Tags("Valve_C") Set Mixer= HMIRuntime.Tags("Mixer")

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Set Time_VA= HMIRuntime.Tags("Time_Valve_A") Set Time_VB= HMIRuntime.Tags("Time_Valve_B") Set Time_VC= HMIRuntime.Tags("Time_Valve_C") Set Time_M= HMIRuntime.Tags("Time_Mixer") 'Tac dong valve A 'Mo Valve A torng thoi gian Time_VA giay Tag_setting Time_VA , Valve_A 'Tac dong valve B 'Mo Valve A torng thoi gian Time_VA giay Tag_setting Time_VB, Valve_B

Phan Duy Anh Ver.1

Vit chng trnh cho Project


'Tac dong Mixer 'Mo Valve A torng thoi gian Time_VA giay Tag_setting Time_M, Mixer 'Tac dong valve C 'Mo Valve A torng thoi gian Time_VA giay Tag_setting Time_VC, Valve_C Else 'Neu Tag auto chuyen tu 1->0 thi ngung chay Valve_A.Value 0 ,1 Valve_B.Value 0 ,1 Valve_C.Value 0 ,1 Mixer.Value 0 ,1 end If 'Ket thuc End Function

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Cu hnh cho action ny c kch hot khi value ca tag Auto_Manual thay i: Nhn vo biu tng m info/Trigger Dialog.

Chn Tag Auto_Manual lm Trigger Tag cho action1


Phan Duy Anh Ver.1

Vit chng trnh cho Project

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Thm mt yu cu na, khi chuyn mode t Manual sang Auto th kha cc buttons iu khin trn Manual Mode Control Panel. lm c iu ny, ta khai bo thm 1 tag Lock_button iu khin tnh nng Operator-Control Enable. Khi Tag ny l 1 th cho php cc buttons iu khin, nu l 0 th ngc li

Phan Duy Anh Ver.1

Vit chng trnh cho Project


V khi tag Auto_Manual l 1 (Auto Mode) th tag Lock_Button l 0 v khi tag Auto_Manual l 0 (Manual Mode) th tag Lock_Button l 1. lm iu ny, ta thm mt action2 nh sau:
Option Explicit Function action 'Khai Bao bien Dim auto Dim lock 'Ket noi voi cac Tags tuong ung Set auto=HMIRuntime.Tags("Auto_manual") Set lock=HMIRuntime.Tags("Lock_button")

Phan Duy Anh Ver.1

Vit chng trnh cho Project


'Doc gia tri cua tag Auto_manual auto.Read(1) 'Neu tag Auto_manual la 1 thi tag Lock_button la 0 If auto.Value Then lock.Write 0 , 1 Else 'Neu tag Auto_manual la 0 thi tag Lock_button la 1 lock.Write 1 , 1 End If End Function

Phan Duy Anh Ver.1

Vit chng trnh cho Project


Action ny cng c kch hot khi tag Auto_Manual thay i gi tr.

Phan Duy Anh Ver.1

Visual Basic Script trn WinCC


* Tng quan * Visual Basic Script * Vit chng trnh cho Project

Phan Duy Anh Ver.1

Visual Basic Script trn WinCC


Thit lp thuc tnh Runtime cho Project:

Phan Duy Anh Ver.1

Visual Basic Script trn WinCC


Nhn thc thi runtime ca project. Nhn button config ci t thi gian chy t ng cho h thng.

Phan Duy Anh Ver.1

Visual Basic Script trn WinCC


Gt switch Auto/Manual sang Auto Mode, h thng s hot ng t ng theo cc khong thi gian ci t trc. Lc ny cc buttons iu khin bng tay trn control panel b m i.

Phan Duy Anh Ver.1

Ti Liu Tham Kho


WinCC User Manual //-------------------------------------

Phan Duy Anh Ver.1

You might also like