Binäre Kommunikation

VISA, TCP/IP, CAN und ähnliche Protokolle
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Binäre Kommunikation

Сообщение Eugen Graf »

Hmm... Vielleicht steht da in der Doku irgendwas über den Startwert,vielleicht ist es kein FFFF oder 0, sondern etwas anderes. Kannst du es beim Hersteller nachfragen?
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

eg писал(а):Hmm... Vielleicht steht da in der Doku irgendwas über den Startwert,vielleicht ist es kein FFFF oder 0, sondern etwas anderes. Kannst du es beim Hersteller nachfragen?
der Hersteller gibt gar keinen Auskunft leider. Ich habe es schon mehrmals versucht - keine Chance. Sie verkaufen eine Server-Lösung (6000,-), die selbst mit :labview: kommunizieren kann, und nur für solche Kunden gäbe es Support in dieser Richtung.

Spielt die Richtung der Addierten Bytes eigentlich eine Rolle beim CRC-Rechnen? 80+0A+4E = 4E+0A+80? Laut test schon, aber ich meine es handelt sich doch um eine Summe.
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Binäre Kommunikation

Сообщение Eugen Graf »

Die Reihenfolge spielt eine Rolle, weil es keine Checksumme ist, sondern eine Berechnung über ein Polynom.
Ich hatte letzte Woche ein ähnliches Problem, wie du. Es hat sich herausgestellt, dass der Hersteller seine CRC über ein Byte mehr berechnet und es falsch dokumentiert hat.
Und leider kann man mit dem Portmon solche Sachen nicht herausfinden. Du musst also wirklich mit dem Hersteller telefonieren und ihm die obern erwähnte Webseite zeigen.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

eg писал(а):Die Reihenfolge spielt eine Rolle, weil es keine Checksumme ist, sondern eine Berechnung über ein Polynom.
Ich hatte letzte Woche ein ähnliches Problem, wie du. Es hat sich herausgestellt, dass der Hersteller seine CRC über ein Byte mehr berechnet und es falsch dokumentiert hat.
Und leider kann man mit dem Portmon solche Sachen nicht herausfinden. Du musst also wirklich mit dem Hersteller telefonieren und ihm die obern erwähnte Webseite zeigen.
Der Hersteller hat von mir schon mehrere Emails bekommen, und unzählige Anrufe diesbezüglich weil seine Unterlagen unübersichtlich waren --> keine Chance. Ich werde es noch heute und morgen versuchen, und sollte ich nicht weiter kommen--->weiter zum nächsten Datenlogger. (Ich träume schon in Hexadezimal :crazy: )
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

Hallo eg,

gute Neuigkeiten: Einen CRC Wert eines Befehls konnte ich so übernehmen, wie es im Portmonitor vorkam. Ich kann zwar immernoch nicht nachvollziehen wie sich der Wert zusammenbildete, aber einen HEX-Wert als Ausgabe habe ich zumindest! Jetzt muss ich schauen wie ich den HEX Wert aus dem Antwort-Block rausfiltern kann (Search/Split), und mittels Subset-VI richtig anzeigen kann.

Muss ich allgemein bei Hex-Werten auf etwas achten? oder behandle ich sie einfach wie strings (angezeigt als HEX)? (Nach dem korrekten Anzeigen, möchte ich den Wert später als dezimalwert anzeigen.)
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

Zwischenmeldung:

also, Ich muss anscheinend den HEX-String in Zahl konvertieren (via Type cast), um ihn dann später in dezimal umrechnen zu können.

Viele Grüße

learny
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Binäre Kommunikation

Сообщение Eugen Graf »

Verstehe nicht ganz wovon du redest, zeige mal dein Block Diagramm (mit Kommentaren).
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

Ich kann mich manchmal nicht genau ausdrucken.. Sorry.
Вложения
HEX1.gif
HEX1.gif (5.94 КБ) 9308 просмотров
HEX2.gif
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Binäre Kommunikation

Сообщение Eugen Graf »

Ich denke da musst du entweder Unflatten from String oder Type Cast nehmen.
Das VI String To Number macht eine nummer aus einem ASCII String, du hast aber ein binäres String.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

eg писал(а):Ich denke da musst du entweder Unflatten from String oder Type Cast nehmen.
Das VI String To Number macht eine nummer aus einem ASCII String, du hast aber ein binäres String.
Ich habe mich für den Type Cast enschieden..
welchen Datentyp soll ich für die Ausgabe (bzw. den Anschluss "Typ" des TypeCast) nehmen?

Für HEX "A7" (dez: 167) bekomme ich z.B. den Wert 2801795072 ausgegeben bei dem Datentypen U32.
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Binäre Kommunikation

Сообщение Eugen Graf »

Hast du die Datenpaketbeschreibung? Nimmm lieber Unflatten From String, da kannst du gleich Byte Order angeben, falls du die Daten im Little Endian Format hast (was normalerweise der Fall ist).

Mach dir aus der Datenpaketbeschreibung einen Cluster und schliesse diesen Cluster als Typ direkt an das Unflatten From String VI. Dann spuckt dir dieses VI gleich den kompletten Cluster mit den Daten aus.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

eg писал(а):Hast du die Datenpaketbeschreibung? Nimmm lieber Unflatten From String, da kannst du gleich Byte Order angeben, falls du die Daten im Little Endian Format hast (was normalerweise der Fall ist).

Mach dir aus der Datenpaketbeschreibung einen Cluster und schliesse diesen Cluster als Typ direkt an das Unflatten From String VI. Dann spuckt dir dieses VI gleich den kompletten Cluster mit den Daten aus.
Hallo eg,
ich konnte leider nicht genau verstehen was du mit der Datenpaketbeschreibung meinst. Das Gerät antwortet auf einen Befehl mit vielen Bytes. An einer bestimmten Stelle erscheinen 4 Bytes in HEX-Format. Diese HEX-Data enthält genau die Information die ich brauche - allerdings in Dezimal.

Wenn ich in einer Sub-VI einfach die HEX-Zahl in Dezimal richtig umwandeln könnte, könnte ich (in meiner Haupt-VI) nach dem search/split und spring/subset genau den HEX in Dezimal anzeigen lassen.

Danke eg
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Binäre Kommunikation

Сообщение Eugen Graf »

Hi, ich wollte nur sagen, dass man unterscheiden muss zwischen der ASCII Kodierung und binären unkodierten Daten. Lies bitte z.B. bei Wikipedia, was ASCII bedeutet. Ich bin mir nicht sicher, ob es bei die zutrifft oder nicht. Ich wollte jetzt genau wissen ob deine Daten im ASCII-Format vorliegen oder unkodiert als binäre Daten.
Аватара пользователя
learny
adviser
adviser
Сообщения: 207
Зарегистрирован: 23 окт 2008, 17:54
Версия LabVIEW: 8.5
Контактная информация:

Re: Binäre Kommunikation

Сообщение learny »

eg писал(а):Hi, ich wollte nur sagen, dass man unterscheiden muss zwischen der ASCII Kodierung und binären unkodierten Daten. Lies bitte z.B. bei Wikipedia, was ASCII bedeutet. Ich bin mir nicht sicher, ob es bei die zutrifft oder nicht. Ich wollte jetzt genau wissen ob deine Daten im ASCII-Format vorliegen oder unkodiert als binäre Daten.
Du meinst, dass es in so einem Beispiel (Anlage), handelt es sich um ASCII Daten, die in HEX umgewandelt werden sollen via TypeCast?
Вложения
HEX3.gif
HEX3.gif (2.69 КБ) 9226 просмотров
أهلا و سهلا بالمستخدمين العرب
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Binäre Kommunikation

Сообщение Eugen Graf »

Mit Type Cast oder auch Unflatten From String kannst du Daten, die im binären "Format" vorliegen in normale Daten umwandeln. Dabei musst du wissen, dass es eigentlich keine richtige Umwandlung ist, sondern Representation der Daten.

Bei dem VI String nach Zahl (String Palette) wird ein String über die ASCII Tabelle in eine Zahl umgewandelt.

Zum Beispiel wird aus einem:
0x35 eine Zahl 53d, wenn du Type Cast verwendest und oben als Typ eine UINT8 anschliesst

Wenn du aber String Zu Zahl nimmst, sollte eine Zahl 5 rauskommen. Weil es so in der ASCII Tabelle steht.

Aber ich habe mir noch mal deine Daten im Screenshot angeschaut, das sieht nach binären Daten aus. Jetzt habe ich vergessen, was die eigentlich Frage war :D
Ответить

Вернуться в «Kommunikation mit Geräten»