oscat.lib > oscat.lib fuer Step 7

STIME Ãœberlauf bit31

(1/2) > >>

joschua:
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:
Hallo,

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

Gruss Daniel

dalbi:
Hallo,

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

Gruss Daniel 

dalbi:
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]

joschua:
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]

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln