KRL-ORIENTIERT · PASSEND CLOSER WEBSIMULATION

Understand scenarios – see code, run it, observe.

This page is the cheat sheet for all seven demo scenarios. The examples match what this browser simulator actually supports and link directly to the matching 3D exercise. Deliberate simplifications are stated explicitly.

Jump to an example

What the web parser actually understands

The examples below deliberately use only the currently supported training subset, so code can be followed directly in the simulator without pretending unsupported features exist.

CommandStatusMeaning in the simulator
PTP PUNKTAKTIVAxis-oriented training move to a stored six-axis pose.
LIN PUNKTAKTIVLinear TCP-oriented visualization between training points.
$OUT[n] = TRUE/FALSEAKTIVSwitches demo outputs; $OUT[1..3] are mapped to the tool profiles.
WAIT FOR $IN[n]AKTIVProgram really waits until the demo input reaches the expected state.
WAIT SEC xAKTIVTimed wait inside browser execution.
$TOOL = TOOL_DATA[n]AKTIVSelects training tool 1–3 and links visible gripper geometry.
$BASE = BASE_DATA[n]AKTIVUpdates the didactic BASE reference in SmartPAD training.
IF / ELSE / LOOPLEARNING NO-OPRecognized and displayed, but not yet executed as full branch/loop logic.
BAS(...)READKept in the KRL-oriented example; simulation speed is additionally controlled by the browser slider.
01 · SCENARIO

Conveyor Pick

A sensor detects the workpiece. Only then does the pick-and-place sequence continue.

How the demo works

  1. Open the scenario and start the program.
  2. The program waits at WAIT FOR $IN[1].
  3. Press “Move conveyor to sensor”. The part moves to the sensor and $IN[1] becomes TRUE.
  4. The robot moves to pick, grips with $OUT[1], transports and releases.
Simulation scope: Fully interactive in the training model: conveyor motion, sensor input, wait state, gripping and placing are linked.
ConveyorPick.srcMatched to this 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 · SCENARIO

Two Stations / BASE

Shows how the training view switches between BASE_DATA[1] and BASE_DATA[2].

How the demo works

  1. Station A and station B are marked in 3D.
  2. Select $BASE = BASE_DATA[1] and move to P_STATION_A.
  3. Switch to BASE_DATA[2] and move to P_STATION_B. The demo remains visibly at station B.
  4. Use the BASE Lab to explore translation and rotation as well.
Simulation scope: The web simulation shows BASE changes and matching training points. It does not reproduce a full controller frame stack or real calibration.
BaseStation_Demo.srcMatched to this 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 · SCENARIO

Palletizing

A 2×3 grid illustrates repeatable placement positions. The demo moves through three defined grid points.

How the demo works

  1. The pallet and six ghost boxes show the intended 2×3 pattern.
  2. Move to P_PALLET_1, P_PALLET_2 and P_PALLET_3 in sequence.
  3. The waits make each grid position easy to observe.
  4. A later learning step could turn this into real repeat/offset logic.
Simulation scope: Deliberately limited: the current demo visualizes grid and targets; it does not yet automatically stack six physical simulation boxes. IF/LOOP are currently recognized as learning steps, not executed as a full KRL runtime.
Pallet_Demo.srcMatched to this 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 · SCENARIO

Tool Change

TOOL_DATA[1..3] switches the web demo between parallel, vacuum and three-finger grippers.

How the demo works

  1. TOOL_DATA[1] loads the parallel gripper.
  2. TOOL_DATA[2] loads the vacuum gripper.
  3. TOOL_DATA[3] loads the three-finger gripper.
  4. Observe workpiece compatibility in the simulator.
Simulation scope: Visible tool geometry and the active demo signal are linked. A real mechanical tool changer, media couplings and calibration are not simulated.
Tool Change_Demo.srcMatched to this 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 · SCENARIO

Fault / Sensor Wait

The sequence deliberately stops while $IN[1] is not in the expected state.

How the demo works

  1. Start SensorPick without setting $IN[1].
  2. Read the “WAITING FOR $IN[1]” state.
  3. Set the input to TRUE deliberately in the I/O monitor.
  4. Observe that the sequence only continues afterwards.
Simulation scope: Wait state, input and continuation work in the browser. Diagnostic messages are didactic and not a reproduction of KSS messages.
SensorPick.srcMatched to this 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 · SCENARIO

Cobot Comparison

The same simple PTP sequence can be observed with LBR iisy and KR 6.

How the demo works

  1. The scenario loads the LBR iisy 3 R760.
  2. Run AchsTest and observe the workspace.
  3. Then select KR 6 and repeat the same sequence.
  4. Compare geometry and reach—do not infer blanket safety claims.
Simulation scope: Comparison of visualization, axis movement and training workspace. It does not assess risk or authorize human-robot collaboration.
AchsTest.srcMatched to this 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 · SCENARIO

Speed Comparison

The same motion sequence is repeated at different simulation speeds.

How the demo works

  1. Start at 10–25% and observe the path.
  2. Increase to 50% and run again.
  3. Then compare 100%.
  4. Consider PTP path and execution time separately.
Simulation scope: Browser simulation speed affects visible execution time. It is not a validated cycle-time calculator for a real cell.
Speed_Demo.srcMatched to this build
DEF Speed_Demo( )
  BAS(#INITMOV,0)
  BAS(#VEL_PTP,25)
  PTP HOME
  PTP P_AXIS_1
  PTP P_AXIS_2
  PTP HOME
END

Common questions while experimenting

Why does ConveyorPick just stop?

Because WAIT FOR $IN[1] deliberately waits for the sensor. In the conveyor scenario, start the program first and then use “Conveyor → Sensor”. Do not set $IN[1] manually: the button moves the workpiece to the pick position and triggers the sensor automatically.

Why do I see ghost boxes instead of six moving boxes in palletizing?

The current scenario first teaches grid and target points. It does not yet simulate multi-part logistics with six separate box objects, and the page deliberately does not present that as implemented.

Can I edit the examples?

Yes. Open the scenario, switch to Programming and edit waits, motion order or supported points. Unsupported commands are reported by the parser before execution.

Safety note: All coordinates, speeds, tool and BASE mappings on this page belong only to the didactic browser model. They are not commissioning data for a real robot cell.
?