Step 7 Schrittkette mit mehreren Varianten/Abläufen

stuttx

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe SPS-Freunde,

ich habe ein kleines Problem! :)


1. CPU TYP : 315-2DP
2. Verwendete Softwareversion des Projektierungssystems:
Step7 V5.5

Ich schreibe eine Schrittkette mit mehreren Varianten (Programm 1 - 4). Habe einen FC geschrieben, den ich dann mehrfach im OB aufrufe und nur anders beschalte (1, 2, 3 oder 4 Eingabe über OP) über den EN (ENABLE) Eingang. (symbolische Adressierung). Soweit so gut!!

Mein Problem ist, wenn ich zB. in der Variante 1 (Programm 1) drin bin und zB mich im Schritt 4 befinde und jetzt der ENABLE-Eingang weggenommen wird, dann bleiben meine rücksetzdominanten Merker aktiviert, und lassen sich nicht mehr reseten, weil der Baustein nicht mehr durchlaufen wird!!
Wie kann ich das verhindern, oder besser gesagt, wie werden die Schritte in der Variante 1 deaktviert?

Ich hoffe, ich habe mich eingermaßen klar ausgerückt. ;)


Vielen Dank, schonmal im voraus. :ROFLMAO:


Gruß,
stuttx
 
Du schaltest also Deine Schrittketten im laufenden Betrieb um?
Das halte ich schon prinzipiell für bedenklich - natürlich kommt das auf den Prozeß an, aber "Schrittkette" sagt ja, daß ich etwas in Schritten abarbeite und einer auf den anderen aufbaut.
Also würde ich die Varianten, also die Schrittketten nur in einem definierten Zustand (Anlage steht) umschalten.
Besteht dann Dein Problem immer noch?

Wenn Du das so machen mußt, dann mußt Du halt Deine Merker beim Umschalten (den Umschaltmoment mußt Du erkennen) händisch in einem Programmteil zurücksetzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt eigentlich nur eine "richtige" Art. die Schnittstelle nicht über ENABLE abschalten sondern weiter durchlaufen und zB einen Reset INPUT oder einen aktiv INPUT programmieren der
die notwendigen Abschaltungen händelt.

peter(R)
 
mich im Schritt 4 befinde und jetzt der ENABLE-Eingang weggenommen wird, dann bleiben meine rücksetzdominanten Merker aktiviert, und lassen sich nicht mehr reseten, weil der Baustein nicht mehr durchlaufen wird!!
Kann Peter nur zustimmen. Es ist selten gut seinen Baustein komplett mir dem EN abzuschalten.
Wie du schon festgestellt hast, wird dein Code da drinnen dann nicht mehr aufgerufen und du kannst mit dem Code im Baustein auch auf nix mehr reagieren.

bleiben meine rücksetzdominanten Merker aktiviert
Das hat eigentlich nix mit "rücksetzdominant" zu tun. Das Problem betrifft jeden Wert/Zustand der statisch gespeichert wird der nicht extern vom FC zurückgesetzt/geändert wird. Wenn der nicht-aufgerufene FC es nicht tut, wer soll es dann tun. :)

Komplette Programmteile/Bausteine auf Grund von Programmbedingungen nicht mehr aufzurufen führt meistens zu Problemen,
weil man die Funktion beim Programmieren oft gar nicht drauf auslegt.
Abhängig von Art und Inhalt kann es sogar unmöglich sein, seine Funktion so zu schreiben das sie sich beim ersten EN-Aufruf automisch selbst initialisiert.
Wie denn auch man kann im inneren (ohne FC-externe Hilfe) ja nichts mehr machen.

Selbst wenn man es hinbekommt, eine Erweiterung in der Zukunft und schon passt es nicht mehr.

Das einzig vernünftige ist, wenn du dir einen eigenen Enable/Reset/Stop/wieauchimmerduihnnennst-Eingang am FC einfügst und dann im FC korrekt reagierst.
 
Ich würde eine schrittkette so aufbauen, das diese je nach Programm sich unterschiedlich verhält. Und fertig ist es. Bzw die einzelnen Komponenten mit kleinen schrittketten versehen und eine Schrittketten managed Reihenfolge etc.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde es auch anders machen, aber um dein Problem zu behebe....

Würde ich an den Merker, mit dem du die jeweilige Schrittkette aufrufst, eine negative Flanke hängen und mit dieser eine 0 in den Bereich der in der Schrittkette beschriebenen Merker transferieren (MOVE-Box). Das musst du aber z.B. im OB1 machen...

Gruß Andreas
 
Hallo liebe Kollegen,

ich bin erstaunt wie viele schon bereit am Problem betreiligen. Vielen Dank schon mal!! :razz:

Ok, auf deutsch gesagt, ich programmiere da einen qutasch zusammen :ROFLMAO:.

Ich wollte es mir ganz einfach machen, indem ich die einzelnen Programme über das OP auswähle und den ensprechende FC aktiviere. Natürlich könnte ich es so machen und es funktioniert auch, aber nur wenn die Einsteller/Bediener das jeweilige Programm bis zum Grundschritt fahren und dann können sie problemlos das Programm wechseln. Ich mache mir nur Sorgen, weil der Prüfplatz ins Ausland geht und ich bezweifle, dass sie es sich merken werden das sie das Programm nur im Grundschritt wechseln sollen/können!!

Wie sollte ich dann einen Tippbetrieb programmieren? Bis jetzt habe ich es so gemacht wie mit den Programmen 1 - 4, ich aktiviere den "FC-Tippbetrieb" über den EN Eingang mit einem Bildmerker vom OP und sie können sich dann mit der F1 Taste "durchtippen". Allerdings MÜSSEN sie hier auch im Grundschritt stehen bleiben, sonst wäre es fatal!!

Danke für Eure Anteilnahme :ROFLMAO:.

Ciao
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich persönlich würde so ein Programm nicht ruhigen Gewissens ins Ausland geben. Gerade wenn etwas so weit weg ist, darf es den Bediener nicht möglich sein, durch eine Fehlbedienung die Anlage zu zerstören. Einen generellen Reset einzubauen bzw die Programmauswahl nur in einigen Punkten zu erlauben sollte ja keine großes Problem darstellen.
 
Danke.

Wie kann ich die Veränderung vom Programm über das OP verhindern, wenn der Prüfplatz nicht in Grundstellung steht? :shock:
Er soll erst gar nicht eine andere Zahl im OP eingeben können. Die Veränderung der ProgrammZAHL (1-4) sollte nur im Grundschritt erfolgen können.
 
Zuletzt bearbeitet:
Das OP darf nicht direkt in den Programmablauf eingreifen, sondern nur einen "Wechselwunsch" anmelden. Ob das Wechseln möglich ist, wann und wie (ggf. über eine weitere Schrittkette), das entscheidet das Programm selber.

Harald
 
Auf die "Bedienbarkeit" kann man sich aber nicht verlassen, das kann höchstens eine Information für den Bediener sein. Prüfen und entscheiden muß das SPS-Programm trotzdem selber.

Harald
 
... und dann wie in Beitrag #5 von SPS-Freak verfahren.
Nur in der Schrittkette (wenn alles berücksichtigt ist) kannst du entscheiden, was wann möglich ist.
Denk vielleicht mal über alternative Zweige nach ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn Du die Schrittkette beginnst, setzte Du Dir einen Merker, daß die Schrittkette läuft.
Wenn sie beendet wird, setzt Du ihn zurück.
Im Panel kannst Du über Variable das Bedienelement ein-/ausblenden oder de-/aktivieren.
Wenn das ein Testplatz ist, dann starte ich eine Prüfung, die Bedienung des Panels wird gesperrt, alle Werte ermittelt und protokolliert und erst wenn das Bauteil mit einem Ergebnis aus der Maschine kommt, wird die Bedienung wieder freigegeben. Die Meßwerte/Ergebnisse werden doch auch sicherlich protokolliert... Dann mußt Du auch verhindern, daß Bauteile durcheinander kommen oder geschummelt werden kann bei der Prüfung...

Mit dem ENABLE das hatte ich überlesen.
Da muß ich meinen Vorrednern recht geben. Das ist eine suboptimale Lösung.
Programmierst Du das in GRAPH oder in einer anderen Sprache?
In Graph kann man übersichtlich mehrere parallele Pfade erstellen, dann hast Du die Schrittketten alle zusammen in einem Baustein. Und gleiche Schritte werden auch an gleicher Stelle verarbeitet. Das ist übersichtlicher.
Wenn Du das in einer anderen Sprache machst, solltest Du auf jeden Fall ein Netzwerk für Initialisierung/Rücksetzen einbauen. Dieses wird dann am Beginn der Schittkette und mit Wechsel der Schrittkette aufgerufen.
Und einen Befehl "Grundstellung" solltest Du grundsätzlich einbauen. Ich weiß ja nicht, was Du mit der Schrittkette machst. Aber es braucht sich nur mal was an der Mechanik verklemmen, das Bauteil ist fehlerhaft, ein Sensor ist kaputt, .... dann muß der Bediener die Möglichkeit haben, wenigstens alles auf Anfang zu setzen. Sonst kannst Du der Maschine gleich hinterherreisen.

Grundsätzlich ist es immer fatal, Annahmen über eine Maschine oder einen Bedienvorgang zu treffen: Die Wahrheit sieht immer anders aus. Wenn Du also sagst "Das muß genau so sein, sonst steht die Maschine", solltest Du Dir Gedanken über die Programmierung machen. Ich habe die Erfahrung gemacht, wenn ich solche Annahmen treffe und sage "das kommt nur alle 10 Jahre mal vor", dann ist das in den ersten 10 Minuten passiert...

Tippbetrieb nur aus der Grundstellung heraus zu erlauben ist in Ordnung. Allerdings muß ich mich wiederholen: Der Bediener muß die Anlage aus jedem beliebigen Zustand heraus in die Grundstellung bekommen - ohne Aufwand.

Gruß
JS
 
Hi,

vielen Dank schon mal. :ROFLMAO:

Ich programmiere in FUP/AWL. Habe mir auch Gedanken über den Graphen gemacht, mich aber letztendlich doch dagegen entschieden! Jetzt muss ich damit leben :cool:.

Soweit habe ich dich sehr gut verstanden. Wie kann ich die komplette Bedienbarkeit vom OP sperren?
Eine "Grundstellungsfahrt" habe ich einprogrammiert und es funktioniert in jeder Lage. Eine Fehlerauswertung ist auch aktiv und funktioniert. Ich frage die Schritte einzeln ab und zähle (Zeitglied) die länge der Schritte um den Fehler auszuwerten.


Gruß,
stuttx :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... und dann wie in Beitrag #5 von SPS-Freak verfahren.
Nur in der Schrittkette (wenn alles berücksichtigt ist) kannst du entscheiden, was wann möglich ist.
Denk vielleicht mal über alternative Zweige nach ...

Gruß
Larry

Könntest du mir bitte ein Beispiel zeigen? Vllt ein kleines Programm? :ROFLMAO:


Vielen Dank.

Gruß,
stuttx
 
einen Busy programmieren am anfang der SK setzen am ende der SK zurück setzen. Variablen vom HMI mit "und nicht" Busy verknüpfen und damit dann der Variable zuweisen die einen Programm Wechsel aktiviert.

oder


U Grundstellung
L Zahl vom OP
T HMI DB (oder auch Merker)
----------------
UN Grundstellung
L HMI DB (oder auch Merker)
T Zahl vom OP

das sind 2 von vielen Möglichkeiten!
 
Eine Schrittkette dient "uns" um den Überblick zu haben. Deiner Anlage wird es relativ egal sein, ob sie mit einer tollen Schrittkette läuft. Klick/Klack Logik ist manchmal auch OK. Wenn Deine Anlage wirklich darauf ausgelegt ist "mitten drin" von Produkt A auf Produkt B umzustellen, hmm. Dafür sollte es vom Hersteller eine Anweisung geben und für Dich auch z.B. INI A belegt oder INI B belegt oder Bediener tippt A/B. Alles andere ist reines "raten". Es ist eine gute Variante, wenn eine Schrittkette zuerst einmal prüft, was sie tun sollte z.B. im Schritt 0/1, Beispiel: Fahre mal 10 Sekunden vor, kein INI, fahre 10 Sekunen rück kein INI, ich bin wahrscheinlich leer (alles super). S7 GRAPH ist da wirklich sehr mächtig, wenn der Kunde das akzeptiert, würde ich damit programmieren.
 
Zurück
Oben