Verwenden der Ausgänge zur Selbsthaltung

kiwi

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hätte da mal ne Frage an die Profis. Ist es ein Fehler, wenn ich in einem Netzwerk in dem ich z.B den Ausgang A1.0 ansteuer, den besagten Ausgang zur Selbsthaltung verwende?

z.B.:

U(
O E 1.0
O A 1.0
)
UN E 1.1
= A 1.0

Die feinere Lösung wäre sicher, auf einen Merker zu verweisen und diesen für die Selbstahltung zu verwenden. Aber, kann es durch den Zugriff auf das Prozessabbild der Ausgänge eigentlich zu Problemen kommen und wenn ja, welche?

Programmiert wurde eine CPU 314 mit Step 7

Gruss Kiwi
 
Hallo,
das klappt so.

Wenn Du dass in einem FC machst, dann muss der Ausgang als InOut Variable deklariert sein, dann gehts.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Grundsätzlich ist es nicht verkehrt.

Du greifst nicht während der Laufzeit auf das Prozessabbild der Ausgänge zu, (Das wäre PAW...).
Der Ausgang wird am Schluß des OB1 geschrieben.
 
Hallo,
das klappt so.

Wenn Du dass in einem FC machst, dann muss der Ausgang als InOut Variable deklariert sein, dann gehts.

Gruß

Warum muss das denn gemacht werden?

Kannst du mit das bitte erklären?
Denn ich behaupte das klappt ganz genau so wie es beschrieben ist.

Danke

bike
 
Die feinere Lösung wäre sicher, auf einen Merker zu verweisen und diesen für die Selbstahltung zu verwenden. Aber, kann es durch den Zugriff auf das Prozessabbild der Ausgänge eigentlich zu Problemen kommen und wenn ja, welche?
Kiwi
Hi Kiwi,

als ich das so das erste Mal in S7 machte, hatte ich auch meine Bedenken ob man das heutzutage wirklich noch so macht, auch der Gedanke mit dem Merker kam mir.
Ich habe aber bis heute noch kein Argument gefunden was dagegen sprechen würde.

Wenn Du dass in einem FC machst, dann muss der Ausgang als InOut Variable deklariert sein, dann gehts.
:confused::confused::confused:

Heinz Du meinst sicher an einem parametrierbaren FC.
Aber da wirst ja dann wohl nicht den Ausgang direkt ansprechen sondern über den Deklarationsteil.
Code:
   U(
   O #Eingang_A
   O #Ausgang_B
   )
   UN #Eingang_B
   = #Ausgang_B
In diesem Fall hast Du Recht, das der Ausgang keine OUT-Variable sondern eine IN_OUT-Variable sein muss.
 
Selbsthaltung

Ist es ein Fehler, wenn ich in einem Netzwerk in dem ich z.B den Ausgang A1.0 ansteuer, den besagten Ausgang zur Selbsthaltung verwende?
[...]
Die feinere Lösung wäre sicher, auf einen Merker zu verweisen und diesen für die Selbstahltung zu verwenden.
Den Ausgang zu benutzen ist die Standard-Lösung für die Selbsthalte-Funktion.
In KOP betrachtet entspricht dieser Code exakt dem, wie man so eine Funktion elektrisch mit Schütz verschalten würde.
Ein zusätzlicher Merker entspräche einem zusätzlichen Hilfsrelais, was man aus Kostengründen nur einsetzt, wenn die Taster
mit einer anderen Spannung als die Schütze verschaltet sind oder der Spulenstrom der Schütze zu groß für die Taster ist.
Diese elektrischen Bedingungen spielen aber in einem SPS-Programm keine Rolle, man braucht also keinen Hilfsmerker.
Code:
// AWL-Programm                        // mit Hilfsmerker
     U(                                     U(
     O     E 1.0                            O     E 1.0
     O     A 1.0                            O     M 1.0
     )                                      )
     UN    E 1.1                            UN    E 1.1
     =     A 1.0                            =     M 1.0
                                            U     M 1.0
                                            =     A 1.0

// KOP = Elektro-Schaltung
|  E1.0      E1.1      A1.0            |  E1.0      E1.1      M1.0
|---| |---+---|/|-------( )---|        |---| |---+---|/|-------( )---|
|         |                            |         |
|  A1.0   |                            |  M1.0   |
|---| |---+                            |---| |---+
                                       |
                                       |  M1.0                A1.0
                                       |---| |-----------------( )---|
Die Selbsthaltung mit dem Ausgang ist auch die bessere Lösung als S/R.
In vielen SPS-Programmiersprachen ist die SR-Box genau so als Selbsthaltung programmiert. (in STEP7 nicht :( )
und was spricht gegen:

Code:
*
     U     E  1.0
     S     A  1.0
     U     E  1.1
     R     A  1.0
Dagegen spricht, daß das wohl niemand elektrisch so lösen würde. Warum also so programmieren?
Ich persönlich mag keine "überflüssigen" S/R-Operationen, die sich auch per "=" lösen lassen.
Ich bevorzuge, daß das Programm immer zu einer eindeutigen Zuweisung kommt.
Außerdem nennt sich die Funktion "Selbsthaltung".

Aber, kann es durch den Zugriff auf das Prozessabbild der Ausgänge eigentlich zu Problemen kommen und wenn ja, welche?
Nein, keine Probleme, es wird ja auf das Prozessabbild und nicht auf den Peripherie-Ausgang zugegriffen.
Auf Peripherie-Ausgänge kann ohnehin nicht lesend und nicht Bitweise zugegriffen werden.
Die Ausgänge Ax.y im Prozessabbild verhalten sich wie Merker Mx.y.

Zu beachten ist nur: Wenn die Schaltung in einem FC programmiert ist und A1.0 an einen Baustein-Parameter angeschlossen wird,
dann muß der Baustein-Parameter ein IN_OUT sein (wie hier schon weiter oben diskutiert).
Du greifst nicht während der Laufzeit auf das Prozessabbild der Ausgänge zu, (Das wäre PAW...).
Umgekehrt wird ein Schuh draus ... : AW = Prozessabbild, PAW = Peripherie-Ausgang

Gruß
Harald
 
Jo, das mit dem SR Glied wäre auch ne Möglichkeit, doch ist das in der Firma in der ich arbeite nicht so beliebt, da es nicht so übersichtlich sei. Is wohl auch von firma zu Firma unterschiedlich.

Danke euch für die Antworten. Dann bin ich ja beruhigt, das es nicht so falsch is was ich da mach.

Danke!!!

Gruss Kiwi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich weiß ja nicht wie es die Siemens hält, bei anderen Steuerungen wird aber der Ausgang im Program-Mode abgeschaltet, d.h. der Ausgang wird nur gehalten bis die CPU stopt, im Gegensatz zum Merker (S/R), in dieser Variante wird der Ausgang mit dem ersten Zyklus vom Merker sofort wieder gesetzt.
 
Ich weiß ja nicht wie es die Siemens hält, bei anderen Steuerungen wird aber der Ausgang im Program-Mode abgeschaltet, d.h. der Ausgang wird nur gehalten bis die CPU stopt, im Gegensatz zum Merker (S/R), in dieser Variante wird der Ausgang mit dem ersten Zyklus vom Merker sofort wieder gesetzt.
Aber nur wenn der Merker im "Remanenten Bereich" liegt.
Und vielleicht ist es ja gewollt das bei einem Neustart die Anlage nicht selbständig losläuft.
 
Jo, das mit dem SR Glied wäre auch ne Möglichkeit, doch ist das in der Firma in der ich arbeite nicht so beliebt, da es nicht so übersichtlich sei. Is wohl auch von firma zu Firma unterschiedlich.

Danke euch für die Antworten. Dann bin ich ja beruhigt, das es nicht so falsch is was ich da mach.

Danke!!!

Gruss Kiwi

Ich glaube das mit dem SR-Glied oder der Selbsthaltung ist eher so eine Sache wer das betrachtet. Programmierer werden sicherlich die SR-Variante (FlipFlop) bevorzugen, Betriebselektriker (alte Hasen) wahrscheinlich eher die an den Stromlaufplan angelehnte Selbsthaltung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaube das mit dem SR-Glied oder der Selbsthaltung ist eher so eine Sache wer das betrachtet. Programmierer werden sicherlich die SR-Variante (FlipFlop) bevorzugen, Betriebselektriker (alte Hasen) wahrscheinlich eher die an den Stromlaufplan angelehnte Selbsthaltung.
Was Du so alles glaubst. ;)
Kann man das wirklich so über einen "Kamm scheren"? :rolleyes:
 
Selbsthaltung gut überdenken

Na nehmen wir mal an Du hast Zylinder in der Anlage, die ueber Ventile mit offener Mittelstellung gefahren werden. Und jetzt schreibst Du in deiner Selbsthaltung den Initiator fuer diese Stellung mit rein.

Werker betritt Maschine, Ausgang hat keine Spannung mehr und Luft ist auch keine da. Er kann dann alles Bewegen was er will. So jetzt is dein Ini weg und die Selbsthaltung kommt je nach Programmierung nie wieder. Die Anlage fährt mit Zylindern in der richtigen Position ohne Luft :(

Selbiges gilt auch fuer alle anderen SPS Seitigen Ausgangsfreigaben, die die Selbsthaltung bzw. den sich selbst haltenden Ausgang beeinflussen.

Je nach dem wie Eure Hardware und Eure Programme gestaltet sind, kann es da schon mal Probleme geben.
 
Hallo
Na nehmen wir mal an Du hast Zylinder in der Anlage, die ueber Ventile mit offener Mittelstellung gefahren werden. Und jetzt schreibst Du in deiner Selbsthaltung den Initiator fuer diese Stellung mit rein.
:confused::confused::confused:



Werker betritt Maschine, Ausgang hat keine Spannung mehr und Luft ist auch keine da. Er kann dann alles Bewegen was er will. So jetzt is dein Ini weg und die Selbsthaltung kommt je nach Programmierung nie wieder. Die Anlage fährt mit Zylindern in der richtigen Position ohne Luft :(
:confused::confused::confused:



So jetzt is dein Ini weg und die Selbsthaltung kommt je nach Programmierung nie wieder.
Tut mir leid das ich das so hart sagen muss, aber wenn
Sch...e programmiert wird kommt auch Sch...e dabei raus.


Paul
 
Zuviel Werbung?
-> Hier kostenlos registrieren
und was spricht gegen:

Code:
*
     U     E  1.0
     S     A  1.0
     U     E  1.1
     R     A  1.0
:confused:


... vorrangig rücksetzen wohlbemerkt...

Auf den ersten Blick anscheinend nichts. Der Code ist genauso lang wie der in der Fragestellung (die U( ) lasse ich weg) und vielleicht auch etwas übersichtlicher, "für mich als Programmierer".

R hat Vorrang. Kein Problem, der ungültige Zwischenzustand wird nie gesehen, weil es erst am Ende des Zyklus rausgeschrieben wird (in Siemens).

Ein mögliches Problem ist, wenn es auf eine andere Plattform umgesetzt wird und der Zwischenzustand sofort rausgeht. Das sollte nicht sein.

Ein wesentlich realeres Problem ist, wenn ich das Bit in einem parallelen oder Interruptprozess abfrage ("Weckalarm"-OB). (*So* denken Programmierer) Deshalb vermeide ich möglichst immer ungültige Zwischenzustände und wähle den Code mit "=". Das gilt auch in DBs, aber nicht in lokalen Variablen (VAR_TEMP). Dadurch verbaue ich mir am wenigsten Möglichkeiten.

Wie man es elektrisch löst, ist mir dabei egal - vieles löst man elektrisch wahrscheinlich "gar nicht".
 
Die verwendung des Ausgangs als Selbshaltung wird auch heute noch in SPS Lehrgängen als Beispiel angeführt!
Es spricht nichts dagegen!*vde*

Gruß
SKg
 
Zurück
Oben