TIA Mit Ereignis Wert in Elemet von Array schreiben

revilo16

Level-1
Beiträge
82
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte in mit TIA V14 WinCC Adv. mit einem Button den Wert von Array_A[x] in Array_B[x] schreiben.
"x" muss dabei zur Laufzeit nicht Variabel sein, sondern kann z.B. fest mit "3" projektiert werden.

Für "normale" Variablen nutzt man dazu die Funktion "SetzeVariable" in den Ereignissen.
Bei Arrayelementen funktioniert das aber scheinbar nicht? (TIA meckert wg. nicht erlaubtem Datentyp).

Jetzt meine Frage:
Wie kann ich das am einfachsten lösen?

Ich habe 2 Varianten im Kopf:
1. Ein Bit in einer Variable setzen welches in der SPS ausgewertet wird um den Kopiervorgang durchzuführen und dann zurück gesetzt wird.
2. Ein Skript aufrufen welche das Element, das beim Aufruf mitgegeben wird (Index) kopiert.
Allerdings bin ich beim Skripten sehr unerfahren und wäre bei dieser Lösung um ein Ansatz sehr froh.

Was meint ihr? Was ist der bessere Weg? Beides kommt mir ziemlich umständlich vor.
Geht es vielleicht doch einfacher?

Mfg
 
Empfohlenes Vorgehen: Eine Bool-HMI-Variable auf 1 setzen und den Array-Wert in der SPS kopieren und die Bool-HMI-Variable zurücksetzen, etwa so:
Code:
IF xHMI_Button_123 THEN
  xHMI_Button_123 := 0;
  Array_B[x] := Array_A[x];
END_IF;

Ein Array-Element vom HMI schreiben ist generell keine gute Idee, weil bei jedem Zugriff auf ein Array das gesamte Array gelesen/geschrieben wird. Wenn es nur einen Schreibzugriff auf ein Arrayelement gibt ohne daß das Array zuvor garantiert komplett ins HMI eingelesen wurde, dann werden die nicht eingelesenen Elemente auf 0 bzw. den letzten gelesenen Wert oder den festgelegten Anfangswert geschrieben.

Tipp: als "Button" einen Schalter (z.B. Schalter "mit Text", 3D) verwenden, dann sieht man schön animiert, daß beim Drücken/Einschalten der Button in "gedrückt"-Ansicht geht und nach der Verarbeitung in der SPS (löschen der Schalter-Variable) wieder in "ungedrückt"-Ansicht.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Dir. Demnach nur die Lösung in der SPS sinnvoll, gut zu wissen.
Da ich aufgrund einiger anderer neuen Variablen jetzt so oder so doch auf das nächst grösere PowerTags Paket hoch muss habe ich mich in diesem Fall dazu Entschieden die Variablen Einzel statt als Array im HMI zu verarbeiten. So lassen sich auch wieder Grenzen im HMI definieren und ich muss das nicht in der SPS machen..
 
Zurück
Oben