An Introduction to Software Standardization for OEMs

Part 1 of Software Standardization for OEMs

Standardization in general refers to the harmonization of interfaces, dimensions, and procedures.

In the context of software, standardization refers to the creation of reusable software objects with defined interfaces and an architecture that enables the use of standardized software modules across many projects.

If that definition sounds a bit abstract, don’t worry — throughout this series, we’ll be looking at concrete examples of how to apply the standardization process to a robotic palletizer cell. As we work through this example, the concept of standardization will become more clear.

Here’s the important part for OEMs:

The aim of software standardization is to increase engineering and commissioning efficiency by reusing software objects. For OEMs, this increase in efficiency manifests as reduced costs, reduced time to market, and increased software quality.

Before we dive into the standardization process, let’s take a minute to discuss why OEMs should invest in software standardization and to look at the current state of software standardization in the industry.

Why Is Standardization Important For OEMs?

End-users are becoming more sophisticated. They want more intelligent machines delivered in less time with less cost. For OEMs to meet the demands of their end-users, they need to work efficiently.

And standardization is the key to working efficiently for OEMs.

By investing in standardization, OEMs gain many benefits. The most important benefits of standardization for machine builders include:

Better Software

Standardized software is more transparent since it uses well-understood modules arranged in a well-defined architecture.

This generally leads to fewer mistakes in automation software and simplified diagnostics and troubleshooting of machines.

Better Interfaces

Standardized software provides well-defined interfaces for external systems like SCADA and MES.

This reduces the costs surrounding integrating your machines into a production line and adds value to your machines.

Increased Efficiency

Since software modules are reused across projects, less engineering effort is spent on each project creating software objects.

This increase in efficiency manifests as reduced engineering and commissioning costs and reduced time to market for machines.

By reducing the costs for a machine, OEMs can grow their profit margins. By reducing the time to market for machines OEMs can grow their capacity without increasing the size of their team.

Automation Possibilities

Once a strong software standard has been defined, it is possible to use tools like code generators to automate the process of creating automation software.

In general, code generation is faster than manually creating code and contains fewer defects since the code is created based on a set of rules provided by the user.

Automation is only possible once standardization is implemented. I have written before about how OEMs can automate their engineering processes with standardization.

The Sad State of Software Standardization

Although many OEMs pay lip service to software standardization, very few OEMs that I work with have implemented software standardization in an efficient way.

When I talk about software standardization, OEMs show me how they copy and paste software objects between projects and adapt those objects on a project-specific basis.

With this way of working, each project becomes a Frankenstein monster made up of similar but not equal software objects modified to suit a project’s needs.

There are several problems with this approach to standardization. The most important issues are:

Quality Assurance

Software objects are copy-pasted between projects and adapted on the fly. This means that no one is sure what version of the software object is the leading version, there is no documentation defining what functionality the software objects should provide, and no one is performing functional tests on the objects to make sure that this functionality is realized.

In short, the quality of these software objects is not assured and time is wasted on every project re-engineering and re-testing the software object.

Version Control

When software objects are copied between projects and modified, it is not possible to see what changes have been made to the software object or why.

It's difficult, if not impossible, to understand which version of the software object is the latest version and what changes have been made to that version. Since there is no explanation of the software object’s history, it's difficult to tell if the behavior of the object is a bug or a feature.

In short, without version control it's impossible to tell what version of a software object you are working with and what changes have been made to that software object.

If you’re interested in learning more about managing automation software with modern version controls tools, check out this post which talks in detail about strategies for managing automation software with version control and continuous integration.

The Standardization Series

This series of articles aims to show OEMs the right way to approach software standardization to create a software standard that can be used across many projects.

The series covers not only the process of creating a software standard but also the process of maintaining a software standard using unit tests for quality assurance and version control for traceability.

The parts of this series are:

  • Introduction to Software Standardization for OEMs
  • How to Analyze Machines for Software Standardization
  • How to Engineer Standard Software Modules
  • How to Engineer Standard Visualization Objects
  • How to Version Control Automation Software
  • How to Automatically Test Automation Software
  • How to Standardize Documentation
  • How to Generate Automation Software

Conclusion

The Standardization Series aims to show OEMs how to standardize their automation software to increase their engineering efficiency, therefore reducing costs and lead times.

Although the focus of the series is on standardizing automation software, these principles can, and should, be applied to all aspects of automation projects. You can use these same principles to standardize other areas of automation and machine builder including;

  • Modularizing the mechanical construction of machines
  • Standardizing electrical hardware, network structure, and IO and device naming
  • Standardizing documentation structure and content
  • Standardizing project planning and progress reporting

The next part of this series focuses on the process of analyzing existing machines to identify standard software modules and architectures. Sign up to the mailing list below to be notified when that part is available.

Learn Something New Every Week

Sign up to the mailing list to get a new post about industrial automation and controls engineering delivered to your inbox every week.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

PLC Bootcamp

Learn the skills you need to start your journey as a PLC programmer. Enroll in PLC Bootcamp to learn how to write and test your first PLC program for free.