Function mit in VBScript mit WinCC flexible

PeterGötz

Level-1
Beiträge
48
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich sitze schon ein ganz Zeit (6Stunden) vor meiner ersten VB-Funktion . Bislang hab ich nur Sub´s geschrieben. Die Syntax-Prüfung von WinCC flexible (für ein TP270) behauptet das Script liefere keinen Rückgabewert, obwohl es als Function definiert ist.

Function Nutzdaten (Komplettdaten) String
. Dim Nutzdatenlaenge
. Nutzdatenlaenge = InStr(1, Komplettdaten, "^FS", 1) ' Long-Format
. Nutzdaten = Left(Komplettdaten, Nutzdatenlaenge-1)
End Function

Das Script ermittelt innerhalb eines Strings über einen Mustervergleich das
erste ^FS Zeichen und gibt die Stellung an (Nutzdatenlänge).
Dann wird einfach alles hinter dem Suchmuster mit der Left-Function abgeschnitten.
Ich gehe davon aus, das "Nutzdaten" mein Rückgabewert ist und
"Komplettdaten" mein Übergabewert. Scheinbar liege ich falsch.
Sieht jemand meinen Unwissen. Als Sub läuft das ganze auch, aber nicht als Funktion. ich muss die Prüfung an 24 Eingabefeldern durchführen, daher will ich dies als Funktion progammieren.

Folgendes Beispielscript der Siemens-Hilfe weist genau denselben syntaktischen Fehler auf.

Function Celsius(GradF)
Celsius = (GradF - 32) * 5 / 9
End Function

Liefert keinen Wert zurück, obwohl als Function definiert, behauptet der Interpreter von WinCC.

Gruß Peter Götz
 
Zuletzt bearbeitet:
Ich kenne ja VBS nicht aber mir würden zwei Sachen Einfallen die Du versuchen könntest.

1. Dem Rückgabewert String mal eine Länge zuordnen

oder.

2. Der Funktion keinen Rückgabewert zuordnen das habe ich gerade beim Suchen oft gesehen.


PS: zu 2. das hat mich stark verwundert
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich kenne ja VBS nicht aber mir würden zwei Sachen Einfallen die Du versuchen könntest.

1. Dem Rückgabewert String mal eine Länge zuordnen

oder.

2. Der Funktion keinen Rückgabewert zuordnen das habe ich gerade beim Suchen oft gesehen.


PS: zu 2. das hat mich stark verwundert


Danke, beides blieb ohne Erfolg. Gruß Peter Götz
 
Folgendes Beispielscript der Siemens-Hilfe weist genau denselben syntaktischen Fehler auf.

Function Celsius(GradF)
Celsius = (GradF - 32) * 5 / 9
End Function

Liefert keinen Wert zurück, obwohl als Function definiert, behauptet der Interpreter von WinCC.

Gruß Peter Götz

Hallo Herr Götz,

ich hab das Beispiel mal ausprobiert, es funktioniert.

Vorgehensweise in WinCC flexible 2005:

- neues Skript anlegen
- Name: "Celsius"
- Typ: Function
- Paramter: "GradF" -> Hinzufügen
- In der Funktion: Celsius= (GradF - 32) * 5 / 9

Aufruf der Fuktion:
Schaltfläche -> Ereignis klicken
Benutzerscript "Celsius" auswählen
Rückgabwert: Name eines Textfeldes angeben
GradF: habe ich der einfachheithalber einen festen Wert angegeben

Runtime mit Simulator gestraten -> Beim Klick auf die Schaltfläche wir der Rückgabwert der Funktion im Textfeld angezeigt.
 
Zurück
Oben