Skip to content

PCS Engineering Tools

PCS provides two Windows GUI tools with separate responsibilities. Both call the repository pcs CLI internally, so terminal behavior and GUI behavior stay aligned.

Tool Executable Purpose
PCS TIA Sync Tool tools/pcs-tia-sync-tool/bin/pcs-tia-sync-tool.exe Daily synchronization between tia/exports and TIA Portal
TIA Deployment GUI tools/tia-deployment-gui/bin/tia-deployment-gui.exe Deployment, simulation, test, and broader engineering helper workflows

The sync tool is the preferred interface for normal source-control work. The older deployment GUI remains available and should not be removed; it is still useful as a deployment cockpit and for workflows that are not source synchronization.

PCS TIA Sync Tool

Build and start the tool:

.\tools\pcs-tia-sync-tool\build.ps1
.\tools\pcs-tia-sync-tool\bin\pcs-tia-sync-tool.exe

The tool shows one workspace for both directions:

Direction Meaning GUI action
TIA -> Repo A block was changed in TIA while the repository still matches the baseline Accept into repo
Repo -> TIA A source file changed in tia/exports while TIA still matches the baseline Deploy to TIA
Baseline Repo and TIA already agree, but the local baseline is older Refresh baseline
Review Repo and TIA both changed differently, or a deletion/path issue needs attention Manual review

Normal workflow:

  1. Open the repository in the tool.
  2. Check the TIA project path and PLC selection.
  3. Click Capture TIA Snapshot.
  4. Review the summary tiles and change table.
  5. Select a row and open the Diff tab when source content differs.
  6. Use the Sync? checkboxes or the selection buttons to choose the safe candidates to include.
  7. Click the purple SYNC button to run the checked jobs. Its label changes to the selected direction: SYNC Repo --> TIA, SYNC TIA --> Repo, or SYNC Repo --> TIA --> Repo. If both directions are selected, Repository -> TIA jobs run first, then TIA -> Repository jobs.
  8. Use REFRESH Baseline after Repo and TIA are aligned.
  9. If local Git changes are present after the baseline refresh, use the suggested Commit & Push now flow or the enabled Commit & Push button. The tool asks for a commit message, then runs git add -A, git commit -m <message>, and git push.

The change table includes a direction column:

Direction Meaning
TIA --> Repository Copy the TIA snapshot source into tia/exports
Repository --> TIA Deploy repository source into the selected PLC
No sync Do not synchronize automatically; review or refresh baseline first

The action buttons are enabled only when the current selection and sync status make the action meaningful. Long-running TIA operations are shown in the progress bar and log panel. The TIA version field is auto-filled from the project extension, for example .ap20 becomes V20.

The Commit & Push button is disabled by default and becomes available only when git status --porcelain reports local repository changes. If the automatic prompt is declined, the button stays available for the same pending changes.

The tool may stay connected to the engineer's normal TIA workflow: when the configured project is already open in TIA Portal, snapshot, deploy, PLC-listing, and archive operations attach to that instance. When it is not open, PCS opens the project through Openness as before.

Manual-review rows are intentionally not included in normal SYNC jobs. After inspecting the normalized diff, the engineer may use explicit override buttons for the selected row:

Override Effect
SYNC Repo --> TIA Deploy the repository source to TIA
SYNC TIA --> Repo Copy the TIA snapshot source into tia/exports

For formatting-only differences, prefer Use Repo --> TIA if an override is needed.

CLI Backend

The sync tool uses these commands internally:

pcs sync snapshot tia plc=PLC_1
pcs sync status --json
pcs sync diff <block-or-path>
pcs sync accept tia <block-or-path>
pcs deploy plcs=PLC_1 blocks=<block>
pcs sync baseline --force

The decision table is driven by pcs sync status --json:

Decision GUI wording
repoChangedOnly / repoAddedOnly Repo changed; can be deployed to TIA
tiaChangedOnly / tiaAddedOnly TIA changed; can be accepted into repo
sameChangeInRepoAndTia / addedSameInRepoAndTia / deletedInBoth Repo and TIA agree; baseline can be refreshed
conflicts / pathMismatches / one-sided deletions Manual review required

TIA Deployment GUI

The existing deployment GUI remains available:

.\tools\tia-deployment-gui\build.ps1
.\tools\tia-deployment-gui\bin\tia-deployment-gui.exe

Use it when you want the older deployment-focused interface, presets, documentation helpers, or future simulation/test workflows. For day-to-day source synchronization, prefer the PCS TIA Sync Tool.

Next UX Steps

The next improvements should stay focused on engineer ergonomics:

  1. Add guarded Git pull/rebase support before synchronization.
  2. Add side-by-side conflict review for same-block changes.
  3. Add a clearer completed-action checklist after applying changes.
  4. Add an explicit "capture again to verify" prompt after Repo -> TIA deployment.