Die Kommunikation von LabVIEW mit speicherprogrammierbaren Steuerungen (SPS) der Firma Beckhoff funktioniert via TwinCAT 2 ADS.NET einfach und zuverlässig. Nur wenige Schritte sind für ein Basis-Beispiel nötig.
Beckhoff TwinCAT 2 ADS
Automation Device Specification (ADS) ist das Kommunikationsprotokoll von TwinCAT. Die Schnittstelle ist geräte- und feldbusunabhängig. Folgende Bibliotheken werden von Beckhoff für das Leitsystem zur Verfügung gestellt (siehe Beckhoff ADS):
- ADS.NET-Komponente
- ADS-DLL
- ADS-OCX (ActiveX-Control)
- ADS-Script-DLL
- ADS-WebService
- ADS-Java-DLL
Für das nachfolgende Beispiel haben wir die erste Option, die ADS.NET-Komponente, gewählt.
LabVIEW-Beispiel mit ADS.NET
Vorbereitungen
- Zuerst laden wir TwinCAT 2 von hier und führen die Datei aus. Dadurch werden unter anderem TwinCAT System Manager, TwinCAT PLC Control und der TwinCAT System Service installiert.
- Hierauf speisen wir speisen die SPS, schliessen sie ans physische Netzwerk an und schalten sie ein.
TwinCAT System Manager
Dann starten wir TwinCAT System Manager und fügen die angeschlossene SPS hinzu. SPS und PC müssen sich im selben Subnetz befinden. Dazu führen wir nach dem Start des System Manager folgende Schritte aus:
- Zielsystem wählen
- Suchen (Ethernet)
- Broadcast Search
- Gefundene SPS wählen, Adressen Info / IP Adresse wählen, Route hinzufügen
- Benutzername: Administrator, Passwort: 1 (Standard)
TwinCAT PLC Control
Sodann öffnen wir TwinCAT PLC Control, legen eine neue Datei an und schreiben das SPS-Steuerungsprogramm. Die üblichen Datentypen werden unterstützt: BOOL, WORD, INT, UINT, STRING, REAL, … Im Demo-Beispiel unten besteht das SPS-Programm lediglich aus einigen Variablen. Mit folgenden Schritten wird das Programm auf die SPS geladen und sichergestellt, dass es nach jedem SPS-Neustart gestartet wird:
- Wir wählen Online / Login,
- dann Online / Write Values
- und schliesslich Online / Create Bootproject.
LabVIEW
Nun erstellen wir das LabVIEW-Programm. Das Demo-Beispiel unten liest und schreibt eine der im SPS-Programm definierten Variablen. Konkret wird eine Integer-Variable ausgelesen, inkrementiert, geschrieben und wieder ausgelesen.
Ein paar Hinweise:
- Globale SPS-Variablen müssen mit einem Punkt vor dem Namen aufgerufen werden.
- Zwischen Gross- und Kleinschreibung wird nicht unterschieden.
ADS.NET-Beispiele von Beckhoff für LabVIEW gibt es übrigens hier. In diesen Beispielen werden zusätzliche Möglichkeiten gezeigt, wie etwa:
- Zugriff auf ein Array in der SPS
- Übertragen von Strukturen an die SPS
- Ereignisgesteuertes Lesen
- Lesen und Schreiben von DATE/TIME-Variablen
- Auslesen von SPS-Variablen-Deklarationen
- Lesen und Schreiben von SPS-Variablen eines beliebigen Typs