Implementing interrupt-like funtionality in the process model

My application requires testing high-power semiconductor devices.  These devices are water-cooled to keep from exceeding operational temperatures.  I am considering developing my process model to handle the water-cooling which entails monitoring water flow, temperature, and pressure and, if any of these parameters leaves an acceptable range, throw an error the test sequence.
I know that TS can run a sequence in the process model after each step in the sequence file but I don't think that it will be acceptable if my step is longer than it takes for a fault condition to be generated.  For that reason, I am trying to understand if there is a means to terminate the test sequence if any fault in the process model occurs.
What is the best way to implement this kind of behavior?

Hi kc64,
You are right, editing the process model to check the current state your system after each step would not be the best approach.
I would recommend running a separate sequence in a new thread within your execution.  This standalone thread would check the state of your system and throw the error you desire upon your system going out of desirable ranges. This will run concurrently during your entire test.
I hope this helps!
Message Edited by evanp on 11-09-2007 01:16 PM
Evan Prothro
RF Systems Engineer | NI

Similar Messages

  • Finding the name of my teststand sequence in the process model

    I would like to be able to find the file path and name of a teststand sequence in the process model. I have created a simple vi which will display this information when run in a sequence. If i insert the vi into the process model, the file path and name returned is that of the process model and not the sequence under exectution. Is there a way of extracting this information in the process model?

    Davepar -
    If you are executing in the process model you can use the following as a lookup string if you are in the root context "RunState.ProcessModelClient.Path" or "RunState.Root.RunState.ProcessModelClient.Path" if you are not in the root context.
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

  • How to load the sequence file from the process model?

    Does anyone have an example process model that loads a sequence file? The out-of-the-box process models assume the sequence file is already loaded. I want the process model to identify the UUT type and load the appropriate sequence file based on that.

    Mark,
    A better solution to your question can be accomplised if you have TestStand 2.0.
    Within the entry point of a process modle you can set the client sequence using Execution.ClientFile(). This is a new method of TestStand 2.0. It was specifically designed so that you could dynamically set the client sequence within the process model.
    Currently the entry points in the default process models (i.e. Test UUTs and Single Pass) are configured to Show Entry Point When Client File Window is Active. This means that you must open and have active a client sequence file before you can execute one of the entry point. You probably do not want this implementation if you are going to set the client file during the entry point execution. To change this you will need to go the sequence properties of your entry point (while the sequence is open select Edit>>Sequence Properties), switch to the Model tab of the entry point's property dialog box, and enable Show Entry Point For All Windows. The entry point will then appear whether or not you have an open sequence file active.
    You will need to add at least 3 steps to your entry point sequence that all use the ActiveX Automation Adapter. Remember that MUST disable Record Results for any step you add to the process model. The 3 steps will perform the following tasks:
    1) Obtains a sequence file reference of the file that you want to be the client sequence file. You will need to use the Engine.GetSequenceFileEx method. You will need a local variable (ActiveX data type) in which to store the sequence file reference.
    2) Set the client sequence file using the Execution.ClientFile property.
    3) Close the reference to the client sequence file in the Cleanup step group of your entry point sequence using Engine.ReleaseSequenceFileEx
    I am attaching a SequenceModel.seq file (the default process model in TestStand 2.0) in which we have modified the TestUUTs entry point as described above.
    Note that you'll be prompted to enter the path to your client sequence file. This is a message popup that you can delete and it was added for your review only.
    Good luck in your project,
    Azucena Perez
    National Instruments
    Attachments:
    sequentialmodel.seq ‏164 KB

  • Got the new MAcBook Air with Lion, and would like to sell the previous model. How do I delete everything?

    Hi guys.
    I got the all new MacBook Air 11" with Lion yesterday, and would like to sell the previous model (it was with SnowLeopard).
    What do I have to do to delete everything, including my account? Do I need the SuperDrive or is it possibile without one?
    Thanks!

    Erase and Install OSX Snow Leopard http://support.apple.com/kb/HT3910
    And yes, you need the SuperDrive for this.
    Stefan

  • "-2147417851" during "Get Database Options" of the process model

    Hi guys, I am trying to find the cause for this error message, would greatly appreciate if someone can advise me on what can cause this.
    The exact step where this error occured is shown in the screenshot attached.
    Also, the only thing that I know about this step is it "read database options" from a location on disk.
    Does anyone know what file it reads from, and perhaps, which part of the file?
    Cheers!!
    Attachments:
    20-09-2011 5-21-35 p.m..JPG ‏391 KB

    Simon -
    The "Read Database Option - Read Options" step calls the ReadDatabaseOptions method which takes two parameters (Parameters.DatabaseOptions and Parameters.CfgDir).
    Parameters.CfgDir is simply a string. But you'll notice that Parameters.DatabaseOptions is a container (named type: DatabaseOptions). Most likely what is happening here is that by using the TestStand 2.0.1 process model, you've carried over the old DatabaseOptions type definition and are now passing it to the new TestStand Database Logging server's ReadDatabaseOptions method, which expects the DatabaseOptions container to have a boolean field called UseTransactionProcessing.
    I recommend upgrading the DatabaseOptions type to the TestStand 2010 SP1 version. More so, I recommend porting your TestStand 2.0.1 process model customizations to the TestStand 2010 SP1 process model to ensure you avoid encountering other situations similar to this.
    Hope this helps!
    Manooch H.
    National Instruments

  • Is there some type of state chart or flow chart which describes the process model order of execution?

    One of my customers asked me this question...
    I'm have an issue with a change in the execution order in TestStand 4.1.1.  [he has upgraded from 3.1 to 4.1.1]  It looks like ProcessModelPreStep runs earlier in 4.1.1 than it does in 3.1.  This causes our model to error out because some required variables haven't been defined when it runs.  I wish there was a big flow chart or state diagram for TestStand.  Maybe there is and I don't know where to look?
    Scott Rogers
    Sr. DSM
    Western NY
    Solved!
    Go to Solution.

    Starting with TS 4.1, there is a flow diagram that can be displayed for a selected sequence...
    Select "View -> Sequence File -> Display File Hierarchy"
    Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
    If you don't hate time zones, you're not a real programmer.
    "You are what you don't automate"
    Inplaceness is synonymous with insidiousness

  • Is it possible to implement compression like gzip with the labview web server?

    I am currently implementing a web page to be served by the NI sbRIO 9636.  I was able to get html, css, and js served just fine.  I am curious if there is a way to implement gzip compression to help with page load times?
    Solved!
    Go to Solution.

    Ok, a couple points:
    I have heard it discussed that you can in theory install a webserver on the Linux-based cRIO. But there is a great big caveat: I have never done it, or spoken to anyone who did so I don't know how well it would actually work.
    Given the inexpensive price of hardware these days a safer alternative would be to include a separate computer the sole function of which is to host the web interface. There are many small computers that would be ideal for this application -- many of which were originally designed to work in home-theater applications.
    The point of my post was that there are certain limitations in the LV webserver that you may have to find your way around.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Would like to automate the process of hyperlinking pdf documents

    I've been tasked with finding a solution to the following problem:
    A need has arisen where I work where large PDF files (commonly > 2000 pages) need to be hyper-linked. The PDF files are in fact Brief's of Evidence (prosecution files) and are generally in a particular format and order. Generally, the order is as follows: 1. Various index documents, 2. Witness statements and 3. Exhibit documents. Usually there are many more exhibit documents than there are witness statements.
    In each witness statement, the witness may refer to an many exhibit documents and it's this reference that needs to be hyper-linked to the particular exhibit document (located many pages away).   As a standard each exhibit is allocated an exhibit number, commencing at 1 but displayed as "0001". The filename of the individual exhibit is accordingly named, "0001.pdf" Using Adobe Professional (version 7) these files are merged and as a consequence bookmarks are automatically created.
    What tools from Adobe are available that will assist with programmatically or automatically scanning (checking) each witness statement (a pdf document) and where relevant predetermined (however that's done or achieved) areas (exhibit references) are required to be hyperlinked to their respective document many pages away.
    Is this doable?   Are there developer kits available?
    Any advice appreciated.
    Regards,
    Steven Taylor

    Acrobat can't do what you want out of the box.  It needs a plug-in that can do that.  Have a look at this third party plug-in for Acrobat:  AutoBookmark™ Plug-in for Adobe® Acrobat® / Create and Manage PDF Bookmarks, Links and Destinations   It has a trial version so you can test it to see if it meets your needs.

  • How to add process model results to the sequence file results?

    After my sequence file runs, I would like to add some additional results using the process model. I need to log my equipment list which is obtained by the process model. Alternatively, I could add a sub-sequence to the end of each of my sequence files for doing this, but that would create maintenance problems if I ever needed to change the way equipment is logged. Does anyone know a way to (1) append process model results to the sequence file results or (2) force each client sequence file to call a sub-sequence before returning to the process model.

    Mark -
    The report and database process model routines expect a single subsequence step result that invoked MainSequence. This result contains the results from the sequence call.
    In TestStand after the process model root sequence call to MainSequence is performed, the property Locals.ResultList[0] is the MainSequence result. The subproperty Locals.ResultList[0].TS.SequenceCall.ResultList contains the results from the steps in MainSequence.
    One option is to create a subsequence call in the process model that logs the equipment info in the results for its steps. The call to the subsequence should not be checked to record results.
    This subsequence would have a parameter called ResultList. The Result type does not exist in the Insert menu, so you can only create the parameter by copying the empty Locals.ResultList and pasting it in the parameters. Then change its type from By Value to By Reference.
    In the setup of the subsequence, add the following steps which do not record results. These steps rename the Locals.ResultList parameter to ResultListOrig, and then create a new Locals.ResultList alias property that really references Parameters.ResultList. This way any additions to the Locals.ResultList really append to the Parameter.ResultList.
    Setup
    Step: "Rename Locals.ResultList"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Set PropertyObject.Name = "ResultListORIG"
    Record Results: False
    Step: "Create Alias in Locals"
    StepType, Adapter: Actioin, Active-X
    Description:
    Action, Call PropertyObject.SetPropertyObject ("ResultList",
    0x201 ' Not Owning and Create, Parameters.ResultList)
    Record Results: False
    In the Main steps, you add your equipment info steps which record results.
    In the Cleanup steps you undo the steps performed in Setup.
    Cleanup
    Step: "Delete Alias in Locals"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Call PropertyObject.DeleteSubProperty ("ResultList",
    0x400 ' Refer to Alias)
    Record Results: False
    Step: "Rename Locals.ResultListORIG"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Set PropertyObject.Name = "ResultList"
    Record Results: False
    I have attached a TS 2.0 version of SequentialModel.Seq that has a AppendResults subsequence in it and this is invoked after MainSequence in Single Pass entry point.
    Hope this helps...
    Scott Richardson (NI)
    Scott Richardson
    National Instruments
    Attachments:
    SequentialModel.Seq ‏174 KB

  • How to invoke the Client Sequence Clearup process in the Sequencial​Model?

    Hi,
    I want to know how to directly call the Client Sequence Clearup in the SequencialModel?
    I don't wait to modify the main squence files, because many of the clearups in sequence files are different. I want realize it by modifying SequencialModel file.
    there are the problem I suffered:
    I have added the some process in clearup like close port, close com, but when I terminate the program, clearup not be executed, I need to modify the SequentialMode to realize that it will jump to the Client main sequence to execute the clearup first when I terminate the process, then execute the other clear process in the sequencialmodel process.
    please help,
    thanks,
    Ivan

    Hi,
    I also faced the same problem in my project. I am not sure whether there are any direct methods, but i achieved it through a round about method.
    1. Create a Boolean station global
    2. Set it to True when you exit the client sequence – as a Last Step in the client sequence clean up tab
    3. Modify the process model to continue the clean up only after the Boolean value is True - may be this should be the first step in the process model's clean up tab
    4. Don’t forget to initialize the Boolean (Set to false) when starting the test
    Hope it helps
    Thanks,
    Sasi

  • How do I make a process model sequence (not entry point) available to the test sequence?

    I have sequences that update process model data in the process model sequence that I would like to make public so that I can call this sequence from the test sequence.
    I am using TS2.
    I know that I could insert a sequence call and when specifying the module simply select the process model sequence file. Is there a more direct way of specifying the process model sequence file? Can I hide sequences in the process model so that they can't be called by the test sequence?Message Edited by Francey on 05-19-2005 06:38 AM

    When creating a custom step type, you can check "Designate an adapter", and use the Sequence Call adapter. If you would like to make the user unable to change this property, you can disable the "Can Specify Module" property on the "Disable Properties" page.
    Warning: If you ever want to change the parameters or the sequence call you are making for all steps, you must load ALL of the sequences that use this step, check the "apply changes in this dialog to all loaded steps of this type" box when you make the changes. This means that you should be very careful to make sure you have your step type designed properly before you begin using instances of it. The reason this is the case, is that the module is a property for each instance of the step, rather than the step type. We are simply giving a default value. By disabling the specify module dialog, we are preventing the user from being able to change from the default.
    Allen P
    NI

  • Secondary Process Model

    The TestStand Reference Manual states on page A-4:
    "In addition to using a primary, or parent, process model file, you can use a secondary, or child, process model file to encapsulate specific functionality, such as report generation."
    A "secondary process model" file is also mentioned on page 10-3:
    "A primary process model file can directly call model callback sequences in a secondary process model file. At run time, if the client sequence file of the primary sequence file implements a callback defined in the secondary process model file, TestStand invokes the callback sequence in the client sequence file, even if the primary process model file does not define the callback. You must add a copy of the callback sequence to the primary model file for the callback to appear in the Sequence File Callbacks dialog box for the client sequence file."
    I cannot find any additional information on the secondary process model.
    Can anyone explain how a secondary process model would be used?
    Are there any examples using a secondary process model?
    Thanks!
    CLA, CTA
    Solved!
    Go to Solution.

    1. How does one create/designate a secondary/child process model?
    It appears this is done by creation of a callback sequence in a "child" sequence file AND the "parent sequence file".  Is this correct?
    To create a process model in general you would open a sequence file and go to Edit>>Sequence File Properties.  Then on the Advanced tab change the Type to Model.  For it to become a secondary/child process model you would make a sequence call to it from the primary process model.  For instance the SequentialModel.seq at one point makes a call to ProcessOTFStepResult in either of the Engine callbacks in there.  Then the ProcessOTFStepResult sequence makes a call to PutOneResultInReport (if you are using the reportgen_txt.seq).  Then the PutOneResultInReport sequence makes a call to ModifyReportEntry (which is a callback).  However, if I have a client sequence file I would like to intercept that result and do some modifications.  So I would override that callback.  But since ProcessOTFStepResult and PutOneResultInReport are not in the process model there needs to be a mechanism for me to override that from the client.  This is because reportgen_txt.seq has different behavior than reportgen_html.seq or reportgen_xml.seq.  So it doesn't make sense to put everything in the process model.  Otherwise, your PM would be ridiculously large.  But you also need to make a copy of the callback in the PM so the client can see it.
    2. Is the parent sequence file callback simply acting as a pointer to the child sequence file callback?  Yes and No.  It depends on if it's invoked in the secondary PM or in the primary PM.
    3. How many levels of "child process models" can one create?  Is it possible to create a "third process model"? I just tested this out and it looks like you can.  But you do not have to put the callback in your secondary one.  Just the third layer and primary PM. 
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Best way to modify Sequential Process Model for report generation.

    I am using the Sequential Process Model in my application and the TestStand Reference Manual, (Figure A-1), clearly shows the following processing sequence:
    ...<part removed>
        Call the Test Sequence
        Display the UUT results
        Generate a Report
        Log Result to a Database
    ...<more removed>
    I want to generate the report BEFORE displaying the results to the operator, or at a minimum, I want to generate the report in parallel with displaying the results to the operator.  Currently, the problem I have is that when the test is done I have some automated scripts that take the data file and do some statistical processing on it, but the way the Sequential Process Model is set up, the test might finish but until the operator acknowledges the PASS/FAIL results display, the resulting file is never created.  It could be overnight, over the weekend, or several days before an operator comes back and says, "Oh that last test finished, I guess I can press the OK button!", but until they do, I get no data.  So I want the report generated no matter what, and right after the test finishes.
    Any ideas as to how that might be best accomplished?
    Thanks a billion -  Ski (noob)

    Ray,
    Is that new in 4.2 that the engine won't call a callback with nothing in it?  I just did it and it seemed to work fine.  I'm using 4.1.1 though.
    Ski,
    Maybe there is a better solution for what you want.  Are you using the SequentialModel?  What version of TS do you use?  Why does the report have to be written before the pass/fail banner displays?  The pass/fail banner gets displayed in the PostUUT callback.  Like Ray said if you just put that in your client sequence you won't see the banners.  However, I'm assuming there is more to this than just that.  I'm assuming you want to see the report because of your external analyzer that is gathering the statistical data.  And then based on that data you want to allow the user other options.  Is this correct? 
    If so then I would override the PostUUT callback and then use a different callback (possible the ProcessCleanup callback) to displaly the banners.  You could even do this without modifying the process model (which I always try to avoid).  Just override both the PostUUT and ProcessCleanup callbacks.  And then put code in the ProcessCleanup to behave like you need.
    Or if you want you can modify the process model and create a new callback lower in the process model.  Then have that new one do the post report analysis.
    Just some thoughts.
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • How to release process model sequence file object?

    Calling engine's method GetStationModelSequenceFile we get the reference to the process model sequence file object. According to TestStand Help, you should "Release this reference when you are done using it." The question is: how do you release it? Call engine's method ReleaseSequenceFileEx passing the reference to the model sequence file gotten from GetStationModelSequenceFile won't work, it returns FALSE which means the sequence file can't be released. Similar problems exist with methods SequenceFile.GetModelSequenceFile, Execution.GetModelSequenceFile. My aplication is written in VB. Using the statement like
    Set modelSequenceFile = Nothing also does not solve the problem.  I want to get some information of process model, such as version number, so I call those API functions in my code, which was developed under TestStand 3.1. I post this question because when I ran my application with TestStand 3.5 or 4.0 beta, I got the warning dialog when loading a sequence file and then closing the application. The dialog listed all the unreleased objects which I figured out is due to that the process model file was not released. Because message in the dialog is as following:
    The following top-level objects were not released:
            Sequences [1 object(s) not released]
                Sequence #1:
                    Name: Test UUTs
            Type Definitions [43 object(s) not released]
                Type Definition #1:
                    Name: TimeDetails
                Type Definition #2:
                    Name: ReportOptions
    Of course there are more in the list, but the sequence file loaded into the application is released correctly by calling engine's method ReleaseSequenceFileEx, so it does not appear in the list.
    Any help will be greatly appreciated.

    Here are what I did after launch the operator interface:
    1) Call Engine.GetSequenceFileEx to get a reference to a sequence file.
    2) Display steps of MainSequence of the sequence file in GUI.
    3) Call Engine.GetStationModelSequenceFile to get a reference to the station process model sequence file. The variable used to save the reference of process model sequence file is modelSequenceFile.
    4) Loop through all the sequences in process model sequence file, get the references of entrypoint sequences in the process model and put them in a container (VB Collection).
    At this point,
    Calling modelSequenceFile.CanUnload returns TRUE
    Calling modelSequenceFile.IsExecuting returns FALSE
    Calling Engine.ReleaseSequenceFileEx(modelSequenceFile, ReleaseSeqFile_UnloadFile) returns FALSE
    There is no other loaded process model sequence file reference at this point.

  • Can I desynchronize one station with batch process model?

    Hi,
    My project has 5 stations run test in parallel. I decide to use batch process model since I want them to start and stop together. Beside start and stop, I have some certain part in the test sequence need to sync together. But in 5 stations, I want one station work without sync at these steps. I tried using batch synchronize with precondition but it looks like other stations still wait for the one I skip the sync. My another option is using rendervous with number of parallel thread is total - 1. I test and this works. But I still want to know if I can use batch synchronize step or not because this offer the start sync and exit sync feature.
    Thank you!
    Solved!
    Go to Solution.

    NTT wrote:
    Doug,
    Thanks for your answer.
    I want to have something happens parallel with other threads but without affect by batch sync steps. I have multiple stations working parallel in assembly line. They are sync because of pick and place. But I want to have one process works as station manager who keep track of UUT between station and other environment condition like pressure, temperature.
    Thang
    Generally, the intent of the TestSockets in the process models is that they will have a 1 to 1 correspondence to UUTs, does your 5th socket correspond to a UUT? In otherwords are there 5 UUTs under test at one time? UUTs often need things like report generation or database logging. Does your 5th socket require report generation? If not perhaps this 5th socket is really more of a utility thread and thus creating a new thread or execution at runtime makes sense for it. If your 5th socket instead does really correspond to a UUT that is being tested in parallel enitrely separately from the other UUTs then perhaps you should start up a new execution for that socket using the sequential model and just have that running at the same time as your other sockets are running with the batch model.
    So it really depends on what you are using that 5th station/thread for as to what approach would likely work best.
    Hope this helps,
    -Doug

Maybe you are looking for

  • Windows 8.1 Computer not recognizing iPhone 5 and iTunes not opening

    So i've been having these issues persist since I updated to iOS7 in September. Computer is a MSI GT60 2OD-026US running windows 8, now 8.1. How this all started in September: 1. Download iTunes and it sees iPhone, update to iOS7 2. Everything is all

  • Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with re

    Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with reddish cast and loss of detail System: Windows 7 Adobe CS5 Printer: Epson Stylus Photo 1400 Paper: Inkjet matte presentation paper with slight luster I

  • Odd problem with display in 9.2.2

    Hey, I just bought an older Apple lcd display (A1038). I use it with a G4 A/V tower. This Apple cinema display works great at the higher resolutions in OS X (10.2.8) and only works at the lowest resolution (640X480 - no other choices given)) in OS 9.

  • Error Trapping

    Using Forms 6i Client/Server... Does anyone have a generic error handling routine for Forms? I want to trap Forms and DB error messages in on-error/on-message triggers to display more user-friendly messages. I also want to retain message bultins in t

  • How to speed up Log and Transfer in FCP 7.0 of Canon 7D footage on my Macbook

    Hey there, I'm using Final Cut Pro 7.0 and the Log and Transfer of my Canon 7D footage is taking forever. I have both the Canon XF MPEG2 plugin and the Canon EOS Movie plugin. Any suggestions? Cheers!