Brauche Hilfe bei einem Programm!!!

Non vitae, sed scholae discimus („Nicht für das Leben, sondern für die Schule lernen wir“) ?! Der Spruch ist gut...
Toki
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jo, habs hinbekommen, dass er in die Ausgangslage zurückfährt.
Hab jetzt aber noch ein Problem, beim ersten starten zieht K1 schon an, ohne dass S1 gedrückt werden muss, weil SL ja betätigt ist.
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    10,3 KB · Aufrufe: 39
Zuviel Werbung?
-> Hier kostenlos registrieren
Flanken hatten wir noch net, sollte doch irgendwie auch einfacher lösbar sein.
Kann es sein, dass du nur versuchst, statt zu planen?
Die Einschaltung kannst du durch Zuweisung doch sehr gut machen, ohne Impuls oder ähnliches.
Zum Beispiel so:
U E_STOP // Stoptaster als Öffner
U(
O E_EIN // Taster EIN
O M_EIN // Selbsthaltung
)
= M_EIN // Merker Selbsthaltung

Jetzt noch die Umschaltung rechts/linkslauf bauen.
Dann mit den beiden Merkern Die richtigen Ausgänge ansteuern.
Wenn es klappt, die Zeit noch hernehmen und dein Programm ist perfekt.

Jetzt hoffe ich doch, dass du das von AWL in FUP umbauen kannst.

bike
 
Zuletzt bearbeitet:
Ich brauch keine Selbsthaltung für den Eintaster.
Das Problem ist, dass wenn der Block schon ganz links liegt ist SL betätigt und dann brauch ich gar nicht den Eintaster betätigen, damit das Förderband losfährt - das tut es schon automatisch
 
Ich brauch keine Selbsthaltung für den Eintaster.
Das Problem ist, dass wenn der Block schon ganz links liegt ist SL betätigt und dann brauch ich gar nicht den Eintaster betätigen, damit das Förderband losfährt - das tut es schon automatisch
Um das geht es ja.
Vielleicht solltest du einmal nachdenken, warum wir dir solche Hinweise geben.
Du brauchst eine Ein-/Ausschaltung, eine Drehrichtungsumschaltung und später eine Zeit, wie du geschrieben hast.
Anders kann ich das nicht programmieren.

bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich brauch keine Selbsthaltung für den Eintaster.
Das Problem ist, dass wenn der Block schon ganz links liegt ist SL betätigt und dann brauch ich gar nicht den Eintaster betätigen, damit das Förderband losfährt - das tut es schon automatisch
Nein, das Problem ist, daß Du keine Ahnung hast und trotzdem keinen Rat annimmst!

Es ist Dir jetzt schon mehrfach gesagt worden, daß Du eine vernünftige Ein-/Aus-Funktion brauchst, denn darauf baut jede Anlage auf.
Aber es interessiert Dich nicht und deshalb funktioniert es auch nicht vernünftig.
 
Anders kann ich das nicht programmieren.
Ich auch nicht.

@Jumpinjack
Möglicherweise ist Dein Ansatz schon verkehrt und durch noch so viele Hilfsverknüpfungen nicht mehr zu korrigieren?
Denke nochmal über dieses Konzept nach:
Du brauchst eine Ein-/Ausschaltung, eine Drehrichtungsumschaltung und später eine Zeit

Den EIN-Merker haste schon von bike, den Richtungsmerker kannst Du genauso machen oder mit S/R.

2. Später soll noch ein Timer eingebaut werden, so das der Block jeweils für 2 sek. auf der rechten und der linken
Seite stehenbleibt.
Das kann man auch so formulieren: Immer wenn sich die Richtung ändert, dann soll für 2 Sekunden kein Schütz ein sein.
(der alte Schütz ist aus, weil der Block am Endschalter ist und sich außerdem die Richtung geändert hat und der Schütz
der neuen Richtung soll erst nach 2 Sekunden ein gehen)
Also: Richtungswechsel erkennen -> einen Timer starten -> solange der Timer läuft die Schütze aus/verbieten

Richtungswechsel erkennen:
Hier bieten sich Flanken positiv und negativ an, oder wenn Du die noch nicht kennst, dann hilft eine was-war-vorher/was-ist-jetzt-
Betrachtung. In AWL kann man auch einfach XOR nehmen, doch in Step7-FUP gibt es keine XOR-Box (aber eine Ersatzschaltung).

Nun hast Du alle Hilfssignale zusammen um die einfachen Netzwerke für die Schütze zu formulieren:
Ist eingeschaltet und die richtige Richtung aktiv und der Richtungswechsel-Timer nicht aktiv (und sicherheitshalber der Endschalter
dieser Richtung nicht betätigt und sicherheitshalber der andere Schütz nicht ein) = Schütz einschalten

Dein Programm würde auch ohne die "sicherheitshalber"-Bedingungen in Klammern funktionieren, man verknüpft die aber trotzdem,
damit man bei späteren Erweiterungen nicht aus Versehen was kaputtfährt.

Harald
 
Nein, das Problem ist, daß Du keine Ahnung hast und trotzdem keinen Rat annimmst!

Es ist Dir jetzt schon mehrfach gesagt worden, daß Du eine vernünftige Ein-/Aus-Funktion brauchst, denn darauf baut jede Anlage auf.
Aber es interessiert Dich nicht und deshalb funktioniert es auch nicht vernünftig.

@hucki

und Dein Problem ist es glaub ich dass Du es nicht verstehst dass es Leute gibt die sich erst seid kurzem mit dem Thema beschäftigen und nicht gleich jeden Expertenrat umsetzen können.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein, ich verstehe, "dass es Leute gibt die sich erst seid kurzem mit dem Thema beschäftigen und nicht gleich jeden Expertenrat umsetzen können", ich hab' ja schließlich auch mal angefangen.

Ich verstehe nur nicht, daß man diese Ratschläge immer und immer wieder ignoriert.

Mit Deinem Programm oben würdest Du vlt. auch Dein jetziges geschildertes Problem noch lösen können, um dann im nächsten Schritt wieder an der gleichen Sache hängen zu bleiben. Es bleibt einfach Gewurschtel.

Bike hat dir doch ganz klar den 1.Schritt gezeigt und darauf baut nunmal alles weitere auf. Warum also nicht damit anfangen?
Das bedeutet ja nicht, daß du den Rest nicht (mit leichten Veränderungen)verwenden kannst.
 
@hucki

und Dein Problem ist es glaub ich dass Du es nicht verstehst dass es Leute gibt die sich erst seid kurzem mit dem Thema beschäftigen und nicht gleich jeden Expertenrat umsetzen können.

Also ich sehe nur, dass du ein Problem hast und dermassen beratungsresistent bist.
hucki hat dir nur geschrieben, dass du langsam anfangen solltest zu lesen und zu denken und dann erst an die Tasten gehen.
Wenn dir Leute schon fast alles auf dem silbernen Tablett servieren, dann nimm es doch an.

Ist es so schwer einfach eingestehen, dass der erste Weg falsch war?

bike
 
Nein natürlich nicht. Ich stehe zu meinen Fehlern. Und beratungsresistent bin ich wirklich nicht.
Allerdings weiss ich immer noch nicht, ob 1. meine geposteten Netzwerke richtig sind ( siehe #23) und
2. versteh ich nicht was ihr genau mit einer Start/Stop Funktion meint.
Habe vorhin diese "Selbsthaltung" von bike mit Merker gemacht, hat nicht funktioniert.

Ich muss doch im 2. Netzwerk K1 für den rechtslauf programmieren
und im 3. Netzwerk K2 für den linkslauf programmieren.
Und im 4. Netzwerk dafür sorgen, dass der Block wieder komplett nach links fährt, wenn ich auf Stop drücke, was auch funktioniert.

Aber damit die Anlage überhaupt starten kann, muss SL ein Einsignal haben UND S1 bzw. M1 ein Einsignal haben.

Und das widerspricht sich doch irgendwie weil wenn der Block links sitzt schon automatisch losfährt weil SL geschlossen ist.

Anscheinend fehlt mir die SPS Erfahrung ich gebs auf - danke für Eure Hilfe!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Aufgeben ist auch nicht der richtige Weg.;)


