Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SEQ226 GLB Production

 

 

 

Network 1: Define SSM last step

#SSM(LAST_STEP := 1);

 

 

 

Network 2: Assign actors required state with or without hold

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

#tmp_llo_lic402_min := "HMI KEY".SYS.GLB.SliderControl > "HMI KEY".SetPoint.LIC402_Level_PST_min AND #SSM.S.stepllo;

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

"DI OUT P01".M101.DRV.CmdExe_WP := "HMI KEY".P01.M101.F12_Enable_WP AND NOT #SEQ500.Product_flow_under_heated AND #SSM.S.stepllo;

"DI OUT P03".M301.DRV.CmdExe_WP := "HMI KEY".P03.M301.F12_Enable_WP AND "DI OUT P01".G120C.DRV.Support.LampON AND #SSM.S.stepllo;

"DI OUT P03".G320C.DRV.Support.Cmd_MovAbso := "HMI KEY".P03.G320C.F12_Enable_WP AND #SSM.S.stepllo;

"DI OUT P04".M401.DRV.CmdExe_WP := "HMI KEY".P04.M401.F12_Enable_WP AND #tmp_llo_lic402_min AND #SSM.S.stepllo;

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

"DI OUT P01".V107.VLV_O.CmdExe_WP := "HMI KEY".P01.V107.F12_Enable_WP AND NOT (#SEQ500.Product_flow_under_heated OR #SSM.S.step0);

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

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

 

 

 

Network 3: CASE-Function correspond to actual SSM

CASE #SSM.S.stepact OF

    0: // Waiting for sequencer to start

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

       

    1: // Assign drivers velocity

        IF #SSM.S.DlyOff.Q THEN

            IF "DI OUT P01".G120C.DRV.Support.SetVelo < "HMI KEY".SetPoint.G120C_Product_Inlet_Filler_min THEN

                "DI OUT P01".G120C.DRV.Support.SetVelo := #SEQ302.G120C_Product_Inlet_RPM := "HMI KEY".SetPoint.G120C_Product_Inlet_Filler_min;

            END_IF;

            "DI OUT P01".G120C.DRV.Support.SetVelo := #SEQ302.G120C_Product_Inlet_RPM;

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

            // Assign actors pre-setting

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

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

            RETURN;

        ELSE

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

            "DI OUT P03".V307.Setpoint := #SEQ500.Set_Point_Temperature * "HMI KEY".SetPoint.V307_Steam_Regulating_Factor;

            // Calculate required temperature

            #SEQ500.SSM.S.steph := "DI MAIN GLB".SEQ200.SEQ226_GLB.SSM.S.steph OR NOT "DI OUT P01".G120C.DRV.Support.Cmd_MovJogWP;

            #SEQ500.SSM.S.steps := "DI MAIN GLB".SEQ200.Support.SEQ226_Start AND NOT "DI MAIN GLB".P00.TOF_CmpltMaOFF_Pulse.Q;

            #SEQ500();

            // G120C Filling SBT2 with product set value RPM

            IF #SEQ302.G120C_Product_Inlet_RPM * 1.5 < "HMI KEY".SetPoint.G120C_Product_Inlet_Filler_max THEN

                "DI OUT P01".G120C.DRV.Support.SetVelo := #SEQ302.G120C_Product_Inlet_RPM;

            END_IF;

        END_IF;

        // Calculation flow capacity SBT2 (Sterile Buffer Tank)

        #SEQ302.SSM.S.steph := "DI MAIN GLB".SEQ200.SEQ226_GLB.SSM.S.steph OR NOT "DI OUT P01".G120C.DRV.Support.Cmd_MovJogWP;

        #SEQ302.SSM.S.steps := "DI MAIN GLB".SEQ200.Support.SEQ226_Start AND NOT "DI MAIN GLB".P00.TOF_CmpltMaOFF_Pulse.Q;

        #SEQ302();

        // Pressure maintenance in SBT1 and SBT2

        "HMI KEY".Execute.PT101_Pressure_Maintenace_SBT1 :=

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

        // Query results to show message on HMI

        "HMI KEY".Message.Production_With_Filler_Running :=

        "HMI KEY".Message.TT302_Medium_Temperature_reached

        AND "HMI KEY".Message.PT201_Pressure_Maintenance_reached

        AND "HMI KEY".Message.PT101_Pressure_Maintenance_reached

        AND NOT (#SEQ500.Product_flow_under_heated OR #SEQ500.Product_flow_over_heated);

        // Waiting for step conditions to be met

        IF NOT ("E01 LS102 low" OR "E04 LS404 low") OR #SEQ500.Product_flow_under_heated OR #SEQ500.Product_flow_over_heated THEN

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

        END_IF;

END_CASE;