# Problem mit Timer\_P4

**URL:** <https://oscat.discourse.group/t/problem-mit-timer-p4/1205>\
**Category:** oscat.lib fuer PC WorX/MULTIPROG\
**Created:** [30. Oktober 2011 um 09:27 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205 "2011-10-30T09:27:02Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [30. Oktober 2011 um 09:27 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/1 "2011-10-30T09:27:02Z")

</div>

Hallo,  
ich habe am Timer\_P4 ein Problem mit der Startzeit und der Dauer.  
Wenn ich die Startzeit mit Set\_TOD wandel ist die UDINT Zahl um Faktor 1000 zu hoch.  
Im Baustein ist die Wandlung Time\_to\_Udint auch um den Faktor 1000 zu hoch.  
Gibt es hier schon eine Lösung ?

Gruß Michael

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [30. Oktober 2011 um 14:28 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/2 "2011-10-30T14:28:22Z")

</div>

kann dein problem bei set\_tod nicht nachvollziehen

set\_tod wandelt die zeit in das format tod und das ist die tagezeit in millisekunden und nicht sekunden somit um faktor 1000 groesser

kann das sein das du dich da irrst ?

da bei pcworx die typen tod, date, dt usw… nicht unterschieden werden können, könnte es sein, das du bei einem der parameter bei timer\_p4 einen falschen wert übergibst (falsche einheit) z.b. ein DT wert anstatt TOD ?

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [30. Oktober 2011 um 16:07 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/3 "2011-10-30T16:07:56Z")

</div>

Der Timer-P4 benötigt am Eingang DTIME einen DT Typ der keine Millisekunden hat.  
Den DT Type braucht der Baustein um Wochentage zu errechnen.

Ich habe folgente änderung gemacht und es scheind zu funktionieren.  
alle event.start zu event.start / UDINT#1000 ersetzt.  
alle TIME\_TO\_UDINT(event.DURATION) zu TIME\_TO\_UDINT(event.DURATION) / UDINT#1000 ersetzt.  
alle tref\_x zu tref\_x / UDINT#1000 ersetzt.

Gruß Michael

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [30. Oktober 2011 um 21:05 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/4 "2011-10-30T21:05:37Z")

</div>

hallo

ja, jetzt habe ich auch das problem erkannt

beim original-codesys-code wird z.b. folgendes gemacht

start := day\_start + TOD\_TO\_TIME(event.start);  
(DT) := (DT) + TIME

DT = zeit in sekunden  
TIME und TOD = zeit in millisekunden

im prinzip werden wie bei pcworx verschiedene einheiten addiert, wobei bei codesys der compiler automatisch  
den TIME wert vorher noch auf DT konvertiert und somit richtig rechnet , was leider bei pcworx aber nicht passiert

im prinzip hast du mit deiner anpassung das übel schon richtig erkannt

ich habe eine neue version des bausteins gemacht (siehe anhang)  
teste das mal und wenn ok werde ich das übernehmen

danke nochmals …

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [31. Oktober 2011 um 19:18 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/5 "2011-10-31T19:18:09Z")

</div>

Hallo,  
Ja das funktioniert.  
Sollte es aber nicht bei der Funktion 43 (\* event on workdays Mo-FR and no holiday \*)  
statt  
IF DAY\_OF\_WEEK(DT\_TO\_DATE(dtime)) \< 6 THEN

IF (Not Holy) and (DAY\_OF\_WEEK(DT\_TO\_DATE(dtime)) \< 6) THEN

sonst funktionieren die Feiertage nicht.

Gruß Michael

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [31. Oktober 2011 um 22:26 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/6 "2011-10-31T22:26:43Z")

</div>

hallo

die doku sagt folgendes

“type 43 = Ereignis an Werktagen”

* * *

wiki sagt:

Ein Werktag ist ein Tag, an dem laut Gesetz das Arbeiten ohne Beachtung besonderer Einschränkungen grundsätzlich zulässig ist

!! das ist aber bei einen feiertag sicher nicht gegeben !!

* * *

das bedeutet aber normalerweise auch wie du erkannt hast (und auch der kommentar beschreibt)

IF (Not Holy) and (DAY\_OF\_WEEK(DT\_TO\_DATE(dtime)) \< 6) THEN

ich würde sagen, das deine ergänzung ansich logisch wäre

* * *

wir werden das intern noch besprechen…

danke nochmals , für deine wertvollen informationen  
weiter so …

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [17. November 2011 um 08:10 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/7 "2011-11-17T08:10:42Z")

</div>

Hallo,  
ich habe wiedermal ein Problemchen.

wenn ich mehrere Zeiten an einem Kanal mit dem gleichen Type schalten will nimmt der Timer nur das letzte Ereignis.

bsp.  
Kanal 1  
Type 43  
start 6:00  
dauer 1 h

und  
Kanal 1  
Type 43  
start 17:00  
dauer 3 h

Ergebniss Kanal 1 ist nur zwischen 17:00 und 20:00 Uhr an.  
Nach Doku sollte es aber doch möglich sein mehrere Schaltpunkte zu definieren oder habe ich was falsch verstanden.

Gruß Michael

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [17. November 2011 um 11:11 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/8 "2011-11-17T11:11:36Z")

</div>

Hallo,  
hier eine umgeschriebener Timer\_P4.  
mit meinen Änderungen sind nun mehrere Schaltpunkte nun möglich.

Gruß Michael

[gelöscht durch Administrator]

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [17. November 2011 um 17:22 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/9 "2011-11-17T17:22:39Z")

</div>

hallo

wir werden uns das ansehen, und wenn es passt, übernehmen wir es für die nächste release

danke..

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/oscat/original/1X/2efdfb9c592ff9a666c94dff124ee84fa863dae5.jpeg) [@system](https://oscat.discourse.group/u/system)\
**Post date:** [26. Juni 2014 um 20:33 UTC](https://oscat.discourse.group/t/problem-mit-timer-p4/1205/10 "2014-06-26T20:33:25Z")

</div>

Hallo,

in dieses Problem bin ich auch gerade gelaufen und habe Stunden getestet um zu verstehen, wieso es nicht funktioniert.

Es scheinen auch noch mehr von diesem Problem betroffen zu sein.

> **[Cusang - Timer\_P4](http://www.oscat.de/community/index.php/topic,1671.msg8833.html#msg8833)**
>
> Seite erstellt in 0.026 Sekunden mit 19 Abfragen. | Timer\_P4

> **[Brochi - Timer\_P4](http://www.oscat.de/community/index.php/topic,879.msg5363.html#msg5363)**
>
> Seite erstellt in 0.029 Sekunden mit 19 Abfragen. | Timer\_P4

Gibt es denn einen Fix für den TIMER\_P4?

Gruß  
Homesps
