getting started with 8i20

More
29 Jan 2015 03:53 #55431 by clematites93
Hello,
For

disconnect the PID and manually set the current from the command line


I replaced
net    emcmot.00.pos-cmd     axis.0.motor-motor-pos-cmd    =>    pid.x.command

by
net    emcmot.00.pos-cmd     axis.0.motor-motor-pos-cmd    =>    bldc.0.value

I deleted
net   motor.00.motor.command   pid.x.output   => bldc.value

but I kept
net    motor.00.current     bldc.out    => hm2_7i43.0.8i20.0.2.current

How fast does the motor turn

My motor turns, approximately, three times as fast when I use _ increments _ (0.1 --> 0.5 mm) and 100%, then I have an join's error[ /i].
For hm2_7i43.0.8i20.02.current , Halscope shows a linear increase of the current
With continuous the motor seems to have a strange behavior.....

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

More
29 Jan 2015 04:00 #55432 by clematites93
For the previous text, please excuse my errors of manipulation

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

More
30 Jan 2015 04:25 #55466 by clematites93
Hello,
By rereadting the man of the 8i20, I notice that I did not well understand this extract

The 8I20 requires reference angle and requested current/torque or voltage values sent from a host controller. The 8I20 uses the
requested torque and reference angle to control the current loop.


In mode closed loop
reference angle --> is supplied by the encoder
current --> is supplied by bldc.0.value

but, in open loop
I suppose that the reference angle is always necessary and that it is necessary to force a value of current by a setup, once the realized angular motor
alignment.
If you allow, I have several beginner's questions
* It is probably necessary to use, when Axis works, halcmd -kf with another window. Is it correct ?
* What value to give to the setup value current ?
* What is the final aim of this manipulation --> increase the speed of the motor; Why ?

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

More
30 Jan 2015 06:10 #55467 by andypugh
Replied by andypugh on topic getting started with 8i20

reference angle --> is supplied by the encoder
current --> is supplied by bldc.0.value


Yes, but no :-)

The angle is provided by the bldc component, based on the encoder feedback. Or, in fact, on whatever other feedback it is using. The bldc component can also use Hall signals or the 4-channel feedback from the Fanuc encoders.

The current command can often be supplied directly from the position control PID component. Unless you are homing magnetically or to index, in which case the bldc component needs to be able to over-ride the PID output to run the homing sequence.

The main purpose of the bldc component is to perform the commutation calculations. It calculates what phase angle the current needs to be applied at, and provides a range of command types to achieve that for various types of motor drive.

(And, if your motor has Hall sensors, I really strongly advise using them, because the magnetic homing mode is unreliable under load and index homing moves the machine in unpredictable ways)

* It is probably necessary to use, when Axis works, halcmd -kf with another window. Is it correct ?


Yes. Unless you use the "view hal configuration" menu option, but that is much less convenient.

* What value to give to the setup value current ?


That's up to you. Not so much that the motor melts into the carpet. DAMHIK.

* What is the final aim of this manipulation --> increase the speed of the motor; Why ?


To see how fast the motor _can_ run, independent of the position control loop. And to see if it runs equally well in both directions. If it doesn't run equally well in both directions then the homing sequence probably isn't working right.

Again, if you have Hall sensors, use them. If not, use index homing. But index homing needs you to work out where the index is relative to the motor phase angle _for_each_motor_.
The following user(s) said Thank You: clematites93, dkraft

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

More
30 Jan 2015 17:21 #55479 by clematites93
Hello,

Thank you very much for your patience and detailed answers.

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

More
30 Jan 2015 20:42 #55486 by clematites93
Just a question before resuming testing.
To prevent ;) the motor melts into the carpet :(

setp hm2_7i43.0.8i20.max-current 0.6
setp hm2_7i43.0.8i20.min-current -0.6
setp hm2_7i43.0.8i20.scale 0.6
in the main program used by Axis
(for example, it may be necessary to put a little more)

Is it a good idea to limit the current in the motor whatever happens during the test session.?
(whitout affecting NVMAXCURRENT)

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

More
30 Jan 2015 20:59 #55487 by andypugh
Replied by andypugh on topic getting started with 8i20

Is it a good idea to limit the current in the motor whatever happens during the test session.?
(whitout affecting NVMAXCURRENT)


To an extent, though you won't get a real feel for the motor capability if you set it too low.

I would set the limit to the motor nameplate rated current, otherwise the motor will appear very slow and weak.

When fitted to the machine you would probably set the limit to the motor max current, just for the extra accelleration. (I think my motors are rated 3A continuous, 7.5A max)

0.6A is actually very low for the 8i20. What is your max motor current?

I have only melted the carpet once, and that was when I was testing the system and forgot that the motor was stalled on the wrong commutation settings, and running high current. When the commutation is right the motor would have been spinning and it would have been hard to forget that it was powered up.
The following user(s) said Thank You: clematites93

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

More
31 Jan 2015 22:43 #55509 by clematites93
Hello,
My motor is a recovery model, it has no label.
It has neither sensors hal, nor magnetic sensor but only an encoder 2500 x 4, with Z
A second connector, which I do not use, allows probably to reach a _internal tachy_
setp hm2_7i43.0.8i20.0.2.current-maxlim       2.5
setp hm2_7i43.0.8i20.0.2.current-minlim       -2.5
setp hm2_7i43.0.8i20.0.2.current-scalemax   2.5

In closed loop, continuous mode
with (+) The motor runs at approximately 60 rpm, pin hm2_7i43.0.8i20.0.2.current --> Halscope shows a succession of _ globally positive peaks_
with (-) Difficult to estimate if turns in the same speed. Halscope --> a succession of _ globally negative peaks_

In Axis, I have (among others)
axis.0.motor-pos-pos-cmd => pid.x.command
pid.x.output => bldc.0.value
After the _correct supposed_ (??) sequence of alignment of the rotor,
with halcmd -kf
unlinkp   bldc.0.value
unlinkp   hm2_7i43.0.8i20.0.2.current

In open loop mode
Thus I suppose that bldc (_conformator ??_ very complex) supplies no more that the information of angle has the 8i20. Is it correct ?
setp hm2_7i43.0.8i20.0.2.current   -2.5
Is it correct ?
An external oscilloscope, with AC current probe (low-end, reliability ?? 1mV --> 100 mA), clipped successively onto power motor cables ( U, V, W) don't show _sinusoidal signal_
With a tachometer without contact, (low-end, reliability ?? and skill of the operator !!), I find 500 < rpm < 1200 :(

If
setp hm2_7i43.0.8i20.0.2.current 2.5
The motor turns the other way
External oscilloscope --> an _approximative sinusoidal signal_ ; period approximately 40 mS
Without lingering over reliability of the values, the amplitude is clearly more important (x4) and the motor turns lower.

The motor _sings_ differently in one direction and in the other.

My sequence of alignment of the rotor, adapted from another program
net  x-index-enable    hm2_7i43.0.encoder.01.index   <=>   bldc.0.index-enable
net  x-index-enable                                                            <=>   pid.x.index-enable
Why bidirectionnal and is correct ?

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

More
01 Feb 2015 03:18 #55517 by clematites93
In fact, my _alignment rotor sequence_ is very incomplete

# Estop loopback + bldc + pid
net   after-estop-touch iocontrol.0.user-enable-out  =>   bldc.0.init   # after click on touch F1, start of bldc
net   after-estop-touch  => pid.x.enable   # validation of the pid
net    x.index-enable   hm2_7i43.0.encoder.01.index-enable  <=>  bldc.0.index   # bidirectional ??
net    x.index-enable   <=>  pid.x.index-enable  # bidirectional ??
net    start-axis-possible  bldc.0.init-done => iocontrol.0.emc-enable-in  # alignment realized,  validation of Axis

The engine positions slowly, by jerks, apparently always in the same place.

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

More
01 Feb 2015 03:42 #55518 by andypugh
Replied by andypugh on topic getting started with 8i20

# Estop loopback + bldc + pid
[code]   net   after-estop-touch iocontrol.0.user-enable-out  =>   bldc.0.init   # after click on touch F1, start of bldc
net   after-estop-touch  => pid.x.enable
The engine positions slowly, by jerks, apparently always in the same place.


I think that you want to connect pid.x.enable to the init-done pin, so that the pid does not interfere with the bldc.homing motion.

Do you _know_ that the index is at the motor electrical zero position?

You can find this sort-off of-line.
First find a small power supply, even a battery, and connect the +ve to phase A of the motor, and the negative to phases B and C.
That will find you one of the magnetic zeros. You probably have two of them. If the current is low then you can probably snap the motor shaft between them by hand.

Mark these positions with a marker pen on the shaft and face of the motor (or mark the keyway position if there is one) And count them. That is half your number of motor poles.

Now, start LinuxCNC but keep e-stop active. Open a halmeter window looking at encoder counts. You should see the number change as you manually rotate the shaft.

Now, to find the index you need to set index enable true, then rotate the shaft by hand until the counts go to zero.
sets x-index-enable 1
It doesn't matter if you over-shoot, you can turn back to exactly zero. Now, does that position align with one of the marks you made earlier?
The following user(s) said Thank You: clematites93, dkraft

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

Time to create page: 0.310 seconds
Powered by Kunena Forum