一、异常减速停止时间设置功能
设置减速停止时间
函数
public int ExecptionProcess()
{
ushort _cardNo = 0;
ushort _axisNo = 0;
double _stopTime = 1; //减速时间,单位:s
LTDMC.dmc_set_dec_stop_time(_cardNo, _axisNo, _stopTime);
return 0;
}
二、手轮运动
单轴手轮运动功能
设置单轴手轮运动控制输入方式
启动手轮运动

手轮通道选择设置
Code:
public int HandWheel()
{
// 设置单轴手轮运动控制输入方式
ushort _cardNo = 0;
ushort _axisNo = 0;
ushort _inMode = 1; //手轮输入方式,0:A、B 相位正交信号;1:脉冲+方向信号
int _multi = 1; //手轮倍率,正数表示默认方向,负数表示与默认方向反向
ushort _vh = 0; //保留参数,固定值为 0
LTDMC.dmc_set_handwheel_inmode(_cardNo, _axisNo,_inMode, _multi, _vh);
//启动手轮运动
LTDMC.dmc_handwheel_move(_cardNo, _axisNo);
//手轮通道选择设置
ushort _index = 1; // 0:高速通道 1:低速通道
LTDMC.dmc_set_handwheel_channel(_cardNo, _index);
return 0;
}
多轴手轮运动功能
设置多轴手轮运动控制输入方式
code
三、编码器检测
卡的反馈位置计数器是一个 32 位正负计数器,对通过控制卡编码器接口 EA, EB 输入的脉冲(如编码器、光栅尺反馈脉冲等)进行计数。

