R-Parameter
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.
Zuweisung eines Wertes zu einem R-Parameter
Die Zuweisung eines Wertes zu einem R
-Parameter ist nur innerhalb von Strukturiertem Text möglich. Es gibt zwei Möglichkeiten, einem R
-Parameter einen Wert zuzuweisen. Der Wert kann direkt zugewiesen werden oder es kann die Funktion rSet
verwendet werden. Die Funktion rSet
eignet sich, wenn der Index des zuzuweisenden R
-Parameters erst zur Laufzeit ermittelt werden soll.
Strukturierter Text: Direkte Zuweisung eines R-Parameterwerts
R<n> := LReal;
Beispiel
!R1 := 7;
Strukturierter Text: Zuweisung eines R-Parameterwertes mit der Funktion "rSet"
rSet(index := LINT, value := LREAL)
Beispiel
!rSet(1, 7);
Lesen eines R-Parameterwerts
Es gibt zwei Möglichkeiten, einen R
-Parameter zu lesen. Ein R
-Parameter kann direkt in G
-Code verwendet werden oder er kann mit der Funktion rGet
innerhalb des strukturierten Textes extrahiert werden. Die Funktion rGet
extrahiert einen R
-Parameterwert entsprechend seinem Index.
Strukturierter Text: Lesen eines R-Parameterwertes mit der "rGet"-Funktion
rGet(index := LINT) : LREAL
G-Code Beispiel: Direktes Extrahieren eines R-Parameterwerts
!R1 := 7;
N10 G01 X=R1 F6000
G-Code Beispiel: Extrahieren eines R-Parameterwertes mit der "rGet"-Funktion
!R1 := 7;
N10 G01 X={rGet(1)} F6000
Beispiel: Zuordnen und Extrahieren
{
VAR
valueR1 : LREAL;
END_VAR
rSet(1, 7);
valueR1 := rGet(1);
R2 := 10;
R3 := R1 + R2;
!N10 G01 X=R1 Y0 Z=R2 F6000
!N20 G01 X={rGet(3)}
MSG(toString('R1 = ', valueR1, ',R2 = ', rGet(2), ', R3 = ', R3));
}
M02
Output:
R1 = 7.000000, R2 = 10.000000, R3 = 17.000000
R-Parameter in Unterprogrammen (Funktionen) Innerhalb einem Unterprogramm (Funktion) muss ein |
Voraussetzungen
Entwicklungsumgebung | Zielsystem |
---|---|
TwinCAT V3.1.4024.4 oder 4022.32 | PC oder CX (x86 oder x64) |