HolzBauTech RobotikZentrale Begleitseite
VAL3-Hilfeprojektübergreifendes Nachschlagewerk
Zentrale Hilfe · keine Komplettlösungen

VAL3-Bausteine verstehen, prüfen und gezielt einsetzen

Diese Seite sammelt die in der Reihe verwendeten Grundstrukturen. Verwendet die Beispiele als Syntaxhilfe, ersetzt Platzhalter mit euren eigenen Punkten und Signalen und prüft die genaue Schreibweise in der integrierten Hilfe eurer installierten Stäubli Robotics Suite.

Verbindliche Reihenfolge1. Funktion verstehen · 2. eigene Werte einsetzen · 3. Stäubli-Hilfe prüfen · 4. Simulation testen · 5. erst nach Freigabe real erproben.
VAL3-Hilfe · Einstieg

Die Hilfe unterstützt eure Lösung – sie ersetzt nicht die Planung

Ein syntaktisch korrekter Befehl ist noch keine sichere Roboterbewegung. Punkte, Orientierung, Shoulder, Werkzeugbezug und I/O-Zuordnung müssen zur realen Zelle passen.

verstehenZweck des Befehls
anpasseneigene Punkte und Signale
prüfenHilfe, Simulation, Test
Profilbild der fiktiven Person Jonas WeberKI
Von: Jonas Weber · InstandhaltungBetreff: Hilfe nutzen, ohne Fehler zu kopieren

Hallo Robotik-Team,

VAL3-Befehle müssen zur installierten Software, zum Roboter und zur verdrahteten Anlage passen. Übernehmt deshalb keine vollständigen Programme ungeprüft. Nutzt kurze Bausteine, testet Funktionen getrennt und dokumentiert die Ursache einer Änderung.

Bei einer Störung prüft zuerst, ob das Programm wartet, entscheidet oder fährt. So verhindert ihr, dass gleichzeitig an Signalen, Logik und Punkten geändert wird.

Viele Grüße
Jonas Weber
Instandhaltung

Die Suche filtert die sichtbaren Nachschlagekarten auf dieser Seite.

VAL3-Hilfe · Projektvorbereitung

Projekt, Daten und E/As vor dem Programmieren vorbereiten

Viele spätere Fehler entstehen, weil Bibliotheken, Punkte oder Bewegungsparameter nicht eindeutig angelegt wurden.

BasicIOE/As importieren
PunktePosition und Konfiguration
mDescBewegungsparameter

Einrichtung BasicIO bereitstellen

  1. Beim Anlegen der Zelle unter EAs die Bibliothek BIO auswählen.
  2. Im Projekt über Startseite → E/A-Verwaltung gehen.
  3. BasicIO auswählen und Importieren anklicken.
  4. Das Zielprojekt auswählen.
  5. Die an der Anlage verwendete Namenskonvention wählen. Aktuell wird old IO library format genutzt; bei neuer Hardware kann sich dies ändern.
Vor jedem Projekt prüfen
Verwendet nur Namen, die in eurem Projekt nach dem Import tatsächlich vorhanden sind.

Punkt Eine Position besteht aus mehr als drei Koordinaten

Für die RS40-Aufgaben gilt in der vorhandenen Zelle bei den relevanten Punkten rx = -180. Zusätzlich muss die passende Shoulder-Konfiguration gewählt und geprüft werden. Ein geometrisch plausibler Punkt kann mit der falschen Armhaltung unerreichbar sein.

Prüfen
Punkt in der 3D-Ansicht anfahren, Konfiguration kontrollieren und die reale Erreichbarkeit erst unter Aufsicht testen.

mDesc Bewegungsparameter benennen

In der Reihe werden beispielsweise mNomSpeed für normale Verfahrbewegungen und mProzess für die eigentliche Prozessbahn verwendet. Die konkrete Einstellung wird in eurem Projekt geprüft und dokumentiert.

movej(pSicher, flange, mNomSpeed)

Der Punkt, der Werkzeugbezug und die Bewegungsbeschreibung erfüllen unterschiedliche Aufgaben.

