How best to modify Continuous Measurement and Logging project

Hi,
I'm looking to log and aquire continuous data from some devices, and it looks like the Continuous Measurement and Logging project template is a great place to start... but I need to log/acquire from upwards of 20+ devices...
What's the best way to go about making this template more scalable?
Thanks

Yes the CM&L project template is a good framework to hang your code on .
(You find it with "Create Project" in 2012 and later versions)
The developer walk through is useful for the first time getting into the project.
With 20 devices I have to ask what kind of throughput are you talking about here?
Jeff

Similar Messages

  • Continuous Measurement and Logging Template - May hang-up due to lost Exit

    The template Continuous Measurement and Logging in LabVIEW 2012SP1 has a flaw in the both the Acquisition and Logging loops.
    The Stop message handler discards all messages in the message queue. The note says:
    "Stop - Flush the queue of any pending "Log" messages. Close the TDMS file reference." See picture below.
    This concept breaks if the Exit message is posted while the Stop message is being processed. The Critical time gap for this to happen is small because Exit is posted to the front of the queue. But it depends on the processing in the Stop handler case. Small or large - it can happen.
    The symptom is that the application hangs in an infinite wait on the message queue - all controls are with no effect as the rest of the loops are terminated. Only Break will terminate the application. Pause button does not work either. (see this forum entry)
    This problem may only appear after the application has become more complex and the timing has changed - the fresly made template works and does not reveal the issue.
    The cure: First I thought of previewing the queue elements before discarding them selectively, one by one in the Stop loop, but that wont work either, because the Exit may arrive precicely in the time laps between preview and dequeue - remember Exits are posted to the front of the queue.
    I think the best option is to replace the flush of the queue in the Stop message handlers with a Selectively dequeue of messages one by one and check each if Exit is found - if so, re-insert it into the front of the queue. All other messages are discared. This look like this, having the interesting parts visible...
    Below is what the Stop message loop looks like with the problem highlighted.
    Given that I am not mistaken, I think it is better that NI updates the templates to prevent this problem.
    Solved!
    Go to Solution.

    Here's what the idle state case within the stop message case looks like:
    We don't hang the CPU handling a constant stream of no-op messages because we only enqueue "Log" messages when we are in the valid logging state (the Idle state here is again a passthrough).
    The worst case scenario is that there are number of Log requests already in the queue when the system stops. Upon recieving the Stop message the state transitions to idle and the remaining Log messages become no-ops due to the state.
    I will look into the feasibility of posting some updated VIs.
    ~Simon

  • Video Playback Problem with Developer Walkthrough of the Continuous Measurement and Logging Sample Project

    Hi!
    I have serious problems playing the video Developer Walkthrough of the Continuous Measurement and Logging Sample Project.
    As the video pauses every few seconds for buffering. I am not able to watch it. Just wanted to check if you can playback the video:
    http://zone.ni.com/wv/app/doc/p/id/wv-3401
    This happens on any browser (chrome, ie, firefox). I am using Win XP and the latest Adobe Flash Player. About 2 weeks ago NI Germany confirmed the problem and promised to contact NI USA as they are responsible for these videos. So far nothing happened. In the meantime I received an e-mail that the problem could not be confirmed although they had confirmed it before...
    Thank you for any feedback.
    Regards,
    Anguel

    Hello ctVolFan,
    As indicated in the "support" section of the SPOT, you should get in touch with self-paced-training(at)ni(dot)com.  I don't believe that team monitors these forums directly.
    Regards,
    Tom L.

  • Developer walkthrough fails on Continuous MEasurment and Logging

    I am having problems watching these two videos:
    Developer Walkthrough of the Continuous Measurement and Logging Sample Project
    http://www.ni.com/video/2741/en/
    Developer Walkthrough of the Continuous Measurement and Logging Sample Project
    Queued Message Handler Template Documentation
    http://www.ni.com/video/2728/en/
    It gets stuck at the start saying Slide 1/1: Buffering.
    I have downloaded the latest Adobe flash.  A guy from NI support rang in response to my question to them and said that it worked on Chrome for him.  I tried that and they don't work for me.
    Can anyone help?

    OK, one update from my side:
    On my machine (Win7, 64bit) it is working when running Firefox 29.
    Using IE9, the link to the video seems to lead back to its page, no popup, nothing.
    Point is, that my IE (since IE8) is obviously not 100% compatibel with Adobe Flash player. For instance, i have issues to play videos from YouTube on the machine using IE (error messages like Flash not installed or simply a blank screen instead of the video) but not for all videos there. With Firefox, i can view all videos from YouTube except the ones which are prohibited from YouTube due to national restrictions ("This video is forbidden in your country" or something like that).
    So all in all, it seems to me that the issues you all observe are issues between the browsers and Flash, invalid settings for popup-blockers and specific "error handling" of specific browsers (which create the "loop-link-behavior").
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Continuous Measurement and Logging LV2014

    Hello,
    I am examining the CML template which can be found in LabView 2014. It is very nice, I learn a lot just by playing with this template. However, due to the very minimal documentation (practically zero), some things are not clear why are there implemented?
    1., In the UI Message Loop, the Case structure has a "Confirm Quit" case. As I see, this case never can get triggered, since the stop button is disabled during DAQ, why is it there? I guess for to give an example, if someone wants to enable the option shutting down the app during DAQ, without stopping the DAQ?
    2., Since it is not explained in the documentation, could someone explain the behaviour of the enum type def in the UI Message Loop? I think I understand that, before stopping the DAQ, we have to be sure about first the DAQ is stopped. Second, all the data is logged, so the logging loop can be also stopped, and finally we can go to Idle state and "update status" message can be broadcasted. Am I right? Somehow it is still a bit "fuzzy" for me...
    thanks for help!
    Regards,
    Solved!
    Go to Solution.

    crossrulz wrote:
    I don't even put Stop buttons on my programs.  Almost always, somebody who was not familiar with programming LabVIEW would use the 'X' to close the window.  So when I discovered the Panel Close? event, I was overjoyed.
    yep, actually the problem is not that the user uses the X or a "stop" button, but that, we let the user to be able to quit the application without first stopping the DAQ. Would not be just easier to fire a pop-up dialog, telling the user, "hey, first stop the DAQ before you quit!" ? So some state-check could be avoided in the UI Msg loop`s case structure...
    2.: May I ask a CML related additional question? If I wish to extend the template with another DAQ loop, which has a different rate, or a loop which controls for example a flow controller, how would you do it nicely? Of course we create additional queues (notifiers too if we need graph plotting), etc. but how do you implement the state machine for this new loop? I think we need a separate enum typdef in the UI msg loop, since we need total decoupling between the DAQ and DAQ2 loops? Is that correct, or is there another way to do it? Maybe more compact if we create a cluster typedef, and we put the enumtypdef1 and enumtypdef2 in it, and we unbundle by name them only in the corresponding cases?

  • LabView 2012 Continuous Measurement and Logging (DAQmx) Project

    I've been working with this example to try to build a DAQmx and Serial acquisition message handling loops, as well as another message handling loop with two analog outputs for control. This control would also be based off of information from the DAQmx acquistion loop. Is this example appropriate to do this with? I've added two additional message handling loops (Serial and the AO control loop). I worried that this example might not be the best to follow.
    Attachments:
    Main.vi ‏108 KB

    I'm not sure what example you are talking about but it seems like you are wanting something like the document below.
    http://www.ni.com/white-paper/14119/en
    Carl W.
    Applications Engineering
    National Instruments

  • Continuously measure and write waveform using tdms

    Hello everyone,
    I am doing my thesis using Labview 2010(since it is only version avaliable in University currently ). I need to read and record data from microphone(currently using simulate signal since i need to make program work first) then save and analise it(didn't reach that point yet). I tried to use event structure so i can record and then read tdms file. But unfortunatly it records only small piece, then i inserted while loop so it will record continuosly but program doesnt respond after i push record and i can only close it manualy from toolbar. Please could anyone help me or suggest something since i am not very good at Labview and any feedback is welcome. Here is what i have done till now. I tried to search forums for some similar solution but could not find anything usefull(some had much newer version so i could not open). Thank you.
    Solved!
    Go to Solution.
    Attachments:
    test2.vi ‏45 KB

    Hi and welcome to the forums,
    The reason you cannot stop the recording of the waveform or exit the application is because you have the event case configured to "lock panel until the case for this event completes" (in edit events). This means that LabVIEW will not respond to user interaction until that event structure completes but because you rely on being able to press the while loop stop button to finish the event structure means you have a deadlock and have to abort the VI.
    The architecture of your application is not ideal - I would strong advise against having anything that takes a long time to execute inside your event structure for the very reason above (obviously you can untick lock panel as a quick solution). I would suggest having a look at the producer/consumer design pattern (events) (new... > from template > frameworks) as this would be more appropriate for your application. You can handle your button presses in the top event structure and have a state machine in the bottom loop for starting, running and stopping your data acquisition.
    The idea is that you only do very little inside the event structure so it frees up the front panel but the messages (e.g. start/stop acquiring data, exit application) are handled by another loop.
    I don't know if it ships in LabVIEW 2010, but in 2012/2013 there are sample projects that include a "continuous measurement and logging" project which might be suited to your application. There are also examples for state machines and queued message handlers.
    Certified LabVIEW Architect, Certified TestStand Developer
    NI Days (and A&DF): 2010, 2011, 2013, 2014
    NI Week: 2012, 2014
    Knowledgeable in all things Giant Tetris and WebSockets

  • How to measure and log frequency with fieldpoint CTR

    Hi,
    I am developing a data acquistion and control system for an engine dynamometer using the fieldpoint modules and Labview.  One of the most important signals is the engine speed, measured in RPM.  The RPM signal is a 0-12V pulse where one pulse equals one revolution of the engine.  As well as being an important piece of data for later analysis, engine RPM will also be in the input into a PID controller, so the signal must be both accurate and have a high measurement frequency. 
    Currently I am using the FP-CTR500 modules to measure the frequency of the signal.  I am already aware of the included frequency measurement VI example, as well as the one posted before for low frequency measurements, and I have gotten both to work with my setup.  I would be using the low frequency VI becuase the max frequency measurement would be in the 200Hz range. 
    The first problem I am having is with the structure of the VI and how the data is output.  The case structure in the VI activates when the counter is read and resets the counter, then switches to the next case.  I would like the RPM number to output out of the case structure into a write_to_file VI and PID controller input.  The problem is that when the case switches, the counter is reset to 0, which will be recorded in the written file. 
    This is some example output data (RPM):
    1232
    0
    2321
    0
    2400
    0
    2521
    0
    The data is being written correctly, but of course I can't have 0 readings when the case structure changes.  This would be especially problematic when input into a controller VI. 
    The next problem I am having is with sampling rate.  If I were to use the low frequency measurement VI, the sampling rate of RPM would be variable based upon the the speed of the signal.  Or, the original frequency measurement VI has an adjustable sampling rate.  Of course, in my system there are a number of other signals that need to be recorded at the same time.  I have found that as I am collecting data, the "write to file frequency" is entirely dependent on the read frequency of the frequency measurement.  Therefore, if I had set the read frequency VI to read at 1 Hz, data will be recorded only every 2Hz.  Ideally I would like an overall measurement frequency of all channels (mix of analog and digital) to read between 20-50Hz, but if I am limited by the frequency measurement. 
    Any ideas on how to solve this problem, either through Fieldpoint or Labview?
    I can post my VI if this help.
    Thanks,
    Huang

    Thanks for your reply. 
    I should probably describe my current setup before I go into anymore details with the problem.  As for my specific setup, I am using an FP-1000 connected with an AIO600, AI110, CTR500, and TC120 all running through the RS232 line to a desktop running labview 8.  The actual counter module is reading a tachometer signal output from a separate engine controller.  THe output is a 0-12V ON 50% duty cycle signal.  As for data logging, i am simply using a "write to measurement file"  Express VI.  I have a while structure which holds all of the express VIs which access the fieldpoint IO, and these are all routed to the "write to" VI. 
    As for the specifics of the data logging problem, as I said, when I set the count frequency of the "Fieldpoint Frequency Measurement" VI to 1Hz, (which means the VI calls the case structure at 2Hz), the "write to measurment file" VI is called at the same rate (2Hz).  Which means that the overall logging rate of the VI is only 2Hz.  Is there someway to decouple this? 
    I was able to solve the problem of calling the frequency variable from the case structure by using a local variable which is called outside the case structure. 
    And now I have been having a lot of problems with reading the actual frequency from my engine controller.  THe actual signal will only range from 0 to around 200Hz.  I noticed, by comparing the actual signal to what was being read in my labview program, that after around 80Hz the signal increases by around 1.5times more than the actual signal.  ie.  Actual signal = 100hz, Read Signal = 150Hz.  After trying to figure out what was the problem, I decided to change the Noise Filter settings to 200Hz.  It actually worked for all the frequency ranges up to around 150Hz but after that the filter attenuates the signal to the point where the actual signal is 160Hz, but is being read at 100Hz.  My question is if there is a way to change the actual filter setting outside of the 2 given setpoints (200hz and 40khz) or if you have any other suggestions on how to fix this problem?  I was thinking of creating a noise filter input in MAX so that i could play with the values in Labview, but am i only limited to those two filters? 
    Thanks again for your help,
    Huang

  • How do i modify the measure plug-in?

    I have a licensed copy of the measure plug-in. How do I gain access to the plug-in to modify the code to run according to my company preferences? Right now the plug-in is polling for 600 lines but I want to poll for only 300 lines. When I try to modify the module it says that it is protected or unviewable.

    Hello,
    I would like to help out, but I don't know what you mean by the
    "measure plug-in".  Could you please clarify what product you are
    using, and what type of module you are trying to modify?
    Travis M
    LabVIEW R&D
    National Instruments

  • Modify database schema and logging expression

    I want to add more information to my TestStand database. For example I want to add the UUT Part Number to the database. Presently I collect the UUT part number in a station globals variable. I assume that I need to move this part number to the database local expression "logging.UUT.PartNumber" so that I can log this info, but I can't figure out how to add this variable. How do I create this variable?
    Thanks in advance for any suggestions.

    In the process model (i.e. SequentialModel.seq) you can modify the custom data type "UUT". Go to the "Sequence File Types" window and select "Custom Data Types" and you will see the UUT container. Add a variable called "PartNumber". Then you will need to add a statement in your process model to assign the value of the part number. Go to the "Single Pass" sequence (and/or Test UUTs) and add a statement similar to "Locals.UUT.PartNumber = StationGlobal.PartNumber". The statement needs to be after the MainSequence call, assuming that is where the part number gets assigned.
    The database logging utility automatically adds the UUT container to the Logging container, so you will now be able to access it as Logging.UUT.PartNumber when you configure your databas
    e statement.

  • How to take Backup of Emails and Logs?

    i)How should i take the backup of emails sent and received?
    ii) Where should i check for email sent and received along with sender/recipient and body of the message, i have checked log in um_system\smpt_in\<process_id>.log, but information is not in presentable format? Can I check the same from es_mail schema, which table should i query for the same, because we want to keep track of communication?
    Kindly Reply Soon

    Manpreet,
    Have you had any luck with figuring out solution for what you posted? I have a similar requirement.
    To answer your question about tables...under Es_mail schema look for
    select * from es_header
    select * from es_body
    select * from es_instance
    select * from es_recipient
    Thanks,
    Pavan

  • How Best to Demo "Drop Box" and "Shared" Group Tabs?

    In presenting iTunes U to faculty in a "live" forum, I log in as a user with Edit privileges (obviously) so that I can show how changing Student access from the default Download to either "Drop Box" or "Shared" effects this feature. However, I cannot show how a person with these permissions would then upload content without logging out and then back in as a student. I tried setting Authenticated, Instructor, etc. to Drop Box but that doesn't work. I see nothing in the UI that signals what my role is. That would help I think. Also, where is the current User Guide? The Admin Guide doesn't really cover this and the user guide that I do gave is dated 2006!

    Frank,
    One of the misconceptions about iTunes U, one that can be really hard to shake, is the notion that it operates like terminal session…that when you log into iTunes U, you do so as a "user" with some fixed access to the system. Even if you accept the idea that iTunes U can anonymize access, it's often very easy to think of yourself as having a single "role" within any iTunes U session. For example, you might login using the "administrator" role or an "instructor" role. I confess that I often talk about iTunes U this way…just for convenience.
    But when thinking about iTunes U, and the access that any particular user has, it's important to think not of a single role, but rather, in what specific context a person possesses any particular role. For example, in the very same iTunes U session, a person might adopt a "student" role on some iTunes U pages and an "instructor" role on others. What role a person has in an iTunes U session depends very much upon the iTunes U page a person is viewing. Changing to a new page often means adopting a new role on that page. Another example would probably help…when someone browses your iTunes U site root page, that person likely does so using a very generic role, say "public"; but that same person might adopt an "instructor" role within a subordinate course page within the very same iTunes U session. It is likely for this reason that roles are not displayed when using iTunes U…you can literally have hundreds of roles assigned to your iTunes U session…what role you use at any specific time depends on where you're at in iTunes U, that is, roles are context-dependant.

  • WLAN Detail Measurement and logging

    Hello,
    at an event with +150 WLAN clients should I create a report for WLAN usage over the event time..Network environment:
    - WLC 5508 (7.2), AIR LAP1242G, access switches: 2960SCriteria for the report:
    - How many wireless clients were generally in time connected / associated?
    - How long each client was connected or active?
    - What has caused traffic each client and all?
    - When was which client on which AP is associated?
    - How many clients were on the individual APs in each account?Dignity for Netflow (Prime as Collector) sufficient or do I need more?With which board means and how I can for example also in the controller LOG to see when which client was associated with which AP (to find no setting)?What tools can I help it still inserting. Ideas?
    I already thank you for your feedback and professional helpBest regards
    Alexander

    Hello,
    sorry, bau at the moment i've found this dokument about Client Reporting with Prime:
    http://www.cisco.com/en/US/docs/net_mgmt/prime/infrastructure/2.0/user/guide/reps.html#wp1059688
    If someone still one more thing?
    Many Thanks
    Alexander

  • How best to display Company name and URL.

    I want to display my company name and URL throughout short videos to be posted on YouTube. I would like them to be nonintrusive, lower right corner, small font. Should I follow the Apple instructions for adding a watermark (but I'm not using a logo)? Or do I treat it like a title (but how do I get it to display for the entire video?)? Thank you for any help.

    Here is more on the YouTube options (and its limitations).
    http://support.google.com/youtube/bin/answer.py?hl=en&answer=92710

  • How do I get continuity, handoff, and phone calls to work?

    I upgraded to Yosemite on my iMac (late 2012) and I have an iphone 6 Plus and iPad Air both running iOS 8.0.2.  When I try to connect both of devices to my iMac via bluetooth I receive a message that states "make sure network access is enabled."  Both devices see my iMac and the iMac sees the iPhone and iPad, but I receive the above message after pairing them.  What am I doing wrong, did I miss a step somewhere?  I can't seem to get Handoff to work either....
    All 3 devices are connected to the same wifi network, the same iCloud account, and they all have Handoff turned on under settings.

    See the Continuity requirements article:Get help using Continuity with iOS 8 and OS X Yosemite

Maybe you are looking for

  • I've downloaded the entire software(the free trial) but now it wont open. how do I fix this?

    I've downloaded the entire software(the free trial) but now it wont open. how do I fix this?

  • USING SLIDES COPIED ON A CD ON NON-MAC COMPUTERS

    I copied an iPhoto alblum on a blank CD.  I took it to a friends house so they could view the photos as a slide show.  It wouldn't work. Any ideas?  I have an older version of iPhoto.  Are there any other options to share with non-Mac user friends>

  • Best way to export vector animation as bitmap animation

    Hello - we have some very complex animations that, for performance reasons, we want to have them be bitmaps at runtime. I'm wondering if anyone has any advice on how to do this. I don't think using the cacheAsBitmap feature will help us out at all -

  • Size of site

    When I open the dialogbox "new site" I write 1024x768 in size, but when I import a picture with that size I get a lot of white space around it. Why? What do I do wrong?

  • Item on witch a sort in done ?

    Hi! Is it possible to have the item name corresponding to a sort in a report, I meen when a user order a report by item1, I need to know that is item1 not another item, I have to use the same order in another page. Thanks