XERO Arena Example01: Unterschied zwischen den Versionen

Aus Amium_Wiki
Wechseln zu: Navigation, Suche
 
(3 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
''<u>Information:</u> die folgenden Screenshots sind mit einer aktuellen Entwicklerversion der XERO erstellt worden.''
 
''<u>Information:</u> die folgenden Screenshots sind mit einer aktuellen Entwicklerversion der XERO erstellt worden.''
  
''Es sind daher einige Bedienlemente eventuell anders dargestellt - der Ablauf bzw. die Funktion sind jedoch unverändert!''
+
''Es sind daher einige Bedienlemente geringfügig anders dargestellt - der Ablauf bzw. die Funktion sind jedoch unverändert!''
  
  
 
== Ein einfacher Temperatursensor ==
 
== Ein einfacher Temperatursensor ==
  
Ziel: Kennenlernen der grundsätzlichen Bedienung und Konzepte der XERO in einem "Step-by-Step" Beispiel!
+
Ziel: Kennenlernen der Bedienung und Konzepte der XERO in einem "Step-by-Step" Beispiel.
  
  
Zeile 15: Zeile 15:
 
[[Datei:xero_example01_selectarena.png|800px|thumb|none|]]
 
[[Datei:xero_example01_selectarena.png|800px|thumb|none|]]
  
Befindet sich (noch) keine Arena in .\Config\, wird der Ordner angelegt und die XERO im Design-Modus gestartet.�(zuvor sind mehrere Dialoge zu bestätigen)
 
  
Befindet sich genau eine Arena in .\Config\, so wird der Dialog nur kurz angezeigt und dann umgehend diese Arena geladen.
+
Befindet sich (noch) keine Arena in .\Config\, wird der Ordner angelegt und die XERO im Design-Modus gestartet.
 +
 
 +
(zuvor sind mehrere Dialoge zu bestätigen)
 +
 
 +
Befindet sich genau eine Arena in .\Config\, so wird der Dialog nur kurz angezeigt und dann diese Arena umgehend geladen.
  
 
Sind mehrere Arenas vorhanden, so muss die zu ladende Arena mit einem Klick (bzw. Enter) ausgewählt werden. (Die zuletzt verwendete Arena ist vorselektiert)
 
Sind mehrere Arenas vorhanden, so muss die zu ladende Arena mit einem Klick (bzw. Enter) ausgewählt werden. (Die zuletzt verwendete Arena ist vorselektiert)
  
  
Nach dem Laden der ausgewählten Arena befindet man sich am Startschirm [siehe Benutzeroberfläche]:
+
Nach dem Laden der ausgewählten Arena befindet man sich am Startschirm (siehe [[XERO_Bedienoberfläche|Bedienoberfläche]]):
  
 
[[Datei:xero_example01_startscreen.png|800px|thumb|none|]]
 
[[Datei:xero_example01_startscreen.png|800px|thumb|none|]]
  
Mittels der Taste {{button|Schema}} wird nun in den Design-Modus gewechselt, um Module hinzuzufügen bzw. zu bearbeiten.
 
Erkennbar ist dieser Modus am Karierten Hintergrund und den Ankern an den Modulen (siehe unten)
 
  
Um ein neues Modul hinzuzfügen, wird mit der Maus an der gewünschten Position ein Rahmen in der gewünschten Grösse aufgezogen.(Die Position und Grösse kann später natürlich verändert werden)
+
Mit der Taste {{button|Schema}} wird nun in den Design-Modus gewechselt, um Module hinzuzufügen bzw. zu bearbeiten.
 +
Erkennbar ist dieser Modus am karierten Hintergrund und den Ankern an den Modulen (siehe weiter unten)
 +
 
 +
Um ein neues Modul hinzuzfügen, wird mit der Maus an der gewünschten Position ein Rahmen in der beliebiger Grösse aufgezogen.
 +
 
 +
(Position und Grösse können später jederzeit verändert werden)
  
  
 
[[Datei:xero_example01_addmodule.png|800px|thumb|none|]]
 
[[Datei:xero_example01_addmodule.png|800px|thumb|none|]]
 +
  
 
Nun wird der Modul-Auswahl-Dialog angezeigt:
 
Nun wird der Modul-Auswahl-Dialog angezeigt:
  
 
[[Datei:xero_example01_selectmodule.png|800px|thumb|none|]]
 
[[Datei:xero_example01_selectmodule.png|800px|thumb|none|]]
 +
  
 
Hier sind (nach Kategorien gruppiert) alle verfügbaren Module gelistet. Im Beispiel hier wählen wir aus der Gruppe "Schema" das Modul "ModuleSensor" aus.
 
Hier sind (nach Kategorien gruppiert) alle verfügbaren Module gelistet. Im Beispiel hier wählen wir aus der Gruppe "Schema" das Modul "ModuleSensor" aus.
Zeile 43: Zeile 51:
  
 
[[Datei:xero_example01_selectmodule_parameters.png|800px|thumb|none|]]
 
[[Datei:xero_example01_selectmodule_parameters.png|800px|thumb|none|]]
 +
  
 
Um fortfahren zu können müssen eine oder mehrere Parameter ausgefüllt werden - erst dann wird der {{button|OK}} angezeigt.
 
Um fortfahren zu können müssen eine oder mehrere Parameter ausgefüllt werden - erst dann wird der {{button|OK}} angezeigt.
Im Beipiel hier wird angegeben, dass das "ReadModule" (also das Modul welches den Rohwert liefert) "AK_1_3" heisst; der Maximalwert des Sensors "250" sein soll und der Sensor einen Wert mit der Einheit (Unit) "°C" anzeigen soll. Sein Name wird mit "T_1" festgelegt.
+
In unserem Beipiel geben wir an, dass  
 +
*das "ReadModule" (also das Modul welches den Rohwert liefert) "AK_1_3" heisst (das könnte z.B. den Wert einer AK-Quelle "AK_1" mit Offset 3 bedeuten);  
 +
*der Maximalwert des Sensors "250" sein soll und  
 +
*der Sensor einen Wert mit der Einheit (Unit) "°C" anzeigen soll.  
 +
*Sein Name wird mit "T_1" festgelegt.
  
 
Nach Bestätigen mit {{button|OK}} wird das neue Modul zum Schema hinzugefügt. (über die Taste {{button|Cancel}} kann der Vorgang jederzeit abgebrochen werden und es wird kein neues Modul hinzugefügt)
 
Nach Bestätigen mit {{button|OK}} wird das neue Modul zum Schema hinzugefügt. (über die Taste {{button|Cancel}} kann der Vorgang jederzeit abgebrochen werden und es wird kein neues Modul hinzugefügt)
  
 
Module können in ihrer Position und Grösse jederzeit verändert werden:
 
Module können in ihrer Position und Grösse jederzeit verändert werden:
Position: Click-and-Drag im "freien" Bereich auf dem Modul
+
*Position: Click-and-Drag im "freien" Bereich auf dem Modul
Grösse: Click-and-Drag auf dem "Size-Anchor" rechts unten
+
*Grösse: Click-and-Drag auf dem "Size-Anchor" rechts unten
 
+
  
 
[[Datei:xero_example01_moduleanchors.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleanchors.png|800px|thumb|none|]]
  
Wir haben oben als Quelle für den Sensor T_1 das Modul AK_1_3 angegeben. Da es dieses Modul nicht gibt, zeigt T_1 auch keinen Wert an ('#' ist bei XERO das Symbol für kein oder undefinierter Wert)
+
 
 +
Wir haben oben als Quelle für den Sensor T_1 das Modul AK_1_3 angegeben. Da es dieses Modul (noch) nicht gibt, zeigt T_1 auch keinen Wert an ('#' ist bei XERO das Symbol für ''kein'' bzw. ''undefinierter'' Wert)
  
 
Da angenommen wird, dass beim Abarbeiten dieses Tutorials kein physikalischer Sensor zur Verfügung steht um Messwerte einzulesen, werden wir einen Rohwert simulieren.
 
Da angenommen wird, dass beim Abarbeiten dieses Tutorials kein physikalischer Sensor zur Verfügung steht um Messwerte einzulesen, werden wir einen Rohwert simulieren.
 
Eine einfache Möglichkeit hierzu ist die Verwendung eines Counters.
 
Eine einfache Möglichkeit hierzu ist die Verwendung eines Counters.
Dazu fügen wir ein Modul Counter ein (Timer --> Counter) und geben ihm den Namen "AK_1_3".
 
  
Um nun ein Modul detaillierter konfigurieren zu können muss man den Designmodus durch abermaliges Betätigen der Taste {{button|Schema}} wieder verlassen.
+
Dazu fügen wir ein Modul Counter ein (Timer&rarr;Counter) und geben ihm den Namen "AK_1_3".  
  
Klickt man nun bei einem Modul auf das Symbol im linken Bereich,
 
  
 +
 +
Um nun ein Modul detaillierter konfigurieren zu können, muss man den Designmodus durch abermaliges Betätigen der Taste {{button|Schema}} wieder verlassen.
 +
 +
Klickt man nun bei einem Modul auf das Symbol im linken Bereich,
  
 
[[Datei:xero_example01_moduleclicksymbol.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleclicksymbol.png|800px|thumb|none|]]
 +
  
 
kann man das betreffende Modul im Detail konfigurieren - es öffnet sich folgender Dialog:
 
kann man das betreffende Modul im Detail konfigurieren - es öffnet sich folgender Dialog:
Zeile 73: Zeile 89:
 
[[Datei:xero_example01_moduleconfiguration.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleconfiguration.png|800px|thumb|none|]]
  
Um den Zähler zu starten müssen wir ihm einen Startwert zuweisen: dazu klicken wir in das grüne Status-Fenster oben und geben in dem sich öffnenden Numerischen Eingabedialog den Wert "1" ein:
+
 
 +
Um den Zähler zu starten, müssen wir ihm einen Startwert zuweisen: dazu klicken wir in das grüne Status-Fenster oben und geben in dem sich öffnenden Numerischen Eingabedialog den Wert "1" ein:
  
 
[[Datei:xero_example01_numberdialog.png|800px|thumb|none|]]
 
[[Datei:xero_example01_numberdialog.png|800px|thumb|none|]]
 +
  
 
Nach der Bestätigung mit "Enter" bzw. "OK" beginnt der Zähler zu laufen. In ein-Sekunden-Intervallen von 0 bis 100.
 
Nach der Bestätigung mit "Enter" bzw. "OK" beginnt der Zähler zu laufen. In ein-Sekunden-Intervallen von 0 bis 100.
  
Wir wollen für unser Beispiel einen Sensor simulieren, welcher Temperaturen in 1/10 Kelvin in einem Bereich von ca. 30-200°C liefert. Dazu müssen wir das Modul detaillierter konfigurieren.�Sehen wir und deshalb den Modul-Konfigurations-Dialog genauer an:
+
Wir wollen für unser Beispiel einen Sensor simulieren, welcher Temperaturen in 1/10 Kelvin in einem Bereich von ca. 30-220°C liefert. Dazu müssen wir das Modul weiter konfigurieren.
 +
 
 +
Sehen wir uns dazu den Modul-Konfigurations-Dialog genauer an:
 +
 
  
 
[[Datei:xero_example01_moduleconfiguration2.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleconfiguration2.png|800px|thumb|none|]]
  
 
Der Dialog ist aufgeteilt in  
 
Der Dialog ist aufgeteilt in  
den Statusbereich (oben)
+
*den Statusbereich (oben)
den Hauptbereich (mitte)
+
*den Hauptbereich (mitte)
den Parameter-Bereich (unten; weitere Parameter können auch rechts angezeigt werden - siehe unten)
+
*den Parameter-Bereich (unten; weitere Parameter können auch rechts angezeigt werden - siehe unten)
den Steuerungs-Bereich (die Tasten ganz rechts)
+
*den Steuerungs-Bereich (die Tasten ganz rechts)
 +
 
 +
Die Parameter, die allen Modulen gemeinsam sind, sind über die Taste {{button|Setup}} erreichbar (Hauptparameter):
  
Alle Parameter die allen Modulen gemeinsam sind sind über die Taste {{button|Setup}} erreichbar (Hauptparameter):
 
  
 
[[Datei:xero_example01_moduleconfiguration_setup.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleconfiguration_setup.png|800px|thumb|none|]]
  
INFO: Die Bedeutung dieser Parameter ist in [...setup...] beschrieben!
+
INFO: Die Bedeutung dieser Parameter ist in [[XERO_Menüs_Setup|Setup]] beschrieben!
  
Wir konfigurieren wir das Modul nun folgendermassen - jeweils mit Klick auf den betreffenden Parameter:
+
Konfigurieren wir das Modul nun folgendermassen - jeweils mit Klick auf den betreffenden Parameter:
.Min = 3000
+
*.Min = 3000
.Max = 5000
+
*.Max = 5000
.Timer = 0.2s
+
*.Timer = 0.2s
  
Und nach dem Schliessen des Haupparameter-Dialogs ändern wir noch den Parameter
+
Und nach dem Zurückwechseln in das Schema dieses Moduls ({{buttonSchema}}) ändern wir noch den Parameter
.Increment = 11.3
+
*.Increment = 11.3
im Modul-Dialog im Parameter-Bereich unten.
+
(im Parameter-Bereich unten)
  
 
Somit zählt unser Zähler nun von 3000 bis 5000. Und zwar alle 0.2 Sekunden um einen Wert von 11.3.
 
Somit zählt unser Zähler nun von 3000 bis 5000. Und zwar alle 0.2 Sekunden um einen Wert von 11.3.
(Hintergrund: der Zähler simuliert also einen Temperatur-Sensor mit Werten zwischen von 28 bis 228°C in 1/10 Kelvin; das Ganze mit einer linearen Rampe von 11.3/10 Kelvin pro 0.2 Sekunden)
+
(Hintergrund: der Zähler simuliert somit einen Temperatur-Sensor mit Werten zwischen 28 und 228°C in 1/10 Kelvin Auflösung; das Ganze mit einer linearen Rampe von 11.3/10 Kelvin pro 0.2 Sekunden)
  
 
Danach schließen wir den Modul-Konfigurationsdialog.
 
Danach schließen wir den Modul-Konfigurationsdialog.
  
Nun sollte unser ModuleSensor "T_1" statt dem "#" einen Wert anzeigen.  
+
Nun sollte unser ModuleSensor "T_1" statt dem "#" einen Wert anzeigen. (ACHTUNG: es kann mehrere Sekunden dauern bis der Wert das erste Mal angezeigt wird)
(ACHTUNG: es kann mehrere Sekunden dauern bis der Wert das erste Mal angezeigt wird)
+
  
  
  
Wir müssen nun unser Temperatur-Modul "T_1" so konfigurieren, dass der Wert des (simulierten) Sensors vernünftig (richtig) dargestellt wird - dazu klicken wir wieder in den Symbol-Bereich des Moduls:
+
Nun müssen wir das Temperatur-Modul "T_1" so konfigurieren, dass der Wert des (simulierten) Sensors vernünftig (richtig) dargestellt wird - dazu klicken wir in den Symbol-Bereich des ModulSensors "T_1":
  
 
[[Datei:xero_example01_moduleclicksymbol2.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleclicksymbol2.png|800px|thumb|none|]]
Zeile 123: Zeile 144:
 
[[Datei:xero_example01_moduleconfiguration_t1.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleconfiguration_t1.png|800px|thumb|none|]]
  
Oben in der Statuszeile wird statt dem Gesamt-System-Status nun der Status dieses einen Moduls angezeigt.
+
Oben in der Statuszeile wird (statt dem Gesamt-System-Status) nun der Status dieses einen Moduls angezeigt.
In diesem Beispiel ist am Modul selbst (wie auch im Modul-Konfigurations-Dialog oben) ist zusätzlich das Symbol "(OL)" (kleiner Kreis mit violettem Hintergrund) dargestellt. "OR" bedeutet z.B. "Over-Range", d.h. der aktuelle Modulwert (1813) ist höher als der als ".Max" definierte (250)...
+
In diesem Beispiel ist am Modul selbst (wie auch im Modul-Konfigurations-Dialog oben) zusätzlich das Symbol "(OR)" (kleiner Kreis mit violettem Hintergrund) dargestellt. "OR" bedeutet z.B. "Over-Range", d.h. der aktuelle Modulwert (3780) ist höher als der als ".Max" definierte (250)...
 +
 
 +
Im Hauptbereich des Modul-Dialogs befindet sich ein [[Xero_Modul_Chart|Chart]].
 +
Jedes Modul speichert seine Messwerte für eine im Parameter ".History" definierte Zeit. Der Messwert-Verlauf wird in diesem Chart dargestellt.
 +
 
 +
Unterhalb bzw. rechts davon sind einige "Interne" (Sub-)Module dieses Moduls dargestellt (in diesem Fall: ".Command", ".Set", ".Raw" und ".ReadModule"). Bei manchen (komplexeren) Modulen sind hier weitere Sub-Module vorhanden. Diese können sich auch im Hauptbereich befinden.
  
Im Hauptbereich des Modul-Dialogs befindet sich ein [Chart].
 
Jedes Modul speichert seine Messwerte für eine in ".History" definierte Zeit. Der Messwert-Verlauf wird in diesem Chart dargestellt.
 
Unterhalb bzw. rechts davon sind einige "Interne" (Sub-)Module dieses Moduls dargestellt (in diesem Fall: ".Command", ".Set", ".Raw" und ".ReadModule"). Bei manchen (komplexeren) Modulen sind hier mehr Sub-Module vorhanden. Diese können sich auch im Hauptbereich befinden.
 
 
In der XERO ist alles aus Modulen modelliert. Ein Modul ist gleichzeitig auch die kleinste Einheit. Das einfachste Modul ist das Modul "Sensor" (in der Gruppe "Register").
 
In der XERO ist alles aus Modulen modelliert. Ein Modul ist gleichzeitig auch die kleinste Einheit. Das einfachste Modul ist das Modul "Sensor" (in der Gruppe "Register").
 +
 
Komplexere Module bestehen aus vielen Modulen die jeweils selbst wieder aus Modulen bestehen.
 
Komplexere Module bestehen aus vielen Modulen die jeweils selbst wieder aus Modulen bestehen.
Oder anders Ausgedrückt: eine Menge/Gruppe von "Sensor" Modulen bildet ein neues Modul. Dieses komplexere Modul kann wieder Verwendet werden um wiederum komplexere Module zu bilden.
+
Dieses komplexere Modul kann dann verwendet werden um wiederum komplexere Module zu bilden.
Und: eine Gruppe von - mehr oder weniger komplexen - Modulen bildet eine Arena (=Schema)
+
  
 +
Und: eine Gruppe von - mehr oder weniger komplexen - Modulen bildet eine Arena (=Schema).
  
=== Der Aufbau des Minimal-Moduls "Sensor" ===
 
  
Fügt man zu einem Schema das Modul "Sensor" hinzu (Register-->Sensor), verlässt anschliessend den Designmodus und klickt links auf das Symbol des eingefügten Sensors, so öffnet sich der Konfigurations-Dialog des "Sensors":
+
=== Der Aufbau des (Basis-)Moduls "Sensor" ===
 +
 
 +
Praktisch jedes Xero Modul ist eine Erweiterung des Basis-Moduls '''Sensor'''.
 +
 
 +
Schauen wir uns deshalb dieses Modul genauer an:
 +
 
 +
Wir fügen also zum Schema das Modul Sensor mit Namen "S_1" hinzu (Register&arr;Sensor), verlassen anschliessend den Designmodus und klicken links auf das Symbol des eingefügten Sensors - es öffnet sich der Konfigurations-Dialog des "Sensors":
  
  
 
[[Datei:xero_example01_moduleconfiguration_s1.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleconfiguration_s1.png|800px|thumb|none|]]
  
Man sieht, dass der Sensor folgende Parameter (=Sub-Module) enthält:
+
Man sieht, dass der Sensor folgende Parameter (bzw. Sub-Module) enthält:
.Raw --> der Rohwert
+
*.Raw --> der Rohwert
.Set --> der Ziel- oder Target-Wert, wird verwendet�Führungsgrösse bei Regler (Sollwert)
+
*.Set --> der Ziel- oder Target-Wert, wird verwendet
Alarmgrenzen
+
:*als Führungsgrösse bei Reglern (Sollwert)
Bei Visualisierungen (Gauges, etc.)
+
:*zur Berechnung von Alarmgrenzen
.Chart --> ein Spezial-Modul zur Anzeige der Messwert-Historie
+
:*bei Visualisierungen (Gauges, etc.)
 +
*.Chart --> ein Spezial-Modul zur Anzeige der Messwert-Historie
  
Zusäzlich dazu enthält noch jedes Minimal-Modul ("Sensor") die folgenden Parameter die ersichtlich sind, wenn man auf {{button|Setup}} klickt:
+
Zusätzlich dazu enthält noch jedes Modul folgende Parameter im Setup-Bereich (Taste {{button|Setup}}):
  
  
 
[[Datei:xero_example01_moduleconfiguration_s1_setup.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleconfiguration_s1_setup.png|800px|thumb|none|]]
  
Die Bedeutung dieser Parameter ist in [...setup...] beschrieben!
+
Die Bedeutung dieser Parameter ist in [[XERO_Menüs_Setup|Setup]] beschrieben!
 +
 
 +
 
 +
Man sieht, das in diesem Modul zwei zusätzliche Gruppen vorhanden sind:
 +
*Value Status (Statistics) und
 +
*Module Setup
 +
 
 +
"Value Status (Statistics)"
 +
ist für die statische Auswertung der Messwerte zuständig (Min, Max, Mittelwert und Standardabweichung). Sie ist also Teil jedes Sensors.
 +
Da ein "Counter" kein Sensor ist, fehlt diese Grupper im Setup des Counters "AK_1_3"
 +
 
 +
"Module Setup"
 +
enthält weitere - je nach Modul - Parameter.
 +
 
 +
''INFO: Ob ein modulspezificher Parameter hier im {{button|Setup}} in der Gruppe "Module Setup" oder im {{button|Schema}} des Sensors dargestellt wird, ist konfigurierbar (aber nicht Teil dieses Beispiels).''
 +
 
 +
''INFO: Da wir Sensor "S_1" für unser Beispiel nicht benötigen, können wir ihn jetzt durch einen Klick auf den "Close-Anchor" (Kreuz rechts oben) im Schema-Designmodus wieder entfernen.''
  
  
 
...zurück zum ModuleSensor "T_1":
 
...zurück zum ModuleSensor "T_1":
Dieses besitzt (wie weiter oben ersichtlich) zusätzlich zu den Minimal-Parametern des Moduls "Sensor" die beiden Parameter:
+
Dieser besitzt (wie weiter oben ersichtlich) zusätzlich zu den Minimal-Parametern des Moduls "Sensor" die beiden Parameter:
.Command --> wird für allgemeine Funktionssteuerung benutzt. Ist für dieses Beispiel nicht relevant!
+
*.Command --> wird für allgemeine Funktionssteuerung von Modulen benutzt (für dieses Beispiel nicht relevant)
.ReadValue --> das Modul, von dem der ".Raw" Wert dieses Moduls bezogen/gelesen wird.
+
*.ReadValue --> das Modul, von dem der ".Raw" Wert für dieses Moduls bezogen/gelesen wird.
 +
 
  
 
Bei den meisten Modulen empfiehlt sich die Konfiguration von zumindest den folgenden Modul-Parametern:
 
Bei den meisten Modulen empfiehlt sich die Konfiguration von zumindest den folgenden Modul-Parametern:
• .Unit�die angezeigte Einheit�Wird auch zum automatischen Umrechnen verwendent. z.B. von [ppm] in [%] oder von [°C] in [K]�°C
 
• .Adjust�unter der Annahme, dass unser Module von welchem der Roh-Wert bezogen wird (AK_1_3) die Temperatur in 1/10° und in Kelvin liefert, müssen wir den Rohwert umrechnen, also: �°C = .Raw / 10 - 273.15�dazu:�.Adjust.Gain = 0.1�.Adjust.Offset = -273.15
 
• .Format�wir wollen den Wert mit einer Kommastelle anzeigen - also:�.Format = #.0
 
• .Type (Appearance-Type)�Der Sensor soll mit einem Temperatur-Symbol statt dem Standard-Symbol dargestellt werden:�.Type = TI
 
• Alert: Falls der Wert 200°C um mehr als 20 sec überrschreitet, soll ein Alarm ausgelöst werden:
 
.Alert-Max = 200�.Inhibit = 20s
 
• .Label�.Label = Temp Pumpe
 
  
 +
''ACHTUNG: (Sollte sich ein Parameter-Wert nicht duch Klick auf den Bereich rechts vom Modul konfigurieren lassen, so kann man in den Konfigurations-Dialog des Moduls wechseln (klick auf das Symbol) und dann in diesem Dialog auf die Status-Leiste oben klicken.''
 +
''Dieses (Fehl-) Verhalten wird in einer zukünftigen XERO Version geändert!'')
  
Nachdem alle diese Parameter gesetzt wurden, schaut unser Modul-Dialog wie folgt aus:
 
  
 +
*.Unit&rarr;die angezeigte Einheit
 +
:Wird auch zum automatischen Umrechnen verwendent. z.B. von [ppm] in [%] oder von [°C] in [K]
 +
*{{setup_param|adjust|Adjust}}
 +
:unter obiger Annahme, dass unser Modul (Counter "AK_1_3" - von dem der Roh-Wert bezogen wird) eine Temperatur in Kelvin/10 liefert, müssen wir den Rohwert umrechnen:
 +
:>> <tt>°C = .Raw / 10 - 273.15</tt> <<
 +
::<tt>.Adjust.Gain = 0.1</tt>
 +
::<tt>.Adjust.Offset = -273.15</tt>
 +
*{{setup_param|unknown|Format}}
 +
:wir wollen den Wert mit einer Kommastelle anzeigen:
 +
::<tt>.Format = #.0</tt>
 +
*{{setup_param|unknown|Type}} (Appearance-Type)
 +
:Der Sensor soll mit einem Temperatur-Symbol statt dem Standard-Symbol dargestellt werden:
 +
::<tt>.Type = TI</tt>
 +
*{{setup_param|alarm|Alert}}
 +
:Falls der Wert 200°C um mehr als 20 sec überrschreitet, soll ein Alarm ausgelöst werden:
 +
::<tt>.Alert-Max = 200</tt>
 +
::<tt>.Inhibit = 20s</tt>
 +
*{{setup_param|alph|Label}}
 +
::<tt>.Label = Temp Pumpe</tt>
 +
 +
 +
Nachdem alle diese Parameter gesetzt wurden, schaut unser Modul-Dialog wie folgt aus:
  
 
[[Datei:xero_example01_moduleconfiguration_t1_setup.png|800px|thumb|none|]]
 
[[Datei:xero_example01_moduleconfiguration_t1_setup.png|800px|thumb|none|]]
 +
  
 
…und das Modul auf dem Haupt-Schema so:
 
…und das Modul auf dem Haupt-Schema so:
 
  
 
[[Datei:xero_example01_module_t1.png|800px|thumb|none|]]
 
[[Datei:xero_example01_module_t1.png|800px|thumb|none|]]
 +
  
 
Somit zeigt unser ModuleSensor "T_1" nun den (simulierten) Sensorwert "AK_1_3" korrekt in °C an.
 
Somit zeigt unser ModuleSensor "T_1" nun den (simulierten) Sensorwert "AK_1_3" korrekt in °C an.

Aktuelle Version vom 2. Dezember 2014, 12:27 Uhr

Information: die folgenden Screenshots sind mit einer aktuellen Entwicklerversion der XERO erstellt worden.

Es sind daher einige Bedienlemente geringfügig anders dargestellt - der Ablauf bzw. die Funktion sind jedoch unverändert!


Ein einfacher Temperatursensor

Ziel: Kennenlernen der Bedienung und Konzepte der XERO in einem "Step-by-Step" Beispiel.


Programstart

Nach dem Start (Xero.exe) wird der Arena-Auswahl Dialog angezeigt:

Xero example01 selectarena.png


Befindet sich (noch) keine Arena in .\Config\, wird der Ordner angelegt und die XERO im Design-Modus gestartet.

(zuvor sind mehrere Dialoge zu bestätigen)

Befindet sich genau eine Arena in .\Config\, so wird der Dialog nur kurz angezeigt und dann diese Arena umgehend geladen.

Sind mehrere Arenas vorhanden, so muss die zu ladende Arena mit einem Klick (bzw. Enter) ausgewählt werden. (Die zuletzt verwendete Arena ist vorselektiert)


Nach dem Laden der ausgewählten Arena befindet man sich am Startschirm (siehe Bedienoberfläche):

Xero example01 startscreen.png


Mit der Taste Schema wird nun in den Design-Modus gewechselt, um Module hinzuzufügen bzw. zu bearbeiten. Erkennbar ist dieser Modus am karierten Hintergrund und den Ankern an den Modulen (siehe weiter unten)

Um ein neues Modul hinzuzfügen, wird mit der Maus an der gewünschten Position ein Rahmen in der beliebiger Grösse aufgezogen.

(Position und Grösse können später jederzeit verändert werden)


Xero example01 addmodule.png


Nun wird der Modul-Auswahl-Dialog angezeigt:

Xero example01 selectmodule.png


Hier sind (nach Kategorien gruppiert) alle verfügbaren Module gelistet. Im Beispiel hier wählen wir aus der Gruppe "Schema" das Modul "ModuleSensor" aus.

Die allermeisten Module erfordern nun die Angabe einiger wichtiger Parameter - das Modul "ModuleSensor" zeigt z.B. Den folgenden Dialog an:

Xero example01 selectmodule parameters.png


Um fortfahren zu können müssen eine oder mehrere Parameter ausgefüllt werden - erst dann wird der OK angezeigt. In unserem Beipiel geben wir an, dass

  • das "ReadModule" (also das Modul welches den Rohwert liefert) "AK_1_3" heisst (das könnte z.B. den Wert einer AK-Quelle "AK_1" mit Offset 3 bedeuten);
  • der Maximalwert des Sensors "250" sein soll und
  • der Sensor einen Wert mit der Einheit (Unit) "°C" anzeigen soll.
  • Sein Name wird mit "T_1" festgelegt.

Nach Bestätigen mit OK wird das neue Modul zum Schema hinzugefügt. (über die Taste Cancel kann der Vorgang jederzeit abgebrochen werden und es wird kein neues Modul hinzugefügt)

Module können in ihrer Position und Grösse jederzeit verändert werden:

  • Position: Click-and-Drag im "freien" Bereich auf dem Modul
  • Grösse: Click-and-Drag auf dem "Size-Anchor" rechts unten
Xero example01 moduleanchors.png


Wir haben oben als Quelle für den Sensor T_1 das Modul AK_1_3 angegeben. Da es dieses Modul (noch) nicht gibt, zeigt T_1 auch keinen Wert an ('#' ist bei XERO das Symbol für kein bzw. undefinierter Wert)

Da angenommen wird, dass beim Abarbeiten dieses Tutorials kein physikalischer Sensor zur Verfügung steht um Messwerte einzulesen, werden wir einen Rohwert simulieren. Eine einfache Möglichkeit hierzu ist die Verwendung eines Counters.

Dazu fügen wir ein Modul Counter ein (Timer→Counter) und geben ihm den Namen "AK_1_3".


Um nun ein Modul detaillierter konfigurieren zu können, muss man den Designmodus durch abermaliges Betätigen der Taste Schema wieder verlassen.

Klickt man nun bei einem Modul auf das Symbol im linken Bereich,

Xero example01 moduleclicksymbol.png


kann man das betreffende Modul im Detail konfigurieren - es öffnet sich folgender Dialog:

Xero example01 moduleconfiguration.png


Um den Zähler zu starten, müssen wir ihm einen Startwert zuweisen: dazu klicken wir in das grüne Status-Fenster oben und geben in dem sich öffnenden Numerischen Eingabedialog den Wert "1" ein:

Xero example01 numberdialog.png


Nach der Bestätigung mit "Enter" bzw. "OK" beginnt der Zähler zu laufen. In ein-Sekunden-Intervallen von 0 bis 100.

Wir wollen für unser Beispiel einen Sensor simulieren, welcher Temperaturen in 1/10 Kelvin in einem Bereich von ca. 30-220°C liefert. Dazu müssen wir das Modul weiter konfigurieren.

Sehen wir uns dazu den Modul-Konfigurations-Dialog genauer an:


Xero example01 moduleconfiguration2.png

Der Dialog ist aufgeteilt in

  • den Statusbereich (oben)
  • den Hauptbereich (mitte)
  • den Parameter-Bereich (unten; weitere Parameter können auch rechts angezeigt werden - siehe unten)
  • den Steuerungs-Bereich (die Tasten ganz rechts)

Die Parameter, die allen Modulen gemeinsam sind, sind über die Taste Setup erreichbar (Hauptparameter):


Xero example01 moduleconfiguration setup.png

INFO: Die Bedeutung dieser Parameter ist in Setup beschrieben!

Konfigurieren wir das Modul nun folgendermassen - jeweils mit Klick auf den betreffenden Parameter:

  • .Min = 3000
  • .Max = 5000
  • .Timer = 0.2s

Und nach dem Zurückwechseln in das Schema dieses Moduls (Vorlage:ButtonSchema) ändern wir noch den Parameter

  • .Increment = 11.3

(im Parameter-Bereich unten)

Somit zählt unser Zähler nun von 3000 bis 5000. Und zwar alle 0.2 Sekunden um einen Wert von 11.3. (Hintergrund: der Zähler simuliert somit einen Temperatur-Sensor mit Werten zwischen 28 und 228°C in 1/10 Kelvin Auflösung; das Ganze mit einer linearen Rampe von 11.3/10 Kelvin pro 0.2 Sekunden)

Danach schließen wir den Modul-Konfigurationsdialog.

Nun sollte unser ModuleSensor "T_1" statt dem "#" einen Wert anzeigen. (ACHTUNG: es kann mehrere Sekunden dauern bis der Wert das erste Mal angezeigt wird)


Nun müssen wir das Temperatur-Modul "T_1" so konfigurieren, dass der Wert des (simulierten) Sensors vernünftig (richtig) dargestellt wird - dazu klicken wir in den Symbol-Bereich des ModulSensors "T_1":

Xero example01 moduleclicksymbol2.png

- es öffnet sich folgender Dialog:


Xero example01 moduleconfiguration t1.png

Oben in der Statuszeile wird (statt dem Gesamt-System-Status) nun der Status dieses einen Moduls angezeigt. In diesem Beispiel ist am Modul selbst (wie auch im Modul-Konfigurations-Dialog oben) zusätzlich das Symbol "(OR)" (kleiner Kreis mit violettem Hintergrund) dargestellt. "OR" bedeutet z.B. "Over-Range", d.h. der aktuelle Modulwert (3780) ist höher als der als ".Max" definierte (250)...

Im Hauptbereich des Modul-Dialogs befindet sich ein Chart. Jedes Modul speichert seine Messwerte für eine im Parameter ".History" definierte Zeit. Der Messwert-Verlauf wird in diesem Chart dargestellt.

Unterhalb bzw. rechts davon sind einige "Interne" (Sub-)Module dieses Moduls dargestellt (in diesem Fall: ".Command", ".Set", ".Raw" und ".ReadModule"). Bei manchen (komplexeren) Modulen sind hier weitere Sub-Module vorhanden. Diese können sich auch im Hauptbereich befinden.

In der XERO ist alles aus Modulen modelliert. Ein Modul ist gleichzeitig auch die kleinste Einheit. Das einfachste Modul ist das Modul "Sensor" (in der Gruppe "Register").

Komplexere Module bestehen aus vielen Modulen die jeweils selbst wieder aus Modulen bestehen. Dieses komplexere Modul kann dann verwendet werden um wiederum komplexere Module zu bilden.

Und: eine Gruppe von - mehr oder weniger komplexen - Modulen bildet eine Arena (=Schema).


Der Aufbau des (Basis-)Moduls "Sensor"

Praktisch jedes Xero Modul ist eine Erweiterung des Basis-Moduls Sensor.

Schauen wir uns deshalb dieses Modul genauer an:

Wir fügen also zum Schema das Modul Sensor mit Namen "S_1" hinzu (Register&arr;Sensor), verlassen anschliessend den Designmodus und klicken links auf das Symbol des eingefügten Sensors - es öffnet sich der Konfigurations-Dialog des "Sensors":


Xero example01 moduleconfiguration s1.png

Man sieht, dass der Sensor folgende Parameter (bzw. Sub-Module) enthält:

  • .Raw --> der Rohwert
  • .Set --> der Ziel- oder Target-Wert, wird verwendet
  • als Führungsgrösse bei Reglern (Sollwert)
  • zur Berechnung von Alarmgrenzen
  • bei Visualisierungen (Gauges, etc.)
  • .Chart --> ein Spezial-Modul zur Anzeige der Messwert-Historie

Zusätzlich dazu enthält noch jedes Modul folgende Parameter im Setup-Bereich (Taste Setup):


Xero example01 moduleconfiguration s1 setup.png

Die Bedeutung dieser Parameter ist in Setup beschrieben!


Man sieht, das in diesem Modul zwei zusätzliche Gruppen vorhanden sind:

  • Value Status (Statistics) und
  • Module Setup

"Value Status (Statistics)" ist für die statische Auswertung der Messwerte zuständig (Min, Max, Mittelwert und Standardabweichung). Sie ist also Teil jedes Sensors. Da ein "Counter" kein Sensor ist, fehlt diese Grupper im Setup des Counters "AK_1_3"

"Module Setup" enthält weitere - je nach Modul - Parameter.

INFO: Ob ein modulspezificher Parameter hier im Setup in der Gruppe "Module Setup" oder im Schema des Sensors dargestellt wird, ist konfigurierbar (aber nicht Teil dieses Beispiels).

INFO: Da wir Sensor "S_1" für unser Beispiel nicht benötigen, können wir ihn jetzt durch einen Klick auf den "Close-Anchor" (Kreuz rechts oben) im Schema-Designmodus wieder entfernen.


...zurück zum ModuleSensor "T_1": Dieser besitzt (wie weiter oben ersichtlich) zusätzlich zu den Minimal-Parametern des Moduls "Sensor" die beiden Parameter:

  • .Command --> wird für allgemeine Funktionssteuerung von Modulen benutzt (für dieses Beispiel nicht relevant)
  • .ReadValue --> das Modul, von dem der ".Raw" Wert für dieses Moduls bezogen/gelesen wird.


Bei den meisten Modulen empfiehlt sich die Konfiguration von zumindest den folgenden Modul-Parametern:

ACHTUNG: (Sollte sich ein Parameter-Wert nicht duch Klick auf den Bereich rechts vom Modul konfigurieren lassen, so kann man in den Konfigurations-Dialog des Moduls wechseln (klick auf das Symbol) und dann in diesem Dialog auf die Status-Leiste oben klicken. Dieses (Fehl-) Verhalten wird in einer zukünftigen XERO Version geändert!)


  • .Unit→die angezeigte Einheit
Wird auch zum automatischen Umrechnen verwendent. z.B. von [ppm] in [%] oder von [°C] in [K]
  • Icon adjust.png Adjust
unter obiger Annahme, dass unser Modul (Counter "AK_1_3" - von dem der Roh-Wert bezogen wird) eine Temperatur in Kelvin/10 liefert, müssen wir den Rohwert umrechnen:
>> °C = .Raw / 10 - 273.15 <<
.Adjust.Gain = 0.1
.Adjust.Offset = -273.15
  • Icon unknown.png Format
wir wollen den Wert mit einer Kommastelle anzeigen:
.Format = #.0
  • Icon unknown.png Type (Appearance-Type)
Der Sensor soll mit einem Temperatur-Symbol statt dem Standard-Symbol dargestellt werden:
.Type = TI
  • Icon alarm.png Alert
Falls der Wert 200°C um mehr als 20 sec überrschreitet, soll ein Alarm ausgelöst werden:
.Alert-Max = 200
.Inhibit = 20s
  • Icon alph.png Label
.Label = Temp Pumpe


Nachdem alle diese Parameter gesetzt wurden, schaut unser Modul-Dialog wie folgt aus:

Xero example01 moduleconfiguration t1 setup.png


…und das Modul auf dem Haupt-Schema so:

Xero example01 module t1.png


Somit zeigt unser ModuleSensor "T_1" nun den (simulierten) Sensorwert "AK_1_3" korrekt in °C an.