VAL3-Hilfe · Bewegungen

Bewegungsart passend zum Prozess wählen

Die folgenden Zeilen zeigen Grundformen. Die eigenen Punkte und Bewegungsparameter müssen aus eurer Planung stammen.

movejfreie Raumfahrt
movelgerade Bahn
movecKreisbogen

Bewegung movej

movej(pZiel, flange, mNomSpeed)
pZielanzufahrende Position
flangein dieser Lernumgebung verwendeter Werkzeugbezug
mNomSpeedBewegungsbeschreibung

Geeignet für Positionierungen im freien Raum. Die räumliche Bahn zwischen Start und Ziel ist nicht geradlinig vorgegeben.

Bewegung movel

movel(pZiel, flange, mProzess)

Der TCP wird geradlinig zum Ziel geführt. Verwendet movel beispielsweise beim kontrollierten Annähern, Greifen oder geraden Prozessabschnitt.

Nicht automatisch sicher
Auch eine Gerade kann durch ein Werkstück oder die Zelle führen. Simulation und Sicherheitsfahrhöhe bleiben erforderlich.

Projekt 1 movec

movec(pZwischen, pZiel, flange, mProzess)

Der Zwischenpunkt muss auf dem gewünschten Kreisbogen liegen und bestimmt zusammen mit Start- und Zielpunkt die Bahn. Ein Punkt auf demselben Kreis kann trotzdem auf dem falschen Bogenabschnitt liegen.

Synchronisation waitEndMove()

waitEndMove()

Vor Greiferaktionen oder prozesskritischen Zustandswechseln muss die vorherige Bewegung abgeschlossen sein. delay() ersetzt diese Bewegungsrückmeldung nicht.

VAL3-Hilfe · Ausgänge und Greifer

Digitale Ausgänge eindeutig initialisieren, setzen und zurücksetzen

Ein Ausgang behält seinen Zustand, bis er durch eine weitere Programmzeile verändert wird.

InitGrundzustand
GGreifer
PImpulse

Sicherheit Definierter Startzustand

bOut14 = true bOut15 = false // weitere Statusausgänge zurücksetzen

Legt fest, welcher Zustand beim Programmstart gelten soll. Greifer- und Statusausgänge dürfen nicht vom vorherigen Programmlauf abhängen.

Projekt 2 Greifer öffnen und schließen

Öffnen

bOut15 = false bOut14 = true delay(2)

Schließen

bOut14 = false bOut15 = true delay(2)

Die zweisekündige Wartezeit gibt dem pneumatischen Greifer Zeit für die Bewegung. Der Ausgang bleibt danach in seinem Zustand; er wird nicht automatisch ausgeschaltet.

Projekt 3 Anforderung und Quittierung unterscheiden

Anforderung halten

bOut0 = true wait(bIn2) bOut0 = false

2-s-Impuls

bOut1 = true delay(2) bOut1 = false

bOut0 und bOut2 bleiben bis zur gültigen Rückmeldung aktiv. bOut1 und bOut3 dienen als kurze Bestätigungssignale.

VAL3-Hilfe · Variablen

Zahlen und digitale Zustände passend speichern

Variablen machen Programme veränderbar und verhindern, dass Eingangswerte nach dem Rücksetzen verloren gehen.

numZahlenwerte
booldigitale Zustände
Namenverständlich benennen

Projekt 2 Zahlentyp num

num-Variablen speichern Zahlenwerte, zum Beispiel Zähler, Wechselzeiten oder Seriengrößen.

nWartezaehler = 0 nWartezaehler = nWartezaehler + 1

Initialisierung und Rücksetzung müssen zum Ablauf passen.

Projekt 3 Datentyp bool

bIstMontageblock = bIn1 bIstGutteil = bIn3

Der gespeicherte Wert bleibt erhalten, wenn der Eingang später zurückgesetzt wird. Speichert ihn erst, nachdem das zugehörige Gültigkeitssignal aktiv ist.

Lesbarkeit Namen statt Rätsel

