How to Manage Automation Software
By: Ken Bourke
Tags: Automation, Continuous Integration, Version Control, Software Development, Software

It’s relatively easy to predict the future of automation software development, you just have to look at where IT software development is today.

As machines and systems become more complex, controls engineers need to learn how to develop and manage software more effectively. Specifically, they need to learn how to work on distributed teams, how to manage software versions and, how to test and continuously integrate changes in their software to a common library.

This process is called Continuous Integration and IT software development teams have already been using it for a long time.

In this article, I’ll explain the value of Continuous Integration for industrial OEMs and SIs before diving into the steps you need to take to start using Continuous Integration in your development workflow today.

Let’s Talk About Software Management

I don’t want to lecture anybody about the value of good software management, but I do want to highlight a real pain point that controls engineers face every day.

In the next sections, I’ll ask four questions about how you manage your automation software. I’ll also provide honest answers about how I used to manage my software.

If these answers sound familiar, then it might be time to think about improving the way you manage your automation software.

How do you control your software versions?

The word ‘control’ and ‘version’ might not be appropriate.

At the end of every day, I create an archive of my PLC software on a network drive. I include the date in the filename so that everyone knows which archive is the latest.

How do you know who made the last change to your software?

Honestly? I don’t.

Some people include their initials in the archive name, but it's tough to trace initials, especially on a busy site where we have support from contractors.

What was the last change made to your software?

It’s tough to say.

Everyone working on a PLC is asked to keep revision notes about what they change but when you’re under pressure to get something running, it’s easy to forget to make notes.

It’s possible to compare with previous versions of a project if you have the previous version but, very often, the previous version isn’t available.

How do you combine software versions?

When we have multiple developers working on a single PLC project, then we nominate one engineer as the project owner.

The project owner is responsible for checking the changes made by the other engineers and integrating them into the project every day.

This system works, but it involves a lot of manual inspection and there are no real checks to make sure that the changes are correct before they are downloaded in the PLC.

Continuous Integration to the Rescue

Do you see a problem?

We build valuable machines and systems but we don’t invest in managing the software that runs them.

Automation software is only getting more complex and increasing time pressure on projects means that more controls engineers have to work in parallel to ensure that projects are finished on time.

It’s time to modernize automation software management. It’s time to use Continuous Integration.

The Continuous Integration Process

So what does the Continuous Integration process look like?

At a glance, the total automation software to be developed is broken down into modules. These modules have well-defined interfaces that allow them to exchange data in a well-defined, transparent way.

The automation software is divided into modules with defined interfaces

The development of each module is assigned to a developer on the development team.

When a developer has finalized their changes to a module, they commit their changes to the source control system like Git or Subversion.

When a change is detected by the source control system, the Continuous Integration process starts.

The centralized project is rebuilt with the new changes integrated and automated functional tests are carried out on the updated project.

The result of these tests is sent to each member of the development team so that they can pull the changes into their local project.

In this way, changes to the project are continuously versioned, tested, and integrated into the project.

Continuous Integration in TIA Portal

It was always possible to use continuous integration with automation software.

In my company, we have been using continuous integration with Simatic Manager for years.

But, it wasn’t easy.

As of TIA Portal v16, it’s easy to set up a Continuous Integration workflow with distributed teams.

In this section, I’ll explain how.

Distributed Working with Multiuser Engineering

TIA Portal’s Multiuser Engineering allows many people to work on the same project simultaneously.

The project is stored on a central server and editors can check out individual objects. Once changes to these objects have been finalized, the objects are checked back into the server project and other editors are notified to pull the changes into their local projects.

Versioning with the Version Control Interface

TIA Portal v16 introduces a new Version Control Interface (VCI) that allows you to connect a version control system like Git to TIA Portal.

Through the VCI, program components can be exported from TIA Portal to be stored and versioned in the external version control system.

By placing project components under version control, it becomes possible to see what changes have been made to each component, by who and when.

Since you are using a standardized IT application for versioning your software, documentation, support, and training is readily available online.

Testing with Test Suite

You need to test to guarantee the quality of your software.

Using Test Suite Advanced, you can automatically execute tests on modified software components.

These tests can range from checking that the modified component complies with a company style guide to full unit tests that use PLCSim Advanced to check that functions have been implemented according to requirements.

With Test Suite Advanced, you can integrate testing into your development process to guarantee the quality of your software library.

A Side Note on Standardization

Continuous Integration depends on standardization.

Software modules have to have well-defined interfaces to allow distributed working on engineering teams.

Modules have to have well-defined functionality to allow automated testing.

Before you can begin using a Continuous Integration workflow, you need to have a standardized software structure. If you haven’t already taken steps to standardize your software libraries and engineering processes, read this article to learn about the steps involved in standardization.

What’s Next?

Continuous Integration allows you to manage increasingly complex automation software in a structured, predictable way. With Continuous Integration, you can ensure that your software libraries are of the highest quality.

The best part is that you can start using Continuous Integration in your development workflow today.

At KB Controls, we’re ready to help you to set up your Continuous Integration workflow. We have a team of consultants ready to assist you with;

Setting up your multiuser server

Setting up source control for your software components

Setting up build tools for your libraries

Setting up automated tests for your libraries

If you’re still not convinced, contact us today for a free consultation call to see if Continuous Integration can add value to your business.