|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SEQ220 GLB : Filling sterile buffer tank 1 with untreated product |
|
|
|
Network 1: Define SSM last step #SSM(LAST_STEP := 1); |
|
|
|
Network 2: FIT402 Metering concentrate access to SBT1 #tmp_filling_concentrate_sbt1 := "HMI KEY".SetPoint.FIT401_Filling_SBT1_with_Untreated_Product * "HMI KEY".SetPoint.FIT402_Filling_SBT1_Concentrate_MixingRatio; IF "E04 FIT402 pulse" AND NOT #FIT402_Pulse_REg THEN IF "DI OUT P04".Support.FIT402_Volum_meter >= #tmp_filling_concentrate_sbt1 THEN "HMI KEY".Message.SBT1_Concentrate_Access_done := #Filling_SBT1_with_concentrate_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 #Filling_SBT1_with_concentrate_done; |
|
|
|
Network 3: FIT401 Metering water access to SBT1 #tmp_filling_water_sbt1 := "HMI KEY".SetPoint.FIT401_Filling_SBT1_with_Untreated_Product - #tmp_filling_concentrate_sbt1; IF "E04 FIT401 pulse" AND NOT #FIT401_Pulse_REg THEN IF "DI OUT P04".Support.FIT401_Volum_meter >= #tmp_filling_water_sbt1 THEN "HMI KEY".Message.SBT1_Water_Access_done := #Filling_SBT1_with_water_done := TRUE; ELSE "DI OUT P04".Support.FIT401_Volum_meter := "DI OUT P04".Support.FIT401_Volum_meter + 1.0; END_IF; END_IF; #FIT401_Pulse_REg := "E04 FIT401 pulse" OR #Filling_SBT1_with_water_done; |
|
|
|
Network 4: 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 P04".G420C.DRV.Support.Cmd_MovJogWP := "HMI KEY".P04.G420C.F12_Enable_WP AND NOT #Filling_SBT1_with_water_done 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 P04".M402.DRV.CmdExe_WP := "HMI KEY".P04.M402.F12_Enable_WP AND NOT #Filling_SBT1_with_concentrate_done 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".V102.VLV_O.CmdExe_WP := "HMI KEY".P01.V102.F12_Enable_WP AND NOT #SSM.S.step0; "DI OUT P01".V104.VLV_O.CmdExe_WP := "HMI KEY".P01.V104.F12_Enable_WP AND NOT #SSM.S.step0; "DI OUT P04".V402.VLV_O.CmdExe_WP := "HMI KEY".P04.V402.F12_Enable_WP AND NOT (#SSM.S.step0 OR #Filling_SBT1_with_water_done); "DI OUT P04".V403.VLV_O.CmdExe_WP := "HMI KEY".P04.V403.F12_Enable_WP AND NOT (#SSM.S.step0 OR #Filling_SBT1_with_concentrate_done); "DI OUT P04".V405.VLV_O.CmdExe_WP := "HMI KEY".P04.V405.F12_Enable_WP AND NOT #Filling_SBT1_with_water_done AND #SSM.S.stepllo; "DI OUT P04".V413.VLV_O.CmdExe_WP := "HMI KEY".P04.V413.F12_Enable_WP AND NOT (#SSM.S.step0 OR #Filling_SBT1_with_concentrate_done);; |
|
|
|
Network 5: 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 P04".G420C.DRV.Support.SetVelo < "HMI KEY".SetPoint.G420C_Product_Inlet_PST_min THEN "DI OUT P04".G420C.DRV.Support.SetVelo := #SEQ602.G420C_product_inlet_RPM := "HMI KEY".SetPoint.G420C_Product_Inlet_PST_min; END_IF; "DI OUT P04".G420C.DRV.Support.SetVelo := #SEQ602.G420C_product_inlet_RPM; "DI OUT P01".G120C.DRV.Support.SetVelo := "HMI KEY".SetPoint.G120C_Untreated_Product_SBT1_RPM; RETURN; END_IF; // Calculation flow capacity for G402C IF #SEQ602.G420C_product_inlet_RPM * 1.5 < "HMI KEY".SetPoint.G420C_Product_Inlet_PST_max THEN "DI OUT P04".G420C.DRV.Support.SetVelo := #SEQ602.G420C_product_inlet_RPM; END_IF; // Enable flow capacity for G402C #SEQ602.SSM.S.steph := "DI MAIN GLB".SEQ200.SEQ220_GLB.SSM.S.steph OR NOT "DI OUT P04".G420C.DRV.Support.Cmd_MovJogWP; #SEQ602.SSM.S.steps := "DI MAIN GLB".SEQ200.Support.SEQ220_Start AND NOT "DI MAIN GLB".P00.TOF_CmpltMaOFF_Pulse.Q; #SEQ602(); // Pressure maintenance in SBT1 and SBT2 "HMI KEY".Execute.PT101_Pressure_Maintenace_SBT1 := "HMI KEY".Execute.PT201_Pressure_Maintenace_SBT2 := TRUE; // Waiting for step conditions to be met IF #Filling_SBT1_with_water_done AND #Filling_SBT1_with_concentrate_done AND "HMI KEY".Message.PT101_Pressure_Maintenance_reached AND "HMI KEY".Message.PT201_Pressure_Maintenance_reached AND NOT "E04 LS404 low" THEN "HMI KEY".Message.SBT1_Untreated_Product_Filling_Complete := TRUE; "DI OUT P04".Support.FIT401_Volum_meter := "DI OUT P04".Support.FIT402_Volum_meter := 0.0; #Filling_SBT1_with_concentrate_done := #Filling_SBT1_with_water_done := "DI MAIN GLB".SEQ200.Support.SEQ220_Start := FALSE; END_IF; END_CASE; |
|