Du hast doch ein ODER am SET vom RS_Glied rechts.
Wenn du das z.B. durch ein UND ersetzt und eine saubere Start/Stop-Funktion mit einem EIN-Merker hast, läuft Dein Band auch nicht gleich los.

Dann wurde Dir als nächsten Schritt geraten, einen Merker als Richtungsangabe zu nutzen. Also z.B. RS-Glied und die beiden Endschalter dran.

Den EIN- und den Richtungs-Merker verknüpfst Du dann als = Zuweisung zu den beiden Ausgängen (diese sicherheitshalber noch gegeneinander veriegeln)

Deine Ende-Funktion nutzt Du dann, um ein Stop auszulösen.
 
Wenn der Stop-Taster gedrückt wird, dann muß das Fließband SOFORT stehenbleiben. Auf der Stelle. Egal wo es gerade ist.
Du hast den Stop-Taster sogar "Notaus" genannt!
Dein Problem ist, daß Dein Programm nach dem Stop nicht mehr weiß, in welche Richtung es zuletzt gefahren ist, wenn es
nicht zufällig genau auf einem Endschalter gestoppt wurde.
Das ist der Grund für den zusätzlichen von Ein/Aus unabhängigen Richtungsmerker.

Und eine Anlage, die alleine deshalb losfährt, weil ein Endschalter betätigt wurde, die darf es nicht geben.
Das ist der Grund, warum Du einen Ein/Aus-Merker brauchst, der erst beim Drücken des Start-Tasters aktiv wird.

Da das Stop irgendwo (auch zwischen den Endschaltern!) kommen kann, muß das Fließband überall wieder eingeschaltet
werden können, nicht nur auf dem Endschalter SL. Das Fließband soll dann nach dem wieder-Einschalten zunächst in der
vorherigen Richtung bis zum Endschalter weiterfahren und erst da umdrehen.

Ich würde mal so vorschlagen:
1. Netwerk: Ein/Aus-Merker
2. Netwerk: Richtungsmerker, Erkennung Richtungswechsel und Richtungs-Umschalt-Timer (können auch 2 oder 3 Netzwerke sein)
3. Netwerk: Schützzuweisung K1
4. Netwerk: Schützzuweisung K2

Beim Ein/Aus-Merker würde ich sogar als Stop-Bedingung einfügen, wenn beide Endschalter gleichzeitig betätigt sind.
Dann ist irgendwas an der Anlage nicht in Ordnung und das Fließband sollte sicherheitshalber stoppen.

Harald
 
Wenn der Stop-Taster gedrückt wird, dann muß das Fließband SOFORT stehenbleiben. Auf der Stelle. Egal wo es gerade ist.
Ist wahrscheinlich in der Aufgabenstellung etwas unglücklich formuliert:
- wenn's ein Not-Aus ist, muß das Band natürlich sofort stehen bleiben
- beim Druck auf einen Ende-Taster darf das Band noch bis zur Grundstellung fahren
Oder seh' ich das falsch?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jo, ist wohl etwas unglücklich formuliert.

Der Taster S0 ist als "Stop (Notaus)" bezeichnet aber die gewollte Funktion ist so beschrieben:
wenn der Notaus S0 gedrückt wird und der Block gerade nach rechts fährt soll er ganz nach rechts fahren und dann zurück nach links und SL betätigen.
Fährt der Block gerade nach links, wenn ich den Notaus drücke soll er nur nach links fahren und SL betätigen (alsoo immer in die Anfangsposition).
.. und soll dann stehenbleiben.

