Instrument control software tools range from ready-to-run programs to fully customizable application development environments. It’s easy to make an application software decision based on your current system development needs, but it’s important to consider how this tool can scale and solve problems as your system matures.
Ready-to-run software tools often have set functionality and are designed to perform specific measurement or test routines, usually with a limited subset of instrument options. This type of software tool is a good choice for your system if it meets the needs of your current development and you do not intend to modify or extend your system’s functionality. The major trade-off is that ready-to-run application software does not always easily scale to incorporate new functionality into an existing instrument control system.
To take advantage of an application software tool that meets the needs of your current system and scales over time, you should choose an application development environment in which you can create custom applications. Application development environments are extremely flexible in the sense that you can integrate instrument drivers into the software and develop a custom user interface (UI) and code to perform the exact measurements or test routines that you need. The only trade-off is that you need to spend time up front to learn the programming language and develop the applications yourself. This may seem like a large time commitment, but modern day development environments provide a variety of tools to help you get started. These include online and live training, getting started examples, code generating assistants, community forums, as well as help from applications engineers or general support teams.
The time it takes to learn a new piece of software is different for everyone. It depends on the type of software tool you choose and/or the language you use to program your instrument control applications.
Ready-to-run software tools are the easiest and fastest to learn because they have abstracted the programming details. When deciding among custom applications for your system, you should ensure that you have proper resources to help you quickly learn the tool. Some of these resources include user manuals, help information, online communities, and support forums.
Application development environments often take longer to learn, but you spend most of that time learning the language that is used within the environment to program your applications. If you can find an application development environment that uses a language you are already know, then you can definitely reduce the time required to become a proficient programmer. Many environments can integrate with and even compile several different languages within a single framework.
When evaluating application development environments that require you learn a new language, you should consider those that give you the ability to focus on the engineering problem at hand, rather than the low-level details of a programming language. Text-based languages, such as ANSI C/C++, are often more challenging to learn because of all the complex grammar and syntax rules that must be adhered to in order to successfully compile and run the code. Graphical system design software, such as NI LabVIEW, are often easier to learn because the implementation is more intuitive and is visually consistent to the way an engineer thinks.
ANSI C Code
You should also consider the getting started resources that are provided with the application software. These resources can help you get up and running with a new software tool in a shorter amount of time. Here are a few helpful getting started resources for any software tool:
Too often, developers assume the existence of a device driver is sufficient enough for integrating their measurement device into an instrument control system. They don’t always consider how this driver integrates with the application software they are using to develop the system. To successfully integrate your entire system, it’s important that you choose a driver and software tool that are compatible with one another.
Instrument control systems often require integration with system and data management software to perform postprocessing, analysis, or data storage. Be certain that the application software you choose provides an easy way to manage the data after is has been acquired.
Analysis is common in a measurement system and most application software designed for data acquisition provides these routines through a signal manipulation tool or API. You want to ensure that the analysis routines needed for your system are provided within the application software, or else you have to face the added challenge of learning two environments—one for acquisition and one for analysis—as well as the pain point of shuffling data between them.
Visualization and data storage often go hand in hand within an instrument control system. The application software that you choose should have an easy way to visualize the data you acquire, whether it’s through a predefined UI or through customizable UI controls, so that you can display it to a user. Additionally, the application software should have a simple way of integrating with system and data management software to store large amounts of data or numerous tests. You frequently need to store data for manipulation at a later date, so your application software should have a variety of tools to accommodate a wide range of storage and sharing options. This gives you the added flexibility of postprocessing data and generating standardized professional reports for collaboration.
The ecosystem that surrounds the application software is just as important as the software tool itself. A healthy ecosystem provides a wealth of resources that make it easy for you to learn a new software tool and guide you with feedback as you develop your own applications. You should take time to browse a community’s forums and determine how active it is and the kind of information being shared (code, discussions, tips, and tricks). You want a community that is heavy with activity and includes shared information that is closely aligned with the problems you are solving.
Additionally, an application software’s ecosystem of users often drives future development. Check to see if the organization behind the application software is responsive to its community’s needs and whether the user base can provide input that guides future features of the software.
The last thing to consider when choosing application software for your instrument control system does not come in the form of formal documentation or feature specifications, but rather word of mouth. Browse through case studies where individuals were successful with the application software, or talk to those who have used the software tool in their own projects. Getting perspective from those outside the company in which the software is developed gives you a true indication of the history of stability and success. Choosing application software with proven stability and longevity helps ensure the reuse and scalability of your system such that your environment of choice doesn’t go obsolete a short time into using your system.