The I/O list is the foundational document of every SCADA project. Everything else — loop sheets, tag databases, alarm philosophies, commissioning checklists — flows from it. Yet most engineers either include too little (leaving gaps that cause rework) or too much (creating a document nobody maintains). This guide covers what belongs in a SCADA I/O list and why each column matters.
An I/O list is a structured register of every field signal entering or leaving your control system — every analogue input, digital input, analogue output, and digital output, plus any virtual or calculated points that need to be documented. It serves four purposes simultaneously: design reference for the tag database, procurement base for I/O card counts, commissioning record for signal verification, and as-built documentation for ongoing maintenance.
| Column | What it contains | Example |
|---|---|---|
| Tag path | Full tag path — provider, folder structure, tag name | [default]Site_A/Pump_01/RunStatus |
| Tag name | Tag name only, following naming convention | RunStatus |
| Description | Human-readable, 40–60 chars max | Pump 01 Run Status Feedback |
| Signal type | AI, DI, AO, DO, Calc, OPC | DI |
| Data type | Boolean, Float4, Int4, String | Boolean |
| PLC address | Memory address in the controller | I:0/3 or %I0.3 |
| Engineering units | Units for analogue signals | kPa, degC, m3/h |
| Range low / high | Raw and engineering range for AI signals | 4–20 mA / 0–1000 kPa |
| Instrument tag | P&ID instrument tag number | FIT-201 |
| P&ID reference | Drawing number where this signal appears | P&ID-003 Rev B |
For analogue inputs feeding a tag historian, document the deadband or exception reporting threshold. Without this, you get either too much data (every scan stored) or too little. Put it in the I/O list so it gets configured correctly at commissioning — not discovered missing six months after go-live.
If a tag has process alarms configured in your SCADA alarm system, document the setpoints — High, High-High, Low, Low-Low. This doesn't replace an alarm philosophy document, but it gives commissioning engineers a reference during FAT and SAT.
If you're running a separate plant historian alongside your SCADA platform, document the historian point name for each historically logged signal. Mismatches between SCADA tag names and historian point names are a common source of data quality issues that are expensive to untangle after go-live.
Column sprawl is real. Don't add wire colour, cable number, junction box, conduit, and contractor name. Keep commissioning-specific detail in a separate commissioning schedule. The I/O list is a configuration document, not a cable schedule.
On modern SCADA platforms with folder-based tag structures, your naming convention determines your tag path structure. Getting this right at the start saves significant rework. A clean convention follows the pattern [Provider]/Site/Equipment/Signal — for example, [default]/SITE_A/PUMP_01/RunStatus for a digital input, or [default]/SITE_A/PUMP_01/SpeedFeedback for an analog input measuring kilowatts.
Key rules: use underscores not spaces or hyphens, UPPER_CASE for equipment and site identifiers, PascalCase for signal names, keep equipment codes consistent with P&ID tag numbers, and don't embed engineering units in the tag name. Most importantly — agree the convention before the first tag is created.
The most expensive naming mistake: inconsistent site codes across a multi-site project. If one engineer calls it SITE_A and another calls it SITE1, your reporting queries and alarm analysis will fail — silently, and usually at the worst moment.
| Mistake | Consequence | Prevention |
|---|---|---|
| No engineering units documented | Wrong EU configured at commissioning, found in SAT | Mandatory EU column, validated in design review |
| PLC addresses not verified against vendor drawings | Tag database built on wrong addresses, full remap required | Cross-reference I/O list against approved PLC drawings before programming |
| P&ID reference missing | No traceability from tag to instrument — troubleshooting is guesswork | Mandatory P&ID reference column, checked against drawing register |
| Description too vague | Operators can't identify alarms in the alarm journal | 40-char max, include equipment identifier and signal function |
Published by PROMEC Systems. Tag naming recommendations reflect best practices from production SCADA deployments across generation, transmission, and process industries.