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