Files
HundM_Fortna/doc/SCL_Analyse_Standardisierung.md

9.5 KiB

SCL-Bausteinanalyse: Standardisierungspotenzial

Projekt: HundM_Fortna Datum: 2026-06-23 Analysierte Konfigurationen: UH01, UH02, UH03, UH04, UH05 Gesamt SCL-Dateien: ~224 Baustein-Deklarationen gefunden


Methodik

  • Eingeschlossen: Alle .scl-Dateien in projektspezifischen Verzeichnissen
  • Ausgeschlossen (bereits bibliothekarisiert):
    • */1_BaseSystemLib/** (UH01, UH04, UH05)
    • */2_ILSLib/** (UH01, UH04, UH05)
    • */BaseSystemLib/** (UH02, UH03)
    • */ILSLib/** (UH02, UH03)
    • LGF_DTLtoString_ISO (Siemens LGF-Standardbibliothek)
  • Kriterium: Baustein erscheint identisch (gleicher Name) in mehreren Konfigurationen → Duplikationspflege notwendig

Priorität 1 — In ALLEN 5 Konfigurationen vorhanden

Diese 22 Bausteine werden in jedem SPS-Projekt kopiert und separat gepflegt. Empfehlung: Sofort in eine gemeinsame Projektbibliothek auslagern.

Baustein Typ Kategorie Pfad
FB_CallSensors FB Sensoren 050_Sensors/
FB_PreMain FB Programmstruktur 075_PreMain/
FB_Main FB Programmstruktur 100_Main/
FC_CARR_GLOB_CORRECTION FC MFR 200_MFR/
FC_Direction FC MFR 200_MFR/
FC_Int2String FC (→ String) Hilfsfunktionen 400_BasicFunctions/FC/
FC_Jam FC Stau 400_BasicFunctions/FC/ ¹
FC_StorageLines FC Puffer 400_BasicFunctions/FC/ ²
FC_Call_Jams FC Stau 700_Jams/
FB_CommunicationWCSBL FB Kommunikation 900_Communications/ ³
FB_FortnaTele_Placeholder FB Kommunikation 900_Communications/
FB_CommunicationLogger FB Kommunikation 900_Communications/TCP-Logger/
FB_Visu FB Visualisierung 970_Visu/
FB_Visu_Jam FB Visualisierung 970_Visu/
FB_Visu_Jams FB Visualisierung 970_Visu/
FC_CarrierManipulator FC Visualisierung 970_Visu/
FC_BARCODE_SEARCH FC Barcode Programmbausteine/ (Root)
FC_GET_PROFINET_DEVICE_STATES FC PROFINET PROFINET/
Programming error OB Fehlerbehandlung Programmbausteine/ (Root)
FB-OPC_UA_System-Stat FB SCADA SCADA/
FB_PerfTest FB Performance _PerformanceMeasurement_/
FC_S7 FC IBN/Test _IBN/

Anmerkungen:

  • ¹ UH03: Datei liegt in 700_Jams/FC_Jam.scl statt 400_BasicFunctions/FC/
  • ² UH03: Datei liegt in 800_Storage/FC_StorageLines.scl statt 400_BasicFunctions/FC/
  • ³ UH03/UH04/UH05: Unterordner Fortna-WES-WCS/
  • ⁴ UH04/UH05: Unterordner Fortna-WES-WCS/Misc/

Priorität 2 — In 4 von 5 Konfigurationen vorhanden

Baustein Typ Vorhanden in Fehlt in Bemerkung
FB_EventLog_StepChange FB UH02, UH03, UH04, UH05 UH01 Neu, fehlt noch in UH01
FB_PriorityLogic FB UH01, UH03, UH04, UH05 UH02 UH02 hat FB_PriorityManagement (abweichende Logik)
FC_Get_LaneStatus FC (→ String) UH01, UH03, UH04, UH05 UH02 UH02 verwendet andere Lane-Logik

Priorität 3 — In 3 Konfigurationen vorhanden

Baustein Typ Vorhanden in Bemerkung
FB_Visu_JamStorage FB UH01, UH02, UH03 UH04/UH05 benötigen kein Jam-Puffer-Visu?

Priorität 4 — In 2 Konfigurationen vorhanden

4a) AI/Storage-Gruppe (UH02 + UH03)

Diese Gruppe enthält die Lagerungs- und Umstapelintelligenz. Beide Konfigurationen pflegen identische Kopien.

Baustein Typ
FB_LineEmptyAnalyze FB
FB_LineLvlAnalyze FB
FB_RearrangeSequencer FB
FB_RearrangeStartCoordination FB
FB_StockRemovalBLKModul FB
FB_StockRemovalSequencerUDT FB
FB_StorageManagement FB
FB_StorageManagementCall FB
FB_UpdateMessage FB

Hinweis: UH02 hat zusätzliche Varianten _New, _New_EY, Lvl1 — diese sollten konsolidiert werden (siehe Sonderanalyse unten).

4b) CPU-CPU-Exchange (UH02 + UH03)

Baustein Typ Pfad
FB_I-Device_ReceiveCarrier FB _CPU-CPU-Exchange/
FB_I-Device_SendCarrier FB _CPU-CPU-Exchange/

4c) Visu-Erweiterungen (UH02 + UH03)

Baustein Typ
FB_Visu_AuslagernAI FB
FB_Visu_AuslagernList FB
FB_Visu_ListPinband FB

4d) Kommunikation (paarweise)

Baustein Typ Vorhanden in
FB_CommunicationWES_ASRS FB UH02 + UH03
FC_Call_StorageLines FC UH02 + UH03
FB_CommunicationWES_DeviceHub FB UH04 + UH05

4e) Längenmessung (UH01 + UH05)

Baustein Typ Pfad
FB_Längenmessung FB Längenmessung/
FB_LaengenmessungAI FB 970_Visu/

4f) String-Konvertierung (UH01 + UH04)

Baustein Typ Rückgabetyp
FC_usint2String FC String
FC_Uint2TroString FC String

Zusatzempfehlung: Zusammen mit FC_Int2String (5x vorhanden) prüfen, ob alle drei durch Siemens-Standardfunktionen (INT_TO_STRING, USINT_TO_STRING) ersetzt werden können. Falls eigene Formatierung nötig: zu einer parametrierbaren FC zusammenfassen.

4g) AMR/F2H-Verwandtschaft (UH04 + UH05)

Baustein Typ Vorhanden in
FB_ScanMonitor FB UH04 + UH05
FB_TROHandshakeAMR FB UH04 + UH05

4h) Test-Bausteine (UH02 + UH03)

Baustein Typ Pfad
FB_Test_RotierenMT FB _IBN/

Sonderanalyse: Versionschaos — StockRemoval (UH02)

In UH02 existieren 4 Varianten desselben Kernbausteins nebeneinander:

Baustein Pfad Status
FB_StockRemovalBLKModul 200_MFR/_AutomatedIntelligence/ Original
FB_StockRemovalBLKModul_New 200_MFR/_AutomatedIntelligence/ Neuversion
FB_StockRemovalBLKModul_New_EY 200_MFR/_AutomatedIntelligence/Embi/ Sonderabzweig
Fb_StockRemovalManagementLvl1 200_MFR/_AutomatedIntelligence/ Lvl1-Erweiterung

UH03 hat daneben noch:

  • FB_StockRemovalManagementLvl2
  • FB_StockRemovalSequencer
  • FB_StorageManagement_Rework
  • FB_StorageTaskScheduler

Empfehlung: Auf eine versionierte Hauptvariante reduzieren. Unterschiede als konfigurierbare Parameter lösen. old/-Verzeichnisse aufräumen.


Sonderanalyse: "old/"-Verzeichnisse (technische Schulden)

Folgende Bausteine liegen in old/-Unterordnern und sollten entfernt werden:

Baustein Konfiguration Pfad
FB_AMR_Management UH04 200_MFR/_AutomatedIntelligence/old/
FB_F2H_Management UH05 200_MFR/_AutomatedIntelligence/old/

Nicht standardisierbar (anlagenspezifisch)

Diese Bausteine sind inhärent projektspezifisch und sollten nicht zusammengelegt werden:

Baustein Konfiguration Begründung
FB_PriorityManagement UH02 Abweichende Priorisierungslogik vs. FB_PriorityLogic
FB_OffsetCorrection UH02 Anlagenspezifische Korrektur
FC_ClearJam, FC_PutToHj UH01 Spezifische MFR-Logik UH01
FB_EmptyCarrBuffer, FB_Pin_EmptyBuffer UH01 Pin-Puffer spezifisch UH01
FB_SSCCAI UH01 SSCC-Scan spezifisch
ReadServerDiagnostics UH01 OPC-UA Diagnose
ReadSessionDiagnostics UH01 OPC-UA Diagnose
CheckForTimeOut UH01 OPC-UA Session-Timeout
LCom_Example (OB) UH01 Beispiel/IBN
TestBaustein, FB_TestMain UH01 IBN/Test
FB_BoomWorkStation UH01 Ladeschleife spezifisch
FB_ButtonAck UH01 Ladeschleife spezifisch
FB_DistanceFoot UH01 Ladeschleife spezifisch
FB_LoadingBoom_INBOUND UH01 Ladeschleife spezifisch
FB_MotorSimple_INBOUND UH01 Ladeschleife spezifisch
FB_StopperSimple / FB_StopperSpecial UH01 Ladeschleife — könnten aber zusammengefasst werden
FB_Tilt_TEST UH01 Test
FB_LV1BlockStorageManagement UH02 Spezifisch UH02
FB_Lvl1AdditionalRouting UH02 Spezifisch UH02
Fb_StockRemovalManagementLvl1 UH02 Spezifisch UH02
FB_StockRemovalManagementLvl2 UH03 Spezifisch UH03
FB_StockRemovalSequencer UH03 Spezifisch UH03
FB_StorageManagement_Rework UH03 Rework-Branch
FB_StorageTaskScheduler UH03 Spezifisch UH03
FB_AMR_Management_V2 UH04 AMR-Verwaltung UH04
FB_CallAMRManagement UH04 AMR-Aufruflogik UH04
FB_F2H_Management_Rework UH05 F2H Rework-Branch
FB_CallF2HManagement UH05 F2H-Aufruflogik UH05
FC_GetStationIndex UH05 Stationsindex UH05
FB_PhasenTest UH02 Phasenüberwachungs-Test
FB_Test_RotierenMT UH02, UH03 IBN-Test

Zusammenfassung: Standardisierungspotenzial

Priorität Anzahl Bausteine Konfigurationsbreite Aufwand
P1 — Alle 5 UH 22 5x Hoch, aber höchster Nutzen
P2 — 4 von 5 UH 3 4x Mittel
P3 — 3 von 5 UH 1 3x Niedrig
P4 — 2 von 5 UH 23 2x Nach Gruppen priorisieren
Gesamt 49

Top-5 Quick Wins

  1. FC_GET_PROFINET_DEVICE_STATES — Reine Diagnose-FC, kein anlagenspezifischer Inhalt. Sofort in BaseSystemLib.
  2. FB-OPC_UA_System-Stat — OPC-UA-Standard-Handling, identisch in allen 5 UH. Sofort in BaseSystemLib.
  3. Programming error (OB) — Standard-Fehlerbehandlungs-OB, keine Anlagenlogik.
  4. FC_Int2String / FC_usint2String / FC_Uint2TroString — String-Konvertierungen; prüfen ob INT_TO_STRING (STEP 7) ausreicht, sonst eine gemeinsame FC.
  5. FB_CommunicationLogger — TCP-Logger-Logik ohne anlagenspezifische Abhängigkeiten, in allen 5 UH identisch.