Zum Inhalt

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.