DIO lines of NI PCI 7334

Hi
I have a NI PCI 7334 motion controller from which I hope to controll 4 stepper motors through a MID 7604 stepper motor driver. In addition to this I require to drive 6 relays from TTL signals (generated from commands from labview) through the digital IO lines of the device.Can this controller provide 6 digital out puts ( each giving a TTL signal) and one ground like in the case of DAQ device. I only have the cable connecting the controller to the MID 7604 stepper driver. What else is required to get the digital output lines and the ground similar to a DAQ device?
Thanks
Mal

The PCI-7334 provides two connectors. One (1) for the motion control signals (which you are using) andanother one (2)for the additional 32 digital lines.
On connector 1 there are also 4 digital output lines available that can be used as general purpose digital outputs for the case that you don't need the breakpoint feature of the board. These are open collector DOs pulled up to +5 V with a 5.5 kOhm resistor and they can sink up to 64 mA. You can place a parallel resistor between each DO and +5 V in order to increase the current. Please note that the resulting resistance (3.3 kOhm in parallel with your resistor + load resistance) shouldn't be below 78 Ohm.
As there are only 4 breakpoint outputs available this solution will probably not work for you so you should use the additional digital lines on connector 2 instead which will require a cable (e. g. 186381-01) and a connector block. These DIOs provide a 0 to 5 V voltage range and can sink and source 24 mA. The current range can be extended with external SSR modules. For more information please refer to the NI 7330 user manual.
Best regards,
Jochen Klier
National Instruments Germany

Similar Messages

  • Detect DIO line change on PCI-6250

    Using Visual C++ how can I detect when a digital line goes high on a NI PCI-6250 M-series board? I want to make a loop that will cycle each time a digital input goes high (with millisecond or better accuracy).
    Thanks,
    Mark

    Actually, there are two ways to do this, if your card supports Digital Change Detection timing. Unfortunately the PCI-6250 does not, but the following cards do: PCI-6509, PXI-6509, PCI-6510, PCI-6511, PXI-6511, PCI-6514, PXI-6514, PXI-6514, PCI-6515, PXI-6515, PCI-6518, PCI-6519, PCI-6527, PXI-6527, PCI-6528, PXI-6528, PXI-6533, PCI-6533, PXI-6534, PCI-6534, and perhaps others.
    In any case, if you do have one of these cards with hardware support for Digital Change Detection timing, then you can do one of the following:
    a) Create a DI channel on your task, and then configure digital change detection timing using CNiDAQmxTiming::ConfigureChangeDetection(). Then perform either synchronous or asynchronous single-sample reads; when one of the digital lines of interest changes, then the blocking synchronous read will finish or the asynchronous read will call your callback. This is demonstrated with the Digital \ Read Values \ ReadDigChan_ChangeDetection example.
    b) Create a DI channel on your task, configure digital change detection timing, and then set up a Digital Change Detection event on the task. This is demonstrated with the Digital \ Read Values \ ReadDigChan_ChangeDetection_Events example, although (a) is the preferred method.
    Since the PCI-6250 doesn't support hardware digital change detection, what you have to do instead is to continuously read the status of the digital lines, and check to see if the lines went high programmatically. If you do not explicitly configure the timing for the acquisition, then the timing mode will be on-demand and the data will be read as fast as possible. You also have the option of calling CNiDAQmxTiming::ConfigureSampleClock() to configure the clock rate based off of another signal, such as PFI7. Here's a sample:
    try
    CNiDAQmxTask t("");
    t.DIChannels.CreateChannel("6250/port0/line7:0", "", DAQmxOneChannelForAllLines);
    t.Timing.ConfigureSampleClock("/6250/PFI7", 0,
    DAQmxSampleClockActiveEdgeRising,
    DAQmxSampleQuantityModeContinuousSamples, 1);
    CNiDAQmxDigitalSingleChannelReader reader(t.Stream);
    bool stopLoop = false;
    while (!stopLoop)
    CNiBoolVector data;
    reader.ReadSingleSampleMultiLine(data);
    for (unsigned int i = 0; i < data.GetSize(); i++)
    if (data[i])
    MessageBox("Went high.");
    stopLoop = true;
    break;
    catch (CNiDAQmxException* ex)
    ex->ReportError();
    ex->Delete();
    Hope this helps,
    Hexar Anderson
    Measurement Studio Software Engineer
    National Instruments
    Hexar Anderson
    Measurement Studio Staff Software Engineer
    National Instruments

  • 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.

  • 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).

  • Controling a sigma koki motorrized stage via a PCI 7334

    Hi everyone,
    I am trying to control a sigma koki motorized stage via a PCI 7334.
    The motor is a stepper motor.
    For information, here is the connection diagram of the stage via the driver (SG55M on the diagram) to the controler:
    http://www.sigma-koki.com/english/D/SteppingMotors/Diagram/Diagram/Diagram.html
    I ran a selftest on the motor using the driver and everything is going well.
    As a first step of my design, i would just like to control the motor without any feedback, and without limit switch options.
    I am using a 1:1 connector CB68LPR from NI to connect the driver to the PCI 7334. Doing this, i provide CW and CCW signals from the PCI to the driver as well as the inhibit signal. Thus, I come up using the pins 1,35, and 6 of the 68pins connector. Looking at other threads posted on NI, I believe those connections are enough to observe a simple move of my motor isnt it?
    When i try out within MAX to test a movement using the 1 D interactive feature, my stage doesnt move.
    MAX is confingured as followed:
    > only axis1 enabled
    > CW, CCW stepper mode 
    > limit and home switch disabled
    > inhibit output setting enable
    > ADC, PWM, ENcoder disabled since i dont use them so far
    Those parameters are initializing the pci.
    Is there other parameters that i should look at and which could prevent my motor to work?
    While doing this first step, I monitor the signals from the PCI via oscilloscope and clock pusles are ok.
    It is the first time i try to control a stepper motor using a PCI so i read the documentation to be found on Ni website, and i may just have forgoten something, but i cant see what...
    Do i need to provide some additional signals? Or just with CW, CCW, and inhibit is ok?
    If you find any comments or recommendations, they are welcome
    Cheers ^ - ^

    Hello Gegurissi,
    To test the motor with a minimum configuration, you can connect CW, CCW, and digital ground lines to the driver.
    It looks like that there is no ground connected to the motor, so please make sure that they are connected to the ground of the driver, too.
    For the MAX settings, it seems fine, but the settings have to be saved and the board has to be initialized before the motor is moved.
    In 1-D Interactive feature, please make sure that a value is entered in the "target position" section and click "apply" button.
    Also, are there any error messages when you move the stage?
    One last thing I would like to mention is that it is strongly recommended to use Universal Motion Interfaces (UMI) and Motion cables for the NI motion controllers.
    The UMI devices are powered, such that they can provide necessary power to encoders, limit switches, etc.
    If you have any questions, please let me know.
    National Instruments Japan
    Satoko Yuda

  • 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 access the control lines of a PCI-1422 from within C++?

    I would like to know how the control lines of a PCI-1422 can be accessed (set) programmatically from within C++ (MS VC++7, Windows XP). A flat panel sensor connected to the PCI-1422 needs the control lines to switch on features like binning which I want to use.
    Unfortunately I was unable to identify an appropriate command in the IMAQ documentation. Does anyone have experiences with this?
    Thank you very much in advance!

    Kluas,
    The control lines are not exposed through any API. The control lines are run by the driver based on the instructions in the camera files. If the cammera file supports the binning functionality of your camera then you should be able to set the attributes such that the board runs the control lines approriately.
    Hope this helps,
    Amaury
    NI Applications Engineer

  • 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

  • Problem updating the Firmware on a PCI-7334

    About me: I am pretty new to the Labview/NI landscape so I may be missing something here! That said im very technically aware in general and believe I understand what is going on here.
    Background: This NI PCI-7334 board has been taken from currently unused project stock so current physical condition of board is not really known (ie was not recently working) although it appears to be in good physical order.
    Attempting to setup a new Labview 7 Express development environment on new PC hardware with a clean build of Windows XP Pro SP1 along with 1 x IMAQ PCI-1411 and 1 x IMAQ PCI-1408.
    Attempting to update the PCI-7334 with the latest firmware in NI Motion 6.1.2. I select the option "Update All Firmware Sectors" f
    rom the firmware tree by right mouse clicking. It starts off with the buttonless (ie No Cancel Button) file transfer progress dialog box. But after about 30 seconds I keep getting the error "Error configuring the board for download. Please ensure that the board is in a reset state and that no other application is communicating with it."
    Existing Firmware versions are listed in NiMAX as:
    68331 - 6.00.3012
    DSP - 6.00.3008
    FPGA1 - [BLANK*]
    FPGA2 - [BLANK*]
    *Listed in tree without a version
    Unusually under the General listing I get "0" for the device serial number!
    When I go into the "Status" area and choose the "Reset Device" option I eventually get these status lights (red):
    Ready to Receive
    Power Up Reset
    Modal Error Message
    0x80 Move Complete Status
    I have tried removing all other cards from the PC to ensure there is not a compatability issue.
    At this stage it would appear that it is a hardware problem so I was wondering what options I have available to g
    et this card repaired. Is repair by NI economically viable or is a new puchase a better approach? IE are repairs done at a fixed price or based on materials and labour?
    Please advise!
    Thanks, Rod.
    Attachments:
    NI_PCI-7334_Firmware_Update_Error.zip ‏115 KB

    I agree with your diagnostics. It looks like something went wrong during the last firmware update. The only solution for this problem is to send the board for repair.
    NI has fixed prices for repairs which are much cheaper than buying a new board. Please contact your local NI branch for details.
    Best regards,
    Jochen Klier
    Applications Engineering Group Leader
    National Instruments Germany GmbH

  • PCI-7334 and L298

    Hi there!
    Hope someone will help me with this one. I am currently working on a project that uses the pci-7334 stepper motor controller. unfortunately, i don't have any power drive with me. but i do have an UMI-7764 connector block and a L298 dual full-bridge driver. i also have some stepper motors with me but they are not of NI's. my question is: is it possible for me to used the pci-7334 to connect with the L298 and to the stepper motors using the UMI-7764? if possible, could anyone help me with the proper wire connections? thanks ahead for the response!
    kris
    Solved!
    Go to Solution.

    It is NOT that easy to drive a stepper motor, you need quite a bit more circuitry than just a plain half-bridge driver. You also have to control the current flowing through the motor winding. This is mostly done via PWM (pulse width modulation) since this method allows for using plain on/off switches which have more efficiency than an analogue control circuit. Also, using plain switches allows for running a stepper motor in full-step mode only which will yield rather rough motion/rotation.
    You can enter the learning curve and design all this from scratch but it will be probably much more cost and time effective to use a ready-for-use driver. We are using drivers from IMS
    http://www.imshome.com
    They also offer a range of stepper motors but their drivers are compatible with most 2/4 phase stepper motors on the market, we are using them together with Phytec and Oriental motors. Their manuals are very extensive and also cover the basics of stepper motor operation and connection to drivers.

  • 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

  • Cables to connect my PCI-7334 motion to one UMI and one SSR backplane?

    i want to connect a PCI 7334 to one UMI and one SSR backplane, what cables do i need (number)

    Hi NI_Rookie. This is a good question.
    To connect the 7344 to a UMI, you need the SH68-C68-S Cable with D-Type Connector (#186381-02).
    To connect the 7344 to an SSR backplane, you need the SHC68-C68-S Cable (#186380-02) with the SSR 8, 16, 24 Channel Cable Adapter (#778262-01)
    If you need help getting everything set up, please let us (the forum enthusiasts) know.
    Kyle V.

  • 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

  • Change clock frequency in PCI 7334

    Hi ,
       I'm using a PCI 7334 stepper motor controller. The default clock is 10 KHz, but I would like to reduce it to 100 Hz or less.
    I'm using LabView 8 and  the example .vi like 
    One-Axis Find Reference with Status Monitor.vi or
    Simple One-Axis Move.vi
    I can't find how to change the clock frequency. Anybody can help ?
    Many thanks.
    Paola

    Hi,
    I think you have to change the velocity using Load velocity function.
    You can find an example in the One Axis.llb > One-Axis Move (Accel- max Vel - Decel).vi in which is used Load Velocity in RPM.flx.
    If you want to specify Steps/sec you have to use the Load Velocity.flx function (as you can see from the help the default value is 10000steps/s).
    Best regards
    AmbuA

Maybe you are looking for

  • Importing a contact folder from external hard drive onto new iphone

    It is kind of a long story...my mom was updating iphone on computer when computer crashed. iphone crashed. had friend move all info from crashed computer onto external hard drive. got new iphone. so, she no longer has a computer and we have to share

  • Fields missing in Update rules

    I am creating snap shot DSO for inventory management and after that i created the update rules for it linking it to the info source 2LIS_03_BX. When i do this i am missing the info objects that i created to include in the DSO. How do i solve this iss

  • Is it possible have ISA-type functionality using EP alone?

    We are implementing r3/enterprise (ECC 5.0). we need to provide access to a few large customers (Distributirs/resellers) for Order entry & enquiry of their own orders etc..(with variant configuration). Internet Sales (ISA) seems to provide this funct

  • Inserting HTML/CSS in a Tabbed Panel

    I've been having trouble inserting HTML/CSS into a Tabbed Panel widget. In this case, the HTML/CSS is creating a text box with scroll bars (as described in an excellent workaround for getting scroll bars to work). Has anyone else come across this sit

  • Transportation PO Output

    Dear All, I have created a Service PO(Document Type ZSHP) through Shipment Cost settlement.How do I set up the output determination procedure for this new document type. Regards.