Skip to content

timeservice

RealMerlin edited this page Mar 31, 2019 · 3 revisions

Zeitdienste im HCAN Netz

Da viele HCAN Module eine genaue Zeit- und Datumsinformation benoetigen (z.B. schalten die Controller-1612 Ausgaenge abhaengig von der Zeit, oder die Bedienfelder zeigen Zeit- und Datumsinformationen an), liegt es nahe, diese Informationen ueber den CAN Bus zu verteilen. Da ein Ausfall eines Zeit-Servers sehr unschoen ist - beispielsweise schalten dann die zeitabhaengigen Verbraucher falsch - verwendet das HCAN Buskonzept eine Hirarchie von Zeitservern.

Im Normalfall sendet der angeschlossene PC/Server die Zeitinfos - genauer gesagt der auf dem PC laufende telican im Timeserver Modus:

$ telican --timed &

Die Botschaften sehen so aus:

0036 -> 0036 :SFP RTS TIME_INFO level:0 day_of_week:6 hour:11 minute:38 second: 0
0036 -> 0036 :SFP RTS DATE_INFO level:0 day_of_month:26 month_of_year:8 year:6 

Zeit- und Datumsbotschaften werden immer an die Info Broadcast Adresse 36 versendet. telican verwendet im ''--timed'' Modus auch die 36 als Quelladresse.

TODO: Telican versendet am Tag der Zeitumstellung weiterhin die alte Uhrzeit. Dienst neustarten hilft.

Jeder Time Server hat einen Level zugewiesen: je kleiner die Level-Zahl, desto hoeher seine Prioritaet bzw sein Rang. telican sendet mit Level 0; es koennen nun auf mehreren Controller-1612 Modulen timeservice Devices mit hoeheren Leveln (d.h. niedrigerem Rang) konfiguriert werden. Jeder timeservice, der Zeit- oder Datumsbotschaften mit einem hoeheren Rang als sein konfigurierter Rang empfaengt, verhaelt sich passiv. Wenn die Botschaften mit hoeheren Rang allerdings fuer eine bestimmte Zeit ausbleiben, so wird er aktiv und sendet im konfigurierbaren Abstand aenden Zeit- und Datumsbotschaften mit seinem Level. Zwar ist die Zeitreferenz dann nicht so gut wie ein Stratum-1 Server, aber wichtig ist, dass alle Module die gleiche Zeit-Referenz haben. Sobald er wieder Botschaften mit hoeherem Rang empfaengt, geht er wieder in der passiven Zustand ueber.

Ein Beispiel fuer eine timeservice Konfiguration: Nach 80 Sekunden uebernimmt das Device, d.h. wird aktiv. Dann sendet es im 60-Sekunden Interval.

create timeservice
set level 1
set takeover_time 80
set interval 60
exit
Clone this wiki locally