Hallo Miteinander, im Rahmen eines Projekts möchte ich einen PowerSupply per Remote-Zugriff ansteuern. Dies möchte ich in der Programmiersprache VBA und in der Entwicklungsumgebung Visual Studio realisieren. Leider bekomme ich keine Antwort vom Netzteil. Hier der Code, den ich bisher benutzt habe:
1 | Module Module1 |
2 | Sub SendSerialData(ByVal data As String) |
3 | ' Send strings to a serial port. |
4 | Using com4 As IO.Ports.SerialPort = |
5 | My.Computer.Ports.OpenSerialPort("COM4") |
6 | com4.WriteLine(data) |
7 | Console.WriteLine("es wurde folgender Befehl übergeben") |
8 | Console.WriteLine(data) |
9 | com4.Close() |
10 | End Using |
11 | End Sub |
12 | |
13 | Function ReceiveSerialData() As String |
14 | ' Receive strings from a serial port. |
15 | Dim returnStr As String |
16 | |
17 | Dim com4 As IO.Ports.SerialPort = Nothing |
18 | Try |
19 | com4 = My.Computer.Ports.OpenSerialPort("COM4") |
20 | If com4.IsOpen Then |
21 | Console.WriteLine("Port wurde geöffnet") |
22 | End If |
23 | Do |
24 | Console.WriteLine("Einlesen..") |
25 | Dim Incoming As String = com4.ReadLine() ' Ab Hier wird nichts mehr ausgegeben.. Keine Daten erhalten |
26 | com4.ReadTimeout = 10 |
27 | If Incoming Is Nothing Then |
28 | Console.WriteLine("Keine Daten erhalten") |
29 | |
30 | Exit Do |
31 | Else |
32 | returnStr &= Incoming & vbCrLf |
33 | Console.WriteLine(Incoming) |
34 | End If |
35 | Loop |
36 | Catch ex As TimeoutException |
37 | returnStr = "Error: Serial Port read timed out." |
38 | Finally |
39 | If com4 IsNot Nothing Then com4.Close() |
40 | End Try |
41 | |
42 | Return returnStr |
43 | End Function |
44 | Sub Main() |
45 | SendSerialData("[:]SYSTem[<channel>]:VERSion?") 'Beispiel um irgendwas vom Netzteil zu erhalten |
46 | Console.WriteLine(ReceiveSerialData()) |
47 | End Sub |
48 | |
49 | End Module |
Habe ich hier einen Fehler eingebaut den ich nicht sehe? Ich hoffe Ihr könnt mir weiter helfen Viel Dank im Voraus