中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

电脑编程

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 电脑编程 → 浏览主题: 问个关于MODBUS通讯的接受问题
发表新帖 回复该主题
回帖:4个,阅读:1923 [上一页] [1] [下一页]
* 帖子主题:

问个关于MODBUS通讯的接受问题

分享到
952
sandsun
文章数:15
年度积分:50
历史总积分:952
注册时间:2004/9/28
发站内信
发表于:2005/4/8 10:34:00
#0楼
现在我数据能传给下位机了,下位机也能收到并给回答了,但是上位机收到的数据由于ascⅡ的限制只能传128前的数据,以后的数据80开始我收到的会溢出显示3F。。还有就是我收到的CRC也是这样,而且要是CRC大于80的话,会显示00,程序会有个停顿,不知道为什么。。。
952
sandsun
文章数:15
年度积分:50
历史总积分:952
注册时间:2004/9/28
发站内信
发表于:2005/4/8 10:36:00
#1楼
请发EMAIL给我
summer_sunjie@sina.com
部分源代码在这里
Private Sub Hexsent()                           '·¢ËÍ×Ó³ÌÐò
       Stxt.Text = txtSend + RTUCRC
       
       Dim hexchrlen%, hexchr As String, hexcyc%, hexmid As String
       Dim i, j As Integer
         
              hexchrlen = Len(Stxt)
              For hexcyc = 1 To hexchrlen          'hexcyc=1to16     ¼ì²é·¢Ë͵ÄÊýÖµÊÇ·ñºÏÊÊ
              hexchr = Mid(Stxt, hexcyc, 1)
              If InStr("0123456789ABCDEFabcdef", hexchr) = 0 Then
                    MsgBox "ÎÞЧµÄÊýÖµ£¬ÇëÖØÐÂÊäÈë", , "´íÎóÐÅÏ¢"
                    Exit Sub
               End If
                             
              Next
               
              ReDim outbyte(1 To hexchrlen / 2) As Byte
              For i = 1 To hexchrlen / 2
                   
                    hexcyc = 2 * i - 1
                    hexchr = Mid(Stxt, hexcyc, 2)
                   
                    hexmid = CStr(hexchr)
                 
                    outbyte(i) = Val("&H" + hexmid)
                   
                Next i
             
             ctrMSComm.Output = outbyte()
   End Sub



'´Ë´¦Ìí¼Ó´¦Àí½ÓÊյĴúÂë
              ' hexstring = ctrMSComm.Input
              ' i = Len(hexstring)
                               
              ' For j = 1 To i
              ' hexchr = Mid(hexstring, j, 1)
             
              ' If Hex(Asc(hexchr)) < 16 Then               'Èç¹ûhexchr(asc(chr)>128  Òç³ö Ϊ3F
              ' txtReceive.Text = txtReceive.Text & "0" & Hex(Asc(hexchr)) & " "
              ' Else
              ' txtReceive.Text = txtReceive.Text & Hex(Asc(hexchr)) & " "
              ' End If
              ''txtReceive.Text = txtReceive.Text & ctrMSComm.Input & CStr(Chr(13)) & CStr(Chr(10))
              ' Next j
925
Woodrow
文章数:9
年度积分:50
历史总积分:925
注册时间:2005/3/27
发站内信
发表于:2005/4/10 15:18:00
#2楼
80H->1000,0000B 最高位是符号位
952
sandsun
文章数:15
年度积分:50
历史总积分:952
注册时间:2004/9/28
发站内信
发表于:2005/4/11 9:30:00
#3楼
请教怎么解决呢?
917
thdy345
文章数:10
年度积分:50
历史总积分:917
注册时间:2005/9/20
发站内信
发表于:2005/9/20 16:55:00
#4楼
thdy345@163.com

很想得到您的源代码,非常感谢
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004