|  | @@ -117,6 +117,7 @@ namespace VirgoRT.Devices
 | 
	
		
			
				|  |  |          private readonly int _stopButtonAutoResetTime = 1000;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          private Position _currentTarget = Position.Invalid;
 | 
	
		
			
				|  |  | +        private Position _currentPos = Position.Invalid;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          long _timeout = 10000;
 | 
	
		
			
				|  |  |          private bool _bAlarmReported = false;
 | 
	
	
		
			
				|  | @@ -143,13 +144,13 @@ namespace VirgoRT.Devices
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              get
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                if (_diP1.Value && _diP2.Value == false && _diP3.Value == false)
 | 
	
		
			
				|  |  | +                if (_currentPos == Position.position1 && _diP1.Value && _diP2.Value == false && _diP3.Value == false)
 | 
	
		
			
				|  |  |                      return MovementPosition.Up;
 | 
	
		
			
				|  |  | -                else if (_diP1.Value == false && _diP2.Value && _diP3.Value == false)
 | 
	
		
			
				|  |  | +                else if (_diP1.Value == false && _currentPos == Position.position2 && _diP2.Value && _diP3.Value == false)
 | 
	
		
			
				|  |  |                      return MovementPosition.Middle;
 | 
	
		
			
				|  |  | -                else if (_diP1.Value == false && _diP2.Value == false && _diP3.Value)
 | 
	
		
			
				|  |  | +                else if (_diP1.Value == false && _diP2.Value == false && _currentPos == Position.position3 && _diP3.Value)
 | 
	
		
			
				|  |  |                      return MovementPosition.Down;
 | 
	
		
			
				|  |  | -                else if (_diOrigin.Value)
 | 
	
		
			
				|  |  | +                else if (_currentPos == Position.origin && _diOrigin.Value)
 | 
	
		
			
				|  |  |                      return MovementPosition.Origin;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  return MovementPosition.Unknown;
 | 
	
	
		
			
				|  | @@ -345,6 +346,7 @@ namespace VirgoRT.Devices
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              _currentTarget = position;
 | 
	
		
			
				|  |  | +            _currentPos = position;
 | 
	
		
			
				|  |  |              sw.Restart();
 | 
	
		
			
				|  |  |              switch (position)
 | 
	
		
			
				|  |  |              {
 |