Ethercat HAL configuration for Beckhoff EL7041 without encoder

More
08 Dec 2017 10:16 - 08 Dec 2017 12:22 #102762 by Hawkeye
Hello Allan,

guess what - you saved me hours of searching with hour last post!
Please see the ini-file on git an compare it to the one you supplied within the zip-container.
The ENC_SCALE definition on git is a negative number, but should be a positive number!

So far so good, I created a setup file for my EL7041 with all the beckhoff internal setup for it.
Can you tell me whether you are using the EL7041 on factory default settings or whether you changed some
of the values (e.g. Feedback type, Acceleation pos., Motor fullsteps, Nominal Voltage, ...)?
I use on my machine 4 Motors (2.5A 1,8°).
Running on lower speed (<700mm/sec) everything seems to be fine.
When I change to higher speeds, the engine seems to stick (seems to run not in a good way).
The motor itself is ok, as I used it with DM556D drivers in the meantime.
DM556D reduces motor power when the driver is active but no movement..
I tried to create this behaviour also with the beckhoff, as my motor is still getting pretty warm.

//edit:
Do you know how to revert the direction of an ethercat axis within hal?
I checked this document linuxcnc.org/docs/html/man/man9/pid.9.html and found the statement:
"If some output is in the wrong direction, negating gains to fix it is a mistake; set the scaling correctly elsewhere instead."
I don't know what to make out of this...

Regards,
Hawkeye (Ben)
Last edit: 08 Dec 2017 12:22 by Hawkeye.

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

More
08 Dec 2017 13:37 #102771 by Todd Zuercher

Hello Allan,
Do you know how to revert the direction of an ethercat axis within hal?
I checked this document linuxcnc.org/docs/html/man/man9/pid.9.html and found the statement:
"If some output is in the wrong direction, negating gains to fix it is a mistake; set the scaling correctly elsewhere instead."
I don't know what to make out of this...

Regards,
Hawkeye (Ben)


I don't know anything about Ethercat, but what that quote from manual is referring to is saying, in a normal servo system, if a motor is turning the wrong direction, or an encoder is counting the wrong way; the proper way to reverse them is either in hardware (by switching wires arround), or by changing the sign of the output scale (to reverse the motor direction), or of the encoder scale (to reverse the encoder counting direction). It is also entirely possible that these reversals can be easily accomplished in the servo drive's software, or the Ethercat software.

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

More
08 Dec 2017 14:24 #102776 by Allan
Hello Hawkeye

I agree with Ben. If a motor is driving in the wrong direction it is easily resolved by changing the wiring. Here is how: Stepper Motor Wiring

If encoder signals are giving the wrong direction swapping the A and B encoder signals will change the direction.

Are you now able to move motors?

Allan

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

More
10 Dec 2017 09:45 #102863 by Hawkeye
Hello Allan,

first of all, sorry for delay..

I am able to move my Z-axis since a couple days.
After you proposed to either change the swap cables or to change configuration, I decided to swap cables.
Old connection order was ABCD, the new is now BACD. With this, I am able to move the Z-Axis into expected direction.

Now, I still have this issue with parameters for the PID controller, as I am not able to move distances of >10mm on higher speed without getting "joint 2 following error".
My motor has the following technical data:
Technical data:
Supply voltage: 4,5V
Current: 2,5A
Step angle: 1,8°
Holding torque: 180 Ncm
Dimensions without axis (LxWxH): 76x57x57mm
Axis (Lxø): 20x6,3 mm
Mounting: 5mm holes, Hole distance 47mm, Flange diameter 38mm

My settings are:
SCALE=160
ENC_SCALE=2560 (200 steps/rev * 64 micro steps / 5mm axis pitch)
P=400
I=0
D=0
FF0=0
FF1=0
FF2=0
DEADBAND=0.0000999
MAX_OUTPUT=48.0

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

More
10 Dec 2017 12:55 #102867 by Allan
Hello Hawkeye

Thanks for sharing your good news!
In the main LinuxCNC window use the Maximum Velocity slider to reduce the maximum velocity. This should allow your machine to move without error.

Allan

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

More
10 Dec 2017 17:50 #102872 by Todd Zuercher
It sounds like you need to do some more tuning. Some FF1 should probably help. Have you read some of the servo tuning tutorials for Linuxcnc?

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

More
10 Dec 2017 17:54 #102873 by Hawkeye
Hello Allan,

indeed, I can reduce velocity with this controller, but this is no real solution.
The motor is still not working fine.
Even my homing script for x-axis required higher rapid velocity afer touching the home switch.
So, I need help on the configuration and fine tuning of the EL7041 controller.

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

More
10 Dec 2017 18:04 #102874 by Hawkeye
Hello Todd,

I can read about all the values (linuxcnc.org/docs/2.5/html/man/man9/pid.9.html),
but I don't have an unterstanding how they work together.
At this point, it would be an task of try and error and hope to me to set the proper values.
I tought someone already tried this components the same way.
E.g. my script for setting up the EL7041 is removing any signal->action delays for the motor.
Or would it be useful in a cnc environment to do so? Thinking about overshoot and startup delay of the motor,
it was senseful to me to change this settings to "0".

Regards,
Ben

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

More
10 Dec 2017 20:02 #102876 by Todd Zuercher
You need to use Halscope a built-in oscilloscope application in Linuxcnc to look at velocity commands and following errors.

Here is a good tutorial.
gnipsel.com/linuxcnc/tuning/servo.html

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

More
10 Dec 2017 20:11 #102877 by Allan
Hello Hawkeye

I agree that it is not a solution. Slowing your motors was just to allow you to drive it and check that everything is wired and moving correctly. Searching for LInuxCNC PID on YouTube will give you a number of good tutorials. If you understand German I can recommend one in particular.

Allan

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

Time to create page: 0.104 seconds
Powered by Kunena Forum