PC Uhrzeit mit Mikrocontroller auslesen?

Moderator (Firma: Titel) Persönliche Seite #2437038
Lesenswert?

H. G. schrieb:
> Hat jemand eine Idee, wie man die Uhrzeit auslesen kann?
Peter II schrieb:
> echo %time% > COM1
Die Frage war wie man sie von aussen auslesen kann. Nicht wie man sie 
vom PC aus ausgeben kann...

Allerdings ist das doch sowieso Unsinn, denn leichter lässt man eine Uhr 
auf dem uC laufen. Eine Schaltuhr funktioniert ja auch ganz ohne 
irgendeine Zeit irgendwo auszulesen? Oder habe ich das spezielle 
Problem nicht erkannt?
Gast #2437047
Lesenswert?

H. G. schrieb:
> Nur weis ich nicht, wie das geht.

steht doch schon da, lass den PC einfach die Urzeit über die Serielle 
schnittstelle senden (script steht schon oben) dann kannst du sie am µC 
einlesen. Oder gleich ein RTC Modul verwenden, diese genauigkeit sollte 
sie doch schaffen.
OP #2437051
Lesenswert?

> steht doch schon da, lass den PC einfach die Urzeit über die Serielle
> schnittstelle senden (script steht schon oben) dann kannst du sie am µC
> einlesen.

OK! Das sollte funktionieren.
Wie sieht dann das Protokoll aus, welches ich über die serielle erhalte?
#2437053
Lesenswert?

H. G. schrieb:

> Da dachte ich, ich nutze die PC-Zeit und frage die irgendwie mit einem
> UC ab?

Du kannst sie nicht einfach so von aussen abfragen.
Wie immer gilt: Im PC muss ein Programm (Service) laufen, welches darauf 
wartet, dass von aussen wer eine Anfrage stellt und dann Auskunft über 
das Gewünschte gibt (nachdem das Programm möglicherweise geprüft hat, ob 
der Fragesteller überhaupt berechtigt ist, eine Antwort zu bekommen)
#2437055
Lesenswert?

H. G. schrieb:
>> steht doch schon da, lass den PC einfach die Urzeit über die Serielle
>> schnittstelle senden (script steht schon oben) dann kannst du sie am µC
>> einlesen.
>
> OK! Das sollte funktionieren.
> Wie sieht dann das Protokoll aus, welches ich über die serielle erhalte?

Das legst DU fest.
Die Serielle ist nur der Übertragungskanal, wie ein Telefon. In welcher 
Form dann die Zeitauskunft die Zeit übermittelt, legst du fest, weil du 
die Zeitauskunft programmieren musst, die die Auskunft liefert.
OP #2437073
Lesenswert?

Wenn mein PC-Programm z.B. 1xpro Min.

> echo %time% > COM1

durchführt, dann erhalte ich doch ein Signal mit der Information der 
Zeit.
Und dieses Protokoll müsste ich doch kennen, damit ich damit was 
anfangen kann.

Oder bin ich da jetzt auf dem Holzweg?
Moderator (Firma: Titel) Persönliche Seite #2437080
Lesenswert?

H. G. schrieb:
> D.h: +- 1Min. pro Jahr.
> Da dachte ich, ich nutze die PC-Zeit
So eine PC-Uhr ist aber nicht ausreichend genau, wenn sie nicht ab&an 
z.B. übers Internet synchronisiert wird.

Zur Betrachtung der nötigen Genauigkeit:
+-1 min/Jahr sind +-1min/525600min, und das mithin +-2ppm. Das muß schon 
ein recht stabiler Quarz sein...  :-o
#2437084
Lesenswert?

H. G. schrieb:
> Wenn mein PC-Programm z.B. 1xpro Min.
>
>> echo %time% > COM1
>
> durchführt, dann erhalte ich doch ein Signal mit der Information der
> Zeit.
> Und dieses Protokoll müsste ich doch kennen, damit ich damit was
> anfangen kann.

Wenn du das so machen willst, ist das ok.

Lass dir die Ausgabe halt nicht auf die Serielle umleiten, sondern 
direkt ausgeben, dann weißt du, wie das daherkommt.

echo %time%


Und wie willst du das jetzt alle 1 Minute laufen lassen?
1
Microsoft Windows [Version 6.0.6002]
2
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.
3

4
C:\Users\kbuchegg>echo %time%
5
12:32:16.91
6

7
C:\Users\kbuchegg>echo %time%
8
12:32:18.04
9

10
C:\Users\kbuchegg>echo %time%
11
12:32:19.85
12

13
C:\Users\kbuchegg>
#2437099
Lesenswert?

H. G. schrieb:
>> Und wie willst du das jetzt alle 1 Minute laufen lassen?
>
> Ich dachte mir, ich schreibe ein kleines C#-Programm, welches einmal
> gestartet wird, im Hintergrund läuft und 1x pro Min. die Zeit an die
> serielle sendet.

Also sind wir wieder dort, dass DU das Datenformat festlegst, mit dem 
dein C# Programm die aktuelle Uhrzeit auf der Seriellen ausgibt.
#2437110
Lesenswert?

Was spricht dagegen, ein Datenblatt anzuschauen ? Schlussendlich kommt's 
auf den Quarz an. Ein billigst Uhrenquarz mit 32768Hz fuer 16cts an 
einem RTC bringt vielleicht 10ppm. Wenn man's besser haben will, und ein 
paar Euro hinlegt kommt man vielleicht auf 1ppm. Dann sollte man langsam 
die Umwelteinfluesse einberechnen. Was ist der Temperaturgang der 
Schaltung ?
0.1ppm ist noch zahlbar.

Ist die erforderte Genauigkeit ein ueblicher akademischer Furz ohne 
genauen Grund ?
OP #2437126
Lesenswert?

> Ist die erforderte Genauigkeit ein ueblicher akademischer Furz ohne
> genauen Grund ?

Es geht um eine Lichtsteuerung, wo die Uhrzeit eine Steueraufgabe 
übernimmt, die über Jahre recht genau sein soll.
D.h, das Licht sollte sich auch nach 5 Jahren um z.B. 23:00 ausschalten 
und nicht um 22:45 oder 23:15.

DCF77 kommt nicht in Frage, da kein Empfang.
PC und Internet ist vorhanden, daher die Idee mit der PC-Uhr.
#2437162
Lesenswert?

> PC und Internet ist vorhanden, daher die Idee mit der PC-Uhr.

Und der PC läuft auch über Jahre hinweg durch? Wäre es dann nicht 
einfacher die Steuerung des Lichtes und die Schaltzeiten direkt vom PC 
aus zu machen und am Mikrocontroller nur Befehle wie "Licht ein" "Licht 
aus" zu Empfangen?

Ansonsten würde ich eine RTC verwenden und täglich die Zeit anpassen. 
Glaube kaum das du innerhalb eines Tages so große Abweichungen bekommst 
das du es merkst. Damit umgehst du auch Probleme wenn mal kurzfristig 
die Internetverbindung ausfällt oder der PC anderwertig Probleme macht.

Martin
Gast #2437165
Lesenswert?

Das DIng läuft fünf jahre unbemannt, ohne Kontroller durch Dich?

Sowas glaub ich niemandem.

Nimm einfach eine Zeitschaltuhr aus dem Baumarkt, schau ab und an nach, 
ob die Uhrzeit noch stimmt. Und gut.
Gast #2437190
Lesenswert?

> Nimm einfach eine Zeitschaltuhr aus dem Baumarkt, schau ab und an nach,
> ob die Uhrzeit noch stimmt. Und gut.

ACK, Wiki meint dazu:

Die Netzfrequenz im europäischen Verbundnetz eignet sich wegen der 
geringen Abweichungen von der Nennfrequenz als Zeitgeber für Uhren. 
Trotz der geringen Abweichungen können sich dabei Fehler von einigen 
Sekunden pro Tag ergeben. Um den Zeitfehler gering zu halten wird die 
Netzzeitabweichung als Differenz zwischen Koordinierter Weltzeit und der 
auf Basis der Netzfrequenz ermittelten Zeit zentral[4] erfasst und 
korrigiert. Überschreitet die Netzzeitabweichung +/-20 Sekunden, dann 
wird die Nennfrequenz für die Frequenzregler bei vorauseilender Netzzeit 
um 10 mHz auf 49,990 Hz reduziert, bei nacheilender Netzzeit um 10 mHz 
auf 50,010 Hz erhöht[5]. Dadurch passt sich die Netzzeit langsam wieder 
an die Koordinierte Weltzeit an. Die Netzzeit stellt damit eine 
langfristig sehr genaue Zeitbasis mit kurzfristigen Schwankungen im 
Sekundenbereich dar.
Gast #2437387
Lesenswert?

Muss es denn unbedingt ein (Windows?-)PC sein, der da läuft, der frisst 
ja auch einiges an Strom über die Jahre?

Da wäre evtl. das Bifferboard, Beagleboard, gnublin, etc etc 
interessant, die brauchen sehr wenig Strom und laufen mit Linux.
Gast #2437420
Lesenswert?

H. G. schrieb:
> Es geht um eine Lichtsteuerung, wo die Uhrzeit eine Steueraufgabe
> übernimmt, die über Jahre recht genau sein soll.
> D.h, das Licht sollte sich auch nach 5 Jahren um z.B. 23:00 ausschalten
> und nicht um 22:45 oder 23:15.

Musst du auch auf Sommer-/Winterzeit achten? Oder ist das egal.

