easy-forum

Deutsch - Software => XSoft-CoDeSys => Thema gestartet von: OK am April 01, 2008, 14:38:54 Nachmittag

Titel: Verzögerung
Beitrag von: OK am April 01, 2008, 14:38:54 Nachmittag
Hallo,
Vielleicht kann mir jemand bei meinem Problem helfen!?
Ich will ein Signal um eine bestimmte Zeit verzögern.
Dabei soll die Signaldauer nicht beeinträchtigt werden.

INPUT =           _____I   I_______
OUTPUT=         _________I   I___
Verzögerung=            .......

Danke für eure Hilfe
Gruß Oliver
Titel: Re: Verzögerung
Beitrag von: Mr. Spok am April 01, 2008, 14:47:33 Nachmittag
Hallo Oliver,

ein Zeitglied anzugs- und rückfallverzögert mit den gleichen Zeitparametern in I1 und I2 sollte die gewünschte Funktion ausführen.

mfG Jan 
Titel: Re: Verzögerung
Beitrag von: boppel am April 01, 2008, 22:56:39 Nachmittag
Servus Oliver,

es wäre noch zu klären, ob das Eingangssignal und das Ausgangssignal gleichzeitig auftreten können (also z.B. daß die Verzögerung so kurz sein kann, daß das Eingangssignal noch anliegt, während der Ausgang bereits schaltet. Oder das Eingangssignal wieder anliegt, während der Ausgang noch schaltet).

Prinzipielle Möglichkeit:

Konstante Zykluszeit verwenden und während das Eingangssignal anliegt einen Zähler inkrementieren.
Bei steigender Flanke des Eingangssignals natürlich einen Timer für die Verzögerung starten.
Entweder (wenn Eingangssignal sicher nicht während der Schaltdauer des Ausgangssignals auftreten kann) diesen Zähler dann beim Einschalten des Ausgangssignals dekrementieren, bis Null erreicht ist.

Oder: Einen zweiten Zähler inkrementieren, bis der Wert des ersten Zählers erreicht ist.

Sofern das Eingangssignal bei noch schaltendem Ausgangssignal auftreten kann, dann muß der Zählerstand für die Dauer des Eingangssignals in einem Merker zwischengespeichert werden, damit der Zähler die Dauer des nächsten Impulses messen kann.

Viel Spaß noch.

Gruß

Boppel
Titel: Re: Verzögerung
Beitrag von: OK am April 02, 2008, 10:09:01 Vormittag
Hallo,
Danke für Eure Antworten, ja, des soll eine Verzögerung sein, welche unanbhängig zu dem im Augenblick anliegenden Eingangssignal seinen Ausgang gibt.

INPUT        :______I       I__I     I___________
OUTPUT     :__________I       I__I     I_______
TIMESHIFT :            .........
Hatte gehofft, dass es ein Baustein für CFC gibt.
Aber dann bastel ich mir was zusammen.

Danke
Oliver
Titel: Re: Verzögerung
Beitrag von: Mr. Spok am April 02, 2008, 10:36:05 Vormittag
Hallo Oliver,


schau doch mal in der oscat.lib nach (www.oscat.de), vielleicht ist da was dabei.

Edit: der FB TONOF aus der oscat.lib sollte für das Problem funktionieren.

mfG Jan
Titel: Re: Verzögerung
Beitrag von: boppel am April 02, 2008, 20:09:41 Nachmittag
... au ist das peinlich  :-\

ich hatte gar nicht bemerkt, daß es hier um CoDeSys geht.

Davon habe ich (noch) keine Ahnung  ???

Sorry

Gruß

Boppel
Titel: Re: Verzögerung
Beitrag von: KressSwiss am April 03, 2008, 14:36:44 Nachmittag
Zitat
Aber dann bastel ich mir was zusammen

Du könntest folgendes Basteln:
- Während der Input anliegt, einen Zähler mittels Zykluszeitmerker hochzählen
- Dann die Verzögerungszeit abwarten
- Dann Ausgang setzen, den Zähler mit Zykluszeitmerker rückzählen und bei Null Ausgang Rücksetzen.

Wäre das die Lösung?
Gruss Hermann
Titel: Re: Verzögerung
Beitrag von: OK am April 08, 2008, 13:43:47 Nachmittag
Hallo Oliver,


schau doch mal in der oscat.lib nach (www.oscat.de), vielleicht ist da was dabei.

Edit: der FB TONOF aus der oscat.lib sollte für das Problem funktionieren.

mfG Jan

Hört sich sehr gut an! Leider habe ich dadurch zwei Bausteine doppelt eingebunden was zu einem Fehler beim kompilieren führt. >:(
Versuche nun dieses zu umgehen. Habe diesbezüglich auch mal nachgefragt.
Gruß OK 8)
Titel: Re: Verzögerung
Beitrag von: OK am April 09, 2008, 11:16:43 Vormittag
Hallo,
Habe jetzt die ASCAT_bib eingebunden davor den doppelt eingebundenen Baustein umbenannt.
Und dann den Baustein TONOF eingebunden.