Copia supports the following Siemens software/versions, and advanced functions:
Since Siemens Step7 TIA Portal V15.0 has been discontinued, Copia may be limited in its ability to support this version moving forward. Support for v15.1 is ongoing.

Siemens Step7 TIA Portal v14.1 sp1 - v17


To get started, Copia will need the following to fully support your Step7 TIA Portal projects:
  1. 1.
    Project data (in Folder or Archive format, see more about this below)
  2. 2.
    Add-on's or GSD files used in the project
    • If your project contains add-on's or GSD files, they will initially need to be installed on the Copia server to provide a graphical display of the project and differences.
    • Copia will alert you about this during your initial commit, and provide instructions for pushing your data, and authorizing access to the project to install the required add-on's and GSD files to our servers, as seen below.
If your project uses mutually exclusive add-on's (such as including components from both WinCC Pro and WinCC Unified), Copia will not be able to provide advanced functions, due to limitations in the Openness API.
Copia manages TIA portal files in archive form, but it gives the user the option of saving the unarchived project or global library folders in the repository, if desired. More information is given below, and in the following sections:
  • Option 1: Storing the Project or Global Library Folder
    • Copia allows the user to store a Project or Global Library folder into the repository. It will auto-archive them for the user, making for a more streamlined approach, and a working environment that is more typical for the user.
    • Auto-archive must be enabled to use this option, see below!
  • Option 2: Storing the Project or Global Library Archive File
    • A user may choose to manually create and store their own project or library archive's into Copia. It will be required to manually create and extract the archives as needed.
This does not affect the use of the Version Control Interface (VCI) in Step7 TIA Portal with Copia. If you are using the VCI, it will still require a manual export of the XML files into the repository.

Project or Global Library Folder

If the Auto-Archive feature is enabled, Copia allows the user to store a Project folder or a Global Library folder into the repository. It will auto-archive the project or library for the user, making for a more streamlined approach, and a working environment that is more user friendly.
See the Auto-Archive section below for instructions on enabling this feature, as well as important information about it's usage.
Adding the contents of a project or global library folder (the .ap## or .al## file and respective subfolders) at the repository root is not supported. All project or library contents need to be placed inside a folder (directory). An example is provided below:

Project Archive

If you prefer to manually generate and place your project or global library archives into Copia, it is supported. It will be necessary to manually create and extract the archive files when working with the project. For example, to get started with a project, generate a project archive file, select Project > Archive...
Save your .zap## file to your repository to store it in the Copia system. You can either create an archive and drop it into the repository folder using Windows, or you can save it directly as seen below:
To reduce file size, you can archive as a compressed file and to discard restorable data. The date and time are not necessary in the file name.
If you have already saved an archive to your repo, you may get a warning about overwriting the file. Git saves every commit in the repo history, so as long as you commit your changes then it is safe to overwrite by selecting Yes in the screen below:


Auto-Archive allows the user to store both Project and Global Libraries folders into the repository in the original .ap## or .al## file format. Copia will automatically archive the data into the corresponding .zap## or .zal## format respectively, prior to commit. This not only saves storage space and transfer times, but also allows a single file to be selected in the Copia client, which provides all display and difference details.
To enable this feature in the desktop client, go to File -> Options -> Advanced, check the Enable Auto-Archiving feature, and press Save.
With this feature enabled, any project or global library folder added to a local repository will be auto-archived when the Copia Desktop app is selected (i.e. when it becomes the primary app open on the screen).
Again, it is very important that the project folder is stored in the repository, see more information in the Project or Global Library section above!

Things to Consider

There are a few things to understand when using the auto-archive feature:
  • When saving a project or library folder (which contains the .ap## or .al## file and subfolders) in a repository, Copia will auto-archive the project and store the .zap## or .zal## file. As a result, when Copia Web or Desktop app is then selected, you will only see the resulting .zap## or .zal## file.
  • The auto-archived files are hidden from the Windows File Explorer by default to reduce confusion. If Windows is set to display hidden files, you will see this file appear in your repository folder.
  • Cloning, pulling, or creating/switching branches will automatically extract the contents of the archive files in the repository.
  • If using this feature, you will receive a warning that the Step7 TIA Portal project needs to be closed in the following situations (if it is open):
    • Switching branches
    • Pulling from remote repository (
    • The first commit after a new TIA project or library is added or upgraded
      • Subsequent commits can take place with the software open
  • If the Copia desktop client detects a file that is auto-archived, it will notify the user and enable auto-archive automatically if not already enabled, to prevent issues.
Renaming/Deleting a Project
  • To rename a project, use TIA's "Save As" function to save it as another project in the repository. Then, delete the old project directory.
  • When a project directory is deleted, the associated archived zap file will also be deleted from the repository.

Graphical Display and Differences

Copia will display the project graphically, in a similar manner to the Siemens IDE, for easy navigation and to quickly identify differences. The following types are supported in the graphical or enhanced viewing at this time:
  • OB, FB, and FC Blocks are supported in the following languages:
    • Ladder (LAD and F-LAD)
    • Structured Control Language (SCL)
      • This corresponds to the Structured Text (ST) language defined in the standard IEC 61131-3.
    • Statement List (STL)
    • Function Block Diagram (FBD and F-FBD)
  • Project Libraries
  • Global Libraries
  • Data Blocks (DB)
  • Instance DB's
  • PLC Tags and Tag Tables
  • WinCC HMI's in XML including:
    • Screens
    • Screen Templates
    • HMI Tag Tables
    • Tech Objects
  • UDT (Data Types)
  • Devices
  • Device Configuration/Properties

Rung Commenting

Rung Commenting enhances the Code Review process, once a Pull Request to merge a New Branch into the Main (or default/master) Branch has been generated.
The Rung Commenting process, which is similar across all products, is explained clearly in the video linked below.
NOTE: The product version in the video may be older than the current release, but the process is still applicable

Advanced Merge for Conflict Resolution

Copia provides the standard Git-based approach to merging branches and conflicts for all changes, but adds advanced block-level merge capabilities for Siemens Step7 TIA Portal.
A video describing the workflow for Advanced Merge for Siemens Step7 TIA Portal is described in the video below:
As you can see from the video, the process is meant to be easily understood and intuitive for the end user to resolve conflicts.
Copia Advanced Merge is supported in the web app only, at this time. It works at the block level for OB, FB, FC and DB blocks of LAD, FBD, Graph, SCL or STL.
In some cases, due to limitations of the software or API, the Advanced Merge function may not be used. It is important to review these cases, listed at the bottom of this section.


Copia Advanced Merge is available to resolve a conflict during the merge of a Branch into another. For example, in the diagram below, if two people worked in the same block after the branch was created, this will cause a conflict.
It is assumed that a Pull request has been made, and it is ready to be merged. In the web app, you will notice that there is a conflict, and the Advanced Merge tool option will appear.
As seen below you have two choices; (1) overwrite the target branch, or (2) open the merge tool. In this example, we will choose to open the merge tool.
The merge tool will list the conflicted items on the left side of the screen, in a manner similar to the programming software. The active section will be in bold on the tree, and its information will be displayed on the right side of the merge tool. Changes will be highlighted with a circular "edit" icon, and conflicts will be highlighted with the "conflict" badge. The number of conflicts are listed at the top of the merge tool.
There are two buttons which provide additional options:

Bulk Resolve

The Bulk Resolve button allows you to accept all changes from either branch.

View Options

View Options provides additional viewing options for the data provided.
Select the conflicted item by clicking on it in the left side of the merge tool, and you will be be presented with the change that was performed in the selected branch (in the case below, it is "main" that is selected in green above the diagram). To review the alternate branch, click on its name.
We are now looking at the changes made in the other branch (in this case, TestBranch1). If you need more context for the review, you can use the "Show Unmodified Networks" toggle in the diagram. We will now choose the changes in this branch by clicking the radio button.
Now that the desired branch is selected, the conflict now indicates that it is "resolved" on the left side. If there are more than one conflicts, proceed to do the same for each, until all conflicts are resolved.
To accept the changes, press the "Perform Merge" button at the top.
You have now completed using the merge tool and are put back into the standard merge process. The system provides multiple opportunities/screens to provide feedback and confirm that the merge is desired. Process through these final screens adding any additional information, and pressing the "Merge Pull Request" buttons.
Once completed, you will be given the opportunity to Delete the Branch.
This is optional, though it should be understood that this will only delete the branch in the remote repo, and the local branch will remain until deleted locally (this is how Git functions).


There are some known cases that prevent the merge tool from operating as desired. These are generally due to software or API limitations. Please be aware of these cases, and perform a manual merge outside of Copia if any of these cases are applicable.
  • Adding an HMI to a branch may cause a conflict that cannot be merged at this time.
  • If a the project is renamed in one of the branches, this will prevent proper merging.
  • Initially adding the project in both branches will cause a merge problem (since there is no "base" to compare against). This is rare, and would only happen if you branched prior to adding the project.
Last modified 3d ago