A password was set on a sequence file. This password was copied from an instruction on how to create a deployment for a set of test. The sequence file will not unlock for editing. How can I unlock the sequence file? I am using Test Stand 2014. This file was last edited in Test Stand 2014.
Sequence File will not unlock for editing
deploying test stand 2012
Hi, I am currently using TestStand version 2012. I would like to deploy my sequence files which contain call to LV2012, MATLAB script node, and C++ DLL. Please provide step-by-step procedure. Thanks.
Import table in Excel into TestStand array variables?
I'm trying to use the property loader to read in an Excel file and create a number of local variables. The tables that I maintain in Excel are of the following format:
Range | Setpoint | High Limit | Low Limit |
5 | -4.5 | -4.49395 | -4.50605 |
5 | 0 | 0.0011 | -0.0011 |
5 | 4.5 | 4.50605 | 4.49395 |
250 | -225 | -224.6975 | -225.3025 |
250 | 0 | 0.055 | -0.055 |
250 | 225 | 225.3025 | 224.6975 |
From this table I want to create 4 local variable arrays in TestStand, all 6 elements deep: Range, Setpoint, HighLimit, and LowLimit. Is there an elegant way to do this without having to use all the formatting syntax that would be in a generic export of these locals from TestStand to an Excel file (i.e. using the method of export Excel file, fill in your own values, then import the Excel file)?
DaqMX parallel executions error -50103
Hi all,
I am working on a system with 16 test sockets. I am using a PXI system with PXIe-4357 RTD cards, each station has 2 RTD's. If I run 1 or 2 stations it works well, if I try to run 3-4 stations simultaneously, I get error -50103. I have set my VI's to be non-reentrant and I have used the Task Done VI and I unreserve and clear the task. This VI is called by another VI which is in a TS loop. The loop runs pretty slowly, and I have implemented a 0.5s delay.
Does anyone know how to solve this issue? Please see my VI attached.
Thanks!!
How to set the numeric format through the API
Hi,
I have an utility that imports limits from external resources and in that utility (C#) I would need to modify the numeric representation so that what is defined as hexa in the external resource to be displayed as hexa after importing to TS as well.
Can U help me out if this is possible with the API and if so, what is the right methods for it?
Thanks in advance.
Problem with function "DBConnect" in TestStand/LabWindows
Hello, good day.
I'm having some problems with the function DBConnect that I'm using in a personal function inside a DLL.
I have made a function called GetSensor which I know it works because I have used it and tested it in the LabWindows enviroment.
His function is return the value of some element in my database according of his input parameter, just that.
My problem comes out when I tried to use that same function in TestStand, it seems that the DBConnect cannot work as in the same way of when it is used from LabWindows because always show a warning message, which is display only when the values of iHdbc are iHdbc==-11 or iHdbc==-10.
The softwares that I'm using are:
I know TestStand is opening the function from my DLL becasuse it always get in, but did not pass the part when try to connect to the database.
I think this could be a compatibility issue between LabWindows and TestStand, but I do not find where can I modify some options to fix this problem.
Thanks in advance. Any help you could give will be welcomed.
Programatically closing an execution fails unless I select Auto close
Hello there!
Im trying to execute a sequence using TestStand API and then close all references, but the End Execution event does not seem to be thrown.
I had the same issue as the thread called " Programati
My code is the following
_axAppMgr.EndExecution += new NationalInstruments.TestStand.Interop.UI.Ax._ApplicationMgrEvents_EndExecutionEventHandler(_axAppMgr_EndExecution);
_axAppMgr.ExecutionClosed += new NationalInstruments.TestStand.Interop.UI.Ax._ApplicationMgrEvents_ExecutionClosedEventHandler(_axAppMgr_ExecutionClosed);
void _axAppMgr_QueryCloseExecution(object sender, _ApplicationMgrEvents_QueryCloseExecutionEvent e)
{
e.opt = QueryCloseExecutionOptions.QueryCloseExecution_AutoCloseWhenDone;
}
void _axAppMgr_EndExecution(object sender, _ApplicationMgrEvents_EndExecutionEvent e)
{
ExecutionRunStates runState;
ExecutionTerminationStates termState;
e.exec.GetStates(out runState, out termState);
if (termState != ExecutionTerminationStates.ExecTermState_Normal)
Trace.WriteLine(DateTime.Now + " -----EXECUTION " + e.exec.DisplayName + "Aborted ---------");
else
Trace.WriteLine(DateTime.Now + " -----EXECUTION " + e.exec.DisplayName + " Terminated ---------");
ExecutionEnd = true;
}
public bool Run(string UUTName, string sequencePath )
{
bool output = false;
int TimeOut = -1;
string name = "";
ExecutionRunStates runState;
ExecutionTerminationStates TerminationState;
try
{
name = DateTime.Now.ToString("yyyy-MM-dd") + " Test " + UUTName;
if (!_axAppMgr.IsStarted)
_axAppMgr.Start();
seqFile = _axAppMgr.GetEngine().GetSequenceFileEx(sequencePath);
Main = seqFile.GetSequenceByName("MainSequence");
Main.OptimizeNonReentrantCalls = true;
Main.Type = SequenceTypes.SeqType_ExeEntryPoint;
execution = _axAppMgr.GetEngine().NewExecution(seqFile, "MainSequence",null, false, ExecutionTypeMask.ExecTypeMask_CloseWindowWhenDone);
execution.TracingDisabled = true;
execution.RTEOptionForThisExecution = RTEOptions.RTEOption_Ignore;
execution.ClearTemporaryBreakpoints();
execution.DisableResults = true;
bool isExecuting = seqFile.IsExecuting;
bool wait = execution.WaitForEndEx(TimeOut, true, null, null);
execution.GetStates(out runState,out TerminationState );
execution.Terminate();
_axAppMgr.SetAutoCloseExecution(execution, true);
_axAppMgr.CloseExecution(execution);
execution.GetStates(out runState, out TerminationState);
while (!ExecutionEnd)
System.Threading.Thread.Sleep(1000);
Terminate();
execution.GetStates(out runState, out TerminationState);
}
catch (COMException ex)
{
Trace.WriteLine(ex.StackTrace + " " + ex.Message);
}
finally
{
TSHelper.DoSynchronousGCForCOMObjectDestruction();
Quit();
}
return output;
The problem is, when I deactivate the
e.opt = QueryCloseExecutionOptions.QueryCloseExecution_AutoCloseWhenDone;
command the execution fails to close.
If I set the option to
e.opt = QueryCloseExecutionOptions.QueryCloseExecution_ShowDialog;
and manually select auto close , then the Execution Close event is thrown.
Could anyone help me finding out what's wrong with my code?
Thank you in advance for your time
TestStand Callbacks....CancelStepCallback
I have two sequence callbacks, PostStep and StepFailure. I am wanting to use Step.CancelStepCallback inside of the PostStep callback, since it is called before StepFailure, so StepFailure callback is not executed, on certain occasions. Is there a way to do this? I have tried "CancelStepCallback" with no luck.
teststand turn off enter uut number
HI I am new to teststand and just wanted to know how do I turn off the dialog box that popus up for every run saying enter uut serial number when I select test uuts? How do I tunr off the test sequence passed dialog at the end?
.Net Object Ref, Array of structs
I'm trying to find the best (and simplest) way to handle this issue:
Background:
My calibration code returns a .net object, containg 2 array of structs.
Each struct contains e.g 10 properties. Each array will contain around 16 of these structs.
That means several hundred values to be evaluated in TS.
Problem:
I would like to setup a limit for each of those values.
I would like to evaluate and report via a numeric limit step.
Q1) How do i access a specific property of that object reference ?
Q2) How do i retrieve the name of that property ?
Q3) Should I manually build my test sequence, with one numeric limit step per property (which requires that i know exactly how many data properties i will get) ?
Q4) Can I dynamically do some looping at runtime, that could report/evaluate all the content of the object pointed to ?
Disable entry points in OI based on sequence
Hi all,
I'm using LV2014 with TS2014, using the parallel process model.
Is there a simple way to disable the Single Pass and Run Main Sequence entry points? I noticed that in the CreateDeleteUser example only the "Run Main Sequence" entry point is displayed in the OI, how is this accomplished? I would like to only show the "Test UUTs" entry point if possible.
Thanks!
How to use the variable type expression (String)
Hi all
It is a basic question but I do not found any documentation about the variable type expression.
What is it for?
Teststand 2013
Tks
Missing Lines in text Reports
Hello,
I am trying to print a report that is saved as a text file from the TestStand Report Tab. When I print, several lines are missing from the report and the margins are incorrect. When I set the printer to not include margins, the left side and top of the report are cut off. I have opened the text file from an external viewer and I have printed with no problems.
Are there any known issues printing text files from the report tab? Is there a way to control how the report viewer prints text files?
Thank you,
Jose
Internal Error: Error occurred in module 'NIAnalysisModules.dll: NIAnalysisModules::ValidateStepSettings'
Hello,
I have done significant searching and haven't been able to find any information on this topic so hopefully someone can help. We have written a sequence that pulls data from an Excel file, uses it to query our system under test, then verifies the results and writes them back to a new Excel file. The sequence was working earlier this week, but in the midst of some fairly significant changes it began giving us this error during analyzing:
Message: Internal Error: Error occurred in module 'NIAnalysisModules.dll:NIAnalysisModules::ValidateStepSettings': The requested object does not exist.
Location: ShellCommand_Compliance_V3.seq Seq["MainSequence"].Cleanup["Save Output Workbook"]
Rule: Internal Error
Description: The sequence analyzer uses this rule to report internal errors that occur during analysis. These message usually indicate a serious problem with a component of the sequence analyzer. Report the information to the component owner or to National Instruments. You cannot disable this rule.
We get the same error on two other steps (the two steps to close the input and output workbooks).
This error never shows up when you first start Teststand or when you analyze/run the sequence the first time. It is only present after the sequence has been run once. You can also ignore the error and continue running once it has shown up, but after a while Teststand will freeze and crash. This is making me think something is not being closed properly, but I can't for the life of me figure out what it is.
The other thing we're seeing is that occasionally the variables pane will stop showing variables and instead say "An error occurred while accessing the data this control displays. This can happen if another thread, such as asynchronously running code modules, is modifying the data while you are viewing it." I'm assuming it's related, as it's only happening in this particular sequence. Sometimes it will come back after a while, other times I have to restart Teststand to get everything back to normal.
I tried copying just the Excel open and close steps to a new sequence and running it and I get the same results. Runs fine the first time, then gives me an error when analyzing afterward.
My sequence file is attached for reference.
Any ideas would be much appreciated!
Password Protect Sequence Files on Deployment
I need to password protect (not viewable) my sequence files for a deployment (many sequence files will be included). I would rather not do this file by file for the deployment (files are in a version control system, and need to be updated regulary, so, having individual developers set passwords to individual sequence files to build is tedious at best). Is there a slick way of doing this so that the source sequence files don't need to have this enabled one by one through Edit -> Sequence File Properties, but the deployed ones do (just like you can password protect the LabVIEW VI's through the TS Deployment Utility)? Suggestions?
custom data types, .net, nested structs
I receive a data structure from .net into TestStand. It's a struct containg a number of fields, and an array of stucts.
When i try to create a custom data structure of the Struct (CalibrationResult) in the step (Calibrate), the nested struct does not get any content. When i Open the Types pane, and check the nested struct (SpuriousList) its empty.
I have tried to create an other cutstom data type for SpuriousList, but i can't seem to get it right. The local variable (Local.RadarCalibrationResult) which is the output parameter keeps being read, with various error messsages like "missing a subproperty" or something like "you can't fit a square into a round hole". I did try to create the missing parts of the custom type manually, but it did not help.
Why will TestStand not build the complete custom datatype, when it contains nested structs ?
The sequence added is stripped down to one relevant step.
How do i create that particular custom data type, which will support my .net output (can anyone make Local.RadarCalibrationResult not red)?
TS Pallette's GetMonitorTerminator
Writing from home so I may have name of vis wrong... Using LV2010, and TS 2010.
I'm trying to have a small window display the iteration number of a loop in a main sequence. I want it displayed separate from the OI.
I go to the TestStand pallette in LV. I tried using InitMonitor, GetMonitorTerminator, and GetPropertyValue (polymorphed to Number) and close Monitor from in a VI, then set that VI as the Module in the step of Main Sequnce with the Locals.i loop counter as the property value to display.
Problem is, apparently the TS VIs on the pallette weren't written in LV2010, and I get an error (Red circle with "!") and it wont display my VI.
So I saved the VI for Previous Version (8.0.1, 8.4, 8.6, 9, etc....), and then TS complains that a VI has to be wriiten in the same version as the RTE that TS is using )2010 in my case)and I get a different error
Or is there an easier way to display a loop counter independent of the OI??
Thanks!
Using TestStand as a sequencer in a LabVIEW application
To start off, this is what I would consider to be a "high level" question. I'm not looking for specifics but rather generalities.
I am mainly a LabVIEW developer. I'm working on an application that is going to need to allow the user to set up multiple different dynamic sequences... almost to the level of a scripting language. I looked in to several methods to code this myself, but it isn't trivial. Then, I started researching TestStand....
The way I imagine this working is that I will primarily control the hardware I/O, the graphical interface, etc with LabVIEW. I will write a simple API (in VI form) for some of the complex functions that the user will need to implement and they can set up their sequences in TestStand. Within my LabVIEW application they can select the sequence(s) to run, and in what order and then TestStand takes over and executes the sequence.
Which leads me to my questions: Is TestStand the way to go? Is this the right solution? Will it be simple enough, and can I learn the integration in the time allocated?
How to get name of step that is running in teststand
Hi,
I need to create an extra window to show the status of the UUT, the operator interface is not enough to show the details of 24 threads. So we decided to create another GUI that will be called at the beginning of the batch process model. The idea is to display status and step running at each batch in the GUI. We are using UI messages events to catch what is happening at execution, however I'm not able to get the step name from the sequence context when I catch UI message events.
Which do you recommend to get the status of the sequence runnning and catch the events once is test step is started and completed at each thread?
Thanks in advance for your help.
Jorge
What does 'An exception '{0}' occurred' mean - Error code 17234
I am running a TestStand sequence that calls another sequence in a new thread. This new thread has many checks for notifications posted by the origination thread to perform different actions. While debugging the main thread, specifically while debugging a .NET DLL call using the Visual Studio 2012 debugger, I get the atatched error code (17234) with no real description of the issue always at the same spot in the VS debugger. The VS DLL being debugged has no relation to the new thread that is causing the error. Can someone provide any insight as to what this error code means?