by cncdrive » Sat Nov 18, 2017 8:53 am
Rob,
I'm not sure where in which thread did we discuss this earlier, but this was discussed some time ago somewhere on this forum, I just can't locate it now,
but it is not possible to make all outputs available as motion syncronous outputs like M62 Px... like how it is mentioned in the document you linked.
The reason why there is maximum only one sync output in motion controllers is because the data is buffered and so it is only possible to make outputs precisely syncronous with the motion buffer is if that output is masked out from all other activity. And so this means that if we want to use all as sync outputs then all outputs have to be masked out which means that the outputs could not be used for anything else than motion sync output functionality and so the whole system would not work anymore.
With a parallel port it is possible to do all outputs motion syncronous because there is no motion buffer in between, but direct access to the port pins.
It should be also noted that doing one syncronous output eats up about the same amount of communication bandwidth and resources as controlling one axis.
So, we could add more dedicated motion syncronous outputs, like adding a second and third etc. outputs, but to make it generic with giving N number of outputs where N equals the number of outputs of the motion controller is not possible, because that would require the resources of controlling N axis which is 36 in case of for example the UC300ETH-5LPT, because it has 36 outputs.
It is also not possible, because the output then has to be masked out prior to a sync switch command occuring, in other words the controller has to know before the command occurs that it will occur which is also not possible to implement.
I think adding a 2nd and even a 3rd sync output could be done just like it is done with the laser sync output with preconfiguring a port/pin number for the output, I mean then those additional pins configured could be masked out just like the laser pin now and it would probably not require excessive amount of resources if talking about the ethernet controllers. For the USB controller the 1 sync output is already too much, the C axis already has to be turned off in the USB controllers if the sync output is used, because there is already not enough data bandwidth to throughput the 6 axis data + 1 sync output data.