```pascal FUNCTION "CIPLocal_ProgStepDown" : Void { S7_Optimized_Access := 'FALSE' } VERSION : 0.0 BEGIN IF "CIP_Program_Variables".General_Data.ActualSimpleNum >= 1 THEN IF "CIP_Program_Variables".General_Data.ActualStepNum > 1 THEN IF "CIP_Program_Variables".General_Data.StepActualTime <= 0 THEN "CIP_Program_Variables".General_Data.ActualStepNum := "CIP_Program_Variables".General_Data.ActualStepNum - 1 ; END_IF ; ELSIF "CIP_Program_Variables".General_Data.ActualSimpleNum > 1 THEN "CIP_Program_Variables".General_Data.ActualSimpleNum := "CIP_Program_Variables".General_Data.ActualSimpleNum - 1 ; "CIP_Program_Variables".General_Data.ActualStepNum := "CIP_Program_Variables".General_Data.CIPMaxStepNum ; "CIP_Program_Variables".General_Data.StepActualTime := 0 ; END_IF ; END_IF ; IF "CIP_Program_Variables".General_Data.ActualSimpleNum = 1 AND "CIP_Program_Variables".General_Data.ActualStepNum = 1 THEN "CIP_Program_Variables".Status.Inizialized := TRUE ; ELSE "CIP_Program_Variables".Status.Inizialized := FALSE ; END_IF ; IF "CIP_Program_Variables".Status.Completed THEN "CIP_Program_Variables".Status.Completed := FALSE ; END_IF ; END_FUNCTION ```