Rechenparameter

Bei den Rechenparametern (kurz R-Parameter) handelt es sich um Interpreter-Variablen, die mit einem Ausdruck der Form "R<n>" genannt werden. Da es sich bei 'n' um eine Ganzzahl im Wertebereich 0..999 handelt, stehen insgesamt 1000 R-Parameter zur Verfügung. Davon sind die ersten 900 (R0..R899) Werte lokale Variablen des NC-Kanals. Sie sind nur durch den Interpreter des Kanals zugreifbar. Die R-Parameter R900..R999 sind global angelegt. Sie existieren nur einmal pro NC und die Zugriffe aller Kanäle erfolgen auf denselben Speicher. Dadurch ist ein Datenaustausch (z.B. für eine Teileverfolgung, Kollisionsvermeidung etc.) über die Kanalgrenze hinweg möglich.

Mathematische Berechnungen

Die R-Parameter (wie auch die Achs-Koordinaten, Vorschübe etc.) sind als Variablen des Typs „double“ angelegt. Dadurch ist die Rechenfähigkeit des Rechners voll nutzbar. Die Zahl der Vor- und Nachkommastellen ist nicht durch eine Format-Vorschrift festgelegt. Allerdings ist die Auflösung und Rechengenauigkeit begrenzt. Dies wird in der Praxis aber nur in besonders kritischen Fällen sichtbar. Beispiele dafür können Differenzen von fast gleichen sehr großen Zahlen oder trigonometrische Funktionen in bestimmten Winkelbereichen sein.

Zuweisung von R-Parametern

N100 R5=17.5
N110 R6=-4
N120 R7=2.5 R8=1

Wie die dritte Zeile zeigt, ist es ohne weiteres möglich, mehr als eine Zuweisung in einem Satz anzugeben. Dadurch wird die Interpretation ein wenig beschleunigt, aber ein Fehler in der Zeile kann schwieriger zu lokalisieren sein.

Rechenformeln

Eine Rechenformel ist eine Erweiterung der Zuweisung. Sie besteht aus einem Ziel-Parameter, einem Zuweisungszeichen und einer Kette von Werten (R-Parameter und Konstanten), die durch Rechenanweisungen getrennt sind.

N100 R1=R2+R3-17.5*R9/2.5 

Diese Formel wird (entgegen der mathematischen Vorgehensweise) strikt von links nach rechts abgearbeitet.

Die gezeigte Formel wird wie folgt gerechnet:

  1. Der Inhalt von R2 wird in das Rechenwerk geladen
  2. Der Inhalt von R3 wird in das Rechenwerk geladen
  3. Das Rechenwerk führt die Anweisung + aus
  4. Der Wert 17.5 wird in das Rechenwerk geladen
  5. Das Rechenwerk führt die Anweisung - aus
  6. Der Inhalt von R9 wird in das Rechenwerk geladen
  7. Das Rechenwerk führt die Anweisung * aus
  8. Der Wert 2.5 wird in das Rechenwerk geladen
  9. Das Rechenwerk führt die Anweisung / aus
  10. Der Inhalt des Rechenwerks wird im R-Parameter R1 gespeichert

Mathematische Funktionen

Der Interpreter stellt Standard-Rechenfunktionen zur Verfügung. Die DIN 66025 legt in dieser Hinsicht keine Syntax fest. Der Aufruf der Rechenfunktionen erfolgt über @6xx (vergl. Anhang - @-Kommando Übersicht).

Die trigonometrischen Funktionen werden dabei grundsätzlich in Grad berechnet.

Beispiel:

N10 R2=0 R3=45
N20 @630 R2 R3

In diesem Beispiel wird der Sinus von R3 in Grad berechnet. Das Ergebnis wird anschließend in R2 geschrieben.

R-Parameter Zugriff aus der SPS

Sie können die R-Parameter in die SPS einlesen, bzw. aus der SPS die R-Parameter beschreiben. Hierfür gibt es spezielle SPS-Bausteine, die dies ermöglichen

Achten Sie beim Beschreiben der R-Parameter darauf, dass der Interpreter der Satzausführung vorauseilt. D. h. das Schreiben der R-Parameter aus der SPS sollte vor dem NC-Programmstart erfolgen oder mit einem Dekodierstopp verbunden sein.

Zu Debug-Zwecken können Sie sämtliche R-Parameter zu beliebiger Zeit in eine Datei schreiben. Anstoßen können Sie diesen Prozess via ADS (vergl. ADS-Interface - Kanalfunktionen IndexOffset 0x24 & 0x25).

Sonstige Funktionen

RToDwordGetBit

Diese Funktion wandelt einen R-Parameter in ein DWord und überprüft dann, ob ein bestimmtes Bit gesetzt ist. Das Ergebnis wird wieder in einem R-Parameter hinterlegt.

Befehl

RToDwordGetBit[<dest>; <src>; <bit> ]

Parameter <dest>

R-Parameter in dem das Ergebnis eingetragen wird

Parameter <src>

R-Parameter, der die Zahl enthält die gewandelt und überprüft werden soll

Parameter <bit>

Bit, das überprüft werden soll (0..31)

Beispiel:

N10 R1=7
N20 RToDwordGetBit[R2;R1;0]
R10=31
N30 RToDwordGetBit[R3;R1;R10]

In R2 wird hier eine 1 und in R3 eine 0 eingetragen.

Initialisierung von R-Parametern

Mit 'set RParam' wird einem zusammenhängenden Block von R-Parametern ein Wert zugewiesen.

Befehl

#set RParam(<start index>; <count>; <value> )#

Parameter <start index>

Beschreibt den ersten zu beschreibenden R-Parameter

Parameter <count>

Anzahl der R-Parameter, die beschrieben werden sollen

Parameter <value>

Wert der zugewiesen wird

Beispiel:

N10 G01 X100 Y200 F6000
N15 R2=3000
N20 #set RParam( 1; 2; 0.0 )# (R2 is overwritten again here)
N30 G01 X500

Retten von R-Parametern

Wenn Sie den Inhalt von R-Parametern für eine spätere Verwendung noch brauchen, die R-Parameter aber zwischenzeitlich für einen anderen Zweck benutzt werden sollen, kann er zeitweise im Werte-Stapel des Rechenwerks hinterlegt werden.

Hierfür existieren zwei Möglichkeiten:

Retten der Werte:

Befehl

@40 <Anzahl> R<n> R<m>...

@41 <1. R-Parameter> <letzter R-Parameter>

Restauration der Werte:

Befehl

@42 <Anzahl> R<n> R<m>

@43 <letzter R-Parameter> <1. R-Parameter>

Beim Restaurieren der Werte nennen Sie die Parameter in umgekehrter Reihenfolge.

Beispiel 1:

(saving the data) 
N100 @40 K4 R800 R810 R823 R4

N110 R800=4711
N120 ...

(restoring the data)
N200 @42 K4 R4 R823 R810 R800

Beispiel 2:

(saving the data)
N100 @41 R800 R805

N110 R800=4711
N120 ...

(restoring the data)
N200 @43 R805 R800
Rechenparameter 1:

Größe des Stacks

Der Wertestapel des Rechenwerks hat eine begrenzte Kapazität. Läuft er über, so wird das NC-Programm mit einer Fehlermeldung abgebrochen. Das kann beim Retten von Werten auftreten, kann aber auch bei einer daran anschließenden Rechenformel vorkommen.