HolzBauTech RobotikInbetriebnahme · Simulation · Dokumentation
Projekt 3 · MaterialflussRS40 · Eingangssignale · Entscheidungen
Projekt 3 · 3. Quartal

Materialfluss signalgesteuert steuern

Programmiert den RS40 so, dass er an einem gemeinsamen Aufnahmeplatz auf ein Werkstück wartet, Werkstückart und Prüfergebnis erst nach gültiger Rückmeldung übernimmt und anschließend zwischen Montageblock, Distanzstück und Ausschuss entscheidet.

Auftragsumfang wählenWechsel jederzeit möglich
Lernkarte 0 · Auftragseingang

Ein Roboter reagiert auf den tatsächlichen Materialfluss

In Projekt 2 waren Aufnahmeplätze und Stückzahl vorab bekannt. Jetzt kommt jedes Werkstück an derselben Position an. Erst Eingangssignale verraten, wann es bereit ist, welche Art vorliegt und ob es die Qualitätsprüfung bestanden hat.

Materialfluss verstehenSignal → Auswertung → Bewegung
Auftragsstufe wählenHilfen und Erweiterungen unterscheiden
Projekt vorbereitenSRS-Dateien und Dokumentation fortführen
ArbeitsweiseEigenes PDF je Doppelstunde · vier Teamabgaben

Ihr nutzt Bewegungen, Greiferablauf und Schleifen aus Projekt 2 und ergänzt die Reaktion auf Eingangssignale.

Jede Person
Ergänze dein persönliches Robotik-PDF nach jeder Doppelstunde. Dokumentiere eigenen Beitrag und Erkenntnis an einem konkreten Signal- oder Testfall sowie Quellenprüfung und nächsten Schritt.
Das Team
Sichert Materialfluss/I/O, Signallogik, Programmstruktur und Testmatrix im neuen Projektkapitel. Vier Teamabgaben: Materialfluss/I/O, Signallogik, Simulation, Abnahme. Jede Person erklärt auch Fehlerfälle und Rücksetzungen.

Vor jedem Realtest: Simulation durchführen und vorführen, projektspezifische Freigabe bearbeiten und die ausdrückliche Lehrkraftfreigabe abwarten. Ergebnisse und Änderungen anschließend dokumentieren.

Arbeitsweise der Robotik-Reihe · Dateinamen, Vorlagen und Abgaben

Profilbild der fiktiven Person Mara KönigKI
Von: Mara König · FertigungsleitungBetreff: Sortierstation an den Materialfluss anbinden

Hallo Robotik-Team,

die Bereitstellung der Montagesets funktioniert. Für die nächste Ausbaustufe sollen Werkstücke jedoch nicht mehr an zwei festen Aufnahmeplätzen liegen. Ein Förderband oder eine manuelle Bereitstellung liefert Montageblöcke und Distanzstücke an einen gemeinsamen Aufnahmeplatz.

Der Roboter darf erst reagieren, wenn das Werkstück tatsächlich bereitliegt. Anschließend fordert die Anlage nacheinander die Auswertung der Werkstückart und der Qualität an. Zu jedem Prüfergebnis gehören zwei Eingangssignale: ein Eingang enthält den Wert, der zweite meldet, dass dieser Wert gültig ist und jetzt übernommen werden darf.

Gutteile werden artabhängig abgelegt, Schlechtteile kommen unabhängig von ihrer Art in den Ausschuss. Ist eine Gutteilbox voll, muss der Roboter in sicherer Stellung warten.

Viele Grüße
Mara König
Fertigungsleitung

Arbeitsauftrag 0.1

Auftrag und Handlungsprodukt erfassen

  1. Beschreibt den Unterschied zwischen Projekt 2 und Projekt 3.
  2. Formuliert, welche drei Sortierziele benötigt werden.
  3. Beschreibt jeweils in einem Satz, welche Information ein Werteingang und welche Information das zugehörige Gültigkeitssignal liefert.
  4. Formuliert, worauf der Roboter warten muss, bevor er einen bereitgestellten Wert übernimmt.
Schematische Materialflussstationprojektbezogene I/O-Zuordnung · nicht maßstäblich
Schematische Materialflussstation mit Förderband, gemeinsamem Aufnahmeplatz, zwei Prüfstationen, RS40 und drei Sortierbehältern
Die Signale können zunächst über die I/O-Säule nachgebildet werden. Ein reales Förderband wird nur nach Vorgabe und Freigabe der Lehrkraft eingebunden.
Arbeitsauftrag 0.2

Anlage aus der Grafik erklären

  1. Verfolgt den Materialfluss vom Förderband bis zu den drei Ablagen.
  2. Ordnet jedem Eingang eine Information oder Freigabe zu.
  3. Unterscheidet Anforderungssignale, die bis zur Rückmeldung aktiv bleiben, von kurzen 2-s-Impulsen.
  4. Bestimmt mindestens drei sichere Roboterpositionen.
Basisbetrieb · geführter Tasterbetrieb

Ihr bildet alle Eingangssignale an der I/O-Säule nach, verwendet feste Ablagepunkte und erhaltet vollständige Strukturhilfen für wait, if, call und while. Der Ablauf muss drei Pflichtfälle sicher sortieren.

Arbeitsauftrag 0.3

Basisauftrag festhalten

  1. Tragt „Basisbetrieb“ in die Teamdokumentation ein.
  2. Legt eine einfache Testtabelle mit den drei Fällen „guter Montageblock“, „gutes Distanzstück“ und „Schlechtteil“ an.
  3. Tragt zu jedem Fall das erwartete Sortierziel ein.
Anlagenausbau · vollständiger Handshake

Ihr entwickelt den vollständigen Signalwechsel mit Rücksetzung, Statusanzeigen und Warten bei voller Gutteilbox. Codegerüste sind teilweise vorgegeben, müssen aber selbstständig ergänzt und erklärt werden.

Arbeitsauftrag 0.3

Ausbauauftrag festhalten

  1. Tragt „Anlagenausbau“ in die Teamdokumentation ein.
  2. Legt eine Testtabelle mit genau vier Zeilen an: guter Montageblock, gutes Distanzstück, Schlechtteil und benötigte Gutteilbox voll.
  3. Tragt zu jedem Fall das erwartete Verhalten ein: passende Ablage, Ausschuss oder Warten in sicherer Stellung.
  4. Ordnet den vier Anlagenzuständen Warten, Sortieren, Ausschuss und Box voll jeweils eine erkennbare Statusanzeige zu.
Profi-Auftrag · robuster Materialfluss

Ihr entwerft Signal- und Programmstruktur weitgehend selbstständig. Zusätzlich werden Diagnosezustände, vollständige Rücksetzungen und eine klare Förderband- beziehungsweise Zyklusfreigabe geprüft.

Arbeitsauftrag 0.3

Profi-Auftrag festhalten

  1. Tragt „Profi-Auftrag“ in die Teamdokumentation ein.
  2. Legt sechs verständliche Betriebsfälle fest: guter Montageblock, gutes Distanzstück, schlechter Montageblock, schlechtes Distanzstück sowie jeweils ein Gutteil bei voller benötigter Ablage.
  3. Tragt zu jedem Fall das erwartete Sortierziel beziehungsweise den erwarteten Wartezustand und eine beobachtbare Statusanzeige ein.
  4. Markiert, bei welchen Fällen die Gutteilbox über bIn5 berücksichtigt werden muss.
Expertenauftrag · Sortieren und Rasterbehälter füllen

Zusätzlich zum robusten Profi-Ablauf entwickelt ihr einen getrennten Rastermodus. Dabei werden identische Testteile mit einer versionsgeprüften Offset-Funktion und zwei tatsächlich verschachtelten for-Schleifen zeilen- und spaltenweise abgelegt.

Arbeitsauftrag 0.3

Expertenauftrag festhalten

  1. Tragt „Expertenauftrag“ in die Teamdokumentation ein.
  2. Übernehmt die sechs Betriebsfälle des Profi-Auftrags und trennt den signalgesteuerten Sortierbetrieb vom späteren Raster-Testmodus.
  3. Skizziert für den Raster-Testmodus lediglich einen 2×3-Behälter mit einer ersten Ablageposition sowie gleichmäßigen Abständen in x- und y-Richtung.
  4. Kennzeichnet die erste Ablageposition sowie die Richtung der Zeilen und Spalten.
Bewertung
Die Auftragsstufen stellen unterschiedliche fachliche Anforderungen. Eine höhere Stufe erweitert nicht nur den letzten Arbeitsauftrag, sondern verändert Planung, Hilfen, Testumfang und erwartete Selbstständigkeit auf der gesamten Seite.
Lernkarte 1 · Materialfluss- und I/O-Planung

Erst die Signalkette planen, dann programmieren

Der Roboter darf einen Wert erst lesen, wenn das zugehörige Gültigkeitssignal anliegt. Deshalb wird der Ablauf als Folge klarer Zustände geplant und nicht als Sammlung einzelner Taster.

I/O zuordnenWert und Gültigkeit trennen
Zustände planenWarten, Lesen, Sortieren
Meilenstein 1Planung vor Code freigeben
bIn0Werkstück bereit1 = Werkstück liegt am gemeinsamen Aufnahmeplatz.
bIn1Werkstückart1 = Montageblock · 0 = Distanzstück.
bIn2Artwert gültig1 = Auswertung abgeschlossen, bIn1 darf gelesen werden.
bIn3Qualität1 = Gutteil · 0 = Schlechtteil.
bIn4Qualitätswert gültig1 = Prüfung abgeschlossen, bIn3 darf gelesen werden.
bIn5Benötigte Gutteilbox voll1 = die für das aktuelle Gutteil benötigte Ablage ist gesperrt; nicht ablegen und sicher warten.
AusgangProjektfunktionSchaltverhalten
bOut0Werkstückart-Auswertung anfordernaktiv halten, bis bIn2 gesetzt wurde
bOut1Artwert wurde übernommen2-s-Impuls
bOut2Qualitätsprüfung anfordernaktiv halten, bis bIn4 gesetzt wurde
bOut3Sortierung abgeschlossen / nächster Zyklus darf vorbereitet werden2-s-Impuls
bOut4–bOut7Statusanzeigen nach Teamplanung: Warten, Betrieb, Ausschuss, Box vollZustand halten
bOut14 / bOut15Greifer öffnen / schließenZustand halten
Namenskonvention
Die Belegung ist eine projektbezogene Festlegung für diese Lernanlage. Dokumentiert jede Änderung eindeutig, falls eure konkrete Zelle oder ein späterer Controller eine andere Zuordnung erfordert.
1Bei den Anlagen der Zelle unter EAs den Eintrag BIO auswählen.
2Im Projekt auf der Startseite E/A-Verwaltung öffnen.
3BasicIO auswählen, Importieren anklicken und das Zielprojekt wählen.
4Aktuell wird old IO library format verwendet. Bei neuerem Controller die von der Lehrkraft bestätigte Namenskonvention verwenden.
Arbeitsauftrag 1.1

I/O-Bibliothek und Grundzustände sichern

  1. Dokumentiert den erfolgreichen BasicIO-Import mit einem geeigneten Screenshot.
  2. Legt eine Initialisierung fest: alle Anforderungs-, Quittierungs- und Statusausgänge aus; Greifer in definiertem Grundzustand.
  3. Prüft jeden verwendeten Eingang und Ausgang einzeln an der I/O-Säule.
  4. Notiert Abweichungen zwischen Planung und realer Zelle.
1 · Bereitauf bIn0 warten
2 · ArtbOut0 setzen, auf bIn2 warten, Wert speichern, bOut1 pulsieren
3 · QualitätbOut2 setzen, auf bIn4 warten, Wert speichern
4 · Sortierenif-Entscheidung und Bewegung
5 · AbschlussbOut3 pulsieren, alte Signale zurücksetzen
Arbeitsauftrag 1.2

Vorgegebene Zustandsfolge ergänzen

  1. Übertragt die fünf Zustände in eure Teamdokumentation.
  2. Ergänzt bei jedem Zustand die beteiligten I/Os.
  3. Markiert, an welcher Stelle ein Wert gespeichert werden muss.
  4. Plant je eine feste Ablageposition für Montageblock, Distanzstück und Ausschuss.
Arbeitsauftrag 1.2

Zustandsfolge um Box-voll und Anzeigen erweitern

  1. Ergänzt den Ablauf um die Prüfung von bIn5 vor jeder Gutteilablage.
  2. Ordnet den Zuständen Warten, Betrieb, Ausschuss und Box voll je einen Statusausgang zu.
  3. Plant, wann ein Statusausgang gesetzt und wieder zurückgesetzt wird.
  4. Legt feste Ablagepositionen fest.
Arbeitsauftrag 1.2

Zustands- und Fehlerplan selbstständig entwickeln

  1. Erstellt einen eigenen Zustandsplan mit normalem Ablauf und mindestens zwei Signalfehlern.
  2. Definiert beobachtbare Diagnosezustände.
  3. Legt fest, wie der Ablauf nach einer vollen Box kontrolliert fortgesetzt wird.
  4. Begründet die Reihenfolge der beiden Auswertungen.
Arbeitsauftrag 1.2

Sortierbetrieb und Rastermodus getrennt planen

  1. Erstellt den vollständigen Zustands- und Fehlerplan des Profi-Auftrags.
  2. Ergänzt einen getrennten Raster-Testmodus mit 2 Zeilen und 3 Spalten.
  3. Definiert Basisposition, x-/y-Abstände sowie Zeilen- und Spaltenzähler.
  4. Begründet, warum der Rastermodus nicht in die asynchrone Signalkette hineingezwängt wird.
Meilenstein 1

Materialfluss und I/O geplant

  • Stationsskizze und Sortierziele
  • vollständige I/O-Tabelle
  • Zustandsfolge passend zur Auftragsstufe
  • Punktliste mit Sicherheitspositionen
  • Screenshot des BasicIO-Imports
Upload
Ladet den aktuellen Stand der technischen Teamdokumentation hoch. Erst nach Rückmeldung beginnt die Signallogik.
Lernkarte 2 · wait, bool und Signalaustausch

Werte erst lesen, wenn sie gültig sind

Ein Wert-Eingang allein verrät nicht, wann die Auswertung abgeschlossen ist. Das Programm wartet deshalb auf ein Gültigkeitssignal, übernimmt den Wert in eine Variable vom Typ bool und wartet anschließend auf die Rücksetzung.

waitProgrammfluss an Signal koppeln
bool0/1-Zustand speichern
AusgängeAnforderung halten, Quittierung pulsieren
Profilbild der fiktiven Person Selin ArslanKI
Von: Selin Arslan · QualitätssicherungBetreff: Prüfergebnisse nur nach Freigabe übernehmen

Hallo Robotik-Team,

Werkstückart und Qualitätsstatus können bereits am Eingang anliegen, obwohl die jeweilige Auswertung noch nicht abgeschlossen ist. Deshalb darf der Wert nicht dauerhaft beobachtet und irgendwann „passend“ verwendet werden.

Fordert die Auswertung an, wartet auf das zugehörige Gültigkeitssignal und speichert den Wert genau dann. Anschließend muss das Gültigkeitssignal wieder auf 0 zurückgehen, bevor der nächste Zyklus beginnen darf. Nur so übernimmt die Anlage nicht versehentlich das Ergebnis des vorherigen Werkstücks.

Viele Grüße
Selin Arslan
Qualitätssicherung

Werkstückart

bIn1 enthält den Wert.

bIn2 meldet: Wert ist gültig.

Gespeichert wird z. B. in bIstMontageblock.

Qualität

bIn3 enthält den Wert.

bIn4 meldet: Wert ist gültig.

Gespeichert wird z. B. in bIstGutteil.

Datentyp bool
Eine Variable vom Typ bool speichert genau zwei logische Zustände: true oder false. Beim Kopieren eines digitalen Eingangs bleibt der gelesene Zustand erhalten, auch wenn der Eingang später zurückgesetzt wird.
Arbeitsauftrag 2.1

Bool-Variablen anlegen und prüfen

  1. Legt bIstMontageblock und bIstGutteil als bool an.
  2. Prüft Gültigkeitsbereich und Anfangswert.
  3. Erklärt den Unterschied zwischen bIn1 und bIstMontageblock.
  4. Testet in der Simulation, ob die Variable ihren Wert nach Rücksetzung des Eingangs behält.
AusgangVerwendungErwartetes Verhalten
bOut0Artprüfung anfordernbleibt aktiv, bis bIn2 gesetzt wurde
bOut1Artwert übernommen2-s-Impuls
bOut2Qualitätsprüfung anfordernbleibt aktiv, bis bIn4 gesetzt wurde
bOut3Sortierung beendet2-s-Impuls
Beispiel: Quittierung als 2-s-Impuls
bOut1 = true
delay(2)
bOut1 = false
Wichtig
delay(2) schaltet einen Ausgang nicht automatisch aus. Die Anforderungssignale bOut0 und bOut2 werden nicht zeitgesteuert abgeschaltet, sondern erst nach dem zugehörigen Gültigkeitssignal.
Arbeitsauftrag 2.2

Vier projektbezogene Ausgänge testen

  1. Verwendet die festgelegte Zuordnung: bOut0 fordert die Artprüfung an, bOut1 quittiert die Wertübernahme, bOut2 fordert die Qualitätsprüfung an und bOut3 meldet den Zyklusabschluss.
  2. Testet bOut0 und bOut2 zunächst als gehaltene Signale: einschalten, den Zustand beobachten und gezielt wieder ausschalten.
  3. Testet bOut1 und bOut3 als 2-s-Impulse.
  4. Dokumentiert für jeden Ausgang Funktion, Einschaltbedingung und Ausschaltbedingung.
Lückengerüst · Werkstückart (noch nicht lauffähig)
bOut0 = true
wait(??? Gültigkeit der Art)
bOut0 = false
bIstMontageblock = ??? Werteingang
bOut1 = true
delay(2)
bOut1 = false
wait(!??? Gültigkeit der Art)
Arbeitsauftrag 2.3

Lückengerüst vervollständigen und erklären

  1. Ersetzt die Platzhalter durch die passenden Eingänge.
  2. Testet den Ablauf mit bIn1 = 1 und danach mit bIn1 = 0.
  3. Prüft, dass bOut0 bis zum Setzen von bIn2 aktiv bleibt.
  4. Erklärt jede Zeile im Fachgespräch.
  5. Übertragt das Prinzip selbstständig auf die Qualitätsprüfung.
Arbeitsauftrag 2.3

Beide vollständigen Handshakes programmieren

  1. Programmiert die Art- und Qualitätsauswertung mit Anforderung, Gültigkeit, Wertübernahme, Quittierung und Rücksetzung.
  2. Speichert beide Werte in bool-Variablen.
  3. Prüft, dass kein alter Gültigkeitszustand in den nächsten Zyklus übernommen wird.
  4. Erstellt einen Ablaufnachweis mit I/O-Zuständen.
Arbeitsauftrag 2.3

Robuste Signalkette selbstständig entwickeln

  1. Entwickelt beide Handshakes ohne vollständiges Codegerüst.
  2. Haltet jede Anforderung bis zum zugehörigen Gültigkeitssignal aktiv und schaltet die Quittierungen als 2-s-Impulse.
  3. Definiert und testet das Verhalten bei nicht zurückgesetztem Gültigkeitssignal.
  4. Dokumentiert die Signalfolge als Zeit- oder Zustandstabelle.
Arbeitsauftrag 2.3

Signalkette als wiederverwendbare Funktionsblöcke vorbereiten

  1. Entwickelt den robusten Profi-Handshake.
  2. Plant getrennte Unterprogramme für Art- und Qualitätsauswertung.
  3. Ordnet globale bool-Werte und Ausgangsimpulse eindeutig zu.
  4. Bereitet nachvollziehbare Diagnosezustände für fehlerhafte Rücksetzungen vor.
LLM-Nutzung
Ein LLM kann euch helfen, die Wirkung einer wait-Zeile zu erklären oder Testfälle vorzuschlagen. Die konkrete VAL3-Syntax und das tatsächliche Blockierverhalten prüft ihr in der Stäubli-Hilfe und in der Simulation.
Wann darf bIn1 übernommen werden?
Warum wartet das Programm auf !bIn2?
Lernkarte 3 · if-Entscheidungen

Qualität zuerst, Werkstückart danach auswerten

Ein Schlechtteil kommt unabhängig von seiner Art in den Ausschuss. Nur bei einem Gutteil ist eine zweite Entscheidung zwischen Montageblock und Distanzstück notwendig.

ifBedingung auswerten
elseAlternative ausführen
EntscheidungsbaumReihenfolge begründen
Ist bIstGutteil wahr?
Ja · GutteilZweite Entscheidung: bIstMontageblock?
Nein · SchlechtteilUnabhängig von der Art in Ausschuss ablegen.
Montageblockzur Montageblock-Ablage
Distanzstückzur Distanzstück-Ablage
Arbeitsauftrag 3.1

Entscheidungsreihenfolge begründen

  1. Erstellt den Entscheidungsbaum in eurer Teamdokumentation.
  2. Begründet, warum zuerst die Qualität geprüft wird.
  3. Formuliert für jeden Endzweig einen eindeutigen Sollzustand.
  4. Ordnet jedem Endzweig das spätere Unterprogramm zu.
Grundform einer Entscheidung
if Bedingung
  // Befehle bei true
else
  // Befehle bei false
endIf

So wird gelesen

Nach if steht eine Bedingung vom Typ bool. Ist sie true, wird der erste Block ausgeführt. Andernfalls folgt der else-Block. Jeder Block endet mit endIf.

Bei einer verschachtelten Entscheidung liegt ein vollständiger if … endIf-Block innerhalb eines anderen Zweigs.

Lückengerüst für den Logiktest
if bIstGutteil
  if ??? Werkstückart
    bOut4 = true
  else
    ??? Ausgang für Distanzstück
  endIf
else
  ??? Ausgang für Ausschuss
endIf
Arbeitsauftrag 3.2

Struktur vervollständigen und ohne Bewegung testen

  1. Vervollständigt das Lückengerüst mit drei eindeutig zugeordneten Statusausgängen.
  2. Setzt die Testausgänge vor jedem neuen Fall vollständig zurück.
  3. Prüft alle vier Kombinationen aus Art und Qualität.
  4. Erklärt, warum beide Schlechtteil-Kombinationen denselben Zweig verwenden.
  5. Dokumentiert für jeden Testfall die Eingangswerte und den aktiven Ausgang.
Arbeitsauftrag 3.2

Entscheidungsstruktur selbst ergänzen

  1. Übertragt euren Entscheidungsbaum in eine verschachtelte if-Struktur.
  2. Bildet die drei Endzweige zunächst mit eindeutig zugeordneten Statusausgängen ab.
  3. Setzt alle Testausgänge vor jedem neuen Fall zurück.
  4. Testet alle vier Kombinationen und dokumentiert die Ausgänge.
  5. Notiert passende Namen für die späteren Ablage-Unterprogramme.
Arbeitsauftrag 3.2

Entscheidungslogik robust implementieren

  1. Entwickelt eine nachvollziehbare if-Struktur aus eurem Zustandsplan.
  2. Testet jeden Endzweig zunächst ausschließlich über beobachtbare Statusausgänge.
  3. Leitet aus den Endzweigen sinnvolle spätere Ablage-Unterprogramme ab, ohne sie bereits aufzurufen.
  4. Begründet Entscheidungsreihenfolge und Teststrategie im Fachgespräch.
Arbeitsauftrag 3.2

Entscheidungslogik für zwei Betriebsarten vorbereiten

  1. Implementiert und testet den robusten Profi-Entscheidungsbaum zunächst über Statusausgänge.
  2. Trennt Sortierbetrieb und Raster-Testmodus eindeutig.
  3. Sichert, dass der Rastermodus die gespeicherten Prüfergebnisse nicht verändert.
  4. Dokumentiert, welche Endzweige in Ablage-Unterprogramme überführt werden.
LLM-Nutzung
Ein LLM kann aus eurem Entscheidungsbaum eine mögliche if-Struktur ableiten. Übernehmt sie nur, wenn ihr jeden Zweig erklären und alle vier Eingangskombinationen erfolgreich testen könnt.
Meilenstein 2

Signallogik funktionsfähig

  • beide Wert-/Gültigkeitspaare werden korrekt synchronisiert
  • bool-Werte werden im richtigen Moment gespeichert
  • alle vier Kombinationen führen zum richtigen Entscheidungszweig
  • Anforderungssignale bleiben bis zur gültigen Rückmeldung aktiv; Quittierungen werden als 2-s-Impulse gesetzt
  • alte Gültigkeitssignale werden vor dem nächsten Zyklus abgebaut
Upload
Dokumentiert Signalfolge, Testfälle und Ergebnisse. Bewegungen dürfen noch durch Statusausgänge oder Platzhalter-Unterprogramme ersetzt sein.
Lernkarte 4 · Unterprogramme und call

Den Materialfluss in verständliche Funktionsblöcke zerlegen

Ein einziges langes Hauptprogramm wäre schwer zu testen. Deshalb werden klar abgegrenzte Abläufe als Unterprogramme angelegt und im Hauptprogramm mit call aufgerufen.

Unterprogrammeine klare Aufgabe
callAblauf aufrufen
Rückkehrdanach nächste Zeile
Profilbild der fiktiven Person Jonas WeberKI
Von: Jonas Weber · InstandhaltungBetreff: Signale, Greifen und Ablegen getrennt testbar machen

Hallo Robotik-Team,

bei einer Störung müssen wir schnell erkennen können, ob das Problem in der Signalauswertung, beim Greifen oder an einem Ablagepunkt liegt. Teilt das Programm deshalb in Unterprogramme mit eindeutigen Namen und genau einer Aufgabe.

Ein Unterprogramm wird im Hauptablauf mit dem Befehl call gestartet. Nach seinem Ende läuft das aufrufende Programm in der nächsten Zeile weiter. Testet jeden Block einzeln, bevor ihr ihn in den Dauerbetrieb einbindet.

Viele Grüße
Jonas Weber
Instandhaltung

call werkstueckAuswerten()wartet und speichert Art sowie Qualität
call werkstueckGreifen()nimmt am gemeinsamen Punkt sicher auf
call werkstueckSortieren()führt die if-Entscheidung aus
call zyklusAbschliessen()meldet Fertigstellung und wartet auf Rücksetzungen
Prinzip des Hauptprogramms
call werkstueckAuswerten()
call werkstueckGreifen()
call werkstueckSortieren()
call zyklusAbschliessen()
Rückkehr
Nach dem Ende eines Unterprogramms wird im aufrufenden Programm die nächste Zeile ausgeführt. In diesem Projekt werden keine Parameter oder Rückgabewerte verlangt, die nicht sicher erklärt werden können.
Arbeitsauftrag 4.1

Vier vorgegebene Unterprogramme anlegen

  1. Legt die vier gezeigten Unterprogramme exakt mit diesen Namen an.
  2. Übernehmt zunächst nur bereits getestete Codeblöcke.
  3. Ruft jedes Unterprogramm einzeln mit call auf.
  4. Dokumentiert Ein- und Ausgangszustand jedes Blocks.
Arbeitsauftrag 4.1

Unterprogramme sinnvoll ergänzen

  1. Verwendet mindestens die vier Funktionsblöcke aus der Übersicht.
  2. Ordnet Statusanzeigen und Box-voll-Warten dem fachlich passenden Block zu.
  3. Vermeidet doppelte Greifer- und Bewegungssequenzen.
  4. Testet jeden Block separat und danach in der Hauptreihenfolge.
Arbeitsauftrag 4.1

Wartbare Programmstruktur selbst entwerfen

  1. Entwerft eine eigene Unterprogrammstruktur mit eindeutigen Verantwortlichkeiten.
  2. Begründet, welche Werte global verfügbar sein müssen.
  3. Erstellt eine Testreihenfolge für die Inbetriebnahme.
  4. Zeigt im Fachgespräch, wie ein Fehler gezielt einem Block zugeordnet wird.
Arbeitsauftrag 4.1

Zwei Betriebsarten sauber strukturieren

  1. Entwickelt die wartbare Profi-Struktur.
  2. Legt zusätzlich ein getrenntes Unterprogramm für den Raster-Testmodus an.
  3. Verhindert, dass Sortier- und Rastermodus gleichzeitig aktiv sein können.
  4. Dokumentiert Aufrufhierarchie und gemeinsam genutzte Bewegungsblöcke.
Lernkarte 5 · while-Dauerbetrieb

Jeden Zyklus vollständig abschließen, bevor der nächste beginnt

Der Materialfluss soll nicht nach einem Werkstück enden. Eine while-Schleife wiederholt den Gesamtzyklus. Entscheidend sind dabei das Rücksetzen alter Signale und das sichere Verhalten bei voller Gutteilbox.

whiledauerhaften Anlagenbetrieb bilden
Rücksetzungaltes Werkstück nicht doppelt verarbeiten
Box vollsicher warten statt falsch ablegen
Struktur des Dauerbetriebs
while true
  wait(bIn0)
  call werkstueckAuswerten()
  call werkstueckGreifen()
  call werkstueckSortieren()
  call zyklusAbschliessen()
endWhile
Dauerbetrieb
while true endet nicht selbstständig. Der Programmlauf wird nur über die vorgesehene Bedienung und unter Beachtung der Sicherheitsregeln beendet. Ein Not-Halt ist keine normale Stoppfunktion.
LLM-Nutzung
Lasst euch bei Bedarf erklären, warum eine Endlosschleife mit blockierenden wait-Befehlen trotzdem kontrolliert arbeiten kann. Die verwendete VAL3-Syntax wird in der Stäubli-Hilfe geprüft.
Arbeitsauftrag 5.1

Ablauf der Schleife erklären

  1. Beschreibt, warum wait(bIn0) am Beginn jedes Durchlaufs steht.
  2. Erklärt, weshalb die Unterprogramme innerhalb der Schleife aufgerufen werden.
  3. Bestimmt, an welcher Stelle das Werkstück den Aufnahmeplatz wieder verlassen haben muss.
  4. Prüft die genaue Syntax von while true in der Hilfe eurer SRS-Version.
Typischer Abschlussblock
bOut3 = true
delay(2)
bOut3 = false
wait(!bIn2)
wait(!bIn4)
wait(!bIn0)
Arbeitsauftrag 5.2

Rücksetzfolge testen

  1. Lasst bIn2, bIn4 oder bIn0 absichtlich aktiv.
  2. Beobachtet, an welcher wait-Zeile das Programm stehen bleibt.
  3. Prüft, dass kein zweiter Sortierzyklus mit demselben Werkstück startet.
  4. Dokumentiert den erwarteten und tatsächlichen Zustand.
Arbeitsauftrag 5.3

Vorgegebenen Box-voll-Block einsetzen

  1. Prüft bIn5 nur im Gutteilzweig vor der Ablage.
  2. Fahrt bei voller Box die vorgegebene sichere Warteposition an.
  3. Setzt die Box-voll-Anzeige und wartet auf !bIn5.
  4. Setzt die Anzeige zurück und setzt erst dann die Gutteilablage fort.
Arbeitsauftrag 5.3

Box-voll-Zustand vollständig programmieren

  1. Entwickelt den Warteblock mit sicherer Position, Statusanzeige und Rücksetzung.
  2. Prüft, dass Schlechtteile weiterhin in den Ausschuss gelangen können, sofern der Prozessablauf dies zulässt.
  3. Testet „Box wird vor“ und „Box wird während des Zyklus voll“ nach Vorgabe der Lehrkraft.
  4. Dokumentiert den Wiederanlauf.
Arbeitsauftrag 5.3

Robustes Verhalten bei voller Box entwickeln

  1. Definiert den Zeitpunkt der Box-voll-Prüfung fachlich eindeutig.
  2. Verhindert, dass ein bereits gegriffenes Gutteil ohne gültiges Ziel weiterbewegt wird.
  3. Erzeugt einen beobachtbaren Diagnosezustand.
  4. Begründet den Wiederanlauf ohne Verlust der gespeicherten Werkstückwerte.
Arbeitsauftrag 5.3

Box-voll und Rasterstatus koordinieren

  1. Entwickelt den robusten Profi-Wartezustand.
  2. Trennt Box-voll-Signal des Sortierbetriebs vom Belegungszustand des Raster-Testmodus.
  3. Sichert die Zeilen- und Spaltenzähler gegen unbeabsichtigte Änderung während einer Pause.
  4. Dokumentiert den kontrollierten Wiederanlauf beider Betriebsarten.
Lernkarte 6 · Gesamter Sortierzyklus

Signale, Greifer, Bewegung und Status zu einer Anlage verbinden

Die Logik wird jetzt mit dem realen Pick-and-Place-Ablauf verbunden. Verwendet weiterhin flange, sichere Zwischenpositionen und ein eindeutiges Greiferprotokoll.

Greifengemeinsamer Aufnahmeplatz
Sortierendrei feste Ziele
StatusProzesszustand sichtbar machen
Startsichere Position
Aufnahme obenmovej
Aufnahmemovel + Greifer
Ziel obenart-/qualitätsabhängig
Ablagemovel + öffnen
Abschlusssicher + bOut3
Arbeitsauftrag 6.1

Punktliste und Bewegungsarten festlegen

  1. Legt Punkte für Start, Aufnahme oben, Aufnahme, alle drei Ziele oben und alle drei Ablagen an.
  2. Verwendet movej(..., flange, ...) im freien Raum und movel(..., flange, ...) zum kontrollierten Absenken und Anheben.
  3. Setzt waitEndMove() vor jeder Greiferaktion.
  4. Prüft rx = -180 und Shoulder wie in Projekt 1.
Greifer öffnen
bOut15 = false
bOut14 = true
delay(2)
Greifer schließen
bOut14 = false
bOut15 = true
delay(2)
Zustand halten
Nach delay(2) bleibt der zuletzt gesetzte Ausgang aktiv. Das ist beim Transport des Werkstücks erforderlich. Der Gegenbefehl wird erst bei der nächsten Greiferaktion gesetzt.
Basisbetrieb

Feste Punkte, vorgegebene Unterprogrammnamen und geführte Signalkette. Nachzuweisen sind drei korrekte Sortierfälle und ein kontrollierter zweiter Zyklus.

Arbeitsauftrag 6.2

Geführten Sortierzyklus vervollständigen

  1. Programmiert die drei festen Ablage-Unterprogramme.
  2. Verbindet sie mit dem vorgegebenen Entscheidungsbaum.
  3. Setzt mindestens die Statusanzeigen Warten, Betrieb und Ausschuss.
  4. Testet die drei Pflichtfälle nacheinander über die Taster.
Anlagenausbau

Vollständiger Handshake, vier Statuszustände und Box-voll-Warten. Der Zyklus läuft wiederholt und muss nach vollständiger Signalrücksetzung sauber neu starten.

Arbeitsauftrag 6.2

Vollständige signalkontrollierte Anlage aufbauen

  1. Integriert Signalauswertung, Sortierbewegungen, Statusanzeigen und Box-voll-Block.
  2. Nutzt bOut3 nach jedem vollständig abgeschlossenen Zyklus.
  3. Testet mindestens vier Pflichtfälle einschließlich voller Box.
  4. Prüft, dass alle Ausgänge nach Stopp oder Neustart definiert sind.
Profi-Auftrag

Der Materialfluss wird robust, diagnostizierbar und weitgehend selbstständig strukturiert. Ein optionales reales Förderband wird ausschließlich nach Lehrkraftfreigabe über ein definiertes Freigabesignal angebunden.

Arbeitsauftrag 6.2

Robusten Materialfluss in Betrieb nehmen

  1. Verknüpft eure selbst entwickelte Unterprogramm- und Zustandsstruktur mit den Bewegungen.
  2. Implementiert Diagnoseanzeigen für mindestens zwei fehlerhafte Signalzustände.
  3. Definiert bOut3 eindeutig als Zyklus-/Förderbandfreigabe und testet zunächst nur an der I/O-Säule.
  4. Führt mindestens sechs dokumentierte Testfälle durch.
Expertenauftrag

Der robuste Profi-Sortierbetrieb bleibt vollständig erhalten. Zusätzlich entwickelt ihr einen getrennt aktivierbaren Raster-Testmodus mit Offset und verschachtelten for-Schleifen.

Arbeitsauftrag 6.2

Sortierbetrieb als stabile Grundlage abschließen

  1. Erfüllt alle Anforderungen des Profi-Auftrags.
  2. Definiert eine sichere Umschaltbedingung zwischen Sortier- und Rastermodus.
  3. Stellt sicher, dass beide Betriebsarten gemeinsame Greifer- und Sicherheitsunterprogramme nutzen können.
  4. Friert den getesteten Sortierstand vor Beginn der Rastererweiterung als Sicherungskopie ein.
FehlerbildZuerst prüfen
Roboter greift sofort nach Programmstartwait(bIn0) am Zyklusbeginn
falsche Ablage trotz richtiger TasterstellungWert erst nach bIn2/bIn4 gespeichert?
gleicher Zyklus läuft zweimalwait(!bIn0) und Rücksetzung der Gültigkeitssignale
Greifer öffnet während des TransportsAusgangszustände und Gegenrichtung
Box-voll wird ignoriertPrüfung im Gutteilzweig vor der Ablage
Programm schwer eingrenzbarUnterprogramme einzeln aufrufen und testen
Lernkarte 7 · Expertenauftrag

Einen 2×3-Rasterbehälter mit Offset füllen

Die verschachtelten for-Schleifen werden in einer echten zweidimensionalen Anwendung eingesetzt: Die äußere Schleife liefert die Zeile, die innere Schleife die Spalte. Aus einer Basisposition wird für jedes Fach ein versetzter Ablagepunkt erzeugt.

äußere forZeilen zählen
innere forSpalten zählen
Offsetx/y-Versatz berechnen
Getrennter Expertenmodus
Der Rastermodus dient als zusätzliche Inbetriebnahme- und Transferaufgabe. Er ersetzt nicht den signalgesteuerten Sortierbetrieb und wird nur mit identischen, vorab bereitgestellten Testteilen ausgeführt.
Z0/S0
Z0/S1
Z0/S2
Z1/S0
Z1/S1
Z1/S2
Arbeitsauftrag 7.1

Rasterparameter bestimmen

  1. Legt eine sichere Basis-Ablageposition für Zeile 0, Spalte 0 fest.
  2. Ermittelt x-Abstand, y-Abstand und Sicherheitsfahrhöhe.
  3. Bestimmt die Bewegungsreihenfolge durch alle sechs Fächer.
  4. Prüft den gesamten Rasterbereich zunächst ohne Werkstück.
Ablaufpseudocode · nicht direkt kopieren
for nZeile = 0 to 1
  for nSpalte = 0 to 2
    x-Versatz = nSpalte · nAbstandX
    y-Versatz = nZeile · nAbstandY
    Ablagepunkt = Basisposition + Offset(x-Versatz, y-Versatz)
    call teilImRasterAblegen()
  endFor
endFor
Arbeitsauftrag 7.2

Schleifenverlauf nachweisen

  1. Erstellt eine Tabelle mit allen sechs Kombinationen aus nZeile und nSpalte.
  2. Berechnet für jede Kombination den x- und y-Versatz.
  3. Erklärt, warum die innere Schleife bei jeder neuen Zeile erneut vollständig durchläuft.
  4. Begründet, warum eine einzelne nicht verschachtelte Schleife die 2D-Struktur schlechter abbildet.
Versionsabhängig
Die konkrete VAL3-Funktion zum Erzeugen oder Verschieben einer Position wird in eurer installierten Robotics-Suite-Version und am verwendeten Controller geprüft. Verwendet ausschließlich eine von integrierter Stäubli-Hilfe und Lehrkraft bestätigte Syntax.
Arbeitsauftrag 7.3

Offset-Befehl recherchieren, prüfen und anwenden

  1. Sucht in der integrierten Stäubli-Hilfe nach der verfügbaren Funktion zum Versetzen einer Position.
  2. Dokumentiert Funktionsname, Parameter und ein selbst geprüftes Minimalbeispiel.
  3. Testet zunächst nur einen x-Versatz und danach nur einen y-Versatz.
  4. Verbindet erst anschließend Offset-Berechnung, verschachtelte Schleifen und Ablage-Unterprogramm.
LLM-Nutzung
Ein LLM darf bei der Erklärung helfen, aber die Syntax muss mit Stäubli-Hilfe und Simulation verifiziert werden. Übernehmt keine vermeintlich plausible Offset-Funktion ungeprüft.
Arbeitsauftrag 7.4

Rasterfüllung vollständig testen

  1. Simuliert alle sechs Fächer zunächst ohne Greiferaktion.
  2. Prüft Sicherheitsfahrhöhe und Orientierung an jeder Rasterposition.
  3. Führt einen vollständigen Test mit identischen Testteilen durch.
  4. Setzt Zeilen-, Spalten- und Offsetwerte nach Abschluss definiert zurück.
  5. Dokumentiert den Zusammenhang zwischen Schleifenwerten und realer Position.

