Showing results for 
Search instead for 
Did you mean: 

Determine motor speed/position using three channel encoder


I'm a mechanical engineering student with very little LabVIEW experience. I am trying to control two brushless DC motors, analysing speed and relative position of the two shafts using LabVIEW (7.1) and a SCB-68 DAQ.
The motors are maxon brushless motors with three channel (A,B and I) encoders. I am using maxon LSC 30/2 controllers for speed control.

What I need to do is process the incoming encoder pulses and convert them to a shaft position that will allow me to calculate the relative angular displacement between the shafts. I think it is possible to do this using the DAQmx count express vi, but this seems to only be possible for one motor? There doesn't appear to be enough connectors on the DAQ to connect two motors using this method.

Is there a sample vi that carries out this task by taking the  encoder signals as analog inputs?


Nick Pierce
0 Kudos
Message 1 of 6

The SCB-68 is actually just a connector block. The data acquisition card would have a model number like PCI-6220 or PCI-6040E. You can give us the actual model number of the card by looking in the Measurement and Automation Explorer under 'My System>Devices and Interfaces>NI-DAQmx Devices'.

It sounds like you have a Multifunction DAQ card. These only have two counters.

As far as I know, there are no examples of using analog inputs to do precise counting. It certainly could be done, but it would be a lot of coding and the accuracy of the results would not be as precise as using counters. You might want to look at some of the "Point by Point" VIs. There's a Zero crossing and a Boolean Crossing VI that may give pretty good results.

The best solution would be to use a Counter card. The PCI-6602 has 8 counters. This would give you enough to make all the measurements you need. If you have more of the multifunction cards available, you can use the counters from multiple cards to do this.


Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.
0 Kudos
Message 2 of 6
Thanks Ed,

The DAQ card I'm using is actually a PCI-6221. This will suffice for two of the motors I'm attempting to control, but there is a third that I also need to know the position of. I'l have a look at the Point by Point VIs as you have suggested an see if they can carry out the function I need.


Nick Pierce
0 Kudos
Message 3 of 6
hello Nick, can you please upload the vi coz i have the same situation but i am using the EPOS 24/5 Controller and Maxon EC brushless DC motor. I want to acquire the shaft position in degress using the encoder or hall sensor's output. Can any one pleaes help me out for this.
0 Kudos
Message 4 of 6


Can you please help me how to wire the Incremental shaft encoder to the NI SCB 68 which allows digital inputs and outputs to and from the PXI 7813R DIO Card.I am very much stuck up with this problem. Pl reply ASAP.

0 Kudos
Message 5 of 6

can you please tell me where to find this "Point to Point" VI's

0 Kudos
Message 6 of 6