Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Switching between Linear to Rapid Mode cause EtherCAT failure
#1
We have MotionCore IPC connected to Axor motors using EtherCAT

the movement of the motors is split into three parts, the first part is moving fast according to the required profile, the second part is to move slow and stop when the sensor detects an object (digital input from the motor PDO communication), the third part is returned to the same position as started.

so we decided to implement the first part with Linear movement mode and the second part with Rapid movement mode.

But we encountered many communications errors when Controller switches from Linear to Rapid mode.

The motor needs to get SYNC0 signal and if it doesn't get for 3ms it makes motor stops with failure. so when switching from Linear to Rapid mode it seems that the SYNC0 signal is delaying.

Now we switched the second part of the movement to linear mode but it requires that we move in small intervals and check between intervals which makes this movement much slower than what we need.

is only Rapid mode provide an option to simultaneity move and interact with sensor digital input?

Why we are suffering from communication problems when switching movements modes?
Reply
#2
This sounds very unusual. I am wondering if the amplifier could be losing power or otherwise faulting out. It sounds like you have a Linear move set up and working, but your rapid move may be attempting to move the motor too quickly.

After the program fails, On the motor status window, what faults do you see?
Does the amplifier show any fault codes?
What is the value of ECAT[0].MasterState?
What is the response to "ecat slaves?"

What is your value of Motor[x].RapidSpeedSel?
At the default of 0, Motor[x].MaxSpeed (which limits the speed of the rest of the program) is used for the rapid move. If your Motor[x].MaxSpeed is set to high for actual motor, the amplifier may be unable to keep up.

Let's make sure Motor[x].RapidSpeedSel=1 so that Motor[x].JogSpeed is used. It may make sense to temporarily lower jog speed for the triggered move, but at least your max speed doesn't need to be changed.

Do you have Motor[x].JogTa and Motor[x].JogTs set? Your rapid move will use these instead of the TA/TS set in the program.

Quote:is only Rapid mode provide an option to simultaneity move and interact with sensor digital input?
Triggered moves can be homing, jogging or rapid from in program.
Reply
#3
the motor status shows AmpFault
The AmpFault indicate error source in Motor (pAmpFault=ECAT[0].IO[4127].Data.a)
Axor motor error code indicating Error in getting SYNC msgs

ECAT[0].MasterState=8 (OP)

"ecat slaves" return all OP mode


Motor Conversion = 2184.53 pulses/mm
RapidSpeedSel=0
MaxSpeed=3276.7949 (1.5 m/s) in 1st fast movement and 218.453 (0.1 m/s) in 2nd slow movement.
JogSpeed=3276.7949 (1.5 m/s)
JogTa=-0.030517625 (15 m/s^2)
JogTs=0

The motor is running at Rated Speed, 3000 RPM (1.5 m/s)
We measured torque and found that motor only using below 20% of rated torque at worst case.


(03-25-2019, 11:57 AM)Eric Hotchkiss Wrote: This sounds very unusual. I am wondering if the amplifier could be losing power or otherwise faulting out. It sounds like you have a Linear move set up and working, but your rapid move may be attempting to move the motor too quickly.

After the program fails, On the motor status window, what faults do you see?
Does the amplifier show any fault codes?
What is the value of ECAT[0].MasterState?
What is the response to "ecat slaves?"

What is your value of Motor[x].RapidSpeedSel?
At the default of 0, Motor[x].MaxSpeed (which limits the speed of the rest of the program) is used for the rapid move. If your Motor[x].MaxSpeed is set to high for actual motor, the amplifier may be unable to keep up.

Let's make sure Motor[x].RapidSpeedSel=1 so that Motor[x].JogSpeed is used. It may make sense to temporarily lower jog speed for the triggered move, but at least your max speed doesn't need to be changed.

Do you have Motor[x].JogTa and Motor[x].JogTs set? Your rapid move will use these instead of the TA/TS set in the program.

Quote:is only Rapid mode provide an option to simultaneity move and interact with sensor digital input?
Triggered moves can be homing, jogging or rapid from in program.
Reply
#4
I made a triggered rapid move from a motion program on an IPC with firmware 2.5.0.4 with no issue just in case there could have been a firmware issue and everything went smoothly.

The amplifier shouldn't know anything about whether you are in a linear or rapid move. It could be that the drive is drawing too much current to try to start the rapid move and that is leading to other faults being displayed.
To test this idea, lets lower your rapid move speed by about 20% (making sure it is also lower than your programmed feed rate)
Also set:
Motor[x].JogTa=200
Motor[x].JogTs=100
I doubt these values would be suitable for your application, but they should help in troubleshooting.

I have been assuming that you are doing software position capture (Motor[x].CaptureMode=1,2 or 3). If you are using hardware capture (Motor[x].CaptureMode=0), then the drive does know that a triggered move is being performed. Is this the case?

Are you using your motor in torque or position mode? (What is the value of Motor[x].Ctrl?)
Is this firmware version 2.5.0.0 like in the other thread?

This could be related to a distributed clock issue, please try putting ECAT[0].DcClockDiff in a watch window.
Does it continually count up/down? Does it cycle between positive and negative? Does it stay constant at some value?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)