Can I create pulse train above 167s?
I need to generate pulse train with pulse width longer than 167.7 sec. using card 7030/6030E. Can anybody help me? Thanks
The 167.7 sec limitation is caused by dividing 100 kHz by 2^24. So all you have to do is use two counters instead of one. Use the first counter to generate a pulse train slower than 100kHz and you can use the second counter to generate a very slow pulse train if you set its source to the out of the previous counter. You will have to use the pulse specs on the second counter, because it is going to be used to divide down the initial pulse train.
I hope this helps.
Joshua
Similar Messages
-
Can I generate pulse trains on more than one counter output at the same time?
I have a PCI 6601 card with a BNC 2121 to connect the signals to two devices. The card is used as a trigger for both devices and I want to be able to generate pulse trains on two output channels at the same time, with a time delay between the two. How do I do that in Labview 7.1 Development with DAQmx?
I feel foolish for not being able to figure this out, but it still doesn't work. Attached is the VI I use now. Counter 0 generates a finite pulse train and I programmed Counter 1 to generate a retriggerable single pulse triggered by CtrOinternaloutput. I still get the same error message: -50103 The specified resource is reserved. The operation could not be completed as specified.
The same happens if I set the trigger for counter 1 at PFI36 (default output of counter 0) or any other PFI line. If I try a pulse train generation on only one of the counters, both work fine.
If I try the example in traditional DAQ for multiple counter outputs with phase delay, it works fine.
Can you tell me what I'm doing wrong?
Attachments:
Shutter_AND_lamp_trigger.vi 103 KB -
How can I generate pulse trains whenever the value of the gate changes?
I need to generate pulse train both at the rising edge and falling of the gate signal. My DAQ board has only two counters.
Have a nice day,
JunJun;
As your DAQ board has only two counters available, I'm assuming you are working with either one of the E-series board or SMIO boards.
If that is the case, your board doesn't have the capability of generating triggered pulse trains. And that is what you need.
You will need to use the 660x family instead. Those boards have the trigger pulse train capability. Regarding the second part of your application; none of the DAQ boards has the capability of triggering a pulse train generation at both rising and falling edges of the same trigger pulse. You can configure either as rising or falling edge of the trigger pulse. Then, to accomplish wath you need, you will need to configure two counters, both having the same trigger pulse triggering a pulse train gen
eration, and one configured to trigger the pulse train at the raising edge of the trigger pulse and the other to trigger at the falling edge of the trigger pulse; then have an external OR Gate which the two inputs are the outputs of those two counters.
Hope this helps.
Filipe -
Hello,
Here is my application: I need to use a 6602 counter/timer to generate a pulse train of certain frequency and duty cycle. On each rising edge of this pulse train, I need to output an arbitrary waveform on Ch. 0 of an niFGEN (5422) AND acquire data from CH. 0 of an niSCOPE (5124). I also need to synchronize the niFGEN and the niSCOPE to the same clock used for the pulse train (6602/ctr0). This process needs to continue until the user stops the system.
I can generate the pulse train using the 6602 just fine using ctr0, but the pulse train shows up on OUT0 by default. When setting up the niFGEN and niSCOPE to trigger on rising/positive slope edge, OUT0 is not an option for either device as a source for the digital rising edge (pulse train). The main options for both are PFI0-3 and RTSI lines.
Questions:
1.) Is there a way that I can direct the pulse train to a location (such as an RTSI line) where BOTH the niFGEN and the niSCOPE can use it as a start trigger for each rising edge? I noticed in MAX that a route can be made between ctr0's internal output and a trigger line and others. If this is a solution, could you please explain how to accomplish this?
2.) Once I configure the niFGEN and niSCOPE to be triggered on a digital rising edge, how can I effectively have this happen for every rising edge from the pulse train? In other words, can I just initiate the FGEN outside of the while loop and it will generate a waveform for each rising edge it sees at the source until the while loop is exitted?
3.) Is setting a reference clock for the niFGEN and the niSCOPE the same thing as synchronizing both devices using the same clock that generated the pulse train? It is not clear to me the difference, and why it would necessarily be useful.
Images of my current front panel and block diagram are attached. If you would rather have the actual VI's just let me know. Any help and/or explanation on this is greatly appreciated. Thanks in advance.
Attachments:
Front_Panel_Control.jpg 278 KB
Block_Diagram_Control.jpg 263 KBHello Cgifford,
Welcome to National Instruments Forums.
To output your signal to the PFI lines,
you can use external connectios between OUT0 and PFI lines. You can also use
the backplane to do so by routing into the same RTSI line.
1)
On the SCOPE and FGEN, the name of the
terminals are actually “PXI Trigger Line x/RTSIx” but on the 6602 you might
need to route the signal using the property:
You can also use the DAQmx route signal which perform the same opperation.
2)
This will depend on the frequency of
your pulse train. If this is lower than about 10 ms, then you can probably
place this on a loop and start and stop the acquisition every time. If the
frequency is higher than this, you will have to use:
- Scripting on the FGEN side (read more)
- MultiRecord Fetch (more information in the scope help file
section “Acquisition Functions Reading versus Fetching”).
3)
The short answer is yes. The longer one
might depend on how tight you need the synchronization to be (us, ns, ps). For
very tight synchronization, you should look into here.
Message Edited by Yardov on 06-18-2007 03:14 PM
Gerardo O.
RF Systems Engineering
National Instruments
Attachments:
property.JPG 7 KB -
Can daq 6035e,or 6024e used to count pulse train
i need to count two digital pulse train coming from an encoder, whose frequency keeps changing. the encoder is a typical feed back from servomotor
Hi,
Both of those DAQ boards can measure digital pulse train frequencies using the counters. These cards can support 2-pulse encoder measurements on DIO6 and DIO7. This means that if there is a rising edge on Channel A the counter increments and a rising edge on Channel B decrements the count. You can also set the counter application for frequency measurement and that will measure the frequency of the pulse train on the line. These cards also have 2 such counters.
There are many LabVIEW and CVI examples demonstrating this. If you search the site for position or encoder measurements there should be some example programs for you. Hope that helps.
Ron -
Can the DAQPAD-6016 generate a pulse train?
If so, what is the procedure and what pins are involved? Also, where can I find a 6016 Users Manual showing a pinout description?
Avana,
Greetings!
You can find a pinout for the 6016 from this manual:
http://sine.ni.com/apps/we/nioc.vp?pc=res&cid=14041〈=US&p_0=manual
AND
Yes, you can setup a pulse train. You would use the counters. If you are using LabVIEW you can go to Help >> Find Examples to help you set this up.
Hope this helps,
AnujD -
USB-6009 pulse train generation with digital output....
Hello!
I've bought a new USB NI-Card (USB-6009) and now I'm trying to adopt an old vi that uses traditional DAQ drivers. I wrote that vi for a PCI NI-Card (PCI-6024E), which has two counters to generate two pulse trains simultaneously. Now I've only one counter and that's why I'm searching for a good way to create pulse trains using a digital output! The pulse trains are both ranging between 100 Hz and 100 kHz.
I'm sure somebody has an idea how I can solve the probem in the best way
Kind regards,
PeterYou can't do it with this low cost board. Both digital and analog outputs are software timed only. The analog out is rated at only 150 samples/sec and the digital is about the same. You can't even use one of the counters because it is not a hardware timed counter output. It is an event counter only as an input.
-
Two retriggerable pulse generations after a pulse train generation
I am trying to generate 3 pulse trains (ABCABCABC...) one after another.
The program currently I am using generates 2 pulse trains (ABABAB.....).
I am using the Traditional NI-DAQ and PCI-6602.
I am thinking about using pulse train generation first and then retriggerable pulse generation after that.
I understand that the retriggerable pulse generation can generate a pulse train triggered (or gated) by other counter output.
I have attached a test vi.
It uses the pulse train generation code when the counter number is 0 and when the counter number is not 0, then it uses the retriggerable pulse generation code, which I tried to modify from the pulse train generation code.
First of all, I am not sure if I wrote the retriggerable pulse generation code correctly.
Secondly, I don't know if the whole code will generate ABCABCABC...
I would really appreciate your help.
pchemjjangpchemjjang,
I believe I may have misunderstood your original concern. It sounds like you want to output this finite pulse train on three different counters. You will output these pulse trains for 10 minutes and cease your program. The Finite Pulse Train.vi will output a pulse train from only one counter. With this Traditional DAQ example you would need to have three of these Finite Pulse Train.vi programs running simultaneously in parallel to output from 3 counters. I would strongly recommend using DAQmx for this application because you will only need to utilize 4 VIs. The rest of the work is done behind the scenes. There is an example in DAQmx which should accomplish exactly what you are looking for in one program. You must make sure to make the number of pulses 2000000, the duty cycle as 1/3 and the frequency as 1/(300us). The DAQmx driver can found here. In terms of the counters, I believe that each task requiring two counters will use the counter adjacent to it. If you would like to output on counter 0 using finite generation then counter 1 will be used as the gating counter. When you have the DAQmx driver then you can find this example by selecting Help>>Find Examples and then expanding Hardware Input and Output>>DAQmx>>Generating Digital Pulses>>Gen Dig Pulse Train-Finite.vi. I have included an image to show how the front panel of this example should be configured to work. The major note to make is that you will need to configure all of the counters in the channel names list. In Traditional DAQ this did not seem possible. In Traditional DAQ you would need to create a subvi out of the Finite Pulse Train.vi run three copies of it, in parallel, in a larger program. Please let me know if you will be able to utilize DAQmx in this application.
Thanks,
Gio L.
Digital Support - Product Manager
National Instruments
Attachments:
Counteroutput.jpg 49 KB -
I need to send a continuous 2-10MHz TTL timing signal to a low pass filter (to set the cutoff frequency) while I collect data from one of the analog inputs. I'm hoping that I can send the TTL signal and collect the data through the same DAQ 6052E board.
I've been told that I can send a pulse train using one of the two counters on the board. But does anyone have more specific advice how to implement this using the NIDAQ Tools extensions to IGOR Pro? In particular I'm concerned about how I can send a continuous TTL signal and simultaneously read data. Or can you just turn on the timing signal and it stays on until it's
turned off again?
Thanks for your helpYou can program one of the counters to generate a continuous pulse train. Once programmed to do so the counter needs no further interaction. It will continue to generate the signal until stopped through SW. So you can start the counter using the functions provided to you, then forget about it and program the AI operations.
Christian Loew, CLA
Principal Systems Engineer, National Instruments
Please tip your answer providers with kudos.
Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense -
How can I create a pulse train with varying pulse widths?
I'm trying to create a finite pulse train that varies its duty cycle. I was hoping there was a clever way to do this neatly. I've attached a very rough picture of the train I'm hoping to make, with the pulse widths defined with t, the delay between pulses d, and a total of N+1 pulses. Thanks!
Edit: My current method is to use the pulse train function, and actually create 2N+1 pulses, stacking the "double length" pulses.
Attachments:
ExPulseTrain.png 9 KBI wound up just building the first short pulse, and then the train of longer pulses, and sticking them together. I attached a screenshot of the code I went with.
Attachments:
VarPulseTrain.png 29 KB -
Hello!
My problem appeared when I tried to update my code from Traditional NI-DAQ Legacy to DAQmx.
I am using 2 counters (counter 5 and counter 7) from PCI-6602, to generate pulse train, and also the Digital I/O lines of the port 0 (the lines form 0 to 7). What I do in my application is that I am starting to generate the pulse train on the output of the 2 counters, and after that I am playing with the state of the digital lines.
In traditional there was no problem using the counters and the digital lines in the same time, everything was going perfectly, but in DAQmx this is not possible.
What happens: I start to generate pulse train on the output of the counters, no errors encountered, but when I try to modify the state of one line of the digital port the generation of the pulse train is stopped. This is happening when I start the task associated to the digital port.
My question is: it is possible to create a channel on the digital lines without altered the channels created for the counters?
Another thing what I manage to see using the "Measurement & Automation Explorer" and Test panels for PCI-6602, basically is the same thing, I generate pulse train on the output of the counter 7 and try to start a task on the digital line, but I get one error :
"Error -200022 occurred at Test Panel
Possible Reason(s):
Measurements: Resource requested by this task has already been reserved by a different task.
Device: Dev4
Terminal: PFI8"
Instead if I use the counter 0 or counter 1 to generate pulse train I don't encounter the same problem.
Which resources are used by the counters 2 to 7 from the PCI-6602 board and the counters 0 and 1 do not use?
Thank in advance for any replies!
Ciprian
Solved!
Go to Solution.Hello Jordan, thank you for your reply.
I am sorry but I can not see or run your example, I don't use LabView, I use Visual C++ for developing.
Here is the code for generating the pulse train:
GeneratePulseTrain(unsigned long ulCount1, unsigned long ulCount2)
short nStatus = 0;
nStatus = DAQmxCreateTask("",&m_taskHandle);
nStatus = DAQmxCreateCOPulseChanTicks (m_taskHandle, "Dev4/count5", "", NULL, DAQmx_Val_Low, 0.0, ulCount1,ulCount2);
if( bTriggerMode == true) // if hardware trigger is enabled
nStatus = DAQmxSetTrigAttribute (m_taskHandle, DAQmx_ArmStartTrig_Type, DAQmx_Val_DigEdge);
nStatus = DAQmxSetTrigAttribute (m_taskHandle, DAQmx_DigEdge_ArmStartTrig_Edge, DAQmx_Val_Rising);
nStatus = DAQmxSetTrigAttribute (m_taskHandle, DAQmx_DigEdge_ArmStartTrig_Src,"Dev4/PFI17" );
//set the internal timebase
nStatus = DAQmxSetCOCtrTimebaseSrc(m_taskHandle,"Dev4/count5","20MHzTimeBase" );
nStatus = DAQmxStartTask(m_taskHandle);
return nStatus;
And the code where I try to set the digital line:
SetChannelState(short nState)
short nStatus = 0;
uInt8 wrtBuf0[1]={0};
nStatus = DAQmxCreateTask("",&m_taskHandle);
// Configure line as output
nStatus = DAQmxCreateDOChan (m_taskHandle, "Dev4/port0/line0", "", DAQmx_Val_ChanPerLine);
nStatus = DAQmxStartTask(m_taskHandle);
wrtBuf0[0] = nState;
nStatus =DAQmxWriteDigitalLines (m_taskHandle, 1, 0, 0, DAQmx_Val_GroupByScanNumber , wrtBuf0, NULL, NULL);
nStatus = DAQmxWaitUntilTaskDone(m_taskHandle,10);
nStatus = DAQmxStopTask(m_taskHandle);
nStatus = DAQmxClearTask(m_taskHandle);
m_taskHandle = 0;
return nStatus; -
Hello
i use a board 6023E and pc pentium4 3Ghz
My problem is how create a delay with few microseconds between two tasks?
I need creat three tasks.
Fisrt create a finte pulse train for this i use a counter.
Second create a delay for this i use again a conter to creat a pulse train in witch the delay is equal to frequency x number of pulses.
Third measure pulses for this i use again a counter but in this case is a counter input.
In attachment i send a picture with my program.
I dont understand why my program dont work? my program take a lote of time during the excution. I think the problem is between stop une task and start another i would like know how i can resolve the problem if is possible.
picture with my program
ftp.ua.pt/incoming/labview/sheme
MarcoHi,
I hope to understand exactly what you want to do. If you need a long delay with your E series board check the following link
http://digital.ni.com/public.nsf/allkb/f66ccab02d3b901886256a03005ee14a
Let me know if it's ok.
Regards
Omar S. NI -
How do you create a finite pulse train using a FP-CTR-502?
I have recently replaced my FP-PG-522 module with a FP-CTR-502 module, to achieve higher output frequencies (FP-PG-522 max output freq is 5kHz, wheras the FP-CTR-502 max output freq is 16 kHz).
I need to be able to generate a finite pulse train. Has anybody created a finite pulse train using a FP-CTR-502 module before? I have started to look into it, but my ideas so far have been complicated (compared to doing it in a PG module).
Any tips on this would be much appreciated.
Christopher Farmer
Certified LabVIEW Architect
Certified TestStand Developer
http://wiredinsoftware.com.au
Solved!
Go to Solution.I can answer this question myself!
The answer is in the *OLD* version (July 2000) of the operator's manual for the FP-CTR-502. For some reason, this has been removed from the latest version (June 2003).
See page 11 of this link for more information:
http://www.ni.com/pdf/manuals/322660a.pdf
Christopher Farmer
Certified LabVIEW Architect
Certified TestStand Developer
http://wiredinsoftware.com.au -
Can I use two "finite pulse train" to work in parallell with different freq.?
I want to generate two seperate pulsetrains in parallell with different freq. and number of pulses. I am using a "PCI 6036E" with two counters on the device. I think I need four counters to make this task? I would be very glad if anyone had any answer on this
It will take four counters to generate two pulse trains with two different frequencies and number of pulses. As a workaround with your existing device, you can possible create a pulse train using one of the analog outputs, if it's available. Otherwise, you'll need either another MIO device or you could choose to use a TIO device (660x) which will have 4-8 counters.
Hope this helps!
gus.... -
Learn the number of pulses created in a finite pulse train
Hello
I am using the PCI-6602 Board to produce a finite number of pulses with counter0.
I want to know how many pulses that are already created by the counter, while my program is running and show this number on an indicator on the front panel of my VI.
What is the best way to do this with LabVIEW?
Of course I can use another counter to count the pules and route the output of counter0 to its input.
However I wonder if it is possible to solve the problem without using another counter, because DAQmx internally already uses a second counter to produce the finite pulse train so it should be possible to read this counter, isn't it?
Thanks for every help.However, I wonder where I can get such detailed Information about the internal functionallity of the DAQ-devices and the DAQmx driver? Please let me know where you get this information from. (So that I can avoid using this forum in the future)
Speaking just for myself --- the source has been generally the school of hard knocks. I started doing a lot of special timer/counter work right around the Y2K timeframe. The legacy driver now known as traditional NI-DAQ was then the only game in town. The programming and terminology under trad. NI-DAQ tends to require you to understand the hardware at a lower level. The programming used more counter-specific terminology like Gate and Source signals.
So for a lot of this stuff, I came into DAQmx with a good understanding of the low-level hardware capabilities, and I just needed to tromp around a bit to find the right syntax. Consequently, I'm not much help for pointing you toward info sources as I haven't relied on them much. Meanwhile, good luck with the self-teaching but don't feel compelled to "avoid using this forum in the future."
-Kevin P.
Message Edited by Kevin Price on 11-01-2007 10:04 AM
Maybe you are looking for
-
With this code i am expecting to see a list of stores associated with each category but instead I am only seeing the first store in each category and that does not change when the user selects from the drop down list. <?xml version="1.0" encoding="UT
-
Hello Forget the secret questions and answers, i need to buy some applications, I can reestablish?
-
Movie 11 can not copy everything and put it into a new project in imovie 9 it works fine
movie 11 can not copy everything and put it into a new project in imovie 9 it works fine and there i cant copy 5 different project into new project but in imovie 11 i only can copy project with option dubler project?
-
Do I need to ship back my 7.0 and 7.1 disks?
When I order the crossgrade, do I need to ship back my 7.0 disks? Not a problem if I do...but I'm not paying for shipping if I have to ship it back. Patrick iMAC Intel Core Duo 20" Mac OS X (10.4.4) 1.5G Ram
-
I have noticed that when running a 1 hr sequence (wedding), my ability to use the CTRL D short cut for the default transition is VERY slow. I get the spinning wheel of death and then the transition appears. The time line runs fine but anything I do