Logging multiple tasks competitor TDMS

I have an app that will give tasks multiple daqmx running in parallel, very acquireing data at different speeds (10, 100 and 1 and possibly other kHZ), I would like to connect it to a file and am interested in the PDM log task.  Can I share the same file on these tasks) using the daqmx 9.0 and read the PDM functions.  Also, what happens to my taks if there is a file error (disk gets full)?

Hi Paul,.

The best way to handle this would be to create one file per task.

Files can be concatenated simply by concatenating the binary content of the files.  An example that shows combining two files with LabVIEW to e/s binary file is attached.

Tags: NI Software

Similar Questions

  • OSM - Automated Logging/debugging task - XQuery-

    Hello

    I have a task automated by using XQuery Sender plugin.

    I'm debugging/troubleshooting my XQuery and it would be very useful to be able to record information about the console. For example:

    Let $taskData: = fn:root (.) /OMS:GetOrder.Response

    I would like to print $taskData in the console in order to better understand my XML structure before coding the XQuery function to navigate the XML document. No idea how? I'd also be interested in tips for debugging XQuery.

    Thanks for your help!

    François.

    I think I figured out how to make logging in XQuery. Correct me if I'm wrong!

    DECLARE namespace log = "java: org.apache.commons.logging.Log;

    declare the external variable $log;

    Journal: info ($log, "test logging")

    This displays 'logging test' on the WebLogic console.

    I'm always interested to hear about your experience/tips on how to debug your XQuery code!

    Thank you

    François.

  • Help with multiple tasks on cDAQ9184

    I have a CDAQ9184 chassis with 3 different analog input modules installed. I read somewhere that I need a separate task for each type of module, but when I try to do, only the tasks (last creation) will actually.

    I tried all 3 modules within one of the tasks of reading, but it does not work.

    Can someone please tell me if I run 3 task on a cDAQ9184 chassis and if not, what should I do to read the three analog modules?

    FYI, I use C++ and not of LabView

    Thank you

    You can run up to 3 jobs HAVE independent, but it is not mandatory.  You can also put the three modules in the same task.

    It seems that you have not had luck with both approaches, although I couldn't say why without additional information.  Could you post your code showing how you set up the task (s)?  Also, what error do you get?

    Best regards

  • Cannot start multiple tasks on a cDAQ chassis

    I run several modules in a chassis OR cDAQ-9172.  1 is a NI 9213 TC module.  2 is a module of TC 9211.  I can create and start a job on Mod1, and I can create a task on Mod2.  However, when I try to start the task on Mod2, I get error-200022, "resource requested by this task has already been reserved by another task."  I've never had this problem before.  I hope I'm missing something obvious.  If anyone can help, I would appreciate it a lot.

    For older 9172 - http://digital.ni.com/public.nsf/allkb/F18193C0F115B12586257C62006615DA?OpenDocument

  • DAQmx: Outputs digital multiple tasks for the same card using the on-board clock

    I have a PCI - 6259 DAQ I'm programming with DAQmx. I want to create two tasks of digital output on the same card. A single task using on-board clock, continuous samples. The other task uses an onboard clock, finished samples and an external trigger with trigger Start.Retriggerable property = TRUE. Is this possible with my hardware and DAQmx? There will be a conflict if two tasks use the same clock source?

    This is not possible, you can have only one task timed materially by device.

    Best regards

  • Multiple tasks with a single click

    My job is to manually change several lines to a different graphic style and before this line to another layer.  As it is now, I change the graphic styles, choosing Select < even < fill & stroke and before moving the lines to the appropriate layer.  I am wanting to know if there is a way to change the graphic style and move the line to the other layer with a single click.  I'm ignorant when it comes to scripts, but I was wondering if there are scripts that would be subject to this function.

    You must explain in detail the installation program. Otherwise, the people making suggestions are just guessing. Here is my suggestion based on what little information you have provided:

    You don't need a script for this. You can do it with a set of very simple Actions. Example:

    Suppose that your recurring task requires three layers, named Red, green and blue. On each layer, all objects need to have the same graphic Style applied.

    1. new document. Create three layers. Name them, red, green and blue.

    2 define three graphic Styles. Name them, red, green and blue.

    3. draw an object (any object, a square, a line, no matter). Send it to the red channel. In the attributes Palette, type 'Red' in the Note field. (This effectively 'names' the 'Red' object.)

    4 draw an object, send it to the green channel. Type 'Green' in his Note.

    5 draw an object. Send it to the blue layer. In its Note of type 'blue '.

    6 draw an object on the Red layer. Select it.

    7 actions Palette: new Action. Name of the Action 'red '. Define red colour. Start recording:

    7.1 Edition > cut

    7.2 Edition > paste in front

    7.3 apply red graphic Style

    7.4 stop recording.

    Range of actions 8: select the stage of the Cup. In the menu drop-down select Select an object... In the dialog box, enter "red". OK, the dialog box. The Action should have now a new stage set the selection listed after the stage of the Cup.

    9 flyout Palette menu actions: the Mode button.

    You now have a red named Action which appears as a red button in the actions palette. Select an object. Click on the button. The object is moved to the Red layer and becomes red graphic style.

    10 turn off the Mode button. Duplicate Action. Double-click the duplicate. Change its name to green and its green color. Change its step set the selection to select the object named green. Replace its step of graphic Style with a stage that applies the Green graphic Style.

    11. Similarly, duplicate and edit one of the two Actions to create a blue Action. Put the actions in button Mode palette.

    Now you can select any number of items and then move them to the red, green or blue layer and apply the graphic Style suitable in one click.

    Now come back and reveal the specifics of your situation that makes all this work moot.

    JET

  • How to implement multiple tasks (e.g., PID) in parallel?

    Hello

    I know there must be some questions like this in this forum, and I tried to find for a while but got some what I want. My project is a little urgent that I post this question for a few instant suggestions...

    As the topic says, I have several devices, say energy suppliers, and I must adjust their power automatically and independently.

    Although the number of devices is eight for the moment, but I prefer not to fix the number, otherwise said, I want to scale or increase the number of device dynamically.

    As a first step, I am very stupid to put the PID.vi in the loop for...

    I was wondering if the activation of parallelism can deal with my problem, but soon, I knew that each appellant VI data spaces are mixed upward...

    I'm stuck on how to book space for reentrant data...

    The last one on my mind is the VI open to the outside at the beginning of the control and take advantage of VI references...

    But I have not implemented the method, there may be some other thorny issue on this way...

    Is there a way to sovle this kind of problem?

    Hi William,.

    PID functions support several control loops, just read the Help for functions!

    No need for this loop FOR (which is simply wrong here)!

  • I keep getting these messages [not only respondents] and locks my computer for at least 1-2 min. whenever that happens often when im doing multiple tasks at the same time help...

    can someone please tell me how to solve this problem, I can not open or run several programs at once. and often it can take minutes for a program to open again. Ive cleaned the old files, errors in registry etc... nothing seems to help. but it doesn't happen every day just maybe 2 or 3 times a week for about a week and then appear still sometimes 2 to 3 weeks. any idea or answer?

    Hello

    1. what service pack is installed on your Windows XP computer?

    Method 1.
    Check to see if the problem exists in Safe Mode, if the computer works as expected in mode without failure, then we can solve the problem in the clean boot state.
    a. refer to the article below for the procedure safe mode in Windows XP
    A description of the options to start in Windows XP Mode
    http://support.Microsoft.com/kb/315222
    b. you need to perform a clean boot to find the program that is causing and then disable or remove.
    How to configure Windows XP to start in a "clean boot" State
    http://support.Microsoft.com/kb/310353/en-us
    Note: When you are finished troubleshooting, follow the steps as explained in the article to reset the computer to start as usual.

    Method 2.
    Also I ask you to run an online virus scan and verify. Sometimes the security program installed might not be fair enough. I also recommend you update your security software regularly.
     
    Follow the link below to start the free online scan:
    http://OneCare.live.com/site/en-us/default.htm

    I recommend you to install the free security software from Microsoft, which is easy to install and updates automatically.
    Here is the link to download.
    http://www.Microsoft.com/securepc

    I hope this helps.

    Thank you, and in what concerns:
    Shekhar S - Microsoft technical support.

    Visit our Microsoft answers feedback Forum and let us know what you think.
    If this post can help solve your problem, please click the 'Mark as answer' or 'Useful' at the top of this message. Marking a post as answer, or relatively useful, you help others find the answer more quickly.

  • Dedicated for each channel from multiple channels in a single task task disadvantage

    Hello

    My current acquisition software (C + c++ / GCC) encapsulates the methods rather clumsy niDAQmx C to interface with the data acquisition equipment in a class that represents a task of acquisition. This way I can create several instances, for example counter input, analog input, analog output, their terminals and the class supports all work low level as ensuring input analog fake internal is started if there are only counter entries such as the sample clock starts, or configure reminders N-sample, etc.

    It seems to work very well, and also the time seems to be good, because first of all the tasks on multiple instances of my wrapper. For triggered early, that I use

    DAQmxCfgDigEdgeStartTrig(mTask,mTriggerTerminal.toAscii().constData(),DAQmx_Val_Rising)

    in-house.

    Now my real question: what is the advantage of multiple channels, when everything seems to work fine with multiple tasks and only one channel per task? I don't see the disadvantage, it would first classify necessary acquisitions in types (I, ao,...) because several strings in a single task must be of the same type. With my approach I need not care because each channel still gets its own task.

    I don't know I'm missing something here. Maybe someone can explain it to me, maybe some limitation of multi-tasking, I have not yet read.

    Hey!

    Unless you specified for managing the it (simultaneous sampling) or modular instruments and hardware devices (see link )

    You cannot perform two tasks at the same time that access to the analog inputs, for example, because the

    ADC is a shared resource that is connected to a multiplexer, and that only one task can work in it at a time given. (see here )

    Similar restrictions often apply to other types of operations.

    I'm not aware of any performance issues, perhaps a little more memory could be used.

    So as long as your hardware supports what you are doing, you should be ok, I think,

    and it is only a question of clarity and intelligibility, ease of use and structure.

    As you use classes, I'm sure you've heard about encapsulation - so it is a

    question of how you want to design your application.

    In addition, when you work in LabVIEW, tasks feel more natural to the principle of data flow, because you have a thread for your data acquisition,

    and it works very well with our modes of standard design.

    So, if it is better for you (and works with the hardware), you can give all the channels its own task.

    Hopefully this might clarify some things,

    Kind regards

    Rome

    OR Germany

  • Read error-getdatatype TDMS

    Brief history on my project.  I have a PXI system configuration to read signals from DSA devices, Series S, and an encoder.  I use matlab to make calls to functions in libraries NI DAQmx and nilibddc.h.  I collect the data and the flow of data on the disk with the ability to view data during the acquisition.  Acquisition occurs for almost a minute plus 37 channels to 100ksamp/sec.  So the. TDMS files are quite large.  I synchronize my systems by some sort of configuration of the hybrid master slave device.  I use auto-sync in all types of similar devices, and to synchronize the different types of devices, I use the sample clock and start to trigger a DSA device to synchronize my other devices.  Since I use the automatic synchronization of the. TDMS files can have anywhere between 1 or 20 channels in a single file.  This makes a very large file and Microsoft Excel import does not cut because of the limitation on the size and the time it takes to load.  So I use the nilibddc.dll to read data from files which seems to be fairly smooth so far. I did not attempt to read a file with a minute of a data value but the worst case I can read the data file chunks at a time so I'm not terribly worried about it.  My problem occurs when I read my file data .tdms containing my encoder data.

    The part where it inhibits is is my function calling for DDC_GetDataType.  Now when I use my code to read data from the analog .tdms file it works well and does what I want it.  The error I get for my counter of the signals is an error unexpectedly (-6204.)  Now what is interesting is when I use labview 2009 on another computer, I can read the files without a problem.  I'm guessing that my labview 2009 uses different libraries however.  For example, when I read the file in labview, I go to the range of functions, choose file/o, PDM in streaming and use either read the .tdms or PDM Viewer function.  When I'm on my main computer, I use a call to the DIAdem connectivity library, that I downloaded from OR. Microsoft excel importer also seems to be hung in the same place (getdatatype).  I found this to inspect the log file, it creates when I try to read it.  Any help would be appreciated.  I have attached the error log I get the .tdms microsoft importer.  I've also attached a sample file .tdms with the position of encoder in it data.  If trying to open outside of labview, don't be fooled if she tells you that there is no data available.  It is, by using labview 2009, you can read all the 500ksamps without problem.  Using PDM viewer or reading tdms atleast.  Thank you.

    Hello-

    I wanted to preface what follows with the fact that I assume that you are using the TDM C DLL downloaded here.  If this is the case, the following should solve things for you - if not, please let me know where you got the ddc library of.

    Unfortunately, the TDMS dll which is downloaded from the link above is a little outdated and contains the bug you reported.  I created an internal action query to update the download with the version the most recent available to us.  In the meantime, I have attached the tdms dll needed to solve the problem for you.  You should not use the attached dll to replace the dll in ".\Dominonilibddc\dev\bin\\tdms_ebd.dll".

    A potential problem here is if you use the merge modules included to redistribute your product.  If you are, we will need to get some updated modules as well merge - please let me know if this is the case for you and what is the level of urgency.

    Please let me know if this does resolve the problem for you.

    Thank you-

    NickB

    National Instruments

  • read the multiple analog inputs at the same time

    Hi all

    I use USB-6001 and want to develop an application to multiple tasks in C++. I try to read several analog inputs at the same time, but got some errors. To put it simply, I copy one of the sample code to read in analog data in a channel, and then turn it into function. Then I call this function to thread with the names of different poles (for example Dev1/ai0, Dev1/ai1) and I come across this error:

    "The specified source is reserved. The operation can not be specified such complete"code of State-50103

    I have search the forums, this may be because I use the hardware timing in this function, and this material timing cannot be used simultaneously by multiple tasks. I may have to put all the lines, I want to read in a single task (such as Dev1 / ai0:1). This way I can read two lines at the same time. However, when I try this, I encounter another error:

    Status code "buffer is too small to contain the data read" - 200299

    So here is my question, what should I do if I don't want to read the multiple analog inputs at the same time? Is the thing that hard time cannot be used by several true task? If I have to read several lines to a single task, how to set the settings?


  • NCL TDMS Converter

    Hey guys, it's going to be my first post so please forgive me if I forgot to provide crucial information.

    Is what I'm trying to do with LabVIEW to create a VI that uses the examples of OR pre-built "Display NCL Logfile as"Target-BUS"Frames" to write the contents of these logs in a single TDMS file so that you can view several newspapers in a single file.

    So far, my approach contains the real top level VI NCL_Viewer. You will first need to provide a file path or a directory, in both cases the VI lists each .ncl file in the specified folder and calls the "display logfile...". "- VI for each of them.

    The Subvi then determines if the NCL file is of type CAN, LIN and FlexRay and she turns the respective table but - different from the original NOR-VI - is not write in a PDM file but a table hint. This, however, leads to ~ 500MB including the PDM file and the corresponding index - ratio 50: 50 - what is bad, I know and also takes about 10 minutes to write. Defrag reduced this Mo ~ 25 PDM and<1MB>

    FIRST QUESTION: Can I prevent this somehow? I'm not sure on how to use buffering in the case, but given the fact that defragmentation can reduce the size of the file, I have to believe it must be possible to create smaller files in the first place.

    In addition all these logs to a TDMS file would be kind of chaotic display, as TDMS allows only two levels of internal file structure. That's why I set up my own new group names in dieting 'Filename-ID' (e.g. CAN_01-963 963 ID in the first newspaper CAN). I did my own version modified DDHN-Viewer-VI incorporated so that it splits the name of group in CAN_01, 963, and creates a new tree like:

    CAN_01

    -963

    -Channels

    Even if this isn't the way the TDMS file is built, I can do look as if he was.

    SECOND QUESTION: I keep coming with a corresponding number of entries of CAN_01 number of connected on this BUS, rather than just a single entry, listing all the different ID of ID. What is wrong here?

    As to help you reproduce my problems I downloaded all the screws in my project, but also a NCL-Logfile for each type of BUS.

    I thank in advance and forgive me if any transition is difficult to read - English is not my mother tongue.

    PS: Check the path access-controls/constants so that they are valid for your PC.

    Just to close this topic, I got the second problem solved and the first omitted.

  • tasks timed inside the loop

    I have a program that has multiple tasks, and I want to work at different frequencies inside the loop.  I wonder what is the most effective way to do this?

    I read on several tasks running button push-based or events, but have not found much of the timed tasks.

    Is the loop timed the best way to go with this?  Have a loop timed for each required task?

    I have attached a vi corrupt that shows what I'm trying to do.

    I'm sure there is an easy solution, but want to find more effective this way.

    Thank you

    For a simple task like this, just turn the loop at the faster pace, you need and perform other tasks to integer multiple of it.

    Here's a simple project (LV 8.6)

    (Of course you have serious problems with stolen memory, as you grow berries of infinite sizes in the uninitialized shift registers. Which must be fixed too).

  • task error 50103 name the specified resource is reserved

    Hi all.

    Let me tell you my configuration:

    software: Windows XP sp3, Labview 8.5 fr.

    material: chassis OR cDAQ-9172 with 4 modules installed (in this order):

    1 NOR-9217 (4 RTDs)

    2 NOR-9217 (4 RTDs)

    3 NOR-9219 (4 RTDs)

    4 NOR-9219 (4 RTDs)

    So, I want to acquire 16 temperatures.
    In MAX v4.3, all works well.
     
    As you have aspected, I got the famous 50103 error: "the specified resource is reserved. The operation could not be performed
    such as specified'. «Task name: unnamedTask<9>'.»»   -highlighting of module #2.

    My goal is to read these temperatures consecutively, I mean: mod1 ch0... Ch3, mod2 ch0... Ch3 and so on.
    My program (vi) is like this:

    In a while loop I have a stacked sequence Structure that has 4 frames, each for every DAQ Assistant asigned and configured

    for these modules.
    So I have: Assitant1 for mod1, mod2 Assistant2, and so on.
    Assistants work well in configuration overview mod (I see 4 temperatures on each module).
    But in my program, I got the error above, on module2.

    I read something about this error and I understand that I can not use 2 or more resources at the same time.
    I understand that a resource represents a channel on a module.
    At each end of the DAQ Assistant, I have a Signal from Split (split in 4)
    But with this setup and this algorithm, I guess I read all 16 channels in total consecutively, not at the same time.
    Am I wrong?
    How can I solve the problem?
    Thank you.

    You see that the resource is reserved error because you cannot create multiple tasks in doubles in your program.  Compact data acquisition with modules is essentially identical to one of our PCI/PXI data acquisition cards that you can have that one task duplicate to read from different channels.  So, what you need to do, is use a single daq Assistant and select the channels of all the modules you want to read.  I've attached a screenshot of how to select different channels.

  • on the use of the global task

    Hello

    I've been using labview 7 for a long time and I haven't used task. Recently, I've introduced to CVI and I have created all the need for tasks at the launch of the application and reuse tasks before the end of the application. Last week, I received a copy of labview 2013 and I am porting the old code labview for 2013. However, I ran into a problem. Different compiled C code, this code vi must be run each time when necessary, if I create the task on the fly in the vi, it is quite heavy. I would like to create the global tasks so it could be used anywhere, anytime. The example contained in the regulations says that I could create these tasks in MAX. So my question is to use the task only did I specify the name of the task (created in MAX) as the IO channel to use?

    Furthermore, if I create a global task, do I have to delete the task at the end of the application? If I delete the task, global task disappears from the MAX or not?

    Finally, I wonder if it is possible for more than one vi using the same task in different times? For example, I created a global task for the analog output. I run two vi, A and B. A, he use the task to an analogue voltage output while B is something else. After that was done, B uses the same task for another exit. They come in conflict somewhat? What happens if both A and B call the same task at the same time?

    dragondriver wrote:

    ...

    Thanks for the clarification. So it doesn't work if I create two tasks the two links on the same channel and I call these two tasks at the same time, right?

    Time to dig the DAQmx help file and check in the DAQmx state transition table.

    Any number of tasks can be created (any reasonable number).

    If all this stuff is sane the task can be verified (if he calls nonexistent DAQmx hardware raises an error and the task cannot be verified)

    If all resources are available (clocks, roads, channels) can be "reserved" (committed) if something else has booked all the resources the task cannot be initiated and DAQmx generates an error.

    In order to have multiple tasks that use the same chanel is perfectly fine, BUT only one can be in one State other than "Verified" use control Task.vi to explicitly states the task of transition.

Maybe you are looking for