Version Control for PLCs

versiondog Centralizes Data Storage, Provides Change History, and Monitors Programs Running on Automation Devices


There is one general truth that applies to automated production – the higher the level of automation in production, the more critical it is to correctly match all process-related elements. Not only is this requirement of great significance when commissioning a system or plant but also during ongoing production. Version control for PLCs helps to manage the constant optimization and fine-tuning of production processes that are required to be able to react to growing and changing demands for product variants, efficiency, and product quality.

Version control for PLCs allows authorized personnel to track each optimization easily and conveniently retrieve any document describing changes that have been made. Of course, it’s important not only to keep the latest change, but also keep track of past changes, starting with the initial version and covering all subsequent modifications to the system. This is particularly true in a strictly regulated manufacturing environment where corresponding documentation is a must.

To meet these requirements, AUVESY has developed versiondog, a data management system that can be used for creating and tracking software versions for PLCs, NC programs, visualization systems, robots, frequency converters, and other automation components, regardless of their manufacturer.

versiondog is focused around three main capabilities, which are outlined in greater detail below.

Centralized Data Storage

Essentially, it is the job of a version management system to provide exactly one valid version of a data set (NC program, PLC program, or configuration file). This means that only one version can be valid at a given time. How does this translate into real-world conditions for the maintenance of an automated production plant? Daily maintenance alone makes it clear that providing a consistent and unique current version of a data set brings about several challenges, especially if activities are performed under time pressure or with limited resources. Some examples:

  • Usually, more than one engineer is involved in the maintenance and configuration of software programs controlling a production process.
  • Not every change is immediately successful and free of harmful side effects. Even a well-meant optimization will first have to be validated before approval is granted for the changed program.
  • Sometimes multiple changes and optimizations to a program are required, and this will have to be dealt with by numerous software developers coming from different areas of responsibility.

It becomes clear that consistency and sustainability can never be achieved by undocumented manual interventions or individual versioning and housekeeping. It is precisely at this point that the versiondog system comes into play:

  • The currently valid version of a program is the latest version that was centrally stored on the server system. Generally, it can be said that exactly one current version can exist.
  • Access to the currently valid version in the central server archive is granted by a request procedure referred to as “Check-Out.” Optimizations of the automation program are released by writing back the new version onto the server (“Check-In”).
  • Simultaneous access to a program by multiple users, who,in the worst case, do not know of each other, will be prevented. This is ensured by an option referred to as “exclusive editing” of a project.
  • The project data are kept in the server archive in their original data format. In an emergency, the data can also be accessed directly (as a zip archive in a folder structure).

Change History and Version Control for PLCs and other Devices 

To be able to keep track of changes to the production process in a reliable, seamless manner, it is required to document the reason, the time, and the responsibility for each modification to a software program. This may sound easy and self-explanatory, but in reality, it represents a challenge. Perhaps a major reason for this is the fact that the process of documenting a change to a program is not regarded as a mandatory part of the job but as bothersome extra work that is often neglected.

Therefore, documentation of program changes needs to be understood as a part of the change process. So, versiondog not only takes care of all administrative steps including centralized storage of the changed program as the currently valid version in the central server archive (see above) but also supports the user and makes sure that all users double-check their changes to the project and document all changes without effort.

It is here that the so-called versiondog Smart Compare feature is particularly useful. Smart Compare creates the project presentation depending on the managed automation projects. In this way, the user obtains a loss-free and recognizable display of information on project changes in a familiar format. All differences between the two versions are displayed to the user in detail (e.g., in graphical, table, or text format). The system supports the documentation of changes before the edited version is released as a new current version in the server archive via the Check-In procedure.

Based on end-to-end traceability of all changes to a PLC program, versiondog provides the following advantages by retrieving information from the change history:

  • From the initial version to the currently valid version, all data sets including any version comments and a summary of changes are available to the user.
  • There is complete documentation on who has changed what at which point in time, what was the reason for the change and what the change looks like in detail (audit trail).
  • It can be tracked which version was in use at any given time.

Monitoring of Programs in Automation Devices

In order to ensure consistent quality and productivity of manufacturing processes, it is important that all modules involved are up-to-date regarding their programs and their parameter settings. To achieve this, the following prerequisites must be fulfilled: Firstly, the latest version of a given program must be known. Secondly, it must be ensured that the automation devices are loaded with exactly those program versions that are supposed to run on them according to the specification.

With versiondog, the first question for the latest version can be answered right away. It is exactly the version that has been stored centrally in the server archive (see above). Now, a monitoring task (also referred to as “job”) that has to be executed cyclically can be stored for each data set. For example, a daily routine can check whether the program in the controller still corresponds to the current or latest version in the server archive. If a deviation is found, the responsible person can be informed directly via e-mail.

With versiondog, monitoring the programs running on automation devices is easy. versiondog ensures that all devices involved in a manufacturing process operate with exactly the same project version and parameter setting – thus matching the current version in the server archive. This provides a few advantages:

  • Optimizations resulting from an analysis of the process can be directly adopted in the project because the current version of the program and the configuration data are known for each automation device.
  • Should a change to the system be discovered, the message issued by versiondog will systematically cause a reaction: It has to be checked what has changed and whether the change can be identified as an added value optimization. It can also be determined whether the change is a desired/planned change and whether the functional safety of the plant is affected by the change.
  • As the latest project version of a device is known, disaster recovery procedures can be performed immediately to minimize plant downtime.

Version Control for PLCs and other Automated Production Devices

In summary, versiondog provides the currently valid software version of a production plant to enable further optimization or modification. The resulting changes, including any comments, are recorded and stored safely. This not only includes changes made by in-house staff, but also changes made by external service providers or plant engineers.

The bottom line is that this results in a complete change history of your production plant. Even undesired changes to the program that have been caused accidentally, inadvertently or intentionally (like by cyber attacks) will be recorded. Therefore, versiondog helps to provide a database for changes in the production plant as well as the documents required for audits. The system constitutes one more piece needed to complete the data security and data safety jigsaw puzzle in production facilities and manufacturing companies.

Audits in Industrial Automation

This free white paper explains the best way to approach an audit, what exactly is involved, and some of the potential pitfalls. How does a data management system help to answer the typical questions arising from process documentation and how does this provide a reliable foundation for audit trails?

Read More

Version Control and Backups for Maintenance Departments

In this free white paper, you’ll learn the difference between version control and backups and how to automate data backups, compare versions, and search for latest project versions automatically with versiondog software.

Read More

Schedule your versiondog demo Today

Find out how versiondog can help you with version control for PLCs and other devices.

Schedule an Online Demo