Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/HundM_awl
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
=== InstanceDB 199: DHWtoAMR_Antriebe [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
MA0203 : "MAntrieb_PowerSave"
|
||||
MA0204 : "MAntrieb_PowerSave"
|
||||
MA0205 : "MAntrieb_PowerSave"
|
||||
MA0130 : "MAntrieb_PowerSave"
|
||||
MA0131 : "MAntrieb_PowerSave"
|
||||
MA0116 : "MAntrieb_PowerSave"
|
||||
@@ -0,0 +1,18 @@
|
||||
=== InstanceDB 190: DHWtoAMR_Sensoren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
An_BG3065 : "MSensoren"
|
||||
Stau_BG3062 : "MSensoren"
|
||||
Stau_BG3006 : "MSensoren"
|
||||
Stau_BG3017 : "MSensoren"
|
||||
Stau_BG3002 : "MSensoren"
|
||||
Stau_BG3001 : "MSensoren"
|
||||
Stau_BG3561 : "MSensoren"
|
||||
Stau_BG3557 : "MSensoren"
|
||||
Stau_BG3563 : "MSensoren"
|
||||
Stau_BG3564 : "MSensoren"
|
||||
Stau_BG3566 : "MSensoren"
|
||||
Stau_BG3567 : "MSensoren"
|
||||
@@ -0,0 +1,12 @@
|
||||
=== InstanceDB 192: DHWtoAMR_Zylinder [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3061 : "MZylinder"
|
||||
Schleuse_3005 : "MZylinder"
|
||||
Schleuse_3004 : "MZylinder"
|
||||
Schleuse_3000 : "MZylinder"
|
||||
Schleuse_3562 : "MZylinder"
|
||||
Schleuse_3565 : "MZylinder"
|
||||
@@ -0,0 +1,113 @@
|
||||
=== FB 199: HWtoAMR_Antriebe [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
MA0203 : "MAntrieb_PowerSave"
|
||||
MA0204 : "MAntrieb_PowerSave"
|
||||
MA0205 : "MAntrieb_PowerSave"
|
||||
MA0130 : "MAntrieb_PowerSave"
|
||||
MA0131 : "MAntrieb_PowerSave"
|
||||
MA0116 : "MAntrieb_PowerSave"
|
||||
Temp:
|
||||
Auto : Bool // Automatik Linie ist aktiv
|
||||
Hand : Bool // Hand Linie ist aktiv
|
||||
BereichErr : Bool // Bereichsstörung -> Antrieb stoppen
|
||||
QKontroll : Bool // Frequenzumrichter schon 3s Netz EIN
|
||||
FuKontroll : Bool // Frequenzumrichter schon 3s Netz EIN
|
||||
Quit : Bool // Motorschutz-Störung quittieren
|
||||
Qok : Bool // Motorschutz ok
|
||||
Jog1 : Bool // Geschwindigkeit 1
|
||||
Jog2 : Bool // Geschwindigkeit 2
|
||||
Betrieb : Bool // Betriebsart aktiv
|
||||
FC105_RET : Word // Returnwert von FC105
|
||||
Antrieb1 : Bool // Antrieb dazuschalten
|
||||
Antrieb2 : Bool // Antrieb dazuschalten
|
||||
F1 : Bool // Geschwindigkeit 1 aktiviert
|
||||
F2 : Bool // Geschwindigkeit 2 aktiviert
|
||||
F3 : Bool // Geschwindigkeit 3 aktiviert
|
||||
Constant:
|
||||
|
||||
--- NW 1: Übergabe des Bereichstatus System UC061/A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
CLR
|
||||
= Hand
|
||||
|
||||
A "DAMR_Bereich".A01_UC061.BereichErr
|
||||
O "DAMR_Bereich".A01_UZ6102.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6103.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6104.Area_Stop
|
||||
= BereichErr
|
||||
|
||||
AN BereichErr
|
||||
L S5T#1S
|
||||
OnDelay "T192"
|
||||
|
||||
A "T192"
|
||||
= QKontroll
|
||||
= FuKontroll
|
||||
|
||||
A "DAMR_Bereich".A01_UC061.StOk_aktiv
|
||||
= Quit
|
||||
|
||||
|
||||
--- NW 2: MA0203 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0203", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=120, Antriebrueck:=?, Antriebvor:="MA0203", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0203, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 3: MA0204 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0204", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=180, Antriebrueck:=?, Antriebvor:="MA0204", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0204, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 4: MA0205 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0205", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0205", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0205, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 5: Übergabe des Bereichstatus System UH06_Halle 4/A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
CLR
|
||||
= Hand
|
||||
|
||||
A "DAMR_Bereich".A01_UH06_Halle4.BereichErr
|
||||
= BereichErr
|
||||
|
||||
AN BereichErr
|
||||
L S5T#1S
|
||||
OnDelay "T191"
|
||||
|
||||
A "T191"
|
||||
= QKontroll
|
||||
= FuKontroll
|
||||
|
||||
A "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= Quit
|
||||
|
||||
|
||||
--- NW 6: MA0130 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0130", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0130", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0130, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 7: MA0131 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0131", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0131", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0131, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 8: MA0116 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0116", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0116", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0116, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 9: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
=== FB 190: HWtoAMR_Sensoren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
An_BG3065 : "MSensoren" // Stau am Sensor Einfahrt MA0203
|
||||
Stau_BG3062 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3006 : "MSensoren" // Stau am Sensor Einfahrt MA0205
|
||||
Stau_BG3017 : "MSensoren" // Stau am Sensor Mitte MA0205
|
||||
Stau_BG3002 : "MSensoren" // Stau hinter BST 3
|
||||
Stau_BG3001 : "MSensoren" // Stau hinter BST 3
|
||||
Stau_BG3561 : "MSensoren" // Stau am Sensor Einfahrt MA0060
|
||||
Stau_BG3557 : "MSensoren" // Stau am Sensor Einfahrt MA0060
|
||||
Stau_BG3563 : "MSensoren" // Stau am Sensor Einfahrt MA0116
|
||||
Stau_BG3564 : "MSensoren" // Stau am Sensor Gefälle vor BST 4
|
||||
Stau_BG3566 : "MSensoren" // Stau am Sensor Gefälle nach BST 4
|
||||
Stau_BG3567 : "MSensoren" // Stau am Sensor Einfahrt MA0061
|
||||
Temp:
|
||||
T_Ein : Int // Vorgabe Einschaltverzögerung
|
||||
T_Aus : Int // Zwischenspeicher Ausschaltverzögerung
|
||||
F1 : Bool // Geschwindigkeit 1 aktiviert
|
||||
F2 : Bool // Geschwindigkeit 2 aktiviert
|
||||
F3 : Bool // Geschwindigkeit 3 aktiviert
|
||||
ESensor : Bool // Sensoren
|
||||
Antrieb : Bool
|
||||
VReal : Real // GeschwindigkeitinReal
|
||||
Zeit : Int // Zeit für Ausschaltverzögerung LT1100
|
||||
Aktiv : Bool // Zeit aktivieren
|
||||
Constant:
|
||||
|
||||
--- NW 1: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3065", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 2: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3062", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 3: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3006", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 4: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3017", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 5: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3002", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 6: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3001", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 7: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3561", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 8: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3561", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 9: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3563", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 10: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3564", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 11: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3566", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 12: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3567", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 13: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
=== FB 192: HWtoAMR_Zylinder [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3061 : "MZylinder" //
|
||||
Schleuse_3005 : "MZylinder"
|
||||
Schleuse_3004 : "MZylinder"
|
||||
Schleuse_3000 : "MZylinder"
|
||||
Schleuse_3562 : "MZylinder"
|
||||
Schleuse_3565 : "MZylinder" //
|
||||
Temp:
|
||||
Auto : Bool // Automatik ist aktiv
|
||||
Hand : Bool // Hand ist aktiv
|
||||
ZylAst : Bool // Zylinder ansteuern
|
||||
Constant:
|
||||
|
||||
--- NW 1: Übergabe des Bereichstatus System UC061/A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
A "DAMR_Bereich".A01_UC061.BereichErr
|
||||
O "DAMR_Bereich".A01_UZ6102.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6103.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6104.Area_Stop
|
||||
JC Next // Zylinder-Stellung nicht mehr ändern
|
||||
|
||||
|
||||
--- NW 2: Schleuse_3061 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3061", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 3: Schleuse_3005 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3005", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 4: Schleuse_3004 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3004", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 5: Übergabe des Bereichstatus System UH06 / A01 ---
|
||||
Next: A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
A "DAMR_Bereich".A01_UH06_Halle4.BereichErr
|
||||
JC Next2 // Zylinder-Stellung nicht mehr ändern
|
||||
|
||||
|
||||
--- NW 6: Schleuse_3000 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3000", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 7: Schleuse_3562 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3562", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 8: Schleuse_3565 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3565", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 9: Ende ---
|
||||
Next2: BE
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
=== FC 100: HWTtoAMR_Bereich [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Baustein-Aufrufe ---
|
||||
CALL FB "HWtoAMR_Sensoren" ,
|
||||
|
||||
CALL FB "HWtoAMROmniFahren" ,
|
||||
|
||||
CALL FB "HWtoAMR_Zylinder" ,
|
||||
|
||||
CALL FB "HWtoAMR_Antriebe" ,
|
||||
|
||||
|
||||
--- NW 2: Ende ---
|
||||
BE
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
=== InstanceDB 128: DHWtoAMROmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Frei200 : Array[1..100] of Int
|
||||
Schleuse_3061 : "MHMOmniSchleuse_Plus"
|
||||
Schleuse_3005 : "MHMOmniSchleuse"
|
||||
Schleuse_3004 : "MHMOmniSchleuse"
|
||||
Schleuse_3000 : "MHMOmniSchleuse"
|
||||
Bereich_3555 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3562 : "MHMOmniSchleuse"
|
||||
Bereich_3556 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3565 : "MHMOmniSchleuse"
|
||||
Übergang_3063 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
+214
@@ -0,0 +1,214 @@
|
||||
=== FB 128: HWtoAMROmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Frei200 : Array[1..100] of Int
|
||||
Schleuse_3061 : "MHMOmniSchleuse_Plus"
|
||||
Schleuse_3005 : "MHMOmniSchleuse"
|
||||
Schleuse_3004 : "MHMOmniSchleuse"
|
||||
Schleuse_3000 : "MHMOmniSchleuse"
|
||||
Bereich_3555 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3562 : "MHMOmniSchleuse"
|
||||
Bereich_3556 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3565 : "MHMOmniSchleuse"
|
||||
Übergang_3063 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_vor_Schleuse : Bool
|
||||
B_nach_Schleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Antrieb_nicht_stoppen : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// HW>AMR-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_3061.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3005.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3004.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3000.Dyn.Sk.Auto_akt
|
||||
= Bereich_3555.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3562.Dyn.Sk.Auto_akt
|
||||
= Bereich_3556.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3565.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UC061.BereichErr
|
||||
= Schleuse_3061.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3005.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3004.Dyn.Sk.Bereich_ok
|
||||
AN "DAMR_Bereich".A01_UH06_Halle4.BereichErr
|
||||
= Schleuse_3000.Dyn.Sk.Bereich_ok
|
||||
= Bereich_3555.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3562.Dyn.Sk.Bereich_ok
|
||||
= Bereich_3556.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3565.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren UZ6104 ---
|
||||
A "DAMR_Bereich".A01_UZ6104.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UC061.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 3: Übergang 3063 (Übernahme von Outbound / UH07) ---
|
||||
// Schnittstelle von Outbund:
|
||||
A "DSchnittstelle_zu_Outbound".From_UH07.MA0203_A_start
|
||||
S "DHWtoAMR_Antriebe".MA0203.Stat.A_start
|
||||
|
||||
A "DSchnittstelle_zu_Outbound".From_UH07.MA0203_A_vor
|
||||
S "DHWtoAMR_Antriebe".MA0203.Stat.A_vor
|
||||
|
||||
A "DSchnittstelle_zu_Outbound".From_UH07.MA0203_A_start
|
||||
O "DSchnittstelle_zu_Outbound".From_UH07.MA0203_A_vor
|
||||
= B_vor_Schleuse
|
||||
|
||||
// Schnittstelle zu Outbound:
|
||||
A "MA0203"
|
||||
= "DSchnittstelle_zu_Outbound".To_UH07.MA0203_aktiv
|
||||
|
||||
A Schleuse_3061.Dyn.Sk.Bereich_ok // Kein Sensor in UH06 verbaut!
|
||||
A Schleuse_3061.Dyn.Sk.Auto_akt
|
||||
AN "Übergang_3063"."Am_Übergang".Stat.B_Akt
|
||||
= "DSchnittstelle_zu_Outbound".To_UH07.MA0203_kein_Stau
|
||||
|
||||
CALL FB "None" , (ErrQuit:=ErrQuit, B_Anfang:=?, B_Am_Übergang:="BG3063", B_Stau_Antrieb_plus:="DHWtoAMR_Sensoren".Stau_BG3062.Stat.B_Akt, Antrieb_aktiv:="MA0203", Antrieb_plus_aktiv:="MA0204", Antrieb_vor:="DHWtoAMR_Antriebe".MA0203.Stat.A_vor, Antrieb_start:="DHWtoAMR_Antriebe".MA0203.Stat.A_start, Antrieb_stop:="DHWtoAMR_Antriebe".MA0203.Stat.Stop_vor, Antrieb_plus_vor:="DHWtoAMR_Antriebe".MA0204.Stat.A_vor, Antrieb_plus_start:="DHWtoAMR_Antriebe".MA0204.Stat.A_start)
|
||||
|
||||
|
||||
--- NW 4: Störungen anzeigen UZ6104 ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ6104.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UC061.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 5: Störungen quittieren UZ6102 ---
|
||||
A "DAMR_Bereich".A01_UZ6102.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UC061.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 6: Schleuse 3061 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3061, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3062", B_InSchleuse:="BG3061", B_Zähl:="BG3006", B_Stau_raus:="DHWtoAMR_Sensoren".Stau_BG3006.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0204", Antrieb_plus_aktiv:="MA0205", Schleuse_geöffnet:="MB3061", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoAMR_Zylinder".Schleuse_3061.Stat.Ast, Error:=DB608.DBW212, Antrieb_Schleuse_vor:="DHWtoAMR_Antriebe".MA0204.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoAMR_Antriebe".MA0204.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoAMR_Antriebe".MA0204.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoAMR_Antriebe".MA0204.Stat.A_PS, Antrieb_plus_vor:="DHWtoAMR_Antriebe".MA0205.Stat.A_vor, Antrieb_plus_start:="DHWtoAMR_Antriebe".MA0205.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Störungen anzeigen UZ6102 ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ6102.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UC061.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 8: Störungen quittieren UZ6102/6101 ---
|
||||
A "DAMR_Bereich".A01_UZ6102.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UC061.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 9: Schleuse 3005 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3005, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3006", B_InSchleuse:="BG3005", B_AusSchleuse:="BG3017", B_Stau_raus:="DHWtoAMR_Sensoren".Stau_BG3017.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0205", Antrieb_plus_aktiv:=?, Schleuse_geöffnet:="MB3005", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoAMR_Zylinder".Schleuse_3005.Stat.Ast, Error:=DB608.DBW204, Antrieb_Schleuse_vor:="DHWtoAMR_Antriebe".MA0205.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoAMR_Antriebe".MA0205.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoAMR_Antriebe".MA0205.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoAMR_Antriebe".MA0205.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // da schon oben verwendet | da schon oben verwendet
|
||||
|
||||
|
||||
--- NW 10: Störungen anzeigen UZ6102/6101 ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ6102.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UC061.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 11: Störungen quittieren UZ6101 ---
|
||||
A "DAMR_Bereich".A01_UC061.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 12: Schleuse 3004 (vor BST 3) ---
|
||||
AN "6_HMI_Err_UH06_AMR".System.Gesamt_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST3_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST3_Geschlossen
|
||||
AN "6_HMI_Err_UH06_AMR".System."BST3_Störung"
|
||||
A Schleuse_3000.Dyn.Sk.Bereich_ok
|
||||
= Fahren_Ok
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3004, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3017", B_InSchleuse:="BG3004", B_AusSchleuse:="BG3002", B_Stau_raus:="DHWtoAMR_Sensoren".Stau_BG3002.Stat.B_Akt, Start_Ok:=Fahren_Ok, Antrieb_Schleuse_aktiv:="MA0205", Antrieb_plus_aktiv:=?, Schleuse_geöffnet:="MB3004", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoAMR_Zylinder".Schleuse_3004.Stat.Ast, Error:=DB608.DBW202, Antrieb_Schleuse_vor:="DHWtoAMR_Antriebe".MA0205.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoAMR_Antriebe".MA0205.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoAMR_Antriebe".MA0205.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoAMR_Antriebe".MA0205.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Kein Antrieb
|
||||
|
||||
|
||||
--- NW 13: Störungen anzeigen UZ6101 ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UC061.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 14: Störungen quittieren UZ0620 ---
|
||||
A "DAMR_Bereich".A01_UZ0620.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 15: Schleuse 3000 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3000, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3002", B_InSchleuse:="BG3000", B_AusSchleuse:="BG3001", B_Stau_raus:="DHWtoAMR_Sensoren".Stau_BG3001.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0130", Schleuse_geöffnet:="MB3000", RestZeit_Bereich_plus:=Bereich_3555.Dyn.Restzeit, Y_Schleuse_Auf:="DHWtoAMR_Zylinder".Schleuse_3000.Stat.Ast, Error:=DB608.DBW200, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:=Bereich_3555.Dyn.Status.Trolley_kommt_in_Bereich, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Kein Antrieb
|
||||
|
||||
|
||||
--- NW 16: Bereich 3555 ---
|
||||
A "BG3001"
|
||||
A "MB3000"
|
||||
= B_vor_Schleuse
|
||||
|
||||
A "DHWtoAMR_Sensoren".Stau_BG3561.Stat.B_Akt
|
||||
O "DHWtoAMR_Sensoren".Stau_BG3557.Stat.B_Akt
|
||||
= Stau_raus
|
||||
|
||||
CALL FB "None" , (Bereichs_Nr:=3555, ErrQuit:=ErrQuit, B_BereichsAnfang:=B_vor_Schleuse, B_BereichsEnde:="BG3555", B_Zähl:="BG3557", B_Stau_raus:=Stau_raus, Start_Ok:=1, Antrieb_Bereich_aktiv:="MA0130", Antrieb_plus_aktiv:="MA0131", RestZeit_Bereich_plus:=?, Antrieb_Bereich_vor:="DHWtoAMR_Antriebe".MA0130.Stat.A_vor, Antrieb_Bereich_stop:="DHWtoAMR_Antriebe".MA0130.Stat.Stop_vor, Error:=DB608.DBW172, Antrieb_Bereich_start:="DHWtoAMR_Antriebe".MA0130.Stat.A_start, Antrieb_plus_vor:="DHWtoAMR_Antriebe".MA0131.Stat.A_vor, Antrieb_plus_start:="DHWtoAMR_Antriebe".MA0131.Stat.A_start, Antrieb_minus_vor:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 17: Schleuse 3562 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3562, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3561", B_InSchleuse:="BG3562", B_AusSchleuse:="BG3563", B_Stau_raus:="DHWtoAMR_Sensoren".Stau_BG3563.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0131", Antrieb_plus_aktiv:="MA0116", Schleuse_geöffnet:="MB3562", RestZeit_Bereich_plus:=Bereich_3556.Dyn.Restzeit, Y_Schleuse_Auf:="DHWtoAMR_Zylinder".Schleuse_3562.Stat.Ast, Error:=DB608.DBW358, Antrieb_Schleuse_vor:="DHWtoAMR_Antriebe".MA0131.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoAMR_Antriebe".MA0131.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoAMR_Antriebe".MA0131.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoAMR_Antriebe".MA0131.Stat.A_PS, Antrieb_plus_vor:=Bereich_3556.Dyn.Status.Trolley_kommt_in_Bereich, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 18: Bereich 3556 ---
|
||||
A "BG3563"
|
||||
A "MB3562"
|
||||
= B_vor_Schleuse
|
||||
|
||||
CALL FB "None" , (Bereichs_Nr:=3556, ErrQuit:=ErrQuit, B_BereichsAnfang:=B_vor_Schleuse, B_BereichsEnde:="BG3556", B_Zähl:="BG3564", B_Stau_raus:="DHWtoAMR_Sensoren".Stau_BG3564.Stat.B_Akt, Start_Ok:=1, Antrieb_Bereich_aktiv:="MA0116", Antrieb_plus_aktiv:=1, RestZeit_Bereich_plus:=?, Antrieb_Bereich_vor:="DHWtoAMR_Antriebe".MA0116.Stat.A_vor, Antrieb_Bereich_stop:="DHWtoAMR_Antriebe".MA0116.Stat.Stop_vor, Error:=DB608.DBW174, Antrieb_Bereich_start:="DHWtoAMR_Antriebe".MA0116.Stat.A_start, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, Antrieb_minus_vor:="DHWtoAMR_Antriebe".MA0131.Stat.A_vor, hStOk:=ErrAnz) // Ohne Antrieb
|
||||
|
||||
|
||||
--- NW 19: Schleuse 3565 (vor BST 4) ---
|
||||
AN "6_HMI_Err_UH06_AMR".System.Gesamt_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST4_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST4_Geschlossen
|
||||
AN "6_HMI_Err_UH06_AMR".System."BST4_Störung"
|
||||
= Fahren_Ok
|
||||
|
||||
A "DHWtoAMR_Sensoren".Stau_BG3566.Stat.B_Akt
|
||||
O "DHWtoAMR_Sensoren".Stau_BG3567.Stat.B_Akt
|
||||
= Stau_raus
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3565, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3564", B_InSchleuse:="BG3565", B_AusSchleuse:="BG3566", B_Stau_raus:=Stau_raus, Start_Ok:=Fahren_Ok, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0061", Schleuse_geöffnet:="MB3565", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoAMR_Zylinder".Schleuse_3565.Stat.Ast, Error:=DB608.DBW360, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0061.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0061.Stat.A_start, hStOk:=ErrAnz) // ohne Antrieb | Ohne Antrieb
|
||||
|
||||
|
||||
--- NW 20: Störungen anzeigen UZ0620 ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0620.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 21: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
=== FC 181: HWtoAMRZielFC [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Ziel_hex : Word
|
||||
Ziel_int : Int
|
||||
Zielebene : Word
|
||||
Error : Byte
|
||||
Position : Int
|
||||
Lager_DB : Int
|
||||
Lager_DW : Int
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
AR1Start : DInt // Startwert mit Offset 0
|
||||
SSDW : Int
|
||||
EndZiel : Word
|
||||
Variante : Int
|
||||
AbrufID : DInt
|
||||
Fahrlisten_TrolleyID : DInt
|
||||
Fahrlisten_AbrufID : DInt
|
||||
Fahrlisten_Lager : Int
|
||||
Trolley_unbekannt : Bool // Trolley ist nicht in DL
|
||||
Express_Abruf : Bool
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Rückmeldung ---
|
||||
SET // Rückmeldungen erst mal resetten
|
||||
R "M180.6" // Weiterfahrt von Ziel-FC erlaubt
|
||||
|
||||
|
||||
--- NW 2: Schleuse 3004: (BST 3) ---
|
||||
L "MW190"
|
||||
L 3004 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC X3004E
|
||||
|
||||
SET
|
||||
S "M180.6" // Weiterfahrt ist erlaubt
|
||||
|
||||
BEU
|
||||
|
||||
X3004E: NOP 0
|
||||
|
||||
|
||||
--- NW 3: Schleuse 3565: (BST 4) ---
|
||||
L "MW190"
|
||||
L 3565 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC X3565E
|
||||
|
||||
SET
|
||||
S "M180.6" // Weiterfahrt ist erlaubt
|
||||
|
||||
BEU
|
||||
|
||||
X3565E: NOP 0
|
||||
|
||||
|
||||
--- NW 4: Ende ---
|
||||
BE
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1110: DL10LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1111: DL11LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1112: DL12LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1101: DL1LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1102: DL2LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1103: DL3LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1104: DL4LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1105: DL5LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1106: DL6LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1107: DL7LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1108: DL8LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
=== GlobalDB 1109: DL9LeerTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA01 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Arbeitsplatz : Array[1..8] of Struct // Weiche vor AMR (PS5)
|
||||
Position : Word
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
@@ -0,0 +1,80 @@
|
||||
=== FC 1100: Arbeitsplätze [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Ohne PC sind alle ABPs aktiviert ---
|
||||
A "SGes".Ohne_PC_Fahren
|
||||
S "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
S "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
S "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
S "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
S "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
S "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
S "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
S "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
|
||||
|
||||
--- NW 2: Sensoren ---
|
||||
CALL FB "Arbeitsplätze_Sensoren" ,
|
||||
|
||||
|
||||
--- NW 3: Simulation zum Ausfahren aus AMRs ---
|
||||
CALL FC "Simulation_AMR_Trolley_starten"
|
||||
|
||||
|
||||
--- NW 4: Zuführung ---
|
||||
CALL FB "Zuführung_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 5: Pickstation 5 ---
|
||||
CALL FB "PS5_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 6: Pickstation 4 ---
|
||||
CALL FB "PS4_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 7: Pickstation 3 ---
|
||||
CALL FB "PS3_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 8: Pickstation 2 ---
|
||||
CALL FB "PS2_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 9: Pickstation 1 ---
|
||||
CALL FB "PS1_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 10: MultiPurposestation 3 ---
|
||||
CALL FB "MPS3_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 11: MultiPurposestation 2 ---
|
||||
CALL FB "MPS2_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 12: MultiPurposestation 1 ---
|
||||
CALL FB "MPS1_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 13: Abführung ---
|
||||
CALL FB "Abführung_OmniFahren" ,
|
||||
|
||||
|
||||
--- NW 14: Last ---
|
||||
CALL FB "Arbeitsplätze_Zylinder" ,
|
||||
|
||||
CALL FB "Arbeitsplätze_Antriebe" ,
|
||||
|
||||
|
||||
|
||||
--- NW 15: Ende ---
|
||||
BE
|
||||
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
=== InstanceDB 1128: DMPS1_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
=== InstanceDB 1127: DMPS2_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
=== InstanceDB 1126: DMPS3_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
=== InstanceDB 1125: DPS1_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
=== InstanceDB 1124: DPS2_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
WeicheByPass_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Weiche_von_ByPass-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
=== InstanceDB 1123: DPS3_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
=== InstanceDB 1122: DPS4_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
=== InstanceDB 1121: DPS5_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Aktivierte_ABPs : Int
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
=== FB 1128: MPS1_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// MPS1-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0601.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0112.Stat.A_start
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3450, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3444", B_InSchleuse:="BG3450", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0112", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3450", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_MPS1.Stat.Ast, Error:=DB608.DBW326, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0112.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0112.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0112.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
CALL FB "None" , (Weichen_Nr:=3452, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Einfahrt_MPS1.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_MPS1.Stat.B_Akt, Antrieb_Weiche_aktiv:="MA0112", Antrieb_Gerade_aktiv:="MA0112", Antrieb_Abzweig_aktiv:="MA0106", Weiche_ist_AST:="MB3452", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_MPS1.Stat.Ast, Error:=DB608.DBW328, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0112.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#B100, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3453", B_an_Platz_1:="BG3455", B_an_Platz_2:="BG3461", B_an_Platz_3:="BG3465", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_MPS1.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3471", Y_Vorstau:="MB3453", Y_Platz_1:="MB3455", Y_Platz_2:="MB3461", Y_Platz_3:="MB3465", Antrieb_Vorstau_aktiv:="MA0106", Antrieb_Nachstau_1_aktiv:="MA0107", Antrieb_Nachstau_2_aktiv:="MA0111", Antrieb_Nachstau_3_aktiv:="MA0110", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_MPS1.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_MPS1.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_MPS1.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_MPS1.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS1".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS1".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW110, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS1".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0056"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3444"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3453, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3452", B_InSchleuse:="BG3453", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0106", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3453", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_MPS1.Stat.Ast, Error:=DB608.DBW330, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS1".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3455, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3455", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0107", Schleuse_geöffnet:="MB3455", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_MPS1.Stat.Ast, Error:=DB608.DBW332, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS1".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3461, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3461", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0111", Schleuse_geöffnet:="MB3461", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_MPS1.Stat.Ast, Error:=DB608.DBW334, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS1".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3465, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3465", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0110", Schleuse_geöffnet:="MB3465", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_MPS1.Stat.Ast, Error:=DB608.DBW336, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS1".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3471, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3470", B_InSchleuse:="BG3471", B_AusSchleuse:="BG3541", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_MPS1.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0110", Antrieb_plus_aktiv:="MA0112", Schleuse_geöffnet:="MB3471", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_MPS1.Stat.Ast, Error:=DB608.DBW338, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS1".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS1".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS1".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS1".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0112.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3471"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_MPS1.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 11: Schleuse Hauptstrecke vor Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3473, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3451", B_InSchleuse:="BG3473", B_AusSchleuse:="BG3541", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_MPS1.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0112", Antrieb_plus_aktiv:="MA0112", Schleuse_geöffnet:="MB3473", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Ausfahrt_MPS1.Stat.Ast, Error:=DB608.DBW340, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0112.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0112.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0112.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3473"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_MPS1.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 12: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3473", Haupt_Schleuse_geöffnet:="MB3473", BG_ABP_Schleuse:="BG3471", ABP_Schleuse_geöffnet:="MB3471", Aktive_ABP:="DPS5_OmniFahren".Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 13: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0601.StOk_blinken
|
||||
|
||||
|
||||
--- NW 14: Ende ---
|
||||
BE
|
||||
|
||||
+172
@@ -0,0 +1,172 @@
|
||||
=== FB 1127: MPS2_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// MPS2-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0602.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0105.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0112.Stat.A_start
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3421, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3414", B_InSchleuse:="BG3421", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0105", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3421", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_MPS2.Stat.Ast, Error:=DB608.DBW310, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0105.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0105.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0105.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
CALL FB "None" , (Weichen_Nr:=3422, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Einfahrt_MPS2.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_MPS2.Stat.B_Akt, Antrieb_Weiche_aktiv:="MA0105", Antrieb_Gerade_aktiv:="MA0105", Antrieb_Abzweig_aktiv:="MA0101", Weiche_ist_AST:="MB3422", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_MPS2.Stat.Ast, Error:=DB608.DBW312, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0105.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#B200, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3423", B_an_Platz_1:="BG3425", B_an_Platz_2:="BG3431", B_an_Platz_3:="BG3435", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_MPS2.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3441", Y_Vorstau:="MB3423", Y_Platz_1:="MB3425", Y_Platz_2:="MB3431", Y_Platz_3:="MB3435", Antrieb_Vorstau_aktiv:="MA0101", Antrieb_Nachstau_1_aktiv:="MA0102", Antrieb_Nachstau_2_aktiv:="MA0103", Antrieb_Nachstau_3_aktiv:="MA0104", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_MPS2.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_MPS2.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_MPS2.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_MPS2.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS2".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS2".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW112, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS2".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0054"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3420"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3423, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3422", B_InSchleuse:="BG3423", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0101", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3423", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_MPS2.Stat.Ast, Error:=DB608.DBW314, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS2".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3425, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3425", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0102", Schleuse_geöffnet:="MB3425", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_MPS2.Stat.Ast, Error:=DB608.DBW316, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS2".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3431, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3431", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0103", Schleuse_geöffnet:="MB3431", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_MPS2.Stat.Ast, Error:=DB608.DBW318, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS2".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3435, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3435", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0104", Schleuse_geöffnet:="MB3435", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_MPS2.Stat.Ast, Error:=DB608.DBW320, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS2".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3441, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3440", B_InSchleuse:="BG3441", B_AusSchleuse:="BG3444", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_MPS2.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0104", Antrieb_plus_aktiv:="MA0112", Schleuse_geöffnet:="MB3441", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_MPS2.Stat.Ast, Error:=DB608.DBW322, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS2".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS2".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS2".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS2".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0112.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3441"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_MPS2.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 11: Schleuse Hauptstrecke vor Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3443, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3445", B_InSchleuse:="BG3443", B_AusSchleuse:="BG3444", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_MPS2.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0105", Antrieb_plus_aktiv:="MA0112", Schleuse_geöffnet:="MB3443", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Ausfahrt_MPS2.Stat.Ast, Error:=DB608.DBW324, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0105.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0105.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0105.Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0112.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3443"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_MPS2.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 12: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3443", Haupt_Schleuse_geöffnet:="MB3443", BG_ABP_Schleuse:="BG3441", ABP_Schleuse_geöffnet:="MB3441", Aktive_ABP:="DPS5_OmniFahren".Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 13: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0602.StOk_blinken
|
||||
|
||||
|
||||
--- NW 14: Ende ---
|
||||
BE
|
||||
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
=== FB 1126: MPS3_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// MPS3-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0603.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0105.Stat.A_start
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3390, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3384", B_InSchleuse:="BG3390", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0105", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3390", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_MPS3.Stat.Ast, Error:=DB608.DBW294, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0105.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0105.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0105.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
CALL FB "None" , (Weichen_Nr:=3392, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Einfahrt_MPS3.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_MPS3.Stat.B_Akt, Antrieb_Weiche_aktiv:="MA0105", Antrieb_Gerade_aktiv:="MA0105", Antrieb_Abzweig_aktiv:="MA0095", Weiche_ist_AST:="MB3392", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_MPS3.Stat.Ast, Error:=DB608.DBW296, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0105.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#B300, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3393", B_an_Platz_1:="BG3395", B_an_Platz_2:="BG3401", B_an_Platz_3:="BG3405", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_MPS3.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3411", Y_Vorstau:="MB3393", Y_Platz_1:="MB3395", Y_Platz_2:="MB3401", Y_Platz_3:="MB3405", Antrieb_Vorstau_aktiv:="MA0095", Antrieb_Nachstau_1_aktiv:="MA0096", Antrieb_Nachstau_2_aktiv:="MA0097", Antrieb_Nachstau_3_aktiv:="MA0100", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_MPS3.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_MPS3.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_MPS3.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_MPS3.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS3".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS3".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW114, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS3".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0052"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3384"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3393, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3392", B_InSchleuse:="BG3393", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0095", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3393", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_MPS3.Stat.Ast, Error:=DB608.DBW298, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_MPS3".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3395, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3395", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0096", Schleuse_geöffnet:="MB3395", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_MPS3.Stat.Ast, Error:=DB608.DBW300, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_MPS3".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3401, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3401", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0097", Schleuse_geöffnet:="MB3401", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_MPS3.Stat.Ast, Error:=DB608.DBW302, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_MPS3".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3405, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3405", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0100", Schleuse_geöffnet:="MB3405", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_MPS3.Stat.Ast, Error:=DB608.DBW304, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS3".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3411, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3410", B_InSchleuse:="BG3411", B_AusSchleuse:="BG3414", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_MPS3.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0100", Antrieb_plus_aktiv:="MA0105", Schleuse_geöffnet:="MB3411", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_MPS3.Stat.Ast, Error:=DB608.DBW306, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS3".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS3".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS3".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_MPS3".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0105.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3411"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_MPS3.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 11: Schleuse Hauptstrecke vor Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3413, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3391", B_InSchleuse:="BG3413", B_AusSchleuse:="BG3414", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_MPS3.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0105", Antrieb_plus_aktiv:="MA0105", Schleuse_geöffnet:="MB3413", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Ausfahrt_MPS3.Stat.Ast, Error:=DB608.DBW308, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0105.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0105.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0105.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3413"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_MPS3.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 12: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3413", Haupt_Schleuse_geöffnet:="MB3413", BG_ABP_Schleuse:="BG3411", ABP_Schleuse_geöffnet:="MB3411", Aktive_ABP:="DPS5_OmniFahren".Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 13: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0603.StOk_blinken
|
||||
|
||||
|
||||
--- NW 14: Ende ---
|
||||
BE
|
||||
|
||||
+269
@@ -0,0 +1,269 @@
|
||||
=== FB 1125: PS1_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_vor : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// PS1-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0611.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_PS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_PS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS1".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0105.Stat.A_start
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3353, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3330", B_InSchleuse:="BG3353", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0087", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3353", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_PS1.Stat.Ast, Error:=DB608.DBW276, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0087.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0087.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0087.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0087.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3353"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS2.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Einfahrt.Dyn.Status.Trolley_draussen
|
||||
R "DPS2_OmniFahren".Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
R "DPS2_OmniFahren".Vorfahrt_Ausfahrweiche."WeicheByPass_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
SET
|
||||
R Antrieb_vor // Da unten IN/OUT-Zugriff
|
||||
R Antrieb_start
|
||||
R Antrieb_stop
|
||||
|
||||
A "MA0094"
|
||||
A "MA0087"
|
||||
A "MA0062"
|
||||
= Antrieb_aktiv
|
||||
|
||||
CALL FB "None" , (Weichen_Nr:=3362, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS2.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_PS1.Stat.B_Akt, Antrieb_Weiche_aktiv:=Antrieb_aktiv, Antrieb_Gerade_aktiv:="MA0087", Antrieb_Abzweig_aktiv:="MA0090", Weiche_ist_AST:="MB3362", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_PS1.Stat.Ast, Error:=DB608.DBW280, Antrieb_Weiche_vor:=Antrieb_vor, Antrieb_Weiche_stop:=Antrieb_stop, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
// M0087 + M0094 + M0062 einschalten:
|
||||
A Antrieb_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.A_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_start
|
||||
A Antrieb_start
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.Stop_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.Stop_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.Stop_vor
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#A100, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3363", B_an_Platz_1:="BG3365", B_an_Platz_2:="BG3371", B_an_Platz_3:="BG3375", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_PS1.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3381", Y_Vorstau:="MB3363", Y_Platz_1:="MB3365", Y_Platz_2:="MB3371", Y_Platz_3:="MB3375", Antrieb_Vorstau_aktiv:="MA0090", Antrieb_Nachstau_1_aktiv:="MA0091", Antrieb_Nachstau_2_aktiv:="MA0092", Antrieb_Nachstau_3_aktiv:="MA0093", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_PS1.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_PS1.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_PS1.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_PS1.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS1".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS1".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW100, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS1".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0050"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3360"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3363, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3362", B_InSchleuse:="BG3363", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0090", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3363", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_PS1.Stat.Ast, Error:=DB608.DBW282, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS1".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3365, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3365", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0091", Schleuse_geöffnet:="MB3365", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_PS1.Stat.Ast, Error:=DB608.DBW284, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS1".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3371, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3371", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0092", Schleuse_geöffnet:="MB3371", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_PS1.Stat.Ast, Error:=DB608.DBW286, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS1".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3375, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3375", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0093", Schleuse_geöffnet:="MB3375", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_PS1.Stat.Ast, Error:=DB608.DBW288, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS1".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3381, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3380", B_InSchleuse:="BG3381", B_AusSchleuse:="BG3384", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS1.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0093", Antrieb_plus_aktiv:="MA0105", Schleuse_geöffnet:="MB3381", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_PS1.Stat.Ast, Error:=DB608.DBW290, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS1".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS1".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS1".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS1".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0105.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3381"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS1.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 11: Schleuse Hauptstrecke vor Ausfahrt ---
|
||||
// Bypass-Weiche schalten:
|
||||
A "MB3351" // Schleuse PS2-Ausfahrt geöffnet
|
||||
O "MB3353" // Schleuse PS2-Vor Ausfahrt geöffnet
|
||||
R "DArbeitsplätze_Zylinder".Weiche_3361.Stat.Ast // Einfahr-Weiche auf Gerade schalten
|
||||
|
||||
A "MB3481" // Schleuse Zuführung geöffnet
|
||||
A "MB3482" // Weiche zur Hauptstrecke
|
||||
S "DArbeitsplätze_Zylinder".Weiche_3361.Stat.Ast // Einfahr-Weiche auf Abzweig schalten
|
||||
|
||||
// Antriebe -1 mit einschalten:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status."Trolley_fährt_in_Schleuse"
|
||||
AN "BG3323" // Ist in Schleuse
|
||||
AN "MB3361" // Weiche gerade
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_vor
|
||||
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status."Trolley_fährt_in_Schleuse"
|
||||
AN "BG3323" // Ist in Schleuse
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_vor
|
||||
|
||||
// Antrieb +1 einschalten:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status."Trolley_fährt_in_Schleuse"
|
||||
AN "BG3323" // Ist in Schleuse
|
||||
S "DArbeitsplätze_Antriebe".MA0105.Stat.A_vor
|
||||
|
||||
// Eigner Antrieb einschalten: (da als Stau-Sensor von Vor-Bypass verwendet)
|
||||
A "DArbeitsplätze_Sensoren".An_BG3383.Stat.B_Akt
|
||||
AN "BG3383"
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.A_vor
|
||||
|
||||
// Trolley kommt in Bereich:
|
||||
A "MB3481" // Schleuse ByPass geöffnet
|
||||
A "MB3482" // Weiche-ByPass auf Abzweig
|
||||
O "MB3351" // Schleuse PS2-Ausfahrt geöffnet
|
||||
O "MB3353" // Schleuse PS2-Vor Ausfahrt geöffnet
|
||||
O "BG3361" // Stauklappe Hauptstrecke
|
||||
= B_aktiv
|
||||
|
||||
SET
|
||||
R Antrieb_vor // Da unten IN/OUT-Zugriff
|
||||
R Antrieb_start
|
||||
R Antrieb_stop
|
||||
|
||||
A "MA0094"
|
||||
A "MA0087"
|
||||
A "MA0062"
|
||||
= Antrieb_aktiv
|
||||
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3383, ErrQuit:=ErrQuit, B_VorSchleuse:=B_aktiv, B_InSchleuse:="BG3383", B_AusSchleuse:="BG3384", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS1.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:=Antrieb_aktiv, Antrieb_plus_aktiv:="MA0105", Schleuse_geöffnet:="MB3383", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Ausfahrt_PS1.Stat.Ast, Error:=DB608.DBW292, Antrieb_Schleuse_vor:=Antrieb_vor, Antrieb_Schleuse_start:=Antrieb_start, Antrieb_Schleuse_stop:=Antrieb_stop, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0094.Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0105.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0105.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// M0087 + M0094 + M0062 einschalten:
|
||||
A Antrieb_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.A_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_vor
|
||||
A Antrieb_start
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_start
|
||||
A Antrieb_stop
|
||||
S "DArbeitsplätze_Antriebe".MA0094.Stat.Stop_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.Stop_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.Stop_vor
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3383"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS1.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 12: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3383", Haupt_Schleuse_geöffnet:="MB3383", BG_ABP_Schleuse:="BG3381", ABP_Schleuse_geöffnet:="MB3381", Aktive_ABP:="DPS5_OmniFahren".Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 13: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0611.StOk_blinken
|
||||
|
||||
|
||||
--- NW 14: Ende ---
|
||||
BE
|
||||
|
||||
+165
@@ -0,0 +1,165 @@
|
||||
=== FB 1124: PS2_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
WeicheByPass_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Weiche_von_ByPass-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// PS2-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0612.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_PS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_PS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS2".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_start
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3331, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3322", B_InSchleuse:="BG3331", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0087", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3331", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_PS2.Stat.Ast, Error:=DB608.DBW262, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0087.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0087.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0087.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0087.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
CALL FB "None" , (Weichen_Nr:=3332, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Einfahrt_PS2.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_PS2.Stat.B_Akt, Antrieb_Weiche_aktiv:="MA0087", Antrieb_Gerade_aktiv:="MA0087", Antrieb_Abzweig_aktiv:="MA0083", Weiche_ist_AST:="MB3332", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_PS2.Stat.Ast, Error:=DB608.DBW264, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0087.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0087.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#A200, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3333", B_an_Platz_1:="BG3335", B_an_Platz_2:="BG3341", B_an_Platz_3:="BG3345", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_PS2.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3351", Y_Vorstau:="MB3333", Y_Platz_1:="MB3335", Y_Platz_2:="MB3341", Y_Platz_3:="MB3345", Antrieb_Vorstau_aktiv:="MA0083", Antrieb_Nachstau_1_aktiv:="MA0084", Antrieb_Nachstau_2_aktiv:="MA0085", Antrieb_Nachstau_3_aktiv:="MA0086", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_PS2.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_PS2.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_PS2.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_PS2.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS2".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS2".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW102, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS2".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0046"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3324"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3333, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3332", B_InSchleuse:="BG3333", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0083", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3333", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_PS2.Stat.Ast, Error:=DB608.DBW266, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS2".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3335, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3335", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0084", Schleuse_geöffnet:="MB3335", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_PS2.Stat.Ast, Error:=DB608.DBW268, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS2".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3341, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3341", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0085", Schleuse_geöffnet:="MB3341", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_PS2.Stat.Ast, Error:=DB608.DBW270, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS2".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3345, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3345", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0086", Schleuse_geöffnet:="MB3345", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_PS2.Stat.Ast, Error:=DB608.DBW272, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS2".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
A "BG3362"
|
||||
A "DZuführung_OmniFahren".Alle_ABPs_anfahren
|
||||
O
|
||||
A "BG3361"
|
||||
AN "DZuführung_OmniFahren".Alle_ABPs_anfahren
|
||||
= B_AusSchleuse
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3351, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3350", B_InSchleuse:="BG3351", B_AusSchleuse:=B_AusSchleuse, B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS2.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0086", Antrieb_plus_aktiv:="MA0087", Schleuse_geöffnet:="MB3351", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_PS2.Stat.Ast, Error:=DB608.DBW274, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS2".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS2".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS2".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS2".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0087.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0087.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3351"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS2.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 11: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3353", Haupt_Schleuse_geöffnet:="MB3353", BG_ABP_Schleuse:="BG3351", ABP_Schleuse_geöffnet:="MB3351", Aktive_ABP:="DPS5_OmniFahren".Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 12: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0612.StOk_blinken
|
||||
|
||||
|
||||
--- NW 13: Ende ---
|
||||
BE
|
||||
|
||||
+209
@@ -0,0 +1,209 @@
|
||||
=== FB 1123: PS3_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_vor : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_PS : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// PS3-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0613.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_PS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_PS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0082.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_start
|
||||
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3293, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3270", B_InSchleuse:="BG3293", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0082", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3293", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_PS3.Stat.Ast, Error:=DB608.DBW246, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0082.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0082.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0082.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3293"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS4.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Einfahrt.Dyn.Status.Trolley_draussen
|
||||
R "DPS4_OmniFahren".Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
CALL FB "None" , (Weichen_Nr:=3302, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS4.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_PS3.Stat.B_Akt, Antrieb_Weiche_aktiv:="MA0082", Antrieb_Gerade_aktiv:="MA0082", Antrieb_Abzweig_aktiv:="MA0076", Weiche_ist_AST:="MB3302", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_PS3.Stat.Ast, Error:=DB608.DBW248, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0082.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#A300, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3303", B_an_Platz_1:="BG3305", B_an_Platz_2:="BG3311", B_an_Platz_3:="BG3315", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_PS3.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3321", Y_Vorstau:="MB3303", Y_Platz_1:="MB3305", Y_Platz_2:="MB3311", Y_Platz_3:="MB3315", Antrieb_Vorstau_aktiv:="MA0076", Antrieb_Nachstau_1_aktiv:="MA0077", Antrieb_Nachstau_2_aktiv:="MA0080", Antrieb_Nachstau_3_aktiv:="MA0081", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_PS3.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_PS3.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_PS3.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_PS3.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS3".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS3".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW104, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0044"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3300"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3303, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3302", B_InSchleuse:="BG3303", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0076", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3303", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_PS3.Stat.Ast, Error:=DB608.DBW250, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS3".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3305, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3305", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0077", Schleuse_geöffnet:="MB3305", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_PS3.Stat.Ast, Error:=DB608.DBW252, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS3".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3311, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3311", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0080", Schleuse_geöffnet:="MB3311", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_PS3.Stat.Ast, Error:=DB608.DBW254, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS3".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3315, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3315", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0081", Schleuse_geöffnet:="MB3315", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_PS3.Stat.Ast, Error:=DB608.DBW256, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3321, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3320", B_InSchleuse:="BG3321", B_AusSchleuse:="BG3322", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS3.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0081", Antrieb_plus_aktiv:="MA0087", Schleuse_geöffnet:="MB3321", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_PS3.Stat.Ast, Error:=DB608.DBW258, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0087.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0087.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3321"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS3.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
// Ausfahr-Förderer mit einschalten:
|
||||
A "MB3322" // Weiche ist auf Abzweig
|
||||
A "BG3322" // Trolley auf Stauklappe
|
||||
AN "BG3331" // aber nicht in Schleuse
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS3".Stat.A_vor // ABP-Ausfahr-Förderer mit einschalten
|
||||
|
||||
|
||||
--- NW 11: Schleuse Hauptstrecke vor Ausfahrt ---
|
||||
// Antrieb -1 mit einschalten:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status."Trolley_fährt_in_Schleuse"
|
||||
AN "BG3323" // Ist in Schleuse
|
||||
S "DArbeitsplätze_Antriebe".MA0082.Stat.A_vor
|
||||
|
||||
SET
|
||||
R Antrieb_vor // wegen unten IN/OUT und temp
|
||||
R Antrieb_start
|
||||
R Antrieb_PS
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3323, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3294", B_InSchleuse:="BG3323", B_AusSchleuse:="BG3322", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS3.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0087", Antrieb_plus_aktiv:="MA0087", Schleuse_geöffnet:="MB3323", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Ausfahrt_PS3.Stat.Ast, Error:=DB608.DBW260, Antrieb_Schleuse_vor:=Antrieb_vor, Antrieb_Schleuse_start:=Antrieb_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0087.Stat.Stop_vor, Antrieb_Schleuse_PS:=Antrieb_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
A Antrieb_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0082.Stat.A_vor
|
||||
A Antrieb_start
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0082.Stat.A_start
|
||||
A Antrieb_PS
|
||||
S "DArbeitsplätze_Antriebe".MA0087.Stat.A_PS
|
||||
S "DArbeitsplätze_Antriebe".MA0082.Stat.A_PS
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3323"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS3.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 12: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3323", Haupt_Schleuse_geöffnet:="MB3323", BG_ABP_Schleuse:="BG3321", ABP_Schleuse_geöffnet:="MB3321", Aktive_ABP:="DPS5_OmniFahren".Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 13: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0613.StOk_blinken
|
||||
|
||||
|
||||
--- NW 14: Ende ---
|
||||
BE
|
||||
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
=== FB 1122: PS4_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// PS4-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0614.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_PS4".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_PS4".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS4".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0082.Stat.A_start
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3271, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3263", B_InSchleuse:="BG3271", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0082", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3271", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_PS4.Stat.Ast, Error:=DB608.DBW232, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0082.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0082.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0082.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
CALL FB "None" , (Weichen_Nr:=3272, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Einfahrt_PS4.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_PS4.Stat.B_Akt, Antrieb_Weiche_aktiv:="MA0082", Antrieb_Gerade_aktiv:="MA0082", Antrieb_Abzweig_aktiv:="MA0072", Weiche_ist_AST:="MB3272", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_PS4.Stat.Ast, Error:=DB608.DBW234, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0082.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#A400, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3273", B_an_Platz_1:="BG3275", B_an_Platz_2:="BG3281", B_an_Platz_3:="BG3285", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_PS4.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3291", Y_Vorstau:="MB3273", Y_Platz_1:="MB3275", Y_Platz_2:="MB3281", Y_Platz_3:="MB3285", Antrieb_Vorstau_aktiv:="MA0072", Antrieb_Nachstau_1_aktiv:="MA0073", Antrieb_Nachstau_2_aktiv:="MA0074", Antrieb_Nachstau_3_aktiv:="MA0075", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_PS4.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_PS4.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_PS4.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_PS4.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS4".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS4".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW106, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS4".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0042"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3270"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3273, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3272", B_InSchleuse:="BG3273", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0072", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3273", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_PS4.Stat.Ast, Error:=DB608.DBW236, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS4".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3275, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3275", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0073", Schleuse_geöffnet:="MB3275", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_PS4.Stat.Ast, Error:=DB608.DBW238, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS4".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3281, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3281", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0074", Schleuse_geöffnet:="MB3281", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_PS4.Stat.Ast, Error:=DB608.DBW240, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS4".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3285, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3285", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0075", Schleuse_geöffnet:="MB3285", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_PS4.Stat.Ast, Error:=DB608.DBW242, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS4".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
A "BG3302"
|
||||
A "DZuführung_OmniFahren".Alle_ABPs_anfahren
|
||||
O
|
||||
A "BG3294"
|
||||
AN "DZuführung_OmniFahren".Alle_ABPs_anfahren
|
||||
= B_AusSchleuse
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3291, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3290", B_InSchleuse:="BG3291", B_AusSchleuse:=B_AusSchleuse, B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS4.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0075", Antrieb_plus_aktiv:="MA0082", Schleuse_geöffnet:="MB3291", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_PS4.Stat.Ast, Error:=DB608.DBW244, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS4".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS4".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS4".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS4".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0082.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3291"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS4.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 11: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3293", Haupt_Schleuse_geöffnet:="MB3293", BG_ABP_Schleuse:="BG3291", ABP_Schleuse_geöffnet:="MB3291", Aktive_ABP:="DPS5_OmniFahren".Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 12: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0614.StOk_blinken
|
||||
|
||||
|
||||
--- NW 13: Ende ---
|
||||
BE
|
||||
|
||||
+235
@@ -0,0 +1,235 @@
|
||||
=== FB 1121: PS5_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_vor_Einfahrt : "MHMOmniSchleuse"
|
||||
Weiche_Einfahrt : "MHMOmniWeiche"
|
||||
Schleuse_Vorstau : "MHMOmniSchleuse"
|
||||
Sks_Arbeitsplatz : "MHM_Arbeitsplatz"
|
||||
Schleuse_Platz_1 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_2 : "MHMOmniSchleuse"
|
||||
Schleuse_Platz_3 : "MHMOmniSchleuse"
|
||||
Schleuse_Ausfahrt : "MHMOmniSchleuse"
|
||||
Schleuse_vor_Ausfahrt : "MHMOmniSchleuse"
|
||||
Prio_Ausfahrt : "MAusfahrPrio_ABP"
|
||||
Vorfahrt_Ausfahrweiche : Struct
|
||||
Weiche_von_Haupt-Sep_belegt : Bool
|
||||
Weiche_von_Ausfahr-Sep_belegt : Bool
|
||||
Haupstrecke_gefahren : Int
|
||||
AMR_gefahren : Int
|
||||
Aktivierte_ABPs : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// PS5-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Auto_akt
|
||||
= Weiche_Einfahrt.Dyn.Status.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Auto_akt
|
||||
= Schleuse_Vorstau.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_1.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_2.Dyn.Sk.Auto_akt
|
||||
= Schleuse_Platz_3.Dyn.Sk.Auto_akt
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Auto_akt
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_vor_Einfahrt.Dyn.Sk.Bereich_ok
|
||||
= Weiche_Einfahrt.Dyn.Status.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_zum_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Vorstau.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_1.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_2.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_Platz_3.Dyn.Sk.Bereich_ok
|
||||
= Sks_Arbeitsplatz.Dyn.Sk_aus_Beladeplatz.Bereich_ok
|
||||
= Schleuse_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_vor_Ausfahrt.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UZ0615.StOk_aktiv
|
||||
= ErrQuit
|
||||
S "DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau1_PS5".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Nachstau2_PS5".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS5".Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0082.Stat.A_start
|
||||
|
||||
|
||||
--- NW 3: Schleuse vor Einfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3241, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3244", B_InSchleuse:="BG3241", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0082", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3241", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Einfahrt_PS5.Stat.Ast, Error:=DB608.DBW216, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0082.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0082.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0082.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // Über Weiche_Einfahrt | Über Weiche_Einfahrt | Über Weiche_Einfahrt
|
||||
|
||||
|
||||
--- NW 4: Weiche Einfahrt ---
|
||||
CALL FB "None" , (Weichen_Nr:=3242, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="DArbeitsplätze_Sensoren".Stau_nach_Einfahrt_PS5.Stat.B_Akt, B_Ziel_abzweig:="DArbeitsplätze_Sensoren".Stau_Einfahrt_PS5.Stat.B_Akt, Antrieb_Weiche_aktiv:="MA0082", Antrieb_Gerade_aktiv:="MA0082", Antrieb_Abzweig_aktiv:="MA0066", Weiche_ist_AST:="MB3242", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_Einfahrt_PS5.Stat.Ast, Error:=DB608.DBW218, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0082.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 5: Schrittketten Arbeitsplätze ver-/entsorgen ---
|
||||
CALL FB "None" , (Arbeitsplatz_Nr:=16#A500, ErrQuit:=ErrQuit, B_In_Schleuse_Vorstau:="BG3243", B_an_Platz_1:="BG3245", B_an_Platz_2:="BG3251", B_an_Platz_3:="BG3255", B_Nachstau_Einfahrt:="DArbeitsplätze_Sensoren".Stau_Ausfahrt_PS5.Stat.B_Akt, B_Nachstau_Ausfahrt:="BG3262", Y_Vorstau:="MB3243", Y_Platz_1:="MB3245", Y_Platz_2:="MB3251", Y_Platz_3:="MB3255", Antrieb_Vorstau_aktiv:="MA0066", Antrieb_Nachstau_1_aktiv:="MA0067", Antrieb_Nachstau_2_aktiv:="MA0070", Antrieb_Nachstau_3_aktiv:="MA0071", Y_Weiche_zu_Platz_1:="DArbeitsplätze_Zylinder".Weiche_zu_Platz1_PS5.Stat.Ast, Y_Weiche_zu_Platz_2:="DArbeitsplätze_Zylinder".Weiche_zu_Platz2_PS5.Stat.Ast, Y_Weiche_von_Platz_1:="DArbeitsplätze_Zylinder".Weiche_von_Platz1_PS5.Stat.Ast, Y_Weiche_von_Platz_2:="DArbeitsplätze_Zylinder".Weiche_von_Platz2_PS5.Stat.Ast, Antrieb_Nachstau_1_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS5".Stat.A_vor, Antrieb_Nachstau_2_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS5".Stat.A_vor, Trolley_hat_ABS_erreicht:=Schleuse_Vorstau.B_AusSchleuse, Reset_Vorstau_Schleuse:=Schleuse_Vorstau.Dyn.Sk.Reset, Reset_Platz_1_Stopper:=Schleuse_Platz_1.Dyn.Sk.Reset, Reset_Platz_2_Stopper:=Schleuse_Platz_2.Dyn.Sk.Reset, Reset_Platz_3_Stopper:=Schleuse_Platz_3.Dyn.Sk.Reset, Error:=DB608.DBW108, Antrieb_Vorstau_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.A_vor, Antrieb_Nachstau_3_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS5".Stat.A_vor, hStOk:=ErrAnz) // XY00: X=A(PS), X=B(MPS), Y= Nummer des Platzes
|
||||
|
||||
// Anzeigen:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
A Sks_Arbeitsplatz.Dyn.Status.Arbeitsplatz_aktiviert
|
||||
= "PF0040"
|
||||
|
||||
A Sks_Arbeitsplatz.Dyn.SS.Externe_Anzeige
|
||||
= "PF3240"
|
||||
|
||||
|
||||
--- NW 6: Schleuse Vorstau ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3243, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3242", B_InSchleuse:="BG3243", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0066", Antrieb_plus_aktiv:=1, Schleuse_geöffnet:="MB3243", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vorstau_PS5.Stat.Ast, Error:=DB608.DBW220, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Einfahrt_PS5".Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Schleuse Platz 1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3245, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3245", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0067", Schleuse_geöffnet:="MB3245", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz1_PS5.Stat.Ast, Error:=DB608.DBW222, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau1_PS5".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_1.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_1.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P1D
|
||||
|
||||
L Schleuse_Platz_1.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_1.TrolleyID_ausgefahren
|
||||
|
||||
P1D: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse Platz 2 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3251, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3251", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0070", Schleuse_geöffnet:="MB3251", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz2_PS5.Stat.Ast, Error:=DB608.DBW224, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Nachstau2_PS5".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_2.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_2.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P2D
|
||||
|
||||
L Schleuse_Platz_2.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_2.TrolleyID_ausgefahren
|
||||
|
||||
P2D: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse Platz 3 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3255, ErrQuit:=ErrQuit, B_VorSchleuse:=?, B_InSchleuse:="BG3255", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0071", Schleuse_geöffnet:="MB3255", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Platz3_PS5.Stat.Ast, Error:=DB608.DBW226, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS5".Stat.A_vor, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A Schleuse_Platz_3.Dyn.Status.Trolley_draussen
|
||||
S Sks_Arbeitsplatz.Dyn.Platz_3.Trolley_hat_Arbeitsplatz_verlassen
|
||||
JCN P3D
|
||||
|
||||
L Schleuse_Platz_3.Dyn.TrolleyID_ausgefahren
|
||||
T Sks_Arbeitsplatz.Dyn.Platz_3.TrolleyID_ausgefahren
|
||||
|
||||
P3D: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3262, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3260", B_InSchleuse:="BG3262", B_AusSchleuse:="BG3263", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS5.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0071", Antrieb_plus_aktiv:="MA0082", Schleuse_geöffnet:="MB3262", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Ausfahrt_PS5.Stat.Ast, Error:=DB608.DBW228, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS5".Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS5".Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS5".Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe"."MA _Ausfahrt_PS5".Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0082.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Ausfahr-Weiche schalten:
|
||||
A "MB3262"
|
||||
S "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS5.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Ausfahr-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 11: Schleuse Hauptstrecke vor Ausfahrt ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3265, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3264", B_InSchleuse:="BG3265", B_AusSchleuse:="BG3263", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_nach_Ausfahrt_PS5.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0082", Antrieb_plus_aktiv:="MA0082", Schleuse_geöffnet:="MB3265", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_Vor_Ausfahrt_PS5.Stat.Ast, Error:=DB608.DBW230, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0082.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0082.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0082.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
// Ausfahr-Weiche zurückschalten:
|
||||
A "MB3265"
|
||||
R "DArbeitsplätze_Zylinder".Weiche_Ausfahrt_PS5.Stat.Ast
|
||||
|
||||
// Ausfahr-Weiche wieder freigeben:
|
||||
A Schleuse_vor_Ausfahrt.Dyn.Status.Trolley_draussen
|
||||
R Vorfahrt_Ausfahrweiche."Weiche_von_Haupt-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 12: Aktive Arbeitsplätze ermitteln (gilt für alle Prios) ---
|
||||
L 0
|
||||
T Aktivierte_ABPs
|
||||
|
||||
AN Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC PS4
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
PS4: AN "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC PS3
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
PS3: AN "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC PS2
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
PS2: AN "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC PS1
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
PS1: AN "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC MPS3
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
MPS3: AN "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC MPS2
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
MPS2: AN "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC MPS1
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
MPS1: AN "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Status.Beladung_erfolgt
|
||||
JC AABPE
|
||||
|
||||
L Aktivierte_ABPs
|
||||
+ 1
|
||||
T Aktivierte_ABPs
|
||||
|
||||
AABPE: NOP 0
|
||||
|
||||
|
||||
--- NW 13: Ausfahr-Priorität ---
|
||||
CALL FB "None" , (BG_Haupt_Schleuse:="BG3265", Haupt_Schleuse_geöffnet:="MB3265", BG_ABP_Schleuse:="BG3262", ABP_Schleuse_geöffnet:="MB3262", Aktive_ABP:=Aktivierte_ABPs)
|
||||
|
||||
|
||||
--- NW 14: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0615.StOk_blinken
|
||||
|
||||
|
||||
--- NW 15: Ende ---
|
||||
BE
|
||||
|
||||
+480
@@ -0,0 +1,480 @@
|
||||
=== FB 1199: Arbeitsplätze_Antriebe [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
MA0061 : "MAntrieb_PowerSave"
|
||||
MA0062 : "MAntrieb_PowerSave"
|
||||
MA0063 : "MAntrieb_PowerSave"
|
||||
MA0064 : "MAntrieb_PowerSave"
|
||||
MA0065 : "MAntrieb_PowerSave"
|
||||
MA0082 : "MAntrieb_PowerSave"
|
||||
MA0087 : "MAntrieb_PowerSave"
|
||||
MA0094 : "MAntrieb_PowerSave"
|
||||
MA0105 : "MAntrieb_PowerSave"
|
||||
MA0112 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_MPS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_MPS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_MPS1 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_MPS1 : "MAntrieb_PowerSave"
|
||||
Temp:
|
||||
Auto : Bool // Automatik Linie ist aktiv
|
||||
Hand : Bool // Hand Linie ist aktiv
|
||||
BereichErr : Bool // Bereichsstörung -> Antrieb stoppen
|
||||
QKontroll : Bool // Frequenzumrichter schon 3s Netz EIN
|
||||
FuKontroll : Bool // Frequenzumrichter schon 3s Netz EIN
|
||||
Quit : Bool // Motorschutz-Störung quittieren
|
||||
Qok : Bool // Motorschutz ok
|
||||
Jog1 : Bool // Geschwindigkeit 1
|
||||
Jog2 : Bool // Geschwindigkeit 2
|
||||
Betrieb : Bool // Betriebsart aktiv
|
||||
FC105_RET : Word // Returnwert von FC105
|
||||
Antrieb1 : Bool // Antrieb dazuschalten
|
||||
Antrieb2 : Bool // Antrieb dazuschalten
|
||||
F1 : Bool // Geschwindigkeit 1 aktiviert
|
||||
F2 : Bool // Geschwindigkeit 2 aktiviert
|
||||
F3 : Bool // Geschwindigkeit 3 aktiviert
|
||||
Constant:
|
||||
|
||||
--- NW 1: Übergabe des Bereichstatus System UH06/A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
= Auto
|
||||
|
||||
CLR
|
||||
= Hand
|
||||
|
||||
A "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= BereichErr
|
||||
|
||||
AN BereichErr
|
||||
L S5T#1S
|
||||
OnDelay "T190"
|
||||
|
||||
A "T190"
|
||||
= QKontroll
|
||||
= FuKontroll
|
||||
|
||||
A "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= Quit
|
||||
|
||||
|
||||
--- NW 2: MA0061 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0061", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=120, Antriebrueck:=?, Antriebvor:="MA0061", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0061, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 3: MA0062 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0062", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=120, Antriebrueck:=?, Antriebvor:="MA0062", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0062, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 4: MA0063 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0063", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=180, Antriebrueck:=?, Antriebvor:="MA0063", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0063, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 5: MA0064 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0064", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=120, Antriebrueck:=?, Antriebvor:="MA0064", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0064, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 6: MA0065 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0065", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0065", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0065, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 7: MA0082 ---
|
||||
A MA0082.Stat.A_vor
|
||||
A MA0082.Stat.Stop_vor
|
||||
CLR
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0082", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=120, Antriebrueck:=?, Antriebvor:="MA0082", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0082, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 8: MA0087 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0087", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0087", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0087, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 9: MA0094 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0094", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0094", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0094, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 10: MA0105 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0105", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0105", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0105, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 11: MA0112 ---
|
||||
CLR
|
||||
S MA0112.Stat.Stop_vor
|
||||
S MA0112.Stat.Stop_rueck
|
||||
S MA0112.Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0112", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0112", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0112, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 12: MA_Einfahrt PS5 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_PS5".Stat.Stop_vor
|
||||
S "MA _Einfahrt_PS5".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_PS5".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0066", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=30, Antriebrueck:=?, Antriebvor:="MA0066", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0066, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 13: MA _Nachstau1 PS5 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_PS5".Stat.Stop_vor
|
||||
S "MA _Nachstau1_PS5".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_PS5".Stat.A_start
|
||||
S "MA _Nachstau1_PS5".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0067", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=0, Antriebrueck:=?, Antriebvor:="MA0067", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0067, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 14: MA _Nachstau2 PS5 ---
|
||||
CLR
|
||||
S "MA _Nachstau2_PS5".Stat.Stop_vor
|
||||
S "MA _Nachstau2_PS5".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_PS5".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0070", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=0, Antriebrueck:=?, Antriebvor:="MA0070", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0070, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 15: MA _Ausfahrt PS5 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_PS5".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_PS5".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_PS5".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0071", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=15, Antriebrueck:=?, Antriebvor:="MA0071", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0071, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 16: MA_Einfahrt PS4 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_PS4".Stat.Stop_vor
|
||||
S "MA _Einfahrt_PS4".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_PS4".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0072", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0072", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0072, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 17: MA _Nachstau1 PS4 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_PS4".Stat.Stop_vor
|
||||
S "MA _Nachstau1_PS4".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_PS4".Stat.A_start
|
||||
S "MA _Nachstau1_PS4".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0073", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0073", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0073, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 18: MA _Nachstau2 PS4 ---
|
||||
CLR
|
||||
S "MA _Nachstau2_PS4".Stat.Stop_vor
|
||||
S "MA _Nachstau2_PS4".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_PS4".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0074", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0074", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0074, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 19: MA _Ausfahrt PS4 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_PS4".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_PS4".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_PS4".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0075", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0075", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0075, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 20: MA_Einfahrt PS3 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_PS3".Stat.Stop_vor
|
||||
S "MA _Einfahrt_PS3".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_PS3".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0076", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0076", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0076, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 21: MA _Nachstau1 PS3 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_PS3".Stat.Stop_vor
|
||||
S "MA _Nachstau1_PS3".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_PS3".Stat.A_start
|
||||
S "MA _Nachstau1_PS3".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0077", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0077", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0077, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 22: MA _Nachstau2 PS3 ---
|
||||
A "MA _Nachstau2_PS3".Stat.A_vor
|
||||
CLR
|
||||
S "MA _Nachstau2_PS3".Stat.Stop_vor
|
||||
S "MA _Nachstau2_PS3".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_PS3".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0080", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0080", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0080, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 23: MA _Ausfahrt PS3 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_PS3".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_PS3".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_PS3".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0081", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0081", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0081, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 24: MA_Einfahrt PS2 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_PS2".Stat.Stop_vor
|
||||
S "MA _Einfahrt_PS2".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_PS2".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0083", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0083", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0083, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 25: MA _Nachstau1 PS2 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_PS2".Stat.Stop_vor
|
||||
S "MA _Nachstau1_PS2".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_PS2".Stat.A_start
|
||||
S "MA _Nachstau1_PS2".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0084", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0084", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0084, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 26: MA _Nachstau2 PS2 ---
|
||||
CLR
|
||||
S "MA _Nachstau2_PS2".Stat.Stop_vor
|
||||
S "MA _Nachstau2_PS2".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_PS2".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0085", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0085", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0085, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 27: MA _Ausfahrt PS2 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_PS2".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_PS2".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_PS2".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0086", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0086", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0086, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 28: MA_Einfahrt PS1 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_PS1".Stat.Stop_vor
|
||||
S "MA _Einfahrt_PS1".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_PS1".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0090", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0090", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0090, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 29: MA _Nachstau1 PS1 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_PS1".Stat.Stop_vor
|
||||
S "MA _Nachstau1_PS1".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_PS1".Stat.A_start
|
||||
S "MA _Nachstau1_PS1".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0091", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0091", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0091, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 30: MA _Nachstau2 PS1 ---
|
||||
CLR
|
||||
S "MA _Nachstau2_PS1".Stat.Stop_vor
|
||||
S "MA _Nachstau2_PS1".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_PS1".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0092", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0092", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0092, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 31: MA _Ausfahrt PS1 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_PS1".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_PS1".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_PS1".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0093", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0093", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0093, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 32: MA_Einfahrt MPS3 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_MPS3".Stat.Stop_vor
|
||||
S "MA _Einfahrt_MPS3".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_MPS3".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0095", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0095", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0095, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 33: MA _Nachstau1 MPS3 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_MPS3".Stat.Stop_vor
|
||||
S "MA _Nachstau1_MPS3".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_MPS3".Stat.A_start
|
||||
S "MA _Nachstau1_MPS3".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0096", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0096", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0096, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 34: MA _Nachstau2 MPS3 ---
|
||||
CLR
|
||||
S "MA _Nachstau2_MPS3".Stat.Stop_vor
|
||||
S "MA _Nachstau2_MPS3".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_MPS3".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0097", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0097", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0097, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 35: MA _Ausfahrt MPS3 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_MPS3".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_MPS3".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_MPS3".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0100", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0100", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0100, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 36: MA_Einfahrt MPS2 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_MPS2".Stat.Stop_vor
|
||||
S "MA _Einfahrt_MPS2".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_MPS2".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0101", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0101", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0101, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 37: MA _Nachstau1 MPS2 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_MPS2".Stat.Stop_vor
|
||||
S "MA _Nachstau1_MPS2".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_MPS2".Stat.A_start
|
||||
S "MA _Nachstau1_MPS2".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0102", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0102", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0102, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 38: MA _Nachstau2 MPS2 ---
|
||||
CLR
|
||||
S "MA _Nachstau2_MPS2".Stat.Stop_vor
|
||||
S "MA _Nachstau2_MPS2".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_MPS2".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0103", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0103", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0103, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 39: MA _Ausfahrt MPS2 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_MPS2".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_MPS2".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_MPS2".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0104", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0104", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0104, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 40: MA_Einfahrt MPS1 ---
|
||||
CLR
|
||||
S "MA _Einfahrt_MPS1".Stat.Stop_vor
|
||||
S "MA _Einfahrt_MPS1".Stat.Stop_rueck
|
||||
S "MA _Einfahrt_MPS1".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0106", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0106", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0106, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 41: MA _Nachstau1 MPS1 ---
|
||||
CLR
|
||||
S "MA _Nachstau1_MPS1".Stat.Stop_vor
|
||||
S "MA _Nachstau1_MPS1".Stat.Stop_rueck
|
||||
S "MA _Nachstau1_MPS1".Stat.A_start
|
||||
S "MA _Nachstau1_MPS1".Stat.A_vor
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0107", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0107", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0107, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 42: MA _Nachstau2 MPS1 ---
|
||||
CLR
|
||||
S "MA _Nachstau2_MPS1".Stat.Stop_vor
|
||||
S "MA _Nachstau2_MPS1".Stat.Stop_rueck
|
||||
S "MA _Nachstau2_MPS1".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0111", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0111", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0111, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 43: MA _Ausfahrt MPS1 ---
|
||||
CLR
|
||||
S "MA _Ausfahrt_MPS1".Stat.Stop_vor
|
||||
S "MA _Ausfahrt_MPS1".Stat.Stop_rueck
|
||||
S "MA _Ausfahrt_MPS1".Stat.A_start
|
||||
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0110", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0110", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0110, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 44: Ende ---
|
||||
BE
|
||||
|
||||
+352
@@ -0,0 +1,352 @@
|
||||
=== FB 1190: Arbeitsplätze_Sensoren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Stau_BG3566 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3567 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3457 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3447 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3483 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3484 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3486 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3244 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_BG3542 : "MSensoren" // Stau am Sensor Einfahrt MA0204
|
||||
Stau_Einfahrt_PS5 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS5 : "MSensoren"
|
||||
Stau_Platz1_PS5 : "MSensoren"
|
||||
Stau_Platz2_PS5 : "MSensoren"
|
||||
Stau_Platz3_PS5 : "MSensoren"
|
||||
Stau_Ausfahrt_PS5 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS5 : "MSensoren"
|
||||
Stau_Einfahrt_PS4 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS4 : "MSensoren"
|
||||
Stau_Platz1_PS4 : "MSensoren"
|
||||
Stau_Platz2_PS4 : "MSensoren"
|
||||
Stau_Platz3_PS4 : "MSensoren"
|
||||
Stau_Ausfahrt_PS4 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS4 : "MSensoren"
|
||||
Stau_Einfahrt_PS3 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS3 : "MSensoren"
|
||||
Stau_Platz1_PS3 : "MSensoren"
|
||||
Stau_Platz2_PS3 : "MSensoren"
|
||||
Stau_Platz3_PS3 : "MSensoren"
|
||||
Stau_Ausfahrt_PS3 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS3 : "MSensoren"
|
||||
Stau_Einfahrt_PS2 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS2 : "MSensoren"
|
||||
Stau_Platz1_PS2 : "MSensoren"
|
||||
Stau_Platz2_PS2 : "MSensoren"
|
||||
Stau_Platz3_PS2 : "MSensoren"
|
||||
Stau_Ausfahrt_PS2 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS2 : "MSensoren"
|
||||
Stau_Einfahrt_PS1 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS1 : "MSensoren"
|
||||
An_BG3383 : "MSensoren" // Am Sensor Ende MA0203
|
||||
Stau_Platz1_PS1 : "MSensoren"
|
||||
Stau_Platz2_PS1 : "MSensoren"
|
||||
Stau_Platz3_PS1 : "MSensoren"
|
||||
Stau_Ausfahrt_PS1 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS1 : "MSensoren"
|
||||
Stau_Einfahrt_MPS3 : "MSensoren"
|
||||
Stau_nach_Einfahrt_MPS3 : "MSensoren"
|
||||
Stau_Platz1_MPS3 : "MSensoren"
|
||||
Stau_Platz2_MPS3 : "MSensoren"
|
||||
Stau_Platz3_MPS3 : "MSensoren"
|
||||
Stau_Ausfahrt_MPS3 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_MPS3 : "MSensoren"
|
||||
Stau_Einfahrt_MPS2 : "MSensoren"
|
||||
Stau_nach_Einfahrt_MPS2 : "MSensoren"
|
||||
Stau_Platz1_MPS2 : "MSensoren"
|
||||
Stau_Platz2_MPS2 : "MSensoren"
|
||||
Stau_Platz3_MPS2 : "MSensoren"
|
||||
Stau_Ausfahrt_MPS2 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_MPS2 : "MSensoren"
|
||||
Stau_Einfahrt_MPS1 : "MSensoren"
|
||||
Stau_nach_Einfahrt_MPS1 : "MSensoren"
|
||||
Stau_Platz1_MPS1 : "MSensoren"
|
||||
Stau_Platz2_MPS1 : "MSensoren"
|
||||
Stau_Platz3_MPS1 : "MSensoren"
|
||||
Stau_Ausfahrt_MPS1 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_MPS1 : "MSensoren"
|
||||
Temp:
|
||||
T_Ein : Int // Vorgabe Einschaltverzögerung
|
||||
T_Aus : Int // Zwischenspeicher Ausschaltverzögerung
|
||||
F1 : Bool // Geschwindigkeit 1 aktiviert
|
||||
F2 : Bool // Geschwindigkeit 2 aktiviert
|
||||
F3 : Bool // Geschwindigkeit 3 aktiviert
|
||||
ESensor : Bool // Sensoren
|
||||
Antrieb : Bool
|
||||
VReal : Real // GeschwindigkeitinReal
|
||||
Zeit : Int // Zeit für Ausschaltverzögerung LT1100
|
||||
Aktiv : Bool // Zeit aktivieren
|
||||
Constant:
|
||||
|
||||
--- NW 1: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3566", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 2: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3567", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 3: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3457", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 4: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3447", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 5: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3483", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 6: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3484", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 7: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3486", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 8: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3244", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 9: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3542", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 10: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3242", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 11: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3264", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 12: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3245", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 13: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3251", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 14: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3255", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 15: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3260", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 16: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3263", T_Ein:=1, T_Aus:=10, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 17: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3272", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 18: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3270", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 19: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3275", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 20: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3281", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 21: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3285", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 22: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3290", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 23: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3294", T_Ein:=1, T_Aus:=10, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 24: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3302", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 25: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3294", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 26: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3305", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 27: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3311", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 28: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3315", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 29: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3320", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 30: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3322", T_Ein:=1, T_Aus:=10, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 31: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3332", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 32: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3330", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 33: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3335", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 34: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3341", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 35: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3345", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 36: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3350", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 37: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3361", T_Ein:=1, T_Aus:=10, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 38: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3362", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 39: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3361", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 40: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3381", T_Ein:=1, T_Aus:=50, tein_aktiv:=TRUE, taus_aktiv:="MA0094")
|
||||
|
||||
|
||||
--- NW 41: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3365", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 42: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3371", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 43: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3375", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 44: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3380", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 45: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3384", T_Ein:=1, T_Aus:=10, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 46: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3392", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 47: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3391", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 48: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3395", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 49: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3401", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 50: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3405", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 51: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3410", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 52: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3414", T_Ein:=1, T_Aus:=10, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 53: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3422", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 54: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3445", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 55: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3425", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 56: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3431", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 57: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3435", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 58: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3440", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 59: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3444", T_Ein:=1, T_Aus:=10, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 60: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3452", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 61: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3451", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 62: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3455", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 63: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3461", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 64: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3465", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 65: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3470", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 66: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3541", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 67: Ende ---
|
||||
BE
|
||||
|
||||
+568
@@ -0,0 +1,568 @@
|
||||
=== FB 1192: Arbeitsplätze_Zylinder [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3456 : "MZylinder" //
|
||||
Schleuse_3481 : "MZylinder" //
|
||||
Weiche_3482 : "MZylinder" //
|
||||
Weiche_3361 : "MZylinder" //
|
||||
Schleuse_3487 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_PS5 : "MZylinder" //
|
||||
Weiche_Einfahrt_PS5 : "MZylinder" //
|
||||
Schleuse_Vorstau_PS5 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS5 : "MZylinder" //
|
||||
Weiche_zu_Platz2_PS5 : "MZylinder"
|
||||
Schleuse_Platz1_PS5 : "MZylinder"
|
||||
Schleuse_Platz2_PS5 : "MZylinder"
|
||||
Schleuse_Platz3_PS5 : "MZylinder"
|
||||
Weiche_von_Platz1_PS5 : "MZylinder" //
|
||||
Weiche_von_Platz2_PS5 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS5 : "MZylinder" //
|
||||
Schleuse_Vor_Ausfahrt_PS5 : "MZylinder" //
|
||||
Weiche_Ausfahrt_PS5 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_PS4 : "MZylinder" //
|
||||
Weiche_Einfahrt_PS4 : "MZylinder" //
|
||||
Schleuse_Vorstau_PS4 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS4 : "MZylinder" //
|
||||
Weiche_zu_Platz2_PS4 : "MZylinder"
|
||||
Schleuse_Platz1_PS4 : "MZylinder"
|
||||
Schleuse_Platz2_PS4 : "MZylinder"
|
||||
Schleuse_Platz3_PS4 : "MZylinder"
|
||||
Weiche_von_Platz1_PS4 : "MZylinder" //
|
||||
Weiche_von_Platz2_PS4 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS4 : "MZylinder" //
|
||||
Weiche_Ausfahrt_PS4 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_PS3 : "MZylinder" //
|
||||
Weiche_Einfahrt_PS3 : "MZylinder" //
|
||||
Schleuse_Vorstau_PS3 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS3 : "MZylinder" //
|
||||
Weiche_zu_Platz2_PS3 : "MZylinder"
|
||||
Schleuse_Platz1_PS3 : "MZylinder"
|
||||
Schleuse_Platz2_PS3 : "MZylinder"
|
||||
Schleuse_Platz3_PS3 : "MZylinder"
|
||||
Weiche_von_Platz1_PS3 : "MZylinder" //
|
||||
Weiche_von_Platz2_PS3 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS3 : "MZylinder" //
|
||||
Schleuse_Vor_Ausfahrt_PS3 : "MZylinder" //
|
||||
Weiche_Ausfahrt_PS3 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_PS2 : "MZylinder" //
|
||||
Weiche_Einfahrt_PS2 : "MZylinder" //
|
||||
Schleuse_Vorstau_PS2 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS2 : "MZylinder" //
|
||||
Weiche_zu_Platz2_PS2 : "MZylinder"
|
||||
Schleuse_Platz1_PS2 : "MZylinder"
|
||||
Schleuse_Platz2_PS2 : "MZylinder"
|
||||
Schleuse_Platz3_PS2 : "MZylinder"
|
||||
Weiche_von_Platz1_PS2 : "MZylinder" //
|
||||
Weiche_von_Platz2_PS2 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS2 : "MZylinder" //
|
||||
Weiche_Ausfahrt_PS2 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_PS1 : "MZylinder" //
|
||||
Weiche_Einfahrt_PS1 : "MZylinder" //
|
||||
Schleuse_Vorstau_PS1 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS1 : "MZylinder" //
|
||||
Weiche_zu_Platz2_PS1 : "MZylinder"
|
||||
Schleuse_Platz1_PS1 : "MZylinder"
|
||||
Schleuse_Platz2_PS1 : "MZylinder"
|
||||
Schleuse_Platz3_PS1 : "MZylinder"
|
||||
Weiche_von_Platz1_PS1 : "MZylinder" //
|
||||
Weiche_von_Platz2_PS1 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS1 : "MZylinder" //
|
||||
Schleuse_Vor_Ausfahrt_PS1 : "MZylinder" //
|
||||
Weiche_Ausfahrt_PS1 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_MPS3 : "MZylinder" //
|
||||
Weiche_Einfahrt_MPS3 : "MZylinder" //
|
||||
Schleuse_Vorstau_MPS3 : "MZylinder"
|
||||
Weiche_zu_Platz1_MPS3 : "MZylinder" //
|
||||
Weiche_zu_Platz2_MPS3 : "MZylinder"
|
||||
Schleuse_Platz1_MPS3 : "MZylinder"
|
||||
Schleuse_Platz2_MPS3 : "MZylinder"
|
||||
Schleuse_Platz3_MPS3 : "MZylinder"
|
||||
Weiche_von_Platz1_MPS3 : "MZylinder" //
|
||||
Weiche_von_Platz2_MPS3 : "MZylinder"
|
||||
Schleuse_Ausfahrt_MPS3 : "MZylinder" //
|
||||
Schleuse_Vor_Ausfahrt_MPS3 : "MZylinder" //
|
||||
Weiche_Ausfahrt_MPS3 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_MPS2 : "MZylinder" //
|
||||
Weiche_Einfahrt_MPS2 : "MZylinder" //
|
||||
Schleuse_Vorstau_MPS2 : "MZylinder"
|
||||
Weiche_zu_Platz1_MPS2 : "MZylinder" //
|
||||
Weiche_zu_Platz2_MPS2 : "MZylinder"
|
||||
Schleuse_Platz1_MPS2 : "MZylinder"
|
||||
Schleuse_Platz2_MPS2 : "MZylinder"
|
||||
Schleuse_Platz3_MPS2 : "MZylinder"
|
||||
Weiche_von_Platz1_MPS2 : "MZylinder" //
|
||||
Weiche_von_Platz2_MPS2 : "MZylinder"
|
||||
Schleuse_Ausfahrt_MPS2 : "MZylinder" //
|
||||
Schleuse_Vor_Ausfahrt_MPS2 : "MZylinder" //
|
||||
Weiche_Ausfahrt_MPS2 : "MZylinder" //
|
||||
Schleuse_Vor_Einfahrt_MPS1 : "MZylinder" //
|
||||
Weiche_Einfahrt_MPS1 : "MZylinder" //
|
||||
Schleuse_Vorstau_MPS1 : "MZylinder"
|
||||
Weiche_zu_Platz1_MPS1 : "MZylinder" //
|
||||
Weiche_zu_Platz2_MPS1 : "MZylinder"
|
||||
Schleuse_Platz1_MPS1 : "MZylinder"
|
||||
Schleuse_Platz2_MPS1 : "MZylinder"
|
||||
Schleuse_Platz3_MPS1 : "MZylinder"
|
||||
Weiche_von_Platz1_MPS1 : "MZylinder" //
|
||||
Weiche_von_Platz2_MPS1 : "MZylinder"
|
||||
Schleuse_Ausfahrt_MPS1 : "MZylinder" //
|
||||
Schleuse_Vor_Ausfahrt_MPS1 : "MZylinder" //
|
||||
Weiche_Ausfahrt_MPS1 : "MZylinder" //
|
||||
Schleuse_3540 : "MZylinder" //
|
||||
Schleuse_3543 : "MZylinder" //
|
||||
Temp:
|
||||
Auto : Bool // Automatik ist aktiv
|
||||
Hand : Bool // Hand ist aktiv
|
||||
ZylAst : Bool // Zylinder ansteuern
|
||||
Constant:
|
||||
|
||||
--- NW 1: Übergabe des Bereichstatus System UH06 / A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
= Auto
|
||||
|
||||
A "DAMR_Bereich".A01_UH06.BereichErr
|
||||
JC Next // Zylinder-Stellung nicht mehr ändern
|
||||
|
||||
|
||||
--- NW 2: Schleuse_3456 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3456", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 3: Schleuse_3481 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3481", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 4: Weiche_3482 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3482", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 5: Weiche_3361 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3361", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 6: Schleuse_3487 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3487", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 7: Schleuse_vor_Einfahrt_PS5 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3241", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 8: Weiche_zu_PS5 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3242", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 9: Schleuse_Vorstau_PS5 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3243", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 10: Weiche_PS5_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3244", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 11: Weiche_PS5_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3250", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 12: Schleuse_PS5_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3245", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 13: Schleuse_PS5_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3251", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 14: Schleuse_PS5_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3255", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 15: Weiche_PS5_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3260", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 16: Weiche_PS5_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3256", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 17: Schleuse_PS5_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3262", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 18: Schleuse_vor_Ausfahrt_PS5 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3265", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 19: Weiche_von_PS5 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3263", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 20: Schleuse_vor_Einfahrt_PS4 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3271", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 21: Weiche_zu_PS4 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3272", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 22: Schleuse_Vorstau_PS4 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3273", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 23: Weiche_PS4_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3274", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 24: Weiche_PS4_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3280", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 25: Schleuse_PS4_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3275", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 26: Schleuse_PS4_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3281", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 27: Schleuse_PS4_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3285", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 28: Weiche_PS4_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3290", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 29: Weiche_PS4_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3286", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 30: Schleuse_PS4_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3291", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 31: Weiche_von_PS4 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3292", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 32: Schleuse_vor_Einfahrt_PS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3293", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 33: Weiche_zu_PS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3302", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 34: Schleuse_Vorstau_PS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3303", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 35: Weiche_PS3_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3304", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 36: Weiche_PS3_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3310", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 37: Schleuse_PS3_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3305", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 38: Schleuse_PS3_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3311", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 39: Schleuse_PS3_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3315", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 40: Weiche_PS3_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3320", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 41: Weiche_PS3_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3316", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 42: Schleuse_PS3_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3321", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 43: Schleuse_vor_Ausfahrt_PS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3323", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 44: Weiche_von_PS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3322", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 45: Schleuse_vor_Einfahrt_PS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3331", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 46: Weiche_zu_PS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3332", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 47: Schleuse_Vorstau_PS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3333", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 48: Weiche_PS2_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3334", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 49: Weiche_PS2_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3340", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 50: Schleuse_PS2_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3335", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 51: Schleuse_PS2_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3341", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 52: Schleuse_PS2_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3345", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 53: Weiche_PS2_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3350", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 54: Weiche_PS2_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3346", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 55: Schleuse_PS2_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3351", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 56: Weiche_von_PS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3352", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 57: Schleuse_vor_Einfahrt_PS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3353", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 58: Weiche_zu_PS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3362", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 59: Schleuse_Vorstau_PS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3363", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 60: Weiche_PS1_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3364", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 61: Weiche_PS1_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3370", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 62: Schleuse_PS1_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3365", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 63: Schleuse_PS1_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3371", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 64: Schleuse_PS1_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3375", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 65: Weiche_PS1_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3380", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 66: Weiche_PS1_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3376", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 67: Schleuse_PS1_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3381", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 68: Schleuse_vor_Ausfahrt_PS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3383", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 69: Weiche_von_PS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3382", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 70: Schleuse_vor_Einfahrt_MPS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3390", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 71: Weiche_zu_MPS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3392", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 72: Schleuse_Vorstau_MPS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3393", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 73: Weiche_MPS3_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3394", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 74: Weiche_MPS3_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3400", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 75: Schleuse_MPS3_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3395", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 76: Schleuse_MPS3_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3401", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 77: Schleuse_MPS3_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3405", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 78: Weiche_MPS3_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3410", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 79: Weiche_MPS3_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3406", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 80: Schleuse_MPS3_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3411", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 81: Schleuse_vor_Ausfahrt_MPS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3413", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 82: Weiche_von_MPS3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3412", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 83: Schleuse_vor_Einfahrt_MPS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3421", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 84: Weiche_zu_MPS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3422", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 85: Schleuse_Vorstau_MPS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3423", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 86: Weiche_MPS2_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3424", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 87: Weiche_MPS2_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3430", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 88: Schleuse_MPS2_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3425", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 89: Schleuse_MPS2_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3431", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 90: Schleuse_MPS2_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3435", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 91: Weiche_MPS2_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3440", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 92: Weiche_MPS2_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3436", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 93: Schleuse_MPS2_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3441", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 94: Schleuse_vor_Ausfahrt_MPS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3443", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 95: Weiche_von_MPS2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3442", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 96: Schleuse_vor_Einfahrt_MPS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3450", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 97: Weiche_zu_MPS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3452", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 98: Schleuse_Vorstau_MPS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3453", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 99: Weiche_MPS1_zu_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3454", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 100: Weiche_MPS1_zu_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3460", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 101: Schleuse_MPS1_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3455", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 102: Schleuse_MPS1_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3461", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 103: Schleuse_MPS1_Platz3 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3465", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 104: Weiche_MPS1_von_Platz1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3470", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 105: Weiche_MPS1_von_Platz2 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3466", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 106: Schleuse_MPS1_raus ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3471", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 107: Schleuse_vor_Ausfahrt_MPS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3473", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 108: Weiche_von_MPS1 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3472", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 109: Schleuse_3456 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3540", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 110: Schleuse_3543 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3543", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 111: Ende ---
|
||||
Next: BE
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
=== InstanceDB 1199: DArbeitsplätze_Antriebe [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
MA0061 : "MAntrieb_PowerSave"
|
||||
MA0062 : "MAntrieb_PowerSave"
|
||||
MA0063 : "MAntrieb_PowerSave"
|
||||
MA0064 : "MAntrieb_PowerSave"
|
||||
MA0065 : "MAntrieb_PowerSave"
|
||||
MA0082 : "MAntrieb_PowerSave"
|
||||
MA0087 : "MAntrieb_PowerSave"
|
||||
MA0094 : "MAntrieb_PowerSave"
|
||||
MA0105 : "MAntrieb_PowerSave"
|
||||
MA0112 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS5 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS4 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS3 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS2 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_PS1 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_MPS3 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_MPS2 : "MAntrieb_PowerSave"
|
||||
MA _Einfahrt_MPS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau1_MPS1 : "MAntrieb_PowerSave"
|
||||
MA _Nachstau2_MPS1 : "MAntrieb_PowerSave"
|
||||
MA _Ausfahrt_MPS1 : "MAntrieb_PowerSave"
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
=== InstanceDB 1190: DArbeitsplätze_Sensoren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Stau_BG3566 : "MSensoren"
|
||||
Stau_BG3567 : "MSensoren"
|
||||
Stau_BG3457 : "MSensoren"
|
||||
Stau_BG3447 : "MSensoren"
|
||||
Stau_BG3483 : "MSensoren"
|
||||
Stau_BG3484 : "MSensoren"
|
||||
Stau_BG3486 : "MSensoren"
|
||||
Stau_BG3244 : "MSensoren"
|
||||
Stau_BG3542 : "MSensoren"
|
||||
Stau_Einfahrt_PS5 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS5 : "MSensoren"
|
||||
Stau_Platz1_PS5 : "MSensoren"
|
||||
Stau_Platz2_PS5 : "MSensoren"
|
||||
Stau_Platz3_PS5 : "MSensoren"
|
||||
Stau_Ausfahrt_PS5 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS5 : "MSensoren"
|
||||
Stau_Einfahrt_PS4 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS4 : "MSensoren"
|
||||
Stau_Platz1_PS4 : "MSensoren"
|
||||
Stau_Platz2_PS4 : "MSensoren"
|
||||
Stau_Platz3_PS4 : "MSensoren"
|
||||
Stau_Ausfahrt_PS4 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS4 : "MSensoren"
|
||||
Stau_Einfahrt_PS3 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS3 : "MSensoren"
|
||||
Stau_Platz1_PS3 : "MSensoren"
|
||||
Stau_Platz2_PS3 : "MSensoren"
|
||||
Stau_Platz3_PS3 : "MSensoren"
|
||||
Stau_Ausfahrt_PS3 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS3 : "MSensoren"
|
||||
Stau_Einfahrt_PS2 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS2 : "MSensoren"
|
||||
Stau_Platz1_PS2 : "MSensoren"
|
||||
Stau_Platz2_PS2 : "MSensoren"
|
||||
Stau_Platz3_PS2 : "MSensoren"
|
||||
Stau_Ausfahrt_PS2 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS2 : "MSensoren"
|
||||
Stau_Einfahrt_PS1 : "MSensoren"
|
||||
Stau_nach_Einfahrt_PS1 : "MSensoren"
|
||||
An_BG3383 : "MSensoren"
|
||||
Stau_Platz1_PS1 : "MSensoren"
|
||||
Stau_Platz2_PS1 : "MSensoren"
|
||||
Stau_Platz3_PS1 : "MSensoren"
|
||||
Stau_Ausfahrt_PS1 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_PS1 : "MSensoren"
|
||||
Stau_Einfahrt_MPS3 : "MSensoren"
|
||||
Stau_nach_Einfahrt_MPS3 : "MSensoren"
|
||||
Stau_Platz1_MPS3 : "MSensoren"
|
||||
Stau_Platz2_MPS3 : "MSensoren"
|
||||
Stau_Platz3_MPS3 : "MSensoren"
|
||||
Stau_Ausfahrt_MPS3 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_MPS3 : "MSensoren"
|
||||
Stau_Einfahrt_MPS2 : "MSensoren"
|
||||
Stau_nach_Einfahrt_MPS2 : "MSensoren"
|
||||
Stau_Platz1_MPS2 : "MSensoren"
|
||||
Stau_Platz2_MPS2 : "MSensoren"
|
||||
Stau_Platz3_MPS2 : "MSensoren"
|
||||
Stau_Ausfahrt_MPS2 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_MPS2 : "MSensoren"
|
||||
Stau_Einfahrt_MPS1 : "MSensoren"
|
||||
Stau_nach_Einfahrt_MPS1 : "MSensoren"
|
||||
Stau_Platz1_MPS1 : "MSensoren"
|
||||
Stau_Platz2_MPS1 : "MSensoren"
|
||||
Stau_Platz3_MPS1 : "MSensoren"
|
||||
Stau_Ausfahrt_MPS1 : "MSensoren"
|
||||
Stau_nach_Ausfahrt_MPS1 : "MSensoren"
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
=== InstanceDB 1192: DArbeitsplätze_Zylinder [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3456 : "MZylinder"
|
||||
Schleuse_3481 : "MZylinder"
|
||||
Weiche_3482 : "MZylinder"
|
||||
Weiche_3361 : "MZylinder"
|
||||
Schleuse_3487 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_PS5 : "MZylinder"
|
||||
Weiche_Einfahrt_PS5 : "MZylinder"
|
||||
Schleuse_Vorstau_PS5 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS5 : "MZylinder"
|
||||
Weiche_zu_Platz2_PS5 : "MZylinder"
|
||||
Schleuse_Platz1_PS5 : "MZylinder"
|
||||
Schleuse_Platz2_PS5 : "MZylinder"
|
||||
Schleuse_Platz3_PS5 : "MZylinder"
|
||||
Weiche_von_Platz1_PS5 : "MZylinder"
|
||||
Weiche_von_Platz2_PS5 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS5 : "MZylinder"
|
||||
Schleuse_Vor_Ausfahrt_PS5 : "MZylinder"
|
||||
Weiche_Ausfahrt_PS5 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_PS4 : "MZylinder"
|
||||
Weiche_Einfahrt_PS4 : "MZylinder"
|
||||
Schleuse_Vorstau_PS4 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS4 : "MZylinder"
|
||||
Weiche_zu_Platz2_PS4 : "MZylinder"
|
||||
Schleuse_Platz1_PS4 : "MZylinder"
|
||||
Schleuse_Platz2_PS4 : "MZylinder"
|
||||
Schleuse_Platz3_PS4 : "MZylinder"
|
||||
Weiche_von_Platz1_PS4 : "MZylinder"
|
||||
Weiche_von_Platz2_PS4 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS4 : "MZylinder"
|
||||
Weiche_Ausfahrt_PS4 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_PS3 : "MZylinder"
|
||||
Weiche_Einfahrt_PS3 : "MZylinder"
|
||||
Schleuse_Vorstau_PS3 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS3 : "MZylinder"
|
||||
Weiche_zu_Platz2_PS3 : "MZylinder"
|
||||
Schleuse_Platz1_PS3 : "MZylinder"
|
||||
Schleuse_Platz2_PS3 : "MZylinder"
|
||||
Schleuse_Platz3_PS3 : "MZylinder"
|
||||
Weiche_von_Platz1_PS3 : "MZylinder"
|
||||
Weiche_von_Platz2_PS3 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS3 : "MZylinder"
|
||||
Schleuse_Vor_Ausfahrt_PS3 : "MZylinder"
|
||||
Weiche_Ausfahrt_PS3 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_PS2 : "MZylinder"
|
||||
Weiche_Einfahrt_PS2 : "MZylinder"
|
||||
Schleuse_Vorstau_PS2 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS2 : "MZylinder"
|
||||
Weiche_zu_Platz2_PS2 : "MZylinder"
|
||||
Schleuse_Platz1_PS2 : "MZylinder"
|
||||
Schleuse_Platz2_PS2 : "MZylinder"
|
||||
Schleuse_Platz3_PS2 : "MZylinder"
|
||||
Weiche_von_Platz1_PS2 : "MZylinder"
|
||||
Weiche_von_Platz2_PS2 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS2 : "MZylinder"
|
||||
Weiche_Ausfahrt_PS2 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_PS1 : "MZylinder"
|
||||
Weiche_Einfahrt_PS1 : "MZylinder"
|
||||
Schleuse_Vorstau_PS1 : "MZylinder"
|
||||
Weiche_zu_Platz1_PS1 : "MZylinder"
|
||||
Weiche_zu_Platz2_PS1 : "MZylinder"
|
||||
Schleuse_Platz1_PS1 : "MZylinder"
|
||||
Schleuse_Platz2_PS1 : "MZylinder"
|
||||
Schleuse_Platz3_PS1 : "MZylinder"
|
||||
Weiche_von_Platz1_PS1 : "MZylinder"
|
||||
Weiche_von_Platz2_PS1 : "MZylinder"
|
||||
Schleuse_Ausfahrt_PS1 : "MZylinder"
|
||||
Schleuse_Vor_Ausfahrt_PS1 : "MZylinder"
|
||||
Weiche_Ausfahrt_PS1 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_MPS3 : "MZylinder"
|
||||
Weiche_Einfahrt_MPS3 : "MZylinder"
|
||||
Schleuse_Vorstau_MPS3 : "MZylinder"
|
||||
Weiche_zu_Platz1_MPS3 : "MZylinder"
|
||||
Weiche_zu_Platz2_MPS3 : "MZylinder"
|
||||
Schleuse_Platz1_MPS3 : "MZylinder"
|
||||
Schleuse_Platz2_MPS3 : "MZylinder"
|
||||
Schleuse_Platz3_MPS3 : "MZylinder"
|
||||
Weiche_von_Platz1_MPS3 : "MZylinder"
|
||||
Weiche_von_Platz2_MPS3 : "MZylinder"
|
||||
Schleuse_Ausfahrt_MPS3 : "MZylinder"
|
||||
Schleuse_Vor_Ausfahrt_MPS3 : "MZylinder"
|
||||
Weiche_Ausfahrt_MPS3 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_MPS2 : "MZylinder"
|
||||
Weiche_Einfahrt_MPS2 : "MZylinder"
|
||||
Schleuse_Vorstau_MPS2 : "MZylinder"
|
||||
Weiche_zu_Platz1_MPS2 : "MZylinder"
|
||||
Weiche_zu_Platz2_MPS2 : "MZylinder"
|
||||
Schleuse_Platz1_MPS2 : "MZylinder"
|
||||
Schleuse_Platz2_MPS2 : "MZylinder"
|
||||
Schleuse_Platz3_MPS2 : "MZylinder"
|
||||
Weiche_von_Platz1_MPS2 : "MZylinder"
|
||||
Weiche_von_Platz2_MPS2 : "MZylinder"
|
||||
Schleuse_Ausfahrt_MPS2 : "MZylinder"
|
||||
Schleuse_Vor_Ausfahrt_MPS2 : "MZylinder"
|
||||
Weiche_Ausfahrt_MPS2 : "MZylinder"
|
||||
Schleuse_Vor_Einfahrt_MPS1 : "MZylinder"
|
||||
Weiche_Einfahrt_MPS1 : "MZylinder"
|
||||
Schleuse_Vorstau_MPS1 : "MZylinder"
|
||||
Weiche_zu_Platz1_MPS1 : "MZylinder"
|
||||
Weiche_zu_Platz2_MPS1 : "MZylinder"
|
||||
Schleuse_Platz1_MPS1 : "MZylinder"
|
||||
Schleuse_Platz2_MPS1 : "MZylinder"
|
||||
Schleuse_Platz3_MPS1 : "MZylinder"
|
||||
Weiche_von_Platz1_MPS1 : "MZylinder"
|
||||
Weiche_von_Platz2_MPS1 : "MZylinder"
|
||||
Schleuse_Ausfahrt_MPS1 : "MZylinder"
|
||||
Schleuse_Vor_Ausfahrt_MPS1 : "MZylinder"
|
||||
Weiche_Ausfahrt_MPS1 : "MZylinder"
|
||||
Schleuse_3540 : "MZylinder"
|
||||
Schleuse_3543 : "MZylinder"
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
=== FB 1129: Abführung_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3540 : "MHMOmniSchleuse"
|
||||
Schleuse_3543 : "MHMOmniSchleuse"
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// Abführ-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_3540.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3543.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_3540.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3543.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 3: Schleuse hinter MPS1 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3540, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3541", B_InSchleuse:="BG3540", B_AusSchleuse:="BG3542", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_BG3542.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0112", Antrieb_plus_aktiv:="MA0112", Schleuse_geöffnet:="MB3540", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_3540.Stat.Ast, Error:=DB608.DBW350, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0112.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0112.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0112.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 4: Schleuse vor BST 4 ---
|
||||
AN "6_HMI_Err_UH06_AMR".System.Gesamt_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST4_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST4_Geschlossen
|
||||
AN "6_HMI_Err_UH06_AMR".System."BST4_Störung"
|
||||
A "DHWtoOB_OmniFahren".Schleuse_3546.Dyn.Sk.Bereich_ok
|
||||
// / UN #Trolleys_starten.Wartezeit_aktiv //Neu: Vor AFS runter
|
||||
= Fahren_Ok
|
||||
|
||||
A "DHWtoOB_Sensoren".Stau_BG3570.Stat.B_Akt
|
||||
O "DHWtoOB_Sensoren".Stau_BG3544.Stat.B_Akt
|
||||
= Stau_raus
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3543, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3542", B_InSchleuse:="BG3543", B_AusSchleuse:="BG3570", B_Stau_raus:=Stau_raus, Start_Ok:=Fahren_Ok, Antrieb_Schleuse_aktiv:="MA0112", Antrieb_plus_aktiv:="MA0113", Schleuse_geöffnet:="MB3543", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_3543.Stat.Ast, Error:=DB608.DBW352, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0112.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0112.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0112.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0112.Stat.A_PS, Antrieb_plus_vor:="DHWtoOB_Antriebe".MA0113.Stat.A_vor, Antrieb_plus_start:="DHWtoOB_Antriebe".MA0113.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 5: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 6: Ende ---
|
||||
BE
|
||||
|
||||
+202
@@ -0,0 +1,202 @@
|
||||
=== FC 1182: Arbeitsplatz_Draussen_FC [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Position : Int
|
||||
WeichenZiel : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Rückmeldung ---
|
||||
SET // Rückmeldungen erst mal resetten
|
||||
R "M180.6" // Weiterfahrt von Ziel-FC erlaubt
|
||||
|
||||
|
||||
--- NW 2: Schleuse 3481: Ausgefahren ? (Einfahrt 180 Grad-ByPass) ---
|
||||
L "MW190"
|
||||
L 3481 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC Vor_ByPassE
|
||||
|
||||
// Trolley am Arbeitsplatz reservieren:
|
||||
CALL FC "Reservierung_in_Arbeitsplatz_eintragen" (TrolleyID:="DZuführung_OmniFahren".Schleuse_3481.Dyn.TrolleyID_Schleuse, Ziel:="DZuführung_OmniFahren".Schleuse_3481.Dyn.Trolley_EndZiel, Standort:=w#3481, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
// Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DZuführung_OmniFahren".Schleuse_3481.Dyn.TrolleyID_Schleuse, Ziel:="DZuführung_OmniFahren".Schleuse_3481.Dyn.Trolley_EndZiel, AusfahrZiel:=16#B300, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
Vor_ByPassE: NOP 0
|
||||
|
||||
|
||||
--- NW 3: Schleuse 3241: Ausgefahren ? (Einfahrt PS5) ---
|
||||
L "MW190"
|
||||
L 3241 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS5E
|
||||
|
||||
// Trolley am Arbeitsplatz reservieren:
|
||||
CALL FC "Reservierung_in_Arbeitsplatz_eintragen" (TrolleyID:="DPS5_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DPS5_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, Standort:=16#3250, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
// Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DPS5_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DPS5_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#A500, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
PS5E: NOP 0
|
||||
|
||||
|
||||
--- NW 4: Schleuse 3271: Ausgefahren ? (Einfahrt PS4) ---
|
||||
L "MW190"
|
||||
L 3271 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS4E
|
||||
|
||||
// /Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DPS4_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DPS4_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#A400, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
PS4E: NOP 0
|
||||
|
||||
|
||||
--- NW 5: Schleuse 3293: Ausgefahren ? (Einfahrt PS3) ---
|
||||
L "MW190"
|
||||
L 3293 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS3E
|
||||
|
||||
// /Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#A300, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
PS3E: NOP 0
|
||||
|
||||
|
||||
--- NW 6: Schleuse 3331: Ausgefahren ? (Einfahrt PS2) ---
|
||||
L "MW190"
|
||||
L 3331 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS2E
|
||||
|
||||
// /Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#A200, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
PS2E: NOP 0
|
||||
|
||||
|
||||
--- NW 7: Schleuse 3353: Ausgefahren ? (Einfahrt PS1) ---
|
||||
L "MW190"
|
||||
L 3353 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS1E
|
||||
|
||||
// /Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#A100, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
PS1E: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse 3390: Ausgefahren ? (Einfahrt MPS3) ---
|
||||
L "MW190"
|
||||
L 3390 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS3E
|
||||
|
||||
// /Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DMPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DMPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#B300, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
MPS3E: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse 3421: Ausgefahren ? (Einfahrt MPS2) ---
|
||||
L "MW190"
|
||||
L 3421 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS2E
|
||||
|
||||
// /Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DMPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DMPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#B200, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
BEU
|
||||
|
||||
MPS2E: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse 3450: Ausgefahren ? (Einfahrt MPS1) ---
|
||||
L "MW190"
|
||||
L 3450 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1E
|
||||
|
||||
// /Trolley an Arbeitsplatz übergeben:
|
||||
CALL FC "Trolley_in_Arbeitsplatz_eingefahren" (TrolleyID:="DMPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Ziel:="DMPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Trolley_EndZiel, AusfahrZiel:=16#B100, Gesamt_Trolley_DL:=1000)
|
||||
|
||||
L "DMPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.Weichen_Ziel
|
||||
L 16#3451 // Gerade ? Also zum OB-Bereich?
|
||||
<>I // Nein !
|
||||
BEC
|
||||
|
||||
// Trolleydaten in DB1000 löschen, da in AMR fährt und danach kein Leser mehr!
|
||||
CALL FC "Trolleydaten_löschen" (Gesamt_Trolley_DL:=1000, TrolleyID:="DMPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1E: NOP 0
|
||||
|
||||
|
||||
--- NW 11: Schleuse 3455: Ausgefahren ? (Platz1 MPS1) ---
|
||||
L "MW190"
|
||||
L 3455 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1P1E
|
||||
|
||||
// Trolleydaten in DB1000 löschen, da in AMR fährt und danach kein Leser mehr!
|
||||
CALL FC "Trolleydaten_löschen" (Gesamt_Trolley_DL:=1000, TrolleyID:="DMPS1_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1P1E: NOP 0
|
||||
|
||||
|
||||
--- NW 12: Schleuse 3461: Ausgefahren ? (Platz2 MPS1) ---
|
||||
L "MW190"
|
||||
L 3461 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1P2E
|
||||
|
||||
// Trolleydaten in DB1000 löschen, da in AMR fährt und danach kein Leser mehr!
|
||||
CALL FC "Trolleydaten_löschen" (Gesamt_Trolley_DL:=1000, TrolleyID:="DMPS1_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1P2E: NOP 0
|
||||
|
||||
|
||||
--- NW 13: Schleuse 3465: Ausgefahren ? (Platz3 MPS1) ---
|
||||
L "MW190"
|
||||
L 3465 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1P3E
|
||||
|
||||
// Trolleydaten in DB1000 löschen, da in AMR fährt und danach kein Leser mehr!
|
||||
CALL FC "Trolleydaten_löschen" (Gesamt_Trolley_DL:=1000, TrolleyID:="DMPS1_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1P3E: NOP 0
|
||||
|
||||
|
||||
--- NW 14: Ende ---
|
||||
BE
|
||||
|
||||
+910
@@ -0,0 +1,910 @@
|
||||
=== FC 1180: Arbeitsplatz_Leser_FC [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Zielebene : Word
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Rückmeldung ---
|
||||
// Keine
|
||||
L 0 // Evtl. Zwischenziel (MW196)
|
||||
T "MW196"
|
||||
|
||||
|
||||
--- NW 2: Schleuse 3481: (Vor 180 Grad-ByPass) ---
|
||||
L "MW190"
|
||||
L 3481 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC E3481
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC Y3481
|
||||
BEU
|
||||
|
||||
Y3481: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DZuführung_OmniFahren".Schleuse_3481.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DZuführung_OmniFahren".Schleuse_3481.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DZuführung_OmniFahren".Schleuse_3481.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
E3481: NOP 0
|
||||
|
||||
|
||||
--- NW 3: Schleuse 3241: (Vor Einfahrt PS5) ---
|
||||
L "MW190"
|
||||
L 3241 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS5E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS5
|
||||
|
||||
BEU
|
||||
|
||||
YPS5: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS5_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS5_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS5_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS5E: NOP 0
|
||||
|
||||
|
||||
--- NW 4: Schleuse 3245: (ABP1/PS5) ---
|
||||
L "MW190"
|
||||
L 3245 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS5A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS5A1
|
||||
|
||||
BEU
|
||||
|
||||
YPS5A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS5_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS5_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS5_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS5A1: NOP 0
|
||||
|
||||
|
||||
--- NW 5: Schleuse 3251: (ABP2/PS5) ---
|
||||
L "MW190"
|
||||
L 3251 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS5A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS5A2
|
||||
|
||||
BEU
|
||||
|
||||
YPS5A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS5_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS5_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS5_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS5A2: NOP 0
|
||||
|
||||
|
||||
--- NW 6: Schleuse 3255: (ABP3/PS5) ---
|
||||
L "MW190"
|
||||
L 3255 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS5A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS5A3
|
||||
|
||||
BEU
|
||||
|
||||
YPS5A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS5_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS5_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS5_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS5A3: NOP 0
|
||||
|
||||
|
||||
--- NW 7: Schleuse 3271: (Vor Einfahrt PS4) ---
|
||||
L "MW190"
|
||||
L 3271 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS4E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS4
|
||||
|
||||
BEU
|
||||
|
||||
YPS4: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS4_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS4_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS4_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS4E: NOP 0
|
||||
|
||||
|
||||
--- NW 8: Schleuse 3275: (ABP1/PS4) ---
|
||||
L "MW190"
|
||||
L 3275 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS4A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS4A1
|
||||
|
||||
BEU
|
||||
|
||||
YPS4A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS4_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS4_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS4_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS4A1: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Schleuse 3281: (ABP2/PS4) ---
|
||||
L "MW190"
|
||||
L 3281 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS4A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS4A2
|
||||
|
||||
BEU
|
||||
|
||||
YPS4A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS4_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS4_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS4_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS4A2: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Schleuse 3285: (ABP3/PS4) ---
|
||||
L "MW190"
|
||||
L 3285 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS4A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS4A3
|
||||
|
||||
BEU
|
||||
|
||||
YPS4A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS4_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS4_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS4_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS4A3: NOP 0
|
||||
|
||||
|
||||
--- NW 11: Schleuse 3293: (Vor Einfahrt PS3) ---
|
||||
L "MW190"
|
||||
L 3293 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS3E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS3
|
||||
|
||||
BEU
|
||||
|
||||
YPS3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS3_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS3E: NOP 0
|
||||
|
||||
|
||||
--- NW 12: Schleuse 3305: (ABP1/PS3) ---
|
||||
L "MW190"
|
||||
L 3305 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS3A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS3A1
|
||||
|
||||
BEU
|
||||
|
||||
YPS3A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS3_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS3_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS3_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS3A1: NOP 0
|
||||
|
||||
|
||||
--- NW 13: Schleuse 3311: (ABP2/PS3) ---
|
||||
L "MW190"
|
||||
L 3311 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS3A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS3A2
|
||||
|
||||
BEU
|
||||
|
||||
YPS3A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS3_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS3_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS3_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS3A2: NOP 0
|
||||
|
||||
|
||||
--- NW 14: Schleuse 3315: (ABP3/PS3) ---
|
||||
L "MW190"
|
||||
L 3315 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS3A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS3A3
|
||||
|
||||
BEU
|
||||
|
||||
YPS3A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS3_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS3_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS3_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS3A3: NOP 0
|
||||
|
||||
|
||||
--- NW 15: Schleuse 3331: (Vor Einfahrt PS2) ---
|
||||
L "MW190"
|
||||
L 3331 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS2E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS2
|
||||
|
||||
BEU
|
||||
|
||||
YPS2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS2_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS2E: NOP 0
|
||||
|
||||
|
||||
--- NW 16: Schleuse 3335: (ABP1/PS2) ---
|
||||
L "MW190"
|
||||
L 3335 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS2A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS2A1
|
||||
|
||||
BEU
|
||||
|
||||
YPS2A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS2_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS2_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS2_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS2A1: NOP 0
|
||||
|
||||
|
||||
--- NW 17: Schleuse 3341: (ABP2/PS2) ---
|
||||
L "MW190"
|
||||
L 3341 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS2A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS2A2
|
||||
|
||||
BEU
|
||||
|
||||
YPS2A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS2_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS2_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS2_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS2A2: NOP 0
|
||||
|
||||
|
||||
--- NW 18: Schleuse 3345: (ABP3/PS2) ---
|
||||
L "MW190"
|
||||
L 3345 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS2A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS2A3
|
||||
|
||||
BEU
|
||||
|
||||
YPS2A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS2_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS2_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS2_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS2A3: NOP 0
|
||||
|
||||
|
||||
--- NW 19: Schleuse 3353: (Vor Einfahrt PS1) ---
|
||||
L "MW190"
|
||||
L 3353 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS1E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS1
|
||||
|
||||
BEU
|
||||
|
||||
YPS1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS1_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS1E: NOP 0
|
||||
|
||||
|
||||
--- NW 20: Schleuse 3365: (ABP1/PS1) ---
|
||||
L "MW190"
|
||||
L 3365 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS1A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS1A1
|
||||
|
||||
BEU
|
||||
|
||||
YPS1A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS1_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS1_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS1_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS1A1: NOP 0
|
||||
|
||||
|
||||
--- NW 21: Schleuse 3371: (ABP2/PS1) ---
|
||||
L "MW190"
|
||||
L 3371 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS1A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS1A2
|
||||
|
||||
BEU
|
||||
|
||||
YPS1A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS1_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS1_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS1_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS1A2: NOP 0
|
||||
|
||||
|
||||
--- NW 22: Schleuse 3375: (ABP3/PS1) ---
|
||||
L "MW190"
|
||||
L 3375 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC PS1A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YPS1A3
|
||||
|
||||
BEU
|
||||
|
||||
YPS1A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DPS1_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DPS1_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DPS1_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
PS1A3: NOP 0
|
||||
|
||||
|
||||
--- NW 23: Schleuse 3390: (Vor Einfahrt MPS3) ---
|
||||
L "MW190"
|
||||
L 3390 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS3E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS3
|
||||
|
||||
BEU
|
||||
|
||||
YMPS3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS3_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS3_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS3E: NOP 0
|
||||
|
||||
|
||||
--- NW 24: Schleuse 3395: (ABP1/MPS3) ---
|
||||
L "MW190"
|
||||
L 3395 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS3A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS3A1
|
||||
|
||||
BEU
|
||||
|
||||
YMPS3A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS3_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS3_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS3_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS3A1: NOP 0
|
||||
|
||||
|
||||
--- NW 25: Schleuse 3401: (ABP2/MPS3) ---
|
||||
L "MW190"
|
||||
L 3401 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS3A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS3A2
|
||||
|
||||
BEU
|
||||
|
||||
YMPS3A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS3_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS3_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS3_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS3A2: NOP 0
|
||||
|
||||
|
||||
--- NW 26: Schleuse 3405: (ABP3/MPS3) ---
|
||||
L "MW190"
|
||||
L 3405 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS3A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS3A3
|
||||
|
||||
BEU
|
||||
|
||||
YMPS3A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS3_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS3_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS3_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS3A3: NOP 0
|
||||
|
||||
|
||||
--- NW 27: Schleuse 3421: (Vor Einfahrt MPS2) ---
|
||||
L "MW190"
|
||||
L 3421 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS2E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS2
|
||||
|
||||
BEU
|
||||
|
||||
YMPS2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS2_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS2_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS2E: NOP 0
|
||||
|
||||
|
||||
--- NW 28: Schleuse 3425: (ABP1/MPS2) ---
|
||||
L "MW190"
|
||||
L 3425 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS2A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS2A1
|
||||
|
||||
BEU
|
||||
|
||||
YMPS2A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS2_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS2_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS2_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS2A1: NOP 0
|
||||
|
||||
|
||||
--- NW 29: Schleuse 3431: (ABP2/MPS2) ---
|
||||
L "MW190"
|
||||
L 3431 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS2A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS2A2
|
||||
|
||||
BEU
|
||||
|
||||
YMPS2A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS2_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS2_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS2_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS2A2: NOP 0
|
||||
|
||||
|
||||
--- NW 30: Schleuse 3435: (ABP3/MPS2) ---
|
||||
L "MW190"
|
||||
L 3435 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS2A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS2A3
|
||||
|
||||
BEU
|
||||
|
||||
YMPS2A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS2_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS2_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS2_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS2A3: NOP 0
|
||||
|
||||
|
||||
--- NW 31: Schleuse 3450: (Vor Einfahrt MPS1) ---
|
||||
L "MW190"
|
||||
L 3450 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1E
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS1
|
||||
|
||||
BEU
|
||||
|
||||
YMPS1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS1_OmniFahren".Schleuse_vor_Einfahrt.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS1_OmniFahren".Schleuse_vor_Einfahrt.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1E: NOP 0
|
||||
|
||||
|
||||
--- NW 32: Schleuse 3455: (ABP1/MPS1) ---
|
||||
L "MW190"
|
||||
L 3455 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1A1
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS1A1
|
||||
|
||||
BEU
|
||||
|
||||
YMPS1A1: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS1_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS1_OmniFahren".Schleuse_Platz_1.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS1_OmniFahren".Schleuse_Platz_1.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1A1: NOP 0
|
||||
|
||||
|
||||
--- NW 33: Schleuse 3461: (ABP2/MPS1) ---
|
||||
L "MW190"
|
||||
L 3461 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1A2
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS1A2
|
||||
|
||||
BEU
|
||||
|
||||
YMPS1A2: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS1_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS1_OmniFahren".Schleuse_Platz_2.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS1_OmniFahren".Schleuse_Platz_2.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1A2: NOP 0
|
||||
|
||||
|
||||
--- NW 34: Schleuse 3465: (ABP3/MPS1) ---
|
||||
L "MW190"
|
||||
L 3465 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC MPS1A3
|
||||
|
||||
AN "M180.0" // Lesefehler
|
||||
JC YMPS1A3
|
||||
|
||||
BEU
|
||||
|
||||
YMPS1A3: AN "M180.1" // unbekannt in TrolleysDL
|
||||
BEC
|
||||
|
||||
// Daten in Datenbank neu anlegen:
|
||||
L "DMPS1_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse
|
||||
L DINT#0 // ID bekannt?
|
||||
==D // Nein
|
||||
BEC
|
||||
|
||||
CALL FC "Trolleydaten_neu_anlegen" (Gesamt_Trolley_DL:="DMPS1_OmniFahren".Schleuse_Platz_3.Schleuse.Gesamt_Trolley_DL, TrolleyID:="DMPS1_OmniFahren".Schleuse_Platz_3.Dyn.TrolleyID_Schleuse, Endziel:=16#0000, ShopGroup:=DINT#0)
|
||||
|
||||
BEU
|
||||
|
||||
MPS1A3: NOP 0
|
||||
|
||||
|
||||
--- NW 35: Ende ---
|
||||
BE
|
||||
|
||||
+1114
File diff suppressed because it is too large
Load Diff
+8
@@ -0,0 +1,8 @@
|
||||
=== InstanceDB 1129: DAbführung_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3540 : "MHMOmniSchleuse"
|
||||
Schleuse_3543 : "MHMOmniSchleuse"
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
=== InstanceDB 1120: DZuführung_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3456 : "MHMOmniSchleuse_Plus"
|
||||
Schleuse_3481 : "MHMOmniSchleuse"
|
||||
Weiche_3482 : "MHMOmniWeiche"
|
||||
Schleuse_3487 : "MHMOmniSchleuse_Plus"
|
||||
Übergang_3446 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3485 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3490 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3240 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3480 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Aufzug_freiräumen : Bool
|
||||
Tastensperre : Bool
|
||||
Alle_ABPs_anfahren : Bool
|
||||
Weiche_3482_frei : Bool
|
||||
+227
@@ -0,0 +1,227 @@
|
||||
=== FB 1120: Zuführung_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3456 : "MHMOmniSchleuse_Plus"
|
||||
Schleuse_3481 : "MHMOmniSchleuse"
|
||||
Weiche_3482 : "MHMOmniWeiche"
|
||||
Schleuse_3487 : "MHMOmniSchleuse_Plus"
|
||||
Übergang_3446 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3485 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3490 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3240 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Übergang_3480 : "MHMÜbergang_ohne_Schleuse_AMR"
|
||||
Aufzug_freiräumen : Bool
|
||||
Tastensperre : Bool
|
||||
Alle_ABPs_anfahren : Bool
|
||||
Weiche_3482_frei : Bool // Weiche noch nicht benutzt
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_AusSchleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// Zuführ-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_3456.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3481.Dyn.Sk.Auto_akt
|
||||
= Weiche_3482.Dyn.Status.Auto_akt
|
||||
= Schleuse_3487.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06.BereichErr
|
||||
= Schleuse_3456.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3481.Dyn.Sk.Bereich_ok
|
||||
= Weiche_3482.Dyn.Status.Bereich_ok
|
||||
= Schleuse_3487.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Weiche 3482 noch nicht benutzt ---
|
||||
AN Schleuse_3481.Status2."Weichen-Schritt" // Beide Quellen
|
||||
AN "DPS1_OmniFahren".Schleuse_vor_Einfahrt.Status2."Weichen-Schritt"
|
||||
= Weiche_3482_frei
|
||||
|
||||
|
||||
--- NW 3: Störungen quittieren ---
|
||||
A "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 4: Aufzugs-Bereich freiräumen ---
|
||||
A "SF3462"
|
||||
O "SF3463"
|
||||
Rise Tastensperre
|
||||
JCN NixAufzug
|
||||
|
||||
AN "Aufzug_freiräumen"
|
||||
= "Aufzug_freiräumen"
|
||||
|
||||
NixAufzug: NOP 0
|
||||
|
||||
A "Aufzug_freiräumen"
|
||||
= "PF3462"
|
||||
= "PF3463"
|
||||
= "6_HMI_Err_UH06_AMR".System.Aufzug_Vorrang
|
||||
|
||||
|
||||
--- NW 5: Schleuse vor Aufzug ---
|
||||
A "BG3566"
|
||||
O "BG3567"
|
||||
= B_aktiv
|
||||
|
||||
A "DArbeitsplätze_Sensoren".Stau_BG3457.Stat.B_Akt
|
||||
O "DArbeitsplätze_Sensoren".Stau_BG3447.Stat.B_Akt
|
||||
O "Übergang_3446"."Am_Übergang".Stat.B_Akt
|
||||
= Stau_raus
|
||||
|
||||
AN "Aufzug_freiräumen"
|
||||
= Fahren_Ok
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3456, ErrQuit:=ErrQuit, B_VorSchleuse:=B_aktiv, B_InSchleuse:="BG3456", B_Zähl:="BG3457", B_Stau_raus:=Stau_raus, Start_Ok:=Fahren_Ok, Antrieb_Schleuse_aktiv:="MA0061", Antrieb_plus_aktiv:="MA0061", Schleuse_geöffnet:="MB3456", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_3456.Stat.Ast, Error:=DB608.DBW342, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0061.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0061.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0061.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0061.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
A "DArbeitsplätze_Sensoren".Stau_BG3457.Stat.B_Akt
|
||||
AN "DArbeitsplätze_Sensoren".Stau_BG3447.Stat.B_Akt
|
||||
S "DArbeitsplätze_Antriebe".MA0061.Stat.A_vor
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_vor
|
||||
|
||||
A "DArbeitsplätze_Sensoren".Stau_BG3457.Stat.B_Akt
|
||||
O "DArbeitsplätze_Sensoren".Stau_BG3457.Stat.B_Akt
|
||||
S "DArbeitsplätze_Antriebe".MA0061.Stat.A_start
|
||||
S "DArbeitsplätze_Antriebe".MA0062.Stat.A_start
|
||||
|
||||
|
||||
--- NW 6: MA0061/0062 / Übergang 3446 ---
|
||||
CALL FB "None" , (ErrQuit:=ErrQuit, B_Anfang:="BG3457", B_Am_Übergang:="BG3446", B_Stau_Antrieb_plus:="BG3447", Antrieb_aktiv:="MA0061", Antrieb_plus_aktiv:="MA0062", Antrieb_vor:="DArbeitsplätze_Antriebe".MA0061.Stat.A_vor, Antrieb_start:="DArbeitsplätze_Antriebe".MA0061.Stat.A_start, Antrieb_stop:=?, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0062.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0062.Stat.A_start)
|
||||
|
||||
|
||||
--- NW 7: MA0062/0063 / Übergang 3480 ---
|
||||
A "BG3481"
|
||||
AN "MB3481"
|
||||
= B_aktiv
|
||||
|
||||
CALL FB "None" , (ErrQuit:=ErrQuit, B_Anfang:="BG3447", B_Am_Übergang:="BG3480", B_Stau_Antrieb_plus:=B_aktiv, Antrieb_aktiv:="MA0062", Antrieb_plus_aktiv:="MA0063", Antrieb_vor:="DArbeitsplätze_Antriebe".MA0062.Stat.A_vor, Antrieb_start:="DArbeitsplätze_Antriebe".MA0062.Stat.A_start, Antrieb_stop:="DArbeitsplätze_Antriebe".MA0062.Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0063.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0063.Stat.A_start)
|
||||
|
||||
|
||||
--- NW 8: Schleuse vor 180 Grad-Bypass ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3481, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3447", B_InSchleuse:="BG3481", B_AusSchleuse:=?, B_Stau_raus:=?, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0062", Antrieb_plus_aktiv:="MA0063", Schleuse_geöffnet:="MB3481", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_3481.Stat.Ast, Error:=DB608.DBW344, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0062.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0062.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0062.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0062.Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0063.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0063.Stat.A_start, hStOk:=ErrAnz) // von Weiche | von Weiche
|
||||
|
||||
// ByPass-Weiche wieder freigeben:
|
||||
A Schleuse_3481.Dyn.Status.Trolley_draussen
|
||||
R "DPS2_OmniFahren".Vorfahrt_Ausfahrweiche."Weiche_von_ByPass-Sep_belegt"
|
||||
|
||||
|
||||
--- NW 9: Weiche 180 Grad-Bypass ---
|
||||
CALL FB "None" , (Weichen_Nr:=3482, ErrQuit:=ErrQuit, Fahren_Ok:=1, B_Ziel_gerade:="BG3483", B_Ziel_abzweig:="BG3383", Antrieb_Weiche_aktiv:="MA0063", Antrieb_Gerade_aktiv:="MA0063", Antrieb_Abzweig_aktiv:="MA0062", Weiche_ist_AST:="MB3482", Y_Weiche_gerade:=?, Y_Weiche_abzweig:="DArbeitsplätze_Zylinder".Weiche_3482.Stat.Ast, Error:=DB608.DBW346, Antrieb_Weiche_vor:="DArbeitsplätze_Antriebe".MA0063.Stat.A_vor, Antrieb_Weiche_stop:="DArbeitsplätze_Antriebe".MA0063.Stat.Stop_vor, Antrieb_Weiche_gerade_vor:=?, Antrieb_Weiche_gerade_stop:=?, Antrieb_Weiche_abzweig_vor:="DArbeitsplätze_Antriebe".MA0062.Stat.A_vor, Antrieb_Weiche_abzweig_stop:="DArbeitsplätze_Antriebe".MA0062.Stat.Stop_vor, hStOk:=ErrAnz) // s.o. | s.o.
|
||||
|
||||
|
||||
--- NW 10: MA0063 / Übergang 3485 ---
|
||||
CALL FB "None" , (ErrQuit:=ErrQuit, B_Anfang:="BG3483", B_Am_Übergang:="BG3485", B_Stau_Antrieb_plus:="BG3484", Antrieb_aktiv:="MA0063", Antrieb_plus_aktiv:="MA0064", Antrieb_vor:="DArbeitsplätze_Antriebe".MA0063.Stat.A_vor, Antrieb_start:="DArbeitsplätze_Antriebe".MA0063.Stat.A_start, Antrieb_stop:="DArbeitsplätze_Antriebe".MA0063.Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0064.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0064.Stat.A_start)
|
||||
|
||||
|
||||
--- NW 11: Schleuse vor 180 Grad-Turn ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3487, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3484", B_InSchleuse:="BG3487", B_Zähl:="BG3490", B_Stau_raus:="DArbeitsplätze_Sensoren".Stau_BG3486.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0064", Antrieb_plus_aktiv:="MA0064", Schleuse_geöffnet:="MB3487", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DArbeitsplätze_Zylinder".Schleuse_3487.Stat.Ast, Error:=DB608.DBW348, Antrieb_Schleuse_vor:="DArbeitsplätze_Antriebe".MA0064.Stat.A_vor, Antrieb_Schleuse_start:="DArbeitsplätze_Antriebe".MA0064.Stat.A_start, Antrieb_Schleuse_stop:="DArbeitsplätze_Antriebe".MA0064.Stat.Stop_vor, Antrieb_Schleuse_PS:="DArbeitsplätze_Antriebe".MA0064.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 12: MA0064 / Übergang 3490 ---
|
||||
CALL FB "None" , (ErrQuit:=ErrQuit, B_Anfang:="MB3487", B_Am_Übergang:="BG3490", B_Stau_Antrieb_plus:="BG3486", Antrieb_aktiv:="MA0064", Antrieb_plus_aktiv:="MA0065", Antrieb_vor:="DArbeitsplätze_Antriebe".MA0064.Stat.A_vor, Antrieb_start:="DArbeitsplätze_Antriebe".MA0064.Stat.A_start, Antrieb_stop:="DArbeitsplätze_Antriebe".MA0064.Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0065.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0065.Stat.A_start)
|
||||
|
||||
|
||||
--- NW 13: MA0065 / Übergang 3240 ---
|
||||
CALL FB "None" , (ErrQuit:=ErrQuit, B_Anfang:="BG3486", B_Am_Übergang:="BG3240", B_Stau_Antrieb_plus:="BG3244", Antrieb_aktiv:="MA0065", Antrieb_plus_aktiv:="MA0082", Antrieb_vor:="DArbeitsplätze_Antriebe".MA0065.Stat.A_vor, Antrieb_start:="DArbeitsplätze_Antriebe".MA0065.Stat.A_start, Antrieb_stop:="DArbeitsplätze_Antriebe".MA0065.Stat.A_PS, Antrieb_plus_vor:="DArbeitsplätze_Antriebe".MA0082.Stat.A_vor, Antrieb_plus_start:="DArbeitsplätze_Antriebe".MA0082.Stat.A_start)
|
||||
|
||||
|
||||
--- NW 14: Störungen anzeigen ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 15: Alle Arbeitsplätze anfahren ---
|
||||
CLR // Für inbetriebnahme
|
||||
S Alle_ABPs_anfahren
|
||||
|
||||
|
||||
--- NW 16: Simulation an ABP zum Weiterfahren ---
|
||||
AN "SGes".Ohne_PC_Fahren
|
||||
JC No
|
||||
|
||||
// T21-28
|
||||
A "SF0057"
|
||||
L s5t#3s
|
||||
OnDelay "T28"
|
||||
A "T28"
|
||||
S "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
A "SF0055"
|
||||
L s5t#3s
|
||||
OnDelay "T27"
|
||||
A "T27"
|
||||
S "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
A "SF0053"
|
||||
L s5t#3s
|
||||
OnDelay "T26"
|
||||
A "T26"
|
||||
S "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
A "SF0051"
|
||||
L s5t#3s
|
||||
OnDelay "T25"
|
||||
A "T25"
|
||||
S "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
A "SF0047"
|
||||
L s5t#3s
|
||||
OnDelay "T24"
|
||||
A "T24"
|
||||
S "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
A "SF0045"
|
||||
L s5t#3s
|
||||
OnDelay "T23"
|
||||
A "T23"
|
||||
S "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
A "SF0043"
|
||||
L s5t#3s
|
||||
OnDelay "T22"
|
||||
A "T22"
|
||||
S "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
A "SF0041"
|
||||
L s5t#3s
|
||||
OnDelay "T21"
|
||||
A "T21"
|
||||
S "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_1_freigegeben"
|
||||
S "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_2_freigegeben"
|
||||
S "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.SS."PC>Trolley_an_Platz_3_freigegeben"
|
||||
|
||||
No: NOP 0
|
||||
|
||||
|
||||
--- NW 17: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
=== InstanceDB 2199: DHWtoOB_Antriebe [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
MA0113 : "MAntrieb_PowerSave"
|
||||
MA0114 : "MAntrieb_PowerSave"
|
||||
MA0115 : "MAntrieb_PowerSave"
|
||||
MA0117 : "MAntrieb_PowerSave"
|
||||
MA0200 : "MAntrieb_PowerSave"
|
||||
MA0201 : "MAntrieb_PowerSave"
|
||||
MA0202 : "MAntrieb_PowerSave"
|
||||
@@ -0,0 +1,17 @@
|
||||
=== InstanceDB 2190: DHWtoOB_Sensoren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Stau_BG3570 : "MSensoren"
|
||||
Stau_BG3544 : "MSensoren"
|
||||
Stau_BG3545 : "MSensoren"
|
||||
Stau_BG3551 : "MSensoren"
|
||||
Stau_BG3552 : "MSensoren"
|
||||
Stau_BG3554 : "MSensoren"
|
||||
Stau_BG3015 : "MSensoren"
|
||||
Stau_BG3013 : "MSensoren"
|
||||
Stau_BG3011 : "MSensoren"
|
||||
Stau_BG3071 : "MSensoren"
|
||||
Stau_BG3066 : "MSensoren"
|
||||
@@ -0,0 +1,13 @@
|
||||
=== InstanceDB 2192: DHWtoOB_Zylinder [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3546 : "MZylinder"
|
||||
Schleuse_3552 : "MZylinder"
|
||||
Schleuse_3014 : "MZylinder"
|
||||
Schleuse_3012 : "MZylinder"
|
||||
Schleuse_3010 : "MZylinder"
|
||||
Schleuse_3070 : "MZylinder"
|
||||
Schleuse_3073 : "MZylinder"
|
||||
@@ -0,0 +1,119 @@
|
||||
=== FB 2199: HWtoOB_Antriebe [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
MA0113 : "MAntrieb_PowerSave"
|
||||
MA0114 : "MAntrieb_PowerSave"
|
||||
MA0115 : "MAntrieb_PowerSave"
|
||||
MA0117 : "MAntrieb_PowerSave"
|
||||
MA0200 : "MAntrieb_PowerSave"
|
||||
MA0201 : "MAntrieb_PowerSave"
|
||||
MA0202 : "MAntrieb_PowerSave"
|
||||
Temp:
|
||||
Auto : Bool // Automatik Linie ist aktiv
|
||||
Hand : Bool // Hand Linie ist aktiv
|
||||
BereichErr : Bool // Bereichsstörung -> Antrieb stoppen
|
||||
QKontroll : Bool // Frequenzumrichter schon 3s Netz EIN
|
||||
FuKontroll : Bool // Frequenzumrichter schon 3s Netz EIN
|
||||
Quit : Bool // Motorschutz-Störung quittieren
|
||||
Qok : Bool // Motorschutz ok
|
||||
Jog1 : Bool // Geschwindigkeit 1
|
||||
Jog2 : Bool // Geschwindigkeit 2
|
||||
Betrieb : Bool // Betriebsart aktiv
|
||||
FC105_RET : Word // Returnwert von FC105
|
||||
Antrieb1 : Bool // Antrieb dazuschalten
|
||||
Antrieb2 : Bool // Antrieb dazuschalten
|
||||
F1 : Bool // Geschwindigkeit 1 aktiviert
|
||||
F2 : Bool // Geschwindigkeit 2 aktiviert
|
||||
F3 : Bool // Geschwindigkeit 3 aktiviert
|
||||
Constant:
|
||||
|
||||
--- NW 1: Übergabe des Bereichstatus System UH06_Halle4/A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
CLR
|
||||
= Hand
|
||||
|
||||
A "DAMR_Bereich".A01_UH06_Halle4.BereichErr
|
||||
= BereichErr
|
||||
|
||||
AN BereichErr
|
||||
L S5T#1S
|
||||
OnDelay "T191"
|
||||
|
||||
A "T191"
|
||||
= QKontroll
|
||||
= FuKontroll
|
||||
|
||||
A "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= Quit
|
||||
|
||||
|
||||
--- NW 2: MA0113 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0113", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0113", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0113, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 3: MA0114 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0114", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0114", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0114, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 4: MA0115 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0115", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0115", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0115, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 5: MA0117 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0117", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0117", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0117, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 6: Übergabe des Bereichstatus System UC061/A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
CLR
|
||||
= Hand
|
||||
|
||||
A "DAMR_Bereich".A01_UC061.BereichErr
|
||||
O "DAMR_Bereich".A01_UZ6102.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6103.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6104.Area_Stop
|
||||
= BereichErr
|
||||
|
||||
AN BereichErr
|
||||
L S5T#1S
|
||||
OnDelay "T192"
|
||||
|
||||
A "T192"
|
||||
= QKontroll
|
||||
= FuKontroll
|
||||
|
||||
A "DAMR_Bereich".A01_UC061.StOk_aktiv
|
||||
= Quit
|
||||
|
||||
|
||||
--- NW 7: MA00200 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0200", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=?, Antriebrueck:=?, Antriebvor:="MA0200", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0200, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 8: MA0201 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0201", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=180, Antriebrueck:=?, Antriebvor:="MA0201", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0201, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 9: MA0202 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=Hand, BereichErr:=BereichErr, Q:="FC0202", Ptc:=TRUE, Fu:=?, QKontroll:=QKontroll, FuKontroll:=?, ErrQuit:=Quit, Kontroll_B:=?, T_Nachlauf:=120, Antriebrueck:=?, Antriebvor:="MA0202", Jog1:=?, Jog2:=?, Analog:=?, QErr:="6_HMI_Err_UH06_AMR".QErr.MA0202, PtcErr:=?, FuErr:=?, Err_Antrieb_verklemmt:=?)
|
||||
|
||||
|
||||
|
||||
--- NW 10: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
=== FB 2190: HWtoOB_Sensoren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Stau_BG3570 : "MSensoren" // Stau vor Schleuse 3540
|
||||
Stau_BG3544 : "MSensoren" // Stau am Sensor Gefälle nach BST 4
|
||||
Stau_BG3545 : "MSensoren" // Stau am Sensor Einfahrt MA0114
|
||||
Stau_BG3551 : "MSensoren" // Stau am Sensor Einfahrt MA0115
|
||||
Stau_BG3552 : "MSensoren" // Stau am Sensor Einfahrt MA0115
|
||||
Stau_BG3554 : "MSensoren" // Stau am Sensor Einfahrt MA0117
|
||||
Stau_BG3015 : "MSensoren" // Stau am Sensor Gefälle vor BST 3
|
||||
Stau_BG3013 : "MSensoren" // Stau am Sensor Gefälle nach BST 3
|
||||
Stau_BG3011 : "MSensoren" // Stau vor Schleuse 3010
|
||||
Stau_BG3071 : "MSensoren" // Stau vor Schleuse 3070
|
||||
Stau_BG3066 : "MSensoren" // Stau am Sensor Einfahrt MA0202
|
||||
Temp:
|
||||
T_Ein : Int // Vorgabe Einschaltverzögerung
|
||||
T_Aus : Int // Zwischenspeicher Ausschaltverzögerung
|
||||
F1 : Bool // Geschwindigkeit 1 aktiviert
|
||||
F2 : Bool // Geschwindigkeit 2 aktiviert
|
||||
F3 : Bool // Geschwindigkeit 3 aktiviert
|
||||
ESensor : Bool // Sensoren
|
||||
Antrieb : Bool
|
||||
VReal : Real // GeschwindigkeitinReal
|
||||
Zeit : Int // Zeit für Ausschaltverzögerung LT1100
|
||||
Aktiv : Bool // Zeit aktivieren
|
||||
Constant:
|
||||
|
||||
--- NW 1: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3570", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=TRUE)
|
||||
|
||||
|
||||
--- NW 2: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3544", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=1)
|
||||
|
||||
|
||||
--- NW 3: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3545", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:="MA0114")
|
||||
|
||||
|
||||
--- NW 4: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3551", T_Ein:=80, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:="MA0115")
|
||||
|
||||
|
||||
--- NW 5: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3552", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:="MA0115")
|
||||
|
||||
|
||||
--- NW 6: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3554", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:="MA0117")
|
||||
|
||||
|
||||
--- NW 7: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3015", T_Ein:=1, T_Aus:=30, tein_aktiv:=TRUE, taus_aktiv:=1)
|
||||
|
||||
|
||||
--- NW 8: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3013", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:=1)
|
||||
|
||||
|
||||
--- NW 9: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3011", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:="MA0200")
|
||||
|
||||
|
||||
--- NW 10: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3071", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:="MA0201")
|
||||
|
||||
|
||||
--- NW 11: Sensoren entprellen ---
|
||||
CALL FB "None" , (ESensor:="BG3066", T_Ein:=1, T_Aus:=11, tein_aktiv:=TRUE, taus_aktiv:="MA0202")
|
||||
|
||||
|
||||
--- NW 12: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
=== FB 2192: HWtoOB_Zylinder [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3546 : "MZylinder" //
|
||||
Schleuse_3552 : "MZylinder"
|
||||
Schleuse_3014 : "MZylinder"
|
||||
Schleuse_3012 : "MZylinder"
|
||||
Schleuse_3010 : "MZylinder"
|
||||
Schleuse_3070 : "MZylinder" //
|
||||
Schleuse_3073 : "MZylinder" //
|
||||
Temp:
|
||||
Auto : Bool // Automatik ist aktiv
|
||||
Hand : Bool // Hand ist aktiv
|
||||
ZylAst : Bool // Zylinder ansteuern
|
||||
Constant:
|
||||
|
||||
--- NW 1: Übergabe des Bereichstatus System UH06 / A01 ---
|
||||
A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
A "DAMR_Bereich".A01_UH06_Halle4.BereichErr
|
||||
JC Next // Zylinder-Stellung nicht mehr ändern
|
||||
|
||||
|
||||
--- NW 2: Schleuse_3546 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3546", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 3: Schleuse_3552 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3552", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 4: Schleuse_3014 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3014", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 5: Übergabe des Bereichstatus System UC061/A01 ---
|
||||
Next: A "DAMR_Bereich".A01_UH06.Automatik
|
||||
AN "DAMR_Bereich".A01_UH06.Handbetrieb
|
||||
= Auto
|
||||
|
||||
CLR
|
||||
= Hand
|
||||
|
||||
A "DAMR_Bereich".A01_UC061.BereichErr
|
||||
O "DAMR_Bereich".A01_UZ6102.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6103.Area_Stop
|
||||
O "DAMR_Bereich".A01_UZ6104.Area_Stop
|
||||
JC Next2 // Zylinder-Stellung nicht mehr ändern
|
||||
|
||||
|
||||
--- NW 6: Schleuse_3012 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3012", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 7: Schleuse_3010 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3010", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 8: Schleuse_3070 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3070", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 9: Schleuse_3073 ---
|
||||
CALL FB "None" , (Automatik:=Auto, Handbetrieb:=FALSE, T_Ast:=0, T_Gst:=5, ZylAst:="MB3073", ZylGst:=?)
|
||||
|
||||
|
||||
--- NW 10: Ende ---
|
||||
Next2: BE
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
=== FC 2100: HWtoOB_Bereich [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Baustein-Aufrufe ---
|
||||
CALL FB "HWtoOB_Sensoren" ,
|
||||
|
||||
CALL FB "HWtoOB_OmniFahren" ,
|
||||
|
||||
CALL FB "HWtoOB_Zylinder" ,
|
||||
|
||||
CALL FB "HWtoOB_Antriebe" ,
|
||||
|
||||
|
||||
--- NW 2: Ende ---
|
||||
BE
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
=== InstanceDB 2128: DHWtoOB_OmniFahren [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3546 : "MHMOmniSchleuse"
|
||||
Bereich_3550 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3552 : "MHMOmniSchleuse"
|
||||
Bereich_3016 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3014 : "MHMOmniSchleuse"
|
||||
Schleuse_3012 : "MHMOmniSchleuse"
|
||||
Schleuse_3010 : "MHMOmniSchleuse_Plus"
|
||||
Schleuse_3070 : "MHMOmniSchleuse"
|
||||
Schleuse_3073 : "MHMOmniSchleuse_Plus"
|
||||
Trolleys_starten : Struct
|
||||
Flanke : Bool
|
||||
Wartezeit_aktiv : Bool
|
||||
Timer_Wartenzeit : Int
|
||||
+199
@@ -0,0 +1,199 @@
|
||||
=== FB 2128: HWtoOB_OmniFahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
Schleuse_3546 : "MHMOmniSchleuse"
|
||||
Bereich_3550 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3552 : "MHMOmniSchleuse"
|
||||
Bereich_3016 : "MHMOmniBereich_Plus"
|
||||
Schleuse_3014 : "MHMOmniSchleuse"
|
||||
Schleuse_3012 : "MHMOmniSchleuse"
|
||||
Schleuse_3010 : "MHMOmniSchleuse_Plus"
|
||||
Schleuse_3070 : "MHMOmniSchleuse"
|
||||
Schleuse_3073 : "MHMOmniSchleuse_Plus"
|
||||
Trolleys_starten : Struct
|
||||
Flanke : Bool
|
||||
Wartezeit_aktiv : Bool
|
||||
Timer_Wartenzeit : Int
|
||||
Temp:
|
||||
ErrQuit : Bool
|
||||
ErrAnz : Bool
|
||||
Stau_raus : Bool
|
||||
Start_ok : Bool
|
||||
B_aktiv : Bool
|
||||
B_vor_Schleuse : Bool
|
||||
B_nach_Schleuse : Bool
|
||||
Antrieb_aktiv : Bool
|
||||
Antrieb_start : Bool
|
||||
Antrieb_stop : Bool
|
||||
Fahren_Ok : Bool
|
||||
Antrieb_nicht_stoppen : Bool
|
||||
Constant:
|
||||
|
||||
--- NW 1: Systemzeug ---
|
||||
// HW>OB-Bereich:
|
||||
A "DAMR_Bereich".A01_UH06.AnlageEin
|
||||
= Schleuse_3546.Dyn.Sk.Auto_akt
|
||||
= Bereich_3550.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3552.Dyn.Sk.Auto_akt
|
||||
= Bereich_3016.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3014.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3012.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3010.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3070.Dyn.Sk.Auto_akt
|
||||
= Schleuse_3073.Dyn.Sk.Auto_akt
|
||||
|
||||
AN "DAMR_Bereich".A01_UH06_Halle4.BereichErr
|
||||
= Schleuse_3546.Dyn.Sk.Bereich_ok
|
||||
= Bereich_3550.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3552.Dyn.Sk.Bereich_ok
|
||||
= Bereich_3016.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3014.Dyn.Sk.Bereich_ok
|
||||
AN "DAMR_Bereich".A01_UC061.BereichErr
|
||||
= Schleuse_3012.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3010.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3070.Dyn.Sk.Bereich_ok
|
||||
= Schleuse_3073.Dyn.Sk.Bereich_ok
|
||||
|
||||
|
||||
--- NW 2: Störungen quittieren UZ0620 ---
|
||||
A "DAMR_Bereich".A01_UZ0620.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 3: Wartezeit bis erneuter Trolleystart sinnvoll (wegen Staubildung) ---
|
||||
A "MB3546"
|
||||
Rise Trolleys_starten.Flanke
|
||||
S Trolleys_starten.Wartezeit_aktiv
|
||||
JCN Warten // Negierter Sprung
|
||||
|
||||
L 15 // Wartezeit in Sekunden
|
||||
T Trolleys_starten.Timer_Wartenzeit
|
||||
|
||||
Warten: AN Trolleys_starten.Wartezeit_aktiv
|
||||
O
|
||||
A "MB3546" // Schleuse offen
|
||||
AN "MA0113" // Aber Trolley fährt nicht
|
||||
ON "1s-Impuls"
|
||||
JC Wait
|
||||
|
||||
L Trolleys_starten.Timer_Wartenzeit
|
||||
+ -1
|
||||
T Trolleys_starten.Timer_Wartenzeit
|
||||
L 0
|
||||
>I
|
||||
JC Wait
|
||||
|
||||
SET
|
||||
R Trolleys_starten.Wartezeit_aktiv
|
||||
|
||||
Wait: NOP 0
|
||||
|
||||
|
||||
--- NW 4: Schleuse 3546 (hinter BST 4) ---
|
||||
A "BG3570"
|
||||
O "BG3544"
|
||||
= B_vor_Schleuse
|
||||
|
||||
AN Trolleys_starten.Wartezeit_aktiv
|
||||
= Start_ok
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3546, ErrQuit:=ErrQuit, B_VorSchleuse:=B_vor_Schleuse, B_InSchleuse:="BG3546", B_AusSchleuse:="BG3545", B_Stau_raus:="DHWtoOB_Sensoren".Stau_BG3545.Stat.B_Akt, Start_Ok:=Start_ok, Antrieb_Schleuse_aktiv:="MA0113", Antrieb_plus_aktiv:="MA0114", Schleuse_geöffnet:="MB3546", RestZeit_Bereich_plus:=Bereich_3550.Dyn.Restzeit, Y_Schleuse_Auf:="DHWtoOB_Zylinder".Schleuse_3546.Stat.Ast, Error:=DB608.DBW354, Antrieb_Schleuse_vor:="DHWtoOB_Antriebe".MA0113.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoOB_Antriebe".MA0113.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoOB_Antriebe".MA0113.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoOB_Antriebe".MA0113.Stat.A_PS, Antrieb_plus_vor:=Bereich_3550.Dyn.Status.Trolley_kommt_in_Bereich, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
|
||||
--- NW 5: Bereich 3550 ---
|
||||
A "BG3545"
|
||||
A "MB3546"
|
||||
= B_vor_Schleuse
|
||||
|
||||
CALL FB "None" , (Bereichs_Nr:=3550, ErrQuit:=ErrQuit, B_BereichsAnfang:=B_vor_Schleuse, B_BereichsEnde:="BG3550", B_Zähl:="BG3551", B_Stau_raus:="DHWtoOB_Sensoren".Stau_BG3551.Stat.B_Akt, Start_Ok:=1, Antrieb_Bereich_aktiv:="MA0114", Antrieb_plus_aktiv:="MA0115", RestZeit_Bereich_plus:=?, Antrieb_Bereich_vor:="DHWtoOB_Antriebe".MA0114.Stat.A_vor, Antrieb_Bereich_stop:="DHWtoOB_Antriebe".MA0114.Stat.Stop_vor, Error:=DB608.DBW170, Antrieb_Bereich_start:="DHWtoOB_Antriebe".MA0114.Stat.A_start, Antrieb_plus_vor:="DHWtoOB_Antriebe".MA0115.Stat.A_vor, Antrieb_plus_start:="DHWtoOB_Antriebe".MA0115.Stat.A_start, Antrieb_minus_vor:="DHWtoOB_Antriebe".MA0113.Stat.A_vor, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 6: Schleuse 3552 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3552, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3551", B_InSchleuse:="BG3552", B_AusSchleuse:="BG3554", B_Stau_raus:="DHWtoOB_Sensoren".Stau_BG3554.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0115", Antrieb_plus_aktiv:="MA0117", Schleuse_geöffnet:="MB3552", RestZeit_Bereich_plus:=Bereich_3016.Dyn.Restzeit, Y_Schleuse_Auf:="DHWtoOB_Zylinder".Schleuse_3552.Stat.Ast, Error:=DB608.DBW356, Antrieb_Schleuse_vor:="DHWtoOB_Antriebe".MA0115.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoOB_Antriebe".MA0115.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoOB_Antriebe".MA0115.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoOB_Antriebe".MA0115.Stat.A_PS, Antrieb_plus_vor:=Bereich_3016.Dyn.Status.Trolley_kommt_in_Bereich, Antrieb_plus_start:=?, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
--- NW 7: Bereich 3016 ---
|
||||
A "BG3554"
|
||||
A "MB3552"
|
||||
= B_vor_Schleuse
|
||||
|
||||
CALL FB "None" , (Bereichs_Nr:=3016, ErrQuit:=ErrQuit, B_BereichsAnfang:=B_vor_Schleuse, B_BereichsEnde:="BG3016", B_Zähl:="BG3015", B_Stau_raus:="DHWtoOB_Sensoren".Stau_BG3015.Stat.B_Akt, Start_Ok:=1, Antrieb_Bereich_aktiv:="MA0117", Antrieb_plus_aktiv:=1, RestZeit_Bereich_plus:=?, Antrieb_Bereich_vor:="DHWtoOB_Antriebe".MA0117.Stat.A_vor, Antrieb_Bereich_stop:="DHWtoOB_Antriebe".MA0117.Stat.Stop_vor, Error:=DB608.DBW154, Antrieb_Bereich_start:="DHWtoOB_Antriebe".MA0117.Stat.A_start, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, Antrieb_minus_vor:="DHWtoOB_Antriebe".MA0115.Stat.A_vor, hStOk:=ErrAnz) // Ohne Antrieb
|
||||
|
||||
|
||||
--- NW 8: Schleuse 3014 (vor BST 3) ---
|
||||
AN "6_HMI_Err_UH06_AMR".System.Gesamt_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST3_Feueralarm
|
||||
AN "6_HMI_Err_UH06_AMR".System.BST3_Geschlossen
|
||||
AN "6_HMI_Err_UH06_AMR".System."BST3_Störung"
|
||||
A Schleuse_3012.Dyn.Sk.Bereich_ok
|
||||
= Fahren_Ok
|
||||
|
||||
A "DHWtoOB_Sensoren".Stau_BG3013.Stat.B_Akt
|
||||
= Stau_raus
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3014, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3015", B_InSchleuse:="BG3014", B_AusSchleuse:="BG3013", B_Stau_raus:=Stau_raus, Start_Ok:=Fahren_Ok, Antrieb_Schleuse_aktiv:=1, Antrieb_plus_aktiv:="MA0200", Schleuse_geöffnet:="MB3014", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoOB_Zylinder".Schleuse_3014.Stat.Ast, Error:=DB608.DBW210, Antrieb_Schleuse_vor:=?, Antrieb_Schleuse_start:=?, Antrieb_Schleuse_stop:=?, Antrieb_Schleuse_PS:=?, Antrieb_plus_vor:="DHWtoOB_Antriebe".MA0200.Stat.A_vor, Antrieb_plus_start:="DHWtoOB_Antriebe".MA0200.Stat.A_start, hStOk:=ErrAnz) // ohne Antrieb | Ohne Antrieb
|
||||
|
||||
|
||||
--- NW 9: Störungen anzeigen UZ0620 ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UZ0620.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 10: Störungen quittieren UZ6101 ---
|
||||
A "DAMR_Bereich".A01_UC061.StOk_aktiv
|
||||
O "DAMR_Bereich".A01_UH06.StOk_aktiv
|
||||
= ErrQuit
|
||||
|
||||
|
||||
--- NW 11: Schleuse 3012 (hinter BST 3) ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3012, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3013", B_InSchleuse:="BG3012", B_AusSchleuse:="BG3011", B_Stau_raus:="DHWtoOB_Sensoren".Stau_BG3011.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0200", Antrieb_plus_aktiv:="MA0200", Schleuse_geöffnet:="MB3012", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoOB_Zylinder".Schleuse_3012.Stat.Ast, Error:=DB608.DBW208, Antrieb_Schleuse_vor:="DHWtoOB_Antriebe".MA0200.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoOB_Antriebe".MA0200.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoOB_Antriebe".MA0200.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoOB_Antriebe".MA0200.Stat.A_PS, Antrieb_plus_vor:=?, Antrieb_plus_start:=?, hStOk:=ErrAnz) // wie oben
|
||||
|
||||
|
||||
|
||||
--- NW 12: Schleuse 3010 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3010, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3011", B_InSchleuse:="BG3010", B_Zähl:="BG3071", B_Stau_raus:="DHWtoOB_Sensoren".Stau_BG3071.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0200", Antrieb_plus_aktiv:="MA0201", Schleuse_geöffnet:="MB3010", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoOB_Zylinder".Schleuse_3010.Stat.Ast, Error:=DB608.DBW206, Antrieb_Schleuse_vor:="DHWtoOB_Antriebe".MA0200.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoOB_Antriebe".MA0200.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoOB_Antriebe".MA0200.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoOB_Antriebe".MA0200.Stat.A_PS, Antrieb_plus_vor:="DHWtoOB_Antriebe".MA0201.Stat.A_vor, Antrieb_plus_start:="DHWtoOB_Antriebe".MA0201.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
|
||||
--- NW 13: Schleuse 3070 ---
|
||||
CALL FB "None" , (Schleusen_Nr:=3070, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3071", B_InSchleuse:="BG3070", B_AusSchleuse:="BG3066", B_Stau_raus:="DHWtoOB_Sensoren".Stau_BG3066.Stat.B_Akt, Start_Ok:=1, Antrieb_Schleuse_aktiv:="MA0201", Antrieb_plus_aktiv:="MA0202", Schleuse_geöffnet:="MB3070", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoOB_Zylinder".Schleuse_3070.Stat.Ast, Error:=DB608.DBW214, Antrieb_Schleuse_vor:="DHWtoOB_Antriebe".MA0201.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoOB_Antriebe".MA0201.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoOB_Antriebe".MA0201.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoOB_Antriebe".MA0201.Stat.A_PS, Antrieb_plus_vor:="DHWtoOB_Antriebe".MA0202.Stat.A_vor, Antrieb_plus_start:="DHWtoOB_Antriebe".MA0202.Stat.A_start, hStOk:=ErrAnz)
|
||||
|
||||
|
||||
|
||||
--- NW 14: Schleuse 3073 (Übergabe an Outbound / UH07) ---
|
||||
// Schnittstelle von Outbound: (Verarbeitung s.u.)
|
||||
A "DSchnittstelle_zu_Outbound".From_UH07.MA0200_aktiv
|
||||
|
||||
A "DSchnittstelle_zu_Outbound".From_UH07.MA0200_kein_Stau
|
||||
|
||||
// Pro Zyklus neu erzeugen:
|
||||
SET
|
||||
R "DSchnittstelle_zu_Outbound".To_UH07.MA0200_A_vor
|
||||
R "DSchnittstelle_zu_Outbound".To_UH07.MA0200_A_start
|
||||
|
||||
CALL FB "None" , (Schleusen_Nr:=3073, ErrQuit:=ErrQuit, B_VorSchleuse:="BG3066", B_InSchleuse:="BG3073", B_Zähl:="DSchnittstelle_zu_Outbound".From_UH07.BG3724_aktiv, B_Stau_raus:=0, Start_Ok:="DSchnittstelle_zu_Outbound".From_UH07.MA0200_kein_Stau, Antrieb_Schleuse_aktiv:="MA0202", Antrieb_plus_aktiv:="DSchnittstelle_zu_Outbound".From_UH07.MA0200_aktiv, Schleuse_geöffnet:="MB3073", RestZeit_Bereich_plus:=?, Y_Schleuse_Auf:="DHWtoOB_Zylinder".Schleuse_3073.Stat.Ast, Error:=DB608.DBW362, Antrieb_Schleuse_vor:="DHWtoOB_Antriebe".MA0202.Stat.A_vor, Antrieb_Schleuse_start:="DHWtoOB_Antriebe".MA0202.Stat.A_start, Antrieb_Schleuse_stop:="DHWtoOB_Antriebe".MA0202.Stat.Stop_vor, Antrieb_Schleuse_PS:="DHWtoOB_Antriebe".MA0202.Stat.A_PS, Antrieb_plus_vor:="DSchnittstelle_zu_Outbound".To_UH07.MA0200_A_vor, Antrieb_plus_start:="DSchnittstelle_zu_Outbound".To_UH07.MA0200_A_start, hStOk:=ErrAnz)
|
||||
|
||||
// Schnittstelle zu Outbound: (Verarbeitung s.o.)
|
||||
A "DSchnittstelle_zu_Outbound".To_UH07.MA0200_A_vor
|
||||
|
||||
A "DSchnittstelle_zu_Outbound".To_UH07.MA0200_A_start
|
||||
CLR
|
||||
|
||||
|
||||
--- NW 15: Störungen anzeigen UZ6101 ---
|
||||
A ErrAnz
|
||||
R ErrAnz
|
||||
S "DAMR_Bereich".A01_UC061.StOk_blinken
|
||||
S "DAMR_Bereich".A01_UH06.StOk_blinken
|
||||
|
||||
|
||||
--- NW 16: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
=== FC 2181: HWtoOB_Ziel_FC [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Ziel_hex : Word
|
||||
Ziel_int : Int
|
||||
Zielebene : Word
|
||||
Error : Byte
|
||||
Position : Int
|
||||
Lager_DB : Int
|
||||
Lager_DW : Int
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
AR1Start : DInt // Startwert mit Offset 0
|
||||
SSDW : Int
|
||||
EndZiel : Word
|
||||
Variante : Int
|
||||
AbrufID : DInt
|
||||
Fahrlisten_TrolleyID : DInt
|
||||
Fahrlisten_AbrufID : DInt
|
||||
Fahrlisten_Lager : Int
|
||||
Trolley_unbekannt : Bool // Trolley ist nicht in DL
|
||||
Express_Abruf : Bool
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Rückmeldung ---
|
||||
SET // Rückmeldungen erst mal resetten
|
||||
R "M180.6" // Weiterfahrt von Ziel-FC erlaubt
|
||||
|
||||
|
||||
--- NW 2: Schleuse 3014: (BST 3) ---
|
||||
L "MW190"
|
||||
L 3014 // Aufruf von Schleuse XXXX?
|
||||
<>I // Nein!
|
||||
JC X3014E
|
||||
|
||||
SET
|
||||
S "M180.6" // Weiterfahrt ist erlaubt
|
||||
|
||||
BEU
|
||||
|
||||
X3014E: NOP 0
|
||||
|
||||
|
||||
--- NW 3: Ende ---
|
||||
BE
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,134 @@
|
||||
=== InstanceDB 1001: DAMR_Bereich [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
A01_UH06 : Struct
|
||||
Anlauf : Bool
|
||||
AnlageEin : Bool
|
||||
Not_Aus : Struct
|
||||
ausgeloest : Bool
|
||||
Von_OB1 : Bool
|
||||
Von_OB2 : Bool
|
||||
Von_ILS1 : Bool
|
||||
Von_ILS2 : Bool
|
||||
UH06 : Bool
|
||||
UZ0601 : Bool
|
||||
UZ0602 : Bool
|
||||
UZ0603 : Bool
|
||||
UZ0611 : Bool
|
||||
UZ0612 : Bool
|
||||
UZ0613 : Bool
|
||||
UZ0614 : Bool
|
||||
UZ0615 : Bool
|
||||
UZ0621 : Bool
|
||||
UZ0622 : Bool
|
||||
NotErr : Bool
|
||||
PnErr : Bool
|
||||
SiErr : Bool
|
||||
MotErr : Bool
|
||||
Phasen : Bool
|
||||
K10Err : Bool
|
||||
Brandfall : Bool
|
||||
Automatik : Bool
|
||||
Handbetrieb : Bool
|
||||
BereichErr : Bool
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
BereichErr_old : Bool
|
||||
Anfahrwarnung : Bool
|
||||
A01_UH06_Halle4 : Struct
|
||||
Not_Aus : Struct
|
||||
ausgeloest : Bool
|
||||
UZ0620 : Bool
|
||||
NotErr : Bool
|
||||
K10Err : Bool
|
||||
BereichErr : Bool
|
||||
BereichErr_old : Bool
|
||||
Anfahrwarnung : Bool
|
||||
A01_UC061 : Struct
|
||||
Not_Aus : Struct
|
||||
ausgeloest : Bool
|
||||
UC061 : Bool
|
||||
UZ6102 : Bool
|
||||
UZ6103 : Bool
|
||||
UZ6104 : Bool
|
||||
NotErr : Bool
|
||||
PnErr : Bool
|
||||
SiErr : Bool
|
||||
MotErr : Bool
|
||||
K10Err : Bool
|
||||
BereichErr : Bool
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
BereichErr_old : Bool
|
||||
Anfahrwarnung : Bool
|
||||
A01_UZ0601 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0602 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0603 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0611 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0612 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0613 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0614 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0615 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0620 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0621 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ0622 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
A01_UZ6102 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
Area_Stop : Bool
|
||||
A01_UZ6103 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
Area_Stop : Bool
|
||||
A01_UZ6104 : Struct
|
||||
StOk_blinken : Bool
|
||||
StOk_Flanke : Bool
|
||||
StOk_aktiv : Bool
|
||||
Area_Stop : Bool
|
||||
ErrDD : DInt
|
||||
ErrBits : Int
|
||||
Simulation : Struct
|
||||
aktiv : Bool
|
||||
Wartezeit_ok : Bool
|
||||
AMR : Word
|
||||
MSekunden : Byte
|
||||
@@ -0,0 +1,14 @@
|
||||
=== GlobalDB 7: DSchnittstelle_zu_Outbound [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
To_UH07 : Struct
|
||||
MA0200_A_vor : Bool
|
||||
MA0200_A_start : Bool
|
||||
MA0203_kein_Stau : Bool
|
||||
MA0203_aktiv : Bool
|
||||
From_UH07 : Struct
|
||||
MA0203_A_vor : Bool
|
||||
MA0203_A_start : Bool
|
||||
MA0200_kein_Stau : Bool
|
||||
MA0200_aktiv : Bool //
|
||||
BG3724_aktiv : Bool
|
||||
@@ -0,0 +1,19 @@
|
||||
=== GlobalDB 3: DSchnittstelle_zu_Safety [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
ToSafety : Struct
|
||||
StOk_HSS : Bool
|
||||
ACK_A01_UH06 : Bool // Quittierung Bereich
|
||||
ACK_A01_UH06_Halle4 : Bool // Quittierung Bereich
|
||||
ACK_A01_UC061 : Bool // Quittierung Bereich
|
||||
Ohne_Partner : Bool // Nur eigener Not-AUS!
|
||||
FromSafety : Struct
|
||||
ACK_REQ_A01_UH06_1 : Bool // Quittierung benötigt Bereich
|
||||
ACK_REQ_A01_UH06_2 : Bool // Quittierung benötigt Bereich
|
||||
ACK_A01_UH06_fertig : Bool // Quittierung abgearbeitet
|
||||
ACK_REQ_A01_UH06_Halle4_1 : Bool // Quittierung benötigt Bereich
|
||||
ACK_REQ_A01_UH06_Halle4_2 : Bool // Quittierung benötigt Bereich
|
||||
ACK_A01_UH06_Halle4_fertig : Bool // Quittierung abgearbeitet
|
||||
ACK_REQ_A01_UC061_1 : Bool // Quittierung benötigt Bereich
|
||||
ACK_REQ_A01_UC061_2 : Bool // Quittierung benötigt Bereich
|
||||
ACK_A01_UC061_fertig : Bool // Quittierung abgearbeitet
|
||||
@@ -0,0 +1,109 @@
|
||||
=== InstanceDB 4711: FB_BarcodeReader_DB [DB] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Static:
|
||||
fbBarcodeReaderBX6100 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6101 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6102 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6103 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6104 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6105 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6106 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6107 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6108 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6109 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6110 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6111 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6112 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6113 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6114 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6115 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6116 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6117 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6118 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6119 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6120 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6121 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6122 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6123 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6124 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6125 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6126 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6127 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6128 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6129 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6130 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6131 : "FB_BarcodeReaderCognex"
|
||||
fbBarcodeReaderBX6133 : "FB_BarcodeReaderCognex"
|
||||
stCognexInterface : Struct
|
||||
BX6100 : "stCognexInterface"
|
||||
BX6101 : "stCognexInterface"
|
||||
BX6102 : "stCognexInterface"
|
||||
BX6103 : "stCognexInterface"
|
||||
BX6104 : "stCognexInterface"
|
||||
BX6105 : "stCognexInterface"
|
||||
BX6106 : "stCognexInterface"
|
||||
BX6107 : "stCognexInterface"
|
||||
BX6108 : "stCognexInterface"
|
||||
BX6109 : "stCognexInterface"
|
||||
BX6110 : "stCognexInterface"
|
||||
BX6111 : "stCognexInterface"
|
||||
BX6112 : "stCognexInterface"
|
||||
BX6113 : "stCognexInterface"
|
||||
BX6114 : "stCognexInterface"
|
||||
BX6115 : "stCognexInterface"
|
||||
BX6116 : "stCognexInterface"
|
||||
BX6117 : "stCognexInterface"
|
||||
BX6118 : "stCognexInterface"
|
||||
BX6119 : "stCognexInterface"
|
||||
BX6120 : "stCognexInterface"
|
||||
BX6121 : "stCognexInterface"
|
||||
BX6122 : "stCognexInterface"
|
||||
BX6123 : "stCognexInterface"
|
||||
BX6124 : "stCognexInterface"
|
||||
BX6125 : "stCognexInterface"
|
||||
BX6126 : "stCognexInterface"
|
||||
BX6127 : "stCognexInterface"
|
||||
BX6128 : "stCognexInterface"
|
||||
BX6129 : "stCognexInterface"
|
||||
BX6130 : "stCognexInterface"
|
||||
BX6131 : "stCognexInterface"
|
||||
BX6133 : "stCognexInterface"
|
||||
stHMI : Struct
|
||||
stBarcodeReader : Struct
|
||||
BX6100 : "UDT_BarcodeReader"
|
||||
BX6101 : "UDT_BarcodeReader"
|
||||
BX6102 : "UDT_BarcodeReader"
|
||||
BX6103 : "UDT_BarcodeReader"
|
||||
BX6104 : "UDT_BarcodeReader"
|
||||
BX6105 : "UDT_BarcodeReader"
|
||||
BX6106 : "UDT_BarcodeReader"
|
||||
BX6107 : "UDT_BarcodeReader"
|
||||
BX6108 : "UDT_BarcodeReader"
|
||||
BX6109 : "UDT_BarcodeReader"
|
||||
BX6110 : "UDT_BarcodeReader"
|
||||
BX6111 : "UDT_BarcodeReader"
|
||||
BX6112 : "UDT_BarcodeReader"
|
||||
BX6113 : "UDT_BarcodeReader"
|
||||
BX6114 : "UDT_BarcodeReader"
|
||||
BX6115 : "UDT_BarcodeReader"
|
||||
BX6116 : "UDT_BarcodeReader"
|
||||
BX6117 : "UDT_BarcodeReader"
|
||||
BX6118 : "UDT_BarcodeReader"
|
||||
BX6119 : "UDT_BarcodeReader"
|
||||
BX6120 : "UDT_BarcodeReader"
|
||||
BX6121 : "UDT_BarcodeReader"
|
||||
BX6122 : "UDT_BarcodeReader"
|
||||
BX6123 : "UDT_BarcodeReader"
|
||||
BX6124 : "UDT_BarcodeReader"
|
||||
BX6125 : "UDT_BarcodeReader"
|
||||
BX6126 : "UDT_BarcodeReader"
|
||||
BX6127 : "UDT_BarcodeReader"
|
||||
BX6128 : "UDT_BarcodeReader"
|
||||
BX6129 : "UDT_BarcodeReader"
|
||||
BX6130 : "UDT_BarcodeReader"
|
||||
BX6131 : "UDT_BarcodeReader"
|
||||
BX6133 : "UDT_BarcodeReader"
|
||||
stMainState : "IntfMainState"
|
||||
@@ -0,0 +1,180 @@
|
||||
=== GlobalDB 273: DLCognexLeser [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA04 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 33 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Leser_6100 : "UDLCognexLeser" // AMR: vor 180 Grad Turn
|
||||
Leser_6101 : "UDLCognexLeser" // AMR: vor Einfahrt PS5
|
||||
Leser_6102 : "UDLCognexLeser" // AMR: PS5/1
|
||||
Leser_6103 : "UDLCognexLeser" // AMR: PS5/2
|
||||
Leser_6104 : "UDLCognexLeser" // AMR: PS5/3
|
||||
Leser_6105 : "UDLCognexLeser" // AMR: vor Einfahrt PS4
|
||||
Leser_6106 : "UDLCognexLeser" // AMR: PS4/1
|
||||
Leser_6107 : "UDLCognexLeser" // AMR: PS4/2
|
||||
Leser_6108 : "UDLCognexLeser" // AMR: PS4/3
|
||||
Leser_6109 : "UDLCognexLeser" // AMR: vor Einfahrt PS3
|
||||
Leser_6110 : "UDLCognexLeser" // AMR: PS3/1
|
||||
Leser_6111 : "UDLCognexLeser" // AMR: PS3/2
|
||||
Leser_6112 : "UDLCognexLeser" // AMR: PS3/3
|
||||
Leser_6113 : "UDLCognexLeser" // AMR: vor Einfahrt PS2
|
||||
Leser_6114 : "UDLCognexLeser" // AMR: PS2/1
|
||||
Leser_6115 : "UDLCognexLeser" // AMR: PS2/2
|
||||
Leser_6116 : "UDLCognexLeser" // AMR: PS2/3
|
||||
Leser_6117 : "UDLCognexLeser" // AMR: PS1/1
|
||||
Leser_6118 : "UDLCognexLeser" // AMR: PS1/2
|
||||
Leser_6119 : "UDLCognexLeser" // AMR: PS1/3
|
||||
Leser_6120 : "UDLCognexLeser" // AMR: vor Einfahrt MPS3
|
||||
Leser_6121 : "UDLCognexLeser" // AMR: MPS3/1
|
||||
Leser_6122 : "UDLCognexLeser" // AMR: MPS3/2
|
||||
Leser_6123 : "UDLCognexLeser" // AMR: MPS3/3
|
||||
Leser_6124 : "UDLCognexLeser" // AMR: vor Einfahrt MPS2
|
||||
Leser_6125 : "UDLCognexLeser" // AMR: MPS2/1
|
||||
Leser_6126 : "UDLCognexLeser" // AMR: MPS2/2
|
||||
Leser_6127 : "UDLCognexLeser" // AMR: MPS2/3
|
||||
Leser_6128 : "UDLCognexLeser" // AMR: vor Einfahrt MPS1
|
||||
Leser_6129 : "UDLCognexLeser" // AMR: MPS1/1
|
||||
Leser_6130 : "UDLCognexLeser" // AMR: MPS1/2
|
||||
Leser_6131 : "UDLCognexLeser" // AMR: MPS1/3
|
||||
Leser_6133 : "UDLCognexLeser" // AMR: vor Einfahrt PS1
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
None:
|
||||
Leser_ID : Word := 16#6100
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 0
|
||||
None:
|
||||
Leser_ID : Word := 16#6101
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 1414
|
||||
None:
|
||||
Leser_ID : Word := 16#6102
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 2828
|
||||
None:
|
||||
Leser_ID : Word := 16#6103
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 4242
|
||||
None:
|
||||
Leser_ID : Word := 16#6104
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 5656
|
||||
None:
|
||||
Leser_ID : Word := 16#6105
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 7070
|
||||
None:
|
||||
Leser_ID : Word := 16#6106
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 8484
|
||||
None:
|
||||
Leser_ID : Word := 16#6107
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 9898
|
||||
None:
|
||||
Leser_ID : Word := 16#6108
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 11312
|
||||
None:
|
||||
Leser_ID : Word := 16#6109
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 12726
|
||||
None:
|
||||
Leser_ID : Word := 16#6110
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 14140
|
||||
None:
|
||||
Leser_ID : Word := 16#6111
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 15554
|
||||
None:
|
||||
Leser_ID : Word := 16#6112
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 16968
|
||||
None:
|
||||
Leser_ID : Word := 16#6113
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 18382
|
||||
None:
|
||||
Leser_ID : Word := 16#6114
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 19796
|
||||
None:
|
||||
Leser_ID : Word := 16#6115
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 21210
|
||||
None:
|
||||
Leser_ID : Word := 16#6116
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 22624
|
||||
None:
|
||||
Leser_ID : Word := 16#6117
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 24038
|
||||
None:
|
||||
Leser_ID : Word := 16#6118
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 25452
|
||||
None:
|
||||
Leser_ID : Word := 16#6119
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 26866
|
||||
None:
|
||||
Leser_ID : Word := 16#6120
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 28280
|
||||
None:
|
||||
Leser_ID : Word := 16#6121
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 29694
|
||||
None:
|
||||
Leser_ID : Word := 16#6122
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 31108
|
||||
None:
|
||||
Leser_ID : Word := 16#6123
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 32522
|
||||
None:
|
||||
Leser_ID : Word := 16#6124
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 33936
|
||||
None:
|
||||
Leser_ID : Word := 16#6125
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 35350
|
||||
None:
|
||||
Leser_ID : Word := 16#6126
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 36764
|
||||
None:
|
||||
Leser_ID : Word := 16#6127
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 38178
|
||||
None:
|
||||
Leser_ID : Word := 16#6128
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 39592
|
||||
None:
|
||||
Leser_ID : Word := 16#6129
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 41006
|
||||
None:
|
||||
Leser_ID : Word := 16#6130
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 42420
|
||||
None:
|
||||
Leser_ID : Word := 16#6131
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 43834
|
||||
None:
|
||||
Leser_ID : Word := 16#6133
|
||||
Leser_Dyn_DB : Int := 4711
|
||||
Leser_Dyn_DD : DInt := 45248
|
||||
@@ -0,0 +1,143 @@
|
||||
=== GlobalDB 276: DLHMABP [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA14 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 118)
|
||||
LAENGE : Int := 8 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Pickstation_5 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
Pickstation_4 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
Pickstation_3 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
Pickstation_2 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
Pickstation_1 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
MultiPurposestation_3 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
MultiPurposestation_2 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
MultiPurposestation_1 : "UDLHM_Arbeitsplatz" // Schleuse: Hauptstrecke vor AMR (PS5)
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
None:
|
||||
ABP_Nr : Word := 16#A500
|
||||
ABP_Dyn_DB : Int := 1121
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 101
|
||||
Schleusen_Platz_1 : Int := 3245
|
||||
Schleusen_Platz_2 : Int := 3251
|
||||
Schleusen_Platz_3 : Int := 3255
|
||||
None:
|
||||
ABP_Nr : Word := 16#A400
|
||||
ABP_Dyn_DB : Int := 1122
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 102
|
||||
Schleusen_Platz_1 : Int := 3275
|
||||
Schleusen_Platz_2 : Int := 3281
|
||||
Schleusen_Platz_3 : Int := 3285
|
||||
None:
|
||||
ABP_Nr : Word := 16#A300
|
||||
ABP_Dyn_DB : Int := 1123
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 103
|
||||
Schleusen_Platz_1 : Int := 3305
|
||||
Schleusen_Platz_2 : Int := 3311
|
||||
Schleusen_Platz_3 : Int := 3315
|
||||
None:
|
||||
ABP_Nr : Word := 16#A200
|
||||
ABP_Dyn_DB : Int := 1124
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 104
|
||||
Schleusen_Platz_1 : Int := 3335
|
||||
Schleusen_Platz_2 : Int := 3341
|
||||
Schleusen_Platz_3 : Int := 3345
|
||||
None:
|
||||
ABP_Nr : Word := 16#A100
|
||||
ABP_Dyn_DB : Int := 1125
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 105
|
||||
Schleusen_Platz_1 : Int := 3365
|
||||
Schleusen_Platz_2 : Int := 3371
|
||||
Schleusen_Platz_3 : Int := 3375
|
||||
None:
|
||||
ABP_Nr : Word := 16#B300
|
||||
ABP_Dyn_DB : Int := 1126
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 106
|
||||
Schleusen_Platz_1 : Int := 3395
|
||||
Schleusen_Platz_2 : Int := 3401
|
||||
Schleusen_Platz_3 : Int := 3405
|
||||
None:
|
||||
ABP_Nr : Word := 16#B200
|
||||
ABP_Dyn_DB : Int := 1127
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 107
|
||||
Schleusen_Platz_1 : Int := 3425
|
||||
Schleusen_Platz_2 : Int := 3431
|
||||
Schleusen_Platz_3 : Int := 3435
|
||||
None:
|
||||
ABP_Nr : Word := 16#B100
|
||||
ABP_Dyn_DB : Int := 1128
|
||||
ABP_Dyn_DW : Int := 600
|
||||
MaxAnzahl : Int := 8
|
||||
Mindestzeit_zum_ABP_1 : Int := 15
|
||||
Mindestzeit_zum_ABP_2 : Int := 20
|
||||
Mindestzeit_zum_ABP_3 : Int := 23
|
||||
Mindestzeit_aus_ABP_1 : Int := 18
|
||||
Mindestzeit_aus_ABP_2 : Int := 18
|
||||
Mindestzeit_aus_ABP_3 : Int := 18
|
||||
Host_ABP : Int := 108
|
||||
Schleusen_Platz_1 : Int := 3455
|
||||
Schleusen_Platz_2 : Int := 3461
|
||||
Schleusen_Platz_3 : Int := 3465
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,141 @@
|
||||
=== GlobalDB 279: DLOmniWeichen [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA14 // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 9 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 1 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
OFFSETINDDATEN : Int // Offset für indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Weiche_3482 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_PS5 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_PS4 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_PS3 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_PS2 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_PS1 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_MPS3 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_MPS2 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Weiche_vor_MPS1 : "UDLOmniWeiche_2fach" // Weiche vor AMR (PS5)
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
None:
|
||||
Weichen_Nr : Int := 3482
|
||||
Weichen_Dyn_DB : Int := 1120
|
||||
Weichen_Dyn_DW : Int := 400
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3483
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3383
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3242
|
||||
Weichen_Dyn_DB : Int := 1121
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3264
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3242
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3272
|
||||
Weichen_Dyn_DB : Int := 1122
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3270
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3272
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3302
|
||||
Weichen_Dyn_DB : Int := 1123
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3294
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3302
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3332
|
||||
Weichen_Dyn_DB : Int := 1124
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3330
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3332
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3362
|
||||
Weichen_Dyn_DB : Int := 1125
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3361
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3362
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3392
|
||||
Weichen_Dyn_DB : Int := 1126
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3391
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3392
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3422
|
||||
Weichen_Dyn_DB : Int := 1127
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3445
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3422
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
None:
|
||||
Weichen_Nr : Int := 3452
|
||||
Weichen_Dyn_DB : Int := 1128
|
||||
Weichen_Dyn_DW : Int := 200
|
||||
Wartezeit_bis_Weiche_leer : Int := 30
|
||||
Gerade : Struct
|
||||
Ziel : Word := 16#3451
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
Abzweig : Struct
|
||||
Ziel : Word := 16#3452
|
||||
Mindestzeit : Int := 10
|
||||
Überwachungszeit : Int := 30
|
||||
@@ -0,0 +1,40 @@
|
||||
=== FC 19: AMRZeiger_ermitteln [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
AMR_X : Word // AMR zum Beeinflussen
|
||||
Output:
|
||||
AMR_DB : Int
|
||||
AMR_DW : Int
|
||||
Error : Bool
|
||||
InOut:
|
||||
Temp:
|
||||
Position : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Zeiger für AMR_X ermitteln ---
|
||||
L AMR_X
|
||||
T "MW200"
|
||||
|
||||
// Einsprung AMR ermitteln:
|
||||
CALL FC "DatenOut" (SSDB:=276, SSDW:=0, PARA:=16#0000, SEARCHDATEN:=P#M200.0, RE_VAL:="MB199", OUTDATEN:=P#M220.0, Position:=Position) // Eintrag lesen
|
||||
|
||||
L "MB199"
|
||||
L 2#1111111 // Bit 7 ausblenden
|
||||
AW
|
||||
L 0 // Fehler vorhanden?
|
||||
<>I // Ja
|
||||
= "6_HMI_Err_UH06_AMR".Logistik.DB276_Err
|
||||
= Error
|
||||
BEC
|
||||
|
||||
L "MW224"
|
||||
T AMR_DB
|
||||
L "MW226"
|
||||
T AMR_DW
|
||||
|
||||
|
||||
--- NW 2: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
=== FB 11: AMR_TrolleyVersorgung [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
Arbeitsplatz : Word
|
||||
InOut:
|
||||
Static:
|
||||
Last_Arbeitsplatz : Word
|
||||
Temp:
|
||||
ArbeitsPlatz_zum_Versorgen : Word
|
||||
Freiplätze_Arbeitsplatz : Int
|
||||
Constant:
|
||||
|
||||
--- NW 1: Initialisierung ---
|
||||
L 0
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
|
||||
--- NW 2: Arbeitsplatz PS5 mit größtem Bedarf? ---
|
||||
L "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC PS5E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#A500
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
PS5E: NOP 0
|
||||
|
||||
|
||||
--- NW 3: Arbeitsplatz PS4 mit größtem Bedarf? ---
|
||||
L "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC PS4E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#A400
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
PS4E: NOP 0
|
||||
|
||||
|
||||
--- NW 4: Arbeitsplatz PS3 mit größtem Bedarf? ---
|
||||
L "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC PS3E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#A300
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
PS3E: NOP 0
|
||||
|
||||
|
||||
--- NW 5: Arbeitsplatz PS2 mit größtem Bedarf? ---
|
||||
L "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC PS2E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#A200
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
PS2E: NOP 0
|
||||
|
||||
|
||||
--- NW 6: Arbeitsplatz PS1 mit größtem Bedarf? ---
|
||||
L "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC PS1E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#A100
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
PS1E: NOP 0
|
||||
|
||||
|
||||
--- NW 7: Versorgung von MPS von Schleuse 3481 sichergestellt? ---
|
||||
A "BG3481" // Trolley vorhanden
|
||||
O "MB3481" // Schleuse noch geöffnet
|
||||
JC Fertig
|
||||
|
||||
|
||||
--- NW 8: Arbeitsplatz MPS3 mit größtem Bedarf? ---
|
||||
L "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC MPS3E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#B300
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
MPS3E: NOP 0
|
||||
|
||||
|
||||
--- NW 9: Arbeitsplatz MPS2 mit größtem Bedarf? ---
|
||||
L "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC MPS2E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#B200
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
MPS2E: NOP 0
|
||||
|
||||
|
||||
--- NW 10: Arbeitsplatz MPS1 mit größtem Bedarf? ---
|
||||
L "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.HMI."Frei_Plätze" // Mehr Freiplätze vorhanden?
|
||||
L "Freiplätze_Arbeitsplatz"
|
||||
<=I // Nein !
|
||||
JC MPS1E
|
||||
|
||||
CAC
|
||||
T "Freiplätze_Arbeitsplatz"
|
||||
|
||||
L 16#B100
|
||||
T ArbeitsPlatz_zum_Versorgen
|
||||
|
||||
MPS1E: NOP 0
|
||||
|
||||
|
||||
--- NW 11: Arbeitsplatz übergeben ---
|
||||
Fertig: L ArbeitsPlatz_zum_Versorgen
|
||||
T Arbeitsplatz
|
||||
T Last_Arbeitsplatz // Letzten Arbeitsplatz speichern (oder erst bei Draussen-FC)
|
||||
|
||||
|
||||
--- NW 12: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
=== GlobalDB 1000: DLTrolleys [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Datenlistenkopf : Struct
|
||||
KOPF : Word := WORD#16#DA0A // Datenliste-Kennnung (DA) / Datensatzlänge in Word (1 - 128)
|
||||
LAENGE : Int := 1635 // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
STAMMDATEN : Int := 2 // Stammdatenlänge in Word (1 - 9)
|
||||
INDDB : Int := 1080 // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LAENGEINDDB : Int := 20000 // Länge des indizierten DB in Word (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
INDDATEN_WANDEL_FC : Int := 1000 // FC zum Wandeln der indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
LETZTERZUGRIFF : Int // Speicherung des letzten Zugriffs
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
AnzahlEintraege : Int // Anzahl der eingetragenen Datensätze (nicht bei ind.Zugriff!)
|
||||
Reserve18 : Int // Reserve
|
||||
Trolley : Array[1..1635] of "UTrolley"
|
||||
Endekennung : Word := WORD#16#DAEE // Datensort-Ende-Kennung (DBEE)
|
||||
@@ -0,0 +1,4 @@
|
||||
=== GlobalDB 1080: IndexDB1000 [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
Index : Array[6040000..6060000, 1..1] of Int // vorläufige Platzhaltervariable
|
||||
@@ -0,0 +1,76 @@
|
||||
=== FC 4: LeerTrolley to AMR-Platz ermitteln [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Erlaubter_Bereich : Word // 0=Alles ok, A000=nur PS, B000=nur MPS ok
|
||||
Output:
|
||||
AMR_Platz : Word // AMR-Platz ermitteln
|
||||
InOut:
|
||||
Temp:
|
||||
DLDB : Int
|
||||
Para : Word
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Initialisierung ---
|
||||
L 16#0
|
||||
T AMR_Platz
|
||||
|
||||
L 1112 // Mit DL (12 Trolleys benötigt) beginnen
|
||||
T DLDB
|
||||
|
||||
|
||||
--- NW 2: Werden 12->1 Trolley(s) benötigt? ---
|
||||
NextDL: L 16#F100 // 1.Datensatz lesen
|
||||
T Para
|
||||
|
||||
Next: CALL FC "DatenOut" (SSDB:=DLDB, SSDW:=0, PARA:=Para, SEARCHDATEN:=P#M200.0, RE_VAL:="MB198", OUTDATEN:=P#M220.0, Position:="MW196")
|
||||
|
||||
A "M198.7" // Datensatz ist vorhanden
|
||||
JC Check
|
||||
|
||||
// Nächst kleiner benötigte Stückzahl:
|
||||
L DLDB
|
||||
+ -1
|
||||
T DLDB
|
||||
|
||||
L 1101 // 1 Trolley benötigt
|
||||
>=I // noch sinnvoll?
|
||||
JC NextDL // Ja!
|
||||
|
||||
BEU
|
||||
|
||||
|
||||
--- NW 3: Check, ob Bereich ok ---
|
||||
Check: L Erlaubter_Bereich
|
||||
L 16#0 // Keine Beschränkung ?
|
||||
==I // Ja !
|
||||
JC AMR
|
||||
|
||||
L "MW220" // Nächstes ABP-Ziel
|
||||
L 16#F000
|
||||
AW // maskieren
|
||||
L Erlaubter_Bereich // wie erlaubter Bereich ?
|
||||
==I // Ja!
|
||||
A(
|
||||
L "MW220" // Nächstes ABP-Ziel
|
||||
L 16#0 // Sinnvoller Wert ?
|
||||
<>I // Nein !
|
||||
)
|
||||
JC AMR
|
||||
|
||||
// Nächsetn Eintrag lesen:
|
||||
L 16#FF00 // Nächsten Datensatz lesen
|
||||
T Para
|
||||
|
||||
JU Next
|
||||
|
||||
|
||||
--- NW 4: Puffer aufbereiten ---
|
||||
AMR: L "MW220"
|
||||
T AMR_Platz
|
||||
|
||||
|
||||
--- NW 5: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
=== FC 5: Reservierung_in_Arbeitsplatz_eintragen [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
TrolleyID : DInt
|
||||
Ziel : Word
|
||||
Standort : Word
|
||||
Gesamt_Trolley_DL : Int
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
ABP_DB : Int
|
||||
ABP_DW : Int
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
AR1Start : DInt // Startwert mit Offset 0
|
||||
Position : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Ziel bekannt -> Reservierung im Puffer ---
|
||||
L Ziel
|
||||
T "MW220"
|
||||
L 16#0
|
||||
==I
|
||||
JC NoRes
|
||||
|
||||
// Arbeitsplatz checken:
|
||||
CALL FC "DatenOut" (SSDB:=276, SSDW:=0, PARA:=16#0000, SEARCHDATEN:=P#M220.0, RE_VAL:="MB199", OUTDATEN:=P#M220.0, Position:=Position) // Eintrag lesen
|
||||
|
||||
L "MB199"
|
||||
L 2#1111111 // Bit 7 ausblenden
|
||||
AW
|
||||
L 0 // Fehler vorhanden?
|
||||
<>I // Ja
|
||||
JC NoRes
|
||||
|
||||
L "MW224"
|
||||
T ABP_DB
|
||||
L "MW226"
|
||||
T ABP_DW
|
||||
|
||||
L ABP_DW
|
||||
ITD
|
||||
T AR1Start // Startwert mit Offset 0
|
||||
|
||||
// Anzahl Reservierungen:
|
||||
L AR1Start // Startwert mit Offset 0
|
||||
+ DINT#130 // Offset für Reservierungen
|
||||
SLD 3
|
||||
T AR1Zeiger // Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
// ReservierungsAnzahl +1:
|
||||
OPN DB[ABP_DB] // ABP-DB öffnen
|
||||
L DBW [AR1Zeiger] // Reservierungen
|
||||
+ 1 // +1
|
||||
OPN DB[ABP_DB] // ABP-DB öffnen
|
||||
T DBW [AR1Zeiger]
|
||||
|
||||
NoRes: NOP 0
|
||||
|
||||
|
||||
--- NW 2: TrolleyID + Standort in Trolley-DL eintragen ---
|
||||
BEU // /
|
||||
|
||||
L TrolleyID
|
||||
L 0
|
||||
==I
|
||||
BEC
|
||||
|
||||
L Gesamt_Trolley_DL
|
||||
L 0 // Liste angegeben?
|
||||
==I // Nein!
|
||||
BEC
|
||||
|
||||
L TrolleyID
|
||||
T "TrolleyDL_INDaten".INDaten.TrolleyID
|
||||
L Ziel
|
||||
T "TrolleyDL_INDaten".INDaten.EndZiel
|
||||
L DINT#0
|
||||
T "TrolleyDL_INDaten".INDaten.ShopGroup
|
||||
|
||||
// Standort:
|
||||
L Standort
|
||||
T "TrolleyDL_INDaten".INDaten.Standort
|
||||
|
||||
// Startzeit:
|
||||
L "SGes".DATE_TIME.Jahr
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Jahr
|
||||
L "SGes".DATE_TIME.Monat
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Monat
|
||||
L "SGes".DATE_TIME.Tag
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Tag
|
||||
L "SGes".DATE_TIME.Stunde
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Stunde
|
||||
L "SGes".DATE_TIME.Minute
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Minute
|
||||
L "SGes".DATE_TIME.Sekunde
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Sekunde
|
||||
|
||||
// Daten in Datenbank schreiben:
|
||||
CALL FC "DatenIn" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, INDATEN:=DB1010.DBX0.0, RE_VAL:="MB198")
|
||||
|
||||
|
||||
--- NW 3: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
=== FC 29: Simulation_AMR_Trolley_starten [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Zufallszahl : Int
|
||||
AMR_DB : Int
|
||||
AMR_DW : Int
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
AR1Start : DInt // Startwert mit Offset 0
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Simulation ist aktiv ---
|
||||
A "T29"
|
||||
S "DAMR_Bereich".Simulation.Wartezeit_ok
|
||||
AN "DAMR_Bereich".Simulation.Wartezeit_ok
|
||||
L s5t#20s
|
||||
OnDelay "T29"
|
||||
|
||||
A "DAMR_Bereich".Simulation.aktiv
|
||||
= "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
= "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
= "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
= "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
= "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
= "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
= "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
= "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Aktiviert
|
||||
|
||||
AN "DAMR_Bereich".Simulation.aktiv
|
||||
ON "DAMR_Bereich".Simulation.Wartezeit_ok
|
||||
BEC
|
||||
|
||||
|
||||
--- NW 2: Trolley zum Ausfahren vorhanden? ---
|
||||
A "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
O "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
O "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
O "DPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
O "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
O "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
O "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
O "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation."Trolleys bereit"
|
||||
JC Zufall
|
||||
|
||||
SET
|
||||
S "DPS5_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
S "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
S "DPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
S "DPS4_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
S "DPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
S "DMPS3_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
S "DMPS2_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
S "DMPS1_OmniFahren".Sks_Arbeitsplatz.Dyn.Simulation.Neustart
|
||||
|
||||
L 0
|
||||
T "DAMR_Bereich".Simulation.AMR
|
||||
|
||||
BEU
|
||||
|
||||
|
||||
--- NW 3: AMR zufällig ermitteln ---
|
||||
Zufall: L "DAMR_Bereich".Simulation.MSekunden
|
||||
SRW 4
|
||||
T Zufallszahl
|
||||
|
||||
L Zufallszahl
|
||||
JL Ende
|
||||
JU s000 // Schritt 0
|
||||
JU s001 // Schritt 1
|
||||
JU s002 // Schritt 2
|
||||
JU s003 // Schritt 3
|
||||
JU s004 // Schritt 4
|
||||
JU s005 // Schritt 5
|
||||
JU s006 // Schritt 6
|
||||
JU s007 // Schritt 7
|
||||
JU s008 // Schritt 8
|
||||
Ende: BEU // Kein AMR
|
||||
|
||||
s000: BEU // Kein AMR
|
||||
|
||||
s001: L 16#A500 // PS5
|
||||
JU AMRCheck
|
||||
s002: L 16#A400 // PS4
|
||||
JU AMRCheck
|
||||
s003: L 16#A300 // PS3
|
||||
JU AMRCheck
|
||||
s004: L 16#A200 // PS2
|
||||
JU AMRCheck
|
||||
s005: L 16#A100 // PS1
|
||||
JU AMRCheck
|
||||
s006: L 16#B300 // MPS3
|
||||
JU AMRCheck
|
||||
s007: L 16#B200 // MPS2
|
||||
JU AMRCheck
|
||||
s008: L 16#B100 // MPS1
|
||||
JU AMRCheck
|
||||
|
||||
|
||||
--- NW 4: AMR bereit ? ---
|
||||
AMRCheck: T "DAMR_Bereich".Simulation.AMR
|
||||
|
||||
CALL FC "AMRZeiger_ermitteln" (AMR_X:="DAMR_Bereich".Simulation.AMR, AMR_DB:=AMR_DB, AMR_DW:=AMR_DW, Error:="M199.0")
|
||||
|
||||
A "M199.0"
|
||||
BEC
|
||||
|
||||
// Ziel-Pointer erzeugen: (PLC-Daten)
|
||||
L AMR_DW
|
||||
ITD
|
||||
T AR1Start // Startwert mit Offset 0
|
||||
|
||||
// Hat AMR Trolleys zum Ausfahren?:
|
||||
L AR1Start // Startwert mit Offset 0
|
||||
+ DINT#184 // Offset für Simulation
|
||||
SLD 3
|
||||
L 3 // Damit DBX_Bit 3
|
||||
OD
|
||||
T AR1Zeiger // Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
OPN DB[AMR_DB] // AMR-DB öffnen
|
||||
AN DBX [AR1Zeiger] // Trolleys bereit für Ausfahrt
|
||||
BEC
|
||||
|
||||
// Trolley starten:
|
||||
L AR1Start // Startwert mit Offset 0
|
||||
+ DINT#184 // Offset für Simulation
|
||||
SLD 3
|
||||
L 1 // Damit DBX_Bit 1
|
||||
OD
|
||||
T AR1Zeiger // Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
OPN DB[AMR_DB] // AMR-DB öffnen
|
||||
SET
|
||||
= DBX [AR1Zeiger] // Trolley starten
|
||||
|
||||
SET
|
||||
R "DAMR_Bereich".Simulation.Wartezeit_ok // Wartezeit neu starten
|
||||
|
||||
|
||||
--- NW 5: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
=== GlobalDB 1010: TrolleyDL_INDaten [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
INDaten : "UTrolley"
|
||||
@@ -0,0 +1,4 @@
|
||||
=== GlobalDB 1011: TrolleyDL_OutDaten [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
OUTDaten : "UTrolley"
|
||||
@@ -0,0 +1,4 @@
|
||||
=== GlobalDB 1012: TrolleyDL_SearchDaten [DB] ===
|
||||
INTERFACE:
|
||||
Static:
|
||||
SEARCHDaten : "UTrolley"
|
||||
@@ -0,0 +1,52 @@
|
||||
=== FC 1003: Trolley_DL_Check_ID [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
TrolleyID : DInt
|
||||
Output:
|
||||
Check_EndZiel : Word // Ziel
|
||||
Check_ZwischenZiel : Word // Für Weiche,...
|
||||
Check_Variante : Int // Variante auf Trolley
|
||||
Check_Standort : Word // Standort (Puffer, Heber, unterwegs)
|
||||
Check_ShopGroup : DInt
|
||||
Err : Bool
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Trolley auslesen ---
|
||||
L TrolleyID
|
||||
T "MD220"
|
||||
|
||||
CALL FC "DatenOut" (SSDB:=1000, SSDW:=0, PARA:=16#0000, SEARCHDATEN:=P#M220.0, RE_VAL:="MB199", OUTDATEN:=DB1011.DBX0.0, Position:="MW196") // Eintrag lesen
|
||||
|
||||
L "MB199"
|
||||
L 2#1111111 // Bit 7 ausblenden
|
||||
AW
|
||||
L 0 // Fehler vorhanden?
|
||||
<>I // Ja
|
||||
= Err
|
||||
BEC
|
||||
|
||||
|
||||
--- NW 2: Relevante Daten übergeben ---
|
||||
L "TrolleyDL_OutDaten".OUTDaten.EndZiel
|
||||
T Check_EndZiel
|
||||
|
||||
L "TrolleyDL_OutDaten".OUTDaten.ZwischenZiel
|
||||
T Check_ZwischenZiel
|
||||
|
||||
L "TrolleyDL_OutDaten".OUTDaten.ShopGroup
|
||||
T Check_Variante
|
||||
|
||||
L "TrolleyDL_OutDaten".OUTDaten.Standort
|
||||
T Check_Standort
|
||||
|
||||
L "TrolleyDL_OutDaten".OUTDaten.ShopGroup
|
||||
T Check_ShopGroup
|
||||
|
||||
|
||||
--- NW 3: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
=== FC 1002: Trolley_DL_Neue_Pos [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Gesamt_Trolley_DL : Int
|
||||
TrolleyID : DInt
|
||||
Position : Word
|
||||
ShopGroup : DInt
|
||||
Output:
|
||||
Err : Bool
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: GesamtTrolly-DL angegeben? ---
|
||||
L Gesamt_Trolley_DL
|
||||
L 0 // sinnvolle Angabe?
|
||||
<=I // Nein!
|
||||
BEC // Abbruch
|
||||
|
||||
|
||||
--- NW 2: Trolley auslesen ---
|
||||
L TrolleyID
|
||||
T "MD220"
|
||||
|
||||
CALL FC "DatenOut" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, PARA:=16#0000, SEARCHDATEN:=P#M220.0, RE_VAL:="MB199", OUTDATEN:=DB1011.DBX0.0, Position:="MW196") // Eintrag lesen
|
||||
|
||||
L "MB199"
|
||||
L 2#1111111 // Bit 7 ausblenden
|
||||
AW
|
||||
L 0 // Fehler vorhanden?
|
||||
<>I // Ja
|
||||
= Err
|
||||
BEC
|
||||
|
||||
|
||||
--- NW 3: Zeit übegeben ---
|
||||
L TrolleyID
|
||||
T "TrolleyDL_OutDaten".OUTDaten.TrolleyID
|
||||
L "SGes".DATE_TIME.Jahr
|
||||
T "TrolleyDL_OutDaten".OUTDaten.LastTime.Jahr
|
||||
L "SGes".DATE_TIME.Monat
|
||||
T "TrolleyDL_OutDaten".OUTDaten.LastTime.Monat
|
||||
L "SGes".DATE_TIME.Tag
|
||||
T "TrolleyDL_OutDaten".OUTDaten.LastTime.Tag
|
||||
L "SGes".DATE_TIME.Stunde
|
||||
T "TrolleyDL_OutDaten".OUTDaten.LastTime.Stunde
|
||||
L "SGes".DATE_TIME.Minute
|
||||
T "TrolleyDL_OutDaten".OUTDaten.LastTime.Minute
|
||||
L "SGes".DATE_TIME.Sekunde
|
||||
T "TrolleyDL_OutDaten".OUTDaten.LastTime.Sekunde
|
||||
|
||||
|
||||
--- NW 4: Neue Position übergeben ---
|
||||
L Position
|
||||
L 0
|
||||
==I
|
||||
JC NoNewPos
|
||||
|
||||
CAC
|
||||
T "TrolleyDL_OutDaten".OUTDaten.Standort
|
||||
|
||||
NoNewPos: NOP 0
|
||||
|
||||
|
||||
--- NW 5: ShopGroup übergeben ? (bei 0 nichts ändern!) ---
|
||||
L ShopGroup
|
||||
L DINT#0
|
||||
==D
|
||||
JC NoShopGroup
|
||||
|
||||
CAC
|
||||
T "TrolleyDL_OutDaten".OUTDaten.ShopGroup
|
||||
|
||||
NoShopGroup: NOP 0
|
||||
|
||||
|
||||
--- NW 6: Daten schreiben ---
|
||||
CALL FC "DatenIn" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, INDATEN:=DB1011.DBX0.0, RE_VAL:="MB199")
|
||||
|
||||
|
||||
|
||||
--- NW 7: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
=== FC 6: Trolley_in_Arbeitsplatz_eingefahren [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
TrolleyID : DInt
|
||||
Ziel : Word
|
||||
AusfahrZiel : Word
|
||||
Gesamt_Trolley_DL : Int
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
ABP_DB : Int
|
||||
ABP_DW : Int
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
AR1Start : DInt // Startwert mit Offset 0
|
||||
Position : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Ziel = AusfahrZiel -> Einfahrt an ABP melden ---
|
||||
L Ziel
|
||||
T "MW220"
|
||||
L 16#0 // Sinnvolles Ziel ?
|
||||
==I // Nein!
|
||||
BEC
|
||||
|
||||
CAC // Trolley-Ziel
|
||||
L AusfahrZiel // Bei diesem Ziel ausfahren?
|
||||
<>I // Nicht identisch!
|
||||
BEC
|
||||
|
||||
// Arbeitsplatz checken:
|
||||
CALL FC "DatenOut" (SSDB:=276, SSDW:=0, PARA:=16#0000, SEARCHDATEN:=P#M220.0, RE_VAL:="MB199", OUTDATEN:=P#M220.0, Position:=Position) // Eintrag lesen
|
||||
|
||||
L "MB199"
|
||||
L 2#1111111 // Bit 7 ausblenden
|
||||
AW
|
||||
L 0 // Fehler vorhanden?
|
||||
<>I // Ja
|
||||
BEC
|
||||
|
||||
L "MW224"
|
||||
T ABP_DB
|
||||
L "MW226"
|
||||
T ABP_DW
|
||||
|
||||
L ABP_DW
|
||||
ITD
|
||||
T AR1Start // Startwert mit Offset 0
|
||||
|
||||
// Status:
|
||||
L AR1Start // Startwert mit Offset 0
|
||||
+ DINT#62 // Offset für Status
|
||||
SLD 3
|
||||
L 1 // Damit DBX_Bit 1
|
||||
OD
|
||||
T AR1Zeiger // Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
// Trolley fährt ein:
|
||||
OPN DB[ABP_DB] // ABP-DB öffnen
|
||||
|
||||
SET
|
||||
= DBX [AR1Zeiger] // Trolley ist eingefahren
|
||||
|
||||
|
||||
--- NW 2: TrolleyID + Standort in Trolley-DL eintragen ---
|
||||
L TrolleyID
|
||||
L 0
|
||||
==I
|
||||
BEC
|
||||
|
||||
L Gesamt_Trolley_DL
|
||||
L 0 // Liste angegeben?
|
||||
==I // Nein!
|
||||
BEC
|
||||
|
||||
L TrolleyID
|
||||
T "TrolleyDL_INDaten".INDaten.TrolleyID
|
||||
L 16#0 // Ziel löschen
|
||||
T "TrolleyDL_INDaten".INDaten.EndZiel
|
||||
L DINT#0
|
||||
T "TrolleyDL_INDaten".INDaten.ShopGroup
|
||||
|
||||
// Standort:
|
||||
L AusfahrZiel
|
||||
T "TrolleyDL_INDaten".INDaten.Standort
|
||||
|
||||
// Startzeit:
|
||||
L "SGes".DATE_TIME.Jahr
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Jahr
|
||||
L "SGes".DATE_TIME.Monat
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Monat
|
||||
L "SGes".DATE_TIME.Tag
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Tag
|
||||
L "SGes".DATE_TIME.Stunde
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Stunde
|
||||
L "SGes".DATE_TIME.Minute
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Minute
|
||||
L "SGes".DATE_TIME.Sekunde
|
||||
T "TrolleyDL_INDaten".INDaten.LastTime.Sekunde
|
||||
|
||||
// Daten in Datenbank schreiben:
|
||||
CALL FC "DatenIn" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, INDATEN:=DB1010.DBX0.0, RE_VAL:="MB198")
|
||||
|
||||
|
||||
--- NW 3: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
=== FC 1: Trolleydaten_löschen [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Gesamt_Trolley_DL : Int
|
||||
TrolleyID : DInt
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: GesamtTrolly-DL angegeben? ---
|
||||
L Gesamt_Trolley_DL
|
||||
L 0 // sinnvolle Angabe?
|
||||
<=I // Nein!
|
||||
BEC // Abbruch
|
||||
|
||||
|
||||
--- NW 2: Trolleydaten auslesen und verändern ---
|
||||
// Trolleydaten manipulieren:
|
||||
L TrolleyID
|
||||
T "TrolleyDL_SearchDaten".SEARCHDaten.TrolleyID
|
||||
|
||||
CALL FC "DatenOut" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, PARA:=16#E100, SEARCHDATEN:=DB1012.DBX0.0, RE_VAL:="MB198", OUTDATEN:=DB1011.DBX0.0, Position:="MW200") // Eintrag lesen + austragen
|
||||
|
||||
L "MB198"
|
||||
|
||||
BEU
|
||||
|
||||
|
||||
--- NW 3: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
=== FC 3: Trolleydaten_neu_anlegen [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Gesamt_Trolley_DL : Int
|
||||
TrolleyID : DInt
|
||||
Endziel : Word
|
||||
ShopGroup : DInt
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Lager_DB : Int
|
||||
Lager_DW : Int
|
||||
SSDW : Int
|
||||
Position : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: GesamtTrolly-DL angegeben? ---
|
||||
L Gesamt_Trolley_DL
|
||||
L 0 // sinnvolle Angabe?
|
||||
<=I // Nein!
|
||||
BEC // Abbruch
|
||||
|
||||
|
||||
--- NW 2: Erst mal alte Daten löschen ---
|
||||
CALL FC "Trolleydaten_löschen" (Gesamt_Trolley_DL:=Gesamt_Trolley_DL, TrolleyID:=TrolleyID)
|
||||
|
||||
|
||||
--- NW 3: Trolleydaten speichern ---
|
||||
// Trolleydaten manipulieren:
|
||||
L TrolleyID
|
||||
T "TrolleyDL_INDaten".INDaten.TrolleyID
|
||||
|
||||
L Endziel // Eingabe über Beobachtungstabelle (Tests)
|
||||
T "TrolleyDL_INDaten".INDaten.EndZiel
|
||||
L ShopGroup
|
||||
T "TrolleyDL_INDaten".INDaten.ShopGroup
|
||||
|
||||
// Rest nullen
|
||||
L 0
|
||||
T "TrolleyDL_INDaten".INDaten.ZwischenZiel
|
||||
T "TrolleyDL_INDaten".INDaten.Standort
|
||||
|
||||
// Daten in Datenbank schreiben:
|
||||
CALL FC "DatenIn" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, INDATEN:=DB1010.DBX0.0, RE_VAL:="MB198")
|
||||
|
||||
L "TrolleyDL_INDaten".INDaten.TrolleyID
|
||||
|
||||
|
||||
--- NW 4: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
=== FC 2: Trolleydaten_ändern [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Gesamt_Trolley_DL : Int
|
||||
TrolleyID : DInt
|
||||
Endziel : Word
|
||||
ShopGroup : DInt
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: GesamtTrolly-DL angegeben? ---
|
||||
L Gesamt_Trolley_DL
|
||||
L 0 // sinnvolle Angabe?
|
||||
<=I // Nein!
|
||||
BEC // Abbruch
|
||||
|
||||
|
||||
--- NW 2: Trolleydaten auslesen und verändern ---
|
||||
// Trolleydaten manipulieren:
|
||||
L TrolleyID
|
||||
T "TrolleyDL_SearchDaten".SEARCHDaten.TrolleyID
|
||||
|
||||
CALL FC "DatenOut" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, PARA:=16#0000, SEARCHDATEN:=DB1012.DBX0.0, RE_VAL:="MB198", OUTDATEN:=DB1011.DBX0.0, Position:="MW200") // Eintrag lesen
|
||||
|
||||
L "MB198"
|
||||
L 2#10000000 // Datensatz vorhanden?
|
||||
<>I // Nein!
|
||||
BEC
|
||||
|
||||
L "TrolleyDL_OutDaten".OUTDaten.TrolleyID // Zum Beobachten
|
||||
|
||||
L Endziel
|
||||
L -1 // Keine Änderung ?
|
||||
==I // Ja !
|
||||
JC Variante // Nichts überschreiben
|
||||
|
||||
CAC
|
||||
T "TrolleyDL_OutDaten".OUTDaten.EndZiel
|
||||
|
||||
Variante: L ShopGroup
|
||||
L DINT#-1 // Keine Änderung ?
|
||||
==D // Ja !
|
||||
JC Save // Nichts überschreiben
|
||||
|
||||
CAC
|
||||
T "TrolleyDL_OutDaten".OUTDaten.ShopGroup
|
||||
|
||||
Save: CALL FC "DatenIn" (SSDB:=Gesamt_Trolley_DL, SSDW:=0, INDATEN:=DB1011.DBX0.0, RE_VAL:="MB198")
|
||||
|
||||
BEU
|
||||
|
||||
|
||||
--- NW 3: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
=== FC 1000: Wandel_FC_für_DB1000 [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Output:
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Wandeln der Daten ---
|
||||
L "MD94"
|
||||
+ DINT#-6040000 // Funktioniert bis max: 6072767 (Wert + 32767)
|
||||
T "MW92" // Funktioniert bis max: 32767, danach negativ
|
||||
|
||||
|
||||
--- NW 2: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
=== FC 276: AMR_LeerTrolley_Anforderung [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
LeerTrolleys_benötigt : Int
|
||||
ArbeitsPlatz : Word
|
||||
Output:
|
||||
InOut:
|
||||
Gespeicherte_LeerTrolleys : Int
|
||||
Temp:
|
||||
DLDB : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Änderung vorhanden? ---
|
||||
L "LeerTrolleys_benötigt" // Diese Anzahl wird benötigt
|
||||
L Gespeicherte_LeerTrolleys // Diese Anzahl ist schon gespeichert
|
||||
==I // Identisch!
|
||||
A(
|
||||
L "LeerTrolleys_benötigt" // Diese Anzahl wird benötigt
|
||||
L 0
|
||||
<>I
|
||||
)
|
||||
BEC // Keine Änderung nötig!
|
||||
|
||||
|
||||
--- NW 2: Alle evtl. gespeicherte Anforderungen löschen ---
|
||||
L 1112 // Mit DL (12 Trolleys benötigt) beginnen
|
||||
T DLDB
|
||||
|
||||
NextDL: L ArbeitsPlatz
|
||||
T "MW220"
|
||||
|
||||
CALL FC "DatenOut" (SSDB:=DLDB, SSDW:=0, PARA:=16#E100, SEARCHDATEN:=P#M220.0, RE_VAL:="MB198", OUTDATEN:=P#M200.0, Position:="MW196") // Daten suchen und austragen
|
||||
|
||||
// Nächst kleiner benötigte Stückzahl:
|
||||
L DLDB
|
||||
+ -1
|
||||
T DLDB
|
||||
|
||||
L 1101 // 1 Trolley benötigt
|
||||
>=I // noch sinnvoll?
|
||||
JC NextDL // Ja!
|
||||
|
||||
L 0 // Keine Speicherung mehr
|
||||
T Gespeicherte_LeerTrolleys // Diese Anzahl ist schon gespeichert
|
||||
|
||||
|
||||
--- NW 3: Benötigte Leertrolleys speichern ---
|
||||
L "LeerTrolleys_benötigt"
|
||||
L 12
|
||||
<=I
|
||||
JC OK
|
||||
|
||||
T "LeerTrolleys_benötigt"
|
||||
|
||||
OK: L "LeerTrolleys_benötigt"
|
||||
L 0
|
||||
==I // Nichts benötigt
|
||||
JC ESave
|
||||
|
||||
CAC
|
||||
+ 1100 // 1101 ->1112
|
||||
T DLDB
|
||||
|
||||
L ArbeitsPlatz
|
||||
T "MW220"
|
||||
|
||||
CALL FC "DatenIn" (SSDB:=DLDB, SSDW:=0, INDATEN:=P#M220.0, RE_VAL:="MB198")
|
||||
|
||||
AN "M198.7" // Eintrag richtig erfolgt
|
||||
JC ESave
|
||||
|
||||
L "LeerTrolleys_benötigt" // Anzahl übergeben
|
||||
T Gespeicherte_LeerTrolleys // Diese Anzahl ist schon gespeichert
|
||||
|
||||
ESave: NOP 0
|
||||
|
||||
|
||||
--- NW 4: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
=== FC 1276: AMR_LeerTrolley_Anforderung_Del [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
ArbeitsPlatz : Word
|
||||
Output:
|
||||
InOut:
|
||||
Gespeicherte_LeerTrolleys : Int
|
||||
Temp:
|
||||
DLDB : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Bisherig gespeicherte Anforderung löschen ---
|
||||
L Gespeicherte_LeerTrolleys // Diese Anzahl ist schon gespeichert
|
||||
L 0
|
||||
==I // Nichts gespeichert
|
||||
BEC
|
||||
|
||||
CAC
|
||||
+ 1100 // 1101 ->1109
|
||||
T DLDB
|
||||
|
||||
L ArbeitsPlatz
|
||||
T "MW220"
|
||||
|
||||
CALL FC "DatenOut" (SSDB:=DLDB, SSDW:=0, PARA:=16#E100, SEARCHDATEN:=P#M220.0, RE_VAL:="MB198", OUTDATEN:=P#M200.0, Position:="MW196") // Daten suchen und austragen
|
||||
|
||||
L 0 // Keine Speicherung mehr
|
||||
T Gespeicherte_LeerTrolleys // Diese Anzahl ist schon gespeichert
|
||||
|
||||
|
||||
--- NW 2: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
=== FC 78: BCD (4stellig)_to_INT [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
BCD_Wert : Word
|
||||
Output:
|
||||
Int_Wert : Int
|
||||
InOut:
|
||||
Temp:
|
||||
BCD_Vergleich : Word
|
||||
Multiplikator : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Rückmeldung ---
|
||||
L 0 // erst mal köschen
|
||||
T Int_Wert
|
||||
|
||||
L 1
|
||||
T Multiplikator
|
||||
|
||||
--- NW 2: BCD-Wert wandeln ---
|
||||
L BCD_Wert
|
||||
T BCD_Vergleich
|
||||
L 16#000F
|
||||
AW
|
||||
L Multiplikator
|
||||
*I
|
||||
L Int_Wert
|
||||
+I
|
||||
T Int_Wert
|
||||
|
||||
L Multiplikator
|
||||
L 16
|
||||
*I
|
||||
T Multiplikator
|
||||
|
||||
L BCD_Vergleich
|
||||
SRW 4
|
||||
T BCD_Vergleich
|
||||
|
||||
L 16#000F
|
||||
AW
|
||||
L Multiplikator
|
||||
*I
|
||||
L Int_Wert
|
||||
+I
|
||||
T Int_Wert
|
||||
|
||||
L Multiplikator
|
||||
L 16
|
||||
*I
|
||||
T Multiplikator
|
||||
|
||||
L BCD_Vergleich
|
||||
SRW 4
|
||||
T BCD_Vergleich
|
||||
|
||||
L 16#000F
|
||||
AW
|
||||
L Multiplikator
|
||||
*I
|
||||
L Int_Wert
|
||||
+I
|
||||
T Int_Wert
|
||||
|
||||
L Multiplikator
|
||||
L 16
|
||||
*I
|
||||
T Multiplikator
|
||||
|
||||
L BCD_Vergleich
|
||||
SRW 4
|
||||
T BCD_Vergleich
|
||||
|
||||
L 16#000F
|
||||
AW
|
||||
L Multiplikator
|
||||
*I
|
||||
L Int_Wert
|
||||
+I
|
||||
T Int_Wert
|
||||
|
||||
|
||||
--- NW 3: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
=== FC 99: DBMOV [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
QuellDB : Int // Quell-DB
|
||||
QuellDW : Int // Quell-1.DW
|
||||
ZielDB : Int // Ziel-DB
|
||||
ZielDW : Int // Ziel-1.DW
|
||||
Anzahl_DW : Int // Anzahl der zu kopierenden DWs
|
||||
Output:
|
||||
RE_VAL : Int // Rückmeldung
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: ---
|
||||
// Kennung + Datenbytes
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
L Anzahl_DW // Datenwords speichern
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
// Quelle-Pointer erzeugen:
|
||||
L QuellDB
|
||||
T LW4 // DB_Nummer
|
||||
L QuellDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
L ZielDB
|
||||
T LW14 // DB_Nummer
|
||||
L ZielDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=RE_VAL, DSTBLK:=Ziel) // Datenliste-Daten speichern
|
||||
|
||||
|
||||
--- NW 2: Ende ---
|
||||
BE
|
||||
@@ -0,0 +1,55 @@
|
||||
=== FC 1004: DL_Einsprung [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Bereich_DL : Int // Nur für Stammdaten =1!
|
||||
ID : Int
|
||||
Output:
|
||||
Dyn.DB : Int
|
||||
AR_Start : DInt
|
||||
Error : Bool
|
||||
InOut:
|
||||
Temp:
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Inittialisierung ---
|
||||
L 0
|
||||
T "Dyn.DB"
|
||||
L DINT#0
|
||||
T AR_Start
|
||||
SET
|
||||
S Error
|
||||
|
||||
|
||||
--- NW 2: ID suchen ---
|
||||
L ID
|
||||
T "MW200"
|
||||
|
||||
CALL FC "DatenOut" (SSDB:=Bereich_DL, SSDW:=0, PARA:=16#0000, SEARCHDATEN:=P#M200.0, RE_VAL:="MB199", OUTDATEN:=P#M220.0, Position:="MW196") // Eintrag lesen
|
||||
|
||||
L "MB199"
|
||||
L 2#1111111 // Bit 7 ausblenden
|
||||
AW
|
||||
L 0 // Fehler vorhanden?
|
||||
<>I // Ja
|
||||
= Error
|
||||
BEC
|
||||
|
||||
|
||||
--- NW 3: Daten übergeben ---
|
||||
L "MW224"
|
||||
T "Dyn.DB" // Dyn.DB
|
||||
L 0 // sinnvoller Wert ?
|
||||
<=I // Nein !
|
||||
S Error
|
||||
BEC
|
||||
|
||||
L "MW226"
|
||||
ITD
|
||||
T AR_Start
|
||||
|
||||
|
||||
--- NW 4: Ende ---
|
||||
BE
|
||||
|
||||
@@ -0,0 +1,627 @@
|
||||
=== FC 91: DatenFindOffsetSort [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
SSDB : Int // Datenlisten-DB
|
||||
SSDW : Int // Datenlisten-1.DW
|
||||
PARA : Word // Aufrufparameter (Auftrag / Anzahl Zusatzdaten)
|
||||
SEARCHDATEN : Pointer // Such-Daten-Schnittstelle
|
||||
Output:
|
||||
RE_VAL : Byte // Rückmeldung
|
||||
OUTDATEN : Pointer // OutDaten-Schnittstelle
|
||||
Position : Int // Daten stehen an angegebener Position in Datenbank
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Kopf : Byte // Datenliste-Kennnung (DA)
|
||||
Datensatzlaenge : Byte // Datensatzlänge in Word (01 - F0) F0=128
|
||||
Listenlaenge : Int // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
Stammdaten : Int // Stammdatenlänge in Word (1 - 9)
|
||||
Belegt06 : Int // reserviert von Datenliste
|
||||
Belegt08 : Int // reserviert von Datenliste
|
||||
Belegt10 : Int // reserviert von Datenliste
|
||||
Belegt12 : Int // reserviert von Datenliste
|
||||
AnzahlEintraege : Int // Anzahl der eingetragenen Datensätze
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Para1 : Byte // 1.Aufrufparameter
|
||||
Para2 : Byte // 2.Aufrufparameter
|
||||
Suchzeiger : Int // Suchzeiger
|
||||
DBDatenliste : Word // Datenlisten-DB
|
||||
OffsetDaten_1 : Int // Stammdaten beginnen ab hier
|
||||
SFC_RET_VAL : Int // Rückmeldung SFC-Aufruf
|
||||
SFC_DB_LENGTH : Word // Rückmeldung SFC-Aufruf
|
||||
Datenlisten_Ende : Word // Ende der Datenliste
|
||||
AR2_Speicher : DWord // Adress-Register 2 zwischenspeichern
|
||||
Schleife : Word // Loopzähler
|
||||
DBSuchDaten : Word // Such-Daten-DB, falls angegeben
|
||||
SuchDaten_Pointer : DWord // Such-Daten-Pointer: Kennung, Adresse
|
||||
SuchDaten_Startpunkt : Word // Such-Daten-Startpunkt: Adresse
|
||||
DBOutDaten : Word // Out-Daten-DB, falls angegeben
|
||||
OutDaten_Pointer : DWord // Out-Daten-Pointer: Kennung, Adresse
|
||||
OutDaten_Startpunkt : Word // Out-Daten-Startpunkt: Adresse
|
||||
IndPointer : DWord // Zeiger für IndDB
|
||||
Daten_1 : Word // 1.Datenwort der Indaten
|
||||
Datenblock_inBytes : Word // Datenblocklänge in Bytes
|
||||
Suchstelle : Word // Bei angegebenen Datensatz suchen
|
||||
SFC_WRITE_PROT : Bool // Rückmeldung SFC-Aufruf
|
||||
Weitersuchen : Bool // Weitersuchen ist aktiv
|
||||
Offsetsuchen : Bool // Offsetsuchen ist aktiv
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
tRE_VAL : Byte // Rückmeldung
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Schnittstellen-DB sinnvoll ? ---
|
||||
TAR2
|
||||
T AR2_Speicher // AR2 zwischenspeichern
|
||||
|
||||
L SSDB
|
||||
T DBDatenliste
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBDatenliste
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBDatenliste, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT // schreibgeschützt
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 2: Quelle-Pointer erzeugen: ---
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0 // Any-Kennung, Datentyp
|
||||
L 16#000A // 10 Dw´s holen
|
||||
T LW2 // Wiederholungen
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L SSDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=P#L20.0 WORD 10) // 1.-10.DW Datenliste holen
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
|
||||
--- NW 3: Zeigerüberprüfung ---
|
||||
L Kopf // Datenliste-Kopf
|
||||
L 16#DB // = Sort-Datenlistekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 128
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
+ 20 // Speichern ab 10.DW
|
||||
L SSDW
|
||||
+I
|
||||
T Datenlisten_Ende
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datenlisten_Ende
|
||||
L SFC_DB_LENGTH
|
||||
>I // Datenlisten-DB ist zu kurz!
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L DBW [AR1Zeiger]
|
||||
L 16#DAEE // Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
A(
|
||||
CAC
|
||||
L 16#DBEE // Sort-Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
)
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2
|
||||
*I
|
||||
T Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
|
||||
|
||||
--- NW 4: Auftrag kontrollieren ---
|
||||
SET
|
||||
R Weitersuchen // Weitersuchen ist aktiv
|
||||
R Offsetsuchen // Offsetsuchen ist aktiv
|
||||
L 0 // Vorerst kein Offset
|
||||
T OffsetDaten_1
|
||||
|
||||
L PARA
|
||||
T LW40 // Aufrufparameter zwischenspeichern
|
||||
|
||||
L 16#00 // XX = 00 ?
|
||||
L Para1
|
||||
==I // Ja!
|
||||
JC W401
|
||||
|
||||
L 16#E1 // XX = E1 ?
|
||||
==I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 16#F1 // XX = F1 ?
|
||||
L Para1
|
||||
<>I // Nein !
|
||||
JC W400
|
||||
|
||||
L Para2
|
||||
L 16#00
|
||||
<>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
SET
|
||||
S Weitersuchen
|
||||
|
||||
L SSDW
|
||||
+ 20
|
||||
T Suchzeiger
|
||||
|
||||
JU Nw08 // OutDaten ok ?
|
||||
|
||||
W400: L 16#FF // XX = FF ?
|
||||
<>I // Nein !
|
||||
JC W403
|
||||
|
||||
L Para2
|
||||
L 16#00
|
||||
<>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
SET
|
||||
S Weitersuchen
|
||||
|
||||
L Suchzeiger // Alter Suchzeiger
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
+I // Nächsten Datensatz suchen
|
||||
T Suchzeiger // Neuer Suchzeiger
|
||||
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
L Listenlaenge // Alle möglichen Einträge
|
||||
*I // Gesamtlänge
|
||||
L SSDW // Startpunkt
|
||||
+I
|
||||
+ 20 // Offset 1.Daten
|
||||
L Suchzeiger // Schreibzeiger
|
||||
>I // Noch nicht am Ende !
|
||||
JC Nw08 // OutDaten ok ?
|
||||
|
||||
JU Err2 // Listenende erreicht
|
||||
|
||||
W403: L 16#02 // XX < 02 ?
|
||||
L Para1
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 16#80 // XX > 80 ?
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
CAC
|
||||
L Datensatzlaenge // XX > Datensatzlänge
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
CAC
|
||||
+ -1 // Angegebener Offset -1
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
T OffsetDaten_1 // Richtiger Offset der 1.Stammdaten
|
||||
|
||||
L 0
|
||||
T Suchzeiger // Suche ab Anfang
|
||||
|
||||
SET
|
||||
S Offsetsuchen
|
||||
|
||||
W401: L 16#00 // =0 ?
|
||||
L Para2 // 2.Aufrufparameter
|
||||
==I // Ja !
|
||||
JC W402
|
||||
|
||||
T Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
W402: AN Offsetsuchen
|
||||
JC Nw05
|
||||
|
||||
L Para1 // Offset
|
||||
+ -1
|
||||
L Stammdaten
|
||||
+I // Letzte Stammdaten zu groß ?
|
||||
L Datensatzlaenge
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
|
||||
--- NW 5: Such-DATEN-Pointer übernehmen: ---
|
||||
Nw05: L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
L 0 // Eintrag vorhanden ?
|
||||
==I // Nein !
|
||||
JC Err6 // Datensatz ist nicht vorhanden
|
||||
|
||||
L 0
|
||||
T Suchzeiger // Suchzeiger
|
||||
|
||||
L P#
|
||||
LAR2
|
||||
|
||||
L NoneW [AR2,]
|
||||
T DBSuchDaten // Suchdaten-DB
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
T SuchDaten_Pointer
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W501
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBSuchDaten
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBSuchDaten, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
JC Err4 // Undefinierte Stammdaten
|
||||
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
L 16#00FF_FFFF // Ohne Kennung
|
||||
AW
|
||||
SRW 3 // Ohne Bit
|
||||
T SuchDaten_Startpunkt
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
L SuchDaten_Startpunkt
|
||||
+I
|
||||
L SFC_DB_LENGTH
|
||||
>I // Suchdaten-DB ist zu kurz
|
||||
JC Err4 // Undefinierte Stammdaten
|
||||
|
||||
W501: L SuchDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W502
|
||||
|
||||
OPN DB[DBSuchDaten]
|
||||
|
||||
W502: L NoneW [AR2,] // Suchdaten überprüfen
|
||||
T Daten_1 // 1.Suchdaten speichern
|
||||
|
||||
L Stammdaten
|
||||
L500: T Schleife
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W503
|
||||
|
||||
OPN DB[DBSuchDaten]
|
||||
|
||||
W503: L NoneW [AR2,] // Suchdaten überprüfen
|
||||
L 0 // Etwas angegeben ?
|
||||
<>I // Ja !
|
||||
JC Nw07 // Weiter
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L500
|
||||
|
||||
JU Err4 // Undefinierte Stammdaten
|
||||
|
||||
|
||||
--- NW 6: Kontrolle auf gleiche Stammdaten ---
|
||||
Nw07: L Suchzeiger // Suchzeiger
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein !
|
||||
JC W700 // Suche bei 1.Datensatz beginnen
|
||||
|
||||
L Suchzeiger // Suchzeiger
|
||||
+ -20 // Zeiger 1.Daten
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
/I // Ermittlung der wievielten Daten -1
|
||||
SRD 16 // Rest ermitteln
|
||||
L 0 // = 0 ?
|
||||
<>I // Suchzeiger nicht im Raster !
|
||||
JC W700 // Suche bei 1.Datensatz beginnen
|
||||
|
||||
L 0 // Bei angegebener Stelle suchen
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
|
||||
JU W701
|
||||
|
||||
W700: L 1 // Suche bei 1.Datensatz beginnen
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
L SSDW
|
||||
+ 20 // Offset für 1.Daten
|
||||
T Suchzeiger // Suchzeiger
|
||||
|
||||
W701: L Suchzeiger // Suchzeiger
|
||||
L OffsetDaten_1 // Richtiger Offset der 1.Stammdaten
|
||||
+I
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L SuchDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L700: T Schleife
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W702
|
||||
|
||||
OPN DB[DBSuchDaten]
|
||||
|
||||
W702: L NoneW [AR2,] // Suchdaten überprüfen mit
|
||||
OPN DB[DBDatenliste]
|
||||
L DBW [AR1Zeiger] // Datenliste-Daten lesen
|
||||
<>I // nicht identisch !
|
||||
JC W703
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L 2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L700
|
||||
|
||||
L 2#0000_0000_1000_0000 // Daten sind vorhanden
|
||||
T tRE_VAL // Ok-Status
|
||||
|
||||
JU Nw08 // Datensatz ist in Liste enthalten
|
||||
|
||||
W703: L 0 // Suche bei 1.Datensatz begonnen
|
||||
L Suchstelle // Such bei X-ten Datensatz
|
||||
==I // Nein !
|
||||
JC W700
|
||||
|
||||
L Suchstelle // Such bei X-ten Datensatz
|
||||
+ 1
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
<=I // Alle Datensätze sind durchsucht
|
||||
JC W705 // Nein !
|
||||
|
||||
JU Err6 // Datensatz ist nicht vorhanden
|
||||
|
||||
W705: L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
L Suchzeiger // Suchzeiger
|
||||
+I
|
||||
T Suchzeiger // Suchzeiger
|
||||
JU W701
|
||||
|
||||
|
||||
--- NW 7: Out-DATEN-Pointer übernehmen: ---
|
||||
Nw08: L P#
|
||||
LAR2
|
||||
|
||||
L NoneW [AR2,]
|
||||
T DBOutDaten // Outdaten-DB
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
T OutDaten_Pointer
|
||||
|
||||
L DBOutDaten // Outdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC Nw09
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBOutDaten
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBOutDaten, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
JC Err5 // Undefinierte Outdaten
|
||||
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
L 16#00FF_FFFF // Ohne Kennung
|
||||
AW
|
||||
SRW 3 // Ohne Bit
|
||||
T OutDaten_Startpunkt
|
||||
|
||||
L OutDaten_Startpunkt
|
||||
L SFC_DB_LENGTH
|
||||
>I // Outdaten-DB ist zu kurz
|
||||
JC Err5 // Undefinierte Outdaten
|
||||
|
||||
|
||||
--- NW 8: Quelle-Pointer erzeugen: ---
|
||||
Nw09: L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
L Datensatzlaenge // Datenwords speichern
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
// DATEN-Pointer übernehmen:
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L Suchzeiger // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
// Kennung + Datenbytes s.o.
|
||||
|
||||
L DBOutDaten
|
||||
T LW14 // DB_Nummer
|
||||
L OutDaten_Pointer
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // Datenliste-Daten speichern
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
L SSDW
|
||||
+ 12 // im 12.DW speichern
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Suchzeiger // Suchzeiger
|
||||
OPN DB[DBDatenliste]
|
||||
T DBW [AR1Zeiger] // Speicherung letzter Zugriff
|
||||
|
||||
L Suchzeiger // Suchzeiger
|
||||
+ -20 // Offeset 1.DS
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
/I
|
||||
+ 1 // Position errechnen
|
||||
T Position // Daten stehen an angegebener Position in Datenbank
|
||||
|
||||
|
||||
--- NW 9: Weitersuchen aktiv ? Datensatz vorhanden oder 0 ? ---
|
||||
AN Weitersuchen
|
||||
JC Ende
|
||||
|
||||
L OutDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L Datensatzlaenge
|
||||
L110: T Schleife
|
||||
|
||||
L DBOutDaten // Outdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W111
|
||||
|
||||
OPN DB[DBOutDaten]
|
||||
|
||||
W111: L NoneW [AR2,] // Outdaten überprüfen
|
||||
L 0 // Etwas angegeben ?
|
||||
<>I // Ja !
|
||||
JC W112 // Ok
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L110
|
||||
|
||||
L 2#0000_0000_0100_0000 // Daten sind nicht vorhanden
|
||||
T tRE_VAL // Ok-Status
|
||||
JU Ende
|
||||
|
||||
W112: L 2#0000_0000_1000_0000 // Daten sind vorhanden
|
||||
T tRE_VAL // Ok-Status
|
||||
JU Ende
|
||||
|
||||
|
||||
--- NW 10: Fehlerausgabe / RET_VAL ---
|
||||
Ende: SET // VKE = 1 ohne Fehler !!!
|
||||
L tRE_VAL // Ok-Status
|
||||
JU Ok
|
||||
Err0: L 2#0000_0000_0000_0001 // Kein Datenlistebereich
|
||||
JU Err
|
||||
Err1: L 2#0000_0000_0000_0010 // SFC20-Aufruf mit Fehler
|
||||
JU Err
|
||||
Err2: L 2#0000_0000_0000_0100 // Listenende ist erreicht
|
||||
JU Err
|
||||
Err3: L 2#0000_0000_0000_1000 // Falscher Parameter bei Aufruf
|
||||
JU Err
|
||||
Err4: L 2#0000_0000_0001_0000 // Undefinierte Suchdaten
|
||||
JU Err
|
||||
Err5: L 2#0000_0000_0010_0000 // Undefinierte OUTDaten
|
||||
JU Err
|
||||
Err6: L 2#0000_0000_0100_0000 // Datensatz nicht vorhanden
|
||||
|
||||
Err: CLR // VKE = 0 bei Fehler !!!
|
||||
|
||||
Ok: T tRE_VAL
|
||||
SAVE // VKE in BIE-Bit speichern
|
||||
|
||||
L AR2_Speicher // AR2 zurückspeichern
|
||||
LAR2
|
||||
|
||||
|
||||
--- NW 11: ---
|
||||
L tRE_VAL
|
||||
T RE_VAL
|
||||
|
||||
|
||||
@@ -0,0 +1,552 @@
|
||||
=== FC 85: DatenIn [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
SSDB : Int // Datenlisten-DB
|
||||
SSDW : Int // Datenlisten-1.DW
|
||||
INDATEN : Pointer // InDaten-Schnittstelle
|
||||
Output:
|
||||
RE_VAL : Byte
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Kopf : Byte // Datenliste-Kennnung (DA)
|
||||
Datensatzlaenge : Byte // Datensatzlänge in Word (01 - F0) F0=128
|
||||
Listenlaenge : Int // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
Stammdaten : Int // Stammdatenlänge in Word (1 - 9)
|
||||
IndDB : Word // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
IndDB_Laenge : Int // Länge des indizierten DB in Einträge (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
IndDaten_FC : Int // FC zum Wandeln der indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
Schreibzeiger : Int // Speicherung des letzten Zugriffs / Schreibzeiger
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
AnzahlEintraege : Int // Anzahl der eingetragenen Datensätze (nicht bei ind.Zugriff!)
|
||||
Reserve18 : Int // Reserve
|
||||
DBDatenliste : Word // Datenlisten-DB
|
||||
SFC_RET_VAL : Int // Rückmeldung SFC-Aufruf
|
||||
SFC_DB_LENGTH : Word // Rückmeldung SFC-Aufruf
|
||||
Datenlisten_Ende : Word // Ende der Datenliste
|
||||
AR2_Speicher : DWord // Adress-Register 2 zwischenspeichern
|
||||
Schleife : Word // Loopzähler
|
||||
DBInDaten : Word // Indaten-DB, falls angegeben
|
||||
InDaten_Pointer : DWord // In-Daten-Pointer: Kennung, Adresse
|
||||
InDaten_Startpunkt : Word // In-Daten-Startpunkt: Adresse
|
||||
IndPointer : DWord // Zeiger für IndDB
|
||||
Daten_1 : Word // 1.Datenwort der Indaten
|
||||
Daten_2 : DWord // 1+2.Datenwort der Indaten (falls ind.Suchen mit Stammdaten 2)
|
||||
LeerZeiger : Word // Zeiger für Leerzelle
|
||||
Datenblock_inBytes : Word // Datenblocklänge in Bytes
|
||||
Suchstelle : Word // Bei angegebenen Datensatz suchen
|
||||
SFC_WRITE_PROT : Bool // Rückmeldung SFC-Aufruf
|
||||
Indok : Bool // Indizierung möglich
|
||||
IndZeiger_ok : Bool // Indizier-Zeiger angegeben
|
||||
Sortliste : Bool // Sortliste wird durchsucht
|
||||
tRE_VAL : Byte // Rückmeldung
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
DB_Länge : Int
|
||||
Wandel_FC : Word // Wandel-FC
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Schnittstellen-DB sinnvoll ? ---
|
||||
TAR2
|
||||
T AR2_Speicher // AR2 zwischenspeichern
|
||||
|
||||
L SSDB
|
||||
T DBDatenliste
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBDatenliste, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 2: Quelle-Pointer erzeugen: ---
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0 // Any-Kennung, Datentyp
|
||||
L 16#000A // 10 Dw´s holen
|
||||
T LW2 // Wiederholungen
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L SSDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=P#L20.0 WORD 10) // 1.-10.DW Datenliste holen
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
|
||||
--- NW 3: Zeigerüberprüfung ---
|
||||
L Kopf // Datenliste-Kopf
|
||||
L 16#DB // = Sort-Datenlistekennung ?
|
||||
==I // Ja !
|
||||
= Sortliste // Sortliste wird durchsucht
|
||||
JC w030
|
||||
|
||||
CAC
|
||||
L 16#DA // = Datenlistekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
w030: L 1
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 128
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
+ 20 // Speichern ab 10.DW
|
||||
L SSDW
|
||||
+I
|
||||
T Datenlisten_Ende
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datenlisten_Ende
|
||||
L "DB_Länge"
|
||||
>I // Datenlisten-DB ist zu kurz!
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L DBW [AR1Zeiger]
|
||||
L 16#DAEE // Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
A(
|
||||
CAC
|
||||
L 16#DBEE // Sort-Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
)
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2
|
||||
*I
|
||||
T Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
|
||||
|
||||
--- NW 4: In-DATEN-Pointer übernehmen: ---
|
||||
L P#
|
||||
LAR2
|
||||
|
||||
L NoneW [AR2,]
|
||||
T DBInDaten // Indaten-DB
|
||||
|
||||
L DBInDaten // Indaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W401
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBInDaten, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
JC Err4 // Undefinierte Indaten
|
||||
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
L 16#00FF_FFFF // Ohne Kennung
|
||||
AW
|
||||
SRW 3 // Ohne Bit
|
||||
T InDaten_Startpunkt
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
L InDaten_Startpunkt
|
||||
+I
|
||||
L "DB_Länge"
|
||||
>I // Indaten-DB ist zu kurz
|
||||
JC Err4 // Undefinierte Indaten
|
||||
|
||||
W401: L NoneD [AR2,] // Kennung, Adresse
|
||||
T InDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L DBInDaten // Indaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W402
|
||||
|
||||
OPN DB[DBInDaten]
|
||||
|
||||
W402: L NoneW [AR2,] // Indaten überprüfen
|
||||
T Daten_1 // 1.Indaten speichern
|
||||
L NoneD [AR2,] // Suchdaten überprüfen
|
||||
T Daten_2 // 1.Suchdaten speichern
|
||||
|
||||
L Stammdaten
|
||||
L400: T Schleife
|
||||
|
||||
L DBInDaten // Indaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W403
|
||||
|
||||
OPN DB[DBInDaten]
|
||||
|
||||
W403: L NoneW [AR2,] // Indaten überprüfen
|
||||
L 0 // Etwas angegeben ?
|
||||
<>I // Ja !
|
||||
JC Nw05 // Weiter
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L400
|
||||
|
||||
JU Err4 // Undefinierte Indaten
|
||||
|
||||
|
||||
--- NW 5: Indiziert speichern ? ---
|
||||
Nw05: SET
|
||||
R Indok // Indizierung möglich
|
||||
R IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
|
||||
L IndDB // Indizierter DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein !
|
||||
O Sortliste // Sortliste wird durchsucht
|
||||
JC Nw06
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=IndDB, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT
|
||||
JC Nw06 // kein Indizier-DB vorhanden
|
||||
|
||||
|
||||
L IndDB_Laenge // Länge des Indizierten DB überschritten ?
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
L "DB_Länge"
|
||||
>I // Indizier-DB ist zu kurz
|
||||
JC Nw06 // Zeiger ausserhalb Ind.DB
|
||||
|
||||
L Stammdaten // Stammdaten
|
||||
L 3 // zu viele Stammdaten ?
|
||||
>=I // Ja !
|
||||
JC Nw06 // ohne Indizierung weiter
|
||||
|
||||
L IndDaten_FC // Offset zum Abziehen
|
||||
T Wandel_FC
|
||||
L 0 // Parameter vorhanden ?
|
||||
<=I // Nein
|
||||
JC NoFC // Bei diesem Schritt weiter
|
||||
|
||||
L Daten_1 // Stammdaten (1.DW)
|
||||
T "MW90" // übergeben
|
||||
L Daten_2 // Stammdaten (2.DW)
|
||||
T "MD94" // übergeben
|
||||
|
||||
UC DB[Wandel_FC] // Beeinflussung der Weiterfahrt
|
||||
|
||||
L "MW92" // Rückwert von FC
|
||||
|
||||
JU Ret
|
||||
|
||||
NoFC: L Daten_1 // Stammdaten
|
||||
Ret: T IndPointer // Stelle, wo Zeiger hinterlegt ist
|
||||
L 0
|
||||
<I // negativ
|
||||
JC Nw06 // Zeiger = 0
|
||||
|
||||
L IndDB_Laenge // Länge des Indizierten DB überschritten ?
|
||||
L IndPointer // Stelle, wo Zeiger hinterlegt ist
|
||||
<=I // Ja !
|
||||
JC Nw06 // Zeiger ausserhalb Ind.DB
|
||||
|
||||
L 2
|
||||
*I // DB byteorientiert
|
||||
SLD 3 // Pointer erzeugen
|
||||
T IndPointer // Pointer, wo Zeiger hinterlegt ist
|
||||
|
||||
OPN DB[IndDB] // Indizierter DB
|
||||
L DBW [IndPointer]
|
||||
T Schreibzeiger // Schreibzeiger
|
||||
|
||||
OPN DB[DBDatenliste] // Datenliste DB
|
||||
|
||||
SET
|
||||
S Indok // Indizierung möglich
|
||||
S IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
|
||||
|
||||
--- NW 6: Kontrolle auf gleiche Stammdaten ---
|
||||
Nw06: L 0 // nicht gespeichert
|
||||
T LeerZeiger // Zeiger Leerzelle
|
||||
|
||||
L Schreibzeiger // Schreibzeiger
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein !
|
||||
JC W600 // Suche bei 1.Datensatz beginnen
|
||||
|
||||
L Schreibzeiger // Schreibzeiger
|
||||
+ -20 // Zeiger 1.Daten
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
/I // Ermittlung der wievielten Daten -1
|
||||
SRD 16 // Rest ermitteln
|
||||
L 0 // = 0 ?
|
||||
<>I // Schreibzeiger nicht im Raster !
|
||||
JC W600 // Suche bei 1.Datensatz beginnen
|
||||
|
||||
L 0 // Bei angegebener Stelle suchen
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
|
||||
JU W601
|
||||
|
||||
W600: L 1 // Suche bei 1.Datensatz beginnen
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
SET
|
||||
R IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
L SSDW
|
||||
+ 20 // Offset für 1.Daten
|
||||
T Schreibzeiger // Schreibzeiger
|
||||
|
||||
W601: L Schreibzeiger // Schreibzeiger
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L InDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L600: T Schleife
|
||||
|
||||
L DBInDaten // Indaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W602
|
||||
|
||||
OPN DB[DBInDaten]
|
||||
|
||||
W602: L NoneW [AR2,] // Indaten überprüfen mit
|
||||
OPN DB[DBDatenliste]
|
||||
L DBW [AR1Zeiger] // Datenliste-Daten lesen
|
||||
<>I // nicht identisch !
|
||||
JC W603
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L DINT#2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L600
|
||||
|
||||
L 2#0000_0000_1100_0000 // Daten werden gespeichert + überschrieben
|
||||
T tRE_VAL // Ok-Status
|
||||
|
||||
JU Nw07 // Datensatz ist in Liste enthalten
|
||||
|
||||
W603: L 0 // Suche bei 1.Datensatz begonnen
|
||||
L Suchstelle // Such bei X-ten Datensatz
|
||||
==I // Nein !
|
||||
JC W600
|
||||
|
||||
L LeerZeiger // Zeiger Leerzelle
|
||||
L 0 // Gespeichert ?
|
||||
<>I // Ja !
|
||||
JC W604
|
||||
|
||||
L Schreibzeiger // Schreibzeiger
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Datensatzlaenge
|
||||
L601: T Schleife
|
||||
L DBW [AR1Zeiger] // Daten lesen
|
||||
L 0 // Leerzelle ?
|
||||
<>I // Nein !
|
||||
JC W604
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L DINT#2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP L601
|
||||
|
||||
L Schreibzeiger // Schreibzeiger
|
||||
T LeerZeiger // Zeiger Leerzelle
|
||||
|
||||
W604: L Suchstelle // Such bei X-ten Datensatz
|
||||
+ 1
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
L Listenlaenge // Anzahl aller Daten in Datenliste
|
||||
<=I // Alle Datensätze sind durchsucht
|
||||
JC W605 // Nein !
|
||||
|
||||
L 0 // Gefunden ?
|
||||
L LeerZeiger // Zeiger Leerzelle
|
||||
==I // Nein !
|
||||
JC Err2 // Datenliste ist voll
|
||||
|
||||
T Schreibzeiger // Schreibzeiger
|
||||
L 2#0000_0000_1000_0000 // Daten werden gespeichert
|
||||
T tRE_VAL // Ok-Status
|
||||
|
||||
JU Nw07
|
||||
|
||||
W605: L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
L Schreibzeiger // Schreibzeiger
|
||||
+I
|
||||
T Schreibzeiger // Schreibzeiger
|
||||
JU W601
|
||||
|
||||
|
||||
--- NW 7: Quelle-Pointer erzeugen: ---
|
||||
Nw07: L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
L Datensatzlaenge // Datenwords speichern
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
// DATEN-Pointer übernehmen:
|
||||
L DBInDaten
|
||||
T LW4 // DB_Nummer
|
||||
L InDaten_Pointer
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
// Kennung + Datenbytes s.o.
|
||||
|
||||
L SSDB
|
||||
T LW14 // DB_Nummer
|
||||
L Schreibzeiger // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // Datenliste-Daten speichern
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
A Sortliste // Sortliste wird durchsucht
|
||||
JC Nw8
|
||||
|
||||
L SSDW
|
||||
+ 12
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Schreibzeiger // Schreibzeiger
|
||||
OPN DB[DBDatenliste]
|
||||
T DBW [AR1Zeiger] // Speicherung letzter Zugriff
|
||||
|
||||
L tRE_VAL // Ok-Status
|
||||
L 2#0000_0000_1100_0000 // Daten werden gespeichert + überschrieben ?
|
||||
==I // Ja !
|
||||
O Indok // Indizierung möglich ((Dann nicht!)
|
||||
JC Nw8 // Kein Neueintrag !
|
||||
|
||||
L SSDW
|
||||
+ 16 // Offset Anzahl Einträge
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
L DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
+ 1 // Einträge +1
|
||||
T DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
|
||||
|
||||
--- NW 8: Indizierung ok ? ---
|
||||
Nw8: AN Indok // Indizierung möglich
|
||||
O IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
JC Ende
|
||||
|
||||
OPN DB[IndDB] // Indizierter DB
|
||||
|
||||
L Schreibzeiger // Schreibzeiger
|
||||
T DBW [IndPointer]
|
||||
|
||||
OPN DB[DBDatenliste] // Datenliste DB
|
||||
|
||||
|
||||
--- NW 9: Fehlerausgabe / RET_VAL ---
|
||||
Ende: SET // VKE = 1 ohne Fehler !!!
|
||||
L tRE_VAL // Ok-Status
|
||||
JU Ok
|
||||
Err0: L 2#0000_0000_0000_0001 // Kein Datenlistebereich
|
||||
JU Err
|
||||
Err1: L 2#0000_0000_0000_0010 // SFC20-Aufruf mit Fehler
|
||||
JU Err
|
||||
Err2: L 2#0000_0000_0000_0100 // Datenliste ist voll
|
||||
JU Err
|
||||
Err4: L 2#0000_0000_0001_0000 // Undefinierte Indaten
|
||||
|
||||
Err: CLR // VKE = 0 bei Fehler !!!
|
||||
|
||||
Ok: T tRE_VAL
|
||||
SAVE // VKE in BIE-Bit speichern
|
||||
|
||||
L AR2_Speicher // AR2 zurückspeichern
|
||||
LAR2
|
||||
|
||||
|
||||
--- NW 10: Ausgangsvariablen schreiben ---
|
||||
L tRE_VAL
|
||||
T RE_VAL
|
||||
|
||||
|
||||
@@ -0,0 +1,488 @@
|
||||
=== FC 88: DatenInSort [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
SSDB : Int // Datenlisten-DB
|
||||
SSDW : Int // Datenlisten-1.DW
|
||||
INDATEN : Pointer // InDaten-Schnittstelle
|
||||
Output:
|
||||
RE_VAL : Byte // Rückmeldung
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Kopf : Byte // Datenliste-Kennnung (DA)
|
||||
Datensatzlaenge : Byte // Datensatzlänge in Word (01 - F0) F0=128
|
||||
Listenlaenge : Int // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
Stammdaten : Int // Stammdatenlänge in Word (1 - 9)
|
||||
Belegt06 : Int // reserviert von Datenliste
|
||||
Belegt08 : Int // reserviert von Datenliste
|
||||
Belegt10 : Int // reserviert von Datenliste
|
||||
Belegt12 : Int // reserviert von Datenliste
|
||||
AnzahlEintraege : Int // Anzahl der eingetragenen Datensätze
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
DBDatenliste : Word // Datenlisten-DB
|
||||
SFC_RET_VAL : Int // Rückmeldung SFC-Aufruf
|
||||
SFC_DB_LENGTH : Word // Rückmeldung SFC-Aufruf
|
||||
Datenlisten_Ende : Word // Ende der Datenliste
|
||||
AR2_Speicher : DWord // Adress-Register 2 zwischenspeichern
|
||||
Schleife : Word // Loopzähler
|
||||
DBInDaten : Word // Indaten-DB, falls angegeben
|
||||
InDaten_Pointer : DWord // In-Daten-Pointer: Kennung, Adresse
|
||||
InDaten_Startpunkt : Word // In-Daten-Startpunkt: Adresse
|
||||
Sort_Daten : DInt // Einzusortierende Daten (DWord)
|
||||
Datenblock_inBytes : Word // Datenblocklänge in Bytes
|
||||
SFC_WRITE_PROT : Bool // Rückmeldung SFC-Aufruf
|
||||
Lesestelle : Int // An dieser Stelle Datensatz lesen
|
||||
Min_Lesestelle : Int // Minimal sinnvolle Lesestelle
|
||||
Max_Lesestelle : Int // Maximal sinnvolle Lesestelle
|
||||
Savestelle : Int // An dieser Stelle wird In-Datensatz gespeichert
|
||||
Lese_Daten : DInt // In Tabelle gelesenen Daten
|
||||
Holstelle : Int // Freiraum schaffen: Stelle zum Daten holen
|
||||
Bringstelle : Int // Freiraum schaffen: Stelle zum Daten schreiben
|
||||
Holzeiger : DWord // Freiraum schaffen: Zeiger zum Daten holen
|
||||
Bringzeiger : DWord // Freiraum schaffen: Zeiger zum Daten schreiben
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Schnittstellen-DB sinnvoll ? ---
|
||||
TAR2
|
||||
T AR2_Speicher // AR2 zwischenspeichern
|
||||
|
||||
L SSDB
|
||||
T DBDatenliste
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBDatenliste
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBDatenliste, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 2: Quelle-Pointer erzeugen: ---
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0 // Any-Kennung, Datentyp
|
||||
L 16#000A // 10 Dw´s holen
|
||||
T LW2 // Wiederholungen
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L SSDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=P#L20.0 WORD 10) // 1.-10.DW Datenliste holen
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
|
||||
--- NW 3: Zeigerüberprüfung ---
|
||||
L Kopf // Datenliste-Kopf
|
||||
L 16#DB // = Datenlistekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 128
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
+ 20 // Speichern ab 10.DW
|
||||
L SSDW
|
||||
+I
|
||||
T Datenlisten_Ende
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datenlisten_Ende
|
||||
L SFC_DB_LENGTH
|
||||
>I // Datenlisten-DB ist zu kurz!
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L DBW [AR1Zeiger]
|
||||
L 16#DBEE // Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2
|
||||
*I
|
||||
T Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>=I // Nein !
|
||||
JC Err2 // Datenliste ist voll
|
||||
|
||||
|
||||
--- NW 4: Indaten definiert ? ---
|
||||
|
||||
// In-DATEN-Pointer übernehmen:
|
||||
L P#
|
||||
LAR2
|
||||
|
||||
L NoneW [AR2,]
|
||||
T DBInDaten // Indaten-DB
|
||||
|
||||
L DBInDaten // Indaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W401
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBInDaten
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBInDaten, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
JC Err4 // Undefinierte Indaten
|
||||
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
L 16#00FF_FFFF // Ohne Kennung
|
||||
AW
|
||||
SRW 3 // Ohne Bit
|
||||
T InDaten_Startpunkt
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
L InDaten_Startpunkt
|
||||
+I
|
||||
L SFC_DB_LENGTH
|
||||
>I // Indaten-DB ist zu kurz
|
||||
JC Err4 // Undefinierte Indaten
|
||||
|
||||
W401: L NoneD [AR2,] // Kennung, Adresse
|
||||
T InDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L DBInDaten // Indaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W402
|
||||
|
||||
OPN DB[DBInDaten]
|
||||
|
||||
W402: L NoneD [AR2,] // Indaten überprüfen
|
||||
T Sort_Daten // 1.Indaten speichern
|
||||
|
||||
L Stammdaten
|
||||
L400: T Schleife
|
||||
|
||||
L DBInDaten // Indaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W403
|
||||
|
||||
OPN DB[DBInDaten]
|
||||
|
||||
W403: L NoneW [AR2,] // Indaten überprüfen
|
||||
L 0 // Etwas angegeben ?
|
||||
<>I // Ja !
|
||||
JC Nw05 // Weiter
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L400
|
||||
|
||||
JU Err4 // Undefinierte Indaten
|
||||
|
||||
Nw05: NOP 0
|
||||
|
||||
|
||||
--- NW 5: Minimale + maximale Lesestelle am Anfang ---
|
||||
L 1
|
||||
T Min_Lesestelle // Minimal sinnvolle Lesestelle
|
||||
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
T Max_Lesestelle // Maximal sinnvolle Lesestelle
|
||||
|
||||
// Sonderfall: noch kein Eintrag:
|
||||
L 0 // Eintrag schon vorhanden ?
|
||||
>I // Ja !
|
||||
JC en05
|
||||
|
||||
L 1 // An 1.Stelle speichern
|
||||
T Savestelle // Adresse
|
||||
|
||||
JU Save
|
||||
|
||||
en05: NOP 0
|
||||
|
||||
|
||||
--- NW 6: Aktuelle Lesestelle errechnen ---
|
||||
New: L Max_Lesestelle // Maximal sinnvolle Lesestelle
|
||||
+ 1
|
||||
L Min_Lesestelle // Minimal sinnvolle Lesestelle
|
||||
-I
|
||||
L 2
|
||||
/I
|
||||
L Min_Lesestelle // Minimal sinnvolle Lesestelle
|
||||
+I
|
||||
T Lesestelle // An dieser Stelle Datensatz lesen
|
||||
|
||||
|
||||
--- NW 7: Daten an Lesestelle auslesen ---
|
||||
L Lesestelle // An dieser Stelle Datensatz lesen
|
||||
+ -1
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
*I
|
||||
L SSDW
|
||||
+I
|
||||
+ 20 // Offset für 1.Daten
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
L DBD [AR1Zeiger] // Datenliste-Daten lesen
|
||||
T Lese_Daten // In Tabelle gelesenen Daten
|
||||
L 0 // Nichts gespeicher oder negativ ?
|
||||
<=D // Ja !
|
||||
JC Err5
|
||||
|
||||
|
||||
--- NW 8: Suche fertig ? ---
|
||||
L Max_Lesestelle // Maximal sinnvolle Lesestelle
|
||||
L Min_Lesestelle // Minimal sinnvolle Lesestelle
|
||||
-I
|
||||
L 0 // Suche fertig ?
|
||||
<I // Ja !
|
||||
JC ok
|
||||
|
||||
|
||||
--- NW 9: Gelesene Daten auswerten ---
|
||||
L Sort_Daten // Einzusortierende Daten
|
||||
L Lese_Daten // In Tabelle gelesenen Daten
|
||||
>D // Sort > Tabelle
|
||||
JC MinP
|
||||
|
||||
L Sort_Daten // Einzusortierende Daten
|
||||
>D // Tabelle > Sort
|
||||
JC MaxM
|
||||
|
||||
L Lesestelle // An dieser Stelle Datensatz lesen
|
||||
T Savestelle // An dieser Stelle wird In-Datensatz gespeichert
|
||||
|
||||
JC Frei // Freiplatz schaffen
|
||||
|
||||
MinP: L Lesestelle // An dieser Stelle Datensatz lesen
|
||||
+ 1
|
||||
T Min_Lesestelle // Minimal sinnvolle Lesestelle
|
||||
|
||||
L Max_Lesestelle // Maximal sinnvolle Lesestelle
|
||||
>I // Suche ist fertig
|
||||
JC ok
|
||||
|
||||
JU New
|
||||
|
||||
MaxM: L Lesestelle // An dieser Stelle Datensatz lesen
|
||||
+ -1
|
||||
T Max_Lesestelle // Maximal sinnvolle Lesestelle
|
||||
|
||||
L Min_Lesestelle // Minimal sinnvolle Lesestelle
|
||||
<I // Suche ist fertig
|
||||
JC ok
|
||||
|
||||
JU New
|
||||
|
||||
|
||||
--- NW 10: Speicherstelle ermitteln ---
|
||||
ok: L Sort_Daten // Einzusortierende Daten
|
||||
L Lese_Daten // In Tabelle gelesenen Daten
|
||||
>D // Sort > Tabelle
|
||||
JC Plus
|
||||
|
||||
L Lesestelle // An dieser Stelle Datensatz lesen
|
||||
T Savestelle // An dieser Stelle wird In-Datensatz gespeichert
|
||||
|
||||
JU Frei // Freiplatz schaffen
|
||||
|
||||
Plus: L Lesestelle // An dieser Stelle Datensatz lesen
|
||||
+ 1
|
||||
T Savestelle // An dieser Stelle wird In-Datensatz gespeichert
|
||||
|
||||
|
||||
--- NW 11: Freiraum für Speicherung schaffen ---
|
||||
Frei: L Savestelle // An dieser Stelle wird In-Datensatz gespeichert
|
||||
T "MW240"
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
>I // Eintrag ans Ende !
|
||||
JC Save
|
||||
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
*I
|
||||
L SSDW
|
||||
+I
|
||||
+ 20 // Offset für 1.Daten
|
||||
+ -2 // Letzte Daten letzter Eintrag
|
||||
T Holstelle // Freiraum schaffen: Stelle zum Daten holen
|
||||
|
||||
L Holstelle // Freiraum schaffen: Stelle zum Daten holen
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
+I
|
||||
T Bringstelle // Freiraum schaffen: Zeiger zum Daten schreiben
|
||||
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
L Savestelle // An dieser Stelle wird In-Datensatz gespeichert
|
||||
-I
|
||||
+ 1
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
*I
|
||||
L 2 // da DW-Zugriff (2Byte)
|
||||
/I
|
||||
L110: T Schleife
|
||||
|
||||
L Holstelle // Freiraum schaffen: Stelle zum Daten holen
|
||||
ITD
|
||||
SLD 3
|
||||
T Holzeiger // Freiraum schaffen: Zeiger zum Daten holen
|
||||
L Bringstelle // Freiraum schaffen: Zeiger zum Daten schreiben
|
||||
ITD
|
||||
SLD 3
|
||||
T Bringzeiger // Freiraum schaffen: Zeiger zum Daten schreiben
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L DBW [Holzeiger] // Datenliste-Daten lesen
|
||||
T DBW [Bringzeiger] // Datenliste-Daten verschieben
|
||||
|
||||
L Holstelle
|
||||
+ -2 // 2 Byte wegen DW-Zugriff
|
||||
T Holstelle // Freiraum schaffen: Stelle zum Daten holen
|
||||
|
||||
L Bringstelle
|
||||
+ -2 // 2 Byte wegen DW-Zugriff
|
||||
T Bringstelle // Freiraum schaffen: Zeiger zum Daten schreiben
|
||||
|
||||
L Schleife
|
||||
LOOP L110
|
||||
|
||||
|
||||
--- NW 12: Daten in Datenliste schreiben ---
|
||||
// Quelle-Pointer erzeugen:
|
||||
|
||||
Save: L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
L Datensatzlaenge // Datenwords speichern
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
// DATEN-Pointer übernehmen:
|
||||
L DBInDaten
|
||||
T LW4 // DB_Nummer
|
||||
L InDaten_Pointer
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
// Kennung + Datenbytes s.o.
|
||||
|
||||
L SSDB
|
||||
T LW14 // DB_Nummer
|
||||
L Savestelle // Adresse
|
||||
+ -1
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
*I
|
||||
L SSDW
|
||||
+I
|
||||
+ 20 // Offset für 1.Daten
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // Datenliste-Daten speichern
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
L SSDW
|
||||
+ 14 // Anzahl der Einträge
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
L DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
+ 1 // Einträge +1
|
||||
T DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
|
||||
|
||||
--- NW 13: Fehlerausgabe / RET_VAL ---
|
||||
SET // VKE = 1 ohne Fehler !!!
|
||||
L 2#0000_0000_1000_0000 // Daten wurden gespeichert
|
||||
JU Ok_Mig
|
||||
Err0: L 2#0000_0000_0000_0001 // Kein Datenlistebereich
|
||||
JU Err
|
||||
Err1: L 2#0000_0000_0000_0010 // SFC20-Aufruf mit Fehler
|
||||
JU Err
|
||||
Err2: L 2#0000_0000_0000_0100 // Datenliste ist voll
|
||||
JU Err
|
||||
Err4: L 2#0000_0000_0001_0000 // Undefinierte Indaten
|
||||
JU Err
|
||||
Err5: L 2#0000_0000_0010_0000 // Gespeicherte Daten <= 0 (Inhalt ungültig)
|
||||
|
||||
Err: CLR // VKE = 0 bei Fehler !!!
|
||||
|
||||
Ok_Mig: T RE_VAL
|
||||
SAVE // VKE in BIE-Bit speichern
|
||||
|
||||
L AR2_Speicher // AR2 zurückspeichern
|
||||
LAR2
|
||||
|
||||
@@ -0,0 +1,894 @@
|
||||
=== FC 86: DatenOut [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
SSDB : Int // Datenlisten-DB
|
||||
SSDW : Int // Datenlisten-1.DW
|
||||
PARA : Word // Aufrufparameter (Auftrag / Anzahl Zusatzdaten)
|
||||
SEARCHDATEN : Pointer // Such-Daten-Schnittstelle
|
||||
Output:
|
||||
RE_VAL : Byte // Rückmeldung
|
||||
OUTDATEN : Pointer // OutDaten-Schnittstelle
|
||||
Position : Int // Daten stehen an angegebener Position in Datenbank
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Kopf : Byte // Datenliste-Kennnung (DA)
|
||||
Datensatzlaenge : Byte // Datensatzlänge in Word (01 - F0) F0=128
|
||||
Listenlaenge : Int // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
Stammdaten : Int // Stammdatenlänge in Word (1 - 9)
|
||||
IndDB : Word // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
IndDB_Laenge : Int // Länge des indizierten DB in Einträge (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
IndDaten_FC : Int // FC zum Wandeln der indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
Suchzeiger : Int // Speicherung des letzten Zugriffs / Suchzeiger
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
AnzahlEintraege : Int // Anzahl der eingetragenen Datensätze (nicht bei ind.Zugriff!)
|
||||
Reserve18 : Int // Reserve
|
||||
Para1 : Byte // 1.Aufrufparameter
|
||||
Para2 : Byte // 2.Aufrufparameter
|
||||
DBDatenliste : Word // Datenlisten-DB
|
||||
OffsetDaten_1 : Int // Stammdaten beginnen ab hier
|
||||
SFC_RET_VAL : Int // Rückmeldung SFC-Aufruf
|
||||
SFC_DB_LENGTH : Word // Rückmeldung SFC-Aufruf
|
||||
Datenlisten_Ende : Int // Ende der Datenliste
|
||||
AR2_Speicher : DWord // Adress-Register 2 zwischenspeichern
|
||||
Schleife : Word // Loopzähler
|
||||
DBSuchDaten : Word // Such-Daten-DB, falls angegeben
|
||||
SuchDaten_Pointer : DWord // Such-Daten-Pointer: Kennung, Adresse
|
||||
SuchDaten_Startpunkt : Word // Such-Daten-Startpunkt: Adresse
|
||||
DBOutDaten : Word // Out-Daten-DB, falls angegeben
|
||||
OutDaten_Pointer : DWord // Out-Daten-Pointer: Kennung, Adresse
|
||||
OutDaten_Startpunkt : Word // Out-Daten-Startpunkt: Adresse
|
||||
IndPointer : DWord // Zeiger für IndDB
|
||||
Daten_1 : Word // 1.Datenwort der Indaten
|
||||
Daten_2 : DWord // 1+2.Datenwort der Indaten (falls ind.Suchen mit Stammdaten 2)
|
||||
Datenblock_inBytes : Word // Datenblocklänge in Bytes
|
||||
Suchstelle : Word // Bei angegebenen Datensatz suchen
|
||||
SFC_WRITE_PROT : Bool // Rückmeldung SFC-Aufruf
|
||||
Indok : Bool // Indizierung möglich
|
||||
IndZeiger_ok : Bool // Indizier-Zeiger angegeben
|
||||
Weitersuchen : Bool // Weitersuchen ist aktiv
|
||||
Offsetsuchen : Bool // Offsetsuchen ist aktiv
|
||||
Sortliste : Bool // Sortliste wird durchsucht
|
||||
WandelFC : Bool // Wnadel-FC für ind.Suchen vorhanden
|
||||
tRE_VAL : Byte // Rückmeldung
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
DB_Länge : Int
|
||||
NichtCopy : Int // Datenmenge, die nicht vorschoben wird
|
||||
LoeschPos : Word // Lösch-Position
|
||||
Wandel_FC : Word // Wandel-FC
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Schnittstellen-DB sinnvoll ? ---
|
||||
TAR2
|
||||
T AR2_Speicher // AR2 zwischenspeichern
|
||||
|
||||
L SSDB
|
||||
T DBDatenliste
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBDatenliste, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT // schreibgeschützt
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 2: Quelle-Pointer erzeugen: ---
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0 // Any-Kennung, Datentyp
|
||||
L 16#000A // 10 Dw´s holen
|
||||
T LW2 // Wiederholungen
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L SSDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=P#L20.0 WORD 10) // 1.-10.DW Datenliste holen
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
|
||||
--- NW 3: Zeigerüberprüfung ---
|
||||
L Kopf // Datenliste-Kopf
|
||||
L 16#DB // = Sort-Datenlistekennung ?
|
||||
==I // Ja !
|
||||
= Sortliste // Sortliste wird durchsucht
|
||||
JC w030
|
||||
|
||||
CAC
|
||||
L 16#DA // = Datenlistekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
w030: L 1
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 128
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
+ 20 // Speichern ab 10.DW
|
||||
L SSDW
|
||||
+I
|
||||
T Datenlisten_Ende
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datenlisten_Ende
|
||||
L "DB_Länge"
|
||||
>I // Datenlisten-DB ist zu kurz!
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L DBW [AR1Zeiger]
|
||||
L 16#DAEE // Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
A(
|
||||
CAC
|
||||
L 16#DBEE // Sort-Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
)
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2
|
||||
*I
|
||||
T Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
|
||||
|
||||
--- NW 4: Auftrag kontrollieren ---
|
||||
SET
|
||||
R Indok // Indizierung möglich
|
||||
R IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
R Weitersuchen // Weitersuchen ist aktiv
|
||||
R Offsetsuchen // Offsetsuchen ist aktiv
|
||||
L 0 // Vorerst kein Offset
|
||||
T OffsetDaten_1
|
||||
|
||||
L PARA
|
||||
T LW40 // Aufrufparameter zwischenspeichern
|
||||
|
||||
L 16#00 // XX = 00 ?
|
||||
L Para1
|
||||
==I // Ja!
|
||||
JC W401
|
||||
|
||||
L 16#E1 // XX = E1 ?
|
||||
==I // Ja!
|
||||
A Sortliste // Sortliste wird durchsucht
|
||||
JC Err3 // Falscher Aufrufparameter (austragen nicht erlaubt !)
|
||||
|
||||
CAC
|
||||
L 16#E1 // XX = E1 ?
|
||||
==I // Ja!
|
||||
JC W401
|
||||
|
||||
L 16#F1 // XX = F1 ?
|
||||
L Para1
|
||||
<>I // Nein !
|
||||
JC W400
|
||||
|
||||
L Para2
|
||||
L 16#00
|
||||
<>I
|
||||
O Sortliste // Sortliste wird durchsucht
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
SET
|
||||
S Weitersuchen
|
||||
|
||||
L SSDW
|
||||
+ 20
|
||||
T Suchzeiger
|
||||
|
||||
JU Nw08 // OutDaten ok ?
|
||||
|
||||
W400: L 16#FF // XX = FF ?
|
||||
<>I // Nein !
|
||||
JC W403
|
||||
|
||||
L Para2
|
||||
L 16#00
|
||||
<>I
|
||||
O Sortliste // Sortliste wird durchsucht
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
SET
|
||||
S Weitersuchen
|
||||
|
||||
L Suchzeiger // Alter Suchzeiger
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
+I // Nächsten Datensatz suchen
|
||||
T Suchzeiger // Neuer Suchzeiger
|
||||
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
L Listenlaenge // Alle möglichen Einträge
|
||||
*I // Gesamtlänge
|
||||
L SSDW // Startpunkt
|
||||
+I
|
||||
+ 20 // Offset 1.Daten
|
||||
L Suchzeiger // Schreibzeiger
|
||||
>I // Noch nicht am Ende !
|
||||
JC Nw08 // OutDaten ok ?
|
||||
|
||||
JU Err2 // Listenende erreicht
|
||||
|
||||
W403: L 16#02 // XX < 02 ?
|
||||
L Para1
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 16#80 // XX > 80 ?
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
CAC
|
||||
L Datensatzlaenge // XX > Datensatzlänge
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
CAC
|
||||
+ -1 // Angegebener Offset -1
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
T OffsetDaten_1 // Richtiger Offset der 1.Stammdaten
|
||||
|
||||
L 0
|
||||
T Suchzeiger // Suche ab Anfang
|
||||
|
||||
SET
|
||||
S Offsetsuchen
|
||||
|
||||
W401: L 16#00 // =0 ?
|
||||
L Para2 // 2.Aufrufparameter
|
||||
==I // Ja !
|
||||
JC W402
|
||||
|
||||
T Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
W402: AN Offsetsuchen
|
||||
JC Nw05
|
||||
|
||||
L Para1 // Offset
|
||||
+ -1
|
||||
L Stammdaten
|
||||
+I // Letzte Stammdaten zu groß ?
|
||||
L Datensatzlaenge
|
||||
>I // Ja!
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
|
||||
--- NW 5: Such-DATEN-Pointer übernehmen: ---
|
||||
Nw05: L 0
|
||||
T Suchzeiger // Suchzeiger
|
||||
|
||||
L P#
|
||||
LAR2
|
||||
|
||||
L NoneW [AR2,]
|
||||
T DBSuchDaten // Suchdaten-DB
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
T SuchDaten_Pointer
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W501
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBSuchDaten, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
JC Err4 // Undefinierte Stammdaten
|
||||
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
L 16#00FF_FFFF // Ohne Kennung
|
||||
AW
|
||||
SRW 3 // Ohne Bit
|
||||
T SuchDaten_Startpunkt
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
L SuchDaten_Startpunkt
|
||||
+I
|
||||
L "DB_Länge"
|
||||
>I // Suchdaten-DB ist zu kurz
|
||||
JC Err4 // Undefinierte Stammdaten
|
||||
|
||||
W501: L SuchDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W502
|
||||
|
||||
OPN DB[DBSuchDaten]
|
||||
|
||||
W502: L NoneW [AR2,] // Suchdaten überprüfen
|
||||
T Daten_1 // 1.Suchdaten speichern
|
||||
L NoneD [AR2,] // Suchdaten überprüfen
|
||||
T Daten_2 // 1.Suchdaten speichern
|
||||
|
||||
L Stammdaten
|
||||
L500: T Schleife
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W503
|
||||
|
||||
OPN DB[DBSuchDaten]
|
||||
|
||||
W503: L NoneW [AR2,] // Suchdaten überprüfen
|
||||
L 0 // Etwas angegeben ?
|
||||
<>I // Ja !
|
||||
JC Nw06 // Weiter
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L500
|
||||
|
||||
JU Err4 // Undefinierte Stammdaten
|
||||
|
||||
|
||||
--- NW 6: Indiziert suchen ? ---
|
||||
Nw06: L IndDB // Indizierter DB
|
||||
L 0 // =0 ?
|
||||
==I // Kein indizierter DB !
|
||||
O Offsetsuchen
|
||||
O Sortliste // Sortliste wird durchsucht
|
||||
JC Nw07
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=IndDB, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT
|
||||
JC Nw07 // kein Indizier-DB vorhanden
|
||||
|
||||
L IndDB_Laenge // Länge des Indizierten DB überschritten ?
|
||||
L DINT#2 // DB byteorientiert
|
||||
*D
|
||||
L "DB_Länge"
|
||||
>I // Indizier-DB ist zu kurz
|
||||
JC Nw07 // Zeiger ausserhalb Ind.DB
|
||||
|
||||
L Stammdaten // Stammdaten
|
||||
L 3 // zu viele Stammdaten ?
|
||||
>=I // Ja !
|
||||
JC Nw07 // ohne Indizierung weiter
|
||||
|
||||
L IndDaten_FC // Offset zum Abziehen
|
||||
T Wandel_FC
|
||||
L 0 // Parameter vorhanden ?
|
||||
<=I // Nein
|
||||
JC NoFC // Bei diesem Schritt weiter
|
||||
|
||||
L Daten_1 // Stammdaten (1.DW)
|
||||
T "MW90" // übergeben
|
||||
L Daten_2 // Stammdaten (2.DW)
|
||||
T "MD94" // übergeben
|
||||
|
||||
UC DB[Wandel_FC] // Beeinflussung der Weiterfahrt
|
||||
|
||||
L "MW92" // Rückwert von FC
|
||||
|
||||
JU Ret
|
||||
|
||||
NoFC: L Daten_1 // Stammdaten
|
||||
Ret: T IndPointer // Stelle, wo Zeiger hinterlegt ist
|
||||
L 0
|
||||
<I // negativ
|
||||
JC Nw07 // Zeiger = 0
|
||||
|
||||
L IndDB_Laenge // Länge des Indizierten DB überschritten ?
|
||||
L IndPointer // Stelle, wo Zeiger hinterlegt ist
|
||||
<=I // Ja !
|
||||
JC Nw07 // Zeiger ausserhalb Ind.DB
|
||||
|
||||
L 2
|
||||
*I // DB byteorientiert
|
||||
ITD
|
||||
SLD 3 // Pointer erzeugen
|
||||
T IndPointer // Pointer, wo Zeiger hinterlegt ist
|
||||
|
||||
OPN DB[IndDB] // Indizierter DB
|
||||
L DBW [IndPointer]
|
||||
T Suchzeiger // Suchzeiger
|
||||
|
||||
OPN DB[DBDatenliste] // Datenliste DB
|
||||
|
||||
SET
|
||||
S Indok // Indizierung möglich
|
||||
S IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
|
||||
|
||||
--- NW 7: Kontrolle auf gleiche Stammdaten ---
|
||||
Nw07: L Suchzeiger // Suchzeiger
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein !
|
||||
JC W700 // Suche bei 1.Datensatz beginnen
|
||||
|
||||
L Suchzeiger // Suchzeiger
|
||||
+ -20 // Zeiger 1.Daten
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
/I // Ermittlung der wievielten Daten -1
|
||||
SRD 16 // Rest ermitteln
|
||||
L 0 // = 0 ?
|
||||
<>I // Suchzeiger nicht im Raster !
|
||||
JC W700 // Suche bei 1.Datensatz beginnen
|
||||
|
||||
L 0 // Bei angegebener Stelle suchen
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
|
||||
JU W701
|
||||
|
||||
W700: L 1 // Suche bei 1.Datensatz beginnen
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
SET
|
||||
R IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
L SSDW
|
||||
+ 20 // Offset für 1.Daten
|
||||
T Suchzeiger // Suchzeiger
|
||||
|
||||
W701: L Suchzeiger // Suchzeiger
|
||||
L OffsetDaten_1 // Richtiger Offset der 1.Stammdaten
|
||||
+I
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L SuchDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L700: T Schleife
|
||||
|
||||
L DBSuchDaten // Suchdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W702
|
||||
|
||||
OPN DB[DBSuchDaten]
|
||||
|
||||
W702: L NoneW [AR2,] // Suchdaten überprüfen mit
|
||||
OPN DB[DBDatenliste]
|
||||
L DBW [AR1Zeiger] // Datenliste-Daten lesen
|
||||
<>I // nicht identisch !
|
||||
JC W703
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L DINT#2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L700
|
||||
|
||||
L 2#0000_0000_1000_0000 // Daten sind vorhanden
|
||||
T tRE_VAL // Ok-Status
|
||||
|
||||
JU Nw08 // Datensatz ist in Liste enthalten
|
||||
|
||||
W703: L 0 // Suche bei 1.Datensatz begonnen
|
||||
L Suchstelle // Such bei X-ten Datensatz
|
||||
==I // Nein !
|
||||
JC W700
|
||||
|
||||
L Suchstelle // Such bei X-ten Datensatz
|
||||
+ 1
|
||||
T Suchstelle // Such bei X-ten Datensatz
|
||||
L Listenlaenge // Anzahl aller Daten in Datenliste
|
||||
<=I // Alle Datensätze sind durchsucht
|
||||
JC W705 // Nein !
|
||||
|
||||
JU Err6 // Datensatz ist nicht vorhanden
|
||||
|
||||
W705: L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
L Suchzeiger // Suchzeiger
|
||||
+I
|
||||
T Suchzeiger // Suchzeiger
|
||||
JU W701
|
||||
|
||||
|
||||
--- NW 8: Out-DATEN-Pointer übernehmen: ---
|
||||
Nw08: L P#
|
||||
LAR2
|
||||
|
||||
L NoneW [AR2,]
|
||||
T DBOutDaten // Outdaten-DB
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
T OutDaten_Pointer
|
||||
|
||||
L DBOutDaten // Outdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC Nw09
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBOutDaten, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
JC Err5 // Undefinierte Outdaten
|
||||
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
L 16#00FF_FFFF // Ohne Kennung
|
||||
AW
|
||||
SRW 3 // Ohne Bit
|
||||
T OutDaten_Startpunkt
|
||||
|
||||
L OutDaten_Startpunkt
|
||||
L "DB_Länge"
|
||||
>I // Outdaten-DB ist zu kurz
|
||||
JC Err5 // Undefinierte Outdaten
|
||||
|
||||
|
||||
--- NW 9: Quelle-Pointer erzeugen: ---
|
||||
Nw09: L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
L Datensatzlaenge // Datenwords speichern
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
// DATEN-Pointer übernehmen:
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L Suchzeiger // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
// Kennung + Datenbytes s.o.
|
||||
|
||||
L DBOutDaten
|
||||
T LW14 // DB_Nummer
|
||||
L OutDaten_Pointer
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // Datenliste-Daten speichern
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
A SFC_WRITE_PROT // Datenliste kann nicht beschrieben werden
|
||||
JC Nw10
|
||||
|
||||
L SSDW
|
||||
+ 12 // Offset letzter Zugriff
|
||||
ITD
|
||||
SLD 3 // Pointer erzeugen
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Suchzeiger // Suchzeiger
|
||||
OPN DB[DBDatenliste]
|
||||
T DBW [AR1Zeiger] // Speicherung letzter Zugriff
|
||||
|
||||
L Suchstelle // Such bei X-ten Datensatz
|
||||
T Position // Übergabe nach außen
|
||||
|
||||
|
||||
--- NW 10: Daten aus Datenliste löschen ? (nicht indiziert!) ---
|
||||
Nw10: L 16#E1 // Daten löschen ?
|
||||
L Para1 // 1.Aufrufparameter
|
||||
<>I // Nein !
|
||||
O SFC_WRITE_PROT // Datenliste kann nicht beschrieben werden
|
||||
JC Nw11
|
||||
|
||||
A Indok // Indizierung möglich
|
||||
JC X010 // Bei ind.Zugriff nur löschen, nicht verschieben, keine Anzahl!
|
||||
|
||||
// Gemeinsame Daten für Pointer erzeugen:
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
|
||||
L Suchzeiger // Stelle, wo gelöscht werden soll
|
||||
+ -20
|
||||
L SSDW
|
||||
-I
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
/I
|
||||
+ 1 // Stelle, die gelöscht werden soll
|
||||
T LoeschPos // Lösch-Position
|
||||
L Listenlaenge // Länge der Datenliste (Letzter Eintrag zum Löschen ?)
|
||||
==I // Ja !
|
||||
JC Last // Ohne Verschieben letzten Eintrag löschen
|
||||
|
||||
L LoeschPos // Lösch-Position
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I // Gesamtdatenlänge in Words
|
||||
T NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I // Gesamtdatenlänge in Words
|
||||
L NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
-I // abziehen
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
L SSDB
|
||||
T LW4
|
||||
T LW14 // DB_Nummer
|
||||
|
||||
// Quelle-Pointer erzeugen:
|
||||
L Suchzeiger // Stelle, wo gelöscht werden soll
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
+I
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
L Suchzeiger // Stelle, wo gelöscht werden soll
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
// Daten verschieben:
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // DatenSortliste-Daten verschieben
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
// Letzte Daten löschen:
|
||||
Last: L Datenlisten_Ende // Ende des Datenbereichs
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
-I // Ab hier löschen !
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Datensatzlaenge // Datensatzlänge
|
||||
L080: T Schleife
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L 0 // Daten löschen
|
||||
T DBW [AR1Zeiger]
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L 2 // nächstes DW
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP L080
|
||||
|
||||
// Speicherung letzter Zugriff:
|
||||
L SSDW
|
||||
+ 12 // Offset letzter Zugriff
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
L 0 // löschen
|
||||
T DBW [AR1Zeiger] // Speicherung letzter Zugriff
|
||||
T Suchzeiger // Suchzeiger
|
||||
|
||||
SET
|
||||
R IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
|
||||
// Anzahl Einträge:
|
||||
L SSDW
|
||||
+ 16 // Offset Anzahl Einträge
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
L DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
+ -1 // -1
|
||||
T DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
|
||||
L 0
|
||||
>=I
|
||||
JC w080
|
||||
|
||||
T DBW [AR1Zeiger] // Minimum übergeben
|
||||
|
||||
w080: JU Nw11
|
||||
|
||||
|
||||
--- NW 11: Daten aus Datenliste löschen ? (indiziert) ---
|
||||
X010: L 16#E1 // Daten löschen ?
|
||||
L Para1 // 1.Aufrufparameter
|
||||
<>I // Nein !
|
||||
JC Nw11
|
||||
|
||||
L Suchzeiger // Suchzeiger
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datensatzlaenge
|
||||
LA00: T Schleife
|
||||
|
||||
L 0
|
||||
T DBW [AR1Zeiger]
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L DINT#2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP LA00
|
||||
|
||||
L SSDW
|
||||
+ 12
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L 0 // Löschen
|
||||
T Suchzeiger // Suchzeiger
|
||||
T DBW [AR1Zeiger]
|
||||
|
||||
SET
|
||||
R IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
|
||||
|
||||
--- NW 12: Weitersuchen aktiv ? Datensatz vorhanden oder 0 ? ---
|
||||
Nw11: AN Weitersuchen
|
||||
JC Nw12
|
||||
|
||||
L OutDaten_Pointer
|
||||
LAR2
|
||||
|
||||
L Datensatzlaenge
|
||||
L110: T Schleife
|
||||
|
||||
L DBOutDaten // Outdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC W111
|
||||
|
||||
OPN DB[DBOutDaten]
|
||||
|
||||
W111: L NoneW [AR2,] // Outdaten überprüfen
|
||||
L 0 // Etwas angegeben ?
|
||||
<>I // Ja !
|
||||
JC W112 // Ok
|
||||
|
||||
ADDAR2 P#2.0
|
||||
|
||||
L Schleife
|
||||
LOOP L110
|
||||
|
||||
L 2#0000_0000_0100_0000 // Daten sind nicht vorhanden
|
||||
T tRE_VAL // Ok-Status
|
||||
JU Ende
|
||||
|
||||
W112: L 2#0000_0000_1000_0000 // Daten sind vorhanden
|
||||
T tRE_VAL // Ok-Status
|
||||
JU Ende
|
||||
|
||||
|
||||
--- NW 13: Indizierung ok ? ---
|
||||
Nw12: AN Indok // Indizierung möglich
|
||||
O IndZeiger_ok // Indizier-Zeiger angegeben
|
||||
JC Ende
|
||||
|
||||
OPN DB[IndDB] // Indizierter DB
|
||||
|
||||
L Suchzeiger // Suchzeiger
|
||||
T DBW [IndPointer]
|
||||
|
||||
OPN DB[DBDatenliste] // Datenliste DB
|
||||
|
||||
|
||||
--- NW 14: Fehlerausgabe / RET_VAL ---
|
||||
Ende: SET // VKE = 1 ohne Fehler !!!
|
||||
L tRE_VAL // Ok-Status
|
||||
JU Ok
|
||||
Err0: L 2#0000_0000_0000_0001 // Kein Datenlistebereich
|
||||
JU Err
|
||||
Err1: L 2#0000_0000_0000_0010 // SFC20-Aufruf mit Fehler
|
||||
JU Err
|
||||
Err2: L 2#0000_0000_0000_0100 // Listenende ist erreicht
|
||||
JU Err
|
||||
Err3: L 2#0000_0000_0000_1000 // Falscher Parameter bei Aufruf
|
||||
JU Err
|
||||
Err4: L 2#0000_0000_0001_0000 // Undefinierte Suchdaten
|
||||
JU Err
|
||||
Err5: L 2#0000_0000_0010_0000 // Undefinierte OUTDaten
|
||||
JU Err
|
||||
Err6: L 2#0000_0000_0100_0000 // Datensatz nicht vorhanden
|
||||
|
||||
Err: CLR // VKE = 0 bei Fehler !!!
|
||||
|
||||
Ok: T tRE_VAL
|
||||
SAVE // VKE in BIE-Bit speichern
|
||||
|
||||
L AR2_Speicher // AR2 zurückspeichern
|
||||
LAR2
|
||||
|
||||
|
||||
--- NW 15: Ende ---
|
||||
L tRE_VAL
|
||||
T RE_VAL
|
||||
@@ -0,0 +1,532 @@
|
||||
=== FC 89: DatenOutSort [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
SSDB : Int // Datenlisten-DB
|
||||
SSDW : Int // Datenlisten-1.DW
|
||||
PARA : Word // Aufrufparameter (Auftrag , Offset/Anzahl Daten)
|
||||
Output:
|
||||
OUTDATEN : Pointer // OutDaten-Schnittstelle
|
||||
RE_VAL : Byte // Rückmeldung
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Kopf : Byte // Datenliste-Kennnung (DA)
|
||||
Datensatzlaenge : Byte // Datensatzlänge in Word (01 - F0) F0=128
|
||||
Listenlaenge : Int // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
Stammdaten : Int // Stammdatenlänge in Word (1 - 9)
|
||||
Belegt06 : Int // reserviert von Datenliste
|
||||
Belegt08 : Int // reserviert von Datenliste
|
||||
Belegt10 : Int // reserviert von Datenliste
|
||||
Belegt12 : Int // reserviert von Datenliste
|
||||
AnzahlEintraege : Int // Anzahl der eingetragenen Datensätze
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Para1 : Byte // 1.Aufrufparameter
|
||||
Para2 : Byte // 2.Aufrufparameter
|
||||
SFC_RET_VAL : Int // Rückmeldung SFC-Aufruf
|
||||
SFC_DB_LENGTH : Word // Rückmeldung SFC-Aufruf
|
||||
LeseStelle : Int // Stelle, wo gelesen werden soll
|
||||
EraseStelle : Int // Stelle, wo gelöscht werden soll
|
||||
FirstStelle : Int // Stelle, wo 1. zu bleibende Daten sind
|
||||
DBDatenliste : Word // Datenlisten-DB
|
||||
Datenlisten_Ende : Word // Ende der Datenliste
|
||||
AR2_Speicher : DWord // Adress-Register 2 zwischenspeichern
|
||||
DBOutDaten : Word // Out-Daten-DB, falls angegeben
|
||||
OutDaten_Pointer : DWord // Out-Daten-Pointer: Kennung, Adresse
|
||||
OutDaten_Startpunkt : Word // Out-Daten-Startpunkt: Adresse
|
||||
Datenblock_inBytes : Word // Datenblocklänge in Bytes
|
||||
Suchstelle : Word // Bei angegebenen Datensatz suchen
|
||||
SFC_WRITE_PROT : Bool // Rückmeldung SFC-Aufruf
|
||||
NichtCopy : Int // Datenmenge, die nicht vorschoben wird
|
||||
Schleife : Word // Loopzähler
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Schnittstellen-DB sinnvoll ? ---
|
||||
TAR2
|
||||
T AR2_Speicher // AR2 zwischenspeichern
|
||||
|
||||
L SSDB
|
||||
T DBDatenliste
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBDatenliste
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBDatenliste, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT // schreibgeschützt
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 2: Quelle-Pointer erzeugen: ---
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0 // Any-Kennung, Datentyp
|
||||
L 16#000A // 10 Dw´s holen
|
||||
T LW2 // Wiederholungen
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L SSDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=P#L20.0 WORD 10) // 1.-10.DW Datenliste holen
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
|
||||
--- NW 3: Zeigerüberprüfung ---
|
||||
L Kopf // Datenliste-Kopf
|
||||
L 16#DB // = Datenlistekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 128
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
+ 20 // Speichern ab 10.DW
|
||||
L SSDW
|
||||
+I
|
||||
T Datenlisten_Ende
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datenlisten_Ende
|
||||
L SFC_DB_LENGTH
|
||||
>I // Datenlisten-DB ist zu kurz!
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L DBW [AR1Zeiger]
|
||||
L 16#DBEE // Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
L 2
|
||||
*I
|
||||
T Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
|
||||
|
||||
--- NW 4: Auftrag kontrollieren ---
|
||||
L PARA
|
||||
T LW40 // Aufrufparameter zwischenspeichern
|
||||
|
||||
L Para2
|
||||
L 16#00
|
||||
<=I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
CAC
|
||||
L Listenlaenge // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
>I
|
||||
JC Err3 // Falscher Aufrufparameter
|
||||
|
||||
L 16#0A // XX = 0A ? (Datensatz YY lesen)
|
||||
L Para1
|
||||
<>I // Nein !
|
||||
JC W400
|
||||
|
||||
// Eintrag lesen:
|
||||
L Para2 // Datensatz YY
|
||||
+ -1 // 1.Datensatz ohne Offset
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
*I
|
||||
+ 20
|
||||
L SSDW
|
||||
+I
|
||||
T LeseStelle // Stelle, wo gelesen werden soll
|
||||
|
||||
JU Nw06 // OutDaten ok ?
|
||||
|
||||
W400: L 16#0E // XX = 0E ? (Datensatz YY löschen)
|
||||
<>I // Nein !
|
||||
JC W401
|
||||
|
||||
// Datensatz löschen:
|
||||
L AnzahlEintraege
|
||||
L 0
|
||||
==I
|
||||
JC Err2 // Liste ist leer
|
||||
|
||||
L Para2 // Datensatz YY
|
||||
L AnzahlEintraege // zu löschender Datensatz ist grösser als Einträge ?
|
||||
>I // Ja !
|
||||
JC Ende // Keine Aktion
|
||||
|
||||
L Para2 // Datensatz YY
|
||||
+ -1 // 1.Datensatz ohne Offset
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
*I
|
||||
+ 20
|
||||
L SSDW
|
||||
+I
|
||||
T EraseStelle // Stelle, wo gelöscht werden soll
|
||||
|
||||
JU Nw08 // Daten löschen
|
||||
|
||||
W401: L 16#0D // XX = 0D ? (Datensätze YY löschen, ab 1.DS)
|
||||
L Para1
|
||||
<>I // Nein !
|
||||
JC W402
|
||||
|
||||
// Datenblock löschen:
|
||||
L AnzahlEintraege
|
||||
L 0
|
||||
==I
|
||||
JC Err2 // Liste ist leer
|
||||
|
||||
L Para2 // Anzahl Datensätze YY
|
||||
L Datenblock_inBytes // Datenblocklänge in bytes
|
||||
*I
|
||||
+ 20
|
||||
L SSDW
|
||||
+I
|
||||
T FirstStelle // Stelle, wo 1. zu bleibende Daten sind
|
||||
|
||||
JU Nw09
|
||||
|
||||
BEU
|
||||
|
||||
W402: JU Err3 // Falscher Aufrufparameter
|
||||
|
||||
|
||||
--- NW 5: Outdaten ok ? ---
|
||||
|
||||
// Out-DATEN-Pointer übernehmen:
|
||||
Nw06: L P#
|
||||
LAR2
|
||||
|
||||
L NoneW [AR2,]
|
||||
T DBOutDaten // Outdaten-DB
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
T OutDaten_Pointer
|
||||
|
||||
L DBOutDaten // Outdaten-DB
|
||||
L 0 // Angegeben ?
|
||||
==I // Nein
|
||||
JC Nw07
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBOutDaten
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBOutDaten, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
JC Err5 // Undefinierte Outdaten
|
||||
|
||||
L NoneD [AR2,] // Kennung, Adresse
|
||||
L 16#00FF_FFFF // Ohne Kennung
|
||||
AW
|
||||
SRW 3 // Ohne Bit
|
||||
T OutDaten_Startpunkt
|
||||
|
||||
L OutDaten_Startpunkt
|
||||
L SFC_DB_LENGTH
|
||||
>I // Outdaten-DB ist zu kurz
|
||||
JC Err5 // Undefinierte Outdaten
|
||||
|
||||
|
||||
--- NW 6: Daten aus Datenliste lesen (in OUTDaten übergeben) ---
|
||||
// Quelle-Pointer erzeugen:
|
||||
Nw07: L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
L Datensatzlaenge // Datenwords speichern
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
// DATEN-Pointer übernehmen:
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L LeseStelle // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
// Kennung + Datenbytes s.o.
|
||||
|
||||
L DBOutDaten
|
||||
T LW14 // DB_Nummer
|
||||
L OutDaten_Pointer
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // DatenSortliste-Daten speichern
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
JU Ende
|
||||
|
||||
|
||||
--- NW 7: Daten aus Datenliste löschen ? ---
|
||||
// Gemeinsame Daten für Pointer erzeugen:
|
||||
Nw08: L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
|
||||
L Datensatzlaenge // Datensatzlänge
|
||||
L Para2 // Datensatz YY
|
||||
*I
|
||||
T NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I // Gesamtdatenlänge in Words
|
||||
L NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
-I // abziehen
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
L SSDB
|
||||
T LW4
|
||||
T LW14 // DB_Nummer
|
||||
|
||||
// Quelle-Pointer erzeugen:
|
||||
L EraseStelle // Stelle, wo gelöscht werden soll
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
+I
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
L EraseStelle // Stelle, wo gelöscht werden soll
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
// Daten verschieben:
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // DatenSortliste-Daten verschieben
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
// Letzte Daten löschen:
|
||||
L Datenlisten_Ende // Ende des Datenbereichs
|
||||
L Datenblock_inBytes // Datenblocklänge in Bytes
|
||||
-I // Ab hier löschen !
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Datensatzlaenge // Datensatzlänge
|
||||
L080: T Schleife
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L 0 // Daten löschen
|
||||
T DBW [AR1Zeiger]
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L 2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP L080
|
||||
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
+ -1
|
||||
T AnzahlEintraege
|
||||
|
||||
L 0
|
||||
>=I
|
||||
JC w080
|
||||
|
||||
T AnzahlEintraege // Minimum übergeben
|
||||
|
||||
w080: L SSDW
|
||||
+ 14 // Anzahl der Einträge
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
T DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
|
||||
JU Ende
|
||||
|
||||
|
||||
--- NW 8: Datensätze aus Datenliste löschen ? ---
|
||||
// Gemeinsame Daten für Pointer erzeugen:
|
||||
Nw09: L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0
|
||||
T LW10 // Any-Kennung, Datentyp
|
||||
|
||||
L Datensatzlaenge // Datensatzlänge
|
||||
L Para2 // Anzahl Datensätze YY
|
||||
*I
|
||||
T NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I // Gesamtdatenlänge in Words
|
||||
L NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
-I // abziehen
|
||||
T LW2
|
||||
T LW12 // Wiederholungen
|
||||
|
||||
L SSDB
|
||||
T LW4
|
||||
T LW14 // DB_Nummer
|
||||
|
||||
// Quelle-Pointer erzeugen:
|
||||
L FirstStelle // Stelle, wo 1. zu bleibende Daten sind
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
// Ziel-Pointer erzeugen:
|
||||
L SSDW
|
||||
+ 20 // 1.DS
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD16 // Kennung, Adresse
|
||||
|
||||
// Daten verschieben:
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=Ziel) // DatenSortliste-Daten verschieben
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
// Letzte Daten löschen:
|
||||
L Datenlisten_Ende // Ende des Datenbereichs
|
||||
L NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
-I
|
||||
L NichtCopy // 2 mal, da Angabe in Word (Angabe in Byte benötigt!)
|
||||
-I // Ab hier löschen !
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L NichtCopy // Datenmenge, die nicht vorschoben wird
|
||||
L090: T Schleife
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L 0 // Daten löschen
|
||||
T DBW [AR1Zeiger]
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L 2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP L090
|
||||
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
L Para2 // Anzahl Datensätze YY
|
||||
-I
|
||||
T AnzahlEintraege
|
||||
|
||||
L 0
|
||||
>=I
|
||||
JC w090
|
||||
|
||||
T AnzahlEintraege // Minimum übergeben
|
||||
|
||||
w090: L SSDW
|
||||
+ 14 // Anzahl der Einträge
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
L AnzahlEintraege // Anzahl der eingetragenen Datensätze
|
||||
T DBW [AR1Zeiger] // Anzahl der Einträge
|
||||
|
||||
JU Ende
|
||||
|
||||
|
||||
--- NW 9: Fehlerausgabe / RET_VAL ---
|
||||
Ende: SET // VKE = 1 ohne Fehler !!!
|
||||
L 2#0000_0000_0000_0000 // Ok-Status
|
||||
JU Ok
|
||||
Err0: L 2#0000_0000_0000_0001 // Kein Datenlistebereich
|
||||
JU Err
|
||||
Err1: L 2#0000_0000_0000_0010 // SFC20-Aufruf mit Fehler
|
||||
JU Err
|
||||
Err2: L 2#0000_0000_0000_0100 // Sortliste ist leer
|
||||
JU Err
|
||||
Err3: L 2#0000_0000_0000_1000 // Falscher Parameter bei Aufruf
|
||||
JU Err
|
||||
Err5: L 2#0000_0000_0010_0000 // Undefinierte OUTDaten
|
||||
|
||||
Err: CLR // VKE = 0 bei Fehler !!!
|
||||
|
||||
Ok: T RE_VAL
|
||||
SAVE // VKE in BIE-Bit speichern
|
||||
|
||||
L AR2_Speicher // AR2 zurückspeichern
|
||||
LAR2
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
=== FC 87: DatenReset [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
SSDB : Int // Datenlisten-DB
|
||||
SSDW : Int // Datenlisten-1.DW
|
||||
Output:
|
||||
RE_VAL : Byte // Rückmeldung
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Kopf : Byte // Datenliste-Kennnung (DA)
|
||||
Datensatzlaenge : Byte // Datensatzlänge in Word (01 - F0) F0=128
|
||||
Listenlaenge : Int // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
Stammdaten : Int // Stammdatenlänge in Word (1 - 9)
|
||||
IndDB : Word // Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
IndDB_Laenge : Int // Länge des indizierten DB in Einträge (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
IndDaten_FC : Int // FC zum Wandeln der indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!)
|
||||
Suchzeiger : Int // Speicherung des letzten Zugriffs / Suchzeiger
|
||||
Belegt14 : Int // reserviert von Sort-Datenliste
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
DBDatenliste : Word // Datenlisten-DB
|
||||
SFC_RET_VAL : Int // Rückmeldung SFC-Aufruf
|
||||
SFC_DB_LENGTH : Word // Rückmeldung SFC-Aufruf
|
||||
Datenlisten_Ende : Word // Ende der Datenliste
|
||||
Schleife : Word // Loopzähler
|
||||
SFC_WRITE_PROT : Bool // Rückmeldung SFC-Aufruf
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
DB_Länge : Int
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Schnittstellen-DB sinnvoll ? ---
|
||||
L SSDB
|
||||
T DBDatenliste
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBDatenliste, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 2: Quelle-Pointer erzeugen: ---
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0 // Any-Kennung, Datentyp
|
||||
L 16#000A // 10 Dw´s holen
|
||||
T LW2 // Wiederholungen
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L SSDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=P#L20.0 WORD 10) // 1.-10.DW Datenliste holen
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
|
||||
--- NW 3: Zeigerüberprüfung ---
|
||||
L Kopf // Datenliste-Kopf
|
||||
L 16#DA // = Datenlistekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 128
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
+ 20 // Speichern ab 10.DW
|
||||
L SSDW
|
||||
+I
|
||||
T Datenlisten_Ende
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datenlisten_Ende
|
||||
L "DB_Länge"
|
||||
>I // Datenlisten-DB ist zu kurz!
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L DBW [AR1Zeiger]
|
||||
L 16#DAEE // Datenliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 4: Indizierung löschen ? ---
|
||||
L IndDB // Indizierter DB
|
||||
L 0 // =0 ?
|
||||
==I // Kein indizierter DB !
|
||||
JC Nw05
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=IndDB, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
CALL FC "BCD (4stellig)_to_INT" (BCD_Wert:=SFC_DB_LENGTH, Int_Wert:="DB_Länge")
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT
|
||||
JC Nw05 // kein Indizier-DB vorhanden
|
||||
|
||||
L 0
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[IndDB]
|
||||
|
||||
L "DB_Länge" // In Bytes angegeben
|
||||
L400: T Schleife
|
||||
|
||||
L 0
|
||||
T DBB [AR1Zeiger] // Inhalte löschen
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L DINT#1
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP L400
|
||||
|
||||
|
||||
|
||||
--- NW 5: Datenliste löschen ---
|
||||
Nw05: L SSDW
|
||||
+ 12 // 12.Dw
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L 0
|
||||
T DBW [AR1Zeiger] // Letzte Speicherung löschen
|
||||
|
||||
L SSDW
|
||||
+ 16 // 16.Dw
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L 0
|
||||
T DBW [AR1Zeiger] // Anzahl Einträge löschen
|
||||
|
||||
L SSDW
|
||||
+ 20 // Daten ab 20.Dw
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Datensatzlaenge
|
||||
L Listenlaenge
|
||||
*I
|
||||
L500: T Schleife
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L 0
|
||||
T DBW [AR1Zeiger] // Inhalte löschen
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L DINT#2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP L500
|
||||
|
||||
|
||||
|
||||
--- NW 6: Fehlerausgabe / RET_VAL ---
|
||||
SET // VKE = 1 ohne Fehler !!!
|
||||
JU Ok
|
||||
Err0: L 2#0000_0000_0000_0001 // Kein Fifobereich
|
||||
JU Err
|
||||
Err1: L 2#0000_0000_0000_0010 // SFC20-Aufruf mit Fehler
|
||||
|
||||
Err: CLR // VKE = 0 bei Fehler !!!
|
||||
Ok: T RE_VAL
|
||||
|
||||
SAVE // VKE in BIE-Bit speichern
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
=== FC 90: DatenResetSort [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
SSDB : Int // Datenlisten-DB
|
||||
SSDW : Int // Datenlisten-1.DW
|
||||
Output:
|
||||
RE_VAL : Byte // Rückmeldung
|
||||
InOut:
|
||||
Temp:
|
||||
Quelle : Any // Zeiger, wo Rein-Daten sind
|
||||
Ziel : Any // Zeiger, FIFO-Stelle
|
||||
Kopf : Byte // Datenliste-Kennnung (DA)
|
||||
Datensatzlaenge : Byte // Datensatzlänge in Word (01 - F0) F0=128
|
||||
Listenlaenge : Int // Länge der Datenliste (maximale Anzahl der Datensätze)
|
||||
Stammdaten : Int // Stammdatenlänge in Word (1 - 9)
|
||||
Belegt06 : Int // reserviert von Datenliste
|
||||
Belegt08 : Int // reserviert von Datenliste
|
||||
Belegt10 : Int // reserviert von Datenliste
|
||||
Belegt12 : Int // reserviert von Datenliste
|
||||
AnzahlEintraege : Int // Anzahl der eingetragenen Datensätze
|
||||
Reserve16 : Int // Reserve
|
||||
Reserve18 : Int // Reserve
|
||||
Suchzeiger : Int // Speicherung des letzten Zugriffs / Suchzeiger
|
||||
DBDatenliste : Word // Datenlisten-DB
|
||||
SFC_RET_VAL : Int // Rückmeldung SFC-Aufruf
|
||||
SFC_DB_LENGTH : Word // Rückmeldung SFC-Aufruf
|
||||
Datenlisten_Ende : Word // Ende der Datenliste
|
||||
Schleife : Word // Loopzähler
|
||||
SFC_WRITE_PROT : Bool // Rückmeldung SFC-Aufruf
|
||||
AR1Zeiger : DWord // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
Constant:
|
||||
Return:
|
||||
Ret_Val : Void
|
||||
|
||||
--- NW 1: Schnittstellen-DB sinnvoll ? ---
|
||||
L SSDB
|
||||
T DBDatenliste
|
||||
|
||||
// CALL TEST_DB
|
||||
// DB_NUMBER :=#DBDatenliste
|
||||
// RET_VAL :=#SFC_RET_VAL
|
||||
// DB_LENGTH :=#SFC_DB_LENGTH
|
||||
// WRITE_PROT :=#SFC_WRITE_PROT
|
||||
|
||||
CALL FC "TEST_DB_TO_ATTR_DB" (DB_Number:=DBDatenliste, RetVal:=SFC_RET_VAL, DB_Length:=SFC_DB_LENGTH, Write_Prot:=SFC_WRITE_PROT)
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
O SFC_WRITE_PROT
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 2: Quelle-Pointer erzeugen: ---
|
||||
L 16#1004 // Kennung 10 + Word=04
|
||||
T LW0 // Any-Kennung, Datentyp
|
||||
L 16#000A // 10 Dw´s holen
|
||||
T LW2 // Wiederholungen
|
||||
L SSDB
|
||||
T LW4 // DB_Nummer
|
||||
L SSDW // Adresse
|
||||
SLD 3
|
||||
L 16#8400_0000 // Kennung: Daten
|
||||
OD
|
||||
T LD6 // Kennung, Adresse
|
||||
|
||||
CALL SYS "BLKMOV" (SRCBLK:=Quelle, RET_VAL:=SFC_RET_VAL, DSTBLK:=P#L20.0 WORD 10) // 1.-10.DW Datenliste holen
|
||||
|
||||
L SFC_RET_VAL
|
||||
L 2#0000_0000_0000_0000
|
||||
<>I
|
||||
JC Err1
|
||||
|
||||
|
||||
--- NW 3: Zeigerüberprüfung ---
|
||||
L Kopf // Datenliste-Kopf
|
||||
L 16#DB // = DatenSortlistekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 128
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Listenlaenge // Max.Anzahl von Datenblöcken
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 1
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L 9
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Stammdaten // Anzahl der Stammdaten
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
>I
|
||||
JC Err0 // kein Datenlistebereich
|
||||
|
||||
L Listenlaenge // Länge der Datenliste
|
||||
L Datensatzlaenge // Datenblocklänge
|
||||
*I
|
||||
L 2 // DB byteorientiert
|
||||
*I
|
||||
+ 20 // Speichern ab 10.DW
|
||||
L SSDW
|
||||
+I
|
||||
T Datenlisten_Ende
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L Datenlisten_Ende
|
||||
L SFC_DB_LENGTH
|
||||
>I // Datenlisten-DB ist zu kurz!
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
L DBW [AR1Zeiger]
|
||||
L 16#DBEE // DatenSortliste-Endekennung ?
|
||||
<>I // Nein !
|
||||
JC Err0 // kein Datenlisten-Bereich
|
||||
|
||||
|
||||
--- NW 4: Datenliste löschen ---
|
||||
L SSDW
|
||||
+ 14 // 14.Dw
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
OPN DB[DBDatenliste]
|
||||
|
||||
L 0
|
||||
T DBW [AR1Zeiger] // Anzahl Einträge löschen
|
||||
|
||||
L SSDW
|
||||
+ 20 // 20.Dw
|
||||
ITD
|
||||
SLD 3
|
||||
T AR1Zeiger // /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
|
||||
|
||||
L Datensatzlaenge
|
||||
L Listenlaenge
|
||||
*I
|
||||
L500: T Schleife
|
||||
|
||||
L 0 // Daten löschen
|
||||
T DBW [AR1Zeiger]
|
||||
|
||||
L AR1Zeiger
|
||||
SRD 3
|
||||
L 2
|
||||
+D
|
||||
SLD 3
|
||||
T AR1Zeiger
|
||||
|
||||
L Schleife
|
||||
LOOP L500
|
||||
|
||||
|
||||
--- NW 5: Fehlerausgabe / RET_VAL ---
|
||||
SET // VKE = 1 ohne Fehler !!!
|
||||
JU Ok
|
||||
Err0: L 2#0000_0000_0000_0001 // Kein Fifobereich
|
||||
JU Err
|
||||
Err1: L 2#0000_0000_0000_0010 // SFC20-Aufruf mit Fehler
|
||||
|
||||
Err: CLR // VKE = 0 bei Fehler !!!
|
||||
Ok: T RE_VAL
|
||||
|
||||
SAVE // VKE in BIE-Bit speichern
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user