Step 7 Genauigkeit TON (SFB4) S7-317-2PN-DP

mitchih

Level-2
Beiträge
807
Reaktionspunkte
32
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe folgendes:

Ich bilde mir mittels TON einen Sekunden impuls um die Taktzeit meiner Anlage zu messen.

Leider scheint das recht ungenau zu werden.

Zykluszeit ist so zwischen 8 und 14 ms. auf 120sek. habe ich jedoch schon 4sec. differenz.

Jemand eine Idee ?

Code:
un #s_Sek_Impuls.Q
= #_s_Sek_Impuls.In
Call #s_Sek_Impuls (SFB4)
In:=
PT:=T#1s
Q:=t_Sek_Impuls
ET:=

Gruß
mitchih
 
Zuviel Werbung?
-> Hier kostenlos registrieren
bei so großen Taktzeiten von 120 sec könntest du auch die RTC verwenden.
Eine alternative Methode um eine Zeit genau zu messen wäre die Zykluszeiten auszulesen und für die Dauer der Messung zu summieren.
 
Moin!

Für einen Sekunden Takt kannst du besser das Taktmerkerbyte nutzen.

Falls es nur um die Gesamtlaufzeit eines Taktes geht nutze einen TON mit einer hohen Vorgabezeit (Zeit > max. Takt) und sichere dir TON.ET bei ende des Taktes.

Der TON läuft Zykluszeit unabhängig, das bedeutet das du schlimmsten falls einen Zyklus vergeudest bis du merkst das der TON abgelaufen ist.
Zusätzlich vergeht ein Zyklus zum zurücksetzen des TON
 
Code:
un #s_Sek_Impuls.Q
= #_s_Sek_Impuls.In
Call #s_Sek_Impuls (SFB4)
In:=
PT:=T#1s
Q:=t_Sek_Impuls
ET:=
Wenn du das so programmierst, dann hast du ja auch pro Impuls einen Zyklus "Totzeit".

Der Ausgang .Q kommt, dann kommt der Zyklus wieder zu UN #s_Sek_Impuls.Q, Bedingung für .In ist nicht mehr
gegeben, .Q wird FALSE, und erst im nächsten Zyklus ist die Bedingung für den Timerstart wieder gegeben.

Das bedeutet, zwischen .Q ist nicht mehr TRUE und Timer wird wieder gestartet liegt ein Zyklus. Also pro Sekunde ca. 14ms Abweichung.
Bei deinen 120 Sek = 120 * 14ms = 1.680ms = 1,68 Sek Abweichung rein schon mal durch deinen Code
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Exakte Zeiten oder Taktfolgen kann man nicht mit Timern wie TON & Co erzeugen, weil sich die da unvermeidlichen Laufzeit-Ungenauigkeiten aufsummieren/fortpflanzen (selbst wenn man den für die Startflanke nötigen Leer-Zyklus eliminiert). Man muß die Zeiten oder Taktfolgen von OB1-Zykluszeit-unabhängigen Zeitgebern ableiten. Falls man die Uhrzeit verwenden will, dann muß man klären, ob ein Verstellen der Uhrzeit (+/-) tolerierbar ist.

Harald
 
@TE:
Ich verstehe deinen Ansatz nicht so recht. Warum machst du es nicht so, dass du den TON mit deinem Zyklus (also dem Ablauf, den du messen möchtest) startest, dem Timer eine nicht erreichbare Zeit vorgibst und dann beim "echten" Ende deines Ablaufs den Timer (also dessen abgelaufene Zeit) ausliest. Damit solltest du den Anlagentakt ziemlich genau messen können - sogar wenn es not tut im ms-Bereich.
Sekunden-Impulse zählen würde ich generell nicht machen ...

Gruß
Larry
 
Zurück
Oben