Robot Cell Simulator – Stations-SPS und SmartPad
« Zellensimulation | Inhalt | Auto-Docking »
Funktionsweise | Registerkarte SPS | Editor des SPS-Programms | Bausteine | Verbindungen | Prüfung vor dem Ablauf | Ablauf mit SPS | SmartPad | Signale | Signale E / A der Roboter | Signaldatei (Start, HOME) | Speichern und Laden | Dateiformat | Befehls-API | Beispiel

Die Bilder zeigen die englische Oberfläche; mit Help → Language → Deutsch erscheint das Plugin auf Deutsch.

Funktionsweise SPS

Ohne SPS starten die Roboter bei Run on all robots gemeinsam, und die Bedingungen der Programme werden nur teilweise ausgewertet. Die simulierte Stations-SPS steuert die Zelle wie die reale Station: Sie wartet, bis alle Roboter der Station in HOME sind (Warte auf Folgenstart), gibt Folgenstart mit der Folgenummer und die Stellungsfreigaben der Vorrichtung (z. B. E76, E80), und der Stationszyklus ist beendet, wenn die Roboter das mit ihren Ausgängen melden (z. B. A76, A80 = EIN, sie haben die Station verlassen) oder wieder in HOME sind. Das SPS-Programm ist ein kleines Diagramm aus Bausteinen: Start, Wait (Warten), Station und Robot (Roboter).

Während des Ablaufs werden Eingänge, Ausgänge, Flags und Merker (E, A, F, M) jedes Roboters vom Programm aktualisiert (Zuweisungen wie A766 = F830, FB PSPS, Verriegelungen) und in den Bedingungen berücksichtigt – z. B. wartet WARTE BIS E80 & E76 auf die Freigabe der Station. Jeder Roboter hat ein eigenes SmartPad mit der aktuellen Programmzeile und den Signalen.

Die SPS braucht die Lizenz SPS (und die Lizenz Simulation). Ohne sie zeigt die Registerkarte SPS ein Schloss, der SPS-Schalter wirkt nicht (alle Roboter starten gemeinsam wie ohne SPS) und die SmartPad-Knöpfe sind gesperrt.
Folge 81 mit dem SPS-Programm: Zustandslampen über den Robotern, Kollisionskarte und das SmartPad von 0001R05 (rechts)

Registerkarte SPS

Die Registerkarte SPS (nach Simulation) zeigt das SPS-Programm der Zelle: Anzahl der Zyklen und die Stationen mit ihren Robotern.

  • Control the simulation with the SPS program – schaltet die SPS ein; derselbe Schalter ist der grüne Knopf SPS der Registerkarte Simulation,
  • Edit SPS program... – öffnet den Editor; auch während einer Simulation, dann nur zum Ansehen (siehe Editor des SPS-Programms),
  • New from the robots of the cell – legt ein Programm mit Start, einer Station und allen Robotern der Zelle an (Folge aus der Registerkarte Simulation),
  • Signals E / A of the robots... – Eingänge und Ausgänge aller Roboter in einem Fenster,
  • Signals of the robots – die Signaldatei mit den Signalen beim Start und in HOME,
  • je Roboter öffnet ein Knopf sein SmartPad,
  • Check before the run (Prüfung vor dem Ablauf) – die Liste der Fehler des SPS-Programms, sichtbar bei eingeschalteter SPS (Meldungen).

Die Registerkarten des Bedienfelds lassen sich in eine andere Reihenfolge ziehen; die Reihenfolge wird in den Einstellungen des Plugins gespeichert.

Während des Ablaufs: Zyklus des Start-Bausteins und Zustand jeder Station und jedes Warte-Bausteins

Editor des SPS-Programms

Während eine Simulation läuft, öffnet Edit SPS program... den Editor nur zum Ansehen: die Zustände der Bausteine ändern sich live, und die bei einem Wettlauf eingefügten Bausteine Interlock priority sind zu sehen. Die Bausteine lassen sich nicht verschieben oder ändern, die Liste der neuen Bausteine, die Werkzeugleiste und Apply sind aus; den Hintergrund ziehen, um die Ansicht zu verschieben, Strg + Mausrad zoomt. Nach dem Stopp der Simulation lässt sich das Programm wieder ändern (ein schon offener Editor schaltet von selbst um).

Der während einer laufenden Simulation geöffnete Editor: nur zum Ansehen (ohne Werkzeugleiste, ohne neue Bausteine, Anwenden aus), der Hinweis unten; der durch den Wettlauf eingefügte Baustein Interlock priority: Bereich 1: 0001R05 vor 0001R03 (Fenster 1.0 s) - Wettlauf, hält die Reihenfolge
Station A mit fünf Robotern (0001R01..0001R05), Start (10 Zyklen), ein Warte-Baustein (Mindesttaktzeit 2 s) und ein Baustein Interlock priority

Ein Roboter, der bereits mit einer Station verbunden ist, hat einen roten Punkt. Ein Roboter kann an mehreren Stationen arbeiten, aber nur einmal je Station. Während der Simulation ist der Editor gesperrt; Größe und Lage des Fensters werden gespeichert.

Bausteine

BausteinBedeutungEinstellungen (Doppelklick)
StartStart des Stationszyklus; ein Start je Programm und je StationAnzahl der Zyklen (1–10000)
Stationwartet, bis alle ihre Roboter in HOME sind, gibt dann Folgenstart und die Freigaben der EingängeName, Folge (0 = Folge der Registerkarte Simulation), Stationszeit, Eingänge E mit Folgenstart, Eingänge E im Automatik
WaitZeitglied in ms; ohne Eingang oder nach Start / Station: die Station wartet vor Folgenstart darauf; nach einem Roboter: nur der Folgenstart dieses Roboters wird verzögertZeit, Start des Zeitglieds, Roboter
RobotRoboter der Zelle; meldet HOME bei Warte auf Folgenstart–
Interlock priorityzwei Roboter fordern denselben Verriegelungsbereich fast im selben Moment an: die SPS entscheidet, welcher Roboter den Bereich zuerst bekommt (Interlock priority); ohne VerbindungenBereich, erster Roboter, zweiter Roboter (oder jeder Partner), Regel, Fenster, Kommentar
Station: Folge 81, Stationszeit 2 s, Freigaben E76 und E80, E23 im Automatik

Folge ist die Folge, die die Station auf ihren Robotern startet (z. B. 81); 0 = die Folge der Registerkarte Simulation.

Die Stationszeit ist die Zeit der Vorrichtung (Spannen, Drehen) zwischen HOME aller Roboter und Folgenstart. Die Eingänge E mit Folgenstart werden mit Folgenstart auf EIN gesetzt – die Stellungsfreigaben des VW-Standards (Bereich E57–E80). Die Station ist fertig, wenn die Roboter nach Folgenstart die passenden Ausgänge (A57–A80, z. B. A76, A80) auf EIN setzen; ein Roboter ohne solche Ausgänge ist mit HOME fertig.

Inputs E in automatic (Eingänge E im Automatik, Vorgabe 23) sind für die Roboter der Station EIN, solange die Simulation mit SPS läuft – z. B. gibt der SPS-Ausgang A23 den Robotern E23 Keine Zutrittsanforderung. Diese Eingänge stehen immer im Feld Stop at WARTE BIS (als erste), daher wartet WARTE BIS E23, wenn die SPS A23 ausschaltet (Signalfenster). Ein leeres Feld schaltet es ab.

Wann das Zeitglied des Warte-Bausteins startet

Start des Zeitglieds eines Warte-Bausteins:

  • nachdem alle Roboter der Station in HOME sind – zusätzliche Zeit der Vorrichtung,
  • ab dem Start des Stationszyklus – Mindesttaktzeit der Station,
  • nachdem der Roboter darunter in HOME ist – die Station wartet, bis dieser Roboter in HOME ist und die Zeit abgelaufen ist,
  • nachdem Station '...' ihren Zyklus beendet hat – nur bei Station → Wait → Station.

Die Station gibt Folgenstart, wenn alle ihre Roboter in HOME und alle ihre Warte-Bausteine abgelaufen sind; mehrere Warte-Bausteine der Station zählen nacheinander. Ein Warte-Baustein ohne Eingang gehört zu der Station, mit der er verbunden ist.

Roboter → Wait → Station verzögert nur den Folgenstart dieses Roboters. Die Station und die anderen Roboter starten sofort; der Roboter erhält seinen Folgenstart nach der Summe der Zeiten der Wait-Kette (Roboter → Wait → Wait → Station: die Zeiten werden addiert). Der Start des Zeitglieds dieser Warte-Bausteine spielt keine Rolle. Die Konsole zeigt SPS ...: Folgenstart cycle n for R – x s after the station (Wait). Der SPS-Zyklus endet, wenn alle verzögerten Starts gegeben sind. Verwendung: einen Roboter später starten, wie an der Linie, oder eine andere Reihenfolge der Roboter testen.

Interlock priority (Wettlauf um einen Bereich)

Ein Wettlauf der Anforderungen: zwei Roboter fordern denselben Verriegelungsbereich fast im selben Moment an (oft nach einem gemeinsamen WARTE BIS). In der Simulation gewinnt einer um wenige Millisekunden; an der Linie ist die Reihenfolge zufällig – manchmal bekommt der andere Roboter den Bereich zuerst, und die Station fährt eine andere Reihenfolge, eine andere Taktzeit oder sogar in eine Kollision, die die Simulation nie gezeigt hat. Die Simulation meldet jeden Wettlauf in der Konsole, im Zeitenbericht, in Check interlocks (Code RACE) und auf Wunsch in einem Fenster (siehe Wettläufe der Anforderungen).

Die SPS einer echten Station kann die Reihenfolge festlegen (Vorrang im Kollisionsmanagement). Der Baustein Interlock priority macht dasselbe in der Simulation. Die Regel wirkt in jedem Zyklus und nur für die erste Anforderung des Bereichs durch den zweiten Roboter in seinem Zyklus – ein Roboter, der den Bereich zweimal im Zyklus belegt (zwei Durchgänge eines UP), wartet nur vor dem ersten Durchgang. Zwei Arten:

RegelBedeutung
Priority within a time window (Vorrang in einem Zeitfenster)der zweite Roboter wartet bis zu Window Sekunden (Simulationszeit) auf eine Anforderung des ersten Roboters; fordert der erste Roboter den Bereich im Fenster an, bekommt er ihn zuerst. Das Fenster zählt ab der Anforderung des zweiten Roboters. Kommt der erste später (z. B. weil er in einem Halt steht und auf andere Bereiche wartet), wartet der zweite nur das Fenster und fährt – die Reihenfolge ändert sich wie an der Linie (Konsole: window ... over, ... did not request zone ... - the order is changed). Seit 2026-10-17 verlängert eine bereits gesetzte Anforderung (A8n) des ersten Roboters die Wartezeit nicht über das Fenster hinaus (vorher wartete R06 58 s auf R03, der 7 s in einem Halt stand und auf andere Bereiche wartete; Takt 72 → 108 s). Diese Regel dient dazu, die Reihenfolge nur bei fast gleichzeitigen Anforderungen zu halten (sie verwendet auch die automatische Reihenfolge bei einem Wettlauf beibehalten).
Order in every cycle (Reihenfolge in jedem Zyklus)der zweite Roboter bekommt den Bereich erst, nachdem der erste ihn in diesem Zyklus hatte; Window wird nicht verwendet. Mit dieser Regel Variante B erzwingen (der zweite Roboter immer nach dem ersten, auch wenn der erste wegen anderer Bereiche verspätet ist).

Second (waits) = (every partner on this zone) gilt für alle Partner des ersten Roboters. Die Regel wird nicht angewendet, wenn der erste Roboter seinen Zyklus ohne diesen Bereich beendet hat (z. B. ein UP, das in diesem Zyklus nicht aufgerufen wird), wenn er sein Programm beendet hat oder alle anderen Roboter festsitzen – die Simulation lässt dann den zweiten Roboter fahren und schreibt es in die Konsole (keine Verklemmung durch die Regel). Jede Anwendung einer Regel steht in der Konsole (Interlock priority: R06 waited 0.8 s for the priority of R03) und in den Laufdaten (raceRuleLog).

Die Bausteine haben keine Verbindungen und wirken in jeder Simulation der Station, auch ohne SPS. Mehrere Bausteine sind erlaubt (einer pro Bereich und Paar). Das Feld Comment sagt, warum der Baustein da ist (im Tooltip des Bausteins). Check before the run prüft den Bereich (1..16), dass beide Roboter am Lauf teilnehmen und verschieden sind und das Fenster (0,1..30 s). Eine Regel aus der Befehls-API (race_rules) oder aus einem Schritt des Robustheitstests (raceOrder) für denselben Bereich ersetzt die Bausteine dieses Bereichs – so lassen sich Variante A (Reihenfolge der Simulation) und Variante B (der andere Roboter zuerst) vergleichen.

Reihenfolge bei einem Wettlauf beibehalten (Plugin-Einstellungen > Simulation, Standard: ein): beginnt ein Roboter auf einen Bereich zu warten, den sein Partner höchstens das Wettlauf-Zeitfenster früher angefordert hat, hält die Simulation diese Reihenfolge (der Gewinner zuerst, Priority within a time window mit dem Wettlauf-Zeitfenster) in allen weiteren Zyklen des Laufs. Solange beide Roboter den Bereich innerhalb des Fensters anfordern, bleibt die Reihenfolge der Simulation; kommt der erste Roboter später als das Fenster (ein langsamerer Roboter, eine Störung – z. B. 7 s später), wartet der zweite nur das Fenster und fährt – die Reihenfolge ändert sich wie an der Linie, und die Konsole schreibt window ... over, ... did not request zone ... - the order is changed. Eine feste Reihenfolge ohne Fenster ließe den zweiten Roboter die ganzen 7 s warten und würde diesen Fall verbergen. Am Ende der Simulation wird für jeden solchen Wettlauf ein Baustein Interlock priority mit Kommentar in das SPS-Programm eingefügt: welche Roboter und Punkte, der kleinste Zeitabstand und dass der Baustein die Reihenfolge der Simulation hält, damit die Roboter ihre Reihenfolge zwischen den Zyklen und den Läufen nicht ändern. Konsole und ein Fenster melden die eingefügten Bausteine (im Robustheitstest und über die API nur Konsole und Bericht). Die Konsole schreibt auch, dass das SPS-Programm der Station durch die Simulation geändert wurde und dass man diese Bausteine beim Speichern der Simulation behalten oder entfernen kann; das Fenster am Ende der Simulation (Wettlauf - Reihenfolge beibehalten, siehe Wettläufe) sagt dasselbe. Für Variante B die Roboter im Baustein tauschen (Doppelklick) und die Regel Order in every cycle wählen – mit Priority within a time window bleibt die erzwungene Reihenfolge nur, solange beide Roboter innerhalb des Fensters kommen.

Neue Bausteine speichern oder nicht. Simulation > Save simulation mit angehaktem SPS-Programm fragt nach den noch nicht bestätigten Bausteinen Interlock priority der Wettläufe und listet sie auf: Save with the blocks (mit den Bausteinen speichern) behält sie, Save without the blocks (ohne die Bausteine speichern) entfernt sie aus dem SPS-Programm (auch aus dem SPS-Editor und den Einstellungen) und speichert ohne sie, Cancel bricht das Speichern ab. Nach der Antwort kommt die Frage für diese Bausteine nicht wieder. Über die API: save mit "raceBlocks": "keep" (Standard) oder "remove"; die Antwort enthält raceBlocks (none / kept / removed) und raceBlocksCount, und race_rules liefert pendingBlocks (Bausteine, die noch auf diese Entscheidung warten). Siehe Simulationsdatei.

Verbindungen

Jeder Baustein hat Anschlüsse an allen vier Seiten. Der Tooltip des Anschlusses zeigt, was verbunden werden kann:

Erlaubte Verbindungen: Start → Station, Start → Wait, Wait → Station, Wait → Wait, Roboter → Station (linker Anschluss), Roboter → Wait → Station, Station → Station und Station → Wait (Ausgang Stationszyklus beendet). Regeln:

Stationen lassen sich auch verketten (rechter Anschluss einer Station → nächste Station); dieser Fall ist noch nicht getestet.

Prüfung vor dem Ablauf

Bei eingeschalteter SPS zeigt die Registerkarte SPS die Liste Check before the run. Die Simulation braucht ein Programm ohne Fehler: Bei einem Fehler zeigt Run on all robots die Meldungen und startet nicht. Beim Start wird außerdem geprüft, ob das Programm jedes Roboters Warte auf Folgenstart enthält. Die Meldungen:

MeldungKorrektur
The program needs exactly one Start block (now n).genau einen Start-Baustein behalten
The Start block is not connected to a station.Start mit einer Station verbinden
Wait block (n ms) is not connected to a station.jeder Warte-Baustein braucht einen Ausgang zu einer Station (direkt oder über andere Warte-Bausteine)
Station '...' is not connected to the Start block.jede Station muss vom Start aus erreichbar sein
Wait block (n ms) waits for HOME of robot '...', which is not on station '...'.ein Warte-Baustein nachdem der Roboter darunter in HOME ist muss einen Roboter dieser Station nennen
Station '...' has no robot. / Robot ... of station '...' does not take part in this runeine Station braucht einen Roboter, der am Ablauf teilnimmt, sonst wartet sie ewig
Robot ... is on stations with different Folge numbersein Roboter auf mehreren Stationen braucht überall dieselbe Folgenummer
Robot ... is not connected to a station - it would wait at 'Warte auf Folgenstart' for ever.jeden Roboter des Ablaufs mit einer Station verbinden

Ablauf mit SPS

Den grünen Knopf SPS der Registerkarte Simulation einschalten und Run on all robots drücken. Die Roboter einer Station fahren die Folge der Station. Um die Bausteine während des Laufs zu beobachten, Edit SPS program... öffnen – während der Simulation nur zum Ansehen (Editor des SPS-Programms).

Mit SPS sind folgende Optionen ausgeschaltet und werden ignoriert, weil das SPS-Programm entscheidet: Loops (das Feld zeigt die Zyklen des Start-Bausteins und ist gesperrt), Start all together at 'Warte auf Folgenstart', once per cycle, Quitt if all robots wait und Stop on breakpoints (ein Roboter würde seinen Durchlauf beenden und die Station in HOME auf ihn warten).

Während der Simulation sind alle Optionen gesperrt außer Console messages..., der Kollisionskarte und dem Programmzustand über den Robotern – diese lassen sich jederzeit umschalten.

WARTE BIS wartet auf die Eingänge, die die SPS verwaltet (Folgenstart, Freigaben der Station, Verriegelungen), und auf die Bedingungen des Felds Stop at WARTE BIS (z. B. E23), ausgewertet auf den Signalen der SPS und der Signaldatei; andere Eingänge gelten als erfüllt.

Roboter in HOME: Bei Warte auf Folgenstart ist der Roboter in HOME, in keinem Verriegelungsbereich und außerhalb der Station – die Robotersteuerung setzt A41–A56 (Bereiche frei) und die Freigabe der Station (A76, A80) auf EIN und die Anforderungen A81–A96 auf AUS. Welche Signale, steht in der Signaldatei.

Fast Run (Knöpfe unter dem Knopf SPS) fährt das Programm auf allen Robotern ohne SPS bis zum Ende des Ablaufs; der Knopf SPS bleibt unverändert.

Robustheitstest: Der Robustheitstest braucht die eingeschaltete SPS. Die Zyklen eines Testschritts ersetzen während des Schritts die Zyklen des Start-Bausteins (danach werden sie zurückgesetzt). N Zyklen eines Schritts = N+1 SPS-Durchläufe (ein SPS-Durchlauf geht von Folgenstart bis zum nächsten Warte auf Folgenstart).

SmartPad

SmartPad von 0001R01: aktueller Punkt in UP42 und die Eingänge E

Das SmartPad eines Roboters (Knöpfe in der Registerkarte SPS) zeigt das laufende Programm im DReS-Viewer: Die Zeile des aktuellen Punkts ist markiert – in der Folge und in jedem aufgerufenen UP; beim Warten auf Folgenstart ist die Zeile Warte auf Folgenstart markiert. Die Kopfzeile zeigt den Roboter und seine Position (z. B. UP42 – UP42/P83), die Fußzeile die Programmdatei. Punktnummern sind die Nummern am Rand des Viewers (der erste Punkt eines Programms ist P1) – im SmartPad, in der Konsole und in allen Tabellen des Robot Cell Simulator, nicht der Index der Punktdaten in der .dat-Datei (Folge ab 0, UP ab 1).

Unter dem Programm zeigt eine Statuszeile, was der Roboter tut – mit demselben Text wie die Konsole: wartet (rot, z. B. WARTE BIS oder FB PSPS mit den fehlenden Signalen), ein laufender Befehl (orange, z. B. SERVOZANGE, MAKRO20 – seine Zeile ist orange markiert), Bewegung (grün), Angehalten (blau). Ein Befehl eines Folge-Punkts, der für die Bewegung in einem UP gilt (z. B. FB PSPS vor UP48/P1), wird in der Folge gezeigt.

Knöpfe (oben rechts):

  • Start – Roboter fährt nicht: sein Programm allein (ein Durchlauf, Optionen der Registerkarte Simulation) ab der gewählten Zeile – Satzanwahl wie bei KUKA: Der Roboter fährt den Punkt der Zeile an und macht mit dem gewählten Befehl weiter (die Befehle des Punkts davor entfallen; die an dieser Stelle gültige FB PSPS wird geprüft). Die Zeile mit dem Cursor ist die Satzanwahl (blau), die Statuszeile beschreibt sie, z. B. Satzanwahl: FOLGE81 P2 – Start: Fahrt zu P2, dann ab 'WARTE BIS E23'. Die Liste links der Knöpfe wählt das Programm (z. B. die Folge, wenn der Roboter in einem UP angehalten hat). Angehaltener Roboter: Start fährt weiter; Roboter wartet an WARTE BIS / FB PSPS: Start = Weiter (Quitt).
  • Pause – nur dieser Roboter hält an (Override 0 %); die anderen Roboter und die Stationsuhr laufen weiter, der Halt zählt wie an der Linie zur Taktzeit, Partner warten auf seine Verriegelungsbereiche.
  • Stopp – stoppt nur diesen Roboter.
  • Bearbeiten / Speichern – wenn der Roboter nicht fährt, kann das Programm im SmartPad geändert und mit denselben Prüfungen wie im DReS-Editor gespeichert werden (Syntaxwarnungen, VKRC-Viewer). Nach dem Speichern wird das Programm neu gelesen, der Cursor bleibt in derselben Zeile – Zeile wählen und mit Start starten. Nicht gespeicherte Änderungen werden vor dem Start und beim Schließen des SmartPads abgefragt.

Override (1–100 %) – die Geschwindigkeit dieses Roboters in der Simulation. Nur die Bewegungen dieses Roboters werden langsamer; die Prozesszeiten und die Stationsuhr ändern sich nicht. Die Taktzeiten sind dann nicht vergleichbar – der Bericht warnt davor. Zum Messen 100 % verwenden. Wenn der Robustheitstest den Roboter in den mit anderen Robotern geteilten Bereichen verlangsamt, zeigt eine rote Anzeige neben dem Feld den tatsächlichen Wert, z. B. now 30 % (shared area) oder now 30 % (red area); das Feld behält Ihren Override.

Programm ändern, während die Station läuft (wie an der Linie: Roboter in T1 / angehalten, Korrektur, Satzanwahl, wieder Automatik):

  1. den Roboter mit Pause anhalten – die anderen Roboter und die Station laufen weiter (Partner warten auf seine Verriegelungsbereiche),
  2. auf eine Zeile im Programm klicken (oder ein anderes Programm in der Liste wählen) – das SmartPad folgt dem Roboter nicht mehr, die Zeile ist die Satzanwahl (blau, in der Statuszeile beschrieben); Bearbeiten / Speichern funktionieren auch in der Pause,
  3. Start – der Roboter fährt in der laufenden Simulation ab der gewählten Zeile weiter: sein Programm wird aus den gespeicherten Dateien neu gelesen, der Roboter fährt den Punkt der Zeile an und macht mit dem gewählten Befehl weiter; die nächsten Durchläufe fahren das ganze Programm. Die vom Roboter belegten Bereiche, die Synchronisation der Durchläufe und der Zähler der laufenden Roboter bleiben. Dieser Durchlauf wird für keinen Roboter gemessen: er wird bei allen Robotern aus den Taktzeiten, den Mittelwerten, den UP-Zeiten und dem Gantt-Diagramm herausgenommen, und der Bericht nennt ihn (Nicht gemessen: Durchlauf 4 (R01: Satzanwahl UP42 UP42/P1)). Ein Lauf eines einzelnen Roboters ab einer gewählten Zeile außerhalb des Stationslaufs ist nur ein Teil des Programms und zählt ebenfalls nicht als Zyklus. Überspringt die Satzanwahl den Punkt mit Warte auf Folgenstart eines Durchlaufs, in dem der Roboter noch nicht HOME gemeldet hat, meldet er zuerst HOME und wartet auf Folgenstart.

Ohne Klick auf eine Zeile fährt Start in der Pause einfach weiter.

Lage des Fensters und Anordnung des Signalfelds werden je Roboter gespeichert. Das SmartPad kann während der ganzen Simulation offen bleiben; eine geänderte Programmdatei wird automatisch neu gelesen. SmartPads, Signalfenster und SPS-Editor werden automatisch zusammen mit der Szene geschlossen (Close scene, New scene, Öffnen einer anderen Zelle oder Simulation) und mit dem Fenster des Robot Cell Simulator.

Signale

Ausgänge A: Verriegelungen A41–A45 von 0001R01 mit den Langtexten des Archivs

Das Feld Signals (andockbar: rechts, unten oder als eigenes Fenster) hat vier Tabellen: Eingänge E und Ausgänge A 1–256, Flags F und Merker M bis zu den Grenzen der VKRC. Die Registerkarte zeigt, wie viele Signale EIN sind; die letzte Spalte ist die Beschreibung des Signals. Zuerst werden die Standardtexte gelesen, dann die Texte des Roboters:

  1. Langtexte des VW-Standards (KS Teil 4) für die Technologien des Roboters – ermittelt aus seinen Makros und UPs wie Robot info im DReS-Dateibaum (z. B. Handling, Kleben_1, Docking),
  2. Basic.de.csv der Langtexte – immer, für die Signale ohne Text der Technologien,
  3. Langtexte des Roboterarchivs – werden zuletzt gelesen und ersetzen die Standardtexte: die eigenen Texte des Roboters (Verriegelungen mit den Partnerrobotern, Freigaben der Station, Greiferausgänge mit der Kennung der Pneumatikgruppen, z. B. Spannzylinder G1KYP11 Vor). Ein leerer Text im Archiv ersetzt den Standardtext nicht.

Das Langtexte-Verzeichnis (Standard template/RCS/Langtexte von DReS) und die Dateien jeder Technologie werden in den Einstellungen des Plugins festgelegt: Tools > Einstellungen... im Robot Cell Simulator oder der Einstellungsknopf des Plugins in Settings > Plugins von DReS – Seite Signalbeschreibungen. Technologien der Roboter in der Zelle sind fett; bei Technologien mit Varianten (z. B. KW1 Braeuer / Lutz, Clinchen pneumatisch / Servo, Kappenfräsen mit / ohne Schwenker) ist die Grundvariante voreingestellt – die richtige Datei mit Dateien wählen... auswählen. Offene SmartPads erhalten die neuen Beschreibungen sofort.

  • E41–E56 / A41–A56 / A81–A96 sind die Verriegelungen Roboter–Roboter (Bereich n = E/A 40+n, Anforderung A 80+n),
  • E57–E80 / A57–A80 sind die Stellungsfreigaben der Station,
  • geänderte Werte werden live aktualisiert, EIN ist grün; Signale ohne Wert in der Simulation sind grau,
  • Doppelklick auf einen Wert setzt das Signal von Hand (mit * markiert, orange) – der Roboter bekommt es sofort; Rechtsklick: EIN / AUS für die markierten Signale (Strg / Umschalt), Release (zurück an die Simulation) und Release all signals of the robot set by hand,
  • von der SPS gemappte Signale: Folgenanwahl E1–E8 (Nummer der Folge, gespiegelt auf A1–A8), Folgestart E9, Automatik E12 (EIN, solange die Simulation mit SPS läuft, gespiegelt auf A12) und die Eingänge im Automatik der Station (E23).
  • Tabellen F und M: Signal | Value | Definition | Description – die Definition eines Merkers im Programm oder Makro (ständig berechnet, siehe Merker und FB PSPS), die letzte Zuweisung eines Flags; der Tooltip zeigt, wo es gesetzt wurde, und die Definition mit aufgelösten Merkern; EIN (signals file) – fester Wert aus der Signaldatei. Signale der Definitionen über 256 (z. B. E516) erhalten eigene Zeilen,
  • Rechtsklick auf Merker / Flags: Force always EIN / AUS (signals file) schreibt den Wert in die Signaldatei (Abschnitt des Roboters) – er gilt vor der Definition im Programm, auch in den nächsten Simulationen; Remove ... from the signals file nimmt ihn zurück.

