8i20 problem with rotor homing?

More
15 Apr 2024 16:46 #298299 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.
#*******************
#  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
Attachments:

Please Log in or Create an account to join the conversation.

More
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.

Please Log in or Create an account to join the conversation.

More
16 Apr 2024 05:50 #298339 by Henk
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

Please Log in or Create an account to join the conversation.

More
26 Apr 2024 12:54 #299115 by Henk
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
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.099 seconds
Powered by Kunena Forum