Logikprogramm
| Beschreibung |
PolyScope X-Anwendungen können ein Logikprogramm enthalten, das unabhängig vom Hauptroboterprogramm kontinuierlich im Hintergrund läuft. Dies ist nützlich für Aufgaben, die auch dann weiterlaufen müssen, wenn der Roboterarm ausgeschaltet ist, das Hauptprogramm angehalten oder beendet wurde oder der Bediener einen Sicherheitsbereich betreten hat. Zu den typischen Anwendungsbereichen gehören die Aufrechterhaltung der Feldbus-Kommunikation (Modbus, Ethernet/IP, PROFINET, Socket, XmlRPC), die Reaktion auf externe Sensoreingaben, die Meldung des Roboterstatus an eine Produktions-SPS sowie die Steuerung externer Geräte, wenn das Hauptprogramm angehalten wird. Das Logikprogramm darf keine Funktionen verwenden, die den Roboterarm direkt bewegen, die Nutzlast ändern oder die TCP-Parameter modifizieren. |
|
Anwendungsbeispiele mit Logikprogramm |
|
|
Lizenz |
Für das Logikprogramm ist eine Lizenz erforderlich, die über das Kundenportal erworben werden kann.
|
|
Steuerung des Logikprogramms |
Wählen Sie auf der Seite „Programm“ in der Seitenleiste die Option „Logikprogramm“ aus. Die erweiterte Seitenleiste zeigt die Steuerelemente zur Navigation durch die verschiedenen Teile des Logikprogramms an. Außerdem können Sie damit das Programm starten, anhalten, stoppen und zurücksetzen.
|
||||||
|
|
Die Schaltfläche „Programm ausführen“ wird je nach Status des Logikprogramms entweder zu „Programm ausführen “ oder zu „Programm stoppen“. Sie dient als Schnellzugriff auf Programmsteuerungsaktionen, die im Kontextmenü des Logikprogramms verfügbar sind.
Die vier Anzeigen des Logic-Programms zeigen den aktuellen Status des Programms an. Außerdem wird angegeben, ob das Programm so konfiguriert ist, dass es automatisch gestartet wird, wenn eine Anwendung geladen wird.
|
|
Struktur des Logikprogramms |
Ein Logikprogramm weist dieselben strukturellen Abschnitte auf wie ein Hauptprogramm:
Das Roboterprogramm und das Logikprogramm verfügen jeweils über einen eigenen Satz globaler Variablen, einen unabhängigen Thread-Pool und einen unabhängigen Ausführungslebenszyklus. Das Starten, Stoppen oder der Fehler eines Programms führt nicht zum Stoppen des anderen. Ein
|
|
|
Im Abschnitt „Vor dem Start“ können Sie das Programm nur einmal ausführen.
Im Abschnitt „Module“ sehen Sie eine Liste der für das Programm verfügbaren Funktionen und Threads.
|
|
Datenaustausch mit dem Roboterprogramm |
Die Kommunikation zwischen dem Roboterprogramm und dem Logikprogramm erfolgt in erster Linie über Anwendungsvariablen . Variablen können sowohl im Roboter- als auch im Logikprogramm gesetzt und ausgelesen werden. In diesem Beispiel werden die in den Eingabepuffer der Roboterzelle gelangenden Objekte gezählt und die Anzahl im Roboterprogramm angezeigt. Der Zähler zählt weiter, auch wenn der Roboterarm ausgeschaltet ist.
|
|
Den Roboterstatus ablesen |
Der Status des Roboters ist über integrierte RTDE-Variablen abrufbar. Diese Variablen können mit der Skript-Funktion Das folgende Beispiel zeigt, wie Sie überprüfen können, ob „Safeguard Stop“ aktiv ist:
Das folgende Beispiel prüft, ob das Roboterprogramm angehalten ist:
Die URScript Control API bündelt diese Funktionalität ebenfalls.
|
|
Automatischer Start des Logikprogramms |
Sie können ein Programm auswählen, das automatisch gestartet werden soll, wenn eine Anwendung geladen wird. Wenn Sie die Option „Autostart“ auswählen, wird das Logikprogramm unmittelbar nach dem Laden der Anwendung gestartet.
Sie können das Logikprogramm auch automatisch starten, wenn die Robotersteuerung eingeschaltet und die letzte Anwendung geladen wird. Die Autostart -Funktion funktioniert unabhängig vom Betriebsmodus oder vom Status des Roboterarms. Wenn „Autostart“ beim Laden ausgelöst wird, bestätigt eine Snackbar-Benachrichtigung, dass das Logikprogramm gestartet wurde.
|
|
|
Das Symbol in der Seitenleiste auf dem „Logic Program“-Symbol zeigt stets den aktuellen Status des Programms an, unabhängig davon, ob es läuft oder angehalten ist.
Es liegt in Ihrer Verantwortung, sicherzustellen, dass das Logikprogramm sicher ist, wenn der Roboter eingeschaltet ist und wenn verschiedene Anwendungen geladen werden.
Logikprogramme können externe Geräte über kabelgebundene oder SPS-Verbindungen (Modbus, PROFINET, Ethernet/IP, Socket, direkte Ausgänge oder andere Schnittstellen) aktivieren und deaktivieren.
|
|
Module und Threads |
Die Funktionen des Logikprogramms können in Funktionen gegliedert werden. Dies funktioniert genauso wie im Roboterprogramm. Jede Funktion kann als „Thread“ markiert werden. Standardmäßig werden die Threads nur einmal ausgeführt. Aktivieren Sie das Kontrollkästchen „Loop“ bei der Thread-Funktion, um den Thread kontinuierlich auszuführen.
|
|
Gemeinsame Nutzung von Ressourcen |
Obwohl das Roboterprogramm und das Logikprogramm unabhängig voneinander ausgeführt werden und jeweils über einen eigenen Pool an Threads und Variablen verfügen, nutzen sie alle dieselben Hardware-Ressourcen. Dies bringt einige Einschränkungen mit sich, die Programmierer beachten sollten:
|
|
Einschränkungen |
|