Appl_DigIn

Einlesen digitaler Eingänge und Absenden von Pooltelegrammen bei erkannten Ereignissen. Unterstützung maximal 16 digitaler Eingänge.

Funktionsübersicht

  • Erkennen von Flankenwechseln am digitalen Eingang. Daraus resultieren folgende Ereignisse, die wiederum Pooltelegramme absenden können:
    • steigende Flanke
    • fallende Flanke
    • Toggeln
    • Highpegel
    • Lowpegel
    • Langer Tastendruck
    • Sonderfunktion (Start)
    • Sonderfunktion (Stop)
    • Taststufen 0..5 (Mehrfachtastendrücke)
  • Einstellbare Anzahl an Taststufen. D.h. es kann zwischen dem ersten, zweiten, … weiteren Tastendruck unterschieden werden und davon abhängig Pooltelegramme verschickt werden. Die maximale Anzahl der Taststufen ist parametrierbar im Bereich 0..5. Ebenfalls parametrierbar ist, ob die aktuelle Taststufe (z.B. Stufe2 für einen zweifachen Tastendruck) nach einer gewissen Zeit der Inaktivität wieder auf ihren Startwert zurückfällt. So werden dann zeitlich weit auseinander liegende Tastendrücke nicht mehr als Mehrfachdruck gewertet.
  • Einstellbare Zeit, ab wann ein Tastendruck als „langer Tastendruck“ erkannt wird (TasterLangMin)
  • Einstellbare Zeit, ab wann ein Tastendruck als „Sonderfunktion Start“ erkannt wird (TasterSfktMin). Typische Verwendung, um z.B. nach 2s das manuelle Dimmen einer Lampe anzustoßen. Die Zeit TasterSktMax gibt die Zeit vor, nach der die Taste auf jeden Fall losgelassen sein muss (sonst kann dies als klemmende Taste interpretiert werden). Kann z.B. dann verwendet werden, um das manuelle Dimmen auf jeden Fall wieder zu beenden.
  • Der Parameter Stufenrückstellzeit legt fest, welcher Zeitraum nach einem Tastendruck gewartet werden soll, bis die Taststufe (siehe oben) wieder auf die Starttaststufe0 zurückfällt. Hinweis: Wert 0xFFFF bedeutet, dass kein automatischer Rückfall stattfinden soll.
  • Protokollierung der Anzahl der Schaltspiele (z.B. zu Diagnosezwecken)
  • Simulierter Tastendruck: Die DigIn-Komponente bekommt über Bus einen Tastendruck untergeschoben und verarbeitet diesen, als sei er real in der Hardware aufgetreten. Verwendung z.B. in einer Visualisierung, um damit die Folge eines Tastendruckes (z.B. Licht einschalten) zu erzielen.
  • Zustand: Aktueller Status des Digitaleingangs (als Bitfeld).

Hardwarevoraussetzungen

  • Knotenhardware mit Digitaleingang

Design und Implementationsdetails

Zyklisches Einlesen (10ms) aller Digitaleingänge und prüfen auf die unten aufgeführten Ereignisse. Bei erkanntem Ereignis wird das diesem Ereignis und Triggerkanal (=DigIn-Nr) zugewiesene Telegramm verschickt.

Die Umsetzung der Taststufen als Diagramm:

Um die Komponente Appl_DigIn hardwareunabhängig zu halten und damit für alle Projekte einsetzen zu können, muss das konkrete Projekt die Anbindung an die konkrete Hardware in Form der projektspezifischen Konfigurationskomponenten Appl_DigIn_cfg liefern. Hier werden dann die nötigen Funktionen zum Initialisieren und Einlesen der Digitaleingänge ausformuliert.

Liste unterstützter Ereignisse

