We are using LMC078 motion controller from Schneider electric in our project to control 12 motors simultaneously. Softmotion encoder will act as master for all the axis.
We are using soMachine software which uses codesys for programming the controller.
We created softMotion encoder under IME_EncIn in device tree and created a logic drive under that. Please see the image. Also find the logical encoder page.
In our motion sequence, we enable camming between logical encoder master axis and a physical axis. In the sequence encoder master will move forward, will reset the master axis position via MC_SetPosition.(We tried using MC_Home function block, but that was not working). We are setting the position to zero. But what we can see that even the position of encoder is resetting to 0, we can see at some point of time, encoder overflows as seen in the video.
Since the slave axis is engaged to master axis, when suddenly the position of the actual position changes to a negative value all the slave suddenly stops and try to match with the new position change which will create a sudden stop and whole machine jerks.
What we observe is that even the factPosition changes when we call MC_setPosition to 0, some of the internal variables in softMotionEncoder is not changing(dwActPosition...) because of which factPosition overflows at some point of time.
Is there any work around for this. Currently we are powering off PLC after every 4 hours sothat all internal varaibles will reset to its default value.