Autor Thema: STIME Ãœberlauf bit31  (Gelesen 12721 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

joschua

  • Gast
STIME Ãœberlauf bit31
« am: 21. Dezember 2009, 12:37:41 »
Hi,

habe in meiner Haussteuerung eine CPU318-2 von Siemens eingesetzt, u.a. verwende den Timer_2.
Jedoch funktioniert dieser Timer nun nicht mehr, die Ursache:
die CPU erzeugt einen Überlauf, dieser wird durch den Baustein STIME erkannt und im DB64 im bit31 abgelegt.
Als ich dieses Bit nullte, funktionierte der Timer wieder.
Im OB1 habe ich nun vorsorlich das bit31 ständig genullt, leider bin ich mir nicht sicher ob diese Vorgehensweise richtig ist.
Was muss ich in der Software tun, um den erkannten Überlauf korrekt abzufangen ohne das die Timer stehen bleiben?

Im OB100, löschen von den jeweiligen init Bits bei Neustart/Wiederanlauf ist programmiert.

Danke für die Unterstützung

dalbi

  • Gast
Re:STIME Ãœberlauf bit31
« Antwort #1 am: 21. Dezember 2009, 20:18:22 »
Hallo,

am Baustein STIME liegt das nicht, ich habe da so einen verdacht und werde die Sache "TIMER_2" mal anschauen.

Gruss Daniel

dalbi

  • Gast
Re:STIME Ãœberlauf bit31
« Antwort #2 am: 22. Dezember 2009, 23:02:59 »
Hallo,

tritt das Problem nur bei einem Neustart auf oder ist es während des Betriebs der CPU passiert.

Gruss Daniel 

dalbi

  • Gast
Re:STIME Ãœberlauf bit31
« Antwort #3 am: 22. Dezember 2009, 23:26:16 »
Hallo,

so habe es gefunden, das Problem ist der TIMER_2 und nicht der Baustein STIME die Stat-Variable "last_check" im TIMER_2 wird bei einem Neustart der CPU nicht 0, daher läuft der Baustein erst nach 24 Tagen wieder an. ::)

STIME hat auch noch einen kleinen Bug die Stat-Variable Bit31 wird bei einem Neustart nicht 0.

Anbei die korrigierten SCL-Quellen.
TIMER_2 muss jetzt nicht mehr im OB100 mit Init = false Initialisiert werden.
 
Gruss Daniel

[gelöscht durch Administrator]
« Letzte Änderung: 22. Dezember 2009, 23:47:53 von dalbi »

joschua

  • Gast
Re:STIME Ãœberlauf bit31
« Antwort #4 am: 23. Dezember 2009, 15:38:19 »
Hey,
habe die Bausteine entsprechend angepasst.
Im Anhang der Ausdruck vom OB1 und OB100, was kann/sollte hier angeasst werden, bezüglich TIMER_2 und STIME.
Vielen Dank für die schnelle Hilfe!



[gelöscht durch Administrator]

dalbi

  • Gast
Re:STIME Ãœberlauf bit31
« Antwort #5 am: 23. Dezember 2009, 15:57:23 »
Hi,

es können alle Initialisierungen für STIME u. TIMER_2 im OB100 eingespart werden, ebenfalls die Zeilen im OB1
NETWORK
TITLE =Überlaufbit für STIME löschen, sonst stehen alle Timer

      CLR   ;
      =     "IDB_STIME".bit31;
entfernen.

Die Bausteine erkennen selber ob die CPU neu gestartet wurde. Wichtig ist nur das sie zyklisch durchlaufen und nicht bedingt im Programm aufgerufen werden.

Gruss Daniel

joschua

  • Gast
Re:STIME Ãœberlauf bit31
« Antwort #6 am: 23. Dezember 2009, 17:42:00 »
Hey,

vielen Dank für die Info, werde ich anpassen.

Wünsche Euch eine schöne Weihnacht, und nochmals vielen Dank für die Infos!

Gruß
Uwe