Rookie: Ethercat Servos wont budge...

More
18 Mar 2021 21:00 #202766 by thomaseg

but i guess that the problem is servo configuration related.


yes, i actually had some movement tonight! however, i have no idea how :-D I've talked to the manufacturer and they said that the "Bus Cycle Time"-setting in the driver must match the one in the master....in the driver it says 3ms....there is a lot of timing-values in the xml-file, what is the correct settings to get 3ms "bus cycle time"?

Please Log in or Create an account to join the conversation.

More
18 Mar 2021 23:21 #202782 by db1981
the most drives sets this automatically with the dc_conf,
Your bus cycle time is 1ms. servo_tread and the equal = appTimePeriod .
Try to set the driver to 1ms.

Please Log in or Create an account to join the conversation.

More
20 Mar 2021 20:09 #203024 by thomaseg
So, i've spent most of my day trying to figure out what is going on. I have hooked up alle 3 sets of drivers and servo's to see if there is any difference between them. Nothing. I've ran through all parameters for the servos(there are hundreds!). Nothing. I've tinkered with the scaling of the signals AND it moved! the tiniest bit, but i can move the servo...only like 1-2 degrees...but there is a pattern:

...which i spent a couple of hours trying to figure out WHY i cannot move it more than a few degrees...

I jog the axis and just as it crosses 0 the actual position changes a tiny bit...nothing happends beyond this... i've been thinking about overflows, softlimits, pid-values etc... but i need help with this one, i don't know where to start or look :-(

Anyone got ideas?
Attachments:

Please Log in or Create an account to join the conversation.

More
20 Mar 2021 20:56 - 20 Mar 2021 21:34 #203041 by db1981
hi,

more information is needed.

What Encoders are this, what resolution, increments per round ....

Your scops show ~1,5 millions increments, why so much?

and please post the values of the following pins, at the same point in time.

lcec.0.4.sta-actualposition,
lcec.0.4.cmd-target-position,
joint.0.motor-pos-cmd,
joint.0.motor-pos-fb
Last edit: 20 Mar 2021 21:34 by db1981.

Please Log in or Create an account to join the conversation.

More
20 Mar 2021 21:17 - 20 Mar 2021 21:18 #203048 by db1981
and there are still errors in the thread calls...
Change it to this and make a try

loadrt scale count=2
loadrt conv_s32_float count=2
loadrt conv_float_s32 count=2

#read Hardware
addf lcec.0.read servo-thread

# Add converters --> and scalers for input
addf conv-s32-float.0 servo-thread
addf scale.0 servo-thread

addf motion-command-handler servo-thread
addf motion-controller servo-thread

#unused at the moment...
#addf conv-s32-float.1 servo-thread
#addf conv-float-s32.1 servo-thread

# Add scalers ---> and converters for output
addf scale.1 servo-thread
addf conv-float-s32.0 servo-thread

#write Hardware
addf lcec.0.write servo-thread

Last edit: 20 Mar 2021 21:18 by db1981.

Please Log in or Create an account to join the conversation.

More
21 Mar 2021 10:00 #203095 by thomaseg
Wow.... i feel kinda embarrassed about this, but i found the issue.... try to see if you can see the error here:
<pdoEntry idx="607A" subIdx="00" bitLen="16" halPin="cmd-TargetPosition" halType="s32"/>

Hint: The encoder on the servo is a 24bit absolute encoder....and i've set the bitLen to 16bit? yeah... that is going to overflow preeeetty fast...i feel stupid using like more than a week of sparetime trying to debug this... but at least i learned a lot about HAL and Servos in general :-)

I changed it to 32bit and the servo was (almost) literaly flying of my testbench! Note to self: Tie down those 2,2kW servos before trying again....yaiks...

Anyways, a HUGE thanks to db1981 for sticking with me and trying to figure out what was going on! It's really appreciated!

Please Log in or Create an account to join the conversation.

Time to create page: 0.184 seconds
Powered by Kunena Forum