Laufzeitenzähler

Deimos0815

Level-1
Beiträge
32
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Mahlzeit, ich bräuchte nochmal kurz etwas Hilfe. Ich will in einem FB eine Zeit messen. Dafür wollt ich ein WORD oder ggf. ein DWORD nehmen. Die Frage ist, gibt es Bausteine die mir eine Zeit liefern? Hatte mir auch schonmal etwas überlegt, denke allerdings das das so nicht funktioniert, da nur während des Durchlaufs gezählt wird.
Code:
U Takt_Merker (bei mir gerade 10 Hz = 0,1 sec)
U Element_Ein
SPBN M001
 
L Laufzeit
L 100 (Oder das was halt passt)
+D
T Laufzeit
 
M001:

Die Frage ist, gibt es da bessere Methoden und würde das so überhaupt laufen.

Danke mal wieder im Vorraus und bis denne

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
U Takt_Merker (bei mir gerade 10 Hz = 0,1 sec)
U Element_Ein
[COLOR=Red]FP M10.0[/COLOR]
SPBN M001
 
L Laufzeit
L 100 (Oder das was halt passt)
+D
T Laufzeit
 
M001:
Die Frage ist, gibt es da bessere Methoden und würde das so überhaupt laufen.

Flanke rein, sonst zählt er 100ms lang die 100 dazu
 
Super, danke.
Hab die Beführchtung das wenn ich das wie oben in meinem Code mache, der Zähler ja nur dann Zählt, wenn ich gerade in dem Baustein bin. Befindet sich das Programm gerade außerhalb, passiert ja nix in dem Baustein. Da die Anlage recht groß ist, würd ich auch auf längere Laufzeiten tippen.

Bis denne
 
Zuletzt bearbeitet:
Super, danke.
Hab die Beführchtung das wenn ich das wie oben in meinem Code mache, der Zähler ja nur dann Zählt, wenn ich gerade in dem Baustein bin. Befindet sich das Programm gerade außerhalb, passiert ja nix in dem Baustein. Da die Anlage recht groß ist, würd ich auch auf längere Laufzeiten tippen.

Bis denne

Na wie genau muss es denn sein?
Oft reicht z.B. Sekunden-Raster (z.B. Laufzeitüberwachung Ventil)
 
Morgen, im Millisekunden bereich sollte es schon sein. Find die Idee mit dem SFC64 gut. Werd mir das mal näher anschauen. Hab halt langsam das gefühl das ich Probleme mit dem Stat - Speicher bekomme. Werte einen Flankenwechsel aus und starte dann eine Zeit. Das ganze muss dann für 64 Elemente gemacht werden und solangsam kommen mir Zweifel ob das nicht zuviele Byte an stat-Merkern werde.

danke schonmal
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen, im Millisekunden bereich sollte es schon sein. Find die Idee mit dem SFC64 gut. Werd mir das mal näher anschauen. Hab halt langsam das gefühl das ich Probleme mit dem Stat - Speicher bekomme. Werte einen Flankenwechsel aus und starte dann eine Zeit. Das ganze muss dann für 64 Elemente gemacht werden und solangsam kommen mir Zweifel ob das nicht zuviele Byte an stat-Merkern werde.

danke schonmal

Wenn die Aktionen so zeitkritisch sind und Deine Zykluszeit zu hoch, dann wechsle für die wichtigsten Aktionen vom OB1 zu Zeit-OB.
 
Moin, Zeitkritisch ist es nicht. Nur wäre es schön wenn es ginge. Naja, morgen das ganze erst nochmal besprechen, da ich wohl zuviel Speicher belegen werde.
Bis denne
 
Moin, Zeitkritisch ist es nicht. Nur wäre es schön wenn es ginge. Naja, morgen das ganze erst nochmal besprechen, da ich wohl zuviel Speicher belegen werde.
Bis denne

Was hast du denn für eine CPU?
Nur 64 Zeiten, wo ist da das Problem?
Das sind 128 Byte, das ist doch heute kein Problem.
Außerdem würde ich eine Funktion schreiben du bei Bedarf aufrufst.
Willst du die Laufzeit ermitteln oder nur überwachen, dass du nicht zu lang für die Bewegung brauchst?


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen, sorry hatte gestern Abend nicht mehr rein geschaut. Also die CPU ist eine 315-2 ( Vll später auch mal ne kleinere). Die Idee war, dass man von jedem Element die Fahrzeiten aufnimmt und bei erreichen diese wieder resettet. Mit dem Speicher meine ist, dass der FB ca. 20 mal eingesetzt werden soll. Keine Ahnung ob das Probleme macht, nur ist es grob überschlagen schon eine Menge. Weiß halt nicht, ob man so das eigentliche Programm ausbremst. Kannst du sagen wie ich das mit 2 Byte hinbekommen? Weil bis jetzt ist mir noch keine Idee gekommmen.

Danke schonmal im Vorraus und bis denne​
 
Hallo

eine einfache Art des Laufzeitenzähler ist eine S7- Vorwärts Zähler verwenden und eine Taktmerker drauflegen (100ms). Es werden dann keine zusätzlichen Ressourcen verwendet. Die Auflösung ist halt nur eben 2x100ms.

Die maximale Laufzeit muss halt berücksichtigt sein, aber es entfällt jeglicher FB Aufruf und sonstiges und er kann einfach zurückgesetzt werden.

mfg ASAB
 
Moin, die Idee mit dem Taktmerker hatte ich auch schon. Nur hab ich da die Bedecken, dass es nur gezählt wird, wenn ich in dem FB bin. Da ist mich aber gern möglist kurz in dem FB bleiben möchte, denke ich mal das er nicht das zählt was ich gern hätte.
Mit den S7 Zählern, so ich das bis jetzt verstanden habe, kann ich die gerade nicht nutzen, da die immer eine eindeutige Bezeichung brauchen. Hatte das so verstanden das man da besser IEC Zähler oder einen Selbstgebauten nimmt.
MfG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin, die Idee mit dem Taktmerker hatte ich auch schon. Nur hab ich da die Bedecken, dass es nur gezählt wird, wenn ich in dem FB bin. Da ist mich aber gern möglist kurz in dem FB bleiben möchte, denke ich mal das er nicht das zählt was ich gern hätte.

Wenn du nur ganz kurz mal in den FB reingehst? Der kürzeste Taktmerker aus dem Taktmerkerbyte hat 100ms. Dein Programm vielleicht 8-20ms. Wo liegt dein Problem?

Schreib dir einen FB. In diesem verwendest die IEC-timer. Bei der Ausführung als Multiinstanz hast nur einen Instanzdatenbaustein. Alternativ 20-mal den FB normal aufrufen und fertig.
 
Zurück
Oben