KRL-ORIENTIERT · PASSEND ZUR WEBSIMULATION

Szenarien verstehen – Code sehen, starten, beobachten.

Diese Seite ist der Spickzettel zu den sieben Demo-Szenarien. Die Beispiele entsprechen dem Funktionsumfang dieses Browser-Simulators und verlinken direkt zur passenden 3D-Übung. Wo die Simulation bewusst vereinfacht, steht es ausdrücklich dabei.

Direkt zum Beispiel

Was der Web-Parser wirklich versteht

Die Beispiele unten verwenden absichtlich nur den aktuell unterstützten Trainingsumfang. So lässt sich der Code direkt im Simulator nachvollziehen, ohne Funktionen vorzutäuschen, die noch nicht implementiert sind.

BefehlStatusBedeutung im Simulator
PTP PUNKTAKTIVAchsorientierte Trainingsbewegung zu einer hinterlegten 6-Achs-Pose.
LIN PUNKTAKTIVLineare TCP-orientierte Darstellung zwischen Trainingspunkten.
$OUT[n] = TRUE/FALSEAKTIVSchaltet Demo-Ausgänge; $OUT[1..3] sind den Werkzeugprofilen zugeordnet.
WAIT FOR $IN[n]AKTIVProgramm wartet wirklich, bis der Demo-Eingang den erwarteten Zustand hat.
WAIT SEC xAKTIVZeitpause innerhalb der Browserausführung.
$TOOL = TOOL_DATA[n]AKTIVWählt Trainings-Werkzeug 1–3 und koppelt die sichtbare Greifergeometrie.
$BASE = BASE_DATA[n]AKTIVAktualisiert den didaktischen BASE-Bezug im SmartPAD-Training.
IF / ELSE / LOOPLERN-NO-OPWird erkannt und angezeigt, aber noch nicht als vollständige Verzweigungs-/Schleifenlogik ausgeführt.
BAS(...)GELESENBleibt im KRL-orientierten Beispiel enthalten; die Simulationsgeschwindigkeit wird zusätzlich über den Browser-Regler gesteuert.
01 · SZENARIO

Förderband-Pick

Ein Sensor meldet das Werkstück. Erst dann läuft die Pick-&-Place-Sequenz weiter.

So funktioniert die Demo

  1. Szenario öffnen und Programm starten.
  2. Das Programm bleibt bei WAIT FOR $IN[1] stehen.
  3. „Förderband bis Sensor fahren“ drücken. Das Werkstück fährt zum Sensor und $IN[1] wird TRUE.
  4. Der Roboter fährt Pick, greift mit $OUT[1], transportiert und legt ab.
Simulationsumfang: Voll interaktiv im Trainingsmodell: Förderbandbewegung, Sensorsignal, Warten, Greifen und Ablegen sind miteinander gekoppelt.
ConveyorPick.srcDirekt passend zum Build
DEF ConveyorPick( )
  $TOOL = TOOL_DATA[1]
  BAS(#INITMOV,0)
  BAS(#VEL_PTP,18)
  BAS(#VEL_CP,0.12)
  $OUT[1] = FALSE
  PTP HOME
  WAIT FOR $IN[1] == TRUE
  PTP P_PICK_APPR
  LIN P_PICK
  $OUT[1] = TRUE
  WAIT SEC 0.30
  LIN P_PICK_APPR
  PTP P_PLACE_APPR
  LIN P_PLACE
  $OUT[1] = FALSE
  WAIT SEC 0.30
  LIN P_PLACE_APPR
  PTP HOME
END
02 · SZENARIO

Zwei Stationen / BASE

Zeigt, wie zwischen BASE_DATA[1] und BASE_DATA[2] umgeschaltet wird.

So funktioniert die Demo

  1. Station A und Station B sind im 3D-Raum markiert.
  2. $BASE = BASE_DATA[1] auswählen und P_STATION_A anfahren.
  3. Auf BASE_DATA[2] wechseln und P_STATION_B anfahren. Die Demo bleibt dort sichtbar stehen.
  4. Im BASE-Labor zusätzlich Verschiebung und Drehung nachvollziehen.
Simulationsumfang: Die Websimulation zeigt den BASE-Wechsel und passende Trainingspunkte. Sie bildet keinen vollständigen Controller-Frame-Stack oder eine reale Vermessung nach.
BaseStation_Demo.srcDirekt passend zum Build
DEF BaseStation_Demo( )
  BAS(#INITMOV,0)
  BAS(#VEL_PTP,12)
  PTP HOME
  $BASE = BASE_DATA[1]
  PTP P_STATION_A
  WAIT SEC 1.50
  $BASE = BASE_DATA[2]
  PTP P_STATION_B
  WAIT SEC 1.50
  ; Demo endet bewusst an Station B, damit die Zielposition sichtbar bleibt.
  ; Mit der HOME-Taste kann anschließend zurückgefahren werden.
END
03 · SZENARIO

Palettierung

Ein 2×3-Raster zeigt das Prinzip wiederholbarer Ablagepositionen. Die Demo fährt drei definierte Rasterpunkte ab.

So funktioniert die Demo

  1. Palette und sechs Ghost-Boxen zeigen das geplante 2×3-Muster.
  2. P_PALLET_1, P_PALLET_2 und P_PALLET_3 nacheinander anfahren.
  3. Die Pausen machen die einzelnen Rasterpositionen sichtbar.
  4. Als nächster Lernschritt könnte daraus später eine echte Wiederhol-/Offset-Logik entstehen.
Simulationsumfang: Bewusst ehrlich begrenzt: Die aktuelle Demo visualisiert Raster und Zielpunkte; sie stapelt noch nicht automatisch sechs physische Simulationsboxen. IF/LOOP werden im Parser derzeit nur als Lernschritte erkannt, nicht als vollständige KRL-Ablauflogik ausgeführt.
Pallet_Demo.srcDirekt passend zum Build
DEF Pallet_Demo( )
  BAS(#INITMOV,0)
  BAS(#VEL_PTP,12)
  PTP HOME
  PTP P_PALLET_1
  WAIT SEC 0.80
  PTP P_PALLET_2
  WAIT SEC 0.80
  PTP P_PALLET_3
  WAIT SEC 1.20
  ; Demo endet am dritten Rasterpunkt, damit das Ergebnis sichtbar bleibt.
  ; Mit der HOME-Taste kann anschließend zurückgefahren werden.
END
04 · SZENARIO

Werkzeugwechsel

TOOL_DATA[1..3] schaltet in der Webdemo zwischen Parallelgreifer, Vakuumsauger und 3-Finger-Greifer.

So funktioniert die Demo

  1. TOOL_DATA[1] lädt den Parallelgreifer.
  2. TOOL_DATA[2] lädt den Vakuumsauger.
  3. TOOL_DATA[3] lädt den 3-Finger-Greifer.
  4. Werkstück-Kompatibilität im Simulator beachten.
Simulationsumfang: Die sichtbare Werkzeuggeometrie und das aktive Demo-Signal werden gekoppelt. Ein realer mechanischer Werkzeugwechsler, Medienkupplungen und Kalibrierung werden nicht simuliert.
Werkzeugwechsel_Demo.srcDirekt passend zum Build
DEF Werkzeugwechsel_Demo( )
  BAS(#INITMOV,0)
  PTP HOME
  $TOOL = TOOL_DATA[1]
  WAIT SEC 1.00
  $TOOL = TOOL_DATA[2]
  WAIT SEC 1.00
  $TOOL = TOOL_DATA[3]
  WAIT SEC 1.00
  $TOOL = TOOL_DATA[1]
END
05 · SZENARIO

Fehlerfall / Sensor warten

Der Ablauf bleibt absichtlich stehen, solange $IN[1] nicht den erwarteten Zustand hat.

So funktioniert die Demo

  1. SensorPick starten, ohne $IN[1] zu setzen.
  2. Status „WARTET AUF $IN[1]“ lesen.
  3. Im I/O-Monitor den Eingang gezielt auf TRUE setzen.
  4. Beobachten, wie der Ablauf erst dann fortgesetzt wird.
Simulationsumfang: Wartezustand, I/O-Eingang und Fortsetzen funktionieren im Browser. Diagnosemeldungen sind didaktisch und keine KSS-Meldungsnachbildung.
SensorPick.srcDirekt passend zum Build
DEF SensorPick( )
  ; Trainingsdemo: aktives Werkzeugprofil auf Parallelgreifer setzen
  $TOOL = TOOL_DATA[1]
  ; Im I/O-Monitor $IN[1] auf TRUE setzen, wenn das Programm wartet.
  BAS(#INITMOV,0)
  BAS(#VEL_PTP,20)
  BAS(#VEL_CP,0.15)
  $OUT[1] = FALSE
  PTP HOME
  WAIT FOR $IN[1] == TRUE
  PTP P_PICK_APPR
  LIN P_PICK
  $OUT[1] = TRUE
  WAIT SEC 0.30
  LIN P_PICK_APPR
  PTP P_PLACE_APPR
  LIN P_PLACE
  $OUT[1] = FALSE
  WAIT SEC 0.30
  LIN P_PLACE_APPR
  PTP HOME
END
06 · SZENARIO

Cobot-Vergleich

Dieselbe einfache PTP-Folge kann mit LBR iisy und KR 6 beobachtet werden.

So funktioniert die Demo

  1. Szenario lädt den LBR iisy 3 R760.
  2. AchsTest ausführen und Arbeitsraum beobachten.
  3. Danach KR 6 auswählen und dieselbe Sequenz wiederholen.
  4. Geometrie und Reichweite vergleichen – nicht pauschal Sicherheit ableiten.
Simulationsumfang: Vergleich von Darstellung, Achsbewegung und Trainingsarbeitsraum. Keine Aussage über eine konkrete Risikobeurteilung oder zulässige Mensch-Roboter-Kollaboration.
AchsTest.srcDirekt passend zum Build
DEF AchsTest( )
  BAS(#INITMOV,0)
  BAS(#VEL_PTP,15)
  PTP HOME
  PTP P_AXIS_1
  WAIT SEC 0.30
  PTP P_AXIS_2
  WAIT SEC 0.30
  PTP HOME
END
07 · SZENARIO

Geschwindigkeitsvergleich

Die gleiche Bewegungsfolge wird mit unterschiedlichen Simulationsgeschwindigkeiten wiederholt.

So funktioniert die Demo

  1. Mit 10–25 % starten und die Bahn beobachten.
  2. Auf 50 % erhöhen und erneut starten.
  3. Danach 100 % vergleichen.
  4. PTP-Bahn und Ausführungsdauer bewusst getrennt betrachten.
Simulationsumfang: Die Browser-Simulationsgeschwindigkeit beeinflusst die sichtbare Ausführungsdauer. Sie ist kein validierter Zykluszeitrechner einer realen Anlage.
Speed_Demo.srcDirekt passend zum Build
DEF Speed_Demo( )
  BAS(#INITMOV,0)
  BAS(#VEL_PTP,25)
  PTP HOME
  PTP P_AXIS_1
  PTP P_AXIS_2
  PTP HOME
END

Typische Fragen beim Experimentieren

Warum bleibt ConveyorPick einfach stehen?

Weil WAIT FOR $IN[1] absichtlich auf den Sensor wartet. Im Förderband-Szenario zuerst das Programm starten und anschließend „Förderband → Sensor“ benutzen. $IN[1] nicht manuell setzen: Der Button transportiert das Werkstück zur Pick-Position und setzt den Sensor automatisch.

Warum sehe ich bei Palettierung Ghost-Boxen statt sechs bewegter Kartons?

Das aktuelle Szenario erklärt zunächst Raster und Zielpunkte. Es simuliert noch keine Mehrteil-Logistik mit sechs einzelnen Box-Objekten. Das wird bewusst nicht als fertige Funktion ausgegeben.

Kann ich die Beispiele verändern?

Ja. Öffne das Szenario, wechsle in „Programmierung“ und passe z. B. WAIT-Zeiten, Bewegungsreihenfolge oder unterstützte Punkte an. Nicht unterstützte Befehle meldet der Parser vor dem Start.

Sicherheitshinweis: Alle Koordinaten, Geschwindigkeiten, Werkzeug- und BASE-Zuordnungen auf dieser Seite gehören ausschließlich zum didaktischen Browsermodell. Sie sind keine Inbetriebnahmedaten für eine reale Roboterzelle.
?