Später erneut erklären

Beantworte den folgenden Fall zunächst allein und ohne Unterlagen. Begründe deine Entscheidung; vergleiche anschließend mit einer zweiten Person.

Ein Werkstückwert wird gelesen, bevor das Gültigkeitssignal anliegt. Danach wird der Eingang zurückgesetzt. Warum kann die Sortierung falsch sein?

Nach dem eigenen Versuch: Begründung vergleichen

Vor der Gültigkeit kann ein alter oder noch instabiler Wert vorliegen. Lies und speichere den Wert erst im vereinbarten gültigen Zustand; steuere die Entscheidung danach über die gespeicherte bool-Variable. Prüfe auch die Rücksetzungen vor dem folgenden Zyklus.

Verbessere genau eine unklare Stelle in deinem vorhandenen Hefter. Erkläre die Entscheidung zu Beginn der nächsten Unterrichtseinheit erneut ohne Vorlage und ändere dabei eine Randbedingung. Halte fest, was du nun selbst begründen kannst und welche Frage noch offen ist.

Lernkarte 8 · Simulation und Freigabe

Jeden Signal- und Sortierfall gezielt provozieren

Eine fehlerfreie Bewegung bei nur einem Werkstück genügt nicht. Die Simulation muss zeigen, dass Signale, Entscheidungen, Rücksetzungen und Wartezustände in allen Pflichtfällen funktionieren.

TestmatrixFälle systematisch abdecken
FachgesprächAblauf erklären
Meilenstein 3Gesamtsimulation freigeben
FallEingängeErwartung
guter MontageblockbIn1=1, bIn3=1Montageblock-Ablage
gutes DistanzstückbIn1=0, bIn3=1Distanzstück-Ablage
SchlechtteilbIn3=0Ausschuss, Art ohne Einfluss
zweiter Zyklusalle Freigaben zurücksetzenerst nach neuem bIn0 starten
FallZusatzprüfungErwartung
alle Basisfällevollständiger Handshakekorrekte Rücksetzungen
Gutteilbox vollbIn5=1sicher warten, Anzeige aktiv
Box wieder freibIn5→0kontrolliert fortsetzen
Gültigkeit bleibt 1bIn2 oder bIn4nächster Zyklus wartet
Arbeitsauftrag 8.1

Eigene Testmatrix mit mindestens sechs Fällen ausführen

  1. Deckt alle normalen Sortierfälle ab.
  2. Erzeugt mindestens zwei fehlerhafte oder verspätete Signalfolgen.
  3. Prüft Box-voll, Diagnoseanzeige und Wiederanlauf.
  4. Prüft die Zyklus-/Förderbandfreigabe bOut3.
  5. Dokumentiert Soll, Ist, Fehlerursache und Korrektur.
Arbeitsauftrag 8.1

Sortierbetrieb und Rastermodus getrennt qualifizieren

  1. Führt die vollständige Profi-Testmatrix durch.
  2. Testet alle sechs Rasterpositionen ohne und mit Testteilen.
  3. Prüft die sichere Umschaltung zwischen den Betriebsarten.
  4. Proviziert eine Unterbrechung im Rastermodus und weist einen kontrollierten Wiederanlauf nach.
  5. Dokumentiert Offsetwerte und Schleifenzustände.
Arbeitsauftrag 8.2

Fachgespräch vorbereiten

  1. Zeigt den Ablauf vom wait(bIn0) bis zur Rücksetzung.
  2. Erklärt das Zwei-Eingangs-Prinzip für Art und Qualität.
  3. Begründet Entscheidungsreihenfolge und Unterprogrammstruktur.
  4. Zeigt einen absichtlich blockierten wait-Zustand.
  5. Erklärt Greiferzustände, Sicherheitsfahrhöhen und flange.
Individuelle Leistung
Die Erklärungsabschnitte werden im Team gewechselt. Jede Person muss auch Programmteile erklären können, die sie nicht allein erstellt hat.
Meilenstein 3

Gesamtsimulation abnahmebereit

  • vollständiger Programmstand und SRS-Dateien
  • Testmatrix mit Soll-Ist-Ergebnissen
  • erklärte Codeausschnitte zu wait, if, call und while
  • Nachweis der Rücksetzungen und Box-voll-Reaktion
  • bei Experte: Offset- und Rasterdokumentation
Upload
Ladet den aktuellen Teamstand hoch und führt die Simulation der Lehrkraft vor.
Sicherheitsfreigabe · Projekt 3
0 von 6 Prüfpunkten bestätigt.
Lernkarte 9 · Realtest und Projektabnahme

Die signalkontrollierte Sortierstation am RS40 prüfen

Der reale Test beginnt mit einem einzelnen, klar vorbereiteten Fall. Geschwindigkeit und Umfang werden erst nach vollständigem, fehlerfreiem Durchlauf und Freigabe der Lehrkraft erhöht.

10 % startenerster Lauf reduziert
Signale bedienennur abgestimmte Reihenfolge
Meilenstein 4Abnahme und Sicherung
Arbeitsauftrag 9.1

Ersten Testfall festlegen

  1. Wählt mit der Lehrkraft einen ersten Werkstückfall.
  2. Legt fest, wer den Roboter beobachtet, wer die I/O-Signale schaltet und wer protokolliert.
  3. Prüft Startposition, Greifergrundzustand, leere Zielablage und freie Roboterbahn.
  4. Stellt die vorgegebene reduzierte Geschwindigkeit ein.
  5. Beginnt erst nach ausdrücklicher Freigabe.
RS40-Schutzzelle
Das Öffnen der Schiebetür hält den Programmablauf an. Manuelles Bewegen kann weiterhin möglich sein. Deshalb dürfen Werkstücke nur nach Anweisung ausgerichtet werden; ein gestoppter Programmablauf bedeutet nicht automatisch, dass jede Bewegung ausgeschlossen ist.
Arbeitsauftrag 9.2

Drei reale Pflichtfälle prüfen

  1. Testet guten Montageblock, gutes Distanzstück und ein Schlechtteil.
  2. Führt nur die von der Lehrkraft erlaubte Anzahl realer Zyklen aus.
  3. Haltet Signalfolge, Zielablage und Abweichungen fest.
  4. Erhöht die Geschwindigkeit nur nach vollständiger fehlerfreier Fahrt und Freigabe.
Arbeitsauftrag 9.2

Signalfolge und Box-voll-Verhalten prüfen

  1. Testet die Basisfälle und den Box-voll-Wartezustand.
  2. Prüft die vollständige Rücksetzung vor dem nächsten Werkstück.
  3. Beobachtet alle Statusanzeigen.
  4. Dokumentiert Wiederanlauf und Freigabeimpuls.
Arbeitsauftrag 9.2

Robusten Materialfluss nachweisen

  1. Führt die freigegebenen Normal- und Diagnosefälle durch.
  2. Bindet ein reales Förderband nur nach gesonderter Freigabe ein.
  3. Weist kontrolliertes Verhalten bei verspäteter Rücksetzung nach.
  4. Vergleicht Simulation und Realanlage systematisch.
Arbeitsauftrag 9.2

Sortierbetrieb und Rastermodus abnehmen

  1. Erfüllt die Anforderungen des Profi-Auftrags.
  2. Führt den Rastermodus nur mit von der Lehrkraft freigegebenen Testteilen aus.
  3. Prüft alle sechs Rasterplätze bei reduzierter Geschwindigkeit.
  4. Weist die sichere Trennung beider Betriebsarten nach.
Meilenstein 4

Projekt 3 abgenommen

  • Abnahmeprotokoll mit Soll-Ist-Vergleich
  • finale technische Teamdokumentation
  • vollständige lokale SRS-Dateien zurück ins persönliche Schulnetz-Laufwerk kopiert
  • bei Abwesenheitsrisiko: aktuelle Kopie durch Lehrkraft auf ein weiteres Schülerlaufwerk übertragen
  • individuelle Dokumentation der letzten Einheit abgegeben
Abschluss
Projekt 3 bildet die Grundlage der dritten Quartalsnote. Anschließend folgt die projektübergreifende Abschlussreflexion; sehr starke Teams können das TX90-Zusatzprojekt bearbeiten.
VAL3-Hilfe · Projekt 3

Neue Befehle und Fehlersuche gezielt nachschlagen

Die Beispiele zeigen die in diesem Projekt verwendeten Grundstrukturen. Die integrierte Stäubli-Hilfe eurer installierten Version bleibt die verbindliche Quelle für genaue Syntax und versionsabhängige Funktionen.

Signalewait und bool
Strukturif, call, while
ExperteOffset versionsgeprüft
wait(bIn0)     // wartet auf true
wait(!bIn2)    // wartet auf false

Während wait blockiert, wird die nächste Programmzeile nicht ausgeführt. Prüft deshalb am I/O-Monitor, auf welchen Zustand das Programm tatsächlich wartet.

bIstMontageblock = bIn1
bIstGutteil = bIn3

Der gespeicherte bool-Wert bleibt erhalten, nachdem der Eingang zurückgesetzt wurde. Achtet auf verständliche Namen und passende Anfangswerte.

if bIstGutteil
  // Gutteilweg
else
  // Ausschussweg
endIf

Bei verschachtelten Entscheidungen müssen alle if-Blöcke eindeutig mit endIf abgeschlossen sein. Einrückungen helfen beim Erklären und bei der Fehlersuche.

call werkstueckGreifen()

Nach Ende des Unterprogramms läuft das aufrufende Programm in der nächsten Zeile weiter. Testet Unterprogramme einzeln, bevor sie in die while-Schleife eingebunden werden.

while true
  wait(bIn0)
  // einen vollständigen Zyklus ausführen
endWhile

Die Schleife wird nur über die vorgesehene Programmbedienung beendet. Prüft in eurer Version, ob true in dieser Form verwendet wird.

Anforderung halten

bOut0 = true
wait(bIn2)
bOut0 = false

bOut0 bleibt aktiv, bis die Art-Auswertung gültig ist. Für die Qualität gilt dasselbe Prinzip mit bOut2 und bIn4.

Quittierung pulsieren

bOut1 = true
delay(2)
bOut1 = false

delay(2) verändert den Ausgang nicht. Das Ausschalten ist eine eigene Programmzeile.

BefehlEinsatz
movej(..., flange, ...)Positionieren im freien Raum
movel(..., flange, ...)geradliniges Absenken und Anheben
waitEndMove()vor Greiferaktion Bewegungsende abwarten
bOut14 / bOut15Greifer öffnen / schließen; Zustand bleibt erhalten

Die äußere for-Schleife zählt Zeilen, die innere Spalten. Die konkrete Offset-Funktion wird in der Stäubli-Hilfe der installierten Version geprüft. Verwendet keine unbestätigte Funktionssyntax.

  1. Aktuelle Programmzeile und I/O-Zustände sichern.
  2. Prüfen, ob das Programm auf ein Signal wartet oder eine Bewegung ausführt.
  3. Anforderungsausgang und Gültigkeitseingang prüfen.
  4. Gespeicherte bool-Werte kontrollieren.
  5. if-Zweig ohne Bewegung über Statusausgänge testen.
  6. Unterprogramm einzeln aufrufen.
  7. Erst danach Punkte, flange, Greifer und Sicherheitsfahrhöhe prüfen.
  8. Nur eine Änderung gleichzeitig vornehmen.
Dokumentation · Projekt 3

Signallogik und eigene Entscheidungen nachvollziehbar belegen

Projekt 3 ergänzt die bisherige Dokumentation um I/O-Handshakes, bool-Werte, Entscheidungsbäume, Unterprogrammstruktur und eine systematische Testmatrix.

Individuelljede Unterrichtseinheit
Teambei vier Meilensteinen
QuellenSyntax verifizieren

Team_Nachname_Robotik.pdf

  1. Arbeitsziel der Unterrichtseinheit
  2. eigener Beitrag
  3. Ergebnis oder Nachweis
  4. Quellen- und LLM-Nachweis
  5. nächster Schritt
Aufgaben wechseln
Programmierung, Dokumentation, Recherche und Erprobung werden nicht dauerhaft einzelnen Personen zugeordnet. Haltet fest, welchen Bereich ihr in dieser Einheit tatsächlich bearbeitet habt.

Team_Robotik_Gesamtdokumentation.pdf

  • Auftrag, Materialfluss und gewählte Stufe
  • Stationsskizze, Punktliste und Sicherheitspositionen
  • I/O-Tabelle mit projektbezogener Zuordnung
  • Zustandsfolge und Zwei-Eingangs-Prinzip
  • bool-Variablen und Entscheidungsbaum
  • Unterprogramm- und Aufrufstruktur mit call
  • Dauerbetrieb, Rücksetzungen und Box-voll-Verhalten
  • Testmatrix, Fehlerkorrekturen und Abnahme
  • Experte: Raster, Offsetquelle und verschachtelte for-Schleifen
MeilensteinUpload
Materialfluss und I/O geplantStationsskizze, I/O-Tabelle, Zustandsfolge, Punktliste
Signallogik funktionsfähigHandshakes, bool-Werte, if-Testfälle, Ausgangsimpulse
Gesamtsimulation abnahmebereitvollständiger Programmstand, Testmatrix, Fachgesprächsnachweis
Projekt abgenommenfinale Dokumentation, Abnahmeprotokoll und SRS-Projektdateien
Stäubli-Quelle

Beispiel

Integrierte Hilfe der Stäubli Robotics Suite, Suchbegriff „wait“, „if“ oder versionsabhängige Offset-Funktion, aufgerufen am …, relevante Aussage in eigenen Worten.

LLM-Nachweis

Beispiel

Frage: … · Vorschlag: … · mit Stäubli-Hilfe / Simulation geprüft: … · übernommen oder korrigiert: …

Auch ohne KI
Wenn kein LLM genutzt wurde, tragt „Keine KI genutzt“ ein.