#对专机2的支持,新增每次都回家配置;当配置该项后,原回家标志位即使为真,仍会回家

This commit is contained in:
zhengxuan.zhang
2025-08-12 13:18:56 +08:00
parent 1ac2a8a70c
commit 659fafb4a3
4 changed files with 42 additions and 22 deletions
+38 -20
View File
@@ -1132,7 +1132,8 @@ HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
//判断是否需要回家 //判断是否需要回家
bool home(false); bool home(false);
IsHomed(home); IsHomed(home);
if (home == true)
if (home == true && !m_IsHomeEveryTime) //不需要每次都回家,且已经回家了
{ {
g_pLogger->SendAndFlushWithTime(L"[HomeMachine] IsHomed No Need Go Home\n"); g_pLogger->SendAndFlushWithTime(L"[HomeMachine] IsHomed No Need Go Home\n");
return HSI_STATUS_NORMAL; return HSI_STATUS_NORMAL;
@@ -3616,30 +3617,38 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double P
//开始运动到指定位置,多轴运动 //开始运动到指定位置,多轴运动
double Points[] = { PositionX, PositionY, PositionZ }; //目标位置点 double Points[] = { PositionX, PositionY, PositionZ }; //目标位置点
//if (!acsc_ToPointM(handleACS, 0, ACSAxisNumbers, Points, nullptr)) //移动到绝对位置
//{ if (m_isSynchronized ==1)
// g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] ACS Multi Motion Error\n");
// ErrorsHandler();
//}
//使用三个轴的分别运动,替代整体运动 acsc_ToPointM,来解决多轴不同速度运动的问题
if (!acsc_ToPoint(handleACS, 0, ACSAxisNumbers[0], PositionX, nullptr)) //移动到绝对位置
{ {
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] X轴移动出错 \n"); //使用三个轴的分别运动,替代整体运动 acsc_ToPointM,来解决多轴不同速度运动的问题
ErrorsHandler(); if (!acsc_ToPoint(handleACS, 0, ACSAxisNumbers[0], PositionX, nullptr)) //移动到绝对位置
{
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] X轴移动出错 \n");
ErrorsHandler();
}
if (!acsc_ToPoint(handleACS, 0, ACSAxisNumbers[1], PositionY, nullptr)) //移动到绝对位置
{
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] Y轴移动出错\n");
ErrorsHandler();
}
if (!acsc_ToPoint(handleACS, 0, ACSAxisNumbers[2], PositionZ, nullptr)) //移动到绝对位置
{
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] Z轴移动出错\n");
ErrorsHandler();
}
} }
if (!acsc_ToPoint(handleACS, 0, ACSAxisNumbers[1], PositionY, nullptr)) //移动到绝对位置 else
{ {
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] Y轴移动出错\n"); if (!acsc_ToPointM(handleACS, 0, ACSAxisNumbers, Points, nullptr)) //移动到绝对位置
ErrorsHandler(); {
} g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] ACS Multi Motion Error\n");
if (!acsc_ToPoint(handleACS, 0, ACSAxisNumbers[2], PositionZ, nullptr)) //移动到绝对位置 ErrorsHandler();
{ }
g_pLogger->SendAndFlushWithTime(L"[SetPositionXyz] Z轴移动出错\n");
ErrorsHandler();
} }
//状态更新 //状态更新
if (eType == HSI_MOTION_MOVE_NOWAIT) //非等待 if (eType == HSI_MOTION_MOVE_NOWAIT) //非等待
{ {
@@ -4299,7 +4308,16 @@ HSI_STATUS HSI_Motion::Load_EF3_Config_Inifile(CString GoogolIniFile)
m_IsUseEF3 = GetPrivateProfileInt(L"EF3", L"IS_USEEF3", 0, csAppPath); m_IsUseEF3 = GetPrivateProfileInt(L"EF3", L"IS_USEEF3", 0, csAppPath);
m_IsUseACS = GetPrivateProfileInt(L"EF3", L"IS_USEACS", 0, csAppPath); m_IsUseACS = GetPrivateProfileInt(L"EF3", L"IS_USEACS", 0, csAppPath);
m_IsUseSimulator = GetPrivateProfileInt(L"EF3", L"IS_USE_SIMULATOR", 0, csAppPath); m_IsUseSimulator = GetPrivateProfileInt(L"EF3", L"IS_USE_SIMULATOR", 0, csAppPath);
m_isSynchronized = GetPrivateProfileInt(L"EF3", L"IS_Synchronized", 1, csAppPath);
g_pLogger->SendAndFlushWithTime(L"[Load_EF3_Config_Inifile] m_IsUseEF3: %d, m_IsUseACS: %d, m_IsUseSimulator: %d, m_isSynchronized: %d\n",
m_IsUseEF3, m_IsUseACS, m_IsUseSimulator, m_isSynchronized);
// 定义变量,保存 是否每次都回家
m_IsHomeEveryTime = GetPrivateProfileInt(L"EF3", L"IS_HOME_EVERYTIME", 1, csAppPath);
g_pLogger->SendAndFlushWithTime(L"[Load_EF3_Config_Inifile] m_IsHomeEveryTime: %d\n", m_IsHomeEveryTime);
m_ForSoft = GetPrivateProfileInt(L"SOFTWARE", L"USE_SOFTWARE", 0, csAppPath); m_ForSoft = GetPrivateProfileInt(L"SOFTWARE", L"USE_SOFTWARE", 0, csAppPath);
// 从配置文件中读取IP地址 // 从配置文件中读取IP地址
TCHAR buffer[50]; TCHAR buffer[50];
@@ -4308,7 +4326,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Config_Inifile(CString GoogolIniFile)
// 将TCHAR类型的buffer转换为char类型的m_ACS_IPAddresses // 将TCHAR类型的buffer转换为char类型的m_ACS_IPAddresses
size_t convertedChars = 0; size_t convertedChars = 0;
wcstombs_s(&convertedChars, m_ACS_IPAddresses, buffer, _TRUNCATE); wcstombs_s(&convertedChars, m_ACS_IPAddresses, buffer, _TRUNCATE);
g_pLogger->SendAndFlushWithTime(L"ACS IP Address: %S\n", m_ACS_IPAddresses); g_pLogger->SendAndFlushWithTime(L"[Load_EF3_Config_Inifile] ACS IP Address: %S\n", m_ACS_IPAddresses);
m_IsUse_HSICompensation = GetPrivateProfileInt(L"ASIX", L"IS_USE_HSICOMPENSATION", 0, csAppPath); m_IsUse_HSICompensation = GetPrivateProfileInt(L"ASIX", L"IS_USE_HSICOMPENSATION", 0, csAppPath);
m_Compensation_Pluse = GetPrivateProfileInt(L"ASIX", L"COMPENSATE_PLUSE", 20, csAppPath); m_Compensation_Pluse = GetPrivateProfileInt(L"ASIX", L"COMPENSATE_PLUSE", 20, csAppPath);
+2
View File
@@ -482,6 +482,8 @@ public:
int m_IsUseSimulator; //是否启用模拟器 int m_IsUseSimulator; //是否启用模拟器
char m_ACS_IPAddresses[50]; // 定义字符串,存储ACS IP地址 char m_ACS_IPAddresses[50]; // 定义字符串,存储ACS IP地址
int m_isSynchronized ; //是否启用同步 0为不启用 1为启用 默认为0
int m_IsHomeEveryTime; //是否每次都回原点 0为不启用 1为启用 默认为0
int m_DeviceType; //设备类型,0为通用设备,1为三激光, 2为大视野,3为转盘设备 默认为0 int m_DeviceType; //设备类型,0为通用设备,1为三激光, 2为大视野,3为转盘设备 默认为0
int m_UseAxisNum; //转盘设备使用轴号 int m_UseAxisNum; //转盘设备使用轴号
int m_IbinCount; //记录获取到的分bin数 int m_IbinCount; //记录获取到的分bin数
+2 -2
View File
@@ -12,5 +12,5 @@
#define HSI_VERSION_REVNUM #define HSI_VERSION_REVNUM
#define HSI_VERSION_BUILD_DATE _T(__DATE__ ) #define HSI_VERSION_BUILD_DATE _T(__DATE__ )
#define HSI_VERSION_BUILD_TIME _T(__TIME__ ) #define HSI_VERSION_BUILD_TIME _T(__TIME__ )
#define HSI_FILE_DESCRIPTION "2025.05.23 / 16:01 " #define HSI_FILE_DESCRIPTION "2025.08.12 / 13:17 "
#define HSI_FILE_CSDESCRIPTION _T("2025.05.23 / 16:01 ") #define HSI_FILE_CSDESCRIPTION _T("2025.08.12 / 13:17 ")