KI-GESTÜTZTE DOKUMENTATION
Was möchten Sie wissen?
Universal Robot (UR) Integration über 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, abgesehen davon, dass beide Geräte dasselbe Netzwerk nutzen.
In dieser Konfiguration funktioniert die Kommunikation als Anfrage und Antwort zwischen Roboter und Kamera. Die Kamera fungiert als Server und der Roboter als Client.
Typischer Kommunikationsablauf
-
Öffnen eines Sockets vom Roboter aus.
-
Senden von Informationen vom Roboter an die Kamera.
-
Die Kamera liest die Informationen und übersetzt sie in das erforderliche Format (z. B. String, ASCII, Byte).
-
Die Kamera führt anhand dieser Informationen eine Funktion aus und sendet eine Antwort über TCP zurück.
-
Der Roboter wartet auf die TCP-Antwort. Wird innerhalb weniger Sekunden keine Antwort empfangen, setzt der Roboter seinen Ablauf ohne Antwort fort.
Es wird empfohlen, eine Bedingung hinzuzufügen, um zu bestätigen, dass Daten zurückgegeben werden.
- 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 Firewall-Regeln auf beiden Geräten, um TCP/IP-Kommunikation über die festgelegten Ports zuzulassen.
- 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 Missverständnisse 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 aus dem Socket.socket_read_ascii_float(number, "socket_name"): Liest eine ASCII-Float-Nachricht aus dem Socket.socket_read_byte("socket_name"): Liest einen Byte-Wert aus dem 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 – OV10i
Server-Einrichtung
- Konfigurieren Sie die Kamera so, dass sie auf eingehende TCP-Verbindungen an einem bestimmten Port (z. B. Port 3000) 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 eingehender Daten vom Roboter.
- Übersetzen und verarbeiten Sie die Daten entsprechend den Anforderungen der Kamerafunktionen.
- Bereiten Sie eine geeignete 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 an den Roboter zurückantwortet.
Beispiel-Flows
Hier ist ein Flow-Beispiel für die Klassifizierung, bei dem die Kamera nach einem Trigger eine vollständige Pass/Fail-Bedingung des Teils prüft und die Antwort an den Roboter zurücksendet.

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: Wenn der String „Trigger" lautet, wird der Flow fortgesetzt; andernfalls stoppt der Flow und der UR-Roboter erfährt einen Timeout.
- 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 auf dem UR-Roboter.
- TCP Response: Sendet die Informationen zurück an den Roboter.
Flow 2:
- Trigger Command: Dieser Flow beginnt mit dem Trigger-Befehl.
- All Block Outputs: Generiert Informationen aus dem zuletzt aufgenommenen Bild (ausgelöst in Flow 1).
- Classification Block Logic: Legt Bedingungen für jede ROI (Region of Interest) fest, um den Pass- oder Fail-Status zu bestimmen. (Klicken Sie auf den Block, um ihn einzurichten.)
- Function 3 (Information Setup): Konvertiert die Pass/Fail-Bedingung in 1 oder 0 und speichert sie im globalen Speicher zur einfachen Übersetzung an den UR-Roboter.
Hinweise
- Flow-Kontinuität: Stellen Sie sicher, dass alle Knoten, die die eingehenden Daten verarbeiten, sequenziell im selben Flow verbunden sind. Wenn sich der Flow in parallele Pfade aufteilt, funktioniert die TCP Response möglicherweise nicht ordnungsgemäß.
- Szenario ohne Antwort: Wenn keine Antwort erforderlich ist, können Sie den TCP-Response-Knoten weglassen. Der Roboter sollte so konfiguriert werden, dass er Fälle behandelt, in denen innerhalb eines bestimmten Timeouts keine Antwort empfangen wird.
Fehlerbehandlung und Robustheit
Timeouts und Wiederholungen
- Implementieren Sie Timeouts für Socket-Operationen, um zu verhindern, dass der Roboter unbegrenzt wartet.
- Integrieren Sie Wiederholungsmechanismen für den Fall vorübergehender Netzwerkprobleme.