node-red-contrib-modbus-tcp-full-avd 1.1.2

Volledige MODBUS TCP node voor Node-RED met ondersteuning voor alle functies en adresbereik

npm install node-red-contrib-modbus-tcp-full-avd

node-red-contrib-modbus-tcp-full-avd

Volledige MODBUS TCP node voor Node-RED met ondersteuning voor alle MODBUS functies en het volledige adresbereik (0-65535). Node-naam bevat initialen AVD voor unieke herkenbaarheid.

Versie: 1.1.2

Features

  • TCP Client en Server modes – Verbind als client of luister als server
  • MODBUS Client en Server modes – Verzend requests of reageer op requests
  • Alle MODBUS functies – Ondersteuning voor functie codes 01, 02, 03, 04, 05, 06, 15, 16
  • Volledige adresbereik – 0-65535 voor coils, discrete inputs, holding registers en input registers
  • Robuuste verbindingscontrole – Connect-timeout, geen idle-timeout (verbinding blijft open bij inactiviteit), TCP keepalive, write-foutafhandeling
  • Automatische reconnect – Herverbind automatisch bij verbindingsverlies, met exponential backoff
  • Retry mechanisme – Configureerbare retries bij fouten; pending requests worden bij disconnect netjes afgebroken
  • Exception handling – Ondersteuning voor MODBUS exception codes
  • Dataweergave – Toon registerdata in node-status en/of debug panel
  • Testdata (Server) – Vul registers automatisch of handmatig met testdata (incrementing, random, sine, square, alternating)
  • Speciale actiesreadData, showData, generateTestData via message
  • Accept Any Unit ID (Server) – Optioneel accepteren van elke Unit ID

Installatie

Via Node-RED Palette Manager

  1. Open Node-RED
  2. Ga naar MenuManage palette
  3. Klik op de Install tab
  4. Zoek naar node-red-contrib-modbus-tcp-full-avd
  5. Klik op Install

Via NPM

npm install node-red-contrib-modbus-tcp-full-avd

Via upload (.tgz)

  1. Download of maak het package: npm pack (creëert node-red-contrib-modbus-tcp-full-avd-1.1.2.tgz)
  2. In Node-RED: MenuManage paletteInstall tab → upload
  3. Selecteer het .tgz bestand en wacht op installatie
  4. Herstart Node-RED indien nodig

Handmatige installatie

  1. Kopieer de package naar ~/.node-red/node_modules/node-red-contrib-modbus-tcp-full-avd
  2. Voer uit: npm install in die directory
  3. Herstart Node-RED

Gebruik

TCP Client + MODBUS Client

Gebruik om data te lezen/schrijven van een MODBUS TCP server.

Configuratie: TCP Mode = Client, Host = IP van server, Port = 502, MODBUS Mode = Client, Unit ID = 1.

Read Holding Registers

msg.payload = { function: 3, address: 0, quantity: 10 };

Write Single Register

msg.payload = { function: 6, address: 0, value: 1234 };

Write Multiple Coils

msg.payload = { function: 15, address: 0, values: [true, false, true, false] };

Lees en toon data (actie readData)

msg.payload = {
    action: "readData",
    readType: "holdingRegisters",  // coils, discreteInputs, holdingRegisters, inputRegisters
    address: 0,
    quantity: 10
};

TCP Server + MODBUS Server

Gebruik om MODBUS data aan te bieden aan clients.

Configuratie: TCP Mode = Server, Port = 502, MODBUS Mode = Server, Unit ID = 1. Optioneel: Accept Any Unit ID om elke Unit ID te accepteren.

Data bijwerken

msg.payload = {
    type: "holdingRegisters",  // coils, discreteInputs, holdingRegisters, inputRegisters
    address: 0,
    value: 1234
};

Meerdere waarden:

msg.payload = { type: "holdingRegisters", address: 0, values: [1, 2, 3, 4, 5] };

Toon alle registerdata (actie showData)

msg.payload = { action: "showData" };

Genereer testdata (actie generateTestData)

msg.payload = {
    action: "generateTestData",
    pattern: "incrementing",      // incrementing, random, sine, square, alternating
    dataType: "holdingRegisters", // coils, discreteInputs, holdingRegisters, inputRegisters
    address: 0,
    quantity: 100
};

Configuratie-opties

TCP

  • TCP Mode – Client of Server
  • Host – IP-adres (alleen bij Client)
  • Port – Standaard 502
  • Reconnect Interval – Eerste herpoging na verbindingsverlies (ms); daarna exponential backoff
  • Max Reconnect Delay – Maximum wachttijd tussen herpogingen (ms), cap voor backoff (standaard 60000)
  • Connection Timeout – Timeout voor totstandkoming verbinding (ms); de verbinding wordt niet verbroken bij inactiviteit
  • Max Connections – Max. verbindingen (alleen Server)

MODBUS

  • MODBUS Mode – Client of Server
  • Unit ID – 0–255
  • Accept Any Unit ID – (alleen Server) Accepteer elke Unit ID
  • Byte Order – Big Endian of Little Endian
  • Address Offset – 0 (0-based) of 1 (1-based)

Client

  • Request Timeout – Timeout per request (ms)
  • Retry Count – Aantal retries
  • Retry Interval – Interval tussen retries (ms)

Dataweergave

  • Toon Data in Status – Laatste waarden in node-status
  • Debug Mode – Log data naar debug panel

Testdata (alleen Server)

  • Genereer Test Data bij Start – Vul bij start automatisch holding- en inputregisters (0–99)
  • Test Data Patroon – incrementing, random, sine, square, alternating

Ondersteunde MODBUS-functies

Functie Code Beschrijving
Read Coils 01 Leest discrete outputs
Read Discrete Inputs 02 Leest discrete inputs
Read Holding Registers 03 Leest holding registers
Read Input Registers 04 Leest input registers
Write Single Coil 05 Schrijft één coil
Write Single Register 06 Schrijft één register
Write Multiple Coils 15 Schrijft meerdere coils
Write Multiple Registers 16 Schrijft meerdere registers

Input/Output-formaat

Input (Client – normale requests)

msg.payload of top-level: function, address, quantity (read), value of values (write), optioneel unitId, timeout.

Output (Client – succes)

msg.payload: function, address, quantity, data (array), timestamp, responseTime.

Output (fout)

msg.error: code, message, function, address.

Speciale acties – output

  • readDatapayload.action, payload.type, payload.address, payload.quantity, payload.data, payload.dataMap
  • showDatapayload.action, payload.summary (per type: coils, discreteInputs, holdingRegisters, inputRegisters)
  • generateTestDatapayload.action, payload.result (pattern, dataType, startAddress, quantity, values sample)

Adresbereik

  • Coils: 0–65535
  • Discrete Inputs: 0–65535
  • Holding Registers: 0–65535
  • Input Registers: 0–65535

Verbindingscontrole en herstel (Client)

De TCP-client is ingericht voor robuust gedrag bij uitval en herstel:

  • Connect-timeout – Als de verbinding binnen Connection Timeout niet tot stand komt, wordt opnieuw geprobeerd (geen hangende connect).
  • Geen idle-timeout – De verbinding wordt niet verbroken bij langere tijd zonder data-uitwisseling; alleen bij echte verbindingsfouten (error/close).
  • TCP keepalive – Ingeschakeld om half-open verbindingen te detecteren.
  • Pending requests – Bij error of close worden alle wachtende MODBUS-requests direct afgebroken met een duidelijke fout.
  • Write-fouten – Fouten bij schrijven leiden tot afbreken van de request en automatische reconnect.
  • Exponential backoff – Eerste herpoging na Reconnect Interval; daarna verdubbeling van de wachttijd tot Max Reconnect Delay.
  • Reconnect na mislukte connect – Bij weigering (bijv. ECONNREFUSED) wordt automatisch een nieuwe herpoging gepland.

Troubleshooting

  • Geen verbinding – Controleer host, poort en firewall; controleer of de MODBUS server draait.
  • Connect timeout – Server niet bereikbaar binnen Connection Timeout; controleer netwerk/firewall of verhoog de timeout.
  • Timeout – Verhoog Request Timeout; controleer netwerk en server.
  • Connection lost – Verbinding weggevallen (error/close); client probeert automatisch opnieuw (zie Verbindingscontrole en herstel).
  • Exception 01/02/03/04 – Controleer functiecode, adres en waarden; controleer Unit ID (of zet Accept Any Unit ID aan op de server).

Licentie

MIT

Auteur

ModBUSTester Project (AVD)

Changelog

1.1.2

  • Client: Geen idle-timeout meer; verbinding blijft open bij langere tijd zonder data-uitwisseling. Alleen verbreken bij echte verbindingsfouten (error/close). TCP keepalive blijft actief voor detectie van dode verbindingen.

1.1.1

  • Documentatie bijgewerkt (README, INSTALLATIE) voor verbindingscontrole en herstel.
  • Versienummer voor package-update.

1.1.0

  • Verbindingscontrole en herstel (Client): Connect-timeout, geen idle-timeout (verbinding blijft open bij inactiviteit), TCP keepalive, afbreken van pending requests bij disconnect/error, write-foutafhandeling, exponential backoff bij reconnect, reconnect na mislukte connect. Optie Max Reconnect Delay toegevoegd.
  • Dataweergave: Toon Data in Status, Debug Mode
  • Server: testdata (automatisch bij start + actie generateTestData), patronen: incrementing, random, sine, square, alternating
  • Speciale acties: readData, showData, generateTestData
  • Server: optie Accept Any Unit ID
  • Bufferfix voor Write Single Register/Coil (PDU 5 bytes)
  • Response-buffering voor incomplete TCP-frames

1.0.0

  • Eerste release: MODBUS TCP client/server, alle basis functies 01–16, volledig adresbereik

Node Info

Version: 1.1.2
Updated 2 days ago
License: MIT
Rating: 5.0 1

Categories

Actions

Rate:

Downloads

95 in the last week

Nodes

  • modbus-tcp-avd

Keywords

  • node-red
  • modbus
  • tcp
  • modbus-tcp
  • industrial
  • automation
  • plc

Maintainers