Formelinterpreter 2 - Erstellung der Formeltabelle

Im Kapitel Formelinterpreter 1 - Einführung wurde kurz auf die Erstellung der Formeltabelle eingegangen. Dies soll in diesem Kapitel noch einmal ausführlicher dargestellt werden.

Die Formeltabelle

In der Formeltabelle befindet sich in jeder Zeile eine Formel. Die Formeltabelle ist besonders für einfache, kurze Formeln geeignet. Die Tabelle kann mit Excel erzeugt und bearbeitet werden. Alternativ kann die Tabelle auch als Textdatei gespeichert werden. Das folgende Bild zeigt eine Excel-Tabelle mit einer Formel:

../../_images/formel-excel-tabelle.png

Die erste Zelle (A1) der Excel-Tabelle muss die Zeichenkette "UniPlotFormulaTable" oder "UniPlotFormelTabelle" enthalten.

Die zweite Zeile enthält die Spaltennamen und wird ignoriert.

Die Tabelle kann Leerzeilen und Kommentarzeilen enthalten. Bei Kommentarzeilen muss die Zelle in der ersten Spalte mit einem Nummernzeichen (#) beginnen. Man kann damit auch Formeln auskommentieren.

In den weiteren Zeilen wird eine Formel pro Zeile definiert.

Die Tabelle enthält 8 Spalten. Die Spalten werden nun ausführlich beschrieben.

1. Spalte - FunctionName

In der ersten Spalte steht der Name der Formel. Die Namen müssen den Namensregeln für UniScript-Namen entsprechen. D.h. der Name muss mit einem Buchstaben oder Unterstrich beginnen. Dem ersten Zeichen können Buchstaben (a-z und A-Z, keine Umlaute oder länderspezifische Buchstaben), Ziffern und Unterstriche folgen.

Der Name muss außerdem eindeutig sein, d. h. er darf nicht nochmal in der ersten Spalte der Tabelle vorhanden sein. Er sollte auch nicht in einer anderen Datei verwendet worden sein.

2. Spalte - Description

Beschreibung der Formel. Die Beschreibung wird im Kanalattribut Description in der NC-Datei gespeichert.

3. Spalte - Unit

In dieser Spalte wird die Einheit der Formel angegeben. Die Einheit wird im Kanal-Attribut units gespeichert.

4. Spalte - Output

Name des Ausgabekanals. Das ist der Name, unter dem die berechneten Daten in der NC-Datei gespeichert werden sollen. Falls in der NC-Datei der Name bereits existiert, wird der Kanal von der Formel überschrieben.

Der Name muss mit einem Buchstaben oder einem Unterstrich beginnen, gefolgt von 0 oder mehr Buchstaben oder Ziffern sowie dem Unterstrich (_). Groß- und Kleinbuchstaben werden unterschieden. Sonderzeichen im Namen werden durch Unterstriche ersetzt. Umlaute werden wie folgt umgesetzt: Ä->A, ä->a, Ö->O, ö->o, Ü->U, ü->u, ß->s.

Option: Missing Value Behandlung

Um die missing value (ungültige Werte) Behandlung abzuschalten, wird vor den Output-Name ein @-Zeichen gesetzt, z. B. @P_kor. Die missing value Behandlung muss abgeschaltet werden, wenn Sie ungültige Werte mit der Funktion replace_missing() durch gültige Werte ersetzen möchten.

5. Spalte - Formula

In dieser Spalte wird die Rechenvorschrift der Formel definiert (siehe Definition von Formeln). Eine Tabellenformel darf nicht mehr als 255 Zeichen enthalten. Konstante Werte müssen mit dem Dezimaltrennzeichen Punkt (.) eingegeben werden.

6. Spalte - OnlyIf

In dieser Spalte kann eine Bedingung angegeben werden, die darüber entscheidet, ob die Formel auf die aktive NC-Datei angewendet werden soll. Wenn keine Bedingung angegeben wird (leeres Feld), wird immer versucht, die Formel auszuwerten. Wie man eine Bedingung definiert, wird unter Definition einer Bedingung beschrieben. Beispiele für typische Bedingungen:

diesel: Berechne diesen Kanal nur bei Dieselmotoren.

otto: Berechne diesen Kanal nur bei Ottomotoren.

turbodiesel: Berechne diesen Kanal nur bei aufgeladenen Dieselmotoren.

7. Spalte - Numberformat

Formatbescheibung, z. B. %e oder %.4f, weitere Informationen finden Sie bei der Funktionsbeschreibung von printf. Die Formatbeschreibung wird im Attribut C_format in der NC-Datei gespeichert.

8. Spalte - Use SI-Units

Falls in dieser Spalte der Wert 1 angegeben ist, wird die Formel in SI-Einheiten berechnet. Dazu werden alle Kanäle in SI-Einheiten konvertiert, bevor die Formel ausgewertet wird. Das Ergebnis der Berechnung wird in die Einheit konvertiert, die in Spalte 3 definiert ist. Eine Formel wird nur berechnet, wenn alle Einheiten in der Einheitentabelle enthalten sind. Siehe auch Einheiten-Umrechnung. (Neu in UniPllot R2013.11.)

9. Spalte - Comment

Bis UniPlot R2013.11 stand der Kommentar in Spalte 8. In dieser Spalte kann ein Kommentar eingetragen werden.

Die Konstantentabelle

In dieser Tabelle werden die Konstanten gespeichert. Der Name einer Konstanten muss eindeutig sein. Der Name sollte also nicht mit einem globalen NC-Dateiattribut (Stammdatum) oder einem Kanalnamen übereinstimmen.

Mit der Funktion ch werden Daten aus einer NC-Datei oder aus der Konstantentabelle gelesen. Die Funktion geht dabei wie folgt vor: Zuerst prüft die Funktion, ob ein Kanal mit dem angegebenen Namen existiert. Falls kein Kanal existiert, prüft die Funktion, ob ein globales Attribut in der NC-Datei mit dem Namen existiert. Falls auch kein globales Attribut existiert, prüft die Funktion, ob der angegebene Name mit einen Namen aus der Konstantentabelle übereinstimmt und liefert den entsprechenden Wert zurück.

Das folgende Bild zeigt eine Konstantentabelle:

../../_images/formel-Konstantentabelle.png

Die Zelle „A1“ enthält die Zeichenkette "UniPlotFormulaConstants" oder "UniPlotFormelKonstanten". Die zweite Zeile enthält die Spaltenüberschriften. Die folgenden Zeilen enthalten die Konstanten. Die Tabelle enthält 4 Spalten:

  1. Spalte - Name
    Name der Konstanten
  2. Spalte - Unit
    Einheit der Konstanten.
  3. Spalte - Description
    Beschreibung der Konstanten
  4. Spalte - Value
    Wert der Konstanten.

Wie bei der Formeltabelle werden Leer- und Kommentarzeilen ignoriert. Kommentarzeilen beginnen in der erste Spalte mit einem Nummern-Zeichen (#).

Die Konstantentabelle kann als separate Excel-Datei oder als Tabellenblatt innerhalb der Excel-Formel-Datei gespeichert werden. Beim Konvertieren der Formeltabelle wird auch die Konstantentabelle in eine UniScript-Map konvertiert.

Formeltabelle laden

Formel-Konfiguration

Um die in der Tabelle definierten Formeln in UniPlot zu laden, gehen Sie wie folgt vor:

  • Starten Sie UniPlot.

  • Wählen Sie Extras=>Formel-Konfiguration.

    ../../_images/formel-konfiguration-dlg.png
  • Im Suchpfad geben Sie die Verzeichnisse an, in denen sich Formeltabellen befinden.

  • Drücken Sie OK.

Falls die Tabelle ungültige Formeln enthält, wird eine Fehlerliste erzeugt und in einem Editor angezeigt. Konnten die Formeln fehlerfrei konvertiert werden, stehen sie sofort für die Berechnung zur Verfügung. UniPlot muss also nicht neu gestartet werden.

Bevor die Formeln geladen werden, werden alle bereits geladenen Formeln gelöscht. Damit es es möglich zwischen zwei verschiedenen Formelsätze in unterschiedlichen Verzeichnissen zu wechseln.

Die Tabellenformeln werden von einem Programm in Skript-Formeln umgewandelt und in Textdateien gespeichert. Der Dateiname setzt sich aus der Vorsilbe _fi_ und dem Namen der Formel mit der Erweiterung .ic zusammen, beispielsweise _fi_Power.ic. Die Formeln in diesen Datei sollten nicht manuell bearbeitet werden, da die Dateien bei erneuter Konvertierung überschrieben werden und damit die Änderungen verloren gehen würden.

Formeln debuggen

Um eine Formel zu debuggen, öffnen Sie die entsprechende IC-Datei. Um einen Anhaltepunkt zu setzen, klicken Sie die gewünschte Zeile innerhalb der Funktion an und drücken dann F9. Falls kein Anhaltepunkt gesetzt werden kann, drücken Sie F4 um die Funktion zu übersetzen und drücken dann wieder F9. Am linken Rand wird dann ein roter Punkt angezeigt.

Öffnen Sie dann die gewünschte Datendatei mit dem Datenbrowser und drücken F9 um die Formeln neu zu berechnen. Falls die Formel berechnet werden kann, wird die Programmausführung am Anhaltepunkt unterbrochen.

../../_images/editor-debug.png

Mit F10 bzw. F11 können Sie die Funktion durchlaufen. Um sich Werte von Variablen anzuschauen, platzieren Sie den Mauscursor auf einer Variablen. Der Wert wird dann in einem kleinen Fenster angezeigt.

Weitere Informationen zum Debuggen finden Sie unter Der Debugger für Funktionen.

Zum nächsten Abschnitt: Formelinterpreter 3 - Erstellung von Scriptformeln.

id-6196