Adding a Mpg to a 7i85s
- Clive S
- Offline
- Platinum Member
Less
More
- Posts: 2241
- Thank you received: 476
23 Apr 2018 14:40 #109490
by Clive S
Adding a Mpg to a 7i85s was created by Clive S
I would like to add an Mpg to a mesa 5i25 port 2 with a 7i85s using encoder 1. I have come up with:-
############## The MPG input PINS on 7i85s encoder 1 ##############
net x-mpg-a encoder.1.phase-A <= hm2_5i25.0.encoder.01 input-a
net x-mpg-b encoder.1.phase-B <= hm2_5i25.0.encoder.01 input-b
setp encoder.0.x4-mode 0
# ---mpg signals---
# X Axis handwheel
setp axis.0.jog-vel-mode 0
net x-jog-enable => axis.0.jog-enable
net x-jog-count => axis.0.jog-counts
net jog-incr-x => axis.0.jog-scale
sets x-jog-enable true
sets jog-incr-x 0.01
Does this look OK to add to my custom.hal file. I have the spindle encoder working now on encoder 0. I also have set the encoders to 4 loaded.
############## The MPG input PINS on 7i85s encoder 1 ##############
net x-mpg-a encoder.1.phase-A <= hm2_5i25.0.encoder.01 input-a
net x-mpg-b encoder.1.phase-B <= hm2_5i25.0.encoder.01 input-b
setp encoder.0.x4-mode 0
# ---mpg signals---
# X Axis handwheel
setp axis.0.jog-vel-mode 0
net x-jog-enable => axis.0.jog-enable
net x-jog-count => axis.0.jog-counts
net jog-incr-x => axis.0.jog-scale
sets x-jog-enable true
sets jog-incr-x 0.01
Does this look OK to add to my custom.hal file. I have the spindle encoder working now on encoder 0. I also have set the encoders to 4 loaded.
Please Log in or Create an account to join the conversation.
- PCW
- Online
- Moderator
Less
More
- Posts: 17905
- Thank you received: 4774
23 Apr 2018 15:17 #109491
by PCW
Replied by PCW on topic Adding a Mpg to a 7i85s
It looks like you are using a software encoder, unless you need 1X mode, I would use the hardware encoders
Please Log in or Create an account to join the conversation.
- Clive S
- Offline
- Platinum Member
Less
More
- Posts: 2241
- Thank you received: 476
23 Apr 2018 15:22 #109492
by Clive S
Replied by Clive S on topic Adding a Mpg to a 7i85s
Thanks for the quick response. I want to use the hardware encoders on the 7i85s Yes I forgot I copied some of the above from my mesa 7i76 pins 16,17 software on another machine. Could you point me in the right directionIt looks like you are using a software encoder, unless you need 1X mode, I would use the hardware encoders
Please Log in or Create an account to join the conversation.
- PCW
- Online
- Moderator
Less
More
- Posts: 17905
- Thank you received: 4774
23 Apr 2018 15:46 - 23 Apr 2018 15:47 #109495
by PCW
Replied by PCW on topic Adding a Mpg to a 7i85s
There are a couple of ways to do this, simplest would be to use
hm2_5i25.0.encoder.0N.count linked to axis.0.jog-counts:
net x-jog-count => axis.0.jog-counts <= hm2_5i25.0.encoder.0N.count
A fancier way would be to use the encoder position (which is floating point and scalable) and convert it to an integer (what axis.N.jog counts expects) to do 4X to 1X conversion if you have a detented jogwheel and want only 1 jog increment per detent
hm2_5i25.0.encoder.0N.count linked to axis.0.jog-counts:
net x-jog-count => axis.0.jog-counts <= hm2_5i25.0.encoder.0N.count
A fancier way would be to use the encoder position (which is floating point and scalable) and convert it to an integer (what axis.N.jog counts expects) to do 4X to 1X conversion if you have a detented jogwheel and want only 1 jog increment per detent
Last edit: 23 Apr 2018 15:47 by PCW.
Please Log in or Create an account to join the conversation.
- Clive S
- Offline
- Platinum Member
Less
More
- Posts: 2241
- Thank you received: 476
23 Apr 2018 15:56 - 23 Apr 2018 17:03 #109496
by Clive S
Yes I have an indented jog wheel and would like to change the increment just in the hal file with the scale.
So what then would be the commands to put in the custom hal file. before I get too confused Thanks
Replied by Clive S on topic Adding a Mpg to a 7i85s
There are a couple of ways to do this, simplest would be to use
hm2_5i25.0.encoder.0N.count linked to axis.0.jog-counts:
net x-jog-count => axis.0.jog-counts <= hm2_5i25.0.encoder.0N.count
A fancier way would be to use the encoder position (which is floating point and scalable) and convert it to an integer (what axis.N.jog counts expects) to do 4X to 1X conversion if you have a detented jogwheel and want only 1 jog increment per detent
Yes I have an indented jog wheel and would like to change the increment just in the hal file with the scale.
So what then would be the commands to put in the custom hal file. before I get too confused Thanks
Last edit: 23 Apr 2018 17:03 by Clive S.
Please Log in or Create an account to join the conversation.
- Clive S
- Offline
- Platinum Member
Less
More
- Posts: 2241
- Thank you received: 476
28 Apr 2018 12:45 - 28 Apr 2018 13:47 #109759
by Clive S
Replied by Clive S on topic Adding a Mpg to a 7i85s
Ok I have tried this in a custom hal file:-
net x-jog-count axis.0.jog-counts
net x-jog-count hm2_5i25.0.encoder.01.count
And looking with halmeter I can see hm2_5i25.0.encoder.01.count change and hm2_5i25.0.encoder.01.velocity change also xxxx.01.position change
What else do I need to add to get the mpg working please.
This is from the hal file:-
# X axis
# step/dir
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
# velocity control
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1
# scaling for position feedback, position command, and velocity command, in steps per length unit.
# converts from counts to position units. position = counts / position_scale
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [AXIS_0]SCALE
# stepper driver timing parameters
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAXACCEL
# axis enable chain
newsig emcmot.00.enable bit
sets emcmot.00.enable FALSE
net emcmot.00.enable <= axis.0.amp-enable-out
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable pid.0.enable
# position command and feedback
net emcmot.00.pos-cmd axis.0.motor-pos-cmd => pid.0.command
net emcmot.00.vel-cmd axis.0.joint-vel-cmd => pid.0.command-deriv
net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb axis.0.motor-pos-fb pid.0.feedback
net motor.00.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true
# PID parameters
setp pid.0.Pgain [AXIS_0]P
setp pid.0.Igain [AXIS_0]I
setp pid.0.Dgain [AXIS_0]D
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.deadband [AXIS_0]DEADBAND
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
setp pid.0.maxerror [AXIS_0]MAX_ERROR
# P3 pin 3 gpio 004
# X step
setp hm2_[HOSTMOT2](BOARD).0.gpio.004.invert_output 1
net x-jog-count axis.0.jog-counts
net x-jog-count hm2_5i25.0.encoder.01.count
And looking with halmeter I can see hm2_5i25.0.encoder.01.count change and hm2_5i25.0.encoder.01.velocity change also xxxx.01.position change
What else do I need to add to get the mpg working please.
This is from the hal file:-
# X axis
# step/dir
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
# velocity control
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1
# scaling for position feedback, position command, and velocity command, in steps per length unit.
# converts from counts to position units. position = counts / position_scale
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [AXIS_0]SCALE
# stepper driver timing parameters
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAXACCEL
# axis enable chain
newsig emcmot.00.enable bit
sets emcmot.00.enable FALSE
net emcmot.00.enable <= axis.0.amp-enable-out
net emcmot.00.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable pid.0.enable
# position command and feedback
net emcmot.00.pos-cmd axis.0.motor-pos-cmd => pid.0.command
net emcmot.00.vel-cmd axis.0.joint-vel-cmd => pid.0.command-deriv
net motor.00.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb axis.0.motor-pos-fb pid.0.feedback
net motor.00.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true
# PID parameters
setp pid.0.Pgain [AXIS_0]P
setp pid.0.Igain [AXIS_0]I
setp pid.0.Dgain [AXIS_0]D
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.deadband [AXIS_0]DEADBAND
setp pid.0.maxoutput [AXIS_0]MAX_OUTPUT
setp pid.0.maxerror [AXIS_0]MAX_ERROR
# P3 pin 3 gpio 004
# X step
setp hm2_[HOSTMOT2](BOARD).0.gpio.004.invert_output 1
Last edit: 28 Apr 2018 13:47 by Clive S. Reason: added hal file
Please Log in or Create an account to join the conversation.
- PCW
- Online
- Moderator
Less
More
- Posts: 17905
- Thank you received: 4774
28 Apr 2018 13:51 #109761
by PCW
Replied by PCW on topic Adding a Mpg to a 7i85s
Some of your earlier hal snippets showed setting up jog enable and scale, are you still doing this?
Please Log in or Create an account to join the conversation.
- Clive S
- Offline
- Platinum Member
Less
More
- Posts: 2241
- Thank you received: 476
28 Apr 2018 13:57 #109762
by Clive S
No I scrapped that part as I think you said it was to do with software encoders. So I have started from scratch.
The halmeter shows they are counting up and down etc. I think I need scale and jog enable etc. but not sure how to implement it .
Tnx for the help.
Replied by Clive S on topic Adding a Mpg to a 7i85s
Some of your earlier hal snippets showed setting up jog enable and scale, are you still doing this?
No I scrapped that part as I think you said it was to do with software encoders. So I have started from scratch.
The halmeter shows they are counting up and down etc. I think I need scale and jog enable etc. but not sure how to implement it .
Tnx for the help.
Please Log in or Create an account to join the conversation.
- PCW
- Online
- Moderator
Less
More
- Posts: 17905
- Thank you received: 4774
28 Apr 2018 14:09 - 28 Apr 2018 14:17 #109763
by PCW
Replied by PCW on topic Adding a Mpg to a 7i85s
Normally they would be wired (in hal) to external jog enable, jog increment (and perhaps axis select)
signals that come from hardware switches or buttons+logic, but for testing, you can "setp" the pins or "sets"
the jog enable and scale signals by hand.
MPG setup can get fairly involved, for example its quite common to add a low-pass filter component in series with the jog count so that larger jog increments are no so jarring (full accel starts and stops for each increment)
signals that come from hardware switches or buttons+logic, but for testing, you can "setp" the pins or "sets"
the jog enable and scale signals by hand.
MPG setup can get fairly involved, for example its quite common to add a low-pass filter component in series with the jog count so that larger jog increments are no so jarring (full accel starts and stops for each increment)
Last edit: 28 Apr 2018 14:17 by PCW.
Please Log in or Create an account to join the conversation.
- Clive S
- Offline
- Platinum Member
Less
More
- Posts: 2241
- Thank you received: 476
28 Apr 2018 14:26 - 28 Apr 2018 18:07 #109765
by Clive S
I would like to take it one step at a time. I am putting this in a custom hal. to keep it separate. I believe that the jog wheels will only work when not running a prog. ie just like the keyboard jog.
so what else do I need to add to the custom hal. I have setp axis.0.jog-enable true (but it shows false in halmeter)
net x-jog-count axis.0.jog-counts
net x-jog-count hm2_5i25.0.encoder.01.count
setp axis.0.jog-enable true
..
Replied by Clive S on topic Adding a Mpg to a 7i85s
I want to use a mpg on each axis. basically I just want to be able to jog without the keyboard or pendant.Normally they would be wired (in hal) to external jog enable, jog increment (and perhaps axis select)
signals that come from hardware switches or buttons+logic, but for testing, you can "setp" the pins or "sets"
the signals by hand.
I would like to take it one step at a time. I am putting this in a custom hal. to keep it separate. I believe that the jog wheels will only work when not running a prog. ie just like the keyboard jog.
so what else do I need to add to the custom hal. I have setp axis.0.jog-enable true (but it shows false in halmeter)
net x-jog-count axis.0.jog-counts
net x-jog-count hm2_5i25.0.encoder.01.count
setp axis.0.jog-enable true
..
Yes I have all this set up with a 5i25/7176 using software encoder and external increment switches etc. on another machine.setup can get fairly involved, for example its quite common to add a low-pass filter component in series with the jog count so that larger jog increments are no so jarring (full accel starts and stops for each increment)
Last edit: 28 Apr 2018 18:07 by Clive S. Reason: added text
Please Log in or Create an account to join the conversation.
Time to create page: 0.079 seconds