EnglishDeutsch/api/energyGitHub · iceccarelli
Grimaldi EngineeringCluster-Steuerung · Frankfurt
Produkt · Palletizer

Misch-SKUs auf dem Roboter stapeln, den Sie schon haben.

SKU-Liste einfügen. Der Planer liefert Lagen, Stabilität, Dichte und Taktzeit, danach einen Export für die Steuerung.

Lagenplan · 1200 × 800 mm
SKU-03SKU-03SKU-03SKU-03SKU-03SKU-031200 mm800 mm
IDLERUNHOLDFAULT
Stabilität97 %
Dichte86 %
Lagen5
Gesetzt37/37
Höhe1.230 mm
Gewicht250 kg
Taktzeit3:42 min
  • Alle SKUs gesetzt. Statische Stabilität innerhalb der Grenzen.
URScript-Stub (Vorschau)
# Palletizer stack plan — URScript STUB (Grimaldi Engineering, Frankfurt)
# Not commissioned. Verify pallet_frame, approach heights, gripper IO and safety config on the cell before RUN.
# pallet 1200 x 800 mm, 5 layers, 1230 mm, 249.8 kg, stability 0.97, state RUN
def palletizer_stack():
  # --- cell inputs (teach on the pendant) ---
  pallet_frame = p[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]   # pallet deck corner, x along length, y along width, z up
  pick_pose    = p[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]   # infeed pick, tool centre at box top face
  approach_z   = 0.150                            # m above place pose
  acc = 1.2
  vel = 0.8
  def grip():
    set_standard_digital_out(0, True)               # gripper class: vacuum, adapt to cell
    sleep(0.3)
  end
  def release():
    set_standard_digital_out(0, False)
    sleep(0.2)
  end
  def place(box_pose, yaw):
    target = pose_trans(pallet_frame, box_pose)
    target = pose_trans(target, p[0, 0, 0, 0, 0, yaw])
    above = pose_add(target, p[0, 0, approach_z, 0, 0, 0])
    movel(pick_pose, acc, vel)
    grip()
    movel(above, acc, vel)
    movel(target, acc, vel * 0.5)
    release()
    movel(above, acc, vel)
  end
  # --- placements: tool centre over box centre, z = box top face ---
  place(p[0.3000, 0.2000, 0.3000, 0, 0, 0], 0.0)   # 1 SKU-02 L1 15 kg
  place(p[0.9000, 0.2000, 0.3000, 0, 0, 0], 0.0)   # 2 SKU-02 L1 15 kg
  place(p[0.3000, 0.6000, 0.3000, 0, 0, 0], 0.0)   # 3 SKU-02 L1 15 kg
  place(p[0.9000, 0.6000, 0.3000, 0, 0, 0], 0.0)   # 4 SKU-02 L1 15 kg
  place(p[0.2000, 0.2000, 0.5800, 0, 0, 0], 0.0)   # 5 SKU-04 L2 11 kg
  place(p[0.6000, 0.2000, 0.5800, 0, 0, 0], 0.0)   # 6 SKU-04 L2 11 kg
  place(p[1.0000, 0.2000, 0.5800, 0, 0, 0], 0.0)   # 7 SKU-04 L2 11 kg
  place(p[0.2000, 0.6000, 0.5800, 0, 0, 0], 0.0)   # 8 SKU-04 L2 11 kg
  place(p[0.6000, 0.6000, 0.5800, 0, 0, 0], 0.0)   # 9 SKU-04 L2 11 kg
  place(p[1.0000, 0.6000, 0.5800, 0, 0, 0], 0.0)   # 10 SKU-04 L2 11 kg
  place(p[0.2000, 0.1500, 0.8300, 0, 0, 0], 0.0)   # 11 SKU-01 L3 8.5 kg
  place(p[0.6000, 0.1500, 0.8300, 0, 0, 0], 0.0)   # 12 SKU-01 L3 8.5 kg
  place(p[1.0000, 0.1500, 0.8300, 0, 0, 0], 0.0)   # 13 SKU-01 L3 8.5 kg
  place(p[0.2000, 0.4500, 0.8300, 0, 0, 0], 0.0)   # 14 SKU-01 L3 8.5 kg
  place(p[0.6000, 0.4500, 0.8300, 0, 0, 0], 0.0)   # 15 SKU-01 L3 8.5 kg
  place(p[1.0000, 0.4500, 0.8300, 0, 0, 0], 0.0)   # 16 SKU-01 L3 8.5 kg
  place(p[0.2000, 0.7000, 0.8300, 0, 0, 0], 0.0)   # 17 SKU-06 L3 2.4 kg
  place(p[0.6000, 0.7000, 0.8300, 0, 0, 0], 0.0)   # 18 SKU-06 L3 2.4 kg
  place(p[1.0000, 0.7000, 0.8300, 0, 0, 0], 0.0)   # 19 SKU-06 L3 2.4 kg
  place(p[0.1250, 0.1250, 1.0300, 0, 0, 0], 0.0)   # 20 SKU-05 L4 3.2 kg
  place(p[0.3750, 0.1250, 1.0300, 0, 0, 0], 0.0)   # 21 SKU-05 L4 3.2 kg
  place(p[0.6250, 0.1250, 1.0300, 0, 0, 0], 0.0)   # 22 SKU-05 L4 3.2 kg
  place(p[0.8750, 0.1250, 1.0300, 0, 0, 0], 0.0)   # 23 SKU-05 L4 3.2 kg
  place(p[0.1250, 0.3750, 1.0300, 0, 0, 0], 0.0)   # 24 SKU-05 L4 3.2 kg
  place(p[0.3750, 0.3750, 1.0300, 0, 0, 0], 0.0)   # 25 SKU-05 L4 3.2 kg
  place(p[0.6250, 0.3750, 1.0300, 0, 0, 0], 0.0)   # 26 SKU-05 L4 3.2 kg
  place(p[0.8750, 0.3750, 1.0300, 0, 0, 0], 0.0)   # 27 SKU-05 L4 3.2 kg
  place(p[0.1500, 0.6000, 1.0300, 0, 0, 0], 0.0)   # 28 SKU-03 L4 4 kg
  place(p[0.4500, 0.6000, 1.0300, 0, 0, 0], 0.0)   # 29 SKU-03 L4 4 kg
  place(p[0.7500, 0.6000, 1.0300, 0, 0, 0], 0.0)   # 30 SKU-03 L4 4 kg
  place(p[1.0500, 0.6000, 1.0300, 0, 0, 0], 0.0)   # 31 SKU-03 L4 4 kg
  place(p[0.1500, 0.1000, 1.2300, 0, 0, 0], 0.0)   # 32 SKU-03 L5 4 kg
  place(p[0.4500, 0.1000, 1.2300, 0, 0, 0], 0.0)   # 33 SKU-03 L5 4 kg
  place(p[0.7500, 0.1000, 1.2300, 0, 0, 0], 0.0)   # 34 SKU-03 L5 4 kg
  place(p[1.0500, 0.1000, 1.2300, 0, 0, 0], 0.0)   # 35 SKU-03 L5 4 kg
  place(p[0.1500, 0.3000, 1.2300, 0, 0, 0], 0.0)   # 36 SKU-03 L5 4 kg
  place(p[0.4500, 0.3000, 1.2300, 0, 0, 0], 0.0)   # 37 SKU-03 L5 4 kg
end
palletizer_stack()

Statische Geometrie: Auflage und Schwerpunkt. Keine Transport- oder Wickelzertifizierung.Taktzeit bei 6 s pro Griff, Planungsannahme.

Was ausgeliefert wird

Planer

Höhengruppierte Lagen, Shelf-Packing mit Rotation, Auflage pro Karton, Schwerpunkt-Score, Stapellast-Prüfung. Läuft hier im Browser und in der Python-Engine im Repository.

Zustandsautomat

IDLE · RUN · HOLD · FAULT mit benannten Übergängen und den Fehlercodes des Planers. Dokumentiert unter /docs, lesbar für SPS und Mensch.

Adapter

Heute ein URScript-Stub. FANUC-, KUKA- und ABB-Adapter sind geplant und unten genau so gelistet — nicht behauptet.

Roboter-Adapter

RoboterSchnittstelleStatusHinweis
Universal RobotsURScript-Stub (movel, IO)verfügbarExport aus dem Planer auf dieser Seite.
FANUCKAREL / TP über SocketgeplantKein Datum. Gelistet, sobald vorhanden.
KUKAKRL über EthernetKRLgeplantKein Datum. Gelistet, sobald vorhanden.
ABBRAPID über PC SDKgeplantKein Datum. Gelistet, sobald vorhanden.

Status

Software ausgeliefert|Zelle nicht in Betrieb genommen

Software ausgeliefert: Repository öffentlich, Planer live auf dieser Seite. Zelle nicht in Betrieb genommen: noch keine Kundenzelle läuft mit dieser Software — deshalb hier kein Zellenvideo, keine Durchsatzangabe und keine Referenz, bis es eine gibt.

Verfasst und gepflegt von Vincenzo Ceccarelli Grimaldi, Frankfurt am Main.