584.850 aktive Mitglieder*
4.428 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
HEIDENHAIN Forum

Q Parameter Z zustellung

Beitrag 11.02.2017, 20:51 Uhr
gmabler
gmabler
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 11.02.2017
Beiträge: 5

Hallo Zusammen,

Zurzeit arbeite ich an einer Mikron mit einer TNC 355 Steuerung. Da wir sehr viele Nuten fräsen und der vorabinstallierte Zyklus nicht passend ist, habe ich mich entschlossen einen eigenen zu programmieren.
Nun habe ich ein Problem, bzw. finden den Fehler nicht. Das Programm funktioniert soweit bis auf die Zustellung in der Z Achse. Die Zustellung in Z erfolgt nur einmal und spring danach direkt zu LBL4.

Habe hier mal den Programm Abschnitt....

LBL 1
FN0 : Q1 (Länge X )
FN0 : Q2 (Länge Y)
FN0 : Q3 (Startpunkt Z)
FN0 : Q4 (Endpunkt Z)
FN0 : Q5 (Anzahl Zustellung)

LBL 2
FN2 : Q12=+Q4-+Q3
FN4 : Q12=+Q12DIV+Q5 (Zustellung Z)
FN0 : Q13=+Q3 (Z Aktuell)

LBL 3
L IX+Q1 IZ-Q13
L IX-Q1
FN 1 : Q13=+Q13++Q12
FN9 : IF +Q13 EQU +Q4 GOTO LBL4
FN11 : IF +Q13 LT +Q4 GOTO LBL2

LBL4
L IX+Q1
L IY-Q2 RL
CC IX+0 IY+Q2
CP IPA-180 DR+
L IX -Q1
CC IX+0 IY-Q2
CP IPA-180 DR+
L IX+Q1
L IY+Q2 R0
L Z+5
LBL 0

Weiss jemand wo das Problem liegt?
Besten Dank fürs mitdenken biggrin.gif
TOP    
Beitrag 12.02.2017, 08:36 Uhr
LucyLou
LucyLou
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 16.02.2008
Beiträge: 702

Hallo,

welchen Wert hat

Q3, Q4, Q13?

mfg Peter


--------------------
mfg Peter

HAAS CompactMill 1
HAAS SuperMiniMill 2
HAAS ST10Y mit Stangenlader
TOP    
Beitrag 12.02.2017, 09:15 Uhr
x90cr
x90cr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 09.02.2005
Beiträge: 2.444

So wie ich das sehe ist das schlecht aufgebaut.
Durch deine Rechnung wird mit einer nagtiven Zahl gearbeitet.

Z Start 2
Z Ende -5,25

-5,25 - +2 = -7,25

-7,25 : 3 Zustellungen = 2,41666666666666666667

Damit bekommst du spätestens in der letzten Zustellung wegen zu vieler Nachkommastellen und Rundungsfehler Probleme.
Besser du kehrst die errechnet Zustellung ins positive und bereinigst die Nachkommastellen.
Und bei der Zustellung machst du einen Vergleich ob Z Ende erreicht wurde.
Falls Z Ende noch nicht erreicht ist, aber mit der nächsten Zustellung Z überschritten wird, dann setzt du Q13 = Q4 und machst den letzten Schnitt.

Der Beitrag wurde von x90cr bearbeitet: 12.02.2017, 09:17 Uhr


--------------------
!! Mein alter Nickname: canon !!

Beginnt man das System zu hinterfragen, so erkennt man deutlich, dass die „Wahrheit“ zumeist entgegengesetzt des scheinbaren zu finden ist.
  • Wenn wir uns heute keine Zeit für unsere Gesundheit nehmen, werden wir uns später viel Zeit für unsere Krankheiten nehmen müssen.
  • Wenn es klemmt - wende Gewalt an. Wenn es kaputt geht, hätte es sowieso erneuert werden müssen.
TOP    
Beitrag 12.02.2017, 09:16 Uhr
gmabler
gmabler
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 11.02.2017
Beiträge: 5

Die Werte sind variable. Je nach Werkstück werden diese angepasst.
Wir können jedoch als beispiel für Q3=+2, Q4=-10 annehmen

Gruss
TOP    
Beitrag 12.02.2017, 10:03 Uhr
LucyLou
LucyLou
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 16.02.2008
Beiträge: 702

Hallo,

Dann Rechnen wir mal

Q4=-10
Q3=+2
Q5=5
Q13=Q3

Q12=Q4 - Q3
Q12=-10 - 2
Q12= -12
Q12= Q12 DIV Q5
Q12= -12 DIV 5
Q12=-2,4

Überprüfung
FN12: IF Q13 LT Q4 GOTO LBL 2
FN12: IST Q13 Kleiner als Q4 GOTO LBL 2
FN12 IST +2 Kleiner als -10 GOTO LBL 2

Als Erstes Doppelte Verwendung von Q12 zumindest am Anfang nie einen Parameter Doppelt belegen Erschwert die Fehler Suche
Dann wird gefragt Ob Q13 kleiner ist als Q4
Q13 Positiv
Q4 Negativ
Was ist passiert wenn Q13 kleiner ist als Q4? Der Fräser ist schon zu weit im Material Drinnen

Bei so etwas am Besten zusätzlich eine Liste mit verwendeten Q-Parametern in einer Tabellenkalkulation (z.b. Excel) festhalten


So ungefähr müsste das Hinkommen
CODE
0  BEGIN PGM Nut MM
1  FN 0: Q1 =+40;Laenge X
2  FN 0: Q2 =+26;Nut Breite
3  FN 0: Q3 =+5;Nuttiefe
4  FN 0: Q4 =+2;Startpunkt Z
5  FN 0: Q5 =+6;Anzahl Zustellungen
6 ;
7 ; Berechnungen
8  FN 1: Q10 =+Q3 + +Q4;Nut Hoehe
9  FN 4: Q11 =+Q10 DIV +Q5;Zustellung Z
10;
11 FN 0: Q15 =+0;Zaehler Zustellung
12;
13;
14; Tiefe Fraesen
15 LBL 1
16 FN 1: Q15 =+Q15 + +1; Zaehler um 1 erhoehen
17; Fraesen
18;
19;Abfragen
20 FN 12: IF +Q15 LT +Q5 GOTO LBL 1
21;
22; Rest der Bearbeitung
23 END PGM Nut MM


mfg Peter


--------------------
mfg Peter

HAAS CompactMill 1
HAAS SuperMiniMill 2
HAAS ST10Y mit Stangenlader
TOP    
Beitrag 12.02.2017, 11:59 Uhr
gmabler
gmabler
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 11.02.2017
Beiträge: 5

Hallo Peter

Besten Dank für deine Lösung

Habe wie so oft üblich viel zu weit überlegt wink.gif

Gruss
TOP    
Beitrag 12.02.2017, 16:58 Uhr
homerq
homerq
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 03.06.2004
Beiträge: 737

QUOTE (LucyLou @ 12.02.2017, 10:03 Uhr) *
1 FN 0: Q1 =+40;Laenge X
2 FN 0: Q2 =+26;Nut Breite
3 FN 0: Q3 =+5;Nuttiefe
4 FN 0: Q4 =+2;Startpunkt Z
5 FN 0: Q5 =+6;Anzahl Zustellungen

Dies entspricht nicht der Vorgabe :
QUOTE
LBL 1
FN0 : Q1 (Länge X )
FN0 : Q2 (Länge Y)
FN0 : Q3 (Startpunkt Z)
FN0 : Q4 (Endpunkt Z)
FN0 : Q5 (Anzahl Zustellung)

Ich persönlich rechne auch lieber mit absoluten Werten. Diese sind immer eindeutig und unverwechselbar im Wert wie im Vorzeichen.
Wenn ich die Nuttiefe dann mit Q3-Q4 berechne ergibt sich immer ein positiver Wert, vorausgesetzt Q3 ist auch > Q4, alles andere wäre ein Eingabefehler und müßte separat überprüft werden.
Aber das ist Geschmackssache und nur meine Meinung.
Des weiteren rechne ich lieber mit (max.) Z-Tiefen als Anzahl der Schnitte.
Natürlich findet das Ganze vor der Abarbeitung statt.
So gibt es keine Rundungsfehler, da ich nicht Wiederholungen sondern direkt den errechneten und Grenz- Wert vergleiche.
Außerdem gebe ich auch lieber Zustelltiefen als Schnittanzahl an, diese sind praxisnäher, aber das ist laut Vorgabe nicht vorgesehen.
Bei den Zustelltiefenangaben hat man dann auch die Wahl zwischen festem Zustellwert und der letzte wird =/< Zustelltiefe
oder die errechnete Anzahl der Zustellungen wird anhand der Zustelltiefe errechnet, daraus wiederum die einzusetzende Zustelltiefe.
Der Zustellwert ist dann eine Maximalangabe.
Viel Erfol bei deinem Projekt!
Gruß Jens
TOP    
Beitrag 12.02.2017, 17:49 Uhr
cgTNC
cgTNC
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 21.11.2010
Beiträge: 1.341

