- Posted on: 2021-07-08
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:
The following detailed process is taken from our case study on BMS tester:
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.
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
- Low latency: The various tasks (or threads) must communicate through simple, non-blocking API.
- 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.