Nytt cnc projekt fortsätter

Robot, CNC, Pneumatik, Hydraulik, mm
H.O
Inlägg: 5916
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Nytt cnc projekt fortsätter

Inlägg av H.O »

Mmm, nej det där funkar ju inte.... Funktionen GetOEMDRO returnerar värdet i den DRO du skickar i funktionsanropet men du talar ju inte om VART funktionen skall "lägga" värdet, alltså variable = GetOEMDRO(202).

Sen är mitt ständiga tips när det gäller att macron/script i Mach3 att använda OPTION EXPLICT, det gör att man MÅSTE deklarera alla variabler innan man använder dom vilket i sin tur gör det MYCKET enklare att hitta felen man oundvikligen gör.

Kod: Markera allt

OPTION EXPLICIT
DIM CommandedRPM as Integer     ' Deklarera variabel
CommandedRPM = GetOEMDRO(202)   ' Hämta värde från DRO202, stoppa det i CommandedRPM-variabeln
Till sist, i det här fallet är det är inte strikt nödvändigt att läsa DRO'n till en variabel först. Du kan lika gärna köra din SELECT CASE direkt mot GetOEMDRO-anropet, alltså

Kod: Markera allt

Select Case GetOEMDRO(202)
  Case 0
    MsgBox("Varvtal 0rpm")
  Case 0 To 100
    MsgBox("Varvtal mellan 0 och 100rpm")
  Case 101 To 200
    MsgBox("Varvtal mellan 101 och 200rpm")
  Case Else
    MsgBox("Something else")
  End Select
/H.
makino
Inlägg: 169
Blev medlem: 27 februari 2010, 19:54:50
Ort: Malmö
Kontakt:

Re: Nytt cnc projekt fortsätter

Inlägg av makino »

Testade detta nu, Men hur får man en led att slockna när man väljer ett annat värde?
går det att skriva så att man skickar signalen till Mach3 IO pins 0-98 så man kan välja det i pokeys
isället för att tända leds

Kod: Markera allt

Option Explicit
Dim CommandedRPM As Integer     ' Deklarera variabel
CommandedRPM = GetOEMDRO(205)   ' Hämta värde från DRO202, stoppa det i CommandedRPM-variabeln

Select Case GetOEMDRO(202)

  Case 0 To 50
    MsgBox("Varvtal mellan 0 och 50rpm")
    Call setuserled(1001,1)  
  
  Case 51 To 100
    MsgBox("Varvtal mellan 51 och 100rpm")
    Call setuserled(1002,1)
    
  Case 101 To 200
    MsgBox("Varvtal mellan 101 och 200rpm")
    Call setuserled(1003,1)

  Case Else
    MsgBox("Something else")
    Call setuserled(0)
  End Select






makino
Inlägg: 169
Blev medlem: 27 februari 2010, 19:54:50
Ort: Malmö
Kontakt:

Re: Nytt cnc projekt fortsätter

Inlägg av makino »

Gjorde lite annat här nu fungerar allt, Men endast när jag kör i VB Script editor, händer inget när jag skriver i DROn

Kod: Markera allt




Call setuserled(1019,0)'--High
Call setuserled(1020,0)'--Low

Call setuserled(1001,0)'-
Call setuserled(1002,0)'--
Call setuserled(1003,0)'---
Call setuserled(1004,0)'----
Call setuserled(1005,0)'-----
Call setuserled(1006,0)'------
Call setuserled(1007,0)'-------
Call setuserled(1008,0)'--------
Call setuserled(1009,0)'---------
Call setuserled(1010,0)'----------Gear Led 1-18 No function visual
Call setuserled(1011,0)'--------
Call setuserled(1012,0)'-------
Call setuserled(1013,0)'------
Call setuserled(1014,0)'-----
Call setuserled(1015,0)'----
Call setuserled(1016,0)'---
Call setuserled(1017,0)'--
Call setuserled(1018,0)'-
Call setuserled(1021,0)'1----
Call setuserled(1022,0)'2-----
Call setuserled(1023,0)'3------
Call setuserled(1024,0)'4-------
Call setuserled(1025,0)'5-------- Gear 1-9
Call setuserled(1026,0)'6-------
Call setuserled(1027,0)'7------
Call setuserled(1028,0)'8-----
Call setuserled(1029,0)'9----

Option Explicit
Dim CommandedRPM As Integer     ' Deklarera variabel
CommandedRPM = GetOEMDRO(205)   ' Hämta värde från DRO202, stoppa det i CommandedRPM-variabeln

Select Case GetOEMDRO(202)
  
          
  
  Case 0 To 40
        Call setuserled(1001,1)
        Call setuserled(1020,1)'Växel(1) 
        Call setuserled(1021,1) 
        
  Case 41 To 100
        Call setuserled(1002,1)
        Call setuserled(1020,1)'Växel(2)
        Call setuserled(1022,1)
  
  Case 101 To 200
        Call setuserled(1003,1)
        Call setuserled(1020,1)'Växel(3)
        Call setuserled(1023,1)
  
  Case 201 To 300
        Call setuserled(1004,1)
        Call setuserled(1020,1)'Växel(4)
        Call setuserled(1024,1) 
 
  
  Case 301 To 400
        Call setuserled(1005,1)
        Call setuserled(1020,1)'Växel(5)
        Call setuserled(1025,1)
        
   
  
  Case 401 To 500
        Call setuserled(1006,1)
        Call setuserled(1020,1)'Växel(6)
        Call setuserled(1026,1)

  
  Case 501 To 600
        Call setuserled(1007,1)
        Call setuserled(1020,1)'Växel(7)
        Call setuserled(1027,1) 
 
 
  Case 601 To 700
        Call setuserled(1008,1)
        Call setuserled(1020,1)'Växel(8)
        Call setuserled(1028,1)
   
  Case 701 To 800
        Call setuserled(1009,1)
        Call setuserled(1020,1)'Växel(9)
        Call setuserled(1029,1)

  Case 801 To 900
        Call setuserled(1010,1)
        Call setuserled(1019,1)'Växel(10)
        Call setuserled(1021,1) 
 
  Case 901 To 1000
        Call setuserled(1011,1)
        Call setuserled(1019,1)'Växel(11)
        Call setuserled(1022,1)
   
  Case 1001 To 1100
        Call setuserled(1012,1)
        Call setuserled(1019,1)'Växel(12)
        Call setuserled(1023,1)

  Case 1101 To 1200
        Call setuserled(1013,1)
        Call setuserled(1019,1)'Växel(13)
        Call setuserled(1024,1) 
 
  Case 1201 To 1300
        Call setuserled(1014,1)
        Call setuserled(1019,1)'Växel(14)
        Call setuserled(1025,1)
   
  Case 1301 To 1400
        Call setuserled(1015,1)
        Call setuserled(1019,1)'Växel(15)
        Call setuserled(1026,1)
        
  Case 1401 To 1500
        Call setuserled(1016,1)
        Call setuserled(1019,1)'Växel(16)
        Call setuserled(1027,1)
  
  Case 1501 To 1600
        Call setuserled(1017,1)
        Call setuserled(1019,1)'Växel(17)
        Call setuserled(1028,1)

  Case 1601 To 1800
        Call setuserled(1018,1)
        Call setuserled(1019,1)'Växel(18)
        Call setuserled(1029,1)

     End Select






  
 

H.O
Inlägg: 5916
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Nytt cnc projekt fortsätter

Inlägg av H.O »

Nej, macrot körs inte bara för att du skriver in ett värde i DROn.
Du måste antingen spara macrot som en M-kod och kalla på det för att "välja växel" så att säga eller så sparar du det som spindlespeed.m1s varpå det körs när du programmerar en ny hastighet i G-kod, alltså S250 t.ex. Håller med om att spindlespeed.m1s borde köras när man skriver i DRO'n men det gör det alltså inte. Ett annat alternativ är att lägga koden i macropump.m1s och sedan aktivera den funktionen i Config->General Config, det blir lite som med en BRAIN på så sätt att koden köra kontinuerlgt i bakgrunden.

För att "nolla" alla dina LEDs på ett "enklare" sätt kan du göra en FOR-NEXT loop:

Kod: Markera allt

OPTION EXPLICIT

Dim i as Integer
For i = 1001 to 1029
 SetUserLED (i, 0)
NEXT
Och eftersom du nu kör direkt mot GetOEMDRO(202) behöver du ju inte deklarera någon variabel för att "hämta" varvtalet.
makino
Inlägg: 169
Blev medlem: 27 februari 2010, 19:54:50
Ort: Malmö
Kontakt:

Re: Nytt cnc projekt fortsätter

Inlägg av makino »

Problemet med att köra den som macropump är att led,arna bara blinkade fram och tillbaka hela tiden.
Går det att köra programmet bara när jag sätter ett värde i DROn
H.O
Inlägg: 5916
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Nytt cnc projekt fortsätter

Inlägg av H.O »

> Problemet med att köra den som macropump är att led,arna bara blinkade fram och tillbaka hela tiden.
OK, det är nog för att du först släcker alla och tänder vissa om och om igen även om inget faktiskt ändrat sig. Vad du kan prova är att något i stil med.

Kod: Markera allt

OPTION EXPLICIT
Dim i as Integer

If GetUSERDRO(1000) <> GetOEMDRO (202) THEN    ' Varvtalet ändrats? Jag har inte området på userDRO i huvudet, kolla manualen.

  ' Släck alla LEDs
  For i = 1001 to 1029
    SetUserLED (i, 0)
  NEXT
  
   ' Och så din växelkod här
   
   SetUserDRO(1000, GetOEMDRO(202) )   ' Spara nu gällande varvtal så vi har något att jämöra med nästa gång. 
ENDIF
Tanken med ovanstående är att även om macropmump körs kontinuerligt så körs din "växelkod" bara om värdet i DRO 202 inte är samma som i UserDRO 1000 som i sin tur sätt till värdet i just DRO202 varje gång vartalet ändrats.

> Går det att köra programmet bara när jag sätter ett värde i DROn
Nej, inte vad jag vet.
makino
Inlägg: 169
Blev medlem: 27 februari 2010, 19:54:50
Ort: Malmö
Kontakt:

Re: Nytt cnc projekt fortsätter

Inlägg av makino »

Då blev det bra denna gången tack.

Vet du om man kan få till det så att man kan ändra matningshastigheten samtidigt som man kör manuellt
utan att behöva släppa och trycka igen, ändra i realtid?
H.O
Inlägg: 5916
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Nytt cnc projekt fortsätter

Inlägg av H.O »

Inget jag har provat...
Men om du har en potentiometer kopplad till din PoKeys borde du kunna ta värdet från den, skala om det till lämpligt värde och skriva det till DRO'n för Slow Jog %. Som sagt, inget jag provat, kan vara så att den bara "läser in" jog hastigheten när du börjar jogga och inte kontinuerligt under tiden.
Skriv svar