INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

CRC XOR berechen , string vergleichen und ersetzen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

24.07.2012, 10:11
Beitrag #1

dexter Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: May 2010

2011
2012
DE


Deutschland
CRC XOR berechen , string vergleichen und ersetzen
Hallo
ich lese X Datenpakete besteht aus 10 Bytes über RS 232-Port ein. 1 Datenpaket hat folgendem
Muster
Byte Daten
0...6 0xA5
7 counter
8 Telegrammzähler
9 CRC
Ich möchte selbst den CRC-XOR von den ausgelesenen Daten berechen. Also die Bytes 0bis 8 werden dafür
herangezogen, und danach vergleichen mit ausgelesene Byte n°9. Wenn beide gleich sind speiche ich ein 1(Hex)
wenn nicht ein 0(H)
Die CRC berechnung klappt nicht für die Daten die ich auslese. Irgendwie muss ich den Schieberegister nach jeder Berechnung zurücksetzen aber weiss nicht wie. Ich muss danach 2 String vergleichen (die von mir berechnete CRC und ausgelesene CRC) und Byte n°9 mit 0 oder 1 ersetzen

Besten Dank für Idee

Dexter
11.0 .vi  CRCberechnen_String_Ersetzen.vi (Größe: 13,28 KB / Downloads: 326)


lv11_img
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.07.2012, 10:25 (Dieser Beitrag wurde zuletzt bearbeitet: 24.07.2012 10:26 von jg.)
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Mglw. so?!
   
Bei CRC-Checksummen gibt es so viele Vorschriften wie Sand am Meer. Ohne Angabe der genauen Berechnung hat man da wenig Chancen.

Übrigens, deine Sequenz ist überflüssig, eben so die Case-Struktur.

THINK DATAFLOW.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2012, 10:38
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Hallo Dexter,

neben Jens' Vorschlag kannst du natürlich alles drumherum ebenfalls direkt mit dem U8-Array erledigen:
   
Außerdem:
- Das empfangene Datenpaket stimmt nicht mit deiner Beschreibung überein. Als erstes Byte gibst du nämlich 0xAA (statt 0xA5) vor!
- Bisher hast du nichts ersetzt beim Schreiben (lt. deinem Kommentar im BD), sondern angehangen. Ich habe es dabei belassen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.07.2012, 10:12
Beitrag #4

dexter Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: May 2010

2011
2012
DE


Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Hallo Gerd, JG
Danke für die schnelle Antwort. Die Berechnung der CRC-XOR gibt mir immer falsche Ergebnisse,denn ich bekomme nur 0 raus nach dem Vergleich und selten 1.
Ich lese alle 20ms ein Datenpaket, wenn ein Verbindung besteht aus.
Wie kann ich jetzt mein Programm ändert damit die Checksumme für jede Datenpaket(besteht aus 9 Bytes) erfolgen kann.
Wenn ich nur für ein Telegramm rechne bekomme ich das gewünschte Ergebnis also mache ich irgendwie falsch.

11.0 .vi  CRCberechnen_String_Ersetzen.vi (Größe: 10,06 KB / Downloads: 297)






ZU JG
Bei CRC-Checksummen gibt es so viele Vorschriften wie Sand am Meer. Ohne Angabe der genauen Berechnung hat man da wenig Chancen.

Danke für deine schnelle Antwort. Ich habe dein Vorschlag ausprobiert aber das Ergebnis hat sich nicht geändert. Ich habe für die Checksumme ein VIs der gut rechnen kann (XOR)

10.0 .vi  XOR-CRC.vi (Größe: 17,73 KB / Downloads: 309)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.07.2012, 11:47
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Hallo Dexter,

um beurteilen zu können, was du da rechnest, wäre es sehr vorteilhaft, wenn du uns einen typischen ReadString mitteilen würdest...

- Dein VI laufen lassen
- Wenn empfangene Botschaft im ReadString steht: Rechtsklick darauf->Datenoperation->Als Standard setzen
- VI speichern und hier anhängen

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.07.2012, 13:43
Beitrag #6

dexter Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: May 2010

2011
2012
DE


Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Hallo Gerd,
so sieht empfangene Botschaft in ReadString aus, also Datenpakete fangen immer mit AA an.

11.0 .vi  Basic Serial Write and Read.vi (Größe: 20,66 KB / Downloads: 267)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.07.2012, 13:59 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2012 14:00 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen

Akzeptierte Lösung

Hallo dexter,

probier das mal:
   
Die String-Konstante ist aus deinem VI gebildet worden...
Ich berechne den CRC über neun (statt bisher acht!) Byte - nämlich die komplette Botschaft ohne CRC-Byte!
(Bitte den Kommentar im BD noch anpassen Smile )

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.07.2012, 13:36
Beitrag #8

dexter Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: May 2010

2011
2012
DE


Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Danke Gerd
deine beide Vorschläge funktionieren einwandfrei.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.07.2012, 10:45 (Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2012 10:54 von dexter.)
Beitrag #9

dexter Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: May 2010

2011
2012
DE


Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Hallo
ich habe nun ein kleines Problem. Ich habe festgestellt dass nach ca 12s bekomme ich falsche Ergebnisse. Woran liegt das? Ich bekomme die Daten über ein Pedale und die Daten werden alle 25ms gesendet. Wenn ich den Pedal- Fußschalter nur kurz halte ist alles ok aber wenn ich lange halte bekomme ich manchmal die Daten versetzt, oder unvollstandig (leere Byte),dann sind die CRC falsch.
Die VISA serielle Port konfig wurde mit 115200 eingestellt.
Wie kann ich alle ausgelesene Telegramm fehlerfrei wegschreiben und die auch bearbeiten?

Normal Fall
AA 21 1 0 0 0 0 4 BC 32
AA 21 1 0 0 0 0 4 BD 33

Falsche Ergebnisse
AA AA 21 1 0 0 0 0 AA 21
AA 21 1 AA 21 1 0 0 0 0
AA 21 1 0 0 AA 21 1 0 0
AA 21 1 0 0 AA 21 1 0 0
AA 21 AA 21 1 0 0 0 0 4
AA 21 1 0 0 0 0 4 AA 21
AA 21
AA 21
AA 21 1 0 0 0 0 4 D2 5C
Besten Dank für Hilfe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.07.2012, 12:13
Beitrag #10

dexter Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: May 2010

2011
2012
DE


Deutschland
RE: CRC XOR berechen , string vergleichen und ersetzen
Hallo Gerd
wie kann ich dieser Fehler beheben damit ich alle Telegramm auslesen und wegschreiben kann
Danke

Mögliche Ursachen:

VISA: (Hex 0xBFFF006C) Während der Übertragung ist ein Überlauffehler aufgetreten. Ein Zeichen wurde von der Hardware nicht gelesen, bevor das nächste Zeichen ankam.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  String vergleichen xxokiehxx 7 6.183 22.07.2018 08:44
Letzter Beitrag: Lucki
  2D Array durchsuchen und bestimmte Werte ersetzen sara2211 4 5.757 13.01.2017 10:59
Letzter Beitrag: sara2211
  String mit IP-Muster vergleichen? C.Maier 4 5.120 08.11.2016 08:29
Letzter Beitrag: C.Maier
  Ersetzen von Array-Rotieren durch Rückkopplungsknoten bde2 2 3.638 27.04.2015 16:41
Letzter Beitrag: bde2
  Elemente in einem 2D Array ersetzen che-salih 6 8.167 02.12.2013 13:08
Letzter Beitrag: che-salih
  String suchen und ersetzen Kuebler 3 5.078 16.04.2013 12:11
Letzter Beitrag: Kuebler

Gehe zu: