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 1:

R-Parameter in Unterprogrammen (Funktionen)

Innerhalb einem Unterprogramm (Funktion) muss ein R-Parameter über eine VAR_EXTERNAL-Deklaration deklariert werden.
Beispiel:
{
FUNCTION myFunction : LREAL
VAR_EXTERNAL
    R45: LREAL;
END_VAR
}

N10 G01 X=R45 F6000

!END_FUNCTION

Voraussetzungen

Entwicklungsumgebung

Zielsystem

TwinCAT V3.1.4024.4 oder 4022.32

PC oder CX (x86 oder x64)