LabVIEWForum.de - cRIO Uhrzeit synchronisieren

LabVIEWForum.de

Normale Version: cRIO Uhrzeit synchronisieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
ich habe eine application auf dem PC und Eine auf der cRio laufen. Nun soll die Uhrzeit der cRio mit der des PC´s synchronisiert werden. Das ganze funktioniert auch sehr gut. Nun bekomme ich allerdings im DSM folgende Fehlermeldung angezeigt:

Fehler 66464:
"Die globale Zeit des Controllers wurde geändert. Dadurch kann sich die Iterationszeit der NI Scan Engine ändern."

Gestern habe ich zudem noch folgenden schwerwiegenden Fehler bekommen, welcher zum Ausfall meines Pumpenausgangssignals geführt hat:

Fehler -65512:
"CompactRio: Für einige I/O Variablen auf dem System konnte die Datenübertragung in der zugewiesenen Zeit nicht abgeschlossen werden und die Aktualisierung einiger Werte wurde dadurch ggf. verzögert. Erhöhen Sie die Scan-Periode, um dieses Problem zu vermeiden."

Können diese Fehler zusammenhängen? Und wie kann das sein, dass wenn ich die Zeit ändere sich auch die Scan Engine Periode ändert?
Hallo Holg,

zu deinem VI: Statt String-Gefrickel könnte man auch fertige Funktionen mit selbst-dokumentierenden Features nutzen:
[attachment=41981]
(Ich habe den Rube-Goldberg mit dem Boolean auch vereinfacht Wink, wobei mir die Logik dahinter nicht ganz klar ist... )

Zu deiner Frage:
Wenn du an der Uhrzeit rumspielst, kann die ScanEngine, die sich ja auf die Uhrzeit bezieht, schon mal durcheinander kommen...
Danke für deine Antwort GerdW.
Aber das würde ja bedeuten, dass ich nie in einem laufenden Programm die Uhrzeit der cRio synchonisieren sollte, da ich sonst Gefahr laufe das irgendetwas nicht mehr abgearbeitet werden kann. Der Zweite Fehler (-65512) ging nach erneuter Synchonisation wieder weg. Was darauf schließt, dass dieser tatsächlich durch die Synchronisation hervorgerufen wurde.

Ja das string-gefrimel war die erste Lösung, die Synchronisierung zu realisieren. Bin noch nicht so lange im Labview-Geschäft. Deine Lösung ist naturlich viel schöner.Big Grin
Hallo,

die sauberste Methode, die zeiten zu synchronisieren ist wohl (s)ntp - vorausgesetzt PC und cRIO hängen im Netzwerk.
Siehe http://digital.ni.com/public.nsf/allkb/F...enDocument
Die Zeit des cRIO wird beim booten synchronisiert und dann wird ein ebentuell auftretender Drift laufend korrigiert.
Das funktioniert bei mir sehr gut, da ich die Zeiten mehrerer cRIOs synchron halten muss.

lg Norbert
(24.10.2012 11:40 )Holg schrieb: [ -> ]Danke für deine Antwort GerdW.
Aber das würde ja bedeuten, dass ich nie in einem laufenden Programm die Uhrzeit der cRio synchonisieren sollte, da ich sonst Gefahr laufe das irgendetwas nicht mehr abgearbeitet werden kann. Der Zweite Fehler (-65512) ging nach erneuter Synchonisation wieder weg. Was darauf schließt, dass dieser tatsächlich durch die Synchronisation hervorgerufen wurde.

Ja das string-gefrimel war die erste Lösung, die Synchronisierung zu realisieren. Bin noch nicht so lange im Labview-Geschäft. Deine Lösung ist naturlich viel schöner.Big Grin

SNTP is wie schon erwähnt die eine Möglichkeit. Oder Du änderst Deinen Algorithmus so ab dass er adaptive Korruktur macht. Also nicht einmal alle x Stunden die neue Zeit reinschreiben, sondern die Differenz berechnen und dann langsam in kleinen Schritten mit mehreren Sekunden Intervall diese anpassen bis die CRIO Zeit wieder mit der PC Zeit übereinstimmt. SNTP macht das übrigens auch so wenn es korrekt implementiert wurde.
Referenz-URLs