问一个vb中通讯的问题,高手帮帮忙啊!!

guoguo1982 2005-12-31 11:55:54
我做了个软件,是和plc通讯,来控制机器工作的,我通过通讯实时采集一些量比如说流量采集回来,显示到屏幕上(text1控件中),但是每次得重新起一下才能采集过来,我看了源吗,还是没发现问题,那位大虾遇到过此类问题啊?
帮帮小弟啊!!

下面是一部分源码:
 
  Select Case MSComm1.CommEvent '有通讯事件产生
Case comEvReceive '??????????????????????????????
'处理接收字符
MSComm1.InputMode = comInputModeBinary '设置返回数据的类型为二进制形式
intInputLen = MSComm1.InBufferCount '返回缓冲区中等待接受的数据
bytInput = MSComm1.Input '返回为二进制形式

'把缓冲区内的数据存入数组y中
ReDim y(LBound(bytInput) To UBound(bytInput))
For i = LBound(bytInput) To UBound(bytInput)
y(i) = bytInput(i)
'Debug.Print i
number11 = y(i)
backnum = backnum & Trim(Str(number11)) & " "

Next i
REVNUMSTR = Trim(backnum) '获得完整的输入字符串,赋给revnumstr
'处理输出字符串
LenREVNSTR = Len(REVNUMSTR)
SPaceNum = 0
For rr = 1 To LenREVNSTR
CHAR = Mid(REVNUMSTR, rr, 1) '一个一个取出已经处理好的缓冲区里的数据
If CHAR = " " Then
SPaceNum = SPaceNum + 1
End If
Next rr

stringstr1 = REVNUMSTR
ReDim SAVENUM(SPaceNum) As Integer
For s = 0 To SPaceNum
STRINGLEN = Len(stringstr1)
STRINGPOS = InStr(stringstr1, " ")
If STRINGPOS > 0 Then
stringstr2 = Left(stringstr1, STRINGPOS - 1)
stringstr1 = Right(stringstr1, STRINGLEN - STRINGPOS)
SAVENUM(s) = Val(Trim(stringstr2))
ElseIf STRINGPOS = 0 Then
SAVENUM(s) = Val(Trim(stringstr1))
End If
Debug.Print "s===" & s & "savenum(s)===" & SAVENUM(s)
Next s
'以下是几个位的信息
YingYYeLiuLiang = SAVENUM(0)
BaoJing = SAVENUM(1)
DaMiShiJiLLiang = SAVENUM(2)
JieShu = SAVENUM(3)


If JieShu = 255 Then

STATUSNUM = BaoJing
YingYYeLiuLiang = YingYYeLiuLiang * 2
' t = DMSJLLiang(YingYYeLiuLiang)

'***********************************
'要接受数据的文本框,问题的出处 *
' *
'***********************************
Text3.Text = Str(YingYYeLiuLiang)
Text4.Text = Str(DaMiShiJiLLiang)

If STATUSNUM = 15 Then '报警信息
Shape2.FillColor = vbRed
ElseIf STATUSNUM = 0 Then
Shape1.FillColor = vbGreen
Shape2.FillColor = vbGreen

End If

Else
' MsgBox "发送数据错误,请您重新发送", vbOKOnly, "错误提示"
Exit Sub
End If
Case comEvSend
End Select
End Sub
...全文
114 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoguo1982 2005-12-31
  • 打赏
  • 举报
回复
什么问题可能这样那?我真的有点搞不明白啊?
tztz520 2005-12-31
  • 打赏
  • 举报
回复
应该是MSComm设置的问题
guoguo1982 2005-12-31
  • 打赏
  • 举报
回复
只好明年做了!!!
guoguo1982 2005-12-31
  • 打赏
  • 举报
回复
我把我所有的分加上了,希望高手帮帮忙啊!!!
guoguo1982 2005-12-31
  • 打赏
  • 举报
回复
什么意思啊,我刚开始使用mscomm控件,有些不太熟练,楼主能不能说的再明白一些??
谢谢拉!
我真的希望弄好啊,都弄了两天了!!!!
junki 2005-12-31
  • 打赏
  • 举报
回复
COM口打开之后应需要关闭
guoguo1982 2005-12-31
  • 打赏
  • 举报
回复
真的没有会的吗?没有人遇到过这样的问题?
guoguo1982 2005-12-31
  • 打赏
  • 举报
回复
那位高手帮帮忙拉!!
真不想把问题带到2006年啊!!!

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