Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Rechenergebnis (auf/ab)runden, R-Parameter

Beitrag 14.01.2016, 17:38 Uhr
Big-Jim
Big-Jim
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.09.2008
Beiträge: 27
Hallo zusammen

Wie kann ich bei der 840C das Ergebnis einer R-Parameterrechnung auf/abrunden
und/oder für weitere Berechnungen nur die ganze Zahl berücksichtigen ?


Gruß Jim
   
Beitrag 14.01.2016, 18:34 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Big-Jim @ 14.01.2016, 18:38 Uhr) *
Hallo zusammen

Wie kann ich bei der 840C das Ergebnis einer R-Parameterrechnung auf/abrunden
und/oder für weitere Berechnungen nur die ganze Zahl berücksichtigen ?

Gruß Jim


Zum "Abrunden" kannst du @622 verwenden.
Eigentlich wird lediglich der ganzzahlige Anteil des Wertes übernommen.

R60=23.9
@622 R60
;R60 hat nun den Wert "23"

"Aufrunden", oder runden auf x-Nachkomma-Stellen gibt es nach meiner Kenntnis nicht.
   
Beitrag 14.01.2016, 18:40 Uhr
cnc4you-ws
cnc4you-ws
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 18.01.2012
Beiträge: 26
Hi Big-Jim,

ich denke Runden kann die 840C nicht, zumindest geht nur abrunden, also Weglassen von Nachkommastellen. Durch einen boolschen Vergleich könntest du dies noch erweitern.

Handbuch findest du hier:
https://support.industry.siemens.com/cs/de/de/view/13243690

@622 <Var>
Von dem durch einen R-Parameter oder einen Pointer definierten Zahlenwert wird der ganzzahlige Anteil gebildet. Das Ergebnis steht danach im gleichen R-Parameter oder Pointer.
Beispiel:
R60 = 2.9
@622 R60
Es wird der ganzzahlige Inhalt von R60 gebildet;der neue Inhalt ist 2

Gruß

CNC4you-ws
   
Beitrag 14.01.2016, 19:20 Uhr
Big-Jim
Big-Jim
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.09.2008
Beiträge: 27
Dank euch,

das mit @622 hab ich wohl überlesen.

Gruß Jim
   
Beitrag 15.01.2016, 00:49 Uhr
DMC635V
DMC635V
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 12.08.2010
Beiträge: 844
Wenn abrunden geht, geht auch aufrunden oder auf/abrunden mit grenze 0.5:

Aufrunden:
CODE
R60 = R60+0.999
@622 R60


Auf/Abrunden:
CODE
R60 = R60+0.5
@622 R60


--------------------
Freundliche Grüsse
DMC635V
   
Beitrag 15.01.2016, 14:24 Uhr
Big-Jim
Big-Jim
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.09.2008
Beiträge: 27
Hallo zusammen

Ich hab die Aufgabe bekommen, für unser Scharmann Bohrwerk einen eigenen Bohrzyklus (Stotterbohren) zu schreiben.
Die Anforderung besteht darin, daß der Vorschub immer nur anhalten soll, ohne abheben!

Hab jetzt mal einen Entwurf verfasst, kann man das so machen ?
Konnte es noch nicht testen.

%MPF118
:1520 L6 T03 ( WPB 30)
N1530 G54 G95 M03 S500 F0.1 T04
N1550 R602=0 (REFERENZEBENE ABSOLUTMASS )
N1551 R603=2 (VORHALTEMASS)
N1552 R604=20 (BOHRUNGSTIEFE = POSITIV)
N1562 R605=4 (MAXIMALE ZUSTELLUNG IN Z )
N1563 R606=0.15 ( WARTEZEIT IN SEKUNDEN)
N1564 G0 X0 Y0
N1565 G0 Z50
N1567 G0 Z=R603
N1570 L701 P1
N1580 G00 Z50 M30



