87 lines
3.4 KiB
C
87 lines
3.4 KiB
C
#pragma once
|
|
|
|
#ifdef MACHINEINTERFACEDLL_EXPORTS
|
|
#define EXP_IMP __declspec(dllexport)
|
|
#else
|
|
#define EXP_IMP __declspec(dllimport)
|
|
#endif
|
|
|
|
enum EMACHINE_AXIS
|
|
{
|
|
MACHINE_AXIS_NONE = 0,
|
|
MACHINE_AXIS_X,
|
|
MACHINE_AXIS_Y,
|
|
MACHINE_AXIS_Z,
|
|
MACHINE_AXIS_ZOOM,
|
|
MACHINE_AXIS_R,
|
|
MACHINE_AXIS_ALL = 5
|
|
};
|
|
enum EHOME_MACHINE_MODE
|
|
{
|
|
HOME_NONE,
|
|
HOME_XYZ=1,
|
|
HOME_X=10,
|
|
HOME_Y,
|
|
HOME_Z,
|
|
HOME_XY=20,
|
|
HOME_XZ,
|
|
HOME_YZ,
|
|
HOME_R=30,
|
|
HOME_TOATAL=255
|
|
};
|
|
enum EIO_PORT
|
|
{
|
|
INPORT_J2=0,//Effective bit:0-5
|
|
OUTPORT_J1,//Effective bit:0-2
|
|
OUTPORT_J3,//Effective bit:0-5
|
|
LIMIT_SWITCH_J4//Effective bit:0-5
|
|
};
|
|
enum SSI_STATUS_MOTION
|
|
{
|
|
SSI_STATUS_MOTION_NORMAL = 0,
|
|
SSI_STATUS_MOTION_DATALINK_ERROR,
|
|
SSI_STATUS_MOTION_LIMIT_REACHED,
|
|
SSI_STATUS_MOTION_INVALID_PARAMETERS,
|
|
SSI_STATUS_MOTION_TIMEOUT,
|
|
SSI_STATUS_SO7_CONFIG_FILE_NOT_FOUND,
|
|
SSI_STATUS_MOTOR_DAT_FILE_NOT_FOUND,
|
|
SSI_STATUS_MACHINE_UNINITIALIZED,
|
|
SSI_STATUS_UNKNOWN_ERROR
|
|
};
|
|
|
|
extern "C"
|
|
{
|
|
///////////////////////////////////////////////////////////////////////////////////
|
|
EXP_IMP SSI_STATUS_MOTION Machine_Startup(bool bOfflineOnly,EHOME_MACHINE_MODE cHomeMachineMode);
|
|
EXP_IMP SSI_STATUS_MOTION Machine_Shutdown();
|
|
//=================================================================================
|
|
//===============================Motion============================================
|
|
EXP_IMP SSI_STATUS_MOTION Motion_DCCHomeXYZ(EHOME_MACHINE_MODE cHomeMachineMode);
|
|
EXP_IMP SSI_STATUS_MOTION Motion_IsHomedXYZ(bool &bHomed);
|
|
//Units:mm
|
|
EXP_IMP SSI_STATUS_MOTION Motion_GetPositionXYZ(double &PositionX, double &PositionY, double &PositionZ);
|
|
EXP_IMP SSI_STATUS_MOTION Motion_SetPositionXYZ(double PositionX, double PositionY, double PositionZ,bool bWait);
|
|
EXP_IMP SSI_STATUS_MOTION Motion_IsFinishedXYZ(bool &bFinished);
|
|
//SpeedGear:1,2,3,4(Faster)
|
|
EXP_IMP SSI_STATUS_MOTION Motion_SetSpeedXYZ(EMACHINE_AXIS cAxis,char cSpeedGear,char Acce,char cHoldSpeed,char cStartSpeed,char cRefreshCycle,double dBufferDis);
|
|
|
|
//SpeedGear:1,2,3,4(Faster)
|
|
EXP_IMP SSI_STATUS_MOTION Motion_Jog(EMACHINE_AXIS cAxis,char cSpeedGear);
|
|
EXP_IMP SSI_STATUS_MOTION Motion_Stop();
|
|
//===================================Rotary Table==================================
|
|
EXP_IMP SSI_STATUS_MOTION Motion_DCCHomeR();
|
|
EXP_IMP SSI_STATUS_MOTION Motion_IsHomedR(bool &bHomed);
|
|
//Units:Rad
|
|
EXP_IMP SSI_STATUS_MOTION Motion_GetPositionR(double& dPos);
|
|
EXP_IMP SSI_STATUS_MOTION Motion_SetPositionR(double dAbsolutePos,bool bWait);
|
|
EXP_IMP SSI_STATUS_MOTION Motion_IsFinishedR(bool &bFinished);
|
|
//==============================Illumination=======================================
|
|
//Range value:0.0-100.0
|
|
EXP_IMP SSI_STATUS_MOTION Illumination_SetLampState(double dTopLightPercent,double dBottomLightPercent,double dCoaxialLightPercent,double dReservedLightPercent,double dRingLightPercent,char cOuterRingLightSwitch,char cInnerRingLightSwitch);
|
|
//==============================IO================================================
|
|
EXP_IMP SSI_STATUS_MOTION Machine_GetDIO(EIO_PORT Channel,BYTE& bDISts);
|
|
EXP_IMP SSI_STATUS_MOTION Machine_SetDO(EIO_PORT Channel,BYTE bDOSts);
|
|
//==============================CMD================================================
|
|
EXP_IMP SSI_STATUS_MOTION SEND_SYS_COMMAND(char Cmd,char SubCmd,char Type,char Data);
|
|
|
|
} |