Hauptmenü

STIME

Begonnen von Benjamin, 03. August 2012, 18:01:42

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Benjamin

Hallo Zusammen,

in einem vorherigen Thread habe ich ein Problem mit ONTIME beschrieben. Für mich sieh es aber so aus, als sei die Ursache in STIME zu suchen.

Es scheint ein Problem mit dem internen Zähler in S7 zu geben, und daher ist eine Anpassung notwendig.
//this function block makes sure that the timer of a siemens sps counts from 0 - 2^32-1.

Ich kann auch die Stelle finden, an der der Überlauf erkannt wird.


(* check for overrun *)
IF DWORD_TO_DINT(tx) < DWORD_TO_DINT(last_time) THEN
    (* an overrun has occured, change the value of the highest bit *)
    bit31 := NOT bit31;
END_IF;

(* stuff the highest bit into the timer value *)
at_tx[7] := bit31;


Danach kommt aber leider nichts mehr. Ich finde keinen Baustein und keine Stelle, an der die Information von at_tx[7] weiterverwendet wird.

Wurde die Anpassung irgendwann aus versehen gelöscht? Hat sonst jemand Erfahrungen mit STIME und darauf aufbauenden Bausteinen?

gkobler

Hallo Benjamin

Wenn du die Version 1.5 von STIME hast, dann passt es! Ich hatte auch mal ein Problem mit dem Überlauf. Hatte damals von sämtlichen Bausteinen die ich eingesetzt hatte ein update auf die neueste OSCAT-Version gemacht. Seit dem läuft es bei mir ohne Probleme.

Lade die neueste Bibliothek herunter und vergleiche die Versionsnummer in deinem Projkekt mit denen in der Bibliothek!

Gruss
Gregor