%SPF701
( UNTERPROGRAMM STOTTERBOHREN)
( PARAMETERDEFINITION IM HAUPTPROGRAMM )
( R602: REFERENZEBENE ABSOLUTMASS )
( R603: VORHALTEMASS )
( R604: BOHRUNGSTIEFE = POSITIV)
( R605: MAXIMALE ZUSTELLUNG IN Z )
( R606: WARTEZEIT IN SEKUNDEN)
( ENDE )


( RECHENTEIL )
R640= R604/ R605 (BOHRTIEFE / MAX. ZUSTELLUNG)
@622 R640 ( GANZZAHLIGER INHALT )
R642=0 ( ZAEHLWERK)
R643=R604-R605 ( BOHRTIEFE MINUS EINE ZUSTELLUNG )
R644=0 ( ZUSTELLUNGSRECHNER )

( PROGRAMMBEGINN )

N080 G01 Z0
N085 R644=R644+R605
N087 @123 R643 R644 K350 ( IF-ABFRAGE GROESSER )
N088 G91
N090 G01 Z=-R605 ( ZUSTELLUNG )
N091 G90
N092 G04 F=R606 ( WARTEZEIT )
N099 @620 R642
N100 @151 R642 R640 K350 ( SCHLEIFE BIS GLEICH )
N101 @100 K-085

N350 G1 Z=-R604
N351 G0 Z=R603



N500 M17


   
Beitrag 15.01.2016, 14:40 Uhr
Guest_guest_*
Themenstarter
Gast


Theoretisch sollte das klappen.
Aber ein kleiner Hinweis:
Bei diesem Code muß die Gesamt-Borhrtiefe ein exaktes vielfaches der Zustellung sein!
Ich würde die Bohrtiefe, nach der Ermittlung der Schritt-Anzahl, noch durch die Schritte teilen und dann um diesen Wert zustellen.
   
Beitrag 15.01.2016, 15:07 Uhr
Big-Jim
Big-Jim
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.09.2008
Beiträge: 27
Mein Gedanke war eigentlich, daß wenn ich mit der Zustellung nicht auf die exakte Bohrtiefe komme, aus der Schleife springe und mit Satznr. N350 immer auf Endbohrtiefe fahre.
   
Beitrag 15.01.2016, 15:17 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Big-Jim @ 15.01.2016, 16:07 Uhr) *
Mein Gedanke war eigentlich, daß wenn ich mit der Zustellung nicht auf die exakte Bohrtiefe komme, aus der Schleife springe und mit Satznr. N350 immer auf Endbohrtiefe fahre.


Das geht natürlich auch. Gibt aber etwas mehr Code.

Weil die Programmierung der 840C doch etwas schwer lesbar ist, würde ich sogar zur absoluten Verkürzung tendieren:
CODE
Schritte=runden(Endbohrtiefe/MaxZustellung)
Bohrtiefe=Endbohrtiefe/Schritte

G0 Z=Sicherheitsabstand
G1 Z=Referenzebene
for Zaehler=0 to Schritte
G1 Z=incremental(Bohrtiefe)
G4 F=Pause
endfor
G0 Z=Sicherheitsabstand
   
Beitrag 15.01.2016, 15:26 Uhr
Big-Jim
Big-Jim
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.09.2008
Beiträge: 27
Danke für die Unterstützung, hoffe es Montag testen zu können.
   
Beitrag 15.01.2016, 16:13 Uhr
Guest_guest_*
Themenstarter
Gast


Im "ORIGINAL"-Code sieht es dann so aus:
CODE
%SPF701
( UNTERPROGRAMM STOTTERBOHREN)
( PARAMETERDEFINITION IM HAUPTPROGRAMM: )
( R602: REFERENZEBENE ABSOLUTMASS )
( R603: VORHALTEMASS )
( R604: BOHRUNGSTIEFE = POSITIV)
( R605: MAXIMALE ZUSTELLUNG IN Z )
( R606: WARTEZEIT IN SEKUNDEN)

( UP-PARAMETER: )
( R607: EFFEKTIVE ZUSTELLUNG)
( R640: ANZAHL SCHRITTE)

