WinCC VB Script in WINCC

FNK

Level-1
Beiträge
62
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Freunde,

kann jemand mir einen Tipp geben, wie ich aus Verknüpfung von 3 Intern-Variablen das Ergebnis einer Variabel zuweise?


Meine VB-Funktion funktioniert nicht:


Sub TRIPLE_FUNKTION()
If SmartTags ("ATCITYAKTIV")=True & ("ATCITYAKTIV")=True & ("ATCITYAKTIV")=True Then
SmartTags("ATTRIPLEFUNKTION")=True
' SmartTags("#TRIPLEANGEWÄHLT")=True
End If
End Sub




Viele Grüße
FNK
 
Moin FNK,

zunächst solltest Du bei boolschen Variablen in den Bedingungen nicht <Variable>=true abfragen. Der Variablenwert selber reicht. Dann ist die Syntax zur Variablenabfrage in den Bedingungen falsch!

Code:
Sub TRIPLE_FUNKTION()
If SmartTags[COLOR=#ff0000]<leerzeichen!?>[/COLOR]("ATCITYAKTIV")=True & [COLOR=#ff0000]SmartTags[/COLOR]("ATCITYAKTIV")=True & [COLOR=#ff0000]SmartTags[/COLOR]("ATCITYAKTIV")=True Then
 SmartTags("ATTRIPLEFUNKTION")=True
' SmartTags("#TRIPLEANGEWÄHLT")=True
End If
End Sub

Ich denke, das, was Du gepostet hast, ist eher ein Pseudocode? Denn in den Bedingungen fragst Du ein und dieselbe Variable ja 3x ab.

Wenn das alles bereinigt ist und Du trotzdem noch Fehler hast, hilft es, die Fehler mal in ein Textfeld oder so auszugeben.

Code:
If Err.Number <> 0 Then
    HmiRuntime.ActiveScreen.ScreenItems("[COLOR=#0000ff]Textfeld_1[/COLOR]").text = Err.Number & " " & Err.Description
End If

Das Textfeld muss natürlich existieren.

VG

MFreiberger
 
Meine VB-Funktion funktioniert nicht
Aha.
Wie hast Du das festgestellt?

Ich rate jetzt mal, was Du vielleicht meinen könntest:
- Du bekommst eine Fehlermeldung?
- Du bekommst keine Fehlermeldung??
- Die HMI-Variable "ATTRIPLEFUNKTION" bleibt immer True ?
- Die HMI-Variable "ATTRIPLEFUNKTION" ändert sich gar nicht?
- Deine WinCC Runtime schmiert sang- und klanglos ab?
- Deine WinCC Runtime schmiert nach der Meldung "Du kannst mich mal..." ab?
- Dein Comfort Panel geht einfach aus?
- Deine angeschlossene SPS geht in STOP?
- In Deiner Fabrikhalle geht das Licht Aus anstatt An?
- ???
Für weitere Möglichkeiten reicht meine Fantasie nicht, und mein Glaskugel habe ich in DE vergessen. ;)

Existieren die angegebenen HMI-Variablen?
Hast Du die Tipp- und Syntaxfehler beim Abtippen des Codes fürs Forum versehentlich gemacht oder sind die wirklich so in Deinem Code?
Wird Dein Skript überhaupt übersetzt?
Wird Dein Skript überhaupt ausgeführt?

Ich vermute mal, Du wolltest eigentlich:
Code:
If SmartTags("ATCITYAKTIV") AND SmartTags("ATCITYAKTIV") AND SmartTags("ATCITYAKTIV") Then
  SmartTags("ATTRIPLEFUNKTION") = True
End If
oder
Code:
SmartTags("ATTRIPLEFUNKTION") = SmartTags("ATCITYAKTIV") AND SmartTags("ATCITYAKTIV") AND SmartTags("ATCITYAKTIV")

Harald
 
Hallo Harald,

vielen Dank! Dein Vorschlag funktioniert. Ich habe ohne IF..THEN versucht, wie in Deinem Vorschlag und es funktioniert und keinen Fehler ausgibt!
Nochmals Dankeschön und viele Grüße

FNK:)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Iich würde dann daraus eine Function machen, um dieses Script universell nutzbar zu machen.

Function mit 3 Eingängen:

attachment.php



Und der Aufruf des Scripts:

attachment.php



Somit sind die Variablen einfach austauschbar statt fest im Script verschrieben.
:cool:
 

Anhänge

  • Function erstellen.jpg
    Function erstellen.jpg
    33,4 KB · Aufrufe: 66
  • Function aufrufen.jpg
    Function aufrufen.jpg
    11,7 KB · Aufrufe: 64
Zurück
Oben