Files
2026-09-20 21:15:39 +08:00

4280 lines
171 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/********************************** ZMC系列控制器 ************************************************
**--------------文件信息--------------------------------------------------------------------------------
**文件名: zmcaux.h
**创建人: 郑孝洋
**时间: 20130621
**描述: ZMCDLL 辅助函数
**------------修订历史记录----------------------------------------------------------------------------
** 修改人: zxy
** 版 本: 1.1
** 日 期: 2014.5.11
** 描 述: ZMC_ExecuteNoAck 替换为 ZMC_Execute
** 修改人: zxy
** 版 本: 1.3
** 日 期: 2014.7.21
** 描 述: ZMC_Execute ZMC_DirectCommand 替换为ZAux_Execute ZAux_DirectCommand
增加 ZAux_SetParam ZAux_GetParam ZAux_Direct_SetParam ZAux_Direct_GetParam
增加 ZAux_WriteUFile ZAux_ReadUFile
** 修改人: wy
** 版 本: 1.5
** 日 期: 2016.6.6
** 描 述: 对所有BASIC指令进行封装,整合ZMC库到AUX库
** 修改人: wy
** 版 本: 2.1
** 日 期: 2018.8.24
** 描 述:添加PCI链接函数
** 对所有BASIC指令运动指令进行封装,封装轴列表到函数
** 增加部分总线指令
** 增加部分MOVE_PARA指令
增加位置比较输出指令
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef _ZMOTION_DLL_AUX_H
#define _ZMOTION_DLL_AUX_H
//ZAUX支持的最大轴数宏
#define MAX_AXIS_AUX 128
#define MAX_CARD_AUX 32
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************************
数据类型定义
**********************************************************/
typedef unsigned __int64 uint64;
typedef __int64 int64;
//#define BYTE INT8U
//#define WORD INT16U
//#define DWORD INT32U
typedef unsigned char BYTE;
typedef unsigned short WORD;
//typedef unsigned int DWORD;
//#define __stdcall
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 float fp32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
typedef double fp64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
typedef unsigned int uint; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */
typedef void* ZMC_HANDLE;
/************************************************/
//错误码
/************************************************/
#define ERR_OK 0
#define ERROR_OK 0
#define ERR_SUCCESS 0
#define ERR_AUX_OFFSET 30000
#define ERR_NOACK ERR_AUX_OFFSET //无应答
#define ERR_ACKERROR (ERR_AUX_OFFSET+1) //应答错误
#define ERR_AUX_PARAERR (ERR_AUX_OFFSET+2) //参数错误
#define ERR_AUX_NOTSUPPORT (ERR_AUX_OFFSET+3) //不支持
#define ERR_AUX_FILE_ERROR (ERR_AUX_OFFSET+4) //参数错误
#define ERR_AUX_OS_ERR (ERR_AUX_OFFSET+5) //
#if 0
//错误输出部分
#endif
//#define ZAUX_DEBUG //不需要输出时注释掉这行
//#define ZAUX_DEBUG_FILE "d:\\zauxout.txt"
#define ZAUX_COMMAND_SUM 100 //写命令数,调试时使用
#ifdef ZAUX_DEBUG
#define ZAUX_TRACE(cText,a) ZAux_TraceOut("%s,L:%u,"cText"\r\n",__FILE__,(unsigned int)__LINE__,a)
#define ZAUX_WARN(cText,a) ZAux_TraceOut("%s,L:%u,"cText"\r\n",__FILE__,(unsigned int)__LINE__,a)
#define ZAUX_ERROR(cText,a) ZAux_TraceOut("Error:%s,L:%u,"cText"\r\n",__FILE__,(unsigned int)__LINE__,a)
#define ZAUX_ERROR2(cText,a,b) ZAux_TraceOut("Error:%s,L:%u,"cText"\r\n",__FILE__,(unsigned int)__LINE__,a,b)
#else
#define ZAUX_TRACE(cText,a)
#define ZAUX_WARN(cText,a)
#define ZAUX_ERROR(cText,a)
#define ZAUX_ERROR2(cText,a,b)
#endif
void ZAux_TraceOut(const char * cText, ...);
/*********************************************************
函数声明
**********************************************************/
/*************************************************************
Description: //封装 Excute 函数, 以便接收错误
Input: //卡链接 handle
Input: //字符串命令 pszCommand
Input: //返回的字符长度 uiResponseLength
Output: //返回的字符串 psResponse
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Execute(ZMC_HANDLE handle, const char* pszCommand, char* psResponse, uint32 uiResponseLength);
/*************************************************************
Description: //封装 DirectCommand 函数, 以便接收错误
Input: //卡链接 handle
Input: //字符串命令 pszCommand
Input: //返回的字符长度 uiResponseLength
Output: //返回的字符串 psResponse
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_DirectCommand(ZMC_HANDLE handle, const char* pszCommand, char* psResponse, uint32 uiResponseLength);
/*************************************************************
Description: //命令跟踪设置.
Input: //卡链接handle
bifTofile 0 关闭 1-只输出错误命令 2-只输出运动与设置命令 3输出全部命令
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_SetTraceFile(int bifTofile, const char *pFilePathName);
/*************************************************************
Description: //读取命令跟踪设置.
Input: //卡链接handle
bifTofile 0 关闭 1-只输出错误命令 2-只输出运动与设置命令 3输出全部命令
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetTraceFile(int *bifTofile);
/*************************************************************
Description: //与控制器建立链接, 串口方式.
Input: //串口号COMId
Output: //卡链接phandle
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_OpenCom(uint32 comid, ZMC_HANDLE * phandle);
/*************************************************************
Description: //快速控制器建立链接
Input: //最小串口号uimincomidfind
Input: //最大串口号uimaxcomidfind
Input: //链接时间uims
Output: //有效COM pcomid
Output: //卡链接handle
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_SearchAndOpenCom(uint32 uimincomidfind, uint32 uimaxcomidfind,uint* pcomid, uint32 uims, ZMC_HANDLE * phandle);
/*************************************************************
Description: //可以修改缺省的波特率等设置
Input: //dwBaudRate 波特率
dwByteSize 数据位
dwParity = NOPARITY,校验位
dwStopBits = ONESTOPBIT停止位
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_SetComDefaultBaud(uint32 dwBaudRate, uint32 dwByteSize, uint32 dwParity, uint32 dwStopBits);
/*************************************************************
Description: //修改控制器IP地址
Input: //卡链接handle
Input: //IP地址
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_SetIp(ZMC_HANDLE handle, char * ipaddress);
/*************************************************************
Description: //与控制器建立链接
Input: //IP地址,字符串的方式输入
Output: //卡链接handle
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_OpenEth(char *ipaddr, ZMC_HANDLE * phandle);
/*************************************************************
Description: //快速检索IP列表
Input: //uims 响应时间
Input: //addrbufflength 最大长度
output: //ipaddrlist 当前晚点IP列表
Return: //错误码, ERR_OK表示有搜索到.
*************************************************************/
int32 __stdcall ZAux_SearchEthlist(char *ipaddrlist, uint32 addrbufflength, uint32 uims);
/*************************************************************
Description: //快速检索控制器
Input: //控制器IP地址
Input: //响应时间
Output: //
Return: //错误码, ERR_OK表示有搜索到.
*************************************************************/
int32 __stdcall ZAux_SearchEth(const char *ipaddress, uint32 uims);
/*************************************************************
Description: //关闭控制器链接
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Close(ZMC_HANDLE handle);
/*************************************************************
Description: //暂停继续运行BAS项目
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Resume(ZMC_HANDLE handle);
/*************************************************************
Description: //暂停控制器中BAS程序
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Pause(ZMC_HANDLE handle);
/*************************************************************
Description: //单个BAS文件生成ZAR并且下载到控制器运行
Input: //卡链接handle
Input: //Filename BAS文件路径
Input: //RAM-ROM 0-RAM 1-ROM
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BasDown(ZMC_HANDLE handle,const char *Filename,uint32 run_mode);
#if 0
//IO指令
// 可以使用 ZMC_GetIn ZMC_GetOutput 等
#endif
/*************************************************************
Description: //读取输入信号
Input: //卡链接handle
ionum IN编号
Output: //piValue 输入口状态
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetIn(ZMC_HANDLE handle, int ionum , uint32 *piValue);
/*************************************************************
Description: //打开输出信号
Input: //卡链接handle
ionum 输出口编号
iValue 输出口状态
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetOp(ZMC_HANDLE handle, int ionum, uint32 iValue);
/*************************************************************
Description: //读取输出口状态
Input: //卡链接handle
ionum 输出口编号
Output: //piValue 输出口状态
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetOp(ZMC_HANDLE handle, int ionum, uint32 *piValue);
/*************************************************************
Description: //读取模拟量输入信号
Input: //卡链接handle
ionum AIN口编号
Output: //pfValue 返回的模拟量值 4系列以下0-4095
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAD(ZMC_HANDLE handle, int ionum , float *pfValue);
/*************************************************************
Description: //打开模拟量输出信号
Input: //卡链接handle
ionum DA输出口编号
fValue 设定的模拟量值4系列以下0-4095
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetDA(ZMC_HANDLE handle, int ionum, float fValue);
/*************************************************************
Description: //读取模拟输出口状态
Input: //卡链接handle
ionum 模拟量输出口编号
Output: //pfValue 读取的的模拟量值 4系列以下0-4095
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetDA(ZMC_HANDLE handle, int ionum, float *pfValue);
/*************************************************************
Description: //设置输入口反转
Input: //卡链接handle
ionum 输入口编号
bifInvert 反转状态 0/1
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetInvertIn(ZMC_HANDLE handle, int ionum, int bifInvert);
/*************************************************************
Description: //读取输入口反转状态
Input: //卡链接handle
ionum 输入口编号
Output: //piValue 反转状态
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetInvertIn(ZMC_HANDLE handle, int ionum, int *piValue);
/*************************************************************
Description: //设置pwm频率
Input: //卡链接handle
ionum PWM编号口
fValue 频率 硬件PWM1M 软PWM 2K
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetPwmFreq(ZMC_HANDLE handle, int ionum, float fValue);
/*************************************************************
Description: //读取pwm频率
Input: //卡链接handle
ionum PWM口编号
Output: //pfValue 返回的频率
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetPwmFreq(ZMC_HANDLE handle, int ionum, float *pfValue);
/*************************************************************
Description: //设置pwm占空比
Input: //卡链接handle
ionum PWM口编号
fValue 占空变 0-1 0表示关闭PWM口
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetPwmDuty(ZMC_HANDLE handle, int ionum, float fValue);
/*************************************************************
Description: //读取pwm占空比
Input: //卡链接handle
ionum PWM口编号
Output: //pfValue 读取的占空比
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetPwmDuty(ZMC_HANDLE handle, int ionum, float *pfValue);
#if 0
//通过modbus快速读取特殊寄存器
#endif
/*************************************************************
Description: //参数 快速读取多个输入
Input: //卡链接handle
ionumfirst IN起始编号
ionumend IN结束编号
Output: //pValueList 位状态 按位存储
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetModbusIn(ZMC_HANDLE handle, int ionumfirst, int ionumend, uint8 *pValueList);
/*************************************************************
Description: //参数 快速读取多个当前的输出状态
Input: //卡链接handle
ionumfirst IN起始编号
ionumend IN结束编号
Output: //pValueList 位状态 按位存储
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetModbusOut(ZMC_HANDLE handle, int ionumfirst, int ionumend, uint8 *pValueList);
/*************************************************************
Description: //参数 快速读取多个当前的DPOS
Input: //卡链接handle
imaxaxises 轴数量
Output: //pValueList 读取的坐标值 从轴0开始
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetModbusDpos(ZMC_HANDLE handle, int imaxaxises, float *pValueList);
/*************************************************************
Description: //参数 快速读取多个当前的MPOS
Input: //卡链接handle
imaxaxises 轴数量
Output: //pValueList 读取的反馈坐标值 从轴0开始
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetModbusMpos(ZMC_HANDLE handle, int imaxaxises, float *pValueList);
/*************************************************************
Description: //参数 快速读取多个当前的速度
Input: //卡链接handle
imaxaxises 轴数量
Output: //pValueList 读取的当前速度 从轴0开始
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetModbusCurSpeed(ZMC_HANDLE handle, int imaxaxises, float *pValueList);
#if 0
//采用ZMC_DirectCommand 来快速获取一些状态, ZMC_DirectCommand的执行比ZMC_Execute要快
// 只有参数,变量,数组元素等能使用ZMC_DirectCommand
// 20130901以后的版本,一些运动函数也可以调用ZMC_DirectCommand,当运动条件不满足的时候,会立刻返回失败。
// ZMC_DirectCommand调用运动函数时,参数必须是具体的数值,不能是变量表达式。
#endif
/*************************************************************
Description: //通用的参数修改函数 sParam: 填写参数名称
Input: //卡链接handle
sParam 轴参数名称 "DPOS" ...
iaxis 轴号
fset 设定值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetParam(ZMC_HANDLE handle,const char *sParam,int iaxis, float fset);
/*************************************************************
Description: //参数 通用的参数读取函数, sParam:填写参数名称
Input: //卡链接handle
sParam 轴参数名称 "DPOS" ...
iaxis 轴号
Output: //pfValue 读取的返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetParam(ZMC_HANDLE handle,const char *sParam, int iaxis, float *pfValue);
/*************************************************************
Description: //设置加速度
Input: //卡链接handle
iaxis 轴号
fValue 设定值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetAccel(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取加速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 加速度返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAccel(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取叠加轴
Input: //卡链接handle
iaxis 轴号
Output: //读取的轴叠加轴号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAddax(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置轴告警信号
Input: //卡链接handle
iaxis 轴号
iValue 报警信号输入口编号,取消时设定-1
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetAlmIn(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取告警信号
Input: //卡链接handle
iaxis 轴号
Output: //piValue 报警信号输入口返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAlmIn(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置轴类型
Input: //卡链接handle
iaxis 轴号
iValue 轴类型
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetAtype(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取轴类型
Input: //卡链接handle
iaxis 轴号
Output: //iValue 轴类型返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAtype(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //读取轴状态
Input: //卡链接handle
iaxis 轴号
Output: //轴状态返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAxisStatus(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置轴地址
Input: //卡链接handle
iaxis 轴号
iValue 轴地址设定值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetAxisAddress(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取轴地址
Input: //卡链接handle
iaxis 轴号
Output: //piValue 轴地址返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAxisAddress(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置轴使能 (只针对总线控制器轴使用有效)
Input: //卡链接handle
iaxis 轴号
iValue 状态 0-关闭 1- 打开
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetAxisEnable(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取轴使能状态
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的使能状态
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAxisEnable(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置链接速率
Input: //卡链接handle
iaxis 轴号
fValue 同步连接速率
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetClutchRate(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取链接速率
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 连接速率返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetClutchRate(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置锁存触发的结束坐标范围点
Input: //卡链接handle
iaxis 轴号
fValue 设定的范围值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetCloseWin(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取锁存触发的结束坐标范围点
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的范围值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetCloseWin(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置拐角减速
Input: //卡链接handle
iaxis 轴号
iValue 拐角减速模式
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetCornerMode(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取拐角减速
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的拐角模式
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetCornerMode(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置回零爬行速度
Input: //卡链接handle
iaxis 轴号
fValue设置的速度值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetCreep(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取回零爬行速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的爬行速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetCreep(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置原点信号 设定-1为取消原点设置
Input: //卡链接handle
iaxis 轴号
iValue 设置的原点信号输入口编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetDatumIn(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取原点信号
Input: //卡链接handle
iaxis
Output: //piValue 返回原点输入口编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetDatumIn(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置减速度
Input: //卡链接handle
iaxis 轴号
fValue 设置的减速度值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetDecel(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取减速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 设定的减速度返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetDecel(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置拐角减速角度,开始减速角度,单位为弧度
Input: //卡链接handle
iaxis 轴号
fValue 设置的拐角减速角度
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetDecelAngle(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取拐角开始减速角度,单位为弧度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的拐角减速角度
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetDecelAngle(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置轴位置
Input: //卡链接handle
iaxis 轴号
fValue 设置的坐标值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetDpos(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取轴位置
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的命令位置坐标
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetDpos(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取内部编码器值 (总线绝对值伺服时为绝对值位置)
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的内部编码器值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetEncoder(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取当前运动的最终位置
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的最终位置
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetEndMove(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取当前和缓冲中运动的最终位置,可以用于相对绝对转换
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的最终位置
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetEndMoveBuffer(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置SP运动的结束速度
Input: //卡链接handle
iaxis 轴号
Output: //fValue 设定的速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetEndMoveSpeed(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取SP运动的结束速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetEndMoveSpeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置错误标记,和AXISSTATUS做与运算来决定哪些错误需要关闭WDOG。
Input: //卡链接handle
iaxis 轴号
iValue 设置值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetErrormask(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取错误标记,和AXISSTATUS做与运算来决定哪些错误需要关闭WDOG。
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的标记值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetErrormask(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置快速JOG输入
Input: //卡链接handle
iaxis 轴号
iValue 快速JOG输入口编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFastJog(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取快速JOG输入
Input: //卡链接handle
iaxis 轴号
Output: //返回的JOG输入口编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFastJog(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置快速减速度
Input: //卡链接handle
iaxis 轴号
fValue 设定的快速减速度
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFastDec(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取快速减速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的快速减速度
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFastDec(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取随动误差
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的随动误差
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFe(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置最大允许的随动误差值
Input: //卡链接handle
iaxis 轴号
fValue 设置的最大误差值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFeLimit(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取最大允许的随动误差值
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的设置最大误差值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFeLimit(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置报警时随动误差值
Input: //卡链接handle
iaxis 轴号
fValue 设置的误差值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFRange(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取报警时的随动误差值
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的报警误差值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFeRange(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置保持输入
Input: //卡链接handle
iaxis 轴号
iValue 设置的输入口编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFholdIn(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取保持输入
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回输入HOLDIN输入口编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFholdIn(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置轴保持速度
Input: //卡链接handle
iaxis 轴号
fValue 设置的速度值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFhspeed(ZMC_HANDLE handle, int iaxis, float pfValue);
/*************************************************************
Description: //读取轴保持速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的保持速度
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFhspeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置SP运动的运行速度
Input: //卡链接handle
iaxis 轴号
fValue 设置的速度值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetForceSpeed(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取SP运动的运行速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回SP运动速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetForceSpeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置正向软限位 取消时设置一个较大值即可
Input: //卡链接handle
iaxis 轴号
fValue 设定的限位值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFsLimit(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取正向软限位
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的正向限位坐标
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFsLimit(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置小圆限速最小半径
Input: //卡链接handle
iaxis 轴号
fValue 设置的最小半径
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFullSpRadius(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取小圆限速最小半径
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的限速半径
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFullSpRadius(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置正向硬限位输入 设置成-1时表示不设置限位
Input: //卡链接handle
iaxis 轴号
iValue 设置的限位输入口编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFwdIn(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取正向硬限位输入
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回正向限位输入口编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFwdIn(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置正向JOG输入
Input: //卡链接handle
iaxis 轴号
iValue 设置的JOG输入口编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetFwdJog(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取正向JOG输入
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的JOG输入口编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetFwdJog(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //读取轴是否运动结束
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回运行状态 0-运动中 -1 停止
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetIfIdle(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置脉冲输出模式
Input: //卡链接handle
iaxis 轴号
iValue 设定的脉冲输出模式 脉冲+方向/双脉冲
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetInvertStep(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取脉冲输出模式
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的脉冲模式
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetInvertStep(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置插补时轴是否参与速度计算,缺省参与(1)。此参数只对直线和螺旋的第三个轴起作用
Input: //卡链接handle
iaxis 轴号
iValue 模式 0-不参数 1-参与
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetInterpFactor(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取插补时轴是否参与速度计算,缺省参与(1)。此参数只对直线和螺旋的第三个轴起作用
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的速度计算模式
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetInterpFactor(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置JOG时速度
Input: //卡链接handle
iaxis 轴号
Output: //fValue 设定的速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetJogSpeed(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取JOG时速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的JOG速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetJogSpeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取当前链接运动的参考轴号
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回链接的参考轴号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetLinkax(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //读取当前除了当前运动是否还有缓冲
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回状态值 -1 没有剩余函数 0-还有剩余运动
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetLoaded(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置轴起始速度
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetLspeed(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取轴起始速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的起始速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetLspeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置回零反找等待时间
Input: //卡链接handle
iaxis 轴号
iValue 回零反找等待时间 MS
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetHomeWait(ZMC_HANDLE handle, int iaxis, int fValue);
/*************************************************************
Description: //读取回零反找等待时间
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的反找等待时间
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetHomeWait(ZMC_HANDLE handle, int iaxis, int *pfValue);
/*************************************************************
Description: //读取编码器锁存示教返回状态
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的锁存触发状态 -1-锁存触发 0-未触发
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMark(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //读取编码器锁存b返回状态
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的锁存触发状态 -1-锁存触发 0-未触发
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMarkB(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置脉冲输出最高频率
Input: //卡链接handle
iaxis 轴号
iValue 设置的最高脉冲频率
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetMaxSpeed(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取脉冲输出最高频率
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的脉冲频率
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMaxSpeed(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置连续插补
Input: //卡链接handle
iaxis 轴号
iValue 连续插补开关 0-关闭连续插补 1-打开连续插补
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetMerge(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取连续插补状态
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的连续插补开关状态
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMerge(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //读取当前被缓冲起来的运动个数
Input: //卡链接handle
iaxis 轴数
Output: //piValue 缓冲运动数
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMovesBuffered(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //读取当前正在运动指令的MOVE_MARK标号
Input: //卡链接handle
iaxis 轴号
Output: //piValue 当前MARK标号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMoveCurmark(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置运动指令的MOVE_MARK标号 每当有运动进入轴运动缓冲时MARK自动+1
Input: //卡链接handle
iaxis 轴号
iValue 设定的MARK值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetMovemark(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //设置反馈位置
Input: //卡链接handle
iaxis 轴号
fValue 设置的反馈位置
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetMpos(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取反馈位置
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的轴反馈位置坐标
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMpos(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取反馈速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的编码器反馈速度
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMspeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取当前正在运动指令类型
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回当前的运动类型
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetMtype(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //读取当前正在进行的运动指令后面的第一条指令类型,当插补联动时,对从轴总是返回主轴的运动指令类型
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回下一条指令的运动类型
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetNtype(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置修改偏移位置
Input: //卡链接handle
iaxis 轴号
fValue 设置的偏移值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetOffpos(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取修改偏移位置
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的偏移坐标值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetOffpos(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置锁存触发的结束坐标范围点。
Input: //卡链接handle
iaxis 轴号
fValue 设置的坐标值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetOpenWin(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取锁存触发的结束坐标范围点。
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的结束坐标值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetOpenWin(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取返回锁存的测量反馈位置(MPOS)
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 锁存的坐标位置
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRegPos(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取返回锁存的测量反馈位置(MPOS)
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 锁存的坐标位置
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRegPosB(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取返回轴当前运动还未完成的距离
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的剩余距离
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRemain(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //参数 轴剩余的缓冲, 按直线段来计算
REMAIN_BUFFER为唯一一个可以加AXIS并用ZAux_DirectCommand获取的.
Input: //卡链接handle
iaxis 轴号
Output: //piValue 剩余的直线缓冲数量
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRemain_LineBuffer(ZMC_HANDLE handle, int iaxis,int * piValue);
/*************************************************************
Description: //参数 轴剩余的缓冲, 按最复杂的空间圆弧来计算
REMAIN_BUFFER为唯一一个可以加AXIS并用ZAux_DirectCommand获取的.
Input: //卡链接handle
iaxis 轴号
Output: //piValue 剩余的缓冲数量
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRemain_Buffer(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置根据REP_OPTION设置来自动循环轴DPOS和MPOS坐标。
Input: //卡链接handle
iaxis 轴号
fValue 设置的坐标值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetRepDist(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取根据REP_OPTION设置来自动循环轴DPOS和MPOS坐标。
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的循环坐标值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRepDist(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置坐标重复设置
Input: //卡链接handle
iaxis 轴号
iValue 模式
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetRepOption(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取坐标重复设置
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的模式
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRepOption(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置负向硬件限位开关对应的输入点编号,-1无效。
Input: //卡链接handle
iaxis 轴号
iValue 设置的输入口编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetRevIn(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取负向硬件限位开关对应的输入点编号,-1无效。
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的负向限位输入口编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRevIn(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置负向JOG输入对应的输入点编号,-1无效。
Input: //卡链接handle
iaxis 轴号
iValue 设置的输入口编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetRevJog(ZMC_HANDLE handle, int iaxis, int iValue);
/*************************************************************
Description: //读取负向JOG输入对应的输入点编号,-1无效。
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的输入口编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRevJog(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置负向软限位位置。 设置一个较大的值时认为取消限位
Input: //卡链接handle
iaxis 轴号
fValue 负向限位值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetRsLimit(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取负向软限位位置。
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 设定的限位值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetRsLimit(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置轴速度,单位为units/s,当多轴运动时,作为插补运动的速度
Input: //卡链接handle
iaxis 轴号
fValue 设置的速度值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetSpeed(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取轴速度,单位为units/s,当多轴运动时,作为插补运动的速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetSpeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置 S曲线设置。 0-梯形加减速
Input: //卡链接handle
iaxis 轴号
fValue S曲线平滑时间MS
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetSramp(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取 S曲线设置。
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 平滑时间
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetSramp(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置 自定义速度的SP运动的起始速度
Input: //卡链接handle
iaxis 轴号
fValue 设置的速度值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetStartMoveSpeed(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取自定义速度的SP运动的起始速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的SP运动起始速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetStartMoveSpeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置 减速到最低的最小拐角 弧度制
Input: //卡链接handle
iaxis 轴号
fValue 设置的角度值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetStopAngle(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取减速到最低的最小拐角 弧度制
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的拐角停止角度
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetStopAngle(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置 减速倒角半径
Input: //卡链接handle
iaxis 轴号
fValue 倒角半径
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetZsmooth(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取倒角半径
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的倒角半径值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetZsmooth(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //设置 脉冲当量
Input: //卡链接handle
iaxis 轴号
fValue 设置的当量值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetUnits(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取脉冲当量
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的脉冲当量
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetUnits(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取返回轴当前当前运动和缓冲运动还未完成的距离
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的阵雨距离
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetVectorBuffered(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //读取当前轴运行的命令速度
Input: //卡链接handle
iaxis 轴号
Output: //pfValue 返回的当前速度值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetVpSpeed(ZMC_HANDLE handle, int iaxis, float *pfValue);
/*************************************************************
Description: //全局变量读取, 也可以是参数等等
Input: //卡链接handle
pname 全局变量名称/或者指定轴号的轴参数名称DPOS(0)
Output: //pfValue 返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetVariablef(ZMC_HANDLE handle, const char *pname, float *pfValue);
/*************************************************************
Description: //全局变量读取, 也可以是参数等等
Input: //卡链接handle
pname 全局变量名称/或者指定轴号的轴参数名称DPOS(0)
Output: //piValue 返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetVariableInt(ZMC_HANDLE handle, const char *pname, int *piValue);
/////////////////////// 只有下面的运动函数支持直接调用,并不是所有的指令都支持
/////////////////////// 必须 20130901 以后的控制器版本支持
/*************************************************************
Description: //BASE指令调用
仅仅修改在线命令的BASE列表,不对控制器的运行任务的BASE进行修改.
修改后,后续的所有MOVE等指令都是以这个BASE为基础
Input: //卡链接handle
imaxaxises 参与轴数
piAxislist 轴列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Base(ZMC_HANDLE handle, int imaxaxises, int *piAxislist);
/*************************************************************
Description: //定义DPOS,不建议使用,可以直接调用SETDPOS达到同样效果
Input: //卡链接handle
iaxis 轴号
pfDpos 设置的坐标值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Defpos(ZMC_HANDLE handle, int iaxis, float pfDpos);
/*************************************************************
Description: //多轴相对直线插补 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Move(ZMC_HANDLE handle, int imaxaxises, int *piAxislist,float *pfDisancelist);
/*************************************************************
Description: //相对多轴直线插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float *pfDisancelist);
/*************************************************************
Description: //绝对多轴直线插补 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveAbs(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float *pfDisancelist);
/*************************************************************
Description: //绝对多轴直线插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveAbsSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float *pfDisancelist);
/*************************************************************
//Description: //运动中修改结束位置 20130901 以后的控制器版本支持
//Input: //卡链接handle
轴号 iaxis
绝对距离 pfDisance
//Output: //
//Return: //错误码
/*************************************************************/
int32 __stdcall ZAux_Direct_MoveModify(ZMC_HANDLE handle, int iaxis, float pfDisance);
/*************************************************************
Description: //相对圆心定圆弧插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标
end2 第二个轴运动坐标
centre1 第一个轴运动圆心,相对与起始点。
centre2 第二个轴运动圆心,相对与起始点。
direction 0-逆时针,1-顺时针
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCirc(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection);
/*************************************************************
Description: //相对圆心定圆弧插补运动 插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标
end2 第二个轴运动坐标
centre1 第一个轴运动圆心,相对与起始点。
centre2 第二个轴运动圆心,相对与起始点。
direction 0-逆时针,1-顺时针
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCircSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection);
/*************************************************************
Description: //绝对圆心圆弧插补运动 20130901 以后的控制器版本支持 无法画整圆
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标,绝对位置
end2 第二个轴运动坐标,绝对位置
centre1 第一个轴运动圆心,绝对位置
centre2 第二个轴运动圆心,绝对位置
direction 0-逆时针,1-顺时针
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCircAbs(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection);
/*************************************************************
Description: //绝对圆心圆弧插补SP运动 20130901 以后的控制器版本支持 无法画整圆
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标,绝对位置
end2 第二个轴运动坐标,绝对位置
centre1 第一个轴运动圆心,绝对位置
centre2 第二个轴运动圆心,绝对位置
direction 0-逆时针,1-顺时针
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCircAbsSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection);
/*************************************************************
Description: //相对3点定圆弧插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点,相对起始点距离
mid2 第二个轴中间点,相对起始点距离
end1 第一个轴结束点,相对起始点距离
end2 第二个轴结束点,相对起始点距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCirc2(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2);
/*************************************************************
Description: //绝对3点定圆弧插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点,绝对位置
mid2 第二个轴中间点,绝对位置
end1 第一个轴结束点,绝对位置
end2 第二个轴结束点,绝对位置
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCirc2Abs(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2);
/*************************************************************
Description: //相对3点定圆弧插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点,相对起始点距离
mid2 第二个轴中间点,相对起始点距离
end1 第一个轴结束点,相对起始点距离
end2 第二个轴结束点,相对起始点距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCirc2Sp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2);
/*************************************************************
Description: //绝对3点定圆弧插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点,绝对位置
mid2 第二个轴中间点,绝对位置
end1 第一个轴结束点,绝对位置
end2 第二个轴结束点,绝对位置
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCirc2AbsSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2);
/*************************************************************
Description: //相对3轴圆心螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标
end2 第二个轴运动坐标
centre1 第一个轴运动圆心,相对与起始点
centre2 第二个轴运动圆心,相对与起始点
direction 0-逆时针,1-顺时针
distance3第三个轴运动距离。
mode 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelical(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode);
/*************************************************************
Description: //绝对3轴圆心螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标
end2 第二个轴运动坐标
centre1 第一个轴运动圆心坐标
centre2 第二个轴运动圆心坐标
direction 0-逆时针,1-顺时针
distance3第三个轴运动距离。
mode 第三轴的速度计算:0(缺省) 第三轴参与速度计算。1第三轴不参与速度计算。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelicalAbs(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode);
/*************************************************************
Description: //相对3轴圆心螺旋插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标
end2 第二个轴运动坐标
centre1 第一个轴运动圆心,相对与起始点
centre2 第二个轴运动圆心,相对与起始点
direction 0-逆时针,1-顺时针
distance3第三个轴运动距离。
mode 第三轴的速度计算: 0(缺省)第三轴参与速度计算。 1第三轴不参与速度计算。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelicalSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode);
/*************************************************************
Description: //绝对3轴圆心螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第一个轴运动坐标
end2 第二个轴运动坐标
centre1 第一个轴运动圆心坐标
centre2 第二个轴运动圆心坐标
direction 0-逆时针,1-顺时针
distance3第三个轴运动距离。
mode 第三轴的速度计算:0(缺省) 第三轴参与速度计算。1第三轴不参与速度计算。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelicalAbsSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode);
/*************************************************************
Description: //相对3轴 3点画螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点
mid2 第二个轴中间点
end1 第一个轴结束点
end2 第二个轴结束点
distance3第三个轴运动距离
mode 第三轴的速度计算:
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelical2(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode);
/*************************************************************
Description: //绝对3轴 3点画螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点
mid2 第二个轴中间点
end1 第一个轴结束点
end2 第二个轴结束点
distance3 第三个轴运动结束点
mode 第三轴的速度计算:
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelical2Abs(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode);
/*************************************************************
Description: //相对3轴 3点画螺旋插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点
mid2 第二个轴中间点
end1 第一个轴结束点
end2 第二个轴结束点
distance3第三个轴运动距离
mode 第三轴的速度计算:
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelical2Sp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode);
/*************************************************************
Description: //绝对3轴 3点画螺旋插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
mid1 第一个轴中间点
mid2 第二个轴中间点
end1 第一个轴结束点
end2 第二个轴结束点
distance3 第三个轴运动结束点
mode 第三轴的速度计算:
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MHelical2AbsSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode);
/*************************************************************
Description: //相对椭圆插补 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标,相对于起始点。
fend2 终点第二个轴运动坐标,相对于起始点。
fcenter1 中心第一个轴运动坐标,相对于起始点。
fcenter2 中心第二个轴运动坐标,相对于起始点。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fend 第三个轴的运动距离,需要螺旋时填入
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipse(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis,float fend);
/*************************************************************
Description: //绝对椭圆插补 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标
fend2 终点第二个轴运动坐标
fcenter1 中心第一个轴运动坐标。
fcenter2 中心第二个轴运动坐标。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fend 第三个轴的运动坐标,需要螺旋时填入
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipseAbs(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis,float fend);
/*************************************************************
Description: //相对椭圆插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标,相对于起始点。
fend2 终点第二个轴运动坐标,相对于起始点。
fcenter1 中心第一个轴运动坐标,相对于起始点。
fcenter2 中心第二个轴运动坐标,相对于起始点。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fend 第三个轴的运动坐标,需要螺旋时填入
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipseSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis,float fend);
/*************************************************************
Description: //绝对椭圆插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标
fend2 终点第二个轴运动坐标
fcenter1 中心第一个轴运动坐标。
fcenter2 中心第二个轴运动坐标。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fend 第三个轴的运动坐标,需要螺旋时填入
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipseAbsSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis,float fend);
/*************************************************************
Description: //相对 椭圆 + 螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标,相对于起始点。
fend2 终点第二个轴运动坐标,相对于起始点。
fcenter1 中心第一个轴运动坐标,相对于起始点。
fcenter2 中心第二个轴运动坐标,相对于起始点。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fDistance3 第三个轴的运动距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipseHelical(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis, float fDistance3);
/*************************************************************
Description: //绝对椭圆 + 螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标
fend2 终点第二个轴运动坐标
fcenter1 中心第一个轴运动坐标。
fcenter2 中心第二个轴运动坐标。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fDistance3 第三个轴的运动距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipseHelicalAbs(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis,float fDistance3);
/*************************************************************
Description: //相对 椭圆 + 螺旋插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标,相对于起始点。
fend2 终点第二个轴运动坐标,相对于起始点。
fcenter1 中心第一个轴运动坐标,相对于起始点。
fcenter2 中心第二个轴运动坐标,相对于起始点。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fDistance3 第三个轴的运动距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipseHelicalSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis, float fDistance3);
/*************************************************************
Description: //绝对椭圆 + 螺旋插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
fend1 终点第一个轴运动坐标
fend2 终点第二个轴运动坐标
fcenter1 中心第一个轴运动坐标。
fcenter2 中心第二个轴运动坐标。
idirection 0-逆时针,1-顺时针
fADis 第一轴的椭圆半径,半长轴或者半短轴都可。
fBDis 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋。
fDistance3 第三个轴的运动距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MEclipseHelicalAbsSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis,float fDistance3);
/*************************************************************
Description: //空间圆弧 + 螺旋插补运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第1个轴运动距离参数1 相对与起点
end2 第2个轴运动距离参数1 相对与起点
end3 第3个轴运动距离参数1 相对与起点
centre1 第1个轴运动距离参数2 相对与起点
centre2 第2个轴运动距离参数2 相对与起点
centre3 第3个轴运动距离参数2 相对与起点
mode 指定前面参数的意义
0 当前点,中间点,终点三点定圆弧,距离参数1为终点距离,距离参数2为中间点距离。
1 走最小的圆弧,距离参数1为终点距离,距离参数2为圆心的距离。
2 当前点,中间点,终点三点定圆,距离参数1为终点距离,距离参数2为中间点距离。
3 先走最小的圆弧,再继续走完整圆,距离参数1为终点距离,距离参数2为圆心的距离。
fcenter4 第4个轴运动距离参数
fcenter5 第5个轴运动距离参数
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MSpherical(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fend3, float fcenter1, float fcenter2, float fcenter3, int imode, float fcenter4, float fcenter5);
/*************************************************************
Description: //空间圆弧 + 螺旋 插补SP运动 20130901 以后的控制器版本支持
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第1个轴运动距离参数1 相对与起点
end2 第2个轴运动距离参数1 相对与起点
end3 第3个轴运动距离参数1 相对与起点
centre1 第1个轴运动距离参数2 相对与起点
centre2 第2个轴运动距离参数2 相对与起点
centre3 第3个轴运动距离参数2 相对与起点
mode 指定前面参数的意义
0 当前点,中间点,终点三点定圆弧,距离参数1为终点距离,距离参数2为中间点距离。
1 走最小的圆弧,距离参数1为终点距离,距离参数2为圆心的距离。
2 当前点,中间点,终点三点定圆,距离参数1为终点距离,距离参数2为中间点距离。
3 先走最小的圆弧,再继续走完整圆,距离参数1为终点距离,距离参数2为圆心的距离。
fcenter4 第4个轴运动距离参数
fcenter5 第5个轴运动距离参数
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MSphericalSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float fend1, float fend2, float fend3, float fcenter1, float fcenter2, float fcenter3, int imode, float fcenter4, float fcenter5);
/*************************************************************
Description: //渐开线圆弧插补运动,相对移动方式,当起始半径0直接扩散时从0角度开始
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
centre1: 第1轴圆心的相对距离
centre2: 第2轴圆心的相对距离
circles: 要旋转的圈数,可以为小数圈,负数表示顺时针.
pitch: 每圈的扩散距离,可以为负。
distance3 第3轴螺旋的功能,指定第3轴的相对距离,此轴不参与速度计算。
distance4 第4轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveSpiral(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float centre1, float centre2, float circles, float pitch, float distance3, float distance4);
/*************************************************************
Description: //渐开线圆弧插补SP运动,相对移动方式,当起始半径0直接扩散时从0角度开始
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
centre1: 第1轴圆心的相对距离
centre2: 第2轴圆心的相对距离
circles: 要旋转的圈数,可以为小数圈,负数表示顺时针.
pitch: 每圈的扩散距离,可以为负。
distance3 第3轴螺旋的功能,指定第3轴的相对距离,此轴不参与速度计算。
distance4 第4轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveSpiralSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float centre1, float centre2, float circles, float pitch, float distance3, float distance4);
/*************************************************************
Description: //空间直线运动,根据下一个直线运动的绝对坐标在拐角自动插入圆弧,加入圆弧后会使得运动的终点与直线的终点不一致,拐角过大时不会插入圆弧,当距离不够时会自动减小半径
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第1个轴运动绝对坐标
end2 第2个轴运动绝对坐标
end3 第3个轴运动绝对坐标
next1 第1个轴下一个直线运动绝对坐标
next2 第2个轴下一个直线运动绝对坐标
next3 第3个轴下一个直线运动绝对坐标
radius 插入圆弧的半径,当过大的时候自动缩小。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveSmooth(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float end1, float end2, float end3, float next1, float next2, float next3, float radius);
/*************************************************************
Description: //空间直线插补SP运动,根据下一个直线运动的绝对坐标在拐角自动插入圆弧,加入圆弧后会使得运动的终点与直线的终点不一致,拐角过大时不会插入圆弧,当距离不够时会自动减小半径
Input: //卡链接handle
imaxaxises 参与运动总轴数
piAxislist 轴号列表
end1 第1个轴运动绝对坐标
end2 第2个轴运动绝对坐标
end3 第3个轴运动绝对坐标
next1 第1个轴下一个直线运动绝对坐标
next2 第2个轴下一个直线运动绝对坐标
next3 第3个轴下一个直线运动绝对坐标
radius 插入圆弧的半径,当过大的时候自动缩小。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveSmoothSp(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, float end1, float end2, float end3, float next1, float next2, float next3, float radius);
/*************************************************************
Description: //运动暂停 ,插补运动暂停主轴。轴列表轴第一个轴
Input: //卡链接handle
轴号 iaxis
模式 imode 0(缺省) 暂停当前运动。
1 在当前运动完成后正准备执行下一条运动指令时暂停。
2 在当前运动完成后正准备执行下一条运动指令时,并且两条指令的MARK标识不一样时暂停。这个模式可以用于一个动作由多个指令来实现时,可以在一整个动作完成后暂停。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MovePause(ZMC_HANDLE handle,int iaxis, int imode);
/*************************************************************
Description: //取消运动暂停
Input: //卡链接handle
轴号 iaxis
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveResume(ZMC_HANDLE handle,int iaxis);
/*************************************************************
Description: //在当前的运动末尾位置增加速度限制,用于强制拐角减速
Input: //卡链接handle
轴号 iaxis
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveLimit(ZMC_HANDLE handle, int iaxis,float limitspeed);
/*************************************************************
Description: //在运动缓冲中加入输出指令
Input: //卡链接handle
轴号 iaxis
输出口编号 ioutnum
输出口状态 ivalue
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveOp(ZMC_HANDLE handle, int iaxis,int ioutnum, int ivalue);
/*************************************************************
Description: //在运动缓冲中加入连续输出口输出指令
Input: //卡链接handle
轴号 iaxis
输出口起始编号 ioutnumfirst
输出口结束编号 ioutnumend
对应输出口状态二进制组合值 ivalue
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveOpMulti(ZMC_HANDLE handle, int iaxis, int ioutnumfirst, int ioutnumend, int ivalue);
/*************************************************************
Description: //在运动缓冲中加入输出指令 ,指定时间后输出状态翻转
Input: //卡链接handle
轴号 iaxis
输出口编号 ioutnum
输出口状态 ivalue
状态反转时间 iofftimems
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveOp2(ZMC_HANDLE handle, int iaxis, int ioutnum, int ivalue, int iofftimems);
/*************************************************************
Description: //在运动缓冲中加入AOUT输出指令
Input: //卡链接handle
轴号 iaxis
DA口编号 ioutnum
模拟量值 fvalue (4系列以下 12位0-4095)
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveAout(ZMC_HANDLE handle, int iaxis, int ioutnum, float fvalue);
/*************************************************************
Description: //在运动缓冲中加入延时指令
Input: //卡链接handle
轴号 iaxis
延时时间 itimems 毫秒
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveDelay(ZMC_HANDLE handle, int iaxis, int itimems);
/*************************************************************
Description: //旋转台直线插补运动。 20130901 以后的控制器版本支持
Input: //卡链接handle
tablenum 存储旋转台参数的table编号
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveTurnabs(ZMC_HANDLE handle, int tablenum ,int imaxaxises,int *piAxislist, float *pfDisancelist);
/*************************************************************
Description: //旋转台圆弧+螺旋插补运动。 20130901 以后的控制器版本支持
Input: //卡链接handle
tablenum 存储旋转参数的table编号
refpos1 第一个轴参考点,绝对位置
refpos2 第二个轴参考点,绝对位置
mode 1-参考点是当前点前面,2-参考点是结束点后面,3-参考点在中间,采用三点定圆的方式。
end1 第一个轴结束点,绝对位置
end2 第二个轴结束点,绝对位置
imaxaxises 参与运动轴数量
piAxislist 轴列表
pfDisancelistNumber 螺旋轴距离有效的数量 如数量为2表示第0个和第2个轴需要有效的结束位置,但第三个轴不参与
pfDisancelist 螺旋轴距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_McircTurnabs(ZMC_HANDLE handle, int tablenum ,float refpos1,float refpos2,int mode,float end1,float end2,int imaxaxises,int *piAxislist , uint pfDisancelistNumber,float *pfDisancelist);
/*************************************************************
Description: //电子凸轮 同步运动
Input: //卡链接handle
iaxis 轴号
istartpoint 起始点TABLE编号
iendpoint 结束点TABLE编号
ftablemulti 位置比例,一般设为脉冲当量值
fDistance 参考运动的距离,用来计算总运动时间
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Cam(ZMC_HANDLE handle,int iaxis, int istartpoint, int iendpoint, float ftablemulti, float fDistance);
/*************************************************************
Description: //电子凸轮 同步运动
Input: //卡链接handle
iaxis 轴号
istartpoint 起始点TABLE编号
iendpoint 结束点TABLE编号
ftablemulti 位置比例,一般设为脉冲当量值
fDistance 参考运动的距离
ilinkaxis 参考主轴
ioption 参考轴的连接方式,具体意义请参见ZBASIC编程手册或PC函数手册
flinkstartpos 当ioption参数设置为2时,该参数表示连接开始启动的绝对位置
linkoffpos: 当ioption参数bit4置为1时,该参数表示主轴已经运行完的相对位置
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Cambox(ZMC_HANDLE handle, int iaxis,int istartpoint, int iendpoint, float ftablemulti, float fDistance, int ilinkaxis, int ioption, float flinkstartpos,float linkoffpos);
/*************************************************************
Description: //特殊凸轮 同步运动
Input: //卡链接handle
iaxis 参与运动的轴号(跟随轴)
fDistance 同步过程跟随轴运动距离
fLinkDis 同步过程参考轴(主轴)运动绝对距离
fLinkAcc 跟随轴加速阶段,参考轴移动的绝对距离
fLinkDec 跟随轴减速阶段,参考轴移动的绝对距离
iLinkaxis 参考轴的轴号
ioption 连接模式选项,具体意义请参见ZBASIC编程手册或PC函数手册
link_pos 当ioption参数设置为2时,该参数表示连接开始启动的绝对位置
link_offpos 当ioption参数bit4置为1时,该参数表示主轴已经运行完的相对位置
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Movelink(ZMC_HANDLE handle, int iaxis, float fDistance, float fLinkDis, float fLinkAcc, float fLinkDec, int iLinkaxis, int ioption, float link_pos, float link_offpos);
/*************************************************************
Description: //特殊凸轮 同步运动
Input: //卡链接handle
iaxis 参与运动的轴号(跟随轴)
fDistance 同步过程跟随轴运动距离
fLinkDis 同步过程参考轴(主轴)运动绝对距离
startsp 启动时跟随轴和参考轴的速度比例,units/units单位,负数表示跟随轴负向运动
endsp 结束时跟随轴和参考轴的速度比例,units/units单位, 负数表示跟随轴负向运动。
iLinkaxis 参考轴的轴号
ioption 连接模式选项,具体意义请参见ZBASIC编程手册或PC函数手册
link_pos 当ioption参数设置为2时,该参数表示参考轴在该绝对位置值时,连接开始
link_offpos 当ioption参数bit4置为1时,该参数表示主轴已经运行完的相对位置。20170428以上固件支持。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Moveslink(ZMC_HANDLE handle, int iaxis,float fDistance, float fLinkDis, float startsp, float endsp,int iLinkaxis, int ioption,float link_pos,float link_offpos);
/*************************************************************
Description: //连接 同步运动指令 电子齿轮
Input: //卡链接handle
ratio 比率,可正可负,注意是脉冲个数的比例。
link_axis 连接轴的轴号,手轮时为编码器轴
move_axis 随动轴号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Connect(ZMC_HANDLE handle, float ratio, int link_axis, int move_axis);
/*************************************************************
Description: //连接 同步运动指令 电子齿轮 将当前轴的目标位置与link_axis轴的插补矢量长度通过电子齿轮连接
Input: //卡链接handle
ratio 比率,可正可负,注意是脉冲个数的比例。
link_axis 连接轴的轴号,手轮时为编码器轴
move_axis 随动轴号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Connpath(ZMC_HANDLE handle, float ratio, int link_axis, int move_axis);
/*************************************************************
Description: //位置锁存指令
Input: //卡链接handle
iaxis 轴号
imode 锁存模式
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Regist(ZMC_HANDLE handle,int iaxis, int imode);
/*************************************************************
Description: //编码器输入齿轮比,缺省(1,1)
Input: //卡链接handle
iaxis 轴号
mpos_count 分子,不要超过65535
input_count 分母,不要超过65535
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_EncoderRatio(ZMC_HANDLE handle, int iaxis,int output_count,int input_count);
/*************************************************************
Description: //设置步进输出齿轮比,缺省(1,1)
Input: //卡链接handle
iaxis 轴号
mpos_count 分子,1-65535
input_count 分母,1-65535
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_StepRatio(ZMC_HANDLE handle, int iaxis, int output_count,int input_count);
/*************************************************************
Description: //所有轴立即停止
Input: //卡链接handle
imode 停止模式
0(缺省)取消当前运动
1 取消缓冲的运动
2 取消当前运动和缓冲运动。
3 立即中断脉冲发送。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Rapidstop(ZMC_HANDLE handle, int imode);
/*************************************************************
Description: //多个轴运动停止
Input: //卡链接handle 轴号, 距离
imaxaxises 轴数
piAxislist 轴列表
imode 模式
0(缺省)取消当前运动
1 取消缓冲的运动
2 取消当前运动和缓冲运动。
3 立即中断脉冲发送。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_CancelAxisList(ZMC_HANDLE handle, int imaxaxises, int *piAxislist, int imode);
/*************************************************************
Description: //CONNFRAME机械手逆解指令 2系列以上控制器支持
Input: //卡链接handle
Jogmaxaxises 关节轴数量
JogAxislist 关节轴列表
frame 机械手类型
tablenum 机械手参数TABLE起始编号
Virmaxaxises 关联虚拟轴个数
VirAxislist 虚拟轴列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Connframe(ZMC_HANDLE handle,int Jogmaxaxises,int *JogAxislist, int frame, int tablenum , int Virmaxaxises , int *VirAxislist);
/*************************************************************
Description: //CONNREFRAME机械手正解指令 2系列以上控制器支持
Input: //卡链接handle
Virmaxaxises 关联虚拟轴个数
VirAxislist 虚拟轴列表
frame 机械手类型
tablenum 机械手参数TABLE起始编号
Jogmaxaxises 关节轴数量
JogAxislist 关节轴列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Connreframe(ZMC_HANDLE handle,int Virmaxaxises , int *VirAxislist, int frame, int tablenum , int Jogmaxaxises,int *JogAxislist);
#if 0
//单轴函数
#endif
/*************************************************************
Description: //轴叠加运动 iaddaxis运动叠加到iaxis轴 ,ADDAX指令叠加的是脉冲个数
Input: //卡链接handle
iaxis 被叠加轴
iaddaxis 叠加轴
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Single_Addax(ZMC_HANDLE handle, int iaxis, int iaddaxis);
/*************************************************************
Description: //单轴运动停止
Input: //卡链接handle
iaxis 轴号
imode 模式
0(缺省)取消当前运动
1 取消缓冲的运动
2 取消当前运动和缓冲运动。
3 立即中断脉冲发送。
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Single_Cancel(ZMC_HANDLE handle, int iaxis, int imode);
/*************************************************************
Description: //单轴连续运动
Input: //卡链接handle
iaxis 轴号
idir 方向 1正向 -1负向
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Single_Vmove(ZMC_HANDLE handle, int iaxis, int idir);
/*************************************************************
Description: //控制器方式回零
Input: //卡链接handle
iaxis 轴号
imode 模式
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Single_Datum(ZMC_HANDLE handle, int iaxis, int imode);
/*************************************************************
Description: //回零完成状态
Input: //卡链接handle
iaxis 轴号
Output: //homestatus 回零完成标志 0-回零异常 1回零成功
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetHomeStatus(ZMC_HANDLE handle,uint32 iaxis,uint32 * homestatus);
/*************************************************************
Description: //单轴相对运动
Input: //卡链接handle
iaxis 轴号
fdistance 距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Single_Move(ZMC_HANDLE handle, int iaxis, float fdistance);
/*************************************************************
Description: //单轴绝对运动
Input: //卡链接handle
iaxis 轴号
fdistance 距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Single_MoveAbs(ZMC_HANDLE handle, int iaxis, float fdistance);
#if 0
//辅助函数
#endif
/*********************内存操作
/*********************内存操作
/*************************************************************
Description: //写VR,
Input: //卡链接handle
vrstartnum VR起始编号
numes 写入的数量
pfValue 写入的数据列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetVrf(ZMC_HANDLE handle,int vrstartnum, int numes, float *pfValue);
/*************************************************************
Description: //VR读取, 可以一次读取多个
Input: //卡链接handle
vrstartnum 读取的VR起始地址
numes 读取的数量
Output: //pfValue 返回的读取值,多个时必须分配空间.
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetVrf(ZMC_HANDLE handle, int vrstartnum, int numes, float *pfValue);
/*************************************************************
Description: //VRINT读取, 必须150401以上版本才支持VRINT的DIRECTCOMMAND读取
Input: //卡链接handle
vrstartnum 读取的VR起始地址
numes 读取的数量
Output: //piValue 返回的读取值,多个时必须分配空间.
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetVrInt(ZMC_HANDLE handle, int vrstartnum, int numes, int *piValue);
/*************************************************************
Description: //写table
Input: //卡链接handle
tabstart 写入的TABLE起始编号
numes 写入的数量
pfValue 写入的数据值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetTable(ZMC_HANDLE handle,int tabstart, int numes, float *pfValue);
/*************************************************************
Description: //table读取, 可以一次读取多个
Input: //卡链接handle
tabstart 读取TABLE起始地址
numes 读取的数量
Output: //pfValue 多个时必须分配空间.
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetTable(ZMC_HANDLE handle, int tabstart, int numes, float *pfValue);
/*************************************************************
Description: //字符串转为float
Input: //卡链接handle
pstringin 数据的字符串
inumes 转换数据个数
Output: //pfvlaue 转换的数据
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_TransStringtoFloat(const char* pstringin, int inumes, float* pfvlaue);
/*************************************************************
Description: //字符串转为int
Input: //卡链接handle
pstringin 数据的字符串
inumes 转换数据个数
Output: //pivlaue 转换的数据
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_TransStringtoInt(const char* pstringin, int inumes, int* pivlaue);
/*************************************************************
Description: //把float格式的变量列表存储到文件, 与控制器的U盘文件格式一致.
Input: //sFilename 文件绝对路径
pVarlist 写入的数据列表
inum 数据的长度
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_WriteUFile(const char *sFilename, float *pVarlist, int inum);
/*************************************************************
Description: //读取float格式的变量列表, 与控制器的U盘文件格式一致.
Input: //sFilename 文件绝对路径
inum 数据的长度
Output: //pVarlist 读取的数据列表
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_ReadUFile(const char *sFilename, float *pVarlist, int* pinum);
/*************************************************************
Description: //modbus寄存器操作 modbus_bit
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
pdata 设置的位状态 按位存储
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Set0x(ZMC_HANDLE handle, uint16 start, uint16 inum, uint8* pdata);
/*************************************************************
Description: //modbus寄存器操作 modbus_bit
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
Output: //pdata 返回的位状态 按位存储
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Get0x(ZMC_HANDLE handle, uint16 start, uint16 inum, uint8* pdata);
/*************************************************************
Description: //modbus寄存器操作 MODBUS_REG
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
Output: //pdata 读取的REG寄存器值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Set4x(ZMC_HANDLE handle, uint16 start, uint16 inum, uint16* pdata);
/*************************************************************
Description: //modbus寄存器操作 MODBUS_REG
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
Output: //pdata 读取的REG寄存器值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Get4x(ZMC_HANDLE handle, uint16 start, uint16 inum, uint16* pdata);
/*************************************************************
Description: //modbus寄存器操作 MODBUS_IEEE
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
pfdata 设置值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Get4x_Float(ZMC_HANDLE handle, uint16 start, uint16 inum, float* pfdata);
/*************************************************************
Description: //modbus寄存器操作 MODBUS_IEEE
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
pfdata 设置值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Set4x_Float(ZMC_HANDLE handle, uint16 start, uint16 inum, float* pfdata);
/*************************************************************
Description: //modbus寄存器操作 MODBUS_LONG
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
pidata 设置值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Get4x_Long(ZMC_HANDLE handle, uint16 start, uint16 inum, int32* pidata);
/*************************************************************
Description: //modbus寄存器操作 MODBUS_LONG
Input: //卡链接handle 寄存器地址
start 起始编号
inum 数量
Output: //pidata 读取的REG寄存器值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Set4x_Long(ZMC_HANDLE handle, uint16 start, uint16 inum, int32* pidata);
/*************************************************************
Description: //读取modbus_string
Input: //卡链接handle
start modbus起始地址
inum 长度
Output: pidata 读取返回的字符串
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Get4x_String(ZMC_HANDLE handle, uint16 start, uint16 inum, char * pidata);
/*************************************************************
Description: //设置modbus_string
Input: //卡链接handle
start modbus起始地址
inum 长度
pidata 写入的字符串
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Modbus_Set4x_String(ZMC_HANDLE handle, uint16 start, uint16 inum, char * pidata);
/*************************************************************
Description: //写用户flash块, float数据
Input: //卡链接handle
uiflashid flash块号
uinumes 变量个数
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_FlashWritef(ZMC_HANDLE handle, uint16 uiflashid, uint32 uinumes, float *pfvlue);
/*************************************************************
Description: //读取用户flash块, float数据
Input: //卡链接handle
uiflashid flash块号
uibuffnum 缓冲变量个数
Output: //
puinumesread 读取到的变量个数
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_FlashReadf(ZMC_HANDLE handle, uint16 uiflashid, uint32 uibuffnum, float *pfvlue, uint32* puinumesread);
/*****************************************************************************************************2018-08-24 V2.1函数添加**************************
/*************************************************************
Description: //示波器触发函数 150723以后固件版本支持
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Trigger(ZMC_HANDLE handle);
//MOVE_PARA,MOVE_PWM, MOVE_SYNMOVE,MOVE_ASYNMOVE
/*************************************************************
Description: //运动中修改参数. 20170503以上固件支持
Input: //卡链接handle PARANAME, INDEX, VALUE
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MovePara(ZMC_HANDLE handle,uint32 base_axis,char * paraname,uint32 iaxis,float fvalue);
/*************************************************************
Description: //运动中修改PWM 20170503以上固件支持
Input: //卡链接handle PARANAME, INDEX, VALUE
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MovePwm(ZMC_HANDLE handle,uint32 base_axis,uint32 pwm_num,float pwm_duty,float pwm_freq);
/*************************************************************
Description: //运动中同步其他轴的运动,. 20170503以上固件支持
Input: //卡链接handle PARANAME, INDEX, VALUE
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveSynmove(ZMC_HANDLE handle,uint32 base_axis,uint32 iaxis,float fdist,uint32 ifsp);
/*************************************************************
Description: //运动中触发其他轴的运动. 20170503以上固件支持
Input: //卡链接handle PARANAME, INDEX, VALUE
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveASynmove(ZMC_HANDLE handle,uint32 base_axis,uint32 iaxis,float fdist,uint32 ifsp);
/*************************************************************
Description: //运动中修改TABLE
Input: //卡链接handle
base_axis 插补主轴编号
table_num TABLE编号
fvalue 修改值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveTable(ZMC_HANDLE handle,uint32 base_axis,uint32 table_num,float fvalue);
/*************************************************************
Description: //BASE轴运动缓冲加入一个可变的延时 固件150802以上版本, 或XPLC160405以上版本支持。
Input: //卡链接handle
base_axis 插补主轴编号
paraname 参数名字符串 DPOS MPOS IN AIN VPSPEED MSPEED MODBUS_REG MODBUS_IEEE MODBUS_BIT NVRAM VECT_BUFFED REMAIN
inum 参数编号或轴号
Cmp_mode 比较条件 1 >= 0= -1<= 对IN等BIT类型参数无效。
fvalue 比较值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveWait(ZMC_HANDLE handle,uint32 base_axis,char * paraname,int inum,int Cmp_mode,float fvalue);
/*************************************************************
Description: //BASE轴运动缓冲加入一个TASK任务 当任务已经启动时,会报错,但不影响程序执行。
Input: //卡链接handle
base_axis 插补主轴编号
tasknum 任务编号
labelname BAS中全局函数名或者标号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveTask(ZMC_HANDLE handle,uint32 base_axis,uint32 tasknum,char * labelname);
/*************************************************************
Description: //位置比较PSWITCH
Input: //卡链接handle
//比较器编号 num 0-15
//比较器使能 enable 0/1
//比较的轴号 axisnum
//输出口编号 outnum
//输出状态 outstate 0/1
//比较起始位置 setpos
//输出复位位置 resetpos
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Pswitch(ZMC_HANDLE handle, int num, int enable, int axisnum, int outnum, int outstate, float setpos,float resetpos);
/*************************************************************
Description: //硬件位置比较输出 4系列产品脉冲轴与编码器轴支持硬件比较输出
Input: //卡链接handle
//模式 mode 1-启动比较器, 2- 停止并删除没完成的比较点.
//方向 direction 0-坐标负向, 1- 坐标正向
//预留 Reserve 预留
//TABLE起始点 Tablestart 第一个比较点坐标所在TABLE编号
//TABLE结束点 tableend 最后一个比较点坐标所在TABLE编号
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_HwPswitch(ZMC_HANDLE handle,int Axisnum,int Mode, int Direction, int Reserve, int Tablestart, int Tableend);
/*************************************************************
Description: //硬件位置比较输出剩余缓冲获取 4系列产品脉冲轴与编码器轴支持硬件比较输出
Input: //卡链接handle
//模式 axisnum 轴号
output: //位置比较输出剩余缓冲数 buff
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetHwPswitchBuff(ZMC_HANDLE handle,int axisnum,int * buff);
/*************************************************************
Description: //硬件定时器用于硬件比较输出后一段时间后还原电平 4系列产品支持
Input: //卡链接 handle
//模式 mode 0停止, 2-启动
//周期时间 cyclonetime us单位
//有效时间 optime us单位
//重复次数 reptimes
//输出缺省状态 opstate 输出口变为非此状态后开始计时
// 输出口编号 opnum 必须能硬件比较输出的口
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_HwTimer(ZMC_HANDLE handle,int mode,int cyclonetime,int optime,int reptimes,int opstate,int opnum );
/*************************************************************
Description: //读取轴停止原因
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAxisStopReason(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //浮点型读全部轴参数状态
Input: //卡链接handle
Input: //
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAllAxisPara(ZMC_HANDLE handle,const char *sParam,int imaxaxis,float * pfValue);
/*************************************************************
Description: //浮点型读全部轴参数状态
Input: //卡链接handle
Input: //
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetAllAxisInfo(ZMC_HANDLE handle,int imaxaxis,int * IdleStatus,float * DposStatus,float * MposStatus,int * AxisStatus);
/*************************************************************
Description: //设置BASIC自定义全局数组
Input: //卡链接handle
arrayname 数组名称
arraystart 数组起始元素
numes 元素数量
pfValue 设置值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetUserArray(ZMC_HANDLE handle,char * arrayname ,int arraystart, int numes, float *pfValue);
/*************************************************************
Description: //读取设置BASIC自定义全局数组 , 可以一次读取多个
Input: //卡链接handle
arrayname 数组名称
arraystart 数组起始元素
numes 元素数量
Output: //pfValue 多个时必须分配空间.
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetUserArray(ZMC_HANDLE handle,char * arrayname ,int arraystart, int numes, float *pfValue);
/*************************************************************
Description: //设置自定义变量,
Input: //卡链接handle
varname 变量名称字符串
pfValue 设定值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetUserVar(ZMC_HANDLE handle,char * varname , float pfValue);
/*************************************************************
Description: //读取自定义全局变量,
Input: //卡链接handle
varname 变量名称字符串
Output: //pfValue 变量值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetUserVar(ZMC_HANDLE handle,char * varname , float *pfValue);
/*************************************************************
Description: //读取PCI的控制卡个数
Input: //
Output: //卡链接handle
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetMaxPciCards();
/*************************************************************
Description: //与控制器建立链接
Input: //PCI卡号,
Output: //卡链接handle
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_OpenPci(uint32 cardnum, ZMC_HANDLE * phandle);
/*************************************************************
Description: //获取控制器卡信息
Input: //卡链接handle
Output: SoftType 控制器型号类型
SoftVersion 控制器软件版本(固件版本)
ControllerId 控制器唯一ID
Return: //错误码
uint32 __stdcall ZMC_GetSoftVersion(ZMC_HANDLE handle,float *pVersion, char *pVerString, uint32 *pVerDate);
*************************************************************/
int32 __stdcall ZAux_GetControllerInfo(ZMC_HANDLE handle ,char * SoftType ,char * SoftVersion ,char * ControllerId);
/*************************************************************
Description: //读取卡槽上节点数量
Input: //卡链接handle
: //slot 槽位号缺省0
Output: //piValue 返回扫描成功节点数量
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetNodeNum(ZMC_HANDLE handle,int slot,int *piValue);
/*************************************************************
Description: //读取节点上的信息
Input: //卡链接handle
slot 槽位号
node 节点编号
sel 信息编号 0-厂商编号1-设备编号 2-设备版本 3-别名 10-IN个数 11-OUT个数
Output: //piValue 返回信息
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetNodeInfo(ZMC_HANDLE handle,int slot,int node,int sel ,int *piValue);
/*************************************************************
Description: //读取节点总线状态
Input: //卡链接handle
slot 槽位号缺省0
node 节点编号
Output: //nodestatus 按位处理 bit0-节点是否存在 bit1-通讯状态 bit2-节点状态
值为1时,bit0为1,bit1和bit2为0,设备通讯正常
值为3时,bit0和bit1为1,bit2为0,设备通讯出错
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetNodeStatus(ZMC_HANDLE handle,uint32 slot,uint32 node,uint32 * nodestatus);
/*************************************************************
Description: //读取节点SDO参数信息
Input: //卡链接handle
slot 槽位号 缺省0
node 节点编号
index 对象字典编号(注意函数为10进制数据)
subindex 子编号 (注意函数为10进制数据)
type 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32
Output: //value 读取的数据值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_SDORead(ZMC_HANDLE handle,uint32 slot,uint32 node,uint32 index,uint32 subindex ,uint32 type ,int32 * value, uint32 tableNumber = 0);
/*************************************************************
Description: //写节点SDO参数信息
Input: //卡链接handle
slot 槽位号 缺省0
node 节点编号
index 对象字典编号(注意函数为10进制数据)
subindex 子编号 (注意函数为10进制数据)
type 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32
value 设定的数据值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_SDOWrite(ZMC_HANDLE handle,uint32 slot,uint32 node,uint32 index,uint32 subindex ,uint32 type ,int32 value);
/*************************************************************
Description: //读取轴SDO参数信息
Input: //卡链接handle
slot 槽位号 缺省0
node 节点编号
index 对象字典编号(注意函数为10进制数据)
subindex 子编号 (注意函数为10进制数据)
type 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32
Output: //value 读取的数据值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_SDOReadAxis(ZMC_HANDLE handle,uint32 iaxis,uint32 index,uint32 subindex ,uint32 type ,int32 * value, uint32 tableNumber=0);
/*************************************************************
Description: //写轴SDO参数信息
Input: //卡链接handle
slot 槽位号 缺省0
node 节点编号
index 对象字典编号(注意函数为10进制数据)
subindex 子编号 (注意函数为10进制数据)
type 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32
value 设定的数据值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_SDOWriteAxis(ZMC_HANDLE handle,uint32 iaxis,uint32 index,uint32 subindex ,uint32 type ,int32 value);
/*************************************************************
Description: //Rtex读取参数信息
Input: //卡链接handle
iaxis 轴号
ipara 参数分类*256 + 参数编号 Pr7.11-ipara = 7*256+11
Output: //value 读取的数据值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_RtexRead(ZMC_HANDLE handle,uint32 iaxis ,uint32 ipara ,float * value);
/*************************************************************
Description: //Rtex写参数信息
Input: //卡链接handle
iaxis 轴号
ipara 参数分类*256 + 参数编号 Pr7.11-ipara = 7*256+11
value 设定的数据值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_RtexWrite(ZMC_HANDLE handle,uint32 iaxis ,uint32 ipara,float value);
/*************************************************************
Description: //设置回零偏移距离
Input: //卡链接handle
iaxis 轴号
fValue 偏移距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_SetDatumOffpos(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取回零偏移距离
Input: //卡链接handle
iaxis 轴号
Output: //fValue 反馈的偏移距离
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetDatumOffpos(ZMC_HANDLE handle, int iaxis, float * fValue);
/*************************************************************
Description: //总线驱动器回零
Input: //卡链接handle
homemode 回零模式,查看驱动器手册
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_Datum(ZMC_HANDLE handle,uint32 iaxis,uint32 homemode);
/*************************************************************
Description: //驱动器回零完成状态
Input: //卡链接handle
iaxis 轴号
Output: //homestatus 回零完成标志 0-回零异常 1回零成功
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetHomeStatus(ZMC_HANDLE handle,uint32 iaxis,uint32 * homestatus);
/*************************************************************
Description: //设置清除总线伺服报警
Input: //卡链接handle
iaxis 轴号
mode 模式 0-清除当前告警 1-清除历史告警 2-清除外部输入告警
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_DriveClear(ZMC_HANDLE handle,uint32 iaxis,uint32 mode);
/*************************************************************
Description: //读取当前总线驱动当前力矩 需要设置对应的DRIVE_PROFILE类型
Input: //卡链接handle
iaxis 轴号
Output: //piValue 当前转矩
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetDriveTorque(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置当前总线驱动最大转矩 需要设置对应的DRIVE_PROFILE类型
Input: //卡链接handle
iaxis 轴号
piValue 最大转矩限制
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_SetMaxDriveTorque(ZMC_HANDLE handle, int iaxis, int piValue);
/*************************************************************
Description: //读取当前总线驱动最大转矩 需要设置对应的DRIVE_PROFILE类型
Input: //卡链接handle
iaxis 轴号
Output: //piValue 返回的最大转矩
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetMaxDriveTorque(ZMC_HANDLE handle, int iaxis, int *piValue);
/*************************************************************
Description: //设置模拟量输出 力矩、速度模式下可以 总线驱动需要设置对应DRIVE_PROFILE类型 与ATYPE
Input: //卡链接handle
iaxis 轴号
模拟量 输出值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetDAC(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //读取模拟量输出 力矩、速度模式下可以 总线驱动需要设置对应DRIVE_PROFILE类型 与ATYPE
Input: //卡链接handle
iaxis 轴号
Output: //fValue 模拟量返回值
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetDAC(ZMC_HANDLE handle, int iaxis, float *fValue);
/*************************************************************
Description: //总线初始化 (针对Zmotion tools 工具软件配置过总线参数控制器使用有效)
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_InitBus(ZMC_HANDLE handle);
/*************************************************************
Description: //获取总线初始化完成状态 (针对Zmotion tools 工具软件配置过总线参数控制器使用有效)
Input: //卡链接handle
Output: //
Return: //错误码piValue 0-初始化失败 1成功
*************************************************************/
int32 __stdcall ZAux_BusCmd_GetInitStatus(ZMC_HANDLE handle,int *piValue);
/*************************************************************
Description: //读取多个输入信号
Input: //卡链接handle
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetInMulti(ZMC_HANDLE handle, int startio , int endio, int32 *piValue);
/*************************************************************
Description: //命令的延时等待时间
Input: //卡链接handle 毫秒时间
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_SetTimeOut(ZMC_HANDLE handle, uint32 timems);
/*************************************************************2017-12-14添加
Description: //硬件位置比较输出2 4系列产品, 20170513以上版本支持. ZMC306E/306N支持
Input: //卡链接 handle
//模式 mode
//输出口编号 Opnum 4系列 out 0-3为硬件位置比较输出
//第一个比较点的输出状态 Opstate 0-关闭 1打开
//多功能参数 ModePara1
//多功能参数 ModePara2
//多功能参数 ModePara3
//多功能参数 ModePara4
mode 1-启动比较器,
ModePara1 = 第一个比较点坐标所在TABLE编号
ModePara2 = 最后一个比较点坐标所在TABLE编号
ModePara3 = 第一个点判断方向, 0-坐标负向, 1- 坐标正向, -1-不使用方向
ModePara4 = 预留
ModePara5= 预留
ModePara6= 预留
mode 2- 停止并删除没完成的比较点.
ModePara1 = 预留
ModePara2 = 预留
ModePara3 = 预留
ModePara4 = 预留
ModePara5= 预留
ModePara6= 预留
//使用矢量距离比较时,与VECTOR_MOVED进行比较,建议连续运动前设置VECTOR_MOVED初始值
mode 3- 矢量比较方式
ModePara1 = 第一个比较点坐标所在TABLE编号
ModePara2 = 最后一个比较点坐标所在TABLE编号
ModePara3 = 预留
ModePara4 = 预留
ModePara5= 预留
ModePara6= 预留
Mode=4 :矢量比较方式, 单个比较点
ModePara1 = 比较点坐标
ModePara2 = 预留
ModePara3 = 预留
ModePara4 = 预留
ModePara5= 预留
ModePara6= 预留
Mode=5 :矢量比较方式, 周期脉冲模式
ModePara1 = 比较点坐标 VECTOR_MOVED当前运动距离
ModePara2 = 重复周期, 一个周期内比较两次, 先输出有效状态,再输出无效状态.
ModePara3 = 周期距离, 每隔这个距离输出Opstate, 输出有效状态的距离(ModePara4)后还原为无效状态.
ModePara4 = 输出有效状态的距离, (ModePara3- ModePara4) 为无效状态距离
ModePara5= 预留
ModePara6= 预留
Mode=6 :矢量比较方式, 周期模式, 这种模式一般与HW_TIMER一起使用.
ModePara1 = 比较点坐标 比较点VECTOR_MOVED当前运动距离
ModePara2 = 重复周期, 一个周期只比较一次
ModePara3 = 周期距离, 每隔这个距离输出一次
ModePara4 = 预留
ModePara5= 预留
ModePara6= 预留
Mode=7:与HW_TIMER一起使用
ModePara1 = 第一个比较点VECTOR_MOVED坐标所在TABLE编号
ModePara2 = 最后一个比较点VECTOR_MOVED坐标所在TABLE编号
[与hwtimer并用时,可以动态调整hwtimer参数]
ModePara3 = 动态调整HW_TIMER的有效时间
ModePara4 = 动态调整HW_TIMER的触发脉冲数,0-不输出
ModePara5= 动态调整HW_TIMER的脉冲周期时间
ModePara6= 预留
Mode=25, 26, 35,36, 多维的比较模式 25,26 2D比较模式 35,36 3D比较模式
ModePara1 = 比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较
ModePara2 = table里面存储的比较点个数
ModePara3 = 第一个比较点坐标所在table编号
[与hwtimer并用时,可以动态调整hwtimer参数]
ModePara4 = 脉冲时间
ModePara5= 脉冲个数
ModePara6= 脉冲周期
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_HwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode, int Opnum , int Opstate, float ModePara1, float ModePara2,float ModePara3,float ModePara4, float ModePara5,float ModePara6);
/*************************************************************
Description: //获取控制器最大规格数
Input: //卡链接handle
Output: //Max_VirtuAxises 最大虚拟轴数
Output: //Max_motor 最大电机数量
Output: //Max_io 最大IN,OUT,AD,DA数量
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetSysSpecification(ZMC_HANDLE handle, uint16 * Max_VirtuAxises,uint8 * Max_motor,uint8 *Max_io);
/*************************************************************
Description: ////主动上报的回调函数格式
Input: //卡链接handle
itypecode: 上传类型码
idatalength: 数据长度
pdata: 数据指针
Output: //
Return: //错误码
*************************************************************/
typedef void (*PZMCAutoUpCallBack)(ZMC_HANDLE handle, int32 itypecode, int32 idatalength, uint8 *pdata);
/*************************************************************
Description: //控制器自动上报
Input: //卡链接 handle
Input: //回调函数 pcallback
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_SetAutoUpCallBack(ZMC_HANDLE handle, PZMCAutoUpCallBack pcallback);
/*************************************************************
Description: //IO接口 设置输出
Input: //卡链接handle
Input: //IO口起始编号 iofirst
Input: //IO口结束编号 ioend
Input: //输出口状态 istate按位存储,一个UINT存储32个输出口状态
Output: //状态
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetOutMulti(ZMC_HANDLE handle, uint16 iofirst,uint16 ioend, uint32 * istate);
/*************************************************************
Description: //IO接口 设置多路输出
Input: //卡链接handle
Input: //IO口起始编号 iofirst
Input: //IO口结束编号 ioend
Input: //输出口状态 istate按位存储,一个UINT存储32个输出口状态
Output: //状态
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetOutMulti(ZMC_HANDLE handle, uint16 iofirst,uint16 ioend, uint32 * istate);
/*************************************************************
Description: //多条相对多轴直线插补
Input: //卡链接handle
iMoveLen 填写的运动长度
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MultiMove(ZMC_HANDLE handle,int iMoveLen, int imaxaxises, int *piAxislist, float *pfDisancelist);
/*************************************************************
Description: //多条相对多轴直线插补
Input: //卡链接handle
iMoveLen 填写的运动长度
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MultiMoveAbs(ZMC_HANDLE handle,int iMoveLen, int imaxaxises, int *piAxislist, float *pfDisancelist);
/*************************************************************
Description: //机械手坐标系旋转
Input: //卡链接handle
iaxis 轴号 关节轴/虚拟轴
pfRotatePara 平移旋转参数
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_FrameRotate(ZMC_HANDLE handle,int iaxis, float *pfRotatePara);
/*************************************************************
Description: //获取CAN扩展资源规格
Input: //卡链接handle
Output: //CanNum 当前连接的CAN从站数量
Output: //CanId_List 当前连接的CAN从站ID列表
Output: //CanIn_List 节点输入点数量
Output: //CanOut_List 节点输出点数量
Output: //CanAin_List 节点AD数量
Output: //CanAOut_List 节点DA数量
Output: //CanAxis_List 节点轴数量
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetCanInfo(ZMC_HANDLE handle, uint8 * CanNum,uint16 * CanId_List,uint8 *CanIn_List,uint8 *CanOut_List,uint8 *CanAin_List,uint8 *CanAOut_List,uint8 *CanAxis_List);
/*************************************************************
Description: //多条相对PT运动
Input: //卡链接handle
iMoveLen 填写的运动数量
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pTickslist 周期列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MultiMovePt(ZMC_HANDLE handle,int iMoveLen, int imaxaxises, int *piAxislist, uint32 *pTickslist, float *pfDisancelist);
/*************************************************************
Description: //多条绝对PT运动
Input: //卡链接handle
iMoveLen 填写的运动数量
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pTickslist 周期列表
pfDisancelist 距离列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MultiMovePtAbs(ZMC_HANDLE handle,int iMoveLen, int imaxaxises, int *piAxislist, uint32 *pTickslist, float *pfDisancelist);
/*************************************************************
Description: //下载ZAR文件到控制
Input: //卡链接handle
Input: //Filename 文件路径
Input: //下载到RAM-ROM 0-RAM 1-ROM
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_ZarDown(ZMC_HANDLE handle,const char *Filename,uint32 run_mode);
/*************************************************************
Description: //读取RTC时间
Input: //卡链接handle
Input: //系统日期 格式YYMMDD
Input: //系统时间 格式HHMMSS
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetRtcTime(ZMC_HANDLE handle,char * RtcDate,char * RtcTime);
/*************************************************************
Description: //设置RTC时间
Input: //卡链接handle
Input: //系统日期 格式YYMMDD
Input: //系统时间 格式HHMMSS
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_SetRtcTime(ZMC_HANDLE handle,char * RtcDate,char * RtcTime);
/*************************************************************
Description: //与控制器建立链接, 可以指定连接的等待时间
Input: //连接类型 type 1-COM 2-ETH 3-预留USB 4-PCI
Input: //连接字符串 pconnectstring COM口号/IP地址
Input: //连接超时时间 uims
Output: //卡链接handle
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_FastOpen(int type, char *pconnectstring, uint32 uims ,ZMC_HANDLE * phandle);
/*************************************************************
Description: //自定义二次回零
Input: //卡链接handle
Input: //轴号iaxis
Input: //回零模式imode
Input: //回零高速HighSpeed
Input: //回零低速HighSpeed
Input: //二次回零偏移距离DatumOffset
Output: //
Return: //
*************************************************************/
int32 __stdcall ZAux_Direct_UserDatum(ZMC_HANDLE handle, int iaxis, int imode,float HighSpeed,float LowSpeed,float DatumOffset);
/*************************************************************
Description: //设置轴的螺距补偿,扩展轴无效。
Input: //handle 句柄连接
Input: //iaxis 轴号
Input: //iEnable 是否启用补偿
Input: //StartPos 起始补偿MPOS位置
Input: //maxpoint 补偿区间总点数
Input: //DisOne 每个补偿点间距
Input: //TablNum 补偿坐标值填入TABLE系统数组起始引导地址
Input: //pfDisancelist 区间补偿值列表
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Pitchset(ZMC_HANDLE handle,int iaxis,int iEnable,float StartPos,uint32 maxpoint,float DisOne ,uint32 TablNum,float * pfDisancelist);
/*************************************************************
Description: //设置轴的螺距双向补偿,扩展轴无效。
Input: //handle 句柄连接
Input: //iaxis 轴号
Input: //iEnable 是否启用补偿
Input: //StartPos 起始补偿MPOS位置
Input: //maxpoint 补偿区间总点数
Input: //DisOne 每个补偿点间距
Input: //TablNum 补偿坐标值填入TABLE系统数组起始引导地址
Input: //pfDisancelist 区间补偿值列表
Input: //RevTablNum 反向补偿坐标值填入TABLE系统数组起始引导地址
Input: //RevpfDisancelist 反向区间补偿值列表 补偿数据方向于正向方向一致
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Pitchset2(ZMC_HANDLE handle,int iaxis,int iEnable,float StartPos,uint32 maxpoint,float DisOne ,uint32 TablNum,float * pfDisancelist ,uint32 RevTablNum,float * RevpfDisancelist);
/*************************************************************
Description: //设置轴的螺距补偿状态读取,扩展轴无效。
Input: //handle 句柄连接
Input: //iaxis 轴号
Output: //IfEnable 是否启用补偿 0关闭 -1开启
Output: //PitchDist 补偿距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetPitchStatus(ZMC_HANDLE handle,int iaxis,int * IfEnable,float * PitchDist);
// 增加周期上报的函数设置
/*************************************************************
Description: // 使能周期上报
Input: // cycleindex: 上报通道号, 0-最大值-1
fintervalms: 上报间隔时间, ms单位, 不能低于控制器SERVO_PERIOD
psetesname 上报参数选择, 语法: 参数1, 参数2(index), 参数3(index, numes)
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_CycleUpEnable(ZMC_HANDLE handle, uint32 cycleindex, float fintervalms, const char* psetesname);
/*************************************************************
Description: // 去使能周期上报
Input: // cycleindex: 上报通道号, 0-最大值-1
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_CycleUpDisable(ZMC_HANDLE handle, uint32 cycleindex);
/*************************************************************
Description: // 周期上报收到的包次数, 超过溢出. 调试使用.
Input: //
Output: //
Return: // 次数
*************************************************************/
uint32 __stdcall ZAux_CycleUpGetRecvTimes(ZMC_HANDLE handle, uint32 cycleindex);
/*************************************************************
Description: // 强制上报一次, 在运动指令后idle可能不准确的情况下调用.
Input: //
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_CycleUpForceOnce(ZMC_HANDLE handle, uint32 cycleindex);
/*************************************************************
Description: // 从周期上报里面读取内容
Input: // cycleindex -1, 自动选择cycle编号
psetname 参数名称
isetindex 参数编号
Output: // pvalue 返回值
Return: // 错误码
*************************************************************/
uint32 __stdcall ZAux_CycleUpReadBuff(ZMC_HANDLE handle, uint32 cycleindex, const char *psetname, uint32 isetindex, double *pvalue);
/*************************************************************
Description: // 从周期上报里面读取内容
Input: // cycleindex -1, 自动选择cycle编号
psetname 参数名称
isetindex 参数编号
Output: // pvalue 返回值
Return: // 错误码
*************************************************************/
uint32 __stdcall ZAux_CycleUpReadBuffInt(ZMC_HANDLE handle, uint32 cycleindex, const char *psetname, uint32 isetindex, int32*pvalue);
/*************************************************************
Description: //多轴多段线直线连续插补
Input: //卡链接handle
imode bit0- bifabs
bit1- bifsp 是否
bit2- bifresume
bit3- bifmovescan 调用
iMoveLen 填写的运动长度
imaxaxises 参与运动总轴数
piAxislist 轴号列表
pfDisancelist 距离列表 iMoveLen * imaxaxises
Output: //
iReBuffLen 剩余缓冲可以下发的最大命令长度
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MultiLineN(ZMC_HANDLE handle,int imode,int iMoveLen, int imaxaxises, int *piAxislist, float *pfDisancelist,int *iReBuffLen);
/*************************************************************
Description: //皮带同步跟随运动
Input: //卡链接handle
imode 同步模式 -1结束模式 -2强制结束 0-第一个轴跟随 10-第二个轴跟随 20-第二个轴跟随 小数位-angle:皮带旋转角度
synctime 同步时间,ms单位,本运动在指定时间内完成,完成时BASE轴跟上皮带且保持速度一致。0表示根据运动轴的速度加速度来估计同步时间,可能不准确
syncposition 皮带轴物体被感应到时皮带轴的位置
syncaxis 皮带轴轴号
imaxaxises 参与同步从轴总数
piAxislist 从站轴号列表
pfDisancelist 皮带轴物体被感应到时从轴的绝对坐标位置
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveSync(ZMC_HANDLE handle,float imode,int synctime, float syncposition, int syncaxis, int imaxaxises, int *piAxislist, float *pfDisancelist);
/*************************************************************
Description: //连续位置锁存指令
Input: //卡链接handle
iaxis 轴号
imode 锁存模式
iTabStart 连续锁存的内容存储的table位置,第一个table元素存储锁存的个数,后面存储锁存的坐标,最多保存个数= numes-1,溢出时循环写入
iTabNum 占用的table个数
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_CycleRegist(ZMC_HANDLE handle,int iaxis, int imode,int iTabStart,int iTabNum);
/*************************************************************
Description: //运动中取消其他轴运动
Input: //卡链接handle
base_axis 插补主轴编号
table_num TABLE编号
fvalue 修改值
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveCancel(ZMC_HANDLE handle,int32 base_axis,int32 Cancel_Axis,int iMode);
/*************************************************************
Description: //Pdo写操作
Input: //卡链接handle
inode 节点号
index 对象字典
subindex 子对象
type 数据类型
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_NodePdoWrite(ZMC_HANDLE handle,uint32 inode,uint32 index,uint32 subindex ,uint32 type ,int value);
/*************************************************************
Description: //Pdo读操作
Input: //卡链接handle
inode 节点号
index 对象字典
subindex 子对象
type 数据类型
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_BusCmd_NodePdoRead(ZMC_HANDLE handle,uint32 inode,uint32 index,uint32 subindex ,uint32 type ,int* ivalue); //POD写数据
/*************************************************************
Description: //示波器采样
Input: //卡链接handle
iEnable 是否使能
iPeriod 采样周期 以控制器周期为单位
iStartTab 数据起始TABLE位置
iStopTab 数据停止TABLE位置
iParaNum 采集数据源数量 最大8个
ParaNamep 采集数据源字符名称
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Scope(ZMC_HANDLE handle,int iEnable,int iPeriod,int iStartTab,int iStopTab,int iParaNum ,char * ParaNamep[8]);
/*************************************************************
Description: //获取示波器采样长度
Input: //卡链接handle
output: //数据长度 ilen
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_GetScopeLength(ZMC_HANDLE handle,int *ilen);
/*************************************************************
Description: //硬件位置比较输出 运动缓冲方式
Input: //卡链接 handle
//模式 mode
//输出口编号 Opnum 4系列 out 0-3为硬件位置比较输出
//第一个比较点的输出状态 Opstate 0-关闭 1打开
//多功能参数 ModePara1
//多功能参数 ModePara2
//多功能参数 ModePara3
//多功能参数 ModePara4
mode 1-启动比较器,
ModePara1 = 第一个比较点坐标所在TABLE编号
ModePara2 = 最后一个比较点坐标所在TABLE编号
ModePara3 = 第一个点判断方向, 0-坐标负向, 1- 坐标正向, -1-不使用方向
ModePara4 = 预留
mode 2- 停止并删除没完成的比较点.
ModePara1 = 预留
ModePara2 = 预留
ModePara3 = 预留
ModePara4 = 预留
mode 3- 矢量比较方式
ModePara1 = 第一个比较点坐标所在TABLE编号
ModePara2 = 最后一个比较点坐标所在TABLE编号
ModePara3 = 预留
ModePara4 = 预留
Mode=4 :矢量比较方式, 单个比较点
ModePara1 = 比较点坐标
ModePara2 = 预留
ModePara3 = 预留
ModePara4 = 预留
Mode=5 :矢量比较方式, 周期脉冲模式
ModePara1 = 比较点坐标
ModePara2 = 重复周期, 一个周期内比较两次, 先输出有效状态,再输出无效状态.
ModePara3 = 周期距离, 每隔这个距离输出Opstate, 输出有效状态的距离(ModePara4)后还原为无效状态.
ModePara4 = 输出有效状态的距离, (ModePara3- ModePara4) 为无效状态距离
Mode=6 :矢量比较方式, 周期模式, 这种模式一般与HW_TIMER一起使用.
ModePara1 = 比较点坐标
ModePara2 = 重复周期, 一个周期只比较一次
ModePara3 = 周期距离, 每隔这个距离输出一次
ModePara4 = 预留
Mode=7:与HW_TIMER一起使用
ModePara1 = 第一个比较点VECTOR_MOVED坐标所在TABLE编号
ModePara2 = 最后一个比较点VECTOR_MOVED坐标所在TABLE编号
ModePara3 = 预留
ModePara4 = 预留
Mode=25, 26, 35,36, 多维的比较模式 25,26 2D比较模式 35,36 3D比较模式
ModePara1 = 比较位置每个轴左右的脉冲偏差,进入偏差范围后开始比较
ModePara2 = table里面存储的比较点个数
ModePara3 = 第一个比较点坐标所在table编号
ModePara4 = 预留
动态修改HW_TIMER参数,使用前提前打开HW_TIMER
HwTimerOpenTime 有效时间,us单位
HwTimerCycTime 周期时间,us单位
HwTimerReptimes 重复次数
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveHwPswitch2(ZMC_HANDLE handle,int Axisnum,int Mode, int Opnum , int Opstate, float ModePara1, float ModePara2,float ModePara3,float ModePara4,float HwTimerOpenTime,float HwTimerCycTime,int HwTimerReptimes);
/*************************************************************
Description: //反向间隙补偿
Input: //卡链接handle
iaxis 轴号
fdistance 距离
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_Backlash(ZMC_HANDLE handle, int iaxis, bool enable,float dist,float speed,float accel);
/*************************************************************
Description: //table读取, 可以一次读取多个
Input: //卡链接handle
tabstart 读取TABLE起始地址
numes 读取的数量
Output: //pfValue 多个时必须分配空间.
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_GetTable2(ZMC_HANDLE handle, int tabstart, int numes, double *pdoubleValue);
/*************************************************************
Description: //设置op口提前打开或关闭
Input: //卡链接handle
nAxis 轴号
uTime 延时时间
nOpnum 控制延时输出口
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_MoveOpDelay(ZMC_HANDLE handle, float uTime, int nAxis);
/*************************************************************
Description: //打包字符串运动下发
Input: handle 卡链接
pbuffer 运动字符串
buffsize 字符串下载大小
File3Name 下载生成的3次文件名称
ifile3num 3次文件编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_DownMem3FileRam(ZMC_HANDLE handle, const char* pbuffer, uint32 buffsize,char* File3Name,int32 ifile3num);
/*************************************************************
Description: //运行下发的文件
Input: handle 卡链接
ifile3num 3次文件编号
itasknum 运动任务号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Run3FileRam(ZMC_HANDLE handle,int32 ifile3num ,int32 itasknum);
/*************************************************************
Description: // 动态下载3次文件, 读取可写的空间.
Input: //卡链接handle
ifile3num 3次文件编号
Output: // //premainbyte 剩余控件字节数
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_3FileRamGetRemainSpace(ZMC_HANDLE handle,int32 ifile3num, uint32 *premainbyte);
/*************************************************************
Description: // 动态下载3次文件, 启动下载,
Input: //卡链接handle,
ifile3num 3次文件编号
File3Name 设置3次文件名.3次文件不会自动运行, 需调用ZAux_Run3FileRam启动.
Output: //premainbyte 剩余控件字节数
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_3FileRamDownBegin(ZMC_HANDLE handle, int32 ifile3num,uint32 *premainbyte,char*File3Name);
/*************************************************************
Description: // 动态下载3次文件, 一次下载的内容必须是完整的单行或多行,没有下载完成时, 后面用\n结尾, 全部下载完成时, 加\0结尾
\0会导致任务结束, 需要再启动可以再次调用ZMC_Run3FileRam
Input: //卡链接handle
ifile3num 3次文件编号
pbuffer 文件字符串
buffsize 字符串长度
Output: //premainbyte 剩余控件字节数
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_3FileRamDownPart(ZMC_HANDLE handle,int32 ifile3num, const char* pbuffer, uint32 buffsize, uint32 *premainbyte);
/*************************************************************
Description: // 动态下载3次文件, 下载结束, 自动加\0, 并且调用后再次调用 ZMC_3FileRamDownPart 会返回错误.
Input: //卡链接handle
ifile3num 3次文件编号
Output: //剩余控件字节数
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_3FileRamDownEnd(ZMC_HANDLE handle,int32 ifile3num);
/*************************************************************
Description: //下载3次文件到RAM
Input: //卡链接handle 文件名, 必须是3次文件
pfilename 3次文件名称
pfilenameinControl 支持NC文件名, 必须带名称, 否则无法区分bas还是NC文件
ifile3num 3次文件编号
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Down3FileRam(ZMC_HANDLE handle, const char* pfilename, const char* pfilenameinControl,int32 ifile3num);
/*************************************************************
Description: //设置插补运动OP提前距离
Input: //卡链接handle
iaxis 轴号
Output: //fValue ,MOVE_OP提前距离输出设置, 缺省0不生效, 设置正数会比缺省输出位置提前指定矢量距离, 设置负数则延后指定矢量距离.
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_Direct_SetMoveOPAdist(ZMC_HANDLE handle, int iaxis, float fValue);
/*************************************************************
Description: //ZPJ项目文件生成ZAR并且下载到控制器运行
Input: //卡链接handle
Input: //ZpjName ZPJ文件路径
Input: //ZarName Zar文件路径
Input //pPass 软件密码, 绑定APP_PASS 没有密码时pPass = NULL
Input //uid 绑定控制器唯一ID, 0-不绑定
Input: //下载到RAM-ROM 0-RAM 1-ROM
Output: //
Return: //错误码
*************************************************************/
int32 __stdcall ZAux_ZpjDown(ZMC_HANDLE handle,const char *ZpjName,const char *ZarName,const char *pPass, uint32 uid,uint32 run_mode);
/// <summary>
/// 轴的加减速曲线类型设置 20220107增加.
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="axis">轴编号</param>
/// <param name="mode">[0- 缺省值, 使用sramp来设置S曲线],
/// [ 6- 新增类型SS曲线, 加加速度连续的曲线类型,SS模式比T形减速会增加87%的减速时间。此模式加速时使用0模式, 方便连续小线段插补],
/// [7- 新增类型,SS曲线, 加加速度连续的曲线类型。动态修改轴参数或连续插补可能导致加加速度无法连续,此时会切换到0模式,因此建议SRAMP也设置合适值],
/// [4-20220416增加,起步时最大加速度, 达到最高速时加速度渐变为0]</param>
/// <returns></returns>
int32 __stdcall ZAux_SetVpMode(ZMC_HANDLE handle, uint axis, uint mode);
/// <summary>
/// 轴的精准输出op设置
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="axis">轴号</param>
/// <param name="mode">模式:\
bit0:1-VP_SPEED缺省使用插补速度,0-VP_SPEED 使用单轴的速度\
bit1:1 - 使用MOVE_OP精确输出功能, 0 - MOVE_OP原来的方式\
bit4:1 - 对带编码器功能的轴,使用编码器位置的MOVE_OP精准方式\
多个编码器轴插补时,使用BASE运动主轴的设置</param>
/// <returns></returns>
int32 __stdcall ZAux_SetAxisZset(ZMC_HANDLE handle, uint axis, uint mode);
/// <summary>
/// 控制器总线扫描
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="slotNumber">槽位号</param>
/// <param name="retStr">命令运行完成后返回的字符内容</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_SlotScan(ZMC_HANDLE handle,uint slotNumber);
/// <summary>
/// 总线开启
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="slotNumber">槽位号</param>
/// <param name="retStr">命令运行完成后返回的字符内容</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_SlotStart(ZMC_HANDLE handle, uint slotNumber);
/// <summary>
/// 总线停止
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="slotNumber">槽位号</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_SlotStop(ZMC_HANDLE handle, uint slotNumber);
/// <summary>
/// 读取控制系统规格
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="code">[0- 最大虚拟轴数]、[1-支持电机个数]、[2-本体输入个数]、[3-本体输出个数]、[4- 本体模拟输入AIN]、[5-本体模拟输出AOUT]、[6-PWM个数]、 [7- BASIC任务数,不包含中断任务]、[8-总线槽位数]、[9-3次文件个数]、[10-串口链接数]、[11-网络链接数]、[12-网络自定义链接数0-不支持]、 [13-网络互联主端数,0-不支持, (从端总是支持)]、[14-FLASH块数]、[15-FLASH块大小]、[16-VR个数]、 [17-MODBUS_BIT个数]、[18-MODBUS_REG个数]、[19-定时器个数]、[20-数组空间]、[21-虚拟最大输入个数,对应PLC的X寄存器个数]、[22-虚拟最大输出个数,对应PLC的Y寄存器个数]、[23-虚拟最大AIN个数]、[24-虚拟最大AOUT个数]、[25-PLC计数器]、[26-PLC S寄存器]、[27-PLC V寄存器]、[28-PLC Z寄存器]、 [29-PLC L寄存器]、[30-HMI个数,(包括网络HMI与本体HMI)]、[31-本体自带HMI个数]</param>
/// <param name="value">读取到的系统值</param>
/// <returns></returns>
int32 __stdcall ZAux_GetSysZfeature(ZMC_HANDLE handle,uint code,uint &value);
/// <summary>
/// 总线通讯周期设置
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="value">值</param>
/// <returns></returns>
int32 __stdcall ZAux_SetServoPeriod(ZMC_HANDLE handle,uint value);
/// <summary>
/// 总线通讯周期获取
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="value">值</param>
/// <returns></returns>
int32 __stdcall ZAux_GetServoPeriod(ZMC_HANDLE handle, uint &value);
/// <summary>
/// 设备电机数获取
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="slot">槽位号</param>
/// <param name="node">节点</param>
/// <param name="axisNumber">电机数量</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_GetNodeAxisCount(ZMC_HANDLE handle,uint slot,uint node,uint&axisNumber);
/// <summary>
/// 设置轴PDO
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="axis">轴</param>
/// <param name="mode">pdo模式</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_SetDriveProfile(ZMC_HANDLE handle,uint axis,int mode);
/// <summary>
/// 获取轴PDO设置
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="axis">轴</param>
/// <param name="mode">读取的模式</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_GetDriveProfile(ZMC_HANDLE handle, uint axis,int & mode);
/// <summary>
/// 映射驱动器Io的起始编号
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="axis">轴</param>
/// <param name="IoStart">io初始编号</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_SetDriveIO(ZMC_HANDLE handle, uint axis,uint IoStart);
/// <summary>
/// 获取映射的驱动器Io的起始编号
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="axis">轴</param>
/// <param name="IoStart">io初始编号</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_GetDriveIO(ZMC_HANDLE handle, uint axis, uint &IoStart);
/// <summary>
/// 设置节点设备的IO初始位置
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="slot">槽</param>
/// <param name="node">节点</param>
/// <param name="IoStart">io起始编号</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_SetNodeIo(ZMC_HANDLE handle, uint slot, uint node, uint IoStart);
/// <summary>
/// 获取节点设备的IO初始位置
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="slot">槽</param>
/// <param name="node">节点</param>
/// <param name="IoStart">io起始编号</param>
/// <returns></returns>
int32 __stdcall ZAux_BusCmd_GetNodeIo(ZMC_HANDLE handle, uint slot, uint node, uint &IoStart);
/// <summary>
/// 轴分组 一停多,把几个轴设置为一组,驱动器告警后会关闭组内的所有使能(ECAT产品支持),脉冲轴设置无意义。
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="axisNumber">轴数</param>
/// <param name="axisList">轴列表数组</param>
/// <returns></returns>
int32 __stdcall ZAux_Direct_DisableGroup(ZMC_HANDLE handle,uint axisNumber ,uint* axisList);
/// <summary>
/// 控制所有总线轴的使能。使用EtherCAT总线时,必须使WDOG = 1。
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="b">是否使能</param>
/// <returns></returns>
int32 __stdcall ZAux_Direct_SetWdog(ZMC_HANDLE handle, bool b);
/// <summary>
/// 获取所有总线轴的使能
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="b">是否使能</param>
/// <returns></returns>
int32 __stdcall ZAux_Direct_GetWdog(ZMC_HANDLE handle, bool &b);
/// <summary>
/// 运动中叠加
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="baseAxis">主轴</param>
/// <param name="iaxisNumber">叠加轴的数量</param>
/// <param name="iaddaxisList">叠加轴的列表</param>
/// <returns></returns>
int32 __stdcall ZAux_Direct_MoveAddax(ZMC_HANDLE handle, int baseAxis, uint iaxisNumber, int* iaddaxisList);
/// <summary>
/// 空间圆弧绝对运动 + 螺旋插补运动 20130901 以后的控制器版本支持
/// </summary>
/// <param name="handle">卡链接handle</param>
/// <param name="imaxaxises">参与运动总轴数</param>
/// <param name="piAxislist">轴号列表</param>
/// <param name="fend1">第1个轴运动距离参数1 绝对位置</param>
/// <param name="fend2">第2个轴运动距离参数1 绝对位置</param>
/// <param name="fend3">第3个轴运动距离参数1 绝对位置</param>
/// <param name="fcenter1"> 第1个轴运动距离参数2 绝对位置</param>
/// <param name="fcenter2">第2个轴运动距离参数2 绝对位置</param>
/// <param name="fcenter3">第3个轴运动距离参数2 绝对位置</param>
/// <param name="imode">指定前面参数的意义 0 当前点,中间点,终点三点定圆弧,距离参数1为终点绝对位置,距离参数2为中间点绝对位置。\
1 走最小的圆弧,距离参数1为终点距离,距离参数2为圆心的绝对位置。\
2 当前点,中间点,终点三点定圆,距离参数1为终点绝对位置,距离参数2为中间点绝对位置。\
3 先走最小的圆弧,再继续走完整圆,距离参数1为终点绝对位置,距离参数2为圆心的绝对位置。</param>
/// <param name="fcenter4">第4个轴运动绝对位置</param>
/// <param name="fcenter5">第5个轴运动绝对位置</param>
/// <returns>错误码</returns>
int32 __stdcall ZAux_Direct_MSphericalAbs(ZMC_HANDLE handle, int imaxaxises, int* piAxislist, float fend1, float fend2, float fend3, float fcenter1, float fcenter2, float fcenter3, int imode, float fcenter4, float fcenter5);
/// <summary>
/// //空间圆弧绝对 + 螺旋 插补SP运动 20130901 以后的控制器版本支持
/// </summary>
/// <param name="handle">卡链接handle</param>
/// <param name="imaxaxises">参与运动总轴数</param>
/// <param name="piAxislist">轴号列表</param>
/// <param name="fend1">第1个轴运动距离参数1 绝对位置</param>
/// <param name="fend2">第2个轴运动距离参数1 绝对位置</param>
/// <param name="fend3">第3个轴运动距离参数1 绝对位置</param>
/// <param name="fcenter1">第1个轴运动距离参数2 绝对位置</param>
/// <param name="fcenter2">第2个轴运动距离参数2 绝对位置</param>
/// <param name="fcenter3"> 第3个轴运动距离参数2 绝对位置</param>
/// <param name="imode">指定前面参数的意义:0 当前点,中间点,终点三点定圆弧,距离参数1为终点绝对位置,距离参数2为中间点绝对位置。\
1 走最小的圆弧,距离参数1为终点绝对位置,距离参数2为圆心的绝对位置。\
2 当前点,中间点,终点三点定圆,距离参数1为终点绝对位置,距离参数2为中间点绝对位置。\
3 先走最小的圆弧,再继续走完整圆,距离参数1为终点绝对位置,距离参数2为圆心的绝对位置。</param>
/// <param name="fcenter4">第4个轴运动距离参数 绝对位置</param>
/// <param name="fcenter5">第5个轴运动距离参数 绝对位置</param>
/// <returns></returns>
int32 __stdcall ZAux_Direct_MSphericalAbsSp(ZMC_HANDLE handle, int imaxaxises, int* piAxislist, float fend1, float fend2, float fend3, float fcenter1, float fcenter2, float fcenter3, int imode, float fcenter4, float fcenter5);
/// <summary>
/// 开启一个任务运行zbaisc定义的函数,需要用到控制器/卡 本身的任务编号
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="taskNumber">控制器/卡的任务编号</param>
/// <param name="BasicFunctionName">zbasic定义的函数名称可以带参数,例 test或test(1,2,3)或test(zbasic全局变量)</param>
/// <returns>错误码</returns>
int32 __stdcall ZAux_RunTask(ZMC_HANDLE handle, int taskNumber, const char* BasicFunctionName);
/// <summary>
/// 停止一个控制器/卡的任务
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="taskNumber">控制器/卡的任务编号</param>
/// <returns>错误码</returns>
int32 __stdcall ZAux_Direct_StopTask(ZMC_HANDLE handle, int taskNumber);
/// <summary>
/// 获取控制器/卡的任务状态
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="taskNumber">控制器/卡的任务编号</param>
/// <param name="status">状态返回值 0:任务停止 1:任务正在运行 3:任务暂停中</param>
/// <returns>错误码</returns>
int32 __stdcall ZAux_Direct_GetProcStatus(ZMC_HANDLE handle, int taskNumber,int& status);
/// <summary>
/// 恢复控制器/卡的指定任务运行
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="taskNumber">控制器/卡的任务编号</param>
/// <returns></returns>
int32 __stdcall ZAux_ResumeTask(ZMC_HANDLE handle, int taskNumber);
/// <summary>
/// 暂停控制器/卡的指定任务运行
/// </summary>
/// <param name="handle">句柄</param>
/// <param name="taskNumber">控制器/卡的任务编号</param>
/// <returns></returns>
int32 __stdcall ZAux_PauseTask(ZMC_HANDLE handle, int taskNumber);
#ifdef __cplusplus
}
#endif
#endif