Servo config issues

More
21 Jun 2019 05:13 #137453 by Type_Zero_Design
Hey everyone,

I appreciate all the help so far!

So I've got to the point now to start testing my servos and I've got a few snags..

First off I can't find the pulses per rotation for my servos In any of the documentation. I reached out to the Chinese manufacture and after alot of back and forth to understand what I wanted they claimed it is 1000 pulses to achieve one revolution.

I put this in along with the 5mm pitch to calculate, and was able to test my Y drive. What I found though is that none of my movements match what the position shows. If it shows I moved an inch, it's more like 1/4 inch.

I get the feeling due to all the confusion that the 1000 pulse per rotation may be wrong. Is there anyway to determine this on my own? Is there a way to command just a single rotation to check?


My other issue is that half the time the axis won't jog when commanded ( been PNC config running) what's strange is it will jog back and forth a bit and then stop moving but the drive is still showing receipt of the signal and that it is sending to the servos, but nothing happens?

As always appreciate any input

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

More
21 Jun 2019 08:05 #137461 by HueyHQ
Replied by HueyHQ on topic Servo config issues
I'm still new to this also, but I think you need to enter 4000 counts for a quadrature encoder (PPR x 4).

To check, use the halmeter to monitor the encoder counts, and rotate it one turn - it will give you the counts, not the PPR. You can do it without LinuxCNC running following Andy's post here . Then use "loadusr halmeter".

I'm not sure about the jog issue.

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

More
21 Jun 2019 12:19 #137484 by Type_Zero_Design
I guess I should mention as well that I currently do not have encoders setup as I have not been able to figure out how to get my 7i85 working with my 7i76e.

So is the steps per rev in the calculator related to the encoder count somehow?

When you say rotate the screw 1 turn and watch in Hall monitor, do you mean visually one rotation joging? Then look at steps?

Is there a way to comand movement via steps?

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

More
21 Jun 2019 13:05 - 21 Jun 2019 14:16 #137485 by Hakan
Replied by Hakan on topic Servo config issues
Here is the line I have for the 7i76e with a 7i85s daugtherboard.
loadrt hm2_eth board_ip="10.10.10.10" config="firmware=hm2/7i76/7i76e_7i76x1_7i85sx1D.bit num_pwmgens=0 num_stepgens=5 num_encoders=5 sserial_port_0=20xxxx"
Program the 7i76e with the mentioned software (available from mesa at least), put the 7i85s in the first connector and this should get you going.

Afaik you can only command a position. Check the ini file for STEP_SCALE=nnn, that is the amount of steps per unit, you used inch, right, so then that is the number of steps per inch.

If the servo isn't tuned there may be quite a lag between the commanded and actual position. If there is no feedback (you don't have the encoders connected, so no feedback) you can't trust it to move one inch when you tell it to, far from.
Last edit: 21 Jun 2019 14:16 by Hakan.

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

More
21 Jun 2019 15:13 #137497 by jmelson
Replied by jmelson on topic Servo config issues

Hey everyone,

I put this in along with the 5mm pitch to calculate, and was able to test my Y drive. What I found though is that none of my movements match what the position shows. If it shows I moved an inch, it's more like 1/4 inch.

OK, what the manufacturer probably meant is the encoders are 1000 "line", and therefore give 4000 quadrature counts/rev.
So, it is quite likely that you need 4000 step pulses to make them turn one rev.

Jon

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

More
22 Jun 2019 03:01 - 22 Jun 2019 04:54 #137540 by Type_Zero_Design
Hakan,

** Edit ** Thanks! I figgured out where it went.

I can now see my encoders!

I think I was using the wrong terms after opening PNC config back up.

I'm trying to figure out my steps per rev?
I have 2500 line encoder that produces 10000 pulses per revolution, which I confirmed in hal.

So now I just need to figure out how many step signals to achieve 1 rotation.

Any ideas?
Last edit: 22 Jun 2019 04:54 by Type_Zero_Design.

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

More
22 Jun 2019 07:04 - 22 Jun 2019 07:05 #137560 by Type_Zero_Design
Second update

I compared my encoder pulse count to my stepgen count in hal config and they showed a 1 for 1 match. So by that math if my encoder pulse per rev is 10,000 then my step per rev is also 10,000.

So with that being said if I understand the scale calculation correctly I would take my step per rev and divide by pitch.

So 5mm pitch is 0.19685in

10,000/0.19685=50800.10160

Dose that seem like a correct/reasonable number?

I halved it to be safe and seem to get half the expected travel. But when I enable the machine in Linux I get errors saying that the step is to large and it's scaling it? I'll get the exact error in the morning I forgot to write it down.

It still allows me to move it.
Last edit: 22 Jun 2019 07:05 by Type_Zero_Design.

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

More
22 Jun 2019 08:02 - 22 Jun 2019 10:22 #137564 by Hakan
Replied by Hakan on topic Servo config issues
I would guess the error comes because of too high max-velocity setting. With so many pulses/inch and taken the timing of the pulses into account, it can't move that fast. So the max velocity is pushed down to what is possible, Just lower max velocity in the ini file. I would guess, again, that somewhere in the servo config/tuning software there is an option to change pulses/rev, you can do that if this is a problem. The 7i85s will handle the encoder pulses just fine.

I think the 50kpulses/inch is about right. And strangely enough, when you enable the feedback from the encoder, it doesn't have to be exact. The PID loop will push out extra pulses as needed to get the position, the encoder is the valid source for that.

When using an open loop and stepper motors the pulses/unit must be exact. But here it is the encoder that is the master for the position so to say.
Last edit: 22 Jun 2019 10:22 by Hakan.

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

More
22 Jun 2019 14:11 - 22 Jun 2019 15:06 #137590 by PCW
Replied by PCW on topic Servo config issues
I think the error you are getting is from LinuxCNC saying you cannot reach your programmed
(in the ini file) velocity with your current step settings.

This means that if you wish to go as fast as your ini file velocity settings,
you must reduce the steplength and stepspace settings in your ini file.

For example, if you use the default 5000 ns steplength and 5000 ns stepspace
settings in the latest pncconf, you will be limited to 100KHz maximum step rate
( maximum step rate = 1/(steplength+stepspace) )
which is about 120 IPM with you current scaling. If your drive can take shorter pulses.
you can raise this limit. For example, if your drive can accept 1000 ns (1 us) pulses
you could move at nearly 600 IPM

( Assuming you servos/ballscrews are happy at ~3000 RPM! )
Last edit: 22 Jun 2019 15:06 by PCW. Reason: clarify

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

Moderators: PCWjmelson
Time to create page: 0.117 seconds
Powered by Kunena Forum