Ich kanns leider nicht testen, hab kein LCD Display da.
Aber versuch doch einfach mal statt dem Message Text den Uhrzeit-String drauf zu schreiben.... was macht er dann?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hatte ich mir so ähnlich gedacht , bekomme aber keine STRING zeit im Ptogramm hin . In der funktion hätte ich diese aber bekomme diese nicht eingefügt.
Das LCD Programm macht sowas ähnliches, ich tuh es mal hinzufügen . Vielleicht überseh ich etwas.
VAR
utcTime : DWORD;
dwResult : DWORD;
udiResult : UDINT;
tCurrentDT : SYSTIMEDATE;
sDisplayTime : STRING;
END_VAR
sehr seltsam ich hab jetzt auch dieses Programm nochmal versucht bringt trotzallem keine werte nicht mal auf sMyTimeAndDate.
langsam hab ich das gefühl irgendwas vergessen zu haben ein Bibl. oder irgendwas ähnliches.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ok,
Ich hab mal bissl ausgemistet... Denk das müsste so laufen. Prinzipiell hab ich an deinem PRG nix geändert...
Wenn du ein Archiv hier rein stellst, musst du keine online-Daten mitgeben...Dein Zielsystem hat sowieso keiner.
Hab leider kein Panel, konnte es deshalb nicht wirklich testen...
Endlich es läuft , lediglich ist die Zeitzone Falsch quasi ist im Programm 1h hinter winterzeit.
Wie bekomme ich das genau hin das es diese automatisch stellt?
Seit ich das überarbeitete Programm nutz stürtzt es nach einer zeit einfach ab und bringt mir den Fehler im Bild.
Zeitzone kannst du auch mit der gleichen Bibliothek auslesen wie die Uhrzeit in meinem Baustein.
Die kannst dann entsprechend vor der Konvertierung noch addieren...aber erst in Millisekunden umrechnen!
Schau mal in der lib wie die Funktion heißt...habs ned im Kopf.
Gruß Chris
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hab ich alles mal durchgeschaut,hab aber nichts gefunden . das problem tritt erst auf wenn ich MyNewTime in das Display Programm einfüge.
Der Fehler tritt erst nach mehreren Minuten bis 1h auf.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wenn du das Programm ausführst oder wirklich erst wenn dus ins Display schreibst?
Wenn du auf den Ausnahmefehler Doppelklick machst....wo springt er hin?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hab mich verschrieben , er tritt auf wenn er die zeit am Display schreibt.
Hab ich versucht, nur der mittlerer der 3 fehler bringt dass er mich nicht weiterleiten kann da er mit keinem pou verknüpft ist.
Hatte aber nichts gefunden wie das geht.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OKay hat sich alles erledigt das FC_GetLocalTime hatte eine Rechenoperation durchgefürt und somit die Stunden geändert.
Für mich zwar noch etwas unverständlich aber läuft jetzt.
Last edit: marcelszameitat 2020-03-29
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ich kanns leider nicht testen, hab kein LCD Display da.
Aber versuch doch einfach mal statt dem Message Text den Uhrzeit-String drauf zu schreiben.... was macht er dann?
Hatte ich mir so ähnlich gedacht , bekomme aber keine STRING zeit im Ptogramm hin . In der funktion hätte ich diese aber bekomme diese nicht eingefügt.
Das LCD Programm macht sowas ähnliches, ich tuh es mal hinzufügen . Vielleicht überseh ich etwas.
VAR
utcTime : DWORD;
dwResult : DWORD;
udiResult : UDINT;
tCurrentDT : SYSTIMEDATE;
sDisplayTime : STRING;
END_VAR
utcTime:= SysTimeRtcGet(pResult:= dwResult);
udiResult := SysTimeRtcConvertUtcToDate(dwTimestampUtc:= utcTime, pDate:= tCurrentDT);
IF LEN(STR:= WORD_TO_STRING(tCurrentDT.wMonth)) = 1 THEN
sDisplayTime := '0';
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2 := WORD_TO_STRING(tCurrentDT.wMonth));
ELSE
sDisplayTime := WORD_TO_STRING(tCurrentDT.wMonth);
END_IF
IF LEN(STR:= WORD_TO_STRING(tCurrentDT.wDay)) = 1 THEN
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= '/0');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wDay));
ELSE
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= '/');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wDay));
END_IF
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= '/');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wYear));
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= ' - ');
IF i_xDalightSavings THEN
IF tCurrentDT.wHour <= 5 THEN
tCurrentDT.wHour := 24 - (5 - tCurrentDT.wHour);
ELSE
tCurrentDT.wHour := tCurrentDT.wHour - 5;
END_IF
ELSE
IF tCurrentDT.wHour <= 4 THEN
tCurrentDT.wHour := 24 - (4 - tCurrentDT.wHour);
ELSE
tCurrentDT.wHour := tCurrentDT.wHour - 4;
END_IF
END_IF
IF i_xMilitaryTime THEN
IF tCurrentDT.wHour < 10 THEN
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= '0');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wHour));
ELSE
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wHour));
END_IF
ELSE
IF tCurrentDT.wHour > 12 THEN
tCurrentDT.wHour := tCurrentDT.wHour - 12;
END_IF
IF tCurrentDT.wHour < 10 THEN
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= '0');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wHour));
ELSE
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wHour));
END_IF
END_IF
IF tCurrentDT.wMinute < 10 THEN
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= ':0');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wMinute));
ELSE
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= ':');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wMinute));
END_IF
IF tCurrentDT.wSecond < 10 THEN
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= ':0');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wSecond));
ELSE
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= ':');
sDisplayTime := CONCAT(STR1:= sDisplayTime, STR2:= WORD_TO_STRING(tCurrentDT.wSecond));
END_IF
FC_GetLocalTime := sDisplayTime;
RETURN;
Dann probier doch folgendes:
Kommentier das hier mal alles aus und füg meinen Code ein.
Bau dir am Ende meines Codes einen komplett-String mit Datum und Uhrzeit zusammen. Diesen legst du dann auf sDisplay Time.
Schau mal was passiert...
Klingt jetzt vielleicht blöd, aber selbst da kommen nur "???" . Hab erstmal nur dein programm versucht.
Naja innerhalb der Funktion ist das klar.. ist ja auch ne Funktion. Gugg doch mal, was dir die Funktion als Rückgabewert bringt.
Ansonsten mach das ganze als Funktionsbaustein und instanzier diesen in deinem Programm... dann siehst du auch Werte.
Funktionsbaustein:
Programm:
Jetzt kannst du Werte innerhalb deines FB's sehen und müsstest die aktuelle Zeit mit Datum auf dem String "sMyTimeAndDate" haben.
sehr seltsam ich hab jetzt auch dieses Programm nochmal versucht bringt trotzallem keine werte nicht mal auf sMyTimeAndDate.
langsam hab ich das gefühl irgendwas vergessen zu haben ein Bibl. oder irgendwas ähnliches.
Hast du das Programm, in dem du deinen FB drin hast auch in einer Task aufgerufen?
Jup hatte was vergessen, das funktioniert lediglich eine Stunde zurück aber geht . Wenn ich das bei sMessage ausgeben möchte kommt ein Fehler.
Jup hatte was vergessen, das funktioniert lediglich eine Stunde zurück aber geht . Wenn ich das bei sMessage ausgeben möchte kommt ein Fehler.
Mach doch mal die Initialisierung raus... was passiert dann?
Ohne bringt er nur fehler, mit Var input bringt er das gleiche
schick mir doch mal das Programm (Projektarchiv bitte)... dann kann ich mal rein schauen... ansonsten brauch ich ne Glaskugel...
Wenn ich jetzt noch wüsste wie , ein Projektarchiv hab ich schon mal nur Hochladen lässt es sich nicht.
Wenn du hier nen Post schreibst und unten auf Post klickst... darüber gibt es "Add attachments" Hier kannst dus hochladen...
Eine Bibl. hatte blockiert.
Kannst du bitte die Bibliotheken mit ins Archiv packen. Ich hab eigentlich keine Lust mir alle LIbs zusammenzusuchen.
Danke
Hab nur ein paar rausnehmen müssen, da es sich sonst nicht hochladen lassen hat.
Ok,
Ich hab mal bissl ausgemistet... Denk das müsste so laufen. Prinzipiell hab ich an deinem PRG nix geändert...
Wenn du ein Archiv hier rein stellst, musst du keine online-Daten mitgeben...Dein Zielsystem hat sowieso keiner.
Hab leider kein Panel, konnte es deshalb nicht wirklich testen...
Endlich es läuft , lediglich ist die Zeitzone Falsch quasi ist im Programm 1h hinter winterzeit.
Wie bekomme ich das genau hin das es diese automatisch stellt?
Seit ich das überarbeitete Programm nutz stürtzt es nach einer zeit einfach ab und bringt mir den Fehler im Bild.
Last edit: marcelszameitat 2020-03-26
Vllt hängst du irgendwo in ner Schleife fest?
Zeitzone kannst du auch mit der gleichen Bibliothek auslesen wie die Uhrzeit in meinem Baustein.
Die kannst dann entsprechend vor der Konvertierung noch addieren...aber erst in Millisekunden umrechnen!
Schau mal in der lib wie die Funktion heißt...habs ned im Kopf.
Gruß Chris
Hab ich alles mal durchgeschaut,hab aber nichts gefunden . das problem tritt erst auf wenn ich MyNewTime in das Display Programm einfüge.
Der Fehler tritt erst nach mehreren Minuten bis 1h auf.
Wenn du das Programm ausführst oder wirklich erst wenn dus ins Display schreibst?
Wenn du auf den Ausnahmefehler Doppelklick machst....wo springt er hin?
Hab mich verschrieben , er tritt auf wenn er die zeit am Display schreibt.
Hab ich versucht, nur der mittlerer der 3 fehler bringt dass er mich nicht weiterleiten kann da er mit keinem pou verknüpft ist.
Hatte aber nichts gefunden wie das geht.
OKay hat sich alles erledigt das FC_GetLocalTime hatte eine Rechenoperation durchgefürt und somit die Stunden geändert.
Für mich zwar noch etwas unverständlich aber läuft jetzt.
Last edit: marcelszameitat 2020-03-29