WinCC flexible Runtime stürzt bei Script ab

Human

Level-1
Beiträge
272
Reaktionspunkte
33
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe für WinCC flexible aus den Standart-Komponenten eine Tabelle zusammengebastet, in der der Benutzer Zeilen auswählen kann und die Zellen dieser Zeile sollen auf Knopfdruck in ein paar String-Variablen geschrieben werden.

Es sind 400 E/A-Felder, die in 8 Spalten angeordnet sind, die Felder wurden nach dem Schema <Zeilennummer>.<Spaltennummer> benannt.

Auf jeder Zeile liegt eine unsichtbare Schaltläche, die ein Bit in einem BitArray setzt, damit ich weiß was der Benutzer auswählen will.

Das Füllen wird über eine CSV-konvertierte Textdatei realisiert, und wegen der hohen Anzahl an Feldern kann man zuschauen, wie die Felder der Tabelle mit der Werten gefüllt werden.

Bis zum Auswählen funktioniert das alles ohne Probleme.

Wenn ich jetzt das Script ausführe um den Inhalt der Felder zu lesen und in die Variable zu schreiben macht dies die Runtime beim 1. Mal, beim 2. Mal wird irgendwas anderes, was im Script verwendet wurde reingeschrieben und beim dritten Mal, wenn nicht schon beim zweiten Mal, hängt sich die Runtime auf und es kommt die Meldung: "WinCC flexible RT Modlue: HmiRTm hat ein Problem festgestellt und muss beendet werden."

Das Script sieht folgendermaßen aus:

Übergebene Parameter sind "Bild", damit das Script auf mehrere Tabellen anwendbar ist.

Code:
Dim y,i
 
'Die Zeile finden, die ausgeählt ist, Item_Index ist ein BitArray mit 50
Elementen
For i = 0 To 49
  If HmiRuntime.SmartTags("Item_Index")(i) = TRUE Then
    y = i
  End If
Next
 
'Die Strings aus den Feldern auslesen und in eine Variable schreiben
HmiRuntime.SmartTags("Wert0") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".0").ProcessValue
HmiRuntime.SmartTags("Wert1") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".1").ProcessValue
HmiRuntime.SmartTags("Wert2") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".2").ProcessValue
HmiRuntime.SmartTags("Wert3") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".3").ProcessValue
HmiRuntime.SmartTags("Wert4") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".4").ProcessValue
HmiRuntime.SmartTags("Wert5") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".5").ProcessValue
HmiRuntime.SmartTags("Wert6") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".6").ProcessValue
HmiRuntime.SmartTags("Wert7") = HmiRuntime.Screens(Bild).ScreenItems(CStr(y) + ".7").ProcessValue

Ich werde das Projekt noch hochladen, es ist allerdings "nur" 16 MB groß... :???:
 
Hallo.

Hast du dein "Systemmeldefenster" schon mit in die Vorlage eingebunden? Bei Fehler in Skripten werden die dort angezeigt. Wenn nicht die genaue Fehlerursache festegestellt werden kann, so wird wenigstens die Zeile angezeigt wo das Skript "hängt". Ich tippe aber mal darauf dass du den Adressbereich verlässt. Hatte ich auch schon mal. Wenn dir das im Simulator passiert kannst du deinen Projektierungsrechner runterfahren - sonst geht gar nichts mehr :-(
 
Zurück
Oben