添加设置单轴速度
This commit is contained in:
@@ -4545,7 +4545,13 @@ HSI_STATUS HSI_Motion::SpecialMotorMove(short AxisNumber, double Position)
|
||||
}
|
||||
|
||||
//========================IO===================================================
|
||||
HSI_STATUS HSI_Motion::GetDIO(UINT IOChannel, UINT& _Status)
|
||||
/**
|
||||
* \brief
|
||||
* \param IOChannel
|
||||
* \param _Status
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS HSI_Motion::GetDIOOld(UINT IOChannel, UINT& _Status)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
if (g_pHSI_Motion)
|
||||
@@ -4597,7 +4603,63 @@ HSI_STATUS HSI_Motion::GetDIO(UINT IOChannel, UINT& _Status)
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
HSI_STATUS HSI_Motion::GetDIO(UINT IOChannel, UINT& _Status)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
if (m_SO7_Serial.m_RecvData[0] == 2)
|
||||
{
|
||||
if (IOChannel == HSI_MOTION_INPUT_LIMIT_SWITCH)
|
||||
{
|
||||
_Status = m_SO7_Serial.m_RecvData[33];
|
||||
}
|
||||
if (IOChannel == HSI_MOTION_INPUT_ALARM)
|
||||
{
|
||||
_Status = m_SO7_Serial.m_RecvData[40];
|
||||
}
|
||||
if (IOChannel == HSI_MOTION_INPUT_CH1) //获取通用输入
|
||||
{
|
||||
_Status = m_SO7_Serial.m_RecvData[34];
|
||||
_Status = (m_SO7_Serial.m_RecvData[35] | (_Status << 8)) & 0xffff;
|
||||
}
|
||||
if (IOChannel == HSI_MOTION_OUTPUT_CH1) //获取通用输出
|
||||
{
|
||||
_Status = m_SO7_Serial.m_RecvData[36];
|
||||
_Status = (m_SO7_Serial.m_RecvData[37] | (_Status << 8)) & 0xffff;
|
||||
}
|
||||
m_axisStatus = m_SO7_Serial.m_RecvData[58];
|
||||
m_axisAlarmStatus = m_SO7_Serial.m_RecvData[59];
|
||||
}
|
||||
else if (m_bISUseMoreLights > 0)
|
||||
{
|
||||
if (m_Led8MotionFlag[m_selectedIndex])
|
||||
{
|
||||
if (tReciveData[0] == 0x05)
|
||||
{
|
||||
_Status = tReciveData[2];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (tReciveData[0] == 0x05)
|
||||
{
|
||||
_Status = tReciveData[1] << 24 | tReciveData[1] << 16 | tReciveData[3] << 8 | tReciveData[4];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetDIO] failed\n");
|
||||
}
|
||||
}
|
||||
//-----------TEST Begin------------------
|
||||
_Status = 0;
|
||||
|
||||
|
||||
//-----------TEST End------------------
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::SetDIO(UINT IOChannel, UINT _Status)
|
||||
{
|
||||
@@ -6613,7 +6675,13 @@ bool HSI_Motion::SpeedPercentJoyStick(int AxisNum, long& Speed, int& DirveSpeed,
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::GetSpeedXyz(int AxisNum, double& Speed)
|
||||
/**
|
||||
* \brief 获取单轴设置的速度
|
||||
* \param AxisNum
|
||||
* \param Speed
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS HSI_Motion::GetSpeedXyzOld(int AxisNum, double& Speed)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetSpeedXyz] In\n");
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
@@ -6630,6 +6698,22 @@ HSI_STATUS HSI_Motion::GetSpeedXyz(int AxisNum, double& Speed)
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
HSI_STATUS HSI_Motion::GetSpeedXyz(int AxisNum, double& Speed)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetSpeedXyz] In\n");
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
short AxisNumber = AxisConvertIndex(AxisNum);
|
||||
if (1 == m_iSpeedType)
|
||||
{
|
||||
Speed = m_SetPotion_DriveSpeed[AxisNumber] * (m_Resolution[AxisNumber] * 50);
|
||||
}
|
||||
else
|
||||
{
|
||||
Speed = m_SetPotion_DriveSpeed[AxisNumber];
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetSpeedXyz] Out\n");
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::SetSpeedXyz(double Speed)
|
||||
{
|
||||
@@ -6986,7 +7070,13 @@ HSI_STATUS HSI_Motion::GetSpeedEx(UINT AxisTypes, double& Speed)
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::SetSpeedEx(UINT AxisTypes, double Speed)
|
||||
/**
|
||||
* \brief 设置单轴运动速度
|
||||
* \param AxisTypes
|
||||
* \param Speed
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS HSI_Motion::SetSpeedExOld(UINT AxisTypes, double Speed)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetSpeedEx] In\n");
|
||||
@@ -7067,6 +7157,86 @@ HSI_STATUS HSI_Motion::SetSpeedEx(UINT AxisTypes, double Speed)
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
HSI_STATUS HSI_Motion::SetSpeedEx(UINT AxisTypes, double Speed)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetSpeedEx] In\n");
|
||||
short AxisNumber = AxisConvertIndex(AxisTypes);
|
||||
if (Speed <= 0)
|
||||
{
|
||||
m_SetPotion_DriveSpeed[AxisNumber] = 0;
|
||||
}
|
||||
if (1 == m_iSpeedType)
|
||||
{
|
||||
if (Speed >= 65000 * (m_Resolution[AxisNumber] * 50))
|
||||
{
|
||||
m_SetPotion_DriveSpeed[AxisNumber] = 65000;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Speed >= 65000)
|
||||
{
|
||||
m_SetPotion_DriveSpeed[AxisNumber] = 65000;
|
||||
}
|
||||
}
|
||||
if (AxisNumber >= 1 && AxisNumber <= 4)
|
||||
{
|
||||
if (m_ForSoft == 1)
|
||||
{
|
||||
if (m_motorType == 1)
|
||||
{
|
||||
if (1 == m_iSpeedType)
|
||||
{
|
||||
m_SetPotion_DriveSpeed[1] = static_cast<int>(Speed) / (m_Resolution[1] * 50);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_SetPotion_DriveSpeed[1] = static_cast<int>(Speed);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetSpeedEx] AxisNumber = %d,Speed = %f \n", AxisNumber, Speed);
|
||||
//if (!bSaveSpeedFlag)
|
||||
//{
|
||||
// bSaveSpeedFlag = true;
|
||||
// m_SaveAxisNum = AxisNumber;
|
||||
// m_SaveAxisSpeed = m_SetPotion_DriveSpeed[AxisNumber];
|
||||
// g_pLogger->SendAndFlushWithTime(L"[SetSpeedEx] m_SaveAxisNum = %d,m_SaveAxisSpeed = %d \n", m_SaveAxisNum, m_SaveAxisSpeed);
|
||||
//}
|
||||
//if (bSaveSpeedFlag && ((int)Speed == m_SetPotion_DriveSpeed[1] * (m_Resolution[1] * 50)))
|
||||
//{
|
||||
// bSaveSpeedFlag = false;
|
||||
// m_SetPotion_DriveSpeed[m_SaveAxisNum] = m_SaveAxisSpeed;
|
||||
// return rStatus;
|
||||
//}
|
||||
if (1 == m_iSpeedType)
|
||||
{
|
||||
m_SetPotion_DriveSpeed[AxisNumber] = static_cast<int>(Speed / (m_Resolution[AxisNumber] * 50));
|
||||
}
|
||||
else
|
||||
{
|
||||
m_SetPotion_DriveSpeed[AxisNumber] = static_cast<int>(Speed);
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetSpeedEx] AxisNumber = %d\n", AxisNumber);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_motorType == 1)
|
||||
{
|
||||
m_SetPotion_DriveSpeed[AxisNumber] = static_cast<int>(Speed / (m_Resolution[AxisNumber] * 50));
|
||||
}
|
||||
else
|
||||
{
|
||||
m_SetPotion_DriveSpeed[AxisNumber] = static_cast<int>(Speed / (m_Resolution[AxisNumber] * 50));
|
||||
}
|
||||
}
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetSpeedEx] Out\n");
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::GetAccelerationEx(UINT AxisTypes, double& Accel)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user