Zum Inhalt springen

Industrierobotik und virtuelle Roboterzellen – Roboterprogramme übersichtlich strukturieren

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

Industrierobotik und virtuelle Roboterzellen – Roboterprogramme übersichtlich strukturieren

QR-Code



Industrierobotik und virtuelle Roboterzellen – Roboterprogramme übersichtlich strukturieren

Kurzbeschreibung: In diesem aiMOOC lernst Du, Roboterprogramme für virtuelle Roboterzellen übersichtlich aufzubauen. Im Mittelpunkt stehen Unterprogramme, Daten und Kommentare. Du arbeitest mit einem konkreten Ausbildungsfall, analysierst Signalverläufe und bearbeitest Steuerungs- und Diagnoseaufgaben ausschließlich in einer Simulation oder in ausdrücklich abgesichertem Schulungsbetrieb.

Sicherheitsrahmen: Dieser Kurs enthält keine Live-Fahrbefehle. Simulationsergebnisse sind keine Sicherheitsfreigabe für reale Anlagen. Reale Robotik darf nur nach betrieblicher Gefährdungsbeurteilung, Herstellerangaben, geltenden Sicherheitsregeln und unter Aufsicht qualifizierter Fachkräfte betrieben werden.


Einleitung

Industrieroboter arbeiten zuverlässig, wenn Programme nicht nur funktionieren, sondern auch lesbar, prüfbar und wartbar sind. Besonders in Ausbildung und Instandhaltung hilft eine klare Struktur dabei, Fehler schneller zu finden.

Ein Roboterprogramm lässt sich vereinfacht in drei Bausteine gliedern:

  1. Unterprogramm: Bearbeitet eine klar abgegrenzte Teilaufgabe.
  2. Daten: Speichern zum Beispiel Positionen, Zustände oder Prozesswerte.
  3. Kommentar: Erklärt Zweck, Annahmen oder besondere Bedingungen.

Bei komplexeren Anwendungen werden Programme in Module gegliedert. In ABB RAPID enthält ein Modul Daten- und Routinedeklarationen; größere Anwendungen können mehrere Module verwenden. Diese Grundidee ist auch auf andere Robotersprachen übertragbar.


Ausbildungsfall: Virtuelle Sortierzelle

Du arbeitest mit einer virtuellen Sortierzelle. Ein Bauteil wird in der Simulation erkannt, virtuell aufgenommen und abhängig von einem simulierten Prüfsignal einem Ablagebereich zugeordnet.

Die Lernaufgabe lautet:

Strukturiere das Programm so, dass eine andere Auszubildende oder ein anderer Auszubildender Ablauf, Daten und Diagnose schnell versteht.

Die Zelle verwendet beispielhaft folgende logische Signale:

  1. Teil_vorhanden: Ein Werkstück wurde virtuell erkannt.
  2. Pruefung_OK: Das simulierte Prüfergebnis ist positiv.
  3. Greifer_zu: Der virtuelle Greiferzustand ist geschlossen.
  4. Zyklus_fertig: Der Simulationszyklus ist abgeschlossen.

Es geht dabei nicht um reale Aktorik, sondern um Programmstruktur und Diagnose im Simulator.


Lernziele

Nach dem Kurs kannst Du:

  1. Programmteile nach Aufgabe gliedern.
  2. sinnvolle Unterprogramme erkennen und benennen.
  3. Daten von Ablauflogik unterscheiden.
  4. Kommentare zielgerichtet einsetzen.
  5. virtuelle Signalverläufe lesen.
  6. typische Strukturfehler in einer Simulation diagnostizieren.
  7. begründen, warum Simulation keine reale Sicherheitsvalidierung ersetzt.


Lerneinheit 1: Warum strukturieren?

Ein einziges langes Hauptprogramm ist schwer zu lesen. Gute Struktur reduziert Suchaufwand und erleichtert Änderungen.

Schlecht überschaubar: Hauptablauf enthält Erkennung, Greifen, Prüfen, Ablegen, Fehlerbehandlung und Meldungen ohne klare Trennung.

Besser: Hauptablauf ruft klar benannte Unterprogramme auf.

Main
  Initialisieren
  Teil_pruefen
  Teil_virtuell_handhaben
  Ergebnis_auswerten
  Zyklus_abschliessen
End

Merksatz: Das Hauptprogramm zeigt den Ablauf. Unterprogramme enthalten Details.


Mini-Aufgabe: Basis

Ordne zu:

A = Hauptablauf B = Unterprogramm C = Datenbereich D = Kommentar

1. „Warum wird dieser Schritt ausgeführt?“ 2. „Welche Teilfunktion wird wiederverwendet?“ 3. „Welche Werte werden gespeichert?“ 4. „In welcher Reihenfolge läuft der Zyklus?“

Begründetes Feedback: Eine gute Zuordnung trennt Ablauf, Funktion, Information und Erklärung. Genau diese Trennung verbessert Lesbarkeit und Fehlersuche.


Lerneinheit 2: Unterprogramme

Unterprogramme bündeln logisch zusammengehörige Arbeitsschritte. Sinnvolle Namen beschreiben die Aufgabe.

Ungünstig:

PROC1
PROC2
PROC3

Übersichtlicher:

Teil_pruefen
Greiferstatus_auswerten
Ablage_waehlen
Fehlerstatus_setzen

Ein gutes Unterprogramm hat möglichst eine klar erkennbare Aufgabe.


Gestufte Hilfe: Unterprogramme erkennen

Hilfe 1: Suche nach wiederkehrenden oder fachlich abgeschlossenen Teilaufgaben.

Hilfe 2: Frage bei jedem Programmblock: „Kann ich seine Aufgabe in drei bis fünf Wörtern benennen?“

Hilfe 3: Wenn ein Block gleichzeitig prüft, sortiert, protokolliert und Fehler behandelt, ist er wahrscheinlich zu groß.


Anwendungsaufgabe

Teile diesen Ablauf gedanklich in Unterprogramme:

Start
Signal Teil_vorhanden prüfen
virtuellen Greiferstatus prüfen
Prüfergebnis lesen
Ablage wählen
Zyklusstatus setzen
Fehler melden
Ende

Begründetes Feedback: Eine plausible Lösung trennt mindestens Eingangsprüfung, Prozessentscheidung, Statusausgabe und Fehlerbehandlung. Andere Aufteilungen sind möglich, wenn sie fachlich begründet und konsistent sind.


Lerneinheit 3: Daten sauber ordnen

Daten sollten nicht ungeordnet zwischen Programmschritten stehen. Trenne zum Beispiel:

  1. Konfigurationsdaten: feste Vorgaben der Simulation.
  2. Prozessdaten: Werte, die im Zyklus benötigt werden.
  3. Statusdaten: Zustände für Diagnose und Ablauf.
  4. Positionsdaten: virtuelle Ziel- oder Referenzdaten.

In RAPID werden Daten innerhalb von Modulen deklariert. Dadurch kann eine Anwendung Daten und Routinen logisch zusammenfassen.

! Beispielhafte, nicht ausführbare Strukturidee
DATEN
  Teilstatus
  Pruefergebnis
  Ablageziel
ENDDATEN

Wichtig: Dieses Beispiel zeigt nur Struktur. Es ist kein Live-Roboterprogramm.


Basisaufgabe

Welche Information gehört am ehesten in einen Datenbereich?

A. „Prüfung starten“ B. „Zielposition Ablage A“ C. „Unterprogramm aufrufen“ D. „Kommentar schreiben“

Feedback: B ist passend, weil eine Position ein gespeicherter Wert ist. Die anderen Punkte beschreiben Programmaktionen.


Lerneinheit 4: Kommentare mit Nutzen

Kommentare sollen nicht beschreiben, was ohnehin sichtbar ist, sondern warum etwas geschieht oder welche Annahme gilt.

Schwach:

! Prüfe Signal
IF Pruefung_OK THEN

Besser:

! Nur geprüfte Teile werden im Simulationsfall Ablage A zugeordnet.
IF Pruefung_OK THEN

Gute Kommentare helfen besonders bei:

  1. ungewöhnlichen Entscheidungen,
  2. Randbedingungen,
  3. Diagnosehinweisen,
  4. späteren Änderungen,
  5. Schnittstellen zwischen Programmteilen.


Transferaufgabe

Bewerte diesen Kommentar:

! Wichtig

Feedback: Der Kommentar ist zu ungenau. Ein guter Kommentar nennt den Grund oder die Bedingung, zum Beispiel: „Prüfergebnis muss vor der Ablageentscheidung aktualisiert sein.“


Lerneinheit 5: Virtuelle Signalverläufe lesen

In einer virtuellen Roboterzelle helfen Signalverläufe bei der Diagnose.

Beispiel:

Zeit          t0   t1   t2   t3   t4
Teil_vorh.     0    1    1    1    0
Pruefung_OK    0    0    1    1    0
Greifer_zu     0    0    1    1    0
Zyklus_fertig  0    0    0    1    1

Mögliche Interpretation:

  1. Bei t1 wird ein Teil erkannt.
  2. Bei t2 liegen Prüfergebnis und virtueller Greiferstatus vor.
  3. Bei t3 wird der Zyklus als abgeschlossen markiert.

Ein solcher Verlauf hilft zu erkennen, ob ein Programm auf ein Signal zu früh, zu spät oder gar nicht reagiert.


Diagnoseaufgabe

Gegeben ist:

Zeit          t0   t1   t2   t3
Teil_vorh.     0    1    1    1
Pruefung_OK    0    0    1    1
Zyklus_fertig  0    0    0    0

Frage: Wo würdest Du die Fehlersuche beginnen?

Gestufte Hilfe 1: Prüfe, welches erwartete Signal nie seinen Zustand ändert.

Gestufte Hilfe 2: Prüfe danach, welches Unterprogramm dieses Signal setzen sollte.

Gestufte Hilfe 3: Kontrolliere Aufrufreihenfolge, Bedingungen und Datenzustände im Simulator.

Begründetes Feedback: Der erste Diagnoseansatz liegt bei Zyklus_fertig. Das bedeutet nicht automatisch, dass dort die Ursache liegt. Ursache kann auch ein vorheriger, nicht erreichter Programmzweig sein.


Lerneinheit 6: Virtuelle Roboterzelle als Diagnosewerkzeug

Eine Simulationsumgebung kann Programme ausführen, Signalzustände darstellen und Kollisionen oder Ereignisse virtuell untersuchen. ABB RobotStudio verwendet dafür einen Virtual Controller und bietet unter anderem Programmsimulation und I/O-Simulation.

Aber: Eine erfolgreiche Simulation beweist nicht automatisch, dass eine reale Anlage sicher ist. Reale Risiken entstehen zum Beispiel durch Aufbauabweichungen, Werkzeuge, Lasten, Peripherie, Schutzsysteme oder Bedienfehler.


Sicherheitscheck für diesen Kurs

  1. Arbeite nur im Simulator oder in ausdrücklich abgesichertem Schulungsbetrieb.
  2. Übertrage keine Bewegungsbefehle aus diesem Kurs ungeprüft auf reale Roboter.
  3. Leite aus Simulationsergebnissen keine Sicherheitsfreigabe ab.
  4. Verwende reale Schulungsanlagen nur nach örtlicher Einweisung und Freigabe durch Fachpersonal.


Lerneinheit 7: Programmstruktur prüfen

Nutze diese kurze Prüfliste:

  1. Ist der Hauptablauf kurz und verständlich?
  2. Hat jedes Unterprogramm eine klare Aufgabe?
  3. Sind Daten logisch gruppiert?
  4. Erklären Kommentare Gründe statt Offensichtliches?
  5. Sind Signalnamen eindeutig?
  6. Ist die Diagnose ohne langes Suchen möglich?
  7. Sind Simulation und reale Sicherheit klar getrennt?


Ausbildungsfall: Verbesserte Struktur

Eine mögliche Zielstruktur für die virtuelle Sortierzelle:

MODUL Zellenablauf
  DATEN
    Teilstatus
    Pruefergebnis
    Ablageziel

  ROUTINEN
    Initialisieren
    Teilstatus_lesen
    Pruefergebnis_auswerten
    Ablageziel_bestimmen
    Diagnose_aktualisieren
    Zyklus_abschliessen

  MAIN
    Initialisieren
    Teilstatus_lesen
    Pruefergebnis_auswerten
    Ablageziel_bestimmen
    Diagnose_aktualisieren
    Zyklus_abschliessen
ENDMODUL

Hinweis: Dies ist bewusst herstellerneutraler Pseudocode und nicht zur Ausführung an realen Robotern gedacht.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Welchen Zweck hat ein Unterprogramm vor allem? (Eine klar abgegrenzte Teilaufgabe strukturieren) (!Alle Daten löschen) (!Die Sicherheitsfreigabe ersetzen) (!Nur Kommentare speichern)




Was gehört typischerweise in einen Datenbereich? (Gespeicherte Prozess- oder Positionswerte) (!Nur Programmtitel) (!Nur Fehlermeldungen) (!Ausschließlich Kommentare)




Was zeichnet einen guten Kommentar aus? (Er erklärt Zweck oder Randbedingung) (!Er wiederholt jede Programmzeile) (!Er ersetzt Unterprogramme) (!Er enthält möglichst viele Abkürzungen)




Was zeigt ein Signalverlauf besonders gut? (Zeitliche Zustandsänderungen) (!Die mechanische Traglast) (!Die reale Schutzzaunhöhe) (!Die Werkzeugzulassung)




Was ist ein sinnvoller erster Diagnoseschritt bei einem fehlenden Ausgangssignal? (Das zuständige Unterprogramm und seine Bedingungen prüfen) (!Sofort reale Achsen verfahren) (!Alle Kommentare löschen) (!Die Simulation als sicher freigeben)




Warum sollte der Hauptablauf übersichtlich bleiben? (Damit Reihenfolge und Programmidee schnell erkennbar sind) (!Damit keine Daten benötigt werden) (!Damit Signale entfallen) (!Damit Diagnose unnötig wird)




Welche Aussage zur Simulation ist richtig? (Sie unterstützt Prüfung und Diagnose virtueller Abläufe) (!Sie ersetzt jede reale Sicherheitsprüfung) (!Sie bestätigt automatisch die Schutzfunktion einer Anlage) (!Sie erlaubt ungeprüfte Live-Fahrbefehle)




Welche Benennung ist für ein Unterprogramm am verständlichsten? (Pruefergebnis_auswerten) (!PROC7) (!X1) (!ABC)




Welche Struktur verbessert die Wartbarkeit? (Klare Trennung von Ablauf Daten und Diagnose) (!Ein einziger sehr langer Programmblock) (!Unbenannte Variablen) (!Kommentare ohne Aussage)




Was darf aus einem erfolgreichen Simulationstest nicht abgeleitet werden? (Eine Sicherheitsfreigabe für die reale Anlage) (!Ein Hinweis auf mögliche Programmfehler) (!Eine Verbesserung der Programmübersicht) (!Eine Analyse virtueller Signalzustände)





Memory

Unterprogramm klar abgegrenzte Teilaufgabe
Daten gespeicherte Werte und Zustände
Kommentar Erklärung von Zweck und Randbedingung
Signalverlauf zeitliche Zustandsänderung
Hauptablauf Übersicht über die Programmlogik
Simulation virtuelle Prüfung eines Ablaufs





Drag and Drop

Ordne die richtigen Begriffe zu. Thema
Hauptablauf Reihenfolge der Teilaufgaben
Unterprogramm gekapselte Funktion
Datenbereich gespeicherte Werte
Kommentar erklärende Information
Diagnose Suche nach Fehlerursachen




...


Kreuzworträtsel

Modul Wie heißt eine logische Programmeinheit mit Daten und Routinen?
Routine Wie nennt man eine abgegrenzte programmierte Teilfunktion?
Signal Was wechselt in einem zeitlichen Verlauf zwischen Zuständen?
Diagnose Wie heißt die systematische Suche nach einer Fehlerursache?
Kommentar Was erklärt Zweck oder Randbedingungen im Programm?
Simulator Wo wird in diesem Kurs die Roboterzelle hauptsächlich untersucht?





LearningApps


Lückentext

Vervollständige den Text.
Ein übersichtliches Roboterprogramm trennt den

von einzelnen Teilfunktionen. Eine klar abgegrenzte Funktion kann als

organisiert werden. Gespeicherte Werte gehören in einen geeigneten

. Ein hilfreicher

erklärt Zweck oder Randbedingungen. Für die Fehlersuche können zeitliche

ausgewertet werden. Eine virtuelle Roboterzelle unterstützt die

von Programmabläufen. Ein erfolgreiches Simulationsergebnis ist jedoch keine

für eine reale Anlage.




Offene Aufgaben


Leicht

  1. Programmstruktur markieren: Markiere in einem vorgegebenen Pseudocode Hauptablauf, Unterprogramme, Daten und Kommentare.
  2. Unterprogramme benennen: Ersetze fünf unklare Namen wie PROC1 durch fachlich aussagekräftige Namen und begründe Deine Wahl.
  3. Kommentare verbessern: Formuliere drei Kommentare so um, dass sie Zweck oder Randbedingungen erklären.
  4. Signalverlauf lesen: Beschreibe einen vorgegebenen virtuellen Signalverlauf in eigenen Worten.


Standard

  1. Virtuelle Sortierzelle strukturieren: Entwirf für den Ausbildungsfall eine übersichtliche Modul- und Unterprogrammstruktur.
  2. Daten gruppieren: Teile zwölf vorgegebene Werte in Konfigurations-, Prozess-, Status- und Positionsdaten ein.
  3. Diagnoseprotokoll: Analysiere einen fehlerhaften Signalverlauf im Simulator und dokumentiere Deine Prüfschritte.
  4. Code-Review im Team: Prüft gegenseitig zwei Programmstrukturen anhand der sieben Punkte der Kurs-Prüfliste.


