```pascal FUNCTION "CIPLocal_ProgStepUp" : Void { S7_Optimized_Access := 'FALSE' } VERSION : 0.0 BEGIN IF "CIP_Program_Variables".General_Data.ActualSimpleNum < "CIP_Program_Variables".General_Data.CIPMaxSimpleNum THEN IF "CIP_Program_Variables".General_Data.ActualStepNum < "CIP_Program_Variables".General_Data.CIPMaxStepNum THEN "CIP_Program_Variables".General_Data.ActualStepNum := "CIP_Program_Variables".General_Data.ActualStepNum + 1 ; ELSIF "CIP_Program_Variables".General_Data.ActualStepNum = "CIP_Program_Variables".General_Data.CIPMaxStepNum THEN "CIP_Program_Variables".General_Data.ActualSimpleNum := "CIP_Program_Variables".General_Data.ActualSimpleNum + 1 ; "CIP_Program_Variables".General_Data.ActualStepNum := 1 ; "CIP_Program_Variables".General_Data.mStepTotalActualTime := 0 ; END_IF ; ELSIF "CIP_Program_Variables".General_Data.ActualSimpleNum = "CIP_Program_Variables".General_Data.CIPMaxSimpleNum THEN IF "CIP_Program_Variables".General_Data.ActualStepNum < "CIP_Program_Variables".General_Data.CIPMaxStepNum THEN "CIP_Program_Variables".General_Data.ActualStepNum := "CIP_Program_Variables".General_Data.ActualStepNum + 1 ; ELSIF "CIP_Program_Variables".General_Data.ActualStepNum = "CIP_Program_Variables".General_Data.CIPMaxStepNum THEN IF "CIP_Program_Variables".General_Data.mStepTimeValue = 0 OR ("CIP_Program_Variables".General_Data.mStepTimeValue <= "CIP_Program_Variables".General_Data.StepActualTime) THEN "CIP_Program_Variables".Status.Completed := TRUE ; "CIP_Program_Variables".mCIP_ActualStep := "CIP_Program_Variables".mCIP_StepEmpty ; END_IF ; END_IF ; END_IF ; IF "CIP_Program_Variables".Status.Inizialized THEN "CIP_Program_Variables".Status.Inizialized := FALSE ; END_IF ; IF "CIP_Program_Variables".General_Data.mStepTimeValue > 0 AND "HMI_Local_CIP_Variables".Cip_Commands._ProgStepUp THEN "CIP_Program_Variables".General_Data.TotalElapsedTime := "CIP_Program_Variables".General_Data.TotalElapsedTime + LIMIT(MN :=0, IN:=("CIP_Program_Variables".General_Data.mStepTimeValue - "CIP_Program_Variables".General_Data.StepActualTime), MX:="CIP_Program_Variables".General_Data.mStepTimeValue) ; END_IF ; "CIP_Program_Variables".General_Data.StepActualTime := 0 ; END_FUNCTION ```