NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Teststand parallel model : Why new clone of reentrant VI is generated between each callback sequences?

I am trying to bring up a re-entrant LabVIEW module which should behave as below.

 

PreUUTLoop  - Initialization    - Open References for each test socket

PreUUT      - SetupPart         - Run something before UUT starts

MainSeq     - ProcessPart       - Run something while UUT runs

PostUUT     - CleanupPart       - Run something after UUT finishes

PostUUTLoop - Deinitalization   - Close References for each test socket

 

With 2x test sockets in parallel sequence, I notice that new VI is cloned for each callbacks in Teststand.  However the TestStand thread ID remains same throughout the runs whcih you can observer in the below screenshots of attached sequence & VI.   Why is new VI is cloned under the same thread IDs?  I expected same VI clone would be reused under same thread ID.

 

PreUUTLoop: 

Ajayvignesh_MV_2-1627552378731.png  Ajayvignesh_MV_5-1627552475009.png

 

PreUUT: 

Ajayvignesh_MV_1-1627552368056.png  Ajayvignesh_MV_3-1627552453399.png

 

MainSeq: 

Ajayvignesh_MV_8-1627552695247.png   Ajayvignesh_MV_6-1627552590560.png

 

PostUUT:

Ajayvignesh_MV_9-1627552725516.png  Ajayvignesh_MV_7-1627552594461.png 

 

PostUUTLoop:

Ajayvignesh_MV_11-1627552824349.png  Ajayvignesh_MV_10-1627552816767.png

 

Only 2 threads (ID 34 & 33) spawned between all callback sequences.  

However 12 clones of the VI spawned under the same thread viz.

3950003

3950004

3950005

3950006

3950007

3950008 

3950009

3950010

3950011

3950012

 

Why is new VI is cloned under the same thread IDs?  I expected same VI clone would be reused under same thread ID.

 

Attached sequence and re-entrant VI for reference. 

 

Download All
0 Kudos
Message 1 of 5
(309 Views)

Hi Ajay,

 

My understanding based on discussion with some NI TS R&D folks is that TS does not decide whether to create/reuse clones but rather just request LV for a reference, if the VI was configured to be re-entrant, LV just creates a clone and gives the references of clone to TS for use.

-Santhosh
Semiconductor Validation & Production Test
Soliton Technologies
NI CLD, CTD
LabVIEW + TestStand + TestStand Semiconductor Module (2013 - 2020)
NI STS for Mixed signal and RF
0 Kudos
Message 2 of 5
(286 Views)

good to know that Santhosh.! (How are you keeping?!)

 

I just noticed for even within MainSequence if I call the same VI again it creates a new clone.  I would say its completely an unexpected behavior that new VI keeps generated for same thread in TS.  I would need to go for a non-reentrant for TS interfacing VIs.

 

Regards,

Ajay.

Download All
0 Kudos
Message 3 of 5
(277 Views)

Hi Ajay, 

What is the version of TS are you using?

 

Anand Jain

NI

 

0 Kudos
Message 4 of 5
(265 Views)

Hi Anand

 

 I used TS 2017 & LV 2016 for those examples that I attached 

 

Regard

 Ajay 

0 Kudos
Message 5 of 5
(259 Views)