4.6.2.1 Beschreibung der wichtigsten Basis-Logikbausteine

Beschreibung: Beschreibung der Basis-Logikbausteine

Kategorie: Logiken

Link zu diesem Beitrag: Alles auswählen

[url=https://forum.timberwolf.io/app.php/kb/viewarticle?a=89&sid=3665326049cfefa738bb28f0e08a4d5c]Knowledge Base - 4.6.2.1 Beschreibung der wichtigsten Basis-Logikbausteine[/url]

Nachstehend werden die wichtigsten Standard-Logikbausteine beschrieben. Mathematische Bausteine wie Polynom, Statistik etc. sind im nächsten Kapitel zu finden.

ODER / Or:
Gibt am Ausgang 1 aus, sobald einer der Eingänge ungleich 0 ist.

UND / And:
Gibt am Ausgang 1 aus, wenn alle Eingänge ungleich 0 sind.

SCHWELLWERTSCHALTER / Comperator:
Der Schwellwertschalter erlaubt 2 Varianten:
  1. Ein Schwellwert: Der Eingangswert wird mit dem Schwellwert verglichen und die Logikzelle gibt 1 aus, wenn $Input_Wert > $Schwellwert erfüllt ist.
    $OutputBedingung
    0 / false$Input_Wert <= $Schwelle
    1 / true$Input_Wert > $Schwelle
    Bild
    • Oberer und unterer Schwellwert: Der Ausgang der Logik liefert 0, wenn der untere Schwellwert unterschritten ist, eine 1, wenn der obere Schwellwert überschritten ist. Liegt der Input_Wert zwische oberer und unterer Schwelle, wird der unveränderte Ausgangswert ausgegeben.
      $OutputBedingung
      0 / false$Input_Wert <= $UntereSchwelle
      1 / true$Input_Wert > $ObereSchwelle
      unverändert$UntereSchwelle < $Input_Wert <= $ObereSchwelle
      Hinweis: die Entscheidungen im Fall 2. sind so gewählt, dass auch bei Gleichheit von unterer und oberer Schwelle ein stabiler Zustand gewährleistet ist.

      Anwendungsbeispiel:
      Schwelle_1 ist die untere Schwelle und Schwelle_2 ist die obere.
      Schwelle_1 <= Schwelle_2

      Der Ausgang des Schwellwertschalters mit Hysterese:
      • wechselt von false auf true , wenn Eingang > Schwelle_2
      • wechselt von true auf false , wenn Eingang <= Schwelle_1
      • bleibt gleich, wenn Schwelle_1 < Eingang <= Schwelle_2
      Das ganze sollte dann so aussehen, wenn true am Ausgang sperren beduetet:
      Bild

      Oder so (mit invertiertem Ausgang), wenn true am Ausgang freigeben beduetet:
      Bild
      BEGRENZER / Limiter:
      Begrenzt den Eingangswert mit Minimal- und Maximalwert, dazwischen wird der Eingangswert auf den Ausgang geschrieben. $Val_ok liefert 1, wenn der Wert innerhalb liegt, sonst 0.

      TIEFPASS / Lowpass:
      Der Baustein Tiefpass dient zur Glättung von zeitlichen Signalverläufen. Dabei haben neuere Werte einen wesentlich größeren Einfluss auf das Ergebnis als ältere (Beim gleitenden Mittelwert haben dagegen die alten Werte genau die gleiche Bedeutung für den Ausgang wie die neuen).
      • Tipp:
        Wer bisher einen gleitenden Mittelwert verwendet hat, kann dafür einen Tiefpass verwenden, wobei die Zeitkonstante für den Tiefpass die Hälfte der bisherigen Fensterbreite sein sollte. Das nachfolgende Bild zeigt den geglätteten Verlauf für einen Signalsprung von 0 => 1 für Tiefpass und gleitenden Mittelwert (T entspricht dabei der Fensterbreite des gleitenden Mittelwerts).

        Bild
      STOPPUHR / Stopwatch:
      Der Baustein Stoppuhr erlaubt die Messung und Ausgabe der Zeit, die seit dem Empfang des Start-Trigger vergangen ist. Durch hinzufügen eines weiteren Trigger Eingangs kann die verstrichene Zeit zyklisch auf den Ausgang gesendet werden.
      Die Stoppuhr wird mit einem Ein Trigger gestartet und beim nächsten Aus Trigger gestoppt. Mit 1 wird die Messung fortgesetzt.
      Ein Trigger 1 auf Reset setzt die Stoppuhr auf 0 zurück.

      TIMER / Monoflop:
      Der Timer-Baustein ist mit einem Treppenlichtverzögerung vergleichbar. Mit dem Empfang eines Telegramms wird der Timer gestartet und am Ausgang True ausgegeben. Nach Ablauf der Verzögerungszeit wird der Ausgang wieder auf False geschaltet.

      Es stehen insgesamt 8 Varianten zur Verfügung, die beliebige Kombinationen aus Re-trigger- und Flanken-Verhalten abdecken:
      • Timer1: Nicht re-triggerbar, Pegelgesteuert, d.h. jedes Telegramm wird als Trigger gewertet
      • Timer2: Re-triggerbar, Pegelgesteuert, d.h. jedes Telegramm startet den Timer bzw. re-triggert den Timer
      • Timer3: Nicht re-triggerbar, Timer wird nur bei steigender Flanke getriggert
      • Timer4: Re-triggerbar, Timer wird nur bei steigender Flanke getriggert
      • Timer5: Nicht re-triggerbar, Timer wird nur bei fallender Flanke getriggert
      • Timer6: Re-triggerbar, Timer wird nur bei fallender Flanke getriggert
      • Timer7: Nicht re-triggerbar, Timer wird bei beiden Flanken getriggert
      • Timer8: Re-triggerbar, Timer wird bei beiden Flanken getriggert
      MULTIPLEX:
      Der Logik-Baustein Multiplex mehreren Eingangssignale (gleichen Typs), aus denen mit dem Selektor-Eingang das Ausgangssignal ausgewählt wird.
      Der Baustein ist für Bool, Float, Integer und String verfügbar, der Selektor Eingang ist immer vom Typ Integer.
      Die Eingänge werden von 0 gezählt, d.g. mit Wert 1 am Selektor-Eingang wird der Wert des 2. Einganges auf den Ausgang durchgeschaltet.
      • Beispiel:
        In diesem Fall wird mit dem Selektor 0 der Wert 3 des ersten Eingangsobjektes auf den Ausgang geschrieben.

        Bild
        PWM:
        Die Logik Pulsweitenmodulation (PWM) berechnet aus Eingangswert (Tastgrad) und Taktzeit (Dauer) das PWM-Signal, das im zeitlichen Langzeitmittel dem Eingangswert entspreicht. Damit kann zB ein Sollwert zB 70% in ein Schaltsignal eines Ventils (Ein/Aus) umgewandelt werden. Bei einer Taktzeit von 10min wäre das Ausgangssignal dann abwechselnd 7min EIN und 3min AUS.
        • Mit dem Eingang Start kann die Umrechnung aktiviert bzw. deaktiviert werden, siehe Abbildung mit fixem Tastgrad und Dauer:

          Bild
          • In Grafana sieht die Ausgabe dazu wie folgt aus (Eingangssignal Start, Ausgangssignal Takt):

            Bild
            TO DO:
            FlipFlop
            Latch