2249 lines
186 KiB
C
2249 lines
186 KiB
C
#ifndef _DMC_LIB_H
|
||
#define _DMC_LIB_H
|
||
|
||
#ifndef TRUE
|
||
#define TRUE 1
|
||
#endif
|
||
|
||
#ifndef FALSE
|
||
#define FALSE 0
|
||
#endif
|
||
|
||
#ifndef NULL
|
||
#ifdef __cplusplus
|
||
#define NULL 0
|
||
#else
|
||
#define NULL ((void *)0)
|
||
#endif
|
||
#endif
|
||
|
||
typedef unsigned long DWORD;
|
||
typedef int BOOL;
|
||
typedef unsigned char BYTE;
|
||
typedef unsigned short WORD;
|
||
typedef float FLOAT;
|
||
|
||
typedef unsigned char uint8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */
|
||
typedef signed char int8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */
|
||
typedef unsigned short uint16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */
|
||
typedef signed short int16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
|
||
typedef unsigned int uint32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */
|
||
typedef signed int int32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
|
||
typedef unsigned long long uint64;
|
||
typedef signed long long int64;
|
||
|
||
typedef uint32 (__stdcall * DMC3K5K_OPERATE)(void* operator_data);
|
||
|
||
typedef struct
|
||
{
|
||
uint32 m_Time;
|
||
int32 m_CommandPos;
|
||
double m_CommandVel;
|
||
uint32 m_CommandAcc;
|
||
int32 m_FpgaPos;
|
||
double m_FpgaVel;
|
||
int32 m_EncoderPos;
|
||
double m_ErrorPos;
|
||
}struct_PidAdjustData;
|
||
|
||
typedef struct{
|
||
double start_pos; //线性比较起始点位置.
|
||
double interval; //间距.
|
||
int count;//个数
|
||
} struct_hs_cmp_info;
|
||
|
||
|
||
#define __DMC_EXPORTS
|
||
|
||
//定义输入和输出
|
||
#ifdef __DMC_EXPORTS
|
||
#define DMC_API __declspec(dllexport)
|
||
#else
|
||
#define DMC_API __declspec(dllimport)
|
||
#endif
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
//设置和读取打印模式
|
||
DMC_API short __stdcall dmc_set_debug_mode(WORD mode,const char* pFileName);
|
||
DMC_API short __stdcall dmc_get_debug_mode(WORD* mode,char* pFileName);
|
||
|
||
DMC_API short __stdcall dmc_board_init(void); //初始化控制卡
|
||
DMC_API short __stdcall dmc_board_init_onecard(WORD CardNo); ////客户定制独立开卡 初始化一张控制卡
|
||
DMC_API short __stdcall dmc_board_close_onecard(WORD CardNo); ////客户定制独立关卡 关闭一个控制卡
|
||
DMC_API short __stdcall dmc_get_CardInfList(WORD* CardNum,DWORD* CardTypeList,WORD* CardIdList);//读取控制卡信息列表
|
||
DMC_API short __stdcall dmc_board_close(void); //关闭控制卡
|
||
DMC_API short __stdcall dmc_board_reset(void); //硬件复位
|
||
DMC_API short __stdcall dmc_board_reset_onecard(WORD CardNo);//客户定制单独硬件复位
|
||
DMC_API short __stdcall dmc_soft_reset(WORD CardNo);//控制卡软复位(pci卡) 热复位(总线卡)
|
||
DMC_API short __stdcall dmc_cool_reset(WORD CardNo);//控制卡冷复位
|
||
DMC_API short __stdcall dmc_original_reset(WORD CardNo);//控制卡初始复位
|
||
DMC_API short __stdcall dmc_get_card_ID (WORD CardNo,DWORD *CardID); //读取控制卡卡号
|
||
DMC_API short __stdcall dmc_get_release_version(WORD CardNo,char *ReleaseVersion);//读取发布版本号
|
||
DMC_API short __stdcall dmc_get_card_version(WORD CardNo,DWORD *CardVersion); //读取控制卡硬件版本
|
||
DMC_API short __stdcall dmc_get_card_soft_version(WORD CardNo,DWORD *FirmID,DWORD *SubFirmID); //读取控制卡硬件的固件版本
|
||
DMC_API short __stdcall dmc_get_card_lib_version(DWORD *LibVer); //读取控制卡动态库版本
|
||
DMC_API short __stdcall dmc_get_total_axes(WORD CardNo,DWORD *TotalAxis); //读取指定卡轴数
|
||
DMC_API short __stdcall dmc_get_total_liners(WORD CardNo,DWORD *TotalLiner); //读取指定卡插补坐标系数
|
||
|
||
DMC_API short __stdcall dmc_get_total_ionum(WORD CardNo,WORD *TotalIn,WORD *TotalOut);//获取本地IO点数
|
||
DMC_API short __stdcall dmc_get_total_adcnum(WORD CardNo,WORD* TotalIn,WORD* TotalOut);//获取本地ADDA输入输出数
|
||
|
||
//密码函数
|
||
DMC_API short __stdcall dmc_check_sn(WORD CardNo, const char * str_sn);
|
||
DMC_API short __stdcall dmc_write_sn(WORD CardNo, const char * str_sn);
|
||
|
||
/***********轴参数*************/
|
||
//脉冲模式
|
||
DMC_API short __stdcall dmc_set_pulse_outmode(WORD CardNo,WORD axis,WORD outmode);
|
||
DMC_API short __stdcall dmc_get_pulse_outmode(WORD CardNo,WORD axis,WORD* outmode);
|
||
//脉冲当量
|
||
DMC_API short __stdcall dmc_set_equiv(WORD CardNo,WORD axis, double equiv);
|
||
DMC_API short __stdcall dmc_get_equiv(WORD CardNo,WORD axis, double *equiv);
|
||
//反向间隙(当量)
|
||
DMC_API short __stdcall dmc_set_backlash_unit(WORD CardNo,WORD axis,double backlash);
|
||
DMC_API short __stdcall dmc_get_backlash_unit(WORD CardNo,WORD axis,double *backlash);
|
||
//反向间隙(脉冲)
|
||
DMC_API short __stdcall dmc_set_backlash(WORD CardNo,WORD axis,long backlash);
|
||
DMC_API short __stdcall dmc_get_backlash(WORD CardNo,WORD axis,long *backlash);
|
||
|
||
//加速度接口
|
||
DMC_API short __stdcall dmc_set_profile_unit_acc(WORD CardNo,WORD axis,double Min_Vel,double Max_Vel,double Tacc,double Tdec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_get_profile_unit_acc(WORD CardNo,WORD axis,double* Min_Vel,double* Max_Vel,double* Tacc,double* Tdec,double* Stop_Vel);
|
||
DMC_API short __stdcall dmc_set_vector_profile_multicoor_acc(WORD CardNo,WORD iDMC_ILINER, double Min_Vel,double Max_Vel,double Acc,double Dec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_get_vector_profile_multicoor_acc(WORD CardNo,WORD iDMC_ILINER, double* Min_Vel,double* Max_Vel,double* Acc,double* Dec,double* Stop_Vel);
|
||
DMC_API short __stdcall dmc_set_vector_profile_unit_acc(WORD CardNo,WORD Crd,double Min_Vel,double Max_Vel,double Tacc,double Tdec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_get_vector_profile_unit_acc(WORD CardNo,WORD Crd,double* Min_Vel,double* Max_Vel,double* Tacc,double* Tdec,double* Stop_Vel);
|
||
DMC_API short __stdcall dmc_change_speed_unit_acc(WORD CardNo,WORD axis, double New_Vel,double Taccdec);
|
||
DMC_API short __stdcall dmc_change_speed_acc(WORD CardNo,WORD axis,double Curr_Vel,double Taccdec);
|
||
DMC_API short __stdcall dmc_pmove_extern_acc(WORD CardNo, WORD axis, double dist,double Min_Vel, double Max_Vel, double Tacc, double Tdec, double stop_Vel, double s_para, WORD posi_mode);
|
||
DMC_API short __stdcall nmc_set_home_profile_acc(WORD CardNo ,WORD axis,WORD home_mode,double Low_Vel, double High_Vel,double Tacc,double Tdec,double offsetpos );
|
||
DMC_API short __stdcall nmc_get_home_profile_acc(WORD CardNo,WORD axis,WORD* home_mode,double* Low_Vel,double* High_Vel,double* Tacc,double* Tdec,double* Offsetpos);
|
||
DMC_API short __stdcall dmc_set_home_profile_unit_acc(WORD CardNo,WORD axis,double Low_Vel,double High_Vel,double Tacc,double Tdec);//设置回零速度参数
|
||
DMC_API short __stdcall dmc_get_home_profile_unit_acc(WORD CardNo,WORD axis,double* Low_Vel,double* High_Vel,double* Tacc,double* Tdec);//读取回零速度参数
|
||
DMC_API short __stdcall dmc_t_pmove_extern_softstart_acc(WORD CardNo, WORD axis, double MidPos, double TargetPos, double start_Vel, double Max_Vel, double stop_Vel, DWORD delay_ms, double Max_Vel2,double stop_vel2, double acc_time, double dec_time, WORD posi_mode);
|
||
/***********************************文件操作**************************************/
|
||
/*********************************************************************************************************
|
||
文件操作添加 总线卡
|
||
filetype
|
||
0-basic
|
||
1-gcode
|
||
2-setting
|
||
3-firewave
|
||
4-CAN configfile
|
||
100-trace data
|
||
*********************************************************************************************************/
|
||
DMC_API short __stdcall dmc_download_file(WORD CardNo, const char* pfilename, const char* pfilenameinControl,WORD filetype);
|
||
//下载内存文件 总线卡
|
||
DMC_API short __stdcall dmc_download_memfile(WORD CardNo, const char* pbuffer, uint32 buffsize, const char* pfilenameinControl,WORD filetype);
|
||
//上传文件
|
||
DMC_API short __stdcall dmc_upload_file(WORD CardNo, const char* pfilename, const char* pfilenameinControl, WORD filetype);
|
||
//上传内存文件
|
||
DMC_API short __stdcall dmc_upload_memfile(WORD CardNo, char* pbuffer, uint32 buffsize, const char* pfilenameinControl, uint32* puifilesize,WORD filetype);
|
||
//下载参数文件
|
||
DMC_API short __stdcall dmc_download_configfile(WORD CardNo,const char *FileName);
|
||
//下载固件文件
|
||
DMC_API short __stdcall dmc_download_firmware(WORD CardNo,const char *FileName);
|
||
//文件进度
|
||
DMC_API short __stdcall dmc_get_progress(WORD CardNo,float* process);
|
||
|
||
//安全参数
|
||
DMC_API short __stdcall dmc_set_softlimit(WORD CardNo,WORD axis,WORD enable, WORD source_sel,WORD SL_action, long N_limit,long P_limit);//设置软限位参数
|
||
DMC_API short __stdcall dmc_get_softlimit(WORD CardNo,WORD axis,WORD *enable, WORD *source_sel,WORD *SL_action,long *N_limit,long *P_limit);//读取软限位参数
|
||
DMC_API short __stdcall dmc_set_el_mode(WORD CardNo,WORD axis,WORD enable,WORD el_logic,WORD el_mode);//设置EL信号
|
||
DMC_API short __stdcall dmc_get_el_mode(WORD CardNo,WORD axis,WORD *enable,WORD *el_logic,WORD *el_mode);//读取设置EL信号
|
||
DMC_API short __stdcall dmc_set_emg_mode(WORD CardNo,WORD axis,WORD enable,WORD emg_logic);//设置EMG信号
|
||
DMC_API short __stdcall dmc_get_emg_mode(WORD CardNo,WORD axis,WORD *enable,WORD *emg_logic);//读取设置EMG信号
|
||
|
||
/*************************************单轴运动*****************************************/
|
||
//速度设置
|
||
DMC_API short __stdcall dmc_set_profile(WORD CardNo,WORD axis,double Min_Vel,double Max_Vel,double Tacc,double Tdec,double stop_vel);//设定速度曲线参数
|
||
DMC_API short __stdcall dmc_get_profile(WORD CardNo,WORD axis,double *Min_Vel,double *Max_Vel,double *Tacc,double *Tdec,double *stop_vel);//读取速度曲线参数
|
||
//速度设置(脉冲当量)
|
||
DMC_API short __stdcall dmc_set_profile_unit(WORD CardNo,WORD axis,double Min_Vel,double Max_Vel,double Tacc,double Tdec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_get_profile_unit(WORD CardNo,WORD axis,double* Min_Vel,double* Max_Vel,double* Tacc,double* Tdec,double* Stop_Vel);
|
||
|
||
//20160105增加新速度曲线以加速度 减速度 减减速度来表示(脉冲)
|
||
DMC_API short __stdcall dmc_set_profile_extern(WORD CardNo,WORD axis,double Min_Vel,double Max_Vel,double Acc,double Dec,double Ajerk,double Djerk,double stop_vel);
|
||
DMC_API short __stdcall dmc_get_profile_extern(WORD CardNo,WORD axis,double *Min_Vel,double *Max_Vel,double *Acc,double *Dec,double *Ajerk,double *Djerk,double *stop_vel);
|
||
//速度曲线设置,加速度值表示(脉冲)
|
||
DMC_API short __stdcall dmc_set_acc_profile(WORD CardNo,WORD axis,double Min_Vel,double Max_Vel,double Acc,double Dec,double stop_vel);//设定速度曲线参数
|
||
DMC_API short __stdcall dmc_get_acc_profile(WORD CardNo,WORD axis,double *Min_Vel,double *Max_Vel,double *Acc,double *Dec,double *stop_vel);//读取速度曲线参数
|
||
//速度曲线设置,加速度值表示(当量)
|
||
DMC_API short __stdcall dmc_set_profile_unit_acc(WORD CardNo,WORD axis,double Min_Vel,double Max_Vel,double Tacc,double Tdec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_get_profile_unit_acc(WORD CardNo,WORD axis,double* Min_Vel,double* Max_Vel,double* Tacc,double* Tdec,double* Stop_Vel);
|
||
DMC_API short __stdcall dmc_set_s_profile(WORD CardNo,WORD axis,WORD s_mode,double s_para);//设置平滑速度曲线参数
|
||
DMC_API short __stdcall dmc_get_s_profile(WORD CardNo,WORD axis,WORD s_mode,double *s_para);//读取平滑速度曲线参数 兼容DMC5800 s_mode改用指针返回参数值
|
||
|
||
//点位运动(脉冲)
|
||
DMC_API short __stdcall dmc_pmove(WORD CardNo,WORD axis,long dist,WORD posi_mode);//指定轴做定长位移运动
|
||
//点位运动(当量)
|
||
DMC_API short __stdcall dmc_pmove_unit(WORD CardNo,WORD axis,double Dist,WORD posi_mode);
|
||
//单轴连续速度运动
|
||
DMC_API short __stdcall dmc_vmove(WORD CardNo,WORD axis,WORD dir);
|
||
//指定轴做定长位移运动 同时发送速度和S时间(脉冲)
|
||
DMC_API short __stdcall dmc_pmove_extern(WORD CardNo, WORD axis, double dist,double Min_Vel, double Max_Vel, double Tacc, double Tdec, double stop_Vel, double s_para, WORD posi_mode);
|
||
//在线变位/变速(脉冲)
|
||
DMC_API short __stdcall dmc_reset_target_position(WORD CardNo,WORD axis,long dist,WORD posi_mode);//运动中改变目标位置
|
||
DMC_API short __stdcall dmc_change_speed(WORD CardNo,WORD axis,double Curr_Vel,double Taccdec);//在线改变指定轴的当前运动速度
|
||
DMC_API short __stdcall dmc_update_target_position(WORD CardNo,WORD axis,long dist,WORD posi_mode);//无论运动与否强行改变目标位置
|
||
//变速变位(当量)
|
||
DMC_API short __stdcall dmc_reset_target_position_unit(WORD CardNo,WORD axis, double New_Pos);
|
||
DMC_API short __stdcall dmc_change_speed_unit(WORD CardNo,WORD axis, double New_Vel,double Taccdec);
|
||
DMC_API short __stdcall dmc_update_target_position_unit(WORD CardNo,WORD axis, double New_Pos);
|
||
|
||
/******************************插补运动**********************************/
|
||
//3000系列速度设置(脉冲)
|
||
DMC_API short __stdcall dmc_set_vector_profile_multicoor(WORD CardNo,WORD Crd, double Min_Vel,double Max_Vel,double Tacc,double Tdec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_get_vector_profile_multicoor(WORD CardNo,WORD Crd, double* Min_Vel,double* Max_Vel,double* Tacc,double* Tdec,double* Stop_Vel);
|
||
DMC_API short __stdcall dmc_set_vector_s_profile_multicoor(WORD CardNo,WORD Crd,WORD s_mode,double s_para);//设置平滑速度曲线参数
|
||
DMC_API short __stdcall dmc_get_vector_s_profile_multicoor(WORD CardNo,WORD Crd,WORD s_mode,double *s_para);//读取平滑速度曲线参数
|
||
|
||
//插补速度参数(当量)
|
||
DMC_API short __stdcall dmc_set_vector_profile_unit(WORD CardNo,WORD Crd,double Min_Vel,double Max_Vel,double Tacc,double Tdec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_get_vector_profile_unit(WORD CardNo,WORD Crd,double* Min_Vel,double* Max_Vel,double* Tacc,double* Tdec,double* Stop_Vel);
|
||
DMC_API short __stdcall dmc_set_vector_s_profile(WORD CardNo,WORD Crd,WORD s_mode,double s_para);//设置平滑速度曲线参数
|
||
DMC_API short __stdcall dmc_get_vector_s_profile(WORD CardNo,WORD Crd,WORD s_mode,double *s_para);
|
||
|
||
//3000系列插补函数(脉冲)
|
||
DMC_API short __stdcall dmc_line_multicoor(WORD CardNo,WORD Crd,WORD axisNum,WORD *axisList,long *DistList,WORD posi_mode); //指定轴直线插补运动
|
||
DMC_API short __stdcall dmc_arc_move_multicoor(WORD CardNo,WORD Crd,WORD *AxisList,long *Target_Pos,long *Cen_Pos,WORD Arc_Dir,WORD posi_mode);//圆弧插补运动
|
||
//单段插补(当量)
|
||
DMC_API short __stdcall dmc_line_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Dist,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_arc_move_center_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double *Cen_Pos,WORD Arc_Dir,long Circle,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_arc_move_radius_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double Arc_Radius,WORD Arc_Dir,long Circle,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_arc_move_3points_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double *Mid_Pos,long Circle,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_rectangle_move_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Mark_Pos,long num,WORD rect_mode,WORD posi_mode);
|
||
|
||
/********************PVT运动****************************/
|
||
//PVT运动 旧版
|
||
DMC_API short __stdcall dmc_PvtTable(WORD CardNo,WORD iaxis,DWORD count,double *pTime,long *pPos,double *pVel);
|
||
DMC_API short __stdcall dmc_PtsTable(WORD CardNo,WORD iaxis,DWORD count,double *pTime,long *pPos,double *pPercent);
|
||
DMC_API short __stdcall dmc_PvtsTable(WORD CardNo,WORD iaxis,DWORD count,double *pTime,long *pPos,double velBegin,double velEnd);
|
||
DMC_API short __stdcall dmc_PttTable(WORD CardNo,WORD iaxis,DWORD count,double *pTime,long *pPos);
|
||
DMC_API short __stdcall dmc_PvtMove(WORD CardNo,WORD AxisNum,WORD* AxisList);
|
||
//PVT缓冲区添加
|
||
DMC_API short __stdcall dmc_PttTable_add(WORD CardNo,WORD iaxis,DWORD count,double *pTime,long *pPos);
|
||
DMC_API short __stdcall dmc_PtsTable_add(WORD CardNo,WORD iaxis,DWORD count,double *pTime,long *pPos,double *pPercent);
|
||
DMC_API short __stdcall dmc_pvt_get_remain_space(WORD CardNo,WORD iaxis);//读取pvt剩余空间
|
||
/*****************************************************************************
|
||
PVT运动 总线卡新规划
|
||
******************************************************************************/
|
||
DMC_API short __stdcall dmc_pvt_table_unit(WORD CardNo,WORD iaxis,DWORD count,double *pTime,double *pPos,double *pVel);
|
||
DMC_API short __stdcall dmc_pts_table_unit(WORD CardNo,WORD iaxis,DWORD count,double *pTime,double *pPos,double *pPercent);
|
||
DMC_API short __stdcall dmc_pvts_table_unit(WORD CardNo,WORD iaxis,DWORD count,double *pTime,double *pPos,double velBegin,double velEnd);
|
||
DMC_API short __stdcall dmc_ptt_table_unit(WORD CardNo,WORD iaxis,DWORD count,double *pTime,double *pPos);
|
||
DMC_API short __stdcall dmc_pvt_move(WORD CardNo,WORD AxisNum,WORD* AxisList);
|
||
|
||
DMC_API short __stdcall dmc_SetGearProfile(WORD CardNo,WORD axis,WORD MasterType, WORD MasterIndex,long MasterEven,long SlaveEven,DWORD MasterSlope);
|
||
DMC_API short __stdcall dmc_GetGearProfile(WORD CardNo,WORD axis,WORD* MasterType, WORD* MasterIndex,long* MasterEven,long* SlaveEven,DWORD* MasterSlope);
|
||
DMC_API short __stdcall dmc_GearMove(WORD CardNo,WORD AxisNum,WORD* AxisList);
|
||
|
||
/************************回零运动*************************/
|
||
DMC_API short __stdcall dmc_set_home_pin_logic(WORD CardNo,WORD axis,WORD org_logic,double filter);//设置HOME信号
|
||
DMC_API short __stdcall dmc_get_home_pin_logic(WORD CardNo,WORD axis,WORD *org_logic,double *filter);//读取设置HOME信号
|
||
DMC_API short __stdcall dmc_set_homemode(WORD CardNo,WORD axis,WORD home_dir,double vel,WORD mode,WORD EZ_count);//设定指定轴的回原点模式
|
||
DMC_API short __stdcall dmc_get_homemode(WORD CardNo,WORD axis,WORD *home_dir, double *vel_mode,WORD *home_mode,WORD *EZ_count);//读取指定轴的回原点模式
|
||
DMC_API short __stdcall dmc_home_move(WORD CardNo,WORD axis);//启动回零
|
||
DMC_API short __stdcall dmc_set_home_profile_unit(WORD CardNo,WORD axis,double Low_Vel,double High_Vel,double Tacc,double Tdec);//设置回零速度参数
|
||
DMC_API short __stdcall dmc_get_home_profile_unit(WORD CardNo,WORD axis,double* Low_Vel,double* High_Vel,double* Tacc,double* Tdec);//读取回零速度参数
|
||
DMC_API short __stdcall dmc_get_home_result(WORD CardNo,WORD axis,WORD* state);//读取回零执行状态
|
||
DMC_API short __stdcall dmc_set_home_position_unit(WORD CardNo,WORD axis,WORD enable,double position);
|
||
DMC_API short __stdcall dmc_get_home_position_unit(WORD CardNo,WORD axis,WORD *enable,double *position);
|
||
DMC_API short __stdcall dmc_set_el_home(WORD CardNo,WORD axis,WORD mode);
|
||
|
||
/***************************原点锁存******************************/
|
||
DMC_API short __stdcall dmc_set_homelatch_mode(WORD CardNo,WORD axis,WORD enable,WORD logic,WORD source);
|
||
DMC_API short __stdcall dmc_get_homelatch_mode(WORD CardNo,WORD axis,WORD* enable,WORD* logic,WORD* source);
|
||
DMC_API long __stdcall dmc_get_homelatch_flag(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_reset_homelatch_flag(WORD CardNo,WORD axis);
|
||
DMC_API long __stdcall dmc_get_homelatch_value(WORD CardNo,WORD axis);
|
||
/*****************************EZ锁存********************************/
|
||
DMC_API short __stdcall dmc_set_ezlatch_mode(WORD CardNo,WORD axis,WORD enable,WORD logic,WORD source);
|
||
DMC_API short __stdcall dmc_get_ezlatch_mode(WORD CardNo,WORD axis,WORD* enable,WORD* logic,WORD* source);
|
||
DMC_API long __stdcall dmc_get_ezlatch_flag(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_reset_ezlatch_flag(WORD CardNo,WORD axis);
|
||
DMC_API long __stdcall dmc_get_ezlatch_value(WORD CardNo,WORD axis);
|
||
|
||
/************************手轮运动函数*********************************/
|
||
//一对一
|
||
DMC_API short __stdcall dmc_set_handwheel_inmode(WORD CardNo,WORD axis,WORD inmode,long multi,double vh);//设置输入手轮脉冲信号的工作方式
|
||
DMC_API short __stdcall dmc_get_handwheel_inmode(WORD CardNo,WORD axis,WORD *inmode,long *multi,double *vh);//读取输入手轮脉冲信号的工作方式
|
||
//一对一浮点型倍率
|
||
DMC_API short __stdcall dmc_set_handwheel_inmode_decimals(WORD CardNo,WORD axis,WORD inmode,double multi,double vh);
|
||
DMC_API short __stdcall dmc_get_handwheel_inmode_decimals(WORD CardNo,WORD axis,WORD *inmode,double *multi,double *vh);
|
||
DMC_API short __stdcall dmc_handwheel_move(WORD CardNo,WORD axis);
|
||
//设置手轮通道
|
||
DMC_API short __stdcall dmc_set_handwheel_channel(WORD CardNo,WORD index);
|
||
DMC_API short __stdcall dmc_get_handwheel_channel(WORD CardNo,WORD* index);
|
||
//一对多
|
||
DMC_API short __stdcall dmc_set_handwheel_inmode_extern(WORD CardNo,WORD inmode,WORD AxisNum,WORD* AxisList,long* multi);
|
||
DMC_API short __stdcall dmc_get_handwheel_inmode_extern(WORD CardNo,WORD* inmode,WORD* AxisNum,WORD* AxisList,long *multi);
|
||
//一对多浮点型倍率
|
||
DMC_API short __stdcall dmc_set_handwheel_inmode_extern_decimals(WORD CardNo,WORD inmode,WORD AxisNum,WORD* AxisList,double* multi);
|
||
DMC_API short __stdcall dmc_get_handwheel_inmode_extern_decimals(WORD CardNo,WORD* inmode,WORD* AxisNum,WORD* AxisList,double *multi);
|
||
|
||
/*********************************************************************************************************
|
||
手轮运动 新增总线的手轮模式 总线
|
||
*********************************************************************************************************/
|
||
DMC_API short __stdcall dmc_handwheel_set_axislist( WORD CardNo, WORD AxisSelIndex,WORD AxisNum,WORD* AxisList);
|
||
DMC_API short __stdcall dmc_handwheel_get_axislist( WORD CardNo,WORD AxisSelIndex, WORD* AxisNum, WORD* AxisList);
|
||
DMC_API short __stdcall dmc_handwheel_set_ratiolist( WORD CardNo, WORD AxisSelIndex, WORD StartRatioIndex, WORD RatioSelNum, double* RatioList);
|
||
DMC_API short __stdcall dmc_handwheel_get_ratiolist( WORD CardNo,WORD AxisSelIndex, WORD StartRatioIndex, WORD RatioSelNum,double* RatioList );
|
||
DMC_API short __stdcall dmc_handwheel_set_mode( WORD CardNo, WORD InMode, WORD IfHardEnable );
|
||
DMC_API short __stdcall dmc_handwheel_get_mode ( WORD CardNo, WORD* InMode, WORD* IfHardEnable );
|
||
DMC_API short __stdcall dmc_handwheel_set_index( WORD CardNo, WORD AxisSelIndex,WORD RatioSelIndex );
|
||
DMC_API short __stdcall dmc_handwheel_get_index( WORD CardNo, WORD* AxisSelIndex,WORD* RatioSelIndex );
|
||
DMC_API short __stdcall dmc_handwheel_move( WORD CardNo, WORD ForceMove );
|
||
DMC_API short __stdcall dmc_handwheel_stop ( WORD CardNo );
|
||
|
||
/**************************高速锁存函数***************************/
|
||
/*************************************
|
||
LTC1 AXIS0 AXIS1 AXIS2 AXIS3
|
||
LTC2 AXIS4 AXIS5 AXIS6 AXIS7
|
||
***************************************/
|
||
DMC_API short __stdcall dmc_set_ltc_mode(WORD CardNo,WORD axis,WORD ltc_logic,WORD ltc_mode,double filter);//设置LTC信号
|
||
DMC_API short __stdcall dmc_get_ltc_mode(WORD CardNo,WORD axis,WORD*ltc_logic,WORD*ltc_mode,double *filter);//读取设置LTC信号
|
||
DMC_API short __stdcall dmc_set_latch_mode(WORD CardNo,WORD axis,WORD all_enable,WORD latch_source,WORD triger_chunnel);//设置锁存方式
|
||
DMC_API short __stdcall dmc_get_latch_mode(WORD CardNo,WORD axis,WORD *all_enable,WORD* latch_source,WORD* triger_chunnel);
|
||
DMC_API short __stdcall dmc_SetLtcOutMode(WORD CardNo,WORD axis,WORD enable,WORD bitno);//反相输出
|
||
DMC_API short __stdcall dmc_GetLtcOutMode(WORD CardNo,WORD axis,WORD *enable,WORD* bitno);
|
||
DMC_API short __stdcall dmc_get_latch_flag(WORD CardNo,WORD axis);//读取锁存器标志
|
||
DMC_API short __stdcall dmc_reset_latch_flag(WORD CardNo,WORD axis);//复位锁存器标志
|
||
DMC_API long __stdcall dmc_get_latch_value(WORD CardNo,WORD axis);//读取编码器锁存器的值
|
||
DMC_API short __stdcall dmc_get_latch_value_unit(WORD CardNo,WORD axis,double* pos_by_mm);
|
||
DMC_API short __stdcall dmc_get_latch_flag_extern(WORD CardNo,WORD axis);//读取锁存器标志
|
||
DMC_API long __stdcall dmc_get_latch_value_extern(WORD CardNo,WORD axis,WORD index);//按索引取值
|
||
DMC_API short __stdcall dmc_set_latch_stop_time(WORD CardNo,WORD axis,long time);//触发急停时间
|
||
DMC_API short __stdcall dmc_get_latch_stop_time(WORD CardNo,WORD axis,long* time);
|
||
|
||
/*********************************************************************************************************
|
||
高速锁存 新规划20170308 总线
|
||
*********************************************************************************************************/
|
||
//配置锁存器:锁存模式0-单次锁存,1-连续锁存;锁存边沿0-下降沿,1-上升沿,2-双边沿;滤波时间,单位us
|
||
DMC_API short __stdcall dmc_ltc_set_mode(WORD CardNo,WORD latch,WORD ltc_mode,WORD ltc_logic,double filter);
|
||
DMC_API short __stdcall dmc_ltc_get_mode(WORD CardNo,WORD latch,WORD *ltc_mode,WORD *ltc_logic,double *filter);
|
||
//配置锁存源:0-指令位置,1-编码器反馈位置
|
||
DMC_API short __stdcall dmc_ltc_set_source(WORD CardNo,WORD latch,WORD axis,WORD ltc_source);
|
||
DMC_API short __stdcall dmc_ltc_get_source(WORD CardNo,WORD latch,WORD axis,WORD *ltc_source);
|
||
//复位锁存器
|
||
DMC_API short __stdcall dmc_ltc_reset(WORD CardNo,WORD latch);
|
||
//读取锁存个数
|
||
DMC_API short __stdcall dmc_ltc_get_number(WORD CardNo,WORD latch,WORD axis,int *number);
|
||
//读取锁存值
|
||
DMC_API short __stdcall dmc_ltc_get_value_unit(WORD CardNo,WORD latch,WORD axis,double *value);
|
||
|
||
/*****************************位置比较函数****************************/
|
||
//单轴位置比较
|
||
DMC_API short __stdcall dmc_compare_set_config(WORD CardNo,WORD axis,WORD enable, WORD cmp_source);//配置比较器
|
||
DMC_API short __stdcall dmc_compare_get_config(WORD CardNo,WORD axis,WORD *enable, WORD *cmp_source);//读取配置比较器
|
||
DMC_API short __stdcall dmc_compare_clear_points(WORD CardNo,WORD cmp);//清除所有比较点
|
||
DMC_API short __stdcall dmc_compare_add_point(WORD CardNo,WORD cmp,long pos,WORD dir, WORD action,DWORD actpara);//添加比较点
|
||
DMC_API short __stdcall dmc_compare_get_current_point(WORD CardNo,WORD cmp,long *pos);//读取当前比较点
|
||
DMC_API short __stdcall dmc_compare_get_points_runned(WORD CardNo,WORD cmp,long *pointNum);//查询已经比较过的点
|
||
DMC_API short __stdcall dmc_compare_get_points_remained(WORD CardNo,WORD cmp,long *pointNum);//查询可以加入的比较点数量
|
||
|
||
//二维位置比较
|
||
DMC_API short __stdcall dmc_compare_set_config_extern(WORD CardNo,WORD enable, WORD cmp_source);//配置比较器
|
||
DMC_API short __stdcall dmc_compare_get_config_extern(WORD CardNo,WORD *enable, WORD *cmp_source);//读取配置比较器
|
||
DMC_API short __stdcall dmc_compare_clear_points_extern(WORD CardNo);//清除所有比较点
|
||
DMC_API short __stdcall dmc_compare_add_point_extern(WORD CardNo,WORD* axis,long* pos,WORD* dir, WORD action,DWORD actpara);//添加两轴位置比较点
|
||
DMC_API short __stdcall dmc_compare_get_current_point_extern(WORD CardNo,long *pos);//读取当前比较点
|
||
DMC_API short __stdcall dmc_compare_add_point_extern_unit(WORD CardNo,WORD* axis,double* pos,WORD* dir, WORD action,DWORD actpara);//添加两轴位置比较点
|
||
DMC_API short __stdcall dmc_compare_get_current_point_extern_unit(WORD CardNo,double *pos);//读取当前比较点
|
||
DMC_API short __stdcall dmc_compare_get_points_runned_extern(WORD CardNo,long *pointNum);//查询已经比较过的点
|
||
DMC_API short __stdcall dmc_compare_get_points_remained_extern(WORD CardNo,long *pointNum);//查询可以加入的比较点数量
|
||
|
||
//多组位置比较
|
||
DMC_API short __stdcall dmc_compare_set_config_multi(WORD CardNo,WORD queue,WORD enable, WORD axis, WORD cmp_source);//配置比较器
|
||
DMC_API short __stdcall dmc_compare_get_config_multi(WORD CardNo, WORD queue,WORD* enable, WORD* axis, WORD* cmp_source);//读取配置比较器
|
||
DMC_API short __stdcall dmc_compare_add_point_multi(WORD CardNo, WORD cmp,int32 pos, WORD dir, WORD action, DWORD actpara,double times);//添加比较点 增强
|
||
|
||
//高速位置比较
|
||
DMC_API short __stdcall dmc_hcmp_set_mode(WORD CardNo,WORD hcmp, WORD cmp_mode);//设置高速比较模式
|
||
DMC_API short __stdcall dmc_hcmp_get_mode(WORD CardNo,WORD hcmp, WORD* cmp_mode);
|
||
//高速比较模式扩展
|
||
DMC_API short __stdcall dmc_hcmp_set_config_extern(WORD CardNo,WORD hcmp,WORD axis, WORD cmp_source, WORD cmp_logic,WORD cmp_mode,long dist,long time);
|
||
DMC_API short __stdcall dmc_hcmp_get_config_extern(WORD CardNo,WORD hcmp,WORD* axis, WORD* cmp_source, WORD* cmp_logic,WORD* cmp_mode,long* dist,long* time);
|
||
|
||
DMC_API short __stdcall dmc_hcmp_set_config(WORD CardNo,WORD hcmp,WORD axis, WORD cmp_source, WORD cmp_logic,long time);//设置高速比较参数
|
||
DMC_API short __stdcall dmc_hcmp_get_config(WORD CardNo,WORD hcmp,WORD* axis, WORD* cmp_source, WORD* cmp_logic,long* time);
|
||
DMC_API short __stdcall dmc_hcmp_add_point(WORD CardNo,WORD hcmp, long cmp_pos);
|
||
DMC_API short __stdcall dmc_hcmp_set_liner(WORD CardNo,WORD hcmp, long Increment,long Count);//设置线性模式参数
|
||
DMC_API short __stdcall dmc_hcmp_get_liner(WORD CardNo,WORD hcmp, long* Increment,long* Count);
|
||
DMC_API short __stdcall dmc_hcmp_get_current_state(WORD CardNo,WORD hcmp,long *remained_points,long *current_point,long *runned_points); //读取高速比较状态
|
||
DMC_API short __stdcall dmc_hcmp_clear_points(WORD CardNo,WORD hcmp);
|
||
DMC_API short __stdcall dmc_read_cmp_pin(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_write_cmp_pin(WORD CardNo,WORD axis, WORD on_off);//控制cmp端口输出
|
||
|
||
//二维高速位置比较功能
|
||
DMC_API short __stdcall dmc_hcmp_2d_set_enable(WORD CardNo,WORD hcmp, WORD cmp_enable);
|
||
DMC_API short __stdcall dmc_hcmp_2d_get_enable(WORD CardNo,WORD hcmp, WORD *cmp_enable);
|
||
DMC_API short __stdcall dmc_hcmp_2d_set_config(WORD CardNo,WORD hcmp,WORD cmp_mode,WORD x_axis, WORD x_cmp_source, WORD y_axis, WORD y_cmp_source, long error,WORD cmp_logic,long time,WORD pwm_enable,double duty,long freq,WORD port_sel,WORD pwm_number);
|
||
DMC_API short __stdcall dmc_hcmp_2d_get_config(WORD CardNo,WORD hcmp,WORD *cmp_mode,WORD *x_axis, WORD *x_cmp_source, WORD *y_axis, WORD *y_cmp_source, long *error,WORD *cmp_logic,long *time,WORD *pwm_enable,double *duty,long *freq,WORD *port_sel,WORD *pwm_number);
|
||
DMC_API short __stdcall dmc_hcmp_2d_add_point(WORD CardNo,WORD hcmp, long x_cmp_pos, long y_cmp_pos);
|
||
DMC_API short __stdcall dmc_hcmp_2d_get_current_state(WORD CardNo,WORD hcmp,long *remained_points,long *x_current_point,long *y_current_point,long *runned_points,WORD *current_state);
|
||
DMC_API short __stdcall dmc_hcmp_2d_clear_points(WORD CardNo,WORD hcmp);
|
||
DMC_API short __stdcall dmc_hcmp_2d_force_output(WORD CardNo,WORD hcmp,WORD enable);
|
||
|
||
/********************通用IO功能**************************/
|
||
//通用IO
|
||
DMC_API short __stdcall dmc_read_inbit(WORD CardNo,WORD bitno);//读取输入口的状态
|
||
DMC_API short __stdcall dmc_write_outbit(WORD CardNo,WORD bitno,WORD on_off);//设置输出口的状态
|
||
DMC_API short __stdcall dmc_read_outbit(WORD CardNo,WORD bitno);//读取输出口的状态
|
||
DMC_API DWORD __stdcall dmc_read_inport(WORD CardNo,WORD portno);//读取输入端口的值
|
||
DMC_API DWORD __stdcall dmc_read_outport(WORD CardNo,WORD portno);//读取输出端口的值
|
||
DMC_API short __stdcall dmc_write_outport(WORD CardNo,WORD portno,DWORD outport_val);//设置所有输出端口的值
|
||
|
||
DMC_API short __stdcall dmc_write_outport_16X(WORD CardNo,WORD portno,DWORD outport_val);//设置通用输出端口的值
|
||
|
||
//虚拟IO映射
|
||
DMC_API short __stdcall dmc_set_io_map_virtual(WORD CardNo,WORD bitno,WORD MapIoType,WORD MapIoIndex,double Filter);
|
||
DMC_API short __stdcall dmc_get_io_map_virtual(WORD CardNo,WORD bitno,WORD* MapIoType,WORD* MapIoIndex,double* Filter);
|
||
DMC_API short __stdcall dmc_read_inbit_virtual(WORD CardNo,WORD bitno); //读取输入口的状态
|
||
|
||
DMC_API short __stdcall dmc_reverse_outbit(WORD CardNo,WORD bitno,double reverse_time);//IO延时翻转
|
||
DMC_API short __stdcall dmc_set_io_count_mode(WORD CardNo,WORD bitno,WORD mode,double filter);//设置IO计数模式
|
||
DMC_API short __stdcall dmc_get_io_count_mode(WORD CardNo,WORD bitno,WORD *mode,double* filter);
|
||
DMC_API short __stdcall dmc_set_io_count_value(WORD CardNo,WORD bitno,DWORD CountValue);//设置IO计数值
|
||
DMC_API short __stdcall dmc_get_io_count_value(WORD CardNo,WORD bitno,DWORD* CountValue);
|
||
|
||
/*********************专用IO信号************************/
|
||
DMC_API short __stdcall dmc_set_axis_io_map(WORD CardNo,WORD Axis,WORD IoType,WORD MapIoType,WORD MapIoIndex,double Filter);
|
||
DMC_API short __stdcall dmc_get_axis_io_map(WORD CardNo,WORD Axis,WORD IoType,WORD* MapIoType,WORD* MapIoIndex,double* Filter);
|
||
DMC_API short __stdcall dmc_set_special_input_filter(WORD CardNo,double Filter);//设置所有专用IO滤波时间
|
||
|
||
//3410专用 回原点减速信号配置
|
||
DMC_API short __stdcall dmc_set_sd_mode(WORD CardNo,WORD axis,WORD enable,WORD sd_logic,WORD sd_mode);//设置SD信号
|
||
DMC_API short __stdcall dmc_get_sd_mode(WORD CardNo,WORD axis,WORD* enable,WORD *sd_logic,WORD *sd_mode);//读取设置SD信号
|
||
//专用IO
|
||
DMC_API short __stdcall dmc_set_inp_mode(WORD CardNo,WORD axis,WORD enable,WORD inp_logic);//设置INP信号
|
||
DMC_API short __stdcall dmc_get_inp_mode(WORD CardNo,WORD axis,WORD *enable,WORD *inp_logic);//读取设置INP信号
|
||
DMC_API short __stdcall dmc_set_rdy_mode(WORD CardNo,WORD axis,WORD enable,WORD rdy_logic);//设置RDY信号
|
||
DMC_API short __stdcall dmc_get_rdy_mode(WORD CardNo,WORD axis,WORD* enable,WORD* rdy_logic);//读取设置RDY信号
|
||
DMC_API short __stdcall dmc_set_erc_mode(WORD CardNo,WORD axis,WORD enable,WORD erc_logic,WORD erc_width,WORD erc_off_time);//设置ERC信号
|
||
DMC_API short __stdcall dmc_get_erc_mode(WORD CardNo,WORD axis,WORD *enable,WORD *erc_logic, WORD *erc_width,WORD *erc_off_time);//读取设置ERC信号
|
||
DMC_API short __stdcall dmc_set_alm_mode(WORD CardNo,WORD axis,WORD enable,WORD alm_logic,WORD alm_action);//设置ALM信号
|
||
DMC_API short __stdcall dmc_get_alm_mode(WORD CardNo,WORD axis,WORD *enable,WORD *alm_logic,WORD *alm_action);//读取设置ALM信号
|
||
DMC_API short __stdcall dmc_set_ez_mode(WORD CardNo,WORD axis,WORD ez_logic,WORD ez_mode,double filter);//设置EZ信号
|
||
DMC_API short __stdcall dmc_get_ez_mode(WORD CardNo,WORD axis,WORD *ez_logic,WORD *ez_mode,double *filter);//读取设置EZ信号
|
||
|
||
DMC_API short __stdcall dmc_write_sevon_pin(WORD CardNo,WORD axis,WORD on_off);//输出SEVON信号
|
||
DMC_API short __stdcall dmc_read_sevon_pin(WORD CardNo,WORD axis);//读取SEVON信号
|
||
DMC_API short __stdcall dmc_read_rdy_pin(WORD CardNo,WORD axis);//读取RDY状态
|
||
DMC_API short __stdcall dmc_write_erc_pin(WORD CardNo,WORD axis,WORD on_off);//控制ERC信号输出
|
||
DMC_API short __stdcall dmc_read_erc_pin(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_write_sevrst_pin(WORD CardNo,WORD axis,WORD on_off);//输出伺服复位信号
|
||
DMC_API short __stdcall dmc_read_sevrst_pin(WORD CardNo,WORD axis);//读伺服复位信号
|
||
|
||
//外部减速停止信号及减速停止时间设置
|
||
DMC_API short __stdcall dmc_set_io_dstp_mode(WORD CardNo,WORD axis,WORD enable,WORD logic);//enable:0-禁用,1-按时间减速停止,2-按距离减速停止
|
||
DMC_API short __stdcall dmc_get_io_dstp_mode(WORD CardNo,WORD axis,WORD *enable,WORD *logic);
|
||
//减速停止时间
|
||
DMC_API short __stdcall dmc_set_dec_stop_time(WORD CardNo,WORD axis,double time);
|
||
DMC_API short __stdcall dmc_get_dec_stop_time(WORD CardNo,WORD axis,double *time);
|
||
//插补减速停止信号和减速时间设置
|
||
DMC_API short __stdcall dmc_set_vector_dec_stop_time(WORD CardNo,WORD Crd,double time);
|
||
DMC_API short __stdcall dmc_get_vector_dec_stop_time(WORD CardNo,WORD Crd,double *time);
|
||
//减速停止距离
|
||
DMC_API short __stdcall dmc_set_dec_stop_dist(WORD CardNo,WORD axis,long dist);
|
||
DMC_API short __stdcall dmc_get_dec_stop_dist(WORD CardNo,WORD axis,long *dist);
|
||
DMC_API short __stdcall dmc_set_io_dstp_bitno(WORD CardNo,WORD axis,WORD bitno,double filter);//设置通用输入口的一位减速停止IO口
|
||
DMC_API short __stdcall dmc_get_io_dstp_bitno(WORD CardNo,WORD axis,WORD *bitno,double* filter);
|
||
|
||
/************************编码器函数**********************/
|
||
DMC_API short __stdcall dmc_set_counter_inmode(WORD CardNo,WORD axis,WORD mode);//设定编码器的计数方式
|
||
DMC_API short __stdcall dmc_get_counter_inmode(WORD CardNo,WORD axis,WORD *mode);//读取编码器的计数方式
|
||
//编码器值(脉冲)
|
||
DMC_API long __stdcall dmc_get_encoder(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_set_encoder(WORD CardNo,WORD axis,long encoder_value);
|
||
//编码器值(当量)
|
||
DMC_API short __stdcall dmc_set_encoder_unit(WORD CardNo,WORD axis, double pos);
|
||
DMC_API short __stdcall dmc_get_encoder_unit(WORD CardNo,WORD axis, double * pos);
|
||
//手轮编码器 总线卡
|
||
DMC_API short __stdcall dmc_set_handwheel_encoder(WORD CardNo,WORD channel, long pos);
|
||
DMC_API short __stdcall dmc_get_handwheel_encoder(WORD CardNo,WORD channel, long * pos);
|
||
//设置辅助编码模式
|
||
DMC_API short __stdcall dmc_set_extra_encoder_mode(WORD CardNo,WORD channel,WORD inmode,WORD multi);
|
||
DMC_API short __stdcall dmc_get_extra_encoder_mode(WORD CardNo,WORD channel,WORD* inmode,WORD* multi);
|
||
//设置辅助编码器值
|
||
DMC_API short __stdcall dmc_set_extra_encoder(WORD CardNo,WORD channel, int pos);
|
||
DMC_API short __stdcall dmc_get_extra_encoder(WORD CardNo,WORD channel, int * pos);
|
||
|
||
/*********************位置计数控制***************************/
|
||
//当前位置(脉冲)
|
||
DMC_API short __stdcall dmc_set_position(WORD CardNo,WORD axis,long current_position);
|
||
DMC_API long __stdcall dmc_get_position(WORD CardNo,WORD axis);
|
||
//当前位置(当量)
|
||
DMC_API short __stdcall dmc_set_position_unit(WORD CardNo,WORD axis, double pos);
|
||
DMC_API short __stdcall dmc_get_position_unit(WORD CardNo,WORD axis, double * pos);
|
||
|
||
/**************************运动状态********************************/
|
||
//轴状态
|
||
DMC_API double __stdcall dmc_read_current_speed(WORD CardNo,WORD axis); //读取指定轴的当前速度(脉冲)
|
||
DMC_API short __stdcall dmc_read_current_speed_unit(WORD CardNo,WORD axis, double *current_speed);//读取当前速度(当量)
|
||
DMC_API double __stdcall dmc_read_vector_speed(WORD CardNo); //读取当前卡的插补速度
|
||
DMC_API long __stdcall dmc_get_target_position(WORD CardNo,WORD axis); //读取指定轴的目标位置
|
||
DMC_API short __stdcall dmc_get_target_position_unit(WORD CardNo,WORD axis, double * pos);//读取指定轴的目标位置(当量)
|
||
DMC_API short __stdcall dmc_check_done(WORD CardNo,WORD axis); //读取指定轴的运动状态
|
||
|
||
DMC_API DWORD __stdcall dmc_axis_io_status(WORD CardNo,WORD axis);//读取指定轴有关运动信号的状态
|
||
DMC_API short __stdcall dmc_stop(WORD CardNo,WORD axis,WORD stop_mode);//单轴停止
|
||
DMC_API short __stdcall dmc_check_done_multicoor(WORD CardNo,WORD Crd);//插补运动状态
|
||
DMC_API short __stdcall dmc_stop_multicoor(WORD CardNo,WORD Crd,WORD stop_mode);//停止插补器
|
||
DMC_API short __stdcall dmc_emg_stop(WORD CardNo);//紧急停止所有轴
|
||
DMC_API short __stdcall dmc_LinkState(WORD CardNo,WORD* State);//连接状态
|
||
DMC_API short __stdcall dmc_get_axis_run_mode(WORD CardNo, WORD axis,WORD* run_mode);//读取指定轴的运动模式
|
||
DMC_API short __stdcall dmc_get_stop_reason(WORD CardNo,WORD axis,long* StopReason);//读取停止原因
|
||
DMC_API short __stdcall dmc_clear_stop_reason(WORD CardNo,WORD axis);//清除停止原因
|
||
|
||
//trace功能
|
||
DMC_API short __stdcall dmc_set_trace(WORD CardNo,WORD axis,WORD enable);
|
||
DMC_API short __stdcall dmc_get_trace(WORD CardNo,WORD axis,WORD* enable);
|
||
DMC_API short __stdcall dmc_read_trace_data(WORD CardNo,WORD axis,WORD data_option,long* ReceiveSize,double* time,double* data,long* remain_num);
|
||
DMC_API short __stdcall dmc_trace_start(WORD CardNo,WORD AxisNum,WORD *AxisList);
|
||
DMC_API short __stdcall dmc_trace_stop(WORD CardNo);
|
||
|
||
//弧长计算
|
||
DMC_API short __stdcall dmc_calculate_arclength_center(double* start_pos,double *target_pos,double *cen_pos, WORD arc_dir,double circle,double* ArcLength);
|
||
|
||
/*********************************连续插补函数**************************************
|
||
连续插补的速度函数和单段插补相同
|
||
************************************************************************************/
|
||
DMC_API short __stdcall dmc_conti_open_list (WORD CardNo,WORD Crd,WORD AxisNum,WORD *AxisList);//打开连续缓存区
|
||
DMC_API short __stdcall dmc_conti_close_list(WORD CardNo,WORD Crd);//关闭连续缓存区
|
||
DMC_API short __stdcall dmc_conti_reset_list(WORD CardNo,WORD Crd);//复位连续缓存区
|
||
DMC_API short __stdcall dmc_conti_stop_list (WORD CardNo,WORD Crd,WORD stop_mode);//连续插补中停止
|
||
DMC_API short __stdcall dmc_conti_pause_list(WORD CardNo,WORD Crd);//连续插补中暂停
|
||
DMC_API short __stdcall dmc_conti_start_list(WORD CardNo,WORD Crd);//开始连续插补
|
||
DMC_API short __stdcall dmc_conti_get_run_state(WORD CardNo,WORD Crd);//0-运行,1-暂停,2-正常停止,3-未启动,4-空闲
|
||
DMC_API long __stdcall dmc_conti_remain_space (WORD CardNo,WORD Crd);//查连续插补剩余缓存数
|
||
DMC_API long __stdcall dmc_conti_read_current_mark (WORD CardNo,WORD Crd);//读取当前连续插补段的标号
|
||
|
||
//blend模式
|
||
DMC_API short __stdcall dmc_conti_set_blend(WORD CardNo,WORD Crd,WORD enable);
|
||
DMC_API short __stdcall dmc_conti_get_blend(WORD CardNo,WORD Crd,WORD* enable);
|
||
DMC_API short __stdcall dmc_conti_set_override(WORD CardNo,WORD Crd,double Percent);//设置插补中速度比例
|
||
DMC_API short __stdcall dmc_conti_change_speed_ratio (WORD CardNo,WORD Crd,double percent);//设置插补中动态变速
|
||
//小线段前瞻
|
||
DMC_API short __stdcall dmc_conti_set_lookahead_mode(WORD CardNo,WORD Crd,WORD enable,long LookaheadSegments,double PathError,double LookaheadAcc);
|
||
DMC_API short __stdcall dmc_conti_get_lookahead_mode(WORD CardNo,WORD Crd,WORD* enable,long* LookaheadSegments,double* PathError,double* LookaheadAcc);
|
||
|
||
//连续插补IO功能
|
||
DMC_API short __stdcall dmc_conti_wait_input(WORD CardNo,WORD Crd,WORD bitno,WORD on_off,double TimeOut,long mark);
|
||
DMC_API short __stdcall dmc_conti_delay_outbit_to_start(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double delay_value,WORD delay_mode,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_delay_outbit_to_stop(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double delay_time,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_ahead_outbit_to_stop(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double ahead_value,WORD ahead_mode,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_accurate_outbit_unit(WORD CardNo, WORD Crd, WORD cmp_no,WORD on_off,WORD axis,double abs_pos,WORD pos_source,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_write_outbit(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_clear_io_action(WORD CardNo, WORD Crd, DWORD Io_Mask);
|
||
DMC_API short __stdcall dmc_conti_set_pause_output(WORD CardNo,WORD Crd,WORD action,long mask,long state);
|
||
DMC_API short __stdcall dmc_conti_get_pause_output(WORD CardNo,WORD Crd,WORD* action,long* mask,long* state);
|
||
DMC_API short __stdcall dmc_conti_delay(WORD CardNo, WORD Crd,double delay_time,long mark);//延时指令
|
||
|
||
DMC_API short __stdcall dmc_conti_reverse_outbit(WORD CardNo, WORD Crd, WORD bitno,double reverse_time);//IO输出延时翻转
|
||
DMC_API short __stdcall dmc_conti_delay_outbit(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double delay_time);//IO延时输出
|
||
|
||
//连续插补轨迹段
|
||
DMC_API short __stdcall dmc_conti_line_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* pPosList,WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_center_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double *Cen_Pos,WORD Arc_Dir,long Circle,WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_radius_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double Arc_Radius,WORD Arc_Dir,long Circle,WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_3points_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double *Mid_Pos,long Circle,WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_rectangle_move_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Mark_Pos,long num,WORD rect_mode,WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_pmove_unit(WORD CardNo,WORD Crd,WORD axis,double dist,WORD posi_mode,WORD mode,long imark);
|
||
DMC_API short __stdcall dmc_conti_set_involute_mode(WORD CardNo,WORD Crd,WORD mode);//设置螺旋线插补运动模式
|
||
DMC_API short __stdcall dmc_conti_get_involute_mode(WORD CardNo,WORD Crd,WORD* mode);
|
||
DMC_API short __stdcall dmc_set_gear_follow_profile(WORD CardNo,WORD axis,WORD enable,WORD master_axis,double ratio);//双Z轴
|
||
DMC_API short __stdcall dmc_get_gear_follow_profile(WORD CardNo,WORD axis,WORD* enable,WORD* master_axis,double* ratio);
|
||
|
||
DMC_API short __stdcall dmc_conti_line_unit_extern(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Cen_Pos,WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_center_unit_extern(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Cen_Pos,double Arc_Radius,WORD posi_mode,long mark);
|
||
|
||
/*********************************PWM功能函数*******************************/
|
||
//PWM控制
|
||
DMC_API short __stdcall dmc_set_pwm_pin(WORD CardNo,WORD portno,WORD ON_OFF, double dfreqency,double dduty);
|
||
DMC_API short __stdcall dmc_get_pwm_pin(WORD CardNo,WORD portno,WORD *ON_OFF, double *dfreqency,double *dduty);
|
||
//PWM功能
|
||
DMC_API short __stdcall dmc_set_pwm_enable(WORD CardNo,WORD enable);
|
||
DMC_API short __stdcall dmc_get_pwm_enable(WORD CardNo,WORD* enable);
|
||
DMC_API short __stdcall dmc_set_pwm_output(WORD CardNo, WORD PwmNo,double fDuty, double fFre);
|
||
DMC_API short __stdcall dmc_get_pwm_output(WORD CardNo,WORD PwmNo,double* fDuty, double* fFre);
|
||
DMC_API short __stdcall dmc_conti_set_pwm_output(WORD CardNo,WORD Crd, WORD PwmNo,double fDuty, double fFre);
|
||
|
||
//高速PWM功能
|
||
DMC_API short __stdcall dmc_set_pwm_enable_extern(WORD CardNo,WORD channel, WORD enable);
|
||
DMC_API short __stdcall dmc_get_pwm_enable_extern(WORD CardNo,WORD channel, WORD* enable);
|
||
|
||
/**********PWM速度跟随**************
|
||
mode:跟随模式0-不跟随 保持状态 1-不跟随 输出低电平2-不跟随 输出高电平3-跟随 占空比自动调整4-跟随 频率自动调整
|
||
MaxVel:最大运行速度,单位unit
|
||
MaxValue:最大输出占空比或者频率
|
||
OutValue:设置输出频率或占空比
|
||
*************************************/
|
||
DMC_API short __stdcall dmc_conti_set_pwm_follow_speed(WORD CardNo,WORD Crd,WORD pwm_no,WORD mode,double MaxVel,double MaxValue,double OutValue);
|
||
DMC_API short __stdcall dmc_conti_get_pwm_follow_speed(WORD CardNo,WORD Crd,WORD pwm_no,WORD* mode,double* MaxVel,double* MaxValue,double* OutValue);
|
||
//设置PWM开关对应的占空比
|
||
DMC_API short __stdcall dmc_set_pwm_onoff_duty(WORD CardNo, WORD PwmNo,double fOnDuty, double fOffDuty);
|
||
DMC_API short __stdcall dmc_get_pwm_onoff_duty(WORD CardNo, WORD PwmNo,double* fOnDuty, double* fOffDuty);
|
||
DMC_API short __stdcall dmc_conti_delay_pwm_to_start(WORD CardNo, WORD Crd, WORD pwmno,WORD on_off,double delay_value,WORD delay_mode,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_delay_pwm_to_stop(WORD CardNo, WORD Crd, WORD pwmno,WORD on_off,double delay_time,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_ahead_pwm_to_stop(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double ahead_value,WORD ahead_mode,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_write_pwm(WORD CardNo, WORD Crd, WORD pwmno,WORD on_off,double ReverseTime);
|
||
|
||
/*********************ADDA输出******************************/
|
||
//PWM转DA输出
|
||
DMC_API short __stdcall dmc_set_da_enable(WORD CardNo,WORD enable);
|
||
DMC_API short __stdcall dmc_get_da_enable(WORD CardNo,WORD* enable);
|
||
DMC_API short __stdcall dmc_set_da_output(WORD CardNo, WORD channel,double Vout);
|
||
DMC_API short __stdcall dmc_get_da_output(WORD CardNo,WORD channel,double* Vout);
|
||
//读取AD输入
|
||
DMC_API short __stdcall dmc_get_ad_input(WORD CardNo,WORD channel,double* Vout);
|
||
//设置连续插补DA输出
|
||
DMC_API short __stdcall dmc_conti_set_da_output(WORD CardNo, WORD Crd, WORD channel,double Vout);
|
||
//设置连续DA使能
|
||
DMC_API short __stdcall dmc_conti_set_da_enable(WORD CardNo, WORD Crd, WORD enable,WORD channel,long mark);
|
||
/**********DA速度跟随**************
|
||
da_no:通道号
|
||
MaxVel:最大运行速度,单位unit
|
||
MaxValue:最大电压
|
||
*************************************/
|
||
DMC_API short __stdcall dmc_conti_set_da_follow_speed(WORD CardNo,WORD Crd,WORD da_no,double MaxVel,double MaxValue,double acc_offset,double dec_offset,double acc_dist,double dec_dist);
|
||
DMC_API short __stdcall dmc_conti_get_da_follow_speed(WORD CardNo,WORD Crd,WORD da_no,double* MaxVel,double* MaxValue,double* acc_offset,double* dec_offset,double* acc_dist,double* dec_dist);
|
||
|
||
/******************************CAN IO***********************************/
|
||
//baud:0-1M 1-800 2-500 3-250 4-125 5-100
|
||
DMC_API short __stdcall dmc_set_can_state(WORD CardNo,WORD NodeNum,WORD state,WORD baud);//0-断开;1-连接;2-复位后自动连接
|
||
DMC_API short __stdcall dmc_get_can_state(WORD CardNo,WORD* NodeNum,WORD* state);////0-断开;1-连接;2-异常
|
||
DMC_API short __stdcall dmc_get_can_errcode(WORD CardNo,WORD *Errcode);
|
||
DMC_API short __stdcall dmc_write_can_outbit(WORD CardNo,WORD Node,WORD bitno,WORD on_off);
|
||
DMC_API short __stdcall dmc_read_can_outbit(WORD CardNo,WORD Node,WORD bitno);
|
||
DMC_API short __stdcall dmc_read_can_inbit(WORD CardNo,WORD Node,WORD bitno);
|
||
DMC_API short __stdcall dmc_write_can_outport(WORD CardNo,WORD Node,WORD PortNo,DWORD outport_val);
|
||
DMC_API DWORD __stdcall dmc_read_can_outport(WORD CardNo,WORD Node,WORD PortNo);
|
||
DMC_API DWORD __stdcall dmc_read_can_inport(WORD CardNo,WORD Node,WORD PortNo);
|
||
//读取CAN通讯错误
|
||
DMC_API short __stdcall dmc_get_can_errcode_extern(WORD CardNo,WORD *Errcode,WORD *msg_losed, WORD *emg_msg_num, WORD *lostHeartB, WORD *EmgMsg);
|
||
|
||
DMC_API long __stdcall dmc_set_profile_limit(WORD CardNo,WORD axis,double Max_Vel,double Max_Acc,double EvenTime);
|
||
DMC_API long __stdcall dmc_get_profile_limit(WORD CardNo,WORD axis,double* Max_Vel,double* Max_Acc,double* EvenTime);
|
||
DMC_API long __stdcall dmc_set_vector_profile_limit(WORD CardNo,WORD Crd,double Max_Vel,double Max_Acc,double EvenTime);
|
||
DMC_API long __stdcall dmc_get_vector_profile_limit(WORD CardNo,WORD Crd,double* Max_Vel,double* Max_Acc,double* EvenTime);
|
||
//小圆限速使能
|
||
DMC_API short __stdcall dmc_set_arc_limit(WORD CardNo,WORD Crd,WORD Enable,double MaxCenAcc,double MaxArcError);
|
||
DMC_API short __stdcall dmc_get_arc_limit(WORD CardNo,WORD Crd,WORD* Enable,double* MaxCenAcc,double* MaxArcError);
|
||
|
||
//DMC_API short __stdcall dmc_get_axis_debug_state(WORD CardNo,WORD axis,struct_DebugPara* pack);
|
||
|
||
//软锁存功能
|
||
//配置锁存器:锁存模式0-单次锁存,1-连续锁存;锁存边沿0-下降沿,1-上升沿,2-双边沿;滤波时间,单位us
|
||
DMC_API short __stdcall dmc_softltc_set_mode(WORD CardNo,WORD latch,WORD ltc_enable,WORD ltc_mode,WORD ltc_inbit,WORD ltc_logic,double filter);
|
||
DMC_API short __stdcall dmc_softltc_get_mode(WORD CardNo,WORD latch,WORD *ltc_enable,WORD *ltc_mode,WORD *ltc_inbit,WORD *ltc_logic,double *filter);
|
||
//配置锁存源:0-指令位置,1-编码器反馈位置
|
||
DMC_API short __stdcall dmc_softltc_set_source(WORD CardNo,WORD latch,WORD axis,WORD ltc_source);
|
||
DMC_API short __stdcall dmc_softltc_get_source(WORD CardNo,WORD latch,WORD axis,WORD *ltc_source);
|
||
//复位锁存器
|
||
DMC_API short __stdcall dmc_softltc_reset(WORD CardNo,WORD latch);
|
||
//读取锁存个数
|
||
DMC_API short __stdcall dmc_softltc_get_number(WORD CardNo,WORD latch,WORD axis,int *number);
|
||
//读取锁存值
|
||
DMC_API short __stdcall dmc_softltc_get_value_unit(WORD CardNo,WORD latch,WORD axis,double *value);
|
||
|
||
DMC_API short __stdcall dmc_set_IoFilter(WORD CardNo,WORD bitno, double filter);
|
||
DMC_API short __stdcall dmc_get_IoFilter(WORD CardNo,WORD bitno, double *filter);
|
||
|
||
//螺距补偿
|
||
DMC_API short __stdcall dmc_set_lsc_index_value (WORD CardNo, WORD axis,WORD IndexID, long IndexValue);
|
||
DMC_API short __stdcall dmc_get_lsc_index_value(WORD CardNo, WORD axis,WORD IndexID, long *IndexValue);
|
||
|
||
DMC_API short __stdcall dmc_set_lsc_config(WORD CardNo, WORD axis,WORD Origin, DWORD Interal,DWORD NegIndex,DWORD PosIndex,double Ratio);
|
||
DMC_API short __stdcall dmc_get_lsc_config(WORD CardNo, WORD axis,WORD *Origin, DWORD *Interal,DWORD *NegIndex,DWORD *PosIndex,double *Ratio);
|
||
|
||
//看门狗
|
||
DMC_API short __stdcall dmc_set_watchdog(WORD CardNo,WORD enable,DWORD time);
|
||
DMC_API short __stdcall dmc_call_watchdog(WORD CardNo);
|
||
|
||
DMC_API short __stdcall dmc_read_diagnoseData(WORD CardNo);
|
||
DMC_API short __stdcall dmc_conti_set_cmd_end(WORD CardNo,WORD Crd,WORD enable);
|
||
|
||
//区域软限位
|
||
DMC_API short __stdcall dmc_set_zone_limit_config(WORD CardNo, WORD *axis, WORD *Source, long x_pos_p, long x_pos_n, long y_pos_p, long y_pos_n, WORD action_para);
|
||
DMC_API short __stdcall dmc_get_zone_limit_config(WORD CardNo, WORD* axis, WORD* Source, long* x_pos_p, long* x_pos_n, long* y_pos_p, long* y_pos_n, WORD* action_para);
|
||
DMC_API short __stdcall dmc_set_zone_limit_enable(WORD CardNo, WORD enable);
|
||
|
||
//轴互锁功能
|
||
DMC_API short __stdcall dmc_set_interlock_config(WORD CardNo, WORD* axis, WORD* Source, long delta_pos, WORD action_para);
|
||
DMC_API short __stdcall dmc_get_interlock_config(WORD CardNo, WORD* axis, WORD* Source, long* delta_pos, WORD* action_para);
|
||
DMC_API short __stdcall dmc_set_interlock_enable(WORD CardNo, WORD enable);
|
||
|
||
//龙门模式的误差保护
|
||
DMC_API short __stdcall dmc_set_grant_error_protect(WORD CardNo, WORD axis,WORD enable,DWORD dstp_error, DWORD emg_error);
|
||
DMC_API short __stdcall dmc_get_grant_error_protect(WORD CardNo, WORD axis,WORD* enable,DWORD* dstp_error, DWORD* emg_error);
|
||
|
||
DMC_API short __stdcall dmc_set_safety_param(WORD CardNo,WORD axis,WORD enable,long safety_pos);
|
||
DMC_API short __stdcall dmc_get_safety_param(WORD CardNo,WORD axis,WORD* enable,long* safety_pos);
|
||
DMC_API short __stdcall dmc_get_diagnose_param(WORD CardNo,WORD axis,long* tartet_pos,int* mode,long* pulse_pos,long* endcoder_pos);
|
||
|
||
//物件分拣功能
|
||
DMC_API short __stdcall dmc_set_camerablow_config(WORD CardNo,WORD camerablow_en,long cameraPos,WORD piece_num,long piece_distance,WORD axis_sel,long latch_distance_min);
|
||
DMC_API short __stdcall dmc_get_camerablow_config(WORD CardNo,WORD* camerablow_en,long* cameraPos,WORD* piece_num,long* piece_distance,WORD* axis_sel,long* latch_distance_min);
|
||
DMC_API short __stdcall dmc_clear_camerablow_errorcode(WORD CardNo);
|
||
DMC_API short __stdcall dmc_get_camerablow_errorcode(WORD CardNo,WORD* errorcode);
|
||
|
||
//配置通用输入(0~15)做为轴的限位信号
|
||
DMC_API short __stdcall dmc_set_io_limit_config(WORD CardNo,WORD portno,WORD enable,WORD axis_sel,WORD el_mode,WORD el_logic);
|
||
DMC_API short __stdcall dmc_get_io_limit_config(WORD CardNo,WORD portno,WORD* enable,WORD* axis_sel,WORD* el_mode,WORD* el_logic);
|
||
|
||
//手轮滤波参数
|
||
DMC_API short __stdcall dmc_set_handwheel_filter(WORD CardNo,WORD axis,double filter_factor);
|
||
DMC_API short __stdcall dmc_get_handwheel_filter(WORD CardNo,WORD axis,double* filter_factor);
|
||
|
||
//读取坐标系各轴的当前规划坐标
|
||
DMC_API short __stdcall dmc_conti_get_interp_map(WORD CardNo,WORD Crd,WORD* AxisNum ,WORD* AxisList,double *pPosList);
|
||
//坐标系错误代码
|
||
DMC_API short __stdcall dmc_conti_get_crd_errcode(WORD CardNo,WORD Crd,WORD* errcode);
|
||
|
||
|
||
DMC_API short __stdcall dmc_line_unit_follow(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Dist,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_conti_line_unit_follow(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* pPosList,WORD posi_mode,long mark);
|
||
|
||
//连续插补缓冲区DA操作
|
||
DMC_API short __stdcall dmc_conti_set_da_action(WORD CardNo,WORD Crd,WORD mode,WORD portno,double dvalue);
|
||
|
||
//读编码器速度
|
||
DMC_API short __stdcall dmc_read_encoder_speed(WORD CardNo,WORD Axis,double *current_speed);
|
||
|
||
DMC_API short __stdcall dmc_axis_follow_line_enable(WORD CardNo,WORD Crd,WORD enable_flag);
|
||
|
||
//插补轴脉冲补偿
|
||
DMC_API short __stdcall dmc_set_interp_compensation(WORD CardNo,WORD axis, double dvalue,double time);
|
||
DMC_API short __stdcall dmc_get_interp_compensation(WORD CardNo,WORD axis, double *dvalue,double *time);
|
||
|
||
//IO精确停止
|
||
DMC_API short __stdcall dmc_set_io_exactstop(WORD CardNo,WORD axis, WORD ioNum,WORD *ioList,WORD enable,WORD valid_logic,WORD action,WORD move_dir);
|
||
|
||
//读取相对于起点的距离
|
||
DMC_API short __stdcall dmc_get_distance_to_start(WORD CardNo,WORD Crd, double* distance_x, double* distance_y,long imark);
|
||
//设置标志位 表示是否开始计算相对起点
|
||
DMC_API short __stdcall dmc_set_start_distance_flag(WORD CardNo,WORD Crd,WORD flag);
|
||
|
||
/******************设置回零限位距离**********************
|
||
参 数:
|
||
CardNo:卡号
|
||
Axis:轴号
|
||
N_limit:负限位脉冲数
|
||
P_limit:正限位脉冲数
|
||
返回值:错误代码
|
||
*******************************************************************/
|
||
DMC_API short __stdcall dmc_set_home_soft_limit(WORD CardNo,WORD Axis,int N_limit,int P_limit);
|
||
DMC_API short __stdcall dmc_get_home_soft_limit(WORD CardNo,WORD Axis,int* N_limit,int* P_limit);
|
||
|
||
/*********************
|
||
指令说明:实现刀向跟随功能,启动某个轴跟随运动,调用此指令时,跟随轴axis会跟随着此指令后面缓冲区的插补指令合轨迹运动,直到设置的脉冲需求完毕。
|
||
指令类型:插补缓冲区指令
|
||
输入参数:CardNo 坐标系号
|
||
axis 跟随轴
|
||
dist 跟随距离(脉冲当量单位)
|
||
follow_mode //运动模式:0-暂停后启动,1-运动中启动
|
||
imark 段号
|
||
输出参数:无
|
||
*******************************/
|
||
DMC_API short __stdcall dmc_conti_gear_unit(WORD CardNo,WORD Crd,WORD axis,double dist, WORD follow_mode,long imark);
|
||
|
||
//轨迹拟合使能设置
|
||
DMC_API short __stdcall dmc_set_path_fitting_enable(WORD CardNo,WORD Crd,WORD enable);
|
||
//螺距补偿功能(新)
|
||
DMC_API short __stdcall dmc_enable_leadscrew_comp(WORD CardNo, WORD axis,WORD enable);
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_config(WORD CardNo, WORD axis,WORD n, int startpos,int lenpos,int *pCompPos,int *pCompNeg);
|
||
//指定轴做定长位移运动 按固定曲线运动
|
||
DMC_API short __stdcall dmc_t_pmove_extern(WORD CardNo, WORD axis, double MidPos,double TargetPos, double Min_Vel,double Max_Vel, double stop_Vel, double acc,double dec,WORD posi_mode);
|
||
|
||
/*
|
||
功能:设置脉冲计数值和编码器反馈值之间差值的报警阀值
|
||
输入参数:CardNo 卡号
|
||
axis 轴号
|
||
error 差值报警报警阀值
|
||
输出参数:无
|
||
*/
|
||
DMC_API short __stdcall dmc_set_pulse_encoder_count_error(WORD CardNo,WORD axis,WORD error);
|
||
DMC_API short __stdcall dmc_get_pulse_encoder_count_error(WORD CardNo,WORD axis,WORD *error);
|
||
/*
|
||
功能:检查脉冲计数值和编码器反馈值之间差值是否超过报警阀值
|
||
输入参数:CardNo 卡号
|
||
axis 轴号
|
||
输出参数;无
|
||
返回参数:0:差值小于报警阀值
|
||
1:差值大于等于报警阀值
|
||
*/
|
||
DMC_API short __stdcall dmc_check_pulse_encoder_count_error(WORD CardNo,WORD axis,int* pulse_position, int* enc_position);
|
||
/*
|
||
强行变位扩展
|
||
mid_pos: 中间位置
|
||
aim_pos:目标位置
|
||
posi_mode: 保留参数,默认为绝对值
|
||
*/
|
||
DMC_API short __stdcall dmc_update_target_position_extern(WORD CardNo, WORD axis, double mid_pos, double aim_pos, double vel,WORD posi_mode);
|
||
|
||
//新物件分拣功能
|
||
//固定
|
||
DMC_API short __stdcall dmc_sorting_close(WORD CardNo);
|
||
DMC_API short __stdcall dmc_sorting_start(WORD CardNo);
|
||
DMC_API short __stdcall dmc_sorting_set_init_config(WORD CardNo ,WORD cameraCount, int *pCameraPos, WORD *pCamIONo, DWORD cameraTime, WORD cameraTrigLevel, WORD blowCount, int*pBlowPos, WORD*pBlowIONo, DWORD blowTime, WORD blowTrigLevel, WORD axis, WORD dir, WORD checkMode);
|
||
DMC_API short __stdcall dmc_sorting_set_camera_trig_count(WORD CardNo ,WORD cameraNum, DWORD cameraTrigCnt);
|
||
DMC_API short __stdcall dmc_sorting_get_camera_trig_count(WORD CardNo ,WORD cameraNum, DWORD* pCameraTrigCnt, WORD count);
|
||
DMC_API short __stdcall dmc_sorting_set_blow_trig_count(WORD CardNo ,WORD blowNum, DWORD blowTrigCnt);
|
||
DMC_API short __stdcall dmc_sorting_get_blow_trig_count(WORD CardNo ,WORD blowNum, DWORD* pBlowTrigCnt, WORD count);
|
||
DMC_API short __stdcall dmc_sorting_get_camera_config(WORD CardNo ,WORD index,int* pos,DWORD* trigTime, WORD* ioNo, WORD* trigLevel);
|
||
DMC_API short __stdcall dmc_sorting_get_blow_config(WORD CardNo ,WORD index, int* pos,DWORD* trigTime, WORD* ioNo, WORD* trigLevel);
|
||
DMC_API short __stdcall dmc_sorting_get_blow_status(WORD CardNo ,DWORD* trigCntAll, WORD* trigMore,WORD* trigLess);
|
||
DMC_API short __stdcall dmc_sorting_trig_blow(WORD CardNo ,WORD blowNum);
|
||
DMC_API short __stdcall dmc_sorting_set_blow_enable(WORD CardNo ,WORD blowNum,WORD enable);
|
||
DMC_API short __stdcall dmc_sorting_set_piece_config(WORD CardNo ,DWORD maxWidth,DWORD minWidth,DWORD minDistance, DWORD minTimeIntervel);
|
||
DMC_API short __stdcall dmc_sorting_get_piece_status(WORD CardNo ,DWORD* pieceFind,DWORD* piecePassCam, DWORD* dist2next, DWORD*pieceWidth);
|
||
DMC_API short __stdcall dmc_sorting_set_cam_trig_phase(WORD CardNo,WORD blowNo,double coef);
|
||
DMC_API short __stdcall dmc_sorting_set_blow_trig_phase(WORD CardNo,WORD blowNo,double coef);
|
||
|
||
DMC_API short __stdcall dmc_set_sevon_enable(WORD CardNo,WORD axis,WORD on_off);
|
||
DMC_API short __stdcall dmc_get_sevon_enable(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_compare_add_point_cycle(WORD CardNo,WORD cmp,long pos,WORD dir, DWORD bitno,DWORD cycle,WORD level);//添加比较点
|
||
|
||
//使能和设置跟踪编码器误差不在范围内时轴的停止模式
|
||
DMC_API short __stdcall dmc_set_encoder_count_error_action_config(WORD CardNo,WORD enable,WORD stopmode);
|
||
DMC_API short __stdcall dmc_get_encoder_count_error_action_config(WORD CardNo,WORD* enable,WORD* stopmode);
|
||
|
||
DMC_API short __stdcall dmc_set_home_el_return(WORD CardNo,WORD axis,WORD enable);
|
||
|
||
//连续编码器da跟随
|
||
DMC_API short __stdcall dmc_conti_set_encoder_da_follow_enable(WORD CardNo, WORD Crd,WORD axis,WORD enable);
|
||
DMC_API short __stdcall dmc_conti_get_encoder_da_follow_enable(WORD CardNo, WORD Crd,WORD* axis,WORD* enable);
|
||
|
||
DMC_API short __stdcall dmc_check_done_pos(WORD CardNo,WORD axis,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_set_factor_error(WORD CardNo,WORD axis,double factor,long error);
|
||
DMC_API short __stdcall dmc_set_factor(WORD CardNo,WORD axis,double factor);
|
||
DMC_API short __stdcall dmc_set_error(WORD CardNo,WORD axis,long error);
|
||
DMC_API short __stdcall dmc_get_factor_error(WORD CardNo,WORD axis,double* factor,long* error);
|
||
DMC_API short __stdcall dmc_check_success_pulse(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_check_success_encoder(WORD CardNo,WORD axis);
|
||
|
||
//IO及编码器计数功能
|
||
DMC_API short __stdcall dmc_set_io_count_profile(WORD CardNo, WORD chan, WORD bitno,WORD mode,double filter, double count_value, WORD* axis_list, WORD axis_num, WORD stop_mode );
|
||
DMC_API short __stdcall dmc_get_io_count_profile(WORD CardNo, WORD chan, WORD* bitno,WORD* mode,double* filter, double* count_value, WORD* axis_list, WORD* axis_num, WORD* stop_mode );
|
||
DMC_API short __stdcall dmc_set_io_count_enable(WORD CardNo, WORD chan, WORD ifenable);
|
||
DMC_API short __stdcall dmc_clear_io_count(WORD CardNo, WORD chan);
|
||
DMC_API short __stdcall dmc_get_io_count_value_extern(WORD CardNo, WORD chan, long* current_value);
|
||
|
||
//螺距补偿前的脉冲位置,编码器位置//20191025
|
||
DMC_API short __stdcall dmc_get_position_ex(WORD CardNo,WORD axis, double * pos);
|
||
DMC_API short __stdcall dmc_get_encoder_ex(WORD CardNo,WORD axis, double * pos);
|
||
//螺距补偿前的脉冲位置,编码器位置 当量
|
||
DMC_API short __stdcall dmc_get_position_ex_unit(WORD CardNo,WORD axis, double * pos);
|
||
DMC_API short __stdcall dmc_get_encoder_ex_unit(WORD CardNo,WORD axis, double * pos);
|
||
|
||
//回零偏移模式函数
|
||
DMC_API short __stdcall dmc_set_home_shift_param(WORD CardNo, WORD axis, WORD pos_clear_mode, double ShiftValue);
|
||
DMC_API short __stdcall dmc_get_home_shift_param(WORD CardNo, WORD axis, WORD *pos_clear_mode, double* ShiftValue);
|
||
|
||
DMC_API short __stdcall dmc_change_speed_extend(WORD CardNo,WORD axis,double Curr_Vel, double Taccdec, WORD pin_num, WORD trig_mode);
|
||
|
||
DMC_API short __stdcall dmc_follow_vector_speed_move(WORD CardNo,WORD axis,WORD Follow_AxisNum,WORD* Follow_AxisList,double ratio);
|
||
DMC_API short __stdcall dmc_conti_line_unit_extend(WORD CardNo, WORD Crd, WORD AxisNum, WORD* AxisList, double* pPosList, WORD posi_mode, double Extend_Len, WORD enable,long mark); //连续插补直线
|
||
DMC_API short __stdcall dmc_hcmp_2d_set_config_unit(WORD CardNo,WORD hcmp,WORD cmp_mode,WORD x_axis, WORD x_cmp_source, double x_cmp_error, WORD y_axis, WORD y_cmp_source, double y_cmp_error,WORD cmp_logic,int time);
|
||
DMC_API short __stdcall dmc_hcmp_2d_get_config_unit(WORD CardNo,WORD hcmp,WORD *cmp_mode,WORD *x_axis, WORD *x_cmp_source,double *x_cmp_error, WORD *y_axis, WORD *y_cmp_source, double *y_cmp_error, WORD *cmp_logic,int *time);
|
||
|
||
DMC_API short __stdcall dmc_hcmp_2d_set_pwmoutput(WORD CardNo,WORD hcmp,WORD pwm_enable,double duty,double freq,WORD pwm_number);
|
||
DMC_API short __stdcall dmc_hcmp_2d_get_pwmoutput(WORD CardNo,WORD hcmp,WORD *pwm_enable,double *duty,double *freq,WORD *pwm_number);
|
||
DMC_API short __stdcall dmc_hcmp_2d_add_point_unit(WORD ConnectNo,WORD hcmp, double x_cmp_pos, double y_cmp_pos,WORD cmp_outbit);
|
||
DMC_API short __stdcall dmc_hcmp_2d_get_current_state_unit(WORD CardNo,WORD hcmp,int *remained_points,double *x_current_point,double *y_current_point,int *runned_points,WORD *current_state,WORD *current_outbit);
|
||
|
||
DMC_API short __stdcall dmc_set_home_position(WORD CardNo,WORD axis,WORD enable,double position);
|
||
DMC_API short __stdcall dmc_get_home_position(WORD CardNo,WORD axis,WORD *enable,double *position);
|
||
DMC_API short __stdcall dmc_conti_line_io_union(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* pPosList,WORD posi_mode,WORD bitno,WORD on_off,double io_value,WORD io_mode,WORD MapAxis,WORD pos_source,double ReverseTime,long mark);
|
||
//设置编码器方向
|
||
DMC_API short __stdcall dmc_set_encoder_dir(WORD CardNo, WORD axis,WORD dir);
|
||
|
||
//圆弧区域软限位
|
||
DMC_API short __stdcall dmc_set_arc_zone_limit_config(WORD CardNo, WORD* AxisList, WORD AxisNum, double *Center, double Radius, WORD Source,WORD StopMode);
|
||
DMC_API short __stdcall dmc_get_arc_zone_limit_config(WORD CardNo, WORD* AxisList, WORD* AxisNum, double *Center, double* Radius, WORD* Source,WORD* StopMode);
|
||
DMC_API short __stdcall dmc_get_arc_zone_limit_axis_status(WORD CardNo, WORD axis);
|
||
DMC_API short __stdcall dmc_set_arc_zone_limit_enable(WORD CardNo, WORD enable);
|
||
DMC_API short __stdcall dmc_get_arc_zone_limit_enable(WORD CardNo, WORD* enable);
|
||
|
||
//1、 启用缓存方式添加比较位置:
|
||
DMC_API short __stdcall dmc_hcmp_fifo_set_mode(WORD CardNo,WORD hcmp, WORD fifo_mode);
|
||
DMC_API short __stdcall dmc_hcmp_fifo_get_mode(WORD CardNo,WORD hcmp, WORD* fifo_mode);
|
||
//2、 读取剩余缓存状态,上位机通过此函数判断是否继续添加比较位置
|
||
DMC_API short __stdcall dmc_hcmp_fifo_get_state(WORD CardNo,WORD hcmp,long *remained_points);
|
||
//3、 按数组的方式批量添加比较位置
|
||
DMC_API short __stdcall dmc_hcmp_fifo_add_point_unit(WORD CardNo,WORD hcmp, WORD num,double *cmp_pos);
|
||
//4、 清除比较位置,也会把FPGA的位置同步清除掉
|
||
DMC_API short __stdcall dmc_hcmp_fifo_clear_points(WORD CardNo,WORD hcmp);
|
||
//添加大数据,会堵塞一段时间,指导数据添加完成
|
||
DMC_API short __stdcall dmc_hcmp_fifo_add_table(WORD CardNo,WORD hcmp, WORD num,double *cmp_pos);
|
||
|
||
//二维高速位置比较缓存
|
||
//1、 启用缓存方式添加比较位置:
|
||
DMC_API short __stdcall dmc_hcmp_2d_fifo_set_mode(WORD CardNo,WORD hcmp, WORD fifo_mode);
|
||
DMC_API short __stdcall dmc_hcmp_2d_fifo_get_mode(WORD CardNo,WORD hcmp, WORD* fifo_mode);
|
||
//2、 读取剩余缓存状态,上位机通过此函数判断是否继续添加比较位置
|
||
DMC_API short __stdcall dmc_hcmp_2d_fifo_get_state(WORD CardNo,WORD hcmp,long *remained_points);
|
||
//3、 按数组的方式批量添加比较位置
|
||
DMC_API short __stdcall dmc_hcmp_2d_fifo_add_point_unit(WORD CardNo,WORD hcmp, WORD num,double *x_cmp_pos,double *y_cmp_pos,WORD *cmp_outbit);
|
||
//4、 清除比较位置,也会把FPGA的位置同步清除掉
|
||
DMC_API short __stdcall dmc_hcmp_2d_fifo_clear_points(WORD CardNo,WORD hcmp);
|
||
//添加大数据,会堵塞一段时间,指导数据添加完成
|
||
DMC_API short __stdcall dmc_hcmp_2d_fifo_add_table(WORD CardNo,WORD hcmp, WORD num,double *x_cmp_pos,double *y_cmp_pos);
|
||
//添加大数据,会堵塞一段时间,指导数据添加完成,带输出口
|
||
DMC_API short __stdcall dmc_hcmp_2d_fifo_add_table_unit(WORD CardNo,WORD hcmp, WORD num,double *x_cmp_pos,double *y_cmp_pos,WORD *cmp_outbit);
|
||
|
||
//控制卡接线盒断线后是否初始化输出电平
|
||
DMC_API short __stdcall dmc_set_output_status_repower(WORD CardNo, WORD enable);
|
||
|
||
DMC_API short __stdcall dmc_t_pmove_extern_softlanding(WORD CardNo, WORD axis, double MidPos, double TargetPos, double start_Vel, double Max_Vel, double stop_Vel, DWORD delay_ms, double Max_Vel2,double stop_vel2, double acc_time, double dec_time, WORD posi_mode);
|
||
DMC_API short __stdcall dmc_compare_add_point_XD(WORD CardNo,WORD cmp,long pos,WORD dir, WORD action,DWORD actpara, long startPos);//硒电定制比较函数
|
||
|
||
DMC_API short __stdcall dmc_pmove_change_pos_speed_config(WORD CardNo,WORD axis,double tar_vel, double tar_rel_pos, WORD trig_mode, WORD source);
|
||
DMC_API short __stdcall dmc_get_pmove_change_pos_speed_config(WORD CardNo,WORD axis,double* tar_vel, double* tar_rel_pos, WORD* trig_mode, WORD* source);
|
||
DMC_API short __stdcall dmc_pmove_change_pos_speed_enable(WORD CardNo,WORD axis, WORD enable);
|
||
DMC_API short __stdcall dmc_get_pmove_change_pos_speed_enable(WORD CardNo,WORD axis, WORD* enable);
|
||
DMC_API short __stdcall dmc_compare_add_point_extend(WORD CardNo,WORD axis, long pos, WORD dir, WORD action, WORD para_num, DWORD* actpara,DWORD compare_time);
|
||
DMC_API short __stdcall dmc_get_cmd_position(WORD CardNo,WORD axis, double * pos);
|
||
//逻辑采样配置
|
||
DMC_API short __stdcall dmc_set_logic_analyzer_config(WORD CardNo,WORD channel, DWORD SampleFre, DWORD SampleDepth, WORD SampleMode);
|
||
DMC_API short __stdcall dmc_start_logic_analyzer(WORD CardNo,WORD channel, WORD enable);
|
||
DMC_API short __stdcall dmc_get_logic_analyzer_counter(WORD CardNo, WORD channel, DWORD *counter);
|
||
//凯格定制 20190923修改凯歌定制函数接口
|
||
DMC_API short __stdcall dmc_read_inbit_append(WORD CardNo,WORD bitno);//读取输入口的状态
|
||
DMC_API short __stdcall dmc_write_outbit_append(WORD CardNo,WORD bitno,WORD on_off);//设置输出口的状态
|
||
DMC_API short __stdcall dmc_read_outbit_append(WORD CardNo,WORD bitno);//读取输出口的状态
|
||
DMC_API DWORD __stdcall dmc_read_inport_append(WORD CardNo,WORD portno);//读取输入端口的值
|
||
DMC_API DWORD __stdcall dmc_read_outport_append(WORD CardNo,WORD portno);//读取输出端口的值
|
||
DMC_API short __stdcall dmc_write_outport_append(WORD CardNo,WORD portno,DWORD port_value);//设置所有输出端口的值
|
||
//门运动
|
||
DMC_API short __stdcall dmc_m_move_unit(WORD CardNo,WORD Crd, WORD axis_num, WORD* axis_list,double* mid_pos, double* target_pos, double* saftpos, WORD pos_mode);
|
||
DMC_API short __stdcall dmc_get_m_move_config(WORD CardNo,WORD Crd, WORD *axis_num, WORD* axis_list,double* mid_pos, double* target_pos, double* saftpos,WORD* pos_mode);
|
||
// 设置坐标系切向跟随
|
||
DMC_API short __stdcall dmc_set_tangent_follow(WORD CardNo, WORD Crd, WORD axis, WORD follow_curve, WORD rotate_dir, double degree_equivalent);
|
||
// 获取指定坐标系切向跟随参数
|
||
DMC_API short __stdcall dmc_get_tangent_follow_param(WORD CardNo, WORD Crd, WORD* axis, WORD* follow_curve, WORD* rotate_dir, double* degree_equivalent);
|
||
// 取消坐标系跟随
|
||
DMC_API short __stdcall dmc_disable_follow_move(WORD CardNo, WORD Crd);
|
||
// 椭圆插补
|
||
DMC_API short __stdcall dmc_ellipse_move(WORD CardNo, WORD Crd,WORD axisNum, WORD* Axis_List, double* Target_Pos, double* Cen_Pos, double A_Axis_Len, double B_Axis_Len, WORD Dir, WORD Pos_Mode);
|
||
DMC_API short __stdcall dmc_read_vector_speed_unit(WORD CardNo,WORD Crd,double *current_speed); //读取当前卡的插补速度
|
||
//读取参数遇限位反找使能
|
||
DMC_API short __stdcall dmc_get_home_el_return(WORD CardNo,WORD axis,WORD *enable);
|
||
|
||
//新看门狗功能
|
||
DMC_API short __stdcall dmc_set_watchdog_action_event(WORD CardNo, WORD event_mask);
|
||
DMC_API short __stdcall dmc_get_watchdog_action_event(WORD CardNo, WORD* event_mask);
|
||
DMC_API short __stdcall dmc_set_watchdog_enable (WORD CardNo, double timer_period, WORD enable);
|
||
DMC_API short __stdcall dmc_get_watchdog_enable (WORD CardNo, double * timer_period, WORD* enable);
|
||
DMC_API short __stdcall dmc_reset_watchdog_timer (WORD CardNo);
|
||
//io定制功能
|
||
DMC_API short __stdcall dmc_set_io_check_control(WORD CardNo, WORD sensor_in_no, WORD check_mode, WORD A_out_no, WORD B_out_no, WORD C_out_no, WORD output_mode);
|
||
DMC_API short __stdcall dmc_get_io_check_control(WORD CardNo, WORD* sensor_in_no, WORD* check_mode, WORD* A_out_no, WORD* B_out_no, WORD* C_out_no, WORD* output_mode);
|
||
DMC_API short __stdcall dmc_stop_io_check_control(WORD CardNo);
|
||
|
||
//设置限位反找偏移距离
|
||
DMC_API short __stdcall dmc_set_el_ret_deviation(WORD CardNo, WORD axis, WORD enable,double deviation);
|
||
DMC_API short __stdcall dmc_get_el_ret_deviation(WORD CardNo, WORD axis, WORD* enable, double* deviation);
|
||
|
||
/*****************************总线相关函数**********************************/
|
||
//回零运动
|
||
DMC_API short __stdcall nmc_set_home_profile(WORD CardNo ,WORD axis,WORD home_mode,double Low_Vel, double High_Vel,double Tacc,double Tdec ,double offsetpos);//设置回零参数,合并函数
|
||
DMC_API short __stdcall nmc_get_home_profile(WORD CardNo ,WORD axis,WORD* home_mode,double* Low_Vel, double* High_Vel,double* Tacc,double* Tdec ,double* offsetpos);
|
||
DMC_API short __stdcall nmc_home_move(WORD CardNo,WORD axis);
|
||
|
||
//-------------------------总线配置-----------------------
|
||
/*******************************************************
|
||
portnum表示端口号,定义如下
|
||
0: 表示canopen的0号端口
|
||
1: 表示canopen的1号端口
|
||
10:表示EtherCAT的0号端口
|
||
11:表示EtherCAT的1号端口
|
||
********************************************************/
|
||
DMC_API short __stdcall nmc_set_manager_para(WORD CardNo,WORD PortNum,DWORD Baudrate,WORD ManagerID);
|
||
DMC_API short __stdcall nmc_get_manager_para(WORD CardNo,WORD PortNum,DWORD *Baudrate,WORD *ManagerID);
|
||
DMC_API short __stdcall nmc_set_manager_od(WORD CardNo,WORD PortNum, WORD Index,WORD SubIndex,WORD ValLength,DWORD Value);
|
||
DMC_API short __stdcall nmc_get_manager_od(WORD CardNo,WORD PortNum, WORD Index,WORD SubIndex,WORD ValLength,DWORD *Value);
|
||
|
||
DMC_API short __stdcall nmc_set_node_od(WORD CardNo,WORD PortNum,WORD NodeNum, WORD Index,WORD SubIndex,WORD ValLength,long Value);
|
||
DMC_API short __stdcall nmc_get_node_od(WORD CardNo,WORD PortNum,WORD NodeNum, WORD Index,WORD SubIndex,WORD ValLength,long* Value);
|
||
|
||
DMC_API short __stdcall nmc_set_node_od_pbyte(WORD CardNo,WORD PortNum,WORD NodeNum, WORD Index,WORD SubIndex,WORD Bytes,unsigned char* Value);
|
||
DMC_API short __stdcall nmc_get_node_od_pbyte(WORD CardNo,WORD PortNum,WORD NodeNum, WORD Index,WORD SubIndex,WORD Bytes,unsigned char* Value);
|
||
|
||
DMC_API short __stdcall nmc_upload_configfile(WORD CardNo,WORD PortNum, const char *FileName);
|
||
DMC_API short __stdcall nmc_reset_to_factory(WORD CardNo,WORD PortNum,WORD NodeNum);
|
||
DMC_API short __stdcall nmc_write_to_pci(WORD CardNo,WORD PortNum,WORD NodeNum);
|
||
DMC_API short __stdcall nmc_download_configfile(WORD CardNo,WORD PortNum,const char *FileName);//总线ENI配置文件
|
||
DMC_API short __stdcall nmc_download_mapfile(WORD CardNo,const char *FileName);//总线映射文件
|
||
|
||
//添加单轴使能函数 255表示全使能
|
||
DMC_API short __stdcall nmc_set_axis_enable(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall nmc_set_axis_disable(WORD CardNo,WORD axis);
|
||
|
||
//清除报警信号
|
||
DMC_API short __stdcall nmc_set_alarm_clear(WORD CardNo,WORD PortNum,WORD NodeNum);
|
||
|
||
DMC_API short __stdcall nmc_get_slave_nodes(WORD CardNo,WORD PortNum,WORD BaudRate,WORD* NodeId,WORD* NodeNum);
|
||
//获取总线轴数
|
||
DMC_API short __stdcall nmc_get_total_axes(WORD CardNo,DWORD* TotalAxis);
|
||
//获取总线ADDA输入输出口数
|
||
DMC_API short __stdcall nmc_get_total_adcnum(WORD CardNo,WORD* TotalIn,WORD* TotalOut);
|
||
//获取总线IO口数
|
||
DMC_API short __stdcall nmc_get_total_ionum(WORD CardNo,WORD *TotalIn,WORD *TotalOut);
|
||
//清除端口报警
|
||
DMC_API short __stdcall nmc_clear_alarm_fieldbus(WORD CardNo,WORD PortNum);
|
||
//获取控制器工作模式 1表示ethercat模式,0表示仿真模式
|
||
DMC_API short __stdcall nmc_get_controller_workmode(WORD CardNo,WORD* controller_mode);
|
||
//设置控制器工作模式 1表示ethercat模式,0表示仿真模式
|
||
DMC_API short __stdcall nmc_set_controller_workmode(WORD CardNo,WORD controller_mode);
|
||
//设置ethercat总线循环周期(us)
|
||
DMC_API short __stdcall nmc_set_cycletime(WORD CardNo,WORD PortNum,DWORD CycleTime);
|
||
//获取ethercat总线循环周期(us)
|
||
DMC_API short __stdcall nmc_get_cycletime(WORD CardNo,WORD PortNum,DWORD* CycleTime);
|
||
|
||
//读取总线线程时间消耗参数
|
||
DMC_API short __stdcall dmc_get_perline_time(WORD CardNo,WORD TypeIndex,DWORD *Averagetime,DWORD *Maxtime,uint64 *Cycles ); //TypeIndex:0~6 m_Averagetime ; 平均时间 m_Maxtime;最大时间 uint64 m_Cycles;当前时间
|
||
DMC_API short __stdcall nmc_set_axis_run_mode(WORD CardNo,WORD axis,WORD run_mode);//设置轴的运行模式 1为pp模式,6为回零模式,8为csp模式
|
||
|
||
|
||
//获取轴类型
|
||
/*
|
||
enum fieldbus_type
|
||
{
|
||
virtual_type=0,
|
||
ect_type=1,
|
||
can_type=2,
|
||
pulse_type=3, // or local IO
|
||
unknown=4
|
||
};*/
|
||
DMC_API short __stdcall nmc_get_axis_type(WORD CardNo,WORD axis, WORD* Axis_Type);
|
||
//获取总线时间量,平均时间,最大时间,执行周期数
|
||
DMC_API short __stdcall nmc_get_consume_time_fieldbus(WORD CardNo,WORD PortNum,DWORD* Average_time, DWORD* Max_time,uint64* Cycles);
|
||
//清除时间量
|
||
DMC_API short __stdcall nmc_clear_consume_time_fieldbus(WORD CardNo,WORD PortNum);
|
||
//停止ethercat总线,返回0表示成功,其他参数表示不成功
|
||
DMC_API short __stdcall nmc_stop_etc(WORD CardNo,WORD* ETCState);
|
||
|
||
//---------------------------总线轴模式---------------
|
||
//获取轴状态字
|
||
DMC_API short __stdcall nmc_get_axis_statusword(WORD CardNo,WORD axis,long* statusword);
|
||
//获取总线轴控制字
|
||
DMC_API short __stdcall nmc_set_axis_contrlword(WORD CardNo,WORD Axis,long Contrlword);
|
||
//设置总线轴控制字
|
||
DMC_API short __stdcall nmc_get_axis_contrlword(WORD CardNo,WORD Axis,long *Contrlword);
|
||
DMC_API short __stdcall nmc_set_axis_contrlmode(WORD CardNo,WORD Axis,long Contrlmode);
|
||
DMC_API short __stdcall nmc_get_axis_contrlmode(WORD CardNo,WORD Axis,long *Contrlmode);
|
||
|
||
// 获取总线端口错误码
|
||
DMC_API short __stdcall nmc_get_errcode(WORD CardNo,WORD channel,WORD *Errcode);
|
||
// 获取控制卡错误码
|
||
DMC_API short __stdcall nmc_get_card_errcode(WORD CardNo,WORD *Errcode);
|
||
// 获取总线轴错误码
|
||
DMC_API short __stdcall nmc_get_axis_errcode(WORD CardNo,WORD axis,WORD *Errcode);
|
||
// 清除总线端口错误码
|
||
DMC_API short __stdcall nmc_clear_errcode(WORD CardNo,WORD channel);
|
||
// 清除控制卡错误码
|
||
DMC_API short __stdcall nmc_clear_card_errcode(WORD CardNo);
|
||
// 清除总线轴错误码
|
||
DMC_API short __stdcall nmc_clear_axis_errcode(WORD CardNo,WORD iaxis);
|
||
|
||
DMC_API short __stdcall nmc_get_LostHeartbeat_Nodes(WORD CardNo,WORD PortNum,WORD* NodeID,WORD* NodeNum);
|
||
DMC_API short __stdcall nmc_get_EmergeneyMessege_Nodes(WORD CardNo,WORD PortNum,DWORD* NodeMsg,WORD* MsgNum);
|
||
DMC_API short __stdcall nmc_SendNmtCommand(WORD CardNo,WORD PortNum,WORD NodeID,WORD NmtCommand);
|
||
DMC_API short __stdcall nmc_syn_move(WORD CardNo,WORD AxisNum,WORD* AxisList,long* Position,WORD* PosiMode);
|
||
DMC_API short __stdcall nmc_syn_move_unit(WORD CardNo,WORD AxisNum,WORD* AxisList,double* Position,WORD* PosiMode);
|
||
//总线多轴同步运动
|
||
DMC_API short __stdcall nmc_sync_pmove_unit(WORD CardNo,WORD AxisNum,WORD* AxisList,double* Dist,WORD* PosiMode);
|
||
DMC_API short __stdcall nmc_sync_vmove_unit(WORD CardNo,WORD AxisNum,WORD* AxisList,WORD* Dir);
|
||
|
||
//设置主站参数
|
||
DMC_API short __stdcall nmc_set_master_para(WORD CardNo,WORD PortNum,WORD Baudrate,DWORD NodeCnt,WORD MasterId);
|
||
//读取主站参数
|
||
DMC_API short __stdcall nmc_get_master_para(WORD CardNo,WORD PortNum,WORD *Baudrate,DWORD *NodeCnt,WORD *MasterId);
|
||
//设置io输出
|
||
DMC_API short __stdcall nmc_write_outbit(WORD CardNo,WORD NoteID,WORD IoBit,WORD IoValue);
|
||
//读取io输出
|
||
DMC_API short __stdcall nmc_read_outbit(WORD CardNo,WORD NoteID,WORD IoBit,WORD *IoValue);
|
||
//读取io输入
|
||
DMC_API short __stdcall nmc_read_inbit(WORD CardNo,WORD NoteID,WORD IoBit,WORD *IoValue);
|
||
//设置DA参数
|
||
DMC_API short __stdcall nmc_set_da_output(WORD CardNo,WORD NoteID,WORD channel,double Value);
|
||
//读取DA参数
|
||
DMC_API short __stdcall nmc_get_da_output(WORD CardNo,WORD NoteID,WORD channel,double *Value);
|
||
//读取AD参数
|
||
DMC_API short __stdcall nmc_get_ad_input(WORD CardNo,WORD NoteID,WORD channel,double *Value);
|
||
//配置AD模式
|
||
DMC_API short __stdcall nmc_set_ad_mode(WORD CardNo,WORD NoteID,WORD channel,WORD mode,DWORD buffer_nums);
|
||
DMC_API short __stdcall nmc_get_ad_mode(WORD CardNo,WORD NoteID,WORD channel,WORD* mode,DWORD buffer_nums);
|
||
//配置DA模式
|
||
DMC_API short __stdcall nmc_set_da_mode(WORD CardNo,WORD NoteID,WORD channel,WORD mode,DWORD buffer_nums);
|
||
DMC_API short __stdcall nmc_get_da_mode(WORD CardNo,WORD NoteID,WORD channel,WORD* mode,DWORD buffer_nums);
|
||
|
||
//参数写入flash
|
||
DMC_API short __stdcall nmc_write_to_flash(WORD CardNo,WORD PortNum,WORD NodeNum);
|
||
|
||
//总线链接
|
||
DMC_API short __stdcall nmc_set_connect_state(WORD CardNo,WORD NodeNum,WORD state,WORD baud);//0-断开;1-连接;2-复位后自动连接
|
||
DMC_API short __stdcall nmc_get_connect_state(WORD CardNo,WORD* NodeNum,WORD* state);//0-断开;1-连接;2-异常
|
||
|
||
//设置io输出32位
|
||
DMC_API short __stdcall nmc_write_outport(WORD CardNo,WORD NoteID,WORD portno,DWORD outport_val);
|
||
//读取io输出32位
|
||
DMC_API short __stdcall nmc_read_outport(WORD CardNo,WORD NoteID,WORD portno,DWORD *outport_val);
|
||
//读取io输入32位
|
||
DMC_API short __stdcall nmc_read_inport(WORD CardNo,WORD NoteID,WORD portno,DWORD *inport_val);
|
||
|
||
//轴状态机
|
||
DMC_API short __stdcall nmc_get_axis_state_machine(WORD CardNo,WORD axis, WORD* Axis_StateMachine);
|
||
//获取轴配置控制模式,返回值(6回零模式,8csp模式)
|
||
DMC_API short __stdcall nmc_get_axis_setting_contrlmode(WORD CardNo,WORD axis,long* contrlmode);
|
||
// 获取从站个数
|
||
DMC_API short __stdcall nmc_get_total_slaves(WORD CardNo,WORD PortNum,WORD* TotalSlaves);
|
||
// 获取轴的从站信息
|
||
DMC_API short __stdcall nmc_get_axis_node_address(WORD CardNo,WORD axis, WORD* SlaveAddr,WORD* Sub_SlaveAddr);
|
||
DMC_API short __stdcall nmc_set_axis_io_out(WORD CardNo,WORD axis,DWORD iostate);
|
||
DMC_API DWORD __stdcall nmc_get_axis_io_out(WORD CardNo,WORD axis);
|
||
DMC_API DWORD __stdcall nmc_get_axis_io_in(WORD CardNo,WORD axis);
|
||
|
||
|
||
/************************************************************
|
||
*
|
||
*RTEX卡添加函数
|
||
*
|
||
*
|
||
************************************************************/
|
||
DMC_API short __stdcall nmc_start_connect(WORD CardNo,WORD chan,WORD*info,WORD* len);
|
||
//DMC_API short __stdcall nmc_get_node_info(WORD CardNo,WORD*info,WORD* len);
|
||
DMC_API short __stdcall nmc_get_vendor_info(WORD CardNo,WORD axis,char* info,WORD* len);
|
||
DMC_API short __stdcall nmc_get_slave_type_info(WORD CardNo,WORD axis,char* info,WORD* len);
|
||
DMC_API short __stdcall nmc_get_slave_name_info(WORD CardNo,WORD axis,char* info,WORD* len);
|
||
DMC_API short __stdcall nmc_get_slave_version_info(WORD CardNo,WORD axis,char* info,WORD* len);
|
||
|
||
DMC_API short __stdcall nmc_write_parameter(WORD CardNo,WORD axis,WORD index, WORD subindex,DWORD para_data);
|
||
/**************************************************************
|
||
*功能说明:RTEX驱动器写EEPROM操作
|
||
*
|
||
*
|
||
**************************************************************/
|
||
DMC_API short __stdcall nmc_write_slave_eeprom(WORD CardNo,WORD axis);
|
||
/**************************************************************
|
||
*index:rtex驱动器的参数分类
|
||
*subindex:rtex驱动器在index类别下的参数编号
|
||
*para_data:读出的参数值
|
||
**************************************************************/
|
||
DMC_API short __stdcall nmc_read_parameter(WORD CardNo,WORD axis,WORD index, WORD subindex,DWORD* para_data);
|
||
/**************************************************************
|
||
*index:rtex驱动器的参数分类
|
||
*subindex:rtex驱动器在index类别下的参数编号
|
||
*para_data:读出的参数值
|
||
**************************************************************/
|
||
DMC_API short __stdcall nmc_read_parameter_attributes(WORD CardNo,WORD axis,WORD index, WORD subindex,DWORD* para_data);
|
||
DMC_API short __stdcall nmc_set_cmdcycletime(WORD CardNo,WORD PortNum,DWORD cmdtime);
|
||
//设置RTEX总线周期比(us)
|
||
DMC_API short __stdcall nmc_get_cmdcycletime(WORD CardNo,WORD PortNum,DWORD* cmdtime);
|
||
DMC_API short __stdcall nmc_start_log(WORD CardNo,WORD chan,WORD node, WORD Ifenable);
|
||
DMC_API short __stdcall nmc_get_log(WORD CardNo,WORD chan,WORD node, DWORD* data);
|
||
DMC_API short __stdcall nmc_config_atuo_log(WORD CardNo,WORD ifenable,WORD dir,WORD byte_index,WORD mask,WORD condition,DWORD counter);
|
||
|
||
//扩展PDO
|
||
DMC_API short __stdcall nmc_write_rxpdo_extra(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,int Value);
|
||
DMC_API short __stdcall nmc_read_rxpdo_extra(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,int* Value);
|
||
DMC_API short __stdcall nmc_read_txpdo_extra(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,int* Value);
|
||
DMC_API short __stdcall nmc_write_rxpdo_extra_uint(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,DWORD Value);
|
||
DMC_API short __stdcall nmc_read_rxpdo_extra_uint(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,DWORD* Value);
|
||
DMC_API short __stdcall nmc_read_txpdo_extra_uint(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,DWORD* Value);
|
||
DMC_API short __stdcall nmc_get_log_state(WORD CardNo,WORD chan, DWORD* state);
|
||
DMC_API short __stdcall nmc_driver_reset(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall nmc_set_offset_pos(WORD CardNo,WORD axis, double offset_pos);
|
||
DMC_API short __stdcall nmc_get_offset_pos(WORD CardNo,WORD axis, double* offset_pos);
|
||
//清除rtex绝对值编码器的多圈值
|
||
DMC_API short __stdcall nmc_clear_abs_driver_multi_cycle(WORD CardNo,WORD axis);
|
||
//设置io输出32位总线扩展
|
||
DMC_API short __stdcall nmc_write_outport_extern(WORD CardNo,WORD Channel,WORD NoteID,WORD portno,DWORD outport_val);
|
||
//读取io输出32位总线扩展
|
||
DMC_API short __stdcall nmc_read_outport_extern(WORD CardNo,WORD Channel,WORD NoteID,WORD portno,DWORD *outport_val);
|
||
//读取io输入32位总线扩展
|
||
DMC_API short __stdcall nmc_read_inport_extern(WORD CardNo,WORD Channel,WORD NoteID,WORD portno,DWORD *inport_val);
|
||
//设置io输出
|
||
DMC_API short __stdcall nmc_write_outbit_extern(WORD CardNo,WORD Channel,WORD NoteID,WORD IoBit,WORD IoValue);
|
||
//读取io输出
|
||
DMC_API short __stdcall nmc_read_outbit_extern(WORD CardNo,WORD Channel,WORD NoteID,WORD IoBit,WORD *IoValue);
|
||
//读取io输入
|
||
DMC_API short __stdcall nmc_read_inbit_extern(WORD CardNo,WORD Channel,WORD NoteID,WORD IoBit,WORD *IoValue);
|
||
//返回最近错误码
|
||
DMC_API short __stdcall nmc_get_current_fieldbus_state_info(WORD CardNo,WORD Channel,WORD *Axis,WORD *ErrorType,WORD *SlaveAddr,DWORD *ErrorFieldbusCode);
|
||
// 返回历史错误码
|
||
DMC_API short __stdcall nmc_get_detail_fieldbus_state_info(WORD CardNo,WORD Channel,DWORD ReadErrorNum,DWORD *TotalNum, DWORD *ActualNum, WORD *Axis,WORD *ErrorType,WORD *SlaveAddr,DWORD *ErrorFieldbusCode);
|
||
|
||
//启动采集
|
||
DMC_API short __stdcall nmc_start_pdo_trace(WORD CardNo,WORD Channel,WORD SlaveAddr,WORD Index_Num,DWORD Trace_Len,WORD *Index,WORD *Sub_Index);
|
||
//获取采集参数
|
||
DMC_API short __stdcall nmc_get_pdo_trace(WORD CardNo,WORD Channel,WORD SlaveAddr,WORD *Index_Num,DWORD *Trace_Len,WORD *Index,WORD *Sub_Index);
|
||
//设置触发采集参数
|
||
DMC_API short __stdcall nmc_set_pdo_trace_trig_para(WORD CardNo,WORD Channel,WORD SlaveAddr,WORD Trig_Index,WORD Trig_Sub_Index,int Trig_Value,WORD Trig_Mode);
|
||
//获取触发采集参数
|
||
DMC_API short __stdcall nmc_get_pdo_trace_trig_para(WORD CardNo,WORD Channel,WORD SlaveAddr,WORD *Trig_Index,WORD *Trig_Sub_Index,int *Trig_Value,WORD *Trig_Mode);
|
||
//采集清除
|
||
DMC_API short __stdcall nmc_clear_pdo_trace_data(WORD CardNo,WORD Channel,WORD SlaveAddr);
|
||
//采集停止
|
||
DMC_API short __stdcall nmc_stop_pdo_trace(WORD CardNo,WORD Channel,WORD SlaveAddr);
|
||
//采集数据读取
|
||
DMC_API short __stdcall nmc_read_pdo_trace_data(WORD CardNo,WORD Channel,WORD SlaveAddr,DWORD StartAddr,DWORD Readlen,DWORD *ActReadlen,BYTE *Data);
|
||
//已采集个数
|
||
DMC_API short __stdcall nmc_get_pdo_trace_num(WORD CardNo,WORD Channel,WORD SlaveAddr,DWORD *Data_num, DWORD *Size_of_each_bag);
|
||
//采集状态
|
||
DMC_API short __stdcall nmc_get_pdo_trace_state(WORD CardNo,WORD Channel,WORD SlaveAddr,WORD *Trace_state);
|
||
//总线专用
|
||
DMC_API short __stdcall nmc_reset_canopen(WORD CardNo);
|
||
DMC_API short __stdcall nmc_reset_rtex(WORD CardNo);
|
||
DMC_API short __stdcall nmc_reset_etc(WORD CardNo);
|
||
//总线错误处理配置
|
||
DMC_API short __stdcall nmc_set_fieldbus_error_switch(WORD CardNo, WORD channel,WORD data);
|
||
DMC_API short __stdcall nmc_get_fieldbus_error_switch(WORD CardNo, WORD channel,WORD* data);
|
||
|
||
DMC_API short __stdcall nmc_torque_move(WORD CardNo,WORD axis,int Torque,WORD PosLimitValid,double PosLimitValue,WORD PosMode);
|
||
DMC_API short __stdcall nmc_change_torque(WORD CardNo,WORD axis,int Torque);
|
||
//读取转矩大小
|
||
DMC_API short __stdcall nmc_get_torque(WORD CardNo,WORD axis,int* Torque);
|
||
//modbus函数
|
||
DMC_API short __stdcall dmc_modbus_active_COM1(WORD id,const char* COMID,int speed, int bits, int check, int stop);
|
||
DMC_API short __stdcall dmc_modbus_active_COM2(WORD id,const char* COMID,int speed, int bits, int check, int stop);
|
||
DMC_API short __stdcall dmc_modbus_active_ETH(WORD id, WORD port);
|
||
|
||
DMC_API short __stdcall dmc_set_modbus_0x(WORD CardNo, WORD start, WORD inum, const char* pdata);
|
||
DMC_API short __stdcall dmc_get_modbus_0x(WORD CardNo, WORD start, WORD inum, char* pdata);
|
||
DMC_API short __stdcall dmc_set_modbus_4x(WORD CardNo, WORD start, WORD inum, const WORD* pdata);
|
||
DMC_API short __stdcall dmc_get_modbus_4x(WORD CardNo, WORD start, WORD inum, WORD* pdata);
|
||
|
||
DMC_API short __stdcall dmc_set_modbus_4x_float(WORD CardNo, WORD start, WORD inum, const float* pdata);
|
||
DMC_API short __stdcall dmc_get_modbus_4x_float(WORD CardNo, WORD start, WORD inum, float* pdata);
|
||
DMC_API short __stdcall dmc_set_modbus_4x_int(WORD CardNo, WORD start, WORD inum, const int* pdata);
|
||
DMC_API short __stdcall dmc_get_modbus_4x_int(WORD CardNo, WORD start, WORD inum, int* pdata);
|
||
|
||
DMC_API short __stdcall dmc_set_grant_error_protect_unit(WORD CardNo, WORD axis,WORD enable,double dstp_error, double emg_error);
|
||
DMC_API short __stdcall dmc_get_grant_error_protect_unit(WORD CardNo, WORD axis,WORD* enable,double* dstp_error, double* emg_error);
|
||
//螺距补偿相关
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_config(WORD CardNo, WORD axis,WORD *n, int *startpos,int *lenpos,int *pCompPos,int *pCompNeg);
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_config_unit(WORD CardNo, WORD axis,WORD n, double startpos,double lenpos,double *pCompPos,double *pCompNeg);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_config_unit(WORD CardNo, WORD axis,WORD *n, double *startpos,double *lenpos,double *pCompPos,double *pCompNeg);
|
||
//EZ锁存 原点锁存,软锁存相关
|
||
DMC_API short __stdcall dmc_get_homelatch_value_unit(WORD CardNo,WORD axis, double* pos);
|
||
DMC_API short __stdcall dmc_get_ezlatch_value_unit(WORD CardNo,WORD axis, double* pos);
|
||
//高速锁存
|
||
DMC_API short __stdcall dmc_get_latch_value_extern_unit(WORD CardNo,WORD axis,WORD index,double* pos_by_mm);//按索引取值读取 未完成
|
||
//一维比较
|
||
DMC_API short __stdcall dmc_compare_add_point_unit(WORD CardNo,WORD cmp,double pos,WORD dir, WORD action,DWORD actpara);//添加比较点
|
||
DMC_API short __stdcall dmc_compare_get_current_point_unit(WORD CardNo,WORD cmp,double *pos);//读取当前比较点
|
||
//多组位置比较
|
||
DMC_API short __stdcall dmc_compare_add_point_multi_unit(WORD CardNo, WORD cmp,double pos, WORD dir, WORD action, DWORD actpara,double times);//添加比较点 增强
|
||
//高速位置比较
|
||
DMC_API short __stdcall dmc_hcmp_add_point_unit(WORD CardNo,WORD hcmp, double cmp_pos);
|
||
DMC_API short __stdcall dmc_hcmp_set_liner_unit(WORD CardNo,WORD hcmp, double Increment,long Count);//设置线性模式参数
|
||
DMC_API short __stdcall dmc_hcmp_get_liner_unit(WORD CardNo,WORD hcmp, double* Increment,long* Count);
|
||
DMC_API short __stdcall dmc_hcmp_get_current_state_unit(WORD CardNo,WORD hcmp,long *remained_points,double *current_point,long *runned_points); //读取高速比较状态
|
||
DMC_API short __stdcall dmc_set_softlimit_unit(WORD CardNo,WORD axis,WORD enable, WORD source_sel,WORD SL_action, double N_limit,double P_limit);//设置软限位参数
|
||
DMC_API short __stdcall dmc_get_softlimit_unit(WORD CardNo,WORD axis,WORD *enable, WORD *source_sel,WORD *SL_action,double *N_limit,double *P_limit);//读取软限位参数
|
||
|
||
//两轴位置叠加,高速比较功能
|
||
DMC_API short __stdcall dmc_hcmp_set_config_overlap(WORD CardNo, WORD hcmp, WORD axis, WORD cmp_source, WORD cmp_logic, long time, WORD axis_num, WORD aux_axis, WORD aux_source);
|
||
DMC_API short __stdcall dmc_hcmp_get_config_overlap(WORD CardNo, WORD hcmp, WORD* axis, WORD* cmp_source, WORD* cmp_logic, long* time, WORD* axis_num, WORD* aux_axis, WORD* aux_source);
|
||
|
||
//新版门运动
|
||
DMC_API short __stdcall dmc_m_move_set_coodinate(WORD card,WORD liner, WORD axis_num, WORD* axis_list,uint32 in_io_num, WORD trig_flag, WORD pos_mode);
|
||
DMC_API short __stdcall dmc_m_move_get_coodinate_para(WORD card,WORD liner, WORD* axis_num, WORD* axis_list,uint32* in_io_num, WORD* trig_flag, WORD* pos_mode);
|
||
DMC_API short __stdcall dmc_m_move_set_z_para(WORD card,WORD liner, double z_up_safe_pos, double z_up_target_pos,double z_down_safe_pos, double z_down_target_pos);
|
||
DMC_API short __stdcall dmc_m_move_get_z_para(WORD card,WORD liner, double* z_up_safe_pos, double* z_up_target_pos,double* z_down_safe_pos, double* z_down_target_pos);
|
||
DMC_API short __stdcall dmc_m_move_set_xy_para(WORD card,WORD liner, double x_first_safe_pos,double x_second_safe_pos, double x_target_pos, WORD y_num ,double* y_target_pos);
|
||
DMC_API short __stdcall dmc_m_move_get_xy_para(WORD card,WORD liner, double* x_first_safe_pos,double* x_second_safe_pos, double* x_target_pos, WORD y_num ,double* y_target_pos);
|
||
DMC_API short __stdcall dmc_m_move_axes(WORD card,WORD liner);
|
||
DMC_API short __stdcall dmc_m_move_get_run_phase(WORD card,WORD liner, WORD* run_phase);
|
||
DMC_API short __stdcall dmc_m_move_stop(WORD card,WORD liner, WORD stop_mode);
|
||
DMC_API short __stdcall dmc_t_pmove_extern_unit(WORD CardNo, WORD axis, double MidPos,double TargetPos, double Min_Vel,double Max_Vel, double stop_Vel, double acc,double dec,WORD posi_mode);
|
||
|
||
DMC_API short __stdcall dmc_rtcp_set_kinematic_type(WORD CardNo,WORD Crd, WORD machine_type);
|
||
DMC_API short __stdcall dmc_rtcp_get_kinematic_type(WORD CardNo,WORD Crd, WORD* machine_type);
|
||
//启动或者关闭RTCP功能
|
||
DMC_API short __stdcall dmc_rtcp_set_enable(WORD CardNo,WORD Crd, WORD enable);
|
||
DMC_API short __stdcall dmc_rtcp_get_enable(WORD CardNo,WORD Crd, WORD* enable);
|
||
//位置输入数据类型:0-工件坐标系位置,1-机械坐标系位置
|
||
DMC_API short __stdcall dmc_rtcp_set_position_type(WORD CardNo,WORD Crd, WORD position_type);
|
||
DMC_API short __stdcall dmc_rtcp_get_position_type(WORD CardNo,WORD Crd, WORD* position_type);
|
||
//设置A轴的坐标原点相对于前一个坐标系的偏移, xyz的偏移a_offset[3]
|
||
DMC_API short __stdcall dmc_rtcp_set_vector_a(WORD CardNo,WORD Crd, double* a_offset);
|
||
DMC_API short __stdcall dmc_rtcp_get_vector_a(WORD CardNo,WORD Crd, double* a_offset);
|
||
//设置B轴的坐标原点相对于前一个坐标系的偏移, xyz的偏移b_offset[3]
|
||
DMC_API short __stdcall dmc_rtcp_set_vector_b(WORD CardNo,WORD Crd, double* b_offset);
|
||
DMC_API short __stdcall dmc_rtcp_get_vector_b(WORD CardNo,WORD Crd, double* b_offset);
|
||
//设置C轴的坐标原点相对于前一个坐标系的偏移, xyz的偏移c_offset[3]
|
||
DMC_API short __stdcall dmc_rtcp_set_vector_c(WORD CardNo,WORD Crd, double* c_offset);
|
||
DMC_API short __stdcall dmc_rtcp_get_vector_c(WORD CardNo,WORD Crd, double* c_offset);
|
||
//设置A,B,C轴的偏移位置,
|
||
//A,B,C在回0后,再移动到初始姿态的位置,这个时候的A/B/C的偏移角度,
|
||
//如果到了初始姿态的位置不进行清0,这个时候就要设置偏移角度
|
||
DMC_API short __stdcall dmc_rtcp_set_rotate_joint_offset(WORD CardNo,WORD Crd, double A, double B, double C);
|
||
DMC_API short __stdcall dmc_rtcp_get_rotate_joint_offset(WORD CardNo,WORD Crd, double* A, double* B, double* C);
|
||
//设置各轴的方向与工件坐标系的关系
|
||
//轴相对于工件的方向,如果轴正向运动的时候,驱动刀具相对于工件也是正向运动的,设定为1
|
||
//否则设为-1,初始设置为1
|
||
//dir[5],对应的是X,Y,Z,旋转轴1,旋转轴2
|
||
DMC_API short __stdcall dmc_rtcp_set_joints_direction(WORD CardNo,WORD Crd, int* dir);
|
||
DMC_API short __stdcall dmc_rtcp_get_joints_direction(WORD CardNo,WORD Crd, int* dir);
|
||
//设置刀具长度,在双摆头中有作用
|
||
DMC_API short __stdcall dmc_rtcp_set_tool_length(WORD CardNo,WORD Crd, double tool);
|
||
DMC_API short __stdcall dmc_rtcp_get_tool_length(WORD CardNo,WORD Crd, double* tool);
|
||
|
||
DMC_API short __stdcall dmc_rtcp_get_actual_pos(WORD CardNo,WORD Crd, WORD AxisNum,WORD *AxisList,double* actual_pos);
|
||
DMC_API short __stdcall dmc_rtcp_get_command_pos(WORD CardNo,WORD Crd, WORD AxisNum,WORD *AxisList,double* command_pos);
|
||
|
||
DMC_API short __stdcall dmc_rtcp_kinematics_forward(WORD CardNo,WORD Crd, double* joint_pos, double* axis_pos);
|
||
DMC_API short __stdcall dmc_rtcp_kinematics_inverse(WORD CardNo,WORD Crd, double* axis_pos, double* joint_pos);
|
||
//设置纯旋转轴的速度
|
||
DMC_API short __stdcall dmc_rtcp_set_max_rotate_param(WORD CardNo,WORD Crd, double rotate_speed, double rotate_acc);
|
||
DMC_API short __stdcall dmc_rtcp_get_max_rotate_param(WORD CardNo,WORD Crd, double* rotate_speed, double* rotate_acc);
|
||
//设置工件原点偏置值
|
||
DMC_API short __stdcall dmc_rtcp_set_workpiece_offset(WORD CardNo,WORD Crd, WORD workpiece_index, double* offset);
|
||
DMC_API short __stdcall dmc_rtcp_get_workpiece_offset(WORD CardNo,WORD Crd, WORD workpiece_index, double* offset);
|
||
//设置工件原点偏置方式
|
||
DMC_API short __stdcall dmc_rtcp_set_workpiece_mode(WORD CardNo,WORD Crd, WORD enable,WORD workpiece_index);
|
||
DMC_API short __stdcall dmc_rtcp_get_workpiece_mode(WORD CardNo,WORD Crd, WORD* enable,WORD* workpiece_index);
|
||
|
||
//螺旋插补
|
||
DMC_API short __stdcall dmc_conti_helix_move_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD * AixsList,double * StartPos,double * TargetPos,WORD Arc_Dir,int Circle,WORD mode,int mark);
|
||
DMC_API short __stdcall dmc_helix_move_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double * StartPos,double *TargetPos,WORD Arc_Dir,int Circle,WORD mode);
|
||
|
||
DMC_API short __stdcall dmc_compare_add_point_cycle_unit(WORD CardNo,WORD cmp,double pos,WORD dir, DWORD bitno,DWORD cycle,WORD level);//添加比较点
|
||
//PDO缓存20190715
|
||
DMC_API short __stdcall dmc_pdo_buffer_enter(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_pdo_buffer_stop(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_pdo_buffer_clear(WORD CardNo,WORD axis);
|
||
|
||
DMC_API short __stdcall dmc_pdo_buffer_run_state(WORD CardNo,WORD axis,int * RunState,int * Remain,int * NotRunned,int* Runned);
|
||
DMC_API short __stdcall dmc_pdo_buffer_add_data(WORD CardNo,WORD axis, int size, int* data_table);
|
||
|
||
DMC_API short __stdcall dmc_pdo_buffer_start_multi(WORD CardNo,WORD AxisNum,WORD* AxisList,WORD* ResultList);
|
||
DMC_API short __stdcall dmc_pdo_buffer_pause_multi(WORD CardNo,WORD AxisNum,WORD* AxisList,WORD* ResultList);
|
||
DMC_API short __stdcall dmc_pdo_buffer_stop_multi(WORD CardNo,WORD AxisNum,WORD* AxisList,WORD* ResultList);
|
||
DMC_API short __stdcall dmc_pdo_buffer_add_data_multi(WORD CardNo, WORD AxisNum,WORD* AxisList, int size, int** data_table);
|
||
DMC_API short __stdcall dmc_calculate_arccenter_3point(double *start_pos,double *mid_pos, double *target_pos,double* cen_pos);
|
||
|
||
DMC_API short __stdcall dmc_cmd_buf_open(WORD card,WORD group, WORD axis_num, WORD* axis_list);
|
||
DMC_API short __stdcall dmc_cmd_buf_close(WORD card,WORD group);
|
||
DMC_API short __stdcall dmc_cmd_buf_start(WORD card,WORD group);
|
||
DMC_API short __stdcall dmc_cmd_buf_stop(WORD card,WORD group, WORD stop_mode);
|
||
DMC_API short __stdcall dmc_cmd_buf_get_group_config(WORD card,WORD group, WORD* enable ,WORD* axis_num, WORD* axis_list);
|
||
DMC_API short __stdcall dmc_cmd_buf_get_group_run_info(WORD card,WORD group, WORD* enable ,DWORD* array_id, DWORD* stop_reason,WORD* trig_phase ,WORD* phase);
|
||
DMC_API short __stdcall dmc_cmd_buf_add_cmd(WORD card, WORD group, DWORD index, WORD cmd_type, WORD ProcessMode, WORD Dim,
|
||
WORD* AxisList, double* TargetPositionFirst, double* m_TargetPositionSecond,WORD* m_SoftlandFlag,double* SoftLandVel,double* SoftLandEndVel, WORD* m_PosMode,double* m_TrigAheadPos,
|
||
WORD m_TrigFlag, WORD m_TrigAxisNum,WORD* m_TrigAxislist,WORD* m_TrigPosType,WORD* m_TrigAxisPosRelationgship,double* m_TrigAxisPos,
|
||
WORD m_TrigIONum, WORD* m_TrigIOState,WORD* m_TrigINIOList,
|
||
DWORD m_DelayCmdTime, WORD m_IOList, WORD m_IOState,WORD m_TrigError
|
||
);
|
||
DMC_API short __stdcall dmc_cmd_buf_set_axis_profile(WORD card,WORD group, WORD axis_num, WORD* axis_list, double* start_vel, double* max_vel, double* stop_vel, double* tacc, double* tdec);
|
||
|
||
DMC_API short __stdcall dmc_m_set_muti_profile_unit(WORD CardNo, WORD group, WORD axis_num, WORD* axis_list, double* start_vel, double* max_vel, double* tacc, double* tdec, double* stop_vel);
|
||
DMC_API short __stdcall dmc_m_set_profile_unit(WORD CardNo, WORD group, WORD axis, double start_vel, double max_vel, double tacc, double tdec, double stop_vel);
|
||
DMC_API short __stdcall dmc_m_add_sigaxis_moveseg_data(WORD CardNo, WORD group, WORD axis, double Target_pos, WORD process_mode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_sigaxis_move_twoseg_data(WORD CardNo, WORD group, WORD axis, double Target_pos, double softland_pos, double softland_vel, double softland_endvel, WORD process_mode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_mutiaxis_moveseg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axis_list, double* Target_pos, WORD process_mode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_mutiaxis_move_twoseg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axis_list, double* Target_pos, double* softland_pos, double* softland_vel, double* softland_endvel, WORD process_mode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_ioTrig_movseg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axisList, double* Target_pos, WORD process_mode, WORD trigINbit, WORD trigINstate, DWORD mark);//io触发移动
|
||
DMC_API short __stdcall dmc_m_add_mutiposTrig_movseg_data(WORD CardNo, WORD group, WORD axis, double Target_pos, WORD process_mode, WORD trigaxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigPosMode, DWORD mark);//位置触发移动
|
||
DMC_API short __stdcall dmc_m_add_mutiposTrig_mov_twoseg_data(WORD CardNo, WORD group, WORD axis, double Target_pos, double softland_pos, double softland_vel, double softland_endvel, WORD process_mode, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigPosMode, DWORD mark);//多轴位置触发移动
|
||
DMC_API short __stdcall dmc_m_add_upseg_data(WORD CardNo, WORD group, WORD axis, double Target_pos, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_up_twoseg_data(WORD CardNo, WORD group, WORD axis, double Target_pos, double softland_pos, double softland_vel, double softland_endvel, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_ioPosTrig_movseg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axisList, double* Target_pos, WORD process_mode, WORD trigAxis,double trigPos, WORD trigPosType, WORD trigMode, WORD TrigINNum, WORD* trigINList, WORD* trigINstate, DWORD mark);//位置+io触发移动
|
||
DMC_API short __stdcall dmc_m_add_ioPosTrig_mov_twoseg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axisList, double* Target_pos, double* softland_pos, double* softland_vel, double* softland_endvel,WORD process_mode, WORD trigAxis, double trigPos, WORD trigPosType, WORD trigMode, WORD TrigINNum, WORD* trigINList, WORD* trigINstate, DWORD mark);//位置+io触发移动
|
||
DMC_API short __stdcall dmc_m_add_posTrig_movseg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axisList, double* Target_pos, WORD process_mode, WORD trigAxis, double trigPos, WORD trigPosType, WORD trigMode, DWORD mark);//位置触发移动
|
||
DMC_API short __stdcall dmc_m_add_posTrig_mov_twoseg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axisList, double* Target_pos, double* softland_pos, double* softland_vel, double* softland_endvel, WORD process_mode, WORD trigAxis, double trigPos, WORD trigPosType, WORD trigMode, DWORD mark);//位置触发移动
|
||
DMC_API short __stdcall dmc_m_add_ioPosTrig_down_seg_data(WORD CardNo, WORD group, WORD axis, double safePos, double Target_pos, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigMode, WORD trigIN, WORD trigINstate, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_ioPosTrig_down_twoseg_data(WORD CardNo, WORD group, WORD axis, double safePos, double Target_pos, double softland_pos, double softland_vel, double softland_endvel, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigMode, WORD trigIN, WORD trigINstate, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_posTrig_down_seg_data(WORD CardNo, WORD group, WORD axis, double safePos, double Target_pos, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigMode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_posTrig_down_twoseg_data(WORD CardNo, WORD group, WORD axis, double safePos, double Target_pos, double softland_pos, double softland_vel, double softland_endvel, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigMode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_posTrig_torque_movseg_data(WORD CardNo, WORD group, WORD axis, double torque, double PosLimitValue, WORD PosLimitValid, WORD PosMode, WORD trigAxis, double trigPos, WORD trigPosType, WORD trigMode, DWORD mark);//位置触发转矩移动
|
||
|
||
DMC_API short __stdcall dmc_m_posTrig_outbit(WORD CardNo, WORD group, WORD bitno, WORD on_off, WORD ahead_axis, double ahead_value, WORD ahead_PosType, WORD ahead_Mode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_immediate_write_outbit(WORD CardNo, WORD group, WORD bitno, WORD on_off, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_wait_input(WORD CardNo, WORD group, WORD bitno, WORD on_off, double time_out, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_delay_time(WORD CardNo, WORD group, double delay_time, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_get_run_state(WORD CardNo, WORD group, WORD* state, WORD* enable, DWORD* stop_reason, WORD* trig_phase, DWORD* mark);
|
||
DMC_API short __stdcall dmc_m_open_list(WORD CardNo, WORD group, WORD axis_num, WORD* axis_list);
|
||
DMC_API short __stdcall dmc_m_close_list(WORD CardNo, WORD group);
|
||
DMC_API short __stdcall dmc_m_start_list(WORD CardNo, WORD group);
|
||
DMC_API short __stdcall dmc_m_stop_list(WORD CardNo, WORD group,WORD stopMode);
|
||
DMC_API short __stdcall dmc_m_add_posTrig_down_seg_cmd_data(WORD CardNo, WORD group, WORD axis, double safePos, double Target_pos, WORD trigAxisNum, WORD* trigAxisList, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_posTrig_down_twoseg_cmd_data(WORD CardNo, WORD group, WORD axis, double safePos, double Target_pos, double softland_pos, double softland_vel, double softland_endvel, WORD trigAxisNum, WORD* trigAxisList, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_pause_list(WORD CardNo, WORD group, WORD stop_mode);
|
||
|
||
DMC_API short __stdcall dmc_get_ad_input_all(WORD CardNo, double* Vout);
|
||
DMC_API short __stdcall dmc_conti_pmove_unit_pausemode(WORD CardNo, WORD axis,double TargetPos, double Min_Vel,double Max_Vel, double stop_Vel, double acc,double dec,double smooth_time,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_conti_return_pausemode(WORD CardNo, WORD Crd, WORD axis);
|
||
DMC_API short __stdcall dmc_cmd_buf_temp_stop(WORD CardNo,WORD group,WORD stop_mode);
|
||
DMC_API short __stdcall dmc_check_if_crc_support(WORD CardNo);
|
||
//编码器da跟随
|
||
DMC_API short __stdcall dmc_set_encoder_da_follow_enable(WORD CardNo,WORD axis,WORD enable);
|
||
DMC_API short __stdcall dmc_get_encoder_da_follow_enable(WORD CardNo,WORD axis,WORD* enable);
|
||
|
||
//轴碰撞检测功能接口
|
||
DMC_API short __stdcall dmc_set_axis_conflict_config(WORD CardNo, WORD* axis_list, WORD* axis_depart_dir, double home_dist, double conflict_dist, WORD stop_mode);
|
||
DMC_API short __stdcall dmc_get_axis_conflict_config (WORD CardNo, WORD* axis_list, WORD* axis_depart_dir, double* home_dist, double* conflict_dist, WORD* stop_mode);
|
||
DMC_API short __stdcall dmc_axis_conflict_config_en(WORD CardNo, WORD enable);
|
||
DMC_API short __stdcall dmc_get_axis_conflict_config_en(WORD CardNo, WORD* enable);
|
||
|
||
//trig_num 触发次数,trig_pos 触发位置
|
||
DMC_API short __stdcall dmc_get_pmove_change_pos_speed_state(WORD CardNo,WORD axis, WORD * trig_num, double * trig_pos);
|
||
|
||
//读输入输出增加带返回值的接口
|
||
DMC_API short __stdcall dmc_read_inbit_ex(WORD CardNo,WORD bitno,WORD *state);//读取输入口的状态
|
||
DMC_API short __stdcall dmc_read_outbit_ex(WORD CardNo,WORD bitno,WORD *state);//读取输出口的状态
|
||
DMC_API short __stdcall dmc_read_inport_ex(WORD CardNo,WORD portno,DWORD *state);//读取输入端口的值
|
||
DMC_API short __stdcall dmc_read_outport_ex(WORD CardNo,WORD portno,DWORD *state);//读取输出端口的值
|
||
//模块增加读取状态
|
||
//设置io输出
|
||
DMC_API short __stdcall nmc_write_outbit_ex(WORD CardNo,WORD NoteID,WORD IoBit,WORD IoValue,WORD* state);
|
||
//读取io输出
|
||
DMC_API short __stdcall nmc_read_outbit_ex(WORD CardNo,WORD NoteID,WORD IoBit,WORD *IoValue,WORD* state);
|
||
//读取io输入
|
||
DMC_API short __stdcall nmc_read_inbit_ex(WORD CardNo,WORD NoteID,WORD IoBit,WORD *IoValue,WORD* state);
|
||
//设置io输出32位
|
||
DMC_API short __stdcall nmc_write_outport_ex(WORD CardNo,WORD NoteID,WORD portno,DWORD outport_val,WORD* state);
|
||
//读取io输出32位
|
||
DMC_API short __stdcall nmc_read_outport_ex(WORD CardNo,WORD NoteID,WORD portno,DWORD *outport_val,WORD* state);
|
||
//读取io输入32位
|
||
DMC_API short __stdcall nmc_read_inport_ex(WORD CardNo,WORD NoteID,WORD portno,DWORD *inport_val,WORD* state);
|
||
|
||
//设置DA参数
|
||
DMC_API short __stdcall nmc_set_da_output_ex(WORD CardNo,WORD NoteID,WORD channel,double Value,WORD* state);
|
||
//读取DA参数
|
||
DMC_API short __stdcall nmc_get_da_output_ex(WORD CardNo,WORD NoteID,WORD channel,double *Value,WORD* state);
|
||
//读取AD参数
|
||
DMC_API short __stdcall nmc_get_ad_input_ex(WORD CardNo,WORD NoteID,WORD channel,double *Value,WORD* state);
|
||
//配置AD模式
|
||
DMC_API short __stdcall nmc_set_ad_mode_ex(WORD CardNo,WORD NoteID,WORD channel,WORD mode,DWORD buffer_nums,WORD* state);
|
||
DMC_API short __stdcall nmc_get_ad_mode_ex(WORD CardNo,WORD NoteID,WORD channel,WORD* mode,DWORD buffer_nums,WORD* state);
|
||
//配置DA模式
|
||
DMC_API short __stdcall nmc_set_da_mode_ex(WORD CardNo,WORD NoteID,WORD channel,WORD mode,DWORD buffer_nums,WORD* state);
|
||
DMC_API short __stdcall nmc_get_da_mode_ex(WORD CardNo,WORD NoteID,WORD channel,WORD* mode,DWORD buffer_nums,WORD* state);
|
||
//参数写入flash
|
||
DMC_API short __stdcall nmc_write_to_flash_ex(WORD CardNo,WORD PortNum,WORD NodeNum,WORD* state);
|
||
|
||
//物件分拣加通道
|
||
DMC_API short __stdcall dmc_sorting_close_ex(WORD CardNo,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_start_ex(WORD CardNo,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_set_init_config_ex(WORD CardNo ,WORD cameraCount, int *pCameraPos, WORD *pCamIONo, DWORD cameraTime, WORD cameraTrigLevel, WORD blowCount, int*pBlowPos, WORD*pBlowIONo, DWORD blowTime, WORD blowTrigLevel, WORD axis, WORD dir, WORD checkMode,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_set_camera_trig_count_ex(WORD CardNo ,WORD cameraNum, DWORD cameraTrigCnt,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_get_camera_trig_count_ex(WORD CardNo ,WORD cameraNum, DWORD* pCameraTrigCnt, WORD count,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_set_blow_trig_count_ex(WORD CardNo ,WORD blowNum, DWORD blowTrigCnt,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_get_blow_trig_count_ex(WORD CardNo ,WORD blowNum, DWORD* pBlowTrigCnt, WORD count,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_get_camera_config_ex(WORD CardNo ,WORD index,int* pos,DWORD* trigTime, WORD* ioNo, WORD* trigLevel,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_get_blow_config_ex(WORD CardNo ,WORD index, int* pos,DWORD* trigTime, WORD* ioNo, WORD* trigLevel,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_get_blow_status_ex(WORD CardNo ,DWORD* trigCntAll, WORD* trigMore,WORD* trigLess,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_trig_blow_ex(WORD CardNo ,WORD blowNum,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_set_blow_enable_ex(WORD CardNo ,WORD blowNum,WORD enable,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_set_piece_config_ex(WORD CardNo ,DWORD maxWidth,DWORD minWidth,DWORD minDistance, DWORD minTimeIntervel,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_get_piece_status_ex(WORD CardNo ,DWORD* pieceFind,DWORD* piecePassCam, DWORD* dist2next, DWORD*pieceWidth,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_set_cam_trig_phase_ex(WORD CardNo,WORD blowNo,double coef,WORD sortModuleNo);
|
||
DMC_API short __stdcall dmc_sorting_set_blow_trig_phase_ex(WORD CardNo,WORD blowNo,double coef,WORD sortModuleNo);
|
||
//获取分拣指令数量函数
|
||
DMC_API short __stdcall dmc_get_sortdev_blow_cmd_cnt(WORD CardNo, WORD blowDevNum, long* cnt);
|
||
//获取未处理指令数量函数函数
|
||
DMC_API short __stdcall dmc_get_sortdev_blow_cmderr_cnt(WORD CardNo, WORD blowDevNum, long* errCnt);
|
||
//分拣队列状态
|
||
DMC_API short __stdcall dmc_get_sortqueue_status(WORD CardNo, long * curSorQueueLen, long* passCamWithNoCmd);
|
||
|
||
// 椭圆连续插补
|
||
DMC_API short __stdcall dmc_conti_ellipse_move_unit(WORD CardNo, WORD Crd,WORD AxisNum, WORD* AxisList, double* Target_Pos, double* Cen_Pos, double A_Axis_Len, double B_Axis_Len, WORD Dir, WORD Pos_Mode,long mark);
|
||
//获取轴状态函数
|
||
DMC_API short dmc_get_axis_status_advance(WORD CardNo, WORD axis_no, WORD motion_no, WORD* axis_plan_state, DWORD* ErrPlulseCnt, WORD* fpga_busy);
|
||
//连续插补vmove
|
||
DMC_API short __stdcall dmc_conti_vmove_unit(WORD CardNo, WORD Crd, WORD axis, double vel, double acc ,WORD dir, long imark);
|
||
DMC_API short __stdcall dmc_conti_vmove_stop(WORD CardNo, WORD Crd, WORD axis, double dec, long imark);
|
||
|
||
//登入sn20191101
|
||
DMC_API short __stdcall dmc_enter_password_ex(WORD CardNo, const char * str_pass);
|
||
|
||
//电子齿轮功能
|
||
DMC_API short __stdcall dmc_gear_in(WORD CardNo, WORD master_axis, WORD slave_axis, WORD follow_source, double ratio_numerator, double ratio_denominator, double acc, double dec, double s_time, WORD buffer_mode);
|
||
DMC_API short __stdcall dmc_get_gear_in(WORD CardNo, WORD* master_axis, WORD slave_axis, WORD* follow_source, double* ratio_numerator, double* ratio_denominator, double* acc, double* dec, double* s_time, WORD* buffer_mode);
|
||
DMC_API short __stdcall dmc_update_gear_scale(WORD CardNo, WORD slave_axis, double ratio_numerator, double ratio_denominator, double acc, double dec,double s_time);
|
||
DMC_API short __stdcall dmc_gear_in_pos(WORD CardNo, WORD master_axis,WORD slave_axis,WORD follow_source,double ratio_numerator,double ratio_denominator,double master_sync_pos,double slave_sync_pos,double master_start_dist,double velocity,double acc,double dec,double s_time, WORD buffer_mode);
|
||
DMC_API short __stdcall dmc_get_gear_in_pos(WORD CardNo, WORD* master_axis,WORD slave_axis,WORD* follow_source,double* ratio_numerator,double* ratio_denominator,double* master_sync_pos,double* slave_sync_pos,double* master_start_dist,double* velocity,double* acc,double* dec,double* s_time, WORD* buffer_mode);
|
||
DMC_API short __stdcall dmc_get_in_gear_state(WORD CardNo, WORD slave_axis,WORD* in_gear);
|
||
DMC_API short __stdcall dmc_get_gear_aborted_state(WORD CardNo, WORD slave_axis,WORD* aborted_state);
|
||
DMC_API short __stdcall dmc_gear_out(WORD CardNo, WORD slave_axis);
|
||
DMC_API short __stdcall dmc_trace_set_config(WORD CardNo, short trace_cycle, short lost_handle, short trace_type, short trigger_object_index, short trigger_type, int mask, long long condition);
|
||
DMC_API short __stdcall dmc_trace_get_config(WORD CardNo, short * trace_cycle, short * lost_handle, short * trace_type, short * trigger_object_index, short * trigger_type, int * mask, long long * condition);
|
||
|
||
/***********************************************************
|
||
* 配置采集对象,一次可以添加500个采集对象
|
||
* data_type 数据的类型,见采集对象说明。
|
||
* data_index 数据的主索引,如果是跟轴相关,则是轴序号,如果是IO,则是IO序号,如此类推
|
||
* data_sub_index 数据的子索引,如果是按组采集IO,则表示IO结束的序号。
|
||
* data_bytes 对象字节数,现有采集类型会自动匹配,固定为0,预留后续扩展功能
|
||
**********************************************************/
|
||
DMC_API short __stdcall dmc_trace_reset_config_object(WORD CardNo);
|
||
DMC_API short __stdcall dmc_trace_add_config_object(WORD CardNo, short data_type, int data_index, int data_sub_index, short slave_id, short data_bytes);
|
||
DMC_API short __stdcall dmc_trace_get_config_object(WORD CardNo,short object_index, short * data_type, int * data_index, int * data_sub_index, short * slave_id, short * data_bytes);
|
||
|
||
//启动trace
|
||
DMC_API short __stdcall dmc_trace_data_start(WORD CardNo);
|
||
|
||
//停止trace
|
||
DMC_API short __stdcall dmc_trace_data_stop(WORD CardNo);
|
||
|
||
//复位trace,停止采集的时候才能调用,会清除已采集到的数据以及溢出标志位
|
||
DMC_API short __stdcall dmc_trace_data_reset(WORD CardNo);
|
||
|
||
|
||
//trace是否已经启动
|
||
DMC_API short __stdcall dmc_trace_get_flag(WORD CardNo,short * start_flag,short * triggered_flag,short * lost_flag);
|
||
|
||
/***********************************************************
|
||
*读取采集状态
|
||
* valid_num 已采集但未被读取的数据个数
|
||
* free_num 剩余可用于保存采集数据的个数
|
||
* object_total_bytes 采集对象总字节数
|
||
* object_total_num 采集对象总个数
|
||
**********************************************************/
|
||
DMC_API short __stdcall dmc_trace_get_state(WORD CardNo,int* valid_num,int* free_num,int* object_total_bytes,int* object_total_num);
|
||
|
||
/***********************************************************
|
||
*读取采集数据
|
||
* bufsize 数据缓冲区字节数
|
||
* data[1024] 数据缓冲区,
|
||
* byte_size 读取的数据的字节数
|
||
**********************************************************/
|
||
DMC_API short __stdcall dmc_trace_get_data(WORD CardNo,int bufsize,unsigned char* data, int* byte_size);
|
||
|
||
//trace复位溢出信号,只是复位标志位
|
||
DMC_API short __stdcall dmc_trace_reset_lost_flag(WORD CardNo);
|
||
DMC_API short __stdcall dmc_message_buffer_enable(WORD CardNo,WORD index, DWORD buffer_size, BYTE console_enable);
|
||
DMC_API short __stdcall dmc_message_buffer_disable(WORD CardNo,WORD index);
|
||
DMC_API short __stdcall dmc_message_buffer_get_data (WORD CardNo,WORD index, long bufsize, BYTE* data,DWORD *pbufsize);
|
||
|
||
DMC_API short __stdcall dmc_t_pmove_extern_softstart(WORD CardNo, WORD axis, double MidPos, double TargetPos, double start_Vel, double Max_Vel, double stop_Vel, DWORD delay_ms, double Max_Vel2,double stop_vel2, double acc_time, double dec_time, WORD posi_mode);
|
||
|
||
DMC_API short __stdcall dmc_t_pmove_extern_softstart_unit(WORD CardNo, WORD axis, double MidPos, double TargetPos, double start_Vel, double Max_Vel, double stop_Vel, DWORD delay_ms, double Max_Vel2,double stop_vel2, double acc_time, double dec_time, WORD posi_mode);
|
||
|
||
|
||
//PVT_continuous接口.
|
||
//下发PVT continuous各节点数据
|
||
DMC_API short __stdcall dmc_pvt_table_continuous(WORD CardNo, WORD axis, DWORD count, double* pos, double* vel, double* percent, double* vel_max, double* acc, double* dec);
|
||
//根据传入的参数,获取各个位置节点的时间
|
||
DMC_API short __stdcall dmc_pvt_continuous_calculate(WORD CardNo, WORD axis, double* time);
|
||
//开启PVT continuous 运动
|
||
DMC_API short __stdcall dmc_pvt_continuous_start(WORD CardNo, WORD axis_num, WORD* axis_list,double* start_delay_time);
|
||
|
||
//总线复位输出保持开关设置
|
||
DMC_API short __stdcall nmc_set_slave_output_retain(WORD CardNo,WORD Enable);
|
||
DMC_API short __stdcall nmc_get_slave_output_retain(WORD CardNo,WORD * Enable);
|
||
|
||
DMC_API short __stdcall dmc_m_add_mutiposTrig_singledown_seg_data(WORD CardNo, WORD group, WORD axis, double safePos, double Target_pos, WORD process_mode, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigMode, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_mutiposTrig_mutidown_seg_data(WORD CardNo, WORD group, WORD axisnum, WORD* axis_list, double* safePos, double* Target_pos, WORD process_mode, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigMode, DWORD mark);
|
||
|
||
//反馈位置误差允许范围设置
|
||
DMC_API short __stdcall dmc_cmd_buf_set_allow_error(WORD CardNo, WORD group, double allow_error);
|
||
DMC_API short __stdcall dmc_cmd_buf_get_allow_error(WORD CardNo, WORD group, double* allow_error);
|
||
//半径终点圆弧插补
|
||
DMC_API short __stdcall dmc_arc_move_radius_multicoor(WORD CardNo, WORD Crd, WORD* AxisList, double *Target_Pos, double Arc_Radius, WORD Arc_Dir, long Circle, WORD posi_mode);
|
||
//三点圆弧
|
||
DMC_API short __stdcall dmc_arc_move_3points_multicoor(WORD CardNo,WORD Crd,WORD* AxisList, double *Target_Pos, double *Mid_Pos, long Circle, WORD posi_mode);
|
||
|
||
//反馈位置误差允许范围设置
|
||
DMC_API short __stdcall dmc_m_set_encoder_error_allow(WORD CardNo, WORD group, double allow_error);
|
||
DMC_API short __stdcall dmc_m_get_encoder_error_allow(WORD CardNo, WORD group, double* allow_error);
|
||
|
||
//掉电保持
|
||
DMC_API short __stdcall dmc_set_persistent_reg_byte(WORD CardNo, DWORD start, DWORD inum, const char* pdata);
|
||
DMC_API short __stdcall dmc_get_persistent_reg_byte(WORD CardNo, DWORD start, DWORD inum, char* pdata);
|
||
DMC_API short __stdcall dmc_set_persistent_reg_float(WORD CardNo, DWORD start, DWORD inum, const float* pdata);
|
||
DMC_API short __stdcall dmc_get_persistent_reg_float(WORD CardNo, DWORD start, DWORD inum, float* pdata);
|
||
DMC_API short __stdcall dmc_set_persistent_reg_int(WORD CardNo, DWORD start, DWORD inum, const int* pdata);
|
||
DMC_API short __stdcall dmc_get_persistent_reg_int(WORD CardNo, DWORD start, DWORD inum, int* pdata);
|
||
|
||
DMC_API short __stdcall nmc_torque_set_delay_cycle(WORD CardNo,WORD axis,int delay_cycle);
|
||
|
||
DMC_API short __stdcall dmc_conti_delay_outbit_to_start_path(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double delay_value,WORD delay_mode,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_delay_outbit_to_stop_path(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double delay_time,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_ahead_outbit_to_stop_path(WORD CardNo, WORD Crd, WORD bitno,WORD on_off,double ahead_value,WORD ahead_mode,double ReverseTime);
|
||
|
||
//轴参数配置写flash接口
|
||
DMC_API short __stdcall dmc_set_persistent_param_config(WORD CardNo, WORD axis, DWORD item);
|
||
DMC_API short __stdcall dmc_get_persistent_param_config(WORD CardNo, WORD axis, DWORD* item);
|
||
|
||
DMC_API short __stdcall dmc_hcmp_fifo_add_point_dir_unit(WORD CardNo,WORD hcmp, WORD num,double *cmp_pos,DWORD dir);
|
||
DMC_API short __stdcall dmc_hcmp_fifo_add_table_dir(WORD CardNo,WORD hcmp, WORD num,double *cmp_pos,DWORD dir);
|
||
|
||
DMC_API short __stdcall dmc_axis_io_status_ex(WORD CardNo,WORD axis,DWORD *state);//读取指定轴有关运动信号的状态
|
||
DMC_API short __stdcall dmc_check_done_ex(WORD CardNo,WORD axis,WORD * state);//读取指定轴的运动状态
|
||
|
||
DMC_API short __stdcall dmc_conti_line_section_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* pPosList,double Section_Dist,WORD Bitno,WORD On_Off,WORD Io_Mode,double Time_Dist_Value,double ReverseTime,WORD posi_mode,WORD mark);
|
||
|
||
DMC_API short __stdcall dmc_conti_arc_move_center_section_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Cen_Pos,WORD Arc_Dir,WORD Circle,double Section_Dist,WORD Bitno,WORD On_Off,WORD Io_Mode,double Time_Dist_Value,double ReverseTime,WORD posi_mode,WORD mark);
|
||
|
||
DMC_API short __stdcall dmc_conti_arc_move_radius_section_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double Arc_Radius,WORD Arc_Dir,WORD Circle,double Section_Dist,WORD Bitno,WORD On_Off,WORD Io_Mode,double Time_Dist_Value,double ReverseTime,WORD posi_mode,WORD mark);
|
||
|
||
DMC_API short __stdcall dmc_conti_arc_move_3points_section_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Mid_Pos,WORD Circle,double Section_Dist,WORD Bitno,WORD On_Off,WORD Io_Mode,double Time_Dist_Value,double ReverseTime,WORD posi_mode,WORD mark);
|
||
|
||
DMC_API short __stdcall dmc_get_firmware_boot_type(WORD CardNo,WORD* boot_type);
|
||
|
||
|
||
|
||
//中断功能
|
||
DMC_API DWORD __stdcall dmc_int_enable(WORD CardNo, DMC3K5K_OPERATE funcIntHandler, void* operate_data);
|
||
DMC_API DWORD __stdcall dmc_int_disable(WORD CardNo);
|
||
DMC_API short __stdcall dmc_set_intmode_enable(WORD Cardno,WORD Intno,WORD Enable);
|
||
DMC_API short __stdcall dmc_get_intmode_enable(WORD Cardno,WORD Intno,WORD *Status);
|
||
DMC_API short __stdcall dmc_set_intmode_config(WORD Cardno,WORD Intno,WORD IntItem,WORD IntIndex,WORD IntSubIndex,WORD Logic);
|
||
DMC_API short __stdcall dmc_get_intmode_config(WORD Cardno,WORD Intno,WORD *IntItem,WORD *IntIndex,WORD *IntSubIndex,WORD*Logic);
|
||
DMC_API short __stdcall dmc_get_int_status(WORD Cardno,DWORD *IntStatus);
|
||
DMC_API short __stdcall dmc_reset_int_status(WORD Cardno, WORD Intno);
|
||
|
||
DMC_API short __stdcall dmc_set_pci_int(WORD CardNo);
|
||
DMC_API short __stdcall dmc_pmove_change_pos_speed_inbit(WORD CardNo,WORD axis, WORD inbit, WORD enable);
|
||
DMC_API short __stdcall dmc_get_pmove_change_pos_speed_inbit(WORD CardNo,WORD axis, WORD * inbit, WORD* enable);
|
||
|
||
DMC_API short __stdcall dmc_set_arc_zone_limit_config_unit(WORD CardNo, WORD* AxisList, WORD AxisNum, double *Center, double Radius,WORD Source, WORD StopMode);
|
||
DMC_API short __stdcall dmc_get_arc_zone_limit_config_unit(WORD CardNo, WORD* AxisList, WORD* AxisNum, double *Center, double* Radius,WORD* Source, WORD* StopMode);
|
||
|
||
DMC_API short __stdcall dmc_set_latch_stop_axis(WORD CardNo, WORD latch, WORD num, WORD * axislist);
|
||
DMC_API short __stdcall dmc_get_latch_stop_axis(WORD CardNo, WORD latch, WORD * num, WORD * axislist);
|
||
DMC_API short __stdcall dmc_compare_add_point_cycle_2d(WORD ConnectNo,WORD* axis,double* pos,WORD* dir, DWORD bitno,DWORD cycle,WORD level);
|
||
|
||
DMC_API short __stdcall dmc_set_factor_error_unit(WORD CardNo,WORD axis,double factor,double error);
|
||
DMC_API short __stdcall dmc_get_factor_error_unit(WORD CardNo,WORD axis,double* factor,double* error);
|
||
DMC_API short __stdcall dmc_set_pulse_encoder_count_error_unit(WORD CardNo,WORD axis,double error);
|
||
DMC_API short __stdcall dmc_get_pulse_encoder_count_error_unit(WORD CardNo,WORD axis,double *error);
|
||
DMC_API short __stdcall dmc_check_pulse_encoder_count_error_unit(WORD CardNo,WORD axis,double* pulse_position, double* enc_position);
|
||
|
||
DMC_API short __stdcall dmc_set_ad_monitor_config(WORD CardNo, WORD Crd, WORD CANid, WORD channel, WORD ADEn, double ADValDown, double ADValUp);
|
||
DMC_API short __stdcall dmc_get_ad_monitor_config(WORD CardNo, WORD Crd, WORD* CANid, WORD* channel, WORD* ADEn, double* ADValDown, double* ADValUp);
|
||
DMC_API short __stdcall dmc_get_ad_monitor_result(WORD CardNo, WORD Crd, WORD *ch, double* ADRet, WORD* num,double *pos);
|
||
DMC_API short __stdcall dmc_clear_ad_monitor_result(WORD CardNo,WORD Crd);
|
||
|
||
|
||
DMC_API short __stdcall dmc_update_target_position_extern_unit(WORD CardNo, WORD axis, double mid_pos, double aim_pos, double vel,WORD posi_mode);
|
||
//指定轴做定长位移运动 同时发送速度和S时间(当量)
|
||
DMC_API short __stdcall dmc_pmove_extern_unit(WORD CardNo, WORD axis, double dist,double Min_Vel, double Max_Vel, double Tacc, double Tdec, double stop_Vel, double s_para, WORD posi_mode);
|
||
DMC_API short __stdcall dmc_pmove_extern_acc_unit(WORD CardNo, WORD axis, double dist,double Min_Vel, double Max_Vel, double Tacc, double Tdec, double stop_Vel, double s_para, WORD posi_mode);
|
||
DMC_API short __stdcall dmc_m_mutiposTrig_outbit(WORD CardNo, WORD group, WORD bitno, WORD on_off, WORD process_mode, WORD trigAxisNum, WORD* trigAxisList, double* trigPos, WORD* trigPosType, WORD* trigMode, DWORD mark);//位置触发IO输出
|
||
|
||
DMC_API short __stdcall dmc_cmp_fifo_set_enable(WORD CardNo, WORD Crd, WORD enable);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_enable(WORD CardNo, WORD Crd, WORD* enable);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_state(WORD CardNo, WORD Crd, long* remained_space);
|
||
DMC_API short __stdcall dmc_cmp_fifo_clear_points(WORD CardNo, WORD Crd);
|
||
DMC_API short __stdcall dmc_cmp_fifo_set_config_params(WORD CardNo, WORD Crd, WORD Bitno, WORD On_Off, WORD Io_Mode, double Time_Dist_Value, double ReverseTime);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_config_params(WORD CardNo, WORD Crd, WORD* Bitno, WORD* On_Off, WORD* Io_Mode, double* Time_Dist_Value, double* ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_line_add_cmp_fifo_unit(WORD CardNo, WORD Crd, WORD AxisNum,WORD* AxisList,double* Target_Pos, double* cmp_pos, WORD num, WORD posi_mode, long mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_3points_add_cmp_fifo_unit(WORD CardNo, WORD Crd, WORD AxisNum, WORD* AxisList,double* Target_Pos, double* Mid_Pos,WORD Circle, double *cmp_pos,WORD num, WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_center_add_cmp_fifo_unit(WORD CardNo, WORD Crd, WORD AxisNum, WORD* AxisList, double* Target_Pos, double* Cen_Pos,WORD Arc_Dir,WORD Circle, double *cmp_pos,WORD num, WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_radius_add_cmp_fifo_unit(WORD CardNo, WORD Crd, WORD AxisNum, WORD* AxisList, double* Target_Pos, double Arc_Radius,WORD Arc_Dir,WORD Circle, double *cmp_pos,WORD num, WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_total_point(WORD CardNo,WORD Crd,long *total_point);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_remain_point(WORD CardNo,WORD Crd,long *remain_point);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_trig_point(WORD CardNo,WORD Crd,long *trig_point);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_force_trig_point(WORD CardNo,WORD Crd,long *force_trig_point);
|
||
|
||
DMC_API short __stdcall dmc_conti_wait_node_input_delay_to_start(WORD CardNo,WORD Crd,WORD node_ID, WORD bitno,WORD on_off, double delay_value,WORD delay_mode ,double TimeOut);
|
||
DMC_API short __stdcall dmc_conti_wait_node_input_ahead_to_stop(WORD CardNo,WORD Crd,WORD node_ID, WORD bitno,WORD on_off, double ahead_value,WORD ahead_mode ,double TimeOut);
|
||
DMC_API short __stdcall dmc_conti_delay_node_outbit_to_start(WORD CardNo, WORD Crd,WORD node_ID, WORD bitno,WORD on_off,double delay_value,WORD delay_mode,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_delay_node_outbit_to_stop(WORD CardNo, WORD Crd,WORD node_ID, WORD bitno,WORD on_off,double delay_time,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_ahead_node_outbit_to_stop(WORD CardNo, WORD Crd,WORD node_ID, WORD bitno,WORD on_off,double ahead_value,WORD ahead_mode,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_write_node_outbit(WORD CardNo, WORD Crd,WORD node_ID, WORD bitno,WORD on_off,double ReverseTime);
|
||
DMC_API short __stdcall dmc_conti_clear_node_io_action(WORD CardNo, WORD Crd, WORD node_ID,DWORD Io_Mask);
|
||
|
||
|
||
DMC_API short __stdcall dmc_get_connect_type(WORD CardNo, WORD * ConnectType);
|
||
DMC_API short __stdcall dmc_board_init_eth(WORD ConnectNo,const char* IpAddr);
|
||
//减速停止距离
|
||
DMC_API short __stdcall dmc_set_dec_stop_dist_unit(WORD CardNo,WORD axis,double dist);
|
||
DMC_API short __stdcall dmc_get_dec_stop_dist_unit(WORD CardNo,WORD axis,double *dist);
|
||
//最大速度限制设置(脉冲当量)
|
||
DMC_API short __stdcall dmc_set_profile_limit_unit(WORD CardNo,WORD axis,double Limit_Max_Vel,double Limit_Max_Acc,double EvenTime);
|
||
DMC_API short __stdcall dmc_get_profile_limit_unit(WORD CardNo,WORD axis,double* Limit_Max_Vel,double* Limit_MAX_Acc,double* EvenTime);
|
||
DMC_API short __stdcall dmc_set_vector_profile_limit_unit(WORD CardNo,WORD Crd,double Limit_Max_Vel,double Limit_Max_Acc,double EvenTime);
|
||
DMC_API short __stdcall dmc_get_vector_profile_limit_unit(WORD CardNo,WORD Crd,double* Limit_Max_Vel,double* Limit_MAX_Acc,double* EvenTime);
|
||
//启用单轴限速功能
|
||
DMC_API short __stdcall dmc_set_vector_profile_limit_by_axis(WORD CardNo,WORD Crd,WORD Enable);
|
||
DMC_API short __stdcall dmc_get_vector_profile_limit_by_axis(WORD CardNo,WORD Crd,WORD* Enable);
|
||
DMC_API short __stdcall dmc_get_axis_follow_line_enable(WORD CardNo,WORD Crd,WORD * enable_flag);
|
||
|
||
DMC_API short __stdcall dmc_set_counter_reverse(WORD CardNo,WORD axis,WORD reverse);
|
||
DMC_API short __stdcall dmc_get_counter_reverse(WORD CardNo,WORD axis,WORD *reverse);
|
||
DMC_API short __stdcall dmc_set_extra_counter_reverse(WORD CardNo,WORD axis,WORD reverse);
|
||
DMC_API short __stdcall dmc_get_extra_counter_reverse(WORD CardNo,WORD axis,WORD *reverse);
|
||
|
||
DMC_API short __stdcall dmc_conti_stop_axis(WORD CardNo, WORD Crd, WORD axis, double dec, int imark);
|
||
|
||
//读取插补长度
|
||
DMC_API short __stdcall dmc_read_vector_length_unit(WORD CardNo,WORD Crd, double* total_length, double* left_length);
|
||
/*********************************************************************************************************
|
||
简易电子凸轮运动
|
||
*********************************************************************************************************/
|
||
DMC_API short __stdcall dmc_cam_table_unit(WORD CardNo,WORD MasterAxisNo,WORD SlaveAxisNo,DWORD Count,double *pMasterPos,double *pSlavePos,WORD SrcMode);
|
||
DMC_API short __stdcall dmc_cam_move(WORD CardNo,WORD axis);
|
||
DMC_API short __stdcall dmc_cam_move_cycle(WORD CardNo,WORD axis);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_fairing_enable(WORD CardNo,WORD Crd, WORD enable, double fairing_length);
|
||
DMC_API short __stdcall dmc_conti_get_fairing_enable(WORD CardNo,WORD Crd, WORD * enable, double * fairing_length);
|
||
|
||
DMC_API short __stdcall dmc_set_eth_timeout(int timems);
|
||
|
||
DMC_API short __stdcall dmc_set_extra_encoder_extern(WORD CardNo,WORD channel, int pos);
|
||
DMC_API short __stdcall dmc_get_extra_encoder_extern(WORD CardNo,WORD channel, int * pos);
|
||
|
||
DMC_API short __stdcall dmc_conti_smooth_contour_unit(WORD CardNo, WORD Crd, WORD AxisNum,WORD*AxisList, WORD point_num, double*x,double*y,double*z, double vel_coef, double eps,long mark);
|
||
DMC_API short __stdcall dmc_get_conti_smooth_contour_curve(WORD point_num, double*x,double*y,double*z, double eps,double* curve_x,double* curve_y,double* curve_z, double* length);
|
||
|
||
|
||
//新增针对模块高速比较指令
|
||
DMC_API short __stdcall nmc_hcmp_set_mode(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, WORD cmp_mode);
|
||
DMC_API short __stdcall nmc_hcmp_get_mode(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, WORD* cmp_mode);
|
||
DMC_API short __stdcall nmc_hcmp_set_config(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, WORD channel,WORD cmp_source, WORD cmp_logic, long time);
|
||
DMC_API short __stdcall nmc_hcmp_get_config(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, WORD* channel, WORD* cmp_source, WORD*cmp_logic, long* time);
|
||
DMC_API short __stdcall nmc_hcmp_clear_points(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp,WORD enable);
|
||
DMC_API short __stdcall nmc_hcmp_add_point(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, long cmp_pos);
|
||
DMC_API short __stdcall nmc_hcmp_set_liner(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, long Increment, long Count);
|
||
DMC_API short __stdcall nmc_hcmp_get_liner(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, long* Increment, long* Count);
|
||
DMC_API short __stdcall nmc_hcmp_get_current_state(WORD CardNo, WORD PortNum, WORD nodenum, WORD hcmp, long *remained_points, long* current_point, long *runned_points);
|
||
|
||
//样条曲线相关
|
||
DMC_API short __stdcall dmc_set_axis_follow_trajectory_displacement(WORD CardNo, WORD crd, WORD num, WORD* Axis_list);
|
||
DMC_API short __stdcall dmc_get_axis_follow_trajectory_displacement(WORD CardNo, WORD crd, WORD*num, WORD* Axis_list);
|
||
DMC_API short __stdcall dmc_set_tool_length_compensation_param(WORD CardNo, WORD axis, double length);
|
||
DMC_API short __stdcall dmc_get_tool_length_compensation_param(WORD CardNo, WORD axis, double* length);
|
||
DMC_API short __stdcall dmc_set_tool_length_compensation_enable(WORD CardNo, WORD axis, WORD enable);
|
||
DMC_API short __stdcall dmc_get_tool_length_compensation_enable(WORD CardNo, WORD axis, WORD* enable);
|
||
DMC_API short __stdcall dmc_set_normal_direction_control(WORD CardNo, WORD crd, WORD axis, WORD mode);
|
||
DMC_API short __stdcall dmc_get_normal_direction_control(WORD CardNo, WORD crd, WORD* axis, WORD* mode);
|
||
DMC_API short __stdcall dmc_set_gap_cmp_param(WORD CardNo, WORD crd, WORD pin, WORD logic, WORD mode, WORD auxi_axis, WORD source, long rev_time, double* gap);
|
||
DMC_API short __stdcall dmc_get_gap_cmp_param(WORD CardNo, WORD crd, WORD* pin, WORD* logic, WORD* mode, WORD* auxi_axis, WORD* source, long* rev_time, double* gap);
|
||
DMC_API short __stdcall dmc_set_gap_cmp_enable(WORD CardNo, WORD crd, WORD enable);
|
||
DMC_API short __stdcall dmc_get_gap_cmp_enable(WORD CardNo, WORD crd, WORD* enable);
|
||
DMC_API short __stdcall dmc_set_normal_direction_control_enable(WORD CardNo, WORD crd, WORD enable);
|
||
DMC_API short __stdcall dmc_get_normal_direction_control_enable(WORD CardNo, WORD crd, WORD* enable);
|
||
|
||
DMC_API short __stdcall dmc_mc_gear_in(WORD CardNo, WORD slave_axis, WORD master_axis, WORD execute, WORD conti_update, WORD master_source, double ratio_numerator, double ratio_denominator, double acc, double dec, double jerk, WORD buffer_mode);
|
||
DMC_API short __stdcall dmc_get_mc_gear_in(WORD CardNo, WORD slave_axis, WORD* master_axis, WORD * execute, WORD * conti_update, WORD * master_source, double * ratio_numerator, double * ratio_denominator, double * acc, double * dec, double * jerk, WORD * buffer_mode);
|
||
DMC_API short __stdcall dmc_get_mc_gearin_status(WORD CardNo, WORD slave_axis, WORD * in_gear, WORD * busy, WORD * active, WORD * cmd_aborted, WORD * error,DWORD* error_id);
|
||
DMC_API short __stdcall dmc_mc_gear_out(WORD CardNo, WORD slave_axis, WORD * execute);
|
||
DMC_API short __stdcall dmc_get_mc_gear_out_status(WORD CardNo, WORD slave_axis,WORD* done,WORD* busy,WORD* cmd_aborted,WORD* error,DWORD* error_id);
|
||
DMC_API short __stdcall dmc_mc_combine_axes (WORD CardNo, WORD slave_axis, WORD master_axis1, WORD master_axis2, WORD execute, WORD conti_update, WORD master_source1, WORD master_source2, WORD combine_mode, double ratio_numerator1, double ratio_denominator1, double ratio_numerator2, double ratio_denominator2, double acc, double dec, double jerk, WORD buffer_mode);
|
||
DMC_API short __stdcall dmc_get_mc_combine_axes (WORD CardNo, WORD slave_axis, WORD* master_axis1, WORD* master_axis2, WORD * execute, WORD * conti_update, WORD * master_source1, WORD * master_source2, WORD * combine_mode, double * ratio_numerator1, double * ratio_denominator1, double * ratio_numerator2,double* ratio_denominator2, double * acc, double * dec, double * jerk, WORD * buffer_mode);
|
||
DMC_API short __stdcall dmc_get_mc_combine_axes_status(WORD CardNo, WORD slave_axis, WORD * in_sync, WORD * busy, WORD * active, WORD * cmd_aborted, WORD * error,DWORD* error_id);
|
||
|
||
DMC_API short __stdcall dmc_set_space_collision_zone_param(WORD CardNo, WORD axis_num,WORD* axis_list, WORD zone_num, double* neg_limit, double* pos_limit, WORD stop_mode, WORD pos_source);
|
||
DMC_API short __stdcall dmc_get_space_collision_zone_param(WORD CardNo, WORD* axis_num,WORD* axis_list, WORD* zone_num, double* neg_limit, double* pos_limit, WORD* stop_mode, WORD* pos_source);
|
||
DMC_API short __stdcall dmc_set_space_collision_zone_enable(WORD CardNo, WORD enable);
|
||
DMC_API short __stdcall dmc_get_space_collision_zone_enable(WORD CardNo, WORD* enable);
|
||
|
||
//批量读取 不带当量20201016
|
||
DMC_API short __stdcall dmc_get_position_extern(WORD CardNo,WORD axis, double * pos);
|
||
DMC_API short __stdcall dmc_get_encoder_extern(WORD CardNo,WORD axis, double * pos);
|
||
DMC_API short __stdcall dmc_read_current_speed_extern(WORD CardNo,WORD axis, double *current_speed);
|
||
|
||
//电子凸轮
|
||
DMC_API short __stdcall dmc_cam_in(WORD CardNo, WORD slave_axis,WORD master_axis, WORD execute, WORD conti_update,WORD cam_table, WORD periodic, WORD master_abs, WORD slave_abs, double master_offset, double slave_offset,double master_scaling, double slave_scaling,double master_start_dist,double master_sync_pos,double active_pos, WORD active_mode ,WORD start_mode, double velocity,double acc, double dec, double jerk, WORD master_source, WORD buffer_mode);
|
||
DMC_API short __stdcall dmc_get_cam_in_status(WORD CardNo, WORD slave_axis, WORD* in_sync, WORD* end_of_profile, WORD* busy, WORD* active, WORD* cmd_aborted, WORD* error , DWORD* error_id);
|
||
DMC_API short __stdcall dmc_cam_out(WORD CardNo, WORD slave_axis,WORD execute);
|
||
DMC_API short __stdcall dmc_get_cam_out_status(WORD CardNo, WORD slave_axis,WORD* done,WORD* busy,WORD* cmd_aborted,WORD* error,DWORD* error_id);
|
||
DMC_API short __stdcall dmc_cam_read_point(WORD CardNo, WORD execute,WORD cam_table, WORD cam_chg_point, DWORD cam_point_num, WORD* done,WORD*busy, WORD*error, DWORD *error_id,double* master_pos,double* slave_pos,double* slave_vel,double* slave_acc, double* slave_jerk, WORD* type);
|
||
DMC_API short __stdcall dmc_cam_write_point(WORD CardNo, WORD execute,WORD cam_table, DWORD cam_point_num, double master_pos,double slave_pos,double slave_vel,double slave_acc, double slave_jerk,WORD type ,WORD* done,WORD*busy, WORD*error,DWORD*error_id);
|
||
DMC_API short __stdcall dmc_cam_set(WORD CardNo, WORD execute,WORD cam_table, WORD* done,WORD* busy, WORD* error,DWORD* error_id);
|
||
DMC_API short __stdcall dmc_cam_read_tappet_status(WORD CardNo, WORD execute,WORD cam_table, DWORD tappet_num1, DWORD tappet_num2, DWORD tappet_num3, DWORD tappet_num4, DWORD tappet_num5, DWORD tappet_num6, DWORD tappet_num7, DWORD tappet_num8, WORD* valid, WORD* busy, WORD* error,DWORD* error_id, WORD * status1, WORD * status2, WORD * status3, WORD * status4, WORD * status5, WORD * status6, WORD * status7, WORD * status8);
|
||
DMC_API short __stdcall dmc_cam_read_tappet_value(WORD CardNo, WORD execute,WORD cam_table, DWORD tappet_num, WORD* valid, WORD* busy, WORD* error,DWORD* error_id, double * master_pos, WORD * positive_mode, WORD * negative_mode);
|
||
DMC_API short __stdcall dmc_cam_write_tappet_value(WORD CardNo, WORD execute,WORD cam_table, DWORD tappet_num, double master_pos, WORD positive_mode, WORD negative_mode, WORD* done, WORD* busy, WORD* error,DWORD* error_id);
|
||
DMC_API short __stdcall dmc_cam_add_tappet (WORD CardNo, WORD execute,WORD cam_table, double master_pos, WORD positive_mode, WORD negative_mode ,WORD* done, WORD* busy, WORD* error,DWORD* error_id, DWORD* tappet_num);
|
||
DMC_API short __stdcall dmc_cam_delete_tappet (WORD CardNo, WORD execute,WORD cam_table, WORD* done, WORD* busy, WORD* error,DWORD* error_id);
|
||
|
||
DMC_API short __stdcall dmc_cmd_buf_temp_delete(WORD CardNo,WORD group,WORD addr,WORD num,WORD delete_mode);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_wait_mode(WORD CardNo, WORD Crd, WORD wait_mode);
|
||
DMC_API short __stdcall dmc_conti_get_wait_mode(WORD CardNo, WORD Crd, WORD* wait_mode);
|
||
|
||
DMC_API short __stdcall dmc_set_peak_config(WORD CardNo, WORD axis, WORD enable,double u_time);
|
||
DMC_API short __stdcall dmc_get_peak_config(WORD CardNo, WORD axis, WORD* enable,double* u_time);
|
||
|
||
DMC_API short __stdcall dmc_set_axis_err_band(WORD CardNo, WORD axis,double err_band, WORD set_cycle);
|
||
DMC_API short __stdcall dmc_get_axis_err_band(WORD CardNo, WORD axis,double* err_band, WORD* set_cycle);
|
||
DMC_API short __stdcall dmc_set_axis_err_band_unit(WORD CardNo, WORD axis,double err_band, WORD set_cycle);
|
||
DMC_API short __stdcall dmc_get_axis_err_band_unit(WORD CardNo, WORD axis,double* err_band, WORD* set_cycle);
|
||
|
||
//回读pmove运动规划总时间及剩余时间
|
||
DMC_API short __stdcall dmc_get_axis_plan_time_info(WORD CardNo,WORD axis,double *sum_time, double *remain_time);
|
||
//设置插补单轴最大允许速度值
|
||
DMC_API short __stdcall dmc_set_axis_max_interpo_speed(WORD CardNo,WORD axis,double max_speed);
|
||
//回读插补单轴最大允许速度值
|
||
DMC_API short __stdcall dmc_get_axis_max_interpo_speed(WORD CardNo,WORD axis, double* max_speed);
|
||
|
||
DMC_API short __stdcall dmc_set_axis_max_interpo_speed_enable(WORD CardNo,WORD axis, WORD enable);
|
||
DMC_API short __stdcall dmc_get_axis_max_interpo_speed_enable(WORD CardNo,WORD axis, WORD* enable);
|
||
|
||
DMC_API short __stdcall dmc_set_diagnosis_log_enable(WORD CardNo,WORD Crd, WORD enable);
|
||
DMC_API short __stdcall dmc_get_diagnosis_log_enable(WORD CardNo,WORD Crd, WORD* enable);
|
||
DMC_API short __stdcall dmc_get_diagnosis_log_data(WORD CardNo,WORD Crd);
|
||
|
||
DMC_API short __stdcall nmc_reverse_outbit(WORD CardNo, WORD Channel, WORD NoteID, WORD IoBit,double reverse_time);
|
||
|
||
DMC_API short __stdcall dmc_sine_oscillate(WORD CardNo,WORD Axis,double Amplitude,double Frequency);
|
||
DMC_API short __stdcall dmc_sine_oscillate_stop(WORD CardNo,WORD Axis);
|
||
|
||
DMC_API short __stdcall dmc_set_apf_rotary_cut_init(WORD CardNo, DWORD rotary_cut_id, WORD execute, double rotary_axis_radius, DWORD rotary_axis_knife_num, double feed_axis_radius, double cutlength,double sync_start_pos, double sync_stop_pos, double rot_start_pos, double fed_stop_pos);
|
||
DMC_API short __stdcall dmc_get_apf_rotary_cut_init(WORD CardNo, DWORD rotary_cut_id, WORD* execute, double* rotary_axis_radius, DWORD* rotary_axis_knife_num, double* feed_axis_radius, double* cutlength, double* sync_start_pos, double* sync_stop_pos, double* rot_start_pos, double* fed_stop_pos);
|
||
DMC_API short __stdcall dmc_get_apf_rotary_cut_init_status(WORD CardNo, DWORD rotary_cut_id, WORD* done, WORD* busy, WORD* error , DWORD* error_id);
|
||
DMC_API short __stdcall dmc_apf_rotary_cut_in(WORD CardNo, DWORD rotary_cut_id, WORD execute, WORD rotary_axis, WORD feed_axis);
|
||
DMC_API short __stdcall dmc_get_apf_rotary_cut_in_status(WORD CardNo, DWORD rotary_cut_id, WORD* done, WORD* busy, WORD*error, DWORD* error_id);
|
||
DMC_API short __stdcall dmc_get_apf_rotary_cut_in(WORD CardNo, DWORD rotary_cut_id, WORD* execute,WORD* rotary_axis, WORD* feed_axis);
|
||
DMC_API short __stdcall dmc_apf_rotary_cut_out(WORD CardNo, DWORD rotary_cut_id, WORD execute, WORD rotary_axis);
|
||
DMC_API short __stdcall dmc_get_apf_rotary_cut_out_status(WORD CardNo, DWORD rotary_cut_id, WORD* done, WORD* busy, WORD* error, DWORD* error_id);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_clear_current_mark_mode(WORD CardNo,WORD Crd, WORD mode);
|
||
DMC_API short __stdcall dmc_conti_get_clear_current_mark_mode(WORD CardNo,WORD Crd, WORD* mode);
|
||
DMC_API short __stdcall dmc_conti_clear_current_mark(WORD CardNo,WORD Crd);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_arc_translate_mode(WORD CardNo,WORD Crd, WORD mode);
|
||
DMC_API short __stdcall dmc_conti_get_arc_translate_mode(WORD CardNo,WORD Crd, WORD* mode);
|
||
DMC_API short __stdcall dmc_trace_set_source(WORD CardNo,WORD source);
|
||
|
||
DMC_API short __stdcall nmc_sync_set_profile_unit(WORD CardNo, WORD AxisNum, WORD* AxisList,double* Min_Vel,double* Max_Vel, double* Tacc, double* Tdec, double* Stop_Vel);
|
||
|
||
DMC_API short __stdcall nmc_write_rxpdo_extra_short(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,WORD* Value);
|
||
DMC_API short __stdcall nmc_read_rxpdo_extra_short(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,WORD* Value);
|
||
DMC_API short __stdcall nmc_read_txpdo_extra_short(WORD CardNo,WORD PortNum,WORD address,WORD DataLen,WORD* Value);
|
||
|
||
DMC_API short __stdcall dmc_set_timeout(WORD CardNo, DWORD timems);
|
||
DMC_API short __stdcall nmc_sync_pos_change_mode (WORD CardNo, WORD portno, WORD axis);
|
||
|
||
DMC_API short __stdcall dmc_mc_gear_in_pos(WORD CardNo, WORD slave_axis, WORD master_axis, WORD execute, WORD conti_update, WORD master_source, double ratio_numerator, double ratio_denominator, double master_sync_pos, double slave_sync_pos, double master_start_dist, WORD buffer_mode);
|
||
DMC_API short __stdcall dmc_get_mc_gear_in_pos(WORD CardNo, WORD slave_axis, WORD* master_axis, WORD * execute, WORD * conti_update, WORD * master_source, double * ratio_numerator, double * ratio_denominator, double* master_sync_pos, double* slave_sync_pos, double* master_start_dist, WORD * buffer_mode);
|
||
DMC_API short __stdcall dmc_get_mc_gear_in_pos_status(WORD CardNo, WORD slave_axis, WORD * start_sync, WORD * in_sync, WORD * busy, WORD * active, WORD * cmd_aborted, WORD * error,DWORD* error_id);
|
||
|
||
DMC_API short __stdcall dmc_get_watchdog_trig_status (WORD CardNo, WORD* status);
|
||
DMC_API short __stdcall dmc_reset_watchdog_trig_status (WORD CardNo);
|
||
DMC_API short __stdcall dmc_conti_set_transarc_io_insert_mode (WORD CardNo,WORD Crd, WORD mode);
|
||
DMC_API short __stdcall dmc_conti_get_transarc_io_insert_mode(WORD CardNo,WORD Crd, WORD* mode);
|
||
|
||
DMC_API short __stdcall dmc_multi_axes_motion_sync_pmove_unit(WORD CardNo,WORD axis_num, WORD* axis_list, double* dist_list,double* Min_Vel_list, double* Max_Vel_list, double* Tacc_list, double* Tdec_list, double* stop_Vel_list, double* s_para_list, WORD* posi_mode_list, WORD mode);
|
||
|
||
DMC_API short __stdcall dmc_set_ez_map_input(WORD CardNo,WORD axis,WORD enable,WORD mode,WORD index,WORD sub_index);
|
||
DMC_API short __stdcall dmc_get_ez_map_input(WORD CardNo,WORD axis,WORD *enable,WORD *mode,WORD *index,WORD *sub_index);
|
||
DMC_API short __stdcall nmc_set_etc_el_stop_mode(WORD CardNo,WORD axis,WORD el_control_mode, double diff_pos,DWORD filter);
|
||
|
||
DMC_API short __stdcall dmc_circle_move_center_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double *Cen_Pos,WORD Arc_Dir,long Circle,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_conti_circle_move_center_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Cen_Pos,WORD Arc_Dir,long Circle,WORD posi_mode,long mark);
|
||
DMC_API short __stdcall dmc_set_acuate_angle_config_params(WORD CardNo, WORD Crd, double acuate_angle, double angle_trans_speed, WORD enable);
|
||
DMC_API short __stdcall dmc_get_acuate_angle_config_params(WORD CardNo, WORD Crd, double* acuate_angle, double* angle_trans_speed, WORD* enable);
|
||
DMC_API short __stdcall dmc_set_axes_link_params(WORD CardNo, WORD master, WORD slave);
|
||
DMC_API short __stdcall dmc_get_axes_link_params(WORD CardNo, WORD master, WORD* slave);
|
||
DMC_API short __stdcall dmc_remove_axes_link_params(WORD CardNo, WORD master);
|
||
|
||
DMC_API short __stdcall dmc_set_alm_mode_ex(WORD CardNo,WORD axis,WORD enable,WORD alm_logic,WORD alm_action,WORD alm_all); //新增配置
|
||
DMC_API short __stdcall dmc_get_alm_mode_ex(WORD CardNo,WORD axis,WORD* enable,WORD* alm_logic,WORD* alm_action,WORD* alm_all); //新增配置
|
||
//读取编码器方向
|
||
DMC_API short __stdcall dmc_get_encoder_dir(WORD CardNo, WORD axis,WORD* dir);
|
||
|
||
DMC_API short __stdcall dmc_download_configfile_ex(WORD CardNo,const char *FileName);
|
||
|
||
DMC_API short __stdcall dmc_set_s_profile_config(WORD CardNo, WORD axis, double acc_s_time, double dec_s_time);
|
||
DMC_API short __stdcall dmc_get_s_profile_config(WORD CardNo, WORD axis, double* acc_s_time, double* dec_s_time);
|
||
|
||
DMC_API short __stdcall nmc_set_slave_state(WORD CardNo, WORD SlaveId, WORD SlaveState);
|
||
DMC_API short __stdcall nmc_get_slave_state(WORD CardNo, WORD SlaveId, WORD *SlaveState);
|
||
|
||
DMC_API short __stdcall dmc_sync_pmove_unit(WORD CardNo,WORD axis_num, WORD* axis_list, double* dist_list, WORD* posi_mode_list, WORD mode);
|
||
DMC_API short __stdcall dmc_set_axis_abnormal_mode(WORD CardNo,WORD enable);
|
||
DMC_API short __stdcall dmc_get_axis_abnormal_mode(WORD CardNo,WORD* enable);
|
||
DMC_API short __stdcall dmc_clear_axis_abnormal_state(WORD CardNo,WORD axis,WORD count);
|
||
DMC_API short __stdcall dmc_set_coordinate_abnormal_mode(WORD CardNo,WORD enable);
|
||
DMC_API short __stdcall dmc_get_coordinate_abnormal_mode(WORD CardNo,WORD* enable);
|
||
DMC_API short __stdcall dmc_clear_crd_abnormal_state(WORD CardNo,WORD Crd,WORD count);
|
||
DMC_API short __stdcall dmc_set_coordinate_remainspace_mode(WORD CardNo,WORD Crd,WORD enable);
|
||
DMC_API short __stdcall dmc_get_coordinate_remainspace_mode(WORD CardNo,WORD Crd,WORD* enable);
|
||
DMC_API short __stdcall dmc_hcmp_add_linear_unit(WORD CardNo,WORD hcmp,int count, struct_hs_cmp_info* cmp_str);
|
||
DMC_API short __stdcall dmc_set_axis_handwheel_encoder_filter_frequancy(WORD CardNo, WORD axis,double frequancy);
|
||
DMC_API short __stdcall dmc_get_axis_handwheel_encoder_filter_frequancy(WORD CardNo, WORD axis,double *frequancy);
|
||
|
||
DMC_API short __stdcall nmc_set_slave_alias(WORD CardNo, WORD portnum, WORD auto_address, WORD alias_address);
|
||
DMC_API short __stdcall nmc_get_slave_alias(WORD CardNo, WORD portnum, WORD auto_address, WORD* alias_address);
|
||
|
||
DMC_API short __stdcall dmc_set_pwm_first_pulse_mode(WORD CardNo, WORD pwm_no, WORD enable);
|
||
DMC_API short __stdcall dmc_get_pwm_first_pulse_mode(WORD CardNo, WORD pwm_no, WORD* enable);
|
||
DMC_API short __stdcall dmc_set_pwm_first_pulse_duty(WORD CardNo, WORD pwm_no, double duty);
|
||
DMC_API short __stdcall dmc_get_pwm_first_pulse_duty(WORD CardNo, WORD pwm_no, double* duty);
|
||
|
||
DMC_API short __stdcall dmc_cmp_fifo_set_hcmp2d_pos_ratio(WORD CardNo,WORD Crd, WORD hcmp2d, double xpos_ratio, double ypos_ratio);
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_hcmp2d_pos_ratio(WORD CardNo,WORD Crd, WORD hcmp2d, double * xpos_ratio, double * ypos_ratio);
|
||
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_datasheet_enable (WORD CardNo, WORD axis,WORD enable, int point_num);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_datasheet_enable (WORD CardNo, WORD axis,WORD* enable, int* point_num);
|
||
DMC_API short __stdcall dmc_set_pos_calibrate_config(WORD CardNo, WORD axis,WORD settle_time, double err_band, WORD enable);
|
||
DMC_API short __stdcall dmc_get_pos_calibrate_config(WORD CardNo, WORD axis,WORD* settle_time, double* err_band, WORD* enable);
|
||
|
||
//文件调用
|
||
DMC_API short __stdcall dmc_userlib_loadlibrary(WORD CardNo,const char *pLibname);
|
||
DMC_API short __stdcall dmc_userlib_set_parameter(WORD CardNo, int type, const unsigned char *pParameter,int length);
|
||
DMC_API short __stdcall dmc_userlib_get_parameter(WORD CardNo, int type, unsigned char *pParameter,int length);
|
||
DMC_API short __stdcall dmc_userlib_imd_stop(WORD CardNo,WORD axis);
|
||
|
||
DMC_API short __stdcall dmc_cmp_fifo_get_fpga_receive_point(WORD CardNo,WORD cmp_no, long *receive_point);
|
||
DMC_API short __stdcall dmc_cmp_fifo_check_fpga_clear_status(WORD CardNo,WORD cmp_no, WORD *clr_status, long *clr_point);
|
||
DMC_API short __stdcall nmc_modify_slaveid(WORD CardNo,WORD index,WORD subindex,WORD newindex,const char *FileName);
|
||
|
||
DMC_API short __stdcall dmc_set_home_finish_map(WORD CardNo,WORD axis,WORD enable,WORD mode,WORD index,WORD sub_index,WORD bit_index,WORD bit_logic);
|
||
|
||
DMC_API short __stdcall dmc_get_home_finish_map(WORD CardNo,WORD axis,WORD *enable,WORD *mode,WORD *index,WORD *sub_index,WORD *bit_index,WORD *bit_logic);
|
||
|
||
|
||
DMC_API short __stdcall dmc_get_config_error_info(WORD CardNo,int* axis, int* liner,int* type, int* errorcode);
|
||
|
||
DMC_API short __stdcall dmc_set_t_pmove_extern_dectime(WORD CardNo, WORD axis, DWORD dec_time);
|
||
DMC_API short __stdcall dmc_get_t_pmove_extern_dectime(WORD CardNo, WORD axis, DWORD* dec_time);
|
||
DMC_API short __stdcall dmc_set_trajectory_splicing_error(WORD CardNo, WORD crd, double error);
|
||
DMC_API short __stdcall dmc_get_trajectory_splicing_error(WORD CardNo, WORD crd, double *error);
|
||
|
||
DMC_API short __stdcall dmc_sine_oscillate_set_cycle_num(WORD CardNo, WORD Axis, DWORD cycle_num);
|
||
DMC_API short __stdcall dmc_sine_oscillate_get_cycle_num(WORD CardNo, WORD Axis, DWORD *cycle_num);
|
||
|
||
DMC_API short __stdcall dmc_conti_wait_input_action(WORD CardNo,WORD Crd,WORD bitno,WORD on_off,double TimeOut,WORD action,long mark);
|
||
|
||
DMC_API short __stdcall dmc_line_change_pos_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList, double* TargetPos);
|
||
|
||
DMC_API short __stdcall dmc_arc_move_angle_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Cen_Pos,double Angle,double *Target_Pos,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_arc_move_center_angle_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double *Target_Pos,double *Cen_Pos,double Angle,WORD Arc_Dir,long Circle,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_conti_line_change_pos_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList, double* TargetPos, int mark);
|
||
|
||
DMC_API short __stdcall nmc_sync_pmove_extern_unit(WORD CardNo,WORD AxisNum, WORD* AxisList, double* Dist, double* Max_Vel, WORD Posimode);
|
||
DMC_API short __stdcall dmc_pvt_get_run_index(WORD CardNo, WORD axis, DWORD* index);
|
||
|
||
DMC_API short __stdcall dmc_firmware_auto_update();
|
||
DMC_API short __stdcall dmc_conti_set_blend_distance(WORD CardNo, WORD Crd, WORD Enable, double BlendDistance);
|
||
|
||
DMC_API short __stdcall nmc_set_dc_mode(WORD CardNo, WORD PortNo,WORD mode);
|
||
DMC_API short __stdcall nmc_get_dc_mode(WORD CardNo, WORD PortNo,WORD* mode);
|
||
|
||
DMC_API short __stdcall dmc_set_gear_follow_ratio(WORD CardNo,WORD axis,double ratio);//双Z轴
|
||
DMC_API short __stdcall dmc_get_gear_follow_ratio(WORD CardNo,WORD axis,double* ratio);
|
||
DMC_API short __stdcall dmc_ltc_set_outbit(WORD CardNo,WORD latch,WORD enable,WORD bitno,WORD logic,double delaytime_s,double outtime_s);
|
||
DMC_API short __stdcall dmc_ltc_get_outbit(WORD CardNo,WORD latch,WORD* enable,WORD* bitno,WORD* logic,double* delaytime_s,double* outtime_s);
|
||
|
||
DMC_API short __stdcall dmc_get_idle_crd_index(WORD CardNo);
|
||
DMC_API short __stdcall dmc_get_position_virtual(WORD CardNo,WORD axis,double* pos);
|
||
|
||
|
||
DMC_API short __stdcall dmc_check_encoder_done(WORD CardNo, WORD axis, WORD * state, double * EncoderPos);
|
||
DMC_API short __stdcall dmc_set_check_target_encoder(WORD CardNo, WORD axis, WORD TargetCheckEnable, double TargetError, double TargetCheckTime_s);
|
||
|
||
DMC_API short __stdcall dmc_get_check_target_encoder(WORD CardNo, WORD axis, WORD * TargetCheckEnable, double * TargetError, double * TargetCheckTime_s)
|
||
|
||
;
|
||
DMC_API short __stdcall dmc_set_check_inp_encoder(WORD CardNo, WORD axis, WORD InpCheckEnable,double InpError, double InpCheckTime_s);
|
||
DMC_API short __stdcall dmc_get_check_inp_encoder(WORD CardNo, WORD axis, WORD * InpCheckEnable,double * InpError, double * InpCheckTime_s);
|
||
DMC_API short __stdcall dmc_set_connect_to_encoder(WORD CardNo, WORD axis, WORD enable,double error);
|
||
DMC_API short __stdcall dmc_get_connect_to_encoder(WORD CardNo, WORD axis, WORD *enable,double *error);
|
||
|
||
DMC_API short __stdcall dmc_set_robot_config(WORD CardNo, WORD Crd, short robot_type, short elbow, short joint_num, short* joint_list,double* rx, double* tx, double* rz, double* tz);
|
||
DMC_API short __stdcall dmc_get_robot_config(WORD CardNo, WORD Crd, short* robot_type, short* elbow, short* joint_num, short* joint_list,double* rx, double* tx, double* rz, double* tz);
|
||
DMC_API short __stdcall dmc_set_robot_enable(WORD CardNo, WORD Crd, short user_crd, short tool_crd, short enable);
|
||
DMC_API short __stdcall dmc_robot_ptp_move(WORD CardNo, WORD Crd, short joint_num, short* joint_list, double* joint_pos);
|
||
DMC_API short __stdcall dmc_get_robot_sts(WORD CardNo, WORD Crd, short* complete, short* user_crd, short* tool_crd, short* enable);
|
||
DMC_API short __stdcall dmc_get_robot_pos(WORD CardNo, WORD Crd, double* pos);
|
||
DMC_API short __stdcall dmc_set_robot_kinematics_calib(WORD CardNo, WORD Crd, double* delta_rx, double* delta_tx, double* delta_rz, double* delta_tz);
|
||
DMC_API short __stdcall dmc_get_robot_kinematics_calib(WORD CardNo, WORD Crd, double* delta_rx, double* delta_tx, double* delta_rz, double* delta_tz);
|
||
DMC_API short __stdcall dmc_robot_kinematics_calib(WORD CardNo, WORD Crd, double* ja, double* jb, double* jc, double* jd, double* je, double* jf, double* jg, double* jh, double* ji, double* delta_x, double* delta_y, double* delta_z);
|
||
DMC_API short __stdcall dmc_set_robot_user_coordinate(WORD CardNo, WORD Crd, short user_crd, short complete, double* mat);
|
||
DMC_API short __stdcall dmc_get_robot_user_coordinate(WORD CardNo, WORD Crd, short user_crd, short* complete, double* mat);
|
||
DMC_API short __stdcall dmc_robot_user_coordinate(WORD CardNo, WORD Crd, short user_crd, double* p0, double* px, double* py);
|
||
DMC_API short __stdcall dmc_set_robot_tool_coordinate(WORD CardNo, WORD Crd, short tool_crd, short complete, double* mat);
|
||
DMC_API short __stdcall dmc_get_robot_tool_coordinate(WORD CardNo, WORD Crd, short tool_crd, short* complete, double* mat);
|
||
DMC_API short __stdcall dmc_robot_tool_coordinate(WORD CardNo, WORD Crd, short tool_crd, double* p1, double* p2, double* p3, double* p4, double* p5, double* p6, double* p0, double* px, double* py);
|
||
DMC_API short __stdcall dmc_robot_workspace_detect(WORD CardNo, WORD Crd, double* pos);
|
||
|
||
|
||
DMC_API short __stdcall dmc_conti_set_wait_flag(WORD CardNo, WORD Crd, int mark, WORD wait_flag);
|
||
DMC_API short __stdcall dmc_conti_get_wait_flag(WORD CardNo, WORD Crd, int * mark, WORD * wait_flag);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_arc_blend_enable(WORD CardNo, WORD Crd, WORD Enable);
|
||
DMC_API short __stdcall dmc_conti_get_arc_blend_enable(WORD CardNo, WORD Crd, WORD * Enable);
|
||
|
||
DMC_API short __stdcall dmc_t_pmove_extern_unit_ex(WORD CardNo, WORD axis, double MidPos,double TargetPos, double Min_Vel,double Max_Vel, double stop_Vel, double acc,double dec,WORD posi_mode);
|
||
|
||
DMC_API short __stdcall dmc_check_success_pulse_ex(WORD CardNo,WORD axis,int delay_ms);
|
||
DMC_API short __stdcall dmc_check_success_encoder_ex(WORD CardNo,WORD axis,int delay_ms);
|
||
|
||
DMC_API short __stdcall dmc_cam_write_points_packet(WORD CardNo,WORD cam_table_id, WORD cam_point_num, double s_range_up, double s_range_dn, double * master_pos, double * slave_pos, double * slave_vel, double * slave_acc, double * slave_jerk, WORD* type);
|
||
|
||
DMC_API short __stdcall dmc_cam_read_points_packet(WORD CardNo,WORD cam_table_id, WORD* cam_point_num, double * s_range_up, double * s_range_dn, double * master_pos, double * slave_pos, double * slave_vel, double * slave_acc, double * slave_jerk, WORD* type);
|
||
|
||
DMC_API short __stdcall dmc_set_pwm_output_extern(WORD CardNo, WORD pwm, WORD enable, double width_us, double frequency, DWORD number)
|
||
;
|
||
|
||
DMC_API short __stdcall dmc_spline_pmove(WORD CardNo, WORD axis, double pos, double vs, double vm, double ve, double as, double ae, double rmd_as, double rmd_ae, int num_ts,int num_tm,int num_te, double cur_as, double cur_ae, WORD posi_mode);
|
||
|
||
DMC_API short __stdcall dmc_set_plan_mode(WORD CardNo, WORD axis, WORD mode)
|
||
;
|
||
DMC_API short __stdcall dmc_get_plan_mode(WORD CardNo, WORD axis, WORD* mode)
|
||
;
|
||
|
||
DMC_API short __stdcall dmc_set_emg_lock(WORD CardNo, WORD enable, WORD bit_no, WORD level,DWORD out_mark, DWORD out_level);
|
||
DMC_API short __stdcall dmc_get_emg_lock(WORD CardNo, WORD * enable, WORD * bit_no, WORD * level,DWORD* out_mark, DWORD* out_level);
|
||
DMC_API short __stdcall dmc_emg_unlock(WORD CardNo);
|
||
DMC_API short __stdcall dmc_emg_lock_status(WORD CardNo, WORD * lock_status, WORD * lock_type);
|
||
|
||
DMC_API short __stdcall dmc_set_vector_profile_extern(WORD CardNo,WORD Crd,double Min_Vel,double Max_Vel,double Acc,double Dec,double Ajerk,double Djerk,double stop_vel);
|
||
DMC_API short __stdcall dmc_get_vector_profile_extern(WORD CardNo,WORD Crd,double *Min_Vel,double *Max_Vel,double *Acc,double *Dec,double *Ajerk,double *Djerk,double *stop_vel);
|
||
DMC_API short __stdcall dmc_set_vector_plan_mode(WORD CardNo, WORD Crd, WORD mode)
|
||
;
|
||
DMC_API short __stdcall dmc_get_vector_plan_mode(WORD CardNo, WORD Crd, WORD* mode)
|
||
;
|
||
|
||
DMC_API short __stdcall nmc_set_data_offset_time(WORD CardNo, int offset_us);
|
||
DMC_API short __stdcall nmc_get_data_offset_time(WORD CardNo, int * offset_us);
|
||
DMC_API short __stdcall dmc_check_done_multicoor_extern(WORD CardNo, WORD Crd, WORD * crd_state, DWORD * crd_stop_reason, DWORD * axis_stop_reason);
|
||
DMC_API short __stdcall dmc_get_error_description(int errcocode, char* description);
|
||
DMC_API short __stdcall dmc_write_outport_mask(WORD CardNo, WORD port, DWORD mask, DWORD state, DWORD reverse_time_ms);
|
||
|
||
DMC_API short __stdcall dmc_set_pso_output_delay(WORD CardNo, WORD axis, DWORD delay_cycle);
|
||
DMC_API short __stdcall dmc_get_pso_output_delay(WORD CardNo, WORD axis, DWORD* delay_cycle);
|
||
DMC_API short __stdcall dmc_set_gap_cmp_space(WORD CardNo, WORD crd, double space);
|
||
DMC_API short __stdcall dmc_get_gap_cmp_space(WORD CardNo, WORD crd, double* space);
|
||
|
||
DMC_API short __stdcall nmc_ecat_read_slave_register(WORD CardNo, WORD wSlaveAddress, WORD wRegisterOffset, WORD wLen, char * pdwData);
|
||
DMC_API short __stdcall nmc_ecat_write_slave_register(WORD CardNo, WORD wSlaveAddress, WORD wRegisterOffset, WORD wLen, char * pdwData);
|
||
|
||
DMC_API short __stdcall dmc_set_inp_map_input(WORD CardNo, WORD axis, WORD enable, WORD index, WORD sub_index, WORD bit_index, WORD inp_validvalue, WORD connect2checkdone);
|
||
DMC_API short __stdcall dmc_get_inp_map_input(WORD CardNo, WORD axis, WORD* enable, WORD* index, WORD* sub_index, WORD* bit_index, WORD* inp_validvalue, WORD* connect2checkdone);
|
||
DMC_API short __stdcall dmc_get_pwm_state(WORD CardNo, WORD channel, WORD* state);
|
||
|
||
DMC_API short __stdcall dmc_rtcp_rotation_axis_transform_param(WORD CardNo, WORD axis, double rod_len);
|
||
DMC_API short __stdcall dmc_rtcp_get_rotation_axis_transform_param(WORD CardNo, WORD axis, double* rod_len);
|
||
DMC_API short __stdcall dmc_rtcp_rotation_axis_transform_enable(WORD CardNo, WORD axis, WORD enable);
|
||
DMC_API short __stdcall dmc_rtcp_get_rotation_axis_transform_enable(WORD CardNo, WORD axis, WORD* enable);
|
||
DMC_API short __stdcall dmc_circle_move_3point_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double *Mid_Pos, long Circle,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_conti_circle_move_3point_unit(WORD CardNo,WORD Crd,WORD AxisNum,WORD* AxisList,double* Target_Pos,double* Mid_Pos, long Circle,WORD posi_mode,long mark);
|
||
|
||
DMC_API short __stdcall dmc_get_cam_in(WORD CardNo, WORD slave_axis, WORD* master_axis, WORD*execute, WORD*conti_update,WORD* cam_table, WORD* periodic, WORD*master_abs, WORD*slave_abs, double* master_offset, double*slave_offset,double* master_scaling, double*slave_scaling,double*master_start_dist,double*master_sync_pos,double* active_pos, WORD* acvive_mode ,WORD* start_mode, double* velocity, double* acc, double* dec, double* jerk, WORD* master_source, WORD* buffer_mode);
|
||
DMC_API short __stdcall dmc_mc_phasing(WORD CardNo, WORD slave_axis,WORD master_axis, WORD execute, double phase_shift, double velocity,double acc, double dec,double jerk);
|
||
DMC_API short __stdcall dmc_get_mc_phasing_status(WORD CardNo, WORD slave_axis, WORD * done, WORD * busy, WORD * cmd_aborted, WORD * error,DWORD* error_id);
|
||
DMC_API short __stdcall dmc_get_mc_phasing(WORD CardNo, WORD slave_axis,WORD* master_axis, WORD* execute, double* phase_shift, double* velocity,double* acc, double* dec ,double* jerk);
|
||
|
||
DMC_API short __stdcall dmc_set_axis_pwm_follow_speed(WORD CardNo, WORD pwm_no, WORD axis, WORD mode, double max_vel, double min_vel,double max_value, double out_value, double min_value,WORD min_ctl_mode);
|
||
DMC_API short __stdcall dmc_get_axis_pwm_follow_speed(WORD CardNo, WORD pwm_no, WORD* axis, WORD* mode, double* max_vel, double* min_vel,double* max_value, double* out_value, double* min_value,WORD* min_ctl_mode);
|
||
DMC_API short __stdcall dmc_set_axis_pwm_follow_speed_enable(WORD CardNo, WORD pwm_no, WORD enable);
|
||
DMC_API short __stdcall dmc_get_axis_pwm_follow_speed_enable(WORD CardNo, WORD pwm_no, WORD* enable);
|
||
|
||
DMC_API short __stdcall dmc_umove_unit(WORD CardNo, WORD group, WORD mode, WORD sources, WORD io_index, WORD io_value,WORD up_axis,double up_pos, double up_safe_distance, WORD move_num, WORD* move_axis_list, double* move_pos,double* move_safe_distance,WORD down_axis, double down_pos, WORD posi_mode);
|
||
DMC_API short __stdcall dmc_get_umove_runsts(WORD CardNo, WORD group, WORD* runsts);
|
||
DMC_API short __stdcall dmc_umove_stop(WORD CardNo, WORD group);
|
||
|
||
DMC_API short __stdcall dmc_set_knife_positioned(WORD CardNo, WORD Crd, double SecondVel, double SecondPos);
|
||
DMC_API short __stdcall dmc_get_knife_positioned(WORD CardNo, WORD Crd, double* SecondVel, double* SecondPos);
|
||
DMC_API short __stdcall dmc_set_knife_positioned_enable(WORD CardNo, WORD Crd, WORD enable);
|
||
DMC_API short __stdcall dmc_get_knife_positioned_enable(WORD CardNo, WORD Crd, WORD* enable);
|
||
DMC_API short __stdcall dmc_return_to_zero(WORD CardNo, WORD axis);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_lookahead_path_error(WORD CardNo, WORD Crd, double patherr);
|
||
DMC_API short __stdcall dmc_conti_get_lookahead_path_error(WORD CardNo, WORD Crd, double *patherr);
|
||
DMC_API short __stdcall dmc_conti_safe_pause_list(WORD CardNo, WORD Crd, WORD safe_axis_num, WORD *safe_axis_list, double *distance, double *vstart, double *vsteady, double *vend, double *acc_time, double *dec_time, WORD posi_mode);
|
||
DMC_API short __stdcall dmc_set_axis_da_follow_speed(WORD CardNo, WORD da_channel, WORD axis, WORD mode, double max_vel,double min_vel ,double max_value, double min_value, double offset);
|
||
DMC_API short __stdcall dmc_get_axis_da_follow_speed(WORD CardNo, WORD da_channel, WORD*axis, WORD*mode, double* max_vel,double * min_vel, double* max_value, double* min_value, double*offset);
|
||
DMC_API short __stdcall dmc_set_axis_da_follow_speed_enable(WORD CardNo, WORD da_channel, WORD enable);
|
||
DMC_API short __stdcall dmc_get_axis_da_follow_speed_enable(WORD CardNo, WORD da_channel, WORD*enable);
|
||
DMC_API short __stdcall dmc_conti_force_set_position(WORD CardNo, WORD Crd, WORD axis_num, WORD*axis_list, double*position);
|
||
|
||
DMC_API short __stdcall dmc_set_axis_da_follow_speed_extern(WORD CardNo, WORD da_channel, WORD axis, WORD mode, WORD segment, double*vel,double* value);
|
||
DMC_API short __stdcall dmc_get_axis_da_follow_speed_extern(WORD CardNo, WORD da_channel, WORD*axis, WORD*mode, WORD *segment, double* vel,double* value);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_node_da_enable(WORD CardNo,WORD Crd, WORD node_id, WORD channel, WORD enable);
|
||
DMC_API short __stdcall dmc_conti_set_node_da_output(WORD CardNo,WORD Crd, WORD node_id, WORD channel, double Vout);
|
||
DMC_API short __stdcall dmc_conti_gantry_move(WORD CardNo,WORD Crd, WORD master_axis, WORD slave_num, WORD* slave_axis_list,WORD on_off);
|
||
DMC_API short __stdcall dmc_conti_set_gantry_error_protect_unit(WORD CardNo,WORD Crd, WORD master_axis, double dstp_err, double emg_err, WORD on_off);
|
||
|
||
DMC_API short __stdcall dmc_m_add_sigaxis_moveseg_data_ex(WORD CardNo, WORD group, WORD Axis, double Target_pos, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_wait_event_data(WORD CardNo, WORD group, WORD event, WORD num,WORD CompareOperator, double target_value, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_trigger_data(WORD CardNo, WORD group, WORD mode, WORD num, double Target_Value, DWORD mark);
|
||
DMC_API short __stdcall dmc_m_add_time_delay(WORD CardNo, WORD group, double Time_delay, DWORD mark);
|
||
|
||
DMC_API short __stdcall dmc_set_feedforward_profile(WORD CardNo,WORD Axis,double vel_offset_coef,double tor_offset_coef);
|
||
DMC_API short __stdcall dmc_get_feedforward_profile(WORD CardNo,WORD Axis,double* vel_offset_coef,double* tor_offset_coef);
|
||
DMC_API short __stdcall dmc_set_modulo_profile(WORD CardNo, WORD axis,WORD enable,double Modulo_Vel);
|
||
DMC_API short __stdcall dmc_get_modulo_profile(WORD CardNo, WORD axis,WORD *enable,double *Modulo_Vel);
|
||
|
||
DMC_API short __stdcall dmc_line_mutli_line(WORD CardNo, WORD Crd, WORD AxisNum, WORD *AxisList, WORD PointNum, double(*pos)[8], WORD wait_mark, WORD wait_enable, WORD posi_mode);
|
||
|
||
DMC_API short __stdcall dmc_conti_line_unit_G0 (WORD CardNo, WORD Crd, WORD AxisNum, WORD *AxisList, double*pPosList, WORD posi_mode, int mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_center_unit_G0 (WORD CardNo, WORD Crd, WORD AxisNum, WORD *AxisList, double* Target_Pos, double* Cen_Pos,WORD Arc_Dir, int Circle, WORD posi_mode, int mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_radius_unit_G0 (WORD CardNo, WORD Crd, WORD AxisNum, WORD *AxisList, double* Target_Pos, WORD Arc_Radius, WORD Arc_Dir, int Circle, WORD posi_mode, int mark);
|
||
DMC_API short __stdcall dmc_conti_arc_move_3points_unit_G0 (WORD CardNo, WORD Crd, WORD AxisNum, WORD *AxisList, double* Target_Pos, double* Mid_Pos, int Circle, WORD posi_mode, int mark);
|
||
|
||
DMC_API short __stdcall dmc_read_outport_array(WORD CardNo, uint32 portNum, uint32 *status);
|
||
DMC_API short __stdcall dmc_read_inport_array(WORD CardNo, uint32 portNum, uint32 *status);
|
||
|
||
DMC_API short __stdcall dmc_m_set_wait_flag(WORD CardNo, WORD Group, WORD FlagNo, WORD Wait_Flag);
|
||
DMC_API short __stdcall dmc_m_get_wait_flag(WORD CardNo, WORD Group, WORD FlagNo, WORD* Wait_Flag);
|
||
|
||
DMC_API short __stdcall dmc_set_backlash_unit_extern(WORD CardNo, WORD axis,double backlash, WORD mode, short dir,double vel,double acc,WORD time_ms);
|
||
DMC_API short __stdcall dmc_get_backlash_unit_extern(WORD CardNo, WORD axis,double *backlash, WORD*mode, short* dir,double* vel, double* acc,WORD* time_ms);
|
||
|
||
DMC_API short __stdcall nmc_write_rxpdo(WORD CardNo, WORD portnum, WORD slave_station_addr, WORD index, WORD subindex, WORD bitlength, BYTE* data);
|
||
DMC_API short __stdcall nmc_read_rxpdo(WORD CardNo, WORD portnum, WORD slave_station_addr, WORD index, WORD subindex, WORD bitlength, BYTE* data);
|
||
DMC_API short __stdcall nmc_read_txpdo(WORD CardNo, WORD portnum, WORD slave_station_addr, WORD index, WORD subindex, WORD bitlength, BYTE* data);
|
||
|
||
DMC_API short __stdcall dmc_syncmotion_set_enable(WORD CardNo, WORD slaveAxisNo, WORD enable);
|
||
DMC_API short __stdcall dmc_syncmotion_get_enable(WORD CardNo, WORD slaveAxisNo, WORD* enable);
|
||
DMC_API short __stdcall dmc_set_syncmotion_configparams (WORD CardNo, WORD masterAxisNo, WORD slaveAxisNo, WORD follow_src_sel, WORD master_type, double scale_coe, WORD dir_rev);
|
||
DMC_API short __stdcall dmc_get_syncmotion_configparams (WORD CardNo, WORD slaveAxisNo, WORD* masterAxisNo, WORD* follow_src_sel, WORD* master_type, double*scale_coe, WORD*dir_rev);
|
||
DMC_API short __stdcall dmc_syncmotion_cancle(WORD CardNo, WORD slaveAxisNo, double dec, double jerk);
|
||
DMC_API short __stdcall dmc_syncmotion_updatescale(WORD CardNo, WORD slaveAxisNo, double scale_coe);
|
||
|
||
DMC_API short __stdcall dmc_set_alm_control_function(WORD CardNo,WORD axis,WORD control_function);
|
||
DMC_API short __stdcall dmc_get_alm_control_function(WORD CardNo,WORD axis,WORD* control_function);
|
||
|
||
DMC_API short __stdcall dmc_calculate_axis_plan_time(WORD CardNo, double Dis,double Start_Vel, double Max_Vel,double End_Vel,double Tacc, double Tdec,double sTime, double* Tsum);
|
||
|
||
|
||
|
||
DMC_API short __stdcall dmc_conti_set_coordinate_params(WORD CardNo, WORD Crd, double T, double radius, double limit_vel);
|
||
DMC_API short __stdcall dmc_conti_get_coordinate_params(WORD CardNo, WORD Crd, double* T, double* radius,double* limit_vel);
|
||
DMC_API short __stdcall dmc_conti_set_corner_angle_param(WORD CardNo, WORD Crd, double dec_angle, double stop_angle, WORD enable);
|
||
DMC_API short __stdcall dmc_conti_get_corner_angle_param(WORD CardNo, WORD Crd, double* dec_angle, double* stop_angle, WORD* enable);
|
||
DMC_API short __stdcall dmc_conti_set_transvelocity_mode(WORD CardNo, WORD Crd, WORD transvel_mode);
|
||
DMC_API short __stdcall dmc_conti_get_transvelocity_mode(WORD CardNo, WORD Crd, WORD* transvel_mode);
|
||
|
||
DMC_API short __stdcall dmc_send_pack(WORD CardNo, WORD mode, WORD length,char* pBuf);
|
||
|
||
DMC_API short __stdcall dmc_conti_delay_set_mode(WORD CardNo, WORD Crd, WORD mode);
|
||
|
||
|
||
|
||
DMC_API short __stdcall dmc_conti_delay_get_mode(WORD CardNo, WORD Crd, WORD* mode);
|
||
|
||
|
||
DMC_API short __stdcall nmc_set_alias_address_enable(WORD CardNo, WORD enable);
|
||
|
||
|
||
DMC_API short __stdcall nmc_get_alias_address_enable(WORD CardNo, WORD* enable, WORD* states);
|
||
|
||
|
||
DMC_API short __stdcall dmc_get_system_version(WORD CardNo, char *SystemVersion);
|
||
|
||
DMC_API short __stdcall dmc_set_track_config_unit(WORD CardNo, WORD m_slave_axis_num, WORD* m_master_axis, WORD* m_slave_axis, WORD* m_start_distance, WORD* m_coordinate_axis, double* m_angle, double* m_master_vel, double* m_start_time, double* m_finish_time, double* m_sync_start_pos, double* m_sync_end_pos, double* m_finish_pos);
|
||
DMC_API short __stdcall dmc_get_track_config_unit(WORD CardNo, WORD slave_axis,WORD* m_track_state);
|
||
DMC_API short __stdcall dmc_add_move_config_unit(WORD CardNo, WORD add_axis, WORD added_axis, WORD enable);
|
||
|
||
DMC_API short __stdcall nmc_get_same_alias_address_slaves(WORD CardNo, WORD* SlaveNum, WORD* SlaveList);
|
||
|
||
DMC_API short __stdcall dmc_input_shaper_on(WORD CardNo,WORD axis, double* cnvA,DWORD* cnvT,WORD num);
|
||
|
||
DMC_API short __stdcall dmc_input_shaper_off (WORD CardNo,WORD axis);
|
||
|
||
DMC_API short __stdcall dmc_get_input_shaper_status(WORD CardNo, WORD axis ,WORD* status);
|
||
|
||
DMC_API short __stdcall dmc_set_input_shaper_compesation_enable(WORD CardNo,WORD axis, WORD enable);
|
||
|
||
DMC_API short __stdcall dmc_get_input_shaper_compesation_enable(WORD CardNo,WORD axis, WORD* enable);
|
||
|
||
DMC_API short __stdcall dmc_set_input_shaper_compesation(WORD CardNo,WORD axis, double T,double freq,double zeta,double alpha);
|
||
|
||
DMC_API short __stdcall dmc_get_input_shaper_compesation(WORD CardNo,WORD axis, double* T,double* freq,double* zeta,double* alpha);
|
||
DMC_API short __stdcall dmc_set_input_shaper_compesation_error(WORD CardNo, WORD axis, double delay_T, double pos_error);
|
||
|
||
DMC_API short __stdcall dmc_get_input_shaper_compesation_error(WORD CardNo, WORD axis, double* delay_T, double* pos_error);
|
||
|
||
DMC_API short __stdcall dmc_m_add_sigaxis_moveseg_data_multi(WORD CardNo, WORD group, WORD AxisNum, WORD* AxisList, double* Target_pos, uint32* mark);
|
||
DMC_API short __stdcall dmc_set_func_enable(WORD CardNo, WORD mode, WORD enable);
|
||
DMC_API short __stdcall dmc_get_func_enable(WORD CardNo, WORD mode, WORD* enable);
|
||
DMC_API short __stdcall nmc_set_home_profile_acc(WORD CardNo ,WORD axis,WORD home_mode,double Low_Vel, double High_Vel,double Tacc,double Tdec,double offsetpos );
|
||
DMC_API short __stdcall nmc_get_home_profile_acc(WORD CardNo,WORD axis,WORD* home_mode,double* Low_Vel,double* High_Vel,double* Tacc,double* Tdec,double* Offsetpos);
|
||
DMC_API short __stdcall dmc_get_ad_input_append(WORD CardNo,WORD Channel, double* Vout);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_pwm_output_extern(WORD CardNo, WORD Crd, WORD pwm_no, WORD enable, double width_us, double frequency,uint32 number);
|
||
DMC_API short __stdcall dmc_set_pwm_mode(WORD CardNo, WORD pwm_no, WORD startmode, WORD stopmode);
|
||
DMC_API short __stdcall dmc_get_pwm_mode (WORD CardNo, WORD pwm_no, WORD* startmode, WORD* stopmode);
|
||
DMC_API short __stdcall dmc_conti_set_profile_unit(WORD CardNo,WORD Crd,double Min_Vel,double Max_vel,double Tacc,double Tdec,double Stop_Vel);
|
||
DMC_API short __stdcall dmc_conti_pmove_extern_unit(WORD CardNo, WORD Crd, WORD axis, double dist, double Min_Vel, double Max_Vel, double Tacc, double Tdec, double Stop_Vel, WORD posi_mode, WORD mode, int mark);
|
||
DMC_API short __stdcall dmc_conti_pack_on(WORD CardNo);
|
||
DMC_API short __stdcall dmc_conti_pack_off(WORD CardNo);
|
||
DMC_API short __stdcall dmc_conti_pack_flush(WORD CardNo);
|
||
|
||
DMC_API short __stdcall dmc_sine_oscillate_extern(WORD CardNo,WORD Axis,double Amplitude,double Frequency,double cycle,WORD param);
|
||
DMC_API short __stdcall dmc_sine_oscillate_extern_unit(WORD CardNo,WORD Axis,double Amplitude,double Frequency,double cycle,WORD param);
|
||
DMC_API short __stdcall dmc_write_outport_array(WORD CardNo, uint32 portNum, uint32 *status);
|
||
DMC_API short __stdcall dmc_conti_set_node_od(WORD CardNo,WORD Crd,WORD NodeNum, WORD Index,WORD SubIndex,WORD ValLength, uint32 Value);
|
||
DMC_API short __stdcall dmc_m_add_trigger_set_od(WORD CardNo,WORD Group,WORD NodeNum, WORD Index,WORD SubIndex,WORD ValLength,uint32 Value, uint32 Mark);
|
||
DMC_API short __stdcall dmc_conti_set_rxpdo_extra(WORD CardNo,WORD Crd,WORD Address, WORD DataLen,WORD Mode,WORD ModeVal,uint32 Value);
|
||
DMC_API short __stdcall dmc_m_add_trigger_set_rxpdo_extra(WORD CardNo,WORD Group,WORD Address, WORD DataLen,WORD Mode,WORD ModeVal,uint32 Value,uint32 Mark);
|
||
|
||
DMC_API short __stdcall dmc_set_profile_limit_by_axis(WORD CardNo, WORD axis, WORD enable);
|
||
DMC_API short __stdcall dmc_get_profile_limit_by_axis(WORD CardNo, WORD axis, WORD* enable);
|
||
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_2D_config_unit(WORD CardNo, WORD axis, WORD* ref_axis,double* ref_axis_start_pos, double* ref_axis_length,WORD* ref_axis_segment, double* Compos);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_2D_config_unit(WORD CardNo, WORD axis, WORD* ref_axis,double* ref_axis_start_pos, double* ref_axis_length, WORD* ref_axis_segment, double* Compos);
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_2D_angle_unit(WORD CardNo, WORD axis, WORD*ref_axis, double* ref_axis_start_pos, double* ref_axis_length, double angle);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_2D_angle_unit(WORD CardNo, WORD axis, WORD*ref_axis, double* ref_axis_start_pos, double* ref_axis_length, double *angle);
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_2D_enable(WORD CardNo, WORD axis, WORD mode, WORD enable);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_2D_enable(WORD CardNo, WORD axis, WORD *mode, WORD *enable);
|
||
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_2D_config_unit_ex(WORD CardNo, WORD table_index, WORD comp_axis, WORD* ref_axis, double* ref_axis_start_pos, double* ref_axis_length, WORD* ref_axis_segment, double* value);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_2D_config_unit_ex(WORD CardNo, WORD table_index, WORD* comp_axis, WORD* ref_axis, double* ref_axis_start_pos, double* ref_axis_length, WORD* ref_axis_segment, double* value);
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_2D_angle_unit_ex(WORD CardNo, WORD table_index, WORD comp_axis, WORD* ref_axis, double* ref_axis_start_pos, double* ref_axis_length, double angle);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_2D_angle_unit_ex(WORD CardNo, WORD table_index, WORD* comp_axis, WORD* ref_axis, double* ref_axis_start_pos, double* ref_axis_length, double *angle);
|
||
DMC_API short __stdcall dmc_set_leadscrew_comp_2D_enable_ex(WORD CardNo, WORD table_index, WORD mode, WORD enable);
|
||
DMC_API short __stdcall dmc_get_leadscrew_comp_2D_enable_ex(WORD CardNo, WORD table_index, WORD* mode, WORD* enable);
|
||
|
||
//ip地址
|
||
DMC_API short __stdcall dmc_set_ipaddr( WORD CardNo,const char* IpAddr);
|
||
DMC_API short __stdcall dmc_get_ipaddr( WORD CardNo,char* IpAddr);
|
||
|
||
DMC_API short __stdcall dmc_clear_io_action(WORD CardNo,WORD Crd,WORD IoMask, WORD Mode);
|
||
|
||
DMC_API short __stdcall dmc_m_remain_space(WORD CardNo, WORD Crd, uint32* data);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_trans_arc_speed_mode(WORD CardNo, WORD Crd, WORD mode);
|
||
DMC_API short __stdcall dmc_conti_get_trans_arc_speed_mode(WORD CardNo, WORD Crd, WORD *mode);
|
||
|
||
DMC_API short __stdcall dmc_conti_set_node_da_follow_speed(WORD CardNo, WORD Crd, WORD node_id, WORD da_no, double MaxVel, double MaxValue, double acc_offset, double dec_offset, double acc_dist, double dec_dist);
|
||
DMC_API short __stdcall dmc_conti_get_node_da_follow_speed(WORD CardNo, WORD Crd, WORD node_id, WORD da_no, double* MaxVel, double* MaxValue, double* acc_offset, double* dec_offset, double* acc_dist, double* dec_dist);
|
||
DMC_API short __stdcall dmc_m_set_factor_error(WORD CardNo, WORD axis, WORD enable, double Positive_error, double Negative_error, WORD retain);
|
||
|
||
DMC_API short __stdcall dmc_rAxis_comp_config(WORD CardNo,short axis, short enable, int cnt, double *angle, double *xPos, double *yPos);
|
||
DMC_API short __stdcall dmc_rAxis_comp_loop(WORD CardNo,short axis, short mode, double angle, double xPos, double yPos, double *new_xPos, double *new_yPos);
|
||
|
||
DMC_API short __stdcall dmc_pmove_pro_unit(WORD CardNo, WORD axis_no, double pos, WORD pos_mode, WORD plan_mode, unsigned char* vel_param,unsigned char* plan_result);
|
||
|
||
DMC_API short __stdcall dmc_conti_delay_node_da_follow_to_start(WORD CardNo, WORD Crd, WORD node_id, WORD da_no, WORD delay_mode, double delay_value, double min_value, double max_value, double period);
|
||
DMC_API short __stdcall dmc_conti_ahead_node_da_follow_to_stop(WORD CardNo, WORD Crd, WORD node_id, WORD da_no, WORD ahead_mode, double ahead_value, double min_value, double max_value, double period);
|
||
|
||
DMC_API short __stdcall dmc_printall_time();
|
||
DMC_API short __stdcall dmc_clear_time();
|
||
|
||
DMC_API short __stdcall dmc_get_pmove_consumed_time (WORD CardNo,WORD* time_receive, WORD* time_process, WORD* time_send);
|
||
|
||
DMC_API short __stdcall dmc_t_pmove_extern_unit_acc(WORD CardNo, WORD axis, double MidPos,double TargetPos, double Min_Vel,double Max_Vel, double stop_Vel, double acc,double dec,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_t_pmove_extern_acc(WORD CardNo, WORD axis, double MidPos,double TargetPos, double Min_Vel,double Max_Vel, double stop_Vel, double acc,double dec,WORD posi_mode);
|
||
DMC_API short __stdcall dmc_t_pmove_extern_softstart_unit_acc(WORD CardNo, WORD axis, double MidPos, double TargetPos, double start_Vel, double Max_Vel, double stop_Vel, DWORD delay_ms, double Max_Vel2,double stop_vel2, double acc_time, double dec_time, WORD posi_mode);
|
||
DMC_API short __stdcall dmc_t_pmove_extern_softstart_acc(WORD CardNo, WORD axis, double MidPos, double TargetPos, double start_Vel, double Max_Vel, double stop_Vel, DWORD delay_ms, double Max_Vel2,double stop_vel2, double acc_time, double dec_time, WORD posi_mode);
|
||
DMC_API short __stdcall dmc_change_speed_unit_acc(WORD CardNo,WORD axis, double New_Vel,double Taccdec);
|
||
DMC_API short __stdcall dmc_change_speed_acc(WORD CardNo,WORD axis,double Curr_Vel,double Taccdec);
|
||
|
||
DMC_API short __stdcall dmc_set_node_da_follow_speed_extern(WORD CardNo, WORD node_id, WORD da_channel, WORD axis, WORD mode, WORD segment, double*vel,double*value);
|
||
DMC_API short __stdcall dmc_get_node_da_follow_speed_extern(WORD CardNo, WORD node_id, WORD da_channel, WORD*axis, WORD*mode, WORD *segment, double* vel,double* value);
|
||
DMC_API short __stdcall dmc_set_node_da_follow_speed_enable(WORD CardNo, WORD node_id, WORD da_channel, WORD enable);
|
||
DMC_API short __stdcall dmc_get_node_da_follow_speed_enable(WORD CardNo, WORD node_id, WORD da_channel, WORD *enable);
|
||
|
||
|
||
DMC_API short __stdcall nmc_set_clear_fieldbus_state_on_soft_reset(WORD CardNo, WORD enable);
|
||
DMC_API short __stdcall nmc_get_clear_fieldbus_state_on_soft_reset(WORD CardNo, WORD *enable);
|
||
|
||
DMC_API short __stdcall dmc_m_set_profile_unit_acc(WORD CardNo, WORD group, WORD axis, double start_vel, double max_vel, double tacc, double tdec, double stop_vel);
|
||
DMC_API short __stdcall nmc_get_master_state(WORD CardNo, uint32*States);
|
||
|
||
DMC_API short __stdcall dmc_m_set_profile_unit_acc(WORD CardNo, WORD group, WORD axis, double start_vel, double max_vel, double tacc, double tdec, double stop_vel);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif
|