Sonstiges Bitte um Hilfe bei Logo Programm

michrathr

Level-1
Beiträge
16
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen Allerseits

Bitte helft Mir! Ich bin am verzweifeln!

Anbei findet Ihr ein Programm.

Der rot markierte Bereich steuert einen Ausgang Q1 (Zylinder ausfahren)
Das Programm lenkt den Zylinder aus und zieht diesen nach 2 sec. wieder ein.
Dies wiederholt sich 3x. (Soweit der aktuelle Status) – Vielen Dank an „Automatio“ ;-)

Nun soll im Anschluss der Zylinder erneut auslenken aber 5 sek. halten (ausgefahren bleiben) und sich erst dann wieder einziehen.
Dieser Prozess soll sich nicht wiederholen und nur einmal stattfinden.

Wie muss das Programm aussehen, bzw. erweitert werden?

Vorab schon mal besten Dank für Eure Unterstützung.

Beste Grüße Michael
 

Anhänge

  • Programm.jpg
    Programm.jpg
    160,9 KB · Aufrufe: 62
Erwartest du ein fertig Programm von uns?
Oder hast du bei der Realisierung ein bestimmtes Problem?
Wie weit bist du schon?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Hub,

ich wäre dankbar wenn Ihr mir erste Ansätze aufzeígt.

Was ich bis dato habe, habe ich in Anhang geschickt.

Leider ist das nicht viel, mir fehlt allerdings das Verständnis für die grundlegenden Funktionen der Programmierung.

Insbesondere wie ich das vorhandene Programm wie ober beschrieben erweitern kann.

Daher wäre ich überaus dankbar wenn Ihr helfen könnt.

VG Michael
 
Zuletzt bearbeitet:
Es selbstverständlich keine Schande, wenn man etwas nicht kann, aber warum beschäftigst Du Dich mit SPS-Programmierung wenn Du, wie Du selber sagst
Leider nicht viel und mir fehlt das Verständnis für die Grundlegen funktionen der Programmierung. Insbesondere wie ich das vorhandene Programm wie oben beschrieben erweitern kann.
?

Bisher handhaben wir in diesem Forum das so, das wir uns bei konkreten Fragen/Problem gezielt weiterhelfen aber eben nicht die Arbeit/Aufgaben/Hausaufgaben der anderen neben unseren Jobs machen.

Nun, zum konstruktiven Teil der Antwort:

Wie bist Du denn zu der bisherigen Lösung gekommen - für mich steht das im Widerspruch zu der oben zitierten Aussage.
Du beschreibst, das der Zylinder 3x ein- und ausfährt - Mit welcher Bedingung stoppt der Durchlauf nach 3x und nicht nach z.B. 10x?
Ich unterstelle mal, das Du die passende Hardware hast oder das Programm simulieren kannst - schau dem Programm mal online zu um zu verstehen was da passiert.

Welche Bedingungen müssten erfüllt sein, damit die zweite, die 5s-Bewegung ausgeführt werden darf?
Denk hierbei an das Verabeitungsprinzip einer SPS.

Ich hoffe diese Gedankenanstöße helfen Dir ein bisschen weiter.
 
Hallo Morymmus,

besten Dank für Deine mail.

Ja die Hardware zum Testen habe ich.

Im Grunde benötige ich lediglich einen Hinweis wie ich den vorhandenen Prozess um einen weiteren Durchlauf erweitern kann jedoch mit anderen Zeiten!

D.h. wenn der aktuelle Prozess (Zylinder 3x ein- und ausfährt - Zeit jeweils 2s) beendet ist, soll der Prozess 1x wiederholt werden (Zylinder 1x ein- und ausfährt ) allerdings soll die Ablaufzeit (Haltezeit Zylinder ausgefahren) nun 5s sein.

Ich weiß einfach nicht wie ich wo Anfangen soll um einen solchen verschachtelten Prozess zu gestalten :-(

Beste Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich wäre dankbar wenn Ihr mir erste Ansätze aufzeígt.

Wenn dir die Grundlagen der Programmierung fehlen, werden dir ein paar Ansätze/Anstöße nicht wirklich weiterhelfen.
Wenn du anderer Meinung bist, dann kann ich dir auch ein paar Ansätze aufzeigen.

Hast du für deine 2. Aufgabe schon irgendwas programmiert oder getestet?
z.B. Zeitglied für die 5 Sek.?
 
Hallo,

ich zitiere mich hier mal selber:

Mit welcher Bedingung stoppt der Durchlauf nach 3x und nicht nach z.B. 10x?
Welche Bedingungen müssten erfüllt sein, damit die zweite, die 5s-Bewegung ausgeführt werden darf?

Damit wollte ich eigentlich zu genau der Frage hinführen, wie man Programmabläufe nacheinander ablaufen lässt.

Bei der SPS werden ja nach dem einlesen der Hardware-Eingänge alle Programmzeilen oder Netzwerke (je nach Programmiersprache) abgearbeitet und deren jeweiliges Ergebnis im Ausgangspuffer geschrieben. Konkurrierende Zugriffe führen bei Siemens dazu, das die letzte Anweisung jeweils die vorherigen überschreibt. Ist das Programm abgearbeitet werden alle Ausgänge entsprechend dem Ausgangspuffer gleichzeitig gesetzt. Und das in Endlosschleife und wenigen ms Zykluszeit.

Also musst du im Programm eine Bedingung schaffen bzw. erkennen, die erfüllt sein muss, damit beim nächsten Durchlauf nun diese Zeile ausgeführt werden kann.

Beispiel:

- Der Ein-Taster muss gedrückt werden, Die Schutztüre muss zu sein - eine klassische UND-Verknüpfung. Ist diese Bedingung erfüllt darf ein Motor für 10s starten und die Verriegelung der Schutztüre wird gesetzt (Beides normale Ausgänge).
- Steht der Motor wieder darf die Schutztüre geöffnet werden. Hierzu müsstest Du also folgende Bedingungen haben: Der Motor darf nicht angesteuert sein, der Stillstandswächter muss den Stillstand der Welle bestätigen.

Dieses Beispiel dient nur dem Verständnis und stellt keine reale Anlage dar ;)

Betrachten wir nun den ersten Zyklus:
Kein Taster betätigt, Schutztüre offen, kein Ausgang gesetzt
Motor nicht angesteuert, Stillstand ist gegeben - keine Änderung am Ausgang.

2. Zyklus * die Schutztüre wird geschlossen *
Kein Taster betätigt, Schutztüre zu, kein Ausgang gesetzt
Motor nicht angesteuert, Stillstand ist gegeben - keine Änderung am Ausgang.

3. Zyklus * Der Starttaster wird gedrückt *
Start-Taster betätigt, Schutztüre zu, Motor wird angesteuert, Schutztüre verriegelt
Motor angesteuert, Stillstand ist nicht gegeben - keine Änderung am Ausgang.

4. Zyklus * Der Motor hat seine 10s abgelaufen *
Kein Taster betätigt, Schutztüre zu, Motor nicht angesteuert, Schutztüre verriegelt
Motor trudelt aus, Stillstand ist nicht gegeben - keine Änderung am Ausgang.

5. Zyklus * Motor steht *
Kein Taster betätigt, Schutztüre zu, kein Ausgang gesetzt
Motor nicht angesteuert, Stillstand ist gegeben - Schutztür-Verriegelung wird zurückgesetzt

Aber: man sieht, das das Öffnen der Schutztüre nicht erlaubt wird, wenn z.B. der Motor mech. blockiert ist: Ansteuerung ist an, Stillstandswächter meldet Stillstand => Schutztüre verriegelt. Erst nach 10s würde die Schutztüre frei.


Ich hoffe das Dir dieses Beispiel die Verkettung von Abläufen etwas verdeutlicht - bin leider gerade mobil unterwegs und kann daher keine Screenshots machen.
 
Oh, Vielen Dank!

Ich glaube du hast mich bereits ein wenig erleuchtet.

D.h. im Grunde muss ich schauen wann bzw. wo der erste Prozessschritt beendet ist muss dort eine neue Verknüpfung installieren?!

Ich werde mich heute abend mal damit befassen und euch auf dem laufenden Halten.

Ps. Dein Beispiel mit der Tür war schon nahe dran, bei mir gehts um eine Absperrwand innerhalb einer Art Abluftanlage mit Wegmesssystem und Kraftsensor

:) Also das Projekt wird wohl noch einiges an Hirnschmalz benötigen und fachlich Unterstützung. :)

In jedemfalle möchte ich mich schon mal bei euch bedanken.

Für weitere hilfreiche Inputs bin ich aber natürlich empfänglich.

BG Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie oben schon erwähnt: Hilfe zur Selbsthilfe ist das Maß aller Dinge ;)

Die von Dir benötigte Weiterschaltungen benötigt man in der Praxis immer wieder - je nach Programmiersprache gibt es hierzu verschiedene Lösungen, aber das Konzept die Weiterschaltung an Bedingungen zu knüpfen ist allen gemeinsam.
Und ich denke so lernst und verstehst Du mehr als wenn ich Dir ein fertiges Programm schicke.
 
Gebe meinen Vorrednern recht, ich habe wahrscheinlich schon mit dem kleinen Programmbeispiel zu viel geholfen.

Aber zurück zum Thema:
Ich glaube, dass du einiges überspringst.
Klar, du willst das es läuft und das so schnell wie möglich, aber so läuft das nicht immer.

Bevor du anfängst zu programmieren musst du erst genau verstehen was passieren soll, wie es zurückgesetzt wird, wann es wieder anfängt usw.
Danach machst du dir Gedanken darüber wie du das umsetzen kannst, bei X Abläufen brauchst du wahrscheinlich einen Zähler, nach X Zeit eine Verzögerung.
Einfach anfangen und dann nach 10 min sagen ich kann das nicht funktioniert beim programmieren nicht.
Es gehört viel Ausdauer und Durchhaltevermögen dazu sich sowas selbst bei zu bringen und du solltest nicht bei jedem Problem gleich hier im Forum eine Frage eröffnen.
Programmieren lernen dauert und wenn wir dir alles vorkauen, dann denkst du zwar "AHA!", aber selbst machen kannst du es dann trotzdem nicht.

Also ich empfehle dir, fang kleiner an.
Guck dir die Blöcke nochmals genau an, die Hilfe (F1) zu jedem Block erklärt sie relativ gut.
Dann such dir Übungen und übe übe übe (ohne Hilfe, dann lernst du es auch).

Und dein Programm ist mein Programm mit offenen Klemmen + Impulsgeber...
 
Zuletzt bearbeitet:
Und, schon weitergekommen? Hast Du unsere Anregungen umsetzen können?

Wie Automatio ganz richtig bemerkt hat ist die Analyse des Prozesses der erste Schritt, die Umsetzung in ein Programm kommt erst danach.
Ich habe schon mehrfach in Unterweisungen das Beispiel des Kaffee kochens herangezogen - vor allem weil man davon ausgehen kann, das jeder Mensch diesen Prozess kennt und versteht.

Zerleg doch mal als Übung den Vorgang "Kaffee kochen mit einer normalen Filtermaschine" in ein Flußdiagramm welches zeigt, welche Handlung auf welche folgt.
Wenn Du jetzt noch zwischen den Schritten neben die Verbindungspfeile schreibst, welche Bedingungen erfüllt sein müssen dann hast Du eine Prozessanalyse, die sich so in ein SPS-Programm übertragen läßt.

Diese Betrachtungsweise läßt sich auf eigentlich jeden Vorgang in unserem täglichen Leben anwenden und ist eine gute Übung ;)
 
Zurück
Oben