WinCC 7.2 - getriggertes VBS-Script per IF-Abfrage

motamas

Level-1
Beiträge
65
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallihallo liebe Forengemeinde,
ich habe ein VBS Script erstellt, welches nach einer IF-Abfrage eine Funktion aufrufen soll.
Prinzipiell funktioniert das, wenn ich meine IF-Abfrage wie folgt aufbaue:

Function action
If 2>1 Then
"Funktion"
End Ff
End Function

Das ist natürlich ziemlich sinnlos und soll in Abhängigkeit von zwei Variablen geschehen. Mein erstes Problem, wo ich mir nicht sicher bin wie es funktioniert ist, dass es keine Internen Variablen sind, sondern über das S7-Programm kommen. Sie liegen also in der SIMATIC S7 Protocol Suite unter Named Connections>S7-Programm(1) und heißen Test1 und Test2.
Wie muss ich diese Variablen jetzt in der IF-Abfrage aufrufen (es sind 32-bit Gleitkommazahlen)?
Reicht da einfach HMIRuntime.Tags("Test1") oder wie funktioniert das richtig?

Vielen Dank für eure Hilfe!
Grüße Thomas
 
Hallo Thomas

Suche mal bei Siemens das Handbuch A5E32315919-AA
Dort wird das meiste erläutert auch mit Beispielen.
Verschieden Methoden des lesens ab Seite 803.
Zu deinem kurzen Code.
Achte auf den Unterschied zwichen Sub und Funktion.
Grüsse Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du musst das Tag erst einlesen.
Hier mal ein Beispiel aus einem meiner Projekte

Code:
Dim ReturnValue 'Rückgabewert
Dim LogLevelTag 'Tag für LogLevel
Dim LogLevel
'WinCC-Variablen zuordnen
Set LogLevelTag = HMIRuntime.Tags("V1_LogLevel")
'LogLevel einlesen
LogLevel = LogLevelTag.Read
 
If LogLevel > 0 Then
 HMIRuntime.Trace("Action ac_WriteReq ausgeloest" & vbCrLf)
End If
'--------------------------
'Aufruf Write_to_DB
'-------------------------- 
ReturnValue = Write_to_DB
'Abfrage Schreiben in DB erfolgreich
If ReturnValue = True Then
 ' Erfolgreich
 If LogLevel > 0 Then
  HMIRuntime.Trace("Write_to_DB: Schreiben in Datenbank erfolgreich" & vbCrLf)
 End If 
Else
 ' nicht erfolgreich 
 If LogLevel > 0 Then
  HMIRuntime.Trace("Write_to_DB: Schreiben in Datenbank NICHT erfolgreich" & vbCrLf)  
 End If 
End If              
End Function
 
Vielen Dank für eure schnellen Antworten. Das Handbuch ist runtergeladen und ich werde mir das mal zu gemüte ziehen.
Zusätzlich werde ich das anlegen von temporären Variablen im Script im Hinterkopf behalten :D
 
Zurück
Oben