北京阿尔泰科技发展有限公司
AR T1010 WIN2000/XP 驱动程序使用说明书
请您务必阅读《使用纲要 》,他会使您事半功倍!
目 录
ART1010 WIN2000/XP 驱动程序使用说明书..................................................................................................................1
第一章 概述.................................................................................................................................................................1
第二章 使用纲要.........................................................................................................................................................2
第一节、定量驱动和连续驱动...........................................................................................................................2
一、定量脉冲输出驱动............................................................................................................................... 2
二、连续脉冲驱动输出............................................................................................................................... 3
第二节、速度曲线...............................................................................................................................................3
一、定速驱动...............................................................................................................................................3
二、直线加/ 减速驱动..................................................................................................................................4
三、非对称直线加减速驱动.......................................................................................................................5
四、S 曲线加/ 减速驱动 ..............................................................................................................................6
五、脉冲宽度和速度的精度.......................................................................................................................7
第三节、位置管理...............................................................................................................................................8
一、逻辑位置计数器和实际位置计数器...................................................................................................8
二、比较寄存器和软件限位.......................................................................................................................8
三、位置计数器的可变环形.......................................................................................................................9
第四节、插补.......................................................................................................................................................9
一、直线插补...............................................................................................................................................9
二、圆弧插补.............................................................................................................................................10
三、固定线速度.........................................................................................................................................10
四、位模式插补.........................................................................................................................................10
五、连续插补............................................................................................................................................. 11
六、步进插补............................................................................................................................................. 11
七、加减速驱动的插补............................................................................................................................. 12
第五节、原点搜寻.............................................................................................................................................13
第六节、中断.....................................................................................................................................................13
第七节、其它功能.............................................................................................................................................13
一、外部信号控制的驱动操作.................................................................................................................13
二、硬件限位(nLMTP/M).........................................................................................................................14
三、伺服电机报警信号(nALARM)..........................................................................................................14
四、伺服电机到位信号(nINPOS ) .......................................................................................................14
五、紧急停止.............................................................................................................................................14
六、脉冲输出类型.....................................................................................................................................14
七、驱动状态输出.....................................................................................................................................14
八、输入信号滤波器.................................................................................................................................15
九、通用 I/O 信号 .....................................................................................................................................15
第三章 库函数驱动程序的使用说明.......................................................................................................................16
第一节、函数调用举例(vc)说明.....................................................................................................................16
一、使用 ART1010_InitLVDV、ART1010_StartLVDV 定长、连续脉冲驱动函数启动电机进行定长驱
动.................................................................................................................................................................16
二、使用 ART1010_InitLVDV、ART1010_StartLVDV 定长、连续脉冲驱动函数启动电机进行连续驱
动.................................................................................................................................................................17
三、使用 ART1010_InitLVDV、ART1010_Start2D 函数启动两轴同时驱动 .......................................18
四、使用 ART1010_InitLineInterpolation、ART1010_StartLineInterpolation 函数启动直线插补驱动
.....................................................................................................................................................................19
1
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
五、使用 ART1010_InitCWInterpolation 函数启动正反方向圆弧插补驱动.........................................20
六、位插补举例.........................................................................................................................................21
七、连续插补举例.....................................................................................................................................21
八、外部信号控制的驱动函数.................................................................................................................22
九、设置外部越限信号有效及停止方式.................................................................................................23
十、设置伺服马达输出到位有效.............................................................................................................24
十一、实际位置计数器举例.....................................................................................................................26
十二、读 RR 状态寄存器的位状态..........................................................................................................26
第四章 驱动函数库...................................................................................................................................................29
第一节、驱动函数库函数列表.........................................................................................................................29
第二节、驱动函数库说明.................................................................................................................................31
一、设备对象管理函数............................................................................................................................. 31
二、设置控制卡的基本参数函数.............................................................................................................31
三、直线 S 曲线初始化、启动函数.........................................................................................................34
四、直线插补初始化、启动函数.............................................................................................................35
五、正反方向圆弧插补初始化、启动函数.............................................................................................35
六、位插补相关函数.................................................................................................................................36
七、连续插补相关函数............................................................................................................................. 37
八、外部信号启动电机定长驱动、连续驱动.........................................................................................37
九、设置软件限位有效和无效.................................................................................................................38
十、设置外部输入信号的有效和无效.....................................................................................................38
十一、减速函数设置.................................................................................................................................39
十二、读电机状态:逻辑计数器、实际位置计数器、当前速度、加/ 减速度 ....................................40
十三、读状态寄存器的位状态.................................................................................................................40
十四、设置通用输出和读通用输入.........................................................................................................41
第五章 硬件参数结构...............................................................................................................................................42
第一节、公用参数介绍(ART1010_PARA_DataList) ...................................................................................42
第二节、直线和 S 曲线参数介绍(ART1010_PAPA_LCData) .......................................................................42
第三节、直线插补和固定线速度直线插补参数介绍(ART1010_PAPA_LineData) ...................................43
第四节、正反方向圆弧插补参数介绍(ART1010_PAPA_CircleData) .......................................................43
第五节、状态寄存器 RR0 参数介绍(ART1010_PARA_RR0) .........................................................................44
第六节、状态寄存器 RR1 参数介绍(ART1010_PARA_RR1) .........................................................................44
第七节、状态寄存器 RR2 参数介绍(ART1010_PARA_RR2) .........................................................................45
第八节、状态寄存器 RR3 参数介绍(ART1010_PARA_RR3) .........................................................................45
第九节、状态寄存器 RR4 参数介绍(ART1010_PARA_RR4) .........................................................................45
2
北京阿尔泰科技发展有限公司
第一章 概述
ART1010 是 PC104 总线两轴伺服/ 步进电机运动控制卡,它以高频率脉冲串形式输出,控制伺服 / 步进电机的
运动。该卡能精确地控制所发出的脉冲频率(电机速度)、脉冲个数(电机转角)及脉冲频率变化率(电机加速
度),它能满足步进电机的各种复杂的控制要求。可对电机进行位置控制、插补驱动、加速/ 减速等控制。具有圆
弧、直线插补功能。它含有丰富的,功能齐全的软件库函数资源。在 Windows9X/2000/XP 环境下,用户可直接
使用我们为您提供的设备驱动程序函数接口;以最大方便地使您在 Visual C++ 、Visual Basic 及各种其他软件环
境中使用本设备。以下是它的功能特点。
独立 2 轴驱动
ART1010 可以分别控制 2 个马达驱动轴的运动。每个轴都可以进行定速驱动,直线加 / 减速驱动, S 曲线加 /
减速驱动等。2 轴性能相同。
速度控制
输出的驱动速度范围是从 1PPS 到 4MPPS(pulses per second 脉冲/秒)。可以运行固定速度驱动,直线加/减速
驱动,S 曲线加/减速驱动。加/减速驱动可以使用自动和手动 2 种操作方法。脉冲输出的频率最大误差±0.1%( 在
CLK=16MHZ 时),驱动脉冲输出的速度可以在驱动中自由变更。
非对称直线加/减速驱动
运行梯形加减速驱动时,加速度和减速度可以设定不同。
S 曲线加/减速驱动
每个轴可以用 S- 曲线进行加/ 减速设定,使用 S- 曲线命令还可以对抛物线加/ 减速驱动输出脉冲进行设定。此
外,对于定量驱动,我们使用独特的方法避免在 S- 曲线加/ 减速中发生三角波形。
2 轴直线插补
可以选择 2 轴直线插补驱动。插补坐标范围是从当前位置到-8,388,607 ~ +8,388,607 之间。在整个指定的直线插
补范围内,插补精度是 0.5LSB 。插补速度范围是从 1PPS 至 4MPPS 。
圆弧插补
可以选择 2 轴进行圆弧插补。插补坐标范围是从当前位置到-8,388,607~+8,388,607 之间。在整个指定的圆弧
曲线插补范围内,插补精度是±0.5LSB 。插补速度范围从 1PPS 到 4MPPS 。
2 轴位模式插补
收到在高位 CPU 上计算的位模式插补数据后,可以用指定的驱动速度连续输出插补脉冲,用这种方式可以
产生任何插补曲线。
连续插补
直线插补→圆弧插补→直线插补→… 这样可以不停地运行每个插补接点的插补驱动,连续插补的最大驱动
速度是 2MHz 。
固定线速度控制
这是一种在插补驱动中保持插补轴合成速度的功能。2 轴同时输出脉冲时,第 2 轴可以设定为 1.414 倍脉冲
周期。
位置控制
每个轴都有 2 个 32 位位置寄存器,一个是在芯片内部管理驱动脉冲输出的逻辑位置计数器。另一个是管理
从外部编码器来的脉冲的实际位置计数器。
比较寄存器和软件限制功能
每个轴都有 2 个 32 位比较寄存器(COMP+,COMP-) ,用于逻辑位置计数器或者实际位置计数器的大小比较。
在驱动时,可以从状态寄存器读出比较寄存器和逻辑/ 实际位置计数器之间的大小关系。大小关系有变化时,可
以产生中断。并且,可以启动这 2 个比较寄存器作为软件限位。
输入信号滤波器
ART1010 内部的每一个输入信号的输入端都装备积分型的滤波器。可以设定哪一个输入信号的滤波器功能变
为有效或无效。滤波器的时间常数从 8 个种类里选择 1 个。
由外部信号驱动
每个轴都可以用外部信号(nEXPP,nEXPM)进行+/-方向运行的定量驱动和连续驱动。这个功能在手动操作
时,可以减轻 CPU 的负担。
伺服马达的各种信号
ART1010 接受来自伺服马达驱动器的信号。如 2 相编码器信号,定位信号,报警信号等。
实时监控功能
在驱动中,可以实时读出逻辑位置计数器、实际位置计数器、加速度、加/减速状态(加速中/定速中/减速中)。
1
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
第二章 使用纲要
第一节、定量驱动和连续驱动
各轴的驱动脉冲输出一般使用正方向或负方向的定量驱动命令或者连续驱动命令。
一、定量脉冲输出驱动
定量脉冲驱动是以固定速度或加/ 减速度输出指定数量的脉冲。需要移动到确定的位置或进行确定的动作时,
使用此功能。加/ 减速定量驱动如图 2.1.1 所示,输出脉冲的剩余数比加速累计的脉冲数少时就开始减速,输出指
定的脉冲数后,驱动也结束。
进行加/ 减速的定量驱动,需要设定下列参数:
z 倍率 Multiple
z 加/ 减速度 Acceleration/ Deceleration
z 初始速度 S t a r t S p e e d
z 驱动速度 D r i v e S p e e d
z 输出脉冲数 nPulseNum
速度
驱动速度 自动减速
时间
初始速度
图 2.1.1 定长脉冲驱动模式
在驱动中改变输出脉冲数
在定长脉冲驱动中,输出脉冲数是可以改变的。脉冲输出状况将如图 2.1.2 或图 2.1.3 。加 / 减速驱动中,开始
减速时,如果输出脉冲数有变更的话,重新开始加速(如图 2.1.3 )。如果变更的输出脉冲数比已经输出的脉冲数
要少的话,立即停止(图 2.1.4 ) S 曲线减速时输出脉冲有变化的话,不能正确运行 S 曲线动作。
速度
驱动速度
改变输出脉冲数
初始速度
0 时间
图 2.1.2 在匀速段增加脉冲数
速度
驱动速度
改变输出脉冲数
初始速度
0 时间
图 2.1.3 在降速段增加脉冲数
2
北京阿尔泰科技发展有限公司
速度
驱动速度
改变输出脉冲数
初始速度
0 时间
图 2.1.4 减少脉冲数
加/减速驱动的缓冲值设置
用户在定长脉冲驱动情况下可以改变减速点,如图 2.1.1 所示。ART1010 将自动地计算出加/ 减速点,并且使
加速段的脉冲数等于减速段的脉冲数。当为减速设置缓冲值(shift pulses)时,ART1010 将会因为缓冲值提前开
始减速。减速完成后剩余的脉冲数(shift pulses) 将会以初始速度输出,如图 2.1.5 。ART1010 初始化时,缓冲脉冲
数(shift pulses) 的默认值为 8 。S 曲线加/减速定量驱动中,如果驱动完毕速度降不到初始速度的话,要把加速计数
器偏移值设定为适当的数值,以修正它的速度。
速度
驱动速度
缓冲脉冲
初始速度
时间
图 2.1.5 定长方式下的缓冲脉冲
二、连续脉冲驱动输出
当将 ART1010 卡的脉冲输出模式设置为连续驱动状态时,ART1010 将一直以特定的速度驱动脉冲输出直至
接收到停止命令或是外部停止信号,如图 2.1.6 所示。
速度
驱动速度
外部停止信号
初始速度
时间
图 2.1.6 连续脉冲驱动
可用” 减速至停 DecStop” 和” 立即停止 InstStop” 等函数中断连续驱动脉冲;也可由外部信号使其制动。
第二节、速度曲线
各轴的驱动脉冲输出一般使用正/ 负方向的定量驱动或连续驱动命令。此外,以设定模式或设定参数来产生
定速、直线加/ 减速、S 曲线加/ 减速的速度曲线。
一、定速驱动
定速驱动就是以一成不变的速度输出驱动脉冲及初始速度等于驱动速度。如果设定驱动速度小于初始速度,
就没有加/ 减速驱动,而是定速驱动。使用搜寻原点、编码器 Z 相等信号时,找到信号后马上要立即停止的话,
不必进行加/ 减速驱动,而是一开始就运行低速的定速驱动。如图 2.2.1 。
为了定速驱动,需要设定下列参数(初始速度= 驱动速度):
3
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
z 倍率 Multiple
z 加/ 减速度 Acceleration
z 初始速度 S t a r t S p e e d
z 驱动速度 D r i v e S p e e d
○ 输出脉冲数 nPulseNum
设定参数例子
设定 1000PPS 运行定速驱动
倍率 Multiple = 1;
初始速度 StartSpeed = 1000;
驱动速度 DriveSpeed = 1000;
速度
初始速度
驱动速度
时间
图 2.2.1 恒速驱动
二、直线加/ 减速驱动
直性加/ 减速驱动是线性地从驱动开始的初始速度加速到指定的驱动速度。当加速度和减速度设置一样时,
速度时间图就是对称的梯形,当加速度和减速度不一样时,就不是对称的。以下为两种情况:
速度
减速
运行速度
加速
初始速度太小无法
初始速度 达到运行速度
时间
图 2.2.2 直线加 /减速
为了直线加 /减速驱动,下列参数需预先设定。 ○ 记号:需要设定时设定。
z 倍率 Multiple
z 加速度 Acceleration
○ 减速度 Dcceleration
z 初始速度 StartSpeed
z 驱动速度 DriveSpeed
○ 输出脉冲数 nPulseNum ;定量驱动时使用
如图 2.2.3,从实际初始速度 500 PPS 加速至 15 000 PPS,时间为 0.3 S (秒),则
输出频率的倍数 Multiple=2
初始速度 StartSpeed=500 PPS/M=250 PPS
驱动速度 DriveSpeed=15000PPS/M=7500 PPS
加速度 Acceleration=[(15000 - 500)PPS /0.3S]/M=24167 PPS/S
减速度 Deceleration=[(15000 - 500)PPS /0.3S]/M=24167 PPS/S
速度
15000
500
0 0.3S 时间
4
北京阿尔泰科技发展有限公司
图 2.2.3 定长脉冲驱动模式
如图 2.2.4,从实际初始速度 500 PPS 加速至 15 000 PPS,时间为 0.3 S (秒)则
最高输出频率的倍数 Multiple=2 (初始化后默认值为 M=1 )
初始速度 StartSpeed =500 PPS/M=250 PPS
驱动速度 DriveSpeed =15000PPS/M=7500 PPS
加速度 Acceleration =[(15000 - 500)PPS /0.3S]/M=24167 PPS/S
减速度 Deceleration =[(15000 - 500)PPS /0.1S]/M=72500 PPS/S
速度
15000
500
0 0.3S 0.1S 时间
图 2.2.4 定长脉冲驱动模式加/减速度不同
注意:当加速度 >减速度时,加速度和减速度比率要满足如下条件:
6
减速度>加速度 × (驱动速度)/4×10
当加速度和减速度的比率越大,则在减速时,拖延的脉冲越多,
即减速点会前移。为了解决这个问题可以增大初始速度或设置加速计数器偏移来解决。比如加速度和减速度的比
率为 10 ,减速点大概会提前 10 个脉冲左右,即会提前 10 个脉冲开始减速,这样当减速完成达到初始速度时,
还会有 10 个左右的脉冲才会达到定长脉冲数。这 10 个脉冲会以初始速度输出直到输出定长脉冲数。如果初始速
度是 1PPS/S 的话,就要等 10 秒钟才会结束。把初始速度增大则等的时间会变小。或者设定加速计数器偏移为 0
或负值来调整减速点。
三、非对称直线加减速驱动
往垂直方向移动对象物时,对对象物有重力加速度的负担,所以在这样加速度和减速度不同的非对称直线加
减速的定量驱动中,最好变更上下移动的加速度和减速度。此 IC 可以运行自动减速,事先不用设定手动减速点。
图 2.2.5 是加速度比减速度大的例子,图 2.2.6 是减速度比加速度大的例子。在这样的非对称的直线加减速中数据
输出脉冲数
P 和各速度参数可以在 IC 内部计算减速开始点。
图 2.2.5 非对称直线加减速驱动(加速度<减速度) 图 2.2.6 非对称直线加减速驱动(加速度>减速度)
在非对称直线加减速的定量驱动中需要运行自动减速的话,为了把减速度设定数值变为有效,要把 WR3 寄
存器的 D1( DS~DE) 设定为 1 。为了使加减速定量驱动中自动运行减速,把 WR3 寄存器的 D0(MANLD) 设定为 0 。
WR3/D1(DSNDE) 1 :减速度设定值有效
WR3/D0(MANLD) 0 :把加减速定量驱动中的减速运行自动
另外,跟通常的直线加减速驱动一样,需要设定下述的参数:
z 倍率 Multiple
z 加速度 Acceleration
z 减速度 Dcceleration
z 初始速度 StartSpeed
z 驱动速度 DriveSpeed
z 输出脉冲数 nPulseNum
注意:
z 加速度>减速度 (图 2.2.6)时,加速度和减速度的比率有下述的条件。
减速度 > 加速度 X(驱动速度 / 4x10
6
) (CLK=16MHz 时)
5
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
比如,驱动速度 V=100KPPS 的话,减速度 Dcceleration 要大于加速度 Acceleration 数值的 1/40,不能小于
1/40。
z 加速度> 减速度( 图 2.2.6)时,加速度 Acceleration 和减速度 Dcceleration 的比率越大拖延脉冲越多
(Acceleration/Dcceleration=10 倍时,最大 10 脉冲左右。为了改善拖延脉冲问题,①增加初始速度,②在加
速计数器偏移上设定负数值。
四、S 曲线加/ 减速驱动
驱动速度加/ 减速时,ART1010 线性地增加/减少加速度/减
速度,以产生 S 型速度曲线。S 曲线加/减速驱动如图 2.2.7 所示。
驱动开始加速时,加速度以指定的加速度的增加率
( AccelerationK )从 0 线性增加到指定的加速度值
(Acceleration ),因此,这个速度曲线成为二次抛物线(a 区间)。
加速度达到指定数值(Acceleration )后保持此数值。这时速度
曲线是直线型的,速度在加速中(b 区间)。目标速度及驱动速
度和当前速度的差值比相应时间增加所增加的速度少时,加速
度趋向 0 。当减速时和加速时一样,减速度以指定的增加率
(AccelerationK )增大到减速度值,然后减速度保持一段时间
不变,最后减速度减少直到 0 。这样具有部分固定加速度的加速
为部分 S 曲线。
另一方面,在 a 区间若在加速度达到指定数值(Acceleration)
前,目标速度(DriveSpeed)和当前速度的差值比相应时间增加
所增加的速度少时,b 区间就消失,只有 a 和 c 区间。这种没有
固定加速度的加速称为完全 S 曲线加速。 图 2.2.7 S 曲线加减速驱动
同样,S 曲线加/减速运动也分为对称的和不对称的运动两种。当要运行对称的 S 曲线运动时,要设定下列参
数:
z 倍率 M u l t i p l e
z 加速度/减速度的变化率 AccelerationK
z 加速度 Acceleration
z 初始速度 S t a r t S p e e d
z 驱动速度 D r i v e S p e e d
z 输出脉冲数 nPulseNum 定量驱动时使用
参数设定例子 1(对称的完全 S 曲线)
如右图所示,是在 0.4 秒内用完全 S 曲线加速增加至 40KPPS 的
例子。
首先,在计算上不考虑初始速度(把它当作 0 )。因为是完全 S
曲线加速,所以在 0.4 秒的 1/2 (0.2 秒)把速度增加至 40KPPS 的
1/2 (20KPPS ),在剩下的 0.2 秒增加至 40KPPS 。这时加速度线性的
增加直至 0 .2 秒。在右下图中,加速度 Acceleration =X(直线斜率)
×t (时间),已知初始速度是 0 , 0.2 秒后为 20K ,而加速度又是速度
的导数,所以,dv/dt=X×t,计算得 X=1000K ,0.2 秒的加速度是 100,
000×0.2=200KPPS/SEC ,加速度的增加率是 (AccelerationK)
200K/0.2=1, 000KPPS/SEC
2
。
运行完全 S 曲线加/ 减速时,速度取决于加/ 减速度的变化率,所
以为了避免产生部分 S 曲线,加/ 减速度要设定 200KPPS/SEC 以上
的数值。
z 倍率 Multiple = 10;
z 加/减速度的增加/减少率 AccelerationK = 100,000; 100,000×10(倍率)=1000K
z 加速度 Acceleration = 20,000; 20,000×10(倍率) = 200K
z 初始速度 StartSpeed = 100; 100×10 = 1000
z 驱动速度 DriveSpeed = 4000; 4000×10 = 40,000
当要运行非对称的 S 曲线运动时,要设定下列参数:
z 倍率 Multiple
6
北京阿尔泰科技发展有限公司
z 加速度的变化率 AccelerationK
z 减速度的变化率 DecIncRate
z 加速度 8000(必须设置为 8000)
z 减速度 8000(必须设置为 8000)
z 初始速度 S t a r t S p e e d
z 驱动速度 D r i v e S p e e d
z 输出脉冲数 nPulseNum 定量驱动时使用
当运行非对称 S 曲线运动时不能自动减速,要手
动设置减速点。
参数设定例子 2(非对称的完全 S 曲线)
如右图所示,加速时在 0.2 秒内用完全 S 曲线从初
始速度 100PPS 加速增加至 40KPPS ,减速时用 0.4 秒
从 40K 减速到初始速度的例子。
首先,因为是完全 S 曲线加速,所以在 0.2 秒的
1/2 (0.1 秒)把速度增加至 40KPPS 的 1/2(20KPPS ),
在剩下的 0.1 秒增加至 40KPPS 。在右下图中,加速度
Acceleration =X (直线斜率)×t (时间),已知初始速
度是 1000 ,0.1 秒后为 20K ,而加速度又是速度的导
数,所以,dv/dt=X×t,计算得 X=3.99M,加速度的增
加率是(AccelerationK)3.99MPPS/SEC
2
;同理,我们可以算出减速度变化率(DecIncRate )是 0.9975MPPS/ SEC 2。
则减速点是:nPulseNum – (初始速度+驱动速度)*(√ 驱动速度-初始速度)具体程序请参考例子。
五、脉冲宽度和速度的精度
驱动脉冲的脉冲比率
对于各轴正/ 负方向上的驱动脉冲,由驱动速度决定的脉冲周期时间有±1SCLK (CLK = 16MHz 时为
±125nSEC)的误差,并且基本上分布在高电平 50%和低电平 50%。举例如下图所示,设定倍率为 1,驱动速度
1000PPS,驱动脉冲输出高电平宽度 =500μS,低电平宽度 =500μS, 周期 =1.00mS。
Multiple =1
StartSpeed =1000 PPS
DriveSpeed =1000 PPS
500μ S 500μ S
1.00 ms
当处于加速时,低电平脉冲长度小于高电平脉冲长度;驱动速度将会提高;
反之,当处于减速时,低电平脉冲长度大于高电平脉冲长度;驱动速度将会降低。
加速区 匀速区 减速区
T
T
HA TLA
HA >TLA THC =TLC THD <TLD
T
HC TLC THD TLD
图 2.2.8 加 /减速过程中脉冲宽度的比较
驱动速度精度
因为 ART1010 的 CLK 时钟为 16MHz ,产生驱动脉冲的电路是由 IC 内 SCLK 来驱动的。SCLK 由时钟信号
CLK2 分频而得。若 CLK 输入是标准的 16MHz ,SCLK 就是 8MHz 。要产生某个频率的驱动脉冲,并且是没有
抖动的均匀频率驱动脉冲,它的频率周期只能是下图所示 SCLK 周期的整数倍。
ART1010 初始化后,最高速度(输出脉冲频率)默认值为 8K 。驱动速度越高,精度越低。即使是驱动速度
很高,ART1010 仍就能保持相对的精度;驱动脉冲的精度仍在±0.1 之内。不会影响驱动电机的工作状态,因为
这个误差是会被电机系统的惯性吸收的。
最高输出脉冲频率可以通过 SetM 函数设置,默认值 M=1 ,默认最高输出脉冲频率 8K 。
7
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
最高输出频率 /PPS 倍数
M
M=1 MAX(V)=8000
M=2 MAX(V)=16,000
M=3 MAX(V)=24,000
… … …
M=500 MAX(V)=4,000,000
当 M 被设置为 500 时,最高输出频率为 4M 。加/ 减速度也随着 M 的数值变化而变化。
第三节、位置管理
一、逻辑位置计数器和实际位置计数器
ART1010 对每一个轴都有一个逻辑位置计数器和实际位置计数器。逻辑位置计数器计数是计数 ART1010 卡
发出的正/ 负方向输出脉冲。当发出一个正向脉冲时,计数器将自动加 1,当发出一个负向脉冲时,计数器将自
动减 1 。
实位计数器计数来自外部编码器的输入脉冲,输入信号可以设定为 2 相脉冲输入或上/ 下脉冲输入。
2 相脉冲输入模式
当设定为 2 相脉冲输入后,按正逻辑当 A 相超前时向上计数,当 B 相超前就向下计数。由 2 个信号的
上升沿和下降沿进行向上/ 下计数。
nECA
nECB
往上上计数 往下计数
下脉冲输入模式
nECA 作为向上计数输入, nECB 作为向下计数输入,由脉冲的上升沿计数。
nECA
nECB
往上计数 往下计数
ART1010 可以在任何时候写入或读出 2 个计数器的数据,我们提供了 ART1010_ReadLP,ART1010_ReadEP
函数分别 读出逻辑计数器和实位计数器的值。计数范围在-2,147,483,648~+2,147,483,647 之间。
二、比较寄存器和软件限位
ART1010 对每一个轴都有 2 个 32 位寄存器(上下限位寄存器 COMP+ ,COMP- )用来与逻辑位置计数器或
实际位置计数器进行比较。把 2 个比较寄存器的比较对象设定为逻辑计数器还是实位计数器,可由函数指定,
COMP+寄存器主要用来检测逻辑/实位计数器计数的上限。当逻辑/实位计数器的值大于 COMP+寄存器的值时,
ART1010 的 RR1 寄存器的 D0 位就置 1。另一方面, COMP-寄存器用来检测逻辑/实位计数器某个范围的下限。
当逻辑/ 实位计数器数值小于 COMP -寄存器的数值时,RR1 寄存器的 D1 位就置 1 。
可以把 COMP+ 寄存器和 COMP— 寄存器用于正/ 负方向的软件限制来运行。我们提供
ART1010_SetPDirSoftwareLimit 函数供选择是逻辑寄存器还是实位寄存器,并设定正方向软件限位有效,在驱动
中,如果逻辑/ 实位计数器的值大于 COMP+ 的值就执行减速停止,并且 RR2 寄存器的 D0 为 1;
ART1010_SetMDirSoftwareLimit 用于设定反方向软件限位,并选择是逻辑寄存器还是实位寄存器,当执行负方向
驱动命令并且逻辑/ 实位计数器的值小于 COPM+ 寄存器后,就会清除这个状态。同样情况适应于负方向的
COMP— 。可以在任何时候调用 ART1010_SetPDirSoftwareLimit ,ART1010_SetMDirSoftwareLimit 写 COMP+ 寄
存器和 COMP- 寄存器。复位时寄存器的值是任意的。
图 2.3.1 软件限位停机
8
北京阿尔泰科技发展有限公司
三、位置计数器的可变环形
逻辑位置计数器及实位数器是 32 位长的上/下环形计数器,因此从 32 位长的最大数值 FFFFFFFFh 往+方向
计数的话,最后计数计到 0。从 0 往-方向计数的话,最后计数计到 FFFFFFFFh。可变环功能是可以把这个环形
计数器的最大数值任选设定,如果定位不是直线,而是旋转运动的话,用此功能控制位置很方便。要使可变环功
能有效,把 WR3 寄存器的 D6(RING)位设定为 1。在 COMP+寄存器设定逻
辑位置计数器的最大数值,在 COMP-寄存器设定实位计数器的最大数值。
比如,用 10,000 脉冲旋转一圈的话。
① 设定 WR3/D6 位为 1 把可变环功能就有效。
② 在 COMP+寄存器设定 9,999(270Fh—逻辑位置计数器的最大数值)。
③ 同时使用实位计数器的话,在 COMP-寄存器设定 9,999(270Fh—逻
辑位置计数器的最大数值)。
这时计数动作:
往+方向,上计数时、…→9,998→9,999→0→1→…。
往-方向,下计数时、…1→0→9,999→9,998→…。
位置计数器的可变环最大值 9.999 操作
注意:
z 每个轴都要设定可变环功能的有效/无效,但是不能分别设定逻辑位置计数器和实位计数器的有效/无效。
z 使可变环功能有效后,不能使用软件限制功能。
第四节、插补
ART1010 可实现 X、Y2 轴的直线插补、圆弧插补和模式位插补。插补运动是指 2 轴按照一定的算法进行
联动,被控轴同时启动,并同时到达目标位置。对于直线插补,圆弧插补,位插补,最大驱动速度为 4 MPPS ,
连续插补最大驱动速度是 2MPPS 。
插补驱动时,每个驱动轴都能进行硬件限制和软件限制。在插补驱动中任何轴的限制有效,ART1010 停止
插补。
在插补中,最长的移动距离的轴为” 长轴” ,另外一个轴为” 短轴”。” 长轴” 输出一个均匀的脉冲序列,而”短
轴” 的驱动脉冲依赖于” 长轴” 和 2 轴之间的关系,有时候输出脉冲,有时候不输出脉冲。
一、直线插补
选择 X ,Y 轴直线插补时,从当前位置到相对位置(X :+20 ,Y :+100)如下图所示,从当前坐标执行直线
插补,终点坐标由针对当前位置的相对数值设定。精确设定每个轴的输出脉冲数。在每个轴独立运行时,输出脉
冲数设定为没有符号的数值。但是,在插补驱动时,用相对数值设定当前位置的终点坐标。如下图所示,对指定
直线的位置的位置精度,在整个插补范围内有±0.5LSB 。下图是直线插补驱动脉冲输出例子,在设定的终点数值
中绝对值最大的是长轴。在插补驱动中,此轴一直输出脉冲,其它的轴是短轴,根据直线插补算术的结果,有时
候输出脉冲,有时不输出脉冲。
直线插补的坐标范围是带符号的 24 位字长。插补范围为从各轴当前位置到-8,388,607~+8,388,607 之间(注意:
不能设定-8,388,608 )。
XPP
YPP
10
±0.5LSB
0 20
9
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
二、圆弧插补
圆弧插补从当前位置开始,根据所指定的圆心和终点位置以及插补的方向(按顺时针或逆时针)来进行。坐标
设定值是对当前坐标(始点)的相对值(并且是脉冲数)。图 2.4.1 说明了顺时针和逆时针插补的定义。可以任意选
择 2 轴进行圆弧插补。
逆时针
顺时针
图 2.4.1
三、固定线速度
固定线速度控制是始终保持插补轴以合成速度运行的功能。及如果设定初始速度是 1000PSS ,驱动速度是
1000PPS,则插补时的合成速度始终是 1000PPS。例如设定插补终点为(20,10),初始速度 1000PPS,驱动速度
1000PPS,脉冲输出如下图所示。
1.000ms 1.414ms 1.000ms 1.414ms
XPP
XPM
YPP
YPM
为了达到(20 ,10 )终点,必须是 X 轴输出两个脉冲,Y 轴输出一个脉冲。当 X 轴输出脉冲,Y 轴不输出
时,X 轴脉冲频率为 1000PPS ,当两轴同时都有脉冲时,两轴的脉冲周期都为 1.414ms ,及频率为 1000* (√2/2 )
= 707 ,则两轴的合成速度为 1000PPS ,这样就保证了整个过程中的速度都为 1000PPS 。
四、位模式插补
位模式插补是把高位 CPU 计算的插补数据以数据包的方
式接收后,以指定的驱动速度连续输出插补脉冲。在插补初始
化时要事先指定主轴,副轴。
主轴正,负方向,副轴正,负方向要输出一个脉冲时,设
定为 1 ,不输出脉冲时,设定为 0 。这样设定的话,要画如图
所示的轨迹,要输出的数据如下所示。
64 位 56 48 40 32 24 16 8 0
0100,0000 0000,0000 000,11111 1101,1011 1111,0110 1111,1110 0000,0000 0000,0000 :XPP
0111,1111 1111,0101 0000,0000 0000,0000 0000,0000 0000,0000 0010,1011 1111,1111:XPM
0000,0000 0000,0000 0000,0000 1111,1111 0000,0000 0000,1111 1111,1111 1101,0100:YPP
0000,1010 1111,1111 1111,1100 0000,0000 0011,1111 1100,0000 0000,0000 0000,0000:YPM
BP1P 寄存器, BP1M 寄存器是从高位 CPU 写入位模式数据的 16 位寄存器,X 轴正方向的 16 位数据写入
BP1P 寄存器,X 轴负方向的数据写入 BP1M 寄存器,位模式插补开始后,从 D0 位依次输出驱动脉冲。
堆栈计数器(SC )是计算位模式数据存储量的计数器,能从 0 到 3 变化。给位数据堆栈写入一个 16 位数据,
则增加 1 。SC 为 3 的时候,表示位数据堆栈不能再补充数据。为 2 的时候,可以再补充一个 16 位数据。为 1 时,
可以再补充 2 个 16 位数据。为 0 时,表示输出了所有数据,驱动结束。
在插补驱动开始后,随着驱动脉冲输出,SC 的数值以 3 2 1减少,所以,可以重新写数据。要连
10
北京阿尔泰科技发展有限公司
续运行位模式插补的话,在 SC 为 2 或 1 时,要设定下一个数据。SC 数值从 2 变到 1 时,也可以要求中断高位
CPU ,以写入数据。
插补驱动速度的限制
ART1010 的位模式插补驱动速度最高达 4MHz。但是,数据超过 48 位的话,CPU 要在插补驱动中补充
数据,所以插补驱动速度将受到 CPU 建立模式数据所需时间的限制。
比如,对于 2 轴位模式插补,如果 CPU 花费在 64 位数据运算和数据建立的时间以及执行 BP 数据堆栈
命令的时间是 100μS ,则插补驱动速度在 1/(100μS/16 ) = 160KPPS 以下。
位模式插补的结束
位模式插补以下 2 种方法结束
① 当主轴(X 轴)正和负方向的输出位数据都为 1 时,位模式插补就结束。收到结束码后,堆栈计数器(SC)
被强制为 0。所有遗留的位模式数据都无效。
D15 D0
0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0
1 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1
主轴的正,负方向输出数据同时变为 1 后结束
② 停止数据写入
停止向 BP 数据堆栈写入数据,当所有的位模式数据作为驱动脉冲输出后,SC 为 0 ,结束插补驱动。
用停止命令中断插补驱动
对运行位模式插补驱动的 X 轴写入立即停止或减速停止命令,插补驱动就停止。重新启动位插补,
就继续位模式插补。如果以停止命令停止驱动而不需要再进行插补的话,用 ART1010_ClearBPData 函
数把 BP 寄存器所遗留的数据都清除。
用硬件限制和软件限制的停止
在插补驱动中任何轴有硬件限制,软件限制动作,插补驱动就停止。若不需要再运行插补,就一定
要用 ART1010_ClearBPData 函数所有留下的数据清除。
位模式插补例子请参看《位插补举例 》。
五、连续插补
连续插补是直线→圆弧插补→直线插补→…… 等等这样在每个插补节点之间不停地驱动,连续插补。在连续
插补驱动中,如果设定了下一个插补参数并写入插补命令,就能执行连续的插补驱动。因此,在所有的插补节点
中,从连续插补驱动开始至结束的时间必须长于设定下一个插补节点数据和发命令的时间。
RR0 寄存器的 D9 (CNEXT )位用于连续插补。在插补驱动中这个位表示是否可写入下一个插补节点数据及
插补命令,1 表示可以写入,0 表示不可以写入。当驱动停止时,该位为 0 ;插补驱动开始就变为 1 ,可以写入下
一个插补节点的数据及插补命令。写入下一个插补节点的插补命令后变为 0 (不可以写入状态)。等到这个插补
开始后,变为 1 ,可以写入再下一个插补节点的数据及插补命令。
连续插补的注意事项
z 在每个插补节点上要在设定需要的数据后,发插补命令,请不要先送插补命令后送数据。
z 连续插补的驱动速度最高达 2MHz 。
z 所有驱动插补节点的时间必须长于插补轴检错和设定下一个插补节点的数据及命令的时间。如果在
设定下一个插补节点时驱动停止,RR0 寄存器的 D9 位为 0 ,这时在写入下一个插补节点的命令后
就从暂停处继续插补。
z 连续插补中有圆弧插补时,圆弧插补终点的短轴数值也许会比真值偏差±1LSB ,因此,为了避免累
积每个节点的误差,事先要确认每个圆弧插补的终点,然后考虑怎么运行连续插补。
连续插补例子请参看《
连续插补举例》。
六、步进插补
步进插补驱动的功能是以逐个脉冲的方式执行的。有根据命令和根据外部信号这 2 种方法。如果使用外部信
号,就可以运行跟外部信号同步的插补驱动。步进插补时,插补 X 轴设定为定速驱动。从每个轴输出的驱动脉
冲高电平宽度是 1/2 脉冲周期,这周期由在主轴设定的驱动速度而定。低电平宽度的增加直到下一个命令或外部
信号的到来。下图是由外部信号驱动的步进插补的例子。例如把主轴的初始速度设定为 500PPS ,把驱动速度设
定为 500PPS 的定速驱动,那么,输出的驱动脉冲的高电平宽度是 1mSEC 。
11
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
图 2.4.2 根据外部信号(EXPLSN) 的步进插补例子(驱动速度: 500PPS)
■ 根据命令的步进插补
单步插补命令用于插补驱动的步进传送。在设置好根据命令步进插补,并设定好速度,插补数据(终点,
圆心)启动插补命令后,当发一次步进插补命令则输出一个插补脉冲。以下是操作程序。
① 设置根据命令进行步进插补
② 插补驱动初始化。用相同数值设定插补主轴的初始速度和驱动速度
用相同数值设定初始速度和驱动速度将执行定速驱动,这个速度值要设定得比写入单步命令周期
快。比如,要用最高 1mSEC 周期写入单步命令,就要把初始速度和驱动速度设定得比 1000PPS 快
的数值
③ 启动插补命令
④ 写入单步插补命令
根据插补运算的结果,从各轴输出驱动脉冲。不断写入单步命令,直到插补驱动结束为止。若要在
步进插补中停止,也可给主轴写立即停止命令(ART1010_InstStop),等待一个以上脉冲周期后,再
写单步插补命令,驱动就停止。插补驱动结束后,写入的单步插补命令都无效。
■ 外部信号控制的步进插补
引脚 nMPLS 用作步进插补驱动的外部输入信号。nMPLS 信号通常是高电平。在插补步进模式时,步
进插补由外部信号的下降沿启动。以下是操作程序。
① 设置根据外部信号启动步进插补
② 对插补驱动进行初始化,把初始速度和驱动速度设定相同值。
这个速度值和上诉的命令控制一样。设定的速度值要比 nMPLS 的低电平脉冲周期快。
③ 启动插补驱动
④ 给 nMPLS 引脚输入低电平脉冲
脉冲下降 2-5CLK 后,插补驱动脉冲从各轴输出。EXPLS 的低电平脉冲宽度需要在 4CLK 以上。
若要在步进插补中停止,就要给主轴写立即停止命令,等待一个以上驱动的脉冲周期后,再输
入 MPLS 的低电平脉冲,驱动就停止。插补驱动结束后,向 MPLS 端输入的低电平脉冲无效。
注意:如果是由机械接点产生 MPLS 低电脉冲,要把滤波器功能变为有效,解除颤动。
七、加减速驱动的插补
插补一般用定速驱动,不过 ART1010 可以用直线加/ 减速驱动或 S 曲
线加/ 减速驱动(只可做直线插补)运行插补。
在连续插补时为了实现加/ 减速驱动,使用减速有效命令和减速无效
命令。在插补驱动时减速有效命令是使自动减速或手动减速变为有效,
减速无效命令是使它变为无效。复位时,都是无效状态。在用加/ 减速单
独运行插补驱动时,驱动之前一定要设定成减速有效状态。在驱动中写
入减速有效命令,也不能变为有效。
2 轴直线插补的加 /减速驱动
在 2 轴直线插补中可以运行直线加/减速驱动及 S 曲线加减速驱
动减速,这时自动减速和手动减速都可以使用。使用手动减速时,把
在终点坐标的各轴数值中绝对值最大的数值设定为 X 轴的手动减速
点。比如:运行 2 轴直线插补到终点(X :-20000 ,Y :60000 )。假
定减速时需要的脉冲数是 5000 ,Y 轴的终点绝对值比 X 轴大,所以
把 60000-5000=55000 作为手动减速点设定 X 轴。
圆弧插补,位模式插补的加/减速驱动
在圆弧插补,位模式插补中只能用手动减速的直线加/减速驱动,
不能使用 S 曲线加 /减速驱动及自动减速。
右图是用直线加减速驱动运行半径是 10,000 完整圆轨迹的例子。在圆弧插补中不能用自动减速,所以
12
北京阿尔泰科技发展有限公司
事先要设定手动减速点。半径 10,000 的圆通过从 0 至 7 象限,在每一个象限上短轴一直输出脉冲,所以短轴
每一个象限输出 10,000/√2=7,071 脉冲。因此在整个圆上从主轴输出的基本脉冲数是 7,071×8=56,568。
此外,把初始速度设定为 500PPS,在 0.3 秒之内用直线加速把驱动速度增加至 20,000PPS 的话,加速度
是( 20,000-500)/0.3 =65,000PPS/S。加速时花费的脉冲数是右图的斜线部分面积(500+20,000)×0.3/2=3,075.
因此,如果减速度和加速度一样,手动减速点就设定为 56,568-3075=53,493。
注意:在固定线速度模式上,不能使用这个算法。
连续插补的加/减速驱动
在连续插补中只能用手动减速的直线加/减速驱动,不能用 S 曲线加/减速驱动及自动减速。在连续插补
中要事先设定手动减速点。这个手动减速点设定在运行减速的最后一个节点上,并设定从 X 轴输出的基本脉
冲的数值。连续插补时先把减速设定为无效,然后开始插补驱动。在要减速的最后一个节点上写入插补命令
之前,写入允许减速命令。开始最后一个节点的驱动时,减速就有效。从最后一个插补节点开始计数主轴输
出的基本脉冲数当大于手动减速点的数值时,减速就开始。
第五节、原点搜寻
连续驱动的原点搜寻动作
把原点接近信号、原点信号、编码器 Z 相信号等安排在 nSTOP2~0 。在各轴的 WR1 寄存器上设定各信号的
有效/ 无效和逻辑电平。高速搜寻时,用加/ 减速连续驱动。当设定的有效信号处于激活电平时就减速停止。低速
搜寻时,用定速连续驱动。当设定的有效信号处于激活电平时就立即停止。为了以加/ 减速连续驱动,除了输出
脉冲数以外,都要设定和定量驱动一样的参数。
第六节、中断
发生中断有 2 种情况,其一是来自 X ,Y 轴的中断,其二是位模式插补及连接插补时的中断。对 CPU 的中
断信号只有一个 INTN 信号。
X ,Y 轴产生的中断
中断位允许禁止 RR5 状态位 中断发生的条件
PBCM
PSCM
PSCP
PBCP
CEND
CSTA
DEND
插补形成的中断
中断位的允许禁止 RR0 状态寄存器 中断发生的条件
(CIINT)
位插补中断允许禁止位
(BPINT)
D1( PBCM) 当逻辑/实位计数器的值大于等于 COMP-的值时
D2( PSCM) 当逻辑/实位计数器的值小于 COMP-的值时
D3( PSCP) 当逻辑/实位计数器的值小于 COMP+的值时
D4( PBCP) 当逻辑/实位计数器的值大于等于 COMP+的值时
D5( CEND) 在加/减速时,结束在定速区域输出脉冲
D6( CSTA) 在加/减速时,开始在定速区域输出脉冲
D7( DEND) 驱动结束时
D9( CNEXT) 连续插补的中断允许禁止位
D14,13(BPS1,0) 在位模式插补中堆栈计数值 (SC)的数值从 2 变为 1,可以压
在连续插补驱动中,可以写下一个插补节点的数据和插补驱
动命令(写入下一个插补驱动命令后中断被清除)
入下一个 BP 数据(压栈 BP 数据后中断被清除)
第七节、其它功能
一、外部信号控制的驱动操作
此功能不是用命令,而是用外部信号来运行定量驱动,连续驱动。每个轴都有 nEXPP 和 nEXPM 的两个信
号输入,nEXPP 信号用于正方向的驱动操作,nEXPM 信号用于负方向的操作驱动。我们提供
ART1010_SetOutEnableDV, ART1010_SetOutEnableLV 函数。
ART1010_ SetOutEnableDV 用于设定外部控制定量驱动,当调用该函数设定好轴号,倍率,加速度,初始速
度,驱动速度,输出脉冲数后,如果 nEXPP 引脚出现一个下降沿,则启动设定轴的正方向定长驱动,如果 nEXPM
引脚出现一个下降沿,则启动设定轴的反方向定长驱动。
ART1010_SetOutEnableLV 用于设定外部控制连续驱动,当调用该函数设定好轴号,倍率,加速度,初始速
度,驱动速度后,如果 nEXPP 引脚保持低电平,则启动设定轴的正方向定长驱动。如果 nEXPM 引脚保持低电
平,则启动设定轴的反方向定长驱动。(一旦引脚不是低电平了则停止连续驱动)
13
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
二、硬件限位(nLMTP/M)
硬件限位信号(nLMTP,nLMTM)输入端用来终止脉冲输出。我们提供 ART1010_SetLMTEnable 函数用来设
定指定轴硬件限位信号有效,有效后是减速停止还是立即停止。调用该函数设定为 X 轴,立即停止,则当 XLMTP
引脚出现低电平则电机立即停止。
图 2.7.1 硬件限位停机
三、伺服电机报警信号(nALARM)
nALARM 输入信号接受从伺服马达驱动器的警报信号。设定为有效时,一直监视 nALARM 输入信号,若信
号有效,RR2 寄存器的 D4 为为 1 。若在驱动中,立即停止驱动。我们提供 ART1010_SetALARMEnable 函数,
用来设定指定轴的 ALARM 信号有效(有效电平为低电平)。当调用函数设定 X 轴 ALARM 有效后,当 XALARM
引脚出现低电平,则电机停止驱动。
四、伺服电机到位信号(nINPOS )
伺服马达定位完毕输入信号。我们提供 ART1010_SetINPOSEnable 函数用来设定指定轴 nINPOS 信号有效。
当 nINPOS 有效后在驱动结束后,RR0 寄存器的 nDRV 位返回 0 ;
五、紧急停止
ART1010 有一个用于急停的输入端 SN1-19 ( EMGN )。正常状态为高电平;当急停信号 EMGN 变为低电平
时,所有轴将立即停止。
图 2.7.2 EMGN 为低电平紧急停机
六、脉冲输出类型
通过软件程序的设置,每个轴的驱动信号可设为两种输出方式之一:
z 独立 2 脉冲方式(CW/CCW 方式):正向脉冲通过 nPP/PLS 输出,负方向脉冲通过 nPM/DIR 输出。
z 1 脉冲方式 (CP/DIR 方式 ):正负 2 个方向的驱动脉冲都通过输出信号 nPP/PLS 输出,脉冲方向通过
nPM/DIR 输出。
DIR 为低电平时,表示 nPP/PLS 输出的是正方向的驱动脉冲, DIR 为高电平时,表示 nPP/PLS 输出的是负
方向的驱动脉冲。
脉冲输出类型表
脉冲输出方式 驱动方向
正驱动方向 脉冲 低电平 CW/CCW 方式 (独
立 2 脉冲方式)
负驱动方向 低电平 脉冲
正驱动方向 脉冲 低电平 CP/DIR 方式
(1 脉冲方式)
负驱动方向 脉冲 高电平
CW (正) CCW (负) CP (脉冲) DIR (方向)
输出脉冲波形
以上各控制输入输出点均有光电隔离。由外部的 DC24V 接入相应端子供电,各点输入为低电平有效。X,Y
轴的脉冲输出和编码器的输入用高速光耦隔离。5V 供电。
七、驱动状态输出
每个轴的驱动状态输出至主状态寄存器 RR0 和每个轴的状态寄存器 nRR1 的每个位。此外,驱动状态输出可
以做为信号输出。因为状态输出信号和通用输出信号共享引脚,所以当输出驱动状态时,置 WR3 寄存器的 D7
(OUTSL)位为 1。
14
北京阿尔泰科技发展有限公司
在驱动中/ 驱动停止的状态反映 RR0 寄存器 D1 ,0(n-DRV) 位并由 nOUT4/DRIVE 信号输出。
此外,S 曲线加减速驱动中的加速度,减速度的增加/恒定/减少的状态也反映在 RR1 寄存器的 D5(AASND),
D6(ACNST),D7(ADSND)位。并由 nOUT0/ACASND,nOUT1/ACDSND 信号输出。
驱动状态
加速 nRR1/D2 (ASND)
定速 nRR1/D3 (CNST)
减速 nRR1/D4 (DSND)
加减速度增加 nRR1/D7 (ADSND)
加减速度固定 nRR1/D6 (ACNST)
加减速度减少 nRR1/D5 (AASND)
驱动寄存器 输出信号
(激活状态时:1)
(激活状态时:Hi
RR0/D1 ,0 (n-DRV ) 驱动
)
nDRIVE
nASND
nCNST
nDSND
nACASND
——
nACDSND
八、输入信号滤波器
此 IC 内部的每一个输入信号输入段带有积分型的滤波器。Y 轴电路相同,滤波器的时间常数,根据 T 振荡
电路,可以从一样的 nWR3 寄存器 D15~13(FL2~0) 位的 8 种时间常数里选择一个由一样的 nWR3 寄存器
D12~8(FE4~0) 位每个输入信号都可以把滤波器功能设定为有效或无效。复位时,nWR3 寄存器所有的位都被清
除为 0 。所有的输入信号滤波器功能置为无效。下图所示滤波器的时间常数,从 8 种里选择,时间常数越大,可
除去的噪声幅度也越大。但是信号延迟时间也越长,一般推荐把 FL2~0 设定为 2 或 3 。
FL2~0
输入信号延迟 可以除去最大噪音幅度
0 1.75μ S 2μ S
1 224μ S 256μS
2 448μ S 512μS
3 896μ S 1.024mS
4 1.792mS 2.048mS
5 3.584mS 4.096mS
6 7.168mS 8.192mS
7 14.336mS 16.384mS
任何时候,噪音占空比(噪音在信号上发生的时间比率)一定要在 1/4 以下。
如下表所示,用 nWR3 寄存器的 D12~8 (FE4~0) 位设定把每个输入信号的滤波功能有效或无效,设定为 1 ,
其信号的滤波功能就有效。
指定位 滤波有效的信号
FE0
EMGN, nLMTP, nLMTM, nSTOP0, nSTOP1
FE1 nSTOP2
FE2
FE3
FE4
nIN0, nIN1, nIN2, nIN3, nIN4, nIN5
nINPOS, nALARM
nEXPP, nEXPM
九、通用 I/O 信号
此IC 的每个轴都有nOUT3~0 ,nOTU7~4 的 8 个通用输出信号和nIN5~0 的 6 个通用输出信号。不过,
nIN5~2 引脚和复数芯片插补的引脚合用,所以使用此功能时,就不能使用那些信号。nOUT7~4 引脚和位置比
较输出及驱动状态输出的引脚合用,所以使用这些输出时,就不能使用那些信号。X 轴的XIN5~0 信号状态表示
在RR4 寄存器的D13~8 ,Y 轴的YIN5~0 信号状态表示在RR5 寄存器的D13~8 。低电平是 0 ,高电平是 1 。此外,
nIN5~0 信号带有输入信号滤波功能,请参考《
输入信号滤波器》。
设定输出电平的数值后,X 轴的 XOUT7~0 信号输出至 WR4 寄存器 D7~0 的每个位,Y 轴的 YOUT7~0
信号输出至 WR4 寄存器 D15~8 的每个位。
设定为 0 ,低电平被输出;设定为 1 ,高电平被输出。复位时,WR4 寄存器的每个位被子清除,所有的输
出变为低电平。通用输出信号可以作为马达驱动的励磁 OFF ,偏差计数器清除,报警复位等。
在设定好 WR4 寄存器各位输出电平的值后,由 nOUT3~0 信号输出。使用 nOUT7~4 信号时,通过 WR3
寄存器的 D7(OUTSL) 设定为使用通用输出的模式。对 WR3 寄存器的 D11~8(OUT7~4) 设定输出电平的数值后,
就输出。通用输出信号可以作为马达驱动器的励磁 OFF ,偏差计数器清除,报警复位等。复位时,WR4 寄存器,
nWR3 寄存器的每个位被清除,所有的输出为低电平。
15
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
第三章 库函数驱动程序的使用说明
第一节、函数调用举例(vc)说明
卡号定义:
当插入一块卡时,卡号默认为 0 号卡,插入两块卡,从右(电源一侧)向左依次为 0 号卡,1 号卡;三块卡则
依次为 0 号卡,1 号卡,2 号卡。依次类推。例:
// 该卡插入第一槽,定义为 0 号,该赋值语句用于获得该卡的句柄
HANDLE hDevice = ART1010_CreateDevice(0);
// 该卡插入第三槽,定义为 1 号(第二槽插入了其他卡),该赋值语句用于获得该卡的句柄
HANDLE hDevice = ART1010_CreateDevice(1);
初始化:
ART1010_InitDevice( hDevice) ; // 初始化卡
调用函数举例
一、使用 ART1010_InitLVDV、ART1010_StartLVDV 定长、连续脉冲驱动函数启动电机进行定长驱动
以下是公共参数和直线 S 曲线参数的结构体
// 公用参数
#ifndef _ART1010_PAPA_DataList
typedef struct _ART1010_PAPA_DataList
{ LONG Multiple; // 倍率 (1~500)
LONG StartSpeed; // 初始速度(1~8000)
LONG DriveSpeed; // 驱动速度(1~8000)
LONG Acceleration; // 加速度(125~1000000)
LONG Deceleration; // 减速度(125~1000000)
LONG AccelerationK; // 加速度变化率(954~62500000)
} ART1010_PARA_DataList, *PART1010_PARA_DataList;
#endif
// 直线和 S 曲线参数
#ifndef _ART1010_PAPA_LCData
typedef struct _ART1010_PAPA_LCData
{ LONG AxisNum; // 轴号 (X 轴 | Y 轴 | X、Y 轴)
LONG LV_DV; // 驱动方式 (连续 | 定长 )
LONG Mode; // 脉冲方式 (CW/CCW 方式 | CP/DIR 方式)
LONG Line_Curve; // 运动方式 (直线 | 曲线)
LONG Direction; // 运动方向 (正方向 | 反方向)
LONG nPulseNum; // 定量输出脉冲数(0~268435455)
} ART1010_PARA_LCData, *PART1010_PARA_LCData;
#endif
例如:要使 1 号卡的 Y 轴电机以 Pulse\DIR 方式;直线加/ 减速;倍率为 2 ;加速度为 25000 PPS/s ; 10 PPS(脉
冲数/秒)初始速度;5000 PPS 驱动速度;输出脉冲数 50000;正方向定长转动;参考下例
速度
5000
10
0
0.2 S 时间
图 3.1.1
HANDLE hDevice = ART1010_CreateDevice(0); // 创建设备
ART1010_PARA_DataList DL; // 定义公共参数结构体
16
北京阿尔泰科技发展有限公司
ART1010_PARA_LCData LC; // 定义直线曲线参数结构体
LC.AxisNum = ART1010_XAXIS; // 轴号(ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 )
LC.LV_DV= ART1010_DV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV:连续驱动
LC.PulseMode = ART1010_CPDIR; // 脉冲方式 ART1010_CWCCW:CW/CCW
ART1010_CPDIR:CP/DIR 方式
LC.Line_Curve = ART1010_LINE;// 运动方式ART1010_LINE:直线加/减速 ; ART1010_CURVE:S曲线加/减速)
DL.Multiple=2; // 倍率 (1~500)
DL.Acceleration = 12500;// 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)实际加速度=设置加速
度 (Acceleration)*倍率 (Multiple)
DL.StartSpeed = 5 ; // 初始速度(1~8000)实际初始速度 = 倍率(Multiple) *设置的初始速度(StartSpeed)
DL.DriveSpeed = 2500; // 驱动速度(1~8000)实际驱动速度 = 倍率(Multiple) *设置的驱动速度(DriveSpeed)
LC.nPulseNum = 50000; // 定量输出脉冲数(0~268435455)
LC.Direction = ART1010_PDIRECTION;// 运动方向 ART1010_PDIRECTION:正转,ART1010_ MDIRECTION:
反转
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice,
& D L ,
& L C ) ;
ART1010_StartLVDV( // 启动定长脉冲驱动
h D e v i c e , / / 设备句柄
L C . A x i s N u m ) ;
二、使用 ART1010_InitLVDV、ART1010_StartLVDV 定长、连续脉冲驱动函数启动电机进行连续驱动
// 公用参数
#ifndef _ART1010_PAPA_DataList
typedef struct _ART1010_PAPA_DataList
{ LONG Multiple; // 倍率 (1~500)
LONG StartSpeed; // 初始速度(1~8000)
LONG DriveSpeed; // 驱动速度(1~8000)
LONG Acceleration; // 加速度(125~1000000)
LONG Deceleration; // 减速度(125~1000000)
LONG AccelerationK; // 加速度变化率(954~62500000)
} ART1010_PARA_DataList, *PART1010_PARA_DataList;
#endif
// 直线和 S 曲线参数
#ifndef _ART1010_PAPA_LCData
typedef struct _ART1010_PAPA_LCData
{ LONG AxisNum; // 轴号 (X 轴 | Y 轴 | X、Y 轴)
LONG LV_DV; // 驱动方式 (连续 | 定长 )
LONG Mode; // 脉冲方式 (CW/CCW 方式 | CP/DIR 方式)
LONG Line_Curve; // 运动方式 (直线 | 曲线)
LONG Direction; // 运动方向 (正方向 | 反方向)
LONG nPulseNum; // 定量输出脉冲数(0~268435455)
} ART1010_PARA_LCData, *PART1010_PARA_LCData;
#endif
例如:要使 0 号卡的 X 轴电机以 CW/CCW 方式;直线加减速;1 倍倍率;加速度为 4000 PPS/s;100PPS(脉
冲数/秒)初始速度;8000 PPS 驱动速度;负方向连续运动,可参考下例程序:
HANDLE hDevice = ART1010_CreateDevice(0); // 创建设备
ART1010_PARA_DataList DL; // 定义公共参数结构体
ART1010_PARA_LCData LC; // 定义直线曲线参数结构体
LC.AxisNum = ART1010_XAXIS; // 轴号(ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 )
LC.LV_DV= ART1010_LV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV:连续驱动
LC.PulseMode = ART1010_CWCCW; // 脉冲方式 ART1010_CWCCW:CW/CCW
ART1010_CPDIR:CP/DIR 方式
17
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
LC.Line_Curve = ART1010_LINE;// 运动方式ART1010_LINE:直线加/减速 ; ART1010_CURVE:S曲线加/减速)
DL.Multiple=1; // 倍率 (1~500)
DL.Acceleration = 4000; // 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)实际加速度=设置
加速度 (Acceleration)*倍率 (Multiple)
DL.StartSpeed = 100 ; // 初始速度(1~8000)实际初始速度 = 倍率(Multiple) *设置的初始速度(StartSpeed)
DL.DriveSpeed = 8000; // 驱动速度(1~8000) 实际驱动速度 = 倍率 (Multiple) *设置的驱动速度(DriveSpeed)
LC.Direction = ART1010_PDIRECTION; //运动方向 ART1010_PDIRECTION:正转,ART1010_ MDIRECTION:
反转
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice,
& D L ,
& L C ) ;
ART1010_StartLVDV( // 启动定长脉冲驱动
hDevice, // 设备句柄
L C . A x i s N u m ) ;
8000
100
0 2 S 时间
图 3.1.2
三、使用 ART1010_InitLVDV、ART1010_Start2D 函数启动两轴同时驱动
例如需要设置 0 号卡的 X 、Y 轴电机以 CW/CCW 方式,直线加减速,1 倍倍率, 12500PPS/S 的加速度,
100PPS(脉冲数/秒)的初速度, 4000PPS/S 的驱动速度, 100000 的脉冲数,正方向定长驱动。参考下例:
HANDLE hDevice = ART1010_CreateDevice(0);
ART1010_PARA_DataList DL[2];
ART1010_PARA_LCData LC[2];
ART1010_SetLP(hDevice, ART1010_ALLAXIS, 0); // 逻辑位置计数器清零
ART1010_SetEP(hDevice, ART1010_ALLAXIS, 0); // 实位计数器清零
ART1010_SetAccofst(hDevice, ART1010_ALLAXIS, 0); // 设置加速计数器
for(i=0; i<2; i++)
{
LC[i].AxisNum = i; // 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 )
LC[i].LV_DV= ART1010_DV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV: 连续驱动
LC[i].Mode = ART1010_CWCCW; // 模式 0:CW/CCW 方式,1:CP/DIR 方式
LC[i].Line_Curve = ART1010_LINE; // 直线曲线(0:直线加/减速 ; 1:S 曲线加/减速)
DL[i].Multiple=1; // 倍数 (1~500)
DL[i].Acceleration = 12500; // 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL[i].Deceleration = 12500; // 减速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL[i]. AccelerationK= 1000; // 加速度变化率(仅 S 曲线驱动时有效)
DL[i].StartSpeed = 100 ; // 初始速度(1~8000)
DL[i].DriveSpeed = 4000 ; // 驱动速度 (1~8000)
LC[i].nPulseNum = 100000 ; // 定量输出脉冲数(0~268435455)
LC[i].Direction = ART1010_PDIRECTION; // 运动方向 ART1010_PDIRECTION: 正
转 ,ART1010_MDIRECTION:反转
ART1010_InitLVDV( // 初始单轴化连续,定长脉冲驱动
hDevice,
& D L [ i ] ,
&LC[i]);
18
北京阿尔泰科技发展有限公司
}
ART1010_Start2D( hDevice);
四、使用 ART1010_InitLineInterpolation 、ART1010_StartLineInterpolation 函数启动直线插补驱动
// 公用参数
#ifndef _ART1010_PAPA_DataList
typedef struct _ART1010_PAPA_DataList
{
{ LONG Multiple; // 倍率 (1~500)
LONG StartSpeed; // 初始速度(1~8000)
LONG DriveSpeed; // 驱动速度(1~8000)
LONG Acceleration; // 加速度(125~1000000)
LONG Deceleration; // 减速度(125~1000000)
LONG AccelerationK; // 加速度变化率(954~62500000)
} ART1010_PARA_DataList, *PART1010_PARA_DataList;
#endif
// 直线插补和固定线速度直线插补参数
#ifndef _ART1010_PAPA_LineData
typedef struct _ART1010_PAPA_LineData
{
LONG Line_Curve; // 运动方式 (直线 | 曲线)
LONG ConstantSpeed; // 固定线速度 (不固定线速度 | 固定线速度)
LONG nXAxisPulseNum; // X 轴插补脉冲数 (-8388608~8388607)
LONG nYAxisPulseNum; // Y 轴插补脉冲数 (-8388608~8388607)
} ART1010_PARA_LineData, *PART1010_PARA_LineData;
#endif
例如要使 0 号卡从当前位置至终点坐标(脉冲数)(X :40000 Y :20000 )进行线性插补,初速度:500PPS
(脉冲数/ 秒),驱动速度:5000PPS (脉冲数/ 秒),加速度:40000PPS/SEC 的直线加减速驱动。
HANDLE hDevice = ART1010_CreateDevice(0); // 获得句柄号
ART1010_PARA_DataList DL;
ART1010_PARA_LineData LD;
IA.Axis1= ART1010_XAXIS; // 选择 X 轴作为第一轴
IA.Axis2 = ART1010_YAXIS; // 选择 Y 轴作为第二轴
LD.Line_Curve = ART1010_LINE; // 直线曲线(ART1010_Line:直线加/减速 ; ART1010_Curve:S 曲
线加 /减速 )
LD.ConstantSpeed = 0;
DL.Multiple = 1; // 倍数(1~500)
DL.Acceleration = 40000; // 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL.AccelerationK=1000; // 加速度变化率(仅 S 曲线驱动时有效)
DL.StartSpeed = 500; // 初始速度(1~8000)
DL.DriveSpeed = 5000; // 驱动速度 (1~8000)
LD.nXAxisPulseNum = 40000; // X 轴终点坐标脉冲数 (-8388608~+8388607)
LD. nYAxisPulseNum = 20000; // Y 轴终点坐标脉冲数(-8388608~+8388607)
ART1010_InitLineInterpolation ( // 初始化直线插补运动
h D e v i c e , / / 设备句柄
& D L ,
& L D ) ;
ART1010_StartLineInterpolation (hDevice);
0 10000 20000 30000
10000
15000 (30000,-15000)
19
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
XPP:
YPP:
运行结果:X 轴以设定的速度输出脉冲,Y 轴的速度为 X 轴的一半,到终点两轴同时停止。
五、使用 ART1010_InitCWInterpolation 函数启动正反方向圆弧插补驱动
// 公用参数
#ifndef _ART1010_PAPA_DataList
typedef struct _ART1010_PAPA_DataList
{
LONG Multiple; // 倍率 (1~500)
LONG StartSpeed; // 初始速度(1~8000)
LONG DriveSpeed; // 驱动速度(1~8000)
LONG Acceleration; // 加速度(125~1000000)
LONG Deceleration; // 减速度(125~1000000)
LONG AccelerationK; // 加速度变化率(954~62500000)
} ART1010_PARA_DataList, *PART1010_PARA_DataList;
#endif
// 正反方向圆弧插补参数
#ifndef _ART1010_PAPA_CircleData
typedef struct _ART1010_PAPA_CircleData
{
LONG ConstantSpeed; // 固定线速度 (不固定线速度 | 固定线速度)
LONG XCenter; // X 轴圆心坐标 (脉冲数 -8388608~8388607)
LONG YCenter; // Y 轴圆心坐标 (脉冲数 -8388608~8388607)
LONG XPulse; // X 轴终点坐标 (脉冲数 -8388608~8388607)
LONG YPulse; // Y 轴终点坐标 (脉冲数 -8388608~8388607)
} ART1010_PARA_CircleData, *PART1010_PARA_CircleData;
#endif
例如要使 0 号卡以(X:10000 Y:0)为圆心,以(X: 0 Y:0)为终点,速度为 1000PPS(脉冲数/秒)
固定线速度进行正方向的圆弧插补。参考下例:
HANDLE hDevice = ART1010_CreateDevice(0); // 获得句柄号
ART1010_PARA_DataList DL;
ART1010_PARA_CircleData CD;
CD.ConstantSpeed = 1; // ART1010_CONSTAND:固定 ART1010_NOCONSTAND:不固定
CD. Direction = 1; // ART1010_PDIRECTION:正方向转动 ART1010_MDIRECTION:反方向
CD.XCenter =10000; // X 轴圆心坐标(脉冲数)
CD.YCenter = 0; // Y 轴圆心坐标(脉冲数)
CD.XPulse =0; // X 轴终点坐标(脉冲数)
CD.YPulse =0; // Y 轴终点脉冲数
DL.Multiple = 1; // 倍数(1~500)
DL.Acceleration=5000; // 加速度(125~1000000)
DL.StartSpeed = 1000; // 初始速度(1~8000)
DL.DriveSpeed = 1000; // 驱动速度(1~8000)
ART1010_InitCWInterpolation(hDevice,// 初始化圆弧插补
& D L ,
& C D ) ;
ART1010_StartCWInterpolation ( // 启动正方向圆弧插补
h D e v i c e ) ; / / 设备句柄
20
北京阿尔泰科技发展有限公司
起点 (0, 0) 中心 (10000,0)
终点(10000,-10000)
六、位插补举例
例 1 :要运行如下图所示的轨迹,参考下例
分析:要运行这样的轨迹,首先从图中算出每个轴要输出的脉冲。从 0 到 8,XPM 一直输出脉冲及
1111,1111 ,XPP 输出 0000,0000 ,YPP 输出 1101,0100 及 0XD4 ,YPM 输出 0000,0000 ,从 8 到 16 ,XPM 输
出 0010,1011 ,XPP 不输出脉冲为 0000,0000 ,YPP 输出 1111,1111 ,YPM 不输出脉冲为 0000,0000 ,因此第
一个 16 位数据为 BP1P 为 0X0 ,BP1M 为 0X2BFF ,BP2P 为 0XFFD4 ,BP2M 为 0X0 ;其它数据一样。
USHORT nBitData[16] = {
0x0000, 0x2BFF, 0XFFD4, 0x0000,
0XF6FE, 0x0000, 0X000F, 0x3FC0,
0x1FDB, 0x0000, 0x00FF, 0xFC00,
0x4000, 0x7FF5, 0x0000, 0x0AFF};
HANDLE hDevice = ART1010_CreateDevice(0);
ART1010_PARA_DataList DL;
IA.Axis1 = ART1010_XAXIS;
IA.Axis2 = ART1010_YAXIS;
DL.Multiple = 1;
DL.Acceleration = 1250;
DL.StartSpeed = 1;
DL.DriveSpeed = 1;
ART1010_InitBitInterpolation ( // 初始化位插补参数
h D e v i c e , / / 设备句柄
& I A , / / 插补轴结构体指针
& D L ) ; / / 公共参数结构体指针
ART1010_AutoBitInterpolation (hDevice, nBitData, 16);// 启动位插补子线程
在我们的高级演示程序里画出的轨迹如右图所示。
七、连续插补举例
例 1 如右图所示,使用 0 号卡以 1 倍倍率,1000PPS 初始速度,1000PPS 驱动速度,运行如右图所示的轨迹。
21
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
分析:该轨迹总共有八段线段或圆弧组成。先直线,
圆弧,直线,圆弧…….. 对直线插补知道起点,终
点,圆弧插补知道圆心坐标,终点坐标,所以很容易
得到该轨迹。
HANDLE hDevice = ART1010_CreateDevice(0); //
获得句柄号
ART1010_PARA_DataList DL; // 公共参数结构体
ART1010_PARA_LineData LD;// 直线插补参数结构
LD.Line_Curve = ART1010_LINE;// ART1010_LINE:
直线, ART1010_Curve:S 曲线
LD.ConstantSpeed = ART1010_CONSTAND;
DL.Multiple =1; // 倍率(1-500)
DL.Acceleration=1250; // 加速度(125-1000,000)
DL.StartSpeed = 1000; // 初始速度(1-8000)
DL.DriveSpeed = 1000; // 驱动速度(1-8000)
LD.nXAxisPulseNum=4500; // X 轴脉冲数
LD.nYAxisPulseNum= 0; // Y 轴脉冲数
ART1010_SetLP(hDevice, ART1010_XAXIS, 0); // 清逻辑位置计数器
ART1010_SetLP(hDevice, ART1010_YAXIS, 0); // 清实际位置计数器
ART1010_InitLineInterpolation( // 初始化直线插补运动
h D e v i c e , / / 设备句柄
& D L ,
& L D ) ;
ART1010_StartLineInterpolation(hDevice); // 启动直线插补驱动
ART1010_NextWait( hDevice); // 等待写入下一个节点的参数和命令
ART1010_PARA_CircleData CD;
CD.ConstantSpeed = 1; // ART1010_CONSTAND:固定 ART1010_NOCONSTAND:不固定
CD.XCenter =0; // X 轴圆心坐标(脉冲数)
CD.YCenter = 4500; // Y 轴圆心坐标(脉冲数)
CD.XPulse =4500; // X 轴终点坐标(脉冲数)
CD.YPulse =4500; // Y 轴终点脉冲数
ART1010_InitCWInterpolation(hDevice, // 初始化圆弧插补
& D L ,
& C D ) ;
ART1010_StartCWInterpolation( // 启动反方向圆弧插补
n D e v i c e , / / 设备号
ART1010_MDIRECTION); // 转动方向
ART1010_NextWait( hDevice); // 等待写入下一个节点的参数和命令
LD.nXAxisPulseNum=0;
LD.nYAxisPulseNum=4500;
ART1010_InitLineInterpolation( // 初始化直线插补运动
h D e v i c e , / / 设备句柄
& D L ,
& L D ) ;
ART1010_StartLineInterpolation(hDevice); // 启动直线插补驱动
重复上诉过程即可得到该轨迹。
八、外部信号控制的驱动函数
每个轴都有 nEXPP 和 nEXPM 2 个输入信号,nEXPP 用于正方向的驱动控制,nEXPM 用于反方向的
驱动控制。在设定好轴号,倍数,加速度,初始速度,驱动速度,输出脉冲数(定量驱动时需要设定)后,
由 nEXPP 和 nEXPM 启动电机。
例 1 :用外部信号(nEXPP 或 nEXPM )启动 0 号卡 Y 轴电机以 2 倍倍率,25000PPS/SEC 的加速度,200PPS
的初始速度,16000PPS 的驱动速度,直线加减速输出 100000 个脉冲定量驱动。
HANDLE hDevice = ART1010_CreateDevice(1); // 获得句柄号
22
北京阿尔泰科技发展有限公司
ART1010_PARA_DataList DL;
ART1010_PARA_LCData LC;
LC.AxisNum = ART1010_YAXIS;
LC.Line_Curve = ART1010_LINE;
LC.nPulseNum = 100000;
LC.Mode = ART1010_CWCCW;
DL.Multiple = 2;
DL.Acceleration = 12500;
DL.AccelerationK = 1000;
DL.StartSpeed = 100;
DL.DriveSpeed = 8000;
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice, // 设备句柄
& D L , / / 公共参数结构体指针
& L C ) ; / / 直线 S 曲线参数结构体指针
ART1010_SetOutEnableDV( // 设置外部使能定量驱动(下降沿有效)
hDevice, // 设备句柄
LC.AxisNum); // 轴号(ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 )
运行程序后,当 nEXPP 引脚上出现低电平(nEXPP , nEXPM 在不加电平时为高电平),即有一个下降
沿后,电机启动正方向的定量驱动,直到输完脉冲数停止。当 nEXPM 引脚上出现低电平,即有一个下降沿后,
电机启动反方向的定量驱动,直到输完脉冲数停止
例 2 :用外部信号(nEXPP 或 nEXPM)启动 0 号卡 X 轴电机以 1 倍倍率,12500PPS/SEC 的加速度,100PPS
的初始速度,8000PPS 的驱动速度直线连续驱动。
HANDLE hDevice = ART1010_CreateDevice(0); // 获得句柄号
ART1010_PARA_DataList DL;
ART1010_PARA_LCData LC;
LC.AxisNum = ART1010_XAXIS;
LC.Line_Curve = ART1010_LINE;
LC.nPulseNum = 100000; // 初始化要设置,但不会用到
LC.Mode = ART1010_CWCCW;//脉冲方式 ART1010_CWCCW:CW/CCW 方式 ,ART1010_CPDIR:CP/DIR
方式
DL.Multiple = 1; // 倍率
DL.Acceleration = 12500; // 加速度
DL.AccelerationK = 1000; // 加速度变化率
DL.StartSpeed = 100; // 初始速度
DL.DriveSpeed = 8000; // 驱动速度
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice, // 设备句柄
& D L , / / 公共参数结构体指针
& L C ) ; / / 直线 S 曲线参数结构体指针
ART1010_SetOutEnableLV( // 设置外部使能定量驱动(下降沿有效)
hDevice, // 设备句柄
LC.AxisNum);// 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 )
运行程序后,在 nEXPP 引脚上保持低电平期间,电机运行正方向连续驱动。在 nEXPM 引脚上保持低电
平期间,电机运行反方向连续驱动。
九、设置外部越限信号有效及停止方式
例:如果设置 0 号卡的 X 轴电机:硬件限制,减速停止。参考下例:
(当电机在运行正方向的驱动时,XLMTP 引脚上为低电平时,电机立即减速停止。)
HANDLE hDevice = ART1010_CreateDevice(0); // 获得句柄号
ART1010_PARA_DataList DL; // 定义公共参数结构体
ART1010_PARA_LCData LC; // 定义直线曲线参数结构体
LC.AxisNum = ART1010_XAXIS; // 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 )
LC.LV_DV= ART1010_LV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV:连续驱动
23
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
LC.Mode = ART1010_CWCCW; //脉冲方式 ART1010_CWCCW:CW/CCW 方式,ART1010_CPDIR:CP/DIR 方
式
LC.Line_Curve = ART1010_LINE;// 运动方式 ART1010_LINE:直线加/减速;ART1010_CURVE:S 曲线加/减
速
DL.Multiple=1; // 倍率 (1~500)
DL.Acceleration = 2500; // 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL.AccelerationK = 2000; // 加速度变化率(仅 S 曲线驱动时有效)
DL.StartSpeed = 100 ; // 初始速度(1~8000)
DL.DriveSpeed = 5000; // 驱动速度 (1~8000)
LC.nPulseNum = 10000 ; // 定量输出脉冲数(0~268435455)
LC.Direction = ART1010_PDIRECTION; //运动方向ART1010_PDIRECTION:正转 ,ART1010_MDIRECTION:
反转
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice,
& D L ,
& L C ) ;
ART1010_SetLMTEnable( // 设置外部越限信号的有效及停止方式
h D e v i c e , / / 设备句柄
L C . A x i s N u m , / / 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 )
ART1010_DECSTOP); // ART1010_DECSTOP:减速停止,ART1010_SUDDENSTOP:
立即停止
ART1010_StartLVDV( // 启动定长脉冲驱动
h D e v i c e , / / 设备句柄
L C . A x i s N u m ) ;
十、设置伺服马达输出到位有效
例 1:设置 1 号卡(第二块卡)的 Y 轴电机 INPOS 有效,直接调用 ART1010_ SetINPOSEnable 函数。
HANDLE hDevice = ART1010_CreateDevice(1); // 获得句柄号
ART1010_PARA_DataList DL; // 定义公共参数结构体
ART1010_PARA_LCData LC; // 定义直线曲线参数结构体
LC.AxisNum = ART1010_YAXIS; // 轴号(ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 )
LC.LV_DV= ART1010_LV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV:连续驱动
LC.PulseMode=ART1010_CWCCW; // 脉冲方式 ART1010_CWCCW:CW/CCW 方
式 ,ART1010_CPDIR:CP/DIR 方式
LC.Line_Curve = ART1010_LINE; // 运动方式 ART1010_LINE:直线加/减速 ; ART1010_CURVE:S 曲
线加 /减速 )
DL.Multiple=1; // 倍率 (1~500)
DL.Acceleration = 2500; // 加速度(125~1000,000)
DL.Deceleration = 2500; // 减速度(125~1000,000)
DL.StartSpeed = 10 ; // 初始速度(1~8000)
DL.DriveSpeed = 5000; // 驱动速度 (1~8000)
LC.nPulseNum = 100000 ; // 定量输出脉冲数(0~268435455)
LC.Direction= ART1010_PDIRECTION;//运动方向 ART1010_PDIRECTION:正转 ,ART1010_MDIRECTION:
反转
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice,
& D L ,
& L C ) ;
ART1010_SetINPOSEnable( // 设置伺服马达定位完毕输入信号有效
h D e v i c e , / / 设备句柄
L C . A x i s N u m ) ; / / 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 )
ART1010_StartLVDV( // 启动定长脉冲驱动
h D e v i c e , / / 设备句柄
L C . A x i s N u m ) ;
24
北京阿尔泰科技发展有限公司
在 nINPOS 信号设置为有效时,在驱动结束后,RR0 的驱动状态位仍然为 1 ,当 nINPOS 引脚出现低电平
(即出现一个下降沿时),RR0 状态寄存器的状态位才返回为 0 。比如上例,在设置 Y 轴 INPOS 信号有效,并启
动电机后,RR0 的 D1 位及 YDRV 为 1 ,电机结束驱动后仍然为 1 ,在 YINPOS 引脚出现低电平(即出现一个下
降沿时)该位才返回 0 。
例 2:需要设置一号卡 X 轴外部停止信号 0 有效,直接调用 ART1010_ SetStopEnable 函数。
HANDLE hDevice = ART1010_CreateDevice(1); // 获得句柄号
ART1010_PARA_DataList DL; // 定义公共参数结构体
ART1010_PARA_LCData LC; // 定义直线曲线参数结构体
LC.AxisNum = ART1010_XAXIS; // 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 )
LC.LV_DV= ART1010_LV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV:连续驱动
LC.Mode = ART1010_CWCCW; // 脉冲方式 ART1010_CWCCW:CW/CCW 方
式 ,ART1010_CPDIR:CP/DIR 方式
LC.Line_Curve = ART1010_LINE;// 运动方式 ART1010_LINE:直线加/减速 ; ART1010_CURVE:S 曲线加/减
速
DL.Multiple=1; // 倍率 (1~500)
DL.Acceleration = 2500; // 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL.AccelerationK = 2000; // 加速度变化率(仅 S 曲线驱动时有效)
DL.StartSpeed = 100 ; // 初始速度(1~8000)
DL.DriveSpeed = 5000; // 驱动速度 (1~8000)
LC.nPulseNum = 10000 ; // 定量输出脉冲数(0~268435455)
LC.Direction = ART1010_PDIRECTION; //运动方向ART1010_PDIRECTION:正转 ,ART1010_MDIRECTION:
反转
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice,
& D L ,
& L C ) ;
ART1010_SetStopEnable( // 设置外部停止信号有效
h D e v i c e , / / 设备句柄
L C . A x i s N u m , / / 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 )
ART1010_IN0); // 停止号
ART1010_StartLVDV( // 启动定长脉冲驱动
h D e v i c e , / / 设备句柄
L C . A x i s N u m ) ;
当 XIN0 信号出现低电平及出现一个下降沿时,电机执行减速停止。
例 3:1 号卡 X 轴设置伺服报警信号有效,调用 ART1010_ SetALARMEnable 函数
HANDLE hDevice = ART1010_CreateDevice(1);// 获得句柄号
ART1010_PARA_DataList DL; // 定义公共参数结构体
ART1010_PARA_LCData LC; // 定义直线曲线参数结构体
LC.AxisNum = ART1010_XAXIS; // 轴号(ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 )
LC.LV_DV= ART1010_LV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV:连续驱动
LC.Mode = ART1010_CWCCW; // 脉冲方式 ART1010_CWCCW:CW/CCW 方
式 ,ART1010_CPDIR:CP/DIR 方式
LC.Line_Curve = ART1010_LINE; // 运动方式 ART1010_LINE:直线加/减速 ; ART1010_CURVE:S 曲线加/
减速
DL.Multiple=1; // 倍率 (1~500)
DL.Acceleration = 2500; // 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL.AccelerationK = 2000; // 加速度变化率(仅 S 曲线驱动时有效)
DL.StartSpeed = 100 ; // 初始速度(1~8000)
DL.DriveSpeed = 5000; // 驱动速度 (1~8000)
LC.nPulseNum = 10000 ; // 定量输出脉冲数(0~268435455)
LC.Direction = ART1010_PDIRECTION;// 运动方向 ART1010_PDIRECTION:正转 ,ART1010_MDIRECTION:
25
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
反转
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
hDevice,
& D L ,
& L C ) ;
ART1010_SetALARMEnable( // 设置伺服报警信号有效
hDevice, // 设备句柄
LC.AxisNum); // 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 )
ART1010_StartLVDV( // 启动定长脉冲驱动
hDevice, // 设备句柄
LC.AxisNum);
当 XALARM 信号出现低电平及出现一个下降沿时,电机执行立即停止。
十一、实际位置计数器举例
实际位置计数器可以对外部信号进行计数,对 nECA 引脚信号进行向上计数,对 nECB 引脚信号进行向下计
数。
例如:我们把电机 X 轴正向输出脉冲引脚(XPP )接到 XECA 引脚,用 X 轴实际位置计数器对 X 轴脉冲计
数,我们启动 X 轴正方向定长驱动,输入 10000 个脉冲后停止。参考下例:
LONG A,LP,EP,speed;
HANDLE hDevice = ART1010_CreateDevice(0);// 创建设备
ART1010_PARA_DataList DL; // 定义公共参数结构体
ART1010_PARA_LCData LC; // 定义直线曲线参数结构体
LC.AxisNum = ART1010_XAXIS; // 轴号(ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 )
LC.LV_DV= ART1010_DV; // 驱动方式 ART1010_DV:定长驱动 ART1010_LV:连续驱动
LC.PulseMode = ART1010_CWCCW; // 脉冲方式 ART1010_CWCCW:CW/CCW 方
式 ,ART1010_CPDIR:CP/DIR 方式
LC.Line_Curve = ART1010_LINE; // 运动方式 ART1010_LINE:直线加/减速 ; ART1010_CURVE:S 曲线加/
减速 )
DL.Multiple=1; // 倍率 (1~500)
DL.Acceleration = 1250; // 加速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL.Deceleration = 2500; // 减速度(125~1000,000)(直线加减速驱动中加速度一直不变)
DL.StartSpeed = 100 ; // 初始速度(1~8000)
DL.DriveSpeed = 8000; // 驱动速度(1~8000)
LC.nPulseNum = 50000; // 定量输出脉冲数(0~268435455)
LC.Direction = ART1010_PDIRECTION;// 运动方向 ART1010_PDIRECTION:正转 ,ART1010_MDIRECTION:
反转
ART1010_InitLVDV( // 初始化连续,定长脉冲驱动
h D e v i c e ,
& D L ,
& L C ) ;
ART1010_StartLVDV(hDevice); // 启动定长、连续脉冲驱动
while(1)
{
LP = ART1010_ReadLP(hDevice, 0X1);
EP = ART1010_ReadEP(hDevice, 0X1);
printf("实位计数器 = %ld ", EP);
printf("逻辑位置计数器 = %ld \n", LP);
}
可以看到逻辑位置计数器输入的脉冲数和实际位置计数器的计数值。两个完全相同。
十二、读 RR 状态寄存器的位状态
为了方便用户最大程度的利用板卡资源,我们提供了状态寄存器,可以用 ART1010_GetRR0Status 读状态寄
存器。
RR0 主状态寄存器
26
北京阿尔泰科技发展有限公司
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
— BPSC1 BPSC0 ZONE2 ZONE1 ZONE0 CNEXT I-DRV 0 0 Y-ERR X-ERR 0 0 Y-DRV X-DRV
D1-0 n-DRV 表示每一个轴的驱动状态,该位为 1 时,表示此轴正在输出驱动脉冲。为 0 时,表示
此轴已经结束驱动,当设置 nINPOS 信号有效时,当驱动结束后,nDRV 仍然为 1 ,当 nINPOS
信号出现一个下降沿则 nDRV 返回为 0 。
D5-4 n-ERR 表示每一个轴的出错状态。在每一个轴 RR2 寄存器的出错位( D5~D0 )及 RR1 寄存
器的错误结束位(D15~D12 )中的任何位为 1 ,该位就为 1 。
D8 I-DRV 表示插补驱动状态。该位为 1 时,表示正在输出插补驱动脉冲。
D9 CNEXT 表示可以写入连续插补的下一个数据。在连续插补驱动中,该位为 1 后,可以写入下
一个节点的参数及插补命令。
D12~10 ZONEm 在圆弧插补驱动中表示驱动所在的象限。
D12 D11 D10
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
当前驱动所在的象限
0
1
2
3
4
5
6
7
D14,13 BPSC1,0 在位模式插补驱动中表示堆栈计数器(SC)的数值。
D14 D13
0
0
1
1
0
1
0
1
堆栈计数器的值( SC)
0
1
2
3
位模式插补的驱动中, SC=3 的时候,表示位数据堆栈不能再补充。SC=2 时,可以给每一个轴补充 16 位;
SC=1 时,可以给每一个轴补充 16 位 2 次; SC=0 时,表示输出了所有的位数据,驱动结束。
例如:要读 RR0 寄存器的 X-DRV, Y-D RV 的状态;
ART1010_PARA_RR0 RR0;
ART1010_GetRR0Status(
h D e v i c e , / / 设备句柄
& R R 0 ) ; / / R R 0寄存器状态
printf("XDRV=%d ",RR0. XDRV);
printf("YDRV=%d ",RR0. YDRV);
■ RR1 状态寄存器 1
X, Y 轴都有状态寄存器 1。在读 RR1 之前先要指定轴号。具体读哪一位,方法同上
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
EMG ALARM LMT- LMT+ — STOP2 STOP1 STOP0 ADSMD ACNST AASND DSND CNST ASND CMP- CMP+
D0 CMP+ 表示逻辑/实位计数器和 COMP+寄存器的大小关系。
1:逻辑/实位计数器≥COMP+寄存器
0:逻辑/实位计数器<COMP+寄存器
D1 CMP- 表示逻辑/实位计数器和 COMP—寄存器的大小关系。
1:逻辑/实位计数器<COMP—寄存器
0:逻辑 /实位计数器≥ COMP—寄存器
D2 ASND 在加/减速驱动(直线,S 曲线)中加速时,为 1
D3 CNST 在加/减速驱动(直线,S 曲线)中定速时,为 1。
D4 DSND 在加/减速驱动(直线,S 曲线)中减速时,为 1。
D5 AASND 在 S 曲线加/减速驱动中,加速度/减速度增加时,为 1。
27
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
D6 ACNST 在 S 曲线加/减速驱动中,加速度/减速度不变时,为 1。
D7 ADSND 在 S 曲线加/减速驱动中,加速度/减速度减少时,为 1。
D10~D8 STOP2~0 根据外部减速停止信号(nSTOP2~0)驱动停止时,为 1。
D12 LMT+ 根据正方向限制信号(nLMTP)驱动停止时,为 1。
D13 LMT— 根据负方向限制信号(nLMTM)驱动停止时,为 1。
D14 ALARM 根据伺服马达警报信号(nALARM)驱动停止时,为 1。
D15 EMG 根据紧急停止信号(EMGN)驱动停止时,为 1。
速度 加速度 加速度 减速度
ASND=1 CNST=1 DSND=1
AASND=1 ACNST=1 ADSND=1 AASND=1 ACNST=1 ADSND=1
■ RR2 状态寄存器 2
X、Y 轴都有状态寄存器 2。状态寄存器 2 表示出错信息,在每个位为 1 时,表示此位指示的错误发生,RR2
寄存器 D5~D0 的任何位为 1 后, RR0 主状态寄存器的 n-ERR 位为 1。
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
— — MULT EMG ALARM LMTM LMTP — — — — — — — SLMTM SLMTP
D0 SLMTP 设定 COMP+寄存器作为有效软件限制后,在正方向驱动中,逻辑/实位计数器大于
COMP+寄存器值。
D 1 S L M T M 设定 COMP-寄存器作为有效软件限制后,在负方向驱动中,逻辑/实位计数器小于
COMP-寄存器值。
D2 HLMTP 正方向限制信号(nLMTP)处于有效电平
D3 HLMPM 负方向限制信号(nLMTM)处于有效电平
D4 ALARM 设定成有效的伺服马达报警信号(nALARM)处于有效电平
D5 EMG 紧急停止信号(EMGN)处于低电平
D 6 M U L T 使用复数芯片插补时,这个位只用在主芯片的 X 轴,使用复数芯片插补时在副芯片
的哪一个轴上发生错误,就变为 1 。
在驱动中顺方向的硬件/ 软件限制启动后,驱动减速停止或立即停止。停止后的同方向驱动命令不被执行,
在逆方向驱动时 SLMT+/- 位达到那些条件,也不变为 1 。
■ RR3 中断状态位。具体读哪一位,方法同上
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
DEND CSTA CEND PBCP PSMP PSCM PBCM —
PBCM; 逻辑/实际位置计数器的值大于等于 COMP-寄存器的值时
PSCM; 逻辑/实际位置计数器的值小于 COMP-寄存器的值时
PSCP; 逻辑/实际位置计数器的值小于 COMP+寄存器的值时
PBCP; 逻辑/实际位置计数器的值大于等于 COMP+寄存器的值
CEND; 在加/减速时,在定速域结束脉冲输出时
CSTA; 在加/减速时,在定速域开始脉冲输出时
DEND; 驱动结束时
某个中断源引发中断后,此结构体的位就为 1(前提是必须设置这个中断源有效),中断输出信号为低电平,
CPU 读出发生中断轴的 RR3 寄存器的状态位后, RR3 寄存器的位被清除为 0,中断输出信号返回无效电平。
■ RR4, 5 输入寄存器 1, 2 ,具体读哪一位,方法同上
28
北京阿尔泰科技发展有限公司
输入寄存器 1,2 表示每一个轴的输入信号状态,输入信号在低电平时,表示 0 ,高电平时,表示 1 。不使用
这些信号的功能时,可以作为通用输入信号使用。具体读哪一位方法同上。
RR4
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
XLMTM XLMTP XIN5 XIN4 XIN3 XIN2 XIN1 XIN0 XALARM XINPOS XEXPM XEXPP EMG XSTOP2 XSTOP1 XSTOP0
RR5
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
YLMTM YLMTP YIN5 YIN4 YIN3 YIN2 YIN1 YIN0 YALARM YINPOS YEXPM YEXPP — YSTOP2 YSTOP1 YSTOP0
第四章 驱动函数库
第一节、驱动函数库函数列表
(每个函数省略了前缀“ART1010_”)
函数名 函数功能
1、设备对象管理函数
CreateDevice
ReleaseDevice
ResetDevice
2、设置控制卡的基本参数函数
PulseOutMode
PulseInputMode
SetR
SetA
SetDec
SetAK
SetSV
SetV
SetP
SetIP
SetC
SetLP
SetEP
SetAccofst
3、直线 S 曲线初始化、启动函数
InitLVDV
StartLVDV
Start2D
4、直线插补初始化、启动函数
InitLineInterpolation
StartLineInterpolation
5、正反方向圆弧插补初始化、启动函数
创建句柄
释放设备
复位整个 PC104 设备
设置脉冲输出模式
设置脉冲输入模式
设置倍率(1-500)
设置加速度(125-1000,000)
设置减速度(125-1000,000)
设置加速度变化率
设置初始速度(1-8000)
设置驱动速度(1-8000)
设置定长脉冲数(0-268435455)
设置插补终点脉冲数(-8388608-+8388607)
设置圆心坐标(脉冲数)( -8388608-+8388607)
设置逻辑位置计数器(-2147483648-+2147483647)
设置实位计数器(-2147483648-+2147483647)
设置加速计数器偏移(0-65535)
初始化连续,定长脉冲驱动
启动连续,定长脉冲驱动
启动 2 轴同时驱动
初始化直线插补驱动
启动直线插补驱动
29
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
InitCWInterpolation
StartCWInterpolation
StartCCWInterpolation
初始化正反方向圆弧插补驱动
启动正方向圆弧插补驱动
启动反方向圆弧插补驱动
6、位插补相关函数
InitBitInterpolation
AutoBitInterpolation
ReleaseBitInterpolation
SetBP
StartBitInterpolation
BPWait
ClearBPData
初始化位插补参数
自动执行位插补
释放位插补
设置位插补数据
启动位插补
等待位插补的下一组数据设定
清除 BP 寄存器数据
7、连续插补相关函数
NextWait
等待连续插补下一个节点写入数据命令允许
8、外部信号启动电机定长驱动、连续驱动
SetOutEnableDV
SetOutEnableLV
外部控制定量驱动(下降沿有效)
外部控制连续驱动(保持低电平有效)
9、软件限位设置、清除
SetPDirSoftwareLimit
SetMDirSoftwareLimit
ClearSoftwareLimit
设置正方向软件限位
设置反方向软件限位
清除软件限位
10、设置外部硬件限位、停止信号、报警信号、定位信号有效及清除
SetLMTEnable
SetStopEnable
SetStopDisable
SetALARMEnable
SetALARMDisable
SetINPOSEnable
SetINPOSDisable
设置外部越限信号有效及停止方式
设置外部停止信号有效
设置外部停止信号无效
设置伺服报警信号有效
设置伺服报警信号无效
设置伺服马达定位完毕输入信号有效
设置伺服马达定位完毕输入信号无效
11、减速函数设置
DecValid
DecInvalid
DecStop
InstStop
AutoDec
HanDec
减速有效
减速无效
减速停止
立即停止
自动减速有效
手动减速有效并设定手动减速点
12、读逻辑计数器、实位计数器、当前速度、加速度
ReadLP
ReadEP
ReadCV
ReadCA
读逻辑计数器
读实位计数器
读当前速度
读当前加速度
13、读状态寄存器的位状态
ReadRR
GetRR0Status
GetRR1Status
GetRR2Status
读 RR 寄存器
获得主状态寄存器 RR0 的位状态
获得状态寄存器 RR1 的位状态
获得状态寄存器 RR2 的位状态
30
北京阿尔泰科技发展有限公司
GetRR3Status
GetRR4Status
获得状态寄存器 RR3 的位状态
获得状态寄存器 RR4 的位状态
14、设置通用输出和读通用输入
SetOutput
ReadTYPE
设置通用输出电平
读通用输入信号电平
第二节、驱动函数库说明
一、设备对象管理函数
1 . HANDLE CreateDevice(WORD wBaseAddr)
功能: 该函数负责创建 PC104 设备对象,并返回其设备对象句柄。
参数: wBaseAddr 设备 ID( Identifier ) 标识号。当向同一个 Windows 系统中加入若干相同类型的 PC104
设备时,我们的驱动程序将以该设备的“ 基本名称” 与 WBaseAddr 标识值为名称后缀的标识符来确认和管理该设
备。比如若用户往 Windows 系统中加入第一个 ART1010 模板时,驱动程序则以“ART1010”作为基本名称,再以
WBaseAddr 的初值组合成该设备的标识符 “ART1010-0”来确认和管理这第一个设备,若用户接着再添加第二个
ART1010 模板时,则系统将以“ART1010-1”来确认和管理第二个设备,若再添加,则以此类推。所以当用户要创
建设备句柄管理和操作第一个 PC104 设备时,WBaseAddr 应置 0 ,第二个应置 1 ,也以此类推。但默认值为 0 。
返回值: 如果执行成功,则返回设备对象句柄;如果没有成功,则返回错误码 INVALID_HANDLE_VALUE。
由于此函数已带容错处理,即若出错,它会自动弹出一个对话框告诉您出错的原因。您只需要对此函数的返回值
作一个条件处理即可,别的任何事情您都不必做。
相关函数:ReleaseDevice
Visual C++ & C++Builder 程序举例
:
HANDLE hDevice; // 定义设备对象句柄
hDevice=CreateDevice ( 0 ); // 创建设备对象,并取得设备对象句柄
if(hDevice==INVALIDE_HANDLE_VALUE); // 判断设备对象句柄是否有效
{ return; // 退出该函数
)
2 . BOOL ReleaseDevice(HANDLE hDevice)
功能: 释放设备对象所占用的系统资源及设备对象自身。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE,否则返回 FA LSE。
相关函数:
应注意的是,CreateDevice 必须和 ReleaseDevice 函数一一对应,即当您执行了一次 CreateDevice 后,再一
次执行这些函数前,必须执行一次 ReleaseDevice 函数,以释放由 CreateDevice 占用的系统软硬件资源,如 DMA
控制器,系统内存等。只有这样,当您再次调用 CreateDevice 函数时,那些软硬件资源才可被再次使用。
3. BOOL ResetDevice(HANDLE hDevice)
功能: 复位整个 PC104 设备。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
相关函数:
二、设置控制卡的基本参数函数
1. BOOL PulseOutMode (HANDLE hDevice,
L O N G A x i s N u m ,
功能: 设置脉冲输出模式。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
CreateDevice
CreateDevice
LONG Mode)
AxisNum 轴号(ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
Mode 脉冲输出模式 ART1010_CWCCW:CW/CCW 模式 ART1010_CPDIR:CP/DIR 模
31
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
式 。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
2. BOOL PulseInputMode(HANDLE hDevice,
L O N G A x i s N u m ,
L O N G M o d e )
功能: 设置脉冲输入模式。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
Mode 脉冲输出模式 ART1010_CWCCW:CW/CCW 模式 ART1010_CPDIR:CP/DIR 模
式 。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
3. BOOL SetR ( HANDLE hDevice,
LONG AxisNum,
L O N G D a t a )
功能: 设置倍率,范围是(1-500)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
Data 倍率值 (1-500)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 电机运行时的实际加速度(PPS/SEC)=设定的加速度×倍率。
4. BOOL SetA( HANDLE hDevice,
LONG AxisNum,
L O N G D a t a )
功能: 设置指定轴加速度(Set acceleration),范围(125-1000,000)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
Data 加速度数据,范围 (125-1000,000)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 电机运行时的实际加速度(PPS/SEC)=设定的加速度×倍率。
5. BOOL SetDec(HANDLE hDevice,
LONG AxisNum,
L O N G D a t a )
功能: 设置指定轴减速度(Set deceleration),范围(125-1000,000)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
Data 减速度数据,范围 (125-1000,000)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 电机运行时的实际减速度(PPS/SEC)=设定的减速度×倍率。
6. BOOL SetAK (HANDLE hDevice,
LONG AxisNum,
LONG Data)
功能: 设置指定轴加速度变化率(Set acceleration increasing rate),范围(954-62500000)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
Data 加速度变化率数据,范围 (954-62500000)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 电机运行时的实际加速度变化率 = 设定的加速度变化率×倍率。
7. BOOL SetSV(HANDLE hDevice,
LONG AxisNum,
32
北京阿尔泰科技发展有限公司
L O N G D a t a )
功能: 设置指定轴初始速度(Set start speed),范围(1-8,000)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 初始速度数据,范围 (1-8,000)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 电机运行时的实际初始速度(PPS)=设定的初始速度×倍率。
8. BOOL SetV( HANDLE hDevice,
LONG AxisNum,
L O N G D a t a )
功能: 设置指定轴驱动速度(Set drive speed),范围(1-8,000)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 驱动速度数据,范围 (1~8,000)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 电机运行时的实际驱动速度(PPS)=设定的驱动速度×倍率。
9. BOOL SetP ( HANDLE hDevice,
LONG AxisNum,
LONG Data)
功能: 设置指定轴定长脉冲数(Set pulse),范围(0~268435455)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 定长脉冲数数据,范围 (0~268435455)。
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
10. BOOL SetIP (HANDLE hDevice,
LONG AxisNum,
L O N G D a t a )
功能: 设置插补终点脉冲数,范围(-8388608~+8388607)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 插补终点脉冲数,范围 (-8388608~+8388607)。
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
11. BOOL SetC( HANDLE hDevice,
LONG AxisNum,
LONG Data)
功能: 设置指定轴圆弧圆心坐标(脉冲数)(Set centre),范围(-8388608-+8388607)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 圆心坐标脉冲数据,范围 (-8388608-+8388607)。
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
12. BOOL SetLP(HANDLE hDevice,
LONG AxisNum,
LONG Data)
功能: 设置指定轴逻辑位置计数器(Set Logic Position) ,范围(-2147483648~+2147483647)。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 逻辑位置计数器数据,范围 (-2147483648~+2147483647)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 一般情况设定为 0 。
33
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
13. BOOL SetEP(HANDLE hDevice,
LONG AxisNum,
L O N G D a t a )
功能: 设置指定轴实际位置计数器(Set Effect Position),范围(-2147483648-+2147483647)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 实际位置计数器数据,范围 (-2147483648-+2147483647)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 一般情况设定为 0 。
14. BOOL SetAccofst(HANDLE hDevice,
LONG AxisNum,
L O N G D a t a )
功能: 设置指定轴加速计数器偏移(Set Acceleration Counteroffset),范围(0~65535)。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
Data 加速计数器偏移数据,范围 (0~65535)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 在直线加减速驱动时不需要设定,在 S 曲线驱动时根据情况设定。
三、直线 S 曲线初始化、启动函数
1. BOOL InitLVDV (HANDLE hDevice,
PART1010_PARA_DataList pDL,
PART1010_PARA_LCData pLC)
功能: 初始化指定轴定长或连续驱动。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
pDL 公共参数结构体指针,参数包括:
Multiple 倍率,范围(1-500)
StartSpeed 初始速度,范围( 1-8000)
DriveSpeed 驱动速度,范围( 1-8000)
Acceleration 加速度,范围( 125-1000,000)
Deceleration 减速度,范围( 125-1000,000)
AccelerationK 加速度变化率,范围(954-62500000)(仅 S 曲线驱动时设定,如果要加
速度和减速曲线不一样,还需要设定减速度变化率,这时加速度和减速
度都必须设置为 8000 )
pLC 直线和 S 曲线参数结构体指针,参数包括:
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
LV_DV 连续驱动、定长驱动选择 ART1010_LV:连续驱动;
ART1010_DV:定长驱动
Mode 脉冲输出模式 ART1010_CWCCW:CW/CCW 模式;
ART1010_CPDIR:CP/DIR 模式
Line_Curve 直线 S 曲线选择 ART1010_LINE:直线驱动; ART1010_Curve:S 曲线驱
动
Direction 转动方向 ART1010_PDIRECTION:正方向转动;
ART1010_MDIRECTION:反方向转动
nPulseNum 输出脉冲数,范围 (0-268435455)(定长脉冲驱动时设定)
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 在直线加减速驱动时不需要设定加速度变化率,在 S 曲线驱动时必须设定,如果 S 曲线中加速和
减速曲线不一样,就必须设置减速度变化率,并且加速度和减速度都要设置成 8000 。调用例子请参看使用
ART1010_StartLVDV 定长、连续脉冲驱动函数启动电机。
2. BOOL StartLVDV(HANDLE hDevice,
LONG AxisNum)
功能: 启动定长或连续驱动。
34
北京阿尔泰科技发展有限公司
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴) 。
返回值:若成功,则返回 TRUE ,否则返回 FA LSE 。
3 .BOOL Start2D(HANDLE hDevice)
功能: 启动 2 轴同时驱动。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
四、直线插补初始化、启动函数
1. BOOL InitLineInterpolation ( HANDLE hDevice,
PART1010_PARA_DataList pDL,
PART1010_PARA_LineData pLD)
功能: 初始化直线插补。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
pDL 公共参数结构体指针,参数包括:
Multiple 倍率,范围(1-500)
StartSpeed 初始速度,范围( 1-8000)
DriveSpeed 驱动速度,范围( 1-8000)
Acceleration 加速度,范围( 125-1000,000)
Deceleration 减速度,范围( 125-1000,000)
AccelerationK 加速度变化率,范围(954-62500000)(仅 S 曲线驱动时设定,如果要加
速度和减速曲线不一样,还需要设定减速度变化率,这时加速度和减速
度都必须设置为 8000 )
pLD 直线插补参数结构体指针,参数包括:
Line_Curve; 运动方式 ART1010_LINE:直线 ART1010_CURVE: 曲线)
ConstantSpeed; 固定线速度 ART1010_NOCONSTAND 不固定线速度
ART1010_CONSTAND: 固定线速度
nXAxisPulseNum; X 轴终点脉冲数 (-8388608~8388607)
nYAxisPulseNum; Y 轴轴终点脉冲数 (-8388608~8388607)
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 在直线加减速驱动时不需要设定加速度变化率,在 S 曲线驱动时必须设定。调用例子请参看 18 页
使用 ART1010_LINEInterpolation 函数,启动两轴直线插补驱动。
2 .BOOL StartLineInterpolation ( HANDLE hDevice)
功能: 启动直线曲线插补。
参数: hhDDeevv
e 设备对象句柄,它应由 CreateDevice 创建。
iicce
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
五、正反方向圆弧插补初始化、启动函数
1. BOOL InitCWInterpolation (HANDLE hDevice,
PART1010_PARA_DataList pDL,
PART1010_PARA_CircleData pCD)
功能: 初始化正反方向圆弧插补。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
pDL 公共参数结构体指针,参数包括:
Multiple 倍率,范围(1-500)
StartSpeed 初始速度,范围( 1-8000)
DriveSpeed 驱动速度,范围( 1-8000)
Acceleration 加速度,范围( 125-1000,000)
Deceleration 减速度,范围( 125-1000,000)
AccelerationK 加速度变化率,范围(954-62500000)(仅 S 曲线驱动时设定,如果要加
速度和减速曲线不一样,还需要设定减速度变化率,这时加速度和减速
度都必须设置为 8000 )
35
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
pCD 正反方向圆弧插补参数结构体指针,参数包括:
ConstantSpeed 是否固定线速 ART1010_CONSTAND:固定
ART1010_NOCONSTAND:不固定
XCenter X 轴圆心坐标 (脉冲数 -8388608~8388607)
YCenter Y 轴轴圆心坐标(脉冲数-8388608~8388607)
XPulse X 轴终点坐标 (脉冲数 -8388608~8388607)
YPulse Y 轴终点坐标 (脉冲数 -8388608~8388607)
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 圆弧插补一般使用直线加减速驱动,不能使用 S 曲线驱动,并且一般为定速驱动。当需要使用加减
速驱动时,必须设定手动减速点。自动减速无效。调用例子请参看使用 ART1010_InitCWInterpolation 函数,启
动任意两轴正方向圆弧插补驱动。
2 .BOOL StartCWInterpolation (HANDLE hDevice)
功能: 启动正方向圆弧插补。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
3 .BOOL StartCCWInterpolation (HANDLE hDevice)
功能: 启动反方向圆弧插补。
参数: hhDDee
e 设备对象句柄,它应由 CreateDevice 创建。
vviicce
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
六、位插补相关函数
1. BOOL InitBitInterpolation (HANDLE hDevice,
PART1010_PARA_Data List pDL)
功能: 初始化位插补参数。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
pDL 公共参数结构体指针,参数包括:
Multiple 倍率,范围(1-500)
StartSpeed 初始速度,范围( 1-8000)
DriveSpeed 驱动速度,范围( 1-8000)
Acceleration 加速度,范围( 125-1000,000)
Deceleration 减速度,范围( 125-1000,000)
AccelerationK 加速度变化率,范围(954-62500000)(仅 S 曲线驱动时设定,如果要加
速度和减速曲线不一样,还需要设定减速度变化率,这时加速度和减速
度都必须设置为 8000 )
返回值:若成功,则返回 TRUE,否则返回 FA LSE。
备注: 位插补一般使用直线加减速驱动,不能使用 S 曲线驱动,并且一般为定速驱动。当需要使用加减速
驱动时,必须设定手动减速点。
2. BOOL AutoBitInterpolation (HANDLE hDevice,
PUSHORT pBuffer,
UINT nCount)
功能: 自动执行位插补。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
pBuffer 位插补数组指针。
nCount 数据组数个数。
返回值:该线程自动把数据数组里的位插补数据设置到位插补数据堆栈并执行位插补。若成功,则返回 TRUE,
否则返回 FALSE 。
3.BOOL ReleaseBitInterpolation (HANDLE hDevice)
功能: 释放位插补。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
36
北京阿尔泰科技发展有限公司
4. BOOL SetBP (HANDLE hDevice,
L O N G B P 1 P D a t a ,
L O N G B P 1 M D a t a ,
L O N G B P 2 P D a t a ,
L O N G B P 2 M D a t a )
功能: 设置位插补数据 BP1P,BP1M,BP2P,BP2M。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
BP1PData X 轴正方向驱动数据。
BP1MData X 轴反方向驱动数据。
BP2PData Y 轴正方向驱动数据。
BP2MData Y 轴反方向驱动数据。
返回值 :若成功,则返回 TRUE, 设备句柄无效返回 FALSE 。
5 .BOOL StartBitInterpolation (HANDLE hDevice)
功能: 启动位插补。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
6 .BOOL BPWait(HANDLE hDevice)
功能: 等待位插补的下一个数据设定。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
返回值 :若成功,则返回 TRUE, 设备句柄无效返回 FALSE 。
7 .BOOL ClearBPData (HANDLE hDevice)
功能: 清除 BP 寄存器数据。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
七、连续插补相关函数
1. BOOL NextWait(HANDLE hDevice)
功能: 等待连续插补下一个数据, 当不能设定下一个节点数据及命令时,一直等待,能设定时自动跳出。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若不能设定下一个节点数据及命令时,一直等待,直到能设定时,返回 TRUE, 设备句柄无效返回
FALS E 。
八、外部信号启动电机定长驱动、连续驱动
1. BOOL SetOutEnableDV (HANDLE hDevice,
LONG AxisNum)
功能: 外部控制定量驱动(下降沿有效,平常为高电平),当 nEXPP,nEXPM 引脚上有低电平,即出现一
个下降沿时,启动电机按照设定好的参数进行定长脉冲驱动。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴 ) 。
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
2. BOOL SetOutEnableLV (HANDLE hDevice,
L O N G A x i s N u m )
功能: 外部控制连续驱动(保持低电平有效) ,当 nEXPP,nEXPM 引脚上保持低电平期间,启动电机按
照设定好的参数进行连续驱动。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴) 。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
备注: 调用例子请参看。
37
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
九、设置软件限位有效和无效
1. BOOL SetPDirSoftwareLimit (HANDLE hDevice,
L O N G A x i s N u m ,
L O N G L o g i c F a c t ,
LONG Data)
功能: 设置正方向软件限位。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 ) 。
LogicFact 逻辑位置计数器实际位置计数器选择 ART1010_Logic:逻辑位置计数器;
ART1010_Fact:实际位置计数器。
Data 限位脉冲数,范围 (-2147483648~+2147483647)。
返回值:若成功,则返回 TRUE,否则返回 FA LSE。
备注: 当软件限位有效时,就减速停止。
2. BOOL SetMDirSoftwareLimit (HANDLE hDevice,
LONG AxisNum,
LONG LogicFact,
LONG Data)
功能: 设置反方向软件限位。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号 (ART1010_XAXIS:X 轴, ART1010_YAXIS:Y 轴 ) 。
LogicFact 逻辑位置计数器实际位置计数器选择 ART1010_Logic:逻辑位置计数器;
ART1010_Fact:实际位置计数器。
Data 限位脉冲数,范围 (-2147483648-+2147483647)。
返回值:若成功,则返回 TRUE,否则返回 FA LSE。
备注: 当软件限位有效时,就减速停止。
3. BOOL ClearSoftwareLimit (HANDLE hDevice,
LONG AxisNum)
功能: 清除软件限位。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
AxisNum 轴号 (ART1010_XAXIS:X 轴, ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回 TRUE ,否则返回 FA LSE 。
十、设置外部输入信号的有效和无效
1. BOOL SetLMTEnable (HANDLE hDevice,
LONG AxisNum,
LONG StopMode)
功能: 设置外部越限信号有效及停止方式。
参数: hhDD
e 设备对象句柄,它应由 CreateDevice 创建。
eevviicce
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴 ) 。
StopMode 停止模式(ART1010_DECSTOP:减速停止; ART1010_SUDDENSTOP:立即停止)
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
2. BOOL SetStopEnable (HANDLE hDevice,
L O N G A x i s N u m ,
LONG StopNum,)
功能: 设置外部停止信号有效。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
StopNum 停止号(ART1010_IN0:IN0 ART1010_IN1:IN1,ART1010_IN2:IN2,ART1010_IN3:IN3)
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
3. BOOL SetStopDisable (HANDLE hDevice,
LONG AxisNum)
38
北京阿尔泰科技发展有限公司
功能: 设置外部停止信号无效。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴) 。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
4. BOOL SetALARMEnable (HANDLE hDevice,
LONG AxisNum)
功能: 设置伺服报警信号有效。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
5. BOOL SetALARMDisable (HANDLE hDevice,
LONG AxisNum)
功能: 设置伺服报警信号无效。
参数: hh
e 设备对象句柄,它应由 CreateDevice 创建。
DDeevviicce
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
6. BOOL SetINPOSEnable (HANDLE hDevice,
LONG AxisNum)
功能: 设置伺服马达定位完毕输入信号有效。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
7. BOOL SetINPOSDisable (HANDLE hDevice,
L O N G A x i s N u m )
功能: 设置伺服马达定位完毕输入信号无效。
参数: hhDDeevv
iccee 设备对象句柄,它应由 CreateDevice 创建。
i
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
十一、减速函数设置
1 . BOOL DecValid (HANDLE hDevice)
功能: 减速有效。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
2 . BOOL DecInvalid (HANDLE hDevice)
功能: 减速无效。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
3. BOOL DecStop (HANDLE hDevice,
LONG AxisNum)
功能: 减速停止。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
4. BOOL InstStop (HANDLE hDevice,
LONG AxisNum)
功能: 立即停止。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
39
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
5. BOOL AutoDec(HANDLE hDevice,
LONG AxisNum)
功能: 自动减速有效。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
6. BOOL HanDec(HANDLE hDevice,
LONG AxisNum,
LONG Data)
功能: 手动减速有效并设定手动减速点,范围(0 - 4294967295)。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
Data 手动减速点数据,范围 (0 - 268435455)。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
十二、读电机状态:逻辑计数器、实际位置计数器、当前速度、加/ 减速度
1. LONG ReadLP(HANDLE hDevice,
LONG AxisNum)
功能: 读逻辑计数器。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回逻辑位置计数器的值,错误则返回 FALSE 。
2. LONG ReadEP(HANDLE hDevice,
LONG AxisNum)
功能: 读实际位置计数器。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回实际位置位置计数器的值,错误则返回 FALSE 。
3. LONG ReadCV(HANDLE hDevice,
LONG AxisNum)
功能: 读当前速度。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回当前速度的值, 轴号错误返回 FALS E 。
备注: 当前读出的速度,范围在(1-8000 ),实际速度 = 读出的速度值× 倍率。
4. LONG ReadCA(HANDLE hDevice,
LONG AxisNum)
功能: 读当前加速度。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号(ART1010_XAXIS:X 轴,ART1010_YAXIS:Y 轴)。
返回值:若成功,则返回当前速度的值, 轴号错误返回 FALS E。
备注: 当前读出的加速度,范围在(1-8000),实际加速度 = 读出的加速度值×125×倍率。
十三、读状态寄存器的位状态
1. LONG ReadRR (HANDLE hDevice,
LONG AxisNum,
L O N G N u m )
功能: 读 RR 寄存器。
40
北京阿尔泰科技发展有限公司
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
N u m 寄存器号。
返回值 :若成功,则返回 RR 的值 , 轴号错误返回 FA LSE 。
2. BOOL GetRR0Status(HANDLE hDevice,
PART1010_PARA_RR0 pPara)
功能: 获得 RR0 寄存器的位状态。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
pPara RR0 状态的参数结构体,共有 15 个成员变量,分别对应于 RR0 寄存器的各个状态位。
如果 pPara-> XDRV 为“1” 则表示 X 轴正在输出脉冲。其他同理。
返回值:若成功,返回 TRUE ,其 pPara 中的值有效;否则返回 FAL SE ,其 pPara 中的值无效。
3. BOOL GetRR1Status(HANDLE hDevice,
L O N G A x i s N u m ,
PART1010_PARA_RR1 pPara)
功能: 获得 RR1 寄存器的位状态。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
pPara RR1 状态的参数结构体,共有 16 个成员变量,分别对应于 RR1 寄存器的各个状态位。
如果 pPara-> CMPP 为“1” 则表示逻辑/ 实位计数器≥COMP+ 。其他同理。
返回值:若成功,返回 TRUE ,其 pPara 中的值有效;否则返回 FAL SE ,其 pPara 中的值无效。
4. BOOL GetRR2Status( HANDLE hDevice,
L O N G A x i s N u m ,
PART1010_PARA_RR2 pPara)
功能: 获得 RR2 寄存器的位状态。
参数: hhDDeevviicc
e 设备对象句柄,它应由 CreateDevice 创建。
e
pPara RR2 状态的参数结构体,共有 12 个成员变量,分别对应于 RR2 寄存器的各个状态位。
如果 pPara-> ALARM 为“1” 则表示外部伺服马达报警信号(nALARM) 设置为有效并处于有效状态。
其他同理。
返回值:若成功,返回 TRUE ,其 pPara 中的值有效;否则返回 FAL SE ,其 pPara 中的值无效。
5. BOOL GetRR3Status( HANDLE hDevice,
PART1010_PARA_RR3 pPara)
功能: 获得 RR3 寄存器的位状态。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
pPara RR3 状态的参数结构体,共有 16 个成员变量,分别对应于 RR3 寄存器的各个状态位。
如果 pPara-> XIN0 为“1” 则表示外部停止信号 XIN0 的电平为高电平。其他同理。
返回值:若成功,返回 TRUE ,其 pPara 中的值有效;否则返回 FAL SE ,其 pPara 中的值无效。
6. BOOL GetRR4Status( HANDLE hDevice,
PART1010_PARA_RR4 pPara)
功能: 获得 RR4 寄存器的位状态。
参数: hhDD
evviiccee 设备对象句柄,它应由 CreateDevice 创建。
e
pPara RR4 状态的参数结构体,共有 16 个成员变量,分别对应于 RR4 寄存器的各个状态位。
如果 pPara-> ZIN0 为“1” 则表示外部停止信号 ZIN0 的电平为高电平。其他同理。
返回值:若成功,返回 TRUE ,其 pPara 中的值有效;否则返回 FAL SE ,其 pPara 中的值无效。
十四、设置通用输出和读通用输入
1. BOOL SetOutput (HANDLE hDevice,
L O N G X O u t 1,
L O N G X o u t 0 ,
L O N G Y O u t 1 ,
LONG Yout0)
功能: 设置通用输出电平。
41
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
XOut1 X 轴 OUT1 1: XOUT1 为高电平;0: XOUT0 为低电平。
Xout0 X 轴 OUT0 1:XOUT1 为高电平;0:XOUT0 为低电平。
XOut1 Y 轴 OUT1 1: XOUT1 为高电平;0: YOUT0 为低电平。
XOut1 Y 轴 OUT0 1: XOUT1 为高电平;0: YOUT0 为低电平。
返回值 :若成功,则返回 TRUE, 否则返回 FALSE 。
2. BOOL ReadTYPE (HANDLE hDevice,
LONG AxisNum)
功能: 读通用输入信号电平。
参数: hhDDeevviiccee 设备对象句柄,它应由 CreateDevice 创建。
AxisNum 轴号 (ART1010_XAXIS:X 轴 ,ART1010_YAXIS:Y 轴)。
pPara 通用输出结构体指针。
返回值:若成功,则返回 TRUE, 否则返回 FALSE 。
第五章 硬件参数结构
第一节、公用参数介绍(ART1010_PARA_DataList)
typedef struct _ART1010_PAPA_DataList
{
LONG Multiple; // 倍率 (1~500)
LONG StartSpeed; // 初始速度(1~8000)
LONG DriveSpeed; // 驱动速度(1~8000)
LONG Acceleration; // 加速度(125~1000000)
LONG Deceleration; // 减速度(125~1000000)
LONG AccelerationK; // 加速度变化率(954~62500000)
} ART1010_PARA_DataList, *PART1010_PARA_DataList;
Multiple 倍率 (1~500)。
StartSpeed 初始速度(1~8000)。
DriveSpeed 驱动速度(1~8000)。
Acceleration 加速度(125~1000000)。
Deceleration 减速度(125~1000000)。
AccelerationK 加速度变化率(954~62500000)。
第二节、直线和 S 曲线参数介绍(ART1010_PAPA_LCData)
typedef struct _ART1010_PAPA_LCData
{
LONG AxisNum; // 轴号 (X 轴 | Y 轴 | X、Y 轴)
LONG LV_DV; // 驱动方式 (连续 | 定长 )
LONG Mode; // 脉冲方式 (CW/CCW 方式 | CP/DIR 方式)
LONG Line_Curve; // 运动方式 (直线 | 曲线)
LONG Direction; // 运动方向 (正方向 | 反方向)
LONG nPulseNum; // 定量输出脉冲数(0~268435455)
} ART1010_PARA_LCData, *PART1010_PARA_LCData;
AxisNum 轴号选择,取值如下表:
常量名 常量值 功能定义
ART1010_XAXIS 0x1
X 轴
42
北京阿尔泰科技发展有限公司
ART1010_YAXIS 0x2
ART1010_XYAXIS 0x3
Y 轴
X、 Y 轴
LV_DV 驱动方式选择,取值如下表:
常量名 常量值 功能定义
ART1010_LV 0x0
ART1010_DV 0x1
连续驱动
定长驱动
Mode 脉冲输出方式选择,取值如下表:
常量名 常量值 功能定义
ART1010_CWCCW 0x0
ART1010_CPDIR 0x1
CW/CCW 方式
CP/DIR 方式
Line_Curve 运动方式选择,取值如下表:
常量名 常量值 功能定义
ART1010_LINE 0x0
ART1010_CURVE 0x1
直线运动
S 曲线运动
Direction 运动方向选择,取值如下表:
常量名 常量值 功能定义
ART1010_MDIRECTION 0x0
ART1010_PDIRECTION 0x1
反方向
正方向
nPulseNum 定量输出脉冲数(0~268435455)。
第三节、直线插补和固定线速度直线插补参数介绍(ART1010_PAPA_LineData)
typedef struct _ART1010_PAPA_LineData
{
LONG Line_Curve; // 运动方式 (直线 | 曲线)
LONG ConstantSpeed; // 固定线速度 (不固定线速度 | 固定线速度)
LONG nXAxisPulseNum; // X 轴终点脉冲数 (-8388608~8388607)
LONG nYAxisPulseNum; // Y 轴终点脉冲数 (-8388608~8388607)
} ART1010_PARA_LineData, *PART1010_PARA_LineData;
Line_Curve 运动方式选择,取值如下表:
常量名 常量值 功能定义
ART1010_LINE 0x0
ART1010_CURVE 0x1
ConstantSpeed 固定线速度选择,取值如下表:
常量名 常量值 功能定义
ART1010_NOCONSTAND 0x0
ART1010_CONSTAND 0x1
nXAxisPulseNumX 轴终点脉冲数 (-8388608~8388607)。
nYAxisPulseNumY 轴终点脉冲数 (-8388608~8388607)。
直线运动
S 曲线运动
不固定线速度
固定线速度
第四节、正反方向圆弧插补参数介绍(ART1010_PAPA_CircleData)
typedef struct _ART1010_PAPA_CircleData
{
LONG ConstantSpeed; // 固定线速度 (不固定线速度 | 固定线速度)
LONG XCenter; // X 轴圆心坐标(脉冲数-8388608~8388607)
LONG YCenter; // Y 轴圆心坐标(脉冲数-8388608~8388607)
43
ART1010 WIN2000/XP 驱动程序使用说明书 版本:V6.023
LONG XPulse; // X 轴终点坐标(脉冲数 -8388608~8388607)
LONG YPulse; // Y 轴终点坐标(脉冲数-8388608~8388607)
} ART1010_PARA_CircleData, *PART1010_PARA_CircleData;
ConstantSpeed 固定线速度选择,取值如下表:
常量名 常量值 功能定义
ART1010_NOCONSTAND 0x0
ART1010_CONSTAND 0x1
不固定线速度
固定线速度
XCenter X 轴圆心坐标 (脉冲数 -8388608~8388607)。
YCenterY 轴圆心坐标 (脉冲数 -8388608~8388607)。
XPulseX 轴终点坐标 (脉冲数 -8388608~8388607)。
YPulseY 轴终点坐标 (脉冲数 -8388608~8388607)。
第五节、状态寄存器 RR0 参数介绍(ART1010_PARA_RR0)
typedef struct _ART1010_PARA_RR0
{
UINT XDRV; // X 轴的驱动状态 1:正在输出脉冲 0:停止驱动
UINT YDRV; // Y 轴的驱动状态 1:正在输出脉冲 0:停止驱动
UINT XERROR; // X 轴的出错状态 X轴的 RR2 寄存器的任何一位为 1,此位就为 1
UINT YERROR; // Y 轴的出错状态 Y轴的 RR2 寄存器的任何一位为 1,此位就为 1
UINT IDRV; // 插补驱动状态 1:正处于插补模式 0:未处于插补模式
UINT CNEXT; // 表示可以写入连续插补的下一个数据 1:可以写入 0:不可以写入
// 当设置连续插补中断使能后, CNEXT 为 1 表示产生了中断,在中断程序写入
下一个插补命令后,该位清零并且中断信号回到高电平
UINT ZONE0; // ZONE2、ZONE1、ZONE0 表示在圆弧插补驱动中所在的象限
UINT ZONE1; // 000 :第 0 象限 001:第 1 象限 010:第 2 象限 011:第 3 象限
UINT ZONE2; // 100 :第 4 象限 101:第 5 象限 110:第 6 象限 111:第 7 象限
UINT BPSC0; // BPSC1、BPSC0 表示在位插补驱动中堆栈计数器(SC)的数值
UINT BPSC1; // 00: 0 01: 1 10: 2 11: 3
/ / 设置位插补中断使能后,当 SC 的值由 2 变为 1 时,产生中断,
// 当向位插补堆栈写入新的数据或调用 ART1010_ClearInterruptStatus,中断解
除。
} ART1010_PARA_RR0,*PART1010_PARA_RR0;
第六节、状态寄存器 RR1 参数介绍(ART1010_PARA_RR1)
typedef struct _ART1010_PARA_RR1
{
UINT CMPP; // 表示逻辑/实位计数器和 COMP+ 寄存器的大小关系 1:逻辑/实位计数器
≥ COMP+ 0:逻辑 /实位计数器< COMP+
UINT CMPM; // 表示逻辑/实位计数器和 COMP-寄存器的大小关系 1:逻辑/实位计数器<
COMP- 0:逻辑/实位计数器≥ COMP-
UINT ASND; // 在加/减速驱动中加速时,为 1
UINT CNST; // 在加/减速驱动中定速时,为 1
UINT DSND; // 在加/减速驱动中减速时,为 1
UINT AASND; // 在 S 曲线加/减速驱动中,加速度/减速度增加时,为 1
UINT ACNST; // 在 S 曲线加/减速驱动中,加速度/减速度不变时,为 1
UINT ADSND; // 在 S 曲线加/减速驱动中,加速度/减速度减少时,为 1
UINT STOP0; // 外部停止信号 STOP0 有效使驱动停止时,为 1
UINT STOP1; // 外部停止信号 STOP1 有效使驱动停止时,为 1
UINT LMTP; // 外部正方向限制信号(nLMTP)有效使驱动停止时,为 1
UINT LMTM; // 外部反方向限制信号(nLMTM)有效使驱动停止时,为 1
UINT ALARM; // 外部伺服马达报警信号(nALARM)有效使驱动停止时,为 1
44
北京阿尔泰科技发展有限公司
UINT EMG; // 外部紧急停止信号(EMGN)使驱动停止时,为 1
} ART1010_PARA_RR1,*PART1010_PARA_RR1;
第七节、状态寄存器 RR2 参数介绍(ART1010_PARA_RR2)
typedef struct _ART1010_PARA_RR2
{
UINT SLMTP; // 设置正方向软件限位后,在正方向驱动中,逻辑/实位计数器大于 COMP+寄存
器值时,为 1
UINT SLMTM; // 设置反方向软件限位后,在反方向驱动中,逻辑/实位计数器小于 COMP-寄存
器值时,为 1
UINT HLMTP; // 外部正方向限制信号(nLMTP)处于有效电平时,为 1
UINT HLMTM; // 外部反方向限制信号(nLMTM)处于有效电平时,为 1
UINT ALARM; // 外部伺服马达报警信号(nALARM)设置为有效并处于有效状态时,为 1
UINT EMG; // 外部紧急停止信号处于低电平时,为 1
} ART1010_PARA_RR2,*PART1010_PARA_RR2;
第八节、状态寄存器 RR3 参数介绍(ART1010_PARA_RR3)
typedef struct _ART1010_PARA_RR3
{
UINT XSTOP0; // 外部停止信号 XSTOP0 的电平状态 1:高电平 0:低电平
UINT XSTOP1; // 外部停止信号 XSTOP0 的电平状态 1:高电平 0:低电平
UINT EMG; // 外部紧急停止信号 EMG 的电平状态 1:高电平 0:低电平
UINT XEXPP; // 外部正方向点动输入信号 XEXPP 的电平状态 1:高电平 0:低电平
UINT XEXPM; // 外部反方向点动输入信号 XEXPM 的电平状态 1:高电平 0:低电平
UINT XINPOS; // 外部伺服电机到位信号 XINPOS 的电平状态 1:高电平 0:低电平
UINT XALARM; // 外部伺服马达报警信号 XALARM 的电平状态 1:高电平 0:低电平
UINT XIN0; // 外部输入信号 XIN0 的电平状态 1:高电平 0:低电平
UINT XIN1; // 外部输入信号 XIN1 的电平状态 1:高电平 0:低电平
UINT XLMTP; // 外部正方向限制信号 XLMTP 的电平状态 1:高电平 0:低电平
UINT XLMTM; // 外部反方向限制信号 XLMTM 的电平状态 1:高电平 0:低电平
} ART1010_PARA_RR3,*PART1010_PARA_RR3;
第九节、状态寄存器 RR4 参数介绍(ART1010_PARA_RR4)
typedef struct _ART1010_PARA_RR4
{
UINT YSTOP0; // 外部停止信号 YSTOP0 的电平状态 1:高电平 0:低电平
UINT YSTOP1; // 外部停止信号 YSTOP1 的电平状态 1:高电平 0:低电平
UINT YEXPP; // 外部正方向点动输入信号 YEXPP 的电平状态 1:高电平 0:低电平
UINT YEXPM; // 外部反方向点动输入信号 YEXPM 的电平状态 1:高电平 0:低电平
UINT YINPOS; // 外部伺服电机到位信号 YINPOS 的电平状态 1:高电平 0:低电平
UINT YALARM; // 外部伺服马达报警信号 YA L AR M 的电平状态 1:高电平 0:低电平
UINT YIN0; // 外部输入信号 YIN0 的电平状态 1:高电平 0:低电平
UINT YIN1; // 外部输入信号 YIN1 的电平状态 1:高电平 0:低电平
UINT YLMTP; // 外部正方向限制信号 YLMTP 的电平状态 1:高电平 0:低电平
UINT YLMTM; // 外部反方向限制信号 YLMTM 的电平状态 1:高电平 0:低电平
} ART1010_PARA_RR4,*PART1010_PARA_RR4;
45