HEIDENHAIN

RND im Parameterprogramm

Beitrag 30.08.2024, 07:18 Uhr
jtm90
Level 2 = Community-Facharbeiter
**
Grüß euch!

Ich hab mir kürzlich ein Parameterprogramm zum Planen von Rechteckigen Teilern in einer Spiralzustellung geschrieben.
Ist zwar noch ein wenig im testen, funktioniert aber soweit.

Ich hätte gerne die Eckpunkte der Spirale mit der RND Funktion verrundet. Leider Funktioniert das nicht, ich bekomme immer die Meldung Rundungsradius zu groß oder Werkzeugebene stimmt nicht. Wenn ich mir die RND Sätze ausblende funktioniert die Spirale wie gewollt, und es ist auch genug Platz für Rundung.

Kann es sein das RND hier nur eingeschränkt funktioniert, weil alle Bewegungen mit Q Parametern programmiert sind und diese in einer Schleife dauernd verändert werden?

MfG

   
Beitrag 30.08.2024, 07:59 Uhr
soop
Level 1 = Community-Lehrling
*
Hallo jtm90,

wenn du uns das Programm oder den Abschnitt zusenden könntest, wäre es einfacher zu verstehen was genau gemacht wird. smile.gif

   
Beitrag 30.08.2024, 09:02 Uhr
jtm90
Level 2 = Community-Facharbeiter
**
Ich kopiers hier einfach mal rein


83 LBL 10
84 L Z+Q94 FMAX
85 L X+Q92 Y+Q93 R0 FQ62
/ 86 RND RQ72
87 L X+Q92 Y+Q96 R0 FQ62
/ 88 RND RQ72
89 L X+Q97 Y+Q96 R0 FQ62
90 Q50 = Q97 - Q64 ; Berechnung Eckpunkt X+
91 Q51 = Q92 + Q64 ; Berechnung Eckpunkt X-
92 Q52 = Q96 - Q64 ; Berechnung Eckpunkt Y+
93 Q53 = Q93 + Q64 ; Berechnung Eckpunkt Y-
94 FN 9: IF +Q81 EQU +1 GOTO LBL 20; Sprung muss noch optimiert werden
95 FN 9: IF +Q81 EQU +2 GOTO LBL 20; Sprung muss noch optimiert werden
96 FN 9: IF +Q85 EQU +1 GOTO LBL 20; Sprung muss noch optimiert werden
97 FN 9: IF +Q85 EQU +2 GOTO LBL 20; Sprung muss noch optimiert werden
98 ;
99 ;
100 LBL 12
101 FN 18: SYSREAD Q57 = ID270 NR1 IDX1 ;AKTUELLE X POS AUSLESEN Q57
102 FN 18: SYSREAD Q58 = ID270 NR1 IDX2 ;AKTUELLE Y POS AUSLESEN Q58
103 FN 20: WAIT FOR SYNC
104 L X+Q57 Y+Q58 R0 FQ62
/ 105 RND RQ72
106 L Y+Q53 R0 FQ62
/ 107 RND RQ72
108 L X+Q51 R0 FQ62
/ 109 RND RQ72
110 L Y+Q52 R0 FQ62
/ 111 RND RQ72
112 L X+Q50 R0 FQ62
113 ;
114 Q50 = Q50 - Q64 ; Berechnung Eckpunkt X+
115 Q51 = Q51 + Q64 ; Berechnung Eckpunkt X-
116 Q52 = Q52 - Q64 ; Berechnung Eckpunkt Y+
117 Q53 = Q53 + Q64 ; Berechnung Eckpunkt Y-
118 Q82 = Q82 - 2 ; Zustellung in Y Zaehlen
119 Q86 = Q86 - 2 ; Zustellung in X Zaehlen
120 FN 11: IF +Q82 GT +0 GOTO LBL 12
121 FN 11: IF +Q86 GT +0 GOTO LBL 12
122 ;
123 ;
124 LBL 20
125 L Z+Q71 FMAX
126 Q82 = Q81 ; Zaehler reseten
127 Q86 = Q85 ; Zaehler reseten
128 L X+Q91 Y+Q93 FMAX
129 ;
130 ;
   
Beitrag 30.08.2024, 09:30 Uhr
soop
Level 1 = Community-Lehrling
*
Könntest du bitte noch den Anfang wo Q72 definiert wird mit einfügen?

Ein Tipp noch nebenbei, am besten ist die Q0-Q1599 nicht zu verwenden, da diese als Parameter für Zyklen und Hersteller dienen.
Alles von Q1600-Q1999 ist für Endanwender.

