515.669 aktive Mitglieder
2.899 Besucher online
Kostenfrei registrieren
Anmelden Registrieren
Siemens Forum

Digital Industries, Motion Control, Machine Tool Systems

Werte aus Nullpunkt mehrfach verwenden

Beitrag 21.01.2020, 14:46 Uhr
steff_ndb
steff_ndb
Level 2 = IndustryArena-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 22.12.2007
Beiträge: 144

Hallo,

ich habe eine Mehrfachspannvorrichtung welche einem 120° Sternaufbau nahe kommt. Die Vorrichtung ist auf einer DMC 60HL aufgebaut (AB-Kinematik).
Die Vorrichtung ist Rotationssymetrisch, deshalb habe ich bei meinem X-Y-Z Nullpunkt immer den gleichen Wert, lediglich die Position der B-Achse ändert sich, je nachdem welches Spannnest ich bearbeite.
Hier mal eine Nullpunktdefinition aus einem aktuell laufendem Programm:

N10 $P_UIFR[5]=CTRANS(X,-39.0,Y,295.0,Z,248.0,B,0,A,0):CROT(X,-35.0,Y,0,Z,0)
N11 $P_UIFR[9]=CTRANS(X,-39.0,Y,295.0,Z,248.0,B,120.0,A,0):CROT(X,-35.0,Y,0,Z,0)
N12 $P_UIFR[13]=CTRANS(X,-39.0,Y,295.0,Z,248.0,B,240.0,A,0):CROT(X,-35.0,Y,0,Z,0)

Im Programm wird nun also mit G154, G254 sowie G354 gearbeitet, wobei sich jeweils nur die Werte der B-Achse verändern.
Vor kurzem trat der Fall auf, dass ein Nullpunkt um wenige Zehntel verschoben werden musste, da sich das Rohmaterial geringfügig geändert hatte. Dies bedeutet 3x die selbe Korrektur vornehmen, was ich gerne vermeiden möchte.
Ich würde gerne das Programm dahingehend gestalten, dass z. B. die X-Y-Z-Werte des Nullpunkts G254 direkt aus G154 übernommen werden und nur die B-Achse eingegeben werden muss, somit entfällt die Gefahr eines Zahlendrehers oder ein vergessen der jeweiligen Korrektur.

Kann diese Situation so umgesetzt werden, bzw. welche Möglichkeiten gibt es diese möglichen Fehlerquellen zu umgehen?

Ich würde mich über Input freuen,

Viele Grüße, Stefan
TOP    
Beitrag 21.01.2020, 19:26 Uhr
CNCFr
CNCFr
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.390

Ist G154, G254 sowie G354 neu? Kenne ich bisher gar nicht.
Aber zu deinem Problem: Weshalb willst du die B-Achs-Drehung mit in die Frames packen? Wenn ich es richtig verstehe, aktivierst du am Programmanfang einen von drei Frames und fährst dann B0 an, wodurch sich die B-Achse je nach Nullpunktverschiebung auf die richtige Position (0 / 120 / 240) dreht. Dann folgt die Bearbeitung, bei der die B-Achse nicht mehr bewegt wird.
Wenn das so ist, scheint es mir doch einfacher zu sein, nur einen einzigen Frame zu verwenden und am Programmanfang jeweils einfach die entsprechende B-Achsposition anzufahren.
Wenn du es unbedingt über Frames lösen willst, könntest du die Nullpunktverschiebungen für die Geometrieachsen und für die Rundachse auch trennen, also z.B. einen einstellbaren Frame für die Geometrie und drei verschieden Basisframes für die drei Rundachspositionen.
Eine weitere Möglichkeit wäre, im Programm die Nullpunktverschiebungen der Linearachsen immer aus dem ersten Frame zu lesen und dann jeweils in den zweiten und dritten Frame zu übernehmen.
Eine Möglichkeit, dass die Änderung eines Frames über das Bedienfeld für bestimmte Achsen auch in andere Frames übernommen wird, sehe ich nicht.

Der Beitrag wurde von CNCFr bearbeitet: 21.01.2020, 19:31 Uhr
TOP    
Beitrag 21.01.2020, 19:42 Uhr
Daniel24
Daniel24
Level 1 = IndustryArena-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 19.01.2005
Beiträge: 11

Hallo,

könnte vielleicht so funktionieren, kann es leider nicht testen:

N10 $P_UIFR[5]=CTRANS(X,-39.0,Y,295.0,Z,248.0,B,0,A,0):CROT(X,-35.0,Y,0,Z,0)
N11 $P_UIFR[9]=CTRANS(X,$P_UIFR[5,X,TR],Y,$P_UIFR[5,Y,TR],Z,$P_UIFR[5,Z,TR],B,120.0,A,0):CROT(X,-35.0,Y,0,Z,0)
N12 $P_UIFR[13]=CTRANS(X,$P_UIFR[5,X,TR],Y,$P_UIFR[5,Y,TR],Z,$P_UIFR[5,Z,TR],B,240.0,A,0):CROT(X,-35.0,Y,0,Z,0)

oder vielleicht so:

$P_UIFR[9,X,TR]=$P_UIFR[5,X,TR]
$P_UIFR[9,Y,TR]=$P_UIFR[5,Y,TR]
$P_UIFR[9,Z,TR]=$P_UIFR[5,Z,TR]
$P_UIFR[9,B,TR]=$P_UIFR[5,B,TR]
TOP    
Beitrag 21.01.2020, 19:48 Uhr
CNCFr
CNCFr
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.390

Ja das wird sicher funktionieren.
Man kann natürlich auch einfach den kompletten ersten Frame in den zweiten und dritten Frame kopieren und anschließend noch die Nullpunktverschiebungen der B-Achse setzen. Das ist weniger Schreibarbeit und auch nicht so (tipp-)fehleranfällig.
TOP    
Beitrag 22.01.2020, 07:50 Uhr
steff_ndb
steff_ndb
Level 2 = IndustryArena-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 22.12.2007
Beiträge: 144

Hallo,

danke für eure Antworten!

@Daniel24:
Verstehe ich das so richtig: N12 $P_UIFR[13]=CTRANS(X,$P_UIFR[5,X,TR] : Der X-Nullpunkt des 13. Frames soll aus dem X-Nullpunkt des 5. Frames übernommen werden? Falls das so heißt, wäre das genau das, was ich suche, danke! Was bedeutet das "TR"? Steht es für TRANS?

@CNCFr:

G154, G254 und G354 sind meine G-Funktionen für den Werkstücknullpunkt. Ich glaube das kommt von DMG, ich habe hier 99 Frames zur Verfügung um den Werkstücknullpunkt festzulegen. Die Frames 5,9 und 13 werden dann eben in diese G154 usw. übernommen. Ich habe es so definiert: G54 war immer für 1. Aufspannung, G55 immer für die 2. Aufspannung. Durch meine Möglichkeit mit den verschiedenen Spannnestern habe ich dem jeweiligen Frame das Spannnest zugeordnet, mit dem vorausgehendem "1".
Die Nullpunkte für meine 2. Spannung heißen demnach immer G155, G255 sowie G355. Sollte in besonderen Fällen eine 3. Spannung notwendig sein, wiederholt sich das Spiel mit G156, G256, G356.

Ich möchte die B-Achsposition im Frame haben, da ich ohne B-Achsenpositionierung arbeite, sondern alle Flächen des Bauteils über CYCLE800 einschwenke. Ich bearbeite auch immer alle Bauteile mit einem Werkzeug, bevor ich das nächste einwechsle.
Die Programmstruktur sieht dann im groben so aus:

T1 M6
S2000 F400 M3
;
G154

SPRUNGMARKE1:
CYCLE800 für B270°Seite
Bohren, Fräsen etc.
Freifahren

CYCLE800 für B0°Seite
Bohren, Fräsen etc.
Freifahren

CYCLE800 für B90°Seite
Bohren, Fräsen etc.
Freifahren
SPRUNGMARKE2:
;
G254
REPEAT SPRUNGMARKE1 SPRUNGMARKE2
;
G354
REPEAT SPRUNGMARKE1 SPRUNGMARKE2
;
T2 M6
usw.


Meine Bauteile sehen äußerlich immer relativ ähnlich aus, es handelt sich meistens nur um Würfelförmige Bauteile, die Bearbeitung ist meistens nur Bohren, Reiben, Gewinde etc. Im Anhang eine vereinfachte Form der Spannvorrichtung mit den Bauteilen drauf, funktioniert eigentlich sehr gut, aber ich befinde mich bei dieser Methode auch noch immer in der Lernphase.

Viele Grüße, Stefan

Angehängte Datei(en)
Angehängte Datei  Maschine.PNG ( 135.83KB ) Anzahl der Downloads: 28
 
TOP    
Beitrag 22.01.2020, 08:51 Uhr
CNCFr
CNCFr
Level 7 = IndustryArena-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.390

Dann kannst du doch einfach da wo du jetzt die verschiedenen Frames aktivierst, immer den gleichen Frame aktivieren, nach dem du vorher die Nullpunktverschiebung der B-Achse überschrieben hast. Das hätte ja auch den Vorteil, dass das Programm einfacher wird, wenn du das Winkelinkrement der B-Achse ändern willst (du hast ja offensichtlich Anwendungen mit 90-Grad Schritten und solche mit 120 Grad-Schritten).
Wenn es dir aber wichtig ist, dass du aus der Nummer des aktiven Frames sofort die jeweilige Bearbeitungsseite erkennen kannst, kannst du natürlich auch mehere Frames verwenden, und die Verschiebungen der Geometrieachsen aus deinem Referenzframe kopieren.
TOP    
Beitrag 23.01.2020, 07:05 Uhr
steff_ndb
steff_ndb
Level 2 = IndustryArena-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 22.12.2007
Beiträge: 144

Hallo,

danke nochmal für eure Antworten!

Ich habe es nun mit dem Vorschlag von Daniel gelöst:

N10 $P_UIFR[5]=CTRANS(X,-39.0,Y,295.0,Z,248.0,B,0,A,0):CROT(X,-35.0,Y,0,Z,0)
N11 $P_UIFR[9]=CTRANS(X,$P_UIFR[5,X,TR],Y,$P_UIFR[5,Y,TR],Z,$P_UIFR[5,Z,TR],B,120.0,A,0):CROT(X,-35.0,Y,0,Z,0)
N12 $P_UIFR[13]=CTRANS(X,$P_UIFR[5,X,TR],Y,$P_UIFR[5,Y,TR],Z,$P_UIFR[5,Z,TR],B,240.0,A,0):CROT(X,-35.0,Y,0,Z,0)

Das funktioniert genau so wie ich es haben wollte, danke nochmal!

Viele Grüße, Stefan
TOP    



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