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