585.975 aktive Mitglieder*
5.082 Besucher online*
Kostenfrei registrieren
Einloggen Registrieren

Makro Rundungsproblem bei der Zuweisung

Beitrag 20.03.2016, 13:42 Uhr
dr_luk
dr_luk
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 07.02.2014
Beiträge: 5

Folgendes Problem ist bei der einfachen Wertzuweisung aufgetreten:

#100 = 400.22

Im Variablenspeicher der Steurung ist der Wert für #100 aber 400.220006, d.h. die 6. Stelle hinter dem Komma kann von der Null abweichen.
Meistens ist die 6. Stelle auch Null, aber nicht immer. Bei den Booleschen Operationen, z.B. kleiner als oder gleich, gibt es dann Probleme.
Bei Fanuc kenne ich dieses Problem nicht. Hat jemand dafür eine Lösung?
Im Handbuch habe ich sogar einen Hinweis gefunden, allerdings soll das Problem nur bei ganzen Zahlen vorkommen. Als Lösung kann man die ROUND-Funktion anwenden. In meinem Fall ist es jedoch eine Zahl mit Nachkommastellen.
TOP    
Beitrag 20.03.2016, 13:51 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725

hi

das kannst du über die Funktion lösen, die den ganzzahligen Anteil ausgibt.
Bei Siemens heist die ABS() sowas sollte deine Maschine / Steuerung auch beherrschen wink.gif

#100 = 400.220076

nun willst du also das Ergebnis aber auf 2 Stellen nach dem KOMMA / Punkt haben wink.gif

#101 = (ABS(#100 * 100))/100

Heist aus 400.220076 wird 40022.0076 , der Nachkommaanteil wird abgeschnitten = 40022, und dann wieder die Kommastelle verschoben = 400.22

Mathematik kann so einfach sein wink.gif

schönes WE

Andy




QUOTE (dr_luk @ 20.03.2016, 14:42 Uhr) *
Folgendes Problem ist bei der einfachen Wertzuweisung aufgetreten:

#100 = 400.22

Im Variablenspeicher der Steurung ist der Wert für #100 aber 400.220006, d.h. die 6. Stelle hinter dem Komma kann von der Null abweichen.
Meistens ist die 6. Stelle auch Null, aber nicht immer. Bei den Booleschen Operationen, z.B. kleiner als oder gleich, gibt es dann Probleme.
Bei Fanuc kenne ich dieses Problem nicht. Hat jemand dafür eine Lösung?
Im Handbuch habe ich sogar einen Hinweis gefunden, allerdings soll das Problem nur bei ganzen Zahlen vorkommen. Als Lösung kann man die ROUND-Funktion anwenden. In meinem Fall ist es jedoch eine Zahl mit Nachkommastellen.


--------------------
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
TOP    
Beitrag 20.03.2016, 18:04 Uhr
dr_luk
dr_luk
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 07.02.2014
Beiträge: 5

Danke, super schnelle Lösung! thumbs-up.gif

Die ABS-Funktion gibt es bei HAAS natürlich auch.

Früher hätte ich das auch gekonnt. Wenn das mit Mathe nur nicht so lange her wäre. smile.gif
TOP    
Beitrag 21.03.2016, 20:31 Uhr
dr_luk
dr_luk
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 07.02.2014
Beiträge: 5

Leider zu früh gefreut.

Die ABS-Funktion liefert bei HASS den Absolutwert einer Zahl, d.h. negative Zahlen werden positiv.
Es gibt jedoch die FIX-Funktion. Damit kann man die Nachkommastellen abschneiden.
Und trotzdem klappt es nicht.

Mit #101=FIX[#101*100]/100 würde der Tipp theoretisch funktionieren.

Wenn ich dies in einzelne Schritte aufteile, passiert folgendes:

#101=400.22________Anzeige Variablenspeicher: 400.220006
#101=#101*100______Anzeige Variablenspeicher: 40022.000600
#101=FIX[#101]______Anzeige Variablenspeicher: 40022.000000
#101=#101/100______Anzeige Variablenspeicher: 400.210095 !!!!

Im Handbuch steht, dass die Steuerung die Dezimalzahlen als Binärwerte speichert. Rechenproblem bei HAAS?
Mathe ist doch nicht so einfach coangry.gif
TOP    
Beitrag 21.03.2016, 20:47 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725

hi

wie jetzt...

Du machst
#100 = 400.2200568 ( oder wie auch immer )
#101 = #100 * 100 ; müsste 40022,00568 werden
#102 = FIX[#101] ; sollte 40022 werden
#103 = #102 * 100 ; sollte jetzt 400,220000000000000000000000000 werden

wenn nicht

Solltest du mal über die Maschine bzw eher die Steuerung nachdenken.
Oder den Hersteller / Lieferanten informieren, dass der "HAAS" da ein kleines "Malör" unterläuft.. Welche für dich nachhalte Konsequenzen sind, die die Produktion auf dieser Maschine in Frage stellt !

Weil wenn ab #103 mehr Nachkommastellen auftauchen als mathematisch korrekt, ist die Steuerung "SchXXe"

MFG

Andy

QUOTE (dr_luk @ 21.03.2016, 21:31 Uhr) *
Leider zu früh gefreut.

Die ABS-Funktion liefert bei HASS den Absolutwert einer Zahl, d.h. negative Zahlen werden positiv.
Es gibt jedoch die FIX-Funktion. Damit kann man die Nachkommastellen abschneiden.
Und trotzdem klappt es nicht.

Mit #101=FIX[#101*100]/100 würde der Tipp theoretisch funktionieren.

Wenn ich dies in einzelne Schritte aufteile, passiert folgendes:

#101=400.22________Anzeige Variablenspeicher: 400.220006
#101=#101*100______Anzeige Variablenspeicher: 40022.000600
#101=FIX[#101]______Anzeige Variablenspeicher: 40022.000000
#101=#101/100______Anzeige Variablenspeicher: 400.210095 !!!!

Im Handbuch steht, dass die Steuerung die Dezimalzahlen als Binärwerte speichert. Rechenproblem bei HAAS?
Mathe ist doch nicht so einfach coangry.gif


--------------------
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
TOP    
Beitrag 21.03.2016, 21:15 Uhr
Guest_guest_*
Themenstarter

Gast



Vielleicht ist das Problem auch nur ein Anzeigeproblem.
Laß doch mal einige Rechenoperationen mit dem Parameter durchlaufen, die den Fehler eingrenzen können.
Die Multiplikation mit 1'000 oder 1'000'000 sollte da schon deutlichen Aufschluß geben.
Wenn die Steuerung an der 6. Nachkommastelle tatsächlich eine "Zufallszahl" einfügt, ist wohl der Steuerungshersteller gefragt um Abhilfe zu schaffen.
TOP    
Beitrag 21.03.2016, 21:26 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725

Hi
wink.gif

#110 = 400.2200568
#111= #110 *100000000000000000000
#112 = FIX[#111]
#113 = #113 / ( Dasselbe da oben )
#114 = #111 - #113

jetzt sollten sich diese mehr als Nachkomma-Stellen auflösen ??

MFG

Andy
QUOTE (guest @ 21.03.2016, 22:15 Uhr) *
Vielleicht ist das Problem auch nur ein Anzeigeproblem.
Laß doch mal einige Rechenoperationen mit dem Parameter durchlaufen, die den Fehler eingrenzen können.
Die Multiplikation mit 1'000 oder 1'000'000 sollte da schon deutlichen Aufschluß geben.
Wenn die Steuerung an der 6. Nachkommastelle tatsächlich eine "Zufallszahl" einfügt, ist wohl der Steuerungshersteller gefragt um Abhilfe zu schaffen.


--------------------
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
TOP    
Beitrag 21.03.2016, 21:33 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725

Geht eigentlich noch besser

#120 = 1000000
#121 = #120 / 1000
#122 = #121 / 1000

und nun nehmen wir

#130 = #110 / #121
#131 = #110 / #122

rest sind mehr als nachkomma stellen


--------------------
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
TOP    



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