|
|
|
|
/*********************************************************************
|
|
|
|
|
*<EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: logos
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2017/02/07
|
|
|
|
|
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>־: 2017/02/07 CW4945 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
***********************************************************************/
|
|
|
|
|
#pragma once
|
|
|
|
|
#ifndef _INCLUDE_DTYPE_H_
|
|
|
|
|
#define _INCLUDE_DTYPE_H_
|
|
|
|
|
|
|
|
|
|
#ifndef EXPORT_C
|
|
|
|
|
#define EXPORT_C extern "C"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef WINAPI
|
|
|
|
|
#define WINAPI __stdcall
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef ushort
|
|
|
|
|
#define ushort unsigned short
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MAX_ID_LEN
|
|
|
|
|
#define MAX_ID_LEN 16
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MAX_NAME_LEN
|
|
|
|
|
#define MAX_NAME_LEN 32
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef MAX_BUF_LEN
|
|
|
|
|
#define MAX_BUF_LEN 256
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef PARAM_CNT
|
|
|
|
|
#define PARAM_CNT 8
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef RES_CNT
|
|
|
|
|
#define RES_CNT 16
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
struct TParam
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9> -- <20><><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
char data[PARAM_CNT][MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EDevStatus
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD>״̬
|
|
|
|
|
EDev_NOINIT = 0, //δ<><CEB4>ʼ<EFBFBD><CABC>
|
|
|
|
|
EDev_ERROR, //<2F>쳣
|
|
|
|
|
EDev_IDLE, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMoveStatus
|
|
|
|
|
{//<2F>˶<EFBFBD>״̬
|
|
|
|
|
EMove_NOHOME = 3, //δ<><CEB4>ԭ
|
|
|
|
|
EMove_STOP, //ֹͣ״̬ -- <20>쳣ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>λֹͣ
|
|
|
|
|
EMove_ISMOVING, //<2F>˶<EFBFBD><CBB6><EFBFBD>
|
|
|
|
|
EMove_ISHOME, //<2F><>ԭ<EFBFBD><D4AD>
|
|
|
|
|
EMove_PAUSE, //<2F><>ͣ
|
|
|
|
|
EMove_PAUSING, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ
|
|
|
|
|
EMove_STOPING, //<2F><><EFBFBD><EFBFBD>ֹͣ
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EIOType
|
|
|
|
|
{//IO<49><4F><EFBFBD><EFBFBD>
|
|
|
|
|
IOT_COMIN = 0, //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IOT_COMOUT, //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
IOT_LIMITP, //<2F><><EFBFBD><EFBFBD>λ
|
|
|
|
|
IOT_LIMITN, //<2F><><EFBFBD><EFBFBD>λ
|
|
|
|
|
IOT_ALARM, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
IOT_HOME, //ԭ<><D4AD>
|
|
|
|
|
IOT_SEVON, //ʹ<><CAB9>
|
|
|
|
|
IOT_CLEARALARM, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMPosType
|
|
|
|
|
{//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EMPos_Default = -1, //Ĭ<><C4AC>λ<EFBFBD><CEBB> <20>ŷ<EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D>滮<EFBFBD><E6BBAE>
|
|
|
|
|
EMPos_Encoder, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
EMPos_Profile, //<2F>滮<EFBFBD><E6BBAE>λ<EFBFBD><CEBB>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TDevInfo
|
|
|
|
|
{//Ӳ<><D3B2><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
char id[MAX_ID_LEN]; //Ӳ<><D3B2>id<69><64><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD>16λ
|
|
|
|
|
char desc[MAX_NAME_LEN]; //Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
TParam homep; //<2F><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
TParam param; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort paramCnt; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort homeCnt; //<2F><>ԭ<EFBFBD><D4AD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>homep <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
|
|
|
|
|
ushort axisCnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> motor-<2D><>/ר<><D7A8>IO<49><4F><EFBFBD><EFBFBD>
|
|
|
|
|
ushort ioCnt; //io-ͨ<><CDA8>IOλ<4F><CEBB>
|
|
|
|
|
ushort adCnt; //ad-ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort reserved[3]; //<2F><>֤8λ<38><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TSpeed
|
|
|
|
|
{//<2F>ٶȽṹ
|
|
|
|
|
double vel;
|
|
|
|
|
double acc;
|
|
|
|
|
double dec;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TVisionDevInfo
|
|
|
|
|
{//<2F>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
char id[MAX_ID_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id -- <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD>ʶ<EFBFBD><CAB6>,<2C><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
|
|
|
|
|
char desc[MAX_NAME_LEN]; //Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
TParam param; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort paramCnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort reserved[3]; //<2F><>֤8λ<38><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TVisionResult
|
|
|
|
|
{//<2F>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
int res; //<2F><><EFBFBD><EFBFBD> 0 - ok
|
|
|
|
|
int resCnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
double val[RES_CNT]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TVisionImage
|
|
|
|
|
{//<2F>Ӿ<EFBFBD>ͼ<EFBFBD><CDBC>
|
|
|
|
|
ushort width; //ͼ<><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
ushort heigh; //ͼ<><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
ushort channel; //ͼ<><CDBC>ͨ<EFBFBD><CDA8> 1ͨ<31><CDA8> 3ͨ<33><CDA8>(<28><>ɫ)
|
|
|
|
|
ushort rowbytes; //ÿ<><C3BF>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
char* pdata; //<2F><><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define DEFAULTPOS 10000 //Ĭ<><C4AC>λ<EFBFBD><CEBB> -- <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD>
|
|
|
|
|
#define MAX_AXIS_CNT 6 //<2F><>վ<EFBFBD><D5BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define MAX_TOOL_CNT 10 //Tool<6F><6C><EFBFBD><EFBFBD>
|
|
|
|
|
#define MAX_PALLET_CNT 50 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#define MAX_POINT_CNT 200 //<2F><>վ<EFBFBD><D5BE>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
#define PAGE_AD_CNT 8 //ÿҳADͨ<44><CDA8><EFBFBD><EFBFBD>
|
|
|
|
|
#define PAGE_IO_CNT 16 //ÿҳIO<49><4F><EFBFBD><EFBFBD>
|
|
|
|
|
#define PAGE_AXIS_CNT 8 //ÿҳAxis<69><73><EFBFBD><EFBFBD>
|
|
|
|
|
#define NEWDEVCNT 10 //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
enum EMIOVAL
|
|
|
|
|
{//IO<49><4F><EFBFBD><EFBFBD>
|
|
|
|
|
IOFF = 0, //<2F>ر<EFBFBD>
|
|
|
|
|
ION, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMDir
|
|
|
|
|
{//<2F>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
DirN = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
DirP, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMIOSYSType
|
|
|
|
|
{//ϵͳIO<49><4F><EFBFBD><EFBFBD>
|
|
|
|
|
IOS_Normal = 0, //<2F><>ͨIO
|
|
|
|
|
IOS_START, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
IOS_RESET, //<2F><>λ
|
|
|
|
|
IOS_ESTOP, //<2F><>ͣ
|
|
|
|
|
IOS_PAUSE, //<2F><>ͣ
|
|
|
|
|
IOS_STOP, //ֹͣ
|
|
|
|
|
IOS_BRAKE, //ɲ<><C9B2>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMAxisType
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EAXIS_SERVO = 0, //<2F>ŷ<EFBFBD>
|
|
|
|
|
EAXIS_STEPPER, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EAXIS_FLOW, //<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> - <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ԭ
|
|
|
|
|
EAXIS_ABSSERVO, //<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>ԭ
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMAxisDir
|
|
|
|
|
{//<2F>᷽<EFBFBD><E1B7BD>
|
|
|
|
|
EAXIS_X = 0, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
EAXIS_Y, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
EAXIS_Z, //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
EAXIS_U, //ƽ<><C6BD><EFBFBD><EFBFBD>ת
|
|
|
|
|
EAXIS_V, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
EAXIS_W, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum EMHomeType
|
|
|
|
|
{//<2F><>ԭ<EFBFBD><D4AD>ʽ
|
|
|
|
|
EHOME_LIMITN = 0, //<2F>Ȼظ<C8BB><D8B8><EFBFBD>λ
|
|
|
|
|
EHOME_LIMITP, //<2F>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
EHOME_HOMEP, //<2F><>ԭ<EFBFBD><D4AD><EFBFBD>پ<EFBFBD>ȷ<EFBFBD><C8B7>ԭ
|
|
|
|
|
EHOME_IOHOME, //IO<49><4F><EFBFBD>ƻ<EFBFBD>ԭ
|
|
|
|
|
EHOME_GOHOME, //ֱ<>Ӿ<EFBFBD>ȷ<EFBFBD><C8B7>ԭ
|
|
|
|
|
EHOME_NOHOME, //<2F><><EFBFBD><EFBFBD>ԭ,ֱ<><D6B1><EFBFBD>Ե<EFBFBD>ǰλ<C7B0><CEBB>Ϊԭ<CEAA><D4AD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TCard
|
|
|
|
|
{//<2F><><EFBFBD>ƿ<EFBFBD>
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
char dev[MAX_ID_LEN]; //Ӳ<><D3B2>ID
|
|
|
|
|
TParam param; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int cid; //<2F><>ID
|
|
|
|
|
ushort axisCnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> motor-<2D><>/ר<><D7A8>IO<49><4F><EFBFBD><EFBFBD>
|
|
|
|
|
ushort ioCnt; //io-ͨ<><CDA8>IOλ<4F><CEBB>
|
|
|
|
|
ushort adCnt; //ad-ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort reserved[3]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>8λ<38><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TVision
|
|
|
|
|
{//<2F>Ӿ<EFBFBD>
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
char dev[MAX_ID_LEN]; //<2F><><EFBFBD><EFBFBD>ID
|
|
|
|
|
TParam param; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int vid; //<2F>Ӿ<EFBFBD>ID
|
|
|
|
|
int reserved; //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>8λ<38><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TStation
|
|
|
|
|
{//<2F><>վ
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
int axis[MAX_AXIS_CNT]; //<2F><>ID
|
|
|
|
|
int tid; //<2F><>վID
|
|
|
|
|
ushort axisCnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort reserved;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TAxisParam
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
char outIO[MAX_NAME_LEN]; //<2F><>ԭIO or ɲ<><C9B2>IO
|
|
|
|
|
int axis; //<2F><>ID
|
|
|
|
|
int cid; //<2F><>ID
|
|
|
|
|
int index; //<2F>ڵ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int homeIndex; //<2F><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صĻ<D8B5>ԭ<EFBFBD><D4AD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>ʾ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ԭ
|
|
|
|
|
int bDirNeg; //<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1> 1ȡ<31><C8A1> 0<><30>ȡ<EFBFBD><C8A1>
|
|
|
|
|
EMAxisDir dir; //0==x 1==y 2==z 3==u 4==v 5==w
|
|
|
|
|
EMAxisType motorType; //<2F>ο<EFBFBD> 0<>ŷ<EFBFBD>, 1<><31><EFBFBD><EFBFBD> 2<><32>ˮ<EFBFBD><CBAE> 3<><33><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
EMHomeType homeType; //<2F><>ԭ<EFBFBD><D4AD>ʽ 0<><30><EFBFBD><EFBFBD>λ 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ 2<><32>ԭ<EFBFBD><D4AD> 3IO<49><4F><EFBFBD>ƻ<EFBFBD>ԭ 4ֱ<34>ӻ<EFBFBD><D3BB><EFBFBD> 5ֱ<35>ӻ<EFBFBD><D3BB><EFBFBD> 6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
int homePos; //ԭ<><D4AD>λ<EFBFBD><CEBB>+<2B><><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>mm
|
|
|
|
|
int limitN; //<2F><><EFBFBD><EFBFBD>λλ<CEBB><CEBB>+<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ <20><>λ<EFBFBD><CEBB>mm
|
|
|
|
|
int limitP; //<2F><><EFBFBD><EFBFBD>λλ<CEBB><CEBB>+<2B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ <20><>λ<EFBFBD><CEBB>mm
|
|
|
|
|
int highHomePos; //<2F><><EFBFBD>ٻ<EFBFBD>ԭλ<D4AD><CEBB> <20><>λ<EFBFBD><CEBB>mm Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><C3B8>ٻ<EFBFBD>ԭ
|
|
|
|
|
int iAfterhomeOffset; //<2F><>ԭ<EFBFBD><D4AD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>mm
|
|
|
|
|
int arriveOffset; //<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>um 0<><30>ʾ<EFBFBD><CABE>Ч <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滮<EFBFBD><E6BBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEA3AC>λ<EFBFBD><CEBB><EFBFBD>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD>˶<EFBFBD>
|
|
|
|
|
|
|
|
|
|
double limitvel; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ٶ<EFBFBD> mm/s
|
|
|
|
|
double homeVel; //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD>ٶ<EFBFBD> mm/s
|
|
|
|
|
double maxVel; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> mm/s
|
|
|
|
|
double maxAcc; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> mm/s^2
|
|
|
|
|
double maxDec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> mm/s^2
|
|
|
|
|
double stepvalue; //1mm<6D><6D>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TAdParam
|
|
|
|
|
{//ad<61><64><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ad = readAD * ratio + offset
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
double ratio; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
|
|
|
|
double offset; //<2F><><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
int aid; //ID
|
|
|
|
|
int cid; //<2F><>ID
|
|
|
|
|
int index; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
int reserved; //<2F><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>8λ<38><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef struct IOConfig
|
|
|
|
|
{//io<69><6F><EFBFBD><EFBFBD>
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
int iid; //ID
|
|
|
|
|
int cid; //<2F><>ID
|
|
|
|
|
int index; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
int sense; //<2F>Ƿ<EFBFBD>ȡ<EFBFBD><C8A1> 0ȡ<30><C8A1> 1<><31>ȡ<EFBFBD><C8A1>
|
|
|
|
|
EIOType type; //<2F>ο<EFBFBD> EIOType ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><>λ/ԭ<><D4AD><EFBFBD><EFBFBD>
|
|
|
|
|
EMIOSYSType ios; //<2F>ο<EFBFBD> EMIOSYSType ϵͳ<CFB5><CDB3><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ʼ<EFBFBD><CABC>ֹͣ<CDA3><D6B9><EFBFBD>ȵ<EFBFBD>
|
|
|
|
|
} TIoParam;
|
|
|
|
|
|
|
|
|
|
struct TPallet
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
ushort index; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
ushort start; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort ptCol; //<2F><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
ushort ptRow; //<2F><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
|
|
|
|
|
ushort col; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ushort row; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TPoint
|
|
|
|
|
{//<2F><>λ
|
|
|
|
|
int index; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int itool; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λʱʹ<CAB1>õ<EFBFBD>tool[0,10]
|
|
|
|
|
char name[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
double val[MAX_AXIS_CNT]; //<2F>ֱ<EFBFBD>Ϊx,y,z,u,v,w<><77><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TControlCfg
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int bPrintLog; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ӡ<EFBFBD><D3A1>־
|
|
|
|
|
int bSendSysMsg; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>Ϣ <20>磺reset / pause
|
|
|
|
|
int bHomeClearPos; //<2F><>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
int bChkPtChange; //<2F><><EFBFBD>ӵ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ݱ䶯 -- <20>ܿ<EFBFBD><DCBF><EFBFBD>
|
|
|
|
|
int chkOffsetShow; //<2F><>λ<EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD><EFBFBD>ʾ 0<><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λmm [0,50]
|
|
|
|
|
int movePrecision; //<2F>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD>ǰλ<C7B0><CEBB><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD> <20><>λum [1,1000]
|
|
|
|
|
int bRecordPos; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>¼<EFBFBD>ϴ<EFBFBD><CFB4>˳<EFBFBD>ʱ<EFBFBD><CAB1>λ<EFBFBD><CEBB> 1<><31>¼<EFBFBD><C2BC>0<EFBFBD><30><EFBFBD><EFBFBD>¼ <20><>¼ʱ<C2BC><CAB1><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>û<EFBFBD>ԭ
|
|
|
|
|
int bSafeChk; //<2F><>ȫ<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD> -- <20>ܿ<EFBFBD><DCBF><EFBFBD> <20>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>ֵʱ<D6B5><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
|
|
|
|
int safeSpdOffset; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>[10,1000],<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>,<2C><>50<35><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>150ʱ<30><CAB1><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|
|
|
|
int bSaveTxt; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7>λ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ʽ -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|
|
|
|
int bArcPause; //Բ<><D4B2><EFBFBD>岹<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ 0<><30><EFBFBD><EFBFBD>ͣ
|
|
|
|
|
int interval; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>λ<EFBFBD><CEBB>ms <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[0,100]
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum Control_ErrCode
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ERR_NO_SUPPORT = -900, //<2F>ù<EFBFBD><C3B9>ܲ<EFBFBD>֧<EFBFBD><D6A7>
|
|
|
|
|
ERR_NO_SERVICE, //<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
|
|
|
|
|
ERR_NO_DEV, //δ<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ERR_NDEV_COUNT, //<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ERR_HOME_BREAK, //<2F><>ԭ<EFBFBD><D4AD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
ERR_MOVE_BREAK, //<2F>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
ERR_NO_HOME, //δ<><CEB4>ԭ
|
|
|
|
|
ERR_LOAD_CFG, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>
|
|
|
|
|
ERR_OCCUPY_AXIS, //<2F>ᱻռ<E1B1BB><D5BC>
|
|
|
|
|
ERR_IO_TYPE, //IO<49><4F><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
|
|
|
|
|
ERR_AXIS_HOME, //<2F><><EFBFBD><EFBFBD>ԭʧ<D4AD><CAA7>
|
|
|
|
|
ERR_IS_MOVING, //<2F><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD>
|
|
|
|
|
ERR_NO_SERVO, //δʹ<CEB4><CAB9>
|
|
|
|
|
ERR_SET_CRD, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵʧ<CFB5><CAA7>
|
|
|
|
|
ERR_SAFE_CHK, //<2F><>ȫ<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
ERR_NO_HOMEP, //<2F><>ԭ<EFBFBD><D4AD><EFBFBD>ź<EFBFBD>
|
|
|
|
|
ERR_NO_LIMITN, //<2F><EFBFBD><DEB8><EFBFBD>λ<EFBFBD>ź<EFBFBD>
|
|
|
|
|
ERR_NO_LIMITP, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ź<EFBFBD>
|
|
|
|
|
ERR_IN_LIMITN, //<2F>ڸ<EFBFBD><DAB8><EFBFBD>λ
|
|
|
|
|
ERR_IN_LIMITP, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
ERR_VISION_IMG, //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|
|
|
|
ERR_VISION_GR, //<2F>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/*ģ<><C4A3><EFBFBD>ṩ<EFBFBD>İ<F2B5A5B5>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
|
|
|
|
1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>࣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֱ<EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>᷽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a+b<offsetʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>a+b>offset(mm)ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>offset <EFBFBD><EFBFBD>offset-50ʱ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD>50%<EFBFBD><EFBFBD>>offsetʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ
|
|
|
|
|
2. λ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD>ȫ<EFBFBD>߶ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
|
|
|
|
|
<EFBFBD><EFBFBD>ȻҲ<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
a. <EFBFBD><EFBFBD>pid2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λIO
|
|
|
|
|
b. <EFBFBD><EFBFBD>judge<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ ESafeJ_Equal
|
|
|
|
|
c. <EFBFBD><EFBFBD>safeval<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 1.0 -- <EFBFBD><EFBFBD>=1
|
|
|
|
|
d. <EFBFBD><EFBFBD>pid1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊij<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
e. <EFBFBD><EFBFBD>type<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪESafe_VALUE
|
|
|
|
|
f. <EFBFBD><EFBFBD>dir1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ2 -- <EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
<EFBFBD><EFBFBD>value(pid2)==1ʱ <EFBFBD><EFBFBD>(pid1)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>.
|
|
|
|
|
3. <EFBFBD><EFBFBD>Ҫʵ<EFBFBD>ָ<EFBFBD><EFBFBD>ӵİ<EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FunSafeCallBack
|
|
|
|
|
*/
|
|
|
|
|
enum ESafeChk
|
|
|
|
|
{//<2F><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ģʽ
|
|
|
|
|
ESafe_DISTANCE = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬ͨ<E2A3AC><CDA8>Ϊpos(1)+pos(2) < or > val(mm)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>or<6F><72>ͣ
|
|
|
|
|
ESafe_VALUE, //λ<>ü<EFBFBD><C3BC><EFBFBD> -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO, Ŀ<><C4BF>ֵ<= or >= valʱ<6C><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum ESafeJudge
|
|
|
|
|
{//<2F><>ȫ<EFBFBD>ж<EFBFBD>ģʽ
|
|
|
|
|
ESafeJ_Equal = 0, //<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ֵ
|
|
|
|
|
ESafeJ_Less, //С<><D0A1>ij<EFBFBD><C4B3>ֵ
|
|
|
|
|
ESafeJ_Greater, //<2F><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ֵ
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TSafeCfg
|
|
|
|
|
{//<2F>˶<EFBFBD><CBB6><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>
|
|
|
|
|
int sid; //<2F><><EFBFBD><EFBFBD>ID
|
|
|
|
|
int pid; //<2F><>ID<49><44>IO ESafe_VALUEʱ,<2C><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>
|
|
|
|
|
int dir; //pid <20><><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD> DirN-0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DirP-1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2-<2D><><EFBFBD>߶<EFBFBD><DFB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int pid2; //<2F><>ID<49><44>IO ESafe_VALUEʱ,<2C><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;ESafe_DISTANCEʱ,pid<69><64>pid2<64><32>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>
|
|
|
|
|
ESafeChk type; //<2F><><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\λ<>ü<EFBFBD><C3BC><EFBFBD>
|
|
|
|
|
ESafeJudge judge; //<2F>ж<EFBFBD>ģʽ
|
|
|
|
|
int safeval; //<2F><>ȫֵ -- <20><><EFBFBD><EFBFBD>
|
|
|
|
|
int bhomechk; //<2F><>ԭʱ<D4AD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char desc[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TLicenseInfo
|
|
|
|
|
{//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
int dyn; //8λ<38><CEBB>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int perdate; //<2F><>Ч<EFBFBD><D0A7> 20181212 0<><30>ʶ<EFBFBD><CAB6>Ч
|
|
|
|
|
char hd[MAX_NAME_LEN];
|
|
|
|
|
char cpu[MAX_NAME_LEN];
|
|
|
|
|
char mac[MAX_NAME_LEN];
|
|
|
|
|
char sn[MAX_BUF_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct TDevMap
|
|
|
|
|
{//ӳ<><D3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int pid; //pid <20><>/IO/AD/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>Ӿ<EFBFBD><D3BE><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
char var[MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD> <20>洢<EFBFBD><E6B4A2>״̬/IOֵ/ADֵ<44><D6B5><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>Ӿ<EFBFBD>״̬
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#pragma region callback
|
|
|
|
|
|
|
|
|
|
//<2F><>ȫ<EFBFBD><C8AB><EFBFBD>ӿڻص<DABB>
|
|
|
|
|
//pid <20><>ID<49><44>IO
|
|
|
|
|
//curval <20><>ǰλ<C7B0><CEBB> <20>ɱ<EFBFBD>ʶaxis/ioλ<6F><CEBB>
|
|
|
|
|
//val Ŀ<><C4BF>λ<EFBFBD><CEBB> <20><>ʾ<EFBFBD>˶<EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD><CEBB>(mm) IO<49><4F>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><D7BF><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>ź<EFBFBD>
|
|
|
|
|
//bhome <20><>IDʱ1<CAB1><31>ʾ<EFBFBD><CABE>ԭ<EFBFBD><D4AD>0<EFBFBD><30>ʾ<EFBFBD><CABE><EFBFBD>ǻ<EFBFBD>ԭ<EFBFBD><D4AD>IO<49><4F><EFBFBD><EFBFBD>ʱ<EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ <20><><EFBFBD><EFBFBD>1<EFBFBD><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>,<2C><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD> <20><><EFBFBD><EFBFBD>0<EFBFBD><30>ʾ<EFBFBD><CABE><EFBFBD>ⲻͨ<E2B2BB><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>control<6F><6C><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>/IO<49><4F><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6>ӿ<EFBFBD>
|
|
|
|
|
typedef int (WINAPI *FunSafeCallBack)(int pid, int curval, int val, int bhome);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڻص<DABB> -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><><EFBFBD><EFBFBD>C#ע<><D7A2><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//fun <20>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//cid <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD>˴Ӳ<CBB4><D3B2><EFBFBD>ʱΪ0
|
|
|
|
|
/*---<2D>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>---
|
|
|
|
|
int get_command_desc(char* pszcmddesc) -- <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵ<EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int init_devs(ushort index, const char* ctx) -- <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>һ<EFBFBD>ſ<EFBFBD>
|
|
|
|
|
int uninit_dev(ushort index) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>һ<EFBFBD>ſ<EFBFBD>
|
|
|
|
|
int get_status(ushort index) -- <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>״̬
|
|
|
|
|
int send_custom_msg(ushort index, const char* msg, char* res) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
int recv_custom_msg(ushort index, const char* msg, char* res, int timeout) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
int axis_reset(ushort cindex, ushort axisIndex) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int axis_zero_pos(ushort cindex, ushort axisIndex) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
... <EFBFBD>ο<EFBFBD>motor.h
|
|
|
|
|
axis_home axis_is_moving axis_set_speed axis_set_pos axis_stop axis_move_jog
|
|
|
|
|
axis_move_pos axis_move_offset axis_read axis_write axis_get_pos
|
|
|
|
|
create_crd add_line_pos add_arc_pos add_line add_arc
|
|
|
|
|
crd_move crd_is_moving close_crd
|
|
|
|
|
read_in read_out write_out
|
|
|
|
|
read_ad write_ad
|
|
|
|
|
-----<EFBFBD>ӿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD>---*/
|
|
|
|
|
//pszparam <20><><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ĸ<EFBFBD><C4B8>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<22><><EFBFBD><EFBFBD>
|
|
|
|
|
//pszres <20><><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ,<2C><><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>ָ<EFBFBD>뵽Ӧ<EBB5BD>ò<EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<22><><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ <20>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʧ<EFBFBD>ܷ<EFBFBD><DCB7>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD> dev.h motor.h
|
|
|
|
|
typedef int (WINAPI *DevCallBack)(const char* fun, ushort cid, const char* pszparam/* = 0*/, char* pszres/* = 0*/);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
typedef int (WINAPI *fun_init)(ushort index, const char* ctx);
|
|
|
|
|
typedef int (WINAPI *fun_deinit)(ushort index);
|
|
|
|
|
typedef int (WINAPI *fun_get_status)(ushort index);
|
|
|
|
|
typedef int (WINAPI *fun_get_cmd_info)(char* pszcmddesc);
|
|
|
|
|
typedef int (WINAPI *fun_send_msg)(ushort index, const char* msg, char* res);
|
|
|
|
|
typedef int (WINAPI *fun_recv_msg)(ushort index, const char* msg, char* res, int timeout);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ƿ<EFBFBD><C6BF>ײ<EFBFBD><D7B2>̳<EFBFBD><CCB3><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD> -- <20><><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
typedef int (WINAPI *fun_axis_reset)(ushort index, ushort axisIndex);
|
|
|
|
|
typedef int (WINAPI *fun_axis_home)(ushort index, ushort axisIndex, ushort homeType, double pos, double offset, double vel);
|
|
|
|
|
typedef int (WINAPI *fun_axis_zero_pos)(ushort index, ushort axisIndex);
|
|
|
|
|
typedef int (WINAPI *fun_axis_is_moving)(ushort index, ushort axisIndex);
|
|
|
|
|
typedef int (WINAPI *fun_axis_set_speed)(ushort index, ushort axisIndex, double vel, double acc, double dec);
|
|
|
|
|
typedef int (WINAPI *fun_axis_set_pos)(ushort index, ushort axisIndex, double pos);
|
|
|
|
|
typedef int (WINAPI *fun_axis_stop)(ushort index, ushort axisIndex, int type);
|
|
|
|
|
typedef int (WINAPI *fun_axis_move_pos)(ushort index, ushort axisIndex, double pos, double vel, double acc, double dec);
|
|
|
|
|
typedef int (WINAPI *fun_axis_move_offset)(ushort index, ushort axisIndex, double offset, double vel, double acc, double dec);
|
|
|
|
|
typedef int (WINAPI *fun_axis_move_jog)(ushort index, ushort axisIndex, int dir, double vel, double acc, double dec);
|
|
|
|
|
typedef int (WINAPI *fun_axis_read)(ushort index, ushort axisIndex, int dio_type);
|
|
|
|
|
typedef int (WINAPI *fun_axis_write)(ushort index, ushort axisIndex, ushort val, int do_type);
|
|
|
|
|
typedef int (WINAPI *fun_axis_get_pos)(ushort index, ushort axisIndex, int postype, double *pval);
|
|
|
|
|
typedef int (WINAPI *fun_create_crd)(ushort index, ushort *pAxisIndex, ushort nsize);
|
|
|
|
|
typedef int (WINAPI *fun_add_line_pos)(int crd, double *ppos, ushort nsize, double vel, double acc, double endvel);
|
|
|
|
|
typedef int (WINAPI *fun_add_arc_pos)(int crd, double *ppos1, double *ppos2, double *ppos3, ushort nsize, double vel, double acc, double endvel);
|
|
|
|
|
typedef int (WINAPI *fun_crd_move)(int crd);
|
|
|
|
|
typedef int (WINAPI *fun_crd_is_moving)(int crd, int *progress);
|
|
|
|
|
typedef int (WINAPI *fun_close_crd)(int crd);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ƿ<EFBFBD><C6BF>ײ<EFBFBD><D7B2>̳<EFBFBD><CCB3><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD> -- IO<49>ӿ<EFBFBD>
|
|
|
|
|
typedef int (WINAPI *fun_read_in)(ushort index, ushort in_index);
|
|
|
|
|
typedef int (WINAPI *fun_read_out)(ushort index, ushort out_index);
|
|
|
|
|
typedef int (WINAPI *fun_write_out)(ushort index, ushort out_index, ushort val);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ƿ<EFBFBD><C6BF>ײ<EFBFBD><D7B2>̳<EFBFBD><CCB3><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD> -- AD<41>ӿ<EFBFBD>
|
|
|
|
|
typedef int (WINAPI *fun_read_ad)(ushort index, ushort ad_index, double* pVal);
|
|
|
|
|
typedef int (WINAPI *fun_write_ad)(ushort index, ushort ad_index, double val);
|
|
|
|
|
|
|
|
|
|
struct MotorFun
|
|
|
|
|
{//<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|
|
|
|
fun_init funinit;
|
|
|
|
|
fun_deinit fundeinit;
|
|
|
|
|
fun_get_status funstatus;
|
|
|
|
|
fun_send_msg funsend;
|
|
|
|
|
fun_recv_msg funrecv;
|
|
|
|
|
fun_get_cmd_info funcmd;
|
|
|
|
|
|
|
|
|
|
fun_axis_reset funreset;
|
|
|
|
|
fun_axis_home funhome;
|
|
|
|
|
fun_axis_zero_pos funzero;
|
|
|
|
|
fun_axis_is_moving funismoving;
|
|
|
|
|
fun_axis_set_speed funsetspeed;
|
|
|
|
|
fun_axis_set_pos funsetpos;
|
|
|
|
|
fun_axis_stop funstop;
|
|
|
|
|
fun_axis_move_pos funmovepos;
|
|
|
|
|
fun_axis_move_offset funmoveoffset;
|
|
|
|
|
fun_axis_move_jog funmovejog;
|
|
|
|
|
fun_axis_read funaxisread;
|
|
|
|
|
fun_axis_write funaxiswrite;
|
|
|
|
|
fun_axis_get_pos fungetpos;
|
|
|
|
|
fun_create_crd funcrd;
|
|
|
|
|
fun_add_line_pos funaddline;
|
|
|
|
|
fun_add_arc_pos funaddarc;
|
|
|
|
|
fun_crd_move funcrdmove;
|
|
|
|
|
fun_crd_is_moving funcrdmoving;
|
|
|
|
|
fun_close_crd funclosecrd;
|
|
|
|
|
|
|
|
|
|
fun_read_in funreadin;
|
|
|
|
|
fun_read_out funreadout;
|
|
|
|
|
fun_write_out funwriteout;
|
|
|
|
|
|
|
|
|
|
fun_read_ad funreadad;
|
|
|
|
|
fun_write_ad funwritead;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#pragma endregion
|
|
|
|
|
|
|
|
|
|
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
|