Jump to content

crossrulz

Members
  • Posts

    533
  • Joined

  • Last visited

  • Days Won

    21

Posts posted by crossrulz

  1. Thanks you for your example Crossrulz.

    I am a LabVIEW developer and a newbie with TestStand, so I would like to ask some question about the way we use the VI in the TestStand.

    In the first sequences Monitor, the Monitor.vi is called. There is one input which is "Sequence Context in". I cannot find the value for this number and as I understand it's a reference number. I don't know how this value is initialized?

    In the action "Send TERM Monitor CMD", you call the Monitor Queue.vi to send command to the Monitor.vi. One thing I don't understand is there is no queue reference or name queue is used here. How this queue can link to the queue runs inside the Monitor.vi.

    Because I only know LabVIEW so I think the way LabVIEW does. Please help me understand this.

    Thank you,

    Thang Nguyen

    I too am a LabVIEW developer. I fully understand having trouble thinking in TestStand. I am still fighting it.

    The Monitor Queue.vi is a functional global variable which will hold the queue reference for outsiders to use. During the Initialize case of that vi, the queue reference is created and stored in the uninitialized shift register. The queue is then destroyed during the Close case. The Initialize and Close should only be done in the monitor vi itself.

    "Sequence Context in" is a reference from TestStand. This reference is needed if we need to look at TestStand variables, abort the application, etc. See the following screen shot for finding it in TestStand.

    post-11268-125373095212_thumb.png

  2. The key word there is "annoyed": your bosses are paid to put up with you annoying them - the admins and moderators here at LAVA are not. The old adage of "the squeaky wheel gets the most grease" does not apply here - in fact, it may be the opposite.

    That is a very good point. I will endure until the kind, wonderful admins of this great forum find the problem.

    • Like 1
  3. I, well, used to get threads from: http://lavag.org/ind...ype=forums&id=1

    All ****ing Alfa String now.

    Yep, my RSS was cleaned out and then *bang* 200 postings, all Alpha String. My RSS will only grab the first 200 from that post so I don't know who to shoot for actually posting to the Alfa String.:angry:

    I think I'm with Ton, complain until it is fixed. That's how it goes around my work too. I don't know how many months I annoyed my boss before finally getting a response about NI Week.

  4. Yes this issue is still present because those threads are probably being moved from the 1.0 forum to the 2.0 forum and somebody replied to it. It's not getting worse, it just depends on the number of old topics that have new replies. Once the full thread is received in your reader once, you should only see the new replies from then on, not the old ones anymore. I use Google reader and this is the behavior I see.

    For me, it seems to rear it's ugly head daily. If a new post comes in on day 1, I get the entire thread. If someone else posts on the same thread on the same day (after I went through and deleted), only that one post shows up. Next day, new post will cause the entire thread again. Doesn't matter if it is Lava 1.0 or Lava 2.0 threads.

  5. Is there a way of finding all GPIB/VISA/Serial instruments connected to the system programmatic ? (get the same list as VISA showing) When I have found all instruments I need I can start the test.

    Offen (or always) when I move a system from development to the real test, instruments have not the same setting as I have in the R&D. So If I find a way to find the instruments programmatic this will solve many problems.

    Thanx

    Like the VISA Find Resource

    post-11268-125076886723_thumb.png

  6. Hi crossrulz

    In your example you have a section that is named "Remote Instruction Handler"

    I see that you start a new Queue, but What is this be used to ?? Is this something that you reading each step ?

    Please advice

    Thanx (again)

    The Remote Instruction Handler is what reads and processes the data being sent to the monitor (from Test Stand or internally) via the Monitor Queue. What we do is for each test step we send the Test Paragraph, Description, Upper Limit, Lower Limit, Measurement, and Pass/Fail via the Monitor Queue to the monitor. The Remote Instruction Handler will then read from that queue and process the data however it needs to (send data to be written to file, update step information, update measurement displays, etc.). The queue is being created in the Monitor Queue.vi when the task is set to Initialize. We have a wait in Test Stand that will sit there and wait for the queue to be created before performing tests (poll the Monitor Queue to see if the ref is still a NULL). This way we know the monitor is up and running and we won't miss commands (which was a lesson learned over the years). But the Remote Instruction Handler is the main part of the Monitor VI.

  7. Thanx for this example.

    But I have a hard time understanding what is happening.

    I understand that my code is put in the "run stuff" but how to get the result from Runstuff into the monitor interface I don't understand.

    So if you have the change, give me a lite intro

    Thanx for your time

    You send data to the monitor using the Monitor Queue.vi. That VI is an action engine. Set the task to Send Message and pass in the string data. The data will then be placed in the queue that the monitor VI will read from. The monitor VI will then decipher the message however you need to. When your test is over, send the "TERM" command to shut down the monitor.

  8. We have a sequence that we run in another thread. The only thing in the sequence is a VI that is used as a GUI (we call it a monitor VI). We communicate with this VI using a queue. Since all of our drivers are written in LabVIEW, we just have our drivers send data over this queue and have VIs for sending specific commands called from the TestStand level. It is not terribly difficult. Just remember to set the sequence to run is a new thread (so that TS won't wait for it to end before moving on) and that the GUI will close upon a terminate command when your testing is done. If you have more specific questions, let me know. I have been recently working on this sort of thing.

  9. I get the impression that those of us who use LabVIEW for data acquisition and processing operate in very different world than those doing ATE. In ATE, I would imagine that the system requirements are pretty clear from the outset. You know your process, and you know the manner in which you want it automated.

    For data processing applications, the development process may be much more iterative, as you may not know what has to happen in step 3 of the processing until you can see the results of step 2. Likewise, the user may not know what his UI requirements are until he sees some initial results. This is especially true when using LabVIEW to develop new processing algorithms.

    When the ATE is being developed in parallel with the product, you get the exact same mess as you are talking about. I'm going through that right now. Every other day there is a pin moved, requirement changed, subassembly totally redesigned, protocols changed, etc. Development testing starts and then all of your requirements change again. Needless to say, it is quite frustrating.

  10. If all CAN transmits have to go through a single VI, simply make that VI non-reentrant and the semaphores aren't needed. The VI itself will act like a semaphore since it can only run in one thread at a time. I did the same thing with a serial port until I made the realization that they aren't needed due to the non-reentrancy of my serial port control VI.

    But I seriously wonder what is holding your semaphore.

  11. Am I the only one who thinks this is really stupid?

    Not because of the shortcuts themselves. They're useful.

    The problem is with placing them in QD.

    W.

    T.

    F.

    !.

    This is the kind of thing that would be ideal in something like the right-click framework - select something, operate on it. Why is it in QD?

    Obviously the answer is simple - someone wanted it and didn't have anywhere else to put it which would make it easily accessible, but I find this to be totally unrelated to the QD functionality and very undiscoverable.

    I had the exact same thought. These functions have absolutely nothing to do with placing new nodes on the block diagram. But whatever. There they are. CTL+SPACE and then another CTL combo. RCF makes so much more sense in this matter.

  12. VIs are normally known strictly by name. When a VI is added to a library, the library name becomes part of the VI name in memory. For instance, I have a VI called "Initialize.vi" for two different libraries (in my case, N5700 and KE2425). These are for power supplies. The Agilent N5700 and Keithley 2425 need different initialization processes. If I didn't put Initialize.vi into a library, there would be a conflict. So I made the two libraries. Now I have, according the the LV memory space, "N5700.lvlib:Initialize.vi" and "KE2425.lvlib:Initialize.vi". Two different VIs.

    So I guess the short answer to your question is because the lvlib is part of the VI's name in memory space.

  13. Hi Everybody,

    I am having two strings in date and time format like 20.07.2009 17:00:20 PM and 20.07.2009 17:02:00 PM. I want to substract the string so as to get the date and time difference. Can anybody help me? . I am using Labview 8.0

    Pande

    If you look in the timing pallet, there is a Date/Time to Seconds which takes in a cluster. Parse out your strings, fill in the clusters, convert and subtract.

    post-11268-124810846502_thumb.png

  14. I keep getting the entirety of a thread whenever someone adds to the topic in my RSS reader. For instance, Jarimatti Valkonen posted to "Lurker Roll Call" on 7/15/09 at 12:15PM. Instead of seeing that one post, I got all 93 posts in the RSS. For small threads, this isn't so bad. But for large ones like this (and Heaven forbid the Alpha String :throwpc: ) it is kind of a pain.

    I am using Outlook 2007 on Windows XP as my RSS reader.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.