Seite 1 von 1

Datenaufteilung

Verfasst: Donnerstag 8. Oktober 2015, 04:10
von Ed313
Hallo,
Ich nutze Profilab um von drei ComPorts von unterschiedlichen Geräten Daten zu empfangen, mit einem Zeitstempel zu versehen und dann abzuspeichern.
Bei einem Gerät habe ich da Probleme. Die Daten werden kontinuierlich mit 10Hz hintereinander gesendet. Da sieht dann so aus: 03372e+00, 0.00000e+00, 3. 01/01/80 08:55:26.668, 4.54382e+00, 0.00000e+00, 5.65884e+04, 0.00000e+00, 5.85874e+02, 0.00000e+00, 1.55000e+02, 0.00000e+00, 4.49044e+01, 0.00000e+00, 1.15049e+01, 0.00000e+00, 7.67844e+00, 0.00000e+00, 7.02262e+00, 0.00000e+00, 3. 01/01/80 08:55:26.760, 4.52781e+00, 0.00000e+00, 5.64010e+04, 0.00000e+00, 5.80027e+02, 0.00000e+00, 1.55000e+02, 0.00000e+00, 4.49044e+01, 0.00000e+00, 1.15339e+01, 0.00000e+00, 7.70198e+00, 0.00000e+00, 7.03020e+00, 0.00000e+00, 3. 01/01/80 08:55:26.852, 4.53703e+00, 0.00000e+00, 5.66899e+04, 0.00000e+00, 5.84870e+02, 0.00000e+00, 1.55000e+02, 0.00000e+00, 4.48895e+01, 0.00000e+00, 1.16117e+01, 0.00000e+00, 7.70064e+00, 0.00000e+00, 7.00314e+00, 0.00000e+00,
Momentan wird bis 17 gezählt und bei jeder geraden Zahl die Daten mittels Vergleicher abgegriffen. Nach 17 erfolgt ein Zähler-Reset und es geht von vorne los.
Datenrate ist 115200 Baud, Gerät, Comport und ProfiLab. Nun ist das Problem, das zwischendurch scheinbar Daten verloren gehen oder das Zählen nicht richtig funktioniert, so dass Daten falsch positioniert werden. Gibt es noch eine andere Möglichkeit diese Daten zu verteilen?
Danke
Ed
LGData.JPG
LGData.JPG (122.46 KiB) 4563 mal betrachtet

Re: Datenaufteilung

Verfasst: Donnerstag 8. Oktober 2015, 08:34
von Mike D
Moin Ed,
das Datenfeld mit Datum und Uhrzeit ist über den : oder / eindeutig erkennbar.
Damit kannst du den Zähler mit dem Datenstrom synchronisieren.

Um die Anzahl der Bauteile zu verringern könnte man den Zähler und die vielen Vergleicher durch einen digitalen Zählen und BCD-Decoder ersetzen.

Mike

Re: Datenaufteilung

Verfasst: Donnerstag 8. Oktober 2015, 14:50
von IKT
Hallo,

eine andere Methode wäre, das MOD Makro einzusetzen:
mit einer FixZahl (=0 oder =1) und einem Vergleicher als Trigger, da bei einem Divisor von 2 der MOD Pin jeweils entweder = 0, oder = 1 ist, unabhängig von der zugeführten Ganz-Zahl (Integer). Der Teiler entscheidet so den Trigger Intervall.

Eine typische Anwendung für die MODULO Funktion.