Autor Thema: TP_X retriggerbarer PulsTimer  (Gelesen 9388 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

kelle

  • Gast
TP_X retriggerbarer PulsTimer
« am: 02. Dezember 2008, 20:59:13 »
Hallo Hugo,

bin heute auf die OSCAT.LIB gestossen.
Alles super.
Ist der FB auch längere Zeit überlebensfähig ?
Wegen DWORD-Überlauf der ms nach ca. 1,5 Monaten.
Danke.
gruss kelle

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: TP_X retriggerbarer PulsTimer
« Antwort #1 am: 02. Dezember 2008, 23:14:06 »
alle timer in der oscat lib berücksichtigen diesen überlauf.

dies geschieht indem immer aktueller_timer_wert - alter_timer_wert verwendet wird.
die subtraktion liefert auch bei überlauf das richtige ergebnis, den abstand des neues wertes vom alten wert.

die maximale pulslänge beträgt aber 49 tage da der timer nur 32 bit in millisekunden ist.
das entspricht auch der maximalen zeit die durch pt definiert werden kann.
der baustein ist retriggerable, das bedeutet das der gesamtpuls natürlich unbegrenzt sein kann wenn innerhalb der 49 tage jeseil ein triggerpuls kommt.

« Letzte Änderung: 02. Dezember 2008, 23:19:48 von hugo »

kelle

  • Gast
Re: TP_X retriggerbarer PulsTimer
« Antwort #2 am: 03. Dezember 2008, 08:41:21 »
Danke Hugo für die Auskunft.
Weitere Problemstellung:
Auf dem Anlagenbild habe ich 6 Silos, welche
jeweils über einen countdown-timer entleert werden.
Die Entleerzeiten sollen bei laufendem Prozess
manuell änderbar sein.
Beim Touch auf einen Timer öffnet sich ein Numpad
(Element Konfig, Texteingabe: Numpad).
Kann man nach Eingabe einer neuen Zeit mit
Numpad-Enter ein Ereignis generieren, welches
den Timer nachtriggert (eine extra Übernahmetaste
will ich vermeiden). Danke.
Gruss Kelle

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: TP_X retriggerbarer PulsTimer
« Antwort #3 am: 03. Dezember 2008, 13:33:53 »
ja
d_trig überweacht ein DWORD auf veränderung.
eine time kannst du ganz einfach in dword wandeln mit time_to_dword.

d_trig erzeugt dir dann bei jeder änderung einen trigger

kelle

  • Gast
Re: TP_X retriggerbarer PulsTimer
« Antwort #4 am: 13. Dezember 2008, 20:30:51 »
Hallo Hugo,
... wenn in TP_X eine neue Zeit gesetzt wird, wird auch
automatisch neu getriggert(super).

Jetzt benutze ich den Messbaustein M_T, um Laufzeiten
im Prozess zu kontrollieren.
Mit Taste ErrorQuit setze ich für einen Zyklus .RST auf True.
Jedoch .ET und auch .PT werden nicht auf Null gesetzt.
Da gibts noch .INIT, habe aber keinen Schreibzugriff.
Danke.
Gruss Bernd

kelle

  • Gast
Re: TP_X retriggerbarer PulsTimer
« Antwort #5 am: 14. Dezember 2008, 15:18:37 »
alles klar, M_T RST ist nur wirksam,
wenn IN:=0
Gruss Bernd


Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: TP_X retriggerbarer PulsTimer
« Antwort #6 am: 17. Dezember 2008, 11:56:30 »
TP_X erzeugt keinen puls wenn eine neue zeit gesetzt wird.
der ausgang kann nur dann auf true gehen wenn eine steigende flanke an in vorliegt
ist die zeit pt allerdings 0 wird nie der ausgang gesetzt.

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: TP_X retriggerbarer PulsTimer
« Antwort #7 am: 17. Dezember 2008, 12:03:41 »
der reset von M_t ist immer wirksam egal wie in ist
wenn du die variable .rst veränderst musst du auch dafür sorgen das der baustein aufgerufen wird sonst kann sich natürlich auch nichts tun.
name.rst = true
setzt die variable tut aber nichts
richtig muss es sein: name(rst := true); dann wird gleichzeitig die variable rst gesetzt und ausgeführt.

.init darfst du von aussen nicght ändern weil es eine interne variable ist