Hírek:

Fontos tudnivalók a migrációval kapcsolatban, kérlek olvasd el:

A régi fórumról áthozott hozzászólásoknál a felhasználó neve adatvédelmi megfontolásokból véletlenszerűen generált értékekre lett  lecserélve. Ez akkor tud a valódi értékre visszaállni, ha az adott felhasználó a régi fórumon nyilatkozik, hogy beleegyezik az adatainak az új fórumra továbbításához, majd ezután itt a régi felhasználónevével és email címével regisztrál.
8~20 óra között, 1~30 percen belül megtörténik a jóváhagyás, 30 percenként ellenőrizd email fiókodat (SPAM-ot is) mindenképp kapsz mail-t, a sikeres regisztrácioról, vagy a hibáról és, hogy mi a teendőd.
Nézd meg  "A régi fórumról, az új fórumra költözés útmutatót."
A régi fórumon használt email címmel de más felhasználói azonosítóval érkező regisztrációs kérelmek törlésre kerűlnek.

Main Menu

UCCNC vezérlő program

Indította gaben, 2024 április 09, 16:54

Előző téma - Következő téma

ium8w94xp

Csak egy kérdés....
A programban a nézet ablakban nem lehetne megcsinálni, hogy a görgővel, ha nagyítok vagy kicsinyítek, akkor azt az egér helyére központosítaná? Mert így teljesen mindegy hol helyezkedik el az egér és a legtöbb programban számít. Nem kéne tili-tolizni.

Thowra

Üdv!
Egy összetett probléma megoldásához több olyan makrót kellett készítenem ami külső programokat indítgat (eseménykijelző parancsok küldése soros porton). Az egyes programok nagyon hamar (kevesebb mint 1 másodperc) lefutnak. Több olyan makró van ami feltételtől függően vagy az egyik, vagy a másik programot indítja. A programokat így indítom:

System.Diagnostics.Process proc;  
proc =  System.Diagnostics.Process.Start("C:\\termekek\\lcd\\stop.exe");
proc.WaitForExit();

Ami feltűnt, hogy egy makrón belül csak egyszer szerepelhet a

System.Diagnostics.Process proc;  

sor. Makroloop nem indult el ha többször szerepelt.
A feltétel miatt viszont előfordulhat, hogy e sor nélküli rész hajtódna végre. Ilyen esetben hogy kell korrektül kezelni a programok indítását?
Ez pl a hiba nyugtázást végző makró ami kezeli a hűtő hibát is.

Thread.Sleep(4000);   // induláskor vár
while(loop)
{

// VÉSZKAPCSOLÓ_OK
if(!exec.GetLED(1) && !exec.GetLED(12)){

// csak msg box törlés
exec.Callbutton(528); //msg box törlés

//**************************************************************************
// vész aktiv esetén
if(exec.GetLED(25))
{
exec.Callbutton(513); //vész ki
AS3.SetLED(true, 300); //vízhiány makró tiltás be
exec.AddStatusmessage("Hűtő indul...");

System.Diagnostics.Process proc;  
proc =  System.Diagnostics.Process.Start("C:\\termekek\\lcd\\hibatorles.exe");
proc.WaitForExit();

Thread.Sleep(3000); //adunk időt a hűtőnek

//**************************************************************************
// vízáramlás ok
if(!exec.GetLED(4))
{
AS3.Switchbutton(false, 20020); //vészgomb villogás ki
AS3.SetLED(false, 300); //vízhiány makró tiltás ki

//System.Diagnostics.Process proc;  
proc =  System.Diagnostics.Process.Start("C:\\termekek\\lcd\\start.exe");
proc.WaitForExit();
exec.Callbutton(528); //msg box törlés
}

//**************************************************************************
// vízáramlás hiba
if(exec.GetLED(4))
{
exec.AddStatusmessage("!!! Vízhiány! !!!");

//System.Diagnostics.Process proc;  
proc =  System.Diagnostics.Process.Start("C:\\termekek\\lcd\\vizhiany.exe");
proc.WaitForExit();
Thread.Sleep(200);
exec.Callbutton(512); //vész ki
}

}

while(!exec.GetLED(12)) Thread.Sleep(500); //gomb elengedés
}

Thread.Sleep(500);
}

dezsoe

Szia!

Azért nem szerepelhet többször, mert ez egy változó deklarációja, márpedig azt csak egyszer lehet. Tedd a sort a makró legelejére, akkor azonnal létrejön a proc nevű változód, amit utána akárhányszor felhasználhatsz.

Thowra

Köszönöm a gyors segítséget [#eljen]

ium8w94xp

Valaki tudja, hogy kb mikor érkezik az újabb beta teszt verzió?
Balázs említett egy újdonságot és már nagyon próbálgatnám :)

j3cx5jtk6

Sziasztok!
Biztos volt már, de egy kis irodalmat tudnátok megosztani velem, először kínlódok vele én és ha nyűgöm van utána részletezném a mondókámat!
A kérdésem annyi, hogy /nem marogép vagy eszterga/ mozgatom kéne 2 motort, egyik forgat másik fol-le mozog, mind a 2 nek egy cikluson belül más lesz a sebesége is, plusz ami a lényeg, hogy pl. induktívra vagy valami optikai meglétre kéne várni és utána mozogni. Gondolom simán bekötöm mint bemenet de utána?!
Gyorsan a mukodés
1.start gombra-forgás indul elindul lefelé
2. #1 optika megléte után forgás gyorsítás lefelé tovább
3. #2 optika meglétéig teszi ezt.
4. #2 opt. forgás megáll- indul föl

Ennyi nagyon-nagyon leegyszerűsítve.
Gondoltam belerakok egy !LOGO-t azt kész de akkor meg a motorvezérlővel nem tudok, hogy komuniálni.
Az ilyesmit, hogyan kéne megoldani?!

Magába a programba beleirkálom?!?!
start>>wait for I2>>forog lemegy>>wait for I3 after stbstb....

[#conf]
Megköszönném ha valamerre ellöknétek csak a jó irányba[#nyes]

Köszöntem szépen!!!

frob

kissé rossz helyre címezted, talán arduino topikban kapnád a választ vagy a semleges csevegőben...

ra8nsmk6w

Ez nem plc-s feladat! Csak ha bonyolitani akarod az életed.

000000000

Pl. 2-3 db pár forintos CDxxxx IC-vel összedrótozhatod ezt a logikát a feladatnak megfelelően.

ium8w94xp

Gyanítom, hogy az uccnc-vel szeretné megoldani.

000000000

"Gondoltam belerakok egy !LOGO-t azt kész"

Ebből mások meg én is nem ezt gyanítják.

dezsoe

Szia!

A feladat egyáltalán nem olyan egyszerű, mint amilyennek kinéz, feltéve, hogy CNC vezérlővel akarod megoldani. Ráadásul a nehézség pont nem a bemenetek kezelésével van, hanem a mozgásokkal. Milyen g-kóddal és hogyan definiálnád azt, hogy "forgás gyorsítás lefelé tovább"? A g-kód nyelvezete arra van kitalálva, hogy egy mozgás indításakor tudod, hogy mi a végpont és tudod, hogy milyen sebességgel kell azt elérni. (Jobb esetben azt is tudhatod a sebesség helyett, hogy mennyi idő alatt kell odaérni, de az még a jövő zenéje.)

Ahogy az előttem szólók már mondták: jobban jársz egy Arduino-s cuccal. Az sem rossz, amit Robsy írt, csak az az egy hátránya van, hogy ha holnap kiderül, hogy kicsit máshogy kell mozogni, akkor újra kell tervezni, míg egy Arduino-val csak a programot kell módosítani.

000000000

"akkor újra kell tervezni"

Nem egészen, ugyanis évszázadok óta létezik egy csodálatos analóg paraméter memória, úgy hívják potencióméter. Nem kér kenyeret, filléres eszköz, szinte örök életre a stabil adattartalmat biztosítja, és ha okosan bánunk vele, 1 másodperc alatt átállíthatók velük még a fix logika fő paramétrei is.

Abban igazad van, ha gyakran változnak a logikai feladatok is, akkor már érdemes áttérni valami rugalmasabban programozható eszközre.

dezsoe

Ez így van. Csak a probléma leírásából nem derül ki, hogy ez egy állandó kütyü lesz, amit egyszer kell beállítani és az idők végezetéig ugyanazt fogja csinálni, vagy pl. egy kameramozgató, amit minden fotózáshoz újra be kell állítani. :)

j3cx5jtk6

Sziasztok!

Jó, haggyuk én is sejtettem, hogy ez igy nem a legjobb de nem kellett volna más eszközt még beletenni hanem egyben az egészet az uccnc csinálná.

Amugy ja ez egy feladatos megoldás lenne, nincs átállás stb.

Arduinot meg én nem erőltetem.

De valami olyasmire gondoltam amúgy mint a mach3 ban a brain editor?! asszem[#zavart2]

Mindegy azért köszönöm, hogy írtatok!![#eljen]