SPS Biegeanlage

HuetteHH

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ich habe nachfolgendes Problem..

Hier im Vorfeld eine Variablenliste:

S1 AT%IX8.1 : BOOL; (*Ein-Schalter*)
B1 AT%IX9.1 : BOOL; (*Zylinder 1 ausgefahren*)
B2 AT%IX10.1 : BOOL; (*Zylinder 1 eingefahren*)
B3 AT%IX9.2 : BOOL; (*Zylinder 2 ausgefahren*)
B4 AT%IX10.2 : BOOL; (*Zylinder 2 eingefahren*)
B5 AT%IX9.3 : BOOL; (*Zylinder 3 ausgefahren*)
B6 AT%IX10.3 : BOOL; (*Zylinder 3 eingefahren*)

Y1 AT%QX104.1 : BOOL; (*Zylinder 1 Signal-> ausfahren*)
Y2 AT%QX105.1 : BOOL; (*Zylinder 1 Signal-> einfahren*)´

Y3 AT%QX104.2 : BOOL; (*Zylinder 2 Signal-> ausfahren*)
Y4 AT%QX105.2 : BOOL; (*Zylinder 2 Signal-> einfahren*)

Y5 AT%QX104.3 : BOOL; (*Zylinder 3 Signal-> ausfahren*)
Y6 AT%QX105.3 : BOOL; (*Zylinder 3 Signal-> einfahren*)

Ich habe, wie man unschwer erkennen kann 3 Zylinder. Zylinder 1 spannt das Werkstück. Zylinder 2 Biegt eine Seite, Zylinder 3 biegt die andere Seite. Nach dem Zylinder 3 Zurück gefahren ist, soll auch Zylinder 1 zurückfahren damit man das Werkstück entnehmen kann.

Mein Problem liegt jedoch am Anfang. Wenn ich den Schalter S1 betätige fährt Zylinder 1 aus und spannt das Werkstück und B1= True.

Jetzt ist das Problem, dass wenn ich sage if B1 = True then Y3...
fährt er ja nicht wieder ein, weil B1 ja die ganze Zeit True ist. Und der Zylinder 2 muss wieder einfahren, weil er sonst mit dem Zylinder 3 kollidiert.

Wie lasse ich den 2ten Zylinder ausfahren ? Ich kann mich doch nicht auf den Zylinder beziehen, der die ganze Zeit nur eine Position hat oder ?

kann das jemand nachvollziehen und mir helfen ?
 
Zuletzt bearbeitet:
Üblicherweise programmiert man solche sequentiellen Abläufe als Schrittkette. Habt ihr das im Unterricht schon behandelt?
 
Wie bereits erwähnt, nimmt man für einen solchen Ablauf üblicherweise eine Schrittkette.

Man zerlegt den Ablauf in einzelne Schritte:

  1. Spannen
  2. Ersten Biegezylinder in Arbeitsstellung
  3. Ersten Biegezylinder in Grundstellung
  4. Zweiten Biegezylinder in Arbeitsstellung
  5. Zweiten Biegezylinder in Grundstellung
  6. Spannzylinder öffnen

In Abhängigkeit von den Schritten werden die Ventile und damit die Zylinder angesteuert.

Schritt 1 -> Y1
Schritt 2 -> Y1 und Y3
Schritt 3 -> Y1 und Y4
Schritt 4 -> Y1 und Y5
Schritt 5 -> Y1 und Y6
Schritt 6 -> Y2

Die Schritte kann man mittels SR (Setze und Rücksetze) Glied realisieren. Um von einem zum anderen Schritt zugelangen gibt es sogenannte Transitionen (Weiterschaltbedingungen).

Um von Schritt1 in Schritt 2 zu gelangen muss Schritt1 aktiv sein und die Weiterschaltbedingung erfüllt sein. Wenn Schritt2 gesetzt wird setzt dieser den Vorgängerschritt (in dem Fall Schritt1) zurück.

Nun kannst Du ja mal die Suche bemühen und Dich ins Thema Schrittketten einlesen. Wenn Du Fragen hast frag ganz einfach und es wird Dir sicher jemand helfen.
 
Ich habe bereits angefangen, mich in die programmierung von Schrittketten einzulesen. Jedoch weiss ich nich nicht, wie ich das mit dem Programm handle bzw. ich nicht weiss, wie man schritte einbindet...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
'n abend,

wie zotos schon erwähnte, nimmt man in der Praxis für gewöhnlich Schrittketten.
Man kann so kleine Aufgaben aber auch ohne Schrittkette hinkriegen.

Aufbauend auf zotos Ablauf...

Man zerlegt den Ablauf in einzelne Schritte:

  1. Spannen
  2. Ersten Biegezylinder in Arbeitsstellung
  3. Ersten Biegezylinder in Grundstellung
  4. Zweiten Biegezylinder in Arbeitsstellung
  5. Zweiten Biegezylinder in Grundstellung
  6. Spannzylinder öffnen

In Abhängigkeit von den Schritten werden die Ventile und damit die Zylinder angesteuert.

Schritt 1 -> Y1
Schritt 2 -> Y1 und Y3
Schritt 3 -> Y1 und Y4
Schritt 4 -> Y1 und Y5
Schritt 5 -> Y1 und Y6
Schritt 6 -> Y2
...muß man sich nur noch die jeweiligen Schaltzustände der Endlagenschalter ansehen.

Hier mal ein Anfang:

Code:
// Zylinder 1 ausfahren
U S1
S Y1

//Zylinder 2 ausfahren
U B1
UN "Merker Zyl.2 AS"
S Y3

// Merken, daß Zylinder 2 schon mal ausgefahren wurde
U B3
S "Merker Zyl.2 AS"

//Zylinder 2 einfahren
U B3
R Y3
S Y4

usw...
Am Ende des Ablaufs werden die Merker wieder zurückgesetzt. Optional kann auch noch eine Haltezeit für die Biegezylinder eingebracht werden.
 
Die graphischen Programmierungen lassen sich hier schlecht darstellen.
Da müsste man extra Screenshots erstellen und als Bild anhängen.

Aber so schwer ist die oben dargestellte Lösung nun auch wieder nicht.
U steht für UND
S für SETZEN
R für RÜCKSETZEN
und
N für NICHT (NOT)

Jetzt nur noch die passenden FBS-Dinger raussuchen und los geht's...
 
wow

Man zerlegt den Ablauf in einzelne Schritte:
...
Danke zotos!

So eine anschauliche, verständliche und trotz der Kürze umfassende Erklärung von Schrittketten habe ich noch nie gelesen.
icon14.gif


Zugegeben, das angefragte Beispiel war besonders gut zur Erklärung geeignet (wie das bei den idealisierten Schulaufgaben meistens ist), doch trotzdem
Respekt für die gelungene Formulierung Deines Beitrags.

Gruß
Harald
 
Problem ist, dass die FBS Sprache ja nicht nach der reihe ausgeführt wird....
Wie ist das denn gemeint?

Jedes SPS-Programm, ganz gleich in welcher Programmiersprache, wird von oben nach unten ausgeführt und das immer wieder, immer wieder, immer wieder ...
Damit das Programm aber zu verschiedenen Zeiten unterschiedliche Sachen macht, gibt es die Merker (z.B. Schrittmerker), mit denen sich das Programm merken kann, wo es zuletzt aufgehört hat und was es beim nächsten Durchlauf tun soll. Mit Hilfe der Merker kann man dann auch gleich aussehende Vorgänge unterscheiden, die in einer Sequenz vielleicht mehrmals vorkommen.

Gruß
Harald
 
Zurück
Oben