Posted 1 Mar 2019 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
Posted 1 Mar 2019 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
Posted 1 Mar 2019 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
Posted 1 Mar 2019 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): 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
Posted 1 Mar 2019 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): 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
Posted 1 Mar 2019 The PositionSet contact is supposed to be a normally open contact in Rung 1 (corrected image below). I made a mistake. 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
Posted 4 Mar 2019 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. 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
Posted 4 Mar 2019 Ok, I actually tested this in simulation mode this morning. I had to modify this a little bit: 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