E/A

Analoge E/A

Analogsignale übertragen kontinuierliche physikalische Größen — Temperatur, Druck, Durchfluss, Position, Kraft — als elektrische Signale in die SPS. Wo ein Digitaleingang meldet, ob ein Ventil offen oder geschlossen ist, zeigt ein Analogeingang genau, wie weit es geöffnet ist, welcher Druck dahinter liegt und wie schnell der Durchfluss ist. Analoge E/A zu beherrschen bedeutet, die Physik der Wandler, die Mathematik der Signalumwandlung, Störfestigkeit, Kalibrierung und die Verbindung jedes Ingenieurwerts mit Rohzählern im SPS-Rückwandbus zu verstehen.

Fortgeschritten ⏱ 40 Min. Lesezeit
Depth
Beginner → Expert
Sections
7 + sim in each
Simulators
11 interactive tools
Quiz
10 MCQ + scoring
Voraussetzungen

Vor dieser Lektion sollten Sie kennen:

  • Ohmsches Gesetz & Grundlagen der Gleichstromschaltkreise (U = R×I, Reihe/Parallel)
  • Was eine SPS ist — Scan-Zyklus, analoge Eingabe-/Ausgabebaugruppen
  • 4–20-mA-Konzept — Stromschleife, Lebend-Null, Drahtbrucherkennung
  • Grundlegende Mathematik: Verhältnisse, Prozentsätze, Quadratwurzeln (für DP-Durchfluss)

Video Lesson

Video: RealPars — “Analog Inputs and Outputs in PLC Systems”. Not affiliated with Arsyn; shown here as a primer.

Grundlagen analoger Signale

Ein Analogsignal ist eine kontinuierlich veränderliche elektrische Größe — Spannung oder Strom — die eine physikalische Messgröße repräsentiert. Im Gegensatz zu einem digitalen Signal mit zwei Zuständen kann ein Analogsignal jeden Wert innerhalb seines Bereichs annehmen und präzise Informationen über die reale Welt übertragen. Das Verständnis von Analogsignalen, ihrer Normierung und dem Grund für bestimmte Standards ist die Grundlage jedes Instrumentierungs- und Steuerungsprojekts.

Live 4–20 mA Scaling Calculator

Drag the loop current or raw counts. Watch engineering value, wire-break detection, and percentage position update in real time.

12.00 mA
0
100
SIGNAL POSITION
50.0%
Loop mA
12.00
Raw count (16-bit)
% of span
Eng. value
Wire-break?
NO
Signal zone
NORMAL
Resolution vs Accuracy — visual comparison

Change bit depth and accuracy. See how quantisation steps relate to the accuracy band — and when adding more bits stops making any practical difference.

12-bit
0.10%
100
Total counts
Resolution/count
Accuracy ±
Limiting factor

Signalnormen: 4–20 mA, 0–10 V und ihre Entstehung

Industrielle Analogsignale sind normiert, um Interoperabilität zwischen Geräten verschiedener Hersteller zu ermöglichen. Die dominierenden Standards sind die 4–20-mA-Stromschleife (Universalstandard in der Prozessindustrie), 0–10 V (verbreitet in Antrieben und HLK), 0–20 mA (selten, keine Drahtbrucherkennung), ±10 V (Bewegungssteuerung) und 1–5 V (ältere DCS-Systeme). Stromschleifen werden für lange Kabelstrecken bevorzugt, da Strom gegen Kabelwiderstand immune ist — ein 4-mA-Signal fließt trotz 500 Ω Kabelwiderstand exakt mit 4 mA. Spannungssignale erleiden einen Spannungsabfall V = I × R und benötigen hochohmige Empfänger zur Minimierung des Lastfehlers.

Grundlagen analoger Signale
// Signal standard comparison
//
//  Standard    Range        Resolution  Wire-break?  Application
//  ─────────── ──────────── ────────────────────────────────────
//  4–20 mA     4–20 mA     —           YES (< 4mA)  Process, safety
//  0–20 mA     0–20 mA     —           NO           Less common
//  0–10 V      0–10 V      —           NO           Drives, HVAC
//  ±10 V       -10 to +10V —           NO           Motion/servo
//  1–5 V       1–5 V       —           YES (< 1V)   Legacy DCS
//  0–5 V       0–5 V       —           NO           Sensors, ADC
//  Hart        4–20 mA     ±0.1%       YES          Smart instruments
//
// Current loop advantages over voltage:
//   Immunity to cable resistance: V_load = I × R_load (not cable)
//   Max cable resistance for 4-20mA: V_supply - V_transmitter / I_max
//   E.g. 24V supply, 12V transmitter, 20mA max:
//   R_max = (24 - 12) / 0.020 = 600 Ω
//   At 23 Ω/km (0.75mm²): R_max distance = 600/23 = 26 km (round trip)
//   → 13 km one-way maximum cable length
//
// For voltage signals:
//   V_at_PLC = V_source × R_input / (R_cable + R_input)
//   At R_input = 100kΩ, R_cable = 100Ω:
//   Loading error = 100 / (100 + 100000) = 0.001 = 0.1% (acceptable)
//   At R_input = 1kΩ (poor design):
//   Loading error = 100 / (100 + 1000) = 9.1% (unacceptable!)

Umrechnung Rohzähler ↔ Ingenieurwert

Jede analoge Eingangsbaugruppe einer SPS wandelt das elektrische Signal (mA oder V) mit ihrem ADC in einen ganzzahligen Rohzähler um. Das SPS-Programm muss diesen Zähler dann in den Ingenieurwert umrechnen (bar, °C, m³/h). Diese Umrechnung nennt man Skalierung. Die Formel muss exakt korrekt sein — inklusive des Lebend-Null-Offsets für 4–20 mA. Ein Skalierungsfehler von 1 % bei einem Durchflussmesser bedeutet 1 % falsch erfasste Durchflussmenge.

Grundlagen analoger Signale
// Universal analog scaling function (IEC 61131-3 Structured Text)
// Converts raw ADC count to engineering value
// Works for: 4-20mA, 0-20mA, 0-10V, ±10V — any linear signal

FUNCTION SCALE_ANALOG : REAL
VAR_INPUT
  raw        : INT;    // Raw ADC count from PLC input register
  raw_lo     : INT;    // Count at signal minimum (e.g. 4mA = 6554 on 0-32767 card)
  raw_hi     : INT;    // Count at signal maximum (e.g. 20mA = 32767)
  eng_lo     : REAL;   // Engineering value at signal minimum (e.g. 0 bar)
  eng_hi     : REAL;   // Engineering value at signal maximum (e.g. 100 bar)
END_VAR
VAR
  span_raw   : REAL;
  span_eng   : REAL;
END_VAR

span_raw := INT_TO_REAL(raw_hi - raw_lo);
span_eng := eng_hi - eng_lo;

IF span_raw = 0.0 THEN
  SCALE_ANALOG := eng_lo;  // Prevent division by zero
  RETURN;
END_IF;

SCALE_ANALOG := eng_lo + (INT_TO_REAL(raw - raw_lo) / span_raw) * span_eng;
END_FUNCTION

// Usage examples:
// 4-20mA on 16-bit card (0-32767):
//   4mA  → raw_lo = 6554  (32767 × 4/20)
//   20mA → raw_hi = 32767
//   0-100 bar:
//   pressure := SCALE_ANALOG(raw:=AI_raw, raw_lo:=6554,
//                raw_hi:=32767, eng_lo:=0.0, eng_hi:=100.0);
//
// 0-10V on 12-bit card (0-4095):
//   temp := SCALE_ANALOG(raw:=AI_raw, raw_lo:=0,
//                raw_hi:=4095, eng_lo:=-20.0, eng_hi:=80.0);

Auflösung, Genauigkeit und der Unterschied

Auflösung ist die kleinste vom ADC erkennbare Änderung: Messbereich / 2ⁿ Bit. Eine 12-Bit-Karte für 0–10 V hat eine Auflösung von 10/4096 = 2,44 mV. Genauigkeit gibt an, wie nah die Anzeige am wahren Wert liegt — sie umfasst ADC-Quantisierungsfehler, Verstärkungs- und Offsetfehler, Temperaturdrift und Rauschen. Eine Karte kann hohe Auflösung (16 Bit = 0,15 mV) bei schlechter Genauigkeit (±0,5 % vom Messbereich = ±50 mV) aufweisen. Geben Sie immer sowohl Auflösung als auch Genauigkeit für Ihre Anwendung an.

Grundlagen analoger Signale
// Resolution vs accuracy — worked example
// 16-bit analog input card, 4-20mA, 0-100 bar

VAR
  n_bits     : INT  := 16;          // ADC bit depth
  span_mA    : REAL := 16.0;        // 4-20mA live span (mA)
  span_eng   : REAL := 100.0;       // Engineering span (bar)
  resolution_counts : DINT;         // Total counts in span
  resolution_mA     : REAL;         // mA per count
  resolution_bar    : REAL;         // bar per count

  accuracy_pct      : REAL := 0.1;  // Datasheet: ±0.1% of full scale
  accuracy_mA       : REAL;         // ±mA
  accuracy_bar      : REAL;         // ±bar

  typical_noise_bits: INT  := 2;    // Effective bits lost to noise
  effective_bits    : INT;          // Noise-free resolution
  effective_res_bar : REAL;         // Effective resolution (bar)
END_VAR

resolution_counts := EXPT(2, n_bits) - 1;  // = 65535
resolution_mA     := span_mA / resolution_counts;  // = 0.000244 mA/count
resolution_bar    := span_eng / resolution_counts;  // = 0.00153 bar/count

accuracy_mA  := accuracy_pct / 100.0 * 20.0;  // = 0.02 mA = ±0.02 mA
accuracy_bar := accuracy_pct / 100.0 * 100.0; // = 0.1 bar = ±0.1 bar

// Noise limits effective resolution
effective_bits    := n_bits - typical_noise_bits;  // = 14 effective bits
effective_res_bar := span_eng / EXPT(2, effective_bits); // = 0.006 bar

// Conclusion:
//   Resolution per count: 0.00153 bar (theoretical)
//   Noise-limited resolution: 0.006 bar (practical)
//   Accuracy: ±0.1 bar (dominates everything!)
//   → Despite 16-bit resolution, measurement uncertainty = ±0.1 bar
//   → A 12-bit card (±0.05% accuracy) would be EQUALLY useful here

Ein 4–20-mA-Signal an einem Spannungseingang lesen (Messwiderstand)

Nicht jede Analogeingangskarte akzeptiert Strom. Viele preiswerte oder universelle Karten sind reine Spannungseingänge (0–10 V oder ±10 V). Eine 4–20-mA-Schleife lässt sich trotzdem lesen, indem man einen Präzisions-Messwiderstand (Bürde) über die Eingangsklemmen legt: Der hindurchfließende Strom erzeugt eine proportionale Spannung, die die Karte liest. Ein 250-Ω-Widerstand macht aus 4–20 mA saubere 1–5 V (4 mA → 1 V, 20 mA → 5 V) — die klassische Kombination. Drei Dinge zählen. Präzision: 0,1-%-Metallfilmwiderstand, da seine Toleranz direkt in den Messfehler eingeht. Belastbarkeit: bei 20 mA nur 0,1 W Verlustleistung, aber ≥ 0,25 W wählen. Schleifenbürde: die 250 Ω zählen zum Widerstandsbudget der Schleife, also prüfen, ob die Versorgung noch 20 mA durch alle Geräte treiben kann. Die Eingangsimpedanz der Karte muss weit höher sein als der Messwiderstand, sonst zweigt sie Strom ab und verfälscht die Messung.

Grundlagen analoger Signale
// Reading 4-20 mA on a voltage-only input via a sense resistor
//
//   loop (+) --[ transmitter ]--- I (4-20 mA) ---+
//                                                |
//   PLC AI (+) --+-------------------------------+
//                |
//              [ R_sense = 250 ohm, 0.1%, 0.25 W ]
//                |
//   PLC AI (-) --+------------------ loop (-) / 0 V
//
//   V_input = I x R_sense
//      4 mA x 250 = 1.0 V   (0 %)
//     12 mA x 250 = 3.0 V   (50 %)
//     20 mA x 250 = 5.0 V   (100 %)   -> a clean 1-5 V range
//
//   Resistor power: P = I^2 x R = 0.020^2 x 250 = 0.1 W  -> use >= 0.25 W
//   Resistor error: 0.1% of 250 = 0.25 ohm  -> 0.1% reading error
//   Loop burden:    R_sense counts against the 4-20 mA loop budget
//                   R_max = (V_supply - V_transmitter_min) / 0.020
//                   e.g. (24 - 12) / 0.020 = 600 ohm total -> 250 ohm is fine

// Scale the resulting 1-5 V on a 0-10 V, 12-bit card (0-4095):
//   1 V -> count 410 ,  5 V -> count 2048
FUNCTION Scale_1to5V : REAL
VAR_INPUT
  raw_count : INT;            // 0-4095 from a 0-10 V, 12-bit card
  eng_lo    : REAL := 0.0;    // engineering value at 4 mA / 1 V
  eng_hi    : REAL := 100.0;  // engineering value at 20 mA / 5 V
END_VAR
  Scale_1to5V := SCALE_ANALOG(raw:=raw_count, raw_lo:=410,
                   raw_hi:=2048, eng_lo:=eng_lo, eng_hi:=eng_hi);
END_FUNCTION
// Wire-break still works: a broken loop -> 0 V -> count < 410 -> under-1 V alarm

Sensoren & Wandler

Ein Wandler konvertiert eine physikalische Größe in ein elektrisches Signal. Der Sensor ist das Messelement; der Transmitter konditioniert das Rohsignal (oft Millivolt) in ein normiertes 4–20-mA- oder digitales Signal. Das Verständnis der Physik jedes Sensortyps — und seiner Ausfallmodi — ist unerlässlich für die Auswahl der richtigen Technologie und die Diagnose von Fehlern, ohne funktionierende Hardware auszutauschen.

RTD & Thermocouple Calculator

Enter temperature to get PT100 resistance and thermocouple EMF. Or enter a measured resistance to calculate temperature. See the effect of 2-wire vs 4-wire connection and cable length.

100°C
10 m
Temperature
Signal output
2-wire error
3-wire error
4-wire error
Sensitivity
Differential Pressure Flow — Square Root Extraction

See the critical difference between linear scaling and square-root extraction for DP flow meters. Toggle the calculation method to see how large the error becomes at mid-range.

50%
1000
DP %
Correct flow (√)
Wrong (linear)
Error

Temperatur: RTD, Thermoelemente & Thermistoren

RTDs (Widerstandstemperaturdetektoren) messen die Temperatur durch die vorhersehbare Änderung des Metallwiderstands. PT100 (100 Ω bei 0 °C, Platin) ist der weltweite Standard: α = 3,85×10⁻³/°C, Bereich −200 °C bis +850 °C, Klasse A ±0,15 °C bei 0 °C. Thermoelemente erzeugen eine kleine EMK (40–60 µV/°C) durch den Seebeck-Effekt an der Verbindungsstelle zweier unähnlicher Metalle. Typ K (Chromel-Alumel) ist am häufigsten: 41 µV/°C, −200 °C bis +1260 °C — robust und günstig, aber geringere Genauigkeit. Thermistoren sind Halbleiterbauelemente mit großer Widerstandsänderung pro Grad — für präzise Messung über enge Bereiche.

Sensoren & Wandler
// RTD resistance calculation and measurement
// PT100 Callendar-Van Dusen equation (IEC 60751)
//   Above 0°C:  R(T) = R0 × (1 + A×T + B×T²)
//   Below 0°C:  R(T) = R0 × (1 + A×T + B×T² + C×(T-100)×T³)
//   Constants: A = 3.9083×10⁻³, B = -5.775×10⁻⁷, C = -4.183×10⁻¹²
//   R0 = 100 Ω for PT100, 1000 Ω for PT1000

// Simplified linear approximation (valid ±0.5°C up to 200°C):
// R(T) ≈ 100 × (1 + 0.00385 × T)
// T ≈ (R - 100) / (100 × 0.00385) = (R - 100) / 0.385

// PLC scaling from RTD transmitter 4-20mA output:
// Transmitter configured: 0°C = 4mA, 200°C = 20mA
FUNCTION RTD_to_Celsius : REAL
VAR_INPUT
  raw_count : INT;       // 0–32767 (16-bit card, 4–20mA)
  T_lo      : REAL := 0.0;    // °C at 4 mA
  T_hi      : REAL := 200.0;  // °C at 20 mA
END_VAR
  RTD_to_Celsius := SCALE_ANALOG(raw:=raw_count,
    raw_lo:=6554, raw_hi:=32767, eng_lo:=T_lo, eng_hi:=T_hi);
END_FUNCTION

// Thermocouple cold junction compensation:
// TC output = V_hot_junction - V_cold_junction
// Without CJC: if ambient = 25°C, K-type TC reads 25°C LOW
// CJC measures ambient temperature at transmitter terminals
// Corrected reading = TC_mV + CJC_mV(ambient)
// Modern transmitters perform CJC internally
// Error if CJC fails: ≈ ambient temperature error in reading

// 3-wire vs 2-wire RTD:
// 2-wire: cable resistance adds to measurement
//   At 100m, 0.75mm²: Rcable = 24.4×2×0.1 = 4.9Ω → 12.7°C error!
// 3-wire: transmitter subtracts one cable resistance
//   Error reduced to ΔR_mismatch ≈ 0.02Ω → 0.05°C
// 4-wire: separate excitation and measurement → zero cable error
//   Use for laboratory and custody transfer accuracy

Drucksensoren: Relativ-, Absolut- und Differenzdruck

Drucksensoren wandeln mechanischen Druck in ein elektrisches Signal um. Relativdrucksensoren messen bezogen auf den Atmosphärendruck — eingesetzt bei Behältern, Rohrleitungen und Hydraulik. Absolutdrucksensoren messen bezogen auf ein perfektes Vakuum — genutzt für barometrische Referenzen und Gasprozesse. Differenzdrucksensoren messen die Differenz zwischen zwei Prozessdrücken — entscheidend für Durchflussmessung (Blende, Venturi) und Filterüberwachung. Das Messelement ist fast immer eine piezoresistive Siliziumbrücke oder Kapazitätsmembran.

Sensoren & Wandler
// Differential pressure flow measurement
// Orifice plate + DP transmitter: flow ∝ √(ΔP)
// This non-linearity MUST be compensated in the PLC

FUNCTION DP_to_Flow : REAL
VAR_INPUT
  dp_raw     : INT;    // Raw ADC count from DP transmitter
  dp_lo      : REAL := 0.0;    // mbar at 4 mA
  dp_hi      : REAL := 250.0;  // mbar at 20 mA (max DP)
  flow_max   : REAL := 1000.0; // m³/h at dp_hi
  cutoff_pct : REAL := 0.5;    // % DP below which flow = 0 (noise)
END_VAR
VAR
  dp_mbar    : REAL;
  dp_ratio   : REAL;  // dp / dp_max
END_VAR

// Scale DP transmitter output to engineering units
dp_mbar := SCALE_ANALOG(raw:=dp_raw, raw_lo:=6554,
              raw_hi:=32767, eng_lo:=dp_lo, eng_hi:=dp_hi);

// Square-root extraction (flow ∝ √ΔP)
dp_ratio := dp_mbar / dp_hi;

// Low-flow cut-off: below cutoff, flow reads 0 (eliminates noise)
IF dp_ratio < (cutoff_pct / 100.0) THEN
  DP_to_Flow := 0.0;
  RETURN;
END_IF;

DP_to_Flow := flow_max * SQRT(dp_ratio);
END_FUNCTION

// Without square-root extraction:
// At ΔP = 100 mbar (40% of 250 mbar range):
//   Linear scaling: flow = 40% × 1000 = 400 m³/h (WRONG)
//   Correct:        flow = √(100/250) × 1000 = 632 m³/h
// Error = 232 m³/h = 37% — catastrophic for process control!

Lage-, Kraft- und andere Analogsensoren

Linearlage: LVDTs (lineare Differentialtransformatoren) bieten hochgenaue, robuste Positionsmessung ohne Verschleiß — eingesetzt in Ventilstellern und Pressüberwachung. Magnetostriktive Sensoren bieten 1-µm-Auflösung über mehrere Meter — genutzt in Hydraulikzylindern. Wägezellen (Dehnmessstreifen in Wheatstone-Brücke): 4-Draht-Speisung, 2-Draht-Differenzausgang (mV/V). Eine 100-kg-Zelle bei 2 mV/V mit 10-V-Speisung liefert 20 mV bei Nennlast — ein Präzisionsverstärker ist erforderlich.

Sensoren & Wandler
// Load cell signal conditioning
// Full bridge strain gauge: 4-wire excitation, 2-wire signal
// Output: mV proportional to load

VAR
  excitation_V   : REAL := 10.0;   // Supply to bridge (V)
  sensitivity    : REAL := 2.0;    // mV/V rated output
  capacity_kg    : REAL := 1000.0; // Full scale load (kg)
  raw_mV         : REAL;           // Measured bridge output (mV)
  load_kg        : REAL;           // Calculated load

  // ADC for load cell (typically 24-bit sigma-delta)
  adc_raw        : DINT;           // 24-bit count (0 to 16777215)
  adc_fullscale  : DINT := 16777215;
  adc_ref_V      : REAL := 0.02;   // ADC reference = 20mV = rated output
END_VAR

// Full scale signal:
// V_signal_max = excitation × sensitivity = 10 × 0.002 = 20 mV
// ADC must be configured for ±20 mV range (or use dedicated load cell ADC)

// Convert ADC count to load:
raw_mV := DINT_TO_REAL(adc_raw) / DINT_TO_REAL(adc_fullscale)
          * (adc_ref_V * 1000.0);  // Convert to mV
load_kg := raw_mV / (excitation_V * sensitivity) * capacity_kg;
// = raw_mV / 20 × 1000 kg

// Important considerations:
//   Cable resistance affects bridge balance (use 6-wire for long runs)
//   Temperature coefficient of gauge factor: ≈ 0.01%/°C
//   Creep: load cell output drifts over time at constant load
//   Hysteresis: loading vs. unloading curve mismatch ≈ 0.02% FS
//   Shock protection: overload mechanical stop at 150% FS

// pH sensor:
//   Output: ~59.16 mV/pH unit at 25°C (Nernst equation)
//   At pH 7 (neutral): 0 mV reference
//   At pH 0: +414 mV, at pH 14: −414 mV
//   Temperature compensation: MANDATORY (sensitivity varies with T)
//   Calibration: 2-point minimum (pH 4 and pH 7 buffers)
//   Electrode lifetime: 6–12 months typical

Signalaufbereitung

Rohe Sensorsignale sind oft zu klein, zu verrauscht, nicht normiert oder elektrisch inkompatibel für einen direkten Anschluss an SPS-Eingänge. Die Signalaufbereitung bereitet das Signal für die Digitalisierung vor: Verstärkung, Filterung, Galvanische Trennung, Linearisierung und Impedanzanpassung. Das Verständnis, was zwischen den Sensorklemmen und dem ADC passiert, erklärt die meisten Messfehler und Rauschprobleme.

Analog Filter — Time & Frequency Domain

Adjust filter cutoff and order. See the time-domain step response and frequency response simultaneously. Watch how noise is reduced versus how fast the filter responds to real changes.

10 Hz
1st order
5 Hz
Cutoff f_c
Attenuation @ sig
Phase lag @ f_c
Step 90% time

Verstärkung, Offset & Instrumentationsverstärker

Ein Instrumentationsverstärker (INA) ist die Standardlösung für kleine Differenzsignale. Anders als ein einfacher Operationsverstärker hat er sehr hohe Eingangsimpedanz an beiden Eingängen, einstellbaren Verstärkungsfaktor mit einem einzigen Widerstand und hohe CMRR (80–120 dB). Er wird für Thermoelemente (20–60 mV Vollausschlag), Dehnmessstreifen (10–30 mV VE) und hochimpedante Sensoren eingesetzt. Der Verstärkungswiderstand legt die Verstärkung fest: typisch G = 1 + 50 kΩ/Rg (für INA128). Bei G = 100 (Rg = 505 Ω) wird ein 20-mV-Signal zu 2,0 V — geeignet für einen Standard-ADC-Eingang.

Signalaufbereitung
// Instrumentation amplifier noise budget
// Application: K-type thermocouple, range 0-500°C
// Signal: 0 mV (0°C) to 20.5 mV (500°C) — K-type sensitivity 41µV/°C
// Required temperature resolution: 0.5°C → 20.5µV signal change

VAR
  // INA128 specifications:
  gain           : REAL := 100.0;  // G = 1 + 50kΩ/505Ω
  en_density     : REAL := 8.0;    // Input noise: 8 nV/√Hz
  bandwidth_Hz   : REAL := 10.0;   // Useful bandwidth after filtering

  // Signal:
  signal_mV      : REAL := 20.5;   // Full scale (500°C)
  resolution_uV  : REAL := 20.5;   // 0.5°C = 20.5 µV

  // Noise calculation:
  noise_rms_nV   : REAL;   // Input-referred RMS noise
  noise_rms_uV   : REAL;
  SNR            : REAL;
  bits_effective : REAL;
END_VAR

// RMS noise = noise_density × √bandwidth
noise_rms_nV := en_density * SQRT(bandwidth_Hz);  // = 8 × √10 = 25.3 nV
noise_rms_uV := noise_rms_nV / 1000.0;            // = 0.0253 µV

// Signal-to-noise ratio
SNR := 20.0 * LOG(signal_mV * 1000.0 / noise_rms_uV) / LOG(10.0);
// = 20 × log(20500/0.0253) = 20 × log(810,000) = 118 dB

// Effective bits = SNR / 6.02
bits_effective := SNR / 6.02;  // = 118/6.02 = 19.6 effective bits

// Conclusion: INA128 noise is far below the 20.5 µV resolution target
// The ADC (12-bit = 72 dB SNR) is the limiting factor, not the amp
// Use ≥ 16-bit ADC to exploit the INA's low noise performance

Filterung: RC, Aktiv, Digital — Richtig Auswählen

Filter entfernen unerwünschte Frequenzanteile aus dem Signal. Bei analogen E/A müssen eliminiert werden: Netzstörungen 50/60 Hz, hochfrequente Schaltstörungen von Frequenzumrichtern (2–20 kHz) und breitbandiges Rauschen. Hardware-RC-Filter vor dem ADC sind obligatorisch, um Aliasing zu verhindern — das Nyquist-Theorem fordert eine Antialias-Filtergrenzfrequenz unterhalb der halben ADC-Abtastrate. Digitale Filter in der SPS bieten zusätzliche Rauschunterdrückung auf Kosten von Latenz.

Signalaufbereitung
// Anti-aliasing filter design
// ADC sample rate: 1000 Hz (1ms cycle PLC analog scan)
// Nyquist frequency: 500 Hz
// Anti-aliasing filter must attenuate signals above 500 Hz
// Choose cutoff fc = 100 Hz (5× safety margin)

// RC filter: R = 1/(2π×fc×C)
// Choose C = 100nF: R = 1/(2π×100×100e-9) = 15.9 kΩ → use 16kΩ
// Actual fc = 1/(2π×16000×100e-9) = 99.5 Hz ≈ 100 Hz

// Attenuation at 500 Hz (Nyquist): 20×log(fc/f) = 20×log(100/500) = -14 dB
// Not enough! For 1% alias rejection need > -40 dB at 500 Hz
// → Need 2nd order filter or lower fc

// 2nd order Sallen-Key: -40 dB/decade → -40 dB at 10×fc = 1 kHz
// Set fc = 50 Hz: -40 dB at 500 Hz ✓ (aliasing suppressed)

// Digital moving average filter in PLC:
FUNCTION MA_Filter : REAL
VAR_INPUT
  new_sample  : REAL;
  n_samples   : INT := 16;  // Averaging window
END_VAR
VAR_IN_OUT
  buffer      : ARRAY[0..31] OF REAL;
  index       : INT;
  sum         : REAL;
END_VAR
  sum := sum - buffer[index] + new_sample;
  buffer[index] := new_sample;
  index := (index + 1) MOD n_samples;
  MA_Filter := sum / INT_TO_REAL(n_samples);
END_FUNCTION

// Exponential filter (IIR first-order) — better for control loops:
// y[n] = α × x[n] + (1-α) × y[n-1]
// α = Tscan / (τ_filter + Tscan)
// For τ = 500ms, Tscan = 10ms: α = 10/(500+10) = 0.0196
// Time constant maintained regardless of scan time changes
FUNCTION EXP_Filter : REAL
VAR_INPUT
  new_val  : REAL;
  tau_ms   : REAL := 500.0;  // Filter time constant (ms)
  scan_ms  : REAL := 10.0;   // PLC scan time (ms)
END_VAR
VAR_IN_OUT
  prev_out : REAL;
END_VAR
VAR
  alpha    : REAL;
END_VAR
  alpha    := scan_ms / (tau_ms + scan_ms);
  prev_out := alpha * new_val + (1.0 - alpha) * prev_out;
  EXP_Filter := prev_out;
END_FUNCTION

Galvanische Trennung, Schleifenstromversorgung & HART-Protokoll

Galvanische Trennung unterbricht die elektrische Verbindung zwischen Feld und Leitsystem, lässt aber das Signal durch — über Transformatoren, Optokoppler oder Kondensatoren. Sie ist unerlässlich bei unterschiedlichen Erdpotenzialen von Feldgeräten (verhindert Erdschleifen), in explosionsgefährdeten Bereichen mit Eigensicherheitsbarrieren und bei Hochspannungstransienten auf der Feldverdrahtung. Das HART-Protokoll überlagert ein ±0,5-mA-FSK-Digitalsignal (1200/2200 Hz) der 4–20-mA-Schleife, ohne die Analogmessung zu beeinflussen. Ein HART-Modem kann Geräteidentifikation, Kalibrierdaten, Diagnose und Sekundärvariablen aus Smart-Transmittern auslesen.

Signalaufbereitung
// HART protocol — what data is accessible
// HART commands (subset of most useful):
//
// CMD 0:  Read unique identifier (manufacturer, device type, serial)
// CMD 1:  Read primary variable (PV) and units
// CMD 2:  Read PV, % range, loop current, span
// CMD 3:  Read dynamic variables (PV, SV, TV, QV)
// CMD 12: Read message (user-defined string)
// CMD 13: Read tag, descriptor, date
// CMD 14: Read transducer information (serial, limits, unit code)
// CMD 15: Read device info (range values, signal code)
// CMD 17: Write message
// CMD 35: Write primary variable range values (recalibrate)
// CMD 44: Write primary variable units
// CMD 45: Trim primary variable zero
// CMD 46: Trim primary variable gain
//
// HART modem in PLC (e.g. Siemens AI module with integrated HART):
// Reads CMD 3 data automatically every 500ms
// Results available in extended I/O data area:

VAR
  // From HART extended data block:
  pv_value    : REAL;    // Primary variable (same as 4-20mA value)
  sv_value    : REAL;    // Secondary variable (e.g. temperature from DP cell)
  loop_mA     : REAL;    // Actual loop current (diagnostic)
  device_status: WORD;  // Device health flags
  // Bit 0: Primary variable out of limits
  // Bit 1: Non-primary variable out of limits
  // Bit 2: Loop current saturated
  // Bit 4: More status available
  // Bit 5: Cold start (device just powered)
  // Bit 7: Device malfunction
END_VAR

// HART wire-break detection:
// If transmitter fails: loop_mA → 0 or > 21.5 mA (NAMUR NE43)
// NAMUR NE43 alarm levels:
//   < 3.6 mA: sensor/cable failure → substitute value DOWN
//   > 21.0 mA: sensor/cable failure → substitute value UP
// These saturate the 4-20mA output to signal the failure

Feldverdrahtung, Schirmung & Erdung

Mehr analoge Messprobleme entstehen durch die Verdrahtung als durch Sensor oder Karte. Die Regeln sind einfach und nicht verhandelbar. Verwenden Sie verdrilltes Adernpaar: Das Verdrillen sorgt dafür, dass beide Leiter Störungen gleich aufnehmen, sodass ein Differenzeingang sie auslöscht. Verwenden Sie einen Schirm (Folie oder Geflecht) um das Paar und erden Sie den Schirm nur an EINEM Ende — normalerweise am Schaltschrank/SPS-Ende. Erdung an beiden Enden erzeugt eine Schirm-Erdschleife, die genau das Rauschen einspeist, das der Schirm blocken soll. Trennen Sie Analogkabel räumlich von Leistungs- und Umrichterkabeln (mindestens 200–300 mm bei Parallelführung; Kreuzungen im 90°-Winkel). Führen Sie Analogsignale in eigener Kabelrinne oder eigenem Rohr, niemals mit Motorkabeln gebündelt. Halten Sie das Schleifenwiderstandsbudget bei Stromschleifen ein und öffnen Sie niemals eine spannungsführende 4–20-mA-Schleife ohne Kurzschlussbrücke — eine offene Schleife legt die volle Versorgung über die Unterbrechung. Führen Sie den Schirm-Beidraht auf eine saubere Instrumentenerde, nicht auf einen verrauschten Motor-PE-Sternpunkt.

Signalaufbereitung
// Analog field-wiring checklist (commissioning + audit)
//
// CABLE
//   [ ] Twisted pair per signal (cancels common-mode pickup)
//   [ ] Individual + overall shield for multi-pair cable
//   [ ] Correct cross-section for loop-resistance budget
//
// SHIELD / GROUND  (the #1 source of analog noise)
//   [ ] Shield grounded at ONE end only  -> the panel / PLC end
//   [ ] Shield NEVER grounded at both ends (= shield ground loop)
//   [ ] Drain wire to clean instrument earth, not motor PE star point
//   [ ] Field end of shield insulated + heat-shrunk (floating)
//
// SEGREGATION
//   [ ] >= 200-300 mm from power / VFD / contactor wiring
//   [ ] Cross power cables at 90 deg, never run parallel
//   [ ] Own tray/conduit; not bundled with motor cables
//
// PRACTICE
//   [ ] Differential (not single-ended) inputs where available
//   [ ] Do not open a live 4-20 mA loop without a shorting link
//   [ ] Torque terminals to spec; ferrule stranded conductors
//
// Shield-grounding topology (one end only):
//
//   field device            control panel
//   +----------+   shield    +-----------+
//   | Tx       |============| }== EARTH  |   <- grounded HERE
//   |  (float) X  (no gnd)   |  PLC AI   |
//   +----------+            +-----------+
//        ^ shield left floating at the field end

SPS-Programmierung für Analoge E/A

Das Lesen eines Analogeingangs und das Schreiben eines Analogausgangs erfordert mehr Sorgfalt als bei digitalen E/A. Jeder Analogkanal braucht Skalierung, Filterung, Begrenzung und Alarmüberwachung. Analogausgänge benötigen Rampenbegrenzung, Sicherheitszustandsbehandlung und stoßfreie Umschaltung zwischen Handbetrieb und Automatikbetrieb.

Analog Input Channel Dashboard — live simulation

Simulate a live analog process with noise, drift, and fault injection. Watch scaling, filtering, alarms, and wire-break detection react in real time exactly as the AI_Process function block does.

50.0%
2.0%
500 ms
85%
15%
Raw PV (noisy)
Filtered PV
Raw count
Loop mA
Alarm H
OK
Alarm L
OK
Wire break
NO
Status
OK
PID Analog Control Loop — pressure vessel simulation

A simulated pressure vessel with an inlet control valve (AO) and a pressure transmitter (AI). Tune the PID, change the setpoint, inject load disturbances, and watch the closed-loop response.

5.0 bar
1.5
30 s
3 s
Pressure PV
Setpoint
Error
Valve output
Integral
Mode
AUTO

Vollständiger Analogeingabe-Verarbeitungsblock

Ein produktionsreifer Analogeingabe-Verarbeitungsblock macht mehr als nur Zähler in Ingenieureinheiten umzuwandeln. Er wendet einen Filter an, erkennt Drahtbruch (bei 4–20 mA), löst Hoch-/Tief-Alarme aus, begrenzt den Ausgang auf sichere Werte und liefert einen Ersatzwert bei Sensorausfall. Dieser Block wird einmal pro Eingangskanal pro SPS-Zyklus aufgerufen.

SPS-Programmierung für Analoge E/A
// Analog Input Processing Function Block
// Complete production-quality implementation
FUNCTION_BLOCK AI_Process
VAR_INPUT
  raw_count   : INT;         // PLC hardware input register
  raw_lo      : INT  := 6554;   // Count at 4 mA
  raw_hi      : INT  := 32767;  // Count at 20 mA
  eng_lo      : REAL := 0.0;
  eng_hi      : REAL := 100.0;
  filter_tau  : REAL := 1000.0; // ms filter time constant
  scan_ms     : REAL := 10.0;   // PLC scan time ms
  alarm_hi    : REAL := 95.0;   // High alarm threshold
  alarm_lo    : REAL := 5.0;    // Low alarm threshold
  sub_value   : REAL := 50.0;   // Substitute value on fault
  enable      : BOOL := TRUE;
END_VAR
VAR_OUTPUT
  pv          : REAL;        // Process value (engineering units)
  pv_raw      : REAL;        // Unfiltered value
  alarm_H     : BOOL;        // High alarm active
  alarm_L     : BOOL;        // Low alarm active
  wire_break  : BOOL;        // Wire break / under-range detected
  status_ok   : BOOL;        // Channel healthy
END_VAR
VAR
  pv_filt     : REAL;        // Internal filter state
  alpha       : REAL;
  span_raw    : REAL;
  span_eng    : REAL;
  WIRE_BREAK_THRESHOLD : INT := 5000;  // Below this = wire break
END_VAR

IF NOT enable THEN
  pv := sub_value; status_ok := FALSE; RETURN;
END_IF;

// Wire break detection (4-20mA only)
wire_break := raw_count < WIRE_BREAK_THRESHOLD;
IF wire_break THEN
  pv := sub_value; status_ok := FALSE;
  alarm_H := FALSE; alarm_L := FALSE;
  RETURN;
END_IF;

// Scaling
span_raw := INT_TO_REAL(raw_hi - raw_lo);
span_eng := eng_hi - eng_lo;
pv_raw   := eng_lo + (INT_TO_REAL(raw_count - raw_lo) / span_raw) * span_eng;

// Clamp to slightly beyond range (allow ±5% over/under-range)
pv_raw := LIMIT(eng_lo - 0.05*span_eng, pv_raw, eng_hi + 0.05*span_eng);

// Exponential filter
alpha   := scan_ms / (filter_tau + scan_ms);
pv_filt := alpha * pv_raw + (1.0 - alpha) * pv_filt;
pv      := pv_filt;

// Alarms (with 1% hysteresis)
alarm_H := pv >= alarm_hi OR (alarm_H AND pv > alarm_hi * 0.99);
alarm_L := pv <= alarm_lo OR (alarm_L AND pv < alarm_lo * 1.01);

status_ok := TRUE;
END_FUNCTION_BLOCK

Analogausgang: Rampenbegrenzung, Sicherheitszustand & Stoßfreie Umschaltung

Analogausgänge erfordern besondere Sorgfalt. Eine plötzliche Ausgangsänderung (z.B. Ventil springt von 0 % auf 100 %) verursacht Wasserschlag, mechanische Stöße oder Prozessstörungen. Die Rampenbegrenzung verhindert dies. Bei SPS-Fehler oder CPU-Stop muss der Ausgang in einen definierten Sicherheitszustand übergehen. Die stoßfreie Umschaltung gewährleistet einen sanften Wechsel zwischen Handbetrieb und Automatik — der Integrator wird mit dem aktuellen Handwert vorgeladen, bevor auf Automatik umgeschaltet wird.

SPS-Programmierung für Analoge E/A
// Analog Output Processing Function Block
FUNCTION_BLOCK AO_Process
VAR_INPUT
  setpoint_eng : REAL;       // Commanded value (engineering units)
  eng_lo       : REAL := 0.0;
  eng_hi       : REAL := 100.0;
  raw_lo       : INT  := 6554;   // DAC count at 4 mA
  raw_hi       : INT  := 32767;  // DAC count at 20 mA
  rate_limit   : REAL := 10.0;   // Max change per second (eng units/s)
  scan_ms      : REAL := 10.0;
  safe_value   : REAL := 0.0;    // Output on fault
  fault_active : BOOL := FALSE;
END_VAR
VAR_OUTPUT
  raw_out      : INT;         // Write to PLC hardware output register
  actual_eng   : REAL;        // Actual output in engineering units
END_VAR
VAR
  limited_sp   : REAL;        // Rate-limited setpoint
  max_step     : REAL;        // Max step this scan
  span_raw     : REAL;
  span_eng     : REAL;
END_VAR

