Sign in to follow this  
Followers 0
Madhura Magesh

Sysmac Studio - Power Interruption

8 posts in this topic

Greetings every one...!

                                        I am using NX1P2 PLC and G5 series Incremental Servo for decoiler machine. Now am facing issue, in the time of feeder working power interrupted then last position values are lost, but I need to retain last position value and feed again remain position. In the case  I am telling about (MC_Axis000.Act.Pos) this variable value I need to store and retrieve it back when power came.

                                            Any sysmac software experts give me the best solution for this issue.  Thanks in Advance...!!

Share this post


Link to post
Share on other sites

The solution is to replace the motor with one that has an absolute encoder.  Any option of trying to save the position in the NX1P2 is unreliable.  

1 person likes this

Share this post


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

The solution is to replace the motor with one that has an absolute encoder.  Any option of trying to save the position in the NX1P2 is unreliable.  

Dear Michael , Thank for your suggestion,  Its high inertia motor with absolute encoder not available in my country so only am proceeded with Incremental one . Reliability is not an matter we committed to customer.

Am tried data move to retainable variable in the time of P_On falling edge but its not storing. Can u suggest any system parameter Bit it will give one pulse in the time of power loss.  This data very useful to my application.

Share this post


Link to post
Share on other sites

Well, it may not be exactly right (if the motor moves at all when power is off), but this should work (I did not test it, but think it will work):

FakeABS.jpg.7bbd40927f99b1a458045e102ff6

Make sure that SavedPosition is set to retain and PositionSet is not as highlighted in yellow above.  These variables can be local or global, I used local here.  the first time that you run this, the servo position will be set to 0. 

Note that positional errors due to this code could cause the position to eventually be off by significant amounts if the motor moves with the power off (someone pushing it by hand, the motor coasting to a stop, etc.)  Make sure that this error in position does not cause a problem with your machine or with the people using the machine.

Share this post


Link to post
Share on other sites
13 minutes ago, Michael Walsh said:

Well, it may not be exactly right (if the motor moves at all when power is off), but this should work (I did not test it, but think it will work):

FakeABS.jpg.7bbd40927f99b1a458045e102ff6

Make sure that SavedPosition is set to retain and PositionSet is not as highlighted in yellow above.  These variables can be local or global, I used local here.  the first time that you run this, the servo position will be set to 0. 

Note that positional errors due to this code could cause the position to eventually be off by significant amounts if the motor moves with the power off (someone pushing it by hand, the motor coasting to a stop, etc.)  Make sure that this error in position does not cause a problem with your machine or with the people using the machine.

Dear, Michael    How the before power loss position will save in "SavedPosition"  I cant understand your point can you Please explain.

Share this post


Link to post
Share on other sites

The PositionSet contact is supposed to be a normally open contact in Rung 1 (corrected image below).  I made a mistake.

FakeABS2.jpg.bcea5e53f140ca947d357a57e70

Once that is true, then this is the case:

Rung 1 will move the actual position into the SavedPosition register every scan after the position has been set to the axis.  So, when the power goes off, the position in the SavedPosition variable is the last value that was written prior to the power turning off.  When the power turns back on, it uses this position to set the position of the axis.  When the position has been set, the move instruction is enabled to prepare for the next power loss.

 

 

Share this post


Link to post
Share on other sites
On 3/1/2019 at 2:14 AM, Michael Walsh said:

The PositionSet contact is supposed to be a normally open contact in Rung 1 (corrected image below).  I made a mistake.

FakeABS2.jpg.bcea5e53f140ca947d357a57e70

Once that is true, then this is the case:

Rung 1 will move the actual position into the SavedPosition register every scan after the position has been set to the axis.  So, when the power goes off, the position in the SavedPosition variable is the last value that was written prior to the power turning off.  When the power turns back on, it uses this position to set the position of the axis.  When the position has been set, the move instruction is enabled to prepare for the next power loss.

 

 

Dear Michael, Thank for your support  I am also hope it will work  I Will try this in that time am facing any issue on this I will tell you please support me.

 

Thank u in advance...

Share this post


Link to post
Share on other sites

Ok, I actually tested this in simulation mode this morning.  I had to modify this a little bit:

FakeABS2.jpg.a75695e9a7f3fe0452c18caad03

The MC_SetPosition Function block needs to see the Off -> On transition, so I had to add the NC P_First_Run  contact.  Also, I hovered over the Reference type when I snagged this screen shot so that you could see what it was.  Good luck. 

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
Sign in to follow this  
Followers 0