TestSTAND question

We are having a problem with teststand and would appreciate help. Here is
the problem:
We are controlling a scanning (multiplexer) instrument and want to be able
to select certain channels for scanning from within teststand. Right now the
driver for the instrument scans all the channels. I can be more specific if
needed. Any experts out there?
My colleague wants to know if we can use local variables to represent the
elements in step.numericarray? And then use the some of the local variables
in multiple numeric limit tests.
thanks in advance

You'd probably get more responses if you posted your question to the TestStand discussion group but I can try to answer it here.
The way I do it is to first create a TestStand array of channels. I then insert a LabVIEW step of type Multiple Numeric Limit Test. In the step I use the TestStand - Get Property Value (Numeric Array).vi function to get the list of channels and pass this to the instrument driver. I'm assuming that your driver has the ability to accept a channel list. I then write the results to Step.NumericArray. If your're stuck with a driver that doesn't allow for flexibility in choosing channels, you can still write to an array and use individual numeric limit test steps using the None adapter and in the Data Source, just index the element o
f the measurment array that you want. Good luck.

Similar Messages

  • A few (!) TestStand questions from a TS Newbie

    I am developing a two PC test system which will have TestStand on a MasterPC and the TS remote engine running tests on a SlavePC. The tests are being developed in LV and I have a VB UI controlling the TestStand API. I have generated a palette of company specific code templates and step types which have custom fields detailing my test parameters. When (if?) we hand over the test system we want our customers Test Engineer to edit and create custom test sequences from our palette of test types.
    My questions are:-
    1. How do I pass variables from one sequence to another (for example from a master sequence into remote sequences) in TestStand? I know about globals/locals, but is there another way? These variables shouldnt be defined as globals, they are test specific and will change from sequence to sequence. The Test Engineer should also be able to modify any test parameter from the top level main sequence, without having to delve into the remote sequences and modifying them.
    Alternatively am I able to run remote tests rather than remote sequences. This would then allow me to access the variables directly in the MasterPC sequence editor.
    2.Is there a way I can access the Sequence Context variables (which I have created with my custom test type) directly in LabView (Like the Input Buffer for example, which doesnt require any unpacking at the Labview level, it just appears on the front panel). I know how to access the Sequence Context using property nodes etc.
    3. Can I calculate the total number of steps in a sequence (including those in remote sequences?) this is to be used for generating a usable progress bar independent of the sequence and number of Vis (I have used Thread.PostUIMessages to post back an increment event in the UI, but this could go over the reported number of test steps).
    4. Can I create a step post action that automatically posts a UImessage to update the UI progress bar? (This would remove the need for number 3 in every VI)
    5. Is the Remote engine killed after the end of execution? (after going through the two pass shutdown method on the MasterPC.) Can it be started remotely?
    Thanks in advance!
    Marlon Persaud
    Test Development Engineer

    Hi,
    Q1. Each sequence you have the Step Groups, Locals and Parameters, when viewed in the sequence editor. When you Specify a SequenceCall, On the bottom half of the dialog box is a list of Parameters. These parameters are picked up from the Sequence's Parameters. If you have no parameters defined in your Sequence, then no parameters will be available when you are specifying a SequenceCall.
    If you are executing a Sequence by way of the NewExcution API function, then this has an arg which you can use to pass a container of the Parameters' Listed of a sequence.
    If you do a search in the Resource Library for "passing parameters to a sequence", you should find some useful examples which will help.
    Q2. There are a series a VI's that are installed into your LabVI
    EW folder in the USER pallete when you install TestStand. These allow you to read/write to a property/variable knowing the LookupString. eg "Step.Limits.Hi" whould enable to read or write to the current step's upper limit if the Step was a NumericTestLimit type.
    Q3. You could scan through the RunState.SequenceFile and the RunState.SequenceFile.RunState.Caller properties, if the step is a SequenceCall, and count the steps in each group or just the Main step groups. This will give you a total count you require.
    Q4. Yes. When you create your custom step type. Not only can you define the call for the action of the step. but also the Pre Step action and the Post Step action. Its a similar process to define the Pre and Post Actions of a step as it is the Main action.
    Hope this helps
    Ray Farmer
    PS can not offer an answer to Q5 as I haven't used the remote interface.
    Regards
    Ray Farmer

  • How can I create a popup panel in a CVI DLL and keep it on top of the calling TestStand applicatio​n window?

    When I create a panel in CVI and use InstallPopup() to display it, the user can set the focus to the main TestStand window, which causes my popup to disappear underneath it.
    I'm guessing I need the popup to be a child window of the main application window.  I've tried passing the Engine.AppMainHWnd handle as the parentHandle argument in LoadPanelEx(), but this causes an error, as it is not a valid handle.
    Also, if I call another DLL function from a control callback within my popup, which creates another popup, on closing the second popup both disappear and the program is stuck in the RunUserInterface() of the first popup.
    This seems a simple requirement, yet I don't seem to be able to find a straightforward way to achieve it.

    Steve,
    I think this is more a TestStand question than a CVI question.
    To use a CVI popup with TestStand, you should call TS_StartModalDialog() before InstallPopup().
    When you quit your popup panel, you should call RemovePopup () and then TS_EndModalDialogAndDiscard().
    The TSModalData must be the same for Start and End Modal dialog.
    Bruno

  • TestStand not updating th descriptio​n after using the edit substep

    I've created numerous custom steps in TestStand.  None of them will update the description after I use the edit substep and change some of that steps properties.  As an example, I have the following step description...
    str(Step.Channel.DeviceName)
    After I use the edit substep, which changes step.Channel.DeviceName, the description does not update.  However, if I then open the properties menu for that item and either select "OK" of "Cancel" to leave the property window, it then updates to the correct values.  Placing down a new step will also force the description to update.  While this is not functionally causing any problems, it would be nice if the descriptions updated immediatly.

    Hey Dillon,
    The reason it doesn't update is because the sequence editor doesn't know that the sequencefile has changed so it doesn't know to redraw that window.  You can force it to redraw the window by calling the method IncChangeCount from the PropertyObjectFileClass.  If you increment the change count it should automatically update the description as soon as your edit substep completes.  Also a piece of advice, in the future if you have TestStand questions, you can probably get a quicker answer to them by posting on the TestStand forums, even if it is using the TestStand API in another programming environment like LabVIEW or CVI.  Hope this helps!
    Message Edited by Patrick P. on 12-06-2006 06:38 PM
    Pat P.
    Software Engineer
    National Instruments

  • Switch in Teststand

    Not sure if this is a Switch Exec or Teststand question.
    In Teststand I can "Insert a Step>IVI-C> SWITCH"  If I select "Edit Switch" a drop down appears. If the "ACTION" is to "0-Connect" and the "Route(s) to Disconnect" is ALSO populated does it disconnect that route in additon to connecting the one in the "Route(s) to connect" field???
    I've included a screen cap.  Even though the action is to connect does it disconnect too because that field is populated??  Using type c relays...not a mux if that helps.
    "Go ahead, make my day"
    Clint
    Attachments:
    switch properties.jpg ‏437 KB

    Hello Clint,
    Even though the field is populated, the route will not be disconnected until you call a Disconnect or the Connection Lifetime has expired.  Sorry for the confusion, I will file a Product Suggestion to clear the Disconnect field if the action is set to Connect.  I invite you to do the same at the Product Suggestion Center.
    Rod T.

  • Teststand SQL reuest get MAX of a Column

    Spoiler (Highlight to read)
    Hello,
    In Teststand 3.1, I try to get the MAX of a column called  Col1 in the table myTAB.
    To do that; I have writen in the Open Statement the following request
    SELECT MAX(myTAB.Col1) FROM myTAB" Thanks. Correct execution in teststand
    Question : How do I get the result with the SQL Action Step
    Thank you by advance for your help
    Solved!
    Go to Solution.

    Hello Rodéric,
    Thank you very much for the answer.
    I tried your suggestion as it is but unfortunatelly Teststand gives back an error because it can't manage correctly the locals.max in the request.
    However I tried other may your idea of using the key word "as" :
    First I use :
    Open Statement : SELECT MAX(myTAB.Col1) as MAXI FROM myTAB
    I don't know how teststand manage the "variable" MAXI.
    But when I secondly add the step
    SQL Action : Get - Retrive Values from record with as Column/Parameter Values:
    Name/Number : "MAXI"
    Values : Locals.Max
    It works correctly
    Thank you a lot
    Ham

  • Using cvirte.dll from teststand

    I am trying to use cvirte.dll from teststand to automatically print test result reports. I am starting with the example sequence PrintEntireReportWhenFinishedTesting.seq that I found on the NI website. I want to change the print font attribute. The dll doesn't include prototype information so I need information on the parameters for the SetPrintAttributeEx function. Specifically what number refers to the ATTR_PRINT_FONT_NAME attribute and what are acceptable values for the value of this parameter.
    Attachments:
    PrintEntireReportWhenFinishedTesting.seq ‏37 KB

    Wendell,
    I believe this question was also posted in the TestStand category. Since this is more of a TestStand question, it was seen and already answered. Please see Using cvirte.dll from teststand.
    Thanks!
    Shannon R
    Applications Engineer
    National Instruments

  • How to Reset Factor value at time of Reset the system.

    Hello,
    I am facing one problem regarding to Reset the factor value in attached vi.
    In that I have used 4 button Start, OK, save, stop.
    In that initially vi ask to set the factor value , then press start and reading will vary and then press OK then reading is add to the array table.
    For second reading again press start and measure the reading then OK to add to array.
    After some reading when I press save button its save all reading to txt file and reset the all the vi but its not able to reset the Factor value.
    How can I reset the factor value also after pressing save button.
    I know here its out side of whileloop so its not possible to reset in this case I tried to set it into the while loop but I didn't get success.
    Please guide me.
    Thank you very much.
    Solved!
    Go to Solution.
    Attachments:
    voltage force capacitance .vi ‏43 KB

    This is not a TestStand question! Please post it in the LabVIEW board.
    Beginner? Try LabVIEW Basics
    Sharing bits of code? Try Snippets or LAVA Code Capture Tool
    Have you tried Quick Drop?, Visit QD Community.

  • Missing Search Directories during Post substep execution

    I've run into a small difficulty in my elegant solution to the problem I posed in my "Calling IVI/Visa drivers from TestStand" question.
    In brief, I have some custom step types where I've defined a Post substep, which uses the DLL Flexible Prototype Adapter to call a bit of code I wrote. The problem is, it's unable to find my DLL while executing the Post substep. The DLL is in the same directory as the sequence file, and I have the "Current sequence file directory" option enabled in Search Directories. The same DLL can be found no problem when it's called as the main module for a step.
    It seems as if the current sequence file directory is not being searched when the Engine is executing substeps. I'm having som
    e difficulty finding an elegant solution to this. I hate to just add another directory to the Search Directories, because those are universal, and this problem is specific to this one sequence. I hate to use a sledgehammer to kill a fly.
    Am I missing something obvious? Is there a flyswatter I'm not seeing?

    To McGregorMortis -
    A substep is a subcomponent of a step type. Step types definitions can reside in a type palette file or any sequence file. When a sequence file uses an instance of a step type, i.e. a step, the step type definition is attached to the sequence file.
    We specifically decided not to use the current sequence file search path for substeps in step types for the following reason:
    A step type only loads the substep code module
    once, even if more than one sequence file uses
    it. So if one sequence file has the code module
    for the substep in its directory and another
    sequence file has another copy of the code module
    that might be a little different, the second code
    module would not be used.
    Step types ar
    e intended to be used as a major component of the TestStand engine. That is why the default TestStand step types are stored in the Components directory and the search directory feature specifies to recursively search the Components directory.
    Hope this helps...
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

  • Why does nidevldr service not start reliably?

    nidevldr service does not start (consistently) after reboot. We are running  TestStand 4.2.1 on Win 7, 32 bit.
    National Instruments mDNS service starts after reboot, but stops shortly thereafter. As we understand it, the NI mDNS must be started in order for nidevldr to start.
    Both services are set to automatically restart after 1st, 2nd & subsequent failures per NI Document ID: 4BHID6DE.
    Any suggestions would be appreciated.
    Solved!
    Go to Solution.

    Aside from the cases mentioned in the 4BHID6DE document, It's possible that there is a firewall or antivirus software that is restricting this service from running properly. If you have any of those configured they may be worth adding exceptions to.
    But, as Doug mentioned, this probably isn't the best place to pose this type of question as this forum is focuses on TestStand questions. I would actually recommend posting in the Multifunction DAQ (https://forums.ni.com/t5/Multifunction-DAQ/bd-p/250) forums, as they rely more on the device loader service for troubleshooting DAQ hardware.
    Hope this helps!
    Tim A.
    National Instruments

  • How to fix sequence editor error when using Test Executive 5.1.1 with Labview6.0?

    I had a test sequence that was built with Test Executive 5.1.1 and Labview 5.1.1. The sequence test step vi used Test Shell to allow the user to edit and config the test. After upgrading the test step vi from Labview 5.1.1 to Labview6.0 by mass compiling all vi to Labview6.0, an error occurred while editing the test vi. The error is as following:"Sequence Editor Error: Config Test Vi Callback.vi: Could not config test vi. Make sure the path to the vi is valid." I am sure the vi path is valid, does anybody has any idea why the path was not seen? How can this bug be fixed? Any hints or suggestion would be helpful.

    That's really a TestStand question. You should post to the TestStand Discussion forum. TestStand Discussion Forum

  • Executing MatLab script

    Hi guys!
    I'm using TestStand to log a bunch of data and save them as binary files. When the test is finished I would like to run a matlab script. At the moment I do this manually, just opening MatLab and changing the path that the script uses to find the particular set of binary files from the test.
    From what I understand you can't use the MathScript function with the base package.
    I don't require anything more than opening mathlab/running the script in the background at at certain point in the test. Could this be done by using a system call and just passing the path as a parameter from a LabView VI?
    Any ides to what is the best approach?
    Thank you for your time!
    Solved!
    Go to Solution.

    You'd be better off posting this question in the TestStand forum, since this is really a TestStand question. In fact, all of your other questions have actually been in the TestStand forum. As far as doing this using a LabVIEW VI, sure you could do it. The VI would contain just a couple of lines of Matlab code to call the script, I suppose. You could also use the Matlab COM server to call Matlab that way. That's how the LabVIEW interface works, so you can just cut out the middle-man, so to speak.

  • Como puedo guardar unos datos voltaje vs tiempo

    buenas. tengo la usb60008 estoy intentando capturar datos de voltaje de una termocupla ya tengo el circuito con el amplifi de instrumentacion . la cuestion es que quiero capturar esos datos de voltaje que me entrega la termocupla y poder crear una tabla con dos columnas voltaje vs tiempo y poder graficar esos datos para tener mi grafica de respuesta. 

    Hi fralver
    Are you sure this is a TestStand question, would it have been better to have posted your question here
    Regards
    Ray Farmer

  • First modal panel dislpayed is hidden???

    Not sure if this is a LabVIEW or TestStand question, will post on both boards just in case.
    We have developed a number of popup panels (with modal properties), in LabVIEW, that are called from a TestStand sequence to get information from and dislpay information to the user. 
    Our target machine is has a dual monitor display from which the user can select which display to use; consequently we have to programmaticaly set the position of our modal panels before we display them to the user. 
    We have implemented this functionality and when running on my development machine everything is displayed in the correct location. 
    However when running on the target hardware (LabVIEW RTE and a LabVIEW TestStand Operator Interface) our popups in the FrontEndCallback are dislpayed correctly, but once we have selected and run a test sequence; the very first popup (which happens to be in the Process Model) is not dislpayed and the sequence hangs waiting for an operator interaction with the popup. 
    We know the popup is being called because if we open any panel over the top of the TestStand Operator Interface (we have been using WindowsXP Control Panel but I am sure any other panel will have the same effect) and then close the panel (to force a redraw of the dislpay) our popup is there positioned correctly.  Once the first panel has been given this little kick start to make it displayed, all other popups are displayed correctly.
    It seems like it is a screen update order sort of thing, that affects only the first popup after the TestStand Operator Interface has been given focus.
    Any suggestions greatly appreciated.
    Regards
    Steve
    https://decibel.ni.com/content/blogs/DailyCLAD
    Solved!
    Go to Solution.

    Hi Steve
    Thanks for your response. 
    Good call.  Things have moved on a bit since my post.  We are using SetWindowPos to set the Z-Plane position, to TopMost, of our panels and it is ensuring the panels are displayed at the front of the display (which is nice), but it seems overkill to me.  I have technical queried NI and they can't find me an alternative solution, so user32.dll it is.
    Steve
    https://decibel.ni.com/content/blogs/DailyCLAD

  • Initialize visa to use for all tests

    Does anyone know how to initialize VISA to use for all tests then close it at the end of the last test?
    Example:
    The test sequence starts with initialize instruments then testing starts until the last test is to close all instrument handles.
    Thanks in advance.

    Is this a LabVIEW question or a TestStand question?  It actually does make a difference in my answer.
    If you are strictly only in LabVIEW, then you just pass your reference wires around where they are needed.
    What I like to do for TestStand is make an Action Engine to control my reference to an instrument session.  This method also works well with strictly LabVIEW as well.  But is overkill for somewhat simple applications.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

Maybe you are looking for