我现在在做一个设备,发脉冲给伺服,拖动拖板正反走做追踪。其实就是追剪。
我用12模式去数脉冲输出,作用是得到返回的脉冲数。因为前行是不知道不能预测行程的。高速计数器由初始化启动了之后就一直监视脉冲。只有反向的过渡执行反向计数。没有停止过计数。
高速输出我就用完成中断启动下一次的输出。反向的时候先刷新了方向输出和高计方向,然后下一个周期才开始输出脉冲。这样做无论伺服和高计都应该不丢脉冲的了。停止脉冲之后才换向的。
但是,在机器上的结果是,就仅仅向前的脉冲数产生了错误。发生了三种计算形式有两个结果。
1.我的PLS每次都发10个脉冲。中断完了再发10个。要停止了的话我没有禁止脉冲,只是禁止中断。所以脉冲总数总是跟10有关。
2.高速计数器的12模式。记录的脉冲个数与上面的一致。
3.伺服驱动器查看命令脉冲(和当前位置),有时候与上述一致,有时候比上述脉冲个数多1到20个(都发生过)。
这样的话使得我的机器向前的脉冲多向后的脉冲少。机器一步一步地向前走了。
我试验过用手动程序发脉冲到伺服。就算频率更高也好,都没有发生计算错误。高速计数器的数值跟伺服的数值是一样的。证明线路没有问题。
我的高速计数器是初始化的时候启动的,尽管在自动的第一次向前走,完了之后不回来,检查脉冲数。仍然是高速计数器的比伺服的少了。这样排除了换向时的失误,因为当前没有换向过程。
当然程序里面还有很多其他的事情,一下子说不完的。
我搞了两天整了。一点头绪都没有。只感觉是程序的问题。
有谁可以在旁边给点提示我?需要什么资讯我可以再解释一下的。能找出原因就好了。