i have developed a program to postion probe drive using stepper motor. in this program m calculating pulses required to given to stepper motor and then using daq m generating the pulses, but i am not able to run my vi in continous mode, i need to stop it to repeat motion. kindly, someone help me to get in continous mode.
unable to run this program continous loop
FPGA starting from RT problem?
Hello all,
I need help regarding my RT and FPGA VI, here i am attaching both VIs but the problem is that when i start RT VI with the help of invoke methods(see RT VI) my DI/O module NI9401 outputs all go high for some split second and then go low. but when i start the fpga VI only there is no switching. I have tried all invoke methods but i could not understand what is going on.VI other than RT.jpg is FPGA VI.
PLEASE HELP IN THIS REGARD.
Best regards,
azy
digital waveform editor sample size limit?
Hi,
Can anybody please tell me the sample size limit of the Digital Waveform Editor? Thanks!
Jing
NI Digital In Module with High Impedance input
Hi ,
Do NI have a Digital In module with High Impedance (390K) or more
Input Voltage 0-50V
Like dSpace DS4004 digital Input Line
I find only 4mA input current , it is to high for the ECU application. (Open circuit detection)
Thanks
Using NI cRIO-9075 serial port
Hi,
Is it possible to send out data with the serial port on the cRIO 9075. And if this is possible, how do i do this from a labview environment?
I thought this port was a RS232 port? Is it possible to send data directly to a RS485 port. I am trying to send motor parameters directly to a danfoss motor drive via serial communication.
Best regards,
Jasper Beurms
slow mydaq
Hi,
Have been trying to create some logic for controlling a conveyor-model with help of LabVIEW and 3 myDAQ's, instead of the usual PLC-setup.
We haven't come further than a few functions, then everything became sluggish.
The model consists of two soleniods pushing out plastic-rings, two conveyor-belts and some other sorting mechanisms.
When the plastic-ring passes X1 (see program below) solenoid Y1 should push out momentarily, but in our program it will be hitting in 1/3 attempts. The other 2/3 attemps comes with a delay of a second or two.
All in all, it seems that the combination of LabVIEW and more than one myDAQ is way to unstable and slow for replacing a PLC.
(Has been testing on two different Intel I5-computers, and all atempts are ideling CPU-load).
The program beneath contains a couple of subVI's for minimizing the space of easy logic, but we have tried to direct connect the inputs to the outputs, while the result remain the same.
Using CAN-bus on sbRIO-9626
Hi,
I'm very new to Labview, and now I'm trying to set up my sbRIO-9626 for testing and learning.
I want to use the CAN-bus, but when I add the sbRIO to my project I cannot find the CAN-folder that I see appearing in online examples. There is no option to add it under the FPGA Target->New-> menu either.
I assume I'm missing software or something, can someone guess what I need to do?
I have installed "NI-CAN 2.6.3" on my computer, and also "NI-embedded CAN for sbRIO 1.0.2" on the 9626.
PCIe-6537 Input Capacitance
Hi,
I have an application that is very sensitive to capacitance and wondered if anyone knows what the input capacitance of the PCIe-6537 is?
Thanks
Nick
6556 - Eliminating Round Trip Delay
Howdy,
I'm working on eliminating round trip delay following the approach listed in the last paragraph here: http://zone.ni.com/reference/en-XX/help/370520K-01/hsdio/peliminating_rtd/.
I've been able to successfully:
- Export the Data Active event to PFI1 (pxiBoxGenerate.ExportSignal(niHSDIOConstants.DataActiveEvent, "", niHSDIOConstants.Pfi1Str);)
- Physically connect PFI1 to PFI2
- Configure the acquisition start trigger to source from PFI2 (pxiBoxAcquire.ConfigureDigitalEdgeStartTrigger(niHSDIOConstants.Pfi2Str, niHSDIOConstants.RisingEdge);)
- Export the generation Sample Clock to the DDC CLK OUT pin on the VHDCI (pxiBoxGenerate.ExportSignal(niHSDIOConstants.SampleClock, "", niHSDIOConstants.DdcClkOutStr);)
- Physcially connect DDC CLK OUT to STROBE on the VHDCI
- Configure the acquisition Sample Clock to source from the STROBE pin (pxiBoxAcquire.ConfigureSampleClock(niHSDIOConstants.StrobeStr, sampleClockRate);)
As of now I can successfully generate and acquire a digital pattern without issue. However, I can't figure out how to remove the delay between the rising edge of the the Data Active event signal on PFI1 and the rising edge of the first bit of data being acquired. (I've physically interested 36 ns of delay into the system with coax so I can learn how to remove it.)
According to the last paragraph in the above link I can remove clock cycles worth of delay using the "Data Active Internal Route Delay" property (though I can't find a method for it in the C# wrapper), and I can fine tune the delay with fractions of a clock cycle using the "Data Position Delay" property which I think is implemented with the ConfigureDataPositionDelay method found in the wrapper.
At this point I'm focusing on using the latter method to adjust the delay as I don't have clock cycles worth of delay to remove. (However, I will eventually need to figure out the gross delay solution as well.) Assuming I can do this will out adjusting the gross delay, I'm trying to use the ConfigureDataPositionDelay method which has "channelList" and "delay" as its arguments. The "delay" argument is easy. There are a couple of other parts I'm unsure about:
- Should I call ConfigureDataPositionDelay on the Generate or Acquire object? Essentially is it pxiBoxGenerate.ConfigureDataPositionDelay(channelList, delay) or pxiBoxAcquire.ConfigureDataPositionDelay(channelList, delay)?
- The channelList part is confusing to me because my generateChannelList and acqurieChannelList which I use in the AssignDynamicChannels method only contain "0" and "15", respectively. They only have the one channel I'm generating on and the one channel I'm acquiring on, and the system works fine with this. However, the ConfigureDataPositionDelay methond requires the channelList at which I want to delay on. Am I assuming correctly that channels not listed in the AssignDynamicChannels method can still be delayed?
- What should I put in for channelList? "PFI1"? "PFI2?" A VHDCI connector pin number?
Any thoughts or insight would be much appreciated.
Thanks,
Harold
6556 - Hardware Compare (HWC) in C#
Howdy,
I'm trying to implement hardware compare in C# and I can't seem to figure out the way to do it.
In this link: http://zone.ni.com/reference/en-XX/help/370520K-01/hsdio/hwc_in_hw/ it says to use "Hardware Compare Mode" property or the "NIHSDIO_ATTR_HWC_HARDWARE_COMPARE_MODE" attribute. However, there isn't a method to set the property and there isn't a SetAttribute* method available in the C# wrapper to set an actual attribute. Are these approaches the only way to enable HWC?
(I should note the version of the manual I have on my computer says "Supported Data States" property and "NIHSDIO_ATTR_SUPPORTED_DATA_STATES" attribute, but the method to set that property doesn't exist either...and the there still isn't a SetAttribute method. :) )
When looking inside of the niHSDIO.dll one can see that niHSDIO_SetAttributeViBoolean, niHSDIO_SetAttributeViInt32, niHSDIO_SetAttributeViReal64, niHSDIO_SetAttributeViSession, and niHSDIO_SetAttributeViString exists. Has anybody had any success breaking these out into the wrapper? Or using the niHSDIO.dll file without the wrapper?
Any guidance would certainly be appreciated.
Thanks,
Harold
custom pulse signal 9401
Hi,
I am using NI 9401 and I would like to generate custom pulse signal which is generated in the loop. At the beginning the user determines the pulse sequence e.g.
30 ms LOW, 20ms HIGH, 15 ms LOW, 25 ms HIGH 0.1ms LOW, .... Then I can programatically build the analog or digital waveform. Now I would like to use this waveform and generate the TTL signal. I would like to use the inbuilt counter as in this case here to be able to generate high frequency such as 1MHz etc..... any idea ???
How to pause acquisition, wait for software event, and then resume
I am working on an application that is using the NI PCIe-6361 and C# to move a sensor (via analog outputs) and make readings at several points (via an analog input) with the final result being a rastered image. I have this part working great at this point. However, now I'm working on adding the ability to pause acquisition at some user-defined interval (i.e. every 10000 points), signal the software so that some adjustments can be made, and then resume the acquisition when the software signals everything is ready to continue.
My idea is to use a pause trigger on the AI and AO tasks to drive the pause trigger with a digital line that would be configured to go high at the required interval. Then, I want to use the DigitalChangeDetection callback to notify the software that the hardware is paused and that it's safe to make the needed adjustments. Finally, when the software is ready I want to drive the pause line low, causing the AI and AO tasks to resume.
Some questions:
1. Is this a reasonable/good way to handle this? Is there a better way? Am I using the correct mechanisms for this?
2. I did some initial tests with this and am having some issues. I setup a digital output task to go high at some interval. I then hardwired that digital out (P0.6) to another digital in (PFI1). With that connection I can now do one or the other of the following, but not both at the same time:
a. Get a DigitalChangeDetection event in the software when PFI1 goes high
b. pause the digital out task when PFI1 goes high
Is it not possible to do both of these things at the same time?
3. Assuming I can get #2 resolved, is it possible to configure a digital output task to go high at a specific interval (using DigitalSingleChannelWriter.WriteMultiSamplePort in C#), but to also manually push it back low when I want the hardware to resume (using something like DigitalSingleChannelWriter.WriteSingleSampleSingleLine)?
the digital output drop to 0
Hi,
i have this circuit to control the direction of brushless dc motor
to remove the brake the brake should connected to Black and this happen after i give D0 and D3 high and this one work fine
to move back same we have to connect brake + back + black then D0+D1+D3+D4should high and this one work fine
when i want to move Forward should BRAKE+BACK +FRW+BLACK then the 6 pins should be high , but in this situation all the pins is low
any suggestion ?
the module i have 9403 and cdaq 9188
NI USB6008 and ULN2003A relay driver
Hello,
I know there are a few threads on this subject already, but I wanted to ask some questions regarding how to drive a solid state relay using my NI USB6008 and a ULN2003A. I am a student, but do not have much familiarity with these kind of electronics so bare with me.
Basically, I would have 2 relays (control voltage 3-32VDC, 28mA @ 32V) to drive. Since this is too much current for the USB6008, I would have to use another device such as the ULN2003A, and some external power supply, correct? I found this diagram on the forums:
But I am a little confused on how the 12V power supply is connected. Would the 12V go to both the COM of the 2003A and to the positive terminal of the relay? Is the negative terminal of the relay then connected to the 2003A? Finally, are all the grounds tied into the USB 6008?
I just want to verify this setup will work with my relays.
Thank you
rise time problem with NI 9401 digital input
An NI 9401 was being used to log 0 to 5 volt frequency pulses from a flow meter that produces a square wave signal by means of an open collector output and a 2.2k resistor connected to a 5 volt source. Unsteady results when the controller of the flow meter was indicating a steady flow resulted in the input to the NI 9401 being viewed using a CRO. This showed a good quality signal present by also some intermittent impulsive spikes. The cable from the flow meter was around 50metres long. A simple capacitive filter at the input to the NI 9401 was tried starting with a 10nF capacitor connected to ground. The result was a much increased indicated flow rate by the output of the LabView application. However the view on the CRO showed all but no difference to the waveform with the impulsive spikes much less evident. A much larger capacitor was then tried with a result that the rise time of the square wave was now clearly rounded off when viewed on the CRO and yet the output frequency indictated on the LabView application increased almost by an order of magnitude.
It was felt that a hardware solution would be to add a filter followed by a Schmitt trigger ( in fact a comparator with feedback) so that the external noise spikes could be rejected but the rise time of the square wave signal into the NI9401 could be kept as low as possible ( i.e. 100ns or so) This arrangement worked well and the flow rates as indictated by the flow meter controller and by the LabView application were then the same.
Looking at the installation documentation on the NI 9401 (page 12) showed an example of a digital input from a switch to ground and a pull up resistor and so it is not understood why the pulse rise time into the NI 9401 was critical in any way ?
Not having access to the LabView application an external hardware interface of a filter followed by a Schmitt trigger provided a solution but is it possible that the software setup of the NI 9401 could provide a solution so making this external hardware interface redundant ?
continuous write no longer works after upgrade
Hello,
After upgrading a computer motherboard, OS (XP to Win7), and NIDAQmx (9.40 to 9.80) simultaneously the Labview 2011 32-bit vi we use to run our lab bus control system no longer works (the two most pertinent vi's are included here). My next move is to go back to the older NIDAQmx, but this would mean no upgrade possibility to Labview 2013. The card is rather old (NI DIO-32HS) but is supported according to the documentation in NIDAQmx 9.80 and passes all self-tests. I have also tested the outputs with a voltmeter and the test panel in NI MAX.
For large amounts of data to write, the DAQmx Start Task vi executes and throws the following error:
Error -200293 occurred at Dequeue and write out elements.vi
Possible reason(s):
The generation is not yet started, and not enough space is available in the buffer.
Configure a larger buffer, or start the generation before writing more data than will fit in the buffer.
The buffer is not too small. If I delay the Start Task vi the buffer will fill up more and just crash later. For small amounts of written data (400000 points or so) there is no problem. The output executes perfectly.
I realize that this is no longer the recommended clock timing, but:
1. When I try to use a pipelined sample clock I get the following error:
Requested value is not a supported value for this property. The property value may be invalid because it conflicts with another property.
Property: SampTimingType
Requested Value: Pipelined Sample Clock
You Can Select: On Demand, Sample Clock, Handshake, Burst Handshake, Change Detection
I have tried changing many other properties and looked at the NIDAQmx 9.80 included example for pipelined clock and do not see the problem.
2. The normal Sample Clock used to work just fine for generating output while writing to the buffer and I have found an example program on ni.com using this method https://decibel.ni.com/content/docs/DOC-12402
False 100ms switching pulse NI9401 outputs?
Hi everyone,
I am facing a very serious problem in my LabVIEW FPGA project, I am using the NI9401 DIO module and in a simple program in FPGA I provide all 8 channels FALSE in a loop, but when I access this FPGA VI from RT VI, when I exit the RT VI I have a unnecessary 100ms pulse on all 8 channels. I am attaching both VI,s images. PLEASE HELP IN THIS REGARDS!
This pulse actually makes a dangerous short circuit in my DC Converter.
With Best Regards,
azy
Common moder error NI TB-9214
Hi all,
I'm used NI 9214 to measure thermocouple reading which connected using NI TB-9214. When I connect thermocouple and then taking a measurement for each channel (connect one by one for the entire channel), the measurement is fine. But when I connect a thermocouple at a few channel, some channel give a common mode error. I don't have an idea why this error occured and how to solve it. Please advise. Thank you.
HSDIO 6556: How to measure the time period between 2 accepted strobe triggers ?
Hi,
I am using HSDIO6556, configured as: "niHSDIOProperties.DigitalEdgeStartTriggerEdge RisingEdge" & "ConfigureSampleClock: Strobestr 1000000" . I am expecting trigger signals to the STROBE pin at 1000000 Samples/second. My questions are:
Q1) Does it matter what value i program to the "Strobestr" ? I suppose, it requires to be more than my expected trigger rate.
Q2) Is there any means of measuring the time interval between accepted STROBE signals ??
Thanks,
Antony
PCIe-7841R Frequency
Hello,
I'm looking to purchase the NI board PCIe-7841R and It is specified that its frequency is 40MHz.
this means that it contains an oscillator working at 40MHz?
Also, Can I connect a digital IO to a clock of 60MHz that will be used by a VHDL module implemented in the FPGA of this board?
Thank you,