Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

Universal Robot (UR) Integration via TCP/IP

Um den Universal Robot (UR) mit dem Kamerasystem zu integrieren, müssen beide Geräte mit demselben lokalen Netzwerk verbunden sein. Die Kommunikation erfolgt über TCP/IP-Sockets — es ist keine zusätzliche Aktivierung erforderlich, sofern beide Geräte sich im selben Netzwerk befinden.

In dieser Konfiguration läuft die Kommunikation als Anfrage und Antwort zwischen dem Roboter und der Kamera ab. Die Kamera fungiert als Server und der Roboter als Client.

Typischer Kommunikationsablauf

  1. Öffnen eines Sockets vom Roboter aus.

  2. Senden von Informationen vom Roboter an die Kamera.

  3. Die Kamera liest die Informationen und übersetzt sie in das erforderliche Format (z. B. String, ASCII, Byte).

  4. Die Kamera führt mit diesen Informationen eine Funktion aus und sendet eine Antwort über TCP zurück.

  5. Der Roboter wartet auf die TCP-Antwort. Wird innerhalb weniger Sekunden keine Antwort empfangen, setzt der Roboter seinen Ablauf ohne Antwort fort.

hinweis

Es wird empfohlen, eine Bedingung hinzuzufügen, um zu bestätigen, dass Daten zurückgegeben wurden.

  1. Der Roboter schließt die Socket-Kommunikation.

Netzwerkkonfiguration und Firewall

Netzwerkeinrichtung

  • Stellen Sie sicher, dass sowohl der UR-Roboter als auch die Kamera mit demselben lokalen Netzwerk verbunden sind.
  • Weisen Sie IP-Adressen innerhalb desselben Subnetzes zu, um die Kommunikation zu ermöglichen.

Firewall-Einstellungen

  • Konfigurieren Sie die Firewall-Regeln auf beiden Geräten so, dass die TCP/IP-Kommunikation über die festgelegten Ports zugelassen wird.
  • Stellen Sie sicher, dass keine Netzwerkrichtlinien die erforderliche Kommunikation blockieren.

URScript und Socket-Programmierung – UR

Datenformate

  • Die Kommunikation kann verschiedene Datenformate wie Strings, ASCII oder Bytes verwenden.
  • Stellen Sie sicher, dass sich beide Geräte auf das Datenformat einigen, um Fehlkommunikation zu vermeiden.

URScript-Funktionen für die Socket-Kommunikation

  • socket_open(address, port, "socket_name"): Öffnet eine Socket-Verbindung zur angegebenen Adresse und zum angegebenen Port.
  • socket_send_string("message", "socket_name"): Sendet eine String-Nachricht über den Socket.
  • socket_send_byte(value, "socket_name"): Sendet einen Byte-Wert über den Socket.
  • socket_read_string("socket_name"): Liest eine String-Nachricht vom Socket.
  • socket_read_ascii_float(number, "socket_name"): Liest eine ASCII-Float-Nachricht vom Socket.
  • socket_read_byte("socket_name"): Liest einen Byte-Wert vom Socket.
  • socket_close("socket_name"): Schließt die Socket-Verbindung.
# Open socket connection to the camera server
socket_open("192.168.0.2", 3000, "camera_socket")

# Send a string message
socket_send_string("Request Data", "camera_socket")

# Alternatively, send a byte value
socket_send_byte(42, "camera_socket") # Sends the byte value 42

# Read the response as a string
response = socket_read_string("camera_socket")

# Read the response as a byte
response_byte = socket_read_byte("camera_socket")

# Close the socket connection
socket_close("camera_socket")

Konfiguration als TCP/IP-Server – OV80i

Server-Einrichtung

  • Konfigurieren Sie die Kamera so, dass sie auf einem bestimmten Port (z. B. Port 3000) auf eingehende TCP-Verbindungen wartet.
  • Stellen Sie sicher, dass die IP-Adresse der Kamera statisch oder dem Roboter bekannt ist, um eine konsistente Kommunikation zu gewährleisten.

Datenanalyse

  • Implementieren Sie auf der Kamera eine Logik zum Lesen der eingehenden Daten vom Roboter.
  • Übersetzen und verarbeiten Sie die Daten entsprechend den Anforderungen der Kamerafunktionen.
  • Bereiten Sie die entsprechende Antwort vor und senden Sie sie an den Roboter zurück.

Node-RED-Logik für die UR-Roboter-Integration

Um den Universal Robot (UR) mit Ihrem System über Node-RED zu integrieren, können Sie einen einfachen Flow erstellen, der eingehende TCP-Nachrichten verarbeitet, basierend auf den empfangenen Daten Aktionen ausführt und bei Bedarf eine Antwort an den Roboter zurücksendet.

Beispiel-Flows

Hier ein Flow-Beispiel für die Klassifizierung, in dem die Kamera nach einem Trigger eine vollständige Pass/Fail-Bedingung des Teils prüft und die Antwort an den Roboter zurücksendet.

UR Robot Classification Flow Example

Flow 1:

  • TCP IN: Öffnet einen TCP-Server in Node-RED auf Port 30000.
  • Function 1 (Reads UR): Konvertiert die eingehenden Daten vom UR-Roboter in einen String. Damit dieser Flow funktioniert, muss der UR den String "Trigger" senden.
  • Switch: Lautet der String "Trigger", wird der Flow fortgesetzt; bei einem anderen Wert wird der Flow gestoppt, und beim UR-Roboter tritt ein Timeout auf.
  • HTTP Request: Sendet eine Anfrage an einen Endpunkt (API Trigger), um den Kameratrigger zu aktivieren.
  • Function 2 (Read Data): Ruft Daten aus dem globalen Speicher (1 oder 0) ab und formatiert sie korrekt für das ASCII-Lesen am UR-Roboter.
  • TCP Response: Sendet die Informationen an den Roboter zurück.

Flow 2:

  • Trigger Command: Dieser Flow beginnt mit dem Trigger-Befehl.
  • All Block Outputs: Generiert Informationen aus dem zuletzt aufgenommenen Bild (in Flow 1 ausgelöst).
  • Classification Block Logic: Definiert Bedingungen für jede ROI (Region of Interest), um den Pass- oder Fail-Status zu bestimmen. (Klicken Sie auf den Block, um ihn zu konfigurieren.)
  • Function 3 (Information Setup): Wandelt die Pass/Fail-Bedingung in 1 oder 0 um und speichert sie im globalen Speicher zur einfachen Übersetzung an den UR-Roboter.

Hinweise

  • Flow-Kontinuität: Stellen Sie sicher, dass alle Nodes, die die eingehenden Daten verarbeiten, sequenziell im selben Flow verbunden sind. Wenn der Flow sich in parallele Pfade aufteilt, funktioniert die TCP Response möglicherweise nicht korrekt.
  • Szenario ohne Antwort: Wenn keine Antwort benötigt wird, können Sie den TCP-Response-Node weglassen. Der Roboter sollte so konfiguriert sein, dass er Fälle behandelt, in denen innerhalb eines bestimmten Timeouts keine Antwort eintrifft.

Fehlerbehandlung und Robustheit

Timeouts und Wiederholungen

  • Implementieren Sie Timeouts für Socket-Operationen, um zu verhindern, dass der Roboter unbegrenzt wartet.
  • Sehen Sie Wiederholungsmechanismen für den Fall vorübergehender Netzwerkprobleme vor.

🔗 Siehe auch