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:
- Application / Connection Errors (numbers like
#3,#99): The app could not complete a transaction (network, protocol, timing, configuration). - Protocol Exceptions (device returns codes like
01,02,03that 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:
- Physical Connection: Device powered? Ethernet link LEDs or serial wiring correct? USB‑OTG adapter recognized?
- Network Configuration: IP/Port correct (default 502 for Modbus TCP). Can you
pingthe device? (On Android use a network utility app.) - Modbus Identity: Slave/Unit ID matches device configuration.
- Wiring (RS485): A+/B- not reversed; termination resistors at both ends; common ground present.
- 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¶
- Identify error code (log or UI).
- Classify: Application vs Protocol Exception (#9).
- For connection errors → Validate physical/link settings; adjust Timeout.
- For #9 → Map Exception code; fix address/function/data issues.
- For decode errors (#11/#14) → Verify data type & endianness.
- Re-test with simplified single register (known good).
- Scale back up gradually (add registers/channels).
- 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