利用VB实现组态王单片机之间串行通信
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用VB实现组态王与单片机之间的串行通信
摘要:本文介绍了使用vb实现组态王与单片机之间的通信,减少了系统开发周期,提高了软件质量,便于系统调试与维护。
关键词:vb 组态王单片机
中图分类号:tp29 文献标识码:a 文章编号:
1674-098x(2011)12(c)-0000-00
dcs的构成方式十分灵活,处于底层的过程控制级(下位机)一般由分散的数据采集站和现场控制站等就地实现数据采集和控制,并通过数据通信网络传送到生产监控级计算机。生产监控级(上位机)对来自过程控制级的数据进行集中操作管理,如各种优化计算、统计报表、故障诊断、显示报警等。一般由一台pc机作为上位机,多台单片机组成的数据采集与控制系统作为下位机,为使人机交互方便、操作简单直观,常采用vb、vc开发监控系统,但这种实现方法编程难度大,对设计人员要求高,开发周期长,而组态软件的出现恰好解决了这个问题。
组态软件是指一些数据采集与过程控制的专用软件,它们是处在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件的应用领域很广,可以应用于电力系统等领域的数据采集与监视控制以及过程控制等诸多领域。近年来,组态王kingview工控软件以其简单的操作、友好的界面、低廉的价格等优势得到了广大使用者的好评。
由于工业控制中需要监控的设备有仪表、模块及其他各种类型的设备,它们数量众多,需要开发大量的驱动以支持不同设备,而组态王提供的驱动不可能满足所有需求,对于用户自己设计的装置则没有相关驱动程序。本文详细介绍了如何用vb实现组态软件与单片机之间的通信。
1 通信系统结构
该系统结构框图如图1所示,组态王与vb应用程序间的通信通过dde实现,单片机与vb应用程序间的通信通过串口通信实现。
2 vb应用程序与组态王之间的数据交换
dde(动态数据交换)能够和其它支持动态数据交换的应用程序方便的交换数据,dde对话的内容是通过三个标识名来约定的:应用程序名(application)、主题(topic)、项目(item),对vb 而言,程序名是指visual basic程序使用的可执行文件的名称,主题是指visual basic程序窗体(form)的 linktopic属性值,项目是一个特定的文本框、标签或图片框等控件的名称。在 vb可视化编程工具中,dde 连接是通过控件的属性和方法来实现的。对于作“顾客”的文本框、标签或图片框,要设置 linktopic、linkitem、linkmode 三个属性。
control.linktopic=服务器程序名|主题名
control.linkitem=项目名
其中,control 是文本框、标签或图片框的名字。
control.linkmode有四种选择:0=关闭 dde;1=热连接;2=冷连接;3=通告连接。
组态王访问vb应用程序时,首先在vb中设置如下:form1窗体中的linkmode属性设置为1,窗体的linktopic属性设置为formtopic,控件的name属性设置为text_to_view,生成的可执行文件的名称为vbdde。在组态王中设置如下:新建dde设备,服务程序名即为vb中生成的可执行文件名,话题名与vb中窗体的linktopic属性值相同;新建一变量,变量的连接设备名与服务程序名相同,项目名与控件的name属性相同;新建一画面,将画面的文本框动画连接至新建的变量。
3 vb应用程序与单片机之间的数据交换
vb与单片机之间的串行通信主要是通过mscomm控件实现的,微软公司提供的microsoft comm control控件(简称mscomm)为编程者提供了简化的windows下的串行通信编程,使编程者不必掌握诸多关于硬件方面的知识,节省了开发周期。使用mscomm控件主要是通过事件来处理串行口的交互,在使用事件驱动法设计程序时,每当有新字符到达,或端口状态改变,或发生错误时,mscomm 控件将触发oncomm事件,而应用程序在捕获该事件后,可以通过检查mscomm控件的commevent属性获取所发生的事件或错误,从而采取相应的操作。在mscomm控件中主要用到的几个属性为commport、settings等,commport用来设置并返回通信端口号,settings以字符串的形式设置并返回波特率、奇偶校验、数据位、
停止位,缺省值为“9600,n,8,1”。
4 结语
通过vb实现组态王与单片机的通信,程序实现简单且模块化。将组态软件与高级语言合用编写复杂控制系统软件,易于做到缩短开发周期,提高软件质量,且便于调试和维护。
参考文献
[1] 北京亚控科技发展有限公司.组态王vision6.53用户手册[m].北京:北京亚控科技发展有限公司,2007.