Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Modbus RTU Nachkommastellen variieren ständig

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Modbus RTU Nachkommastellen variieren ständig

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MarcelV last edited by

      Hallo,
      ich bin nach ganz am Anfang mit Nodered und versuche mich gerade in Modbus.
      Ich habe 2 Modbuszähler die per RS485 verbunden sind und über einen Waveshare RS485/TCP IP Adapter ausgelesen werden.
      Es werden immer 2 Register mit FC4 ausgelesen und als Gleitkomma Float-Wert mit be in den Buffer/Parser geschickt!Screenshot 2025-02-01 102653.png
      Soweit funktioniert alles, nur wundere ich mich warum die Werte manchmal mit 14 Nackommastellen dann wieder nur mit 1. und dann wieder auch ohne Nachkommastelle ausgegeben werden. Wenn nur 1 Nachkommastelle kommt, ist diese auch immer 0,5. Alles völlig zufällig.
      Screenshot 2025-02-01 101937.png

      Kann mir jemand sagen warum das so ist?

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @MarcelV last edited by mickym

        @marcelv Ich kann Dir nicht sagen, warum das so ist - entweder kommt das schon so an oder es ist allgemein bekannt, dass Javascript und das ist ja der Unterbau von NodeRed bei der Division solche Ungenauigkeiten aufweist.

        Hier findest Du einige solche Beispiele.

        Um das ganze zu normalisieren musst Du halt runden auf die gewünschte Zahl. Hier das falsche Rechnen von Javascript wenn Du 5.30/0.1 teilst.

        91708128-9ab3-4714-a25b-b1ea9026e1bb-image.png

        Hier zum Test:

        [
           {
               "id": "6d825db117977676",
               "type": "change",
               "z": "7e6af0015415146d",
               "name": "",
               "rules": [
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "$round(payload, 3)\t",
                       "tot": "jsonata"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 490,
               "y": 6560,
               "wires": [
                   [
                       "fbdb916f6d2eae7a"
                   ]
               ]
           },
           {
               "id": "cbdde4b5e1744372",
               "type": "function",
               "z": "7e6af0015415146d",
               "name": "Division 5.30/0.1",
               "func": "msg.payload = 5.30/0.1;\nreturn msg;",
               "outputs": 1,
               "timeout": 0,
               "noerr": 0,
               "initialize": "",
               "finalize": "",
               "libs": [],
               "x": 330,
               "y": 6480,
               "wires": [
                   [
                       "6884d1879fbacb54",
                       "6d825db117977676"
                   ]
               ]
           },
           {
               "id": "6884d1879fbacb54",
               "type": "debug",
               "z": "7e6af0015415146d",
               "name": "JS Error",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 540,
               "y": 6480,
               "wires": []
           },
           {
               "id": "421036d3582817fa",
               "type": "inject",
               "z": "7e6af0015415146d",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "true",
               "payloadType": "bool",
               "x": 110,
               "y": 6480,
               "wires": [
                   [
                       "cbdde4b5e1744372"
                   ]
               ]
           },
           {
               "id": "fbdb916f6d2eae7a",
               "type": "debug",
               "z": "7e6af0015415146d",
               "name": "gerundet",
               "active": true,
               "tosidebar": true,
               "console": false,
               "tostatus": false,
               "complete": "payload",
               "targetType": "msg",
               "statusVal": "",
               "statusType": "auto",
               "x": 720,
               "y": 6560,
               "wires": []
           }
        ]
        

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        674
        Online

        31.7k
        Users

        79.7k
        Topics

        1.3m
        Posts

        2
        2
        77
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo