AWL Bausteine aus TIA-Portal Projekt in Workspace

This commit is contained in:
2026-07-08 10:12:56 +02:00
parent 03a2866cd8
commit 32729b3db5
242 changed files with 46463 additions and 83655 deletions
@@ -1,87 +1,94 @@
=== 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:
FUNCTION_BLOCK "MSensoren"
TITLE = Ein-/Ausschaltverzögerung für Entprellung der Sensoren
{ S7_Optimized_Access := 'FALSE' }
AUTHOR : EAN
VERSION : 0.1
VAR_INPUT
ESensor { ExternalWritable := 'False'} : Bool; // Eingang des zu überwachenden Sensors
T_Ein { ExternalWritable := 'False'} : Int := 1; // Einschaltzeitverzögerung (*100ms)
T_Aus { ExternalWritable := 'False'} : Int := 5; // Ausschaltzeitverzögerung (*100ms)
tein_aktiv { ExternalWritable := 'False'} : Bool := TRUE; // Einschaltzeit aktivieren
taus_aktiv { ExternalWritable := 'False'} : Bool := TRUE; // Ausschaltzeit aktivieren
END_VAR
--- NW 1: Zeitwert löschen ---
A ESensor
A Stat.B_Akt
O
AN ESensor
AN Stat.B_Akt
JCN Nw02
VAR
Stat { ExternalWritable := 'False'} : "USensor_Ein_Aus"; // Status des Endschalters
END_VAR
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
BEGIN
NETWORK
TITLE = Zeitwert löschen
U #ESensor;
U #Stat.B_Akt;
O;
UN #ESensor;
UN #Stat.B_Akt;
SPBN Nw02;
--- 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
tdel: L 0;//Zeitwert löschen
T #Stat.T_Zelle;
L Stat.T_Zelle
L "MW2"
+I
T Stat.T_Zelle
BEA;
NETWORK
TITLE = Einschaltzeit abgelaufen ?
Nw02: L #Stat.T_Ein_Akt;//Gewollter Zeitwert
L 9999;//angegeben ?
<>I;//Ja !
SPB w020;
L #T_Ein;//Sollwert übergeben
T #Stat.T_Ein_Akt;//Gewollter Zeitwert
--- NW 5: Ende ---
BE
w020: U #Stat.B_Akt;
SPB 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
SPB tdel;//Zeit löschen
SPA Nw04;
NETWORK
TITLE = Ausschaltzeit abgelaufen ?
Nw03: L #Stat.T_Aus_Akt;//Gewollter Zeitwert
L 9999;//angegeben ?
<>I;//Ja !
SPB w030;
L #T_Aus;//Sollwert übergeben
T #Stat.T_Aus_Akt;//Gewollter Zeitwert
w030: UN #Stat.B_Akt;
SPB 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
SPB tdel;//Zeit löschen
NETWORK
TITLE = Zeit läuft
Nw04: UN "100ms-Impuls";//nur als Impuls
O;
UN #Stat.B_Akt;//Einschaltzeit läuft
UN #tein_aktiv;//aber Zeit einfrieren
O;
U #Stat.B_Akt;//Ausschaltzeit läuft
UN #taus_aktiv;//aber Zeit einfrieren
BEB;
L #Stat.T_Zelle;
L "MW2";
+I;
T #Stat.T_Zelle;
NETWORK
TITLE = Ende
BE;
END_FUNCTION_BLOCK