获取运动参数和配置运动,档位调试
This commit is contained in:
@@ -92,7 +92,7 @@ void ErrorsHandler()
|
||||
{
|
||||
ErrorStr[Received] = '\0';
|
||||
printf("Motion Error: %d [%s]\n", ErrorCode, ErrorStr);
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] Motion Error %s\n",ErrorStr);
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] Motion Error %d%S\n", ErrorCode,ErrorStr);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -460,8 +460,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
{
|
||||
//尝试打开ACS控制器
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] In\n");
|
||||
g_pLogger->SendAndFlushWithTime(
|
||||
L"[ACS Motion] Wait for opening of communication with the controller... \n");
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] Wait for opening of communication with the controller... \n");
|
||||
|
||||
#ifdef OFFLINE //如果定义离线模式
|
||||
handleACS = acsc_OpenCommSimulator();
|
||||
@@ -501,7 +500,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
|
||||
|
||||
//获取ACS 控制器版本号, 待测试,2.70
|
||||
/*char Firmware[256];
|
||||
char Firmware[256];
|
||||
int Received;
|
||||
if (!acsc_GetFirmwareVersion(handleACS, Firmware, 255, &Received, nullptr))
|
||||
{
|
||||
@@ -509,13 +508,17 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
ErrorsHandler();
|
||||
}
|
||||
Firmware[Received-1] = '\0';
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] ACS Controller Version: %s\n", Firmware);*/
|
||||
//printf("%s", Firmware);
|
||||
|
||||
//https://www.cnblogs.com/MichaelOwen/articles/2128771.html
|
||||
//g_pLogger->SendAndFlushWithTime(L"%s%s\n", _T("[ACS Motion] ACS Controller Version: "), L"你好");
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] ACS Controller Version: %S\n", Firmware);
|
||||
|
||||
//获取SPiiPlus C Library version
|
||||
unsigned int Ver = acsc_GetLibraryVersion();
|
||||
printf("SPiiPlus C Library version is %d.%d.%d.%d\n", HIBYTE(HIWORD(Ver)), LOBYTE(HIWORD(Ver)),
|
||||
/* printf("SPiiPlus C Library version is %d.%d.%d.%d\n", HIBYTE(HIWORD(Ver)), LOBYTE(HIWORD(Ver)),
|
||||
HIBYTE(LOWORD(Ver)),
|
||||
LOBYTE(LOWORD(Ver)));
|
||||
LOBYTE(LOWORD(Ver)));*/
|
||||
g_pLogger->SendAndFlushWithTime(L"[ACS Motion] SPiiPlus C Library version is %d.%d.%d.%d\n",
|
||||
HIBYTE(HIWORD(Ver)), LOBYTE(HIWORD(Ver)), HIBYTE(LOWORD(Ver)),
|
||||
LOBYTE(LOWORD(Ver)));
|
||||
@@ -1843,7 +1846,7 @@ HSI_STATUS HSI_Motion::JogOld(UINT AxisTypes, double Speed)
|
||||
HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] aixs: [%d] speed:[%lf]\n", AxisTypes, Speed);
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] aixs: [%d] SpeedGear: [%lf]\n", AxisTypes, Speed);
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
if (m_DeviceType != 3) //非转盘设备
|
||||
@@ -1851,7 +1854,13 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
m_Thread_StateJOGStop = HSI_THREAD_RUNNING;
|
||||
SetEvent(m_hTriggerEventJOGStop);
|
||||
}
|
||||
|
||||
int DriveSpeed(1);
|
||||
int StartSpeed(1);
|
||||
int AccLine(1);
|
||||
int DecLine(1);
|
||||
int AccCurve(1);
|
||||
int DecCurve(1);
|
||||
int JogSpeed(1);
|
||||
bool bJOGDir = Speed > 0 ? true : false; //运动方向
|
||||
byte AxisNumber = static_cast<byte>(AxisConvertIndex(AxisTypes));//Jog
|
||||
jogAxisNum = AxisNumber;
|
||||
@@ -1861,42 +1870,176 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
if (CurrentHomeMachineState == E_EF3_HOME_FINISHED)
|
||||
{
|
||||
//软限位
|
||||
g_pLogger->SendAndFlushWithTime(
|
||||
L"[Jog] Limit Enable, m_P_Work_Limit[AxisNumber] = %f,m_N_Work_Limit[AxisNumber] = %f\n",
|
||||
m_P_Work_Limit[AxisNumber], m_N_Work_Limit[AxisNumber]);
|
||||
}
|
||||
else
|
||||
{
|
||||
//无效软限位
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] Limit No Enable\n");
|
||||
}
|
||||
|
||||
//是否回过家
|
||||
//if (m_Home_Machine_Axis[AxisNumber] == 0)
|
||||
//{
|
||||
// return rStatus;
|
||||
//}
|
||||
|
||||
// 是否启用急停
|
||||
//if ((StartSpeed < 250) && (DriveSpeed < 6))
|
||||
//{
|
||||
// m_IsUseJerk = 1;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// m_IsUseJerk = 0;
|
||||
//}
|
||||
//是否回过家判断
|
||||
if (m_Home_Machine_Axis[AxisNumber] == 0)
|
||||
{
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//设置 JOG运动参数 加减速 JOG_SPEED_ACC_DEC
|
||||
double now_pos[5] = { 0 };
|
||||
double Prf_pos[5] = { 0 };
|
||||
double limitpos[4] = { 0 };
|
||||
int RemainPul = 0;
|
||||
int limitSDPul = 0;
|
||||
double time;
|
||||
/*GetPositionXyz(1, now_pos[0], now_pos[1], now_pos[2], time);*/
|
||||
GetPositionEncPrfMulti(1, now_pos, Prf_pos, 1);
|
||||
|
||||
|
||||
JogSpeed = abs(SpeedPercent(AxisNumber, Speed, DriveSpeed, StartSpeed, AccLine, DecLine, AccCurve, DecCurve));
|
||||
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] StartSpeed: [%d], DriveSpeed: [%d], AccCurve: [%d], AccLine: [%d], DecCurve: [%d], DecLine: [%d]\n", StartSpeed, DriveSpeed, AccCurve, AccLine, DecCurve, DecLine);
|
||||
|
||||
if (m_DeviceType != 3)
|
||||
{
|
||||
if (AxisTypes == AXIS_X /*&& m_motorType & 0x01*/)
|
||||
{
|
||||
if (!bJOGDir) //负方向
|
||||
{
|
||||
RemainPul = static_cast<int>(now_pos[1] / m_Resolution[1]) - static_cast<int>(m_N_Work_Limit[1] /
|
||||
m_Resolution[1]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
if ((RemainPul < limitSDPul * 2) && (RemainPul > 0))
|
||||
{
|
||||
float SpeedRatio = limitSDPul * 2 / RemainPul;
|
||||
DriveSpeed = DriveSpeed / SpeedRatio;
|
||||
if (DriveSpeed < StartSpeed)
|
||||
{
|
||||
DriveSpeed = StartSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
RemainPul = static_cast<int>(m_P_Work_Limit[1] / m_Resolution[1]) - static_cast<int>(now_pos[1] /
|
||||
m_Resolution[1]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
if ((RemainPul < limitSDPul * 2) && (RemainPul > 0))
|
||||
{
|
||||
float SpeedRatio = limitSDPul * 2 / RemainPul;
|
||||
DriveSpeed = DriveSpeed / SpeedRatio;
|
||||
if (DriveSpeed < StartSpeed)
|
||||
{
|
||||
DriveSpeed = StartSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (AxisTypes == AXIS_Y /*&& m_motorType & 0x02*/)
|
||||
{
|
||||
if (!bJOGDir) //负方向
|
||||
{
|
||||
RemainPul = static_cast<int>(now_pos[2] / m_Resolution[2]) - static_cast<int>(m_N_Work_Limit[2] /
|
||||
m_Resolution[2]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
if ((RemainPul < limitSDPul * 2) && (RemainPul > 0))
|
||||
{
|
||||
float SpeedRatio = 1 + limitSDPul * 2 / RemainPul;
|
||||
DriveSpeed = DriveSpeed / SpeedRatio;
|
||||
if (DriveSpeed < StartSpeed)
|
||||
{
|
||||
DriveSpeed = StartSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
RemainPul = static_cast<int>(m_P_Work_Limit[2] / m_Resolution[2]) - static_cast<int>(now_pos[2] /
|
||||
m_Resolution[2]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
if ((RemainPul < limitSDPul * 2) && (RemainPul > 0))
|
||||
{
|
||||
float SpeedRatio = limitSDPul * 2 / RemainPul;
|
||||
DriveSpeed = DriveSpeed / SpeedRatio;
|
||||
if (DriveSpeed < StartSpeed)
|
||||
{
|
||||
DriveSpeed = StartSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (AxisTypes == AXIS_Z /*&& m_motorType & 0x04*/)
|
||||
{
|
||||
if (!bJOGDir) //负方向
|
||||
{
|
||||
RemainPul = static_cast<int>(now_pos[3] / m_Resolution[3]) - static_cast<int>(m_N_Work_Limit[3] /
|
||||
m_Resolution[3]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
if ((RemainPul < limitSDPul * 2) && (RemainPul > 0))
|
||||
{
|
||||
float SpeedRatio = limitSDPul * 2 / RemainPul;
|
||||
DriveSpeed = DriveSpeed / SpeedRatio;
|
||||
if (DriveSpeed < StartSpeed)
|
||||
{
|
||||
DriveSpeed = StartSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
RemainPul = static_cast<int>(m_P_Work_Limit[3] / m_Resolution[3]) - static_cast<int>(now_pos[3] /
|
||||
m_Resolution[3]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
if ((RemainPul < limitSDPul * 2) && (RemainPul > 0))
|
||||
{
|
||||
float SpeedRatio = limitSDPul * 2 / RemainPul;
|
||||
DriveSpeed = DriveSpeed / SpeedRatio;
|
||||
if (DriveSpeed < StartSpeed)
|
||||
{
|
||||
DriveSpeed = StartSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//速度限制
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] StartSpeed: [%d], DriveSpeed: [%d], AccCurve: [%d], AccLine: [%d], DecCurve: [%d], DecLine: [%d]\n", StartSpeed, DriveSpeed, AccCurve, AccLine, DecCurve, DecLine);
|
||||
|
||||
// 急停判断
|
||||
if ((StartSpeed < 250) && (DriveSpeed < 6))
|
||||
{
|
||||
m_IsUseJerk = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_IsUseJerk = 0;
|
||||
}
|
||||
|
||||
//打印当前轴的速度
|
||||
double motionParam[5] = { 0 };
|
||||
GetMotorParam(jogAxisNum, motionParam);
|
||||
g_pLogger->SendAndFlushWithTime(
|
||||
L"[Jog] Axis= %d, Velocity = %.2f, Acceleration= %.2f, Deceleration= %.2f, KillDeceleration= %.2f, Jerk= %.2f\n",
|
||||
jogAxisNum, motionParam[0], motionParam[1], motionParam[2], motionParam[3], motionParam[4]);
|
||||
|
||||
//开始JOG运动
|
||||
int acsDirection = bJOGDir ? ACSC_POSITIVE_DIRECTION : ACSC_NEGATIVE_DIRECTION; //正方向,或 负方向
|
||||
if (!acsc_Jog(handleACS, 0, jogAxisNum, acsDirection, nullptr))
|
||||
if (!bJOGDir)
|
||||
{
|
||||
StartSpeed = StartSpeed * (-1); // Negative direction : Using - (minus) velocity
|
||||
}
|
||||
//int acsDirection = bJOGDir ? ACSC_POSITIVE_DIRECTION : ACSC_NEGATIVE_DIRECTION; //正方向,或 负方向
|
||||
if (!acsc_Jog(handleACS, 0, jogAxisNum, StartSpeed, nullptr))
|
||||
{
|
||||
printf("[Jog] 轴[%d] [%s] 方向移动失败", AxisTypes, bJOGDir? "正" : "负");
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] aixs:[%d] JOGDir:[%s] Jog move failed\n", AxisTypes, bJOGDir ? "P" : "N");
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] failed, Aixs:[%d] JOGDir:[%S]\n", AxisTypes, bJOGDir ? "Positive" : "Negative");
|
||||
ErrorsHandler();
|
||||
}
|
||||
|
||||
|
||||
jogMoving = true;
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] Out, bJOGDir = %s\n", bJOGDir? "positive":"negative");
|
||||
g_pLogger->SendAndFlushWithTime(L"[Jog] Out, StartSpeed = %d\n", StartSpeed);
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
@@ -2375,14 +2518,14 @@ int HSI_Motion::P2P(short AxisNumber, long Pos, double Speed, double Acc)
|
||||
//===========================================================================
|
||||
//运动控制部分
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, double* PrfPos, int Count)
|
||||
HSI_STATUS HSI_Motion::GetPositionEncPrfMultiOld(UINT AxisTypes, double* EncPos, double* PrfPos, int Count)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
UNREFERENCED_PARAMETER(AxisTypes);
|
||||
CString tempStr;
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
//g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] In\n");
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] In\n");
|
||||
if (m_SO7_Serial.m_RecvData[0] == 2)
|
||||
{
|
||||
EncPos[1] = (m_SO7_Serial.m_RecvData[1] << 24 | m_SO7_Serial.m_RecvData[2] << 16 | m_SO7_Serial.m_RecvData[
|
||||
@@ -2442,11 +2585,81 @@ HSI_STATUS HSI_Motion::GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, do
|
||||
PrfPos[4] = m_PrfPos[4];
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] failed\n");
|
||||
}
|
||||
//g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] Out\n");
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] Out\n");
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
HSI_STATUS HSI_Motion::GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, double* PrfPos, int Count)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
UNREFERENCED_PARAMETER(AxisTypes);
|
||||
CString tempStr;
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] In\n");
|
||||
if (m_SO7_Serial.m_RecvData[0] == 2)
|
||||
{
|
||||
EncPos[1] = (m_SO7_Serial.m_RecvData[1] << 24 | m_SO7_Serial.m_RecvData[2] << 16 | m_SO7_Serial.m_RecvData[
|
||||
3] << 8 | m_SO7_Serial.m_RecvData[4]) * m_Resolution[1];
|
||||
EncPos[2] = (m_SO7_Serial.m_RecvData[5] << 24 | m_SO7_Serial.m_RecvData[6] << 16 | m_SO7_Serial.m_RecvData[
|
||||
7] << 8 | m_SO7_Serial.m_RecvData[8]) * m_Resolution[2];
|
||||
EncPos[3] = (m_SO7_Serial.m_RecvData[9] << 24 | m_SO7_Serial.m_RecvData[10] << 16 | m_SO7_Serial.m_RecvData[
|
||||
11] << 8 | m_SO7_Serial.m_RecvData[12]) * m_Resolution[3];
|
||||
EncPos[4] = (m_SO7_Serial.m_RecvData[13] << 24 | m_SO7_Serial.m_RecvData[14] << 16 | m_SO7_Serial.m_RecvData
|
||||
[15] << 8 | m_SO7_Serial.m_RecvData[16]) * m_Resolution[4];
|
||||
|
||||
PrfPos[1] = (m_SO7_Serial.m_RecvData[17] << 24 | m_SO7_Serial.m_RecvData[18] << 16 | m_SO7_Serial.m_RecvData
|
||||
[19] << 8 | m_SO7_Serial.m_RecvData[20]) * m_Resolution[1];
|
||||
PrfPos[2] = (m_SO7_Serial.m_RecvData[21] << 24 | m_SO7_Serial.m_RecvData[22] << 16 | m_SO7_Serial.m_RecvData
|
||||
[23] << 8 | m_SO7_Serial.m_RecvData[24]) * m_Resolution[2];
|
||||
PrfPos[3] = (m_SO7_Serial.m_RecvData[25] << 24 | m_SO7_Serial.m_RecvData[26] << 16 | m_SO7_Serial.m_RecvData
|
||||
[27] << 8 | m_SO7_Serial.m_RecvData[28]) * m_Resolution[3];
|
||||
PrfPos[4] = (m_SO7_Serial.m_RecvData[29] << 24 | m_SO7_Serial.m_RecvData[30] << 16 | m_SO7_Serial.m_RecvData
|
||||
[31] << 8 | m_SO7_Serial.m_RecvData[32]) * m_Resolution[4];
|
||||
|
||||
if (m_IsHavePattern & 0x01)
|
||||
m_EncPos[1] = EncPos[1];
|
||||
else
|
||||
m_EncPos[1] = PrfPos[1];
|
||||
if (m_IsHavePattern & 0x02)
|
||||
m_EncPos[2] = EncPos[2];
|
||||
else
|
||||
m_EncPos[2] = PrfPos[2];
|
||||
if (m_IsHavePattern & 0x04)
|
||||
m_EncPos[3] = EncPos[3];
|
||||
else
|
||||
m_EncPos[3] = PrfPos[3];
|
||||
if (m_IsHavePattern & 0x08)
|
||||
m_EncPos[4] = EncPos[4];
|
||||
else
|
||||
m_EncPos[4] = PrfPos[4];
|
||||
|
||||
m_PrfPos[1] = PrfPos[1];
|
||||
m_PrfPos[2] = PrfPos[2];
|
||||
m_PrfPos[3] = PrfPos[3];
|
||||
m_PrfPos[4] = PrfPos[4];
|
||||
|
||||
//begin_position[1] = EncPos[1] / m_Resolution[1];
|
||||
//begin_position[2] = EncPos[2] / m_Resolution[1];
|
||||
//begin_position[3] = EncPos[3] / m_Resolution[1];
|
||||
//begin_position[4] = EncPos[4] / m_Resolution[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
EncPos[1] = m_EncPos[1];
|
||||
EncPos[2] = m_EncPos[2];
|
||||
EncPos[2] = m_EncPos[3];
|
||||
EncPos[4] = m_EncPos[4];
|
||||
PrfPos[1] = m_PrfPos[1];
|
||||
PrfPos[2] = m_PrfPos[2];
|
||||
PrfPos[2] = m_PrfPos[3];
|
||||
PrfPos[4] = m_PrfPos[4];
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] failed\n");
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEncPrfMulti] Out\n");
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
/**
|
||||
* \brief 获取轴当前运动位置
|
||||
@@ -3283,11 +3496,12 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double P
|
||||
PositionY, PositionZ);*/
|
||||
|
||||
//打印轴当前运动参数
|
||||
double* motionParam[5] = {0};
|
||||
GetMotorParam(ACSC_AXIS_0, motionParam);
|
||||
byte AxisNumber = static_cast<byte>(AxisConvertIndex(AxisTypes));//轴号换算
|
||||
double motionParam[5] = {0};
|
||||
GetMotorParam(AxisNumber, motionParam);
|
||||
g_pLogger->SendAndFlushWithTime(
|
||||
L"[SetPositionXyz] axis= %d, GetVelocity = %d,GetAcceleration= %d,GetDeceleration= %d, GetKillDeceleration= %d, GetJerk= %d\n",
|
||||
AXIS_X, motionParam[0], motionParam[1], motionParam[2], motionParam[3], motionParam[4]);
|
||||
L"[SetPositionXyz] Axis= %.2f, Velocity = %.2f, Acceleration= %.2f, Deceleration= %.2f, KillDeceleration= %.2f, Jerk= %.2f\n",
|
||||
jogAxisNum, motionParam[0], motionParam[1], motionParam[2], motionParam[3], motionParam[4]);
|
||||
|
||||
//设置轴运动速度,TO-DO
|
||||
|
||||
@@ -3377,42 +3591,46 @@ int HSI_Motion::CaculateStepMotorACC(int pos, int maxacc, int minacc)
|
||||
//void func2(uchar* s); //利用指针返回数组
|
||||
//uchar* func1(); //利用指针函数返回数组
|
||||
//void func0(uchar*& r); //利用引用返回数组
|
||||
HSI_STATUS HSI_Motion::GetMotorParam(int AXIS, double* motionParam[5])
|
||||
HSI_STATUS HSI_Motion::GetMotorParam(int AXIS, double motionParam[5])
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
if (handleACS != ACSC_INVALID)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetMotorParam] In\n");
|
||||
|
||||
//依次是 速度、加速度、减速、杀死速度、抖动
|
||||
if (!acsc_GetVelocity(handleACS, AXIS, motionParam[0], nullptr))
|
||||
if (!acsc_GetVelocity(handleACS, AXIS, motionParam+0, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetMotorParam] acsc_GetVelocity error\n");
|
||||
rStatus = HSI_ACS_ERROR;
|
||||
ErrorsHandler();
|
||||
}
|
||||
if (!acsc_GetAcceleration(handleACS, AXIS, motionParam[1], nullptr))
|
||||
|
||||
if (!acsc_GetAcceleration(handleACS, AXIS, motionParam+1, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetMotorParam] acsc_GetAcceleration error\n");
|
||||
rStatus = HSI_ACS_ERROR;
|
||||
ErrorsHandler();
|
||||
}
|
||||
if (!acsc_GetDeceleration(handleACS, AXIS, motionParam[2], nullptr))
|
||||
if (!acsc_GetDeceleration(handleACS, AXIS, motionParam+2, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetMotorParam] acsc_GetDeceleration error\n");
|
||||
rStatus = HSI_ACS_ERROR;
|
||||
ErrorsHandler();
|
||||
}
|
||||
if (!acsc_GetKillDeceleration(handleACS, AXIS, motionParam[3], nullptr))
|
||||
if (!acsc_GetKillDeceleration(handleACS, AXIS, motionParam+3, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetMotorParam] acsc_GetKillDeceleration error\n");
|
||||
rStatus = HSI_ACS_ERROR;
|
||||
ErrorsHandler();
|
||||
}
|
||||
if (!acsc_GetJerk(handleACS, AXIS, motionParam[4], nullptr))
|
||||
if (!acsc_GetJerk(handleACS, AXIS, motionParam+4, nullptr))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetMotorParam] acsc_GetJerk error\n");
|
||||
rStatus = HSI_ACS_ERROR;
|
||||
ErrorsHandler();
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetMotorParam] Out\n");
|
||||
}
|
||||
|
||||
return rStatus;
|
||||
@@ -6967,14 +7185,14 @@ short HSI_Motion::AxisConvertIndex(UINT AxisTypes)
|
||||
AxisNumber = 0x04;
|
||||
break;
|
||||
}
|
||||
//case HSI_MOTION_AXIS_R:
|
||||
// {
|
||||
// AxisNumber = 0x04;
|
||||
// break;
|
||||
// }
|
||||
case HSI_MOTION_AXIS_R:
|
||||
{
|
||||
AxisNumber = 0x04;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"AxisConvertIndex failed,AxisTypes = %d,AxisNumber = %d\n", AxisTypes,
|
||||
g_pLogger->SendAndFlushWithTime(L"[AxisConvertIndex] failed, AxisTypes = %d,AxisNumber = %d\n", AxisTypes,
|
||||
AxisNumber);
|
||||
break;
|
||||
}
|
||||
@@ -7074,6 +7292,7 @@ HSI_STATUS HSI_Motion::GetPositionEx(UINT AxisTypes, double& Position, double& T
|
||||
double position[4] = {0.0};
|
||||
short AxisNumber = AxisConvertIndex(AxisTypes);
|
||||
Position = m_PosForAllAxis[AxisNumber];
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetPositionEx] Position: %d\n", Position);
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
@@ -7329,6 +7548,7 @@ HSI_STATUS HSI_Motion::GetAccelerationEx(UINT AxisTypes, double& Accel)
|
||||
Accel = m_SetPotion_StartSpeed[AxisNumber] * (m_Resolution[AxisNumber] * 500);
|
||||
}
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetAccelerationEx] Accel = %d\n", Accel);
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
@@ -7352,6 +7572,7 @@ HSI_STATUS HSI_Motion::SetAccelerationEx(UINT AxisTypes, double Accel)
|
||||
m_SetPotion_StartSpeed[AxisNumber] = static_cast<int>(Accel / (m_Resolution[AxisNumber] * 500));
|
||||
}
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[SetAccelerationEx] Accel = %d\n", m_SetPotion_StartSpeed[AxisNumber]);
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
|
||||
@@ -205,7 +205,16 @@ public:
|
||||
HSI_STATUS StopJog();
|
||||
HSI_STATUS StopJogOld();
|
||||
HSI_STATUS StopJogEx(UINT AxisTypes);
|
||||
/**
|
||||
* \brief
|
||||
* \param AxisTypes
|
||||
* \param EncPos
|
||||
* \param PrfPos
|
||||
* \param Count
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
|
||||
HSI_STATUS GetPositionEncPrfMultiOld(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
|
||||
/**
|
||||
* \brief 获取轴当前位置
|
||||
* \param AxisTypes 轴号
|
||||
@@ -229,7 +238,7 @@ public:
|
||||
* \param motionParam
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS HSI_Motion::GetMotorParam(int AXIS, double* motionParam[5]);
|
||||
HSI_STATUS HSI_Motion::GetMotorParam(int AXIS, double motionParam[5]);
|
||||
|
||||
/**
|
||||
* \brief 运行到指定位置
|
||||
|
||||
@@ -65,6 +65,7 @@ void CLogger::SendAndFlush(LPCTSTR format, ...)
|
||||
LeaveCriticalSection(&m_lockLogger);
|
||||
}
|
||||
|
||||
//https://www.educative.io/answers/what-is-vswprintfs-in-c
|
||||
void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
|
||||
{
|
||||
EnterCriticalSection(&m_lockLogger);
|
||||
|
||||
@@ -27,6 +27,10 @@ class CLogger
|
||||
public:
|
||||
CLogger(CString m_Name)
|
||||
{
|
||||
//设置中文环境
|
||||
//setlocale(LC_ALL, "Chinese-simplified");
|
||||
setlocale(LC_ALL, "en_US.UTF-8");
|
||||
|
||||
IsEnabledLog = false;
|
||||
m_File = nullptr;
|
||||
CString Path = _T(""); // Speed optimization - noticed slow in GlowCode
|
||||
|
||||
@@ -12,5 +12,5 @@
|
||||
#define HSI_VERSION_REVNUM
|
||||
#define HSI_VERSION_BUILD_DATE _T(__DATE__ )
|
||||
#define HSI_VERSION_BUILD_TIME _T(__TIME__ )
|
||||
#define HSI_FILE_DESCRIPTION "2022.11.01 / 12:05 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("2022.11.01 / 12:05 ")
|
||||
#define HSI_FILE_DESCRIPTION "2022.11.01 / 20:15 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("2022.11.01 / 20:15 ")
|
||||
|
||||
@@ -430,12 +430,12 @@ namespace HSI_SEVENOCEAN_EF1_CsTest.HSI
|
||||
|
||||
public enum HSI_MOTION_AXIS_TYPE
|
||||
{
|
||||
//HSI_MOTION_AXIS_X = 0x0001, // This is the default "Sensor level" X Axis - use on single X axis machines
|
||||
//HSI_MOTION_AXIS_Y = 0x0002, // This is the default "Sensor level" Y Axis - use on single Y axis machines
|
||||
//HSI_MOTION_AXIS_Z = 0x0004, // This is the default "Sensor level" Z Axis - use on single Z axis machines
|
||||
HSI_MOTION_AXIS_X = 0x0001, //对应ACS 0轴 X
|
||||
HSI_MOTION_AXIS_Y = 0x0000, //对应ACS 1轴 Y
|
||||
HSI_MOTION_AXIS_Z = 0x0004, //对应ACS 4轴 Z
|
||||
//HSI_MOTION_AXIS_X = 0x0001, //对应ACS 0轴 X
|
||||
//HSI_MOTION_AXIS_Y = 0x0000, //对应ACS 1轴 Y
|
||||
//HSI_MOTION_AXIS_Z = 0x0004, //对应ACS 4轴 Z
|
||||
HSI_MOTION_AXIS_X = 0x0001, // This is the default "Sensor level" X Axis - use on single X axis machines
|
||||
HSI_MOTION_AXIS_Y = 0x0002, // This is the default "Sensor level" Y Axis - use on single Y axis machines
|
||||
HSI_MOTION_AXIS_Z = 0x0004, // This is the default "Sensor level" Z Axis - use on single Z axis machines
|
||||
HSI_MOTION_AXIS_R = 0x0008, // This is the default "Sensor level" R Axis - use on single R axis machines
|
||||
HSI_MOTION_AXIS_X1 = 0x0010, // This is the 1st X Axis - use on multiple axis machines when specific axis needed
|
||||
HSI_MOTION_AXIS_Y1 = 0x0020, // This is the 1st Y Axis - use on multiple axis machines when specific axis needed
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
[JOG_SPEED]
|
||||
JOG速度(pulse/ms)
|
||||
JOG速度(pulse/ms)
|
||||
JOG_SPEED_0=200.0
|
||||
JOG_SPEED_1=150.0
|
||||
JOG_SPEED_2=50
|
||||
JOG_SPEED_3=10
|
||||
JOG_SPEED_4=1
|
||||
|
||||
;JOG加速度(pulse/ms^2)
|
||||
;JOG加速度(pulse/ms^2)
|
||||
JOG_ACC_0=2.0
|
||||
JOG_ACC_1=2.0
|
||||
JOG_ACC_2=2.0
|
||||
JOG_ACC_3=1.0
|
||||
JOG_ACC_4=1.0
|
||||
|
||||
;JOG减速度(pulse/ms^2)
|
||||
;JOG减速度(pulse/ms^2)
|
||||
JOG_DEC_0=2.0
|
||||
JOG_DEC_1=2.0
|
||||
JOG_DEC_2=2.0
|
||||
JOG_DEC_3=1.0
|
||||
JOG_DEC_4=1.0
|
||||
|
||||
;JOG模式采用急停还是平滑停止,0是平滑停止1为急停,默认0
|
||||
;JOG模式采用急停还是平滑停止,0是平滑停止1为急停,默认0
|
||||
JOG_STOP_MODE_1=0
|
||||
JOG_STOP_MODE_2=0
|
||||
JOG_STOP_MODE_3=0
|
||||
@@ -91,12 +91,12 @@ JOG_SPEED_GEAR4_4=1.0
|
||||
JOG_ACC_GEAR4_4=1.0
|
||||
JOG_DEC_GEAR4_4=1.0
|
||||
|
||||
;0:都使用(正常情况) 1:只使用灯,而不使用控制器;默认0
|
||||
;0:都使用(正常情况) 1:只使用灯,而不使用控制器;默认0
|
||||
[USE_LIGHT]
|
||||
ONLY_USE_LIGHT=0
|
||||
|
||||
[RESOLUTION]
|
||||
;光栅尺的分辨率(mm)
|
||||
;光栅尺的分辨率(mm)
|
||||
SCALE_RESOLUTION_1=0.0004
|
||||
SCALE_RESOLUTION_2=0.0004
|
||||
SCALE_RESOLUTION_3=0.0004
|
||||
@@ -107,7 +107,7 @@ SCALE_RESOLUTION_7=0.0004
|
||||
SCALE_RESOLUTION_8=0.0004
|
||||
|
||||
[LIMIT]
|
||||
;负限位(mm),必须是负数
|
||||
;负限位(mm),必须是负数
|
||||
NEG_WORKING_LIMIT_1=-260.0
|
||||
NEG_WORKING_LIMIT_2=-40.0
|
||||
NEG_WORKING_LIMIT_3=-40.0
|
||||
@@ -117,10 +117,10 @@ NEG_WORKING_LIMIT_6=-40.0
|
||||
NEG_WORKING_LIMIT_7=-40.0
|
||||
NEG_WORKING_LIMIT_8=-40.0
|
||||
|
||||
;正限位(mm),必须是正数
|
||||
POS_WORKING_LIMIT_1=40.0
|
||||
POS_WORKING_LIMIT_2=160.0
|
||||
POS_WORKING_LIMIT_3=160.0
|
||||
;正限位(mm),必须是正数
|
||||
POS_WORKING_LIMIT_1=10.0
|
||||
POS_WORKING_LIMIT_2=200.0
|
||||
POS_WORKING_LIMIT_3=200.0
|
||||
POS_WORKING_LIMIT_4=200.0
|
||||
POS_WORKING_LIMIT_5=200.0
|
||||
POS_WORKING_LIMIT_6=200.0
|
||||
@@ -128,7 +128,7 @@ POS_WORKING_LIMIT_7=200.0
|
||||
POS_WORKING_LIMIT_8=200.0
|
||||
|
||||
[HOME]
|
||||
;选择需要回家的轴号,改为1
|
||||
;选择需要回家的轴号,改为1
|
||||
HOME_MACHINE_AXIS_1=1
|
||||
HOME_MACHINE_AXIS_2=1
|
||||
HOME_MACHINE_AXIS_3=1
|
||||
@@ -138,12 +138,12 @@ HOME_MACHINE_AXIS_6=0
|
||||
HOME_MACHINE_AXIS_7=0
|
||||
HOME_MACHINE_AXIS_8=0
|
||||
|
||||
;是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||
;是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||
IS_HOME_ENC_POS=0
|
||||
;是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||
;是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||
IS_HOME_PRF_POS=1
|
||||
|
||||
;关闭电源时记住当前的位置,用于判断是否需要回家
|
||||
;关闭电源时记住当前的位置,用于判断是否需要回家
|
||||
HOME_POS_AXIS_1=0
|
||||
HOME_POS_AXIS_2=0
|
||||
HOME_POS_AXIS_3=0
|
||||
@@ -153,7 +153,7 @@ HOME_POS_AXIS_6=0
|
||||
HOME_POS_AXIS_7=0
|
||||
HOME_POS_AXIS_8=0
|
||||
|
||||
;回家第一段速度(pulse/ms)
|
||||
;回家第一段速度(pulse/ms)
|
||||
HOME_HIGH_SPEED_1=200.0
|
||||
HOME_HIGH_SPEED_2=200.0
|
||||
HOME_HIGH_SPEED_3=200.0
|
||||
@@ -163,7 +163,7 @@ HOME_HIGH_SPEED_6=200.0
|
||||
HOME_HIGH_SPEED_7=200.0
|
||||
HOME_HIGH_SPEED_8=200.0
|
||||
|
||||
;回家第一段加速度(pulse/ms^2)
|
||||
;回家第一段加速度(pulse/ms^2)
|
||||
HOME_HIGH_ACC_1=2.0
|
||||
HOME_HIGH_ACC_2=2.0
|
||||
HOME_HIGH_ACC_3=2.0
|
||||
@@ -173,7 +173,7 @@ HOME_HIGH_ACC_6=2.0
|
||||
HOME_HIGH_ACC_7=2.0
|
||||
HOME_HIGH_ACC_8=2.0
|
||||
|
||||
;回家第二段速度(pulse/ms)
|
||||
;回家第二段速度(pulse/ms)
|
||||
HOME_LOW_SPEED_1=180.0
|
||||
HOME_LOW_SPEED_2=180.0
|
||||
HOME_LOW_SPEED_3=180.0
|
||||
@@ -183,7 +183,7 @@ HOME_LOW_SPEED_6=180.0
|
||||
HOME_LOW_SPEED_7=180.0
|
||||
HOME_LOW_SPEED_8=180.0
|
||||
|
||||
;回家第二段加速度(pulse/ms^2)
|
||||
;回家第二段加速度(pulse/ms^2)
|
||||
HOME_LOW_ACC_1=2.0
|
||||
HOME_LOW_ACC_2=2.0
|
||||
HOME_LOW_ACC_3=2.0
|
||||
@@ -193,7 +193,7 @@ HOME_LOW_ACC_6=2.0
|
||||
HOME_LOW_ACC_7=2.0
|
||||
HOME_LOW_ACC_8=2.0
|
||||
|
||||
;回家延时时间(ms)
|
||||
;回家延时时间(ms)
|
||||
HOME_TIME_1=1000
|
||||
HOME_TIME_2=1000
|
||||
HOME_TIME_3=1000
|
||||
@@ -204,7 +204,7 @@ HOME_TIME_7=1000
|
||||
HOME_TIME_8=1000
|
||||
|
||||
[PID]
|
||||
;PID比例调节,应从0.01递增开始调试
|
||||
;PID比例调节,应从0.01递增开始调试
|
||||
PID_KP_1=1.20
|
||||
PID_KP_2=1.20
|
||||
PID_KP_3=1.20
|
||||
@@ -215,7 +215,7 @@ PID_KP_7=1.20
|
||||
PID_KP_8=1.20
|
||||
|
||||
[PRECISION]
|
||||
;超时时间(0.1ms)
|
||||
;超时时间(0.1ms)
|
||||
PRECISION_TIME_1=20000
|
||||
PRECISION_TIME_2=20000
|
||||
PRECISION_TIME_3=20000
|
||||
@@ -225,7 +225,7 @@ PRECISION_TIME_6=20000
|
||||
PRECISION_TIME_7=20000
|
||||
PRECISION_TIME_8=20000
|
||||
|
||||
;回家误差脉冲个数
|
||||
;回家误差脉冲个数
|
||||
PRECISION_COUNT_1=8
|
||||
PRECISION_COUNT_2=8
|
||||
PRECISION_COUNT_3=8
|
||||
@@ -236,7 +236,7 @@ PRECISION_COUNT_7=8
|
||||
PRECISION_COUNT_8=8
|
||||
|
||||
[SET_POSITION_SPEED]
|
||||
;XYZ定位的合成速度(pulse/ms)
|
||||
;XYZ定位的合成速度(pulse/ms)
|
||||
SET_POTION_SPEED_1=500.0
|
||||
SET_POTION_SPEED_2=500.0
|
||||
SET_POTION_SPEED_3=500.0
|
||||
@@ -246,7 +246,7 @@ SET_POTION_SPEED_6=500.0
|
||||
SET_POTION_SPEED_7=500.0
|
||||
SET_POTION_SPEED_8=500.0
|
||||
|
||||
;XYZ定位的合成加速度(pulse/ms^2)
|
||||
;XYZ定位的合成加速度(pulse/ms^2)
|
||||
SET_POTION_ACC_1=2.5
|
||||
SET_POTION_ACC_2=2.5
|
||||
SET_POTION_ACC_3=2.5
|
||||
@@ -256,7 +256,7 @@ SET_POTION_ACC_6=2.5
|
||||
SET_POTION_ACC_7=2.5
|
||||
SET_POTION_ACC_8=2.5
|
||||
|
||||
;XYZ定位的终点速度(pulse/ms)
|
||||
;XYZ定位的终点速度(pulse/ms)
|
||||
SET_POTION_DEC_1=1.0
|
||||
SET_POTION_DEC_2=1.0
|
||||
SET_POTION_DEC_3=1.0
|
||||
@@ -266,7 +266,7 @@ SET_POTION_DEC_6=1.0
|
||||
SET_POTION_DEC_7=1.0
|
||||
SET_POTION_DEC_8=1.0
|
||||
|
||||
;XYZ定到位判断次数
|
||||
;XYZ定到位判断次数
|
||||
SET_POSITION_COUNT_1=240
|
||||
SET_POSITION_COUNT_2=240
|
||||
SET_POSITION_COUNT_3=240
|
||||
@@ -277,20 +277,20 @@ SET_POSITION_COUNT_7=240
|
||||
SET_POSITION_COUNT_8=240
|
||||
|
||||
[COMPORT]
|
||||
;灯光控制器类型选择
|
||||
;0:启用c++调用灯光,不使用STM32 USB控制时,需要把下面的IS_STM32_USB改为0
|
||||
;1:wpf直接调用;
|
||||
;2:DP光源控制器;
|
||||
;3:旧的6环8区为3(环形可调);
|
||||
;4:新的6环8区为4(扇区可调);
|
||||
;5:STM32控制器,IP地址在exe目录下的CameraNum.ini中修改
|
||||
;61:OPT光源控制器网络模式(111ms),IP地址在exe目录下的CameraNum.ini中修改,串口模式62(44ms);
|
||||
;灯光控制器类型选择
|
||||
;0:启用c++调用灯光,不使用STM32 USB控制时,需要把下面的IS_STM32_USB改为0
|
||||
;1:wpf直接调用;
|
||||
;2:DP光源控制器;
|
||||
;3:旧的6环8区为3(环形可调);
|
||||
;4:新的6环8区为4(扇区可调);
|
||||
;5:STM32控制器,IP地址在exe目录下的CameraNum.ini中修改
|
||||
;61:OPT光源控制器网络模式(111ms),IP地址在exe目录下的CameraNum.ini中修改,串口模式62(44ms);
|
||||
COM_PORT_CPP_WPF=0
|
||||
|
||||
;使用stm32时,是否使用USB通讯,使用该功能时,COM_PORT_CPP_WPF必须等于0
|
||||
;使用stm32时,是否使用USB通讯,使用该功能时,COM_PORT_CPP_WPF必须等于0
|
||||
IS_STM32_USB=0
|
||||
|
||||
;是否打开第一个串,1为打开,0为关闭,默认0
|
||||
;是否打开第一个串,1为打开,0为关闭,默认0
|
||||
IS_COM_PORT_A=0
|
||||
COM_PORT_A=2
|
||||
COM_PORT_A_LED_1=1
|
||||
@@ -298,7 +298,7 @@ COM_PORT_A_LED_2=1
|
||||
COM_PORT_A_LED_3=1
|
||||
COM_PORT_A_LED_4=1
|
||||
|
||||
;是否打开第二个串,1为打开,0为关闭,默认0
|
||||
;是否打开第二个串,1为打开,0为关闭,默认0
|
||||
IS_COM_PORT_B=0
|
||||
COM_PORT_B=6
|
||||
COM_PORT_B_LED_1=1
|
||||
@@ -307,17 +307,17 @@ COM_PORT_B_LED_3=1
|
||||
COM_PORT_B_LED_4=1
|
||||
|
||||
[TRRIGER]
|
||||
;线性点触发的脉冲宽度
|
||||
;线性点触发的脉冲宽度
|
||||
LINEAR_PULSE_WIDTH=500
|
||||
|
||||
;等间距触发的脉冲宽度
|
||||
;等间距触发的脉冲宽度
|
||||
INTERVAL_PULSE_WIDTH=500
|
||||
|
||||
;手动触发
|
||||
;手动触发
|
||||
HOLD_TIME=150
|
||||
|
||||
[LOG]
|
||||
;是否打开记录,默认0为关闭,1位打开,;LOG_IS_OPEN_0为是否打开记录功能
|
||||
;是否打开记录,默认0为关闭,1位打开,;LOG_IS_OPEN_0为是否打开记录功能
|
||||
LOG_IS_OPEN_0=1
|
||||
LOG_IS_OPEN_1=1
|
||||
LOG_IS_OPEN_2=1
|
||||
@@ -327,9 +327,9 @@ LOG_IS_OPEN_5=0
|
||||
LOG_IS_OPEN_6=0
|
||||
LOG_IS_OPEN_7=0
|
||||
LOG_IS_OPEN_8=0
|
||||
;是否启用统计定位函数的时间日志,1:启用,默认0关闭
|
||||
;是否启用统计定位函数的时间日志,1:启用,默认0关闭
|
||||
LOG2_IS_OPEN=0
|
||||
;定位几次后,计算这几次总共用时mm,默认4次
|
||||
;定位几次后,计算这几次总共用时mm,默认4次
|
||||
LOG_SUM_COUNT=0
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user