Hallo Forumsgemeinde,
Ich braeuchte bei einem semigrossen Problem Hilfe. Das Problem scheint beim Befehl "CInt" in meinem Skript zu liegen.
Momentan arbeite ich an einem etwas ausfuehrlicheren WinCC-Thema mit WinCC Professional V14, weshalb ich euch jetzt die genaue Beschreibung des gesamt Projektes ersparen moechte.
Das Problem bremst alles etwas und tritt in einer meiner Functions auf. Die Function dient dazu in einer for-Schleife eine CSV-Datei zu fuettern. Die Anzahl von Schleifendurchlaeufen unterscheidet sich mit jedem Aufruf der Function in einer unbestimmten Reihenfolge. Die jeweilige Anzahl an Schleifendurchlaeufen ist in einer Textliste der HMI-RT gespeichert. Das Auslesen aus der Textliste funktioniert einwandfrei, allerdings als String.
Da ich dann eine Fehlermeldung bei der For-Schleife bekommen habe (irgendwas in Richtung "Typunverträglichkeit" genau weis ich es leider nicht mehr), wollte ich schlicht und ergreifend den String in eine Integervariable konvertieren mit "CInt(Expression)". Allerdings bekomme ich jetzt die Fehlermeldung "Error: Typenunvertraeglichkeit: 'CInt' als Laufzeitfehler in MS VBScript. Ich habe jetzt schon so einiges probiert bekomme aber den Fehler einfach nicht weg.
- auskommentieren der Zeile mit CInt -> Fehler trat nicht mehr auf
- in eine neue "nackte" Variable geschrieben
- in eine interne HMI-Variable per SmartTags geschrieben
- als zu Konvertierende Variable nicht die Script- sondern die HMI-Variable verwendet
Es kam immer wieder (ausser Punkt 1) zum gleichen Fehler. Unten fuege ich den Code an, falls ich einfach nur etwas wegen Codeblindheit uebersehen habe. (Es sind auch alle Versuche mit eingefuegt)
Vielen Dank schonmal an alle, die sich die Zeit nehmen das hier anzusehen und vor allem an diejenigen, die mir weiterhelfen koennen.
Code:
Sub Batch_Ausgabe(ByVal Fct_Name)
Dim Anz_Sollwerte
Dim TempText
Anz_Sollwerte = 0
TempText = ""
Textlist_Index = 10002
'Auslesen wieviele Sollwerte die Funktion hat
LookupText "FKT01-01_Batch_TempText","FKT01-01_Batch_Textlist_Index",HMIRuntime.Language, Fct_Name
TempText = SmartTags("FKT01-01_Batch_TempText")
Anz_Sollwerte = Cint(TempText)
'Anz_Sollwerte = CInt(SmartTags("FKT01-01_Batch_TempText"))
'SmartTags("FKT01-01_Batch_Textlist_Index") = CInt(TempText)
'Anz_Sollwerte = SmartTags("FKT01-01_Batch_Textlist_Index")
For LoopCount = 1 To Anz_Sollwerte
'blabla
'noch unwichtig
Next
End Sub