Ereignis Ereignis
Nr
.
Beschreibung typ. Verwendung
Steigende Flanke 0 Pegeländerung 0=>1 binärer Eingang
Fallende Flanke 1 Pegeländerung 1=>0 binärer Eingang
Toggeln 2 Pegeländerung 0=>1 oder 1=>0 binärer Eingang
Highpegel 3 binärer Eingang
Lowpegel 4 binärer Eingang
5 (frei)
6 (frei)
Langer Tastendruck 7 Taste für mind. TasterLangMin gedrückt halten, dann loslassen. Ereignis sofort nach Zeitpunkt TasterLangMin. sekundäre Tastenfunktion (z.B. Ausschalten einer Lampenszene)
Sonderfunktion Start 8 Taster für mind. TasterZeitSfktMin und maximal TasterZeitSfktMax gedrückt halten. Nicht loslassen. Ereignis sofort nach Zeitpunkt TasterZeitSfktMin. Dimmstart
Sonderfunktion Stopp 9 bei aktiver SonderfunktionStart die Taste loslassen (noch innerhalb der Zeit TasterZeitSfktMax). Ereignis sofort nach Loslassen. Dimmstopp
Taststufe0 10 Auslöser ist ein kurzer Tastendruck, d.h. Taste niederdrücken und vor TasterZeitLangMin wieder loslassen. Automatisches Weiterschalten in Stufe1, wenn AnzStufen >=1 optional (ggf. Aus für einfache 2stufige Taster)
Taststufe1 11 Kurzer Tastendruck.
Wenn AnzStufen>=2, dann Wechsel nach Stufe2, sonst zurück zu Stufe0
optional
Taststufe2 12 optional
Taststufe3 13 optional
Taststufe4 14 optional
Taststufe5 15 optional

DoTable DigIn (DoType 0x15)

DoSi Beschreibung Typ/
Länge
Ort Min/Max
/Default
Auflösung
/Einheit
Datenart
0x00 Anzahl Schaltstufen
u8 EEP
1/6/0
1/- Cfg, Bw, Br
0x01 TasterLangMin
u8
EEP 0/255
/400ms
10/ms Cfg, Bw, Br
0x02 TasterSfktMin u16 EEP 0/65535
/2000ms
10/ms Cfg, Bw, Br
0x03 TasterSfktMax u16 EEP 0/65535
/60s
10/ms Cfg, Bw, Br
0x04 Stufenrückstellzeit u16 EEP 0/65535
/0xFFFF (=aus)
10/ms Cfg, Bw, Br
0x05 Schaltspiele u32 EEP 1/- Lcfg, Bw, Br
0x10 simulierter Tastendruck u8 RAM Bitfeld Ctl, Bw
0x20
Zustand (0: offen; 1:geschlossen)
u8
RAM
bool Ctl, Br

BoTable DigIn (DoType 0x15)

BoIndex: 0x00
Zykluszeit: 5000ms (bei Änderung sofort)
Sperrzeit (Inhibittime): 50ms
Datenlänge: 2Byte

Byte
Beschreibung
Byte0
Bit0: Pegel DigIn0 (0: low; 1: high)
Bit1: Pegel DigIn1 (0: low; 1: high)
Bit2: Pegel DigIn2 (0: low; 1: high)
Bit3: Pegel DigIn3 (0: low; 1: high)
Bit4: Pegel DigIn4 (0: low; 1: high)
Bit5: Pegel DigIn5 (0: low; 1: high)
Bit6: Pegel DigIn6 (0: low; 1: high)
Bit7: Pegel DigIn7 (0: low; 1: high)
Byte1 Bit0: Pegel DigIn8 (0: low; 1: high)
Bit1: Pegel DigIn9 (0: low; 1: high)
Bit2: Pegel DigIn10 (0: low; 1: high)
Bit3: Pegel DigIn11 (0: low; 1: high)
Bit4: Pegel DigIn12 (0: low; 1: high)
Bit5: Pegel DigIn13 (0: low; 1: high)
Bit6: Pegel DigIn14 (0: low; 1: high)
Bit7: Pegel DigIn15 (0: low; 1: high)