Gantry machine progress
- Yannis
- Offline
- Elite Member
-
Less
More
- Posts: 295
- Thank you received: 4
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.
- andypugh
-
- Offline
- Moderator
-
Less
More
- Posts: 23377
- Thank you received: 4966
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.
- Yannis
- Offline
- Elite Member
-
Less
More
- Posts: 295
- Thank you received: 4
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.
- andypugh
-
- Offline
- Moderator
-
Less
More
- Posts: 23377
- Thank you received: 4966
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.
- Yannis
- Offline
- Elite Member
-
Less
More
- Posts: 295
- Thank you received: 4
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.
- andypugh
-
- Offline
- Moderator
-
Less
More
- Posts: 23377
- Thank you received: 4966
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.
- Yannis
- Offline
- Elite Member
-
Less
More
- Posts: 295
- Thank you received: 4
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.
- Yannis
- Offline
- Elite Member
-
Less
More
- Posts: 295
- Thank you received: 4
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.
- andypugh
-
- Offline
- Moderator
-
Less
More
- Posts: 23377
- Thank you received: 4966
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.
- Yannis
- Offline
- Elite Member
-
Less
More
- Posts: 295
- Thank you received: 4
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.089 seconds