LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Reading Heidenhain optical encoder from PXI labview RT at 10KHz

Dear all,

 

 I am looking for the way to read a Heidenhain optical sensor from a PXI with labview RT (ETS) at a frequency between 5KHz and 10KHz. Between the optical encoder and the PXI there will be an electronics by Heidenhain interpolating the 1Vpp sin-cos signal with 4096 points. The output of this electronic can be UDP, Endat, Fanuc serial interface or Mitsubishi serial interface.

 

In the PXI side I have found interfaces for UDP (PXI 8231) and Fanuc (CEI-620 by Fanuc) but I am not sure if It will be a good solution for a control loop at 10KHz. In order to achieve the 10KHz I think is better to do it in one motion control card like the PXI 7350, without having to use several cards in each iteration, but unfortunately the Heidenhain interpolating electronics that gets to 4096 points does not have the appropriate interface for this card (Quad A+B) TTL.

 

I have also considered using IK220 but I am not sure if can fit in a PXI using an special cable and the drivers will be compatible with LV RT. This card has a dll and the dll checker by NI indicates that many function of this dll are compatible with LVRT but not all of them. Moreover accesing a PCI card using a dll at 10KHz seems to me too optimistic.

 

Is there someone with similar experience that could suggest something?. Simply talking about it can help 🙂

 

Thanks and best regards

0 Kudos
Message 1 of 8
(5,539 Views)

I don't think you are going to be able to do anything serial at 10kHz.  I've used Heidenhain optical encoders and connected to them serial at 9600 baud.  It sends a command (I think Ctrl-B) reads a reponse  (ASCII characters spelling at the distance ending with a LF character, about 10-12 characters.)  9600 baud is about 1000 characters per second.  Let's say 15 characters between sending and receiving, your talking only about 60 readings per second.  For my applications, I only need a few readings per second, so I am just fine.

 

Let's say you were continuously reading only 1 byte worth of data at 10 kHz.  That would be about 100,000 bits per second.    That would be at the high end of a any serial interface could do.

0 Kudos
Message 2 of 8
(5,530 Views)

Check this page for heidehain external electronics boxes. I would think the IBV or EXE series should have a signal compatible with any motion card.

http://www.heidenhain.com/index.php?WCMSGroup_479_177=839&WCMSGroup_2238_177=479&WCMSGroup_839_177=8...

 

I had an application once that used some ic chips from US Digital to convert heidenhain quadrature signals into CMOS clock pulses for a digital scope external trigger input.

http://usdigital.com/

0 Kudos
Message 3 of 8
(5,506 Views)

Hello

 

Thank you for your answers. As far as I know the Fanuc serial interface is based on RS232 and the answer about the bit rate limitation is fully correct. Concerning the other options  provided by Heidenhain Endat 2.2 and UDP:

 

Endat2.2 is based on RS485 so the baud rate limit should not be too far from 35Mbps for short cables. Assuming at least 50% bits for measuremnt data and two bytes per measurement, 10KHz should not be a problem. The problem with this is that there is not an Endat 2.2 interface by National Instruments, or I have not found it.

 

UDP. It can correctly manage 10K datagrams per second with a 100Mbps ethernet line. The problem is that my experience using UDP for servo controls is that even using a powerful PXI controller and the ethernet embedded in it the time to close the loop is between 150microseconds and 100 microsends depending on the controller implemented. So 10KHz sampling and comanding frequency would be too close to its limit, providing a bad jitter when the CPU is doing LVRT OS tasks.

 

The electronics boxes by Heidenhain with interpolation of 4000 points, as I need, provide as output: 1Vpp, endat, Fanuc and Mitsubishi serial interfaces. 

 

One more option I am considering is looking for a compact all in one: sine-cosine reading +  servo controller + power output. Discarding FAnuc and Mitsubishi because of the serial interface baud rate limitation, only 1Vpp and Endat are the options and there are not cards reading such formats available for PXI. I have found a Compact RIO module that reads ENdat.

 

Of course you can acquire the 1Vpp signal and perform the interpolation your self, but for 4000 points, achieving good accuracy and precision it is not easy at all. I will check if it is posible to obtain an Intelectual Property Core doing this interpolation and deploy it in a PXI card that includes  A/D converter and FPGA in one card.

 

One more option is to use a product from different vendors, because the 1Vpp and Endat format is somenthing usual in the motion control sector.

 

 

Best regards

Miguel 

0 Kudos
Message 4 of 8
(5,499 Views)

I have done some work with a PXI-6602 counter card. Follow this link below

 

http://forums.ni.com/ni/board/message?board.id=40&message.id=2109

 

My nic was WantToGolf originally.

 

In this discussion I was using the Heidenhain interpolation boxes.

0 Kudos
Message 5 of 8
(5,498 Views)
0 Kudos
Message 6 of 8
(5,473 Views)

Dear all,

 

Thank you for your answers.

 

The experience reading an AquadB encoder output with PXI-6602 is quite interesting, I will keep the link in the case that we need it. I guess you know that the motion control cards like PXI-7350 also read this kind of signal directly. I am wondering what is the easiest way to read AquadB from a compact RIO digital module.

 

Concerning  the Compact RIO module reading Endat it seems to be good and I have already asked for an offer to SEA gmbh. I am checking the convenience of moving to compact RIO solutions.

 

 

Best regards

Miguel

 

0 Kudos
Message 7 of 8
(5,451 Views)

The "Measure Angular Position.vi" is still part of LabVIEW 8.6 examples. It lists CompaqRIO NI-9401 as a compatible hardware requirement to run the VI. Seems like it should work although this module is not as fast as the 6602. Be careful not to exceed the maximum counting speed for this system.

 

BTW: I didn't use the PXI-7350 motion control cards because I only needed to measure position. Motion control was not required so it seemed like a waste to purchase the card for just the encoder connection. The line receiver chips for differential encoder outputs are the least expensive way to go IMO.

0 Kudos
Message 8 of 8
(5,445 Views)