A foundational Siemens TIA Portal implementation of an IEC 61131-3 compliant start/stop motor control system using symbolic absolute addressing, a structured PLC tag table, and a seal-in (latching) ladder logic circuit — designed to mirror real-world industrial motor control standards
This project establishes core competency in the Siemens TIA Portal development environment by implementing a production-representative motor control circuit on an S7-1200 PLC. The primary objective was to understand how Siemens structures hardware configuration, memory organisation, and program execution across its Step 7 ecosystem — and to identify where that workflow diverges from platforms like CODESYS.
The system implements a standard industrial latch circuit (seal-in), a design pattern found in virtually every motor control panel in manufacturing, water treatment, and process automation environments. The circuit ensures that a momentary start signal latches the motor output, while a normally-closed stop input provides a fail-safe shutdown path that cannot be overridden by software.
Industrial motor control demands deterministic, fault-tolerant behaviour that simple toggle logic cannot provide. A momentary push button must start a motor and hold it energised independently of operator input. Simultaneously, the stop circuit must be architecturally incapable of failing into a "run" state — a requirement that mandates the use of a normally-closed (NC) input rather than a software-only interlock.
The engineering requirements were therefore:
Start_Button → %I0.0 — Normally open digital input; momentary contactStop_Button → %I0.1 — Normally closed digital input; fail-safe stop pathMotor_Output → %Q0.0 — Digital output coil driving the motor contactorStop_Button placed first in the rung — ensures the stop condition is evaluated before any energisation logic, consistent with industrial safety conventionsStart_Button in series — a momentary pulse closes this contact and energises the output coilMotor_Output as a self-seal contact — once the coil energises, it holds its own circuit closed independently of the start buttonMotor_Output (%Q0.0) — drives the physical contactorThe choice to use a hardware normally-closed input for stop — rather than a normally-open input inverted in software — reflects real-world panel wiring practice. A broken wire to a software-inverted input would read as "button pressed" and never stop the motor. With a physical NC input, the same broken wire opens the rung and the motor de-energises. Safety is encoded in the circuit topology, not in software assumptions.
| Stop (NC) | Start (NO) |----+----( Motor_Output )
|
+---------+
| Motor_Output (NO) |
+---------+
The rung evaluates left to right on every CPU scan cycle. The execution model is worth understanding precisely:
Motor_Output.Stop_Button (NC) opening, or a power loss, can break the latch. The self-seal branch has no independent off-path.Several choices here reflect deliberate industrial design thinking rather than just minimum viable ladder logic:
Motor_Output directly as the seal-in contact avoids introducing a separate internal memory bit, which would add a dependency that could desync if the output coil were forced or overridden. The latch is structurally tied to the physical output state.
Stop_Button in a rung is maintainable; writing %I0.1 is not. If hardware is rewired and the input moves to %I0.3, only the tag table entry needs updating — not every rung that references it.
The primary challenge was internalising the Siemens-specific separation between hardware configuration and program execution. In TIA Portal, the hardware must be fully configured, compiled, and downloaded to the CPU before the program will run — the device tree and software project are tightly coupled. CODESYS allows a softer workflow where the program can be tested in simulation without a fully resolved hardware config. Understanding this distinction was essential to avoiding compile errors and failed downloads early in the project.
A secondary challenge was working within TIA Cloud's simulation constraints. The PLCSIM Advanced environment available locally provides force tables, watch tables, and I/O simulation; the cloud equivalent has limitations on which simulation features are accessible. This required planning test cases more deliberately before execution rather than relying on live forcing to debug ladder state.