Step 7 Trittfrequenz aufnehmen/messen

Jokki58

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute, wir müssen in der schule eine arbeit machen. Wir müssen eine trittfrequenz eines Velos aufnehmen und anhand dieser trittfrequenz müssen wir verschiedene LEDs ansteueren z.b LED trittfrequenz 70-75. meine Frage ist es nun wie ich diese Trittfrequenz mit der sps aufnehmen kann um dann per vergleicher die verschieden LEDs ansteueren kann? Bitte um hilfe! Danken:)
 
Hallo Leute, ich muss eine Arbeit in der Schule machen aber ich brauche euere Hilfe. Ich muss eine trittfrequenz per SPS aufnehmen (von einem fahrad) um dann anhand von der Trittfrequenz LEDs anzusteueren z.b LED trittfrequenz 70-75. meine Frage ist es nun wie ich das realisieren kann um die trittfrequenz aufzunehmen? Danke für euere hilfe!:) Mit freundlichen Grüßen jokki:)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute, ich muss eine Arbeit in der Schule machen aber ich brauche euere Hilfe. Ich muss eine trittfrequenz per SPS aufnehmen (von einem fahrad) um dann anhand von der Trittfrequenz LEDs anzusteueren z.b LED trittfrequenz 70-75. meine Frage ist es nun wie ich das realisieren kann um die trittfrequenz aufzunehmen? Danke für euere hilfe!:) Mit freundlichen Grüßen jokki
 
Magnet auf die Kurbel, Reedkontakt am Rahmen. Reedkontakt an Digitalen Eingang, Impulse über eine bestimmte Zeit mitzählen, fertig.
 
Wie wir das aufnhemen wissen wir schon und zwar mit einer Gabellichtschranke aber mich interessiert eher das Programm.

"Impulse über eine bestimmte Zeit mitzählen" Wie kann man das mit den Bausteinen machen? Entschuldigung, ich hab echt kein Plan von Timer und Zählern :/
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Welche Hardware hast du denn?

Wenn du den Lichtschranken an einen Eingang anschließt der einen Interrupt auslösen kann dann brauchst du nur die Zeit zwischen zwei Interrupten messen.
Dann kannst du sofort in die Trittfrequenz umrechnen. (60000/Zeit_ms)
Wenn es nicht ganz genau sein muss (wenn du es eh nur über LED's anzeigst) und deine OB1 Zykluszeit nicht allzu lange ist, dann kannst du die Zeitspanne auch im OB1 berechnen und die Interrupts weglassen.

Eine weitere Möglichkeit ist, wenn du keine Interrupt Eingänge hast und deine Zykluszeit deines OB1 zu lange ist, dass du den OB35 zb alle 5ms aufrufst und dort deine Lichtschranke auswertest.

Also wenn eine Positive Flanke deines Einganges anliegt, dann beginnst du mit dem Zählen. Jedesmal wenn dein Baustein aufgerufen wird addierst du die Aufrufzeit (OB35) oder Zykluszeit (OB1).
Dies machst du so lange bis an deinen Eingang wieder eine positive Flanke anliegt. Jetzt kannst du die Trittfrequenz berechnen, den Zähler wieder auf 0 setzen und das ganze beginnt wieder von vorne.

Alternativ kannst du zur Messung der Zeit auch den SFC1 verwenden. Mit diesem liest du die Uhrzeit bei jeder pos Flanke aus und berechnest dir aus der Differenz der Zeiten die Zeitspanne.
 
Die Hardware ist: PS 307 5A; CPU 313C V2.6
Wir haben ein Lochrad mit 12 Löcher für eine Trittfrequenz 70 pro Minute, kriegen wir 840 Impulse pro Minute und 14 Impulse pro Sekunde.
Wir wissen nur nicht wie man die Impulse richtig zählt, mit einem normalen Vorwärtszähler funktioniert es nicht richtig.Die Trittfrequenz wird mit LEDs angezeigt. Die LEDs werden mit Vergleicher angesteuert.
 
Hallo,
die simpelste Form einer Frequenzmessung geht so :
Schritt 0 : Zähler löschen
Schritt 1 : Timer starten - während der Timer läuft die eingehenden Impulse zählen
Schritt 2 : Zählung stoppen , den ermittelten Zählwert verrechnen und ausgeben
Schritt 3 : zurück zu Schritt 0

versuch mal das als SPS-Programm umzusetzen ...
Anmerkung : je kürzer dein Timer läuft umso unpräziser ist deine Messung - je länger er läuft umso länger dauert eine mögliche Aktualisierung der Messung ...

Gruß
Larry
 
Die Hardware ist: PS 307 5A; CPU 313C V2.6
Wir haben ein Lochrad mit 12 Löcher für eine Trittfrequenz 70 pro Minute, kriegen wir 840 Impulse pro Minute und 14 Impulse pro Sekunde.
Wir wissen nur nicht wie man die Impulse richtig zählt, mit einem normalen Vorwärtszähler funktioniert es nicht richtig.
Eben! Zum normalen Auswerten im OB1 ist sehr wahrscheinlich die Impulslänge zu kurz, die Frequenz für gut aufgelöstes Frequenzmessen aber noch zu niedrig.

Du hast aber Glück: Die CPU 313C kann direkt Frequenzmessen in Hardware und Du müßtest das Frequenzmessen nur einrichten und kannst dann z.B. alle halbe Sekunde den Meßwert einfach auslesen.

Siehe dazu folgende Handbücher:
S7-300 CPU 31xC Technologische Funktionen
Kapitel 5 Zählen, Frequenzmessen und Pulsweitenmodulation

S7-300 Erste Schritte zur Inbetriebnahme CPU 31xC: Zählen
S7-300 Automatisierungssystem S7-300: Getting Started CPU 31xC: In Betrieb nehmen
S7-300 CPU 31xC und CPU 31x: Aufbauen Firmware V2.6
S7-300 CPU 31xC und CPU 31x: Technische Daten Firmware V2.6

Mit welcher Software programmierst Du?
Falls das STEP 7 Lite ist: SIMATIC S7-300 Tutorial – Einsteiger

Harald
 
Ja wie PN/DP schon sagt hast du bei der 313C die Möglichkeit direkt die Frequenz zu messen.
Das ist einfach und am genauesten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bau dir doch eine eigene Stoppuhr z. B. mit dem SFC64 "Time_TCK", mit kommenden Ereignis Zeit speichern und mit dem nächsten kommenden Ereignis 2. Zeit auslesen voneinander abziehen und Du weiß genau wie lang die Pulszeit war. Oder mehrere Pulse hochzählen und dann die Laufzeit ausrechnen. Da ist eigentlich sehr genau.
 
Bau dir doch eine eigene Stoppuhr z. B. mit dem SFC64 "Time_TCK", mit kommenden Ereignis Zeit speichern und mit dem nächsten kommenden Ereignis 2. Zeit auslesen voneinander abziehen und Du weiß genau wie lang die Pulszeit war. Oder mehrere Pulse hochzählen und dann die Laufzeit ausrechnen. Da ist eigentlich sehr genau.

Nein da weiß man nicht genau wie lange die Pulszeit ist, da jeweils die Zeit dabei ist vom erstellen des PAE bis zu deinem code wo du den SFC64 aufrufst.
Dies wird nur genau wenn du dies in einem Interrupt realisierst. Da aber sowieso eine 313C verwendet wird mit integrierten Zähler kann er sich gleich die Frequenz auswerten lassen.
 
Das Problem des TE ist doch so wie meistens, daß ein schwieriges Signal zu erfassen ist, die Programmier-Kenntnisse aber noch nichtmal zur Auswertung eines guten Signals reichen. Es nützt ihm nichts wenn man ihm allgemeine Algorithmen nennt, welche dummerweise auf seiner 313C nicht funktionieren, weil das Signal zu kurz ist oder weil TIME_TCK nur eine Auflösung von 10ms hat. Wir Profis wissen, wie man die Algorithmen modifizieren muß, damit man sie auch unter ungünstigen Bedingungen anwenden kann - der TE aber doch nicht.

Die Löcher vor seiner Gabellichtschranke werden so klein sein, daß nur ein sehr kurzer Impuls entsteht, den die 313C im OB1 nicht sicher erfassen kann (der TE ja schon festgestellt daß ein Standard-Zähler im OB1 nicht richtig funktioniert). Er hat nur eine Chance mit Prozessalarm-Eingang und Zählen im OB40 oder den vorhandenen schnellen Hardwarezähler zu benutzen. Beides ist für Programmieranfänger natürlich sehr kompliziert.
Das Zählen im OB40 ist bestimmt eine zu hohe Hürde für TE, weil da noch einiges an Mathematik nötig ist, damit es eine vernünftige Auflösung der max 14Hz in weniger als 1 Sekunde Aktualisierungszeit hergibt - mehr als man auf den ersten Blick denkt. (Oder findet sich jemand der das Programm schreibt?)

Ich glaube, daß das Konfigurieren des schnellen Hardwarezählers für Frequenzmessen für ihn einfacher zu lösen ist - das sollte er hinkriegen, er muß nur konzentriert das Handbuch durchgehen. Außerdem ist es auch die technisch bessere Lösung.

Harald
 
Zurück
Oben