Versionen im Vergleich

Schlüssel

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

Struktur diese Kapitels

...

Der Bearbeitungsprozess eine Logik wird unter https://wiregate.atlassian.net/wiki/spaces/TSKB/pages/397672460/Aufbau+und+Funktionsweise+der+Logiken#Bearbeitungsprozess-einer-Logikerläutert. Für Entwickler können folgende Zusatzinfromationen Zusatzinfomationen von Bedeutung sein:

  • Es gilt der Grundsatz “Abgerechnet wird erst am Schluss.” Das bedeutet, dass bei einem Abbruch einer Logik über den Logik-Baustein “Break” einerseits alle nachfolgenden Module im Code nicht mehr berechnet oder ausgeführt werden und andererseits dass auch keine Daten an die Ausgänge übergeben werden. Dies gilt auch namentlich auch für Variablen, die im Zeitpunkt des Erreichens des Breaks bereits berechnet worden sind.

  • Variablen behalten am Ende eines Logikdurchgangs ihren Wert. Damit kann in einem nachfolgenden Durchgang (d.h. bei der nächsten Auslösung eines Triggers) auf die im vorher erfolgten Durchgang zugewiesenen Werte zurückgegriffen werden. Dies ist beispielsweise für eine bedingte Ablaufsteuerung einer Logik von Bedeutung. Das Beispiel ------------------ zeigt diese Funktionalität auf.

...

  • 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.

...

  • Variablen können durch ein vorangestelltes Minuszeichen direkt bei der Übergabe an einen Modulbaustein negiert oder invertiert werden (→Negationsfunktion). 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"-Arrray erlaubt, in den Arrays "Input" sowie "Output ist sie nicht zulässig.

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

  • Alle Module (mit Ausnahme des Moduls Break) werden in der Reihenfolge, wie sie 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.
    Damit wird das Senden der im Array “Output” definierten Ausgänge wird unterdrückt. Daher ist Break nicht geeignet, wenn beim Abbruch ein definierter Zustand (bspw. das Schliessen eines Ventils) gewünscht wird.

...

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

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

  • Variablenname: 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übergabe an die Variable (update only)

    ( und zulässige Optionen siehe → Triggerfunktion).

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"] 
  ],

...

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

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

  • Variablenname: Legt fest, 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)

    (Funktionsweise und zulässige Optionen siehe →Sendefunktion).

Beispiel:

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

...

  • 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.

  • Wird der Variablenname am Ende um ein ? ergänzt, wird der Ausgang in der Logikzelle nur angezeigt, wenn in der GUI der Eingang bewusst über das Kreuzsymbol aktiviert worden ist (zum Beispiel: ["Nacht","Schwarze Nacht","$Dark_night?","c"]).