Forumindex Snillen Spekulerar
256 Dagar på ett år och 16 valörer i leken...
 
 Vanliga frågorVanliga frågor   SökSök   MedlemslistaMedlemslista   AnvändargrupperAnvändargrupper   Bli medlemBli medlem 
 ProfilProfil   Logga in för att läsa dina meddelandenLogga in för att läsa dina meddelanden   Logga inLogga in 

Dyna myte verktygsväxlare
Gå till sida Föregående  1, 2, 3  Nästa
 
Skapa nytt ämne   Svara på ämnet    Forumindex -> Projekt
Föregående ämne :: Nästa ämne  
Författare Meddelande
Toomuch
Spambot


Registreringsdatum: 13 oktober 2006
Inlägg: 6555
Ort: Crimevillage

InläggPostat: 07 jan 2019 22:51:12    Rubrik: Svara med citat

Höjden vid växling.

En manuel verktygsväxling😀



20190107_205752.jpg

Höjden när bommen är inne för att hämta eller lämna verktyg
20190107_205752.jpg: 6.22 MB , Visad 246 Gånger,


20190107_205734.jpg


20190107_205734.jpg: 3.61 MB , Visad 250 Gånger,



Senast ändrad av Toomuch den 07 jan 2019 23:10:53, ändrad totalt 1 gång
Till överst på sidan
Användarens profil Skicka personligt meddelande
Toomuch
Spambot


Registreringsdatum: 13 oktober 2006
Inlägg: 6555
Ort: Crimevillage

InläggPostat: 07 jan 2019 22:57:00    Rubrik: Svara med citat

wrep skrev:
Är den där omron-givaren originalmonterad tror du? Tycker den ser ditmekad ut efteråt? Rolling Eyes


Jag vet inte. Kablarna är ganska integrerade jag vet inte om dom har testat lite olika lösningar om dom har haft problem med homingivarna för det är tre givare på karusellen och den enda som ser hyffsad ut är "orginalet" så att säga. (Den svarta i bilden). men är nog inge bra med en mekanisk givare på en verktygsväxlare.
Men börjar upptäcka lite småsaker tex så passar inte styrningen för clamp unclamp motorn i sitt säte. inte tvunget men man kan ju undra varför när dom har bemödat sig med att fräsa ett säte.
Men den är väl helt enkelt lite amerikansk..Smile
Till överst på sidan
Användarens profil Skicka personligt meddelande
Toomuch
Spambot


Registreringsdatum: 13 oktober 2006
Inlägg: 6555
Ort: Crimevillage

InläggPostat: 07 jan 2019 23:15:40    Rubrik: Svara med citat

Jag har prövat hur maskinen kommer ihåg vilket verktyg som sitter i.

Vid "finstopp" utloggning och avstängning när datorn har stängt ner.
Då kommer den ihåg vilket verktyg den har i men den kastar bort H komandot H är lika med inläsning av verktygshöjd från registret.
Dock vid uppstart (se på bilden nere i vänstra hörnan). så säger programmet att den har verktyg 2 i och tidigare verktyg 1 . även fast det står verktyg 4 i rutan för vilket verktyg som sitter i.


Det känns lite konstigt. Vid " Fulstopp" (Typ rycka sladden) så kommer den inte ihåg vilket verktyg den har i . inte ens om man liksom kör maskinen lite.
Gissar på att den läser in sånt vid avstängning i något minne..


Bild kommer lite senare..
Till överst på sidan
Användarens profil Skicka personligt meddelande
sx3
MuttroSpammo


Registreringsdatum: 17 februari 2011
Inlägg: 2930

InläggPostat: 10 jan 2019 15:55:38    Rubrik: Svara med citat

Insåg att jag postat i fel tråd. Smile

Jag har iaf version 0.001 av scriptet redo att testa.
Knappen skall förhoppningsvis inte fungera när man kör G-kod, utan bara när maskin står i stand-by.

ISIG_INPUT1 = denna får man mappa till rätt ingång där man tagit in signalen.

Har i koden förutsatt att karusellen är B-axeln

Osäker på om G91 är rätt, har för mig att det är från nuvarande postion?

Kod:
if (sig == mc.ISIG_INPUT1) and (state == 1) then
hSig, rc = mc.mcSignalGetHandle( inst, mc.OSIG_RUNNING_GCODE )
   if rc == 0 then
      GC_State = mc.mcSignalGetState(hSig)
      if GC_State == 1 then --GCode is running, better not let the turret to be turned!
         wx.wxMessageBox('GCode is running')
      else --Gcode is not running, it should e safe to rotate the turret!
            mcCntlGCodeExecuteWait(inst, "G91 B36") --Rotate the turret 36 degrees
         wx.wxMessageBox('Sucessfully rotated the turret! FTW!')
      end
   else
      wx.wxMessageBox('rc returned '..tostring(rc))
   end
end


Till överst på sidan
Användarens profil Skicka personligt meddelande
sx3
MuttroSpammo


Registreringsdatum: 17 februari 2011
Inlägg: 2930

InläggPostat: 11 jan 2019 11:39:16    Rubrik: Svara med citat

Jag har lite att göra, det är ju egentligen fel att använda B-axeln för detta.
Man bör använda en OB-axel för detta, dock är OB axlarna "out-of-band", så dom svarar inte på G-kod som XYZABC utan man måste simulera att man JOG'ar axeln till rätt position.

Jag tror att jag är på rätt spår, men behöver göra lite mer efterforskningar. Smile
Tänkte även försöka lägga in att den måste vara homad innan man kan köra karusellen.

Version 0.002 av koden

Kod:
if (sig == mc.ISIG_INPUT1) and (state == 1) then
hSig, rc = mc.mcSignalGetHandle( inst, mc.OSIG_RUNNING_GCODE )
   if rc == 0 then
      GC_State = mc.mcSignalGetState(hSig)
      if GC_State == 1 then --GCode is running, better not let the turret to be turned!
         wx.wxMessageBox('GCode is running')
      else --Gcode is not running, it should e safe to rotate the turret!
            mc.mcJogIncStart(inst, 8, 0.1) --Axis 8
            mc.mcJogIncStop(inst, 8, 360) --360*0.1=36 degrees
         wx.wxMessageBox('Sucessfully rotated the turret! FTW!')
      end
   else
      wx.wxMessageBox('rc returned '..tostring(rc))
   end
end
Till överst på sidan
Användarens profil Skicka personligt meddelande
sx3
MuttroSpammo


Registreringsdatum: 17 februari 2011
Inlägg: 2930

InläggPostat: 11 jan 2019 20:24:58    Rubrik: Svara med citat

Okej, det här eskalerade lite.. Den här ingången från knappen skall ju ligga och lyssna hela tiden, så den skall in PLC delen av Mach's huvudkod, upplägget där är att man indexerar upp signaler i en tabellliknande form, så koden utformas på ett annat sätt än jag skrivit hittills.

Jag har skrivit om koden som den borde vara, samt även lagt till kontroll på att axeln är homad, dock är jag inte helt hundra på den biten, så jag har gjort två varianter att testa.

Version 0.003

Kod:
[mc.ISIG_INPUT1] = function (state)
   if (state == 1) then
      hSig, rc = mc.mcSignalGetHandle( inst, mc.OSIG_RUNNING_GCODE )
      if rc == 0 then
         GC_State = mc.mcSignalGetState(hSig)
         if GC_State == 1 then --GCode is running, better not let the turret to be turned!
            wx.wxMessageBox('GCode is running')
         else --Gcode is not running, it should e safe to rotate the turret!
            hSigHome, rc = mc.mcMotorIsHomed(inst, 8)
            HomeState = mc.mcSignalGetState(hSigHome)
            if HomeState == 1 then -- The turret motor seem to be homed, lest rotate the turret
               mc.mcJogIncStart(inst, 8, 0.1) --Axis 8
               mc.mcJogIncStop(inst, 8, 360) --360*0.1=36 degrees
               wx.wxMessageBox('Sucessfully rotated the turret! FTW!')
            else
               wx.wxMessageBox('Turret motor is not homed, please home the machine!')
            end
         end
      else
         wx.wxMessageBox('rc returned '..tostring(rc))
      end
   end
end,



Version 0.004
Kod:
[mc.ISIG_INPUT1] = function (state)
   if (state == 1) then
      hSig, rc = mc.mcSignalGetHandle( inst, mc.OSIG_RUNNING_GCODE )
      if rc == 0 then
         GC_State = mc.mcSignalGetState(hSig)
         if GC_State == 1 then --GCode is running, better not let the turret to be turned!
            wx.wxMessageBox('GCode is running')
         else --Gcode is not running, it should e safe to rotate the turret!
            hSigHome, rc = mc.mcSignalGetHandle(inst, mc.mcMotorIsHomed(inst, 8))
            HomeState = mc.mcSignalGetState(hSigHome);
            if HomeState == 1 then -- The turret motor seem to be homed, lets rotate the turret
               mc.mcJogIncStart(inst, 8, 0.1) --Axis 8
               mc.mcJogIncStop(inst, 8, 360) --360*0.1=36 degrees
               wx.wxMessageBox('Sucessfully rotated the turret! FTW!')
            else
               wx.wxMessageBox('Turret motor is not homed, please home the machine!')
            end
         end
      else
         wx.wxMessageBox('rc returned '..tostring(rc))
      end
   end
end,
Till överst på sidan
Användarens profil Skicka personligt meddelande
peter
Outlaw Spammer


Registreringsdatum: 10 oktober 2006
Inlägg: 1786
Ort: Saltsjö-Boo

InläggPostat: 13 jan 2019 21:01:09    Rubrik: Svara med citat

snurrade verktygsväxlaren när ni skiftade med x/y/z axeln ?
_________________
Varje "varför" har sitt "därför"
Till överst på sidan
Användarens profil Skicka personligt meddelande Skicka e-post
Toomuch
Spambot


Registreringsdatum: 13 oktober 2006
Inlägg: 6555
Ort: Crimevillage

InläggPostat: 13 jan 2019 22:44:52    Rubrik: Svara med citat

Ja det gjorde den. Vi körde den som fjärde axel..
Manne har gjort fel någonstans i scriptet. Jag försökte förklara för honom hur det skulle vara men han vägrade lyssna.. Tror han tycker att jag bara duger till att steka korv..Smile
Till överst på sidan
Användarens profil Skicka personligt meddelande
sx3
MuttroSpammo


Registreringsdatum: 17 februari 2011
Inlägg: 2930

InläggPostat: 13 jan 2019 22:58:45    Rubrik: Svara med citat

Felet ligger i pendanten Smile (På riktigt alltså.. ) Vi följde manualen för att få in den i mach till punkt och pricka, och det vart vårt fall när vi ska få in andra funktioner. Hade vi vetat bättre hade vi gjort avsteg från den manualen. Smile

Fast det är ju roligare att steka korv än att jogga pendanten motsvarande 60 varv på fjärde axeln, det var ju rena slavgörat Very Happy
Till överst på sidan
Användarens profil Skicka personligt meddelande
wrep
The Evil Admin


Registreringsdatum: 10 oktober 2006
Inlägg: 9793
Ort: Sorunda

InläggPostat: 14 jan 2019 13:01:09    Rubrik: Svara med citat

Manne och jag diskuterade att det lättaste blir nog att sätta karusellen som 5e axel och sen styra den via g-kod i subprogram som man anropar via script. Vad tror ni om det?
_________________
// Per
Till överst på sidan
Användarens profil Skicka personligt meddelande Besök användarens hemsida
sx3
MuttroSpammo


Registreringsdatum: 17 februari 2011
Inlägg: 2930

InläggPostat: 14 jan 2019 13:33:03    Rubrik: Svara med citat

Ja, åtminstone som en 6'e/C axel som är är kordinerad.
Köra G-kod med "riktiga" kordinater på karusellen blir nog mångfaldigt enklare och säkrare än att hålla koll på varende steg och kalkylera i scriptet för att veta vart karusellen verkligen befinner sig om man väljer out-of-band vägen.

Man köra G-kod med 1 rads kod i M6 LUA scriptet, vilket nog är enklare än att anropa ett subprogram tror jag. "mcCntlGCodeExecuteWait(inst, "G91 B36")"

Bra att testa OMRON givaren om den är som vi misstänkte, känner av om det ligger en chuck i just den hållaren. Då kan man ju ha med det som en kontroll i scriptet också.
Till överst på sidan
Användarens profil Skicka personligt meddelande
wrep
The Evil Admin


Registreringsdatum: 10 oktober 2006
Inlägg: 9793
Ort: Sorunda

InläggPostat: 14 jan 2019 13:51:25    Rubrik: Svara med citat

Något som också vore bra är att ha en givare som på något vis kunde känna av om man hade ett verktyg i spindeln.
Då slipper man att maskinen kastar verktyg i bordet om den hamnar fel i sekvensen.

_________________
// Per
Till överst på sidan
Användarens profil Skicka personligt meddelande Besök användarens hemsida
sx3
MuttroSpammo


Registreringsdatum: 17 februari 2011
Inlägg: 2930

InläggPostat: 14 jan 2019 16:21:40    Rubrik: Svara med citat

Fått svar från W9TD gällande in/utgångarna. Det vi prövade borde funkat, dock framkom det här att vi inte kan ändra 2-9 på port 2 till utgångar, bara ingångar. (fast där har vi tagit in Knapp+homin på P2P2-3, så det bör ju inte bli ett problem)

Kod:

The ESS can assign any output signal to any output pin, or to any bi-directional pin if set to output mode. Please pay attention to your BOB to make sure it can output on that bi-directional pin, because some are set to input only (like port 2, pins 2-9 of the C25 being input only on the BOB).

Port 1 pins 1-9, 14, 16 and 17 should work as that step/dir output for you though on the C25.
Till överst på sidan
Användarens profil Skicka personligt meddelande
Toomuch
Spambot


Registreringsdatum: 13 oktober 2006
Inlägg: 6555
Ort: Crimevillage

InläggPostat: 14 jan 2019 18:18:06    Rubrik: Svara med citat

Det end Jag tycker är synd att då bränner man skeppet 5e axel möjligheten. Eller man bränner den inte men den dagen får man ta allt från början så att säga.
Hur gör mach:en när den räknar då. man kan inte hitta och kopiera deras sätt att göra det på?

Nästa är ju att man sätter fler givare på karusellen så man har en homing och fler för varje verktyg.

Vet att jag är lite kinkig men jag vet ju att jag utvecklar mig hela tiden och fleraxlig körning är ju en sån sak som ligger i mina långsiktiga planer så jag vill åtminstone reflektera över alternativ.
Tex hur sårt det skulle vara att köra spindeln i stället för att frilägga en step axel. där är det ju kontinuerligt tänker jag..
Till överst på sidan
Användarens profil Skicka personligt meddelande
sx3
MuttroSpammo


Registreringsdatum: 17 februari 2011
Inlägg: 2930

InläggPostat: 14 jan 2019 19:13:05    Rubrik: Svara med citat

Fast då borde vi ju kanske skaffat en annan motion controller än ESS som har stöd för fler än 6 motorer.

Hur machen gör vet vi inte och det går inte att hitta heller, det ligger kompilerat någonstans i kärnan. Det finns fördefinerade variabler man kan använda när man skriver script, men så länge utvecklarna inte har med stödet i koden i kärnan så finns det inget att hämta heller. Mach är ju inte fritt programmerbart i den bemärkelsen.

Man kan ju sätta ett homing sekvens inför varje vertygsbyte, då utgår man alltid från 0 och sedan plussar på rätt antal steg till verktyget som skall användas. Det tar ju dock rätt mycket längre tid om den skall ta ett ärovarv.
Till överst på sidan
Användarens profil Skicka personligt meddelande
Visa inlägg nyare än:   
Skapa nytt ämne   Svara på ämnet    Forumindex -> Projekt Alla tider är GMT + 2 timmar (svensk sommartid)
Gå till sida Föregående  1, 2, 3  Nästa
Sida 2 av 3

 
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan bifoga filer i detta forum
Du kan ladda ner filer i detta forum


Powered by phpBB © 2001, 2005 phpBB Group
Swedish translation by phpBB Sweden and Virtuality © 2003-2006