Merker wird gesetzt, schaltet aber nicht im OB1

Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
Ich werde die Schrittkette jetzt gleich mal ändern. Interessenhalber frage ich mal: Wieso macht man den die Ausgänge an das Ende der Kette?

Auch der Rücksprung zu CAS1 ist nicht ideal. Das solltest Du so nicht lösen.
Ich hatte die Programmierung vorher in Grafcet gemacht, aber aufgrund der Größe musste ich das Programm noch mal ändern. Habe allerdings keinen Plan, wie man einen Rücksprung anders lösen kann?
Vielen Dank

Gruß Danny
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So hab nun auch mal das Programm gesichtet, gehe mal davon aus das es der letzte Stand ist.

1) In NW4 musst du M91.2 noch zurücksetzen.
2) Prüfe mal ob der M27.5 = TRUE ist, möglicherweise wird der Übergang direkt weitergeschaltet, die 500ms von T17 sind im Beobachten über kaum zu sehen. Einfach auch mal T17 zum testen auf z.B. 5s setzen.
3) den Eingang E2.1 würde ich symbolisch umbenennen , es wird wohl kaum die Automatik mit Nothalt betätigt eingeschaltet ;)

Viel Spass mit BergerLahr
 
Guten Morgen,
Ich werde die Schrittkette jetzt gleich mal ändern. Interessenhalber frage ich mal: Wieso macht man den die Ausgänge an das Ende der Kette?


Ich hatte die Programmierung vorher in Grafcet gemacht, aber aufgrund der Größe musste ich das Programm noch mal ändern. Habe allerdings keinen Plan, wie man einen Rücksprung anders lösen kann?
Vielen Dank

Gruß Danny

Es gibt zig Möglichkeiten ans Ziel zu kommen. Ich habe das wie wohl viele andere Programmierer so gelernt. Die Schrittmerker verodern um Ausgänge passend zu den jeweiligen Schritten einzuschalten. Als Gerüst ist das sicher nicht verkehrt und man verliert nicht die Übersicht. In Deinem Fall führt die Mehrfachzuweisung von A1.3 ja auch zu ungewollten Reaktionen. Welchen Stil auch immer Du anwenden willst, die Mehrfachzuweisung geht mit großer Sicherheit in die Hose...

Der Rücksprung ist nicht schön, weil es passieren kann, dass die Bedingung nicht erfüllt wird. Das SPS-Programm bleibt dann in dieser Schleife hängen. Andere Programmteile können nicht abgearbeitet werden und es könnte zur Zyklusüberschreitung kommen.
 
Wieso macht man den die Ausgänge an das Ende der Kette?
Damit es nur eine einzige Ausgangszuweisung im Programm gibt. (wird sogar von vielen Auftraggebern extra so verlangt!)
Versuche mal in einem Programm zu beobachten, wieso ein Ausgang plötzlich Ein-/Ausgeschaltet wurde, wenn es 27 Stellen mit Schreibzugriffen im Programm gibt ...
NACHTRAG:
Außerdem: Je mehr Ausgangszuweisungen es gibt, desto aufwendiger wird es Sicherzustellen, daß der Ausgang garantiert immer alle Verriegelungen beachtet.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
1)Welchen Stil auch immer Du anwenden willst, die Mehrfachzuweisung geht mit großer Sicherheit in die Hose...

2) Der Rücksprung ist nicht schön, weil es passieren kann, dass die Bedingung nicht erfüllt wird. Das SPS-Programm bleibt dann in dieser Schleife hängen.
1)Vielen Dank erstmal, gibt es das Problem mit Mehrfachzuweisungen nur bei Ausgängen oder auch bei Merkern? Also ich kann in einem Netzwerk einen Ausgang immer nur einmal Ein- bzw. Ausschalten oder wie? Kann ich einen Merker beliebig oft schalten?

2) Ist das ohne dem Case auch möglich, indem ich einfach sage, dass der entsprechende Merker gesetzt und beim nächsten Zyklus wird die Schrittkette wieder durchlaufen? Oder gibts noch andere Möglichkeiten?
Danke schön
 
1. indem du in dem programm selber mehrere verschiedene Merker benzutzt und nacher ewtro ein netztwerk/ Baustein für die zuweisung machst wo all diese merker zb. auf ein oder bausten gehen und dann den gewunschten ausgang setzten
 
Zu 2) wird wohl so nicht funktionieren.
Für den Sprung muss M92.0 TRUE sein
Für die Anweisungen im Case-NW muss aber Schritt M91.4 oder M92.0 TRUE sein. Hier muss oder M92.0 noch dazu und natürlich auch rückgesetzt werden.

Zu1) Bei verzweigten Schrittketten können Merker auch an mehrmals verschiedenen Stellen zurückgesetzt werden.
Es gilt so wenig wie möglich, insbesondere wie du jetzt feststellst wegen einer besseren Diagnose und wie oben genannt Fehlervermeidung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1)Sobald ein Operand mit "=" zugewiesen wird, ändert sich der Zustand gemäß dem VKE innerhalb eines SPS-Zyklus. Damit wird der Operand den Zustand annehmen, der im SPS-Zyklus zuletzt zugewiesen wurde. Demnach ist das generell so, egal ob Merker oder Ausgang.

2) Ja. Im nächsten Zyklus wird die Bedingung erneut abgefragt. Du brauchst also keine Rücksprünge.
 
2. Grundlegender tipp du kannst immer und überall hinspringen aber springe niemals in einem zyklus zurück das wird nie funktionieren der zyklus wieder holt sich von ganz alleine eigendlich braucht man nie irgenwo zurückspringen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1)Sobald ein Operand mit "=" zugewiesen wird, ändert sich der Zustand gemäß dem VKE innerhalb eines SPS-Zyklus. Damit wird der Operand den Zustand annehmen, der im SPS-Zyklus zuletzt zugewiesen wurde. Demnach ist das generell so, egal ob Merker oder Ausgang.
Nachdem was du hier geschildert hast, kann ich aber den Zustand jederzeit ändern. Er wird halt nur überschrieben. So dass, im nächsten Schritt evtl. der Merker zurückgesetzt wird. Mit dem Ausgang funktioniert es jetzt, wenn ich ihn nur einmal verwende, muss das bei nem Merker genauso sein?
Danke
 
Das kannst Du natürlich so machen, aber dann isses halt kacke ;)

Aus meiner bescheidenen Sicht sollte man einen Operanden in einem Programm nicht mehrmals zuweisen. Damit meine ich nicht "Setzen" oder "Rücksetzen". Gründe und Alternativen wurden aufgezeigt.
Wie ich schon sagte, gilt das für Merker wie Ausgänge gleichermaßen.
 
Zurück
Oben