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 

String Prüfsumme



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!

17.07.2008, 10:47
Beitrag #1

206racer Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: May 2008

2011
2006
EN

63263
Deutschland
String Prüfsumme
Hallo,

ich habe da eine Frage zu einem Stringproblem:
Kurze Erläuterung zu dem was ich vorhabe:
Ich möchte einen String zu einem Frequenzumrichter schicken. Dieser hat den Aufbau
01 22 FF 60 00 80 96 98 00 D0

Die 01 22 FF 60 00 sind immer gleich, da sind nur die Daten wie Motor an/aus, Fehler rücksetzen etc. enthalten.

Das 80 96 98 00 ist die Drehzahl in Hex-Form, jedoch wenn ich es rückrechne sieht das so aus: 00 98 96 80, also quasi Zahlenpakete von hinten nach vorne gelesen.

Das D0 ist die Prüfsumme.

So nun zum eigentlichen Problem:

Ich möchte die Drehzahl mit einem Slider einstellen. D.h. ich muss die Drehzahl von Int in Hex umwandlen. Das habe ich auch soweit hinbekommen. Nur steht der String dann "falsch" herum.
1. Wie bekomme ich die Zahlenpakete gedreht, wie es oben beschrieben ist?

2. Die Prüfsumme errechnet sich ja aus dem kompletten String. Wie kann ich diese errechnen?

LV Version 8.

wäre schön wenn mir jemand helfen könnte oder sogar ein Beispiel dazu hat.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.07.2008, 11:06 (Dieser Beitrag wurde zuletzt bearbeitet: 05.10.2009 10:40 von eg.)
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
String Prüfsumme
Den binären String kannst du mit Unflatten From String (little-endian) in Zahlen umwandeln. Und die Checksumme kannst du mit
http://www.LabVIEWportal.eu/de/downloads/2...rc-8-und-crc-16
berechnen.

Gruß

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2008, 16:36
Beitrag #3

206racer Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: May 2008

2011
2006
EN

63263
Deutschland
String Prüfsumme
danke dir erst einmal für die Antwort.
Ich habe das jetzt 2 Tage lang ausprobiert, jedoch komme ich auf keinen grünen Zweig.

Vielleicht nochmal kurz was ich machen will:
Ich baue mir einen String zusammen gemäß der Anleitung meines Frequenzumrichters. Dort ist beschrieben, dass der String aus 10 "Paketen" zusammengebaut ist.
Ich habe da momentan verständnissprobleme wie der VisaWrite seine Befehle sendet. Wenn ich ein Monitorprogramm laufen lasse welches mir die ankommenden/abgehenden Zeichen aufzeichnet, so unterscheiden sich die ASCII Zeichen von den Hex-Werten. Ist ja auch erst einmal logisch.
Wenn mein Konsolenprogramm des FU's läuft, so bekomme ich auf der linken Seite die tatsächlichen Hex-Werte und im rechten Fenster die ASCII-Zeichen.
Wenn ich dann mein VI laufen lasse, bekomme ich ebenfalls die Hex- und Ascii Zeichen. Jedoch nicht in der gleichen Form wie es mein Konsolenprogramm herausschickt.
Ich hoffe ihr könnt mir helfen.....

Ich habe mal mein VI angehängt (LV8) und einen Screenshot von meinem Monitorprogramm.

Sonstige .vi  hex_code.vi (Größe: 28,74 KB / Downloads: 370)
LV8
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2008, 18:30
Beitrag #4

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
String Prüfsumme
Hallo,

ich verstehe das Problem irgendwie noch nicht so ganz.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.07.2008, 08:12
Beitrag #5

206racer Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: May 2008

2011
2006
EN

63263
Deutschland
String Prüfsumme
also im Prinzip möchte ich meinen Frequenzumrichter über LabVIEW steuern, so wie es das Konsolenprogramm macht

Jedoch schaffe ich es bisher nicht die Stringcodes so zusammenzubauen, dass das mein FU versteht.

Hier noch einmal ein Bild von dem Konsolenprogramm und dem Monitor.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.07.2008, 10:04 (Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2008 10:05 von Y-P.)
Beitrag #6

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
String Prüfsumme
Sorry, aber ich verstehe immer noch nicht, was für Zeichen Du in ASCII brauchst und was für Zeichen in HEX,.....
Mach' doch mal ein Bsp., aus den Bildern werde ich nicht schlau.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.07.2008, 10:38
Beitrag #7

206racer Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: May 2008

2011
2006
EN

63263
Deutschland
String Prüfsumme
Ok hier nochmal ausführlichWink

Ich habe ein Konsolenprogramm, welches von dem Hersteller des Frequenzumrichters mitgeliefert wurde. Darüber kann ich alle Einstellungen, wie Einstellen der Drehrichtung, Drehzahl, Motor an/aus etc. , vornehmen.
Praktischer Weise zeigt mir das Programm auch den Code an, welcher in dem Augenblick über die serielle Schnittstelle übertragen wurde, nachdem ich die Entertaste gedrückt habe. Siehe Screenshot 2. Jedoch hängt das Konsolenprogramm auch noch die ID des FU's, sowie die Prüfsumme an. Insgesamt werden 20 Zeichen übertragen.

Mein Ziel ist es diese Befehle über LabVIEW zu senden. Ich möchte die ID des FU's (in dem Fall 01) einstellen können. Die Aktion möchte ich manuell eintragen. Die Drehzahl soll auch eingestellt werden. Und zu guter Letzt soll die Prüfsumme errechnet werden.
Zum Schluss soll dann das gleiche über LabVIEW erstellt werden, was mein Konsolenprogramm erstellt. Diese Zeichenkette soll über die ser. Schnittstelle übertragen werden.

Mein Frequenzumrichter versteht nur Hex, daher soll er diese 20 Zeichen auch in Hexadezimaler Form bekommen.

Jetzt ist mein Problem wie ich in LabVIEW diese Zeichenkette aus ID+Aktion+Drehzahl+Prüfsumme über die serielle Schnittstelle senden kann, sodass das mein FU versteht.
Ich hoffe jetzt ist es verständlicherWink


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.07.2008, 11:20 (Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2008 11:28 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
String Prüfsumme
Habe mal die Convertierung der Zahl in Ascii hex (mit vertauschten Bytes) exerziert. Für die Prüfsumme gibt es verschiedene Berechnungen, und es kommt darauf an, daß Du die diejenige benutzt, die beim Empfänger der Nachricht verwendet wird. Die solltes Du wissen, hier danach zu fragen bringt nichts.
Bei dern Drehzahlen gehört wahrscheinlich irgendwo ein Komma rein, denn ein Drehzahlebereich bis 4E9 ist doch eher unwahrscheinlich. Es kann sein, daß sich dann die Umfomung ändert, aber wie die 32Bit Integer als Gleitkommazahl zu interpretieren ist, könntest auch nur Du sagen.

   
Lv80_img
Sonstige .vi  stringconvert.vi (Größe: 9,64 KB / Downloads: 343)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.07.2008, 11:43
Beitrag #9

206racer Offline
LVF-Grünschnabel
*


Beiträge: 40
Registriert seit: May 2008

2011
2006
EN

63263
Deutschland
String Prüfsumme
also die Prüfsumme wird gemäß:

0 - (01 + 22 + FF + 60 + 00 + 80 + 96 + 98 + 00) = FF D0 berechnet, wobei nur das LowByte (D0) angehängt wird.

Das der Drehzahlwert so groß ausfällt liegt an dem Umrechnungsfaktor des Inkrementalgebers.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.07.2008, 16:37
Beitrag #10

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
String Prüfsumme
Hier noch ein kleines Progrämmchen, wie Du aus "Normal-Display" in den gleichen Zahlenwert in "HEX-Display" und wieder zurück wandeln kannst. Ich habe das in einem ähnlichen Fall wie in diesem Bsp.-Programm gemacht. Vielleicht hilft's Dir auch weiter.


Sonstige .vi  HEX_Display__hin_und_zur_ck_.vi (Größe: 9,55 KB / Downloads: 367)

Lv80_img

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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
Lightbulb Prüfsumme berechnen für String mit Sonderzeichen luna 3 4.548 22.03.2021 18:32
Letzter Beitrag: jg
  Hex-String splitten und Prüfsumme berechnen hl68fx 10 11.925 25.10.2013 11:01
Letzter Beitrag: Y-P
  HEX-Spielereien: Probleme mit Konvertierungen und Prüfsumme Cruzaderz 10 11.365 26.02.2009 13:39
Letzter Beitrag: Cruzaderz

Gehe zu: