Загрузка данных



    // ФАЗА 3: Горизонтальное перемещение к источнику
//----------------------------------------------------------------------------------------------------------
     IF aoPhase = 3 THEN
        Horizmove(getorput := TRUE);
        IF F_trig_xdrivedone.Q OR 
           (TargetVars.TargetPosition.dintTargetPosition >= Feedbackposition.dintFeedbackPosition - 15 AND 
            TargetVars.TargetPosition.dintTargetPosition <= Feedbackposition.dintFeedbackPosition + 15) THEN
            aoPhase := 4;
            horizCmdActive := FALSE;
            gvlDriveInterface.xCmdTrigger := FALSE;			
        END_IF;
    END_IF;

    // ФАЗА 4: Подъём
//----------------------------------------------------------------------------------------------------------
    IF aoPhase = 4 THEN
        IF LiftUp() THEN
            aoPhase := 5;
            horizCmdActive := TRUE;
        END_IF
    END_IF

    // ФАЗА 5: Закрывание поддона
//----------------------------------------------------------------------------------------------------------
    IF aoPhase = 5 THEN
		IF gvl.aoPosition = 0 OR gvl.aoPosition =1 OR gvl.aoPosition = 16 OR gvl.aoPosition =13 OR gvl.aoPosition =8 OR (gvl.aoPosition >= 101 AND gvl.aoPosition <= 103) THEN aoPhase := 6;
		ELSE
			IF Trayclose() THEN
				trayState := 6;
				aoPhase := 6;
				horizCmdActive := TRUE;
			END_IF
		END_IF
    END_IF

    // ФАЗА 6: Горизонтальное перемещение к приёмнику
//----------------------------------------------------------------------------------------------------------
    IF aoPhase = 6 THEN
        Horizmove(getorput := FALSE);
        IF F_trig_xdrivedone.Q OR 
           (TargetVars.TargetPosition.dintTargetPosition >= Feedbackposition.dintFeedbackPosition - 15 AND 
            TargetVars.TargetPosition.dintTargetPosition <= Feedbackposition.dintFeedbackPosition + 15) THEN
            aoPhase := 7;
            horizCmdActive := FALSE;
            gvlDriveInterface.xCmdTrigger := FALSE;
        END_IF
    END_IF

    // ФАЗА 7: Поддон открыть
//----------------------------------------------------------------------------------------------------------
    IF aoPhase = 7 THEN
        IF Trayopen() THEN
            aoPhase := 8;
        END_IF
    END_IF

    // ФАЗА 8: Опускание и завершение
//----------------------------------------------------------------------------------------------------------
    IF aoPhase = 8 THEN
        IF LiftDown() THEN
			gvl.transitTimeMeasured := time_to_real(gvl.sysTime - moveStartTime) / 1000.0;   // переводим в секунды
        	IF gvl.transitTimeMeasured < 60 THEN 
				UpdateTransitTime(srcPos := gvl.aoJobSource, dstPos := gvl.aoJobDest, measured := gvl.transitTimeMeasured);
			END_IF
            OnMoveComplete();
            gvl.aoBusy := FALSE;
            aoPhase := 0;
            gvl.candidate := 0;
        END_IF
    END_IF
	   
END_IF


END_IF