From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Encoder position not automatically resetting on z pulse

I am using a PCI-7344 motion control card with a UMI-7764 break out box. Connected to this is a Pepperl & Fuchs 1024 line encoder.

Problem 1
The encoder counts up and down ok but gives 4096 counts between z pulses and not 1024.

Problem 2
The position does not automatically reset to zero when the z pulse is seen.

The encoder connections have been checked via oscilloscope for correct relationships (z is high when A and B are both low), but when mapping the encoder signals to RTSI signals and monitoring them, the signals are inverted.

I've tried a lot of combinations of polarity and phasing but all to no avail. What's going on??!
0 Kudos
Message 1 of 5
(3,349 Views)
Problem 1
This is not an error. See page 5-7 (note and paragraph before note) in the user manual of the 7344.

Problem 2
The Find Index function allows to reset (set to a defined value) the counter on the Z position.
But I'm afraid this can't be done during "normal" operation like with a counter card (PCI-660X).
0 Kudos
Message 2 of 5
(3,349 Views)
There are two ways you can achieve the behavior you want:

1.- Using the find reference functions configure and call an index move. Configure the reset position to 0 and the approach velocity to 100%. Refer to the NI-Moption User manual that shipped with your driver for more information on the reference move. You can also donwload it here:

http://digital.ni.com/manuals.nsf/websearch/EB609F9BA065EA7A86256D350060C9A0?OpenDocument&node=132100_US


2.- Wire your encoder index to one of the high speed capture lines. Use the read high speed capture inside a while loop to poll for the moment the index even happens and then call the reset position function to set it back to zero.
Message 3 of 5
(3,349 Views)
Thanks for that! I've now written an onboard motion program that runs continuously and resets the position on a high speed capture signal (wired directly to the z pulse). Thanks once again.
0 Kudos
Message 4 of 5
(3,349 Views)
1. The 7344 rather counts quadrature signals and so the number of pulses it will count will always be 4 times the number of encoder lines. On all encoders I have seen just the number of encoder lines per revolution is specified.

2. Unless you are using a Find Index command the 7344 won't reset the encoder pulse counter. There is more than one application where the encoder will make several turns during a full motion cycle - remember a geared drive or a worm gear drive. If the motor/encoder has to make more than one revolution to complete its motion cycle resetting the pulse counter each time the index pulse occurs would be quite disturbing.

AFAIK with the latest firmware/software version it is no more necessary that both A and B are low when the index pu
lse occurs, you can set the actual state of A and B when index occurs with a special command.

BTW in cases the encoder/motor will make several revolutions you should use a separate home switch to detect proper zero position of the drive, of course using the Find Home command. It can be combined with (or rather followed by) a Find Index command to detect the zero position more precisely.
0 Kudos
Message 5 of 5
(3,349 Views)