_NCM_CALC_LINE_CIRCLE (FB)

Der Funktionsbaustein '_NCM_CALC_LINE_CIRCLE' berechnet die lineare bzw. Kreisinterpolation für einen NC-Datensatz.

Der Funktionsbaustein wird in der asynchronen Programmebene PLC_PRG aufgerufen.

Anwender Interface
   

_NCM_CALC_LINE_CIRCLE

   

Mittelpunkt X-Achse

- rePmX

reLengthCircle

-

Kreislänge

Mittelpunkt Y-Achse

- rePmY

diLengthLineCircleInkr

-

Kreis- bzw. lineare Länge

Mittelpunkt Z-Achse

- rePmZ

reAlpha

- Winkel

Definition Kreisebene

- iCharPlane

reAlphaS

- Startwinkel

Kreisinterp. Drehsinn

- bocw

reRS

- Radius Startpunkt

Vorschub

- diResol

reRE

- Radius Endpunkt

Startpunkt Achse 1-16

- arreP1Ax

rePart1

- Differenz Start - Mitte

Endpunkt Achse 1-16

- arreP2Ax

rePart1End

- Differenz Ende - Mitte

Rundachse

- arboRoundAxis

rePart2

- Differenz Start - Mitte

Moduloposition

- arreModulopos

rePart2End

- Differenz Ende - Mitte

Relative Positionierung

- boRelativ

rePart3

- Differenz Start - Mitte

Mitschlepp-Achse

- wCoupledAxis

rePart3End

- Differenz Ende - Mitte

Code für NC-Satz

- iCharElem

uiError

- Fehler Identnummer
     

uiWarn

- Warnung Identnummer
     

arreRatioAx

- Abstandsverhältnis
     

ardiEndposAx

- Endpositionen
Eingangsvariablen
Name Typ Beschreibung
rePmX, rePmY, rePmZ

REAL

Position des Kreismittelpunktes, Achse X / Y / Z [mm]

iCharPlane

INT

Code zum Definieren der Kreisebene

iCharPlane Kreisebene
17 X/Y (Achse 1 / Achse 2)
18 X/Z (Achse 1 / Achse 3)
19 Y/Z (Achse 2 / Achse 3)
bocw

BOOL

Kreisinterpolation

TRUE: clockwise (cw)

FALSE: counter clockwise (ccw)

diResol

DINT

Vorschubkonstante: Umsetzung der rotatorischen in eine lineare Bewegung [Inkremente/mm]

arreP1Ax, arreP2Ax

ARRAY

ARRAY[1..16]OF REAL

Start- bzw. Endpunkte der Achsen 1 ... 16

arboRoundAxis

ARRAY

ARRAY[1..16]OF BOOL

Bestimmung der Achse als Rundachse

TRUE: Rundachse

arreModulopos

ARRAY

ARRAY[1..16]OF REAL

Mdouloposition

boRelativ

BOOL

Relative Positionierung

Soll ein NC-Fahrsatz nicht absolut, sondern relativ ausgeführt werden, muss 'boRelativ' auf true gesetzt werden.

Beispiel:
Relative Geradeninterpolation der Achse1 um 100mm.

wCoupledAxis

WORD

Mit der Bitleiste 'wCoupledAxis' kann jede Achse als MitschleppAchse konfiguriert werden.

Die Koordinatenangaben einer Mitschleppachse gehen nicht in die Berechnung der Bahngeschwindigkeit aller anderen Achsen mit ein.

Beispiel:

Die Bahngeschwindigkeit wird für den Weg von P1 nach P2 für Achse1 und Achse2 bestimmt. Die Bahngeschwindigkeit für Achse3 wird so berechnet, dass sie abhängig vom ihrem zurückzulegenden Weg gleichzeitig wie Achse1 und Achse2 am Zielpunkt ankommt.

Achse3 als Mitschleppachse: wCoupledAxis := 16#0004

iCharElem

INT

Code für den NC-Satz

1 Geradeninterpolation
2 Kreisinterpolation clockwise (cw)
3 Kreisinterpolation counter clockwise (ccw)
4 Verzögerungszeit
9 Halt
30 Programm Ende
Ausgangsvariablen
Name Typ Beschreibung
reLengthCircle

REAL

Kreislänge [mm]

diLengthLineCircleInkr

DINT

Kreis- bzw. lineare Länge [Inkremente]

reAlpha

REAL

Winkel des Kreisbogens [rad]

reAlphaS

REAL

Startwinkel [rad]

reRS, reRE

REAL

Länge des Radius am Start- / Endpunkt [mm]

rePart1, rePart2, rePart3

REAL

Differenz Startpunkt - Mittelpunkt X / Y / Z [mm]

rePart1End, rePart2End, rePart3End

REAL

Differenz Endpunkt - Mittelpunkt X / Y / Z [mm]

uiError

UINT

Fehler Identnummer: Diagnosenummer wird ausgegeben

0 Kein Fehler
5 Kreisradius ist Null
6 Auswahl der gekoppelten Achsen ist fehlerhaft
uiWarn

UINT

Warnung Identnummer: Diagnosenummer wird ausgegeben

0 Keine Warnung
1 Länge der Geraden ist Null
6 Radius am Startpunkt des Kreises ist unterschiedlich zum Radius am Endpunkt des Kreises.
arreRatioAx

ARRAY

ARRAY[1..16]OF REAL

Feld mit Verhältnissen der Distanzen der Achsen 1 ... 16 zur Gesamtdistanz

ardiEndposAx

ARRAY

ARRAY[1..16]OF DINT

Feld mit Endpositionen der Achsen 1 ... 16 [Inkremente]

Verwendungshinweis im CoDeSys-Programm
PLC_PRG (asynchroner Programmteil) FPLC_PRG (synchroner Programmteil)
_NCM_CALC_LINE_CIRCLE