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)
2. Scripted Sync Tool (Python/PowerShell CLI)
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:
3. Optional JSON Backup Files
-
Export the full JSON config using REST API (GET /project)
-
Store for version tracking, auditing, or rollback
-
Compare source/target backups before applying
4. Use OPC UA for Tag Presence Validation (Optional)
If you want to validate tag values/sync success post-deployment:
5. Deployment Strategy
-
Sync only changed tags/devices
-
Batch sync per site to avoid load
-
Use consistent naming to simplify diff logic
Why This Works
-
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
Tools to Consider
-
KepwareConfigCLI (open source tool exists for v6.x)
-
Custom Python with requests library
-
Node-RED + Kepware REST Nodes (GUI-based orchestration)
Thanks,