Taktmerker Genauigkeit?

Zuviel Werbung?
-> Hier kostenlos registrieren
.... und ich nehme mal an, dass das Ding von der Systemuhr abhängt. Wenn die also 4 Sekunden am Tag nachgeht dann wäre das dann auch die Ungenauigkeit des Taktmerkers (4 Sek. / 24 Std.) ...
 
Der Taktmerker einer CPU 315-2 PN/DP zählt jede Sekunden mittels eines Taktmerkers die Sekunden hoch.

Wir haben momentan das innerhalb von 24 h, 5 Min zuviel gezählt werden.

Meiner Meinung nach sollte der Taktmerker nicht so schlecht laufen oder? :confused:
 
Geschrieben in SCL:

Code:
//additional statistic data
  IF M11.2=TRUE THEN// Taktmerker 1 Sekunde
    //MainLoop
    IF(boIsMLoopInProd)THEN
      DB166.boMainLoopInDistStart:=TRUE;
      DB166.boMainLoopInDistStop:=FALSE;
      DB166.TimerMainLoopInDistribut:=DB166.TimerMainLoopInDistribut+1;
 
... ich sehe da irgendwie gar keinen Flankenmerker in dem Script ... :rolleyes:

Wie wäre es so :
Code:
IF M11.2=TRUE and Not Flanke THEN// Taktmerker 1 Sekunde
    //MainLoop
    IF(boIsMLoopInProd)THEN
      DB166.boMainLoopInDistStart:=TRUE;
      DB166.boMainLoopInDistStop:=FALSE;
      DB166.TimerMainLoopInDistribut:=DB166.TimerMainLoopInDistribut+1;
   end_if ;
   Flanke := M11.2 ;
Flanke wäre vom Typ Bool als STAT in einem FB oder eben auch ein Merker ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das kann aber auch ins Auge gehen.

Wenn der Taktmerker gesetzt wird während das Programm zwischen der Abfrage beim If und dem sichern des Taktmerkers abgearbeitet wird, wird die Flanke nicht erkannt.

Über sowas bin ich auch mal gestolpert.
 
Stimmt ... da hast du Recht.
Aus dem Screenshot von Verpolt geht ja auch klar der Hinweis "asynchron" hervor.

Ich weiß jetzt aber auch immer noch nicht, was das Script von HoT sonst noch so macht und wann es arbeitet. Ich kann mir jedenfalls auch nicht vorstellen, dass das SPS-Programm eine Zykluszeit von ungefähr 1 Sek. hat.
Da ist also auf jeden Fall noch etwas offen ... :rolleyes:
 
Das kann aber auch ins Auge gehen.

Wenn der Taktmerker gesetzt wird während das Programm zwischen der Abfrage beim If und dem sichern des Taktmerkers abgearbeitet wird, wird die Flanke nicht erkannt.

Über sowas bin ich auch mal gestolpert.
Aber dann wird doch der Taktmerker im nächsten Zyklus erkannt, er steht doch 500ms an.

Hättest du dann nicht zu wenig Impulse statt zuviel?

Wie hast du das Problem gelöst?

Mir fehlt in dem Programm von hoT auch die Flanke, allerdings müsste der Fehler bei einer Laufzeit von 24h sehr viel größer sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aber dann wird doch der Taktmerker im nächsten Zyklus erkannt, er steht doch 500ms an.

Hättest du dann nicht zu wenig Impulse statt zuviel?

Wie hast du das Problem gelöst?

Mir fehlt in dem Programm von hoT auch die Flanke, allerdings müsste der Fehler bei einer Laufzeit von 24h sehr viel größer sein.

Stimmt, er wird im nächsten Zyklus erkannt, aber da im aktuellen ja der Flankenhilfsmerker bereits auf True gesetzt wurde wird die Flanke nicht erkannt.

Stimmt wieder, bei mir wurden dann Telegramme nicht kopiert (ganz andere Anwendung, aber gleiche Konstellation; war kein Taktmerker sondern ein DBX, das von einem OPC-Server geschieben wurde)

Ich hab vor der Flankenauswerterei, also vor dem IF das Bit (in diesem Fall der Taktmerker) in eine Lokalvariable kopiert und mit dieser die Flankenauswertung und das sichern des Flankenhilfsmerkers gemacht. Dann wird für beide Abfragen der selbe Zustand verwendet.

Evtl. hat der ja die Flanke woanders ausgewertet, sodass sein Merker nicht der Taktmerker sonder bereits die Flanke daraus ist... (und schon sind wir wieder bei der Glaskugel ;-) )
 
Zuletzt bearbeitet:
Wie wäre es mit einem Alarm OB, alle 1000ms aufgerufen?
Aber ob das genauer wie die verflixte Systemzeit wird?
 
Wie wäre es mit einem Alarm OB, alle 1000ms aufgerufen?
Aber ob das genauer wie die verflixte Systemzeit wird?

Zu den ganzen Genauigkeiten der Timer findet man bei Siemens nur spärliche Angaben.
Für die älteren CPUs hat Siemens bezüglich der Weckalarm OBs hier ein paar Messungen gemacht und veröffentlicht:

http://support.automation.siemens.com/WW/view/de/21626316

Wenn man nicht gerade mit einem Programmiergerät an der CPU hängt sind die Weckalarme also schon einigermaßen genau.

Ist aber alles relativ. Z.B. ist die interne Uhrzeit mit einer Abweichung von max. 10s pro Tag angegeben (typisch 2s). Die 10s erscheinen einem so eigentlich relativ viel, sind aber 'nur' ~0,116 Promille. Dann ist man auch in dem Genauigkeitsbereich der OB35 Weckalarme der in den Siemens Messungen angegeben wird (wobei das schon in den im PDF angegebenen Messfehler von <20 µs untergeht).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sagen wir mal so, Siemens ist offensichtlich seit 15 Jahren nicht in der Lage
den S7 ne vernünftig funktionierende RTC zu spendieren.
Das kann jede 3Euro 50 Armbanduhr besser als diese Schwarz angespritzte Kiste mit grünem Schriftzug.

Ich habe in div. Anlagen auch einen Taktmerker zur Betriebsstundenzählung verwendet.
So 5-10 Minuten Abweichung per 24h sind durchaus im Rahmen, und auf die Art auch mehr oder weniger nicht zu verhindern.

Im Moment nutze ich zur BS-Zählung den SFC64, das ist zumindest genauer,
wobei mir in aller Regel auch die 5 Min / Tag relativ egal sind, wird die Kiste halt ein paar Stunden zu früh gewartet.

@all
Bezüglich Flankenverschlucken:
In aller Regel wird zuviel gezählt, zuwenig hatte ich persönlich noch nie.

Mfg
Manuel
 
Zurück
Oben