-> Hier kostenlos registrieren
Hallo zusammen,
ich sitze gerade an einer Aufgabe und ich stecke fest. Bin neu in der Welt von AWL und die Vorgabe ist auch dass ich kein SCL verwenden kann. Die CPU ist eine S7-300 und ich programmiere es in AWL in Step 7. Das HMI ist ein MP 177 PN. Wie ich ein Array erreiche bzw. etwas reinschreibe habe ich den ettlichen Posts hier im Forum geschafft, danke mal. ^^
Das Array ist in einem DB das mit einem UDT erstellt wurde. Für Testzwecke sind nur 10 INT Elemente drinnen, es wird weiter ausgebaut wenn es dann ganz funktioniert. Wenn ich richtig gelesn habe sollte die Index Variable ein DINT sein.
Jetzt habe ich zwei kleinere Probleme:
Am Panel habe ich zwei Eingabefelder wo ich den Index und den Wert an das Programm übergebe. Will ich jetzt das Array von 0-9 nach einander füllen will, wird die vorherige Stelle mit 0 überschrieben. Springe ich aber von 0 auf 5 z.B bleibt der Wert erhalten, aber der Nachbarwert vom Sprungziel wird auf 0 gesetzt (Array[3]).
EDIT: Habe das Problem jetzt in den Griff bekommen. Siehe Edit im Code. Das zweite ist weiterhin bestehend.
Das andere ist, dass der Wert erst in das Array geschrieben werden soll wenn ich einen "Übernehmen" Button am Panel gedrückt habe. Die Werte werden mit einem EA Feld in WinCC am Panel eingegeben. Jetzt werden die Werte sofort in die Variable geschrieben wenn ich die Eingabe daster von dem dem EA Feld drücke. Kann ich die Funktion ausschalten bzw. die Werte auf einem anderem Weg vom HMI übertragen?
Unten ist der Code den ich verwende.
Danke im Voraus
ich sitze gerade an einer Aufgabe und ich stecke fest. Bin neu in der Welt von AWL und die Vorgabe ist auch dass ich kein SCL verwenden kann. Die CPU ist eine S7-300 und ich programmiere es in AWL in Step 7. Das HMI ist ein MP 177 PN. Wie ich ein Array erreiche bzw. etwas reinschreibe habe ich den ettlichen Posts hier im Forum geschafft, danke mal. ^^
Das Array ist in einem DB das mit einem UDT erstellt wurde. Für Testzwecke sind nur 10 INT Elemente drinnen, es wird weiter ausgebaut wenn es dann ganz funktioniert. Wenn ich richtig gelesn habe sollte die Index Variable ein DINT sein.
Jetzt habe ich zwei kleinere Probleme:
Am Panel habe ich zwei Eingabefelder wo ich den Index und den Wert an das Programm übergebe. Will ich jetzt das Array von 0-9 nach einander füllen will, wird die vorherige Stelle mit 0 überschrieben. Springe ich aber von 0 auf 5 z.B bleibt der Wert erhalten, aber der Nachbarwert vom Sprungziel wird auf 0 gesetzt (Array[3]).
EDIT: Habe das Problem jetzt in den Griff bekommen. Siehe Edit im Code. Das zweite ist weiterhin bestehend.
Das andere ist, dass der Wert erst in das Array geschrieben werden soll wenn ich einen "Übernehmen" Button am Panel gedrückt habe. Die Werte werden mit einem EA Feld in WinCC am Panel eingegeben. Jetzt werden die Werte sofort in die Variable geschrieben wenn ich die Eingabe daster von dem dem EA Feld drücke. Kann ich die Funktion ausschalten bzw. die Werte auf einem anderem Weg vom HMI übertragen?
Unten ist der Code den ich verwende.
Danke im Voraus
Code:
L "HMI_Stelle"
SLD 3
L 2
*I
T #Adresse
L "HMI_Wert"
AUF "Array_Werte"
T DBW [#Adresse] //Edit: DBD auf DBW geändert
Zuletzt bearbeitet: