📄 test.frm
字号:
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 + -