Output signal high at DIO lines of 7330

Hi
I am using Labview 7.1 with Ni motion controller. I am trying to detect the output signals at the auxiliary DIOports of the card using the attached programme in the NI example finder. My board ID is 1 (thats what was allowed by the programme) and I put port 1 , to check the DIO lines of it. I checked pin 10 (port 1-bit 0) and pin 44 (port1-bit 1) using an oscilloscope. The output is high at 5volts.
I changed the DIO pin polarity switches to active low status but the output remains the same.I fiddled with the set and reset buttons of the programme, initialize the card but nothing changes.  Any idea on how to figure whats wrong? 
Thanks
Mal
Attachments:
Auxilliary Digital Output.vi ‏57 KB

Hi
Thanks for the reply. Sorry for the delay in response as I was on vacation. I tried your programme but the result remains the same. The output is always high.
Max shows the card is working properly. It also shows the board type as 63. But the programme only takes in board ID as 1. How can set the direction using MAX and save the settings?
I tried the write 1 point example programme on axis 1 ,line 1 and tested the signal on pin 44 and 42 (oscilloscope ground), and toggled the line but the output is high. But when I stopped the programme with the STOP button it gave an error message 70102 with a possible cause the setting doesn't match the line direction?
The oscilloscope ground was firmly connected to pin 43 or 42 of the board for all tests.
I appreciate your help.
Thanks
Mal

