Zum Inhalt

Funktionsbaustein: Skalierung

Der Skalierungsbaustein dient zur Umrechnung numerischer Eingangswerte auf eine neue Skala.
Er unterstützt zwei Verfahren: min/max-Normalisierung und lineare Skalierung nach einer Geradengleichung.


Funktionsweise

Der Baustein verarbeitet numerische Eingangswerte (FLOAT oder INT) sowie Listen von numerischen Werten (Liste aus FLOAT und/oder INT) und gibt entsprechend skalierte Werte zurück.

Der Baustein arbeitet dabei elementweise:

  • Bei einem Einzelwert wird ein einzelner skalierter Wert erzeugt.
  • Bei einer Liste wird jedes Element einzeln skaliert, und das Ergebnis als Liste gleicher Länge zurückgegeben.
  • Die Reihenfolge der Werte bleibt erhalten.

1. Min/Max-Skalierung (procedure = min_max)

  • Der Eingabewert wird auf einen Bereich zwischen min und max begrenzt.
  • Anschließend erfolgt eine Skalierung auf einen Integer-Wertbereich von 0 bis 65535.
  • Werte außerhalb des definierten Bereichs werden automatisch auf min bzw. max begrenzt.
  • Bei Listen wird diese Operation auf jedes Element angewendet.

Formel:

output = (input - min) * (65535 / (max - min))

2. Lineare Skalierung (procedure = linear)

  • Der Eingangswert wird gemäß der linearen Gleichung y = m·x + b skaliert.
  • Diese Methode eignet sich zur Umrechnung in beliebige Einheiten oder Bereiche.
  • Bei Listen wird die lineare Funktion auf jedes Element angewendet.

Formel:

output = m * input + b

Parameter

Parameter Beschreibung Gilt für
procedure Skaliermethode: min_max oder linear beide
min Minimalwert für Skalierung (untere Grenze) nur min_max
max Maximalwert für Skalierung (obere Grenze) nur min_max
m Steigung für lineare Funktion nur linear
b Achsenabschnitt der linearen Funktion nur linear

Eingabe / Ausgabe

Eingang

Unterstützte Eingabetypen:

  • Einzelwert:
  • INT
  • FLOAT

  • Liste von Werten:

  • LIST[INT]
  • LIST[FLOAT]
  • gemischte Listen (INT und FLOAT)

Beispiele:

12
12.17
[12.17, 11.03, 7.93, 3.97]
[10, 20, 30]
[10, 12.5, 15]

Ausgang

Der Ausgabetyp entspricht der Struktur der Eingabe:

Eingabe procedure Ausgabe
INT min_max INT
FLOAT min_max INT
LIST min_max LIST[INT]
INT linear FLOAT
FLOAT linear FLOAT
LIST linear LIST[FLOAT]

Beispiele:

input: 12.17
output: 65535

input: [12.17, 11.03, 7.93]
output: [65535, 59378, 42687]

Fehlerverhalten

Ein Fehler wird ausgelöst, wenn:

  • der Eingang kein numerischer Wert oder keine Liste numerischer Werte ist
  • eine Liste nicht-numerische Elemente enthält
  • erforderliche Parameter fehlen
  • eine ungültige Skaliermethode angegeben wurde

Anwendungsbeispiele

  • Normierung von Messwerten (z. B. Temperatur 0–100 °C → 0–65535)
  • Verarbeitung von Messwertreihen (z. B. ADC-Samples)
  • Umrechnung von physikalischen Einheiten (z. B. Spannung → Prozent)
  • Skalierung von Sensordatenlisten
  • Anpassung von Steuergrößen für externe Systeme
  • Batch-Verarbeitung mehrerer Messwerte

Der Skalierungsbaustein ist ideal für alle Anwendungen, bei denen Eingangsdaten
in eine gewünschte Zielgröße transformiert werden müssen – sowohl für Einzelwerte als auch für Wertelisten, z. B. zur Weiterverarbeitung, Speicherung oder Anzeige.