Git Version Control - Back Up Automation Code Seamlessly

October 18, 2022 by Shawn Dietrich

Copia reduces the strain of backing up automation code on the factory floor with their latest software release DeviceLink. This automated backup software makes use of the Git workflow and backup running code automatically.

Learn about Git version control in our previous article:

Managing Multi-user PLC Programming: Git Version Control


The computer software world has been making use of version control software such as Git or GitHub for years. Copia Automation brings that technology and workflow to industrial automation devices with its Git-based version control software. Recently, Copia Automation added to its product line with DeviceLink, a software that connects to PLCs and robots and takes regular backups and compares them to the latest version. If the DeviceLink detects changes, it will move the backup to a higher version. 


DeviceLink installs on manufacturing network to manage backups

DeviceLink connects to automation devices and collects regular backups to check differences between them. Image adapted and used courtesy of Copia Automation


Tracking Changes with DeviceLink

It’s not uncommon for control engineers and maintenance staff to change the code for automation devices such as PLCs and robots on the factory floor during integration or troubleshooting. These changes should be backed up and saved to a central location for other personnel to have access—typically, this is a manual process requiring the user to copy files to network locations or use some kind of file version control software. 

Copia’s DeviceLink connects to automation devices and collects regular backups. DeviceLink works directly with Allen-Bradley, CODESYS, and FANUC but can also subscribe to FTP and Bash scripting. These backups are then compared to the last backup to determine if there are any differences. If differences are detected, the standard Git workflow takes over and DeviceLink creates a new committed version. This new version can then be reviewed and merged into the main branch or kept as a development version.  


DeviceLink project dashboard

The project dashboard for DeviceLink. Image used courtesy of Copia Automation


DeviceLink Industry Use Cases

PLCs are commonly open architecture, meaning anybody can connect to the PLC, upload the code, and make changes, provided the PLC is not locked and the proper licensing is installed.  With PLCs being this easy to modify, there is a good chance that the code in the PLC will be modified regularly, which makes typical version control difficult. 

With standard version control practices, somebody needs to take the updated code from the PLC and store it in a network folder or use some kind of version control software that will version the file once checked in by the user. This method requires a lot of manual intervention and relies on the user remembering to update the backups. (Part of the reason we automate processes is to remove human error, why wouldn’t we do the same with version control workflows?) By making use of Copia’s DeviceLink software, a factory or machine builder can ensure that the backup or the code residing on the development branch is the latest code in the event the code on the PLC is destroyed. 


status dashboard for DeviceLink

The status dashboard for DeviceLink. Image used courtesy of Copia Automation


Reviewing code is an important step in the development process, DeviceLink makes code review easier by allowing the user to view changes within Copia’s desktop software or the cloud version. Copia makes use of the Git workflow which is a standard workflow for other programming languages, and as more IT programming meets OT programming it makes sense to utilize the same workflow no matter which programming software or language is being used.


Seamless Source Control

With their latest application, Copia aims to make backing up code for automation devices more seamless on the factory floor, saving changes to a central location so that multiple programmers have access to updated code.