Symplify Now! is released. Run tests Today


Why start your ATS from scratch? Is your testing need really different than any other?

A majority of all test systems require very similar software features despite having different purposes and requirements. In this blog post, we will discuss about those similarities and how it can be simple to complete those typical tasks with the proper software foundation.

1. Interface with multiple instruments

The computer needs to talk to multiple pieces of equipment over different buses such as USB or RS232 but often at different frequencies. Therefore, the computer needs to be able to perform code asynchronously, and pass measurements and setpoints between multiple execution threads.

2. Perform closed loop control

This may be a simple PID control or a complex algorithm based realistic models. The computer reads inputs from one or many instruments and generates a new control setpoints for one or many other instruments:

Closed loop control simple model
Simple representation of a closed loop control logic.

The following detailed process is taken from our case study on BMS tester:

Complete modeling process for a BMS tester
Parallel processing of models with multiple inputs and outputs.

When multiple models are used in a given system, those may be going at different speeds which matches the communication rate of the specific instruments.

3. Executing a test profile and recording results

The test profile may be limited to validating a handful of inputs and outputs or it can cover a complete regression testing for an embedded controller. The test executive is responsible for orchestrating those tests and managing the transitions based on the results. NI TestStand is a good option but others are better at handling the closed-loop controls within a programming environment such as LabVIEW.

Five ATS that share same codebase
Five seemingly different application that share the same code

4. Visualize progress and results

The information acquired by the control software must communicate the end result with an operator. Showing more information on graphs helps engineers understand how a device failed a given test. During the development phase, being able to monitor the changes in each measurement over time greatly accelerates the work.

So what is required for robustness and flexibility?

  • Multithreading: The system needs to be able to perform many tasks at different rates

    Parallel processing of multiple tasks with different priorities
    Parallel processing and multi-threading based on each process’ priority
  • Low latency: The various tasks (or threads) must communicate through simple, non-blocking API.

    High performance CVT with low latency
    High performance communication prevents most bottlenecks.
  • Well divided code
    Pieces of code can be reused from project to project because they do not depend on the requirements from a specific ATS project.

With a good middle communication layer, a complex test system can be developed concurrently by a large team and produce highly predictable results. Including all the features in one environment (Drivers, Models, Test executive, Graphs) keeps communication simpler so synchronization and long term maintenance are easier.

Let’s not re-invent the wheel…

By properly addressing those similar requirements, a test operating system like Symplify™ offering a proven performance with a wide library of drivers will help release your ATS on time and on budget! Try it out today to shave months of development on your next project.

Synovus Resources

Fill the form below to access all our resources. We won't ask you again later.

  • By submitting this form you allow us to send you monthly updates on our services and news.