Signale E / A der Roboter

Eine Registerkarte je Roboter: Eingang und Ausgang mit derselben Nummer in einer Zeile; Registerkarte SPS (all robots)

Knopf Signals E / A of the robots... in der Registerkarte SPS: je Roboter eine Registerkarte mit sechs Spalten – Eingang E, Wert, Langtext, Ausgang A, Wert, Langtext –, damit die Signale, die die SPS gibt (E), und die Signale, die der Roboter meldet (A), mit derselben Nummer nebeneinander stehen. Nur die sichtbare Registerkarte wird aktualisiert.

  • Doppelklick und Rechtsklick wie im SmartPad; for all robots setzt das markierte Signal bei allen Robotern,
  • Registerkarte SPS (all robots): die Ausgänge der SPS für alle Roboter, z. B. A23 – ausschalten, und alle Roboter halten bei WARTE BIS E23; einschalten, und sie fahren weiter,
  • die Hinweiszeile unten (Info-Symbol) nennt die Mausaktionen.

Signaldatei (Start, HOME)

Gruppe Signals of the robots in der Registerkarte SPS: eine XML-Datei, die bei jedem Start von Run on all robots gelesen wird (Installationsdatei template\RCS\signals.xml; der Ordnerknopf wählt eine eigene Kopie, Edit öffnet sie im DReS-Editor, Installation file kehrt zur gelieferten Datei zurück). Jede Zeile hat das Signal (ein Signal oder ein Bereich wie A41-A56), den Wert EIN / AUS und eine Beschreibung; enabled="false" schaltet eine Zeile ab.

AbschnittBedeutungBeispiel
StartSignale jedes Roboters beim Start der Simulation (wie der IO-Satz des SmartPads: Eingänge E, Ausgänge A, Flags F, Merker M); ein Signal mit Wert ist in der Simulation bekannt – Zuweisungen und WARTE BIS des Felds Stop at WARTE BIS verwenden esE13 Schutzkreis EIN, E15 AUS, E24 Medien EIN, A10 EIN
Robot name="..."Startsignale eines Roboters (voller Name oder das Ende des Namens)E537 Dockingsystem angedockt
Home / RobotOutputsAusgänge, die die Robotersteuerung in HOME bei Warte auf Folgenstart setzt (immer); station = die Folgenstart-Eingänge der Station des Roboters als AusgängeA41-A56 EIN, A81-A96 AUS, station EIN (A76, A80)
Home / SpsInputsEingänge von der SPS im Automatik, solange der Roboter in HOME ist (nur mit SPS-Programm)station EIN (E76, E80 schon vor Folgenstart)

Die Verriegelungssignale E41–E56, A41–A56 und A81–A96 kommen aus den Verriegelungsbereichen der Simulation, wenn Respect interlock signals eingeschaltet ist – die Zeilen der Datei gelten ohne diese Option. Ohne Datei gelten die HOME-Ausgänge oben und keine Startsignale; die Konsole nennt die verwendete Datei.

Merker M und Flags F in Start oder Robot haben in der Simulation einen festen Wert – vor der Definition im Programm (z. B. Makro50) und vor den Zuweisungen im Programm. Die Installationsdatei setzt M95 (Sicherheiten EZ1/SP1 – die Simulation hat keine Luft- / Wasser- / Stromsensoren der Zange) und M96 (Grundstellung KS1) auf EIN und enthält die Merker des VW-Standards (M30, M31–M37, M81) als abgeschaltete Zeilen mit ihren Beschreibungen. Force always EIN / AUS im SmartPad fügt solche Zeilen für einen Roboter hinzu.

More: Import IO set of the SmartPad (.ini) – die Abschnitte [E] [A] [F] [M] eines IO-Satzes werden die Startsignale einer neuen Signaldatei; Save the current signals of the robots – die Signale jedes Roboters nach einer Simulation als Startsignale der Roboter in einer neuen Datei (um die nächste Simulation aus diesem Zustand zu starten).

