LabVIEWForum.de
Verarbeitung serieller Daten mit CRC16 CCITT - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Verarbeitung serieller Daten mit CRC16 CCITT (/Thread-Verarbeitung-serieller-Daten-mit-CRC16-CCITT)



Verarbeitung serieller Daten mit CRC16 CCITT - fahas - 23.04.2010 13:32

Hallo liebe LabVIEW Freunde,

ich habe folgendes Problem, bei dem ich nicht weiter weiß...
Ich erfasse über VISA einen Datenstrang, dem eine CRC16 CCITT zur Überprüfung beigefügt ist. Da die Informationen einfach über die COM Schnittstelle ins CRC VI laufen und nicht etwa erst bei dem ENQ beginnen, erhalte ich bei jedem Durchlauf eine andere Prüfsumme.

Ich hab versucht eine Event-Schleife zu erstellen, die das ENQ (in ASCII 05) erfasst und den Datenstrom ab dem ENQ durchlässt. Hat leider nach mehfachem Versuchen nicht geklappt!

Vielleicht kann mir jemand helfen diese Event-Schleife zu erstellen, sodass der ankommende Datenstrom erst ab dem ENQ gelesen und geprüft wird.

Das VI hab ich von der National Instruments Seite und läuft über Lv86_img


Verarbeitung serieller Daten mit CRC16 CCITT - RoLe - 26.04.2010 12:47

Du öffnest dein COM4 und liest einmal alles was dort ist.
Wäre da eine Schleife nicht sinnvoll?
Weist du denn wieviele Zeichen das Telegram haben sollte, oder ist das durch ein Trennzeichen abgeschlossen?

Aber ev. bringt dich das Beispiel schon weiter und du hast was du möchtest:


Verarbeitung serieller Daten mit CRC16 CCITT - fahas - 30.04.2010 11:21

Hallo RoLe,

danke erst einmal für das Beispiel.....

Das Telegramm besteht aus 7 Zeichen. Senden tue ich zum Test des CRC-VI von NI 05 01 00 00 00 44 EF. Die CRC (44 EF) ist so angelegt, dass sie nach dem Durchlauf eine Null ergeben müsste...programmiert ist die nachm big endian, während der rest nachm little endian abläuft.
Das Testprogramm läuft verkabelt über denselben Rechner über den HTerm. Ich weiß ehrlich gesagt nicht woran es genau liegt, dass das gewünschte CRC Ergebnis nicht erfolgt, aber ich vermute, dass der Durchlauf nicht bei der ENQ beginnt, sondern wild in der Mitte des Datenstrangs, weswegen jedesmal ein anderes Ergebnis vorliegt.

Ich habe das Beispiel ma ausprobiert...aber ich erhalte auch nach der richtigen Konfiguration der Schnittstelle (Fehler muss definitiv da liegen) immer wieder eine Fehlermeldung über eine falsche Konfiguration....irgendwo steckt der Wurm drin.

Wenn ich das irgendwie raushab, stell ich das noch ma ins Forum Smile