Delta ASD-B3, CiA402 and joint following error

More
23 Mar 2023 18:41 #267374 by bobiyu
Hello!I would like to ask for some help regarding the “proper” setup of Delta’s ASD-B3 servo motors and drives. I have the drives set to work with HAL-CiA402 and everything’s been working flawlessly so far. Really the only thing that’s left is to figure how to properly set the scale and homing of the axis.I have tried both position and velocity command, but I had mixed results. I can't get the axis to go past a certain speed. LinuxCNC e-stops and gives error that there is joint following error. When there is no problem with the speed after a certain amount of travel the machine stops again with joint following error. I'm guessing that the servo motor encoder resets the counter after certain travel or maybe my scaling is wrong. Afterall the encoder of this servo motors is insanely dense - 24bit. I use the pulse per revolution constant mentioned in the manual (16777216) to do some testing. However, I feel that there's something I'm doing wrong. I have managed to come up with some scaling factor per axis that seems to give accurate positioning but that’s how far I can go without further information.  I could really use some help.I have attached an archive of my configuration so far.Best regards!
 P.S. I’d like to apologies if I’m double posting. I couldn’t find similar topic to relate with my case.
Attachments:

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

More
26 Mar 2023 08:36 #267519 by mehdidadash
velo-scale for linear axis is ball screw's pitch in machine unit and for rotary or angular axis, it is 360 if you set machine unit mm and degree respectively.
pos-scale is equal to servo drives pulse per revolution(for delta a2 it is 1,280,000)/velo-scale
so for my a2 servos with 17bit encoder and 1280000 pulse per revolution ->
cia402.0.velo-scale 5
cia402.0.pos-scale 256000
so encoder resolution is not relevant to cia402 so far, unless db1981 decides to seprate encoder and drive position and speed.
for your homing problem:
i have the same problem and i will follow this topic to find the answer.

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

More
26 Mar 2023 12:15 #267522 by bobiyu
Thank you for the provided information on the scaling! I have already tried this approach but it's not yielding good results for my 5mm ball screw setup.
Here is a brief overview of my machine hardware:
4500 mm long X axis M2 rack coupled with Z31 pinion, attached to 1:10 gearbox
1960 mm with 5mm ball screw with 1:1 belt pulley with 22 teeth driven by 1kW delta b3 motor
750 mm Z axis with 10mm ball screw with 1:1 belt pulley with 16 teeth driven by 1kW delta b3 motor
carousel tool changer with 18 positions driven by 1:50 gearbox and 400W delta b3 motor
rotary C axis driven by 1:24 gearbox and 400W delta b3 motor
I have tried setting E-gear so I can reduce the amount of pulses per revolution but the drive resets the default settings after power cycle.
I had suspicion that the drv-actual-position is the culprit for all my errors. After some investigation I come to the conclusion that the int32 register of the drive overflows and rolls back to the max negative value of int32 hence the following error in LCNC. I tried removing the position feedback but it is not as straightforward as I expected. Maybe I have to tweak the cia402 component and separate the feedback and the actual command value. I guess that is the normal behavior of the servo and I don't see a problem in this. After all, the PULS and DIR commands are ignorant of the real motor position, they just tell how far to move, the drive takes from there. Maybe I'm mistaken.
Or there should be some flag that follows the overflow if the feedback.
Maybe I need to do some other tweaking, because I can't go past a certain per axis speed

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

More
26 Mar 2023 13:30 #267525 by mehdidadash
in B3 user manual, 12.1.3 Parameter settings of EtherCAT mode
there is settings that let you to reset parameters like E-Gear and ... after entering communication mode.but you dont need to change it. you can easily do everything on ehtercat-config.xml and ini file and hal files. consider this :
what if you have to change one of drives with a new one. then with this method, you dont have to change all those parameters on servo drive again.
and it is better to use the example in  linuxcnc-cia402 by rodw-au  or  hal-cia402 by db1981  or even simply using my branch of linuxcnc-cia402 for 3 axis lathe with xzc.com  which is working now for asd-a2-E and just has a problem with homing.
The following user(s) said Thank You: rodw, besriworld

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

More
26 Mar 2023 13:33 #267526 by mehdidadash
and where are you from ?

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

More
26 Mar 2023 14:35 #267528 by bobiyu
hi, mehdidadash,
thank you for the provided configuration and the other resources you have pointed at. I have used both rodw and db1981 cia402 sample configs. I did try once again setting the scales as you said but the problem is that my Y axis is not moving at all if I set it with velo-scale=5 mm and pos-scale=16777216/5=3355443.2. The joint starts to accelerate, stops abruptly and gives joint following error. No matter what I do I can't get all of the axis past certain speed. I did all kinds of tweaking.
I had a look at your config and I don't think there's nothing different from mine in terms of cia402 hal config. I have noticed that you have sdo stettings for one of your axis, which are for external encoder.
Answering your last question - I'm from Bulgaria.

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

More
16 Apr 2023 00:33 #269172 by whatawhiz
just check your servo drive, set p2.035 to default value.

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

More
19 Jul 2023 09:04 #275802 by znnc
maybe you can try increasing the value of FERROR/MIN_FERROR in configuration file (***.ini).
but it doesn't fundamentally solve the problem of "joint following error".
i guess it may be related to "synchronous period" or "servo drive position gain".

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

More
19 Jul 2023 14:21 #275818 by rmu
use halscope to plot following error, commanded and feedback position resp. velocity of the joint in question. make small movements. That should immediately provide clues if some scale is off (different slopes of commanded vs. feedback velocity).

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

Time to create page: 0.087 seconds
Powered by Kunena Forum