Eingangsimpuls verlängern???

Busch

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

sitze grad an meiner S7200 mit Step7 und finde keine Funktion, mit der man einen Einangsimpuls eines Signalgebers verlängern kann!

Ist es möglich einen Impuls dauerhaft zu setzen?

MfG
 
Hallo Leute,

sitze grad an meiner S7200 mit Step7 und finde keine Funktion, mit der man einen Einangsimpuls eines Signalgebers verlängern kann!

Ist es möglich einen Impuls dauerhaft zu setzen?

MfG
Eine Impulsverlängerung kannst Du mit einer SV Zeit machen.
Ich kenne die 200er nicht aber ich denke das sollte die auch können.

Was meinst Du mit "Impuls dauerhaft setzen"?
Code:
U E x
S M Y
...
R M Y
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nach dem der Signalgeber sein Signal für ca. 1 s ausgegeben hat und in der SPS eingetroffen (E1.4) ist, soll Ausgang (A0.1) solange gesetzt bleiben, bis ein neuer Befehl den Ausgang evtl. zurücksetzt!

Habe es mal mit einem Merker versucht, klappt aber nicht!
 
Nach dem der Signalgeber sein Signal für ca. 1 s ausgegeben hat und in der SPS eingetroffen (E1.4) ist, soll Ausgang (A0.1) solange gesetzt bleiben, bis ein neuer Befehl den Ausgang evtl. zurücksetzt!

Habe es mal mit einem Merker versucht, klappt aber nicht!
Ich hoffe der Eingang trifft gleich in der SPS ein und macht nicht noch ein Umweg > Spaß ;)

Also in diesem Fall willst Du den Eingang nicht verlängern sondern verzögern oder.

Code:
U E 1.4
L S5T#1s  
SE T1  // Wenn der Eingang 1 Sekunde High ist ...
U T 1   // wird der Merker gestzt
S M y
....
R M y
 
U M y
= A 0.1  // Ich setze niemals Ausgänge, würde aber auch gehen
 
Hab ich Dich richtig verstanden Busch?
Der Ausgang 0.1 soll gesetzt werden wenn am Eingan 1.4 ein Wischsignal kommt.
Das Zurüscksetzen soll über einen anderen Eingang passieren?
Das geht auch ohne Merker.


LD E1.4
S A0.1,1

LD Ex.y
R A0.1,1

Ich geh jetzt einfach mal davon aus das Du mit MicroWin32 arbeitest?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Ding ist, ich habe hier 2 Zylinder an der SPS angeschlossen! An einem der beiden Zylinder ist zudem noch ein Signalgeber (E1.4) angebracht. Sobald Zyl1 (A0.1) ausfährt und ca. in der Mitte den Signalgeber für 1 s betätigt, soll Zyl2 (A0.2) ausfahren. Wenn der Zyl2 ausgefahren ist, soll der solange ausgefahren bleiben, bis ein neuer Befehl A0.2 zurücksetzt!

Bringt dich das weiter???
 
Ich gehe immer noch davon aus das Du mit MicroWIN32 arbeitest?

Wenn also Zylinder 1 ausfährt und auf halbem Weg den Reed-Kontakt an E1.4 auslöst soll also Zylinder 2 Ausfahren. Ist doch kein Thema.
Der Progtammteil wo Zylinder 1 angesteuert wird steht schon?

LD E1.4 //hier fragst Du den Eingang ab
S A0.2,1 //hier wird sobald E1.4 ein Signal bekommt der A0.2 dauerhaft gesetzt

LD E?.? //hier kannst Du den Eingan für das Rücksetzsignal definieren.
R A0.2,1 //hier wird der Ausgang 0.2 zurückgesetzt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich gehe immer noch davon aus das Du mit MicroWIN32 arbeitest?

Wenn also Zylinder 1 ausfährt und auf halbem Weg den Reed-Kontakt an E1.4 auslöst soll also Zylinder 2 Ausfahren. Ist doch kein Thema.
Der Progtammteil wo Zylinder 1 angesteuert wird steht schon?

LD E1.4 //hier fragst Du den Eingang ab
S A0.2,1 //hier wird sobald E1.4 ein Signal bekommt der A0.2 dauerhaft gesetzt

LD E?.? //hier kannst Du den Eingan für das Rücksetzsignal definieren.
R A0.2,1 //hier wird der Ausgang 0.2 zurückgesetzt.

Jap MicroWin!

Ja im Prinzip funktioniert es! Das Problem was jetzt aufgetaucht ist, ist das Zyl2 nur für die Länge des Impulses ausfährt. Wenn ich einen dritten Zyl ansteuere funktioniert es einwandfrei!!! Kann es evtl da dran liegen, dass in einigen Schritten vorher schon der Zyl2 einmal gesetzt und zurückgesetzt wurde?
 
Einen Ausgang im Programm mehrfach setzen geht nicht.
Da musst Du mit Merkern arbeiten.
Dann setz doch anstatt der Ausgänge erstmal einen Merker.

LD E1.4
S M1.1,1

LD E?.?
R M1.1,1

Das machst Du im vorangegangenen Programmteil wo der A0.2 auch gesetzt wurde.

Und zum Schluss fragst Du die Merker ab und Setzt den Ausgang

LD M1.1
O M1.2
O M1.3
usw.
S A0.2,1

LDN M1.1
ON M1.2
usw.
R A0.2,1
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
@ToBo

Kommt ja drauf an wie Du programmierst.

Wenn wir von der klassischen Lehr-Programmierung ausgehen (Netzwerk 1 - Netzwerk 2 usw.) kann ich nicht in Netzwerk 3 einen Ausgang setzen und wieder zurücksetzen und diesen Ausgang in Netzwerk 21 nocheinmal verarbeiten. Wenn in NW3 die Bedingungen zum Setzen erfüllt sind, aber in NW21 nicht dann schmeisst die S7 mir den in NW3 gesetzten Ausgang doch im NW21 immer wieder raus.

Oder steh ich jetzt auf dem Schlauch?
 
Kann nicht gehen, denk an die zyklische abarbeitung!

(Schau in die Sepp7 Hilfe unter Prozessabbild)

Bsp: schreib im letzten NW in OB1
Code:
L L#0
T AD 0


is wird dir nie ein Ausgang < A3.7 HI gehen
 
Zuletzt bearbeitet:
@ToBo

Kommt ja drauf an wie Du programmierst.

Wenn in NW3 die Bedingungen zum Setzen erfüllt sind, aber in NW21 nicht dann schmeisst die S7 mir den in NW3 gesetzten Ausgang doch im NW21 immer wieder raus.

Oder steh ich jetzt auf dem Schlauch?

Verwechselst Du vielleicht S mit = ?

Setzen ist setzen und wenn ich den A einmal setze bleibt der
solange 1 bis er wieder zurückgesetzt wird. Ganz egal ob sich
die Setzbedingung ändert. Bei IST (=) ist das natürlich
nicht möglich. Die = Anweisung kann man nur einmal im im aktiven
Programm bearbeiten. Ich schreibe aktives Programm, weil man
theoretisch = auch mehrmals programmieren kann, wenn jeweils immer
nur eines bearbeitet wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es sind eben heut alle verwöhnt mit den vielen Merkern.
Früher haben wir immer auch Ausgangsadressen zum zwischenspeichern verwenden müssen. Egal ob mit S / R oder =.
 
Zurück
Oben