Closed Huijuan-Xu closed 1 year ago
Why was the MCS2CreateAxis
function added? No additional information is being passed to driver though it, but everyone who uses the MCS2 support would need to modify their IOC's config to add MCS2CreateAxis
calls for every axis.
We have a MCS2 controller which supports up to 12 axes while only 6 axes are connected to the test stage. With the original EPICS support, we found that the stage doesn’t respond immediately after the moving command sends out. Debugging the code, the MCS2CreateController() only works well with all channels fully occupied. When there’s a channel without stage/motor connected, the delay increases. That's why the MCS2CreateAxis function was added.
Kevin Peterson notifications@github.com 于2021年2月24日周三 下午12:46写道:
Why was the MCS2CreateAxis function added? No additional information is being passed to driver though it, but everyone who uses the MCS2 support would need to modify their IOC's config to add MCS2CreateAxis calls for every axis.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/epics-motor/motorSmarAct/pull/8#issuecomment-785254766, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKJ7PD3HZV5JAG7U7XPMMW3TAU3ONANCNFSM4YE5W6LQ .
@MarkRivers, do you have thoughts on how motor drivers should handle unused channels between used channels? I can't think of any that handle it gracefully.
One option would be to add an UnusedMask argument to the constructor. It would be a bit mask where 1 means an axis is not used. If it were added as a final argument then startup scripts would not need to be modified because it would default to 0, and that means there are no unused axes.
For example, for an 8 axis controller UnusedMask = 0x30 means axes 4 and 5 are unused, 0-3, 6, and 7 are used.
unused mask bit is added as advised
Add MCS2CreateAxis and Cal/Ref/MCL frequency readback