5i25 + 7i85s +....

More
28 Dec 2016 01:10 #84780 by Emanresu
Replied by Emanresu on topic 5i25 + 7i85s +....
I got it!
Feels so good to see after being blind! I blame the X-mas trouble.... ;)

For some Reason i figured out "axis" as the "real world axis" not as the user interface.
And all my following confusion based on it....

Well then... just two more Question:

Whats the difference between hm2_5i25.0.stepgen.XX.position-fb and hm2_5i25.0.encoder.XX.position?

hm2_5i25.0.stepgen.XX.position-fb = "Hello im hm2_5i25, I sent my steps, so the axis should be at..." ?
hm2_5i25.0.encoder.XX.position = "Hello im hm2_5i25, Im counting the encoder and this is my result" ?

Where exactly does the PID "operate" ? Axis or FPGA

I guess axis. Otherwise you wont need to send hm2_5i25.0.encoder.XX.position to axis.X.motor-pos-fb by X-pos-fb right?

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

More
28 Dec 2016 01:26 #84781 by PCW
Replied by PCW on topic 5i25 + 7i85s +....

Whats the difference between hm2_5i25.0.stepgen.XX.position-fb and hm2_5i25.0.encoder.XX.position?


One is the local feedback from the stepgen the other is external position feedback from an encoder, they are used similarly


hm2_5i25.0.stepgen.XX.position-fb = Here's where the stepgen position is currently, use PID to check against the commanded position and adjust course as needed by adjusting the velocity

hm2_5i25.0.encoder.XX.position = Here's where the encoder position is currently, use PID to check against the commanded position and adjust course as needed by adjusting the velocity

Where exactly does the PID "operate" ? Axis or FPGA

I guess axis. Otherwise you wont need to send hm2_5i25.0.encoder.XX.position to axis.X.motor-pos-fb by X-pos-fb right?


Yes, the PID component performs the PID calculations every servo thread invocation in LinuxCNC
The following user(s) said Thank You: Emanresu

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

More
28 Dec 2016 01:49 #84782 by Emanresu
Replied by Emanresu on topic 5i25 + 7i85s +....
Check!

Hm,... so the most important controlling circuit happens Software based. Good to know!

And sorry, but i found something more....

Where is the "go to" Signal from Axis to 5i25?

I see:
net X-pos-cmd <= axis.2.motor-pos-cmd
net X-vel-cmd <= axis.2.joint-vel-cmd

But there is nothing like:
net z-pos-cmd => hm2_5i25.0.stepgen.XX.positon
net z-vel-cmd => hm2_5i25.0.stepgen.XX.velocity

Also there are more open links leading to nowhere. (as far as i notice) Like:

net z-vel-fb <= hm2_5i25.0.encoder.XX.velocity

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

More
28 Dec 2016 03:22 #84784 by PCW
Replied by PCW on topic 5i25 + 7i85s +....
net z-pos-cmd => hm2_5i25.0.stepgen.XX.position is possible using the built in position mode of the
stepgen, it just not quite as robust as the PID mode so pncconf uses the PID mode

In the PID stepgen control mode the equivalent of net z-vel-cmd => hm2_5i25.0.stepgen.XX.velocity
happens automatically due the the FF1 term
The following user(s) said Thank You: Emanresu

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

More
28 Dec 2016 12:49 #84802 by Emanresu
Replied by Emanresu on topic 5i25 + 7i85s +....
Check!

So... the following should be my final signal setup for one axis. But two things:

For my understanding the arrows of x-output lead in the wrong direktion. Im right? (Made by PNCconf)
Otherwise i dont see, where PID talks to 5i25.

PNCconf missed to hookup x-vel-fb back to pid.x.feedback-deriv.
On the other Hand... is there really need for this or is it just waste of cycle time?
net x-pos-fb should do all the Work.

net x-enable          <=  axis.0.amp-enable-out
net x-enable          =>  hm2_5i25.0.stepgen.00.enable
net x-enable          =>  pid.x.enable
net x-enable          =>  parport.0.pin-2-out

net x-pos-cmd         <=  axis.0.motor-pos-cmd
net x-pos-cmd         =>  pid.x.command 
               
net x-vel-cmd         <=  axis.0.joint-vel-cmd
net x-vel-cmd         =>  pid.x.command-deriv 

net x-output          <=  hm2_5i25.0.stepgen.00.velocity-cmd
net x-output          =>  pid.x.output

net x-pos-fb          <=  hm2_5i25.0.encoder.00.position
net x-pos-fb          =>  pid.x.feedback

net x-vel-fb          <=  hm2_5i25.0.encoder.00.velocity
net x-vel-fb          =>  pid.x.feedback-deriv                   


net x-index-enable  <=> pid.x.index-enable
net x-index-enable    axis.0.index-enable  <=>  hm2_5i25.0.encoder.00.index-enable

Im still looking into manuals about the index stuff.

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

More
28 Dec 2016 15:04 - 28 Dec 2016 15:05 #84806 by PCW
Replied by PCW on topic 5i25 + 7i85s +....
net x-output <= hm2_5i25.0.stepgen.00.velocity-cmd
net x-output => pid.x.output

The arrows here are both backwards (but it does not matter since the arrows are ignored)



net x-vel-fb <= hm2_5i25.0.encoder.00.velocity
net x-vel-fb => pid.x.feedback-deriv

is not necessary but will result in better control ( this is because the encoders velocity estimation is better than
the PID comps velocity estimation via D/DT of position )
Last edit: 28 Dec 2016 15:05 by PCW.
The following user(s) said Thank You: Emanresu

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

More
28 Dec 2016 16:59 #84808 by Emanresu
Replied by Emanresu on topic 5i25 + 7i85s +....
Yep, i know about the arrows. Like a wire in RL has no direktion too.
I start to like HAL!

Nice Information about hm2_5i25.0.encoder.00.velocity! didnt expect that!

Why are...

- addf hm2_5i25.0.read
- addf motion-command-handler
- addf motion-controller
- addf pid.x.do-pid-calcs
- addf pid.y.do-pid-calcs
- addf pid.z.do-pid-calcs
- addf hm2_5i25.0.write

...in the slower servo-threat instead of base-threat? Since i have no software-stepgen runnung.

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

More
28 Dec 2016 17:22 #84809 by PCW
Replied by PCW on topic 5i25 + 7i85s +....
If you are not doing software stepgens or software encoder counters
you dont need (or want) a high speed thread so only a servo thread is needed

(effectively the base thread = high speed functions are running in the FPGA)
The following user(s) said Thank You: Emanresu

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

More
28 Dec 2016 17:27 #84810 by Emanresu
Replied by Emanresu on topic 5i25 + 7i85s +....
Shouldn't the PID work as fast as possible?
Or is the System more stable in servo-threat?

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

More
28 Dec 2016 17:38 - 28 Dec 2016 18:31 #84811 by PCW
Replied by PCW on topic 5i25 + 7i85s +....
A couple of things

1. The base thread cannot do floating point

2. You can run the servo thread as fast as your hardware and PC will function
_But_ there is no advantage to running it faster than about 10 times as fast as the
controlled systems bandwidth (and for CNC systems a few hundred HZ is about as
fast as the position bandwidth loop gets) Running the loop faster just wastes CPU time
Last edit: 28 Dec 2016 18:31 by PCW.
The following user(s) said Thank You: Emanresu

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

Moderators: cmorley
Time to create page: 0.087 seconds
Powered by Kunena Forum