Wie bereits erläutert, beinhalten Interfaces nur Methoden – Funktionsblöcke aber haben ebenso Daten. Somit stellt sich die Frage: Wie bekommt man über ein Interface den Zugriff auf diese Daten? Einfache Antwort: Man schreibt eine Methode, die das gewünschte Datum zurückliefert, wie etwa \’GetName\‘ oder \’IsReady\‘. Konsequent angewendet erzeugt der Applikationsprogrammierer ziemlich schnell Pärchen von Funktionen der immer gleichen Art, wie z.B. \’GetName\‘ / \’SetName\‘ oder \’IsReady\‘ / \’SetReady\‘. Solche Methodenpaare, die im Wesentlichen nur den Zugriff auf ein Datum freigeben, kann man zusammenfassen zu einem Property. Datenhandling mit Properties Nehmen wir als Beispiel das Interface IDrive vom vorangehenden Artikel der Serie und erstellen wir ein erweitertes Interface INamedDrive. Ein Property ist dabei eine Kombination aus zwei Methoden, die den Schreibzugriff bzw. Lesezugriff auf ein Datum kapseln. Für den Benutzer des Properties stellt sich dieses dabei wie eine Variable dar. Der Compiler sorgt automatisch für den Aufruf der richtigen Zugriffsmethode bzw. meldet einen Fehler, wenn diese nicht implementiert ist. So wird man vermutlich INamedDrive im obigen Beispiel nur mit einem lesenden Zugriff auf den Namen ausstatten und damit das Schreiben unterbinden. Im Hauptbaustein PLC_PRG (aus dem vorangegangen Artikel) deklarieren wir einen Funktionsblock CANopen_DriveB_Named, der das neue Interface implementiert. Im Rumpf des Bausteins in Bild 2 kann jetzt auf das Property wie auf eine Variable zugegriffen werden. Will man nun den Zugriff auf komplexe Datentypen wie z.B. eine Struktur erlauben, dann kann ein Property jedoch problematisch sein. Meist will der Applikationsprogrammierer ja nur auf ein einziges Strukturelement zugreifen. Eine Methode, die dahintersteckt, liefert allerdings immer die gesamte Struktur zurück. Das bedeutet: Übergibt man einem Property direkt den Datentyp Struktur, dann werden zu viele Daten kopiert – und das wirkt sich auf die Laufzeit des Programms aus. Wie kann man dieses Problem umgehen? Die Antwort liefert der Datentyp \’REFERENCE TO\‘. Referenzen Eine Referenz ist eine Variable, die immer auf eine andere Variable verweist. Manipuliert man die Referenz, dann manipuliert man eigentlich die referenzierte Variable. Vom Pointer unterscheidet sich die Referenz dadurch, dass man die Referenz nicht explizit de-referenziert, sondern jeder Zugriff direkt auf die referenzierte Variable erfolgt. Ein Beispiel: Natürlich ist das Beispiel in Bild 3 erst einmal nicht sinnvoll, es soll jedoch die Verwendung von Referenzen in sinnvollen Anwendungen erläutern. Eine davon ist die Rückgabe von Daten bei Properties. Für unser Beispielprojekt nehmen wir eine Struktur DriverInfo an, mit den Elementen Name und Version. Statt zwei Properties für den Namen und die Version könnte man auch die gesamte Info als Struktur zurückliefern. Den Funktionsblock Canopen_DriveB_Named geben wir noch eine zusätzliche Methode. Diese liefert nicht einen einfachen Datentyp, sondern eine ganze Struktur zurück. Properties bieten somit die Möglichkeit, einen funktionalen Zugriff auf Daten zu veröffentlichen. Diese Zugriffsform entspricht den Forderungen der OOP nach Datenkapselung und ermöglicht gleichzeitig dem Programmierer den Komfort eines einfachen Datenzugriffs. Wie im Beispiel erläutert, kann der Applikationsprogrammierer solche Properties auch in einem Interface definieren und dadurch indirekt eine Vorschrift über die Daten in einem Funktionsblock formulieren. Eine weitere Verwendungsmöglichkeit von Properties ist die Rückgabe von skalierten Werten: So könnte ein Funktionsblock einen Wert in der Einheit Zentimeter speichern. Mit einem eigenen Property wird der Wert aber in der Einheit Zoll zurückgeliefert. Datentyp-Abfragen auf Interfaces: Casts Das Beispiel führt uns direkt zum nächsten Thema, der Typ-Konvertierung und Typ-Abfragen (Casts). Wir haben in Bild 2 im PLC_PRG ein Array von Elementen vom Typ IDrive definiert. Nur ein Element des Arrays definiert zusätzlich das spezialisierte Interface INamedDrive. Ob der Antrieb jedoch einen Namen hat oder nicht, sprich, ob er das Interface INamedDrive implementiert, kann an der Verwendungsstelle von Bedeutung sein. Dafür muss man zur Laufzeit Typinformation eines Objekts erfragen können. Für diese Aufgabe gibt es in CoDeSys den Operator __QUERYINTERFACE. Er erwartet zwei Operanden: zum einen das Interface-Objekt, von dem man ein anderes Interface erfragen will, zum anderen eine Interface-Variable mit dem Typ, auf den man prüfen will. Der Operator selbst liefert als Ergebnis TRUE, wenn der Cast, sprich die Typabfrage erfolgreich war. Zur Erläuterung verwenden wir den Funktionsblock CheckDriveError (siehe zweiten Teil der Artikelserie) und erweitern ihn um die Ausgabe eines Fehlertexts über die Variable stError. Der Code-Teil in Bild 5 lässt sich leicht nachvollziehen: __QUERYINTERFACE fragt den per Interface IDrive übergebenen Antrieb, ob er zusätzlich auch das Interface INamedDrive implementiert. Ist das der Fall, so gibt stError eine Fehlermeldung mit dem Antriebsnamen, statt einem allgemeinen Text zurück. Ein weiterer Anwendungsfall der Casts ist zwar seltener, aber dennoch möglich: von einer Interface-Referenz wird die Instanz benötigt, auf die sie verweist. In Codesys ist der geeignete Operator dafür __QUERYPOINTER. __QUERYPOINTER erwartet ebenfalls zwei Operanden: eine Interface-Referenz sowie einen Pointer auf einen Funktionsblock. Allerdings muss der Programmierer in diesem Fall selbst dafür sorgen, dass der Typ des POINTERs nach dem Cast auch richtig ist. Das Code-Stück in Bild 6 erläutert eine Verwendungsmöglichkeit des Operators: Von einer Interface-Referenz wird eine Kennung abgefragt, die in diesem Fall dem Typnamen entspricht. Somit weiß der Programmierer, welchen Typ die Instanz hat, auf die die Referenz verweist und er kann gefahrlos mit dem Pointer weiterarbeiten. Fazit Geht man den Weg zur objektorientierten Applikationsprogrammierung innerhalb der IEC61131-3 konsequent weiter, dann helfen Properties bei der Kapselung von Daten. Zusätzliche, auf der OOP basierende Operatoren, bewahren auch in komplexen Applikationen den Überblick. Der Nutzen: einfach wiederverwendbare Steuerungsprogramme. Der Sprachumfang des marktführenden IEC61131-3 Programmiersystems CoDeDys erfüllt die diesbezüglichen Erwartungen von erfahrenen Applikationsprogrammierern.
Handling von Daten und Aufrufsinformationen
-
Neue Bremssättel für Scheibenbremsen
Elektromagnetische Lüftung für hohe Stundenliestung
Die federbetätigten und elektromagnetisch gelüfteten Bremssättel der Baureihe MV FEM von Ringspann zeichnen sich durch Schalt-Performance, Design und Energieeffizienz aus. Konstrukteuren in vielen Schlüsselbranchen bietet sich damit eine…
-
Scada-Plattform Atvise mit Updates
Mehr Sicherheit und Kompatibilität für Scada-Systeme
Mit den Versionen 3.13 und 3.14 erweitert Bachmann Electronic seine Scada-Plattform Atvise um neue Funktionen für mehr Sicherheit, Flexibilität und Systemkompatibilität.
-
Intralogistik: Neue Baumer ToF-Sensoren machen sich klein
In der Intralogistik ist die Maximierung der Lagerkapazität entscheidend. Kompakte Sensoren spielen dabei eine Schlüsselrolle: Höchste Leistung in kompakter Bauform schafft mehr Platz für die Ware, denn die…
-
Beckhoff verbindet Sprachmodelle mit Echtzeitsteuerung
Physical AI: Wenn KI direkt Maschinen steuert“
Ein zentrales Thema für Beckhoff auf der Hannover Messe 2026 ist die Verschmelzung von künstlicher Intelligenz und klassischer Maschinensteuerung als Basis für Physical AI. In Halle 27 an…
-
Vorschau Hannover Messe 2026
KI als produktive Kraft in der Fabrik
Auf der Hannover Messe 2026 vom 20. bis 24. April soll künstliche Intelligenz (KI) in der Industrie greifbar werden. Praxisnah und anwendungsorientiert möchte die Messe zeigen, wie produzierende…
-
MX-System: Goodbye Schaltschrank
Mit dem MX-System hat Beckhoff einen Systembaukasten entwickelt, der dem Schaltschrank konstruktiv überlegen ist. Das MX-System ermöglicht die schaltschranklose Automatisierung von Maschinen und Anlagen und eröffnet so neue…
-
Virtuelle Inbetriebnahme als strategisches Werkzeug
Anforderungen beim Retrofit
Die virtuelle Inbetriebnahme wird im Maschinenbau häufig dafür genutzt, um Steuerungssoftware bereits vor der realen Inbetriebnahme zu testen und diese frühzeitig zu optimieren. Auf der Seite der Maschinenhersteller…
-
Anzeige
Intralogistik: Neue Baumer ToF-Sensoren machen sich klein
In der Intralogistik ist die Maximierung der Lagerkapazität entscheidend. Kompakte Sensoren spielen dabei…
-
Die Myzel Lifecycle Platform vernetzt Menschen, Maschinen und Daten
Wenn Sicherheit Wurzeln schlägt
Produktionsanlagen werden komplexer, gleichzeitig steigen die Anforderungen an Sicherheit, Dokumentation und Compliance. Betreiber…
-
Anzeige
MX-System: Goodbye Schaltschrank
Mit dem MX-System hat Beckhoff einen Systembaukasten entwickelt, der dem Schaltschrank konstruktiv überlegen…
-
Mobile Cobot-Lösung erhöht die Produktivität in der CNC-Fertigung
Für wechselnde Losgrößen und große Produktvielfalt geeignet
Das auf CNC-Präzisionsfertigung spezialisierte Unternehmen Harris RCS Ltd. verarbeitet eine Vielzahl von Materialien,…
-
Steuerung, Virtualisierung und Machine Learning auf einer gemeinsamen Plattform
KI für die SPS
Als virtualisierte, hardwareunabhängige Steuerungsplattform ermöglicht die Virtual PLCnext Control eine flexible und skalierbare…
-
Energiekette mit Zugentlastung versorgt Umschlagmaschine
Stabile Verbindung für höhenverstellbare Kabine
Die höhenverstellbare Fahrerkabine der Umschlagmaschinen aus der neuen G-Serie von Fuchs stellt besondere…
-
Auftragseingang im Indus-Segment Engineering steigt um 26,9%
Trotz der schwachen globalen Industriekonjunktur lag der Umsatz im exportorientierten Indus-Segment Engineering mit…
-
Very-Small-Form-Factor-Technologie für Next-Generation-Netze
MMC-Stecker für hochdichte Glasfaserverkabelung
Rosenberger OSI erweitert sein Portfolio um den MMC-Stecker (Miniature Multifiber Connector), eine Very-Small-Form-Factor-(VSFF)-Lösung…
-
Guido Schuette leitet Wago-Geschäftsbereich Automation
Wago gibt bekannt, dass Guido Schuette zum 1. April als Chief Business Officer…
-
Neues Logistikzentrum für Unitechnik
Unitechnik Systems investiert 3,5Mio.€ in eine automatisierte Logistikanlage am Firmensitz in Wiehl.
-
Durchgängiges Engineering – von der Planung bis zum Betrieb
Insellösungen überwinden
In der Robotik führen die Bruchstellen zwischen Projektphasen und Systemen zu signifikantem Mehraufwand,…
-
China baut Vorsprung aus
Deutsche Werkzeugmaschinenindustrie stabilisiert sich
Nach zwei Jahren mit spürbarer Investitionszurückhaltung zeigt die deutsche Werkzeugmaschinenindustrie erste Anzeichen einer…
-
Interview: Industrielle Server ‚Made in Germany‘
Die Datenfabrik braucht neue Server
Automatisierungssysteme erzeugen immer größere Datenmengen – durch Bildverarbeitung, KI oder vernetzte Produktionsanlagen. Gleichzeitig…
-
Herausforderungen beim Muting in der Praxis
Wenn Sicherheit zur Schwachstelle wird
Muting ermöglicht es, die Sicherheitsfunktion an Maschinen oder Anlagen vorübergehend zu überbrücken, damit…
-
So verändert KI die visuelle Inspektion
Weniger Regeln, mehr Verlässlichkeit
Der Fachkräftemangel und steigende Anforderungen an Qualität und Flexibilität erhöhen den Druck auf…
-
10. Drehgeberrunde auf der SPS 2025
Blick zurück und in die Zukunft
Die Podiumsdiskussion auf der SPS 2025 markierte ein besonderes Jubiläum: Bereits zum zehnten…
-
ASi bringt Industrie-4.0-Schnittstellen auf die unterste Feldebene
Einfach, sicher, skalierbar
AS-Interface – kurz ASi – ist seit Jahrzehnten fester Bestandteil der industriellen Automatisierung.…





















