bool PosController::checkAxisDown( int CurAxis ) { int ret; ret = d1000_check_done(CurAxis); if (ERR_OK == ret) { //if (ifMsg) HT_Public.Msg("对不起," + HT_Public.AxisName[CurAxis] + " 轴正在运行中!"); return false; } return true; }
int Action::SeconMotorBackToOrigin() { d1000_home_move(SECOND_MOTOR, 50, ini->m_MotorSpinSpeed1/5, 10); if (d1000_check_done(SECOND_MOTOR)) { d1000_start_t_move(SECOND_MOTOR, -2000, ini->m_MotorSpinSpeed1 / 40, ini->m_MotorSpinSpeed1 / 10, 50); while (!d1000_check_done(SECOND_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } d1000_home_move(SECOND_MOTOR, ini->m_MotorSpinSpeed1/10, ini->m_MotorSpinSpeed1/5, 10); while (!d1000_check_done(SECOND_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } } else { while (!d1000_check_done(SECOND_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } } Sleep(100); d1000_start_t_move(SECOND_MOTOR, ini->m_MotorCompenstate1, ini->m_MotorSpinSpeed / 100, ini->m_MotorSpinSpeed / 10, 10); while (!d1000_check_done(SECOND_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } d1000_set_command_pos(SECOND_MOTOR, 0); return 1; }
bool Action::WaitMotorTimeout(short No, DWORD time) { DWORD startTick = GetTickCount(); while (!d1000_check_done(No)) { if ((GetTickCount() - startTick) > time) { return false; } Sleep(1); } return true; }
int Action::FisrtMotorBackToOrigin() { d1000_home_move(0, 50, -ini->m_MotorSpinSpeed / 10, 10); if (d1000_check_done(FIRST_MOTOR)) { d1000_start_t_move(FIRST_MOTOR, ini->m_MotorSpinWaves, ini->m_MotorSpinSpeed / 100, ini->m_MotorSpinSpeed / 10, 10); while (!d1000_check_done(FIRST_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } d1000_home_move(0, 50, ini->m_MotorSpinSpeed / 10, 10); while (!d1000_check_done(FIRST_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } } else { while (!d1000_check_done(FIRST_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } } Sleep(100); d1000_start_t_move(FIRST_MOTOR, ini->m_MotorCompenstate, ini->m_MotorSpinSpeed / 100, ini->m_MotorSpinSpeed / 10, 10); while (!d1000_check_done(FIRST_MOTOR)) { if (::WaitForSingleObject(g_evtEStop.evt, 0) == WAIT_OBJECT_0) break; continue; } d1000_set_command_pos(0,0); return 1; }