Files
HundM_Fortna/_CommonLib/DIFF_ANALYSE.md
T

8.8 KiB
Raw Blame History

Diff-Analyse P1-Bausteine — HundM_Fortna

Stand: 2026-06-29 Analysiert: 22 Bausteine die in allen 5 Konfigurationen (UH01UH05) 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 5685826 Zeilen je UH (Faktor 10!)
FC_BARCODE_SEARCH D UH01: 2 Lagerbereiche, UH02UH05: 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_TEMP Sektion mit ungenutzter Temp_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: connectionID muss je PLC eindeutig sein! Dies ist KEIN Fehler in UH02, sondern möglicherweise bewusst.
  • Weitere Abweichung: Zeilen 171179 (Jam-Referenz auf "DB_JamArea0102") sind UH01-spezifisch
  • Entscheidung: CommonLib-Version nimmt UH01 als Basis mit explizitem Kommentar:
    • connectionID muss beim Import in UH02UH05 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_INPUT Sektion vollständig entfernt (nInJamCount war unbenutzt)
    • REGION umbenannt zu "FC_CAR_MOVE" (einheitlich mit UH02UH05)
  • 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 193196) 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 18359293 Zeilen
FB_PreMain EStop-Konstanten (1031 je UH), Monitoring-Instanzen, Befeuerungs-Konfiguration (1x/2x/4x) 4912373 Zeilen
FB_CallSensors Sensor-IDs (BG0280/BG3240 etc.), Schaltschrank-State-Referenzen 76911649 Zeilen
FB_Visu TRO-Ranges, Schaltschrank-IDs, EStop-Array-Größen 701796 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) 3252 KB
FC_CARR_GLOB_CORRECTION Jam-Bereiche, Stationsnummern 5685826 Zeilen
FC_BARCODE_SEARCH Lagerbereiche: UH01=2, UH02UH05=12
FC_Jam UH02/UH03 mit erweiterter CarrierStatisticsStorage-Logik 85203 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.