Probleme mit Betriebsartwahl

anne

Level-1
Beiträge
347
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Ihr,

ich hänge hier mal wieder fest…

Es geht um die Anwahl einer Betriebsart. Mittels eines Drehschalters sollen über zwei Eingänge drei unterschiedliche Betriebsarten (Automatik, Hand und Takt) anwählbar sein.

Das Ganze habe ich so programmiert, dass je nach Schalterstellung einmal Merker "Auto", einmal Merker "Hand" und einmal Merker "Takt" gesetzt werden, wobei die jeweils beiden anderen Merker rückgesetzt werden. Das Umschalten zwischen den Betriebsarten ist nur möglich, wenn der Ein-Taster der Maschine nicht gedrückt ist - dieser schaltet die Maschine in den Run-Status. Ist die Maschine im Run-Modus, so wird die gewählte Betriebsart mittels einer Kontrolllampe (leuchten, blinken, schnell blinken) angezeigt.

Das funktioniert so auch prima.

ABER:

Wenn die SPS stromlos gemacht wird und nach Spannungswiederkehr zu früh der Ein-Taster gedrückt wird, so wird fälschlicherweise immer die Betriebsart ausgewählt, bei der beide Eingänge nicht vorhanden sein müssen. Obwohl die Eingänge nach Wiederanlauf schon richtig in der SPS angezeigt werden, wurden diese offensichtlich noch nicht eingelesen.

Wie könnte ich das lösen, dass nach einem Wiederanlauf der SPS und sofortigem Drücken des Tasters für den Run-Modus auch die Betriebsart gewählt wird, die durch den Drehschalter vorgegeben ist.

Das Ganze ist mit einer S7-1200 programmiert.

Lieben Dank…
 
Hallo,

kontrolliere doch mal in welcher Reihenfolge im SPS-Zyklus die Merker für die Betriebsart und den RunModus gebildet werden. Meine Vermutung ist, dass zuerst der RunModus gebildet wird und danach die Betriebsart. Wenn ich richtig getippt habe, sollte ein Ändern der Reihenfolge der Bearbeitung bereits den gewünschten Erfolg bringen.

Gruss

_________________________________________________
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Supi, lieben Dank @ 0815prog!

Ja, du hattest mit deiner Vermutung recht - zuerst wurde der Run-Modus gebildet und erst dann die einzelnen Merker für die Betriebsart.

Habe das jetzt mal umgestellt und glaube es funktioniert.

Nur weiß ich noch nicht recht warum... :confused:
 
Also die Spannungsversorgung für den Ein-Taster ist die selbe wenn am BA Schalter?
Die Signal kommen nicht unterschiedlich oder so?

Würde da einmal meinen Code überprüfen auf die Setz und Rücksetzbedingungen ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Boxi,

nun jetzt funktioniert es schon - 0815prog hatte hier absolut den richtigen Riecher. Das Umstellen der Netzwerke brachte den Erfolg!

@0815prog:

Nur ist mir noch nicht klar, warum?

Der Merker ("Betrieb"), der durch das Drücken des Ein-Tasters gesetzt wird, kommt im Grunde von einem Sicherheitsrelais, also Sicherheit vorhanden, kein Notaus gedrückt, kein Motorschutz ausgelöst.

Warum wurde (vor der Umstellung der Netzwerke) beim Wiederanlauf der SPS immer nur der Merker "Takt" angewählt, obgleich die UND-Bedingungen im Moment des Hochlaufs gar nicht zutreffend waren?

Alte Programmierung für einen Betriebszustand:

Code:
NW1:

U ...
UN ...
UN ...
S "Betrieb"
UN ...
U ...
U ...
R "Betrieb"


NW2:

UN E 0.0
UN E 0.1
UN "Betrieb"
R "Hand"
R "Auto"
S "Takt"
Nach Setzen des NW1 unter NW2 klappt es!
 
Zuletzt bearbeitet:
Hallo anne,

wenn die anderen Betriebsarten auch so programmiert sind, dann wurde in der ursprünglichen Variante (vor der Umstellung) aus meiner Sicht keine der Betriebsarten angewählt, sondern nur "Betrieb" gesetzt.
Vielleicht hat Deine Anlage nur so reagiert, wie wenn der Merker "Takt" gesetzt wäre.

Gruss
_______________________________________________
 
Hallo 0815prog,

ja die anderen beiden Betriebsarten sind nach dem gleichen Prinzip programmiert. Nach dem Wiederanlauf wurde in der Online-Sicht angezeigt, dass die Betriebsart "Takt" angewählt ist - was auch durch ein schnelles Blinken der Kontrolllampe angezeigt wurde.

Meine Vorstellung war, dass evtl. zum Zeitpunkt des SPS-Hochlaufs die beiden Eingänge E0.0 und E0.1 noch nicht eingelesen wurden, so dass kurzzeitig die UND-Bedingung UN E0.0 sowie UN E0.1 erfüllt war. Dagegen spricht jedoch, dass ja dann die Bedingung UN "Betrieb" nicht erfüllt war.

Warum aber klappt es jetzt, nachdem ich das NW1 ganz hinten angestellt habe?

Danke für die Hilfe!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine Vorstellung war, dass evtl. zum Zeitpunkt des SPS-Hochlaufs die beiden Eingänge E0.0 und E0.1 noch nicht eingelesen wurden, so dass kurzzeitig die UND-Bedingung UN E0.0 sowie UN E0.1 erfüllt war.
Bei solchen Abfragen (UN Eingang) sollte immer sichergestellt sein, dass die Versorgungsspannung ansteht.
Da kann man z.B: 24V direkt auf einen Eingang legen und diesen dann mit "U 24V_Versorgung" abfragen oder eventuell "U Not-Aus-Kreis geschlossen".
 
@anne

Vielleicht wird der Merker für den "Takt" bereits beim Ausschalten gesetzt und wäre somit beim Eischalten bereits gesetzt!?
Wenn die CPU noch einen Programmdurchlauf schafft, obwohl die Eingänge bereits spannungslos sind.

_______________________________________________
Gruss
 
Nein, 0815prog - vor dem Ausschalten war die Betriebsart "Auto" gesetzt.

Dann bleibt das wohl ein Rätsel - naja zumindest klappt es nach Umstellung der Netzwerke, warum auch immer... :confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Doch anne, ich hatte das so gedacht:

- Anlage Ein, Betriebsart "Auto"
- Spannung wird abgeschaltet
- Eingänge für Betriebsartenanwahl sind unter der High-Grenze
- CPU macht noch einen Programmdurchlauf und setzt die Betriebsart auf "Takt" weil Eingänge eben nicht mehr 1-Signal führen
- CPU geht auch Aus
- Spannung kommt wieder
- Betriebsart "Takt" ist noch gesetzt
- Ein-Taster ist bereits gedrückt und setzt den Merker für "Betrieb"

Durch die Änderung der Reihenfolge wird zuerst die Betriebsart gesetzt und danach erst "Betrieb" (wodurch ja eine Änderung der Betriebsart dann verriegelt wird).

_____________________________________________
Gruss
 
Doch anne, ich hatte das so gedacht:

- Anlage Ein, Betriebsart "Auto"
- Spannung wird abgeschaltet
- Eingänge für Betriebsartenanwahl sind unter der High-Grenze
- CPU macht noch einen Programmdurchlauf und setzt die Betriebsart auf "Takt" weil Eingänge eben nicht mehr 1-Signal führen
- CPU geht auch Aus
- Spannung kommt wieder
- Betriebsart "Takt" ist noch gesetzt
- Ein-Taster ist bereits gedrückt und setzt den Merker für "Betrieb"
_____________________________________________
Gruss

Hm, ich wusste nicht, dass die CPU evtl. noch einen Programmdurchlauf macht, wenn die Spannung abgeschaltet wurde. Ist das die Regel?

D.h. also, dass die Betiebsart "Takt" eigentlich nicht beim Wiederanlauf der SPS sondern vielmehr bei deren Abschaltung gesetzt wird, richtig?

@vierlagig: Ja, ursprünglich hatte ich für die einzlnen Betriebsart-Merker remanente Merker verwendet - allerdings hat es auch mit nicht-remanenten Merkern nicht funktioniert. Erst das Umstellen der NW hat Abhilfe gebracht!
 
Hm, ich wusste nicht, dass die CPU evtl. noch einen Programmdurchlauf macht, wenn die Spannung abgeschaltet wurde. Ist das die Regel?

Solange das Netzteil nicht unter die LOW-Grenze (18.0 V ~) geht, läuft alles normal. Ein Kondensator kann noch ein bisschen was abfangen. Dann wirds dunkel. Deine E's könnten davor schon 0-volt liefern, weil evtl. separates Netzteil.
 
Du kannst im OB1 aus den TEMP Daten den Wiederanlauf / Neustart erkennen und ggf. einen Sperr- bzw. Verzögerungstimer programmieren damit nicht zu früh gestartet wird und die ausgewählte Betreibsart sicher erkannt wurde.

Grad nach einem Neustart hat die SPS "alle Zeit der Welt" (1, 2, 3, ... 10 Zyklen) um das Programm zu initialisieren.

Hiermit kannst Du bestimmen, wann die Anlage Betrteibsbereit ist.

Liegen die Eingänge (Betreib und Modis) im gleichen Byte?

Wenn es sich bei den Eingänge um Dezentrale handelt, kann es auch am BUS liegen.
 
Daher mein Vorschlag mit dem High Eingang.
Dann wird nicht irgendwas gesetzt weil die Spannung weg geht.

Ja Paule, vielen Dank für diesen Tipp - werde das noch einbauen...

Du kannst im OB1 aus den TEMP Daten den Wiederanlauf / Neustart erkennen und ggf. einen Sperr- bzw. Verzögerungstimer programmieren damit nicht zu früh gestartet wird und die ausgewählte Betreibsart sicher erkannt wurde.
Danke Michael, nur wie geht das? Geht diese Wiederanlauferkennung über ein best. Bit in den Temp-Dateien?

Und ja, die Eingänge liegen im gleichen Byte.

Dank' euch für's Gedanken machen...
 
Zurück
Oben