Definition und Zweck:
Kapselung (engl. Encapsulation) ist ein grundlegendes Prinzip der objektorientierten Programmierung (OOP) und der strukturierten Programmierung, das auch in der SPS-Programmierung angewendet wird. Es bedeutet, dass die internen Implementierungsdetails (Daten und Methoden) eines Moduls, einer Funktion oder eines Funktionsbausteins verborgen gehalten werden und der Zugriff darauf nur über klar definierte Schnittstellen (öffentliche Methoden oder Ein-/Ausgangsparameter) erfolgt.
Das Hauptziel der Kapselung ist es, die Komplexität eines Systems zu reduzieren, indem nur die relevanten Informationen nach außen gegeben werden. Sie schützt die internen Daten und die Logik eines Bausteins vor unbeabsichtigtem Zugriff oder Manipulation von außen.
Relevanz in der SPS-Programmierung:
In der IEC 61131-3 Programmierung wird Kapselung primär durch den Einsatz von Funktionsbausteinen (FB) realisiert:
- Private Variablen: Interne Variablen eines Funktionsbausteins sind von außen nicht direkt zugänglich. Sie können nur über die Ein- und Ausgangsparameter des FBs beeinflusst oder ausgelesen werden.
- Black-Box-Prinzip: Ein Programmierer, der einen Funktionsbaustein verwendet, muss nicht wissen, *wie* dieser intern funktioniert, sondern nur *was* er tut und welche Parameter er benötigt.
- Datenintegrität: Die Kapselung hilft, die Integrität der Daten innerhalb eines FBs zu gewährleisten, da sie nicht direkt von anderen Programmteilen verändert werden können.
Vorteile der Kapselung:
- Reduzierung der Komplexität: Macht das Programm übersichtlicher, da man sich nicht um alle internen Details kümmern muss.
- Wartbarkeit: Änderungen an der internen Implementierung eines gekapselten Bausteins haben keine Auswirkungen auf andere Programmteile, solange die Schnittstelle unverändert bleibt.
- Wiederverwendbarkeit: Gekapselte Bausteine sind leichter in verschiedenen Projekten oder mehrfach im selben Projekt zu verwenden.
- Fehlerreduzierung: Verhindert unbeabsichtigte Seiteneffekte und macht die Fehlersuche einfacher.
- Teamarbeit: Mehrere Programmierer können an verschiedenen gekapselten Bausteinen arbeiten, ohne sich gegenseitig zu beeinflussen.
Kapselung ist ein Kernprinzip für die Entwicklung von hochwertiger, robuster und wartbarer Automatisierungssoftware.
→ Siehe auch: Interface-Programmierung, Funktionsbaustein (FB), Objektorientierte Programmierung, Baustein, Schnittstelle

