Appl_AIn

Applikation zum Einlesen von max. 16 Analogsignalen. Für jedes Analogsignal läßt sich eine Filterzeit konfigurieren. Bei erkannten Ereignissen können vordefinierte Telegramme versendet werden.

Funktionsübersicht

  • Ausgabe von gefiltertem und ungefiltertem Analogrohwert
  • einstellbare Filterzeit, um ADC-Rauschen oder Sensorrauschen zu unterdrücken.
  • Zwei Grenzwerte je für ansteigende und abfallende Signale. So kann z.B. bei Unterschreiten eines Wertes zuerst eine Warnung ausgegeben werden und später dann eine Aktion veranlasst werden.

Hardwarevoraussetzungen

Knotenhardware mit Analogeingang. Der gemessene Rohwert bezieht sich immer auf die AD-Referenzspannung, d.h. etwaige externe Spannungsteiler fliessen nicht in die Messung ein.

Design und Implementationsdetails

Sämtliche Analogkanäle werden alle 10ms eingelesen.  Dies erledigt die Appl_AIn (AIn = Analog IN) Komponente indem sie eine von der Appl_AInCfg-Schicht bereitzustellende Callbackfunktion zum Einlesen des AD-Wertes verwendet. Das heisst, der Analogwert kann aus einem internen AD-Wandler, als auch von einem externen AD-Wandler (z.B. über SPI angebunden) kommen.

Analogwertfilterung

Zur Glättung der Analogwerte wird ein PT1-Filter eingesetzt. Die Filterzeit läßt sich über den Filterkoeffizienten einstellen. Die Berechnungsvorschrift lautet:

[yn] = [xn] + (a * ([yn-1] – [xn]))
a = cFilter * (2^16) mit c = [0.0 .. 1.0]

Berechnung der Filterkoeffizienten a = (t/(T+t)) * (2^16) mit T=10ms und t (Filterzteit) in ms.

Filterzeit
t(Filter)
Filterkoeffizient
cFilter a
10ms 0.5 32768
100ms 0.9 59578
200ms 0.95 62415
1000ms 0.990 64887
15s 0.999 65492

Das nachfolgende Diagramm zeigt die Sprungantwort des Filters bei einem cFilter von 0,99 (entspricht einer Filterung von 1s; X-Achse: Anzahl der 10ms-Zyklen)

Liste unterstützter Ereignisse

Ereignis Ereignis
Nr
.
Beschreibung typ. Verwendung
Grenzwert S1 überschritten 16 gefilterter Analogwert > Grenzwert S1; in aktuellem Zyklus überschritten (nur einmalige Auslösung) Grenzwertschalter/ Thermostat
Grenzwert S2 überschritten 17 gefilterter Analogwert > Grenzwert S2; in aktuellem Zyklus überschritten (nur einmalige Auslösung) Grenzwertschalter
Grenzwert F1 unterschritten 18 gefilterter Analogwert < Grenzwert F1; in aktuellem Zyklus unterschritten (nur einmalige Auslösung) Grenzwertschalter/ Thermostat
Grenzwert F2 unterschritten 19 gefilterter Analogwert < Grenzwert F2; in aktuellem Zyklus unterschritten (nur einmalige Auslösung) Grenzwertschalter
(letztes Analogevent) 31 (reserviert; noch nicht in Verwendung)

DoTable AIn (DoType 0x16)

DoSi Beschreibung Typ/
Länge
Ort Min/Max
/Default
Auflösung
/Einheit
Datenart
0x00 ungefilterter Rohwert (left aligned)
u16
RAM

1/- Ctl, Br
0x01 Filterzeit
u16
EEP -/-/100ms
2^-16/-
Cfg, Bw, Br
0x02 gefilterter Analogwert (left aligned)
u16 RAM 1/- Ctl, Br
0x03 EingangAktiv
u8 EEP 0/1/0

Cfg, Bw, Br
0x04 AnalogGrenzwert S1
u16 EEP 0/65535/0
1/- Ctl, Bw, Br
0x05 AnalogGrenzwert S2 u16 EEP 0/65535/0 1/- Cfg, Bw, Br
0x06 AnalogGrenzwert F1 u16 EEP 0/65535/0 1/- Cfg, Bw, Br
0x07 AnalogGrenzwert F2 u16 EEP 0/65535/0 1/-
Cfg, Bw, Br

Der Parameter „EingangAktiv“ hat nur Auswirkung auf den Versand der Bo-Daten.

BoTable AIn (DoType 0x16)

BoIndex: 0x00
Zykluszeit: 1000ms (fest)
Sperrzeit (Inhibittime): –
Datenlänge: 8Byte

Byte
Beschreibung
Byte0..1 Analogwert (gefiltert) von Kanal0
Byte2..3 Analogwert (gefiltert) von Kanal1
Byte4..5 Analogwert (gefiltert) von Kanal2
Byte6..7 Analogwert (gefiltert) von Kanal3

BoIndex: 0x01

Byte
Beschreibung
Byte0..1 Analogwert (gefiltert) von Kanal4
Byte2..3 Analogwert (gefiltert) von Kanal5
Byte4..5 Analogwert (gefiltert) von Kanal6
Byte6..7 Analogwert (gefiltert) von Kanal7

BoIndex: 0x02

Byte
Beschreibung
Byte0..1 Analogwert (gefiltert) von Kanal8
Byte2..3 Analogwert (gefiltert) von Kanal9
Byte4..5 Analogwert (gefiltert) von Kanal10
Byte6..7 Analogwert (gefiltert) von Kanal11

BoIndex: 0x03

Byte
Beschreibung
Byte0..1 Analogwert (gefiltert) von Kanal12
Byte2..3 Analogwert (gefiltert) von Kanal13
Byte4..5 Analogwert (gefiltert) von Kanal14
Byte6..7 Analogwert (gefiltert) von Kanal15