Wisch-Kontakt nachbilden

baldur

Level-1
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi.
Mein Problem ist, dass ich effektiv mit einem getasteten Signal arbeiten muss, aber nur Schalter zur Verfügung habe.
Gibt es eine Möglichkeit, in einer S5-CPU100U mit reinen Digitaleingängen einen Impuls durch den WECHSEL der Eingangswerte (also von 1 auf 0 oder von 0 auf 1) zu erzeugen?
Also einen Wischkontakt zu erstellen?

Danke im Voraus,
Baldur
 
Flanken

Hallo
Ich würde dafür die Steigende und Fallende Flanken auswerten

Flanke von Schalter Einschalten:
U E0.0
UN M0.0
= M0.1
S M0.0
UN E0.0
R M0.0

Flanke von Schalter Ausschalten:
UN E0.0
UN M0.2
= M0.3
S M0.2
U E0.0
R M0.2

Für ein Signal nur noch die Flanken verodern:

U M0.1
O M0.3
(UN M0.4 //Merker Anlaufüberbrückung im 1.Zyklus der SPS wenn erforderlich :cool: !!)
= M0.5

Viel spass damit
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn der Impuls nur einen Programmzyklus andauern soll, dann kannst Du folgendes machen:

Code:
Positive Flanke (Eingang 0-1):
 
U  E 0.0    // Eingang
UN M 0.1    // Hilfsmerker
=  M 0.0    // Flankenmerker (für einen Programmzyklus 1)
U  E 0.0    // Eingang
=  M 0.1    // Hilfsmerker

Code:
Negative Flanke (Eingang 1-0):
 
UN E 0.0    // Eingang
U  M 0.1    // Hilfsmerker
=  M 0.0    // Flankenmerker (für einen Programmzyklus 1)
U  E 0.0    // Eingang
=  M 0.1    // Hilfsmerker

Gruß Kai
 
Zuletzt bearbeitet:
Ich danke Euch.

Ich danke Euch.

Ich werde die Vorschläge ausprobieren. Über das Ergebnis halte ich Euch auf dem Laufenden..

Gruss,
Baldur
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn der Impuls nur einen Programmzyklus andauern soll, dann kannst Du folgendes machen:

Code:
Positive Flanke (Eingang 0-1):
 
U  E 0.0    // Eingang
UN M 0.1    // Hilfsmerker
=  M 0.0    // Flankenmerker (für einen Programmzyklus 1)
U  E 0.0    // Eingang
=  M 0.1    // Hilfsmerker

Code:
Negative Flanke (Eingang 1-0):
 
UN E 0.0    // Eingang
U  M 0.1    // Hilfsmerker
=  M 0.0    // Flankenmerker (für einen Programmzyklus 1)
U  E 0.0    // Eingang
=  M 0.1    // Hilfsmerker

Der Hilsfmerker darf jedoch kein Hilfsmerker sein, sondern muss für jede Flankenauswertung ein anderer sein, denn hier wird der Vergangenheitswert des Signals (hier E 0.0) gespeichert.
Das Ergebnis der Flankenauswertung ist der Impulsmerker (hier M 0.0 in beiden Fällen).

Wenn Du beide Flanken auf einmal auswerten willst, kannst Du das auch machen:

Code:
positive und negative Flanke:
// Auswertung des Signalwechsels (Flanke)
UN E 0.0    // Eingang
U  M 0.1    // Flankenmerker
O
U  E 0.0
UN M 0.1    // Flanakenmerker
=  M 0.0    // Impulsmerker (für einen Programmzyklus 1)
 
// Flankenmerker (Vergangenheitswert) nachführen
U  E 0.0    // Eingang
=  M 0.1    // Flankenmerker
.
 
ein Wischrelais nachbilden:
Code:
U E 0.0
L KT 1.2  // 1Sekunde
SE T1
U E0.0
UN T1
= A1.0

Wenn die Zeit als Impuls (SI oder SV) gestartet wird erscheint mir logischer. Außerdem sollte die Zeit nicht mit KT 1.2 (1 * 1s) gestartet werden, denn so hast Du 1s mit 1s Ungenauigkeit. Besser KT 10.1 (10*0,1 s).

Code:
U E 0.0
L KT 10.1  // 1Sekunde
SI T1  // oder auch SV T1, wenn der Impuls immer 1s anstehen soll
U T1
= A1.0
 
Wenn die Zeit als Impuls (SI oder SV) gestartet wird erscheint mir logischer.
Naja, SE kann ich mir merken. Bei SI und SV muß ich das Impulsdiagramm im Handbuch konsultieren. Aber ich kann jedes dieser Impulsdiagramme mit SE und logischen Verknüpfungen erzeugen. Und das auf jeder Steuerungsfamilie; eine Einschaltverzögerung haben sie alle.
Außerdem sollte die Zeit nicht mit KT 1.2 (1 * 1s) gestartet werden, denn so hast Du 1s mit 1s Ungenauigkeit. Besser KT 10.1 (10*0,1 s).
Das wohl, aber die 1 Sekunde war aus der Luft gegriffen, um etwas hinzuschreiben. 10.1 oder 100.0 ist nicht per se "besser" als 1.2. Wenn ich mit 10.1 oder 100.0 bessere Auflösung fordere, wird die Firmware der SPS wohl in der höchst auflösenden Timer-Interrupt-Routine zählen müssen. Was das "kostet" und ob das nötig ist, muß der Projektierer entscheiden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, SE kann ich mir merken. Bei SI und SV muß ich das Impulsdiagramm im Handbuch konsultieren. Aber ich kann jedes dieser Impulsdiagramme mit SE und logischen Verknüpfungen erzeugen.

Sicher kann man alle Zeitfunktion mit ein und der selben Funktion (SE oder auch SI) nachbilden. Ich finde nur, wenn man einen Impuls benötigt, sollte man die Zeit auch als Impuls starten.

10.1 oder 100.0 ist nicht per se "besser" als 1.2. Wenn ich mit 10.1 oder 100.0 bessere Auflösung fordere, wird die Firmware der SPS wohl in der höchst auflösenden Timer-Interrupt-Routine zählen müssen. Was das "kostet" und ob das nötig ist, muß der Projektierer entscheiden.

10.1 oder 100.0 ist per se "besser" als 1.2, denn wenn Du den Timer mit 1.2 startest, kann die Zeit von fast 0 bis 1 s schwanken, das ist unbrauchbar. Ob ich 10.1 oder 100.0 verwende, hängt von den Anforderungen ab, das ist richtig.
 
Nur noch ne Verständnisfrage..

Ich sitze gerade (und auch über Ostern) nicht an der Steuerung, aber:
Ich habe eine S5 mit CPU100U. Habe ich überhaupt den benötigten Befehlssatz?

Gruss,
Baldur

ein Wischrelais nachbilden:
Code:
U E 0.0
L KT 1.2  // 1Sekunde
SE T1
U E0.0
UN T1
= A1.0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe eine S5 mit CPU100U. Habe ich überhaupt den benötigten Befehlssatz?

Hallo baldur,

die binären Operationen (U, O, =, usw.) stehen bei allen S5 CPUs zur Verfügung. Bei der CPU 100 hast Du auch alle Zeitfuntionen (SI, SV, SE, SS und SA) zur Verfügung. Als Operanden kannst Du jedoch lediglich T0 bis T15 verwenden.
 
Danke Euch allen.

Die 'Impulslösung' gefiel mir am besten..

Ich habe jetzt folgendes verwendet:

Code:
Schalter ein:
U E 0.0
L KT 1.1
SI T1


Schalter aus und Timer verodert
UN E 0.0
L KT 1.1
SI T2
U T1
O T2
=A1.0
[/QUOTE]

Der aktuelle Einsatz dieser 'blöden' Frage ist Realisierung einer Stromstossschaltung mit den alten Bakelit-Drehschaltern.

Vielen Dank nochmal!!

Baldur
 
Zurück
Oben