Obsidean_VM/04-SIDEL/06 - E5.007363 - Modifica O.../Source/source/CIPLocal_ProgStepUp.md

2.3 KiB

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