Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Das Grundgerüst jeder Custom-Logik ist ein JSON-Objekt mit den vier Schlüsseln

...

  • Austausch von Informationen zwischen den Modulen, In-und Output;

  • Ablaufsteuerung innerhalb des Moduls, indem einer Variable abhängig vom erfüllen einer Bedingung einen bestimmten Wert zugewiesen wird (Beispiele siehe ….)

  • Verwendung als Konstante, um bestimmte fixe Werte in den Modulen zu verwenden.

...

Codeblock
languagejson
Modul": [ [<Basis-Modul><Modulbaustein>, <spezifische Parameter des Basis-Moduls>Modulbausteins> ], ... ]

Zu den einzelnen Syntax-Elementen:

  • Basis-ModulModulbaustein: Bezeichnung des Modulbausteins, die Auswahl hängt von der Software-Version des TWS ab. Die Liste der vorhandenen Befehle findet sich hier .unter Modulbausteine für Custom-Logiken

  • Spezifische Parameter des Basis-Moduls: siehe

    Die Basis-Module sind vorgegebene (kompilierte) Funktionen . Die Auswahl hängt von der Software-Version des TWS ab.
    Die genaue Beschreibung jedes einzelnen Basis-Moduls und dessen Parameter erfolgen in einem eigenen Abschnitt.

    Unter: app.php/kb/viewarticle?a=115 sind die wichtigsten Standardbausteine mit einer exemplarischen Modul-Definition aufgeführt.

    Variablen können vorangestellten Minus bei der Übergabe in ein Modul direkt Modulbausteins: Diese finden sich ebenfalls unter Modulbausteine für Custom-Logiken.

Hinweise:

  • Variablen können durch ein vorangestelltes Minuszeichen direkt bei der Übergabe an einen Modulbaustein invertiert werden. Beim Typ boolean verhält sich das Minuszeichen wie ein NOT, und bei float und integer wie ein *(-1).
    Achtung: Diese Syntax ist nur bei den Referenzen im "Modul"-Block erlaubt (nicht bei Arrray erlaubt, in den Arrays "Input" oder sowie "Output )!CODE:ist sie nicht zulässig.

    Codeblock
        "Module":[  
             ["And",["$In","-$Limit_ON"],"$Delayed_ON"],  
        ],
    
    Hinweis:
    In den Funktionen
  • Als Parameter der Modulbausteine sind aktuell nur Variablen, die im Abschnitt Level definiert wurden erlaubt. Es können keine Parameter als Zahl eingeben werden!
    Ausnahme ist, wenn Für diese Regel besteht nur folgende Ausnahme: Wird ein Ausgangswert nicht weiter verwendet wird. Dann kann anstelle eines Verweises (String beginnend mit $) auf den Level , kann anstelle einer Variablen auch der Zahlenwert 0 eingesetzt werden; man spart sich so eine Definition in den Levelsdie Definition einer Variablen. Beispiel:
    Statt: ["Statistic",["$VAR<Helligkeit!>"],"$Stat_Min","$Stat_Max","$Stat_Mean","$Stat_Median"]
    Sokürzer :      ["Statistic",["$VAR<Helligkeit!>"],                      0,"$Stat_Max","$Stat_Mean","$Stat_Median"]

  • Alle Module (mit Ausnahme des Moduls "Break") werden in der Reihenfolge, wie sie in der Liste im Array stehen, ausgeführt.

  • Das Modul "Break" nimmt eine Sonderstellung ein. Es wertet seine 0..n Eingänge aus und bricht die weitere Abarbeitung der Logikzelle ab, falls einer der Eingänge true ist. Auch
    Damit wird das Senden der Outputs im Array “Output” definierten Ausgänge wird unterdrückt. Daher ist Break ist daher nicht geeignet, wenn beim Sperren Abbruch ein definierter Zustand zB schließen (bspw. das Schliessen eines Ventils gewünscht ist!
     ) gewünscht wird.

Input-Array

...

Im

...

Input-Array werden die

...

Eingänge der Custom-Logikzelle

...

festgelegt und je mit einer Variable verknüpft.

Es gilt folgende Syntax:

Codeblock
languagejson
"Input": [ [<Name>, <Beschreibung>, <Variablenname>, <Trigger-Option> ], ... ]

...

Zu den einzelnen Syntax-Elementen:

  • Name: String, mit dem der Eingang in der GUI angezeigt bezeichnet wird.Die Beschreibung wird

  • Beschreibung: String, der als Erläuterungstext bei "Mouse over" über dem Namen angezeigt wird.

  • Der Variablennamebestimmt: Legt fest, welche Variable mit den Eingang verknüpft ist.

  • Die Trigger-Optionen bestimmen, wann ein Signal am Eingang die Berechnung der Logikzelle anstößt. Mögliche Optionen:

    • "a": jedesmal (always)

    • "c": nur bei Wertänderung (on change)

    • "u": kein Trigger, nur Wertübernahme nach Level (update only)Wertübergabe an die Variable (update only)

Beispiel:

Codeblock
"Input": [
    ["Startwert","Wert (integer), der als erstes ausgegeben wird ","$Start","c" ],
    ["Endwert","Wert (integer), der als letztes ausgegeben wird ","$Ende","c" ],
    ["Intervalldauer","in Sekunden","$Period","c"] 
  ],

Output-Array

...

Im

...

Output-Array werden die

...

Ausgänge der Custom-Logikzelle

...

festgelegt und je mit einer Variable verknüpft.

Es gilt folgende Syntax:

Codeblock
languagejson
"Output": [ [<Name>, <Beschreibung>, <Variablenname>, <Sende-Option> ], ... ]

...

Zu den einzelnen Syntax-Elementen:

  • Name: String, mit dem der Ausgang in der GUI angzeigt bezeichnet wird.Die Beschreibung wird

  • Beschreibung: String, der als Erläuterungstext bei "Mouse over" über dem Namen angezeigt wird.

  • Der Variablennamebestimmt: Legt fest, welcher welche Variable mit den Ausgang verknüpft ist.

  • Die Sende-Optionen bestimmen, wann ein Wert am Ausgang gesendet wird. Mögliche Optionen:

    • "a": jedesmal (always)

    • "c": nur bei Wertänderung (on change)

    • ""t": wenn ein Timer abgelaufen ist (on timer)

Beispiel:

Codeblock
"Output": [
    ["Zähler","Aufaddierter Wert","$Zaehler","a"]
  ],

Hinweis:

  • Wegen der Gefahr von Endlosschlaufen ist es nicht zulässig, eine Variable sowohl im Input- wie auch im Output-Array zu verwenden. Dies führt zu einem Fehler.