# linuxcnc+ethercat drives the AKD servo motor it cannot be moved

08 Sep 2021 07:15 #219916 by wang
Can you talk about your formula in detail? Or provide me with a learning tutorial webpage, documentation or something.

08 Sep 2021 12:20 - 08 Sep 2021 12:20 #219934 by db1981
for this case there is not realy an formula.

halPin="pos" halType="float" scale="-0.000001" tells, that 1 increment send from the servo drive is equal to 0.000001 Machine Unit (mm or inch set in the ini file.)

halPin="poscommand" halType="float" scale="-1000000" tells, that 1000000 increments are equal to 1 Machine Unit (mm or inch set in the ini file)

so if you tell to move 3mm, the drive will get an command of 3000000 increments, in the case of 0.5mm the output is 500000.

In an system like yours when feedback and motor is on unit, poscommand scale should be the reciprocal of the feedback scale. Like you have set it.

To match the scaling factor to the mechanics, you have to know how the scaling in you servodrive is set, or if it is fix, how the resolution of the linearmotor is. (datasheet of the motor)

Example:   Beckhoff linear , pole pair distance 24mm, beckhoff drive does 20bit increments per pair; 24mm = (2^20) 1048576 increments;  1inc  = 0.000022888mm; feedback scale (pos) = 0.000022888; command scale = 43690.666667  (2^20 / 24)
Last edit: 08 Sep 2021 12:20 by db1981.
The following user(s) said Thank You: wang

09 Sep 2021 01:20 #220022 by wang
I probably understand what you mean. I think the linear motor should be adaptable in this way. I will go to understand what you said about the scale factor.

At the same time, I also have a rotating motor for the Z axis, which uses a ball screw. How should the rotating motor match?

09 Sep 2021 09:53 #220046 by db1981
For this you also need to know resolution of the Drive/motor...

example:

The Drive has 65536 increments / per Motor Revolution,
Ballscrew pitch is 5mm -> 65536inc = 5mm ->
1mm = 13107.2 inc ->

feedback scale (pos) = 1 Machine Unit / 13107.2 inc = 0.000076229 mm/inc

command scale = 1 Machine Unit = 13107.2 increments

10 Sep 2021 05:56 #220106 by wang
Okay
thank you very much for your patient explanation, I feel I have understood it.
But there is another point that I am not very clear about.

How to understand this "increments"?
How should I confirm whether my device is 20bit and 65536?

##### Attachments:

10 Sep 2021 08:07 #220111 by db1981
you have to find this in the manual/datasheets of your Drive or Motor.
There have to be an chapter about resolution.

What kind of drives/Motors are this?
If you post datasheets or links . maybe i can help.

01 Dec 2021 08:50 #228099 by wang

For this you also need to know resolution of the Drive/motor...

example:

The Drive has 65536 increments / per Motor Revolution,
Ballscrew pitch is 5mm -> 65536inc = 5mm ->
1mm = 13107.2 inc ->

feedback scale (pos) = 1 Machine Unit / 13107.2 inc = 0.000076229 mm/inc

command scale = 1 Machine Unit = 13107.2 increments

Under your guidance, I have mastered the scale calculation method of linear motors and roller screws. At the same time, I have successfully controlled the three-axis machine tool.

I am currently controlling a five-axis machine tool and ran into this problem again. I found that I still have a lot of questions. My AC-axis drive is a BDHB servo drive from SERVOTRONLX.

This is my drive configuration interface

And motor units

I tried to input 131072 in the control interface (because I thought it should make it make a full circle), but then I tried to make the C axis make a full circle when the number 1310720 was reached.I don't understand why there is a 10 times difference？

Because the units of AC axis are all degrees when we write G code for processing, so I hope that the 1 that I send through PosCommd is 1 degree. You can control the A or C axis to rotate one degree.

Can you tell me how I should set this scale now? thanks