CNC, CAD, CAM, PLC tanfolyam

Fórum - NCT - makró

Segítene e valaki elmagyarázni ezt a programot? Ugyanis a makrókat nem igazán értem sajnos.
%O0011 (MAKRÓ G17RE)
#100=#1 (OSZTÓKÖR ÁTMÉRŐ)
#101=#12001 (T1 SZRSZÁM SUGÁR! GEOMETRIA)
#102=#13001 (T1 SZRSZÁM SUGÁR! KOPÁS)
#103=[#101+#102]*2 (T1 VALÓDI ÁTMÉRŐ GEOMETRIA)
#104=#100/2 (OSZTÓKÖR SUGÁR)
#105=[360/#2]/2 (SZÖGÉRTÉK DERÉKSZÖGŰ HÁROMSZÖGBEN)
#106=[2*[SIN[#105]]*#104] (2 FURAT KÖZTI TÁVOLSÁG)

IF[#18EQ#0]#18=2 #3006=(BIZTONSÁGI TÁVOLSÁG 2MM)
IF[#26EQ#0] #3000=(NINCS MÉLYSÉG)
IF[#24EQ#0]#24=0 (HA NINCS "X" AKKOR ELTOLÁS 0)
IF[#25EQ#0]#25=0 (HA NINCS "Y" AKKOR ELTOLÁS 0)
IF[#1EQ#0]#3000=(NINCS OSZTÓKÖR ÁTMÉRŐ)
IF[#2EQ#0]#3000=(NINCS FURATSZÁM)
IF[#101EQ0]#3000=(NINCS D GEOMETRIA)
IF[#103GT#1]#3000=(AZ OSZTÓKÖR TÚL KICSI)
IF[[#106+1]LT#103]#3000=(TÚL SOK FURAT AZ OSZTÓKÖRÖN)


G52 X#24 Y#25
G16
G81 X[#1/2] Y0 R#18 Z#26
YI[360/#2] L[#2-1]
G80
G15
G52 X0 Y0

(SZERSZÁMCSERE)
G0 X100 Y0 Z2
(20-AS KÖRZSEB)
G65 P9999 R10 Z10 Q2 K2 D1 E50

M99
%

Hozzászólások

avatar
Drew
2016-05-28 15:46
Üdv!

Nem tudom milyen mértékben érted vagy sem a makrókat (látom, hogy a sorok végén ki van kommentelve mi mit csinál/mire utal), ezért az elején kezdem.

Minden makróváltozó egy olyan értéket takar, ami változtatható (legtöbb esetben). Amennyiben programoztál más nyelveken a változók fogalma ismerős lehet, itt annyi a különbség, hogy nem te nevezed el, illetve számokat tárolhatsz bennük.

A változók lehetnek lokális-, globális- vagy rendszerváltozók. Ezek közül a lokális és globális változókat használják makrókban a tényleges feladat elvégzésére, rendszerváltozókat nullpontok lekérésére/átírására stb. használják.

Mikor meghívsz egy makrót a programból, a program szintet ugrik és az előző programszintben megadott értékeket viszi magával (pl.: G65 P9999 D1 miatt a következő szinten a #7-ben eltárolt érték 1 lesz).

Ezek alapján az alábbi programban a #100=#1 azt jelenti, hogy amit a főprogramban megadtál A címen, az lesz az osztókör átmérője, de ezt az értéket valami okból kifolyólag átmásolod #100-ba.
A #101, #102-be a rendszerváltozókból olvastatod ki a szerszám sugarát, illetve a jelenleg megadott kopást. Ezután a #103-ba egy egyszerű összeadással kiszámoltatod a géppel, hogy így mekkora a szerszám korrigált SUGARA, majd ezt az értéket 2-vel szorozva megkapod a korrigált átmérőt.

A #104-ben osztókör sugarat számoltatsz, a #105-ben a bekért furatok száma alapján (főprogramban B címen programozva) kiszámoltatod, hogy hány fok különbség van két egymás melletti furat között (a #105=[360/#2]/2-nél a végén a /2-t nem tudom miért kell oda), majd ezeket az adatokat felhasználva a #106-ban kiszámoltatod a két furat közötti távolságot. Kicsit mintha túl lenne bonyolítva, de lehet csak az én tudásom kopott meg.


Az IF[FELTÉTEL] egy tesztelést takar, a #0 pedig egy nem írható, mindig üres változó! A #3000-es hibákat csak resetelni lehet, míg a #3006-os hibákat tovább lehet futtatni, amennyiben a gépkezelő úgy gondolja, hogy megfelelő eredményt kap.

HA a főprogramban R értéket üresen hagytad, akkor az R értékét vegye 2 mm-nek, illetve álljon meg a program futása és tudatosítsa ezt a tényt a gépkezelővel is.
HA a főprogramban Z értéket üresen hagytad, álljon meg a program futása (csak resetelni lehet) és írja ki a gép, hogy NINCS MÉLYSÉG
HA a főprogramban X, illetve Y értéket üresen hagytad, akkor a makró ezeket az értékeket 0-ra fogja beállítani, azonban NEM FIGYELMEZTETI A GÉPKEZELŐT! Mivel a (...) előtt nincs #3000 vagy #3006, így a program kommentként fogja kezelni a megadott szöveget, másszóval figyelmen kívül hagyja.
HA a főprogramban A értéket üresen hagytad, akkor a NINCS OSZTÓKÖR ÁTMÉRŐ hibával leáll a program futása.
HA a főprogramban B értéket üresen hagytad, akkor NINCS FURATSZÁM hibával áll le a program.
HA az éppen használt szerszám átmérője nincs megadva (azaz a #12001 ÜRES!!!), akkor NINCS D GEOMETRIA hibával áll le a program, azonban ahogy írok felötlött bennem a gondolat. Az egész makró fúrásról szól, miért van szükség a szerszám átmérőjére? Fúrásnál csak belesüllyed az anyagba a szerszám, ott inkább a hossz az ami lényeges.
HA a szerszám korrigált átmérője nagyobb mint az osztókör átmérője, akkor AZ OSZTÓKÖR TÚL KICSI hibával áll le a program. Itt mégis van értelme az átmérőnek, de nekem az egész korrigált átmérő figyelembe vétele és a szerszámhossz figyelmen kívül hagyása gyanús.
HA a két furat között nincs legalább akkora távolság mint a szerszám korrigált átmérője, akkor a TÚL SOK FURAT AZ OSZTÓKÖRÖN hibával áll le a program.

Ezután pedig egy egyszerű nullpont áthelyezés, majd a körív mentén a furatok elkészítése következik. Miután a nullpont visszakerült az X0 Y0 koordinátákra és megtörtént a szerszámcsere egy üregmaróval zseb készül az X100 Y0 pont körül.

M99-el pedig visszaadod az irányítást a főprogramnak.

Remélem sikerült segítenem!
Kellemes hétvégét!
Üdvözlettel:
Drew

U.I.: Áthelyeztem a témát az NCT kategóriába, mivel úgy vélem ennek ott a helye.
avatar
Szili007
2016-09-07 19:15
Köszönöm

Hozzászólás írása

Hozzászólás írásához be kell jelentkezned!
Duális
Ügyfélfogadási idő

Személyes ügyfélfogadás, csak telefonos egyeztetést követően!

Kapcsolat

Név: NCT Akadémia Nonprofit Kft.
Cím: 1148 Budapest, Fogarasi út 7. földszint
Elérhetőség az alábbi telefonszámon: +36 30 242 53 45

Kulcsszavak
Facebook oldalunk