Föregående ämne :: Nästa ämne |
Författare |
Meddelande |
Toomuch Spambot
Registreringsdatum: 13 oktober 2006 Inlägg: 6555 Ort: Crimevillage
|
Postat: 07 jan 2019 22:51:12 Rubrik: |
|
|
Höjden vid växling.
En manuel verktygsväxling😀
|
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: 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 |
|
|
Toomuch Spambot
Registreringsdatum: 13 oktober 2006 Inlägg: 6555 Ort: Crimevillage
|
Postat: 07 jan 2019 22:57:00 Rubrik: |
|
|
wrep skrev: | Är den där omron-givaren originalmonterad tror du? Tycker den ser ditmekad ut efteråt? |
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..
|
|
Till överst på sidan |
|
|
Toomuch Spambot
Registreringsdatum: 13 oktober 2006 Inlägg: 6555 Ort: Crimevillage
|
Postat: 07 jan 2019 23:15:40 Rubrik: |
|
|
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 |
|
|
sx3 MuttroSpammo
Registreringsdatum: 17 februari 2011 Inlägg: 2930
|
Postat: 10 jan 2019 15:55:38 Rubrik: |
|
|
Insåg att jag postat i fel tråd.
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 |
|
|
sx3 MuttroSpammo
Registreringsdatum: 17 februari 2011 Inlägg: 2930
|
Postat: 11 jan 2019 11:39:16 Rubrik: |
|
|
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.
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 |
|
|
sx3 MuttroSpammo
Registreringsdatum: 17 februari 2011 Inlägg: 2930
|
Postat: 11 jan 2019 20:24:58 Rubrik: |
|
|
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 |
|
|
peter Outlaw Spammer
Registreringsdatum: 10 oktober 2006 Inlägg: 1786 Ort: Saltsjö-Boo
|
Postat: 13 jan 2019 21:01:09 Rubrik: |
|
|
snurrade verktygsväxlaren när ni skiftade med x/y/z axeln ?
_________________ Varje "varför" har sitt "därför" |
|
Till överst på sidan |
|
|
Toomuch Spambot
Registreringsdatum: 13 oktober 2006 Inlägg: 6555 Ort: Crimevillage
|
Postat: 13 jan 2019 22:44:52 Rubrik: |
|
|
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..
|
|
Till överst på sidan |
|
|
sx3 MuttroSpammo
Registreringsdatum: 17 februari 2011 Inlägg: 2930
|
Postat: 13 jan 2019 22:58:45 Rubrik: |
|
|
Felet ligger i pendanten (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.
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
|
|
Till överst på sidan |
|
|
wrep The Evil Admin
Registreringsdatum: 10 oktober 2006 Inlägg: 9793 Ort: Sorunda
|
Postat: 14 jan 2019 13:01:09 Rubrik: |
|
|
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 |
|
|
sx3 MuttroSpammo
Registreringsdatum: 17 februari 2011 Inlägg: 2930
|
Postat: 14 jan 2019 13:33:03 Rubrik: |
|
|
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 |
|
|
wrep The Evil Admin
Registreringsdatum: 10 oktober 2006 Inlägg: 9793 Ort: Sorunda
|
Postat: 14 jan 2019 13:51:25 Rubrik: |
|
|
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 |
|
|
sx3 MuttroSpammo
Registreringsdatum: 17 februari 2011 Inlägg: 2930
|
Postat: 14 jan 2019 16:21:40 Rubrik: |
|
|
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 |
|
|
Toomuch Spambot
Registreringsdatum: 13 oktober 2006 Inlägg: 6555 Ort: Crimevillage
|
Postat: 14 jan 2019 18:18:06 Rubrik: |
|
|
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 |
|
|
sx3 MuttroSpammo
Registreringsdatum: 17 februari 2011 Inlägg: 2930
|
Postat: 14 jan 2019 19:13:05 Rubrik: |
|
|
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 |
|
|
|