Gantry machine progress
01 Aug 2017 15:15 #96840
by Yannis
Replied by Yannis on topic Gantry machine progres
join0 to tune0 to x one rotation of the motor axis 10mm correct(encoder scale 800)
joint1,joint2 to tune1,tune2 to y1,y2 one rotation of the motor axis 7298mm (encoder scale 800)common P>I>D>settings
joint1,joint2 to tune1,tune2 to y1,y2 one rotation of the motor axis 7298mm (encoder scale 800)common P>I>D>settings
Please Log in or Create an account to join the conversation.
01 Aug 2017 18:29 #96851
by andypugh
For Y1 ou seem to be choosing the PID gains from the [JOINT_2] section (and I wouldn't) and the encoder scale from the [JOINT_1] section (and I wouldn't
But the main error is that you are setting the scale of encoder.01 in the joint.02 section.
Replied by andypugh on topic Gantry machine progres
setp pid.y1.Pgain [JOINT_2]P
setp pid.y1.Igain [JOINT_2]I
setp pid.y1.Dgain [JOINT_2]D
setp pid.y1.bias [JOINT_2]BIAS
setp pid.y1.FF0 [JOINT_2]FF0
setp pid.y1.FF1 [JOINT_2]FF1
setp pid.y1.FF2 [JOINT_2]FF2
setp pid.y1.deadband [JOINT_2]DEADBAND
setp pid.y1.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.y1.error-previous-target true
net y1-index-enable <=> pid.y1.index-enable
net y1-enable => pid.y1.enable
net y1-pos-cmd => pid.y1.command
net y1-vel-cmd => pid.y1.command-deriv
net y1-pos-fb => pid.y1.feedback
net y1-output => pid.y1.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout2-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout2-minlim [JOINT_1]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [JOINT_1]OUTPUT_MAX_LIMIT
net y1-output => hm2_5i25.0.7i77.0.1.analogout2
net y1-pos-cmd joint.2.motor-pos-cmd
net y1-enable joint.2.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y1-pos-fb <= hm2_5i25.0.encoder.02.position
net y1-vel-fb <= hm2_5i25.0.encoder.02.velocity
net y1-pos-fb => joint.2.motor-pos-fb
net y1-index-enable joint.2.index-enable <=> hm2_5i25.0.encoder.02.index-enable
net y1-pos-rawcounts <= hm2_5i25.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net y1-home-sw => joint.2.home-sw-in
net y1-neg-limit => joint.2.neg-lim-sw-in
net y1-pos-limit => joint.2.pos-lim-sw-in
For Y1 ou seem to be choosing the PID gains from the [JOINT_2] section (and I wouldn't) and the encoder scale from the [JOINT_1] section (and I wouldn't
But the main error is that you are setting the scale of encoder.01 in the joint.02 section.
Please Log in or Create an account to join the conversation.
02 Aug 2017 06:47 #96880
by Yannis
Replied by Yannis on topic Gantry machine progres
#----y1---
setp pid.y1.Pgain [JOINT_1]P
setp pid.y1.Igain [JOINT_1]I
setp pid.y1.Dgain [JOINT_1]D
setp pid.y1.bias [JOINT_1]BIAS
setp pid.y1.FF0 [JOINT_1]FF0
setp pid.y1.FF1 [JOINT_1]FF1
setp pid.y1.FF2 [JOINT_1]FF2
setp pid.y1.deadband [JOINT_1]DEADBAND
setp pid.y1.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y1.error-previous-target true
net y1-index-enable <=> pid.y1.index-enable
net y1-enable => pid.y1.enable
net y1-pos-cmd => pid.y1.command
net y1-vel-cmd => pid.y1.command-deriv
net y1-pos-fb => pid.y1.feedback
net y1-output => pid.y1.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout2-scalemax [JOINT_2]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT
net y1-output => hm2_5i25.0.7i77.0.1.analogout2
net y1-pos-cmd joint.2.motor-pos-cmd
net y1-enable joint.2.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale [JOINT_2]ENCODER_SCALE
net y1-pos-fb <= hm2_5i25.0.encoder.02.position
net y1-vel-fb <= hm2_5i25.0.encoder.02.velocity
net y1-pos-fb => joint.2.motor-pos-fb
net y1-index-enable joint.2.index-enable <=> hm2_5i25.0.encoder.02.index-enable
net y1-pos-rawcounts <= hm2_5i25.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net y1-home-sw => joint.2.home-sw-in
net y1-neg-limit => joint.2.neg-lim-sw-in
net y1-pos-limit => joint.2.pos-lim-sw-in
is this the right values?
setp pid.y1.Pgain [JOINT_1]P
setp pid.y1.Igain [JOINT_1]I
setp pid.y1.Dgain [JOINT_1]D
setp pid.y1.bias [JOINT_1]BIAS
setp pid.y1.FF0 [JOINT_1]FF0
setp pid.y1.FF1 [JOINT_1]FF1
setp pid.y1.FF2 [JOINT_1]FF2
setp pid.y1.deadband [JOINT_1]DEADBAND
setp pid.y1.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y1.error-previous-target true
net y1-index-enable <=> pid.y1.index-enable
net y1-enable => pid.y1.enable
net y1-pos-cmd => pid.y1.command
net y1-vel-cmd => pid.y1.command-deriv
net y1-pos-fb => pid.y1.feedback
net y1-output => pid.y1.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout2-scalemax [JOINT_2]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT
net y1-output => hm2_5i25.0.7i77.0.1.analogout2
net y1-pos-cmd joint.2.motor-pos-cmd
net y1-enable joint.2.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale [JOINT_2]ENCODER_SCALE
net y1-pos-fb <= hm2_5i25.0.encoder.02.position
net y1-vel-fb <= hm2_5i25.0.encoder.02.velocity
net y1-pos-fb => joint.2.motor-pos-fb
net y1-index-enable joint.2.index-enable <=> hm2_5i25.0.encoder.02.index-enable
net y1-pos-rawcounts <= hm2_5i25.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net y1-home-sw => joint.2.home-sw-in
net y1-neg-limit => joint.2.neg-lim-sw-in
net y1-pos-limit => joint.2.pos-lim-sw-in
is this the right values?
Please Log in or Create an account to join the conversation.
02 Aug 2017 10:34 #96888
by andypugh
Replied by andypugh on topic Gantry machine progres
No, you are still over-writing the values for encoder.01 in the Y1 section rather than setting the values for encoder.02
Please Log in or Create an account to join the conversation.
02 Aug 2017 10:49 #96889
by Yannis
Replied by Yannis on topic Gantry machine progres
if you do thinks with out now what you are doing this is what happens
#*******************
# JOINT Y0
#*******************
setp pid.y0.Pgain [JOINT_1]P
setp pid.y0.Igain [JOINT_1]I
setp pid.y0.Dgain [JOINT_1]D
setp pid.y0.bias [JOINT_1]BIAS
setp pid.y0.FF0 [JOINT_1]FF0
setp pid.y0.FF1 [JOINT_1]FF1
setp pid.y0.FF2 [JOINT_1]FF2
setp pid.y0.deadband [JOINT_1]DEADBAND
setp pid.y0.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y0.error-previous-target true
net y0-index-enable <=> pid.y0.index-enable
net y0-enable => pid.y0.enable
net y0-pos-cmd => pid.y0.command
net y0-vel-cmd => pid.y0.command-deriv
net y0-pos-fb => pid.y0.feedback
net y0-output => pid.y0.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout1-minlim [JOINT_1]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout1-maxlim [JOINT_1]OUTPUT_MAX_LIMIT
net y0-output => hm2_5i25.0.7i77.0.1.analogout1
net y0-pos-cmd joint.1.motor-pos-cmd
net y0-enable joint.1.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y0-pos-fb <= hm2_5i25.0.encoder.01.position
net y0-vel-fb <= hm2_5i25.0.encoder.01.velocity
net y0-pos-fb => joint.1.motor-pos-fb
net y0-index-enable joint.1.index-enable <=> hm2_5i25.0.encoder.01.index-enable
net y0-pos-rawcounts <= hm2_5i25.0.encoder.01.rawcounts
# ---setup home / limit switch signals---
net y0-home-sw => joint.1.home-sw-in
net y0-neg-limit => joint.1.neg-lim-sw-in
net y0-pos-limit => joint.1.pos-lim-sw-in
#----y1---
setp pid.y1.Pgain [JOINT_1]P
setp pid.y1.Igain [JOINT_1]I
setp pid.y1.Dgain [JOINT_1]D
setp pid.y1.bias [JOINT_1]BIAS
setp pid.y1.FF0 [JOINT_1]FF0
setp pid.y1.FF1 [JOINT_1]FF1
setp pid.y1.FF2 [JOINT_1]FF2
setp pid.y1.deadband [JOINT_1]DEADBAND
setp pid.y1.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y1.error-previous-target true
net y1-index-enable <=> pid.y1.index-enable
net y1-enable => pid.y1.enable
net y1-pos-cmd => pid.y1.command
net y1-vel-cmd => pid.y1.command-deriv
net y1-pos-fb => pid.y1.feedback
net y1-output => pid.y1.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT
net y1-output => hm2_5i25.0.7i77.0.1.analogout2
net y1-pos-cmd joint.2.motor-pos-cmd
net y1-enable joint.2.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.02.counter-mode 0
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.index-invert 0
setp hm2_5i25.0.encoder.02.index-mask 0
setp hm2_5i25.0.encoder.02.index-mask-invert 0
setp hm2_5i25.0.encoder.02.scale [JOINT_2]ENCODER_SCALE
net y1-pos-fb <= hm2_5i25.0.encoder.02.position
net y1-vel-fb <= hm2_5i25.0.encoder.02.velocity
net y1-pos-fb => joint.2.motor-pos-fb
net y1-index-enable joint.2.index-enable <=> hm2_5i25.0.encoder.02.index-enable
net y1-pos-rawcounts <= hm2_5i25.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net y1-home-sw => joint.2.home-sw-in
net y1-neg-limit => joint.2.neg-lim-sw-in
net y1-pos-limit => joint.2.pos-lim-sw-in
is this near to what i try to fix?
#*******************
# JOINT Y0
#*******************
setp pid.y0.Pgain [JOINT_1]P
setp pid.y0.Igain [JOINT_1]I
setp pid.y0.Dgain [JOINT_1]D
setp pid.y0.bias [JOINT_1]BIAS
setp pid.y0.FF0 [JOINT_1]FF0
setp pid.y0.FF1 [JOINT_1]FF1
setp pid.y0.FF2 [JOINT_1]FF2
setp pid.y0.deadband [JOINT_1]DEADBAND
setp pid.y0.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y0.error-previous-target true
net y0-index-enable <=> pid.y0.index-enable
net y0-enable => pid.y0.enable
net y0-pos-cmd => pid.y0.command
net y0-vel-cmd => pid.y0.command-deriv
net y0-pos-fb => pid.y0.feedback
net y0-output => pid.y0.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout1-minlim [JOINT_1]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout1-maxlim [JOINT_1]OUTPUT_MAX_LIMIT
net y0-output => hm2_5i25.0.7i77.0.1.analogout1
net y0-pos-cmd joint.1.motor-pos-cmd
net y0-enable joint.1.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp hm2_5i25.0.encoder.01.scale [JOINT_1]ENCODER_SCALE
net y0-pos-fb <= hm2_5i25.0.encoder.01.position
net y0-vel-fb <= hm2_5i25.0.encoder.01.velocity
net y0-pos-fb => joint.1.motor-pos-fb
net y0-index-enable joint.1.index-enable <=> hm2_5i25.0.encoder.01.index-enable
net y0-pos-rawcounts <= hm2_5i25.0.encoder.01.rawcounts
# ---setup home / limit switch signals---
net y0-home-sw => joint.1.home-sw-in
net y0-neg-limit => joint.1.neg-lim-sw-in
net y0-pos-limit => joint.1.pos-lim-sw-in
#----y1---
setp pid.y1.Pgain [JOINT_1]P
setp pid.y1.Igain [JOINT_1]I
setp pid.y1.Dgain [JOINT_1]D
setp pid.y1.bias [JOINT_1]BIAS
setp pid.y1.FF0 [JOINT_1]FF0
setp pid.y1.FF1 [JOINT_1]FF1
setp pid.y1.FF2 [JOINT_1]FF2
setp pid.y1.deadband [JOINT_1]DEADBAND
setp pid.y1.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y1.error-previous-target true
net y1-index-enable <=> pid.y1.index-enable
net y1-enable => pid.y1.enable
net y1-pos-cmd => pid.y1.command
net y1-vel-cmd => pid.y1.command-deriv
net y1-pos-fb => pid.y1.feedback
net y1-output => pid.y1.output
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT
net y1-output => hm2_5i25.0.7i77.0.1.analogout2
net y1-pos-cmd joint.2.motor-pos-cmd
net y1-enable joint.2.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.02.counter-mode 0
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.index-invert 0
setp hm2_5i25.0.encoder.02.index-mask 0
setp hm2_5i25.0.encoder.02.index-mask-invert 0
setp hm2_5i25.0.encoder.02.scale [JOINT_2]ENCODER_SCALE
net y1-pos-fb <= hm2_5i25.0.encoder.02.position
net y1-vel-fb <= hm2_5i25.0.encoder.02.velocity
net y1-pos-fb => joint.2.motor-pos-fb
net y1-index-enable joint.2.index-enable <=> hm2_5i25.0.encoder.02.index-enable
net y1-pos-rawcounts <= hm2_5i25.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net y1-home-sw => joint.2.home-sw-in
net y1-neg-limit => joint.2.neg-lim-sw-in
net y1-pos-limit => joint.2.pos-lim-sw-in
is this near to what i try to fix?
Please Log in or Create an account to join the conversation.
02 Aug 2017 11:17 #96890
by andypugh
Replied by andypugh on topic Gantry machine progres
This looks wrong too:
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout1-scalemax [JOINT_1]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout2-minlim [JOINT_2]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout2-maxlim [JOINT_2]OUTPUT_MAX_LIMIT
Please Log in or Create an account to join the conversation.
02 Aug 2017 11:24 - 02 Aug 2017 11:34 #96891
by Yannis
Replied by Yannis on topic Gantry machine progres
i have to change the Joint 1 to Joint 2 right?
Last edit: 02 Aug 2017 11:34 by Yannis.
Please Log in or Create an account to join the conversation.
02 Aug 2017 11:33 #96893
by Yannis
Replied by Yannis on topic Gantry machine progres
sorry and the analog1 to analog2
Please Log in or Create an account to join the conversation.
02 Aug 2017 11:35 #96894
by andypugh
Replied by andypugh on topic Gantry machine progres
No, the problem is the analogout1.
[JOINT_1] might be correct, if you want to share settings.
(But you really do need to make a decision about that, and be consistent)
[JOINT_1] might be correct, if you want to share settings.
(But you really do need to make a decision about that, and be consistent)
Please Log in or Create an account to join the conversation.
02 Aug 2017 12:03 #96898
by Yannis
Replied by Yannis on topic Gantry machine progres
ok
i change the values an it is the first time i have both y0 and y1 enable and stand still
i can not home the machine because of a problem with the z axis break
when i try to jog the y axis only the y0 motor is rotating, the acceleration on the display is moving, but not the y axis value
where to look for this
i change the values an it is the first time i have both y0 and y1 enable and stand still
i can not home the machine because of a problem with the z axis break
when i try to jog the y axis only the y0 motor is rotating, the acceleration on the display is moving, but not the y axis value
where to look for this
Please Log in or Create an account to join the conversation.
Time to create page: 0.113 seconds