Ablaufsteuerung mit wiederkehrenden Ablauffolgen

Alexito

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich hoffe ihr könnt mir helfen. Es geht um eine Stempelanlage mit einem Einleger, der sich dreht und einen Einleger hoch und rutner fahren kann sowie einen Sauger besitzt. Dann einem Magazin mit Vereinzelungszylinder sowie einer Stempelvorrichtung, mit Stempel sowie Spannzylinder. Würde mein eine einfache Ablaufkette schreiben, wäre man sicherlich bei 20 Steps. Habt ihr eine Idee wie ich manche Schritte zusammenfassen könnte? z.B. Einleger runter -> Vakuum ein-> Einleger rauf. das wäre eine Abfolge, die sich 3 mal wiederholen würde bei der ganzen Prozedur.
Ich hatte die Idee kleine Ablauffolgen in ein FB zu schreiben. Jedoch kommen sich der FB gegenseitig in die Quere, sobald man ihn mehrmals aufruft. Da der FB nicht mit einem Zyklus fertig werden kann.

Gruß

Alexito
 
Also, ich kann Dir das Ganze so nicht beantworten. Ohne ein genaues "Pflichtenheft", in welchem der genaue Ablauf dargestellt, kann ich Dir nicht sagen, ob Du mehrere Vorgänge gleichzeitig in einem Schritt zusammenfassen kannst.
 
Schritte zusammenfassen kannst du doch ganz einfach, indem du Aktoren
mit den gleichen Schritt ansteuerst. Menn es eine Merkerschrittkette ist, zb

Code:
U #Schritt_XY
= #Einleger_ab

U #Schritt_XY
S #Vakuum

hilft das bei dem Hausaufgaben?
 
Die Variante von Rudi ist sicher das Gesuchte, aber auch eine Sprungleiste würde funktionieren. In der Sprungleiste wird ja immer zu der Sprungmarke gesprungen, die der Schrittnummer entspricht. Nun müsste man zwar eine SPL mit 20 Schritten programmieren, aber man kann Schritt 3+4+5 mit der selben Sprungmarke wie Schritt 9+10+11 belegen und damit gleiche Teile auch im gleichen Code abarbeiten. Finde ich persönlich aber nicht so übersichtlich.
 
Hmm, aus Deiner Problemformulierung ist ein bischen schwer zu verstehen, was Du meinst.
Ich greife mir mal das hier raus:
Würde mein eine einfache Ablaufkette schreiben, wäre man sicherlich bei 20 Steps. Habt ihr eine Idee wie ich manche Schritte zusammenfassen könnte? z.B. Einleger runter -> Vakuum ein-> Einleger rauf. das wäre eine Abfolge, die sich 3 mal wiederholen würde bei der ganzen Prozedur.
Mach doch 2 Schrittketten (wie schon von Rudi vorgeschlagen), eine SK für den Teile-Transport und eine eigene SK für den Vorgang, der sich wiederholt. Quasi eine "äußere" und eine "innere" SK. Die erste SK startet die kurze zweite SK eben mehrmals. Die zweite SK braucht dann zum eigentlichen Ablauf noch Schritte zur Synchronisation mit der ersten SK: "Warte auf ein Teil" - Bearbeitungsschritte ... - "Übergebe Teil zurück" - springe zum ersten Schritt.

Wenn das nicht die Idee ist, die Du gesucht hast - was meinst Du mit: "Jedoch kommen sich der FB gegenseitig in die Quere, sobald man ihn mehrmals aufruft. Da der FB nicht mit einem Zyklus fertig werden kann." ?

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

erstmal danke für die zahlreichen Antworten. Die Idee mit der Merker-Schrittkette hatte ich schon verwirklicht. Jedoch hat sie mir nicht gefallen oder ich habe sie nicht weiter programmiert, da mir das nicht gefallen hat. Auf Grund der vielen Wiederholungen halt.
Ich versuche nochmal den Prozess näher zu erläutern. Ein Drehteller auf dem ein Einleger mit Saugnapf installiert ist steht zwischen einem Magazin und einer Stempelvorrichtung. Das Magazin beinhaltet die Werkstücke, die am unterem Teil des Magazins durch einen Vereinzelungszylinder aus dem Magazin in eine Erkennungsstation geschoben werden. Durch diesen Schritt fällt von oben das nächste Werkstück herunter und wäre breit heraus geschoben zu werden. Dies ist auch der erste Schritt. Hierbei darf sich der Einleger nicht in der nähe befinden. Nun muss der Einleger über den Drehteller zum Magazin gedreht werden. Der Einleger muss runterfahren und über den Sauger und einer Erzeugung eines Vakuums das Werkstück aufnehmen und wieder hochfahren. Abhängig von dem Material(Erkennungsstation) wird der Einleger mit dem Werkstück am Sauger nun in eine andere Position gefahren. Entweder zur Rutsche(Ausschuss) oder zur Stempelvorrichtung. An der Stempelvorrichtung fährt ein Spannzylinder aus. Nun soll der Einleger wieder runterfahren und das Vakuum ausschalten, um das Werkstück auf den am Spannzylinder angebrachten Teller abzulegen. Der Spannzylinder fährt ein und der Einleger fährt wieder hoch und wartet. Dann wird der Stempelzylinder ausgefahren, der dann das Werkstück im Teller des Spannzylinders stempelt. Der Spannzylinder wird ausgefahren und der Einleger kann wieder runter gefahren werden. Vakuum wird eingeschaltet um das Werkstück am Sauger zu fixieren. Danach fährt er zusammen mit dem Werkstück wieder hoch und der Einleger wird durch den Drehteller wieder in Position Rutsche gebracht und hier wird der Einleger wieder runter gefahren und das Vakuum ausgeschaltet, damit das Werkstück herunterfällt auf die Rutsche.


