基于VB的串口通讯及其软件实现(4)
2012-08-26 22:29
(3) 程序开始后在一定情况设置Timer1.Enabled属性值为True 激活Timer1_Time事件,可以在固定的时间间隔下执行Timer1_Timer过程中的代码程序,完成数据采集。在Timer1_Timer过程中添加如下代码:
MSComm1.Output = "COMMUNICATE:WAIT 1" + Chr(13) + Chr(10)
MSComm1.Output = "MEASURE:NORMAL:VALUE?" + Chr(13) + Chr(10)
上述语句是将读取指令发送到串口输出缓冲区(注意每个命令字符串后都要加上回车和换行符Chr(13) + Chr(10)),再由系统将其自动发送给通过RS232通信线与计算机端口连接的WT230数字功率计,功率计在接收到命令字符串后,经过自身的单片机处理,就自动地把它测到的电压、电流、功率数据以固定的格式和字符形式通过RS232通信线传回至计算机,计算机程序从输入缓冲区读取这些字符数据并利用VB字符处理函数(如Val,InStr)进行处理就得到了所要的数据,下面是具体的程序代码。
Dim bytinput() as byte ‘注意要将bytinput定义为不定长数组
Dim strtem As String
Dim i as Integer
bytinput =MSComm1.Input ‘将输入缓冲区数据读入给字节型数组bytinput
For i = 0 To UBound(bytinput)
strtem = strtem + Chr(bytinput(i)) ‘字节数组中的ASCII码值转换成相应 Next 的字符
得到的strtem字符就形象的展示了电流、电压和功率值。对于WT230而言,它的数据结构是这样的,每个数据之间由逗号字符“,”隔开,每个数据以用科学计数法表示,且每个数据以字符“E”分为前半部分和后半部分,前半部分为具体的数据(整数形式),后半部分为此数据的指数,指数的底为10。
例如得到strtem的值为“23423E-2,00241E-3,05645E-2”这就表示电压值为234.23 V,电流值为0.241 A,功率为56.45 W。
6结论
串口通讯的硬件投资少,软件编程简单,在低速少量数据传输方面的应用极其广泛的应用。本文详细介绍了串口通讯的基本内容及其具体实现方式,读者可以根据具体情况进行选择。以上代码是实现串口通信的核心部分,经过笔者在多个数据采集系统开发中的应用,具有较强的实用价值。
参考文献
1 李朝青.PC机及单片机数据通信技术[M].北京:国防工业出版社,2002
2 李长林.Visual Basic串口通信技术与典型实例[M].北京:清华大学出版社,2006
3 [美] Microsoft公司著、北京希望电脑公司译.Microsoft Visual Basic 6.0 控件参考手册[M],1999
4 朱友芹.新编Windows API参考大全[M].电子工业出版社,2000
5 MOXA Crop.Pcomm Library Programming Guide,1998
6 范逸之.Visual Basic 与RS232串行通信控制.北京:中国青年出版社,2000
基于VB的串口通讯及其软件实现(4).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!