Machine Interface Utility:VER1.0
This commit is contained in:
@@ -0,0 +1,262 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// HAL_MicroVu.cpp
|
||||
//
|
||||
// Copyrights 2004, Wilcox Associates, Inc.
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include "settings.h"
|
||||
|
||||
#include "HAL.h"
|
||||
#include "HSI.h"
|
||||
|
||||
extern CHAL *g_pHSI;
|
||||
extern CHALMicroVuExt g_HSIExt;
|
||||
extern bool g_bOfflineOnly;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Registry entry definitions
|
||||
//
|
||||
|
||||
#define SECTION_HEADER _T("MicroVu")
|
||||
TCHAR SectionHeader[] = SECTION_HEADER;
|
||||
|
||||
INI_INTERFACE_INFO ini_vertex_dcc[] =
|
||||
{
|
||||
// Settle times
|
||||
#pragma message("these settle times are not supported in code")
|
||||
{_T("Illumination_SettleTime"), INI_DOUBLE, &g_HSIExt.m_IllumSettleTime, _T("0.05"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
{_T("Stage_SettleTime"), INI_DOUBLE, &g_HSIExt.m_StageSettleTime, _T("0.1"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
{_T("Zoom_SettleTime"), INI_DOUBLE, &g_HSIExt.m_ZoomSettleTime, _T("0.1"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
{_T("ScaleResolutionX"), INI_DOUBLE, &g_HSIExt.m_ScaleResolutionX, _T("0.0005"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
{_T("ScaleResolutionY"), INI_DOUBLE, &g_HSIExt.m_ScaleResolutionY, _T("0.0005"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
{_T("ScaleResolutionZ"), INI_DOUBLE, &g_HSIExt.m_ScaleResolutionZ, _T("0.0005"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
|
||||
// Probe
|
||||
// {_T("Probe_DebounceTime"), INI_DOUBLE, &g_HSIExt.m_ProbeDebounceTime, _T("0.05"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
// {_T("Probe_DirectionThreshold"), INI_DOUBLE, &g_HSIExt.m_ProbeDirectionThreshold, _T("0.01"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
{_T("Probe_DisableIfNotActive"), INI_BOOL, &g_HSIExt.m_ProbeDisableIfNotActive, _T("TRUE"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
// {_T("Probe_UsePI200"), INI_BOOL, &g_HSIExt.m_ProbeUsePI200, _T("FALSE"), NOFUNCTION, ADMINISTRATOR, ENABLED, ENABLED },
|
||||
|
||||
{NULL, INI_END, NULL, NULL}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
CHALMicroVuExt::CHALMicroVuExt()
|
||||
{
|
||||
unsigned short Axis = 0;
|
||||
|
||||
m_bIsInitialised = false;
|
||||
m_bIsHomingRequired = true;
|
||||
m_bExtBoardPresent = false;
|
||||
|
||||
g_bOfflineOnly = false;
|
||||
|
||||
m_HomingAxis = HAL_AXIS_NONE;
|
||||
|
||||
m_FineSpeedMode = false;
|
||||
m_ControlMode = HAL_CTRL_MODE_CNC;
|
||||
|
||||
m_ActiveMachineType = HAL_MACHINE_TYPE_UNSELECTED;
|
||||
|
||||
m_IsCalibrated = false;
|
||||
m_InhibitActiveHigh = false;
|
||||
|
||||
m_ActiveProbe = APT_VISION;
|
||||
|
||||
m_HomeManual = false;
|
||||
m_HomeToLimitSwitch = false;
|
||||
m_HomeToResetLine = false;
|
||||
m_HomeSpeedRestrict = true;
|
||||
|
||||
m_DSPLoopTime = 0;
|
||||
|
||||
m_CurrentSpeedXYZ = 0.0;
|
||||
m_CurrentSpeedR = 0.0;
|
||||
|
||||
m_DCCMoveInProgress = false;
|
||||
m_InitInProgress = false;
|
||||
|
||||
m_IllumSettleTime = 0.0;
|
||||
m_StageSettleTime = 0.0;
|
||||
m_ZoomSettleTime = 0.0;
|
||||
|
||||
m_LaserPositionalActiveHigh = true;
|
||||
m_LaserState = false;
|
||||
m_LaserPositionalOutput = HAL_OUTPUT_NONE;
|
||||
|
||||
m_OptimetInit = false;
|
||||
m_OptimetZFollow = false;
|
||||
m_OptimetNomDist = 0.0;
|
||||
m_OptimetScanDensity = 0.0;
|
||||
m_OptimetGain = 20;
|
||||
m_OptimetFreq = 800;
|
||||
m_OptimetQualityThreshold = 70;
|
||||
m_OptimetScanQuality = 0;
|
||||
m_OptimetMag = HAL_LP_AUX_LENS_1_0x;
|
||||
|
||||
m_OpticsGridActiveHigh = true;
|
||||
m_OpticsGridState = false;
|
||||
m_OpticsGridOutput = HAL_OUTPUT_NONE;
|
||||
|
||||
for(Axis = HAL_AXIS_X ; Axis <= HAL_AXIS_Q ; Axis++)
|
||||
{
|
||||
m_ProbePoint[Axis] = 0;
|
||||
m_ProbeDiff[Axis] = 0.0;
|
||||
}
|
||||
|
||||
m_ProbeDCCRetractDist = 0.0;
|
||||
m_ProbeManRetractDist = 0.0;
|
||||
m_ProbeHitExpected = false;
|
||||
m_ProbeDisableIfNotActive = true;
|
||||
m_ProbeEnabled = false;
|
||||
m_ProbeLoading = false;
|
||||
|
||||
m_LampUsePrototypeRing = false;
|
||||
|
||||
memset(m_LampOutputState_5x8, 0, sizeof(m_LampOutputState_5x8));
|
||||
memset(m_LampOutputState_2x8, 0, sizeof(m_LampOutputState_2x8));
|
||||
memset(m_LampOutputLevel_5x8, 0, sizeof(m_LampOutputLevel_5x8));
|
||||
memset(m_LampOutputLevel_2x8, 0, sizeof(m_LampOutputLevel_2x8));
|
||||
|
||||
for(Axis = HAL_AXIS_X ; Axis <= HAL_AXIS_ZOOM ; Axis++)
|
||||
{
|
||||
m_AxisEnabled[Axis] = false;
|
||||
m_AxisVelocity[Axis] = 0.0;
|
||||
m_AxisAcceleration[Axis] = 0.0;
|
||||
m_AxisResolution[Axis] = 0.001;
|
||||
}
|
||||
|
||||
m_Pendant_IsInitialised = false;
|
||||
m_Pendant_EStopInhibitsAmp = true;
|
||||
m_Pendant_FineSpeedFactor = 1.0;
|
||||
|
||||
m_Pendant_Input_EStop = -1;
|
||||
m_Pendant_Status_FineMode = HAL_OUTPUT_NONE;
|
||||
m_Pendant_Status_CtrlDCC = HAL_OUTPUT_NONE;
|
||||
m_Pendant_Status_CtrlTopLight = HAL_OUTPUT_NONE;
|
||||
m_Pendant_Status_CtrlRngLight = HAL_OUTPUT_NONE;
|
||||
m_Pendant_Status_CtrlBtmLight = HAL_OUTPUT_NONE;
|
||||
|
||||
for(Axis = HAL_AXIS_X ; Axis <= HAL_AXIS_Q ; Axis++)
|
||||
{
|
||||
m_Pendant_Enabled[Axis] = false;
|
||||
}
|
||||
|
||||
g_lpfnWAIOpticsStartup = NULL;
|
||||
g_lpfnWALOpticsShutdown = NULL;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
CHALMicroVuExt::~CHALMicroVuExt()
|
||||
{}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
HAL_STATUS CHALMicroVuExt::InitialiseMachineType(HAL_MACHINE_TYPE Type)
|
||||
{
|
||||
HAL_STATUS Status = HAL_STATUS_NORMAL;
|
||||
|
||||
// Set the active machine type and extra machine specific data
|
||||
m_ActiveMachineType=Type;
|
||||
|
||||
switch(Type)
|
||||
{
|
||||
case HAL_MACHINE_TYPE_EXCEL:
|
||||
m_AxisEnabled[HAL_AXIS_X] = true;
|
||||
m_AxisResolution[HAL_AXIS_X] = -0.00005;
|
||||
m_AxisEnabled[HAL_AXIS_Y] = true;
|
||||
m_AxisResolution[HAL_AXIS_Y] = 0.00005;
|
||||
m_AxisEnabled[HAL_AXIS_Z] = true;
|
||||
m_AxisResolution[HAL_AXIS_Z] = -0.00005;
|
||||
|
||||
// Q axis settings
|
||||
m_AxisEnabled[HAL_AXIS_Q] = false;
|
||||
|
||||
// Zoom axis settings
|
||||
m_AxisEnabled[HAL_AXIS_ZOOM] = true;
|
||||
m_AxisVelocity[HAL_AXIS_ZOOM] = 6.0;
|
||||
m_AxisAcceleration[HAL_AXIS_ZOOM] = 45.0;
|
||||
m_AxisResolution[HAL_AXIS_ZOOM] = -0.001;
|
||||
break;
|
||||
|
||||
case HAL_MACHINE_TYPE_VECTRA:
|
||||
// Read machine data from CNC.INI
|
||||
if(Status != HAL_STATUS_NORMAL)
|
||||
{
|
||||
if(!g_bOfflineOnly)
|
||||
return Status;
|
||||
else
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
// Global settings
|
||||
m_InhibitActiveHigh = true;
|
||||
|
||||
// Homing settings
|
||||
m_HomeManual = false;
|
||||
m_HomeToLimitSwitch = false;
|
||||
m_HomeToResetLine = true;
|
||||
|
||||
// Positional laser settings
|
||||
m_LaserPositionalActiveHigh = true;
|
||||
m_LaserPositionalOutput = HAL_OUTPUT_EXTIO_2;
|
||||
|
||||
// X axis settings
|
||||
m_AxisEnabled[HAL_AXIS_X] = true;
|
||||
|
||||
// Y axis settings
|
||||
m_AxisEnabled[HAL_AXIS_Y] = true;
|
||||
|
||||
// Z axis settings
|
||||
m_AxisEnabled[HAL_AXIS_Z] = true;
|
||||
|
||||
// Q axis settings
|
||||
m_AxisEnabled[HAL_AXIS_Q] = m_Pendant_Enabled[HAL_AXIS_Q];
|
||||
|
||||
// Zoom axis settings
|
||||
m_AxisEnabled[HAL_AXIS_ZOOM] = true;
|
||||
m_Pendant_Input_EStop = 3;
|
||||
|
||||
#pragma message("removed for lining ease")
|
||||
|
||||
// Check the pendant fine speed factor is valid
|
||||
if(m_Pendant_FineSpeedFactor < 0.01 || m_Pendant_FineSpeedFactor > 1.0)
|
||||
m_Pendant_FineSpeedFactor = 1.0;
|
||||
break;
|
||||
|
||||
case HAL_MACHINE_TYPE_CUSTOM:
|
||||
if(Status != HAL_STATUS_NORMAL)
|
||||
{
|
||||
if(!g_bOfflineOnly)
|
||||
return Status;
|
||||
else
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
// Check the pendant fine speed factor is valid
|
||||
if(m_Pendant_FineSpeedFactor < 0.01 || m_Pendant_FineSpeedFactor > 1.0)
|
||||
m_Pendant_FineSpeedFactor = 1.0;
|
||||
|
||||
break;
|
||||
|
||||
case HAL_MACHINE_TYPE_UNSELECTED:
|
||||
default:
|
||||
// Machine type has not been selected
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
HAL_STATUS CHALMicroVuExt::ReadConfigFile()
|
||||
{
|
||||
return HAL_STATUS_NORMAL;
|
||||
}
|
||||
Reference in New Issue
Block a user