Problem with Encoder Index Signal

More
30 Aug 2020 14:24 - 30 Aug 2020 14:56 #180077 by hardware_crash
Hey guys.

I continued working on my Brother TC211 conversion.

The machine has Indramat Ecodrive servo drives controlled via +/- 10V signals by Mesa 7i33TA.
The drives have Encoder emulation outputs which I use to feed back position to the 7i33TA.
I set the encoder count in the Indramat drives to be 4096 Impulses.
The machine uses a Mesa 4i65 connected to my host PC.
Im Using Linuxcnc 2.8 pre

After setting up orient for the Spindle I noticed that I can position the spindle with M19 R0 in different angles but when I let the spindle run with M3 or M4 and try to position it again with M19 it stops at different positions than before.

So my guess was that the index signal could be faulty.

As far as I understood encoder.N.index-enable should be disabled (when enabled manualy) after it gets an impulse on encoder.N.input-index ?

Here is what it looks like after powering up the machine:


The Spindle (encoder.00.input-index) stays low all the time and the other axes stay high all the time.
I tried to read the index signals on all Axes but seems to not work on all of them, but my Oszi shows them ...

The A and B Encoder inputs work just fine and all axes are movable...

I meassured the output of the index signals with my Oszi.


Looks like the Index impulse is present, but I cant find a way to make it work in linuxcnc.

Maybe someone has an Input for me on this problem.

Thanks in advance
Lukas
Attachments:
Last edit: 30 Aug 2020 14:56 by hardware_crash.

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

More
30 Aug 2020 15:36 #180082 by PCW
one way to check the index operation is to:

"sets" the index enable signal and see if it gets cleared at the index position
if you rotate the axis/spindle by hand

(The index enable signal name is determined by the hal file)

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

More
30 Aug 2020 16:14 - 30 Aug 2020 16:19 #180088 by hardware_crash
Hello Peter,

Thats what I tried.
sets hm2_[HOSTMOT2](BOARD).0.encoder.00.index-enable true

but It didnt clear at any time, tried it on all axes :(

Also strange that the hm2_[HOSTMOT2](BOARD).0.encoder.N.input-index pins are always high on Axis 1,2 and 3 :blink:
Last edit: 30 Aug 2020 16:19 by hardware_crash.

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

More
30 Aug 2020 16:32 - 30 Aug 2020 16:32 #180090 by PCW
hm2_[HOSTMOT2](BOARD).0.encoder.00.index-enable is not a signal but a pin
normally this pin would be linked to a signal that connects it to the appropriate motion
pin. It is this signal that you must "sets"

You could further debug this by seeing if the input-index pin changes when you are on
the index when moving very slowly (best viewed with halscope since halshow only samples
about 10x/second)
Last edit: 30 Aug 2020 16:32 by PCW.

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

More
30 Aug 2020 16:39 - 30 Aug 2020 17:04 #180091 by hardware_crash
Your right I just wrote what I had in mind.

This is how I have it in my .hal file
net spindle-index-enable     <=>  hm2_[HOSTMOT2](BOARD).0.encoder.00.index-enable

#home the spindle during first revolution
sets spindle-index-enable true

I checked that input-index pin in Halscope but there was just a flat line.
Tried it with different spindle speeds from 5 rpm to 100rpm but always a flat line :(

The A and B lines show up as they should in Halscope.
Last edit: 30 Aug 2020 17:04 by hardware_crash.

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

More
30 Aug 2020 18:28 #180096 by PCW
If you never get input-index changing, that suggests a hardware issue
(you might try triggering on index-input because it will have a very small duty cycle)

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

More
01 Sep 2020 15:15 - 01 Sep 2020 15:21 #180335 by hardware_crash
I searched further.
Turned out that the battery of the spindle servo motor encoder (Its a Multiturn Resolver on a Indramat MKD091 Motor) was dead.
After changing the battery, I was able to get "proper" index Signal with Halscope.

I then powered the Servo Motors Break externally to be able to rotate the motor axle freely and find the index position, which served me a strange result :dry:

It seems the motor encoder has 4 Index marks all 90 degrees apart.
The Encoder emulation output seems to throw these 4 index positions too.
Guess thats why I have that strange behavior with orient M19 R0 stopping at different positions but all in 90 degree segments...

I dont really understand why they use 4 index impulses instead of one but now I need to find a way to work with 4 index signals per Rev.

Do you have any Ideas how to handle that ?
Last edit: 01 Sep 2020 15:21 by hardware_crash.

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

More
01 Sep 2020 18:26 #180345 by PCW
For homing, 4 index locations per turn would be OK as long as
the home switch is accurate enough and set properly so you cannot
home to the wrong index. As long as you have a single index on
the Spindle it should be OK.

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

More
20 Sep 2020 08:09 #182835 by hardware_crash
So it seems I cant index the spindle with 4 index locations as far as I understood..

I thought about two solutions:
- Use an additional switch ( like proximity switch ) on the spindle to act like a homing switch and after this one got active use the next index pulse on the spindle motors encoder to position.
- Use an additional switch ( like proximity switch ) on the spindle as index signal.

Is this possible ?
Is there a way to use a proximity switch as "Encoder" index signal on a Mesa 7i33TA with differential inputs ?
Or is it possible to connect the proximity switch as normal input and connect it in hal with orient component to use it as index ?

Thanks for your help

Lukas

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

Time to create page: 0.141 seconds
Powered by Kunena Forum