Thanks, Jochen, I think contouring may be the solution. But the problem with countouring seems to be that you need to know the trajectory in advance of making the movement. My problem is that the next position only becomes known at the last moment. Ideally I would start the blend for the next position at the very moment I find out what the next position will be. Of course in any real system there will be a delay anyway, but it seems with coutouring there will be more of a delay because I have to load a few positions in advance to make sure the buffer does not run empty. Another problem with countouring seems to be that each axis needs its own buffer (I cannot use a vector space) and therefore I need to make a separate flex_write_buffer call for each axis. So if I
was to use contouring while only loading 1 position at a time (to minimize delay), I would still be making the same number of calls to the controller as I am with the current program. So the overall delay would be the same because the overhead, like you said, is per call.
On the other hand, I might use buffering without using the built-in contouring. I could load the next position for all of the four axes at once into an on-board buffer and then have an on-board program take those positions and blend them. This way I don't have to make separate calls per axis and don't have to worry about the buffer running empty when I'm a little late writing a position. Since I have four axes, it would cut the number of calls to the controller by four but I would transfer more data with each call, thus reducing the firewire overhead. Do you think this might be a way to go?
Even if I get it working this way, it will always bother me why it suddenly started having a delay and why it seems irrev
ersible 🙂 By the way, I am sure SP2 was not installed before.
Thanks,
Meel