// Block Type: FC // Block Number: 800 // Original Network Languages: SCL, LAD FUNCTION "FormatManagementQE1_G" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP CalculatedBottlesRemainigToFill : DInt; END_VAR CONSTANT FormatChange_Disabled : Int := 0; FormatChange_Enabled : Int := 1; FormatChange_Emptying : Int := 2; FormatChange_InProgress : Int := 3; FormatChange_Done : Int := 4; FormatChange_NotNecessary : Int := 5; FormatChange_Error : Int := 6; PopUp_LineReady : Int := 2000; PopUp_EmptyStart : Int := 2001; PopUp_EmptyEnd : Int := 2002; END_CONSTANT #_3s : Bool; // Auto-generated temporary #TON_INSTANCE_31 : Bool; // Auto-generated temporary BEGIN // Network 1: HMI Selector for "Local Format Change" or "Remote Format Change" (Original Language: SCL) "Rt_Enable_RemoteFormatChange"/*_ERR_NO_CALLINFO_*/; IF NOT "FormatManagementQE1_D".RemoteSelector THEN "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSIF "Rt_Enable_RemoteFormatChange".Q THEN "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; // Network 2: For test (Original Language: SCL) "CalculatedBottlesRemainigToFill" := "ComSV".TL25_WriteToSv.FromHenkel.SignalExchange.Filler.CalculatedBottlesRemainingToFill; // Network 3: STATE MACHINE - REMOTE FORMAT CHANGE MANAGEMENT (Original Language: SCL) // // IF "FormatManagementQE1_D".RemoteSelector THEN "FormatManagementQE1_D".RemoteSelector := FALSE; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; CASE "FormatManagementQE1_D".FormatChangeCycle OF /*_ERR_NO_SYMBOL_IN_LocalConstant_*/: // IF "FormatManagementQE1_D".RemoteSelector THEN /*_ERR_Scope_Address_*/ := 0; /*_ERR_Scope_Address_*/ := 0; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; /*_ERR_NO_SYMBOL_IN_LocalConstant_*/: // IF ("CalculatedBottlesRemainigToFill" = 0) THEN // // "ComSV".TL25_WriteToSv.ToAutefa.dw0.x[1] := TRUE; IF ("DB HMI Recipe Bottle".number_set_data = "FormatManagementQE1_D".NextSku.ProdFamily) AND ("FormatManagementQE1_D".NextSku.ProdFamily <> 0) AND ("FormatManagementQE1_D".AB_IDH_BTL = "FormatManagementQE1_D".NB_IDH_BTL) AND ("DB COM Signal Merger".Input.ActualBottleType = "DB HMI Recipe Bottle".number_set_data) AND ("DB COM Signal Guides".From_Guides.ActualBottleType = "DB HMI Recipe Bottle".number_set_data) THEN "FormatManagementQE1_D".HMI_PopUp.ShowPopUp := TRUE; "FormatManagementQE1_D".HMI_PopUp.PageNumber := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSIF (("DB HMI Recipe Bottle".number_set_data <> "FormatManagementQE1_D".NextSku.ProdFamily)OR("FormatManagementQE1_D".AB_IDH_BTL <> "FormatManagementQE1_D".NB_IDH_BTL)) AND ("FormatManagementQE1_D".NextSku.ProdFamily <> 0) THEN "FormatManagementQE1_D".HMI_PopUp.ShowPopUp := TRUE; "FormatManagementQE1_D".HMI_PopUp.PageNumber := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; END_IF; IF ("CalculatedBottlesRemainigToFill" > 0) AND // ("DB HMI Recipe Bottle".number_set_data = "ComSV".TL25_ReadFromSv.FromAlpla.ActualSku.ProdFamily) AND NOT "ComSV".TL25_WriteToSv.FromHenkel.STW.di0.x[0] THEN "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; /*_ERR_NO_SYMBOL_IN_LocalConstant_*/: // IF "FormatManagementQE1_D".HMI_PopUp.Yes AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) THEN "FormatManagementQE1_D".EmptyingStart := TRUE; "FormatManagementQE1_D".HMI_PopUp.ShowPopUp := TRUE; "FormatManagementQE1_D".HMI_PopUp.PageNumber := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSIF "FormatManagementQE1_D".HMI_PopUp.No AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) THEN "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; IF "ComSV".TL25_WriteToSv.ToSV.STW.QE1.MachineEmpty AND "ComSV".TL25_WriteToSv.ToSV.STW.Merger.MachineEmpty THEN // "FormatManagementQE1_D".EmptyingStart := FALSE; END_IF; IF NOT "FormatManagementQE1_D".EmptyingStart THEN IF "FormatManagementQE1_D".HMI_PopUp.Yes AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) AND "ComSV".TL25_WriteToSv.FromHenkel.STW.di0.x[0] THEN "FormatManagementQE1_D".IN_EndFormatManagement := FALSE; "FormatManagementQE1_D".FormatChangeQE := FALSE; IF ("DB HMI Recipe Bottle".number_set_data = "FormatManagementQE1_D".NextSku.ProdFamily) THEN "FormatManagementQE1_D".HMI_PopUp.ShowPopUp := TRUE; "FormatManagementQE1_D".HMI_PopUp.PageNumber := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSE "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; ELSIF "FormatManagementQE1_D".HMI_PopUp.No AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) THEN "FormatManagementQE1_D".EmptyingStart := TRUE; END_IF; END_IF; /*_ERR_NO_SYMBOL_IN_LocalConstant_*/: // IF NOT "FormatManagementQE1_D".EndFormatManagement.Q THEN "FormatManagementQE1_D".IN_EndFormatManagement := TRUE; END_IF; IF ("DB HMI".DBW_36 = 4) THEN "FormatManagementQE1_D".FormatChangeQE := TRUE; ELSIF ("DB HMI".DBW_36 = 12) THEN "FormatManagementQE1_D".LoadRecipeError := TRUE; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; IF "FormatManagementQE1_D".EndFormatManagement.Q AND "FormatManagementQE1_D".FormatChangeQE THEN IF ("DB COM Signal Merger".Input.ActualBottleType = "DB HMI Recipe Bottle".number_set_data) AND "Ap_LifterGuideInPositon" THEN // "FormatManagementQE1_D".HMI_PopUp.ShowPopUp := TRUE; "FormatManagementQE1_D".FormatChangeQE := FALSE; "FormatManagementQE1_D".HMI_PopUp.PageNumber := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSIF NOT "DB COM Signal Merger".Input.StatusWord.X5 OR NOT "DB COM Signal Guides".From_Guides.StatusWord.Bit_1 ChangeOverInProgress THEN "FormatManagementQE1_D".LoadRecipeErrorMachine := TRUE; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; END_IF; IF "FormatManagementQE1_D".HMI_PopUp.Yes AND NOT "FormatManagementQE1_D".HMI_PopUp.ShowPopUp AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) THEN "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; "ComSV".TL25_WriteToSv.ToAlpla.BatchLast := "FormatManagementQE1_D".BatchLast; // "FormatManagementQE1_D".IN_EndFormatManagement := FALSE; ELSIF "FormatManagementQE1_D".HMI_PopUp.No AND NOT "FormatManagementQE1_D".HMI_PopUp.ShowPopUp AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) THEN "FormatManagementQE1_D".IN_EndFormatManagement := FALSE; END_IF; /*_ERR_NO_SYMBOL_IN_LocalConstant_*/: // "Rt_RestartRemoteFormatChange"/*_ERR_NO_CALLINFO_*/; IF ("CalculatedBottlesRemainigToFill" > 0) AND "Rt_RestartRemoteFormatChange".Q AND "ComSV".TL25_WriteToSv.FromHenkel.STW.di0.x[2] THEN // "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; /*_ERR_NO_SYMBOL_IN_LocalConstant_*/: // IF "FormatManagementQE1_D".HMI_PopUp.Yes AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) THEN "ComSV".TL25_WriteToSv.ToAlpla.BatchLast := "FormatManagementQE1_D".BatchLast; // "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSIF "FormatManagementQE1_D".HMI_PopUp.No AND ("DB HMI".DBW_2 = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) THEN "FormatManagementQE1_D".RemoteSelector := FALSE; END_IF; /*_ERR_NO_SYMBOL_IN_LocalConstant_*/: // IF "DB TT Run".TT_Run.IN_PB_Reset THEN IF "FormatManagementQE1_D".LoadRecipeError THEN "FormatManagementQE1_D".LoadRecipeError := FALSE; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSIF "FormatManagementQE1_D".LoadRecipeErrorMachine AND ("DB COM Signal Merger".Input.ActualBottleType = "DB HMI Recipe Bottle".number_set_data) AND ("DB COM Signal Guides".From_Guides.ActualBottleType = "DB HMI Recipe Bottle".number_set_data) THEN "FormatManagementQE1_D".LoadRecipeErrorMachine := FALSE; "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; ELSIF "FormatManagementQE1_D".LoadRecipeErrorMachine AND ("DB COM Signal Merger".Input.ActualBottleType <> "DB HMI Recipe Bottle".number_set_data) OR ("DB COM Signal Guides".From_Guides.ActualBottleType <> "DB HMI Recipe Bottle".number_set_data) THEN "FormatManagementQE1_D".FormatChangeCycle := /*_ERR_NO_SYMBOL_IN_LocalConstant_*/; END_IF; END_IF; END_CASE; "FormatManagementQE1_D".EndFormatManagement./*_ERR_NO_CALLINFO_*/; // "DB TT Alarm".A371_23_0 := "FormatManagementQE1_D".LoadRecipeError; "DB TT Alarm".A371_23_1 := "FormatManagementQE1_D".LoadRecipeErrorMachine; // Network 4: Format Management Information / Batch Last (Original Language: SCL) IF ("CalculatedBottlesRemainigToFill" > 0) AND ("FormatManagementQE1_D".FormatChangeCycle = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) AND NOT "ComSV".TL25_WriteToSv.FromHenkel.STW.di0.x[0] THEN "FormatManagementQE1_D".ABBottlesNumber := "ComSV".TL25_WriteToSv.FromHenkel.ABBottlesNumber; "FormatManagementQE1_D".NBBottlesNumber := "ComSV".TL25_WriteToSv.FromHenkel.NBBottlesNumber; "FormatManagementQE1_D".AB_IDH_BTL := "ComSV".TL25_WriteToSv.FromHenkel.AB_IDH_BTL; "FormatManagementQE1_D".NB_IDH_BTL := "ComSV".TL25_WriteToSv.FromHenkel.NB_IDH_BTL; "FormatManagementQE1_D".PO_NUMBER := "ComSV".TL25_WriteToSv.FromHenkel.PO_NUMBER; "FormatManagementQE1_D".PO_NUMBER_NEXT := "ComSV".TL25_WriteToSv.FromHenkel.PO_NUMBER_NEXT; "FormatManagementQE1_D".NextSku := "ComSV".TL25_ReadFromSv.FromAlpla.NextSku; "FormatManagementQE1_D".ActualSku := "ComSV".TL25_ReadFromSv.FromAlpla.ActualSku; // "FormatManagementQE1_D".BatchLast.CustomArticleNum := "ComSV".TL25_ReadFromSv.FromAlpla.ActualSku.CustomArticleNum; "FormatManagementQE1_D".BatchLast.BottlesNumber := "ComSV".TL25_WriteToSv.FromHenkel.ABBottlesNumber; /*_ERR_NO_CALLINFO_*/; "FormatManagementQE1_D".BatchLast.CounterSideGripDosingBelt := "ComSV".TL25_WriteToSv.ToHenkel.Counter.SideGripDosingBelt; "FormatManagementQE1_D".BatchLast.CounterInfeedFiller := "ComSV".TL25_WriteToSv.ToHenkel.Counter.InfeedFiller; ELSIF ("FormatManagementQE1_D".FormatChangeCycle = /*_ERR_NO_SYMBOL_IN_LocalConstant_*/) AND ("CalculatedBottlesRemainigToFill" > 0) THEN "FormatManagementQE1_D".ABBottlesNumber := "ComSV".TL25_WriteToSv.FromHenkel.ABBottlesNumber; "FormatManagementQE1_D".NBBottlesNumber := "ComSV".TL25_WriteToSv.FromHenkel.NBBottlesNumber; "FormatManagementQE1_D".AB_IDH_BTL := "ComSV".TL25_WriteToSv.FromHenkel.AB_IDH_BTL; "FormatManagementQE1_D".NB_IDH_BTL := "ComSV".TL25_WriteToSv.FromHenkel.NB_IDH_BTL; "FormatManagementQE1_D".PO_NUMBER := "ComSV".TL25_WriteToSv.FromHenkel.PO_NUMBER; "FormatManagementQE1_D".PO_NUMBER_NEXT := "ComSV".TL25_WriteToSv.FromHenkel.PO_NUMBER_NEXT; "FormatManagementQE1_D".NextSku := "ComSV".TL25_ReadFromSv.FromAlpla.NextSku; "FormatManagementQE1_D".ActualSku := "ComSV".TL25_ReadFromSv.FromAlpla.ActualSku; // "FormatManagementQE1_D".BatchLast.CustomArticleNum := "ComSV".TL25_ReadFromSv.FromAlpla.ActualSku.CustomArticleNum; "FormatManagementQE1_D".BatchLast.BottlesNumber := "ComSV".TL25_WriteToSv.FromHenkel.ABBottlesNumber; /*_ERR_NO_CALLINFO_*/; "FormatManagementQE1_D".BatchLast.CounterSideGripDosingBelt := "ComSV".TL25_WriteToSv.ToHenkel.Counter.SideGripDosingBelt; "FormatManagementQE1_D".BatchLast.CounterInfeedFiller := "ComSV".TL25_WriteToSv.ToHenkel.Counter.InfeedFiller; END_IF; // Network 5: EndFormatChangeLine (Original Language: LAD) #TON_INSTANCE_31(IN := "ComSV"."TL25_WriteToSv"."ToSV"."STW"."QE1"."ChangeoverDone" AND "ComSV"."TL25_WriteToSv"."ToSV"."STW"."QE2"."ChangeoverDone" AND Eq("DB COM Signal Guides"."From_Guides"."ActualBottleType", "DB HMI Recipe Bottle"."number_set_data"), PT := T#3s); // TODO: Declarar #TON_INSTANCE_31 : TON; // Network 6: Format Management Line (Original Language: SCL) // // // "FormatManagementQE1_D".OnsR_EndFormatChangeLine := "FormatManagementQE1_D".EndFormatChangeLine.Q; IF ("ComSV".TL25_WriteToSv.ToSV.STW.QE1.ChangeoverInProgress OR "ComSV".TL25_WriteToSv.ToSV.STW.QE2.ChangeoverInProgress) AND "ComSV".TL25_ReadFromSv.FromAutefa.dw0.x[24] THEN "ComSV".TL25_WriteToSv.ToHenkel.LineStatus.di0.x[0] := TRUE; ELSE "ComSV".TL25_WriteToSv.ToHenkel.LineStatus.di0.x[0] := FALSE; END_IF; IF ("FormatManagementQE1_D".OnsR_EndFormatChangeLine AND "ComSV".TL25_ReadFromSv.FromAutefa.dw0.x[25] AND NOT "ComSV".TL25_WriteToSv.FromHenkel.STW.di0.x[2]) THEN "ComSV".TL25_WriteToSv.ToHenkel.LineStatus.di0.x[1] := TRUE; "ComSV".TL25_WriteToSv.ToAutefa.dw0.x[1] := FALSE; ELSE "ComSV".TL25_WriteToSv.ToHenkel.LineStatus.di0.x[1] := FALSE; END_IF; // IF "ComSV".TL25_WriteToSv.ToAutefa.dw0.x[1] AND NOT "ComSV".TL25_ReadFromSv.FromAutefa.dw0.x[24] THEN "DB Warnings".W173_03_0 := TRUE; ELSIF "ComSV".TL25_WriteToSv.ToAutefa.dw0.x[1] AND "ComSV".TL25_ReadFromSv.FromAutefa.dw0.x[24] THEN "DB Warnings".W173_03_0 := FALSE; "DB Warnings".W173_03_1 := TRUE; ELSIF "ComSV".TL25_ReadFromSv.FromAutefa.dw0.x[24] THEN "DB Warnings".W173_03_1 := FALSE; END_IF; // Network 7: Load Remote Recipe (Original Language: SCL) "Rt_LoadRemoteRecipe"/*_ERR_NO_CALLINFO_*/; IF "Rt_LoadRemoteRecipe".Q THEN "DB HMI".DBW_36 := 0; "DB HMI".DBW_12 := 2; "DB HMI".DBW_14 := /*_ERR_NO_CALLINFO_*/; "DB HMI".DBW_16 := 0; "DB HMI".DBW_10 := 70; END_IF; IF ("DB HMI".DBW_36 = 4) OR ("DB HMI".DBW_36 = 12) AND ("DB HMI".DBW_10 = 70) THEN "DB HMI".DBW_10 := 0; "DB HMI".DBW_12 := 0; "DB HMI".DBW_14 := 0; "DB HMI".DBW_16 := 0; END_IF; // Network 8: PopUp Remote HMI (Original Language: SCL) "Rt_PopUp_RemoteFormatChange"/*_ERR_NO_CALLINFO_*/; IF "Rt_PopUp_RemoteFormatChange".Q THEN "DB HMI".DBW_12 := "FormatManagementQE1_D".HMI_PopUp.PageNumber; "DB HMI".DBW_14 := 0; "DB HMI".DBW_16 := 0; "DB HMI".DBW_10 := 51; "FormatManagementQE1_D".HMI_PopUp.PageNumber := 0; "FormatManagementQE1_D".HMI_PopUp.ShowPopUp := FALSE; "FormatManagementQE1_D".HMI_PopUp.Yes := FALSE; "FormatManagementQE1_D".HMI_PopUp.No := FALSE; END_IF; IF ("DB HMI".DBW_2 = "FormatManagementQE1_D".HMI_PopUp.PageNumber) AND ("DB HMI".DBW_10 = 51) THEN "DB HMI".DBW_10 := 0; "DB HMI".DBW_12 := 0; "DB HMI".DBW_14 := 0; "DB HMI".DBW_16 := 0; END_IF; END_FUNCTION