Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
09. Februar 2012, 00:23:31
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: English and international Robotsupport now on Robot Forum. Also Supported by the Moderators of the roboterforum.de

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  Mitsubishi Roboter (Moderatoren: Werner Hampel, Urmel)  |  Thema: Eingabe-Terminal unter VB6 // Zeichen Senden 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Eingabe-Terminal unter VB6 // Zeichen Senden  (Gelesen 737 mal)
dreadek
Neuling
*
Offline Offline

Beiträge: 4


« am: 12. August 2009, 11:20:32 »

hallo,

ich habe leider wieder ein problem =(

diesmal eher auf seiten des eingabeterminals... und zwar habe ich das beispielprogramm welches die winsock1.senddata verwendet abgeändert.

ich habe die eingabe nicht wie im beispiel gemacht

" winsock1.senddata (text1.text) " sondern mit einer variablen versehen " winsock1.senddata (a) " die varbiable wird in abhängigkeit der combobox verändert.

die variable wurde als BYTE deklariert.... nun sagt mir der melfa, dass ein ilegales daten format vorliegt... warum?

auch funktioniert das direkte senden z.b. "winsock1.senddata ("2")

aber nicht wie ich es gemacht habe :

Zitat

Option Explicit
Dim RecvData() As Byte

Dim a As Byte
Dim b As Byte
Dim c As Byte
Dim d As Byte
Dim e As Byte
Dim f As Byte

Private Sub Check1_Click()
If Check1.Value Then
Winsock1.RemoteHost = Text1.Text
Winsock1.RemotePort = Text2.Text
Winsock1.Connect
Else
Winsock1.Close
End If


End Sub

Private Sub Command8_Click()
Select Case Combo1.ListIndex
Case 0
   
 a = 2
 b = 3
 c = 4
 d = 6
 e = 7
 f = 8
   
Case 1
 a = 20
 b = 30
 c = 40
 d = 60
 e = 70
 f = 80
Case 2
 a = 21
 b = 31
 c = 41
 d = 61
 e = 71
 f = 81
Case 3
 a = 22
 b = 32
 c = 42
 d = 62
 e = 72
 f = 82
End Select

Text3.Text = c

End Sub




Private Sub Command1_Click()
    Winsock1.SendData a
    End Sub
   
    Private Sub Command2_Click()
    Winsock1.SendData b
    End Sub
   
    Private Sub Command3_Click()
    Winsock1.SendData c
    End Sub
   
    Private Sub Command5_Click()
    Winsock1.SendData d
    End Sub
   
    Private Sub Command6_Click()
    Winsock1.SendData e
    End Sub
   
    Private Sub Command7_Click()
    Winsock1.SendData f
    End Sub

Private Sub Command4_Click()
Winsock1.SendData (Text1.Text)
End Sub





Private Sub Winsock1_Connect()
Command1.Enabled = True
End Sub

Private Sub Winsock1_Close()
Check1.Value = False
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
If bytesTotal > 0 Then
ReDim RecvData(bytesTotal - 1)
Call Winsock1.GetData(RecvData, , bytesTotal)
Text4.SelStart = Len(Text4.Text + vbNewLine)
Text4.SelText = StrConv(RecvData, vbUnicode)
End If
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, _
Description As String, ByVal Scode As Long, _
ByVal Source As String, ByVal HelpFile As String, _
ByVal HelpContext As Long, CancelDisplay As Boolean)
Check1.Value = False
Command1.Enabled = False
Winsock1.Close
MsgBox "Error:" & Number & "(" & Description & ")"

End Sub



Private Sub Form_Load()

Combo1.AddItem "horizontal"
Combo1.AddItem "vertikal"
Combo1.AddItem "diagonal1"
Combo1.AddItem "diagonal2"

End Sub



wäre suuuuper wenn mir da jemmand weiterhelfen könnte =)

grüße

kamil
Gespeichert
Urmel
Global Moderator
Elite Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 743


« Antworten #1 am: 12. August 2009, 11:39:50 »

Hi,

ich habe zwar seit Jahren kein VB6 mehr angefasst, aber ich würde mal vermuten, du hast ein grundlegendes Verständnisproblem mit der Zeichenkodierung.

Ein senddata("2") sendet vermutlich ein komplette Zeile, so wie der Roboter das haben will, also zwei oder drei Bytes mit den Werten 50, 13 und evtl. noch 10. Das Zeichen 2  (nicht den Wert 2) und den Zeilenumbruch CR oder CR LF.

Wenn du senddata(a)  mit a = 20 machst, sendet VB vermutlich nur das eine Byte, es entspricht in diesem Beispiel dem Steuerzeichen "DC4" (was immer das sein mag). Sieht man in jeder ASCII-Tabelle, z.B. hier

http://www.cppreference.com/wiki/ascii

Mehr kann man dir da vielleicht in einem VB-Forum helfen ...

Grüße
 
  Urmel
Gespeichert
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  Mitsubishi Roboter (Moderatoren: Werner Hampel, Urmel)  |  Thema: Eingabe-Terminal unter VB6 // Zeichen Senden « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS