Viele bekommen eine Maschine zum Laufen. Deutlich weniger schreiben ein Programm, das ein Kollege zwei Jahre später ohne Rückfragen ändern kann. Eine saubere Struktur verkürzt die Inbetriebnahme, erleichtert die Fehlersuche und macht spätere Änderungen kalkulierbar.
Modularer Aufbau
Ein Programm wird in abgeschlossene, funktional getrennte Bausteine zerlegt.
Organisationsbausteine (OB):
- OB1 (Hauptzyklus): ruft die Funktionsbausteine in nachvollziehbarer Reihenfolge auf
- OB100 (Anlauf): initialisiert Variablen und führt Anlaufprüfungen durch
- OB35 (Weckalarm): zeitkritische Aufgaben, etwa Regelungen in festem Raster
- OB82 (Diagnosealarm): behandelt Diagnoseereignisse der Hardware
Funktionsbausteine (FB): wiederverwendbare Module mit eigenen Instanzdaten. Ein FB kapselt die Logik eines Betriebsmittels, also eines Motors, eines Ventils oder eines Förderabschnitts.
Funktionen (FC): Module ohne Gedächtnis, für Berechnungen, Umrechnungen und Hilfsaufgaben.
Datenbausteine (DB): strukturierte Ablage für Anlagenparameter, Rezepte und Prozessdaten.
Namenskonventionen
Ohne verbindliche Namensregeln zerfällt jedes Teamprojekt:
- Sprechende Namen verwenden, die den Zweck erkennen lassen, etwa FB_Motorsteuerung oder FC_Durchfluss_berechnen
- Anlagenkennzeichen voranstellen, etwa Bereich1_Foerderer1_Drehzahl
- Einen Betriebsstandard festlegen, den alle kennen und anwenden
- Mehrdeutige Abkürzungen vermeiden
Wie ein Maschinenprogramm gegliedert sein kann
- Betriebsartenverwaltung: Hand, Automatik, Schrittbetrieb, Einrichtbetrieb
- Ablaufsteuerung: Schrittkette, als GRAPH oder als Zustandsautomat in strukturiertem Text
- Betriebsmittelsteuerung: je ein FB für Motor, Ventil und Zylinder
- Meldesystem: zentrale Erzeugung und Protokollierung der Meldungen
- Kommunikation: Datenaustausch mit HMI, Rezeptverwaltung, Anbindung an übergeordnete Systeme
- Diagnose: Überwachung des Anlagenzustands und Erfassung von Kennzahlen
Bausteine, die sich wiederverwenden lassen
Ein Motorbaustein sollte enthalten:
- Ein- und Ausschaltbefehle mit Verriegelungseingängen
- Rückmeldungsüberwachung mit Zeitüberwachung
- Behandlung von Überlast und Störung
- Betriebsstundenzähler
- Schnittstelle für das HMI-Bedienfenster
Ein Ventilbaustein sollte enthalten:
- Auf- und Zu-Befehle mit Stellungsrückmeldung
- Laufzeitüberwachung, um klemmende Ventile zu erkennen
- Möglichkeit zur Handübersteuerung
- Prüfbetrieb für die Instandhaltung
Dokumentation im Programm
Guter Code erklärt sich weitgehend selbst:
- Jedes Netzwerk kommentieren, und zwar mit dem Zweck, nicht mit einer Wiederholung des Codes
- Bausteinköpfe mit Beschreibung von Ein- und Ausgängen und dem erwarteten Verhalten versehen
- Änderungshistorie im Kopf des Programms führen
- Verweise auf R&I-Fließschema, Stromlaufplan und Pflichtenheft aufnehmen
Versionsstände sichern
- die Projektversionierung des TIA Portal nutzen
- an den Meilensteinen archivieren, also bei FAT, SAT und Übergabe
- jede Änderung mit Datum und Grund festhalten
In den Aufbaukursen von ED WARTENS Deutschland arbeiten wir genau an diesen Punkten: Struktur, wiederverwendbare Bausteine und eine Dokumentation, die den Anforderungen im Betrieb standhält.
