Vererbung in der objektorientierten Programmierung

Sep 6, 2024

Notizen zur Vorlesung über Vererbung in der objektorientierten Programmierung

Einleitung

  • Vererbung als wichtige Säule der objektorientierten Programmierung.
  • Erleichtert die Entwicklung neuer Funktionsbausteine (FBs) durch Erweiterung bestehender FBs.

Beispiel: Einzelsteuerfunktion für Schrittmotor

  • Basisklasse: FB-IDF-to-Dirvar-Speed.
  • Grundfunktionen: Aktivieren, Deaktivieren, Drehrichtung und Geschwindigkeit vorgeben.
  • Ziel: Neue Funktionalität zum Pausieren des Antriebs hinzufügen.

Erweiterung durch Vererbung

  • Neuer Funktionsbaustein mit Pausefunktionalität wird erstellt.
  • Vererbung ermöglicht es, bestehende Funktionen zu nutzen und neue hinzuzufügen.

Vererbung in ST (Structured Text)

  • Jeder neue Funktionsbaustein hat Zugriff auf die Funktionen der Basisklasse.
  • Keine Mehrfachvererbung in ST; jede Erweiterung hat nur eine Basisklasse.

Zugriffsmodifizierer

  • Protected: Methoden sind innerhalb der abgeleiteten Klasse sichtbar, aber nicht außerhalb.
  • Public: Methoden sind öffentlich und sichtbar.
  • Private: Methoden sind nur innerhalb der Klasse sichtbar.
  • Beispiel: mForward und mBackward sind als Protected deklariert.

Praktische Anwendung

  • Anwendung des FBs im Main-Programm
    • Nutzung von B-Log für das Sperren des Antriebs.
    • Beispielaufrufe für Vorwärts- und Rückwärtsbewegungen.

Erweiterung um Pausenfunktionalität

  • Neuer FB: EDF-to-Dir-Var-Speed-Pause.
  • Implementierung der Pausenfunktionalität:
    • Pulsgeber erzeugt High-Signal für Pausendauer.
    • Geschwindigkeit wird zwischengespeichert und nach der Pause wieder eingestellt.
  • Beispielanpassungen im Main-Programm:
    • Setzen der Pausendauer und Aufruf der Pause-Methode.

Fehlerbehebung

  • Sicherstellen, dass Log-Signal auch während des Betriebs überprüft wird.
  • Nutzung des super-Zeigers, um die Methode der Basisklasse aufzurufen.

Weitere Erweiterung: Rampenfunktionalität

  • Neuen FB: EDF-to-Dir-Var-Speed-Ramp erstellen.
  • Ziel: Rampenförmige Ansteuerung der Geschwindigkeit.
  • Methoden überschreiben:
    • mOn, mForward und mBackward werden modifiziert.
  • Nutzung von Timern zur Implementierung der Rampensteuerung.

Fazit

  • Vererbung reduziert Redundanz und ermöglicht einfache Erweiterungen.
  • Neue Anforderungen können leicht durch Erben und Modifizieren bestehender Klassen umgesetzt werden.
  • Beibehaltung der ursprünglichen Funktionalitäten der Basisklasse.