Programmierung, Schnittstellen und Integration

Der Kunde kann eigene Programme schreiben, sodass sich PI Controller nahtlos in seine Applikation integrieren. Dazu stehen verschiedene Bibliotheken und Treiber zur Verfügung, die den Zugriff auf den Controller in Form von Funktionsaufrufen erlauben. Mit wenig Aufwand kann eine Verbindung aufgebaut und mit dem Controller kommuniziert werden, unabhängig von der Kommunikationsschnittstelle des Controllers.

Folgende Bibliotheken und Treiber für verbreitete Programmiersprachen und Programme sind im umfangreichen Softwarepaket PI Software Suite der Controller enthalten:

C, C++, C#

Für textbasierte Sprachen wie C, C++ und C# steht eine API zur Verfügung, um Controller aus selbstentwickelten Programmen direkt anzusteuern. Diese API ist als dynamische Bibliothek für Windows oder für Linux verfügbar. Für macOS kann eine solche auf Anfrage zur Verfügung gestellt werden. Sie ermöglicht eine einfache Anbindung an die entsprechende Entwicklungsumgebung.

Python

PI stellt PIPython zur Verfügung, welches eine Sammlung von Python-Modulen ist, mit denen Controller direkt über Python gesteuert werden können. Dadurch verbindet sich die Mächtigkeit dieser Programmiersprache mit der Flexibilität der PI-eigenen GCS-Kommandos. Darüber hinaus bietet PIPython zahlreiche nützliche Hilfsfunktionen. Einige Controller von PI erlauben es darüberhinaus Python-Skripte auszuführen, um komplexe Aufgaben unabhängig von einer Verbindung zu einem Host-PC zu lösen.

PIPython online manual

MATLAB

Mit dem PI MATLAB Treiber können Controller direkt in MATLAB angesteuert werden. Dafür werden keinerlei zusätzliche MATLAB Toolboxen benötigt. Eine Version für Windows ist in der Installation enthalten, eine Version für Linux-Betriebssysteme kann auf Anfrage bereitgestellt werden.

NI LabVIEW

Der PI GCS NI LabVIEW Treibersatz bietet die vollständige Unterstützung von NI LabVIEW als Programmiersprache für kundenspezifische Applikationen. Er beinhaltet neben praxisnahen Beispielen ein vollständiges Treiberpaket, einschließlich eines komfortablen Konfigurations-VI. Da beinahe der gesamte Treibersatz auf reinem NI LabVIEW-Code und NI-VISA-Kommunikation basiert, ist er plattformunabhängig und unterstützt alle Controller von PI, unabhängig vom angeschlossenen Positioniertisch. Mit Ausnahme der Konfigurationen sind alle VIs offen zugänglich und beinhalten eine umfangreiche Online-Hilfe. Durch die weitreichende Abwärtskompatibilität des Treibersatzes wird die Nachhaltigkeit der Kunden-Applikation gesichert.

Für weniger verbreitete Programmiersprachen, können bei PI schnell und unkompliziert kundenspezifische Lösungen angefragt werden:

Beispiele

Für alle unterstützten Programmiersprachen werden fertige Beispiele mitgeliefert, mit denen der Kunde sofort eine funktionsfähige Applikation zusammenstellen kann. Diese Beispiele beinhalten erste Schritte wie den Verbindungsaufbau und die grundlegende Kommunikation mit dem Controller ebenso wie umfangreichere Funktionalitäten mit verschiedenen Achsen. Beispiele hierfür sind die Verwendung des Funktionsgenerators und des Datenrekorders. Auf Wunsch können Beispiele erstellt und erweitert werden, um kundenspezifische Probleme zu lösen.

Da die Auswahl an unterstützten Software-Funktionen von den Funktionen des Controllers abhängig sind, lesen Sie hierfür bitte die entsprechenden Datenblätter und Benutzerhandbücher.

Möglichkeit zum Debugging

Für das Debugging von Makros, Skripten und Programmen werden Tools mitgeliefert, die den Programmierer bei der Fehlersuche unterstützen. Die PI PC-Software PIMikroMove® unterstützt das Debuggen von GCS-Makros. Das Makro läuft dabei auf dem PC und die enthaltenen Kommandos werden einzeln zum Controller übertragen. Damit lassen sich z. B. Variablennamen auslesen, der logische Verlauf testen und vieles mehr.

Einige Controller können über Python-Skripte angesprochen werden, die direkt auf dem Controller laufen. Hier ist sogar ein Cross-Debugging möglich. Dabei läuft das Skript auf dem Controller, während der Entwickler am PC arbeitet und den Debugger von dort aus bedienen kann.