Textfeld:

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB200 SEQ200 GLB Programme selection + jump distributor

 

 

 

Network 1: Pre-Setting

IF NOT "HMI SYS".Support.FirstCycle_TON.Q THEN

    "HMI KEY".Execute.Pressure_Maintenance_in_STH_Start := TRUE;

    RETURN;

END_IF;

 

 

 

Network 2: Show message on HMI

#Support.Pressure_Maintenance_reached :=

ABS("DI OUT P03".PT302.Support.Out_Scale - "HMI KEY".SetPoint.PT302_PressureMaintainace) <= "HMI KEY".SetPoint.PT302_PressureHysteresis;

#Support.Unexpected_error_whilst_production := #SSM.S."1_FAULT_00_15".%X0;

 

 

 

Network 3: Force production abort

IF "HMI KEY".Execute.Production_Abort THEN

    "DI MAIN GLB".P00.AutoCmpltMa_run :=

    #SSM.S."1_FAULT_00_15".%X0 :=

    #Support.Production_Preparation_Complete :=

    #Support.SBT_Product_Inlet_Complete :=

    #Support.Product_Inlet_Manual_Complete :=

    #Support.CIP_Cooling_after_Production_Complete :=

    #Support.CIP_STH_Ringsing_Complete :=

    #Support.CIP_with_Lye_running_Complete :=

    #Support.CIP_with_Water_running_Complete := FALSE;

END_IF;

 

 

 

Network 4: Programme selection started

IF NOT "DI MAIN GLB".P00.AutoCmpltMa_run THEN

    #Support.SEQ202_Start :=

    #Support.SEQ220_Start :=

    #Support.SEQ221_Start :=

    #Support.SEQ222_Start :=

    #Support.SEQ223_Start :=

    #Support.SEQ240_Start :=

    #Support.SEQ241_Start :=

    #Support.SEQ242_Start :=

    #Support.SEQ243_Start :=

    #Support.SEQ244_Start :=

    #Support.SEQ230_Start := FALSE;

ELSIF NOT "DI MAIN GLB".SET.SSM.S.steps AND "DI MAIN GLB".P00.CmpltMaRun_Imp THEN

    "DI MAIN GLB".P00.OM_HOME_POS_ON := #Support.SEQ201_Start := FALSE;

    #Support.SEQ220_Start := #Support.Prodction_Selected AND NOT #Support.Production_Preparation_Complete;

    #Support.SEQ221_Start := #Support.Prodction_Selected AND #Support.Production_Preparation_Complete AND NOT #Support.SBT_Product_Inlet_Complete;

    #Support.SEQ222_Start := #Support.Prodction_Selected AND #Support.SBT_Product_Inlet_Complete;

    #Support.SEQ223_Start := #Support.Prodction_Selected AND "DI MAIN GLB".FILLER.TO_STH.Request_Production_End;

    #Support.SEQ202_Start := #Support.SBT_Drainage_Selected;

    #Support.SEQ230_Start := #Support.Prodction_Selected AND #SSM.S."1_FAULT_00_15".%X0 AND NOT #Support.SEQ202_Start;

    #Support.SEQ240_Start := #Support.CIP_Selected AND "HMI KEY".Execute.CIP_BufferTank_With_Lye

    AND NOT (#Support.CIP_with_Lye_running_Complete OR "HMI KEY".Execute.CIP_BufferTank_With_Water);

    #Support.SEQ241_Start := #Support.CIP_Selected AND #Support.CIP_with_Lye_running_Complete;

    #Support.SEQ242_Start := #Support.CIP_Selected AND "HMI KEY".Execute.CIP_BufferTank_With_Water

    AND NOT (#Support.CIP_with_Water_running_Complete OR "HMI KEY".Execute.CIP_BufferTank_With_Lye);

    #Support.SEQ243_Start := #Support.CIP_Selected AND #Support.CIP_STH_Ringsing_Complete

    AND NOT #Support.CIP_Cooling_after_Production_Complete AND (#Support.CIP_with_Lye_running_Complete OR #Support.CIP_with_Water_running_Complete);

    #Support.SEQ244_Start := #Support.CIP_Selected AND #Support.CIP_Cooling_after_Production_Complete;

    #Support.SEQ200_Start := #Support.Prodction_Selected OR #Support.SBT_Drainage_Selected OR #Support.CIP_Selected;

    IF #Support.SEQ202_Start THEN

        #SSM.S."1_FAULT_00_15".%X0 :=

        #Support.Production_Preparation_Complete :=

        #Support.SBT_Product_Inlet_Complete :=

        #Support.Product_Inlet_Manual_Complete :=

        #Support.CIP_Cooling_after_Production_Complete :=

        #Support.CIP_STH_Ringsing_Complete :=

        #Support.CIP_with_Lye_running_Complete :=

        #Support.CIP_with_Water_running_Complete := FALSE;

    END_IF;

END_IF;

 

 

 

Network 5: Programme BASIC condition

IF "DI MAIN GLB".SET.SSM.S.steps AND "DI MAIN GLB".P00.CmpltMaRun_Imp  THEN

    #Support.SEQ200_Start := #Support.SEQ201_Start := TRUE;

    #Support.Prodction_Selected := #Support.CIP_Selected := #SSM.S."1_FAULT_00_15".%X0 := FALSE;

END_IF;

 

 

 

Network 6: Programme selection PRODUCTION

IF #Support.Select_Production AND NOT (#Support.Prodction_Selected OR "DI MAIN GLB".P00.AutoCmpltMa_run) THEN

    #Support.Prodction_Selected := "DI MAIN GLB".FILLER.TO_STH.Request_Production_Start;// OR "DI MAIN GLB".FILLER.TO_STH.Request_Production_End;

    #Support.SBT_Drainage_Selected := #Support.CIP_Selected := FALSE;

END_IF;

 

 

 

Network 7: Programme selection DRAINAGE

IF #Support.Select_Drainage AND NOT (#Support.SBT_Drainage_Selected OR "DI MAIN GLB".P00.AutoCmpltMa_run) THEN

    #Support.SBT_Drainage_Selected := TRUE;

    #Support.Prodction_Selected := #Support.CIP_Selected := FALSE;

END_IF;

 

 

 

Network 8: Programme selection CIP

IF #Support.Select_CIP AND NOT (#Support.CIP_Selected  OR "DI MAIN GLB".P00.AutoCmpltMa_run) THEN

    #Support.CIP_Selected := ("HMI KEY".Execute.CIP_BufferTank_With_Water XOR "HMI KEY".Execute.CIP_BufferTank_With_Lye) OR "HMI KEY".Execute.CIP_Without_BufferTank;

    IF #Support.CIP_Selected THEN

        #Support.Prodction_Selected := #Support.SBT_Drainage_Selected := FALSE;

    END_IF;

END_IF;

 

 

 

Network 9: Define unexpected error whilst production

#Support.DlyErrorOn(IN := #Support.SEQ222_Start AND "DI OUT P02".V204.Input > "HMI KEY".SetPoint.Temperature_Deviation,

                    PT := t#5000ms);

IF #Support.DlyErrorOn.Q THEN

    #SSM.S."1_FAULT_00_15".%X0 := TRUE;

END_IF;

 

 

 

Network 10: Create delay steps off

#Support.DlyStepsOff(IN := #Support.SEQ200_Start AND NOT "DI MAIN GLB".TOF_CmpltMaOFF_Pulse.Q,

                     PT := t#500ms);

#SSM.S.steph := NOT "DI MAIN GLB".P00.AutoCmpltMa_run AND (#Support.Prodction_Selected OR #Support.CIP_Selected);

#SSM.S.steps := #Support.DlyStepsOff.Q;

 

 

 

Network 11: Define SSM last step

#tmp_support_steph := NOT ("E00 Estp FdB" AND "E00 AirPressur ok" AND ("DI MAIN GLB".P00.AutoCmpltMa_run OR "DI MAIN GLB".SET.SSM.S.steps));

#SSM(LAST_STEP := 11);

 

 

 

Network 12: Jump distributor corresponds to SEQ200

CASE #SSM.S.stepact OF

    0: // waiting for sequencer to start

        IF #SSM.S.steps THEN

            #SSM.S.stepd := #Support.SEQ202_Start OR #Support.SEQ201_Start;

            IF #Support.SEQ220_Start THEN // Production temperature preparation with water

                #SSM.S.stepnew := 2;

                #SSM.S.stepd := TRUE;

                #Support.SEQ201_Start := FALSE;

            ELSIF #Support.SEQ221_Start THEN // Product inlet + filling SBT

                #SSM.S.stepnew := 3;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ222_Start THEN // Production

                #SSM.S.stepnew := 4;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ230_Start THEN // Error whilst production

                #SSM.S.stepnew := 5;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ223_Start THEN // Production end

                #SSM.S.stepnew := 6;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ240_Start THEN // CIP with Lye

                #SSM.S.stepnew := 7;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ241_Start THEN // CIP STH rinsing

                #SSM.S.stepnew := 8;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ242_Start THEN // CIP with water

                #SSM.S.stepnew := 9;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ243_Start THEN // Cooling after production

                #SSM.S.stepnew := 10;

                #SSM.S.stepd := TRUE;

            ELSIF #Support.SEQ244_Start THEN // STH draining

                #SSM.S.stepnew := 11;

                #SSM.S.stepd := TRUE;

            END_IF;

        END_IF;

       

    1: // Implement basic condition

        #SEQ201.SSM.S.steph := #tmp_support_steph;

        #SEQ201.DlyStepsOff(IN := #Support.SEQ201_Start,

                            PT := t#200ms);

        #SEQ201.SSM.S.steps := #SEQ201.DlyStepsOff.Q;

        #SEQ201();

        IF (NOT #SEQ201.SSM.S.step0 OR #SSM.S.DlyOff.Q) AND NOT #Support.SEQ202_Start THEN

            RETURN;

        ELSE

            "DI MAIN GLB".P00.OM_HOME_POS_ON := FALSE;

            IF #Support.SEQ220_Start THEN

                #SSM.S.stepd := TRUE;

            END_IF;

        END_IF;

       

        // Start SBT Drainage

        #SEQ202.SSM.S.steph := #tmp_support_steph;

        #SEQ202.DlyStepsOff(IN := #Support.SEQ202_Start,

                            PT := t#200ms);

        #SEQ202.SSM.S.steps := #SEQ202.DlyStepsOff.Q;

        #SEQ202();

        IF NOT #SEQ202.SSM.S.step0 OR #SSM.S.DlyOff.Q THEN

            RETURN;

        ELSE

            "DI MAIN GLB".P00.AutoCmpltMa_run := FALSE;

        END_IF;

       

    2: // Filling STH-System with watter + circulation

        #SEQ220.DlyStepsOff(IN := #Support.SEQ220_Start,

                            PT := t#200ms);

        #SEQ220.SSM.S.steph := #tmp_support_steph;

        #SEQ220.SSM.S.steps := #SEQ220.DlyStepsOff.Q;

        #SEQ220();

        #SSM.S.stepd := #SEQ220.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q;

       

    3: // Production preparation start

        IF #SSM.S.stepfc THEN

            #Support.SEQ221_Start := TRUE;

        ELSE

            #SEQ221.DlyStepsOff(IN := #Support.SEQ221_Start,

                                PT := t#200ms);

            #SEQ221.SSM.S.steph := #tmp_support_steph;

            #SEQ221.SSM.S.steps := #SEQ221.DlyStepsOff.Q;

            #SEQ221();

            #SSM.S.stepd := #SEQ221.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q;

        END_IF;

       

    4: // Production

        IF #SSM.S.stepfc THEN

            #Support.SEQ222_Start := NOT #SSM.S."1_FAULT_00_15".%X0;

        ELSE

            #SEQ222.DlyStepsOff(IN := #Support.SEQ222_Start,

                                PT := t#200ms);

            #SEQ222.SSM.S.steph := #tmp_support_steph;

            #SEQ222.SSM.S.steps := #SEQ222.DlyStepsOff.Q;

            #SEQ222();

        END_IF;

        IF #SEQ222.SSM.S.step0 AND #SSM.S."1_FAULT_00_15".%X0 THEN

            #SSM.S.stepd := TRUE;

        ELSIF #SEQ222.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q THEN

            #SSM.S.stepnew := 6;

            #SSM.S.stepd := TRUE;

        END_IF;

       

    5: // Unexpected error whilst production

        IF #SSM.S.stepfc THEN

            #Support.SEQ230_Start := TRUE;

        ELSE

            #SEQ230.DlyStepsOff(IN := #Support.SEQ230_Start,

                                PT := t#200ms);

            #SEQ230.SSM.S.steph := #tmp_support_steph;

            #SEQ230.SSM.S.steps := #SEQ230.DlyStepsOff.Q;

            #SEQ230();

        END_IF;

        IF #SEQ230.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q THEN

            #SSM.S.stepnew := 3;

            #SSM.S.stepd := TRUE;

            #SSM.S."1_FAULT_00_15".%X0 := FALSE;

        END_IF;

       

    6: // Production end

        IF #SSM.S.stepfc THEN

            #Support.SEQ223_Start := TRUE;

        ELSE

            #SEQ223.DlyStepsOff(IN := #Support.SEQ223_Start,

                                PT := t#200ms);

            #SEQ223.SSM.S.steph := #tmp_support_steph;

            #SEQ223.SSM.S.steps := #SEQ223.DlyStepsOff.Q;

            #SEQ223();

        END_IF;

        IF NOT #SEQ223.SSM.S.step0 OR #SSM.S.DlyOff.Q THEN

            RETURN;

        ELSE

            "DI MAIN GLB".P00.AutoCmpltMa_run := FALSE;

        END_IF;

       

    7: // CIP with Lye

        #SEQ240.DlyStepsOff(IN := #Support.SEQ240_Start,

                            PT := t#200ms);

        #SEQ240.SSM.S.steph := #tmp_support_steph;

        #SEQ240.SSM.S.steps := #SEQ240.DlyStepsOff.Q;

        #SEQ240();

        #SSM.S.stepd := #SEQ240.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q;

       

    8: // STH Rinsing

        IF #SSM.S.stepfc THEN

            #Support.SEQ241_Start := TRUE;

        ELSE

            #SEQ241.DlyStepsOff(IN := #Support.SEQ241_Start,

                                PT := t#200ms);

            #SEQ241.SSM.S.steph := #tmp_support_steph;

            #SEQ241.SSM.S.steps := #SEQ241.DlyStepsOff.Q;

            #SEQ241();

            IF #SEQ241.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q THEN

                #SSM.S.stepnew := 10;

                #SSM.S.stepd := TRUE;

            END_IF;

        END_IF;

       

    9: // CIP with Water

        #SEQ242.DlyStepsOff(IN := #Support.SEQ242_Start,

                            PT := t#200ms);

        #SEQ242.SSM.S.steph := #tmp_support_steph;

        #SEQ242.SSM.S.steps := #SEQ242.DlyStepsOff.Q;

        #SEQ242();

        #SSM.S.stepd := #SEQ242.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q;

       

    10: // Cooling after production

        IF #SSM.S.stepfc THEN

            #Support.SEQ243_Start := TRUE;

        ELSE

            #SEQ243.DlyStepsOff(IN := #Support.SEQ243_Start,

                                PT := t#200ms);

            #SEQ243.SSM.S.steph := #tmp_support_steph;

            #SEQ243.SSM.S.steps := #SEQ243.DlyStepsOff.Q;

            #SEQ243();

            #SSM.S.stepd := #SEQ243.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q;

        END_IF;

       

    11: // STH draining

        IF #SSM.S.stepfc THEN

            #Support.SEQ244_Start := TRUE;

        ELSE

            #SEQ244.DlyStepsOff(IN := #Support.SEQ244_Start,

                                PT := t#200ms);

            #SEQ244.SSM.S.steph := #tmp_support_steph;

            #SEQ244.SSM.S.steps := #SEQ244.DlyStepsOff.Q;

            #SEQ244();

            IF #SEQ244.SSM.S.step0 AND NOT #SSM.S.DlyOff.Q THEN

                #SSM.S.stepnew := 1;

                #Support.CIP_Selected :=

                "HMI KEY".Execute.Pressure_Maintenance_with_CO2 :=

                "DI MAIN GLB".P00.OM_AUTO_ON := FALSE;

                #Support.SEQ201_Start :=

                "DI MAIN GLB".SET.SSM.S.steps := "DI MAIN GLB".P00.OM_HOME_POS_ON :=

                "HMI KEY".Execute.Pressure_Maintenance_with_Air :=

                "HMI KEY".Execute.Pressure_Maintenance_in_STH_Start :=

                #SSM.S.stepd := TRUE;

            END_IF;

        END_IF;

END_CASE;