Schwer

  1. Fehlerbaum entwickeln: Erstelle einen Fehlerbaum für den Fall, dass Zyklus_fertig im Simulator nicht gesetzt wird.
  2. Modularisierung vergleichen: Entwickle zwei unterschiedliche Programmstrukturen für denselben Ablauf und begründe, welche wartbarer ist.
  3. Transfer auf zweite Zelle: Übertrage das Strukturprinzip auf eine virtuelle Montage- oder Prüfstation mit anderen Signalen.
  4. Simulationsgrenzen reflektieren: Erstelle eine kurze Präsentation darüber, welche Aussagen eine Simulation erlaubt und welche Sicherheitsfragen nur an der realen Anlage mit geeigneten Verfahren geprüft werden dürfen.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Strukturentscheidung begründen: Begründe, warum die Prüflogik besser in einem eigenen Unterprogramm als vollständig im Hauptablauf aufgehoben sein kann.
  2. Signaldiagnose übertragen: Ein Ausgang bleibt in einer neuen virtuellen Anlage dauerhaft auf 0. Entwickle eine systematische Diagnosefolge aus Signalprüfung, Aufrufprüfung, Bedingungsprüfung und Datenprüfung.
  3. Wartbarkeit beurteilen: Vergleiche zwei Programmvarianten und entscheide anhand nachvollziehbarer Kriterien, welche langfristig besser wartbar ist.
  4. Kommentarqualität bewerten: Untersuche fünf Kommentare und erkläre, welche für eine spätere Fehlersuche wirklich hilfreich sind.
  5. Simulation und Realität trennen: Erkläre an einem eigenen Beispiel, warum eine kollisionsfreie Simulation keine Sicherheitsfreigabe für eine reale Roboterzelle darstellt.
  6. Programmstruktur transferieren: Entwickle eine Struktur für eine virtuelle Prüfstation mit mindestens vier Unterprogrammen und begründe ihre Aufgabenverteilung.




Lernnachweis

Für einen erfolgreichen Lernnachweis solltest Du zeigen, dass Du:

  1. Hauptablauf, Unterprogramme, Daten und Kommentare sicher unterscheiden kannst.
  2. eine übersichtliche Programmstruktur für einen virtuellen Ausbildungsfall entwerfen kannst.
  3. Signalverläufe lesen und für Diagnose nutzen kannst.
  4. Diagnoseentscheidungen fachlich begründen kannst.
  5. Kommentare auf Informationswert prüfen kannst.
  6. Grenzen virtueller Simulation gegenüber realer Inbetriebnahme und Sicherheit erklären kannst.
  7. konsequent zwischen Simulator und realem Roboterbetrieb unterscheidest.




OERs zum Thema



Medien und Quellenhinweise

Die verwendeten Wikimedia-Commons-Dateien wurden auf ihren Dateiseiten hinsichtlich Herkunft und Lizenz geprüft. Verwendet werden unter anderem gemeinfreie oder frei lizenzierte Dateien zu Industrierobotern, Steuerungen und Teach Pendants.

Fachliche Grundlage für die Programmstruktur und Simulation:

  1. RAPID: ABB beschreibt RAPID-Anwendungen als Tasks aus Modulen; Module enthalten Daten- und Routinedeklarationen.
  2. RobotStudio: ABB beschreibt RobotStudio als Offline-Programmier- und Simulationsumgebung mit Virtual Controller.
  3. I/O-Simulation: Virtuelle Signale können in RobotStudio angezeigt und für die Programmdiagnose verwendet werden.
  4. Robotersicherheit: Sicherheitsanforderungen realer Industrierobotersysteme dürfen nicht durch Simulationsergebnisse ersetzt werden.

Geprüfte Medien:

  1. Wikimedia Commons: Datei „Industrial robot.jpg“, Public Domain.
  2. Wikimedia Commons: Datei „Teach Pendant ABB.JPG“, ABB IRB140 Teach Pendant.
  3. Wikimedia Commons: Datei „FANUC R2000iB ControlUnit.jpg“, Public Domain.
  4. Wikimedia Commons: Datei „FANUC Robot's Control Unit 046.jpg“, CC BY-SA 3.0.
  5. Wikimedia Commons: Datei „Robot industrial Kuka Movicontrol.png“, frei nutzbare Commons-Datei.
  6. YouTube: „RobotStudio Tutorial – Getting Started 5/5“ von ABB Robotics.
  7. YouTube: „ABB Robot Tutorial: Introduction to Programming in RobotStudio“ von Aleksandar Haber.


Verknüpfte Lernbereiche


aiMOOC-Projekte



Schulfach+




aiMOOCs



aiMOOC Projekte









MOOCwiki · Deutsch

Nach dem Lernen ist vor dem Lernen

Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.

Zur MOOCwiki-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...