Hallo zusammen,
Ich möchte für ein größeres Projekt, digitale + analoge Signale lesen und schreiben. Diese Werte sollen mit einem Zeitwert versehen werden und alle Daten sollen in einer TDMS geschrieben werden, die nach der Signalaufzeichnung ausgewertet werden können. Hierbei müssen mehrere Chassis und Module synchronisieren werden.
An sich habe ich es geschafft alle diese Punkte umsetzten. Ich nutze dafür hardwaregetaktetes Lesen und softwaregetaktetes Schreiben. Das Schreiben von Signalen muss nicht hardwaregetaktet sein, da nicht dauerhaft geschrieben werden muss. Wichtig für die Auswertung ist der exakte Zeitpunkt des Schreibens.
Probleme bereitet mir nur noch den exakten Zeitpunkt des Schreibens festzulegen. Aktuell schreibe ich meine Werte softwaregetaktet und als Zeitwert wird der Takt vom Lesesignal übertragen. Die Lesesignale habe erfolgreich mit einem externen Taktgenerator verifiziert und konnte eine Abweichung von nur +- 1ms nachweisen.
Für die Verifizierung des Schreibsignals habe das ausgehende Schreibsignal wieder mit einem Lesesignal gebrückt. Somit weiß man wann das Signal wirklich geschrieben wird. (+-1ms Leseabweichung)
Die Erwartungshaltung ist, dass die Differenz der beiden Zeitwerte möglichst nah an den +-1 ms liegen.
Die Praxis ist jedoch eine andere. Im Schnitt liegt die Abweichung bei 4-9 ms und zusätzlich entstehen Ausreiser von ca. 20 ms. Es scheint so als würde das tatsächliche Schreiben des Signals um wenige ms versetzt sein.
Gibt es eine Möglichkeit den exakten Schreibzustand zu ermitteln? (ohne das ausgehende Signal wieder einzulesen)
technische Daten:
- NI-9188 Chassis
- 4 x NI-9375 Module (16xDI/16xDO)
- LabView 2017
Im Anhang ist vereinfacht das Problem dargestellt. Ich schreibe nur die wirklich Werteänderungen in die TDMS Datei, um einfacher Signalwechsel zu sehen.
Ich danke euch jetzt schonmal.
Viele Grüße
Christian