The macro is this .... in the VB Editor it work without problem.
  SoftLimitsOff
  
  DoOEMButton(204)  
  Xaxis = 0
  Yaxis = 1
  Zaxis = 2
  Plus = 0
  Minus = 1
  
  SetOEMDRO(3,10)
  
  If GetCsmioIn(6) = False Then JogOn(Zaxis,Plus)
  
  Do
  
    If GetCsmioIn(6) = True Then Exit Do
  
  Loop
    
  JogOff(Zaxis)  
  
  Sleep(1000)
  
  If GetCsmioIn(6) = True Then JogOn(Zaxis,Minus)
  
  Do
  
    If GetCsmioIn(6) = False Then Exit Do
  
  Loop
    
  JogOff(Zaxis)  
  
  Sleep(2000)
   
  
  DoOEMButton(141)
  
  Sleep(2000)
 
 
  Code("G01 Z-10 F1000")
  Sleep(2000)
  
  
  
     
   
   
   
'************************************************************************
'*                         SUBs & FUNCTIONs
'************************************************************************
Sub SoftLimitsOff ()
   If(GetOEMLED(23)) Then
      DoOEMButton(1029)
   End If
End Sub
' -----------------------------------------------------------------------------
Sub SetSoftLimits (state As Boolean)
   If(state) Then
      If(GetOEMLED(23) = 0) Then
         DoOEMButton(1029)
      End If
   Else
      If(GetOEMLED(23)) Then
         DoOEMButton(1029)
      End If
   End If
End Sub
' -----------------------------------------------------------------------------
Sub WaitForMove ()
   While IsMoving() 
      Sleep(15) 
   Wend
End Sub
' -----------------------------------------------------------------------------
Public Function GetCsmioIn (n As Integer) As Boolean
   Dim reg As Integer
   
   If(n < 16) Then
      reg = 90
   Else
      reg = 91
      n = n - 16
   End If
   
   If(GetInBit(reg, n)) Then
      GetCsmioIn = true
   Else
      GetCsmioIn = false
   End If
   Exit Function
End Function 
' -----------------------------------------------------------------------------
Public Sub SetCsmioOut (ByVal n As Integer, ByVal state As Boolean)
   If(state) Then
      SetOutBit(90, n)
   Else
      ResetOutBit(90, n)
   End If
End Sub
' -----------------------------------------------------------------------------