Wenn es tatsächlich wie beschrieben ein Zyklus-Beenden-Taster sein soll, dann muß der Taster nicht den Ein-Merker rücksetzen, sondern einen
Beenden-Merker setzen und wenn der Block an SL ankommt schaltet sich der Ein-Merker aus. Der Beenden-Merker wird mit dem Start-Taster gelöscht
oder mit SL und Ein-Merker ist aus. Man muß noch aufpassen, daß der Stop-Taster Vorrang vor dem Start-Taster hat.
Wenn das Programm die saubere Struktur wie vorgeschlagen hätte, dann liese sich diese abschließende Grundstellungsfahrt sehr leicht einfügen.

Mit dem Programmstand von Beitrag #23 war Jumpinjack da schon ziemlich nahe an der gewünschten Funktion dran, nur daß er das Pech hat, daß der
ende-Merker beim Einschalten der SPS nicht gesetzt ist und das Fließband deshalb beim ersten mal von alleine losfährt.
Nun kann man vorschlagen, das Netzwerk 3 vor das Netzwerk 1 zu setzen und den ende-Merker im 1. Run-Zyklus zu setzen oder den ende-Merker 0-aktiv
zu machen oder den mehrfach vorgeschlagenen zusätzlichen Ein-Merker zu benutzen. Der Richtungs-Umschalt-Timer muß nun auch noch vor dem Netzwerk 1
erzeugt werden und direkt vor K1 und K2 verknüpft werden.

Doch ich muß dazu sagen, daß ich diese Art zu programmieren hasse wie die Pest, weil solcher Code sehr schwer änderbar ist (jede Änderung ist an
mehreren Stellen nötig) und bei größeren Verknüpfungen meist auch Macken zeigt, wenn etwas unvorgesehenes passiert, z.B. ein momentan eigentlich
unbeteiligter Sensor betätigt wird.

Harald
 
Doch ich muß dazu sagen, daß ich diese Art zu programmieren hasse wie die Pest, weil solcher Code sehr schwer änderbar ist (jede Änderung ist an
mehreren Stellen nötig) und bei größeren Verknüpfungen meist auch Macken zeigt, wenn etwas unvorgesehenes passiert, z.B. ein momentan eigentlich
unbeteiligter Sensor betätigt wird.

Harald

Geht mir ebenso. Widerspricht jeder Idee verständlich und strukturiert zu programmieren.
Schön, dass so leicht von dem Nachwuchs? resigniert wird.
Jetzt wird kräftig geheult, es wird schon jemand erbarmen, der die Lösung schreibt.

Die Lösung steht doch schon in dem Thread, ist das so schwer dies zu verstehen?

Nach dem Ein-/Ausschalten einen Merker für rechts/links mit setzen/rücksetzen durch die Endschalter.

Ein Netzwerk mit einem SA Timer für den Stillstand am Ende der Bewegung.

Ein Netzwerk für Linkslauf mit Einschaltung, Zeitglied und Drehrichtung, das nächste für Rechtslauf mit Einschaltung, Zeitglied und Drehrichtung.

Was funktioniert bei der Selbsthaltung nicht?
Wo bitte ist das Problem?
Du hast daran gedacht, dass der S0 ein Öffner bei dem Beispiel ist?

bike

P.S: Eigentlich ist es doch schön, wenn der Nachwuchs, der nichts tun will, aufgibt.
Sonst schlagen die bei uns im Betrieb auf, mit guten Noten in PLC Programmierung, doch die Noten sind aus dem Netz gekommen.
 
So Ihr Experten! Fertig ist es! Wohl doch net so faul die "Jugend von heute"!

VAR
K1: BOOL; (*Schütz rechtslauf*)
K2: BOOL; (*Schütz linkslauf*)
S0: BOOL; (*Austaster Öffner*)
S1: BOOL; (*Starttaster Schliesser*)
SL: BOOL; (*Endschalter links Schliesser*)
SR:BOOL; (*Endschalter rechts Schliesser*)
rechts: RS;
links: RS;
Start: RS;
Stop: RS;
M1: BOOL;
M2: BOOL;
END_VAR

 

Anhänge

  • Programm1.bmp
    584,4 KB · Aufrufe: 46
Zurück
Oben