Suchergebnisse

Suchergebnisse 1-11 von insgesamt 11.

  • Benutzer-Avatarbild

    Hallo, ich habe momentan ein kleines Problem. Ich wollte mich mal an Modbus TCP herantasten und habe mir dafür ein Codebeispiel von Youtube geholt. youtube.com/watch?v=NbtNN0cr5OU drive.google.com/drive/folders…SiEA3H8asJJsnSlTK3OKy2vpU Nun folgendes Problem - über den Button btnReadHoldingRegisters werden die einzelnen Register gelesen. In den Textboxen txtReceiMsg und txtResult wird die Rückgabe des Gerätes als Byte (txtReceiMsg) und als UShort (txtResult) zurückgegeben. Beispiel: txtReceiMsg …

  • Benutzer-Avatarbild

    xored, danke das ist genau das was ich gesucht habe. Einziges Problem was mir bleibt, ich wollte meinen Wert 8294987 nun wie folgt formatieren 8.294,987. Ich finde jedoch keine Formatierungsmöglichkeit hierfür. Egal wie, ich komme immer auf 8.294.987,000 Momentan hängt es bei mir überall. @RodFromGermany: Der Bitconverter wäre für mich nur hilfreich, wenn ich im hex-Bereich arbeiten möchte oder sehe ich das falsch?

  • Benutzer-Avatarbild

    Gut, ich würde es mal so sagen - das Darstellen des Strings hat geklappt. Die Formatierung funktioniert jedoch nicht wie gewünscht. @Eierlein Auch in deinem Beispiel ist der String nicht wie gewünscht formatiert. Egal was ich mache, der String wird so ausgegeben: 8.294.987,000 und nicht so 8.294,987.

  • Benutzer-Avatarbild

    Jetzt habe ich natürlich alle Versuche gelöscht, aber hier mal ein Beispiel mit obigen Code, wie es nicht geht: VB.NET-Quellcode (9 Zeilen) Rustikale Lösung wäre es die Länge von Merker zu zählen und mit .Insert die Zeichen entsprechend einzufügen. Das finde ich jedoch nicht elegant.

  • Benutzer-Avatarbild

    Doch, so traurig es klingen mag, genau das war es, ich hatte die Blockade den Wert durch 1000 zu teilen.

  • Benutzer-Avatarbild

    Es werden die kWh in MWh umgerechnet.

  • Benutzer-Avatarbild

    Ich muss das Thema nochmal aufgreifen. Ich habe nun einen Wert, den ich einfach nicht richtig umwandeln kann. Aus 436AE78E soll 234.90451 werden. Was mache ich aktuell falsch? Meine Fehlermeldung lautet: System.InvalidCastException: "Ungültige Konvertierung von der Zeichenfolge E7 in Typ Byte." Aber weshalb? Kann ich ein Byte nicht hexadezimal belegen? VB.NET-Quellcode (6 Zeilen)

  • Benutzer-Avatarbild

    Jetzt habe ich nichts zum Testen, aber ich denke, dass ich es dann so machen müsste: VB.NET-Quellcode (4 Zeilen) Werde es später mal testen. Es sei denn, jemand sieht direkt einen Fehler. Könnte wahrscheinlich auch Convert.FromBase64String nutzen. @Eierlein: Ja, das Format wäre dann Float - Big Endian (ABCD) und nicht mehr INT32 - Big Endian (ABCD).

  • Benutzer-Avatarbild

    Ich habe es mal wie unten geschrieben gelöst und komme zum gewünschten Ergebnis. Natürlich habe ich während der Versuche ein weiteres Problem entdeckt. Es gibt einen Wert, der lt. Hersteller im Double-Format (Überlauf 1.0e+12) ausgegeben wird. Double bedeutet dann, dass ich 8 Bytes habe... Als Rückgabe vom Gerät erhalte ich "43 69 F1 80 43 69 36 5D". Umgewandelt sollte 938,xxx herauskommen. Ich kriege alles mögliche raus, nur nicht die 938,xxx. Gibt es einen Online Konverter hex to double, ähnli…

  • Benutzer-Avatarbild

    Ich habe es, dank eurer Hilfe, gelöst. Es sieht wie folgt aus: VB.NET-Quellcode (16 Zeilen)

  • Benutzer-Avatarbild

    Das meinte ich ja mit der Lösung bezüglich des Double-Werts. Zum Beispiel wird aus "41 2D CC AB 35 76 3D 66" > "976,470". Beim Single-Wert habe ich meine Umrechnung rausgeschmissen, da sie sinnfrei ist, weil man ja, wie in deinem Beispiel gezeigt, einfach konvertieren kann.