Scubasteve2365

NJ controller and 1S servo position after power cycle

5 posts in this topic

Hello,

I have an NJ controller and 7 axis machine with 1S servo drives. Everything is working in relation to motion control except that upon a power-cycle of the machine (and thus the drives and controller) all axis are coming up at their 0 position rather than where they were before the power cycle. 

For example, let's say I have an axis scaled from 0 to 360 degrees. Let's say I move that axis a half-rotation to a position of 180 degrees.

When I power off, and then power back on, instead of the position of 180 degrees being retained, it's coming up as 0 degrees.

I will add that I am doing the software for the machine only, I did not do the controls hardware design. The drives do not have any limit switches or "home position" devices wired to them and I am not using any of the MC_Home type instructions in the routine. Home is set by manually manipulating the servos via the HMI, and pressing a "Define Zero" button which uses the SetPosition instruction. Once this is done the expectation would be that the machine would retain the positions.

I have performed the encoder reset or whatever it's called that clears the rotation data from memory.

This is my first Omron Sysmac application, and the only real problem I've had. Motion works well otherwise. I'm assuming it's something simple like a checkbox somewhere I'm overlooking.

Share this post


Link to post
Share on other sites

I could capture the position of the servos every scan and write them to a separate data tag, and then upon a reboot, reintialize those positions via the MC_Setposition but that seems like a risky way to retain position and I'm assuming the platform is designed to retain them.

Share this post


Link to post
Share on other sites
1 hour ago, Scubasteve2365 said:

This is my first Omron Sysmac application, and the only real problem I've had. Motion works well otherwise. I'm assuming it's something simple like a checkbox somewhere I'm overlooking.

I am guessing that it is indeed as you say.  Check here:

5c1174149cec4_AbsoluteEncoder.jpg.5b03ce

Make sure to download to the NJ afterwards for and cycle power for good measure.  

Share this post


Link to post
Share on other sites

Michael,

Thanks, the Servos were set to Absolute. 

I've tried help with the local rep and such, the feedback I've gotten is that I need to define the 0 point with an MC_HOME instruction rather than a MC_SETPOSITION instruction like I am doing now. The problem with that, other than having to wire prox inputs that aren't currently there, is that we have two axis that run on a 'racetrack', that have collision interference with no way to define a prox placement position that would avoid a physical crash in every recovery scenario.

Can you confirm that MC_Home is needed before the drive/controller starts writing servo position to memory? If so, is there a way to use an MC_Home instruction to define position, register the axis as "homed" without causing any motion on the axis? 

 

Share this post


Link to post
Share on other sites

Michael,

 

Nevermind, that was it. I discovered if I used the MC_Home with the "Zero Preset" home configuration that it would basically work the same as the MC_Setposition with the difference that is must be defining the axis as officially homed and thus is now saving the absolute encoder position to memory. Two power-cycles in and it's working now.
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now