Example #1
0
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;
}