Verwendet Namen wie nSet, nAuftrag, bIstGutteil oder bWagenLeer. Dokumentiert die projektbezogene Zuordnung und den Gültigkeitsbereich.

VAL3-Hilfe · Warten und Handshake

Auf tatsächliche Anlagenzustände statt auf geschätzte Zeiten warten

Der nächste Programmschritt beginnt erst, wenn das erwartete Signal den passenden Zustand erreicht hat.

waitSignal abwarten
Werterst bei gültig lesen
Resetalte Signale abbauen

Projekt 3 wait(bIn0)

wait(bIn0)

Das Programm läuft erst weiter, wenn bIn0 aktiv ist. Prüft bei einem scheinbaren Stillstand zuerst die aktuelle Programmzeile und den I/O-Monitor.

Handshake Zwei-Eingangs-Prinzip

bOut0 = true wait(bIn2) bIstMontageblock = bIn1 bOut0 = false

bIn1 enthält den Wert. bIn2 bestätigt, dass dieser Wert jetzt gültig ist. Für die Qualitätsprüfung gilt dasselbe Prinzip mit bIn3 und bIn4.

Reset Auf Signalabbau warten

wait(!bIn2) wait(!bIn4) wait(!bIn0)

Vor einem neuen Zyklus müssen alte Gültigkeits- und Bereitsignale abgebaut sein. Die genaue Reihenfolge muss zu eurem Signalvertrag passen.

VAL3-Hilfe · Entscheidungen

Mit if zwischen Prozesswegen unterscheiden

Prüft Entscheidungen zuerst ohne Roboterbewegung, zum Beispiel mit Statusausgängen.

ifBedingung
elseAlternative
endIfBlockende

Projekt 3 if … else … endIf

if bIstGutteil // Gutteilpfad else // Ausschusspfad endIf

Ist die Bedingung wahr, wird der erste Block ausgeführt. Andernfalls folgt der else-Block.

Struktur Qualität zuerst, Art danach

if bIstGutteil if bIstMontageblock // Montageblock-Ablage else // Distanzstück-Ablage endIf else // Ausschuss endIf

Jeder if-Block benötigt ein eigenes endIf. Einrückungen machen die Zugehörigkeit sichtbar.

Test Vier Eingangskombinationen prüfen

Setzt zunächst eindeutig zugeordnete Testausgänge. Prüft guten Montageblock, gutes Distanzstück sowie beide Schlechtteil-Kombinationen. Erst danach werden reale Ablage-Unterprogramme aufgerufen.

VAL3-Hilfe · Schleifen

Wiederholungen mit klarer Endbedingung strukturieren

Eine while-Schleife prüft eine Bedingung. Eine for-Schleife zählt eine festgelegte Anzahl von Durchläufen.

whilebedingte Wiederholung
forgezählte Wiederholung
2Dverschachtelte for

Projekt 2/3 while

nWartezaehler = 0 while nWartezaehler < nWechselzeit delay(1) nWartezaehler = nWartezaehler + 1 endWhile

Fehlt die Zähleränderung, endet diese Schleife nicht. Für einen Dauerbetrieb kann eine stets wahre Bedingung verwendet werden; die genaue Schreibweise wird in der installierten Version geprüft.

Projekt 2 for

for nSet = 1 to nAuftrag call setBereitstellen() // Wechselphase endFor

Die Zählvariable wird automatisch verändert. Der wiederholte Block muss vollständig zwischen for und endFor liegen.

Experte Zweidimensionales Raster

for nZeile = 0 to 1 for nSpalte = 0 to 2 // Offset aus Zeile und Spalte bestimmen // Bauteil ablegen endFor endFor

Die äußere Schleife liefert den Zeilenwert, die innere den Spaltenwert. Die konkrete Offset-Funktion ist versionsabhängig und muss in der Stäubli-Hilfe geprüft werden.

VAL3-Hilfe · Unterprogramme

Wiederkehrende Funktionen mit call aufrufen

Unterprogramme gliedern den Ablauf und lassen sich einzeln testen.

callAufruf
Funktionklarer Zweck
Testeinzeln prüfen

Projekt 2 call

call setBereitstellen()