Similar Messages

  • How do I create an interrupt on the PCI-DIO-96 from an external signal connected to the lines PC0 or PC3 of a port?

    Hi everybody,
    we are currently using the PCI-DIO-96 for data acquisition from an old AT-DIO-32F card. All PPIs and ports work in mode 0 (standard input/output). The manual mentions the possibility to create an interrupt from an external signal connected to the lines PC0 and PC3 of port C from a PPI. To get the interrupt I have connected my interrupt service routine to the PCI-DIO-96, enabled the master interrupt enable bit in the interrupt configuration register 2 and enabled interrupt enable bits of every PPI chip in the interrupt configuration register 1. The interrupt should be generated if a signal low-to-high transition occurs on th
    e lines PC0 or PC3 of a PPI. We've simulated the signal low-to-high transition with an external voltage source connected to the line PC0. We actually saw in the memory that the line toggled from state low to state high, but no interrupt was generated. I don't have a guess what I am doing wrong. Perhaps anybody knows the solution of this problems.
    Thanks and best regards.
    Sven Jungnickel

    You may want to try disabling your USB or IEEE-1394 host controller. It's possible that one of these devices could be on the same interrupt as you DIO-96 and causing the interrupt to not be serviced.
    Regards,
    Erin

  • DIO-32HS: All outputs go high (intermittently) after completing a single pattern buffer

    My application uses a PCI-DIO-32HS board in double-buffered pattern generation mode to output a series of 32-bit wide words synchronized to a 1 kHz external REQ pulse (rising edge). The approx. 1 Kword buffers are created about once every two seconds, so throughput speed is not an issue. However, once every few thousand successfully output buffers, all 32 lines are driven high out-of-sync with respect to the REQ rising edge, and remain high until the next pattern buffer is started (for about a second, which causes serious problems for the target hardware). The buffer is always padded with all zeroes at the end to ensure that the outputs stay low between pattern outputs. This even
    t occurs at random (it seems), and is very difficult to trace due to its intermittent nature. The DPULL signal is left open (pulled down internally on the DIO board according to the manual) and in our current system only up to 6 of the 32 lines are ever set to 1's in the pattern buffer, so, in theory, the unused lines should never be going high. The same Visual C++ application is used in other systems with identical CPUs, but the problem does not occur in those cases. Replacing the DIO-32HS board has no effect. NI-DAQ version 6.9.1f28 is being used. Can anyone provide any insight into why the outputs might all go high at once in this fashion? Have there been any design changes (firmware or ASIC) on the PCI-DIO-32HS board over the last several years?

    Hi Doug,
    It is very strange that the program is working fine with the other cards and not this one. If the clock signal to the REQ line is not the same then I would suggest to check the REQ line to see that it is not receiving any ghost pulse.
    Again, it is a good idea to install the latest driver of NIDAQ 6.9.3 and see it.
    Also give a shot for an example program in the c:\program files\national instruments\ni-daq\examples\visualc folder and see if you get the same problem.
    Please do let me know if you have any questions.
    Sincerely,
    Sastry V.
    Applications Engineer
    NI.

  • Obtaining a TTL input signal via DIO lines of 7334

    Hi
    How can I obtain a TTl input signal from a source via the DIO lines of the 7334 .
    Thanks
    Mal

    I do not quite understand your question.
    If you want to know what kind of signal a DIO line will detect properly: the signal has to be less than 0.8V to detect a low state and more than 2.0V to detect a high state. This is compatible with outputs of all TTL logic circuits.
    If you have some other circuitry (source) with different specifications for the digital signal you can simply connect a switching transistor in open collector circuit. The DIO lines have pull-up resistors, and when the transistor is switched the DIO input will be tied to less than 0.8V (low level).
    Anyhow, if the high output level of your source is more than 5V (there are many control systems with 24V output level) it is better to use galvanic isolation to avoid damage of the motor controller. You can use a relay, or better an opto-isolator. You have to design the series resistor of the opto-isolator such that the input gets proper current to drive the LED (usually 10mA will be sufficient for most optocouplers). If the opto-isolator has an open collector output configuration it can be connected directly to the 7344 DIO line.
    Of course you always have to provide a common GND connection between the 7344 board and your signal source (or the open-collector transistor in case you use this configuration or an opto-isolator).

  • DIO lines and counters on NI 6036E

    Hi my name is Gestur. I'am trying to generate a finite pulse train with the counters on my E serie 6036E DAQ board - which works fine - but at the same time, reading and writing to and from DIO lines. This has been giving me problems. I've building a test program which works with cases, where like case0 writes a low level to a DIO line. In case1 i start the counters, generating my finite pulse train. Then i notice that the same DIO line that earlier was lowered, is high again.
    Another problem is making a analog input sampling, which is supposed to enables on every rising edge of my pulse train. I have on the I/O connector linked the output from the counter, to the EXTCONV pin. This works fine, but not! Because the analo
    g input sample seems to block actions in my pulse train vi where i'm tryin to read from DIO. This is a bit difficult to explain, but i will attach a vi which might explain this.
    I hope this is something to understand and i hope that you are able to help me.
    Thank you for your time
    Kind regards Gestur
    Attachments:
    SamlingPRO.vi ‏236 KB
    SamlingPRO#2.vi ‏170 KB

    HI,
    The attached VI's have some missing sub-VI's. Can you use the VI Library manager and gather all the components together into one .llb?
    mike

  • One control to 2 different DIO lines

    Hi there:
       I am using PXI 7833R card and Labview 8.0 for windows. FPGA 1.1 version.
    I have a problem about the DIO. In a previous program I use one boolean number to control one PXI 7833R digital output line. Everything works. Then I want to use the same boolean number to control two different Digital output lines. I did not change anything else, Just add a Digital output line to the node A(the circled one is added). The program does not work any more.
    I used the oscilloscope to measure the output and got the signal I want for both output!!!
    Anybody knows why?
    Message Edited by lightmiddle on 03-06-2006 04:57 PM
    Attachments:
    twodio.jpg ‏1042 KB

    lightmiddle,
    I am still confused as to what you mean by "the result is far away from what I expect".  What is actually happening? In your previous post you said "I used the oscilloscope to measure the output and got the signal I want for both output!!!"
    I am still not sure how you can be using the FPGA 1.1 module with LabVIEW 8, this should not work.  To add multiple lines to one I/O node in LabVIEW 8 you can simply drag lower edge of the I/O node downward to create more lines.  See the attached image.  I would also take a look at the shipping examples for LabVIEW FPGA module.
    Message Edited by Doug M on 03-09-2006 06:36 PM
    Doug M
    Applications Engineer
    National Instruments
    For those unfamiliar with NBC's The Office, my icon is NOT a picture of me
    Attachments:
    two DIO lines FPGA.JPG ‏39 KB

  • Pull-Up DIO Lines to 5V

    Hello, I'm using the NI PCIe FPGA 7852R card. When configured for output the DIO lines go from low, zero volts, to high, 3.3V. My application requires going from 0 to 5V. The manual for this card says an external pull-up resistor can be used to achieve 5V output from the card. I'm not sure how this is done, can any one recommend how to do this? Or, can anyone point me to documentation that details how to do this?
    Thanks,
    Ed

    All kidding aside, here's a more detailed link then my original one if you want to know more about the workings of a pullup/pulldown resistor
    CLA, LabVIEW Versions 2010-2013

  • Apparent altered DIO line input state on 4351 when using driver instead of NI MAX

    Hi,
    I'm using an NI4351 PCI DAQ card with the Ni435x driver and LabWindows/CVI v5.5 (on Windows 98) to capture digital logic states on the DIO lines. I first used NI's MAX utility to establish a virtual DAQ input channel from 'Data Neighborhood'. When I tested this channel from the utility by connecting the DIO line to 5V or GND via a 10K resistor, the respective logic levels were registered. In LabWindows, I use the 'NI435X_Init' and 'NI435X_Configure_Digital_Lines' driver functions to respectively initalize the DAQ card and set one of the DIO lines as an input, with the rest being set as outputs. However, I cannot read the input line using 'NI435X_Read_Line' unless I directly connect th
    is channel to 5V or GND (i.e. without a 10K resistor), but 'NI435X_Write_Line' works fine. It would appear that the input state of the DIO line is different to that established by NI MAX. Is there something other than the initialize function that should be called? I tried the following linemask combinations to set the port lines, by using F or 1 to represent an output and 0 to represent an input:
    NI435X_Configure_Digital_Lines(DAQ_session, 0x0FFFFFFF) // DIO 0 set as input, the rest as outputs
    NI435X_Configure_Digital_Lines(DAQ_session, 0x01111111) // DIO 0 set as input, the rest as outputs
    I am unsure which format, if either, is correct and would be grateful for any help on this anomaly. Thanks.

    Hi Kevin,
    Yes, if I connect an input channel directly to 5V, the software reads a logic high and continues to read this level even when I disconnect the channel and leave it "floating". The state changes to logic low only when I connect the channel directly to GND and then it stays at this level, even if I disconnect it from GND. In other words, the states seem to 'latch'. Nothing happens if I connect via the 10K resistor - the channel simply remains at the logic level it was last set to after I momentarily connected it directly to 5V or GND.

  • How can I use 4 DIO lines as digital input in a E series-SC 2050-ER8 set up ?

    I have a DAQ system with an E series DAQ card that is connected to SC-2050 and ER8. I want to use 4 DIO lines (out of 8) for digital input. How can I do this?

    Hello Suresh,
    There are a variety of ways to accomplish this. If you are using LabVIEW, you will use the DIO Port Config VI and the DIO Port Read VI. You will use the line direction map input of the DIO Port Config VI to setup which 4 lines you want to be the input lines. The LabVIEW shipping example entitled 'Dig Multi-line Direction (E) VI' shows how to use the lines of the digital port on an E-Series device for input and output.
    If you are using NI-DAQ function calls, you can use the Dig_Line_Config and Dig_In_Line calls to configure a digital line for input and then read from that line.
    I hope this helps.
    Regards,
    Todd D.
    NI Applications Engineer

  • Output signal distorted

    I have a pretty large VI which outputs high frequency signals to control some hardware and then takes an input from that hardware for image rendering.  My problem is that whenever I activate the imaging portion of my VI, the output signals become slightly distorted.  For example, a 1Hz sawtooth output doesn't ramp up smoothly but becomes slightly staggered.  This also messes up the frequency of the signal.  Does LabVIEW have problems outputting signals properly when another portion of the VI has a lot of cpu intensive processing?
    I am using the "Simulate Signal" block to create a 1 Hz sawtooth wave, 128 Hz triangle wave, and a 65,536 Hz square wave and outputting these signals through DAQAssist.

    Hi Laura,
    I went ahead and changed the 65,536 Hz square wave signal as the first input, but the three signals still do not output simultaneously.  Although the signals slightly change as I vary the Samples per Buffer and Cycles per Buffer, I can't seem to get a combination that is capable of outputting these two low frequency signals with my high frequency signal.  I would either get an error message about "DAC conversion attempted before data to be converted was available," or there would be no error message but the signal output didn't match the given specifications.  Attached is the vi with the modifications.  Presently, there is no error message with the given sampling information, however there is no square wave output at all, and the sawtooth waveform only shows a partial amount of the signal.  I had to make some slight modifications to the Waveform Buffer Generation vi in order to allow me to change phase, duty cycle, and offset of my square wave.  I don't think this would have any effect on the Cont Gen Voltage Wfm vi though.  Any ideas what's going on?
    Thanks a bunch,
    Anthony
    Attachments:
    Cont Gen Voltage Wfm-Int Clk multiple waveforms2.vi ‏121 KB
    Waveform Buffer Generation.vi ‏79 KB

  • Accessing full 32 DIO lines on PCI-6602 in C++

    Hi,
    I have seen a couple of posts on this topic, but none seem to contain an answer to the question, and the documentation in the Register Level Programming Manual appears to be incomplete.
    We need to access the full 32 DIO lines on the PCI-6602 card; however, only the first 8 lines (those driven by the STC) are documented.  Is there any example code or further info that would allow us to use this functionality? 
    We are programming in C++, using the Driver Development Kit, in QNX.
    Any help would be much appreciated.
    Cheers,
    Monte

    The 32-bit digital port registers were not included in the chipobject (by mistake).  The digital intput register is at offset 0x414 and the digital output register is at 0x510.  To access them you can use the tAddressSpace object directly:
    u32 value;
    value = Bar1.readU32(0x414); // read digital 32-bit port
    Bar1.writeU32 (0x510, value); // write digital 32-bit port
    For configuration, use the IO_Pin_x_x_Configuration_Register registers to configure the line for input or output. 
    For example,  to configure line 0 and 1 for input
    tio->IO_Pin_0_1_Configuration_Register.setIO_Filter_0_Select (0); // no filter
    tio->IO_Pin_0_1_Configuration_Register.setIO_Pin_0_Select (0); //input
    tio->IO_Pin_0_1_Configuration_Register.setIO_Filter_1_Select (0); // no filter
    tio->IO_Pin_0_1_Configuration_Register.setIO_Pin_1_Select (0); //input
    tio->IO_Pin_0_1_Configuration_Register.flush (0);
    or lines 29, 30 and 31 for output:
    tio->IO_Pin_28_29_Configuration_Register.setIO_Filter_29_Select (0); //no filter
    tio->IO_Pin_28_29_Configuration_Register.setIO_Pin_29_Select (2); // digital output
    tio->IO_Pin_28_29_Configuration_Register.flush (0);
    tio->IO_Pin_30_31_Configuration_Register.setIO_Filter_30_Select (0); //no filter
    tio->IO_Pin_30_31_Configuration_Register.setIO_Pin_30_Select (2); // digital output
    tio->IO_Pin_30_31_Configuration_Register.setIO_Filter_31_Select (0); //no filter
    tio->IO_Pin_30_31_Configuration_Register.setIO_Pin_31_Select (2); // digital output
    tio->IO_Pin_30_31_Configuration_Register.flush (0);
    valid values for the select field are:
    0 - input
    1 - counter output
    2 - digital output
    I hope this helps.

  • How to use PCI-6534 High speed DIO to count the no.of pulses aquired

    HI All
    I have PCI-6534 high speed DIO card. My requirement is to count the no.of pulses coming. Here i have an energy meter which generates pulses with frequency of around 8MHz. i need to cunt the no. of pulses coming in, here i am attaching the VI i am using. I could not really count all pulses coming in. right now i am using single line, but the requirement is to develop for 7 lines. I do not know where i am going wrong. Can any of you help me in this regards.
    Thanks
    Anil Punnam
    Attachments:
    Read Dig Chan-Change Detection_stop.vi ‏120 KB

    Sorry, not near a LV PC so can't look at your vi now.  Are you limited to using only the 6534?  If all you need to know is the count of pulses from each of the 7 ~8MHz sources, it seems like the amount of data storage required with a 6534 is terribly inefficient.  Since the 7 sources are unlikely to be synchronized in any way and they are each at ~8MHz, you're looking at about 100+ million transitions per second with change detection.  I don't think the hw can keep up with that.  Even using a constant sampling rate of 20 MHz (which just barely satisfies the Nyquist minimum of 2x 8MHz), it's questionable whether you can keep up with that rate for several minutes.  Even supposing the hw and your PCI bus and software can keep up, there's still a TON of processing to do.  20 MB/sec for 20 minutes = 24 GB! 
    On the other hand, consider the 6602 counter timer board.  Here you would simply set up 7 edge counting tasks, probably without any buffering at all.  At any leisurely pace you want, you can software query the counts of the # of pulses on each of the 7 channels and have an instant answer.  The only issue to deal with is that the counts will rollover when you reach 2**32.  At 8 MHz, this will happen about every 9 minutes.  However, DAQmx provides a nice way to handle this.  There's a property you can query that will tell you if a rollover has occurred.  It automatically resets itself to False after you read it so it's ready to detect the next rollover 9 minutes later.  See my first post in this thread for example.  (Last I knew, only DAQmx does the automatic reset, not traditional NI-DAQ).
    If you can possibly buy a 6602, I'd highly recommend it.
    -Kevin P.

  • Starting triangular output signal

    Greetings,
    I made this VI, but there's an error in it and I don't think it's solvable like this.
    The triangular output signal should start when I press the boolean. Else the DAQ Assistant should put out 0V.
    Also when I press the stop button the DAQ Assistant has to put out 0V
    Is there another solution?
    Thanks
    Solved!
    Go to Solution.
    Attachments:
    Screenshot.png ‏23 KB

    I recently made a solution by using the "Select" function.
    The Triangle Pattern produces the pattern I want the DAQ Assistant to send out the Output Signal.
    I'm using a USB 6008.
    But now I have a different issue. When I press the Start button, there's a sudden high pulse of 1V and then the output continues the regular Triangle Pattern.
    Attachments:
    Triangle voltage .jpg ‏35 KB

  • How to create 2 output signal locked in phase from a one input signal

    Hi all,
    I have a case in which I want read in a signal analog input (voltage) from a photodiode, I want to create a 2 sinewave signal locked in with same phase as the input signal and output them as analog output to my 2 laser diode. the frequency of the input signal is low aroud 15 Hz , the 2 output signal i want to be  around 120 hz and 150 hz . 
    I am using USB - 6003 daq card.
    I have created a vi to see the input signal but I dnt know how to create 2 signal from the waveform generator locked in the phase as the input signal. I have seen a PLL vi , but dont know how to use that with my program.
    can any one tell me how to proceed.
    thanks
    AG
    Attachments:
    pulse_PLL.vi ‏27 KB

    Hi AnkitG,
    Here are a couple of links that might help you understand a little more how the PLL work and a way to synchronize the task to perform a PLL.
    http://digital.ni.com/public.nsf/allkb/07BC8D77D4E9AE258625708B007CE74F?OpenDocument
    http://digital.ni.com/public.nsf/allkb/2F675A9F2162EA24862572570059A308?OpenDocument
    Also, you should be able to find a lot of examples on how to accomplish the synchronization of tasks on the community, if you consider that the only consideration is that both must start at the same moment. 
    I hope, these examples might show you some useful concepts:
    http://digital.ni.com/public.nsf/allkb/EBD603683446EC13862575B3006A63A2
    http://digital.ni.com/public.nsf/allkb/9E71F8D7D3CD1B0886257688004AE353
    Regards,
    Luis C.
    National Instruments

  • Capturing the output of a os command line

    I need to capture the output of a os command line executed from one java program and I don't know how can do it.
    For example:
    Runtime.getRuntime().exec("hostid");

    Your suggestion worked very well, just in case that this could interest somebody, this is the complete solution
    Thanks for your help
    import java.io.*;
    public class HostID
    public static void main(String args[]){
    try{
    InputStream in = (Runtime.getRuntime().exec("hostid")).getInputStream();
    byte[] arreglo= new byte[200];
    int cantidad = in.read(arreglo);
    System.out.println(new String(arreglo,0,cantidad));
    } catch (IOException ioe){System.out.println(ioe.getMessage());}
    }

Maybe you are looking for

  • Sso session timeout per partner application

    Hello, I was just wondering if it is possible to configure SSO session timeouts per partner application? I'm looking to log out users of a particular application after 15 minutes, but don't want this change to affect any of my other SSO enabled appli

  • HT4743 How do I play TV shows purchased on my PC?

    Pretty simple. All I get is a black screen with no sound.

  • Can't add actionscript to buttons

    Hi, I am currently trying to make a game in AS3 with forward and back buttons. I have drawn my buttons and converted them to symbol (button), but when I select the button and press F9 to add in the actions, this happens meaning I cannot add the scrip

  • SSIS + split 1 row in multiple rows based on multiple columns

    Hi all, I have a flat file  Shop ID        Check 1        Check 2            Check 3 500 OK OK NOK I want to transform this to staging as 3 rows Shop ID       Check number  Result 500 1 OK 500 2 OK 500 3 NOK Anyone can tell me how to tackle this?

  • Several g3 issues

    I want to give my g3 ibook to my son but having switched it on, it suddenly haas a number of problems. These include Safari, software update and the software installer prematurely quitting before they have loaded commpletely and being unable to join