public void BoundaryCheck() { if (HSTMachine.Workcell.HSTSettings.Install.OperationMode == OperationMode.Simulation) { return; } try { double dMoveDownPos = _teachPointRecipe.InputEEPickHeight;//lowest position in operation range if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { Log.Info(this, "InputEE Axis before move position:{0}, Target position:{1}, Acce:{2}, Dece:{3}, Vel:{4}", _InputEndEffectorZAxis.GetActualPosition(), dMoveDownPos, _axesProfile.InputEEZ.Acceleration, _axesProfile.InputEEZ.Deceleration, _axesProfile.InputEEZ.Velocity); } if (!_workcell.IsIgnoreHomeAxisForByPass) { _InputEndEffectorZAxis.MoveAbsolute(_axesProfile.InputEEZ.Acceleration, _axesProfile.InputEEZ.Velocity, dMoveDownPos, _moveTimeout); while (_InputEndEffectorZAxis.GetActualPosition() < dMoveDownPos - 10) { MessageBox.Show(string.Format("{0}: Actual Position not tally with target position after move done", this)); if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { Log.Info(this, "InputEEMoveZAxis. _InputEndEffectorZAxis.GetActualPosition():{0} targetposition:{1}", _InputEndEffectorZAxis.GetActualPosition(), dMoveDownPos); } Thread.Sleep(100); } } if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { Log.Info(this, "InputEE Axis after move position:{0}, Target position:{1}, Acce:{2}, Dece:{3}, Vel:{4}", _InputEndEffectorZAxis.GetActualPosition(), dMoveDownPos, _axesProfile.InputEEZ.Acceleration, _axesProfile.InputEEZ.Deceleration, _axesProfile.InputEEZ.Velocity); } } catch (Exception ex) { HSTException.Throw(HSTErrors.InputHandlerZAxisMoveDownError, ex); } try { double dMoveUpPos = _teachPointRecipe.InputEESafeHeight;//highest position in operation range if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { Log.Info(this, "InputEE Axis before move position:{0}, Target position:{1}, Acce:{2}, Dece:{3}, Vel:{4}", _InputEndEffectorZAxis.GetActualPosition(), dMoveUpPos, _axesProfile.InputEEZ.Acceleration, _axesProfile.InputEEZ.Deceleration, _axesProfile.InputEEZ.Velocity); } if (!_workcell.IsIgnoreHomeAxisForByPass) { _InputEndEffectorZAxis.MoveAbsolute(_axesProfile.InputEEZ.Acceleration, _axesProfile.InputEEZ.Velocity, dMoveUpPos, _moveTimeout); while (_InputEndEffectorZAxis.GetActualPosition() > dMoveUpPos + 10) { MessageBox.Show(string.Format("{0}: Actual Position not tally with target position after move done", this)); if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { Log.Info(this, "InputEE MoveZAxis. _InputEndEffectorZAxis.GetActualPosition():{0} targetposition:{1}", _InputEndEffectorZAxis.GetActualPosition(), dMoveUpPos); } Thread.Sleep(100); } } if (HSTMachine.Workcell.HSTSettings.Install.EnableDebugLog) { Log.Info(this, "InputEE Axis after move position:{0}, Target position:{1}, Acce:{2}, Dece:{3}, Vel:{4}", _InputEndEffectorZAxis.GetActualPosition(), dMoveUpPos, _axesProfile.InputEEZ.Acceleration, _axesProfile.InputEEZ.Deceleration, _axesProfile.InputEEZ.Velocity); } } catch (Exception ex) { HSTException.Throw(HSTErrors.InputHandlerZAxisMoveUpError, ex); } }