We are looking to manage all kepware tags from a central server. Once testing is done, we currently need to export and import these tags into 14 other servers that have Kepware installed. This is tedious and prone to error.
I know I could copy the project file from the central server and copy to the remote servers, but this would entail taking down the Kepware service copying the file and then restarting the service. I'd prefer to not have to do this.
Is anyone familiar with a tool/program that will compare/sync all Channels/PLCs/TagGroups/Tags between two servers and perform the update without having to take down the services?
Solved! Go to Solution.
Hi,
From my point of view, below is the solution I think of:
Kepware EX 6.13 includes the Server Configuration API, which allows programmatic access to create/update/delete Channels, Devices, and Tags without restarting the Kepware runtime.
API Spec: Kepware Configuration API
Supports: Channels, Devices, Tag Groups, Tags, Users, etc.
Format: JSON over HTTP (authenticated)
Write a custom script/tool that:
Connects to the source server using REST API
Recursively reads all config data (Channels → Devices → Tags)
Connects to each target server via REST API
Compares structure and pushes deltas (new or updated objects)
Optionally uses a dry-run/preview mode before sync
Example command:
synckep --source http://adgen64:57412/config/v1 --target http://wkgen64:57412/config/v1
Export the full JSON config using REST API (GET /project
)
Store for version tracking, auditing, or rollback
Compare source/target backups before applying
If you want to validate tag values/sync success post-deployment:
Use OPC UA to read selected tag values from both source and target
Confirm that critical tag names/values exist and match
Sync only changed tags/devices
Batch sync per site to avoid load
Use consistent naming to simplify diff logic
No downtime (Kepware runtime continues running)
Scalable to many servers
Fully automatable with CLI
Works over standard protocols (HTTP/REST, OPC UA)
Compatible with future Kepware versions
KepwareConfigCLI (open source tool exists for v6.x)
Custom Python with requests
library
Node-RED + Kepware REST Nodes (GUI-based orchestration)
Thanks,
Hi @GF_13380967
To help find the best tool or method for syncing Kepware tags between servers without downtime, could you clarify a few points:
Which version of Kepware are you using (e.g., KEPServerEX 6.x)?
Are all 14 servers on the same network or accessible via VPN?
Are you open to using OPC UA or REST-based interfaces, or does your environment restrict third-party APIs?
Would you prefer a GUI-based tool, scriptable CLI/PowerShell solution, or integration with a config management system like Ansible or SCCM?
Is your central server Windows-based and are all the target servers also Windows?
This will help narrow down compatible and safe tools for your environment.
Thanks,
We are using EX 6.13
All on same network
We are open to OPC UA or REST based. We don't restrict 3rd party solutions. We currently have a vendor attempting to create a REST API solution, but it's going slow. Looking to see if I don't need to reinvent the wheel.
GUI, scriptable are fine. Just want to have our developers be able to run it on demand when ready to sync all servers.
All servers are Windows.
Also, would like it to be configurable via command line:
synckep /sourcekep://adgen64 /targetkep://wkgen64
synckep /sourcekep://adgen64 /targetkep://crgen64
Assumes above that all kepware folder structure on each server is consistent. If not, we might need to include source & target folder structure. All project names will be the same.
Hi,
From my point of view, below is the solution I think of:
Kepware EX 6.13 includes the Server Configuration API, which allows programmatic access to create/update/delete Channels, Devices, and Tags without restarting the Kepware runtime.
API Spec: Kepware Configuration API
Supports: Channels, Devices, Tag Groups, Tags, Users, etc.
Format: JSON over HTTP (authenticated)
Write a custom script/tool that:
Connects to the source server using REST API
Recursively reads all config data (Channels → Devices → Tags)
Connects to each target server via REST API
Compares structure and pushes deltas (new or updated objects)
Optionally uses a dry-run/preview mode before sync
Example command:
synckep --source http://adgen64:57412/config/v1 --target http://wkgen64:57412/config/v1
Export the full JSON config using REST API (GET /project
)
Store for version tracking, auditing, or rollback
Compare source/target backups before applying
If you want to validate tag values/sync success post-deployment:
Use OPC UA to read selected tag values from both source and target
Confirm that critical tag names/values exist and match
Sync only changed tags/devices
Batch sync per site to avoid load
Use consistent naming to simplify diff logic
No downtime (Kepware runtime continues running)
Scalable to many servers
Fully automatable with CLI
Works over standard protocols (HTTP/REST, OPC UA)
Compatible with future Kepware versions
KepwareConfigCLI (open source tool exists for v6.x)
Custom Python with requests
library
Node-RED + Kepware REST Nodes (GUI-based orchestration)
Thanks,
This is what my consultant is doing but it's going slow. Just wanted to see if anyone has existing code that they are using.
Would you be interested in quoting to write the code?