das sollte eigentlich funktionieren.
Anhang anzeigen 61867
Guten Morgen Volker,
erstmal Danke für die Rückmeldung.
Fall 1:
Es ist so: Ich habe auf das HMI 2 Datum/Uhrzeit_Felder für Startdatun und AktuellesDatum hinzugefügt. Dazu habe ich auch ein Eingabefeld für Tageszahl mit Datentyp Int und noch ein Datum/Uhrzeit_feld für eine Variable Enddatum hinzugefügt. Das Enddatum ergibt sich aus der Summe des eingegebenen plus die Tageszahl. Das Ergebnis dieser Summe vergleiche ich mit dem gegebenen AktuellDatum, um am Ende ein True oder False bei Zeitüberschritten zu bekommen. Das funktionniert soweit. Aslo wenn ich das Datum manuel in den Felder des Hmi-Panel eingebe, ändert sich auch im Beobachtungsmodus im Programm. Umgekehrt, wenn ich im Beobachtungsmodus die Werten (Steuerwerte) ins Programm ändere, ändert sich auch in den Felder des Hmi-Panel. Also genau wie Volker gemacht hat, hatte ich schon probiert und es funktioniert auch gut.
Aber..Aber...Aber...
die Aufgabe muss anders gelöst werden, und zwar folgendermaßen:
Fall 2:
Ich muss ins HMI-Panel für jede Komponente des Strukturs Startdatum, ein Feld hinzufügen. Das heisst:
- Für den Tag, muss ich ein E/A-feld haben
- fürs Jahr auch ein E/A-feld haben
- Für den Monat auch ein E/A-Feld haben.
Die selbe Felder muss ich beim AktuellesDatum herstellen. Also genau so wie es auf mein Bild zu sehen ist. Das Enddatum kann ich einfach so wie im Fall 1 lassen, da es sich einfach aus der Berechnung ergibt. Somit muss da nichts eingegeben werden werden.
bei jedem dieser Felder muss ich eine Variable so hinterlegen, dass wenn ich zum Beispiel im Programm der Tag (Day) der Struktur ändere, dann wird dieser Steuerwert ins HMI in das hinterlegte E/A-Feld für den Tag des Startdatums dargestellt und umgekehrt. Selbes Spiel mit den E/A-Felder von Monat und Jahr.
Jetzt kommt das Hauptproblem:
betrachten wir erstmal den E/A-Feld von Tag für das Startdatum. Weil wenn das Problem für dieses Feld gelöst wird, mache ich einfach das Selbe für die anderen Felder.
In das E/A-Feld Tag, habe ich das Element "Day" meiner Struktur "Startdatum" hinterlegt. Das heisst, wenn ich im Online Modus gehe und in meine Beob-Tabelle einen Steuerwert für Day eingebe und steuere, dieser Wert erscheint auf mein HMI in das E/A-Feld von Tag. Das ist soweit gut.
ABER..... wenn ich jetzt auf dem Display in das E/A-Feld Tag irgendein Wert eingebe mit der Erwartung dass dieser Wert im Programm bei dem Element "Day" der Struktur Startdatum übernommen wird, geht es nicht. Warum? Es Ist genau mein Problem.
Also wie ich mir das Ganze anschaue, liegt das Problem daran, dass ich vom Display kein Zugriff auf die Elemente der Struktur Startdatum.
Also es muss eine eigene Struktur mit Elementen (Tag, Monat und Jahr) so programmieren, dass:
- Jedes 4 Jahren Februar 29 Tagen hat, ansonsten immer 28 Tagen,
- am 31.Dezember 2022 zum beispiel, wenn man 1 Tag addiert, dann taucht man ins folgende Jahr und somit kommt automatisch 01.01.2023
- Fürs Element Monat zum Beispiel, kann man nicht mehr als 12 eintragen, da es im Jahr nur 12 Monaten gibt und geben kann
-für den Tag kann man nicht mehr als 31 eintragen, da ein Monat nicht mehr als 31 Tagen haben kann. Für januar kann man nur bis 31 bei Tag eintragen, Februar max 28 eintragen und jeden 4 Jahren ( in 2020,2024,2028,2032.usw..), März max 31 Tagen , April max 30 usw... die übrigen Monaten bleiben unabhängig vom Jahr unverändert.
Wie kann ich das beheben? Hat jemand bitte einen Lösungsvorschlag?
wäre sehr dankbar dafür
VG
Stefan
