Funkce Příkaz MEAFRAME je rozšířením jazyka systému 840 pro podporu měřicích cyklů. Funkce MEAFREAME vypočítává frame na základě tří ideálních a vzájemně korespondujících změřených bodů. Když je obrobek nastaven do polohy pro obrábění, je jeho pozice vzhledem ke kartézskému souřadnému systému stroje vůči jeho ideální poloze zpravidla jednak posunutá, ale i pootočená. Pro přesné opracování nebo měření je zapotřebí uskutečnit buď nákladné fyzické nastavování polohy nebo změny pohybů ve výrobním programu. Frame může být definován nasnímáním trojice bodů v prostoru, jejichž ideální pozice je známa. Pro snímání polohy se používají buď dotykové nebo optické snímače, speciální na nosné destičce přesně fixované díry nebo měřicí kuličky. Syntaxe MEAFRAME IDEAL_POINT,MEAS_POINT,FIT_QUALITY) Význam MEAFRAME IDEAL_POINT MEAS_POINT Výpočet framu na základě 3 změřených bodů v prostoru. Rozměr pole typu REAL, které obsahuje tři souřadnice ideálních bodů. Rozměr pole typu REAL, které obsahuje tři souřadnice změřených bodů. FIT_QUALITY Proměnná typu REAL, -1: -2: -4: Kladná hodnota: poskytuje následující informace o výsledku: Ideální body leží příliš blízko jedné přímky: Frame nemohl být vypočítán. Výsledná proměnná typu FRAME obsahuje neutrální frame. Změřené body leží příliš blízko jedné přímky: Frame nemohl být vypočítán. Výsledná proměnná typu FRAME obsahuje neutrální frame. Výpočet rotační matice skončil z nějakého jiného důvodu neúspěchem. Součet deformací (vzdálenosti mezi body), které jsou zapotřebí pro převedení změřeného trojúhelníku na trojúhelník, který se blíží ideálnímu.
Poznámka Jakost měření Aby změřené souřadnice bylo možné pomocí kombinace otočení/posunutí přiřadit ideálním souřadnicím, musí se trojúhelník tvořený změřenými body co možno nejvíce shodovat s ideálním trojúhelníkem. To bude zajištěno kompenzačním algoritmem, který se snaží minimalizovat součet druhých mocnin odchylek, kterými se změřený trojúhelník převádí na ideální trojúhelník. Případně potřebná deformace poloh změřených bodů může posloužit jako ukazatel jakosti měření a z tohoto důvodu se ukládá jako doplňková proměnná funkce MEAFRAME. Poznámka Frame vytvořený pomocí funkce MEAFRAME může být pomocí funkce ADDFRAME transformován do jiného framu v řetězci framů. Viz příklad: Zřetězení framů "Zřetězení s příkazem ADDFRAME". Pokud budete potřebovat informace týkající se parametrů k příkazům ADDFRAME(FRAME, STRING), viz: /FB1/, Příručka Popis funkcí, Základní funkce; "Osy, souřadné systémy, framy" (K2), kapitola "Zřetězení framů". Příklad: DEF FRAME CORR_FRAME ; Výrobní program 1 Nastavení měřicích bodů Programování DEF REAL IDEAL_POINT[3,3] = SET(10.0,0.0,0.0, 0.0,10.0,0.0, 0.0,0.0,10.0) DEF REAL MEAS_POINT[3,3] = SET (10.1,0.2,-0.2, -0.2,10.2,0.1, -0.2,0.2,9.8) ; pro testování DEF REAL FIT_QUALITY = 0 DEF REAL ROT_FRAME_LIMIT = 5 DEF REAL FIT_QUALITY_LIMIT = 3 ; povolené pootočení polohy součásti max. 5 stupňů ; povolené posunutí mezi ideálním a změřeným trojúhelníkem max. 3 mm DEF REAL SHOW_MCS_POS1[3]
Programování DEF REAL SHOW_MCS_POS2[3] DEF REAL SHOW_MCS_POS3[3] N100 G01 G90 F5000 N110 X0 Y0 Z0 N200 CORR_FRAME=MEAFRAME (IDEAL_POINT,MEAS _POINT,FIT_QUALITY) N230 IF FIT_QUALITY < 0 SETAL(65000) N240 IF FIT_QUALITY > FIT_QUALITY_LIMIT SETAL(65010) N250 IF CORR_FRAME[X,RT] > ROT_FRAME_LIMIT ; Omezení 1. úhlu RPY SETAL(65020) N260 IF CORR_FRAME[Y,RT] > ROT_FRAME_LIMIT ; Omezení 2. úhlu RPY SETAL(65021)
N270 IF CORR_FRAME[Z,RT] > ROT_FRAME_LIMIT ; Omezení 3. úhlu RPY SETAL(65022) N300 $P_IFRAME=CORR_FRAME ; Aktivování nasnímaného framu s nastavitelným framem N400 X=IDEAL_POINT[0,0] Y=IDEAL_POINT[0,1] Z=IDEAL_POINT[0,2] N410 SHOW_MCS_POS1[0]=$AA_IM[X] N420 SHOW_MCS_POS1[1]=$AA_IM[Y] N430 SHOW_MCS_POS1[2]=$AA_IM[Z] N500 X=IDEAL_POINT[1,0] Y=IDEAL_POINT[1,1] Z=IDEAL_POINT[1,2] N510 SHOW_MCS_POS2[0]=$AA_IM[X] N520 SHOW_MCS_POS2[1]=$AA_IM[Y] N530 SHOW_MCS_POS2[2]=$AA_IM[Z] N600 X=IDEAL_POINT[2,0] Y=IDEAL_POINT[2,1] Z=IDEAL_POINT[2,2] N610 SHOW_MCS_POS3[0]=$AA_IM[X] N620 SHOW_MCS_POS3[1]=$AA_IM[Y] N630 SHOW_MCS_POS3[2]=$AA_IM[Z] ; Kontrola framu najetím geometrickými osami na ideální body N700 G500 ; Deaktivování nastavitelného framu nulovým framem (předem není dosazena žádná hodnota) No_FRAME ; Deaktivování nastavitelného framu nulovým framem (předem není dosazena žádná hodnota) M0 M30 Příklad zřetězení framů Zřetězení framů MEAFRAME za účelem korekce
Výsledkem funkce MEAFRAME( ) je korekční frame. Pokud je tento korekční grame zřetězen s nastavitelným framem $P_UIFR[1], který byl aktivní při vyvolání funkce např. G54, je takto získán nastavitelný frame pro další přepočítávání pro potřeby posuvů nebo obrábění. Zřetězení s příkazem ADDFRAME Pokud se má tento korekční frame uplatnit v řetězci framů na nějakém jiném místě nebo pokud jsou před nastavitelným framem aktivní ještě nějaké jiné framy, potom je možné pro začlenění tohoto framu do řetězce v základním framu kanálu nebo v systémovém framu použít funkci ADDFRAME( ). Ve framu přitom nesmí být aktivní: Zrcadlové převrácení s příkazem MIRROR Změna měřítka s příkazem SCALE Vstupními parametry pro požadovanou a skutečnou hodnotu jsou souřadnice obrobku. V základním systému řídícího systému je třeba zadávat tyto souřadnice vždy v metrických jednotkách nebo v palcích (G71/G70) a jako rozměry vztažené k rádiusu DIAMOF.