Probleme mit timer_ext

Begonnen von bazooqa, 16. Januar 2010, 18:41:11

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

bazooqa

Hallo zusammen,

seit einigen Wochen versuche ich, den timer_ext für eine Aussenbeleuchtung einzusetzen. Der Timer macht was er will, er schaltet ein, schaltet auch mal aus, aber das System welches er dabei verfolgt kann ich nicht nachvollziehen. Aktuell ist es so, dass ich keine festen Zeiten vorgebe, sondern ihn anhand der Schaltpunkte vor und nach Sunset schalten lassen will. Soweit der Plan. Aber obwohl die Zeiten t_day_start und t_day_stop mit "TOD#00:00:00.000" versehen sind (leer lassen funktioniert ebensowenig), sehe ich im Statusbyte, dass er aufgrund t_day_start gerade aktiv ist (Status=111). Per Taster kann ich auch nicht dauerhaft schalten, der Baustein springt sofort wieder zurück.

Ich habe mal zwei Screenshots gemacht, vielleicht fällt jemandem etwas auf. Bei der Variablentabelle beginnt die Lokalzeit bei Adresse DB6.DBB0

Rahmenbedingungen:
CPU314, aktuelle Firmware
Oscat-Lib 3.11
zyklischer Aufruf von timer_ext

Vielen Dank im Voraus!


[gelöscht durch Administrator]

dalbi

Hi,

hmm, werde es mir Morgen mal anschauen. Kannst Du bitte das Programm mal online stellen.

Gruss Daniel

bazooqa

Hallo Daniel,

ich habe das Projekt mal aufs Wesentliche reduziert und hier beigefügt. In der Simulation lief alles zunächst, aber dann fing timer_ext nach kurzer Zeit doch wieder an, Dinge zu tun, die ich nicht nachvollziehen kann...

Vielen Dank schonmal für Deine Mühe!

[gelöscht durch Administrator]

dalbi

Hi,

so ich glaube ich muss mal die ganzen Funktionen welche STIME benutzen durchschauen.
Das Problem ist auch bei TIMER_EXT das wenn kein INIT beim Anlauf der CPU gemacht wird dieser nicht richtig läuft. Das Problem habe ich jetzt korrigiert der Baustein erkennt jetzt selbstständig einen Neustart der CPU und Initialisiert sich.

In deinem Projekt musst Du die Bausteine STIME u. TIMER_EXT gegen die Neuen tauschen (siehe Anhang).
Wichtig den Instanzdatenbaustein von TIMER_EXT nochmal in die Steuerung übertragen.

Gruss Daniel

[gelöscht durch Administrator]

bazooqa

Hallo Daniel,

vielen Dank für die kurzfristige Antwort. Ich werde heute Abend hoffentlich dazu kommen, es hochzuladen und auszuprobieren.

Ergebnisse gibt's dann hier in Kürze...  ;D

bazooqa

Hallo Daniel,

ich habe die Bausteine STIME und TIMER_EXT eingefügt, den Instanzdatenbaustein für TIMER_EXT neu generiert und alles übertragen. Leider ohne Erfolg. Das für mich unerklärliche Verhalten des Bausteines besteht weiterhin (siehe 1. Posting).  ???

dalbi

Hi,

Zitat von: bazooqa in 16. Januar 2010, 18:41:11... Per Taster kann ich auch nicht dauerhaft schalten, der Baustein springt sofort wieder zurück....

um die Flanke vom Taster korrekt zu erkennen, musst Du die Zeit an T_DEBOUNCE auf T#200MS setzen (Standart ist 100ms), 100ms funktionieren nicht da die Routine nur alle 200ms durchlaufen wird.

Der Rest funktioniert bei mir tadellos, übertrage doch mal das komplette Programm an die Steuerung.

Gruss Daniel

bazooqa

Hallo Daniel,

es hat leider etwas gedauert bis ich wieder an der Anlage war und testen konnte. Leider funktioniert es bei mir nicht. Und zwar weder auf der SPS noch in der Simulation. Wenn ich, wie Du vorgeschlagen hast, nach einem Urlöschen nur das Programm aus Deinem Dateianhang in die SPS bzw. in PLCSim lade, setzt TIMER_EXT spätestens nach einer Minute den Ausgang Q und gibt als Status 115 aus, obwohl das gar nicht sein dürfte.
Auch auf den externen Taster reagiert der Baustein höchstens für Bruchteile einer Sekunde (Status 110), dann springt Q aber sofort wieder auf 1. T_DEBOUNCE steht wie Du empfohlen hast auf T#200ms.

Was mache ich falsch?

bazooqa

#8
Hallo zusammen,

hat tatsächlich niemand ausser mir diese Probleme mit TIMER_EXT aus der 3.11er Oscat-Version?

@daniel:
würdest Du bitte nochmal schauen, ob die Bausteine die Du hier verlinkt hast mit denen übereinstimmen, die bei Dir fehlerfrei laufen?

Vielen Dank und verzweifelte Grüße!