What They Are
Modbus discrete inputs are single-bit read-only points. They usually represent contact states, alarms, switches, and other digital conditions reported by the device but not writable through Modbus.
They matter because many Modbus devices expose simple status information this way even when the rest of the project is register-heavy. Dry contacts, alarm bits, float switches, run-status indicators, and other binary conditions often belong in the discrete-input table rather than in coils or registers.
Coils vs Discrete Inputs
| Aspect | Discrete Inputs | Coils |
|---|---|---|
| Access | Read-only | Read/write |
| Typical role | Status, alarms, contacts | Commands and writable outputs |
| Function code | 02 | 01, 05, 15 |
Typical Use Cases
| Use Case | Why Discrete Inputs Fit |
|---|---|
| Alarm contacts | The device reports the condition, but the external system should not command it |
| Status bits | On-off state must be visible without creating a writable path |
| Switch or relay feedback | The external system needs confirmation of a physical state |
| Protective or fault status | The point belongs to device health reporting, not command logic |
Common Failure Modes
| Failure Pattern | What Usually Happened | Practical Result |
|---|---|---|
| Status bit treated like a coil | The team assumes every bit point is writable | Write tests fail or hit the wrong data family |
| Wrong bit address | The map and tool use different offset conventions | The project reads the wrong condition |
| Internal logic was never validated | The point exists, but the team cannot tie it to a real field state | Operators see a bit with no dependable meaning |
Commissioning Notes
Discrete-input validation works best when one real field condition can be toggled and observed. That proves the bit belongs to the expected alarm, switch, or status source rather than only proving that a register address returns changing values.