#Add_Flag := FALSE;
#Push_Trig(CLK := #Trigger);
IF #Push_Trig.Q THEN
FOR #i := 1 TO 10 DO
IF #Data_Stack[#i] = 0.0 THEN // 堆栈未满,添加至栈尾
#Data_Stack[#i] := #Data;
#Add_Flag := TRUE;
END_IF;
END_FOR;
IF NOT #Add_Flag THEN // 堆栈满
FOR #i := 1 TO 9 DO
#Data_Stack[#i] := #Data_Stack[#i + 1]; // 逐一向前覆盖(栈首被覆盖)
END_FOR;
#Data_Stack[10] := #Data; // 将数据覆盖栈末
END_IF;
END_IF;