Nach Ende des Unterprogramms läuft das aufrufende Programm in der nächsten Zeile weiter.

Struktur Zweck aus dem Namen erkennen

Geeignete Beispiele sind greiferOeffnen(), montageblockAblegen(), werkstueckAuswerten() oder wagenPos3Anfordern(). Vermeidet einen einzigen langen Block mit mehreren unabhängigen Aufgaben.

Test Fehlerquelle begrenzen

  1. Unterprogramm mit sicheren Testdaten aufrufen.
  2. I/O und Punkte prüfen.
  3. Ergebnis dokumentieren.
  4. Erst danach in while, for oder Handshake einbinden.
VAL3-Hilfe · TX90 und Förderband

Sechs Achsen, Zielpositionen und gekoppelte Zellen

Der TX90-Zusatzauftrag verwendet dieselben VAL3-Grundstrukturen, erweitert sie aber um räumliche Orientierung und einen Signalvertrag zwischen zwei Steuerungen.

6AOrientierung
PosFörderbandposition
IORoboteraustausch

TX90 Orientierung statt bloßer Punktübertragung

Prüft J1 bis J6, kartesische Bewegungen, erreichbare Armhaltungen und den größeren Kollisionsraum. Für die senkrechte Vorrichtung müssen Anfahr-, Einsetz- und Rückzugspunkte mit passender räumlicher Orientierung entwickelt werden.

Sicherheit
Nach Unterbrechung der Lichtschranke ist die Zelle erneut freizugeben. Niemand darf sich in der TX90-Zelle aufhalten, wenn der Roboterarm bewegt werden kann.

Förderband Zielposition und Rückmeldung trennen

// Ausgang für Zielposition setzen wait(bPosErreicht) // Anforderung passend zurücksetzen

Pos. 2 gehört zum RS40, Pos. 3 zum TX90. Pos. 1 dient dem manuellen Zugriff und gehört nicht zum automatischen Hauptzyklus. Bei Fault wird der Ablauf nicht fortgesetzt.

Kopplung Signalvertrag

Mindestens erforderlich sind „Montageset bereit“ vom RS40 zum TX90 und „Wagen leer“ vom TX90 zum RS40. Dokumentiert Sender, Empfänger, Setzbedingung, Rücksetzbedingung und den Schutz vor alten Signalen.

VAL3-Hilfe · Fehlersuche

Signal, Logik und Bewegung getrennt untersuchen

Ändert immer nur einen Teil des Systems und dokumentiert vorher und nachher.

1Programmzeile
2I/O und Variablen
3Bewegung

Methode Prüfreihenfolge

  1. Aktuelle Programmzeile und I/O-Zustände sichern.
  2. Feststellen: wartet, entscheidet oder fährt das Programm?
  3. Anforderungs- und Rückmeldesignale prüfen.
  4. Gespeicherte bool- und num-Werte kontrollieren.
  5. Logik ohne Bewegung testen.
  6. Unterprogramm einzeln aufrufen.
  7. Erst danach Punkte, flange, Shoulder, Orientierung und Sicherheitsfahrhöhe prüfen.
  8. Nur eine Änderung gleichzeitig vornehmen.

Diagnose Fehlerbild und erster Prüfpunkt

FehlerbildZuerst prüfen
Programm bleibt stehenaktuelle wait-Bedingung und Eingangszustand
Schleife endet nichtZähleränderung oder Rücksetzbedingung
Greifer reagiert falschGegenrichtung ausgeschaltet, richtige bOut-Zuordnung, delay(2)
falscher SortierwegZeitpunkt des Speicherns und if-Zweig
Punkt unerreichbarKoordinaten, Orientierung und Shoulder
Förderband fährt nichtZielanforderung, Fault und Endtasterrückmeldung

LLM Konkretes Fehlerbild statt „geht nicht“

Beschreibt aktuelle Programmzeile, erwartete und tatsächliche I/O-Zustände sowie den getesteten Programmabschnitt. Prüft jeden Vorschlag mit Stäubli-Hilfe, Simulation oder getrenntem Funktionstest.