So das ist grob der Prozess. Wie man unschwer erkennen kann kommt die Abfolge: Einleger runter -> Vakuum ein/aus -> Einleger hoch
mehrmals vor.

Ich habe es so gemacht, dass ich ein FB für den Einleger geschrieben habe. Er beinhaltet die oben genannten drei Schritte. Jedoch kann man von außen vorgeben, ob das Vakuum ein- oder ausgeschaltet werden soll.(Werkstück ablegen oder aufnehmen)
Desweiteren habe ich einen FB für den Drehteller geschrieben. Auch hier ist von außen vorgebbar, welche Postion sowie Richtung er fahren soll. (rechts, links, Rutsche, Stempel, Stapel)
Desweiteren für den Vereinzelungszylinder.

So nun habe ich wieder einen Merkerablauf geschrieben um so die Funktionen wiederholt jedoch nur vereinzelt aufzurufen. Ich komme jetzt ungefähr auf 7 Schritte.

Der jetztige Merkerablauf hat nun viel weniger Schritte. Meint ihr das ist eine gute Lösung?? Anstelle der ggf 20 Schritte und wiederholtem Code?
 
Es führen immer viele Wege nach Rom.
Ich persönlich komme ehemals aus der Instandhaltung und versuche jetzt so zu programmieren das es nicht für andere unübersichtlich wird (oder man selbst nach Jahren sich nicht mehr zurechtfindet).
Für meine Begriffe sind da Schrittketten die übersichtlichste Lösung.

Könntest ja mal deine Lösung reinstellen damit jeder meckern kann:ROFLMAO:
 
okai dann stelle ich mal eine pdf rein. Also das ganze passiert im Rahmen einer Projektarbeit in meiner Ausbildung.
 
was heißt "code einfügen" direkt? Es ist als FUP realisiert ;( Oder soll ich es in AWL konvertieren?
 
Zuletzt bearbeitet:
nur mal by the way. Wo hast du denn in der IBS gearbeitet, wenn ich fragen darf? Daran bin ich eigtl. auch sehr interessiert, da mir die Thematik sehr gut gefällt.
 
Danke Corosop15!
Anbei noch die Pdf.
 

Anhänge

  • FB254_AWL.pdf
    16,6 KB · Aufrufe: 21
  • FB254_FUP.pdf
    27,7 KB · Aufrufe: 30
Zuletzt bearbeitet:
Code:
Diese Automatik beinhaltet nur die Steuerung des Vereinzelungszylinders, 
Drehtellers und Einlegers
 
Step0 - Vereinzelungszylinder rausfahren
Werkstück wird auf die Erkennungsstation geschoben
 
SPR1: U "Startbutton_auto"
S #step0
U "Function_finish"
U #step0
= #nextstep
U #nextstep
R #step0
U #step0
= L 1.0
U L 1.0
FN M 102.0
R "Function_finish"
U L 1.0
SPBNB _001
L 0
T #step
_001: NOP 0
 
Material erkennen
 
U #nextstep
U "WER_iEr_?"
SPBNB _002
CALL "Materialerkennung"
Mat_Alu :=#Mat_alu
Mat_Schwarz:=#Mat_schwarz
Mat_weiss :=#Mat_weiss
_002: NOP 0
 
step1 - Einleger nach rechts fahren bis zum Stapelmagazin
 
U #nextstep
S #step1
U "Function_finish"
U #step1
= #nextstep
U #nextstep
R #step1
U #step1
= L 1.0
U L 1.0
FN M 103.0
R "Function_finish"
U L 1.0
SPBNB _003
L 1
T #step
_003: NOP 0
 
step2 - Werkstück aufnehmen
 
U #nextstep
S #step2
U "Function_finish"
U #step2
= #nextstep
U #nextstep
R #step2
U #step2
= L 1.0
U L 1.0
FN M 104.0
R "Function_finish"
U L 1.0
SPBNB _004
L 2
T #step
_004: NOP 0
 
step3 - Einleger zur Rutsche fahren oder Stempel
 
U( 
U( 
U #nextstep
S #step3
U "Function_finish"
U #step3
= #nextstep
U #nextstep
R #step3
U #step3
) 
SPBNB _005
L 3
T #step
SET 
SAVE 
CLR 
_005: U BIE
) 
FN M 105.0
R "Function_finish"
 
step4 - Werkstück ablegen
 
U( 
U( 
U #nextstep
S #step4
U "Function_finish"
U #step4
= #nextstep
U #nextstep
R #step4
U #step4
) 
SPBNB _006
L 4
T #step
SET 
SAVE 
CLR 
_006: U BIE
) 
FN M 106.0
R "Function_finish"
 
Springe zum Anfang 
 
U #Mat_schwarz
SPB SPR1
 
Simulation der Stempeleinrichtung
Nur ein Zeitglied um die Dauer des Stempelvorgangs zu simulieren. Im Nachhinein 
wird der die Schrittkette durch ein anderes Signal wieder in Gang gesetzt. 
U #nextstep
L S5T#2S
SS T 20
NOP 0
NOP 0
NOP 0
U T 20
= #nextstep
 
Step5 - Gestempeltes Werkstück wieder aufnehmen
 
U( 
U( 
U #nextstep
S #step5
U "Function_finish"
U #step5
= #nextstep
U #nextstep
R #step5
U #step5
) 
SPBNB _007
L 5
T #step
SET 
SAVE 
CLR 
_007: U BIE
) 
FN M 107.0
R "Function_finish"
 
step6 - Gestempeltes Werkstück zur Rutsche fahren
 
U( 
U( 
U #nextstep
S #step6
U "Function_finish"
U #step6
= #nextstep
U #nextstep
R #step6
U #step6
) 
SPBNB _008
L 6
T #step
SET 
SAVE 
CLR 
_008: U BIE
) 
FN M 108.0
R "Function_finish"
 
step 7 - Gestempeltes Werkstück ablegen
 
U( 
U( 
U #nextstep
S #step7
U "Function_finish"
U #step7
= #nextstep
U #nextstep
R #step7
U #step7
) 
SPBNB _009
L 7
T #step
SET 
SAVE 
CLR 
_009: U BIE
) 
FN M 109.0
R "Function_finish"
 
Einleger_Automatik_FB-Aufruf
activated führt intern eine Schrittkette an. Deswegen als Impuls umso ein 
ungewolltes Starten der Schrittkette im nächsten Zyklus zu verhindern.
 
U( 
O #step7
O #step5
O #step2
O #step4
) 
FP M 20.0
= L 1.0
BLD 103
U( 
O #step2
O #step5
) 
= L 1.1
BLD 103
U "EIN_unt_?"
= L 1.2
BLD 103
U "EIN_obe_?"
= L 1.3
BLD 103
U "VAK_Wer_?"
= L 1.4
BLD 103
U( 
O #step7
O #step5
O #step2
O #step4
) 
SPBNB _00a
CALL "Einleger_auto" , DB260
activated :=L1.0
Vacuum_enable :=L1.1
Einleger_unten:=L1.2
Einleger_oben :=L1.3
WER_Sauger :=L1.4
Finish :="Function_finish"
_00a: NOP 0
 
Drehteller_Automatik-FB-Auruf
U( 
U "POS_Rut_?"
U #step6
O 
U "POS_Sta_?"
U #step1
O 
U( 
U "POS_Rut_?"
U #Mat_schwarz
O 
U "POS_Ste_?"
U( 
O #Mat_weiss
O #Mat_alu
) 
) 
U #step3
) 
= L 1.0
BLD 103
U #step3
= L 1.1
BLD 103
U( 
O #step1
O #step5
O #step6
) 
= L 1.2
BLD 103
U( 
O #step6
O #step1
O #step3
) 
FP M 20.1
= L 1.3
BLD 103
U( 
O #step6
O #step1
O #step3
) 
SPBNB _00b
CALL "Drehteller_Auto" , DB261
Drehteller_POS:=L1.0
Dreh_links :=L1.1
Dreh_rechts :=L1.2
activated :=L1.3
Finish :="Function_finish"
_00b: NOP 0
 
 
VereinzelungsAutomtik - FB-Auruf
 
U #step0
FP M 20.2
= L 1.0
BLD 103
U #step0
SPBNB _00c
CALL "VZL_auto" , DB262
activated:=L1.0
finish :="Function_finish"
_00c: NOP 0

Schau mal hier wegen Code: http://www.sps-forum.de/misc.php?do=bbcode#code
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
So nun Meinungen dazu. Ziel war es kleine wiederkehrende Abläufe zusammenzufassen und gezielt aufzurufen. Macht das Sinn oder ist das unüblich für einen Ablaufprozess? Oder sollte ich einfach doch eine normale Schrittkette programmieren, auch wenn viele Schritte sich wiederholen und vllt ggf. Springen. Ich weiß leider nicht was "schön" programmieren in so einem Bereich heißt.
 
Ja der obige Code ist aus FUP in AWL konvertiert. Wir sollen bevorzugt in FUP programmieren. Der darüber liegende Beitrag enthält die FUP - Version als pdf als Anhang. Industrietechnologe
 
Zurück
Oben