Új hozzászólás Aktív témák

  • vampire17

    addikt

    válasz krisztián28 #8858 üzenetére

    Ugyanaz a gondod, mint nekem volt :)

    Par dolog, amin el lehet indulni:

    [link]

    [link]

    [link]

    [link]

    Ez mas eszkoz, de ahogy latom az elv esetedben pont ugyanaz.

    Valszeg azert kell tobb regiszterbol olvasnod, mert a kapott adat nem ferne el 16 biten. En is jartam igy, itteni segitseggel sikerult osszerakni egy functiont. A lenyeg, hogy ekkor ne a Modbus Flex getter "data" agabol olvass (a folso csatlakozas) mert az mar decimalisan, intigerben adja vissza az adatokat. A bufferbol kell kiolvasni (also potty) es egy hasonlo function-al feldolgozni:

    var ampere_string;
    const buf = Buffer.from(msg.payload.buffer);

    high = buf.readUInt16BE(2);
    low = buf.readUInt16BE(0);
    ampere = (high << 16) | low;

    ampere = ampere/1000;
    ampere_string = ampere.toString();
    msg.payload = {"idx": 111, "nvalue": 0, "svalue": ampere_string}
    return msg;

    nyilvan nalad masok a regiszterek, a sorrendek stb... De azen el lehet indulni. Amire meg figyelni kell!! A 16 bites regiszterek Node Red-ben ketto 8 biteskent vannak abrazolva. Ezert kell figyelni a nagyon a sorrendre!

    [ Szerkesztve ]

Új hozzászólás Aktív témák