( RECHENTEIL )
R640=R604/R605 (BOHRTIEFE / MAX. ZUSTELLUNG)
@622 R640 ( GANZZAHLIGER INHALT )
R607=R604/R640 (EFFEKTIVE ZUSTELLUNG)
R608=0 (ZAEHLER)

( PROGRAMMBEGINN )
N070 G00 Z=R603
N075 G01 Z=R602
N080 @151 R608 R640 K350 ( <FOR-SCHLEIFE BEGINN> )
N085 G91
N090 G01 Z=-R607 ( ZUSTELLUNG )
N095 G90
N100 G04 F=R606 ( WARTEZEIT )
N110 @100 K-80 ( RUECKSPRUNG - <FOR-SCHLEIFE ENDE>)

N350 G0 Z=R603

N500 M17
   
Beitrag 15.01.2016, 17:22 Uhr
Big-Jim
Big-Jim
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.09.2008
Beiträge: 27
Besten Dank, so hab ich noch eine möglich Alternative.
   
Beitrag 15.01.2016, 17:41 Uhr
Big-Jim
Big-Jim
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 03.09.2008
Beiträge: 27
Fällt mir gerade ein....

Wie mach ich das mit dem Aufruf, wenn ich ein Bohrbild mit z.B. 50 Löchern habe ?
Muß ich nach jeder Koordinate das UP wieder aufrufen, oder hat die 840C auch so etwas wie "MCALL" ??
   
Beitrag 15.01.2016, 18:14 Uhr
Guest_guest_*
Themenstarter
Gast


Ich mußte auch erst noch mal lesen.
Die Bohrzyklen L81 - L89 lassen sich modal mit G81 - G89 aufrufen. G80 wählt die Funktion ab.
Ansonsten scheint es keine Möglichkeit zum modalen Aufruf zu geben. Auch nicht für die anderen Zyklen.
   
Beitrag 15.01.2016, 18:14 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hi
QUOTE (Big-Jim @ 15.01.2016, 18:41 Uhr) *
Fällt mir gerade ein....

Wie mach ich das mit dem Aufruf, wenn ich ein Bohrbild mit z.B. 50 Löchern habe ?
Muß ich nach jeder Koordinate das UP wieder aufrufen, oder hat die 840C auch so etwas wie "MCALL" ??


Wenn ich mich noch richtig erinnere wink.gif

QUOTE
T3 L6
G0 G54 S1600 F150 M3 M8 ; usw
; Grundangaben
Rxxx =
Rxxx =
; usw
G0 X50 Y0 L701
X25 Y6 L701
;usw


MFG

Andy


--------------------
MfG
Andy

-------------------------------------------------------------------------------------------------------------------------


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
Beitrag 15.01.2016, 18:21 Uhr
Guest_guest_*
Themenstarter
Gast


Das sollte funktionieren:
"Steht der Unterprogramm-Aufruf zusammen mit anderen Funktionen in einem Satz, so wird
das Unterprogramm am Ende des Satzes aufgerufen."
   
Beitrag 15.01.2016, 19:10 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hi

laut meiner Doku aus dem Jahre 1996 / Siemens 840C der Firma STAMA geht sogar noch mehr

Du kannst sogar für unterschiedliche Bohrtiefen , oder sonstiges das ganze äußerst Effizient aufbauen

CODE
T3 L6
G0 G54 S1500 F350 M3 M8 T7;usw

;Wieder der Kopf

Rxxx =
Rxxx =
R7xx =     ; zb Bohrtiefe

; Aufrufe
G0 X50 Y 37 L701
X23 Y 77 L701
X93 Y55 R7xx= -120 L701; Neue Bohrtiefe ab hier gültig
X33 Y 77  L701; hier noch neue Bohrtiefe
X23 Y123 R7xxx= -100 L701; Hier wieder neue Bohrtiefe
X65 y25 L701

;usw

M30


MFG

Andy


--------------------
MfG
Andy

-------------------------------------------------------------------------------------------------------------------------


4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)

PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx

Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: