8i20 problem with rotor homing?
15 Apr 2024 16:46 #298299
by Henk
8i20 problem with rotor homing? was created by Henk
HI
Im having some problems setting up a motor for a 4th axis on my Deckel FP5.
We have been running this 8i20 with another 4th axis for 5 years and didn’t have any problems. Recently, we acquired another 4th axis and decided to use the new one on the deckel instead. So i copied the config and made the changes i thought necessary.
Both motors are Fanuc. Both are 8 pole (133Hz = 2000RPM). The "old" one is 1.2kw and the new one is 0.4kw.
I mounted incremental encoders on the back of the motors, and the counts/ rev is also different, but i changed this in the new config as well.
Using the BLDC component, config=QI, rotor homing seems to work ok, the motor jumps to a position, then rotates slowly and finds the encoder index
The problem:
After rotor homing, the motor draws a steady current when standing still. At standstill, this current can be either positive or negative as seen below. When loading the motor shaft by hand, i can feel a lot more resistance in the one direction compared to the other. this can also be seen in the value of the current (halscope images below). When jogging the motor fwd/rev there is a major difference in current, and the motor is not connected to the 4th axis, freewheeling. The motor also overheats with no load attached. i doubt that there is something wrong with the motor, because it is basically brand new, although this cannot be ruled out.
Relevant section of my halfile below. Im not sure how to figure out how to solve this problem.
Im having some problems setting up a motor for a 4th axis on my Deckel FP5.
We have been running this 8i20 with another 4th axis for 5 years and didn’t have any problems. Recently, we acquired another 4th axis and decided to use the new one on the deckel instead. So i copied the config and made the changes i thought necessary.
Both motors are Fanuc. Both are 8 pole (133Hz = 2000RPM). The "old" one is 1.2kw and the new one is 0.4kw.
I mounted incremental encoders on the back of the motors, and the counts/ rev is also different, but i changed this in the new config as well.
Using the BLDC component, config=QI, rotor homing seems to work ok, the motor jumps to a position, then rotates slowly and finds the encoder index
The problem:
After rotor homing, the motor draws a steady current when standing still. At standstill, this current can be either positive or negative as seen below. When loading the motor shaft by hand, i can feel a lot more resistance in the one direction compared to the other. this can also be seen in the value of the current (halscope images below). When jogging the motor fwd/rev there is a major difference in current, and the motor is not connected to the 4th axis, freewheeling. The motor also overheats with no load attached. i doubt that there is something wrong with the motor, because it is basically brand new, although this cannot be ruled out.
Relevant section of my halfile below. Im not sure how to figure out how to solve this problem.
#*******************
# AXIS a
#*******************
setp timedelay.4ax.on-delay 1
net a-init-done => not.4ax.in
net 4ax-not-init <= not.4ax.out => and2.4ax.in0
net mach-on-but => and2.4ax.in1
net initialise-4ax <= and2.4ax.out => timedelay.4ax.in
net init-4ax-delay <= timedelay.4ax.out => bldc.0.init
net a-init-done <= bldc.0.init-done => and2-4ax-mach-on.in0
net mach-on-but => and2-4ax-mach-on.in1
net latch-mach <= and2-4ax-mach-on.out => halui.machine.on
net mach-on-but => or2.mach-on.in0
net machine-is-on => or2.mach-on.in1
net machine-on <= or2.mach-on.out => hm2_5i25.0.7i71.1.0.output-07 => hm2_5i25.0.7i77.0.0.output-00
setp bldc.0.rev 0
setp bldc.0.initvalue 1
net initcurr <= bldc.0.out => sum2.0.in0
setp pid.a.Pgain [JOINT_3]P
setp pid.a.Igain [JOINT_3]I
setp pid.a.Dgain [JOINT_3]D
setp pid.a.bias [JOINT_3]BIAS
setp pid.a.FF0 [JOINT_3]FF0
setp pid.a.FF1 [JOINT_3]FF1
setp pid.a.FF2 [JOINT_3]FF2
setp pid.a.deadband [JOINT_3]DEADBAND
setp pid.a.maxoutput [JOINT_3]MAX_OUTPUT
setp pid.a.error-previous-target true
net a-index-enable <=> pid.a.index-enable
net a-enable => pid.a.enable
net a-pos-cmd => pid.a.command
#net a-vel-cmd => pid.a.command-deriv
net a-pos-fb => pid.a.feedback
net a-output => pid.a.output
# ---BLDC Generator signals/setup---
setp bldc.0.scale 10000
net a-pos-rawcounts => bldc.0.rawcounts
setp bldc.0.poles 8
net ang-a bldc.0.rotor-angle hm2_5i25.0.8i20.1.1.angle
net a-index-enable bldc.0.index-enable
setp hm2_5i25.0.8i20.1.1.current-scalemax 10
setp hm2_5i25.0.8i20.1.1.current-maxlim 10
setp hm2_5i25.0.8i20.1.1.current-minlim -10
net 8i20curr <= sum2.0.out => hm2_5i25.0.8i20.1.1.current
net a-output => sum2.0.in1
net a-pos-cmd joint.3.motor-pos-cmd
net a-enable joint.3.amp-enable-out
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.03.counter-mode 0
setp hm2_5i25.0.encoder.03.filter 1
setp hm2_5i25.0.encoder.03.index-invert 0
setp hm2_5i25.0.encoder.03.index-mask 0
setp hm2_5i25.0.encoder.03.index-mask-invert 0
setp hm2_5i25.0.encoder.03.scale [JOINT_3]ENCODER_SCALE
setp hm2_5i25.0.encoder.03.latch-enable 1
net a-pos-fb <= hm2_5i25.0.encoder.03.position
net a-vel-fb <= hm2_5i25.0.encoder.03.velocity
net a-pos-fb => joint.3.motor-pos-fb
net a-index-enable joint.3.index-enable
net a-pos-rawcounts <= hm2_5i25.0.encoder.03.rawcounts
sets a-index-enable true
net home-a <= hm2_5i25.0.7i77.0.0.input-31-not => joint.3.home-sw-in
Please Log in or Create an account to join the conversation.
15 Apr 2024 16:59 #298300
by PCW
Replied by PCW on topic 8i20 problem with rotor homing?
My guess is the the index position does not = magnetic phase angle 0
You may have to rotate the encoder. It may be possible to use one of the
BLDC offset pins for this but I am not sure about those.
You may have to rotate the encoder. It may be possible to use one of the
BLDC offset pins for this but I am not sure about those.
Please Log in or Create an account to join the conversation.
16 Apr 2024 05:50 #298339
by Henk
Replied by Henk on topic 8i20 problem with rotor homing?
HI PCW, thanks for replying so soon. I will try rotating the encoder and align the index with a magnetic zero.
I was under the impression that with the QI config, the offset will be measured using the index-latch after first aligning the rotor magnetically. But reading the man page it doesn't explicitly state that.
Henk
I was under the impression that with the QI config, the offset will be measured using the index-latch after first aligning the rotor magnetically. But reading the man page it doesn't explicitly state that.
Henk
Please Log in or Create an account to join the conversation.
26 Apr 2024 12:54 #299115
by Henk
Replied by Henk on topic 8i20 problem with rotor homing?
Hi
Just some feedback in case it may help someone in the future..
With the motor removed from the machine, I used the terminal to sets the index-enable pin true. "halcmd sets a-index-enable 1", then checked the counts in halshow while i rotated the motor shaft slowly by hand. When the counts reset i moved the shaft to get close to 0 counts, just in case...
I then connected a small 12v lead-acid battery briefly to the motor power cable with U on + and V+W on -, as the man page suggests and let the motor jump to the nearest magnetic zero.
Hal configuration showed negative 958 (-958). My encoder counts/rev is 10000, so i added a line in my hal file: "setp bldc.0.encoder-offset 9042" (10000-958 = 9042.
The result was that the current was nearly equal in both directions. I actually tweaked the offset value a bit to get it better, but it was very close.
This solved the issue described above.
Thanks to PCW for pushing me in the right direction.
Regards
Henk
Just some feedback in case it may help someone in the future..
With the motor removed from the machine, I used the terminal to sets the index-enable pin true. "halcmd sets a-index-enable 1", then checked the counts in halshow while i rotated the motor shaft slowly by hand. When the counts reset i moved the shaft to get close to 0 counts, just in case...
I then connected a small 12v lead-acid battery briefly to the motor power cable with U on + and V+W on -, as the man page suggests and let the motor jump to the nearest magnetic zero.
Hal configuration showed negative 958 (-958). My encoder counts/rev is 10000, so i added a line in my hal file: "setp bldc.0.encoder-offset 9042" (10000-958 = 9042.
The result was that the current was nearly equal in both directions. I actually tweaked the offset value a bit to get it better, but it was very close.
This solved the issue described above.
Thanks to PCW for pushing me in the right direction.
Regards
Henk
The following user(s) said Thank You: akb1212, tommylight
Please Log in or Create an account to join the conversation.
Time to create page: 0.079 seconds