How to test linear encoders?
15 Mar 2021 20:35 #202404
by Markyd
How to test linear encoders? was created by Markyd
My end game here to to provide position feedback for my 3 axis mill with glass scales. I have got as far as wiring the scales upto a 7i85s that is plugged into a 7i96. I can use the Watch window to view the encoder counts. The figures look sensible as I have a count of 200 per mm which corresponds to the 5um scales i have.
Where next? I'd ideally like to display the output in mm in axis. Is there an easy way to do this without going as far as linking them to the actual position feedback signals? Can I create my own signals and display those?
Where next? I'd ideally like to display the output in mm in axis. Is there an easy way to do this without going as far as linking them to the actual position feedback signals? Can I create my own signals and display those?
Please Log in or Create an account to join the conversation.
- tommylight
- Away
- Moderator
Less
More
- Posts: 19209
- Thank you received: 6438
15 Mar 2021 21:29 #202417
by tommylight
Replied by tommylight on topic How to test linear encoders?
linuxcnc.org/docs/2.8/html/
The "Virtual Control Panels" section, several ways of doing it.
The "Virtual Control Panels" section, several ways of doing it.
The following user(s) said Thank You: Markyd
Please Log in or Create an account to join the conversation.
17 Mar 2021 15:26 #202604
by andypugh
Replied by andypugh on topic How to test linear encoders?
Linking them to the joint.N.motor-pos-fb pins will actually display the positions in mm in Axis. I know you said that you didn't want to do that, but it will work if you can move the axes (or just the scales) with LinuxCNC disabled.
If you leave any other feedback unchanged all that will happen is F-error faults if the settings are wrong. The feedback to the motor-pos-fb is used _only_ to detect following-errors.
If you leave any other feedback unchanged all that will happen is F-error faults if the settings are wrong. The feedback to the motor-pos-fb is used _only_ to detect following-errors.
Please Log in or Create an account to join the conversation.
17 Mar 2021 17:31 #202607
by Markyd
Replied by Markyd on topic How to test linear encoders?
Andy, it ironic, I didn't include hand wheels on my conversion after reading in your build log that you'd not used them and wondered why you'd gone to all the effort of including them! Mine's a Harrison vertical.
I was trying to compare the commanded position with actual to look at how accurate it is, and what the backlash looks like, before going the whole hog and connecting it up properly in hal. If I can get the scale component to work I think ill just use the watch window instead of trying to add them to axis.
I was trying to compare the commanded position with actual to look at how accurate it is, and what the backlash looks like, before going the whole hog and connecting it up properly in hal. If I can get the scale component to work I think ill just use the watch window instead of trying to add them to axis.
Please Log in or Create an account to join the conversation.
17 Mar 2021 18:25 #202615
by andypugh
Replied by andypugh on topic How to test linear encoders?
As long as the PID gets the feedback from the same place as before, you can connect the scales to motor-pos-fb and move the axes under power.
You will know that you have the scales set up right when you don't get an f-error
You will know that you have the scales set up right when you don't get an f-error
Please Log in or Create an account to join the conversation.
17 Mar 2021 19:30 - 17 Mar 2021 19:47 #202622
by Markyd
Replied by Markyd on topic How to test linear encoders?
not sure i follow Andy,
what is the source of the motor feedback currently (its a stepper system), is it hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb ? My hal is from JohnT's 7i96 config tool, hence the [HOSTMOT2](BOARD) syntax.
Does the axis DRO take motor.0.pos-fb as it's input signal?
what woul happen if i test the x axis by connecting the y axis dro to x axis encoder? will it throw a folloing error even without me commanding movement on the y axis?
below is what i assume is the relevant part of the hal;
# position command and feedback
net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command
net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb joint.0.motor-pos-fb pid.0.feedback
net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true
what is the source of the motor feedback currently (its a stepper system), is it hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb ? My hal is from JohnT's 7i96 config tool, hence the [HOSTMOT2](BOARD) syntax.
Does the axis DRO take motor.0.pos-fb as it's input signal?
what woul happen if i test the x axis by connecting the y axis dro to x axis encoder? will it throw a folloing error even without me commanding movement on the y axis?
below is what i assume is the relevant part of the hal;
# position command and feedback
net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command
net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb joint.0.motor-pos-fb pid.0.feedback
net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true
Last edit: 17 Mar 2021 19:47 by Markyd.
Please Log in or Create an account to join the conversation.
17 Mar 2021 19:57 #202630
by andypugh
Yes, as it will see an uncommanded movement.
Change
To
(replacing "encoder.0" with your actual encoder. probably hm2_7960.encoder.00.position)
Replied by andypugh on topic How to test linear encoders?
what woul happen if i test the x axis by connecting the y axis dro to x axis encoder? will it throw a following error even without me commanding movement on the y axis?
Yes, as it will see an uncommanded movement.
Change
# position command and feedback
net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command
net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb joint.0.motor-pos-fb pid.0.feedback
net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true
To
# position command and feedback
net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command
net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb pid.0.feedback
net scale-fb encoder.0.position => joint.0.motor-pos-fb
net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true
(replacing "encoder.0" with your actual encoder. probably hm2_7960.encoder.00.position)
Please Log in or Create an account to join the conversation.
17 Mar 2021 20:28 #202637
by Markyd
Replied by Markyd on topic How to test linear encoders?
thankyou, is this bit correct? net scale-fb ? should it contain a .0. somewhere?
Please Log in or Create an account to join the conversation.
17 Mar 2021 22:44 #202667
by andypugh
scale-fb here is a signal name. Those can be anything at all. Call it "Mary" if you want
Replied by andypugh on topic How to test linear encoders?
thankyou, is this bit correct? net scale-fb ? should it contain a .0. somewhere?
scale-fb here is a signal name. Those can be anything at all. Call it "Mary" if you want
The following user(s) said Thank You: Markyd
Please Log in or Create an account to join the conversation.
Time to create page: 0.109 seconds