DCF77

DCF77 is een tijdzender die doorlopend een tijdsignaal uitzend op een frequentie van 77,5 kHz (lange golf). De zender staat in de Duitse Mainflingen gelegen in de buurt van Frankfurt de afwijking is hoog uit een paar miliseconden. Het is een AM gemoduleerd signaal en elke seconde wordt er een puls verstuurd. Iedere seconde wordt er, met uitzondering van de 59e, een secondepuls uitgezonden die een duur heeft van 100 of 200 milliseconden. De combinatie van afwisselend een lange dan wel korte puls, bevat de nodige informatie voor wat betreft jaar, maand, dag, uur, minuut, seconde, zomertijd, dag van de week, etc. Een puls van 200 miliseconden is logisch 1 en een puls van 100 miliseconden logisch 0. Zomertijd (bit 16) en schrikkel seconde (bit 19) aankondiging zijn een uur van te voren logisch 1.

Bit (seconde)NaamBeschrijving
0MMinuutmarkering
1-14-gereserveerd
15R1 als reserve-zendantenne in gebruik is
16A1Aankondiging omschakeling zomertijd
17-18Z1, Z201 tijdens wintertijd, 10 tijdens zomertijd
19A2Aankondiging schrikkelseconde
20SStart van tijdsbericht, altijd 1
21-24Eenheden minuten
25-27Tientallen minuten
28P1Checksum van bit 21-27
29-32Eenheden uren
33-34Tientallen uren
35P2Controlesom bit 29-34
36-39Eenheden datum
40-41Tientallen datum
42-44Dag van de week
45-48Eenheden maand
49Tiental maand
50-53Eenheden jaartal (00..99)
54-57Tientallen jaartal (00..99)
58P3Controlesom bit 36-57
(59)-Ontbrekende impuls; markeert einde van een minuut

Het signaal is vrij eenvoudig te onleden met een PLC, het voordeel is dat je de puls uitgang van de ontvanger op een normale digitale input kunt aansluiten, dit in tegenstelling tot GPS tijdsynchronisatie waar mee je serieel moet communiceren. Je wacht op de onbrekende puls en vervolgens laat je de seconde teller mee lopen met het signaal hierbij vul je een array met 60 bits met 1 of 0.
DCF77 werkt met even parity, dat werkt als volgt:
De uren bijvoorbeeld bestaan uit 6 bits plus een pariteitbit (zie bitindeling hierboven). De bitjes die '1' zijn, worden opgeteld inclusief de pariteitbit, de uitkomst moet een even getal zijn. Als er dus een bit verkeerd is ontvangen, een '0' is als '1', of een '1' als '0' ontvangen, dan is de uitkomst oneven. Stel dat het 4 uur 's morgens is, de 6 bit uren bittrein is dan 00 0100, Omdat er dan maar 1 bit hoog is, is de pariteitbit van de uren die daar direct achter wordt uitgezonden ook een '1' om tot een even getal te komen.
Is het 6 uur 's morgens de bittrein is dan 00 0110 dan zal het pariteitbit laag blijven.
Als er een minuut verstreken is en de pariteitbits kloppen ook doorloop je de cyclus nogmaals en controleert aan het einde of het ook echt een minuut later is, hierna ben je gesynchroniseerd en kun je elke minuut de PLC klok synchroniseren. Bij zomertijd wisseling zou dit mis gaan en kost het weer een paar minuten om te synchroniseren vandaar dat er een zomertijd aankondiging is.

Er zijn DCF ontvangers te koop met een 24V puls uitgang, maar een simpele ontvanger van Conrad of een goedkope DCF klok slopen voor de ontvanger voldoet ook prima, je zult het pulssignaal dan wel met behulp van wat electronica op moeten krikken tot 24V