Zur Frage mit dem Protokoll: du bekommst die Daten einfach als 
ASCII-Werte über die serielle Schnittstelle. Im Mikrocontroller müsstest 
du das einfach in eine Uhrzeit konvertieren. Da steckt kein komplexes 
Protokoll dahinter.
Gast #2437535
Lesenswert?

H. G. schrieb:
>> Ist die erforderte Genauigkeit ein ueblicher akademischer Furz ohne
>> genauen Grund ?
>
> Es geht um eine Lichtsteuerung, wo die Uhrzeit eine Steueraufgabe
> übernimmt, die über Jahre recht genau sein soll.
> D.h, das Licht sollte sich auch nach 5 Jahren um z.B. 23:00 ausschalten
> und nicht um 22:45 oder 23:15.
>
> DCF77 kommt nicht in Frage, da kein Empfang.
> PC und Internet ist vorhanden, daher die Idee mit der PC-Uhr.

Warum kommt DCF nicht in Frage? Ich denke dabei nicht an eine 
Bastellösung mit einem  Wurst Empfangsmodul sondern an eine vernünftige 
Lösung. DCF funktioniert übrigens auch  im Keller!
Gast #2437540
Lesenswert?

Ich würde hier evtl. trotzdem eine DCF Variante anstreben.
Wenn der Empfang schlecht ist, könnte man doch ein DCF Modul mit
Auswertung und seriellen Sender irgendwo weiter weg positionieren.

Sonst das Pollin Net AVR ans LAN hängen, mit NTP syncen und ggf.
noch übers Netz steuern, Schaltuhrfunktion sollte noch nebenbei laufen.
Gast #2437666
Lesenswert?

wer_hat_an_der_uhr_gedreht schrieb:
> Die Netzfrequenz im europäischen Verbundnetz eignet sich wegen der
> geringen Abweichungen von der Nennfrequenz als Zeitgeber für Uhren.

Und zwar besser als jede Quarzgetriggerte RTC.

H. G. schrieb:
> Die PCs sind sowiso vor Ort und laufen rund um die Uhr.

Auch bei einem Systemfehler, wenn das System neu gestartet werden muss?

Wo läuft die Uhr überhaupt? In einem 20 Meter tiefen Stahlbetonbunker?
#2437837
Lesenswert?

In meinen Augen sehe ich ganz klar ein DS1307 mit Batterie oder Goldcap 
Puffer, gegen die allfälligen Stromausfälle und der PC sendet 1x am Tag 
dem µC die aktuelle Uhrzeit, welche er selbst zu dem Zeitpunkt gerade 
aus dem NTP gezogen hat. Sollte der PC schon keine gescheiten Daten vom 
NTP bekommen, ist das wohl auch nicht tragisch, da der RTC auch über 
Tage/Wochen nur geringe abweichungen erzeugt.

MFG
Stephan
#2437985
Lesenswert?

bingo schrieb:
> Wenn es eine gelegentliche Synchronisierung gibt, braucht man keinen
> zusätzlichen RTC-IC. Das kann der µC und ein Uhrenquarz auch so.

Ja schon. Aber kann auch ein µC die Gangreserve über Tage sicherstellen, 
wenn mal der Strom weg sein sollte, ohne das der dann die neue aktuelle 
Zeit bekommen muss.

Ein RTC hat dafür ja eben die Backup Batterie. Ein µC macht in der Regel 
ja auch anderes als nur die Zeit verwalten. Bräuchte dann ja unter 
umständen auch eine Lösung, das die externe Hardware weg geschalten 
wird, um den Stromverbrauch zu minimieren, das der akkupuffer die Zeit 
des Stromausfall wieder puffern kann.

Ich sehe da einen RTC als die einfachere Lösung.
Gast #2438016
Lesenswert?

Hallo,

bei seinen Anforderungen hat er doch längst alles mit 
Notstromversorgungen abgesichert - wie sollen denn sonst PCs 5 Jahre 
lang wartungsfrei und unbedient laufen?

Natürlich liefert Microsoft brav während der ganzen Jahre die nötigen 
Updates, die auch niemals zu Rückfragen oder anderen Problemen führen...

Gruss Reinhard
Gast #2438234
Lesenswert?

Hi,

es wurde üebrhaupt nicht auf den Vorschlag der Netzzeit eingegangen.

RTC musst auch erstmal besorgen, dann vielleicht eine Platine machen 
wegen des Gehäuses, Ansteuerung etc...
DCF muss für guten Empfang gesorgt werden...
PC Zeit, muss vom PC zum uc, PC muss immer laufen über Jahre...etc.

Einfach die 50Hz Netzfrequenz zählen, Uhr programmieren, ist eine gute 
Lösung und vor allem günstig und für diesen Fall die einfachste. Sie 
benötigt ein Minimum an Programmieraufwand und Hardwarekosten. Sie ist 
sehr stromsparend.

Naja, muss ja jeder selber wissen.

T.S:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren