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.

Registerkarte SPS
|
Die Registerkarte SPS (nach Simulation) zeigt das SPS-Programm der Zelle: Anzahl der Zyklen und die Stationen mit ihren Robotern.
Die Registerkarten des Bedienfelds lassen sich in eine andere Reihenfolge ziehen; die Reihenfolge wird in den Einstellungen des Plugins gespeichert. |
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).


- Neue Bausteine – aus der Liste rechts in das Diagramm ziehen (oder in der Liste doppelklicken),
- Verschieben – Baustein ziehen; den leeren Hintergrund ziehen (oder mittlere Maustaste), um die Ansicht zu verschieben,
- Zoom – Strg + Mausrad, Strg + 0 = 100 %; Strg + Ziehen wählt mehrere Bausteine,
- Verbinden – von einem blauen Anschluss zum anderen Baustein ziehen (Regeln unter Verbindungen),
- Ändern – Doppelklick auf einen Baustein; Delete – die markierten Bausteine und Verbindungen (mit Rückfrage); die Auswahl hat einen roten Rahmen,
- Load / Save – das Programm als eigene XML-Datei; Load liest das SPS-Programm auch aus einer Simulationsdatei,
- Apply (Anwenden) – übernimmt das Programm (auch in die Simulationsdatei) und schließt den Editor; Cancel fragt vor dem Verwerfen von Änderungen.
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
| Baustein | Bedeutung | Einstellungen (Doppelklick) |
| Start | Start des Stationszyklus; ein Start je Programm und je Station | Anzahl der Zyklen (1–10000) |
| Station | wartet, bis alle ihre Roboter in HOME sind, gibt dann Folgenstart und die Freigaben der Eingänge | Name, Folge (0 = Folge der Registerkarte Simulation), Stationszeit, Eingänge E mit Folgenstart, Eingänge E im Automatik |
| Wait | Zeitglied in ms; ohne Eingang oder nach Start / Station: die Station wartet vor Folgenstart darauf; nach einem Roboter: nur der Folgenstart dieses Roboters wird verzögert | Zeit, Start des Zeitglieds, Roboter |
| Robot | Roboter der Zelle; meldet HOME bei Warte auf Folgenstart | – |
| Interlock priority | zwei Roboter fordern denselben Verriegelungsbereich fast im selben Moment an: die SPS entscheidet, welcher Roboter den Bereich zuerst bekommt (Interlock priority); ohne Verbindungen | Bereich, erster Roboter, zweiter Roboter (oder jeder Partner), Regel, Fenster, Kommentar |
|
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. |
|
Start des Zeitglieds eines Warte-Bausteins:
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:
| Regel | Bedeutung |
| 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:
- links an der Station – die Roboter der Station (direkt oder über Wait: Roboter → Wait → Station),
- oben und unten an der Station – Start- und Warte-Bausteine,
- rechts an der Station – Stationszyklus beendet: zur nächsten Station oder zu einem Warte-Baustein.
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:
- eine Verbindung endet an einer Station oder an einem Warte-Baustein,
- ein Warte-Baustein hat höchstens einen Eingang,
- keine Schleifen,
- ein Start je Station (direkt oder über einen Warte-Baustein),
- keine doppelten Verbindungen.
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:
| Meldung | Korrektur |
| 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 run | eine Station braucht einen Roboter, der am Ablauf teilnimmt, sonst wartet sie ewig |
| Robot ... is on stations with different Folge numbers | ein 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
|
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):
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):
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
|
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:
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.
|
Signale E / A der Roboter
|
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.
|
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.
| Abschnitt | Bedeutung | Beispiel |
| Start | Signale 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 es | E13 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 / RobotOutputs | Ausgänge, die die Robotersteuerung in HOME bei Warte auf Folgenstart setzt (immer); station = die Folgenstart-Eingänge der Station des Roboters als Ausgänge | A41-A56 EIN, A81-A96 AUS, station EIN (A76, A80) |
| Home / SpsInputs | Eingä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 / Attribut | Bedeutung |
| Block id, type, x, y, name | id > 0; type = start, station, wait oder robot; x, y = Lage im Diagramm; name = Roboter der Zelle (robot) oder Titel (station) |
| start: cycles | Anzahl der Zyklen (1 oder mehr) |
| station: delay, folge, inputs, auto | Stationszeit [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, station | Zeit [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, raceWindow | Interlock 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, to | Verbindung 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:
- run und set mit "sps": true | false – Ablauf mit oder ohne SPS, SPS ein- oder ausschalten,
- robot mit robot, pause, override – Pause oder Override eines Roboters, wie im SmartPad,
- robust_test load / save mit "sps": true | false – SPS-Programm mit dem Plan des Robustheitstests laden oder speichern,
- sps_program – SPS-Programm setzen, lesen oder speichern; mit "open": true öffnet sich das Editorfenster wie mit Edit SPS program... (während einer Simulation nur zum Ansehen); die Antwort hat dann opened und readOnly,
- race_rules – Zeitfenster der Wettläufe, Fenster am Ende der Simulation, Vorrangregeln ohne SPS-Programm, die Wettläufe des letzten Laufs und die Anwendung der Regeln,
- die Dateidialoge des SPS-Programms und der Signaldatei werden mit ui_file beantwortet.
Beispiel: Station mit fünf Robotern, 10 Zyklen
- Zelle und Simulation laden, Registerkarte SPS öffnen, New from the robots of the cell klicken.
- Edit SPS program...: Doppelklick auf Start → 10 Zyklen; Doppelklick auf die Station → Folge 81, Stationszeit 2 s, Eingänge 76, 80.
- Einen Warte-Baustein aus der Liste ziehen, unter der Station verbinden, 2000 ms ab dem Start des Stationszyklus einstellen (Mindesttaktzeit). Apply.
- Registerkarte Simulation: SPS einschalten, Run on all robots drücken, die SmartPads der gewünschten Roboter öffnen.
- Nach 10 Zyklen: Registerkarte Times → Report... (siehe Taktzeitbericht).









