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:
- Open the repository in the tool.
- Check the TIA project path and PLC selection.
- Click Capture TIA Snapshot.
- Review the summary tiles and change table.
- Select a row and open the Diff tab when source content differs.
- Use the Sync? checkboxes or the selection buttons to choose the safe candidates to include.
- 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.
- Use REFRESH Baseline after Repo and TIA are aligned.
- 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>, andgit 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:
- Add guarded Git pull/rebase support before synchronization.
- Add side-by-side conflict review for same-block changes.
- Add a clearer completed-action checklist after applying changes.
- Add an explicit "capture again to verify" prompt after Repo -> TIA deployment.