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
-
Engineering & Digitalisierung
Der ganz einfache Einstieg in die Produktionsanalyse
Mitsubishi Electric erweitert sein Softwareportfolio um die browserbasierte DataNavigateApp.
-
Mit dem Smartphone auslesbar
Nutzungsüberwachung für Crimpwerkzeuge
Im Schaltschrank- und Maschinenbau hängt die Qualität elektrischer Verbindungen maßgeblich von der Zuverlässigkeit der eingesetzten Crimpwerkzeuge ab.
-
Sensorik
Induktiver Wegsensor überwacht thermische Gehäusedehnungen
Avibia erweitert sein Portfolio zur Schwingungs- und Zustandsüberwachung um den induktiven Wegsensor HEP-100 von MC-Monitoring.
-
Überbrückung von Netzunterbrechnungen
Puffermodule mit 20 und 40A
Mit den neuen PCC-1424-200-0 und PCC-1424-400-0 erweitert Block sein Portfolio um leistungsstarke Puffermodule mit 20 und 40A.
-
Stromversorgung
IPC-Netzteil erhält Schutzlackbeschichtung für raue Umgebungen
Bicker Elektronik erweitert sein lüfterloses 200W-Industrie-PC-Netzteil BEP-520C um eine standardmäßige Schutzlackbeschichtung (Conformal Coating).
-
Cybersecurity
Arm-basierte Industriecomputer erhalten IEC62443-4-2-SL2-Zertifizierung
Moxa hat für seine 64Bit-Arm-basierten Industriecomputer der UC-Serie mit dem Betriebssystem Moxa Industrial…
-
Industrielle Kommunikation
Modulare Routergeneration kombiniert Flexibilität, Edge Computing und Security
Insys Icom erweitert sein Portfolio um die modulare Routergeneration MRX.neo.
-
Rekordbeteiligung beim 2026 European Ethercat Plug Fest
Das 36. European Ethercat Plug Fest endete nach zwei intensiven Tagen am 15.…
-
Kanalabsicherung mit Switch-Mode-Design
Intelligente Fehlerstrategie für DIN-Schienen-Netzteile
24V-Schaltschränke für die DIN-Schiene enthalten wichtige Stromversorgungs- und elektronische Sicherungsvorrichtungen (E-Fuses) für eine…
-
Philip Harting verstärkt VDMA-Hauptvorstand
Der VDMA hat Philip Harting in den Hauptvorstand aufgenommen.
-
Schwere Industriesteckverbinder bei der Montage und Inbetriebnahme
Schneller verbunden, schneller produktiv
Mit welchen Herausforderungen sieht sich der Maschinen und Anlagenbau konfrontiert und welchen Beitrag…
-
Antriebstechnik
Hybridleitungen reduzieren Aufwand, Kosten und Störanfälligkeit
Antriebssysteme sollen heute kompakt, leistungsfähig und zuverlässig sein. Gleichzeitig steigen die Anforderungen an…
-
Interview: Wie Hilscher und Schwarz Digits eine europäische Edge-to-Cloud-Infrastruktur für industrielle Datenräume und digitale Services aufbauen
Datensouveränität beginnt an der Maschine
Maschinendaten gelten als Grundlage für digitale Services, KI-Anwendungen und neue Geschäftsmodelle. Gleichzeitig steigen…
-
Design, Produktsuche und Beschaffung auf einer Plattform
Nachschlagewerk für Automatisierer
Wer als Maschinen- oder Anlagenbauer schnell die richtigen Komponenten finden, Schaltpläne skizzieren und…
-
Elektroexporte wachsen etwas langsamer
Mit Warenlieferungen im Wert von 20,7Mrd.€ verzeichnete die deutsche Elektro- und Digitalindustrie auch…
-
DataTec verzeichnet 9% mehr Aufträge
DataTec hat das Geschäftsjahr 2025/2026 in einem angespannten wirtschaftlichen Umfeld erfolgreich abgeschlossen.
-
NIS-2 in fünf Schritten strukturiert und pragmatisch umsetzen
So gelingt das Setup
Cyberangriffe auf industrielle Systeme sind längst keine Ausnahme mehr. Produktionsanlagen, Steuerungen und vernetzte…
-
Erfolgreiches Omlox-Plugfest
Auf dem Omlox-Plugfest prüften 21 Experten aus neun Unternehmen zwölf verschiedene Omlox-Komponenten, darunter…
-
Energy-Monitoring für nachhaltige Umgebungen
Plug&Play-Energieüberwachung
Facility-Management-Systeme (FMS) ermöglichen die Echtzeitmessung/-überwachung des Energieverbrauchs für die Kostenoptimierung. Sie unterstützen erweiterte…
-
Schwarz Digits eröffnet neuen Campus
Schwarz Digits, die IT- und Digitalsparte der Schwarz Gruppe, hat ihren neuen Campus…
-
Update-Management für vernetzte Maschinen
Aus Pflicht wird Potenzial
Vernetzte Maschinen müssen über ihren gesamten Lebenszyklus hinweg aktualisiert werden und Hersteller müssen…
-
Virtuelle SPS: Reif für die Praxis?
Lange galt die virtuelle SPS als Zukunftsvision. Inzwischen sehen viele Hersteller sie als…
-
IIoT und Cloud-Visualisierung
Sensordaten sicher erfassen und weltweit visualisieren
Edge Computing und Cloud-Technologien verändern den Umgang mit Produktionsdaten. Maschinen- und Sensordaten lassen…
-
Interview auf dem Eplan Next26
Wie KI, Daten und Plattformen die Elektrokonstruktion verändern
Auf dem Event Eplan Next26 in München standen die Zukunft des Engineerings, künstliche…
-
Stromversorgung außerhalb des Schaltschranks
Netzteilreihe mit Schutzart IP67
Mit der neuen Netzteilreihe S8NR bringt Omron robuste Netzteile mit Schutzart IP67 auf…
