设置编码器输入口的计数方式
设置编码器方向
读取编码器反馈的脉冲计数值
设置编码器的脉冲计数值
读取指定轴螺距补偿开启补偿前编码器脉冲计数值
设置指定轴的EZ信号
code:
public int EncoderTest()
{
// 设置单轴手轮运动控制输入方式
ushort _cardNo = 0;
ushort _axisNo = 0;
ushort _encoderMode = 1; // 0非A/B向 1 :1 XA/B 2: 2 XA/B 3, 3 XA/B
LTDMC.dmc_set_counter_inmode(_cardNo, _axisNo, _encoderMode);
// 设置编码器方向
ushort _direct = 0; // 编码器的方向,0 A在前面为正 1 B在前面为正
LTDMC.dmc_set_encoder_dir(_cardNo, _axisNo, _direct);
// 设置指定轴编码器脉冲计数器
ushort _encoderValue= 1000; //单位是 pulse
LTDMC.dmc_set_encoder(_cardNo, _axisNo, _encoderValue);
// 读取指定轴螺距补偿开启补偿前编码器脉冲计数值
double _encoderPos=0 ; // 编码器计数值
LTDMC.dmc_get_encoder_ex(_cardNo, _axisNo, ref _encoderPos);
// 设置指定轴的EZ 信号
ushort _ezLogic = 0; // EZ信号有效电平 0 低 有 1 高有效
ushort _ezMode= 1;
ushort _fiter = 1;
LTDMC.dmc_set_ez_mode(_cardNo, _axisNo, _ezLogic, _ezMode, _fiter);
// 读取指定轴的EZ信号
double _fiterEz = 0;
LTDMC.dmc_get_ez_mode(_cardNo, _axisNo,ref _ezLogic,ref _ezMode,ref _fiterEz);
return 0;
}
四、I/O
用户可以通过使用数字I/O口用于检测开环信号和传感器信号等的输入信号,或者控制继电器、电磁阀等输出设备的信号
读取指定控制卡的某个输入端口的电平
设置指定控制卡的某个输出端口的电平
读取指定控制卡的某个输出端口的电平
读取指定控制卡的全部输入端口的电平
读取指定控制卡的全部输出口的电平
设置指定控制卡的全部输出口的电平
Code
public int IOTest()
{
// 读取指定控制卡的某个输入端口的电平
ushort _cardNo = 0;
ushort _bitNo = 0; // 输入端口号 0-15
int _logic= LTDMC.dmc_read_inbit(_cardNo, _bitNo); // 返回值是输入端口电平 0 低电平 1 高电平
// 设置指定控制卡的某个输出端口的电平
ushort _onOff = 1; // 0 低电平 1 高电平
LTDMC.dmc_write_outbit(_cardNo, _bitNo, _onOff);
// 读取指定控制卡的某个输出端口的电平
int _logic2 = LTDMC.dmc_read_outbit(_cardNo, _bitNo);//返回值 0 低电平 1 高电平
// 读取指定控制卡的全部输入端口的电平
ushort _inPort = 0; // IO组号, 0 或者 1
LTDMC.dmc_read_inport(_cardNo, _inPort);
// 读取指定控制卡的全部输出口的电平
ushort _outPort = 0;
LTDMC.dmc_read_outport(_cardNo, _outPort);
ushort _outP = 1;
uint _portValue = 1;
LTDMC.dmc_write_outport(_cardNo, _outP, _portValue);
return 0;
}
I/O延时功能
IO输出延时反转
code
// IO 输出延时翻转
double _outReverseTime = 0; // 延时翻转时间 单位是 S
LTDMC.dmc_reverse_outbit(_cardNo, _bitNo, _outReverseTime);
I/O计数功能
设置IO计数模式
读取IO计数模式
设置IO计数值
读取IO计数值
code
// 设置IO计数模式
ushort _countModer = 1; // IO计数模式 0 禁止 1 上升沿计数 2 下降沿计数
double _filterTime = 0; // 滤波时间
LTDMC.dmc_set_io_count_mode(_cardNo, _bitNo, _countModer, _filterTime);
// 读取IO计数模式
LTDMC.dmc_get_io_count_mode(_cardNo, _bitNo,ref _countModer ,ref _filterTime);
//设置IO计数值
uint _countValue = 1;
LTDMC.dmc_set_io_count_value(_cardNo, _bitNo, _countValue);
//读取IO计数值
LTDMC.dmc_get_io_count_value(_cardNo, _bitNo, ref _countValue);
轴IO映射功能
设置轴IO映射关系
读取轴IO映射关系
统一设置所有专用的IO滤波时间
code
public int IOAxisMap()
{
// 读取指定控制卡的某个输入端口的电平
ushort _cardNo = 0;
ushort _axisNo = 2; // 指定轴号
ushort _ioType = 1; // 指定轴的IO信号类型
ushort _mapIOType = 1; // 轴IO映射类型
ushort _mapIOIndex = 1; // 轴IO映射索引号
ushort _filterTime = 29;
LTDMC.dmc_set_axis_io_map(_cardNo, _axisNo,_ioType,_mapIOType, _mapIOIndex, _filterTime);
// 读取轴IO映射关系
double _filterTime1 = 29;
LTDMC.dmc_get_axis_io_map(_cardNo, _axisNo, _ioType, ref _mapIOType, ref _mapIOIndex, ref _filterTime1);
// 统一设置所有专用的IO滤波时间
double _filterTime3 = 20;
LTDMC.dmc_set_special_input_filter(_cardNo, _filterTime3);
return 0;
}
虚拟IO映射功能
设置虚拟IO映射关系
读取虚拟IO映射关系设置
读取滤波后的虚拟IO电平状态
code
public int IOVirtualMap()
{
// 设置虚拟IO映射关系
ushort _cardNo = 0;
ushort _bitNo = 2; // 指定轴号
ushort _mapIOType = 1; // 轴IO映射类型
ushort _mapIOIndex = 1; // 轴IO映射索引号
ushort _filterTime = 29;
LTDMC.dmc_set_io_map_virtual(_cardNo, _bitNo,_mapIOType,_mapIOIndex, _filterTime);
// 读取虚拟IO映射关系设置
double _filterTime1 = 29;
LTDMC.dmc_get_io_map_virtual(_cardNo, _bitNo,ref _mapIOType, ref _mapIOIndex, ref _filterTime1);
// 读取滤波后的虚拟IO电平状态
LTDMC.dmc_read_inbit_virtual(_cardNo, _bitNo);
return 0;
}
CAN-IO 扩展模块
设置CAN通讯状态
读取CAN通讯状态
设置指定CAN_IO扩展模块的某个输出信号
读取指定CAN_IO扩展模块的某个输出信号