Über WinCC flex Variablen per Script in einem Datenbaustein auf der SPS überschreiben

Help.exe

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

ich arbeite an einer S7-300 Station welche mit einem MP277 Touchpanel verbunden ist.
Das Programm auf der S7 prüft die Geschwindigkeit vorbeifahrener Züge und speichert diese in einem DB und Überschreitungen der max. Geschwindigkeit in einem anderen.

Per Script habe ich mit viel Zeit und Hilfe aus diesem Forum es realisiert das die Daten in einer CSV Datei auf einem Stick gespeichert werden
Die Datensätze setzen sich aus Geschwindigkeit, Datum, Uhrzeit zusammen.(Es gibt 200 Datensätze)

Jetzt ist es jedoch erwünscht das nach dem Übertragen der Daten die alten Einträge gelöscht werden.
Mein Ansatz war diese Funktion ebenfalls mit einem Script zu realisieren, nur leider bekomme ich bei meinen Versuchen immer Fehlermeldungen.

Hier ist mein Script:
For i=0 To 199 Step 1

Set SmartTags("Datentabelle.Messwerte["&i&"].Geschwindigkeit") = Nothing
Set SmartTags("Datentabelle.Messwerte["&i&"].Datum") = Nothing
Set SmartTags("Datentabelle.Messwerte["&i&"].Uhrzeit") = Nothing
Set SmartTags("Überschreitung.Messwerte["&i&"].Geschwindigkeit") = Nothing
Set SmartTags("Überschreitung.Messwerte["&i&"].Datum") = Nothing
Set SmartTags("Überschreitung.Messwerte["&i&"].Uhrzeit") = Nothing

If Err.Number <> 0 Then
ShowSystemAlarm ("1Error in code ! " & CStr(Err.Number) & ", " & Err.Description)
Err.Clear

End If
Next

Ich habe es auch schon über Variablen Probiert mit ähnlichen Ergebnissen.

Set RTempo = SmartTags("Datentabelle.Messwerte["&i&"].Geschwindigkeit")
SetValue RTempo, 0

Meine Frage an euch...
Bin ich auf einem Holzweg oder Übersehe ich hier das offensichtliche???

Ich hoffe ihr könnt mir helfen

Grüße,

Help.exe
 
Set SmartTags("Datentabelle.Messwerte["&i&"].Geschwindigkeit") = Nothing
Willst du hier das SmartTags-Objekt löschen oder den Wert der HMI-Variablen auf 0 setzen?
Bei letzterem schreib einfach:
Code:
SmartTags("Datentabelle.Messwerte["&i&"].Datum") = 0

Das kannst du dir auch sparen....
Set RTempo = SmartTags("Datentabelle.Messwerte["&i&"].Geschwindigkeit")
SetValue RTempo, 0
Das Erzeugen einer lokalen Kopie von einem SmartTags-Objekt ist ebenfalls unnötig.
Schreib einfach...
Code:
SmartTags("Datentabelle.Messwerte["&i&"].Geschwindigkeit") = 0
Die Zuweisung eine Wertes auf das SmartTags-Objet ist ident zum Zugriff auf .Value.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du könntest einfach der SPS Bescheid geben, daß die Datensätze x .. y gelöscht/genullt werden sollen. In der SPS programmiert sich das vieeel einfacher :cool:


PS: Hast Du tatsächlich in dem MP277 alleine nur für die Datensätze 600 einzelne Variablen angelegt? Und wie bekommst Du die Werte konsistent aus der SPS ins MP277 und weiter in die csv-Datei? Prüfe mal nach: Sind in der csv-Datei tatsächlich immer die richtigen Werte oder stehen da manchmal unerwartet ein Haufen Nullen drin?

Harald
 
Hi,

Ich bin das Problem jetzt in Step 7 angegangen und soweit ging es auch bedeutend einfacher. Dort habe ich jetzt mit Hilfe des SFC21 nach setzen des Einganges 1.0 die db's mit den Messwerten mit Nullen gefüllt.:D

Problem ist jetzt, das ich über das MP277 keine vernünftige Rückmeldung zur SPS hinbekomme.

:ROFLMAO::ROFLMAO:Es sind Insgesamt 1200 Variablen, da es für die Überschreitungen ebenfalls 200 Datensätze gibt. Wenn ich die Daten aus dem Datenbaustein mit der CSV Datei vergleiche, dann stimmen die Werte überein.
Das Panel aktualisiert alle Variablen im Sekundentakt.

Vielen Dank für die Hilfen. Die haben mich weitergebracht ;-)

Gruß,
Help.exe
 
Problem ist jetzt, das ich über das MP277 keine vernünftige Rückmeldung zur SPS hinbekomme.
???


Es sind Insgesamt 1200 Variablen, da es für die Überschreitungen ebenfalls 200 Datensätze gibt. Wenn ich die Daten aus dem Datenbaustein mit der CSV Datei vergleiche, dann stimmen die Werte überein.
Das Panel aktualisiert alle Variablen im Sekundentakt.
1200 Variablen mit Erfassungsart "Zyklisch fortlaufend" alle 1s ? (wegen einmal am Tag csv-speichern?)
Oder hast Du alle 1200 Variablen irgendwie in einem Bild untergebracht (dem Bild, wo das csv-speichern-Skript aufgerufen wird)?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja alle Variablen werden Zyklisch fortlaufend im Sekundentakt aktualisiert. Jetzt wo du mich darauf hinweist erscheint das übertrieben.

Der Rest hat sich geklärt. Soweit sind alle Funktionen wie erwünscht.

Help.exe
 
Zuletzt bearbeitet:
Zurück
Oben