Ladder Logic vs Structured Text: Do You Need PLC Programming for SCADA?
Two questions come up constantly for engineers new to industrial automation. Which PLC language should I learn, ladder logic or Structured Text? And do I need either one before I can use SCADA software at all?
Short answers: if you can already code, start with Structured Text (ST); if you come from an electrical background, start with ladder diagram (LD); and no, you do not need PLC programming to configure SCADA monitoring. PLC programming and SCADA configuration are separate disciplines with different tools and different learning curves.
PLC Programming vs. SCADA Configuration: Two Different Jobs
In a typical industrial project, the PLC programmer and the SCADA engineer are often two different people, sometimes from two different companies. The PLC programmer works for the machine builder or the controls contractor. The SCADA engineer works for the system integrator or the end user. They meet at the tag list.
You can be productive with SCADA on day one without ever opening a PLC IDE. If you understand what data lives where, which is a much simpler problem than writing control logic, you are ready to configure SCADA.
What You Need to Know for SCADA
SCADA configuration does not require programming, but it does require knowing a few things about the PLCs you connect to. All of it can be learned in a day or two.
1. Register Addresses and Memory Areas
Every PLC exposes its data through named memory areas. On a Siemens S7 that means knowing the difference between DB1.DBW0 (a data block word), I0.0 (an input bit in the process image, such as a wired digital input), and MW10 (a marker word); see the S7 Communication Protocol Guide. On a Modbus device it means knowing that holding register 40001 is read with function code 03. The 4xxxx and 3xxxx numbers are a documentation convention: on the wire the first holding register is address 0, and some tools and manuals count from 1. You do not need to know what the PLC does with that data, only where it lives.
Memory Area Quick Reference
The four Modbus memory areas you will meet most often when configuring SCADA tag addresses:
- Holding Registers (4xxxx): Read/write values. Temperatures, setpoints, counters. Function codes 03/06/16.
- Input Registers (3xxxx): Read-only values from sensors. Function code 04.
- Coils (0xxxx): Single-bit outputs. Motor run commands, valve open/close. Function codes 01/05/15.
- Discrete Inputs (1xxxx): Single-bit inputs. Limit switches, proximity sensors. Function code 02.
A full breakdown is in What Is Modbus?
2. Data Types
A 16-bit integer might be signed or unsigned. A 32-bit float might span two consecutive holding registers with the words swapped. Knowing the common gotchas (byte order, word order, signed vs. unsigned ranges) prevents most tag configuration headaches.
3. Protocol Basics
You do not need to implement Modbus from scratch. You do need to know that Modbus TCP uses port 502 by default, that every request carries a unit ID, and that baud rate and parity only matter for Modbus RTU over serial. On RTU the unit ID is the slave address (1-247); on TCP it is usually ignored by a device that has its own IP address, but a TCP-to-serial gateway uses it to select the device behind it, so use the value your device's manual gives. S7 communication uses the PLC's IP address plus rack and slot numbers. This is configuration knowledge, not programming knowledge.
What Ladder Logic Does (And Why SCADA Does Not Use It)
Ladder logic is a graphical language modeled on electrical relay schematics. It runs on the PLC CPU in a scan cycle: every rung is evaluated in order, every few milliseconds, forever. It reads inputs, evaluates conditions, and writes outputs. That is what controls a machine.
SCADA does something different. It polls the PLC periodically (every 500 milliseconds, every second, every 5 seconds) and reads values for display, logging, and alerting. SCADA watches the process; it does not run it. That is why SCADA architecture uses completely different technology from PLC control code.
SCADA can write to PLC registers to send setpoints, acknowledge alarms, or toggle outputs. Even then, a setpoint write is a single command to a known address, while ladder logic for a conveyor involves many rungs with timers, interlocks, safety conditions, and fault handling.
Ladder Logic vs Structured Text: Which Should You Learn?
If you do want to program PLCs, the oldest argument in the field is ladder diagram versus Structured Text. Ladder partisans say if it is not ladder, it is not PLC. ST advocates point out that a PID controller or a string parser in rungs is misery. Both are right about the other's weaknesses.
Where Ladder Wins
- Plant floor readability. When a machine faults at 2 AM, the maintenance electrician needs to trace the logic fast. In ladder, power flows left to right and you can see which contact is blocking the motor. In ST you read code and trace variable assignments.
- Simple boolean logic. Start/stop circuits, interlocks, and permissives map naturally onto rungs.
- Safety logic. Many safety programs are written graphically (ladder or function block) because the logic can be verified visually by an auditor without reading code. Check what your safety PLC vendor supports.
Where Structured Text Wins
- Math and data processing. A moving average over 100 readings is a short
FORloop in ST. In ladder it becomes a long chain of shift and add blocks. - State machines. A
CASEstatement handles transitions cleanly. In ladder, state machines turn into latched coils and self-resetting rungs that are hard to follow. - String handling. Parsing a barcode or formatting a message is routine in ST and painful in pure ladder.
- Reusable function blocks. ST defines function blocks with typed inputs and outputs natively, which makes libraries easier to build and review.
The Same Logic, Both Ways
Motor start/stop with overload and seal-in, the most common PLC pattern. The stop button and the overload contact are wired normally closed, so stop_ok and overload_ok read TRUE when healthy and a broken wire stops the motor. Stop and overload take priority over start.
Structured Text:
motor := (start OR motor) AND stop_ok AND overload_ok;
Ladder (one rung):
|--+--| start |--+--| stop_ok |--| overload_ok |--( motor )|--| motor |--+(the parallel branch is the seal-in:motorholds itself on after start is released)
Both are clear for this case. Add a timer delay, a counter, an alarm threshold, and a state machine, and the ST version tends to stay a readable page of code while the ladder version grows into many rungs with nested branches.
The Pragmatic Answer: Use Both
- ST for main control logic, calculations, data processing, state machines, and function blocks.
- LD for I/O mapping, interlocks, and simple permissives that maintenance needs to read at 2 AM.
- SFC for the overall sequence, if your platform supports it.
The language is a tool. Pick whichever makes the specific task clearest. For syntax and worked examples, see the Structured Text guide, and for the other three languages, the five IEC 61131-3 languages explained.
When PLC Knowledge Helps SCADA Work (But Is Not Required)
Debugging Communication Issues
When SCADA shows a stale value, the cause could be the PLC program (nothing updates that register), the network (a firewall blocking port 502), or the SCADA configuration (wrong address). Being able to open the PLC project and check whether a register is actually written saves time. In most projects, though, the person who wrote the program is a phone call away.
Understanding the Process
Reading ladder logic shows what the machine is supposed to do, which helps you build better dashboards. If a rung latches a fault bit when temperature exceeds 85°C, you know to alarm on that register. That is reading comprehension, not programming ability.
Small Integrator Projects
Some integrators do both jobs. If you are a one-person shop, learning both makes you more valuable, but they are still learned separately.
The Learning Path for SCADA
If you want to set up monitoring, this is the order that makes sense. PLC programming is not on it.
- Learn the network. IP addresses, subnets, port numbers. Most connection problems are network problems.
- Learn one protocol. Start with Modbus TCP: simple, widely supported, easy to test.
- Learn register addressing. Get comfortable with the memory map of one PLC family, such as Modbus holding registers or Siemens S7 data blocks.
- Learn the SCADA tool. Each platform has its own tag configuration, dashboard builder, and alarm engine.
- Optional: learn to read ladder logic. Reading, not writing, so you can follow a PLC project someone sends you.
Start Monitoring Without Writing a Single Rung
Voltrus SCADA connects to Modbus TCP, Siemens S7, and EtherNet/IP devices through configuration, not code. Point it at a PLC IP address, map tags, and build dashboards and alarms.
Explore Voltrus SCADA