恭喜,你发布的帖子
发布于 2021-03-02 17:15:07
3楼
第一,从更新速度这个msg的Done开始做一些事情。
第二,看驱动的接收指令的时序逻辑,什么时候收到通知,多久才作出什么反应。这个可能会有写。
第三,请看第一。去做第二要求的事。
第四,再次看第二的类似情况,运动已经执行了多久可以刷新指令速度和指令位置,然后下一次就尽可能在这个时间(没等当前运动完毕)就更新下一次的速度和位置(因为这个更新已经不影响当前运动了)。
程序我就不看了。原理上是这样配合时间的。如果说明书没有说明这些情况,那么……这些配合的时间就只能猜了。
有一些驱动器,通讯完毕后会有一些标志,例如(我说例如啊,具体我不清楚)你要改变方向,那么方向位你可以读取一次。原来是0,你写成1,然后读一次真的是1了,那么就接着发运动指令。
有一些驱动器就有一个“可以接收指令”的位,你读得这个位可以了,你就继续发指令。特别是很短的连续运动的情况,下位机处理数据要3个时间单位但是运动就1个时间单位就走完了。此时就要凭这个位,发下一个运动。
总的来说,这个要看驱动的说明。否则就要等一个很安全的时间,这样会很浪费时间。
请填写推广理由:
分享
只看
楼主