搜档网
当前位置:搜档网 › VB和InTouch 的通信软件实现

VB和InTouch 的通信软件实现

VB和InTouch 的通信软件实现
VB和InTouch 的通信软件实现

一种基于VB和InTouch 的通信软件实现

A Kind of Communication software based on Vb and Intouch

(430074 武汉华中理工大学控制工程系) 严丽霞 瞿坦

【摘要】 本文讲述了在计算机分布式计算机控制系统中如何使用VB和InTouch利用DDE动态数据交换方式来实现上位机、下位机之间的数据通信。

关键词:VB、InTouch、DDE、NETDDE

Abstract Using the theory of DDE,How to realized the comm-unication in the distributed computer system through Vb and InTouch is discussed in this article .

Key words VB、InTouch、DDE、NETDDE

1、 前言

本文是以笔者参与的某啤酒厂的监控系统实现的项目为背景。由于现场的PLC或单片机控制系统的资源、功能有限,不能长期保存数据,人机界面差,因此一般采用工控机作为上位机,把现场数据通过数据采集站送入上位机,这样组成一个测控系统。上位机丰富的资源可以对采集到的数据进行分析,存盘,运算、打印、报警并进行各种相应显示。上位机形象的人机界面可使操作员更直观,全面的了解现场的情况。采用Intouch、VB来实现上、下两层的通信,简单、明了。

2、 系统结构

笔者参与的监控系统呈两层分布式体系结构:数据采集层和监控层。数据采集层主要采用数据通信标准接口;监控层属于局域网,遵循局域网的协议标准。数采层进行数据的采集、处理将数据传递到上一层;监控层共享数采层传来的数据。

该系统的数采层由多台测控装置组成。这些测控装置采用RS-485标准总线与数采管理站通信。在软件方面采用VB来实现测控装置数采程序,它主要完成上位机与测控装置之间的数据通信和所采集数据的DDE(动态数据交换)转换功能。

在工控机上的人机界面则采用监控平台软件来实现。目前较为流行的监控平台软件有Heuristics公司的ONSPEC、Intellution公司的FIX和Wonderare公司的InTouch等。InTouch监控软件作为一个实时的人机界面实用程序生成器,可以产生在管理级别上的监控和数据采集程序。它具有开发周期短、可以生成复杂的、友好的交互式图形界面,组态灵活的优点,是目前工业控制领域中简便易用的“快速应用程序生成器”。但它必须采用DDE的数据交换方式与DDE服务器连接来获得数据。此时用户编制的运行于数采站上的VB应用程序充当DDE服务器,如图一所示。将VB和Intouch结合起来,协同工作,可以发挥各自优点。

3、 系统DDE实现

该啤酒长系统在Windows环境下以动态数据交换机制实现系统的实时数据共享。如图2所示:

首先,数采层采集处理后的数据送到数采管理站,转换成DDE型数据;然后,借助于NETDDE机制,数采管理站把实时数据送至工程师站。工程师站作为NT域控制器,再借助于NETDDE机制实现与其他各监视站之间的动态数据交换。由于各站之间建立了“热连接”链路,作为服务器一方总是在数据变化时主动发送数据给客户方。即当数采管理站采集的数据发生变化时自动反应到工程师站。在现场实时数据的传送上,工程师站既作为数采管理站的客户,又作为其它各监视站的服务器。

图1 VB与InTouch协同工作

图2 系统数据交换示意图

系统的动态数据交换实现分为三个方面:

① 采管理站的DDE数据类型的数据产生。

② 监控层应用程序的DDE组态。

③ 构造NETDDE应用程序。

3、1 用VB 编制DDE程序VB 是开发Windows应用程序的一种面向对象程序设计语言,他支持Windows环境下的DDE通信机制。VB提供了动态数据交换的Link Topic 连接主题 ,Link Item 连接项 ,Link Timeout 连接等待时间 和Linkmode(连接模式)四项属性。在应用程序编制时,根据DDE原理,把应用程序的可执行文件名去掉EXE后缀,则成为DDE中的Topic。Linkmode有Manual 手工 ,Notify 通知 ,和Automatic 自动 三种方式。在这个系统中我们采用Automatic 自动 方式。数采管理站的巡测数采程序的流程图如下:

测控装置采用RS-485接口标准,因此某一时刻只能有一个站发送数据,其余站只能接口。在该测控装置的通信协议中,由主机以召唤方式向测控装置发送送数命令和相应机号,只有与主机发送的机号一致的测控装置才允许发送数据。

此VB程序作为DDE服务器,在VB中只有窗体可以作为服务器,在程序的初始化部分应进行DDE设置,程序段如下:

form1.linkmode=1

form1.linktopic=form1

在窗体上放置了mscomm控件 用于控制串行端口传输和接受数据,为应用程序提供串行通信功能。

Mscomm1.comport=2

Mscomm1.settings='9600 n 8 1'’设定该通信口的波特率、奇偶校验、数据位、停止位

Mscomm1.inputlen=0 '使用Input将使Mscomm控件读取接收缓‘冲区中全部的内容

Mscomm1.Portopen

窗体上的定时器控件timer1,用于定时两秒,当定时到时,发送FE命令,要求测控装置发送数据。其程序实现如下:

mscomm1.output=″fe″+chr$ 13 '输出FE命令

mscomm1.output=″tank″ ’tank为机号

当数据由测控装置送到数采站时将触发mscomm控件的oncomm事件,在此事件处理句柄中完成读入数据的功能。

Bufferstring=mscomm1.input '读入缓冲区内容

If Bufferstring<>'ff' then

Text2.text= Bufferstring+text2.text

这样读入的数据就显示在Text2文本框中。

3.2监控层应用程序的DDE组态

监控层应用程序主要执行InTouch中的WonderViewer,而InTouch正是借助DDE与其它软件联合工作。

InTouch是用于建立人机接口的一种软件包。它包括WonderViewer和WonderMaker两大部分。使用InTouch软件只需建立一个标记名字典,再利

用WonderMaker的图形功能把被控对象形象的画出来,在PC机上就可以把整个对象描绘出来。InTouch只需在标记名字典中指明标记名为DDE特性,同时指定应用程序的服务名和话题名,WonderViewer可自动执行获取数据点的全部操作。 InTouch既可以作为客户又可以作为服务器。通过NETBIOS DDE的网络接口,可使机制建立起3个层次,因此监控层应用程序的DDE组态分为两大部分:

① 工程师站的DDE组态

DDE用项名、主题名、应用程序名三个层次来标识客户与服务器之间传递的数据单位,通常表示为:应用程序名|主题名!项名;对于客户,应按三个层次去连接相应的数据。工程师站作为数采站的DDE客户。在InTouch的标签库中,提供了DDE设置框,使得DDE组态简便、易行。

工程师站中的层次标识为:\\shucai\dde1|form1 text2.text 数采站的节点,dde1为数采站上的VB应用程序名 。

② 其它各监视站的DDE组态

这主要是建立各监视站与工程师站的DDE 连接。此时工程师站作为DDE服务器,其它各监视站作为客户从工程师站上取数据。建立DDE连接的过程与上述类似。

4、 结论

VB是一种优秀的面向对象程序设计语言,采用它编制Windows环境下的上位机串行通信软件,程序实现简单,减轻了软件开发的工作。用InTouch监控程序软件完成复杂的图形截面,方便快捷。VB应用程序一方面作为DDE服务器同InTouch进行数据交换,另一方面通过Windows提供的串行通信设备驱动程序与低层的测控装置进行串行通信。对于用户只与InTouch友好人机界面打交道。实际运行证明该通信软件可靠,操作方便。

相关主题