TapHome

WELLPRO WP8027ADAM

Modbus TCP
Submitted by
Last updated: 06. 2026
WELLPRO WP8027ADAM

The WELLPRO WP8027ADAM is a 16-channel open-collector (NPN) digital output module manufactured by Shanghai Wellpro. Each output can sink up to 500 mA at 9–30 V DC, making the module suitable for driving interposing relays, pilot lights, solenoid valves and other small DC loads from a Modbus bus. The module uses Modbus RTU over RS485 at its physical layer.

TapHome reaches the module through a transparent Modbus-RTU-over-TCP gateway (for example Moxa NPort, USR-TCP232 or a generic RS485-to-Ethernet converter), which forwards Modbus TCP frames from the TapHome Core to the RS485 bus without protocol translation. The template exposes all 16 coils (C:0 – C:15) as individual ON/OFF switches.

Hardware connection

The module is a DIN-rail housed device (125 × 73 × 35 mm) with pluggable screw-terminal blocks on the top and bottom edges.

Terminal layout
TerminalFunction
AVcc / AGndExternal power supply input, 9–30 V DC / 2 W
DO_01 – DO_16NPN open-collector outputs, 500 mA per channel, common emitter at AGnd
485A / 485BRS485 bus signals (A+, B−)

The top terminal row carries AVcc, AGnd and channels DO_01 – DO_08. The bottom row carries DO_09 – DO_16 together with 485A and 485B.

Wiring diagram
WELLPRO WP8027ADAM NPN open-collector digital output wiring with external load

Each DO_xx channel is the collector of an internal NPN transistor whose emitter is tied to AGnd. The load (typically a relay coil or indicator) is wired between an external V+ supply and the DO_xx terminal — the module itself does not source current to the load; it only sinks it to AGnd when the coil is set to ON.

  • Sink current per channel: 500 mA (NPN open collector)
  • Supply voltage for AVcc/AGnd: 9–30 V DC
  • Isolation protection: 1500 V DC

Reverse polarity on AVcc/AGnd will damage the module. Double-check polarity before powering up.

When switching inductive loads such as relay or contactor coils, fit a flyback diode in parallel with the coil (cathode to V+, anode to DO_xx). Without a flyback diode the inductive kick on turn-off can destroy the open-collector transistor.

RS485 to TapHome gateway
RS485 network topology — PC, PLC and WELLPRO modules sharing a 485 converter bus

The module is a pure RS485 slave — it has no native Ethernet, Wi-Fi or mDNS. To make it reachable from the TapHome Core, insert a transparent Modbus-RTU-over-TCP gateway between the RS485 bus and the local network.

ItemValue / Recommendation
Gateway typeTransparent Modbus RTU ↔ Modbus TCP (pass-through, no register remap)
ExamplesMoxa NPort 5130/5150, USR-TCP232-304/410s, Waveshare RS485-to-ETH, Wellpro WP8000
Bus topology2-wire RS485, daisy-chain, common ground recommended between all nodes
Termination120 Ω resistor at each end of the bus on long runs (>10 m)
Maximum devicesUp to 254 modules per segment (slave IDs 0x01 – 0xFE, each unique)

Wire 485A on the module to the A/+ terminal of the gateway and 485B to B/−. Sharing a common ground between the gateway and the module is recommended, especially on longer runs or where the power supplies are not bonded.

Configuration

The WP8027ADAM ships with factory defaults suitable for most installations:

ParameterDefaultConfigurable via
Slave address0x01FC 06 write to holding register 0x0064
Baud rate9600FC 06 write to holding register 0x0065
Parity / data / stopNone / 8 / 1FC 06 write to holding register 0x0065
Enabling Modbus communication

No software activation is required — Modbus RTU is the module’s only protocol and is enabled permanently. The TapHome integration steps are:

  1. Wire RS485 and power. Connect 485A/485B to the gateway and apply 9–30 V DC to AVcc/AGnd.
  2. Configure the gateway. Set the gateway’s serial port to match the module: 9600 baud, 8 data bits, no parity, 1 stop bit. Select “transparent” or “Modbus RTU passthrough” mode — do not use “Modbus gateway” modes that rewrite slave IDs or register addresses.
  3. Note the gateway’s IP address and TCP port (typically 502 for Modbus TCP). Assign a static IP or DHCP reservation so the address does not change after a power cycle.
  4. Import the TapHome template. Provide two import parameters:
    • IP Address — the gateway’s IP on the local network (default placeholder: 192.168.0.1)
    • Slave ID — the module’s Modbus slave address (default 1)
Changing the slave address

When more than one WELLPRO module shares a single RS485 bus, each must have a unique slave ID. The address is changed by writing holding register 0x0064 with FC 06:

  • Valid range: 0x00010x00FE (1 – 254)
  • The new address is persisted across power cycles
  • Use the WELLPRO Windows debug tool (see below) or any Modbus master capable of FC 06 writes

Only one module at a time may be connected to the bus when issuing the broadcast address-set command (00 06 00 64 ...). If multiple modules are wired in parallel during broadcast, all of them will adopt the same new address and must be reconfigured one by one.

Changing the serial line parameters

Holding register 0x0065 selects the baud rate and parity:

ValueBaud rateParityDataStop
0x00014800None81
0x00029600None81 (default)
0x000319200None81
0x000438400None81
0x00054800Even81
0x00069600Even81
0x000719200Even81
0x000838400Even81

After changing serial parameters, the gateway’s serial-port configuration must be updated to match.

WELLPRO PC debug tool

Shanghai Wellpro provide a Windows utility that lets the integrator toggle individual DO channels, set the slave address and change serial parameters through an RS485-to-USB converter. It is useful for:

  • Verifying hardware on the bench before installing the module
  • Changing the slave address when a Modbus master is not yet available
  • Observing raw request/response hex streams for troubleshooting

Device capabilities

The template exposes 16 switches — one per digital output channel.

Digital outputs DO_01 – DO_16

Each coil C:0C:15 (Modbus coil address 00001 – 00016) is represented as an individual ON/OFF switch in TapHome. Reads use FC 01 (Read Coils) and writes use FC 05 (Write Single Coil) with 0xFF00 = ON and 0x0000 = OFF. The poll interval is 2.5 s per channel.

DeviceCoil address (PDU)Modbus coilTerminal
DO 10x000000001DO_01
DO 20x000100002DO_02
DO 30x000200003DO_03
DO 40x000300004DO_04
DO 50x000400005DO_05
DO 60x000500006DO_06
DO 70x000600007DO_07
DO 80x000700008DO_08
DO 90x000800009DO_09
DO 100x000900010DO_10
DO 110x000A00011DO_11
DO 120x000B00012DO_12
DO 130x000C00013DO_13
DO 140x000D00014DO_14
DO 150x000E00015DO_15
DO 160x000F00016DO_16

Use the 16 switches as generic relay drivers in smart rules, schedules and scenes. Because each coil is addressed individually, state changes on one channel do not affect the others. The sixteen channel LEDs on the module’s front panel mirror the current coil state and help verify the Modbus write arrived correctly.

Troubleshooting

No Modbus communication
  1. Confirm the module’s POWER/DATA LED is green when idle — if the LED is off, check AVcc/AGnd polarity and the 9–30 V DC supply.
  2. Verify the RS485 wiring: 485A on the module to A/+ on the gateway, 485B to B/−. Swapped A/B is a common cause of silent bus failure.
  3. Ensure the gateway’s serial port matches the module: 9600 baud, N, 8, 1 by default.
  4. Check the slave ID — the TapHome import parameter must match the module’s configured address (default 1).
  5. Ping the gateway’s IP address from the TapHome Core and confirm TCP port 502 (or whichever port the gateway uses) is open — no firewall on the way.
  6. If multiple WELLPRO modules are on the same RS485 bus, confirm each has a unique slave ID.
LED turns red on every command

A red POWER/DATA LED after a received command means the module received a Modbus frame addressed to a different slave ID, or a malformed/CRC-mismatched frame. Verify the slave ID imported in TapHome matches the module, and check the bus for wiring faults or ground loops that corrupt bits.

Output does not drive the load
  1. Check the channel LED on the front panel — if the LED is ON but the load does not respond, the Modbus write succeeded and the fault is downstream (wiring, load, external power supply).
  2. Confirm the load is powered by an external V+ supply — the module does not source current to the load, it only sinks to AGnd. Wire the load between external V+ and DO_xx.
  3. Verify the load current is within the 500 mA per-channel limit. For larger loads, use an interposing relay driven by the DO channel.
  4. For inductive loads, confirm a flyback diode is fitted across the coil. Without it, repeated switching can damage the open-collector transistor and permanently disable the channel.
Address-set command affects multiple modules

The broadcast address-set frame (00 06 00 64 ...) writes the new slave address to every module listening on the bus. When commissioning a new module, disconnect all other WELLPRO modules from the RS485 bus first, set the address with the WELLPRO debug tool, then re-connect the rest.

Available devices

WELLPRO WP8027ADAM Module
DO 6 Switch

ON/OFF switch for open-collector output channel DO_06 (coil C:5)

Register: C:5C:5 Bool
Values / States: ON · OFF

DO 6

Read switch state
MODBUSR(C, 5, Bool)
Write switch state
MODBUSWNE(C, 5,Bool,St)
DO 1 Switch

ON/OFF switch for open-collector output channel DO_01 (coil C:0)

Register: C:0C:0 Bool
Values / States: ON · OFF

DO 1

Read switch state
MODBUSR(C, 0, Bool)
Write switch state
MODBUSWNE(C, 0, Bool, St)
DO 2 Switch

ON/OFF switch for open-collector output channel DO_02 (coil C:1)

Register: C:1C:1 Bool
Values / States: ON · OFF

DO 2

Read switch state
MODBUSR(C, 1, Bool)
Write switch state
MODBUSWNE(C, 1, Bool, St)
DO 16 Switch

ON/OFF switch for open-collector output channel DO_16 (coil C:15)

Register: C:15C:15 Bool
Values / States: ON · OFF

DO 16

Read switch state
MODBUSR(C, 15, Bool)
Write switch state
MODBUSWNE(C, 15, Bool, St)
DO 3 Switch

ON/OFF switch for open-collector output channel DO_03 (coil C:2)

Register: C:2C:2 Bool
Values / States: ON · OFF

DO 3

Read switch state
MODBUSR(C, 2, Bool)
Write switch state
MODBUSWNE(C, 2, Bool, St)
DO 4 Switch

ON/OFF switch for open-collector output channel DO_04 (coil C:3)

Register: C:3C:3 Bool
Values / States: ON · OFF

DO 4

Read switch state
MODBUSR(C, 3, Bool)
Write switch state
MODBUSWNE(C, 3, Bool, St)
DO 5 Switch

ON/OFF switch for open-collector output channel DO_05 (coil C:4)

Register: C:4C:4 Bool
Values / States: ON · OFF

DO 5

Read switch state
MODBUSR(C, 4, Bool)
Write switch state
MODBUSWNE(C, 4, Bool, St)
DO 7 Switch

ON/OFF switch for open-collector output channel DO_07 (coil C:6)

Register: C:6C:6 Bool
Values / States: ON · OFF

DO 7

Read switch state
MODBUSR(C, 6, Bool)
Write switch state
MODBUSWNE(C, 6, Bool, St)
DO 8 Switch

ON/OFF switch for open-collector output channel DO_08 (coil C:7)

Register: C:7C:7 Bool
Values / States: ON · OFF

DO 8

Read switch state
MODBUSR(C, 7, Bool)
Write switch state
MODBUSWNE(C, 7, Bool, St)
DO 10 Switch

ON/OFF switch for open-collector output channel DO_10 (coil C:9)

Register: C:9C:9 Bool
Values / States: ON · OFF

DO 10

Read switch state
MODBUSR(C, 9, Bool)
Write switch state
MODBUSWNE(C, 9,Bool, St)
DO 11 Switch

ON/OFF switch for open-collector output channel DO_11 (coil C:10)

Register: C:10C:10 Bool
Values / States: ON · OFF

DO 11

Read switch state
MODBUSR(C, 10, Bool)
Write switch state
MODBUSWNE(C, 10, Bool, St)
DO 12 Switch

ON/OFF switch for open-collector output channel DO_12 (coil C:11)

Register: C:11C:11 Bool
Values / States: ON · OFF

DO 12

Read switch state
MODBUSR(C, 11, Bool)
Write switch state
MODBUSWNE(C, 11, Bool, St)
DO 13 Switch

ON/OFF switch for open-collector output channel DO_13 (coil C:12)

Register: C:12C:12 Bool
Values / States: ON · OFF

DO 13

Read switch state
MODBUSR(C, 12, Bool)
Write switch state
MODBUSWNE(C, 12, Bool, St)
DO 14 Switch

ON/OFF switch for open-collector output channel DO_14 (coil C:13)

Register: C:13C:13 Bool
Values / States: ON · OFF

DO 14

Read switch state
MODBUSR(C, 13, Bool)
Write switch state
MODBUSWNE(C, 13, Bool, St)
DO 15 Switch

ON/OFF switch for open-collector output channel DO_15 (coil C:14)

Register: C:14C:14 Bool
Values / States: ON · OFF

DO 15

Read switch state
MODBUSR(C, 14, Bool)
Write switch state
MODBUSWNE(C, 14, Bool, St)
DO 9 Switch

ON/OFF switch for open-collector output channel DO_09 (coil C:8)

Register: C:8C:8 Bool
Values / States: ON · OFF

DO 9

Read switch state
MODBUSR(C, 8, Bool)
Write switch state
MODBUSWNE(C, 8, Bool, St)
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (4)
  • holding 0x0064 (40101) Module Address — Writable via FC 06; persistent across power cycles; valid range 0x0001-0x00FE. Used to set unique RS485 slave address on shared bus. Not exposed as TapHome device (one-time commissioning parameter)
  • holding 0x0065 (40102) Baud rate / parity — Writable via FC 06; values 0x0001-0x0008 select 4800/9600/19200/38400 baud with N or E parity; default 0x0002 (9600/N/8/1). Module restart required after change. Not exposed as TapHome device
  • coils 0X (FC 0F write multiple) Atomic multi-coil write — Hardware supports FC 0x0F (Write Multiple Coils) for atomic updates of several DO channels in one request. Template uses only FC 05 (write single coil) per channel — atomic multi-channel updates are not exposed via TapHome device abstraction
  • LED status (POWER/DATA and per-channel LEDs) — Front-panel POWER/DATA LED (green/red/blinking) and 16 per-channel activity LEDs are visual only, not accessible over Modbus

Sources

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Verified by TapHome

Want to use this in your TapHome Core?

Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog.

Open in portal