Speichern und Laden

Simulation → Save simulation... speichert das SPS-Programm zusammen mit Layout, Werkzeugen, Kamera und Einstellungen. In Simulation → Load simulation... ersetzt die Option SPS program of the station das aktuelle Programm; ausschalten, um das eigene Programm zu behalten. Save im Editor schreibt nur das SPS-Programm in eine eigene XML-Datei.

Save simulation... schlägt die zuletzt geladene oder gespeicherte Simulationsdatei vor.

Der Plan des Robustheitstests kann auch das SPS-Programm enthalten: Save plan und Load plan fragen, welche Teile gespeichert oder geladen werden (SPS program of the station); ein geladenes SPS-Programm ersetzt das aktuelle.

Dateiformat

Das SPS-Programm ist XML. Save im Editor schreibt das Wurzelelement <Sps>. In der Simulationsdatei ist das Programm das Element <Sps enabled="0|1"> in <RcsSimulation>; enabled="1" schaltet die SPS nach dem Laden ein. Save im Editor schreibt kein enabled. Load im Editor liest beide Dateien und nennt die Roboter, die nicht in der Zelle sind (Doppelklick auf ihre Bausteine, um einen Roboter zu wählen).

Element / AttributBedeutung
Block id, type, x, y, nameid > 0; type = start, station, wait oder robot; x, y = Lage im Diagramm; name = Roboter der Zelle (robot) oder Titel (station)
start: cyclesAnzahl der Zyklen (1 oder mehr)
station: delay, folge, inputs, autoStationszeit [s]; Folge (fehlt oder 0 = Folge der Registerkarte Simulation); Eingänge E mit Folgenstart (durch Kommas getrennt); Eingänge E im Automatik (durch Kommas getrennt; fehlt = 23, leer = keine)
wait: ms, from, robot, stationZeit [ms]; Start des Zeitglieds: home, cycle, robot oder station; robot = Roboter (bei from="robot"); station = id der Station (bei from="station")
priority: zone, first, second, raceMode, raceWindowInterlock priority: Bereich (1..16); Roboter, der den Bereich zuerst bekommt; Roboter, der wartet (fehlt oder leer = jeder Partner); 0 = Vorrang in einem Zeitfenster, 1 = Reihenfolge in jedem Zyklus; Fenster [s] (0,1..30); comment (optional)
Link from, toVerbindung von Baustein-id zu Baustein-id

Beispiel: Station Folge 81; 0001R04 startet 3 s nach der Station; die Station wartet 2 s ab dem Start des Zyklus.

<?xml version="1.0" encoding="UTF-8"?>
<Sps>
 <Block id="1" type="start" x="0.0" y="0.0" cycles="10"/>
 <Block id="2" type="station" x="260.0" y="0.0" name="Station A" delay="2" folge="81" inputs="76,80" auto="23"/>
 <Block id="3" type="robot" x="0.0" y="110.0" name="0001R05"/>
 <Block id="4" type="robot" x="0.0" y="200.0" name="0001R04"/>
 <Block id="5" type="wait" ms="3000" from="robot" robot="0001R04" x="130.0" y="200.0"/>
 <Block id="6" type="wait" ms="2000" from="cycle" x="260.0" y="140.0"/>
 <Link from="1" to="2"/>
 <Link from="3" to="2"/>
 <Link from="4" to="5"/>
 <Link from="5" to="2"/>
 <Link from="6" to="2"/>
</Sps>

Befehls-API

Die SPS lässt sich auch über die Befehls-API nutzen:

Beispiel: Station mit fünf Robotern, 10 Zyklen

  1. Zelle und Simulation laden, Registerkarte SPS öffnen, New from the robots of the cell klicken.
  2. Edit SPS program...: Doppelklick auf Start → 10 Zyklen; Doppelklick auf die Station → Folge 81, Stationszeit 2 s, Eingänge 76, 80.
  3. Einen Warte-Baustein aus der Liste ziehen, unter der Station verbinden, 2000 ms ab dem Start des Stationszyklus einstellen (Mindesttaktzeit). Apply.
  4. Registerkarte Simulation: SPS einschalten, Run on all robots drücken, die SmartPads der gewünschten Roboter öffnen.
  5. Nach 10 Zyklen: Registerkarte Times → Report... (siehe Taktzeitbericht).
Die SPS ist eine Simulation der Stationslogik für Taktzeiten und Verriegelungen. Sie ersetzt nicht das SPS-Programm der Anlage; Befehle der Programme, die nicht interpretiert werden (z. B. Technologieaufrufe), erhalten eine Zeit über die Programmregeln der Registerkarte Simulation.


« Zellensimulation | Inhalt | Auto-Docking »