Jump to content


Photo
- - - - -

Teststand and Userinterface


  • Please log in to reply
19 replies to this topic

#1 Clio75

Clio75

    Very Active

  • Members
  • PipPipPip
  • 87 posts
  • Location:Norway, Sandefjord
  • Version:LabVIEW 2009
  • Since:2001

Posted 13 August 2009 - 06:02 PM

Hi,

I'm looking for information about how to have a user interface on the Teststand sequence.

I have a sequence that select the correct test based on the serial number(five first digits).
Based on this I like to call a user interface that can be there under the rest of the test. with the sequence running in the backend. and updating the frontend. When the test is finished, it close the user interface to get the red/green/yellow/blue Teststand popup box

I have tried looking on the internet, but not found anything like this.

If you have some experience/ tips or trick I can try please let me know.

Clio75
BR
Clio75
----------------------------------
LW 2010, TS 2010

#2 crelf

crelf

    I'm a LAVA, not a fighter.

  • V I Engineering, Inc.
  • 5,742 posts
  • Version:LabVIEW 2012
  • Since:1993

Posted 13 August 2009 - 06:30 PM

There are some that ship with TestStand (they're called "OI"s in TestStand, not "UI"s).

post-181-1170858537.png


#3 crossrulz

crossrulz

    Extremely Active

  • Members
  • PipPipPipPip
  • 252 posts
  • Location:Cincinnati, OH
  • Version:LabVIEW 2011
  • Since:2004

Posted 13 August 2009 - 06:33 PM

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.

#4 Clio75

Clio75

    Very Active

  • Members
  • PipPipPip
  • 87 posts
  • Location:Norway, Sandefjord
  • Version:LabVIEW 2009
  • Since:2001

Posted 13 August 2009 - 06:45 PM

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.


Is it possible to have a small example from you ?
Thanx
BR
Clio75
----------------------------------
LW 2010, TS 2010

#5 crossrulz

crossrulz

    Extremely Active

  • Members
  • PipPipPipPip
  • 252 posts
  • Location:Cincinnati, OH
  • Version:LabVIEW 2011
  • Since:2004

Posted 13 August 2009 - 06:57 PM

Is it possible to have a small example from you ?
Thanx


I'll try to strip one down for you. It'll take some time to get a chance to work on it though. Hopefully by the morning I'll have something for you.

#6 Bjarne Joergensen

Bjarne Joergensen

    Very Active

  • Members
  • PipPipPip
  • 88 posts
  • Version:LabVIEW 8.2
  • Since:1997

Posted 14 August 2009 - 12:43 PM

You can also look at this link: http://flexstand.eu/

/Bjarne

#7 crossrulz

crossrulz

    Extremely Active

  • Members
  • PipPipPipPip
  • 252 posts
  • Location:Cincinnati, OH
  • Version:LabVIEW 2011
  • Since:2004

Posted 14 August 2009 - 02:23 PM

Here is a majorly stripped down version of what I have been working on. I tried to leave enough for you to get the idea of what I'm doing. It is written in LV 8.6 and TestStand 4.1

Attached File  Monitor Example.zip   75.13K   758 downloads

#8 Clio75

Clio75

    Very Active

  • Members
  • PipPipPip
  • 87 posts
  • Location:Norway, Sandefjord
  • Version:LabVIEW 2009
  • Since:2001

Posted 17 August 2009 - 10:05 AM

I tried to leave enough for you to get the idea of what I'm doing. It is written in LV 8.6 and TestStand 4.1


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
BR
Clio75
----------------------------------
LW 2010, TS 2010

#9 crossrulz

crossrulz

    Extremely Active

  • Members
  • PipPipPipPip
  • 252 posts
  • Location:Cincinnati, OH
  • Version:LabVIEW 2011
  • Since:2004

Posted 17 August 2009 - 11:40 AM

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.

#10 Clio75

Clio75

    Very Active

  • Members
  • PipPipPip
  • 87 posts
  • Location:Norway, Sandefjord
  • Version:LabVIEW 2009
  • Since:2001

Posted 18 August 2009 - 07:53 AM

You send data to the monitor using the Monitor Queue.vi.


Test it and it worked.
Thanx for your time.
BR
Clio75
----------------------------------
LW 2010, TS 2010

#11 Clio75

Clio75

    Very Active

  • Members
  • PipPipPip
  • 87 posts
  • Location:Norway, Sandefjord
  • Version:LabVIEW 2009
  • Since:2001

Posted 18 August 2009 - 12:23 PM

Hi crossrulz :worshippy:

sorry for asking all this questions, but I really would like to how these are connected and working together.

I have made it work. I get the test in the lower window. But I don't understand why.
Do you have the time to give me the basic howto in using these queue?

Please advice
Thanx (again)

Edited by Clio75, 18 August 2009 - 12:47 PM.

BR
Clio75
----------------------------------
LW 2010, TS 2010

#12 crossrulz

crossrulz

    Extremely Active

  • Members
  • PipPipPipPip
  • 252 posts
  • Location:Cincinnati, OH
  • Version:LabVIEW 2011
  • Since:2004

Posted 18 August 2009 - 12:38 PM

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.

#13 Thang Nguyen

Thang Nguyen

    Very Active

  • Members
  • PipPipPip
  • 218 posts
  • Location:North Carolina
  • Version:LabVIEW 2010
  • Since:2006

Posted 23 September 2009 - 06:09 PM

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




Nothing is impossible, just do it!!!

#14 crossrulz

crossrulz

    Extremely Active

  • Members
  • PipPipPipPip
  • 252 posts
  • Location:Cincinnati, OH
  • Version:LabVIEW 2011
  • Since:2004

Posted 23 September 2009 - 06:45 PM

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.
sequence context.PNG

#15 Thang Nguyen

Thang Nguyen

    Very Active

  • Members
  • PipPipPip
  • 218 posts
  • Location:North Carolina
  • Version:LabVIEW 2010
  • Since:2006

Posted 23 September 2009 - 07:10 PM

Thank for super quick reply Posted Image . So could you please tell me how did you create the reference "Sequence Context in" in the LabVIEW? How to link it to TestStand?

I also just posted a question relating to TestStand in this topic:
http://lavag.org/top...tand-vi-server/
If you have time maybe you want to take a look at this.


Best regards,
Thang Nguyen

Edited by Thang Nguyen, 23 September 2009 - 07:12 PM.

Nothing is impossible, just do it!!!

#16 crossrulz

crossrulz

    Extremely Active

  • Members
  • PipPipPipPip
  • 252 posts
  • Location:Cincinnati, OH
  • Version:LabVIEW 2011
  • Since:2004

Posted 24 September 2009 - 01:01 PM

So could you please tell me how did you create the reference "Sequence Context in" in the LabVIEW? How to link it to TestStand?


I use the "TestStand - Get Property Value.vi", right click on the sequence context and choose create control. In newer versions of TestStand it is an ActiveX control. If you are using an older version (like 3.5), it is a separate control you can find under TestStand -> Legacy.

#17 kave

kave

    One hit wonder!

  • Members
  • 1 posts
  • Version:LabVIEW 2009
  • Since:2006

Posted 07 January 2010 - 11:54 AM

If anyone is looking for an Userinterface for TestStand, maybe this site would be a good place to start…
www.FlexStand.eu
FlexStand is a LabVIEW framework to easily create your own Operator Interface.
You won’t even have to worry about the TestStand API.

Thanks for a great forum
/kave

Edited by kave, 07 January 2010 - 11:56 AM.


#18 crelf

crelf

    I'm a LAVA, not a fighter.

  • V I Engineering, Inc.
  • 5,742 posts
  • Version:LabVIEW 2012
  • Since:1993

Posted 07 January 2010 - 08:23 PM

If anyone is looking for an Userinterface for TestStand, maybe this site would be a good place to start…

V I Engineering has a bunch of out-of-the-box operator interfaces (including 1-up and multi-up verbose and laconic OIs) - I don't think we've ever sold them as a separate product (they usually come bundled as part of our ATES product, or as part of a turn-key solution), but if anyone's interested please give me a yell. The OIs also come with a LabVIEW/TestStand Extension reuse package with a bunch of VIs that encapsulate the TestStand API if you want to modify the OIs or create your own.

Attached Thumbnails

  • ATES OI Example.gif

post-181-1170858537.png


#19 Clio75

Clio75

    Very Active

  • Members
  • PipPipPip
  • 87 posts
  • Location:Norway, Sandefjord
  • Version:LabVIEW 2009
  • Since:2001

Posted 05 February 2010 - 01:44 PM

V I Engineering has a bunch of out-of-the-box operator interfaces (including 1-up and multi-up verbose and laconic OIs) - I don't think we've ever sold them as a separate product (they usually come bundled as part of our ATES product, or as part of a turn-key solution), but if anyone's interested please give me a yell. The OIs also come with a LabVIEW/TestStand Extension reuse package with a bunch of VIs that encapsulate the TestStand API if you want to modify the OIs or create your own.


I like to have a look at this. :D
BR
Clio75
----------------------------------
LW 2010, TS 2010

#20 crelf

crelf

    I'm a LAVA, not a fighter.

  • V I Engineering, Inc.
  • 5,742 posts
  • Version:LabVIEW 2012
  • Since:1993

Posted 24 February 2010 - 08:01 PM

I like to have a look at this. Posted Image

Sorry for the late follow-up - I only just saw your post. I can schedule a 1-on-1 meeting with you if you're interested (PM me), but here's some general info on our ATES product platform:

Attached File  VIE ATES Overview.pdf   1.67MB   466 downloads

post-181-1170858537.png