96 lines
2.2 KiB
Plaintext
96 lines
2.2 KiB
Plaintext
FUNCTION_BLOCK "MAusfahrFreigabe_neu"
|
|
TITLE = Ausfahrfreigabe für Pufferstrecken
|
|
{ S7_Optimized_Access := 'FALSE' }
|
|
VERSION : 0.1
|
|
VAR_INPUT
|
|
Impuls : Bool; // Zähl-Impuls
|
|
Vorbei_1 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren
|
|
Vorbei_2 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren
|
|
Vorbei_3 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren
|
|
Vorbei_4 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren
|
|
Vorbei_5 { ExternalWritable := 'False'} : Bool; // BM ist an Sensor vorbeigefahren
|
|
Inks_Vorbei_1 : Int; // Rest-Inks für diese Position
|
|
Inks_Vorbei_2 : Int; // Rest-Inks für diese Position
|
|
Inks_Vorbei_3 : Int; // Rest-Inks für diese Position
|
|
Inks_Vorbei_4 : Int; // Rest-Inks für diese Position
|
|
Inks_Vorbei_5 : Int; // Rest-Inks für diese Position
|
|
END_VAR
|
|
|
|
VAR_IN_OUT
|
|
Antrieb_ein : Bool; // Antrieb einschalten
|
|
END_VAR
|
|
|
|
VAR
|
|
Dyn : Struct
|
|
Rest_Inks : Int := 1; // BM noch unterwegs [Inks]
|
|
END_STRUCT;
|
|
END_VAR
|
|
|
|
VAR_TEMP
|
|
tAktiv : Int;
|
|
END_VAR
|
|
|
|
|
|
BEGIN
|
|
NETWORK
|
|
TITLE = Vorbei-Sensoren auswerten
|
|
L #Inks_Vorbei_5;
|
|
U #Vorbei_5;
|
|
SPB Chek;
|
|
L #Inks_Vorbei_4;
|
|
U #Vorbei_4;
|
|
SPB Chek;
|
|
L #Inks_Vorbei_3;
|
|
U #Vorbei_3;
|
|
SPB Chek;
|
|
L #Inks_Vorbei_2;
|
|
U #Vorbei_2;
|
|
SPB Chek;
|
|
L #Inks_Vorbei_1;
|
|
U #Vorbei_1;
|
|
SPB Chek;
|
|
|
|
SPA En02;
|
|
|
|
Chek: L #Dyn.Rest_Inks ;//Neuer Wert kleiner?
|
|
<I;//Ja !
|
|
SPB En02 ;//Ohne Speicherung weiter
|
|
|
|
TAK;//Neuen Wert übernehmen
|
|
T #Dyn.Rest_Inks;//Wert speichern
|
|
|
|
En02: NOP 0;
|
|
|
|
NETWORK
|
|
TITLE = Rest-Inks verändern
|
|
UN #Impuls ;//Von MImpulsGeber
|
|
SPB En04;
|
|
|
|
//BT ist unterwegs:
|
|
L #Dyn.Rest_Inks;
|
|
+ -1;
|
|
T #Dyn.Rest_Inks;
|
|
|
|
L 0;//Minimum erreicht?
|
|
>I;//Nein !
|
|
SPB En04;
|
|
|
|
L 1;
|
|
T #Dyn.Rest_Inks;//Minimum übergeben
|
|
|
|
En04: NOP 0;
|
|
|
|
NETWORK
|
|
TITLE = Antrieb einschalten
|
|
L #Dyn.Rest_Inks;
|
|
L 1 ;//vorhanden ?
|
|
>I;//Ja !
|
|
S #Antrieb_ein;
|
|
|
|
NETWORK
|
|
TITLE = Ende
|
|
BE;
|
|
|
|
END_FUNCTION_BLOCK
|
|
|