DNS Client, SNTP Client und RTC_2

Begonnen von marhard, 04. Mai 2011, 11:56:39

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

marhard

und weil ich gerade so schön am Testen bin gleich noch eine Frage zu den Bausteinen DNS Client, SNTP Client und RTC_2.

In dem Beispiel von DLOG_STORE_FILE_CSV werden Lichtbänder nach einer Tageszeit geschaltet. Dazu lese ich die Uhrzeit vom CE System aus. Das Problem dabei ist aber lt. Beckhoff das scheinbar in Windows CE ein Bug bei der Sommerzeitumstellung ist. Bei der letzten Umstellung im März wurde die Zeit nicht an die Sommerzeit angepasst sonder blieb auf Normalzeit. Unter Windows CE ist ein Timeserver eingetragen der alle 60 Minuten abgefragt werden soll. Scheinbar funktioniert dies aber nicht immer. Meine Lösung wäre jetzt diese Bausteine einzusetzen und mir meine Zeit unabhängig von Windows CE zu stellen.

Ich habe ein kleines Testprogramm zusammengestellt aber der DNS Client liefert mir keine gültige IP4 Adresse. Auch keine Errormeldung.
Mache ich vielleicht irgendetwas falsch?

Zum Baustein RTC_2 (auch wenn er eigentlich zur Basic lib gehört):
wenn ich dort den Parameter DEN (Sommerzeit Ein) auf True setze, dann wird nur die Minute um 1 erhöht und nicht die Stunde. Ich habe vermutlich einen Fehler gefunden der übersehen wurde als der Offset auf Minutenvorgabe geändert wurde.

Bestehender Code:

(* calculate time offset and set ldt output *)
LDT := DWORD_TO_DT(DT_TO_DWORD(UDT) + INT_TO_DWORD(ofs + BOOL_TO_INT(DSO)) * 60);


Geänderter Code:

(* calculate time offset and set ldt output *)
LDT := DWORD_TO_DT(DT_TO_DWORD(UDT) + INT_TO_DWORD(ofs + (BOOL_TO_INT(DSO)*60)) * 60);


Nach der Änderung wird die Lokalzeit richtig dargestellt.

gruss marhard

[gelöscht durch Administrator]

peewit

warum gar nichts passiert, und auch keine fehlermeldung kommt  liegt daran das du das wichtigste vergessen hast

der baustein ip_control !

schau dir in der bibliothek dieses beispiel an \demo\DNS_SNTP_SYSLOG_DEMO

-------------------------

du hast leider nicht als erstes den rtc_2 fehler gefunden
aber trotzdem danke für die info !

http://www.oscat.de/community/index.php/topic,1277.0.html

marhard

danke für die schnelle Antwort!

Ich habe diese Demo jetzt ausprobiert und sie funktioniert. Aber nur einmal, danach bekomme ich beim SNTP Baustein immer einen Fehler 16#0000FF00 (Empfangen Timeoutfehler). Kann es sein das in zu kurzen Abständen abgefragt wird?

gruss marhard

[gelöscht durch Administrator]

peewit

also der fehler bedeutet das keine oder keine verwertbare antwort empfangen wurde.
ob hierbei überhaupt daten gesendet werden konnten kann bei udp ja nicht festgestellt werden

so wie es aussieht läuft dns jedoch sntp nicht immer
es kann leicht sein das der sntp_server denn du verwendest dich als "feind" ansieht wenn du alle 10 sekunden die zeit abfragst !!
ist natürlich überhaupt nicht sinnvoll (1 bis 2 x pro tag reicht völlig)


das einfachste ist wahrscheinlich wenn du per wireshark (etherreal) denn datenverkehr aufzeichnest, dann können wir gleich sehen
was geht raus und was kommt rein

dann kann man sehr schnell die ursache feststellen
es gibt leider viele mögliche ursachen

du kannst mal probeweise die timeoutzeit beim ip_control höherstellen, bzw die abfragezeit wesentlich erhöhen, oder einen anderen sntp-server verwenden

gruss peewit