Do your homework: Develop a control system design checklist

Involve the entire development team in control system architecture and technology decisions. This three-part checklist helps engineers get from concept to application development, reduce development headaches, and accelerate the design cycle.

12/26/2011


Intense global competition is putting pressure on engineers to deliver systems with higher throughput, reduced operating cost, and more features that improve productivity, increase efficiency, and differentiate their systems from the competition. These systems cannot be restricted to the programming of one device or even one type of device, but rather these systems have multiple hardware target types, communication methods, and development tool options that impact the effectiveness of the programmer.

Through coupling NI LabVIEW system design software with modular NI RIO hardware, an engineer can use one tool to program a family of devices based on the same underlying hardware architecture. Courtesy: National Instruments

Because of this complexity the entire development team needs to be involved in the up-front system level architecture and technology decisions. This may seem like a daunting task for the software engineer, but below are three stages to help engineers get from concept proposal to application development that will reduce their development headaches and accelerate their design cycle.

1. Choose your technology and platform wisely

In this beginning stage, a requirements document is translated into technology selection. Traditionally, this selection has been the domain of the hardware engineer, but it is important to be involved as the ease of implementation for a feature set depends on the technology selected. This includes the selection of different technology for a temperature versus an unmanned vehicle control system.

A good starting point for technology selection is execution speed. If control loop rates are needed on the order of hertz or slower, a general purpose operating system such as Microsoft Windows running on a microprocessor is a good starting point. For execution on the order of low kilohertz, a real-time operating system running on a microprocessor is a good starting point. And for even faster loop rates, the hardware timing ability of FPGAs (field programmable gate arrays) are warranted. Other capabilities that will impact the technology adopted include: system reliability, user interface or human machine interface (HMI) requirements, and the ecosystem of existing code and systems. Since different parts of the system may benefit from different technologies, it is not uncommon to have a heterogeneous system based on a number of types of hardware targets.

To simplify this technology selection process and help to future-proof the system, engineers can adopt a modular hardware platform with a standard base architecture. (For example, National Instruments offers a Reconfigurable I/O (RIO) hardware platform that includes a floating-point microprocessor, reconfigurable FPGA, and modular I/O in a variety of form factors.)

Understanding the benefits and drawbacks of each technology will help with the process of mapping the control problem to the appropriate technologies or adopting a modular hardware platform to future-proof the system.

Checklist for control system technology and platform

  • What control loop rates are needed?
  • How reliable does this application need to be?
  • How will users interact with this system?
  • Can a modular hardware platform be used to make use of future technologies?

2. Lay out your system communication architecture

After working with the hardware engineering team to determine the devices that will make it possible to implement software requirements, the next step is to discuss the communication method between devices. Many new projects are building onto existing systems, so there may not be as much flexibility in this decision, but when designing a new communication topology it should be open. Open communication technologies that are sponsored by multiple organizations, such as the OPC Unified Architecture (UA), ensure that there is no need to commit to a single, potentially proprietary communication scheme. Also, by selecting an open communication protocol there is a reduced risk of being limited in the feature set due to availability of hardware and software support for a proprietary protocol.

Checklist for system communication architecture

  • What control loop rates are needed?
  • How reliable does this application need to be?
  • How will users interact with this system?
  • Can a modular hardware platform be used to make use of future technologies?
  • Is there a need to connect to existing hardware or enterprise systems?

3. Select software development tools

For the software programmer, the ordering of these steps may seem counterintuitive since the application development tools selection is at the end. Normally engineers adopt a certain programming tool that is used as an assumed part of every project. Organizations are often resistant to changing software tools as this comes with up-front investments in new product and training. Without a doubt, these investments should be part of the decision-making process for the project, but for large control systems the implementation and maintenance costs when using one or more development tools should also be considered.

Ideally, for these systems a single programming tool can be used to develop, debug, and deploy the applications required for all of the control logic, motion control, SCADA, and HMI. These tools, called system design tools, combine all of the necessary functionality into one development tool. System design tools are able to offer this capability by integrating with a standard hardware and operating system platform. In doing so they are able to abstract the end target from the programmer, making the code device and operating system agnostic. The benefit of a system design tool when coupled with a modular hardware platform is that it offers flexibility for the programmer to decide on which hardware device its application should execute.

  • Checklist for software development tools
  • What control loop rates are needed?
  • How reliable does this application need to be?
  • How will users interact with this system?
  • Can a modular hardware platform be used to make use of future technologies?
  • Is there a need to connect to existing hardware or enterprise systems?
  • Based on the hardware targets, what development tool(s) are necessary?
  • Does it make sense to use a system design tool to make the code agnostic to an operating system and/or hardware target?
  • What is the overall cost versus benefit of using the proposed software development tool(s) to implement the control system?

At this point, once the homework has been completed up-front, it is possible to solely focus on implementing requirements using software development best practices, rather than worrying about how to bridge gaps between the different tools, devices, and technologies needed to meet the needs of the control system.

Summary: Control system design checklist

1. Choose control system technology and platform

  • What control loop rates are needed?
  • How reliable does this application need to be?
  • How will users interact with this system?
  • Can a modular hardware platform be used to make use of future technologies?

2. Lay out system communication architecture

  • What control loop rates are needed?
  • How reliable does this application need to be?
  • How will users interact with this system?
  • Can a modular hardware platform be used to make use of future technologies?
  • Is there a need to connect to existing hardware or enterprise systems?

3. Select software development tools

  • What control loop rates are needed?
  • How reliable does this application need to be?
  • How will users interact with this system?
  • Can a modular hardware platform be used to make use of future technologies?
  • Is there a need to connect to existing hardware or enterprise systems?
  • Based on the hardware targets, what development tool(s) are necessary?
  • Does it make sense to use a system design tool to make the code agnostic to an operating system and/or hardware target?
  • What is the overall cost versus benefit of using the proposed software development tool(s) to implement the control system?

- Jonah Paul is product manager for industrial software at National Instruments. Edited by Mark T. Hoske, CFE Media, Control Engineering, www.controleng.com. Look for other articles related to the January 2012 cover story on control programming.

www.ni.com/LabVIEW 

www.opcfoundation.org 

http://controleng.com/PACs



No comments