Hier hast du VB-Beispiel Steuerprogramm für RN-Motor
Code:
Option Explicit
Dim mybuffer As Variant
Dim low As Byte
Dim high As Byte
Private Sub buttlDrehLinks_Click()
SendBefehl "#rmd" & Chr(0) & Chr(0), "OK"
End Sub
Private Sub buttlDrehRechts_Click()
SendBefehl "#rmd" & Chr(0) & Chr(1), "OK"
End Sub
Private Sub buttlEndlosdrehen_Click()
SendBefehl "#rme" & Chr(0), "OK"
End Sub
Private Sub buttlGeschwindigkeituebermitteln_Click()
SendBefehl "#rmg" & Chr(0) & Chr(HScrolllgeschwindigkeit.Value), "OK"
End Sub
Private Sub buttLMotorAus_Click()
SendBefehl "#rma" & Chr(0), "OK"
End Sub
Private Sub buttLMotorEin_Click()
SendBefehl "#rmo" & Chr(0), "OK"
End Sub
Private Sub buttlmotorstop_Click()
SendBefehl "#rms" & Chr(0), "OK"
End Sub
Private Sub buttLSchritt_Click()
SendBefehl "#rmm" & Chr(0), "OK"
End Sub
Private Sub buttlSchritteuebermitteln_Click()
high = Int(HScrolllschritte.Value / 256)
low = HScrolllschritte.Value - (high * 256)
SendBefehl "#rmz" & Chr(0) & Chr(low) & Chr(high), "OK"
End Sub
Private Sub buttLschritteZeigen_Click()
SendBefehl "#rmp" & Chr(0), "OK"
End Sub
Private Sub buttLStatus_Click()
SendBefehl "#rmt", "OK"
End Sub
Private Sub buttLStrom_Click()
SendBefehl "#rmi" & Chr(0) & Chr(lmaxstrom.Value / 10), "OK"
End Sub
Private Sub buttrDrehLinks_Click()
SendBefehl "#rmd" & Chr(1) & Chr(0), "OK"
End Sub
Private Sub buttrDrehRechts_Click()
SendBefehl "#rmd" & Chr(1) & Chr(1), "OK"
End Sub
Private Sub buttrEndlosdrehen_Click()
SendBefehl "#rme" & Chr(1), "OK"
End Sub
Private Sub buttrGeschwindigkeituebermitteln_Click()
SendBefehl "#rmg" & Chr(1) & Chr(rHScrolllgeschwindigkeit.Value), "OK"
End Sub
Private Sub buttRMotorAus_Click()
SendBefehl "#rma" & Chr(1), "OK"
End Sub
Private Sub buttRMotorEin_Click()
SendBefehl "#rmo" & Chr(1), "OK"
End Sub
Private Sub buttrmotorstop_Click()
SendBefehl "#rms" & Chr(1), "OK"
End Sub
Private Sub buttrSchritt_Click()
SendBefehl "#rmm" & Chr(1), "OK"
End Sub
Private Sub buttRSchritteuebermitteln_Click()
high = Int(RHScrolllschritte.Value / 256)
low = RHScrolllschritte.Value - (high * 256)
SendBefehl "#rmz" & Chr(1) & Chr(low) & Chr(high), "OK"
End Sub
Private Sub buttrschritteZeigen_Click()
SendBefehl "#rmp" & Chr(1), "OK"
End Sub
Private Sub buttrStatus_Click()
SendBefehl "#rmt", "OK"
End Sub
Private Sub buttRStrom_Click()
SendBefehl "#rmi" & Chr(1) & Chr(rmaxstrom.Value / 10), "OK"
End Sub
Private Sub buttVref_Click()
frmVref.Show 1
End Sub
Private Sub Form_Load()
txtStrom = ""
txtLSchritte = ""
txtlGeschwindigkeit = ""
txtStromR = ""
txtRSchritte = ""
txtrGeschwindigkeit = ""
'txtStrom = lmaxstrom.Value
'txtLSchritte = HScrolllschritte.Value
'txtlGeschwindigkeit = HScrolllgeschwindigkeit.Value
txtlog = ""
ComboComPort.ListIndex = 0
MSComm1.CommPort = ComboComPort.ListIndex + 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False
End Sub
Private Sub HScrolllgeschwindigkeit_Change()
txtlGeschwindigkeit = HScrolllgeschwindigkeit.Value
End Sub
Private Sub HScrolllschritte_Change()
txtLSchritte = HScrolllschritte.Value
End Sub
Private Sub lmaxstrom_Change()
txtStrom = lmaxstrom.Value
End Sub
Function SendBefehl(befehl As Variant, warteauf As String) As Boolean
Dim buffer As String
Dim rueckgabe As String
Dim n As Long
Dim bytefeld() As Byte
Dim anz As Integer
Dim i As Integer
anz = Len(befehl)
ReDim bytefeld(anz)
For i = 1 To anz
bytefeld(i - 1) = Asc(Mid(befehl, i, 1))
Next i
SendBefehl = False
buffer = ""
MSComm1.Output = befehl
n = 0
Do
If n > 100000 Then
Beep
Exit Function
End If
rueckgabe = MSComm1.Input
txtlog = txtlog & rueckgabe
DoEvents
buffer = buffer & rueckgabe
n = n + 1
Loop Until InStr(buffer, warteauf)
txtlog.SelStart = Len(txtlog.Text)
'txtlog.SelLength = 1
DoEvents
SendBefehl = True
End Function
Private Sub rHScrolllgeschwindigkeit_Change()
txtrGeschwindigkeit = rHScrolllgeschwindigkeit.Value
End Sub
Private Sub RHScrolllschritte_Change()
txtRSchritte = RHScrolllschritte.Value
End Sub
Private Sub rmaxstrom_Change()
txtStromR = rmaxstrom.Value
End Sub
Lesezeichen