Der Beitrag wurde von soop bearbeitet: 30.08.2024, 09:48 Uhr
   
Beitrag 30.08.2024, 09:52 Uhr
jtm90
Level 2 = Community-Facharbeiter
**
4 ; Paremeterprogramm zum Planen im Gleichlauf
5 ; X Start muss gr er sein als X Ende
6 ; Y Start muss kleiner sein als Y Ende
7 ; Z Start mus gr er sein als Z Ende
8 ;
9 ; Eingabe Q-Parameter Anfang
10 ;
16 ;
17 Q60 = 560 ; WERKZEUG T-NR Q60
18 Q61 = 5000 ; DREHZAHL Q61
19 Q62 = 2500 ; Vorschub Q62
20 Q63 = 1 ; Zustellung in Z Q63
21 Q64 = 4 ; Zustellung Ae Q64
22 ;
23 Q65 = 11 ; Start in Z Q65
24 Q66 = 0 ; Ende in Z Q66
25 Q67 = 30 ; Start in X Q67
26 Q68 = - 30 ; Ende in X Q68
27 Q69 = - 30 ; Start in Y Q69
28 Q70 = 30 ; Ende in Y Q70
29 Q71 = 50 ; Sicherheitsebene in Z Q71
30 Q72 = 1 ; Verundungsradius der Spiralecken Q72
31 ;
32 ; Eingabe Q-Parameter Ende
33 ;
34 ;
35 ;
36 ; Verrechnen nix eingeben
37 Q80 = Q65 - Q66 ; Gesamtzustellung in Z Q80
38 Q80 = Q80 / Q63 ; Anzahl an Zustellungen Q80
39 Q80 = ABS Q80 ; Absolutwert bilden Q80
40 Q80 = INT Q80 ; Nachkommastellen abschneiden Q80
41 Q81 = Q69 - Q70 ; Gesamtzustellung in Y Q81
42 Q81 = Q81 / Q64 ; Anzahl der Zustellungen in Y Q81
43 Q81 = ABS Q81 + 1 ; Absolutwert bilden, +1 Zustellung Q81
44 Q81 = INT Q81 ; Nachkommastellen abschneiden Q81
45 Q82 = Q81 ; Q82 wird zum Zaehlen gebraucht Q81 bleibt original Q82
46 Q85 = Q67 - Q78 ; Gesamtzustellung in X Q85
47 Q85 = Q85 / Q64 ; Anzahl der Zustellungen in X Q85
48 Q85 = ABS Q85 + 1 ; Absolutwert bilden, +1 Zustellung Q85
49 Q85 = INT Q85 ; Nachkommastellen abschneiden Q81
50 Q86 = Q85 ; Q86 wird zum Zaehlen gebraucht Q85 bleibt original Q86
51 FN 18: SYSREAD Q90 = ID50 NR2 IDXQ60 ; Radius aus der Werkzeugtab ~
lesen Q90
52 Q95 = Q90 - Q64 ; Wert fr Versatz der ersten Bahn Q95
53 Q91 = Q67 + Q90 + 10 ; Start in X berechnen Q91
54 Q97 = Q67 - Q95 ; Eckpunkt Spirale in X berechnen Q97
55 Q92 = Q68 + Q95 ; Ende in X berechnen Q92
56 Q93 = Q69 - Q90 + Q64 ; Start in Y berechnen Q93
57 Q96 = Q70 + Q95 ; Ende in Y berechnen Q96
58 Q94 = Q65 - Q63 ; Start in Z berechnen Q94
59 ; Verrechnen Ende
60 ;
61 ; Checks Anfang
62 FN 11: IF +Q66 GT +Q65 GOTO LBL 95
63 FN 11: IF +Q68 GT +Q67 GOTO LBL 96
64 FN 11: IF +Q69 GT +Q70 GOTO LBL 97
65 FN 11: IF +Q65 GT +Q71 GOTO LBL 98
66 ; Checks Ende



ZITAT(soop @ 30.08.2024, 09:30 Uhr) *
Ein Tipp noch nebenbei, am besten ist die Q0-Q1599 nicht zu verwenden, da diese als Parameter für Zyklen und Hersteller dienen.
Alles von Q1600-Q1999 ist für Endanwender.


Weiß ich, ist mir aber in solchen Programmen egal. Weil das ein eigenständiges Programm ohne Zyklen ist und mit Programmende die Q wieder abgenullt werden.

   
Beitrag 30.08.2024, 10:22 Uhr
soop
Level 1 = Community-Lehrling
*
Was steht denn noch zwischen 66 und 83 coangry.gif

Wo wird Q78 definiert? Finde es in deinem Programm nicht.

Der Beitrag wurde von soop bearbeitet: 30.08.2024, 10:31 Uhr
   
Beitrag 30.08.2024, 10:43 Uhr
jtm90
Level 2 = Community-Facharbeiter
**
ZITAT(soop @ 30.08.2024, 10:22 Uhr) *
Was steht denn noch zwischen 66 und 83 coangry.gif

Wo wird Q78 definiert? Finde es in deinem Programm nicht.



Dazwischen ist nur ein Tool Call und eine Positionierung.

Danke da war ein Fehler drinnen. Q78 soll Q68 sein, ändert aber nichts an dem Problem mit RND


Was ich oben nicht erwähnt habe, komischerweise funktioniert RND bei der äußersten Bahn.

83 LBL 10
84 L Z+Q94 FMAX
85 L X+Q92 Y+Q93 R0 FQ62
/ 86 RND RQ72
87 L X+Q92 Y+Q96 R0 FQ62
/ 88 RND RQ72
89 L X+Q97 Y+Q96 R0 FQ62

nachfolgend aber nicht mehr

Der Beitrag wurde von jtm90 bearbeitet: 30.08.2024, 10:47 Uhr
   
Beitrag 30.08.2024, 12:01 Uhr
soop
Level 1 = Community-Lehrling
*
Hier schon mal eine Sache die ich anders machen würde.
Q92 = Q68 + Q95 ; Ende in X berechnen Q92
müsste
Q92 = Q68 + - Q95 ; Ende in X berechnen Q92 sein,

Beispiel R20mm, 1mm Zustellung
sonst hast du -30+R(19)=-11
müsste aber -30+-R(19)=-45
sonst nimmst im ersten schnitt zu viel

Löst aber noch nicht das Problem mit RND,
   
Beitrag 30.08.2024, 12:26 Uhr
Sirix2001
Level 1 = Community-Lehrling
*
Moin
Satz 101-104 sind "fehlerhaft" ...
Du kannst nicht dort hinfahren (Q57,Q58) wo du schon bist ( in Satz 89) und anschließend verrunden...
Wie soll die Steuerung das verrechnen ?


   
Beitrag 30.08.2024, 13:21 Uhr
soop
Level 1 = Community-Lehrling
*
Das hier muss auch nochmal geändert werden:
54 Q97 = Q67 - Q95 ; Eckpunkt Spirale in X berechnen Q97
in:
54 Q97 = Q67 + Q95 ; Eckpunkt Spirale in X berechnen Q97

Wenn du das RND weg macht geht es dann komplett, hast da dann nur keinen Radius

---->/ 105 RND RQ72

So gehts:
0 BEGIN PGM TEST MM
1 BLK FORM 0.1 Z X-30 Y-30 Z-70
2 BLK FORM 0.2 X+30 Y+30 Z+50
3 ;-------------------------------------
4 ; Paremeterprogramm zum Planen im Gleichlauf
5 ; X Start muss gr er sein als X Ende
6 ; Y Start muss kleiner sein als Y Ende
7 ; Z Start mus gr er sein als Z Ende
8 ; Eingabe Q-Parameter Anfang
9 ;
10 Q60 = 20 ; WERKZEUG T-NR Q60
11 Q61 = 5000 ; DREHZAHL Q61
12 Q62 = 2500 ; Vorschub Q62
13 Q63 = 0.1 ; Zustellung in Z Q63
14 Q64 = 1 ; Zustellung Ae Q64
15 ;
16 TOOL CALL Q60 Z SQ61 FQ62
17 Q65 = 11 ; Start in Z Q65
18 Q66 = 0 ; Ende in Z Q66
19 Q67 = 30 ; Start in X Q67
20 Q68 = - 30 ; Ende in X Q68
21 Q69 = - 30 ; Start in Y Q69
22 Q70 = 30 ; Ende in Y Q70
23 Q71 = 50 ; Sicherheitsebene in Z Q71
24 Q72 = 1 ; Verundungsradius der Spiralecken Q72
25 ; Eingabe Q-Parameter Ende
26 ; Verrechnen nix eingeben
27 Q80 = Q65 - Q66 ; Gesamtzustellung in Z Q80
28 Q80 = Q80 / Q63 ; Anzahl an Zustellungen Q80
29 Q80 = ABS Q80 ; Absolutwert bilden Q80
30 Q80 = INT Q80 ; Nachkommastellen abschneiden Q80
31 Q81 = Q69 - Q70 ; Gesamtzustellung in Y Q81
32 Q81 = Q81 / Q64 ; Anzahl der Zustellungen in Y Q81
33 Q81 = ABS Q81 + 1 ; Absolutwert bilden, +1 Zustellung Q81
34 Q81 = INT Q81 ; Nachkommastellen abschneiden Q81
35 Q82 = Q81 ; Q82 wird zum Zaehlen gebraucht Q81 bleibt original Q82
36 Q85 = Q67 - Q68 ; Gesamtzustellung in X Q85
37 Q85 = Q85 / Q64 ; Anzahl der Zustellungen in X Q85
38 Q85 = ABS Q85 + 1 ; Absolutwert bilden, +1 Zustellung Q85
39 Q85 = INT Q85 ; Nachkommastellen abschneiden Q81
40 Q86 = Q85 ; Q86 wird zum Zaehlen gebraucht Q85 bleibt original Q86
41 FN 18: SYSREAD Q90 = ID50 NR2 IDXQ60 ; Radius aus der Werkzeugtab lesen Q90
42 Q95 = Q90 - Q64 ; Wert fr Versatz der ersten Bahn Q95
43 Q91 = Q67 + Q90 + 10 ; Start in X berechnen Q91
44 Q97 = Q67 + Q95 ; Eckpunkt Spirale in X berechnen Q97
45 Q92 = Q68 + - Q95 ; Ende in X berechnen Q92
46 Q93 = Q69 - Q90 + Q64 ; Start in Y berechnen Q93
47 Q96 = Q70 + Q95 ; Ende in Y berechnen Q96
48 Q94 = Q65 - Q63 ; Start in Z berechnen Q94
49 ; Verrechnen Ende
50 ; Checks Anfang
51 FN 11: IF +Q66 GT +Q65 GOTO LBL 95
52 FN 11: IF +Q68 GT +Q67 GOTO LBL 96
53 FN 11: IF +Q69 GT +Q70 GOTO LBL 97
54 FN 11: IF +Q65 GT +Q71 GOTO LBL 98
55 ; Checks Ende
56 LBL 10
57 L Z+Q94 FMAX
58 L X+Q92 Y+Q93 R0 FQ62 M3
/ 59 RND RQ72
60 L X+Q92 Y+Q96 R0 FQ62
/ 61 RND RQ72
62 L X+Q97 Y+Q96 R0 FQ62
/ 63 RND RQ72
64 L Y+0 R0 FQ62
65 Q50 = Q97 - Q64 ; Berechnung Eckpunkt X+
66 Q51 = Q92 + Q64 ; Berechnung Eckpunkt X-
67 Q52 = Q96 - Q64 ; Berechnung Eckpunkt Y+
68 Q53 = Q93 + Q64 ; Berechnung Eckpunkt Y-
69 FN 9: IF +Q81 EQU +1 GOTO LBL 20 ; Sprung muss noch optimiert werden
70 FN 9: IF +Q81 EQU +2 GOTO LBL 20 ; Sprung muss noch optimiert werden
71 FN 9: IF +Q85 EQU +1 GOTO LBL 20 ; Sprung muss noch optimiert werden
72 FN 9: IF +Q85 EQU +2 GOTO LBL 20 ; Sprung muss noch optimiert werden
73 LBL 12
74 FN 18: SYSREAD Q57 = ID270 NR1 IDX1 ;AKTUELLE X POS AUSLESEN Q57
75 FN 18: SYSREAD Q58 = ID270 NR1 IDX2 ;AKTUELLE Y POS AUSLESEN Q58
76 FN 20: WAIT FOR SYNC
77 L Y+Q53 R0 FQ62
/ 78 RND RQ72
79 L X+Q51 R0 FQ62
/ 80 RND RQ72
81 L Y+Q52 R0 FQ62
/ 82 RND RQ72
83 L X+Q50 R0 FQ62
/ 84 RND RQ72
85 L Y+0 R0 FQ62
86 Q50 = Q50 - Q64 ; Berechnung Eckpunkt X+
87 Q51 = Q51 + Q64 ; Berechnung Eckpunkt X-
88 Q52 = Q52 - Q64 ; Berechnung Eckpunkt Y+
89 Q53 = Q53 + Q64 ; Berechnung Eckpunkt Y-
90 Q82 = Q82 - 2 ; Zustellung in Y Zaehlen
91 Q86 = Q86 - 2 ; Zustellung in X Zaehlen
92 FN 11: IF +Q82 GT +0 GOTO LBL 12
93 FN 11: IF +Q86 GT +0 GOTO LBL 12
94 LBL 20
95 L Z+Q71 FMAX
96 Q82 = Q81 ; Zaehler reseten
97 Q86 = Q85 ; Zaehler reseten
98 L X+Q91 Y+Q93 FMAX
99 END PGM TEST MM





