Anzeige:
Nächste DASYLab-Schulungstermine bei measX:
DASYLab und Python 20.06. + 21.06.2017 Mönchengladbach
Messwerterfassung mit DASYLab – Grundlagen 27.06. + 28.06.2017 Ludwigsburg
Melde dich an, um diesem Inhalt zu folgen  
Folgen diesem Inhalt 0
mftm

Dezimal in HEX umwandeln

4 Beiträge in diesem Thema

Halli hallo,

weiß jemand von Euch, wie man in DasyLab eine Dezimale Zahl in Hexadezimal umwandeln und weitergeben kann?

Ich weiß, dass eine digitale Anzeige eine Dezimale Zahl in HEX darstellen kann, aber diese HEX Zahl wird ja nicht als solche weitergegeben.

Mein Ziel wäre es, eine Dezimale Zahl in eine HEX Zahl umzuwandeln und an einen RS232 Ausgabeblock zu schicken.

Hat da jemand einen Idee wie das geht??? Gibt es vielleicht eine fertige Funktion oder einen Trick, z.B. über Variablen oder Rechenoperationen oder ... oder ... oder???

Vielen Dank schon mal im Voraus!

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo!

Wenn Sie Daten an das RS232-Modul weiterleiten und dort en Formatstring [a] benutzen, dann wird die Zahl zeichenweise weitergegeben. Z.B. die Zahl 6 wird dann als Zeichen '6' übertragen, das Zeichen '6' hat den ASCII-Code 36hex, d.h. mit einem Portmonitor würde man ein Byte mit Wert 36hex sehen.

Mit dem Formatstring [ah] wird die Zahl 6 nicht als Zeichen '6' übertragen, sondern hexadezimal kodiert als 06hex.

Siehe Bild, dort wird die Zahl 254 im Generator erzeugt und dem RS232-Ausgang übergeben. Der Formatstring lautet [ah] und beim Beobachten der Ausgabe sieht man, dass FEhex von DASYLab ausgegeben wurde.

post-865-0-07020300-1438614643_thumb.jpg

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo,

Ich habe ein ähnliches Problem. Ich möchte es jedoch genau umgekehrt. Also eine HEX-Zahl (bzw. Kombination in eine Dezimalzahl wandeln)

Folgendes wird mir permanent ohne Befehlsstring im HEX-Format vom Gerät ausgegeben.

1. 31 = Kontollbit

2. 01 = Anzahl der Parameter (Je nach Geräteeinstellung.. Momentan auf 01)

3. 67 = Messwert 1

4. 34 = Messwert 2

5. 01 = Kontrollbit

6. 01 = Kontrollbit

Die HEX-Folge lautet also 31 01 67 34 01 01. Diese Folge wird permanent vom Gerät gesendet, nur dass sich die Hex-Werte unter 3. und 4. ändern. Darin stecken meine Werte die ich auslesen und verarbeiten möchte. Dies soll laut Hersteller folgendermaßen durchgeführt werden.

Die Hexwerte 67 und 34 werden aneinandergefügt. Jedoch in umgekehrter Reihenfolge. Also 3467. Danach soll diese HEX-Kombi ins Dezimalsystem überführt werden. Ergibt 13415. Mit einer Formel wird dieser Dezimalwert dann auf ein Ergebnis gerechnet.

Leider weiss ich jetzt nicht wie ich dort vorgehen soll. Ich habe mein Format-String mal folgenderweise definiert: 2x2ah2x. Damit funktioniert das Parsing schon mal (siehe Anhang), jedoch weiss ich jetzt nicht wie ich am Ausgang der COM-Schnittstelle erst den hinteren Wert (also 34) und dann den vorderen Wert (also 67) aneinanderfügen und ins Deziamlsystem überführen kann.

Dann habe ich es noch mit zwei Kanälen versucht. Dazu habe ich als Formatstring im ersten Kanal 2x1ah verwendet und im zweiten Kanal 1ah. Leider funktioniert damit das parsing nicht (siehe Bild Ausgabe 2). Ich weiss nicht wie ich Dasylab dort sagen kann das es bei den beiden Kontrollbitts am ende aufhalten soll. Also bei 01 01 aufhalten und hinter 31 01 wieder anfangen.

Kann mir da jemand weiterhelfen?

Grüße Kaschi

Ausgabe.JPG

Ausgabe_2.JPG

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo, leider heute erst gesehen....

Das hört sich an, als ob dies zwei Byte einfach als binärere 16 bit wert gelesen werden könnte. Damit kannst du, wenn dich nur der Messwert interessiert, folgendes in den Formatstring eingeben:

2xw2x

Mit dem w werden die 2 Bytes binär als 16 Bit wert (im Intel Format) interpretiert und der entsprechende Binärwert geliefert.

Ich hoffe, es hilft

Stephan

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!


Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.


Jetzt anmelden
Melde dich an, um diesem Inhalt zu folgen  
Folgen diesem Inhalt 0