RS oder SR unter AWL??

Tmbiz

Level-2
Beiträge
642
Reaktionspunkte
21
Hallo, ich habe noch nie viel mit AWL programmiert. Daher brauche ich mal Hilfe beim formulieren.

Ich habe an meiner Anlage einen Notaus Schalter rastend und einen Taster zum Quittieren. Im Schrank ist eine Pilz Relais eingebaut. Ich möchte das ganze aber auch in der Software auswerten. Also ein RS Glied in AWL. Ich habe mehrere Lösungen im Netz gefunden mit Merkern usw. Sich also eine RS Glied bauen. Gibt es da nicht eine einfachere Formulierung? Irgend was mit SET und S und R. Ich werde das sicher noch öfter brachen und daher möchte ich es gleich richtig lernen.
 
Zuletzt bearbeitet:
Hallo Tmbiz,

Code:
//SR
U x y.z // Operand Byte.Bit // Setz-Bedingung
S M x.y
U x y.z // Operand Byte.Bit // Rücksetz-Bedingung
R Mx.y

//RS
U x y.z // Operand Byte.Bit // Rücksetz-Bedingung
R Mx.y
U x y.z // Operand Byte.Bit // Setz-Bedingung
S M x.y
 
Nee geht nicht. Er speichert das Setzen nicht. Wenn ich den Taster Quitt_Notaus betätige, wurd Notaus_1 = high und wenn ich dann Quitt_Notaus los lasse, wird Notaus_1 = 0 egal was ich bei Notaus_ok einstelle.


U "QUITT_Notaus"
S #NOTAUS_1
U "NOTAUS_OK"
R #NOTAUS_1
 
Ich habe das jetzt mal so geschrieben:

U "QUITT_Notaus"
S #NOTAUS_1

Aber auch hier wird es nicht gespeichert.
 
den hilfskontakt vom pilz-Relais auf einen eingang und fertig ist die laube.

aber ein sr/rs-glied gibt es als "box" gar nicht wirklich. das kannst du sehen wenn du das in fup programmierst und auf awl umschaltest.
Code:
U Taster_Ein
S Freigabe
UN Not-Halt_OK
ON Tuer_zu
R Freigabe
Code:
UN Not-Halt_OK
ON Tuer_zu
R Freigabe
U Taster_Ein
S Freigabe
Beide Netzwerke machen grundsätzlich das gleiche.
Mit einem entscheidenden Unterschied. Nehmen wir an ich klemme den Taster_Ein fest.
im code 1 wird die freigabe zwar gesetzt aber direkt wieder zurückgesetzt wenn die ausschaltbedingung erfüllt ist.
im code 2 wird die freigabe zwar zurückgesetzt aber direkt wieder gesetzt da taster_ein ja 1 Signal hat.

Was man wo verwendet ist abhängig von dem was man erreichen will. der weitaus häufigere fall ist ein sr-glied.
 
ist #NOTAUS_1 eine temporäre variable variable oder ist das ein merker DBX oder so.
die variable darf nicht temporär sein da ihr zustand im nächsten Zyklus nicht mehr bekannt ist.
 
Kann es sein, daß Dein #NOTAUS_1 eine temporäre Variable ist oder mit einer anderen Variable überlappt? Temporäre Variablen können sich nicht wirklich was merken.
#NOTAUS_1 muß ein DB-Bit (static, DBX, DIX) oder ein globaler Merker sein.

Was für eine CPU hast Du?

PS: zu langsam..

Harald
 
Zurück
Oben