Human
Level-1
- Beiträge
- 272
- Reaktionspunkte
- 33
-> 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.
Ich werde das Projekt noch hochladen, es ist allerdings "nur" 16 MB groß... :???:
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ß... :???: