zaokrąglenie wartości parametru
-
Autor tematu - Specjalista poziom 1 (min. 100)
- Posty w temacie: 5
- Posty: 138
- Rejestracja: 07 gru 2006, 17:14
- Lokalizacja: sandefjord norge
zaokrąglenie wartości parametru
witam
czy da się zaokrąglić wartość np. do trzeciego miejsca po przecinku ??? wykorzystując do tego np. ROUND, FIX, FUP... ma ktoś jakiś pomysł...?
czy da się zaokrąglić wartość np. do trzeciego miejsca po przecinku ??? wykorzystując do tego np. ROUND, FIX, FUP... ma ktoś jakiś pomysł...?
ludzi nie ma, jedz drzem
Tagi:
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 4
- Posty: 1743
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Zastanawiam się po co chcesz zaokrąglać - parametry są "wewnętrznie" przechowywane w postaci zmiennoprzecinkowej która z zasady nie jest w stanie dokładnie wyrazić wszystkich wartości - po zaokrągleniu może się okazać że zamiast 0.123 dostaniesz coś w rodzaju 0.12300001 albo 0.122999999. Mogę się jedynie domyślać że wkurza cię ekran sterownika wyświetlający długie liczbyzflaczały pisze:ke?grg12 pisze: Tylko po co?

Co do składni - wygląda ok ale gwarancji nie daję
-
Autor tematu - Specjalista poziom 1 (min. 100)
- Posty w temacie: 5
- Posty: 138
- Rejestracja: 07 gru 2006, 17:14
- Lokalizacja: sandefjord norge
Chodzi mi raczej o uzyskanie 0,123 zamiast 0,123456789, a cel prawie odgadłeś. Makropolecenie przeliczające różnicę między odczytem z sondy a wymiarem zadanym po kilkudziesięciu operacjach wywala mi jakiś kwiatek w stylu zamiast Z=0 to w tabeli offsetów zapisuje Z=0,001...??? o co chodzi ???? co ciekawe błąd ten występuje TYLKO przy ustawieniu głowicy na kątach innych jak +-90 i 0 stopnia i TYLKO przy zorientowaniu narzędzia na M436, nic takiego nie mam miejsca na dowolnych kątach przy M437!! o co biega???
Matematycznie błędu nie widzę, jedyne co mi przyszło do głowy to albo #2025 w przypadku Patrycji jest to różnica między M436 i 437 (równa 0,016) ale to różnica jest przeliczana w offsecie geometrycznym... więc raczej nie tędy droga.
Druga opcja: błąd wynika z błędu zapisu maszyny x10-9 w przypadku przeliczania sin/cos, tak więc offset powinien wynosić x=0,003 z=0. po przeliczeniu wynosi x=-2,x10-12 z=1,x10-12 (maszyna oczywiście pokazuje 0,003... bo tak jest ustawiony ekran sterownika
) i po kolejnej zamianie na współrzędne kątowe np. dla B=-45. sin/cos daje nam x=0,00300568 i z=0,000000214, z powrotem to przelicza, wysyła do tabeli i błąd się multiplikuje dając w efekcie x=0,003 z=0,001 (w tabeli), to tak w skrócie, może jakieś sugestie bo mi już pomału ręce opadają na samą myśl o tym
Matematycznie błędu nie widzę, jedyne co mi przyszło do głowy to albo #2025 w przypadku Patrycji jest to różnica między M436 i 437 (równa 0,016) ale to różnica jest przeliczana w offsecie geometrycznym... więc raczej nie tędy droga.
Druga opcja: błąd wynika z błędu zapisu maszyny x10-9 w przypadku przeliczania sin/cos, tak więc offset powinien wynosić x=0,003 z=0. po przeliczeniu wynosi x=-2,x10-12 z=1,x10-12 (maszyna oczywiście pokazuje 0,003... bo tak jest ustawiony ekran sterownika

ludzi nie ma, jedz drzem
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 4
- Posty: 1743
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Niestety niewiele zrozumiałem (nie znam sterownika Fanuc) ale charakter błędu sugeruje że twoje makro przy każdym kroku akumuluje wartości offsetów (żeby wyznaczyć aktualną pozycję?). Jeśli tak - błąd będzie z każdym krokiem rósł. Zaokrąglanie offsetu jest niebezpieczne - przy pewnych wartościach parametrów będzie działać, przy innych błąd będzie narastał jeszcze szybciej niż teraz (coś jak aktualna wersja - przy niektórych kątach działa, przy innych nie).
-
Autor tematu - Specjalista poziom 1 (min. 100)
- Posty w temacie: 5
- Posty: 138
- Rejestracja: 07 gru 2006, 17:14
- Lokalizacja: sandefjord norge
nie bardzo rozumie co masz na myśli, tak czy siak makro pobiera aktualny wear offset dodaje lub odejmuje wartość przesunięcia dla danego kąta B i wysyła do tabeli offsetów, po czym kasuje wszystkie tymczasowe wartość, banalne w konstrukcji i niezawodne w działaniu z małym wyjątkiem...grg12 pisze:charakter błędu sugeruje że twoje makro przy każdym kroku akumuluje wartości offsetów
ludzi nie ma, jedz drzem
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 4
- Posty: 1743
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Czyli nie zrozumiałem problemu. Tego typu błędy są charakterystyczne dla programów które wiele małych wartości sumują jakąś inną wartość (np. sumują tysiąc malutkich offsetów żeby wyliczyć coś tam) pomyślałem więc że twoje makro coś takiego robi - w każdym kroku mierzy offset, przemnaża go przez sinus/cosinus i dodaje do "sumy offsetów"