Der Beitrag wurde von soop bearbeitet: 30.08.2024, 13:53 Uhr
   
Beitrag 02.09.2024, 12:19 Uhr
jtm90
Level 2 = Community-Facharbeiter
**
ZITAT(Sirix2001 @ 30.08.2024, 12:26 Uhr) *
Moin
Satz 101-104 sind "fehlerhaft" ...
Du kannst nicht dort hinfahren (Q57,Q58) wo du schon bist ( in Satz 89) und anschließend verrunden...
Wie soll die Steuerung das verrechnen ?


Stimmt, manchmal sieht man des Wald vor lauter Bäumen nicht.
Ein weiteres Problem war, das die Sprungsequenz mit RND begonnen hat denk ich.
Ich hab mir jetzt mit einem Hilfspunkt geholfen und jetzt schauts so aus als ob alles funktioniert.

Ich hatte noch einige weitere Probleme, weil die Spirale in manchen Situationen zu klein geworden ist.
Ich hab zwar noch nicht alle möglichen Situationen probiert, aber es schaut derweil nicht schlecht aus.


Verwendung auf eigene Gefahr!

0 BEGIN PGM 99-Planen-Spiral MM
1 BLK FORM 0.1 Z X-200 Y-200 Z-50
2 BLK FORM 0.2 X+200 Y+200 Z+11
3 ;
4 ; Paremeterprogramm zum Planen im Gleichlauf
5 ; X Start muss gr er sein als X Ende
6 ; Y Start muss kleiner sein als Y Ende
7 ; Z Start mus gr er sein als Z Ende
8 ;
9 ; Eingabe Q-Parameter Anfang
10 ;
11 ;
12 QR50 = 1 ;Preset, Ausgeblendet, einblenden wenn QR50 nicht gesetzt!!! NP~
QR50 wird unten trotzdem gesetzt!!!
13 ;
14 CYCL DEF 247 BEZUGSPUNKT SETZEN ~
Q339=+QR50 ;BEZUGSPUNKT-NUMMER
15 ;
16 ;
17 Q60 = 424 ; WERKZEUG T-NR Q60
18 Q61 = 5000 ; DREHZAHL Q61
19 Q62 = 2500 ; Vorschub Q62
20 Q63 = 1 ; Zustellung in Z Q63
21 Q64 = 3 ; Zustellung Ae Q64
22 ;
23 Q65 = 11 ; Start in Z Q65
24 Q66 = 0 ; Ende in Z Q66
25 Q67 = - 50 ; Start in X Q67
26 Q68 = - 100 ; Ende in X Q68
27 Q69 = - 0 ; Start in Y Q69
28 Q70 = 30 ; Ende in Y Q70
29 Q71 = 50 ; Sicherheitsebene in Z Q71
30 Q72 = 1 ; Verundungsradius der Spiralecken Q72
31 ;
32 ; Eingabe Q-Parameter Ende
33 ;
34 ;
35 ;
36 ; Verrechnen nix eingeben
37 FN 18: SYSREAD Q90 = ID50 NR2 IDXQ60 ; Radius aus der Werkzeugtab ~
lesen Q90
38 Q80 = Q65 - Q66 ; Gesamtzustellung in Z Q80
39 Q80 = Q80 / Q63 ; Anzahl an Zustellungen Q80
40 Q80 = ABS Q80 ; Absolutwert bilden Q80
41 Q80 = INT Q80 ; Nachkommastellen abschneiden Q80
42 Q99 = Q90 / Q64 ;Zustellungen um FRAESERRADIUS / Zustellung reduzieren, um~
nicht ber die Spiralmitte zu fahren
43 Q81 = Q70 - Q69 ; Gesamtzustellung in Y Q81
44 Q81 = Q81 / Q64 ; Anzahl der Zustellungen in Y Q81
45 Q81 = ABS Q81 + 2 - Q99 ; Absolutwert bilden, +1 Zustellung - Zustellung~
reduzierenQ81
46 Q81 = INT Q81 ; Nachkommastellen abschneiden Q81
47 Q82 = Q81 ; Q82 wird zum Zaehlen gebraucht Q81 bleibt original Q82
48 Q85 = Q68 - Q67 ; Gesamtzustellung in X Q85
49 Q85 = Q85 / Q64 ; Anzahl der Zustellungen in X Q85
50 Q85 = ABS Q85 + 2 - Q99 ; Absolutwert bilden, +1 Zustellung - Zustellung~
reduzieren Q85
51 Q85 = INT Q85 ; Nachkommastellen abschneiden Q81
52 Q86 = Q85 ; Q86 wird zum Zaehlen gebraucht Q85 bleibt original Q86
53 Q95 = Q90 - Q64 ; Wert fr Versatz der ersten Bahn Q95
54 Q91 = Q67 + Q90 + 10 ; Start in X berechnen Q91
55 Q97 = Q67 - Q95 ; Eckpunkt Spirale in X berechnen Q97
56 Q92 = Q68 + Q95 ; Ende in X berechnen Q92
57 Q93 = Q69 - Q90 + Q64 ; Start in Y berechnen Q93
58 Q96 = Q70 + Q95 ; Ende in Y berechnen Q96
59 Q98 = ( Q69 + Q70 ) / 2 ;MITTELWERT IN Y, HILFSPUNKT Q98
60 Q94 = Q65 - Q63 ; Start in Z berechnen Q94
61 ; Verrechnen Ende
62 ;
63 ; Checks Anfang
64 FN 11: IF +Q66 GT +Q65 GOTO LBL 95
65 FN 11: IF +Q68 GT +Q67 GOTO LBL 96
66 FN 11: IF +Q69 GT +Q70 GOTO LBL 97
67 FN 11: IF +Q65 GT +Q71 GOTO LBL 98
68 FN 11: IF +Q72 GT +Q64 GOTO LBL 99
69 ; Checks Ende
70 ;
71 ;
72 ;
73 CALL PGM TNC:\1B-Standardprogramme\Freifahren-Plane-Reset-M5M9.h
74 ;
75 TOOL CALL Q60 Z SQ61 DL+0
76 ;
77 CALL PGM TNC:\1B-Standardprogramme\Schwenkposition-Anfahren-Plane-Reset.h
78 CALL LBL 1
79 ;
80 L Z+Q71 FMAX M3
81 LBL 90
82 L X+Q91 Y+Q93 FMAX ; Positionierung auf ersten Zustellpunkt
83 FN 9: IF +Q80 EQU +0 GOTO LBL 11 ; Z Zustellungen ueberspringen falls ~
nur 1 Zustellung
84 ;
85 ; Fraesen mit Spirale
86 LBL 10
87 L Z+Q94 FMAX
88 L X+Q92 Y+Q93 R0 FQ62
89 RND RQ72
90 L X+Q92 Y+Q96 R0 FQ62
91 RND RQ72
92 L X+Q97 Y+Q96 R0 FQ62
93 RND RQ72
94 L Y+Q98 R0 FQ62
95 Q82 = Q82 - 2 ; Zustellung in Y Zaehlen
96 Q86 = Q86 - 2 ; Zustellung in X Zaehlen
97 Q50 = Q97 - Q64 ; Berechnung Eckpunkt X+
98 Q51 = Q92 + Q64 ; Berechnung Eckpunkt X-
99 Q52 = Q96 - Q64 ; Berechnung Eckpunkt Y+
100 Q53 = Q93 + Q64 ; Berechnung Eckpunkt Y-
101 FN 9: IF +Q81 EQU +0 GOTO LBL 20 ; Sprung muss noch optimiert werden
102 FN 9: IF +Q81 EQU +1 GOTO LBL 20 ; Sprung muss noch optimiert werden
103 FN 9: IF +Q85 EQU +0 GOTO LBL 20 ; Sprung muss noch optimiert werden
104 FN 9: IF +Q85 EQU +1 GOTO LBL 20 ; Sprung muss noch optimiert werden
105 ;
106 ;
107 LBL 12
108 FN 18: SYSREAD Q57 = ID270 NR1 IDX1 ;AKTUELLE X POS AUSLESEN Q57
109 L X+Q57 Y+Q53 R0 FQ62
110 RND RQ72
111 L X+Q51 Y+Q53 R0 FQ62
112 RND RQ72
113 L Y+Q52 X+Q51 R0 FQ62
114 RND RQ72
115 L X+Q50 Y+Q52 R0 FQ62
116 ;
117 Q50 = Q50 - Q64 ; Berechnung Eckpunkt X+
118 Q51 = Q51 + Q64 ; Berechnung Eckpunkt X-
119 Q52 = Q52 - Q64 ; Berechnung Eckpunkt Y+
120 Q53 = Q53 + Q64 ; Berechnung Eckpunkt Y-
121 Q82 = Q82 - 2 ; Zustellung in Y Zaehlen
122 Q86 = Q86 - 2 ; Zustellung in X Zaehlen
123 FN 9: IF +Q82 EQU +0 GOTO LBL 20 ; Sprung muss noch optimiert werden
124 FN 9: IF +Q82 EQU +1 GOTO LBL 20 ; Sprung muss noch optimiert werden
125 FN 9: IF +Q86 EQU +0 GOTO LBL 20 ; Sprung muss noch optimiert werden
126 FN 9: IF +Q86 EQU +1 GOTO LBL 20 ; Sprung muss noch optimiert werden
127 FN 9: IF +0 EQU +0 GOTO LBL 12 ; Sprung muss noch optimiert werden
128 ;
129 ;
130 LBL 20
131 L Z+Q71 FMAX
132 Q82 = Q81 ; Zaehler reseten
133 Q86 = Q85 ; Zaehler reseten
134 L X+Q91 Y+Q93 FMAX
135 ;
136 ;
137 ; Zustellungen in Z
138 FN 9: IF +Q80 EQU +1 GOTO LBL 11 ; Z Zustellungen ueberspringen falls ~
nur 1 Zustellung
139 Q94 = Q94 - Q63 ; Neue Z Ebene berechnen
140 FN 9: IF +Q94 EQU +Q66 GOTO LBL 11 ; damit kein Leerschnitt entsteht ~
falls Aufma / Zuestellung gerade Teilbar ist
141 Q80 = Q80 - 1 ; Zaehler fuer Zustellung
142 FN 10: IF +Q80 NE +0 GOTO LBL 90
143 ;
144 ; Fraesen mit Zustellung in Spirale
145 LBL 11
146 L Z+Q66 FMAX
147 L X+Q92 Y+Q93 R0 FQ62
148 RND RQ72
149 L X+Q92 Y+Q96 R0 FQ62
150 RND RQ72
151 L X+Q97 Y+Q96 R0 FQ62
152 RND RQ72
153 L Y+Q98 R0 FQ62
154 Q82 = Q82 - 2 ; Zustellung in Y Zaehlen
155 Q86 = Q86 - 2 ; Zustellung in X Zaehlen
156 Q50 = Q97 - Q64 ; Berechnung Eckpunkt X+
157 Q51 = Q92 + Q64 ; Berechnung Eckpunkt X-
158 Q52 = Q96 - Q64 ; Berechnung Eckpunkt Y+
159 Q53 = Q93 + Q64 ; Berechnung Eckpunkt Y-
160 FN 9: IF +Q81 EQU +0 GOTO LBL 25 ; Sprung muss noch optimiert werden
161 FN 9: IF +Q81 EQU +1 GOTO LBL 25 ; Sprung muss noch optimiert werden
162 FN 9: IF +Q85 EQU +0 GOTO LBL 25 ; Sprung muss noch optimiert werden
163 FN 9: IF +Q85 EQU +1 GOTO LBL 25 ; Sprung muss noch optimiert werden
164 ;
165 ;
166 LBL 15
167 FN 18: SYSREAD Q57 = ID270 NR1 IDX1 ;AKTUELLE X POS AUSLESEN Q57
168 L X+Q57 Y+Q53 R0 FQ62
169 RND RQ72
170 L X+Q51 Y+Q53 R0 FQ62
171 RND RQ72
172 L Y+Q52 X+Q51 R0 FQ62
173 RND RQ72
174 L X+Q50 Y+Q52 R0 FQ62
175 ;
176 Q50 = Q50 - Q64 ; Berechnung Eckpunkt X+
177 Q51 = Q51 + Q64 ; Berechnung Eckpunkt X-
178 Q52 = Q52 - Q64 ; Berechnung Eckpunkt Y+
179 Q53 = Q53 + Q64 ; Berechnung Eckpunkt Y-
180 Q82 = Q82 - 2 ; Zustellung in Y Zaehlen
181 Q86 = Q86 - 2 ; Zustellung in X Zaehlen
182 FN 9: IF +Q82 EQU +0 GOTO LBL 25 ; Sprung muss noch optimiert werden
183 FN 9: IF +Q82 EQU +1 GOTO LBL 25 ; Sprung muss noch optimiert werden
184 FN 9: IF +Q86 EQU +0 GOTO LBL 25 ; Sprung muss noch optimiert werden
185 FN 9: IF +Q86 EQU +1 GOTO LBL 25 ; Sprung muss noch optimiert werden
186 FN 9: IF +0 EQU +0 GOTO LBL 15 ; Sprung muss noch optimiert werden
187 ;
188 ;
189 LBL 25
190 L Z+Q71 FMAX
191 Q82 = Q81 ; Zaehler reseten
192 Q86 = Q85 ; Zaehler reseten
193 L X+Q91 Y+Q93 FMAX
194 ;
195 ;
196 L Z+Q71 FMAX M5 M9
197 CALL PGM TNC:\1B-Standardprogramme\Freifahren-Plane-Reset-M5M9.h
198 ;
199 ;
200 M30
201 ;
202 ;
203 ; Fehlermeldungen
204 LBL 95
205 STOP
206 ; Z Werte Falsch!
207 ; Z Werte Falsch!
208 ; Z Werte Falsch!
209 M30
210 LBL 96
211 STOP
212 ; X Werte Falsch!
213 ; X Werte Falsch!
214 ; X Werte Falsch!
215 M30
216 LBL 97
217 STOP
218 ; Y Werte Falsch!
219 ; Y Werte Falsch!
220 ; Y Werte Falsch!
221 M30
222 LBL 98
223 STOP
224 ; Sicherheitsebene oder Z Anfang falsch
225 ; Sicherheitsebene oder Z Anfang falsch
226 ; Sicherheitsebene oder Z Anfang falsch
227 LBL 99
228 STOP
229 ; Verrundung groesser als AE!
230 ; Verrundung groesser als AE!
231 ; Verrundung groesser als AE!
232 M30
233 ;
234 * - LBL 1 Anstellung
235 LBL 1 ;Anstellung
236 CYCL DEF 7.0 NULLPUNKT
237 CYCL DEF 7.1 X+0
238 CYCL DEF 7.2 Y+0
239 CYCL DEF 7.3 Z+0
240 PLANE SPATIAL SPA+0 SPB+0 SPC+0 TURN MB MAX FMAX SEQ- TABLE ROT
241 LBL 0
242 ;
243 END PGM 99-Planen-Spiral MM
   
Beitrag 03.09.2024, 08:02 Uhr
jtm90
Level 2 = Community-Facharbeiter
**
So ich hab das Programm jetzt nochmal ein wenig verbessert.

Ich war mit dem Zähler der die Spiralzustellungen zählt nicht zufrieden. Hab es jetzt so gemacht das geschaut wird ob die Fläche fertig gefräst ist und dann entschieden wird ob aus der Schleife gesprungen wird.

Es kann zwar leider manchmal vorkommen dass bei unglücklichen Kombinationen aus Außenabmessung/Ae/RND Wert die Maschine auf Fehler geht, weil die Lineare Bewegung zu kurz zum verrunden ist. Aber ich habe leider noch keine gute Lösung dafür gefunden.


Verwendung auf eigene Gefahr!

Angehängte Datei(en)
Angehängte Datei  ZZ_Pl_Spiral.H ( 6.34KB ) Anzahl der Downloads: 6
 
   
Beitrag 09.09.2024, 05:30 Uhr
gottvati
Level 3 = Community-Techniker
***
ZITAT(jtm90 @ 30.08.2024, 08:18 Uhr) *
Grüß euch!

Ich hab mir kürzlich ein Parameterprogramm zum Planen von Rechteckigen Teilern in einer Spiralzustellung geschrieben.
Ist zwar noch ein wenig im testen, funktioniert aber soweit.

Ich hätte gerne die Eckpunkte der Spirale mit der RND Funktion verrundet. Leider Funktioniert das nicht, ich bekomme immer die Meldung Rundungsradius zu groß oder Werkzeugebene stimmt nicht. Wenn ich mir die RND Sätze ausblende funktioniert die Spirale wie gewollt, und es ist auch genug Platz für Rundung.

Kann es sein das RND hier nur eingeschränkt funktioniert, weil alle Bewegungen mit Q Parametern programmiert sind und diese in einer Schleife dauernd verändert werden?

MfG


Hi jtm90,
deine zweite Programmversion habe ich im Simulator getestet und da wurden die Ecken der Spirale verrundet. Wenn Du die Rundung am wegzufräsenden Material sehen willst, dann musst Du sie nur größer machen, da die Rundung als Fräsermittelpunktsbahn programmiert ist.

Q72 = 1 ; Verundungsradius der Spiralecken Q72
Q72 = Q72 + Q108

Am Ende kann es dann noch einen Fehler geben, wenn die Strecken der Spirale unter 2* R berechnet werden.

Gruß, Nils


--------------------
Gruß, Nisse.
   
3 Besucher lesen dieses Thema (Gäste: 3)
0 Mitglieder: