# Stoppuhr in Codesys und aufs Hundertstel genau??



## MRT (7 November 2013)

Hi!

Ich möchte mit einer Wago 750-881 eine Stoppuhr für ein Schirennen basteln, die sollte aber eben wie oben beschrieben aufs Hundertstel genau gehen!

Hintergrund ist der das wir einen Schilift im Ort haben und der Schiclub nun dort Schirennen veranstalten will. Dazu kommt eben noch die Visu mit Außentemperaturen usw., aber das ist alles kein Problem, das einzige Problem hab ich mit der Stoppuhr!

Ich dachte mir das ich einen 1ms Blinktakt erzeuge und diesen mit einen Zähler zähle und eben als Zeit anzeige, wobei ich mir noch nicht sicher bi ob das geht!?
1ms ist schon sehr kurz, die eie Frage ob ich den überhaupt erzeugen kann und ob beim zählen nicht die eine oder andere ms verloren geht!?

Jetzt dachte ich mir das vielleicht über Umwegen irgendwie mit TON oder TOF zu lösen.

Ich habe bei Wago schon gesucht ob es vielleicht was fertiges gibt, aber leider nichts gefunden, auch im Netz hab ich nichts brauchbares gefunden, die OSCAT.lib muss ich erst durchschauen!

Mir gehts nur um einen Lösungsansatz und nicht um ein fertiges Prog, wobei ich einen fertigen Baustein auch nehmen würde!


----------



## blimaa (7 November 2013)

Hi

Hast du den ein so langes Kabel? Du müsstet ja eine Lichtschranke beim Start und beim Ziel haben?! Oder Funk?
Ich würde beim Start die Systemzeit speichern und am Schluss wieder die Systemzeit speichern.
Ziel - Start = Fahrzeit

schau mal http://www.sps-forum.de/beckhoff-codesys-iec61131/49522-systemuhrzeit-ausgeben-ms.html

Natürlich muss auch die Taktzeit dementsprechend sein...

Hast ja noch ein paar Schneefloken zeit, bis ne anstöndige Piste zustande kommt 

Gruss blimaa


----------



## Dr.MirakulixX (8 November 2013)

Morgen  ich löse sowas immer recht einfach. Kann dir aber nicht sagen wie genau das ist. Über R_trig Time() in eine Start und nachher in eine EndVar schreiben. Den Rest macht die Mathematik  vielleicht hilft das ja


----------



## MRT (8 November 2013)

Zwischen Start und Ziel gibt es schon ein bestehends Kabel...

Ja das hört sich super an, die Start Zeit von der Ziel Zeit abzuziehen. Wie meinst du das mit der Taktzeit, meinst du wie schnell das Programm von der Stoppuhr abgearbeitet wird? Das könnte ich doch in der Taskkonfiguration einstellen oder?

Die Genauigkeit ist dann sicher von der Taktzeit abhängig, falls meine Stoppuhr ungenau sein sollte, ist die Uhr dann immer gleich ungenau? Oder ist die Genauigkeit unterschiedlich?


----------



## Dr.MirakulixX (8 November 2013)

Also behaupte die Ungenauigkeit ist immer rech täglich. Habe in meinen Tests so nix anderes "beweisen" können.


----------



## PN/DP (8 November 2013)

*Anmerkungen zu Zeitmessung*

Wenn Du einen 1ms-Takt zählen würdest, dann hättest Du eine Zeit mit tausendstel Sekunden Auflösung.
Du schriebst, Du brauchst "nur" Hundertstel - also brauchst Du nur eine Auflösung von 10ms.
Die garantierte Reaktionszeit der Zeit-Messeinrichtung muß kleiner als 10ms sein um das Meßergebnis nicht zu verfälschen.
Ist die Zykluszeit der Wago größer 10ms, dann müssen die Start- und Stopsignale per Prozessalarm ausgewertet werden oder über eine zyklische Task <= 10ms abgetastet werden.

Wenn der Einfachheit halber die Zeiterfassung per Differenz der End-Uhrzeit zur Start-Uhrzeit realisiert wird, dann darf während einer Messung die Uhr der SPS nicht verstellt oder mit einer anderen Uhr synchronisiert werden. Üblicherweise arbeiten Stopuhren als Zeitimpulszähler - unabhängig von der Uhrzeit!

Mit TON/TOF würde ich keine "genaue" Zeiterfassung machen, weil es da je nach SPS-Typ ziemlich schwierig ist, den verfälschenden Einfluß der Zykluszeit herauszuprogrammieren.

Fazit:
Ich würde die Zeitmessung in einem Weckalarm bzw. zyklischen Task von 10ms oder 5ms als Zähler realisieren.
Wichtig: die Start- und End-Eingangssignale müssen in dieser Task erfasst werden. Die Digitaleingänge müssen die Signale schnell genug liefern können.

Zur Ganggenauigkeit der Uhr bzw. der Takterzeugung
Solange Du nur Rennzeiten eines Tages relativ vergleichen willst sollte die Ganggenauigkeit ausreichen.
Wenn Du jedoch "amtliche" Protokolle der absoluten Rennzeiten erstellen willst, dann gibt es da sicher besondere Vorschriften des Sportverbandes zur Zeiterfassung. Deshalb gibt es wohl auch kaum Beispiele zur Zeiterfassung mit SPS.

Harald


----------



## MRT (10 November 2013)

Danke PN/DP für deine ausführliche Beschreibung!

Ich hab meine Aussage auf Hundertstel genau ein bisschen ander gemeint, die Stoppzeit sollte so Aussehen: z.B.: 1:24:53 Min/Sek/Ms

Ein Amtliches Protkoll wird damit nicht erstellt, es werden pro Renntag nur ca. 100-150 Zeiten gestoppt!

Ich hab mir jetzt den RTC_MS von "blimaa" angesehen, doch dieser Baustein verlang bei einen Eingang auch ein Milli Sekunden Signal, was mich wieder vor ein Problem stellt, da ich nicht weis wo ich das hernehmen soll!

MIr persönlich würde am besten gefallen wenn ich einfach einen 1ms Takt hätte und diesen zählen könnte!


----------

