Robot Cell Simulator – Ablauf, Prozessor und Genauigkeit
« Befehls-API - Referenz | Inhalt | GPU und Einschränkungen »
Wie die Simulation läuft | Prozessorkerne | Vorbereitung im Hintergrund | Start aus HOME | Darstellung | Gemessen | Auslastung des Rechners | Wie realistisch ist die Simulation?

Wie die Simulation läuft

Plugin-Einstellungen (Tools → Settings...) > Simulation: im Hintergrund vorbereitete Makros, Suchlauf, Prozessorkerne für die Roboter
Bis zu 12 Roboter gleichzeitig, ein logischer Prozessor je Roboter. Die Simulation ist für höchstens 12 gleichzeitig laufende Roboter ausgelegt – das ist eine Grenze des Simulators, nicht des Prozessors: ein Prozessor mit mehr Kernen hebt sie nicht an. Unabhängig davon läuft jeder Roboter in einem eigenen Thread und das SPS-Programm der Station braucht einen weiteren Thread. Vor dem Start warnt das Plugin, wenn mehr als 12 Roboter laufen oder mehr Threads als logische Prozessoren für die Simulation nötig sind (der Kern der Oberfläche zählt nicht; Windows: Task-Manager → Leistung → CPU → Logische Prozessoren). Mit weniger logischen Prozessoren läuft die Simulation trotzdem und ergibt dieselben Zeiten – die Roboter teilen sich die Kerne und die Animation kann langsamer als die eingestellte Geschwindigkeit sein (siehe Gemessen).

Prozessorkerne für die Roboter (Plugin-Einstellungen > Simulation): alle anderen = alle Kerne außer dem Kern der Oberfläche; eine Zahl begrenzt die Kerne der Roboter, z. B. für einen Test, wie die Simulation auf einem kleineren Rechner läuft.

Vorbereitung im Hintergrund

Nach dem Laden einer Studie oder Simulation, einer Änderung des SPS-Programms, des Programms der Registerkarte Simulation oder der Program rules bereitet der Simulator den Ablauf im Hintergrund vor, Schritt für Schritt, die Szene bleibt bedienbar (Konsole: Simulation wird vorbereitet ..., kleines Fenster mit Fortschrittsbalken in der Ecke):

Der Start nimmt alles aus dem Speicher (Konsole: Roboter vorbereitet in 0.4 s: 5 Programm(e) aus dem Speicher, 0 jetzt geparst, Schrittlisten von 5 Roboter(n) aus dem Speicher); was sich inzwischen geändert hat, wird beim Start vorbereitet. Station A, 5 Roboter, Folge 81: Start 7 s → 0,4 s.

Start aus HOME

Nach dem Laden der Zelle stehen die Roboter nicht in HOME (Position von Punkt 1 der Folge). Vor der Simulation einmal Folge 125 (oder das HOME-Programm der Station) ohne SPS-Programm ausführen – die Roboter fahren nach HOME und der erste Zyklus der Simulation wird dann richtig gezählt.

Darstellung

Die Szene wird im Thread der Oberfläche gezeichnet (OpenGL). Die Roboter-Threads speichern nur die neue Position ihres Roboters; ein Timer der Oberfläche zeichnet alle fahrenden Roboter zusammen. Das Zeichnen bremst daher nie die Simulationsuhr – mit einer schwachen Grafikkarte ist die Animation weniger flüssig, die Zeiten bleiben gleich. Einstellungen der Grafikkarte und Grenzen: GPU und Grenzen.

Gemessen

Station A, 5 Roboter + SPS-Programm, Folge 81, 10 Zyklen, 400 %, Laptop Intel i7-8750H (6 Kerne, 12 logische Prozessoren), Roboter aus HOME gestartet:

5 Kerne für die Roboter2 Kerne für die Roboter
Wirkungsgrad der Station84,1 %84,1 %
Warten auf Verriegelungen272,3 s272,3 s
Längster Roboter (R5) min / Mittel / max72,17 / 72,25 / 72,30 s72,17 / 72,22 / 72,29 s
Dauer des Ablaufs (Echtzeit)186 s186 s

Die Zeiten hängen nicht von der Anzahl der Kerne ab (Unterschiede unter 0,1 s). Mit 5 Robotern und dem SPS-Programm nutzte die Simulation im Mittel weniger als einen logischen Prozessor – die Roboter-Threads warten meist auf die Uhr, die Verriegelungen und die Signale der Station, daher halten auch 2 Kerne 400 % mit.

Auslastung des Rechners

Station A (anonymisierte reale Station): 5 Roboter + SPS-Programm, Folge 81, 10 Takte (etwa 720 s Simulationszeit), Arbeitsbereiche aus den Dreiecken der 3D-Modelle, Laptop Intel i7-8750H (6 Kerne, 12 logische Prozessoren, 16 GB):

100 %400 %400 % + Live 3D (fester Schritt 20 ms, mehrere Kerne)
Dauer des Laufs (Echtzeit)752 s188 s835 s
Prozessor, Mittelwert (ein logischer Prozessor = 100 %)73 %72 %373 %
Prozessor, Anteil am ganzen Rechner6 %6 %31 %
Speicher (Working Set), Maximum623 MB617 MB640 MB

Wie realistisch ist die Simulation?

Wofür sie gedacht ist. Der Robot Cell Simulator ist kein digitaler Zwilling der Station. Ein digitaler Zwilling bräuchte das laufende SPS-Programm der Station zusammen mit der Originalsoftware der Robotersteuerungen und ein vollständiges Modell der Zelle – ohne laufendes SPS-Programm ist das nicht möglich, und es ist auch nicht das Ziel. Der Simulator hilft, die Station auf einfache Weise in einem Werkzeug zu optimieren: aus den Roboterarchiven und der Studie sieht der Roboterprogrammierer, welcher Roboter die Taktzeit bestimmt, wer auf welchen Verriegelungsbereich wartet und wo Prozesszeiten oder Bereichsfreigaben verschoben werden können – ohne detailliertes Wissen über CAD-Modellierung oder SPS-Programmierung.

Die Simulationsuhr. Der Simulator rechnet mit einer eigenen Uhr, unabhängig vom Rechner: derselbe Ablauf ergibt bei 100 %, 200 % und 400 % Simulationsgeschwindigkeit dieselbe Taktzeit. Ein langsamerer Rechner macht nur die Animation langsamer, nicht die Zeiten anders. Die Vorbereitung vor dem Start (Programme, Bahnplaner) wird nicht in die Simulationszeit eingerechnet (siehe Start in zwei Phasen).

Die Robotersteuerung. Die KUKA-Steuerung arbeitet deterministisch (Interpolationstakt 12 ms); ihre Schwankungen liegen im Millisekundenbereich und müssen nicht simuliert werden.

Woher die Abweichungen kommen:

Der Vergleich von Varianten (vor / nach einer Änderung des Programms, der Reihenfolge der Roboter oder der Bereichsfreigaben) ist auch ohne Messungen zuverlässig, weil dieselben Abweichungen für beide Varianten gelten. Für absolute Taktzeiten lässt sich die Simulation mit Messwerten der realen Station vergleichen – in der SPS erfasste Taktzeiten und ein KUKA-Trace (Achspositionen mit Zeitstempel) einiger Roboter; mit solchen Messungen kann die Schätzung kalibriert werden.



« Befehls-API - Referenz | Inhalt | GPU und Einschränkungen »