Hallo,
wie du schon richtig beobachtet hast hat die OSCAT Lib an dieser Stelle einen Bug.
Als Hotfix kannst du die letzen beiden bytes auf 0 setzen.
#_DT[6] := 0;
#_DT[7] := 0;
Das funktioniert mit Einschränkungen. Denn in diesen Bytes sind neben der Zeit in ms auch der Wochentag kodiert. Solange dieser nicht verwendet wird ist alles ok.
Was bei dir wahrscheinlich passiert ist dass anschließend eine Funktion aufgerufen wird die DT nach TOD transferiert. Dazu muss von BCD Format wider umgewandelt werden.
Der Siemens Baustein macht aber vor der BCD Wandlung eine Prüfung ob die Wandlung funktioniert. Wenn diese Fehlschlägt wegen un initialisierten Daten wie sie von SET_DT erzeugt werden macht diese Funktion einfach nix -> wiederum potentiell nicht initialisierte Daten. Und kein Syncronfehler mit BCD Wandlungsfehler.
Viele Grüße
Oliver
wie du schon richtig beobachtet hast hat die OSCAT Lib an dieser Stelle einen Bug.
Als Hotfix kannst du die letzen beiden bytes auf 0 setzen.
#_DT[6] := 0;
#_DT[7] := 0;
Das funktioniert mit Einschränkungen. Denn in diesen Bytes sind neben der Zeit in ms auch der Wochentag kodiert. Solange dieser nicht verwendet wird ist alles ok.
Was bei dir wahrscheinlich passiert ist dass anschließend eine Funktion aufgerufen wird die DT nach TOD transferiert. Dazu muss von BCD Format wider umgewandelt werden.
Der Siemens Baustein macht aber vor der BCD Wandlung eine Prüfung ob die Wandlung funktioniert. Wenn diese Fehlschlägt wegen un initialisierten Daten wie sie von SET_DT erzeugt werden macht diese Funktion einfach nix -> wiederum potentiell nicht initialisierte Daten. Und kein Syncronfehler mit BCD Wandlungsfehler.
Viele Grüße
Oliver