# Programmierung Rundtakttisch



## bernd67 (26 Oktober 2007)

Guten morgen
Ich brauche mal einen Denkanstoss.
Muss einen Rundtakttisch (mit 12 Stationen) programmieren, indem 3 Teile ineinander gefügt werden.
Alle 12 Stationen arbeiten gleichzeitig wenn der Tisch einen Takt gedreht hat.
An 3 Stationen werden dem Tisch die 3 Teile zugeführt.
Der Tisch taktet immer eine Station weiter.
Die beiden letzten Stationen sind Auswerfer für Gut und für Schlechtteile.
Wenn alle Stationen korrekt gearbeitet haben dann muss der Gutteile Auswerfer kommen, sonst der Schlechtteile.
Weiterhin sollen, wenn eine Station nicht korrekt gearbeitet hat auch die nachfolgenden nicht arbeiten.
Wie schiebe ich die Infos weiter um den jeweils richtigen Auswerfer anzusprechen.

Wäre euch dankbar für einen Denkanstoss

Bernd67


----------



## HDD (26 Oktober 2007)

Hi,
hast du die suche schon benutzt Schieberegister !

HDD


----------



## plc_tippser (26 Oktober 2007)

Ja, Schieberegister mit Structur. Ein Bit für Teil ist gut, wenn eine Station das auf 0 setzt, dann bearbeiten die folg. die nicht mehr.

Auf ein Aktive Bit achten, das erst wenn alle Stationen fertig sind weitergetaktet wird.

pt


----------



## jabba (26 Oktober 2007)

Es gab schon mehrere Themen dazu.

Aber wie schon plc_tippser beschrieben hat, legst Du eine Structur an, dann einen DB mit den Nestinformationen. Diese werden dem beim takten geschoben. Aber je nachdem was das gemacht wird, oder was das für ein Tisch ist, gibt es böse Fallen.
Wichtig ist das schieben so abzusicheren, das nur einmal geschoben wird.
z.B. Flanke wenn Motor ein und Ini in Position.
Wenn auch nur annähernd damit zu rechnen ist, das eventuell noch Daten gespeichert werden müßen, nehme ich immer pro Station einen eigenen DB, da sich der (fast) beliebig erweitern lässt.
Jede Station muss melden "habe Fertig" und zwar aktiv, ich gehe dazu nicht auf das Schieberegister. Nach dem Neustart der Maschine entscheidet dann jede Station ob sie arbeiten muss oder nicht, und setzt das Bearbeiten_Ende Signal.


----------



## IBFS (26 Oktober 2007)

WICHTIG!

ENTSCHEIDENT ist auch das du PERMANENT überwachst, ob sich - während der Tisch dreht - irgendein Greifer NACH UNTEN bewegt !!!

Dann sofort RST abschießen - Schnellstopp !!!

sonst ist der Greifer "Weggeräumt"

DAS IST VOR DEM ERSTEN REALEN DREHEN in einem separaten "Wachhund"-Baustein zu programmieren



----------------------------------------------------
Stay safe, stay cool 
----------------------------------------------------


----------



## Larry Laffer (26 Oktober 2007)

Hallo,
die wichtigsten Hinweise zu dem Thema hast du ja schon erhalten ...

Vielleicht noch einmal explizit:
Bei uns haben wir sehr viele Rundtisch-Anwendungen. Ich löse das so, dass ich jeder Station ein DWORD eines DB's zuordne. Mit jedem Drehtisch-Takt werden die DWORD's im DB um eins weitergeschoben. Es gibt entsprechend der Anzahl der Stationen Speicherplätze. Der Speicherplatz der letzten Station wird nach dem Takt auf den Speicherplatz der 1. Station kopiert.
In dem Speicher erhält jede Station ein "habe-erfolgreich-gearbeitet"-Bit und bei Prüfstationen zusätzlich ein (oder mehrere) NIO-Bits. 
Station 1 erwartet einen leeren Speicher - d.h. sie kann arbeiten und ihr Teil einlegen, wenn der Tisch nicht belegt ist. Station 2 erwartet, dass Station 1 ihr Teil eingelegt hat - ist das nicht geschehen (Handbetrieb - Störung oder so) dann legt sie ihr Teil auch nicht herein. Usw.
Die NIO-Entnahme entnimmt das Teil, wenn ein NIO-Bit gesetzt ist (egal von welcher Station). Gern gesehen wird hier, wenn unterschiedliche NIO-Bewertungen auch seperat gezählt werden.
Die IO-Entnahme entnimmt das Teil wenn vollständig und kein NIO-Bit.

Das müßte dir für den Anfang erstmal helfen.


----------



## Boxy (27 Oktober 2007)

Genau, jeder Station ein Bereich im DB (Struct) geben.
Ich nutze da gerda immer so 10 oder 20 Wörter, je-nach-dem was ich alles speichere. 
Platz in der Steuerung gibts genug und etwas Struktur kann ja nie schaden . Ausserdem kann ich es immer für die nächste Maschine nutzen, also ala Vorlage.
Bin ja zu faul ständig neues zu programmieren bei gleicher Art von Maschine.

Also Teil vorhanden, Status der jeweiligen Bearbeitung, IO oder NIO usw. was sonst noch alles benötigt wird (Vorrichtungskorrekturen, Messwerte ...).

Mit Rundtisch in neuer Poition wird alles um einen Platz (Station) im Schieberegister geschoben. Dabei wird die Rundtischpoition (Soll und Ist) gespeichert. Denn falls einer den RT in Hand dreht, stimmen Soll und Ist Position nicht zueinander und somit kann nicht Bearbeitet werden!

grüssle aus dem fernen Asien ...


----------

