结构整理,修改文件编码格式适配VS gb2312
This commit is contained in:
@@ -102,7 +102,6 @@ Global
|
|||||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x64.Build.0 = Debug|Any CPU
|
|
||||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x86.Build.0 = Debug|Any CPU
|
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
|||||||
+43
-26
@@ -113,6 +113,15 @@ HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM()
|
|||||||
//===========================================================================
|
//===========================================================================
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// MOTION API
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#pragma region Motion API
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types)
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
@@ -188,25 +197,19 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
/**
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed)
|
||||||
* .ѯ�ʻ�̨�Ƿ���ԭ��
|
{
|
||||||
*
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
* \param bHomed �Ƿ��� ԭ ��
|
if (g_pHSI_Motion)
|
||||||
* \return
|
{
|
||||||
*/
|
rStatus = g_pHSI_Motion->IsHomed(bHomed);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed)
|
}
|
||||||
//{
|
else
|
||||||
// auto rStatus = HSI_STATUS_NORMAL;
|
{
|
||||||
// if (g_pHSI_Motion)
|
rStatus = HSI_STATUS_FAILED;
|
||||||
// {
|
}
|
||||||
// rStatus = g_pHSI_Motion->IsHomed(bHomed);
|
return rStatus;
|
||||||
// }
|
}
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// rStatus = HSI_STATUS_FAILED;
|
|
||||||
// }
|
|
||||||
// return rStatus;
|
|
||||||
//}
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis,double &Speed)
|
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis,double &Speed)
|
||||||
{
|
{
|
||||||
@@ -615,7 +618,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_IOPROGRAM_DATA(byte* SendData,int length)
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_PPStartPoint(double *startPoint)
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_PPStartPoint(double *startPoint)
|
||||||
{
|
{
|
||||||
@@ -753,7 +755,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GLUE_DISPENSERSTART(double xOffset, double
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_PTPDISTANCE(double& ptpDistance, int& spTimeCount)
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_PTPDISTANCE(double& ptpDistance, int& spTimeCount)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
@@ -980,9 +981,14 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_FINDORIGINTEST(bool type)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#pragma endregion
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
//²¹¹âµÆ
|
||||||
|
#ifdef USE_ILLUMINATION_API
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ILLUMINATION API
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#pragma region // ILLUMINATION API
|
#pragma region // ILLUMINATION API
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
@@ -1152,8 +1158,14 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_TESTLIGHT(bool flag)
|
|||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
// 0
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
#endif // USE_ILLUMINATION_API
|
||||||
|
|
||||||
|
//̽Õë
|
||||||
|
#ifdef USE_Probe_API
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Probe API
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#pragma region probe
|
#pragma region probe
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_API HSI_STATUS WINAPI HSI_TP_STARTUP()
|
HSI_API HSI_STATUS WINAPI HSI_TP_STARTUP()
|
||||||
@@ -1344,7 +1356,10 @@ HSI_API HSI_STATUS WINAPI HSI_TP_SHUTDOWN()
|
|||||||
//===========================================================================
|
//===========================================================================
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#endif
|
#endif // USE_Probe_API
|
||||||
|
|
||||||
|
//²âÊÔ
|
||||||
|
#ifdef Test
|
||||||
|
|
||||||
#pragma region Test
|
#pragma region Test
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
@@ -1363,3 +1378,5 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_COLLECTPOS(bool isEnable, MOTOR_AXISCHOOES_
|
|||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
|
#endif // Test
|
||||||
+39
-20
@@ -234,11 +234,11 @@ struct sHSIEventProperties
|
|||||||
|
|
||||||
// >>>> In Interfaces
|
// >>>> In Interfaces
|
||||||
typedef VOID(WINAPI *pEventCallback)(HSI_EVENT_TYPE EventType, HSI_EVENT_RESPONSE_TYPE ResponseType, UINT EventID, char EventData[HSI_MaxStringLength + 1], UINT &EventCallbackID);
|
typedef VOID(WINAPI *pEventCallback)(HSI_EVENT_TYPE EventType, HSI_EVENT_RESPONSE_TYPE ResponseType, UINT EventID, char EventData[HSI_MaxStringLength + 1], UINT &EventCallbackID);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly);
|
HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT &APIVersionMajor, UINT &APIVersionMinor);
|
HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT &APIVersionMajor, UINT &APIVersionMinor);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes);
|
HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback);
|
HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM();
|
HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM();
|
||||||
|
|
||||||
// <<<< Out Interfaces
|
// <<<< Out Interfaces
|
||||||
|
|
||||||
@@ -284,18 +284,18 @@ enum HSI_MOTION_IO_TYPE
|
|||||||
{
|
{
|
||||||
HSI_MOTION_INPUT = 0x0001,
|
HSI_MOTION_INPUT = 0x0001,
|
||||||
HSI_MOTION_INPUT_LIMIT_SWITCH,
|
HSI_MOTION_INPUT_LIMIT_SWITCH,
|
||||||
HSI_MOTION_INPUT_CH1,//�̸ߡ���Ϊ�ˡ�EF1����
|
HSI_MOTION_INPUT_CH1,//固高、众为兴、EF1输入
|
||||||
HSI_MOTION_INPUT_CH2,
|
HSI_MOTION_INPUT_CH2,
|
||||||
HSI_MOTION_INPUT_CH3,//���ڿ���������
|
HSI_MOTION_INPUT_CH3,//串口控制器输入
|
||||||
HSI_MOTION_INPUT_CH4,//��Ϊ���˶����ƿ���������
|
HSI_MOTION_INPUT_CH4,//众为兴运动控制卡测试输入
|
||||||
HSI_MOTION_INPUT_ALARM,//��������
|
HSI_MOTION_INPUT_ALARM,//驱动报警
|
||||||
|
|
||||||
HSI_MOTION_OUTPUT = 0x0100,
|
HSI_MOTION_OUTPUT = 0x0100,
|
||||||
HSI_MOTION_OUTPUT_LASER_PEN,
|
HSI_MOTION_OUTPUT_LASER_PEN,
|
||||||
HSI_MOTION_OUTPUT_CH1,//�̸ߡ���Ϊ�ˡ�EF1���
|
HSI_MOTION_OUTPUT_CH1,//固高、众为兴、EF1输出
|
||||||
HSI_MOTION_OUTPUT_CH2,
|
HSI_MOTION_OUTPUT_CH2,
|
||||||
HSI_MOTION_OUTPUT_CH3,//���ڿ��������
|
HSI_MOTION_OUTPUT_CH3,//串口控制器输出
|
||||||
HSI_MOTION_OUTPUT_CH4//��Ϊ���˶����ƿ��������
|
HSI_MOTION_OUTPUT_CH4//众为兴运动控制卡测试输出
|
||||||
};
|
};
|
||||||
|
|
||||||
const UINT HSI_MOTION_AXIS_ALL = HSI_MOTION_AXIS_X | HSI_MOTION_AXIS_Y | HSI_MOTION_AXIS_Z;
|
const UINT HSI_MOTION_AXIS_ALL = HSI_MOTION_AXIS_X | HSI_MOTION_AXIS_Y | HSI_MOTION_AXIS_Z;
|
||||||
@@ -326,11 +326,12 @@ enum HSI_SCAN_MOTION_TYPE
|
|||||||
HSI_SCAN_MOTION_SPEC_LOCA = 100,//EF1
|
HSI_SCAN_MOTION_SPEC_LOCA = 100,//EF1
|
||||||
HSI_SCAN_MOTION_EQ_DIS,
|
HSI_SCAN_MOTION_EQ_DIS,
|
||||||
HSI_SCAN_MOTION_EQ_DIS_II,
|
HSI_SCAN_MOTION_EQ_DIS_II,
|
||||||
HSI_SCAN_MOTION_LINEAR_TEST,//����ʹ��
|
HSI_SCAN_MOTION_LINEAR_TEST,//测试使用
|
||||||
HSI_SCAN_MOTION_EQ_TEST,//����ʹ��
|
HSI_SCAN_MOTION_EQ_TEST,//测试使用
|
||||||
HSI_SCAN_MOTION_MANUAL_TEST//����ʹ��
|
HSI_SCAN_MOTION_MANUAL_TEST//测试使用
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum HSI_ZOOM_TYPE
|
enum HSI_ZOOM_TYPE
|
||||||
{
|
{
|
||||||
HSI_ZOOM_MANUAL = 0,
|
HSI_ZOOM_MANUAL = 0,
|
||||||
@@ -347,8 +348,8 @@ const int HSI_MAX_POSITIONS_STORED = 500;
|
|||||||
|
|
||||||
// >>>> In Interfaces
|
// >>>> In Interfaces
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed);
|
||||||
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_XYZ(double &Speed);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_XYZ(double &Speed);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis, double &Speed);
|
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis, double &Speed);
|
||||||
@@ -368,10 +369,9 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_REFRESH_DEADBAND(double &Deadband);
|
|||||||
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG();
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG();
|
||||||
//HSI_API BOOL WINAPI HSI_MOTION_GET_PROBE_TOUCH();
|
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_TOUCH_MOVE(double dSpeed, double dEndPosX, double dEndPosY, double dEndPosZ, double dI, double dJ, double dK);
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZA_PROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &dI, double &dJ, double &dK, double &PositionA);
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITIONPROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &PositionA);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITIONPROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &PositionA);
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCODER_XYZ(long *lEncVal);
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCODER_XYZ(long *lEncVal);
|
||||||
|
|
||||||
@@ -389,6 +389,8 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_SET_DATA(UINT AxisTypes, HSI_SCAN_
|
|||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_START();
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_START();
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP();
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED_EX(UINT AxisTypes, UINT &Types);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED_EX(UINT AxisTypes, UINT &Types);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP_EX(UINT AxisTypes, bool bHome);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP_EX(UINT AxisTypes, bool bHome);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_RESOLUTION_EX(UINT AxisTypes, double &Scale);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_RESOLUTION_EX(UINT AxisTypes, double &Scale);
|
||||||
@@ -400,14 +402,24 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP();
|
|||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_EX(UINT AxisTypes, double &Accel);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_EX(UINT AxisTypes, double &Accel);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_EX(UINT AxisTypes, double Accel);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_EX(UINT AxisTypes, double Accel);
|
||||||
|
|
||||||
|
//暂未实现
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_MAGNIFICATION(UINT AxisTypes, double mag, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_MAGNIFICATION(UINT AxisTypes, double mag, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_MAGNIFICATION(UINT AxisTypes, double &mag);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_MAGNIFICATION(UINT AxisTypes, double &mag);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SCALE_POS(UINT AxisTypes, double ScalePos, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SCALE_POS(UINT AxisTypes, double ScalePos, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
||||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_POS(UINT AxisTypes, double &ScalePos);
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_POS(UINT AxisTypes, double &ScalePos);
|
||||||
|
|
||||||
|
//HSI_API BOOL WINAPI HSI_MOTION_GET_PROBE_TOUCH();
|
||||||
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_TOUCH_MOVE(double dSpeed, double dEndPosX, double dEndPosY, double dEndPosZ, double dI, double dJ, double dK);
|
||||||
|
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZA_PROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &dI, double &dJ, double &dK, double &PositionA);
|
||||||
|
|
||||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN();
|
HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN();
|
||||||
// <<<< Out Interfaces
|
// <<<< Out Interfaces
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef USE_Illumination_API
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Illumination API
|
// Illumination API
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -419,6 +431,7 @@ enum HSI_ILLUMINATION_INFO
|
|||||||
HSI_ILLUMINATION_INFO_SO7_III = 0x04,//shixuyong
|
HSI_ILLUMINATION_INFO_SO7_III = 0x04,//shixuyong
|
||||||
HSI_ILLUMINATION_INFO_TOTAL
|
HSI_ILLUMINATION_INFO_TOTAL
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_ILLUMINATION_BULB_TYPE
|
enum HSI_ILLUMINATION_BULB_TYPE
|
||||||
{
|
{
|
||||||
HSI_ILLUMINATION_BULB_ROUND = 1,
|
HSI_ILLUMINATION_BULB_ROUND = 1,
|
||||||
@@ -434,6 +447,7 @@ enum HSI_ILLUMINATION_LAMP_TYPE
|
|||||||
HSI_ILLUMINATION_LAMP_PROFILE = 2,
|
HSI_ILLUMINATION_LAMP_PROFILE = 2,
|
||||||
HSI_ILLUMINATION_LAMP_PROFILE_OUTER = 3
|
HSI_ILLUMINATION_LAMP_PROFILE_OUTER = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_ILLUMINATION_LAMP_CONTROL_TYPE
|
enum HSI_ILLUMINATION_LAMP_CONTROL_TYPE
|
||||||
{
|
{
|
||||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_WHOLE_LAMP = 0x0000,
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_WHOLE_LAMP = 0x0000,
|
||||||
@@ -442,12 +456,14 @@ enum HSI_ILLUMINATION_LAMP_CONTROL_TYPE
|
|||||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_SEGMENTS = 0x0004,
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_SEGMENTS = 0x0004,
|
||||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_OTHER
|
HSI_ILLUMINATION_LAMP_CONTROL_BY_OTHER
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_ILLUMINATION_BULB_STATE
|
enum HSI_ILLUMINATION_BULB_STATE
|
||||||
{
|
{
|
||||||
HSI_ILLUMINATION_BULB_STATE_TURN_ON = 0,
|
HSI_ILLUMINATION_BULB_STATE_TURN_ON = 0,
|
||||||
HSI_ILLUMINATION_BULB_STATE_TURN_OFF = 1,
|
HSI_ILLUMINATION_BULB_STATE_TURN_OFF = 1,
|
||||||
HSI_ILLUMINATION_BULB_STATE_TOTAL
|
HSI_ILLUMINATION_BULB_STATE_TOTAL
|
||||||
};
|
};
|
||||||
|
|
||||||
enum HSI_ILLUMINATION_TYPE
|
enum HSI_ILLUMINATION_TYPE
|
||||||
{
|
{
|
||||||
HSI_ILLUMINATION_SUPPORTS_DCC_CONTROL = 0x0001,
|
HSI_ILLUMINATION_SUPPORTS_DCC_CONTROL = 0x0001,
|
||||||
@@ -485,6 +501,9 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_SET_LAMP_STATE_ALL(int _LampInfo, int
|
|||||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_SHUTDOWN();
|
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_SHUTDOWN();
|
||||||
// <<<< Out Interfaces
|
// <<<< Out Interfaces
|
||||||
|
|
||||||
|
#endif // !USE_Illumination_API
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class HSI
|
class HSI
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ private:
|
|||||||
double seekSpeed;
|
double seekSpeed;
|
||||||
double retractDis;
|
double retractDis;
|
||||||
double retractManDis;
|
double retractManDis;
|
||||||
E_EF3_PROBE_STATUS probeRunStatus;//探针运行状态
|
E_EF3_PROBE_STATUS probeRunStatus;//探锟斤拷锟斤拷锟斤拷状态
|
||||||
};
|
};
|
||||||
|
|
||||||
extern HSI_Function *g_pHSI_Function;
|
extern HSI_Function *g_pHSI_Function;
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
<WarningLevel>Level3</WarningLevel>
|
<WarningLevel>Level3</WarningLevel>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;HSI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;HSI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
@@ -178,6 +178,7 @@ xcopy "$(OutDir)\$(ProjectName).pdb" ..\HSI_GOOGOL_GTS800_WPFTest\bin\Debug\HSI.
|
|||||||
<ClInclude Include="HSI_Motion.h" />
|
<ClInclude Include="HSI_Motion.h" />
|
||||||
<ClInclude Include="HSI_Sevenocean_EF3.h" />
|
<ClInclude Include="HSI_Sevenocean_EF3.h" />
|
||||||
<ClInclude Include="resource.h" />
|
<ClInclude Include="resource.h" />
|
||||||
|
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
|
||||||
<ClInclude Include="stdafx.h" />
|
<ClInclude Include="stdafx.h" />
|
||||||
<ClInclude Include="targetver.h" />
|
<ClInclude Include="targetver.h" />
|
||||||
<ClInclude Include="version.h" />
|
<ClInclude Include="version.h" />
|
||||||
|
|||||||
@@ -19,5 +19,6 @@
|
|||||||
<ClInclude Include="stdafx.h" />
|
<ClInclude Include="stdafx.h" />
|
||||||
<ClInclude Include="targetver.h" />
|
<ClInclude Include="targetver.h" />
|
||||||
<ClInclude Include="version.h" />
|
<ClInclude Include="version.h" />
|
||||||
|
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
+123
-124
@@ -1,5 +1,4 @@
|
|||||||
// HSI_Motion.cpp : 定义 DLL 的初始化例程。
|
// HSI_Motion.cpp : 定义 DLL 的初始化例程。
|
||||||
//
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "HSI.h"
|
#include "HSI.h"
|
||||||
#include "HSI_Sevenocean_EF3.h"
|
#include "HSI_Sevenocean_EF3.h"
|
||||||
@@ -18,7 +17,7 @@ using namespace std;
|
|||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_Motion *g_pHSI_Motion = nullptr;
|
HSI_Motion *g_pHSI_Motion = nullptr;
|
||||||
CLogger extern *g_pLogger = nullptr;
|
CLogger extern *g_pLogger = nullptr;
|
||||||
HANDLE hCom;//串口句柄
|
HANDLE hCom;//串口句柄
|
||||||
|
|
||||||
const int WSA_MAJOR_VERSION = 2;
|
const int WSA_MAJOR_VERSION = 2;
|
||||||
const int WSA_MINOR_VERSION = 2;
|
const int WSA_MINOR_VERSION = 2;
|
||||||
@@ -127,7 +126,7 @@ HSI_Motion::HSI_Motion()
|
|||||||
bSaveSpeedFlag = false;
|
bSaveSpeedFlag = false;
|
||||||
m_IsUseManualRunin = 0;
|
m_IsUseManualRunin = 0;
|
||||||
fourthAxisFlag = false;
|
fourthAxisFlag = false;
|
||||||
bCircleRun = false;//圆弧插补
|
bCircleRun = false;//圆弧插补
|
||||||
m_UseAxisNum = 1;
|
m_UseAxisNum = 1;
|
||||||
jogAxisNum = 0;
|
jogAxisNum = 0;
|
||||||
jogDirFlag = false;
|
jogDirFlag = false;
|
||||||
@@ -136,9 +135,9 @@ HSI_Motion::HSI_Motion()
|
|||||||
set_start = 0;
|
set_start = 0;
|
||||||
set_end = 0;
|
set_end = 0;
|
||||||
m_iSpeedType = 0;
|
m_iSpeedType = 0;
|
||||||
m_axisDirX = 0;//探针运动时X轴的运动方向
|
m_axisDirX = 0;//探针运动时X轴的运动方向
|
||||||
m_axisDirY = 0;//探针运动时Y轴的运动方向
|
m_axisDirY = 0;//探针运动时Y轴的运动方向
|
||||||
m_axisDirZ = 0;//探针运动时Z轴的运动方向
|
m_axisDirZ = 0;//探针运动时Z轴的运动方向
|
||||||
m_probeSeekSpeed = 0;
|
m_probeSeekSpeed = 0;
|
||||||
|
|
||||||
bUseGlueDispenser = false;
|
bUseGlueDispenser = false;
|
||||||
@@ -147,9 +146,9 @@ HSI_Motion::HSI_Motion()
|
|||||||
m_iGlueAccSpeed = 1;
|
m_iGlueAccSpeed = 1;
|
||||||
GlueDispenserindexNum = 0;
|
GlueDispenserindexNum = 0;
|
||||||
|
|
||||||
m_isUseAport = 0;//A串口
|
m_isUseAport = 0;//A串口
|
||||||
m_portAnum = 0;
|
m_portAnum = 0;
|
||||||
m_isUseBport = 0;//B串口
|
m_isUseBport = 0;//B串口
|
||||||
m_portBnum = 0;
|
m_portBnum = 0;
|
||||||
m_bEmergencyState = false;
|
m_bEmergencyState = false;
|
||||||
SpCompleteTStart = 0;
|
SpCompleteTStart = 0;
|
||||||
@@ -182,7 +181,7 @@ HSI_Motion::HSI_Motion()
|
|||||||
}
|
}
|
||||||
|
|
||||||
CTime tm = CTime::GetCurrentTime();
|
CTime tm = CTime::GetCurrentTime();
|
||||||
CString csTime = tm.Format("%Y-%m-%d");//显示年月日
|
CString csTime = tm.Format("%Y-%m-%d");//显示年月日
|
||||||
CString dir = L"\\Log\\" + csTime += L".SO7_EF3.Log";
|
CString dir = L"\\Log\\" + csTime += L".SO7_EF3.Log";
|
||||||
g_pLogger = new CLogger(dir);
|
g_pLogger = new CLogger(dir);
|
||||||
g_pLogger2 = new CLogger(L"\\Log\\EF3_SumTime.Log");
|
g_pLogger2 = new CLogger(L"\\Log\\EF3_SumTime.Log");
|
||||||
@@ -190,7 +189,7 @@ HSI_Motion::HSI_Motion()
|
|||||||
{
|
{
|
||||||
for (int j = 0; j < 5; j++)
|
for (int j = 0; j < 5; j++)
|
||||||
{
|
{
|
||||||
m_JogDriveSpeed[j][i] = 10; //表示5个档位
|
m_JogDriveSpeed[j][i] = 10; //表示5个档位
|
||||||
m_JogStartSpeed[j][i] = 10;
|
m_JogStartSpeed[j][i] = 10;
|
||||||
m_JogAccLine[j][i] = 5;
|
m_JogAccLine[j][i] = 5;
|
||||||
m_JogAccCurve[j][i] = 0;
|
m_JogAccCurve[j][i] = 0;
|
||||||
@@ -293,12 +292,12 @@ bool HSI_Motion::PortInit(int iSerialComPort, int iBuadRate)
|
|||||||
sprintf_s(buf, "COM%d", iSerialComPort);
|
sprintf_s(buf, "COM%d", iSerialComPort);
|
||||||
CString comName(buf);
|
CString comName(buf);
|
||||||
hCom = CreateFile(comName,
|
hCom = CreateFile(comName,
|
||||||
GENERIC_READ | GENERIC_WRITE, //允许读和写
|
GENERIC_READ | GENERIC_WRITE, //允许读和写
|
||||||
0, //独占方式,串口必须为0
|
0, //独占方式,串口必须为0
|
||||||
NULL,
|
NULL,
|
||||||
OPEN_EXISTING, //打开而不是创建,串口必须为打开
|
OPEN_EXISTING, //打开而不是创建,串口必须为打开
|
||||||
0, //同步方式,同步执行时,函数直到操作完成后才返回
|
0, //同步方式,同步执行时,函数直到操作完成后才返回
|
||||||
NULL);//串口必须为NULL
|
NULL);//串口必须为NULL
|
||||||
if (hCom != (HANDLE)-1)
|
if (hCom != (HANDLE)-1)
|
||||||
{
|
{
|
||||||
PurgeComm(hCom, PURGE_TXCLEAR | PURGE_RXCLEAR);
|
PurgeComm(hCom, PURGE_TXCLEAR | PURGE_RXCLEAR);
|
||||||
@@ -315,7 +314,7 @@ bool HSI_Motion::PortInit(int iSerialComPort, int iBuadRate)
|
|||||||
return false;//Setting Error!!!!
|
return false;//Setting Error!!!!
|
||||||
}
|
}
|
||||||
|
|
||||||
//设置读写超时时间
|
//设置读写超时时间
|
||||||
COMMTIMEOUTS to;
|
COMMTIMEOUTS to;
|
||||||
memset(&to, 0, sizeof(to));
|
memset(&to, 0, sizeof(to));
|
||||||
to.ReadIntervalTimeout = 100;
|
to.ReadIntervalTimeout = 100;
|
||||||
@@ -371,7 +370,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器打开失败,串口");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器打开失败,串口");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
@@ -418,7 +417,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
g_pLogger->SendAndFlushWithTime(L"[Startup] DriverAlarmStatus HSI_STATUS_FAILED\n");
|
g_pLogger->SendAndFlushWithTime(L"[Startup] DriverAlarmStatus HSI_STATUS_FAILED\n");
|
||||||
//return HSI_STATUS_FAILED;
|
//return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
//无效软限位
|
//无效软限位
|
||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
m_cSendData[1] = CT_MOTOR_SET;
|
m_cSendData[1] = CT_MOTOR_SET;
|
||||||
m_cSendData[2] = AXIS_XYZU;
|
m_cSendData[2] = AXIS_XYZU;
|
||||||
@@ -431,12 +430,12 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
m_cSendData[9] = 0;
|
m_cSendData[9] = 0;
|
||||||
m_cSendData[10] = 0;
|
m_cSendData[10] = 0;
|
||||||
m_cSendData[11] = 0;
|
m_cSendData[11] = 0;
|
||||||
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);//初始化防止第一次无效
|
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);//初始化防止第一次无效
|
||||||
Sleep(5);
|
Sleep(5);
|
||||||
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);
|
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);
|
||||||
g_pLogger->SendAndFlushWithTime(L"[Startup] Limit no Enable\n");
|
g_pLogger->SendAndFlushWithTime(L"[Startup] Limit no Enable\n");
|
||||||
|
|
||||||
//设置方向4个轴的方向,按位
|
//设置方向4个轴的方向,按位
|
||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
m_cSendData[1] = CT_MOTOR_SET;
|
m_cSendData[1] = CT_MOTOR_SET;
|
||||||
m_cSendData[2] = AXIS_X;
|
m_cSendData[2] = AXIS_X;
|
||||||
@@ -448,28 +447,28 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
Sleep(10);
|
Sleep(10);
|
||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
m_cSendData[1] = CT_MDATA_INIT;
|
m_cSendData[1] = CT_MDATA_INIT;
|
||||||
m_cSendData[2] = m_motorType & 0xff; //电机类型(步进电机或伺服电机)
|
m_cSendData[2] = m_motorType & 0xff; //电机类型(步进电机或伺服电机)
|
||||||
m_cSendData[3] = m_IsUseExternalTrigger; //是否启用外触发功能
|
m_cSendData[3] = m_IsUseExternalTrigger; //是否启用外触发功能
|
||||||
m_cSendData[4] = m_IsUseSixRingEightArea; //是否启用六环八区灯功能
|
m_cSendData[4] = m_IsUseSixRingEightArea; //是否启用六环八区灯功能
|
||||||
m_cSendData[5] = m_IsHardLimit;
|
m_cSendData[5] = m_IsHardLimit;
|
||||||
m_cSendData[6] = m_IsEnableAxis;
|
m_cSendData[6] = m_IsEnableAxis;
|
||||||
m_cSendData[7] = m_IsProbe; //是否启用探针
|
m_cSendData[7] = m_IsProbe; //是否启用探针
|
||||||
m_cSendData[8] = m_EF3LightType; //5V高频灯光配置
|
m_cSendData[8] = m_EF3LightType; //5V高频灯光配置
|
||||||
m_cSendData[9] = m_IsUseRocker; //是否启用摇杆
|
m_cSendData[9] = m_IsUseRocker; //是否启用摇杆
|
||||||
m_cSendData[10] = m_IsHavePattern; //光栅
|
m_cSendData[10] = m_IsHavePattern; //光栅
|
||||||
m_cSendData[11] = m_AxisHomeDirection; //轴回家方向
|
m_cSendData[11] = m_AxisHomeDirection; //轴回家方向
|
||||||
m_cSendData[12] = m_IsCollectPos; //是否从串口打印位置
|
m_cSendData[12] = m_IsCollectPos; //是否从串口打印位置
|
||||||
m_cSendData[16] = m_IsLightDebug; //是否不回家也能调试灯光
|
m_cSendData[16] = m_IsLightDebug; //是否不回家也能调试灯光
|
||||||
|
|
||||||
if (m_IsStartInput == 1 && m_IsUseRocker == 2)
|
if (m_IsStartInput == 1 && m_IsUseRocker == 2)
|
||||||
{
|
{
|
||||||
m_cSendData[14] = m_StartInputPort >> 8 & 0xff; //外部启动端口号 H
|
m_cSendData[14] = m_StartInputPort >> 8 & 0xff; //外部启动端口号 H
|
||||||
m_cSendData[15] = m_StartInputPort & 0xff; //外部启动端口号 L
|
m_cSendData[15] = m_StartInputPort & 0xff; //外部启动端口号 L
|
||||||
}
|
}
|
||||||
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);
|
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
|
|
||||||
////步进电机补偿值设定
|
////步进电机补偿值设定
|
||||||
//if (m_motorType == 0)
|
//if (m_motorType == 0)
|
||||||
//{
|
//{
|
||||||
// m_cSendData[0] = CT_MOTOR;
|
// m_cSendData[0] = CT_MOTOR;
|
||||||
@@ -485,7 +484,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
// g_pLogger->SendAndFlushWithTime(L"[Startup] Set Encoder Dir\n");
|
// g_pLogger->SendAndFlushWithTime(L"[Startup] Set Encoder Dir\n");
|
||||||
//}
|
//}
|
||||||
|
|
||||||
//多光源板
|
//多光源板
|
||||||
if (m_bISUseMoreLights > 0)
|
if (m_bISUseMoreLights > 0)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_bISUseMoreLights; i++)
|
for (int i = 0; i < m_bISUseMoreLights; i++)
|
||||||
@@ -505,7 +504,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板打开网口失败");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板打开网口失败");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
@@ -529,7 +528,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//摇杆速度设置
|
//摇杆速度设置
|
||||||
if (m_IsUseRocker == 1)
|
if (m_IsUseRocker == 1)
|
||||||
{
|
{
|
||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
@@ -557,7 +556,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
Sleep(5);
|
Sleep(5);
|
||||||
g_pLogger->SendAndFlushWithTime(L"[Startup] Set Rocker Success\n");
|
g_pLogger->SendAndFlushWithTime(L"[Startup] Set Rocker Success\n");
|
||||||
}
|
}
|
||||||
//摇杆2下载档位
|
//摇杆2下载档位
|
||||||
if (m_IsUseRocker == 2)
|
if (m_IsUseRocker == 2)
|
||||||
{
|
{
|
||||||
SetAllGears();
|
SetAllGears();
|
||||||
@@ -604,7 +603,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取EF3固件版本
|
//获取EF3固件版本
|
||||||
HSI_STATUS HSI_Motion::GetFirmwareVersion(byte *version)
|
HSI_STATUS HSI_Motion::GetFirmwareVersion(byte *version)
|
||||||
{
|
{
|
||||||
m_Thread_StateData = HSI_THREAD_PAUSED;
|
m_Thread_StateData = HSI_THREAD_PAUSED;
|
||||||
@@ -663,7 +662,7 @@ HSI_STATUS HSI_Motion::GetFirmwareVersion(byte *version)
|
|||||||
return HSI_STATUS_NORMAL;
|
return HSI_STATUS_NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
//回家
|
//回家
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
||||||
{
|
{
|
||||||
@@ -680,7 +679,7 @@ HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
|||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
{
|
{
|
||||||
g_pLogger->SendAndFlushWithTime(L"[HomeMachine] In\n");
|
g_pLogger->SendAndFlushWithTime(L"[HomeMachine] In\n");
|
||||||
//判断是否需要回家
|
//判断是否需要回家
|
||||||
bool home(false);
|
bool home(false);
|
||||||
IsHomed(home);
|
IsHomed(home);
|
||||||
if (home == true)
|
if (home == true)
|
||||||
@@ -700,7 +699,7 @@ HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
|||||||
}
|
}
|
||||||
if (m_bEmergencyState)
|
if (m_bEmergencyState)
|
||||||
{
|
{
|
||||||
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
CurrentHomeMachineState = E_EF3_HOME_ING;
|
CurrentHomeMachineState = E_EF3_HOME_ING;
|
||||||
@@ -842,7 +841,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
|||||||
if (m_Home_Machine_Axis[i] == 1)
|
if (m_Home_Machine_Axis[i] == 1)
|
||||||
{
|
{
|
||||||
AxisTypes = IndexConvertAxis(i);
|
AxisTypes = IndexConvertAxis(i);
|
||||||
//无效软限位
|
//无效软限位
|
||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
m_cSendData[1] = CT_MOTOR_SET;
|
m_cSendData[1] = CT_MOTOR_SET;
|
||||||
m_cSendData[2] = AxisTypes;
|
m_cSendData[2] = AxisTypes;
|
||||||
@@ -974,7 +973,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
|||||||
}
|
}
|
||||||
if (m_bEmergencyState)
|
if (m_bEmergencyState)
|
||||||
{
|
{
|
||||||
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
if (Count > 25000)
|
if (Count > 25000)
|
||||||
@@ -984,7 +983,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "回家超时");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "回家超时");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
@@ -995,22 +994,22 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
|||||||
bool bHomed = true;
|
bool bHomed = true;
|
||||||
if ((m_SO7_Serial.m_RecvData[38] & 0x01) == 0 && m_Home_Machine_Axis[1] == 1)
|
if ((m_SO7_Serial.m_RecvData[38] & 0x01) == 0 && m_Home_Machine_Axis[1] == 1)
|
||||||
{
|
{
|
||||||
strcat_s(MessageHome, 30, "1、");
|
strcat_s(MessageHome, 30, "1、");
|
||||||
bHomed = false;
|
bHomed = false;
|
||||||
}
|
}
|
||||||
if ((m_SO7_Serial.m_RecvData[38] & 0x02) == 0 && m_Home_Machine_Axis[2] == 1)
|
if ((m_SO7_Serial.m_RecvData[38] & 0x02) == 0 && m_Home_Machine_Axis[2] == 1)
|
||||||
{
|
{
|
||||||
strcat_s(MessageHome, 30, "2、");
|
strcat_s(MessageHome, 30, "2、");
|
||||||
bHomed = false;
|
bHomed = false;
|
||||||
}
|
}
|
||||||
if ((m_SO7_Serial.m_RecvData[38] & 0x04) == 0 && m_Home_Machine_Axis[3] == 1)
|
if ((m_SO7_Serial.m_RecvData[38] & 0x04) == 0 && m_Home_Machine_Axis[3] == 1)
|
||||||
{
|
{
|
||||||
strcat_s(MessageHome, 30, "3、");
|
strcat_s(MessageHome, 30, "3、");
|
||||||
bHomed = false;
|
bHomed = false;
|
||||||
}
|
}
|
||||||
if ((m_SO7_Serial.m_RecvData[38] & 0x08) == 0 && m_Home_Machine_Axis[4] == 1)
|
if ((m_SO7_Serial.m_RecvData[38] & 0x08) == 0 && m_Home_Machine_Axis[4] == 1)
|
||||||
{
|
{
|
||||||
strcat_s(MessageHome, 30, "4、");
|
strcat_s(MessageHome, 30, "4、");
|
||||||
bHomed = false;
|
bHomed = false;
|
||||||
}
|
}
|
||||||
if (!bHomed)
|
if (!bHomed)
|
||||||
@@ -1019,7 +1018,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcat_s(MessageHome, 100, "轴回家失败!");
|
strcat_s(MessageHome, 100, "轴回家失败!");
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, MessageHome);
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, MessageHome);
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
@@ -1069,11 +1068,11 @@ HSI_STATUS HSI_Motion::IsHomed(bool &bHomed)
|
|||||||
g_pLogger->SendAndFlushWithTime(L"[IsHomed] In\n");
|
g_pLogger->SendAndFlushWithTime(L"[IsHomed] In\n");
|
||||||
short isHomed[5] = { 1, 1, 1, 1, 1 };
|
short isHomed[5] = { 1, 1, 1, 1, 1 };
|
||||||
//int Count = 0;
|
//int Count = 0;
|
||||||
//if (bHomed == true)//定位是增大判断精度
|
//if (bHomed == true)//定位是增大判断精度
|
||||||
//{
|
//{
|
||||||
// Count = 1000;
|
// Count = 1000;
|
||||||
//}
|
//}
|
||||||
//所有轴都不需要回家
|
//所有轴都不需要回家
|
||||||
if (m_Home_Machine_Axis[1] == 0 && m_Home_Machine_Axis[2] == 0 && m_Home_Machine_Axis[3] == 0 && m_Home_Machine_Axis[4] == 0)
|
if (m_Home_Machine_Axis[1] == 0 && m_Home_Machine_Axis[2] == 0 && m_Home_Machine_Axis[3] == 0 && m_Home_Machine_Axis[4] == 0)
|
||||||
{
|
{
|
||||||
g_pLogger->SendAndFlushWithTime(L"[IsHomed] No Axis Go Home E_GTS_HOME_FINISHED\n");
|
g_pLogger->SendAndFlushWithTime(L"[IsHomed] No Axis Go Home E_GTS_HOME_FINISHED\n");
|
||||||
@@ -1082,7 +1081,7 @@ HSI_STATUS HSI_Motion::IsHomed(bool &bHomed)
|
|||||||
return HSI_STATUS_NORMAL;
|
return HSI_STATUS_NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
//判断是否需要回家
|
//判断是否需要回家
|
||||||
int Delay = 0;
|
int Delay = 0;
|
||||||
while (m_SO7_Serial.m_RecvData[0] != 2)
|
while (m_SO7_Serial.m_RecvData[0] != 2)
|
||||||
{
|
{
|
||||||
@@ -1176,7 +1175,7 @@ HSI_STATUS HSI_Motion::ZeroPos(bool bZeroPos)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//JOG模式
|
//JOG模式
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||||
{
|
{
|
||||||
@@ -1206,12 +1205,12 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
m_cSendData[1] = CT_MOTOR_SET;
|
m_cSendData[1] = CT_MOTOR_SET;
|
||||||
m_cSendData[2] = AxisTypes;
|
m_cSendData[2] = AxisTypes;
|
||||||
m_cSendData[3] = SOFT_LIMIT_POS_NEG;
|
m_cSendData[3] = SOFT_LIMIT_POS_NEG;
|
||||||
m_cSendData[4] = (int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff;
|
m_cSendData[4] = (int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff;//正限位
|
||||||
m_cSendData[5] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 8) & 0xff;
|
m_cSendData[5] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 8) & 0xff;
|
||||||
m_cSendData[6] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 16) & 0xff;
|
m_cSendData[6] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 16) & 0xff;
|
||||||
m_cSendData[7] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 24) & 0xff;
|
m_cSendData[7] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 24) & 0xff;
|
||||||
|
|
||||||
m_cSendData[8] = (int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff;
|
m_cSendData[8] = (int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff; //负限位
|
||||||
m_cSendData[9] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 8) & 0xff;
|
m_cSendData[9] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 8) & 0xff;
|
||||||
m_cSendData[10] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 16) & 0xff;
|
m_cSendData[10] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 16) & 0xff;
|
||||||
m_cSendData[11] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 24) & 0xff;
|
m_cSendData[11] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 24) & 0xff;
|
||||||
@@ -1221,7 +1220,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//无效软限位
|
//无效软限位
|
||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
m_cSendData[1] = CT_MOTOR_SET;
|
m_cSendData[1] = CT_MOTOR_SET;
|
||||||
m_cSendData[2] = AxisTypes;
|
m_cSendData[2] = AxisTypes;
|
||||||
@@ -1254,7 +1253,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
{
|
{
|
||||||
if (AxisTypes == AXIS_X && m_motorType & 0x01)
|
if (AxisTypes == AXIS_X && m_motorType & 0x01)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[1] / m_Resolution[1]) - (int)(m_N_Work_Limit[1] / m_Resolution[1]);
|
RemainPul = (int)(now_pos[1] / m_Resolution[1]) - (int)(m_N_Work_Limit[1] / m_Resolution[1]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1285,7 +1284,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
}
|
}
|
||||||
else if (AxisTypes == AXIS_Y && m_motorType & 0x02)
|
else if (AxisTypes == AXIS_Y && m_motorType & 0x02)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[2] / m_Resolution[2]) - (int)(m_N_Work_Limit[2] / m_Resolution[2]);
|
RemainPul = (int)(now_pos[2] / m_Resolution[2]) - (int)(m_N_Work_Limit[2] / m_Resolution[2]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1316,7 +1315,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
}
|
}
|
||||||
if (AxisTypes == AXIS_Z && m_motorType & 0x04)
|
if (AxisTypes == AXIS_Z && m_motorType & 0x04)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[3] / m_Resolution[3]) - (int)(m_N_Work_Limit[3] / m_Resolution[3]);
|
RemainPul = (int)(now_pos[3] / m_Resolution[3]) - (int)(m_N_Work_Limit[3] / m_Resolution[3]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1347,7 +1346,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
}
|
}
|
||||||
if (AxisTypes == AXIS_U && m_motorType & 0x08)
|
if (AxisTypes == AXIS_U && m_motorType & 0x08)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[4] / m_Resolution[4]) - (int)(m_N_Work_Limit[4] / m_Resolution[4]);
|
RemainPul = (int)(now_pos[4] / m_Resolution[4]) - (int)(m_N_Work_Limit[4] / m_Resolution[4]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1426,7 +1425,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
if (AxisNumber == 1 || AxisNumber == 2)
|
if (AxisNumber == 1 || AxisNumber == 2)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//方向
|
if (!bJOGDir)//方向
|
||||||
{
|
{
|
||||||
m_cSendData[1] = CT_START_JOG_NEG;
|
m_cSendData[1] = CT_START_JOG_NEG;
|
||||||
}
|
}
|
||||||
@@ -1437,7 +1436,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (bJOGDir)//方向
|
if (bJOGDir)//方向
|
||||||
{
|
{
|
||||||
m_cSendData[1] = CT_START_JOG_POS;
|
m_cSendData[1] = CT_START_JOG_POS;
|
||||||
}
|
}
|
||||||
@@ -1455,7 +1454,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
//JOG模式
|
//JOG模式
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||||
{
|
{
|
||||||
@@ -1500,7 +1499,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//无效软限位
|
//无效软限位
|
||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
m_cSendData[1] = CT_MOTOR_SET;
|
m_cSendData[1] = CT_MOTOR_SET;
|
||||||
m_cSendData[2] = AxisTypes;
|
m_cSendData[2] = AxisTypes;
|
||||||
@@ -1537,7 +1536,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
|||||||
{
|
{
|
||||||
if (AxisTypes == AXIS_X && m_motorType & 0x01)
|
if (AxisTypes == AXIS_X && m_motorType & 0x01)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[1] / m_Resolution[1]) - (int)(m_N_Work_Limit[1] / m_Resolution[1]);
|
RemainPul = (int)(now_pos[1] / m_Resolution[1]) - (int)(m_N_Work_Limit[1] / m_Resolution[1]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1568,7 +1567,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
|||||||
}
|
}
|
||||||
else if (AxisTypes == AXIS_Y && m_motorType & 0x02)
|
else if (AxisTypes == AXIS_Y && m_motorType & 0x02)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[2] / m_Resolution[2]) - (int)(m_N_Work_Limit[2] / m_Resolution[2]);
|
RemainPul = (int)(now_pos[2] / m_Resolution[2]) - (int)(m_N_Work_Limit[2] / m_Resolution[2]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1599,7 +1598,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
|||||||
}
|
}
|
||||||
if (AxisTypes == AXIS_Z && m_motorType & 0x04)
|
if (AxisTypes == AXIS_Z && m_motorType & 0x04)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[3] / m_Resolution[3]) - (int)(m_N_Work_Limit[3] / m_Resolution[3]);
|
RemainPul = (int)(now_pos[3] / m_Resolution[3]) - (int)(m_N_Work_Limit[3] / m_Resolution[3]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1630,7 +1629,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
|||||||
}
|
}
|
||||||
if (AxisTypes == AXIS_U && m_motorType & 0x08)
|
if (AxisTypes == AXIS_U && m_motorType & 0x08)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//负方向
|
if (!bJOGDir)//负方向
|
||||||
{
|
{
|
||||||
RemainPul = (int)(now_pos[4] / m_Resolution[4]) - (int)(m_N_Work_Limit[4] / m_Resolution[4]);
|
RemainPul = (int)(now_pos[4] / m_Resolution[4]) - (int)(m_N_Work_Limit[4] / m_Resolution[4]);
|
||||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||||
@@ -1709,7 +1708,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
|||||||
m_cSendData[0] = CT_MOTOR;
|
m_cSendData[0] = CT_MOTOR;
|
||||||
if (AxisNumber == 1 || AxisNumber == 2)
|
if (AxisNumber == 1 || AxisNumber == 2)
|
||||||
{
|
{
|
||||||
if (!bJOGDir)//方向
|
if (!bJOGDir)//方向
|
||||||
{
|
{
|
||||||
m_cSendData[1] = CT_START_JOG_NEG;
|
m_cSendData[1] = CT_START_JOG_NEG;
|
||||||
}
|
}
|
||||||
@@ -1720,7 +1719,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (bJOGDir)//方向
|
if (bJOGDir)//方向
|
||||||
{
|
{
|
||||||
m_cSendData[1] = CT_START_JOG_POS;
|
m_cSendData[1] = CT_START_JOG_POS;
|
||||||
}
|
}
|
||||||
@@ -1849,7 +1848,7 @@ int HSI_Motion::P2P(short AxisNumber, long Pos, double Speed, double Acc)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//运动控制部分
|
//运动控制部分
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::GetPositionEncPrfMulti(UINT AxisTypes, double *EncPos, double *PrfPos, int Count)
|
HSI_STATUS HSI_Motion::GetPositionEncPrfMulti(UINT AxisTypes, double *EncPos, double *PrfPos, int Count)
|
||||||
{
|
{
|
||||||
@@ -1919,7 +1918,7 @@ HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double &PositionX, double
|
|||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
UNREFERENCED_PARAMETER(AxisTypes);
|
UNREFERENCED_PARAMETER(AxisTypes);
|
||||||
//读取3个轴的位置
|
//读取3个轴的位置
|
||||||
CString tempStr;
|
CString tempStr;
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
{
|
{
|
||||||
@@ -1980,7 +1979,7 @@ HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double &PositionX, double
|
|||||||
HSI_STATUS HSI_Motion::GetEncoderXyz(long *lEncoderVal)
|
HSI_STATUS HSI_Motion::GetEncoderXyz(long *lEncoderVal)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
//读取3个轴的编码器值
|
//读取3个轴的编码器值
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
{
|
{
|
||||||
if (m_SO7_Serial.m_RecvData[0] == 2)
|
if (m_SO7_Serial.m_RecvData[0] == 2)
|
||||||
@@ -2112,19 +2111,19 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double
|
|||||||
Pos_t[4] = NowPos[4] = (int)(m_EncPos[4] / m_Resolution[4]);
|
Pos_t[4] = NowPos[4] = (int)(m_EncPos[4] / m_Resolution[4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_motorType & 0x01) //步进电机
|
if (m_motorType & 0x01) //步进电机
|
||||||
Pos[1] = (int)(PositionX / m_Resolution[1]) - NowPos[1];
|
Pos[1] = (int)(PositionX / m_Resolution[1]) - NowPos[1];
|
||||||
else
|
else
|
||||||
Pos[1] = (int)(PositionX / m_Resolution[1]) - Pos_t[1];
|
Pos[1] = (int)(PositionX / m_Resolution[1]) - Pos_t[1];
|
||||||
if (m_motorType & 0x02) //步进电机
|
if (m_motorType & 0x02) //步进电机
|
||||||
Pos[2] = (int)(PositionX / m_Resolution[2]) - NowPos[2];
|
Pos[2] = (int)(PositionX / m_Resolution[2]) - NowPos[2];
|
||||||
else
|
else
|
||||||
Pos[2] = (int)(PositionY / m_Resolution[2]) - Pos_t[2];
|
Pos[2] = (int)(PositionY / m_Resolution[2]) - Pos_t[2];
|
||||||
if (m_motorType & 0x04) //步进电机
|
if (m_motorType & 0x04) //步进电机
|
||||||
Pos[3] = (int)(PositionX / m_Resolution[3]) - NowPos[3];
|
Pos[3] = (int)(PositionX / m_Resolution[3]) - NowPos[3];
|
||||||
else
|
else
|
||||||
Pos[3] = (int)(PositionZ / m_Resolution[3]) - Pos_t[3];
|
Pos[3] = (int)(PositionZ / m_Resolution[3]) - Pos_t[3];
|
||||||
if (m_motorType & 0x08) //步进电机
|
if (m_motorType & 0x08) //步进电机
|
||||||
Pos[4] = (int)(PositionX / m_Resolution[4]) - NowPos[4];
|
Pos[4] = (int)(PositionX / m_Resolution[4]) - NowPos[4];
|
||||||
else
|
else
|
||||||
Pos[4] = (int)(m_PositionA / m_Resolution[4]) - Pos_t[4];
|
Pos[4] = (int)(m_PositionA / m_Resolution[4]) - Pos_t[4];
|
||||||
@@ -2454,7 +2453,7 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double
|
|||||||
}
|
}
|
||||||
|
|
||||||
Sleep(10);
|
Sleep(10);
|
||||||
//启动插补和定位功能
|
//启动插补和定位功能
|
||||||
/* if (m_motorType == 1)
|
/* if (m_motorType == 1)
|
||||||
{
|
{
|
||||||
send_pos_data[0] = CT_MOTOR;
|
send_pos_data[0] = CT_MOTOR;
|
||||||
@@ -2617,7 +2616,7 @@ HSI_STATUS HSI_Motion::SetCircleInterpolate(double PositionX, double PositionY
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//探针接口
|
//探针接口
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
void HSI_Motion::ProbeRetractManDist(int RetractManDist)
|
void HSI_Motion::ProbeRetractManDist(int RetractManDist)
|
||||||
{
|
{
|
||||||
@@ -2750,7 +2749,7 @@ HSI_STATUS HSI_Motion::JogProbe(UINT AxisTypes, double Speed)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//读取配置
|
//读取配置
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
||||||
{
|
{
|
||||||
@@ -2762,7 +2761,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
|||||||
CString temp = L"";
|
CString temp = L"";
|
||||||
CString strGear[5] = { L"GEAR0_", L"GEAR1_", L"GEAR2_", L"GEAR3_", L"GEAR4_" };
|
CString strGear[5] = { L"GEAR0_", L"GEAR1_", L"GEAR2_", L"GEAR3_", L"GEAR4_" };
|
||||||
CString axisNum[5] = { L"0", L"1", L"2", L"3", L"4" };
|
CString axisNum[5] = { L"0", L"1", L"2", L"3", L"4" };
|
||||||
//判断Log目录是否存在,不存在就创建
|
//判断Log目录是否存在,不存在就创建
|
||||||
if (CreateDirectory(m_AppPath + L"\\Log", NULL))
|
if (CreateDirectory(m_AppPath + L"\\Log", NULL))
|
||||||
{
|
{
|
||||||
g_pLogger->SendAndFlushWithTime(L"[Load_EF3_Motion_Inifile] Create Log Directory\n");
|
g_pLogger->SendAndFlushWithTime(L"[Load_EF3_Motion_Inifile] Create Log Directory\n");
|
||||||
@@ -2775,7 +2774,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Motion.ini文件不存在!");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Motion.ini文件不存在!");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
@@ -2836,7 +2835,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
|||||||
m_setPositionPrecision = GetPrivateProfileInt(L"SETPOSITION", L"SETPPSITION_PRECISION", 1, csAppPath);
|
m_setPositionPrecision = GetPrivateProfileInt(L"SETPOSITION", L"SETPPSITION_PRECISION", 1, csAppPath);
|
||||||
m_setPositionNum = GetPrivateProfileInt(L"SETPOSITION", L"SETPOSITION_NUMBER", 1, csAppPath);
|
m_setPositionNum = GetPrivateProfileInt(L"SETPOSITION", L"SETPOSITION_NUMBER", 1, csAppPath);
|
||||||
|
|
||||||
//两块四路光源板
|
//两块四路光源板
|
||||||
m_isUseAport = GetPrivateProfileInt(L"COMPORT", L"IS_COM_PORT_A", 0, csAppPath);
|
m_isUseAport = GetPrivateProfileInt(L"COMPORT", L"IS_COM_PORT_A", 0, csAppPath);
|
||||||
m_portAnum = GetPrivateProfileInt(L"COMPORT", L"COM_PORT_A", 0, csAppPath);
|
m_portAnum = GetPrivateProfileInt(L"COMPORT", L"COM_PORT_A", 0, csAppPath);
|
||||||
m_isUseBport = GetPrivateProfileInt(L"COMPORT", L"IS_COM_PORT_B", 0, csAppPath);
|
m_isUseBport = GetPrivateProfileInt(L"COMPORT", L"IS_COM_PORT_B", 0, csAppPath);
|
||||||
@@ -2909,7 +2908,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Config_Inifile(CString GoogolIniFile)
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Config.ini文件不存在!");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Config.ini文件不存在!");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
@@ -2977,7 +2976,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Config_Inifile(CString GoogolIniFile)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//读取/设置光栅尺精度
|
//读取/设置光栅尺精度
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::GetScaleResolution(double &_ScaleX, double &_ScaleY, double &_ScaleZ)
|
HSI_STATUS HSI_Motion::GetScaleResolution(double &_ScaleX, double &_ScaleY, double &_ScaleZ)
|
||||||
{
|
{
|
||||||
@@ -3003,7 +3002,7 @@ HSI_STATUS HSI_Motion::SetScaleResolution(double _ScaleX, double _ScaleY, double
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//回调定位完成
|
//回调定位完成
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
void HSI_Motion::SendMsgMotionFinished()
|
void HSI_Motion::SendMsgMotionFinished()
|
||||||
{
|
{
|
||||||
@@ -3014,7 +3013,7 @@ void HSI_Motion::SendMsgMotionFinished()
|
|||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
}
|
}
|
||||||
|
|
||||||
//回调探针运行
|
//回调探针运行
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
void HSI_Motion::SendMsgProbeFinished()
|
void HSI_Motion::SendMsgProbeFinished()
|
||||||
{
|
{
|
||||||
@@ -3095,7 +3094,7 @@ void HSI_Motion::UpdateMotionState()
|
|||||||
// double ProPulse[5] = { 0.0 };
|
// double ProPulse[5] = { 0.0 };
|
||||||
if (interpolationflag&&m_motorType)
|
if (interpolationflag&&m_motorType)
|
||||||
{
|
{
|
||||||
while (Count < m_SetPotion_Count[1])//到位次数判断
|
while (Count < m_SetPotion_Count[1])//到位次数判断
|
||||||
{
|
{
|
||||||
Sleep(2);
|
Sleep(2);
|
||||||
GetPositionXyz(HSI_MOTION_AXIS_ALL, prfpos[1], prfpos[2], prfpos[3], prfpos[0]);
|
GetPositionXyz(HSI_MOTION_AXIS_ALL, prfpos[1], prfpos[2], prfpos[3], prfpos[0]);
|
||||||
@@ -3122,7 +3121,7 @@ void HSI_Motion::UpdateMotionState()
|
|||||||
Count++;
|
Count++;
|
||||||
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] m_SetPotion_Count = %d\n", Count);
|
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] m_SetPotion_Count = %d\n", Count);
|
||||||
}
|
}
|
||||||
//if (Count == m_SetPotion_Count[1]) //超时退出
|
//if (Count == m_SetPotion_Count[1]) //超时退出
|
||||||
//{
|
//{
|
||||||
// if (g_IsClose == false)
|
// if (g_IsClose == false)
|
||||||
// {
|
// {
|
||||||
@@ -3131,7 +3130,7 @@ void HSI_Motion::UpdateMotionState()
|
|||||||
// sEvenProp.EventType = HSI_EVENT_ERROR;
|
// sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
// sEvenProp.EventID = HSI_EVENT_MOTION;
|
// sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
// sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
// sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
// strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_HSI定位超时!");
|
// strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_HSI定位超时!");
|
||||||
// EventCallback(sEvenProp);
|
// EventCallback(sEvenProp);
|
||||||
// }
|
// }
|
||||||
// else
|
// else
|
||||||
@@ -3164,7 +3163,7 @@ void HSI_Motion::UpdateMotionState()
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_EF3定位超时!");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_EF3定位超时!");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
}
|
}
|
||||||
switch (CurrentMotionState)
|
switch (CurrentMotionState)
|
||||||
@@ -3207,7 +3206,7 @@ void HSI_Motion::UpdateMotionStateIO()
|
|||||||
UINT recvData = 0;
|
UINT recvData = 0;
|
||||||
while (m_Thread_StateIO == HSI_THREAD_RUNNING)
|
while (m_Thread_StateIO == HSI_THREAD_RUNNING)
|
||||||
{
|
{
|
||||||
//1个脚踏开关
|
//1个脚踏开关
|
||||||
Sleep(3);
|
Sleep(3);
|
||||||
GetDIO(HSI_MOTION_INPUT_CH1, m_InputStatus);
|
GetDIO(HSI_MOTION_INPUT_CH1, m_InputStatus);
|
||||||
if (m_IsStartInput == 1)
|
if (m_IsStartInput == 1)
|
||||||
@@ -3371,7 +3370,7 @@ void HSI_Motion::DoEvents()
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "DoEvents_异常");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "DoEvents_异常");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
}
|
}
|
||||||
if (g_IsClose)
|
if (g_IsClose)
|
||||||
@@ -3445,12 +3444,12 @@ HSI_STATUS HSI_Motion::GetDIO(UINT IOChannel, UINT& _Status)
|
|||||||
{
|
{
|
||||||
_Status = m_SO7_Serial.m_RecvData[40];
|
_Status = m_SO7_Serial.m_RecvData[40];
|
||||||
}
|
}
|
||||||
if (IOChannel == HSI_MOTION_INPUT_CH1) //获取通用输入
|
if (IOChannel == HSI_MOTION_INPUT_CH1) //获取通用输入
|
||||||
{
|
{
|
||||||
_Status = m_SO7_Serial.m_RecvData[34];
|
_Status = m_SO7_Serial.m_RecvData[34];
|
||||||
_Status = (m_SO7_Serial.m_RecvData[35] | (_Status << 8)) & 0xffff;
|
_Status = (m_SO7_Serial.m_RecvData[35] | (_Status << 8)) & 0xffff;
|
||||||
}
|
}
|
||||||
if (IOChannel == HSI_MOTION_OUTPUT_CH1) //获取通用输出
|
if (IOChannel == HSI_MOTION_OUTPUT_CH1) //获取通用输出
|
||||||
{
|
{
|
||||||
_Status = m_SO7_Serial.m_RecvData[36];
|
_Status = m_SO7_Serial.m_RecvData[36];
|
||||||
_Status = (m_SO7_Serial.m_RecvData[37] | (_Status << 8)) & 0xffff;
|
_Status = (m_SO7_Serial.m_RecvData[37] | (_Status << 8)) & 0xffff;
|
||||||
@@ -3549,7 +3548,7 @@ HSI_STATUS HSI_Motion::GetAxisStatus(int* _Status)
|
|||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
//暂停和关闭
|
//暂停和关闭
|
||||||
HSI_STATUS HSI_Motion::AbortMotion()
|
HSI_STATUS HSI_Motion::AbortMotion()
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
@@ -3653,7 +3652,7 @@ HSI_STATUS HSI_Motion::Shutdown()
|
|||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
//触发灯光
|
//触发灯光
|
||||||
HSI_STATUS HSI_Motion::SetTriggerLight(int triggleNum, int delayLighting, int delayLightBefor, int triggleMode, double* Intensities)
|
HSI_STATUS HSI_Motion::SetTriggerLight(int triggleNum, int delayLighting, int delayLightBefor, int triggleMode, double* Intensities)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
@@ -3715,7 +3714,7 @@ HSI_STATUS HSI_Motion::SetTriggerLight(int triggleNum, int delayLighting, int de
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//硬件触发拍照
|
//硬件触发拍照
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::DCCPPStartPoint(double *startPoint)
|
HSI_STATUS HSI_Motion::DCCPPStartPoint(double *startPoint)
|
||||||
{
|
{
|
||||||
@@ -3736,7 +3735,7 @@ HSI_STATUS HSI_Motion::DCCScanSetData(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType
|
|||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
if (g_pHSI_Motion)
|
if (g_pHSI_Motion)
|
||||||
{
|
{
|
||||||
//触发的位置为相对位置,用法一般是移动到起点位置,再开始设置触发位置(相对位置),最终设置终点位置
|
//触发的位置为相对位置,用法一般是移动到起点位置,再开始设置触发位置(相对位置),最终设置终点位置
|
||||||
g_pLogger->SendAndFlushWithTime(L"[DCCScanSetData] In\n");
|
g_pLogger->SendAndFlushWithTime(L"[DCCScanSetData] In\n");
|
||||||
int axisNum;
|
int axisNum;
|
||||||
unsigned char m_SendDCCData[64] = { 0 };
|
unsigned char m_SendDCCData[64] = { 0 };
|
||||||
@@ -4272,7 +4271,7 @@ HSI_STATUS HSI_Motion::DCCForLightPlate()
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
//转盘
|
//转盘
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
HSI_STATUS HSI_Motion::StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, int filterTime1, int filterTime2, int pluseSumDis)
|
HSI_STATUS HSI_Motion::StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, int filterTime1, int filterTime2, int pluseSumDis)
|
||||||
{
|
{
|
||||||
@@ -4287,7 +4286,7 @@ HSI_STATUS HSI_Motion::StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, i
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "开始前请确认当前位置大于零!");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "开始前请确认当前位置大于零!");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
return HSI_STATUS_FAILED;
|
return HSI_STATUS_FAILED;
|
||||||
}
|
}
|
||||||
@@ -4387,7 +4386,7 @@ HSI_STATUS HSI_Motion::GetTriggleCount(int *nCount, int& nArea)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//点胶
|
//点胶
|
||||||
HSI_STATUS HSI_Motion::GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLightBefore, int* lightTime, double* lightData, int num)
|
HSI_STATUS HSI_Motion::GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLightBefore, int* lightTime, double* lightData, int num)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
@@ -4395,20 +4394,20 @@ HSI_STATUS HSI_Motion::GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLi
|
|||||||
{
|
{
|
||||||
unsigned char send_gluePPS_data[64] = { 0 };
|
unsigned char send_gluePPS_data[64] = { 0 };
|
||||||
send_gluePPS_data[0] = CT_GLUEDISPENSER;
|
send_gluePPS_data[0] = CT_GLUEDISPENSER;
|
||||||
send_gluePPS_data[1] = 0x01; //擦除指令
|
send_gluePPS_data[1] = 0x01; //擦除指令
|
||||||
m_WriteByte = Send_Command(0, (const char*)send_gluePPS_data, m_SendDataLength);
|
m_WriteByte = Send_Command(0, (const char*)send_gluePPS_data, m_SendDataLength);
|
||||||
Sleep(200);
|
Sleep(200);
|
||||||
int posIndex = 0;
|
int posIndex = 0;
|
||||||
int loadFeet[4];
|
int loadFeet[4];
|
||||||
int j = 0;
|
int j = 0;
|
||||||
int c = 0; //触发计数
|
int c = 0; //触发计数
|
||||||
int dirType = 0;
|
int dirType = 0;
|
||||||
int saveDir = 0;
|
int saveDir = 0;
|
||||||
int duanNum = 0;
|
int duanNum = 0;
|
||||||
double triggerPnt[4];
|
double triggerPnt[4];
|
||||||
double savePPSPnt[4];
|
double savePPSPnt[4];
|
||||||
GlueDispenserindexNum = 0;
|
GlueDispenserindexNum = 0;
|
||||||
#pragma region 拍照点
|
#pragma region 拍照点
|
||||||
for (size_t i = 0; i < num; i++)
|
for (size_t i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
@@ -5214,7 +5213,7 @@ HSI_STATUS HSI_Motion::GlueDispenserStart(double xOffset, double yOffset, double
|
|||||||
}
|
}
|
||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
void HSI_Motion::GluedispenserDone()
|
void HSI_Motion::GluedispenserDone()//涂胶机完成
|
||||||
{
|
{
|
||||||
if (bRunGlueDispenser == HSI_THREAD_RUNNING)
|
if (bRunGlueDispenser == HSI_THREAD_RUNNING)
|
||||||
{
|
{
|
||||||
@@ -5231,7 +5230,7 @@ void HSI_Motion::GluedispenserDone()
|
|||||||
{
|
{
|
||||||
if ((m_SO7_Serial.m_RecvData[60] & 0x0f))
|
if ((m_SO7_Serial.m_RecvData[60] & 0x0f))
|
||||||
{
|
{
|
||||||
g_pLogger->SendAndFlushWithTime(L"[GluedispenserDone] Run End Normal\n");
|
g_pLogger->SendAndFlushWithTime(L"[GluedispenserDone] Run End Normal\n");//涂胶机完成
|
||||||
m_SO7_Serial.m_RecvData[60] = 0;
|
m_SO7_Serial.m_RecvData[60] = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -5274,7 +5273,7 @@ HSI_STATUS HSI_Motion::GetPntsDistance(double& pDistance, int& spTimeCount)
|
|||||||
return rStatus;
|
return rStatus;
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//运动控制参数读取及设置
|
//运动控制参数读取及设置
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
int HSI_Motion::SpeedPercent(int AxisNum, double &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve)
|
int HSI_Motion::SpeedPercent(int AxisNum, double &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve)
|
||||||
{
|
{
|
||||||
@@ -5338,7 +5337,7 @@ int HSI_Motion::SpeedPercent(int AxisNum, double &Speed, int &DirveSpeed, int &S
|
|||||||
return (int)Speed;
|
return (int)Speed;
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//JoyStick运动控制参数读取及设置
|
//JoyStick运动控制参数读取及设置
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
bool HSI_Motion::SpeedPercentJoyStick(int AxisNum, long &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve)
|
bool HSI_Motion::SpeedPercentJoyStick(int AxisNum, long &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve)
|
||||||
{
|
{
|
||||||
@@ -5505,7 +5504,7 @@ double HSI_Motion::LimitOver(UINT AxisTypes, double &LimitPos)
|
|||||||
{
|
{
|
||||||
switch (AxisNumber)
|
switch (AxisNumber)
|
||||||
{
|
{
|
||||||
case 1: //轴1
|
case 1: //轴1
|
||||||
{
|
{
|
||||||
if (LimitPos >= m_P_Work_Limit[1])
|
if (LimitPos >= m_P_Work_Limit[1])
|
||||||
{
|
{
|
||||||
@@ -6180,7 +6179,7 @@ unsigned __stdcall HSI_Motion::m_ThreadData(LPVOID pThis)
|
|||||||
case HSI_THREAD_RUNNING:
|
case HSI_THREAD_RUNNING:
|
||||||
{
|
{
|
||||||
TRACE("HSI_THREAD_RUNNING.\r\n");
|
TRACE("HSI_THREAD_RUNNING.\r\n");
|
||||||
_This->UpdateMotionStateData();
|
_This->UpdateMotionStateData();//获取最新位置命令
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case HSI_THREAD_PAUSED:
|
case HSI_THREAD_PAUSED:
|
||||||
@@ -6201,7 +6200,7 @@ unsigned __stdcall HSI_Motion::m_ThreadData(LPVOID pThis)
|
|||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
//JOG运行到软限位的运动调节
|
//JOG运行到软限位的运动调节
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
void HSI_Motion::UpdateMotionStateJOGStop()
|
void HSI_Motion::UpdateMotionStateJOGStop()
|
||||||
{
|
{
|
||||||
@@ -6311,7 +6310,7 @@ void HSI_Motion::UpdateMotionStateJOGStop()
|
|||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
|
|
||||||
//第四轴未添加
|
//第四轴未添加
|
||||||
} break;
|
} break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -6321,7 +6320,7 @@ void HSI_Motion::UpdateMotionStateJOGStop()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
void HSI_Motion::CreateThreadJOGStop()
|
void HSI_Motion::CreateThreadJOGStop() //JOG运行到软限位的运动调节
|
||||||
{
|
{
|
||||||
if (m_Thread_IdJOGStop == NULL)
|
if (m_Thread_IdJOGStop == NULL)
|
||||||
{
|
{
|
||||||
@@ -6365,7 +6364,7 @@ void HSI_Motion::CloseThreadJOGStop()
|
|||||||
|
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
unsigned __stdcall HSI_Motion::m_ThreadJOGStop(LPVOID pThis)
|
unsigned __stdcall HSI_Motion::m_ThreadJOGStop(LPVOID pThis) //JOG运行到软限位的运动调节
|
||||||
{
|
{
|
||||||
HSI_Motion* _This = (HSI_Motion*)pThis;
|
HSI_Motion* _This = (HSI_Motion*)pThis;
|
||||||
for (;;)
|
for (;;)
|
||||||
@@ -6399,7 +6398,7 @@ unsigned __stdcall HSI_Motion::m_ThreadJOGStop(LPVOID pThis)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//无用
|
//无用
|
||||||
HSI_STATUS HSI_Motion::IOStep(bool RunSts)
|
HSI_STATUS HSI_Motion::IOStep(bool RunSts)
|
||||||
{
|
{
|
||||||
auto rStatus = HSI_STATUS_NORMAL;
|
auto rStatus = HSI_STATUS_NORMAL;
|
||||||
@@ -6465,7 +6464,7 @@ BOOL HSI_Motion::Send_Command(int com, const char* _SendData, DWORD SendDataLeng
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器已断开连接");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器已断开连接");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6481,7 +6480,7 @@ BOOL HSI_Motion::Send_Command(int com, const char* _SendData, DWORD SendDataLeng
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
#pragma region //网口通信8路 26路光源板通信
|
#pragma region //网口通信8路 26路光源板通信
|
||||||
|
|
||||||
#pragma warning(disable:4996)
|
#pragma warning(disable:4996)
|
||||||
TCPIP_RETURN_CODE HSI_Motion::TCPConnect(int index, char* Address, u_short port)
|
TCPIP_RETURN_CODE HSI_Motion::TCPConnect(int index, char* Address, u_short port)
|
||||||
@@ -6505,7 +6504,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPConnect(int index, char* Address, u_short port)
|
|||||||
{
|
{
|
||||||
int iMode = 1;
|
int iMode = 1;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//非阻塞连接
|
int retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//非阻塞连接
|
||||||
if (retVal == SOCKET_ERROR)
|
if (retVal == SOCKET_ERROR)
|
||||||
{
|
{
|
||||||
closesocket(m_socket[index]);
|
closesocket(m_socket[index]);
|
||||||
@@ -6545,7 +6544,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPConnect(int index, char* Address, u_short port)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
iMode = 0;
|
iMode = 0;
|
||||||
retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//设置阻塞
|
retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//设置阻塞
|
||||||
if (retVal == SOCKET_ERROR)
|
if (retVal == SOCKET_ERROR)
|
||||||
{
|
{
|
||||||
closesocket(m_socket[index]);
|
closesocket(m_socket[index]);
|
||||||
@@ -6680,7 +6679,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPSend()
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
m_ThreadTCP_State = TCPIP_THREAD_EXIT;
|
m_ThreadTCP_State = TCPIP_THREAD_EXIT;
|
||||||
closesocket(m_socket[m_selectedIndex]);
|
closesocket(m_socket[m_selectedIndex]);
|
||||||
@@ -6723,7 +6722,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPSend()
|
|||||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
||||||
EventCallback(sEvenProp);
|
EventCallback(sEvenProp);
|
||||||
m_ThreadTCP_State = TCPIP_THREAD_EXIT;
|
m_ThreadTCP_State = TCPIP_THREAD_EXIT;
|
||||||
closesocket(m_socket[m_selectedIndex]);
|
closesocket(m_socket[m_selectedIndex]);
|
||||||
@@ -6845,7 +6844,7 @@ HSI_STATUS HSI_Motion::SetAllGears()
|
|||||||
unsigned char send_glue_data[64] = { 0 };
|
unsigned char send_glue_data[64] = { 0 };
|
||||||
send_glue_data[0] = 0x01;
|
send_glue_data[0] = 0x01;
|
||||||
send_glue_data[1] = 0x01;
|
send_glue_data[1] = 0x01;
|
||||||
send_glue_data[2] = 0x01 << (i - 1); //轴号
|
send_glue_data[2] = 0x01 << (i - 1); //轴号
|
||||||
send_glue_data[3] = 0x08;
|
send_glue_data[3] = 0x08;
|
||||||
|
|
||||||
for (size_t j = 0; j < 5; j++)
|
for (size_t j = 0; j < 5; j++)
|
||||||
|
|||||||
+107
-107
@@ -16,7 +16,7 @@
|
|||||||
const double SCALE_UNITS = 1000.0;
|
const double SCALE_UNITS = 1000.0;
|
||||||
static CLogger* g_pLogger;
|
static CLogger* g_pLogger;
|
||||||
static CLogger* g_pLogger2;
|
static CLogger* g_pLogger2;
|
||||||
static bool g_IsClose;//用于DoEvents()的退出,而不异常
|
static bool g_IsClose;//用于DoEvents()的退出,而不异常
|
||||||
|
|
||||||
enum E_SO7_MOTION_TYPE
|
enum E_SO7_MOTION_TYPE
|
||||||
{
|
{
|
||||||
@@ -27,23 +27,23 @@ enum E_SO7_MOTION_TYPE
|
|||||||
};
|
};
|
||||||
enum E_EF3_HOME_STATUS
|
enum E_EF3_HOME_STATUS
|
||||||
{
|
{
|
||||||
E_EF3_HOME_NONE,//0表示从未回过回原点
|
E_EF3_HOME_NONE,//0表示从未回过回原点
|
||||||
E_EF3_HOME_ING,//1表示正在回原点
|
E_EF3_HOME_ING,//1表示正在回原点
|
||||||
E_EF3_HOME_FINISHED,//2表示已经回过原点
|
E_EF3_HOME_FINISHED,//2表示已经回过原点
|
||||||
};
|
};
|
||||||
|
|
||||||
enum FUN_CMD //第一级指令
|
enum FUN_CMD //第一级指令
|
||||||
{
|
{
|
||||||
CT_MOTOR = 0x01, //MOTOR
|
CT_MOTOR = 0x01, //MOTOR
|
||||||
CT_LIGHT, //LIGHT
|
CT_LIGHT, //LIGHT
|
||||||
CT_PORT, //PORT
|
CT_PORT, //PORT
|
||||||
CT_ORDER, //ORDER
|
CT_ORDER, //ORDER
|
||||||
CT_SOFTSTOP, //STOP
|
CT_SOFTSTOP, //STOP
|
||||||
CT_GLUEDISPENSER, //点胶
|
CT_GLUEDISPENSER, //点胶
|
||||||
CT_TURNTABLE,
|
CT_TURNTABLE,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MOTOR_CMD //第二级指令
|
enum MOTOR_CMD //第二级指令
|
||||||
{
|
{
|
||||||
CT_MOTOR_SET = 0x01,
|
CT_MOTOR_SET = 0x01,
|
||||||
CT_START_JOG_POS, //
|
CT_START_JOG_POS, //
|
||||||
@@ -63,7 +63,7 @@ enum MOTOR_CMD //第二级指令
|
|||||||
CT_GLUEDISPENSER_CLEAR,
|
CT_GLUEDISPENSER_CLEAR,
|
||||||
CT_GLUEDISPENSER_START,
|
CT_GLUEDISPENSER_START,
|
||||||
CT_GLUEDISPENSER_STOP,
|
CT_GLUEDISPENSER_STOP,
|
||||||
//转盘时启用
|
//转盘时启用
|
||||||
CT_RTSET,
|
CT_RTSET,
|
||||||
CT_BINSDATA,
|
CT_BINSDATA,
|
||||||
CT_RTSTOP,
|
CT_RTSTOP,
|
||||||
@@ -72,13 +72,13 @@ enum MOTOR_CMD //第二级指令
|
|||||||
|
|
||||||
enum MOTOR_START_POSOTION //
|
enum MOTOR_START_POSOTION //
|
||||||
{
|
{
|
||||||
INTERPOLATION = 0x61,//插补
|
INTERPOLATION = 0x61,//插补
|
||||||
GANGED = 0x41,//独立
|
GANGED = 0x41,//独立
|
||||||
CIRCLER = 0x64,
|
CIRCLER = 0x64,
|
||||||
CIRCLEL = 0x65,
|
CIRCLEL = 0x65,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
||||||
{
|
{
|
||||||
AXIS_X = 0x01,
|
AXIS_X = 0x01,
|
||||||
AXIS_Y = 0x02,
|
AXIS_Y = 0x02,
|
||||||
@@ -97,7 +97,7 @@ enum MOTOR_AXISCHOOES_CMD //第三级指令
|
|||||||
AXIS_XYZU = 0x0f,
|
AXIS_XYZU = 0x0f,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum MOTOR_SET_KIND //第四级指令
|
enum MOTOR_SET_KIND //第四级指令
|
||||||
{
|
{
|
||||||
JOG_SPEED_ACC_DEC,
|
JOG_SPEED_ACC_DEC,
|
||||||
POSITION_SPEED_ACC_DEC_POS,
|
POSITION_SPEED_ACC_DEC_POS,
|
||||||
@@ -235,28 +235,28 @@ public:
|
|||||||
static HANDLE m_Thread_Id;
|
static HANDLE m_Thread_Id;
|
||||||
static HANDLE m_Thread_Mutex;
|
static HANDLE m_Thread_Mutex;
|
||||||
static HANDLE m_hTriggerEvent;
|
static HANDLE m_hTriggerEvent;
|
||||||
//用于IO发消息的线程
|
//用于IO发消息的线程
|
||||||
static int m_Thread_StateIO;
|
static int m_Thread_StateIO;
|
||||||
static HANDLE m_Thread_IdIO;
|
static HANDLE m_Thread_IdIO;
|
||||||
static HANDLE m_Thread_MutexIO;
|
static HANDLE m_Thread_MutexIO;
|
||||||
static HANDLE m_hTriggerEventIO;
|
static HANDLE m_hTriggerEventIO;
|
||||||
|
|
||||||
//读取EF3的数据状态
|
//读取EF3的数据状态
|
||||||
static int m_Thread_StateData;
|
static int m_Thread_StateData;
|
||||||
static HANDLE m_Thread_IdData;
|
static HANDLE m_Thread_IdData;
|
||||||
static HANDLE m_Thread_MutexData;
|
static HANDLE m_Thread_MutexData;
|
||||||
static HANDLE m_hTriggerEventData;
|
static HANDLE m_hTriggerEventData;
|
||||||
|
|
||||||
//读取EF3的探针状态
|
//读取EF3的探针状态
|
||||||
static int m_Thread_StateProbe;
|
static int m_Thread_StateProbe;
|
||||||
static HANDLE m_Thread_IdProbe;
|
static HANDLE m_Thread_IdProbe;
|
||||||
static HANDLE m_Thread_MutexProbe;
|
static HANDLE m_Thread_MutexProbe;
|
||||||
static HANDLE m_hTriggerEventProbe;
|
static HANDLE m_hTriggerEventProbe;
|
||||||
|
|
||||||
//点胶运行状态
|
//点胶运行状态
|
||||||
static int bRunGlueDispenser;
|
static int bRunGlueDispenser;
|
||||||
|
|
||||||
//读取EF3的JOG stop的状态
|
//读取EF3的JOG stop的状态
|
||||||
static int m_Thread_StateJOGStop;
|
static int m_Thread_StateJOGStop;
|
||||||
static HANDLE m_Thread_IdJOGStop;
|
static HANDLE m_Thread_IdJOGStop;
|
||||||
static HANDLE m_Thread_MutexJOGStop;
|
static HANDLE m_Thread_MutexJOGStop;
|
||||||
@@ -266,16 +266,16 @@ public:
|
|||||||
static HANDLE g_WR_ToMove_Mutex;
|
static HANDLE g_WR_ToMove_Mutex;
|
||||||
static HANDLE g_Lock_JogAndTrigger;
|
static HANDLE g_Lock_JogAndTrigger;
|
||||||
|
|
||||||
double m_Resolution[5];//从1开始,0不用
|
double m_Resolution[5];//从1开始,0不用
|
||||||
double m_N_Work_Limit[5]; //负限位
|
double m_N_Work_Limit[5]; //负限位
|
||||||
double m_P_Work_Limit[5]; //正限位
|
double m_P_Work_Limit[5]; //正限位
|
||||||
|
|
||||||
int m_Home_AddJogGears[5];
|
int m_Home_AddJogGears[5];
|
||||||
int m_Home_DecJogGears[5];
|
int m_Home_DecJogGears[5];
|
||||||
int m_Home_Time[5];
|
int m_Home_Time[5];
|
||||||
int m_SetPotion_Count[5];
|
int m_SetPotion_Count[5];
|
||||||
|
|
||||||
//定位参数
|
//定位参数
|
||||||
int m_SetPotion_StartSpeed[5];
|
int m_SetPotion_StartSpeed[5];
|
||||||
int m_SetPotion_DriveSpeed[5];
|
int m_SetPotion_DriveSpeed[5];
|
||||||
int m_SetPotion_Line[5];
|
int m_SetPotion_Line[5];
|
||||||
@@ -288,129 +288,129 @@ public:
|
|||||||
int m_stepPosition_H_speed[10];
|
int m_stepPosition_H_speed[10];
|
||||||
int m_stepPosition_Load[10];
|
int m_stepPosition_Load[10];
|
||||||
int m_stepPosition_acc[10];
|
int m_stepPosition_acc[10];
|
||||||
double m_PositionA;//第四轴的地位位置
|
double m_PositionA;//第四轴的地位位置
|
||||||
|
|
||||||
//jog参数
|
//jog参数
|
||||||
int m_JogDriveSpeed[5][5];//5:轴号,从1开始;5:档位
|
int m_JogDriveSpeed[5][5];//5:轴号,从1开始;5:档位
|
||||||
int m_JogStartSpeed[5][5];
|
int m_JogStartSpeed[5][5];
|
||||||
int m_JogAccLine[5][5];
|
int m_JogAccLine[5][5];
|
||||||
int m_JogDecLine[5][5];
|
int m_JogDecLine[5][5];
|
||||||
int m_JogAccCurve[5][5];
|
int m_JogAccCurve[5][5];
|
||||||
int m_JogDecCurve[5][5];
|
int m_JogDecCurve[5][5];
|
||||||
int m_Jog_Auto_Focus;//变焦使用的速度
|
int m_Jog_Auto_Focus;//变焦使用的速度
|
||||||
|
|
||||||
int m_LogIsOpen[5];//是否打开记录,0为打开,非0为关闭
|
int m_LogIsOpen[5];//是否打开记录,0为打开,非0为关闭
|
||||||
|
|
||||||
unsigned int m_precisionCount[5];
|
unsigned int m_precisionCount[5];
|
||||||
unsigned int m_precisionTime[5];
|
unsigned int m_precisionTime[5];
|
||||||
int m_StopJogMode[5];//JOG模式采用急停还是平滑停止
|
int m_StopJogMode[5];//JOG模式采用急停还是平滑停止
|
||||||
double m_PosThread[5];//SetpositionXyz的目标位置
|
double m_PosThread[5];//SetpositionXyz的目标位置
|
||||||
int m_PosNow[5];//调用SetpositionXyz时,读取当前位置
|
int m_PosNow[5];//调用SetpositionXyz时,读取当前位置
|
||||||
|
|
||||||
double targetpos_n[5];
|
double targetpos_n[5];
|
||||||
double targetpos_l[5];
|
double targetpos_l[5];
|
||||||
|
|
||||||
short m_AxisThread;
|
short m_AxisThread;
|
||||||
int m_IsExMotion; //0是xyz用的,1是单轴用的,2都不用
|
int m_IsExMotion; //0是xyz用的,1是单轴用的,2都不用
|
||||||
int m_Home_Machine_Axis[5];//用于启动时需要回原点的轴号选择
|
int m_Home_Machine_Axis[5];//用于启动时需要回原点的轴号选择
|
||||||
int m_Home_Pos_Axis[5];//记住关闭电源时的位置,用于判断是否还需要回原点
|
int m_Home_Pos_Axis[5];//记住关闭电源时的位置,用于判断是否还需要回原点
|
||||||
int m_IsHomeEncPos; //是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
int m_IsHomeEncPos; //是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||||
int m_IsHomePrfPos; //是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
int m_IsHomePrfPos; //是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||||
|
|
||||||
int m_IsIOFuntion;//是否启动IO功能,1为打开,0为关闭
|
int m_IsIOFuntion;//是否启动IO功能,1为打开,0为关闭
|
||||||
int m_IsStartInput;//是否启用脚踏开关功能,1为启用,0为关闭,默认0
|
int m_IsStartInput;//是否启用脚踏开关功能,1为启用,0为关闭,默认0
|
||||||
UINT m_StartInputPort;//外部输入按钮启动程序
|
UINT m_StartInputPort;//外部输入按钮启动程序
|
||||||
UINT m_InputStatus;
|
UINT m_InputStatus;
|
||||||
UINT m_ForStatus;
|
UINT m_ForStatus;
|
||||||
int m_Set_XYZA_Reserve;//XYZA轴方向
|
int m_Set_XYZA_Reserve;//XYZA轴方向
|
||||||
int m_motorType;//电机类型 1为伺服电机 0为步进电机
|
int m_motorType;//电机类型 1为伺服电机 0为步进电机
|
||||||
int m_setPositionDelay;//设置定位超时
|
int m_setPositionDelay;//设置定位超时
|
||||||
int m_setPositionPrecision;//设置定位精度
|
int m_setPositionPrecision;//设置定位精度
|
||||||
int m_setPositionNum;
|
int m_setPositionNum;
|
||||||
CString m_AppPath;
|
CString m_AppPath;
|
||||||
//MST软件运行标志,trueMST软件已经启动,falseMST软件停止
|
//MST软件运行标志,trueMST软件已经启动,falseMST软件停止
|
||||||
bool m_MSTRunFlag;
|
bool m_MSTRunFlag;
|
||||||
int m_IsUse_HSICompensation;//是否启用HSI进行定位补偿 0为不启用 1为启用 默认为0
|
int m_IsUse_HSICompensation;//是否启用HSI进行定位补偿 0为不启用 1为启用 默认为0
|
||||||
int m_Compensation_Pluse;//补偿脉冲数
|
int m_Compensation_Pluse;//补偿脉冲数
|
||||||
int m_IsHardLimit; //设备轴硬限位设置 为0表示所有轴都为软限位 1为X轴为硬限位 2为Y轴 3为XY轴 4为Z轴 7为XYZ轴 默认为7
|
int m_IsHardLimit; //设备轴硬限位设置 为0表示所有轴都为软限位 1为X轴为硬限位 2为Y轴 3为XY轴 4为Z轴 7为XYZ轴 默认为7
|
||||||
int m_IsEnableAxis; //设备启用轴设置 为0表示所有轴不启用 1为X轴启用 2为Y轴启用 3为XY轴启用 4为Z轴启用 7为XYZ轴启用 默认为7
|
int m_IsEnableAxis; //设备启用轴设置 为0表示所有轴不启用 1为X轴启用 2为Y轴启用 3为XY轴启用 4为Z轴启用 7为XYZ轴启用 默认为7
|
||||||
int m_IsUseExternalTrigger; //是否启用外触发功能 0为不启用 1为启用 默认为1
|
int m_IsUseExternalTrigger; //是否启用外触发功能 0为不启用 1为启用 默认为1
|
||||||
int m_IsUseSixRingEightArea; //是否启用六环八区灯功能 0为不启用 1为启用 2为二环八区灯 默认为0
|
int m_IsUseSixRingEightArea; //是否启用六环八区灯功能 0为不启用 1为启用 2为二环八区灯 默认为0
|
||||||
int m_SixEightSubArea[8]; //六环八区分区功能
|
int m_SixEightSubArea[8]; //六环八区分区功能
|
||||||
int m_IsUseTwentySixLight;//是否启用26路灯光 0为不启用 1位启用 默认为0
|
int m_IsUseTwentySixLight;//是否启用26路灯光 0为不启用 1位启用 默认为0
|
||||||
int m_IsUseEF3;//是否启用EF3
|
int m_IsUseEF3;//是否启用EF3
|
||||||
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数
|
||||||
bool m_IsUsePPS;
|
bool m_IsUsePPS;
|
||||||
int m_iJoyStick;//遥感类型:0:无 1:老式摇杆
|
int m_iJoyStick;//遥感类型:0:无 1:老式摇杆
|
||||||
int m_bISUseMoreLights;
|
int m_bISUseMoreLights;
|
||||||
int m_EF3LightType;
|
int m_EF3LightType;
|
||||||
int m_LightType;
|
int m_LightType;
|
||||||
int m_IsUseFourthSpeed;
|
int m_IsUseFourthSpeed;
|
||||||
CString m_IsOpenTCPIP[4];//可提供的tcp通信的ip
|
CString m_IsOpenTCPIP[4];//可提供的tcp通信的ip
|
||||||
bool m_tcpCntFlag[4];
|
bool m_tcpCntFlag[4];
|
||||||
int m_selectedIndex;
|
int m_selectedIndex;
|
||||||
bool m_Led8MotionFlag[4];//是否为8路光源板
|
bool m_Led8MotionFlag[4];//是否为8路光源板
|
||||||
int m_IsHavePattern;//是否有光栅
|
int m_IsHavePattern;//是否有光栅
|
||||||
int m_AxisHomeDirection;//轴回家时的方向
|
int m_AxisHomeDirection;//轴回家时的方向
|
||||||
int m_IsUseJerk;//是否启用急停 0为不启用 1为启用
|
int m_IsUseJerk;//是否启用急停 0为不启用 1为启用
|
||||||
DWORD t_start;//获取jog运行的开始时间
|
DWORD t_start;//获取jog运行的开始时间
|
||||||
DWORD t_end;//获取jog运行的结束时间
|
DWORD t_end;//获取jog运行的结束时间
|
||||||
DWORD set_start;//获取定位运行开始时间
|
DWORD set_start;//获取定位运行开始时间
|
||||||
DWORD set_end;//获取定位运行结束时间
|
DWORD set_end;//获取定位运行结束时间
|
||||||
//是否启用探针捕获功能,1启用,默认0关闭
|
//是否启用探针捕获功能,1启用,默认0关闭
|
||||||
int m_IsProbe;
|
int m_IsProbe;
|
||||||
//探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
//探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
||||||
int m_ProbeAllAxis;
|
int m_ProbeAllAxis;
|
||||||
long m_ProbeCapturePos[5];//锁存各轴的位置
|
long m_ProbeCapturePos[5];//锁存各轴的位置
|
||||||
double m_ProbeReturnPos;//探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
|
double m_ProbeReturnPos;//探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
|
||||||
int m_ProbeReturnSpeed;//探针触发后,轴的回退速度
|
int m_ProbeReturnSpeed;//探针触发后,轴的回退速度
|
||||||
int m_isOKGlint; //是否开启ok/ng闪烁
|
int m_isOKGlint; //是否开启ok/ng闪烁
|
||||||
int m_ETIPort;//外部触发拍照输入端口号
|
int m_ETIPort;//外部触发拍照输入端口号
|
||||||
int m_axisStatus;//运动各轴的状态
|
int m_axisStatus;//运动各轴的状态
|
||||||
int m_axisAlarmStatus;//轴报警状态
|
int m_axisAlarmStatus;//轴报警状态
|
||||||
int m_EF3COMPort;//EF3板com口,默认为2
|
int m_EF3COMPort;//EF3板com口,默认为2
|
||||||
int m_ForSoft;//针对使用软件 0为MST 1为Metus
|
int m_ForSoft;//针对使用软件 0为MST 1为Metus
|
||||||
int m_IsUseManualRunin;//是否开启手动插补(只针对步进电机)
|
int m_IsUseManualRunin;//是否开启手动插补(只针对步进电机)
|
||||||
|
|
||||||
int m_IsUseRocker; //是否启用摇杆 0为不启用 1为启用旧摇杆,2为新摇杆, 默认为0
|
int m_IsUseRocker; //是否启用摇杆 0为不启用 1为启用旧摇杆,2为新摇杆, 默认为0
|
||||||
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
|
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
|
||||||
int m_IsCloseRocker;
|
int m_IsCloseRocker;
|
||||||
int m_IsLightDebug;//是否不回家也能调试灯光 0为不启用 1为启用 默认为0
|
int m_IsLightDebug;//是否不回家也能调试灯光 0为不启用 1为启用 默认为0
|
||||||
int m_rockerHStartSpeed[4];//摇杆XYZ轴高初始速度
|
int m_rockerHStartSpeed[4];//摇杆XYZ轴高初始速度
|
||||||
int m_rockerHDriveSpeed[4];//摇杆XYZ轴高驱动速度
|
int m_rockerHDriveSpeed[4];//摇杆XYZ轴高驱动速度
|
||||||
int m_rockerLStartSpeed[4];//摇杆XYZ轴低初始速度
|
int m_rockerLStartSpeed[4];//摇杆XYZ轴低初始速度
|
||||||
int m_rockerLDriveSpeed[4];//摇杆XYZ轴低驱动速度
|
int m_rockerLDriveSpeed[4];//摇杆XYZ轴低驱动速度
|
||||||
int m_rockerASpeed[4]; //XYZ轴加减速1
|
int m_rockerASpeed[4]; //XYZ轴加减速1
|
||||||
int m_rockerDSpeed[4]; //XYZ轴加减速2
|
int m_rockerDSpeed[4]; //XYZ轴加减速2
|
||||||
int m_SaveAxisNum;//保存轴号
|
int m_SaveAxisNum;//保存轴号
|
||||||
int m_SaveAxisSpeed;//保存速度
|
int m_SaveAxisSpeed;//保存速度
|
||||||
bool bSaveSpeedFlag;
|
bool bSaveSpeedFlag;
|
||||||
bool fourthAxisFlag;
|
bool fourthAxisFlag;
|
||||||
bool bCircleRun;//圆弧插补
|
bool bCircleRun;//圆弧插补
|
||||||
int iCircleRunPnt[5];//圆弧插补时的圆心位置
|
int iCircleRunPnt[5];//圆弧插补时的圆心位置
|
||||||
int jogAxisNum;//jog运动的轴号
|
int jogAxisNum;//jog运动的轴号
|
||||||
int jogspeed;
|
int jogspeed;
|
||||||
bool jogMoving;
|
bool jogMoving;
|
||||||
bool jogDirFlag;
|
bool jogDirFlag;
|
||||||
bool m_bEmergencyState;
|
bool m_bEmergencyState;
|
||||||
bool bUseGlueDispenser;//是否开启点胶
|
bool bUseGlueDispenser;//是否开启点胶
|
||||||
int m_iGlueStartSpeed;
|
int m_iGlueStartSpeed;
|
||||||
int m_iGlueDriveSpeed;
|
int m_iGlueDriveSpeed;
|
||||||
int m_iGlueAccSpeed;
|
int m_iGlueAccSpeed;
|
||||||
int GlueDispenserindexNum;//点胶段数
|
int GlueDispenserindexNum;//点胶段数
|
||||||
int GluerunCount;
|
int GluerunCount;
|
||||||
|
|
||||||
int m_iSpeedType;
|
int m_iSpeedType;
|
||||||
int m_axisDirX;//探针运动时X轴的运动方向
|
int m_axisDirX;//探针运动时X轴的运动方向
|
||||||
int m_axisDirY;//探针运动时Y轴的运动方向
|
int m_axisDirY;//探针运动时Y轴的运动方向
|
||||||
int m_axisDirZ;//探针运动时Z轴的运动方向
|
int m_axisDirZ;//探针运动时Z轴的运动方向
|
||||||
int m_probeSeekSpeed;
|
int m_probeSeekSpeed;
|
||||||
|
|
||||||
int m_isUseAport;//A串口
|
int m_isUseAport;//A串口
|
||||||
int m_portAnum;
|
int m_portAnum;
|
||||||
int m_isUseBport;//B串口
|
int m_isUseBport;//B串口
|
||||||
int m_portBnum;
|
int m_portBnum;
|
||||||
|
|
||||||
int SpCompleteTStart;
|
int SpCompleteTStart;
|
||||||
@@ -426,7 +426,7 @@ public:
|
|||||||
|
|
||||||
double m_EncPos[5];
|
double m_EncPos[5];
|
||||||
double m_PrfPos[5];
|
double m_PrfPos[5];
|
||||||
double m_PosForAllAxis[5];//记录4轴位置
|
double m_PosForAllAxis[5];//记录4轴位置
|
||||||
bool m_bConnected;
|
bool m_bConnected;
|
||||||
int m_SendDataLength;
|
int m_SendDataLength;
|
||||||
unsigned char m_cSendData[64];
|
unsigned char m_cSendData[64];
|
||||||
@@ -442,13 +442,13 @@ public:
|
|||||||
DWORD m_RecvDataSize;
|
DWORD m_RecvDataSize;
|
||||||
E_EF3_HOME_STATUS CurrentHomeMachineState;
|
E_EF3_HOME_STATUS CurrentHomeMachineState;
|
||||||
|
|
||||||
//刷新探针状态
|
//刷新探针状态
|
||||||
static unsigned __stdcall m_ThreadProbe(LPVOID pThis);
|
static unsigned __stdcall m_ThreadProbe(LPVOID pThis);
|
||||||
void CreateThreadProbe();
|
void CreateThreadProbe();
|
||||||
void CloseThreadProbe();
|
void CloseThreadProbe();
|
||||||
void UpdateMotionStateProbe();
|
void UpdateMotionStateProbe();
|
||||||
|
|
||||||
//刷新位置状态
|
//刷新位置状态
|
||||||
static unsigned __stdcall m_Thread(LPVOID pThis);
|
static unsigned __stdcall m_Thread(LPVOID pThis);
|
||||||
void CreateThread();
|
void CreateThread();
|
||||||
void CloseThread();
|
void CloseThread();
|
||||||
@@ -456,19 +456,19 @@ public:
|
|||||||
void UpdateMotionStateEx();
|
void UpdateMotionStateEx();
|
||||||
void GluedispenserDone();
|
void GluedispenserDone();
|
||||||
|
|
||||||
//IO发消息使用
|
//IO发消息使用
|
||||||
static unsigned __stdcall m_ThreadIO(LPVOID pThis);
|
static unsigned __stdcall m_ThreadIO(LPVOID pThis);
|
||||||
void CreateThreadIO();
|
void CreateThreadIO();
|
||||||
void CloseThreadIO();
|
void CloseThreadIO();
|
||||||
void UpdateMotionStateIO();
|
void UpdateMotionStateIO();
|
||||||
|
|
||||||
//读取EF3的数据状态
|
//读取EF3的数据状态
|
||||||
static unsigned __stdcall m_ThreadData(LPVOID pThis);
|
static unsigned __stdcall m_ThreadData(LPVOID pThis);
|
||||||
void CreateThreadData();
|
void CreateThreadData();
|
||||||
void CloseThreadData();
|
void CloseThreadData();
|
||||||
void UpdateMotionStateData();
|
void UpdateMotionStateData();
|
||||||
|
|
||||||
//读取EF3的JOG位置 以便停止JOG运动
|
//读取EF3的JOG位置 以便停止JOG运动
|
||||||
static unsigned __stdcall m_ThreadJOGStop(LPVOID pThis);
|
static unsigned __stdcall m_ThreadJOGStop(LPVOID pThis);
|
||||||
void CreateThreadJOGStop();
|
void CreateThreadJOGStop();
|
||||||
void CloseThreadJOGStop();
|
void CloseThreadJOGStop();
|
||||||
@@ -496,12 +496,12 @@ private:
|
|||||||
int iScanMotionType;
|
int iScanMotionType;
|
||||||
int iTriggleNum;
|
int iTriggleNum;
|
||||||
int iMotionDirection;
|
int iMotionDirection;
|
||||||
int begin_position[5]; //外触发到初始点需要发送的脉冲数
|
int begin_position[5]; //外触发到初始点需要发送的脉冲数
|
||||||
HINSTANCE m_Hinst;
|
HINSTANCE m_Hinst;
|
||||||
E_SO7_MOTION_TYPE CurrentMotionState;
|
E_SO7_MOTION_TYPE CurrentMotionState;
|
||||||
E_SO7_MOTION_READ_TYPE CurrentReadDataType;
|
E_SO7_MOTION_READ_TYPE CurrentReadDataType;
|
||||||
|
|
||||||
//网口通信添加
|
//网口通信添加
|
||||||
private:
|
private:
|
||||||
TCPIP_RETURN_CODE TCPConnect(int index,char* Address, u_short port);
|
TCPIP_RETURN_CODE TCPConnect(int index,char* Address, u_short port);
|
||||||
void DisConnect();
|
void DisConnect();
|
||||||
@@ -525,9 +525,9 @@ private:
|
|||||||
unsigned char lightdata[64];
|
unsigned char lightdata[64];
|
||||||
int LightSend;
|
int LightSend;
|
||||||
public:
|
public:
|
||||||
HSI_STATUS CollectPos(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle); //位置采集打开/关闭
|
HSI_STATUS CollectPos(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle); //位置采集打开/关闭
|
||||||
private:
|
private:
|
||||||
HSI_STATUS SetAllGears(); //下发所有档位数据
|
HSI_STATUS SetAllGears(); //下发所有档位数据
|
||||||
};
|
};
|
||||||
|
|
||||||
extern HSI_Motion *g_pHSI_Motion;
|
extern HSI_Motion *g_pHSI_Motion;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// HSI_Sevenocean_EF3.cpp : 定义 DLL 的初始化例程。
|
// HSI_Sevenocean_EF3.cpp : 定义 DLL 的初始化例程。
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
@@ -30,10 +30,10 @@ HSI_Sevenocean_EF3::~HSI_Sevenocean_EF3()
|
|||||||
}
|
}
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
/**
|
/**
|
||||||
* HSI 初始化
|
* HSI 初始化
|
||||||
*
|
*
|
||||||
* \param _hWnd :消息传输句柄
|
* \param _hWnd :消息传输句柄
|
||||||
* \param _bOfflineOnly :暂无用,默认 False
|
* \param _bOfflineOnly :暂无用,默认 False
|
||||||
* \return
|
* \return
|
||||||
*/
|
*/
|
||||||
HSI_STATUS HSI_Sevenocean_EF3::Startup(HWND _hWnd, bool _bOfflineOnly)
|
HSI_STATUS HSI_Sevenocean_EF3::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
// HSI_Sevenocean_EF3.h : HSI_Sevenocean_EF3 DLL 的主头文件
|
// HSI_Sevenocean_EF3.h : HSI_Sevenocean_EF3 DLL 的主头文件
|
||||||
//
|
//
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef __AFXWIN_H__
|
#ifndef __AFXWIN_H__
|
||||||
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
|
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "resource.h" // 主符号
|
#include "resource.h" // 主符号
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
#include "stdafx.h"
|
#include "../stdafx.h"
|
||||||
|
|
||||||
|
|
||||||
#include "cmmio_base.h"
|
#include "cmmio_base.h"
|
||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#include "stdafx.h"
|
#include "../stdafx.h"
|
||||||
|
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
|
|
||||||
@@ -170,7 +170,7 @@ DWORD CPSerial::Open()
|
|||||||
if( SetCommMask( m_PortHandle, EV_RXCHAR | EV_TXEMPTY | EV_BREAK |
|
if( SetCommMask( m_PortHandle, EV_RXCHAR | EV_TXEMPTY | EV_BREAK |
|
||||||
EV_CTS | EV_DSR | EV_ERR | EV_RLSD ) )
|
EV_CTS | EV_DSR | EV_ERR | EV_RLSD ) )
|
||||||
{
|
{
|
||||||
// Initialise the Overlapping structures and start the
|
// Initialize the Overlapping structures and start the
|
||||||
// monitoring task
|
// monitoring task
|
||||||
m_ReceiveOLap.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
m_ReceiveOLap.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
||||||
m_TransmitOLap.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
m_TransmitOLap.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include <atltime.h>
|
#include <atltime.h>
|
||||||
#include <sys/timeb.h>
|
#include <sys/timeb.h>
|
||||||
|
|
||||||
void CLogger::SendAtTime(const TCHAR* buffer)
|
void CLogger::SendAtTime(const TCHAR* buffer)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&m_lockLogger);
|
EnterCriticalSection(&m_lockLogger);
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public:
|
|||||||
void SendAndFlush(LPCTSTR, ...);
|
void SendAndFlush(LPCTSTR, ...);
|
||||||
void SendAndFlushPerMode(LPCTSTR, ...);
|
void SendAndFlushPerMode(LPCTSTR, ...);
|
||||||
void SendAndFlushWithTime(LPCTSTR, ...);
|
void SendAndFlushWithTime(LPCTSTR, ...);
|
||||||
bool IsEnabledLog/* = false*/;//是否启用日志
|
bool IsEnabledLog/* = false*/;//�Ƿ�������־
|
||||||
CString m_FileName;
|
CString m_FileName;
|
||||||
long m_lLogMask;
|
long m_lLogMask;
|
||||||
FILE *m_File;
|
FILE *m_File;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
//{{NO_DEPENDENCIES}}
|
//{{NO_DEPENDENCIES}}
|
||||||
// Microsoft Visual C++ generated include file.
|
// Microsoft Visual C++ generated include file.
|
||||||
// Used by HSI_Sevenocean_EF3.rc
|
// Used by HSI_Sevenocean_EF3.rc
|
||||||
|
|
||||||
// 新对象的下一组默认值
|
// 新对象的下一组默认值
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
// stdafx.cpp : 只包括标准包含文件的源文件
|
// stdafx.cpp : 只包括标准包含文件的源文件
|
||||||
// HSI_Sevenocean_EF3.pch 将作为预编译头
|
// HSI_Sevenocean_EF3.pch 将作为预编译头
|
||||||
// stdafx.obj 将包含预编译类型信息
|
// stdafx.obj 将包含预编译类型信息
|
||||||
|
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
|
|
||||||
// TODO: 在 STDAFX.H 中
|
// TODO: 在 STDAFX.H 中
|
||||||
// 引用任何所需的附加头文件,而不是在此文件中引用
|
// 引用任何所需的附加头文件,而不是在此文件中引用
|
||||||
|
|||||||
@@ -1,17 +1,14 @@
|
|||||||
// stdafx.h : 标准系统包含文件的包含文件,
|
// stdafx.h : 标准系统包含文件的包含文件,
|
||||||
// 或是经常使用但不常更改的
|
// 或是经常使用但不常更改的
|
||||||
// 特定于项目的包含文件
|
// 特定于项目的包含文件
|
||||||
//
|
//
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "targetver.h"
|
#include "targetver.h"
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的信息
|
#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的信息
|
||||||
// Windows 头文件:
|
// Windows 头文件:
|
||||||
//#include <windows.h>
|
//#include <windows.h>
|
||||||
#include <afxwin.h>
|
#include <afxwin.h>
|
||||||
|
// TODO: 在此处引用程序需要的其他头文件
|
||||||
|
|
||||||
|
|
||||||
// TODO: 在此处引用程序需要的其他头文件
|
|
||||||
|
|||||||
@@ -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 "2022.09.30 / 10:33 "
|
#define HSI_FILE_DESCRIPTION "2022.10.10 / 9:43 "
|
||||||
#define HSI_FILE_CSDESCRIPTION _T("2022.09.30 / 10:33 ")
|
#define HSI_FILE_CSDESCRIPTION _T("2022.10.10 / 9:43 ")
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,2 +1,2 @@
|
|||||||
#TargetFrameworkVersion=:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native64Bit:WindowsTargetPlatformVersion=10.0.19041.0
|
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.19041.0
|
||||||
Debug|x64|E:\HexagonProjects\2022-05-直线电机平台\LM-Middleware\|
|
Debug|x64|E:\HexagonProjects\2022-05-直线电机平台\LM-Middleware\|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -106,6 +106,8 @@ namespace WPFSerialAssistant
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void AutoSendData()
|
private void AutoSendData()
|
||||||
{
|
{
|
||||||
bool ret = SendData();
|
bool ret = SendData();
|
||||||
|
|||||||
@@ -435,11 +435,6 @@
|
|||||||
Header="功能按键">
|
Header="功能按键">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
|
|
||||||
<TextBox
|
|
||||||
x:Name="textVersion"
|
|
||||||
Margin="5"
|
|
||||||
Padding="10" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
x:Name="getVersionButton"
|
x:Name="getVersionButton"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
|
|||||||
@@ -25,55 +25,137 @@ namespace WPFSerialAssistant
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
InitCore();
|
InitCore();
|
||||||
}
|
}
|
||||||
// 单次锁存
|
// 单次锁存 可以通过单次锁存,读取当前的位置值
|
||||||
private void SingleLatch_Checked(object sender, RoutedEventArgs e)
|
private void SingleLatch_Checked(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
//1 清空缓存
|
||||||
|
string cmd = "01 06";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//2 设置单次模式
|
||||||
|
cmd = "01 01 01";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//3 开始锁存
|
||||||
|
cmd = "01 02";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//4 读取锁存值
|
||||||
|
cmd = "01 09";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
}
|
}
|
||||||
//定时锁存
|
//定时锁存 每10ms(1000*10us),即100HZ,锁存一次位置的值,发一个脉冲
|
||||||
private void TimingLatches_Checked(object sender, RoutedEventArgs e)
|
private void TimingLatches_Checked(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
//1 清空缓存
|
||||||
|
string cmd = "01 06";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//2 设置定时模式
|
||||||
|
cmd = "01 01 02 03 e8";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//3 开始锁存
|
||||||
|
cmd = "01 02";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//4 停止锁存
|
||||||
|
cmd = "01 03";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//5 读取锁存值
|
||||||
|
cmd = "01 09";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//6 清空数据与flash
|
||||||
|
cmd = "01 04";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
}
|
}
|
||||||
//分频锁存
|
//分频锁存 以X轴为基准,每20个脉冲锁存一次,并发送一次脉冲
|
||||||
private void FreDivsionRadioButton_Checked(object sender, RoutedEventArgs e)
|
private void FreDivsionRadioButton_Checked(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
//1 清空缓存
|
||||||
|
string cmd = "01 06";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//2 设置定时模式
|
||||||
|
cmd = "01 01 03 00 00 14 01";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//3 开始锁存
|
||||||
|
cmd = "01 02";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//4 停止锁存
|
||||||
|
cmd = "01 03";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//5 读取锁存值
|
||||||
|
cmd = "01 09";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
|
|
||||||
|
//6 清空数据与flash
|
||||||
|
cmd = "01 04";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
|
Utilities.sleep(5);
|
||||||
}
|
}
|
||||||
//获取固件版本
|
//获取固件版本
|
||||||
private void GetVersionButton_Click(object sender, RoutedEventArgs e)
|
private void GetVersionButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
string cmd = "01 08";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
}
|
}
|
||||||
//设置归零
|
//设置归零,表示XYZ轴的清零,把当前的位置读数重置为0.
|
||||||
private void SetZeroButton_Click(object sender, RoutedEventArgs e)
|
private void SetZeroButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
string cmd = "01 06";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
}
|
}
|
||||||
//开始锁存
|
//开始锁存
|
||||||
private void StartRecordButtion_Click(object sender, RoutedEventArgs e)
|
private void StartRecordButtion_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
string cmd = "01 02";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
}
|
}
|
||||||
//停止锁存
|
//停止锁存
|
||||||
private void StopRecordButton_Click(object sender, RoutedEventArgs e)
|
private void StopRecordButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
string cmd = "01 03";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
}
|
}
|
||||||
//获取锁存值
|
//获取锁存值
|
||||||
private void GetRecordButton_Click(object sender, RoutedEventArgs e)
|
private void GetRecordButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
string cmd = "01 09";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
}
|
}
|
||||||
//清除Flash区
|
//清除Flash区
|
||||||
private void ClearFlashButton_Click(object sender, RoutedEventArgs e)
|
private void ClearFlashButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
string cmd = "01 04";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
}
|
}
|
||||||
//获得锁存点数量
|
//获得锁存点数量
|
||||||
private void GetPointsButton_Click(object sender, RoutedEventArgs e)
|
private void GetPointsButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
string cmd = "01 05";
|
||||||
|
SerialPortWrite(cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows;
|
//using System.Windows;
|
||||||
//using System.Threading.Tasks;
|
//using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace WPFSerialAssistant
|
namespace WPFSerialAssistant
|
||||||
{
|
{
|
||||||
@@ -117,5 +118,28 @@ namespace WPFSerialAssistant
|
|||||||
return result.Trim();
|
return result.Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void sleep(int milliSecond)
|
||||||
|
{
|
||||||
|
int start = Environment.TickCount;
|
||||||
|
while (Math.Abs(Environment.TickCount - start) < milliSecond)
|
||||||
|
{
|
||||||
|
Application.DoEvents();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool Delay(int delayTime)
|
||||||
|
{
|
||||||
|
DateTime now = DateTime.Now;
|
||||||
|
int s;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
TimeSpan spand = DateTime.Now - now;
|
||||||
|
s = spand.Seconds;
|
||||||
|
Application.DoEvents();
|
||||||
|
}
|
||||||
|
while (s < delayTime);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user