结构整理,修改文件编码格式适配VS gb2312

This commit is contained in:
wio
2022-10-10 10:13:29 +08:00
parent 58eabbedad
commit 698e1223fa
34 changed files with 514 additions and 375 deletions
-1
View File
@@ -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
View File
@@ -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
View File
@@ -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
{ {
+1 -1
View File
@@ -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;
+2 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+4 -4
View File
@@ -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)
+3 -3
View File
@@ -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>
+2 -1
View File
@@ -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 );
+1
View File
@@ -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);
+1 -1
View File
@@ -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;
+2 -2
View 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
+5 -5
View File
@@ -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 中
// 引用任何所需的附加头文件,而不是在此文件中引用 // 引用任何所需的附加头文件,而不是在此文件中引用
+6 -9
View File
@@ -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: 在此处引用程序需要的其他头文件
+2 -2
View File
@@ -12,5 +12,5 @@
#define HSI_VERSION_REVNUM #define HSI_VERSION_REVNUM
#define HSI_VERSION_BUILD_DATE _T(__DATE__ ) #define HSI_VERSION_BUILD_DATE _T(__DATE__ )
#define HSI_VERSION_BUILD_TIME _T(__TIME__ ) #define HSI_VERSION_BUILD_TIME _T(__TIME__ )
#define HSI_FILE_DESCRIPTION "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 ")
@@ -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.
@@ -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.