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:
- Der Inhalt von R2 wird in das Rechenwerk geladen
- Der Inhalt von R3 wird in das Rechenwerk geladen
- Das Rechenwerk führt die Anweisung + aus
- Der Wert 17.5 wird in das Rechenwerk geladen
- Das Rechenwerk führt die Anweisung - aus
- Der Inhalt von R9 wird in das Rechenwerk geladen
- Das Rechenwerk führt die Anweisung * aus
- Der Wert 2.5 wird in das Rechenwerk geladen
- Das Rechenwerk führt die Anweisung / aus
- 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-Programm-Start erfolgen oder mit einem Dekodierstopp verbunden sein.
ab TwinCAT V2.9 Build 1002
Zu Debugzwecken 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
Ab TwinCAT V2.10 B1308
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
ab TwinCAT V2.9 Build 954
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 beschieben 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:
- Aufzählung der R-Parameter
- Bereichsangabe der R-Parameter
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
Größe des Stacks Der Werte-Stapel 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. |