基于RS-485变频器与PC机串行通信的实现
PrivateSubMSComm1_OnComm()‘[通过Comm事件接收数据]
DimRxAsString,RxLenAsInteger,SumAsInteger
DimMsgAsString
IfMSComm1.CommEvent<>comEvReceiveThenExitSub‘确认接收的数据是Comm事件
Do
Rx=Rx+MSComm1.Input‘接收变频器的数据
DoEvents
LoopUntilRight(Rx,2)=(Chr(13)&Chr(10))‘找到停止位
Timer1.Enabled=False‘取消超时定时器
RxLen=Len(Rx)-2‘接收数据字长(停止位除外)
Sum=0‘接收到的校验和的计算
Fori=1ToRxLen-1
Sum=Sum+Asc(Mid(Rx,i,1))
Nexti
Sum=((0-Sum)And127)Or64
IfMid(Rx,RxLen,1)=Chr(Sum)Then‘校验和的检查
Msg=Left(Rx,RxLen)‘接收数据(包括校验和,不包括停止位)
Else
Msg=“CheckSumNG”?‘校验和错误显示
EndIf
MsgBox“ReceivedData=”&Msg‘显示接收数据
MSComm1.PortOpen=False‘[关闭通信端口]
EndSub
‘在变频器的输出频率为20Hz时,运行该程序,在信息框中将显示“*01C02000@”
4结论
文章首先对RS-232与RS-485进行了比较,然后介绍了基于RS-485三垦变频器与上位机串行通信的实现,实验表明:利用VB编制的人机界面操作简便,取得了良好的实用效果。利用RS-485协议进行串行通信,可以保证快速、稳定远距离地传输数据。在目前以及以后的工业控制和其他方面必将得到越来越多的应用。
RS-485变频器串行通 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)