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) |