PCI1010运动控制卡软件使用说明书.docx
- 文档编号:18005284
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:81
- 大小:249.49KB
PCI1010运动控制卡软件使用说明书.docx
《PCI1010运动控制卡软件使用说明书.docx》由会员分享,可在线阅读,更多相关《PCI1010运动控制卡软件使用说明书.docx(81页珍藏版)》请在冰豆网上搜索。
PCI1010运动控制卡软件使用说明书
PCI1010运动控制卡
软件使用说明书
北京阿尔泰科技发展有限公司
一.概述3
二.PCI1010的功能和相关技术说明4
2.1 定量驱动和连续驱动4
2.1.1定量脉冲输出驱动4
2.1.2连续脉冲驱动输出5
2.2速度曲线6
2.2.1定速驱动6
2.2.2直线加/减速驱动6
2.2.3S曲线加/减速驱动7
2.2.4脉冲宽度和速度的精度8
2.3位置管理9
2.3.1逻辑位置计数器和实际位置计数器9
2.3.2比较寄存器和软件限位9
2.4插补9
2.4.1直线插补9
2.4.2圆弧插补10
2.4.3固定线速度10
2.4.4位模式插补11
2.4.5连续插补12
2.4.6加减速驱动的插补12
2.5其它功能13
2.5.1外部信号控制的驱动操作13
2.5.2硬件限位(nLMTP(M))14
2.5.3伺服电机报警信号(nALARM)14
2.5.4伺服电机到位信号(nINPOS)14
2.5.5紧急停止14
2.5.6脉冲输出类型14
三.库函数驱动程序的使用说明15
3.1函数调用举例(vc)说明15
3.1.1使用PCI1010_Set_DV,PCI1010_Start_DV定长脉冲驱动函数启动电机15
3.1.2使用PCI1010_Set_LV,PCI1010_Start_LV连续脉冲驱动函数启动电机16
3.1.3使用PCI1010_Start_2D函数,启动两轴同时驱动16
3.1.4使用PCI1010_LINEInterpolation函数,启动两轴直线插补驱动17
3.1.5使用PCI1010_CWInterpolation函数,启动两轴正方向圆弧插补驱动18
3.1.6外部信号控制的驱动函数18
3.1.7设置外部越限信号有效及停止方式19
3.1.8设置伺服马达输出到位有效19
3.1.9位插补例子20
3.1.10连续插例子21
3.1.11实际位置计数器例子22
3.1.12RR寄存器22
四.驱动函数库24
4.1驱动函数库函数列表24
4.2驱动函数库说明26
五.保修36
六.产品成套单36
一.概述
PCI1010是PCI总线两轴伺服/步进电机运动控制卡,它以高频率脉冲串形式输出,控制伺服/步进电机的运动。
该卡能精确地控制所发出的脉冲频率(电机速度)、脉冲个数(电机转角)及脉冲频率变化率(电机加速度),它能满足步进电机的各种复杂的控制要求。
可对电机进行位置控制、插补驱动、加速/减速等控制。
具有圆弧、直线插补功能。
它含有丰富的,功能齐全的软件库函数资源。
在Windows9X/2000/XP环境下,用户可直接使用我们为您提供的设备驱动程序函数接口;以最大方便地使您在VisualC++、VisualBasic及各种其他软件环境中使用本设备。
以下是它的功能特点。
■独立2轴驱动
PCI1010可以分别控制2个马达驱动轴的运动。
每个轴都可以进行定速驱动,直线加/减速驱动,S曲线加/减速驱动等。
2轴性能相同。
■速度控制
输出的驱动速度范围是从1PPS到4MPPS(pulsespersecond脉冲/秒)。
可以运行固定速度驱动,直线加/减速驱动,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个32位位置寄存器,一个是在芯片内部管理驱动脉冲输出的逻辑位置计数器。
另一个是管理从外部编码器来的脉冲的实际位置计数器。
■比较寄存器和软件限制功能
每个轴都有2个32位比较寄存器(COMP+,COMP-),用于跟逻辑位置计数器或者实际位置计数器的大小比较。
在驱动时,可以从状态寄存器读出比较寄存器和逻辑/实际位置计数器之间的大小关系。
大小关系有变化时,可以产生中断(但要设定中断有效)。
■输入信号滤波器
PCI1010内部的每一个输入信号的输入端都装备积分型的滤波器。
可以设定哪一个输入信号的滤波器功能变为有效或无效。
滤波器的时间常数从8个种类里选择1个。
■由外部信号驱动
每个轴都可以用外部信号(nEXPP,nEXPM)进行+/-方向运行的定量驱动和连续驱动。
这个功能在手动操作时,可以减轻CPU的负担。
■伺服马达的各种信号
PCI1010接受来自伺服马达驱动器的信号。
如2相编码器信号,定位信号,报警信号等。
■实时监控功能
在驱动中,可以实时读出逻辑位置计数器、实际位置计数器、加速度、加/减速状态(加速中、定速中、减速中)。
二.PCI1010的功能和相关技术说明
2.1 定量驱动和连续驱动
各轴的驱动脉冲输出一般使用正方向或负方向的定量驱动命令或者连续驱动命令。
2.1.1定量脉冲输出驱动
定量脉冲驱动是以固定速度或加/减速度输出指定数量的脉冲。
需要移动到确定的位置或进行确定的动作时,使用此功能。
加/减速定量驱动如图2.1.1 所示,输出脉冲的剩余数比加速累计的脉冲数少时就开始减速,输出指定的脉冲数后,驱动也结束。
进行加/减速的定量驱动,需要设定下列参数:
●倍率Multiple
●加/减速度Acceleration
●初始速度StartRate
●驱动速度DriveRate
●输出脉冲数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在降速段增加脉冲数
速度
驱动速度
改变输出脉冲数
初始速度
0
时间
图2.1.4减少脉冲数
■加/减速驱动的缓冲值设置
用户在定长脉冲驱动情况下可以改变加/减速点,如图2.1.1所示。
PCI1010将自动地计算出加/减速点,并且使加速段的脉冲数等于减速段的脉冲数。
当为减速设置缓冲值(shiftpulses)时,PCI1010将会因为缓冲值提前开始减速。
减速完成后剩余的脉冲数(shiftpulses)将会以初始速度输出,如图2.1.5。
PCI1010初始化时,缓冲脉冲数(shiftpulses)的默认值为8。
在直线加/减速定长脉冲驱动时并不需要改变缓冲脉冲数。
S曲线加/减速定量驱动中,如果驱动完毕速度降不到初始速度的话,要把加速计数器偏移值设定为适当的数值,以修正它的速度。
速度
驱动速度缓冲脉冲
初始速度
时间
图2.1.5定长方式下的缓冲脉冲
2.1.2连续脉冲驱动输出
当将PCI1010卡的脉冲输出模式设置为连续驱动状态时,PCI1010将一直以特定的速度驱动脉冲输出直至接收到停止命令或是外部停止信号,如图2.1.6所示。
速度
驱动速度
外部停止信号
初始速度
图2.1.6连续脉冲驱动时间
可用”减速至停DecStop”和”立即停止InstStop”等函数中断连续驱动脉冲;也可由外部信号使其制动。
2.2速度曲线
各轴的驱动脉冲输出一般使用正/负方向的定量驱动或连续驱动命令。
此外,以设定模式或设定参数来产生定速、直线加/减速、S曲线加/减速的速度曲线。
2.2.1定速驱动
定速驱动就是以一成不变的速度输出驱动脉冲。
如果设定驱动速度小于初始速度,就没有加/减速驱动,而是定速驱动。
使用搜寻原点、编码器Z相等信号时,找到信号后马上要立即停止的话,不必进行加/减速驱动,而是一开始就运行低速的定速驱动。
如图2.2.1。
为了定速驱动,需要设定下列参数:
●倍率Multiple
●加/减速度Acceleration
●初始速度StartRate
●驱动速度DriveRate
○输出脉冲数nPulseNum
■设定参数例子
设定1000PPS运行定速驱动
倍率Multiple=1;
初始速度StartRate=1000;
驱动速度DriveRate=1000;
速度
初始速度
驱动速度
时间
图2.2.1恒速驱动
2.2.2直线加/减速驱动
直性加/减速驱动是线性地从驱动开始的初始速度加速到指定的驱动速度。
定量驱动时,由于加速的计数器记录加速所累计的脉冲数。
当剩余输出脉冲数少于加速脉冲后就开始减速(自动减速)。
减速时如果不设定减速度的值则用加速度的值。
当在加速驱动过程中出现减速指令,或在定量脉冲驱动中输出脉冲数少于加速至驱动速度所要的脉冲数,则PCI1010将在加速阶段便开始减速,如图2.2.2所示。
通常,加速脉冲数和减速脉冲数是相等的。
但是,当使用手动减速时(HandDec)则就不同了。
速度
减速
运行速度
加速
初始速度太小无法
初始速度达到运行速度
时间
图2.2.2直线加/减速
为了直线加/减速驱动,下列参数需预先设定。
○记号:
需要设定时设定。
●倍率Multiple
●加速度Acceleration
○减速度Deceleration
●初始速度StartRate
●驱动速度DriveRate
○输出脉冲数nPulseNum;定量驱动时使用
●如图2.2.3,从实际初始速度500PPS加速至15000PPS,时间为0.3S(秒)
则输出频率的倍数Multiple=2(初始化后默认值为M=1)
初始速度StartRate=500PPS/M=250PPS
驱动速度DriveRate=15000PPS/M=7500PPS
加速度Acceleration=[(15000-500)PPS/0.3S]/M=24167PPS/S
速度15000
500
00.3S时间
图2.2.3定长脉冲驱动模式
如图2.2.4,从实际初始速度500PPS加速至15000PPS,时间为0.3S(秒)则
最高输出频率的倍数Multiple=2(初始化后默认值为M=1)
初始速度StartRate=500PPS/M=250PPS
驱动速度DriveRate=15000PPS/M=7500PPS
加速度Acceleration=[(15000-500)PPS/0.3S]/M=24167PPS/S
减速度Deceleration=[(15000-500)PPS/0.1S]/M=72500PPS/S
速度
15000
500
0
0.3S0.1S时间
图2.2.4定长脉冲驱动模式加/减速度不同
2.2.3S曲线加/减速驱动
驱动速度加/减速时,PCI1010线性地增加/减少加速度/减速度,以产生S型速度曲线。
S曲线加/减速驱动如图4.5.3所示。
驱动开始加速时,加速度以指定的加速度的增加率(AccelerationAK)从0线性增加到指定的加速度值(Acceleration),因此,这个速度曲线成为二次抛物线(a区间)。
加速度达到指定数值(Acceleration)后保持此数值。
这时速度曲线是直线型的,速度在加速中(b区间)。
目标速度及驱动速度和当前速度的差值比相应时间增加所增加的速度少时,加速度趋向0。
当减速时和加速时一样,减速度以指定的增加率(AccelerationAK)增大到减速度值,然后减速度保持一段时间不变,最后减速度减少直到0。
这样具有部分固定加速度的加速为部分S曲线。
另一方面,在a区间若在加速度达到指定数值(Acceleration)前,目标速度(DriveRate)和当前速度的差值比相应时间增加所增加的速度少时,b区间就消失,只有a和c区间。
这种没有固定加速度的加速称为完全S曲线加速。
图4.5.3S曲线加减速驱动
要执行S曲线加/减速,需要设定下列参数。
●倍率Multiple
●加速度/减速度的变化率AccelerationAK
●加速度Acceleration
○减速度Deceleration;分别设定加/减速度时,此为减速度指定数值
●
初始速度StartRate
●驱动速度DriveRate
○输出脉冲数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,加速度的增加率是(AccelerationAK)200K/0.2=1,000KPPS/SEC2。
运行完全S曲线加/减速时,速度取决于加/减速度的变化率,所以为了避免产生部分S曲线,加/减速度要设定200KPPS/SEC以上的数值。
●倍率Multiple=10;
●加/减速度的增加/减少率AccelerationAK=100,000;100,000×10(倍率)=1000K
●加速度Acceleration=20,000;20,000×10(倍率)=200K
●初始速度StartRate=100;100×10=1000
●驱动速度DriveRate=4000;4000×10=40,000
2.2.4脉冲宽度和速度的精度
■驱动脉冲的脉冲比率
对于各轴正/负方向上的驱动脉冲,由驱动速度决定的脉冲周期时间有±1SCLK(CLK=16MHz时为±125nSEC)的误差,并且基本上分布在高电平50%和低电平50%。
举例如下图所示,设定倍率为1,驱动速度1000PPS,驱动脉冲输出高电平宽度=500μS,低电平宽度=500μS,周期=1.0mS
Multiple=1
StartRate=1000PPS
DriveRate=1000PPS500μS500μS
1.00ms
当处于加速时,低电平脉冲长度小于高电平脉冲长度;驱动速度将会提高
反之,当处于减速时,低电平脉冲长度大于高电平脉冲长度;驱动速度将会降低。
加速区匀速区减速区
THATLATHCTLCTHDTLD
THA>TLATHC=TLCTHD 图2.2.5加/减速过程中脉冲宽度的比较 ■驱动速度精度 因为PCI1010的CLK时钟为16MHz,产生驱动脉冲的电路是由IC内SCLK来驱动的。 SCLK由时钟信号CLK2分频而得。 若CLK输入是标准的16MHz,SCLK就是8MHz.要产生某个频率的驱动脉冲,并且是没有抖动的均匀频率驱动脉冲,它的频率周期只能是下图所示SCLK周期的整数倍。 PCI1010初始化后,最高速度(输出脉冲频率)默认值为8K。 驱动速度越高,精度越低。 即使是驱动速度很高,PCI1010仍就能保持相对的精度;驱动脉冲的精度仍在±0.1之内。 不会影响驱动电机的工作状态,因为这个误差是会被电机系统的惯性吸收的。 最高输出脉冲频率可以通过SetM函数设置,默认值M=1,默认最高输出脉冲频率8K 倍数M 最高输出频率/PPS 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的数值变化而变化 2.3位置管理 2.3.1逻辑位置计数器和实际位置计数器 PCI1010对每一个轴都有一个逻辑位置计数器和实际位置计数器。 逻辑位置计数器计数是计数PCI1010卡发出的正/负方向输出脉冲。 当发出一个正向脉冲时,计数器将自动加1,当发出一个负向脉冲时,计数器将自动减1。 实位计数器计数来自外部编码器的输入脉冲,输入信号可以设定为2相脉冲输入或上/下脉冲输入。 ■2相脉冲输入模式 当设定为2相脉冲输入后,按正逻辑当A相超前时向上计数,当B相超前就向下计数。 由2个信号的上升沿和下降沿进行向上/下计数。 nECA nECB 往上上计数往下计数 ■下脉冲输入模式 nECA作为向上计数输入,nECB作为向下计数输入,由脉冲的上升沿计数。 nECA nECB 往上计数往下计数 PCI1010可以在任何时候写入或读出2个计数器的数据,我们提供了PCI1010_ReadLP,PCI1010_ReadEP函数分别读出逻辑计数器和实位计数器的值。 计数范围在-2,147,483,648~+2,147,483,647之间。 2.3.2比较寄存器和软件限位 PCI1010对每一个轴都有2个32位寄存器(上下限位寄存器COMP+,COMP-)用来与逻辑位置计数器或实际位置计数器进行比较。 把2个比较寄存器的比较对象设定为逻辑计数器还是实位计数器,可由函数指定,COMP+寄存器主要用来检测逻辑/实位计数器计数的上限。 当逻辑/实位计数器的值大于COMP+寄存器的值时,PCI1010的RR1寄存器的D0位就置1。 另一方面,COMP-寄存器用来检测逻辑/实位计数器某个范围的下限。 当逻辑/实位计数器数值小于COMP-寄存器的数值时,RR1寄存器的D1位就置1。 可以把COMP+寄存器和COMP—寄存器用于正/负方向的软件限制来运行。 我们提供PCI1010_SetCPP(hDevice,AxisNum,Direction,Data)函数供选择是逻辑寄存器还是实位寄存器,并设定正方向软件限位有效,在驱动中,如果逻辑/实位计数器的值大于COMP+的值就执行减速停止,并且RR2寄存器的D0为1;PCI1010_SetCPM(hDevice,AxisNum,Direction,Data)用于设定反方向软件限位,并选择是逻辑寄存器还是实位寄存器,当执行负方向驱动命令并且逻辑/实位计数器的值小于COPM+寄存器后,就会清除这个状态。 同样情况适应于负方向的COMP—。 可以在任何时候调用PCI1010_SetCPP,PCI1010_SetCPM写COMP+寄存器和COMP—寄存器。 复位时寄存器的值是任意的。 图2.3.1软件限位停机 2.4插补 PCI1010可实现2轴的直线插补,圆弧插补。 插补运动是指2轴按照一定的算法进行联动,被控轴同时启动,并同时到达目标位置。 对于直线插补,圆弧插补,最大驱动速度为4MPPS。 插补驱动时,每个驱动轴都能进行硬件限制和软件限制。 在插补驱动中任何轴的限制有效,PCI1010停止插补。 但是,在圆弧插补时,硬件或软件的信号将不会中断插补驱动。 在插补中,最长的移动距离的轴为”长轴”,另外一个轴为”短轴”。 ”长轴”输出一个均匀的脉冲序列,而”短轴”的驱动脉冲依赖于”长轴”和2轴之间的关系,有时候输出脉冲,有时候不输出脉冲。 2.4.1直线插补 X,Y2轴的直线插补,从当前位置到相对位置(X: +20,Y: +100)如下图所示,从当前坐标执行直线插补,终点坐标由针对当前位置的相对数值设定。 精确设定每个轴的输出脉冲数。 在每个轴独立运行时,输出脉冲数设定为没有符号的数值。 但是,在插补驱动时,用相对数值设定当前位置的终点坐标。 如下图所示,对指定直线的位置的位置精度,在整个插补范围内有±0.5LSB。 下图是直线插补驱动脉冲输出例子,在设定的终点数值中绝对值最大的是长轴。 在插补驱动中,此轴一直输出脉冲,其它的轴是短轴,根据直线插补算术的结果,有时候输出脉冲,有时不输出脉冲。 直线插补的坐标范围是带符号的24位字长。 插补范围为从各轴当前位置到-8,388,607~+8,388,607之间(注意: 不能设定-8,388,608) XPP YPP 10 ±0.5LSB 0 20 2.4.2圆弧插补 圆弧插补从当前位置开始,根据所指定的圆心和终点位置以及插补的方向(按顺时针或逆时针)来进行。 坐标设定值是对当前坐标(始点)的相对值(并且是脉冲数)。 图2.4.1 说明了顺时针和逆时针插补的定义。 ”长轴”定义为X轴. 逆时针 顺时针 图2.4.1 2.4.3固定线速度 固定线速度控制是始终保持插补轴以合成速度运行的功能。 及如果设定初始速度是1000PSS,驱动速度是1000PPS,则插补时的合成速度始终是1000PPS。 例如设定插补终点为(20,10),初始速度1000PPS,驱动速度1000PPS,脉冲输出如下图所示 1.000ms1.414ms1.000m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PCI1010 运动 控制 软件 使用 说明书