using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; /********************************** 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指令 增加位置比较输出指令 **------------------------------------------------------------------------------------------------------ ********************************************************************************************************/ namespace cszmcaux { public class zmcaux { /// /// Execute在线命令 /// /// 连接句柄 /// 字符串命令 /// 返回的字符串 /// 返回的字符长度 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Execute", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Execute(IntPtr handle, string pszCommand, StringBuilder psResponse, UInt32 uiResponseLength); /// /// DirectCommand在线命令 /// /// 连接句柄 /// 命令字符串 /// 返回的字符串 /// 返回的字符长度 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_DirectCommand", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_DirectCommand(IntPtr handle, string pszCommand, StringBuilder psResponse, UInt32 uiResponseLength); /// /// 命令跟踪设置 /// /// 命令获取类型 0 关闭 1-只输出错误命令 2-只输出运动与设置命令 3输出全部命令 /// 文件路径 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SetTraceFile", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SetTraceFile(int bifTofile, string pFilePathName); /// /// 控制器串口链接 /// /// 串口号 /// 句柄指针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_OpenCom", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_OpenCom(UInt32 comid, out IntPtr phandle); /// /// 搜索串口连接控制器 /// /// 最小串口号 /// 最大串口号 /// 有效COM口列表 /// 连接时间 /// 句柄指针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SearchAndOpenCom", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SearchAndOpenCom(UInt32 uimincomidfind, UInt32 uimaxcomidfind, ref uint pcomid, UInt32 uims, out IntPtr phandle); /// /// 设置COM口连接参数 /// /// 波特率 /// 数据位 /// 校验位 /// 停止位 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SetComDefaultBaud", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SetComDefaultBaud(UInt32 dwbaudRate, UInt32 dwByteSize, UInt32 dwParity, UInt32 dwStopBits); /// /// 设置控制器IP地址 /// /// 连接句柄 /// IP地址 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SetIp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SetIp(IntPtr handle, string ipaddress); /// /// 以太网方式连接控制器 /// /// IP地址 /// 句柄指针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_OpenEth", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_OpenEth(string ipaddr, out IntPtr phandle); /// /// 快速搜索IP地址 /// /// Ip地址列表指针 /// 搜索IP地址最大长度 /// 搜索最大时间 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SearchEthlist", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SearchEthlist(StringBuilder ipaddrlist, UInt32 addrbufflength, UInt32 uims); /// /// 搜索控制器 /// /// IP地址 /// 最大搜索时间 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SearchEth", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SearchEth(string ipaddress, UInt32 uims); /// /// 关闭控制器链接 /// /// 连接句柄 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Close", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Close(IntPtr handle); /// /// 暂停继续运行BAS项目 /// /// 连接句柄 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Resume", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Resume(IntPtr handle); /// /// 暂停控制器中BAS程序 /// /// 连接句柄 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Pause", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Pause(IntPtr handle); /// /// 单个BAS文件生成ZAR并且下载到控制器运行 /// /// 连接句柄 /// BAS文件路径 /// RAM-ROM 0-RAM 1-ROM /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BasDown", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BasDown(IntPtr handle, string Filename, UInt32 run_mode); /// /// ZPJ文件下载 /// /// 连接句柄 /// ZpjName ZPJ文件路径 /// ZarName Zar文件路径 /// pPass 软件密码, 绑定APP_PASS 没有密码时pPass = NULL 或 "" /// uid 绑定控制器唯一ID, 0-不绑定 /// 下载到RAM-ROM 0-RAM 1-ROM /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_ZpjDown", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_ZpjDown(IntPtr handle, string ZpjName, string ZarName, string pPass, UInt32 uid, UInt32 run_mode); /// /// 读取输入信号 /// /// 连接句柄 /// 输入口编号 /// 输入口状态 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetIn(IntPtr handle, int ionum, ref UInt32 piValue); /// /// 打开输出口 /// /// 连接句柄 /// 输出口编号 /// 输出口状态值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetOp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetOp(IntPtr handle, int ionum, UInt32 iValue); /// /// 读取输出口状态 /// /// 连接句柄 /// 输出口编号 /// 输出口状态值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetOp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetOp(IntPtr handle, int ionum, ref UInt32 piValue); /// /// 读取模拟量输入值 /// /// 连接句柄 /// 模拟量输入编号 /// 返回的模拟量值 4系列以下0-4095 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAD", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAD(IntPtr handle, int ionum, ref float pfValue); /// /// 设置模拟量输出 /// /// 连接句柄 /// 模拟量输出编号 /// 设定的模拟量值4系列以下0-4095 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetDA", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetDA(IntPtr handle, int ionum, float fValue); /// /// 读取模拟输出口值 /// /// 连接句柄 /// 模拟量输出编号 /// 反馈模拟量值4系列以下0-4095 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetDA", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetDA(IntPtr handle, int ionum, ref float pfValue); /// /// 设置输入口反转 /// /// 连接句柄 /// 输入口编号 /// 反转状态设置值 0/1 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetInvertIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetInvertIn(IntPtr handle, int ionum, int bifInvert); /// /// 读取输入口反转状态 /// /// 连接句柄 /// 输入口编号 /// 反转状态返回值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetInvertIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetInvertIn(IntPtr handle, int ionum, ref int piValue); /// /// 设置pwm频率 /// /// 连接句柄 /// PWM编号口 /// 频率值设定值 硬件PWM1M 软PWM 2K /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetPwmFreq", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetPwmFreq(IntPtr handle, int ionum, float fValue); /// /// 读取pwm频率 /// /// 连接句柄 /// PWM编号口 /// 频率返回值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetPwmFreq", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetPwmFreq(IntPtr handle, int ionum, ref float pfValue); /// /// 设置pwm占空比 /// /// 连接句柄 /// PWM编号口 /// 占空比设置值 0-1 0表示关闭PWM口 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetPwmDuty", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetPwmDuty(IntPtr handle, int ionum, float fValue); /// /// 读取pwm占空比 /// /// 连接句柄 /// PWM编号口 /// 占空比反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetPwmDuty", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetPwmDuty(IntPtr handle, int ionum, ref float pfValue); /// /// 快速读取多个输入状态 /// /// 连接句柄 /// 输入口起始编号 /// 输入口结束编号 /// 输入口状态返回值 按位存储 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetModbusIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetModbusIn(IntPtr handle, int ionumfirst, int ionumend, byte[] pValueList); /// /// 快速读取多个输出口状态 /// /// 连接句柄 /// 输出口起始编号 /// 输出口结束编号 /// 输出口状态返回值 按位存储 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetModbusOut", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetModbusOut(IntPtr handle, int ionumfirst, int ionumend, byte[] pValueList); /// /// 快速读取多个轴的命令位置 /// /// 连接句柄 /// 轴数量 /// 命令位置反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetModbusDpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetModbusDpos(IntPtr handle, int imaxaxises, float[] pValueList); /// /// 快速读取多个轴的反馈位置 /// /// 连接句柄 /// 轴数量 /// 反馈位置反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetModbusMpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetModbusMpos(IntPtr handle, int imaxaxises, float[] pValueList); /// /// 快速读取多个轴的规划运行速度 /// /// 连接句柄 /// 轴数量 /// 规划速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetModbusCurSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetModbusCurSpeed(IntPtr handle, int imaxaxises, float[] pValueList); /// /// 通用的轴参数修改命令 /// /// 连接句柄 /// 轴参数名称字符串 "DPOS"... /// 轴号 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetParam", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetParam(IntPtr handle, string sParam, int iaxis, float fset); /// /// 通用的参数读取命令 /// /// 连接句柄 /// 轴参数名称字符串 "DPOS"... /// 轴号 /// 反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetParam", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetParam(IntPtr handle, string sParam, int iaxis, ref float pfValue); /// /// 设置轴加速度 /// /// 连接句柄 /// 轴号 /// 加速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetAccel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetAccel(IntPtr handle, int iaxis, float fValue); /// /// 读取轴加速度 /// /// 连接句柄 /// 轴号 /// 加速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAccel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAccel(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取叠加轴轴号 /// /// 连接句柄 /// 被叠加轴号 /// 叠加轴号反馈值 -1表示未被叠加 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAddax", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAddax(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴报警信号输入口 /// /// 连接句柄 /// 轴号 /// 输入口编号设定值 -1表示无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetAlmIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetAlmIn(IntPtr handle, int iaxis, int iValue); /// /// 读取轴报警信号输入口 /// /// 连接句柄 /// 轴号 /// 输入口编号返回值 -1表示无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAlmIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAlmIn(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴类型 /// /// 连接句柄 /// 轴号 /// 轴类型设置值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetAtype", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetAtype(IntPtr handle, int iaxis, int iValue); /// /// 读取轴类型 /// /// 连接句柄 /// 轴号 /// 轴类型反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAtype", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAtype(IntPtr handle, int iaxis, ref int piValue); /// /// 读取轴状态 /// /// 连接句柄 /// 轴号 /// 轴状态反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAxisStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAxisStatus(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴地址 /// /// 连接句柄 /// 轴号 /// 轴地址设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetAxisAddress", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetAxisAddress(IntPtr handle, int iaxis, int iValue); /// /// 读取轴地址 /// /// 连接句柄 /// 轴号 /// 轴地址反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAxisAddress", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAxisAddress(IntPtr handle, int iaxis, ref int piValue); /// /// 设置总线轴使能 /// /// 连接句柄 /// 轴号 /// 使能状态设定值 0-关闭 1- 打开 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetAxisEnable", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetAxisEnable(IntPtr handle, int iaxis, int iValue); /// /// 读取轴使能状态 /// /// 连接句柄 /// 轴号 /// 轴使能状态反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAxisEnable", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAxisEnable(IntPtr handle, int iaxis, ref int piValue); /// /// 设置同步运动链接速率 /// /// 连接句柄 /// 轴号 /// 同步连接速率设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetClutchRate", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetClutchRate(IntPtr handle, int iaxis, float fValue); /// /// 读取同步运动链接速率 /// /// 连接句柄 /// 轴号 /// 同步连接速率反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetClutchRate", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetClutchRate(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置锁存触发的结束坐标范围点 /// /// 连接句柄 /// 轴号 /// 范围设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetCloseWin", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetCloseWin(IntPtr handle, int iaxis, float fValue); /// /// 读取锁存触发的结束坐标范围点 /// /// 连接句柄 /// 轴号 /// 范围反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetCloseWin", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetCloseWin(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置拐角减速模式 /// /// 连接句柄 /// 轴号 /// 拐角减速模式设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetCornerMode", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetCornerMode(IntPtr handle, int iaxis, int pfValue); /// /// 读取拐角减速模式 /// /// 连接句柄 /// 轴号 /// 拐角模式反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetCornerMode", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetCornerMode(IntPtr handle, int iaxis, ref int piValue); /// /// 设置回零爬行速度 /// /// 连接句柄 /// 轴号 /// 回零慢速设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetCreep", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetCreep(IntPtr handle, int iaxis, float fValue); /// /// 读取回零爬行速度 /// /// 连接句柄 /// 轴号 /// 爬行速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetCreep", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetCreep(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴原点信号输入口 /// /// 连接句柄 /// 轴号 /// 原点信号输入口编号设定值 -1为无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetDatumIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetDatumIn(IntPtr handle, int iaxis, int iValue); /// /// 读取轴原点信号输入口编号 /// /// 连接句柄 /// 轴号 /// 输入口编号返回值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetDatumIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetDatumIn(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴减速度 /// /// 连接句柄 /// 轴号 /// 减速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetDecel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetDecel(IntPtr handle, int iaxis, float fValue); /// /// 读取轴减速度 /// /// 连接句柄 /// 轴号 /// 减速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetDecel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetDecel(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置拐角减速 起始减速角度 /// /// 连接句柄 /// 轴号 /// 起始减速角度设定值 弧度制 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetDecelAngle", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetDecelAngle(IntPtr handle, int iaxis, float fValue); /// /// 读取拐角减速 起始减速角度 /// /// 连接句柄 /// 轴号 /// 起始减速角度反馈值 弧度制 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetDecelAngle", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetDecelAngle(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴命令位置坐标 /// /// 连接句柄 /// 轴号 /// 命令位置设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetDpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetDpos(IntPtr handle, int iaxis, float fValue); /// /// 读取轴命令位置坐标 /// /// 连接句柄 /// 轴号 /// 命令位置反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetDpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetDpos(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴内部编码器值 (总线绝对值伺服时为绝对值位置) /// /// 连接句柄 /// 轴号 /// 编码器位置返回值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetEncoder", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetEncoder(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴当前运动的最终位置 /// /// 连接句柄 /// 轴号 /// 返回的最终位置坐标 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetEndMove", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetEndMove(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取当前和缓冲中运动的最终位置,可以用于相对绝对转换 /// /// 连接句柄 /// 轴号 /// 最终位置坐标反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetEndMoveBuffer", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetEndMoveBuffer(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置SP运动的结束速度 /// /// 连接句柄 /// 轴号 /// 结束速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetEndMoveSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetEndMoveSpeed(IntPtr handle, int iaxis, float fValue); /// /// 读取SP运动的结束速度 /// /// 连接句柄 /// 轴号 /// 结束速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetEndMoveSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetEndMoveSpeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置错误标记,和AXISSTATUS做与运算来决定哪些错误需要关闭WDOG。 /// /// 连接句柄 /// 轴号 /// 标志设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetErrormask", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetErrormask(IntPtr handle, int iaxis, int iValue); /// /// 读取错误标记,和AXISSTATUS做与运算来决定哪些错误需要关闭WDOG。 /// /// 连接句柄 /// 轴号 /// 错误标志返回值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetErrormask", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetErrormask(IntPtr handle, int iaxis, ref int piValue); /// /// 设置快速JOG输入口编号 /// /// 连接句柄 /// 轴号 /// 快速JOG输入点编号设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFastJog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFastJog(IntPtr handle, int iaxis, int iValue); /// /// 读取快速JOG输入口编号 /// /// 连接句柄 /// 轴号 /// JOG输入口编号反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFastJog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFastJog(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴异常快速减速度 /// /// 连接句柄 /// 轴号 /// 异常减速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFastDec", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFastDec(IntPtr handle, int iaxis, float iValue); /// /// 读取轴异常快速减速度 /// /// 连接句柄 /// 轴号 /// 异常减速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFastDec", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFastDec(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴随动误差 /// /// 连接句柄 /// 轴号 /// 轴随动误差反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFe", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFe(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴最大允许的随动误差值 /// /// 连接句柄 /// 轴号 /// 随动误差设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFeLimit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFeLimit(IntPtr handle, int iaxis, float fValue); /// /// 读取轴最大允许的随动误差值 /// /// 连接句柄 /// 轴号 /// 允许随动误差反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFeLimit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFeLimit(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴报警时随动误差值 /// /// 连接句柄 /// 轴号 /// 随动误差设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFRange", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFRange(IntPtr handle, int iaxis, float fValue); /// /// 读取轴报警时的随动误差值 /// /// 连接句柄 /// 轴号 /// 报警随动误差反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFeRange", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFeRange(IntPtr handle, int iaxis, ref float fValue); /// /// 设置轴保持输入口 /// /// 连接句柄 /// 轴号 /// 保持输入口编号设定值 -1表示无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFholdIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFholdIn(IntPtr handle, int iaxis, int iValue); /// /// 读取轴保持输入口编号 /// /// 连接句柄 /// 轴号 /// 输入口编号反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFholdIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFholdIn(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴保持速度 /// /// 连接句柄 /// 轴号 /// 保持速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFhspeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFhspeed(IntPtr handle, int iaxis, float fValue); /// /// 读取轴保持速度 /// /// 连接句柄 /// 轴号 /// 保持速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFhspeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFhspeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴SP运动的运行速度 /// /// 连接句柄 /// 轴号 /// 运行速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetForceSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetForceSpeed(IntPtr handle, int iaxis, float fValue); /// /// 读取轴SP运动的运行速度 /// /// 连接句柄 /// 轴号 /// 运行速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetForceSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetForceSpeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴正向软限位 /// /// 连接句柄 /// 轴号 /// 限位设定值 取消时设置一个较大值即可 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFsLimit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFsLimit(IntPtr handle, int iaxis, float fValue); /// /// 读取轴正向软限位 /// /// 连接句柄 /// 轴号 /// 限位反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFsLimit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFsLimit(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴小圆限速最小半径 /// /// 连接句柄 /// 轴号 /// 最小半径设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFullSpRadius", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFullSpRadius(IntPtr handle, int iaxis, float fValue); /// /// 读取轴小圆限速最小半径 /// /// 连接句柄 /// 轴号 /// 最小半径反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFullSpRadius", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFullSpRadius(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴正向硬限位输入口 /// /// 连接句柄 /// 轴号 /// 硬限位输入口编号设定值 -1表示无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFwdIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFwdIn(IntPtr handle, int iaxis, int iValue); /// /// 读取轴正向硬限位输入口编号 /// /// 连接句柄 /// 轴号 /// 硬限位输入口编号反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFwdIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFwdIn(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴正向JOG输入口 /// /// 连接句柄 /// 轴号 /// JOG输入口编号 -1表示无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetFwdJog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetFwdJog(IntPtr handle, int iaxis, int iValue); /// /// 读取轴正向JOG输入口编号 /// /// 连接句柄 /// 轴号 /// JOG输入口反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetFwdJog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetFwdJog(IntPtr handle, int iaxis, ref int piValue); /// /// 读取轴运动完成状态 /// /// 连接句柄 /// 轴号 /// 运动状态反馈值 0-运动中 -1 停止 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetIfIdle", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetIfIdle(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴脉冲输出模式 /// /// 连接句柄 /// 轴号 /// 脉冲模式设定值 0-3脉冲+方向 4-7双脉冲 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetInvertStep", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetInvertStep(IntPtr handle, int iaxis, int iValue); /// /// 读取轴脉冲输出模式 /// /// 连接句柄 /// 轴号 /// 脉冲模式反馈值 0-3脉冲+方向 4-7双脉冲 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetInvertStep", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetInvertStep(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴插补运动时是否参与速度计算 缺省参与(1)。此参数只对直线和螺旋的第三个轴起作用 /// /// 连接句柄 /// 轴号 /// 模式设定值 0-不参数 1-参与 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetInterpFactor", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetInterpFactor(IntPtr handle, int iaxis, int iValue); /// /// 读取轴插补运动时是否参与速度计算 缺省参与(1)。此参数只对直线和螺旋的第三个轴起作用 /// /// 连接句柄 /// 轴号 /// 模式反馈值 0-不参数 1-参与 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetInterpFactor", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetInterpFactor(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴JOG运动时速度 /// /// 连接句柄 /// 轴号 /// 速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetJogSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetJogSpeed(IntPtr handle, int iaxis, float fValue); /// /// 读取轴JOG运动时速度 /// /// 连接句柄 /// 轴号 /// 速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetJogSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetJogSpeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴链接运动的参考轴号 /// /// 连接句柄 /// 轴号 /// 参考主轴轴号反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetLinkax", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetLinkax(IntPtr handle, int iaxis, ref int piValue); /// /// 读取轴当前除了当前运动是否还有缓冲运动 /// /// 连接句柄 /// 轴号 /// 状态反馈值 -1 没有剩余函数 0-还有剩余运动 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetLoaded", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetLoaded(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴起始速度 /// /// 连接句柄 /// 轴号 /// 起始速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetLspeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetLspeed(IntPtr handle, int iaxis, float fValue); /// /// 读取轴起始速度 /// /// 连接句柄 /// 轴号 /// 起始速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetLspeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetLspeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴回零反找等待时间 /// /// 连接句柄 /// 轴号 /// 反转等待时间设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetHomeWait", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetHomeWait(IntPtr handle, int iaxis, int fValue); /// /// 读取轴回零反找等待时间 /// /// 连接句柄 /// 轴号 /// 反找等待时间反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetHomeWait", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetHomeWait(IntPtr handle, int iaxis, ref int pfValue); /// /// 读取编码轴锁存触发MAKR状态 /// /// 连接句柄 /// 轴号 /// 锁存触发状态反馈值 -1-锁存触发 0-未触发 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMark", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMark(IntPtr handle, int iaxis, ref int piValue); /// /// 读取编码轴锁存触发MAKRb状态 /// /// 连接句柄 /// 轴号 /// 锁存触发状态反馈值 -1-锁存触发 0-未触发 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMarkB", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMarkB(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴脉冲输出最高频率 /// /// 连接句柄 /// 轴号 /// 最高脉冲频率设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetMaxSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetMaxSpeed(IntPtr handle, int iaxis, int iValue); /// /// 读取轴脉冲输出最高频率 /// /// 连接句柄 /// 轴号 /// 最高脉冲频率反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMaxSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMaxSpeed(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴连续插补模式 /// /// 连接句柄 /// 轴号 /// 连续插补开关设定值 0-关闭连续插补 1-打开连续插补 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetMerge", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetMerge(IntPtr handle, int iaxis, int iValue); /// /// 读取轴连续插补模式 /// /// 连接句柄 /// 轴号 /// 连续插补开关反馈值 0-关闭连续插补 1-打开连续插补 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMerge", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMerge(IntPtr handle, int iaxis, ref int piValue); /// /// 读取轴当前被缓冲起来的运动个数 /// /// 连接句柄 /// 轴号 /// 运动缓冲数量反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMovesBuffered", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMovesBuffered(IntPtr handle, int iaxis, ref int piValue); /// /// 读取轴当前正在运动指令的MOVE_MARK标号 /// /// 连接句柄 /// 轴号 /// 当前MARK标号反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMoveCurmark", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMoveCurmark(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴运动MOVE_MARK标号 每当有运动进入轴运动缓冲时MARK自动+1 /// /// 连接句柄 /// 轴号 /// MARK设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetMovemark", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetMovemark(IntPtr handle, int iaxis, int iValue); /// /// 设置编码轴反馈位置坐标 /// /// 连接句柄 /// 轴号 /// 反馈位置设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetMpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetMpos(IntPtr handle, int iaxis, float fValue); /// /// 读取编码轴反馈位置坐标 /// /// 连接句柄 /// 轴号 /// 反馈位置坐标反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMpos(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取编码轴反馈速度 /// /// 连接句柄 /// 轴号 /// 轴反馈速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMspeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMspeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴当前运动指令类型 /// /// 连接句柄 /// 轴号 /// 运动类型反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetMtype", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetMtype(IntPtr handle, int iaxis, ref int piValue); /// /// 读取轴正在运动指令后面的第一条指令类型 /// /// 连接句柄 /// 轴号 /// 运动类型反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetNtype", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetNtype(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴坐标偏移 /// /// 连接句柄 /// 轴号 /// 偏移设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetOffpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetOffpos(IntPtr handle, int iaxis, float fValue); /// /// 读取轴坐标偏移 /// /// 连接句柄 /// 轴号 /// 坐标偏移反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetOffpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetOffpos(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置编码轴锁存触发的结束坐标范围点 /// /// 连接句柄 /// 轴号 /// 结束坐标范围设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetOpenWin", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetOpenWin(IntPtr handle, int iaxis, float fValue); /// /// 读取编码轴锁存触发的结束坐标范围点 /// /// 连接句柄 /// 轴号 /// 结束坐标反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetOpenWin", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetOpenWin(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取编码轴锁存MAKR触发的反馈位置坐标 /// /// 连接句柄 /// 轴号 /// 锁存位置坐标反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRegPos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRegPos(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取编码轴锁存MAKRB触发的反馈位置坐标 /// /// 连接句柄 /// 轴号 /// 锁存位置坐标反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRegPosB", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRegPosB(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴当前运动还未完成的距离 /// /// 连接句柄 /// 轴号 /// 未完成距离反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRemain", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRemain(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴剩余的直线缓冲 /// /// 连接句柄 /// 轴号 /// 剩余执行缓冲反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRemain_LineBuffer", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRemain_LineBuffer(IntPtr handle, int iaxis, ref int piValue); /// /// 读取轴剩余运动缓冲 按最复杂的空间圆弧来计算 /// /// 连接句柄 /// 轴号 /// 剩余缓冲反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRemain_Buffer", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRemain_Buffer(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴坐标循环范围值 根据REP_OPTION设置来自动循环轴DPOS和MPOS坐标 /// /// 连接句柄 /// 轴号 /// 坐标循环范围设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetRepDist", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetRepDist(IntPtr handle, int iaxis, float fValue); /// /// 读取轴坐标循环范围值 根据REP_OPTION设置来自动循环轴DPOS和MPOS坐标 /// /// 连接句柄 /// 轴号 /// 坐标循环范围反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRepDist", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRepDist(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴坐标循环模式 /// /// 连接句柄 /// 轴号 /// 循环模式设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetRepOption", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetRepOption(IntPtr handle, int iaxis, int iValue); /// /// 读取轴坐标循环模式 /// /// 连接句柄 /// 轴号 /// 循环模式反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRepOption", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRepOption(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴负向硬件限位开关对应的输入点编号 /// /// 连接句柄 /// 轴号 /// 负限位输入口编号设定值 -1表示无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetRevIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetRevIn(IntPtr handle, int iaxis, int iValue); /// /// 读取轴负向硬件限位开关对应的输入点编号 /// /// 连接句柄 /// 轴号 /// 负限位输入口编号反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRevIn", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRevIn(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴负向JOG输入对应的输入点编号 /// /// 连接句柄 /// 轴号 /// 负向JOG输入口编号设定值 -1表示无效 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetRevJog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetRevJog(IntPtr handle, int iaxis, int iValue); /// /// 读取轴负向JOG输入对应的输入点编号 /// /// 连接句柄 /// 轴号 /// 负向JOG输入口编号反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRevJog", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRevJog(IntPtr handle, int iaxis, ref int piValue); /// /// 设置轴负向软限位坐标 /// /// 连接句柄 /// 轴号 /// 负向软限位设定值 设置一个较大的值时认为取消限位 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetRsLimit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetRsLimit(IntPtr handle, int iaxis, float fValue); /// /// 读取轴负向软限位坐标 /// /// 连接句柄 /// 轴号 /// 负向软限位反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetRsLimit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetRsLimit(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴速度,单位为units/s,当多轴运动时,作为插补运动的速度 /// /// 连接句柄 /// 轴号 /// 速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetSpeed(IntPtr handle, int iaxis, float fValue); /// /// 读取轴速度 /// /// 连接句柄 /// 轴号 /// 速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetSpeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴S曲线加减速。 0-梯形加减速 /// /// 连接句柄 /// 轴号 /// S曲线平滑时间设定值 MS /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetSramp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetSramp(IntPtr handle, int iaxis, float fValue); /// /// 读取轴S曲线加减速 /// /// 连接句柄 /// 轴号 /// S曲线平滑时间反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetSramp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetSramp(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴SP运动的起始速度 /// /// 连接句柄 /// 轴号 /// SP运动起始速度设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetStartMoveSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetStartMoveSpeed(IntPtr handle, int iaxis, float fValue); /// /// 读取轴SP运动的起始速度 /// /// 连接句柄 /// 轴号 /// SP运动起始速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetStartMoveSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetStartMoveSpeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴拐角减速 停止减速角度 /// /// 连接句柄 /// 轴号 /// 停止角度设定值 弧度制 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetStopAngle", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetStopAngle(IntPtr handle, int iaxis, float fValue); /// /// 读取轴拐角减速 停止减速角度 /// /// 连接句柄 /// 轴号 /// 停止角度反馈值 弧度制 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetStopAngle", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetStopAngle(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴拐角减速 倒角半径 /// /// 连接句柄 /// 轴号 /// 倒角半径设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetZsmooth", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetZsmooth(IntPtr handle, int iaxis, float fValue); /// /// 读取轴拐角减速 倒角半径 /// /// 连接句柄 /// 轴号 /// 倒角半径反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetZsmooth", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetZsmooth(IntPtr handle, int iaxis, ref float pfValue); /// /// 设置轴脉冲当量 /// /// 连接句柄 /// 轴号 /// 脉冲当量设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetUnits", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetUnits(IntPtr handle, int iaxis, float fValue); /// /// 读取轴脉冲当量 /// /// 连接句柄 /// 轴号 /// 脉冲当量反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetUnits", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetUnits(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴当前运动和缓冲运动还未完成的距离 /// /// 连接句柄 /// 轴号 /// 剩余距离反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetVectorBuffered", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetVectorBuffered(IntPtr handle, int iaxis, ref float pfValue); /// /// 读取轴当前运行的规划速度 /// /// 连接句柄 /// 轴号 /// 运行速度反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetVpSpeed", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetVpSpeed(IntPtr handle, int iaxis, ref float pfValue); /// /// 全局变量/参数浮点类型读取命令 /// /// 连接句柄 /// 全局变量字符串名称/或者指定轴号的轴参数名称DPOS(0) /// 参数反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetVariablef", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetVariablef(IntPtr handle, string pname, ref float pfValue); /// /// 全局变量/参数整数类型读取命令 /// /// 连接句柄 /// 全局变量字符串名称/或者指定轴号的轴参数名称DPOS(0) /// 参数反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetVariableInt", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetVariableInt(IntPtr handle, string pname, ref int piValue); /// /// 选定运动轴列表 BASE的一个轴作为插补主轴 /// /// 连接句柄 /// 参与运动轴数 /// 轴列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Base", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Base(IntPtr handle, int imaxaxises, int[] piAxislist); /// /// 设置轴当前坐标,不建议使用,可以直接调用SETDPOS达到同样效果 /// /// 连接句柄 /// 轴号 /// 坐标位置设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Defpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Defpos(IntPtr handle, int iaxis, float pfDpos); /// /// 多轴相对直线插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴列表 /// 运动距离列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Move", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Move(IntPtr handle, int imaxaxises, int[] piAxislist, float[] pfDposlist); /// /// 多轴相对直线插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴列表 /// 运动距离列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveSp(IntPtr handle, int imaxaxises, int[] piAxislist, float[] pfDposlist); /// /// 多轴绝对直线插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴列表 /// 运动位置列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveAbs(IntPtr handle, int imaxaxises, int[] piAxislist, float[] pfDposlist); /// /// 多轴绝对直线插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴列表 /// 运动位置列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveAbsSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveAbsSp(IntPtr handle, int imaxaxises, int[] piAxislist, float[] pfDposlist); /// /// 运动中修改结束位置,单轴指令 /// /// 连接句柄 /// 轴号 /// 运动位置 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveModify", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveModify(IntPtr handle, int iaxis, float pfDisance); /// /// 运动中修改结束位置,单轴指令 /// /// 连接句柄 /// 轴号 /// 运动位置 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveModify2", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveModify2(IntPtr handle, int imaxaxises, int[] iaxis, float[] pfDisance); /// /// 相对圆心定圆弧插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点坐标 相对与起始点 /// 第二个轴结束点坐标 相对与起始点 /// 第一个轴圆心坐标,相对与起始点 /// 第二个轴圆心坐标,相对与起始点 /// 圆弧方向 0-逆时针,1-顺时针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCirc", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCirc(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection); /// /// 相对圆心定圆弧插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点坐标 相对与起始点 /// 第二个轴结束点坐标 相对与起始点 /// 第一个轴圆心坐标,相对与起始点 /// 第二个轴圆心坐标,相对与起始点 /// 圆弧方向 0-逆时针,1-顺时针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCircSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCircSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection); /// /// 绝对圆心圆弧插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 第一个轴圆心绝对坐标 /// 第二个轴圆心绝对坐标 /// 圆弧方向 0-逆时针,1-顺时针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCircAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCircAbs(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection); /// /// 绝对圆心圆弧插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 第一个轴圆心绝对坐标 /// 第二个轴圆心绝对坐标 /// 圆弧方向 0-逆时针,1-顺时针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCircAbsSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCircAbsSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection); /// /// 相对3点定圆弧插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点坐标 相对于圆弧起点 /// 第二个轴中间点坐标 相对于圆弧起点 /// 第一个轴结束点坐标 相对于圆弧起点 /// 第二个轴结束点坐标 相对于圆弧起点 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCirc2", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCirc2(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2); /// /// 绝对3点定圆弧插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点绝对坐标 /// 第二个轴中间点绝对坐标 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCirc2Abs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCirc2Abs(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2); /// /// 相对3点定圆弧插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点坐标 相对于圆弧起点 /// 第二个轴中间点坐标 相对于圆弧起点 /// 第一个轴结束点坐标 相对于圆弧起点 /// 第二个轴结束点坐标 相对于圆弧起点 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCirc2Sp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCirc2Sp(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2); /// /// 绝对3点定圆弧插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点绝对坐标 /// 第二个轴中间点绝对坐标 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCirc2AbsSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCirc2AbsSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2); /// /// 相对3轴圆心螺旋插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点坐标 相对于圆弧起点 /// 第二个轴结束点坐标 相对于圆弧起点 /// 第一个轴圆心坐标 相对于圆弧起点 /// 第二个轴圆心坐标 相对于圆弧起点 /// 运动方向 0-逆时针,1-顺时针 /// 第三螺旋轴运动距离 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelical", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelical(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode); /// /// 绝对3轴圆心螺旋插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 第一个轴圆心绝对坐标 /// 第二个轴圆心绝对坐标 /// 运动方向 0-逆时针,1-顺时针 /// 第三螺旋轴结束点绝对坐标 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelicalAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelicalAbs(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode); /// /// 相对3轴圆心螺旋插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点坐标 相对于圆弧起点 /// 第二个轴结束点坐标 相对于圆弧起点 /// 第一个轴圆心坐标 相对于圆弧起点 /// 第二个轴圆心坐标 相对于圆弧起点 /// 运动方向 0-逆时针,1-顺时针 /// 第三螺旋轴运动距离 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelicalSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelicalSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode); /// /// 绝对3轴圆心螺旋插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 第一个轴圆心绝对坐标 /// 第二个轴圆心绝对坐标 /// 运动方向 0-逆时针,1-顺时针 /// 第三螺旋轴结束点绝对坐标 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelicalAbsSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelicalAbsSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fDistance3, int imode); /// /// 相对3轴 3点定螺旋插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点坐标 相对于圆弧起点 /// 第二个轴中间点坐标 相对于圆弧起点 /// 第一个轴结束点坐标 相对于圆弧起点 /// 第二个轴结束点坐标 相对于圆弧起点 /// 第三个轴运动相对距离 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelical2", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelical2(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode); /// /// 绝对3轴 3点定螺旋插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点绝对坐标 /// 第二个轴中间点绝对坐标 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 第三个轴运动结束点绝对坐标 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelical2Abs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelical2Abs(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode); /// /// 相对3轴 3点定螺旋插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点坐标 相对于圆弧起点 /// 第二个轴中间点坐标 相对于圆弧起点 /// 第一个轴结束点坐标 相对于圆弧起点 /// 第二个轴结束点坐标 相对于圆弧起点 /// 第三个轴运动相对距离 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelical2Sp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelical2Sp(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode); /// /// 绝对3轴 3点定螺旋插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第一个轴中间点绝对坐标 /// 第二个轴中间点绝对坐标 /// 第一个轴结束点绝对坐标 /// 第二个轴结束点绝对坐标 /// 第三个轴运动结束点绝对坐标 /// 第三轴的速度计算:0(缺省)第三轴参与速度计算。1第三轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MHelical2AbsSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MHelical2AbsSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fmid1, float fmid2, float fend1, float fend2, float fDistance3, int imode); /// /// 相对椭圆插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴运动坐标,相对于起始点 /// 终点第二个轴运动坐标,相对于起始点 /// 中心第一个轴运动坐标,相对于起始点 /// 中心第二个轴运动坐标,相对于起始点 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipse", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipse(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis); /// /// 绝对椭圆插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴绝对坐标 /// 终点第二个轴绝对坐标 /// 中心第一个轴绝对坐标 /// 中心第二个轴绝对坐标 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipseAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipseAbs(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis); /// /// 相对椭圆插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴运动坐标,相对于起始点 /// 终点第二个轴运动坐标,相对于起始点 /// 中心第一个轴运动坐标,相对于起始点 /// 中心第二个轴运动坐标,相对于起始点 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipseSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipseSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis); /// /// 绝对椭圆插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴绝对坐标 /// 终点第二个轴绝对坐标 /// 中心第一个轴绝对坐标 /// 中心第二个轴绝对坐标 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipseAbsSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipseAbsSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis); /// /// 相对 椭圆 + 螺旋插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴运动坐标,相对于起始点 /// 终点第二个轴运动坐标,相对于起始点 /// 中心第一个轴运动坐标,相对于起始点 /// 中心第二个轴运动坐标,相对于起始点 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 第三个轴的运动相对距离 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipseHelical", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipseHelical(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis, float fDistance3); /// /// 绝对椭圆 + 螺旋插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴绝对坐标 /// 终点第二个轴绝对坐标 /// 中心第一个轴绝对坐标 /// 中心第二个轴绝对坐标 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 第三个轴的终点绝对坐标 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipseHelicalAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipseHelicalAbs(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis, float fDistance3); /// /// 相对 椭圆 + 螺旋插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴运动坐标,相对于起始点 /// 终点第二个轴运动坐标,相对于起始点 /// 中心第一个轴运动坐标,相对于起始点 /// 中心第二个轴运动坐标,相对于起始点 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 第三个轴的运动相对距离 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipseHelicalSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipseHelicalSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis, float fDistance3); /// /// 绝对椭圆 + 螺旋插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 终点第一个轴绝对坐标 /// 终点第二个轴绝对坐标 /// 中心第一个轴绝对坐标 /// 中心第二个轴绝对坐标 /// 运动方向 0-逆时针,1-顺时针 /// 第一轴的椭圆半径,半长轴或者半短轴都可 /// 第二轴的椭圆半径,半长轴或者半短轴都可,AB相等时自动为圆弧或螺旋 /// 第三个轴的终点绝对坐标 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MEclipseHelicalAbsSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MEclipseHelicalAbsSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fcenter1, float fcenter2, int idirection, float fADis, float fBDis, float fDistance3); /// /// 空间圆弧 + 螺旋插补运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第1个轴运动终点距离 相对与起点 /// 第2个轴运动终点距离 相对与起点 /// 第3个轴运动终点距离 相对与起点 /// 第1个轴中间点/圆心 运动距离参数 相对与起点 /// 第2个轴中间点/圆心 运动距离参数 相对与起点 /// 第3个轴中间点/圆心 运动距离参数 相对与起点 /// 运动模式 0-三点定圆弧 1-圆心定最小的圆弧 2-3点整圆运动 3-圆心画整圆运动 /// 第4个轴螺旋运动相对距离 /// 第5个轴螺旋运动相对距离 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MSpherical", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MSpherical(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fend3, float fcenter1, float fcenter2, float fcenter3, int imode, float fcenter4, float fcenter5); /// /// 空间圆弧 + 螺旋插补SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第1个轴运动终点距离 相对与起点 /// 第2个轴运动终点距离 相对与起点 /// 第3个轴运动终点距离 相对与起点 /// 第1个轴中间点/圆心 运动距离参数 相对与起点 /// 第2个轴中间点/圆心 运动距离参数 相对与起点 /// 第3个轴中间点/圆心 运动距离参数 相对与起点 /// 运动模式 0-三点定圆弧 1-圆心定最小的圆弧 2-3点整圆运动 3-圆心画整圆运动 /// 第4个轴螺旋运动相对距离 /// 第5个轴螺旋运动相对距离 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MSphericalSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MSphericalSp(IntPtr handle, int imaxaxises, int[] piAxislist, float fend1, float fend2, float fend3, float fcenter1, float fcenter2, float fcenter3, int imode, float fcenter4, float fcenter5); /// /// 相对渐开线圆弧插补运动,当起始半径0直接扩散时从0角度开始 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第1轴圆心的相对距离 /// 第2轴圆心的相对距离 /// 要旋转的圈数,可以为小数圈,负数表示顺时针. /// 每圈的扩散距离,可以为负。 /// 第3轴螺旋的功能,指定第3轴的相对距离,此轴不参与速度计算 /// 第4轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveSpiral", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveSpiral(IntPtr handle, int imaxaxises, int[] piAxislist, float centre1, float centre2, float circles, float pitch, float distance3, float distance4); /// /// 相对渐开线圆弧插补SP运动,当起始半径0直接扩散时从0角度开始 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第1轴圆心的相对距离 /// 第2轴圆心的相对距离 /// 要旋转的圈数,可以为小数圈,负数表示顺时针. /// 每圈的扩散距离,可以为负。 /// 第3轴螺旋的功能,指定第3轴的相对距离,此轴不参与速度计算 /// 第4轴螺旋的功能,指定第4轴的相对距离,此轴不参与速度计算 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveSpiralSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveSpiralSp(IntPtr handle, int imaxaxises, int[] piAxislist, float centre1, float centre2, float circles, float pitch, float distance3, float distance4); /// /// 空间直线运动,根据下一个直线运动的绝对坐标在拐角自动插入圆弧,加入圆弧后会使得运动的终点与直线的终点不一致,拐角过大时不会插入圆弧,当距离不够时会自动减小半径 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第1个轴运动绝对坐标 /// 第2个轴运动绝对坐标 /// 第3个轴运动绝对坐标 /// 第1个轴下一个直线运动绝对坐标 /// 第2个轴下一个直线运动绝对坐标 /// 第3个轴下一个直线运动绝对坐标 /// 插入圆弧的半径,当过大的时候自动缩小。 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveSmooth", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveSmooth(IntPtr handle, int imaxaxises, int[] piAxislist, float end1, float end2, float end3, float next1, float next2, float next3, float radius); /// /// 空间直线SP运动 /// /// 连接句柄 /// 参与运动总轴数 /// 轴号列表 /// 第1个轴运动绝对坐标 /// 第2个轴运动绝对坐标 /// 第3个轴运动绝对坐标 /// 第1个轴下一个直线运动绝对坐标 /// 第2个轴下一个直线运动绝对坐标 /// 第3个轴下一个直线运动绝对坐标 /// 插入圆弧的半径,当过大的时候自动缩小。 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveSmoothSp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveSmoothSp(IntPtr handle, int imaxaxises, int[] piAxislist, float end1, float end2, float end3, float next1, float next2, float next3, float radius); /// /// 运动暂停 /// /// 连接句柄 /// 轴号 /// 模式 0(缺省) 暂停当前运动 1 在当前运动完成后正准备执行下一条运动指令时暂停 2 在当前运动完成后正准备执行下一条运动指令时,并且两条指令的MARK标识不一样时暂停 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MovePause", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MovePause(IntPtr handle, int iaxis, int imode); /// /// 恢复暂停运动 /// /// 连接句柄 /// 轴号 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveResume", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveResume(IntPtr handle, int iaxis); /// /// 运动末尾位置增加速度限制,用于强制拐角减速 /// /// 连接句柄 /// 轴号 /// 限制速度值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveLimit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveLimit(IntPtr handle, int iaxis, float limitspeed); /// /// 运动缓冲中插入输出指令 /// /// 连接句柄 /// 轴号 /// 输出口编号 /// 输出口状态 0/1 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveOp", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveOp(IntPtr handle, int iaxis, int ioutnum, int ivalue); /// /// 运动缓冲中插入连续输出口指令 /// /// 连接句柄 /// 轴号 /// 输出口起始编号 /// 输出口结束编号 /// 输出状态值 按位存储 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveOpMulti", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveOpMulti(IntPtr handle, int iaxis, int ioutnumfirst, int ioutnumend, int ivalue); /// /// 运动缓冲中插入输出脉冲波指令 /// /// 连接句柄 /// 轴号 /// 输出口编号 /// 输出口状态 0/1 /// 状态反转时间 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveOp2", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveOp2(IntPtr handle, int iaxis, int ioutnum, int ivalue, int iofftimems); /// /// 运动缓冲中插入模拟量输出指令 /// /// 连接句柄 /// 轴号 /// 模拟量输出口编号 /// 模拟量值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveAout", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveAout(IntPtr handle, int iaxis, int ioutnum, float fvalue); /// /// 运动缓冲中插入延时指令 /// /// 连接句柄 /// 轴号 /// 延时时间MS /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveDelay", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveDelay(IntPtr handle, int iaxis, int itimems); /// /// 旋转台直线插补运动 /// /// 连接句柄 /// 存储旋转台参数的table编号 /// 参与运动总轴数 /// 轴号列表 /// 距离列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveTurnabs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveTurnabs(IntPtr handle, int tablenum, int imaxaxises, int[] piAxislist, float[] pfDisancelist); /// /// 旋转台圆弧+螺插补运动 /// /// 连接句柄 /// 存储旋转参数的table编号 /// 第一个轴参考点,绝对位置 /// 第二个轴参考点,绝对位置 /// 1-参考点是当前点前面,2-参考点是结束点后面,3-参考点在中间,采用三点定圆的方式 /// 第一个轴结束点,绝对位置 /// 第二个轴结束点,绝对位置 /// 参与运动轴数量 /// 轴列表 /// 螺旋轴距离列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_McircTurnabs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_McircTurnabs(IntPtr handle, int tablenum, float refpos1, float refpos2, int mode, float end1, float end2, int imaxaxises, int[] piAxislist, float[] pfDisancelist); /// /// 电子凸轮 同步运动 /// /// 连接句柄 /// 轴号 /// 起始点TABLE编号 /// 结束点TABLE编号 /// 位置比例,一般设为脉冲当量值 /// 参考运动的距离,用来计算总运动时间 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Cam", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Cam(IntPtr handle, int iaxis, int istartpoint, int iendpoint, float ftablemulti, float fDistance); /// /// 电子凸轮 同步运动 /// /// 连接句柄 /// 轴号 /// 起始点TABLE编号 /// 结束点TABLE编号 /// 位置比例,一般设为脉冲当量值 /// 参考运动的距离 /// 参考主轴轴号 /// 参考轴的连接方式 /// ioption条件中距离参数 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Cambox", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Cambox(IntPtr handle, int iaxis, int istartpoint, int iendpoint, float ftablemulti, float fDistance, int ilinkaxis, int ioption, float flinkstartpos); /// /// 飞剪追剪MOVELINK 同步运动 /// /// 连接句柄 /// 参与运动的轴号(跟随轴) /// 同步过程跟随轴运动距离 /// 同步过程参考轴(主轴)运动绝对距离 /// 跟随轴加速阶段,参考轴移动的绝对距离 /// 跟随轴减速阶段,参考轴移动的绝对距离 /// 参考轴的轴号 /// 连接模式选项 /// 连接模式选项中运动距离 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Movelink", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Movelink(IntPtr handle, int iaxis, float fDistance, float fLinkDis, float fLinkAcc, float fLinkDec, int iLinkaxis, int ioption, float flinkstartpos); /// /// 飞剪追剪MOVESLINK 同步运动 /// /// 连接句柄 /// 参与运动的轴号(跟随轴) /// 同步过程跟随轴运动距离 /// 同步过程参考轴(主轴)运动绝对距离 /// 启动时跟随轴和参考轴的速度比例,units/units单位,负数表示跟随轴负向运动 /// 结束时跟随轴和参考轴的速度比例,units/units单位, 负数表示跟随轴负向运动 /// 参考轴的轴号 /// 连接模式选项 /// 连接模式选项中运动距离 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Moveslink", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Moveslink(IntPtr handle, int iaxis, float fDistance, float fLinkDis, float startsp, float endsp, int iLinkaxis, int ioption, float flinkstartpos); /// /// 电子齿轮 同步运动 /// /// 连接句柄 /// 比率,可正可负,注意是脉冲个数的比例 /// 连接轴的轴号,手轮时为编码器轴 /// 随动轴号 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Connect", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Connect(IntPtr handle, float ratio, int link_axis, int move_axis); /// /// 电子齿轮矢量同步 同步运动 /// /// 连接句柄 /// 比例,注意是脉冲个数的比例 /// 连接轴的轴号,手轮时为编码器轴 /// 随动轴号 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Connpath", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Connpath(IntPtr handle, float ratio, int link_axis, int move_axis); /// /// 位置锁存指令 /// /// 连接句柄 /// 轴号 /// 锁存模式 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Regist", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Regist(IntPtr handle, int iaxis, int imode); /// /// 设置编码轴输出齿轮比 缺省(1,1) /// /// 连接句柄 /// 轴号 /// 分子,不要超过65535 /// 分母,不要超过65535 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_EncoderRatio", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_EncoderRatio(IntPtr handle, int iaxis, int mpos_count, int input_count); /// /// 设置脉冲输出齿轮比 ,缺省(1,1) /// /// 连接句柄 /// 轴号 /// 分子,1-65535 /// 分母,1-65535 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_StepRatio", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_StepRatio(IntPtr handle, int iaxis, int mpos_count, int input_count); /// /// 停止所有轴运动 /// /// 连接句柄 /// 停止模式 0(缺省)取消当前运动 1-取消缓冲的运动 2-取消当前运动和缓冲运动 3-立即中断脉冲发送 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Rapidstop", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Rapidstop(IntPtr handle, int imode); /// /// 多轴运动停止 /// /// 连接句柄 /// 轴数量 /// 轴列表 /// 停止模式 0(缺省)取消当前运动 1-取消缓冲的运动 2-取消当前运动和缓冲运动 3-立即中断脉冲发送 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_CancelAxisList", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_CancelAxisList(IntPtr handle, int imaxaxises, int[] piAxislist, int imode); /// /// 机械手逆解映射指令 /// /// 连接句柄 /// 关节轴数量 /// 关节轴列表 /// 机械手类型 /// 机械手参数TABLE起始编号 /// 关联虚拟轴个数 /// 虚拟轴列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Connframe", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Connframe(IntPtr handle, int Jogmaxaxises, int[] JogAxislist, int frame, int tablenum, int Virmaxaxises, int[] VirAxislist); /// /// 机械手正解映射指令 /// /// 连接句柄 /// 关联虚拟轴个数 /// 虚拟轴列表 /// 机械手类型 /// 机械手参数TABLE起始编号 /// 关节轴数量 /// 关节轴列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Connreframe", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Connreframe(IntPtr handle, int Virmaxaxises, int[] VirAxislist, int frame, int tablenum, int Jogmaxaxises, int[] JogAxislist); /// /// 轴叠加运动指令 /// /// 连接句柄 /// 被叠加轴 /// 叠加轴 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Single_Addax", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Single_Addax(IntPtr handle, int iaxis, int iaddaxis); /// /// 单轴运动停止 /// /// 连接句柄 /// 轴号 /// 停止模式 0(缺省)取消当前运动 1-取消缓冲的运动 2-取消当前运动和缓冲运动 3-立即中断脉冲发送 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Single_Cancel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Single_Cancel(IntPtr handle, int iaxis, int imode); /// /// 单轴连续运动 /// /// 连接句柄 /// 轴号 /// 运动方向 1正向 -1负向 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Single_Vmove", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Single_Vmove(IntPtr handle, int iaxis, int idir); /// /// 控制器方式回零 /// /// 连接句柄 /// 轴号 /// 回零模式 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Single_Datum", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Single_Datum(IntPtr handle, int iaxis, int imode); /// /// 控制器方式回零 /// /// 连接句柄 /// 轴号 /// 回零模式 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetHomeStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetHomeStatus(IntPtr handle, int iaxis, ref UInt32 homestatus); /// /// 单轴相对运动 /// /// 连接句柄 /// 轴号 /// 相对运动距离 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Single_Move", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Single_Move(IntPtr handle, int iaxis, float fdistance); /// /// 单轴绝对运动 /// /// 连接句柄 /// 轴号 /// 运动绝对位置坐标 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Single_MoveAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Single_MoveAbs(IntPtr handle, int iaxis, float fdistance); /// /// 设置VR寄存器 /// /// 连接句柄 /// VR起始编号 /// 写入的数量 /// 写入的数据列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetVrf", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetVrf(IntPtr handle, int vrstartnum, int numes, float[] pfValue); /// /// 读取VR寄存器 /// /// 连接句柄 /// 读取的VR起始地址 /// 读取的数量 /// VR反馈值数据 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetVrf", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetVrf(IntPtr handle, int vrstartnum, int numes, float[] pfValue); /// /// 读取VR_INT寄存器 /// /// 连接句柄 /// 读取的VR起始地址 /// 读取的数量 /// VRINT反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetVrInt", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetVrInt(IntPtr handle, int vrstartnum, int numes, int[] piValue); /// /// 设置TABLE寄存器 /// /// 连接句柄 /// 写入的TABLE起始编号 /// 写入的数量 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetTable", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetTable(IntPtr handle, int vrstartnum, int numes, float[] pfValue); /// /// 读取TABLE寄存器 /// /// 连接句柄 /// 读取TABLE起始地址 /// 读取的数量 /// 读取的反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetTable", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetTable(IntPtr handle, int tabstart, int numes, float[] pfValue); /// /// 字符串转为float数据 /// /// 数据的字符串 /// 转换数据个数 /// 转换的数据反馈 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_TransStringtoFloat", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_TransStringtoFloat(string pstringin, int inumes, float[] pfValue); /// /// 字符串转为INT数据 /// /// 数据的字符串 /// 转换数据个数 /// 转换的数据反馈 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_TransStringtoInt", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_TransStringtoInt(string pstringin, int inumes, int[] pfValue); /// /// 把float格式的变量列表存储到文件, 与控制器的U盘文件格式一致 /// /// 文件绝对路径 /// 写入的数据列表 /// 数据的长度 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_WriteUFile", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_WriteUFile(string sFilename, float[] pVarlist, int inum); /// /// 读取float格式的变量列表, 与控制器的U盘文件格式一致. /// /// 文件绝对路径 /// 读取的数据列表 /// 读取数据的长度 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_ReadUFile", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_ReadUFile(string sFilename, float[] pVarlist, ref int inum); /// /// 设置MODBUS_BIT位寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// 设置的位状态 按位存储 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Set0x", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Set0x(IntPtr handle, UInt16 start, UInt16 inum, byte[] pdata); /// /// 读取MOBUS_BIT位寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// pdata 返回的位状态 按位存储 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Get0x", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Get0x(IntPtr handle, UInt16 start, UInt16 inum, byte[] pdata); /// /// 设置MODBUS_REG字寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// REG寄存器值设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Set4x", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Set4x(IntPtr handle, UInt16 start, UInt16 inum, UInt16[] pfdata); /// /// 读取MODBUS_REG字寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// 反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Get4x", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Get4x(IntPtr handle, UInt16 start, UInt16 inum, UInt16[] pfdata); /// /// 读取MODBUS_IEEE寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// 反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Get4x_Float", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Get4x_Float(IntPtr handle, UInt16 start, UInt16 inum, float[] pfdata); /// /// 设置MODBUS_IEEE寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Set4x_Float", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Set4x_Float(IntPtr handle, UInt16 start, UInt16 inum, float[] pfdata); /// /// 读取MODBUS_LONG寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// 反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Get4x_Long", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Get4x_Long(IntPtr handle, UInt16 start, UInt16 inum, Int32[] pfdata); /// /// 设置MODBUS_LONG寄存器 /// /// 连接句柄 /// 起始编号 /// 数量 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Set4x_Long", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Set4x_Long(IntPtr handle, UInt16 start, UInt16 inum, Int32[] pfdata); /// /// 读取MODBUS_STRING寄存器 /// /// 连接句柄 /// 起始编号 /// 字节数量 /// 反馈字符串 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Get4x_String", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Get4x_String(IntPtr handle, UInt16 start, UInt16 inum, StringBuilder pfdata); /// /// 设置MODBUS_STRING寄存器 /// /// 连接句柄 /// 起始编号 /// 字节数量 /// 设定字符串 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Modbus_Set4x_String", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Modbus_Set4x_String(IntPtr handle, UInt16 start, UInt16 inum, string pfdata); /// /// 写控制器flash块, float格式 /// /// 连接句柄 /// flash块号 /// 变量数量 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_FlashWritef", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_FlashWritef(IntPtr handle, UInt16 uiflashid, UInt32 uinumes, float[] pfvlue); /// /// 读取控制器flash块, float格式 /// /// 连接句柄 /// flash块号 /// 读取变量数量 /// 反馈值 /// 读取变量数量反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_FlashReadf", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_FlashReadf(IntPtr handle, UInt16 uiflashid, UInt32 uibuffnum, float[] pfvlue, ref UInt32 puinumesread); /*****************************************************************************************************2018-08-24 V2.1函数添加***************************************************************************************/ /// /// 示波器触发函数 150723以后固件版本支持 /// /// 连接句柄 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Trigger", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Trigger(IntPtr handle); /// /// 运动缓冲中插入参数修改 /// /// 连接句柄 /// 主轴轴号 /// 参数名称字符串 /// 修改轴号 /// 参数设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MovePara", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MovePara(IntPtr handle, UInt32 base_axis, string paraname, UInt32 iaxis, float fvalue); /// /// 运动缓冲中插入PWM指令 /// /// 连接句柄 /// 主轴轴号 /// PWM口编号 /// 占空比设定值 /// 频率设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MovePwm", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MovePwm(IntPtr handle, UInt32 base_axis, UInt32 pwm_num, float pwm_duty, float pwm_freq); /// /// 运动缓冲中插入同步其他轴的运动 /// /// 连接句柄 /// 主轴轴号 /// 同步轴号 /// 相对运动距离 /// 是否使用SP运动0/1, 缺省不使用 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveSynmove", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveSynmove(IntPtr handle, UInt32 base_axis, UInt32 iaxis, float fdist, UInt32 ifsp); /// /// 运动缓冲中插入触发其他轴的运动 /// /// 连接句柄 /// 主轴轴号 /// 触发轴轴号 /// 相对运动距离 /// 是否使用SP运动0/1, 缺省不使用 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveASynmove", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveASynmove(IntPtr handle, UInt32 base_axis, UInt32 iaxis, float fdist, UInt32 ifsp); /// /// 运动缓冲中插入修改TABLE寄存器指令 /// /// 连接句柄 /// 主轴轴号 /// TABLE编号 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveTable", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveTable(IntPtr handle, UInt32 base_axis, UInt32 table_num, float fvalue); /// /// 运动缓冲中插入等待调节指令 /// /// 连接句柄 /// 主轴轴号 /// 参数名字符串 DPOS MPOS IN AIN VPSPEED MSPEED MODBUS_REG MODBUS_IEEE MODBUS_BIT NVRAM VECT_BUFFED REMAIN /// 参数编号或轴号 /// 比较条件 1-大于等于 0-等于 -1小于等于 对IN等BIT类型参数无效 /// 比较值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveWait", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveWait(IntPtr handle, UInt32 base_axis, string paraname, int inum, int Cmp_mode, float fvalue); /// /// 运动缓冲中插入TASK任务 /// /// 连接句柄 /// 主轴轴号 /// 任务编号 /// BAS程序中全局函数名或者标号名称 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveTask", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveTask(IntPtr handle, UInt32 base_axis, UInt32 tasknum, string labelname); /// /// 软件位置比较输出 /// /// 连接句柄 /// 比较器编号 /// 比较器使能 /// 比较的轴号 /// 输出口编号 /// 输出状态 /// 比较起始位置 /// 输出复位位置 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Pswitch", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Pswitch(IntPtr handle, int num, int enable, int axisnum, int outnum, int outstate, float setpos, float resetpos); /// /// 硬件位置比较输出 4系列产品脉冲轴与编码器轴支持硬件比较输出 /// /// 连接句柄 /// 轴号 /// 模式 mode 1-启动比较器, 2- 停止并删除没完成的比较点 /// 方向 0-坐标负向, 1- 坐标正向 /// 预留 /// 第一个比较点坐标所在TABLE编号 /// 最后一个比较点坐标所在TABLE编号 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_HwPswitch", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_HwPswitch(IntPtr handle, int Axisnum, int Mode, int Direction, int Reserve, int Tablestart, int Tableend); /// /// 硬件位置比较输出剩余缓冲获取 4系列产品脉冲轴与编码器轴支持硬件比较输出 /// /// 连接句柄 /// 轴号 /// 剩余缓冲反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetHwPswitchBuff", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetHwPswitchBuff(IntPtr handle, int axisnum, ref int buff); /// /// 硬件定时器用于硬件比较输出后一段时间后还原电平 4系列产品支持 /// /// 连接句柄 /// 模式 0停止,2-启动 /// 周期时间 us单位 /// 有效时间 us单位 /// 重复次数 /// 输出缺省状态 /// 输出口编号 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_HwTimer", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_HwTimer(IntPtr handle, int mode, int cyclonetime, int optime, int reptimes, int opstate, int opnum); /// /// 读取轴停止运动原因 /// /// 连接句柄 /// 轴号 /// 停止原因反馈值 参考AXISSTATUS /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAxisStopReason", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAxisStopReason(IntPtr handle, int iaxis, ref int piValue); /// /// 读取多轴轴参数 /// /// 连接句柄 /// 参数名称字符串 /// 读取总轴数 /// 参数值反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAllAxisPara", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAllAxisPara(IntPtr handle, string sParam, int imaxaxis, float[] pfValue); /// /// 读取多轴基本参数状态 /// /// 连接句柄 /// 读取总轴数 /// 轴停止状态反馈值 0-运动中 -1停止中 /// 轴命令位置反馈值 /// 轴反馈位置反馈值 /// 轴状态 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetAllAxisInfo", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetAllAxisInfo(IntPtr handle, int imaxaxis, int[] IdleStatus, float[] DposStatus, float[] MposStatus, int[] AxisStatus); /// /// 设置BASIC自定义全局数组 /// /// 连接句柄 /// 全局数组名称 /// 数组起始元素 /// 设置数量 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetUserArray", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetUserArray(IntPtr handle, string arrayname, int arraystart, int numes, float[] pfValue); /// /// 读取BASIC自定义全局数组 /// /// 连接句柄 /// 全局数组名称 /// 数组起始元素 /// 读取数量 /// 反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetUserArray", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetUserArray(IntPtr handle, string arrayname, int arraystart, int numes, float[] pfValue); /// /// 设置BASIC自定义变量 /// /// 连接句柄 /// 变量名称字符串 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetUserVar", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetUserVar(IntPtr handle, string varname, float pfValue); /// /// 读取BASIC自定义变量 /// /// 连接句柄 /// 变量名称字符串 /// 反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetUserVar", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetUserVar(IntPtr handle, string varname, ref float pfValue); /// /// 读取PCI控制卡个数 /// /// 卡数量 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetMaxPciCards", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetMaxPciCards(); /// /// PCI卡建立链接 /// /// PCI卡号 /// 句柄指针 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_OpenPci", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_OpenPci(UInt32 cardnum, out IntPtr phandle); /// /// 获取控制器卡信息 /// /// 连接句柄 /// 控制器型号类型反馈值 /// 控制器软件版本(固件版本)反馈值 /// 控制器唯一ID反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetControllerInfo", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetControllerInfo(IntPtr handle, StringBuilder SoftType, StringBuilder SoftVersion, StringBuilder ControllerId); /// /// 读取总线控制器卡连接节点数量 /// /// 连接句柄 /// 槽位号缺省 /// 扫描成功节点数量反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetNodeNum", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetNodeNum(IntPtr handle, int slot, ref int piValue); /// /// 读取节点上的信息 /// /// 连接句柄 /// 槽位号缺省0 /// 节点编号 /// 信息编号 0-厂商编号1-设备编号 2-设备版本 3-别名 10-IN个数 11-OUT个数 /// 信息反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetNodeInfo", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetNodeInfo(IntPtr handle, UInt32 slot, UInt32 node, UInt32 sel, ref int piValue); /// /// 读取总线节点通讯状态 /// /// 连接句柄 /// 槽位号缺省0 /// 节点编号 /// 节点状态反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetNodeStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetNodeStatus(IntPtr handle, UInt32 slot, UInt32 node, ref UInt32 nodestatus); /// /// 读取节点SDO参数信息 /// /// 连接句柄 /// 槽位号缺省0 /// 节点编号 /// 对象字典编号(注意函数为10进制数据) /// 子编号 (注意函数为10进制数据) /// 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32 /// 参数反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_SDORead", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_SDORead(IntPtr handle, UInt32 slot, UInt32 node, UInt32 index, UInt32 subindex, UInt32 type, ref Int32 value); /// /// 写节点SDO参数信息 /// /// 连接句柄 /// 槽位号缺省0 /// 节点编号 /// 对象字典编号(注意函数为10进制数据) /// 子编号 (注意函数为10进制数据) /// 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_SDOWrite", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_SDOWrite(IntPtr handle, UInt32 slot, UInt32 node, UInt32 index, UInt32 subindex, UInt32 type, Int32 value); /// /// 读取Rtex驱动器参数 /// /// 连接句柄 /// 轴号 /// 参数分类*256 + 参数编号 Pr7.11-ipara = 7*256+11 /// 参数反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_RtexRead", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_RtexRead(IntPtr handle, UInt32 iaxis, UInt32 ipara, ref float value); /// /// 设置Rtex驱动器参数信息 /// /// 连接句柄 /// 轴号 /// 参数分类*256 + 参数编号 Pr7.11-ipara = 7*256+11 /// 参数设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_RtexWrite", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_RtexWrite(IntPtr handle, UInt32 iaxis, UInt32 ipara, float value); /// /// 设置回零偏移距离 /// /// 连接句柄 /// 轴号 /// 偏移距离设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_SetDatumOffpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_SetDatumOffpos(IntPtr handle, UInt32 iaxis, float fValue); /// /// 读取回零偏移距离 /// /// 连接句柄 /// 轴号 /// 偏移距离反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetDatumOffpos", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetDatumOffpos(IntPtr handle, UInt32 iaxis, ref float fValue); /// /// 总线驱动器自身回零运动 /// /// 连接句柄 /// 轴号 /// 回零模式,查看驱动器手册 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_Datum", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_Datum(IntPtr handle, UInt32 iaxis, UInt32 homemode); /// /// 总线驱动器回零完成状态 /// /// 连接句柄 /// 轴号 /// 回零完成标志 0-回零异常 1回零成功 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetHomeStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetHomeStatus(IntPtr handle, UInt32 iaxis, ref UInt32 homestatus); /// /// 清除总线伺服轴报警 /// /// 连接句柄 /// 轴号 /// 模式 0-清除当前告警 1-清除历史告警 2-清除外部输入告警 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_DriveClear", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_DriveClear(IntPtr handle, UInt32 iaxis, UInt32 mode); /// /// 读取总线轴当前力矩 需要设置对应的DRIVE_PROFILE类型 /// /// 连接句柄 /// 轴号 /// 反馈转矩值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetDriveTorque", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetDriveTorque(IntPtr handle, UInt32 iaxis, ref int piValue); /// /// 设置总线轴最大转矩 需要设置对应的DRIVE_PROFILE类型 /// /// 连接句柄 /// 轴号 /// 最大转矩限制设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_SetMaxDriveTorque", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_SetMaxDriveTorque(IntPtr handle, UInt32 iaxis, int piValue); /// /// 读取总线轴最大转矩 需要设置对应的DRIVE_PROFILE类型 /// /// 连接句柄 /// 轴号 /// 最大转矩限制反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetMaxDriveTorque", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetMaxDriveTorque(IntPtr handle, UInt32 iaxis, ref int piValue); /// /// 设置总线轴模拟量输出 力矩、速度模式下可以 总线驱动需要设置对应DRIVE_PROFILE类型 与ATYPE /// /// 连接句柄 /// 轴号 /// 转矩输出值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetDAC", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetDAC(IntPtr handle, UInt32 iaxis, float fValue); /// /// 读取总线轴模拟量输出 总线驱动需要设置对应DRIVE_PROFILE类型 与ATYPE /// /// 连接句柄 /// 轴号 /// 转矩反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetDAC", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetDAC(IntPtr handle, UInt32 iaxis, ref float fValue); /// /// 总线初始化指令 (针对Zmotion tools 工具软件配置过总线参数控制器使用有效) /// /// 连接句柄 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_InitBus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_InitBus(IntPtr handle); /// /// 读取总线初始化状态 (针对Zmotion tools 工具软件配置过总线参数控制器使用有效) /// /// 连接句柄 /// 状态反馈值 0-失败 1-成功 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_GetInitStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_GetInitStatus(IntPtr handle, ref int piValue); /// /// 读取多个输入信号 /// /// 连接句柄 /// 起始输入口编号 /// 结束输入口编号 /// 输入口状态反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetInMulti", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetInMulti(IntPtr handle, int startio, int endio, Int32[] piValue); /// /// 设置在线命令的超时时间 /// /// 连接句柄 /// 超时时间 MS /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SetTimeOut", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SetTimeOut(IntPtr handle, UInt32 timems); #region "硬件位置比较输出2 ZAux_Direct_HwPswitch2" /*************************************************************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 = 预留 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 = 预留 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); *************************************************************/ #endregion /// /// 硬件位置比较输出2 4系列产品, 20170513以上版本支持. ZMC306E/306N支持 /// /// 连接句柄 /// 轴号 /// 模式 /// 输出口编号 /// 第一个比较点的输出状态 /// 功能参数1 /// 功能参数2 /// 功能参数3 /// 功能参数4 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_HwPswitch2", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_HwPswitch2(IntPtr handle, int Axisnum, int Mode, int Opnum, int Opstate, float ModePara1, float ModePara2, float ModePara3, float ModePara4); /// /// 获取控制器最大规格数 /// /// 连接句柄 /// 最大虚拟轴数 /// 最大电机数量 /// 最大IN,OUT,AD,DA数量 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetSysSpecification", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetSysSpecification(IntPtr handle, ref UInt16 Max_VirtuAxises, byte[] Max_motor, byte[] Max_io); /// /// 控制器主动上报回调函数 /// /// 连接句柄 /// 上传类型码 /// 数据长度 /// 上报数据指针 [MarshalAs(UnmanagedType.LPArray, SizeConst = 2048)]byte[] pdata public delegate void ZAuxCallBack(IntPtr handle, Int32 itypecode, Int32 idatalength, StringBuilder pdata); [DllImport("zauxdll.dll", EntryPoint = "ZAux_SetAutoUpCallBack", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SetAutoUpCallBack(IntPtr handle, ZAuxCallBack pcallback); /// /// 设置多路输出 /// /// 连接句柄 /// IO口起始编号 /// IO口结束编号 /// 输出口状态 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_SetOutMulti", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_SetOutMulti(IntPtr handle, UInt16 iofirst, UInt16 ioend, UInt32[] istate); /// /// 读取多路输出 /// /// 连接句柄 /// IO口起始编号 /// IO口结束编号 /// 输出口状态 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetOutMulti", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetOutMulti(IntPtr handle, UInt16 iofirst, UInt16 ioend, UInt32[] istate); /// /// 多轴相对直线插补运动 /// /// 连接句柄 /// 发送运行指令数量 /// 参与运动总轴数 /// 轴列表 /// 运动位置列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MultiMove", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MultiMove(IntPtr handle,int iMoveLen, int imaxaxises, int[] piAxislist, float[] pfDposlist); /// /// 多轴绝对直线插补运动 /// /// 连接句柄 /// 发送运行指令数量 /// 参与运动总轴数 /// 轴列表 /// 运动位置列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MultiMoveAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MultiMoveAbs(IntPtr handle,int iMoveLen, int imaxaxises, int[] piAxislist, float[] pfDposlist); /// /// 机械手坐标系旋转 /// /// 连接句柄 /// 轴号 关节轴/虚拟轴 /// 平移旋转参数 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_FrameRotate", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_FrameRotate(IntPtr handle, int iaxis, float[] pfRotatePara); /// /// 获取CAN扩展资源规格 /// /// 连接句柄 /// 当前连接的CAN从站数量 /// 当前连接的CAN从站ID列表 /// 节点输入点数量 /// 节点输出点数量 /// 节点AD数量 /// 节点DA数量 /// 节点轴数量 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetCanInfo", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetCanInfo(IntPtr handle, ref byte CanNum, UInt16[] CanId_List, byte[] CanIn_List, byte[] CanOut_List, byte[] CanAin_List, byte[] CanAOut_List, byte[] CanAxis_List); /// /// 多条相对PT运动 /// /// 连接句柄 /// 填写的运动数量 /// 参与运动总轴数 /// 轴号列表 /// 周期列表 /// 距离列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MultiMovePt", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MultiMovePt(IntPtr handle, int iMoveLen, int imaxaxises, int[] piAxislist, UInt32[] pTickslist, float[] pfDisancelist); /// /// 多条绝对PT运动 /// /// 连接句柄 /// 填写的运动数量 /// 参与运动总轴数 /// 轴号列表 /// 周期列表 /// 距离列表 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MultiMovePtAbs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MultiMovePtAbs(IntPtr handle, int iMoveLen, int imaxaxises, int[] piAxislist, UInt32[] pTickslist, float[] pfDisancelist); /// /// 下载ZAR文件到控制 /// /// 连接句柄 /// Filename 文件路径 /// 下载到RAM-ROM 0-RAM 1-ROM /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_ZarDown", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_ZarDown(IntPtr handle, String Filename,UInt32 run_mode); /// /// 读取RTC时间 /// /// 连接句柄 /// 系统日期 格式YYMMDD /// 系统时间 格式HHMMSS /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_GetRtcTime", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_GetRtcTime(IntPtr handle, StringBuilder RtcDate, StringBuilder RtcTime); /// /// 设置RTC时间 /// /// 连接句柄 /// 系统日期 格式YYMMDD /// 系统时间 格式HHMMSS /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_SetRtcTime", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_SetRtcTime(IntPtr handle, String RtcDate, String RtcTime); /// /// 与控制器建立链接, 可以指定连接的等待时间 /// /// 连接类型 1-COM 2-ETH 4-PCI /// 连接字符串 COM口号/IP地址 /// 连接超时时间 /// 卡链接handle /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_FastOpen", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_FastOpen(Int32 type, string pconnectstring, UInt32 uims, out IntPtr phandle); /// /// 自定义二次回零 /// /// 连接句柄 /// 轴号 /// 回零模式 /// 回零高速 /// 回零低速 /// 二次回零偏移距离 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_UserDatum", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_UserDatum(IntPtr handle, Int32 iaxis, Int32 imode,float HighSpeed,float LowSpeed,float DatumOffset); /// /// 设置轴的螺距补偿,扩展轴无效。 /// /// 句柄连接 /// 轴号 /// 是否启用补偿 /// 起始补偿MPOS位置 /// 补偿区间总点数 /// 每个补偿点间距 /// 补偿坐标值填入TABLE系统数组起始引导地址 /// 区间补偿值列表 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Pitchset", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Pitchset(IntPtr handle,Int32 iaxis,Int32 iEnable,float StartPos,UInt32 maxpoint,float DisOne ,UInt32 TablNum,float [] pfDisancelist); /// /// 设置轴的螺距双向补偿,扩展轴无效。 /// /// 句柄连接 /// 轴号 /// 是否启用补偿 /// 起始补偿MPOS位置 /// 补偿区间总点数 /// 每个补偿点间距 /// 正向补偿坐标值填入TABLE系统数组起始引导地址 /// 正向区间补偿值列表 /// 反向补偿坐标值填入TABLE系统数组起始引导地址 /// 反向区间补偿值列表 补偿数据方向于正向方向一致 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_Pitchset2", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_Pitchset2(IntPtr handle,Int32 iaxis,Int32 iEnable,float StartPos,UInt32 maxpoint,float DisOne ,UInt32 TablNum,float [] pfDisancelist,UInt32 RevTablNum,float [] RevpfDisancelist); /// /// 轴的螺距补偿状态读取,扩展轴无效。 /// /// 句柄连接 /// 轴号 /// 是否启用补偿 0关闭 -1开启 /// 补偿距离 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_GetPitchStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_GetPitchStatus(IntPtr handle,Int32 iaxis,ref Int32 IfEnable,ref float PitchDist); /// /// 多轴多段线直线连续插补 /// /// 句柄连接 /// imode bit0- bifabs bit1- bifsp 是否SP bit2- bifresume bit3- bifmovescan 调用 /// 填写的运动长度 /// 参与运动总轴数 /// 轴号列表 /// 距离列表 iMoveLen * imaxaxises /// /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MultiLineN", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MultiLineN(IntPtr handle,Int32 imode,Int32 iMoveLen, Int32 imaxaxises, Int32 []piAxislist, float []pfDisancelist,ref Int32 iReBuffLen); /// /// 皮带同步跟随运动 /// /// 连接句柄 /// 同步模式 -1结束模式 -2强制结束 0-第一个轴跟随 10-第二个轴跟随 20-第二个轴跟随 小数位-angle:皮带旋转角度 /// 同步时间,ms单位,本运动在指定时间内完成,完成时BASE轴跟上皮带且保持速度一致。0表示根据运动轴的速度加速度来估计同步时间 /// 皮带轴物体被感应到时皮带轴的位置 /// 皮带轴轴号 /// 参与同步从轴总数 /// 从站轴号列表 /// 皮带轴物体被感应到时从轴的绝对坐标位置 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveSync", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveSync(IntPtr handle, float imode, int synctime, float syncposition, int syncaxis, int imaxaxises, int[] piAxislist, float[] pfDposlist); /// /// 连续位置锁存指令 /// /// 连接句柄 /// 轴号 /// 锁存模式 /// 连续锁存的内容存储的table位置,第一个table元素存储锁存的个数,后面存储锁存的坐标,最多保存个数= numes-1,溢出时循环写入 /// 占用的table个数 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_CycleRegist", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_CycleRegist(IntPtr handle, int iaxis, int imode, int iTabStart, int iTabNum); /// /// 运动中取消其他轴运动 /// /// 连接句柄 /// 插补主轴编号 /// 取消运动轴号 /// 停止模式 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Direct_MoveCancel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Direct_MoveCancel(IntPtr handle, int base_axis, int Cancel_Axis, int iMode); /// /// Pdo写操作 /// /// 连接句柄 /// 节点号 /// 对象字典 /// 子对象 /// 数据类型 /// 写入值 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_NodePdoWrite", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_NodePdoWrite(IntPtr handle, UInt32 inode, UInt32 index, UInt32 subindex, UInt32 type, Int32 value); /// /// Pdo读操作 /// /// 连接句柄 /// 节点号 /// 对象字典 /// 子对象 /// 数据类型 /// 返回的数据值 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_NodePdoRead", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_NodePdoRead(IntPtr handle, UInt32 inode, UInt32 index, UInt32 subindex, UInt32 type, ref Int32 ivalue); /// /// 使能周期上报 /// /// 连接句柄 /// 上报通道号 /// 上报间隔时间 /// 上报参数选择, /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_CycleUpEnable", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_CycleUpEnable(IntPtr handle, UInt32 cycleindex, float fintervalms, string psetesname); /// /// 关闭使能周期上报 /// /// 连接句柄 /// 上报通道号 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_CycleUpDisable", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_CycleUpDisable(IntPtr handle, UInt32 cycleindex); /// /// 周期上报收到的包次数, 超过溢出. 调试使用. /// /// 连接句柄 /// 上报通道号 /// 上报次数 [DllImport("zauxdll.dll", EntryPoint = "ZAux_CycleUpGetRecvTimes", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_CycleUpGetRecvTimes(IntPtr handle, UInt32 cycleindex); /// /// 强制上报一次, 在运动指令后idle可能不准确的情况下调用. /// /// 连接句柄 /// 上报通道号 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_CycleUpForceOnce", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_CycleUpForceOnce(IntPtr handle, UInt32 cycleindex); /// /// 从周期上报里面读取内容double格式 /// /// 连接句柄 /// 上报通道号 /// 参数名称 /// 参数编号 /// 返回值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_CycleUpReadBuff", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_CycleUpReadBuff(IntPtr handle, UInt32 cycleindex, string psetesname, UInt32 isetindex,ref double pvalue); /// /// 从周期上报里面读取内容Int32格式 /// /// 连接句柄 /// 上报通道号 /// 参数名称 /// 参数编号 /// 返回值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_CycleUpReadBuffInt", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_CycleUpReadBuffInt(IntPtr handle, UInt32 cycleindex, string psetesname, UInt32 isetindex, ref Int32 pvalue); /// /// 通过轴号进行 SDO 读取 /// /// 连接句柄 /// 轴号 /// 对象字典编号(注意函数为10进制数据) /// 子编号 (注意函数为10进制数据) /// 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32 /// 参数反馈值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_SDOReadAxis", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_SDOReadAxis(IntPtr handle, UInt32 iaxis, UInt32 index, UInt32 subindex, UInt32 type, ref Int32 value); /// /// 通过轴号进行 SDO 写节 /// /// 连接句柄 /// 轴号 /// 对象字典编号(注意函数为10进制数据) /// 子编号 (注意函数为10进制数据) /// 数据类型 1-bool 2-int8 3-int16 4-int32 5-uint8 6-uint16 7-uint32 /// 设定值 /// 错误码 [DllImport("zauxdll.dll", EntryPoint = "ZAux_BusCmd_SDOWriteAxis", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_BusCmd_SDOWriteAxis(IntPtr handle, UInt32 iaxis, UInt32 index, UInt32 subindex, UInt32 type, Int32 value); [DllImport("zmotion.dll", EntryPoint = "ZMC_GetState", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZMC_GetState(IntPtr handle, byte[] pstate); /// /// 读取脚本输出的信息 /// /// 连接句柄 /// 脚本空间 /// 最大等待时间 /// 返回的字符长度 /// 错误码 [DllImport("zmotion.dll", EntryPoint = "ZMC_ReadMessage", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZMC_ReadMessage(IntPtr handle, byte[] pbuff, UInt32 uimax, ref UInt32 puiread); /// /// 读取在线命令的应答, 对没有接收应答的命令有用 /// /// 连接句柄 /// 脚本空间 /// 最大等待时间 /// 返回的字符长度 /// 是否已经执行结束 /// 错误码 [DllImport("zmotion.dll", EntryPoint = "ZMC_ExecuteGetReceive", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZMC_ExecuteGetReceive(IntPtr handle, byte[] pbuff, UInt32 uimax, ref UInt32 puiread, ref byte pbifExcuteDown); /// /// 动态下载3次文件, 一次下载的内容必须是完整的单行或多行,没有下载完成时, 后面用\n结尾, 全部下载完成时, 加\0结尾,\0会导致任务结束, 需要再启动可以再次调用ZAux_Run3FileRam /// /// 连接句柄 /// 3次文件编号 /// 剩余空间字节数 /// 设置3次文件名.3次文件不会自动运行, 需调用ZAux_Run3FileRam启动 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_3FileRamDownBegin", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_3FileRamDownBegin(IntPtr handle, int ifile3num, ref UInt32 premainbyte, string File3Name); /// /// 读取3次文件可写的空间. /// /// 连接句柄 /// 3次文件编号 /// 剩余空间字节数 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_3FileRamGetRemainSpace", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_3FileRamGetRemainSpace(IntPtr handle, int ifile3num, ref UInt32 premainbyte); /// /// 动态下载3次文件, 一次下载的内容必须是完整的单行或多行,没有下载完成时, 后面用\n结尾, 全部下载完成时, 加\0结尾 /// /// 连接句柄 /// 3次文件编号 /// 下载的字符串 /// 字符串长度 /// 剩余空间字节数 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_3FileRamDownPart", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_3FileRamDownPart(IntPtr handle, int ifile3num, StringBuilder pbuffer, UInt32 buffsize, ref UInt32 premainbyte); /// /// 运行控制器内3次文件 /// /// 连接句柄 /// 3次文件编号 /// 运动任务号 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_Run3FileRam", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_Run3FileRam(IntPtr handle, int ifile3num, int itasknum); /// /// 动态下载3次文件, 下载结束, 自动加\0, 并且调用后再次调用 ZMC_3FileRamDownPart 会返回错误 /// /// 连接句柄 /// 3次文件编号 /// [DllImport("zauxdll.dll", EntryPoint = "ZAux_3FileRamDownEnd", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern Int32 ZAux_3FileRamDownEnd(IntPtr handle, int ifile3num); } }