# 1/100Millisekunden zählen



## drfunfrock (9 Januar 2008)

Ich möchte die Anzahl von 1/100 Millisekunden zählen, die seit einem Ereignis vergangen sind. Aber wie baue ich einen Zähler auf, der halbwegs unabhängig von der  Zykluszeit zählt? (Ich programmiere in ST) Meine Zykluszeit ist nun 50ms.


----------



## hovonlo (9 Januar 2008)

Willst du wirklich in 1/100 Millisekunden zählen? Das wären dann nämlich 10 Mikrosekunden ....


----------



## edison (9 Januar 2008)

Lies doch die Systemzeit bei Start und Ende aus.
Die Differenz ist Deine Zeit in ms also 1/100s

1/100ms ist ohne Hardwarezähler nich drin.
Evtl. gibts da ne FM für?


----------



## gravieren (9 Januar 2008)

Hi 



> Lies doch die Systemzeit bei Start und Ende aus.
> Die Differenz ist Deine Zeit in ms also 1/100s


1/1000s --> 1ms

1/100s --> 10ms 

Neuere Simatic-CPUs Auflösung im ms-Bereich ! ?


----------



## gravieren (9 Januar 2008)

Hi

@drfunfrock


> Ich möchte die Anzahl von 1/100 Millisekunden zählen, die seit einem Ereignis vergangen sind. Aber wie baue ich einen Zähler auf, der halbwegs unabhängig von der Zykluszeit zählt? (Ich programmiere in ST) Meine Zykluszeit ist nun 50ms.


Verrate uns doch mal, was du "machen" willst.

Zählerkarte FM350 ?  (Frequennzmessung)


----------



## zotos (9 Januar 2008)

drfunfrock schrieb:


> Ich möchte die Anzahl von 1/100 Millisekunden zählen, die seit einem Ereignis vergangen sind. Aber wie baue ich einen Zähler auf, der halbwegs unabhängig von der  Zykluszeit zählt? (Ich programmiere in ST) Meine Zykluszeit ist nun 50ms.



1/100 ms -> 10µs

Um was für ein Ereignis handelt es sich denn? 

Solche Sachen lagern wir für gewöhnlich in einen DSP aus übertragen das Ergebnis an die SPS. Kostenintensiv, wir überwachen aber auch nicht nur ein Signal und müssen da auch einiges vor verarbeiten. 

PS: Hast Du Dich bei den 50ms Zykluszeit verschrieben, oder nutzt Du seit neustem eine S7? ;o)


----------



## edison (9 Januar 2008)

lol, damit alle sehen, was ich für einer bin - steh ich mal dazu und editier es nicht.

@gravieren:


----------



## marlob (9 Januar 2008)

drfunfrock schrieb:


> Ich möchte die Anzahl von 1/100 Millisekunden zählen, die seit einem Ereignis vergangen sind. Aber wie baue ich einen Zähler auf, der halbwegs unabhängig von der  Zykluszeit zählt? (Ich programmiere in ST) Meine Zykluszeit ist nun 50ms.


Vielleicht sagst du uns auch noch welche Steuerung du verwendest
Dann können wir dir evtl. die passenden Baugruppen nennen, die das können
oder ob es überhaupt mit der Steuerung geht


----------



## drfunfrock (10 Januar 2008)

Moin ,
danke für die Bemühungen. Ich hab es schon geahnt. Es ist alles schiefgelaufen. 

Also noch einmal: 

Ich will 1/10s zählen und habe eine Zykluszeit von 50ms. Zur Zeit mache ich das mit der Konstruktion:

flag := not flag; 
if flag then
  zaehler := zaehler + 1;
end_if

Das hat aber den Nachteil, dass wenn ich die Zykluszeit ändere, die Zeitmessung in die Hose geht. 
Ich habe hier nämlich 30 Objekte bei denen ich die Prozesszeit messe, indem ich jeweils einen zugehörigen Zähler aktualisiere.  Bei Prozessstart setze ich den einfach auf 0. 

Ach ja, ich setze hier TwinCat ein.


----------



## trinitaucher (10 Januar 2008)

Wo ist das Problem, wenn du 1/10 s (100 ms) messen willst?
Einfach ne schnelle Task einrichten (z.B. mit 10ms) oder gar schneller, und die mit der entsprechenden Hardware (Klemme) verknüpfen.
Welche Hardware kommt denn zum Einsatz (PC?)? Nutzt du evtl. EtherCAT?


----------



## zotos (10 Januar 2008)

Also jetzt nur noch 1/10s (?) Du verwirrst mich.

Welche Hardware? Nutz doch die Systemzeit und Subtrahiere die Startzeit von der zeit beim stoppen.


----------



## drfunfrock (10 Januar 2008)

trinitaucher schrieb:


> Wo ist das Problem, wenn du 1/10 s (100 ms) messen willst?
> Einfach ne schnelle Task einrichten (z.B. mit 10ms) oder gar schneller, und die mit der entsprechenden Hardware (Klemme) verknüpfen.
> Welche Hardware kommt denn zum Einsatz (PC?)? Nutzt du evtl. EtherCAT?




Ich habe schon alle 4 Task aufgebraucht und lasse TwinCat auf einem PC laufen. Geht das nicht anders als mit einem Task?


----------



## trinitaucher (10 Januar 2008)

- Tasks anders aufteilen
- Leistungsstärkeren PC nehmen (Zykluszeiten verbessern)
- Zählerklemmen einsetzen (Hardwarelösung)

Nutz du nun EtherCAT?


----------



## drfunfrock (10 Januar 2008)

An der Anlage nutze ich Ethercat, Profibus und Interbus  Frag mich bitte aber nicht nach dem Sinn des ganzen.


----------



## Tobias-PF (14 Februar 2011)

Schau mal ob dir der Profiler FB hilft
... vielleicht hilfts ja anderen mit dem gleichen Problem


----------



## Verpolt (14 Februar 2011)

Nach 3 Jahren wird er das gefunden haben


----------



## Nordischerjung (14 Februar 2011)

Verpolt schrieb:


> Nach 3 Jahren wird er das gefunden haben


Du hättest wenigstens mal ausrechnen können, wieviel ms seit dem vergangen sind ROFLMAO


----------



## Verpolt (14 Februar 2011)

Nordischerjung schrieb:


> Du hättest wenigstens mal ausrechnen können, wieviel ms seit dem vergangen sind ROFLMAO



soviele Finger hab ich nicht ROFLMAO:


----------



## StructuredTrash (14 Februar 2011)

drfunfrock schrieb:
			
		

> Das hat aber den Nachteil, dass wenn ich die Zykluszeit ändere, die Zeitmessung in die Hose geht.


Dann lies die eingestellte Zykluszeit doch aus dem SystemTaskInfoArr aus.


----------



## Nordischerjung (14 Februar 2011)

structuredtrash schrieb:


> dann lies die eingestellte zykluszeit doch aus dem systemtaskinfoarr aus.





verpolt schrieb:


> nach 3 jahren wird er das gefunden haben


*rofl*

1234567890


----------



## StructuredTrash (14 Februar 2011)

Ich habe nur knapp 1 Jahr gebraucht. Und wenn man den Namen erst mal weiss, findet man es auch recht schnell im InfoSys.


----------

