HMI Eingaben in leere Zeilen eines Arrays schreiben

Neuling94

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

BeckhoffT TwinCAT 3 Engineering + HMI, Masterarbeit im Bereich Ingenieurwesen

ich möchte Eingaben, die in das HMI gemacht werden, in einer Zeile im Array in der PLC speichern, die Eingabe leeren und bei einer nächsten HMI-Eingabe, diese in der nächsten Zeile im Array speichern. Hat jemand eine Idee, wie ich das angehen könnte? Eingaben machen und diese in das Array speichern funktioniert schon, aber den Textblock dann wieder auf 0 zu setzen und bei einer erneuten Eingabe dann in die nächste Zeile zu springen noch nicht.

Viele Grüße
Neuling94
 
Man könnte hinter dem EA-Feld einen Button mit "Eingabe" machen, und damit dann Auslösen in den nächsten Array Eintrag zu springen. Beim EA-Feld könnte man das gut mit Multiplexen regeln.

//EDIT: Was mir gerade noch einfällt. Habe gerade kein TIA zur Hand, aber unter "Ereignisse" vom EA-Feld gibt es glaube ich das Ereignis "Eingabe abgeschlossen", das könntest du ebenfalls anstatt des o.g. Buttons benutzen. Könnte allerdings Probleme geben, wenn der Bediener etwas falsches eingegeben hat.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Könnte auch ganz gut möglich sein, daß das HMI gar nicht mit TIA programmiert wird. :cool: Bei der schwammigen Nicht-Angabe, um welches HMI es geht, kann man auch nur allgemeingültige Hinweise geben...

Harald
 
Ich benutze das hier: Beckhoff TF2000 TC3 HMI Server und programmiere in Visual Studio, also nicht mit TIA. Tut mir leid, ich bin komplett neu hier im Bereich Programmierung und dachte die Angaben oben reichen.

Wenn ich also mit dem Button Eingabe die Werte in die Zelle im Array speichere und dann die Inhalte des EA-Feld lösche, klappt das schonmal. Aber bei erneuter Eingabe wird der Array nur überschrieben. Wie kann ich hier schreiben, dass in die nächste Zelle geschrieben werden soll? Ich kann nur die einzelnen Zellen verlinken, nicht aber die nächste Zelle zB mit +1 auswählen, wenn ich richtig geschaut habe.
 
Nur mal so grob ->

PLC:
Eingabewert (INT?)
Array [x..y] of INT
Index (INT)
Übernahme (BOOL)

HMI:
Eingabefeld auf Eingabewert
Button -> setzt Übernahme

Programm PLC:
Index = Start (nur einmal zum Programmbeginn)
...
Übernahme?
Array[Index] := Eingabewert
Index := Index+1
Eingabewert = leer
Übernahme rücksetzen
...


Mit dem HMI nicht direkt ins Array schreiben, sondern immer in die gleiche Variable außerhalb des Arrays.
Das Übertragen ins Array macht dann die PLC. Eventuell auch das Index-Ermitteln, welches Feld das nächste leere ist.
 
Benutzt du ein Datagrid zur Anzeige des Arrays? Du kannst Werte in einem Datagrid direkt beschreiben und die Daten werden dann in die entsprechenden Array Elemente übertragen.
 
Zurück
Oben