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 93 / 188 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   89  90  91  92  93  94  95  96  97   Következő ►  Utolsó ►|

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

dezsoe | 2919    2017-12-09 10:05:07 [4767]

Szia!

Az ethernetes vezérlőkkel igen. A Configuration/Axis setup/Aux enc fülön találod.

Előzmény: nyiszi, 2017-12-09 09:07:39 [4766]


nyiszi | 2334    2017-12-09 09:07:39 [4766]

Sziasztok!
Van arra lehetőség az UCCNC-ben, hogy megszámolja és ki is írja egy enkóder jeleit?


svejk | 32802    2017-12-07 21:27:56 [4765]

Köszönöm!

Előzmény: dezsoe, 2017-12-07 20:46:35 [4764]


dezsoe | 2919    2017-12-07 20:46:35 [4764]

Szia!

Csinálsz egy makrót, ami a triggerrel indul:

SendKeys.SendWait("{ENTER}");

Előzmény: svejk, 2017-12-07 18:55:58 [4763]


svejk | 32802    2017-12-07 18:55:58 [4763]

Keresem a windows-os üzenetablak leokézásának a lehetőségét I/O trigger segítségével, de a listában nem találok ilyen kódot.

Pl. a softlimtre való figyelmeztetést szeretném külső gombbal leokézni.

Rab Zoli | 91    2017-12-07 13:27:55 [4762]

Hálásan köszönöm!

Előzmény: dezsoe, 2017-12-05 23:12:15 [4760]


svager | 1388    2017-12-07 08:31:24 [4761]

A tegnap este én is belefutottam ebbe a problémába,amikor még egy kőrzsebet akartam kimarni a már majdnem kész munkadarabon.'UCCNC vezérlő program' téma, 4305. hozzászólás
Nem voltam boldog,de feltetem a legújabb frissítést és onnan folytattam ahol abbahagytam.


dezsoe | 2919    2017-12-05 23:12:15 [4760]

Na, most már értem a problémát. El ne kezdd méregetni. Egyrészt, be lehet kapcsolni egy szálkeresztet (Configuration/Appearance/Show crosshair on TCP), másrészt (és leginkább) válts át ISO nézetbe és mindjárt jobban fogod látni, mivel a sárga kör az egy szép hegyes kúp, aminek a hegye pont ott van, ahol a szerszám jár.

Előzmény: Rab Zoli, 2017-12-05 23:06:51 [4759]


Rab Zoli | 91    2017-12-05 23:06:51 [4759]

Igen valószínüleg arra gondolok. Csak nem értem miért növekszik meg ha pl. meg akarom nézni nagyítva, hogy neki megy e a lefogató csavarnak a szerszám miért kell nekem megsaccolni, hogy hol van a közepe. miért nincs pl. pixeles beállítási lehetőség, mert van amikor 3-4 cm-es a monitoron a sárga kör. Vagy jó lenne egy kereszt a pontos középpontban. Ilyen nincs a menüben?

Előzmény: dezsoe, 2017-12-04 16:31:01 [4758]


dezsoe | 2919    2017-12-04 16:31:01 [4758]

Fél napja nem tudok rájönni, hogy mi a kurzor kör. Ha a szerszámot jelölő kúpra gondolsz, akkor azt csak kikapcsolni lehet, a mérete az fix.

Előzmény: Rab Zoli, 2017-12-03 21:47:54 [4757]


Rab Zoli | 91    2017-12-03 21:47:54 [4757]

Üdv! Valaki megmondja hogy hol lehet kissebre venni a kurzor kör átmérőjét mert már 100x végigböngésztem a menüt és nem ütötte ki a szemem! Nagyon köszönöm!!!


Törölt felhasználó    2017-12-03 09:11:55 [4756]

Igen gondolom de hat a gyémántot is csiszolgatni kell. Köszönöm az utána járásod!

Előzmény: dezsoe, 2017-12-02 20:49:58 [4755]


dezsoe | 2919    2017-12-02 20:49:58 [4755]

Szia!

Háttőőőő... Ennek egy kicsit copy-paste szaga van. Szólok Balázsnak (ha nem olvasná), hogy nézze meg. Valószínű, hogy sokan digitalizálnak ABC tengellyel.

Előzmény: Törölt felhasználó, 2017-12-02 18:35:14 [4754]


Törölt felhasználó    2017-12-02 18:35:14 [4754]

Szia Dezsoe!
Nem tűnik bonyolultnak ez a digitalizálás viszont forgatóval kapcsolatban volna egy kérdésem mikor kiírja egy fáljba a mintázott koordinátákat az A-tengelyt miért Z-nek irja illetve a többi segédtengelyt is Z-nek jelzi.

A-tengellyel

X0.0000 , Y0.0000 , Z0.0000 , Z0.0000

A-B-C tengelyekkel szintén

X0.0000 , Y0.0000 , Z0.0000 , Z0.0000 , Z0.0000 , Z0.0000

Előzmény: dezsoe, 2017-12-01 14:54:48 [4753]


dezsoe | 2919    2017-12-01 14:54:48 [4753]

Nincs mit, fog az menni! Ha nem, akkor szólj.

Előzmény: Törölt felhasználó, 2017-12-01 14:52:49 [4752]

Törölt felhasználó    2017-12-01 14:52:49 [4752]

Kezdem kapiskálni erre kicsit jobban rá kell feküdnöm köszönöm az infót.

Előzmény: dezsoe, 2017-12-01 14:36:17 [4751]


dezsoe | 2919    2017-12-01 14:36:17 [4751]

Ez azt csinálja, hogy amikor be van kapcsolva a digitalizálás (M40), akkor minden probe (G31) eredményét megjegyzi, majd M41-re kiírja a megadott file-ba. Viszont azt, hogy hol és hogy mintavételezzen, azt neked kell megírni g-kódban. Az Autoleveler egy betöltött g-kód alapján generál egy mintavételező kódot helyetted. Sík terület mintavételezéséhez használhatod az Autolevelert is (akár előtte-utána M40-M41-gyel és akkor tárolja is az eredményt külön is), de ha közben forgatni is akarsz, akkor már neked kell megoldani. Annyira nem bonyolult feladat, szerintem. Keress rá a doksiban a G31 kifejezésre, több helyen is találsz infót, hogy mit tudsz vele csinálni.

Előzmény: Törölt felhasználó, 2017-12-01 14:27:34 [4750]


Törölt felhasználó    2017-12-01 14:27:34 [4750]

Hasonlóra gondolok mint az autolevel működése egy adott terület automatikus scannelése a beállított paraméterekkel ilyen feladatra létezik valami alkalmazás vagy megoldás?

Előzmény: dezsoe, 2017-12-01 14:12:58 [4749]


dezsoe | 2919    2017-12-01 14:12:58 [4749]

A Tools/Probe fülön beállítod a file-nevet és egyebeket, M40-nel indul a digitalizálás, M41-gyel leáll. A g-kódot, ami a mozgásokat és a G31-eket tartalmazza, azt neked kell megírni/generálni. Gyakorlatilag ennyi. A kapott file-t aztán már fel tudod dolgozni.

Előzmény: Törölt felhasználó, 2017-12-01 14:01:44 [4748]


Törölt felhasználó    2017-12-01 14:01:44 [4748]

X-Y-Z tengely és esetenként fogatóval kombinálva pl. egy teke bábu másolása , hogy kivitelezhető?

Előzmény: dezsoe, 2017-12-01 13:02:31 [4747]


dezsoe | 2919    2017-12-01 13:02:31 [4747]

Szia!
Pontosítsd, hogy mit értesz 4 tengely alatt. Egyébként, a digitalizálás be van építve, tehát semmi akadálya.

Előzmény: Törölt felhasználó, 2017-12-01 12:41:29 [4746]


Törölt felhasználó    2017-12-01 12:41:29 [4746]

Sziasztok!
Segítségetek szeretném kérni digitalizálás témában.
Probe-val 4tengelyen mi lenne a legegyszerűbb módja az UCCNC-ben végrehajtásnak?
Esetleg van plugin probe-hoz?


Törölt felhasználó    2017-12-01 12:24:19 [4745]

Igen és nagyon jól működik, de csak Modbus beszelő VFD-vel együtt.

Előzmény: exup, 2017-11-28 12:38:53 [4738]


Törölt felhasználó    2017-12-01 12:15:49 [4744]

Szia. Ha nem késő akkor vegyél inkább egy olyan VFD-t ami a Modbus működését garantálja. Én egy Bosch Rexroth EFC5610 modellt használok, nem sokkal drágább min a Huanyang de sokkal jobban működik és Modbus-al kezelem egyenesen az UCCNC-n keresztül. A plugin ami be van építve az UCCNC-be nagyon jól működik, hiba és fejfájás nélkül. Én legalábbis nagyon meg vagyok vele elégedve, az UCCNC-vel is meg a VFD-vel is. Nézd meg Inverter Drive Supermarket oldalát, én tőlük vettem a VFD-t, gyorsan küldték nagyon jó áron.

Előzmény: szokes, 2017-11-28 12:26:52 [4736]


CNCdrive | 442    2017-11-28 17:14:41 [4743]

A Huanyang frekiváltó tulajdonképpen nem működik Modbus-al.
Bár elvileg Modbus kommunikácós csatorna van rajta, de a fejlesztőknek nem sikerült jól megvalósítaniuk. Szóval ezt a frekiváltó egy eredetileg modbus-nak szánt, de valami másra sikerült egyedi kommunikációs protokolt használ.
Ezért sem az UCCNC beépített Modbus pluginjával nem működik sem a Mach3 brain-en keresztüli modbus kommunikációjával nem működik.
Mach3-hoz írt valaki egy plugint ami beszéli ennek a frekiváltónak a nyelvét, illetve UCCNC-hez is írt valaki egy plugint amit szintén ezt csinálja.
Amit Dezsoe linkelt ott ezt az UCCNC plugint lehet letölteni. Hogy ki használja azt nem tudom megmondani sajnos, de a fórum beírások alapján többen is használják.
Illetve a plugin írója már tovább is fejlesztette a plugint, hogy más frekiváltókkal is, amik valóban modbus nyelven működnek, hogy azokkal is működjön a plugin.

Előzmény: szokes, 2017-11-28 12:26:52 [4736]

szokes | 1651    2017-11-28 15:11:03 [4742]

Köszi


dezsoe | 2919    2017-11-28 13:55:59 [4741]

Személyes ismeretségemben nincs, de a fórumok alapján sokan használják. Egyébként meg töltsd le, próbáld ki, ingyen van. A CNCdrive-os fórumon is találsz hozzászólásokat, tapasztalatokat. Ha gond van vele, elég gyorsan szokta javítani a készítő.

Előzmény: szokes, 2017-11-28 13:31:21 [4740]


szokes | 1651    2017-11-28 13:31:21 [4740]

igen ezeket olvasgattam már, de a tapasztalat érdekelne, hogy van-e aki használja és működik


dezsoe | 2919    2017-11-28 12:42:35 [4739]

Szia!
Itt olvass utána.

Előzmény: szokes, 2017-11-28 12:26:52 [4736]


exup | 636    2017-11-28 12:38:53 [4738]

Úgy tudom van uccnc-hez is pluginja.

Előzmény: szokes, 2017-11-28 12:26:52 [4736]


exup | 636    2017-11-28 12:38:08 [4737]

Hát elsőre lövésem se volt hova kell a 0 és 3. Hiába olvasgattam a makrót. Aztán megfejtettem. Nagyon jól vált. Majd szerintem gombod teszek fel. X-A és A-X felirattal. Ne kelljen beírni se. Köszönöm újfent

Előzmény: dezsoe, 2017-11-28 12:24:45 [4735]


szokes | 1651    2017-11-28 12:26:52 [4736]

Lenne egy kérdésem...
nem tudom használ-e valaki kínai Huanyang VFD-t marómotorhoz.
Ehhez ugye létezik 2-3 plugin Mach3 alá amivel szoftveresen vezérelhető mod-buson keresztül.
Ezt lehetne adaptálni valahogy uCNC-hez is?
Szükségem lenne egy ethernetes vezérlőre de ez még visszatart...


dezsoe | 2919    2017-11-28 12:24:45 [4735]

Muszáj neki működni, nem szoktam tesztelés nélküli cuccot felrakni. Pláne ilyet, amivel sokat lehet ártani... Azért, vígasztaljon a tudat, hogy nem elsőre működött, volt néhány vakvágány...

Előzmény: exup, 2017-11-28 12:17:54 [4733]


exup | 636    2017-11-28 12:19:02 [4734]

Pont ilyen makrót akartam én is írni...csak hát én hülye vagyok hozzá

Előzmény: exup, 2017-11-28 12:17:54 [4733]


exup | 636    2017-11-28 12:17:54 [4733]

Jajj, de babán működik elsőre.
Na mindjárt tolok élesbe egy égetést pl
Köszönöm a segítséget.

Előzmény: dezsoe, 2017-11-28 07:46:17 [4730]

svejk | 32802    2017-11-28 11:01:45 [4732]

No, oké túltettem magam a dolgon jó ez így ahogy van, majd megszokom/megoldom.
Csak néha úgy kétségbe tudok esni...

Egy a lényeg, ne vesszen el a szoftverfejlesztők lendülete.

Előzmény: svejk, 2017-11-27 20:30:56 [4724]


exup | 636    2017-11-28 07:53:28 [4731]

Így is köszönöm

Előzmény: dezsoe, 2017-11-28 07:46:17 [4730]


dezsoe | 2919    2017-11-28 07:46:17 [4730]

Csak késő volt már az este: benne maradt pár dolog. Akkor helyesen:

// ================================================================================================
// 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
myAS3.Updatecomboboxselection(0, Base10); // Slaveaxis = "";
}

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

Előzmény: exup, 2017-11-28 07:36:51 [4729]


exup | 636    2017-11-28 07:36:51 [4729]

Király vagy...köszi. Délután meglesem.

Előzmény: dezsoe, 2017-11-27 23:39:27 [4728]


dezsoe | 2919    2017-11-27 23:39:27 [4728]

No. Több megszakítással, de csak befejeztem. Mxxxxx E<egyiktengely> H<másiktengely> hívással a két tengely minden adatát átcseréli. A tengelyek 0..5-ig az XYZABC-nek felelnek meg. Ha rányomsz a Save settings-re, akkor el is mented a megcserélt tengelyeket, úgyhogy csak akkor nyomd, ha tényleg kell. Mondjuk, vissza tudod cserélni, tehát nagy baj nincs, csak legfeljebb legközelebb csodálkozol, hogy miért az a tengely megy és hova...

// ================================================================================================
// 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 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;
// 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;
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);
// 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
myAS3.Updatecomboboxselection(0, Base10); // Slaveaxis = "";
}

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

Előzmény: exup, 2017-11-27 13:29:34 [4710]


szf | 4376    2017-11-27 22:26:40 [4727]

és ha beteszel egy gombot ami mozgat egy relét ez majd
imitálja , hogy a végállás OK. illetve csak azt az irányt engedélyezi ahogyan le tudsz jönni a kapcsolóról.

Előzmény: svejk, 2017-11-27 20:38:27 [4725]


exup | 636    2017-11-27 21:10:09 [4726]

Viccnek szántam..amit korábban használtam az külön figyelte. Ez most nem. Megszoktam, nincs is külön pin-re téve. Engem mondjuk már nem zavar.

Előzmény: svejk, 2017-11-27 20:30:56 [4724]


svejk | 32802    2017-11-27 20:38:27 [4725]

Az iparban egyébként valóban így van, hogy ha limitre fut valami akkor ott is van egy override kapcsoló vagy nyomógomb, esteleg egy bitet kell átállítani.
Az is igaz, hogy ott is általában csak egyszerűen sorba van kötve a két végállás kapcsoló.
De a nagy gépeknél nagyon ritkán fordul elő ilyen eset.
(Bár épp nemrég volt egy szíjszakadás egy eszterga X szánjánál)

De ugye hobbyban kikapcsolt állapotban sokszor eltologathatóak a szánok akarva vagy akaratlanul így itt ez gyakoribb hiba.

Előzmény: frob, 2017-11-27 20:25:20 [4723]


svejk | 32802    2017-11-27 20:30:56 [4724]

De most tényleg... nem ad plusz szolgáltatást a 2 végállás + 1 Home kapcsoló az egy szem árvához képest?
Vagy csak -sajnos nem először - én vagyok béna, értetlen?

A Override LED-el meg majd meghívatok egy makrot, hogy vegye le a JOG %-ot alacsonyra.

Előzmény: exup, 2017-11-27 19:49:50 [4722]


frob | 2250    2017-11-27 20:25:20 [4723]

ez a módi nem csak az uccnc-nél van, grbl is hasonló (mach-ot nem ismerem), és valóban értelmetlen a dolog (legalább is én is úgy gondolom), jó lenne ha a másik irányban el tudna indulni, az az le lehetne állni róla, mondjuk egy reset után ...

Előzmény: svejk, 2017-11-27 19:20:19 [4719]

exup | 636    2017-11-27 19:49:50 [4722]

Most jössz rá, hogy az UC100 is elég lett volna? :D

Előzmény: svejk, 2017-11-27 19:37:35 [4721]


svejk | 32802    2017-11-27 19:37:35 [4721]

Tulajdonképpen a működésnek ebben a formájában nem is látok semmilyen előnyt a két végállás külön bemenetre való konfigurálásában.

Előzmény: svejk, 2017-11-27 19:20:19 [4719]


svejk | 32802    2017-11-27 19:22:05 [4720]

Legalább azt meg kellene oldani, hogy az Override bekapcsolásakor csak kis sebességgel lehessen mozogni.

Előzmény: svejk, 2017-11-27 19:20:19 [4719]


svejk | 32802    2017-11-27 19:20:19 [4719]

Elöljáróban bevallom, eddig javarészt szervos gépekkel foglakoztam és ott az esetleges végállásra futásokat elintézték a servodrive-ok, az UCCNC nem is tudott róluk.


Most egy javarészt léptetős, de jelentős áttételű, speciális gépnél nem tetszik nekem ez a végállás kezelés.

Ha pl. X+ ban haladok akkor az X- végállásra is reagál.
De ez még nem is lenne olyan nagy baj.

Viszont az nagyon nem tetszik, hogy ha valamelyik végálláson vagyok mondjuk az X- -on akkor bekapcsoláskor csak a Limits override-al tudok lejönni.
X+ ba ilyenkor miért nem enged le simán?
De főleg miért enged Override-olva X- -ba, ráadásul akár 100% JOG sebességgel?
Ebből nekem törés, szakadás lesz.

Sejtem én hogy azért van ez mert akár 1 db bemenettel is lekezelhető az összes végállás és referencia, de ha külön konfigurálok minden kapcsolóra más-más bemenetet akkor észrevehetné a logikát.


exup | 636    2017-11-27 18:40:42 [4718]

Te egy úr vagy

Előzmény: dezsoe, 2017-11-27 18:35:39 [4717]


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

Időrend:
Oldal 93 / 188 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   89  90  91  92  93  94  95  96  97   Következő ►  Utolsó ►|


 ◊