| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1848 人关注过本帖
标题:网口通信的问题
只看楼主 加入收藏
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
结帖率:91.22%
收藏
已结贴  问题点数:10 回复次数:5 
网口通信的问题
图片附件: 游客没有浏览图片的权限,请 登录注册

我写了个上位机软件,用网口通信。我上位机发一个命令,下位机就往上位机传输数据。
可是传着传着,上位机的数据就不更新了。可是用网络助手测试,下位机还在发。
说明下位机程序没问题。我用
图片附件: 游客没有浏览图片的权限,请 登录注册

send按钮和后面的文本框往下位机发命令,可以控制小灯亮灭。
我不明白,为什么变形数据不更新。
请高手指教,谢谢。
附上网口中断函数。
Private Sub SckServer_DataArrival(ByVal bytesTotal As Long)
Dim MyStr As String
Dim a As Long
Dim Encoder(1511) As Single
Dim FileName As String
Dim Charnum As Long
Dim i As Long
'Dim b As Integer
'得到数据
SckServer.GetData MyStr
Charnum = Len(MyStr)
'
For i = 0 To (Charnum - 1)
    If (Mid(MyStr, i + 1, 1) > "9") Then
        Encoder(i) = 9
    Else
        Encoder(i) = Val(Mid(MyStr, i + 1, 1))
    End If
      
Next
'
If (Encoder(0) = 1) Then                                                      '编码器当前值
   
    If (Encoder(1) = 1) Then                                                          '+
        CurrentValue = 0
        For i = 2 To (Charnum - 1)
               
                CurrentValue = CurrentValue + Encoder(i) * 10 ^ (Charnum - 1 - i)
        Next
        

            
     'ElseIf ((Encoder(1) = "0") And (Encoder(2) = "1")) Then
     ElseIf (Encoder(1) = 0) Then
        CurrentValue = 0
        For i = 2 To (Charnum - 1)
               
                CurrentValue = CurrentValue + Encoder(i) * 10 ^ (Charnum - 1 - i)
        Next
         
            

     End If
   
    ' j = j + 1
End If
If (Encoder(0) = 2) Then                      '画位移
    DrawShift = Encoder(1) * 10 + Encoder(2)
   
End If
If (Encoder(0) = 3) Then                      '力
    StrengthRec = Encoder(1) * 10000 + Encoder(2) * 1000 + Encoder(3) * 100 + Encoder(4) * 10 + Encoder(5)
   
   
End If

If ((Encoder(0) = 6) And (Encoder(1) = 6)) Then         '连接包 55

    linkflag = True
 
   
End If

End Sub

[此贴子已经被作者于2019-4-25 17:24编辑过]

搜索更多相关主题的帖子: 数据 End Dim Then If 
2019-04-20 19:31
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
当变形数据不更新时,我设断点,发现进不了中断程序了。
这是为什么?
2019-04-20 19:36
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:3 
只能在不更新时,按 Ctrl+Pause Break 强制中断,看看程序运行在那一步的。

授人于鱼,不如授人于渔
早已停用QQ了
2019-04-21 13:18
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
谢谢!我按了Ctrl+Pause Break键,看不出运行到哪一步。
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-04-21 14:26
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:7 
视图,调用堆栈,看看代码在运行哪个函数,是不是非VB代码,或者为空。
空,表示程序没收到数据,那就很能是系统问题。

为了维持一个长时间的网络连接,学习一下如何发心跳包。

授人于鱼,不如授人于渔
早已停用QQ了
2019-04-21 19:56
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
谢谢!视图,调用堆栈,什么意思啊?看不懂。我按了那两个键,看不出运行在哪个函数。
停止时,我用网络助手查看,下位机还在发。
2019-04-22 08:07
快速回复:网口通信的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016217 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved