88 lines
3.2 KiB
Plaintext
88 lines
3.2 KiB
Plaintext
=== FB 91: MSensoren [STL] ===
|
|
INTERFACE:
|
|
Input:
|
|
ESensor : Bool // Eingang des zu überwachenden Sensors
|
|
T_Ein : Int := 1 // Einschaltzeitverzögerung (*100ms)
|
|
T_Aus : Int := 5 // Ausschaltzeitverzögerung (*100ms)
|
|
tein_aktiv : Bool := TRUE // Einschaltzeit aktivieren
|
|
taus_aktiv : Bool := TRUE // Ausschaltzeit aktivieren
|
|
Output:
|
|
InOut:
|
|
Static:
|
|
Stat : "USensor_Ein_Aus" // Status des Endschalters
|
|
Temp:
|
|
Constant:
|
|
|
|
--- NW 1: Zeitwert löschen ---
|
|
A ESensor
|
|
A Stat.B_Akt
|
|
O
|
|
AN ESensor
|
|
AN Stat.B_Akt
|
|
JCN Nw02
|
|
|
|
|
|
tdel: L 0 // Zeitwert löschen
|
|
T Stat.T_Zelle
|
|
|
|
BEU
|
|
|
|
--- NW 2: Einschaltzeit abgelaufen ? ---
|
|
Nw02: L Stat.T_Ein_Akt // Gewollter Zeitwert
|
|
L 9999 // angegeben ?
|
|
<>I // Ja !
|
|
JC w020
|
|
|
|
L T_Ein // Sollwert übergeben
|
|
T Stat.T_Ein_Akt // Gewollter Zeitwert
|
|
|
|
w020: A Stat.B_Akt
|
|
JC Nw03
|
|
|
|
L Stat.T_Zelle // Aktueller Zeitwert
|
|
L Stat.T_Ein_Akt // Gewollter Zeitwert erreicht ?
|
|
>=I
|
|
S Stat.B_Akt // Sensor ist nach Einschaltzeit aktiv
|
|
JC tdel // Zeit löschen
|
|
|
|
JU Nw04
|
|
|
|
--- NW 3: Ausschaltzeit abgelaufen ? ---
|
|
Nw03: L Stat.T_Aus_Akt // Gewollter Zeitwert
|
|
L 9999 // angegeben ?
|
|
<>I // Ja !
|
|
JC w030
|
|
|
|
L T_Aus // Sollwert übergeben
|
|
T Stat.T_Aus_Akt // Gewollter Zeitwert
|
|
|
|
w030: AN Stat.B_Akt
|
|
JC Nw04
|
|
|
|
L Stat.T_Zelle // Aktueller Zeitwert
|
|
L Stat.T_Aus_Akt // Gewollter Zeitwert erreicht ?
|
|
>=I
|
|
R Stat.B_Akt // Sensor ist nach Ausschaltzeit nicht mehr aktiv
|
|
JC tdel // Zeit löschen
|
|
|
|
|
|
--- NW 4: Zeit läuft ---
|
|
Nw04: AN "100ms-Impuls" // nur als Impuls
|
|
O
|
|
AN Stat.B_Akt // Einschaltzeit läuft
|
|
AN tein_aktiv // aber Zeit einfrieren
|
|
O
|
|
A Stat.B_Akt // Ausschaltzeit läuft
|
|
AN taus_aktiv // aber Zeit einfrieren
|
|
BEC
|
|
|
|
L Stat.T_Zelle
|
|
L "MW2"
|
|
+I
|
|
T Stat.T_Zelle
|
|
|
|
|
|
--- NW 5: Ende ---
|
|
BE
|
|
|