No. A SCADA client polls the PLC's memory over Ethernet or serial, so the built-in communications ports cover the requirement and no analog output hardware is needed. Add current-loop outputs only when a separate receiver, such as a chart recorder or another controller, consumes a current signal: one channel per signal, scaled linearly across the range.
No. A SCADA system does not need a single milliamp out of your PLC. SCADA acquires data over a communications link: the client polls the controller's memory and reads the values it is given, and the PLC program carries on unchanged. The current-loop output belongs to a different job, retransmitting one value as a current signal to a receiver that cannot read memory, such as a chart recorder or another controller. So the question to settle before ordering hardware is narrow: what consumes each value? If the consumer is a SCADA client, the PLC's built-in Ethernet or RS-485 port is the deliverable. If the consumer is an instrument that takes current, that receiver earns exactly one analog output channel. This page separates the two jobs, lists the checks that make the link work first time, and works a two-sensor panel through both paths.
What SCADA reads from your PLC
SCADA stands for Supervisory Control And Data Acquisition. A monitoring-only system, one that sends no commands back to the plant, uses the data acquisition half alone: the client reads values, stores them, trends them and raises alarms on them. The transport is a communications link. The client polls the PLC over Ethernet or serial at an interval you set, and the PLC answers from memory addresses you publish. Your scaling logic, your relay alarms and your scan sequence carry on as they were; the poll is read-only traffic unless you deliberately open writable addresses for control.
This settles the transparency question directly. The client reads the addresses it is pointed at and nothing else, so it is limited to the addresses your map publishes, and the PLC needs no program changes to serve it. An alarm relay driven by a pegged bargraph stays where it is; once the client reads the same register, the SCADA side mirrors that alarm in software.
What a current-loop output is for
A 4-20 mA output is copper, not a data service. It carries one value over one wire pair to one receiver: 4 mA at the range low end and 20 mA at the top, linear in between. The 4 mA baseline is a live zero, so a receiver reading 0 mA knows the loop is broken and a true zero reading is never confused with a fault. Receivers are instruments with current inputs: chart recorders, panel meters, another controller's analog input, a damper or drive actuator that takes its command as current.
The hardware follows the receiver, and the channel count follows the signals. The two bargraphs on an HMI have no bearing on output channels; the count of receivers that consume current sets it. One signal feeds one receiver, and three recorders on one value mean three channels unless the receivers are specified to share a loop, which their input impedance decides. Check that loop budget in the module's wiring instructions.
Analog output hardware is a per-family purchase. Base PLC units often carry no analog channels at all, so the current output is a module added to the rack, and which module fits comes from your PLC family's catalog. The same check on the input side is walked through for a 4-20 mA input that needs its own module. And when a retransmission output later sits stuck at one current, fixing an analog output stuck at one value walks the scaling and wiring checks in order.
What to confirm before you promise the link
Work through five items with the SCADA side before you commit a date or an order.
Physical link and protocol. Find out what the client speaks, and pick the port that matches it. Modbus TCP over Ethernet is the common case and uses TCP port 502, the number the Modbus TCP specification assigns. On a serial run, Modbus RTU over RS-485 is commonly quoted to about 1,200 m (4,000 ft) at modest baud rates, and you must match baud rate, parity and stop bits at both ends; a mismatch there looks exactly like dead hardware. SCADA not reading a legacy PLC over serial covers that failure in detail.
Addressing convention. The classic convention writes holding registers as 4xxxx, so holding register 40108 sits at offset 107 (40108 - 40001 = 107). Clients differ on the form they want in the address field: the 4-prefixed number, the 40001-based number or a zero-based offset. Type one form into a field expecting another and the client reads a register thousands of addresses away from your bargraph, with no error message to say so.
Data representation and scaling. Confirm whether each register holds raw counts or engineering units, whether it is a 16-bit integer or a 32-bit float, and, for a 32-bit value, which of the two registers carries the high word. This is where a link that connects perfectly still displays nonsense. When a ping works but reads fail is the article for that symptom.
Poll interval and access scope. A poll every few seconds suits monitoring. Keep the monitoring map read-only. If anyone needs to write, name the writable addresses deliberately and state what the PLC logic does with each one; never let screen access stand in for a controlled write path.
Show the link is alive. Publish a heartbeat register the PLC increments on a fixed period, so the SCADA side sees staleness instead of a frozen number. The PLC heartbeat counter pattern shows how to build it.
If the customer only wants to see the screen
Sometimes a request for SCADA output means only that a remote person wants to see the screen. That is a viewing requirement, and it has a cheaper answer than a SCADA seat: many panel HMIs include a web server that serves pages the panel builds itself, so a browser at another site shows the live screen, with login access set to view-only or to full control. The feature is model-specific within a product line, so check the exact HMI model's documentation before promising it, and decide view-only versus control deliberately, because control makes a remote operator part of the plant's safety story.
A SCADA package that must trend, store history and alarm over the long term needs the data link and the register map; screen viewing does not deliver those. And if the real want is the two values on a wall for the crew, with no connection to the control network, a standalone shop-floor screen playing its own offline content does that job without touching the PLC.
Example: two sensor values at 62 % and 81 %, read from the office
Inputs. The panel is the case this page answers: two analog sensors drawn as bargraphs on the panel HMI, alarm states carried by PLC relays, and a request for SCADA output. The readings below are illustrative for that panel. Today the level reads 62 % and the temperature 81 %. The PLC program holds each value as an integer from 0 to 100 for a 0-100 % span; read the real span from your own program before you reuse these figures. Consumers: one SCADA client at the office over Ethernet, and a chart recorder that takes a current signal for a 0-100 % span. Poll interval: 5 s.
Rule. The client path reads registers and applies the same 0-100 scaling in software, so it consumes no PLC hardware. The recorder cannot read registers, so it needs a current retransmission scaled linearly across the 16 mA span: current in mA = 4 + (value in % / 100) × 16.
Arithmetic. Put the level at holding register 40108 and the temperature at 40109 in the client's convention. A client that wants an offset asks for 40108 - 40001 = 107, and one request then reads 2 registers. Each poll carries 2 registers × 2 bytes = 4 bytes of register data. At one poll every 5 s: 60 s / 5 s = 12 polls per minute, 12 × 60 = 720 polls per hour, 720 × 4 = 2,880 bytes per hour. The level arrives as the integer 62 and the client labels it percent.
The recorder needs its own channels. Level at 62 %: I = 4 + (62 / 100) × 16 = 4 + 9.92 = 13.92 mA. Temperature at 81 %: I = 4 + (81 / 100) × 16 = 4 + 12.96 = 16.96 mA. A typical 12-bit output card divides the span into 4,096 counts: 16 mA / 4,096 = 0.0039 mA per count, and 0.0039 / 16 × 100 = about 0.02 % of span per count, finer than any bargraph on the panel.
Result. The SCADA deliverable is an Ethernet cable, port 502 reachable, and a published two-register map with scaling. The recorder deliverable is two analog output channels, scaled linearly across the full 16 mA span, one per signal.
Decision. If the recorder drops off the requirement, the analog hardware goes with it: the channel count tracks receivers, not sensors or screens. The client side costs no PLC hardware at all.
The decision, case by case
| Consumer | What it needs | Hardware to add |
|---|---|---|
| SCADA client over Ethernet | A driver speaking the PLC's protocol, Modbus TCP on port 502, plus the register map | None: a cable and configuration |
| SCADA client over serial | Modbus RTU on RS-485, baud, parity and stop bits matched at both ends | None: the RS-485 run, about 1,200 m at modest baud rates |
| Chart recorder or meter taking current | One current-loop signal scaled across the range | One analog output channel per signal |
| A remote person watching the screen | Web access on the HMI, view-only or control per login | None, if the HMI model documents a web server |
Recommendation: Before you order any hardware, write down the consumer for each value. If the consumers are SCADA clients, put the link on the PLC's built-in communications port, Modbus TCP on Ethernet or Modbus RTU on RS-485, publish the register map with address, data type and scaling, and buy no analog output hardware. Add a current-loop output channel only for a named receiver that consumes a current signal, one channel per signal, scaled linearly from the range low end to the top. When the link connects but the values look wrong, the fault sits in the addressing, data type or word order in the driver settings, not in missing hardware.
Questions
What if the customer's SCADA speaks a protocol your PLC doesn't?
Match protocols before buying anything: many controllers speak Modbus TCP over Ethernet and Modbus RTU over RS-485, and most SCADA packages include those drivers, so a gateway is the rare case. When the two sides genuinely share nothing, a protocol gateway translates: one port speaks the PLC's protocol, the other speaks the client's. Confirm the gateway supports the exact commands and register counts your map uses, and test it with a heartbeat register before the map is published.
Why does the current loop start at 4 mA instead of zero?
The 4 mA baseline is a live zero: a receiver reading 0 mA knows the loop is broken, while 4 mA is a true zero reading. The baseline also leaves headroom to power a two-wire loop transmitter. The scale is linear across the 16 mA span. To feed a voltage input instead, a 250 Ω resistor across the loop converts the signal: 4 mA × 250 Ω = 1 V at the low end, and the same resistor yields 5 V at the top of the span.
How much data does a SCADA poll actually move?
One Modbus read request returns up to 125 holding registers, the protocol's own cap, so a map of a hundred values is a single poll. Modbus RTU distinguishes up to 247 slave addresses on one RS-485 cable. Reading 2 registers every 5 s moves 4 bytes per poll, about 2,880 bytes per hour; a full 125-register read at the same rate is about 180 kB per hour. Poll load is rarely the constraint; addressing and scaling are.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.