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 84 / 189 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   80  81  82  83  84  85  86  87  88   Következő ►  Utolsó ►|

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

exup | 639    2018-02-25 20:22:51 [5303]

Közbe azért csak megoldottam azt a makrót, igaz teljesen az én profilomhoz használhatóan kínlódtam meg. Gyanítom a mezei UCCNC-vel nem megy, mert másik makrókra is hivatkozik. De egy általad írt gyönyörű átgondolt, szépen megszerkesztett makró univerzálisabb is lenne

Előzmény: dezsoe, 2018-02-25 10:40:52 [5290]


lazi | 1489    2018-02-25 18:05:35 [5302]

Köszönöm, akkor valószínűsíthetően marad egy UC-Mach összeállítás. Úgy 1 hónapon belül tervezem a vásárlást, jelentkezem.

Előzmény: dezsoe, 2018-02-25 12:11:49 [5299]


dezsoe | 2934    2018-02-25 12:56:05 [5301]

Például itt: UC300, de a többi mozgásvezérlőnél is megtalálod. Ezen az oldalon a 2. és 3. pont az automatikus és a kézi telepítő linkje.

Előzmény: exup, 2018-02-25 12:31:54 [5300]


exup | 639    2018-02-25 12:31:54 [5300]

Hol az a link?

Előzmény: dezsoe, 2018-02-25 12:11:49 [5299]


dezsoe | 2934    2018-02-25 12:11:49 [5299]

Szia!

Két külön tétel van: maga a mozgásvezérlő és a hozzá tartozó program licensz. Azért van külön, mert a mozgásvezérlőt tudod Mach3-mal is használni, tehát ahhoz elég csak a kütyüt megvenni, a Mach3 plugin letölthető hozzá. Az UCCNC licensz úgy működik, hogy a mozgásvezérlőhöz van kötve, tehát a kapott licensz file-t viheted magaddal akárhány gépre, az adott mozgásvezérlő működni fog.

Természetesen, írhatsz makrókat. Annyi a különbség, hogy a Mach3-ban Visual Basic-ben kellett írni, itt C#-ban. A dokumentációt nem nevezném tökéletesnek, de el lehet vele indulni, meg ha kell, tudok még linket adni egy jó leíráshoz. Nem utolsó sorban, itt is kérdezhetsz, segítünk.

Előzmény: lazi, 2018-02-25 12:01:18 [5298]

lazi | 1489    2018-02-25 12:01:18 [5298]

Üdv

Nagyon nem néztem még utána, de tervezem egy UC vezérlő vásárlását. A kérdésem az lenne, hogy ehhez automatikusan jár a vezérlőprogram is, vagy azt külön kell hasonló nagyságrendért megvásárolni?
Van lehetőség benne MACH jellegű makrók megírására? Gondolok itt nullafelvételre és hasonlókra.

Előzmény: dezsoe, 2018-02-25 11:56:25 [5296]


exup | 639    2018-02-25 12:00:34 [5297]

ok. köszi

Előzmény: dezsoe, 2018-02-25 11:56:25 [5296]


dezsoe | 2934    2018-02-25 11:56:25 [5296]

Biztos, hogy lesz újabb, az angol fórumon írta a készítő, hogy dolgozik rajta. Egy csomó új cucc került a képernyőkre azóta, hogy elkészült a 2017. Egy párat kb. 2 hónapja belerakott, de - emlékeim szerint - nincs még minden benne.

Előzmény: exup, 2018-02-25 11:16:34 [5295]


exup | 639    2018-02-25 11:16:34 [5295]

Lesz újabb? Vagy mire gondolsz? Köszi a makróra nézést

Előzmény: dezsoe, 2018-02-25 11:10:11 [5294]


dezsoe | 2934    2018-02-25 11:10:11 [5294]

Ügyes képernyő, a múltkor találkoztam vele, egy read-only fórumtársnál. Talán az új verzió egy kicsit kompaktabb lesz. A váltásra tulajdonképpen van kész makróm, majd délután előszedem, most csak másodpercekre nézek a gépre.

Előzmény: exup, 2018-02-25 11:02:36 [5293]


exup | 639    2018-02-25 11:02:36 [5293]

Nekem nagyon tetszik, szinte mindent tud alapból, amire szükségem van. Munkadarabot bemér, szerszámot mér csere után...stb.

Előzmény: svejk, 2018-02-25 10:41:41 [5291]


exup | 639    2018-02-25 11:01:11 [5292]

A forgatóm nem forog gyorsan. Max 1000. Most rendeltem egy 1000P/R felbontású encodert....Majd kiderül
Szóval a gombot már létrehoztam. Világít is, ha megnyomom. Már pipát is tudtam tenni vele a step/dir spindle-be és elvenni a pwm spindle-ből, de a labelmezőben értéket nem tudom hogyan kell változtatni. Ráadásul lehet eleve nem így kell módosítanom

Előzmény: dezsoe, 2018-02-25 10:40:52 [5290]


svejk | 33037    2018-02-25 10:41:41 [5291]

Aha!

Próbáltam vele én is barátkozni, de valahogy nem jött be. Most nem tudok indokokat felsorolni, lehet csak szubjektjv volt.

Előzmény: exup, 2018-02-25 10:31:45 [5289]


dezsoe | 2934    2018-02-25 10:40:52 [5290]

Meg lehet csinálni, de minél kisebb felbontású legyen az enkóder. Csak számold ki, hogy a kívánt RPM / 60 * felbontás (PPR, nem CPR!) belefér-e a kernel frekvenciába. Lehetőleg kényelmesen.

Előzmény: exup, 2018-02-25 10:14:03 [5287]


exup | 639    2018-02-25 10:31:45 [5289]

Nekem eleve teljesen más a képernyőm.2017 Screenset

Előzmény: svejk, 2018-02-25 10:18:21 [5288]

svejk | 33037    2018-02-25 10:18:21 [5288]

Én az új profilt ajánlom.
Egyelőre ha csak lehet ne nyúlj a képernyő felülethez, mert eléggé macerás az újabb verzióra váltani vele.

Előzmény: exup, 2018-02-25 10:14:03 [5287]


exup | 639    2018-02-25 10:14:03 [5287]

UCCNC-hez milyen felbontású encodert érdemes használni. Nyilván minél nagyobb, annál jobb, de lehet van, aminek már nem sok értelme. Vagy ki milyet használ esetleg.
Csabához szólna még egy kérés. Szeretnék makróból gombnyomásra bizonyos beállításokon változtatni a programon.
Pontosan a PWM spindle, spindle speed, spindle feedback, step/direction spindle adatait változtatni. A negyedik "A" tengelyem szeretném néha főorsóként használni encoderrel. Nem akarnám minden alkalommal ezeket kézzel állítgatni. Bár legrosszabb esetben új profilt hozok létre.


ANTAL GÁBOR | 4642    2018-02-24 17:18:12 [5286]

Köszi még egyszer . Arra már rájöttem hogy amikor kérdezek akkor pontosan kell definiálnom a dolgokat ( op rendszer verzió stb .) 4 helyen dolgozom , és ahogy ti fejlődtök úgy modernizálom az eszközeimet . Ez a legkorábbi állomásom és ennél évekig az UC 100 működött , de aztán döntöttem mert néha megfagyott az USB és lecseréltem az ethernetesre , de elfelejtettem hogy azt a Mach ra telepítettem .
Apropó : most megcsináltam az UCCNC t de annál modernebb a rendszer mint a Mach nál . Igaz lassan szakítok a Mach- hal de hogyan lehetne azt megcsinálni hogy firmware csere nélkül tudjak ide oda lépkedni? Vagyis hogyan kellene újrahúzni a Machot hogy ugyanazt a verziót használja mint az UCCNC ? ( rémlik hogy egyszerűen ki kell cserélni egy filét ) Van már 2-3 éve hogy ilyet csináltam ....

Előzmény: CNCdrive, 2018-02-24 16:38:09 [5285]


CNCdrive | 442    2018-02-24 16:38:09 [5285]

Gábor, OK, szuper, akkor ezek szerint rátapintottam a dologra. Őszintén szólva nem voltam biztos benne, hogy az 1.0037 az vajon tényleg az a verzió-e amit próbáltál, mert az már annyira régi, hogy szinte hihetetlennek tűnt, hogy azt próbálod használni, vagy csak elírtad mondjuk az 1.2037 verziószámot, de gondoltam azért megemlítem, hátha.

Előzmény: ANTAL GÁBOR, 2018-02-24 15:12:09 [5283]


svejk | 33037    2018-02-24 15:14:39 [5284]

"... Elég kaotikus itt minden.."

ismerős a dolog

Előzmény: ANTAL GÁBOR, 2018-02-24 15:12:09 [5283]


ANTAL GÁBOR | 4642    2018-02-24 15:12:09 [5283]

Igen Balázs az van amit írsz . ( még szerencse hogy a verziószámot is odaírtam ) Hisz pont nálatok cseréltem le a az UC 100 amat az ethernetes 400 ra.
Megoldódott ( mert gondoltam egy merészet és feltettem egy sokkal újabb ( de még nem 21 es verziót . )

Elég kaotikus itt minden , mert közben rájöttem hogy az ethernetest még a Mach alatt futtattam ( sehogy sem stimmeltek a config paraméterek ) Köszönöm mindenkinek a gyors reagálást Minden OK

Előzmény: CNCdrive, 2018-02-24 14:33:31 [5281]


dezsoe | 2934    2018-02-24 14:58:36 [5282]

Az az 1.2037-es verzió. Én tudom követni. (Csaltam: van nálam másolata.)

Előzmény: CNCdrive, 2018-02-24 14:33:31 [5281]


CNCdrive | 442    2018-02-24 14:33:31 [5281]

Gábor, az 1.0037 az annyira régi verzió, hogy akkor még nem is volt ethernetes vezérlőnk. Ha valóban 1.0037 a verzió amit próbálsz az nem fog működni csak UC100-al. Az ethernetes vezérlőket az még nem ismerte, mert akkor még nem voltak ethernetes vezérlőink amikor az a szoftver verzió készült.

Előzmény: ANTAL GÁBOR, 2018-02-24 13:56:28 [5277]


dezsoe | 2934    2018-02-24 14:21:26 [5280]

Szia!

Most hirtelen egy UC300Eth-val tudtam kipróbálni, az visszateszi a régi firmware-t. Nemsoká megnézem a 400-assal is, csak az bonyolultabb.

Előzmény: ANTAL GÁBOR, 2018-02-24 13:56:28 [5277]


CNCdrive | 442    2018-02-24 14:14:30 [5279]

Két dolog lehet vagy rossz a kapcsolat, vagy rossz a license kulcs. Első esetben feldobja a szoftver az eszközválasztó ablakot úgy, hogy a mozgásvezérlőd nincsen ott, csak a demo módok. Második esetben viszont kapsz egy "No valid license key" üzenetet amikor elindul a progi és szintén demo módban indul el.

Előzmény: ANTAL GÁBOR, 2018-02-24 13:56:28 [5277]

ANTAL GÁBOR | 4642    2018-02-24 14:07:50 [5278]

1.2102 a helyes verziószám

Előzmény: ANTAL GÁBOR, 2018-02-24 13:56:28 [5277]


ANTAL GÁBOR | 4642    2018-02-24 13:56:28 [5277]

Egy gyors segítség jól jönne:
Ideiglenesen eltávolítottam az XP s gépem mellől az UC400 ETH eszközt és átvittem egy laptophoz amin win 7 fut és a 3 nappal ezelőtti utolsó verziójú UCCNC ( fejből 21.002)

Visszahoztam és próbálnék marózni egy régebbi verzióval (1.0037 ) Sajnos demó üzemmel áll föl .
Lescanneltem a hálózati kapcsolat OK A licensz biztosan jó és a helyén van. Azt várom hogy a firmare visszalépne a régire de nem teszi. Mi lehet a hiba ? Az eltávolítás elött minden OK volt .Ugyanazt a kábelt használom . Természetesen a kék led nem villog és fel sem villan


svejk | 33037    2018-02-24 10:35:12 [5276]

Szupi!

Előzmény: CNCdrive, 2018-02-23 23:31:43 [5274]


svejk | 33037    2018-02-24 10:34:50 [5275]

Azt a hétszázát!

(A többieknek mondom: Látjátok csak érdemes tesztelni és jelezni a furcsaságokat, még ha sokszor van is rá magyarázat és nem is programhiba)

De nem maradt ki a felsorolásból a második gyorskimenet?

Előzmény: dezsoe, 2018-02-23 21:48:16 [5271]


CNCdrive | 442    2018-02-23 23:31:43 [5274]

Szia Svejk,

Most már tudod csinálni amit szerettél volna a #5145 beírásodban, mert megfejlesztettük a # változók szinkronban tartását a mozgás pufferrel.

Előzmény: svejk, 2018-02-07 22:30:03 [5145]


exup | 639    2018-02-23 23:11:04 [5273]

Jujj, de hosszú köszönet.

Előzmény: dezsoe, 2018-02-23 21:48:16 [5271]


Tibcsi | 249    2018-02-23 22:07:52 [5272]

Köszönjük!!

Előzmény: dezsoe, 2018-02-23 21:48:16 [5271]


dezsoe | 2934    2018-02-23 21:48:16 [5271]

Sziasztok!

Megjelent az UCCNC 1.2103-as tesztverziója.

Innen tölthető le.

Javítások és változások:

- A rendszer AnyCPU opcióval lett lefordítva, hogy 64 bites rendszeren 64 bites módban tudjon futni, kihasználva a több memóriát és egyéb előnyöket. 64 bites rendszeren 500MB-os g-kód file-lal is tesztelve lett. A 32 bitesre fordított pluginok nem fognak működni 64 bites Windows alatt. A pluginok készítőinek újra kell fordítani a pluginokat AnyCPU platformra. A telepítéskor települő pluginok már újra lettek fordítva, így helyesen működnek. A plugin minták is ennek megfelelően módosultak
- Question függvény mostmár elfogad negatív számokat is
- G41/G42 algoritmusok optimalizálása
- Új: Toolpathclick_event a pluginokhoz. A pályamegjelenítőn kattintva elküldi a munkakoordinátákat a pluginoknak
- Részletes szerszámtábla ablakban az átmérő és hossz adatok a koordináták kijelzésének megfelelően lettek formázva (Configuration/General settings/Position DRO digits)
- M98 nem futott helyesen soronkénti végrehajtáskor. A G41/G42 implementálásakor romlott el, javítva
- Az M98 L0 paraméterrel hibás volt, ha az L paramétert # változóból kapta (pl. M98 L#1 Pxx). Ilyenkor, ha a változó értéke 0 volt betöltéskor, akkor az M98 nem fordult le, így később, ha a változónak már volt értéke, akkor sem futott le. Most mindenképpen lefordul, de ha a változó értéke 0, akkor nem történik szubrutin hívás
- Demó módban a jog nem állt le, ha a reset akkor kapcsolt be, amikor még egy jog gomb le volt nyomva. Ez nem okozott problémát géppel, mert csak demó módban volt így. Javítva
- A modal sorban a G64 és G68 rossz sorrendben volt. Ez csak egy szépséghiba volt, javítva
- Új: Informplugin és Informplugins függvény bekerült a plugininterface-be, eddig csak makróból lehetett hívni
- OSK (On-Screen Keyboard) érintőképernyős beviteli plugin frissült. Érzékeli, ha nagyfelbontású képernyőn fut és automatikusan átméretezi magát. Az aktuális profilban az [UCCNC_OSK] szekcióba IgnoreFields=<fieldnumber>[,<fieldnumber>] kulccsal és értékkel felvihetünk mezősorszámokat, amikre kattintva nem jelenik meg a beviteli képernyő. Alapértelmezés szerint ilyen az 1000-es és a 216-os (MDI és új profil neve), de ha más szöveges mezőnk van, akkor ide felsorolhatjuk. Az OSK is támogatja az x86 és x64 platformokat
- Új: ESC billentyűvel egy mező bevitele megszakítható
- Új: telepítéskor megadható, hogy a CV paraméterek alapértelmezése metrikus vagy colos legyen
- Szubrutinokban az M1 hibásan működött. A G41/G42 implementálásakor romlott el, javítva
- G10 L1 Rxx kód hatása nem jelent meg a pályamegjelenítőben, javítva
- A # változók kezelése korlátozott volt az előre olvasás miatt, így a változók lekérdezése nem a pillanatnyi értéket adta, hanem az előre kiszámított kód végén várható értéket. Emiatt ha például egy analóg kimenethez rendeltünk egy változót, akkor a kód futása közben nem követte megfelelően a kódban beállított értéket.

Például:

G0 X0#1 = 1
G0 X1
#1 = 2



Ebben a példában a teljes mozgás alatt a #1 értékét 2-nek olvashattuk. Ennek a működése megváltozott és az értékek bekerültek a mozgáspufferbe, hogy szinkronban legyenek a kód futásával
- App.config file feltelepül, hogy a korábbi, .Net 2.0-ás, más appdomain alá fordított pluginok is fussanak
- A pályamegjelenítés módja változott, hogy nagyobb mennyiségű vertex megjelenítésére legyen alkalmas a 64 bites rendszeren betölthető nagyobb file-ok miatt. Emiatt az OpenGL 1.3 + az ARB_vertex_buffer_object bővítmény, vagy OpenGL 1.5 támogatás szükséges. A szoftver automatikusan választja ki, hogy melyiket használja, és ha valamelyik rendelkezésre áll, akkor futni fog, de ha a vertex puffer objektum egyáltalán nem áll rendelkezésre, akkor hibaüzenettel leáll.
- Az M215 Px nem a g-kóddal szinkronban frissítette az áttételt, javítva
- Az 5441-es alaplapi firmware nem konfigurálta a belső felhúzó ellenállásokat, javítva
- Egy a teljes körök végrehajtását érintő probléma javítva lett: ha a programnak szinkronizálnia kellett a mozgásvezérlővel egy olyan mozgás után, ahol a mozgás adta az ív kezdőpontját és egy teljes (360°) kör következett a szinkronizálást előidéző kód után, továbbá az 1 / egységenkénti lépés nem volt egész osztója a végpontnak, akkor a kört nem mindig értelmezte egész körnek a program, mert a szinkronizálás miatt a kezdő és végpont már nem esett egybe, mert az egységenkénti lépés miatti felbontás nem engedte meg a programozott koordinátát. A probléma megoldása érdekében a vezérlő nem szinkronizálja a koordinátákat csak akkor, ha az feltétlenül szükséges.
- Menetfúrás vagy -vágás néha kihagyta a szinkron mozgást. Ez a hiba az előző verzióban javításra került az ethernetes mozgásvezérlőknél, most az USB-seknél is


exup | 639    2018-02-22 22:32:53 [5270]

Kiváncsi lennék mi kell lézerhez?

Előzmény: nyiszi, 2018-02-22 22:30:27 [5269]


nyiszi | 2359    2018-02-22 22:30:27 [5269]

Hát van már plazma screen is. Lehet, hogy van lézerhez is.
Csak azok a gombok és egyéb dolgok vannak a képernyőn amik a lézerhez kellenek.Tudom, hogy lehet szerkeszteni de ha már valaki megcsinálta akkor nem kínlódnék vele.

Előzmény: exup, 2018-02-22 22:20:52 [5268]

exup | 639    2018-02-22 22:20:52 [5268]

Nem tudom ez mit jelent neked

Előzmény: nyiszi, 2018-02-22 22:18:44 [5267]


nyiszi | 2359    2018-02-22 22:18:44 [5267]

Az UCCNC-hez nincs valakinek Lézer screen?


exup | 639    2018-02-22 21:25:28 [5266]

Köszi....gyors teszt megvolt, jó így. A gomb is tutkón megy

Előzmény: dezsoe, 2018-02-22 20:49:21 [5265]


dezsoe | 2934    2018-02-22 20:49:21 [5265]

Mitagadás, volt benne egy hiba, ki is javítottam gyorsan.

Tengely csere makró UCCNC 1.2100 előtti verziókhoz:

// ================================================================================================
// Mxxxxx E<axis1> H<axis2>: Full swap axis1 with axis2
// ================================================================================================

AxisData Axis1 = new AxisData(AS3);
AxisData Axis2 = new AxisData(AS3);

if ((Evar == null) || (Hvar == null))
{
exec.AddStatusmessage("Parameters: E<axis_no> H<axis_no>");
return;
}

int Eint = Convert.ToInt32(Evar);
int Hint = Convert.ToInt32(Hvar);

if ((Eint < 0) || (Eint > 5) || (Hint < 0) || (Hint > 5))
{
exec.AddStatusmessage(" where axis_no is 0..5 as XYZABC");
exec.AddStatusmessage("Parameters: E<axis_no> H<axis_no>");
return;
}

Axis1.Read(Eint);
Axis2.Read(Hint);

if (Axis1.HasSlave() || Axis2.HasSlave())
{
exec.AddStatusmessage("Cannot swap axes with slave!");
return;
}

Axis1.Write(Hint);
Axis2.Write(Eint);

exec.Callbutton(btnApplySettings);

exec.AddStatusmessage("Axes " + "XYZABC".Substring(Eint, 1) + " and " + "XYZABC".Substring(Hint, 1) + " swapped");

// ================================================================================================

#Events

// ================================================================================================

const int btnApplySettings = 168;

// =============== class AxisData

public class AxisData
{
UCCNC.AS3interfaceClass myAS3;

int Base0 = 0;
int Base1 = 0;
int Base2 = 0;
int Base7 = 0;
int Base8 = 0;
int Base10 = 0;

// Base0
int Steppinnumber = 0;
int Dirpinnumber = 0;
int Limitminuspinnumber = 0;
int Limitpluspinnumber = 0;
int Homepinnumber = 0;
double Homingspeedup = 0.0;
double Homingvalue = 0.0;
double Stepsperunit = 0.0;
double Velocity = 0.0;
double Acceleration = 0.0;
double Softlimitnegative = 0.0;
double Softlimitpositive = 0.0;
double Compaccel = 0.0;
double Backlashdistance = 0.0;
double Homingspeeddown = 0.0;
// Base1
int Stepportnumber = 0;
int Dirportnumber = 0;
int Limitminusportnumber = 0;
int Limitplusportnumber = 0;
int Homeportnumber = 0;
// Base2
int Enapinnumber = 0;
int Enaportnumber = 0;
// Base7
bool Axisenabled = false;
bool Steppinnegate = false;
bool Dirpinnegate = false;
bool Limitminuspinnegate = false;
bool Limitpluspinnegate = false;
bool Homepinnegate = false;
bool Homedirectionpositive = false;
bool Homeautozero = false;
bool Backlashenable = false;
// Base8
bool Enapinnegate = false;
// Base10
string Slaveaxis = "";

public AxisData(UCCNC.AS3interfaceClass workAS3)
{
myAS3 = workAS3;
}

private void SetBases(int axis)
{
Base0 = axis * 15 + 1;
Base1 = axis * 5 + 241;
Base2 = axis * 2 + 463;
Base7 = axis * 9 + 1;
Base8 = axis + 141;
Base10 = axis + 1;
}

public void Read(int axis)
{
SetBases(axis);
// Base0
Steppinnumber = myAS3.Getfieldint(Base0);
Dirpinnumber = myAS3.Getfieldint(Base0 + 1);
Limitminuspinnumber = myAS3.Getfieldint(Base0 + 2);
Limitpluspinnumber = myAS3.Getfieldint(Base0 + 3);
Homepinnumber = myAS3.Getfieldint(Base0 + 4);
Homingspeedup = myAS3.Getfielddouble(Base0 + 5);
Homingvalue = myAS3.Getfielddouble(Base0 + 6);
Stepsperunit = myAS3.Getfielddouble(Base0 + 7);
Velocity = myAS3.Getfielddouble(Base0 + 8);
Acceleration = myAS3.Getfielddouble(Base0 + 9);
Softlimitnegative = myAS3.Getfielddouble(Base0 + 10);
Softlimitpositive = myAS3.Getfielddouble(Base0 + 11);
Compaccel = myAS3.Getfielddouble(Base0 + 12);
Backlashdistance = myAS3.Getfielddouble(Base0 + 13);
Homingspeeddown = myAS3.Getfielddouble(Base0 + 14);
// Base1
Stepportnumber = myAS3.Getfieldint(Base1);
Dirportnumber = myAS3.Getfieldint(Base1 + 1);
Limitminusportnumber = myAS3.Getfieldint(Base1 + 2);
Limitplusportnumber = myAS3.Getfieldint(Base1 + 3);
Homeportnumber = myAS3.Getfieldint(Base1 + 4);
// Base2
Enapinnumber = myAS3.Getfieldint(Base2);
Enaportnumber = myAS3.Getfieldint(Base2 + 1);
// Base7
Axisenabled = myAS3.Getcheckboxstate(Base7);
Steppinnegate = myAS3.Getcheckboxstate(Base7 + 1);
Dirpinnegate = myAS3.Getcheckboxstate(Base7 + 2);
Limitminuspinnegate = myAS3.Getcheckboxstate(Base7 + 3);
Limitpluspinnegate = myAS3.Getcheckboxstate(Base7 + 4);
Homepinnegate = myAS3.Getcheckboxstate(Base7 + 5);
Homedirectionpositive = myAS3.Getcheckboxstate(Base7 + 6);
Homeautozero = myAS3.Getcheckboxstate(Base7 + 7);
Backlashenable = myAS3.Getcheckboxstate(Base7 + 8);
// Base8
Enapinnegate = myAS3.Getcheckboxstate(Base8);
// Base10
Slaveaxis = axis < 3 ? myAS3.Getcomboboxselection(Base10) : "None";
}

public void Write(int axis)
{
SetBases(axis);
// Base0
myAS3.Setfield(Steppinnumber, Base0);
myAS3.Setfield(Dirpinnumber, Base0 + 1);
myAS3.Setfield(Limitminuspinnumber, Base0 + 2);
myAS3.Setfield(Limitpluspinnumber, Base0 + 3);
myAS3.Setfield(Homepinnumber, Base0 + 4);
myAS3.Setfield(Homingspeedup, Base0 + 5);
myAS3.Setfield(Homingvalue, Base0 + 6);
myAS3.Setfield(Stepsperunit, Base0 + 7);
myAS3.Setfield(Velocity, Base0 + 8);
myAS3.Setfield(Acceleration, Base0 + 9);
myAS3.Setfield(Softlimitnegative, Base0 + 10);
myAS3.Setfield(Softlimitpositive, Base0 + 11);
myAS3.Setfield(Compaccel, Base0 + 12);
myAS3.Setfield(Backlashdistance, Base0 + 13);
myAS3.Setfield(Homingspeeddown, Base0 + 14);
// Base1
myAS3.Setfield(Stepportnumber, Base1);
myAS3.Setfield(Dirportnumber, Base1 + 1);
myAS3.Setfield(Limitminusportnumber, Base1 + 2);
myAS3.Setfield(Limitplusportnumber, Base1 + 3);
myAS3.Setfield(Homeportnumber, Base1 + 4);
// Base2
myAS3.Setfield(Enapinnumber, Base2);
myAS3.Setfield(Enaportnumber, Base2 + 1);
// Base7
myAS3.Setcheckboxstate(Axisenabled, Base7);
myAS3.Setcheckboxstate(Steppinnegate, Base7 + 1);
myAS3.Setcheckboxstate(Dirpinnegate, Base7 + 2);
myAS3.Setcheckboxstate(Limitminuspinnegate, Base7 + 3);
myAS3.Setcheckboxstate(Limitpluspinnegate, Base7 + 4);
myAS3.Setcheckboxstate(Homepinnegate, Base7 + 5);
myAS3.Setcheckboxstate(Homedirectionpositive, Base7 + 6);
myAS3.Setcheckboxstate(Homeautozero, Base7 + 7);
myAS3.Setcheckboxstate(Backlashenable, Base7 + 8);
// Base8
myAS3.Setcheckboxstate(Enapinnegate, Base8);
// Base10
if (axis < 3)
myAS3.Updatecomboboxselection(0, Base10); // Slaveaxis = "";
}

public bool HasSlave()
{
return !(Slaveaxis == "None");
}
}



Tengely csere makró UCCNC 1.2100 utáni verziókhoz:

// ================================================================================================
// Mxxxxx E<axis1> H<axis2>: Full swap axis1 with axis2 (UCCNC 1.2100+)
// ================================================================================================

AxisData Axis1 = new AxisData(AS3);
AxisData Axis2 = new AxisData(AS3);

if ((Evar == null) || (Hvar == null))
{
exec.AddStatusmessage("Parameters: E<axis_no> H<axis_no>");
return;
}

int Eint = Convert.ToInt32(Evar);
int Hint = Convert.ToInt32(Hvar);

if ((Eint < 0) || (Eint > 5) || (Hint < 0) || (Hint > 5))
{
exec.AddStatusmessage(" where axis_no is 0..5 as XYZABC");
exec.AddStatusmessage("Parameters: E<axis_no> H<axis_no>");
return;
}

Axis1.Read(Eint);
Axis2.Read(Hint);

if (Axis1.HasSlave() || Axis2.HasSlave())
{
exec.AddStatusmessage("Cannot swap axes with slave!");
return;
}

Axis1.Write(Hint);
Axis2.Write(Eint);

exec.Callbutton(btnApplySettings);

exec.AddStatusmessage("Axes " + "XYZABC".Substring(Eint, 1) + " and " + "XYZABC".Substring(Hint, 1) + " swapped");

// ================================================================================================

#Events

// ================================================================================================

const int btnApplySettings = 168;

// =============== class AxisData

public class AxisData
{
UCCNC.AS3interfaceClass myAS3;

int Base0 = 0;
int Base1 = 0;
int Base2 = 0;
int Base3 = 0;
int Base4 = 0;
int Base5 = 0;
int Base6 = 0;
int Base7 = 0;
int Base8 = 0;
int Base9 = 0;
int Base10 = 0;

// Base0
int Steppinnumber = 0;
int Dirpinnumber = 0;
int Limitminuspinnumber = 0;
int Limitpluspinnumber = 0;
int Homepinnumber = 0;
double Homingspeedup = 0.0;
double Homingvalue = 0.0;
double Stepsperunit = 0.0;
double Velocity = 0.0;
double Acceleration = 0.0;
double Softlimitnegative = 0.0;
double Softlimitpositive = 0.0;
double Compaccel = 0.0;
double Backlashdistance = 0.0;
double Homingspeeddown = 0.0;
// Base1
int Stepportnumber = 0;
int Dirportnumber = 0;
int Limitminusportnumber = 0;
int Limitplusportnumber = 0;
int Homeportnumber = 0;
// Base2
int Enapinnumber = 0;
int Enaportnumber = 0;
// Base3..6
int Enabledelay = 0;
int Currhilowpinnumber = 0;
int Currhilowportnumber = 0;
double Homebackoff = 0.0;
// Base7
bool Axisenabled = false;
bool Steppinnegate = false;
bool Dirpinnegate = false;
bool Limitminuspinnegate = false;
bool Limitpluspinnegate = false;
bool Homepinnegate = false;
bool Homedirectionpositive = false;
bool Homeautozero = false;
bool Backlashenable = false;
// Base8
bool Enapinnegate = false;
// Base9
bool Currhilowpinnegate = false;
// Base10
string Slaveaxis = "";

public AxisData(UCCNC.AS3interfaceClass workAS3)
{
myAS3 = workAS3;
}

private void SetBases(int axis)
{
Base0 = axis * 15 + 1;
Base1 = axis * 5 + 241;
Base2 = axis * 2 + 463;
Base3 = axis + 2600;
Base4 = axis + 2606;
Base5 = axis + 2612;
Base6 = axis + 2621;
Base7 = axis * 9 + 1;
Base8 = axis + 141;
Base9 = axis + 347;
Base10 = axis + 1;
}

public void Read(int axis)
{
SetBases(axis);
// Base0
Steppinnumber = myAS3.Getfieldint(Base0);
Dirpinnumber = myAS3.Getfieldint(Base0 + 1);
Limitminuspinnumber = myAS3.Getfieldint(Base0 + 2);
Limitpluspinnumber = myAS3.Getfieldint(Base0 + 3);
Homepinnumber = myAS3.Getfieldint(Base0 + 4);
Homingspeedup = myAS3.Getfielddouble(Base0 + 5);
Homingvalue = myAS3.Getfielddouble(Base0 + 6);
Stepsperunit = myAS3.Getfielddouble(Base0 + 7);
Velocity = myAS3.Getfielddouble(Base0 + 8);
Acceleration = myAS3.Getfielddouble(Base0 + 9);
Softlimitnegative = myAS3.Getfielddouble(Base0 + 10);
Softlimitpositive = myAS3.Getfielddouble(Base0 + 11);
Compaccel = myAS3.Getfielddouble(Base0 + 12);
Backlashdistance = myAS3.Getfielddouble(Base0 + 13);
Homingspeeddown = myAS3.Getfielddouble(Base0 + 14);
// Base1
Stepportnumber = myAS3.Getfieldint(Base1);
Dirportnumber = myAS3.Getfieldint(Base1 + 1);
Limitminusportnumber = myAS3.Getfieldint(Base1 + 2);
Limitplusportnumber = myAS3.Getfieldint(Base1 + 3);
Homeportnumber = myAS3.Getfieldint(Base1 + 4);
// Base2
Enapinnumber = myAS3.Getfieldint(Base2);
Enaportnumber = myAS3.Getfieldint(Base2 + 1);
// Base3..6
Enabledelay = myAS3.Getfieldint(Base3);
Currhilowpinnumber = myAS3.Getfieldint(Base4);
Currhilowportnumber = myAS3.Getfieldint(Base5);
Homebackoff = myAS3.Getfielddouble(Base6);
// Base7
Axisenabled = myAS3.Getcheckboxstate(Base7);
Steppinnegate = myAS3.Getcheckboxstate(Base7 + 1);
Dirpinnegate = myAS3.Getcheckboxstate(Base7 + 2);
Limitminuspinnegate = myAS3.Getcheckboxstate(Base7 + 3);
Limitpluspinnegate = myAS3.Getcheckboxstate(Base7 + 4);
Homepinnegate = myAS3.Getcheckboxstate(Base7 + 5);
Homedirectionpositive = myAS3.Getcheckboxstate(Base7 + 6);
Homeautozero = myAS3.Getcheckboxstate(Base7 + 7);
Backlashenable = myAS3.Getcheckboxstate(Base7 + 8);
// Base8
Enapinnegate = myAS3.Getcheckboxstate(Base8);
// Base9
Currhilowpinnegate = myAS3.Getcheckboxstate(Base9);
// Base10
Slaveaxis = axis < 3 ? myAS3.Getcomboboxselection(Base10) : "None";
}

public void Write(int axis)
{
SetBases(axis);
// Base0
myAS3.Setfield(Steppinnumber, Base0);
myAS3.Setfield(Dirpinnumber, Base0 + 1);
myAS3.Setfield(Limitminuspinnumber, Base0 + 2);
myAS3.Setfield(Limitpluspinnumber, Base0 + 3);
myAS3.Setfield(Homepinnumber, Base0 + 4);
myAS3.Setfield(Homingspeedup, Base0 + 5);
myAS3.Setfield(Homingvalue, Base0 + 6);
myAS3.Setfield(Stepsperunit, Base0 + 7);
myAS3.Setfield(Velocity, Base0 + 8);
myAS3.Setfield(Acceleration, Base0 + 9);
myAS3.Setfield(Softlimitnegative, Base0 + 10);
myAS3.Setfield(Softlimitpositive, Base0 + 11);
myAS3.Setfield(Compaccel, Base0 + 12);
myAS3.Setfield(Backlashdistance, Base0 + 13);
myAS3.Setfield(Homingspeeddown, Base0 + 14);
// Base1
myAS3.Setfield(Stepportnumber, Base1);
myAS3.Setfield(Dirportnumber, Base1 + 1);
myAS3.Setfield(Limitminusportnumber, Base1 + 2);
myAS3.Setfield(Limitplusportnumber, Base1 + 3);
myAS3.Setfield(Homeportnumber, Base1 + 4);
// Base2
myAS3.Setfield(Enapinnumber, Base2);
myAS3.Setfield(Enaportnumber, Base2 + 1);
// Base3..6
myAS3.Setfield(Enabledelay, Base3);
myAS3.Setfield(Currhilowpinnumber, Base4);
myAS3.Setfield(Currhilowportnumber, Base5);
myAS3.Setfield(Homebackoff, Base6);
// Base7
myAS3.Setcheckboxstate(Axisenabled, Base7);
myAS3.Setcheckboxstate(Steppinnegate, Base7 + 1);
myAS3.Setcheckboxstate(Dirpinnegate, Base7 + 2);
myAS3.Setcheckboxstate(Limitminuspinnegate, Base7 + 3);
myAS3.Setcheckboxstate(Limitpluspinnegate, Base7 + 4);
myAS3.Setcheckboxstate(Homepinnegate, Base7 + 5);
myAS3.Setcheckboxstate(Homedirectionpositive, Base7 + 6);
myAS3.Setcheckboxstate(Homeautozero, Base7 + 7);
myAS3.Setcheckboxstate(Backlashenable, Base7 + 8);
// Base8
myAS3.Setcheckboxstate(Enapinnegate, Base8);
// Base9
myAS3.Setcheckboxstate(Currhilowpinnegate, Base9);
// Base10
if (axis < 3)
myAS3.Updatecomboboxselection(0, Base10); // Slaveaxis = "";
}

public bool HasSlave()
{
return !(Slaveaxis == "None");
}
}



Leírás itt: 'UCCNC vezérlő program' téma, 4728. hozzászólás

Előzmény: exup, 2018-02-22 20:18:07 [5264]


exup | 639    2018-02-22 20:18:07 [5264]

Most fedeztem fel egy érdekességet. Ha futtatom a Csaba által írt makrót és cserélem X tengelyt A-ra, akkor a home sequence résznél az 1-es axis kinullázódik(ott Z van nekem). Nem tudom ez miért van.


exup | 639    2018-02-22 13:54:22 [5263]

Köszi...Isten vagy :D

Előzmény: dezsoe, 2018-02-22 12:59:04 [5260]


svejk | 33037    2018-02-22 13:21:31 [5262]

Aha!
Hagyd a csudába majd megoldódik másként, úgy is kell a mechanikus megoldás.

Inkább a magánkérdésemet erőltesd!

Előzmény: dezsoe, 2018-02-22 13:01:26 [5261]


dezsoe | 2934    2018-02-22 13:01:26 [5261]

Szia!

Az exec végrehajtódik, csak a makró nem indul el ciklus futás közben. Macroloop-ból megoldható, csak törpölnöm kell rajta.

Előzmény: svejk, 2018-02-22 09:00:54 [5259]


dezsoe | 2934    2018-02-22 12:59:04 [5260]

Szia!

A nyomógombnak írj új makrót, ami meghívja a cserét, amit az MDI-be írnál. Ha tehát pl. az X és A tengelyt cserélnéd és a csere makró a 20000-es, akkor pl. a 20001-es makró (amit a nyomógomb hív) így néz ki:

exec.Code("M20000 E0 H3");



Mivel a visszaváltás ugyanezzel a sorral történik, nem kell két nyomógomb, csak egy, mert ugyanazt a két tengelyt cserélgeted oda-vissza.

Azért kell két lépésben csinálnod, mert a nyomógombnál nem lehet megadni, hogy milyen paraméterekkel hívja a makrót, csak simán meghívja, így egy plusz lépcsőt kell beiktatni, hogy a paramétereket is megkapja.

Előzmény: exup, 2018-02-21 23:20:43 [5258]


svejk | 33037    2018-02-22 09:00:54 [5259]

Adott egy túlsúlyos, léptetőmotoros Z egység amit a motor árammentes nyomatéka éppen megtart.
De ha mozgás közben jön egy vészstop -ami ugye elveszi a step jeleket rögtön és kiesik a szinkronból- akkor leszalad az egység.

Nagy mellénnyel kitaláltuk, - ideiglenesen amíg nem készül el a mechanikus fék,- hogy egy külső nyomógombbal/bemenettel meghívjuk az alábbi makrót. (persze a gomb lenyomása a főorsót leállítja hardveresen azonnal)

exec.Callbutton(130);

exec.Wait(2000);

exec.Callbutton(144);




Persze nem működik, egy éjszaka kellett mire rájöttem, hogy ezek az exec utasítások nem működnek ha fut a program, tehát nem csináltam semmit.

Miként kellene program futás közben makróból meghívni a "Stop" parancsot?

exup | 639    2018-02-21 23:20:43 [5258]

Csaba. Hiába nézegetem a multkori makród, ahol a tengelyeket forgatom E és H jelöléssel. Nem jövök rá mit kéne benne átírnom, hogy egy gombra működjön a dolog. A makróba szeretném beleírni a tengelyeket fixen. Két félét. Egyiken x-a másikon vissza a-x. A gombokat már létre hoztam. De a makródhoz (is) hülye vagyok. Nagyon jó amúgy, csak nem akarom beírni mdi-be. A gomb jobban tetszik. Help


dezsoe | 2934    2018-02-21 21:02:14 [5257]

A bemeneteken van egy hardveres szűrő, erre lehet még egy kis szabályozható szoftveres szűrést is rátenni. A nem túl precízen érintkező kapcsolók prell-mentesítésére szolgál.

Előzmény: nasda, 2018-02-21 20:20:29 [5256]


nasda | 4    2018-02-21 20:20:29 [5256]

Köszönöm, még kérdésem lenne, hogy a CONFIG. ablakban található "debounce" értékek mire szolgálnak?


dezsoe | 2934    2018-02-21 16:54:16 [5255]

Szia!

Az az oldal lesz aktív induláskor, amelyik látszik a screenset mentésekor. Nyomod a shift-et és átkattintasz a RUN képre, majd ott mentesz, akkor úgy indul.

Előzmény: nasda, 2018-02-21 16:44:27 [5253]


greycat | 153    2018-02-21 16:49:54 [5254]

üdv urak!
egy láma kérdés... csak mert nagyon kezdő vagyok... :D
a CAM része használható valamire a programnak??
csak mert beadtam neki egy dxf fájlt és csak a külső kontúrt látta. a belső részt nem... egy sima 3mm műanyaglemezbe kellene marni egy festősablont.
de nem igazán bírkózik meg vele. vagy tényleg ennyire szerencsétlen vagyok...


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

Időrend:
Oldal 84 / 189 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   80  81  82  83  84  85  86  87  88   Következő ►  Utolsó ►|


 ◊