Skip to content

Error Codes & Troubleshooting

Comprehensive reference for diagnosing Modbus Monitor (Windows & Android) communication and configuration issues.


How to Read Errors

Error mechanisms fall into two families:

  1. Application / Connection Errors (numbers like #3, #99): The app could not complete a transaction (network, protocol, timing, configuration).
  2. Protocol Exceptions (device returns codes like 01, 02, 03 that surface as Error #9): The device understood the request frame but rejected it.

Rule of Thumb:

  • If you get #3 / #4 / #12 / #99: Inspect network/channel configuration first (IP, port, protocol, wiring, adapter, driver).
  • If you get #9: Inspect addressing (register, function code, data type, length) — see Modbus Exceptions table.
  • If you get #17: Usually a timing mismatch; raise Timeout.
  • If you get #5: Transport instability (Wi‑Fi drop, cable unplug, serial noise).

General Debugging Steps

Before deep dives ensure fundamentals:

  1. Physical Connection: Device powered? Ethernet link LEDs or serial wiring correct? USB‑OTG adapter recognized?
  2. Network Configuration: IP/Port correct (default 502 for Modbus TCP). Can you ping the device? (On Android use a network utility app.)
  3. Modbus Identity: Slave/Unit ID matches device configuration.
  4. Wiring (RS485): A+/B- not reversed; termination resistors at both ends; common ground present.
  5. Protocol–Channel Match: Selected protocol supported by underlying channel (see table below).

Application Error Codes

Generated by the application when a connection or transaction cannot proceed.

Code Name Probable Cause Recommended Solution
#3 Transaction Create Error Device not responding / initial timeout Power cycle device; verify reachability; increase Timeout (Settings → Timing).
#4 Transaction Create Error Host unreachable (similar to #3) Confirm IP/Port; check firewall rules; test with ping.
#5 Receive Frame Decode Error Lost connection or corrupted frame (noise, drop) Stabilize network; verify unique IP; check cabling or Wi‑Fi strength; restart device.
#7 Modbus Transaction Execute Error Protocol–Channel mismatch Ensure chosen Protocol fits Channel (e.g., RTU only over Serial/Bluetooth unless tunneling).
#9 Slave Returned Error Device rejected request (Exception code) Validate register, function, slave ID; see Modbus Exceptions section.
#10 Transaction Response Error Empty/invalid response frame Verify device in Modbus mode; lower poll rate or increase interval.
#11 Response Decode Error Data type / byte order mismatch Check data type (INT16, FLOAT32); verify endianness vs device map.
#12 Error Closing Connection Socket close issue (transient) Retry; if persistent reboot app/device.
#14 Response Processing Error Register/data outside expected bounds Recheck address + length + configured data type.
#15 Read/Write Processing Error Internal read/write failure Confirm device allows write; not in local/program mode; verify permissions.
#17 Packet ID Mismatch Late/out‑of‑order response after retry Increase Timeout; reduce simultaneous requests.
#99 Error Opening Connection Channel/protocol initialization failure Confirm protocol selection; for USB install drivers (FTDI/CH340/CP210x/Prolific).

Common Missing / Edge Codes

Your environment may also surface (not always enumerated):

  • #1 / #2 (CRC Error / Frame Integrity): Electrical noise or cabling faults → Improve shielding, check terminations.
  • #6 (Send / Write Error): OS/socket could not send frame → Check network congestion; retry after short delay.
  • #13 (Socket Stall Timeout): Open connection but stalled stream → Increase Timeout; inspect gateway latency.

Protocol & Channel Compatibility

Channel Supported Protocols Notes
TCP/IP Modbus TCP, Modbus UDP, RTU-over-TCP, ASCII-over-TCP RTU/ASCII over TCP require device/gateway support.
Serial (RS485/USB) Modbus RTU, Modbus ASCII Use correct baud, parity, stop bits.
Bluetooth (Classic) Modbus RTU, Modbus ASCII Acts as virtual serial (SPP).
Bluetooth LE Limited—depends on service characteristics Not all devices expose full Modbus frames.
USB‑OTG Serial Modbus RTU, Modbus ASCII Quality adapter (FTDI, CP210x, CH340). Avoid low power hubs.

Common Mistake: Selecting Modbus TCP on Bluetooth → results in #99.


Modbus Protocol Exceptions (Error #9 Context)

When Error #9 occurs the device returned a Modbus Exception code; connectivity is fine—request semantics failed.

Exception Name Cause Solution
01 Illegal Function Unsupported Function Code / Write to read‑only Verify device supports function; avoid writing coils/registers marked RO.
02 Illegal Data Address Register address outside map Check map; adjust address or length not to exceed bounds.
03 Illegal Data Value Value out of range / malformed request Validate data type and permissible value range.
04 Slave Device Failure Hardware fault during operation Restart device; inspect device diagnostics.
06 Slave Device Busy Device processing long task Increase Poll Interval or backoff/retry delay.
10 Gateway Path Unavailable Gateway cannot reach downstream serial target Check gateway → serial wiring; confirm downstream powered.
11 Gateway Target Failed Downstream device did not respond Verify slave ID; confirm downstream power & address.

Input Validation Errors

Arise from invalid monitor point configuration (ranges, formats, numeric conversion).

Code Field Valid Range Issue Fix
#1209522 Count 1–255 Empty / non‑numeric / out of range Enter value 1–255.
#1209522 Slave ID 1–255 Empty / non‑numeric / out of range Enter value 1–255.
#3209523 Address 0–65535 Empty / non‑numeric / out of range Provide valid register (e.g., Holding 40001).
#3209523 Slave ID 1–255 Empty / invalid Provide valid slave/unit ID.
#3209523 Count 1–255 Empty / invalid Provide register count in range.
#3209522 Any numeric N/A Number conversion error (spaces, locale) Remove spaces; ensure numeric keyboard; re‑enter.

Fix Steps: Open Monitoring Points → Select → Change → Correct fields (Address, Slave ID, Count, Data Type) → Save → Retry polling.


Hardware & Physical Layer Issues

Symptom Possible Cause Mitigation
Intermittent #3/#5 on RS485 Electrical noise / improper shielding Use twisted shielded pair; separate from high‑voltage lines; proper grounding.
Frequent CRC / frame corruption Missing termination / bias Add 120Ω termination both ends; ensure bias resistors present.
USB serial disconnects Low power OTG hub Use powered hub; quality adapter chipset.
Late responses (#17) Device overloaded / poll too fast Increase poll interval; batch reads; raise Timeout.

Performance Tuning

  • Start with moderate poll interval (e.g., 1000–2000 ms); decrease only if error rate remains low.
  • Group adjacent registers to minimize transaction overhead.
  • Raise timeout before increasing retries (timeouts usually more effective than high retry counts).

Step-by-Step Troubleshooting Flow

  1. Identify error code (log or UI).
  2. Classify: Application vs Protocol Exception (#9).
  3. For connection errors → Validate physical/link settings; adjust Timeout.
  4. For #9 → Map Exception code; fix address/function/data issues.
  5. For decode errors (#11/#14) → Verify data type & endianness.
  6. Re-test with simplified single register (known good).
  7. Scale back up gradually (add registers/channels).
  8. Persisting issue → Capture log snippet & config; contact support.

Quick Reference Cheat Sheet

Error First Check Typical Fix
#99 Protocol–Channel mismatch Select valid protocol for channel.
#17 Timeout too short Increase Timeout (2–5s).
#9 Address/function invalid Correct register/function; consult map.
#5 Transport instability Stabilize network / wiring; restart device.
#11 Data type mismatch Adjust data type / endianness.

Need More Help?

Provide support with: Error code, Exception (if #9), Channel & Protocol, Register/Count, Slave ID, Device model, Log excerpt.

Support Channels: FAQ → Email → Forum. Faster resolution when detailed config is included.

Last updated: November 29, 2025