PCI9112DJ6说明书文档格式.docx
《PCI9112DJ6说明书文档格式.docx》由会员分享,可在线阅读,更多相关《PCI9112DJ6说明书文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
首先下图列出工程界面。
图6上图中,除红圈圈出的文件外,其他的文件都是自动生成的。
Dask.h文件可在1.2节图3中的Include文件夹中找到,可将其先拷入工程中再添加入HeaderFiles。
Dask.h中详细列出了所有对PCI9112操作的接口函数。
为了便于管理,工程中还有两个文件名为Function.h和Function.cpp,下节将逐一介绍里面函数的功能。
2、2、2函数功能说明及接口函数说明函数功能说明及接口函数说明1、voidInitPci(void)PCI9112的初始化,包括如下接口函数:
Register_Card():
注册PCI9112卡。
返回值为0,否则报错。
AO_9112_Config():
9112卡模拟输出初始化。
返回值0,否则报错。
AI_9112_Config():
9112卡模拟输入初始化。
2、voidZMove(double)功能:
直流电机转动函数,输入不同的值。
点击会向不同方向转动,接口函数:
AO_WriteChannel():
驱动直流电机转动函数。
可由它计算出电压值。
3、doubleReturnS(void)功能:
反馈当前位置函数,需和定时器配合使用。
接口函数:
AI_VReadChannel():
返回当前位置的电压值。
4、longGetPortValue(void)功能:
获得9112卡数字输入的值,16位。
DI_ReadPort():
返回16位数字输入值。
5、voidWritePort(long)功能:
9112卡向DJ6实验机输出数字量,16位。
可控制步进电机报警蜂鸣器,接口函数:
DO_WritePort():
输出16位数字量。
6、intStartIrqThread(HWNDhWnd)功能:
创建一个线程。
7、intStopIrqThread()功能:
结束一个线程。
8、UINTThreadDoing(LPVOIDpParam)功能:
线程处理函数。
注:
6、7、8有关线程的操作及用途将在之后讲述。
9、intGetcount()功能:
获得电机测速光敏管的计数脉冲信号,可实现反馈电机转速的功能。
2、2、3各项功能实现介绍各项功能实现介绍此实验通过DJ6的机电平台控制接口实现了直流电机和步进电机的运动,并具有报警和反馈位置速度的功能。
下面介绍实现过程。
请注意:
读者必须先了解DJ6实验机特别是其机电平台接口定义后方能进行开发!
1、直流电机运动在PCI9112_DJ6中可有两种方式实现直流电机的运动:
输入速度和按键移动。
输入速度就是将输入的值经转化后传入Function的ZMove()函数,通过接口函数AO_VWriteChannel()计算出电压值,大于2.5V的右转,小于2.5V的左转,等于2.5V的理论上停止不动。
按键移动就是已经定义了一个固定的值,通过按“左移”键和“右移”键直接操作直流电机。
原理和输入速度操作雷同。
2、步进电机运动步进电机运动的实现方法是先输入一个速度值,然后按左右移动键便可移动。
具体过程如下:
当输入速度并按移动键后,程序将会开启一个1Ms的定时器,因为本实验驱动步进电机采用四相八拍(在程序中可看见初始化步进电机正反转的参数,分别为:
正转:
0xff1c,0xff3c,0xff2c,0xff6c,0xff4c,0xffcc,0xff8c,0xff9c反转:
0xff9c,0xff8c,0xffcc,0xff4c,0xff6c,0xff2c,0xff3c,0xff1c),若不开定时器,程序将会在操作步进电机运动时锁死在八拍内而不能进行其他操作,而VC+6.0提供的定时器最小间隔为100ms,经验证间隔时间太久而无法驱动步进电机,所以采用1ms定时器侦听步进电机的操作。
在程序中,可看见Stop_Timer_ms()和Start_Timer_ms(v)两个函数,分别是关定时器和开定时器,而在开定时器时,顺便传入速度参数。
另外,有一个voidPASCALTimeProc()函数,为1ms定时器处理函数,利用它调用正转和反转函数OneOfEight(),使步进电机工作。
过程比较复杂,具体可参见Demo程序的PCI9112_DJ6Dlg.cpp中的相关代码。
3、位置反馈位置反馈就是接收DJ6平台接口的D/A的值(DJ6实验的相关说明可见DJ6说明书),因为在移动过程中,位置是不断变化的,所以应该在定时器中不断反馈当前位置。
在PCI9112_DJ6Dlg.cpp的OnTimer()中,可以看见调用ReturnS的语句,其返回值便是当前位置的伏特值。
4、报警当电机的运动超出所定义的范围,便需要停机报警,DJ6实验机在左右限位处设置了限位光敏管,当电机到达限位处时会有相应低电平产生,那么,在程序中只需接收此电平并作相应处理便可实现报警功能。
因为报警也是实时的,所以也应在计数器中实现,具体做法是:
在OnTimer()函数中实时接收数字输入量,当到达限位时,数字量会有变化,此时调用Alarm()函数判断是哪个限位报警,再停机作相应处理。
在直流电机报警时,所有按键将会无效,此时应先消除报警,再进行其他操作。
而在步进电机报警时,左限位报警将屏蔽右移键,右限位报警屏蔽左移键,此时应先按未屏蔽的按钮,再消除报警。
在此过程中,可能会再次报警,因为可能一次还未移出光敏管报警区,可以重复多做几次。
5、速度反馈速度反馈的原理是通过接收与电机相连的测速光敏管的脉冲信号,计数计算出转速(单位:
转/秒),因为转速也是实时的,所以要在定时器中实现。
在OnTimer()函数中,调用GetCount()获得脉冲数。
而对脉冲数的采集,本实验采用开线程的方法,线程的相关函数可参见2.2.2,下面详述速度反馈实现过程:
当按键式电机转动时,启动线程,线程处理函数UINTThreadDoing()调用接口函数DI_ReadPort()获得数据值,并在线程内与之前的数比较,若有变化(即测速光敏管有脉冲变化),则计数器加一。
与此同时在OnTimer()函数内,一定间隔时间内调用GetCount()函数获得脉冲数,并经过计算得出转速值。
具体代码可见Demo程序。
下图为本实验主要部分的图示附录、附录、DJ6实验机的相关说明实验机的相关说明一一工作原理工作原理1选择开关使用选择开关确定当前为直流电机工作还是步进电机工作,或处于停机状态。
停机状态并不是断电状态,所以平台较长时间不操作,请拔掉电源插头,以减少发热,提高机器寿命。
2传动部分如图附1所示。
直流电机和步进电机通过橡胶传动带而联动。
步进电机的轴同时连接蜗杆传动减速机构,再通过齿轮和皮带部分,将电机的圆周运动转换成皮带的水平运动。
3指示部分皮带水平运动的位移量用指针和刻度尺来量化表示。
刻度尺分为16大格,每大格长度为1厘米;
每大格分为10小格,每小格长度为1毫米。
皮带移动同时带动右端的一只多圈线绕电位器转动,通过改变电位器的接入阻值而改变反馈回的电压值,并送入控制接口插座的IN0脚。
该反馈电压值可用于计算当前的位移量。
皮带在16大格的行程范围内,位置反馈电压值在04.8V范围内线性变化。
用户可以通过该电压值来计算或控制指针的当前位置。
步进电机轴上圆盘的角度刻度和面板上的定位箭头配合使用可以定量地表示电机的角位移量。
4限位和断位机构为了防止指针移出正常工作范围,造成皮带机构卡死或损坏,皮带的两端设有左右限位和断位机构。
当指针到达左右限位或断位光敏管位置时,光敏管将产生左右限位或断位信号(低电平有效)。
机构产生的断位信号为平台控制电路使用。
断位信号有效时,平台控制电路将强行切断电机的输出并点亮故障指示灯,启动故障蜂鸣器报警。
这时,只能使用左移或右移键将指针移回正常工作范围,电机才会再次启动。
机构产生的左右限位信号分别送入控制接口的PI0和PI2口,并将左右限位信号的逻辑“与”结果送入控制接口PI6。
用户可以灵活使用这几个信号来控制电机的行为。
5测速部分直流电机的轴连接一个测速圆盘(栅格盘),配合测速光敏管,根据电机的转速,产生一定频率的脉冲信号。
该脉冲信号被送入控制接口插座的PI4脚,可采集用于计算电机的转速。
平台选用的直流伺服测速电机本身带有测速功能,可根据电机的转速,产生一定的电压信号。
该电压信号被送入控制接口插座的IN1脚。
用户也可使用这一电压信号来计算电机的转速。
图附16控制部分如图附2所示图附2直流伺服测速电机部分正常状况下,由实验机D/A转换器0832送出05V的模拟信号,经功率放大器放大输出为+12-12V电压,加在直流电机两端,驱动直流电机。
经一系列传动,带动指针左右移动,同时还带动多圈线绕电位器,使之输出端(送回实验机A/D)的电压同步变化。
当D/A转换器输出为0V时,功放将输出+12V,直流电机以最大速度转动,带动指针以最快的速度左移;
当D/A转换器输出逐步增加时,功放输出逐渐减小,直流电机转速减小,指针左移速度变慢;
当D/A转换器输出为2.5V时,直流电机(理论上)停转,指针停止移动;
当D/A转换器输出逐渐增加,功放输出负电压,直流电机开始反向转动,指针右移(0V对应+12V,电机正转,指针左移;
2.5V对应0V,电机停转,指针静止;
5V对应-12V,电机反转,指针右移)。
步进电机(四相)部分正常状态下,控制芯片(内部固化了控制程序)接收上位机(实验机)传来的步进脉冲经缓冲驱动后输出给步进电机。
当检测到急停、左移、右移、左断位、右断位信号时,控制芯片中的控制程序将作用,控制步进电机分别作出相应的处理。
步进电机的速度可以由调节脉冲宽度控制(为保证均匀,建议使用定时器中断发出步进脉冲),步进电机正转时应送出的脉冲顺序(以四相八拍为例)为:
AABBBCCCDDDAA。
按键部分“左移”、“右移”按键按下时,当前工作的电机(由选择开关确定),将强制执行左移和右移。
用户可使用这两个按键调整指针的位置。
如前所述,当指针到达断位光敏管位置时,将由硬件强行使电机停转,同时故障报警。
而此时,只有用左、右移位键才能将指针移动,且右断位时只有左移键有效,左断位时只有右移键有效。
“急停”按键按下后,当前工作电机将强制停转,同时点亮报警指示灯(但蜂鸣器并不鸣叫,以此与PO4信号置低相区别)。
此时,“左移”“右移”按钮仍有效。
再次按下“急停”按键,则解除急停状态,报警指示灯熄灭,电机恢复原工作状态。
I/O信号部分如图附3所示:
图附3实验机上控制接口的D/A已接至D/A转换模块0832的输出VOUT脚。
D/A:
为直流电机驱动电压输入端,输入电压范围为0+5V。
实验机上控制接口的IN0、IN1已接至A/D转换模块0809的IN0和IN1脚。
IN0:
为多圈线绕电位器中心抽头电压输出,可采样计算当前指针的位置。
正常工作电压范围为0+4.8V。
IN1:
为直流电机测速机构反馈电压输出,可采样计算当前电机的转速。
输出电压范围为-12V+12V。
实验机上控制接口的PI0PI6已接至扩展并行输入模块244的PI0PI6。
PI0:
左限位信号,当指针移到左端限位光敏管处时有效。
低电平有效。
PI2:
右限位信号,当指针移到右端限位光敏管处时有效。
PI4:
测速光敏管产生的计数脉冲信号,用户可采集用以计算电机的转速。
PI6:
为左限位信号和右限位信号经逻辑“与”操作的结果信号,低电平有效。
可将PI6脚信号引入中断或查询PI6脚状态来判断限位信号产生,再通过读入PI0和PI2来区分左右限位,用于实际编程。
实验机上控制接口PO4、PO6已接至扩展并行输出模块273的PO4和PO6。
PO4:
向此脚输出高电平可点亮报警指示灯并激发蜂鸣器报警,提供给编程者使用。
PO6:
向此脚输出高电平,可立即切断直流电机的驱动电压。
用户可以用此脚信号,控制直流电机急停。
此脚电平对步进电机无影响。
实验机上控制接口A、B、C、D已接至步进电机驱动模块的输出A、B、C、D。
A、B、C、D:
为四相步进电机驱动信号输入端。
用户可以通过编程产生步进码,送入此四脚来控制步进电机的运转。
GND:
为电源地。
+5V、+12V:
为电源电压引出脚。
其通断由控制板电源引出开关控制。
对于各型实验机,我们均可提供专用连接电缆,方便用户使用。
7调节部分位于平台面板的右部,由零位调节(上)和满度调节(下)两个微调电位器组成。
零位调节用于调节指针处于零刻度线时,IN0返回的位置反馈电压值,标准值应为0V。
满度调节用于调节指针处于满刻度(16)线时,IN0返回的位置反馈电压值,标准值应为+4.8V。
为了保证实验的精度,在使用一段时间后,用户应及时校准零度值和满度值。
8控制板电源引出开关DJ6机电平台使用自带电源。
控制板电源引出开关的四位拨动开关拨到“ON”的位置,则机电平台的电源电压+5V、+12V通过25芯接口的12、22和13脚引出,向外部电路供电(如专用测试板或U51E用户板)。
由于实验机使用单独电源供电,当和DJ6机电平台连接时,应将控制板电源引出开关的四位拨动开关拨到“OFF”的位置。
出厂时,控制板电源引出开关的四位拨动开关的位置为“OFF”。
二二平台出厂状态平台出厂状态1选择开关处于停机状态。
2控制板电源引出开关的四位拨动开关的位置为“OFF”。