19#L010185 June 2007
Visual Basic Direct Mode Programming Examples
Example 1: This Example is for Axis=0, and Profile=1
DimConst DefaultTimeout As Single = 0.5
frmMain.MSComm1.Output = "@0A1_100000” & Chr$(13) ‘Set Acceleration
Pause DefaultTimeout
frmMain.MSComm1.Output = "@0B1_1000” & Chr$(13) ‘Set Base Speed
Pause DefaultTimeout
frmMain.MSComm1.Output = "@0M1_4000” & Chr$(13) ‘Set Maximum Speed
Pause DefaultTimeout
frmMain.MSComm1.Output = "@0N1_500” & Chr$(13) ‘Set Index Number
Pause DefaultTimeout
frmMain.MSComm1.Output = "@0T1_100” & Chr$(13) ‘Set Complete Time
Pause DefaultTimeout
frmMain.MSComm1.Output = "@0+” & Chr$(13) ‘Set Direction CW
Pause DefaultTimeout
frmMain.MSComm1.Output = "@0G1” & Chr$(13) ‘Start the Index
Pause DefaultTimeout
Example 2: This Example recieves the error code and Version Number from Axis3
Dim Const DefaultTimeout As Single = 0.5
frmMain.MSComm1.Output = "@3!" & Chr$(13)
Pause ShortTimeOut
MsgBox ReceiveAscii()
frmMain.MSComm1.Output = "@3$" & Chr$(13)
Pause ShortTimeOut
MsgBox ReceiveAscii()
Function ReceiveAscii() As String
'wait for the incoming data to get to the buffer
Dim BeginTime As Single
Dim A As Integer
Dim B As Integer
BeginTime = Timer
While Main.MSComm1.InBufferCount = 0
DoEvents
If Timer - BeginTime > 0.1 Then GoTo ExitRoutine1
Wend
A = 0: B = Main.MSComm1.InBufferCount
While A <> B
A = Main.MSComm1.InBufferCount
Pause 0.02 ' Fixed time value
B = Main.MSComm1.InBufferCount
Wend
ReceiveAscii = Main.MSComm1.Input
Exit Function