Testing Multiple DUTs with Shared Code Module on a Semiconductor Test System

Updated Jun 27, 2018

Reported In


  • TestStand
  • NI Semiconductor Test System Software
  • LabVIEW


  • NI-DCPower
  • NI-DAQmx


  • Semiconductor Test System (STS)

Issue Details

I have multiple DUTs that I am testing simultaneously using the TestStand Batch Process Model with LabVIEW code modules on a Semiconductor Test System (STS), so that results from each DUT are logged on separate reports. I am not using the TestStand Semiconductor Module (TSM).

Each channel on my hardware is connected to a different DUT, and I am using the same code module to test each of the DUTs. How do I access the same session/task on my hardware for all of my DUTs?


This is based on the particular hardware you are using:
  • For example,¬†each channel on an SMU can be configured as a separate NI-DCPower session.
    1. You would create a separate session for each DUT/channel you are testing by passing the session information from TestStand to the LabVIEW code module.
  • However, for DAQ devices, typically you can only have one NI-DAQmx Task for each device.
    1. To get around this, you would create a code module that acquires data from every channel on the device in one task.
    2. When you reach the LabVIEW code module step that accesses this code, only one thread will run it and the others will skip the step (using the Synchronization step type).
    3. This one thread will then have another step that gathers the output data from all the channels and places that information into a TestStand variable.
    4. The other threads can read from this variable and log the data to their respective reports using the Additional Results step type.

Additional Information

Other types of devices may have varying methods based on their code/driver architecture.


Not Helpful