|
|
/****************************************************************************************************
|
|
|
* ZT Motion Library *
|
|
|
* Copyright (C) 2023 ZHITENG (Shenzhen) Motion Technology Co.,Ltd *
|
|
|
* *
|
|
|
* *
|
|
|
* @file ztm.cs *
|
|
|
* @brief defs of struct and function *
|
|
|
* *
|
|
|
* *
|
|
|
* @version 4.0.1R0(版本号) *
|
|
|
* @date 2023.03.10 *
|
|
|
* *
|
|
|
* *
|
|
|
****************************************************************************************************/
|
|
|
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text;
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
namespace CSZTM
|
|
|
{
|
|
|
public class ZTM
|
|
|
{
|
|
|
#region 函数返回值及其含义
|
|
|
|
|
|
public static short ZT_STAT_MC_OPENING = 2; /*正在打开控制器*/
|
|
|
public static short ZT_STAT_MC_OPEND = 1; /*控制器已打开*/
|
|
|
|
|
|
public static short ZT_ERR_OK = 0; /*无错误*/
|
|
|
|
|
|
public static short ZT_ERR_PMVAL = -1; /*参数值错误*/
|
|
|
public static short ZT_ERR_PULSEOVERFLOW = -2; /*脉冲发生器溢出*/
|
|
|
public static short ZT_ERR_PMID = -3; /*参数ID不存在,无此参数*/
|
|
|
public static short ZT_ERR_MCMAX = -4; /*控制器不存在,超出系统支持的最大控制器索引号*/
|
|
|
public static short ZT_ERR_CHMAX = -5; /*通道号不存在,超出系统最大通道数*/
|
|
|
public static short ZT_ERR_AXISMAX = -6; /*轴号不存在,超出系统最大轴数*/
|
|
|
public static short ZT_ERR_NOAUTH = -7; /*控制器无授权*/
|
|
|
public static short ZT_ERR_PLCADDROVERFLOW = -8; /*PLC地址溢出*/
|
|
|
public static short ZT_ERR_NOFLAG = -9; /*没有此状态或标志*/
|
|
|
public static short ZT_ERR_NONSTOPPED = -10; /*运动没有停止*/
|
|
|
public static short ZT_ERR_MCNOFILE = -11; /*文件号打开失败。文件号不存在,或SD卡不存在。*/
|
|
|
public static short ZT_ERR_HOSTNOFILE = -12; /*HOST打开文件失败*/
|
|
|
public static short ZT_ERR_AXISALM = -13; /*轴伺服报警*/
|
|
|
public static short ZT_ERR_AXISPOT = -14; /*轴正向硬限位*/
|
|
|
public static short ZT_ERR_AXISNOT = -15; /*轴负向硬限位*/
|
|
|
public static short ZT_ERR_AXISPSL = -16; /*轴正向软限位*/
|
|
|
public static short ZT_ERR_AXISNSL = -17; /*轴负向软限位*/
|
|
|
public static short ZT_ERR_AXISESTOP = -18; /*硬急停*/
|
|
|
public static short ZT_ERR_AXISOT = -19; /*轴硬限位*/
|
|
|
public static short ZT_ERR_AXISSL = -20; /*轴软限位*/
|
|
|
|
|
|
public static short ZT_ERR_HDBUSY = -51; /*大数据传送忙*/
|
|
|
public static short ZT_ERR_HDERROR = -52; /*大数据传送错误*/
|
|
|
|
|
|
public static short ZT_ERR_FILEOPEND = -61; /*文件已打开*/
|
|
|
public static short ZT_ERR_NOFILEOPEN = -62; /*文件未打开*/
|
|
|
|
|
|
public static short ZT_ERR_CMDBUFFFULL = -100; /*BLOCK指令缓冲区满*/
|
|
|
|
|
|
public static short ZT_ERR_COM_ADDR = -101; /*与HOST通讯的设备地址错误*/
|
|
|
public static short ZT_ERR_COM_CHECKSUM = -102; /*与HOST通讯的校验和错误*/
|
|
|
public static short ZT_ERR_COM_INVCMD = -103; /*与HOST通讯的命令ID错误*/
|
|
|
public static short ZT_ERR_SOCKET = -104; /*HOST库中,SOCKET初始化失败*/
|
|
|
public static short ZT_ERR_SHM = -105; /*HOST库中,SHM初始化失败*/
|
|
|
public static short ZT_ERR_PIPE = -106; /*HOST库中,PIPE初始化失败*/
|
|
|
public static short ZT_ERR_NOLIBINITD = -107; /*HOST库没有初始化*/
|
|
|
public static short ZT_ERR_NOMCOPEN = -108; /*HOST库中,控制器未打开*/
|
|
|
public static short ZT_ERR_MC_NONCONNECT = -110; /*HOST与控制器通讯超时,未连接*/
|
|
|
public static short ZT_ERR_THREAD = -112; /*HOST库中,线程初始化失败*/
|
|
|
public static short ZT_ERR_BUFFIDX = -113; /*命令缓冲区索引号错误*/
|
|
|
public static short ZT_ERR_BUFFFULL = -114; /*发送缓冲区满*/
|
|
|
public static short ZT_ERR_PREBUFFFULL = -115; /*BLOCK命令的预缓冲区满*/
|
|
|
|
|
|
public static short ZT_ERR_FB_TIMEOUT = -121; /*伺服现场总线超时*/
|
|
|
public static short ZT_ERR_FB_NCYCWNG = -122; /*伺服总线中非周期命令执行报警*/
|
|
|
public static short ZT_ERR_FB_CCYCERR = -123; /*伺服总线中非周期命令执行错误*/
|
|
|
|
|
|
public static short ZT_ERR_SERVICE_STOP = -230; /*控制器服务程序停止*/
|
|
|
|
|
|
public static short ZT_ERR_UPDATE = -255; /*内部使用,更新命令*/
|
|
|
|
|
|
#endregion 函数返回值及其含义
|
|
|
|
|
|
|
|
|
#region 函数接口
|
|
|
|
|
|
#region 控制器操作
|
|
|
|
|
|
/// <summary>
|
|
|
/// 搜索IP段的控制器
|
|
|
/// </summary>
|
|
|
/// <param name="host_ip">主机端IP地址 </param>
|
|
|
/// <param name="mc_ip_1">搜索到的控制器的IP地址的第一段 </param>
|
|
|
/// <param name="mc_ip_2">搜索到的控制器的IP地址的第二段 </param>
|
|
|
/// <param name="mc_ip_3">搜索到的控制器的IP地址的第三段 </param>
|
|
|
/// <param name="mc_ip_4">搜索到的控制器的IP地址的第四段 </param>
|
|
|
/// <param name="timeout">搜索一个IP地址的超时时间,单位:ms </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SearchMc(char[] host_ip, ref char mc_ip_1, ref char mc_ip_2, ref char mc_ip_3, ref char mc_ip_4, short timeout = 500);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 打开控制器
|
|
|
/// </summary>
|
|
|
/// <param name="ip">控制器的IP地址,是C类IP地址私有范围地址,192.168.0.0~192.168.255.255。 </param>
|
|
|
/// <param name="mc">服务分配并返回的控制器索引,作为其它接口函数的控制器索引参数,0表示无效控制器。 </param>
|
|
|
/// <param name="timeout">服务与控制器通讯握手超时时间,单位是ms,0表示超时无穷大。 </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_Open(char[] ip, ref short mc, short timeout = 500);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 利用索引号关闭控制器
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引 </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_Close(short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 利用IP关闭控制器
|
|
|
/// </summary>
|
|
|
/// <param name="ip">控制器IP地址 </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_CloseIP(char[] ip);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 控制器热复位
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引 </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_Reset(short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器连接状态
|
|
|
/// </summary>
|
|
|
/// <param name="ip">控制器的IP地址</param>
|
|
|
/// <param name="mc">服务返回的IP地址对应的控制器索引,作为其它接口函数的控制器索引参数,0表示无效控制器</param>
|
|
|
/// <returns>返回控制器连接状态,0-未连接,1-已连接,2-正在连接</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetConnectionStatus(char[] ip, ref short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置控制器的IP地址
|
|
|
/// </summary>
|
|
|
/// <param name="oldip">原来的IP地址</param>
|
|
|
/// <param name="newip">新的IP地址</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetIP(char[] oldip, char[] newip);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 搜索IP地址对应的控制器是否存在
|
|
|
/// </summary>
|
|
|
/// <param name="ip">IP地址</param>
|
|
|
/// <param name="timeout">超时时间,单位:ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_FindIP(char[] ip, short timeout = 500);
|
|
|
|
|
|
#endregion 控制器操作
|
|
|
|
|
|
|
|
|
#region 回零操作
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置回零参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号</param>
|
|
|
/// <param name="dir">回零方向,1-正向,0-负向</param>
|
|
|
/// <param name="mode">回零模式,取值范围:
|
|
|
/// 0-无效
|
|
|
/// 1-HOME,零点开关一次回零
|
|
|
/// 2-LMT,限位开关一次回零
|
|
|
/// 3-Z,编码器Z相信号一次回零
|
|
|
/// 4-HOME+Z,原点与编码器Z相信号联合回零
|
|
|
/// 5-LMT+Z,限位开关与编码器Z相信号联合回零
|
|
|
/// 6-LMT+HOME,限位开关与零点开关联合回零
|
|
|
/// 7-LMT+HOME+Z,限位开关、零点开关与编码器Z相信号联合回零
|
|
|
/// 8-原地,仅仅将轴的位置清零
|
|
|
/// 12-Z2,二次编码器Z相信号回零,类似于一次零点回零
|
|
|
/// </param>
|
|
|
/// <param name="lo_vel">回零低速,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.0</param>
|
|
|
/// <param name="hi_vel">回零高速,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.0</param>
|
|
|
/// <param name="acc">回零加速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.0</param>
|
|
|
/// <param name="offset">零点偏置,单位:p或物理量纲分辨率,取值范围:±2^31,默认值为0</param>
|
|
|
/// <param name="latch_dist">锁存方式回零时搜索距离,如果值大于零,表示锁存方式回零,单位:p或物理量纲分辨率,
|
|
|
/// 取值范围:0~2^31,默认值为0,表示低速搜索信号,立即停止。
|
|
|
/// </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetHomeParam(short mc, short axis, short dir, short mode, float lo_vel, float hi_vel, float acc, int offset = 0, int latch_dist = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 回零启动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <param name="rstenc">回零时清零编码器位置,1-清零编码器位置,0-不清零编码器位置</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remark>对于各种伺服驱动器和步进驱动器,回零启动前,都要调用ZT_SetServoOn激活伺服使能, 以确保回零结束时回零完成信号有效</remark>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_Home(short mc, uint axes, short rstenc = 1);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴正向软限位位置
|
|
|
/// </summary>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">正向软限位,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPSL(short mc, short axis, int pos);
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
|
/// </summary>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">负向软限位,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetNSL(short mc, short axis, int pos);
|
|
|
|
|
|
#endregion 回零操作
|
|
|
|
|
|
|
|
|
#region 点位运动
|
|
|
|
|
|
/// <summary>
|
|
|
/// 绝对式P2P运动,单轴运动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">绝对目标位置,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <param name="str_vel">起跳速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="max_vel">目标速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="acc">目标加速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="dec">目标减速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="end_vel">截止速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="smth">平滑时间,单位:ms,取值范围:0~65535,默认值0,表示梯形运动,大于0则为S曲线运动</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_MoveA(short mc, short axis, int pos, float str_vel, float max_vel, float acc, float dec, float end_vel, ushort smth = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 相对式P2P运动,单轴运动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">相对目标位置,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <param name="str_vel">起跳速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="max_vel">目标速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="acc">目标加速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="dec">目标减速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="end_vel">截止速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="smth">平滑时间,单位:ms,取值范围:0~65535,默认值0,表示梯形运动,大于0则为S曲线运动</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_MoveR(short mc, short axis, int pos, float str_vel, float max_vel, float acc, float dec, float end_vel, ushort smth = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 正向JOG运动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="str_vel">起跳速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="max_vel">目标速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="acc">目标加速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="dec">目标减速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="end_vel">截止速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="smth">平滑时间,单位:ms,取值范围:0~65535,默认值0,表示梯形运动,大于0则为S曲线运动</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_JogP(short mc, short axis, float str_vel, float max_vel, float acc, float dec, float end_vel, ushort smth = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 负向JOG运动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="str_vel">起跳速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="max_vel">目标速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="acc">目标加速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="dec">目标减速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.000</param>
|
|
|
/// <param name="end_vel">截止速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.000</param>
|
|
|
/// <param name="smth">平滑时间,单位:ms,取值范围:0~65535,默认值0,表示梯形运动,大于0则为S曲线运动</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_JogM(short mc, short axis, float str_vel, float max_vel, float acc, float dec, float end_vel, ushort smth = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 轴运动平滑停止
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_Stop(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 轴运动立即停止
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_EStop(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置脉冲位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">命令位置,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPosPulse(short mc, short axis, int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置编码器位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">编码器位置,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPosEncoder(short mc, short axis, int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴运动的当前脉冲位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">命令位置,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetPosPulse(short mc, short axis, ref int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴运动的当前编码器位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">编码器位置,单位:p或物理量纲分辨率,取值范围:±2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetPosEncoder(short mc, short axis, ref int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴运动的当前脉冲速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="vel">命令速度,单位:p(或物理量纲分辨率)/ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetVelPulse(short mc, short axis, ref float vel);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴运动的当前实际速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="vel">实际速度,单位:p(或物理量纲分辨率)/ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetVelEncoder(short mc, short axis, ref float vel);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴运动的当前脉冲加速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="acc">命令加速度,单位:p(或物理量纲分辨率)/ms^2</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetAccPulse(short mc, short axis, ref float acc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴运动的当前编码器加速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="acc"> 实际加速度,单位:p(或物理量纲分辨率)/ms^2</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetAccEncoder(short mc, short axis, ref float acc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的最大速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="vel">轴最大速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetMaxVel(short mc, short axis, float vel);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的最大加速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="acc">最大加速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetMaxAcc(short mc, short axis, float acc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的最大减速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="dec">最大减速度,单位:p(或物理量纲分辨率)/ms^2,取值范围:0.001~4000.0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetMaxDec(short mc, short axis, float dec);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设值辅助编码器的初值
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="auxenc"> 辅助编码器索引,取值范围:0,1</param>
|
|
|
/// <param name="pos">初值,单位:p或物理量纲分辨率</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPosAux(short mc, short auxenc, int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取辅助编码器的计数值
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="auxenc"> 辅助编码器索引,取值范围:0,1</param>
|
|
|
/// <param name="pos">计数值,单位:p或物理量纲分辨率</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetPosAux(short mc, short auxenc, ref int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 绝对式P2P运动启动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_JogA(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 相对式P2P运动启动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_JogR(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 正向连续点动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_JogPlus(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 负向连续点动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_JogMinus(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的目标位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <param name="pos">目标位置</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPosT(short mc, uint axes, int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的目标速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <param name="vel">目标速度,范围:0~4095.0 p/ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetVelT(short mc, uint axes, float vel);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的目标加速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <param name="acc">目标加速度,范围:0~4095.0 p/ms^2</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetAccT(short mc, uint axes, float acc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的目标减速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <param name="dec">目标减速度,范围:0~4095.0 p/ms^2</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetDecT(short mc, uint axes, float dec);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的速度平滑时间
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <param name="tm">平滑时间,范围:0~65535 ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetSmthT(short mc, uint axes, ushort tm);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴运动的启动速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="axes">按位掩码的轴选择</param>
|
|
|
/// <param name="vel">启动速度,范围:0~4095.0 p/ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetVelS(short mc, uint axes, float vel);
|
|
|
|
|
|
#endregion 点位运动
|
|
|
|
|
|
|
|
|
#region 插补运动
|
|
|
|
|
|
#region 通道操作
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通道启动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="chs">按位掩码的通道选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChStart(short mc, ushort chs);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通道停止
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="chs">按位掩码的通道选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChStop(short mc, ushort chs);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通道紧急停止
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="chs">按位掩码的通道选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChEStop(short mc, ushort chs);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通道保持
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="chs">按位掩码的通道选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChHold(short mc, ushort chs);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通道复位
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="chs">按位掩码的通道选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChReset(short mc, ushort chs);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 通道单步选项
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="chs">按位掩码的通道选择</param>
|
|
|
/// <param name="on">单步选项方式,取值范围:1 - 通道按单步方式运行,0 - 通道按连续方式运行,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChStepOption(short mc, ushort chs, short on = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置通道对应的BLOCK命令缓冲器
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="buff">缓冲器索引,取值范围:0~9</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChSetBuffer(short mc, short ch, short buff);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道正在执行的BLOCK命令的模式
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="mode">BLOCK命令模式,取值范围:
|
|
|
/// 00 - 无效模式
|
|
|
/// 01 - 快速点定位
|
|
|
/// 02 - 直线插补
|
|
|
/// 03 - 空间圆弧插补
|
|
|
/// 04 - 坐标平面圆弧插补
|
|
|
/// 05 - 停留延时
|
|
|
/// 06 - 等待
|
|
|
/// 07 - 数字输出
|
|
|
/// 99 - 结束
|
|
|
/// </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetBlockMode(short mc, short ch, ref short mode);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道的运行状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="running">按位掩码表示的通道运行标志</param>
|
|
|
/// <param name="stopped">按位掩码表示的通道中各轴运动停止标志</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetStatus(short mc, ref short running, ref short stopped);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道的实际进给速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="feed">实际速度,单位:物理量纲,相当于mm(deg)/s,um(0.001deg)/ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetActualFeed(short mc, short ch, ref float feed);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道的当前插补块的命令进给速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="feed">当前命令进给速度,单位:物理量纲,相当于mm(deg)/s,um(0.001deg)/ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetCommandFeed(short mc, short ch, ref float feed);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道当前执行块的块号
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="id">块号</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetBlockID(short mc, short ch, ref uint id);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置通道运动参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="acc">加速度,取值范围:0.001~4000.0,单位:物理量纲,相当于m(Kdeg)/s^2,um(0.001deg)/ms^2</param>
|
|
|
/// <param name="str_vel">起跳速度,取值范围:0.001~8000.0,单位:物理量纲,相当于mm(deg)/s, um(0.001deg)/ms</param>
|
|
|
/// <param name="end_vel">截止速度,取值范围:0.001~8000.0,单位:物理量纲,相当于mm(deg)/s, um(0.001deg)/ms</param>
|
|
|
/// <param name="smth">速度平滑时间,取值范围:0~65535, 单位:ms</param>
|
|
|
/// <param name="bldtm">转角过渡时间,取值范围:0~65535,单位:ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChSetMoveParam(short mc, short ch, float acc, float str_vel, float end_vel, ushort smth = 0, ushort bldtm = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置通道运动约束参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="max_vel"> 最大速度,取值范围:0.001~8000.0,单位:物理量纲,相当于mm(deg)/s, um(0.001deg)/ms</param>
|
|
|
/// <param name="max_acc"> 最大加速度,取值范围:0.001~4000.0,单位:物理量纲,相当于m(Kdeg)/s^2,um(0.001deg)/ms^2</param>
|
|
|
/// <param name="chord_err">弓高误差,取值范围:0.001~100.0,单位:物理量纲,相当于mm(deg),默认值为1.0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChSetConstraints(short mc, short ch, float max_vel, float max_acc, float chord_err = 1.0f);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置通道的坐标
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="num">坐标数,取值范围:1~6</param>
|
|
|
/// <param name="crd_map">通道的坐标与控制器的轴号的对应关系,最大6坐标</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChSetCoordinate(short mc, short ch, short num, short[] crd_map);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道的坐标
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="num">坐标数,取值范围:1~6</param>
|
|
|
/// <param name="crd_map">通道的坐标与控制器的轴号的对应关系,最大6坐标</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetCoordinate(short mc, short ch, ref short num, short[] crd_map);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置坐标系的修调率
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="ovrd">修调值,取值范围:0~200, 单位:%</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChSetOverride(short mc, short ch, short ovrd);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道的修调率
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="ovrd">修调值,单位:%</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetOverride(short mc, short ch, ref short ovrd);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取通道的M功能代码
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="code">M功能代码号</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChGetMCode(short mc, short ch, ref short code);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置通道的M功能代码的响应值
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ch">通道号,取值范围:0~3</param>
|
|
|
/// <param name="code">M功能代码执行结束后,做出响应的代码</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChSetMCodeResponse(short mc, short ch, short code);
|
|
|
|
|
|
#endregion 通道操作
|
|
|
|
|
|
#region BLOCK(插补)命令缓冲区
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令缓冲区复位
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BufferReset(short mc, short buff);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置BLOCK命令缓冲区属性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="size">缓冲区空间,取值范围:1~20000</param>
|
|
|
/// <param name="mode">缓冲区模式,取值范围:0 - FIFO,1 - 循环队列(Round Robin),默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BufferSetParam(short mc, short buff, short size, short mode = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取BLOCK命令缓冲区的空闲空间
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="preb_free">预缓冲区的空闲空间</param>
|
|
|
/// <param name="buff_free">缓冲区的空闲空间</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remarks>只要预缓冲区的空闲空间大于0,就可以调用BLOCK(插补)命令</remarks>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BufferGetSpace(short mc, short buff, ref short preb_free, ref short buff_free);
|
|
|
|
|
|
#endregion BLOCK(插补)命令缓冲区
|
|
|
|
|
|
#region BLOCK(插补)命令
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的快速点位运动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="pos">坐标系中的坐标位置数组,最多6个坐标,单位:物理量纲分辨率</param>
|
|
|
/// <param name="crdmode">位掩码表示的通道中各坐标编程模式,取值范围:0-绝对坐标,1-相对坐标,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockRapid(short mc, short buff, uint bid, int[] pos, ushort crdmode = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的线性插补
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="pos">坐标系中的坐标位置数组,最多6个坐标,单位:物理量纲分辨率</param>
|
|
|
/// <param name="blend">转角过渡模式,取值范围:0-减速至零停止,1-自动圆角过渡,2-起跳速度尖角过渡,3-截止速度尖角过渡,其它值-保留,默认值为0</param>
|
|
|
/// <param name="crdmode">位掩码表示的通道中各坐标编程模式,取值范围:0-绝对坐标,1-相对坐标,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockLinear(short mc, short buff, uint bid, int[] pos, short blend = 0, ushort crdmode = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的任意平面圆弧插补
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="ep1,ep2,ep3">圆弧终点坐标,单位:物理量纲分辨率</param>
|
|
|
/// <param name="mp1,mp2,mp3">圆弧的中间点坐标或中心坐标,单位:物理量纲分辨率</param>
|
|
|
/// <param name="mode">圆弧表达方式,0 - 3点表达的圆弧,1 - 3点表达的整圆,2 - 圆心表达的顺时针圆弧或整圆,3 - 圆心表达的逆时针圆弧或整圆,默认值为0</param>
|
|
|
/// <param name="blend"> 转角过渡模式,取值范围:0-减速至零停止,1-自动圆角过渡,2-起跳速度转角过渡,3-截止速度转角过渡,其它值-保留,默认值为0</param>
|
|
|
/// <param name ="crdmode">位掩码表示的通道中各坐标编程模式,取值范围:0-绝对坐标,1-相对坐标,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remark>3点方式的整圆表达时,终点与起点不能重合;3个坐标分别是通道坐标系中的前3个坐标</remark>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockArc3(short mc, short buff, uint bid, int ep1, int ep2, int ep3, int mp1, int mp2, int mp3, short mode = 0, short blend = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的坐标平面内圆弧插补
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="ep1,ep2">圆弧终点坐标,单位:物理量纲分辨率</param>
|
|
|
/// <param name="mp1,mp2">中间点圆心坐标,单位:物理量纲分辨率</param>
|
|
|
/// <param name="crd1,crd2">两个坐标对应的通道坐标索引,默认值crd1=0,crd2=1</param>
|
|
|
/// <param name="mode">圆弧表达方式,0 - 3点表达的圆弧,1 - 3点表达的整圆,2 - 圆心表达的顺时针圆弧或整圆,3 - 圆心表达的逆时针圆弧或整圆,默认值为0</param>
|
|
|
/// <param name="blend">转角过渡模式,取值范围:0-减速至零停止,1-自动圆角过渡,2-起跳速度转角过渡,3-截止速度转角过渡,其它值-保留,默认值为0</param>
|
|
|
/// <param name ="crdmode">位掩码表示的通道中各坐标编程模式,取值范围:0-绝对坐标,1-相对坐标,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockArc2(short mc, short buff, uint bid, int ep1, int ep2, int mp1, int mp2, short crd1 = 0, short crd2 = 1, short mode = 0, short blend = 0, short crdmode = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的停留
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="tm">停留时间,取值范围:0~65535,单位:ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockDwell(short mc, short buff, uint bid, ushort tm);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的等待IO输入电平
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="node">IO控制器从站地址,取值范围:0~15,从站地址为0,表示运动控制器本地的IO;从站地址1~15,表示扩展的IO控制器</param>
|
|
|
/// <param name="index">站内输入位索引</param>
|
|
|
/// <param name="level">输入电平,取值范围:0 - 逻辑低,1 - 逻辑高</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockWait(short mc, short buff, uint bid, short node, short port, short level);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的数字IO输出
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="node">IO控制器从站,取值范围:0~15,从站地址为0,表示运动控制器本地的IO;从站地址1~15,表示扩展的IO控制器</param>
|
|
|
/// <param name="index">站内输出的位索引</param>
|
|
|
/// <param name="level">输出电平,取值范围:0-逻辑低,1-逻辑高</param>
|
|
|
/// <param name="qdelay">输出持续时间,取值范围:-1~2^31,单位:us</param>
|
|
|
/// <param name="toggle">是否电平翻转,取值范围:0-不翻转,1-翻转</param>
|
|
|
/// <param name="tdelay">翻转后持续时间,取值范围:-1~2^31,单位:us</param>
|
|
|
/// <param name="count">翻转计数,取值范围:1~2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remark>持续时间取值为-1,表示永久时间</remark>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockDOut(short mc, short buff, uint bid, short node, short index, short level, int qdelay, short toggle, int tdelay, int count);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的进给速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="feed">进给速度,取值范围:0.001~4000.0,单位:物理量纲,相当于mm/s,deg/s, um/ms, 0.001deg/ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockFeed(short mc, short buff, uint bid, float feed);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的M功能代码
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <param name="code">M功能代码号,取值范围:0~32767</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockMCode(short mc, short buff, uint bid, short code);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的以方式A进行位置比较输出
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="firstorlast">第一点或最后一点,取值范围:0 - 中间点;1 - 第一点;2 - 最后一点;3 - 只有一个点。默认值为0</param>
|
|
|
/// <param name="pos">比较输出的矢量长度位置,单位:物理量纲分辨率</param>
|
|
|
/// <param name="port">输出端口,取值范围:0~15</param>
|
|
|
/// <param name="level">输出电平,取值范围:0-逻辑低,1-逻辑高</param>
|
|
|
/// <param name="possrc">位置源,取值范围:0-脉冲位置,1-编码器位置,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockComparePosA(short mc, short buff, int pos, short port, short level, short firstorlast = 0, short possrc = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的以方式B进行位置比较输出
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="firstorlast">第一点或最后一点,取值范围:0 - 中间点;1 - 第一点;2 - 最后一点;3 - 只有一个点。默认值为0</param>
|
|
|
/// <param name="pos">比较输出的矢量长度位置,单位:物理量纲分辨率</param>
|
|
|
/// <param name="port">输出端口,取值范围:0~15</param>
|
|
|
/// <param name="level">输出电平,取值范围:0-逻辑低,1-逻辑高</param>
|
|
|
/// <param name="pwmperiod">pwm输出方式时的周期时间,取值范围:1~2^31,单位:us </param>
|
|
|
/// <param name="pwmduty">pwm输出方式时的前期时间,取值范围:1~2^31, 单位:us</param>
|
|
|
/// <param name="pwmcount">pwm输出方式时的脉冲数,取值范围:1~2^31</param>
|
|
|
/// <param name="possrc">位置源,取值范围:0-脉冲位置,1-编码器位置,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockComparePosB(short mc, short buff, short firstorlast, int pos, short port, short level, int pwmperiod, int pwmduty, int pwmcount, short possrc = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// BLOCK命令中的结束
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="buff">缓冲区索引,取值范围:0~9</param>
|
|
|
/// <param name="bid">BLOCK命令的块号,无逻辑含义</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_BlockEnd(short mc, short buff, uint bid);
|
|
|
|
|
|
#endregion BLOCK(插补)命令
|
|
|
|
|
|
#endregion 插补运动
|
|
|
|
|
|
|
|
|
#region 位置锁存
|
|
|
|
|
|
/// <summary>
|
|
|
/// 启动锁存功能
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="units">按位掩码的锁存单元选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_LatchBegin(short mc, uint units);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 结束锁存功能
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器序号</param>
|
|
|
/// <param name="units">按位掩码的锁存单元选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_LatchEnd(short mc, uint units);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置位置锁存的参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="unit">锁存单元号,取值范围:0~7</param>
|
|
|
/// <param name="src">位置源,1-编码器位置,0-命令位置。</param>
|
|
|
/// <param name="axis">位置源的轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="trigger">触发信号源,取值范围:
|
|
|
/// 0-编码器Z相信号
|
|
|
/// 1-零点开关
|
|
|
/// 2-通用输入
|
|
|
/// 3-位置比较输出
|
|
|
/// </param>
|
|
|
/// <param name="edge">触发边沿:0-上升沿,1-下降沿,2-上升下降沿</param>
|
|
|
/// <param name="index">触发信号源的索引,取值范围:控制器支持的轴号或输入</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLatchParam(short mc, short unit, short src, short axis, short trigger, short edge, short index);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴的锁存的位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="unit"> 锁存单元号,取值范围:0~7</param>
|
|
|
/// <param name="pos">锁存位置数组,其大小取决于用户,锁存的最大位值数256</param>
|
|
|
/// <param name="numofcapt">本次锁存过程中,已锁存的位置数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetLatchPos(short mc, short unit, int[] pos, ref short numofcapt);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴的已锁存的位置个数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="unit">锁存单元号,取值范围:0~7</param>
|
|
|
/// <param name="numofcapt">已捕捉的位置个数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetLatchNum(short mc, short unit, ref short numofcapt);
|
|
|
|
|
|
#endregion 位置锁存
|
|
|
|
|
|
|
|
|
#region 位置比较
|
|
|
|
|
|
/// <summary>
|
|
|
/// 启动位置比较功能
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="units">按位掩码的比较单元选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_CompareBegin(short mc, uint units);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 结束位置比较功能
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="units">按位掩码的比较单元选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_CompareEnd(short mc, uint units);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置位置比较的参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="unit">比较单元号,取值范围:0~7</param>
|
|
|
/// <param name="src">位置源,0-命令位置,1-编码器位置</param>
|
|
|
/// <param name="axis">位置源的轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="portbit">比较输出端口选择,取值范围:0~15</param>
|
|
|
/// <param name="portpol">比较输出端口极性,1-正逻辑,上升沿;0-负逻辑,下降沿</param>
|
|
|
/// <param name="porten">比较输出端口使能,1-比较输出,0-通用输出</param>
|
|
|
/// <param name="width">比较输出的宽度,取值范围:1~2^32,单位:us</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remark>位置比较单元可以关联不同的轴号</remark>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetCompareParam(short mc, short unit, short src, short axis, short portbit, short portpol, short porten, uint width);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置比较的位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="unit">比较单元选择,取值范围:0~7</param>
|
|
|
/// <param name="pos">比较的位置数据数组</param>
|
|
|
/// <param name="numtocmpr">比较位置的个数,取值范围:1~256</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetComparePos(short mc, short unit, int[] pos, short numtocmpr);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取轴的已完成的比较位置的个数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="unit">比较单元号,取值范围:0~7</param>
|
|
|
/// <param name="numofcmpr">返回已完成比较位置的个数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetCompareNum(short mc, short unit, ref short numofcmpr);
|
|
|
|
|
|
#endregion 位置比较
|
|
|
|
|
|
|
|
|
#region 在线更改位置和速度
|
|
|
|
|
|
/// <summary>
|
|
|
/// 在线更改位置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pos">绝对位置,单位:p或物理量纲分辨率,取值范围:+/-2^31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChangeFlyPos(short mc, short axis, int pos);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 在线更改速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="vel">速度,单位:p(或物理量纲分辨率)/ms,取值范围:0.001~8000.0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ChangeSpeedOnTheFly(short mc, short axis, float vel);
|
|
|
|
|
|
#endregion 在线更改位置和速度
|
|
|
|
|
|
|
|
|
#region 属性设置
|
|
|
|
|
|
/// <summary>
|
|
|
/// 报警清除
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="on"> 复位信号,1-设置复位,0-关闭复位</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ResetAlarm(short mc, short axis, short on);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 伺服激活
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="on"> 伺服激活,1-激活,0-失效</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetServoOn(short mc, short axis, short on);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 配置EMG
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="en">EMG使能,0-无效,仅作为通用输入</param>
|
|
|
/// <param name="pol">EMG的极性,0-正极性,1-负极性</param>
|
|
|
/// <param name="port"> EMG端口,取值范围:-1 - EMG专用端口,0~15 - 通用输入口0~15</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetEMGConfig(short mc, short en, short pol, short port = -1);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置零点开关极性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pol">零点开关极性,1-正,0-负</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetHomePol(short mc, short axis, short pol);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置正向限位开关有效性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="on">开关,1-开,0-关</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPOTOn(short mc, short axis, short on);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置负向限位开关有效性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="on">开关,1-开,0-关</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetNOTOn(short mc, short axis, short on);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置正向限位开关极性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pol">极性,1-正,0-负</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPOTPol(short mc, short axis, short pol);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置负向限位开关极性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pol">极性,1-正,0-负</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetNOTPol(short mc, short axis, short pol);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置编码器有效性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="on">有效性,1-有效,0-无效</param>
|
|
|
/// <param name="peq_invalid">轴的脉冲当量是否无效,1-脉冲当量无效,0-脉冲当量有效</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetEncoderOn(short mc, short axis, short on, short peq_invalid = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置编码器的计数极性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pol">极性,1-正,0-负</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetEncoderPol(short mc, short axis, short pol);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置编码器索引信号极性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pol">极性,1-正,0-负</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetEncoderIndexPol(short mc, short axis, short pol);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置报警信号有效性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="on">有效性,1-有效,0-无效</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetAlarmOn(short mc, short axis, short on);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置报警信号的极性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pol">极性,1-正,0-负</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetAlarmPol(short mc, short axis, short pol);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置脉冲输出方式
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="mode">模式,1-CCW+CW,0-PULSE+DIR</param>
|
|
|
/// <param name="edge">边沿,0-上升沿,1-下降沿,默认值为0</param>
|
|
|
/// <param name="dirpol">脉冲方向的极性,1-正极性,0-负极性,默认值为0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPulseMode(short mc, short axis, short mode, short edge = 0, short dirpol = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴位移是按模数运动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="mod">是否按位移模数运动,1-按模数位移,0-按广义直线位移</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetModular(short mc, short axis, short mod);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置电子齿轮比
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="master">主动轮齿数,取值范围:1~2^32</param>
|
|
|
/// <param name="slave">从动轮齿数,取值范围:1~2^32</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetGearRatio(short mc, short axis, uint master, uint slave);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置轴的脉冲当量
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="pulse">脉冲数,单位:p,取值范围:1~2^32</param>
|
|
|
/// <param name="disp">位移,单位:物理量纲分辨率,取值范围:1~2^32</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPulseRatio(short mc, short axis, uint pulse, uint disp);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置辅助编码器的脉冲当量
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="auxenc">辅助编码器索引,取值范围:0,1</param>
|
|
|
/// <param name="pulse">脉冲数,单位:p,取值范围:1~2^32</param>
|
|
|
/// <param name="disp">位移,单位:物理量纲分辨率,取值范围:1~2^32</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetPulseRatioAux(short mc, short auxenc, uint pulse, uint disp);
|
|
|
|
|
|
#endregion 属性设置
|
|
|
|
|
|
|
|
|
#region 电子齿轮操作
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置电子齿轮的属性
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="slave">从动轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="master">主动轴号,取值范围:控制器支持的轴号</param>
|
|
|
/// <param name="dir">跟随方向,取值范围:0 - 同向,1 - 反向</param>
|
|
|
/// <param name="possrc">跟随位置源,取值范围:0 - 命令位置,1 - 实际位置</param>
|
|
|
/// <param name="mode">电子齿轮跟随模式,取值范围:0 - 位置跟随,1 - 速度跟随</param>
|
|
|
/// <param name="trans">飞行改变齿轮比的平滑过渡距离</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_EGearSetParam(short mc, short slave, short master, short dir, short possrc, short mode, int trans);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 启用电子齿轮
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axes">按位掩码表示的从动轴的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_EGearStart(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 停止电子齿轮
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axes">按位掩码表示的从动轴的轴选择</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_EGearStop(short mc, uint axes);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴的电子齿轮激活状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="stat">按位掩码表示的各轴电子齿轮生效状态,各位含义:0-失效,1-激活</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_EGearGetStatus(short mc, ref uint stat);
|
|
|
|
|
|
#endregion 电子齿轮操作
|
|
|
|
|
|
#region 驱控一体A型
|
|
|
|
|
|
/****************************************************************************************
|
|
|
* @Begin 驱控一体A型
|
|
|
****************************************************************************************/
|
|
|
|
|
|
/// <summary>
|
|
|
/// 驱控一体A型参数设置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:0~7,共8个轴</param>
|
|
|
/// <param name="resolution">细分,取值范围:1,2,4,8,16,32,64,128,256</param>
|
|
|
/// <param name="current">电流,取值范围:100~3200mA,间隔100mA</param>
|
|
|
/// <param name="torque">堵转扭矩,取值范围:0%~100%</param>
|
|
|
/// <param name="mode">工作模式,取值范围:0-位置模式,2-力矩模式</param>
|
|
|
/// <param name="noload">空载扭矩参考值,取值范围:1~1000,无量纲,默认值为400</param>
|
|
|
/// <param name="sgt">扭矩检测灵敏度,取值范围:-10~63, 无量纲,默认值为10</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remarks>当轴工作在力矩模式时,遇到堵转信号,轴就自动停止脉冲信号。其它模式下,遇到堵转信号,轴继续发送脉冲信号。</remarks>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetDCIAParam(short mc, short axis, short resolution, short current, short torque, short mode = 0, short noload = 400, short sgt = 10);
|
|
|
|
|
|
/**
|
|
|
* @brief 驱控一体A型状态
|
|
|
* @param mc: 控制器索引
|
|
|
* axis: 轴号,取值范围:0~7,共8个轴
|
|
|
* sg_flag: 堵转的保持标志,范围:0 - 无堵转,1 - 已堵转
|
|
|
* sg: 堵转的实时状态,范围:0 - 无堵转,1 - 已堵转
|
|
|
* sg_value: 实时力矩,范围:0 ~ 100%
|
|
|
* @return 成功返回0
|
|
|
* @remark 只有在轴运动停止时,查询的堵转的保持标志才有效。有P2P或Jog命令时,此标志自动清除。
|
|
|
*/
|
|
|
|
|
|
/// <summary>
|
|
|
/// 驱控一体A型状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="axis">轴号,取值范围:0~7,共8个轴</param>
|
|
|
/// <param name="sg_flag">堵转的保持标志,范围:0 - 无堵转,1 - 已堵转</param>
|
|
|
/// <param name="sg">堵转的实时状态,范围:0 - 无堵转,1 - 已堵转</param>
|
|
|
/// <param name="sg_value">实时力矩,范围:0 ~ 100%</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remarks>只有在轴运动停止时,查询的堵转的保持标志才有效。有P2P或Jog命令时,此标志自动清除。</remarks>
|
|
|
//[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
//public static extern short ZT_GetDCIAStatus(short mc, short axis, short* sg_flag, short* sg, short* sg_value);
|
|
|
|
|
|
/****************************************************************************************
|
|
|
* @End 驱控一体A型
|
|
|
****************************************************************************************/
|
|
|
|
|
|
#endregion 驱控一体A型
|
|
|
|
|
|
|
|
|
#region IO操作
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置IO站的配置信息
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0-控制器本地,1~15:扩展站点</param>
|
|
|
/// <param name="type">站点IO类型,取值范围:0-数字IO,其它值-预留/param>
|
|
|
/// <param name="bytesofin">站点的输入字节数</param>
|
|
|
/// <param name="bytesofout">站点输出字节数</param>
|
|
|
/// <param name="valid">站点有效性,取值范围:1-本站点有效,0-本站点无效,默认值为1</param>
|
|
|
/// <returns></returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetIOConfig(short mc, short node, short type, short bytesofin, short bytesofout, short valid = 1);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取IO站的配置状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0-控制器本地,1~15:扩展站点</param>
|
|
|
/// <param name="type">站点IO类型,取值范围:0-数字IO,其它值-预留/param>
|
|
|
/// <param name="bytesofin">站点的输入字节数</param>
|
|
|
/// <param name="bytesofout">站点输出字节数</param>
|
|
|
/// <param name="stat">站点的配置状态,值含义:-1 - 站通讯超时;0 - 无效站点;1 - 站通讯正常</param>
|
|
|
/// <returns></returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetIOConfig(short mc, short node, ref short type, ref short bytesofin, ref short bytesofout, ref short stat);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 保存IO站的配置信息
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <returns>成功返回</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SaveIOConfig(short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 恢复出厂配置信息
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ResetIOConfig(short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 启动当前配置
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_StartIOConfig(short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置输出的位的状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口位索引</param>
|
|
|
/// <param name="data"> 输出值,取值范围:0,1</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetOutBit(short mc, short node, short index, ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按位翻转输出的端口状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口位索引</param>
|
|
|
/// <param name="data"> 输出值,取值范围:0,1</param>
|
|
|
/// <param name="delay_time">延时输出时间,取值范围:0~65535,单位:ms</param>
|
|
|
/// <param name="toggle_time">延时翻转时间,取值范围:0~65535,单位:ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ToggleOutBit(short mc, short node, short index, ushort data, ushort delay_time = 0, ushort toggle_time = 0);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置输出的字节的状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口的字节索引</param>
|
|
|
/// <param name="data">输出值,取值:0~0xFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetOutByte(short mc, short node, short index, ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置输出的字的状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口的字索引</param>
|
|
|
/// <param name="data">输出值,取值:0~0xFFFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetOutWord(short mc, short node, short index, ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置输出的双字的状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口的双字索引</param>
|
|
|
/// <param name="data">输出值,取值:0~0xFFFFFFFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetOutDWord(short mc, short node, short index, uint data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按位读取输出
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口的位索引</param>
|
|
|
/// <param name="data">端口状态值,返回值:0,1</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetOutBit(short mc, short node, short index, ref ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按字节读取输出
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口的字节索引</param>
|
|
|
/// <param name="data"> 端口状态值,返回值:0~0xFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetOutByte(short mc, short node, short index, ref ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按字读取输出
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内的输出端口的字索引</param>
|
|
|
/// <param name="data">端口状态值,返回值:0~0xFFFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetOutWord(short mc, short node, short index, ref ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按双字读取输出
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">端口状态值双字索引</param>
|
|
|
/// <param name="data">端口状态值,返回值:0~0xFFFFFFFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetOutDWord(short mc, short node, short index, ref uint data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按位读取输入
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内输入端口的位索引</param>
|
|
|
/// <param name="data">端口状态值,返回值:0,1</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetInBit(short mc, short node, short index, ref ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按字节读取输入
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内输入端口的字节索引</param>
|
|
|
/// <param name="data">端口状态值,返回值:0,1</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetInByte(short mc, short node, short index, ref ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按字读取输入
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内输入端口的字索引</param>
|
|
|
/// <param name="data">端口状态值,返回值:0~0xFFFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetInWord(short mc, short node, short index, ref ushort data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 按双字读取输入
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="node">站地址,取值范围:0~15</param>
|
|
|
/// <param name="index">本站内输入端口的双字索引</param>
|
|
|
/// <param name="data">端口状态值,返回值:0~0xFFFFFFFF</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetInDWord(short mc, short node, short index, ref uint data);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取EMG的状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="level">所选择的急停端口的电平</param>
|
|
|
/// <param name="status">急停的作用状态,0-无效,1-有效</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetEMG(short mc, ref short level, ref short status);
|
|
|
|
|
|
#endregion IO操作
|
|
|
|
|
|
|
|
|
#region 状态操作
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴正向超程开关状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="POT">按位掩码表示的正向超程开关状态</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetPOT(short mc, ref uint POT);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴负向超程开关状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="NOT">按位掩码表示的负向超程开关状态</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetNOT(short mc, ref uint NOT);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴的零点开关状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="home">按位掩码表示的各轴零点开关状态</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetHome(short mc, ref uint home);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴的正在运行状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="running">按位掩码表示的各轴运行状态,各位含义:1-运行中,0-停止</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetRunning(short mc, ref uint running);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴运动到位状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="reached">按位掩码表示的运动到位标志,各位含义:1-到位,0-未到位</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
/// <remarks>此标志反映的是伺服驱动器输出的到位信号</remarks>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetReached(short mc, ref uint reached);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴正在回零过程的状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="homing">按位掩码表示的各轴正在回零状态,1-正在回零过程,0-未在回零过程</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetHoming(short mc, ref uint homing);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴已完成回零的状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="homed">按位掩码表示的各轴已完成回零的状态,1-已完成回零,0-未完成回零</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetHomed(short mc, ref uint homed);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴电机报警信号状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="alm">按位掩码表示的电机报警状态,1-已报警,0-未报警</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetAlarm(short mc, ref uint alm);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴正向软限位标志
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="psl">按位掩码表示的各轴正向软限位标志,1-处于正向软限位,0-未处于正向软限位</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetPSLFlag(short mc, ref uint psl);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴负向软限位标志
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="nsl">按位掩码表示的各轴负向软限位标志,1-处于负向软限位,0-未处于负向软限位</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetNSLFlag(short mc, ref uint nsl);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取各轴伺服激活状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="status">按位掩码表示的各轴伺服激活状态,各位含义:1-使能,0-未使能</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetServoStatus(short mc, ref uint status);
|
|
|
|
|
|
#endregion 状态操作
|
|
|
|
|
|
|
|
|
#region 大数据传送状态检测
|
|
|
|
|
|
/// <summary>
|
|
|
/// 大数据传送的一次往返循环是否结束
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <returns>0:一次传送结束,1:一次传送未结束</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetHugeDataBusy(short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 大数据传送的一次往返循环是否成功
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <returns>0:成功,非0:错误</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetHugeDataError(short mc);
|
|
|
|
|
|
#endregion 大数据传送状态检测
|
|
|
|
|
|
|
|
|
#region 文件操作
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取文件状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">文件索引,取值范围:</param>
|
|
|
/// <param name="status">文件状态,各位的含义:
|
|
|
/// bit0 - 文件打开标志,1:文件已打开,0:文件未打开
|
|
|
/// bit1 - 文件传送标志,1:文件正在传送,0:文件停止传送
|
|
|
/// bit2 - 文件头标志,1:文件头
|
|
|
/// bit3 - 文件尾标志,1:文件尾
|
|
|
/// bit4 - 保留
|
|
|
/// bit5 - 保留
|
|
|
/// bit6 - 文件错误标志,1:文件错误,0:文件正确
|
|
|
/// bit7 - 保留
|
|
|
/// bit8~15 - 保留
|
|
|
/// </param>
|
|
|
/// <param name="bytesofrw">已传送的字节数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_FileGetStatus(short mc, short index, ref ushort status, ref int bytesofrw);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 打开读写文件
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="fileno">文件索引,取值范围:</param>
|
|
|
/// <param name="buf">文件缓冲区</param>
|
|
|
/// <param name="bytestorw">需要传送的字节数</param>
|
|
|
/// <param name="access">访问方式,取值范围:0(读) - 从控制器传送到服务,1(写)- 从服务传送到控制器</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_FileOpen(short mc, short index, char[] buf, int bytestorw, short access);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 文件传送启动
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_FileRW(short mc);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 关闭读写文件
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">文件索引,取值范围:</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_FileClose(short mc, short index);
|
|
|
|
|
|
#endregion 文件操作
|
|
|
|
|
|
|
|
|
#region 串口通讯
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置串口通讯的参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="com">串口索引,0-RS485,1-RS232A,2-RS232B</param>
|
|
|
/// <param name="baud">串口波特率,2400,4800,9600,19200,38400,57600,115200,等</param>
|
|
|
/// <param name="databits">串口数据位数,5,6,7,8</param>
|
|
|
/// <param name="stopbits">串口数据停止位数,1,2</param>
|
|
|
/// <param name="parity">串口数据奇偶校验,0-无校验,1-奇校验,2-偶校验</param>
|
|
|
/// <param name="mode">串口工作模式,0-自由协议模式,1-Modebus RTU Slave,2-Modbus RTU Master,15-单指令运动命令</param>
|
|
|
/// <param name="timeout">串口通讯超时设定,0~65535</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetComParam(short mc, short com, int baud, short databits, short stopbits, short parity, short mode, ushort timeout);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯中数据交换的字节读
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="bptr">需要读取的数据交换区的字节地址,范围:0~63</param>
|
|
|
/// <param name="numtoread">需要读取的字节数</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofread">已读取的字节数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetComDataByte(short mc, short bptr, short numtoread, short[] data, ref short numofread);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯中数据交换的字读
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="wptr">需要读取的数据交换区的字地址,范围:0~31</param>
|
|
|
/// <param name="numtoread">需要读取的字数</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofread">已读取的字数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetComDataWord(short mc, short wptr, short numtoread, ushort[] data, ref short numofread);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯中数据交换的双字读
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="dwptr">需要读取的数据交换区的双字地址,范围:0~15</param>
|
|
|
/// <param name="numtoread">需要读取的双字数</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofread">已读取的双字数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetComDataDWord(short mc, short dwptr, short numtoread, uint[] data, ref short numofread);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯中数据交换的浮点数读
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="fptr">需要读取的数据交换区的浮点数地址,范围:0~15</param>
|
|
|
/// <param name="numtoread">需要读取的浮点数的数量</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofread">已读取的浮点数的数量</param>
|
|
|
/// <param name=""></param>
|
|
|
/// <param name=""></param>
|
|
|
/// <param name=""></param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetComDataFloat(short mc, short fptr, short numtoread, float[] data, ref short numofread);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯数据交换的字节写
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="bptr">需要写的数据交换区的字节地址,范围:0~63</param>
|
|
|
/// <param name="numtowrite">需要写的字节数</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofwritten">已写的字节数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetComDataByte(short mc, short bptr, short numtowrite, short[] data, ref short numofwritten);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯数据交换的字写
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="wptr">需要写的数据交换区的字地址,范围:0~31</param>
|
|
|
/// <param name="numtowrite">需要写的字数</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofwritten">已写的字数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetComDataWord(short mc, short wptr, short numtowrite, ushort[] data, ref short numofwritten);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯数据交换的双字写
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="dwptr">需要写的数据交换区的双字地址,范围:0~15</param>
|
|
|
/// <param name="numtowrite">需要写的双字数</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofwritten">已写的双字数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetComDataDWord(short mc, short dwptr, short numtowrite, uint[] data, ref short numofwritten);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 串口通讯数据交换的浮点数写
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="fptr">需要写的数据交换区的浮点数地址,范围:0~15</param>
|
|
|
/// <param name="numtowrite">需要写的浮点数的数量</param>
|
|
|
/// <param name="data">用户声明的数据缓冲区</param>
|
|
|
/// <param name="numofwritten">已写的浮点数的数量</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetComDataFloat(short mc, short fptr, short numtowrite, float[] data, ref short numofwritten);
|
|
|
|
|
|
/// <summary>
|
|
|
/// Modbus寄存器(16bit)读命令
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="com">串口索引,0-RS485, 1-RS232A,2-RS232B</param>
|
|
|
/// <param name="addr">从站地址</param>
|
|
|
/// <param name="reg">寄存器起始地址</param>
|
|
|
/// <param name="num">寄存器数量</param>
|
|
|
/// <param name="wptr">数据交换区索引,范围:0~31</param>字
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ModbusReadReg(short mc, short com, short addr, ushort reg, ushort num, short wptr);
|
|
|
|
|
|
/// <summary>
|
|
|
/// Modbus寄存器(16bit)写命令
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="com">串口索引,0-RS485, 1-RS232A,2-RS232B</param>
|
|
|
/// <param name="addr">从站地址</param>
|
|
|
/// <param name="reg">寄存器起始地址</param>
|
|
|
/// <param name="num">寄存器数量</param>
|
|
|
/// <param name="wptr">数据交换区字索引,范围:0~31</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ModbusWriteReg(short mc, short com, short addr, ushort reg, ushort num, short wptr);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 启动串口通讯
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="com">串口索引,0-RS485, 1-RS232A,2-RS232B</param>
|
|
|
/// <param name="onshot">0-连续通讯方式,1-单次通讯方式</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ComStart(short mc, short com, short oneshot);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 停止串口通讯
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="com">串口索引,0-RS485, 1-RS232A,2-RS232B</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
///
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_ComStop(short mc, short com);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读串口通讯状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="com">串口索引,0-RS485,1-RS232A,2-RS232B</param>
|
|
|
/// <param name="stat">串口通讯状态,状态值含义,
|
|
|
/// bit 0 - 串口运行状态,0:空闲,1:正在通讯
|
|
|
/// bit 1 -
|
|
|
/// bit 2 -
|
|
|
/// bit 3 - modbus校验错误,0:无错,1:CRC错误
|
|
|
/// bit 4 -
|
|
|
/// bit 5 -
|
|
|
/// bit 6 -
|
|
|
/// bit 7 - 串口通讯超时,0:无超时,1:超时
|
|
|
/// </param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetComStatus(short mc, short com, ref short stat);
|
|
|
|
|
|
#endregion 串口通讯
|
|
|
|
|
|
|
|
|
#region 锁附指令
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附轴号
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="r_axis">R轴轴号</param>
|
|
|
/// <param name="enc_axis">光栅轴号</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairAxis(short mc, short index, short r_axis, short enc_axis);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附速度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="hivel">锁附高速,单位p/ms,取值范围:0.001~8000.0</param>
|
|
|
/// <param name="lovel">锁附低速,单位p/ms,取值范围:0.001~8000.0</param>
|
|
|
/// <param name="dec">锁附减速度,单位p/ms^2,取值范围:0.001~4000.0</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairVel(short mc, short index, float hivel, float lovel, float dec);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附高度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="lock_h">锁附高度,绝对高度,单位p</param>
|
|
|
/// <param name="align_h">对位高度,相对高度,单位p</param>
|
|
|
/// <param name="trqsamp_h">后段采集扭力高度,相对高度,单位p</param>
|
|
|
/// <param name="lower_h">低速锁的起始高度,相对高度,单位p</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairHeight(short mc, short index, int lock_h, int align_h, int trqsamp_h, int lower_h);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附高度偏差
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="lock_es">锁附高度上偏差,单位p</param>
|
|
|
/// <param name="lock_ei">锁附高度下偏差,单位p</param>
|
|
|
/// <param name="align_es">对位高度上偏差,单位p</param>
|
|
|
/// <param name="align_ei">对位高度下偏差,单位p</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairHeightDeviation(short mc, short index, int lock_es, int lock_ei, int align_es, int align_ei);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附扭力限制
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="ch">扭力通道</param>
|
|
|
/// <param name="upper">扭力上限</param>
|
|
|
/// <param name="lower">扭力下限</param>
|
|
|
/// <param name="ischecking">是否启用扭力检测,取值:1-启用,0-不启用</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairTrq(short mc, short index, short ch, int upper, int lower, short ischecking);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置R轴反转角度
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="rev_aft_lock">锁附后反转角度,单位p</param>
|
|
|
/// <param name="rev_bfr_align">对位前反转角度,单位p</param>
|
|
|
/// <param name="is_rev_aft_lock">是否启用锁附后反转</param>
|
|
|
/// <param name="is_rev_bfr_align">是否启用对位前反转</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairReverse(short mc, short index, int rev_aft_lock, int rev_bfr_align, int is_rev_aft_lock, int is_rev_bfr_align);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附延时
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="dly_aft_lockrev">锁附反转停止后延时,单位ms</param>
|
|
|
/// <param name="dly_aft_alignrev">对位反转停止后延时,单位ms</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairDelay(short mc, short index, int dly_aft_lockrev, int dly_aft_alignrev);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附R轴旋转约束圈数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="hivel_rev">高速锁附旋转圈数约束,单位p</param>
|
|
|
/// <param name="lovel_rev">低速锁附旋转圈数约束,单位p</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairRestrictRev(short mc, short index, int hivel_rev, int lovel_rev);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置锁附Z轴参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="is_z_valid">Z轴是否有效,1-有效,0-无效</param>
|
|
|
/// <param name="z_axis">Z轴轴号</param>
|
|
|
/// <param name="hivel">Z轴高速,单位:p/ms</param>
|
|
|
/// <param name="lovel">Z轴低速,单位:p/ms</param>
|
|
|
/// <param name="dec">Z轴减速度,单位:p/ms^2</param>
|
|
|
/// <param name="dec_h">Z轴减速高度,单位:p</param>
|
|
|
/// <param name="r_rev_h">Z轴触发R轴回转的高度,单位:p</param>
|
|
|
/// <param name="lock_h">Z轴锁附高度</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetLockPairZ(short mc, short index, short is_z_valid, short z_axis, float hivel, float lovel, float dec, int dec_h, int r_rev_h, int lock_h);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 启动锁附
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_LockPairStart(short mc, short index);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 停止锁附
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_LockPairStop(short mc, short index);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取锁附过程状态
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="running">按位掩码表示的各锁附任务的过程状态,0-空闲状态,1-正在锁附。</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetLockPairRunning(short mc, ref uint running);
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="index">锁附任务索引</param>
|
|
|
/// <param name="res">锁附过程结果</param>
|
|
|
/// <param name="height">锁附完成的高度</param>
|
|
|
/// <param name="trq">锁附完成的扭力</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetLockPairResult(short mc, short index, ref int res, ref int height, ref int trq);
|
|
|
|
|
|
#endregion 锁附指令
|
|
|
|
|
|
|
|
|
#region 系统信息指令
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器的控制周期计数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="ticks">控制周期计数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetMcTicks(short mc, ref uint ticks);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器的特性参数
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="period">控制周期,单位:ns</param>
|
|
|
/// <param name="axis_num">控制器的最大轴数</param>
|
|
|
/// <param name="ch_max">控制器的最大通道数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetMcProperty(short mc, ref uint period, ref short axis_num, ref short ch_max);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器的接口资源
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="di_num">数字输入端口数</param>
|
|
|
/// <param name="do_num">数字输出端口数</param>
|
|
|
/// <param name="ai_num">模拟输入端口数</param>
|
|
|
/// <param name="ao_num">模拟输出端口数</param>
|
|
|
/// <param name="pi_num">脉冲输入端口数</param>
|
|
|
/// <param name="po_num">脉冲输出端口数</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetMcIOResource(short mc, ref short di_num, ref short do_num, ref short ai_num, ref short ao_num, ref short pi_num, ref short po_num);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器的型号
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="model">控制器型号</param>
|
|
|
/// <param name="type">控制器功能类型</param>
|
|
|
/// <param name="ver">版本号</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetMcModel(short mc, ref short model, ref short type, ref ushort ver);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器的型号
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="arm_ver">控制器型号</param>
|
|
|
/// <param name="fpga_ver">控制器功能类型</param>
|
|
|
/// <param name="service_ver">版本号</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetMcVersion(short mc, ref uint arm_ver, ref uint fpga_ver, ref uint service_ver);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置控制器时钟
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="year">年</param>
|
|
|
/// <param name="month">月</param>
|
|
|
/// <param name="mday">日</param>
|
|
|
/// <param name="wday">星期</param>
|
|
|
/// <param name="hour">小时</param>
|
|
|
/// <param name="min">分</param>
|
|
|
/// <param name="sec">秒</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_SetRTC(short mc, short year, short month, short mday, short wday, short hour, short min, short sec);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器时钟
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="year">年</param>
|
|
|
/// <param name="month">月</param>
|
|
|
/// <param name="mday">日</param>
|
|
|
/// <param name="wday">星期</param>
|
|
|
/// <param name="hour">小时</param>
|
|
|
/// <param name="min">分</param>
|
|
|
/// <param name="sec">秒</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetRTC(short mc, ref short year, ref short month, ref short mday, ref short wday, ref short hour, ref short min, ref short sec);
|
|
|
|
|
|
/// <summary>
|
|
|
/// 读取控制器动态握手周期
|
|
|
/// </summary>
|
|
|
/// <param name="mc">控制器索引</param>
|
|
|
/// <param name="span">握手间隔,单位:us</param>
|
|
|
/// <returns>成功返回0</returns>
|
|
|
[DllImport("RS.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
|
|
|
public static extern short ZT_GetHandshakeSpan(short mc, ref int span);
|
|
|
|
|
|
#endregion 系统信息指令
|
|
|
|
|
|
#endregion 函数接口
|
|
|
}
|
|
|
} |