Definition: Einheitenumschaltung
Einheitenumschaltungen basieren im »EASY UI Designer« auf Umrechnungen von Prozessvariablenwerten anhand linearer Gleichungen. Ein typisches Beispiel hierfür ist die physikalische Größe „Temperatur“, die länderspezifisch im europäischen Raum über die Einheit Celsius angegeben, im amerikanischen Raum jedoch über Fahrenheit dargestellt wird.
Umrechnung physikalischer Größen
Die Umrechnung der Größe "Temperatur" von Celsius auf Fahrenheit und umgekehrt erfolgt nach den folgenden Formeln:
°C = (°F – 32)/1,8
°F = °C × 1,8 + 32
Im »EASY UI Designer« wird diese lineare Gleichung über zwei Punkte eines linearen Kurvenverlaufs angegeben. Dazu werden die Werte von zwei berechneten Punkten in einer Einheitendefinition angegeben. Ausgehend von der Größe °C sieht die Rechnung exemplarisch wie folgt aus:
Für 0 °C ergibt sich: 0 × 1,8 + 32 = 32 (°F)
Für 100 °C ergibt sich: 100 × 1,8 + 32 = 212 (°F)
Anzugeben sind dann als X-Koordinaten die Werte der Berechnungsausgangsgröße (°C), hier als 0 und 100. Als Y-Koordinaten werden die jeweiligen berechneten Werte angegeben (also 32 und 212).
Im oben dargestellten Bild sind zwei Einheitenumrechnungen definiert. Für "German" wird der Wert quasi nicht beeinflusst, da die X/Y-Wertepaare identisch sind.
Der Verlauf der linearen Gleichung über die beiden Koordinaten (0:0) und (1:1) ergibt eine Gerade, die mit der Steigung 1 durch den Nullpunkt geht, d. h. X und Y sind für alle Punkte der Geraden identisch.
In der Umrechnung für "English" sind die oben berechneten Werte in die entsprechenden Parameterfelder eingegeben worden.
Dieses Beispiel funktioniert aber nur, wenn die umzurechnenden Prozessvariablen direkt den Temperaturwert als °C zurückgeben. Ist das nicht der Fall, muss die spezifische Sensorauflösung über eine Sensoranpassung in die Berechnung einbezogen werden.
Eine von der SPS aufgenommene Strecke von 0 ... 1000 mm soll in der Applikation dargestellt werden. Dabei stehen zwei verschiedene Sensortypen mit folgenden Ausgabebereichen zur Verfügung:
|
Typ |
Messbereich |
Ausgabewertebereich |
|---|---|---|
|
A |
0..2000 mm |
0..32000 |
|
B |
0..100 inch |
0..32000 |
Die Umrechnung für [mm] in[ inch[ lautet:
1 in. = 25,4 mm
Die zu erwartenden Wertebereiche für die Strecke 0..1000 mm sind also für:
-
Typ A: 0 ... 16000 (1000/2000 =x/32000)
-
Typ B: 0 ... 12599 (1000/100 × 25,4 = x/32000)
Die beiden Sensoren haben unterschiedliche Wertebereiche. Eine Anpassung in der Visualisierung kann über eine variablenabhängige Einheitenklasse realisiert werden. Die Umrechnung soll dabei zwischen Kommunikationskomponente und Variablenserver erfolgen, so dass im Variablenserver ein sensorunabhängiger Messwert zur Verfügung gestellt wird.
Die entsprechende Einheitenbeschreibung sieht in der Entwicklungsumgebung so aus:
Wieder wird für einen Zustand quasi keine Umrechnung angegeben, weil die X- und Y- Wertepaare gleich sind. Die zweite Umschaltung enthält die oben berechneten Werte.
Auf diesem Weg können sensorspezifische Werteanpassungen realisiert werden.
Hier geht es erst einmal nur darum, die SPS-Werte für die unterschiedlichen Sensoren im Variablenserver anzugleichen, sodass es für die weitere Behandlung egal ist, welcher Sensor angeschlossen ist. Eine sprachumgeschaltete Umrechnung ist hier noch nicht realisiert. Über eine zusätzliche Umrechnung kann dann die länderspezifische Umschaltung zwischen mm und inch für die Applikation erfolgen.
Wenn Sie diese Trennung nicht durchführen, können sie z. B. den Wert nicht sensorunabhängig in Systemen verwenden, die direkt an den Variablenserver angeschlossen sind (z. B. Aufzeichnung als Trend).
Im »EASY UI Designer« werden die projektierten Einheitenumrechnungen zu sogenannten Einheitenklassen zusammengefasst. Eine Einheitenklasse beinhaltet mehrere Umrechnungen und einen Schalter, der eine der enthaltenen Umrechnungen aktiviert.
-
Bei sprachabhängigen Einheitenklassen ist der Schalter die im Projekt aktive Sprache. Jede enthaltene Einheitenumrechnung wird einer Sprache zugeordnet. Durch die Umschaltung der Sprache zur Laufzeit wird automatisch zur entsprechenden Einheitenumrechnung gewechselt.
-
Variablenabhängige Einheitenklassen beinhalten als Schalter eine Prozessvariable. Hier beinhaltet jede Einheitenumrechnung den Parameter Umschaltzustand, der zur Laufzeit mit dem Wert der als Schalter angegebenen Prozessvariablen verglichen wird. Im obigen Beispiel der Sensoranpassung liegt die Umschaltvariable üblicherweise als interne Variable vor, die beim Einrichten der Visualisierung auf den entsprechenden Wert für den verwendeten Sensor konfiguriert wird.
Im »EASY UI Designer« werden die Prozessvariablendefinitionen direkt mit Einheitenklassen verknüpft. Implizit wird hier davon ausgegangen, dass schon die Definition einer Prozessvariablen das Merkmal einer physikalischen Einheit mit einschließt. Gibt die Prozessvariable beispielsweise einen Temperaturwert wieder, kann die physikalische Größe mit Einheitentext und länderspezifische Umrechnungsformel direkt bei der Definition der Variablen angegeben werden.
Dies hat den Vorteil, dass bei der Darstellung der Prozessvariablen, sei es als Wertausgabe, als Trendaufzeichnung oder als Bestandteil eines Reports jedes Mal die Einheiteninformationen ohne weiteren Projektieraufwand als Bestandteil der Variable mit einbezogen werden.
Die Angabe der zu verwendenden Einheitenklassen erfolgt in der Variablendefinition in den Parametern Einheitenklasse (Prozess) und Einheitenklasse (Anzeige).
-
Die Einheitenklasse (Prozess) gibt die Berechnungsformeln an, die bei der Übertragung des Variablenwertes zwischen Kommunikationskomponente und Variablenserver angewendet werden. Diese Formeln werden üblicherweise verwendet, wenn eine Anpassung unterschiedlicher Sensortypen auf einen einheitlichen Wertebereich erfolgen soll. Diese Umrechnungsformeln können nur aus Einheitenklassen vom Typ "variablenabhängig" bezogen werden. Die Umschaltung zwischen den einzelnen Umrechnungsformeln kann also nur über einen Variablenwert erfolgen.
-
Die Einheitenklasse (Anzeige) wird vom System bei der Übertragung des Variablenwertes zwischen Variablenserver und Visualisierungsoberfläche angewendet. Sie kann sowohl sprachabhängig als auch variablenabhängig sein. Über die Verwendung von sprachabhängigen Einheitenklassen wird die typische Umschaltung länderspezifischer Einheitenumrechnungen realisiert. Über die Verwendung von variablenabhängigen Einheitenklassen als "Einheitenklasse (Anzeige)" können zusätzlich spezifische Sonderanforderungen in der Applikationsoberfläche realisiert werden. Soll beispielsweise eine Streckenangabe in der Applikation in den Größen mm, cm, inch und mil. erfolgen, so lässt sich das nicht alleine durch die Umschaltung der Sprache realisieren.
Kommaverschiebung/Nachkommastellen
Für ganzzahlige Variablentypen (VT_I2, VT_I4 etc.) gilt: Die Kommaverschiebung ist eine gute Lösung, Rundungsfehlern aus dem Weg zu gehen. Intern behandelt das System einen ganzzahligen Prozessvariablenwert, der mit einer Einheitenumschaltung verknüpft ist, wie einen Fließkommawert. Beim Lesen des Wertes wird der Wert aus der SPS im Variablenserver über die lineare Umrechnung auf eine Fließkommavariable umgerechnet. Bei der Eingabe des Wertes muss diese Konvertierung umgekehrt durchgeführt werden. Wird hier die lineare Gleichung verwendet, muss der Wert ggf. gerundet werden. In der Applikation tritt dann unter Umständen der Fall ein, dass der Bediener einen Wert in ein Steuerelement schreibt und nach dem Senden der Wert im Steuerelement auf den nächsthöheren/-niedrigeren Wert umspringt. Dieses Phänomen tritt bei der alleinigen Verwendung der Kommaverschiebung nicht auf.
Die Funktion des in der Einheitendefinition angegebenen Parameters Kommaverschiebung ist abhängig vom Datentyp der Prozessvariablen, die die Einheitenklasse verwendet:
-
Für ganzzahlige Prozessvariablen gilt: Mit der Kommaverschiebung kann eine Dezimalverschiebung von ganzzahligen Werten realisiert werden. Der Wert 112 wird z. B. als 11.2 dargestellt, wenn die Kommaverschiebung mit 1 angegeben wurde. Gibt ein ganzzahliger Datentyp aus der SPS beispielsweise eine Temperatur in 100stel Grad an, kann über die Kommaverschiebung 2 in der Darstellung das Komma an die richtige Stelle geschoben werden.
-
Ist eine Prozessvariable als Fließkommazahl definiert, gibt die Kommaverschiebung als Formatierungsanweisung die Zahl der darzustellenden Nachkommastellen an.
Alle Steuerelemente mit Prozessvariablenanbindung enthalten zusätzlich zur Eigenschaft "Value" noch die Eigenschaft "RawValue".
-
"Value" zeigt den über Einheitenklasse (Anzeige) umgerechneten Wert der Variablen an.
-
"RawValue" zeigt direkt den Wert aus dem Variablenserver an.
Einige Steuerelemente beinhalten die Eigenschaft "UseRawValue". Wird diese Eigenschaft auf " true" gestellt, wird in "Value" keine Umrechnung durchgeführt. Die Werte von "RawValue" und "Value" sind dann identisch.
Weitere Merkmale der Einheitenumschaltung
-
In einer Definition vom Typ Einheitenklasse (sprachabhängig) steht der Parameter Standardsprache zur Verfügung. Dieser Parameter legt fest, welche Einheitenumrechnung verwendet werden soll, wenn keine Einheitenumrechnung für eine Projektsprache projektiert wurde. Wenn Sie also z. B. eine im europäischen Raum übliche metrische Einheitenumrechnung benötigen, projektieren Sie die Einheitendefinition nur für eine Sprache und bestimmen Sie deren Umschaltkennung als Standardsprache.
-
Im Client-Server-System sollten Sie beachten, dass Umschaltvariablen als "Clientintern" gekennzeichnet werden.
-
Neben "Value" und "RawValue" existieren weitere Eigenschaftenpaare, die die Einheitenumrechnung berücksichtigen oder explizit ausschließen (z. B. "MaxValue"/"RawMaxValue", "MinValue"/"RawMinValue").