不知道 你是一个怎么样的过程?
你是不是想在运动中的改变运动的 终点位置? 这样的话建议你看看pmac的例子
你是用什么方式改变终点位置的?jog?不停分小段的linear?
就论windows定时器的话可以精确到53ms左右。
高精度的定时一般采用下面两个
BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
BOOL QueryPerformanceCounter(LARGE_INTEGER *lpCount);
如果你有dpram可能对你解决问题跟方便一点。
呵呵,你说的这个我也遇到过
你所遇到的问题主要有两种原因造成的:
1. Windows定时不精确。
这个就不用说了,网上一搜就知道了,不过也是可以解决的,比如用Rtx等,定时精度最高可达0.1ms,我已经实现了的。
2. 普通PCI指令通讯速度慢。
这个可能好多人没有意识到,Pmac所带的指令有普通PCI和DPRAM的两种。普通PCI的指令(如SendCommandToPmac等),需要经过Windows的机制,我测过,通讯时间一般在400~500us,如果你在同一个定时周期内使用了多个这种指令,就会有较大的延迟。而使用另外一种——DPRAM,即共享内存方式的,则可以解决这个问题。前提是你买PMAC卡的时候选了OPT-2模块。
当然在使用上还有很多技巧。我做的系统,实时绘图,一秒钟可以绘500个点以上,并且一点都不卡。
若有问题可发邮件与我联系: yjukh # 163.com
这个,我倒没曾遇到过,楼主的问题貌似我以前用某国内牛卡(模拟量闭环卡)做TUNNING时为观察实际速度曲线做的一个小软件遇到的,(因为这个牛卡当时没有配套的TUNNING软件!),刚开始使用5毫秒作为横轴--时间轴--增量,光栅尺读到以后作为纵坐标,这样将一次次采集到的点连起来就是我要的曲线了,可绘出来的曲线是夸张的锯齿波,后来软件研发部的同事告诉我,定时器是不准的,PC想给你干活就给你干活,不想给你干活了几秒钟不动。于是我从他那里学到了这个函数,绘制的曲线平滑多了,基本能反映机台的位置,但还是没有PMAC卡的曲线贴近实际,因为它的位置是卡来采集的,量化周期比较确定。