• ¡¡×÷Õߣºboshika
  • ¡¡»ý·Ö:426
  • ¡¡µÈ¼¶:ËÄÄê¼¶
  • ¡¡2014/10/23 20:07:19
  • ¡¡
  • Â¥Ö÷(ÔĶÁ£º2924/»Ø¸´£º0)´®¿Ú²¨ÌØÂÊת»»µÄ´¿Èí¼þʵÏÖ

    ´®¿Ú²¨ÌØÂÊת»»µÄ´¿Èí¼þʵÏÖ

    ´®¿ÚͨÐÅ£¬¾ÍÊÇRS-232/RS-485ͨÐÅ£¬ÒªÇóͨÐŵÄË«·½²¨ÌØÂʵÈͨПñʽһÑù²Å¿ÉÒÔͨÐųɹ¦¡£¿ÉÊÇÔÚÐí¶àÇé¿öÏ£¬Á½ÖÖ²»Í¬¸ñʽ±ÈÈ粻ͬ²¨ÌØÂʵĴ®¿ÚÒ²ÒªÏ໥ͨÐÅ£¬Õâ¾Í±ØÐë½øÐд®¿Ú²¨ÌØÂʵȸñʽµÄת»»¡£±¾ÎĽéÉÜÁËÈçºÎÓô¿Èí¼þʵÏÖ´®¿Ú²¨ÌØÂʵÄת»»¡£

    Èç¹û´®¿ÚÉ豸1Óë´®¿ÚÉ豸2Ö®¼äÐèҪͨÐÅ£¬µ«ÊÇËüÃÇÖ®¼äµÄͨÐŲ¨ÌØÂʲ»Ò»Ñù¡£´¿Èí¼þʵÏÖ´®¿Ú²¨ÌØÂʵÄת»»µÄÔ­Àí¾ÍÊÇÀûÓüÆËã»úµÄÁ½¸ö´®¿Ú£¬³ÆÎª´®¿ÚAºÍ´®¿ÚB£¬·Ö±ðÉèÖÃΪ²»Í¬µÄ²¨ÌØÂÊ¡¢²»Í¬µÄУÑéλ¡¢²»Í¬µÄÊý¾ÝλºÍ²»Í¬µÄֹͣλ¡£ÆäÖд®¿ÚA°´ÕÕ´®¿ÚAÉèÖõIJ¨ÌØÂʵȸñʽ½ÓÊÕÊý¾ÝÁ¢¼´´Ó´®¿ÚB°´ÕÕ´®¿ÚBÉèÖõIJ¨ÌØÂʵȸñʽ·¢ËͳöÈ¥£¬Í¬Ñù´®¿ÚBÒÔ´®¿ÚBÉèÖò¨ÌØÂʵȸñʽÊÕµ½µÄÊý¾ÝÁ¢¼´´Ó´®¿ÚAÒÔ´®¿ÚAÉèÖõIJ¨ÌØÂʵȸñʽ·¢ËͳöÈ¥¡£

    ½«¼ÆËã»úµÄ´®¿ÚA½ÓÉ豸1£¬´®¿ÚAµÄͨÐŲ¨ÌØÂÊÉèÖÃΪÉ豸1µÄ²¨ÌØÂÊ¡¢Ð£Ñéλ¡¢Êý¾ÝλºÍֹͣλ¡£½«¼ÆËã»úµÄ´®¿ÚB½ÓÉ豸2£¬´®¿ÚBµÄͨÐŲ¨ÌØÂÊÉèÖÃΪÉ豸2µÄ²¨ÌØÂÊ¡¢Ð£Ñéλ¡¢Êý¾ÝλºÍֹͣλ¡£¼ÆËã»ú±ØÐëÖÁÉÙÓÐÁ½¸öRS-232´®¿Ú£¬À©Õ¹´®¿Ú¿ÉÒÔ²ÉÓÃUSB-´®¿Úת»»Æ÷µÈ¡£ÕâÑù¾ÍʵÏÖÁË´®¿ÚÉ豸1Óë´®¿ÚÉ豸2Ö®¼äµÄͨÐÅ¡£

    ´®¿Ú²¨ÌØÂÊת»»Èí¼þµÄ½çÃæÈçͼ¡£×ó±ß·Ö±ðÊÇÁ½¸ö´®¿ÚµÄÉèÖÿò£¬·Ö±ð¿ÉÒÔÉèÖÃCOM¿ÚµÄºÅÂë¡¢²¨ÌØÂÊ¡¢Ð£Ñéλ¡¢Êý¾Ýλ¡¢Í£Ö¹Î»£¬Ä¬ÈϵĸñʽΪ(9600,N,8,1)¡£¿ÉÒÔÑ¡ÔñµÄCOM¿ÚºÅÂëΪ1µ½16ºÅ¡£COM´®¿ÚºÅ¿ÉÒÔ´Ó²Ù×÷ϵͳµÄ¡°É豸¹ÜÀíÆ÷¡±Ö»Äܹ»µÄ¡°¶Ë¿Ú¡±¿´µ½¡£²¨ÌØÂʵĿÉÑ¡Ôñ·¶Î§Îª£º256000¡¢128000¡¢115200¡¢57600¡¢38400¡¢28800¡¢19200¡¢14400¡¢9600¡¢ 4800¡¢2400¡¢1200¡¢600¡£Ð£Ñéλ¿ÉÑ¡Ôñ£ºn£¨ÎÞ£©¡¢o£¨Å¼£©¡¢e£¨Ææ£©¡£Êý¾Ýλ¿ÉÑ¡Ôñ£º8¡¢7¡¢6¡¢5¡¢4¡£Í£Ö¹Î»¿ÉÑ¡Ôñ1ºÍ0¡£

    ÉèÖúô®¿Ú¸ñʽºó£¬°´¡°´ò¿ª´®¿Ú¡±¡£×¢ÒâAºÍBÁ½¸ö´®¿Ú¶¼Òª´ò¿ª¡£³É¹¦´ò¿ª´®¿Úºó»áÔÚ¡°´ò¿ª´®¿Ú¡±°´Å¥µÄÅÔ±ßÏÔʾºìÉ«µÄԲȦ¡£¡°´ò¿ª´®¿Ú¡±°´Å¥ÏÂÃæÎª¡°Çå¿Õ¼ÆÊý¡±°´Å¥ºÍ±¾´®¿Ú½ÓÊպͷ¢ËÍÊý¾ÝµÄ¸öÊý¡£Õý³£Çé¿öÏ£¬ÓÉÓÚ´®¿ÚA½ÓÊÕµ½µÄÊý¾Ý¶¼Á¢¼´·¢Ë͸øÁË´®¿ÚB£¬ËùÒÔ´®¿ÚA½ÓÊյļÆÊýÓë´®¿ÚB·¢Ë͵ļÆÊýʱһÑùµÄ¡£Í¬Àí´®¿ÚB½ÓÊյļÆÊýÓë´®¿ÚA·¢Ë͵ļÆÊýʱһÑùµÄ¡£

    ´®¿Ú²¨ÌØÂÊת»»Èí¼þµÄ½çÃæÓÒ±ßΪ²âÊԺͼì²â²¿·Ö£¬Õý³£¹¤×÷ʱ²»ÐèÒª²Ù×÷¡£°´¡°ÊÖ¶¯·¢ËÍA´®¿Ú¡±¿ÉÒÔ²âÊÔ´®¿ÚAµÄÉèÖÃÊÇ·ñÉúЧ£¬ÊÇ·ñ¿ÉÒÔÕýÈ·ÓëÉ豸1ͨÐÅ£¬½ÓÊÕµ½µÄÊý¾ÝÏÔʾÔÚ¡°½ÓÊÕÇøA¡±¿òÄÚ¡£´®¿ÚBµÄ²¿·ÖÊÇͬÑùµÄ¹¦ÄÜ¡£ÓÒϽÇÓС°×Ö·û¸ñʽ¡±ºÍ¡°Ê®Áù½øÖÆ¡±µÄÑ¡ÏĬÈÏΪ¡°×Ö·û¸ñʽ¡±¡£µ±Ñ¡Ôñ¡°Ê®Áù½øÖÆ¡±Ê±£¬±¾Èí¼þ¿ÉÒÔʵÏÖ16½øÖÆÊý¾ÝµÄ¸ñʽת»»£¬ÌرðÊʺÏMODBUSµÈ¹¤¿ØÈí¼þ¡£

    Èç¹ûÔÚÈí¼þ½çÃæÉÏÖ»´ò¿ªÒ»¸ö´®¿Ú£¬±ÈÈç´®¿ÚA»òÕß´®¿ÚB£¬ÄÇô±¾Èí¼þ¾ÍÊÇÒ»¸ö¹¦ÄÜÆëÈ«µÄ´®¿Úµ÷ÊÔÖúÊÖÈí¼þ£¬¿ÉÒÔ½øÐÐÿ¸ö´®¿ÚµÄÉèÖá¢Êý¾ÝÊÕ·¢µÈ¡£

    ±¾Èí¼þÓÃVisual BasicÈí¼þ±àд£¬´®¿ÚÓÃMSCOMM¿Ø¼þʵÏÖ¡£ºËÐŦÄܾÍÊǽ«Mscomm1½ÓÊÕµÄÊý¾ÝÁ¢¼´Ë͵½Mscomm2µÄ·¢ËÍÇø¡£ÄѵãÔÚÓÚ¶Ô16½øÖÆÊý¾ÝµÄת»»´¦Àí¡£

    MscommµÄºËÐÄ´úÂëÈçÏ£º

    Private Sub MSComm1_OnComm()

    Dim BytReceived() As Byte

    Dim strBuff As String

    Dim i As Integer

    Select Case MSComm1.CommEvent    'ʼþ·¢Éú

    Case 2

    MSComm1.InputLen = 0     '¶ÁÈ뻺³åÇøÈ«²¿ÄÚÈÝ

    strBuff = MSComm1.Input '¶ÁÈëµ½»º³åÇø

    If MSComm1.InputMode = comInputModeBinary Then

    BytReceived() = strBuff 'Èç¹ûÊǶþ½øÖƽÓÊÕģʽÔò½øÐÐÊý¾Ý´¦Àí£¬·ñÔòÖ±½ÓÏÔʾ×Ö·û´®

    For i = 0 To UBound(BytReceived)

    If Len(Hex(BytReceived(i))) = 1 Then

    strData = strData & "0" & Hex(BytReceived(i)) & " "

    'Èç¹ûÖ»ÓÐÒ»¸ö×Ö·û£¬Ôòǰ²¹0£¬ÈçFÏÔʾ0F£¬×îºó²¹¿Õ¸ñ

    Else                      '·½±ãÏÔʾ¹Û²ìÈ磺 00 0F FE

    strData = strData & Hex(BytReceived(i)) & " "

    End If

    Next

    Text1 = strData

    Call hexSend2          ' '·¢ËÍÒ»¸ö16½øÖÆ

    strData = ""

    Else

    Text1 = Text1 & strBuff

    If MSComm2.PortOpen = False Then

    MsgBox "Çë´ò¿ª´®¿ÚB"

    End If

    On Error GoTo uerror3

    MSComm2.Output = strBuff

    Label14.Caption = Label14.Caption + Len(strBuff) '·¢ËͼÆÊý

    End If

    End Select

    uerror3:  

    End Sub

    ±¾ÎĽéÉܵĴ®¿Ú²¨ÌØÂÊת»»µÄ´¿Èí¼þ·½·¨ºÍ³ÌÐò£¬¶Ô²»Í¬¸ñʽ֮¼äµÄ´®¿ÚͨОßÓÐÒ»¶¨µÄʹÓüÛÖµ¡£±¾Èí¼þ²»½ö½öʵÏÖÁ˲¨ÌØÂʵÄת»»£¬»¹Í¬Ê±ÊµÏÖÁËУÑéλ¡¢Êý¾ÝλºÍֹͣλµÄת»»¡£ÎÄÖнéÉܵÄÈí¼þ¿ÉÒÔ´Ó²¨Ê˵ç×ÓµÄÍøÕ¾ÏÂÔØ¡£´¿Èí¼þ²¨ÌØÂÊת»»µÄ²»×ãÖ®´¦ÔÚÓÚÕ¼ÓÃÁËһ̨¼ÆËã»ú£¬²¢ÇÒ±ØÐëÅäÓÐÁ½¸öרÃÅÓÃÓÚ²¨ÌØÂÊת»»µÄ´®¿Ú¡£Èç¹ûҪʵÏÖ·½±ã¼òµ¥µÄ²¨ÌØÂÊת»»£¬»¹ÊÇÒªÓþßÓÐË«´®¿ÚµÄµ¥Æ¬»ú»òÕßFPGA¡£Í¨¹ý¶Ôµ¥Æ¬»ú»òÕßFPGAµÄÁ½¸ö´®¿Ú½øÐв¨ÌØÂʵȸñʽµÄÉèÖ㬶øÁ½¸ö´®¿ÚÔÚÄÚ²¿½øÐÐÊý¾Ý͸Ã÷´«Êä¡£ÕâÖÖ²úÆ·¾ÍÊÇÓ²¼þ²¨ÌØÂÊת»»Æ÷£¬ÎÒÃǽ«ÒÔÁíÍâÎÄÕ¡¶´®¿Ú²¨ÌØÂÊת»»µÄ´¿Ó²¼þʵÏÖ¡·ÓèÒÔ½éÉÜ

    ²¨ÊËÓëÄú³©ÓÎRS232/RS485´®¿ÚµÄÊÀ½ç


    Ŀǰ²»ÔÊÐíÓοͻظ´£¬Çë µÇ¼ ×¢²á ·¢±íÑÔÂÛ¡£
     
    伊人久久大香线蕉亚洲五月天