Boushard

Stop positioning instruction!

7 posts in this topic

Hi guys,

I need a way to stop a positioning instruction and re-enabled it without any movement/incrementation of the SD8340.

Basically I have a servo positioning a trolley, have an optical safety curtain and when I cross it the safety relay attached to the curtain cut my "Servo-On" and "Forced Stop" signal to the drive.

What happen now is when I reset my safety relay, SD8340 add 1000pulse or so affecting my current position.  When I forward it's not a big deal, but when I reverse and move forward again the trolley collide whit the hard stop.

Tried a couple function without any success!!

M61 = START_CYCLE

M50= AT POSITION

M1 = NORMAL END

M2 = ADNORMAL END

M100 = MOVE CLEAR

M160 = PAUSE/CANCEL CYCLE

Do we have here, someone skilled enough, to help me out with this issue.

Capture.PNG

Share this post


Link to post
Share on other sites

Are you using an MR-J3-A or MR-J4-A for the servo?

You should be to read the current value (absolute position) with the DABS isntruction

Edited by Gambit

Share this post


Link to post
Share on other sites

FX5U-32MT/DS

MR-JE-70A

HG-KN73JK

Thanks Gambit, I'll take a look a this fonction!!

Share this post


Link to post
Share on other sites

Apparently my drive doesn't have plc feedback capability!!

So I move on with a little hack using LA/LAR and LB/LBR output with some SSR to convert the 5vdc signal to PLC 24vdc input.

Problems are:

  • The SSR's doesn't have an output frequency High enough to match the pulse frequency I'm using
    • buy new on is an option but delay and cost is a downer
  • The high-speed counter don't want to count like it suppose to
    • I set it to "2 phase 4 multiples" to have 4 time more pulse than want the encoder send me, but no victory. He is stuck at "2 phase 1 multiple"

To fix problem #2 I need to make a multiplication of the current high-speed counter value (SD4500 DWord) with another value similar to "67.73xxx" to match the value of the SD8340 (Positioning Current Address (Pulse Unit) [Low-order] (Axis 1))

I've make a couple test without any great result!

Is anyone could help me out on this multiplication problem!?!

 

Share this post


Link to post
Share on other sites

I've used the LA and LB line driver outputs before to get the position from an analogue IO drive. That was to a Q and I used the QD62 high speed counter card with no problems. 

Your FX5U should support a FX3U-2HC high speed counter card (I think it also needs a bus converter module). If you're willing to fork out for this hardware, it will be a sure-fire way to receive the line driver pulses from the drive.

 

Share this post


Link to post
Share on other sites

Is it a must to cut SON and forced stop? The PLC don't know that the servo is off and keep outputting pulses until the end of positioning instruction affecting the current position value

Can't you just input the safety relay signal in the PLC to activate "Pulse decelerate and stop" and when safety issue is cleared you can use the "remaining distance" function without ever touching the servo.

Reading  encoder output is a long shot for such simple task.

You may wanna check ModbusRTU capabilities if your builtin RS485 channel is free.

Share this post


Link to post
Share on other sites

Actualy modbusrtu is only for point table/program control method and can not be used with pulse train(position control mode)... my bad! 

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