Hírek:

Fontos tudnivalók a migrációval kapcsolatban, Kérlek nézd meg a Régi fórumról új fórumra való költözés

Main Menu

Mach3 CNC

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

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

xfg6v697j

A te gondod ta itt egy script
A meghívára a progiban.
P = 0 alapheylzetbe áll 'egyes főorsó'
P = 1 kettes főorsó
p = 2 hármas főorsó
Mxxx P szerszámszám
 
script:
If IsLoading() = false Then
'_______itt kellmegadni az 1-es szerszámra vonatkozó eltolásokat___
X1 = 100
Y1 = 0
Z1 = 0
A1 = 0
B1 = 0
C1 = 0
'_______itt kellmegadni az 2-es szerszámra vonatkozó eltolásokat___
X2 = 0
Y2 = 100
Z2 = 0
A2 = 0
B2 = 0
C2 = 0
szerszamszam = param1()
X_ = GetOemDro(800)
Y_ = GetOemDro(801)
Z_ = GetOemDro(802)
A_ = GetOemDro(803)
B_ = GetOemDro(804)
C_ = GetOemDro(806)
 
Select Case szerszamszam
           Case 0
               Code "G52 X0 Y0 Z0 A0 B0 C0"
               Code "G0 X" & X_ & "Y" & Y_ & "Z" & Z_ & "A" & A_ & "B" & B_ & "C" & C_  
                 While IsMoving()  
                 Wend  
           Case 1
               Code "G52 X0 Y0 Z0 A0 B0 C0"
               Code "G0 X" & X_ & "Y" & Y_ & "Z" & Z_ & "A" & A_ & "B" & B_ & "C" & C_  
                 While IsMoving()  
                 Wend  
              Code "G52 X" & X1 & "Y" & Y1 & "Z" & Z1 & "A" & A1 & "B" & B1 & "C" & C1  
              Code "G0 X" & X1 & "Y" & Y1 & "Z" & Z1 & "A" & A1 & "B" & B1 & "C" & C1  
                 While IsMoving()  
                 Wend  
           Case 2
               Code "G52 X0 Y0 Z0 A0 B0 C0"
               Code "G0 X" & X_ & "Y" & Y_ & "Z" & Z_ & "A" & A_ & "B" & B_ & "C" & C_  
                 While IsMoving()  
                 Wend  
              Code "G52 X" & X1 & "Y" & Y1 & "Z" & Z1 & "A" & A1 & "B" & B1 & "C" & C1  
              Code "G0 X" & X2 & "Y" & Y2 & "Z" & Z2 & "A" & A2 & "B" & B2 & "C" & C2  
                 While IsMoving()  
                 Wend  
Case Else
              MsgBox("Nincs ilyen szerszám!")
End Select
               
End If
 
 

xfg6v697j

Ádám gépén valóban a nagyobb Z hordozza a kicsit,és ezért neki olyant javasoltam,hogy a kicsit csak a szerszám hosszának a korrigálására használja,és a munkát a nagy Z végezze végig.
Így nem kell neki váltogatnia a G kodban,hogy  néha a Z a Z ,náha meg a B a Z.

besirkyjh

Értem , köszi .
 
Hát nem is tudom , nekem az automata egyszerübbnek tünik és szélesebb körben is használhato .
Na de az ára ?!  

jv7pu3a5p

Köszi szépen. Mondjuk én másképp akartam megcsinálni ezt a részét, majd mérlegelek melyik a jobb.
De az eredeti kérdésemre ha jól látom ez nem ad választ.
Hogyan tudom bekapcsolni a relékkel a 3 főorsót külön-külön? Ezt hol állítom be a MACHban?
Vagy csak vak vagyok... :)

xfg6v697j

A mach nem kezel alapból több főorsót.
De megoldható,PL: ebben a scriptben is kapcsolható lenne,csak azt nem vettem bele.
De M kód írásával megoldható,csak neked kell hozzárendelni a relékhez valamelyik outputot a ports and pins-ben.

Béni

Itt egy vázlat, ami alapján meg lehet csinálni a több főorsó kapcsolgatását.  
(M333.m1s néven mentendő a makrók mappájába.)
 
'Több főorsó kapcsolása
 
Sub Main()
 
w=1000
osz=Param1() ' P szóval programozott orsószám
 
 
 
  If osz=0 Then
    DeactivateSignal (OUTPUT1) ƈ. főorsó ki
    DeactivateSignal (OUTPUT2) Ɖ. főorsó ki
    DeactivateSignal (OUTPUT3) Ɗ. főorsó ki
    DoSpinCW()
  End If
 
  If osz=1 Then
    DoSpinStop()   ' 1. főorsó ki
    DeactivateSignal (OUTPUT2) Ɖ. főorsó ki
    DeactivateSignal (OUTPUT3) Ɗ. főorsó ki
    ActivateSignal (OUTPUT1) ƈ. főorsó be
    Sleep(w)    ' Felpörgésre vár
  End If
 
 
 
  If osz=2 Then
    DoSpinStop()   ' 1. főorsó ki
    DeactivateSignal (OUTPUT1) ƈ. főorsó ki
    DeactivateSignal (OUTPUT3) Ɗ. főorsó ki
    ActivateSignal (OUTPUT2) Ɖ. főorsó be
    Sleep(w)
  End If
 
  If osz=3 Then
    DoSpinStop()   ' 1. főorsó ki
    DeactivateSignal (OUTPUT2) Ɖ. főorsó ki
    DeactivateSignal (OUTPUT1) ƈ. főorsó ki
    ActivateSignal (OUTPUT3) Ɗ. főorsó be
    Sleep(w)
  End If
 
End Sub
 
 
Teszt G-kód: (P az orsó sorszáma. A 0-ás az alap.)
 
M333 P0
M0
M333 P1
M0
M333 P2
M0
M333 P3
M0
M30

xfg6v697j

Ha ezt hozzáfűzi az enyémhez meglessz a kopmlett scrip a három főorsó ki/be kapcsolásához,és a korrekcióhoz.

jv7pu3a5p

[#worship]
Leköteleztek uraim!! Köszönöm mindenkinek.
Ezzel már a kutya farkát is kapcsolgathatom, ha kiegészítgetem.
Milyen nyelv ez egyébként?
 
 
 

Béni

Itt sok mindent megtalálsz, ami a témában segítségedre lehet.   :)
 
http://benishare.weebly.com/mach3-dokumentaacutecioacutek.html" TARGET=_fnew>Mach3 segédanyagok

xfg6v697j

Visual basic,csak egy kicsit a mach-ra szabva.

jv7pu3a5p

Ismét köszi. Jól átnézem majd.
Basic nem a szívem csücske, de arra kevés dologra majd megküzdök vele. :)

jv7pu3a5p

Több paraméter is megadható szóközzel elválasztva(Pascalból indulok ki, ott így működik)?
így pl:
M333 P0 P1000
 
És akkor a subrutinban így hivatkozva rá:
 
w = Param2()
 
Így a felpörgés ideje is G kódból állítható lenne.
 

xfg6v697j

Igen lehet több paramétert is megadni.
Számszerint hármat.
Ezek: P , Q , R
Az R paramáterrel csínnyán kell bánni,mert a régi mach verziók,még nem ismerik, csak a V3x fölöttiek.

jv7pu3a5p


Béni

Helyesen:
 
M333 P0 Q1000
 
A többi rendben.