⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.frm

📁 电动平台, 控制X,Y,Z轴移动,能计数
💻 FRM
📖 第 1 页 / 共 4 页
字号:
    Resume Next
End Sub

Private Sub MnuFilterCurrent_Click()
    Dim Current As Variant
    
    FormSelectFilter.Show vbModal
    
    temp = InputBox("Please enter the Filter Running Current in Amps", _
                    "Filter " & WhichFilter & " Current", myFilter.RunningCurrent(WhichFilter))
    
    If IsNumeric(temp) <> True Then Exit Sub
    myFilter.RunningCurrent(WhichFilter) = temp
    
    temp = InputBox("Please enter the Filter Standby Current in Amps", _
                    "Filter " & WhichFilter & " Current", myFilter.StandbyCurrent(WhichFilter))
    If IsNumeric(temp) <> True Then Exit Sub
    
    myFilter.StandbyCurrent(WhichFilter) = temp
End Sub

Private Sub MnuFilterSpeed_Click()
    FormSelectFilter.Show vbModal
    
    Select Case WhichFilter
        Case 1
            FrmSetSpeed.TheName = "Filter 1"
        
        Case 2
            FrmSetSpeed.TheName = "Filter 2"
    
        Case 3
            FrmSetSpeed.TheName = "Filter 3"
    End Select
    
    If WhichFilter <> 0 Then
        FrmSetSpeed.Show vbModal
       
    End If
End Sub

Private Sub MnuFocusBacklashDist_Click()
    temp = InputBox("Please enter the Focus Back Lash distance in Microns", _
                    "Backlash Distance", myFocus.HostBackLashDistance)
    If IsNumeric(temp) = True Then myFocus.HostBackLashDistance = temp
End Sub

Private Sub MnuFocusBackLashEnable_Click()
    If myFocus.HostBackLashEnable Then
        myFocus.HostBackLashEnable = 0
        MnuFocusBackLashEnable.Checked = False
    Else
        myFocus.HostBackLashEnable = 1
        MnuFocusBackLashEnable.Checked = True
    End If
End Sub

Private Sub MnuFocusCurrent_Click()
    Dim Current As Variant
    
    temp = InputBox("Please enter the Focus Running Current in Amps", "Focus Current", myFocus.RunningCurrent)
    If IsNumeric(temp) <> True Then Exit Sub
    myFocus.RunningCurrent = temp
    
    temp = InputBox("Please enter the Focus Standby Current in Amps", "Focus Current", myFocus.StandbyCurrent)
    If IsNumeric(temp) <> True Then Exit Sub
    myFocus.StandbyCurrent = temp
End Sub

Private Sub MnuFocusEncEnable_Click()
    If MnuFocusEncEnable.Checked Then
        MnuFocusEncEnable.Checked = False
        myEncoder.ZEnable = 0
    Else
        MnuFocusEncEnable.Checked = True
        myEncoder.ZEnable = 1
    End If
End Sub

Private Sub MnuFocusJoyBackDist_Click()
    Dim Dist As Double
    
    Dist = myFocus.JoystickBackLashDistance
    
    temp = InputBox("Please enter the Stage Back Lash distance in Microns", "Backlash Distance", myFocus.JoystickBackLashDistance)
    If IsNumeric(temp) = True Then myFocus.JoystickBackLashDistance = temp
End Sub

Private Sub MnuFocusJoyBackEnable_Click()
    If myFocus.JoystickBacklashEnable Then
        myFocus.JoystickBacklashEnable = 0
        MnuFocusJoyBackEnable.Checked = False
    Else
        myFocus.JoystickBacklashEnable = 1
        MnuFocusJoyBackEnable.Checked = True
    End If
End Sub

Private Sub MnuFocusSpeed_Click()
    FrmSetSpeed.TheName = "Focus"
    FrmSetSpeed.Show vbModal
   
End Sub

Private Sub MnuJoyEnable_Click()
    If MnuJoyEnable.Checked Then
        MnuJoyEnable.Checked = False
        myStage.JoystickEnable = 0
    Else
        MnuJoyEnable.Checked = True
        myStage.JoystickEnable = 1
    End If
End Sub

Private Sub MnuJoySpeed_Click()
    Dim Speed As Variant
    
    If PCIBoard Then
        Speed = InputBox("Please enter the Maximum Stage Joystick Speed in Microns per second", _
                "Stage Joystick Speed", myStage.MaximumJoystickSpeed)
        If IsNumeric(Speed) <> True Then Exit Sub
        JoySpeed = Speed
        myStage.MaximumJoystickSpeed = JoySpeed
    Else
        'proscan/optiscan return sppeds as percentage of maximum
    
        Speed = InputBox("Please enter Stage Joystick Speed - 0-100%", _
                "Stage Joystick Speed", myStage.MaximumJoystickSpeed)
        If IsNumeric(Speed) <> True Then Exit Sub
        If Speed < 0 Then Speed = 0
        If Speed > 100 Then Speed = 100
        
        myStage.MaximumJoystickSpeed = Speed
        JoySpeed = myStage.MaximumJoystickSpeed / 100 * myStage.MaxSpeed
    End If
End Sub
Private Sub MnuJoyZSpeed_Click()
    Dim Speed As Variant
    
    If PCIBoard Then
        Speed = InputBox("Please enter the Maximum Focus Joystick Speed in Microns per second", _
            "Stage Joystick Speed", myFocus.MaximumJoystickSpeed)
        If IsNumeric(Speed) <> True Then Exit Sub
        JoySpeed = Speed
        myFocus.MaximumJoystickSpeed = JoySpeed
    Else
        'proscan/optiscan return sppeds as percentage of maximum
 
        Speed = InputBox("Please enter Focus Joystick Speed - 0-100%", _
                "Focus Joystick Speed", myFocus.MaximumJoystickSpeed)
        If IsNumeric(Speed) <> True Then Exit Sub
        If Speed < 0 Then Speed = 0
        If Speed > 100 Then Speed = 100
        
        myFocus.MaximumJoystickSpeed = Speed
        JoySpeed = myFocus.MaximumJoystickSpeed / 100 * myFocus.MaxSpeed
    End If
End Sub
Private Sub MnuJoyXRev_Click()
    If MnuJoyXRev.Checked Then
        myStage.XJoystickDirection = 1
        MnuJoyXRev.Checked = False
    Else
        myStage.XJoystickDirection = -1
        MnuJoyXRev.Checked = True
    End If
End Sub

Private Sub MnuJoyYRev_Click()
    If MnuJoyYRev.Checked Then
        myStage.YJoystickDirection = 1
        MnuJoyYRev.Checked = False
    Else
        myStage.YJoystickDirection = -1
        MnuJoyYRev.Checked = True
    End If
End Sub

Private Sub MnuKeepDevice_Click()
    If MnuKeepDevice.Checked Then
        MnuKeepDevice.Checked = False
    Else
        MnuKeepDevice.Checked = True
    End If
    SaveSetting App.Title, "Device", "Keep", MnuKeepDevice.Checked
End Sub

Private Sub MnuLimits_Click()
    MsgBox myScan.IsAtLimits
End Sub

Private Sub MnuRestoreDefaults_Click()
    myScan.RestoreDefaults
    
    SetupBacklash
    SetupSpeed
    SetUpShutters
    SetUpFilters
    SetUpEncoders
    SetupCorrection
End Sub

Private Sub MnuRestoreFocusRef_Click()
    myFocus.RestoreReference
End Sub

Private Sub MnuRestoreStageRef_Click()
    myStage.RestoreReference
End Sub

Private Sub MnuSetFocusRef_Click()
    myFocus.SetReference
End Sub

Private Sub MnuSetStageRef_Click()
    myStage.SetReference
End Sub

Private Sub MnuStageBackLashDistance_Click()
    temp = InputBox("Please enter the Stage Back Lash distance in Microns", "Backlash Distance", myStage.HostBackLashDistance)
    If IsNumeric(temp) <> True Then Exit Sub
    myStage.HostBackLashDistance = temp
End Sub

Private Sub MnuStageBacklashEnable_Click()
    If myStage.HostBackLashEnable Then
        myStage.HostBackLashEnable = 0
        MnuStageBacklashEnable.Checked = False
    Else
        myStage.HostBackLashEnable = 1
        MnuStageBacklashEnable.Checked = True
    End If
End Sub

Private Sub MnuStageCurrent_Click()
    Dim Current As Variant
    
    temp = InputBox("Please enter the Stage Running Current in Amps", "Stage Current", myStage.RunningCurrent)
    If IsNumeric(temp) <> True Then Exit Sub
    myStage.RunningCurrent = temp
    
    temp = InputBox("Please enter the Stage Standby Current in Amps", "Stage Current", myStage.StandbyCurrent)
    If IsNumeric(temp) <> True Then Exit Sub
    myStage.StandbyCurrent = temp
End Sub


Private Sub MnuStageEncEnable_Click()
    If MnuStageEncEnable.Checked Then
        MnuStageEncEnable.Checked = False
        myEncoder.XEnable = 0
        myEncoder.YEnable = 0
    Else
        MnuStageEncEnable.Checked = True
        myEncoder.XEnable = 1
        myEncoder.YEnable = 1
    End If
End Sub

Private Sub MnuStageJoyBackDist_Click()
    temp = InputBox("Please enter the Stage Back Lash distance in Microns", "Backlash Distance", myStage.JoystickBackLashDistance)
    If IsNumeric(temp) <> True Then Exit Sub
    myStage.JoystickBackLashDistance = temp
End Sub

Private Sub MnuStageJoyBackEnable_Click()
    If myStage.JoystickBacklashEnable Then
        myStage.JoystickBacklashEnable = 0
        MnuStageJoyBackEnable.Checked = False
    Else
        myStage.JoystickBacklashEnable = 1
        MnuStageJoyBackEnable.Checked = True
    End If
End Sub

Private Sub MnuStageServo_Click()
    If mnuStageServo.Checked Then
        mnuStageServo.Checked = False
        myEncoder.StageServoEnable = 0
    Else
        mnuStageServo.Checked = True
        myEncoder.StageServoEnable = 1
    End If
End Sub

Private Sub MnuStageSpeed_Click()
    FrmSetSpeed.TheName = "Stage"
    FrmSetSpeed.Show vbModal
    
End Sub
Public Sub SetSpeed(vel As Double, acc As Double)
    If FrmSetSpeed.Caption = "Set Focus Speed" Then
        myFocus.MaxSpeed = vel
        myFocus.MaxAcceleration = acc
    ElseIf FrmSetSpeed.Caption = "Set Stage Speed" Then
        myStage.MaxSpeed = vel
        myStage.MaxAcceleration = acc
    End If
End Sub

Private Sub MnuX_Index_Click()
    temp = GetSetting(App.Title, "Encoder", "IndexX", 5000)
    
    temp = InputBox("Enter X Speed in microns per Second", "X Index Speed", temp)
    If IsNumeric(temp) Then
        myStage.MoveXAtVelocityUntilEncoderReference temp
        SaveSetting App.Title, "Encoder", "IndexX", temp
    End If
End Sub

Private Sub mnuXres_Click()
    temp = InputBox("Enter X Axes Encoder Resolution in microns", _
        "X Resolution", myEncoder.XResolution)
    If IsNumeric(temp) Then myEncoder.XResolution = temp
End Sub

Private Sub MnuY_Index_Click()
    temp = GetSetting(App.Title, "Encoder", "IndexY", 5000)
    
    temp = InputBox("Enter Y Speed in microns per Second", "Y Index Speed", "5000")
    If IsNumeric(temp) Then
        myStage.MoveYAtVelocityUntilEncoderReference temp
        SaveSetting App.Title, "Encoder", "IndexY", temp
    End If
End Sub

Private Sub MnuYres_Click()
    temp = InputBox("Enter Y Axes Encoder Resolution in microns", _
        "Y Resolution", myEncoder.YResolution)
    
    If IsNumeric(temp) Then myEncoder.YResolution = temp
End Sub

Private Sub MnuZ_Index_Click()
    temp = GetSetting(App.Title, "Encoder", "IndexZ", 100)
    
    temp = InputBox("Enter Z Speed in microns per Second", "Z Index Speed", temp)
    If IsNumeric(temp) Then
        myFocus.MoveAtVelocityUntilEncoderReference temp
        SaveSetting App.Title, "Encoder", "IndexZ", temp
    End If
End Sub

Private Sub MnuZres_Click()
    temp = InputBox("Enter Z Axes Encoder Resolution in microns", _
        "Z Resolution", myEncoder.ZResolution)
    
    If IsNumeric(temp) Then myEncoder.ZResolution = temp
End Sub

Private Sub Stop_Click()
    myScan.InterruptAllMotion
End Sub
Private Sub ShowEncoderValues()
    If LblEncX.Visible Then
        If myEncoder.XEnable Then
            LblEncX.Caption = "Encoder X Enabled"
        Else
            LblEncX.Caption = "Enc X Diag " & Format(myEncoder.EncoderXPosition, "0.0")
        End If
    End If
    
    If LblEncY.Visible Then
        If myEncoder.YEnable Then
            LblEncY.Caption = "Encoder Y Enabled"
        Else
            LblEncY.Caption = "Enc Y Diag " & Format(myEncoder.EncoderYPosition, "0.0")
        End If
    End If
    
    If LblEncZ.Visible Then
        If myEncoder.ZEnable Then
            LblEncZ.Caption = "Encoder Z Enabled"
        Else
            LblEncZ.Caption = "Enc Z Diag " & Format(myEncoder.EncoderZPosition, "0.00")
        End If
    End If
End Sub
Private Function GetBinary(value As Long, mask As Integer) As String
    Dim s As String
    Dim i As Integer
   
    
    s = " "
   
   If value Then
    value = value
    End If
    
    Do Until mask = 0
        If value And mask Then
            s = s & "1"
        Else
            s = s & "0"
        End If
        
        mask = mask / 2
    Loop
    
    GetBinary = s
End Function

Private Sub Timer1_Timer()
    Dim X As Double
    Dim Y As Double
    Dim t As Single
    Dim Moving As Long
    Dim Limits As Long
    Dim v As Long
      
    myScan.IsMoving Moving
    txtMoving = GetBinary(Moving, 32)
    Limits = myScan.IsAtLimits
    txtLimits = GetBinary(Limits, 32)
    
    myStage.GetPosition X, Y
    DRO_X.Text = Format(X, "0.0")
    DRO_Y.Text = Format(Y, "0.0")
    DRO_Z.Text = Format(myFocus.Position, "0.00")
    
    If PCIBoard Then
        If TemperatureCount = 0 Then
            myScan.GetPowerSupplyVoltage v
            Volts.Text = v & " V"
            
            myScan.GetBoardTemperature t
            Temperature.Text = t & "癈"
            TemperatureCount = 100
        Else
            TemperatureCount = TemperatureCount - 1
        End If
    End If
        
    If FormFilter.Visible Then _
        FormFilter.LabelFilterPos = myFilter.Position(1)
    If FormFilter2.Visible Then FormFilter2.LabelFilterPos = myFilter.Position(2)
    If FormFilter3.Visible Then FormFilter3.LabelFilterPos = myFilter.Position(3)
      
    ShowEncoderValues
    If FrmTTL.Visible Then FrmTTL.ShowInputs
 
End Sub
Public Sub MoveAtVelocity(X As Single, Y As Single)
    Dim XVel As Double
    Dim YVel As Double
    
    X = X / 16
    Y = Y / 16
    XVel = X * X * X
    YVel = Y * Y * Y
    XVel = XVel * JoySpeed / 1000000
    YVel = YVel * JoySpeed / 1000000
    myStage.MoveAtVelocity XVel, YVel
End Sub
Public Sub MoveStageBy(X As Double, Y As Double)
    myStage.MoveRelative X, Y
End Sub
Public Sub MoveStageTo(X As Double, Y As Double)
    myStage.MoveToAbsolute X, Y
End Sub





Private Sub Zero_Click(Index As Integer)
    Select Case Index
        Case 0
            myStage.XPosition = 0
        Case 1
            myStage.YPosition = 0
        Case 2
            myFocus.Position = 0
    End Select
End Sub
Public Function IsStageMoving() As Boolean
    Dim Moving As Long
        
    myScan.IsMoving Moving
    IsStageMoving = Moving Mod 4
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -