Quantcast
Channel: Digital I/O topics
Viewing all 2181 articles
Browse latest View live

What's the practical difference between active drive and open collector?

$
0
0
I've done some searching and I understand what it is, but I don't understand what it means in practical terms. Why use one or the other?

My daq outputs 3.3V but I need 5V. What solutions are there?

$
0
0

My daq outputs 3.3V, and even though the device I'm driving says its TTL compatibile, apparently its not enough and I need 5V. What solutions are there? I'm completely new to all of this.

Use cRIO DO module NI 9477 as relay to provide 24V input for Siemens S7-200 (CPU222)

$
0
0

Dear All, could anyone please confirm my usage of NI 9477 as a relay works or not with following details. It might be too silly question but I am sure it is not posted before and I really cannot afford to burn my modules. I have two worries, one is sink or source connection, another is overcurrent issue.

 

The Siemens S7-200 is used to control a step motor driver by sending pulses. I need to provide two digital signals to control step motor's rotation direction. So I propose to connect my NI 9477 as a relay switch shown in the graph below (left configuration).

According to the NI 9477 datasheet (attached), I suppose I should connect it as the right configuration as NI 9477 is sinking module. However, current power supply in the control cabinet is wired as left configuration. I am not sure if I can just connect my NI 9477 or I need to adjust the power supply polarity. 

s7-200 wiring diagrams

Another concern would be the current through NI 9477. It rated at 1A and will be connected in series with only a 24VDC power and s7-200 digital input. I am not sure if the current would be a concern as in s7-200 datasheet, it seems that the current is only 4mA. Am I reading this correctly? I also attached the s7-200 datasheet if you have time to varify that, please.

S7-200 digital input specification

 

Thanks in advance for any help.

Regards,

Jinyu

Upper/Lower limits of PWM Frequency

$
0
0

Hello together,

 

I am planning to control a DC-motor with the PWM-Output of a Microcontroller and I am not sure how to set the PWM-Frequency. The microcontroller update rate is 200Hz and the DC-motor time constant can be calculated from L/R. But how can I calculate the duty cycle frequency and the counts per cycle frequency (percentage resolution)?

Is it a problem, when the circuit current does not reach is steady value during a PWM-period? Because if the duty cycle frequency is very high, then for short ON-Times, the steady value will not be achieved, right?

 Also the counts-per-cycle frequency specifies what the timing resolution will be (for example 1000 counts per duty cycle, means that barely 2^10 bits can be achieved), if I am right

How exactly do I calculate the upper and lower limits?

 

Thank you in advance

Lysandris

PCI-6514 not supported in Linux drivers?

$
0
0

Hi,

I've noticed that the NI-DAQmx base package does not include support for the PCI-6514 card. Why is that? Is there any chance it will be added in the future? NI-DAQmx 8.0.2 is getting a bit long in the tooth, but it has support for the 6514.

PXIe-6537 Stopping waveform generation

$
0
0

Hi all,

 

I am using a NI PXIe-6537 50MHz DIO card in a PXIe-1071 chassis. I have been assuming that the 50MHz speed quoted is the maximum sample generation speed.

 

Using the 'generate waveform' functionality of DAQmx I have been attempting to generate a waveform at a variety of speeds, however above 3MHz the 'Active' light on the card goes red and generation does fails to start (viewed on oscilloscope). At lower speeds of about 2.36MHz the generation starts as expected but then cuts out in the manner described above.

 

Using dotNET 4.0 with DAQmx 15.1:

 

double rate = 3;// MHz

rate *= 1000000; //

int sampleCount = 1;

int signalCount = 1;

data = newDigitalWaveform(sampleCount, signalCount);

byte[] dataSamples = newbyte[] { 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0 };

data = DigitalWaveform.FromPort(dataSamples);

wfWrite = newTask();

wfWrite.DOChannels.CreateChannel("PXI1Slot3/port0/line0:7", "", ChannelLineGrouping.OneChannelForAllLines);

 

wfWrite.Timing.ConfigureSampleClock("", rate, SampleClockActiveEdge.Rising, SampleQuantityMode.ContinuousSamples);

 

writer = newDigitalSingleChannelWriter(wfWrite.Stream);

writer.WriteWaveform(false, data);

wfWrite.Start();

 

 

 

Have I missed something?

 

Thanks,

jh16g15

PCI 6503 on a PCI-e with raiser

$
0
0

I am upgrading the motherboard of our test system that uses 6 PCI slots including a PCI 6503 and a PCI-GPIB card. It is difficult to get a motherboard with 6 PCI slots. Question is will the 6503 and GPIB PCI cards work on a PCI-e slots with raisers?

 

My first thought was to get a PCI expansion system, but it appears this may not be comaptible with NI PCI cards.

R Series NI SPI FPGA - NI SPI IP Example - LabVIEW Crash

$
0
0

Hello,

 

I am trying to run the R Series - NI SPI FPGA Simulation.lvproj project example that comes with NI SPI IP on an actual PXIe-7976R FlexRIO FPGA target with an attached NI 6581B Digital Adapter Module. The example is for a PCIe-7841R but I ported it over to my FPGA target following these steps and made additional modifications to try to make it work with my set-up. I learned that CLIPs for FlexRIO FAMs don't work with Desktop Exection Nodes so I know that I cannot simulate the project as originally intended so I am trying to use FPGA I/O node host side (open FPGA vi reference) to implement on actual hardware. 

 

My first question is regarding my adapter module IO configuration and selection. I've added the IO Module (NI 6581B : NI 6581B Channel) to my project and selected the channels as shown in the table below. I have an actual physical hardware connection as descibed below using two NI SHC68-C68-D4 cables and a break-out board.

IO Mapping.png

 

I changed the names as well:

IOModuleNames.png

I selected these DIO channels because I wanted the DDCA Connector to be the Master and the DDCB Connector to be the Slave. Also, in this CLIP each grouping of eight I/O channels has a write enable signal. I did not use the Port configuration because I needed 4 available DIO channels and I only saw DIO0-3. Is my logic for selecting Channel vs Port correct here?

 

Following the same strategy as the FlexRIO/NI6581B examples, I modified the FPGA.vi to include some initialization outside of the timed loops:

FPGA_vi.png

 

 And in the Host.vi I have a FPGA reference node and have wired the feedback loops accordingly:

Host_vi.png 

 When I compile the FPGA and try to run Host.vi LabVIEW inevitably crashes with the Crash Reporter below and and has to restart:

LabVIEW_FPGA_Fail.png

 

 Does anybody know what I am doing wrong here? My guess is that it has something to do with the CLIP/IOModule. Any help is appreciated.

 

Thank you,

Scott

 

 

 


USB6341 Digital/Counter output voltage

$
0
0

I hope to use USB6341 to generate a trigger another device that requires 3.3v input. 

 

I wonder if USB6341 output can be configured to generate 3.3v digital/counter output?

 

Thanks.

Controlling multiple AO signals with 9263?

$
0
0

Hello,

 

I am trying to control 4 relays with a 9263 compact DAQ module.  I know the code works because 1 of the relays functions exactly as I intend and I get no errors.  The problem is, no matter how I configure the other channels (select multiple using 1 physical channel control or use individual physical channel controls) only the 1st channel seems to function.  I checked and the relays, DAQ, and power source all have good connections and properly function.  Does the 9263 only support 1 AO at a time?  I searched for this but wasn't able to find any answers specifically for the 9263.

 

Thanks,

Kurt

9401 driving a SSR

$
0
0

Is a 9401 module capable of driving a small (5amp) SSR with a 4-15 volt input?

Digital output NI-MAX tasks always reads low

$
0
0

In the system I'm working with, the ports on the USBs are being written to by an application, and I want to read the digital state of the wires at a certain point in time. I'm trying to perform these reads using the digital output tasks provided in NI-MAX. In order to test that the digital output tasks are working as expected, I tried to run a digital input task to write a known bit pattern to the wires, and then run a digital output task to read back the same values afterwards. 

 

The issue is that everytime I run the digital output task, NI-MAX seems to first set all the wires to digital low before reading (thus always reading digital low on every wire). I can tell this because I know how the NI driven device should react to digital low on every wire.

 

Has anybody encountered this and is there a solution?

More than 32 channels of hardware timed DO? 24V Sourcing would be great.

$
0
0

Hi,

 

For several projects, I've used a NI-9476 to directly actuate solenoids, taking advangtage of the hardware-timed channels (the 2kHz rate was fine, but wouldn't want to go lower than 1kHz).  It appears that you cannot place multiple 9476 modules in a chassis and trigger/synchronize their outputs.  Can someone confirm?

 

If that is the case, what is next best option to have more than 32 hardware-timed digital outputs (at ~1kHz)?  Sourcing current would be great, but if need-be, I can place circuity in between the module(s) and solenoids.  Thanks.

 

-Joe

How to control solenoid valves from computer

$
0
0

I work for a small PV&V department. We have a cDAQ-9188 chassis with numerous cards for performing data aquisition, using Signal Express. We also have a PLC (Automation Direct) for controlling various cycles tests. I am normally able to program the PLC to perform multiple tests at one time, however we are currently running a test off site and the PLC is being utilized. We have another upcoming cycle test which will need some simple control function (turn directional valve on 2 seconds, rest 1 second, reverse directional valve 2 seconds, rest and repeat. It appears that our NI9375 card would be able to be utilized to control the directional valve (with a relay). Can someone verify this and provide a sample LabView program I could start with to control our test (we also have LabView, but I have not spent enough time on it to become familiar with programming it). Thanks in advance. 

NI-9425 Clock Rate

$
0
0

I am currently attempting to change the clock rate on a NI-9425.  The module manual states that the rate should be 7us, but when I am testing it the rates seems to be locked down to 1kHz that is a far cry from the 140kHz that is defined on the speciifcation sheet.  Is there any method to change clock rate without using the FPGA module.


Pull a stepper pulse input low (ground) with a 9472 or 9381

$
0
0

I have a stepper motor controller that requires a pulse output from my cRIO. The input for the pulse is tied high with a 20k ohm resistor on the driver and the rising edge of the pulse will cause it to actuate.

 

Essentially, I need an output that opens and closes a contact,  rather than the sourcing output on the 9472 or the 3.3V TTL on the 9381. Can either of these cards handle that?

 

I'm able to get the driver to operate using a sourcing output (from 9472) into a mechanical relay but that isn't ideal for several reasons.

 

Running LV 2014 with a cRIO 9073 in scan mode. The 1ms scan rate isn't a problem for the speeds we are looking for out of this motor.

RoboRio Connectors

$
0
0

I'm trying to find the correct connectors for all the available ports on the RoboRio.   The students want to create a cable harness for their robot.  Thanks

Michael

Heavy Copper PCB- hitechcircuits.com

$
0
0

Heavy Copper Printed Circuit Board (PCB) is a combination of processes that allows extreme copper thickness requirements to become efficient and cost effective. Heavy copper PCB is designed with 3 or more ounces of finished copper in the inner and/or outer which is known as the process of Laminated Deposition. This process uses heavy base copper that delivers consistent and reliable high power circuits.

 http://www.hitechcircuits.com/pcb-products/heavy-copper-pcb/

Using DAQmxWriteDigitalScalarU32 to write channels sharing same port(s)?

$
0
0

Hello,

I have a USB-6509 and NI-DAQmx 15.5.1 installed. Using the ansi c api.

 

Is it possible to create several independent channels that use different lines from the same port?

 

DAQmxCreateTask("",&th1)

DAQmxCreateDOChan(th1,"Dev1/line0:4","",DAQmx_Val_ChanForAllLines)

DAQmxStartTask(th1)

DAQmxCreateTask("",&th2)

DAQmxCreateDOChan(th2,"Dev1/line5:9","",DAQmx_Val_ChanForAllLines)

DAQmxStartTask(th2)

....

and repeat for the following channels:

Dev1/line0:4
Dev1/line5:9
Dev1/line10:14
Dev1/line15:19
Dev1/line24:28
Dev1/line29:33

 

So I can use DAQmxWriteDigitalScalarU32 to write to each task independently?

 

for example:

DAQmxWriteDigitalScalarU32(th1,1,10,0x1,NULL)

DAQmxWriteDigitalScalarU32(th2,1,10,0x2,NULL)

DAQmxWriteDigitalScalarU32(th3,1,10,0x3,NULL)

...

DAQmxWriteDigitalScalarU32(th6,1,10,0x6,NULL)

 

Will these tasks interfere with each other since they use the same port, but are assigned different lines?

If not, do I need to bit shift the data if the task/channel doesn't start at line Px.0?

 

Thanks!

Getting around the DAQmx driver software

$
0
0

Hi,

 

Is it possible for me to talk directly to the driver without going through the C# DAQmx.dll driver software? I need to work in java and although I found away to wrap the DAQmx.dll C# library with a Java wrapper class, this creates a lot of dependencies and it would be a lot cleaner to just bypass that API altogether and develop my own.

 

Ideally I would like to determine how the driver software talks to the socket so that I can recreate this.

 

Thanks

Viewing all 2181 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>