TIA Schneller Zähler als Taktgeber

Zuviel Werbung?
-> Hier kostenlos registrieren
Tja hucki ... genau das ist das Problem bei manchen HSC.
Selbst der Reset im Alarm-OB löst bei höherer Frequenz das Problem nicht.
Ich weiß jetzt aus dem Kopf nicht genau, wie's bei der 200er war. Aber ich bin der Meinung, dass das dort mit dem Rücksetzen im Interrupt recht gut funktionierte. Da sind's ja nur die paar Microsekunden für die Befehlsausführung, wenn man nicht erst nocht 1000 andere Sachen gemacht hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Selbst wenn der HSC im Interrupt zurückgesetzt wird kann es passieren, daß der Zähler schon weitergezählt hat, weil bis zum Rücksetzbefehl ja eine Reaktionszeit vergeht die u.U. länger als die Impulsabstände ist.
Sicher ist da wirklich nur, wenn der Hardware-Zähler sich selber rücksetzt oder als Rückwärtszähler sich auf den Anfangswert setzt (ich habe keine Ahnung was der HSC bei S7-1200 kann).
Man könnte aber auch den Zähler endlos frei laufen lassen ohne Rücksetzen und nur die momentanen Zählerstände abfragen. Da wird man zwar wahrscheinlich auch nicht exakt nach 100 Impulsen reagieren, aber der Fehler summiert sich nicht, man bekommt nur einen Jitter in der Größe der Zykluszeit.

Harald
 
Aber das zurücksetzen mit Interrupt ist genauer als meine Version oder habe ich das falsch verstanden? Ich hätte nämlich gerne beim Andocken meines Geräts mit niedrigerer Drehzahl die Genauigkeit erhöht indem ich die 100 heruntersetzte und das geht ja glaube ich mit Interrupt nicht.
 
1. Zurücksetzen mit Interrupt sollte genauer sein, als im Zyklus.
2. Das Heruntersetzen der 100 erhöht dagegen die Ungenaugigkeit (je häufiger zurückgesetzt wird, desto mehr summiert sich die Rücksetzungenauigkeit)

Ich würde den Zähler soweit wie möglich an seine Grenze zählen lassen und dann erst zurücksetzen.
Deine gewünschte Teilung ermittelst Du durch Division und Flanke bei neuem Ergebnis.
Das Rücksetzen würde ich nicht auf genau 0 machen, sondern auf z.B. "aktuellen Wert - 30.000". Weiß jetzt aus dem Kopf nicht, wie weit der HSC zählt. Im Beispiel würde ich den Interrupt also bei 30.000 auslösen. Zwischen Interruptauslösung und Rücksetzung gezählte Impulse sollten so theoretisch nicht verloren gehen. Damit solltest Du die Ungenauigkeiten weitestgehend minimieren können.

PS: Allerdings verbraucht die Rechnerei auch wieder etwas Zeit, also ist vlt. die Rücksetzung auf den festen Wert Null doch genauer.
:confused:
 
Zuletzt bearbeitet:
Wenn es sich von den Grenzen des Zählers ausgeht, ich ihn frei laufen lasse und für jede Position einen Bereich festlege und den Bereich dann mit ED1000 vergleiche müsste es ja eigentlich auch funktionieren oder?
 
Wenn es sich von den Grenzen des Zählers ausgeht, ich ihn frei laufen lasse und für jede Position einen Bereich festlege und den Bereich dann mit ED1000 vergleiche müsste es ja eigentlich auch funktionieren oder?
Jein.
Aus dem Kopf weiß ich nicht, ob der Zähler automatisch überläuft/wieder bei 0 beginnt. Könnte auch sein, das er am Ende stehen bleibt.
:confused:

Aber sicher wird er eine im dezimalen ziemlich "krumme" Grenze habe. Nämlich bei 16 oder 32 Bit. Das ist zu Deiner 100er Teilung wahrscheinlich kontraproduktiv.
;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es geht sich aus der Zähler kann von ca. 21 000 000 000 bis ca. -21 000 000 000 Zählen, dass reicht in meinem Fall und somit brauche ich ja eigentlich sowieso nur bei meinem Referenzpunkt zurücksetzen. Aber kann ich jetzt das ED1000 direkt zur Positionierung benutzen wenn ich einen Bereich festlege wo die Maschine zu bremsen beginnen soll oder muss ich dafür im Alarm-OB ein MD benutzen und das dann mit dem festgelegten Bremsbereich vergleichen?
 
Zuletzt bearbeitet:
Zurück
Oben