The following code does some weird things with my outputs... is it just like in Lad, or stl not permitted to use outputs more the once ??
And if u see other thing that can be written more shortly, please let me know,
thanks in forward
FUNCTION_BLOCK FB95
// PROCESSING CENERPRO
VAR_INPUT
RUN: BOOL;
Auto_Seq: BOOL;
Voorloper: BOOL;
Tapijt: BOOL;
INDS_1_Up: BOOL;
INDS_2_Down: BOOL;
Start_Stop_Vac_1: BOOL;
Start_Stop_Vac_2: BOOL;
Onderdruk_Voorafz: REAL;
Start_Stop_Hydr_Pump: BOOL;
END_VAR
VAR_OUTPUT
Background_Voorloper: INT;
Background_Tapijt: INT;
Zoemer: BOOL;
Vacuumpompen: BOOL;
Hydraulic_Pump_Trommel: BOOL;
Trommel_Up: BOOL;
Trommel_Down: BOOL;
END_VAR
VAR
Membit_1: BOOL;
Membit_2: BOOL;
Flank_Voorloper: BOOL;
Flank_Tapijt: BOOL;
END_VAR
BEGIN
IF Auto_Seq = TRUE THEN
Flank_Voorloper:= Voorloper AND (NOT Membit_1);
Flank_Tapijt:= (NOT Tapijt) AND Membit_2;
IF Flank_Voorloper AND INDS_2_Down = TRUE AND RUN = TRUE THEN
Background_Voorloper:= 4; // 1 = Grijs, 4 = Groen, 7 = Groen Blinken
Background_Tapijt:= 1;
Start_Stop_Vac_1:= FALSE;
Start_Stop_Vac_2:= FALSE;
Hydraulic_Pump_Trommel:= TRUE;
Trommel_Up:= TRUE;
END_IF;
IF Flank_Tapijt THEN
IF INDS_1_Up = TRUE AND RUN = TRUE THEN // Klaarzetten voor overgang naar Tapijt
Background_Voorloper:= 1;
Background_Tapijt:= 7;
Start_Stop_Vac_1:= TRUE;
Start_Stop_Vac_2:= TRUE;
Start_Stop_Hydr_Pump:= TRUE;
Trommel_Down:= TRUE;
END_IF;
IF Background_Tapijt = 7 AND Onderdruk_Voorafz > 0.25 AND INDS_2_Down = TRUE AND RUN = TRUE THEN // Overgang naar Tapijt
Background_Tapijt:= 4;
END_IF;
END_IF;
IF INDS_2_Down = TRUE THEN // Trommel is beneden
Trommel_Down:= FALSE;
Start_Stop_Hydr_Pump:= FALSE;
END_IF;
IF INDS_1_Up = TRUE THEN // Trommel is boven
Trommel_Up:= FALSE;
Start_Stop_Hydr_Pump:= FALSE;
END_IF;
IF Background_Tapijt = 7 THEN // Zoemer tijdens opstartfase
Zoemer:= TRUE;
ELSE
Zoemer:= FALSE;
END_IF;
Membit_1:= Voorloper; // Flanken wegschrijven
Membit_2:= Tapijt;
ELSE
Background_Voorloper:= 1;
Background_Tapijt:= 1;
Start_Stop_Vac_1:= FALSE;
Start_Stop_Vac_2:= FALSE;
Start_Stop_Hydr_Pump:= FALSE;
Trommel_Down:= FALSE;
Trommel_Up:= FALSE;
END_IF;
END_FUNCTION_BLOCK
[/QUOTE]
And if u see other thing that can be written more shortly, please let me know,
thanks in forward
FUNCTION_BLOCK FB95
// PROCESSING CENERPRO
VAR_INPUT
RUN: BOOL;
Auto_Seq: BOOL;
Voorloper: BOOL;
Tapijt: BOOL;
INDS_1_Up: BOOL;
INDS_2_Down: BOOL;
Start_Stop_Vac_1: BOOL;
Start_Stop_Vac_2: BOOL;
Onderdruk_Voorafz: REAL;
Start_Stop_Hydr_Pump: BOOL;
END_VAR
VAR_OUTPUT
Background_Voorloper: INT;
Background_Tapijt: INT;
Zoemer: BOOL;
Vacuumpompen: BOOL;
Hydraulic_Pump_Trommel: BOOL;
Trommel_Up: BOOL;
Trommel_Down: BOOL;
END_VAR
VAR
Membit_1: BOOL;
Membit_2: BOOL;
Flank_Voorloper: BOOL;
Flank_Tapijt: BOOL;
END_VAR
BEGIN
IF Auto_Seq = TRUE THEN
Flank_Voorloper:= Voorloper AND (NOT Membit_1);
Flank_Tapijt:= (NOT Tapijt) AND Membit_2;
IF Flank_Voorloper AND INDS_2_Down = TRUE AND RUN = TRUE THEN
Background_Voorloper:= 4; // 1 = Grijs, 4 = Groen, 7 = Groen Blinken
Background_Tapijt:= 1;
Start_Stop_Vac_1:= FALSE;
Start_Stop_Vac_2:= FALSE;
Hydraulic_Pump_Trommel:= TRUE;
Trommel_Up:= TRUE;
END_IF;
IF Flank_Tapijt THEN
IF INDS_1_Up = TRUE AND RUN = TRUE THEN // Klaarzetten voor overgang naar Tapijt
Background_Voorloper:= 1;
Background_Tapijt:= 7;
Start_Stop_Vac_1:= TRUE;
Start_Stop_Vac_2:= TRUE;
Start_Stop_Hydr_Pump:= TRUE;
Trommel_Down:= TRUE;
END_IF;
IF Background_Tapijt = 7 AND Onderdruk_Voorafz > 0.25 AND INDS_2_Down = TRUE AND RUN = TRUE THEN // Overgang naar Tapijt
Background_Tapijt:= 4;
END_IF;
END_IF;
IF INDS_2_Down = TRUE THEN // Trommel is beneden
Trommel_Down:= FALSE;
Start_Stop_Hydr_Pump:= FALSE;
END_IF;
IF INDS_1_Up = TRUE THEN // Trommel is boven
Trommel_Up:= FALSE;
Start_Stop_Hydr_Pump:= FALSE;
END_IF;
IF Background_Tapijt = 7 THEN // Zoemer tijdens opstartfase
Zoemer:= TRUE;
ELSE
Zoemer:= FALSE;
END_IF;
Membit_1:= Voorloper; // Flanken wegschrijven
Membit_2:= Tapijt;
ELSE
Background_Voorloper:= 1;
Background_Tapijt:= 1;
Start_Stop_Vac_1:= FALSE;
Start_Stop_Vac_2:= FALSE;
Start_Stop_Hydr_Pump:= FALSE;
Trommel_Down:= FALSE;
Trommel_Up:= FALSE;
END_IF;
END_FUNCTION_BLOCK
[/QUOTE]