QUOTE (gmabler @ 11.02.2017, 20:51 Uhr) *
LBL 1
FN0 : Q1 (Länge X )
FN0 : Q2 (Länge Y)
FN0 : Q3 (Startpunkt Z)
FN0 : Q4 (Endpunkt Z)
FN0 : Q5 (Anzahl Zustellung)

LBL 2
FN2 : Q12=+Q4-+Q3
FN4 : Q12=+Q12DIV+Q5 (Zustellung Z)
FN0 : Q13=+Q3 (Z Aktuell)

LBL 3
L IX+Q1 IZ-Q13
L IX-Q1
FN 1 : Q13=+Q13++Q12
FN9 : IF +Q13 EQU +Q4 GOTO LBL4
FN11 : IF +Q13 LT +Q4 GOTO LBL2
...

Im Programm von ganz oben passt vor LBL3 eigentlich alles.
Nach LBL3 sind dann aber mehrere Fehler:
  1. Da Q13 absolut gerechnet wird, muß auch absolut zugestellt werden, ausserdem passt das Vorzeichen nicht zu der Berechnung davor:
    L IX+Q1 Z+Q13
  2. Wird zu LBL2 gesprungen ergibt sich eine Endlosschleife, weil immer wieder Q13=Q3 ausgeführt wird.
    Die beiden IF Zeilen fragen falsch ab und es muss zu LBL3 gesprungen werden.
    IF +Q13 EQU +Q4 GOTO LBL 3
    IF +Q13 GT +Q4 GOTO LBL 3
    Damit kommt man schonmal weiter.
  3. Bleibt das von LucyLou angesprochene Problem mit Rundungfehlern, das mit dem vorgeschlagenen Zähler gelöst werden kann, dann sieht das Ganze ungefähr so aus:
    Q15=0
    LBL 3
    L IX+Q1 Z+Q13
    L IX-Q1
    FN 1 : Q13=+Q13++Q12
    FN 1: Q15 =+Q15 + +1; Zaehler um 1 erhoehen
    FN 12: IF +Q15 LT +Q5 GOTO LBL 3



QUOTE (LucyLou @ 12.02.2017, 10:03 Uhr) *
3 FN 0: Q3 =+5;Nuttiefe
4 FN 0: Q4 =+2;Startpunkt Z
5 FN 0: Q5 =+6;Anzahl Zustellungen

Den Vorschlag von LucyLou, die Nuttiefe mit falschem Vorzeichen anzugeben halte ich persönlich eher für verwirrend.

Gruß
cgTNC

Der Beitrag wurde von cgTNC bearbeitet: 12.02.2017, 17:50 Uhr
TOP    
Beitrag 12.02.2017, 18:26 Uhr
LucyLou
LucyLou
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 16.02.2008
Beiträge: 702

Hallo,

Rundungsfehler sind in Post 2 von @x90cr

Wenn man mit Positiven Werten rechnet dann hat man meistens weniger Probleme weil man muss nicht aufpassen auf Plus und minus
als nächstes wird es auch die Lesbarkeit im Programm verbessert

1 FN0: Q1=-10
2 FN0: Q2= +20
.
.
.
.
199 L X+Q1 F400
200 L Y-Q2 F400

in Satz 188 Weiß ich nicht in welche Richtung die Maschine Fährt in Satz 200 jedoch schon

Aber ist alles Geschmackssache und auch Situationsbedingt Anzupassen.
Mein Lösungs Ansatz ist nur einer von Wieviele Heidenhain Benutzer gibt es?

Rundungsfehler wäre noch eine Andere möglichkeit

Nuttiefe -0,5
Wenn das Eintauchen Erledigt ist
dann in Z auf Nuttiefe fahren einmal Gerade noch zurück
danach ausräumen

Beim Berechnen sollte vielleicht noch in der Laenge 2mal Q108 abgezogen werden
Jetzt weiß ich nicht ob das die 355 schon kann benötigt man auch keinen Startpunkt in Z angeben
Zyklus startet dort wo der Fraeser steht

mfg Peter


--------------------
mfg Peter

HAAS CompactMill 1
HAAS SuperMiniMill 2
HAAS ST10Y mit Stangenlader
TOP    
Beitrag 12.02.2017, 19:33 Uhr
Senn
Senn
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 28.12.2016
Beiträge: 137

Also generell kannst du ja alles via Q-Parameter machen aber ich würde es so machen:

0 BEGIN PGM nut MM
1 BLK FORM 0.1 Z X-30 Y-40 Z-20
2 BLK FORM 0.2 X+30 Y+40 Z+0
3 TOOL CALL 3 Z S2000 F200
4 L X+0 Y+0 R0 FMAX M13
5 L Z+2
6 Q42 = - 0.5 ;erste Zustellung
7 LBL 10 ; Sprung
8 CALL LBL 1 ; Konturbeschreibung
9 FN 1: Q42 =+Q42 + -0.5 ; zweite zustellung
10 FN 11: IF +Q42 GT -10.01 GOTO LBL 10 ; Zustellung auf Endtiefe 10 (0,01mm dient dazu das er da nichtt drüber gehen darf)
11 L Z+100 R0 FMAX M30
12 LBL 1
13 L X+0 Y+0 R0 FMAX M13
14 L Z+Q42 R0 F20
15 L X-6 RL F200
16 L Y-20
17 CR X+6 Y-20 R+6 DR+
18 L Y+20
19 CR X-6 Y+20 R+6 DR+
20 L Y+0
21 RND R1
22 L X+0 Y+0 R0
23 LBL 0
24 END PGM nut MM


Das wäre das einfachste mit mögichst wenig Q-Parametern. Im LBL-Ende kannst du noch in Z+2 gehen falls ein Hinderniss wäre!
TOP    
Beitrag 13.02.2017, 17:25 Uhr
gmabler
gmabler
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 11.02.2017
Beiträge: 5

@Senn, Danke für diene Lösung. Jedoch erfüllt diese meine Absichten nicht, da die Nuten in der Länge, Breite und Tiefe variable ist und ich dies mit wenig Aufwand anpassen möchte.

Dies wäre eine Weiter Lösung mit max Zustellung und max Tiefe

FN 0: Q1 ,Länge X
FN 0: Q2 ,Läng Y
FN 0: Q3 ,Z Startpunkt
FN 0: Q4 ,Nuttiefe (-Z)
FN 0: Q5 ,Zustellung Z

FN 3: Q14=+Q4x-1 ,Berechnung Nuttiefe +Z
FN 2: Q12=+Q3-+Q3 ,Berechnung Z 0

LBL1
L IX+Q1 Z-Q12
L IX-Q1
FN 9: IF +Q12 EQU +Q14 GOTO LBL2
FN 2: Q12=+Q12-+Q5 ,Berechnung nächst Tiefe Z
FN 12: IF +Q12 LT +Q14 GOTO LBL1
FN 0: Q12=+Q14
FN 9: IF +Q12 EQU +Q14 GOTO LBL1

LBL2
...
...
TOP    
Beitrag 13.02.2017, 18:59 Uhr
homerq
homerq
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 03.06.2004
Beiträge: 737

QUOTE (gmabler @ 13.02.2017, 17:25 Uhr) *
FN 2: Q12=+Q3-+Q3 ,Berechnung Z 0

ergibt immer 0 also fängst du immer bei Z0 an
vielleicht sollte es so aussehen:
FN 2: Q12=+Q3-+Q5

QUOTE
FN 0: Q4 ,Nuttiefe (-Z)
FN 0: Q5 ,Zustellung Z

FN 3: Q14=+Q4x-1 ,Berechnung Nuttiefe +Z

Nuttiefe muß also positiven Wert haben und ist immer von Z0 aus
QUOTE
LBL1
L IX+Q1 Z-Q12
L IX-Q1
FN 9: IF +Q12 EQU +Q14 GOTO LBL2

Abarbeitung vor dem Vergleich, im ungünstigen Fall ist`s dann schon zu spät
QUOTE
FN 2: Q12=+Q12-+Q5 ,Berechnung nächst Tiefe Z
FN 12: IF +Q12 LT +Q14 GOTO LBL1

Q12 sollte immer größer oder gleich Q14 sein, also bleibt der Sprung ohne Wirkung
QUOTE
FN 0: Q12=+Q14

Hier setzt du Z-Wert auf Endtiefe
QUOTE
FN 9: IF +Q12 EQU +Q14 GOTO LBL1

Sprung zur Abarbeitung, nach Vergleich Sprung zu LBL2
Kurz zusammengefaßt erster Durchlauf bei Z0, oder korrigiert bei Starttiefe - Zustelltiefe, zweiter Durchlauf bei Endtiefe.
Ich hoffe das Programm so richtig interpretiert zu haben.
Da mußt du dann wohl noch nachbessern.
Gruß Jens
TOP    
Beitrag 13.02.2017, 20:28 Uhr
gmabler
gmabler
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 11.02.2017
Beiträge: 5

QUOTE (homerq @ 13.02.2017, 18:59 Uhr) *
ergibt immer 0 also fängst du immer bei Z0 an
vielleicht sollte es so aussehen:
FN 2: Q12=+Q3-+Q5


Abarbeitung vor dem Vergleich, im ungünstigen Fall ist`s dann schon zu spät

Sprung zur Abarbeitung, nach Vergleich Sprung zu LBL2
Kurz zusammengefaßt erster Durchlauf bei Z0, oder korrigiert bei Starttiefe - Zustelltiefe, zweiter Durchlauf bei Endtiefe.




FN 0: Q1=+40 Nutlänge
FN 0: Q2=+5 Nutbreite
FN 0: Q3=+2 Z Startpunkt
FN 0: Q4=-7 Nuttiefe (-Z)
FN 0: Q5=-1.25 Zustellung Z

FN 3: Q14=+Q4x-1 Berechnung Nuttiefe +Z
QUOTE
Nuttiefe muß also positiven Wert haben und ist immer von Z0 aus

Nuttief wird negativ angegeben. Jedoch sind positive werte einfacher in der Handhabung. Daher Umrechnung in positiv Q4x-1

FN 2: Q12=+Q3-+Q3 Berechnung Z 0
QUOTE
ergibt immer 0 also fängst du immer bei Z0 an


Ja ergibt immer 0! Passt jedoch für mein Anwendungsfall, kann noch verbessert werden!

QUOTE
vielleicht sollte es so aussehen:
FN 2: Q12=+Q3-+Q5

Nein, Rechnen wir:
2-(-1.25)=3.25 -> Erste Z Zustellung 3.25, Z Achse fährt auf den Wert -3.25mm


LBL1
L IX+Q1 Z-Q12
L IX-Q1
FN 9: IF +Q12 EQU +Q14 GOTO LBL2
FN 2: Q12=+Q12-+Q5 Berechnung nächst Tiefe Z
FN 12: IF +Q12 LT +Q14 GOTO LBL1
FN 0: Q12=+Q14
FN 9: IF +Q12 EQU +Q14 GOTO LBL1

QUOTE
Q12 sollte immer größer oder gleich Q14 sein, also bleibt der Sprung ohne Wirkung

Hier setzt du Z-Wert auf Endtiefe

Nein, Z fährt auf Z Endtiefe, anschließend Sprung zu LBL2


Gruss
Angehängte Datei  Unbenannt.PNG ( 20.21KB ) Anzahl der Downloads: 28
TOP    
Beitrag 14.02.2017, 06:26 Uhr
homerq
homerq
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 03.06.2004
Beiträge: 737

o.k. falsch interpretiert.
Nur noch 2 Sachen:
Warum Q14 negieren, schon bei der ersten Zustellung gibt es Probleme, wie du selbst schon erkannt hast.
Der Steuerung ist es im Übrigen egal ob Werte positiv oder negativ sind, sie "handhabt" alles gleich nach den allgemeingültigen mathematischen Gesetzen.
Ist die Nuttiefe nun ein absoluter Wert, oder eine Tiefe vom Startpunkt aus (würde ich so interpretieren: Wort "Tiefe").
Ist es ein absoluter Wert, könnte er auch pos. sein und würde beim negieren eben negativ und wäre dann nicht mehr so leicht zu "handhaben".
In Bezug auf Verständnis für andere würde ich die Beschreibung der variablen Parameter eindeutiger wählen.
Aber wenn alles nach deiner Zufriedenheit funktioniert soll das egal sein. Lösungen gibt es oft mehrere und jeder entwickelt da seine eigene Handschrift.

Gruß Jens
TOP    



1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: