Geschwindigkeitsmessung

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Boxy,

Boxy schrieb:
Mit dem SFC64 (Time-Tick) bei einer S7-300 auch.
S7-Onlinehilfe schrieb:
Das Zeitraster und die Genauigkeit der Systemzeit betragen bei S7-400 und bei der CPU 318 1 ms, bei allen anderen CPUs der S7-300 10 ms.

Boxy schrieb:
Jede ms macht ja ca. 2% Ungenauigkeit aus ....
Habe es jetzt nicht nachgerechnet. Wenn dieser Wert für die Maximalgeschwindigkeit gilt, könnte man damit zufrieden sein.


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

Und wenn's kein AVR, sondern ein PIC sein darf, schaut mal auf SPRUT.DE.
Das ist DIE Seite, wenn es um PIC's geht (deutsch *anmerk*).
Selbst ein kleiner 08M'er (PICAXE) sollte brauchbare Ergebisse liefern können, einziger Problem bei diesem Chip: Er hat nur 4 I/O Pins, wodurch etwas Hirn und externe Beschaltung von Nöten ist.
Größere Chips kosten größeres Geld, haben dafür aber (neben höherem Takt) auch mehr I/O Pin's.
Zu guter Letzt ist ein PICAXE (Sonderform des PIC) in BASIC oder als Flußdiagramm programmierbar.
Für PICAXE-Info's schaut mal da:ROBOTER-TEILE.DE (der Shop)
Hab dort selber nen paar Steinchen gekauft, recht robust aber 12V mögen se auch nicht :-/

In diesem Sinne, Häppy Racing (oda so)
 
Ich würde dann mit einem Atmel-Microcontroller eine kleine Schaltung aufbauen mit einem Quartz, 2 Eingängen und RS232-Ausgang. Das Ding wird mit 8Mhz getaktet und schon kann man die Zeit hinreichend genau messen. Wer es eilig hat, der nimmt das Eval-Toolkit STK500 und programmiert den Atmel in C mit dem GCC (kostet nix). Gibt es alles auf

www.avrfreaks.bet


Der interne Zähler des Amels zählt die Impulse und sendet die Zahl der Impuls an die SPS per RS232. Das scheint mir das einfachste zu sein.
 
Möchte das Thema nochmals aufgreifen,
nur bei mir geht es um 200m und richtige Autos (Beschleunigungsrennen).
Auch der finanzielle Rahmen würde eine FM Baugruppe zulassen.

Gestartet wird die Zeit über eine Ampel, gestoppt von Lichtschranke oder Induktionsschleife (wird aber wohl zu langsam sein).

Bisher habe ich nur eine FM35x für Impulsgeber eingesetzt - gibts da auch was um Zeiten zu erfassen?

Visualisiert werden sollen Geschwindigkeit + Zeit - und das möglichst groß.
Da fällt mir zuerst WinCC RT ein, mit nem großen TFT (geht da auch Zweischirmbetrieb?) ein. Oder gibts große LED Anzeigen, die ich via BCD ansteuern könnte unter dem Preis für Netlink, WinCC RT, Rechner,TFT(s) ?

Habe mich einfach mal an den Thread rangehangen, da das Thema ja doch recht ähnlich ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
edison schrieb:
Möchte das Thema nochmals aufgreifen,
nur bei mir geht es um 200m und richtige Autos (Beschleunigungsrennen).
Auch der finanzielle Rahmen würde eine FM Baugruppe zulassen.
Gestartet wird die Zeit über eine Ampel, gestoppt von Lichtschranke oder Induktionsschleife (wird aber wohl zu langsam sein).

Du hast recht, Induschleife ist sicherlich zu langsam, nimm 2 Lichtschranken.


edison schrieb:
Bisher habe ich nur eine FM35x für Impulsgeber eingesetzt - gibts da auch was um Zeiten zu erfassen?

Du sprachst von 200m.
Da würde ich gar keine FM oder so einsetzen, sondern einfach die Lichtschranken auf einen Eingang (evt. auch Interruppteingang) legen und die Zeit zwischen beiden mittels Timeclick - SFC in 10ms Auflösung stoppen.

Bei 200 m wird die Zeit zwischen den beiden Lichtschranken ja mindestens 2-3 Sekunden lang sein :ROFLMAO: , also lang genug für genaue Messung.

edison schrieb:
Visualisiert werden sollen Geschwindigkeit + Zeit - und das möglichst groß.
Da fällt mir zuerst WinCC RT ein, mit nem großen TFT (geht da auch Zweischirmbetrieb?) ein. Oder gibts große LED Anzeigen, die ich via BCD ansteuern könnte unter dem Preis für Netlink, WinCC RT, Rechner,TFT(s) ?

Ein PC hätte den Vorteil, dass du die Messergebnisse auch direkt Protokollieren könntes. Großanzeigen LED kosten schon ne Menge Geld (allerdings ist flexibleRT auch nicht gerade billig)

Gruß,

Ug.
 
Bin jetzt auf der Siemens Webseite auf ein Beispielprojekt für eine 200er gestoßen:

Dort wird ein 20kHz Impuls erzeugt und gleich wieder gezählt - die kleinste meßbare Zeit wird dort mit 50us angegeben (durch die 20kHz).
Gefällt mit soweit recht gut - nur wie genau ist denn die ganze Sache?
In der Doku wird nur auf die Technischen Daten der CPU verwiesen, dort finde ich aber leider keine Toleranzangaben für die Frequenzausgabe (CA01 / Systemhandbuch).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
schau dir mal die sachen von oscat (open source community for automation technology) an
dort gibts eine freie bibliothek mit vielem in st und alles mit source code
einen function block zur direkten zeitmessung findest du unter engineering
 
sorry hab den kink vergessen
http://www.oscat.de
aber die genauigkeit wird sicher nicht besser als einige ms je nach sps ca 1ms

eine möglichkeit dies zu umgehen ist die sps freilaufend zu betrieben und in einer schleife zu messen damit wird die task nicht verlassen und auch auf einer langsamen sps eine grnauigkeit von deutlich besser als 1 ms erreicht.

das hat aber den nachteil das die sps während der messung nichts anderes mehr tun kann.

servus und viel spass
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bisher habe ich nur eine FM35x für Impulsgeber eingesetzt - gibts da auch was um Zeiten zu erfassen?

Der FM352-5 basiert auf einem Xilinx FPGA parallel processor mit 1 µs Zyklus Zeit. Kleinste Zeiteinheit (Ein- oder Ausgang) ist 10µs und ich habe ihn benutzt um Zeitverzögerung in 1-ms Raster über ein Bereich von 0 - 2000 ms zu kriegen. Im unteren ms Bereich waren die Zeiten +- 2 µs über 2 s war die Abweichung <200 µs, aber ich glaube dies ist kleiner als die Genauigkeit des Oszis bei 1 cm/s!

Leider kann mann die Berechnung nicht im FM machen (wenn ich mich richtig daran erinnere) weil der kann auch "stand-alone", also ohne CPU, eingesetzt werden. Kostet ca. 800 €
 
Wusa... hui...
Also, ich hab mal was ähnliches in ner 95U gemacht, allerdings nicht mit 60ms, sondern ehr mit 6 Sekunden.

Vielleicht als Ansatz:

1. Erstelle einen Zyklusmerker. (1. Zyklus =1, 2. Zyklus =0, 3. Zyklus =1, etc...)
2. Erstelle einen Blinktakt mit X Sekunden (100ms als Beispiel)
3. Wenn der Blinktakt in einem Zyklus auf 1 wechselt, startest du einen Zähler, der mit dem Zyklustakt hoch gezählt wird (Mit FP und FN).
4. Wenn der Blinktakt in einem Zyklus auf 0 wechselt, lädst du den Wert von dem Zähler und transferierst ihn in eine Variable (MW, DW, etc.)
5. Somit kannst du dir errechnen, wie lange ein SPS Zyklus in etwa ist. Sprich wenn du nach 100ms den Wert ausliest und der Wert 50 ist, hat die SPS etwa einen Zyklus von 2ms.
6. Dann startest du einen Zähler wenn ein Objekt durch die 1. Lichtschranke kommt und liest ihn aus, wenn es durch die 2. LS fährt.
7. Somit kannst du mit der errechneten Zykluszeit und dem gemessenen Wert einen "etwa" Wert errechnen, aber so genau ist das nicht.

Das ganze funktioniert noch besser, wenn du ne 314 CPU hast und dann ne Frequenz an den HS_Count Eingang legst...

Vielleicht kann dir das helfen...


[edit]
Hups, da waren ja noch 3 Seiten dahinter... :D
Naja, ignoriert den Text einfach...
[/edit]
 
Zurück
Oben