Impuls auswerten

SvenP

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

ich brauche einen Impulsgenerator. Den Impuls möchte ich natürlich auf die ein oder andere Weise auswerten.

Hier im Beispiel soll einfach nur ein Bit gesetzt werden. Der Impulsgenerator soll weiter laufen.

Ordne ich die Netzwerke so wie hier an, funktioniert das nicht. Drehe ich die Netzwerke um, dann funktionierts?

Weiß jemand woran das liegt? Kann man das Problem beheben, so dass es nicht auf die Anordnung der Netzwerke ankommt?

Netzwerk1:
U E 0.0
UN T 0
L S5T#3S
SE T 0


Netzwerk2:
U T 0
S A 0.0


Verwende: Step7 V5.3 SP3

Vielen Dank

Sven
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier ne Kleine lösung von mir:
Das ganze läuft bei mir in einem FB ab, da laufen so die Allgemeinen Sachen, hier mal der entsprechende Auszug, als Taktmerker nutze ich standartmäßig MB 1 (einzustellen in der HW Konfig)

Code:
FUNCTION_BLOCK " "

VAR
  Merker : INT ; //Zustandsmerker für Impulsbildung
END_VAR

NETWORK 
TITLE =Impulserzeugung aus Taktmerker

 L       #Merker ; // Zustandsmerker
 L       MB     1 ; // Taktmerker
 T      #Merker ;
XOW   ;
L        MB      1 ; // Taktmerker
UW     ;
T        MB      2 ; // Impulsmerker

END_FUNCTIONS_BLOCK
Die Impulse entsprechen dann Flanke Positiv vom Taktmerker
 
Zuletzt bearbeitet:
Ich würde folgendes Programm schreiben (FUP-Konform):

Code:
Netzwerk 1:
 
U   E 0.0
[COLOR=red]UN  M 1.0[/COLOR]
L   S5T#3S
SE  T 0
NOP 0
NOP 0
NOP 0
[COLOR=red]U   T 0[/COLOR]
[COLOR=red]=   M 1.0[/COLOR]
 
Netzwerk 2:
 
[COLOR=red]U   M 1.0[/COLOR]
S   A 0.0

Gruß Kai
 
Warum ist das so?

Hallo,

das ging ja schnell. Vielen Dank dafür. Aber weiss denn jemand warum das so nicht funktioniert?

Grüße

Sven
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Timer arbeiten zyklusunabhängig, das kann zu Problemen führen.

Das SPS-Programm arbeitet sequenziell, also Zeile für Zeile. Ein Timer läuft aber immer ab, das heißt, wenn er an 3 verschiedenen Stellen in einem Programm abgefragt wird, kann er an der 1. Stelle noch LOW sein, an der 2. und 3. Stelle aber High.

Deshalb sollte man grundsätzlich mit einem Merker bei so etwas arbeiten. Das garantiert Dir einen Merker, der 1 Zyklus high ist.

Weitere Informationen findest Du unter anderem hier:

http://www.sps-forum.de/showthread.php?t=8122

Gruß Kai
 
Ordne ich die Netzwerke so wie hier an, funktioniert das nicht. Drehe ich die Netzwerke um, dann funktionierts?

Weiß jemand woran das liegt? Kann man das Problem beheben, so dass es nicht auf die Anordnung der Netzwerke ankommt?

Netzwerk1:
U E 0.0
UN T 0
L S5T#3S
SE T 0

Netzwerk2:
U T 0
S A 0.0

Bei diesem Programm kann folgendes Problem auftreten:

- Das Programm befindet sich in seinem Ablauf in einem Netzwerk hinter dem Netzwerk 2.

- Der Timer T0 (der Timer arbeitet zyklusunabhängig) läuft ab und wird auf High gesetzt.

- Das Programm arbeitet das letzte Netzwerk ab und beginnt in einem neuen Zyklus wieder bei Netzwerk 1.

- In Netzwerk 1 wird der Timer T0 wieder zurückgesetzt, also auf Low gesetzt.

- In Netzwerk 2 ist der Timer auf Low, der Ausgang A0.0 wird also nicht gesetzt.

Der Timer T0 kann also vom Programm gesetzt und wieder rückgesetzt werden, bevor das Programm das Netztwerk 2 erreicht und abarbeitet.

Ich hoffe, dass war einigermaßen verständlich. :rolleyes:

Gruß Kai
 
das ging ja schnell. Vielen Dank dafür. Aber weiss denn jemand warum das so nicht funktioniert?
Der Ausgang wird beim SE gesetzt, wenn die Zeit abgelaufen ist UND der Eingang noch ansteht. Das kann in der dargestellten Variante nur theoretisch passieren. Da bei Siemens die Timer im Zyklus weiterlaufen wäre dies genau dann, wenn der Timer nach UN T 0 und vor U T0 abläuft (also sehr unwahrscheinlich). Im umgekehrten Fall liegt immerhin ein ganzer Zyklus dazwischen und die Wahrscheinlichkeit ist somit fast 100 %.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Impulsgenerator

Hallo,

SvenP schrieb:
Netzwerk1:
U E 0.0
UN T 0
L S5T#3S
SE T 0

Netzwerk2:
U T 0
S A 0.0

Nicht der richtige Ansatz für einen Impulsgenerator, nein eigentlich völlig daneben. In der S7-Hilfe und Librarys und auf der Siemens A&D Homepage sind entsprechende Beispiele mit einstellbaren Schaltzeiten vorhanden..

Gruss

Question_mark
 
Naja Richtig oder nicht, Funktionieren muss es. Und wenn man ein paar Sachen beachtet tut das auch.
Code:
U T100
= M10.0

UN M 10.0
L S5T#3s
SE T100
Tut auf jedenfall, zumindest bei mir schon Jahrelang. :ROFLMAO:
 
Zurück
Oben