What is labview digital write-to-line logic high voltage?
i'm using a pci-6503 daq hardware and cb-50lp.I'm currently doing a project to interface a labview vi to a programmable chip(downloaded with a vhdl program),using the daq hardware.The chip must function according to the labview program.I'm using 2 digital write-to-lines and 6 digital read-from-lines to interface to the chip.
Problem:
the 6 digital read-from-lines are able to read from the chip,but the 2 digital write-to-lines are unable to reach a logic high of 5v.This means that the labview vi can only read and unable to write to the chip to function(only one way communication).In the daq wizard,when using the test panel to test the individual lines of port a,b and c,it is able to write a good
logic low and good logic high(5v),even when all the lines are being used altogther.But when the labview vi is being run, the write-to-line cannot write a good logic high,thus unable to interface completely with the chip.
Please advise.Urgent!
grays
LabVIEW does not do anything different to the PCI-6503. NI-DAQ outputs the same 5V from MAX and LabVIEW. Are you sure the FPGA isn't driving 0V on the same line? You could test this by putting a small resistor between the FPGA and the DAQ card. See what the voltage is across the resistor.
Even at 2.5mA, the 6503 should output 3.7V.
Similar Messages
-
How to config the digital write-to-line so it would independent when more than one is being used
when one digital wirte-to-line is used in the labview vi, a good logic high(5v) can be read using a voltmeter,but when two or more digital write-to-lines are being using at the same time,the logic high seemed to have split voltages and thus having a bad logic high.how to make sure that in the labview program,that when many digital write-to-lines are used at the same time,all of them can abtain a good logic high (around 5v).
I need the solutions urgently.
grays
npHello,
The probable reason you are seeing the behavior you are is due to a reconfiguration of the digital port. The Write to Digital Port VI is setup to configure the entire port, then write to one line (default settings). If you reconfigure the port it will reset all the lines, and then write your new value. You will want to use the iteration input on the Write to Digital Line so you can avoid the reconfiguration issue.
The first time the Write to Digital Line is executed in your code wire a 0 to the iteration (or leave it unwired). This will configure the port for write and write your first value. The next time you use the write to digital port VI wire an integer greater than 0. This will bypass the configuration step and simply write the new value to the
line. You can open the Write to Digital Line VI to see how the iteration input effects the execution and configuration of the digital ports. -
What happens if an iPhone charger receive a high voltage, would the iPhone get burnt or the charger?
"If I charged my iPhone with a charger and the electric voltage was 260V"
Why would you do that? The power adapter has protective circuits at both the input and output. If you attached 260VAC to the input, it is likely to shut down, and can be reset by unplugging the power adapter, and plugging it into an AC outlet with the proper voltage. I'm sure you have plenty of follow-on questions ("how about 400VAC, 2000VAC, a million billion trillion volts AC), and I won't entertain those. -
I am using a DAQ-1200 lab card (8253/54) to run a micro-stepping motor for a NASA research project. I need to tell LabVIEW to send a logic high (+5V) to one of the digital ports when my counter (ICTR Control) reaches a specific value. The logic high trips a relay which changes the direction of the motor, but I cannot figure out how to trigger it. Thanks!
Wire your counter T/F condition to a Case statement, and when T, have the 'Write to Digital Line.VI' output the logic high or low as appropriate. That VI is in the Functions>Data Acquisition>Digital I/O palette. This should work. Good Luck - Doug
-
I am trying to write multiple lines high
I have LV 5.0, PCDIO-24 card & WinME
I am trying to write multiple lines high, but when I write one high
the others reset. I read about the 8255 chip problem & found an
example vi on NI's website that maybe a work-around, but it won't run
with 5.0. I am somewhat new to Labview and request help! How can I
open "Write to Multiple Digital Lines.vi" with 5.0,
or does someone have an similar example vi?
My vi has 3 different delay timers that try to write data high when
they countdown to zero. They work fine one at a time but not when I
put them into a single vi and run them all at once.
Thanks,
MikeBDennis Knutson wrote in message news:<[email protected]>...
> I think your problem is that you're using something like Write to
> Digital Port.vi which writes to all lines. Use the lower level
> function DIO Port Write.vi and set the line mask. The line mask is
> used to determine which lines to write to and which lines to leave
> alone. For example, if at one point you just want to write to bits
> 5,6,7, set the line mask to 1110000 (assuming 8 bit port). If at
> another point, you just want to write to bits 0,1,2, you would set the
> line mask to 00000111.
When I try to set the line mask of "DIO Port Write.vi", it won't allow
me to have a 0 as the first digit. If I enter 00001111 for example,
the zeros dis
sappear as soon as I click the check-box. (the line mask
box will reset to 1111). What am I doing wrong?
Thanks for the help!
MikeB -
In Adobe Forms where to write to write Program lines
Hi All,
In Adobe Interactive Forms , in SFP transaction where do we write Program lines.
In smar forms , roight clik flow logic and program lines creates an area for program line, what is the euqualiant to this in adobe forms.
Please help me out on this.
Thanks,
PraveenHi,
Please check the following links,
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d4fe7fca-0b01-0010-569a-9a9c1ddf4132
https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/7c3bc67e-0c01-0010-dbb3-908315896909 [original link is broken] [original link is broken]
https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/7c3bc67e-0c01-0010-dbb3-908315896909 [original link is broken] [original link is broken]
/people/vani.krishnamoorthy/blog/2006/05/17/fillable-adobe-forms-using-abap -
What code can i write for this?
unction Name : ZXXx_Update_Contact
Hi,
I need what parameters and tables can use for this requirement.
What code can i write?
Function Name : ZXXx_Update_Contact
Use BAPI_BUPA_CENTRAL_CHANGE as a starting point for updating the business partner
Business Partner = contact number
Complete the following for any changed fields
CentralDataPerson_X - This is a set of switches telling the function what to update
CentralDataPerson - Firstname & Lastname
Use BAPI_BUPA_ADDRESS_CHANGE for address changes
Business Partner = contact number
Address data - city
Address data_X - X in city field
BAPIADTEL first entry - Telephone(Business land line number),Con-001
BAPIADTEL second entry - Telephone(Mobile number),Con-002
BAPIADTEL_X first entry - X in Telephone and Con fields
BAPIADTEL_X second entry - X in Telephone and Con fields
BAPIADSMTP - e-mail
BAPIADSMT_X - X in e-mail field
Early reply is highely appriciable.
Regards,
chow.Hi Nishu,
There is no way you can validate the fields and their lengths before you ipload them into internal tables.
First you should upload them and then loop the intrenal table to delete such records.
loop at itab.
if strlen(itab-comp_code) < 4.
delete itab index sy-tabix.
endif.
endloop.
Regards,
Ravi -
DAQ vi to perform digital write and read measurements using 32 bits binary data saved in a file
Hi
DAQ vi to perform digital write and read measurements using 32 bits binary data saved in a file
Two main
sections:
1)
Perform
write and read operations to and fro different spread sheet files, such that
each file have a single row of 32bits different binary data (analogous to 1D
array) where the left most bit is the MSB. I don’t want to manually enter the
32 bits binary data, I want the data written or read just by opening a file
name saves with the intended data.
2)
And
by using test patterns implemented using the digital pattern generator or build digital data functions or otherwise, I need to
ensure that the
binary data written to a spreadsheet file or any supported file type
then through the NI-USB 6509 is same as the data read.
I’m aware I can’t use the simulated
device to read data written to any port but if the write part of the vi works I
‘m sure the read part will work on the physical device which I’ll buy later.
My Plan
of action
I’ve
created a basic write/read file task and a write/read DAQ task for NI USB 6509
and both combine in a while loop to form a progress VI which I’m confuse of how
to proceed with the implementation.
My
greatest problem is to link both together with the correct functions or operators
such that there are no syntax/execution errors and thus achieve my intended
result.
This
project is one of my many assignments for my master thesis, so please i’ll
appreciate every help as I’m not really efficient with LabVIEW programming but
I prefer it because is fun and interesting if I get to know it.
Currently I’m
practicing with LabVIEW 8.6/NI DAQmx 8.8 Demo versions and NI USB 6509
simulated device.
Please see
the attached file for my novice progress, thanks in
advance for the support
Rgds
Paul
Attachments:
DIO_write_read DAQ from file.vi 17 KBWhat does your file look like? The DAQmx write is expecting a single U32 value, not an array of I64.
Message Edited by vt92 on 09-16-2009 02:42 PM
"There is a God shaped vacuum in the heart of every man which cannot be filled by any created thing, but only by God, the Creator, made known through Jesus." - Blaise Pascal -
NI cDAQ-9178 and CDAQ-9481 on windows 7. I have a sub vi that runs over and over that will write to the relay module.
For memory management, is it better to clear a digital write each time it runs in the sub vi, or wait till the program ends and clear the task?
Solved!
Go to Solution.bassinbc wrote:
NI cDAQ-9178 and CDAQ-9481 on windows 7. I have a sub vi that runs over and over that will write to the relay module.
For memory management, is it better to clear a digital write each time it runs in the sub vi, or wait till the program ends and clear the task?
I'm not sure exactly what you mean by "clear a digital write each time it runs in the sub vi". I assume that you're using the DAQmx API, have created an output task prior to the sub vi, are writing the boolean in the sub vi, then closing the task when you're finished using the hardware (eg. cleanup). But I can't tell any more from your description and I confess the terminaology you use is not clear to me. Do you have example code? As far as I'm aware the digital output status is maintained between "writes" so there is only a need to write when the output status needs updating (ie negating), but I'm not especially familiar with the two DAQs you mention. If they work the same way as the ones I'm familiar with, then the only time I "clear" a write is to reset the output status to False on application shutdown. -
How to view waveforms in DIAdem that were saved in Labview using "write waveforms to file" VI
I'm new to DIAdem but would appreciate any help to my question.
I seem to be having a little trouble but how do I view waveforms
in DIAdem that were saved in Labview using "write waveforms to file" VI??
tks, TerryHello,
There are several ways to write waveform data from LabVIEW so it can be accessed from DIAdem. Two of the easiest ways are to use either .lvm files or .tdm files. You can write .lvm files using the Write LabVIEW Measurement File.vi which is located in the File I/O palette. You can write .tdm files by using the storage VIs which are located in the File I/O >> Storage palette. So, I would recommend using either of these file formats if you are developing a new application since these can be loaded into DIAdem directly.
If you are interested in loading files that where already created from the Write Waveforms to File.vi, I am wondering what file type you are using. For example are you saving your files as .dat or .txt with your Write Waveforms to File.vi? Feel free to reply to this thread with this information and I would be glad to help you out.
Regards,
Kevin L.
Applications Engineer
National Instruments -
I can not pay purchase what to do? writes address in support айтюнс for completion of this transaction
Please post in your native language... this makes no logical sense.
-
RandomAccessFile: How do I Clear the txt file and write multiple lines of..
Hello all,
I am a 6th grade teacher and am taking a not so "Advanced Java Programming" class. Could someone please help me with the following problem.
I am having trouble with RandomAccessFile.
What I want to do is:
1. Write multiple lines of text to a file
2. Be able to delete previous entries in the file
3. It would also be nice to be able to go to a certian line of text but not manditory.
import java.io.*;
public class Logger
RandomAccessFile raf;
public Logger()
try
raf=new RandomAccessFile("default.txt","rw");
raf.seek(0);
raf.writeBytes("");
catch(Exception e)
e.printStackTrace();
public Logger(String fileName)
try
raf=new RandomAccessFile(fileName,"rw");
raf.seek(0);
raf.writeBytes("");
catch(Exception e)
e.printStackTrace();
public void writeLine(String line)
try
long index=0;
raf.seek(raf.length());
raf.writeBytes(index+" "+line);
catch(Exception e)
e.printStackTrace();
public void closeFile()
try
raf.close();
catch(Exception e)
e.printStackTrace();
}Enjoy! The length of the code is highly attributable to the test harness/shell thingy at the end. But anyway seems to work nicely.
import java.io.*;
/** File structure is as follows. 1st four bytes (int) with number of live records. Followed by records.
<p>Records are structured as follows<ul>
<li>Alive or dead - int
<li>Length of data - int
<li>Data
</ul>*/
public class SequentialAccessStringFile{
private static int ALIVE = 1;
private static int DEAD = 0;
private int numRecords, currentRecord;
private RandomAccessFile raf;
/** Creates a SequentialAccessStringFile from a previously created file. */
public SequentialAccessStringFile(String filename)throws IOException{
this(filename,false);
/** Creates a SequentialAccessStringFile. If createnew is true then a new file is created or if it
already exists the old one is blown away. You must call this constructor with true if you do
not have an existing file. */
public SequentialAccessStringFile(String filename, boolean createnew)throws IOException{
this.raf = new RandomAccessFile(filename,"rw");
if(createnew){
truncate();
this.currentRecord = 0;
this.raf.seek(0);
this.numRecords = raf.readInt();
/** Truncates the file deleting all existing records. */
public void truncate()throws IOException{
this.numRecords = 0;
this.currentRecord = 0;
this.raf.setLength(0);
this.raf.writeInt(this.numRecords);
/** Adds the given String to the end of this file.*/
public void addRecord(String toAdd)throws IOException{
this.raf.seek(this.raf.length());//jump to end of file
byte[] buff = toAdd.getBytes();// uses default encoding you may want to change this
this.raf.writeInt(ALIVE);
this.raf.writeInt(buff.length);
this.raf.write(buff);
numRecords++;
this.raf.seek(0);
this.raf.writeInt(this.numRecords);
this.currentRecord = 0;
/** Returns the record at given index. Indexing starts at zero. */
public String getRecord(int index)throws IOException{
seekToRecord(index);
int buffLength = this.raf.readInt();
byte[] buff = new byte[buffLength];
this.raf.readFully(buff);
this.currentRecord++;
return new String(buff); // again with the default charset
/** Returns the number of records in this file. */
public int recordCount(){
return this.numRecords;
/** Deletes the record at given index. This does not physically delete the file but simply marks the record as "dead" */
public void deleteRecord(int index)throws IOException{
seekToRecord(index);
this.raf.seek(this.raf.getFilePointer()-4);
this.raf.writeInt(DEAD);
this.numRecords--;
this.raf.seek(0);
this.raf.writeInt(this.numRecords);
this.currentRecord = 0;
/** Removes dead space from file.*/
public void optimizeFile()throws IOException{
// excercise left for reader
public void close()throws IOException{
this.raf.close();
/** Positions the file pointer just before the size attribute for the record we want to read*/
private void seekToRecord(int index)throws IOException{
if(index>=this.numRecords){
throw new IOException("Record "+index+" out of range.");
if(index<this.currentRecord){
this.raf.seek(4);
currentRecord = 0;
int isAlive, toSkip;
while(this.currentRecord<index){
//skip a record
isAlive = this.raf.readInt();
toSkip = this.raf.readInt();
this.raf.skipBytes(toSkip);
if(isAlive==ALIVE){
this.currentRecord++;
// the next live record is the record we want
isAlive = this.raf.readInt();
while(isAlive==DEAD){
toSkip = this.raf.readInt();
this.raf.skipBytes(toSkip);
isAlive = this.raf.readInt();
public static void main(String args[])throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Create a new file? y/n");
System.out.println("(No assumes file exists)");
System.out.print("> ");
String command = br.readLine();
SequentialAccessStringFile test = null;
if(command.equalsIgnoreCase("y")){
System.out.println("Name of file");
System.out.print("> ");
command = br.readLine();
test = new SequentialAccessStringFile(command,true);
}else{
System.out.println("Name of file");
System.out.print("> ");
command = br.readLine();
test = new SequentialAccessStringFile(command);
System.out.println("File loaded. Type ? for help");
boolean alive = true;
while(alive){
System.out.print("> ");
command = br.readLine();
boolean understood = false;
String[] commandArgs = command.split("\\s");
if(commandArgs.length<1){
continue;
if(commandArgs[0].equalsIgnoreCase("quit")){
test.close();
alive = false;
understood = true;
if(commandArgs[0].equalsIgnoreCase("list")){
System.out.println("#\tValue");
for(int i=0;i<test.recordCount();i++){
System.out.println(i+"\t"+test.getRecord(i));
understood = true;
if(commandArgs[0].equalsIgnoreCase("truncate")){
test.truncate();
understood = true;
System.out.println("File truncated");
if(commandArgs[0].equalsIgnoreCase("add")){
test.addRecord(commandArgs[1]);
understood = true;
System.out.println("Record added");
if(commandArgs[0].equalsIgnoreCase("delete")){
int toDelete = Integer.parseInt(commandArgs[1]);
if((toDelete<0)||(toDelete>=test.recordCount())){
System.out.println("Record "+toDelete+" does not exist");
}else{
test.deleteRecord(toDelete);
System.out.println("Record deleted");
understood = true;
if(commandArgs[0].equals("?")){
understood = true;
if(!understood){
System.out.println("'"+command+"' unrecognized");
commandArgs[0] = "?";
if(commandArgs[0].equals("?")){
System.out.println("list - prints current file contents");
System.out.println("add [data] - adds data to file");
System.out.println("delete [record index] - deletes record from file");
System.out.println("truncate - truncates file (deletes all record)");
System.out.println("quit - quit this program");
System.out.println("? - displays this help");
System.out.println("Bye!");
}Sample output with test program
C:\>java SequentialAccessStringFile
Create a new file? y/n
(No assumes file exists)
yName of file
mystringsFile loaded. Type ? for help
add appleRecord added
add orangeRecord added
add cherryRecord added
add pineappleRecord added
list# Value
0 apple
1 orange
2 cherry
3 pineapple
delete 5Record 5 does not exist
delete 1Record deleted
list# Value
0 apple
1 cherry
2 pineapple
add kiwiRecord added
list# Value
0 apple
1 cherry
2 pineapple
3 kiwi
quitBye -
I'm trying to use a myDAQ to send digital outputs to three heater controls, to turn the heaters on an off with the digital signals. After trying to use the regular DAQmx express vi and not having any luck, I read about the NI Elvismx express vis in the myDAQ user manual. Yet still we can't get the vi to work in our program to communicate with the myDAQ device and send out the necessary signals. We're trying to use the Elvismx Digital Writer. Attached are the two error messages we've gotten. If anyone can tell me what we're doing wrong and/or offer any advice/suggestions to fix the problem, I'd greatly appreciate it.
Thanks!
Attachments:
error message 1.JPG 455 KB
error message 2.JPG 568 KBI can't read the second error message, but the first one appears to be a USB connection issue.
Have you followed the instructions on the myDAQ Setup and Support page ?
This will tell you if the connection is working.
steve
Help the forum when you get help. Click the "Solution?" icon on the reply that answers your
question. Give "Kudos" to replies that help. -
I am looking labview driver for Tektronix TLA704 logic analyzer
I need this labview driver desperately, I am very appreciated if you have it and courtesy me a copy.
Thanks
Tys
[email protected]
phone: 214-480-0902I did some looking around on the Tektronix web site.
Tek does not seem all that interested in supporting the
TLA704 in particular, or LabView(tm) for logic analyzers
at all. IMHO the Tek site sucks when you need to find
information in depth.
I looked through National Instruments site too. Now on this
site it was easy to find what I was looking for. Good job.
Developing a LabVIEW instrument driver for a logic analyzer
looks to be a non-trivial task for anything more involved than
starting a capture and waiting for the data to log. Depending
on the driver it could be real slow getting a load of data from
the logic analyzer.
It might be better to use the TLA programmatic interface
(TPI) to run the TLA704 by remote control over the Ethernet.
All the support for this comes with the analyzer software.
Though it's really painful to get it setup in Windows 98.
This way you could create a Windows program that runs
on your workstation to connect to the TLA704, set it up,
start a run, and download the data. Once the data is in
your workstation you can reformat for use by LabView.
I don't know that this would be easier than making a
LabVIEW instrument driver for a logic analyzer, but
at least all the software exists right now to control
the TLA704 remotely.
Charles.
I don't work for National Instruments,
or Tektronix or use LabView. But I use
logic analyzers way too much.
"Randy Solomonson" wrote in message
news:[email protected]...
> Hello-
>
> Unfortunately I was unable to find a driver for this instrument either
> at http://ni.com/idnet. This leaves you with one of a couple options.
> It may be possible to modify an existing driver to work with this
> instrument. Otherwise, http://www.ni.com/devzone/idnet/other.htm
> states a few options to obtaining a driver. Drivers are developed
> based on demand and popularity so the more requests, the greater the
> possibility that one will be developed. It would also be beneficial
> to notify the instrument manufacturer.
>
> Randy Solomonson
> Application Engineer
> National Instruments
> -
Can digital I/O lines emulate a parallel port?
BACKGROUND:
I am writing a VI that needs to sample multiple analog channels at high speeds (~2 msec) while simultaneously receiving byte-sized codes transmitted from a second computer (from either it's serial port or parallel port). These other posts of mine might help you get a better idea of what I'm doing:
http://exchange.ni.com/servlet/Redirect?id=1052290
http://exchange.ni.com/servlet/Redirect?id=1057299
THE PROBLEM:
I need a way to receive these codes at the same high sample rate that the analog channels are being sampled with, and they need to be on the same timing signal (so I know when the codes arrived relative to the analog data). Thus I can't use the built in serial or parallel ports, since the timing would
be inaccurate at such high speeds.
MY QUESTION:
Is there an established way to make the digital I/O lines on a NI daq board receive codes from a serial or parallel port? I am using a PCI-6033e, so if I can just use the digital I/O lines on that board, that would be ideal. However, I would also be willing to buy a sepparate digital I/O board that could be linked (for timing purposes) via an RTSI bus, and use that to receive the bytes from the second computer.
Any ideas for a software or hardware solution to this problem?
Thanks,
Zach CrittendonThanks, Filipe. That's pretty much what I expected as far as the PCI-6033 card was concerned.
However, one thing I failed to mention was that the host computer can only use its standard built-in serial or parallel port, not an NI DIO card (the signals are coming from antequated software that can't realistically be ported to use an NI card).
So...is there a way to take a parallel-port signal from the host computer and have an NI DIO card on the client computer receive it? (Presumably after passing through some sort of adapter, if necessary.) If so, what sort of DIO card should I look at?
Thanks again,
Zach Crittendon
Maybe you are looking for
-
hello, Everything is in the title! The idea is to make a pdf that I send to clients by email, very graphic with colored backgrounds but when printed, the background becomes white to save ink. Similarly to the change of color of the text. For example,
-
Lost wireless IP address when synching apple TV
I loose the IP address and access to internet on my wireless time machine. It happens every time I try to synch large files from my computer to my apple TV through iTunes. Internet connection is reestablished after a power reset of the Time Machine,
-
Hi I have exchange server 2013 with ceritificate installed ( san) with2 names : mail.mydomain.com,autodiscover.domain.com I have issue with outlookanywhere and my outlook keeping asking passwords MCP MCSA MCSE MCT MCTS CCNA
-
Hi friends, I have implemented custom auth as it is referring an table So if the users exist in the table means it will logs in inside the application. i have id, username and password for it. i have a username of varchar2 type. if i have a username
-
This happens in a few applications, but most often in iTunes: It's hard to describe so here's a screenshot of the colum headers. Macbook Pro Mac OS X (10.4.6) source image: /___sbsstatic___/migration-images/448/4486118-1.png Macbook Pro Mac OS X (1