Thông báo

Collapse
No announcement yet.

Giao tiếp RS232 trên PC bằng Visual Basic 6.0

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #91
    Các cao thủ giúp minh với.
    Mình đang làm đồ án giao tiêp với máy tính. Hiện giờ mình lập trình VB. khi truyền xuống thì ok nhưng khi mình truyền giá trị nhiệt độ lên thì nó không nhận ?
    Đây là chương trình . Giúp mình với :



    Private Sub Command1_Click()
    Unload Me
    End Sub


    Private Sub Command2_Click()
    MSComm1.Output = Text1.Text
    End Sub

    Private Sub Form_Load()
    MSComm1.Settings = "9600,N,8,1" ' speed 9600 baud, no parity, 8 data and 1 stop bit.
    MSComm1.InputLen = 0 ' read entire buffer when input is use
    MSComm1.PortOpen = True



    End Sub

    Private Sub Form_KeyPress(KeyAscii As Integer)
    MSComm1.Output_keyascii
    Text1.Text_keyascii

    End Sub


    Private Sub MSComm1_OnComm()

    On Error GoTo loi 'nhay toi loi neu phat sinh loi cong com
    Dim tam As String ' khai bao bien x kieu chuoi
    If (MSComm.CommEvent = comEvReceive) Then
    tam = MSComm.Input

    Text2.Text = Round(Val(Left(tam, 3)) * 0.392, 1) ' tach 3 byte dau va thuc hien chuyen thanh dang so
    ' chuyen thanh nhiet do do bang cach nhan voi 0.392
    GoTo thoat ' nhay toi thoat
    loi:
    MsgBox "Loi truyen thong", vbCritical + vbOKOnly 'bao loi
    Resume Next
    thoat:

    End Sub

    còn dây la chường trình từ VXL gửi lên : dau vao la nhiệt độ
    /************************************************** */


    send_data((dau_vao /100000) + 0x30);
    send_data(((dau_vao% 100000) / 10000) + 0x30);
    send_data((dau_vao % 10000)/1000 + 0x30);
    send_data((dau_vao % 1000)/100 + 0x30);
    send_data((dau_vao % 100)/10 + 0x30);
    send_data((dau_vao % 10) + 0x30);

    /************************************************** */

    Comment


    • #92
      mình mở lên nó toàn báo lỗi Component 'COMDLG32.OCX' or one of its depndencies not corectly registered: a file its missingor invalid.Ai biết cách khác phục chỉ mình với.Cảm ơn!
      Never forget who you are!

      Comment


      • #93
        Chào mọi người.e có một vấn đề xin thỉnh giáo.Bài toán của e là đo nhiệt độ của 2 môi trường và gửi lên máy tính, giao diện trên máy tính viết bằng vb.Nhiệt độ của môi trường 1 e để vào ô txtoutput1, môi trường 2 e để vào ô txtoutput2. ý tưởng của e là tách chuỗi gửi lên thành 2 phần bằng nhau rồi cho vào 2 ô nói trên. Nhưng nó chỉ đúng được trong giải nhiệt độ từ 10-99 oC. Các bác có cách nào hợp lý chỉ giáo e với ạ.thanks mọi người

        Comment


        • #94
          anh ơi cho e hỏi với

          Nguyên văn bởi ngohaibac Xem bài viết
          Chào các bạn.

          Đây là TUT về RS232 dùng VC++ để lập trình :
          Giao tiếp RS232 trên PC - PIC Vietnam

          Mình xin đưa cho bạn một Code mẫu đơn giản viết băng VB và có file gửi kèm.

          Code:
          Private Sub cmdClear_Click()
              Text1.Text = ""
              
          End Sub
          
          Private Sub cmdExit_Click()
          Unload Me
          End Sub
          
          Private Sub cmdSend_Click()
              MSComm1.Output = Text2.Text
          End Sub
          
          Private Sub Form_Load()
              cmdSend.Caption = "&Send"
              Text1.Text = ""
              Text2.Text = ""
              Text1.Enabled = False
              cmdExit.Caption = "&Exit"
              With MSComm1
                  .Settings = "9600,N,8,1"
                  .CommPort = 1
                  .RThreshold = 1
                  .SThreshold = 0
                  .InputMode = comInputModeText
                  .InputLen = 0
                  .Handshaking = comNone
                  .InBufferSize = 1024
                  .OutBufferSize = 1024
                  If .PortOpen = False Then
                    .PortOpen = True
                  End If
                   
              End With
          End Sub
          
          Private Sub MSComm1_OnComm()
              Dim Buffer As Variant
              If MSComm1.CommEvent = comEvReceive Then
                  Text1.Text = Text1.Text + MSComm1.Input
              End If
          End Sub
          Chúc bạn thành công.
          Chào a.cho e hỏi ti ạ.Giờ e muốn xây dựng một chương trình chọn cổng com Click image for larger version

