Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SEQ240 GLB CIP with Lye

 

 

 

Network 1: Start measuring runtime (Start Cycle)

#SSM(LAST_STEP := 15);

 

 

 

Network 2: Pulse generator

IF "E04 FIT402 pulse" AND NOT #FIT402_Pulse_REg THEN

    IF "DI OUT P04".Support.FIT402_Volum_meter >= "HMI KEY".SetPoint.FIT402_CIP_Lye_Liquid_Handling THEN

        "HMI KEY".Message.CIP_Lye_Access_Complete := #FIT402_CIP_lye_access_done := TRUE;

    ELSE

        "DI OUT P04".Support.FIT402_Volum_meter := "DI OUT P04".Support.FIT402_Volum_meter + 1.0;

    END_IF;

END_IF;

#FIT402_Pulse_REg := "E04 FIT402 pulse" OR #FIT402_CIP_lye_access_done;

 

 

 

Network 3: CALL distributor

#SSM.S.stepllo := NOT (#SSM.S.step0 OR #SSM.S.steph);

"DI OUT P01".G120C.DRV.Support.Cmd_MovJogWP := "HMI KEY".P01.G120C.F12_Enable_WP AND #SSM.S.stepllo;

"DI OUT P01".V101.VLV_O.CmdExe_WP := "HMI KEY".P01.V101.F12_Enable_WP;

"DI OUT P03".G320C.DRV.Support.Cmd_MovAbso := "HMI KEY".P03.G320C.F12_Enable_WP;

"DI OUT P03".V306.VLV_O.CmdExe_WP := "HMI KEY".P03.V306.F12_Enable_WP AND NOT #SSM.S.step0;

"DI OUT P04".M401.DRV.CmdExe_WP := "HMI KEY".P04.M401.F12_Enable_WP;

"DI OUT P04".G420C.DRV.Support.Cmd_MovJogWP := "HMI KEY".P04.G420C.F12_Enable_WP AND #SSM.S.stepllo;

#SSM.S.stepllo := "HMI KEY".Message.PT101_Pressure_Maintenance_reached AND "HMI KEY".Message.PT201_Pressure_Maintenance_reached;

 

 

 

Network 4: First cycle evaluation

CASE #SSM.S.stepact OF

    0: // Waiting for sequencer to start

        #SSM.S.stepd := #SSM.S.steps;

        "DI OUT P01".M101.DRV.CmdExe_WP :=

        "DI OUT P02".G220C.DRV.Support.Cmd_MovJogWP :=

        "DI OUT P02".V202.VLV_O.CmdExe_WP :=

        "DI OUT P02".V204.VLV_O.CmdExe_WP :=

        "DI OUT P03".M301.DRV.CmdExe_WP :=

        "DI OUT P04".V401.VLV_O.CmdExe_WP :=

        "DI OUT P04".V413.VLV_O.CmdExe_WP :=

        "DI OUT P04".V405.VLV_O.CmdExe_WP :=

        "DI OUT P04".V408.VLV_O.CmdExe_WP :=

        "DI OUT P04".V410.VLV_O.CmdExe_WP :=

        "DI OUT P04".M402.DRV.CmdExe_WP := FALSE;

       

    1: // V413,M402,V403,M401,V101,G120C,V102,V104,FIT402 - Filling SBT1 with Lye

        IF #SSM.S.DlyOff.Q THEN

            "DI OUT P01".G120C.DRV.Support.SetVelo := "HMI KEY".SetPoint.G120C_CIP_Circulation_Flow_RPM;

            "DI OUT P02".G220C.DRV.Support.SetVelo := "HMI KEY".SetPoint.G220C_Product_Inlet_Filler_RPM;

            "DI OUT P03".G320C.DRV.MC_MoveVelocity.Velocity := "HMI KEY".SetPoint.G320C_Heating_Circular_Flow_RPM;

            "DI OUT P03".V307.Mode := 3;

            "DI OUT P03".V307.ModeActivate :=

            "HMI KEY".Execute.PT101_Pressure_Maintenace_SBT1 :=

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

            RETURN;

        ELSE

            "DI OUT P03".V307.ModeActivate := FALSE;

            "DI OUT P04".V413.VLV_O.CmdExe_WP := "HMI KEY".P04.V413.F12_Enable_WP AND NOT #FIT402_CIP_lye_access_done;

            "DI OUT P04".M402.DRV.CmdExe_WP := "HMI KEY".P04.M402.F12_Enable_WP AND NOT #FIT402_CIP_lye_access_done;

            "DI OUT P04".V403.VLV_O.CmdExe_WP := "HMI KEY".P04.V403.F12_Enable_WP AND NOT #FIT402_CIP_lye_access_done;

            "DI OUT P01".V102.VLV_O.CmdExe_WP := "HMI KEY".P01.V102.F12_Enable_WP AND NOT #FIT402_CIP_lye_access_done;

            "DI OUT P01".V104.VLV_O.CmdExe_WP := "HMI KEY".P01.V104.F12_Enable_WP AND NOT #FIT402_CIP_lye_access_done;

        END_IF;

        // Waiting for step conditions to be met

        IF #FIT402_CIP_lye_access_done

            AND #SSM.S.stepllo AND "E01 LS102 low"

            AND "DI OUT P04".V413.FB_HP AND "DI OUT P04".M402.DRV.LampHP AND "DI OUT P04".V403.FB_HP AND "DI OUT P01".V102.FB_HP AND "DI OUT P01".V104.FB_HP THEN

            "DI OUT P04".Support.FIT402_Volum_meter := 0.0;

            #SSM.S.stepd := TRUE;

        END_IF;

       

    2: // V107,M101,M401,V101,G120C,M301,V301,V305,V410,FIT101 - Filling up circular flow

        IF "E01 FIT101 pulse" AND NOT #FIT101_Pulse_REg THEN

            IF "DI OUT P01".Support.FIT101_Volum_meter >= "HMI KEY".SetPoint.FIT101_CIP_Discard_Used_Medium THEN

                #FIT101_CIP_lye_access_circular_flow_done := TRUE;

            ELSE

                "DI OUT P01".Support.FIT101_Volum_meter := "DI OUT P01".Support.FIT101_Volum_meter + 1.0;

            END_IF;

        END_IF;

        #FIT101_Pulse_REg := "E01 FIT101 pulse" OR #FIT101_CIP_lye_access_circular_flow_done;

        // Assign actors pre-setting

        "DI OUT P01".V107.VLV_O.CmdExe_WP := "HMI KEY".P01.V107.F12_Enable_WP AND NOT #FIT101_CIP_lye_access_circular_flow_done;

        "DI OUT P01".M101.DRV.CmdExe_WP := "HMI KEY".P01.M101.F12_Enable_WP AND NOT #FIT101_CIP_lye_access_circular_flow_done;

        "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

        "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP AND NOT #FIT101_CIP_lye_access_circular_flow_done;

        "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP AND NOT #FIT101_CIP_lye_access_circular_flow_done;

        "DI OUT P04".V410.VLV_O.CmdExe_WP := "HMI KEY".P04.V410.F12_Enable_WP AND NOT #FIT101_CIP_lye_access_circular_flow_done;

        // Waiting for step conditions to be met

        IF #FIT101_CIP_lye_access_circular_flow_done AND #SSM.S.stepllo

            AND "DI OUT P01".V107.FB_HP AND "DI OUT P01".M101.DRV.LampHP

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P03".V301.FB_HP AND "DI OUT P03".V305.FB_HP AND "DI OUT P04".V410.FB_HP THEN

            "DI OUT P01".Support.FIT101_Volum_meter := 0.0;

            #SSM.S.stepd := TRUE;

        END_IF;

       

    3: // V406,G420C,V402,M401,V101,G120C,M301,V301,V305,TT302 - Temperature preparation circular flow with Lye

        IF #SSM.S.DlyOff.Q THEN

            "DI OUT P03".V307.Setpoint := "HMI KEY".SetPoint.V307_Temperature_CIP_Circular_Flow;

            "DI OUT P04".G420C.DRV.Support.SetVelo := "HMI KEY".SetPoint.G420C_Filling_Circular_Flow_with_Water_RPM;

        ELSE

            // Assign actors pre-setting

            "DI OUT P04".V406.VLV_O.CmdExe_WP := "HMI KEY".P04.V406.F12_Enable_WP;

            "DI OUT P04".V402.VLV_O.CmdExe_WP := "HMI KEY".P04.V402.F12_Enable_WP AND NOT "HMI KEY".Message.TT302_Medium_Temperature_reached;

            "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

            "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP;

            "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP;

            // Waiting for step conditions to be met

            #SSM.S.stepd := "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P04".V406.FB_WP AND "DI OUT P04".V402.FB_HP

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P03".V301.FB_WP AND "DI OUT P03".V305.FB_WP;

        END_IF;

       

    4: // V406,G420C,V409,V105,G120C,M301,V301,V305,TT302 - bypass circular flow 10sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 100;

        ELSE // Assign actors pre-setting

            "DI OUT P04".V406.VLV_O.CmdExe_WP := "HMI KEY".P04.V406.F12_Enable_WP;

            "DI OUT P04".V409.VLV_O.CmdExe_WP := "HMI KEY".P04.V409.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P01".V105.VLV_O.CmdExe_WP := "HMI KEY".P01.V105.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP;

            "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP;

            #SSM.S.c1.start :=

            "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P04".V406.FB_WP AND "DI OUT P04".G420C.DRV.Support.LampON

            AND "DI OUT P04".V409.FB_WP AND "DI OUT P01".V105.FB_WP

            AND "DI OUT P03".V301.FB_WP AND "DI OUT P03".V305.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done AND "DI OUT P04".V409.FB_HP AND "DI OUT P01".V105.FB_HP AND "DI OUT P04".G420C.DRV.Support.LampOFF THEN

            "DI OUT P04".G420C.DRV.Support.SetVelo := 0.0;

            IF "DI OUT P04".G420C.DRV.Support.LampOFF THEN

                #SSM.S.stepd := TRUE;

            END_IF;

        END_IF;

       

    5: // V406,V412,M402,V403,M401,V101,G120C,M301,V301,V305,TT302 - Concentrate pipeline circular flow 10sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 100;

        ELSE // Assign actors pre-setting

            "DI OUT P04".V406.VLV_O.CmdExe_WP := "HMI KEY".P04.V406.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P04".V412.VLV_O.CmdExe_WP := "HMI KEY".P04.V412.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P04".M402.DRV.CmdExe_WP := "HMI KEY".P04.M402.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P04".V403.VLV_O.CmdExe_WP := "HMI KEY".P04.V403.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

            "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP;

            "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP;

            #SSM.S.c1.start :=

            "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P04".V406.FB_WP AND "DI OUT P04".V412.FB_WP AND "DI OUT P04".M402.DRV.LampWP AND "DI OUT P04".V403.FB_WP

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P03".V301.FB_WP AND "DI OUT P03".V305.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done AND "DI OUT P04".V406.FB_HP AND "DI OUT P04".V412.FB_HP AND "DI OUT P04".M402.DRV.LampHP AND "DI OUT P04".V403.FB_HP THEN

            #SSM.S.stepd := TRUE;

        END_IF;

       

    6: // V107,M101,M401,V101,G120C,M301,V301,V305,V410,FIT101 - Discard circular flow

        IF "E01 FIT101 pulse" AND NOT #FIT101_Pulse_REg THEN

            IF "DI OUT P01".Support.FIT101_Volum_meter >= "HMI KEY".SetPoint.FIT101_CIP_Discard_Used_Medium THEN

                #FIT101_CIP_discard_used_medium_done := TRUE;

            ELSE

                "DI OUT P01".Support.FIT101_Volum_meter := "DI OUT P01".Support.FIT101_Volum_meter + 1.0;

            END_IF;

        END_IF;

        #FIT101_Pulse_REg := "E01 FIT101 pulse";

        // Assign actors pre-setting

        "DI OUT P01".V107.VLV_O.CmdExe_WP := "HMI KEY".P01.V107.F12_Enable_WP;

        "DI OUT P01".M101.DRV.CmdExe_WP := "HMI KEY".P01.M101.F12_Enable_WP;

        "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

        "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP AND NOT #FIT101_CIP_discard_used_medium_done;

        "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP AND NOT #FIT101_CIP_discard_used_medium_done;

        "DI OUT P04".V410.VLV_O.CmdExe_WP := "HMI KEY".P04.V410.F12_Enable_WP AND NOT #FIT101_CIP_discard_used_medium_done;

        // Waiting for step conditions to be met

        IF #FIT101_CIP_discard_used_medium_done AND #SSM.S.stepllo

            AND "DI OUT P01".V107.FB_WP AND "DI OUT P01".M101.DRV.LampWP

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P03".V301.FB_HP AND "DI OUT P03".V305.FB_HP AND "DI OUT P04".V410.FB_HP THEN

            "DI OUT P01".Support.FIT101_Volum_meter := 0.0;

            #FIT101_CIP_discard_used_medium_done := FALSE;

            #SSM.S.stepd := TRUE;

        END_IF;

       

    7: // V107,M101,M401,V101,G120C,M301,V303,V201,FIT101 - CIP with Lye SBT2

        IF "E01 FIT101 pulse" AND NOT #FIT101_Pulse_REg THEN

            IF "DI OUT P01".Support.FIT101_Volum_meter >= "HMI KEY".SetPoint.FIT101_CIP_Lye_SBT2 THEN

                #FIT101_CIP_lye_STB2_done := TRUE;

            ELSE

                "DI OUT P01".Support.FIT101_Volum_meter := "DI OUT P01".Support.FIT101_Volum_meter + 1.0;

            END_IF;

        END_IF;

        #FIT101_Pulse_REg := "E01 FIT101 pulse";

        // Assign actors pre-setting

        "DI OUT P01".V107.VLV_O.CmdExe_WP := "HMI KEY".P01.V107.F12_Enable_WP AND NOT #FIT101_CIP_lye_STB2_done;

        "DI OUT P01".M101.DRV.CmdExe_WP := "HMI KEY".P01.M101.F12_Enable_WP AND NOT #FIT101_CIP_lye_STB2_done;

        "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

        "DI OUT P03".V303.VLV_O.CmdExe_WP := "HMI KEY".P03.V303.F12_Enable_WP;

        "DI OUT P02".V201.VLV_O.CmdExe_WP := "HMI KEY".P02.V201.F12_Enable_WP;

        // Waiting for step conditions to be met

        IF #FIT101_CIP_lye_STB2_done AND #SSM.S.stepllo AND "DI OUT P01".V107.FB_HP AND "DI OUT P01".M101.DRV.LampHP THEN

            "DI OUT P01".Support.FIT101_Volum_meter := 0.0;

            #FIT101_CIP_lye_STB2_done := FALSE;

            #SSM.S.stepd := TRUE;

        END_IF;

       

    8: // V406,G420C,V402,M401,V101,G120C,M301,V303,V201,V204,G220C,V205,V404,TT302 - SBT2 circular flow 30sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 300;

            "DI OUT P04".G420C.DRV.Support.SetVelo := "HMI KEY".SetPoint.G420C_Water_Circulation_Flow_RPM;

            "DI OUT P02".G220C.DRV.Support.SetVelo := "HMI KEY".SetPoint.G220C_CIP_Circulation_Flow_RPM;

        ELSE // Assign actors pre-setting

            "DI OUT P04".V406.VLV_O.CmdExe_WP := "HMI KEY".P04.V406.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P04".V402.VLV_O.CmdExe_WP := "HMI KEY".P04.V402.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

            "DI OUT P03".V303.VLV_O.CmdExe_WP := "HMI KEY".P03.V303.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P02".V201.VLV_O.CmdExe_WP := "HMI KEY".P02.V201.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P02".V204.VLV_O.CmdExe_WP := "HMI KEY".P02.V204.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P02".G220C.DRV.Support.Cmd_MovJogWP := "HMI KEY".P02.G220C.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P02".V205.VLV_O.CmdExe_WP := "HMI KEY".P02.V205.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P04".V404.VLV_O.CmdExe_WP := "HMI KEY".P04.V404.F12_Enable_WP AND NOT #SSM.S.c1.done;

            #SSM.S.c1.start :=

            "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P04".V406.FB_WP AND "DI OUT P04".G420C.DRV.Support.LampON

            AND "DI OUT P04".V402.FB_WP AND "DI OUT P03".M301.DRV.LampWP

            AND "DI OUT P03".V303.FB_WP AND "DI OUT P02".V201.FB_WP

            AND "DI OUT P02".V204.FB_WP AND "DI OUT P02".G220C.DRV.Support.LampON

            AND "DI OUT P02".V205.FB_WP AND "DI OUT P04".V404.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done

            AND "DI OUT P04".V406.FB_HP AND "DI OUT P04".V402.FB_HP

            AND "DI OUT P03".V303.FB_HP AND "DI OUT P02".V201.FB_HP

            AND "DI OUT P02".V204.FB_HP AND "DI OUT P02".G220C.DRV.Support.LampOFF

            AND "DI OUT P02".V205.FB_HP AND "DI OUT P04".V404.FB_HP AND "DI OUT P04".G420C.DRV.Support.LampOFF THEN

            "DI OUT P04".G420C.DRV.Support.SetVelo := 0.0;

            #SSM.S.stepd := TRUE;

        END_IF;

       

    9: // V107,M101,M401,V101,G120C,M301,V401,TT302 - CIP filler 10sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 100;

        ELSE // Assign actors pre-setting

            "DI OUT P01".V107.VLV_O.CmdExe_WP := "HMI KEY".P01.V107.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P01".M101.DRV.CmdExe_WP := "HMI KEY".P01.M101.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

            "DI OUT P04".V401.VLV_O.CmdExe_WP := "HMI KEY".P04.V401.F12_Enable_WP AND NOT #SSM.S.c1.done;

            #SSM.S.c1.start :=

            "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P01".V107.FB_WP AND "DI OUT P01".M101.DRV.LampWP

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P04".V401.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done AND "DI OUT P01".V107.FB_HP AND "DI OUT P01".M101.DRV.LampHP AND "DI OUT P04".V401.FB_HP THEN

            #SSM.S.stepd := TRUE;

        END_IF;

       

    10: // V406,G420C,V402,M401,V101,G120C,M301,V301,V305,TT302 - Resume circular flow 10sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 100;

            "DI OUT P04".G420C.DRV.Support.SetVelo := "HMI KEY".SetPoint.G420C_Water_Circulation_Flow_RPM;

        ELSE // Assign actors pre-setting

            "DI OUT P04".V406.VLV_O.CmdExe_WP := "HMI KEY".P04.V406.F12_Enable_WP;

            "DI OUT P04".V402.VLV_O.CmdExe_WP := "HMI KEY".P04.V402.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

            "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP;

            "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP;

            #SSM.S.c1.start :=

            "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P04".V406.FB_WP AND "DI OUT P04".G420C.DRV.Support.LampON AND "DI OUT P04".V402.FB_WP

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P03".V301.FB_WP AND "DI OUT P03".V305.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done AND "DI OUT P04".M402.DRV.LampHP THEN

            #SSM.S.stepd := TRUE;

        END_IF;

       

    11: // V107,M101,M401. V406,G420C,V409,V105,M401,G120C,M301,V301,V305,TT302 - Emptying SBT1 + Resume bypass circular flow 10sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 100;

        ELSE // Assign actors pre-setting

            "DI OUT P01".V107.VLV_O.CmdExe_WP := "HMI KEY".P01.V107.F12_Enable_WP AND "E01 LS102 low";

            "DI OUT P01".M101.DRV.CmdExe_WP := "HMI KEY".P01.M101.F12_Enable_WP AND "E01 LS102 low";

            "DI OUT P04".V406.VLV_O.CmdExe_WP := "HMI KEY".P04.V406.F12_Enable_WP;

            "DI OUT P04".V409.VLV_O.CmdExe_WP := "HMI KEY".P04.V409.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P01".V105.VLV_O.CmdExe_WP := "HMI KEY".P01.V105.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP;

            "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP;

            "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP;

            #SSM.S.c1.start := "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P01".V107.FB_HP AND "DI OUT P01".M101.DRV.LampHP

            AND "DI OUT P04".V406.FB_WP AND "DI OUT P04".G420C.DRV.Support.LampON

            AND "DI OUT P04".V409.FB_WP AND "DI OUT P01".V105.FB_WP

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P03".V301.FB_WP AND "DI OUT P03".V305.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done AND "DI OUT P01".V107.FB_HP AND "DI OUT P01".M101.DRV.LampHP AND "DI OUT P04".V409.FB_HP AND "DI OUT P01".V105.FB_HP THEN

            #SSM.S.stepd := TRUE;

        END_IF;

       

    12: // V406,G420C,V402,M401,V101,G120C,M301,V301,V305,TT302 - Resume heating circular flow 10sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 100;

        ELSE // Assign actors pre-setting

            "DI OUT P04".V406.VLV_O.CmdExe_WP := "HMI KEY".P04.V406.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P04".V402.VLV_O.CmdExe_WP := "HMI KEY".P04.V402.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".V301.VLV_O.CmdExe_WP := "HMI KEY".P03.V301.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP AND NOT #SSM.S.c1.done;

            #SSM.S.c1.start :=

            "HMI KEY".Message.TT302_Medium_Temperature_reached AND #SSM.S.stepllo

            AND "DI OUT P04".V406.FB_WP AND "DI OUT P04".V402.FB_WP AND "DI OUT P04".G420C.DRV.Support.LampON

            AND "DI OUT P03".M301.DRV.LampWP AND "DI OUT P03".V301.FB_WP AND "DI OUT P03".V305.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done

            AND "DI OUT P04".V406.FB_HP AND "DI OUT P04".M402.DRV.LampHP

            AND "DI OUT P04".V402.FB_HP AND "DI OUT P03".M301.DRV.LampHP

            AND "DI OUT P03".V301.FB_HP AND "DI OUT P03".V305.FB_HP AND "DI OUT P04".G420C.DRV.Support.LampOFF THEN

            "DI OUT P04".G420C.DRV.Support.SetVelo := 0.0;

            #SSM.S.stepd := TRUE;

        END_IF;

       

    13: // V107,M101,M401,V101,G120C,V102,V104 - CIP SBT1 300sec

        IF #SSM.S.stepfc THEN

            #SSM.S.c1.set := 300;

        ELSE // Assign actors pre-setting

            "DI OUT P01".V107.VLV_O.CmdExe_WP := "HMI KEY".P01.V107.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P01".M101.DRV.CmdExe_WP := "HMI KEY".P01.M101.F12_Enable_WP AND NOT #SSM.S.c1.done;

            "DI OUT P01".V102.VLV_O.CmdExe_WP := "HMI KEY".P01.V102.F12_Enable_WP;

            "DI OUT P01".V104.VLV_O.CmdExe_WP := "HMI KEY".P01.V104.F12_Enable_WP AND NOT #SSM.S.c1.done;

            #SSM.S.c1.start := #SSM.S.stepllo

            AND "DI OUT P01".V107.FB_WP AND "DI OUT P01".M101.DRV.LampWP

            AND "DI OUT P01".V102.FB_WP AND "DI OUT P01".V104.FB_WP;

            "HMI KEY".Message.Temperature_Actual_Hold_Time := #SSM.S.c1.act;

        END_IF;

        // Waiting for step conditions to be met

        IF #SSM.S.c1.done

            AND "DI OUT P01".V107.FB_HP AND "DI OUT P01".M101.DRV.LampHP AND "DI OUT P01".V104.FB_HP THEN

            #SSM.S.stepd := TRUE;

        END_IF;

       

    14: // M401,V101,G120C,V102,V104,V108,LS102+LS404 - Emptying SBT1 + PST (Primary Settling Tank)

        "DI OUT P01".V102.VLV_O.CmdExe_WP := "HMI KEY".P01.V102.F12_Enable_WP AND "E01 LS102 low";

        "DI OUT P01".V104.VLV_O.CmdExe_WP := "HMI KEY".P01.V104.F12_Enable_WP AND "E01 LS102 low";

        "DI OUT P01".V108.VLV_O.CmdExe_WP := "HMI KEY".P01.V108.F12_Enable_WP AND "E01 LS102 low";

        // Waiting for step conditions to be met

        IF NOT ("E01 LS102 low" OR "E04 LS404 low") AND "DI OUT P01".V102.FB_HP AND "DI OUT P01".V104.FB_HP AND "DI OUT P01".V108.FB_HP THEN

            #SSM.S.stepd := TRUE;

            "DI OUT P01".G120C.DRV.Support.SetVelo := 0.0;

        END_IF;

       

    15: // V202,V204,G220C,V205,V404,V305,V410,V408,LS202,L301,LS404 - Emptying SBT2 + RFTET (return flow temperature expansion tank)

        "DI OUT P02".V202.VLV_O.CmdExe_WP := "HMI KEY".P02.V202.F12_Enable_WP AND "E02 LS202 low";

        "DI OUT P02".V204.VLV_O.CmdExe_WP := "HMI KEY".P02.V204.F12_Enable_WP AND "E02 LS202 low";

        "DI OUT P02".G220C.DRV.Support.Cmd_MovJogWP := "HMI KEY".P02.G220C.F12_Enable_WP;

        "DI OUT P02".G220C.DRV.Support.SetVelo := 120.0; // rpm

        "DI OUT P02".V205.VLV_O.CmdExe_WP := "HMI KEY".P02.V205.F12_Enable_WP AND "E02 LS202 low";

        "DI OUT P04".V404.VLV_O.CmdExe_WP := "HMI KEY".P04.V404.F12_Enable_WP AND "E02 LS202 low";

        "DI OUT P03".V305.VLV_O.CmdExe_WP := "HMI KEY".P03.V305.F12_Enable_WP AND "E03 LS301 low";

        "DI OUT P04".V408.VLV_O.CmdExe_WP := "HMI KEY".P04.V408.F12_Enable_WP;

        "DI OUT P04".V410.VLV_O.CmdExe_WP := "HMI KEY".P04.V410.F12_Enable_WP AND ("E03 LS301 low" OR "E02 LS202 low");

        // Waiting for step conditions to be met

        IF NOT #SSM.S.DlyOff.Q

            AND "DI OUT P02".V202.FB_HP AND "DI OUT P02".V204.FB_HP

            AND "DI OUT P02".G220C.DRV.Support.LampOFF AND "DI OUT P02".V205.FB_HP

            AND "DI OUT P04".V404.FB_HP AND "DI OUT P03".V305.FB_HP AND "DI OUT P04".V410.FB_HP AND "DI OUT P04".V408.FB_WP THEN

            "DI OUT P02".G220C.DRV.Support.SetVelo := 0.0; // rpm

            "HMI KEY".Message.CIP_with_Lye_Complete := TRUE;

            "DI MAIN GLB".SEQ200.Support.SEQ240_Start := FALSE;

        END_IF;

END_CASE;