仪表采集数据的问题。MSCOMM控件

2004chenlong 2004-04-27 03:41:18
本人要用VB做。
通过COM口与仪表连起来,时时显示仪表数据。
怎么做,,通讯协议怎么定制。谁有例子发一个。
...全文
54 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
2004chenlong 2004-04-30
  • 打赏
  • 举报
回复
上面做过这方面的朋友留个联络方式,QQ,msn,什么的。
2004chenlong 2004-04-30
  • 打赏
  • 举报
回复
方法我知道,但协议怎么设定的。仪表那块怎么设定呀。
dufeiyan9170 2004-04-29
  • 打赏
  • 举报
回复
Option Explicit
Dim GotStr$
Dim n As Integer


Private Sub Command1_Click()
MSComm1.PortOpen = False
End
End Sub

Private Sub Form_Load()
List1.Clear
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim CrPos%
Select Case MSComm1.CommEvent
Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvReceive
GotStr = GotStr + Trim(MSComm1.Input)
CrPos = InStr(1, GotStr, Chr(13))
If CrPos <> 0 Then
'List1.AddItem Mid(GotStr, 1, CrPos - 1)
List1.AddItem GotStr
List1.ListIndex = List1.ListCount - 1
GotStr = ""
End If
Case comEvSend
End Select
End Sub

記得把RThreshold屬性設為1。 OK!
dufeiyan9170 2004-04-29
  • 打赏
  • 举报
回复
Private Sub Form_Load ()
' 保存输入子串的缓冲区
Dim Instring As String
' 使用 COM1。
MSComm1.CommPort = 1
' 9600 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
' 告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm1.Output = "ATV1Q0" & Chr$(13) ' 确保
' 调制解调器以"OK"响应。
' 等待数据返回到串行端口。
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' 从串行端口读 "OK" 响应。

' 关闭串行端口。
MSComm1.PortOpen = False
End Sub

看看如果还不会,在说
vb的帮助文档也很清楚
2004chenlong 2004-04-29
  • 打赏
  • 举报
回复
CSDN 没有高手了。
2004chenlong 2004-04-27
  • 打赏
  • 举报
回复
高人请进,高人请进。

1,453

社区成员

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

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