Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VB RS 232C problem z komunikacją

romantv 17 Maj 2006 22:41 1556 5
  • #1 17 Maj 2006 22:41
    romantv
    Poziom 17  

    VB RS 232C problem z komunikacją.
    Co może być problemem? W VB6 wysyłam znaki np. "1234567890"
    prawidłowo wysłane są tylko dwa znaki : "12" potem już nic nie ma .
    A o to program :

    Private Sub Command1_Click()
    CommX1.BAUDRATE = 38400
    CommX1.COMPORT = 1
    CommX1.OPEN
    End Sub

    Private Sub Command2_Click()
    CommX1.Close
    End Sub

    Private Sub Command3_Click()
    CommX1.SEND Text3.Text + Chr(13) ' send data
    End Sub

    'Private Sub CommX1_OnKeyPress(Key As Integer)
    'the key is also sent to the com port
    'End Sub

    Private Sub CommX1_OnReceive(ByVal Data As String)
    'show received data
    Text1.Text = Text1.Text + Data
    'show receieved data in hex
    For i = 1 To Len(Data)
    Text2.Text = Text2.Text + Hex(Asc((Mid(Data, i, 1)))) + " , "
    Next
    End Sub



    PS w oknie terminala działa ok tylko pod VB6 Źle !

    0 5
  • #2 21 Maj 2006 11:03
    Piotrek.pxf
    Poziom 27  

    A jak ty to wysyłasz (przez jaki hardware itd).
    Może spróbuj odbierać dane przez CommX1.Input:
    Text1.Text = Text1.Text + CommX1.Input
    Tak pobierasz dane przez bufor kontrolki MS Comm.

    0
  • #3 22 Maj 2006 22:29
    romantv
    Poziom 17  

    Witaj i dziekuje za pomoc.
    Informacje odbieram juz. Problem tkwi jednak jeszcze z czymś innym.
    Podczas wysyłania np. "1234567890"
    to do uP dociera przekłamana informacja zawsze tylko 2 cyfry i tak : 12
    reszty brak.
    I co może być.
    a o to program :

    Private Sub Command1_Click()
    CommX2.BAUDRATE = 9600
    CommX2.COMPORT = 1
    CommX2.OPEN
    CommX2.DATABITS = 8
    CommX2.STOPBITS = 1
    End Sub

    Private Sub Command2_Click()
    CommX2.Close
    End Sub

    Private Sub Command3_Click()
    CommX2.SEND Text3.Text + Chr(13) ' send data
    End Sub

    Private Sub CommX2_OnKeyPress(Key As Integer)
    'the key is also sent to the com port
    End Sub

    Private Sub CommX2_OnReceive(ByVal Data As String)
    'show received data
    Text1.Text = Text1.Text + Data
    'show receieved data in hex
    For i = 1 To Len(Data)
    Text2.Text = Text2.Text + Hex(Asc((Mid(Data, i, 1)))) + " , "
    Next
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    CommX2.Close
    End Sub

    SYS XP wysyłam z VB6 do Bascoma

    0
  • #4 25 Sie 2006 23:12
    romantv
    Poziom 17  

    Witaj wlasnie coś testuje może taki program Ci pomoże tylko go musisz zmodyfikiwać do swoich potrzeb program wysyła kody i jest ok

    Ja coś testuje dla tego troche jest dziwny : o to on



    Dim varHex As Variant

    Dim licznik As Single

    Private Sub Form_Load()
    MSComm1.CommPort = 1
    MSComm1.Settings = "38400,O,8,1"
    MSComm1.RThreshold = 1
    MSComm1.InputLen = 0
    MSComm1.PortOpen = True
    Label2.Caption = "Czekam na kod"
    End Sub


    Private Sub MSComm1_OnComm()
    Label1.Caption = MSComm1.Output
    If MSComm1.Input = 123 Then
    Label2.Caption = "Kod OK"
    Shape1.BackColor = &H0&
    Label3.Caption = "123" & " " & licznik


    ElseIf MSComm1.Input = test Then
    Label2.Caption = "Kod OK"
    Shape1.BackColor = &H0&
    Label3.Caption = "test" & " " & licznik


    ElseIf MSComm1.Input = koniec Then
    Label2.Caption = "Kod OK"
    Shape1.BackColor = &H0&
    Label3.Caption = "koniec" & " " & licznik


    ElseIf MSComm1.Input = VPCN Then
    Label2.Caption = "Kod OK"
    Shape1.BackColor = &H0&
    Label3.Caption = "VPCN" & " " & licznik
    End If

    End Sub

    Private Sub Timer1_Timer()

    Timer1.Interval = 1000
    Timer2.Enabled = True
    Timer1.Enabled = False
    Shape1.Visible = False
    MSComm1.Output = Hex(1234):
    End Sub

    Private Sub Timer2_Timer()
    Timer2.Interval = 1000
    Timer1.Enabled = True
    Timer2.Enabled = False
    Shape1.Visible = True
    licznik = licznik + 1
    MSComm1.Output = Hex(a):
    'Label3.Caption = licznik
    End Sub

    Dodano po 45 [sekundy]:

    UWAGA na ustawienia portu !!

    0
  • #5 26 Sie 2006 22:36
    sivex
    Poziom 27  

    Czegos tu nie nietrybie....

    Czy ty przypadkiem odpowiadasz sam sobie???


    pozdr.

    0
  • #6 28 Sie 2006 08:17
    romantv
    Poziom 17  

    Brawo

    Tak bo doszedłem już do tego, a ktoś jeszcze pytał o to i starałem mu momóc.

    Pozdrawiam

    0
  Szukaj w 5mln produktów