# TIA Portal Projektbibliothek — Anleitung **Projekt:** HundM_Fortna **Stand:** 2026-06-29 **Ziel:** Kanonische Bausteine aus `_CommonLib/` in die TIA Portal Projektbibliothek übernehmen --- ## Voraussetzungen - TIA Portal V17 oder höher - Alle 5 PLCs (UH01–UH05) im selben TIA Portal Projekt geöffnet - `_CommonLib/Programmbausteine/` als Referenz-Ordner vorhanden (dieses Repository) --- ## Schritt 1: SCL-Datei in einen PLC importieren Für jeden Baustein aus `_CommonLib/` einmalig: 1. Im TIA Portal Projektbaum: Beliebigen PLC auswählen (z.B. UH01) 2. `Programmbausteine` → Rechtsklick → **"Externe Quelldatei einfügen"** 3. SCL-Datei aus `_CommonLib/Programmbausteine//` auswählen 4. Der Baustein erscheint unter `Programmbausteine` → **Kompilieren** (F11) 5. Sicherstellen: Keine Kompilierfehler **Gruppe-A-Blöcke (direkt importierbar, keine Anpassung nötig):** | SCL-Datei | PLC-Pfad nach Import | |---|---| | `PROFINET/FC_GET_PROFINET_DEVICE_STATES.scl` | PLC → Programmbausteine → PROFINET | | `SCADA/FB-OPC_UA_System-Stat.scl` | PLC → Programmbausteine → SCADA | | `970_Visu/FC_CarrierManipulator.scl` | PLC → Programmbausteine → 970_Visu | | `400_BasicFunctions/FC/FC_Int2String.scl` | PLC → Programmbausteine → 400_BasicFunctions | | `900_Communications/FB_FortnaTele_Placeholder.scl` | PLC → Programmbausteine → 900_Communications | | `_IBN/FC_S7.scl` | PLC → Programmbausteine → _IBN | **Gruppe-B-Blöcke (vor Import Hinweise beachten → siehe Abschnitt "Gruppe B"):** | SCL-Datei | Besonderheit | |---|---| | `Programming error.scl` | OB — direkt importierbar | | `_PerformanceMeasurement_/FB_PerfTest.scl` | Kein Default-Wert; falls gewünscht im Instanz-DB setzen | | `900_Communications/TCP-Logger/FB_CommunicationLogger.scl` | connectionID anpassen! Jam-Referenz prüfen! | | `970_Visu/FB_Visu_Jam.scl` | VAR_INPUT `nInJamCount` entfernt — Aufrufe prüfen | | `970_Visu/FB_Visu_JamStorage.scl` | Nur für UH01/UH02/UH03 relevant | --- ## Schritt 2: Baustein in Projektbibliothek speichern Nachdem der Baustein in einem PLC kompiliert wurde: 1. Baustein im Projektbaum markieren 2. Rechtsklick → **"In Projektbibliothek kopieren"** 3. Im Dialog: - Bibliotheksname: `HundM_CommonLib` - Typ: **Typ** (nicht Instanz) - Version: `V1.0.0` 4. Bestätigen → Baustein erscheint unter **Projektbibliothek → Typen** --- ## Schritt 3: Lokale Kopien in anderen PLCs ersetzen Für jeden weiteren PLC (UH02–UH05): 1. Lokalen Baustein in diesem PLC **löschen** (Rechtsklick → Löschen) - TIA Portal warnt, falls der Baustein noch aufgerufen wird — dann erst Aufrufe anpassen 2. In der **Projektbibliothek** (linkes Panel): `HundM_CommonLib → Typen` 3. Baustein per **Drag & Drop** in `Programmbausteine` des Ziel-PLCs ziehen 4. TIA Portal erstellt automatisch eine Bibliotheksreferenz (kein lokaler SCL-Code mehr) 5. **Kompilieren** und Konsistenzprüfung durchführen --- ## Schritt 4: Konsistenzprüfung aller PLCs Nach Abschluss aller Blöcke: 1. **Gesamtprojekt kompilieren:** Menü → Kompilieren → Alle Bausteine 2. **Konsistenzprüfung:** Extras → Konsistenz prüfen 3. Alle 5 PLCs müssen ohne Fehler kompilieren --- ## Gruppe B: Besondere Hinweise vor dem Import ### FB_CommunicationLogger — connectionID Die `connectionID` in diesem Block ist ein TCP-Verbindungsparameter, der je PLC eindeutig sein muss: | PLC | Aktuelle connectionID | |---|---| | UH01 | 99 | | UH02 | 100 (bewusst verschieden!) | | UH03 | 99 | | UH04 | 99 | | UH05 | 99 | **Empfehlung:** Nach Übernahme in die Projektbibliothek die `connectionID` als FB-Parameter herausziehen (VAR_INPUT), damit jeder PLC seinen eigenen Wert im Aufruf setzen kann. Alternativ: Im Instanz-DB der jeweiligen PLC nach dem Drag & Drop anpassen. **Zusätzlich:** Zeile mit `"DB_JamArea0102"` ist UH01-spezifisch. In anderen PLCs diesen Abschnitt anpassen oder auskommentieren. ### FB_Visu_Jam — VAR_INPUT entfernt Die CommonLib-Version hat `nInJamCount : UInt` aus VAR_INPUT entfernt (war unbenutzt). Falls bestehende Aufrufe in UH01 diesen Parameter übergeben: → Den Aufruf in UH01 anpassen (Parameter entfernen) --- ## Git-Workflow nach TIA-Export Nach erfolgter Bibliotheksintegration und erneutem TIA Portal Export: ``` # Erwartete Git-Änderungen: # - Lokale .scl Dateien in UH01-UH05 werden ersetzt durch TIA-interne Library-Referenz # - Möglicherweise erscheinen neue .liblink Dateien für die CommonLib-Blöcke git status # Geänderte/gelöschte .scl Dateien überprüfen # _CommonLib/*.scl bleiben unverändert (Quelle der Wahrheit) git add _CommonLib/ git commit -m "CommonLib angelegt: 11 standardisierte P1/P2-Bausteine" ``` **Regel:** Änderungen an standardisierten Blöcken **immer** in `_CommonLib/` beginnen, dann in TIA Portal aktualisieren, dann exportieren und committen. --- ## Übersicht: Was wurde standardisiert ### Gruppe A (6 Blöcke — 100% identisch) - `FC_GET_PROFINET_DEVICE_STATES` — PROFINET-Gerätezustände - `FB-OPC_UA_System-Stat` — OPC-UA Statusübersetzung - `FC_S7` — S7 PUT-Wrapper (CPU-zu-CPU) - `FC_CarrierManipulator` — HMI Carrier-Manipulation - `FC_Int2String` — String-Konvertierung - `FB_FortnaTele_Placeholder` — Fortna UDT-Platzhalter ### Gruppe B (5 Blöcke — bereinigt) - `Programming error` (OB) — UH02-VAR_TEMP entfernt - `FB_PerfTest` — Default-Wert bereinigt - `FB_CommunicationLogger` — connectionID-Hinweis ergänzt - `FB_Visu_Jam` — nInJamCount entfernt, REGION vereinheitlicht - `FB_Visu_JamStorage` — UH01 als kanonische Version ### Nicht standardisiert (Gruppe D — 11 Blöcke) Topologie-spezifische Blöcke (FB_Main, FB_PreMain, FB_CallSensors, FB_Visu, FB_CommunicationWCSBL, FC_Call_Jams, FC_Direction, FB_Visu_Jams, FC_CARR_GLOB_CORRECTION, FC_BARCODE_SEARCH, FC_Jam) bleiben je UH individuell — Pflege weiterhin getrennt.