8.8 KiB
Diff-Analyse P1-Bausteine — HundM_Fortna
Stand: 2026-06-29 Analysiert: 22 Bausteine die in allen 5 Konfigurationen (UH01–UH05) vorhanden sind Methode: Vollständiger Inhaltsvergleich aller Versionen
Ergebnis-Übersicht
| Baustein | Gruppe | UH01 | UH02 | UH03 | UH04 | UH05 | Aktion |
|---|---|---|---|---|---|---|---|
FC_GET_PROFINET_DEVICE_STATES |
A | ✅ | ✅ | ✅ | ✅ | ✅ | In CommonLib → Projektbibliothek |
FB-OPC_UA_System-Stat |
A | ✅ | ✅ | ✅ | ✅ | ✅ | In CommonLib → Projektbibliothek |
FC_S7 |
A | ✅ | ✅ | ✅ | ✅ | ✅ | In CommonLib → Projektbibliothek |
FC_CarrierManipulator |
A | ✅ | ✅ | ✅ | ✅ | ✅ | In CommonLib → Projektbibliothek |
FC_Int2String |
A | ✅ | ✅ | ✅ | ✅ | ✅ | In CommonLib → Projektbibliothek |
FB_FortnaTele_Placeholder |
A | ✅ | ✅ | ✅ | ✅ | ✅ | In CommonLib → Projektbibliothek |
Programming error (OB) |
B | ✅ | ⚠️ | ✅ | ✅ | ✅ | UH02 bereinigen (VAR_TEMP entfernen) |
FB_PerfTest |
B | ✅ | ✅ | ⚠️ | ✅ | ✅ | UH03 Default-Wert klären/entfernen |
FB_CommunicationLogger |
B | ✅ | ⚠️ | ✅ | ✅ | ✅ | connectionID + JAM-Ref. beachten! |
FB_Visu_Jam |
B | ⚠️ | ✅ | ✅ | ✅ | ✅ | UH01 cleanup: nInJamCount entfernt, REGION vereinheitlicht |
FB_Visu_JamStorage |
B | ✅ | ✅ | ⚠️ | — | — | UH03 hat HMI-Block auskommentiert (nur UH01/02/03) |
FB_Main |
D | ❌ | ❌ | ❌ | ❌ | ❌ | Nicht standardisierbar — TRO-Nummern, Topologie |
FB_PreMain |
D | ❌ | ❌ | ❌ | ❌ | ❌ | Nicht standardisierbar — EStop, Monitoring |
FB_CallSensors |
D | ❌ | ❌ | ❌ | ❌ | ❌ | Nicht standardisierbar — Sensor-IDs, Hardware |
FB_Visu |
D | ❌ | ❌ | ❌ | ❌ | ❌ | Nicht standardisierbar — TRO-Ranges, Config |
FB_CommunicationWCSBL |
D | ❌ | ❌ | ❌ | ❌ | ❌ | ConnectionID 10/20/30/40/50, Logik je UH reduziert |
FC_Call_Jams |
D | ❌ | ❌ | ❌ | ❌ | ❌ | Jam-Bereichsnummern je UH (0100/1100/2100/4000/5000) |
FC_Direction |
D | ❌ | ❌ | ❌ | ❌ | ❌ | Weichen-Nummern je UH |
FB_Visu_Jams |
D | ❌ | ❌ | ❌ | ❌ | ❌ | Jam-Instanzen je UH |
FC_CARR_GLOB_CORRECTION |
D | ❌ | ❌ | ❌ | ❌ | ❌ | 568–5826 Zeilen je UH (Faktor 10!) |
FC_BARCODE_SEARCH |
D | ❌ | ❌ | ❌ | ❌ | ❌ | UH01: 2 Lagerbereiche, UH02–UH05: 12 |
FC_Jam |
D | ❌ | ❌ | ❌ | ❌ | ❌ | UH02/UH03 mit erweiterter Storage-Logik |
Legende: ✅ = identisch mit Referenz | ⚠️ = kleine Abweichung | ❌ = topologie-spezifisch | — = nicht vorhanden
Gruppe A — 100% identisch (6 Blöcke)
FC_GET_PROFINET_DEVICE_STATES
- Typ: FC, 28 Zeilen
- Funktion: Liest PROFINET-Gerätezustände (vorhanden/gestört) via
DeviceStates() - Status: Alle 5 Versionen byte-identisch
- Kanonische Version: UH01 (gleichwertig)
FB-OPC_UA_System-Stat
- Typ: FB, 73 Zeilen
- Funktion: Übersetzt internen Anlagenstatus in OPC-UA SCADA-Statuscodes
- Status: Alle 5 Versionen byte-identisch
- Kanonische Version: UH01 (gleichwertig)
FC_S7
- Typ: FC, 63 Zeilen
- Funktion: S7-PUT Wrapper für CPU-zu-CPU-Datenaustausch
- Status: Alle 5 Versionen byte-identisch
- Kanonische Version: UH01 (gleichwertig)
FC_CarrierManipulator
- Typ: FC, 159 Zeilen
- Funktion: HMI-gesteuerte Carrier-Manipulation in Jam-Listen (Löschen, Verschieben, HyperJam)
- Status: Alle 5 Versionen byte-identisch (MD5 identisch)
- Kanonische Version: UH01 (gleichwertig)
FC_Int2String
- Typ: FC, 25 Zeilen
- Funktion: Wandelt INT in String, entfernt führendes "+" (Autor: Christian Forkl, 28.07.2021)
- Status: Alle 5 Versionen byte-identisch
- Kanonische Version: UH01 (gleichwertig)
FB_FortnaTele_Placeholder
- Typ: FB, 37 Zeilen (nur Variablendeklaration, kein Code)
- Funktion: Platzhalter-Baustein mit allen Fortna WES/WCS UDT-Instanzen zur Typ-Aktivierung
- Status: Alle 5 Versionen byte-identisch
- Kanonische Version: UH01 (gleichwertig)
Gruppe B — Kleine Abweichungen (5 Blöcke)
Programming error (OB)
- Typ: OB (Organization Block), 33 Zeilen
- Funktion: Fehlerbehandlung bei Programmierfehler, schreibt Fehlerinfo in DB_Error
- Abweichung UH02: Hat zusätzliche
VAR_TEMPSektion mit ungenutzterTemp_1 : Bool - Entscheidung: UH01-Version ist korrekt. UH02-VAR_TEMP ist redundant und sollte entfernt werden.
- CommonLib-Version: UH01 (ohne VAR_TEMP)
FB_PerfTest
- Typ: FB, 105 Zeilen
- Funktion: Leistungsmessung — zählt Trolley-Releases und protokolliert Zeitstempel
- Abweichung UH03:
nInGoalFlags : Int := 498;(Default-Wert = 498 = Array-Größe 500 minus 2) - Abweichung UH03: Eine fehlende Leerzeile nach
END_IF - Entscheidung: Default-Wert in UH03 war vermutlich temporär für Tests gesetzt. UH01-Version (kein Default) ist der Standard. Falls UH03 den Default bewusst nutzt, muss dieser nach TIA-Import im Instanz-DB gesetzt werden.
- CommonLib-Version: UH01 (kein Default-Wert für
nInGoalFlags)
FB_CommunicationLogger
- Typ: FB, 229 Zeilen
- Funktion: TCP-Logger Kommunikation zu Fortna WCSBL, empfängt GOHDRespM-Telegramme
- Abweichung UH02:
connectionID := 100(UH01/UH03/UH04/UH05 = 99) - Wichtig:
connectionIDmuss je PLC eindeutig sein! Dies ist KEIN Fehler in UH02, sondern möglicherweise bewusst. - Weitere Abweichung: Zeilen 171–179 (Jam-Referenz auf
"DB_JamArea0102") sind UH01-spezifisch - Entscheidung: CommonLib-Version nimmt UH01 als Basis mit explizitem Kommentar:
connectionIDmuss beim Import in UH02–UH05 angepasst werden- Jam-Referenz
"DB_JamArea0102"bei anderen PLCs auskommentieren oder ersetzen
- CommonLib-Version: UH01 mit Hinweis-Kommentaren
FB_Visu_Jam
- Typ: FB, 207 Zeilen
- Funktion: HMI-Listenverwaltung für Jam-Carrier-Anzeige (Scroll, Carrier-Manipulation)
- Abweichung UH01: Hat ungenutzten
VAR_INPUT nInJamCount : UInt— in UH02/UH03/UH04/UH05 nicht vorhanden - Abweichung UH01: REGION-Name "Carrier Manipulation" — in anderen UH "FC_CAR_MOVE"
- Bereinigungen in CommonLib-Version:
VAR_INPUTSektion vollständig entfernt (nInJamCountwar unbenutzt)- REGION umbenannt zu "FC_CAR_MOVE" (einheitlich mit UH02–UH05)
- CommonLib-Version: Bereinigt
FB_Visu_JamStorage
- Typ: FB, 200 Zeilen
- Funktion: HMI-Listenverwaltung für Lager-Jam-Carrier-Anzeige (nur in UH01/UH02/UH03)
- Nicht vorhanden in: UH04, UH05
- Abweichung UH03: HMI-REGION (Zeilen 193–196) ist auskommentiert —
nCapacitySetHMI-Zuweisung deaktiviert - Entscheidung: UH01-Version ist die vollständigste (aktive HMI-Logik). UH03 hat bewusst deaktiviert.
- CommonLib-Version: UH01 (aktive HMI-Logik)
Gruppe D — Topologie-spezifisch (11 Blöcke)
Diese Blöcke können nicht ohne vollständiges Redesign standardisiert werden, da sie hartcodierte Werte enthalten, die die physikalische Anlagentopologie abbilden.
| Baustein | Hartcodierte Topologie-Werte | Größenunterschied |
|---|---|---|
FB_Main |
TRO-Nummern (100er/200er/300er/400er/500er), Workstations, Carousel-IDs, UDT-Referenzen | 1835–9293 Zeilen |
FB_PreMain |
EStop-Konstanten (10–31 je UH), Monitoring-Instanzen, Befeuerungs-Konfiguration (1x/2x/4x) | 491–2373 Zeilen |
FB_CallSensors |
Sensor-IDs (BG0280/BG3240 etc.), Schaltschrank-State-Referenzen | 769–11649 Zeilen |
FB_Visu |
TRO-Ranges, Schaltschrank-IDs, EStop-Array-Größen | 70–1796 Zeilen |
FB_CommunicationWCSBL |
ConnectionID 10/20/30/40/50 je UH, Telegramm-Logik je UH verschieden | — |
FC_Call_Jams |
Jam-Bereichsnummern (0100er/1100er/2100er/4000er/5000er) | — |
FC_Direction |
Weichen-Nummern (cSwi107/cSwi202/cSwi313/cSwi405/cSwi505) | — |
FB_Visu_Jams |
Jam-Instanzen (Anzahl und Art je UH) | 32–52 KB |
FC_CARR_GLOB_CORRECTION |
Jam-Bereiche, Stationsnummern | 568–5826 Zeilen |
FC_BARCODE_SEARCH |
Lagerbereiche: UH01=2, UH02–UH05=12 | — |
FC_Jam |
UH02/UH03 mit erweiterter CarrierStatisticsStorage-Logik |
85–203 Zeilen |
Empfehlung für Gruppe-D-Blöcke
Langfristig könnten diese Blöcke durch Code-Generierung aus einer zentralen Topologie-Konfigurationsdatei (z.B. UDT-Array oder JSON) erstellt werden. Kurzfristig: Getrennte Pflege je UH bleibt notwendig.
Entscheidungsstatus FC_StorageLines (Sonderfall)
FC_StorageLines war zunächst als P1-Kandidat eingestuft:
- UH01, UH03, UH05: identisch (gleiches MD5)
- UH02, UH04: abweichend (unterschiedliche Storage-Strukturen)
Da nicht alle 5 UH identisch sind, wurde dieser Block nicht in die CommonLib aufgenommen. Möglichkeit: Separate CommonLib-Instanz nur für UH01/UH03/UH05 — bei Bedarf ergänzen.