We are using LMC078 motion controller in our project to control 12 motors simultaneously. Softmotion encoder will act as master for all the axis.
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.
We are surprised that this is happening in LMC078 PLC and is not visible in the competitors motion controller PLC's. Is there any work around for this. This looks like a bug in the PLC/codesys firmware!.
Discuss challenges in energy and automation with 30,000+ experts and peers.
Find answers in 10,000+ support articles to help solve your product and business challenges.
Find peer based solutions to your questions. Provide answers for fellow community members!