HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


UCCNC vezérlő program

A frissítések közzététele az 'UCCNC vezérlő program új verziói' témában található

 

Időrend:
Oldal 103 / 188 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   99  100  101  102  103  104  105  106  107   Következő ►  Utolsó ►|

  Fórum főoldal  |  A lap aljára

svejk | 32800    2017-08-20 21:22:23 [4264]

Okszi, kafa minden, végül is elég volt a megfelelő zárójelezés, nem kellett a .ToString().

Megcsináltam mindent, a kis Z mozgástartomány miatt a szerszámokat is kerülgetni kellett és a bekapcsoláskor is tudja melyik szerszám van bent.
Így most nem is kellett beleírni semmit az M99998 és M99999-be.
Egy kis ártatlannak tűnő makrot kellett csak pluszba írni.
Egyelőre G01-el mozgok, majd ha a gyakorlatban is megy akkor felgyorsítom.

Köszönöm a segítségeket !

Jöhet a szerszámbemérés!
(no az még szép falat lesz, mert azt sem tudom, hogy mi a helyes metódus, hogy is van az ipari gépeken)

Előzmény: dezsoe, 2017-08-20 19:27:41 [4262]


svejk | 32800    2017-08-20 19:33:33 [4263]

Köszi, nem bírtam volna kitalálni soha így ismeretlenül!

Előzmény: dezsoe, 2017-08-20 19:27:41 [4262]


dezsoe | 2919    2017-08-20 19:27:41 [4262]

Elvileg a C# alakítgatja a típusokat, de jobb, ha te mondod neki, hogy hogyan csinálja.

exec.Code("G00 G53 Z" + (Ztoolrelease + 10.0).ToString());

Előzmény: svejk, 2017-08-20 17:44:29 [4260]


svejk | 32800    2017-08-20 17:51:29 [4261]

Egyelőre marad a Home gomb...

A HomeAll gombhoz rendeltem a M20060-as makrót majd a makróban hívom meg a 113-es HomeAll buttonnumbert.
Így indulás után amint rákattintok rögtön be is írja az utoljára elmentett szerszámot, és felveszik a tengelyek a referenciát, mely egyébként is kell a szerszámváltás engedélyezéséhez.

Előzmény: svejk, 2017-08-20 15:24:32 [4259]


svejk | 32800    2017-08-20 17:44:29 [4260]

Hogy a pi..a kell szintaktikailag helyesen megírni az alábbi sort, hogy a Z szán "Ztoolrelease", plusz 10 értékre menjen?

exec.Code("G00 G53 Z"+ Ztoolrelease);

svejk | 32800    2017-08-20 15:24:32 [4259]

Oké, a kiolvasási és átírási művelet maga ennyi:

int LastSelectedTool = Convert.ToInt32(exec.Readkey("SvejkAdatai", "LastSelectedTool", "0"));
exec.Setcurrenttool(LastSelectedTool);

Ezt a két sort most egy hotkeyre és egy M20060-a makroba írva az UCCNC indulása után a billentyűt lenyomva szépen beírja az utoljára beváltott szerszám számát és innentől jól is számolja a dolgokat.

De most meg azt kell kitalálni hogy mikor és hogyan fusson le egyszer ez a makro.
A HomeAll gomb mégse jó, mert lehet valaki egyesével veszi fel a referenciákat.

Előzmény: svejk, 2017-08-20 14:09:24 [4258]


svejk | 32800    2017-08-20 14:09:24 [4258]

No még egyszer elindultam az elejéről és odáig jutottam, hogy ha az:
int Currenttool = exec.Getcurrenttool();

sort kicserélem az általad ajánlott sorokra akkor sajnos engedi a szerszámráváltást...


No de ez most nem is érdekes, mert én továbbra is kötöm az ebet a karóhoz, miszerint csak a TOOL mező értékét figyeli szerszámcserekor.
Ha lefuttatom pl. az
exec.Setcurrenttool(5);
parancsot, akkor be is írja az 5-ös szerszámot és ezentúl úgy is számol, hogy az van bent.

Tehát ha a szerszámcsere végén a *.pro fájlba elmentett szerszám számát az UCCNC első elindításakor visszaírnánk az exec.Setcurrentool paranccsal -pl a Home gomb megnyomásakor- akkor nem tévedne el sosem.
(a Home gombot úgy is meg kell nyomni)

Csak ugye azt nem tudom, hogy kell ezt a műveletet végrehajtani.

Előzmény: dezsoe, 2017-08-18 09:56:10 [4239]


svejk | 32800    2017-08-19 20:14:36 [4257]

eredeti M5 = eredeti M6

Előzmény: svejk, 2017-08-19 20:03:14 [4256]


svejk | 32800    2017-08-19 20:03:14 [4256]

Egyébként megcsináltam amit ajánlottál a #4239-ben és működik de valamit elronthattam, mert ha kétszer egymás után kiadom mondjuk az M6T6-ot akkor bizony rávált még egyszer a 6-osra.

Az eredeti M5 makronál nem engedte ezt.
Gondolom ez a sor felelős érte:

if(Newtool == Currenttool) // Same tool was selected, so do nothing, stop here...
return;

Benne van minkét makroban de mégis...


svejk | 32800    2017-08-19 19:58:42 [4255]

No nézzük ezt a másik, szerszámbeolvasási problémát az induláskor.
Lehet elbeszélünk egymás mellett.

Ha az M6 makro végén ott van a:

exec.Writekey("SvejkAdatai", "LastSelectedTool", exec.Getcurrenttool().ToString());

Akkor minden szerszámcsere alkalmával kiírja a file-ba, tehát az UCCN induláskor biztosan az a szerszám van a főorsóban.

"..az M99998-ból nem hajtja végre a Setcurrenttool-t, mivel a reset még aktív.."
No ez tényleg probléma....
Talán kellene egy másik makro ami a reset inaktiválásakor lefutna és az előzőleg fájlba elmentett szerszámértékét ekkor már be tudná írni a szerszám eredeti mezőjébe?

Engem valahogy zavar, hogy bekapcsoláskor nem az épp a főorsóban levő szerszám számát mutatja az a mező.

Előzmény: dezsoe, 2017-08-18 09:56:10 [4239]


svejk | 32800    2017-08-19 19:27:21 [4254]

No hát ez megint egyszerűbb mint képzeltem, köszi!

(igen, most már biztos megcsináljuk az említett hegesztő gépet)

Előzmény: dezsoe, 2017-08-19 18:31:36 [4253]


dezsoe | 2919    2017-08-19 18:31:36 [4253]

Ja, hogy ez egy konkrét célgép lenne, aminek átszabod a képernyőjét. Értem.

A mezők g-kódba átvitelét két módszerrel is elvégezheted. (Illetve a módszer ugyanaz, csak két indulási módszer jutott eszembe. Az egyik: a g-kód elején hívsz egy makrót. A másik: a start gombot bütykölöd meg, hogy előbb az említett makró fusson és csak utána nyomódjon meg a start gomb.)

Naszóvalakkor: ha az adatokat a képernyő mezőkből változókba akarod pakolni, akkor ennyi a dolgod (az emlegetett makróban, minden mezővel):

exec.ivars[<#nnn száma>] = AS3.Getfielddouble(<képernyő mező száma>);

És kész.

Előzmény: svejk, 2017-08-19 18:14:56 [4252]


svejk | 32800    2017-08-19 18:14:56 [4252]

Dehogynem, segítenek a tudatlan felhasználóknak.:)

Új alap képernyő majdnem biztos hogy kell, az talán menni fog.
újabb verziókra nem kell cserélgetni a mostani felállás azon részei amiket használok stabilnak tűnnek.

Úgy 10-15 változó lesz a munkadarab kódjában.

Csak egy példa kellene hogy is nézne ki, ha a képernyő adott mező értéke lenne egy váltózó a G-kódban.

Előzmény: dezsoe, 2017-08-19 17:51:38 [4251]


dezsoe | 2919    2017-08-19 17:51:38 [4251]

Az UCCNC fejlesztőinek semmi dolga azzal, amit írtál. Vagy nekiállsz képernyőt szerkeszteni (én biztos nem tenném), vagy egy okosan megírt makróval beolvasod a szükséges adatokat. Kb. mennyi paraméterről van szó?

(A Mach varázslói speciális állatfajták, de működésüket tekintve inkább a makrókhoz hasonlítanám őket, hiszen a lényeget makró kódok végzik, csak kicsit keresztezték a makrókat a képernyőkkel is.)

Előzmény: svejk, 2017-08-19 17:23:44 [4249]


dezsoe | 2919    2017-08-19 17:46:24 [4250]

A ToolX[]-ToolY[] tömbök a szerszámok tárolási koordinátáit rögzítik. Ennek a tömbnek akkorának kell lenni, hogy az összes - jelen esetben 13 - szerszám beleférjen.

Előzmény: svejk, 2017-08-19 17:03:31 [4248]

svejk | 32800    2017-08-19 17:23:44 [4249]

Közben ugrálnak a gondolataim, újabb ötletem támadt.

Ez a bizonyos gép mint írtam tanításos módszerrel lesz használva, de egyre valószínűbb hogy elég lenne a parametrikus programozás is.

Mivel az UCCNC progi és a fejlesztői nagyon ügyesek és rugalmasak, -dicséret bezárva - a következőt találtam ki:

Az megoldható lenne, hogy készítenék egy új fület ahol táblázatszerűen kitölthetőek lennének a parametrikus programozás változói, majd a parametrikus kód futtatásakor ebben a táblázatba levő adatokat olvasná be a program.

Nagy előnye, hogy átlátható lenne, illetve a felhasználó csak a változókhoz férne hozzá, maga a teljes G kódba nem tudna véletlenül sem belepiszkálni.
(gondolom a Mach3 varázslói is így működnek valahogy)


svejk | 32800    2017-08-19 17:03:31 [4248]

Okszi a T0 része működik kafán, sőt át is írtam 12 szerszámhelyesre.

(a "double[] ToolX = new double[13];
double[] ToolY = new double[13];" sorok mit is csinálnak?
mert vol ár riadalom meg vagy hat sornyi hibaüzenett amíg nem írtam át 13-ra )

Előzmény: dezsoe, 2017-08-18 09:56:10 [4239]


frob | 2249    2017-08-19 13:15:05 [4247]

Nekem van 3 helyen már mint biztonsági mentés, de az ismerősök közül egynek sincs ... tehát általános az hogy nincs... persze a jelen lévők mindig kivételek :D

Mach 3 hoz ragaszkodás kacifántossá teszi a dolgot, így már értem hogy miért lett így elkövetve a dolog...

Előzmény: dezsoe, 2017-08-19 12:55:01 [4245]


Tibcsi | 245    2017-08-19 13:10:59 [4246]

Ok, köszönöm a válaszokat.

Előzmény: dezsoe, 2017-08-19 12:49:38 [4244]


dezsoe | 2919    2017-08-19 12:55:01 [4245]

Nem így van. A hardvert önmagában tudod használni akár a Mach-hal is. Ha azzal használod, akkor csak az eszközt kell megvenned, a Mach plugin ingyen letölthető. Ha UCCNC-vel is akarod használni, akkor az bizony nincs ingyen.

Mivel a licenszt a gyáriszám alapján kapod, ha elszáll a vinyód, akkor kérsz másikat, biztos fogsz kapni. Na, de miért nincs az összes többi fontos file-lal együtt biztonsági mentésed?

Előzmény: frob, 2017-08-19 12:48:53 [4243]


dezsoe | 2919    2017-08-19 12:49:38 [4244]

Nem tudod. A kulcs az eszközhöz kapcsolódik, azt a kulcs birtokában akárhány gépen tudod használni, de minden eszköznek saját licensz kell.

Előzmény: Tibcsi, 2017-08-19 12:10:16 [4241]


frob | 2249    2017-08-19 12:48:53 [4243]

Egyébként mi értelme van a kulcsnak?
Az én szememben csak kitolás a vevővel...
Hogy miért? Mert ügye a program csak saját hardvereivel megy, tehát ha érzékelné hogy valós a hardver, akkor onnantól minden kerek...

De ha pl megrogyik a winyóm akkor vehetek még egy kulcsot, vagy ez hogy van?
Meg ez sztem többlet vacakolás gyártónak is..

Tulajdonképen az hardver egyben a hardver kulcs is lehetne simán..

Előzmény: exup, 2017-08-19 12:33:47 [4242]


exup | 636    2017-08-19 12:33:47 [4242]

Nem hiszem, hogy tudod.

Előzmény: Tibcsi, 2017-08-19 12:10:16 [4241]


Tibcsi | 245    2017-08-19 12:10:16 [4241]

Szeretnék vásárolni, egy UC400ETH mozgásvezérlőt, és az lenne a kérdésem, hogy tudom-e használni a meglévő kulccsal, vagy kell egy teljesen új. Jelenleg UC100-om van.


svejk | 32800    2017-08-19 10:37:48 [4240]

Köszi!
No még ezt is át kell olvasnom párszor, hogy felfogjam, illetve a gyakorlatban is át kell majd ültetni akkor tudok még majd kérdezni.

Előzmény: dezsoe, 2017-08-18 09:56:10 [4239]

dezsoe | 2919    2017-08-18 09:56:10 [4239]

Visszafelé válaszolva: a T0 az a nagykönyv szerint az, amit írsz, tehát üres befogó. A minta M6 nem kezeli az üres befogót:

if(Newtool <1 || Newtool >10) // Tool number is out of range, so we need to stop here...
return;

Aszongya, hogy ha T<1, akkor nem foglalkozik az egésszel. Tehát úgy kell módosítanod, hogy az előzőekben másolt sorban (Newtool <0 || Newtool >10) -re módosítod a feltételt, majd a

// Move to new tool position on XY plane

sor elé berakod, hogy

if (Newtool != 0)
{

és a file végére pedig

}
else
{
exec.Setcurrenttool(Newtool); //Set the current tool -> the new tool
MessageBox.Show("Tool change done.");
}

Ezzel azt éred el, hogy ha 0-ra vált, akkor nem megy el az új pozícióba és nem vesz fel semmit, csak beállítja a 0-s szerszámot és kiírja, hogy kész.

A másik problémára pedig annyi, hogy a példa csak felolvassa a mentett adatot, de nem csinál vele semmit. A mező átírása szép, de nem jó. A képernyőn ugyan azt fogod látni, amit beleírtál, de a szerszámcserélő mást fog gondolni, mert a rendszer belül tudja, hogy nem ez az aktuális szerszám. Hogy ne legyen olyan egyszerű, az M99998-ból nem hajtja végre a Setcurrenttool-t, mivel a reset még aktív. Ezt úgy tudod megoldani, hogy vagy használsz egy változót (#nnn) vagy kiraksz egy mezőt a képre és azon keresztül viszed át a felolvasott értéket. Az utóbbi nem fog ütközni semmilyen változókat használó programmal. Akkor a felolvasás (M99998-ban):

double LastSelectedTool = Convert.ToDouble(exec.Readkey("SvejkAdatai", "LastSelectedTool", "0.0"));
AS3.Additemtolistbeginning("Legutobbi szerszam: " + LastSelectedTool, 2);
AS3.Addfield("", "Arial", "left", 12, 0, 0, 1000, 120, "showfieldnb", 0, 96, 21000, 1); // egy eldugott mezo
AS3.Setfield(LastSelectedTool, 21000);

A felolvasást int-ről double-re változtattam, mert itt mindegy, a mező pedig úgyis double, majd elhelyeztem egy 21000 azonosítójú mezőt (nem szerkeszthetőt) a képernyőn kívül a (0,1000) pozícióba, tehát nem lesz útban, mert nem látszik. Beleírtam a felolvasott szerszámot, így az első M6-nál tudunk vele dolgozni.

Az M6 elején a

int Currenttool = exec.Getcurrenttool();

sor helyett ez kell:

int Currenttool = 0;
int Savedtool = AS3.Getfieldint(21000);
if (Savedtool == -1)
Currenttool = exec.Getcurrenttool();
else
{
Currenttool = Savedtool;
AS3.Setfield(-1.0, 21000);
}

Így az első M6 futtatáskor az elmentett szerszámot tekinti aktuálisnak, nem azt, amit a képernyőn jelez. Miután felhasználta, jelzi, hogy már volt egy csere, így innentől már a ténylegessel foglalkozik.

Előzmény: svejk, 2017-08-18 08:26:38 [4238]


svejk | 32800    2017-08-18 08:26:38 [4238]

Egy kicsit visszakanyarodhatnánk a szerszámcseréhez?

Az eredeti default M6-os makroval kísérletezek.

Ahogy ajánlottad az M6 makro végére beírtam a:

exec.Writekey("SvejkAdatai", "LastSelectedTool", exec.Getcurrenttool().ToString());

sort, így akár "áramszünetes" kikapcsoláskor is emlékezni fog az utolsó szerszámra.

Az M99998 makroba pedig a a másik ajánlott:

int LastSelectedTool = Convert.ToInt32(exec.Readkey("SvejkAdatai", "LastSelectedTool", "0"));
AS3.Additemtolistbeginning("Legutobbi szerszam: " + LastSelectedTool, 2);

sorokat.

Működik kafán egy szépséghibával, hogy ugyan az üzenet ablakba kiírja, hogy melyik volt az utolsó szerszám, de a Tool:x értékét nem írja át helyből.

Tehát kellene még egy sor az M99998 makroba ami beírja az előzőleg elmentett és kiolvasott szerszám számát induláskor a 897-es mezőbe.
Az M6-os makróból puskázva talán: exec.Setcurrenttool....de hogy tovább?



Egy másik szerszámváltós kérdés, a T0 szerszám pontosan mit is jelent?
Ha kiadom az M6T0-át akkor nem kellene kiraknia az épp aktuális szerszámot a tárba és üresen hagyni az orsót?


Sajnos nekem nincs ipari tapasztalatom sem ilyen ügyekben.

Előzmény: dezsoe, 2017-07-20 07:50:55 [4108]


dezsoe | 2919    2017-08-16 07:11:26 [4237]

Szerencsére az UCCNC nem épül Mach alapokra, csak - mivel ugyanaz a feladata - igen sok párhuzamot lehet felfedezni. A Mach-ban Visual Basic a makró nyelvezete, UCCNC-ben pedig C#, tehát már a nyelv miatt sem lehet átvinni. A mezők, a LEDek, a gombok, a belső funkciók mind máshogy vannak, úgyhogy még az is kevés, ha csak simán átfordítod a makrót egyik nyelvről a másikra. Az egyetlen megoldás, ha alaposan átnézed, felfogod, hogy mit csinál egy adott makró, majd a másik rendszerben megírod. Mondjuk, ehhez nem árt mindkét rendszert kellően ismerni.

Előzmény: Törölt felhasználó, 2017-08-16 00:49:44 [4235]


citis | 6    2017-08-16 06:23:01 [4236]

Nem tudom meg kell próbálni. Én nem vagyok programozó, talán dezsoe többet tud róla mondani.

Előzmény: Törölt felhasználó, 2017-08-16 00:49:44 [4235]


Törölt felhasználó    2017-08-16 00:49:44 [4235]

Mivel az UCNC Mach alapokra épül ez a szerszámváltó skript működhet mach alatt is ?

Előzmény: citis, 2017-08-15 23:04:09 [4233]


dezsoe | 2919    2017-08-16 00:07:33 [4234]

Szia! Látod, megy ez, csak kísérletezni kell vele!

Előzmény: citis, 2017-08-15 23:04:09 [4233]


citis | 6    2017-08-15 23:04:09 [4233]

Szia dezsoe. Működik a program ahogy leírtad, csak lejjebb kellett beilleszteni, közvetlen a cserélendő szerszám felvétele elé. A helyzet az, hogy próbáltam már így meghatározni, csak nem a port és a pin számát írtam be hanem valamire átneveztem őket úgy mint például a szerszámcsere levegőszelepe: int Chuckopenport = 1;
int Chuckopenpin = 16;
csak valamiért az a szöveg nem volt jó. Viszont most átírtam a tisztítószelepet erre: int Cleanport = 1;
int Cleanpin = 17; és így tökéletesen működik,legalább is szimulációban. Egyébként még változtattam a makrón két dolgot, egyik amit svejk kollégának írtál, hogy folyamatosan fusson a program szerszámcsere után, a másik hogy amikor felvette az új szerszámot akkor visszaállt oda, ahol az előző szerszám befejezte a munkát, majd utána állt rá a saját kezdőpontjára. Ezzel nincs is gond kis munkaterületű gépnél, de egy nagynál szerintem sok felesleges utat megy a gép. Ezért megjegyzésbe tettem azt a sort is amivel visszamenne az előző szerszám végpontjához, így csere után közvetlen megy a saját kezdőpontjához. Ehhez a megoldáshoz viszont nálam átkellet szerkeszteni a G kódban a szerszámcserék utáni első sor Z koordinátáit a makróban beállított biztonsági Z koordinátára, nehogy beleütközzön a szerszámtárba. Egyébként ez az új kód:

//Example linear toolchanger code

//Tool positions definition
int Chuckopenport = 1;
int Chuckopenpin = 16;
int Cleanport = 1;
int Cleanpin = 17;

double[] ToolX = new double[11];
double[] ToolY = new double[11];
ToolX[0] = 0; // Tool0 X position
ToolY[0] = 0; // Tool0 Y position
ToolX[1] = 40; // Tool1 X position
ToolY[1] = -10; // Tool1 Y position
ToolX[2] = 100; // Tool2 X position
ToolY[2] = -10; // Tool2 Y position
ToolX[3] = 150; // Tool3 X position
ToolY[3] = -10; // Tool3 Y position
ToolX[4] = 200; // Tool4 X position
ToolY[4] = -10; // Tool4 Y position
ToolX[5] = 250; // Tool5 X position
ToolY[5] = -10; // Tool5 Y position
ToolX[6] = 300; // Tool6 X position
ToolY[6] = -10; // Tool6 Y position
ToolX[7] = 350; // Tool7 X position
ToolY[7] = -10; // Tool7 Y position
ToolX[8] = 400; // Tool8 X position
ToolY[8] = -10; // Tool8 Y position
ToolX[9] = 450; // Tool9 X position
ToolY[9] = -10; // Tool9 Y position
ToolX[10] = 0; // Tool10 X position
ToolY[10] = -10; // Tool10 Y position

double SafeZ = 100;
double Ztoolrelease = 40;
double Ztoolpickup = 39;

int Newtool = exec.Getnewtool();
int Currenttool = exec.Getcurrenttool();

if(Newtool == -1) // If new tool number is -1 means a missing T code, so we need to stop here...
return;

if(Newtool <1 || Newtool >10) // Tool number is out of range, so we need to stop here...
return;

if(Newtool == Currenttool) // Same tool was selected, so do nothing, stop here...
return;

if(!exec.GetLED(56)||!exec.GetLED(57)||!exec.GetLED(58)) // If machine was not homed then it is unsafe to move in machine coordinates, stop here...
{
// MessageBox.Show("The machine was not yet homed, do homeing before executing a tool change!");
exec.Stop();
return;
}

while(exec.IsMoving()){}

// Get current XY machine coordinates to return to this position at the end of the macro

double Xoriginalpos = exec.GetXmachpos();
double Yoriginalpos = exec.GetYmachpos();

// Stop spindle if running and Move Z up

exec.Stopspin();
exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
while(exec.IsMoving()){}

if(Currenttool!=0) // No need to drop down tool if current tool number is zero
{
// Move to old tool position on XY plane

exec.Code("G00 G53 X" + ToolX[Currenttool] + " Y" + ToolY[Currenttool]);
while(exec.IsMoving()){}

// Drop current tool

exec.Code("G00 G53 Z"+ Ztoolrelease); // Move Z axis down to tool holder position
while(exec.IsMoving()){}
exec.Setoutpin(Chuckopenport, Chuckopenpin); // Open the chuck with pneumatic valve
exec.Wait(1000); // Wait one 1000msec
exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
while(exec.IsMoving()){}

}

// Move to new tool position on XY plane
exec.Code("G00 G53 X" + ToolX[Newtool] + " Y" + ToolY[Newtool]);
while(exec.IsMoving()){}
// Pick new tool

exec.Code("G00 G53 Z"+ Ztoolpickup); // Move Z axis down to tool holder position
while(exec.IsMoving()){}
exec.Setoutpin(Cleanport, Cleanpin);
exec.Wait(4000);
exec.Clroutpin(Cleanport, Cleanpin);
exec.Clroutpin(Chuckopenport, Chuckopenpin); // Close the chuck with pneumatic valve
exec.Wait(1000); // Wait one 1000msec
exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
while(exec.IsMoving()){}


// Move back to start point

//exec.Code("G00 G53 X" + Xoriginalpos + " Y" + Yoriginalpos);
while(exec.IsMoving()){}

// Measure new tool will go here....
exec.Code("G43 H"+Newtool); // Load new tool offset

exec.Wait(200);
while(exec.IsMoving()){}
if(!exec.Ismacrostopped()) // If tool change was not interrupted with a stop only then validate new tool number
{
exec.Setcurrenttool(Newtool); //Set the current tool -> the new tool
//MessageBox.Show("Tool change done.");
}
else
{
exec.StopWithDeccel();
MessageBox.Show("Tool change was interrupted by user!");
}

Előzmény: dezsoe, 2017-08-15 16:49:26 [4231]


exup | 636    2017-08-15 21:45:46 [4232]

Látod? Csak úgy köpi a megoldást

Előzmény: citis, 2017-08-15 16:07:59 [4230]


dezsoe | 2919    2017-08-15 16:49:26 [4231]

Semmi extra nem kell hozzá, csak ennyi:

exec.Setoutpin(portszám, lábszám);
exec.Wait(várakozás_ms_ban);
exec.Clroutpin(portszám, lábszám);

Az első bekapcsolja az adott kimenetet, a második vár, amennyit kell, a harmadik kikapcsolja. Ha a szeleped 0-ra aktív, akkor az első és harmadik sort megcseréled. Ha jól értettem, hogy akkor kell fújni, amikor a régi szerszám már nincs bent, az új pedig még nincs, akkor szerintem ide kell a három sor:

if(Currenttool!=0) // No need to drop down tool if current tool number is zero
{
// Move to old tool position on XY plane

exec.Code("G00 G53 X" + ToolX[Currenttool] + " Y" + ToolY[Currenttool]);
while(exec.IsMoving()){}

// Drop current tool

exec.Code("G00 G53 Z"+ Ztoolrelease); // Move Z axis down to tool holder position
while(exec.IsMoving()){}
exec.Setoutpin(Chuckopenport, Chuckopenpin); // Open the chuck with pneumatic valve
exec.Wait(1000); // Wait one 1000msec
exec.Code("G00 G53 Z"+ SafeZ); // Move Z up
while(exec.IsMoving()){}
// --- ide kell, szerintem ---
}

Előzmény: citis, 2017-08-15 16:07:59 [4230]


citis | 6    2017-08-15 16:07:59 [4230]

Az M6 makróval kapcsolatban volna egy kérdésem. Megoldható-e hogy szerszámcserénél mielőtt felveszi a következő szerszámot egy tisztító fúvatást csináljon? Azért volna lényeges, mert szeretnék egy szerszámcserélős adaptert amit a kínai 65mm-es marókra rá lehet szerelni. Ezen az adapteren kettő pneumatikus csatlakozó van, egyik a tisztításhoz, másik a cseréhez. Ahogy látom a makróban a szerszámcseréhez megvan a pneumatikai programrész, de hogy lehetne egy ilyen pneumatikus
tisztítási parancsot beiktatni mielőtt felveszi a az új szerszámot? Gondolom kellene még egy kimeneti pint beállítani valamelyik porton ami vezérelné a tisztítószelepet de sajnos nem vagyok programozó így nem tudom mit kellene beírni a makróba. Előre is köszi.

dezsoe | 2919    2017-08-14 21:09:15 [4229]

Az SP3-ból ítélve XP van a gépen. (Anyám borogass... Nem akarok vitát indítani, csak megjegyzem, mint privát véleményt, hogy a múzeumban van a helye, nem produktív gépen.) Majd próbáld ki azzal a .Net Framework-kel, amit le lehet hozzá tölteni, mert azzal működnie kéne. (Az SP3 egyébként nem tartalmaz .Net Framework-ot, azt egy másik lépésben raktad fel.)

Kétségtelen tény, hogy mindent elkövettem az UCCNC-vel, hogy előcsaljam a hibajelenséget, de XP-t azért nem telepítettem. Lehet, hogy kéne egy XP-s teszt gépet is csinálnom?

Előzmény: Zozi, 2017-08-14 20:59:14 [4228]


Zozi | 366    2017-08-14 20:59:14 [4228]

Sajnos a géptől most messze vagyok, ha odajutok lemásolom.
Újratelepítésen is gondolkoztam, de majd csak akkor ha elkészült a mostani munkadarab (egy kis cnc maró alapja)

Lehetséges, hogy a dotnet miatt jön elő ilyen hiba? Az sp3 ban alapól magasabb verzióval volt, és telepítésnél is simán felment, nem az van mellette amit a telepítő mellett lehetne letölteni.

Előzmény: dezsoe, 2017-08-14 11:38:15 [4226]


exup | 636    2017-08-14 11:59:30 [4227]

A bit vadász beindul

Előzmény: dezsoe, 2017-08-14 11:38:15 [4226]


dezsoe | 2919    2017-08-14 11:38:15 [4226]

Képtelen vagyok előidézni a hibát. (Egyiket sem.) Nem szokásom, de Windows hibára kell gyanakodjak. Még azt lehet megpróbálni, hogy a komplett profiles mappát küldd el, hogy megnézzem, hátha valamit nem veszek észre, vagy nem úgy állítom be.

Előzmény: Zozi, 2017-08-14 10:40:26 [4225]


Zozi | 366    2017-08-14 10:40:26 [4225]

Felugrik egy error ablak, utána már csak az asztal.

Előzmény: dezsoe, 2017-08-14 00:04:41 [4224]


dezsoe | 2919    2017-08-14 00:04:41 [4224]

Hümm. Minden hibajelzés nélkül simán kilép Goto Zero-ra, vagy valami legalább történik előtte?

Előzmény: Zozi, 2017-08-13 23:57:13 [4223]


Zozi | 366    2017-08-13 23:57:13 [4223]

Friss telepítés, UCNC-n kívül csak egy adobe reader van fent a gépen más semmi. Tegnap reggel lett telepítve, azóta kb 7 órát ment hiba nélkül. Csak akkor volt probléma ha kimentem az endstoppra vagy mikor nullára akartam mozgatni.

Előzmény: dezsoe, 2017-08-13 23:46:10 [4222]


dezsoe | 2919    2017-08-13 23:46:10 [4222]

Akkor ott valami brutális nagy gáz van. Olyan nincs, hogy egy makrótól kilépjen a program. (A Goto Zero az M204.txt makrót hívja meg.) No, persze, hacsak nem módosítottad így a makrót. Van bármi, amit a frissen telepítetthez képest megváltoztattál? (A gép beállításokon kívül.)

Előzmény: Zozi, 2017-08-13 23:36:59 [4221]


Zozi | 366    2017-08-13 23:36:59 [4221]

Az usb verzió. Illetve még egy eltérést vettem észre a korábbiakhoz, a go to zero gombra bezáródik a program.
Lehet nem találja mit kellene meghívni.

Előzmény: dezsoe, 2017-08-13 23:30:34 [4220]


dezsoe | 2919    2017-08-13 23:30:34 [4220]

OK, mostmár tiszta, hogy hány szenzorod van és hol. Ma már nem, de reggel megnézem ilyen felállásban is. Melyik UC300-asod van? (USB/ETH)

Előzmény: Zozi, 2017-08-13 23:15:20 [4219]

Zozi | 366    2017-08-13 23:15:20 [4219]

Tehát felveszem a referenciát, eddig jó, tökéletesen visszatalál az előző napi félbehagyott munkához. Mindhárom tengelyen csinálja, a munkadarabom most épp csak befér a mozgástartományba és ha a kurzorral mozgok a shiftet lenyomva túlfut a szoftveres határon. A határom -1 mm lenne és a referenciaszenzortól kb -7 mm re található a végállás szenzor.-7,26 mm en áll meg és mivel aktív lesz a végállás bajosabb lemozogni róla.

  

Előzmény: dezsoe, 2017-08-13 00:23:45 [4217]


svejk | 32800    2017-08-13 21:19:08 [4218]

Csak egy kósza ötlet:

Amíg tanul az ember, sokszor kell olvasgatni a manualt.

Látom telepítéskor szisztematikusan felkerülnek a dokumentációk is.

A Help fünél esetleg egy alfül jól jönne, hogy rögtön nyissa meg a PDF-et.
Nem kellene keresgélni...

Gondolom azt is lehetne automatizálni, hogy az angol vagy a magyar jöjjön elő, mert a telepítéskor rákérdez a nyelvre.


dezsoe | 2919    2017-08-13 00:23:45 [4217]

Próbáltam a 2037-es verzióval előidézni, amit írsz, de nem ment. Lehet, hogy valamit nem úgy állítottam be. Ezt egy kicsit részletezd: "Pld referencia felvesz "0" -> soft limit -1mm -> maj a -7mm -es végállás kapcsolóig simán kifut", vagy még jobb, ha elküldöd a profil file-t, vagy nyomsz egy képernyőképet a hibás tengely beállításairól.

Előzmény: Zozi, 2017-08-12 22:37:22 [4216]


Zozi | 366    2017-08-12 22:37:22 [4216]

Ma gépcsere miatt újra lett telepítve az UCCNC. Eddig 1.2029 volt, amivel egész jól éreztem magam. Most az 1.2037 nél valamit nem sikerült beállítani, mert simán túlfut kézi mozgatásnál a szoftveres végállásokon, és a végállás kapcsolókon ragad. Nem profilt másoltam, hanem végiglépkedve a képernyőkön átmásoltam a korábbi beállításokat. Ezt leszámítva minden úgy megy mint korábban. Mit rontok el?

Pld referencia felvesz "0" -> soft limit -1mm -> maj a -7mm -es végállás kapcsolóig simán kifut a kurzor gombokra ami eddig nem így volt.


exup | 636    2017-08-12 13:20:44 [4215]

Már látom...nem mindegy mibe exportálom :D

Előzmény: exup, 2017-08-12 12:36:53 [4214]


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 103 / 188 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   99  100  101  102  103  104  105  106  107   Következő ►  Utolsó ►|


 ◊