Siemens ET 200SP UDP IO Interface for 16ms Cockpit Simulators

David Krause15 min read
PLC HardwareSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

Full-flight and replica cockpit simulators require a deterministic, low-latency bridge between a host PC (running the aircraft's flight model and visuals) and a large bank of cockpit instruments — switches, lamps, rotary knobs, encoders, and 0–10 V analog gauges. The bridge must shuttle ~500 digital inputs, ~500 digital outputs, ~100 analog inputs, and ~20 analog outputs in both directions on a fixed 16 ms cadence (60 Hz update) and present the host with a single, well-defined User Datagram Protocol (UDP) endpoint.

The Siemens SIMATIC ET 200SP distributed I/O system combined with a SIMATIC S7-1200 or S7-1500 CPU (or an S7-1500 software controller running on the host IPC) is a field-proven topology for this class of application. The ET 200SP provides the channel density, the PROFINET backplane gives the deterministic 250 µs–1 ms update behavior you need for closed-loop motion/IO, and the SIMATIC open-user-communication library (TCON, TDISCON, TUSEND, TURCV) supports raw UDP frame exchange to the host at the 16 ms rhythm the simulator requires.

This reference covers station sizing, module selection, PROFINET topology, the UDP open-user-communication program model, OPC UA as an alternative transport, latency budgeting, and commissioning checks. It is written for automation engineers who are new to SIMATIC but familiar with industrial Ethernet and ladder/structured-text programming.

System Requirements Recap

Parameter Value Notes
Digital Inputs (DI) 500 Switches, pushbuttons, rotary encoder A/B, limit switches, mode selectors
Digital Outputs (DO) 500 Lamp drivers, relay coils, solenoid drivers, indicator LEDs
Analog Inputs (AI) 100 Gauges returning 0–10 V, potentiometer wipers, position feedback
Analog Outputs (AO) 20 0–10 V drives for airspeed/Mach/altimeter/HSI/EGT/etc. gauges
Host transport UDP Single datagram per 16 ms tick, no retransmits, no handshake
Cycle period 16.667 ms (60 Hz) Aligned to visual frame; deterministic end-to-end latency required
Logic inside IO controller None (transparent bridge) All flight logic stays on the host; PLC is a protocol/IO translator

The "no logic in PLC" constraint is important: it means the controller is a pure IO-to-UDP multiplexer. State, discretes debouncing, scaling, sign-of-life counters, and watchdog logic can be added in the PLC without violating the constraint, but the flight model itself never runs in the S7.

Recommended Hardware Architecture

Head-End Controller Selection

Three head-end options exist; the choice is driven by where you want your cycle-time source to live.

  1. S7-1500 (e.g. CPU 1515-2 PN) — recommended for production simulators. Up to 1 MB program/data, OB 1 minimum cycle time 1 ms, integrated PROFINET switch with IRT capability, full open-user-communication support (TCON/TUSEND/TURCV). S7-1500 CPU 1515-2 PN manual.
  2. S7-1200 (e.g. CPU 1215C DC/DC/DC) — acceptable for fixed-base trainers. 150 kB work memory, PROFINET with RT only (no IRT), open-user-communication from firmware V4.x via TCON/TUSEND/TURCV blocks. Maximum number of open UDP connections is limited per firmware release — verify against the S7-1200 system manual.
  3. ET 200SP CPU (CPU 1510SP-1 PN / 1512SP-1 PN) — best of both worlds: the controller is the head module of the first ET 200SP station. Saves one DIN-rail width and one PROFINET device count. Same firmware family as the S7-1500.
Latency note: For full-flight simulators where the IO is a slave of the host's 60 Hz render loop, prefer the ET 200SP CPU variant so the PROFINET update side and the UDP egress side share one deterministic task (OB 61 / OB 62 / OB 63 cyclic interrupt OBs in the 1–10 ms range, scheduled to 16.667 ms).

ET 200SP Station Composition

Each ET 200SP station is built from a head module (IM 155-6 PN), a server module, base units (Type A0, A1, B0, etc., chosen by terminal type), and a stack of I/O modules. The ET 200SP system manual defines the maximum of 32 I/O modules / 64 channels of AI per station and 1 m station width on the backplane bus.

Module MLFB / Order No. Channels Role
Interface module (PROFINET) 6ES7155-6AU30-0CN0 (IM 155-6 PN HF) PROFINET device, supports MRP and IRT
Server module 6ES7193-6PA00-0AA0 Terminates station, holds configuration
Power module PM 24VDC 6ES7193-6EF00-1AA0 Group supply for loads / segment voltage
DI 16×24VDC HF 6ES7131-6BH01-0BA0 16 DI Switches, encoders, discretes; 0.05 ms input filter off
DI 8×24VDC HS 6ES7131-6BF00-0AA0 8 DI High-speed counter/encoder tasks
DQ 16×24VDC/0.5A HF 6ES7132-6BH01-0BA0 16 DO Lamp/relay drivers, 0.5 A per channel
DQ 8×230VAC/2A RLY 6ES7132-6BF00-0AA0 8 DO AC indicator lamps and panel backlight relays
AI 8×U/I/RTD/TC 2-/4-wire 6ES7134-6JD00-0CA1 8 AI 0–10 V gauge returns, ±10 V, 4–20 mA, RTD
AI 4×U/I 16-bit 6ES7134-6HD01-0CA1 4 AI Fast, high-resolution strain/pressure bridges
AQ 4×U/I HS 6ES7135-6HD00-0CA1 4 AO 0–10 V analog gauges, ±10 V, 4–20 mA
AQ 2×U/I ST 6ES7135-6GB00-0CA1 2 AO Standard resolution analog outputs

For ~500 DI / 500 DO / 100 AI / 20 AO the channel count fits comfortably in a single PROFINET line, but the physical station count is what matters. The 32-module-per-station limit means you must split channels across multiple ET 200SP heads.

Channel Density Math and Station Split

Signal Channels Module (16-ch or 8-ch) Modules Required
DI 24 V 500 DI 16×24VDC HF ⌈500/16⌉ = 32
DQ 24 V/0.5 A 500 DQ 16×24VDC/0.5A HF ⌈500/16⌉ = 32
AI 0–10 V 100 AI 8×U/I/RTD/TC ⌈100/8⌉ = 13
AQ 0–10 V 20 AQ 4×U/I HS ⌈20/4⌉ = 5
Total modules 82

82 modules cannot be hosted on a single ET 200SP station (limit 32 I/O modules). Plan on three PROFINET stations with one IM each, e.g.:

  • Station 1 — Discretes A: 32 DI + 16 DO (center console + forward panel)
  • Station 2 — Discretes B: 16 DO + 32 AI + 5 AO (overhead, aft, pedestal)
  • Station 3 — Mixed analog spares: headroom for future expansion

Each station connects to a managed PROFINET switch (e.g. SCALANCE XC-216) on the head-end. Use MRP (Media Redundancy Protocol) to provide ring redundancy in DO-178/Level-D simulator rooms.

Backplane / Wiring

Use Type B0 base units (light-colored terminals) for digital modules and Type A0/A1 (dark) for analog modules so that the analog terminals (AI/AQ) are not bridged with the 24 V supply groups. The PROFINET cable should be at least Cat 5e SF/UTP (6XV1840-2AH10) and routed at least 10 cm from any AC control wiring. Group 24 V common on a single PSU per station with a 10 A breaker; the AO modules are powered by the same bus but with their own fused 24 V tap to keep loop-impedance clean for 0–10 V outputs.

Open-User-Communication: UDP at 16 ms

The SIMATIC open-user-communication blockset provides raw UDP transport on top of the integrated PROFINET interface. The relevant blocks are summarized below.

Block Function Notes
TCON (FB65 / FB100 / FB1500 depending on CPU family) Establishes the UDP connection One-shot on startup; configured via TCON_IP_RFC or TCON_Param
TDISCON (FB66 / FB101 / FB1501) Terminates the connection cleanly Used on shutdown / restart
TUSEND (FB67 / FB102 / FB1502) Send a UDP datagram (no handshake) Triggered from a 16 ms cyclic OB
TURCV (FB68 / FB103 / FB1503) Receive a UDP datagram Triggered by the OBs polling cycle or by IDB

The S7-1500 family (and S7-1200 firmware V4.0+) supports a single block namespace (FB100–FB103 in OUC V4) that unifies these services. Refer to the S7-1500 Communication function manuals for parameter set details.

Connection Configuration (TIA Portal)

  1. In the device configuration of the CPU, add a new Open User Communication connection under Properties → Communication → Open User Communication.
  2. Set Connection type = UDP, Local port = e.g. 2000, Remote address = host PC IP, Remote port = e.g. 2001.
  3. Select Active connection establishment = on (CPU connects to host at startup).
  4. Note the automatically generated Connection ID (e.g. 1). You will use this ID in the TCON, TUSEND, and TURCV instance calls.

Cycle Wiring in OB 61 (16 ms Cyclic Interrupt)

// OB61 — 16 ms cyclic interrupt, priority 20
// Triggered every 16.667 ms by S7-1500 time-of-day interrupt or OB 61
// Send 1024-byte output frame to host
#sSendREQ := TRUE;
#sSendID  := 16#0001;            // connection ID from TIA Portal
#sSendLEN := 1024;
"inst_TUSEND"(REQ:=#sSendREQ,
              ID :=#sSendID,
              LEN:=#sSendLEN,
              DATA:=#outFrame,
              DONE=>#sSendDONE,
              BUSY=>#sSendBUSY,
              ERROR=>#sSendERR,
              STATUS=>#sSendSTA);

// Receive 1024-byte input frame from host (non-blocking)
#sRcvEN  := TRUE;
#sRcvID  := 16#0001;
"inst_TURCV"(EN_R:=#sRcvEN,
             ID :=#sRcvID,
             DATA:=#inFrame,
             LEN :=#rcvLEN,
             NDR =>#sRcvNDR,
             BUSY=>#sRcvBUSY,
             ERROR=>#sRcvERR,
             STATUS=>#sRcvSTA);

Buffer Sizing

Worst-case frame payload (instrument-only, signed/unsigned packed):

  • DI 500: 500 / 8 = 63 bytes (rounded to 64)
  • DO 500: 64 bytes
  • AI 100 × 16-bit = 200 bytes
  • AO 20 × 16-bit = 40 bytes
  • Status / sequence / heartbeat: 16 bytes
  • Total ≈ 384 bytes; pad to 512 bytes for alignment. The 1024 used above is conservative and leaves room for 16-bit scaled engineering values, sub-status, and module health bits.
Keep the UDP payload ≤ 1472 bytes to avoid IP fragmentation over standard Ethernet MTU 1500. The 1024-byte value here is safe.

PROFINET Update vs. UDP Send Timing

The PROFINET IO update time on the IM 155-6 PN HF is configurable from 250 µs to 4 ms. For 16 ms UDP cadence, configure an update of 1 ms and reduce the device send clock to 1 ms. The I/O data is then refreshed every 1 ms inside the PROFINET stack and frozen/copied by OB 61 each 16.667 ms for transmission to the host.

Stage Latency (typical) Notes
DI contact closure → input image ~1 ms Sensor debounce depends on DI module filter (default 0.05 ms)
Input image → PROFINET update 0.5–1 ms Update time parameter on IM
PROFINET → S7 process image ~0.2 ms Direct read in OB 61 via PII
OB 61 send (TUSEND) → host socket ~0.5–2 ms UDP transmit on PROFINET switch + driver copy
Host render tick ≤ 16.667 ms Read datagram, integrate into next frame
Total plant-to-host 2–5 ms (best case) Deterministic if PROFINET IRT is enabled

Set the IO update time to 1 ms in TIA Portal: Device view → IM 155-6 PN → Properties → PROFINET interface → IO cycle → Update time. Enable RT class = IRT for the entire PROFINET subnet so jitter is bounded under 1 µs.

Alternative Transport: OPC UA Instead of Raw UDP

Modern simulators are migrating to OPC UA Pub/Sub over UDP because the S7-1500 firmware 2.9+ ships an OPC UA server, and the ET 200SP can host the server directly when the head-end is an S7-1500. OPC UA Pub/Sub over UDP (binary encoded, UADP) hits the same 16 ms cycle and is easier on the host side — no custom UDP socket; instead, a UA client SDK reads published data items.

Aspect Raw UDP (TUSEND/TURCV) OPC UA Pub/Sub over UDP
Host integration Custom socket, manual framing Commercial SDK, no custom protocol
Endianness / packing Engineer-defined Defined by UA standard
Security None at L4 Sign-and-encrypt profiles available
Latency overhead Lower (smaller framing) ~10–20% higher per frame
Tooling cost Free / minimal Commercial OPC UA SDK license
Cycle time available on S7-1500 1 ms OUC min 10 ms Pub/Sub publishing interval (firmware ≥ 2.9)

For a 16 ms cycle, OPC UA Pub/Sub at 20 ms publish interval is too coarse; either drop to 10 ms (still loses one tick per UDP frame) or stay with raw UDP TUSEND/TURCV. Reserve OPC UA for a non-real-time supervisory channel (engineering, logging, health).

Alternative Architecture: Soft-PLC / IPC-Based PROFINET Controller

If the host IPC has a PROFINET-capable CP card (e.g. Siemens CP 1616 / CP 1626 PCIe or Intel i210/i350 with PROFINET IRT firmware), the entire S7 CPU can be omitted. The IPC then acts as the IO controller, drives the ET 200SP stations directly, and exchanges UDP frames with its own flight model. In that case:

  • Use SIMATIC CP 1626 for IRT-capable PROFINET on the IPC.
  • Use the PROFINET IO Base or PROFINET IO Developer Kit to run a PN-IO controller service in user space.
  • Benefit: removes one source of jitter (the S7 OB cycle), at the cost of tying the fieldbus to a Windows or Linux host.
Trade-off: Soft-PLC on the host couples machine safety to the host's OS scheduler. SIMATIC CPUs are F-compatible (fail-safe) and can be certified for SIL 2/3 motion cuts in certifiable trainers. The IPC approach is typically chosen for non-certified desktop simulators only.

Configuration in TIA Portal — Step-by-Step

  1. Add the S7-1500 / ET 200SP CPU as the controller in the project. Insert a PROFINET subnet (e.g. PN/IE_1).
  2. Insert the IM 155-6 PN HF as a PROFINET device. Drag all DI, DO, AI, AQ modules from the catalog into the device. TIA Portal will auto-assign slot numbers and addresses.
  3. Configure update time = 1 ms, RT class = IRT, send clock = 1 ms on the IM and on the controller port.
  4. Add a server module on the last slot of every ET 200SP station to terminate the backplane.
  5. Add Open User Communication in the CPU properties, type UDP, as described above.
  6. Create OB 61 in the program blocks; set its cycle time to 16.667 ms and priority 20.
  7. Call TCON once in OB 100 (startup) to bring up the UDP socket.
  8. Call TUSEND and TURCV from OB 61 to read input frame from host and write output frame to host.
  9. Compile and download to the CPU.
  10. Go online and verify in the watch table that the connection has STATUS = 16#0000 (no error) and the heartbeat counter in the frame is incrementing.

Verification Procedure

Step Tool Pass Criteria
PROFINET device diagnostic TIA Portal online → Devices & Networks → Online All IM 155-6 stations show green, no maintenance/diagnostic alarms
Cycle time jitter S7-1500 trace (OB61 execution time) Min ≤ 1 ms, Max ≤ 3 ms, Mean ≤ 1.5 ms over 5 min
UDP round-trip Wireshark with display filter udp.port==2000 Inter-packet gap = 16.667 ms ± 0.5 ms, no packet loss in 5 min
Host socket receive Custom logger on host Sequential sequence counter increments by 1 every tick, no duplicates
Analog loop check Force 0/5/10 V on one AI channel, observe host frame Decoded value = 0.000 / 5.000 / 10.000 V (within module resolution, ±0.1%)
Digital loop check Toggle a DO from host, observe panel LED Latency ≤ 16.667 ms (one frame)
Watchdog test Stop host UDP transmission for >100 ms PLC raises alarm (e.g. heartbeat age > 6 cycles); all DO latched to safe state

Troubleshooting Matrix

Symptom Likely Cause Diagnostic Resolution
OB 61 cycle time = 16.667 ms but UDP frame seen at host 30–50 ms late PC-side NIC power management / interrupt throttling Check cat /proc/irq/*/smp_affinity on Linux, or Device Manager → power on Windows Disable energy-efficient Ethernet, pin IRQs to a single core
TUSEND reports STATUS = 16#80A1 (connection not established) TCON not yet completed at first TUSEND call Watch TCON's DONE/BUSY bits in OB 100 Trigger TUSEND only after TCON DONE is TRUE; add a startup handshake byte in the payload
PROFINET station intermittently yellow (diagnostic) Cable length > 100 m, or EMC on a panel-mounted device Use PROFINET diagnostic tool in TIA Portal Replace with Cat 6A SF/UTP; check shield bonding at panel entrance
AI 0–10 V reads 9.5 V when 10.0 V is applied AI module range configured as ±10 V instead of 0–10 V Check AI module's measuring range in TIA Portal Reconfigure to 0–10 V unipolar; recompile and download HW config
AO output 0.5 V offset on every channel 24 V supply to AO module is sagging under load Measure supply at the BaseUnit power terminals Use a separate 24 V rail for AO and size the PSU to 1.5× the total AO load
Host receives packets out of order UDP inherent + Windows UDP receive buffer overflow Wireshark sequence view Increase host socket SO_RCVBUF to ≥ 256 KB; use the sequence counter to drop stale frames
Intermittent DO chatter on a relay 16 ms host frame too fast for mechanical relay Measure relay coil voltage with oscilloscope Add a 2-cycle minimum pulse stretch in the PLC program

Spare-Parts and Lifecycle Notes

For a long-lifecycle product like a flight simulator (15–25 years in service), select modules that are part of the active SIMATIC catalog and explicitly check the ET 200SP product page for current phase-out announcements. As a rule of thumb:

  • ET 200SP modules use HF (High Feature) variants for active-spare coverage through 2034+.
  • S7-1500 CPUs ship as 6ES751x-xxx02-0AB0 (work-memory-expanded second generation) and continue firmware V2.9 → V3.1 → V3.2 cadence; upgrades must be performed with the matching TIA Portal version (currently V18 / V19).
  • Procure 10% of the IO count in spare modules and one spare IM 155-6 per station.

Field-Proven Engineering Caveats

  • Watchdog is mandatory. The PLC must latch all DO to a defined safe state (e.g. all lamps off) if no UDP datagram is received within 6 cycles (≈100 ms). Implement a heartbeat counter in the inbound frame and decrement a watchdog timer in OB 35 (100 ms free-running).
  • DI debounce — set the DI module input filter to ≥ 3 ms to prevent contact bounce from a mechanical switch being read multiple times in one 16 ms tick. The DI 16×24VDC HF has 0.05/0.1/0.5/3/15 ms filter options.
  • Analog channel scaling — 0–10 V input on AI 8×U/I = 0…27648 raw integer (Siemens normalization). Convert in the host, not in the PLC, to keep the controller free of engineering units.
  • Time sync — synchronize the PLC's local time-of-day to the host using NTP, or write a 64-bit Unix timestamp into the frame so the host can correlate IO samples to visual frames.
  • EMC segregation — 230 V AC relay outputs (used for panel backlight) must be on a separate rack section or a separate DQ 8×230VAC/2A RLY module; do not mix AC and DC outputs in the same station unless you accept their common-mode noise riding on the 24 V rail.

FAQ

Can I run the ET 200SP with no SIMATIC CPU at all and only a host PC with a PROFINET card?

Yes. Use a PROFINET-capable PCIe card (Siemens CP 1626 or equivalent IRT device) and a PROFINET IO Controller SDK on the host. The host then drives the ET 200SP stations directly, eliminating the PLC. This is common in research/desktop sims but ties fieldbus timing to the host OS, so it is rarely used in certifiable full-flight trainers.

Which S7 CPU is the minimum that supports TUSEND/TURCV at 16 ms?

The S7-1200 from firmware V4.0 supports Open User Communication with TCON/TUSEND/TURCV, but OB cyclic-interrupt minimum is 1 ms and PROFINET is RT-only. For jitter under 1 µs and IRT, use the S7-1500 (CPU 1511-1 PN or higher) or the ET 200SP CPU 1510SP/1512SP-1 PN.

Why choose ET 200SP instead of ET 200MP or ET 200AL?

ET 200SP offers the highest channel density per station (16-ch DI/DQ, 8-ch AI, 4-ch AQ), tool-free wiring on the push-in terminals, hot-swappable modules, and the broadest HF/high-feature variant catalog. ET 200MP is preferred when you also need S7-300/400-style I/O or F-modules; ET 200AL is for IP65 distributed mounting and lower channel counts.

What is the maximum UDP datagram size I can send in one cycle?

Standard Ethernet MTU is 1500 bytes; the maximum UDP payload without fragmentation is 1472 bytes (1500 − 20 IP − 8 UDP). Keep the simulator frame ≤ 1024 bytes to leave headroom for retransmits, status, and engineering-unit headers, and to fit comfortably inside a single Cat 5e frame.

Can OPC UA Pub/Sub replace the raw UDP TUSEND/TURCV blocks?

Yes for non-real-time channels (logging, engineering, health) and conditionally yes for the 16 ms cycle if the S7-1500 firmware is V2.9 or higher and the host can run a Pub/Sub subscriber at 10–20 ms publishing interval. For strict 16.667 ms determinism, raw UDP with TUSEND/TURCV is still the safer choice.

Back to blog