Entwicklungsumgebung¶
Diese Seite beschreibt die tägliche Engineering-Umgebung, nachdem Windows-Tools, Repository-Einrichtung und erster Smoke-Test abgeschlossen sind.
Bester Workflow
Öffne den Repository-Ordner in VS Code, akzeptiere die empfohlenen Extensions, verwende das integrierte Terminal und führe Projektaufgaben über pcs ... aus.
Täglicher Workflow¶
Open repo in VS Code
-> use recommended extensions
-> edit PLC sources in tia/exports
-> create new blocks with pcs new block ...
-> preview deploys with dry-run
-> deploy with pcs deploy ...
-> document changes in MkDocs
VS-Code-Workspace-Einrichtung¶
Das Repository enthält gemeinsame VS-Code-Workspace-Einstellungen in .vscode/settings.json und Extension-Empfehlungen in .vscode/extensions.json.
VS Code sollte beim Öffnen des Workspace anbieten, empfohlene Extensions zu installieren. Du kannst auch Extensions öffnen und suchen nach:
@recommended
Empfohlene Extensions sind unter anderem:
- Dynamic Siemens Language Support by Dynamic Engineering
- PowerShell
- Markdown All in One
- Python
- GitLens
- PlantUML
Der Workspace ordnet Siemens-Quelldateien dem Siemens-Sprachmodus zu:
{
"files.associations": {
"*.scl": "siemens",
"*.udt": "siemens",
"*.db": "siemens"
}
}
.\pcs.cmd install tools fügt den Repository-Root zum Benutzer-PATH hinzu, sodass neue Terminals Folgendes ausführen können:
pcs config show
pcs new block 06_ALARMS/FB_MyBlock
.db-Dateien sind PLC-Datenbausteine
.db-Dateien in diesem Repository sind Siemens-PLC-Datenbaustein-Sources. Der Workspace erzwingt, dass .db-Dateien im Standard-Texteditor geöffnet werden, damit datenbankbezogene VS-Code-Extensions nicht übernehmen.
Erwarteter Schutz:
{
"workbench.editorAssociations": {
"*.db": "default"
}
}
PCS CLI¶
Der Befehl pcs ist die wichtigste Entwickler-Schnittstelle. Verwende ihn zum Erstellen von Bausteinen, Auflisten von Sources, Bauen des Toolings, Deployment nach TIA und Serven der Docs.
Befehlsreferenz
Detaillierte Befehlsbeispiele sind in Terminalbefehle (CLI) dokumentiert.
Nach dem Klonen bootstrapst du die Maschine einmal mit:
.\pcs.cmd install tools
Starte danach das Terminal neu und initialisiere das Repository:
pcs init
Autorenvariable für generierte Header
Neue Baustein-Header verwenden den Autor, der aus pcs.config.json aufgelöst wird. Standardmäßig setzt du dies einmal:
[Environment]::SetEnvironmentVariable("PCS_AUTHOR", "Max Mustermann", "User")
Starte VS Code neu oder öffne ein neues Terminal, nachdem du Benutzer-Umgebungsvariablen geändert hast.
Python-Umgebung¶
Die virtuelle Python-Umgebung ist repo-lokal und wird durch pcs init erstellt.
pcs init
Info
Das Rendern von PlantUML wird durch den externen Befehl plantuml und Graphviz erledigt. Installiere oder verwende für dieses Repository nicht das alte Python-Paket plantuml-markdown.
Manuelle Befehle sind vor allem für Troubleshooting nützlich:
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python -m mkdocs build
TIA-Openness-CLI-Build¶
Die TIA-Openness-CLI wird mit dem .NET-Framework-C#-Compiler gebaut, der in Windows enthalten ist:
$env:WINDIR\Microsoft.NET\Framework64\v4.0.30319\csc.exe
Ein separates .NET SDK ist für das aktuelle Tooling nicht erforderlich.
Die tägliche Nutzung ist in Terminalbefehle (CLI) dokumentiert. Der direkte Build-Befehl ist:
pcs build
Repository-Bereiche¶
| Pfad | Zweck |
|---|---|
tia/exports/ |
Nach Subsystem gruppierte PLC-Sources |
pcs.config.json |
Projektpfad, Backup-Pfad, Exports-Root, PLC-Ziele, Autoreneinstellungen |
tools/tia-openness/ |
Openness-CLI-Source und PowerShell-Wrapper |
tools/tia-deployment-gui/ |
Schlanke Deployment-GUI |
tools/pcs-tia-sync-tool/ |
Fokussierte GUI für Repo-<->TIA-Synchronisierung |
docs/development/ |
Dokumentation des Entwicklungsworkflows |
Pfad-Templates¶
PowerShell-Wrapper unterstützen absolute Pfade, repo-relative Pfade und Environment-Variable-Templates.
%USERPROFILE%\Documents\TIA-Projekte\PCS\PCS.ap20
$USERPROFILE\Documents\TIA-Projekte\PCS\PCS.ap20
$env:USERPROFILE\Documents\TIA-Projekte\PCS\PCS.ap20
Verwende diese Templates in Dokumentation und Konfigurationsdateien anstelle engineer-spezifischer Pfade.
TIA-Versionserkennung
Die Openness-Wrapper leiten die TIA-Version aus der Projekterweiterung ab, zum Beispiel .ap19 oder .ap20.