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.

...

  • Variablenname: String, der mit einem $ beginnt.

  • Typ: Zulässig sind bool, float, integer oder string

  • Init value: Weist der Variablen ein Default-Wert zu, der bis zum ersten Beschreiben der Variable gültig ist. Der Wert muss zum Typ passen!

Beispiel:

Codeblock
 "Level": [
    ["$true","bool",true],
    ["$false","bool",false],
    ["$Start","integer",0],
    ["$Ende","integer",0],
    ["$Zaehler","integer",0],
    ["$Period","integer",0],
    ["$Out","integer",0],
        ["$Z0", "integer",0],
        ["$Z1", "integer",1],
        ["$Z2", "integer",2],
        ["$Z3", "integer",3],
        ["$Z4", "integer",4],
        ["$Z5", "integer",5],
        ["$Z6", "integer",6],
        ["$Z7", "integer",7],
        ["$Z8", "integer",8],
        ["$Z9", "integer",9]

]

Modul-Array:

Im Modul-Array werden die Variablen mit den Ein- und Ausgängen der Modulbausteinen verknüpft und so die eigentliche(n) Funktion(en) des Logiksmoduls definiert.

...

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

Beispiel:

Codeblock
  "Module": [
    ["Clocksignal","$true",0,"$Period"], // Intervalltakter
    ["Polynomial","$Z1","$Startwert",["$Start","-$Z1"]], // Startwert setzen, muss um 1 kleiner als Start sein, weil am Schluss Zaehler noch um 1 erhöht wird
    ["Polynomial","$Z1","$Endwert",["$Ende","-$Z1"]], // Endwert setzen, muss um 1 kleiner als Ende sein, siehe oben
    ["Comparator", "$Zaehler","$Test", "$Startwert"], // Prüfen, ob Zaehler über Startwert liegt
        ["Latch","$Start","$Zaehler","-$Test",0], // wenn Bedingung nicht erfüllt, Zaehler auf Start setzen
    ["Comparator", "$Zaehler", "$Test", "$Endwert"], // Prüfen, ob Zaheler über Endwert liegt
        ["Latch","$Startwert","$Zaehler","$Test",0], // wenn Bedingung erfüllt, Zaehler auf Startwert setzen
    ["Polynomial","$Z1","$Zaehler",["$Zaehler","$Z1"]] // Zaehler um 1 erhöhen
  ],

Input-Array

Im Input-Array werden die Eingänge der Custom-Logikzelle festgelegt und je mit einer Variable verknüpft.

...