Eine Frage zu Flankenmerkern...

Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine Erläuterungen Harald.

Ja, ist sicher schwer etwas zu sagen, wenn man die Anlage nicht kennt. Die Zylinder nach NOTAUS zunächst manuell in die GS zu fahren ist vermutlich die sicherste Variante.

Nur so aus Neugierde...

Gibt es denn keine Möglichkeit, nicht mit einer zweiten Schrittkette, sondern ähnlich dem Vorschlag des Users Michael Müller, über einen OB oder Ähnlichem die Zylinder in ihre GS fahren zu lassen, nachdem z.B. ein Taster (Grundstellung) gedrückt wird?

Hallo Anne,
mann kann im Anlauf OB einen Initalisierungsmeker setzen und dann im
Zyklischen Programm damit irgendwie in die Grundstellung fahren.
Dieses muß aber geordnet passieren, dazu muß Mann bzw. Frau den Aufbau der Anlage kennen.
Wenn sich da Einrichtungen oder Aggregate beim Grundstellung fahren in
die Quere kommen, ist die Schrittkette schon der richtige weg.
Die gestaltung der Schrittkette kann so sein das diese in der Ablauf-
schrittkette intregiert ist oder sie ist eine separate.
Grundsätzlich wird aber die GS-Fahrt nicht über einen separaten OB
ausgeführt, dann schon lieber ein eigener FC oder FB, der im zyklischen
Programm ausgeführt wird.

gruß helmut
 
@anne

Die Variante der geordneten Grundstellungsfahrt über einen Initialisierungsteil (z.Bsp. Schritt 1-10) der Schrittkette kenne ich auch, verwende das allerdings sehr selten. In meinen Maschinen verriegele ich ohnehin alle Antriebe/Zylinder, die sich ins Gehege kommen können nochmals gegeneinander, so daß auch bei einer Handbetätigung nichts zerstört werden kann. Es hat also ein Horizontalzylinder nur dann eine Bewegungsfreigabe, wenn alle Vertikalzylinder in Grundstellung sind usw, unabhängig von der Schrittkette. Wird dann eine Grundstellungsfahrt ausgeführt, wartet jeder Zylinder seine Freigabe ab, woraus dann ein "nacheinander fahren" resultiert. Nur in ganz seltenen Fällen, wenn Zylinder sich gegenseitig freifahren müssen, also einer der Zylinder z.Bsp. erst in Arbeitstellung fahren muß, damit der andere Zylinder in Grundstellung fahren kann, muß auch mal eine Schrittkette her.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Richtig sinn macht eine Schrittkette, nur so als beispiel, wenn ein Bohrer
oder Fräser in einen Werkstück ist. Dann darf z.b. das Werkstück erst
entspannt werden wenn der Bohrer wieder in Grundstellung ist. Sonst
könnte ein herumschleudern des Werkstückes erfolgen.

Oder Bei einen Portal, wenn ein Werkstück von A nach B gefahren wird.
Da kannst du betimmt nicht das Werkstück zurück zum Aufnahmeplatz
fahren oder einfach das Vakuum lösen, bevor das Werkstück abgelegt ist.

Wie gesagt die Maschine bzw. Aufgabenstellung gibt vor was wie zu
machen ist. Vlt. beschreibst du einfach mal was du da so hast, dann
kann man zielgerichteter hilfestellung geben.
 
Dank‘ euch!

Die Anlage, an der ich mich grad zu schaffen mache… :p

In einem großen Lager gibt es einen Kettenförderer, an dem in regelmäßigen Abständen Haken angebracht sind. An den einzelnen Haken sind Verpackungen angehängt. Bei Anforderung fährt ein vertikal angebrachter Zylinder 1 nach oben in die AS - danach fährt ein Horizontalzylinder 2 nach vorne in die AS und somit in den Haken am Förderer, während ein Schwenkzylinder die Verpackung vom Haken nimmt und an eine Waage übergibt. Drei weitere Zylinder übergeben die Verpackung dann anschließend an weitere Anlagenteile.

In meinen Maschinen verriegele ich ohnehin alle Antriebe/Zylinder, die sich ins Gehege kommen können nochmals gegeneinander, so daß auch bei einer Handbetätigung nichts zerstört werden kann.

Hättet ihr evtl. mal so eine "Verriegelungs-Programmierung" für mich, damit ich mir das mal durchsehen kann, wie man das in der Praxis bewerkstelligen kann? *weißschonichbinlästig*

Vielen Dank für eure Geduld mit mir...
 
das musst du natürlich für deine Anlage anpassen

Code:
U(
U #Einrichten
U #Taster_drehen_Grundstellung
O
U #Automatik
U #irgendetwas
)
U #Freigabe_Not_Aus
U #Vertikal_Ruhestellung
= #Ventil_drehen_Grundstellung_fahren
 
 
 
U(
U #Einrichten
U #Taster_Horizontal_einfahren
O
U #Automatik
U #irgendetwas
)
U #Freigabe_Not_Aus
U #Vertikal_Ruhestellung
U #Drehen_Ruhestellung
= #Ventil_Horizontal_einfahren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aja ok Helmut, vielen Dank.

Dein geposteter Code entspricht dann sozusagen einer manuellen Grundstellungsfahrt mit Verriegelung, oder?

Das kann bei mehreren Zylindern aber auch sehr schnell kompliziert werden, wenn man immer im Auge haben muss, welche Zylinde sich irgendwie ins Gehege kommen können...
 
Deshalb war der Ansatz von Harald, das über eine Schrittkette zu machen
die es für dich kontrolliert macht. Wenn mann Handbetriebsart, Initalisierung
und Automatikbetrieb berücksichtigt, sieht es vlt. so ähnlich aus.
Bei den Weiterschaltbedingungen für die einzelnen Fahrten muß du in den
Schrittketten natürlich auch die entsprechenden Grundpositionen über-
wachen.

Code:
U(
U #Hand
U #Taster_drehen_Grundstellung
U #Vertikal_Ruhestellung
U #Horizontal_Ruhestellung
O
U #Ini
U #Schritt_Ini_irgendwas
O
U #Automatik
U #Schritt_Automatik_irgendwas
)
U #Freigabe_Not_Aus
= #Ventil_drehen_Grundstellung_fahren
 
 
 
U(
U #Einrichten
U #Taster_Horizontal_einfahren
U #Vertikal_Ruhestellung
U #Drehen_Ruhestellung
O
U #Ini
U #Schritt_Ini_irgendwas
O
U #Automatik
U #Schritt_Automatik_irgendwas
)
U #Freigabe_Not_Aus
= #Ventil_Horizontal_einfahren
 
Bei den Weiterschaltbedingungen für die einzelnen Fahrten muß du in den
Schrittketten natürlich auch die entsprechenden Grundpositionen über-
wachen.

Dabei müsste es im Automatikbetrieb doch eigentlich reichen, dass ich als Bedingung für den Schritt 1 den Initiator für die GS des 1. Zylinders programmiere. Entsprechend dann für Schritt 2 den Initiator für die GS des 2. Zylinders, usw.

Dann kann doch im Grunde nichts schiefgehen, oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dabei müsste es im Automatikbetrieb doch eigentlich reichen, dass ich als Bedingung für den Schritt 1 den Initiator für die GS des 1. Zylinders programmiere. Entsprechend dann für Schritt 2 den Initiator für die GS des 2. Zylinders, usw.

Dann kann doch im Grunde nichts schiefgehen, oder?

Außer, es schaltet jemand in Hand um, fährt einen Zylinder in die falsche Stellung und schaltet dann die Automatik wieder ein!!! Dann verhindert eine Allgemeine Verriegelung, daß es kracht. Natürlich gehört dann auch eine Fehlermeldung, wie "Laufzeitüberschreitung" dazu, sonst "schläft" die Maschine einfach ein. Ich habe für Motore/Zylinder eigenen Standardbausteine, die haben das alles gleich drin. Da gibt es dann einen Input für die Freigabe, extra noch einen für die Grundstellungsfahrtfreigabe usw.
 
Außer, es schaltet jemand in Hand um, fährt einen Zylinder in die falsche Stellung und schaltet dann die Automatik wieder ein!!!

Aber auch dann sollte doch eigentlich Nichts passieren, da im Automatikbetrieb Schritt 1 ja nur ausgeführt wird, wenn Zylinder 1 auch wirklich in GS steht. Und wurde z.B. Zylinder 2 im Handbetrieb in AS gefahren, so wird im Automatikbetrieb der Schritt 2 nicht ausgeführt werden, da Zylinder 2 nicht in GS steht, usw.

Oder hab ich da jetzt nen Denkfehler?
 
Aber auch dann sollte doch eigentlich Nichts passieren, da im Automatikbetrieb Schritt 1 ja nur ausgeführt wird, wenn Zylinder 1 auch wirklich in GS steht. Und wurde z.B. Zylinder 2 im Handbetrieb in AS gefahren, so wird im Automatikbetrieb der Schritt 2 nicht ausgeführt werden, da Zylinder 2 nicht in GS steht, usw.

Oder hab ich da jetzt nen Denkfehler?

Je nachdem wie das programmiert wurde.

Bsp..

Schritt 1 --> Zylinder 1 Horizontal in AS
Schritt 2 --> Zylinder 2 Vertikal in AS (nach unten)
Schritt 3 --> Zylinder 3 Greifer in AS (greifen)
Schritt 4 --> Zylinder 2 Vertikal in GS (nach oben)
Schritt 5 --> Zylinder 4 Zwischenanschlag in AS
Schritt 6 --> Zylinder 1 Horizontal in MS (Mittenstellung)

Wenn nun jemand im Schritt 5 die Automatik stoppt und in Hand den Zylinder 2 Vertikal wieder in AS senkt, dann könnte, nach Wiedereinschalten der Automatik, der Horizontalzylinder losfahren, wenn keine zusätzliche Freigabe dies sperrt. Man kann und will ja auch nicht in jedem Schritt alle anderen Vorbedingungen mitprüfen, dann werden die Abfragen in den Schritten ellenlang, außerdem wird man garantiert irgendwann etwas vergessen oder einen Fehler machen.

Daher habe ich an jedem Zylinder selbst nochmals eine Freigabe, die definiert, unter welchen Bedingungen (andere Zylinder etc.) er nun auch wirklich fahren darf. Ist also der Zylinder 2 Vertikal in Arbeitsstellung, hat der Zylinder 1 Horizontal keine Freigabe, was immer die Schrittkette oder die Handbedienung auch sagen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Daher habe ich an jedem Zylinder selbst nochmals eine Freigabe, die definiert, unter welchen Bedingungen (andere Zylinder etc.) er nun auch wirklich fahren darf. Ist also der Zylinder 2 Vertikal in Arbeitsstellung, hat der Zylinder 1 Horizontal keine Freigabe, was immer die Schrittkette oder die Handbedienung auch sagen.

Danke für die Erklärung Ralle - ja das ist wohl eine gute Idee!

Eine Frage(n) noch dazu:

Diese zusätzliche Freigabe an den Zylindern, die du für jeden Zylinder einzeln definiert hast ist ja dann vermutlich weder Bestandteil des Automatik- noch des manuellen Betriebs, oder?

Anders gefragt, wie und an welcher Stelle wird dann diese zusätzliche Freigabe definiert?

Es muss ja dann im Automatikbetrieb jeweils auch diese zusätzliche Freigabe geprüft werden, ohne dass diese eine Bedingung für einen Schritt darstellt, oder verstehe ich das falsch?

Lieben Dank!
 
@anne

