Multiple channels saving as text filels

Hi,
I have two data vectors and   I want to save them as text files . When I
use sub VI given in labview or writing text files I can save either 1D or 2D.
When I save then as 2D the text file output is the appendage of two file i.e.
one data vector is written first and the other when first ends. It looks like a
single file and size is equal to size of first data vector plus 2nd data
vector.
I want to save these two data vectors either as two rows or two columns. Since
I want to use matlab to read them eventually.
Can anyone help me here? I'll be thankful.
AM

Is this what you are trying to do?
Doug M
Applications Engineer
National Instruments
For those unfamiliar with NBC's The Office, my icon is NOT a picture of me
Attachments:
save 2d array to file.vi ‏27 KB

Similar Messages

  • How Do You Write Thermocouple Readings From Multiple Channels to One Text File?

    Hi Everyone,
    I am having difficulty writing a Labview program that allows me to combine readings taken from 8 thermocouples to one text file. I am using a NI cDAQ - 9174 with NI 9219 modules.
    Attached is a copy of my program thus far. I have figured out how to combine readings from 8 thermocouples to one waveform chart but the text file will infact be more vital.
    I am very new to Labview and only require it for this task so the simpler the solution the better. Apologies for the lack of technical language.
    Any help would be much appreciated.
    Amy

    Here's one simple possibility...
    Of course, this shows incomplete file handling, and you'll probably want to truncate your floating point values to a few decimal places. I have used this kind of operations for generating text and csv files for thermocouples, much like you are doing.
    Good luck!
    Dan

  • Save multiple channels to binary?

    I am trying to save multiple channels of analog signals measured using DAQ express. I want to save the waveforms to binary and be able to read them back to re-create the waveforms at a later time. I have tried writing the waveforms to binary as dynamic data and as arrays. Neither seems to work. I am not sure if my problem is how I am saving/writing the data or how I am trying to read it back. What is the best form to use to write the data and how should I read it back?

    Hi VCUBME,
    LabVIEW is shipping with some good examples that show how to store your data effectively using binary files or datalog files. Please try the "Write Binary File.vi" with the "Read Binary File.vi" for an exaple of storing simple arrays. If you need to store more complex data as for example clusters, then refer to the "Write Datalog File Example.vi" and "Read Datalog File Example.vi".
    Have fun!
    - Philip Courtois, Thinkbot Solutions

  • Help! data manipulation for high speed streaming to disk from multiple boards and multiple channels

    I am using Labview 7.1 and have been trying to capture data from 12 channels simutaneously sampled at 2MS/s each and streaming to disk for up to a minute or more.  The hardware I am using is 2 x PXI 6133 S series boards with a MXI4 link to a Pentium D 2.8 Ghz machine with 2Gb ram.   I have 2 sata drives set up in a raid 0 configuration which should give me hard disk write speed faster or equal to the MXI-4 transfer speed. 
    I have first started off by using the example code "multi device sync - analog input- cont acquisition" which has enabled me to sync the two boards and sample at the required speed. 
    To stream the data to disk, I have first merged the data from each board  together to save it to one file.  I have tried using the storage vi's but I end up with a Daqmx read error (trying to read data that is no longer available).  I have played around with the read data size to the point that I either get a insufficient memory error, or I get the "trying to read data that is no longer available"  error.  I have also tried using the file IO blocks with some success and have found that I have been able to stream to disk only if I configure the daqmx read block to output the data in "raw 1D I16" format and plugging it into the file-write block.  In doing this, I have noticed that using  multiple channels on one daqmx read task, I will get all the channels in one 1D array rather than a 2D array organized by channels.  This makes it messy to read at the end of this, and I also don't want to write another vi to separate the channels, due to the high chance of getting the data mixed or messed up if I happen to change the number of channels on a board
    Is there a cleaner way of streaming this data to disk and keeping the channel data separated from each other?, and/or is there a better way to capture and handle the data I need? 
    I have attached the vi which I have got to consistantly work streaming to disk using the raw 1D I16 format.
    Thanks in advance to anyone who can help.
    Attachments:
    multidevicesync_analoginput_streamtodisk.vi ‏197 KB

    Hi,
    i can suggest following
    Refer to an example VI called as "High speed data logger.VI"  in conjunction with "High Speed data logger reader.vi" in Labview examples. Alhrough the logger might be in Tradiditional Daq format, it can be quite easily converted to Daq Mx format to store data in Binary (I32 format) . I have used this for many of my applications and i have found that the data retrieved does not have any "messups".
    Why not keep a seperate file for each card? This way, you do not have to load your application with extra process. You only have to acquire and save. After saving in Binbary format, you can retrive it offline, convert it to ascii format and merge the data files of various cards to get one consolidated ascii data file.
    hope this helps
    Regards
    Dev

  • Savin' and recalling multiple channel Strips ?

    is there a way to save and recall multiple channel strips ? what i'm trying to do is for example : to set up
    Ultrabeat Multi which would include several Aux's and busses with indivitual bus effect etc and recall it in a New song exactly as i saved it . how do i goabout it
    thx B
    Mac Pro 2.66   Mac OS X (10.4.8)   Yamaha MLan i88x Audio Interface

    Two ways you could do it.
    1: set the existing setup as a template; remember to get rid of all regions in Arrange & all audio in the Audio window. Whenever you want a new song with these settings, create it using this template.
    2: at the top of each channel strip just below the EQ window is a small triangle. Click on that and select 'Save Setting As . . ' and give it a memorable name.
    Do that for each channel strip you wish to save. In your new song, select the strip setting you want and everything in that channel will be opened; all FX, Ultrabeat or any other Logic synth you may have had inserted.
    I hope one of these helps you.
    guitarguru

  • Script to auto zero channels in a TDM file with multiple channel groups

    Hi friends,
    I am trying to process some data but am having trouble modifying a script to autozero channels across multiple channel groups. The following script works to zero channels across one group. I use this script to process data in a TDM file with only one channel group. I need to be able to zero channels across multiple groups (5 groups). But the amount of groups I will have may change so I might need an option to enter the amount of groups or have the script determine the amount of groups in my TDM file. 
    Here is the code I use to zero the data. Thanks in advance for your help!
    Sub UserDlg_Select
    Call USERDLGINIT()
    USERDLGCAPTION="Auto Zero Channel Based on Specified Points "
    USERDLGTXT(5)="Number of points to Average"
    USERDLGCOMMAND(5)="t1"
    Call USERDLGOPEN()
    End Sub
    Call UserDlg_Select()
    T2="1-"&T1
    For I= 1 To ChnNoMax 'For all data channels except time
    T4=CHNNAME(I) 'Create string for Channel name (I)
    T3=ChnDim(T4) 'Create text variable for channel dimension
    STATSEL(6)="Yes" 'Arith mean
    STATCLIPCOPY="yes"
    STATCLIPVALUE="No"
    Call StatBlockCalc("Channel",T2,T4) 'Calculate Stats for Channel (I)
    'Subtract Mean of first (T1) points for Channel (I)
    Call FormulaCalc("Ch('temp1') := CH('"&T4&"') - statarithmean")
    CHNCOMMENT("temp1")=("Channel zeroed over first "&T1)+"pts" 'Add Comment
    ChnDim("temp1")=T3 'Add Dimension
    CHNNAME("temp1")=T4+"-Z" 'Save updated data with -Z
    'Delete Stat Channels
    Call CHNDEL("ArithmeticMean")
    Call CHNDEL("Sum")
    Next 'End For loop
     

    Hi rvillalta319,
    Sounds like you'll need to adapt your code to use both a for loop and some implementation of the GroupCount variable (or ChannelGroups.Count) as seen here:
    http://zone.ni.com/reference/en-XX/help/370858K-01/varoff/groupcount/
     

  • Programatically select Multiple Channel

    I am using LabVIEW 7.1, Diadem 9.1.
    1)
    I have created one Report layout. In which I will have one sheet with 2 2D - Graphs on that. I want to pragamatically set multiple channels for both the graphs. Using the script I could able to set only one channel to the graph.
    Please guide me how could I set multiple channels? (Attached Report Layout and Script File, Both uses Example.tdm)
    2)
    I want to call this script file from the LabVIEW and want to pass channel names as parameters. How could I do it?
    Thnaks.
    Attachments:
    Diadem_test.zip ‏4 KB

    Hi Vishal.,
    You have a couple of options if what you want to do is transfer a list of desired channel names from LabVIEW to DIAdem. The first option is to write that list into a file and tell DIAdem to read it. There are plenty of different ways of doing this too. The second option is to dynamically send the array of strings to a new DIAdem text channel. The third option is to dynamically send the array of strings to a DIAdem string array.
    Any of these options will work fine, and it's really personal preference which you choose. As of DIAdem 9.1, its OLE Automation Server has no dedicated method to pass either a text channel or a string array with one pointer. So you either provide the values one-by-one to a new channel or new DIAdem string array, or you use file I/O. Below you will find an example of sending values one-by-one to a DIAdem channel. This is not a good method for very long channels (>> 1000 rows), but it should be adequate for your described needs.
    Regards,
    Brad Turpin
    DIAdem Product Engineer
    National Instruments
    Attachments:
    DIAdem Text Channel IO.zip ‏78 KB

  • Data acquisition from multiple channels.

    Hello
    Right now, I am able to acquire the signal from a single load cell and display it.But I would like to know of how to acquire  acquire signals from two load cells simultaneously.I am using Labview 6i and I am using AI S-Scan with AI config to acquire the waveform.It would be of great help if you could suggest a simple method to acquire the signals.
    PS: Please find the attached file used for acquisition from a single load cell.
    Looking forward for your reply.
    Manasa
    Attachments:
    test 4.vi ‏102 KB

    Hi Manasa,
    If I understand what you are trying to do, it is relatively
    straightforward to configure your application to acquire data on two channels.
    I was unable to run your vi as it was missing some of the subVI’s
    from your application.  However, your
    attachment was sufficient to see what you are trying to do. 
    Here is how to add channels:
    1.      
    In the I/O Channel Constant, you can add
    additional channels by using a comma or a semi-colon.  For example, to scan the first four channels
    you would put 0:3 in the constant (see attached screenshot ChannelConfig.jpg).  To scan the first and third channel you would
    put 0,2.
    2.      
    The AI Single Scan VI will now read from
    multiple channels.  Often it easiest to
    configure the output of this VI for viewing by first putting the data into an
    array using the Build Array VI.  It can
    then be plotted in a waveform graph. (see attached screenshot ReadtoGraph.jpg
    and WaveFormGraph.jpg)
    Just a few notes about “simultaneous” sampling:
    Most of the NI data acquisition cards have a multiplexer
    between the various input channels and the Analog to Digital (A/D) converter
    creating a very small delay between each channel (usually ms range or
    smaller).  NI does make several data acquisition
    cards that can perform true simultaneous sampling, meaning that there is an A/D
    converter for each channel.
    For the large majority of applications, the small delay
    between channels is negligible.
    Jared T.
    Attachments:
    ReadtoGraph.JPG ‏21 KB
    ChannelConfig.JPG ‏288 KB
    WaveFromChart.JPG ‏61 KB

  • How do I read multiple channels at one time using labview with the Fluke Hydra Data Bucket 2620a using serial port?

    I need to take a reading of 15 channels about once a second. I can read one value at a time using the monitor function on the read values.vi driver, but this takes forever to read all the channels.

    I don't have this instrument but I took a look at the instrument driver and it appears that you can only configure one channel at a time to read from. You might want to take a look at the command set for this instrument and see if it allows for configuration of multiple channels. It could be that the instrument driver just doesn't have that built in.
    J.R. Allen

  • How to Read from multiple channels

    Dear Sir
    I am acquiring data using FP-RTD-122 using OPC Client software. I ahve made one socket for that and i am using command
    CWDataSocket1.AccessMode = cwdsReadAutoUpdate
    CWDataSocket1.URL = "opc://localhost/National Instruments.OPCFieldPoint/FP Res\FP-RTD-122 @1\Channel 0"
    CWDataSocket1.Connect
    v = CWDataSocket1.Data.Value
    where v is a variant type.But this is 8-channel RTD so how can i read values from all channels using single socket connection Because at presnt i have to use 8 sockets for all eight channels.

    At least as of FieldPoint 4.0 and earlier (I do not know about 4.0.1 or later), the OPC Server did not support multiple channel analog items. Thus to read all eight channels of a FP-RTD-122 module, you would need 8 separate socket connections. For discrete modules (boolean), the "All" tag, is treated as a single 8 or 16 bit number.
    Regards,
    Aaron

  • How  to use multiple channels with one remoteObject .

    hi,
    I have an application which is accessed through HPPS some
    times , also it can be access on server with http service.
    so I want to know how to configure config files or add
    runtime channels which will support either channel depending on
    the server it is accessed over.
    Is there any one who can help me to solve this...i need it
    soon.
    thank you...

    Hi,
    Please visit the URL below for details on adding channel sets
    at runtime. Add multiple channels to the channel set so that the
    fall back mechanism works.
    http://livedocs.adobe.com/blazeds/1/blazeds_devguide/runtimeconfig_5.html#194376
    Hope this helps.

  • How can I add multiple contacts to a text message on a droid bionic

    How can I add multiple contacts to a text message on a droid bionic?

    DH
    I was thinking that if he wanted to create multiple keyframes he might be creating a repeated effect rather than manipulating values that are shot specific - like creating an oscillation or some repeated step effect.  If he was creating keyframes specific to his content he'd probably not look for a way to do it "quickly" since each keyframe would require manipulation of specific values. 
    So my thought was to generate the series of keyframes on a dummy clip created for this specific purpose, copy the clip, paste attributes (maybe turn off "Scale Attribute Times") and add bunches of keyframes at once. 
    Still, you're right, it's tough to divine the intent of someone very new to FCP.  His question could be based on a misunderstanding about the use of keyframes.
    P

  • What is the recommended way to do multiple channel, single point sampling for control with an NI PCI-6255 in RLP?

    Hello,
    I am writing a driver for the M-series NI PCI-6255 for QNX. I have downloaded the MHDDK and have all the examples working. I have also enhanced the examples to do interrupt handling (e.g. on AI_FIFO interrupt or DMA Ring Buffer interrupt). My ultimate goal is to write a driver that I can use for closed-loop control at 500 Hz using all 80 channels of the NI PCI-6255. I may also need to synchronize each scan with a NI PCIe-7841R card for which I've already written a driver. I want an interrupt-driven solution (be it programmed I/O on an interrupt or DMA that generates an interrupt) so that the CPU is available to other threads while the 80 analog inputs are being read (since it takes quite a while). I also want to minimize the number of interrupts. Basically, I will need to collect one sample from all 80 channels every 2 milliseconds.
    There are many different options available to do so, but what is the recommended technique for the NI PCI-6255 card? I tried using the AI FIFO interrupt without DMA, but it seems to interrupt as soon as any data is in the AI FIFO (i.e. not empty condition), rather than when all 80 channels are in the FIFO, so more interrupts are generated than necessary. I tried using DMA in Ring Buffer mode to collect a single sample of 80 channels and interrupting on the DMA Ring Buffer interrupt, which appears to work better except that this technique runs into problems if I cannot copy all the data out of the DMA buffer before the next AI scan begins (because the DMA will start overwriting the buffer as it is in ring buffer mode). If the DMA is not in ring buffer mode or I make the ring buffer larger than one 80-channel sample then I don't have a way to generate an interrupt when one sample has been acquired (which I need, because I'm doing control).
    I saw something in the documentation about a DMA Continue mode in which it looks like you can switch between two different buffers (by programming the Base Count/Address with a different address than the current address) automatically and thereby double-buffer the DMA but there is no real documentation or examples on this capability. However, I think it would work better than the Ring Buffer because I could interrupt on the DMA CONT flag presumably and be copying data out of one buffer while it is filling the other buffer.
    Another option would be DMA chaining, but again, I cannot find any information on these features specific to the NI DAQs.
    I tried interrupting on AI STOP figuring that I could get a single interrupt for each scan, but that doesn't appear to work as expected.
    I know that DAQmx on Windows has the ability to do such single sample, multiple channel tasks at a fixed rate so the hardware must support it.
    Any suggestions would be appreciated.
    Thanks.
    Daniel Madill

    Hello,
    The interrupt that will happen nearest the times that you need is the AI_Start_Interrupt in the Interrupt_A group. This interrupt will occur with each sample clock. By the second time this interrupt fires, the AI FIFO should have the samples from the first conversion. If it is easier to use programmed IO, you can read the samples out of the FIFO until you get all 80.
    Additionally, you can set the DMA to send samples as soon as the FIFO is no longer empty...instead of waiting for half full or full. This change will reduce latency for your control loop. You can set AI_FIFO_Mode in AI_Mode_3_Register to 0. By the second time this interrupt fires, you should be able to check how much data is in the DMA ring buffer and read the 80 samples when they are available. You can make the ring buffer larger than 80 samples if you see data getting overwritten.
    There is no interrupt associated with 80 samples being available in the FIFO or 80 samples being available/transferred by DMA to the host. X Series has much more flexibility with these interrupts.
    I hope this helps!
    Steven T.

  • Error while saving Long Texts

    Hello
    We are using SRM7 Extended classic scenario.
    We don't use shopping carts, rather create POs directly in SRM which will be transferred to ECC as per the standard.
    Error:
    I am getting an error "Error while saving Long Texts" during my PO creation. I get this message in a small pop-up screen. As soon as i click ok or close the pop up screen it kicks me out of the PO creation screen back into the main SRM screen.
    When:
    During the PO Creation
    Any specific situation:
    Yes, only for Material POs
    This is happening when I am creating the PO with a Material code. I can create free text PO without any issues.
    This is a standard message and the message number is 022.
    Thaks for the help guys.

    Hi,
    To confirm can you check commeting "getOADBTransaction().commit();" gives any error message?
    If yes then you can try the following option:
    Have you checked whether the "/" is changed to "\" in the dbc file?
    In the following two entries the slash has to be made as shown below:
    APPS_JDBC_URL=jdbc\:oracle\:thin\:@(DESCRIPTION\=(ADDRESS_LIST\=(LOAD_BALANCE\=YES)(FAILOVER\=YES)(ADDRESS\=(PROTOCOL\=tcp)(HOST\=10.100.503.6)(PORT\=1521)))(CONNECT_DATA\=(SERVICE_NAME\=VIS)))
    JDBC\:processEscapes=true
    Thanks and Regards,
    Lacman

  • I have a PDF form that I want to pre-fill multiple fields with example text that disappears onFocus. Is there a way to do this?

    Pretty much what my subject line says. My client wants example text in the fields of a PDF form that will disappear when the cursor enters the field. When I try this with show/hide layers, the layer becomes visible as soon as I enter form editing mode, and the action doesn't work properly. Any help? I was able to get it to work with a single field, but multiple fields with example text on multiple layers doesn't work for some reason.
    Thanks for any help.

    Hi Jeffrey ,
    You need to use a custom Format script for the field.
    Regards
    Sukrit Dhingra

Maybe you are looking for