Files

204 lines
6.8 KiB
Plaintext

=== FB 92: MZylinder [STL] ===
INTERFACE:
Input:
Automatik : Bool // Automatikbetrieb ist aktiv
Handbetrieb : Bool // Handbetrieb ist aktiv
T_Ast : Int := 5 // Zeit bis AST erreicht ist (*100ms)
T_Gst : Int := 5 // Zeit bis GST erreicht ist (*100ms)
Output:
ZylAst : Bool // Vorwärts-Ausgang des Antriebs
ZylGst : Bool // Rückwärts-Ausgang des Antriebs
InOut:
Static:
Stat : "UZylinder"
Temp:
Constant:
--- NW 1: Zeitwert löschen ---
A ZylAst // Zylinder fährt nach AST
A(
O Stat.B_AST // Hat Endstellung erreicht
ON Stat.Old_Ast // Fuhr letzten Zyklus anders
)
O
AN ZylAst // Zylinder fährt nach GST
A(
O Stat.B_GST // Hat Endstellung erreicht
O Stat.Old_Ast // Fuhr letzten Zyklus anders
)
JCN Nw02
tdel: L 0 // Zeitwert löschen
T Stat.T_Zelle
A ZylAst // Zylinder fährt nach AST
= Stat.Old_Ast // Fuhr letzten Zyklus nach AST
JU Nw05
--- NW 2: AST-Erreichtzeit abgelaufen ? ---
Nw02: L Stat.T_AST_Akt // Gewollter Zeitwert
L 9999 // angegeben ?
<>I // Ja !
JC w020
L T_Ast // Sollwert übergeben
T Stat.T_AST_Akt // Gewollter Zeitwert
w020: A ZylAst // Zylinder fährt nach AST ?
JCN en02
SET
R Stat.B_GST
L Stat.T_Zelle // Aktueller Zeitwert
L Stat.T_AST_Akt // Gewollter Zeitwert erreicht ?
>=I
S Stat.B_AST // Zylinder hat AST erreicht
JC tdel // Zeit nullen
JU Nw03
en02: AN Stat.Typ5_3 // Zylinder hält seine Stellung !
R Stat.B_AST
--- NW 3: GST-Erreichtzeit abgelaufen ? ---
Nw03: L Stat.T_GST_Akt // Gewollter Zeitwert
L 9999 // angegeben ?
<>I // Ja !
JC w030
L T_Gst // Sollwert übergeben
T Stat.T_GST_Akt // Gewollter Zeitwert
w030: A( // Zylinder fährt nach GST ?
O Stat.Typ5_2 // Zylinder mit 2-facher Ansteuerung
O Stat.Typ5_3
)
A ZylGst
O
A Stat.Typ3_2 // Zylinder mit 1-facher Ansteuerung
AN ZylAst
JCN en03
SET
R Stat.B_AST
L Stat.T_Zelle // Aktueller Zeitwert
L Stat.T_GST_Akt // Gewollter Zeitwert erreicht ?
>=I
S Stat.B_GST // Zylinder hat GST erreicht
JC tdel // Zeit nullen
JU Nw04
en03: AN Stat.Typ5_3 // Zylinder hält seine Stellung !
R Stat.B_GST
--- NW 4: Zeit läuft ---
Nw04: A( // Zylinder fährt nach GST ?
O Stat.Typ5_2 // Zylinder mit 2-facher Ansteuerung
O Stat.Typ5_3
)
AN ZylGst // Zylinder wird nicht angesteuert
AN ZylAst
ON "100ms-Impuls" // nur als Impuls
JC Nw05
L Stat.T_Zelle
L "MW2" // 100ms-Takte
+I
T Stat.T_Zelle
--- NW 5: Undefinierte Zustände / Befehle ---
Nw05: A Automatik // Automatik + Hand aktiv
A Handbetrieb
O
AN Automatik // keine Betriebsart
AN Handbetrieb
O
A Stat.Ast // Arbeitsstellung- + Grundstellungfahren aktiv
A Stat.Gst
O
AN Stat.Typ3_2 // Undefinierter Ventil-Typ
AN Stat.Typ5_2
AN Stat.Typ5_3
O
A Stat.Typ3_2
A(
O Stat.Typ5_2
O Stat.Typ5_3
)
O
A Stat.Typ5_2
A Stat.Typ5_3
JCN en06 // Zylinderstellung bleibt eingefroren
A Stat.Typ5_3 // Zylinder hält seine Stellung !
R Stat.Ast // Bewegungsbits löschen
R Stat.Gst
BEU
en06: NOP 0
--- NW 6: Zylinder auf Arbeitstellung fahren ---
A Stat.Ast
= ZylAst
--- NW 7: Zylinder auf Grundstellung fahren ---
A(
O Stat.Typ5_2
O Stat.Typ5_3
)
A Stat.Gst
= ZylGst
--- NW 8: Daten, die zurückgesetzt werden ---
A Stat.Typ5_3 // Zylinder hält seine Stellung !
R Stat.Ast // Bewegungsbits löschen
R Stat.Gst
A Stat.Typ3_2
R Stat.Gst // Es gibt kein GST fahren !
--- NW 9: Ausgänge übergeben an OP übergeben ---
A ZylGst
= Stat.OP_Out_GST
A ZylAst
= Stat.OP_Out_AST
--- NW 10: Statistik ---
A ZylAst
Rise Stat.FP_AST
JCN AST2
L Stat.Statistik.AST_Schaltungen
L DINT#1
+D
T Stat.Statistik.AST_Schaltungen
AST2: A ZylGst
A Stat.Typ5_3
Rise Stat.FP_AST2
JCN StatEnde
L Stat.Statistik.AST2_Schaltungen
L DINT#1
+D
T Stat.Statistik.AST2_Schaltungen
StatEnde: NOP 0
--- NW 11: Ende ---
BE