Name:	1.PNG
Views:	3
Size:	106.4 KB
ID:	1368496 như hình trên.khi mình nhấn nút kết nối.nó sẽ kết nối tới cổng com mà mình chọn và nếu như kết nối đúng với cổng com thực thì hiện thông báo "đã kết nối cổng com".em đã làm nhưng vẫn ko đúng được với như mình mong muốn.mong các a giúp đỡ.

          Comment


          • #95
            Nguyên văn bởi ngohaibac Xem bài viết
            Chào các bạn.

            Đây là TUT về RS232 dùng VC++ để lập trình :
            Giao tiếp RS232 trên PC - PIC Vietnam

            Mình xin đưa cho bạn một Code mẫu đơn giản viết băng VB và có file gửi kèm.

            Code:
            Private Sub cmdClear_Click()
                Text1.Text = ""
                
            End Sub
            
            Private Sub cmdExit_Click()
            Unload Me
            End Sub
            
            Private Sub cmdSend_Click()
                MSComm1.Output = Text2.Text
            End Sub
            
            Private Sub Form_Load()
                cmdSend.Caption = "&Send"
                Text1.Text = ""
                Text2.Text = ""
                Text1.Enabled = False
                cmdExit.Caption = "&Exit"
                With MSComm1
                    .Settings = "9600,N,8,1"
                    .CommPort = 1
                    .RThreshold = 1
                    .SThreshold = 0
                    .InputMode = comInputModeText
                    .InputLen = 0
                    .Handshaking = comNone
                    .InBufferSize = 1024
                    .OutBufferSize = 1024
                    If .PortOpen = False Then
                      .PortOpen = True
                    End If
                     
                End With
            End Sub
            
            Private Sub MSComm1_OnComm()
                Dim Buffer As Variant
                If MSComm1.CommEvent = comEvReceive Then
                    Text1.Text = Text1.Text + MSComm1.Input
                End If
            End Sub
            Chúc bạn thành công.
            Chào a.a ơi cho e hỏi tí.Giờ e muốn xây dựng một chương trình chọn cổng com.khi mình nhấn nút "kết nôi" thi nếu như mình chọn đúng các thông số 'com,baudrate,databit,parity,stopbit' thì sẽ có một thông báo là "đã kết nối cổng com".e đã làm nhưng mà nó ko được như ý mình.mong các a giúp đỡ.đây là giao diện e xây dựng Click image for larger version

Name:	1.PNG
Views:	3
Size:	106.4 KB
ID:	1368497.a xin cảm ơn ạ!!!

            Comment


            • #96
              chào các a.e có một vấn đề xin thỉnh giáo.giờ e muốn xây dựng một chương trình chọn cổng com viết bằng vb.khi mình nhấn nút "kết nối" thì nếu như chọn đúng các thông số 'com, baudrate, databit, parity, stopbit', thì cổng com được kết nối, và hiện thông báo, "đã kết nối thành công".mong các a giúp đỡ Click image for larger version

Name:	1.PNG
Views:	3
Size:	106.4 KB
ID:	1368499

              Comment


              • #97
                chào mọi người cái vb của e nó báo lỗi "run-time error 8020 error reading comm device". e ko hiểu nó lỗi chỗ nào
                Private Sub MSComm1_OnComm()
                Dim inputtext As String
                If Me.MSComm1.CommEvent = comEvReceive Then
                inputtext = MSComm1.Input----> nó chỉ lỗi chỗ này mà e ko hiểu tại sao nó lại báo lỗi chỗ đó.khi e cho nó thành chú thích thì vẫn truyền xuống bình thường.nhưng mà nhưu thế thì ko thể truyền lên được.
                nhietdo1 = Mid(inputtext, 1, 2)
                txtoutput1.Text = nhietdo1
                nhietdo2 = Mid(inputtext, 3, 4)
                txtoutput1.Text = nhietdo2
                txtDonVi.Text = "oC"
                Dim h, m, s As Byte
                txtthoigian.Text = Format(Now(), "hh:nn:ss") & " Ngay " & Format(Now(), "dd-mmm-yyyy")
                End If

                End Sub
                có ai biết ko chỉ e với

                Comment


                • #98
                  mình có hai vân đề cần các bác giúp đớ với.
                  1. làm thế nào để khi gắn cổng com kết nối VDK với máy tính thì máy tính tự nhận ra là có thiết bị đang kết nối không nhỉ (cái này giống như khi gắn một USB hay bậc nguồn máy in lên vậy các bác ạ).
                  2. hiện nay mình muốn làm chương trình dùng 1 cổng com của máy tính để kết nối với 2 VDK khác nhau. khi pc truyền data cho VDK A thì chỉ có A nhận, B không nhận. khi PC truyền data cho B thì chỉ có VDK B nhận, A không nhận.
                  bác nào biết giúp mình với nhé.
                  chào bạn tungtot_vl !
                  theo mình hiểu thì vấn đề này đơn giản thôi.
                  mình chưa hiểu ý bạn lắm, 2 con vdk này mắc với nhau như thế nào, nó chỉ làm sao phân biệt được khi có một cổng com. mà chỉ phân biệt được data thôi. nên bạn chỉ cẩn thay đổi thuật toán, gán data gì cho vdk nào là nó hiểu được thôi ak. chia se ý kiến cùng bạn.
                  pc truyền xuống vdk mà bạn sử dụng có một cổng com thì cái này là bạn phải lập trình cho vdk của bạn. vd bạn gửi so 1 cho vdk A thì trong code bạn viết cho VDK A nó nhận được và sử lý, còn con vdk B thì số 2 chẳng hạn.

                  Comment


                  • #99
                    thank bác
                    bác làm 1 cái TUT cho mọi người thảo luận đi

                    Comment


                    • ai có thể gải thích em tại sao lại dùng try vs catch k ạ ,em k hiểu 2 cái lệnh này
                      private void backward_Click(object sender, EventArgs e)
                      {
                      try
                      {
                      serialPort1.Write("b");
                      STATUS.Text = "ROBOT BACK WARD";
                      }
                      catch (Exception)
                      {
                      MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
                      }

                      }

                      Comment


                      • Thank bạn nhé . Đoạn code rất dễ hiểu ^^
                        , ,,

                        Comment


                        • minh giao tiếp với máy tính qua chuẩn Rs232 .Mô phỏng thì chay tối nhưng khi làm mạch thì giao dien trên máy tính báo 0 độ C còn LED thì điều khiển không được .
                          khi làm mạch thật thì không cần phải có NOT phải không.
                          con cổng com sau PC la cổng com 1 phải không.
                          tuần sau phải nộp bài rồi.

                          Comment


                          • uk, đúng rồi! cổng not là khi sd mô phỏng protus bạn sd là chạy ok. nhưng làm mạch thực tế ko cần bạn ak.

                            Comment


                            • Ở đây mọi người hướng dẫn hay quá, mình đang bí quả thực tập, phần của mình là hiển thị dòng điện và điện áp từ công COM, ai có thể giúp mình dc không? (Có người phụ trách phần giao tiếp rồi, mình chỉ hiển thị lên thôi)

                              Comment


                              • Nguyên văn bởi tuanson0405 Xem bài viết
                                Ở đây mọi người hướng dẫn hay quá, mình đang bí quả thực tập, phần của mình là hiển thị dòng điện và điện áp từ công COM, ai có thể giúp mình dc không? (Có người phụ trách phần giao tiếp rồi, mình chỉ hiển thị lên thôi)
                                Đề tài của bạn chỉ có phần đọc dữ liệu dòng và áp là chính thôi. việc đó làm được thì chỉ việc gửi dữ liệu đó lên thôi
                                nên có header, checksum ... để kiểm tra dữ liệu đúng hay sai và hiển thị dữ liệu nhận được từ mạch thôi
                                .: Lê Tiến Mạnh :.
                                Phone number : 0989 735 804
                                YM,Skype,mail : [leemanhj916]@gmail.com

                                Comment

                                Về tác giả

                                Collapse

                                ngohaibac Tìm hiểu thêm về ngohaibac

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X