当前位置: 网学 > 编程文档 > VB > 正文

用VB开发多通道仪表数据采集程序

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
区为2字节


   .InputMode = comInputModeBinary  ‘设置接收数据模式为二进制形式


   .InputLen = 1           ‘设置Input 一次从接收缓冲读取字节数为1


   .SThreshold = 1 ‘设置Output 一次从发送缓冲读取字节数为1


   .InBufferCount = 0 ‘清除接收缓冲区


   .OutBufferCount = 0 ‘清除发送缓冲区


   For i=1 to 8


   Wmax(i) = -99 ‘最大值赋初值


   Wmin(i) = 99 ‘最小值赋初值


   Next i


   w = 0 ‘数据个数计数器清零


   .RThreshold = 1 ‘设置接收一个字节产生OnComm事件


   On Error Resume Next       ‘改变错误处理的方式。


   Err.Clear


   If .PortOpen = False Then ‘判断通信口是否打开


    .PortOpen = True ‘打开通信口


    If Err Then ‘错误处理


     MsgBox "串口通信无效"


     Exit Sub


    End If


   End If


End With


End Sub


  为了达到实时数据采集目的,实时数据采集处理程序采用MSComm事件驱动方式。MSComm1_OnComm 的事件处理程序只处理comEvReceive事件,首先判断帧数据的开始字节,关闭OnComm接收事件,然后接收数据字节,将压缩BCD进行还原转换,再接收符号字节,判断数据符号,判断数据最大最小值,最后打开OnComm接收事件,等待下一次OnComm事件产生:


Private Sub MSComm1_OnComm()


With MSComm1


Select Case .CommEvent ‘判断MSComm1通讯事件


  Case comEvReceive ‘收到Rthreshold个字节产生的接收事件


   av = .Input ‘读取一个接收字节


   ab(1) = av(0) ‘转换保存到字节数据类型数组


   If ab(1) = 170 Then ‘判断是否为数据开始标志,0FAH=170


     .RThreshold = 0 ‘关闭OnComm事件接收


     W=W+1     ‘计数器加1


     av = .Input ‘读取通道状态字节


     ab(0) = av(0) ‘转换保存到字节数据类型数


     For i = 1 To 8 ‘通道状态数组复位


     TD(i) = False


     Next i


     cn = 2           ‘帧长度赋初值,一个开始字,一个状态字


     If ab(0) >= 128 Then    ‘判断第八通状态


     TD(8) = True       ‘第八道是真


     ab(0) = ab(0) - 128   ‘第7位置零


     cn = cn + 3       ‘帧长度加3个字节


     End If


     If ab(0) >= 64 Then     ‘判断第七通状态


     TD(7) = True       ‘第七道是真


     ab(0) = ab(0) - 64    ‘第6位置零


     cn = cn + 3       ‘帧长度加3个字节


     End If


     If ab(0) >= 32 Then     ‘判断第六通状态


     TD(6) = True       ‘第六道是真


     ab(0) = ab(0) - 32    ‘第5位置零


     cn = cn + 3       ‘帧长度加3个字节


     End If


     If ab(0) >= 16 Then     ‘判断第五通状态


     TD(5) = True       ‘第五道是真


     ab(0) = ab(0) - 16    ‘第4位置零


     cn = cn + 3       ‘帧长度加3个字节


     End If


     If ab(0) >= 8 Then     ‘判断第四通状态


     TD(4) = True       ‘第四道是真


     ab(0) = ab(0) - 8     ‘第3位置零


     cn = cn + 3       ‘帧长度加3个字节


     End If


     If ab(0) >= 4 Then     ‘判断第三通状态


     TD(3) = True       ‘第三道是真


     ab(0) = ab(0) - 4     ‘第2位置零


     cn = cn + 3       ‘帧长度加

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号