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.

Counter/Timer

cancel
Showing results for 
Search instead for 
Did you mean: 

Help with photon counter data acquisition using LabView 12

Solved!
Go to solution

Hey All,

 

Chemistry graduate student here brand new to LabView and looking for some help to move in the right direction.  I am looking for help with connecting my PerkinElmer SPCM-AQR-14 (now owned by Excelitas Technologies) photon counter to LabView 12 for trace-fluorescence data acquisition.  I simply want to be able to acquire # of photon counts vs. time.  I currently have installed a PCI-6601 and use a BNC-2121 to connect the BNC output from the detector.  The detector has a digital TTL pulse output with 30 ns pulse width, and in contacting tech support about this, I was told that this pulse width was too short to be consistently detected by the 6601, but can still go ahead and give it a try.  Basically, if anyone is familiar with how to get started with this setup, ANY help would be greatly appreciated.  As I said I am brand new to LabView and am currently spending all of my free time reading through manuals and help files. 

 

Please let me know if you need any sort of additional information from me to understand what I am doing.

0 Kudos
Message 1 of 23
(16,274 Views)

Drewdav,

 

Are you wanting to control the PerkinElmer device with LabVIEW or just use the 6601 device to acquire an output from this device? If you are wanting to control the PerkinElmer device in LabVIEW, do you know what type of interface will be used (i.e. RS232, GPIB, etc.)? Also, is the number of photons detected by the detector the same as the number of rising edges in the TTL signal? If so, you'll probably want to use a Counter Input Count Edges task. Below is a link to a count edges example.

 

Counter - Count Edges

Robert B
RF Product Support Engineer
National Instruments
0 Kudos
Message 2 of 23
(16,255 Views)

Robert B,

 

Thank you for the reply.  I do not need to control/automate the PerkinElmer device itself using LabView (it has an external power supply and when switched on, the detector is constantly counting photons), I simply need to use the 6601 (will be exchanging this for a 6602 in the near future) to acquire the detector output.  I believe that you are correct in saying that the # of photons detected is the same as the rising edges, as previous tech support had me trying out the "Counter - Count Edges (Continuous Clock).vi" in the example vi's.  When I select my device and cooresponding PFI input on the BNC-2121, I will go ahead and start the experiment, and the "count" box under "acquired data" is increading in number.  It seems to be accurate in that it increases more slowly with the lights in the room turned off, and much more rapidly with the lights turned on, however, it seems that it is simply summing the total # of photons counted for the duration that the program is running.  What I need is the specific # of photon counts per unit time interval (will be using this as a fluorescence chronogram). How would I best set this up for what I need? Also, how do I obtain a live graphical representation of the data as the program is in acquisition mode?

 

Thanks,

Drew

0 Kudos
Message 3 of 23
(16,248 Views)

UPDATE:

 

The VI file that you sent me seems to be working well as I am able to acquire photon counts and I have been able to figure out how to change the data acquisiton display from text to chart/graph, however, the data acquisition seems to be set up so that it sums the # of counts incrementally based on the preset loop time (ie. with a loop time of 1,000 ms, the displayed # of counts is approximately doubling every second that the program runs.  What I seem to need is to be able to bin the data (on the range of 1-100 ms) so that the # of counts remains fairly steady (in the background noise range) over a certain period of time instead of just multiplying with every time loop increment.  This is the part that I do not know how to do and would appreciate any further help.

 

Thanks,

Drew

0 Kudos
Message 4 of 23
(16,244 Views)

Drew,

 

So what you are saying is that the count does not reset after each iteration of the loop, but you would like it to reset? That is, after 1 second a count is read, then after the next second, the amount doubled because it detected the same number of photons but simply added that to the previous count? Let me know if this is what you are experiencing. Thanks for your time.

Robert B
RF Product Support Engineer
National Instruments
0 Kudos
Message 5 of 23
(16,217 Views)

Robert,

 

That is exactly correct.  What I want to do is be able to do is run a program for a set period of time (on the minutes scale) and produce data points at equal increments of time throughout the program... For example, I am doing microfluidic flow with laser-induced fluorescence focused on a specific portion of a microchip (microchannel) and using LabView to acquire the fluorescence data (counts from the detector) in the form of # of photon counts per unit time.  If I were to do a 1 minute run, I want to be able to set a bin size of, lets say, 50 ms. Therefore, every 50 ms I would get a data point of the # of counts detected over that specific time period, and a new, independent # of counts for the next 50 ms time period (not added from the previous time period).  So, for the whole 1 minute run, I would end up with 1,200 data points (1 data point every 50 ms) that I would be able to graph.

 

(To put it in a more practical way, let's assume an arbitrary period of time for the experiment to run. If I am detecting fluorescence counts focused at a specific point in a transparent channel with a liquid flowing through it, and at some point in the experiment a highly fluorescent analyte flows past the detection point, the data output should be able to show a spike in counts at that specific moment that the fluorescent analyte is detected.  The rest of the experiment would result in a low and fairly consistent number of counts which would relate to background noise.) 

 

To further show you what I mean, I have attached two files for you to look at (acquired from an old program that our lab used prior to upgrading to LabView).  The .txt file shows the data list of the unit time (X axis) versus # of counts (Y axis).  The "bin size" was set to 15 ms over a 4 second experimental run.  The .jpg attachment shows a graphical representation of the data from the first attachment. This is exactly what I am trying to recreate using LabView. 

 

Thanks for the help,

Drew

Download All
0 Kudos
Message 6 of 23
(16,213 Views)

 

Drew,

 

In the example I sent, one of the tabs on the front panel is "Count Reset". Here you can configure a terminal to reset the count based on the rate of rising or falling edges on a specified PFI line on your device. So if you want to reset the count every 50ms, you would simply send a 20Hz signal to the input terminal you specify in the "Count Reset Terminal" on the "Count Reset" tab. You can generate this frequency signal using the example I linked below. This example code can be combined with the count edges task example from before so that everything happens within the same program. Let me know if you have any questions combining these examples. I hope this helps!

 

Counter - Continuous Output

Robert B
RF Product Support Engineer
National Instruments
0 Kudos
Message 7 of 23
(16,182 Views)
Solution
Accepted by topic author Drewdav

I would suggest something like this:

 

PhotonCountWithDwellTime.png

 

 

A period measurement samples the count register off of the input as well as resets the counter.  You will basically be measuring the "period" of your fixed sample clock in terms of ticks of the external photon signal.  

 

Depending on the dwell time you may need to read back multiple samples per loop so the software reads can keep up with data coming in.  Also, the very first sample is not useful as it represents the count between the software starting of the counter input task and the first clock signal--you should disregard/delete the very first sample (or if you want you may configure an Arm Start Trigger).

 

 

To do the same thing using an edge count task would require using both the sample clock AND a count reset signal--this isn't supported on the 6601/6602 (though it would be possible to configure it this way on an STC-3 device like an X Series).  

 

 

Best Regards,

John Passiak
Message 8 of 23
(16,127 Views)

John,

 

This VI works perfectly for the application that I need.  Thank you very much for the help.  All that I changed was the number controls to a graph indicator - chart, so that I have a steady graphical representation of the # of photon counts vs. time.  After some playing around with this, I also found that I need to increase the chart history length to match (or exceed) the total # of data points that I will be acquiring in a run of a given amount of time. 

 

 

Thanks again,

 

Drew

0 Kudos
Message 9 of 23
(16,108 Views)

Hello there.

 

I have been trying to do something similar (i.e., measure the number of pulses generated by an APD) for sometime now with labview (older version) and a PCI-6023e DAQ card.

 

Unjfortunately I am still far away from counting properly the APD signal.

 

Would the "PhotonCountWithDwellTime.vi" routine work using the PCI-6023e card?

 

Thank you in advance for any suggestions.

 

Cheers,

 

Foti

0 Kudos
Message 10 of 23
(13,991 Views)