Ja, die zusätzliche Freigabe gilt allgemein, kann aber natürlich bei Bedarf auch für Hand- oder Automatikbetrieb getrennt werden. Das ist im Prinzip ein Netzwerk vor dem Baustein mit der Beschaltung der Ausgänge des Zylinders. Darin werden in KOP/FUP/AWL (je nach Vorliebe) die Bedingungen angegeben, unter denen sich der Zylinder bewegen darf. Die Freigabe ist dann eine Temp-Vat, die anschließend an dem Zylinder-Baustein als Freigabe-Input eingetragen ist. Diese Freigabe sperrt die Bewegung des Zyinders. Je nach Ventiltyp ist das etwas unterschiedlich, ein Monoventil soll ja z.Bsp. auch in seiner Arbeitsstellung verbleiben, wenn die Freigabe weggeht usw.

Für den Horizylinder sieht die Freigabe dann einfach so aus:

Code:
U E 7.3  //(Vertikal in GST)
UN E 7.2 //(Vertikal in AST)
= #FRG

Am Baustein steht dann #FRG am Input für die Freigabe.

In der Schrittkette wird immer nur das abgeprüft, was gerade ausgeführt wird. Wenn also in Schritt 3 der Greifer schließt, ist die Weiterschaltbedingung, daß der Greifer zu ist. Da wird normalerweise nicht nochmals abgefragt, ob der Vertikalzylinder auch unten ist, das hat ja der Schritt davor erledigt. Bei besonders gefährdeten Sachen kann man aber auch in der Schrittkette nochmals zur Sicherheit ein paar Abfragen einbauen, wenn man es für nötig hält.
 
Hm, also ich versuche mal zusammenzufassen:

- Ich habe in einer FC1 einen Automatikbetrieb programmiert
- Ich habe in einer FC2 einen manuellen Betrieb programmiert

Im ersten Netzwerk der FC2 wird nun z.B. für jeden Zylinder eine Freigabe #FRG programmiert und #FRG als Temp-Variable deklariert.


Am Baustein steht dann #FRG am Input für die Freigabe.

Hier habe ich jetzt noch ein kleines Problem... ist #FRG dann ein Teil der Bedingung für das manuelle Schalten (also Handbetrieb) eines Zylinders?

Also beispielsweise

Code:
U #FRG
U M_Man     // manueller Betrieb
U M 10.0    // Button auf dem Panel schaltet Zyl. in GS
R A 2.0     // Rücksetzen (AS) von Zyl. 1
S A 2.1     // Setzen (GS) von Zyl. 1

War das so gemeint - oder wo muss #FRG stehen? :confused:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier habe ich jetzt noch ein kleines Problem... ist #FRG dann ein Teil der Bedingung für das manuelle Schalten (also Handbetrieb) eines Zylinders?

Also beispielsweise

Code:
U #FRG
U M_Man     // manueller Betrieb
U M 10.0    // Button auf dem Panel schaltet Zyl. in GS
R A 2.0     // Rücksetzen (AS) von Zyl. 1
S A 2.1     // Setzen (GS) von Zyl. 1

War das so gemeint - oder wo muss #FRG stehen? :confused:

Hi anne,

ja ich denke so hat Ralle das gemeint. Somit würde dann der Zylinder in deinem Beispiel per Hand nur dann geschalten werden können, wenn eben die Freigabe #FRG erfüllt ist.


Eine Frage noch dazu:

Im Grunde könnten doch dann die Bedingungen, unter denen ein Zylinder schalten darf, für jeden Zylinder als ODER-Verknüpfung eingepflegt werden, so dass man auch bei mehreren Zylindern mit nur einer Freigabe auskommt, oder?

Also beispielsweise so:

Code:
U  E0.0
UN E 0.1
O
U  E 0.2
UN E0.3
= #FRG

Geht das?

Danke, pinolino
 
#FRG verwende ich so, daß vor jedem Ventilbaustein eine nur für diesen Zylinder geltende Freigabe definiert wird. Man kann das auch im NW1 des FC machen, dann muß man aber #FRG_01, #FRG_02 ... bilden, halt für jeden Zylinder bzw. Motor.

@Anne
Für jede Betriebsart einen FC mache ich ohnehin nicht. Es werden Merker/Datenbits gebildet, die die Bewegung in Hand oder Automatik auslösen. Diese Merker/Datenbits kommen ebenfalls als Input an den Ventilbaustein, dazu noch die Merker für die Betriebsart Hand und Automatik. Aber das ist eine Sache der Philosophie, das kann jeder so halten, wie er es will oder auch vom Chef vorgeschrieben bekommt.
 
#FRG verwende ich so, daß vor jedem Ventilbaustein eine nur für diesen Zylinder geltende Freigabe definiert wird.

Danke Ralle!

Ich nehme an, mit Ventilbaustein meinst du eine FUP-Box. Dann kommt also in NW1 die Freigabe #FRG und in NW2 die zugehörige FUP-Box des ersten Zylinders. Entsprechend dann in NW3 die nächste Freigabe #FRG und in NW4 die zugehörige FUP-Box des zweiten Zylinders, usw.

Habe ich das so richtig verstanden?

Falls ja, beeinflussen sich dann die einzelnen #FRG's nicht im Programm - sie stehen dann ja alle in der selben FC?

Sorry, könntest du zur Verdeutlichung evtl. mal für zwei Zylinder beispielshaft so einen Code mit Ventilbaustein posten - natürlich nur, wenn es nicht zu aufwendig für dich ist. Ich kann mir das im Moment noch nicht ganz vorstellen... :confused:

Lieben Dank für deine Beantwortung meiner dummen Fragen - aber ich habe so etwas echt noch nie gemacht!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich denke er meint einen Baustein (FB) den er für mehrere Zylinder verwendet.

Dieser hat dann Eingänge wie z. B.:

Endlage GS
Endlage AS
Freigabe
Start Bewegung AS
Start Bewegung GS
Zeitwert für Überwachung
...

und Ausgänge z.B.

Bewegung nach AS
Bewegung nach GS
Fehlerausgänge (Endlagenfehler, Paarüberwachung..)

IN diesem Baustein ist dann die Logik zur Steuerung und Überwachung des Zylinders. Der Baustein wird dann mit den Eingängen Ausgängen und Merkern für einen Zylinder beschaltet.

Gruß Marco
 
Hallo,

ich denke er meint einen Baustein (FB) den er für mehrere Zylinder verwendet.

Gruß Marco

Hallo Marco,

aber dann müsste dieser Baustein (FB) ja für jeden einzelnen Zylinder im OB1 mit einem extra Instanzdatenbaustein aufgerufen werden, oder?

Das wäre in meinem Fall bei sechs Zylindern ja gerade noch überschaubar, aber bei mehr Zylindern...

Oder habe ich das Ganze falsch interpretiert? :confused:
 
Hallo Marco,

aber dann müsste dieser Baustein (FB) ja für jeden einzelnen Zylinder im OB1 mit einem extra Instanzdatenbaustein aufgerufen werden, oder?

Das wäre in meinem Fall bei sechs Zylindern ja gerade noch überschaubar, aber bei mehr Zylindern...

Oder habe ich das Ganze falsch interpretiert? :confused:

Ja, hast du denke ich.
Du kannst einen FB mit DB als Multiinstanz verwenden, diesen im OB1 aufrufen und in diesem dann deine einzelnen Zylinderbausteine aufrufen.
Hat jedoch den Nachteil, wenn bei laufender Anlage der FB und DB geändert werden und du beide übertragen musst, dass nach dem Übertragen der Inhalt des DB nicht mehr gültig ist, bis er wieder mit Aktualwerten überschrieben wird.

Wird es jetzt klarer?

bike
 
Zurück
Oben