// On fault: safe state
IF fault_active THEN
  actual_eng := safe_value;
  limited_sp := safe_value;  // Reset rate limiter state
  // Convert to raw and write
  span_raw  := INT_TO_REAL(raw_hi - raw_lo);
  span_eng  := eng_hi - eng_lo;
  raw_out   := raw_lo + REAL_TO_INT((actual_eng - eng_lo) / span_eng * span_raw);
  RETURN;
END_IF;

// Rate limiting
max_step   := rate_limit * scan_ms / 1000.0;  // Per scan
limited_sp := LIMIT(limited_sp - max_step,
                     setpoint_eng,
                     limited_sp + max_step);
actual_eng := limited_sp;

// Clamp to output range
actual_eng := LIMIT(eng_lo, actual_eng, eng_hi);

// Scale to DAC counts
span_raw := INT_TO_REAL(raw_hi - raw_lo);
span_eng := eng_hi - eng_lo;
raw_out  := raw_lo + REAL_TO_INT(
              (actual_eng - eng_lo) / span_eng * span_raw);
END_FUNCTION_BLOCK

PID-Regelkreis — Analogeingang, Analogausgang

Die häufigste Verwendung von Analog-E/A ist das Schließen eines Regelkreises: eine Prozessgröße messen (Temperatur, Druck, Füllstand), mit dem Sollwert vergleichen, eine Korrektur berechnen und ein Stellglied ansteuern (Ventil, Heizung, Pumpendrehzahl). IEC 61131-3 stellt den Funktionsbaustein CONT_C (kontinuierlicher Regler) bereit. Das Beherrschen der PID-Einstellung — Kp, Ti, Td und ihr Zusammenspiel mit der Prozessdynamik — ist die Kernkompetenz der Prozessregelungstechnik.

SPS-Programmierung für Analoge E/A
// PID control loop — pressure control example
// PV: pressure transmitter 0-10 bar (4-20mA)
// MV: control valve 0-100% (4-20mA positioner)
VAR
  pressure_AI  : AI_Process;  // Analog input function block
  valve_AO     : AO_Process;  // Analog output function block
  pid          : PID;

  // PID parameters (tune for process):
  Kp           : REAL := 1.5;    // Proportional gain
  Ti           : REAL := 30.0;   // Integral time (s) — reset time
  Td           : REAL := 3.0;    // Derivative time (s) — rate time
  Tscan        : REAL := 0.1;    // PLC cycle time (s) = 100ms

  // Setpoint and mode
  pressure_sp  : REAL := 5.0;    // Bar setpoint
  auto_mode    : BOOL := TRUE;
  manual_output: REAL := 50.0;   // % valve open in manual

  // Outputs
  valve_pct    : REAL;           // 0-100% valve demand
END_VAR

// 1. Read and process analog input
pressure_AI(raw_count:=AI_pressure_raw, eng_lo:=0.0, eng_hi:=10.0,
            alarm_hi:=9.5, alarm_lo:=0.2, filter_tau:=200.0);

// 2. PID controller
pid(
  ACTUAL     := pressure_AI.pv,    // Process variable
  SET_POINT  := pressure_sp,       // Setpoint
  KP         := Kp,
  TI         := Ti,
  TD         := Td,
  CYCLE      := Tscan,
  MANUAL     := NOT auto_mode,
  MANUAL_IN  := manual_output / 100.0,  // Bumpless transfer
  LMN        => valve_pct_norm          // 0.0-1.0 output
);
valve_pct := valve_pct_norm * 100.0;

// 3. Write analog output
valve_AO(setpoint_eng:=valve_pct, rate_limit:=20.0,  // 20%/s max
          fault_active:=NOT pressure_AI.status_ok);
AO_valve_raw := valve_AO.raw_out;

// Anti-windup: integral is automatically limited in CONT_C
// Bumpless transfer: MANUAL_IN pre-loads integrator
// Derivative filter: CONT_C applies built-in derivative filter
// Output clamping: 0-100% with back-calculation anti-windup

Kalibrierung, Genauigkeit & Rückverfolgbarkeit

Kalibrierung stellt die Beziehung zwischen der Anzeige eines Messgeräts und dem wahren Wert her, unter Verwendung von Referenzstandards, die auf nationale Metrologie-Institute rückverfolgbar sind. In der Prozessindustrie ist die Kalibrierung eine gesetzliche Anforderung. Das Verständnis von Kalibrierverfahren, Fehlerbudgets und der Aufrechterhaltung der Rückverfolgbarkeit ist unerlässlich für Analogmesssysteme in Sicherheit, Qualität oder Mengenabrechnung.

Interactive Two-Point Calibration

Walk through a real two-point calibration. The transmitter has injected zero and span errors. Apply reference signals and correct them. See error before and after calibration.

Zero error
Span error
Before accuracy
After accuracy

Error Budget Reference

Error sourceTypical valueCorrectable?Combination method
Transmitter ref. accuracy±0.05–0.2% FSBy calibrationRSS (random)
Temperature drift±0.02–0.1%/10°CPartialSystematic (add)
Long-term drift±0.05–0.2%/yearBy recalibrationSystematic
ADC quantisation±0.5 LSBNo (inherent)RSS
ADC gain error±0.05–0.1% FSBy calibrationSystematic
Cable noise (EMI)±0.01–0.5% FSBy shieldingRSS
Ground loop±0.5–5% FSBy isolationSystematic

Zweipunkt-Kalibrierung: Nullpunkt, Spanne & Abgleich

Die Zweipunkt-Kalibrierung korrigiert sowohl Offset- als auch Verstärkungsfehler. Ein bekanntes Nullpunkt-Eingangssignal anlegen (z.B. 4 mA vom Kalibrator), den SPS-Wert ablesen, den Nullpunkt-Parameter anpassen, bis die SPS den korrekten Ingenieurwert anzeigt. Dann ein bekanntes Spannen-Eingangssignal anlegen (z.B. 20 mA) und den Spannen-Parameter anpassen. Dies korrigiert die lineare Übertragungsfunktion vollständig. Bei HART-Transmittern trimmt CMD 45 den Nullpunkt und CMD 46 die Verstärkung — die Korrektur wird im Transmitter selbst gespeichert.

Kalibrierung, Genauigkeit & Rückverfolgbarkeit
// Two-point calibration procedure — structured text implementation
// For a pressure transmitter 0-100 bar on a 4-20mA loop

VAR
  calib_mode      : BOOL := FALSE;  // Operator enables calibration
  calib_step      : INT  := 0;      // 0=idle, 1=zero, 2=span, 3=done
  ref_value_zero  : REAL := 0.0;    // Known reference at zero (bar)
  ref_value_span  : REAL := 100.0;  // Known reference at span (bar)
  raw_at_zero     : INT;            // Captured raw count at zero
  raw_at_span     : INT;            // Captured raw count at span
  calibrated_lo   : INT;            // Calibrated raw_lo
  calibrated_hi   : INT;            // Calibrated raw_hi
  calib_confirm   : BOOL;
  calib_done      : BOOL;
  // Calculated correction:
  ideal_lo        : INT := 6554;    // Expected 4mA count
  ideal_hi        : INT := 32767;   // Expected 20mA count
  zero_error_mA   : REAL;           // Offset error in mA
  span_error_pct  : REAL;           // Gain error in %
END_VAR

CASE calib_step OF
  0: // IDLE
    IF calib_mode THEN calib_step := 1; calib_done := FALSE; END_IF;

  1: // ZERO POINT — operator applies 4 mA (or 0 bar reference)
    // Display instruction on HMI: "Apply zero reference signal"
    IF calib_confirm THEN
      raw_at_zero := AI_raw_count;  // Capture raw count
      calibrated_lo := raw_at_zero;
      zero_error_mA := INT_TO_REAL(raw_at_zero - ideal_lo)
                       / INT_TO_REAL(ideal_hi - ideal_lo) * 16.0;
      calib_confirm := FALSE;
      calib_step := 2;
    END_IF;

  2: // SPAN POINT — operator applies 20 mA (or 100 bar reference)
    IF calib_confirm THEN
      raw_at_span := AI_raw_count;
      calibrated_hi := raw_at_span;
      span_error_pct := (INT_TO_REAL(raw_at_span - raw_at_zero)
                        / INT_TO_REAL(ideal_hi - ideal_lo) - 1.0) * 100.0;
      calib_confirm := FALSE;
      calib_step := 3;
    END_IF;

  3: // APPLY calibration and save to retain memory
    AI_block.raw_lo := calibrated_lo;
    AI_block.raw_hi := calibrated_hi;
    calib_done := TRUE;
    calib_step := 0;
END_CASE;
// Log calibration: date, technician, before/after values, certificate number

Fehlerbudget-Analyse

Ein Fehlerbudget quantifiziert jede Messunsicherheitsquelle und kombiniert sie zur Vorhersage der Gesamtsystemgenauigkeit. Quellen: Transmittergenauigkeit (% vom Messbereich), Temperaturdrift des Transmitters, ADC-Verstärkungs- und Offsetfehler, Kabelrauschen (Gleichtaktunterdrückung), SPS-Filterlatenz (Dynamikfehler bei Transienten) und Digitalisierungsfehler. Zufällige unabhängige Fehler werden als Wurzel der Quadratsumme kombiniert; systematische Fehler werden direkt addiert.

Kalibrierung, Genauigkeit & Rückverfolgbarkeit
// Error budget calculation — pressure measurement system
// Transmitter: Endress+Hauser PMC51, 0-100 bar, 4-20mA
// PLC card: Siemens SM331 AI 8×12bit

// Error source breakdown (all as % of full scale):
VAR
  // Transmitter errors:
  e_transmitter_ref   : REAL := 0.075;  // ±0.075% FS at reference conditions
  e_transmitter_temp  : REAL := 0.05;   // ±0.05%/10°C × 20°C range = 0.1%
  e_transmitter_long  : REAL := 0.1;    // Long-term drift per year
  e_transmitter_vib   : REAL := 0.02;   // Vibration effect

  // Transmission errors:
  e_cable_noise       : REAL := 0.02;   // EMI / noise on cable
  e_loop_resistance   : REAL := 0.01;   // Resistive drop effect

  // PLC card errors:
  e_adc_gain          : REAL := 0.1;    // ADC gain error
  e_adc_offset        : REAL := 0.05;   // ADC offset error
  e_adc_quantise      : REAL := 0.024;  // ±0.5 LSB / 2^12 = 0.024%
  e_adc_temp          : REAL := 0.05;   // Temperature drift of ADC

  // Combined uncertainty:
  e_random            : REAL;   // RSS of random/independent errors
  e_systematic        : REAL;   // Sum of systematic errors
  e_total             : REAL;   // Total measurement uncertainty
END_VAR

// Random errors (RSS combination):
e_random := SQRT(e_transmitter_ref*e_transmitter_ref
               + e_cable_noise*e_cable_noise
               + e_adc_quantise*e_adc_quantise
               + e_adc_temp*e_adc_temp);
// = √(0.075² + 0.02² + 0.024² + 0.05²) = √(0.00875) = 0.094%

// Systematic errors (direct sum — worst case):
e_systematic := e_transmitter_temp + e_transmitter_long
              + e_adc_gain + e_adc_offset;
// = 0.1 + 0.1 + 0.1 + 0.05 = 0.35%

// Total (random RSS + systematic):
e_total := e_random + e_systematic;  // = 0.094 + 0.35 = 0.44% FS
// On 100 bar span: ±0.44 bar total uncertainty
// After calibration: systematic errors reduced → e_total ≈ ±0.12% FS

Metrologische Rückverfolgbarkeit & Kalibrierintervalle

Rückverfolgbarkeit bedeutet, dass Kalibrierzertifikate eine lückenlose Kette bis zu nationalen Standards (PTB, NIST, NPL) bilden. Jedes Referenzgerät zur Kalibrierung von Feldgeräten muss selbst gegen einen übergeordneten Standard kalibriert werden, mit dokumentierten Zertifikaten. Kalibrierintervalle werden durch Driftraten, Prozesskritikalität und gesetzliche Anforderungen bestimmt. Für SIL-klassifizierte Instrumente muss das Prüfintervall kurz genug sein, damit die Wahrscheinlichkeit eines unerkannten gefährlichen Ausfalls unterhalb der SIL-Anforderung bleibt.

Kalibrierung, Genauigkeit & Rückverfolgbarkeit
// Calibration management data structure
// Store in PLC retain memory or SCADA database

TYPE InstrumentCalibRecord :
  STRUCT
    tag_id          : STRING[16];   // e.g. 'PT-1234'
    description     : STRING[32];   // 'Reactor inlet pressure'
    location        : STRING[24];
    manufacturer    : STRING[16];   // 'Endress+Hauser'
    model           : STRING[16];   // 'PMC51'
    serial          : STRING[16];
    range_lo        : REAL;         // 0 bar
    range_hi        : REAL;         // 100 bar
    range_units     : STRING[8];    // 'bar'
    last_calib_date : STRING[12];   // 'YYYY-MM-DD'
    next_calib_date : STRING[12];
    calib_interval_days : INT := 365;
    last_zero_error : REAL;         // % FS at last calibration
    last_span_error : REAL;
    cal_cert_number : STRING[20];
    calibrator_id   : STRING[16];   // Reference instrument used
    calibrator_cert : STRING[20];   // Calibrator certificate number
    sil_level       : INT := 0;     // 0=no SIL, 1=SIL1, 2=SIL2
    pti_days        : INT := 365;   // Proof test interval (safety)
    status          : STRING[8];    // 'CURRENT', 'DUE', 'OVERDUE'
  END_STRUCT
END_TYPE

// ISO 9001 calibration schedule check:
// Run daily in PLC or SCADA:
// IF today > instrument.next_calib_date THEN
//   ALARM: 'Calibration overdue: ' + instrument.tag_id
//   IF instrument.sil_level >= 2 THEN
//     Consider automatic fallback to substitute value
//   END_IF
// END_IF

Diagnose & Fehlerbehebung

Analogsignalfehler sind subtiler als Digitalfehler. Ein blockierter Digitaleingang ist offensichtlich; ein Analogeingang, der 2 % zu hoch anzeigt, ist ohne Referenzdaten unsichtbar. Systematische Diagnose — Instrumentenvergleich, Rauschpegelüberwachung, Drifttrendverfolgung — deckt Probleme auf, bevor sie Prozessstörungen verursachen.

Analog Fault Diagnosis Challenge

An analog measurement system has a fault. Use virtual meter probes to measure at each point. Diagnose the root cause before clicking Reveal.

Click a probe point ● to measure.
2oo3 Voting — redundant measurement

Drag three independent transmitters. Watch the voted value and fault detection. Inject drift or failure on individual channels.

5.00 bar
5.05 bar
4.98 bar
0.30 bar
Voted PV
T1 status
OK
T2 status
OK
T3 status
OK
Vote quality
FULL
Spread

Systematische Analogfehler-Diagnose

Jeder Analogmessfehler fällt in eine von fünf Kategorien: kein Signal (Drahtbruch, Stromausfall), falscher Wert (Skalierungsfehler, Transmitterausfall, Sensorschaden), verrauschtes Signal (EMV, Erdschleife, Wackelkontakt), driftendes Signal (Temperaturdrift, Sensorverschmutzung, Alterung) oder eingefrorenes Signal (eingefrorener Transmitter, gesättigter Verstärker). Das Diagnoseverfahren verfolgt das Signal vom Sensor bis zum SPS-Register, mit Messung an jedem Punkt.

Diagnose & Fehlerbehebung
// Analog fault diagnosis tree — systematic approach
//
// FAULT: PLC reads wrong value
//
// Step 1: Check PLC raw count vs expected
//   At 4mA (zero): raw should be ~6554 on 16-bit card
//   At 20mA (span): raw should be ~32767
//   Wrong raw count → problem is in wiring or transmitter
//   Correct raw count but wrong PV → scaling error in PLC program
//
// Step 2 (wrong raw): Measure loop current with clamp meter
//   Measure mA at PLC input terminals (series in loop)
//   Correct mA (e.g. 12mA for 50% process): transmitter OK
//     → PLC card fault or scale parameter error
//   Wrong mA:
//     Measure mA at transmitter output:
//     Correct at transmitter, wrong at PLC → cable fault (resistance change)
//     Wrong at transmitter:
//       Check transmitter supply voltage: should be 18-30V across terminals
//       Low voltage: PSU fault, high loop resistance, too many devices in loop
//       Correct supply but wrong mA: transmitter fault → replace
//
// FAULT: Signal is noisy (reading oscillates ±X units)
//
// Step 1: Identify noise frequency
//   Use HMI trend at fast update rate (100ms)
//   50/60 Hz component → mains coupling (check cable routing/shielding)
//   Random high-frequency → VFD switching noise
//   Low-frequency drift → temperature, pressure variation, ground loop
//
// Step 2: Noise source isolation
//   Disconnect field wiring, short PLC input terminals
//   If noise disappears → it came from field cable
//   If noise remains → PLC card or backplane noise
//   Reconnect cable, remove shield ground:
//   If noise decreases → ground loop (multiple ground points)
//
// FAULT: Signal drifts slowly over hours
//   Log PV trend for 24 hours
//   Correlate with ambient temperature record
//   If correlation > 0.8 → temperature drift
//     Fix: move transmitter away from heat source, insulate
//   If drift is monotonic and accelerating → sensor contamination
//     Inspect sensor element, clean or replace

Kreuzvalidierung & Redundante Messungen

In kritischen Prozessen werden wichtige Messungen zwei- oder dreimal durchgeführt und die Werte verglichen. Ein 2oo3-Auswahlsystem (Zwei-aus-Drei) verwendet drei unabhängige Transmitter — weicht einer von den anderen beiden ab, wird er als fehlerhaft markiert und der Mittelwert der verbleibenden zwei verwendet. Die SPS erkennt die Abweichung automatisch, löst einen Alarm aus und arbeitet ohne Prozessunterbrechung weiter. Kreuzvalidierung funktioniert auch zwischen verwandten Prozessgrößen: In einem Wärmetauscher müssen Eingangstemperatur, Ausgangstemperatur und Wärmeleistung die Energiebilanz innerhalb einer bekannten Toleranz erfüllen.

Diagnose & Fehlerbehebung
// 2oo3 voting and cross-validation
FUNCTION_BLOCK Vote_2oo3
VAR_INPUT
  pv1, pv2, pv3    : REAL;   // Three independent measurements
  deviation_limit  : REAL := 2.0;  // Max deviation before alarm (eng units)
END_VAR
VAR_OUTPUT
  voted_pv         : REAL;   // Voted (median) process value
  ch1_fault        : BOOL;   // TRUE if channel 1 differs from others
  ch2_fault        : BOOL;
  ch3_fault        : BOOL;
  vote_degraded    : BOOL;   // Only 2 channels agreeing
  vote_failed      : BOOL;   // All 3 disagree — cannot vote
END_VAR
VAR
  avg12, avg13, avg23 : REAL;
END_VAR

// Check pairwise agreement
avg12 := (pv1 + pv2) / 2.0;
avg13 := (pv1 + pv3) / 2.0;
avg23 := (pv2 + pv3) / 2.0;

ch1_fault := ABS(pv1 - avg23) > deviation_limit;
ch2_fault := ABS(pv2 - avg13) > deviation_limit;
ch3_fault := ABS(pv3 - avg12) > deviation_limit;

vote_failed := ch1_fault AND ch2_fault AND ch3_fault;

IF NOT vote_failed THEN
  // Median value from agreeing channels
  IF ch1_fault THEN
    voted_pv := avg23;  // Use channels 2 and 3
    vote_degraded := TRUE;
  ELSIF ch2_fault THEN
    voted_pv := avg13;  // Use channels 1 and 3
    vote_degraded := TRUE;
  ELSIF ch3_fault THEN
    voted_pv := avg12;  // Use channels 1 and 2
    vote_degraded := TRUE;
  ELSE
    voted_pv := (pv1 + pv2 + pv3) / 3.0;  // All agree — use average
    vote_degraded := FALSE;
  END_IF;
ELSE
  voted_pv := (pv1 + pv2 + pv3) / 3.0;  // Fallback — no reliable vote
END_IF;
END_FUNCTION_BLOCK

Digitalisierung: Von 4–20 mA zu Ethernet-APL

Seit vierzig Jahren ist 4–20 mA das Arbeitspferd der Prozessmessung — einfach, robust, allgemein verstanden. Aber eine Schleife trägt genau eine Zahl und nichts sonst: keine Diagnose, keine Identität, keine zweite Größe. Digitale Feldkommunikation ändert das — dieselben Adern können den Primärwert plus Sekundärgrößen, Zustandsdaten, Kalibrierdatensätze und Geräteidentität übertragen. Dieser Abschnitt zeichnet die Leiter nach: von HART, das auf dem 4–20-mA-Signal aufsetzt, über Feldbus bis zu Ethernet-APL — Zweidraht-Ethernet, das das Anlagennetz endlich bis zum Feldgerät bringt, sogar in explosionsgefährdeten Bereichen.

Ethernet-APL Segment Designer — build a field segment

A different kind of sim: build a trunk-and-spur APL segment. Add field instruments, set the trunk length, and toggle between a standard and an intrinsically-safe (Ex Zone 1) segment. The designer draws the schematic and flags the moment power, device count or reach goes out of spec. Figures are representative — real designs come from the vendor's segment-planning tool.

300 m
Instruments
Segment load
Power budget
Headroom
Trunk / limit
Segment status
OK

Die digitale Leiter: HART, Foundation Fieldbus & PROFIBUS PA

Der Übergang von analog zu digital geschah in Stufen. HART behält die 4–20-mA-Schleife und legt ein kleines digitales Gespräch darüber — rückwärtskompatibel, auf zig Millionen Schleifen installiert, aber langsam (1200 bit/s) und meist nur gelegentlich abgefragt. Foundation Fieldbus (H1) und PROFIBUS PA wurden voll digital: ein verdrilltes Adernpaar, 31,25 kbit/s, Multidrop, busgespeist, eigensicher — mehrere Instrumente teilen sich ein Segment und melden alle digital. Sie bewiesen den Wert digitaler Felddaten (mehrere Größen, Fernkonfiguration, Diagnose), waren aber aufwändig zu planen — Segment-Leistungsbudgets, Abschlüsse, Stichleitungsgrenzen — und weiterhin langsam. Für eine einzelne einfache Schleife blieb 4–20 mA die pragmatische Wahl.

Digitalisierung: Von 4–20 mA zu Ethernet-APL
// The field-communication ladder -- what each layer buys you
//
//  Layer            Speed        Power      Multidrop  Diagnostics  Ex
//  ---------------- ------------ ---------- ---------- ------------ -----
//  4-20 mA          (analog)     loop       no         none         yes
//  4-20 mA + HART   1.2 kbit/s   loop       no*        good         yes
//  PROFIBUS PA      31.25 kbit/s bus        yes (~32)  good         yes
//  Foundation FF H1 31.25 kbit/s bus        yes (~32)  good         yes
//  Ethernet-APL     10 Mbit/s    bus        yes        full         yes
//
//  * HART multidrop exists but parks every device at 4 mA and gives up
//    the analog value -- rarely used for control.
//
// Why HART is everywhere but rarely closes the loop:
//   - The 4-20 mA value still does the real-time control.
//   - HART carries the SECOND variable, device status, and calibration.
//   - A handheld communicator or an asset-management system polls it.
//   - Latency (~500 ms/round) is fine for diagnostics, not for control.
//
// Why fully-digital Fieldbus never fully replaced 4-20 mA:
//   - Segment design is an engineering task (power, length, terminators).
//   - 31.25 kbit/s is slow; a busy segment adds macrocycle latency.
//   - One simple loop is cheaper and safer as plain 4-20 mA.

Ethernet-APL: 10BASE-T1L, Energie und Daten auf einem Paar

Ethernet-APL (Advanced Physical Layer) passt den Standard IEEE 802.3cg 10BASE-T1L — 10-Mbit/s-Ethernet über ein einziges verdrilltes Adernpaar — an die Prozessanlage an. Es löst die drei Dinge, die Ethernet vom Feld fernhielten: Reichweite (bis 1000 m auf dem Stamm, 200 m auf einer Stichleitung, weit über die 100 m gewöhnlichen Ethernets hinaus), Energie (dieselben zwei Adern versorgen das Instrument) und Eigensicherheit (das 2-WISE-Schema macht ein Segment für Zone 0/1 sicher). Die Topologie ist Stamm-und-Stich über Feld-Switches. Da APL echtes Ethernet ist, laufen PROFINET, EtherNet/IP und OPC UA nativ von der Leitwarte bis zum Transmitter — rund 800× die Bandbreite von Feldbus — sodass ein einzelnes Instrument seinen Primärwert, alle Sekundärgrößen und die volle Diagnose gleichzeitig streamen kann. Es ist die erste Feldschicht, die ein einziges Netz vom Unternehmen bis zum Sensor trägt.

Digitalisierung: Von 4–20 mA zu Ethernet-APL
// Ethernet-APL segment -- the engineering envelope (typical figures)
//
//   [ Power switch / PSE ]==== trunk (2-wire, <=1000 m) ====[ field switch ]
//                                                             |  |  |  |
//                                                            spurs (<=200 m)
//                                                             |  |  |  |
//                                                           field instruments
//
//   Physical layer : 10BASE-T1L, 10 Mbit/s, full-duplex, single pair
//   Trunk          : up to 1000 m, higher power (non-Ex)
//   Spur           : up to 200 m to one field device (shorter in Ex)
//   Power          : delivered over the data pair (port power classes)
//   Ex             : 2-WISE intrinsic safety for Zone 0/1 / Div 1
//   Runs           : PROFINET, EtherNet/IP, OPC UA, HART-IP ...
//
// The instrument stops being 'a number on a wire' and becomes a node:
//   - IP-addressable, browsable, firmware-updatable
//   - streams PV + all secondary variables + NE107 diagnostics live
//   - no gateway between the field value and the plant network
//
// Exact reach / power / device-count depend on the port power class
// and the 2-WISE safety level -- always design from the vendor's
// segment-planning tool, not a rule of thumb.

Migration & Koexistenz: Wann 4–20 mA bleiben sollte

APL ist überzeugend, aber kein einfaches Upgrade: Es braucht APL-Feld-Switches, APL-Netzteile und oft neue Kabel, daher ist es heute meist eine Neubau- oder Großumbau-Entscheidung. Zugleich bleibt 4–20 mA für eine einzelne einfache Schleife unschlagbar — keine Adresse, keine Konfiguration, es funktioniert mit einem Netzteil und einem Widerstand, und seine Fehlerbilder sind trivial zu diagnostizieren (eine Stromzange sagt alles). Die meisten Anlagen fahren lange hybrid: APL oder Feldbus an komplexen, datenreichen oder schwer erreichbaren Anlagen, wo Live-Diagnose sich lohnt; einfaches 4–20 mA an einfachen, robusten oder sicherheitskritischen Schleifen, wo Einfachheit das Merkmal ist. Passen Sie die Schicht an das Betriebsmittel an, nicht an die Mode — und denken Sie daran, dass ein digitaler Knoten eine größere Angriffsfläche und einen längeren Fehlersuchbaum hat als eine Stromschleife.

Digitalisierung: Von 4–20 mA zu Ethernet-APL
// Choosing the field layer -- a practical decision checklist
//
// Prefer Ethernet-APL / Fieldbus when:
//   [ ] The device is multi-variable (flow + temp + pressure + status)
//   [ ] You want live diagnostics / predictive maintenance (NE107)
//   [ ] Remote or clustered instruments (one trunk, many spurs)
//   [ ] Greenfield build or a full instrumentation revamp
//   [ ] You already run PROFINET / EtherNet/IP / OPC UA to the edge
//
// Keep plain 4-20 mA when:
//   [ ] It is one simple loop (level, pressure, temperature)
//   [ ] SIL / safety loop where minimal complexity is the goal
//   [ ] Brownfield with sound existing cable and spares
//   [ ] Maintenance team is not yet trained on APL / Ethernet field work
//   [ ] The value of extra digital data does not justify the rework
//
// Reality check: analog and digital coexist for decades. Design each
// loop on its merits; a mixed plant is normal, not a failure.

Knowledge Test — 10 Questions

4–20 mA maths, RTD physics, filter design, PID, calibration, and fault diagnosis — all tested with full engineering explanations.

Question 1 / 10

Ein 4–20-mA-Stromschleifentransmitter misst 0–100 bar. Die Analogeingangskarte ist Lebend-Null-normiert: 4 mA = 0 Zähler und 20 mA = 32767 Zähler (die Karte hat den 4-mA-Offset bereits subtrahiert). Die SPS liest einen Rohzähler von 11648. Wie ist der Druck in Ingenieureinheiten?

Da die Karte Lebend-Null-normiert ist, entspricht 0 Zähler bereits 4 mA (0 %) und 32767 Zähler 20 mA (100 %). Die Skalierung ist eine einzige Gerade: Druck = (Roh / 32767) × Messbereich = (11648 / 32767) × 100 = 0,3555 × 100 = 35,6 bar. Die Falle: Nimmt man stattdessen 0 Zähler = 0 mA an und vergisst, dass die Karte den 4-mA-Offset behandelt hat, würde man 11648 in 7,11 mA umrechnen und 19,4 bar erhalten — ein Fehler von 16 bar. Prüfen Sie immer, ob Ihre Karte den rohen 0–20-mA-Bereich oder einen Lebend-Null-normierten 4–20-mA-Bereich meldet, bevor Sie den Skalierungsblock schreiben.
Question 2 / 10

Warum wird der 4–20-mA-Standard dem 0–20-mA für die industrielle Fernübertragung vorgezogen?

Der 4-mA-Offset (Lebend-Null) ist eines der wichtigsten Konzepte in der industriellen Messtechnik. Mit einem 0–20-mA-System ist es unmöglich zu bestimmen, ob der Prozess bei 0% liegt oder der Transmitter ausgefallen ist. Mit 4–20 mA: 4 mA = 0% Prozesswert (gültiges Signal), 0–3,8 mA = Störungszustand (Drahtbruch, ausgefallener Transmitter). Die meisten SPS-Analogeingangskarten beinhalten automatische Drahtbrucherkennung durch Überwachung des Schleifenstroms.
Question 3 / 10

Was ist der Unterschied zwischen einem "2-Draht"- und "4-Draht"-Transmitteranschluss?

Bei einem schleifengespeisten 2-Draht-Transmitter liefert die SPS 24 V über die Schleife. Der Transmitter moduliert den Schleifenstrom zwischen 4–20 mA. Die minimalen 4 mA versorgen den Transmitter intern (typisch 1,5–3,5 mA verbraucht). 4-Draht-Transmitter haben eine dedizierte Stromversorgung (z.B. 24 V DC, 2 Drähte) und einen separaten Signalausgang (4–20 mA, 2 Drähte). Verwendet, wenn der Transmitter mehr Energie benötigt als die Schleife liefern kann.
Question 4 / 10

Ein PT100-RTD liest bei Betriebstemperatur 109,73 Ω. Mit der Näherung R(T) = R0 × (1 + 3,9083×10⁻³T − 5,775×10⁻⁷T²), wie hoch ist die ungefähre Temperatur?

Für PT100 bei 0 °C: R0 = 100 Ω. Auflösung nach T: 109,73 = 100 × (1 + 3,9083×10⁻³T) → 0,0973 = 3,9083×10⁻³T → T = 0,0973/0,0039083 ≈ 24,9 °C. Der quadratische Term (−5,775×10⁻⁷T²) ist unter 100 °C vernachlässigbar. Dies ist eine übliche Berechnung bei der Inbetriebnahme zur Überprüfung der Transmitterkalibrierung.
Question 5 / 10

Was ist die "Gleichtaktunterdrückung" (CMRR) in einem Analogeingangsverstärker und warum ist sie wichtig?

CMRR = 20 × log10(Differenzverstärkung / Gleichtaktverstärkung). Ein CMRR von 80 dB bedeutet, dass ein 1-V-Gleichtaktsignal nur als 100 µV am Ausgang erscheint — Unterdrückungsfaktor 10.000. Industrielle Verstärker benötigen CMRR > 80 dB, weil Frequenzumrichter, Motoren und Schaltnetzteile Gleichtaktstörungen auf Kabelschirme einspeisen. Ein Thermoelement erzeugt 40 µV/°C — ohne hohe CMRR würde ein 5-V-CM-Störer als 125-°C-Temperaturfehler erscheinen.
Question 6 / 10

Was ist "Verstärkungsfehler" vs "Offsetfehler" vs "Linearitätsfehler" bei einem ADC? Welche sind durch einfache Kalibrierung korrigierbar?

Offsetfehler: ADC liest X Zähler bei 0-V-Eingang — verschiebt die gesamte Kurve. Behoben durch Einpunkt-Nullkalibrierung. Verstärkungsfehler: ADC-Messbereich ist größer/kleiner als ideal — behoben durch Zweipunkt-Kalibrierung (Null + Spanne). Linearität (INL): Abweichung der tatsächlichen Übertragungsfunktion von einer Geraden zwischen Null und Vollausschlag. Kann durch lineare Kalibrierung nicht beseitigt werden — erfordert Mehrpunktkalibrierung mit Polynomial-Anpassung oder einen besseren ADC.
Question 7 / 10

Eine SPS-Analogausgabe steuert einen Regelventilstellantrieb. Das Ventil zittert kontinuierlich. Erhöhung der Ausgabefilterzeit beseitigt das Zittern. Was war die Grundursache?

SPS-Scan-Jitter bedeutet, dass das Analogausgangsregister in leicht unterschiedlichen Zeitpunkten jedes Zyklus aktualisiert wird. In einem schnellen Servo-Stellantrieb (Bandbreite 5–20 Hz) erscheinen diese Mikroschritte als schnelle Positionsstörungen. Der Ausgabefilter führt eine Erstordnungsverzögerung ein, die Schrittaktualisierungen in eine kontinuierliche Rampe glättet. Typische Lösung: eingebauten Anstiegsbegrenzer der Ausgangskarte aktivieren oder Rampen-/Filterblock im SPS-Programm vor dem Schreiben ins AO-Register.
Question 8 / 10

Sie müssen einen Druck von 0–10 bar mit 0,1-bar-Auflösung messen. Welche minimale ADC-Auflösung ist erforderlich?

Erforderliche Zähler = Messbereich / Auflösung = 10 bar / 0,1 bar = 100 Mindestzähler. 8 Bit = 256 Zähler → 0,039 bar/Zähler ✓. Aber Toleranz für Rauschen und Kalibrierungsdrift wird benötigt — Faustregel: 4–10× Mindestzähler. 100 × 4 = 400 → mindestens 9 Bit, besser 10 Bit. 10 Bit (1024 Zähler) gibt 0,0098 bar/Zähler — 10× besser als gefordert. In der Praxis ist für 0,1-bar-Auflösung bei 0–10 bar ein 10- oder 12-Bit-ADC das professionelle Minimum. 12 Bit ist der Industriestandard.
Question 9 / 10

Was verursacht "Erdschleifeninterferenz" in Analogsignalkreisen und wie wird sie beseitigt?

Erdschleifen-Mechanismus: Transmittergehäuse ist im Feld geerdet (Potenzial VA). SPS-Chassis ist im Schaltschrank geerdet (Potenzial VB). Wenn VA ≠ VB, treibt die Differenz VAB Strom durch das Signalkabel: I = VAB / R_Kabel. Bei 50 mV Erdpotenzialunterschied auf 100 Ω Kabel: I = 0,5 mA. Auf einer 4–20-mA-Schleife = 3,1% Messbereichsfehler. Lösungen: (1) Isolierte AI-Karte. (2) Schleifengespeisten 2-Draht-Transmitter. (3) Galvanischen Trenner im Signalweg installieren.
Question 10 / 10

Welchen Zweck hat ein "Sample-and-Hold"-Schaltkreis vor einem ADC in einer gemultiplexten Analogeingangskarte?

Die ADC-Wandlung dauert Zeit (sukzessive Approximation: 1–100 µs, Sigma-Delta: 1–100 ms). Wenn sich das Eingangssignal während der Wandlung ändert, repräsentiert das digitale Ergebnis eine zeitlich gemischte Abtastung — ein Fehler. Der S/H-Schaltkreis öffnet seinen Analogschalter, lädt einen Haltekondensator in < 1 µs auf die Eingangsspannung, dann schließt er den Schalter. Der Kondensator hält die Spannung stabil für die gesamte Wandlungszeit. Kritisch für gemultiplexte Karten, die mehrere Kanäle sequenziell abtasten.

Mini-Aufgabe

Wenden Sie das Gelernte an

Ein Differenzdrucktransmitter ist an einer Blende installiert. Der DP-Transmitter ist für 0–500 mbar (4–20-mA-Ausgang) kalibriert. Bei maximalem Durchfluss erzeugt die Blende 500 mbar DP, entsprechend 2000 m³/h. Die SPS liest einen Rohzähler von 19661 auf einer 16-Bit-Karte (0–32767 Vollausschlag, 0 = 0 mA, 32767 = 20 mA).

Bestimmen Sie:
1. Den Schleifenstrom in mA
2. Den Differenzdruck in mbar
3. Den Volumendurchfluss in m³/h

Warum ist eine einfache lineare Skalierung für Schritt 3 falsch?

Hinweis: Schritt 1 — Rohzähler zu mA: mA = (Rohzähler / 32767) × 20. Schritt 2 — Lebend-Null-Skalierung: DP = (mA − 4) / 16 × 500. Schritt 3 — Wurzelextraktion: Q = Q_max × √(DP / DP_max). Der Durchfluss durch eine Blende ist proportional zu √ΔP, nicht zu ΔP.
1. mA = (19661 / 32767) × 20 = 12,00 mA
2. DP = (12 − 4) / 16 × 500 = 250 mbar
3. Q = 2000 × √(250 / 500) = 2000 × 0,7071 = 1414 m³/h

Lineare Skalierung ergibt (250/500) × 2000 = 1000 m³/h — 414 m³/h zu wenig (29% Fehler!). Deshalb erfordert jede DP-Durchflussanwendung eine Quadratwurzel-Extraktion im SPS-Skalierungsblock.

Das führt weiter zu: Sensor-Auswahlherausforderung · Analoge E/A Skalierungsaufgabe

Häufige Fehler

Die häufigsten Fehler an echten Maschinen — von Ingenieuren und Studenten gleichermaßen.

Vergessen des Lebend-Null-Offsets bei der 4–20-mA-Skalierung

Berechnung eines Werts als Rohzähler / 32767 × Messbereich behandelt 0 mA als Null — aber 4 mA ist die tatsächliche Null. Korrekte Formel: (Rohzähler − 4mA-Zähler) / (20mA-Zähler − 4mA-Zähler) × Messbereich. Bei 4 mA (0% des Bereichs) zeigt die falsche Formel 25% des Messbereichs statt 0%.

Lineare Skalierung für Differenzdruck-Durchflussmesser

Der Durchfluss ist proportional zu √ΔP, nicht zu ΔP. Verwendung von Q = (DP/DP_max) × Q_max statt Q = √(DP/DP_max) × Q_max führt zu Fehlern bis zu 40% bei Teillast — ohne Alarm, da der angezeigte Wert plausibel erscheint.

Keine Vergleichsstellenkompensation (CJC) für Thermoelemente

Ein Thermoelement misst die Temperaturdifferenz zwischen der heißen Lötstelle und der Vergleichsstelle an den Transmitterklemmen. Ohne CJC addiert die Umgebungstemperatur (z.B. 25 °C) einen konstanten 25-°C-Fehler zu jeder Messung. Moderne Transmitter führen CJC intern durch — aber ein Thermoelement direkt an einen Standard-Spannungseingang ohne CJC anzuschließen, erzeugt einen permanenten, stillen Offset.

2-Draht-RTD-Verdrahtung bei Kabellängen über 5 m

In einem 2-Draht-RTD-Kreis addiert sich der Kabelwiderstand direkt zur Messung. Eine 100-m-Leitung mit 0,75 mm² fügt ca. 4,9 Ω ≈ 12,7 °C konstantem Lesefehler hinzu — nicht von einem Kalibrierversatz zu unterscheiden. Immer 3-Draht- oder 4-Draht-RTD-Anschlüsse für Kabellängen über 5 m verwenden.

Erdschleifen an Spannungssignalkanälen

Wenn Transmittergehäuse und SPS-Chassis an unterschiedlichen Erdpotenzialen liegen, treibt schon 50 mV Rauschstrom in Spannungssignalkabel. Bei einem 0–10-V-Eingang erscheint dies als 0,5% Vollausschlag-Fehler — still und konstant. Isolierte AI-Karten, schleifengespeiste 2-Draht-Transmitter oder galvanische Trenner verwenden.

Quellen & weiterführende Literatur

Jede Aussage dieser Lektion ist nachvollziehbar. Zuerst die Primärnormen, dann Herstellernotizen und Vertiefungen.

Tutorial complete

Ready for more?