《装备制造技术》2007年第2期
VB6.0是一种功能强大、简单易学的程序设计语言。它不
但保留了原先 Basic语言的全部功能,而且还增加了面向对象
程序设计功能,方便快捷地利用 ActiveX控件 MSComm编制适
用于数据处理、多媒体等方面的程序,本文使用 VB6.0中的
MSComm控件开发出了计算机串口的计算机通信程序。
1 MSComm!"#$%&绍
MSComm控件是VB6.0中的一个ActiveX控件,其提供了
两种处理通信的方式:一种为事件驱动方式,当串口发生事件
或错误时,该控件会产生 OnComm事件,用户程序可以捕获该
事件进行相应处理。另一种为查询方式,主要是定时或不定时
的在用户程序中查询该控件的某些属性是否发生变化,从而确
定相应处理。该控件常用的属性和方法有:Commport(设置或
返回串口号)、Settings(以字符串的形式设置或返回串口通信
参数)、Portopen(设置或返回串口状态)、InputMode(设置或返
回接收数据的类型)、Output(设置或返回发送缓冲区中等待计
算机发送的字符数)、CommEvent(依据产生的事件和错误,
MSComm控件为 CommEvent属性赋不同的代码,同时产生
OnComm事件)等。
2 VB’()Mscomm!"*+,-./#01
2.1 23%4567
为了使主机能够对整个检测过程进行实时控制,需要在
发送命令(文本方式或二进制代码)以后设定等待的时间或通
过条件判断下一步指令是发送还是接收。值得注意的是,当发
送的命令是二进制代码时,还要特别注意发送的格式。
当发送命令过程是一个带参过程时,发送命令会变得简
便易行。具体程序如下:
Dimcommand?As?Byte
\
MSComm1.OutBufferCount=0
MSComm1.Output=输出命令
MSComm1.InBufferCount=0
\
2.2 8OnComm9"’:;<=
OnComm事件主要是检查和处理通讯错误,可以通过检查
CommEvent属性的值来查询事件和错误。
\
'错误
CasecomEventBreak /收到Break/
CasecomEventCDTO /CD(RLSD)超时/
CasecomEventCTSTO /CTSTimeout/
CasecomEventDSRTO /DSRTimeout/
CasecomEventFrame /FramingError/
CasecomEventOverrun /数据丢失/
CasecomEventRxOver /接收缓冲区溢出/
CasecomEventRxParity /Parity错误/
CasecomEventTxFull /传输缓冲区已满/
CasecomEventDCB /获取DCB时意外错误/
'事件
CasecomEvCD /CD线状态变化/
CasecomEvCTS /CTS线状态变化/
CasecomEvDSR /DSR线状态变化/
CasecomEvRing /RingIndicator变化/
CasecomEvReceive /收到RThreshold#ofchars/
CasecomEvSend /传输缓冲区有Sthreshold个字符/
CasecomEvEof /输入数据流中发现EOF字符/
\
3 ,-./01’>?@A/BCDE
由于外界干扰或电压波动等原因,PC机和单片机之间的
通讯可能会出现错误,如接收缓冲区溢出、网络端口超速等。这
些事件都可能在代码中引起运行错误。OnComm事件可以捕捉
和处理错误。在 MSComm控件中就提供了一个事件 OnComm,
该事件可以截取串口的任何消息,转入事件处理程序。OnComm
可以捕获通信时发生的串口事件和错误信息,当有串口事件或
错误发生时,VB会立刻触发一个 OnComm事件,程序就会自动
转入 OnComm事件处理程序中。而在 OnComm事件中,Com-
mEvent属性是 OnComm事件的指示器,它存有最近事件或错
浅谈基于MSComm控件实现VB串口通信
F G
(三门峡职业技术学院,河南 三门峡 472000)
HI:主要阐述如何利用VB6.0中的MSComm控件实现PC机与单片机的通信。
KLM:VB;MSComm;串口通信
’NOPQ:TP311.1 RSTUV:A RWXQ:1672—545X(2007)02-0057-01
;\]^:2006-11-28
_‘&a:董 萍(1980-),女,河南淮阳人,三门峡职业技术学院教师,助教,河南科技大学在读研究生,研究方向:数据库编程与多媒体应用。
(bcd63e)
57
《装备制造技术》2007年第2期
误的数值代码,在程序中可以随时读取 CommEvent属性值来了
解通信的状况。但该属性在设计时是不能使用的,而且在程序
运行时也是以只读形式存在的。
OnComm事件是和CommEvent属性一起使用的。当任何
一个 OnComm事件或错误发生时,都会使得 CommEvent属性
值改变,在 OnComm事件处理过程中,可以通过判断 Com-
mEvent属性值,对于不同的属性值转入不同的事件处理过程,
常采用的办法是
SELECTCASE
\
ENDSELECT。
因此,通信错误的处理程序为:
\
CaseComReceive'Receivedata /自动数据接收、监视总
线通信信息/
SelectCaseIn_buffer$
CallA
Label.Enabled=“正在执行任务1”
CallB
\
EndSelect
CasecomFrame /通信错误处理/
X=MsgBox(“FramingError!”,16)
\
4 !"#
运用MSComm控件有效地实现了 PC机与单片机的通信,
这种实现方法在解决各类通信问题中具有一定普遍性。
$%&’:
[1]李华.单片机通用接口技术[M].北京:北京航空航天大学出版社,
OnMakingTrueSCIaccordingtoMakingUseofMSCommActiveXinVB
DONG Ping
(SanmenxiaPolytechnic,SanmenxiaHenan472000,China)
Abstract:ItcanmaketruetheserialcommunicationinterfacebetweenPCandsingle-chipinmakinguseoftheSCIActiveXunderWindows
XP.ThisarticleelaboratesmakinguseofMSCommActiveXofVB6.0makestruetheCorrespondencebetweenpersonalcomputerand
single-chip.
Keywords:VB;MSComm;communication
1999.
()*+57,)
.4
另外也可以采用下述方式来实现:选用减速机电机组的
减速机为输出速度相同、转速相反的双输出轴减速机,在减速
机的各输出轴与输送线右端两轴间以相同的传动比、相同的连
接方式连接,也能获得与图4结构相同的效果。
3 /!
要在一条输送线上实现工件以两个不同方向、相同速度
的输送,使线上各轴以不同方向、相同转速旋转是核心技术,工
位小车与线上滚轮之间实现纯滚动运动,是保证输送线以相同
速度输送工件的必要条件,线上滚轮
材料
关于××同志的政审材料调查表环保先进个人材料国家普通话测试材料农民专业合作社注销四查四问剖析材料
的选择是关键。
$%&’:
[1]郑志峰,王义行,柴邦衡.链传动[M].北京:机械工业出版社.1984.
[2]周增昌.发动机非同步输送线装配线[J].汽车技术,1998(2).
[3]机械工程手册第33篇.带、链、摩擦与螺旋传动[M].北京:机械
工业出版社.1978.
DevelopmentandApplicationofANewReciprocatingChainStyleAutomaticProductionLine
YANGGuo-xian
(ZhuzhouVocationalCollege,ZhuzhouHunan412001,China)
Abstract:Introducesthecharacteristicofanewreciprocatingchainstyleautomaticproductionline.Expoundsthestructuredesignwhich
implementsmaterialhandlinginsamespeedandbytwodifferentdirectionsinoneconveyerline.
Keywords:Reciprocatingstyle;Productionline;Developmentandapplication
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
63