Ich suche eine Baustein um die Drehzahl zu messen

J

jsmue

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo ich suche einen Baustein oder Tipp wie mann mit einer S7 Cpu 315 DP
mit einem normalen Eingang die Drehzahl einer Maschine ca 100 U/min messen kann. SFB 48 ist nur fur die CPU`s 31xC zugelassen ?
Beispiel wäre Super Danke im Voraus Jo. :( :(
 

plc_tippser

Well-known member
Beiträge
2.500
Punkte Reaktionen
301
Interessante Sache.
Problem sehe ich bei der Signalerfassung. Der Impuls des Signalgebers wird sehr kurz sein, evt. kürzer als die SPS-Zykluszeit. Somit gehen dir Impulse verloren und die Anzeige passt nicht. Von den DigiIN sehe ich kein Problem.

Stellt sich die Frage, kann man einen DI mit einem Interrupt belegen?

Ich bleib dran, habe heute abend Babysitterdienst :D

pt
 

Ralf

Well-known member
Beiträge
194
Punkte Reaktionen
50
Zuviel Werbung?
->Hier kostenlos registrieren
Die gängigen Baugruppen sind schätzungsweis zu lahm, man kann auch nur der 7BH01-0AB0 Alarme zuweisen, ich befürchte jedoch, ohne Zählbaugruppe gibts Probleme

Gruß

Ralf
 

Balou

Well-known member
Beiträge
221
Punkte Reaktionen
0
Nabend

naja kommt darauf an wie die welle aussieht wir machen immer halb und halb also eine hälfte der welle kommt der eingang und die anderehälfte nicht.

Bei 100 U/min machts etwa 1,66 Inmpulse pro sec das sollte man messen können.

Am einfachsten ist es die Flanken der Impulse auszuwerten und die Zeit zwischen den beiden Flanken zu messen bzw aus der CPU internen Zeit (kann man Irgendwo als ms wert rausladen) zu errechen und schon hat man einen Baustein mit dem man die Drehzahl messen kann.

Bei Intresse Poste ich hier gern meine Idee von Baustein dazu.

MfG Balou

P.S. Solltest du eine So hohe Zykluszeit haben das die Überwachung nicht geht nimm nen Ineterrupt und lade die Eingangsdaten als PEW dierekt aus der Baugruppe
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Messung der Zeit zwischen den Flanken:
Wenn du alle 10ms den OB35? das PEW lesen läßt, hast du die Zeit zweier Flanken auf +-10ms genau. Bei 100UpM ist die Periodendauer 600ms+-20ms. Das sind schon 6% Streuung unter den günstigsten Umständen.
Wenn du nun die Dauer von 10 Impulsen bestimmst, sind es 0,6%. Damit du nicht 6 Sekunden darauf warten mußt, schreibst du die Zeitmarken von 10 Flanken in einen FIFO oder Ringspeicher. Bei jeder neuen Flanke überschreibst du den ältesten Wert und errechnest die neue Geschwindigkeit aus der Differenz der neuesten und ältesten Zeit.
Du bekommst also pro Impuls einen neuen Wert. Dieser ist aber nicht "momentan" sondern Tiefpass-gefiltert.
Je nach Eigenschaften des Impulsgebers bietet es sich an, eine andere Zahl von Impulsen zu betrachten, z.B. ein Vielfaches der Zahnzahl bei Zahnrädern.
 

smoe

Well-known member
Beiträge
334
Punkte Reaktionen
10
Zuviel Werbung?
->Hier kostenlos registrieren
Am einfachsten ist es wenn du die Anzahl der Impulse zählst (wenn Flanke vom Eingang => Zählwert +1). Nach Ablauf von einer Minute sicherst du den Zählwert und setzt ihn wieder auf 0. Der gesicherte Wert entspricht dann den Impulsen/min (U/min). Der Nachteil ist, das erst nach der Minute der Wert zur Verfügung steht und das nur ganze Umdrehungen gezählt werden (95,2 U/min gibt es nicht).

smoe
 

plc_tippser

Well-known member
Beiträge
2.500
Punkte Reaktionen
301
@smoe
Das ist sehr unpraktisch, du bekommst keine Drehzahländerung mit

@Zottel
600ms? Aber nur der Umlauf. Je nachdem, wie die Impulse gebildet werden bekommst Du sie nicht mit.

pt
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Diese Empfehlung aus dem vorhergehenden Beitrag hatte ich schon vorrausgesetzt:
...naja kommt darauf an wie die welle aussieht wir machen immer halb und halb also eine hälfte der welle kommt der eingang und die anderehälfte nicht. Bei 100 U/min machts etwa 1,66 Inmpulse pro sec das sollte man messen können.
Bei 10ms Abtastzeit durch den OB35 reicht es aber, daß die kürzere Zeit (ein- oder aus) größer als 20ms ist.
 
Oben