Zeitmessung (#TIMER)

Der NC-Befehl #TIMER bietet die Möglichkeit der Zeitmessung im NC-Programm. Die erfasste Zeit wird in der Einheit Millisekunden (ms) dargestellt.

Achtung

attention

Die Timerzähler stehen kanalübergreifend (global) zur Verfügung. Dies ermöglicht z.B. die Messung von Signallaufzeiten zwischen Kanälen.

Bei parallelen unabhängigen Zeitmessungen in verschiedenen Kanälen ist darauf zu achten, unterschiedliche Zählernummern (ID's) zu verwenden. Ansonsten beeinflussen sich die Messungen gegenseitig!

#TIMER <Aktion> [<Modus>] [ID<counter_nr>]                                                                 (nicht modal)

<Aktion>

Bestimmt die Aktion mit dem bezeichneten Zähler (ID).

Aktion

Bedeutung

START

Starten des Zählers (ID).

STOP

Stoppen des Zählers (ID).

READ

Auslesen des Zählers (ID).

Der Zählerstand wird gelatcht und in der zugeordneten V.G.TIMER[ID]-Variable in Millisekunden (ms) ab-gelegt.

CLEAR

Rücksetzen und Stoppen des Zählers (ID).

Die zugeordnete V.G.TIMER-Variable wird dabei nicht gelöscht sondern bleibt bis zu einer erneuten READ-Aktion des zugehörigen Zählers erhalten.

Achtung

attention

Mit der Timerfunktion können Zeiten bis maximal 1193 Stunden erfasst werden.

<Modus>

Synchronisationsart:

Gültige Modi

Bedeutung

---

Zeitmessung asynchron zum Interpolator auf Decodier-Ebene (Grundeinstellung). Die Zeitmessung beginnt direkt nach der Decodierung.

SYN

Zeitmessung auf Interpolator-Ebene. Der bezeichnete Zähler wird synchron zu Bearbeitungsvorgängen der NC–Maschine gesetzt. Beim synchronen Lesen (<SYN>) im Interpolator wird die Decodierung unterbrochen, bis der Zählerstand auf Decodier-Ebene in die Timervariable übernommen worden ist.

Hinweis

notice

Zur Messung von Programmlaufzeiten müssen die Timer immer mit dem Schlüsselwort SYN verwendet werden.

ID<counter_nr>

Zählernummer:

Gültige Werte

Bedeutung

0...127

Es können maximal 128 kanalübergreifende Zähler programmiert werden. Pro Timerbefehl kann jedoch immer nur ein Zähler (ID) programmiert werden.

Programmierbeispiel

prg_example

Zeitmessung

:

#FILE NAME[ MSG="C:\timer.txt" ] Dateiname für Zeitprotokollierung

:

#TIMER START [ID=10]                 Zähler 10 (Decodier-Ebene) starten

#TIMER START SYN [ID11]              Zähler 11 (Interpolator-Ebene) starten

:

:

#TIMER READ [ID10]                   Zählerstand ablegen in V.G.TIMER[10]

#TIMER READ SYN [ID11]               Zählerstand ablegen in V.G.TIMER[11]

#MSG SAVE["T10 = %d",V.G.TIMER[10]]  Zählerstand in Datei protokollieren

#MSG SAVE["T11 = %d",V.G.TIMER[11]]  Zählerstand in Datei protokollieren

#TIMER STOP [ID10]                   Zähler 10 stoppen

#TIMER CLEAR [ID10]                  Zähler 10 zurücksetzen

:

:

#TIMER READ SYN [ID11]               Zählerstand ablegen in V.G.TIMER[11]

#MSG SAVE["T11 = %d",V.G.TIMER[11]]  Zählerstand in Datei protokollieren

:

:

#TIMER READ SYN [ID11]               Zählerstand ablegen in V.G.TIMER[11]

#MSG SAVE["T11 = %d",V.G.TIMER[11]]  Zählerstand in Datei protokollieren

:

:

#TIMER READ SYN [ID11]               Zählerstand ablegen in V.G.TIMER[11]

#MSG SAVE["T11 = %d",V.G.TIMER[11]]  Zählerstand in Datei protokollieren

#TIMER STOP SYN [ID11]               Zähler 11 stoppen

#TIMER CLEAR SYN [ID11]              Zähler 11 zurücksetzen

:

:

:

#TIMER START [ID=10, ID11]           Fehler, nur ein Zähler pro Timerbefehl

                                     erlaubt!

:

: